@fanvue/ui 2.14.3 → 2.15.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (38) hide show
  1. package/dist/cjs/components/Chip/Chip.cjs +5 -2
  2. package/dist/cjs/components/Chip/Chip.cjs.map +1 -1
  3. package/dist/cjs/components/Dialog/Dialog.cjs +3 -1
  4. package/dist/cjs/components/Dialog/Dialog.cjs.map +1 -1
  5. package/dist/cjs/components/Drawer/Drawer.cjs +15 -4
  6. package/dist/cjs/components/Drawer/Drawer.cjs.map +1 -1
  7. package/dist/cjs/components/DropdownMenu/DropdownMenu.cjs +72 -2
  8. package/dist/cjs/components/DropdownMenu/DropdownMenu.cjs.map +1 -1
  9. package/dist/cjs/components/InfoBox/InfoBox.cjs +3 -1
  10. package/dist/cjs/components/InfoBox/InfoBox.cjs.map +1 -1
  11. package/dist/cjs/components/InlineEdit/InlineEdit.cjs +176 -0
  12. package/dist/cjs/components/InlineEdit/InlineEdit.cjs.map +1 -0
  13. package/dist/cjs/components/Logo/Logo.cjs +13 -5
  14. package/dist/cjs/components/Logo/Logo.cjs.map +1 -1
  15. package/dist/cjs/index.cjs +2 -0
  16. package/dist/cjs/index.cjs.map +1 -1
  17. package/dist/cjs/utils/useSuppressClickAfterDrag.cjs +71 -0
  18. package/dist/cjs/utils/useSuppressClickAfterDrag.cjs.map +1 -0
  19. package/dist/components/Chip/Chip.mjs +5 -2
  20. package/dist/components/Chip/Chip.mjs.map +1 -1
  21. package/dist/components/Dialog/Dialog.mjs +3 -1
  22. package/dist/components/Dialog/Dialog.mjs.map +1 -1
  23. package/dist/components/Drawer/Drawer.mjs +15 -4
  24. package/dist/components/Drawer/Drawer.mjs.map +1 -1
  25. package/dist/components/DropdownMenu/DropdownMenu.mjs +72 -2
  26. package/dist/components/DropdownMenu/DropdownMenu.mjs.map +1 -1
  27. package/dist/components/InfoBox/InfoBox.mjs +3 -1
  28. package/dist/components/InfoBox/InfoBox.mjs.map +1 -1
  29. package/dist/components/InlineEdit/InlineEdit.mjs +159 -0
  30. package/dist/components/InlineEdit/InlineEdit.mjs.map +1 -0
  31. package/dist/components/Logo/Logo.mjs +13 -5
  32. package/dist/components/Logo/Logo.mjs.map +1 -1
  33. package/dist/index.d.ts +94 -9
  34. package/dist/index.mjs +2 -0
  35. package/dist/index.mjs.map +1 -1
  36. package/dist/utils/useSuppressClickAfterDrag.mjs +54 -0
  37. package/dist/utils/useSuppressClickAfterDrag.mjs.map +1 -0
  38. package/package.json +7 -8
