@wow-two-beta/ui 0.0.60 → 0.0.62

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 (55) hide show
  1. package/dist/actions/index.js +3 -3
  2. package/dist/{chunk-MTE5E6OQ.js → chunk-3IVQNIHV.js} +6 -6
  3. package/dist/{chunk-MTE5E6OQ.js.map → chunk-3IVQNIHV.js.map} +1 -1
  4. package/dist/{chunk-XDATW7NF.js → chunk-3SWPYYRQ.js} +3 -3
  5. package/dist/{chunk-XDATW7NF.js.map → chunk-3SWPYYRQ.js.map} +1 -1
  6. package/dist/{chunk-OBW7JUNL.js → chunk-5JYRZ5PA.js} +6 -6
  7. package/dist/{chunk-OBW7JUNL.js.map → chunk-5JYRZ5PA.js.map} +1 -1
  8. package/dist/{chunk-NR5DYKSJ.js → chunk-7ZDLUNAY.js} +3 -3
  9. package/dist/{chunk-NR5DYKSJ.js.map → chunk-7ZDLUNAY.js.map} +1 -1
  10. package/dist/{chunk-MTD4RTGO.js → chunk-BLU5JZAB.js} +8 -8
  11. package/dist/{chunk-MTD4RTGO.js.map → chunk-BLU5JZAB.js.map} +1 -1
  12. package/dist/{chunk-GSAOM2ZR.js → chunk-DPB2K3BH.js} +4 -4
  13. package/dist/{chunk-GSAOM2ZR.js.map → chunk-DPB2K3BH.js.map} +1 -1
  14. package/dist/{chunk-JYGC5SRP.js → chunk-DX7FYAKY.js} +8 -2
  15. package/dist/chunk-DX7FYAKY.js.map +1 -0
  16. package/dist/{chunk-DJJOQWOG.js → chunk-EQNTG53H.js} +3 -3
  17. package/dist/{chunk-DJJOQWOG.js.map → chunk-EQNTG53H.js.map} +1 -1
  18. package/dist/{chunk-577JZ2A2.js → chunk-FMTBJJP6.js} +3 -3
  19. package/dist/{chunk-577JZ2A2.js.map → chunk-FMTBJJP6.js.map} +1 -1
  20. package/dist/{chunk-EJCO7AWR.js → chunk-H4P5MAGS.js} +6 -6
  21. package/dist/{chunk-EJCO7AWR.js.map → chunk-H4P5MAGS.js.map} +1 -1
  22. package/dist/{chunk-HG7NX6GP.js → chunk-INSI3NPU.js} +7 -7
  23. package/dist/{chunk-HG7NX6GP.js.map → chunk-INSI3NPU.js.map} +1 -1
  24. package/dist/{chunk-EEHJHPAP.js → chunk-MYLSXVIS.js} +6 -6
  25. package/dist/{chunk-EEHJHPAP.js.map → chunk-MYLSXVIS.js.map} +1 -1
  26. package/dist/{chunk-FNSC4LAL.js → chunk-NOOKDXIZ.js} +3 -3
  27. package/dist/{chunk-FNSC4LAL.js.map → chunk-NOOKDXIZ.js.map} +1 -1
  28. package/dist/{chunk-2N3N3IE2.js → chunk-VQGGK4VP.js} +128 -6
  29. package/dist/chunk-VQGGK4VP.js.map +1 -0
  30. package/dist/{chunk-EX4AOJCN.js → chunk-WIXKLDTN.js} +6 -6
  31. package/dist/{chunk-EX4AOJCN.js.map → chunk-WIXKLDTN.js.map} +1 -1
  32. package/dist/{chunk-TTSJZEL7.js → chunk-XLYJF3HC.js} +41 -3
  33. package/dist/chunk-XLYJF3HC.js.map +1 -0
  34. package/dist/display/index.d.ts +1 -0
  35. package/dist/display/index.js +4 -4
  36. package/dist/display/sortable/Sortable.d.ts +15 -0
  37. package/dist/display/sortable/index.d.ts +2 -0
  38. package/dist/feedback/index.js +5 -5
  39. package/dist/forms/index.js +10 -10
  40. package/dist/icons/index.js +1 -1
  41. package/dist/index.css +33 -0
  42. package/dist/index.js +16 -16
  43. package/dist/layout/index.js +7 -7
  44. package/dist/nav/index.js +7 -7
  45. package/dist/overlays/index.js +7 -7
  46. package/dist/primitives/colorModeProvider/ColorModeProvider.d.ts +22 -0
  47. package/dist/primitives/colorModeProvider/index.d.ts +1 -0
  48. package/dist/primitives/index.d.ts +1 -0
  49. package/dist/primitives/index.js +1 -1
  50. package/dist/utils/SurfaceStyles.d.ts +37 -0
  51. package/dist/utils/index.js +1 -1
  52. package/package.json +1 -1
  53. package/dist/chunk-2N3N3IE2.js.map +0 -1
  54. package/dist/chunk-JYGC5SRP.js.map +0 -1
  55. package/dist/chunk-TTSJZEL7.js.map +0 -1
