@g4rcez/components 3.0.2 → 4.0.0

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 (145) hide show
  1. package/dist/CaretDown.es-Cj7klWI3.js +33 -0
  2. package/dist/CaretDown.es-Cj7klWI3.js.map +1 -0
  3. package/dist/CaretRight.es-0-M8D9y8.js +33 -0
  4. package/dist/CaretRight.es-0-M8D9y8.js.map +1 -0
  5. package/dist/CheckCircle.es-C6QWLfk_.js +33 -0
  6. package/dist/CheckCircle.es-C6QWLfk_.js.map +1 -0
  7. package/dist/File.es-CA-vuPED.js +33 -0
  8. package/dist/File.es-CA-vuPED.js.map +1 -0
  9. package/dist/IconBase.es-DJ1oCtpo.js +50 -0
  10. package/dist/IconBase.es-DJ1oCtpo.js.map +1 -0
  11. package/dist/Info.es-CrZKs4q4.js +33 -0
  12. package/dist/Info.es-CrZKs4q4.js.map +1 -0
  13. package/dist/MotionConfigContext-C7MqlSdv.js.map +1 -1
  14. package/dist/Warning.es-D_eI6tLe.js +39 -0
  15. package/dist/Warning.es-D_eI6tLe.js.map +1 -0
  16. package/dist/X.es-BJ1O93El.js +39 -0
  17. package/dist/X.es-BJ1O93El.js.map +1 -0
  18. package/dist/ai/docs/Alert.md +1 -1
  19. package/dist/ai/docs/AnimatedList.md +3 -3
  20. package/dist/ai/docs/Button.md +1 -1
  21. package/dist/ai/docs/CommandPalette.md +7 -7
  22. package/dist/ai/docs/Dropdown.md +4 -4
  23. package/dist/ai/docs/Empty.md +9 -9
  24. package/dist/ai/docs/Expand.md +1 -1
  25. package/dist/ai/docs/FileUpload.md +2 -2
  26. package/dist/ai/docs/Input.md +2 -2
  27. package/dist/ai/docs/InputField.md +2 -2
  28. package/dist/ai/docs/List.md +3 -3
  29. package/dist/ai/docs/Menu.md +3 -3
  30. package/dist/ai/docs/MultiSelect.md +1 -1
  31. package/dist/ai/docs/PageCalendar.md +1 -1
  32. package/dist/ai/docs/Select.md +1 -1
  33. package/dist/ai/docs/Slot.md +1 -1
  34. package/dist/ai/docs/Stats.md +11 -11
  35. package/dist/ai/docs/Table.md +1 -1
  36. package/dist/ai/docs/Tag.md +2 -2
  37. package/dist/ai/docs/Timeline.md +5 -5
  38. package/dist/ai/docs/Toolbar.md +2 -2
  39. package/dist/ai/docs/Tooltip.md +3 -3
  40. package/dist/ai/docs/TransferList.md +2 -2
  41. package/dist/{autocomplete-Boida9R7.js → autocomplete-Cn9Z2hLq.js} +48 -48
  42. package/dist/autocomplete-Cn9Z2hLq.js.map +1 -0
  43. package/dist/{calendar-BswV66Nx.js → calendar-B5lSd0ID.js} +599 -571
  44. package/dist/calendar-B5lSd0ID.js.map +1 -0
  45. package/dist/components/display/alert.js +18 -18
  46. package/dist/components/display/alert.js.map +1 -1
  47. package/dist/components/display/calendar.js +4 -4
  48. package/dist/components/display/card.d.ts +2 -2
  49. package/dist/components/display/card.d.ts.map +1 -1
  50. package/dist/components/display/card.js +6 -6
  51. package/dist/components/display/card.js.map +1 -1
  52. package/dist/components/display/empty.d.ts +2 -2
  53. package/dist/components/display/empty.d.ts.map +1 -1
  54. package/dist/components/display/list.js +15 -15
  55. package/dist/components/display/list.js.map +1 -1
  56. package/dist/components/display/notifications.js +5 -5
  57. package/dist/components/display/tabs.js +1 -1
  58. package/dist/components/floating/command-palette.d.ts +3 -3
  59. package/dist/components/floating/command-palette.d.ts.map +1 -1
  60. package/dist/components/floating/dropdown.js +1 -1
  61. package/dist/components/floating/expand.js +1 -1
  62. package/dist/components/floating/menu.d.ts +2 -2
  63. package/dist/components/floating/menu.d.ts.map +1 -1
  64. package/dist/components/floating/menu.js +31 -31
  65. package/dist/components/floating/menu.js.map +1 -1
  66. package/dist/components/floating/modal.js +35 -35
  67. package/dist/components/floating/modal.js.map +1 -1
  68. package/dist/components/floating/tooltip.js +1 -1
  69. package/dist/components/form/autocomplete.js +5 -5
  70. package/dist/components/form/date-picker.js +3 -3
  71. package/dist/components/form/file-upload.d.ts.map +1 -1
  72. package/dist/components/form/file-upload.js +3 -3
  73. package/dist/components/form/input-field.d.ts.map +1 -1
  74. package/dist/components/form/input.js +1 -1
  75. package/dist/components/form/select.js +29 -29
  76. package/dist/components/form/select.js.map +1 -1
  77. package/dist/components/form/task-list.js.map +1 -1
  78. package/dist/components/form/transfer-list.js +15 -15
  79. package/dist/components/form/transfer-list.js.map +1 -1
  80. package/dist/components/page-calendar/calendar-header.d.ts.map +1 -1
  81. package/dist/components/table/table.js +3 -3
  82. package/dist/config/context.d.ts +2 -0
  83. package/dist/config/context.d.ts.map +1 -1
  84. package/dist/context-BFXNJVn2.js.map +1 -1
  85. package/dist/{date-picker-BxPTdZPy.js → date-picker-DwNo22lx.js} +316 -288
  86. package/dist/date-picker-DwNo22lx.js.map +1 -0
  87. package/dist/{file-upload-BB6BdGcE.js → file-upload-Brf2NkLr.js} +1103 -976
  88. package/dist/file-upload-Brf2NkLr.js.map +1 -0
  89. package/dist/{floating-ui.react-DycKASR0.js → floating-ui.react-QNHG9W4N.js} +205 -205
  90. package/dist/{floating-ui.react-DycKASR0.js.map → floating-ui.react-QNHG9W4N.js.map} +1 -1
  91. package/dist/hooks/use-components-provider.d.ts.map +1 -1
  92. package/dist/index-0YMC-_Lt.js.map +1 -1
  93. package/dist/index-BelDtX5M.js +1821 -0
  94. package/dist/index-BelDtX5M.js.map +1 -0
  95. package/dist/{index-BtlhELJ3.js → index-C-PuFUZi.js} +136 -136
  96. package/dist/index-C-PuFUZi.js.map +1 -0
  97. package/dist/index-Z-fZHxfJ.js +335 -0
  98. package/dist/index-Z-fZHxfJ.js.map +1 -0
  99. package/dist/index-t1qLJTt5.js.map +1 -1
  100. package/dist/index.js +2404 -2328
  101. package/dist/index.js.map +1 -1
  102. package/dist/{input-CoJoHIhd.js → input-CrGrSnUt.js} +2 -2
  103. package/dist/{input-CoJoHIhd.js.map → input-CrGrSnUt.js.map} +1 -1
  104. package/dist/input-field-5vYcz5tT.js +166 -0
  105. package/dist/input-field-5vYcz5tT.js.map +1 -0
  106. package/dist/notifications-cUdVPs-B.js +2786 -0
  107. package/dist/notifications-cUdVPs-B.js.map +1 -0
  108. package/dist/proxy-BZcQiBrp.js.map +1 -1
  109. package/dist/{slot-CQW8ZzBb.js → slot-CRyweuj0.js} +5 -5
  110. package/dist/{slot-CQW8ZzBb.js.map → slot-CRyweuj0.js.map} +1 -1
  111. package/dist/{tabs-ccIA7vMo.js → tabs-S00a8qq8.js} +5 -5
  112. package/dist/{tabs-ccIA7vMo.js.map → tabs-S00a8qq8.js.map} +1 -1
  113. package/dist/use-motion-value-eGwNuWuw.js.map +1 -1
  114. package/package.json +2 -2
  115. package/dist/autocomplete-Boida9R7.js.map +0 -1
  116. package/dist/calendar-BswV66Nx.js.map +0 -1
  117. package/dist/chevron-down-BBFYYzZq.js +0 -6
  118. package/dist/chevron-down-BBFYYzZq.js.map +0 -1
  119. package/dist/chevron-right-DvXGOiS_.js +0 -6
  120. package/dist/chevron-right-DvXGOiS_.js.map +0 -1
  121. package/dist/circle-check-big-3M5lhTxx.js +0 -9
  122. package/dist/circle-check-big-3M5lhTxx.js.map +0 -1
  123. package/dist/createLucideIcon-CP-mMPfa.js +0 -76
  124. package/dist/createLucideIcon-CP-mMPfa.js.map +0 -1
  125. package/dist/date-picker-BxPTdZPy.js.map +0 -1
  126. package/dist/file-CBCP85VI.js +0 -15
  127. package/dist/file-CBCP85VI.js.map +0 -1
  128. package/dist/file-upload-BB6BdGcE.js.map +0 -1
  129. package/dist/index-BJ1ayTam.js +0 -126
  130. package/dist/index-BJ1ayTam.js.map +0 -1
  131. package/dist/index-BtlhELJ3.js.map +0 -1
  132. package/dist/index-ChfR6F8d.js +0 -1590
  133. package/dist/index-ChfR6F8d.js.map +0 -1
  134. package/dist/index-DE4shK8D.js +0 -215
  135. package/dist/index-DE4shK8D.js.map +0 -1
  136. package/dist/info-N5jWZg2A.js +0 -10
  137. package/dist/info-N5jWZg2A.js.map +0 -1
  138. package/dist/input-field-DTeIrwpK.js +0 -146
  139. package/dist/input-field-DTeIrwpK.js.map +0 -1
  140. package/dist/notifications-NPuFDsBp.js +0 -2550
  141. package/dist/notifications-NPuFDsBp.js.map +0 -1
  142. package/dist/triangle-alert-CHMhQ6yd.js +0 -16
  143. package/dist/triangle-alert-CHMhQ6yd.js.map +0 -1
  144. package/dist/x-B9bYxG31.js +0 -9
  145. package/dist/x-B9bYxG31.js.map +0 -1