package/dist/index.d.ts CHANGED
@@ -1166,6 +1166,12 @@ export declare interface ChipProps extends React_2.HTMLAttributes<HTMLElement> {
1166
1166
  disabled?: boolean;
1167
1167
  /** Whether to show a coloured status dot at the leading edge. @default false */
1168
1168
  leftDot?: boolean;
1169
+ /**
1170
+ * Whether the chip uses a dashed border for add/create affordances.
1171
+ * Has no effect when `variant="dark"` or `selected` is `true`.
1172
+ * @default false
1173
+ */
1174
+ dotted?: boolean;
1169
1175
  /** Icon element displayed before the label. */
1170
1176
  leftIcon?: React_2.ReactNode;
1171
1177
  /** Icon element displayed after the label. */
@@ -1630,8 +1636,14 @@ export declare const DialogTitle: React_2.ForwardRefExoticComponent<Omit<DialogP
1630
1636
  /** Props for the {@link DialogTitle} component. */
1631
1637
  export declare type DialogTitleProps = React_2.ComponentPropsWithoutRef<typeof DialogPrimitive.Title>;
1632
1638
 
1633
- /** The element that opens the dialog when clicked. */
1634
- export declare const DialogTrigger: React_2.ForwardRefExoticComponent<DialogPrimitive.DialogTriggerProps & React_2.RefAttributes<HTMLButtonElement>>;
1639
+ /**
1640
+ * The element that opens the dialog when clicked.
1641
+ *
1642
+ * On touch / pen, a press-and-release that crosses a small movement threshold
1643
+ * is treated as a drag and the resulting synthetic click is suppressed —
1644
+ * defends against Android Chrome opening the dialog on a scroll-drag-end.
1645
+ */
1646
+ export declare const DialogTrigger: React_2.ForwardRefExoticComponent<Omit<DialogPrimitive.DialogTriggerProps & React_2.RefAttributes<HTMLButtonElement>, "ref"> & React_2.RefAttributes<HTMLButtonElement>>;
1635
1647
 
1636
1648
  /** Props for the {@link DialogTrigger} component. */
1637
1649
  export declare type DialogTriggerProps = React_2.ComponentPropsWithoutRef<typeof DialogPrimitive.Trigger>;
@@ -1867,14 +1879,20 @@ export declare const DrawerTitle: React_2.ForwardRefExoticComponent<DrawerTitleP
1867
1879
  export declare interface DrawerTitleProps extends React_2.ComponentPropsWithoutRef<typeof DialogPrimitive.Title> {
1868
1880
  }
1869
1881
 
1870
- /** The element that opens the drawer when clicked. */
1871
- export declare const DrawerTrigger: React_2.ForwardRefExoticComponent<DialogPrimitive.DialogTriggerProps & React_2.RefAttributes<HTMLButtonElement>>;
1882
+ /**
1883
+ * The element that opens the drawer when clicked.
1884
+ *
1885
+ * On touch / pen, a press-and-release that crosses a small movement threshold
1886
+ * is treated as a drag and the resulting synthetic click is suppressed —
1887
+ * defends against Android Chrome opening the drawer on a scroll-drag-end.
1888
+ */
1889
+ export declare const DrawerTrigger: React_2.ForwardRefExoticComponent<Omit<DialogPrimitive.DialogTriggerProps & React_2.RefAttributes<HTMLButtonElement>, "ref"> & React_2.RefAttributes<HTMLButtonElement>>;
1872
1890
 
1873
1891
  /** Props for the {@link DrawerTrigger} component. */
1874
1892
  export declare type DrawerTriggerProps = React_2.ComponentPropsWithoutRef<typeof DialogPrimitive.Trigger>;
1875
1893
 
1876
1894
  /** Root component that manages open/close state for a dropdown menu. */
1877
- export declare const DropdownMenu: React_2.FC<DropdownMenuPrimitive.DropdownMenuProps>;
1895
+ export declare function DropdownMenu({ open: openProp, defaultOpen, onOpenChange, children, ...props }: DropdownMenuProps): JSX.Element;
1878
1896
 
1879
1897
  /**
1880
1898
  * The positioned content panel rendered inside a portal.
@@ -1958,8 +1976,15 @@ export declare const DropdownMenuSeparator: React_2.ForwardRefExoticComponent<Dr
1958
1976
  export declare interface DropdownMenuSeparatorProps extends React_2.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.Separator> {
1959
1977
  }
1960
1978
 
1961
- /** The element that toggles the dropdown menu when clicked. */
1962
- export declare const DropdownMenuTrigger: React_2.ForwardRefExoticComponent<DropdownMenuPrimitive.DropdownMenuTriggerProps & React_2.RefAttributes<HTMLButtonElement>>;
1979
+ /**
1980
+ * The element that toggles the dropdown menu when clicked.
1981
+ *
1982
+ * On touch devices, the menu only opens if the press-and-release stays within
1983
+ * a small movement threshold. A drag that incidentally ends over the trigger
1984
+ * (common when scrolling a feed on Android Chrome) is ignored. Mouse and
1985
+ * keyboard interactions are unchanged.
1986
+ */
1987
+ export declare const DropdownMenuTrigger: React_2.ForwardRefExoticComponent<Omit<DropdownMenuPrimitive.DropdownMenuTriggerProps & React_2.RefAttributes<HTMLButtonElement>, "ref"> & React_2.RefAttributes<HTMLButtonElement>>;
1963
1988
 
1964
1989
  /** Props for the {@link DropdownMenuTrigger} component. */
1965
1990
  export declare type DropdownMenuTriggerProps = React_2.ComponentPropsWithoutRef<typeof DropdownMenuPrimitive.Trigger>;
@@ -2397,8 +2422,14 @@ export declare interface InfoBoxProps extends React_2.ComponentPropsWithoutRef<t
2397
2422
  defaultOpen?: boolean;
2398
2423
  }