@@ -1,4 +1,4 @@
1
- import { Slot } from './chunk-TTSJZEL7.js';
1
+ import { Slot } from './chunk-XLYJF3HC.js';
2
2
  import { cn } from './chunk-X2MYOHOB.js';
3
3
  import { createContext, forwardRef, useContext } from 'react';
4
4
  import { X } from 'lucide-react';
@@ -88,5 +88,5 @@ var OverlayCloseButton = forwardRef(
88
88
  );
89
89
 
90
90
  export { OverlayBody, OverlayChromeProvider, OverlayCloseButton, OverlayDescription, OverlayFooter, OverlayHeader, OverlayTitle };
91
- //# sourceMappingURL=chunk-FNSC4LAL.js.map
92
- //# sourceMappingURL=chunk-FNSC4LAL.js.map
91
+ //# sourceMappingURL=chunk-NOOKDXIZ.js.map
92
+ //# sourceMappingURL=chunk-NOOKDXIZ.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/overlays/OverlayChrome.tsx"],"names":["OverlayCloseButton"],"mappings":"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","file":"chunk-FNSC4LAL.js","sourcesContent":["// Shared header / title / description / body / footer / close subcomponents\n// for Dialog and Drawer. Co-located in `overlays/` as a domain-internal helper.\n//\n// Each consuming overlay (Dialog, Drawer) wraps its content with\n// `OverlayChromeProvider`, supplying the `titleId`, `descriptionId`, and a\n// `close()` action. The shared subcomponents read from this context.\n//\n// Naming convention: `Overlay*` for shared chrome pieces; consumers re-export\n// them under their own name (e.g. `Dialog.Header = OverlayHeader`).\n\nimport {\n createContext,\n forwardRef,\n useContext,\n type ButtonHTMLAttributes,\n type HTMLAttributes,\n type ReactNode,\n} from 'react';\nimport { X } from 'lucide-react';\nimport { cn } from '../utils';\nimport { Slot } from '../primitives';\n\nexport interface OverlayChromeContextValue {\n titleId: string;\n descriptionId: string;\n /** Closes the overlay and returns focus to the trigger. */\n close: () => void;\n}\n\nconst OverlayChromeContext = createContext<OverlayChromeContextValue | null>(null);\n\nexport const OverlayChromeProvider = OverlayChromeContext.Provider;\n\nfunction useOverlayChromeContext() {\n const ctx = useContext(OverlayChromeContext);\n if (!ctx)\n throw new Error(\n 'Overlay chrome subcomponents must be used inside an OverlayChromeProvider (Dialog / Drawer)',\n );\n return ctx;\n}\n\nexport interface OverlayHeaderProps extends HTMLAttributes<HTMLDivElement> {\n children: ReactNode;\n}\n\nexport function OverlayHeader({ className, children, ...rest }: OverlayHeaderProps) {\n return (\n <div className={cn('mb-4 flex flex-col gap-1.5', className)} {...rest}>\n {children}\n </div>\n );\n}\n\nexport interface OverlayTitleProps extends HTMLAttributes<HTMLHeadingElement> {\n children: ReactNode;\n}\n\nexport function OverlayTitle({ className, children, ...rest }: OverlayTitleProps) {\n const ctx = useOverlayChromeContext();\n return (\n <h2\n id={ctx.titleId}\n className={cn('text-lg font-semibold leading-none text-foreground', className)}\n {...rest}\n >\n {children}\n </h2>\n );\n}\n\nexport interface OverlayDescriptionProps extends HTMLAttributes<HTMLParagraphElement> {\n children: ReactNode;\n}\n\nexport function OverlayDescription({\n className,\n children,\n ...rest\n}: OverlayDescriptionProps) {\n const ctx = useOverlayChromeContext();\n return (\n <p\n id={ctx.descriptionId}\n className={cn('text-sm text-muted-foreground', className)}\n {...rest}\n >\n {children}\n </p>\n );\n}\n\nexport interface OverlayBodyProps extends HTMLAttributes<HTMLDivElement> {\n children: ReactNode;\n}\n\nexport function OverlayBody({ className, children, ...rest }: OverlayBodyProps) {\n return (\n <div className={cn('text-sm text-foreground', className)} {...rest}>\n {children}\n </div>\n );\n}\n\nexport interface OverlayFooterProps extends HTMLAttributes<HTMLDivElement> {\n children: ReactNode;\n}\n\nexport function OverlayFooter({ className, children, ...rest }: OverlayFooterProps) {\n return (\n <div\n className={cn(\n 'mt-6 flex flex-col-reverse gap-2 sm:flex-row sm:justify-end',\n className,\n )}\n {...rest}\n >\n {children}\n </div>\n );\n}\n\nexport interface OverlayCloseButtonProps\n extends Omit<ButtonHTMLAttributes<HTMLButtonElement>, 'children'> {\n asChild?: boolean;\n children?: ReactNode;\n}\n\nexport const OverlayCloseButton = forwardRef<HTMLButtonElement, OverlayCloseButtonProps>(\n function OverlayCloseButton(\n { asChild, onClick, className, children, ...rest },\n forwardedRef,\n ) {\n const ctx = useOverlayChromeContext();\n const Component = asChild ? Slot : 'button';\n return (\n <Component\n ref={forwardedRef as never}\n type=\"button\"\n aria-label={children ? undefined : 'Close'}\n onClick={(e: React.MouseEvent<HTMLButtonElement>) => {\n onClick?.(e);\n if (e.defaultPrevented) return;\n ctx.close();\n }}\n className={\n asChild\n ? className\n : cn(\n 'absolute right-4 top-4 grid h-7 w-7 place-items-center rounded-sm text-muted-foreground transition-colors hover:bg-muted hover:text-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring',\n className,\n )\n }\n {...rest}\n >\n {children ?? <X className=\"h-4 w-4\" />}\n </Component>\n );\n },\n);\n"]}
1
+ {"version":3,"sources":["../src/overlays/OverlayChrome.tsx"],"names":["OverlayCloseButton"],"mappings":"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","file":"chunk-NOOKDXIZ.js","sourcesContent":["// Shared header / title / description / body / footer / close subcomponents\n// for Dialog and Drawer. Co-located in `overlays/` as a domain-internal helper.\n//\n// Each consuming overlay (Dialog, Drawer) wraps its content with\n// `OverlayChromeProvider`, supplying the `titleId`, `descriptionId`, and a\n// `close()` action. The shared subcomponents read from this context.\n//\n// Naming convention: `Overlay*` for shared chrome pieces; consumers re-export\n// them under their own name (e.g. `Dialog.Header = OverlayHeader`).\n\nimport {\n createContext,\n forwardRef,\n useContext,\n type ButtonHTMLAttributes,\n type HTMLAttributes,\n type ReactNode,\n} from 'react';\nimport { X } from 'lucide-react';\nimport { cn } from '../utils';\nimport { Slot } from '../primitives';\n\nexport interface OverlayChromeContextValue {\n titleId: string;\n descriptionId: string;\n /** Closes the overlay and returns focus to the trigger. */\n close: () => void;\n}\n\nconst OverlayChromeContext = createContext<OverlayChromeContextValue | null>(null);\n\nexport const OverlayChromeProvider = OverlayChromeContext.Provider;\n\nfunction useOverlayChromeContext() {\n const ctx = useContext(OverlayChromeContext);\n if (!ctx)\n throw new Error(\n 'Overlay chrome subcomponents must be used inside an OverlayChromeProvider (Dialog / Drawer)',\n );\n return ctx;\n}\n\nexport interface OverlayHeaderProps extends HTMLAttributes<HTMLDivElement> {\n children: ReactNode;\n}\n\nexport function OverlayHeader({ className, children, ...rest }: OverlayHeaderProps) {\n return (\n <div className={cn('mb-4 flex flex-col gap-1.5', className)} {...rest}>\n {children}\n </div>\n );\n}\n\nexport interface OverlayTitleProps extends HTMLAttributes<HTMLHeadingElement> {\n children: ReactNode;\n}\n\nexport function OverlayTitle({ className, children, ...rest }: OverlayTitleProps) {\n const ctx = useOverlayChromeContext();\n return (\n <h2\n id={ctx.titleId}\n className={cn('text-lg font-semibold leading-none text-foreground', className)}\n {...rest}\n >\n {children}\n </h2>\n );\n}\n\nexport interface OverlayDescriptionProps extends HTMLAttributes<HTMLParagraphElement> {\n children: ReactNode;\n}\n\nexport function OverlayDescription({\n className,\n children,\n ...rest\n}: OverlayDescriptionProps) {\n const ctx = useOverlayChromeContext();\n return (\n <p\n id={ctx.descriptionId}\n className={cn('text-sm text-muted-foreground', className)}\n {...rest}\n >\n {children}\n </p>\n );\n}\n\nexport interface OverlayBodyProps extends HTMLAttributes<HTMLDivElement> {\n children: ReactNode;\n}\n\nexport function OverlayBody({ className, children, ...rest }: OverlayBodyProps) {\n return (\n <div className={cn('text-sm text-foreground', className)} {...rest}>\n {children}\n </div>\n );\n}\n\nexport interface OverlayFooterProps extends HTMLAttributes<HTMLDivElement> {\n children: ReactNode;\n}\n\nexport function OverlayFooter({ className, children, ...rest }: OverlayFooterProps) {\n return (\n <div\n className={cn(\n 'mt-6 flex flex-col-reverse gap-2 sm:flex-row sm:justify-end',\n className,\n )}\n {...rest}\n >\n {children}\n </div>\n );\n}\n\nexport interface OverlayCloseButtonProps\n extends Omit<ButtonHTMLAttributes<HTMLButtonElement>, 'children'> {\n asChild?: boolean;\n children?: ReactNode;\n}\n\nexport const OverlayCloseButton = forwardRef<HTMLButtonElement, OverlayCloseButtonProps>(\n function OverlayCloseButton(\n { asChild, onClick, className, children, ...rest },\n forwardedRef,\n ) {\n const ctx = useOverlayChromeContext();\n const Component = asChild ? Slot : 'button';\n return (\n <Component\n ref={forwardedRef as never}\n type=\"button\"\n aria-label={children ? undefined : 'Close'}\n onClick={(e: React.MouseEvent<HTMLButtonElement>) => {\n onClick?.(e);\n if (e.defaultPrevented) return;\n ctx.close();\n }}\n className={\n asChild\n ? className\n : cn(\n 'absolute right-4 top-4 grid h-7 w-7 place-items-center rounded-sm text-muted-foreground transition-colors hover:bg-muted hover:text-foreground focus-visible:outline-none focus-visible:ring-2 focus-visible:ring-ring',\n className,\n )\n }\n {...rest}\n >\n {children ?? <X className=\"h-4 w-4\" />}\n </Component>\n );\n },\n);\n"]}
@@ -1,9 +1,9 @@
1
- import { Kbd, addDays, MONTHS_LONG, startOfDay, WEEKDAYS_SHORT, isToday, addMonths, isSameDay } from './chunk-XDATW7NF.js';
1
+ import { Kbd, addDays, MONTHS_LONG, startOfDay, WEEKDAYS_SHORT, isToday, addMonths, isSameDay } from './chunk-3SWPYYRQ.js';
2
2
  import { Inline } from './chunk-4XWLEKH2.js';