@@ -1 +1 @@
1
- {"version":3,"file":"modal.js","sources":["../../../src/hooks/use-media-query.ts","../../../src/hooks/use-floating-ref.ts","../../../src/components/floating/modal.tsx"],"sourcesContent":["import { useLayoutEffect, useState } from \"react\";\nimport { isSsr } from \"../lib/fns\";\n\nconst getMatches = (query: string, defaultValue: boolean): boolean => {\n if (isSsr()) {\n return defaultValue;\n }\n return window.matchMedia(query).matches;\n};\n\nexport const useMediaQuery = (query: string, defaultValue: boolean = true) => {\n const [matches, setMatches] = useState(defaultValue);\n\n useLayoutEffect(() => {\n const matchMedia = window.matchMedia(query);\n const onChange = () => setMatches(getMatches(query, defaultValue));\n onChange();\n if (matchMedia.addListener) {\n matchMedia.addListener(onChange);\n return () => {\n return matchMedia.removeListener ? matchMedia.removeListener(onChange) : undefined;\n };\n }\n matchMedia.addEventListener(\"change\", onChange);\n return () => matchMedia.removeEventListener(\"change\", onChange);\n }, [query]);\n\n return matches;\n};\n","import { useContext } from \"react\";\nimport { Context } from \"../config/context\";\n\nexport const useFloatingRef = () => {\n const ctx = useContext(Context);\n return ctx.floatingRef ?? undefined;\n};\n","\"use client\";\nimport {\n FloatingFocusManager,\n FloatingOverlay,\n FloatingPortal,\n useClick,\n useDismiss,\n useFloating,\n useInteractions,\n useRole,\n type ElementProps,\n} from \"@floating-ui/react\";\nimport { cva } from \"class-variance-authority\";\nimport { XIcon } from \"lucide-react\";\nimport {\n AnimatePresence,\n HTMLMotionProps,\n motion,\n MotionConfig,\n MotionValue,\n PanInfo,\n TargetAndTransition,\n useMotionValue,\n animate,\n} from \"motion/react\";\nimport { Slot } from \"../core/slot\";\nimport React, {\n ForwardedRef,\n forwardRef,\n Fragment,\n PropsWithChildren,\n useEffect,\n useId,\n useImperativeHandle,\n useRef,\n useState,\n useCallback,\n} from \"react\";\nimport { useMediaQuery } from \"../../hooks/use-media-query\";\nimport { css, mergeRefs } from \"../../lib/dom\";\nimport { Label, Nil, Override } from \"../../types\";\nimport { useFloatingRef } from \"../../hooks/use-floating-ref\";\nimport { Button, ButtonProps } from \"../core/button\";\n\ntype AnimationLabels = \"initial\" | \"enter\" | \"exit\";\n\nconst ConfirmContext = React.createContext<(options: ConfirmOptions) => Promise<boolean>>(async () => false);\n\nexport const useConfirm = () => React.useContext(ConfirmContext);\n\nexport type ModalType = \"dialog\" | \"drawer\" | \"sheet\";\n\nexport type DrawerPosition = \"left\" | \"right\";\n\ntype Animations = {\n sheet: Record<AnimationLabels, TargetAndTransition>;\n dialog: Record<AnimationLabels, TargetAndTransition>;\n drawer: (type: DrawerPosition) => Record<AnimationLabels, TargetAndTransition>;\n};\n\nconst animationDuration = \"500ms\";\n\nconst drawerLeft: Record<string, TargetAndTransition> = {\n exit: { x: [\"0%\", \"-30%\"], opacity: 0, animationDuration },\n enter: { x: [\"-30%\", \"0%\"], opacity: 1, animationDuration },\n initial: { x: [\"-30%\", \"0%\"], opacity: 0.8, animationDuration },\n};\n\nconst drawerRight: Record<string, TargetAndTransition> = {\n enter: { x: \"0%\", opacity: 1, animationDuration },\n exit: { x: [\"0%\", \"30%\"], opacity: 0, animationDuration },\n initial: { x: [\"30%\", \"0%\"], opacity: 0.8, animationDuration },\n};\n\nconst animations: Animations = {\n drawer: (type) => (type === \"left\" ? drawerLeft : drawerRight),\n sheet: {\n enter: { opacity: 1, y: \"0%\", animationDuration, transformOrigin: \"bottom\" },\n exit: { opacity: 0.4, y: \"10%\", animationDuration, transformOrigin: \"bottom\" },\n initial: { opacity: 0.7, y: \"10%\", animationDuration, transformOrigin: \"bottom\" },\n },\n dialog: {\n exit: { opacity: 0, scale: 0.95, animationDuration },\n enter: { opacity: 1, scale: [1.05, 1], animationDuration },\n initial: { opacity: 0.5, scale: 0.95, animationDuration, transition: { duration: 0.5, ease: \"easeInOut\" } },\n },\n};\n\nconst variants = cva(\n \"z-floating border border-floating-border ring-0 outline-0 appearance-none flex flex-col gap-4 flex-nowrap min-w-xs bg-floating-background\",\n {\n variants: {\n type: {\n drawer: \"max-h-screen max-w-[90%] absolute w-fit h-screen min-h-0\",\n dialog: \"max-h-[calc(100lvh-10%)] relative container h-min rounded-lg py-4\",\n sheet: \"w-screen absolute bottom-0 max-h-[calc(100vh-15%)] max-h-[calc(100svh-5%)] h-screen pt-6 pb-4 rounded-t-lg\",\n },\n position: {\n none: \"\",\n right: \"py-4 absolute right-0 top-0 rounded-l-lg\",\n left: \"py-4 absolute left-0 top-0 rounded-r-lg\",\n },\n },\n defaultVariants: { position: \"right\", type: \"dialog\" },\n }\n);\n\nexport type ModalProps = Override<\n HTMLMotionProps<\"div\">,\n ({ title: Label; ariaTitle?: string } | { ariaTitle: string; title?: Label }) & {\n open: boolean;\n onChange: (nextState: boolean) => void;\n } & Partial<{\n footer: Label;\n type: ModalType;\n animated: boolean;\n asChild: boolean;\n layoutId: string;\n resizer: boolean;\n className: string;\n closable: boolean;\n forceType: boolean;\n bodyClassName: string;\n overlayClassName: string;\n position: DrawerPosition;\n overlayClickClose: boolean;\n closeOnFocusOut: boolean;\n role: \"dialog\";\n interactions: ElementProps[];\n trigger: Label | React.FC<any>;\n }>\n>;\n\ntype DraggableProps = {\n sheet: boolean;\n position: DrawerPosition;\n parent: React.RefObject<HTMLElement>;\n onChange: (nextState: boolean) => void;\n value: MotionValue<number | undefined>;\n};\n\nconst dragConstraints = { top: 0, left: 0, right: 0, bottom: 0 };\n\nconst calculateClose = (n: number) => n * 0.6;\n\nconst Draggable = (props: DraggableProps) => {\n const onDrag = (e: Event, info: PanInfo) => {\n if (props.parent.current) {\n e.stopPropagation();\n e.stopImmediatePropagation();\n if (props.sheet) {\n const div = props.parent.current as HTMLElement;\n const rect = div.getBoundingClientRect();\n const v = props.value.get() || rect.height;\n const result = Math.abs(v - info.delta.y);\n const max = window.outerHeight;\n const screenHeightToClose = calculateClose(max);\n if (result >= screenHeightToClose) return props.value.set(result);\n if (document.activeElement instanceof HTMLElement) {\n document.activeElement?.blur();\n }\n props.onChange(false);\n return setTimeout(() => props.value.set(undefined), 350);\n }\n const div = props.parent.current as HTMLElement;\n const v = props.value.get() || div.getBoundingClientRect().width;\n const delta = props.position === \"right\" ? -info.delta.x : info.delta.x;\n const value = Math.abs(v + delta);\n return props.value.set(value);\n }\n };\n\n return (\n <motion.button\n draggable\n dragListener\n dragMomentum\n type=\"button\"\n animate={false}\n dragElastic={0}\n dragPropagation\n initial={false}\n onDrag={onDrag}\n dragSnapToOrigin\n dragDirectionLock\n drag={props.sheet ? \"y\" : \"x\"}\n dragConstraints={dragConstraints}\n whileDrag={{ cursor: \"grabbing\" }}\n className={css(\n \"absolute isolate z-calendar rounded-lg\",\n props.sheet ? \"cursor-row-resize\" : \"cursor-col-resize bg-floating-border\",\n props.sheet\n ? \"top-1 flex h-3 w-full justify-center py-2\"\n : props.position === \"left\"\n ? \"right-5 top-1/2 h-10 w-2\"\n : \"left-2 top-1/2 h-10 w-2\"\n )}\n >\n {props.sheet ? <div className=\"h-2 w-1/4 rounded-lg bg-floating-border\" /> : null}\n </motion.button>\n );\n};\n\nconst positions = { drawer: \"right\", sheet: \"none\", dialog: \"none\" } as const;\n\nconst fetchPosition = (isDesktop: Nil<boolean>, forceType: Nil<boolean>, propsType: Nil<ModalType>, propsPosition: Nil<DrawerPosition>) => {\n const type = propsType || \"dialog\";\n if (isDesktop) return propsType === \"drawer\" ? (propsPosition ?? positions.drawer) : positions[type];\n return forceType ? positions[type] : positions.sheet;\n};\n\nexport type ModalRef = { context: any; floating: HTMLElement | null };\n\nconst noop: any[] = [];\n\ntype ModalComponent = React.FC<ModalProps> & {\n confirm: <T>(options: ConfirmOptions) => Promise<T>;\n};\n\nexport const Modal: ModalComponent = forwardRef<ModalRef, PropsWithChildren<ModalProps>>(\n (\n {\n open,\n title,\n footer,\n asChild,\n trigger,\n children,\n onChange,\n ariaTitle,\n className,\n bodyClassName,\n resizer = true,\n animated = true,\n closable = true,\n forceType = false,\n layoutId = undefined,\n overlayClassName = \"\",\n type: _type = \"dialog\",\n position: propsPosition,\n overlayClickClose = false,\n closeOnFocusOut = false,\n interactions: outInteractions = noop,\n ...props\n }: PropsWithChildren<ModalProps>,\n externalRef: ForwardedRef<ModalRef>\n ) => {\n const root = useFloatingRef();\n const innerContent = useRef<HTMLDivElement>(null);\n const removeScrollRef = useRef<HTMLDivElement>(null);\n const headingId = useId();\n const descriptionId = useId();\n const isDesktop = useMediaQuery(\"(min-width: 64rem)\");\n const position = fetchPosition(isDesktop, forceType, _type, propsPosition);\n const func = isDesktop ? animations[_type] : forceType ? animations[_type] : animations.sheet;\n const animation = typeof func === \"function\" ? func(position as DrawerPosition) : func;\n const type = isDesktop ? _type : forceType ? _type : \"sheet\";\n const useResizer = type !== \"dialog\";\n\n const floating = useFloating({ open, onOpenChange: onChange, strategy: \"fixed\" });\n const click = useClick(floating.context, {});\n const role = useRole(floating.context, { role: \"dialog\" });\n const dismiss = useDismiss(floating.context, {\n bubbles: true,\n escapeKey: true,\n outsidePress: (event) => {\n const target = event.target as Node;\n return overlayClickClose && !!target?.isConnected;\n },\n });\n\n const interactions = useInteractions([click, dismiss, role].concat(outInteractions));\n\n const Trigger = trigger as any;\n\n const floatingSize = useMotionValue<number | undefined>(undefined);\n const sheetY = useMotionValue<number | undefined>(undefined);\n const isDragging = useRef(false);\n const dragStart = useRef(0);\n\n useEffect(() => {\n floatingSize.set(undefined);\n sheetY.set(undefined);\n }, [type, floatingSize, sheetY]);\n\n const onClose = () => onChange(false);\n\n useImperativeHandle(externalRef, () => ({ context: floating.context, floating: removeScrollRef.current }), [\n floating.context,\n removeScrollRef,\n ]);\n\n const onDragHeader = (_: MouseEvent | TouchEvent | PointerEvent, info: PanInfo) => {\n const div = floating.refs.floating.current as HTMLElement;\n const rect = div.getBoundingClientRect();\n const v = floatingSize.get() || rect.height;\n const result = Math.abs(v - info.delta.y);\n const max = window.outerHeight;\n const screenHeightToClose = calculateClose(max);\n if (result >= screenHeightToClose) return floatingSize.set(result);\n if (document.activeElement instanceof HTMLElement) {\n document.activeElement?.blur();\n }\n onChange?.(false);\n return setTimeout(() => floatingSize.set(undefined), 350);\n };\n\n const draggableMotionProps =\n type === \"sheet\"\n ? ({\n drag: \"y\",\n animate: false,\n dragElastic: 0,\n initial: false,\n dragConstraints,\n draggable: true,\n dragListener: true,\n dragMomentum: true,\n onDrag: onDragHeader,\n dragPropagation: true,\n dragSnapToOrigin: true,\n dragDirectionLock: true,\n whileDrag: { cursor: \"grabbing\" },\n } as const)\n : { animate: animated, initial: false };\n\n const scrollInitial = useMotionValue<number | undefined>(undefined);\n const scroll = useMotionValue<number | undefined>(undefined);\n\n const Component = asChild ? Slot : motion.button;\n\n return (\n <Fragment>\n {trigger ? (\n <Component ref={floating.refs.setReference} {...interactions.getReferenceProps()} layoutId={layoutId} type=\"button\">\n {Trigger}\n </Component>\n ) : null}\n <MotionConfig reducedMotion={animated ? \"user\" : \"always\"}>\n <FloatingPortal preserveTabOrder root={root}>\n <AnimatePresence mode=\"wait\" propagate>\n {open ? (\n <FloatingOverlay\n lockScroll\n className={css(\n \"inset-0 isolate z-overlay flex h-[100dvh] !overflow-clip bg-floating-overlay/80\",\n type === \"drawer\" ? \"\" : \"items-start justify-center pt-10 lg:p-10\",\n overlayClassName\n )}\n >\n <FloatingFocusManager guards modal closeOnFocusOut={closeOnFocusOut} context={floating.context}>\n <AnimatePresence propagate>\n <motion.div\n {...props}\n {...(title\n ? {\n \"aria-labelledby\": headingId,\n \"aria-describedby\": descriptionId,\n }\n : { \"aria-label\": ariaTitle })}\n {...interactions.getFloatingProps({\n \"aria-modal\": open,\n ref: mergeRefs(floating.refs.setFloating, removeScrollRef) as any,\n className: css(variants({ position, type }), className, \"isolate overscroll-contain\"),\n })}\n exit=\"exit\"\n layout={true}\n animate=\"enter\"\n initial=\"initial\"\n layoutId={layoutId}\n variants={animation}\n data-component=\"modal\"\n style={type === \"drawer\" ? { width: floatingSize } : { height: floatingSize, y: sheetY }}\n >\n {useResizer && resizer ? (\n <Draggable\n onChange={onChange}\n value={floatingSize}\n sheet={type === \"sheet\"}\n position={position as DrawerPosition}\n parent={floating.refs.floating as any}\n />\n ) : null}\n {title ? (\n <motion.header {...draggableMotionProps} className=\"relative isolate w-full\">\n {title ? (\n <h2\n id={headingId}\n className=\"block select-text border-b border-floating-border px-8 pb-2 text-3xl font-medium leading-relaxed\"\n >\n {title}\n </h2>\n ) : null}\n </motion.header>\n ) : null}\n <motion.section\n ref={innerContent}\n data-component=\"modal-body\"\n className={css(\"flex-1 select-text overflow-y-auto px-8 py-1\", bodyClassName)}\n onTouchEnd={async () => {\n scroll.set(undefined);\n scrollInitial.set(undefined);\n\n if (isDragging.current) {\n const currentY = sheetY.get() || 0;\n const threshold = window.innerHeight * 0.2;\n\n if (currentY > threshold) {\n await animate(sheetY as any, window.innerHeight, { duration: 0.2, ease: \"easeIn\" })\n .finished;\n onChange(false);\n } else {\n animate(sheetY as any, 0, { type: \"spring\", bounce: 0, duration: 0.3 });\n }\n isDragging.current = false;\n }\n }}\n onTouchStart={(e) => {\n const touch = e.changedTouches[0];\n scrollInitial.set(touch.pageY);\n scroll.set(touch.pageY);\n isDragging.current = false;\n }}\n onTouchMove={(e) => {\n const touch = e.changedTouches[0];\n const y = touch.pageY;\n const prevY = scroll.get() || y;\n const scrollTop = innerContent.current?.scrollTop || 0;\n\n if (!isDragging.current && scrollTop <= 0 && y > prevY && type === \"sheet\") {\n isDragging.current = true;\n dragStart.current = y;\n }\n\n if (isDragging.current) {\n const delta = y - dragStart.current;\n if (delta < 0) {\n sheetY.set(delta * 0.2);\n } else {\n sheetY.set(delta);\n }\n }\n\n scroll.set(y);\n }}\n >\n {children}\n </motion.section>\n {footer ? (\n <footer className=\"w-full select-text border-t border-floating-border px-8 pt-4\">{footer}</footer>\n ) : null}\n {closable ? (\n <nav className=\"absolute right-4 top-1 z-floating\">\n <button\n type=\"button\"\n onClick={onClose}\n className=\"p-1 opacity-70 transition-colors hover:text-danger hover:opacity-100 focus:text-danger\"\n >\n <XIcon />\n </button>\n </nav>\n ) : null}\n </motion.div>\n </AnimatePresence>\n </FloatingFocusManager>\n </FloatingOverlay>\n ) : null}\n </AnimatePresence>\n </FloatingPortal>\n </MotionConfig>\n </Fragment>\n );\n }\n) as any;\n\ntype ButtonConfirmationAction = {\n value?: any;\n text?: Label;\n theme?: ButtonProps[\"theme\"];\n};\n\nexport type ConfirmOptions = {\n title?: Label;\n description?: Label;\n cancel?: ButtonConfirmationAction;\n confirm?: ButtonConfirmationAction;\n};\n\ntype ConfirmContextType = (options: ConfirmOptions) => Promise<boolean>;\n\nlet confirmGlobal: ConfirmContextType = async <T extends any>(options: ConfirmOptions): Promise<T> => {\n if (typeof window !== \"undefined\") {\n console.warn(\"ConfirmationProvider is not mounted\");\n }\n return false as T;\n};\n\nModal.confirm = <T extends any>(options: ConfirmOptions): Promise<T> => confirmGlobal(options) as any;\n\nexport const ModalConfirmProvider = ({ children }: { children: React.ReactNode }) => {\n const [open, setOpen] = useState(false);\n const [options, setOptions] = useState<Partial<ConfirmOptions>>({});\n const [resolve, setResolve] = useState<(value: boolean) => void>(() => {});\n\n const confirmAction = useCallback((opts: ConfirmOptions): Promise<boolean> => {\n setOptions(opts);\n setOpen(true);\n return new Promise((res) => {\n setResolve(() => res);\n });\n }, []);\n\n useEffect(() => {\n confirmGlobal = confirmAction;\n }, [confirmAction]);\n\n const onConfirm = () => {\n setOpen(false);\n const value = options.confirm?.value ?? true;\n resolve(value ?? true);\n };\n\n const onCancel = () => {\n setOpen(false);\n const value = options.cancel?.value ?? false;\n resolve(value ?? false);\n };\n\n return (\n <ConfirmContext.Provider value={confirmAction}>\n {children}\n <Modal\n open={open}\n type=\"dialog\"\n closable={false}\n onChange={setOpen}\n overlayClickClose={false}\n title={options.title || \"Confirmation\"}\n className=\"container max-w-dialog lg:max-w-96\"\n footer={\n <div className=\"flex justify-end gap-2\">\n <Button theme={options.cancel?.theme || \"ghost-muted\"} onClick={onCancel}>\n {options.cancel?.text || \"Cancel\"}\n </Button>\n <Button autoFocus theme={options.confirm?.theme || \"primary\"} onClick={onConfirm}>\n {options.confirm?.text || \"Confirm\"}\n </Button>\n </div>\n }\n >\n <div className=\"py-2 text-foreground\">{options.description}</div>\n </Modal>\n </ConfirmContext.Provider>\n );\n};\n"],"names":["getMatches","query","defaultValue","isSsr","useMediaQuery","matches","setMatches","useState","useLayoutEffect","matchMedia","onChange","useFloatingRef","useContext","Context","ConfirmContext","React","useConfirm","animationDuration","drawerLeft","drawerRight","animations","type","variants","cva","dragConstraints","calculateClose","n","Draggable","props","onDrag","e","info","rect","v","result","max","screenHeightToClose","div","delta","value","jsx","motion","css","positions","fetchPosition","isDesktop","forceType","propsType","propsPosition","noop","Modal","forwardRef","open","title","footer","asChild","trigger","children","ariaTitle","className","bodyClassName","resizer","animated","closable","layoutId","overlayClassName","_type","overlayClickClose","closeOnFocusOut","outInteractions","externalRef","root","innerContent","useRef","removeScrollRef","headingId","useId","descriptionId","position","func","animation","useResizer","floating","useFloating","click","useClick","role","useRole","dismiss","useDismiss","event","target","interactions","useInteractions","Trigger","floatingSize","useMotionValue","sheetY","isDragging","dragStart","useEffect","onClose","useImperativeHandle","draggableMotionProps","_","scrollInitial","scroll","Component","Slot","Fragment","MotionConfig","FloatingPortal","AnimatePresence","FloatingOverlay","FloatingFocusManager","jsxs","mergeRefs","currentY","threshold","animate","touch","y","prevY","scrollTop","XIcon","confirmGlobal","options","ModalConfirmProvider","setOpen","setOptions","resolve","setResolve","confirmAction","useCallback","opts","res","onConfirm","onCancel","Button"],"mappings":"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"}
1
+ {"version":3,"file":"modal.js","sources":["../../../src/hooks/use-media-query.ts","../../../src/hooks/use-floating-ref.ts","../../../src/components/floating/modal.tsx"],"sourcesContent":["import { useLayoutEffect, useState } from \"react\";\nimport { isSsr } from \"../lib/fns\";\n\nconst getMatches = (query: string, defaultValue: boolean): boolean => {\n if (isSsr()) {\n return defaultValue;\n }\n return window.matchMedia(query).matches;\n};\n\nexport const useMediaQuery = (query: string, defaultValue: boolean = true) => {\n const [matches, setMatches] = useState(defaultValue);\n\n useLayoutEffect(() => {\n const matchMedia = window.matchMedia(query);\n const onChange = () => setMatches(getMatches(query, defaultValue));\n onChange();\n if (matchMedia.addListener) {\n matchMedia.addListener(onChange);\n return () => {\n return matchMedia.removeListener ? matchMedia.removeListener(onChange) : undefined;\n };\n }\n matchMedia.addEventListener(\"change\", onChange);\n return () => matchMedia.removeEventListener(\"change\", onChange);\n }, [query]);\n\n return matches;\n};\n","import { useContext } from \"react\";\nimport { Context } from \"../config/context\";\n\nexport const useFloatingRef = () => {\n const ctx = useContext(Context);\n return ctx.floatingRef ?? undefined;\n};\n","\"use client\";\nimport {\n FloatingFocusManager,\n FloatingOverlay,\n FloatingPortal,\n useClick,\n useDismiss,\n useFloating,\n useInteractions,\n useRole,\n type ElementProps,\n} from \"@floating-ui/react\";\nimport { cva } from \"class-variance-authority\";\nimport { XIcon } from \"@phosphor-icons/react\";\nimport {\n AnimatePresence,\n HTMLMotionProps,\n motion,\n MotionConfig,\n MotionValue,\n PanInfo,\n TargetAndTransition,\n useMotionValue,\n animate,\n} from \"motion/react\";\nimport { Slot } from \"../core/slot\";\nimport React, {\n ForwardedRef,\n forwardRef,\n Fragment,\n PropsWithChildren,\n useEffect,\n useId,\n useImperativeHandle,\n useRef,\n useState,\n useCallback,\n} from \"react\";\nimport { useMediaQuery } from \"../../hooks/use-media-query\";\nimport { css, mergeRefs } from \"../../lib/dom\";\nimport { Label, Nil, Override } from \"../../types\";\nimport { useFloatingRef } from \"../../hooks/use-floating-ref\";\nimport { Button, ButtonProps } from \"../core/button\";\n\ntype AnimationLabels = \"initial\" | \"enter\" | \"exit\";\n\nconst ConfirmContext = React.createContext<(options: ConfirmOptions) => Promise<boolean>>(async () => false);\n\nexport const useConfirm = () => React.useContext(ConfirmContext);\n\nexport type ModalType = \"dialog\" | \"drawer\" | \"sheet\";\n\nexport type DrawerPosition = \"left\" | \"right\";\n\ntype Animations = {\n sheet: Record<AnimationLabels, TargetAndTransition>;\n dialog: Record<AnimationLabels, TargetAndTransition>;\n drawer: (type: DrawerPosition) => Record<AnimationLabels, TargetAndTransition>;\n};\n\nconst animationDuration = \"500ms\";\n\nconst drawerLeft: Record<string, TargetAndTransition> = {\n exit: { x: [\"0%\", \"-30%\"], opacity: 0, animationDuration },\n enter: { x: [\"-30%\", \"0%\"], opacity: 1, animationDuration },\n initial: { x: [\"-30%\", \"0%\"], opacity: 0.8, animationDuration },\n};\n\nconst drawerRight: Record<string, TargetAndTransition> = {\n enter: { x: \"0%\", opacity: 1, animationDuration },\n exit: { x: [\"0%\", \"30%\"], opacity: 0, animationDuration },\n initial: { x: [\"30%\", \"0%\"], opacity: 0.8, animationDuration },\n};\n\nconst animations: Animations = {\n drawer: (type) => (type === \"left\" ? drawerLeft : drawerRight),\n sheet: {\n enter: { opacity: 1, y: \"0%\", animationDuration, transformOrigin: \"bottom\" },\n exit: { opacity: 0.4, y: \"10%\", animationDuration, transformOrigin: \"bottom\" },\n initial: { opacity: 0.7, y: \"10%\", animationDuration, transformOrigin: \"bottom\" },\n },\n dialog: {\n exit: { opacity: 0, scale: 0.95, animationDuration },\n enter: { opacity: 1, scale: [1.05, 1], animationDuration },\n initial: { opacity: 0.5, scale: 0.95, animationDuration, transition: { duration: 0.5, ease: \"easeInOut\" } },\n },\n};\n\nconst variants = cva(\n \"z-floating border border-floating-border ring-0 outline-0 appearance-none flex flex-col gap-4 flex-nowrap min-w-xs bg-floating-background\",\n {\n variants: {\n type: {\n drawer: \"max-h-screen max-w-[90%] absolute w-fit h-screen min-h-0\",\n dialog: \"max-h-[calc(100lvh-10%)] relative container h-min rounded-lg py-4\",\n sheet: \"w-screen absolute bottom-0 max-h-[calc(100vh-15%)] max-h-[calc(100svh-5%)] h-screen pt-6 pb-4 rounded-t-lg\",\n },\n position: {\n none: \"\",\n right: \"py-4 absolute right-0 top-0 rounded-l-lg\",\n left: \"py-4 absolute left-0 top-0 rounded-r-lg\",\n },\n },\n defaultVariants: { position: \"right\", type: \"dialog\" },\n }\n);\n\nexport type ModalProps = Override<\n HTMLMotionProps<\"div\">,\n ({ title: Label; ariaTitle?: string } | { ariaTitle: string; title?: Label }) & {\n open: boolean;\n onChange: (nextState: boolean) => void;\n } & Partial<{\n footer: Label;\n type: ModalType;\n animated: boolean;\n asChild: boolean;\n layoutId: string;\n resizer: boolean;\n className: string;\n closable: boolean;\n forceType: boolean;\n bodyClassName: string;\n overlayClassName: string;\n position: DrawerPosition;\n overlayClickClose: boolean;\n closeOnFocusOut: boolean;\n role: \"dialog\";\n interactions: ElementProps[];\n trigger: Label | React.FC<any>;\n }>\n>;\n\ntype DraggableProps = {\n sheet: boolean;\n position: DrawerPosition;\n parent: React.RefObject<HTMLElement>;\n onChange: (nextState: boolean) => void;\n value: MotionValue<number | undefined>;\n};\n\nconst dragConstraints = { top: 0, left: 0, right: 0, bottom: 0 };\n\nconst calculateClose = (n: number) => n * 0.6;\n\nconst Draggable = (props: DraggableProps) => {\n const onDrag = (e: Event, info: PanInfo) => {\n if (props.parent.current) {\n e.stopPropagation();\n e.stopImmediatePropagation();\n if (props.sheet) {\n const div = props.parent.current as HTMLElement;\n const rect = div.getBoundingClientRect();\n const v = props.value.get() || rect.height;\n const result = Math.abs(v - info.delta.y);\n const max = window.outerHeight;\n const screenHeightToClose = calculateClose(max);\n if (result >= screenHeightToClose) return props.value.set(result);\n if (document.activeElement instanceof HTMLElement) {\n document.activeElement?.blur();\n }\n props.onChange(false);\n return setTimeout(() => props.value.set(undefined), 350);\n }\n const div = props.parent.current as HTMLElement;\n const v = props.value.get() || div.getBoundingClientRect().width;\n const delta = props.position === \"right\" ? -info.delta.x : info.delta.x;\n const value = Math.abs(v + delta);\n return props.value.set(value);\n }\n };\n\n return (\n <motion.button\n draggable\n dragListener\n dragMomentum\n type=\"button\"\n animate={false}\n dragElastic={0}\n dragPropagation\n initial={false}\n onDrag={onDrag}\n dragSnapToOrigin\n dragDirectionLock\n drag={props.sheet ? \"y\" : \"x\"}\n dragConstraints={dragConstraints}\n whileDrag={{ cursor: \"grabbing\" }}\n className={css(\n \"absolute isolate z-calendar rounded-lg\",\n props.sheet ? \"cursor-row-resize\" : \"cursor-col-resize bg-floating-border\",\n props.sheet\n ? \"top-1 flex h-3 w-full justify-center py-2\"\n : props.position === \"left\"\n ? \"right-5 top-1/2 h-10 w-2\"\n : \"left-2 top-1/2 h-10 w-2\"\n )}\n >\n {props.sheet ? <div className=\"h-2 w-1/4 rounded-lg bg-floating-border\" /> : null}\n </motion.button>\n );\n};\n\nconst positions = { drawer: \"right\", sheet: \"none\", dialog: \"none\" } as const;\n\nconst fetchPosition = (isDesktop: Nil<boolean>, forceType: Nil<boolean>, propsType: Nil<ModalType>, propsPosition: Nil<DrawerPosition>) => {\n const type = propsType || \"dialog\";\n if (isDesktop) return propsType === \"drawer\" ? (propsPosition ?? positions.drawer) : positions[type];\n return forceType ? positions[type] : positions.sheet;\n};\n\nexport type ModalRef = { context: any; floating: HTMLElement | null };\n\nconst noop: any[] = [];\n\ntype ModalComponent = React.FC<ModalProps> & {\n confirm: <T>(options: ConfirmOptions) => Promise<T>;\n};\n\nexport const Modal: ModalComponent = forwardRef<ModalRef, PropsWithChildren<ModalProps>>(\n (\n {\n open,\n title,\n footer,\n asChild,\n trigger,\n children,\n onChange,\n ariaTitle,\n className,\n bodyClassName,\n resizer = true,\n animated = true,\n closable = true,\n forceType = false,\n layoutId = undefined,\n overlayClassName = \"\",\n type: _type = \"dialog\",\n position: propsPosition,\n overlayClickClose = false,\n closeOnFocusOut = false,\n interactions: outInteractions = noop,\n ...props\n }: PropsWithChildren<ModalProps>,\n externalRef: ForwardedRef<ModalRef>\n ) => {\n const root = useFloatingRef();\n const innerContent = useRef<HTMLDivElement>(null);\n const removeScrollRef = useRef<HTMLDivElement>(null);\n const headingId = useId();\n const descriptionId = useId();\n const isDesktop = useMediaQuery(\"(min-width: 64rem)\");\n const position = fetchPosition(isDesktop, forceType, _type, propsPosition);\n const func = isDesktop ? animations[_type] : forceType ? animations[_type] : animations.sheet;\n const animation = typeof func === \"function\" ? func(position as DrawerPosition) : func;\n const type = isDesktop ? _type : forceType ? _type : \"sheet\";\n const useResizer = type !== \"dialog\";\n\n const floating = useFloating({ open, onOpenChange: onChange, strategy: \"fixed\" });\n const click = useClick(floating.context, {});\n const role = useRole(floating.context, { role: \"dialog\" });\n const dismiss = useDismiss(floating.context, {\n bubbles: true,\n escapeKey: true,\n outsidePress: (event) => {\n const target = event.target as Node;\n return overlayClickClose && !!target?.isConnected;\n },\n });\n\n const interactions = useInteractions([click, dismiss, role].concat(outInteractions));\n\n const Trigger = trigger as any;\n\n const floatingSize = useMotionValue<number | undefined>(undefined);\n const sheetY = useMotionValue<number | undefined>(undefined);\n const isDragging = useRef(false);\n const dragStart = useRef(0);\n\n useEffect(() => {\n floatingSize.set(undefined);\n sheetY.set(undefined);\n }, [type, floatingSize, sheetY]);\n\n const onClose = () => onChange(false);\n\n useImperativeHandle(externalRef, () => ({ context: floating.context, floating: removeScrollRef.current }), [\n floating.context,\n removeScrollRef,\n ]);\n\n const onDragHeader = (_: MouseEvent | TouchEvent | PointerEvent, info: PanInfo) => {\n const div = floating.refs.floating.current as HTMLElement;\n const rect = div.getBoundingClientRect();\n const v = floatingSize.get() || rect.height;\n const result = Math.abs(v - info.delta.y);\n const max = window.outerHeight;\n const screenHeightToClose = calculateClose(max);\n if (result >= screenHeightToClose) return floatingSize.set(result);\n if (document.activeElement instanceof HTMLElement) {\n document.activeElement?.blur();\n }\n onChange?.(false);\n return setTimeout(() => floatingSize.set(undefined), 350);\n };\n\n const draggableMotionProps =\n type === \"sheet\"\n ? ({\n drag: \"y\",\n animate: false,\n dragElastic: 0,\n initial: false,\n dragConstraints,\n draggable: true,\n dragListener: true,\n dragMomentum: true,\n onDrag: onDragHeader,\n dragPropagation: true,\n dragSnapToOrigin: true,\n dragDirectionLock: true,\n whileDrag: { cursor: \"grabbing\" },\n } as const)\n : { animate: animated, initial: false };\n\n const scrollInitial = useMotionValue<number | undefined>(undefined);\n const scroll = useMotionValue<number | undefined>(undefined);\n\n const Component = asChild ? Slot : motion.button;\n\n return (\n <Fragment>\n {trigger ? (\n <Component ref={floating.refs.setReference} {...interactions.getReferenceProps()} layoutId={layoutId} type=\"button\">\n {Trigger}\n </Component>\n ) : null}\n <MotionConfig reducedMotion={animated ? \"user\" : \"always\"}>\n <FloatingPortal preserveTabOrder root={root}>\n <AnimatePresence mode=\"wait\" propagate>\n {open ? (\n <FloatingOverlay\n lockScroll\n className={css(\n \"inset-0 isolate z-overlay flex h-[100dvh] !overflow-clip bg-floating-overlay/80\",\n type === \"drawer\" ? \"\" : \"items-start justify-center pt-10 lg:p-10\",\n overlayClassName\n )}\n >\n <FloatingFocusManager guards modal closeOnFocusOut={closeOnFocusOut} context={floating.context}>\n <AnimatePresence propagate>\n <motion.div\n {...props}\n {...(title\n ? {\n \"aria-labelledby\": headingId,\n \"aria-describedby\": descriptionId,\n }\n : { \"aria-label\": ariaTitle })}\n {...interactions.getFloatingProps({\n \"aria-modal\": open,\n ref: mergeRefs(floating.refs.setFloating, removeScrollRef) as any,\n className: css(variants({ position, type }), className, \"isolate overscroll-contain\"),\n })}\n exit=\"exit\"\n layout={true}\n animate=\"enter\"\n initial=\"initial\"\n layoutId={layoutId}\n variants={animation}\n data-component=\"modal\"\n style={type === \"drawer\" ? { width: floatingSize } : { height: floatingSize, y: sheetY }}\n >\n {useResizer && resizer ? (\n <Draggable\n onChange={onChange}\n value={floatingSize}\n sheet={type === \"sheet\"}\n position={position as DrawerPosition}\n parent={floating.refs.floating as any}\n />\n ) : null}\n {title ? (\n <motion.header {...draggableMotionProps} className=\"relative isolate w-full\">\n {title ? (\n <h2\n id={headingId}\n className=\"block select-text border-b border-floating-border px-8 pb-2 text-3xl font-medium leading-relaxed\"\n >\n {title}\n </h2>\n ) : null}\n </motion.header>\n ) : null}\n <motion.section\n ref={innerContent}\n data-component=\"modal-body\"\n className={css(\"flex-1 select-text overflow-y-auto px-8 py-1\", bodyClassName)}\n onTouchEnd={async () => {\n scroll.set(undefined);\n scrollInitial.set(undefined);\n\n if (isDragging.current) {\n const currentY = sheetY.get() || 0;\n const threshold = window.innerHeight * 0.2;\n\n if (currentY > threshold) {\n await animate(sheetY as any, window.innerHeight, { duration: 0.2, ease: \"easeIn\" })\n .finished;\n onChange(false);\n } else {\n animate(sheetY as any, 0, { type: \"spring\", bounce: 0, duration: 0.3 });\n }\n isDragging.current = false;\n }\n }}\n onTouchStart={(e) => {\n const touch = e.changedTouches[0];\n scrollInitial.set(touch.pageY);\n scroll.set(touch.pageY);\n isDragging.current = false;\n }}\n onTouchMove={(e) => {\n const touch = e.changedTouches[0];\n const y = touch.pageY;\n const prevY = scroll.get() || y;\n const scrollTop = innerContent.current?.scrollTop || 0;\n\n if (!isDragging.current && scrollTop <= 0 && y > prevY && type === \"sheet\") {\n isDragging.current = true;\n dragStart.current = y;\n }\n\n if (isDragging.current) {\n const delta = y - dragStart.current;\n if (delta < 0) {\n sheetY.set(delta * 0.2);\n } else {\n sheetY.set(delta);\n }\n }\n\n scroll.set(y);\n }}\n >\n {children}\n </motion.section>\n {footer ? (\n <footer className=\"w-full select-text border-t border-floating-border px-8 pt-4\">{footer}</footer>\n ) : null}\n {closable ? (\n <nav className=\"absolute right-4 top-1 z-floating\">\n <button\n type=\"button\"\n onClick={onClose}\n className=\"p-1 opacity-70 transition-colors hover:text-danger hover:opacity-100 focus:text-danger\"\n >\n <XIcon />\n </button>\n </nav>\n ) : null}\n </motion.div>\n </AnimatePresence>\n </FloatingFocusManager>\n </FloatingOverlay>\n ) : null}\n </AnimatePresence>\n </FloatingPortal>\n </MotionConfig>\n </Fragment>\n );\n }\n) as any;\n\ntype ButtonConfirmationAction = {\n value?: any;\n text?: Label;\n theme?: ButtonProps[\"theme\"];\n};\n\nexport type ConfirmOptions = {\n title?: Label;\n description?: Label;\n cancel?: ButtonConfirmationAction;\n confirm?: ButtonConfirmationAction;\n};\n\ntype ConfirmContextType = (options: ConfirmOptions) => Promise<boolean>;\n\nlet confirmGlobal: ConfirmContextType = async <T extends any>(options: ConfirmOptions): Promise<T> => {\n if (typeof window !== \"undefined\") {\n console.warn(\"ConfirmationProvider is not mounted\");\n }\n return false as T;\n};\n\nModal.confirm = <T extends any>(options: ConfirmOptions): Promise<T> => confirmGlobal(options) as any;\n\nexport const ModalConfirmProvider = ({ children }: { children: React.ReactNode }) => {\n const [open, setOpen] = useState(false);\n const [options, setOptions] = useState<Partial<ConfirmOptions>>({});\n const [resolve, setResolve] = useState<(value: boolean) => void>(() => {});\n\n const confirmAction = useCallback((opts: ConfirmOptions): Promise<boolean> => {\n setOptions(opts);\n setOpen(true);\n return new Promise((res) => {\n setResolve(() => res);\n });\n }, []);\n\n useEffect(() => {\n confirmGlobal = confirmAction;\n }, [confirmAction]);\n\n const onConfirm = () => {\n setOpen(false);\n const value = options.confirm?.value ?? true;\n resolve(value ?? true);\n };\n\n const onCancel = () => {\n setOpen(false);\n const value = options.cancel?.value ?? false;\n resolve(value ?? false);\n };\n\n return (\n <ConfirmContext.Provider value={confirmAction}>\n {children}\n <Modal\n open={open}\n type=\"dialog\"\n closable={false}\n onChange={setOpen}\n overlayClickClose={false}\n title={options.title || \"Confirmation\"}\n className=\"container max-w-dialog lg:max-w-96\"\n footer={\n <div className=\"flex justify-end gap-2\">\n <Button theme={options.cancel?.theme || \"ghost-muted\"} onClick={onCancel}>\n {options.cancel?.text || \"Cancel\"}\n </Button>\n <Button autoFocus theme={options.confirm?.theme || \"primary\"} onClick={onConfirm}>\n {options.confirm?.text || \"Confirm\"}\n </Button>\n </div>\n }\n >\n <div className=\"py-2 text-foreground\">{options.description}</div>\n </Modal>\n </ConfirmContext.Provider>\n );\n};\n"],"names":["getMatches","query","defaultValue","isSsr","useMediaQuery","matches","setMatches","useState","useLayoutEffect","matchMedia","onChange","useFloatingRef","useContext","Context","ConfirmContext","React","useConfirm","animationDuration","drawerLeft","drawerRight","animations","type","variants","cva","dragConstraints","calculateClose","n","Draggable","props","onDrag","e","info","rect","v","result","max","screenHeightToClose","div","delta","value","jsx","motion","css","positions","fetchPosition","isDesktop","forceType","propsType","propsPosition","noop","Modal","forwardRef","open","title","footer","asChild","trigger","children","ariaTitle","className","bodyClassName","resizer","animated","closable","layoutId","overlayClassName","_type","overlayClickClose","closeOnFocusOut","outInteractions","externalRef","root","innerContent","useRef","removeScrollRef","headingId","useId","descriptionId","position","func","animation","useResizer","floating","useFloating","click","useClick","role","useRole","dismiss","useDismiss","event","target","interactions","useInteractions","Trigger","floatingSize","useMotionValue","sheetY","isDragging","dragStart","useEffect","onClose","useImperativeHandle","draggableMotionProps","_","scrollInitial","scroll","Component","Slot","Fragment","MotionConfig","FloatingPortal","AnimatePresence","FloatingOverlay","FloatingFocusManager","jsxs","mergeRefs","currentY","threshold","animate","touch","y","prevY","scrollTop","XIcon","confirmGlobal","options","ModalConfirmProvider","setOpen","setOptions","resolve","setResolve","confirmAction","useCallback","opts","res","onConfirm","onCancel","Button"],"mappings":"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"}
@@ -1,5 +1,5 @@
1
1
  import { jsxs as u, jsx as n } from "react/jsx-runtime";
