@raystack/apsara 0.51.1 → 0.53.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.
- package/dist/components/accordion/__tests__/accordion.test.d.ts +2 -0
- package/dist/components/accordion/__tests__/accordion.test.d.ts.map +1 -0
- package/dist/components/accordion/accordion-content.cjs +14 -0
- package/dist/components/accordion/accordion-content.cjs.map +1 -0
- package/dist/components/accordion/accordion-content.d.ts +8 -0
- package/dist/components/accordion/accordion-content.d.ts.map +1 -0
- package/dist/components/accordion/accordion-content.js +12 -0
- package/dist/components/accordion/accordion-content.js.map +1 -0
- package/dist/components/accordion/accordion-item.cjs +14 -0
- package/dist/components/accordion/accordion-item.cjs.map +1 -0
- package/dist/components/accordion/accordion-item.d.ts +8 -0
- package/dist/components/accordion/accordion-item.d.ts.map +1 -0
- package/dist/components/accordion/accordion-item.js +12 -0
- package/dist/components/accordion/accordion-item.js.map +1 -0
- package/dist/components/accordion/accordion-root.cjs +26 -0
- package/dist/components/accordion/accordion-root.cjs.map +1 -0
- package/dist/components/accordion/accordion-root.d.ts +11 -0
- package/dist/components/accordion/accordion-root.d.ts.map +1 -0
- package/dist/components/accordion/accordion-root.js +24 -0
- package/dist/components/accordion/accordion-root.js.map +1 -0
- package/dist/components/accordion/accordion-trigger.cjs +15 -0
- package/dist/components/accordion/accordion-trigger.cjs.map +1 -0
- package/dist/components/accordion/accordion-trigger.d.ts +8 -0
- package/dist/components/accordion/accordion-trigger.d.ts.map +1 -0
- package/dist/components/accordion/accordion-trigger.js +13 -0
- package/dist/components/accordion/accordion-trigger.js.map +1 -0
- package/dist/components/accordion/accordion.cjs +15 -0
- package/dist/components/accordion/accordion.cjs.map +1 -0
- package/dist/components/accordion/accordion.d.ts +6 -0
- package/dist/components/accordion/accordion.d.ts.map +1 -0
- package/dist/components/accordion/accordion.js +13 -0
- package/dist/components/accordion/accordion.js.map +1 -0
- package/dist/components/accordion/accordion.module.css.cjs +8 -0
- package/dist/components/accordion/accordion.module.css.cjs.map +1 -0
- package/dist/components/accordion/accordion.module.css.js +4 -0
- package/dist/components/accordion/accordion.module.css.js.map +1 -0
- package/dist/components/accordion/index.d.ts +2 -0
- package/dist/components/accordion/index.d.ts.map +1 -0
- package/dist/components/amount/__tests__/amount.test.d.ts +2 -0
- package/dist/components/amount/__tests__/amount.test.d.ts.map +1 -0
- package/dist/components/announcement-bar/__tests__/announcement-bar.test.d.ts +2 -0
- package/dist/components/announcement-bar/__tests__/announcement-bar.test.d.ts.map +1 -0
- package/dist/components/avatar/__tests__/avatar.test.d.ts +2 -0
- package/dist/components/avatar/__tests__/avatar.test.d.ts.map +1 -0
- package/dist/components/badge/__tests__/badge.test.d.ts +2 -0
- package/dist/components/badge/__tests__/badge.test.d.ts.map +1 -0
- package/dist/components/box/__tests__/box.test.d.ts +2 -0
- package/dist/components/box/__tests__/box.test.d.ts.map +1 -0
- package/dist/components/breadcrumb/__tests__/breadcrumb.test.d.ts +2 -0
- package/dist/components/breadcrumb/__tests__/breadcrumb.test.d.ts.map +1 -0
- package/dist/components/breadcrumb/breadcrumb-item.cjs +1 -1
- package/dist/components/breadcrumb/breadcrumb-item.cjs.map +1 -1
- package/dist/components/breadcrumb/breadcrumb-item.js +1 -1
- package/dist/components/breadcrumb/breadcrumb-item.js.map +1 -1
- package/dist/components/breadcrumb/breadcrumb-misc.cjs +2 -2
- package/dist/components/breadcrumb/breadcrumb-misc.cjs.map +1 -1
- package/dist/components/breadcrumb/breadcrumb-misc.d.ts.map +1 -1
- package/dist/components/breadcrumb/breadcrumb-misc.js +3 -3
- package/dist/components/breadcrumb/breadcrumb-misc.js.map +1 -1
- package/dist/components/button/__tests__/button.test.d.ts +2 -0
- package/dist/components/button/__tests__/button.test.d.ts.map +1 -0
- package/dist/components/calendar/__tests__/calendar.test.d.ts +2 -0
- package/dist/components/calendar/__tests__/calendar.test.d.ts.map +1 -0
- package/dist/components/calendar/calendar.cjs +1 -1
- package/dist/components/calendar/calendar.cjs.map +1 -1
- package/dist/components/calendar/calendar.js +1 -1
- package/dist/components/calendar/calendar.js.map +1 -1
- package/dist/components/calendar/date-picker.cjs +7 -6
- package/dist/components/calendar/date-picker.cjs.map +1 -1
- package/dist/components/calendar/date-picker.d.ts +3 -2
- package/dist/components/calendar/date-picker.d.ts.map +1 -1
- package/dist/components/calendar/date-picker.js +7 -6
- package/dist/components/calendar/date-picker.js.map +1 -1
- package/dist/components/calendar/range-picker.cjs +4 -3
- package/dist/components/calendar/range-picker.cjs.map +1 -1
- package/dist/components/calendar/range-picker.d.ts +3 -2
- package/dist/components/calendar/range-picker.d.ts.map +1 -1
- package/dist/components/calendar/range-picker.js +4 -3
- package/dist/components/calendar/range-picker.js.map +1 -1
- package/dist/components/callout/__tests__/callout.test.d.ts +2 -0
- package/dist/components/callout/__tests__/callout.test.d.ts.map +1 -0
- package/dist/components/checkbox/__tests__/checkbox.test.d.ts +2 -0
- package/dist/components/checkbox/__tests__/checkbox.test.d.ts.map +1 -0
- package/dist/components/chip/__tests__/chip.test.d.ts +2 -0
- package/dist/components/chip/__tests__/chip.test.d.ts.map +1 -0
- package/dist/components/code-block/__tests__/code-block.test.d.ts +2 -0
- package/dist/components/code-block/__tests__/code-block.test.d.ts.map +1 -0
- package/dist/components/code-block/code-block-code.cjs +50 -0
- package/dist/components/code-block/code-block-code.cjs.map +1 -0
- package/dist/components/code-block/code-block-code.d.ts +10 -0
- package/dist/components/code-block/code-block-code.d.ts.map +1 -0
- package/dist/components/code-block/code-block-code.js +48 -0
- package/dist/components/code-block/code-block-code.js.map +1 -0
- package/dist/components/code-block/code-block-language-select.cjs +26 -0
- package/dist/components/code-block/code-block-language-select.cjs.map +1 -0
- package/dist/components/code-block/code-block-language-select.d.ts +7 -0
- package/dist/components/code-block/code-block-language-select.d.ts.map +1 -0
- package/dist/components/code-block/code-block-language-select.js +23 -0
- package/dist/components/code-block/code-block-language-select.js.map +1 -0
- package/dist/components/code-block/code-block-misc.cjs +49 -0
- package/dist/components/code-block/code-block-misc.cjs.map +1 -0
- package/dist/components/code-block/code-block-misc.d.ts +112 -0
- package/dist/components/code-block/code-block-misc.d.ts.map +1 -0
- package/dist/components/code-block/code-block-misc.js +43 -0
- package/dist/components/code-block/code-block-misc.js.map +1 -0
- package/dist/components/code-block/code-block-root.cjs +48 -0
- package/dist/components/code-block/code-block-root.cjs.map +1 -0
- package/dist/components/code-block/code-block-root.d.ts +24 -0
- package/dist/components/code-block/code-block-root.d.ts.map +1 -0
- package/dist/components/code-block/code-block-root.js +45 -0
- package/dist/components/code-block/code-block-root.js.map +1 -0
- package/dist/components/code-block/code-block.cjs +23 -0
- package/dist/components/code-block/code-block.cjs.map +1 -0
- package/dist/components/code-block/code-block.js +21 -0
- package/dist/components/code-block/code-block.js.map +1 -0
- package/dist/components/code-block/code-block.module.css.cjs +8 -0
- package/dist/components/code-block/code-block.module.css.cjs.map +1 -0
- package/dist/components/code-block/code-block.module.css.js +4 -0
- package/dist/components/code-block/code-block.module.css.js.map +1 -0
- package/dist/components/code-block/code.module.css.cjs +8 -0
- package/dist/components/code-block/code.module.css.cjs.map +1 -0
- package/dist/components/code-block/code.module.css.js +4 -0
- package/dist/components/code-block/code.module.css.js.map +1 -0
- package/dist/components/code-block/index.d.ts +2 -0
- package/dist/components/code-block/index.d.ts.map +1 -0
- package/dist/components/color-picker/__tests__/color-picker.test.d.ts +2 -0
- package/dist/components/color-picker/__tests__/color-picker.test.d.ts.map +1 -0
- package/dist/components/command/__tests__/command.test.d.ts +2 -0
- package/dist/components/command/__tests__/command.test.d.ts.map +1 -0
- package/dist/components/container/__tests__/container.test.d.ts +2 -0
- package/dist/components/container/__tests__/container.test.d.ts.map +1 -0
- package/dist/components/container/container.d.ts +1 -1
- package/dist/components/copy-button/__tests__/copy-button.test.d.ts +2 -0
- package/dist/components/copy-button/__tests__/copy-button.test.d.ts.map +1 -0
- package/dist/components/copy-button/copy-button.cjs +4 -3
- package/dist/components/copy-button/copy-button.cjs.map +1 -1
- package/dist/components/copy-button/copy-button.d.ts +2 -3
- package/dist/components/copy-button/copy-button.d.ts.map +1 -1
- package/dist/components/copy-button/copy-button.js +5 -4
- package/dist/components/copy-button/copy-button.js.map +1 -1
- package/dist/components/data-table/__tests__/data-table.test.d.ts +2 -0
- package/dist/components/data-table/__tests__/data-table.test.d.ts.map +1 -0
- package/dist/components/dialog/__tests__/dialog.test.d.ts +2 -0
- package/dist/components/dialog/__tests__/dialog.test.d.ts.map +1 -0
- package/dist/components/dropdown-menu/__tests__/dropdown-menu.test.d.ts +2 -0
- package/dist/components/dropdown-menu/__tests__/dropdown-menu.test.d.ts.map +1 -0
- package/dist/components/empty-state/__tests__/empty-state.test.d.ts +2 -0
- package/dist/components/empty-state/__tests__/empty-state.test.d.ts.map +1 -0
- package/dist/components/filter-chip/__tests__/filter-chip.test.d.ts +2 -0
- package/dist/components/filter-chip/__tests__/filter-chip.test.d.ts.map +1 -0
- package/dist/components/flex/__tests__/flex.test.d.ts +2 -0
- package/dist/components/flex/__tests__/flex.test.d.ts.map +1 -0
- package/dist/components/flex/flex.d.ts +3 -3
- package/dist/components/grid/__tests__/grid.test.d.ts +2 -0
- package/dist/components/grid/__tests__/grid.test.d.ts.map +1 -0
- package/dist/components/headline/__tests__/headline.test.d.ts +2 -0
- package/dist/components/headline/__tests__/headline.test.d.ts.map +1 -0
- package/dist/components/headline/headline.d.ts +1 -1
- package/dist/components/icon-button/__tests__/icon-button.test.d.ts +2 -0
- package/dist/components/icon-button/__tests__/icon-button.test.d.ts.map +1 -0
- package/dist/components/image/__tests__/image.test.d.ts +2 -0
- package/dist/components/image/__tests__/image.test.d.ts.map +1 -0
- package/dist/components/image/image.d.ts +1 -1
- package/dist/components/indicator/__tests__/indicator.test.d.ts +2 -0
- package/dist/components/indicator/__tests__/indicator.test.d.ts.map +1 -0
- package/dist/components/input-field/__tests__/input-field.test.d.ts +2 -0
- package/dist/components/input-field/__tests__/input-field.test.d.ts.map +1 -0
- package/dist/components/label/__tests__/label.test.d.ts +2 -0
- package/dist/components/label/__tests__/label.test.d.ts.map +1 -0
- package/dist/components/link/__tests__/link.test.d.ts +2 -0
- package/dist/components/link/__tests__/link.test.d.ts.map +1 -0
- package/dist/components/list/__tests__/list.test.d.ts +2 -0
- package/dist/components/list/__tests__/list.test.d.ts.map +1 -0
- package/dist/components/popover/__tests__/popover.test.d.ts +2 -0
- package/dist/components/popover/__tests__/popover.test.d.ts.map +1 -0
- package/dist/components/popover/popover.cjs.map +1 -1
- package/dist/components/popover/popover.d.ts +1 -2
- package/dist/components/popover/popover.d.ts.map +1 -1
- package/dist/components/popover/popover.js.map +1 -1
- package/dist/components/radio/__tests__/radio.test.d.ts +2 -0
- package/dist/components/radio/__tests__/radio.test.d.ts.map +1 -0
- package/dist/components/search/__tests__/search.test.d.ts +2 -0
- package/dist/components/search/__tests__/search.test.d.ts.map +1 -0
- package/dist/components/select/__tests__/select.test.d.ts +2 -0
- package/dist/components/select/__tests__/select.test.d.ts.map +1 -0
- package/dist/components/select/select-root.cjs.map +1 -1
- package/dist/components/select/select-root.d.ts +2 -2
- package/dist/components/select/select-root.d.ts.map +1 -1
- package/dist/components/select/select-root.js.map +1 -1
- package/dist/components/separator/__tests__/separator.test.d.ts +2 -0
- package/dist/components/separator/__tests__/separator.test.d.ts.map +1 -0
- package/dist/components/sheet/__tests__/sheet.test.d.ts +2 -0
- package/dist/components/sheet/__tests__/sheet.test.d.ts.map +1 -0
- package/dist/components/sheet/sheet.cjs.map +1 -1
- package/dist/components/sheet/sheet.d.ts +1 -1
- package/dist/components/sheet/sheet.d.ts.map +1 -1
- package/dist/components/sheet/sheet.js.map +1 -1
- package/dist/components/side-panel/__tests__/side-panel.test.d.ts +2 -0
- package/dist/components/side-panel/__tests__/side-panel.test.d.ts.map +1 -0
- package/dist/components/sidebar/__tests__/sidebar.test.d.ts +2 -0
- package/dist/components/sidebar/__tests__/sidebar.test.d.ts.map +1 -0
- package/dist/components/sidebar/sidebar-item.cjs +37 -0
- package/dist/components/sidebar/sidebar-item.cjs.map +1 -0
- package/dist/components/sidebar/sidebar-item.d.ts +14 -0
- package/dist/components/sidebar/sidebar-item.d.ts.map +1 -0
- package/dist/components/sidebar/sidebar-item.js +35 -0
- package/dist/components/sidebar/sidebar-item.js.map +1 -0
- package/dist/components/sidebar/sidebar-main.cjs +13 -0
- package/dist/components/sidebar/sidebar-main.cjs.map +1 -0
- package/dist/components/sidebar/sidebar-main.d.ts +2 -0
- package/dist/components/sidebar/sidebar-main.d.ts.map +1 -0
- package/dist/components/sidebar/sidebar-main.js +11 -0
- package/dist/components/sidebar/sidebar-main.js.map +1 -0
- package/dist/components/sidebar/sidebar-misc.cjs +20 -0
- package/dist/components/sidebar/sidebar-misc.cjs.map +1 -0
- package/dist/components/sidebar/sidebar-misc.d.ts +9 -0
- package/dist/components/sidebar/sidebar-misc.d.ts.map +1 -0
- package/dist/components/sidebar/sidebar-misc.js +16 -0
- package/dist/components/sidebar/sidebar-misc.js.map +1 -0
- package/dist/components/sidebar/sidebar-root.cjs +34 -0
- package/dist/components/sidebar/sidebar-root.cjs.map +1 -0
- package/dist/components/sidebar/sidebar-root.d.ts +15 -0
- package/dist/components/sidebar/sidebar-root.d.ts.map +1 -0
- package/dist/components/sidebar/sidebar-root.js +31 -0
- package/dist/components/sidebar/sidebar-root.js.map +1 -0
- package/dist/components/sidebar/sidebar.cjs +10 -64
- package/dist/components/sidebar/sidebar.cjs.map +1 -1
- package/dist/components/sidebar/sidebar.d.ts +4 -29
- package/dist/components/sidebar/sidebar.d.ts.map +1 -1
- package/dist/components/sidebar/sidebar.js +4 -58
- package/dist/components/sidebar/sidebar.js.map +1 -1
- package/dist/components/skeleton/__tests__/skeleton.test.d.ts +2 -0
- package/dist/components/skeleton/__tests__/skeleton.test.d.ts.map +1 -0
- package/dist/components/slider/__tests__/slider.test.d.ts +2 -0
- package/dist/components/slider/__tests__/slider.test.d.ts.map +1 -0
- package/dist/components/slider/slider.cjs +4 -21
- package/dist/components/slider/slider.cjs.map +1 -1
- package/dist/components/slider/slider.d.ts +3 -3
- package/dist/components/slider/slider.d.ts.map +1 -1
- package/dist/components/slider/slider.js +6 -4
- package/dist/components/slider/slider.js.map +1 -1
- package/dist/components/slider/slider.module.css.cjs +1 -1
- package/dist/components/slider/slider.module.css.js +1 -1
- package/dist/components/switch/__tests__/switch.test.d.ts +2 -0
- package/dist/components/switch/__tests__/switch.test.d.ts.map +1 -0
- package/dist/components/switch/switch.cjs +1 -1
- package/dist/components/switch/switch.cjs.map +1 -1
- package/dist/components/switch/switch.d.ts.map +1 -1
- package/dist/components/switch/switch.js +2 -2
- package/dist/components/switch/switch.js.map +1 -1
- package/dist/components/table/__tests__/table.test.d.ts +2 -0
- package/dist/components/table/__tests__/table.test.d.ts.map +1 -0
- package/dist/components/tabs/__tests__/tabs.test.d.ts +2 -0
- package/dist/components/tabs/__tests__/tabs.test.d.ts.map +1 -0
- package/dist/components/tabs/tabs.cjs.map +1 -1
- package/dist/components/tabs/tabs.d.ts +1 -1
- package/dist/components/tabs/tabs.d.ts.map +1 -1
- package/dist/components/tabs/tabs.js.map +1 -1
- package/dist/components/text/__tests__/text.test.d.ts +2 -0
- package/dist/components/text/__tests__/text.test.d.ts.map +1 -0
- package/dist/components/text/text.cjs +7 -5
- package/dist/components/text/text.cjs.map +1 -1
- package/dist/components/text/text.d.ts +2 -2
- package/dist/components/text/text.d.ts.map +1 -1
- package/dist/components/text/text.js +5 -3
- package/dist/components/text/text.js.map +1 -1
- package/dist/components/text-area/__tests__/text-area.test.d.ts +2 -0
- package/dist/components/text-area/__tests__/text-area.test.d.ts.map +1 -0
- package/dist/components/text-area/text-area.cjs +1 -1
- package/dist/components/text-area/text-area.cjs.map +1 -1
- package/dist/components/text-area/text-area.d.ts.map +1 -1
- package/dist/components/text-area/text-area.js +1 -1
- package/dist/components/text-area/text-area.js.map +1 -1
- package/dist/components/theme-provider/__tests__/theme-provider.test.d.ts +2 -0
- package/dist/components/theme-provider/__tests__/theme-provider.test.d.ts.map +1 -0
- package/dist/components/toast/__tests__/toast.test.d.ts +2 -0
- package/dist/components/toast/__tests__/toast.test.d.ts.map +1 -0
- package/dist/components/tooltip/__tests__/tooltip.test.d.ts +2 -0
- package/dist/components/tooltip/__tests__/tooltip.test.d.ts.map +1 -0
- package/dist/components/tooltip/tooltip-root.d.ts +1 -1
- package/dist/figma/button.figma.d.ts +2 -0
- package/dist/figma/button.figma.d.ts.map +1 -0
- package/dist/hooks/index.cjs +2 -0
- package/dist/hooks/index.cjs.map +1 -1
- package/dist/hooks/index.d.ts +1 -0
- package/dist/hooks/index.d.ts.map +1 -1
- package/dist/hooks/index.js +1 -0
- package/dist/hooks/index.js.map +1 -1
- package/dist/hooks/useIsomorphicLayoutEffect.cjs +8 -0
- package/dist/hooks/useIsomorphicLayoutEffect.cjs.map +1 -0
- package/dist/hooks/useIsomorphicLayoutEffect.d.ts +3 -0
- package/dist/hooks/useIsomorphicLayoutEffect.d.ts.map +1 -0
- package/dist/hooks/useIsomorphicLayoutEffect.js +6 -0
- package/dist/hooks/useIsomorphicLayoutEffect.js.map +1 -0
- package/dist/index.cjs +4 -0
- package/dist/index.cjs.map +1 -1
- package/dist/index.d.ts +2 -0
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -1
- package/dist/node_modules/.pnpm/@radix-ui_react-accordion@1.2.11_@types_react-dom@19.1.7_@types_react@19.1.9__@types_react@19_mt5ahf6cxnui73dcsmqbdvyj2i/node_modules/@radix-ui/react-accordion/dist/index.cjs +319 -0
- package/dist/node_modules/.pnpm/@radix-ui_react-accordion@1.2.11_@types_react-dom@19.1.7_@types_react@19.1.9__@types_react@19_mt5ahf6cxnui73dcsmqbdvyj2i/node_modules/@radix-ui/react-accordion/dist/index.cjs.map +1 -0
- package/dist/node_modules/.pnpm/@radix-ui_react-accordion@1.2.11_@types_react-dom@19.1.7_@types_react@19.1.9__@types_react@19_mt5ahf6cxnui73dcsmqbdvyj2i/node_modules/@radix-ui/react-accordion/dist/index.js +307 -0
- package/dist/node_modules/.pnpm/@radix-ui_react-accordion@1.2.11_@types_react-dom@19.1.7_@types_react@19.1.9__@types_react@19_mt5ahf6cxnui73dcsmqbdvyj2i/node_modules/@radix-ui/react-accordion/dist/index.js.map +1 -0
- package/dist/node_modules/.pnpm/@radix-ui_react-collapsible@1.1.11_@types_react-dom@19.1.7_@types_react@19.1.9__@types_react@_a35yqe6vcc2vmteafw4xyimtca/node_modules/@radix-ui/react-collapsible/dist/index.cjs +4 -0
- package/dist/node_modules/.pnpm/@radix-ui_react-collapsible@1.1.11_@types_react-dom@19.1.7_@types_react@19.1.9__@types_react@_a35yqe6vcc2vmteafw4xyimtca/node_modules/@radix-ui/react-collapsible/dist/index.cjs.map +1 -1
- package/dist/node_modules/.pnpm/@radix-ui_react-collapsible@1.1.11_@types_react-dom@19.1.7_@types_react@19.1.9__@types_react@_a35yqe6vcc2vmteafw4xyimtca/node_modules/@radix-ui/react-collapsible/dist/index.js +3 -1
- package/dist/node_modules/.pnpm/@radix-ui_react-collapsible@1.1.11_@types_react-dom@19.1.7_@types_react@19.1.9__@types_react@_a35yqe6vcc2vmteafw4xyimtca/node_modules/@radix-ui/react-collapsible/dist/index.js.map +1 -1
- package/dist/node_modules/.pnpm/prism-react-renderer@2.4.1_react@19.1.1/node_modules/prism-react-renderer/dist/index.cjs +3138 -0
- package/dist/node_modules/.pnpm/prism-react-renderer@2.4.1_react@19.1.1/node_modules/prism-react-renderer/dist/index.cjs.map +1 -0
- package/dist/node_modules/.pnpm/prism-react-renderer@2.4.1_react@19.1.1/node_modules/prism-react-renderer/dist/index.js +3132 -0
- package/dist/node_modules/.pnpm/prism-react-renderer@2.4.1_react@19.1.1/node_modules/prism-react-renderer/dist/index.js.map +1 -0
- package/dist/style.css +1 -1
- package/package.json +8 -2
- package/dist/test-utils.d.ts +0 -6
- package/dist/test-utils.d.ts.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"calendar.cjs","sources":["../../../components/calendar/calendar.tsx"],"sourcesContent":["'use client';\n\nimport {\n ChevronDownIcon,\n ChevronLeftIcon,\n ChevronRightIcon,\n ChevronUpIcon\n} from '@radix-ui/react-icons';\nimport { cva, cx } from 'class-variance-authority';\nimport { ChangeEvent, useEffect, useState } from 'react';\nimport {\n DayPicker,\n DayPickerProps,\n DropdownProps,\n dateLib\n} from 'react-day-picker';\n\nimport { Flex } from '../flex/flex';\nimport { IconButton } from '../icon-button';\nimport { Select } from '../select';\nimport { Skeleton } from '../skeleton';\nimport { Tooltip } from '../tooltip';\nimport styles from './calendar.module.css';\n\ninterface OnDropdownOpen {\n onDropdownOpen?: VoidFunction;\n}\n\ninterface CalendarPropsExtended {\n showTooltip?: boolean;\n tooltipMessages?: { [key: string]: any };\n loadingData?: boolean;\n timeZone?: string;\n}\n\nexport type CalendarProps = DayPickerProps &\n OnDropdownOpen &\n CalendarPropsExtended;\n\nconst root = cva(styles.calendarRoot);\n\ninterface DropDownComponentProps extends DropdownProps, OnDropdownOpen {\n disabled?: boolean;\n}\n\nfunction DropDown({\n options = [],\n value,\n onChange,\n onDropdownOpen,\n disabled\n}: DropDownComponentProps) {\n const [open, setOpen] = useState(false);\n\n useEffect(() => {\n if (open && onDropdownOpen) onDropdownOpen();\n }, [open]);\n\n function handleChange(value: string) {\n if (onChange) {\n onChange({ target: { value } } as ChangeEvent<HTMLSelectElement>);\n }\n }\n\n return (\n <Select\n value={value?.toString()}\n onValueChange={handleChange}\n open={open}\n onOpenChange={setOpen}\n >\n <Select.Trigger\n className={styles.dropdown_trigger}\n iconProps={{\n className: styles.dropdown_icon\n }}\n size='small'\n variant='text'\n disabled={disabled}\n >\n <Select.Value />\n </Select.Trigger>\n <Select.Content className={styles.dropdown_content}>\n <Select.ScrollUpButton asChild>\n <Flex justify='center'>\n <ChevronUpIcon />\n </Flex>\n </Select.ScrollUpButton>\n <Select.Viewport>\n {options.map(opt => (\n <Select.Item\n value={opt.value.toString()}\n key={opt.value}\n disabled={opt.disabled}\n >\n {opt.label}\n </Select.Item>\n ))}\n </Select.Viewport>\n <Select.ScrollDownButton asChild>\n <Flex justify='center'>\n <ChevronDownIcon />\n </Flex>\n </Select.ScrollDownButton>\n </Select.Content>\n </Select>\n );\n}\n\nexport const Calendar = function ({\n className,\n classNames,\n showOutsideDays = true,\n onDropdownOpen,\n showTooltip = false,\n tooltipMessages = {},\n loadingData = false,\n timeZone,\n ...props\n}: CalendarProps) {\n return (\n <DayPicker\n showOutsideDays={showOutsideDays}\n timeZone={timeZone}\n components={{\n Chevron: props => {\n const icon =\n props.orientation === 'left' ? (\n <ChevronLeftIcon />\n ) : (\n <ChevronRightIcon />\n );\n\n return (\n <IconButton\n {...props}\n disabled={loadingData}\n className={cx(props.className, loadingData && styles.disabled)}\n size={3}\n aria-label={\n props.orientation === 'left' ? 'Previous month' : 'Next month'\n }\n >\n {icon}\n </IconButton>\n );\n },\n Dropdown: (props: DropdownProps) => (\n <DropDown\n {...props}\n onDropdownOpen={onDropdownOpen}\n disabled={loadingData}\n />\n ),\n DayButton: props => {\n const { day, ...buttonProps } = props;\n const message =\n tooltipMessages[dateLib.format(day.date, 'dd-MM-yyyy')];\n return (\n <Tooltip\n side='top'\n disabled={loadingData || !showTooltip || !message}\n message={message}\n >\n <button {...buttonProps} />\n </Tooltip>\n );\n },\n MonthGrid: props =>\n loadingData ? (\n <Skeleton\n count={5}\n height='18px'\n width='252px'\n style={{ marginBottom: 'var(--rs-space-6)' }}\n />\n ) : (\n <table {...props} />\n )\n }}\n classNames={{\n caption_label: styles.caption_label,\n button_previous: `${styles.nav_button} ${styles.nav_button_previous}`,\n button_next: `${styles.nav_button} ${styles.nav_button_next}`,\n month_caption: styles.month_caption,\n months: styles.months,\n nav: styles.nav,\n day: styles.day,\n today: styles.today,\n outside: styles.outside,\n week: styles.week,\n weekdays: styles.week,\n weekday: styles.weekday,\n disabled: styles.disabled,\n selected: styles.selected,\n day_button: styles.day_button,\n range_middle: styles.range_middle,\n range_end: styles.range_end,\n range_start: styles.range_start,\n hidden: styles.hidden,\n dropdowns: styles.dropdowns,\n ...classNames\n }}\n className={root({ className })}\n mode='single'\n {...props}\n />\n );\n};\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAuCA;AAMA;;;;AAUgC;AAC9B;;;;;;AAQA;;;AA2CF;AAEO;AAWL;;;;;;;;AAoCQ;;;AAYF;AAWD;;;;;;;;;;;;;;;;;;;;;AAsBC;AACD;AAMP;;"}
|
|
1
|
+
{"version":3,"file":"calendar.cjs","sources":["../../../components/calendar/calendar.tsx"],"sourcesContent":["'use client';\n\nimport {\n ChevronDownIcon,\n ChevronLeftIcon,\n ChevronRightIcon,\n ChevronUpIcon\n} from '@radix-ui/react-icons';\nimport { cva, cx } from 'class-variance-authority';\nimport { ChangeEvent, useEffect, useState } from 'react';\nimport {\n DayPicker,\n DayPickerProps,\n DropdownProps,\n dateLib\n} from 'react-day-picker';\n\nimport { Flex } from '../flex/flex';\nimport { IconButton } from '../icon-button';\nimport { Select } from '../select';\nimport { Skeleton } from '../skeleton';\nimport { Tooltip } from '../tooltip';\nimport styles from './calendar.module.css';\n\ninterface OnDropdownOpen {\n onDropdownOpen?: VoidFunction;\n}\n\ninterface CalendarPropsExtended {\n showTooltip?: boolean;\n tooltipMessages?: { [key: string]: any };\n loadingData?: boolean;\n timeZone?: string;\n}\n\nexport type CalendarProps = DayPickerProps &\n OnDropdownOpen &\n CalendarPropsExtended;\n\nconst root = cva(styles.calendarRoot);\n\ninterface DropDownComponentProps extends DropdownProps, OnDropdownOpen {\n disabled?: boolean;\n}\n\nfunction DropDown({\n options = [],\n value,\n onChange,\n onDropdownOpen,\n disabled\n}: DropDownComponentProps) {\n const [open, setOpen] = useState(false);\n\n useEffect(() => {\n if (open && onDropdownOpen) onDropdownOpen();\n }, [open, onDropdownOpen]);\n\n function handleChange(value: string) {\n if (onChange) {\n onChange({ target: { value } } as ChangeEvent<HTMLSelectElement>);\n }\n }\n\n return (\n <Select\n value={value?.toString()}\n onValueChange={handleChange}\n open={open}\n onOpenChange={setOpen}\n >\n <Select.Trigger\n className={styles.dropdown_trigger}\n iconProps={{\n className: styles.dropdown_icon\n }}\n size='small'\n variant='text'\n disabled={disabled}\n >\n <Select.Value />\n </Select.Trigger>\n <Select.Content className={styles.dropdown_content}>\n <Select.ScrollUpButton asChild>\n <Flex justify='center'>\n <ChevronUpIcon />\n </Flex>\n </Select.ScrollUpButton>\n <Select.Viewport>\n {options.map(opt => (\n <Select.Item\n value={opt.value.toString()}\n key={opt.value}\n disabled={opt.disabled}\n >\n {opt.label}\n </Select.Item>\n ))}\n </Select.Viewport>\n <Select.ScrollDownButton asChild>\n <Flex justify='center'>\n <ChevronDownIcon />\n </Flex>\n </Select.ScrollDownButton>\n </Select.Content>\n </Select>\n );\n}\n\nexport const Calendar = function ({\n className,\n classNames,\n showOutsideDays = true,\n onDropdownOpen,\n showTooltip = false,\n tooltipMessages = {},\n loadingData = false,\n timeZone,\n ...props\n}: CalendarProps) {\n return (\n <DayPicker\n showOutsideDays={showOutsideDays}\n timeZone={timeZone}\n components={{\n Chevron: props => {\n const icon =\n props.orientation === 'left' ? (\n <ChevronLeftIcon />\n ) : (\n <ChevronRightIcon />\n );\n\n return (\n <IconButton\n {...props}\n disabled={loadingData}\n className={cx(props.className, loadingData && styles.disabled)}\n size={3}\n aria-label={\n props.orientation === 'left' ? 'Previous month' : 'Next month'\n }\n >\n {icon}\n </IconButton>\n );\n },\n Dropdown: (props: DropdownProps) => (\n <DropDown\n {...props}\n onDropdownOpen={onDropdownOpen}\n disabled={loadingData}\n />\n ),\n DayButton: props => {\n const { day, ...buttonProps } = props;\n const message =\n tooltipMessages[dateLib.format(day.date, 'dd-MM-yyyy')];\n return (\n <Tooltip\n side='top'\n disabled={loadingData || !showTooltip || !message}\n message={message}\n >\n <button {...buttonProps} />\n </Tooltip>\n );\n },\n MonthGrid: props =>\n loadingData ? (\n <Skeleton\n count={5}\n height='18px'\n width='252px'\n style={{ marginBottom: 'var(--rs-space-6)' }}\n />\n ) : (\n <table {...props} />\n )\n }}\n classNames={{\n caption_label: styles.caption_label,\n button_previous: `${styles.nav_button} ${styles.nav_button_previous}`,\n button_next: `${styles.nav_button} ${styles.nav_button_next}`,\n month_caption: styles.month_caption,\n months: styles.months,\n nav: styles.nav,\n day: styles.day,\n today: styles.today,\n outside: styles.outside,\n week: styles.week,\n weekdays: styles.week,\n weekday: styles.weekday,\n disabled: styles.disabled,\n selected: styles.selected,\n day_button: styles.day_button,\n range_middle: styles.range_middle,\n range_end: styles.range_end,\n range_start: styles.range_start,\n hidden: styles.hidden,\n dropdowns: styles.dropdowns,\n ...classNames\n }}\n className={root({ className })}\n mode='single'\n {...props}\n />\n );\n};\n"],"names":[],"mappings":";;;;;;;;;;;;;;;;AAuCA;AAMA;;;;AAUgC;AAC9B;;;;;;AAQA;;;AA2CF;AAEO;AAWL;;;;;;;;AAoCQ;;;AAYF;AAWD;;;;;;;;;;;;;;;;;;;;;AAsBC;AACD;AAMP;;"}
|
|
@@ -18,7 +18,7 @@ function DropDown({ options = [], value, onChange, onDropdownOpen, disabled }) {
|
|
|
18
18
|
useEffect(() => {
|
|
19
19
|
if (open && onDropdownOpen)
|
|
20
20
|
onDropdownOpen();
|
|
21
|
-
}, [open]);
|
|
21
|
+
}, [open, onDropdownOpen]);
|
|
22
22
|
function handleChange(value) {
|
|
23
23
|
if (onChange) {
|
|
24
24
|
onChange({ target: { value } });
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"calendar.js","sources":["../../../components/calendar/calendar.tsx"],"sourcesContent":["'use client';\n\nimport {\n ChevronDownIcon,\n ChevronLeftIcon,\n ChevronRightIcon,\n ChevronUpIcon\n} from '@radix-ui/react-icons';\nimport { cva, cx } from 'class-variance-authority';\nimport { ChangeEvent, useEffect, useState } from 'react';\nimport {\n DayPicker,\n DayPickerProps,\n DropdownProps,\n dateLib\n} from 'react-day-picker';\n\nimport { Flex } from '../flex/flex';\nimport { IconButton } from '../icon-button';\nimport { Select } from '../select';\nimport { Skeleton } from '../skeleton';\nimport { Tooltip } from '../tooltip';\nimport styles from './calendar.module.css';\n\ninterface OnDropdownOpen {\n onDropdownOpen?: VoidFunction;\n}\n\ninterface CalendarPropsExtended {\n showTooltip?: boolean;\n tooltipMessages?: { [key: string]: any };\n loadingData?: boolean;\n timeZone?: string;\n}\n\nexport type CalendarProps = DayPickerProps &\n OnDropdownOpen &\n CalendarPropsExtended;\n\nconst root = cva(styles.calendarRoot);\n\ninterface DropDownComponentProps extends DropdownProps, OnDropdownOpen {\n disabled?: boolean;\n}\n\nfunction DropDown({\n options = [],\n value,\n onChange,\n onDropdownOpen,\n disabled\n}: DropDownComponentProps) {\n const [open, setOpen] = useState(false);\n\n useEffect(() => {\n if (open && onDropdownOpen) onDropdownOpen();\n }, [open]);\n\n function handleChange(value: string) {\n if (onChange) {\n onChange({ target: { value } } as ChangeEvent<HTMLSelectElement>);\n }\n }\n\n return (\n <Select\n value={value?.toString()}\n onValueChange={handleChange}\n open={open}\n onOpenChange={setOpen}\n >\n <Select.Trigger\n className={styles.dropdown_trigger}\n iconProps={{\n className: styles.dropdown_icon\n }}\n size='small'\n variant='text'\n disabled={disabled}\n >\n <Select.Value />\n </Select.Trigger>\n <Select.Content className={styles.dropdown_content}>\n <Select.ScrollUpButton asChild>\n <Flex justify='center'>\n <ChevronUpIcon />\n </Flex>\n </Select.ScrollUpButton>\n <Select.Viewport>\n {options.map(opt => (\n <Select.Item\n value={opt.value.toString()}\n key={opt.value}\n disabled={opt.disabled}\n >\n {opt.label}\n </Select.Item>\n ))}\n </Select.Viewport>\n <Select.ScrollDownButton asChild>\n <Flex justify='center'>\n <ChevronDownIcon />\n </Flex>\n </Select.ScrollDownButton>\n </Select.Content>\n </Select>\n );\n}\n\nexport const Calendar = function ({\n className,\n classNames,\n showOutsideDays = true,\n onDropdownOpen,\n showTooltip = false,\n tooltipMessages = {},\n loadingData = false,\n timeZone,\n ...props\n}: CalendarProps) {\n return (\n <DayPicker\n showOutsideDays={showOutsideDays}\n timeZone={timeZone}\n components={{\n Chevron: props => {\n const icon =\n props.orientation === 'left' ? (\n <ChevronLeftIcon />\n ) : (\n <ChevronRightIcon />\n );\n\n return (\n <IconButton\n {...props}\n disabled={loadingData}\n className={cx(props.className, loadingData && styles.disabled)}\n size={3}\n aria-label={\n props.orientation === 'left' ? 'Previous month' : 'Next month'\n }\n >\n {icon}\n </IconButton>\n );\n },\n Dropdown: (props: DropdownProps) => (\n <DropDown\n {...props}\n onDropdownOpen={onDropdownOpen}\n disabled={loadingData}\n />\n ),\n DayButton: props => {\n const { day, ...buttonProps } = props;\n const message =\n tooltipMessages[dateLib.format(day.date, 'dd-MM-yyyy')];\n return (\n <Tooltip\n side='top'\n disabled={loadingData || !showTooltip || !message}\n message={message}\n >\n <button {...buttonProps} />\n </Tooltip>\n );\n },\n MonthGrid: props =>\n loadingData ? (\n <Skeleton\n count={5}\n height='18px'\n width='252px'\n style={{ marginBottom: 'var(--rs-space-6)' }}\n />\n ) : (\n <table {...props} />\n )\n }}\n classNames={{\n caption_label: styles.caption_label,\n button_previous: `${styles.nav_button} ${styles.nav_button_previous}`,\n button_next: `${styles.nav_button} ${styles.nav_button_next}`,\n month_caption: styles.month_caption,\n months: styles.months,\n nav: styles.nav,\n day: styles.day,\n today: styles.today,\n outside: styles.outside,\n week: styles.week,\n weekdays: styles.week,\n weekday: styles.weekday,\n disabled: styles.disabled,\n selected: styles.selected,\n day_button: styles.day_button,\n range_middle: styles.range_middle,\n range_end: styles.range_end,\n range_start: styles.range_start,\n hidden: styles.hidden,\n dropdowns: styles.dropdowns,\n ...classNames\n }}\n className={root({ className })}\n mode='single'\n {...props}\n />\n );\n};\n"],"names":[],"mappings":";;;;;;;;;;;;;;AAuCA;AAMA;;;;AAUgC;AAC9B;;;;;;AAQA;;;AA2CF;AAEO;AAWL;;;;;;;;AAoCQ;;;AAYF;AAWD;;;;;;;;;;;;;;;;;;;;;AAsBC;AACD;AAMP;;"}
|
|
1
|
+
{"version":3,"file":"calendar.js","sources":["../../../components/calendar/calendar.tsx"],"sourcesContent":["'use client';\n\nimport {\n ChevronDownIcon,\n ChevronLeftIcon,\n ChevronRightIcon,\n ChevronUpIcon\n} from '@radix-ui/react-icons';\nimport { cva, cx } from 'class-variance-authority';\nimport { ChangeEvent, useEffect, useState } from 'react';\nimport {\n DayPicker,\n DayPickerProps,\n DropdownProps,\n dateLib\n} from 'react-day-picker';\n\nimport { Flex } from '../flex/flex';\nimport { IconButton } from '../icon-button';\nimport { Select } from '../select';\nimport { Skeleton } from '../skeleton';\nimport { Tooltip } from '../tooltip';\nimport styles from './calendar.module.css';\n\ninterface OnDropdownOpen {\n onDropdownOpen?: VoidFunction;\n}\n\ninterface CalendarPropsExtended {\n showTooltip?: boolean;\n tooltipMessages?: { [key: string]: any };\n loadingData?: boolean;\n timeZone?: string;\n}\n\nexport type CalendarProps = DayPickerProps &\n OnDropdownOpen &\n CalendarPropsExtended;\n\nconst root = cva(styles.calendarRoot);\n\ninterface DropDownComponentProps extends DropdownProps, OnDropdownOpen {\n disabled?: boolean;\n}\n\nfunction DropDown({\n options = [],\n value,\n onChange,\n onDropdownOpen,\n disabled\n}: DropDownComponentProps) {\n const [open, setOpen] = useState(false);\n\n useEffect(() => {\n if (open && onDropdownOpen) onDropdownOpen();\n }, [open, onDropdownOpen]);\n\n function handleChange(value: string) {\n if (onChange) {\n onChange({ target: { value } } as ChangeEvent<HTMLSelectElement>);\n }\n }\n\n return (\n <Select\n value={value?.toString()}\n onValueChange={handleChange}\n open={open}\n onOpenChange={setOpen}\n >\n <Select.Trigger\n className={styles.dropdown_trigger}\n iconProps={{\n className: styles.dropdown_icon\n }}\n size='small'\n variant='text'\n disabled={disabled}\n >\n <Select.Value />\n </Select.Trigger>\n <Select.Content className={styles.dropdown_content}>\n <Select.ScrollUpButton asChild>\n <Flex justify='center'>\n <ChevronUpIcon />\n </Flex>\n </Select.ScrollUpButton>\n <Select.Viewport>\n {options.map(opt => (\n <Select.Item\n value={opt.value.toString()}\n key={opt.value}\n disabled={opt.disabled}\n >\n {opt.label}\n </Select.Item>\n ))}\n </Select.Viewport>\n <Select.ScrollDownButton asChild>\n <Flex justify='center'>\n <ChevronDownIcon />\n </Flex>\n </Select.ScrollDownButton>\n </Select.Content>\n </Select>\n );\n}\n\nexport const Calendar = function ({\n className,\n classNames,\n showOutsideDays = true,\n onDropdownOpen,\n showTooltip = false,\n tooltipMessages = {},\n loadingData = false,\n timeZone,\n ...props\n}: CalendarProps) {\n return (\n <DayPicker\n showOutsideDays={showOutsideDays}\n timeZone={timeZone}\n components={{\n Chevron: props => {\n const icon =\n props.orientation === 'left' ? (\n <ChevronLeftIcon />\n ) : (\n <ChevronRightIcon />\n );\n\n return (\n <IconButton\n {...props}\n disabled={loadingData}\n className={cx(props.className, loadingData && styles.disabled)}\n size={3}\n aria-label={\n props.orientation === 'left' ? 'Previous month' : 'Next month'\n }\n >\n {icon}\n </IconButton>\n );\n },\n Dropdown: (props: DropdownProps) => (\n <DropDown\n {...props}\n onDropdownOpen={onDropdownOpen}\n disabled={loadingData}\n />\n ),\n DayButton: props => {\n const { day, ...buttonProps } = props;\n const message =\n tooltipMessages[dateLib.format(day.date, 'dd-MM-yyyy')];\n return (\n <Tooltip\n side='top'\n disabled={loadingData || !showTooltip || !message}\n message={message}\n >\n <button {...buttonProps} />\n </Tooltip>\n );\n },\n MonthGrid: props =>\n loadingData ? (\n <Skeleton\n count={5}\n height='18px'\n width='252px'\n style={{ marginBottom: 'var(--rs-space-6)' }}\n />\n ) : (\n <table {...props} />\n )\n }}\n classNames={{\n caption_label: styles.caption_label,\n button_previous: `${styles.nav_button} ${styles.nav_button_previous}`,\n button_next: `${styles.nav_button} ${styles.nav_button_next}`,\n month_caption: styles.month_caption,\n months: styles.months,\n nav: styles.nav,\n day: styles.day,\n today: styles.today,\n outside: styles.outside,\n week: styles.week,\n weekdays: styles.week,\n weekday: styles.weekday,\n disabled: styles.disabled,\n selected: styles.selected,\n day_button: styles.day_button,\n range_middle: styles.range_middle,\n range_end: styles.range_end,\n range_start: styles.range_start,\n hidden: styles.hidden,\n dropdowns: styles.dropdowns,\n ...classNames\n }}\n className={root({ className })}\n mode='single'\n {...props}\n />\n );\n};\n"],"names":[],"mappings":";;;;;;;;;;;;;;AAuCA;AAMA;;;;AAUgC;AAC9B;;;;;;AAQA;;;AA2CF;AAEO;AAWL;;;;;;;;AAoCQ;;;AAYF;AAWD;;;;;;;;;;;;;;;;;;;;;AAsBC;AACD;AAMP;;"}
|
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
|
|
4
4
|
var jsxRuntime = require('react/jsx-runtime');
|
|
5
5
|
var reactIcons_esm = require('../../node_modules/.pnpm/@radix-ui_react-icons@1.3.2_react@19.1.1/node_modules/@radix-ui/react-icons/dist/react-icons.esm.cjs');
|
|
6
|
+
var index = require('../../node_modules/.pnpm/class-variance-authority@0.7.1/node_modules/class-variance-authority/dist/index.cjs');
|
|
6
7
|
var dayjs_min = require('../../node_modules/.pnpm/dayjs@1.11.11/node_modules/dayjs/dayjs.min.cjs');
|
|
7
8
|
var customParseFormat = require('../../node_modules/.pnpm/dayjs@1.11.11/node_modules/dayjs/plugin/customParseFormat.cjs');
|
|
8
9
|
var React = require('react');
|
|
@@ -12,7 +13,7 @@ var calendar = require('./calendar.cjs');
|
|
|
12
13
|
var calendar_module = require('./calendar.module.css.cjs');
|
|
13
14
|
|
|
14
15
|
dayjs_min.default.extend(customParseFormat.default);
|
|
15
|
-
function DatePicker({
|
|
16
|
+
function DatePicker({ dateFormat = 'DD/MM/YYYY', inputFieldProps, calendarProps, value = new Date(), onSelect = () => { }, children, showCalendarIcon = true, timeZone, popoverProps }) {
|
|
16
17
|
const [showCalendar, setShowCalendar] = React.useState(false);
|
|
17
18
|
const [selectedDate, setSelectedDate] = React.useState(value);
|
|
18
19
|
const [error, setError] = React.useState();
|
|
@@ -25,16 +26,16 @@ function DatePicker({ side = 'top', dateFormat = 'DD/MM/YYYY', inputFieldProps,
|
|
|
25
26
|
React.useEffect(() => {
|
|
26
27
|
selectedDateRef.current = selectedDate;
|
|
27
28
|
}, [selectedDate]);
|
|
28
|
-
|
|
29
|
+
const isElementOutside = React.useCallback((el) => {
|
|
29
30
|
return (!isDropdownOpenRef.current && // Month and Year dropdown from Date picker
|
|
30
31
|
!inputFieldRef.current?.contains(el) && // InputField
|
|
31
32
|
!contentRef.current?.contains(el));
|
|
32
|
-
}
|
|
33
|
+
}, []);
|
|
33
34
|
const handleMouseDown = React.useCallback((event) => {
|
|
34
35
|
const el = event.target;
|
|
35
36
|
if (el && isElementOutside(el))
|
|
36
37
|
removeEventListeners();
|
|
37
|
-
}, []);
|
|
38
|
+
}, [isElementOutside]);
|
|
38
39
|
function registerEventListeners() {
|
|
39
40
|
isInputFieldFocused.current = true;
|
|
40
41
|
document.addEventListener('mouseup', handleMouseDown);
|
|
@@ -113,8 +114,8 @@ function DatePicker({ side = 'top', dateFormat = 'DD/MM/YYYY', inputFieldProps,
|
|
|
113
114
|
}
|
|
114
115
|
}
|
|
115
116
|
const defaultTrigger = (jsxRuntime.jsx(inputField.InputField, { size: 'small', placeholder: 'Select date', error: error, className: calendar_module.default.datePickerInput, trailingIcon: showCalendarIcon ? jsxRuntime.jsx(reactIcons_esm.CalendarIcon, {}) : undefined, ...inputFieldProps, ref: inputFieldRef, defaultValue: formattedDate, onChange: handleInputChange, onFocus: handleInputFocus, onBlur: handleInputBlur, onKeyUp: handleKeyUp }));
|
|
116
|
-
const trigger = typeof children === 'function' ? (children({ selectedDate: formattedDate })) : children ? (jsxRuntime.jsx("div", { children: children })) : (defaultTrigger);
|
|
117
|
-
return (jsxRuntime.jsxs(popover.Popover, { open: showCalendar, onOpenChange: onOpenChange, children: [jsxRuntime.jsx(popover.Popover.Trigger, { asChild: true, children: trigger }), jsxRuntime.jsx(popover.Popover.Content, {
|
|
117
|
+
const trigger = typeof children === 'function' ? (children({ selectedDate: formattedDate })) : children ? (jsxRuntime.jsx("div", { children: children })) : (jsxRuntime.jsx("div", { children: defaultTrigger }));
|
|
118
|
+
return (jsxRuntime.jsxs(popover.Popover, { open: showCalendar, onOpenChange: onOpenChange, children: [jsxRuntime.jsx(popover.Popover.Trigger, { asChild: true, children: trigger }), jsxRuntime.jsx(popover.Popover.Content, { ref: contentRef, ...popoverProps, className: index.cx(calendar_module.default.calendarPopover, popoverProps?.className), side: popoverProps?.side ?? 'top', children: jsxRuntime.jsx(calendar.Calendar, { required: true, ...calendarProps, timeZone: timeZone, onDropdownOpen: onDropdownOpen, mode: 'single', selected: selectedDate, month: selectedDate, onSelect: handleSelect, onMonthChange: setSelectedDate }) })] }));
|
|
118
119
|
}
|
|
119
120
|
|
|
120
121
|
exports.DatePicker = DatePicker;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"date-picker.cjs","sources":["../../../components/calendar/date-picker.tsx"],"sourcesContent":["'use client';\n\nimport { CalendarIcon } from '@radix-ui/react-icons';\nimport dayjs from 'dayjs';\nimport customParseFormat from 'dayjs/plugin/customParseFormat';\nimport { useCallback, useEffect, useRef, useState } from 'react';\nimport { PropsBase, PropsSingleRequired } from 'react-day-picker';\
|
|
1
|
+
{"version":3,"file":"date-picker.cjs","sources":["../../../components/calendar/date-picker.tsx"],"sourcesContent":["'use client';\n\nimport { CalendarIcon } from '@radix-ui/react-icons';\nimport { cx } from 'class-variance-authority';\nimport dayjs from 'dayjs';\nimport customParseFormat from 'dayjs/plugin/customParseFormat';\nimport { useCallback, useEffect, useRef, useState } from 'react';\nimport { PropsBase, PropsSingleRequired } from 'react-day-picker';\nimport { InputField } from '../input-field';\nimport { InputFieldProps } from '../input-field/input-field';\nimport { Popover } from '../popover';\nimport { PopoverContentProps } from '../popover/popover';\nimport { Calendar } from './calendar';\nimport styles from './calendar.module.css';\n\ndayjs.extend(customParseFormat);\n\ninterface DatePickerProps {\n dateFormat?: string;\n inputFieldProps?: InputFieldProps;\n calendarProps?: PropsSingleRequired & PropsBase;\n onSelect?: (date: Date) => void;\n value?: Date;\n children?:\n | React.ReactNode\n | ((props: { selectedDate: string }) => React.ReactNode);\n showCalendarIcon?: boolean;\n timeZone?: string;\n popoverProps?: PopoverContentProps;\n}\n\nexport function DatePicker({\n dateFormat = 'DD/MM/YYYY',\n inputFieldProps,\n calendarProps,\n value = new Date(),\n onSelect = () => {},\n children,\n showCalendarIcon = true,\n timeZone,\n popoverProps\n}: DatePickerProps) {\n const [showCalendar, setShowCalendar] = useState(false);\n const [selectedDate, setSelectedDate] = useState(value);\n const [error, setError] = useState<string>();\n\n const formattedDate = dayjs(selectedDate).format(dateFormat);\n\n const isDropdownOpenRef = useRef(false);\n const inputFieldRef = useRef<HTMLInputElement | null>(null);\n const contentRef = useRef<HTMLDivElement | null>(null);\n const isInputFieldFocused = useRef(false);\n const selectedDateRef = useRef(selectedDate);\n\n useEffect(() => {\n selectedDateRef.current = selectedDate;\n }, [selectedDate]);\n\n const isElementOutside = useCallback((el: HTMLElement) => {\n return (\n !isDropdownOpenRef.current && // Month and Year dropdown from Date picker\n !inputFieldRef.current?.contains(el) && // InputField\n !contentRef.current?.contains(el)\n );\n }, []);\n\n const handleMouseDown = useCallback(\n (event: MouseEvent) => {\n const el = event.target as HTMLElement | null;\n if (el && isElementOutside(el)) removeEventListeners();\n },\n [isElementOutside]\n );\n\n function registerEventListeners() {\n isInputFieldFocused.current = true;\n document.addEventListener('mouseup', handleMouseDown);\n }\n\n function removeEventListeners(skipUpdate = false) {\n isInputFieldFocused.current = false;\n setShowCalendar(false);\n\n const updatedVal = dayjs(selectedDateRef.current).format(dateFormat);\n\n if (inputFieldRef.current) inputFieldRef.current.value = updatedVal;\n if (!error && !skipUpdate) onSelect(dayjs(updatedVal).toDate());\n\n document.removeEventListener('mouseup', handleMouseDown);\n }\n\n const handleSelect = (day: Date) => {\n setSelectedDate(day);\n onSelect(day);\n setError(undefined);\n removeEventListeners(true);\n };\n\n function onDropdownOpen() {\n isDropdownOpenRef.current = true;\n }\n\n function onOpenChange(open?: boolean) {\n if (\n !isDropdownOpenRef.current &&\n !(isInputFieldFocused.current && showCalendar)\n ) {\n setShowCalendar(Boolean(open));\n }\n\n isDropdownOpenRef.current = false;\n }\n\n function handleInputFocus() {\n if (isInputFieldFocused.current) return;\n if (!showCalendar) setShowCalendar(true);\n }\n\n function handleInputBlur(event: React.FocusEvent) {\n if (isInputFieldFocused.current) {\n const el = event.relatedTarget as HTMLElement | null;\n if (el && isElementOutside(el)) removeEventListeners();\n } else {\n registerEventListeners();\n setTimeout(() => inputFieldRef.current?.select());\n }\n }\n\n function handleKeyUp(event: React.KeyboardEvent) {\n if (event.code === 'Enter' && inputFieldRef.current) {\n inputFieldRef.current.blur();\n removeEventListeners();\n }\n }\n\n function handleInputChange(event: React.ChangeEvent<HTMLInputElement>) {\n const { value } = event.target;\n\n const format = value.includes('/')\n ? 'DD/MM/YYYY'\n : value.includes('-')\n ? 'DD-MM-YYYY'\n : undefined;\n const date = dayjs(value, format);\n\n const isValidDate = date.isValid();\n\n const isAfter =\n calendarProps?.startMonth !== undefined\n ? dayjs(date).isSameOrAfter(calendarProps.startMonth)\n : true;\n const isBefore =\n calendarProps?.endMonth !== undefined\n ? dayjs(date).isSameOrBefore(calendarProps.endMonth)\n : true;\n\n const isValid =\n isValidDate && isAfter && isBefore && dayjs(date).isSameOrBefore(dayjs());\n\n if (isValid) {\n setSelectedDate(date.toDate());\n setError(undefined);\n } else {\n setError('Invalid date');\n }\n }\n\n const defaultTrigger = (\n <InputField\n size='small'\n placeholder='Select date'\n error={error}\n className={styles.datePickerInput}\n trailingIcon={showCalendarIcon ? <CalendarIcon /> : undefined}\n {...inputFieldProps}\n ref={inputFieldRef}\n defaultValue={formattedDate}\n onChange={handleInputChange}\n onFocus={handleInputFocus}\n onBlur={handleInputBlur}\n onKeyUp={handleKeyUp}\n />\n );\n\n const trigger =\n typeof children === 'function' ? (\n children({ selectedDate: formattedDate })\n ) : children ? (\n <div>{children}</div>\n ) : (\n <div>{defaultTrigger}</div>\n );\n\n return (\n <Popover open={showCalendar} onOpenChange={onOpenChange}>\n <Popover.Trigger asChild>{trigger}</Popover.Trigger>\n <Popover.Content\n ref={contentRef}\n {...popoverProps}\n className={cx(styles.calendarPopover, popoverProps?.className)}\n side={popoverProps?.side ?? 'top'}\n >\n <Calendar\n required={true}\n {...calendarProps}\n timeZone={timeZone}\n onDropdownOpen={onDropdownOpen}\n mode='single'\n selected={selectedDate}\n month={selectedDate}\n onSelect={handleSelect}\n onMonthChange={setSelectedDate}\n />\n </Popover.Content>\n </Popover>\n );\n}\n"],"names":["dayjs"],"mappings":";;;;;;;;;;;;;;AAeAA;AAgBgB;;;;;AAiBd;AACA;AACA;AACA;AACA;;AAGE;AACF;AAEA;AACE;;;;AAOF;AAEI;AACA;AAAgC;AAClC;AAIF;AACE;AACA;;AAGF;AACE;;AAGA;;AAE2B;AAC3B;;AAEA;;AAGF;;;;;AAKA;AAEA;AACE;;;;;AAQE;;AAGF;;AAGF;;;AAEE;;;;AAIA;AACE;AACA;AAAgC;;;AAEhC;;;;;;AAOA;AACA;;;;AAKF;AAEA;AACE;AACA;AACE;;;AAIJ;AAEA;;;AAIA;;;AAKA;;AAIE;;;;;;;AAOJ;AAiBA;;AAgCF;;"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { PropsBase, PropsSingleRequired } from 'react-day-picker';
|
|
2
2
|
import { InputFieldProps } from '../input-field/input-field';
|
|
3
|
+
import { PopoverContentProps } from '../popover/popover';
|
|
3
4
|
interface DatePickerProps {
|
|
4
|
-
side?: 'top' | 'right' | 'bottom' | 'left';
|
|
5
5
|
dateFormat?: string;
|
|
6
6
|
inputFieldProps?: InputFieldProps;
|
|
7
7
|
calendarProps?: PropsSingleRequired & PropsBase;
|
|
@@ -12,7 +12,8 @@ interface DatePickerProps {
|
|
|
12
12
|
}) => React.ReactNode);
|
|
13
13
|
showCalendarIcon?: boolean;
|
|
14
14
|
timeZone?: string;
|
|
15
|
+
popoverProps?: PopoverContentProps;
|
|
15
16
|
}
|
|
16
|
-
export declare function DatePicker({
|
|
17
|
+
export declare function DatePicker({ dateFormat, inputFieldProps, calendarProps, value, onSelect, children, showCalendarIcon, timeZone, popoverProps }: DatePickerProps): import("react/jsx-runtime").JSX.Element;
|
|
17
18
|
export {};
|
|
18
19
|
//# sourceMappingURL=date-picker.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"date-picker.d.ts","sourceRoot":"","sources":["../../../components/calendar/date-picker.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"date-picker.d.ts","sourceRoot":"","sources":["../../../components/calendar/date-picker.tsx"],"names":[],"mappings":"AAOA,OAAO,EAAE,SAAS,EAAE,mBAAmB,EAAE,MAAM,kBAAkB,CAAC;AAElE,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAE7D,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAMzD,UAAU,eAAe;IACvB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,eAAe,CAAC,EAAE,eAAe,CAAC;IAClC,aAAa,CAAC,EAAE,mBAAmB,GAAG,SAAS,CAAC;IAChD,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,IAAI,KAAK,IAAI,CAAC;IAChC,KAAK,CAAC,EAAE,IAAI,CAAC;IACb,QAAQ,CAAC,EACL,KAAK,CAAC,SAAS,GACf,CAAC,CAAC,KAAK,EAAE;QAAE,YAAY,EAAE,MAAM,CAAA;KAAE,KAAK,KAAK,CAAC,SAAS,CAAC,CAAC;IAC3D,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,YAAY,CAAC,EAAE,mBAAmB,CAAC;CACpC;AAED,wBAAgB,UAAU,CAAC,EACzB,UAAyB,EACzB,eAAe,EACf,aAAa,EACb,KAAkB,EAClB,QAAmB,EACnB,QAAQ,EACR,gBAAuB,EACvB,QAAQ,EACR,YAAY,EACb,EAAE,eAAe,2CA+KjB"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
import { jsx, jsxs } from 'react/jsx-runtime';
|
|
3
3
|
import { CalendarIcon } from '../../node_modules/.pnpm/@radix-ui_react-icons@1.3.2_react@19.1.1/node_modules/@radix-ui/react-icons/dist/react-icons.esm.js';
|
|
4
|
+
import { cx } from '../../node_modules/.pnpm/class-variance-authority@0.7.1/node_modules/class-variance-authority/dist/index.js';
|
|
4
5
|
import dayjs from '../../node_modules/.pnpm/dayjs@1.11.11/node_modules/dayjs/dayjs.min.js';
|
|
5
6
|
import customParseFormat from '../../node_modules/.pnpm/dayjs@1.11.11/node_modules/dayjs/plugin/customParseFormat.js';
|
|
6
7
|
import { useState, useRef, useEffect, useCallback } from 'react';
|
|
@@ -10,7 +11,7 @@ import { Calendar } from './calendar.js';
|
|
|
10
11
|
import styles from './calendar.module.css.js';
|
|
11
12
|
|
|
12
13
|
dayjs.extend(customParseFormat);
|
|
13
|
-
function DatePicker({
|
|
14
|
+
function DatePicker({ dateFormat = 'DD/MM/YYYY', inputFieldProps, calendarProps, value = new Date(), onSelect = () => { }, children, showCalendarIcon = true, timeZone, popoverProps }) {
|
|
14
15
|
const [showCalendar, setShowCalendar] = useState(false);
|
|
15
16
|
const [selectedDate, setSelectedDate] = useState(value);
|
|
16
17
|
const [error, setError] = useState();
|
|
@@ -23,16 +24,16 @@ function DatePicker({ side = 'top', dateFormat = 'DD/MM/YYYY', inputFieldProps,
|
|
|
23
24
|
useEffect(() => {
|
|
24
25
|
selectedDateRef.current = selectedDate;
|
|
25
26
|
}, [selectedDate]);
|
|
26
|
-
|
|
27
|
+
const isElementOutside = useCallback((el) => {
|
|
27
28
|
return (!isDropdownOpenRef.current && // Month and Year dropdown from Date picker
|
|
28
29
|
!inputFieldRef.current?.contains(el) && // InputField
|
|
29
30
|
!contentRef.current?.contains(el));
|
|
30
|
-
}
|
|
31
|
+
}, []);
|
|
31
32
|
const handleMouseDown = useCallback((event) => {
|
|
32
33
|
const el = event.target;
|
|
33
34
|
if (el && isElementOutside(el))
|
|
34
35
|
removeEventListeners();
|
|
35
|
-
}, []);
|
|
36
|
+
}, [isElementOutside]);
|
|
36
37
|
function registerEventListeners() {
|
|
37
38
|
isInputFieldFocused.current = true;
|
|
38
39
|
document.addEventListener('mouseup', handleMouseDown);
|
|
@@ -111,8 +112,8 @@ function DatePicker({ side = 'top', dateFormat = 'DD/MM/YYYY', inputFieldProps,
|
|
|
111
112
|
}
|
|
112
113
|
}
|
|
113
114
|
const defaultTrigger = (jsx(InputField, { size: 'small', placeholder: 'Select date', error: error, className: styles.datePickerInput, trailingIcon: showCalendarIcon ? jsx(CalendarIcon, {}) : undefined, ...inputFieldProps, ref: inputFieldRef, defaultValue: formattedDate, onChange: handleInputChange, onFocus: handleInputFocus, onBlur: handleInputBlur, onKeyUp: handleKeyUp }));
|
|
114
|
-
const trigger = typeof children === 'function' ? (children({ selectedDate: formattedDate })) : children ? (jsx("div", { children: children })) : (defaultTrigger);
|
|
115
|
-
return (jsxs(Popover, { open: showCalendar, onOpenChange: onOpenChange, children: [jsx(Popover.Trigger, { asChild: true, children: trigger }), jsx(Popover.Content, {
|
|
115
|
+
const trigger = typeof children === 'function' ? (children({ selectedDate: formattedDate })) : children ? (jsx("div", { children: children })) : (jsx("div", { children: defaultTrigger }));
|
|
116
|
+
return (jsxs(Popover, { open: showCalendar, onOpenChange: onOpenChange, children: [jsx(Popover.Trigger, { asChild: true, children: trigger }), jsx(Popover.Content, { ref: contentRef, ...popoverProps, className: cx(styles.calendarPopover, popoverProps?.className), side: popoverProps?.side ?? 'top', children: jsx(Calendar, { required: true, ...calendarProps, timeZone: timeZone, onDropdownOpen: onDropdownOpen, mode: 'single', selected: selectedDate, month: selectedDate, onSelect: handleSelect, onMonthChange: setSelectedDate }) })] }));
|
|
116
117
|
}
|
|
117
118
|
|
|
118
119
|
export { DatePicker };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"date-picker.js","sources":["../../../components/calendar/date-picker.tsx"],"sourcesContent":["'use client';\n\nimport { CalendarIcon } from '@radix-ui/react-icons';\nimport dayjs from 'dayjs';\nimport customParseFormat from 'dayjs/plugin/customParseFormat';\nimport { useCallback, useEffect, useRef, useState } from 'react';\nimport { PropsBase, PropsSingleRequired } from 'react-day-picker';\
|
|
1
|
+
{"version":3,"file":"date-picker.js","sources":["../../../components/calendar/date-picker.tsx"],"sourcesContent":["'use client';\n\nimport { CalendarIcon } from '@radix-ui/react-icons';\nimport { cx } from 'class-variance-authority';\nimport dayjs from 'dayjs';\nimport customParseFormat from 'dayjs/plugin/customParseFormat';\nimport { useCallback, useEffect, useRef, useState } from 'react';\nimport { PropsBase, PropsSingleRequired } from 'react-day-picker';\nimport { InputField } from '../input-field';\nimport { InputFieldProps } from '../input-field/input-field';\nimport { Popover } from '../popover';\nimport { PopoverContentProps } from '../popover/popover';\nimport { Calendar } from './calendar';\nimport styles from './calendar.module.css';\n\ndayjs.extend(customParseFormat);\n\ninterface DatePickerProps {\n dateFormat?: string;\n inputFieldProps?: InputFieldProps;\n calendarProps?: PropsSingleRequired & PropsBase;\n onSelect?: (date: Date) => void;\n value?: Date;\n children?:\n | React.ReactNode\n | ((props: { selectedDate: string }) => React.ReactNode);\n showCalendarIcon?: boolean;\n timeZone?: string;\n popoverProps?: PopoverContentProps;\n}\n\nexport function DatePicker({\n dateFormat = 'DD/MM/YYYY',\n inputFieldProps,\n calendarProps,\n value = new Date(),\n onSelect = () => {},\n children,\n showCalendarIcon = true,\n timeZone,\n popoverProps\n}: DatePickerProps) {\n const [showCalendar, setShowCalendar] = useState(false);\n const [selectedDate, setSelectedDate] = useState(value);\n const [error, setError] = useState<string>();\n\n const formattedDate = dayjs(selectedDate).format(dateFormat);\n\n const isDropdownOpenRef = useRef(false);\n const inputFieldRef = useRef<HTMLInputElement | null>(null);\n const contentRef = useRef<HTMLDivElement | null>(null);\n const isInputFieldFocused = useRef(false);\n const selectedDateRef = useRef(selectedDate);\n\n useEffect(() => {\n selectedDateRef.current = selectedDate;\n }, [selectedDate]);\n\n const isElementOutside = useCallback((el: HTMLElement) => {\n return (\n !isDropdownOpenRef.current && // Month and Year dropdown from Date picker\n !inputFieldRef.current?.contains(el) && // InputField\n !contentRef.current?.contains(el)\n );\n }, []);\n\n const handleMouseDown = useCallback(\n (event: MouseEvent) => {\n const el = event.target as HTMLElement | null;\n if (el && isElementOutside(el)) removeEventListeners();\n },\n [isElementOutside]\n );\n\n function registerEventListeners() {\n isInputFieldFocused.current = true;\n document.addEventListener('mouseup', handleMouseDown);\n }\n\n function removeEventListeners(skipUpdate = false) {\n isInputFieldFocused.current = false;\n setShowCalendar(false);\n\n const updatedVal = dayjs(selectedDateRef.current).format(dateFormat);\n\n if (inputFieldRef.current) inputFieldRef.current.value = updatedVal;\n if (!error && !skipUpdate) onSelect(dayjs(updatedVal).toDate());\n\n document.removeEventListener('mouseup', handleMouseDown);\n }\n\n const handleSelect = (day: Date) => {\n setSelectedDate(day);\n onSelect(day);\n setError(undefined);\n removeEventListeners(true);\n };\n\n function onDropdownOpen() {\n isDropdownOpenRef.current = true;\n }\n\n function onOpenChange(open?: boolean) {\n if (\n !isDropdownOpenRef.current &&\n !(isInputFieldFocused.current && showCalendar)\n ) {\n setShowCalendar(Boolean(open));\n }\n\n isDropdownOpenRef.current = false;\n }\n\n function handleInputFocus() {\n if (isInputFieldFocused.current) return;\n if (!showCalendar) setShowCalendar(true);\n }\n\n function handleInputBlur(event: React.FocusEvent) {\n if (isInputFieldFocused.current) {\n const el = event.relatedTarget as HTMLElement | null;\n if (el && isElementOutside(el)) removeEventListeners();\n } else {\n registerEventListeners();\n setTimeout(() => inputFieldRef.current?.select());\n }\n }\n\n function handleKeyUp(event: React.KeyboardEvent) {\n if (event.code === 'Enter' && inputFieldRef.current) {\n inputFieldRef.current.blur();\n removeEventListeners();\n }\n }\n\n function handleInputChange(event: React.ChangeEvent<HTMLInputElement>) {\n const { value } = event.target;\n\n const format = value.includes('/')\n ? 'DD/MM/YYYY'\n : value.includes('-')\n ? 'DD-MM-YYYY'\n : undefined;\n const date = dayjs(value, format);\n\n const isValidDate = date.isValid();\n\n const isAfter =\n calendarProps?.startMonth !== undefined\n ? dayjs(date).isSameOrAfter(calendarProps.startMonth)\n : true;\n const isBefore =\n calendarProps?.endMonth !== undefined\n ? dayjs(date).isSameOrBefore(calendarProps.endMonth)\n : true;\n\n const isValid =\n isValidDate && isAfter && isBefore && dayjs(date).isSameOrBefore(dayjs());\n\n if (isValid) {\n setSelectedDate(date.toDate());\n setError(undefined);\n } else {\n setError('Invalid date');\n }\n }\n\n const defaultTrigger = (\n <InputField\n size='small'\n placeholder='Select date'\n error={error}\n className={styles.datePickerInput}\n trailingIcon={showCalendarIcon ? <CalendarIcon /> : undefined}\n {...inputFieldProps}\n ref={inputFieldRef}\n defaultValue={formattedDate}\n onChange={handleInputChange}\n onFocus={handleInputFocus}\n onBlur={handleInputBlur}\n onKeyUp={handleKeyUp}\n />\n );\n\n const trigger =\n typeof children === 'function' ? (\n children({ selectedDate: formattedDate })\n ) : children ? (\n <div>{children}</div>\n ) : (\n <div>{defaultTrigger}</div>\n );\n\n return (\n <Popover open={showCalendar} onOpenChange={onOpenChange}>\n <Popover.Trigger asChild>{trigger}</Popover.Trigger>\n <Popover.Content\n ref={contentRef}\n {...popoverProps}\n className={cx(styles.calendarPopover, popoverProps?.className)}\n side={popoverProps?.side ?? 'top'}\n >\n <Calendar\n required={true}\n {...calendarProps}\n timeZone={timeZone}\n onDropdownOpen={onDropdownOpen}\n mode='single'\n selected={selectedDate}\n month={selectedDate}\n onSelect={handleSelect}\n onMonthChange={setSelectedDate}\n />\n </Popover.Content>\n </Popover>\n );\n}\n"],"names":[],"mappings":";;;;;;;;;;;;AAeA;AAgBgB;;;;;AAiBd;AACA;AACA;AACA;AACA;;AAGE;AACF;AAEA;AACE;;;;AAOF;AAEI;AACA;AAAgC;AAClC;AAIF;AACE;AACA;;AAGF;AACE;;AAGA;;AAE2B;AAC3B;;AAEA;;AAGF;;;;;AAKA;AAEA;AACE;;;;;AAQE;;AAGF;;AAGF;;;AAEE;;;;AAIA;AACE;AACA;AAAgC;;;AAEhC;;;;;;AAOA;AACA;;;;AAKF;AAEA;AACE;AACA;AACE;;;AAIJ;AAEA;;;AAIA;;;AAKA;;AAIE;;;;;;;AAOJ;AAiBA;;AAgCF;;"}
|
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
|
|
4
4
|
var jsxRuntime = require('react/jsx-runtime');
|
|
5
5
|
var reactIcons_esm = require('../../node_modules/.pnpm/@radix-ui_react-icons@1.3.2_react@19.1.1/node_modules/@radix-ui/react-icons/dist/react-icons.esm.cjs');
|
|
6
|
+
var index = require('../../node_modules/.pnpm/class-variance-authority@0.7.1/node_modules/class-variance-authority/dist/index.cjs');
|
|
6
7
|
var dayjs_min = require('../../node_modules/.pnpm/dayjs@1.11.11/node_modules/dayjs/dayjs.min.cjs');
|
|
7
8
|
var React = require('react');
|
|
8
9
|
var flex = require('../flex/flex.cjs');
|
|
@@ -11,10 +12,10 @@ var popover = require('../popover/popover.cjs');
|
|
|
11
12
|
var calendar = require('./calendar.cjs');
|
|
12
13
|
var calendar_module = require('./calendar.module.css.cjs');
|
|
13
14
|
|
|
14
|
-
function RangePicker({
|
|
15
|
+
function RangePicker({ dateFormat = 'DD/MM/YYYY', inputFieldsProps = {}, calendarProps, onSelect = () => { }, value, defaultValue = {
|
|
15
16
|
to: new Date(),
|
|
16
17
|
from: new Date()
|
|
17
|
-
}, pickerGroupClassName, children, showCalendarIcon = true, footer, timeZone }) {
|
|
18
|
+
}, pickerGroupClassName, children, showCalendarIcon = true, footer, timeZone, popoverProps }) {
|
|
18
19
|
const [showCalendar, setShowCalendar] = React.useState(false);
|
|
19
20
|
const [currentRangeField, setCurrentRangeField] = React.useState('from');
|
|
20
21
|
const [internalValue, setInternalValue] = React.useState(value ?? defaultValue);
|
|
@@ -88,7 +89,7 @@ function RangePicker({ side = 'top', dateFormat = 'DD/MM/YYYY', inputFieldsProps
|
|
|
88
89
|
const trigger = typeof children === 'function'
|
|
89
90
|
? children({ startDate, endDate })
|
|
90
91
|
: children || defaultTrigger;
|
|
91
|
-
return (jsxRuntime.jsxs(popover.Popover, { open: showCalendar, onOpenChange: setShowCalendar, children: [jsxRuntime.jsx(popover.Popover.Trigger, { asChild: true, children: trigger }), jsxRuntime.jsxs(popover.Popover.Content, {
|
|
92
|
+
return (jsxRuntime.jsxs(popover.Popover, { open: showCalendar, onOpenChange: setShowCalendar, children: [jsxRuntime.jsx(popover.Popover.Trigger, { asChild: true, children: trigger }), jsxRuntime.jsxs(popover.Popover.Content, { ...popoverProps, className: index.cx(calendar_module.default.calendarPopover, popoverProps?.className), side: popoverProps?.side ?? 'top', children: [jsxRuntime.jsx(calendar.Calendar, { showOutsideDays: false, numberOfMonths: 2, defaultMonth: selectedRange.from, required: true, ...calendarProps, timeZone: timeZone, mode: 'range', month: computedDefaultMonth, selected: selectedRange, onSelect: handleSelect, onMonthChange: setCurrentMonth }), footer && (jsxRuntime.jsx(flex.Flex, { align: 'center', justify: 'center', className: calendar_module.default.calendarFooter, children: footer }))] })] }));
|
|
92
93
|
}
|
|
93
94
|
|
|
94
95
|
exports.RangePicker = RangePicker;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"range-picker.cjs","sources":["../../../components/calendar/range-picker.tsx"],"sourcesContent":["'use client';\n\nimport { CalendarIcon } from '@radix-ui/react-icons';\nimport dayjs from 'dayjs';\nimport { useCallback, useMemo, useState } from 'react';\nimport { DateRange, PropsBase, PropsRangeRequired } from 'react-day-picker';\nimport { Flex } from '../flex';\nimport { InputField } from '../input-field';\nimport { InputFieldProps } from '../input-field/input-field';\nimport { Popover } from '../popover';\nimport { Calendar } from './calendar';\nimport styles from './calendar.module.css';\n\ninterface RangePickerProps {\n
|
|
1
|
+
{"version":3,"file":"range-picker.cjs","sources":["../../../components/calendar/range-picker.tsx"],"sourcesContent":["'use client';\n\nimport { CalendarIcon } from '@radix-ui/react-icons';\nimport { cx } from 'class-variance-authority';\nimport dayjs from 'dayjs';\nimport { useCallback, useMemo, useState } from 'react';\nimport { DateRange, PropsBase, PropsRangeRequired } from 'react-day-picker';\nimport { Flex } from '../flex';\nimport { InputField } from '../input-field';\nimport { InputFieldProps } from '../input-field/input-field';\nimport { Popover } from '../popover';\nimport { PopoverContentProps } from '../popover/popover';\nimport { Calendar } from './calendar';\nimport styles from './calendar.module.css';\n\ninterface RangePickerProps {\n dateFormat?: string;\n inputFieldsProps?: { startDate?: InputFieldProps; endDate?: InputFieldProps };\n calendarProps?: PropsRangeRequired & PropsBase;\n onSelect?: (date: DateRange) => void;\n pickerGroupClassName?: string;\n value?: DateRange;\n defaultValue?: DateRange;\n children?:\n | React.ReactNode\n | ((props: { startDate: string; endDate: string }) => React.ReactNode);\n showCalendarIcon?: boolean;\n footer?: React.ReactNode;\n timeZone?: string;\n popoverProps?: PopoverContentProps;\n}\n\ntype RangeFields = keyof DateRange;\n\nexport function RangePicker({\n dateFormat = 'DD/MM/YYYY',\n inputFieldsProps = {},\n calendarProps,\n onSelect = () => {},\n value,\n defaultValue = {\n to: new Date(),\n from: new Date()\n },\n pickerGroupClassName,\n children,\n showCalendarIcon = true,\n footer,\n timeZone,\n popoverProps\n}: RangePickerProps) {\n const [showCalendar, setShowCalendar] = useState(false);\n const [currentRangeField, setCurrentRangeField] =\n useState<RangeFields>('from');\n const [internalValue, setInternalValue] = useState(value ?? defaultValue);\n const [currentMonth, setCurrentMonth] = useState(internalValue?.from);\n\n const selectedRange = value ?? internalValue;\n\n const startDate = selectedRange.from\n ? dayjs(selectedRange.from).format(dateFormat)\n : '';\n const endDate = selectedRange.to\n ? dayjs(selectedRange.to).format(dateFormat)\n : '';\n\n // Ensures two months are visible even when\n // current month is the last allowed month (endMonth).\n const computedDefaultMonth = useMemo(() => {\n let month = currentMonth;\n if (calendarProps?.endMonth) {\n const endMonth = dayjs(calendarProps.endMonth);\n const fromMonth = dayjs(currentMonth);\n\n if (fromMonth.isSame(endMonth, 'month')) {\n month = endMonth.subtract(1, 'month').toDate();\n }\n }\n return month;\n }, [currentMonth, calendarProps?.endMonth]);\n\n const onTriggerClick = useCallback(\n (e: React.MouseEvent<HTMLInputElement>) => {\n const field = e.currentTarget.dataset.rangeField;\n if (field === 'start') {\n setCurrentRangeField('from');\n } else {\n setCurrentRangeField('to');\n }\n if (showCalendar) {\n e.preventDefault();\n e.stopPropagation();\n }\n },\n [showCalendar]\n );\n\n // Handle date selection with custom logic\n const handleSelect = (_: DateRange, selectedDay: Date) => {\n let newRange = { ...selectedRange };\n let newCurrentRangeField = currentRangeField;\n\n if (currentRangeField === 'from') {\n // If selecting start date and it's after the current end date\n if (\n selectedRange?.to &&\n dayjs(selectedDay).isAfter(dayjs(selectedRange.to))\n ) {\n newRange = { from: selectedDay };\n newCurrentRangeField = 'to';\n } else {\n newRange.from = selectedDay;\n if (!selectedRange?.to) newCurrentRangeField = 'to';\n }\n } else {\n // If selecting end date and it's before the current start date\n if (\n selectedRange?.from &&\n dayjs(selectedDay).isBefore(dayjs(selectedRange.from))\n ) {\n newRange = { from: selectedDay };\n newCurrentRangeField = 'to';\n } else newRange.to = selectedDay;\n }\n\n if (newCurrentRangeField !== currentRangeField)\n setCurrentRangeField(newCurrentRangeField);\n\n setInternalValue(newRange);\n onSelect(newRange);\n };\n\n const defaultTrigger = (\n <Flex gap='medium' className={pickerGroupClassName}>\n <InputField\n size='small'\n placeholder='Select start date'\n trailingIcon={showCalendarIcon ? <CalendarIcon /> : undefined}\n className={styles.datePickerInput}\n {...(inputFieldsProps.startDate ?? {})}\n value={startDate}\n readOnly\n data-range-field='start'\n data-active={showCalendar && currentRangeField === 'from'}\n onClick={onTriggerClick}\n />\n\n <InputField\n size='small'\n placeholder='Select end date'\n trailingIcon={showCalendarIcon ? <CalendarIcon /> : undefined}\n className={styles.datePickerInput}\n {...(inputFieldsProps.endDate ?? {})}\n value={endDate}\n readOnly\n data-range-field='end'\n data-active={showCalendar && currentRangeField === 'to'}\n onClick={onTriggerClick}\n />\n </Flex>\n );\n\n const trigger =\n typeof children === 'function'\n ? children({ startDate, endDate })\n : children || defaultTrigger;\n\n return (\n <Popover open={showCalendar} onOpenChange={setShowCalendar}>\n <Popover.Trigger asChild>{trigger}</Popover.Trigger>\n <Popover.Content\n {...popoverProps}\n className={cx(styles.calendarPopover, popoverProps?.className)}\n side={popoverProps?.side ?? 'top'}\n >\n <Calendar\n showOutsideDays={false}\n numberOfMonths={2}\n defaultMonth={selectedRange.from}\n required={true}\n {...calendarProps}\n timeZone={timeZone}\n mode='range'\n month={computedDefaultMonth}\n selected={selectedRange}\n onSelect={handleSelect}\n onMonthChange={setCurrentMonth}\n />\n {footer && (\n <Flex\n align='center'\n justify='center'\n className={styles.calendarFooter}\n >\n {footer}\n </Flex>\n )}\n </Popover.Content>\n </Popover>\n );\n}\n"],"names":[],"mappings":";;;;;;;;;;;;;;AAkCM;;;AASH;;;AAWD;AACA;AAEA;AAEA;;;AAGA;;;;;AAMA;;AAEE;;AAEE;;AAGE;;;AAGJ;;AAGF;;AAGI;;;;;;;;;;AASF;;AAKF;AACE;;AAGA;;;AAII;AAEA;;;;AAGA;;;;;;;;AAOA;AAEA;;;;AAEK;;;;;;AAQX;AAEA;AA8BA;;AAGI;AAEJ;AAiCF;;"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { DateRange, PropsBase, PropsRangeRequired } from 'react-day-picker';
|
|
2
2
|
import { InputFieldProps } from '../input-field/input-field';
|
|
3
|
+
import { PopoverContentProps } from '../popover/popover';
|
|
3
4
|
interface RangePickerProps {
|
|
4
|
-
side?: 'top' | 'right' | 'bottom' | 'left';
|
|
5
5
|
dateFormat?: string;
|
|
6
6
|
inputFieldsProps?: {
|
|
7
7
|
startDate?: InputFieldProps;
|
|
@@ -19,7 +19,8 @@ interface RangePickerProps {
|
|
|
19
19
|
showCalendarIcon?: boolean;
|
|
20
20
|
footer?: React.ReactNode;
|
|
21
21
|
timeZone?: string;
|
|
22
|
+
popoverProps?: PopoverContentProps;
|
|
22
23
|
}
|
|
23
|
-
export declare function RangePicker({
|
|
24
|
+
export declare function RangePicker({ dateFormat, inputFieldsProps, calendarProps, onSelect, value, defaultValue, pickerGroupClassName, children, showCalendarIcon, footer, timeZone, popoverProps }: RangePickerProps): import("react/jsx-runtime").JSX.Element;
|
|
24
25
|
export {};
|
|
25
26
|
//# sourceMappingURL=range-picker.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"range-picker.d.ts","sourceRoot":"","sources":["../../../components/calendar/range-picker.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"range-picker.d.ts","sourceRoot":"","sources":["../../../components/calendar/range-picker.tsx"],"names":[],"mappings":"AAMA,OAAO,EAAE,SAAS,EAAE,SAAS,EAAE,kBAAkB,EAAE,MAAM,kBAAkB,CAAC;AAG5E,OAAO,EAAE,eAAe,EAAE,MAAM,4BAA4B,CAAC;AAE7D,OAAO,EAAE,mBAAmB,EAAE,MAAM,oBAAoB,CAAC;AAIzD,UAAU,gBAAgB;IACxB,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,gBAAgB,CAAC,EAAE;QAAE,SAAS,CAAC,EAAE,eAAe,CAAC;QAAC,OAAO,CAAC,EAAE,eAAe,CAAA;KAAE,CAAC;IAC9E,aAAa,CAAC,EAAE,kBAAkB,GAAG,SAAS,CAAC;IAC/C,QAAQ,CAAC,EAAE,CAAC,IAAI,EAAE,SAAS,KAAK,IAAI,CAAC;IACrC,oBAAoB,CAAC,EAAE,MAAM,CAAC;IAC9B,KAAK,CAAC,EAAE,SAAS,CAAC;IAClB,YAAY,CAAC,EAAE,SAAS,CAAC;IACzB,QAAQ,CAAC,EACL,KAAK,CAAC,SAAS,GACf,CAAC,CAAC,KAAK,EAAE;QAAE,SAAS,EAAE,MAAM,CAAC;QAAC,OAAO,EAAE,MAAM,CAAA;KAAE,KAAK,KAAK,CAAC,SAAS,CAAC,CAAC;IACzE,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,MAAM,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACzB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,YAAY,CAAC,EAAE,mBAAmB,CAAC;CACpC;AAID,wBAAgB,WAAW,CAAC,EAC1B,UAAyB,EACzB,gBAAqB,EACrB,aAAa,EACb,QAAmB,EACnB,KAAK,EACL,YAGC,EACD,oBAAoB,EACpB,QAAQ,EACR,gBAAuB,EACvB,MAAM,EACN,QAAQ,EACR,YAAY,EACb,EAAE,gBAAgB,2CAsJlB"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
import { jsxs, jsx } from 'react/jsx-runtime';
|
|
3
3
|
import { CalendarIcon } from '../../node_modules/.pnpm/@radix-ui_react-icons@1.3.2_react@19.1.1/node_modules/@radix-ui/react-icons/dist/react-icons.esm.js';
|
|
4
|
+
import { cx } from '../../node_modules/.pnpm/class-variance-authority@0.7.1/node_modules/class-variance-authority/dist/index.js';
|
|
4
5
|
import dayjs from '../../node_modules/.pnpm/dayjs@1.11.11/node_modules/dayjs/dayjs.min.js';
|
|
5
6
|
import { useState, useMemo, useCallback } from 'react';
|
|
6
7
|
import { Flex } from '../flex/flex.js';
|
|
@@ -9,10 +10,10 @@ import { Popover } from '../popover/popover.js';
|
|
|
9
10
|
import { Calendar } from './calendar.js';
|
|
10
11
|
import styles from './calendar.module.css.js';
|
|
11
12
|
|
|
12
|
-
function RangePicker({
|
|
13
|
+
function RangePicker({ dateFormat = 'DD/MM/YYYY', inputFieldsProps = {}, calendarProps, onSelect = () => { }, value, defaultValue = {
|
|
13
14
|
to: new Date(),
|
|
14
15
|
from: new Date()
|
|
15
|
-
}, pickerGroupClassName, children, showCalendarIcon = true, footer, timeZone }) {
|
|
16
|
+
}, pickerGroupClassName, children, showCalendarIcon = true, footer, timeZone, popoverProps }) {
|
|
16
17
|
const [showCalendar, setShowCalendar] = useState(false);
|
|
17
18
|
const [currentRangeField, setCurrentRangeField] = useState('from');
|
|
18
19
|
const [internalValue, setInternalValue] = useState(value ?? defaultValue);
|
|
@@ -86,7 +87,7 @@ function RangePicker({ side = 'top', dateFormat = 'DD/MM/YYYY', inputFieldsProps
|
|
|
86
87
|
const trigger = typeof children === 'function'
|
|
87
88
|
? children({ startDate, endDate })
|
|
88
89
|
: children || defaultTrigger;
|
|
89
|
-
return (jsxs(Popover, { open: showCalendar, onOpenChange: setShowCalendar, children: [jsx(Popover.Trigger, { asChild: true, children: trigger }), jsxs(Popover.Content, {
|
|
90
|
+
return (jsxs(Popover, { open: showCalendar, onOpenChange: setShowCalendar, children: [jsx(Popover.Trigger, { asChild: true, children: trigger }), jsxs(Popover.Content, { ...popoverProps, className: cx(styles.calendarPopover, popoverProps?.className), side: popoverProps?.side ?? 'top', children: [jsx(Calendar, { showOutsideDays: false, numberOfMonths: 2, defaultMonth: selectedRange.from, required: true, ...calendarProps, timeZone: timeZone, mode: 'range', month: computedDefaultMonth, selected: selectedRange, onSelect: handleSelect, onMonthChange: setCurrentMonth }), footer && (jsx(Flex, { align: 'center', justify: 'center', className: styles.calendarFooter, children: footer }))] })] }));
|
|
90
91
|
}
|
|
91
92
|
|
|
92
93
|
export { RangePicker };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"range-picker.js","sources":["../../../components/calendar/range-picker.tsx"],"sourcesContent":["'use client';\n\nimport { CalendarIcon } from '@radix-ui/react-icons';\nimport dayjs from 'dayjs';\nimport { useCallback, useMemo, useState } from 'react';\nimport { DateRange, PropsBase, PropsRangeRequired } from 'react-day-picker';\nimport { Flex } from '../flex';\nimport { InputField } from '../input-field';\nimport { InputFieldProps } from '../input-field/input-field';\nimport { Popover } from '../popover';\nimport { Calendar } from './calendar';\nimport styles from './calendar.module.css';\n\ninterface RangePickerProps {\n
|
|
1
|
+
{"version":3,"file":"range-picker.js","sources":["../../../components/calendar/range-picker.tsx"],"sourcesContent":["'use client';\n\nimport { CalendarIcon } from '@radix-ui/react-icons';\nimport { cx } from 'class-variance-authority';\nimport dayjs from 'dayjs';\nimport { useCallback, useMemo, useState } from 'react';\nimport { DateRange, PropsBase, PropsRangeRequired } from 'react-day-picker';\nimport { Flex } from '../flex';\nimport { InputField } from '../input-field';\nimport { InputFieldProps } from '../input-field/input-field';\nimport { Popover } from '../popover';\nimport { PopoverContentProps } from '../popover/popover';\nimport { Calendar } from './calendar';\nimport styles from './calendar.module.css';\n\ninterface RangePickerProps {\n dateFormat?: string;\n inputFieldsProps?: { startDate?: InputFieldProps; endDate?: InputFieldProps };\n calendarProps?: PropsRangeRequired & PropsBase;\n onSelect?: (date: DateRange) => void;\n pickerGroupClassName?: string;\n value?: DateRange;\n defaultValue?: DateRange;\n children?:\n | React.ReactNode\n | ((props: { startDate: string; endDate: string }) => React.ReactNode);\n showCalendarIcon?: boolean;\n footer?: React.ReactNode;\n timeZone?: string;\n popoverProps?: PopoverContentProps;\n}\n\ntype RangeFields = keyof DateRange;\n\nexport function RangePicker({\n dateFormat = 'DD/MM/YYYY',\n inputFieldsProps = {},\n calendarProps,\n onSelect = () => {},\n value,\n defaultValue = {\n to: new Date(),\n from: new Date()\n },\n pickerGroupClassName,\n children,\n showCalendarIcon = true,\n footer,\n timeZone,\n popoverProps\n}: RangePickerProps) {\n const [showCalendar, setShowCalendar] = useState(false);\n const [currentRangeField, setCurrentRangeField] =\n useState<RangeFields>('from');\n const [internalValue, setInternalValue] = useState(value ?? defaultValue);\n const [currentMonth, setCurrentMonth] = useState(internalValue?.from);\n\n const selectedRange = value ?? internalValue;\n\n const startDate = selectedRange.from\n ? dayjs(selectedRange.from).format(dateFormat)\n : '';\n const endDate = selectedRange.to\n ? dayjs(selectedRange.to).format(dateFormat)\n : '';\n\n // Ensures two months are visible even when\n // current month is the last allowed month (endMonth).\n const computedDefaultMonth = useMemo(() => {\n let month = currentMonth;\n if (calendarProps?.endMonth) {\n const endMonth = dayjs(calendarProps.endMonth);\n const fromMonth = dayjs(currentMonth);\n\n if (fromMonth.isSame(endMonth, 'month')) {\n month = endMonth.subtract(1, 'month').toDate();\n }\n }\n return month;\n }, [currentMonth, calendarProps?.endMonth]);\n\n const onTriggerClick = useCallback(\n (e: React.MouseEvent<HTMLInputElement>) => {\n const field = e.currentTarget.dataset.rangeField;\n if (field === 'start') {\n setCurrentRangeField('from');\n } else {\n setCurrentRangeField('to');\n }\n if (showCalendar) {\n e.preventDefault();\n e.stopPropagation();\n }\n },\n [showCalendar]\n );\n\n // Handle date selection with custom logic\n const handleSelect = (_: DateRange, selectedDay: Date) => {\n let newRange = { ...selectedRange };\n let newCurrentRangeField = currentRangeField;\n\n if (currentRangeField === 'from') {\n // If selecting start date and it's after the current end date\n if (\n selectedRange?.to &&\n dayjs(selectedDay).isAfter(dayjs(selectedRange.to))\n ) {\n newRange = { from: selectedDay };\n newCurrentRangeField = 'to';\n } else {\n newRange.from = selectedDay;\n if (!selectedRange?.to) newCurrentRangeField = 'to';\n }\n } else {\n // If selecting end date and it's before the current start date\n if (\n selectedRange?.from &&\n dayjs(selectedDay).isBefore(dayjs(selectedRange.from))\n ) {\n newRange = { from: selectedDay };\n newCurrentRangeField = 'to';\n } else newRange.to = selectedDay;\n }\n\n if (newCurrentRangeField !== currentRangeField)\n setCurrentRangeField(newCurrentRangeField);\n\n setInternalValue(newRange);\n onSelect(newRange);\n };\n\n const defaultTrigger = (\n <Flex gap='medium' className={pickerGroupClassName}>\n <InputField\n size='small'\n placeholder='Select start date'\n trailingIcon={showCalendarIcon ? <CalendarIcon /> : undefined}\n className={styles.datePickerInput}\n {...(inputFieldsProps.startDate ?? {})}\n value={startDate}\n readOnly\n data-range-field='start'\n data-active={showCalendar && currentRangeField === 'from'}\n onClick={onTriggerClick}\n />\n\n <InputField\n size='small'\n placeholder='Select end date'\n trailingIcon={showCalendarIcon ? <CalendarIcon /> : undefined}\n className={styles.datePickerInput}\n {...(inputFieldsProps.endDate ?? {})}\n value={endDate}\n readOnly\n data-range-field='end'\n data-active={showCalendar && currentRangeField === 'to'}\n onClick={onTriggerClick}\n />\n </Flex>\n );\n\n const trigger =\n typeof children === 'function'\n ? children({ startDate, endDate })\n : children || defaultTrigger;\n\n return (\n <Popover open={showCalendar} onOpenChange={setShowCalendar}>\n <Popover.Trigger asChild>{trigger}</Popover.Trigger>\n <Popover.Content\n {...popoverProps}\n className={cx(styles.calendarPopover, popoverProps?.className)}\n side={popoverProps?.side ?? 'top'}\n >\n <Calendar\n showOutsideDays={false}\n numberOfMonths={2}\n defaultMonth={selectedRange.from}\n required={true}\n {...calendarProps}\n timeZone={timeZone}\n mode='range'\n month={computedDefaultMonth}\n selected={selectedRange}\n onSelect={handleSelect}\n onMonthChange={setCurrentMonth}\n />\n {footer && (\n <Flex\n align='center'\n justify='center'\n className={styles.calendarFooter}\n >\n {footer}\n </Flex>\n )}\n </Popover.Content>\n </Popover>\n );\n}\n"],"names":[],"mappings":";;;;;;;;;;;;AAkCM;;;AASH;;;AAWD;AACA;AAEA;AAEA;;;AAGA;;;;;AAMA;;AAEE;;AAEE;;AAGE;;;AAGJ;;AAGF;;AAGI;;;;;;;;;;AASF;;AAKF;AACE;;AAGA;;;AAII;AAEA;;;;AAGA;;;;;;;;AAOA;AAEA;;;;AAEK;;;;;;AAQX;AAEA;AA8BA;;AAGI;AAEJ;AAiCF;;"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"callout.test.d.ts","sourceRoot":"","sources":["../../../../components/callout/__tests__/callout.test.tsx"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"checkbox.test.d.ts","sourceRoot":"","sources":["../../../../components/checkbox/__tests__/checkbox.test.tsx"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"chip.test.d.ts","sourceRoot":"","sources":["../../../../components/chip/__tests__/chip.test.tsx"],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"code-block.test.d.ts","sourceRoot":"","sources":["../../../../components/code-block/__tests__/code-block.test.tsx"],"names":[],"mappings":""}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
'use strict';
|
|
3
|
+
|
|
4
|
+
var jsxRuntime = require('react/jsx-runtime');
|
|
5
|
+
var index = require('../../node_modules/.pnpm/class-variance-authority@0.7.1/node_modules/class-variance-authority/dist/index.cjs');
|
|
6
|
+
var index$1 = require('../../node_modules/.pnpm/prism-react-renderer@2.4.1_react@19.1.1/node_modules/prism-react-renderer/dist/index.cjs');
|
|
7
|
+
var React = require('react');
|
|
8
|
+
var useIsomorphicLayoutEffect = require('../../hooks/useIsomorphicLayoutEffect.cjs');
|
|
9
|
+
var codeBlockRoot = require('./code-block-root.cjs');
|
|
10
|
+
var codeBlock_module = require('./code-block.module.css.cjs');
|
|
11
|
+
var code_module = require('./code.module.css.cjs');
|
|
12
|
+
|
|
13
|
+
const emptyTheme = { plain: {}, styles: [] };
|
|
14
|
+
const CodeBlockCode = React.forwardRef(({ children, language, className, value, ...props }, ref) => {
|
|
15
|
+
const { value: contextValue, setCode, setValue } = codeBlockRoot.useCodeBlockContext();
|
|
16
|
+
const computedValue = value ?? language;
|
|
17
|
+
const isContextValueDefined = !!contextValue;
|
|
18
|
+
const shouldRender = !isContextValueDefined || contextValue === computedValue;
|
|
19
|
+
const content = children.trim();
|
|
20
|
+
useIsomorphicLayoutEffect.useIsomorphicLayoutEffect(() => {
|
|
21
|
+
// if value is not defined, set the value
|
|
22
|
+
if (!isContextValueDefined)
|
|
23
|
+
setValue(language);
|
|
24
|
+
// if should render, store the code
|
|
25
|
+
if (shouldRender)
|
|
26
|
+
setCode(content);
|
|
27
|
+
}, [
|
|
28
|
+
content,
|
|
29
|
+
setCode,
|
|
30
|
+
shouldRender,
|
|
31
|
+
setValue,
|
|
32
|
+
language,
|
|
33
|
+
isContextValueDefined
|
|
34
|
+
]);
|
|
35
|
+
if (!shouldRender)
|
|
36
|
+
return null;
|
|
37
|
+
return (jsxRuntime.jsx("div", { ref: ref, className: index.cx(codeBlock_module.default.codeContent, className), ...props, children: jsxRuntime.jsx(CodeHighlight, { content: content, language: language }) }));
|
|
38
|
+
});
|
|
39
|
+
CodeBlockCode.displayName = 'CodeBlockCode';
|
|
40
|
+
const CodeHighlight = React.memo(({ content, language }) => {
|
|
41
|
+
const { hideLineNumbers, maxLines, collapsed } = codeBlockRoot.useCodeBlockContext();
|
|
42
|
+
const canCollapse = maxLines && maxLines > 0;
|
|
43
|
+
return (jsxRuntime.jsx(index$1.Highlight, { theme: emptyTheme, code: content, language: language, children: ({ className: highlightClassName, style, tokens, getLineProps, getTokenProps }) => {
|
|
44
|
+
const renderedTokens = canCollapse && collapsed ? tokens.slice(0, maxLines) : tokens;
|
|
45
|
+
return (jsxRuntime.jsx("pre", { className: index.cx(code_module.default.theme, codeBlock_module.default.pre, highlightClassName), style: style, children: renderedTokens.map((line, i) => (jsxRuntime.jsxs("div", { ...getLineProps({ line }), children: [!hideLineNumbers && (jsxRuntime.jsx("span", { className: codeBlock_module.default.lineNumber, children: i + 1 })), jsxRuntime.jsx("span", { className: codeBlock_module.default.lineContent, children: line.map((token, key) => (jsxRuntime.jsx("span", { ...getTokenProps({ token }) }, key))) })] }, i))) }));
|
|
46
|
+
} }));
|
|
47
|
+
});
|
|
48
|
+
|
|
49
|
+
exports.CodeBlockCode = CodeBlockCode;
|
|
50
|
+
//# sourceMappingURL=code-block-code.cjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"code-block-code.cjs","sources":["../../../components/code-block/code-block-code.tsx"],"sourcesContent":["'use client';\n\nimport { cx } from 'class-variance-authority';\nimport { Highlight } from 'prism-react-renderer';\nimport { Language } from 'prism-react-renderer';\nimport { HTMLAttributes, forwardRef, memo } from 'react';\nimport { useIsomorphicLayoutEffect } from '~/hooks';\nimport { useCodeBlockContext } from './code-block-root';\nimport styles from './code-block.module.css';\nimport code from './code.module.css';\n\nexport interface CodeBlockCodeProps extends HTMLAttributes<HTMLDivElement> {\n children: string;\n language: Language;\n value?: string;\n className?: string;\n}\n\nconst emptyTheme = { plain: {}, styles: [] };\n\nexport const CodeBlockCode = forwardRef<HTMLDivElement, CodeBlockCodeProps>(\n ({ children, language, className, value, ...props }, ref) => {\n const { value: contextValue, setCode, setValue } = useCodeBlockContext();\n const computedValue = value ?? language;\n const isContextValueDefined = !!contextValue;\n const shouldRender =\n !isContextValueDefined || contextValue === computedValue;\n const content = children.trim();\n\n useIsomorphicLayoutEffect(() => {\n // if value is not defined, set the value\n if (!isContextValueDefined) setValue(language);\n // if should render, store the code\n if (shouldRender) setCode(content);\n }, [\n content,\n setCode,\n shouldRender,\n setValue,\n language,\n isContextValueDefined\n ]);\n\n if (!shouldRender) return null;\n\n return (\n <div ref={ref} className={cx(styles.codeContent, className)} {...props}>\n <CodeHighlight content={content} language={language} />\n </div>\n );\n }\n);\n\nCodeBlockCode.displayName = 'CodeBlockCode';\n\nconst CodeHighlight = memo(\n ({ content, language }: { content: string; language: Language }) => {\n const { hideLineNumbers, maxLines, collapsed } = useCodeBlockContext();\n const canCollapse = maxLines && maxLines > 0;\n return (\n <Highlight theme={emptyTheme} code={content} language={language}>\n {({\n className: highlightClassName,\n style,\n tokens,\n getLineProps,\n getTokenProps\n }) => {\n const renderedTokens =\n canCollapse && collapsed ? tokens.slice(0, maxLines) : tokens;\n return (\n <pre\n className={cx(code.theme, styles.pre, highlightClassName)}\n style={style}\n >\n {renderedTokens.map((line, i) => (\n <div key={i} {...getLineProps({ line })}>\n {!hideLineNumbers && (\n <span className={styles.lineNumber}>{i + 1}</span>\n )}\n <span className={styles.lineContent}>\n {line.map((token, key) => (\n <span key={key} {...getTokenProps({ token })} />\n ))}\n </span>\n </div>\n ))}\n </pre>\n );\n }}\n </Highlight>\n );\n }\n);\n"],"names":[],"mappings":";;;;;;;;;;;;AAkBA;;AAII;AACA;AACA;;AAGA;;;AAIE;;;AAEA;;AACF;;;;;;;AAOC;AAED;AAAmB;AAEnB;AAKF;AAGF;AAEA;;AAGI;AACA;;;;AAiCF;;"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { Language } from 'prism-react-renderer';
|
|
2
|
+
import { HTMLAttributes } from 'react';
|
|
3
|
+
export interface CodeBlockCodeProps extends HTMLAttributes<HTMLDivElement> {
|
|
4
|
+
children: string;
|
|
5
|
+
language: Language;
|
|
6
|
+
value?: string;
|
|
7
|
+
className?: string;
|
|
8
|
+
}
|
|
9
|
+
export declare const CodeBlockCode: import("react").ForwardRefExoticComponent<CodeBlockCodeProps & import("react").RefAttributes<HTMLDivElement>>;
|
|
10
|
+
//# sourceMappingURL=code-block-code.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"code-block-code.d.ts","sourceRoot":"","sources":["../../../components/code-block/code-block-code.tsx"],"names":[],"mappings":"AAIA,OAAO,EAAE,QAAQ,EAAE,MAAM,sBAAsB,CAAC;AAChD,OAAO,EAAE,cAAc,EAAoB,MAAM,OAAO,CAAC;AAMzD,MAAM,WAAW,kBAAmB,SAAQ,cAAc,CAAC,cAAc,CAAC;IACxE,QAAQ,EAAE,MAAM,CAAC;IACjB,QAAQ,EAAE,QAAQ,CAAC;IACnB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAID,eAAO,MAAM,aAAa,+GA+BzB,CAAC"}
|