3
3
  import { useClipboard, useControlled, useReducedMotion, useEscape } from './chunk-V267IMBH.js';
4
4
  import { Icon } from './chunk-MVMDDGW7.js';
5
- import { tv, CssExtensions, surfaceVariants, dataAttr, composeEventHandlers, Tones } from './chunk-JYGC5SRP.js';
6
- import { Slot, RovingFocusGroup, useRovingFocusItem, Portal, AnchoredPositioner } from './chunk-TTSJZEL7.js';
5
+ import { tv, CssExtensions, surfaceVariants, dataAttr, composeEventHandlers, Tones } from './chunk-DX7FYAKY.js';
6
+ import { Slot, RovingFocusGroup, useRovingFocusItem, Portal, AnchoredPositioner } from './chunk-XLYJF3HC.js';
7
7
  import { useId as useId$1 } from './chunk-LGTGZ3RW.js';
8
8
  import { cn, composeRefs } from './chunk-X2MYOHOB.js';
9
9
  import { forwardRef, useState, useEffect, Children, isValidElement, Fragment as Fragment$1, createContext, useId, useMemo, useCallback, useContext, useRef, useImperativeHandle, useLayoutEffect, cloneElement } from 'react';
@@ -5848,7 +5848,129 @@ var PricingCard = forwardRef(
5848
5848
  )