2
- import { u as N, i as S, d as T, B as j, n as B, C as L, v as z, w as G, c as H, F as M, e as U, s as W, o as Y, m as _, a as q, f as J, b as K } from "../../floating-ui.react-DycKASR0.js";
2
+ import { u as N, i as S, d as T, B as j, n as B, C as L, v as z, w as G, c as H, F as M, e as U, s as W, o as Y, m as _, a as q, f as J, b as K } from "../../floating-ui.react-QNHG9W4N.js";
3
3
  import { forwardRef as Q, useState as V, useRef as X, useEffect as Z, Fragment as $ } from "react";
4
4
  import { P as oo } from "../../polymorph-B5n9fs_K.js";
5
5
  import { F as eo } from "../../constants-r-AHn273.js";
@@ -1,15 +1,15 @@
1
1
  import "react/jsx-runtime";
2
- import "../../floating-ui.react-DycKASR0.js";
2
+ import "../../floating-ui.react-QNHG9W4N.js";
3
+ import "../../CaretDown.es-Cj7klWI3.js";
3
4
  import "react";
4
5
  import "react-dom";
5
- import "../../index-BtlhELJ3.js";
6
+ import "../../index-C-PuFUZi.js";
6
7
  import "../../dom-Dl8XH0CK.js";
7
- import { A as u } from "../../autocomplete-Boida9R7.js";
8
+ import { A as u } from "../../autocomplete-Cn9Z2hLq.js";
8
9
  import "../../use-translations-BwLKTrZv.js";
