@xploreu/components 0.4.16 → 0.4.18

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 (71) hide show
  1. package/dist/chunk-2RHSXF3X.js +2 -0
  2. package/dist/chunk-2RHSXF3X.js.map +1 -0
  3. package/dist/chunk-3C5RPQNM.js +2 -0
  4. package/dist/chunk-3C5RPQNM.js.map +1 -0
  5. package/dist/{chunk-RVQZK2AK.js → chunk-BSWTMWP5.js} +2 -2
  6. package/dist/{chunk-RVQZK2AK.js.map → chunk-BSWTMWP5.js.map} +1 -1
  7. package/dist/{chunk-FE2732UW.js → chunk-C7KUNTTO.js} +2 -2
  8. package/dist/{chunk-FE2732UW.js.map → chunk-C7KUNTTO.js.map} +1 -1
  9. package/dist/chunk-DX767LBV.js +2 -0
  10. package/dist/chunk-DX767LBV.js.map +1 -0
  11. package/dist/{chunk-R4WEEB5H.js → chunk-F2QUDOBO.js} +2 -2
  12. package/dist/{chunk-R4WEEB5H.js.map → chunk-F2QUDOBO.js.map} +1 -1
  13. package/dist/chunk-GNQKITNA.js +2 -0
  14. package/dist/chunk-GNQKITNA.js.map +1 -0
  15. package/dist/{chunk-ZWZMXZGN.js → chunk-IIFWJ2BW.js} +2 -2
  16. package/dist/{chunk-ZWZMXZGN.js.map → chunk-IIFWJ2BW.js.map} +1 -1
  17. package/dist/{chunk-YZNI5HEX.js → chunk-J6CW2XBL.js} +2 -2
  18. package/dist/{chunk-YZNI5HEX.js.map → chunk-J6CW2XBL.js.map} +1 -1
  19. package/dist/chunk-L2QE2YOM.js +2 -0
  20. package/dist/{chunk-5YDJTHDG.js.map → chunk-L2QE2YOM.js.map} +1 -1
  21. package/dist/{chunk-KYVYO45Y.js → chunk-LTSUNU7E.js} +2 -2
  22. package/dist/{chunk-KYVYO45Y.js.map → chunk-LTSUNU7E.js.map} +1 -1
  23. package/dist/{chunk-CPRMLK2G.js → chunk-NWX5WD7D.js} +2 -2
  24. package/dist/{chunk-CPRMLK2G.js.map → chunk-NWX5WD7D.js.map} +1 -1
  25. package/dist/chunk-OK4K7DSW.js +2 -0
  26. package/dist/chunk-OK4K7DSW.js.map +1 -0
  27. package/dist/{chunk-Z67QQMOX.js → chunk-VY735IE2.js} +2 -2
  28. package/dist/{chunk-Z67QQMOX.js.map → chunk-VY735IE2.js.map} +1 -1
  29. package/dist/chunk-ZNZVX4PT.js +2 -0
  30. package/dist/chunk-ZNZVX4PT.js.map +1 -0
  31. package/dist/composites/combobox-chip-outside.js +1 -1
  32. package/dist/composites/combobox-chip.js +1 -1
  33. package/dist/composites/combobox-simple.js +1 -1
  34. package/dist/composites/filter-combobox.d.ts +3 -1
  35. package/dist/composites/filter-combobox.js +1 -1
  36. package/dist/composites/index.js +1 -1
  37. package/dist/composites/phone-input.js +1 -1
  38. package/dist/composites/profile-avatar.d.ts +1 -1
  39. package/dist/primitives/combobox.js +1 -1
  40. package/dist/primitives/dialog.js +1 -1
  41. package/dist/primitives/index.d.ts +1 -1
  42. package/dist/primitives/index.js +1 -1
  43. package/dist/primitives/sheet.js +1 -1
  44. package/dist/primitives/tooltip.d.ts +20 -6
  45. package/dist/primitives/tooltip.js +1 -1
  46. package/dist/ui/badge.d.ts +3 -3
  47. package/dist/ui/button.d.ts +1 -1
  48. package/dist/ui/combobox.js +1 -1
  49. package/dist/ui/dialog.js +1 -1
  50. package/dist/ui/index.d.ts +2 -2
  51. package/dist/ui/index.js +1 -1
  52. package/dist/ui/input.d.ts +1 -1
  53. package/dist/ui/pagination.js +1 -1
  54. package/dist/ui/sheet.js +1 -1
  55. package/dist/ui/table.js +1 -1
  56. package/dist/ui/tooltip.d.ts +8 -10
  57. package/dist/ui/tooltip.js +1 -1
  58. package/package.json +108 -108
  59. package/dist/chunk-5YDJTHDG.js +0 -2
  60. package/dist/chunk-COJ4DWGS.js +0 -2
  61. package/dist/chunk-COJ4DWGS.js.map +0 -1
  62. package/dist/chunk-EL7P7FN5.js +0 -2
  63. package/dist/chunk-EL7P7FN5.js.map +0 -1
  64. package/dist/chunk-JILBFCPY.js +0 -2
  65. package/dist/chunk-JILBFCPY.js.map +0 -1
  66. package/dist/chunk-NBRMYO6B.js +0 -2
  67. package/dist/chunk-NBRMYO6B.js.map +0 -1
  68. package/dist/chunk-P6Y4P5QT.js +0 -2
  69. package/dist/chunk-P6Y4P5QT.js.map +0 -1
  70. package/dist/chunk-VHXY2BUM.js +0 -2
  71. package/dist/chunk-VHXY2BUM.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/ui/sheet.tsx"],"names":["Sheet","props","jsx","SheetTrigger","SheetClose","SheetOverlay","className","cn","sideClasses","SheetPopup","side","children","showCloseButton","closeClassName","jsxs","SheetPortal","XIcon","SheetContent","SheetHeader","SheetFooter","SheetTitle","SheetDescription"],"mappings":"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","file":"chunk-YZNI5HEX.js","sourcesContent":["import * as React from 'react';\r\nimport { XIcon } from 'lucide-react';\r\n\r\nimport {\r\n Sheet as SheetPrimitive,\r\n SheetPopup as SheetPopupPrimitive,\r\n SheetContent as SheetContentPrimitive,\r\n SheetDescription as SheetDescriptionPrimitive,\r\n SheetFooter as SheetFooterPrimitive,\r\n SheetHeader as SheetHeaderPrimitive,\r\n SheetOverlay as SheetOverlayPrimitive,\r\n SheetPortal as SheetPortalPrimitive,\r\n SheetTitle as SheetTitlePrimitive,\r\n SheetTrigger as SheetTriggerPrimitive,\r\n SheetClose as SheetClosePrimitive,\r\n type SheetPopupProps as SheetPopupPrimitiveProps,\r\n type SheetContentProps as SheetContentPrimitiveProps,\r\n type SheetDescriptionProps as SheetDescriptionPrimitiveProps,\r\n type SheetFooterProps as SheetFooterPrimitiveProps,\r\n type SheetHeaderProps as SheetHeaderPrimitiveProps,\r\n type SheetOverlayProps as SheetOverlayPrimitiveProps,\r\n type SheetTitleProps as SheetTitlePrimitiveProps,\r\n type SheetTriggerProps as SheetTriggerPrimitiveProps,\r\n type SheetProps as SheetPrimitiveProps,\r\n type SheetCloseProps as SheetClosePrimitiveProps,\r\n type SheetSide,\r\n} from '../primitives/sheet';\r\nimport { cn } from '@xploreu/lib/cn';\r\n\r\ntype SheetProps = SheetPrimitiveProps;\r\n\r\nfunction Sheet(props: SheetProps) {\r\n return <SheetPrimitive {...props} />;\r\n}\r\n\r\ntype SheetTriggerProps = SheetTriggerPrimitiveProps;\r\n\r\nfunction SheetTrigger(props: SheetTriggerProps) {\r\n return <SheetTriggerPrimitive {...props} />;\r\n}\r\n\r\ntype SheetCloseProps = SheetClosePrimitiveProps;\r\n\r\nfunction SheetClose(props: SheetCloseProps) {\r\n return <SheetClosePrimitive {...props} />;\r\n}\r\n\r\ntype SheetOverlayProps = SheetOverlayPrimitiveProps;\r\n\r\nfunction SheetOverlay({ className, ...props }: SheetOverlayProps) {\r\n return (\r\n <SheetOverlayPrimitive\r\n className={cn('fixed inset-0 z-50 bg-black/50 backdrop-blur-sm', className)}\r\n {...props}\r\n />\r\n );\r\n}\r\n\r\ntype SheetPopupProps = SheetPopupPrimitiveProps & {\r\n showCloseButton?: boolean;\r\n closeClassName?: string;\r\n};\r\n\r\nconst sideClasses: Record<SheetSide, string> = {\r\n right: 'inset-y-0 right-0 h-full w-full max-w-sm border-l border-border-primary',\r\n left: 'inset-y-0 left-0 h-full w-full max-w-sm border-r border-border-primary',\r\n top: 'inset-x-0 top-0 h-full max-h-sm w-full border-b border-border-primary',\r\n bottom:\r\n 'inset-x-0 bottom-0 h-full max-h-sm w-full border-t border-border-primary',\r\n};\r\n\r\nfunction SheetPopup({\r\n side = 'right',\r\n className,\r\n children,\r\n showCloseButton = true,\r\n closeClassName,\r\n ...props\r\n}: SheetPopupProps) {\r\n return (\r\n <SheetPortalPrimitive>\r\n <SheetOverlay />\r\n <SheetPopupPrimitive\r\n side={side}\r\n className={cn(\r\n 'fixed z-50 flex flex-col bg-bg-primary shadow-xp-lg',\r\n sideClasses[side],\r\n className,\r\n )}\r\n {...props}\r\n >\r\n {children}\r\n {showCloseButton && (\r\n <SheetClosePrimitive\r\n className={cn(\r\n 'absolute top-4 right-4 rounded-xs transition-colors hover:text-text-error-primary-hover disabled:pointer-events-none [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*=\"size-\"])]:size-4',\r\n closeClassName,\r\n )}\r\n >\r\n <XIcon />\r\n <span className=\"sr-only\">Close</span>\r\n </SheetClosePrimitive>\r\n )}\r\n </SheetPopupPrimitive>\r\n </SheetPortalPrimitive>\r\n );\r\n}\r\n\r\ntype SheetContentProps = SheetContentPrimitiveProps;\r\n\r\nfunction SheetContent({ className, ...props }: SheetContentProps) {\r\n return (\r\n <SheetContentPrimitive\r\n className={cn('flex-1 overflow-y-auto px-6 py-4', className)}\r\n {...props}\r\n />\r\n );\r\n}\r\n\r\ntype SheetHeaderProps = SheetHeaderPrimitiveProps;\r\n\r\nfunction SheetHeader({ className, ...props }: SheetHeaderProps) {\r\n return (\r\n <SheetHeaderPrimitive\r\n className={cn(\r\n 'flex flex-col gap-1 border-b border-border-tertiary px-6 py-4',\r\n className,\r\n )}\r\n {...props}\r\n />\r\n );\r\n}\r\n\r\ntype SheetFooterProps = SheetFooterPrimitiveProps;\r\n\r\nfunction SheetFooter({ className, ...props }: SheetFooterProps) {\r\n return (\r\n <SheetFooterPrimitive\r\n className={cn(\r\n 'mt-auto flex items-center justify-end gap-2 border-t border-border-tertiary px-6 py-4',\r\n className,\r\n )}\r\n {...props}\r\n />\r\n );\r\n}\r\n\r\ntype SheetTitleProps = SheetTitlePrimitiveProps;\r\n\r\nfunction SheetTitle({ className, ...props }: SheetTitleProps) {\r\n return (\r\n <SheetTitlePrimitive\r\n className={cn('text-label-bold-2 text-text-primary', className)}\r\n {...props}\r\n />\r\n );\r\n}\r\n\r\ntype SheetDescriptionProps = SheetDescriptionPrimitiveProps;\r\n\r\nfunction SheetDescription({ className, ...props }: SheetDescriptionProps) {\r\n return (\r\n <SheetDescriptionPrimitive\r\n className={cn('text-body-regular-3 text-text-secondary', className)}\r\n {...props}\r\n />\r\n );\r\n}\r\n\r\nexport {\r\n Sheet,\r\n SheetTrigger,\r\n SheetClose,\r\n SheetOverlay,\r\n SheetPopup,\r\n SheetContent,\r\n SheetHeader,\r\n SheetFooter,\r\n SheetTitle,\r\n SheetDescription,\r\n type SheetProps,\r\n type SheetTriggerProps,\r\n type SheetCloseProps,\r\n type SheetOverlayProps,\r\n type SheetPopupProps,\r\n type SheetContentProps,\r\n type SheetHeaderProps,\r\n type SheetFooterProps,\r\n type SheetTitleProps,\r\n type SheetDescriptionProps,\r\n};\r\n"]}
1
+ {"version":3,"sources":["../src/ui/sheet.tsx"],"names":["Sheet","props","jsx","SheetTrigger","SheetClose","SheetOverlay","className","cn","sideClasses","SheetPopup","side","children","showCloseButton","closeClassName","jsxs","SheetPortal","XIcon","SheetContent","SheetHeader","SheetFooter","SheetTitle","SheetDescription"],"mappings":"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","file":"chunk-J6CW2XBL.js","sourcesContent":["import * as React from 'react';\r\nimport { XIcon } from 'lucide-react';\r\n\r\nimport {\r\n Sheet as SheetPrimitive,\r\n SheetPopup as SheetPopupPrimitive,\r\n SheetContent as SheetContentPrimitive,\r\n SheetDescription as SheetDescriptionPrimitive,\r\n SheetFooter as SheetFooterPrimitive,\r\n SheetHeader as SheetHeaderPrimitive,\r\n SheetOverlay as SheetOverlayPrimitive,\r\n SheetPortal as SheetPortalPrimitive,\r\n SheetTitle as SheetTitlePrimitive,\r\n SheetTrigger as SheetTriggerPrimitive,\r\n SheetClose as SheetClosePrimitive,\r\n type SheetPopupProps as SheetPopupPrimitiveProps,\r\n type SheetContentProps as SheetContentPrimitiveProps,\r\n type SheetDescriptionProps as SheetDescriptionPrimitiveProps,\r\n type SheetFooterProps as SheetFooterPrimitiveProps,\r\n type SheetHeaderProps as SheetHeaderPrimitiveProps,\r\n type SheetOverlayProps as SheetOverlayPrimitiveProps,\r\n type SheetTitleProps as SheetTitlePrimitiveProps,\r\n type SheetTriggerProps as SheetTriggerPrimitiveProps,\r\n type SheetProps as SheetPrimitiveProps,\r\n type SheetCloseProps as SheetClosePrimitiveProps,\r\n type SheetSide,\r\n} from '../primitives/sheet';\r\nimport { cn } from '@xploreu/lib/cn';\r\n\r\ntype SheetProps = SheetPrimitiveProps;\r\n\r\nfunction Sheet(props: SheetProps) {\r\n return <SheetPrimitive {...props} />;\r\n}\r\n\r\ntype SheetTriggerProps = SheetTriggerPrimitiveProps;\r\n\r\nfunction SheetTrigger(props: SheetTriggerProps) {\r\n return <SheetTriggerPrimitive {...props} />;\r\n}\r\n\r\ntype SheetCloseProps = SheetClosePrimitiveProps;\r\n\r\nfunction SheetClose(props: SheetCloseProps) {\r\n return <SheetClosePrimitive {...props} />;\r\n}\r\n\r\ntype SheetOverlayProps = SheetOverlayPrimitiveProps;\r\n\r\nfunction SheetOverlay({ className, ...props }: SheetOverlayProps) {\r\n return (\r\n <SheetOverlayPrimitive\r\n className={cn('fixed inset-0 z-50 bg-black/50 backdrop-blur-sm', className)}\r\n {...props}\r\n />\r\n );\r\n}\r\n\r\ntype SheetPopupProps = SheetPopupPrimitiveProps & {\r\n showCloseButton?: boolean;\r\n closeClassName?: string;\r\n};\r\n\r\nconst sideClasses: Record<SheetSide, string> = {\r\n right: 'inset-y-0 right-0 h-full w-full max-w-sm border-l border-border-primary',\r\n left: 'inset-y-0 left-0 h-full w-full max-w-sm border-r border-border-primary',\r\n top: 'inset-x-0 top-0 h-full max-h-sm w-full border-b border-border-primary',\r\n bottom:\r\n 'inset-x-0 bottom-0 h-full max-h-sm w-full border-t border-border-primary',\r\n};\r\n\r\nfunction SheetPopup({\r\n side = 'right',\r\n className,\r\n children,\r\n showCloseButton = true,\r\n closeClassName,\r\n ...props\r\n}: SheetPopupProps) {\r\n return (\r\n <SheetPortalPrimitive>\r\n <SheetOverlay />\r\n <SheetPopupPrimitive\r\n side={side}\r\n className={cn(\r\n 'fixed z-50 flex flex-col bg-bg-primary shadow-xp-lg',\r\n sideClasses[side],\r\n className,\r\n )}\r\n {...props}\r\n >\r\n {children}\r\n {showCloseButton && (\r\n <SheetClosePrimitive\r\n className={cn(\r\n 'absolute top-4 right-4 rounded-xs transition-colors hover:text-text-error-primary-hover disabled:pointer-events-none [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*=\"size-\"])]:size-4',\r\n closeClassName,\r\n )}\r\n >\r\n <XIcon />\r\n <span className=\"sr-only\">Close</span>\r\n </SheetClosePrimitive>\r\n )}\r\n </SheetPopupPrimitive>\r\n </SheetPortalPrimitive>\r\n );\r\n}\r\n\r\ntype SheetContentProps = SheetContentPrimitiveProps;\r\n\r\nfunction SheetContent({ className, ...props }: SheetContentProps) {\r\n return (\r\n <SheetContentPrimitive\r\n className={cn('flex-1 overflow-y-auto px-6 py-4', className)}\r\n {...props}\r\n />\r\n );\r\n}\r\n\r\ntype SheetHeaderProps = SheetHeaderPrimitiveProps;\r\n\r\nfunction SheetHeader({ className, ...props }: SheetHeaderProps) {\r\n return (\r\n <SheetHeaderPrimitive\r\n className={cn(\r\n 'flex flex-col gap-1 border-b border-border-tertiary px-6 py-4',\r\n className,\r\n )}\r\n {...props}\r\n />\r\n );\r\n}\r\n\r\ntype SheetFooterProps = SheetFooterPrimitiveProps;\r\n\r\nfunction SheetFooter({ className, ...props }: SheetFooterProps) {\r\n return (\r\n <SheetFooterPrimitive\r\n className={cn(\r\n 'mt-auto flex items-center justify-end gap-2 border-t border-border-tertiary px-6 py-4',\r\n className,\r\n )}\r\n {...props}\r\n />\r\n );\r\n}\r\n\r\ntype SheetTitleProps = SheetTitlePrimitiveProps;\r\n\r\nfunction SheetTitle({ className, ...props }: SheetTitleProps) {\r\n return (\r\n <SheetTitlePrimitive\r\n className={cn('text-label-bold-2 text-text-primary', className)}\r\n {...props}\r\n />\r\n );\r\n}\r\n\r\ntype SheetDescriptionProps = SheetDescriptionPrimitiveProps;\r\n\r\nfunction SheetDescription({ className, ...props }: SheetDescriptionProps) {\r\n return (\r\n <SheetDescriptionPrimitive\r\n className={cn('text-body-regular-3 text-text-secondary', className)}\r\n {...props}\r\n />\r\n );\r\n}\r\n\r\nexport {\r\n Sheet,\r\n SheetTrigger,\r\n SheetClose,\r\n SheetOverlay,\r\n SheetPopup,\r\n SheetContent,\r\n SheetHeader,\r\n SheetFooter,\r\n SheetTitle,\r\n SheetDescription,\r\n type SheetProps,\r\n type SheetTriggerProps,\r\n type SheetCloseProps,\r\n type SheetOverlayProps,\r\n type SheetPopupProps,\r\n type SheetContentProps,\r\n type SheetHeaderProps,\r\n type SheetFooterProps,\r\n type SheetTitleProps,\r\n type SheetDescriptionProps,\r\n};\r\n"]}
@@ -0,0 +1,2 @@
1
+ import*as r from'react';import {Dialog}from'@base-ui/react/dialog';import {AnimatePresence,motion}from'motion/react';import {useControlledState}from'@xploreu/hooks/use-controlled-state';import {getStrictContext}from'@xploreu/lib/get-strict-context';import {cn}from'@xploreu/lib/cn';import {jsx}from'react/jsx-runtime';var [T,D]=getStrictContext("DialogContext");function M(o){let[i,a]=useControlledState({value:o?.open,defaultValue:o?.defaultOpen,onChange:o?.onOpenChange});return jsx(T,{value:{open:i,setOpen:a},children:jsx(Dialog.Root,{"data-slot":"dialog",...o,onOpenChange:a})})}function H(o){return jsx(Dialog.Trigger,{"data-slot":"dialog-trigger",...o})}function h(o){let{open:i}=D();return jsx(AnimatePresence,{children:i&&jsx(Dialog.Portal,{"data-slot":"dialog-portal",keepMounted:true,...o})})}function B({transition:o={duration:.2,ease:"easeInOut"},...i}){return jsx(Dialog.Backdrop,{"data-slot":"dialog-backdrop",render:jsx(motion.div,{initial:{opacity:0,filter:"blur(4px)"},animate:{opacity:1,filter:"blur(0px)"},exit:{opacity:0,filter:"blur(4px)"},transition:o,...i},"dialog-backdrop")})}function A({from:o="bottom",initialFocus:i,finalFocus:a,transition:P={type:"spring",stiffness:150,damping:25},className:d,...u}){let l=o==="bottom"||o==="left"?"20deg":"-20deg",p=o==="top"||o==="bottom"?"rotateX":"rotateY",[m,s]=r.useState(false),{open:g}=D();return r.useEffect(()=>{g||s(false);},[g]),jsx(Dialog.Popup,{initialFocus:i,finalFocus:a,render:jsx(motion.div,{"data-slot":"dialog-popup","data-opened":m?"":void 0,className:cn("data-[opened]:!transform-none",d),animate:{opacity:1,filter:"blur(0px)",transform:`perspective(500px) ${p}(0deg) scale(1)`},exit:{opacity:0,filter:"blur(4px)",transform:`perspective(500px) ${p}(${l}) scale(0.8)`},initial:{opacity:0,filter:"blur(4px)",transform:`perspective(500px) ${p}(${l}) scale(0.8)`},transition:P,onAnimationComplete:n=>{typeof n=="object"&&"opacity"in n&&n.opacity!==1||requestAnimationFrame(()=>{s(true);});},...u},"dialog-popup")})}function $(o){return jsx(Dialog.Close,{"data-slot":"dialog-close",...o})}function L(o){return jsx("div",{"data-slot":"dialog-header",...o})}function S(o){return jsx("div",{"data-slot":"dialog-footer",...o})}function V(o){return jsx(Dialog.Title,{"data-slot":"dialog-title",...o})}function q(o){return jsx(Dialog.Description,{"data-slot":"dialog-description",...o})}export{D as a,M as b,H as c,h as d,B as e,A as f,$ as g,L as h,S as i,V as j,q as k};//# sourceMappingURL=chunk-L2QE2YOM.js.map
2
+ //# sourceMappingURL=chunk-L2QE2YOM.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/primitives/dialog.tsx"],"names":["DialogProvider","useDialog","getStrictContext","Dialog","props","open","setOpen","useControlledState","jsx","DialogPrimitive","DialogTrigger","DialogPortal","AnimatePresence","DialogBackdrop","transition","motion","DialogPopup","from","initialFocus","finalFocus","className","initialRotation","rotateAxis","opened","setOpened","cn","latest","DialogClose","DialogHeader","DialogFooter","DialogTitle","DialogDescription"],"mappings":"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","file":"chunk-5YDJTHDG.js","sourcesContent":["'use client';\r\n\r\nimport * as React from 'react';\r\nimport { Dialog as DialogPrimitive } from '@base-ui/react/dialog';\r\nimport { AnimatePresence, motion, type HTMLMotionProps } from 'motion/react';\r\n\r\nimport { useControlledState } from '@xploreu/hooks/use-controlled-state';\r\nimport { getStrictContext } from '@xploreu/lib/get-strict-context';\r\nimport { cn } from '@xploreu/lib/cn';\r\n\r\ntype DialogContextType = {\r\n open: boolean;\r\n setOpen: DialogProps['onOpenChange'];\r\n};\r\n\r\nconst [DialogProvider, useDialog] =\r\n getStrictContext<DialogContextType>('DialogContext');\r\n\r\ntype DialogProps = React.ComponentProps<typeof DialogPrimitive.Root>;\r\n\r\nfunction Dialog(props: DialogProps) {\r\n const [open, setOpen] = useControlledState({\r\n value: props?.open,\r\n defaultValue: props?.defaultOpen,\r\n onChange: props?.onOpenChange,\r\n });\r\n\r\n return (\r\n <DialogProvider value={{ open, setOpen }}>\r\n <DialogPrimitive.Root\r\n data-slot=\"dialog\"\r\n {...props}\r\n onOpenChange={setOpen}\r\n />\r\n </DialogProvider>\r\n );\r\n}\r\n\r\ntype DialogTriggerProps = React.ComponentProps<typeof DialogPrimitive.Trigger>;\r\n\r\nfunction DialogTrigger(props: DialogTriggerProps) {\r\n return <DialogPrimitive.Trigger data-slot=\"dialog-trigger\" {...props} />;\r\n}\r\n\r\ntype DialogPortalProps = Omit<\r\n React.ComponentProps<typeof DialogPrimitive.Portal>,\r\n 'keepMounted'\r\n>;\r\n\r\nfunction DialogPortal(props: DialogPortalProps) {\r\n const { open } = useDialog();\r\n\r\n return (\r\n <AnimatePresence>\r\n {open && (\r\n <DialogPrimitive.Portal\r\n data-slot=\"dialog-portal\"\r\n keepMounted\r\n {...props}\r\n />\r\n )}\r\n </AnimatePresence>\r\n );\r\n}\r\n\r\ntype DialogBackdropProps = Omit<\r\n React.ComponentProps<typeof DialogPrimitive.Backdrop>,\r\n 'render'\r\n> &\r\n HTMLMotionProps<'div'>;\r\n\r\nfunction DialogBackdrop({\r\n transition = { duration: 0.2, ease: 'easeInOut' },\r\n ...props\r\n}: DialogBackdropProps) {\r\n return (\r\n <DialogPrimitive.Backdrop\r\n data-slot=\"dialog-backdrop\"\r\n render={\r\n <motion.div\r\n key=\"dialog-backdrop\"\r\n initial={{ opacity: 0, filter: 'blur(4px)' }}\r\n animate={{ opacity: 1, filter: 'blur(0px)' }}\r\n exit={{ opacity: 0, filter: 'blur(4px)' }}\r\n transition={transition}\r\n {...props}\r\n />\r\n }\r\n />\r\n );\r\n}\r\n\r\ntype DialogFlipDirection = 'top' | 'bottom' | 'left' | 'right';\r\n\r\ntype DialogPopupProps = Omit<\r\n React.ComponentProps<typeof DialogPrimitive.Popup>,\r\n 'render'\r\n> &\r\n HTMLMotionProps<'div'> & {\r\n from?: DialogFlipDirection;\r\n };\r\n\r\nfunction DialogPopup({\r\n from = 'left',\r\n initialFocus,\r\n finalFocus,\r\n transition = { type: 'spring', stiffness: 150, damping: 25 },\r\n className,\r\n ...props\r\n}: DialogPopupProps) {\r\n const initialRotation =\r\n from === 'bottom' || from === 'left' ? '20deg' : '-20deg';\r\n const isVertical = from === 'top' || from === 'bottom';\r\n const rotateAxis = isVertical ? 'rotateX' : 'rotateY';\r\n\r\n const [opened, setOpened] = React.useState(false);\r\n\r\n const { open } = useDialog()\r\n\r\n React.useEffect(() => {\r\n if (open) return\r\n\r\n setOpened(false)\r\n }, [open])\r\n\r\n return (\r\n <DialogPrimitive.Popup\r\n initialFocus={initialFocus}\r\n finalFocus={finalFocus}\r\n render={\r\n <motion.div\r\n key=\"dialog-popup\"\r\n data-slot=\"dialog-popup\"\r\n data-opened={opened ? \"\" : undefined}\r\n className={cn(\"data-[opened]:!transform-none\", className)}\r\n animate={{\r\n opacity: 1,\r\n filter: \"blur(0px)\",\r\n transform: `perspective(500px) ${rotateAxis}(0deg) scale(1)`,\r\n }}\r\n exit={{\r\n opacity: 0,\r\n filter: \"blur(4px)\",\r\n transform: `perspective(500px) ${rotateAxis}(${initialRotation}) scale(0.8)`,\r\n }}\r\n initial={{\r\n opacity: 0,\r\n filter: \"blur(4px)\",\r\n transform: `perspective(500px) ${rotateAxis}(${initialRotation}) scale(0.8)`,\r\n }}\r\n transition={transition}\r\n onAnimationComplete={(latest) => {\r\n if (typeof latest === \"object\" && \"opacity\" in latest && latest.opacity !== 1) return\r\n\r\n requestAnimationFrame(() => {\r\n setOpened(true)\r\n })\r\n }}\r\n {...props}\r\n />\r\n }\r\n />\r\n );\r\n}\r\n\r\ntype DialogCloseProps = React.ComponentProps<typeof DialogPrimitive.Close>;\r\n\r\nfunction DialogClose(props: DialogCloseProps) {\r\n return <DialogPrimitive.Close data-slot=\"dialog-close\" {...props} />;\r\n}\r\n\r\ntype DialogHeaderProps = React.ComponentProps<'div'>;\r\n\r\nfunction DialogHeader(props: DialogHeaderProps) {\r\n return <div data-slot=\"dialog-header\" {...props} />;\r\n}\r\n\r\ntype DialogFooterProps = React.ComponentProps<'div'>;\r\n\r\nfunction DialogFooter(props: DialogFooterProps) {\r\n return <div data-slot=\"dialog-footer\" {...props} />;\r\n}\r\n\r\ntype DialogTitleProps = React.ComponentProps<typeof DialogPrimitive.Title>;\r\n\r\nfunction DialogTitle(props: DialogTitleProps) {\r\n return <DialogPrimitive.Title data-slot=\"dialog-title\" {...props} />;\r\n}\r\n\r\ntype DialogDescriptionProps = React.ComponentProps<\r\n typeof DialogPrimitive.Description\r\n>;\r\n\r\nfunction DialogDescription(props: DialogDescriptionProps) {\r\n return (\r\n <DialogPrimitive.Description data-slot=\"dialog-description\" {...props} />\r\n );\r\n}\r\n\r\nexport {\r\n Dialog,\r\n DialogPortal,\r\n DialogBackdrop,\r\n DialogClose,\r\n DialogTrigger,\r\n DialogPopup,\r\n DialogHeader,\r\n DialogFooter,\r\n DialogTitle,\r\n DialogDescription,\r\n useDialog,\r\n type DialogProps,\r\n type DialogTriggerProps,\r\n type DialogPortalProps,\r\n type DialogCloseProps,\r\n type DialogBackdropProps,\r\n type DialogPopupProps,\r\n type DialogHeaderProps,\r\n type DialogFooterProps,\r\n type DialogTitleProps,\r\n type DialogDescriptionProps,\r\n type DialogContextType,\r\n type DialogFlipDirection,\r\n};"]}
1
+ {"version":3,"sources":["../src/primitives/dialog.tsx"],"names":["DialogProvider","useDialog","getStrictContext","Dialog","props","open","setOpen","useControlledState","jsx","DialogPrimitive","DialogTrigger","DialogPortal","AnimatePresence","DialogBackdrop","transition","motion","DialogPopup","from","initialFocus","finalFocus","className","initialRotation","rotateAxis","opened","setOpened","cn","latest","DialogClose","DialogHeader","DialogFooter","DialogTitle","DialogDescription"],"mappings":"8TAeA,IAAM,CAACA,EAAgBC,CAAS,CAAA,CAC9BC,gBAAAA,CAAoC,eAAe,EAIrD,SAASC,EAAOC,CAAAA,CAAoB,CAClC,GAAM,CAACC,CAAAA,CAAMC,CAAO,CAAA,CAAIC,kBAAAA,CAAmB,CACzC,KAAA,CAAOH,CAAAA,EAAO,IAAA,CACd,aAAcA,CAAAA,EAAO,WAAA,CACrB,SAAUA,CAAAA,EAAO,YACnB,CAAC,CAAA,CAED,OACEI,GAAAA,CAACR,CAAAA,CAAA,CAAe,KAAA,CAAO,CAAE,IAAA,CAAAK,CAAAA,CAAM,QAAAC,CAAQ,CAAA,CACrC,SAAAE,GAAAA,CAACC,MAAAA,CAAgB,IAAA,CAAhB,CACC,WAAA,CAAU,QAAA,CACT,GAAGL,CAAAA,CACJ,YAAA,CAAcE,EAChB,CAAA,CACF,CAEJ,CAIA,SAASI,CAAAA,CAAcN,CAAAA,CAA2B,CAChD,OAAOI,GAAAA,CAACC,OAAgB,OAAA,CAAhB,CAAwB,YAAU,gBAAA,CAAkB,GAAGL,EAAO,CACxE,CAOA,SAASO,CAAAA,CAAaP,CAAAA,CAA0B,CAC9C,GAAM,CAAE,IAAA,CAAAC,CAAK,CAAA,CAAIJ,CAAAA,GAEjB,OACEO,GAAAA,CAACI,gBAAA,CACE,QAAA,CAAAP,GACCG,GAAAA,CAACC,MAAAA,CAAgB,OAAhB,CACC,WAAA,CAAU,gBACV,WAAA,CAAW,IAAA,CACV,GAAGL,CAAAA,CACN,CAAA,CAEJ,CAEJ,CAQA,SAASS,CAAAA,CAAe,CACtB,UAAA,CAAAC,CAAAA,CAAa,CAAE,QAAA,CAAU,EAAA,CAAK,IAAA,CAAM,WAAY,CAAA,CAChD,GAAGV,CACL,CAAA,CAAwB,CACtB,OACEI,GAAAA,CAACC,MAAAA,CAAgB,SAAhB,CACC,WAAA,CAAU,iBAAA,CACV,MAAA,CACED,GAAAA,CAACO,MAAAA,CAAO,IAAP,CAEC,OAAA,CAAS,CAAE,OAAA,CAAS,CAAA,CAAG,OAAQ,WAAY,CAAA,CAC3C,OAAA,CAAS,CAAE,OAAA,CAAS,CAAA,CAAG,OAAQ,WAAY,CAAA,CAC3C,KAAM,CAAE,OAAA,CAAS,EAAG,MAAA,CAAQ,WAAY,CAAA,CACxC,UAAA,CAAYD,CAAAA,CACX,GAAGV,GALA,iBAMN,CAAA,CAEJ,CAEJ,CAYA,SAASY,EAAY,CACnB,IAAA,CAAAC,CAAAA,CAAO,QAAA,CACP,YAAA,CAAAC,CAAAA,CACA,WAAAC,CAAAA,CACA,UAAA,CAAAL,EAAa,CAAE,IAAA,CAAM,SAAU,SAAA,CAAW,GAAA,CAAK,OAAA,CAAS,EAAG,CAAA,CAC3D,SAAA,CAAAM,EACA,GAAGhB,CACL,EAAqB,CACnB,IAAMiB,EACJJ,CAAAA,GAAS,QAAA,EAAYA,IAAS,MAAA,CAAS,OAAA,CAAU,SAE7CK,CAAAA,CADaL,CAAAA,GAAS,OAASA,CAAAA,GAAS,QAAA,CACd,UAAY,SAAA,CAEtC,CAACM,CAAAA,CAAQC,CAAS,CAAA,CAAU,CAAA,CAAA,QAAA,CAAS,KAAK,CAAA,CAE1C,CAAE,KAAAnB,CAAK,CAAA,CAAIJ,GAAU,CAE3B,OAAM,CAAA,CAAA,SAAA,CAAU,IAAM,CAChBI,CAAAA,EAEJmB,EAAU,KAAK,EACjB,EAAG,CAACnB,CAAI,CAAC,CAAA,CAGPG,GAAAA,CAACC,MAAAA,CAAgB,KAAA,CAAhB,CACC,YAAA,CAAcS,EACd,UAAA,CAAYC,CAAAA,CACZ,OACEX,GAAAA,CAACO,MAAAA,CAAO,IAAP,CAEC,WAAA,CAAU,cAAA,CACV,aAAA,CAAaQ,CAAAA,CAAS,EAAA,CAAK,OAC3B,SAAA,CAAWE,EAAAA,CAAG,gCAAiCL,CAAS,CAAA,CACxD,QAAS,CACP,OAAA,CAAS,CAAA,CACT,MAAA,CAAQ,WAAA,CACR,SAAA,CAAW,sBAAsBE,CAAU,CAAA,eAAA,CAC7C,EACA,IAAA,CAAM,CACJ,QAAS,CAAA,CACT,MAAA,CAAQ,WAAA,CACR,SAAA,CAAW,CAAA,mBAAA,EAAsBA,CAAU,IAAID,CAAe,CAAA,YAAA,CAChE,EACA,OAAA,CAAS,CACP,QAAS,CAAA,CACT,MAAA,CAAQ,WAAA,CACR,SAAA,CAAW,CAAA,mBAAA,EAAsBC,CAAU,IAAID,CAAe,CAAA,YAAA,CAChE,EACA,UAAA,CAAYP,CAAAA,CACZ,oBAAsBY,CAAAA,EAAW,CAC3B,OAAOA,CAAAA,EAAW,QAAA,EAAY,YAAaA,CAAAA,EAAUA,CAAAA,CAAO,UAAY,CAAA,EAE5E,qBAAA,CAAsB,IAAM,CAC1BF,CAAAA,CAAU,IAAI,EAChB,CAAC,EACH,EACC,GAAGpB,CAAAA,CAAAA,CA3BA,cA4BN,CAAA,CAEJ,CAEJ,CAIA,SAASuB,CAAAA,CAAYvB,CAAAA,CAAyB,CAC5C,OAAOI,GAAAA,CAACC,OAAgB,KAAA,CAAhB,CAAsB,YAAU,cAAA,CAAgB,GAAGL,EAAO,CACpE,CAIA,SAASwB,CAAAA,CAAaxB,CAAAA,CAA0B,CAC9C,OAAOI,GAAAA,CAAC,KAAA,CAAA,CAAI,YAAU,eAAA,CAAiB,GAAGJ,EAAO,CACnD,CAIA,SAASyB,CAAAA,CAAazB,CAAAA,CAA0B,CAC9C,OAAOI,GAAAA,CAAC,KAAA,CAAA,CAAI,YAAU,eAAA,CAAiB,GAAGJ,EAAO,CACnD,CAIA,SAAS0B,CAAAA,CAAY1B,CAAAA,CAAyB,CAC5C,OAAOI,GAAAA,CAACC,MAAAA,CAAgB,MAAhB,CAAsB,WAAA,CAAU,eAAgB,GAAGL,CAAAA,CAAO,CACpE,CAMA,SAAS2B,CAAAA,CAAkB3B,EAA+B,CACxD,OACEI,IAACC,MAAAA,CAAgB,WAAA,CAAhB,CAA4B,WAAA,CAAU,oBAAA,CAAsB,GAAGL,CAAAA,CAAO,CAE3E","file":"chunk-L2QE2YOM.js","sourcesContent":["'use client';\r\n\r\nimport * as React from 'react';\r\nimport { Dialog as DialogPrimitive } from '@base-ui/react/dialog';\r\nimport { AnimatePresence, motion, type HTMLMotionProps } from 'motion/react';\r\n\r\nimport { useControlledState } from '@xploreu/hooks/use-controlled-state';\r\nimport { getStrictContext } from '@xploreu/lib/get-strict-context';\r\nimport { cn } from '@xploreu/lib/cn';\r\n\r\ntype DialogContextType = {\r\n open: boolean;\r\n setOpen: DialogProps['onOpenChange'];\r\n};\r\n\r\nconst [DialogProvider, useDialog] =\r\n getStrictContext<DialogContextType>('DialogContext');\r\n\r\ntype DialogProps = React.ComponentProps<typeof DialogPrimitive.Root>;\r\n\r\nfunction Dialog(props: DialogProps) {\r\n const [open, setOpen] = useControlledState({\r\n value: props?.open,\r\n defaultValue: props?.defaultOpen,\r\n onChange: props?.onOpenChange,\r\n });\r\n\r\n return (\r\n <DialogProvider value={{ open, setOpen }}>\r\n <DialogPrimitive.Root\r\n data-slot=\"dialog\"\r\n {...props}\r\n onOpenChange={setOpen}\r\n />\r\n </DialogProvider>\r\n );\r\n}\r\n\r\ntype DialogTriggerProps = React.ComponentProps<typeof DialogPrimitive.Trigger>;\r\n\r\nfunction DialogTrigger(props: DialogTriggerProps) {\r\n return <DialogPrimitive.Trigger data-slot=\"dialog-trigger\" {...props} />;\r\n}\r\n\r\ntype DialogPortalProps = Omit<\r\n React.ComponentProps<typeof DialogPrimitive.Portal>,\r\n 'keepMounted'\r\n>;\r\n\r\nfunction DialogPortal(props: DialogPortalProps) {\r\n const { open } = useDialog();\r\n\r\n return (\r\n <AnimatePresence>\r\n {open && (\r\n <DialogPrimitive.Portal\r\n data-slot=\"dialog-portal\"\r\n keepMounted\r\n {...props}\r\n />\r\n )}\r\n </AnimatePresence>\r\n );\r\n}\r\n\r\ntype DialogBackdropProps = Omit<\r\n React.ComponentProps<typeof DialogPrimitive.Backdrop>,\r\n 'render'\r\n> &\r\n HTMLMotionProps<'div'>;\r\n\r\nfunction DialogBackdrop({\r\n transition = { duration: 0.2, ease: 'easeInOut' },\r\n ...props\r\n}: DialogBackdropProps) {\r\n return (\r\n <DialogPrimitive.Backdrop\r\n data-slot=\"dialog-backdrop\"\r\n render={\r\n <motion.div\r\n key=\"dialog-backdrop\"\r\n initial={{ opacity: 0, filter: 'blur(4px)' }}\r\n animate={{ opacity: 1, filter: 'blur(0px)' }}\r\n exit={{ opacity: 0, filter: 'blur(4px)' }}\r\n transition={transition}\r\n {...props}\r\n />\r\n }\r\n />\r\n );\r\n}\r\n\r\ntype DialogFlipDirection = 'top' | 'bottom' | 'left' | 'right';\r\n\r\ntype DialogPopupProps = Omit<\r\n React.ComponentProps<typeof DialogPrimitive.Popup>,\r\n 'render'\r\n> &\r\n HTMLMotionProps<'div'> & {\r\n from?: DialogFlipDirection;\r\n };\r\n\r\nfunction DialogPopup({\r\n from = 'bottom',\r\n initialFocus,\r\n finalFocus,\r\n transition = { type: 'spring', stiffness: 150, damping: 25 },\r\n className,\r\n ...props\r\n}: DialogPopupProps) {\r\n const initialRotation =\r\n from === 'bottom' || from === 'left' ? '20deg' : '-20deg';\r\n const isVertical = from === 'top' || from === 'bottom';\r\n const rotateAxis = isVertical ? 'rotateX' : 'rotateY';\r\n\r\n const [opened, setOpened] = React.useState(false);\r\n\r\n const { open } = useDialog()\r\n\r\n React.useEffect(() => {\r\n if (open) return\r\n\r\n setOpened(false)\r\n }, [open])\r\n\r\n return (\r\n <DialogPrimitive.Popup\r\n initialFocus={initialFocus}\r\n finalFocus={finalFocus}\r\n render={\r\n <motion.div\r\n key=\"dialog-popup\"\r\n data-slot=\"dialog-popup\"\r\n data-opened={opened ? \"\" : undefined}\r\n className={cn(\"data-[opened]:!transform-none\", className)}\r\n animate={{\r\n opacity: 1,\r\n filter: \"blur(0px)\",\r\n transform: `perspective(500px) ${rotateAxis}(0deg) scale(1)`,\r\n }}\r\n exit={{\r\n opacity: 0,\r\n filter: \"blur(4px)\",\r\n transform: `perspective(500px) ${rotateAxis}(${initialRotation}) scale(0.8)`,\r\n }}\r\n initial={{\r\n opacity: 0,\r\n filter: \"blur(4px)\",\r\n transform: `perspective(500px) ${rotateAxis}(${initialRotation}) scale(0.8)`,\r\n }}\r\n transition={transition}\r\n onAnimationComplete={(latest) => {\r\n if (typeof latest === \"object\" && \"opacity\" in latest && latest.opacity !== 1) return\r\n\r\n requestAnimationFrame(() => {\r\n setOpened(true)\r\n })\r\n }}\r\n {...props}\r\n />\r\n }\r\n />\r\n );\r\n}\r\n\r\ntype DialogCloseProps = React.ComponentProps<typeof DialogPrimitive.Close>;\r\n\r\nfunction DialogClose(props: DialogCloseProps) {\r\n return <DialogPrimitive.Close data-slot=\"dialog-close\" {...props} />;\r\n}\r\n\r\ntype DialogHeaderProps = React.ComponentProps<'div'>;\r\n\r\nfunction DialogHeader(props: DialogHeaderProps) {\r\n return <div data-slot=\"dialog-header\" {...props} />;\r\n}\r\n\r\ntype DialogFooterProps = React.ComponentProps<'div'>;\r\n\r\nfunction DialogFooter(props: DialogFooterProps) {\r\n return <div data-slot=\"dialog-footer\" {...props} />;\r\n}\r\n\r\ntype DialogTitleProps = React.ComponentProps<typeof DialogPrimitive.Title>;\r\n\r\nfunction DialogTitle(props: DialogTitleProps) {\r\n return <DialogPrimitive.Title data-slot=\"dialog-title\" {...props} />;\r\n}\r\n\r\ntype DialogDescriptionProps = React.ComponentProps<\r\n typeof DialogPrimitive.Description\r\n>;\r\n\r\nfunction DialogDescription(props: DialogDescriptionProps) {\r\n return (\r\n <DialogPrimitive.Description data-slot=\"dialog-description\" {...props} />\r\n );\r\n}\r\n\r\nexport {\r\n Dialog,\r\n DialogPortal,\r\n DialogBackdrop,\r\n DialogClose,\r\n DialogTrigger,\r\n DialogPopup,\r\n DialogHeader,\r\n DialogFooter,\r\n DialogTitle,\r\n DialogDescription,\r\n useDialog,\r\n type DialogProps,\r\n type DialogTriggerProps,\r\n type DialogPortalProps,\r\n type DialogCloseProps,\r\n type DialogBackdropProps,\r\n type DialogPopupProps,\r\n type DialogHeaderProps,\r\n type DialogFooterProps,\r\n type DialogTitleProps,\r\n type DialogDescriptionProps,\r\n type DialogContextType,\r\n type DialogFlipDirection,\r\n};"]}
@@ -1,2 +1,2 @@
1
- import {a,b as b$1,j as j$1,i,k,l,m,q,s,w,F}from'./chunk-EL7P7FN5.js';import {b}from'./chunk-JH6RZ3QH.js';import {g}from'./chunk-JILBFCPY.js';import*as r from'react';import {cn}from'@xploreu/lib/cn';import {SearchIcon,XIcon}from'lucide-react';import {useControlledState}from'@xploreu/hooks/use-controlled-state';import {jsxs,jsx,Fragment}from'react/jsx-runtime';function j({multiple:z=true,inputPlaceholder:B="Search...",container:q$1,items:u,infiniteScroll:A,isPending:H,taggable:c=false,maxVisible:i$1,...m$1}){let[h,g$1]=useControlledState({value:m$1?.inputValue?.toString(),defaultValue:m$1?.defaultInputValue?.toString(),onChange:m$1?.onInputValueChange}),[b$2,x]=useControlledState({value:m$1?.value??[],defaultValue:m$1?.defaultValue??[],onChange:m$1?.onValueChange}),[v,I]=r.useState([]),d=r.useRef(new Set);r.useEffect(()=>{let e=new Set(b$2.map(t=>t.value));I(t=>{let l=t.filter(a=>e.has(a.value));return l.length===t.length?t:(d.current=new Set(l.map(a=>a.value)),l)});},[b$2]);let n=h?.toString().trim()??"",U=r.useMemo(()=>n?b$2.some(e=>e.value.toLowerCase()===n.toLowerCase()):false,[n,b$2]),p=r.useMemo(()=>!c||!n?false:!u?.some(e=>e.label.toLowerCase()===n.toLowerCase()),[c,n,u]),X=r.useMemo(()=>{let e=[...u??[],...v];if(p){let t={label:n,value:n,tag:true};return [...e,t]}return e},[u,v,p,n]);return jsxs(a,{...m$1,behavior:"chip-outside",multiple:true,items:c?X:u,isItemEqualToValue:(e,t)=>e.value===t.value,onValueChange:(e,t)=>{if(c){let l=e.filter(a=>a?.tag===true&&!d.current.has(a.value));if(l.length>0){for(let a of l)d.current.add(a.value);I(a=>[...a,...l]);}}x(z?e:[e[e.length-1]],t);},onInputValueChange:g$1,children:[jsxs("div",{className:"flex flex-col gap-2",children:[jsx(g,{render:jsx(b,{className:"h-9 text-body-regular-3 pl-9 pr-7",endContent:jsx(b$1,{nativeButton:false,render:jsx(XIcon,{className:"!size-5 !right-1.5 data-[hidden=true]:opacity-0 opacity-100 transition-opacity duration-300 cursor-pointer","data-hidden":!h,"data-slot":"combobox-clear-input",onClick:e=>{g$1("",{reason:"none",event:e.nativeEvent,cancel:()=>{},allowPropagation:()=>{},isCanceled:false,isPropagationAllowed:true,trigger:void 0});}})}),placeholder:B,startContent:jsx(SearchIcon,{className:"!size-4 !text-fg-tertiary-hover"}),wrapperClassName:"w-full"})}),jsx(j$1,{className:cn(i$1!==void 0&&"flex-nowrap overflow-hidden"),onMouseDown:e=>e.preventBaseUIHandler(),children:jsx(i,{children:e=>{let t=i$1!==void 0?e.slice(0,i$1):e,l$1=i$1!==void 0?e.length-i$1:0;return jsxs(Fragment,{children:[t?.map(a=>jsxs(k,{className:cn(i$1!==void 0&&"min-w-0 shrink"),children:[i$1!==void 0?jsx("span",{className:"truncate",children:a?.label||""}):a?.label||"",jsx(l,{})]},a?.value||"")),l$1>0&&jsxs(k,{className:"shrink-0",children:["+",l$1]})]})}})})]}),jsxs(m,{container:q$1,children:[jsx(q,{status:H||u===void 0?"pending":u?.length===0&&!p?"empty":null}),jsxs(s,{children:[u?.map(e=>jsx(w,{value:{label:e.label,value:e.value},children:jsx("div",{className:"flex items-center gap-2 w-full min-w-0",children:jsx("span",{className:"truncate",children:e.label})})},e.value)),p&&jsx(w,{value:{label:n,value:n,tag:true},children:jsxs("div",{className:"flex items-center gap-1.5 w-full min-w-0",children:[!U&&jsx("span",{className:"text-text-secondary",children:"Create:"}),jsx("span",{className:"font-medium text-text-primary truncate",children:n})]})}),jsx(F,{...A})]})]})]})}export{j as a};//# sourceMappingURL=chunk-KYVYO45Y.js.map
2
- //# sourceMappingURL=chunk-KYVYO45Y.js.map
1
+ import {a,b as b$1,j as j$1,i,k,l,m,q,s,w,F}from'./chunk-GNQKITNA.js';import {b}from'./chunk-JH6RZ3QH.js';import {g}from'./chunk-ZNZVX4PT.js';import*as r from'react';import {cn}from'@xploreu/lib/cn';import {SearchIcon,XIcon}from'lucide-react';import {useControlledState}from'@xploreu/hooks/use-controlled-state';import {jsxs,jsx,Fragment}from'react/jsx-runtime';function j({multiple:z=true,inputPlaceholder:B="Search...",container:q$1,items:u,infiniteScroll:A,isPending:H,taggable:c=false,maxVisible:i$1,...m$1}){let[h,g$1]=useControlledState({value:m$1?.inputValue?.toString(),defaultValue:m$1?.defaultInputValue?.toString(),onChange:m$1?.onInputValueChange}),[b$2,x]=useControlledState({value:m$1?.value??[],defaultValue:m$1?.defaultValue??[],onChange:m$1?.onValueChange}),[v,I]=r.useState([]),d=r.useRef(new Set);r.useEffect(()=>{let e=new Set(b$2.map(t=>t.value));I(t=>{let l=t.filter(a=>e.has(a.value));return l.length===t.length?t:(d.current=new Set(l.map(a=>a.value)),l)});},[b$2]);let n=h?.toString().trim()??"",U=r.useMemo(()=>n?b$2.some(e=>e.value.toLowerCase()===n.toLowerCase()):false,[n,b$2]),p=r.useMemo(()=>!c||!n?false:!u?.some(e=>e.label.toLowerCase()===n.toLowerCase()),[c,n,u]),X=r.useMemo(()=>{let e=[...u??[],...v];if(p){let t={label:n,value:n,tag:true};return [...e,t]}return e},[u,v,p,n]);return jsxs(a,{...m$1,behavior:"chip-outside",multiple:true,items:c?X:u,isItemEqualToValue:(e,t)=>e.value===t.value,onValueChange:(e,t)=>{if(c){let l=e.filter(a=>a?.tag===true&&!d.current.has(a.value));if(l.length>0){for(let a of l)d.current.add(a.value);I(a=>[...a,...l]);}}x(z?e:[e[e.length-1]],t);},onInputValueChange:g$1,children:[jsxs("div",{className:"flex flex-col gap-2",children:[jsx(g,{render:jsx(b,{className:"h-9 text-body-regular-3 pl-9 pr-7",endContent:jsx(b$1,{nativeButton:false,render:jsx(XIcon,{className:"!size-5 !right-1.5 data-[hidden=true]:opacity-0 opacity-100 transition-opacity duration-300 cursor-pointer","data-hidden":!h,"data-slot":"combobox-clear-input",onClick:e=>{g$1("",{reason:"none",event:e.nativeEvent,cancel:()=>{},allowPropagation:()=>{},isCanceled:false,isPropagationAllowed:true,trigger:void 0});}})}),placeholder:B,startContent:jsx(SearchIcon,{className:"!size-4 !text-fg-tertiary-hover"}),wrapperClassName:"w-full"})}),jsx(j$1,{className:cn(i$1!==void 0&&"flex-nowrap overflow-hidden"),onMouseDown:e=>e.preventBaseUIHandler(),children:jsx(i,{children:e=>{let t=i$1!==void 0?e.slice(0,i$1):e,l$1=i$1!==void 0?e.length-i$1:0;return jsxs(Fragment,{children:[t?.map(a=>jsxs(k,{className:cn(i$1!==void 0&&"min-w-0 shrink"),children:[i$1!==void 0?jsx("span",{className:"truncate",children:a?.label||""}):a?.label||"",jsx(l,{})]},a?.value||"")),l$1>0&&jsxs(k,{className:"shrink-0",children:["+",l$1]})]})}})})]}),jsxs(m,{container:q$1,children:[jsx(q,{status:H||u===void 0?"pending":u?.length===0&&!p?"empty":null}),jsxs(s,{children:[u?.map(e=>jsx(w,{value:{label:e.label,value:e.value},children:jsx("div",{className:"flex items-center gap-2 w-full min-w-0",children:jsx("span",{className:"truncate",children:e.label})})},e.value)),p&&jsx(w,{value:{label:n,value:n,tag:true},children:jsxs("div",{className:"flex items-center gap-1.5 w-full min-w-0",children:[!U&&jsx("span",{className:"text-text-secondary",children:"Create:"}),jsx("span",{className:"font-medium text-text-primary truncate",children:n})]})}),jsx(F,{...A})]})]})]})}export{j as a};//# sourceMappingURL=chunk-LTSUNU7E.js.map
2
+ //# sourceMappingURL=chunk-LTSUNU7E.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/composites/combobox-chip-outside.tsx"],"names":["ComboboxChipOutside","multiple","inputPlaceholder","container","items","infiniteScroll","isPending","taggable","maxVisible","props","inputValue","setInputValue","useControlledState","value","setValue","createdItems","setCreatedItems","createdValuesRef","currentValues","v","prev","next","item","trimmedInput","isInputSelected","isCreatingItem","combinedItems","base","createItem","jsxs","Combobox","a","b","eventDetails","newTags","tag","jsx","ComboboxInput","Input","ComboboxTrigger","XIcon","event","SearchIcon","ComboboxChips","cn","ComboboxValue","visible","overflow","Fragment","ComboboxChip","ComboboxChipRemove","ComboboxPopup","ComboboxStatus","ComboboxList","ComboboxItem","ComboboxInfiniteScroll"],"mappings":"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","file":"chunk-KYVYO45Y.js","sourcesContent":["import * as React from \"react\"\r\n\r\nimport { cn } from \"@xploreu/lib/cn\"\r\nimport { ComboboxInput as ComboboxInputPrimitive } from \"../primitives/combobox\"\r\nimport { Input } from \"../ui\"\r\nimport {\r\n Combobox,\r\n ComboboxChip,\r\n ComboboxChipRemove,\r\n ComboboxChips,\r\n ComboboxInfiniteScroll,\r\n ComboboxItem,\r\n ComboboxList,\r\n ComboboxPortal,\r\n ComboboxPopup,\r\n ComboboxStatus,\r\n ComboboxTrigger,\r\n ComboboxValue,\r\n type ComboboxProps\r\n} from \"../ui/combobox\"\r\nimport { SearchIcon, XIcon } from \"lucide-react\"\r\nimport { useControlledState } from \"@xploreu/hooks/use-controlled-state\"\r\n\r\ntype ComboboxChipOutsideProps<Value> = Omit<ComboboxProps<Value, true>, \"multiple\"> & {\r\n multiple?: boolean\r\n inputPlaceholder?: string\r\n container?: React.ComponentProps<typeof ComboboxPortal>[\"container\"]\r\n items: ({ label: string; value: string }[]) | undefined\r\n infiniteScroll?: React.ComponentProps<typeof ComboboxInfiniteScroll>\r\n isPending?: boolean\r\n /**\r\n * When true, enables creatable / taggable mode.\r\n * If the typed value has no exact match in the current item list,\r\n * a \"Create \\\"…\\\"\" option is shown at the top of the dropdown.\r\n * Created items are appended to the value with `{ label, value, tag: true }`.\r\n */\r\n taggable?: boolean\r\n /**\r\n * Maximum number of chips to show before collapsing the rest into a \"+N\" chip.\r\n * When undefined, all chips are shown.\r\n */\r\n maxVisible?: number\r\n}\r\n\r\nfunction ComboboxChipOutside<Value extends { label: string; value: string; tag?: true }>({\r\n multiple = true,\r\n inputPlaceholder = \"Search...\",\r\n container,\r\n items,\r\n infiniteScroll,\r\n isPending,\r\n taggable = false,\r\n maxVisible,\r\n ...props\r\n}: ComboboxChipOutsideProps<Value>) {\r\n const [inputValue, setInputValue] = useControlledState({\r\n value: props?.inputValue?.toString(),\r\n defaultValue: props?.defaultInputValue?.toString(),\r\n onChange: props?.onInputValueChange,\r\n })\r\n\r\n const [value, setValue] = useControlledState({\r\n value: props?.value ?? [],\r\n defaultValue: props?.defaultValue ?? [],\r\n onChange: props?.onValueChange,\r\n })\r\n\r\n // Track items created via taggable mode\r\n // Sync with value to avoid stale tags when controlled value is reset from outside\r\n const [createdItems, setCreatedItems] = React.useState<Value[]>([])\r\n const createdValuesRef = React.useRef<Set<string>>(new Set())\r\n\r\n React.useEffect(() => {\r\n const currentValues = new Set(value.map((v) => v.value))\r\n setCreatedItems((prev) => {\r\n const next = prev.filter((item) => currentValues.has(item.value))\r\n if (next.length === prev.length) return prev\r\n createdValuesRef.current = new Set(next.map((v) => v.value))\r\n return next\r\n })\r\n }, [value])\r\n\r\n // Determine if the current input has no exact match in existing items\r\n const trimmedInput = inputValue?.toString().trim() ?? \"\"\r\n const isInputSelected = React.useMemo(() => {\r\n if (!trimmedInput) return false\r\n return value.some(\r\n (item) => item.value.toLowerCase() === trimmedInput.toLowerCase()\r\n )\r\n }, [trimmedInput, value])\r\n // true = show the taggable item in dropdown (either as \"Create:\" or as checked item)\r\n const isCreatingItem = React.useMemo(() => {\r\n if (!taggable || !trimmedInput) return false\r\n return !items?.some(\r\n (item) => item.label.toLowerCase() === trimmedInput.toLowerCase()\r\n )\r\n }, [taggable, trimmedInput, items])\r\n\r\n // Merge server items with locally created tags + the \"Create\" placeholder\r\n const combinedItems = React.useMemo(() => {\r\n const base: Value[] = [\r\n ...items ?? [],\r\n ...createdItems,\r\n ]\r\n\r\n if (isCreatingItem) {\r\n const createItem = {\r\n label: trimmedInput,\r\n value: trimmedInput,\r\n tag: true,\r\n }\r\n return [...base, createItem]\r\n }\r\n\r\n return base\r\n }, [items, createdItems, isCreatingItem, trimmedInput])\r\n\r\n const handleValueChange: ComboboxProps<Value, true>[\"onValueChange\"] = (value, eventDetails) => {\r\n // Capture newly created taggable items internally\r\n if (taggable) {\r\n const newTags = value.filter(\r\n (v) => v?.tag === true\r\n && !createdValuesRef.current.has(v.value)\r\n )\r\n if (newTags.length > 0) {\r\n for (const tag of newTags) {\r\n createdValuesRef.current.add(tag.value)\r\n }\r\n setCreatedItems((prev) => [...prev, ...newTags])\r\n }\r\n }\r\n\r\n // if multiple is false, we need to replace the value with the new value instead of adding to it\r\n if (!multiple) {\r\n setValue([value[value.length - 1]], eventDetails)\r\n } else {\r\n setValue(value, eventDetails)\r\n }\r\n }\r\n\r\n return (\r\n <Combobox\r\n {...props}\r\n behavior=\"chip-outside\"\r\n multiple\r\n items={taggable ? combinedItems : items}\r\n isItemEqualToValue={(a, b) => a.value === b.value}\r\n onValueChange={handleValueChange}\r\n onInputValueChange={setInputValue}\r\n >\r\n <div className=\"flex flex-col gap-2\">\r\n <ComboboxInputPrimitive\r\n render={\r\n <Input\r\n className=\"h-9 text-body-regular-3 pl-9 pr-7\"\r\n endContent={\r\n <ComboboxTrigger\r\n nativeButton={false}\r\n render={(\r\n <XIcon\r\n className=\"!size-5 !right-1.5 data-[hidden=true]:opacity-0 opacity-100 transition-opacity duration-300 cursor-pointer\"\r\n data-hidden={!inputValue}\r\n data-slot=\"combobox-clear-input\"\r\n onClick={(event) => {\r\n setInputValue(\"\", {\r\n reason: \"none\",\r\n event: event.nativeEvent,\r\n cancel: () => { },\r\n allowPropagation: () => { },\r\n isCanceled: false,\r\n isPropagationAllowed: true,\r\n trigger: undefined,\r\n })\r\n }}\r\n />\r\n )}\r\n />\r\n }\r\n placeholder={inputPlaceholder}\r\n startContent={<SearchIcon className=\"!size-4 !text-fg-tertiary-hover\" />}\r\n wrapperClassName=\"w-full\"\r\n />\r\n }\r\n />\r\n <ComboboxChips\r\n className={cn(maxVisible !== undefined && \"flex-nowrap overflow-hidden\")}\r\n onMouseDown={(e) => e.preventBaseUIHandler()}\r\n >\r\n <ComboboxValue>\r\n {(value: Value[]) => {\r\n const visible = maxVisible !== undefined ? value.slice(0, maxVisible) : value\r\n const overflow = maxVisible !== undefined ? value.length - maxVisible : 0\r\n return (\r\n <>\r\n {visible?.map((item) => (\r\n <ComboboxChip\r\n key={item?.value || \"\"}\r\n className={cn(maxVisible !== undefined && \"min-w-0 shrink\")}\r\n >\r\n {maxVisible !== undefined\r\n ? <span className=\"truncate\">{item?.label || \"\"}</span>\r\n : (item?.label || \"\")\r\n }\r\n <ComboboxChipRemove />\r\n </ComboboxChip>\r\n ))}\r\n {overflow > 0 && (\r\n <ComboboxChip className=\"shrink-0\">\r\n +{overflow}\r\n </ComboboxChip>\r\n )}\r\n </>\r\n )\r\n }}\r\n </ComboboxValue>\r\n </ComboboxChips>\r\n </div>\r\n <ComboboxPopup container={container}>\r\n <ComboboxStatus\r\n status={\r\n isPending || items === undefined\r\n ? \"pending\"\r\n : items?.length === 0 && !isCreatingItem\r\n ? \"empty\"\r\n : null\r\n }\r\n />\r\n <ComboboxList>\r\n {items?.map((item) => (\r\n <ComboboxItem\r\n key={item.value}\r\n value={{ label: item.label, value: item.value }}\r\n >\r\n <div className=\"flex items-center gap-2 w-full min-w-0\">\r\n <span className=\"truncate\">\r\n {item.label}\r\n </span>\r\n </div>\r\n </ComboboxItem>\r\n ))}\r\n {isCreatingItem && (\r\n <ComboboxItem\r\n value={{ label: trimmedInput, value: trimmedInput, tag: true }}\r\n >\r\n <div className=\"flex items-center gap-1.5 w-full min-w-0\">\r\n {!isInputSelected && (\r\n <span className=\"text-text-secondary\">Create:</span>\r\n )}\r\n <span className=\"font-medium text-text-primary truncate\">\r\n {trimmedInput}\r\n </span>\r\n </div>\r\n </ComboboxItem>\r\n )}\r\n <ComboboxInfiniteScroll {...infiniteScroll} />\r\n </ComboboxList>\r\n </ComboboxPopup>\r\n </Combobox>\r\n )\r\n}\r\n\r\nexport { ComboboxChipOutside }"]}
1
+ {"version":3,"sources":["../src/composites/combobox-chip-outside.tsx"],"names":["ComboboxChipOutside","multiple","inputPlaceholder","container","items","infiniteScroll","isPending","taggable","maxVisible","props","inputValue","setInputValue","useControlledState","value","setValue","createdItems","setCreatedItems","createdValuesRef","currentValues","v","prev","next","item","trimmedInput","isInputSelected","isCreatingItem","combinedItems","base","createItem","jsxs","Combobox","a","b","eventDetails","newTags","tag","jsx","ComboboxInput","Input","ComboboxTrigger","XIcon","event","SearchIcon","ComboboxChips","cn","ComboboxValue","visible","overflow","Fragment","ComboboxChip","ComboboxChipRemove","ComboboxPopup","ComboboxStatus","ComboboxList","ComboboxItem","ComboboxInfiniteScroll"],"mappings":"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","file":"chunk-LTSUNU7E.js","sourcesContent":["import * as React from \"react\"\r\n\r\nimport { cn } from \"@xploreu/lib/cn\"\r\nimport { ComboboxInput as ComboboxInputPrimitive } from \"../primitives/combobox\"\r\nimport { Input } from \"../ui\"\r\nimport {\r\n Combobox,\r\n ComboboxChip,\r\n ComboboxChipRemove,\r\n ComboboxChips,\r\n ComboboxInfiniteScroll,\r\n ComboboxItem,\r\n ComboboxList,\r\n ComboboxPortal,\r\n ComboboxPopup,\r\n ComboboxStatus,\r\n ComboboxTrigger,\r\n ComboboxValue,\r\n type ComboboxProps\r\n} from \"../ui/combobox\"\r\nimport { SearchIcon, XIcon } from \"lucide-react\"\r\nimport { useControlledState } from \"@xploreu/hooks/use-controlled-state\"\r\n\r\ntype ComboboxChipOutsideProps<Value> = Omit<ComboboxProps<Value, true>, \"multiple\"> & {\r\n multiple?: boolean\r\n inputPlaceholder?: string\r\n container?: React.ComponentProps<typeof ComboboxPortal>[\"container\"]\r\n items: ({ label: string; value: string }[]) | undefined\r\n infiniteScroll?: React.ComponentProps<typeof ComboboxInfiniteScroll>\r\n isPending?: boolean\r\n /**\r\n * When true, enables creatable / taggable mode.\r\n * If the typed value has no exact match in the current item list,\r\n * a \"Create \\\"…\\\"\" option is shown at the top of the dropdown.\r\n * Created items are appended to the value with `{ label, value, tag: true }`.\r\n */\r\n taggable?: boolean\r\n /**\r\n * Maximum number of chips to show before collapsing the rest into a \"+N\" chip.\r\n * When undefined, all chips are shown.\r\n */\r\n maxVisible?: number\r\n}\r\n\r\nfunction ComboboxChipOutside<Value extends { label: string; value: string; tag?: true }>({\r\n multiple = true,\r\n inputPlaceholder = \"Search...\",\r\n container,\r\n items,\r\n infiniteScroll,\r\n isPending,\r\n taggable = false,\r\n maxVisible,\r\n ...props\r\n}: ComboboxChipOutsideProps<Value>) {\r\n const [inputValue, setInputValue] = useControlledState({\r\n value: props?.inputValue?.toString(),\r\n defaultValue: props?.defaultInputValue?.toString(),\r\n onChange: props?.onInputValueChange,\r\n })\r\n\r\n const [value, setValue] = useControlledState({\r\n value: props?.value ?? [],\r\n defaultValue: props?.defaultValue ?? [],\r\n onChange: props?.onValueChange,\r\n })\r\n\r\n // Track items created via taggable mode\r\n // Sync with value to avoid stale tags when controlled value is reset from outside\r\n const [createdItems, setCreatedItems] = React.useState<Value[]>([])\r\n const createdValuesRef = React.useRef<Set<string>>(new Set())\r\n\r\n React.useEffect(() => {\r\n const currentValues = new Set(value.map((v) => v.value))\r\n setCreatedItems((prev) => {\r\n const next = prev.filter((item) => currentValues.has(item.value))\r\n if (next.length === prev.length) return prev\r\n createdValuesRef.current = new Set(next.map((v) => v.value))\r\n return next\r\n })\r\n }, [value])\r\n\r\n // Determine if the current input has no exact match in existing items\r\n const trimmedInput = inputValue?.toString().trim() ?? \"\"\r\n const isInputSelected = React.useMemo(() => {\r\n if (!trimmedInput) return false\r\n return value.some(\r\n (item) => item.value.toLowerCase() === trimmedInput.toLowerCase()\r\n )\r\n }, [trimmedInput, value])\r\n // true = show the taggable item in dropdown (either as \"Create:\" or as checked item)\r\n const isCreatingItem = React.useMemo(() => {\r\n if (!taggable || !trimmedInput) return false\r\n return !items?.some(\r\n (item) => item.label.toLowerCase() === trimmedInput.toLowerCase()\r\n )\r\n }, [taggable, trimmedInput, items])\r\n\r\n // Merge server items with locally created tags + the \"Create\" placeholder\r\n const combinedItems = React.useMemo(() => {\r\n const base: Value[] = [\r\n ...items ?? [],\r\n ...createdItems,\r\n ]\r\n\r\n if (isCreatingItem) {\r\n const createItem = {\r\n label: trimmedInput,\r\n value: trimmedInput,\r\n tag: true,\r\n }\r\n return [...base, createItem]\r\n }\r\n\r\n return base\r\n }, [items, createdItems, isCreatingItem, trimmedInput])\r\n\r\n const handleValueChange: ComboboxProps<Value, true>[\"onValueChange\"] = (value, eventDetails) => {\r\n // Capture newly created taggable items internally\r\n if (taggable) {\r\n const newTags = value.filter(\r\n (v) => v?.tag === true\r\n && !createdValuesRef.current.has(v.value)\r\n )\r\n if (newTags.length > 0) {\r\n for (const tag of newTags) {\r\n createdValuesRef.current.add(tag.value)\r\n }\r\n setCreatedItems((prev) => [...prev, ...newTags])\r\n }\r\n }\r\n\r\n // if multiple is false, we need to replace the value with the new value instead of adding to it\r\n if (!multiple) {\r\n setValue([value[value.length - 1]], eventDetails)\r\n } else {\r\n setValue(value, eventDetails)\r\n }\r\n }\r\n\r\n return (\r\n <Combobox\r\n {...props}\r\n behavior=\"chip-outside\"\r\n multiple\r\n items={taggable ? combinedItems : items}\r\n isItemEqualToValue={(a, b) => a.value === b.value}\r\n onValueChange={handleValueChange}\r\n onInputValueChange={setInputValue}\r\n >\r\n <div className=\"flex flex-col gap-2\">\r\n <ComboboxInputPrimitive\r\n render={\r\n <Input\r\n className=\"h-9 text-body-regular-3 pl-9 pr-7\"\r\n endContent={\r\n <ComboboxTrigger\r\n nativeButton={false}\r\n render={(\r\n <XIcon\r\n className=\"!size-5 !right-1.5 data-[hidden=true]:opacity-0 opacity-100 transition-opacity duration-300 cursor-pointer\"\r\n data-hidden={!inputValue}\r\n data-slot=\"combobox-clear-input\"\r\n onClick={(event) => {\r\n setInputValue(\"\", {\r\n reason: \"none\",\r\n event: event.nativeEvent,\r\n cancel: () => { },\r\n allowPropagation: () => { },\r\n isCanceled: false,\r\n isPropagationAllowed: true,\r\n trigger: undefined,\r\n })\r\n }}\r\n />\r\n )}\r\n />\r\n }\r\n placeholder={inputPlaceholder}\r\n startContent={<SearchIcon className=\"!size-4 !text-fg-tertiary-hover\" />}\r\n wrapperClassName=\"w-full\"\r\n />\r\n }\r\n />\r\n <ComboboxChips\r\n className={cn(maxVisible !== undefined && \"flex-nowrap overflow-hidden\")}\r\n onMouseDown={(e) => e.preventBaseUIHandler()}\r\n >\r\n <ComboboxValue>\r\n {(value: Value[]) => {\r\n const visible = maxVisible !== undefined ? value.slice(0, maxVisible) : value\r\n const overflow = maxVisible !== undefined ? value.length - maxVisible : 0\r\n return (\r\n <>\r\n {visible?.map((item) => (\r\n <ComboboxChip\r\n key={item?.value || \"\"}\r\n className={cn(maxVisible !== undefined && \"min-w-0 shrink\")}\r\n >\r\n {maxVisible !== undefined\r\n ? <span className=\"truncate\">{item?.label || \"\"}</span>\r\n : (item?.label || \"\")\r\n }\r\n <ComboboxChipRemove />\r\n </ComboboxChip>\r\n ))}\r\n {overflow > 0 && (\r\n <ComboboxChip className=\"shrink-0\">\r\n +{overflow}\r\n </ComboboxChip>\r\n )}\r\n </>\r\n )\r\n }}\r\n </ComboboxValue>\r\n </ComboboxChips>\r\n </div>\r\n <ComboboxPopup container={container}>\r\n <ComboboxStatus\r\n status={\r\n isPending || items === undefined\r\n ? \"pending\"\r\n : items?.length === 0 && !isCreatingItem\r\n ? \"empty\"\r\n : null\r\n }\r\n />\r\n <ComboboxList>\r\n {items?.map((item) => (\r\n <ComboboxItem\r\n key={item.value}\r\n value={{ label: item.label, value: item.value }}\r\n >\r\n <div className=\"flex items-center gap-2 w-full min-w-0\">\r\n <span className=\"truncate\">\r\n {item.label}\r\n </span>\r\n </div>\r\n </ComboboxItem>\r\n ))}\r\n {isCreatingItem && (\r\n <ComboboxItem\r\n value={{ label: trimmedInput, value: trimmedInput, tag: true }}\r\n >\r\n <div className=\"flex items-center gap-1.5 w-full min-w-0\">\r\n {!isInputSelected && (\r\n <span className=\"text-text-secondary\">Create:</span>\r\n )}\r\n <span className=\"font-medium text-text-primary truncate\">\r\n {trimmedInput}\r\n </span>\r\n </div>\r\n </ComboboxItem>\r\n )}\r\n <ComboboxInfiniteScroll {...infiniteScroll} />\r\n </ComboboxList>\r\n </ComboboxPopup>\r\n </Combobox>\r\n )\r\n}\r\n\r\nexport { ComboboxChipOutside }"]}
@@ -1,2 +1,2 @@
1
- import {a}from'./chunk-6AKSAK5F.js';import {b,c,g,d,f,h,i,j as j$1,k as k$1,e}from'./chunk-5YDJTHDG.js';import'react';import {XIcon}from'lucide-react';import {cn}from'@xploreu/lib/cn';import {jsx,jsxs}from'react/jsx-runtime';function k(o){return jsx(b,{...o})}function A(o){return jsx(c,{...o})}function H(o){return jsx(g,{...o})}function _({className:o,...i}){return jsx(e,{className:cn("fixed inset-0 z-50 bg-black/50 backdrop-blur-sm",o),...i})}function B({className:o,children:i,showCloseButton:e=true,closeClassName:t,...l}){return jsxs(d,{children:[jsx(_,{}),jsxs(f,{className:cn("fixed left-[50%] top-[50%] z-50 grid w-[calc(100%-2rem)] max-w-lg translate-x-[-50%] translate-y-[-50%] bg-bg-primary shadow-xp-lg rounded-xl overflow-hidden",o),...l,children:[i,e&&jsxs(g,{className:cn("data-[state=open]:bg-bg-primary data-[state=open]:text-text-primary absolute top-3 right-4 rounded-xs transition-colors hover:text-text-error-primary-hover disabled:pointer-events-none [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",t),children:[jsx(XIcon,{}),jsx("span",{className:"sr-only",children:"Close"})]})]})]})}function F({className:o,...i}){return jsx(h,{className:cn("relative px-4 py-3 flex flex-col bg-bg-primary border-b border-border-tertiary bg-radial-[100%_200%_at_0%_0%] from-modal-dialog-stop-0 to-bg-primary has-[[data-slot=dialog-icon]]:pl-16 has-[[data-slot=dialog-avatar]]:pl-16",o),...i})}function z({className:o,...i}){return jsx("div",{"data-slot":"dialog-content",className:cn("px-4 py-4 max-h-[60vh] overflow-y-auto",o),...i})}function R({className:o,...i$1}){return jsx(i,{className:cn("flex gap-2 items-center justify-end bg-bg-primary border-t border-border-tertiary px-4 py-3 shadow-[0px_-1px_24px_0px_var(--color-shadow-xs)] peer-[[data-slot=dialog-content]]:border-0",o),...i$1})}function j({className:o,...i}){return jsx(j$1,{className:cn("text-label-bold-2 text-text-primary",o),...i})}function I({className:o,...i}){return jsx(k$1,{className:cn("mt-0.5 text-body-regular-3 text-text-secondary",o),...i})}function L({className:o,...i}){return jsx("div",{"data-slot":"dialog-icon",className:cn("absolute top-[13px] left-4 flex items-center justify-center rounded-lg bg-bg-primary p-2.5 [&_svg]:size-4 bg-bg-brand-solid text-fg-white shadow-[0px_1px_2px_-1px_var(--color-shadow-lg-01),0px_1px_3px_0px_var(--color-shadow-md-01),0px_0px_0px_4px_var(--color-focus-ring-secondary)]",o),...i})}function M({src:o,imageSrc:i,className:e,avatarClassName:t,imageAlt:l,variant:u="profile",...f}){return jsx("div",{"data-slot":"dialog-avatar",className:cn("absolute top-[13px] left-4 flex items-center justify-center size-9 rounded-lg overflow-hidden bg-bg-primary shadow-[0px_1px_2px_-1px_var(--color-shadow-lg-01),0px_1px_3px_0px_var(--color-shadow-md-01),0px_0px_0px_4px_var(--color-focus-ring-secondary)]",e),children:jsx(a,{imageSrc:o??i,imageAlt:l,variant:u,bordered:false,badged:false,className:cn("size-full shrink-0",t),...f})})}export{k as a,A as b,H as c,B as d,F as e,z as f,R as g,j as h,I as i,L as j,M as k};//# sourceMappingURL=chunk-CPRMLK2G.js.map
2
- //# sourceMappingURL=chunk-CPRMLK2G.js.map
1
+ import {a}from'./chunk-6AKSAK5F.js';import {b,c,g,d,f,h,i,j as j$1,k as k$1,e}from'./chunk-L2QE2YOM.js';import'react';import {XIcon}from'lucide-react';import {cn}from'@xploreu/lib/cn';import {jsx,jsxs}from'react/jsx-runtime';function k(o){return jsx(b,{...o})}function A(o){return jsx(c,{...o})}function H(o){return jsx(g,{...o})}function _({className:o,...i}){return jsx(e,{className:cn("fixed inset-0 z-50 bg-black/50 backdrop-blur-sm",o),...i})}function B({className:o,children:i,showCloseButton:e=true,closeClassName:t,...l}){return jsxs(d,{children:[jsx(_,{}),jsxs(f,{className:cn("fixed left-[50%] top-[50%] z-50 grid w-[calc(100%-2rem)] max-w-lg translate-x-[-50%] translate-y-[-50%] bg-bg-primary shadow-xp-lg rounded-xl overflow-hidden",o),...l,children:[i,e&&jsxs(g,{className:cn("data-[state=open]:bg-bg-primary data-[state=open]:text-text-primary absolute top-3 right-4 rounded-xs transition-colors hover:text-text-error-primary-hover disabled:pointer-events-none [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",t),children:[jsx(XIcon,{}),jsx("span",{className:"sr-only",children:"Close"})]})]})]})}function F({className:o,...i}){return jsx(h,{className:cn("relative px-4 py-3 flex flex-col bg-bg-primary border-b border-border-tertiary bg-radial-[100%_200%_at_0%_0%] from-modal-dialog-stop-0 to-bg-primary has-[[data-slot=dialog-icon]]:pl-16 has-[[data-slot=dialog-avatar]]:pl-16",o),...i})}function z({className:o,...i}){return jsx("div",{"data-slot":"dialog-content",className:cn("px-4 py-4 max-h-[60vh] overflow-y-auto",o),...i})}function R({className:o,...i$1}){return jsx(i,{className:cn("flex gap-2 items-center justify-end bg-bg-primary border-t border-border-tertiary px-4 py-3 shadow-[0px_-1px_24px_0px_var(--color-shadow-xs)] peer-[[data-slot=dialog-content]]:border-0",o),...i$1})}function j({className:o,...i}){return jsx(j$1,{className:cn("text-label-bold-2 text-text-primary",o),...i})}function I({className:o,...i}){return jsx(k$1,{className:cn("mt-0.5 text-body-regular-3 text-text-secondary",o),...i})}function L({className:o,...i}){return jsx("div",{"data-slot":"dialog-icon",className:cn("absolute top-[13px] left-4 flex items-center justify-center rounded-lg bg-bg-primary p-2.5 [&_svg]:size-4 bg-bg-brand-solid text-fg-white shadow-[0px_1px_2px_-1px_var(--color-shadow-lg-01),0px_1px_3px_0px_var(--color-shadow-md-01),0px_0px_0px_4px_var(--color-focus-ring-secondary)]",o),...i})}function M({src:o,imageSrc:i,className:e,avatarClassName:t,imageAlt:l,variant:u="profile",...f}){return jsx("div",{"data-slot":"dialog-avatar",className:cn("absolute top-[13px] left-4 flex items-center justify-center size-9 rounded-lg overflow-hidden bg-bg-primary shadow-[0px_1px_2px_-1px_var(--color-shadow-lg-01),0px_1px_3px_0px_var(--color-shadow-md-01),0px_0px_0px_4px_var(--color-focus-ring-secondary)]",e),children:jsx(a,{imageSrc:o??i,imageAlt:l,variant:u,bordered:false,badged:false,className:cn("size-full shrink-0",t),...f})})}export{k as a,A as b,H as c,B as d,F as e,z as f,R as g,j as h,I as i,L as j,M as k};//# sourceMappingURL=chunk-NWX5WD7D.js.map
2
+ //# sourceMappingURL=chunk-NWX5WD7D.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/ui/dialog.tsx"],"names":["Dialog","props","jsx","DialogTrigger","DialogClose","DialogBackdrop","className","cn","DialogPopup","children","showCloseButton","closeClassName","jsxs","DialogPortal","XIcon","DialogHeader","DialogContent","DialogFooter","DialogTitle","DialogDescription","DialogIcon","DialogAvatar","src","imageSrc","avatarClassName","imageAlt","variant","ProfileAvatar"],"mappings":"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","file":"chunk-CPRMLK2G.js","sourcesContent":["import * as React from 'react';\r\nimport { XIcon } from 'lucide-react';\r\n\r\nimport {\r\n Dialog as DialogPrimitive,\r\n DialogPopup as DialogPopupPrimitive,\r\n DialogDescription as DialogDescriptionPrimitive,\r\n DialogFooter as DialogFooterPrimitive,\r\n DialogHeader as DialogHeaderPrimitive,\r\n DialogTitle as DialogTitlePrimitive,\r\n DialogTrigger as DialogTriggerPrimitive,\r\n DialogPortal as DialogPortalPrimitive,\r\n DialogBackdrop as DialogBackdropPrimitive,\r\n DialogClose as DialogClosePrimitive,\r\n type DialogProps as DialogPrimitiveProps,\r\n type DialogPopupProps as DialogPopupPrimitiveProps,\r\n type DialogDescriptionProps as DialogDescriptionPrimitiveProps,\r\n type DialogFooterProps as DialogFooterPrimitiveProps,\r\n type DialogHeaderProps as DialogHeaderPrimitiveProps,\r\n type DialogTitleProps as DialogTitlePrimitiveProps,\r\n type DialogTriggerProps as DialogTriggerPrimitiveProps,\r\n type DialogBackdropProps as DialogBackdropPrimitiveProps,\r\n type DialogCloseProps as DialogClosePrimitiveProps,\r\n} from '../primitives/dialog';\r\nimport { ProfileAvatar, type ProfileAvatarVariant } from '../composites/profile-avatar';\r\nimport { cn } from '@xploreu/lib/cn';\r\n\r\ntype DialogProps = DialogPrimitiveProps;\r\n\r\nfunction Dialog(props: DialogProps) {\r\n return <DialogPrimitive {...props} />;\r\n}\r\n\r\ntype DialogTriggerProps = DialogTriggerPrimitiveProps;\r\n\r\nfunction DialogTrigger(props: DialogTriggerProps) {\r\n return <DialogTriggerPrimitive {...props} />;\r\n}\r\n\r\ntype DialogCloseProps = DialogClosePrimitiveProps;\r\n\r\nfunction DialogClose(props: DialogCloseProps) {\r\n return <DialogClosePrimitive {...props} />;\r\n}\r\n\r\ntype DialogBackdropProps = DialogBackdropPrimitiveProps;\r\n\r\nfunction DialogBackdrop({ className, ...props }: DialogBackdropProps) {\r\n return (\r\n <DialogBackdropPrimitive\r\n className={cn('fixed inset-0 z-50 bg-black/50 backdrop-blur-sm', className)}\r\n {...props}\r\n />\r\n );\r\n}\r\n\r\ntype DialogPopupProps = DialogPopupPrimitiveProps & {\r\n showCloseButton?: boolean;\r\n closeClassName?: string;\r\n};\r\n\r\nfunction DialogPopup({\r\n className,\r\n children,\r\n showCloseButton = true,\r\n closeClassName,\r\n ...props\r\n}: DialogPopupProps) {\r\n return (\r\n <DialogPortalPrimitive>\r\n <DialogBackdrop />\r\n <DialogPopupPrimitive\r\n className={cn(\r\n \"fixed left-[50%] top-[50%] z-50 grid w-[calc(100%-2rem)] max-w-lg translate-x-[-50%] translate-y-[-50%] bg-bg-primary shadow-xp-lg rounded-xl overflow-hidden\",\r\n className,\r\n )}\r\n {...props}\r\n >\r\n {children}\r\n {showCloseButton && (\r\n <DialogClosePrimitive\r\n className={cn(\r\n \"data-[state=open]:bg-bg-primary data-[state=open]:text-text-primary absolute top-3 right-4 rounded-xs transition-colors hover:text-text-error-primary-hover disabled:pointer-events-none [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4\",\r\n closeClassName\r\n )}\r\n >\r\n <XIcon />\r\n <span className=\"sr-only\">Close</span>\r\n </DialogClosePrimitive>\r\n )}\r\n </DialogPopupPrimitive>\r\n </DialogPortalPrimitive>\r\n );\r\n}\r\n\r\ntype DialogHeaderProps = DialogHeaderPrimitiveProps;\r\n\r\nfunction DialogHeader({ className, ...props }: DialogHeaderProps) {\r\n return (\r\n <DialogHeaderPrimitive\r\n className={cn(\"relative px-4 py-3 flex flex-col bg-bg-primary border-b border-border-tertiary bg-radial-[100%_200%_at_0%_0%] from-modal-dialog-stop-0 to-bg-primary has-[[data-slot=dialog-icon]]:pl-16 has-[[data-slot=dialog-avatar]]:pl-16\", className)}\r\n {...props}\r\n />\r\n );\r\n}\r\n\r\ntype DialogContentProps = React.HTMLAttributes<HTMLDivElement>;\r\n\r\nfunction DialogContent({ className, ...props }: DialogContentProps) {\r\n return (\r\n <div\r\n data-slot=\"dialog-content\"\r\n className={cn(\"px-4 py-4 max-h-[60vh] overflow-y-auto\", className)}\r\n {...props}\r\n />\r\n );\r\n}\r\n\r\ntype DialogFooterProps = DialogFooterPrimitiveProps;\r\n\r\nfunction DialogFooter({ className, ...props }: DialogFooterProps) {\r\n return (\r\n <DialogFooterPrimitive\r\n className={cn(\r\n \"flex gap-2 items-center justify-end bg-bg-primary border-t border-border-tertiary px-4 py-3 shadow-[0px_-1px_24px_0px_var(--color-shadow-xs)] peer-[[data-slot=dialog-content]]:border-0\",\r\n className\r\n )}\r\n {...props}\r\n />\r\n );\r\n}\r\n\r\ntype DialogTitleProps = DialogTitlePrimitiveProps;\r\n\r\nfunction DialogTitle({ className, ...props }: DialogTitleProps) {\r\n return (\r\n <DialogTitlePrimitive\r\n className={cn(\"text-label-bold-2 text-text-primary\", className)}\r\n {...props}\r\n />\r\n );\r\n}\r\n\r\ntype DialogDescriptionProps = DialogDescriptionPrimitiveProps;\r\n\r\nfunction DialogDescription({ className, ...props }: DialogDescriptionProps) {\r\n return (\r\n <DialogDescriptionPrimitive\r\n className={cn(\"mt-0.5 text-body-regular-3 text-text-secondary\", className)}\r\n {...props}\r\n />\r\n );\r\n}\r\n\r\nfunction DialogIcon({ className, ...props }: React.ComponentProps<\"div\">) {\r\n return (\r\n <div\r\n data-slot=\"dialog-icon\"\r\n className={cn(\"absolute top-[13px] left-4 flex items-center justify-center rounded-lg bg-bg-primary p-2.5 [&_svg]:size-4 bg-bg-brand-solid text-fg-white shadow-[0px_1px_2px_-1px_var(--color-shadow-lg-01),0px_1px_3px_0px_var(--color-shadow-md-01),0px_0px_0px_4px_var(--color-focus-ring-secondary)]\", className)}\r\n {...props}\r\n />\r\n );\r\n}\r\n\r\ntype DialogAvatarProps = Omit<React.ComponentProps<typeof ProfileAvatar>, \"size\" | \"bordered\" | \"badged\"> & {\r\n src?: string;\r\n imageAlt?: string;\r\n variant?: ProfileAvatarVariant;\r\n};\r\n\r\nfunction DialogAvatar({\r\n src,\r\n imageSrc,\r\n className,\r\n avatarClassName,\r\n imageAlt,\r\n variant = \"profile\",\r\n ...props\r\n}: DialogAvatarProps) {\r\n return (\r\n <div\r\n data-slot=\"dialog-avatar\"\r\n className={cn(\r\n \"absolute top-[13px] left-4 flex items-center justify-center size-9 rounded-lg overflow-hidden bg-bg-primary shadow-[0px_1px_2px_-1px_var(--color-shadow-lg-01),0px_1px_3px_0px_var(--color-shadow-md-01),0px_0px_0px_4px_var(--color-focus-ring-secondary)]\",\r\n className,\r\n )}\r\n >\r\n <ProfileAvatar\r\n imageSrc={src ?? imageSrc}\r\n imageAlt={imageAlt}\r\n variant={variant}\r\n bordered={false}\r\n badged={false}\r\n className={cn(\"size-full shrink-0\", avatarClassName)}\r\n {...props}\r\n />\r\n </div>\r\n );\r\n}\r\n\r\nexport {\r\n Dialog,\r\n DialogTrigger,\r\n DialogClose,\r\n DialogPopup,\r\n DialogHeader,\r\n DialogContent,\r\n DialogFooter,\r\n DialogTitle,\r\n DialogDescription,\r\n DialogIcon,\r\n DialogAvatar,\r\n type DialogProps,\r\n type DialogTriggerProps,\r\n type DialogCloseProps,\r\n type DialogPopupProps,\r\n type DialogHeaderProps,\r\n type DialogContentProps,\r\n type DialogFooterProps,\r\n type DialogTitleProps,\r\n type DialogDescriptionProps,\r\n type DialogAvatarProps,\r\n};"]}
1
+ {"version":3,"sources":["../src/ui/dialog.tsx"],"names":["Dialog","props","jsx","DialogTrigger","DialogClose","DialogBackdrop","className","cn","DialogPopup","children","showCloseButton","closeClassName","jsxs","DialogPortal","XIcon","DialogHeader","DialogContent","DialogFooter","DialogTitle","DialogDescription","DialogIcon","DialogAvatar","src","imageSrc","avatarClassName","imageAlt","variant","ProfileAvatar"],"mappings":"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","file":"chunk-NWX5WD7D.js","sourcesContent":["import * as React from 'react';\r\nimport { XIcon } from 'lucide-react';\r\n\r\nimport {\r\n Dialog as DialogPrimitive,\r\n DialogPopup as DialogPopupPrimitive,\r\n DialogDescription as DialogDescriptionPrimitive,\r\n DialogFooter as DialogFooterPrimitive,\r\n DialogHeader as DialogHeaderPrimitive,\r\n DialogTitle as DialogTitlePrimitive,\r\n DialogTrigger as DialogTriggerPrimitive,\r\n DialogPortal as DialogPortalPrimitive,\r\n DialogBackdrop as DialogBackdropPrimitive,\r\n DialogClose as DialogClosePrimitive,\r\n type DialogProps as DialogPrimitiveProps,\r\n type DialogPopupProps as DialogPopupPrimitiveProps,\r\n type DialogDescriptionProps as DialogDescriptionPrimitiveProps,\r\n type DialogFooterProps as DialogFooterPrimitiveProps,\r\n type DialogHeaderProps as DialogHeaderPrimitiveProps,\r\n type DialogTitleProps as DialogTitlePrimitiveProps,\r\n type DialogTriggerProps as DialogTriggerPrimitiveProps,\r\n type DialogBackdropProps as DialogBackdropPrimitiveProps,\r\n type DialogCloseProps as DialogClosePrimitiveProps,\r\n} from '../primitives/dialog';\r\nimport { ProfileAvatar, type ProfileAvatarVariant } from '../composites/profile-avatar';\r\nimport { cn } from '@xploreu/lib/cn';\r\n\r\ntype DialogProps = DialogPrimitiveProps;\r\n\r\nfunction Dialog(props: DialogProps) {\r\n return <DialogPrimitive {...props} />;\r\n}\r\n\r\ntype DialogTriggerProps = DialogTriggerPrimitiveProps;\r\n\r\nfunction DialogTrigger(props: DialogTriggerProps) {\r\n return <DialogTriggerPrimitive {...props} />;\r\n}\r\n\r\ntype DialogCloseProps = DialogClosePrimitiveProps;\r\n\r\nfunction DialogClose(props: DialogCloseProps) {\r\n return <DialogClosePrimitive {...props} />;\r\n}\r\n\r\ntype DialogBackdropProps = DialogBackdropPrimitiveProps;\r\n\r\nfunction DialogBackdrop({ className, ...props }: DialogBackdropProps) {\r\n return (\r\n <DialogBackdropPrimitive\r\n className={cn('fixed inset-0 z-50 bg-black/50 backdrop-blur-sm', className)}\r\n {...props}\r\n />\r\n );\r\n}\r\n\r\ntype DialogPopupProps = DialogPopupPrimitiveProps & {\r\n showCloseButton?: boolean;\r\n closeClassName?: string;\r\n};\r\n\r\nfunction DialogPopup({\r\n className,\r\n children,\r\n showCloseButton = true,\r\n closeClassName,\r\n ...props\r\n}: DialogPopupProps) {\r\n return (\r\n <DialogPortalPrimitive>\r\n <DialogBackdrop />\r\n <DialogPopupPrimitive\r\n className={cn(\r\n \"fixed left-[50%] top-[50%] z-50 grid w-[calc(100%-2rem)] max-w-lg translate-x-[-50%] translate-y-[-50%] bg-bg-primary shadow-xp-lg rounded-xl overflow-hidden\",\r\n className,\r\n )}\r\n {...props}\r\n >\r\n {children}\r\n {showCloseButton && (\r\n <DialogClosePrimitive\r\n className={cn(\r\n \"data-[state=open]:bg-bg-primary data-[state=open]:text-text-primary absolute top-3 right-4 rounded-xs transition-colors hover:text-text-error-primary-hover disabled:pointer-events-none [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4\",\r\n closeClassName\r\n )}\r\n >\r\n <XIcon />\r\n <span className=\"sr-only\">Close</span>\r\n </DialogClosePrimitive>\r\n )}\r\n </DialogPopupPrimitive>\r\n </DialogPortalPrimitive>\r\n );\r\n}\r\n\r\ntype DialogHeaderProps = DialogHeaderPrimitiveProps;\r\n\r\nfunction DialogHeader({ className, ...props }: DialogHeaderProps) {\r\n return (\r\n <DialogHeaderPrimitive\r\n className={cn(\"relative px-4 py-3 flex flex-col bg-bg-primary border-b border-border-tertiary bg-radial-[100%_200%_at_0%_0%] from-modal-dialog-stop-0 to-bg-primary has-[[data-slot=dialog-icon]]:pl-16 has-[[data-slot=dialog-avatar]]:pl-16\", className)}\r\n {...props}\r\n />\r\n );\r\n}\r\n\r\ntype DialogContentProps = React.HTMLAttributes<HTMLDivElement>;\r\n\r\nfunction DialogContent({ className, ...props }: DialogContentProps) {\r\n return (\r\n <div\r\n data-slot=\"dialog-content\"\r\n className={cn(\"px-4 py-4 max-h-[60vh] overflow-y-auto\", className)}\r\n {...props}\r\n />\r\n );\r\n}\r\n\r\ntype DialogFooterProps = DialogFooterPrimitiveProps;\r\n\r\nfunction DialogFooter({ className, ...props }: DialogFooterProps) {\r\n return (\r\n <DialogFooterPrimitive\r\n className={cn(\r\n \"flex gap-2 items-center justify-end bg-bg-primary border-t border-border-tertiary px-4 py-3 shadow-[0px_-1px_24px_0px_var(--color-shadow-xs)] peer-[[data-slot=dialog-content]]:border-0\",\r\n className\r\n )}\r\n {...props}\r\n />\r\n );\r\n}\r\n\r\ntype DialogTitleProps = DialogTitlePrimitiveProps;\r\n\r\nfunction DialogTitle({ className, ...props }: DialogTitleProps) {\r\n return (\r\n <DialogTitlePrimitive\r\n className={cn(\"text-label-bold-2 text-text-primary\", className)}\r\n {...props}\r\n />\r\n );\r\n}\r\n\r\ntype DialogDescriptionProps = DialogDescriptionPrimitiveProps;\r\n\r\nfunction DialogDescription({ className, ...props }: DialogDescriptionProps) {\r\n return (\r\n <DialogDescriptionPrimitive\r\n className={cn(\"mt-0.5 text-body-regular-3 text-text-secondary\", className)}\r\n {...props}\r\n />\r\n );\r\n}\r\n\r\nfunction DialogIcon({ className, ...props }: React.ComponentProps<\"div\">) {\r\n return (\r\n <div\r\n data-slot=\"dialog-icon\"\r\n className={cn(\"absolute top-[13px] left-4 flex items-center justify-center rounded-lg bg-bg-primary p-2.5 [&_svg]:size-4 bg-bg-brand-solid text-fg-white shadow-[0px_1px_2px_-1px_var(--color-shadow-lg-01),0px_1px_3px_0px_var(--color-shadow-md-01),0px_0px_0px_4px_var(--color-focus-ring-secondary)]\", className)}\r\n {...props}\r\n />\r\n );\r\n}\r\n\r\ntype DialogAvatarProps = Omit<React.ComponentProps<typeof ProfileAvatar>, \"size\" | \"bordered\" | \"badged\"> & {\r\n src?: string;\r\n imageAlt?: string;\r\n variant?: ProfileAvatarVariant;\r\n};\r\n\r\nfunction DialogAvatar({\r\n src,\r\n imageSrc,\r\n className,\r\n avatarClassName,\r\n imageAlt,\r\n variant = \"profile\",\r\n ...props\r\n}: DialogAvatarProps) {\r\n return (\r\n <div\r\n data-slot=\"dialog-avatar\"\r\n className={cn(\r\n \"absolute top-[13px] left-4 flex items-center justify-center size-9 rounded-lg overflow-hidden bg-bg-primary shadow-[0px_1px_2px_-1px_var(--color-shadow-lg-01),0px_1px_3px_0px_var(--color-shadow-md-01),0px_0px_0px_4px_var(--color-focus-ring-secondary)]\",\r\n className,\r\n )}\r\n >\r\n <ProfileAvatar\r\n imageSrc={src ?? imageSrc}\r\n imageAlt={imageAlt}\r\n variant={variant}\r\n bordered={false}\r\n badged={false}\r\n className={cn(\"size-full shrink-0\", avatarClassName)}\r\n {...props}\r\n />\r\n </div>\r\n );\r\n}\r\n\r\nexport {\r\n Dialog,\r\n DialogTrigger,\r\n DialogClose,\r\n DialogPopup,\r\n DialogHeader,\r\n DialogContent,\r\n DialogFooter,\r\n DialogTitle,\r\n DialogDescription,\r\n DialogIcon,\r\n DialogAvatar,\r\n type DialogProps,\r\n type DialogTriggerProps,\r\n type DialogCloseProps,\r\n type DialogPopupProps,\r\n type DialogHeaderProps,\r\n type DialogContentProps,\r\n type DialogFooterProps,\r\n type DialogTitleProps,\r\n type DialogDescriptionProps,\r\n type DialogAvatarProps,\r\n};"]}
@@ -0,0 +1,2 @@
1
+ import {a,b,m,e,q,s,w,x,F}from'./chunk-GNQKITNA.js';import*as d from'react';import {ChevronDownIcon}from'lucide-react';import {cn}from'@xploreu/lib/cn';import {useControlledState}from'@xploreu/hooks/use-controlled-state';import {jsxs,jsx}from'react/jsx-runtime';function U({multiple:c,items:t,placeholder:a$1="Select",icon:C,container:N,isPending:T,className:L,triggerClassName:R,contentClassName:k,disabled:A,infiniteScroll:q$1,...n}){let r=c===true,M=n.showTitle??r,b$1=n.showSearch??r,[i,g]=useControlledState({value:n.value,defaultValue:n.defaultValue??(r?[]:null),onChange:n.onValueChange}),[u,$]=d.useState(""),x$1=Array.isArray(i)?i:i?[i]:[],l=x$1.length>0,B=x$1.length,z=l?r?`${a$1} (${B})`:x$1[0]?.label??a$1:r?`All ${a$1}`:a$1,D=()=>{g(r?[]:null);},f=d.useMemo(()=>{if(!b$1||!u.trim())return t;let o=u.toLowerCase();return t?.filter(p=>p.label.toLowerCase().includes(o)||p.value.toLowerCase().includes(o))},[t,u,b$1]);return jsxs(a,{items:t,multiple:c,value:i,onValueChange:g,isItemEqualToValue:(o,p)=>o.value===p.value,disabled:A,children:[jsxs(b,{className:cn("group flex h-9 w-fit max-w-[220px] items-center gap-2 rounded-xp-card-base border bg-bg-primary px-3 text-body-medium-3 transition-colors","border-border-primary text-text-secondary hover:bg-bg-primary-hover",l&&"border-border-brand bg-bg-brand-primary text-text-brand-secondary hover:bg-bg-brand-primary-hover-alt","disabled:pointer-events-none disabled:opacity-50","data-[popup-open]:border-border-brand data-[popup-open]:bg-bg-brand-primary data-[popup-open]:text-text-brand-secondary",R,L),children:[C&&jsx("span",{className:cn("size-4 shrink-0 group-data-[popup-open]:text-fg-brand-primary",l?"text-fg-brand-primary":"text-fg-quaternary"),children:C}),jsx("span",{className:"truncate",children:z}),jsx(ChevronDownIcon,{className:cn("size-4 shrink-0 transition-transform group-data-[popup-open]:rotate-180 group-data-[popup-open]:text-fg-brand-primary",l?"text-fg-brand-primary":"text-fg-quaternary")})]}),jsx(m,{container:N,className:cn("w-72",k),align:"start",sideOffset:8,children:jsxs("div",{className:"flex flex-col",children:[M&&jsxs("div",{className:"flex items-center justify-between p-3 border-b border-border-primary",children:[jsx("span",{className:"text-label-semibold-3 text-text-primary",children:a$1}),jsx("button",{type:"button",disabled:!l,onClick:D,className:cn("text-label-semibold-3 transition-colors",l?"cursor-pointer text-text-error-primary hover:text-text-error-primary-hover":"cursor-not-allowed text-text-disabled"),children:"Clear All"})]}),b$1&&jsx(e,{value:u,onChange:o=>$(o.target.value),placeholder:`Search ${a$1.toLowerCase()}...`}),jsx(q,{status:T||t===void 0?"pending":(b$1?f:t)?.length===0?"empty":null}),jsxs(s,{children:[(b$1?f:t)?.map(o=>jsx(w,{indicator:r?"checkbox":void 0,value:o,children:jsx(x,{children:o.label})},o.value)),jsx(F,{...q$1})]})]})})]})}export{U as a};//# sourceMappingURL=chunk-OK4K7DSW.js.map
2
+ //# sourceMappingURL=chunk-OK4K7DSW.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/composites/filter-combobox.tsx"],"names":["FilterCombobox","multiple","items","placeholder","icon","container","isPending","className","triggerClassName","contentClassName","disabled","infiniteScroll","props","isMultiple","showTitle","showSearch","value","setValue","useControlledState","search","setSearch","valueArray","hasValue","count","triggerLabel","handleClear","filteredItems","q","it","jsxs","Combobox","a","b","ComboboxTrigger","cn","jsx","ChevronDownIcon","ComboboxPopup","ComboboxInput","e","ComboboxStatus","ComboboxList","item","ComboboxItem","ComboboxItemTitle","ComboboxInfiniteScroll"],"mappings":"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","file":"chunk-OK4K7DSW.js","sourcesContent":["\"use client\"\r\n\r\nimport * as React from \"react\"\r\nimport { ChevronDownIcon } from \"lucide-react\"\r\n\r\nimport { cn } from \"@xploreu/lib/cn\"\r\nimport { useControlledState } from \"@xploreu/hooks/use-controlled-state\"\r\nimport { ComboboxItem, ComboboxItemTitle } from \"../ui/combobox\"\r\nimport {\r\n Combobox,\r\n ComboboxInfiniteScroll,\r\n ComboboxInput,\r\n ComboboxList,\r\n ComboboxPopup,\r\n ComboboxPortal,\r\n ComboboxStatus,\r\n ComboboxTrigger\r\n} from \"../ui/combobox\"\r\n\r\n// ─── Types ───\r\n\r\nexport type FilterComboboxItem = {\r\n label: string\r\n value: string\r\n}\r\n\r\ntype FilterComboboxValue = FilterComboboxItem | FilterComboboxItem[] | null\r\n\r\ntype BaseProps = {\r\n items: FilterComboboxItem[] | undefined\r\n placeholder?: string\r\n icon?: React.ReactNode\r\n container?: React.ComponentProps<typeof ComboboxPortal>[\"container\"]\r\n isPending?: boolean\r\n className?: string\r\n triggerClassName?: string\r\n contentClassName?: string\r\n disabled?: boolean\r\n infiniteScroll?: React.ComponentProps<typeof ComboboxInfiniteScroll>\r\n showTitle?: boolean\r\n showSearch?: boolean\r\n}\r\n\r\ntype SingleProps = BaseProps & {\r\n multiple?: false\r\n value?: FilterComboboxItem | null\r\n defaultValue?: FilterComboboxItem | null\r\n onValueChange?: (value: FilterComboboxItem | null) => void\r\n}\r\n\r\ntype MultipleProps = BaseProps & {\r\n multiple: true\r\n value?: FilterComboboxItem[]\r\n defaultValue?: FilterComboboxItem[]\r\n onValueChange?: (value: FilterComboboxItem[]) => void\r\n}\r\n\r\nexport type FilterComboboxProps = SingleProps | MultipleProps\r\n\r\n// ─── Component ───\r\n\r\nfunction FilterCombobox({\r\n multiple,\r\n items,\r\n placeholder = \"Select\",\r\n icon,\r\n container,\r\n isPending,\r\n className,\r\n triggerClassName,\r\n contentClassName,\r\n disabled,\r\n infiniteScroll,\r\n ...props\r\n}: FilterComboboxProps) {\r\n\r\n const isMultiple = multiple === true\r\n const showTitle = props.showTitle ?? isMultiple\r\n const showSearch = props.showSearch ?? isMultiple\r\n\r\n const [value, setValue] = useControlledState<FilterComboboxValue>({\r\n value: props.value,\r\n defaultValue: props.defaultValue ?? (isMultiple ? [] : null),\r\n onChange: props.onValueChange as (value: FilterComboboxValue) => void,\r\n })\r\n\r\n const [search, setSearch] = React.useState(\"\")\r\n\r\n // Normalize value to array for label & clear logic\r\n const valueArray = Array.isArray(value) ? value : value ? [value] : []\r\n const hasValue = valueArray.length > 0\r\n const count = valueArray.length\r\n\r\n const triggerLabel = !hasValue\r\n ? isMultiple\r\n ? `All ${placeholder}`\r\n : placeholder\r\n : isMultiple\r\n ? `${placeholder} (${count})`\r\n : valueArray[0]?.label ?? placeholder\r\n\r\n const handleClear = () => {\r\n setValue(isMultiple ? [] : null)\r\n }\r\n\r\n // Filter items when showSearch is enabled\r\n const filteredItems = React.useMemo(() => {\r\n if (!showSearch || !search.trim()) return items\r\n const q = search.toLowerCase()\r\n return items?.filter(\r\n (it) => it.label.toLowerCase().includes(q) || it.value.toLowerCase().includes(q)\r\n )\r\n }, [items, search, showSearch])\r\n\r\n return (\r\n <Combobox\r\n items={items}\r\n multiple={multiple}\r\n value={value}\r\n onValueChange={setValue}\r\n isItemEqualToValue={(a, b) => a.value === b.value}\r\n disabled={disabled}\r\n >\r\n <ComboboxTrigger\r\n className={cn(\r\n \"group flex h-9 w-fit max-w-[220px] items-center gap-2 rounded-xp-card-base border bg-bg-primary px-3 text-body-medium-3 transition-colors\",\r\n \"border-border-primary text-text-secondary hover:bg-bg-primary-hover\",\r\n hasValue && \"border-border-brand bg-bg-brand-primary text-text-brand-secondary hover:bg-bg-brand-primary-hover-alt\",\r\n \"disabled:pointer-events-none disabled:opacity-50\",\r\n \"data-[popup-open]:border-border-brand data-[popup-open]:bg-bg-brand-primary data-[popup-open]:text-text-brand-secondary\",\r\n triggerClassName,\r\n className\r\n )}\r\n >\r\n {icon && (\r\n <span\r\n className={cn(\r\n \"size-4 shrink-0 group-data-[popup-open]:text-fg-brand-primary\",\r\n hasValue ? \"text-fg-brand-primary\" : \"text-fg-quaternary\"\r\n )}\r\n >\r\n {icon}\r\n </span>\r\n )}\r\n <span className=\"truncate\">{triggerLabel}</span>\r\n <ChevronDownIcon\r\n className={cn(\r\n \"size-4 shrink-0 transition-transform group-data-[popup-open]:rotate-180 group-data-[popup-open]:text-fg-brand-primary\",\r\n hasValue ? \"text-fg-brand-primary\" : \"text-fg-quaternary\"\r\n )}\r\n />\r\n </ComboboxTrigger>\r\n\r\n <ComboboxPopup\r\n container={container}\r\n className={cn(\"w-72\", contentClassName)}\r\n align=\"start\"\r\n sideOffset={8}\r\n >\r\n <div className=\"flex flex-col\">\r\n {showTitle && (\r\n <div className=\"flex items-center justify-between p-3 border-b border-border-primary\">\r\n <span className=\"text-label-semibold-3 text-text-primary\">{placeholder}</span>\r\n <button\r\n type=\"button\"\r\n disabled={!hasValue}\r\n onClick={handleClear}\r\n className={cn(\r\n \"text-label-semibold-3 transition-colors\",\r\n hasValue\r\n ? \"cursor-pointer text-text-error-primary hover:text-text-error-primary-hover\"\r\n : \"cursor-not-allowed text-text-disabled\"\r\n )}\r\n >\r\n Clear All\r\n </button>\r\n </div>\r\n )}\r\n\r\n {showSearch && (\r\n <ComboboxInput\r\n value={search}\r\n onChange={(e) => setSearch(e.target.value)}\r\n placeholder={`Search ${placeholder.toLowerCase()}...`}\r\n />\r\n )}\r\n\r\n <ComboboxStatus\r\n status={\r\n isPending || items === undefined\r\n ? \"pending\"\r\n : (showSearch ? filteredItems : items)?.length === 0\r\n ? \"empty\"\r\n : null\r\n }\r\n />\r\n <ComboboxList>\r\n {(showSearch ? filteredItems : items)?.map((item) => (\r\n <ComboboxItem\r\n indicator={isMultiple ? \"checkbox\" : undefined}\r\n key={item.value}\r\n value={item}\r\n >\r\n <ComboboxItemTitle>{item.label}</ComboboxItemTitle>\r\n </ComboboxItem>\r\n ))}\r\n <ComboboxInfiniteScroll {...infiniteScroll} />\r\n </ComboboxList>\r\n </div>\r\n </ComboboxPopup>\r\n </Combobox>\r\n )\r\n}\r\n\r\nexport { FilterCombobox }\r\n"]}
@@ -1,2 +1,2 @@
1
- import {b as b$1,c,d,e,g,h,i,j,k as k$1,a}from'./chunk-5YDJTHDG.js';import'react';import {Dialog}from'@base-ui/react/dialog';import {motion}from'motion/react';import {cn}from'@xploreu/lib/cn';import {jsx}from'react/jsx-runtime';var M=b$1,O=c,k=d,L=e,R=g,b=h,B=i,N=j,w=k$1,A=a,T={top:{y:"-100%"},bottom:{y:"100%"},left:{x:"-100%"},right:{x:"100%"}};function E({side:e="right",initialFocus:t,finalFocus:S,transition:D={type:"spring",stiffness:150,damping:25},className:c,...d}){let p=T[e];return jsx(Dialog.Popup,{initialFocus:t,finalFocus:S,render:jsx(motion.div,{"data-slot":"sheet-popup","data-side":e,className:c,initial:{opacity:0,...p},animate:{opacity:1,x:0,y:0},exit:{opacity:0,...p},transition:D,...d},"sheet-popup")})}function q({className:e,...t}){return jsx("div",{"data-slot":"sheet-content",className:cn("flex-1 overflow-y-auto px-6 py-4",e),...t})}export{M as a,O as b,k as c,L as d,R as e,b as f,B as g,N as h,w as i,A as j,E as k,q as l};//# sourceMappingURL=chunk-Z67QQMOX.js.map
2
- //# sourceMappingURL=chunk-Z67QQMOX.js.map
1
+ import {b as b$1,c,d,e,g,h,i,j,k as k$1,a}from'./chunk-L2QE2YOM.js';import'react';import {Dialog}from'@base-ui/react/dialog';import {motion}from'motion/react';import {cn}from'@xploreu/lib/cn';import {jsx}from'react/jsx-runtime';var M=b$1,O=c,k=d,L=e,R=g,b=h,B=i,N=j,w=k$1,A=a,T={top:{y:"-100%"},bottom:{y:"100%"},left:{x:"-100%"},right:{x:"100%"}};function E({side:e="right",initialFocus:t,finalFocus:S,transition:D={type:"spring",stiffness:150,damping:25},className:c,...d}){let p=T[e];return jsx(Dialog.Popup,{initialFocus:t,finalFocus:S,render:jsx(motion.div,{"data-slot":"sheet-popup","data-side":e,className:c,initial:{opacity:0,...p},animate:{opacity:1,x:0,y:0},exit:{opacity:0,...p},transition:D,...d},"sheet-popup")})}function q({className:e,...t}){return jsx("div",{"data-slot":"sheet-content",className:cn("flex-1 overflow-y-auto px-6 py-4",e),...t})}export{M as a,O as b,k as c,L as d,R as e,b as f,B as g,N as h,w as i,A as j,E as k,q as l};//# sourceMappingURL=chunk-VY735IE2.js.map
2
+ //# sourceMappingURL=chunk-VY735IE2.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["../src/primitives/sheet.tsx"],"names":["Sheet","Dialog","SheetTrigger","DialogTrigger","SheetPortal","DialogPortal","SheetOverlay","DialogBackdrop","SheetClose","DialogClose","SheetHeader","DialogHeader","SheetFooter","DialogFooter","SheetTitle","DialogTitle","SheetDescription","DialogDescription","useSheet","useDialog","sideOffsets","SheetPopup","side","initialFocus","finalFocus","transition","className","props","offset","jsx","DialogPrimitive","motion","SheetContent","cn"],"mappings":"oOAgCA,IAAMA,CAAAA,CAAQC,GAAAA,CACRC,CAAAA,CAAeC,EACfC,CAAAA,CAAcC,CAAAA,CACdC,CAAAA,CAAeC,CAAAA,CACfC,EAAaC,CAAAA,CACbC,CAAAA,CAAcC,CAAAA,CACdC,CAAAA,CAAcC,EACdC,CAAAA,CAAaC,CAAAA,CACbC,EAAmBC,GAAAA,CACnBC,CAAAA,CAAWC,EAIXC,CAAAA,CAA6D,CACjE,GAAA,CAAK,CAAE,EAAG,OAAQ,CAAA,CAClB,MAAA,CAAQ,CAAE,EAAG,MAAO,CAAA,CACpB,IAAA,CAAM,CAAE,EAAG,OAAQ,CAAA,CACnB,MAAO,CAAE,CAAA,CAAG,MAAO,CACrB,EAUA,SAASC,CAAAA,CAAW,CAClB,IAAA,CAAAC,CAAAA,CAAO,OAAA,CACP,YAAA,CAAAC,EACA,UAAA,CAAAC,CAAAA,CACA,UAAA,CAAAC,CAAAA,CAAa,CAAE,IAAA,CAAM,QAAA,CAAU,UAAW,GAAA,CAAK,OAAA,CAAS,EAAG,CAAA,CAC3D,SAAA,CAAAC,CAAAA,CACA,GAAGC,CACL,CAAA,CAAoB,CAClB,IAAMC,CAAAA,CAASR,EAAYE,CAAI,CAAA,CAE/B,OACEO,GAAAA,CAACC,OAAgB,KAAA,CAAhB,CACC,aAAcP,CAAAA,CACd,UAAA,CAAYC,EACZ,MAAA,CACEK,GAAAA,CAACE,MAAAA,CAAO,GAAA,CAAP,CAEC,WAAA,CAAU,aAAA,CACV,WAAA,CAAWT,CAAAA,CACX,UAAWI,CAAAA,CACX,OAAA,CAAS,CAAE,OAAA,CAAS,EAAG,GAAGE,CAAO,EACjC,OAAA,CAAS,CAAE,QAAS,CAAA,CAAG,CAAA,CAAG,CAAA,CAAG,CAAA,CAAG,CAAE,CAAA,CAClC,IAAA,CAAM,CAAE,OAAA,CAAS,EAAG,GAAGA,CAAO,CAAA,CAC9B,UAAA,CAAYH,EACX,GAAGE,CAAAA,CAAAA,CARA,aASN,CAAA,CAEJ,CAEJ,CAIA,SAASK,CAAAA,CAAa,CAAE,SAAA,CAAAN,EAAW,GAAGC,CAAM,CAAA,CAAsB,CAChE,OACEE,GAAAA,CAAC,KAAA,CAAA,CACC,WAAA,CAAU,eAAA,CACV,UAAWI,EAAAA,CAAG,kCAAA,CAAoCP,CAAS,CAAA,CAC1D,GAAGC,EACN,CAEJ","file":"chunk-Z67QQMOX.js","sourcesContent":["'use client';\r\n\r\nimport * as React from 'react';\r\nimport { Dialog as DialogPrimitive } from '@base-ui/react/dialog';\r\nimport { motion, type HTMLMotionProps } from 'motion/react';\r\n\r\nimport {\r\n Dialog,\r\n DialogBackdrop,\r\n DialogClose,\r\n DialogDescription,\r\n DialogFooter,\r\n DialogHeader,\r\n DialogPortal,\r\n DialogTitle,\r\n DialogTrigger,\r\n useDialog,\r\n type DialogProps,\r\n type DialogTriggerProps,\r\n type DialogPortalProps,\r\n type DialogCloseProps,\r\n type DialogBackdropProps,\r\n type DialogHeaderProps,\r\n type DialogFooterProps,\r\n type DialogTitleProps,\r\n type DialogDescriptionProps,\r\n} from './dialog';\r\nimport { cn } from '@xploreu/lib/cn';\r\n\r\n// ponytail: Sheet reuses the Dialog context/state machinery; only the\r\n// popup animation differs (slide-in from an edge vs the 3D flip).\r\n// Upgrade path: split a shared DialogContext if sheet-specific state is needed.\r\nconst Sheet = Dialog;\r\nconst SheetTrigger = DialogTrigger;\r\nconst SheetPortal = DialogPortal;\r\nconst SheetOverlay = DialogBackdrop;\r\nconst SheetClose = DialogClose;\r\nconst SheetHeader = DialogHeader;\r\nconst SheetFooter = DialogFooter;\r\nconst SheetTitle = DialogTitle;\r\nconst SheetDescription = DialogDescription;\r\nconst useSheet = useDialog;\r\n\r\ntype SheetSide = 'top' | 'bottom' | 'left' | 'right';\r\n\r\nconst sideOffsets: Record<SheetSide, { x?: string; y?: string }> = {\r\n top: { y: '-100%' },\r\n bottom: { y: '100%' },\r\n left: { x: '-100%' },\r\n right: { x: '100%' },\r\n};\r\n\r\ntype SheetPopupProps = Omit<\r\n React.ComponentProps<typeof DialogPrimitive.Popup>,\r\n 'render'\r\n> &\r\n HTMLMotionProps<'div'> & {\r\n side?: SheetSide;\r\n };\r\n\r\nfunction SheetPopup({\r\n side = 'right',\r\n initialFocus,\r\n finalFocus,\r\n transition = { type: 'spring', stiffness: 150, damping: 25 },\r\n className,\r\n ...props\r\n}: SheetPopupProps) {\r\n const offset = sideOffsets[side];\r\n\r\n return (\r\n <DialogPrimitive.Popup\r\n initialFocus={initialFocus}\r\n finalFocus={finalFocus}\r\n render={\r\n <motion.div\r\n key=\"sheet-popup\"\r\n data-slot=\"sheet-popup\"\r\n data-side={side}\r\n className={className}\r\n initial={{ opacity: 0, ...offset }}\r\n animate={{ opacity: 1, x: 0, y: 0 }}\r\n exit={{ opacity: 0, ...offset }}\r\n transition={transition}\r\n {...props}\r\n />\r\n }\r\n />\r\n );\r\n}\r\n\r\ntype SheetContentProps = React.HTMLAttributes<HTMLDivElement>;\r\n\r\nfunction SheetContent({ className, ...props }: SheetContentProps) {\r\n return (\r\n <div\r\n data-slot=\"sheet-content\"\r\n className={cn('flex-1 overflow-y-auto px-6 py-4', className)}\r\n {...props}\r\n />\r\n );\r\n}\r\n\r\ntype SheetProps = DialogProps;\r\ntype SheetTriggerProps = DialogTriggerProps;\r\ntype SheetPortalProps = DialogPortalProps;\r\ntype SheetCloseProps = DialogCloseProps;\r\ntype SheetOverlayProps = DialogBackdropProps;\r\ntype SheetHeaderProps = DialogHeaderProps;\r\ntype SheetFooterProps = DialogFooterProps;\r\ntype SheetTitleProps = DialogTitleProps;\r\ntype SheetDescriptionProps = DialogDescriptionProps;\r\n\r\nexport {\r\n Sheet,\r\n SheetPortal,\r\n SheetOverlay,\r\n SheetClose,\r\n SheetTrigger,\r\n SheetPopup,\r\n SheetContent,\r\n SheetHeader,\r\n SheetFooter,\r\n SheetTitle,\r\n SheetDescription,\r\n useSheet,\r\n type SheetProps,\r\n type SheetTriggerProps,\r\n type SheetPortalProps,\r\n type SheetCloseProps,\r\n type SheetOverlayProps,\r\n type SheetPopupProps,\r\n type SheetContentProps,\r\n type SheetHeaderProps,\r\n type SheetFooterProps,\r\n type SheetTitleProps,\r\n type SheetDescriptionProps,\r\n type SheetSide,\r\n};\r\n"]}
1
+ {"version":3,"sources":["../src/primitives/sheet.tsx"],"names":["Sheet","Dialog","SheetTrigger","DialogTrigger","SheetPortal","DialogPortal","SheetOverlay","DialogBackdrop","SheetClose","DialogClose","SheetHeader","DialogHeader","SheetFooter","DialogFooter","SheetTitle","DialogTitle","SheetDescription","DialogDescription","useSheet","useDialog","sideOffsets","SheetPopup","side","initialFocus","finalFocus","transition","className","props","offset","jsx","DialogPrimitive","motion","SheetContent","cn"],"mappings":"oOAgCA,IAAMA,CAAAA,CAAQC,GAAAA,CACRC,CAAAA,CAAeC,EACfC,CAAAA,CAAcC,CAAAA,CACdC,CAAAA,CAAeC,CAAAA,CACfC,EAAaC,CAAAA,CACbC,CAAAA,CAAcC,CAAAA,CACdC,CAAAA,CAAcC,EACdC,CAAAA,CAAaC,CAAAA,CACbC,EAAmBC,GAAAA,CACnBC,CAAAA,CAAWC,EAIXC,CAAAA,CAA6D,CACjE,GAAA,CAAK,CAAE,EAAG,OAAQ,CAAA,CAClB,MAAA,CAAQ,CAAE,EAAG,MAAO,CAAA,CACpB,IAAA,CAAM,CAAE,EAAG,OAAQ,CAAA,CACnB,MAAO,CAAE,CAAA,CAAG,MAAO,CACrB,EAUA,SAASC,CAAAA,CAAW,CAClB,IAAA,CAAAC,CAAAA,CAAO,OAAA,CACP,YAAA,CAAAC,EACA,UAAA,CAAAC,CAAAA,CACA,UAAA,CAAAC,CAAAA,CAAa,CAAE,IAAA,CAAM,QAAA,CAAU,UAAW,GAAA,CAAK,OAAA,CAAS,EAAG,CAAA,CAC3D,SAAA,CAAAC,CAAAA,CACA,GAAGC,CACL,CAAA,CAAoB,CAClB,IAAMC,CAAAA,CAASR,EAAYE,CAAI,CAAA,CAE/B,OACEO,GAAAA,CAACC,OAAgB,KAAA,CAAhB,CACC,aAAcP,CAAAA,CACd,UAAA,CAAYC,EACZ,MAAA,CACEK,GAAAA,CAACE,MAAAA,CAAO,GAAA,CAAP,CAEC,WAAA,CAAU,aAAA,CACV,WAAA,CAAWT,CAAAA,CACX,UAAWI,CAAAA,CACX,OAAA,CAAS,CAAE,OAAA,CAAS,EAAG,GAAGE,CAAO,EACjC,OAAA,CAAS,CAAE,QAAS,CAAA,CAAG,CAAA,CAAG,CAAA,CAAG,CAAA,CAAG,CAAE,CAAA,CAClC,IAAA,CAAM,CAAE,OAAA,CAAS,EAAG,GAAGA,CAAO,CAAA,CAC9B,UAAA,CAAYH,EACX,GAAGE,CAAAA,CAAAA,CARA,aASN,CAAA,CAEJ,CAEJ,CAIA,SAASK,CAAAA,CAAa,CAAE,SAAA,CAAAN,EAAW,GAAGC,CAAM,CAAA,CAAsB,CAChE,OACEE,GAAAA,CAAC,KAAA,CAAA,CACC,WAAA,CAAU,eAAA,CACV,UAAWI,EAAAA,CAAG,kCAAA,CAAoCP,CAAS,CAAA,CAC1D,GAAGC,EACN,CAEJ","file":"chunk-VY735IE2.js","sourcesContent":["'use client';\r\n\r\nimport * as React from 'react';\r\nimport { Dialog as DialogPrimitive } from '@base-ui/react/dialog';\r\nimport { motion, type HTMLMotionProps } from 'motion/react';\r\n\r\nimport {\r\n Dialog,\r\n DialogBackdrop,\r\n DialogClose,\r\n DialogDescription,\r\n DialogFooter,\r\n DialogHeader,\r\n DialogPortal,\r\n DialogTitle,\r\n DialogTrigger,\r\n useDialog,\r\n type DialogProps,\r\n type DialogTriggerProps,\r\n type DialogPortalProps,\r\n type DialogCloseProps,\r\n type DialogBackdropProps,\r\n type DialogHeaderProps,\r\n type DialogFooterProps,\r\n type DialogTitleProps,\r\n type DialogDescriptionProps,\r\n} from './dialog';\r\nimport { cn } from '@xploreu/lib/cn';\r\n\r\n// ponytail: Sheet reuses the Dialog context/state machinery; only the\r\n// popup animation differs (slide-in from an edge vs the 3D flip).\r\n// Upgrade path: split a shared DialogContext if sheet-specific state is needed.\r\nconst Sheet = Dialog;\r\nconst SheetTrigger = DialogTrigger;\r\nconst SheetPortal = DialogPortal;\r\nconst SheetOverlay = DialogBackdrop;\r\nconst SheetClose = DialogClose;\r\nconst SheetHeader = DialogHeader;\r\nconst SheetFooter = DialogFooter;\r\nconst SheetTitle = DialogTitle;\r\nconst SheetDescription = DialogDescription;\r\nconst useSheet = useDialog;\r\n\r\ntype SheetSide = 'top' | 'bottom' | 'left' | 'right';\r\n\r\nconst sideOffsets: Record<SheetSide, { x?: string; y?: string }> = {\r\n top: { y: '-100%' },\r\n bottom: { y: '100%' },\r\n left: { x: '-100%' },\r\n right: { x: '100%' },\r\n};\r\n\r\ntype SheetPopupProps = Omit<\r\n React.ComponentProps<typeof DialogPrimitive.Popup>,\r\n 'render'\r\n> &\r\n HTMLMotionProps<'div'> & {\r\n side?: SheetSide;\r\n };\r\n\r\nfunction SheetPopup({\r\n side = 'right',\r\n initialFocus,\r\n finalFocus,\r\n transition = { type: 'spring', stiffness: 150, damping: 25 },\r\n className,\r\n ...props\r\n}: SheetPopupProps) {\r\n const offset = sideOffsets[side];\r\n\r\n return (\r\n <DialogPrimitive.Popup\r\n initialFocus={initialFocus}\r\n finalFocus={finalFocus}\r\n render={\r\n <motion.div\r\n key=\"sheet-popup\"\r\n data-slot=\"sheet-popup\"\r\n data-side={side}\r\n className={className}\r\n initial={{ opacity: 0, ...offset }}\r\n animate={{ opacity: 1, x: 0, y: 0 }}\r\n exit={{ opacity: 0, ...offset }}\r\n transition={transition}\r\n {...props}\r\n />\r\n }\r\n />\r\n );\r\n}\r\n\r\ntype SheetContentProps = React.HTMLAttributes<HTMLDivElement>;\r\n\r\nfunction SheetContent({ className, ...props }: SheetContentProps) {\r\n return (\r\n <div\r\n data-slot=\"sheet-content\"\r\n className={cn('flex-1 overflow-y-auto px-6 py-4', className)}\r\n {...props}\r\n />\r\n );\r\n}\r\n\r\ntype SheetProps = DialogProps;\r\ntype SheetTriggerProps = DialogTriggerProps;\r\ntype SheetPortalProps = DialogPortalProps;\r\ntype SheetCloseProps = DialogCloseProps;\r\ntype SheetOverlayProps = DialogBackdropProps;\r\ntype SheetHeaderProps = DialogHeaderProps;\r\ntype SheetFooterProps = DialogFooterProps;\r\ntype SheetTitleProps = DialogTitleProps;\r\ntype SheetDescriptionProps = DialogDescriptionProps;\r\n\r\nexport {\r\n Sheet,\r\n SheetPortal,\r\n SheetOverlay,\r\n SheetClose,\r\n SheetTrigger,\r\n SheetPopup,\r\n SheetContent,\r\n SheetHeader,\r\n SheetFooter,\r\n SheetTitle,\r\n SheetDescription,\r\n useSheet,\r\n type SheetProps,\r\n type SheetTriggerProps,\r\n type SheetPortalProps,\r\n type SheetCloseProps,\r\n type SheetOverlayProps,\r\n type SheetPopupProps,\r\n type SheetContentProps,\r\n type SheetHeaderProps,\r\n type SheetFooterProps,\r\n type SheetTitleProps,\r\n type SheetDescriptionProps,\r\n type SheetSide,\r\n};\r\n"]}
@@ -0,0 +1,2 @@
1
+ import {b,c}from'./chunk-2XZRLJCN.js';import*as a from'react';import {Combobox}from'@base-ui/react/combobox';import {AnimatePresence,motion}from'motion/react';import {useControlledState}from'@xploreu/hooks/use-controlled-state';import {useDataState}from'@xploreu/hooks/use-data-state';import {getStrictContext}from'@xploreu/lib/get-strict-context';import {jsx}from'react/jsx-runtime';var [R,g]=getStrictContext("ComboboxContext"),[L,y]=getStrictContext("ComboboxActiveValueContext");function A({behavior:o="default",...b}){let[r,i]=useControlledState({value:b?.open,defaultValue:b?.defaultOpen,onChange:b?.onOpenChange}),[u,l]=useControlledState({value:b?.inputValue?.toString(),defaultValue:b?.defaultInputValue?.toString(),onChange:b?.onInputValueChange}),[x,s]=a.useState(null);a.useEffect(()=>{r&&s(null);},[r]);let p=(C,m)=>{if(m.reason==="input-clear")return m.cancel();l(C,m);},n=(C,m)=>{let f=m.trigger?.dataset;if(o==="chip-outside"&&(m.reason==="trigger-press"&&f?.slot==="combobox-clear-input"&&!C||m.reason==="item-press"))return m.cancel();i(C,m);};return jsx(L,{value:{highlightedValue:x,setHighlightedValue:s},children:jsx(R,{value:{open:r,setOpen:i,inputValue:u,setInputValue:l},children:jsx(Combobox.Root,{"data-slot":"combobox",...b,onInputValueChange:p,onOpenChange:n})})})}function w(o){return jsx(Combobox.Trigger,{"data-slot":"combobox-trigger",...o})}function k(o){return jsx(Combobox.Label,{"data-slot":"combobox-label",...o})}function O(o){return jsx(Combobox.InputGroup,{"data-slot":"combobox-input-group",...o})}function B(o){return jsx(Combobox.Input,{"data-slot":"combobox-input",...o})}function F(o){return jsx(Combobox.Icon,{"data-slot":"combobox-icon",...o})}function q(o){return jsx(Combobox.Clear,{"data-slot":"combobox-clear",...o})}function z(o){return jsx(Combobox.Value,{"data-slot":"combobox-value",...o})}function J(o){return jsx(Combobox.Chips,{"data-slot":"combobox-chips",...o})}function K(o){return jsx(Combobox.Chip,{"data-slot":"combobox-chip",...o})}function N(o){return jsx(Combobox.ChipRemove,{"data-slot":"combobox-chip-remove",...o})}function Q(o){let{open:b}=g();return jsx(AnimatePresence,{children:b&&jsx(Combobox.Portal,{"data-slot":"combobox-portal",keepMounted:true,...o})})}function U(o){return jsx(Combobox.Positioner,{"data-slot":"combobox-positioner",...o})}function W({initialFocus:o,finalFocus:b,transition:r={type:"spring",stiffness:300,damping:25},...i}){return jsx(Combobox.Popup,{finalFocus:b,initialFocus:o,render:jsx(motion.div,{animate:{opacity:1,scale:1},"data-slot":"combobox-popup",exit:{opacity:0,scale:.5},initial:{opacity:0,scale:.5},transition:r,...i},"combobox-popup")})}function X(o){return jsx(Combobox.Backdrop,{"data-slot":"combobox-backdrop",...o})}function Y(o){return jsx(Combobox.Status,{"data-slot":"combobox-status",...o})}function Z(o){return jsx(Combobox.Empty,{"data-slot":"combobox-empty",...o})}function _(o){return jsx(Combobox.List,{"data-slot":"combobox-list",...o})}function $({transition:o={type:"spring",stiffness:350,damping:35},...b$1}){let{highlightedValue:r}=y();return jsx(b,{"data-slot":"combobox-highlight",click:false,controlledItems:true,transition:o,value:r,...b$1})}function j(o){return jsx(c,{"data-slot":"combobox-highlight-item",...o})}function D(o){return jsx(Combobox.Row,{"data-slot":"combobox-row",...o})}function oo(o){let{open:b}=g(),{setHighlightedValue:r}=y(),i=a.useRef(false);a.useEffect(()=>{b||(i.current=false);},[b]);let[,u]=useDataState("highlighted",void 0,s=>{if(s===true&&i.current){let p=u.current,n=p?.dataset.value||p?.id||null;n&&r(n);}}),l=s=>{i.current=true;let p=u.current,n=p?.dataset.value||p?.id||null;n&&r(n),o.onPointerEnter?.(s);},x=s=>{if(!i.current){i.current=true;let p=u.current,n=p?.dataset.value||p?.id||null;n&&r(n);}o.onPointerMove?.(s);};return jsx(Combobox.Item,{ref:u,"data-slot":"combobox-item",...o,onPointerEnter:l,onPointerMove:x})}function to(o){return jsx(Combobox.ItemIndicator,{"data-slot":"combobox-item-indicator",...o})}function eo(o){return jsx(Combobox.Separator,{"data-slot":"combobox-separator",...o})}function bo(o){return jsx(Combobox.Group,{"data-slot":"combobox-group",...o})}function ro(o){return jsx(Combobox.GroupLabel,{"data-slot":"combobox-group-label",...o})}function io(o){return jsx(Combobox.Collection,{"data-slot":"combobox-collection",...o})}function po(o){return jsx(Combobox.Arrow,{"data-slot":"combobox-arrow",...o})}export{bo as A,ro as B,io as C,po as D,g as a,y as b,A as c,w as d,k as e,O as f,B as g,F as h,q as i,z as j,J as k,K as l,N as m,Q as n,U as o,W as p,X as q,Y as r,Z as s,_ as t,$ as u,j as v,D as w,oo as x,to as y,eo as z};//# sourceMappingURL=chunk-ZNZVX4PT.js.map
2
+ //# sourceMappingURL=chunk-ZNZVX4PT.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["../src/primitives/combobox.tsx"],"names":["ComboboxProvider","useCombobox","getStrictContext","ComboboxActiveValueProvider","useComboboxActiveValue","Combobox","behavior","props","open","setOpen","useControlledState","inputValue","setInputValue","highlightedValue","setHighlightedValue","handleInputValueChange","eventDetails","handleOpenChange","dataSet","jsx","ComboboxPrimitive","ComboboxTrigger","ComboboxLabel","ComboboxInputGroup","ComboboxInput","ComboboxIcon","ComboboxClear","ComboboxValue","ComboboxChips","ComboboxChip","ComboboxChipRemove","ComboboxPortal","AnimatePresence","ComboboxPositioner","ComboboxPopup","initialFocus","finalFocus","transition","motion","ComboboxBackdrop","ComboboxStatus","ComboboxEmpty","ComboboxList","ComboboxHighlight","Highlight","ComboboxHighlightItem","HighlightItem","ComboboxRow","ComboboxItem","hasInteractedRef","highlightedRef","useDataState","value","el","v","handlePointerEnter","e","handlePointerMove","ComboboxItemIndicator","ComboboxSeparator","ComboboxGroup","ComboboxGroupLabel","ComboboxCollection","ComboboxArrow"],"mappings":"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","file":"chunk-ZNZVX4PT.js","sourcesContent":["\"use client\"\r\n\r\nimport * as React from \"react\"\r\n\r\nimport { Combobox as ComboboxPrimitive } from \"@base-ui/react/combobox\"\r\nimport {\r\n AnimatePresence,\r\n type HTMLMotionProps,\r\n motion\r\n} from \"motion/react\"\r\n\r\nimport {\r\n Highlight,\r\n HighlightItem,\r\n type HighlightItemProps,\r\n type HighlightProps,\r\n} from \"../effects/highlight\"\r\nimport { useControlledState } from \"@xploreu/hooks/use-controlled-state\"\r\nimport { useDataState } from \"@xploreu/hooks/use-data-state\"\r\nimport { getStrictContext } from \"@xploreu/lib/get-strict-context\"\r\n\r\ntype ComboboxContextType = {\r\n open: boolean;\r\n setOpen: (open: boolean, eventDetails: ComboboxPrimitive.Root.ChangeEventDetails) => void;\r\n inputValue: string;\r\n setInputValue: (inputValue: string, eventDetails: ComboboxPrimitive.Root.ChangeEventDetails) => void;\r\n}\r\n\r\ntype ComboboxActiveValueContextType = {\r\n highlightedValue: string | null;\r\n setHighlightedValue: (value: string | null) => void;\r\n}\r\n\r\nconst [ComboboxProvider, useCombobox] =\r\n getStrictContext<ComboboxContextType>(\"ComboboxContext\")\r\n\r\nconst [ComboboxActiveValueProvider, useComboboxActiveValue] =\r\n getStrictContext<ComboboxActiveValueContextType>(\"ComboboxActiveValueContext\")\r\n\r\ntype ComboboxProps<Value, Multiple extends boolean | undefined = false> = ComboboxPrimitive.Root.Props<Value, Multiple> & {\r\n behavior?: \"default\" | \"chip-outside\";\r\n}\r\n\r\nfunction Combobox<Value, Multiple extends boolean | undefined = false>({\r\n behavior = \"default\",\r\n ...props\r\n}: ComboboxProps<Value, Multiple>) {\r\n const [open, setOpen] = useControlledState({\r\n value: props?.open,\r\n defaultValue: props?.defaultOpen,\r\n onChange: props?.onOpenChange,\r\n })\r\n\r\n const [inputValue, setInputValue] = useControlledState({\r\n value: props?.inputValue?.toString(),\r\n defaultValue: props?.defaultInputValue?.toString(),\r\n onChange: props?.onInputValueChange,\r\n })\r\n\r\n const [highlightedValue, setHighlightedValue] = React.useState<string | null>(null)\r\n\r\n React.useEffect(() => {\r\n if (open) {\r\n setHighlightedValue(null)\r\n }\r\n }, [open])\r\n\r\n const handleInputValueChange: ComboboxProps<Value, Multiple>[\"onInputValueChange\"] = (inputValue, eventDetails) => {\r\n // if the input is cleared, we want to cancel the event to prevent resetting the input value.\r\n if (eventDetails.reason === \"input-clear\") return eventDetails.cancel()\r\n\r\n setInputValue(inputValue, eventDetails)\r\n }\r\n\r\n const handleOpenChange: ComboboxProps<Value, Multiple>[\"onOpenChange\"] = (open, eventDetails) => {\r\n const dataSet = (eventDetails.trigger as HTMLElement)?.dataset\r\n\r\n if (behavior === \"chip-outside\") {\r\n if (\r\n eventDetails.reason === \"trigger-press\" &&\r\n dataSet?.slot === \"combobox-clear-input\" &&\r\n !open\r\n ) {\r\n return eventDetails.cancel()\r\n }\r\n\r\n if (eventDetails.reason === \"item-press\") {\r\n return eventDetails.cancel()\r\n }\r\n }\r\n\r\n setOpen(open, eventDetails)\r\n }\r\n\r\n return (\r\n <ComboboxActiveValueProvider value={{ highlightedValue, setHighlightedValue }}>\r\n <ComboboxProvider value={{ open, setOpen, inputValue, setInputValue }}>\r\n <ComboboxPrimitive.Root\r\n data-slot=\"combobox\"\r\n {...props}\r\n onInputValueChange={handleInputValueChange}\r\n onOpenChange={handleOpenChange}\r\n />\r\n </ComboboxProvider>\r\n </ComboboxActiveValueProvider>\r\n )\r\n}\r\n\r\ntype ComboboxTriggerProps = ComboboxPrimitive.Trigger.Props\r\n\r\nfunction ComboboxTrigger(props: ComboboxTriggerProps) {\r\n return <ComboboxPrimitive.Trigger\r\n data-slot=\"combobox-trigger\"\r\n {...props}\r\n />\r\n}\r\n\r\ntype ComboboxLabelProps = ComboboxPrimitive.Label.Props\r\n\r\nfunction ComboboxLabel(props: ComboboxLabelProps) {\r\n return <ComboboxPrimitive.Label\r\n data-slot=\"combobox-label\"\r\n {...props}\r\n />\r\n}\r\n\r\ntype ComboboxInputGroupProps = ComboboxPrimitive.InputGroup.Props\r\n\r\nfunction ComboboxInputGroup(props: ComboboxInputGroupProps) {\r\n return <ComboboxPrimitive.InputGroup\r\n data-slot=\"combobox-input-group\"\r\n {...props}\r\n />\r\n}\r\n\r\ntype ComboboxInputProps = ComboboxPrimitive.Input.Props\r\n\r\nfunction ComboboxInput(props: ComboboxInputProps) {\r\n return <ComboboxPrimitive.Input\r\n data-slot=\"combobox-input\"\r\n {...props}\r\n />\r\n}\r\n\r\ntype ComboboxIconProps = ComboboxPrimitive.Icon.Props\r\n\r\nfunction ComboboxIcon(props: ComboboxIconProps) {\r\n return <ComboboxPrimitive.Icon\r\n data-slot=\"combobox-icon\"\r\n {...props}\r\n />\r\n}\r\n\r\ntype ComboboxClearProps = ComboboxPrimitive.Clear.Props\r\n\r\nfunction ComboboxClear(props: ComboboxClearProps) {\r\n return <ComboboxPrimitive.Clear\r\n data-slot=\"combobox-clear\"\r\n {...props}\r\n />\r\n}\r\n\r\ntype ComboboxValueProps = ComboboxPrimitive.Value.Props\r\n\r\nfunction ComboboxValue(props: ComboboxValueProps) {\r\n return <ComboboxPrimitive.Value\r\n data-slot=\"combobox-value\"\r\n {...props}\r\n />\r\n}\r\n\r\ntype ComboboxChipsProps = ComboboxPrimitive.Chips.Props\r\n\r\nfunction ComboboxChips(props: ComboboxChipsProps) {\r\n return <ComboboxPrimitive.Chips\r\n data-slot=\"combobox-chips\"\r\n {...props}\r\n />\r\n}\r\n\r\ntype ComboboxChipProps = ComboboxPrimitive.Chip.Props\r\n\r\nfunction ComboboxChip(props: ComboboxChipProps) {\r\n return <ComboboxPrimitive.Chip\r\n data-slot=\"combobox-chip\"\r\n {...props}\r\n />\r\n}\r\n\r\ntype ComboboxChipRemoveProps = ComboboxPrimitive.ChipRemove.Props\r\n\r\nfunction ComboboxChipRemove(props: ComboboxChipRemoveProps) {\r\n return <ComboboxPrimitive.ChipRemove\r\n data-slot=\"combobox-chip-remove\"\r\n {...props}\r\n />\r\n}\r\n\r\ntype ComboboxPortalProps = Omit<\r\n ComboboxPrimitive.Portal.Props,\r\n \"keepMounted\"\r\n>\r\n\r\nfunction ComboboxPortal(props: ComboboxPortalProps) {\r\n const { open } = useCombobox()\r\n\r\n return (\r\n <AnimatePresence>\r\n {open && (\r\n <ComboboxPrimitive.Portal\r\n data-slot=\"combobox-portal\"\r\n keepMounted\r\n {...props}\r\n />\r\n )}\r\n </AnimatePresence>\r\n )\r\n}\r\n\r\ntype ComboboxPositionerProps = ComboboxPrimitive.Positioner.Props\r\n\r\nfunction ComboboxPositioner(props: ComboboxPositionerProps) {\r\n return (\r\n <ComboboxPrimitive.Positioner\r\n data-slot=\"combobox-positioner\"\r\n {...props}\r\n />\r\n )\r\n}\r\n\r\ntype ComboboxPopupProps = Omit<\r\n ComboboxPrimitive.Popup.Props,\r\n \"render\"\r\n> &\r\n HTMLMotionProps<\"div\">\r\n\r\nfunction ComboboxPopup({\r\n initialFocus,\r\n finalFocus,\r\n transition = { type: \"spring\", stiffness: 300, damping: 25 },\r\n ...props\r\n}: ComboboxPopupProps) {\r\n return (\r\n <ComboboxPrimitive.Popup\r\n finalFocus={finalFocus}\r\n initialFocus={initialFocus}\r\n render={\r\n <motion.div\r\n key=\"combobox-popup\"\r\n animate={{ opacity: 1, scale: 1 }}\r\n data-slot=\"combobox-popup\"\r\n exit={{ opacity: 0, scale: 0.5 }}\r\n initial={{ opacity: 0, scale: 0.5 }}\r\n transition={transition}\r\n {...props}\r\n />\r\n }\r\n />\r\n )\r\n}\r\n\r\ntype ComboboxBackdropProps = ComboboxPrimitive.Backdrop.Props\r\n\r\nfunction ComboboxBackdrop(props: ComboboxBackdropProps) {\r\n return <ComboboxPrimitive.Backdrop\r\n data-slot=\"combobox-backdrop\"\r\n {...props}\r\n />\r\n}\r\n\r\ntype ComboboxStatusProps = ComboboxPrimitive.Status.Props\r\n\r\nfunction ComboboxStatus(props: ComboboxStatusProps) {\r\n return <ComboboxPrimitive.Status\r\n data-slot=\"combobox-status\"\r\n {...props}\r\n />\r\n}\r\n\r\ntype ComboboxEmptyProps = ComboboxPrimitive.Empty.Props\r\n\r\nfunction ComboboxEmpty(props: ComboboxEmptyProps) {\r\n return <ComboboxPrimitive.Empty\r\n data-slot=\"combobox-empty\"\r\n {...props}\r\n />\r\n}\r\n\r\ntype ComboboxListProps = ComboboxPrimitive.List.Props\r\n\r\nfunction ComboboxList(props: ComboboxListProps) {\r\n return <ComboboxPrimitive.List\r\n data-slot=\"combobox-list\"\r\n {...props}\r\n />\r\n}\r\n\r\ntype ComboboxHighlightProps = Omit<\r\n HighlightProps,\r\n \"controlledItems\" | \"enabled\" | \"hover\"\r\n>\r\n\r\nfunction ComboboxHighlight({\r\n transition = { type: 'spring', stiffness: 350, damping: 35 },\r\n ...props\r\n}: ComboboxHighlightProps) {\r\n const { highlightedValue } = useComboboxActiveValue();\r\n\r\n return (\r\n <Highlight\r\n data-slot=\"combobox-highlight\"\r\n click={false}\r\n controlledItems\r\n transition={transition}\r\n value={highlightedValue}\r\n {...props}\r\n />\r\n );\r\n}\r\n\r\ntype ComboboxHighlightItemProps = HighlightItemProps\r\n\r\nfunction ComboboxHighlightItem(props: ComboboxHighlightItemProps) {\r\n return (\r\n <HighlightItem\r\n data-slot=\"combobox-highlight-item\"\r\n {...props}\r\n />\r\n )\r\n}\r\n\r\ntype ComboboxRowProps = ComboboxPrimitive.Row.Props\r\n\r\nfunction ComboboxRow(props: ComboboxRowProps) {\r\n return <ComboboxPrimitive.Row\r\n data-slot=\"combobox-row\"\r\n {...props}\r\n />\r\n}\r\n\r\ntype ComboboxItemProps = ComboboxPrimitive.Item.Props\r\n\r\nfunction ComboboxItem(props: ComboboxItemProps) {\r\n const { open } = useCombobox()\r\n const { setHighlightedValue } = useComboboxActiveValue()\r\n const hasInteractedRef = React.useRef(false)\r\n\r\n React.useEffect(() => {\r\n if (!open) {\r\n hasInteractedRef.current = false\r\n }\r\n }, [open])\r\n\r\n const [, highlightedRef] = useDataState<HTMLDivElement>(\r\n \"highlighted\",\r\n undefined,\r\n (value) => {\r\n if (value === true && hasInteractedRef.current) {\r\n const el = highlightedRef.current\r\n const v = el?.dataset.value || el?.id || null\r\n if (v) setHighlightedValue(v)\r\n }\r\n },\r\n )\r\n\r\n const handlePointerEnter: ComboboxItemProps[\"onPointerEnter\"] = (e) => {\r\n hasInteractedRef.current = true\r\n const el = highlightedRef.current\r\n const v = el?.dataset.value || el?.id || null\r\n if (v) setHighlightedValue(v)\r\n props.onPointerEnter?.(e)\r\n }\r\n\r\n const handlePointerMove: ComboboxItemProps[\"onPointerMove\"] = (e) => {\r\n if (!hasInteractedRef.current) {\r\n hasInteractedRef.current = true\r\n const el = highlightedRef.current\r\n const v = el?.dataset.value || el?.id || null\r\n if (v) setHighlightedValue(v)\r\n }\r\n props.onPointerMove?.(e)\r\n }\r\n\r\n return <ComboboxPrimitive.Item\r\n ref={highlightedRef}\r\n data-slot=\"combobox-item\"\r\n {...props}\r\n onPointerEnter={handlePointerEnter}\r\n onPointerMove={handlePointerMove}\r\n />\r\n}\r\n\r\ntype ComboboxItemIndicatorProps = ComboboxPrimitive.ItemIndicator.Props\r\n\r\nfunction ComboboxItemIndicator(props: ComboboxItemIndicatorProps) {\r\n return <ComboboxPrimitive.ItemIndicator\r\n data-slot=\"combobox-item-indicator\"\r\n {...props}\r\n />\r\n}\r\n\r\ntype ComboboxSeparatorProps = ComboboxPrimitive.Separator.Props\r\n\r\nfunction ComboboxSeparator(props: ComboboxSeparatorProps) {\r\n return <ComboboxPrimitive.Separator\r\n data-slot=\"combobox-separator\"\r\n {...props}\r\n />\r\n}\r\n\r\ntype ComboboxGroupProps = ComboboxPrimitive.Group.Props\r\n\r\nfunction ComboboxGroup(props: ComboboxGroupProps) {\r\n return <ComboboxPrimitive.Group\r\n data-slot=\"combobox-group\"\r\n {...props}\r\n />\r\n}\r\n\r\ntype ComboboxGroupLabelProps = ComboboxPrimitive.GroupLabel.Props\r\n\r\nfunction ComboboxGroupLabel(props: ComboboxGroupLabelProps) {\r\n return <ComboboxPrimitive.GroupLabel\r\n data-slot=\"combobox-group-label\"\r\n {...props}\r\n />\r\n}\r\n\r\ntype ComboboxCollectionProps = ComboboxPrimitive.Collection.Props\r\n\r\nfunction ComboboxCollection(props: ComboboxCollectionProps) {\r\n return <ComboboxPrimitive.Collection\r\n data-slot=\"combobox-collection\"\r\n {...props}\r\n />\r\n}\r\n\r\ntype ComboboxArrowProps = ComboboxPrimitive.Arrow.Props\r\n\r\nfunction ComboboxArrow(props: ComboboxArrowProps) {\r\n return <ComboboxPrimitive.Arrow\r\n data-slot=\"combobox-arrow\"\r\n {...props}\r\n />\r\n}\r\n\r\nexport {\r\n Combobox,\r\n type ComboboxActiveValueContextType,\r\n ComboboxArrow,\r\n type ComboboxArrowProps,\r\n ComboboxBackdrop,\r\n type ComboboxBackdropProps,\r\n ComboboxChip,\r\n type ComboboxChipProps,\r\n ComboboxChipRemove,\r\n type ComboboxChipRemoveProps,\r\n ComboboxChips,\r\n type ComboboxChipsProps,\r\n ComboboxClear,\r\n type ComboboxClearProps,\r\n ComboboxCollection,\r\n type ComboboxCollectionProps,\r\n type ComboboxContextType,\r\n ComboboxEmpty,\r\n type ComboboxEmptyProps,\r\n ComboboxGroup,\r\n ComboboxGroupLabel,\r\n type ComboboxGroupLabelProps,\r\n type ComboboxGroupProps,\r\n ComboboxHighlight,\r\n ComboboxHighlightItem,\r\n type ComboboxHighlightItemProps,\r\n type ComboboxHighlightProps,\r\n ComboboxIcon,\r\n type ComboboxIconProps,\r\n ComboboxInput,\r\n ComboboxInputGroup,\r\n type ComboboxInputGroupProps,\r\n type ComboboxInputProps,\r\n ComboboxItem,\r\n ComboboxItemIndicator,\r\n type ComboboxItemIndicatorProps,\r\n type ComboboxItemProps,\r\n ComboboxLabel,\r\n type ComboboxLabelProps,\r\n ComboboxList,\r\n type ComboboxListProps,\r\n ComboboxPopup,\r\n type ComboboxPopupProps,\r\n ComboboxPortal,\r\n type ComboboxPortalProps,\r\n ComboboxPositioner,\r\n type ComboboxPositionerProps,\r\n type ComboboxProps,\r\n ComboboxRow,\r\n type ComboboxRowProps,\r\n ComboboxSeparator,\r\n type ComboboxSeparatorProps,\r\n ComboboxStatus,\r\n type ComboboxStatusProps,\r\n ComboboxTrigger,\r\n type ComboboxTriggerProps,\r\n ComboboxValue,\r\n type ComboboxValueProps,\r\n useCombobox,\r\n useComboboxActiveValue,\r\n}"]}
@@ -1,2 +1,2 @@
1
- export{a as ComboboxChipOutside}from'../chunk-KYVYO45Y.js';import'../chunk-PU426AFH.js';import'../chunk-PJYKUR4F.js';import'../chunk-3ASGRRVT.js';import'../chunk-K2BMQ2TN.js';import'../chunk-G6HDEOYZ.js';import'../chunk-K7GGFR7W.js';import'../chunk-EE5QQGMX.js';import'../chunk-AVJU2H5V.js';import'../chunk-77T5FOYW.js';import'../chunk-WWCXHCNU.js';import'../chunk-NBRMYO6B.js';import'../chunk-R4WEEB5H.js';import'../chunk-3QGG35QR.js';import'../chunk-4IAMLCAM.js';import'../chunk-NGSCUYDU.js';import'../chunk-Y6JASO6W.js';import'../chunk-V2D72N26.js';import'../chunk-VNU37GJC.js';import'../chunk-BTVE2DOC.js';import'../chunk-RJ2SAHLO.js';import'../chunk-ZVME3JB3.js';import'../chunk-2TUGHMFW.js';import'../chunk-COJ4DWGS.js';import'../chunk-P6Y4P5QT.js';import'../chunk-RN6CYJKG.js';import'../chunk-TES3PKRE.js';import'../chunk-BX7TD4RH.js';import'../chunk-YKX7SKZA.js';import'../chunk-BRZUHQYB.js';import'../chunk-NKQ3MFRE.js';import'../chunk-UBTCCHVI.js';import'../chunk-VNAMAKPG.js';import'../chunk-EL7P7FN5.js';import'../chunk-JH6RZ3QH.js';import'../chunk-JILBFCPY.js';import'../chunk-TED2PUK6.js';import'../chunk-2XZRLJCN.js';import'../chunk-XG3W7QMP.js';import'../chunk-DCH35MB4.js';import'../chunk-CPRMLK2G.js';import'../chunk-6AKSAK5F.js';import'../chunk-AUYPBFZJ.js';import'../chunk-322IBGFZ.js';import'../chunk-QDCD6MNO.js';import'../chunk-LFQAJN4H.js';import'../chunk-BEJ2SIQP.js';import'../chunk-4PD3DZE6.js';import'../chunk-3RJED3RZ.js';import'../chunk-FKOYTHRM.js';import'../chunk-GJ5F6YBZ.js';import'../chunk-4D2HXXN3.js';import'../chunk-S7ZMBRYT.js';import'../chunk-TIVYCE4X.js';import'../chunk-RCP2CZRA.js';import'../chunk-AGKZWMW5.js';import'../chunk-YWG6HJAX.js';import'../chunk-NHQA6KSU.js';import'../chunk-DDCGJBN7.js';import'../chunk-SGJYHWYM.js';import'../chunk-QYGN3VYS.js';import'../chunk-ADC7WDF4.js';import'../chunk-ICQEZHVV.js';import'../chunk-PSHB2EQA.js';import'../chunk-JVBWH3DS.js';import'../chunk-EHRGIXKH.js';import'../chunk-CQC2IBSD.js';import'../chunk-CKVTRZ3S.js';import'../chunk-YSG3MHTX.js';import'../chunk-ZSYQCIYS.js';import'../chunk-4EYPU56T.js';import'../chunk-2JHFRTOZ.js';import'../chunk-FJTQQ4SC.js';import'../chunk-W2HFGSVH.js';import'../chunk-2GABMQSA.js';import'../chunk-7ECOWHUV.js';import'../chunk-IUPJTP3B.js';import'../chunk-KO4EAVJY.js';import'../chunk-PEHI6LCP.js';import'../chunk-3HUMZKFZ.js';import'../chunk-U5N2WWD3.js';import'../chunk-F2D445K4.js';import'../chunk-NUCPKDK5.js';import'../chunk-2IOTGL4J.js';import'../chunk-NASTZUK6.js';import'../chunk-UKXYDUDY.js';import'../chunk-7YXRTIXL.js';import'../chunk-4NU44YPN.js';import'../chunk-3SQB2TJB.js';import'../chunk-L5AG5DTS.js';import'../chunk-EAF4H4YJ.js';import'../chunk-XH22TH7N.js';import'../chunk-7LF2CJ3L.js';import'../chunk-5ETIHFSE.js';import'../chunk-XJTOYNCA.js';import'../chunk-BZGVXBP3.js';import'../chunk-U6W5PRLZ.js';import'../chunk-JXTOUSXQ.js';import'../chunk-DRYKJQ72.js';import'../chunk-46KQF4UN.js';import'../chunk-556ANF7Z.js';import'../chunk-V5WX4TSN.js';import'../chunk-Z22ALCLD.js';import'../chunk-IHTB4XCP.js';import'../chunk-5KMCPFGM.js';import'../chunk-6I4GG756.js';import'../chunk-4UC2VYI5.js';import'../chunk-UCCQUPMT.js';import'../chunk-TMDCYGCN.js';import'../chunk-PDZ7VJPX.js';import'../chunk-Y72C3IVO.js';import'../chunk-5OQVCPXP.js';import'../chunk-LSW5TIYQ.js';import'../chunk-5YFGDOSH.js';import'../chunk-3NFGWKSO.js';import'../chunk-L73GMVVO.js';import'../chunk-OL4WHG4U.js';import'../chunk-WMUM5NGX.js';import'../chunk-A2U6VIQW.js';import'../chunk-VZMFSH37.js';import'../chunk-ECVIBKDN.js';import'../chunk-MPD36YFP.js';import'../chunk-Z5GMQ477.js';import'../chunk-6FL6AY4D.js';import'../chunk-3376QA4Q.js';import'../chunk-ZVCIT3QN.js';import'../chunk-UACQQO3I.js';import'../chunk-IHLMMP5Q.js';import'../chunk-LN37WPV7.js';import'../chunk-5NAO3POG.js';import'../chunk-JWAU7A2Q.js';import'../chunk-YFCBMUPK.js';import'../chunk-SLLTAQ22.js';import'../chunk-TORDOY73.js';import'../chunk-CAK44O3E.js';import'../chunk-MTWFWU3I.js';import'../chunk-NREZRMEX.js';import'../chunk-3SKJUZ5H.js';import'../chunk-EDXV6BE6.js';import'../chunk-HM2QBLIL.js';import'../chunk-6IKHZM3V.js';import'../chunk-2FGDZ6WR.js';import'../chunk-KHCZBVOK.js';import'../chunk-2TO4PAQM.js';import'../chunk-HSTY767P.js';import'../chunk-BKWINCGB.js';import'../chunk-VOTCMLJE.js';import'../chunk-ZKFUHFBC.js';import'../chunk-CEYIRTZQ.js';import'../chunk-HL32HBMO.js';import'../chunk-K7EZKYBC.js';import'../chunk-FIXJ55FT.js';import'../chunk-GDU3OVET.js';import'../chunk-3EU5QGAN.js';import'../chunk-6EMNBLEM.js';import'../chunk-4CBZOTZR.js';import'../chunk-XY4CWRWG.js';import'../chunk-2ZG2WNSI.js';import'../chunk-FBKS63GQ.js';import'../chunk-NUGYUIN6.js';import'../chunk-6KFTNJLJ.js';import'../chunk-C7GZULSV.js';import'../chunk-GGD2FGWK.js';import'../chunk-AI5FYYCO.js';import'../chunk-UCQKCAYY.js';import'../chunk-SDKXW3R4.js';import'../chunk-EJ5XTT5H.js';import'../chunk-6FEBVO2P.js';import'../chunk-JCFEHT75.js';import'../chunk-5I545S2U.js';import'../chunk-V6YCCR75.js';import'../chunk-NYSABCPP.js';import'../chunk-M5IVXDZ4.js';import'../chunk-SCPA3CM2.js';import'../chunk-2PQUW476.js';import'../chunk-HEKI5WR2.js';import'../chunk-TTZ2UE5L.js';import'../chunk-JZJHLBOV.js';import'../chunk-L6ZGEGUV.js';import'../chunk-DQSDZXTX.js';import'../chunk-R33XCP5H.js';import'../chunk-EERDL5XC.js';import'../chunk-GE3TPDYX.js';import'../chunk-RMGJAA2L.js';import'../chunk-Z7IOYXOK.js';import'../chunk-X2VRJLPR.js';import'../chunk-KPA4J3CC.js';import'../chunk-4JEHGT2R.js';import'../chunk-QNEJRZ4U.js';import'../chunk-ZWZZVZOP.js';import'../chunk-VLSPFIZU.js';import'../chunk-BGSHHAM2.js';import'../chunk-SR76VRAC.js';import'../chunk-4GMRFP6B.js';import'../chunk-F5FFAJ6B.js';import'../chunk-5FALHJEA.js';import'../chunk-ICHHISXQ.js';import'../chunk-IRRA2OTH.js';import'../chunk-QM2KF35E.js';import'../chunk-WI5V5Z76.js';import'../chunk-PCUUUW7T.js';import'../chunk-FELUIC3Z.js';import'../chunk-BKBLZKQ7.js';import'../chunk-3Q72MLBZ.js';import'../chunk-U27RVBYT.js';import'../chunk-SX54FORI.js';import'../chunk-XOIZGRZ6.js';import'../chunk-EY3W3WZX.js';import'../chunk-X2J6MJ6Y.js';import'../chunk-KCSDB6W4.js';import'../chunk-3N22A4KQ.js';import'../chunk-F7KNYOYR.js';import'../chunk-XNDNAHCC.js';import'../chunk-UESMX3LA.js';import'../chunk-33MUUBSB.js';import'../chunk-VK62KNI7.js';import'../chunk-OREIXD3L.js';import'../chunk-EYH5SNDK.js';import'../chunk-RUTYHOHT.js';import'../chunk-4FH2LYOC.js';import'../chunk-LYV7R7DB.js';import'../chunk-EKS6U6XR.js';import'../chunk-5LAJMBKN.js';import'../chunk-ZEONZS5N.js';import'../chunk-75BEGXGF.js';import'../chunk-CP6DGMEP.js';import'../chunk-7TNSQNT7.js';import'../chunk-YTN4DVWB.js';import'../chunk-UVYYUEHO.js';import'../chunk-FFYGBVMN.js';import'../chunk-HJJ2VCYO.js';import'../chunk-KZMULPFK.js';import'../chunk-X5TJ3Z24.js';import'../chunk-J64EBQ23.js';import'../chunk-PFSN7DQX.js';import'../chunk-Y2R7ZZYY.js';import'../chunk-ZPPUEK2E.js';import'../chunk-GOXCPAUM.js';import'../chunk-6L6HTR6E.js';import'../chunk-4VQUQ3NT.js';import'../chunk-MHRHCLIU.js';import'../chunk-V4VKQ2QF.js';import'../chunk-NVVCGBML.js';import'../chunk-ZTCAXM77.js';import'../chunk-TJNOFRWB.js';import'../chunk-Y2TTBBRP.js';import'../chunk-NYQJHUKD.js';import'../chunk-6NPT5BJ7.js';import'../chunk-MYGQXM66.js';import'../chunk-ZY5FUK37.js';import'../chunk-DNIYW2WB.js';import'../chunk-DVXIIACM.js';import'../chunk-DEFVXH3J.js';import'../chunk-Y56EKYRN.js';import'../chunk-IW6VX3I7.js';import'../chunk-QWCYJC3T.js';import'../chunk-4S6MFDRP.js';import'../chunk-OE7VPOT4.js';import'../chunk-LHVBJHQZ.js';import'../chunk-2V46QEC7.js';import'../chunk-I2K2QQOA.js';import'../chunk-ZPKZLDR2.js';import'../chunk-EBXTHJF5.js';import'../chunk-ZXSIHT6V.js';import'../chunk-TJFA5O6Z.js';import'../chunk-KCCBSGT3.js';import'../chunk-QWFECUYL.js';import'../chunk-IPTGAZ37.js';import'../chunk-YWDIILO5.js';import'../chunk-WVOOXXON.js';import'../chunk-YRO736RI.js';import'../chunk-QBNIE5KZ.js';import'../chunk-4WDDWMBW.js';import'../chunk-24ZESL25.js';import'../chunk-QH67MZKV.js';import'../chunk-O5CSN63E.js';import'../chunk-ZQWDYX2E.js';import'../chunk-JUM5W2FF.js';import'../chunk-MOH4SNJJ.js';import'../chunk-YFZPYFTS.js';import'../chunk-JSE2CMYN.js';import'../chunk-WSMQZH5E.js';import'../chunk-CEY3P2QK.js';import'../chunk-E6ZLTD7K.js';import'../chunk-OEEQX3JR.js';import'../chunk-ZT35KBQN.js';import'../chunk-T7HRX3EC.js';import'../chunk-C4ELFIL6.js';import'../chunk-UJRREWOA.js';import'../chunk-3KSOBU4X.js';import'../chunk-ZMNFPSA3.js';import'../chunk-6C2TVGCV.js';import'../chunk-XQ5APSL5.js';import'../chunk-6UJXNDLR.js';import'../chunk-HG6NCRSN.js';import'../chunk-4TNLRALG.js';import'../chunk-WYRCNM2M.js';import'../chunk-EYKDAQEG.js';import'../chunk-K3RU27VR.js';import'../chunk-CFKH5BM3.js';import'../chunk-GYYQR6WJ.js';import'../chunk-PEAZKA47.js';import'../chunk-XU65MB53.js';import'../chunk-JUY2JZGK.js';import'../chunk-CHPQMJNP.js';import'../chunk-CJSVB5XT.js';import'../chunk-XFY6L3B6.js';import'../chunk-BNOMWF6G.js';import'../chunk-NTXAFTKR.js';import'../chunk-MFV4KTCM.js';import'../chunk-I56A4HTS.js';import'../chunk-BM65PK4H.js';import'../chunk-3Q67KQWC.js';import'../chunk-A4G246BH.js';import'../chunk-WUGIELON.js';import'../chunk-JLZNZFOO.js';import'../chunk-NY57FUA3.js';import'../chunk-RBLL355H.js';import'../chunk-YZNI5HEX.js';import'../chunk-Z67QQMOX.js';import'../chunk-5YDJTHDG.js';//# sourceMappingURL=combobox-chip-outside.js.map
1
+ export{a as ComboboxChipOutside}from'../chunk-LTSUNU7E.js';import'../chunk-PU426AFH.js';import'../chunk-PJYKUR4F.js';import'../chunk-3ASGRRVT.js';import'../chunk-K2BMQ2TN.js';import'../chunk-G6HDEOYZ.js';import'../chunk-K7GGFR7W.js';import'../chunk-EE5QQGMX.js';import'../chunk-AVJU2H5V.js';import'../chunk-77T5FOYW.js';import'../chunk-WWCXHCNU.js';import'../chunk-3C5RPQNM.js';import'../chunk-F2QUDOBO.js';import'../chunk-3QGG35QR.js';import'../chunk-4IAMLCAM.js';import'../chunk-NGSCUYDU.js';import'../chunk-Y6JASO6W.js';import'../chunk-V2D72N26.js';import'../chunk-VNU37GJC.js';import'../chunk-BTVE2DOC.js';import'../chunk-RJ2SAHLO.js';import'../chunk-ZVME3JB3.js';import'../chunk-2TUGHMFW.js';import'../chunk-2RHSXF3X.js';import'../chunk-DX767LBV.js';import'../chunk-RN6CYJKG.js';import'../chunk-TES3PKRE.js';import'../chunk-BX7TD4RH.js';import'../chunk-YKX7SKZA.js';import'../chunk-BRZUHQYB.js';import'../chunk-NKQ3MFRE.js';import'../chunk-UBTCCHVI.js';import'../chunk-VNAMAKPG.js';import'../chunk-GNQKITNA.js';import'../chunk-JH6RZ3QH.js';import'../chunk-ZNZVX4PT.js';import'../chunk-TED2PUK6.js';import'../chunk-2XZRLJCN.js';import'../chunk-XG3W7QMP.js';import'../chunk-DCH35MB4.js';import'../chunk-NWX5WD7D.js';import'../chunk-6AKSAK5F.js';import'../chunk-AUYPBFZJ.js';import'../chunk-322IBGFZ.js';import'../chunk-QDCD6MNO.js';import'../chunk-LFQAJN4H.js';import'../chunk-BEJ2SIQP.js';import'../chunk-4PD3DZE6.js';import'../chunk-3RJED3RZ.js';import'../chunk-FKOYTHRM.js';import'../chunk-GJ5F6YBZ.js';import'../chunk-4D2HXXN3.js';import'../chunk-S7ZMBRYT.js';import'../chunk-TIVYCE4X.js';import'../chunk-RCP2CZRA.js';import'../chunk-AGKZWMW5.js';import'../chunk-YWG6HJAX.js';import'../chunk-NHQA6KSU.js';import'../chunk-DDCGJBN7.js';import'../chunk-SGJYHWYM.js';import'../chunk-QYGN3VYS.js';import'../chunk-ADC7WDF4.js';import'../chunk-ICQEZHVV.js';import'../chunk-PSHB2EQA.js';import'../chunk-JVBWH3DS.js';import'../chunk-EHRGIXKH.js';import'../chunk-CQC2IBSD.js';import'../chunk-CKVTRZ3S.js';import'../chunk-YSG3MHTX.js';import'../chunk-ZSYQCIYS.js';import'../chunk-4EYPU56T.js';import'../chunk-2JHFRTOZ.js';import'../chunk-FJTQQ4SC.js';import'../chunk-W2HFGSVH.js';import'../chunk-2GABMQSA.js';import'../chunk-7ECOWHUV.js';import'../chunk-IUPJTP3B.js';import'../chunk-KO4EAVJY.js';import'../chunk-PEHI6LCP.js';import'../chunk-3HUMZKFZ.js';import'../chunk-U5N2WWD3.js';import'../chunk-F2D445K4.js';import'../chunk-NUCPKDK5.js';import'../chunk-2IOTGL4J.js';import'../chunk-NASTZUK6.js';import'../chunk-UKXYDUDY.js';import'../chunk-7YXRTIXL.js';import'../chunk-4NU44YPN.js';import'../chunk-3SQB2TJB.js';import'../chunk-L5AG5DTS.js';import'../chunk-EAF4H4YJ.js';import'../chunk-XH22TH7N.js';import'../chunk-7LF2CJ3L.js';import'../chunk-5ETIHFSE.js';import'../chunk-XJTOYNCA.js';import'../chunk-BZGVXBP3.js';import'../chunk-U6W5PRLZ.js';import'../chunk-JXTOUSXQ.js';import'../chunk-DRYKJQ72.js';import'../chunk-46KQF4UN.js';import'../chunk-556ANF7Z.js';import'../chunk-V5WX4TSN.js';import'../chunk-Z22ALCLD.js';import'../chunk-IHTB4XCP.js';import'../chunk-5KMCPFGM.js';import'../chunk-6I4GG756.js';import'../chunk-4UC2VYI5.js';import'../chunk-UCCQUPMT.js';import'../chunk-TMDCYGCN.js';import'../chunk-PDZ7VJPX.js';import'../chunk-Y72C3IVO.js';import'../chunk-5OQVCPXP.js';import'../chunk-LSW5TIYQ.js';import'../chunk-5YFGDOSH.js';import'../chunk-3NFGWKSO.js';import'../chunk-L73GMVVO.js';import'../chunk-OL4WHG4U.js';import'../chunk-WMUM5NGX.js';import'../chunk-A2U6VIQW.js';import'../chunk-VZMFSH37.js';import'../chunk-ECVIBKDN.js';import'../chunk-MPD36YFP.js';import'../chunk-Z5GMQ477.js';import'../chunk-6FL6AY4D.js';import'../chunk-3376QA4Q.js';import'../chunk-ZVCIT3QN.js';import'../chunk-UACQQO3I.js';import'../chunk-IHLMMP5Q.js';import'../chunk-LN37WPV7.js';import'../chunk-5NAO3POG.js';import'../chunk-JWAU7A2Q.js';import'../chunk-YFCBMUPK.js';import'../chunk-SLLTAQ22.js';import'../chunk-TORDOY73.js';import'../chunk-CAK44O3E.js';import'../chunk-MTWFWU3I.js';import'../chunk-NREZRMEX.js';import'../chunk-3SKJUZ5H.js';import'../chunk-EDXV6BE6.js';import'../chunk-HM2QBLIL.js';import'../chunk-6IKHZM3V.js';import'../chunk-2FGDZ6WR.js';import'../chunk-KHCZBVOK.js';import'../chunk-2TO4PAQM.js';import'../chunk-HSTY767P.js';import'../chunk-BKWINCGB.js';import'../chunk-VOTCMLJE.js';import'../chunk-ZKFUHFBC.js';import'../chunk-CEYIRTZQ.js';import'../chunk-HL32HBMO.js';import'../chunk-K7EZKYBC.js';import'../chunk-FIXJ55FT.js';import'../chunk-GDU3OVET.js';import'../chunk-3EU5QGAN.js';import'../chunk-6EMNBLEM.js';import'../chunk-4CBZOTZR.js';import'../chunk-XY4CWRWG.js';import'../chunk-2ZG2WNSI.js';import'../chunk-FBKS63GQ.js';import'../chunk-NUGYUIN6.js';import'../chunk-6KFTNJLJ.js';import'../chunk-C7GZULSV.js';import'../chunk-GGD2FGWK.js';import'../chunk-AI5FYYCO.js';import'../chunk-UCQKCAYY.js';import'../chunk-SDKXW3R4.js';import'../chunk-EJ5XTT5H.js';import'../chunk-6FEBVO2P.js';import'../chunk-JCFEHT75.js';import'../chunk-5I545S2U.js';import'../chunk-V6YCCR75.js';import'../chunk-NYSABCPP.js';import'../chunk-M5IVXDZ4.js';import'../chunk-SCPA3CM2.js';import'../chunk-2PQUW476.js';import'../chunk-HEKI5WR2.js';import'../chunk-TTZ2UE5L.js';import'../chunk-JZJHLBOV.js';import'../chunk-L6ZGEGUV.js';import'../chunk-DQSDZXTX.js';import'../chunk-R33XCP5H.js';import'../chunk-EERDL5XC.js';import'../chunk-GE3TPDYX.js';import'../chunk-RMGJAA2L.js';import'../chunk-Z7IOYXOK.js';import'../chunk-X2VRJLPR.js';import'../chunk-KPA4J3CC.js';import'../chunk-4JEHGT2R.js';import'../chunk-QNEJRZ4U.js';import'../chunk-ZWZZVZOP.js';import'../chunk-VLSPFIZU.js';import'../chunk-BGSHHAM2.js';import'../chunk-SR76VRAC.js';import'../chunk-4GMRFP6B.js';import'../chunk-F5FFAJ6B.js';import'../chunk-5FALHJEA.js';import'../chunk-ICHHISXQ.js';import'../chunk-IRRA2OTH.js';import'../chunk-QM2KF35E.js';import'../chunk-WI5V5Z76.js';import'../chunk-PCUUUW7T.js';import'../chunk-FELUIC3Z.js';import'../chunk-BKBLZKQ7.js';import'../chunk-3Q72MLBZ.js';import'../chunk-U27RVBYT.js';import'../chunk-SX54FORI.js';import'../chunk-XOIZGRZ6.js';import'../chunk-EY3W3WZX.js';import'../chunk-X2J6MJ6Y.js';import'../chunk-KCSDB6W4.js';import'../chunk-3N22A4KQ.js';import'../chunk-F7KNYOYR.js';import'../chunk-XNDNAHCC.js';import'../chunk-UESMX3LA.js';import'../chunk-33MUUBSB.js';import'../chunk-VK62KNI7.js';import'../chunk-OREIXD3L.js';import'../chunk-EYH5SNDK.js';import'../chunk-RUTYHOHT.js';import'../chunk-4FH2LYOC.js';import'../chunk-LYV7R7DB.js';import'../chunk-EKS6U6XR.js';import'../chunk-5LAJMBKN.js';import'../chunk-ZEONZS5N.js';import'../chunk-75BEGXGF.js';import'../chunk-CP6DGMEP.js';import'../chunk-7TNSQNT7.js';import'../chunk-YTN4DVWB.js';import'../chunk-UVYYUEHO.js';import'../chunk-FFYGBVMN.js';import'../chunk-HJJ2VCYO.js';import'../chunk-KZMULPFK.js';import'../chunk-X5TJ3Z24.js';import'../chunk-J64EBQ23.js';import'../chunk-PFSN7DQX.js';import'../chunk-Y2R7ZZYY.js';import'../chunk-ZPPUEK2E.js';import'../chunk-GOXCPAUM.js';import'../chunk-6L6HTR6E.js';import'../chunk-4VQUQ3NT.js';import'../chunk-MHRHCLIU.js';import'../chunk-V4VKQ2QF.js';import'../chunk-NVVCGBML.js';import'../chunk-ZTCAXM77.js';import'../chunk-TJNOFRWB.js';import'../chunk-Y2TTBBRP.js';import'../chunk-NYQJHUKD.js';import'../chunk-6NPT5BJ7.js';import'../chunk-MYGQXM66.js';import'../chunk-ZY5FUK37.js';import'../chunk-DNIYW2WB.js';import'../chunk-DVXIIACM.js';import'../chunk-DEFVXH3J.js';import'../chunk-Y56EKYRN.js';import'../chunk-IW6VX3I7.js';import'../chunk-QWCYJC3T.js';import'../chunk-4S6MFDRP.js';import'../chunk-OE7VPOT4.js';import'../chunk-LHVBJHQZ.js';import'../chunk-2V46QEC7.js';import'../chunk-I2K2QQOA.js';import'../chunk-ZPKZLDR2.js';import'../chunk-EBXTHJF5.js';import'../chunk-ZXSIHT6V.js';import'../chunk-TJFA5O6Z.js';import'../chunk-KCCBSGT3.js';import'../chunk-QWFECUYL.js';import'../chunk-IPTGAZ37.js';import'../chunk-YWDIILO5.js';import'../chunk-WVOOXXON.js';import'../chunk-YRO736RI.js';import'../chunk-QBNIE5KZ.js';import'../chunk-4WDDWMBW.js';import'../chunk-24ZESL25.js';import'../chunk-QH67MZKV.js';import'../chunk-O5CSN63E.js';import'../chunk-ZQWDYX2E.js';import'../chunk-JUM5W2FF.js';import'../chunk-MOH4SNJJ.js';import'../chunk-YFZPYFTS.js';import'../chunk-JSE2CMYN.js';import'../chunk-WSMQZH5E.js';import'../chunk-CEY3P2QK.js';import'../chunk-E6ZLTD7K.js';import'../chunk-OEEQX3JR.js';import'../chunk-ZT35KBQN.js';import'../chunk-T7HRX3EC.js';import'../chunk-C4ELFIL6.js';import'../chunk-UJRREWOA.js';import'../chunk-3KSOBU4X.js';import'../chunk-ZMNFPSA3.js';import'../chunk-6C2TVGCV.js';import'../chunk-XQ5APSL5.js';import'../chunk-6UJXNDLR.js';import'../chunk-HG6NCRSN.js';import'../chunk-4TNLRALG.js';import'../chunk-WYRCNM2M.js';import'../chunk-EYKDAQEG.js';import'../chunk-K3RU27VR.js';import'../chunk-CFKH5BM3.js';import'../chunk-GYYQR6WJ.js';import'../chunk-PEAZKA47.js';import'../chunk-XU65MB53.js';import'../chunk-JUY2JZGK.js';import'../chunk-CHPQMJNP.js';import'../chunk-CJSVB5XT.js';import'../chunk-XFY6L3B6.js';import'../chunk-BNOMWF6G.js';import'../chunk-NTXAFTKR.js';import'../chunk-MFV4KTCM.js';import'../chunk-I56A4HTS.js';import'../chunk-BM65PK4H.js';import'../chunk-3Q67KQWC.js';import'../chunk-A4G246BH.js';import'../chunk-WUGIELON.js';import'../chunk-JLZNZFOO.js';import'../chunk-NY57FUA3.js';import'../chunk-RBLL355H.js';import'../chunk-J6CW2XBL.js';import'../chunk-VY735IE2.js';import'../chunk-L2QE2YOM.js';//# sourceMappingURL=combobox-chip-outside.js.map
2
2
  //# sourceMappingURL=combobox-chip-outside.js.map