5849
5849
  );
5850
5850
  PricingCard.displayName = "PricingCard";
5851
+ var SortableContext = createContext(null);
5852
+ var ItemContext = createContext(null);
5853
+ var useSortableRoot = () => {
5854
+ const ctx = useContext(SortableContext);
5855
+ if (!ctx) throw new Error("Sortable.Item must be rendered inside <Sortable>.");
5856
+ return ctx;
5857
+ };
5858
+ var useSortableItem = () => {
5859
+ const ctx = useContext(ItemContext);
5860
+ if (!ctx) throw new Error("Sortable.Handle must be rendered inside <Sortable.Item>.");
5861
+ return ctx;
5862
+ };
5863
+ var SortableRoot = forwardRef(
5864
+ ({ onReorder, className, children, ...props }, ref) => {
5865
+ const [dragIndex, setDragIndex] = useState(null);
5866
+ const [overIndex, setOverIndex] = useState(null);
5867
+ const dragRef = useRef(null);
5868
+ const overRef = useRef(null);
5869
+ const begin = useCallback((index) => {
5870
+ dragRef.current = index;
5871
+ setDragIndex(index);
5872
+ }, []);
5873
+ const hover = useCallback((index) => {
5874
+ overRef.current = index;
5875
+ setOverIndex(index);
5876
+ }, []);
5877
+ const end = useCallback(() => {
5878
+ const from = dragRef.current;
5879
+ const to = overRef.current;
5880
+ if (from !== null && to !== null && from !== to) onReorder(from, to);
5881
+ dragRef.current = null;
5882
+ overRef.current = null;
5883
+ setDragIndex(null);
5884
+ setOverIndex(null);
5885
+ }, [onReorder]);
5886
+ const move = useCallback(
5887
+ (from, to) => {
5888
+ if (from !== to && to >= 0) onReorder(from, to);
5889
+ },
5890
+ [onReorder]
5891
+ );
5892
+ return /* @__PURE__ */ jsx(SortableContext.Provider, { value: { dragIndex, overIndex, begin, hover, end, move }, children: /* @__PURE__ */ jsx("div", { ref, className: cn("flex flex-col", className), ...props, children }) });
5893
+ }
5894
+ );
5895
+ SortableRoot.displayName = "Sortable";
5896
+ var SortableItem = forwardRef(
5897
+ ({ index, className, children, ...props }, ref) => {
5898
+ const { dragIndex, overIndex, begin, hover, end } = useSortableRoot();
5899
+ const [armed, setArmed] = useState(false);
5900
+ const isDragging = dragIndex === index;
5901
+ const isOver = overIndex === index && dragIndex !== null && dragIndex !== index;
5902
+ return /* @__PURE__ */ jsx(ItemContext.Provider, { value: { index, arm: () => setArmed(true), disarm: () => setArmed(false) }, children: /* @__PURE__ */ jsx(
5903
+ "div",
5904
+ {
5905
+ ref,
5906
+ draggable: armed,
5907
+ onDragStart: (e) => {
5908
+ e.dataTransfer.effectAllowed = "move";
5909
+ begin(index);
5910
+ },
5911
+ onDragEnter: () => hover(index),
5912
+ onDragOver: (e) => {
5913
+ if (dragIndex !== null) e.preventDefault();
5914
+ },
5915
+ onDrop: (e) => {
5916
+ e.preventDefault();
5917
+ end();
5918
+ setArmed(false);
5919
+ },
5920
+ onDragEnd: () => {
5921
+ end();
5922
+ setArmed(false);
5923
+ },
5924
+ "data-dragging": isDragging || void 0,
5925
+ "data-over": isOver || void 0,
5926
+ className: cn("transition-opacity", isDragging && "opacity-50", className),
5927
+ ...props,
5928
+ children
5929
+ }
5930
+ ) });
5931
+ }
5932
+ );
5933
+ SortableItem.displayName = "Sortable.Item";
5934
+ var SortableHandle = forwardRef(
5935
+ ({ className, onKeyDown, children, ...props }, ref) => {
5936
+ const { index, arm, disarm } = useSortableItem();
5937
+ const { move } = useSortableRoot();
5938
+ return /* @__PURE__ */ jsx(
5939
+ "button",
5940
+ {
5941
+ ref,
5942
+ type: "button",
5943
+ "aria-label": "Drag to reorder",
5944
+ "aria-roledescription": "sortable item handle",
5945
+ onPointerDown: arm,
5946
+ onPointerUp: disarm,
5947
+ onBlur: disarm,
5948
+ onKeyDown: (e) => {
5949
+ if (e.key === "ArrowUp") {
5950
+ e.preventDefault();
5951
+ move(index, index - 1);
5952
+ } else if (e.key === "ArrowDown") {
5953
+ e.preventDefault();
5954
+ move(index, index + 1);
5955
+ }
5956
+ onKeyDown?.(e);
5957
+ },
5958
+ className: cn(
5959
+ "inline-flex cursor-grab touch-none items-center justify-center text-subtle-foreground transition-colors hover:text-muted-foreground active:cursor-grabbing",
5960
+ className
5961
+ ),
5962
+ ...props,
5963
+ children
5964
+ }
5965
+ );
5966
+ }
5967
+ );
5968
+ SortableHandle.displayName = "Sortable.Handle";
5969
+ var Sortable = Object.assign(SortableRoot, {
5970
+ Item: SortableItem,
5971
+ Handle: SortableHandle
5972
+ });
5851
5973
 
