@wow-two-beta/ui 0.0.23 → 0.0.25
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/actions/index.js +2 -2
- package/dist/{chunk-O6UUYPTB.js → chunk-2AUDMNHI.js} +3 -3
- package/dist/{chunk-O6UUYPTB.js.map → chunk-2AUDMNHI.js.map} +1 -1
- package/dist/{chunk-45SFQEMP.js → chunk-3PUV6PGJ.js} +302 -5
- package/dist/chunk-3PUV6PGJ.js.map +1 -0
- package/dist/{chunk-XAJKBU6P.js → chunk-6RFXTWLM.js} +18 -4
- package/dist/chunk-6RFXTWLM.js.map +1 -0
- package/dist/{chunk-4P2TFUVW.js → chunk-76ZIAFWD.js} +9 -3
- package/dist/chunk-76ZIAFWD.js.map +1 -0
- package/dist/{chunk-25CGSOXZ.js → chunk-A5JQGP5F.js} +3 -3
- package/dist/{chunk-25CGSOXZ.js.map → chunk-A5JQGP5F.js.map} +1 -1
- package/dist/{chunk-3KPILWVX.js → chunk-IERJ5D7R.js} +4 -4
- package/dist/{chunk-3KPILWVX.js.map → chunk-IERJ5D7R.js.map} +1 -1
- package/dist/{chunk-XRTXK5Y4.js → chunk-MCUDIBTG.js} +4 -4
- package/dist/{chunk-XRTXK5Y4.js.map → chunk-MCUDIBTG.js.map} +1 -1
- package/dist/{chunk-5KVTU5TX.js → chunk-NLUTV5BP.js} +1792 -8
- package/dist/chunk-NLUTV5BP.js.map +1 -0
- package/dist/{chunk-GRJBIGUD.js → chunk-S6QNKXKP.js} +3 -3
- package/dist/{chunk-GRJBIGUD.js.map → chunk-S6QNKXKP.js.map} +1 -1
- package/dist/{chunk-DSA7L7PD.js → chunk-TSTJCUXX.js} +5 -5
- package/dist/{chunk-DSA7L7PD.js.map → chunk-TSTJCUXX.js.map} +1 -1
- package/dist/{chunk-XLPFX4WK.js → chunk-U5SWHGKO.js} +567 -20
- package/dist/chunk-U5SWHGKO.js.map +1 -0
- package/dist/display/activityFeed/ActivityFeed.d.ts +29 -0
- package/dist/display/activityFeed/ActivityFeed.d.ts.map +1 -0
- package/dist/display/activityFeed/index.d.ts +2 -0
- package/dist/display/activityFeed/index.d.ts.map +1 -0
- package/dist/display/annotationMarker/AnnotationMarker.d.ts +24 -0
- package/dist/display/annotationMarker/AnnotationMarker.d.ts.map +1 -0
- package/dist/display/annotationMarker/index.d.ts +2 -0
- package/dist/display/annotationMarker/index.d.ts.map +1 -0
- package/dist/display/chatBubble/ChatBubble.d.ts +34 -0
- package/dist/display/chatBubble/ChatBubble.d.ts.map +1 -0
- package/dist/display/chatBubble/index.d.ts +2 -0
- package/dist/display/chatBubble/index.d.ts.map +1 -0
- package/dist/display/commentThread/CommentThread.d.ts +32 -0
- package/dist/display/commentThread/CommentThread.d.ts.map +1 -0
- package/dist/display/commentThread/index.d.ts +2 -0
- package/dist/display/commentThread/index.d.ts.map +1 -0
- package/dist/display/index.d.ts +7 -0
- package/dist/display/index.d.ts.map +1 -1
- package/dist/display/index.js +3 -3
- package/dist/display/messageList/MessageList.d.ts +33 -0
- package/dist/display/messageList/MessageList.d.ts.map +1 -0
- package/dist/display/messageList/index.d.ts +2 -0
- package/dist/display/messageList/index.d.ts.map +1 -0
- package/dist/display/reactionBar/ReactionBar.d.ts +33 -0
- package/dist/display/reactionBar/ReactionBar.d.ts.map +1 -0
- package/dist/display/reactionBar/index.d.ts +2 -0
- package/dist/display/reactionBar/index.d.ts.map +1 -0
- package/dist/display/threadView/ThreadView.d.ts +26 -0
- package/dist/display/threadView/ThreadView.d.ts.map +1 -0
- package/dist/display/threadView/index.d.ts +2 -0
- package/dist/display/threadView/index.d.ts.map +1 -0
- package/dist/feedback/index.d.ts +4 -0
- package/dist/feedback/index.d.ts.map +1 -1
- package/dist/feedback/index.js +2 -2
- package/dist/feedback/liveCursor/LiveCursor.d.ts +27 -0
- package/dist/feedback/liveCursor/LiveCursor.d.ts.map +1 -0
- package/dist/feedback/liveCursor/index.d.ts +2 -0
- package/dist/feedback/liveCursor/index.d.ts.map +1 -0
- package/dist/feedback/notificationCenter/NotificationCenter.d.ts +40 -0
- package/dist/feedback/notificationCenter/NotificationCenter.d.ts.map +1 -0
- package/dist/feedback/notificationCenter/index.d.ts +2 -0
- package/dist/feedback/notificationCenter/index.d.ts.map +1 -0
- package/dist/feedback/presenceIndicator/PresenceIndicator.d.ts +19 -0
- package/dist/feedback/presenceIndicator/PresenceIndicator.d.ts.map +1 -0
- package/dist/feedback/presenceIndicator/index.d.ts +2 -0
- package/dist/feedback/presenceIndicator/index.d.ts.map +1 -0
- package/dist/feedback/typingIndicator/TypingIndicator.d.ts +18 -0
- package/dist/feedback/typingIndicator/TypingIndicator.d.ts.map +1 -0
- package/dist/feedback/typingIndicator/index.d.ts +2 -0
- package/dist/feedback/typingIndicator/index.d.ts.map +1 -0
- package/dist/forms/addressForm/AddressForm.d.ts +38 -0
- package/dist/forms/addressForm/AddressForm.d.ts.map +1 -0
- package/dist/forms/addressForm/index.d.ts +2 -0
- package/dist/forms/addressForm/index.d.ts.map +1 -0
- package/dist/forms/chatComposer/ChatComposer.d.ts +37 -0
- package/dist/forms/chatComposer/ChatComposer.d.ts.map +1 -0
- package/dist/forms/chatComposer/index.d.ts +2 -0
- package/dist/forms/chatComposer/index.d.ts.map +1 -0
- package/dist/forms/cronInput/CronInput.d.ts +16 -0
- package/dist/forms/cronInput/CronInput.d.ts.map +1 -0
- package/dist/forms/cronInput/index.d.ts +2 -0
- package/dist/forms/cronInput/index.d.ts.map +1 -0
- package/dist/forms/emojiPicker/EmojiPicker.d.ts +27 -0
- package/dist/forms/emojiPicker/EmojiPicker.d.ts.map +1 -0
- package/dist/forms/emojiPicker/index.d.ts +2 -0
- package/dist/forms/emojiPicker/index.d.ts.map +1 -0
- package/dist/forms/fontPicker/FontPicker.d.ts +23 -0
- package/dist/forms/fontPicker/FontPicker.d.ts.map +1 -0
- package/dist/forms/fontPicker/index.d.ts +2 -0
- package/dist/forms/fontPicker/index.d.ts.map +1 -0
- package/dist/forms/gradientPicker/GradientPicker.d.ts +25 -0
- package/dist/forms/gradientPicker/GradientPicker.d.ts.map +1 -0
- package/dist/forms/gradientPicker/index.d.ts +2 -0
- package/dist/forms/gradientPicker/index.d.ts.map +1 -0
- package/dist/forms/iconPicker/IconPicker.d.ts +21 -0
- package/dist/forms/iconPicker/IconPicker.d.ts.map +1 -0
- package/dist/forms/iconPicker/index.d.ts +2 -0
- package/dist/forms/iconPicker/index.d.ts.map +1 -0
- package/dist/forms/index.d.ts +11 -0
- package/dist/forms/index.d.ts.map +1 -1
- package/dist/forms/index.js +6 -6
- package/dist/forms/keyboardShortcutPicker/KeyboardShortcutPicker.d.ts +17 -0
- package/dist/forms/keyboardShortcutPicker/KeyboardShortcutPicker.d.ts.map +1 -0
- package/dist/forms/keyboardShortcutPicker/index.d.ts +2 -0
- package/dist/forms/keyboardShortcutPicker/index.d.ts.map +1 -0
- package/dist/forms/knob/Knob.d.ts +25 -0
- package/dist/forms/knob/Knob.d.ts.map +1 -0
- package/dist/forms/knob/index.d.ts +2 -0
- package/dist/forms/knob/index.d.ts.map +1 -0
- package/dist/forms/phoneInput/PhoneInput.d.ts +26 -0
- package/dist/forms/phoneInput/PhoneInput.d.ts.map +1 -0
- package/dist/forms/phoneInput/index.d.ts +2 -0
- package/dist/forms/phoneInput/index.d.ts.map +1 -0
- package/dist/forms/reactionPicker/ReactionPicker.d.ts +22 -0
- package/dist/forms/reactionPicker/ReactionPicker.d.ts.map +1 -0
- package/dist/forms/reactionPicker/index.d.ts +2 -0
- package/dist/forms/reactionPicker/index.d.ts.map +1 -0
- package/dist/hooks/index.d.ts +1 -0
- package/dist/hooks/index.d.ts.map +1 -1
- package/dist/hooks/index.js +1 -1
- package/dist/hooks/useReducedMotion.d.ts +7 -0
- package/dist/hooks/useReducedMotion.d.ts.map +1 -0
- package/dist/index.js +11 -11
- package/dist/layout/index.js +3 -3
- package/dist/nav/index.js +3 -3
- package/dist/overlays/index.js +4 -4
- package/package.json +1 -1
- package/dist/chunk-45SFQEMP.js.map +0 -1
- package/dist/chunk-4P2TFUVW.js.map +0 -1
- package/dist/chunk-5KVTU5TX.js.map +0 -1
- package/dist/chunk-XAJKBU6P.js.map +0 -1
- package/dist/chunk-XLPFX4WK.js.map +0 -1
package/dist/actions/index.js
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
export { BackToTopButton, Button, ButtonGroup, CopyButton, DisclosureButton, FAB, IconButton, Link, OverlayButton, SegmentedControl, SpeedDial, SpeedDialAction, SpeedDialTrigger, ToggleButton, ToggleButtonGroup, Toolbar, ToolbarButton, ToolbarLink, ToolbarSeparator, buttonVariants, fabVariants, iconButtonVariants, linkVariants, overlayButtonVariants, toggleButtonVariants } from '../chunk-
|
|
1
|
+
export { BackToTopButton, Button, ButtonGroup, CopyButton, DisclosureButton, FAB, IconButton, Link, OverlayButton, SegmentedControl, SpeedDial, SpeedDialAction, SpeedDialTrigger, ToggleButton, ToggleButtonGroup, Toolbar, ToolbarButton, ToolbarLink, ToolbarSeparator, buttonVariants, fabVariants, iconButtonVariants, linkVariants, overlayButtonVariants, toggleButtonVariants } from '../chunk-S6QNKXKP.js';
|
|
2
2
|
import '../chunk-BMBIZLO4.js';
|
|
3
|
-
import '../chunk-
|
|
3
|
+
import '../chunk-76ZIAFWD.js';
|
|
4
4
|
import '../chunk-TDX22OWF.js';
|
|
5
5
|
import '../chunk-NC2CBGX2.js';
|
|
6
6
|
import '../chunk-DN7WBRIV.js';
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { OverlayChromeProvider, OverlayBody, OverlayCloseButton, OverlayDescription, OverlayFooter, OverlayHeader, OverlayTitle } from './chunk-NTW7SDAP.js';
|
|
2
2
|
import { Backdrop } from './chunk-ASIHQQDQ.js';
|
|
3
|
-
import { useControlled } from './chunk-
|
|
3
|
+
import { useControlled } from './chunk-76ZIAFWD.js';
|
|
4
4
|
import { Slot, Portal, ScrollLockProvider, DismissableLayer } from './chunk-NC2CBGX2.js';
|
|
5
5
|
import { composeRefs } from './chunk-DN7WBRIV.js';
|
|
6
6
|
import { cn } from './chunk-KZ4VFY2T.js';
|
|
@@ -144,5 +144,5 @@ Drawer.Footer = DrawerFooter;
|
|
|
144
144
|
Drawer.Close = DrawerClose;
|
|
145
145
|
|
|
146
146
|
export { Drawer, DrawerBody, DrawerClose, DrawerContent, DrawerDescription, DrawerFooter, DrawerHeader, DrawerTitle, DrawerTrigger };
|
|
147
|
-
//# sourceMappingURL=chunk-
|
|
148
|
-
//# sourceMappingURL=chunk-
|
|
147
|
+
//# sourceMappingURL=chunk-2AUDMNHI.js.map
|
|
148
|
+
//# sourceMappingURL=chunk-2AUDMNHI.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../src/overlays/drawer/Drawer.tsx"],"names":["DrawerTrigger","DrawerContent"],"mappings":"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","file":"chunk-O6UUYPTB.js","sourcesContent":["import {\n createContext,\n forwardRef,\n useCallback,\n useContext,\n useId,\n useMemo,\n useRef,\n type ButtonHTMLAttributes,\n type HTMLAttributes,\n type ReactNode,\n} from 'react';\nimport { FocusScope } from '@radix-ui/react-focus-scope';\nimport { cn, composeRefs } from '../../utils';\nimport { useControlled } from '../../hooks';\nimport { DismissableLayer, Portal, ScrollLockProvider, Slot } from '../../primitives';\nimport { Backdrop } from '../backdrop';\nimport {\n OverlayBody,\n OverlayChromeProvider,\n OverlayCloseButton,\n OverlayDescription,\n OverlayFooter,\n OverlayHeader,\n OverlayTitle,\n type OverlayChromeContextValue,\n} from '../OverlayChrome';\n\nexport type DrawerSide = 'top' | 'right' | 'bottom' | 'left';\n\ninterface DrawerContextValue {\n open: boolean;\n setOpen: (open: boolean) => void;\n triggerRef: React.MutableRefObject<HTMLElement | null>;\n titleId: string;\n descriptionId: string;\n side: DrawerSide;\n dismissOnOutsideClick: boolean;\n dismissOnEscape: boolean;\n}\n\nconst DrawerContext = createContext<DrawerContextValue | null>(null);\n\nfunction useDrawerContext() {\n const ctx = useContext(DrawerContext);\n if (!ctx) throw new Error('Drawer.* must be used inside <Drawer>');\n return ctx;\n}\n\nexport interface DrawerProps {\n open?: boolean;\n defaultOpen?: boolean;\n onOpenChange?: (open: boolean) => void;\n side?: DrawerSide;\n dismissOnOutsideClick?: boolean;\n dismissOnEscape?: boolean;\n children: ReactNode;\n}\n\nexport function Drawer({\n open: openProp,\n defaultOpen = false,\n onOpenChange,\n side = 'right',\n dismissOnOutsideClick = true,\n dismissOnEscape = true,\n children,\n}: DrawerProps) {\n const [open, setOpen] = useControlled({\n controlled: openProp,\n default: defaultOpen,\n onChange: onOpenChange,\n });\n const triggerRef = useRef<HTMLElement | null>(null);\n const titleId = useId();\n const descriptionId = useId();\n\n const ctx = useMemo<DrawerContextValue>(\n () => ({\n open,\n setOpen,\n triggerRef,\n titleId,\n descriptionId,\n side,\n dismissOnOutsideClick,\n dismissOnEscape,\n }),\n [open, setOpen, titleId, descriptionId, side, dismissOnOutsideClick, dismissOnEscape],\n );\n\n return <DrawerContext.Provider value={ctx}>{children}</DrawerContext.Provider>;\n}\n\nexport interface DrawerTriggerProps\n extends Omit<ButtonHTMLAttributes<HTMLButtonElement>, 'children'> {\n asChild?: boolean;\n children: ReactNode;\n}\n\nexport const DrawerTrigger = forwardRef<HTMLButtonElement, DrawerTriggerProps>(\n function DrawerTrigger({ asChild, onClick, children, ...rest }, forwardedRef) {\n const ctx = useDrawerContext();\n const Component = asChild ? Slot : 'button';\n return (\n <Component\n ref={composeRefs(forwardedRef, ctx.triggerRef as React.MutableRefObject<HTMLButtonElement | null>) as never}\n type=\"button\"\n aria-haspopup=\"dialog\"\n aria-expanded={ctx.open}\n data-state={ctx.open ? 'open' : 'closed'}\n onClick={(e: React.MouseEvent<HTMLButtonElement>) => {\n onClick?.(e);\n if (e.defaultPrevented) return;\n ctx.setOpen(true);\n }}\n {...rest}\n >\n {children}\n </Component>\n );\n },\n);\n\nconst SIDE_CLASSES: Record<DrawerSide, string> = {\n right:\n 'inset-y-0 right-0 h-full w-full sm:max-w-sm border-l animate-in slide-in-from-right',\n left: 'inset-y-0 left-0 h-full w-full sm:max-w-sm border-r animate-in slide-in-from-left',\n top: 'inset-x-0 top-0 w-full max-h-[85vh] border-b animate-in slide-in-from-top',\n bottom: 'inset-x-0 bottom-0 w-full max-h-[85vh] border-t animate-in slide-in-from-bottom',\n};\n\nexport interface DrawerContentProps extends HTMLAttributes<HTMLDivElement> {\n hideBackdrop?: boolean;\n blur?: boolean;\n children: ReactNode;\n}\n\nexport const DrawerContent = forwardRef<HTMLDivElement, DrawerContentProps>(\n function DrawerContent(\n { hideBackdrop, blur, className, children, ...rest },\n forwardedRef,\n ) {\n const ctx = useDrawerContext();\n\n const close = useCallback(() => {\n ctx.setOpen(false);\n requestAnimationFrame(() => ctx.triggerRef.current?.focus());\n }, [ctx]);\n\n const chromeCtx = useMemo<OverlayChromeContextValue>(\n () => ({ titleId: ctx.titleId, descriptionId: ctx.descriptionId, close }),\n [ctx.titleId, ctx.descriptionId, close],\n );\n\n if (!ctx.open) return null;\n return (\n <Portal>\n <ScrollLockProvider>\n {!hideBackdrop && (\n <Backdrop\n inline\n blur={blur}\n onClick={() => {\n if (ctx.dismissOnOutsideClick) ctx.setOpen(false);\n }}\n />\n )}\n <FocusScope asChild trapped loop>\n <DismissableLayer\n disableEscape={!ctx.dismissOnEscape}\n onEscape={() => ctx.setOpen(false)}\n disableOutsideClick\n >\n <div\n ref={forwardedRef}\n role=\"dialog\"\n aria-modal=\"true\"\n aria-labelledby={ctx.titleId}\n aria-describedby={ctx.descriptionId}\n data-state=\"open\"\n data-side={ctx.side}\n className={cn(\n 'fixed z-50 flex flex-col gap-4 border-border bg-background p-6 shadow-lg outline-none',\n SIDE_CLASSES[ctx.side],\n className,\n )}\n {...rest}\n >\n <OverlayChromeProvider value={chromeCtx}>{children}</OverlayChromeProvider>\n </div>\n </DismissableLayer>\n </FocusScope>\n </ScrollLockProvider>\n </Portal>\n );\n },\n);\n\n// Re-export shared chrome subcomponents under the Drawer namespace.\nexport const DrawerHeader = OverlayHeader;\nexport const DrawerTitle = OverlayTitle;\nexport const DrawerDescription = OverlayDescription;\nexport const DrawerBody = OverlayBody;\nexport const DrawerFooter = OverlayFooter;\nexport const DrawerClose = OverlayCloseButton;\n\ntype DrawerComponent = typeof Drawer & {\n Trigger: typeof DrawerTrigger;\n Content: typeof DrawerContent;\n Header: typeof DrawerHeader;\n Title: typeof DrawerTitle;\n Description: typeof DrawerDescription;\n Body: typeof DrawerBody;\n Footer: typeof DrawerFooter;\n Close: typeof DrawerClose;\n};\n\n(Drawer as DrawerComponent).Trigger = DrawerTrigger;\n(Drawer as DrawerComponent).Content = DrawerContent;\n(Drawer as DrawerComponent).Header = DrawerHeader;\n(Drawer as DrawerComponent).Title = DrawerTitle;\n(Drawer as DrawerComponent).Description = DrawerDescription;\n(Drawer as DrawerComponent).Body = DrawerBody;\n(Drawer as DrawerComponent).Footer = DrawerFooter;\n(Drawer as DrawerComponent).Close = DrawerClose;\n\nexport default Drawer as DrawerComponent;\n"]}
|
|
1
|
+
{"version":3,"sources":["../src/overlays/drawer/Drawer.tsx"],"names":["DrawerTrigger","DrawerContent"],"mappings":"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","file":"chunk-2AUDMNHI.js","sourcesContent":["import {\n createContext,\n forwardRef,\n useCallback,\n useContext,\n useId,\n useMemo,\n useRef,\n type ButtonHTMLAttributes,\n type HTMLAttributes,\n type ReactNode,\n} from 'react';\nimport { FocusScope } from '@radix-ui/react-focus-scope';\nimport { cn, composeRefs } from '../../utils';\nimport { useControlled } from '../../hooks';\nimport { DismissableLayer, Portal, ScrollLockProvider, Slot } from '../../primitives';\nimport { Backdrop } from '../backdrop';\nimport {\n OverlayBody,\n OverlayChromeProvider,\n OverlayCloseButton,\n OverlayDescription,\n OverlayFooter,\n OverlayHeader,\n OverlayTitle,\n type OverlayChromeContextValue,\n} from '../OverlayChrome';\n\nexport type DrawerSide = 'top' | 'right' | 'bottom' | 'left';\n\ninterface DrawerContextValue {\n open: boolean;\n setOpen: (open: boolean) => void;\n triggerRef: React.MutableRefObject<HTMLElement | null>;\n titleId: string;\n descriptionId: string;\n side: DrawerSide;\n dismissOnOutsideClick: boolean;\n dismissOnEscape: boolean;\n}\n\nconst DrawerContext = createContext<DrawerContextValue | null>(null);\n\nfunction useDrawerContext() {\n const ctx = useContext(DrawerContext);\n if (!ctx) throw new Error('Drawer.* must be used inside <Drawer>');\n return ctx;\n}\n\nexport interface DrawerProps {\n open?: boolean;\n defaultOpen?: boolean;\n onOpenChange?: (open: boolean) => void;\n side?: DrawerSide;\n dismissOnOutsideClick?: boolean;\n dismissOnEscape?: boolean;\n children: ReactNode;\n}\n\nexport function Drawer({\n open: openProp,\n defaultOpen = false,\n onOpenChange,\n side = 'right',\n dismissOnOutsideClick = true,\n dismissOnEscape = true,\n children,\n}: DrawerProps) {\n const [open, setOpen] = useControlled({\n controlled: openProp,\n default: defaultOpen,\n onChange: onOpenChange,\n });\n const triggerRef = useRef<HTMLElement | null>(null);\n const titleId = useId();\n const descriptionId = useId();\n\n const ctx = useMemo<DrawerContextValue>(\n () => ({\n open,\n setOpen,\n triggerRef,\n titleId,\n descriptionId,\n side,\n dismissOnOutsideClick,\n dismissOnEscape,\n }),\n [open, setOpen, titleId, descriptionId, side, dismissOnOutsideClick, dismissOnEscape],\n );\n\n return <DrawerContext.Provider value={ctx}>{children}</DrawerContext.Provider>;\n}\n\nexport interface DrawerTriggerProps\n extends Omit<ButtonHTMLAttributes<HTMLButtonElement>, 'children'> {\n asChild?: boolean;\n children: ReactNode;\n}\n\nexport const DrawerTrigger = forwardRef<HTMLButtonElement, DrawerTriggerProps>(\n function DrawerTrigger({ asChild, onClick, children, ...rest }, forwardedRef) {\n const ctx = useDrawerContext();\n const Component = asChild ? Slot : 'button';\n return (\n <Component\n ref={composeRefs(forwardedRef, ctx.triggerRef as React.MutableRefObject<HTMLButtonElement | null>) as never}\n type=\"button\"\n aria-haspopup=\"dialog\"\n aria-expanded={ctx.open}\n data-state={ctx.open ? 'open' : 'closed'}\n onClick={(e: React.MouseEvent<HTMLButtonElement>) => {\n onClick?.(e);\n if (e.defaultPrevented) return;\n ctx.setOpen(true);\n }}\n {...rest}\n >\n {children}\n </Component>\n );\n },\n);\n\nconst SIDE_CLASSES: Record<DrawerSide, string> = {\n right:\n 'inset-y-0 right-0 h-full w-full sm:max-w-sm border-l animate-in slide-in-from-right',\n left: 'inset-y-0 left-0 h-full w-full sm:max-w-sm border-r animate-in slide-in-from-left',\n top: 'inset-x-0 top-0 w-full max-h-[85vh] border-b animate-in slide-in-from-top',\n bottom: 'inset-x-0 bottom-0 w-full max-h-[85vh] border-t animate-in slide-in-from-bottom',\n};\n\nexport interface DrawerContentProps extends HTMLAttributes<HTMLDivElement> {\n hideBackdrop?: boolean;\n blur?: boolean;\n children: ReactNode;\n}\n\nexport const DrawerContent = forwardRef<HTMLDivElement, DrawerContentProps>(\n function DrawerContent(\n { hideBackdrop, blur, className, children, ...rest },\n forwardedRef,\n ) {\n const ctx = useDrawerContext();\n\n const close = useCallback(() => {\n ctx.setOpen(false);\n requestAnimationFrame(() => ctx.triggerRef.current?.focus());\n }, [ctx]);\n\n const chromeCtx = useMemo<OverlayChromeContextValue>(\n () => ({ titleId: ctx.titleId, descriptionId: ctx.descriptionId, close }),\n [ctx.titleId, ctx.descriptionId, close],\n );\n\n if (!ctx.open) return null;\n return (\n <Portal>\n <ScrollLockProvider>\n {!hideBackdrop && (\n <Backdrop\n inline\n blur={blur}\n onClick={() => {\n if (ctx.dismissOnOutsideClick) ctx.setOpen(false);\n }}\n />\n )}\n <FocusScope asChild trapped loop>\n <DismissableLayer\n disableEscape={!ctx.dismissOnEscape}\n onEscape={() => ctx.setOpen(false)}\n disableOutsideClick\n >\n <div\n ref={forwardedRef}\n role=\"dialog\"\n aria-modal=\"true\"\n aria-labelledby={ctx.titleId}\n aria-describedby={ctx.descriptionId}\n data-state=\"open\"\n data-side={ctx.side}\n className={cn(\n 'fixed z-50 flex flex-col gap-4 border-border bg-background p-6 shadow-lg outline-none',\n SIDE_CLASSES[ctx.side],\n className,\n )}\n {...rest}\n >\n <OverlayChromeProvider value={chromeCtx}>{children}</OverlayChromeProvider>\n </div>\n </DismissableLayer>\n </FocusScope>\n </ScrollLockProvider>\n </Portal>\n );\n },\n);\n\n// Re-export shared chrome subcomponents under the Drawer namespace.\nexport const DrawerHeader = OverlayHeader;\nexport const DrawerTitle = OverlayTitle;\nexport const DrawerDescription = OverlayDescription;\nexport const DrawerBody = OverlayBody;\nexport const DrawerFooter = OverlayFooter;\nexport const DrawerClose = OverlayCloseButton;\n\ntype DrawerComponent = typeof Drawer & {\n Trigger: typeof DrawerTrigger;\n Content: typeof DrawerContent;\n Header: typeof DrawerHeader;\n Title: typeof DrawerTitle;\n Description: typeof DrawerDescription;\n Body: typeof DrawerBody;\n Footer: typeof DrawerFooter;\n Close: typeof DrawerClose;\n};\n\n(Drawer as DrawerComponent).Trigger = DrawerTrigger;\n(Drawer as DrawerComponent).Content = DrawerContent;\n(Drawer as DrawerComponent).Header = DrawerHeader;\n(Drawer as DrawerComponent).Title = DrawerTitle;\n(Drawer as DrawerComponent).Description = DrawerDescription;\n(Drawer as DrawerComponent).Body = DrawerBody;\n(Drawer as DrawerComponent).Footer = DrawerFooter;\n(Drawer as DrawerComponent).Close = DrawerClose;\n\nexport default Drawer as DrawerComponent;\n"]}
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
import { Spinner } from './chunk-NKADHZMX.js';
|
|
2
2
|
import { Backdrop } from './chunk-ASIHQQDQ.js';
|
|
3
3
|
import { tv } from './chunk-BMBIZLO4.js';
|
|
4
|
-
import { useControlled } from './chunk-
|
|
4
|
+
import { useReducedMotion, useControlled } from './chunk-76ZIAFWD.js';
|
|
5
5
|
import { Icon } from './chunk-TDX22OWF.js';
|
|
6
6
|
import { Portal, Announce } from './chunk-NC2CBGX2.js';
|
|
7
7
|
import { cn } from './chunk-KZ4VFY2T.js';
|
|
8
8
|
import { forwardRef, createContext, useState, Children, isValidElement, useEffect, useMemo, useRef, useContext, useId, useCallback } from 'react';
|
|
9
9
|
import { jsx, jsxs, Fragment } from 'react/jsx-runtime';
|
|
10
|
-
import { X, Check, TrendingUp, TrendingDown, Minus, ChevronDown } from 'lucide-react';
|
|
10
|
+
import { X, Check, TrendingUp, TrendingDown, Minus, ChevronDown, Bell } from 'lucide-react';
|
|
11
11
|
|
|
12
12
|
// src/feedback/skeleton/Skeleton.variants.ts
|
|
13
13
|
var skeletonVariants = tv({
|
|
@@ -1178,7 +1178,304 @@ function Tour({
|
|
|
1178
1178
|
/* @__PURE__ */ jsx(Announce, { politeness: "polite", children: step.title ? `Step ${currentStep + 1} of ${steps.length}: ${typeof step.title === "string" ? step.title : ""}` : "" })
|
|
1179
1179
|
] });
|
|
1180
1180
|
}
|
|
1181
|
+
var SIZE2 = {
|
|
1182
|
+
sm: "h-1 w-1",
|
|
1183
|
+
md: "h-1.5 w-1.5",
|
|
1184
|
+
lg: "h-2 w-2"
|
|
1185
|
+
};
|
|
1186
|
+
var TONE2 = {
|
|
1187
|
+
muted: "bg-muted-foreground",
|
|
1188
|
+
primary: "bg-primary",
|
|
1189
|
+
foreground: "bg-foreground"
|
|
1190
|
+
};
|
|
1191
|
+
var TypingIndicator = forwardRef(
|
|
1192
|
+
({ who, size = "md", tone = "muted", subtle, className, ...props }, ref) => {
|
|
1193
|
+
const dot = cn(
|
|
1194
|
+
"inline-block rounded-full motion-safe:animate-bounce",
|
|
1195
|
+
SIZE2[size],
|
|
1196
|
+
TONE2[tone],
|
|
1197
|
+
subtle && "motion-safe:opacity-60"
|
|
1198
|
+
);
|
|
1199
|
+
return /* @__PURE__ */ jsxs(
|
|
1200
|
+
"span",
|
|
1201
|
+
{
|
|
1202
|
+
ref,
|
|
1203
|
+
role: "status",
|
|
1204
|
+
"aria-live": "polite",
|
|
1205
|
+
"aria-label": typeof who === "string" ? `${who} is typing` : "Typing",
|
|
1206
|
+
className: cn(
|
|
1207
|
+
"inline-flex items-center gap-2 text-xs text-muted-foreground",
|
|
1208
|
+
className
|
|
1209
|
+
),
|
|
1210
|
+
...props,
|
|
1211
|
+
children: [
|
|
1212
|
+
who && /* @__PURE__ */ jsx("span", { className: "truncate", children: who }),
|
|
1213
|
+
/* @__PURE__ */ jsxs("span", { className: "inline-flex items-end gap-1", "aria-hidden": "true", children: [
|
|
1214
|
+
/* @__PURE__ */ jsx("span", { className: dot, style: { animationDelay: "0ms" } }),
|
|
1215
|
+
/* @__PURE__ */ jsx("span", { className: dot, style: { animationDelay: "150ms" } }),
|
|
1216
|
+
/* @__PURE__ */ jsx("span", { className: dot, style: { animationDelay: "300ms" } })
|
|
1217
|
+
] })
|
|
1218
|
+
]
|
|
1219
|
+
}
|
|
1220
|
+
);
|
|
1221
|
+
}
|
|
1222
|
+
);
|
|
1223
|
+
TypingIndicator.displayName = "TypingIndicator";
|
|
1224
|
+
var STATUS_BG = {
|
|
1225
|
+
online: "bg-success",
|
|
1226
|
+
idle: "bg-warning",
|
|
1227
|
+
busy: "bg-destructive",
|
|
1228
|
+
offline: "bg-muted-foreground",
|
|
1229
|
+
invisible: "bg-transparent border border-muted-foreground"
|
|
1230
|
+
};
|
|
1231
|
+
var SIZE3 = {
|
|
1232
|
+
xs: "h-1.5 w-1.5",
|
|
1233
|
+
sm: "h-2 w-2",
|
|
1234
|
+
md: "h-2.5 w-2.5",
|
|
1235
|
+
lg: "h-3 w-3"
|
|
1236
|
+
};
|
|
1237
|
+
var POS = {
|
|
1238
|
+
"top-right": "absolute top-0 right-0",
|
|
1239
|
+
"top-left": "absolute top-0 left-0",
|
|
1240
|
+
"bottom-right": "absolute bottom-0 right-0",
|
|
1241
|
+
"bottom-left": "absolute bottom-0 left-0"
|
|
1242
|
+
};
|
|
1243
|
+
var STATUS_LABEL = {
|
|
1244
|
+
online: "Online",
|
|
1245
|
+
idle: "Idle",
|
|
1246
|
+
busy: "Busy",
|
|
1247
|
+
offline: "Offline",
|
|
1248
|
+
invisible: "Invisible"
|
|
1249
|
+
};
|
|
1250
|
+
var PresenceIndicator = forwardRef(
|
|
1251
|
+
({ status = "online", size = "sm", pulse, position, label, className, ...props }, ref) => /* @__PURE__ */ jsx(
|
|
1252
|
+
"span",
|
|
1253
|
+
{
|
|
1254
|
+
ref,
|
|
1255
|
+
role: "status",
|
|
1256
|
+
"aria-label": label ?? STATUS_LABEL[status],
|
|
1257
|
+
"data-status": status,
|
|
1258
|
+
className: cn(
|
|
1259
|
+
"inline-flex rounded-full ring-2 ring-background",
|
|
1260
|
+
STATUS_BG[status],
|
|
1261
|
+
SIZE3[size],
|
|
1262
|
+
position && POS[position],
|
|
1263
|
+
"relative",
|
|
1264
|
+
className
|
|
1265
|
+
),
|
|
1266
|
+
...props,
|
|
1267
|
+
children: pulse && status === "online" && /* @__PURE__ */ jsx(
|
|
1268
|
+
"span",
|
|
1269
|
+
{
|
|
1270
|
+
"aria-hidden": "true",
|
|
1271
|
+
className: cn(
|
|
1272
|
+
"absolute inset-0 rounded-full opacity-75 motion-safe:animate-ping",
|
|
1273
|
+
STATUS_BG.online
|
|
1274
|
+
)
|
|
1275
|
+
}
|
|
1276
|
+
)
|
|
1277
|
+
}
|
|
1278
|
+
)
|
|
1279
|
+
);
|
|
1280
|
+
PresenceIndicator.displayName = "PresenceIndicator";
|
|
1281
|
+
var LiveCursor = forwardRef(
|
|
1282
|
+
({
|
|
1283
|
+
x,
|
|
1284
|
+
y,
|
|
1285
|
+
name,
|
|
1286
|
+
color = "var(--color-primary)",
|
|
1287
|
+
smooth = true,
|
|
1288
|
+
labelOffset,
|
|
1289
|
+
pointerOnly,
|
|
1290
|
+
className,
|
|
1291
|
+
style,
|
|
1292
|
+
...props
|
|
1293
|
+
}, ref) => {
|
|
1294
|
+
const reducedMotion = useReducedMotion();
|
|
1295
|
+
const useTransition = smooth && !reducedMotion;
|
|
1296
|
+
const lx = labelOffset?.x ?? 12;
|
|
1297
|
+
const ly = labelOffset?.y ?? 16;
|
|
1298
|
+
const wrapperStyle = {
|
|
1299
|
+
transform: `translate3d(${x}px, ${y}px, 0)`,
|
|
1300
|
+
transition: useTransition ? "transform 80ms linear" : void 0,
|
|
1301
|
+
...style
|
|
1302
|
+
};
|
|
1303
|
+
return /* @__PURE__ */ jsxs(
|
|
1304
|
+
"div",
|
|
1305
|
+
{
|
|
1306
|
+
ref,
|
|
1307
|
+
"aria-hidden": "true",
|
|
1308
|
+
className: cn(
|
|
1309
|
+
"pointer-events-none absolute left-0 top-0 z-50 select-none",
|
|
1310
|
+
className
|
|
1311
|
+
),
|
|
1312
|
+
style: wrapperStyle,
|
|
1313
|
+
...props,
|
|
1314
|
+
children: [
|
|
1315
|
+
/* @__PURE__ */ jsx(
|
|
1316
|
+
"svg",
|
|
1317
|
+
{
|
|
1318
|
+
width: "20",
|
|
1319
|
+
height: "20",
|
|
1320
|
+
viewBox: "0 0 24 24",
|
|
1321
|
+
xmlns: "http://www.w3.org/2000/svg",
|
|
1322
|
+
className: "drop-shadow-sm",
|
|
1323
|
+
children: /* @__PURE__ */ jsx(
|
|
1324
|
+
"path",
|
|
1325
|
+
{
|
|
1326
|
+
d: "M5 3 L5 19 L9.5 14.5 L12.5 21 L15.5 19.5 L12.5 13 L19 13 Z",
|
|
1327
|
+
fill: color,
|
|
1328
|
+
stroke: "white",
|
|
1329
|
+
strokeWidth: "1.25",
|
|
1330
|
+
strokeLinejoin: "round"
|
|
1331
|
+
}
|
|
1332
|
+
)
|
|
1333
|
+
}
|
|
1334
|
+
),
|
|
1335
|
+
name && !pointerOnly && /* @__PURE__ */ jsx(
|
|
1336
|
+
"span",
|
|
1337
|
+
{
|
|
1338
|
+
className: "absolute whitespace-nowrap rounded-md px-1.5 py-0.5 text-[11px] font-medium leading-none text-white shadow-sm",
|
|
1339
|
+
style: { backgroundColor: color, transform: `translate(${lx}px, ${ly}px)` },
|
|
1340
|
+
children: name
|
|
1341
|
+
}
|
|
1342
|
+
)
|
|
1343
|
+
]
|
|
1344
|
+
}
|
|
1345
|
+
);
|
|
1346
|
+
}
|
|
1347
|
+
);
|
|
1348
|
+
LiveCursor.displayName = "LiveCursor";
|
|
1349
|
+
var NotificationItem = forwardRef(
|
|
1350
|
+
({
|
|
1351
|
+
icon,
|
|
1352
|
+
title,
|
|
1353
|
+
description,
|
|
1354
|
+
timestamp,
|
|
1355
|
+
unread,
|
|
1356
|
+
actions,
|
|
1357
|
+
onSelect,
|
|
1358
|
+
onDismiss,
|
|
1359
|
+
className,
|
|
1360
|
+
...props
|
|
1361
|
+
}, ref) => {
|
|
1362
|
+
const interactive = !!onSelect;
|
|
1363
|
+
return /* @__PURE__ */ jsxs(
|
|
1364
|
+
"div",
|
|
1365
|
+
{
|
|
1366
|
+
ref,
|
|
1367
|
+
role: interactive ? "button" : void 0,
|
|
1368
|
+
tabIndex: interactive ? 0 : void 0,
|
|
1369
|
+
"data-unread": unread ? "" : void 0,
|
|
1370
|
+
onClick: onSelect,
|
|
1371
|
+
onKeyDown: interactive ? (e) => {
|
|
1372
|
+
if (e.key === "Enter" || e.key === " ") {
|
|
1373
|
+
e.preventDefault();
|
|
1374
|
+
onSelect?.();
|
|
1375
|
+
}
|
|
1376
|
+
} : void 0,
|
|
1377
|
+
className: cn(
|
|
1378
|
+
"group/notif relative flex gap-3 rounded-md px-3 py-2.5 text-sm",
|
|
1379
|
+
interactive && "cursor-pointer hover:bg-muted focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring",
|
|
1380
|
+
unread && "bg-primary-soft/30",
|
|
1381
|
+
className
|
|
1382
|
+
),
|
|
1383
|
+
...props,
|
|
1384
|
+
children: [
|
|
1385
|
+
unread && /* @__PURE__ */ jsx(
|
|
1386
|
+
"span",
|
|
1387
|
+
{
|
|
1388
|
+
"aria-hidden": "true",
|
|
1389
|
+
className: "absolute left-1 top-3 inline-block h-2 w-2 rounded-full bg-primary"
|
|
1390
|
+
}
|
|
1391
|
+
),
|
|
1392
|
+
icon && /* @__PURE__ */ jsx("div", { className: "shrink-0 self-start pl-3", children: icon }),
|
|
1393
|
+
/* @__PURE__ */ jsxs("div", { className: cn("min-w-0 flex-1", !icon && "pl-3"), children: [
|
|
1394
|
+
/* @__PURE__ */ jsxs("div", { className: "flex items-baseline gap-2", children: [
|
|
1395
|
+
/* @__PURE__ */ jsx(
|
|
1396
|
+
"span",
|
|
1397
|
+
{
|
|
1398
|
+
className: cn(
|
|
1399
|
+
"truncate text-foreground",
|
|
1400
|
+
unread ? "font-semibold" : "font-medium"
|
|
1401
|
+
),
|
|
1402
|
+
children: title
|
|
1403
|
+
}
|
|
1404
|
+
),
|
|
1405
|
+
timestamp && /* @__PURE__ */ jsx("span", { className: "ml-auto whitespace-nowrap text-xs text-muted-foreground", children: timestamp })
|
|
1406
|
+
] }),
|
|
1407
|
+
description && /* @__PURE__ */ jsx("div", { className: "mt-0.5 line-clamp-2 text-xs text-muted-foreground", children: description }),
|
|
1408
|
+
actions && /* @__PURE__ */ jsx("div", { className: "mt-1.5 flex items-center gap-2", children: actions })
|
|
1409
|
+
] }),
|
|
1410
|
+
onDismiss && /* @__PURE__ */ jsx(
|
|
1411
|
+
"button",
|
|
1412
|
+
{
|
|
1413
|
+
type: "button",
|
|
1414
|
+
"aria-label": "Dismiss notification",
|
|
1415
|
+
onClick: (e) => {
|
|
1416
|
+
e.stopPropagation();
|
|
1417
|
+
onDismiss();
|
|
1418
|
+
},
|
|
1419
|
+
className: cn(
|
|
1420
|
+
"absolute right-2 top-2 inline-flex h-6 w-6 items-center justify-center rounded-md text-muted-foreground opacity-0",
|
|
1421
|
+
"group-hover/notif:opacity-100 group-focus-within/notif:opacity-100",
|
|
1422
|
+
"hover:bg-background hover:text-foreground focus-visible:opacity-100 focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring"
|
|
1423
|
+
),
|
|
1424
|
+
children: /* @__PURE__ */ jsx(X, { className: "h-3.5 w-3.5" })
|
|
1425
|
+
}
|
|
1426
|
+
)
|
|
1427
|
+
]
|
|
1428
|
+
}
|
|
1429
|
+
);
|
|
1430
|
+
}
|
|
1431
|
+
);
|
|
1432
|
+
NotificationItem.displayName = "NotificationCenter.Item";
|
|
1433
|
+
var NotificationCenterInner = forwardRef(
|
|
1434
|
+
({
|
|
1435
|
+
title = "Notifications",
|
|
1436
|
+
count,
|
|
1437
|
+
headerActions,
|
|
1438
|
+
emptyState,
|
|
1439
|
+
footer,
|
|
1440
|
+
children,
|
|
1441
|
+
className,
|
|
1442
|
+
...props
|
|
1443
|
+
}, ref) => {
|
|
1444
|
+
const items = Children.toArray(children).filter(isValidElement);
|
|
1445
|
+
const isEmpty = items.length === 0;
|
|
1446
|
+
return /* @__PURE__ */ jsxs(
|
|
1447
|
+
"div",
|
|
1448
|
+
{
|
|
1449
|
+
ref,
|
|
1450
|
+
role: "region",
|
|
1451
|
+
"aria-label": "Notifications",
|
|
1452
|
+
className: cn(
|
|
1453
|
+
"flex w-80 flex-col rounded-md border border-border bg-popover text-popover-foreground shadow-md",
|
|
1454
|
+
className
|
|
1455
|
+
),
|
|
1456
|
+
...props,
|
|
1457
|
+
children: [
|
|
1458
|
+
/* @__PURE__ */ jsxs("header", { className: "flex items-center justify-between gap-2 border-b border-border px-3 py-2.5", children: [
|
|
1459
|
+
/* @__PURE__ */ jsxs("div", { className: "flex items-center gap-2", children: [
|
|
1460
|
+
/* @__PURE__ */ jsx("span", { className: "text-sm font-semibold", children: title }),
|
|
1461
|
+
count != null && /* @__PURE__ */ jsx("span", { className: "inline-flex items-center justify-center rounded-full bg-primary px-1.5 text-[10px] font-semibold leading-5 text-primary-foreground", children: count })
|
|
1462
|
+
] }),
|
|
1463
|
+
headerActions
|
|
1464
|
+
] }),
|
|
1465
|
+
/* @__PURE__ */ jsx("div", { className: "max-h-96 overflow-y-auto py-1", children: isEmpty ? emptyState ?? /* @__PURE__ */ jsxs("div", { className: "flex flex-col items-center gap-2 px-4 py-10 text-center text-muted-foreground", children: [
|
|
1466
|
+
/* @__PURE__ */ jsx(Bell, { className: "h-6 w-6" }),
|
|
1467
|
+
/* @__PURE__ */ jsx("p", { className: "text-sm", children: "You're all caught up." })
|
|
1468
|
+
] }) : /* @__PURE__ */ jsx("div", { className: "flex flex-col", children }) }),
|
|
1469
|
+
footer && /* @__PURE__ */ jsx("div", { className: "border-t border-border px-3 py-2 text-center text-xs", children: footer })
|
|
1470
|
+
]
|
|
1471
|
+
}
|
|
1472
|
+
);
|
|
1473
|
+
}
|
|
1474
|
+
);
|
|
1475
|
+
NotificationCenterInner.displayName = "NotificationCenter";
|
|
1476
|
+
var NotificationCenter = NotificationCenterInner;
|
|
1477
|
+
NotificationCenter.Item = NotificationItem;
|
|
1181
1478
|
|
|
1182
|
-
export { Alert, AlertSimple, Banner, BannerSimple, Callout, InlineSpinner, LoadingOverlay, LoadingState, MeterBar, OnboardingChecklist, OnboardingChecklistTask, ProgressBar, ProgressCircle, ProgressSteps, Skeleton, StatusIndicator, Toast, ToastSimple, Toaster, Tour, TrendIndicator, UndoBar, alertSimpleVariants, bannerSimpleVariants, progressFillVariants, progressTrackVariants, skeletonVariants, toastSimpleVariants, toaster, useOnboardingChecklist, useToaster };
|
|
1183
|
-
//# sourceMappingURL=chunk-
|
|
1184
|
-
//# sourceMappingURL=chunk-
|
|
1479
|
+
export { Alert, AlertSimple, Banner, BannerSimple, Callout, InlineSpinner, LiveCursor, LoadingOverlay, LoadingState, MeterBar, NotificationCenter, NotificationItem, OnboardingChecklist, OnboardingChecklistTask, PresenceIndicator, ProgressBar, ProgressCircle, ProgressSteps, Skeleton, StatusIndicator, Toast, ToastSimple, Toaster, Tour, TrendIndicator, TypingIndicator, UndoBar, alertSimpleVariants, bannerSimpleVariants, progressFillVariants, progressTrackVariants, skeletonVariants, toastSimpleVariants, toaster, useOnboardingChecklist, useToaster };
|
|
1480
|
+
//# sourceMappingURL=chunk-3PUV6PGJ.js.map
|
|
1481
|
+
//# sourceMappingURL=chunk-3PUV6PGJ.js.map
|