@g4rcez/components 3.0.2 → 4.0.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/CaretDown.es-Cj7klWI3.js +33 -0
- package/dist/CaretDown.es-Cj7klWI3.js.map +1 -0
- package/dist/CaretRight.es-0-M8D9y8.js +33 -0
- package/dist/CaretRight.es-0-M8D9y8.js.map +1 -0
- package/dist/CheckCircle.es-C6QWLfk_.js +33 -0
- package/dist/CheckCircle.es-C6QWLfk_.js.map +1 -0
- package/dist/File.es-CA-vuPED.js +33 -0
- package/dist/File.es-CA-vuPED.js.map +1 -0
- package/dist/IconBase.es-DJ1oCtpo.js +50 -0
- package/dist/IconBase.es-DJ1oCtpo.js.map +1 -0
- package/dist/Info.es-CrZKs4q4.js +33 -0
- package/dist/Info.es-CrZKs4q4.js.map +1 -0
- package/dist/MotionConfigContext-C7MqlSdv.js.map +1 -1
- package/dist/Warning.es-D_eI6tLe.js +39 -0
- package/dist/Warning.es-D_eI6tLe.js.map +1 -0
- package/dist/X.es-BJ1O93El.js +39 -0
- package/dist/X.es-BJ1O93El.js.map +1 -0
- package/dist/ai/docs/Alert.md +1 -1
- package/dist/ai/docs/AnimatedList.md +3 -3
- package/dist/ai/docs/Button.md +1 -1
- package/dist/ai/docs/CommandPalette.md +7 -7
- package/dist/ai/docs/Dropdown.md +4 -4
- package/dist/ai/docs/Empty.md +9 -9
- package/dist/ai/docs/Expand.md +1 -1
- package/dist/ai/docs/FileUpload.md +2 -2
- package/dist/ai/docs/Input.md +2 -2
- package/dist/ai/docs/InputField.md +2 -2
- package/dist/ai/docs/List.md +3 -3
- package/dist/ai/docs/Menu.md +3 -3
- package/dist/ai/docs/MultiSelect.md +1 -1
- package/dist/ai/docs/PageCalendar.md +1 -1
- package/dist/ai/docs/Select.md +1 -1
- package/dist/ai/docs/Slot.md +1 -1
- package/dist/ai/docs/Stats.md +11 -11
- package/dist/ai/docs/Table.md +1 -1
- package/dist/ai/docs/Tag.md +2 -2
- package/dist/ai/docs/Timeline.md +5 -5
- package/dist/ai/docs/Toolbar.md +2 -2
- package/dist/ai/docs/Tooltip.md +3 -3
- package/dist/ai/docs/TransferList.md +2 -2
- package/dist/{autocomplete-Boida9R7.js → autocomplete-Cn9Z2hLq.js} +48 -48
- package/dist/autocomplete-Cn9Z2hLq.js.map +1 -0
- package/dist/{calendar-BswV66Nx.js → calendar-B5lSd0ID.js} +599 -571
- package/dist/calendar-B5lSd0ID.js.map +1 -0
- package/dist/components/display/alert.js +18 -18
- package/dist/components/display/alert.js.map +1 -1
- package/dist/components/display/calendar.js +4 -4
- package/dist/components/display/card.d.ts +2 -2
- package/dist/components/display/card.d.ts.map +1 -1
- package/dist/components/display/card.js +6 -6
- package/dist/components/display/card.js.map +1 -1
- package/dist/components/display/empty.d.ts +2 -2
- package/dist/components/display/empty.d.ts.map +1 -1
- package/dist/components/display/list.js +15 -15
- package/dist/components/display/list.js.map +1 -1
- package/dist/components/display/notifications.js +5 -5
- package/dist/components/display/tabs.js +1 -1
- package/dist/components/floating/command-palette.d.ts +3 -3
- package/dist/components/floating/command-palette.d.ts.map +1 -1
- package/dist/components/floating/dropdown.js +1 -1
- package/dist/components/floating/expand.js +1 -1
- package/dist/components/floating/menu.d.ts +2 -2
- package/dist/components/floating/menu.d.ts.map +1 -1
- package/dist/components/floating/menu.js +31 -31
- package/dist/components/floating/menu.js.map +1 -1
- package/dist/components/floating/modal.js +35 -35
- package/dist/components/floating/modal.js.map +1 -1
- package/dist/components/floating/tooltip.js +1 -1
- package/dist/components/form/autocomplete.js +5 -5
- package/dist/components/form/date-picker.js +3 -3
- package/dist/components/form/file-upload.d.ts.map +1 -1
- package/dist/components/form/file-upload.js +3 -3
- package/dist/components/form/input-field.d.ts.map +1 -1
- package/dist/components/form/input.js +1 -1
- package/dist/components/form/select.js +29 -29
- package/dist/components/form/select.js.map +1 -1
- package/dist/components/form/task-list.js.map +1 -1
- package/dist/components/form/transfer-list.js +15 -15
- package/dist/components/form/transfer-list.js.map +1 -1
- package/dist/components/page-calendar/calendar-header.d.ts.map +1 -1
- package/dist/components/page-calendar/day-view.d.ts.map +1 -1
- package/dist/components/page-calendar/month-view.d.ts.map +1 -1
- package/dist/components/page-calendar/page-calendar.utils.d.ts +6 -0
- package/dist/components/page-calendar/page-calendar.utils.d.ts.map +1 -1
- package/dist/components/page-calendar/week-view.d.ts.map +1 -1
- package/dist/components/table/table.js +3 -3
- package/dist/config/context.d.ts +2 -0
- package/dist/config/context.d.ts.map +1 -1
- package/dist/context-BFXNJVn2.js.map +1 -1
- package/dist/{date-picker-BxPTdZPy.js → date-picker-DwNo22lx.js} +316 -288
- package/dist/date-picker-DwNo22lx.js.map +1 -0
- package/dist/{file-upload-BB6BdGcE.js → file-upload-Brf2NkLr.js} +1103 -976
- package/dist/file-upload-Brf2NkLr.js.map +1 -0
- package/dist/{floating-ui.react-DycKASR0.js → floating-ui.react-QNHG9W4N.js} +205 -205
- package/dist/{floating-ui.react-DycKASR0.js.map → floating-ui.react-QNHG9W4N.js.map} +1 -1
- package/dist/hooks/use-components-provider.d.ts.map +1 -1
- package/dist/index-0YMC-_Lt.js.map +1 -1
- package/dist/index-BelDtX5M.js +1821 -0
- package/dist/index-BelDtX5M.js.map +1 -0
- package/dist/{index-BtlhELJ3.js → index-C-PuFUZi.js} +136 -136
- package/dist/index-C-PuFUZi.js.map +1 -0
- package/dist/index-Z-fZHxfJ.js +335 -0
- package/dist/index-Z-fZHxfJ.js.map +1 -0
- package/dist/index-t1qLJTt5.js.map +1 -1
- package/dist/index.css +1 -1
- package/dist/index.js +2583 -2463
- package/dist/index.js.map +1 -1
- package/dist/{input-CoJoHIhd.js → input-CrGrSnUt.js} +2 -2
- package/dist/{input-CoJoHIhd.js.map → input-CrGrSnUt.js.map} +1 -1
- package/dist/input-field-5vYcz5tT.js +166 -0
- package/dist/input-field-5vYcz5tT.js.map +1 -0
- package/dist/notifications-cUdVPs-B.js +2786 -0
- package/dist/notifications-cUdVPs-B.js.map +1 -0
- package/dist/proxy-BZcQiBrp.js.map +1 -1
- package/dist/{slot-CQW8ZzBb.js → slot-CRyweuj0.js} +5 -5
- package/dist/{slot-CQW8ZzBb.js.map → slot-CRyweuj0.js.map} +1 -1
- package/dist/{tabs-ccIA7vMo.js → tabs-S00a8qq8.js} +5 -5
- package/dist/{tabs-ccIA7vMo.js.map → tabs-S00a8qq8.js.map} +1 -1
- package/dist/use-motion-value-eGwNuWuw.js.map +1 -1
- package/package.json +2 -2
- package/dist/autocomplete-Boida9R7.js.map +0 -1
- package/dist/calendar-BswV66Nx.js.map +0 -1
- package/dist/chevron-down-BBFYYzZq.js +0 -6
- package/dist/chevron-down-BBFYYzZq.js.map +0 -1
- package/dist/chevron-right-DvXGOiS_.js +0 -6
- package/dist/chevron-right-DvXGOiS_.js.map +0 -1
- package/dist/circle-check-big-3M5lhTxx.js +0 -9
- package/dist/circle-check-big-3M5lhTxx.js.map +0 -1
- package/dist/createLucideIcon-CP-mMPfa.js +0 -76
- package/dist/createLucideIcon-CP-mMPfa.js.map +0 -1
- package/dist/date-picker-BxPTdZPy.js.map +0 -1
- package/dist/file-CBCP85VI.js +0 -15
- package/dist/file-CBCP85VI.js.map +0 -1
- package/dist/file-upload-BB6BdGcE.js.map +0 -1
- package/dist/index-BJ1ayTam.js +0 -126
- package/dist/index-BJ1ayTam.js.map +0 -1
- package/dist/index-BtlhELJ3.js.map +0 -1
- package/dist/index-ChfR6F8d.js +0 -1590
- package/dist/index-ChfR6F8d.js.map +0 -1
- package/dist/index-DE4shK8D.js +0 -215
- package/dist/index-DE4shK8D.js.map +0 -1
- package/dist/info-N5jWZg2A.js +0 -10
- package/dist/info-N5jWZg2A.js.map +0 -1
- package/dist/input-field-DTeIrwpK.js +0 -146
- package/dist/input-field-DTeIrwpK.js.map +0 -1
- package/dist/notifications-NPuFDsBp.js +0 -2550
- package/dist/notifications-NPuFDsBp.js.map +0 -1
- package/dist/triangle-alert-CHMhQ6yd.js +0 -16
- package/dist/triangle-alert-CHMhQ6yd.js.map +0 -1
- package/dist/x-B9bYxG31.js +0 -9
- 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-
|
|
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-
|
|
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-
|
|
6
|
+
import "../../index-C-PuFUZi.js";
|
|
6
7
|
import "../../dom-Dl8XH0CK.js";
|
|
7
|
-
import { A as u } from "../../autocomplete-
|
|
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-
|
|
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-
|
|
5
|
+
import "../../calendar-B5lSd0ID.js";
|
|
5
6
|
import "../../use-translations-BwLKTrZv.js";
|
|
6
7
|
import "../floating/dropdown.js";
|
|
7
|
-
import "../../input-
|
|
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;
|
|
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
|
|
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,
|
|
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,9 +1,9 @@
|
|
|
1
|
-
import { jsx as
|
|
2
|
-
import { forwardRef as R, useRef as
|
|
3
|
-
import {
|
|
4
|
-
import {
|
|
5
|
-
import {
|
|
6
|
-
import {
|
|
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:
|
|
23
|
-
left:
|
|
24
|
-
error:
|
|
22
|
+
right: y,
|
|
23
|
+
left: C,
|
|
24
|
+
error: N,
|
|
25
25
|
...e
|
|
26
26
|
}, i) => {
|
|
27
|
-
const
|
|
28
|
-
|
|
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 =
|
|
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
|
|
39
|
-
return /* @__PURE__ */
|
|
40
|
-
|
|
38
|
+
const w = () => n.current?.focus();
|
|
39
|
+
return /* @__PURE__ */ r(
|
|
40
|
+
S,
|
|
41
41
|
{
|
|
42
42
|
info: u,
|
|
43
|
-
left:
|
|
44
|
-
error:
|
|
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:
|
|
62
|
-
|
|
63
|
-
/* @__PURE__ */ a("button", { onClick:
|
|
64
|
-
/* @__PURE__ */
|
|
65
|
-
/* @__PURE__ */
|
|
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:
|
|
73
|
-
name:
|
|
72
|
+
id: l,
|
|
73
|
+
name: l,
|
|
74
74
|
required: o,
|
|
75
|
-
ref:
|
|
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:
|
|
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__ */
|
|
87
|
-
s.map((t) => /* @__PURE__ */
|
|
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: `${
|
|
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 {
|
|
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":";;;;;;AAwBO,MAAMA,IAASC;AAAA,EAClB,CACI;AAAA,IACI,UAAAC,IAAW;AAAA,IACX,SAAAC;AAAA,IACA,MAAAC;AAAA,IACA,iBAAAC,IAAkB;AAAA,IAClB,UAAAC,IAAW;AAAA,IACX,gBAAAC;AAAA,IACA,aAAAC;AAAA,IACA,YAAAC;AAAA,IACA,aAAAC;AAAA,IACA,SAAAC;AAAA,IACA,cAAAC;AAAA,IACA,WAAAC;AAAA,IACA,UAAAC,IAAW;AAAA,IACX,OAAAC;AAAA,IACA,MAAAC;AAAA,IACA,OAAAC;AAAA,IACA,GAAGC;AAAA,EAAA,GAEPC,MACC;AACD,UAAMC,IAAcC,EAAA,GACdC,IAAWC,EAA0B,IAAI,GACzCC,IAAKN,EAAM,MAAMA,EAAM;AAC7B,IAAAO,EAAoBN,GAAK,MAAMG,EAAS,OAAQ,GAEhDI,EAAU,MAAM;AACZ,UAAIJ,EAAS,YAAY,KAAM;AAC/B,YAAMK,IAAa,IAAI,gBAAA,GACjBC,IAAQN,EAAS,SACjBO,IAAQC,EAAuBR,EAAS,OAAO;AACrD,aAAAM,EAAM,iBAAiB,UAAU,MAAMA,EAAM,aAAa,iBAAiB,MAAM,GAAG;AAAA,QAChF,MAAM;AAAA,QACN,QAAQD,EAAW;AAAA,MAAA,CACtB,GACM,MAAM;AACT,QAAAE,EAAA,GACAF,EAAW,MAAA;AAAA,MAAM;AAAA,IACrB,GACD,EAAE;AAEL,UAAMI,IAAe,MAAMT,EAAS,SAAS,MAAA;AAE7C,WACI,gBAAAU;AAAA,MAACC;AAAA,MAAA;AAAA,QACG,MAAA7B;AAAA,QACA,MAAAY;AAAA,QACA,OAAAC;AAAA,QACA,MAAMC,EAAM;AAAA,QACZ,SAAAP;AAAA,QACA,MAAMO,EAAM;AAAA,QACZ,UAAAZ;AAAA,QACA,UAAAQ;AAAA,QACA,UAAAZ;AAAA,QACA,OAAOgB,EAAM;AAAA,QACb,WAAAL;AAAA,QACA,eAAc;AAAA,QACd,YAAAJ;AAAA,QACA,aAAAC;AAAA,QACA,aAAAF;AAAA,QACA,IAAIU,EAAM,QAAQA,EAAM;AAAA,QACxB,cAAAN;AAAA,QACA,gBAAAL;AAAA,QACA,aAAaW,EAAM;AAAA,QACnB,OACI,gBAAAgB,EAAC,SAAA,EAAM,SAASV,GACX,UAAA;AAAA,UAAAT;AAAA,4BACA,UAAA,EAAO,SAASgB,GAAc,MAAK,UAAS,WAAU,6CACnD,UAAA;AAAA,YAAA,gBAAAC,EAACG,GAAA,EAAc,MAAM,GAAA,CAAI;AAAA,YACzB,gBAAAH,EAAC,QAAA,EAAK,WAAU,WAAW,YAAY,eAAA,CAAe;AAAA,UAAA,EAAA,CAC1D;AAAA,QAAA,GACJ;AAAA,QAGJ,UAAA,gBAAAE;AAAA,UAAC;AAAA,UAAA;AAAA,YACI,GAAGhB;AAAA,YACJ,IAAAM;AAAA,YACA,MAAMA;AAAA,YACN,UAAAtB;AAAA,YACA,KAAKkC,EAAUjB,GAAKG,CAAQ;AAAA,YAC5B,iBAAe,CAAC,CAACJ,EAAM,SAAS;AAAA,YAChC,OAAO,OAAOA,EAAM,SAAU,WAAWA,EAAM,QAAQ;AAAA,YACvD,WAAWmB;AAAA,cACP;AAAA,cACA;AAAA,cACA;AAAA,cACA;AAAA,cACAnB,EAAM;AAAA,YAAA;AAAA,YAGV,UAAA;AAAA,cAAA,gBAAAc,EAAC,UAAA,EAAO,OAAM,IAAG,UAAQ,IAAC,QAAM,IAC3B,YAAM,YAAA,CACX;AAAA,cACC7B,EAAQ,IAAI,CAACmC,MACV,gBAAAC;AAAA,gBAAC;AAAA,gBAAA;AAAA,kBACI,GAAGD;AAAA,kBACJ,OAAOA,EAAO;AAAA,kBACd,UAAUA,EAAO,SAASA,EAAO;AAAA,kBACjC,KAAK,GAAGd,CAAE,kBAAkBc,EAAO,KAAK;AAAA,gBAAA;AAAA,cAAA,CAE/C;AAAA,YAAA;AAAA,UAAA;AAAA,QAAA;AAAA,MACL;AAAA,IAAA;AAAA,EACJ;AAGZ;"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"task-list.js","sources":["
|
|
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 {
|
|
3
|
-
import {
|
|
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
|
|
6
|
-
import { I as
|
|
7
|
-
|
|
8
|
-
const
|
|
9
|
-
|
|
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
|
-
},
|
|
30
|
-
const 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(
|
|
35
|
+
/* @__PURE__ */ e(x, { rightLabel: "", title: "Search", placeholder: "Looking for..." }),
|
|
36
36
|
/* @__PURE__ */ e(
|
|
37
|
-
|
|
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(
|
|
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(
|
|
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
|
-
|
|
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 {
|
|
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,+
|
|
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 +1 @@
|
|
|
1
|
-
{"version":3,"file":"day-view.d.ts","sourceRoot":"","sources":["../../../src/components/page-calendar/day-view.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;
|
|
1
|
+
{"version":3,"file":"day-view.d.ts","sourceRoot":"","sources":["../../../src/components/page-calendar/day-view.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,aAAa,EAAE,iBAAiB,EAAE,MAAM,uBAAuB,CAAC;AAuB9E,KAAK,YAAY,CAAC,CAAC,SAAS,iBAAiB,IAAI;IAC7C,WAAW,EAAE,IAAI,CAAC;IAClB,YAAY,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,IAAI,CAAC;IACnC,WAAW,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,IAAI,CAAC;IACnC,YAAY,EAAE,GAAG,CAAC,MAAM,EAAE,aAAa,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC;IAC9C,YAAY,EAAE,CAAC,KAAK,EAAE,aAAa,CAAC,CAAC,CAAC,KAAK,IAAI,CAAC;IAChD,WAAW,CAAC,EAAE,CAAC,KAAK,EAAE,aAAa,CAAC,CAAC,CAAC,KAAK,KAAK,CAAC,SAAS,CAAC;CAC9D,CAAC;AAEF,wBAAgB,OAAO,CAAC,CAAC,SAAS,iBAAiB,EAAE,EACjD,WAAW,EACX,WAAW,EACX,WAAW,EACX,YAAY,EACZ,YAAY,EACZ,YAAY,GACf,EAAE,YAAY,CAAC,CAAC,CAAC,+BA+HjB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"month-view.d.ts","sourceRoot":"","sources":["../../../src/components/page-calendar/month-view.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAK3D,KAAK,cAAc,GAAG;IAClB,IAAI,EAAE,IAAI,EAAE,CAAC;IACb,WAAW,EAAE,IAAI,CAAC;IAClB,UAAU,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,IAAI,CAAC;IACjC,YAAY,EAAE,GAAG,CAAC,MAAM,EAAE,aAAa,EAAE,CAAC,CAAC;IAC3C,YAAY,EAAE,CAAC,KAAK,EAAE,aAAa,KAAK,IAAI,CAAC;CAChD,CAAC;AAEF,wBAAgB,SAAS,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,WAAW,EAAE,YAAY,EAAE,UAAU,EAAE,EAAE,cAAc,+
|
|
1
|
+
{"version":3,"file":"month-view.d.ts","sourceRoot":"","sources":["../../../src/components/page-calendar/month-view.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAK3D,KAAK,cAAc,GAAG;IAClB,IAAI,EAAE,IAAI,EAAE,CAAC;IACb,WAAW,EAAE,IAAI,CAAC;IAClB,UAAU,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,IAAI,CAAC;IACjC,YAAY,EAAE,GAAG,CAAC,MAAM,EAAE,aAAa,EAAE,CAAC,CAAC;IAC3C,YAAY,EAAE,CAAC,KAAK,EAAE,aAAa,KAAK,IAAI,CAAC;CAChD,CAAC;AAEF,wBAAgB,SAAS,CAAC,EAAE,IAAI,EAAE,YAAY,EAAE,WAAW,EAAE,YAAY,EAAE,UAAU,EAAE,EAAE,cAAc,+BA0DtG"}
|