9
10
  import "../../fns-D2eyJKd5.js";
10
- import "../../input-field-DTeIrwpK.js";
11
+ import "../../input-field-5vYcz5tT.js";
11
12
  import "../../proxy-BZcQiBrp.js";
12
- import "../../chevron-down-BBFYYzZq.js";
13
13
  export {
14
14
  u as Autocomplete
15
15
  };
@@ -1,11 +1,11 @@
1
1
  import "react/jsx-runtime";
2
+ import { D as c } from "../../date-picker-DwNo22lx.js";
2
3
  import "react";
3
4
  import "../../dom-Dl8XH0CK.js";
4
- import "../../calendar-BswV66Nx.js";
5
+ import "../../calendar-B5lSd0ID.js";
5
6
  import "../../use-translations-BwLKTrZv.js";
6
7
  import "../floating/dropdown.js";
7
- import "../../input-CoJoHIhd.js";
8
- import { D as c } from "../../date-picker-BxPTdZPy.js";
8
+ import "../../input-CrGrSnUt.js";
9
9
  export {
10
10
  c as DatePicker
11
11
  };
@@ -1 +1 @@
1
- {"version":3,"file":"file-upload.d.ts","sourceRoot":"","sources":["../../../src/components/form/file-upload.tsx"],"names":[],"mappings":"AAcA,OAAO,KAAmE,MAAM,OAAO,CAAC;AACxF,OAAO,EAAE,aAAa,EAAe,MAAM,gBAAgB,CAAC;AAC5D,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAatC,KAAK,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,cAAc,CAAC,OAAO,CAAC,EAAE,aAAa,CAAC,GAAG;IAClE,KAAK,CAAC,EAAE,IAAI,EAAE,CAAC;IACf,IAAI,CAAC,EAAE,KAAK,CAAC,YAAY,CAAC;IAC1B,IAAI,CAAC,EAAE,KAAK,CAAC,EAAE,CAAC;QAAE,IAAI,EAAE,IAAI,CAAA;KAAE,CAAC,CAAC;IAChC,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,IAAI,CAAC;IAChC,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,IAAI,CAAC;CACvC,CAAC;AAgJF,eAAO,MAAM,UAAU,GAAI,gDAA8D,KAAK,sBA8B7F,CAAC"}
1
+ {"version":3,"file":"file-upload.d.ts","sourceRoot":"","sources":["../../../src/components/form/file-upload.tsx"],"names":[],"mappings":"AAcA,OAAO,KAAmE,MAAM,OAAO,CAAC;AACxF,OAAO,EAAE,aAAa,EAAe,MAAM,gBAAgB,CAAC;AAC5D,OAAO,EAAE,QAAQ,EAAE,MAAM,YAAY,CAAC;AAatC,KAAK,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,cAAc,CAAC,OAAO,CAAC,EAAE,aAAa,CAAC,GAAG;IAClE,KAAK,CAAC,EAAE,IAAI,EAAE,CAAC;IACf,IAAI,CAAC,EAAE,KAAK,CAAC,YAAY,CAAC;IAC1B,IAAI,CAAC,EAAE,KAAK,CAAC,EAAE,CAAC;QAAE,IAAI,EAAE,IAAI,CAAA;KAAE,CAAC,CAAC;IAChC,MAAM,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,EAAE,KAAK,IAAI,CAAC;IAChC,YAAY,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,IAAI,CAAC;CACvC,CAAC;AA2IF,eAAO,MAAM,UAAU,GAAI,gDAA8D,KAAK,sBA8B7F,CAAC"}
@@ -1,10 +1,10 @@
1
1
  import "react/jsx-runtime";
2
- import { F as l } from "../../file-upload-BB6BdGcE.js";
2
+ import "../../File.es-CA-vuPED.js";
3
+ import { F as l } from "../../file-upload-Brf2NkLr.js";
4
+ import "../../X.es-BJ1O93El.js";
3
5
  import "react";
4
6
  import "../../use-translations-BwLKTrZv.js";
5
7
  import "../floating/modal.js";
6
- import "../../file-CBCP85VI.js";
7
- import "../../x-B9bYxG31.js";
8
8
  export {
9
9
  l as FileUpload
10
10
  };