5852
- export { Accordion2 as Accordion, AccordionContent, AccordionItem, AccordionTrigger, ActivityFeed, ActivityItem, AnimatedNumber, AnnotationMarker, AudioPlayer, AudioWaveform, Avatar, AvatarGroup, Badge, BadgeOverlay, Card, Carousel, CarouselDot, CarouselDots, CarouselNext, CarouselPrev, CarouselSlide, CarouselSlides, CarouselViewport, ChatBubble, Code, Collapsible, CollapsibleContent, CollapsibleTrigger, Comment, CommentThread, Confetti, CountBadge, CountUp, DataGrid, DataTable, DaySeparator, DescriptionList, DiffViewer, EmptyState, EventCalendar, Eyebrow, FeatureCard, Gantt, GradientText, Heading, HeatmapCalendar, Highlight, Image, InfoRow, KeyboardShortcut, List, ListItem, Mark, Marquee, MessageList, MetaInline, MetricChip, NodeEditor, NotificationDot, PDFViewer, PricingCard, Quote, ReactionBar, ScheduleView, ScrollReveal, SectionHeader, Separator, Snippet, Sparkline, Stat, Status, StepCard, SwipeActions, Table, TableBody, TableCaption, TableCell, TableFooter, TableHead, TableHeaderCell, TableRow, Tabs, TabsList, TabsPanel, TabsTab, Text, ThreadView, Tilt, Timeline, TimelineDescription, TimelineItem, TimelineTitle, Tooltip, Tree, TreeGroup, TreeItem, Typewriter, VideoPlayer, avatarVariants, badgeVariants, codeVariants, headingVariants, textVariants };
5853
- //# sourceMappingURL=chunk-2N3N3IE2.js.map
5854
- //# sourceMappingURL=chunk-2N3N3IE2.js.map
5974
+ export { Accordion2 as Accordion, AccordionContent, AccordionItem, AccordionTrigger, ActivityFeed, ActivityItem, AnimatedNumber, AnnotationMarker, AudioPlayer, AudioWaveform, Avatar, AvatarGroup, Badge, BadgeOverlay, Card, Carousel, CarouselDot, CarouselDots, CarouselNext, CarouselPrev, CarouselSlide, CarouselSlides, CarouselViewport, ChatBubble, Code, Collapsible, CollapsibleContent, CollapsibleTrigger, Comment, CommentThread, Confetti, CountBadge, CountUp, DataGrid, DataTable, DaySeparator, DescriptionList, DiffViewer, EmptyState, EventCalendar, Eyebrow, FeatureCard, Gantt, GradientText, Heading, HeatmapCalendar, Highlight, Image, InfoRow, KeyboardShortcut, List, ListItem, Mark, Marquee, MessageList, MetaInline, MetricChip, NodeEditor, NotificationDot, PDFViewer, PricingCard, Quote, ReactionBar, ScheduleView, ScrollReveal, SectionHeader, Separator, Snippet, Sortable, Sparkline, Stat, Status, StepCard, SwipeActions, Table, TableBody, TableCaption, TableCell, TableFooter, TableHead, TableHeaderCell, TableRow, Tabs, TabsList, TabsPanel, TabsTab, Text, ThreadView, Tilt, Timeline, TimelineDescription, TimelineItem, TimelineTitle, Tooltip, Tree, TreeGroup, TreeItem, Typewriter, VideoPlayer, avatarVariants, badgeVariants, codeVariants, headingVariants, textVariants };
5975
+ //# sourceMappingURL=chunk-VQGGK4VP.js.map
5976
+ //# sourceMappingURL=chunk-VQGGK4VP.js.map