2399
2424
 
2400
- /** The element that triggers the info box on click. */
2401
- export declare const InfoBoxTrigger: React_2.ForwardRefExoticComponent<PopoverPrimitive.PopoverTriggerProps & React_2.RefAttributes<HTMLButtonElement>>;
2425
+ /**
2426
+ * The element that triggers the info box on click.
2427
+ *
2428
+ * On touch / pen, a press-and-release that crosses a small movement threshold
2429
+ * is treated as a drag and the resulting synthetic click is suppressed —
2430
+ * defends against Android Chrome opening the popover on a scroll-drag-end.
2431
+ */
2432
+ export declare const InfoBoxTrigger: React_2.ForwardRefExoticComponent<Omit<PopoverPrimitive.PopoverTriggerProps & React_2.RefAttributes<HTMLButtonElement>, "ref"> & React_2.RefAttributes<HTMLButtonElement>>;
2402
2433
 
2403
2434
  /** Props for the {@link InfoBoxTrigger} component. */
2404
2435
  export declare type InfoBoxTriggerProps = React_2.ComponentPropsWithoutRef<typeof PopoverPrimitive.Trigger>;
@@ -2421,6 +2452,55 @@ export declare const InfoIcon: React_2.ForwardRefExoticComponent<BaseIconProps &
2421
2452
  /** Props for {@link InfoIcon}. See {@link BaseIconProps} for the shared shape. */
2422
2453
  export declare type InfoIconProps = BaseIconProps;
2423
2454
 
2455
+ /**
2456
+ * A chip-styled inline edit field. Renders as a dashed-border button that
2457
+ * swaps to a text input on click, allowing the value to be edited in place.
2458
+ *
2459
+ * Enter and blur commit the draft via `onSubmit`. Escape reverts to `value`
2460
+ * and calls `onCancel`. Drafts that fail `validate` are reverted.
2461
+ *
2462
+ * The forwarded ref points at the underlying `<input>` and is only populated
2463
+ * while the field is in edit mode — it resolves to `null` in display mode.
2464
+ *
2465
+ * Consumers may pass `onChange`, `onBlur`, and `onKeyDown` to participate in
2466
+ * input events. The component's own handlers run after the consumer's, and
2467
+ * keyboard handling is skipped if the consumer calls `event.preventDefault()`.
2468
+ *
2469
+ * @example
2470
+ * ```tsx
2471
+ * const [name, setName] = useState("New folder");
2472
+ * <InlineEdit value={name} onSubmit={setName} />
2473
+ * ```
2474
+ */
2475
+ export declare const InlineEdit: React_2.ForwardRefExoticComponent<InlineEditProps & React_2.RefAttributes<HTMLInputElement>>;
2476
+
2477
+ export declare interface InlineEditProps extends Omit<React_2.InputHTMLAttributes<HTMLInputElement>, "value" | "defaultValue" | "size" | "onSubmit"> {
2478
+ /** Current value displayed in the chip and used as the starting draft when editing. */
2479
+ value: string;
2480
+ /** Called with the trimmed draft when the user commits an edit (Enter or blur). */
2481
+ onSubmit: (value: string) => void;
2482
+ /** Called when the user cancels an edit with Escape. */
2483
+ onCancel?: () => void;
2484
+ /** Height of the field in pixels. @default "40" */
2485
+ size?: InlineEditSize;
2486
+ /** Whether the field is disabled — prevents entering edit mode. @default false */
2487
+ disabled?: boolean;
2488
+ /** Accessible label for the edit input. @default "Edit" */
2489
+ editLabel?: string;
2490
+ /** Icon rendered before the value in display mode. Hidden when editing. */
2491
+ leftIcon?: React_2.ReactNode;
2492
+ /**
2493
+ * Validator for the trimmed draft on commit. Returning `false` reverts to
2494
+ * the previous value without calling `onSubmit`. @default rejects empty drafts
2495
+ */
2496
+ validate?: (draft: string) => boolean;
2497
+ /** Additional class name applied to the root element. */
2498
+ className?: string;
2499
+ }
2500
+
2501
+ /** Height of the inline edit field in pixels. */
2502
+ export declare type InlineEditSize = "32" | "40";
2503
+
2424
2504
  /**
2425
2505
  * Language icon. Renders at sizes 16, 24, or 32 px with outlined and filled variants.
2426
2506
  *
@@ -2536,6 +2616,8 @@ export declare interface LogoProps extends React_2.HTMLAttributes<HTMLDivElement
2536
2616
  variant?: LogoVariant;
2537
2617
  /** Colour scheme of the logo. @default "fullColour" */
2538
2618
  color?: LogoColor;
2619
+ /** Height of the logo in pixels. @default "32" (or "40" when `variant="icon"`) */
2620
+ size?: LogoSize;
2539
2621
  /**
2540
2622
  * Accessible label for the logo. Required when `type` is `"icon"` and
2541
2623
  * the logo is used inside interactive contexts (links, buttons).
@@ -2545,6 +2627,9 @@ export declare interface LogoProps extends React_2.HTMLAttributes<HTMLDivElement
2545
2627
  "aria-label"?: string;
2546
2628
  }
2547
2629
 
2630
+ /** Height of the logo in pixels. Both icon and wordmark scale proportionally. */
2631
+ export declare type LogoSize = "16" | "20" | "24" | "32" | "40" | "48" | "64";
2632
+
2548
2633
  /**
2549
2634
  * Logout icon. Renders at sizes 16, 24, or 32 px with outlined and filled variants.
2550
2635
  *
package/dist/index.mjs CHANGED
@@ -183,6 +183,7 @@ import { WifiOffIcon } from "./components/Icons/WifiOffIcon.mjs";
183
183
  import { WifiOnIcon } from "./components/Icons/WifiOnIcon.mjs";
184
184
  import { WrenchIcon } from "./components/Icons/WrenchIcon.mjs";
185
185
  import { InfoBox, InfoBoxContent, InfoBoxTrigger } from "./components/InfoBox/InfoBox.mjs";
186
+ import { InlineEdit } from "./components/InlineEdit/InlineEdit.mjs";
186
187
  import { Loader } from "./components/Loader/Loader.mjs";
187
188
  import { Logo } from "./components/Logo/Logo.mjs";
188
189
  import { MobileStepper } from "./components/MobileStepper/MobileStepper.mjs";
@@ -357,6 +358,7 @@ export {
357
358
  InfoBoxTrigger,
358
359
  InfoCircleIcon,
359
360
  InfoIcon,
361
+ InlineEdit,
360
362
  LanguageIcon,
361
363
  LinkIcon,
362
364
  Loader,
@@ -1 +1 @@
1
- {"version":3,"file":"index.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
1
+ {"version":3,"file":"index.mjs","sources":[],"sourcesContent":[],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;"}
@@ -0,0 +1,54 @@
1
+ "use client";
2
+ import * as React from "react";
3
+ const TAP_MOVEMENT_THRESHOLD_PX = 10;
4
+ function useSuppressClickAfterDrag(props) {
5
+ const tapRef = React.useRef(null);
6
+ return {
7
+ ...props,
8
+ onPointerDown(event) {
9
+ props.onPointerDown?.(event);
10
+ if (event.pointerType === "mouse") {
11
+ tapRef.current = null;
12
+ return;
13
+ }
14
+ event.currentTarget.setPointerCapture?.(event.pointerId);
15
+ tapRef.current = {
16
+ pointerId: event.pointerId,
17
+ x: event.clientX,
18
+ y: event.clientY,
19
+ movedPastThreshold: false
20
+ };
21
+ },
22
+ onPointerMove(event) {
23
+ props.onPointerMove?.(event);
24
+ const tap = tapRef.current;
25
+ if (tap === null || event.pointerId !== tap.pointerId || tap.movedPastThreshold) return;
26
+ const dx = event.clientX - tap.x;
27
+ const dy = event.clientY - tap.y;
28
+ if (Math.hypot(dx, dy) > TAP_MOVEMENT_THRESHOLD_PX) {
29
+ tap.movedPastThreshold = true;
30
+ }
31
+ },
32
+ onPointerCancel(event) {
33
+ props.onPointerCancel?.(event);
34
+ const tap = tapRef.current;
35
+ if (tap !== null && event.pointerId === tap.pointerId) {
36
+ tapRef.current = null;
37
+ }
38
+ },
39
+ onClick(event) {
40
+ const tap = tapRef.current;
41
+ tapRef.current = null;
42
+ if (tap?.movedPastThreshold) {
43
+ event.preventDefault();
44
+ event.stopPropagation();
45
+ return;
46
+ }
47
+ props.onClick?.(event);
48
+ }
49
+ };
50
+ }
51
+ export {
52
+ useSuppressClickAfterDrag
53
+ };
54
+ //# sourceMappingURL=useSuppressClickAfterDrag.mjs.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"useSuppressClickAfterDrag.mjs","sources":["../../src/utils/useSuppressClickAfterDrag.ts"],"sourcesContent":["import * as React from \"react\";\n\nconst TAP_MOVEMENT_THRESHOLD_PX = 10;\n\ntype ActiveTap = {\n pointerId: number;\n x: number;\n y: number;\n movedPastThreshold: boolean;\n};\n\ntype GatedHandlers = {\n onPointerDown?: React.PointerEventHandler;\n onPointerMove?: React.PointerEventHandler;\n onPointerCancel?: React.PointerEventHandler;\n onClick?: React.MouseEventHandler;\n};\n\n/**\n * Composes the consumer's pointer/click handlers with a touch-drag tracker\n * that suppresses the synthetic click an Android Chrome scroll-drag-end can\n * dispatch on a click-based Radix trigger (Popover / Dialog / Drawer).\n *\n * On touch / pen input, if the press-and-release crosses a movement threshold,\n * the subsequent `click` is preventDefault'd — short-circuiting Radix's own\n * `onOpenToggle` via `composeEventHandlers` — and stopPropagation'd so it\n * doesn't bubble to ancestors. Mouse input passes through unchanged because\n * mouse never triggers the Android scroll-drag bug class.\n *\n * Related: radix-ui/primitives#1912 (DropdownMenu pointerdown variant) and\n * #2702 (DismissableLayer touch dismiss). For the DropdownMenu pointerdown\n * variant see `components/DropdownMenu/DropdownMenu.tsx`.\n */\nexport function useSuppressClickAfterDrag<P extends GatedHandlers>(props: P): P {\n const tapRef = React.useRef<ActiveTap | null>(null);\n\n return {\n ...props,\n onPointerDown(event) {\n props.onPointerDown?.(event);\n if (event.pointerType === \"mouse\") {\n tapRef.current = null;\n return;\n }\n // Keep pointermove on this element if the finger drifts off.\n // Optional because jsdom (used in tests) doesn't implement it.\n event.currentTarget.setPointerCapture?.(event.pointerId);\n tapRef.current = {\n pointerId: event.pointerId,\n x: event.clientX,\n y: event.clientY,\n movedPastThreshold: false,\n };\n },\n onPointerMove(event) {\n props.onPointerMove?.(event);\n const tap = tapRef.current;\n if (tap === null || event.pointerId !== tap.pointerId || tap.movedPastThreshold) return;\n const dx = event.clientX - tap.x;\n const dy = event.clientY - tap.y;\n if (Math.hypot(dx, dy) > TAP_MOVEMENT_THRESHOLD_PX) {\n tap.movedPastThreshold = true;\n }\n },\n onPointerCancel(event) {\n props.onPointerCancel?.(event);\n const tap = tapRef.current;\n if (tap !== null && event.pointerId === tap.pointerId) {\n tapRef.current = null;\n }\n },\n onClick(event) {\n const tap = tapRef.current;\n tapRef.current = null;\n if (tap?.movedPastThreshold) {\n // preventDefault stops Radix's onClick → onOpenToggle via\n // composeEventHandlers. stopPropagation prevents the synthetic click\n // from bubbling to ancestor click handlers.\n event.preventDefault();\n event.stopPropagation();\n return;\n }\n props.onClick?.(event);\n },\n };\n}\n"],"names":[],"mappings":";;AAEA,MAAM,4BAA4B;AA+B3B,SAAS,0BAAmD,OAAa;AAC9E,QAAM,SAAS,MAAM,OAAyB,IAAI;AAElD,SAAO;AAAA,IACL,GAAG;AAAA,IACH,cAAc,OAAO;AACnB,YAAM,gBAAgB,KAAK;AAC3B,UAAI,MAAM,gBAAgB,SAAS;AACjC,eAAO,UAAU;AACjB;AAAA,MACF;AAGA,YAAM,cAAc,oBAAoB,MAAM,SAAS;AACvD,aAAO,UAAU;AAAA,QACf,WAAW,MAAM;AAAA,QACjB,GAAG,MAAM;AAAA,QACT,GAAG,MAAM;AAAA,QACT,oBAAoB;AAAA,MAAA;AAAA,IAExB;AAAA,IACA,cAAc,OAAO;AACnB,YAAM,gBAAgB,KAAK;AAC3B,YAAM,MAAM,OAAO;AACnB,UAAI,QAAQ,QAAQ,MAAM,cAAc,IAAI,aAAa,IAAI,mBAAoB;AACjF,YAAM,KAAK,MAAM,UAAU,IAAI;AAC/B,YAAM,KAAK,MAAM,UAAU,IAAI;AAC/B,UAAI,KAAK,MAAM,IAAI,EAAE,IAAI,2BAA2B;AAClD,YAAI,qBAAqB;AAAA,MAC3B;AAAA,IACF;AAAA,IACA,gBAAgB,OAAO;AACrB,YAAM,kBAAkB,KAAK;AAC7B,YAAM,MAAM,OAAO;AACnB,UAAI,QAAQ,QAAQ,MAAM,cAAc,IAAI,WAAW;AACrD,eAAO,UAAU;AAAA,MACnB;AAAA,IACF;AAAA,IACA,QAAQ,OAAO;AACb,YAAM,MAAM,OAAO;AACnB,aAAO,UAAU;AACjB,UAAI,KAAK,oBAAoB;AAI3B,cAAM,eAAA;AACN,cAAM,gBAAA;AACN;AAAA,MACF;AACA,YAAM,UAAU,KAAK;AAAA,IACvB;AAAA,EAAA;AAEJ;"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@fanvue/ui",
3
- "version": "2.14.3",
3
+ "version": "2.15.1",
4
4
  "description": "React component library built with Tailwind CSS for Fanvue ecosystem",
5
5
  "publishConfig": {
6
6
  "registry": "https://registry.npmjs.org",
@@ -105,6 +105,7 @@
105
105
  "@radix-ui/react-tabs": "1.1.13",
106
106
  "@radix-ui/react-toast": "1.2.15",
107
107
  "@radix-ui/react-tooltip": "1.2.8",
108
+ "@radix-ui/react-use-controllable-state": "1.2.2",
108
109
  "clsx": "2.1.1",
109
110
  "tailwind-merge": "3.4.0"
110
111
  },
@@ -140,7 +141,7 @@
140
141
  "jsdom": "27.4.0",
141
142
  "lint-staged": "16.2.7",
142
143
  "playwright": "^1.58.1",
143
- "postcss": "8.5.6",
144
+ "postcss": "8.5.12",
144
145
  "react": "19.2.3",
145
146
  "react-day-picker": "9.13.1",
146
147
  "react-dom": "19.2.3",
@@ -161,13 +162,11 @@
161
162
  "overrides": {
162
163
  "lodash": ">=4.18.0",
163
164
  "lodash-es": ">=4.18.0",
164
- "@isaacs/brace-expansion": ">=5.0.1",
165
- "qs": ">=6.14.2",
166
165
  "minimatch": ">=10.2.3",
167
- "rollup": ">=4.59.0",
168
- "storybook": ">=10.2.10",
169
- "picomatch": ">=4.0.4",
170
- "micromatch>picomatch": "2.3.2"
166
+ "ajv": ">=8.18.0",
167
+ "brace-expansion": ">=5.0.5",
168
+ "yaml": ">=2.8.3",
169
+ "postcss": ">=8.5.10"
171
170
  }
172
171
  },
173
172
  "size-limit": [