@@ -1 +1 @@
1
- {"version":3,"file":"input-field.d.ts","sourceRoot":"","sources":["../../../src/components/form/input-field.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,EAAwB,KAAK,iBAAiB,EAAE,MAAM,OAAO,CAAC;AAI5E,OAAO,EAAE,KAAK,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACnD,OAAO,EAAE,KAAK,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAG1D,MAAM,MAAM,aAAa,GAAG,KAAK,CAAC,iBAAiB,CAC/C,OAAO,CAAC;IACJ,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,KAAK,CAAC;IACZ,KAAK,EAAE,KAAK,CAAC;IACb,QAAQ,EAAE,OAAO,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,OAAO,CAAC;IACtB,WAAW,EAAE,OAAO,CAAC;CACxB,CAAC,CACL,CAAC;AAEF,eAAO,MAAM,aAAa,GAAI,kEAA0E,aAAa,sBAmDpH,CAAC;AAEF,MAAM,MAAM,eAAe,CAAC,CAAC,SAAS,OAAO,GAAG,QAAQ,GAAG,UAAU,IAAI,gBAAgB,CACrF,OAAO,CACH,QAAQ,CACJ,aAAa,EACb;IACI,OAAO,EAAE,OAAO,CAAC;IACjB,aAAa,EAAE,MAAM,CAAC;IACtB,IAAI,EAAE,KAAK,CAAC;IACZ,cAAc,EAAE,MAAM,CAAC;IACvB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,OAAO,CAAC;IAClB,WAAW,EAAE,OAAO,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,KAAK,CAAC;IACZ,QAAQ,EAAE,KAAK,CAAC;IAChB,YAAY,EAAE,MAAM,CAAC;IACrB,KAAK,EAAE,KAAK,CAAC;IACb,UAAU,EAAE,KAAK,CAAC;IAClB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;CACvB,CACJ,CACJ,EACD,CAAC,CACJ,CAAC;AAEF,eAAO,MAAM,UAAU,EAAE,CAAC,CAAC,SAAS,OAAO,GAAG,QAAQ,GAAG,UAAU,EAAE,KAAK,EAAE,iBAAiB,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,KAAK,KAAK,CAAC,YAmFpH,CAAC"}
1
+ {"version":3,"file":"input-field.d.ts","sourceRoot":"","sources":["../../../src/components/form/input-field.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,EAAwB,KAAK,iBAAiB,EAAE,MAAM,OAAO,CAAC;AAI5E,OAAO,EAAE,KAAK,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AACnD,OAAO,EAAE,KAAK,gBAAgB,EAAE,MAAM,mBAAmB,CAAC;AAG1D,MAAM,MAAM,aAAa,GAAG,KAAK,CAAC,iBAAiB,CAC/C,OAAO,CAAC;IACJ,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,KAAK,CAAC;IACZ,KAAK,EAAE,KAAK,CAAC;IACb,QAAQ,EAAE,OAAO,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,WAAW,EAAE,MAAM,CAAC;IACpB,YAAY,EAAE,OAAO,CAAC;IACtB,WAAW,EAAE,OAAO,CAAC;CACxB,CAAC,CACL,CAAC;AAEF,eAAO,MAAM,aAAa,GAAI,kEAA0E,aAAa,sBA+CpH,CAAC;AAEF,MAAM,MAAM,eAAe,CAAC,CAAC,SAAS,OAAO,GAAG,QAAQ,GAAG,UAAU,IAAI,gBAAgB,CACrF,OAAO,CACH,QAAQ,CACJ,aAAa,EACb;IACI,OAAO,EAAE,OAAO,CAAC;IACjB,aAAa,EAAE,MAAM,CAAC;IACtB,IAAI,EAAE,KAAK,CAAC;IACZ,cAAc,EAAE,MAAM,CAAC;IACvB,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,OAAO,CAAC;IAClB,WAAW,EAAE,OAAO,CAAC;IACrB,SAAS,EAAE,MAAM,CAAC;IAClB,IAAI,EAAE,KAAK,CAAC;IACZ,QAAQ,EAAE,KAAK,CAAC;IAChB,YAAY,EAAE,MAAM,CAAC;IACrB,KAAK,EAAE,KAAK,CAAC;IACb,UAAU,EAAE,KAAK,CAAC;IAClB,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,MAAM,CAAC;IACb,WAAW,EAAE,MAAM,CAAC;CACvB,CACJ,CACJ,EACD,CAAC,CACJ,CAAC;AAEF,eAAO,MAAM,UAAU,EAAE,CAAC,CAAC,SAAS,OAAO,GAAG,QAAQ,GAAG,UAAU,EAAE,KAAK,EAAE,iBAAiB,CAAC,eAAe,CAAC,CAAC,CAAC,CAAC,KAAK,KAAK,CAAC,YAmFpH,CAAC"}
@@ -1,4 +1,4 @@
1
- import { I as r } from "../../input-CoJoHIhd.js";
1
+ import { I as r } from "../../input-CrGrSnUt.js";
2
2
  export {
3
3
  r as Input
4
4
  };
@@ -1,9 +1,9 @@
1
- import { jsx as l, jsxs as a } from "react/jsx-runtime";
2
- import { forwardRef as R, useRef as D, useImperativeHandle as E, useEffect as j, createElement as z } from "react";
3
- import { u as A } from "../../use-translations-BwLKTrZv.js";
4
- import { i as F, c as L, m as $ } from "../../dom-Dl8XH0CK.js";
5
- import { I as H } from "../../input-field-DTeIrwpK.js";
6
- import { C as S } from "../../chevron-down-BBFYYzZq.js";
1
+ import { jsx as r, jsxs as a } from "react/jsx-runtime";
2
+ import { forwardRef as R, useRef as E, useImperativeHandle as j, useEffect as z, createElement as A } from "react";
3
+ import { e as D } from "../../CaretDown.es-Cj7klWI3.js";
4
+ import { u as F } from "../../use-translations-BwLKTrZv.js";
5
+ import { i as L, c as $, m as H } from "../../dom-Dl8XH0CK.js";
6
+ import { I as S } from "../../input-field-5vYcz5tT.js";
7
7
  const P = R(
8
8
  ({
9
9
  required: o = !0,
@@ -19,15 +19,15 @@ const P = R(
19
19
  optionalText: p,
20
20
  container: v,
21
21
  hideLeft: x = !1,
22
- right: C,
23
- left: y,
24
- error: w,
22
+ right: y,
23
+ left: C,
24
+ error: N,
25
25
  ...e
26
26
  }, i) => {
27
- const N = A(), n = D(null), r = e.id ?? e.name;
28
- E(i, () => n.current), j(() => {
27
+ const k = F(), n = E(null), l = e.id ?? e.name;
28
+ j(i, () => n.current), z(() => {
29
29
  if (n.current === null) return;
30
- const t = new AbortController(), c = n.current, I = F(n.current);
30
+ const t = new AbortController(), c = n.current, I = L(n.current);
31
31
  return c.addEventListener("change", () => c.setAttribute("data-selected", "true"), {
32
32
  once: !0,
33
33
  signal: t.signal
@@ -35,13 +35,13 @@ const P = R(
35
35
  I(), t.abort();
36
36
  };
37
37
  }, []);
38
- const k = () => n.current?.focus();
39
- return /* @__PURE__ */ l(
40
- H,
38
+ const w = () => n.current?.focus();
39
+ return /* @__PURE__ */ r(
40
+ S,
41
41
  {
42
42
  info: u,
43
- left: y,
44
- error: w,
43
+ left: C,
44
+ error: N,
45
45
  form: e.form,
46
46
  loading: b,
47
47
  name: e.name,
@@ -58,24 +58,24 @@ const P = R(
58
58
  optionalText: p,
59
59
  labelClassName: m,
60
60
  placeholder: e.placeholder,
61
- right: /* @__PURE__ */ a("label", { htmlFor: r, children: [
62
- C,
63
- /* @__PURE__ */ a("button", { onClick: k, type: "button", className: "mt-2 transition-colors hover:text-primary", children: [
64
- /* @__PURE__ */ l(S, { size: 20 }),
65
- /* @__PURE__ */ l("span", { className: "sr-only", children: N.inputCaretDown })
61
+ right: /* @__PURE__ */ a("label", { htmlFor: l, children: [
62
+ y,
63
+ /* @__PURE__ */ a("button", { onClick: w, type: "button", className: "mt-2 transition-colors hover:text-primary", children: [
64
+ /* @__PURE__ */ r(D, { size: 20 }),
65
+ /* @__PURE__ */ r("span", { className: "sr-only", children: k.inputCaretDown })
66
66
  ] })
67
67
  ] }),
68
68
  children: /* @__PURE__ */ a(
69
69
  "select",
70
70
  {
71
71
  ...e,
72
- id: r,
73
- name: r,
72
+ id: l,
73
+ name: l,
74
74
  required: o,
75
- ref: $(i, n),
75
+ ref: H(i, n),
76
76
  "data-selected": !!e.value || !1,
77
77
  title: typeof e.title == "string" ? e.title : void 0,
78
- className: L(
78
+ className: $(
79
79
  "input select group h-10 w-full flex-1 appearance-none rounded-md text-base",
80
80
  "bg-transparent px-2 py-1 text-foreground placeholder-input-placeholder",
81
81
  "outline-none transition-colors group-error:text-danger group-error:placeholder-input-mask-error",
@@ -83,14 +83,14 @@ const P = R(
83
83
  e.className
84
84
  ),
85
85
  children: [
86
- /* @__PURE__ */ l("option", { value: "", disabled: !0, hidden: !0, children: e.placeholder }),
87
- s.map((t) => /* @__PURE__ */ z(
86
+ /* @__PURE__ */ r("option", { value: "", disabled: !0, hidden: !0, children: e.placeholder }),
87
+ s.map((t) => /* @__PURE__ */ A(
88
88
  "option",
89
89
  {
90
90
  ...t,
91
91
  value: t.value,
92
92
  children: t.label ?? t.value,
93
- key: `${r}-select-option-${t.value}`
93
+ key: `${l}-select-option-${t.value}`
94
94
  }
95
95
  ))
96
96
  ]
@@ -1 +1 @@
1
- {"version":3,"file":"select.js","sources":["../../../src/components/form/select.tsx"],"sourcesContent":["\"use client\";\nimport { ChevronDownIcon } from \"lucide-react\";\nimport React, { forwardRef, useEffect, useImperativeHandle, useRef } from \"react\";\nimport { useTranslations } from \"../../hooks/use-translations\";\nimport { css, initializeInputDataset, mergeRefs } from \"../../lib/dom\";\nimport { Override } from \"../../types\";\nimport { InputField, InputFieldProps } from \"./input-field\";\n\nexport type OptionProps = Override<\n React.ComponentProps<\"option\">,\n {\n value: string;\n \"data-dynamic\"?: string;\n } & Partial<Record<`data-${string}`, string>>\n>;\n\nexport type SelectProps = Override<\n InputFieldProps<\"select\">,\n {\n options: OptionProps[];\n selectContainer?: string;\n }\n>;\n\nexport const Select = forwardRef<HTMLSelectElement, SelectProps>(\n (\n {\n required = true,\n options,\n info,\n selectContainer = \"\",\n feedback = null,\n labelClassName,\n interactive,\n rightLabel,\n hiddenLabel,\n loading,\n optionalText,\n container,\n hideLeft = false,\n right,\n left,\n error,\n ...props\n }: SelectProps,\n ref\n ) => {\n const translation = useTranslations();\n const inputRef = useRef<HTMLSelectElement>(null);\n const id = props.id ?? props.name;\n useImperativeHandle(ref, () => inputRef.current!);\n\n useEffect(() => {\n if (inputRef.current === null) return;\n const controller = new AbortController();\n const input = inputRef.current;\n const focus = initializeInputDataset(inputRef.current);\n input.addEventListener(\"change\", () => input.setAttribute(\"data-selected\", \"true\"), {\n once: true,\n signal: controller.signal,\n });\n return () => {\n focus();\n controller.abort();\n };\n }, []);\n\n const onClickLabel = () => inputRef.current?.focus();\n\n return (\n <InputField<\"select\">\n info={info}\n left={left}\n error={error}\n form={props.form}\n loading={loading}\n name={props.name}\n feedback={feedback}\n hideLeft={hideLeft}\n required={required}\n title={props.title}\n container={container}\n componentName=\"select\"\n rightLabel={rightLabel}\n hiddenLabel={hiddenLabel}\n interactive={interactive}\n id={props.name || props.id}\n optionalText={optionalText}\n labelClassName={labelClassName}\n placeholder={props.placeholder}\n right={\n <label htmlFor={id}>\n {right}\n <button onClick={onClickLabel} type=\"button\" className=\"mt-2 transition-colors hover:text-primary\">\n <ChevronDownIcon size={20} />\n <span className=\"sr-only\">{translation.inputCaretDown}</span>\n </button>\n </label>\n }\n >\n <select\n {...props}\n id={id}\n name={id}\n required={required}\n ref={mergeRefs(ref, inputRef)}\n data-selected={!!props.value || false}\n title={typeof props.title === \"string\" ? props.title : undefined}\n className={css(\n \"input select group h-10 w-full flex-1 appearance-none rounded-md text-base\",\n \"bg-transparent px-2 py-1 text-foreground placeholder-input-placeholder\",\n \"outline-none transition-colors group-error:text-danger group-error:placeholder-input-mask-error\",\n \"data-[selected=false]:text-input-placeholder\",\n props.className\n )}\n >\n <option value=\"\" disabled hidden>\n {props.placeholder}\n </option>\n {options.map((option) => (\n <option\n {...option}\n value={option.value}\n children={option.label ?? option.value}\n key={`${id}-select-option-${option.value}`}\n />\n ))}\n </select>\n </InputField>\n );\n }\n);\n"],"names":["Select","forwardRef","required","options","info","selectContainer","feedback","labelClassName","interactive","rightLabel","hiddenLabel","loading","optionalText","container","hideLeft","right","left","error","props","ref","translation","useTranslations","inputRef","useRef","id","useImperativeHandle","useEffect","controller","input","focus","initializeInputDataset","onClickLabel","jsx","InputField","jsxs","ChevronDownIcon","mergeRefs","css","option","createElement"],"mappings":"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"}
1
+ {"version":3,"file":"select.js","sources":["../../../src/components/form/select.tsx"],"sourcesContent":["\"use client\";\nimport { CaretDownIcon } from \"@phosphor-icons/react\";\nimport React, { forwardRef, useEffect, useImperativeHandle, useRef } from \"react\";\nimport { useTranslations } from \"../../hooks/use-translations\";\nimport { css, initializeInputDataset, mergeRefs } from \"../../lib/dom\";\nimport { Override } from \"../../types\";\nimport { InputField, InputFieldProps } from \"./input-field\";\n\nexport type OptionProps = Override<\n React.ComponentProps<\"option\">,\n {\n value: string;\n \"data-dynamic\"?: string;\n } & Partial<Record<`data-${string}`, string>>\n>;\n\nexport type SelectProps = Override<\n InputFieldProps<\"select\">,\n {\n options: OptionProps[];\n selectContainer?: string;\n }\n>;\n\nexport const Select = forwardRef<HTMLSelectElement, SelectProps>(\n (\n {\n required = true,\n options,\n info,\n selectContainer = \"\",\n feedback = null,\n labelClassName,\n interactive,\n rightLabel,\n hiddenLabel,\n loading,\n optionalText,\n container,\n hideLeft = false,\n right,\n left,\n error,\n ...props\n }: SelectProps,\n ref\n ) => {\n const translation = useTranslations();\n const inputRef = useRef<HTMLSelectElement>(null);\n const id = props.id ?? props.name;\n useImperativeHandle(ref, () => inputRef.current!);\n\n useEffect(() => {\n if (inputRef.current === null) return;\n const controller = new AbortController();\n const input = inputRef.current;\n const focus = initializeInputDataset(inputRef.current);\n input.addEventListener(\"change\", () => input.setAttribute(\"data-selected\", \"true\"), {\n once: true,\n signal: controller.signal,\n });\n return () => {\n focus();\n controller.abort();\n };\n }, []);\n\n const onClickLabel = () => inputRef.current?.focus();\n\n return (\n <InputField<\"select\">\n info={info}\n left={left}\n error={error}\n form={props.form}\n loading={loading}\n name={props.name}\n feedback={feedback}\n hideLeft={hideLeft}\n required={required}\n title={props.title}\n container={container}\n componentName=\"select\"\n rightLabel={rightLabel}\n hiddenLabel={hiddenLabel}\n interactive={interactive}\n id={props.name || props.id}\n optionalText={optionalText}\n labelClassName={labelClassName}\n placeholder={props.placeholder}\n right={\n <label htmlFor={id}>\n {right}\n <button onClick={onClickLabel} type=\"button\" className=\"mt-2 transition-colors hover:text-primary\">\n <CaretDownIcon size={20} />\n <span className=\"sr-only\">{translation.inputCaretDown}</span>\n </button>\n </label>\n }\n >\n <select\n {...props}\n id={id}\n name={id}\n required={required}\n ref={mergeRefs(ref, inputRef)}\n data-selected={!!props.value || false}\n title={typeof props.title === \"string\" ? props.title : undefined}\n className={css(\n \"input select group h-10 w-full flex-1 appearance-none rounded-md text-base\",\n \"bg-transparent px-2 py-1 text-foreground placeholder-input-placeholder\",\n \"outline-none transition-colors group-error:text-danger group-error:placeholder-input-mask-error\",\n \"data-[selected=false]:text-input-placeholder\",\n props.className\n )}\n >\n <option value=\"\" disabled hidden>\n {props.placeholder}\n </option>\n {options.map((option) => (\n <option\n {...option}\n value={option.value}\n children={option.label ?? option.value}\n key={`${id}-select-option-${option.value}`}\n />\n ))}\n </select>\n </InputField>\n );\n }\n);\n"],"names":["Select","forwardRef","required","options","info","selectContainer","feedback","labelClassName","interactive","rightLabel","hiddenLabel","loading","optionalText","container","hideLeft","right","left","error","props","ref","translation","useTranslations","inputRef","useRef","id","useImperativeHandle","useEffect","controller","input","focus","initializeInputDataset","onClickLabel","jsx","InputField","jsxs","CaretDownIcon","mergeRefs","css","option","createElement"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"task-list.js","sources":["../../../../../node_modules/.pnpm/motion-dom@12.34.3/node_modules/motion-dom/dist/es/utils/stagger.mjs","../../../../../node_modules/.pnpm/framer-motion@12.34.3_react-dom@19.2.3_react@19.2.3__react@19.2.3/node_modules/framer-motion/dist/es/utils/use-unmount-effect.mjs","../../../../../node_modules/.pnpm/framer-motion@12.34.3_react-dom@19.2.3_react@19.2.3__react@19.2.3/node_modules/framer-motion/dist/es/utils/reduced-motion/use-reduced-motion.mjs","../../../../../node_modules/.pnpm/framer-motion@12.34.3_react-dom@19.2.3_react@19.2.3__react@19.2.3/node_modules/framer-motion/dist/es/utils/reduced-motion/use-reduced-motion-config.mjs","../../../../../node_modules/.pnpm/framer-motion@12.34.3_react-dom@19.2.3_react@19.2.3__react@19.2.3/node_modules/framer-motion/dist/es/animation/hooks/use-animate.mjs","../../../src/components/form/task-list.tsx"],"sourcesContent":["import { easingDefinitionToFunction } from 'motion-utils';\n\nfunction getOriginIndex(from, total) {\n if (from === \"first\") {\n return 0;\n }\n else {\n const lastIndex = total - 1;\n return from === \"last\" ? lastIndex : lastIndex / 2;\n }\n}\nfunction stagger(duration = 0.1, { startDelay = 0, from = 0, ease } = {}) {\n return (i, total) => {\n const fromIndex = typeof from === \"number\" ? from : getOriginIndex(from, total);\n const distance = Math.abs(fromIndex - i);\n let delay = duration * distance;\n if (ease) {\n const maxDelay = total * duration;\n const easingFunction = easingDefinitionToFunction(ease);\n delay = easingFunction(delay / maxDelay) * maxDelay;\n }\n return startDelay + delay;\n };\n}\n\nexport { getOriginIndex, stagger };\n//# sourceMappingURL=stagger.mjs.map\n","\"use client\";\nimport { useEffect } from 'react';\n\nfunction useUnmountEffect(callback) {\n return useEffect(() => () => callback(), []);\n}\n\nexport { useUnmountEffect };\n//# sourceMappingURL=use-unmount-effect.mjs.map\n","\"use client\";\nimport { hasReducedMotionListener, initPrefersReducedMotion, prefersReducedMotion } from 'motion-dom';\nimport { warnOnce } from 'motion-utils';\nimport { useState } from 'react';\n\n/**\n * A hook that returns `true` if we should be using reduced motion based on the current device's Reduced Motion setting.\n *\n * This can be used to implement changes to your UI based on Reduced Motion. For instance, replacing motion-sickness inducing\n * `x`/`y` animations with `opacity`, disabling the autoplay of background videos, or turning off parallax motion.\n *\n * It will actively respond to changes and re-render your components with the latest setting.\n *\n * ```jsx\n * export function Sidebar({ isOpen }) {\n * const shouldReduceMotion = useReducedMotion()\n * const closedX = shouldReduceMotion ? 0 : \"-100%\"\n *\n * return (\n * <motion.div animate={{\n * opacity: isOpen ? 1 : 0,\n * x: isOpen ? 0 : closedX\n * }} />\n * )\n * }\n * ```\n *\n * @return boolean\n *\n * @public\n */\nfunction useReducedMotion() {\n /**\n * Lazy initialisation of prefersReducedMotion\n */\n !hasReducedMotionListener.current && initPrefersReducedMotion();\n const [shouldReduceMotion] = useState(prefersReducedMotion.current);\n if (process.env.NODE_ENV !== \"production\") {\n warnOnce(shouldReduceMotion !== true, \"You have Reduced Motion enabled on your device. Animations may not appear as expected.\", \"reduced-motion-disabled\");\n }\n /**\n * TODO See if people miss automatically updating shouldReduceMotion setting\n */\n return shouldReduceMotion;\n}\n\nexport { useReducedMotion };\n//# sourceMappingURL=use-reduced-motion.mjs.map\n","\"use client\";\nimport { useContext } from 'react';\nimport { MotionConfigContext } from '../../context/MotionConfigContext.mjs';\nimport { useReducedMotion } from './use-reduced-motion.mjs';\n\nfunction useReducedMotionConfig() {\n const reducedMotionPreference = useReducedMotion();\n const { reducedMotion } = useContext(MotionConfigContext);\n if (reducedMotion === \"never\") {\n return false;\n }\n else if (reducedMotion === \"always\") {\n return true;\n }\n else {\n return reducedMotionPreference;\n }\n}\n\nexport { useReducedMotionConfig };\n//# sourceMappingURL=use-reduced-motion-config.mjs.map\n","\"use client\";\nimport { useMemo } from 'react';\nimport { useConstant } from '../../utils/use-constant.mjs';\nimport { useUnmountEffect } from '../../utils/use-unmount-effect.mjs';\nimport { useReducedMotionConfig } from '../../utils/reduced-motion/use-reduced-motion-config.mjs';\nimport { createScopedAnimate } from '../animate/index.mjs';\n\nfunction useAnimate() {\n const scope = useConstant(() => ({\n current: null, // Will be hydrated by React\n animations: [],\n }));\n const reduceMotion = useReducedMotionConfig() ?? undefined;\n const animate = useMemo(() => createScopedAnimate({ scope, reduceMotion }), [scope, reduceMotion]);\n useUnmountEffect(() => {\n scope.animations.forEach((animation) => animation.stop());\n scope.animations.length = 0;\n });\n return [scope, animate];\n}\n\nexport { useAnimate };\n//# sourceMappingURL=use-animate.mjs.map\n","\"use client\";\nimport { stagger, useAnimate } from \"motion/react\";\nimport { ComponentProps, PropsWithChildren, useEffect } from \"react\";\n\nexport const TaskList = (props: PropsWithChildren<ComponentProps<\"fieldset\">>) => {\n const [ref, animate] = useAnimate();\n\n useEffect(() => {\n const container = ref.current as HTMLFieldSetElement | null;\n if (!container) return;\n const handler = (e: Event) => {\n const input = e.target as HTMLInputElement;\n const items = Array.from(container.querySelectorAll(\"input[data-task=true]\")) as HTMLInputElement[];\n const allTaskChecked = items.every((el) => el.checked);\n const index = items.indexOf(input);\n if (allTaskChecked && index !== -1) {\n animate(\n \"input\",\n { scale: [1, 1.35, 1], rotate: [0, 20, -20, 0] },\n {\n duration: 0.5,\n delay: stagger(0.075, { from: index }),\n }\n );\n }\n };\n container.addEventListener(\"change\", handler);\n return () => container.removeEventListener(\"change\", handler);\n }, []);\n\n return <fieldset {...props} data-component=\"task-list\" ref={ref} />;\n};\n"],"names":["getOriginIndex","from","total","lastIndex","stagger","duration","startDelay","ease","fromIndex","distance","delay","maxDelay","easingDefinitionToFunction","useUnmountEffect","callback","useEffect","useReducedMotion","hasReducedMotionListener","initPrefersReducedMotion","shouldReduceMotion","useState","prefersReducedMotion","warnOnce","useReducedMotionConfig","reducedMotionPreference","reducedMotion","useContext","MotionConfigContext","useAnimate","scope","useConstant","reduceMotion","animate","useMemo","createScopedAnimate","animation","TaskList","props","ref","container","handler","e","input","items","allTaskChecked","el","index"],"mappings":";;;;AAEA,SAASA,EAAeC,GAAMC,GAAO;AACjC,MAAID,MAAS;AACT,WAAO;AAEN;AACD,UAAME,IAAYD,IAAQ;AAC1B,WAAOD,MAAS,SAASE,IAAYA,IAAY;AAAA,EACzD;AACA;AACA,SAASC,EAAQC,IAAW,KAAK,EAAE,YAAAC,IAAa,GAAG,MAAAL,IAAO,GAAG,MAAAM,EAAI,IAAK,IAAI;AACtE,SAAO,CAAC,GAAGL,MAAU;AACjB,UAAMM,IAAY,OAAOP,KAAS,WAAWA,IAAOD,EAAeC,GAAMC,CAAK,GACxEO,IAAW,KAAK,IAAID,IAAY,CAAC;AACvC,QAAIE,IAAQL,IAAWI;AACvB,QAAIF,GAAM;AACN,YAAMI,IAAWT,IAAQG;AAEzB,MAAAK,IADuBE,EAA2BL,CAAI,EAC/BG,IAAQC,CAAQ,IAAIA;AAAA,IACvD;AACQ,WAAOL,IAAaI;AAAA,EAC5B;AACA;ACpBA,SAASG,EAAiBC,GAAU;AAChC,SAAOC,EAAU,MAAM,MAAMD,EAAQ,GAAI,CAAA,CAAE;AAC/C;AC0BA,SAASE,IAAmB;AAIxB,GAACC,EAAyB,WAAWC,EAAwB;AAC7D,QAAM,CAACC,CAAkB,IAAIC,EAASC,EAAqB,OAAO;AAClE,SAAI,QAAQ,IAAI,aAAa,gBACzBC,EAASH,MAAuB,IAAM,0FAA0F,yBAAyB,GAKtJA;AACX;ACvCA,SAASI,IAAyB;AAC9B,QAAMC,IAA0BR,EAAgB,GAC1C,EAAE,eAAAS,EAAa,IAAKC,EAAWC,CAAmB;AACxD,SAAIF,MAAkB,UACX,KAEFA,MAAkB,WAChB,KAGAD;AAEf;ACVA,SAASI,IAAa;AAClB,QAAMC,IAAQC,EAAY,OAAO;AAAA,IAC7B,SAAS;AAAA;AAAA,IACT,YAAY,CAAA;AAAA,EACpB,EAAM,GACIC,IAAeR,EAAsB,KAAM,QAC3CS,IAAUC,EAAQ,MAAMC,EAAoB,EAAE,OAAAL,GAAO,cAAAE,EAAY,CAAE,GAAG,CAACF,GAAOE,CAAY,CAAC;AACjG,SAAAlB,EAAiB,MAAM;AACnB,IAAAgB,EAAM,WAAW,QAAQ,CAACM,MAAcA,EAAU,MAAM,GACxDN,EAAM,WAAW,SAAS;AAAA,EAClC,CAAK,GACM,CAACA,GAAOG,CAAO;AAC1B;ACfO,MAAMI,IAAW,CAACC,MAAyD;AAC9E,QAAM,CAACC,GAAKN,CAAO,IAAIJ,EAAA;AAEvB,SAAAb,EAAU,MAAM;AACZ,UAAMwB,IAAYD,EAAI;AACtB,QAAI,CAACC,EAAW;AAChB,UAAMC,IAAU,CAACC,MAAa;AAC1B,YAAMC,IAAQD,EAAE,QACVE,IAAQ,MAAM,KAAKJ,EAAU,iBAAiB,uBAAuB,CAAC,GACtEK,IAAiBD,EAAM,MAAM,CAACE,MAAOA,EAAG,OAAO,GAC/CC,IAAQH,EAAM,QAAQD,CAAK;AACjC,MAAIE,KAAkBE,MAAU,MAC5Bd;AAAA,QACI;AAAA,QACA,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC,GAAG,QAAQ,CAAC,GAAG,IAAI,KAAK,CAAC,EAAA;AAAA,QAC7C;AAAA,UACI,UAAU;AAAA,UACV,OAAO5B,EAAQ,OAAO,EAAE,MAAM0C,GAAO;AAAA,QAAA;AAAA,MACzC;AAAA,IAER;AAEJ,WAAAP,EAAU,iBAAiB,UAAUC,CAAO,GACrC,MAAMD,EAAU,oBAAoB,UAAUC,CAAO;AAAA,EAAA,GAC7D,EAAE,qBAEG,YAAA,EAAU,GAAGH,GAAO,kBAAe,aAAY,KAAAC,GAAU;AACrE;","x_google_ignoreList":[0,1,2,3,4]}
1
+ {"version":3,"file":"task-list.js","sources":["../../../node_modules/motion-dom/dist/es/utils/stagger.mjs","../../../node_modules/framer-motion/dist/es/utils/use-unmount-effect.mjs","../../../node_modules/framer-motion/dist/es/utils/reduced-motion/use-reduced-motion.mjs","../../../node_modules/framer-motion/dist/es/utils/reduced-motion/use-reduced-motion-config.mjs","../../../node_modules/framer-motion/dist/es/animation/hooks/use-animate.mjs","../../../src/components/form/task-list.tsx"],"sourcesContent":["import { easingDefinitionToFunction } from 'motion-utils';\n\nfunction getOriginIndex(from, total) {\n if (from === \"first\") {\n return 0;\n }\n else {\n const lastIndex = total - 1;\n return from === \"last\" ? lastIndex : lastIndex / 2;\n }\n}\nfunction stagger(duration = 0.1, { startDelay = 0, from = 0, ease } = {}) {\n return (i, total) => {\n const fromIndex = typeof from === \"number\" ? from : getOriginIndex(from, total);\n const distance = Math.abs(fromIndex - i);\n let delay = duration * distance;\n if (ease) {\n const maxDelay = total * duration;\n const easingFunction = easingDefinitionToFunction(ease);\n delay = easingFunction(delay / maxDelay) * maxDelay;\n }\n return startDelay + delay;\n };\n}\n\nexport { getOriginIndex, stagger };\n//# sourceMappingURL=stagger.mjs.map\n","\"use client\";\nimport { useEffect } from 'react';\n\nfunction useUnmountEffect(callback) {\n return useEffect(() => () => callback(), []);\n}\n\nexport { useUnmountEffect };\n//# sourceMappingURL=use-unmount-effect.mjs.map\n","\"use client\";\nimport { hasReducedMotionListener, initPrefersReducedMotion, prefersReducedMotion } from 'motion-dom';\nimport { warnOnce } from 'motion-utils';\nimport { useState } from 'react';\n\n/**\n * A hook that returns `true` if we should be using reduced motion based on the current device's Reduced Motion setting.\n *\n * This can be used to implement changes to your UI based on Reduced Motion. For instance, replacing motion-sickness inducing\n * `x`/`y` animations with `opacity`, disabling the autoplay of background videos, or turning off parallax motion.\n *\n * It will actively respond to changes and re-render your components with the latest setting.\n *\n * ```jsx\n * export function Sidebar({ isOpen }) {\n * const shouldReduceMotion = useReducedMotion()\n * const closedX = shouldReduceMotion ? 0 : \"-100%\"\n *\n * return (\n * <motion.div animate={{\n * opacity: isOpen ? 1 : 0,\n * x: isOpen ? 0 : closedX\n * }} />\n * )\n * }\n * ```\n *\n * @return boolean\n *\n * @public\n */\nfunction useReducedMotion() {\n /**\n * Lazy initialisation of prefersReducedMotion\n */\n !hasReducedMotionListener.current && initPrefersReducedMotion();\n const [shouldReduceMotion] = useState(prefersReducedMotion.current);\n if (process.env.NODE_ENV !== \"production\") {\n warnOnce(shouldReduceMotion !== true, \"You have Reduced Motion enabled on your device. Animations may not appear as expected.\", \"reduced-motion-disabled\");\n }\n /**\n * TODO See if people miss automatically updating shouldReduceMotion setting\n */\n return shouldReduceMotion;\n}\n\nexport { useReducedMotion };\n//# sourceMappingURL=use-reduced-motion.mjs.map\n","\"use client\";\nimport { useContext } from 'react';\nimport { MotionConfigContext } from '../../context/MotionConfigContext.mjs';\nimport { useReducedMotion } from './use-reduced-motion.mjs';\n\nfunction useReducedMotionConfig() {\n const reducedMotionPreference = useReducedMotion();\n const { reducedMotion } = useContext(MotionConfigContext);\n if (reducedMotion === \"never\") {\n return false;\n }\n else if (reducedMotion === \"always\") {\n return true;\n }\n else {\n return reducedMotionPreference;\n }\n}\n\nexport { useReducedMotionConfig };\n//# sourceMappingURL=use-reduced-motion-config.mjs.map\n","\"use client\";\nimport { useMemo } from 'react';\nimport { useConstant } from '../../utils/use-constant.mjs';\nimport { useUnmountEffect } from '../../utils/use-unmount-effect.mjs';\nimport { useReducedMotionConfig } from '../../utils/reduced-motion/use-reduced-motion-config.mjs';\nimport { createScopedAnimate } from '../animate/index.mjs';\n\nfunction useAnimate() {\n const scope = useConstant(() => ({\n current: null, // Will be hydrated by React\n animations: [],\n }));\n const reduceMotion = useReducedMotionConfig() ?? undefined;\n const animate = useMemo(() => createScopedAnimate({ scope, reduceMotion }), [scope, reduceMotion]);\n useUnmountEffect(() => {\n scope.animations.forEach((animation) => animation.stop());\n scope.animations.length = 0;\n });\n return [scope, animate];\n}\n\nexport { useAnimate };\n//# sourceMappingURL=use-animate.mjs.map\n","\"use client\";\nimport { stagger, useAnimate } from \"motion/react\";\nimport { ComponentProps, PropsWithChildren, useEffect } from \"react\";\n\nexport const TaskList = (props: PropsWithChildren<ComponentProps<\"fieldset\">>) => {\n const [ref, animate] = useAnimate();\n\n useEffect(() => {\n const container = ref.current as HTMLFieldSetElement | null;\n if (!container) return;\n const handler = (e: Event) => {\n const input = e.target as HTMLInputElement;\n const items = Array.from(container.querySelectorAll(\"input[data-task=true]\")) as HTMLInputElement[];\n const allTaskChecked = items.every((el) => el.checked);\n const index = items.indexOf(input);\n if (allTaskChecked && index !== -1) {\n animate(\n \"input\",\n { scale: [1, 1.35, 1], rotate: [0, 20, -20, 0] },\n {\n duration: 0.5,\n delay: stagger(0.075, { from: index }),\n }\n );\n }\n };\n container.addEventListener(\"change\", handler);\n return () => container.removeEventListener(\"change\", handler);\n }, []);\n\n return <fieldset {...props} data-component=\"task-list\" ref={ref} />;\n};\n"],"names":["getOriginIndex","from","total","lastIndex","stagger","duration","startDelay","ease","fromIndex","distance","delay","maxDelay","easingDefinitionToFunction","useUnmountEffect","callback","useEffect","useReducedMotion","hasReducedMotionListener","initPrefersReducedMotion","shouldReduceMotion","useState","prefersReducedMotion","warnOnce","useReducedMotionConfig","reducedMotionPreference","reducedMotion","useContext","MotionConfigContext","useAnimate","scope","useConstant","reduceMotion","animate","useMemo","createScopedAnimate","animation","TaskList","props","ref","container","handler","e","input","items","allTaskChecked","el","index"],"mappings":";;;;AAEA,SAASA,EAAeC,GAAMC,GAAO;AACjC,MAAID,MAAS;AACT,WAAO;AAEN;AACD,UAAME,IAAYD,IAAQ;AAC1B,WAAOD,MAAS,SAASE,IAAYA,IAAY;AAAA,EACzD;AACA;AACA,SAASC,EAAQC,IAAW,KAAK,EAAE,YAAAC,IAAa,GAAG,MAAAL,IAAO,GAAG,MAAAM,EAAI,IAAK,IAAI;AACtE,SAAO,CAAC,GAAGL,MAAU;AACjB,UAAMM,IAAY,OAAOP,KAAS,WAAWA,IAAOD,EAAeC,GAAMC,CAAK,GACxEO,IAAW,KAAK,IAAID,IAAY,CAAC;AACvC,QAAIE,IAAQL,IAAWI;AACvB,QAAIF,GAAM;AACN,YAAMI,IAAWT,IAAQG;AAEzB,MAAAK,IADuBE,EAA2BL,CAAI,EAC/BG,IAAQC,CAAQ,IAAIA;AAAA,IACvD;AACQ,WAAOL,IAAaI;AAAA,EAC5B;AACA;ACpBA,SAASG,EAAiBC,GAAU;AAChC,SAAOC,EAAU,MAAM,MAAMD,EAAQ,GAAI,CAAA,CAAE;AAC/C;AC0BA,SAASE,IAAmB;AAIxB,GAACC,EAAyB,WAAWC,EAAwB;AAC7D,QAAM,CAACC,CAAkB,IAAIC,EAASC,EAAqB,OAAO;AAClE,SAAI,QAAQ,IAAI,aAAa,gBACzBC,EAASH,MAAuB,IAAM,0FAA0F,yBAAyB,GAKtJA;AACX;ACvCA,SAASI,IAAyB;AAC9B,QAAMC,IAA0BR,EAAgB,GAC1C,EAAE,eAAAS,EAAa,IAAKC,EAAWC,CAAmB;AACxD,SAAIF,MAAkB,UACX,KAEFA,MAAkB,WAChB,KAGAD;AAEf;ACVA,SAASI,IAAa;AAClB,QAAMC,IAAQC,EAAY,OAAO;AAAA,IAC7B,SAAS;AAAA;AAAA,IACT,YAAY,CAAA;AAAA,EACpB,EAAM,GACIC,IAAeR,EAAsB,KAAM,QAC3CS,IAAUC,EAAQ,MAAMC,EAAoB,EAAE,OAAAL,GAAO,cAAAE,EAAY,CAAE,GAAG,CAACF,GAAOE,CAAY,CAAC;AACjG,SAAAlB,EAAiB,MAAM;AACnB,IAAAgB,EAAM,WAAW,QAAQ,CAACM,MAAcA,EAAU,MAAM,GACxDN,EAAM,WAAW,SAAS;AAAA,EAClC,CAAK,GACM,CAACA,GAAOG,CAAO;AAC1B;ACfO,MAAMI,IAAW,CAACC,MAAyD;AAC9E,QAAM,CAACC,GAAKN,CAAO,IAAIJ,EAAA;AAEvB,SAAAb,EAAU,MAAM;AACZ,UAAMwB,IAAYD,EAAI;AACtB,QAAI,CAACC,EAAW;AAChB,UAAMC,IAAU,CAACC,MAAa;AAC1B,YAAMC,IAAQD,EAAE,QACVE,IAAQ,MAAM,KAAKJ,EAAU,iBAAiB,uBAAuB,CAAC,GACtEK,IAAiBD,EAAM,MAAM,CAACE,MAAOA,EAAG,OAAO,GAC/CC,IAAQH,EAAM,QAAQD,CAAK;AACjC,MAAIE,KAAkBE,MAAU,MAC5Bd;AAAA,QACI;AAAA,QACA,EAAE,OAAO,CAAC,GAAG,MAAM,CAAC,GAAG,QAAQ,CAAC,GAAG,IAAI,KAAK,CAAC,EAAA;AAAA,QAC7C;AAAA,UACI,UAAU;AAAA,UACV,OAAO5B,EAAQ,OAAO,EAAE,MAAM0C,GAAO;AAAA,QAAA;AAAA,MACzC;AAAA,IAER;AAEJ,WAAAP,EAAU,iBAAiB,UAAUC,CAAO,GACrC,MAAMD,EAAU,oBAAoB,UAAUC,CAAO;AAAA,EAAA,GAC7D,EAAE,qBAEG,YAAA,EAAU,GAAGH,GAAO,kBAAe,aAAY,KAAAC,GAAU;AACrE;","x_google_ignoreList":[0,1,2,3,4]}
@@ -1,13 +1,13 @@
1
1
  import { jsx as e, jsxs as c } from "react/jsx-runtime";
2
- import { useState as l, useEffect as d, forwardRef as a, useRef as m, Fragment as f } from "react";
3
- import { Y as u } from "../../index-BtlhELJ3.js";
2
+ import { e as l } from "../../CaretRight.es-0-M8D9y8.js";
3
+ import { useState as d, useEffect as m, forwardRef as a, useRef as f, Fragment as u } from "react";
4
+ import { Y as p } from "../../index-C-PuFUZi.js";
4
5
  import { Button as h } from "../core/button.js";
5
- import { Checkbox as p } from "./checkbox.js";
6
- import { I as b } from "../../input-CoJoHIhd.js";
7
- import { C as g } from "../../chevron-right-DvXGOiS_.js";
8
- const x = (n) => {
9
- const [r, t] = l(0);
10
- return d(() => {
6
+ import { Checkbox as b } from "./checkbox.js";
7
+ import { I as x } from "../../input-CrGrSnUt.js";
8
+ const g = (n) => {
9
+ const [r, t] = d(0);
10
+ return m(() => {
11
11
  const s = n.current;
12
12
  if (!s) return;
13
13
  const o = s.parentElement;
@@ -26,30 +26,30 @@ const x = (n) => {
26
26
  List: a(function(r, t) {
27
27
  return /* @__PURE__ */ e("ul", { ...r, ref: t, className: "space-y-3" });
28
28
  })
29
- }, j = (n) => {
30
- const r = m(null), t = x(r);
29
+ }, H = (n) => {
30
+ const r = f(null), t = g(r);
31
31
  return /* @__PURE__ */ c("div", { className: "flex flex-row gap-4", ref: r, children: [
32
32
  /* @__PURE__ */ c("div", { className: "flex w-fit min-w-64 flex-col space-y-4 whitespace-nowrap rounded-lg border border-card-border py-8", children: [
33
33
  /* @__PURE__ */ e("header", { className: "border-b border-card-border pb-2" }),
34
34
  /* @__PURE__ */ c("div", { className: "space-y-2 px-8", children: [
35
- /* @__PURE__ */ e(b, { rightLabel: "", title: "Search", placeholder: "Looking for..." }),
35
+ /* @__PURE__ */ e(x, { rightLabel: "", title: "Search", placeholder: "Looking for..." }),
36
36
  /* @__PURE__ */ e(
37
- u,
37
+ p,
38
38
  {
39
39
  height: t,
40
40
  useWindowScroll: !0,
41
41
  data: n.source,
42
42
  components: v,
43
- itemContent: (s, o) => /* @__PURE__ */ e(f, { children: /* @__PURE__ */ e(p, { children: /* @__PURE__ */ e(n.Item, { data: o }) }) })
43
+ itemContent: (s, o) => /* @__PURE__ */ e(u, { children: /* @__PURE__ */ e(b, { children: /* @__PURE__ */ e(n.Item, { data: o }) }) })
44
44
  }
45
45
  )
46
46
  ] })
47
47
  ] }),
48
- /* @__PURE__ */ e("div", { children: /* @__PURE__ */ e(h, { children: /* @__PURE__ */ e(g, {}) }) }),
48
+ /* @__PURE__ */ e("div", { children: /* @__PURE__ */ e(h, { children: /* @__PURE__ */ e(l, {}) }) }),
49
49
  /* @__PURE__ */ e("div", {})
50
50
  ] });
51
51
  };
52
52
  export {
53
- j as TransferList
53
+ H as TransferList
54
54
  };
55
55
  //# sourceMappingURL=transfer-list.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"transfer-list.js","sources":["../../../src/hooks/use-parent.ts","../../../src/components/form/transfer-list.tsx"],"sourcesContent":["import React, { useEffect, useState } from \"react\";\n\nexport const useParentHeight = (ref: React.RefObject<HTMLElement>) => {\n const [h, setH] = useState(0);\n useEffect(() => {\n const element = ref.current;\n if (!element) return;\n const parent = element.parentElement;\n if (!parent) return;\n const listener = () => {\n setH(parent.clientHeight);\n };\n parent.addEventListener(\"resize\", listener);\n listener();\n return () => {\n parent.removeEventListener(\"resize\", listener);\n };\n }, []);\n return h;\n};\n","\"use client\";\nimport { ChevronRightIcon } from \"lucide-react\";\nimport React, { forwardRef, Fragment, useRef } from \"react\";\nimport { Virtuoso } from \"react-virtuoso\";\nimport { useParentHeight } from \"../../hooks/use-parent\";\nimport { POJO, SetState } from \"../../types\";\nimport { Button } from \"../core/button\";\nimport { Checkbox } from \"../form/checkbox\";\nimport { Input } from \"./input\";\n\nexport type TransferListProps<T> = {\n source: T[];\n target: T[];\n Item: React.FC<{ data: T }>;\n reference: keyof T;\n setSource: SetState<T[]>;\n setTarget: SetState<T[]>;\n};\n\nconst components = {\n Item: forwardRef(function InnerList(props: any, ref) {\n return <li {...props} ref={ref} className=\"flex items-center justify-between gap-1\" />;\n }),\n List: forwardRef(function InnerList(props: any, ref) {\n return <ul {...props} ref={ref} className=\"space-y-3\" />;\n }),\n};\n\nexport const TransferList = <T extends POJO, K extends keyof T>(props: TransferListProps<T>) => {\n const ref = useRef<HTMLDivElement>(null!);\n const h = useParentHeight(ref);\n return (\n <div className=\"flex flex-row gap-4\" ref={ref}>\n <div className=\"flex w-fit min-w-64 flex-col space-y-4 whitespace-nowrap rounded-lg border border-card-border py-8\">\n <header className=\"border-b border-card-border pb-2\"></header>\n <div className=\"space-y-2 px-8\">\n <Input rightLabel=\"\" title=\"Search\" placeholder=\"Looking for...\" />\n <Virtuoso\n height={h}\n useWindowScroll\n data={props.source}\n components={components as any}\n itemContent={(_, row) => (\n <Fragment>\n <Checkbox>\n <props.Item data={row} />\n </Checkbox>\n </Fragment>\n )}\n />\n </div>\n </div>\n <div>\n <Button>\n <ChevronRightIcon />\n </Button>\n </div>\n <div></div>\n </div>\n );\n};\n"],"names":["useParentHeight","ref","h","setH","useState","useEffect","element","parent","listener","components","forwardRef","props","TransferList","useRef","jsxs","jsx","Input","Virtuoso","_","row","Fragment","Checkbox","Button","ChevronRightIcon"],"mappings":";;;;;;;AAEO,MAAMA,IAAkB,CAACC,MAAsC;AAClE,QAAM,CAACC,GAAGC,CAAI,IAAIC,EAAS,CAAC;AAC5B,SAAAC,EAAU,MAAM;AACZ,UAAMC,IAAUL,EAAI;AACpB,QAAI,CAACK,EAAS;AACd,UAAMC,IAASD,EAAQ;AACvB,QAAI,CAACC,EAAQ;AACb,UAAMC,IAAW,MAAM;AACnB,MAAAL,EAAKI,EAAO,YAAY;AAAA,IAAA;AAE5B,WAAAA,EAAO,iBAAiB,UAAUC,CAAQ,GAC1CA,EAAA,GACO,MAAM;AACT,MAAAD,EAAO,oBAAoB,UAAUC,CAAQ;AAAA,IAAA;AAAA,EACjD,GACD,EAAE,GACEN;AACX,GCAMO,IAAa;AAAA,EACf,MAAMC,EAAW,SAAmBC,GAAYV,GAAK;AACjD,6BAAQ,MAAA,EAAI,GAAGU,GAAO,KAAAV,GAAU,WAAU,2CAA0C;AAAA,EAAA,CACvF;AAAA,EACD,MAAMS,EAAW,SAAmBC,GAAYV,GAAK;AACjD,6BAAQ,MAAA,EAAI,GAAGU,GAAO,KAAAV,GAAU,WAAU,aAAY;AAAA,EAAA,CACzD;AACL,GAEaW,IAAe,CAAoCD,MAAgC;AAC5F,QAAMV,IAAMY,EAAuB,IAAK,GAClCX,IAAIF,EAAgBC,CAAG;AAC7B,SACI,gBAAAa,EAAC,OAAA,EAAI,WAAU,uBAAsB,KAAAb,GACjC,UAAA;AAAA,IAAA,gBAAAa,EAAC,OAAA,EAAI,WAAU,sGACX,UAAA;AAAA,MAAA,gBAAAC,EAAC,UAAA,EAAO,WAAU,mCAAA,CAAmC;AAAA,MACrD,gBAAAD,EAAC,OAAA,EAAI,WAAU,kBACX,UAAA;AAAA,QAAA,gBAAAC,EAACC,KAAM,YAAW,IAAG,OAAM,UAAS,aAAY,kBAAiB;AAAA,QACjE,gBAAAD;AAAA,UAACE;AAAAA,UAAA;AAAA,YACG,QAAQf;AAAA,YACR,iBAAe;AAAA,YACf,MAAMS,EAAM;AAAA,YACZ,YAAAF;AAAA,YACA,aAAa,CAACS,GAAGC,wBACZC,GAAA,EACG,UAAA,gBAAAL,EAACM,GAAA,EACG,UAAA,gBAAAN,EAACJ,EAAM,MAAN,EAAW,MAAMQ,EAAA,CAAK,GAC3B,EAAA,CACJ;AAAA,UAAA;AAAA,QAAA;AAAA,MAER,EAAA,CACJ;AAAA,IAAA,GACJ;AAAA,sBACC,OAAA,EACG,UAAA,gBAAAJ,EAACO,KACG,UAAA,gBAAAP,EAACQ,GAAA,EAAiB,GACtB,EAAA,CACJ;AAAA,sBACC,OAAA,CAAA,CAAI;AAAA,EAAA,GACT;AAER;"}
1
+ {"version":3,"file":"transfer-list.js","sources":["../../../src/hooks/use-parent.ts","../../../src/components/form/transfer-list.tsx"],"sourcesContent":["import React, { useEffect, useState } from \"react\";\n\nexport const useParentHeight = (ref: React.RefObject<HTMLElement>) => {\n const [h, setH] = useState(0);\n useEffect(() => {\n const element = ref.current;\n if (!element) return;\n const parent = element.parentElement;\n if (!parent) return;\n const listener = () => {\n setH(parent.clientHeight);\n };\n parent.addEventListener(\"resize\", listener);\n listener();\n return () => {\n parent.removeEventListener(\"resize\", listener);\n };\n }, []);\n return h;\n};\n","\"use client\";\nimport { CaretRightIcon } from \"@phosphor-icons/react\";\nimport React, { forwardRef, Fragment, useRef } from \"react\";\nimport { Virtuoso } from \"react-virtuoso\";\nimport { useParentHeight } from \"../../hooks/use-parent\";\nimport { POJO, SetState } from \"../../types\";\nimport { Button } from \"../core/button\";\nimport { Checkbox } from \"../form/checkbox\";\nimport { Input } from \"./input\";\n\nexport type TransferListProps<T> = {\n source: T[];\n target: T[];\n Item: React.FC<{ data: T }>;\n reference: keyof T;\n setSource: SetState<T[]>;\n setTarget: SetState<T[]>;\n};\n\nconst components = {\n Item: forwardRef(function InnerList(props: any, ref) {\n return <li {...props} ref={ref} className=\"flex items-center justify-between gap-1\" />;\n }),\n List: forwardRef(function InnerList(props: any, ref) {\n return <ul {...props} ref={ref} className=\"space-y-3\" />;\n }),\n};\n\nexport const TransferList = <T extends POJO, K extends keyof T>(props: TransferListProps<T>) => {\n const ref = useRef<HTMLDivElement>(null!);\n const h = useParentHeight(ref);\n return (\n <div className=\"flex flex-row gap-4\" ref={ref}>\n <div className=\"flex w-fit min-w-64 flex-col space-y-4 whitespace-nowrap rounded-lg border border-card-border py-8\">\n <header className=\"border-b border-card-border pb-2\"></header>\n <div className=\"space-y-2 px-8\">\n <Input rightLabel=\"\" title=\"Search\" placeholder=\"Looking for...\" />\n <Virtuoso\n height={h}\n useWindowScroll\n data={props.source}\n components={components as any}\n itemContent={(_, row) => (\n <Fragment>\n <Checkbox>\n <props.Item data={row} />\n </Checkbox>\n </Fragment>\n )}\n />\n </div>\n </div>\n <div>\n <Button>\n <CaretRightIcon />\n </Button>\n </div>\n <div></div>\n </div>\n );\n};\n"],"names":["useParentHeight","ref","h","setH","useState","useEffect","element","parent","listener","components","forwardRef","props","TransferList","useRef","jsxs","jsx","Input","Virtuoso","_","row","Fragment","Checkbox","Button","CaretRightIcon"],"mappings":";;;;;;;AAEO,MAAMA,IAAkB,CAACC,MAAsC;AAClE,QAAM,CAACC,GAAGC,CAAI,IAAIC,EAAS,CAAC;AAC5B,SAAAC,EAAU,MAAM;AACZ,UAAMC,IAAUL,EAAI;AACpB,QAAI,CAACK,EAAS;AACd,UAAMC,IAASD,EAAQ;AACvB,QAAI,CAACC,EAAQ;AACb,UAAMC,IAAW,MAAM;AACnB,MAAAL,EAAKI,EAAO,YAAY;AAAA,IAAA;AAE5B,WAAAA,EAAO,iBAAiB,UAAUC,CAAQ,GAC1CA,EAAA,GACO,MAAM;AACT,MAAAD,EAAO,oBAAoB,UAAUC,CAAQ;AAAA,IAAA;AAAA,EACjD,GACD,EAAE,GACEN;AACX,GCAMO,IAAa;AAAA,EACf,MAAMC,EAAW,SAAmBC,GAAYV,GAAK;AACjD,6BAAQ,MAAA,EAAI,GAAGU,GAAO,KAAAV,GAAU,WAAU,2CAA0C;AAAA,EAAA,CACvF;AAAA,EACD,MAAMS,EAAW,SAAmBC,GAAYV,GAAK;AACjD,6BAAQ,MAAA,EAAI,GAAGU,GAAO,KAAAV,GAAU,WAAU,aAAY;AAAA,EAAA,CACzD;AACL,GAEaW,IAAe,CAAoCD,MAAgC;AAC5F,QAAMV,IAAMY,EAAuB,IAAK,GAClCX,IAAIF,EAAgBC,CAAG;AAC7B,SACI,gBAAAa,EAAC,OAAA,EAAI,WAAU,uBAAsB,KAAAb,GACjC,UAAA;AAAA,IAAA,gBAAAa,EAAC,OAAA,EAAI,WAAU,sGACX,UAAA;AAAA,MAAA,gBAAAC,EAAC,UAAA,EAAO,WAAU,mCAAA,CAAmC;AAAA,MACrD,gBAAAD,EAAC,OAAA,EAAI,WAAU,kBACX,UAAA;AAAA,QAAA,gBAAAC,EAACC,KAAM,YAAW,IAAG,OAAM,UAAS,aAAY,kBAAiB;AAAA,QACjE,gBAAAD;AAAA,UAACE;AAAAA,UAAA;AAAA,YACG,QAAQf;AAAA,YACR,iBAAe;AAAA,YACf,MAAMS,EAAM;AAAA,YACZ,YAAAF;AAAA,YACA,aAAa,CAACS,GAAGC,wBACZC,GAAA,EACG,UAAA,gBAAAL,EAACM,GAAA,EACG,UAAA,gBAAAN,EAACJ,EAAM,MAAN,EAAW,MAAMQ,EAAA,CAAK,GAC3B,EAAA,CACJ;AAAA,UAAA;AAAA,QAAA;AAAA,MAER,EAAA,CACJ;AAAA,IAAA,GACJ;AAAA,sBACC,OAAA,EACG,UAAA,gBAAAJ,EAACO,KACG,UAAA,gBAAAP,EAACQ,GAAA,EAAe,GACpB,EAAA,CACJ;AAAA,sBACC,OAAA,CAAA,CAAI;AAAA,EAAA,GACT;AAER;"}
@@ -1 +1 @@
1
- {"version":3,"file":"calendar-header.d.ts","sourceRoot":"","sources":["../../../src/components/page-calendar/calendar-header.tsx"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,cAAc,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAEtE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAW,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAEhD,KAAK,mBAAmB,GAAG;IACvB,WAAW,EAAE,IAAI,CAAC;IAClB,WAAW,EAAE,QAAQ,CAAC;IACtB,UAAU,CAAC,EAAE,MAAM,IAAI,CAAC;IACxB,OAAO,EAAE,cAAc,EAAE,CAAC;IAC1B,UAAU,CAAC,EAAE,SAAS,CAAC;IACvB,cAAc,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAC;IAC/B,cAAc,EAAE,QAAQ,CAAC,QAAQ,CAAC,CAAC;IACnC,cAAc,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;CACxC,CAAC;AAEF,wBAAgB,cAAc,CAAC,EAC3B,WAAW,EACX,WAAW,EACX,OAAO,EACP,UAAU,EACV,cAAc,EACd,cAAc,EACd,cAAc,EACd,UAAU,GACb,EAAE,mBAAmB,+BA4GrB"}
1
+ {"version":3,"file":"calendar-header.d.ts","sourceRoot":"","sources":["../../../src/components/page-calendar/calendar-header.tsx"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,cAAc,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAEtE,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,aAAa,CAAC;AAC5C,OAAO,EAAW,KAAK,SAAS,EAAE,MAAM,OAAO,CAAC;AAEhD,KAAK,mBAAmB,GAAG;IACvB,WAAW,EAAE,IAAI,CAAC;IAClB,WAAW,EAAE,QAAQ,CAAC;IACtB,UAAU,CAAC,EAAE,MAAM,IAAI,CAAC;IACxB,OAAO,EAAE,cAAc,EAAE,CAAC;IAC1B,UAAU,CAAC,EAAE,SAAS,CAAC;IACvB,cAAc,EAAE,QAAQ,CAAC,IAAI,CAAC,CAAC;IAC/B,cAAc,EAAE,QAAQ,CAAC,QAAQ,CAAC,CAAC;IACnC,cAAc,EAAE,CAAC,EAAE,EAAE,MAAM,KAAK,IAAI,CAAC;CACxC,CAAC;AAEF,wBAAgB,cAAc,CAAC,EAC3B,WAAW,EACX,WAAW,EACX,OAAO,EACP,UAAU,EACV,cAAc,EACd,cAAc,EACd,cAAc,EACd,UAAU,GACb,EAAE,mBAAmB,+BAuHrB"}
@@ -1,8 +1,8 @@
1
1
  import "react/jsx-runtime";
2
2
  import "react";
3
- import "../../index-BJ1ayTam.js";
4
- import "../../input-field-DTeIrwpK.js";
5
- import { T as e } from "../../index-ChfR6F8d.js";
3
+ import "../../index-Z-fZHxfJ.js";
4
+ import "../../input-field-5vYcz5tT.js";
5
+ import { T as e } from "../../index-BelDtX5M.js";
6
6
  import "../../proxy-BZcQiBrp.js";
7
7
  export {
8
8
  e as Table