@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.
- package/dist/cjs/components/Chip/Chip.cjs +5 -2
- package/dist/cjs/components/Chip/Chip.cjs.map +1 -1
- package/dist/cjs/components/Dialog/Dialog.cjs +3 -1
- package/dist/cjs/components/Dialog/Dialog.cjs.map +1 -1
- package/dist/cjs/components/Drawer/Drawer.cjs +15 -4
- package/dist/cjs/components/Drawer/Drawer.cjs.map +1 -1
- package/dist/cjs/components/DropdownMenu/DropdownMenu.cjs +72 -2
- package/dist/cjs/components/DropdownMenu/DropdownMenu.cjs.map +1 -1
- package/dist/cjs/components/InfoBox/InfoBox.cjs +3 -1
- package/dist/cjs/components/InfoBox/InfoBox.cjs.map +1 -1
- package/dist/cjs/components/InlineEdit/InlineEdit.cjs +176 -0
- package/dist/cjs/components/InlineEdit/InlineEdit.cjs.map +1 -0
- package/dist/cjs/components/Logo/Logo.cjs +13 -5
- package/dist/cjs/components/Logo/Logo.cjs.map +1 -1
- package/dist/cjs/index.cjs +2 -0
- package/dist/cjs/index.cjs.map +1 -1
- package/dist/cjs/utils/useSuppressClickAfterDrag.cjs +71 -0
- package/dist/cjs/utils/useSuppressClickAfterDrag.cjs.map +1 -0
- package/dist/components/Chip/Chip.mjs +5 -2
- package/dist/components/Chip/Chip.mjs.map +1 -1
- package/dist/components/Dialog/Dialog.mjs +3 -1
- package/dist/components/Dialog/Dialog.mjs.map +1 -1
- package/dist/components/Drawer/Drawer.mjs +15 -4
- package/dist/components/Drawer/Drawer.mjs.map +1 -1
- package/dist/components/DropdownMenu/DropdownMenu.mjs +72 -2
- package/dist/components/DropdownMenu/DropdownMenu.mjs.map +1 -1
- package/dist/components/InfoBox/InfoBox.mjs +3 -1
- package/dist/components/InfoBox/InfoBox.mjs.map +1 -1
- package/dist/components/InlineEdit/InlineEdit.mjs +159 -0
- package/dist/components/InlineEdit/InlineEdit.mjs.map +1 -0
- package/dist/components/Logo/Logo.mjs +13 -5
- package/dist/components/Logo/Logo.mjs.map +1 -1
- package/dist/index.d.ts +94 -9
- package/dist/index.mjs +2 -0
- package/dist/index.mjs.map +1 -1
- package/dist/utils/useSuppressClickAfterDrag.mjs +54 -0
- package/dist/utils/useSuppressClickAfterDrag.mjs.map +1 -0
- 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
|
-
/**
|
|
1634
|
-
|
|
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
|
-
/**
|
|
1871
|
-
|
|
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
|
|
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
|
-
/**
|
|
1962
|
-
|
|
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
|
-
/**
|
|
2401
|
-
|
|
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,
|
package/dist/index.mjs.map
CHANGED
|
@@ -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.
|
|
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.
|
|
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
|
-
"
|
|
168
|
-
"
|
|
169
|
-
"
|
|
170
|
-
"
|
|
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": [
|