diff --git a/packages/istanbul-widget/CHANGELOG.md b/packages/istanbul-widget/CHANGELOG.md index 939cf2d..b5d1fef 100644 --- a/packages/istanbul-widget/CHANGELOG.md +++ b/packages/istanbul-widget/CHANGELOG.md @@ -1,5 +1,11 @@ # istanbul-widget +## 1.1.0 + +### Minor Changes + +- feat: float mode + ## 1.0.3 ### Patch Changes diff --git a/packages/istanbul-widget/dev.ts b/packages/istanbul-widget/dev.ts index 1083742..b6d079b 100644 --- a/packages/istanbul-widget/dev.ts +++ b/packages/istanbul-widget/dev.ts @@ -6,6 +6,7 @@ new IstanbulWidget({ y: 100, }, report: { + auto: false, onAction: async (coverage) => { console.log('上报', coverage) throw new Error('上报失败') diff --git a/packages/istanbul-widget/package.json b/packages/istanbul-widget/package.json index e5b2acd..f822ba5 100644 --- a/packages/istanbul-widget/package.json +++ b/packages/istanbul-widget/package.json @@ -1,6 +1,6 @@ { "name": "istanbul-widget", - "version": "1.0.3", + "version": "1.1.0", "type": "module", "main": "./dist/istanbul-widget.min.js", "module": "./dist/istanbul-widget.esm.js", @@ -16,7 +16,7 @@ "preview": "vite preview" }, "dependencies": { - "@iconify-json/iconamoon": "^1.1.4", + "@iconify-json/vscode-icons": "^1.1.33", "@minko-fe/lodash-pro": "^0.2.4", "@minko-fe/react-hook": "^0.2.7", "@neodrag/react": "^2.0.3", @@ -24,6 +24,7 @@ "@radix-ui/react-dialog": "^1.0.5", "@radix-ui/react-icons": "^1.3.0", "@radix-ui/react-label": "^2.0.2", + "@radix-ui/react-popover": "^1.0.7", "@radix-ui/react-slot": "^1.0.2", "@radix-ui/react-switch": "^1.0.3", "@radix-ui/react-toast": "^1.1.5", @@ -32,6 +33,7 @@ "destr": "^2.0.3", "react": "^18.2.0", "react-dom": "^18.2.0", + "react-draggable": "^4.4.6", "tailwind-merge": "^2.2.2", "tailwind-variants": "^0.2.1", "tailwindcss-animate": "^1.0.7" diff --git a/packages/istanbul-widget/src/components/ui/alert-dialog.tsx b/packages/istanbul-widget/src/components/ui/alert-dialog.tsx index 7bfcef8..0f2e747 100644 --- a/packages/istanbul-widget/src/components/ui/alert-dialog.tsx +++ b/packages/istanbul-widget/src/components/ui/alert-dialog.tsx @@ -35,7 +35,7 @@ const AlertDialogContent = React.forwardRef< ) => (
, + React.ComponentPropsWithoutRef +>(({ className, align = "center", sideOffset = 4, ...props }, ref) => ( + + + +)) +PopoverContent.displayName = PopoverPrimitive.Content.displayName + +export { Popover, PopoverTrigger, PopoverContent, PopoverAnchor, PopoverArrow, PopoverClose } diff --git a/packages/istanbul-widget/src/core/IstanbulWidget.tsx b/packages/istanbul-widget/src/core/IstanbulWidget.tsx index 998be9a..a4b0a30 100644 --- a/packages/istanbul-widget/src/core/IstanbulWidget.tsx +++ b/packages/istanbul-widget/src/core/IstanbulWidget.tsx @@ -1,7 +1,6 @@ import { toNumber } from '@minko-fe/lodash-pro' import { useDebounceFn, useSetState, useUpdateEffect } from '@minko-fe/react-hook' import { useEffect, useLayoutEffect, useRef, useState } from 'react' -import ReactDOM from 'react-dom/client' import { AlertDialog, AlertDialogAction, @@ -17,6 +16,7 @@ import { Button } from '@/components/ui/button' import { Dialog, DialogContent, DialogFooter, DialogHeader, DialogTitle, DialogTrigger } from '@/components/ui/dialog' import { Input } from '@/components/ui/input' import { Label } from '@/components/ui/label' +import { Popover, PopoverArrow, PopoverClose, PopoverContent, PopoverTrigger } from '@/components/ui/popover' import { Switch } from '@/components/ui/switch' import { Toaster } from '@/components/ui/toaster' import { useToast } from '@/components/ui/use-toast' @@ -24,43 +24,16 @@ import { cn } from '@/components/utils' import { $ } from '@/utils/query' import { ISTANBUL_WIDGET_ID } from '@/utils/tool' import Draggable from './components/Draggable' -import { type Config, type IstanbulWidgetOptions } from './options.interface' +import { type Config, type IstanbulWidgetOptions, type Position } from './options.interface' -export type CompInstance = { - destroy: () => void - update: (newProps: CoreProps) => void -} - -export function render({ target, ...coreProps }: { target: HTMLElement } & CoreProps): CompInstance { - const container = document.createElement('div') - container.id = ISTANBUL_WIDGET_ID - target.appendChild(container) - const reactRoot = ReactDOM.createRoot(container) - reactRoot.render() - - return { - destroy() { - reactRoot.unmount() - }, - update(newProps: CoreProps) { - reactRoot.render() - }, - } -} - -type CoreProps = { +export type IstanbulWidgetProps = { theme: IstanbulWidgetOptions['theme'] + float: IstanbulWidgetOptions['float'] onAction: IstanbulWidgetOptions['report']['onAction'] beforeAction?: IstanbulWidgetOptions['report']['beforeAction'] afterAction?: IstanbulWidgetOptions['report']['afterAction'] - position: { - x: number - y: number - } - defaultPosition: { - x: number - y: number - } + position: Position + defaultPosition: Position show: boolean min_internal: number onConfigChanged: (c: Config) => void @@ -70,7 +43,7 @@ type CoreProps = { requireReporter: boolean } -function Core(props: CoreProps) { +export default function IstanbulWidget(props: IstanbulWidgetProps) { const { position, defaultPosition, @@ -85,6 +58,7 @@ function Core(props: CoreProps) { afterAction, theme, requireReporter, + float, } = props const { toast } = useToast() @@ -218,6 +192,8 @@ function Core(props: CoreProps) { } }, []) + const dragging = useRef(false) + return ( <>
setDialogOpen(open)}> - -
- - - - + +
+ { + dragging.current = false + clearTimeout(t) + }, 60) + }, + }} + float={float} + > + { + if (dragging.current) { + e.preventDefault() + return + } + }} + > +
+
+
+
+
- + +
+ + + - + + + + + +
+ +
+
+ e.preventDefault()}> 上报设置 @@ -295,7 +315,9 @@ function Core(props: CoreProps) { 确认重置? - 恢复默认设置 + +
恢复默认设置
+
取消 diff --git a/packages/istanbul-widget/src/core/components/Draggable.tsx b/packages/istanbul-widget/src/core/components/Draggable.tsx index 202eaa8..513e33a 100644 --- a/packages/istanbul-widget/src/core/components/Draggable.tsx +++ b/packages/istanbul-widget/src/core/components/Draggable.tsx @@ -1,34 +1,56 @@ import { useUpdateEffect } from '@minko-fe/react-hook' -import { useDraggable } from '@neodrag/react' +import { type DragOptions, useDraggable } from '@neodrag/react' import { type PropsWithChildren, memo, useEffect, useRef, useState } from 'react' +import { cn } from '@/components/utils' import { setStorage } from '@/utils/tool' +import { type IstanbulWidgetOptions, type Position } from '../options.interface' type DraggableProps = PropsWithChildren<{ - position: { - x: number - y: number - } - defaultPosition: { - x: number - y: number - } + position: Position + defaultPosition: Position + dragOptions: DragOptions + float: IstanbulWidgetOptions['float'] }> function Draggable(props: DraggableProps) { - const { children, position: positionProp, defaultPosition } = props + const { children, position: positionProp, defaultPosition, dragOptions, float } = props - const draggableRef = useRef(null) const handleRef = useRef(null) + const draggableRef = useRef(null) + + const [dragging, setDragging] = useState(false) + const [position, setPosition] = useState({ x: positionProp.x || 0, y: positionProp.y || 0, }) useDraggable(draggableRef, { + ...dragOptions, position, handle: handleRef, - onDrag: ({ offsetX, offsetY }) => { + onDragStart(data) { + setDragging(true) + dragOptions.onDragStart?.(data) + }, + onDrag: (data) => { + const { offsetX, offsetY } = data setPosition({ x: offsetX, y: offsetY }) + dragOptions.onDrag?.(data) + }, + onDragEnd(data) { + setDragging(false) + + if (float) { + float.offset ??= 0 + const { offsetX, offsetY } = data + const windowWidth = window.innerWidth + const w = handleRef.current!.getBoundingClientRect().width + const newPosition = offsetX + w / 2 > windowWidth / 2 ? windowWidth - w - float.offset : float.offset + setPosition({ x: newPosition, y: offsetY }) + } + + dragOptions.onDragEnd?.(data) }, axis: 'both', bounds: { @@ -81,11 +103,11 @@ function Draggable(props: DraggableProps) { }, [position]) return ( -
-
- {children} -
-
+
+
{children}
) } diff --git a/packages/istanbul-widget/src/core/core.ts b/packages/istanbul-widget/src/core/core.ts index 784d5e6..cc92212 100644 --- a/packages/istanbul-widget/src/core/core.ts +++ b/packages/istanbul-widget/src/core/core.ts @@ -1,12 +1,12 @@ import { deepMerge, isBoolean, isFunction, isObject } from '@minko-fe/lodash-pro' import { $ } from '@/utils/query' import { ISTANBUL_WIDGET_ID, getStorage, setStorage } from '@/utils/tool' -import { type CompInstance, render } from './IstanbulWidget' import { type Config, type IstanbulWidgetOptions } from './options.interface.js' +import { type CompInstance, render } from './render' import '@/styles/global.css' const default_interval = 60 -const default_min_interval = 10 +const default_min_interval = 60 export const enum WIDGET_STORAGE { ENABLE_AUTO_REPORT = 'enable_auto_report', @@ -21,6 +21,9 @@ export class IstanbulWidget { public option: Required = { theme: 'dark', target: document.body, + float: { + offset: 8, + }, defaultPosition: { x: 0, y: 0, @@ -164,6 +167,7 @@ export class IstanbulWidget { afterAction, beforeAction, requireReporter: requireReporter!, + float: this.option.float, }) } } diff --git a/packages/istanbul-widget/src/core/options.interface.ts b/packages/istanbul-widget/src/core/options.interface.ts index 6250576..7ae2dc4 100644 --- a/packages/istanbul-widget/src/core/options.interface.ts +++ b/packages/istanbul-widget/src/core/options.interface.ts @@ -1,12 +1,20 @@ export interface IstanbulWidgetOptions { /** * 主题色 + * @default 'dark' */ theme?: 'light' | 'dark' /** * 挂载DOM + * @default document.body */ target?: string | HTMLElement + /** + * 按钮悬浮 + */ + float?: { + offset?: number + } /** * 按钮默认位置 * @default @@ -45,25 +53,34 @@ export interface IstanbulWidgetOptions { | { /** * 自动上报间隔 + * @default 60 */ interval?: number /** * 最小间隔时间 + * @default 60 */ minInterval?: number } | boolean /** * 离开页面时是否提交一次上报 + * @default true */ onLeavePage?: boolean /** * 是否需要填写上报人 + * @default false */ requireReporter?: boolean } } +export type Position = { + x: number + y: number +} + export type Config = { reporter: string enable_auto_report: boolean diff --git a/packages/istanbul-widget/src/core/render.tsx b/packages/istanbul-widget/src/core/render.tsx new file mode 100644 index 0000000..57b7405 --- /dev/null +++ b/packages/istanbul-widget/src/core/render.tsx @@ -0,0 +1,28 @@ +import ReactDOM from 'react-dom/client' +import { ISTANBUL_WIDGET_ID } from '@/utils/tool' +import IstanbulWidget, { type IstanbulWidgetProps } from './IstanbulWidget' + +export type CompInstance = { + destroy: () => void + update: (newProps: IstanbulWidgetProps) => void +} + +export function render({ + target, + ...istanbulWidgetProps +}: { target: HTMLElement } & IstanbulWidgetProps): CompInstance { + const container = document.createElement('div') + container.id = ISTANBUL_WIDGET_ID + target.appendChild(container) + const reactRoot = ReactDOM.createRoot(container) + reactRoot.render() + + return { + destroy() { + reactRoot.unmount() + }, + update(newProps: IstanbulWidgetProps) { + reactRoot.render() + }, + } +} diff --git a/packages/istanbul-widget/src/styles/global.css b/packages/istanbul-widget/src/styles/global.css index 9f06689..94572e9 100644 --- a/packages/istanbul-widget/src/styles/global.css +++ b/packages/istanbul-widget/src/styles/global.css @@ -22,6 +22,39 @@ --tw-content: ''; } + blockquote, + dl, + dd, + h1, + h2, + h3, + h4, + h5, + h6, + hr, + figure, + p, + pre { + margin: 0; + } + + fieldset { + margin: 0; + padding: 0; + } + + legend { + padding: 0; + } + + ol, + ul, + menu { + list-style: none; + margin: 0; + padding: 0; + } + button, input, optgroup, @@ -42,7 +75,6 @@ } button, - [type='button'], [type='reset'], [type='submit'] { -webkit-appearance: button; /* 1 */ diff --git a/packages/istanbul-widget/tsconfig.json b/packages/istanbul-widget/tsconfig.json index 4b963fc..b7ceac9 100644 --- a/packages/istanbul-widget/tsconfig.json +++ b/packages/istanbul-widget/tsconfig.json @@ -6,5 +6,5 @@ "@/*": ["./src/*"] } }, - "exclude": ["node_modules/*", "dist/*", "./src/**/*.svelte", "./src/components/*"] + "exclude": ["node_modules/*", "dist/*"] } diff --git a/packages/vite-plugin-istanbul-widget/CHANGELOG.md b/packages/vite-plugin-istanbul-widget/CHANGELOG.md index 9cc18e6..c38c857 100644 --- a/packages/vite-plugin-istanbul-widget/CHANGELOG.md +++ b/packages/vite-plugin-istanbul-widget/CHANGELOG.md @@ -1,5 +1,12 @@ # vite-plugin-istanbul-widget +## 1.0.4 + +### Patch Changes + +- Updated dependencies + - istanbul-widget@1.1.0 + ## 1.0.3 ### Patch Changes diff --git a/packages/vite-plugin-istanbul-widget/package.json b/packages/vite-plugin-istanbul-widget/package.json index 03a889b..3636e0c 100644 --- a/packages/vite-plugin-istanbul-widget/package.json +++ b/packages/vite-plugin-istanbul-widget/package.json @@ -1,6 +1,6 @@ { "name": "vite-plugin-istanbul-widget", - "version": "1.0.3", + "version": "1.0.4", "type": "module", "main": "./dist/index.cjs", "module": "./dist/index.js", diff --git a/pnpm-lock.yaml b/pnpm-lock.yaml index 2adbf4a..c241c7b 100644 --- a/pnpm-lock.yaml +++ b/pnpm-lock.yaml @@ -120,9 +120,9 @@ importers: packages/istanbul-widget: dependencies: - '@iconify-json/iconamoon': - specifier: ^1.1.4 - version: 1.1.4 + '@iconify-json/vscode-icons': + specifier: ^1.1.33 + version: 1.1.33 '@minko-fe/lodash-pro': specifier: ^0.2.4 version: 0.2.4 @@ -144,6 +144,9 @@ importers: '@radix-ui/react-label': specifier: ^2.0.2 version: 2.0.2(@types/react-dom@18.2.24)(@types/react@18.2.74)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-popover': + specifier: ^1.0.7 + version: 1.0.7(@types/react-dom@18.2.24)(@types/react@18.2.74)(react-dom@18.2.0)(react@18.2.0) '@radix-ui/react-slot': specifier: ^1.0.2 version: 1.0.2(@types/react@18.2.74)(react@18.2.0) @@ -168,15 +171,18 @@ importers: react-dom: specifier: ^18.2.0 version: 18.2.0(react@18.2.0) + react-draggable: + specifier: ^4.4.6 + version: 4.4.6(react-dom@18.2.0)(react@18.2.0) tailwind-merge: specifier: ^2.2.2 version: 2.2.2 tailwind-variants: specifier: ^0.2.1 - version: 0.2.1(tailwindcss@3.2.4) + version: 0.2.1(tailwindcss@3.2.7) tailwindcss-animate: specifier: ^1.0.7 - version: 1.0.7(tailwindcss@3.2.4) + version: 1.0.7(tailwindcss@3.2.7) devDependencies: '@babel/preset-env': specifier: ^7.24.4 @@ -184,9 +190,6 @@ importers: '@iconify/tailwind': specifier: ^0.1.4 version: 0.1.4 - '@minko-fe/postcss-config': - specifier: ^0.1.23 - version: 0.1.23(postcss@8.4.38)(tailwindcss@3.2.4) '@rollup/plugin-babel': specifier: ^6.0.4 version: 6.0.4(@babel/core@7.24.4) @@ -212,8 +215,8 @@ importers: specifier: ^5.12.0 version: 5.12.0 tailwindcss: - specifier: 3.2.4 - version: 3.2.4(postcss@8.4.38) + specifier: 3.2.7 + version: 3.2.7(postcss@8.4.38) tailwindcss-rem-to-px: specifier: ^0.1.0 version: 0.1.0 @@ -1882,352 +1885,6 @@ packages: chalk: 4.1.2 dev: true - /@csstools/cascade-layer-name-parser@1.0.9(@csstools/css-parser-algorithms@2.6.1)(@csstools/css-tokenizer@2.2.4): - resolution: {integrity: sha512-RRqNjxTZDUhx7pxYOBG/AkCVmPS3zYzfE47GEhIGkFuWFTQGJBgWOUUkKNo5MfxIfjDz5/1L3F3rF1oIsYaIpw==} - engines: {node: ^14 || ^16 || >=18} - peerDependencies: - '@csstools/css-parser-algorithms': ^2.6.1 - '@csstools/css-tokenizer': ^2.2.4 - dependencies: - '@csstools/css-parser-algorithms': 2.6.1(@csstools/css-tokenizer@2.2.4) - '@csstools/css-tokenizer': 2.2.4 - dev: true - - /@csstools/color-helpers@2.1.0: - resolution: {integrity: sha512-OWkqBa7PDzZuJ3Ha7T5bxdSVfSCfTq6K1mbAhbO1MD+GSULGjrp45i5RudyJOedstSarN/3mdwu9upJE7gDXfw==} - engines: {node: ^14 || ^16 || >=18} - dev: true - - /@csstools/color-helpers@4.1.0: - resolution: {integrity: sha512-pWRKF6cDwget8HowIIf2MqEmqIca/cf8/jO4b3PRtUF5EfQXYMtBIKycXB4yXTCUmwLKOoRZAzh/hjnc7ywOIg==} - engines: {node: ^14 || ^16 || >=18} - dev: true - - /@csstools/css-calc@1.2.0(@csstools/css-parser-algorithms@2.6.1)(@csstools/css-tokenizer@2.2.4): - resolution: {integrity: sha512-iQqIW5vDPqQdLx07/atCuNKDprhIWjB0b8XRhUyXZWBZYUG+9mNyFwyu30rypX84WLevVo25NYW2ipxR8WyseQ==} - engines: {node: ^14 || ^16 || >=18} - peerDependencies: - '@csstools/css-parser-algorithms': ^2.6.1 - '@csstools/css-tokenizer': ^2.2.4 - dependencies: - '@csstools/css-parser-algorithms': 2.6.1(@csstools/css-tokenizer@2.2.4) - '@csstools/css-tokenizer': 2.2.4 - dev: true - - /@csstools/css-color-parser@1.6.3(@csstools/css-parser-algorithms@2.6.1)(@csstools/css-tokenizer@2.2.4): - resolution: {integrity: sha512-pQPUPo32HW3/NuZxrwr3VJHE+vGqSTVI5gK4jGbuJ7eOFUrsTmZikXcVdInCVWOvuxK5xbCzwDWoTlZUCAKN+A==} - engines: {node: ^14 || ^16 || >=18} - peerDependencies: - '@csstools/css-parser-algorithms': ^2.6.1 - '@csstools/css-tokenizer': ^2.2.4 - dependencies: - '@csstools/color-helpers': 4.1.0 - '@csstools/css-calc': 1.2.0(@csstools/css-parser-algorithms@2.6.1)(@csstools/css-tokenizer@2.2.4) - '@csstools/css-parser-algorithms': 2.6.1(@csstools/css-tokenizer@2.2.4) - '@csstools/css-tokenizer': 2.2.4 - dev: true - - /@csstools/css-parser-algorithms@2.6.1(@csstools/css-tokenizer@2.2.4): - resolution: {integrity: sha512-ubEkAaTfVZa+WwGhs5jbo5Xfqpeaybr/RvWzvFxRs4jfq16wH8l8Ty/QEEpINxll4xhuGfdMbipRyz5QZh9+FA==} - engines: {node: ^14 || ^16 || >=18} - peerDependencies: - '@csstools/css-tokenizer': ^2.2.4 - dependencies: - '@csstools/css-tokenizer': 2.2.4 - dev: true - - /@csstools/css-tokenizer@2.2.4: - resolution: {integrity: sha512-PuWRAewQLbDhGeTvFuq2oClaSCKPIBmHyIobCV39JHRYN0byDcUWJl5baPeNUcqrjtdMNqFooE0FGl31I3JOqw==} - engines: {node: ^14 || ^16 || >=18} - dev: true - - /@csstools/media-query-list-parser@2.1.9(@csstools/css-parser-algorithms@2.6.1)(@csstools/css-tokenizer@2.2.4): - resolution: {integrity: sha512-qqGuFfbn4rUmyOB0u8CVISIp5FfJ5GAR3mBrZ9/TKndHakdnm6pY0L/fbLcpPnrzwCyyTEZl1nUcXAYHEWneTA==} - engines: {node: ^14 || ^16 || >=18} - peerDependencies: - '@csstools/css-parser-algorithms': ^2.6.1 - '@csstools/css-tokenizer': ^2.2.4 - dependencies: - '@csstools/css-parser-algorithms': 2.6.1(@csstools/css-tokenizer@2.2.4) - '@csstools/css-tokenizer': 2.2.4 - dev: true - - /@csstools/postcss-cascade-layers@3.0.1(postcss@8.4.38): - resolution: {integrity: sha512-dD8W98dOYNOH/yX4V4HXOhfCOnvVAg8TtsL+qCGNoKXuq5z2C/d026wGWgySgC8cajXXo/wNezS31Glj5GcqrA==} - engines: {node: ^14 || ^16 || >=18} - peerDependencies: - postcss: ^8.4 - dependencies: - '@csstools/selector-specificity': 2.2.0(postcss-selector-parser@6.0.16) - postcss: 8.4.38 - postcss-selector-parser: 6.0.16 - dev: true - - /@csstools/postcss-color-function@2.2.3(postcss@8.4.38): - resolution: {integrity: sha512-b1ptNkr1UWP96EEHqKBWWaV5m/0hgYGctgA/RVZhONeP1L3T/8hwoqDm9bB23yVCfOgE9U93KI9j06+pEkJTvw==} - engines: {node: ^14 || ^16 || >=18} - peerDependencies: - postcss: ^8.4 - dependencies: - '@csstools/css-color-parser': 1.6.3(@csstools/css-parser-algorithms@2.6.1)(@csstools/css-tokenizer@2.2.4) - '@csstools/css-parser-algorithms': 2.6.1(@csstools/css-tokenizer@2.2.4) - '@csstools/css-tokenizer': 2.2.4 - '@csstools/postcss-progressive-custom-properties': 2.3.0(postcss@8.4.38) - postcss: 8.4.38 - dev: true - - /@csstools/postcss-color-mix-function@1.0.3(postcss@8.4.38): - resolution: {integrity: sha512-QGXjGugTluqFZWzVf+S3wCiRiI0ukXlYqCi7OnpDotP/zaVTyl/aqZujLFzTOXy24BoWnu89frGMc79ohY5eog==} - engines: {node: ^14 || ^16 || >=18} - peerDependencies: - postcss: ^8.4 - dependencies: - '@csstools/css-color-parser': 1.6.3(@csstools/css-parser-algorithms@2.6.1)(@csstools/css-tokenizer@2.2.4) - '@csstools/css-parser-algorithms': 2.6.1(@csstools/css-tokenizer@2.2.4) - '@csstools/css-tokenizer': 2.2.4 - '@csstools/postcss-progressive-custom-properties': 2.3.0(postcss@8.4.38) - postcss: 8.4.38 - dev: true - - /@csstools/postcss-font-format-keywords@2.0.2(postcss@8.4.38): - resolution: {integrity: sha512-iKYZlIs6JsNT7NKyRjyIyezTCHLh4L4BBB3F5Nx7Dc4Z/QmBgX+YJFuUSar8IM6KclGiAUFGomXFdYxAwJydlA==} - engines: {node: ^14 || ^16 || >=18} - peerDependencies: - postcss: ^8.4 - dependencies: - postcss: 8.4.38 - postcss-value-parser: 4.2.0 - dev: true - - /@csstools/postcss-gradients-interpolation-method@3.0.6(postcss@8.4.38): - resolution: {integrity: sha512-rBOBTat/YMmB0G8VHwKqDEx+RZ4KCU9j42K8LwS0IpZnyThalZZF7BCSsZ6TFlZhcRZKlZy3LLFI2pLqjNVGGA==} - engines: {node: ^14 || ^16 || >=18} - peerDependencies: - postcss: ^8.4 - dependencies: - '@csstools/css-color-parser': 1.6.3(@csstools/css-parser-algorithms@2.6.1)(@csstools/css-tokenizer@2.2.4) - '@csstools/css-parser-algorithms': 2.6.1(@csstools/css-tokenizer@2.2.4) - '@csstools/css-tokenizer': 2.2.4 - '@csstools/postcss-progressive-custom-properties': 2.3.0(postcss@8.4.38) - postcss: 8.4.38 - dev: true - - /@csstools/postcss-hwb-function@2.2.2(postcss@8.4.38): - resolution: {integrity: sha512-W5Y5oaJ382HSlbdGfPf60d7dAK6Hqf10+Be1yZbd/TNNrQ/3dDdV1c07YwOXPQ3PZ6dvFMhxbIbn8EC3ki3nEg==} - engines: {node: ^14 || ^16 || >=18} - peerDependencies: - postcss: ^8.4 - dependencies: - '@csstools/css-color-parser': 1.6.3(@csstools/css-parser-algorithms@2.6.1)(@csstools/css-tokenizer@2.2.4) - '@csstools/css-parser-algorithms': 2.6.1(@csstools/css-tokenizer@2.2.4) - '@csstools/css-tokenizer': 2.2.4 - postcss: 8.4.38 - dev: true - - /@csstools/postcss-ic-unit@2.0.4(postcss@8.4.38): - resolution: {integrity: sha512-9W2ZbV7whWnr1Gt4qYgxMWzbevZMOvclUczT5vk4yR6vS53W/njiiUhtm/jh/BKYwQ1W3PECZjgAd2dH4ebJig==} - engines: {node: ^14 || ^16 || >=18} - peerDependencies: - postcss: ^8.4 - dependencies: - '@csstools/postcss-progressive-custom-properties': 2.3.0(postcss@8.4.38) - postcss: 8.4.38 - postcss-value-parser: 4.2.0 - dev: true - - /@csstools/postcss-is-pseudo-class@3.2.1(postcss@8.4.38): - resolution: {integrity: sha512-AtANdV34kJl04Al62is3eQRk/BfOfyAvEmRJvbt+nx5REqImLC+2XhuE6skgkcPli1l8ONS67wS+l1sBzySc3Q==} - engines: {node: ^14 || ^16 || >=18} - peerDependencies: - postcss: ^8.4 - dependencies: - '@csstools/selector-specificity': 2.2.0(postcss-selector-parser@6.0.16) - postcss: 8.4.38 - postcss-selector-parser: 6.0.16 - dev: true - - /@csstools/postcss-logical-float-and-clear@1.0.1(postcss@8.4.38): - resolution: {integrity: sha512-eO9z2sMLddvlfFEW5Fxbjyd03zaO7cJafDurK4rCqyRt9P7aaWwha0LcSzoROlcZrw1NBV2JAp2vMKfPMQO1xw==} - engines: {node: ^14 || ^16 || >=18} - peerDependencies: - postcss: ^8.4 - dependencies: - postcss: 8.4.38 - dev: true - - /@csstools/postcss-logical-resize@1.0.1(postcss@8.4.38): - resolution: {integrity: sha512-x1ge74eCSvpBkDDWppl+7FuD2dL68WP+wwP2qvdUcKY17vJksz+XoE1ZRV38uJgS6FNUwC0AxrPW5gy3MxsDHQ==} - engines: {node: ^14 || ^16 || >=18} - peerDependencies: - postcss: ^8.4 - dependencies: - postcss: 8.4.38 - postcss-value-parser: 4.2.0 - dev: true - - /@csstools/postcss-logical-viewport-units@1.0.3(postcss@8.4.38): - resolution: {integrity: sha512-6zqcyRg9HSqIHIPMYdt6THWhRmE5/tyHKJQLysn2TeDf/ftq7Em9qwMTx98t2C/7UxIsYS8lOiHHxAVjWn2WUg==} - engines: {node: ^14 || ^16 || >=18} - peerDependencies: - postcss: ^8.4 - dependencies: - '@csstools/css-tokenizer': 2.2.4 - postcss: 8.4.38 - dev: true - - /@csstools/postcss-media-minmax@1.1.4(postcss@8.4.38): - resolution: {integrity: sha512-xl/PIO3TUbXO1ZA4SA6HCw+Q9UGe2cgeRKx3lHCzoNig2D4bT5vfVCOrwhxjUb09oHihc9eI3I0iIfVPiXaN1A==} - engines: {node: ^14 || ^16 || >=18} - peerDependencies: - postcss: ^8.4 - dependencies: - '@csstools/css-calc': 1.2.0(@csstools/css-parser-algorithms@2.6.1)(@csstools/css-tokenizer@2.2.4) - '@csstools/css-parser-algorithms': 2.6.1(@csstools/css-tokenizer@2.2.4) - '@csstools/css-tokenizer': 2.2.4 - '@csstools/media-query-list-parser': 2.1.9(@csstools/css-parser-algorithms@2.6.1)(@csstools/css-tokenizer@2.2.4) - postcss: 8.4.38 - dev: true - - /@csstools/postcss-media-queries-aspect-ratio-number-values@1.0.4(postcss@8.4.38): - resolution: {integrity: sha512-IwyTbyR8E2y3kh6Fhrs251KjKBJeUPV5GlnUKnpU70PRFEN2DolWbf2V4+o/B9+Oj77P/DullLTulWEQ8uFtAA==} - engines: {node: ^14 || ^16 || >=18} - peerDependencies: - postcss: ^8.4 - dependencies: - '@csstools/css-parser-algorithms': 2.6.1(@csstools/css-tokenizer@2.2.4) - '@csstools/css-tokenizer': 2.2.4 - '@csstools/media-query-list-parser': 2.1.9(@csstools/css-parser-algorithms@2.6.1)(@csstools/css-tokenizer@2.2.4) - postcss: 8.4.38 - dev: true - - /@csstools/postcss-nested-calc@2.0.2(postcss@8.4.38): - resolution: {integrity: sha512-jbwrP8rN4e7LNaRcpx3xpMUjhtt34I9OV+zgbcsYAAk6k1+3kODXJBf95/JMYWhu9g1oif7r06QVUgfWsKxCFw==} - engines: {node: ^14 || ^16 || >=18} - peerDependencies: - postcss: ^8.4 - dependencies: - postcss: 8.4.38 - postcss-value-parser: 4.2.0 - dev: true - - /@csstools/postcss-normalize-display-values@2.0.1(postcss@8.4.38): - resolution: {integrity: sha512-TQT5g3JQ5gPXC239YuRK8jFceXF9d25ZvBkyjzBGGoW5st5sPXFVQS8OjYb9IJ/K3CdfK4528y483cgS2DJR/w==} - engines: {node: ^14 || ^16 || >=18} - peerDependencies: - postcss: ^8.4 - dependencies: - postcss: 8.4.38 - postcss-value-parser: 4.2.0 - dev: true - - /@csstools/postcss-oklab-function@2.2.3(postcss@8.4.38): - resolution: {integrity: sha512-AgJ2rWMnLCDcbSMTHSqBYn66DNLBym6JpBpCaqmwZ9huGdljjDRuH3DzOYzkgQ7Pm2K92IYIq54IvFHloUOdvA==} - engines: {node: ^14 || ^16 || >=18} - peerDependencies: - postcss: ^8.4 - dependencies: - '@csstools/css-color-parser': 1.6.3(@csstools/css-parser-algorithms@2.6.1)(@csstools/css-tokenizer@2.2.4) - '@csstools/css-parser-algorithms': 2.6.1(@csstools/css-tokenizer@2.2.4) - '@csstools/css-tokenizer': 2.2.4 - '@csstools/postcss-progressive-custom-properties': 2.3.0(postcss@8.4.38) - postcss: 8.4.38 - dev: true - - /@csstools/postcss-progressive-custom-properties@2.3.0(postcss@8.4.38): - resolution: {integrity: sha512-Zd8ojyMlsL919TBExQ1I0CTpBDdyCpH/yOdqatZpuC3sd22K4SwC7+Yez3Q/vmXMWSAl+shjNeFZ7JMyxMjK+Q==} - engines: {node: ^14 || ^16 || >=18} - peerDependencies: - postcss: ^8.4 - dependencies: - postcss: 8.4.38 - postcss-value-parser: 4.2.0 - dev: true - - /@csstools/postcss-relative-color-syntax@1.0.2(postcss@8.4.38): - resolution: {integrity: sha512-juCoVInkgH2TZPfOhyx6tIal7jW37L/0Tt+Vcl1LoxqQA9sxcg3JWYZ98pl1BonDnki6s/M7nXzFQHWsWMeHgw==} - engines: {node: ^14 || ^16 || >=18} - peerDependencies: - postcss: ^8.4 - dependencies: - '@csstools/css-color-parser': 1.6.3(@csstools/css-parser-algorithms@2.6.1)(@csstools/css-tokenizer@2.2.4) - '@csstools/css-parser-algorithms': 2.6.1(@csstools/css-tokenizer@2.2.4) - '@csstools/css-tokenizer': 2.2.4 - '@csstools/postcss-progressive-custom-properties': 2.3.0(postcss@8.4.38) - postcss: 8.4.38 - dev: true - - /@csstools/postcss-scope-pseudo-class@2.0.2(postcss@8.4.38): - resolution: {integrity: sha512-6Pvo4uexUCXt+Hz5iUtemQAcIuCYnL+ePs1khFR6/xPgC92aQLJ0zGHonWoewiBE+I++4gXK3pr+R1rlOFHe5w==} - engines: {node: ^14 || ^16 || >=18} - peerDependencies: - postcss: ^8.4 - dependencies: - postcss: 8.4.38 - postcss-selector-parser: 6.0.16 - dev: true - - /@csstools/postcss-stepped-value-functions@2.1.1(postcss@8.4.38): - resolution: {integrity: sha512-YCvdF0GCZK35nhLgs7ippcxDlRVe5QsSht3+EghqTjnYnyl3BbWIN6fYQ1dKWYTJ+7Bgi41TgqQFfJDcp9Xy/w==} - engines: {node: ^14 || ^16 || >=18} - peerDependencies: - postcss: ^8.4 - dependencies: - '@csstools/css-calc': 1.2.0(@csstools/css-parser-algorithms@2.6.1)(@csstools/css-tokenizer@2.2.4) - '@csstools/css-parser-algorithms': 2.6.1(@csstools/css-tokenizer@2.2.4) - '@csstools/css-tokenizer': 2.2.4 - postcss: 8.4.38 - dev: true - - /@csstools/postcss-text-decoration-shorthand@2.2.4(postcss@8.4.38): - resolution: {integrity: sha512-zPN56sQkS/7YTCVZhOBVCWf7AiNge8fXDl7JVaHLz2RyT4pnyK2gFjckWRLpO0A2xkm1lCgZ0bepYZTwAVd/5A==} - engines: {node: ^14 || ^16 || >=18} - peerDependencies: - postcss: ^8.4 - dependencies: - '@csstools/color-helpers': 2.1.0 - postcss: 8.4.38 - postcss-value-parser: 4.2.0 - dev: true - - /@csstools/postcss-trigonometric-functions@2.1.1(postcss@8.4.38): - resolution: {integrity: sha512-XcXmHEFfHXhvYz40FtDlA4Fp4NQln2bWTsCwthd2c+MCnYArUYU3YaMqzR5CrKP3pMoGYTBnp5fMqf1HxItNyw==} - engines: {node: ^14 || ^16 || >=18} - peerDependencies: - postcss: ^8.4 - dependencies: - '@csstools/css-calc': 1.2.0(@csstools/css-parser-algorithms@2.6.1)(@csstools/css-tokenizer@2.2.4) - '@csstools/css-parser-algorithms': 2.6.1(@csstools/css-tokenizer@2.2.4) - '@csstools/css-tokenizer': 2.2.4 - postcss: 8.4.38 - dev: true - - /@csstools/postcss-unset-value@2.0.1(postcss@8.4.38): - resolution: {integrity: sha512-oJ9Xl29/yU8U7/pnMJRqAZd4YXNCfGEdcP4ywREuqm/xMqcgDNDppYRoCGDt40aaZQIEKBS79LytUDN/DHf0Ew==} - engines: {node: ^14 || ^16 || >=18} - peerDependencies: - postcss: ^8.4 - dependencies: - postcss: 8.4.38 - dev: true - - /@csstools/selector-specificity@2.2.0(postcss-selector-parser@6.0.16): - resolution: {integrity: sha512-+OJ9konv95ClSTOJCmMZqpd5+YGsB2S+x6w3E1oaM8UuR5j8nTNHYSz8c9BEPGDOCMQYIEEGlVPj/VY64iTbGw==} - engines: {node: ^14 || ^16 || >=18} - peerDependencies: - postcss-selector-parser: ^6.0.10 - dependencies: - postcss-selector-parser: 6.0.16 - dev: true - - /@csstools/utilities@1.0.0(postcss@8.4.38): - resolution: {integrity: sha512-tAgvZQe/t2mlvpNosA4+CkMiZ2azISW5WPAcdSalZlEjQvUfghHxfQcrCiK/7/CrfAWVxyM88kGFYO82heIGDg==} - engines: {node: ^14 || ^16 || >=18} - peerDependencies: - postcss: ^8.4 - dependencies: - postcss: 8.4.38 - dev: true - /@esbuild/aix-ppc64@0.19.12: resolution: {integrity: sha512-bmoCYyWdEL3wDQIVbcyzRyeKLgk2WtWLTWz1ZIAZF/EGbNOwSA6ew3PftJ1PqMiOOGu0OyFMzG53L0zqIpPeNA==} engines: {node: '>=12'} @@ -2854,6 +2511,34 @@ packages: engines: {node: ^12.22.0 || ^14.17.0 || >=16.0.0} dev: true + /@floating-ui/core@1.6.0: + resolution: {integrity: sha512-PcF++MykgmTj3CIyOQbKA/hDzOAiqI3mhuoN44WRCopIs1sgoDoU4oty4Jtqaj/y3oDU6fnVSm4QG0a3t5i0+g==} + dependencies: + '@floating-ui/utils': 0.2.1 + dev: false + + /@floating-ui/dom@1.6.3: + resolution: {integrity: sha512-RnDthu3mzPlQ31Ss/BTwQ1zjzIhr3lk1gZB1OC56h/1vEtaXkESrOqL5fQVMfXpwGtRwX+YsZBdyHtJMQnkArw==} + dependencies: + '@floating-ui/core': 1.6.0 + '@floating-ui/utils': 0.2.1 + dev: false + + /@floating-ui/react-dom@2.0.8(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-HOdqOt3R3OGeTKidaLvJKcgg75S6tibQ3Tif4eyd91QnIJWr0NLvoXFpJA/j8HqkFSL68GDca9AuyWEHlhyClw==} + peerDependencies: + react: '>=16.8.0' + react-dom: '>=16.8.0' + dependencies: + '@floating-ui/dom': 1.6.3 + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + dev: false + + /@floating-ui/utils@0.2.1: + resolution: {integrity: sha512-9TANp6GPoMtYzQdt54kfAyMmz1+osLlXdg2ENroU7zzrtflTLrrC/lgrIfaSe+Wu0b89GKccT7vxXA0MoAIO+Q==} + dev: false + /@humanwhocodes/config-array@0.11.14: resolution: {integrity: sha512-3T8LkOmg45BV5FICb15QQMsyUSWrQ8AygVfC7ZG32zOalnqrilm018ZVCw0eapXux8FtA33q8PSRSstjee3jSg==} engines: {node: '>=10.10.0'} @@ -2879,8 +2564,8 @@ packages: engines: {node: '>=10.13.0'} dev: true - /@iconify-json/iconamoon@1.1.4: - resolution: {integrity: sha512-ciU8YeoMqWWMRurM7c7PqodEyvd/dGAV5zeLC5+IwqTfcPVI71RUDrhOsE656FjxADcyKh2ZkN64gVqFAZOVng==} + /@iconify-json/vscode-icons@1.1.33: + resolution: {integrity: sha512-Aj1SoViQ5dw9hrYc4PHK8/vHpZREUA158jhnyNsD95uhN40mmeLuq+4o9OxiSakgLlac9R5OKpnp8tHTCgMhCA==} dependencies: '@iconify/types': 2.0.0 dev: false @@ -3104,44 +2789,7 @@ packages: deepmerge: 4.3.1 lodash-es: 4.17.21 p-is-promise: 4.0.0 - - /@minko-fe/postcss-config@0.1.23(postcss@8.4.38)(tailwindcss@3.2.4): - resolution: {integrity: sha512-y9oZKcvI6rBGAbDWZVE37Ffkk8b64C97kvkYPldjAaLVKNnOyS8BotZ4r36D3ZH07nonYDBJiJ+HhDLcIct0vQ==} - peerDependencies: - postcss: '>=8.0.0' - tailwindcss: '>=3.0.0' - dependencies: - '@minko-fe/lodash-pro': 0.2.4 - '@minko-fe/postcss-pxtorem': 1.4.0(postcss@8.4.38) - '@minko-fe/postcss-pxtoviewport': 1.3.2(postcss@8.4.38) - autoprefixer: 10.4.19(postcss@8.4.38) - browserslist: 4.23.0 - postcss: 8.4.38 - postcss-import: 15.1.0(postcss@8.4.38) - postcss-preset-env: 8.5.1(postcss@8.4.38) - tailwindcss: 3.2.4(postcss@8.4.38) - dev: true - - /@minko-fe/postcss-pxtorem@1.4.0(postcss@8.4.38): - resolution: {integrity: sha512-qOOkWPMmIhzk5cC4BOA/ljJmbvWf8spu4N/4EWQAKhRVlC+YmNSYungzAuqajPIUHhkMf9UVzqKYgbUFUmjufQ==} - peerDependencies: - postcss: '>=8.0.0' - dependencies: - decode-uri-component: 0.4.1 - postcss: 8.4.38 - split-on-first: 3.0.0 - dev: true - - /@minko-fe/postcss-pxtoviewport@1.3.2(postcss@8.4.38): - resolution: {integrity: sha512-b44EHo9HdyX4yVhypZa5Wh5jwXWAaWSk2v2ymxipeEVkmRgGLHoXGb6H/DG9PMA2jSIu0fUR9d1/Qq7WCUh5pA==} - engines: {node: '>=16.0.0'} - peerDependencies: - postcss: '>=8.0.0' - dependencies: - decode-uri-component: 0.4.1 - postcss: 8.4.38 - split-on-first: 3.0.0 - dev: true + dev: false /@minko-fe/prettier-config@2.2.0(prettier@3.2.5)(svelte@4.2.12): resolution: {integrity: sha512-0WMimpwq19SgZDoBb7KK9+FpmK45Rb4jEnS6kwBozX4Iz6BG7tyHJwHMVsivMiuZal33Twi4XJ01/jvf7jGAig==} @@ -3472,6 +3120,27 @@ packages: react-dom: 18.2.0(react@18.2.0) dev: false + /@radix-ui/react-arrow@1.0.3(@types/react-dom@18.2.24)(@types/react@18.2.74)(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-wSP+pHsB/jQRaL6voubsQ/ZlrGBHHrOjmBnr19hxYgtS0WvAFwZhK2WP/YY5yF9uKECCEEDGxuLxq1NBK51wFA==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 + react-dom: ^16.8 || ^17.0 || ^18.0 + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + dependencies: + '@babel/runtime': 7.24.4 + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.24)(@types/react@18.2.74)(react-dom@18.2.0)(react@18.2.0) + '@types/react': 18.2.74 + '@types/react-dom': 18.2.24 + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + dev: false + /@radix-ui/react-collection@1.0.3(@types/react-dom@18.2.24)(@types/react@18.2.74)(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-3SzW+0PW7yBBoQlT8wNcGtaxaD0XSu0uLUFgrtHY08Acx05TaHaOmVLR73c0j/cqpDy53KBMO7s0dx2wmOIDIA==} peerDependencies: @@ -3664,6 +3333,71 @@ packages: react-dom: 18.2.0(react@18.2.0) dev: false + /@radix-ui/react-popover@1.0.7(@types/react-dom@18.2.24)(@types/react@18.2.74)(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-shtvVnlsxT6faMnK/a7n0wptwBD23xc1Z5mdrtKLwVEfsEMXodS0r5s0/g5P0hX//EKYZS2sxUjqfzlg52ZSnQ==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 + react-dom: ^16.8 || ^17.0 || ^18.0 + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + dependencies: + '@babel/runtime': 7.24.4 + '@radix-ui/primitive': 1.0.1 + '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.2.74)(react@18.2.0) + '@radix-ui/react-context': 1.0.1(@types/react@18.2.74)(react@18.2.0) + '@radix-ui/react-dismissable-layer': 1.0.5(@types/react-dom@18.2.24)(@types/react@18.2.74)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-focus-guards': 1.0.1(@types/react@18.2.74)(react@18.2.0) + '@radix-ui/react-focus-scope': 1.0.4(@types/react-dom@18.2.24)(@types/react@18.2.74)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-id': 1.0.1(@types/react@18.2.74)(react@18.2.0) + '@radix-ui/react-popper': 1.1.3(@types/react-dom@18.2.24)(@types/react@18.2.74)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-portal': 1.0.4(@types/react-dom@18.2.24)(@types/react@18.2.74)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-presence': 1.0.1(@types/react-dom@18.2.24)(@types/react@18.2.74)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.24)(@types/react@18.2.74)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-slot': 1.0.2(@types/react@18.2.74)(react@18.2.0) + '@radix-ui/react-use-controllable-state': 1.0.1(@types/react@18.2.74)(react@18.2.0) + '@types/react': 18.2.74 + '@types/react-dom': 18.2.24 + aria-hidden: 1.2.4 + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + react-remove-scroll: 2.5.5(@types/react@18.2.74)(react@18.2.0) + dev: false + + /@radix-ui/react-popper@1.1.3(@types/react-dom@18.2.24)(@types/react@18.2.74)(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-cKpopj/5RHZWjrbF2846jBNacjQVwkP068DfmgrNJXpvVWrOvlAmE9xSiy5OqeE+Gi8D9fP+oDhUnPqNMY8/5w==} + peerDependencies: + '@types/react': '*' + '@types/react-dom': '*' + react: ^16.8 || ^17.0 || ^18.0 + react-dom: ^16.8 || ^17.0 || ^18.0 + peerDependenciesMeta: + '@types/react': + optional: true + '@types/react-dom': + optional: true + dependencies: + '@babel/runtime': 7.24.4 + '@floating-ui/react-dom': 2.0.8(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-arrow': 1.0.3(@types/react-dom@18.2.24)(@types/react@18.2.74)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-compose-refs': 1.0.1(@types/react@18.2.74)(react@18.2.0) + '@radix-ui/react-context': 1.0.1(@types/react@18.2.74)(react@18.2.0) + '@radix-ui/react-primitive': 1.0.3(@types/react-dom@18.2.24)(@types/react@18.2.74)(react-dom@18.2.0)(react@18.2.0) + '@radix-ui/react-use-callback-ref': 1.0.1(@types/react@18.2.74)(react@18.2.0) + '@radix-ui/react-use-layout-effect': 1.0.1(@types/react@18.2.74)(react@18.2.0) + '@radix-ui/react-use-rect': 1.0.1(@types/react@18.2.74)(react@18.2.0) + '@radix-ui/react-use-size': 1.0.1(@types/react@18.2.74)(react@18.2.0) + '@radix-ui/rect': 1.0.1 + '@types/react': 18.2.74 + '@types/react-dom': 18.2.24 + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + dev: false + /@radix-ui/react-portal@1.0.4(@types/react-dom@18.2.24)(@types/react@18.2.74)(react-dom@18.2.0)(react@18.2.0): resolution: {integrity: sha512-Qki+C/EuGUVCQTOTD5vzJzJuMUlewbzuKyUy+/iHM2uwGiru9gZeBJtHAPKAEkB5KWGi9mP/CHKcY0wt1aW45Q==} peerDependencies: @@ -3874,6 +3608,21 @@ packages: react: 18.2.0 dev: false + /@radix-ui/react-use-rect@1.0.1(@types/react@18.2.74)(react@18.2.0): + resolution: {integrity: sha512-Cq5DLuSiuYVKNU8orzJMbl15TXilTnJKUCltMVQg53BQOF1/C5toAaGrowkgksdBQ9H+SRL23g0HDmg9tvmxXw==} + peerDependencies: + '@types/react': '*' + react: ^16.8 || ^17.0 || ^18.0 + peerDependenciesMeta: + '@types/react': + optional: true + dependencies: + '@babel/runtime': 7.24.4 + '@radix-ui/rect': 1.0.1 + '@types/react': 18.2.74 + react: 18.2.0 + dev: false + /@radix-ui/react-use-size@1.0.1(@types/react@18.2.74)(react@18.2.0): resolution: {integrity: sha512-ibay+VqrgcaI6veAojjofPATwledXiSmX+C0KrBk/xgpX9rBzPV3OsfwlhQdUOFbh+LKQorLYT+xTXW9V8yd0g==} peerDependencies: @@ -3910,6 +3659,12 @@ packages: react-dom: 18.2.0(react@18.2.0) dev: false + /@radix-ui/rect@1.0.1: + resolution: {integrity: sha512-fyrgCaedtvMg9NK3en0pnOYJdtfwxUcNolezkNPUsoX57X8oQk+NkqcvzHXD2uKNij6GXmWU9NDru2IWjrO4BQ==} + dependencies: + '@babel/runtime': 7.24.4 + dev: false + /@rollup/plugin-babel@6.0.4(@babel/core@7.24.4): resolution: {integrity: sha512-YF7Y52kFdFT/xVSuVdjkV5ZdX/3YtmX0QulG+x0taQOtJdHYzVU61aSSkAgVJ7NOv6qPkIYiJSgSWWN/DM5sGw==} engines: {node: '>=14.0.0'} @@ -4272,9 +4027,11 @@ packages: resolution: {integrity: sha512-0NgftHUcV4v34VhXm8QBSftKVXtbkBG3ViCjs6+eJ5a6y6Mi/jiFGPc1sC7QK+9BFhWrURE3EOggmWaSxL9OzQ==} dependencies: '@types/lodash': 4.17.0 + dev: false /@types/lodash@4.17.0: resolution: {integrity: sha512-t7dhREVv6dbNj0q17X12j7yDG4bD/DHYX7o5/DbDxobP0HnGPgpRz2Ej77aL7TZT3DSw13fqUTj8J4mMnqa7WA==} + dev: false /@types/mdast@3.0.15: resolution: {integrity: sha512-LnwD+mUEfxWMa1QpDraczIn6k0Ee3SMicuYSSzS6ZYl2gKS09EClnJYGd8Du6rfc5r/GZEk5o1mRb8TaTj03sQ==} @@ -5434,6 +5191,11 @@ packages: engines: {node: '>=0.8'} dev: true + /clsx@1.2.1: + resolution: {integrity: sha512-EcR6r5a8bj6pu3ycsa/E/cKVGuTgZJZdsyUYHOksG/UHIiKfjxzRxYJpyVBwYaQeOvghal9fcc4PidlgzugAQg==} + engines: {node: '>=6'} + dev: false + /clsx@2.0.0: resolution: {integrity: sha512-rQ1+kcj+ttHG0MKVGBUXwayCCF1oh39BF5COIpRzuCEv8Mwjv0XucrI2ExNTOn9IlLifGClWQcU9BrZORvtw6Q==} engines: {node: '>=6'} @@ -5776,43 +5538,12 @@ packages: shebang-command: 2.0.0 which: 2.0.2 - /css-blank-pseudo@5.0.2(postcss@8.4.38): - resolution: {integrity: sha512-aCU4AZ7uEcVSUzagTlA9pHciz7aWPKA/YzrEkpdSopJ2pvhIxiQ5sYeMz1/KByxlIo4XBdvMNJAVKMg/GRnhfw==} - engines: {node: ^14 || ^16 || >=18} - peerDependencies: - postcss: ^8.4 - dependencies: - postcss: 8.4.38 - postcss-selector-parser: 6.0.16 - dev: true - - /css-has-pseudo@5.0.2(postcss@8.4.38): - resolution: {integrity: sha512-q+U+4QdwwB7T9VEW/LyO6CFrLAeLqOykC5mDqJXc7aKZAhDbq7BvGT13VGJe+IwBfdN2o3Xdw2kJ5IxwV1Sc9Q==} - engines: {node: ^14 || ^16 || >=18} - peerDependencies: - postcss: ^8.4 - dependencies: - '@csstools/selector-specificity': 2.2.0(postcss-selector-parser@6.0.16) - postcss: 8.4.38 - postcss-selector-parser: 6.0.16 - postcss-value-parser: 4.2.0 - dev: true - /css-in-js-utils@3.1.0: resolution: {integrity: sha512-fJAcud6B3rRu+KHYk+Bwf+WFL2MDCJJ1XG9x137tJQ0xYxor7XziQtuGFbWNdqrvF4Tk26O3H73nfVqXt/fW1A==} dependencies: hyphenate-style-name: 1.0.4 dev: false - /css-prefers-color-scheme@8.0.2(postcss@8.4.38): - resolution: {integrity: sha512-OvFghizHJ45x7nsJJUSYLyQNTzsCU8yWjxAc/nhPQg1pbs18LMoET8N3kOweFDPy0JV0OSXN2iqRFhPBHYOeMA==} - engines: {node: ^14 || ^16 || >=18} - peerDependencies: - postcss: ^8.4 - dependencies: - postcss: 8.4.38 - dev: true - /css-select@5.1.0: resolution: {integrity: sha512-nwoRF1rvRRnnCqqY7updORDsuqKzqYJ28+oSMaJMMgOauh3fvwHqMS7EZpIPqK8GL+g9mKxF1vP/ZjSeNjEVHg==} dependencies: @@ -5844,10 +5575,6 @@ packages: engines: {node: '>= 6'} dev: false - /cssdb@7.11.2: - resolution: {integrity: sha512-lhQ32TFkc1X4eTefGfYPvgovRSzIMofHkigfH8nWtyRL4XJLsRhJFreRvEgKzept7x1rjBuy3J/MurXLaFxW/A==} - dev: true - /cssesc@3.0.0: resolution: {integrity: sha512-/Tb/JcjK111nNScGob5MNtsntNM1aCNUDipB/TkwZFhyDrrE47SOx/18wF2bbjgc3ZzCSKW1T5nt5EbFoAz/Vg==} engines: {node: '>=4'} @@ -5984,11 +5711,6 @@ packages: resolution: {integrity: sha512-z2S+W9X73hAUUki+N+9Za2lBlun89zigOyGrsax+KUQ6wKW4ZoWpEYBkGhQjwAjjDCkWxhY0VKEhk8wzY7F5cA==} engines: {node: '>=0.10.0'} - /decode-uri-component@0.4.1: - resolution: {integrity: sha512-+8VxcR21HhTy8nOt6jf20w0c9CADrw1O8d+VZ/YzzCt4bJ3uBjw+D1q2osAB8RnpwwaeYBxy0HyKQxD5JBMuuQ==} - engines: {node: '>=14.16'} - dev: true - /deep-is@0.1.4: resolution: {integrity: sha512-oIPzksmTg4/MriiaYGO+okXDT7ztn/w3Eptv/+gSIdMdKsJo0u4CfYNFJPy+4SKMuCqGw2wxnA+URMg3t8a/bQ==} dev: true @@ -8483,6 +8205,7 @@ packages: /lodash-es@4.17.21: resolution: {integrity: sha512-mKnC+QJ9pWVzv+C4/U3rRsHapFfHvQFoFB92e52xeyGMcX6/OlIl78je1u8vePzYZSkkogMPJ2yjxxsb89cxyw==} + dev: false /lodash.camelcase@4.3.0: resolution: {integrity: sha512-TwuEnCnxbc3rAvhf/LbG7tJUDzhqXyFnv3dtzLOPgCG/hODL7WFnsbwktkD7yUV0RrreP/l1PALq/YSg6VvjlA==} @@ -9334,6 +9057,7 @@ packages: /p-is-promise@4.0.0: resolution: {integrity: sha512-4G3B+86qsIAX/+ip/yhHX9WUcyFKYkQYtE5bGkjpZyGK0Re53RbHky2UKt6RQVkDbUXb8EJRb4iga2SaI360nQ==} engines: {node: '>=12'} + dev: false /p-limit@2.3.0: resolution: {integrity: sha512-//88mFWSJx8lxCzwdAABTJL2MyWB12+eIY7MDL2SqLmAkeKU9qxRvWuSyTjm3FUmpBEMuFfckAIqEaVGUDxb6w==} @@ -9719,166 +9443,6 @@ packages: engines: {node: '>= 0.4'} dev: true - /postcss-attribute-case-insensitive@6.0.3(postcss@8.4.38): - resolution: {integrity: sha512-KHkmCILThWBRtg+Jn1owTnHPnFit4OkqS+eKiGEOPIGke54DCeYGJ6r0Fx/HjfE9M9kznApCLcU0DvnPchazMQ==} - engines: {node: ^14 || ^16 || >=18} - peerDependencies: - postcss: ^8.4 - dependencies: - postcss: 8.4.38 - postcss-selector-parser: 6.0.16 - dev: true - - /postcss-clamp@4.1.0(postcss@8.4.38): - resolution: {integrity: sha512-ry4b1Llo/9zz+PKC+030KUnPITTJAHeOwjfAyyB60eT0AorGLdzp52s31OsPRHRf8NchkgFoG2y6fCfn1IV1Ow==} - engines: {node: '>=7.6.0'} - peerDependencies: - postcss: ^8.4.6 - dependencies: - postcss: 8.4.38 - postcss-value-parser: 4.2.0 - dev: true - - /postcss-color-functional-notation@5.1.0(postcss@8.4.38): - resolution: {integrity: sha512-w2R4py6zrVE1U7FwNaAc76tNQlG9GLkrBbcFw+VhUjyDDiV28vfZG+l4LyPmpoQpeSJVtu8VgNjE8Jv5SpC7dQ==} - engines: {node: ^14 || ^16 || >=18} - peerDependencies: - postcss: ^8.4 - dependencies: - '@csstools/postcss-progressive-custom-properties': 2.3.0(postcss@8.4.38) - postcss: 8.4.38 - postcss-value-parser: 4.2.0 - dev: true - - /postcss-color-hex-alpha@9.0.4(postcss@8.4.38): - resolution: {integrity: sha512-XQZm4q4fNFqVCYMGPiBjcqDhuG7Ey2xrl99AnDJMyr5eDASsAGalndVgHZF8i97VFNy1GQeZc4q2ydagGmhelQ==} - engines: {node: ^14 || ^16 || >=18} - peerDependencies: - postcss: ^8.4 - dependencies: - '@csstools/utilities': 1.0.0(postcss@8.4.38) - postcss: 8.4.38 - postcss-value-parser: 4.2.0 - dev: true - - /postcss-color-rebeccapurple@8.0.2(postcss@8.4.38): - resolution: {integrity: sha512-xWf/JmAxVoB5bltHpXk+uGRoGFwu4WDAR7210el+iyvTdqiKpDhtcT8N3edXMoVJY0WHFMrKMUieql/wRNiXkw==} - engines: {node: ^14 || ^16 || >=18} - peerDependencies: - postcss: ^8.4 - dependencies: - postcss: 8.4.38 - postcss-value-parser: 4.2.0 - dev: true - - /postcss-custom-media@9.1.5(postcss@8.4.38): - resolution: {integrity: sha512-GStyWMz7Qbo/Gtw1xVspzVSX8eipgNg4lpsO3CAeY4/A1mzok+RV6MCv3fg62trWijh/lYEj6vps4o8JcBBpDA==} - engines: {node: ^14 || ^16 || >=18} - peerDependencies: - postcss: ^8.4 - dependencies: - '@csstools/cascade-layer-name-parser': 1.0.9(@csstools/css-parser-algorithms@2.6.1)(@csstools/css-tokenizer@2.2.4) - '@csstools/css-parser-algorithms': 2.6.1(@csstools/css-tokenizer@2.2.4) - '@csstools/css-tokenizer': 2.2.4 - '@csstools/media-query-list-parser': 2.1.9(@csstools/css-parser-algorithms@2.6.1)(@csstools/css-tokenizer@2.2.4) - postcss: 8.4.38 - dev: true - - /postcss-custom-properties@13.3.7(postcss@8.4.38): - resolution: {integrity: sha512-0N9F/GUCr/D0IazjzHahyYW2bQVDT6qDtEudiGHAhMd3XqhfM3VmfYVlkc/40DOhsPtngSNb54/Ctu8msvFOvQ==} - engines: {node: ^14 || ^16 || >=18} - peerDependencies: - postcss: ^8.4 - dependencies: - '@csstools/cascade-layer-name-parser': 1.0.9(@csstools/css-parser-algorithms@2.6.1)(@csstools/css-tokenizer@2.2.4) - '@csstools/css-parser-algorithms': 2.6.1(@csstools/css-tokenizer@2.2.4) - '@csstools/css-tokenizer': 2.2.4 - '@csstools/utilities': 1.0.0(postcss@8.4.38) - postcss: 8.4.38 - postcss-value-parser: 4.2.0 - dev: true - - /postcss-custom-selectors@7.1.8(postcss@8.4.38): - resolution: {integrity: sha512-fqDkGSEsO7+oQaqdRdR8nwwqH+N2uk6LE/2g4myVJJYz/Ly418lHKEleKTdV/GzjBjFcG4n0dbfuH/Pd2BE8YA==} - engines: {node: ^14 || ^16 || >=18} - peerDependencies: - postcss: ^8.4 - dependencies: - '@csstools/cascade-layer-name-parser': 1.0.9(@csstools/css-parser-algorithms@2.6.1)(@csstools/css-tokenizer@2.2.4) - '@csstools/css-parser-algorithms': 2.6.1(@csstools/css-tokenizer@2.2.4) - '@csstools/css-tokenizer': 2.2.4 - postcss: 8.4.38 - postcss-selector-parser: 6.0.16 - dev: true - - /postcss-dir-pseudo-class@7.0.2(postcss@8.4.38): - resolution: {integrity: sha512-cMnslilYxBf9k3qejnovrUONZx1rXeUZJw06fgIUBzABJe3D2LiLL5WAER7Imt3nrkaIgG05XZBztueLEf5P8w==} - engines: {node: ^14 || ^16 || >=18} - peerDependencies: - postcss: ^8.4 - dependencies: - postcss: 8.4.38 - postcss-selector-parser: 6.0.16 - dev: true - - /postcss-double-position-gradients@4.0.4(postcss@8.4.38): - resolution: {integrity: sha512-nUAbUXURemLXIrl4Xoia2tiu5z/n8sY+BVDZApoeT9BlpByyrp02P/lFCRrRvZ/zrGRE+MOGLhk8o7VcMCtPtQ==} - engines: {node: ^14 || ^16 || >=18} - peerDependencies: - postcss: ^8.4 - dependencies: - '@csstools/postcss-progressive-custom-properties': 2.3.0(postcss@8.4.38) - postcss: 8.4.38 - postcss-value-parser: 4.2.0 - dev: true - - /postcss-focus-visible@8.0.2(postcss@8.4.38): - resolution: {integrity: sha512-f/Vd+EC/GaKElknU59esVcRYr/Y3t1ZAQyL4u2xSOgkDy4bMCmG7VP5cGvj3+BTLNE9ETfEuz2nnt4qkZwTTeA==} - engines: {node: ^14 || ^16 || >=18} - peerDependencies: - postcss: ^8.4 - dependencies: - postcss: 8.4.38 - postcss-selector-parser: 6.0.16 - dev: true - - /postcss-focus-within@7.0.2(postcss@8.4.38): - resolution: {integrity: sha512-AHAJ89UQBcqBvFgQJE9XasGuwMNkKsGj4D/f9Uk60jFmEBHpAL14DrnSk3Rj+SwZTr/WUG+mh+Rvf8fid/346w==} - engines: {node: ^14 || ^16 || >=18} - peerDependencies: - postcss: ^8.4 - dependencies: - postcss: 8.4.38 - postcss-selector-parser: 6.0.16 - dev: true - - /postcss-font-variant@5.0.0(postcss@8.4.38): - resolution: {integrity: sha512-1fmkBaCALD72CK2a9i468mA/+tr9/1cBxRRMXOUaZqO43oWPR5imcyPjXwuv7PXbCid4ndlP5zWhidQVVa3hmA==} - peerDependencies: - postcss: ^8.1.0 - dependencies: - postcss: 8.4.38 - dev: true - - /postcss-gap-properties@4.0.1(postcss@8.4.38): - resolution: {integrity: sha512-V5OuQGw4lBumPlwHWk/PRfMKjaq/LTGR4WDTemIMCaMevArVfCCA9wBJiL1VjDAd+rzuCIlkRoRvDsSiAaZ4Fg==} - engines: {node: ^14 || ^16 || >=18} - peerDependencies: - postcss: ^8.4 - dependencies: - postcss: 8.4.38 - dev: true - - /postcss-image-set-function@5.0.2(postcss@8.4.38): - resolution: {integrity: sha512-Sszjwo0ubETX0Fi5MvpYzsONwrsjeabjMoc5YqHvURFItXgIu3HdCjcVuVKGMPGzKRhgaknmdM5uVWInWPJmeg==} - engines: {node: ^14 || ^16 || >=18} - peerDependencies: - postcss: ^8.4 - dependencies: - postcss: 8.4.38 - postcss-value-parser: 4.2.0 - dev: true - /postcss-import@14.1.0(postcss@8.4.38): resolution: {integrity: sha512-flwI+Vgm4SElObFVPpTIT7SU7R3qk2L7PyduMcokiaVKuWv9d/U+Gm/QAd8NDLuykTWTkcrjOeD2Pp1rMeBTGw==} engines: {node: '>=10.0.0'} @@ -9902,14 +9466,6 @@ packages: resolve: 1.22.8 dev: true - /postcss-initial@4.0.1(postcss@8.4.38): - resolution: {integrity: sha512-0ueD7rPqX8Pn1xJIjay0AZeIuDoF+V+VvMt/uOnn+4ezUKhZM/NokDeP6DwMNyIoYByuN/94IQnt5FEkaN59xQ==} - peerDependencies: - postcss: ^8.0.0 - dependencies: - postcss: 8.4.38 - dev: true - /postcss-js@4.0.1(postcss@8.4.38): resolution: {integrity: sha512-dDLF8pEO191hJMtlHFPRa8xsizHaM82MLfNkUHdUtVEV3tgTp5oj+8qbEqYM57SLfc74KSbw//4SeJma2LRVIw==} engines: {node: ^12 || ^14 || >= 16} @@ -9919,19 +9475,6 @@ packages: camelcase-css: 2.0.1 postcss: 8.4.38 - /postcss-lab-function@5.2.3(postcss@8.4.38): - resolution: {integrity: sha512-fi32AYKzji5/rvgxo5zXHFvAYBw0u0OzELbeCNjEZVLUir18Oj+9RmNphtM8QdLUaUnrfx8zy8vVYLmFLkdmrQ==} - engines: {node: ^14 || ^16 || >=18} - peerDependencies: - postcss: ^8.4 - dependencies: - '@csstools/css-color-parser': 1.6.3(@csstools/css-parser-algorithms@2.6.1)(@csstools/css-tokenizer@2.2.4) - '@csstools/css-parser-algorithms': 2.6.1(@csstools/css-tokenizer@2.2.4) - '@csstools/css-tokenizer': 2.2.4 - '@csstools/postcss-progressive-custom-properties': 2.3.0(postcss@8.4.38) - postcss: 8.4.38 - dev: true - /postcss-load-config@3.1.4(postcss@8.4.38): resolution: {integrity: sha512-6DiM4E7v4coTE4uzA8U//WhtPwyhiim3eyjEMFCnUpzbrkK9wJHgKDT2mR+HbtSrd/NubVaYTOpSpjUl8NQeRg==} engines: {node: '>= 10'} @@ -9965,16 +9508,6 @@ packages: yaml: 2.4.1 dev: true - /postcss-logical@6.2.0(postcss@8.4.38): - resolution: {integrity: sha512-aqlfKGaY0nnbgI9jwUikp4gJKBqcH5noU/EdnIVceghaaDPYhZuyJVxlvWNy55tlTG5tunRKCTAX9yljLiFgmw==} - engines: {node: ^14 || ^16 || >=18} - peerDependencies: - postcss: ^8.4 - dependencies: - postcss: 8.4.38 - postcss-value-parser: 4.2.0 - dev: true - /postcss-nested@6.0.0(postcss@8.4.38): resolution: {integrity: sha512-0DkamqrPcmkBDsLn+vQDIrtkSbNkv5AD/M322ySo9kqFkCIYklym2xEmWkwo+Y3/qZo34tzEPNUw4y7yMCdv5w==} engines: {node: '>=12.0'} @@ -9994,137 +9527,6 @@ packages: postcss-selector-parser: 6.0.16 dev: true - /postcss-nesting@11.3.0(postcss@8.4.38): - resolution: {integrity: sha512-JlS10AQm/RzyrUGgl5irVkAlZYTJ99mNueUl+Qab+TcHhVedLiylWVkKBhRale+rS9yWIJK48JVzQlq3LcSdeA==} - engines: {node: ^14 || ^16 || >=18} - peerDependencies: - postcss: ^8.4 - dependencies: - '@csstools/selector-specificity': 2.2.0(postcss-selector-parser@6.0.16) - postcss: 8.4.38 - postcss-selector-parser: 6.0.16 - dev: true - - /postcss-opacity-percentage@2.0.0(postcss@8.4.38): - resolution: {integrity: sha512-lyDrCOtntq5Y1JZpBFzIWm2wG9kbEdujpNt4NLannF+J9c8CgFIzPa80YQfdza+Y+yFfzbYj/rfoOsYsooUWTQ==} - engines: {node: ^14 || ^16 || >=18} - peerDependencies: - postcss: ^8.2 - dependencies: - postcss: 8.4.38 - dev: true - - /postcss-overflow-shorthand@4.0.1(postcss@8.4.38): - resolution: {integrity: sha512-HQZ0qi/9iSYHW4w3ogNqVNr2J49DHJAl7r8O2p0Meip38jsdnRPgiDW7r/LlLrrMBMe3KHkvNtAV2UmRVxzLIg==} - engines: {node: ^14 || ^16 || >=18} - peerDependencies: - postcss: ^8.4 - dependencies: - postcss: 8.4.38 - postcss-value-parser: 4.2.0 - dev: true - - /postcss-page-break@3.0.4(postcss@8.4.38): - resolution: {integrity: sha512-1JGu8oCjVXLa9q9rFTo4MbeeA5FMe00/9C7lN4va606Rdb+HkxXtXsmEDrIraQ11fGz/WvKWa8gMuCKkrXpTsQ==} - peerDependencies: - postcss: ^8 - dependencies: - postcss: 8.4.38 - dev: true - - /postcss-place@8.0.1(postcss@8.4.38): - resolution: {integrity: sha512-Ow2LedN8sL4pq8ubukO77phSVt4QyCm35ZGCYXKvRFayAwcpgB0sjNJglDoTuRdUL32q/ZC1VkPBo0AOEr4Uiw==} - engines: {node: ^14 || ^16 || >=18} - peerDependencies: - postcss: ^8.4 - dependencies: - postcss: 8.4.38 - postcss-value-parser: 4.2.0 - dev: true - - /postcss-preset-env@8.5.1(postcss@8.4.38): - resolution: {integrity: sha512-qhWnJJjP6ArLUINWJ38t6Aftxnv9NW6cXK0NuwcLCcRilbuw72dSFLkCVUJeCfHGgJiKzX+pnhkGiki0PEynWg==} - engines: {node: ^14 || ^16 || >=18} - peerDependencies: - postcss: ^8.4 - dependencies: - '@csstools/postcss-cascade-layers': 3.0.1(postcss@8.4.38) - '@csstools/postcss-color-function': 2.2.3(postcss@8.4.38) - '@csstools/postcss-color-mix-function': 1.0.3(postcss@8.4.38) - '@csstools/postcss-font-format-keywords': 2.0.2(postcss@8.4.38) - '@csstools/postcss-gradients-interpolation-method': 3.0.6(postcss@8.4.38) - '@csstools/postcss-hwb-function': 2.2.2(postcss@8.4.38) - '@csstools/postcss-ic-unit': 2.0.4(postcss@8.4.38) - '@csstools/postcss-is-pseudo-class': 3.2.1(postcss@8.4.38) - '@csstools/postcss-logical-float-and-clear': 1.0.1(postcss@8.4.38) - '@csstools/postcss-logical-resize': 1.0.1(postcss@8.4.38) - '@csstools/postcss-logical-viewport-units': 1.0.3(postcss@8.4.38) - '@csstools/postcss-media-minmax': 1.1.4(postcss@8.4.38) - '@csstools/postcss-media-queries-aspect-ratio-number-values': 1.0.4(postcss@8.4.38) - '@csstools/postcss-nested-calc': 2.0.2(postcss@8.4.38) - '@csstools/postcss-normalize-display-values': 2.0.1(postcss@8.4.38) - '@csstools/postcss-oklab-function': 2.2.3(postcss@8.4.38) - '@csstools/postcss-progressive-custom-properties': 2.3.0(postcss@8.4.38) - '@csstools/postcss-relative-color-syntax': 1.0.2(postcss@8.4.38) - '@csstools/postcss-scope-pseudo-class': 2.0.2(postcss@8.4.38) - '@csstools/postcss-stepped-value-functions': 2.1.1(postcss@8.4.38) - '@csstools/postcss-text-decoration-shorthand': 2.2.4(postcss@8.4.38) - '@csstools/postcss-trigonometric-functions': 2.1.1(postcss@8.4.38) - '@csstools/postcss-unset-value': 2.0.1(postcss@8.4.38) - autoprefixer: 10.4.19(postcss@8.4.38) - browserslist: 4.23.0 - css-blank-pseudo: 5.0.2(postcss@8.4.38) - css-has-pseudo: 5.0.2(postcss@8.4.38) - css-prefers-color-scheme: 8.0.2(postcss@8.4.38) - cssdb: 7.11.2 - postcss: 8.4.38 - postcss-attribute-case-insensitive: 6.0.3(postcss@8.4.38) - postcss-clamp: 4.1.0(postcss@8.4.38) - postcss-color-functional-notation: 5.1.0(postcss@8.4.38) - postcss-color-hex-alpha: 9.0.4(postcss@8.4.38) - postcss-color-rebeccapurple: 8.0.2(postcss@8.4.38) - postcss-custom-media: 9.1.5(postcss@8.4.38) - postcss-custom-properties: 13.3.7(postcss@8.4.38) - postcss-custom-selectors: 7.1.8(postcss@8.4.38) - postcss-dir-pseudo-class: 7.0.2(postcss@8.4.38) - postcss-double-position-gradients: 4.0.4(postcss@8.4.38) - postcss-focus-visible: 8.0.2(postcss@8.4.38) - postcss-focus-within: 7.0.2(postcss@8.4.38) - postcss-font-variant: 5.0.0(postcss@8.4.38) - postcss-gap-properties: 4.0.1(postcss@8.4.38) - postcss-image-set-function: 5.0.2(postcss@8.4.38) - postcss-initial: 4.0.1(postcss@8.4.38) - postcss-lab-function: 5.2.3(postcss@8.4.38) - postcss-logical: 6.2.0(postcss@8.4.38) - postcss-nesting: 11.3.0(postcss@8.4.38) - postcss-opacity-percentage: 2.0.0(postcss@8.4.38) - postcss-overflow-shorthand: 4.0.1(postcss@8.4.38) - postcss-page-break: 3.0.4(postcss@8.4.38) - postcss-place: 8.0.1(postcss@8.4.38) - postcss-pseudo-class-any-link: 8.0.2(postcss@8.4.38) - postcss-replace-overflow-wrap: 4.0.0(postcss@8.4.38) - postcss-selector-not: 7.0.2(postcss@8.4.38) - postcss-value-parser: 4.2.0 - dev: true - - /postcss-pseudo-class-any-link@8.0.2(postcss@8.4.38): - resolution: {integrity: sha512-FYTIuRE07jZ2CW8POvctRgArQJ43yxhr5vLmImdKUvjFCkR09kh8pIdlCwdx/jbFm7MiW4QP58L4oOUv3grQYA==} - engines: {node: ^14 || ^16 || >=18} - peerDependencies: - postcss: ^8.4 - dependencies: - postcss: 8.4.38 - postcss-selector-parser: 6.0.16 - dev: true - - /postcss-replace-overflow-wrap@4.0.0(postcss@8.4.38): - resolution: {integrity: sha512-KmF7SBPphT4gPPcKZc7aDkweHiKEEO8cla/GjcBK+ckKxiZslIu3C4GCRW3DNfL0o7yW7kMQu9xlZ1kXRXLXtw==} - peerDependencies: - postcss: ^8.0.3 - dependencies: - postcss: 8.4.38 - dev: true - /postcss-safe-parser@6.0.0(postcss@8.4.38): resolution: {integrity: sha512-FARHN8pwH+WiS2OPCxJI8FuRJpTVnn6ZNFiqAM2aeW2LwTHWWmWgIyKC6cUo0L8aeKiF/14MNvnpls6R2PBeMQ==} engines: {node: '>=12.0'} @@ -10143,16 +9545,6 @@ packages: postcss: 8.4.38 dev: true - /postcss-selector-not@7.0.2(postcss@8.4.38): - resolution: {integrity: sha512-/SSxf/90Obye49VZIfc0ls4H0P6i6V1iHv0pzZH8SdgvZOPFkF37ef1r5cyWcMflJSFJ5bfuoluTnFnBBFiuSA==} - engines: {node: ^14 || ^16 || >=18} - peerDependencies: - postcss: ^8.4 - dependencies: - postcss: 8.4.38 - postcss-selector-parser: 6.0.16 - dev: true - /postcss-selector-parser@6.0.16: resolution: {integrity: sha512-A0RVJrX+IUkVZbW3ClroRWurercFhieevHB38sr2+l9eUClMqome3LmEmnhlNy+5Mr2EYN6B2Kaw9wYdd+VHiw==} engines: {node: '>=4'} @@ -10338,7 +9730,6 @@ packages: loose-envify: 1.4.0 object-assign: 4.1.1 react-is: 16.13.1 - dev: true /proxy-addr@2.0.7: resolution: {integrity: sha512-llQsMLSUDUPT44jdrU/O37qlnifitDP+ZwrmmZcoSKyLKvtZxpyV0n2/bD/N4tBAAZ/gJEdZU7KMraoK1+XYAg==} @@ -10425,13 +9816,24 @@ packages: scheduler: 0.23.0 dev: false + /react-draggable@4.4.6(react-dom@18.2.0)(react@18.2.0): + resolution: {integrity: sha512-LtY5Xw1zTPqHkVmtM3X8MUOxNDOUhv/khTgBgrUvwaS064bwVvxT+q5El0uUFNx5IEPKXuRejr7UqLwBIg5pdw==} + peerDependencies: + react: '>= 16.3.0' + react-dom: '>= 16.3.0' + dependencies: + clsx: 1.2.1 + prop-types: 15.8.1 + react: 18.2.0 + react-dom: 18.2.0(react@18.2.0) + dev: false + /react-fast-compare@3.2.2: resolution: {integrity: sha512-nsO+KSNgo1SbJqJEYRE9ERzo7YtYbou/OqjSQKxV7jcKox7+usiUVZOAC+XnDOABXggQTno0Y1CpVnuWEc1boQ==} dev: false /react-is@16.13.1: resolution: {integrity: sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==} - dev: true /react-refresh@0.14.0: resolution: {integrity: sha512-wViHqhAd8OHeLS/IRMJjTSDHF3U9eWi62F/MledQGPdJGDhodXJ9PBLNGr6WWL7qlH12Mt3TyTpbS+hGXMjCzQ==} @@ -11214,11 +10616,6 @@ packages: resolution: {integrity: sha512-sh8PWc/ftMqAAdFiBu6Fy6JUOYjqDJBJvIhpfDMyHrr0Rbp5liZqd4TjtQ/RgfLjKFZb+LMx5hpml5qOWy0qvg==} dev: true - /split-on-first@3.0.0: - resolution: {integrity: sha512-qxQJTx2ryR0Dw0ITYyekNQWpz6f8dGd7vffGNflQQ3Iqj9NJ6qiZ7ELpZsJ/QBhIVAiDfXdag3+Gp8RvWa62AA==} - engines: {node: '>=12'} - dev: true - /split2@3.2.2: resolution: {integrity: sha512-9NThjpgZnifTkJpzTZ7Eue85S49QwpNhZTq6GRJwObb6jnLFNGB7Qm73V5HewTROPyxD0C29xqmaI68bQtV+hg==} dependencies: @@ -11533,22 +10930,22 @@ packages: '@babel/runtime': 7.24.4 dev: false - /tailwind-variants@0.2.1(tailwindcss@3.2.4): + /tailwind-variants@0.2.1(tailwindcss@3.2.7): resolution: {integrity: sha512-2xmhAf4UIc3PijOUcJPA1LP4AbxhpcHuHM2C26xM0k81r0maAO6uoUSHl3APmvHZcY5cZCY/bYuJdfFa4eGoaw==} engines: {node: '>=16.x', pnpm: '>=7.x'} peerDependencies: tailwindcss: '*' dependencies: tailwind-merge: 2.2.2 - tailwindcss: 3.2.4(postcss@8.4.38) + tailwindcss: 3.2.7(postcss@8.4.38) dev: false - /tailwindcss-animate@1.0.7(tailwindcss@3.2.4): + /tailwindcss-animate@1.0.7(tailwindcss@3.2.7): resolution: {integrity: sha512-bl6mpH3T7I3UFxuvDEXLxy/VuFxBk5bbzplh7tXI68mwMokNYd1t9qPBHlnyTwfa4JGC4zP516I1hYYtQ/vspA==} peerDependencies: tailwindcss: '>=3.0.0 || insiders' dependencies: - tailwindcss: 3.2.4(postcss@8.4.38) + tailwindcss: 3.2.7(postcss@8.4.38) dev: false /tailwindcss-rem-to-px@0.1.0: @@ -11559,8 +10956,8 @@ packages: - ts-node dev: true - /tailwindcss@3.2.4(postcss@8.4.38): - resolution: {integrity: sha512-AhwtHCKMtR71JgeYDaswmZXhPcW9iuI9Sp2LvZPo9upDZ7231ZJ7eA9RaURbhpXGVlrjX4cFNlB4ieTetEb7hQ==} + /tailwindcss@3.2.7(postcss@8.4.38): + resolution: {integrity: sha512-B6DLqJzc21x7wntlH/GsZwEXTBttVSl1FtCzC8WP4oBc/NKef7kaax5jeihkkCEWc831/5NDJ9gRNDK6NEioQQ==} engines: {node: '>=12.13.0'} hasBin: true peerDependencies: