@jbpark/ui-kit 10.1.0 → 10.3.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/Alert.d.mts +24 -0
- package/dist/Alert.d.mts.map +1 -0
- package/dist/Alert.mjs +68 -0
- package/dist/Alert.mjs.map +1 -0
- package/dist/Anchor.d.mts +29 -0
- package/dist/Anchor.d.mts.map +1 -0
- package/dist/Anchor.mjs +120 -0
- package/dist/Anchor.mjs.map +1 -0
- package/dist/AutoComplete.d.mts +34 -0
- package/dist/AutoComplete.d.mts.map +1 -0
- package/dist/AutoComplete.mjs +82 -0
- package/dist/AutoComplete.mjs.map +1 -0
- package/dist/Avatar.d.mts +19 -0
- package/dist/Avatar.d.mts.map +1 -0
- package/dist/Avatar.mjs +43 -0
- package/dist/Avatar.mjs.map +1 -0
- package/dist/Badge.d.mts +23 -0
- package/dist/Badge.d.mts.map +1 -0
- package/dist/Badge.mjs +41 -0
- package/dist/Badge.mjs.map +1 -0
- package/dist/Breadcrumb.d.mts +3 -3
- package/dist/Breadcrumb.d.mts.map +1 -1
- package/dist/Breadcrumb.mjs +1 -1
- package/dist/Breadcrumb.mjs.map +1 -1
- package/dist/Button.d.mts +3 -3
- package/dist/Button.d.mts.map +1 -1
- package/dist/Button.mjs +1 -1
- package/dist/Calendar.d.mts +28 -0
- package/dist/Calendar.d.mts.map +1 -0
- package/dist/Calendar.mjs +64 -0
- package/dist/Calendar.mjs.map +1 -0
- package/dist/Card.d.mts +2 -2
- package/dist/Card.d.mts.map +1 -1
- package/dist/Cascader.d.mts +34 -0
- package/dist/Cascader.d.mts.map +1 -0
- package/dist/Cascader.mjs +144 -0
- package/dist/Cascader.mjs.map +1 -0
- package/dist/CodeEditor.d.mts +2 -2
- package/dist/CodeEditor.d.mts.map +1 -1
- package/dist/ContextMenu.d.mts +33 -0
- package/dist/ContextMenu.d.mts.map +1 -0
- package/dist/ContextMenu.mjs +92 -0
- package/dist/ContextMenu.mjs.map +1 -0
- package/dist/Descriptions.d.mts +31 -0
- package/dist/Descriptions.d.mts.map +1 -0
- package/dist/Descriptions.mjs +67 -0
- package/dist/Descriptions.mjs.map +1 -0
- package/dist/Divider.d.mts +18 -0
- package/dist/Divider.d.mts.map +1 -0
- package/dist/Divider.mjs +44 -0
- package/dist/Divider.mjs.map +1 -0
- package/dist/Form.d.mts +12 -0
- package/dist/Form.d.mts.map +1 -0
- package/dist/Form.mjs +11 -0
- package/dist/Form.mjs.map +1 -0
- package/dist/Layout.d.mts.map +1 -1
- package/dist/Mentions.d.mts +34 -0
- package/dist/Mentions.d.mts.map +1 -0
- package/dist/Mentions.mjs +207 -0
- package/dist/Mentions.mjs.map +1 -0
- package/dist/Menu.mjs +1 -2
- package/dist/Pagination.d.mts +2 -2
- package/dist/Pagination.d.mts.map +1 -1
- package/dist/Pagination.mjs +1 -1
- package/dist/Popconfirm.d.mts +33 -0
- package/dist/Popconfirm.d.mts.map +1 -0
- package/dist/Popconfirm.mjs +119 -0
- package/dist/Popconfirm.mjs.map +1 -0
- package/dist/Rate.d.mts +27 -0
- package/dist/Rate.d.mts.map +1 -0
- package/dist/Rate.mjs +81 -0
- package/dist/Rate.mjs.map +1 -0
- package/dist/Reveals.d.mts.map +1 -1
- package/dist/ScrollArea.d.mts +8 -0
- package/dist/ScrollArea.d.mts.map +1 -0
- package/dist/ScrollArea.mjs +11 -0
- package/dist/ScrollArea.mjs.map +1 -0
- package/dist/Segmented.d.mts +26 -0
- package/dist/Segmented.d.mts.map +1 -0
- package/dist/Segmented.mjs +57 -0
- package/dist/Segmented.mjs.map +1 -0
- package/dist/Space.d.mts +2 -2
- package/dist/Space.d.mts.map +1 -1
- package/dist/Statistic.d.mts +22 -0
- package/dist/Statistic.d.mts.map +1 -0
- package/dist/Statistic.mjs +53 -0
- package/dist/Statistic.mjs.map +1 -0
- package/dist/Steps.d.mts +28 -0
- package/dist/Steps.d.mts.map +1 -0
- package/dist/Steps.mjs +70 -0
- package/dist/Steps.mjs.map +1 -0
- package/dist/Table.d.mts +4 -4
- package/dist/Table.d.mts.map +1 -1
- package/dist/Tag.d.mts +3 -3
- package/dist/Tag.d.mts.map +1 -1
- package/dist/TimePicker.d.mts +26 -0
- package/dist/TimePicker.d.mts.map +1 -0
- package/dist/TimePicker.mjs +77 -0
- package/dist/TimePicker.mjs.map +1 -0
- package/dist/Timeline.d.mts +35 -0
- package/dist/Timeline.d.mts.map +1 -0
- package/dist/Timeline.mjs +59 -0
- package/dist/Timeline.mjs.map +1 -0
- package/dist/Tour.d.mts +37 -0
- package/dist/Tour.d.mts.map +1 -0
- package/dist/Tour.mjs +192 -0
- package/dist/Tour.mjs.map +1 -0
- package/dist/Transfer.d.mts +36 -0
- package/dist/Transfer.d.mts.map +1 -0
- package/dist/Transfer.mjs +147 -0
- package/dist/Transfer.mjs.map +1 -0
- package/dist/Tree.d.mts +62 -0
- package/dist/Tree.d.mts.map +1 -0
- package/dist/Tree.mjs +462 -0
- package/dist/Tree.mjs.map +1 -0
- package/dist/TreeSelect.d.mts +34 -0
- package/dist/TreeSelect.d.mts.map +1 -0
- package/dist/TreeSelect.mjs +135 -0
- package/dist/TreeSelect.mjs.map +1 -0
- package/dist/Typography.d.mts.map +1 -1
- package/dist/components/atoms/checkbox/checkbox.d.mts +5 -3
- package/dist/components/atoms/checkbox/checkbox.d.mts.map +1 -1
- package/dist/components/atoms/checkbox/checkbox.mjs +8 -4
- package/dist/components/atoms/checkbox/checkbox.mjs.map +1 -1
- package/dist/components/atoms/checkbox/group.d.mts +2 -2
- package/dist/components/atoms/checkbox/group.d.mts.map +1 -1
- package/dist/components/atoms/checkbox/index.d.mts.map +1 -1
- package/dist/components/atoms/color-picker.d.mts +2 -2
- package/dist/components/atoms/color-picker.d.mts.map +1 -1
- package/dist/components/atoms/date-picker.d.mts +5 -1
- package/dist/components/atoms/date-picker.d.mts.map +1 -1
- package/dist/components/atoms/date-picker.mjs +54 -10
- package/dist/components/atoms/date-picker.mjs.map +1 -1
- package/dist/components/atoms/float-button/back-top.d.mts +2 -2
- package/dist/components/atoms/float-button/back-top.d.mts.map +1 -1
- package/dist/components/atoms/float-button/back-top.mjs +1 -1
- package/dist/components/atoms/float-button/float-button.d.mts +2 -2
- package/dist/components/atoms/float-button/float-button.d.mts.map +1 -1
- package/dist/components/atoms/float-button/index.d.mts.map +1 -1
- package/dist/components/atoms/index.d.mts +13 -2
- package/dist/components/atoms/input/index.d.mts +5 -1
- package/dist/components/atoms/input/index.d.mts.map +1 -1
- package/dist/components/atoms/input/index.mjs +5 -1
- package/dist/components/atoms/input/index.mjs.map +1 -1
- package/dist/components/atoms/input/number.d.mts +23 -0
- package/dist/components/atoms/input/number.d.mts.map +1 -0
- package/dist/components/atoms/input/number.mjs +71 -0
- package/dist/components/atoms/input/number.mjs.map +1 -0
- package/dist/components/atoms/input/otp.d.mts +26 -0
- package/dist/components/atoms/input/otp.d.mts.map +1 -0
- package/dist/components/atoms/input/otp.mjs +52 -0
- package/dist/components/atoms/input/otp.mjs.map +1 -0
- package/dist/components/atoms/input/search.d.mts +2 -7
- package/dist/components/atoms/input/search.d.mts.map +1 -1
- package/dist/components/atoms/input/search.mjs +6 -8
- package/dist/components/atoms/input/search.mjs.map +1 -1
- package/dist/components/atoms/mentions-token.mjs +31 -0
- package/dist/components/atoms/mentions-token.mjs.map +1 -0
- package/dist/components/atoms/option-group.d.mts +4 -5
- package/dist/components/atoms/option-group.d.mts.map +1 -1
- package/dist/components/atoms/popover.d.mts +2 -2
- package/dist/components/atoms/popover.d.mts.map +1 -1
- package/dist/components/atoms/progress.d.mts +5 -3
- package/dist/components/atoms/progress.d.mts.map +1 -1
- package/dist/components/atoms/progress.mjs +2 -2
- package/dist/components/atoms/progress.mjs.map +1 -1
- package/dist/components/atoms/radio/group.d.mts +2 -2
- package/dist/components/atoms/radio/group.d.mts.map +1 -1
- package/dist/components/atoms/radio/group.mjs +1 -1
- package/dist/components/atoms/radio/index.d.mts.map +1 -1
- package/dist/components/atoms/radio/radio.d.mts +2 -2
- package/dist/components/atoms/radio/radio.d.mts.map +1 -1
- package/dist/components/atoms/radio/radio.mjs +1 -1
- package/dist/components/atoms/rich-text-editor/rich-text-editor.d.mts +8 -3
- package/dist/components/atoms/rich-text-editor/rich-text-editor.d.mts.map +1 -1
- package/dist/components/atoms/rich-text-editor/rich-text-editor.mjs +7 -2
- package/dist/components/atoms/rich-text-editor/rich-text-editor.mjs.map +1 -1
- package/dist/components/atoms/rich-text-editor/toolbar-presets.mjs +2 -2
- package/dist/components/atoms/rich-text-editor/types.d.mts +2 -3
- package/dist/components/atoms/rich-text-editor/types.d.mts.map +1 -1
- package/dist/components/atoms/select-multiple.d.mts +2 -3
- package/dist/components/atoms/select-multiple.d.mts.map +1 -1
- package/dist/components/atoms/select-multiple.mjs +4 -3
- package/dist/components/atoms/select-multiple.mjs.map +1 -1
- package/dist/components/atoms/select-searchable-options.d.mts +3 -4
- package/dist/components/atoms/select-searchable-options.d.mts.map +1 -1
- package/dist/components/atoms/select-searchable.d.mts +2 -3
- package/dist/components/atoms/select-searchable.d.mts.map +1 -1
- package/dist/components/atoms/select-searchable.mjs +4 -3
- package/dist/components/atoms/select-searchable.mjs.map +1 -1
- package/dist/components/atoms/select.d.mts +4 -4
- package/dist/components/atoms/select.d.mts.map +1 -1
- package/dist/components/atoms/select.mjs +1 -1
- package/dist/components/atoms/select.mjs.map +1 -1
- package/dist/components/atoms/skeleton/button.d.mts.map +1 -1
- package/dist/components/atoms/skeleton/index.d.mts.map +1 -1
- package/dist/components/atoms/skeleton/node.d.mts.map +1 -1
- package/dist/components/atoms/skeleton/skeleton.d.mts +5 -3
- package/dist/components/atoms/skeleton/skeleton.d.mts.map +1 -1
- package/dist/components/atoms/skeleton/skeleton.mjs +2 -2
- package/dist/components/atoms/skeleton/skeleton.mjs.map +1 -1
- package/dist/components/atoms/slider/slider.d.mts +3 -3
- package/dist/components/atoms/slider/slider.d.mts.map +1 -1
- package/dist/components/atoms/spin.d.mts +2 -2
- package/dist/components/atoms/spin.d.mts.map +1 -1
- package/dist/components/atoms/spin.mjs +1 -1
- package/dist/components/atoms/switch.d.mts +2 -2
- package/dist/components/atoms/switch.d.mts.map +1 -1
- package/dist/components/atoms/tooltip.d.mts +2 -2
- package/dist/components/atoms/tooltip.d.mts.map +1 -1
- package/dist/components/atoms/typography/link.d.mts +2 -2
- package/dist/components/atoms/typography/link.d.mts.map +1 -1
- package/dist/components/atoms/typography/paragraph.d.mts +2 -2
- package/dist/components/atoms/typography/paragraph.d.mts.map +1 -1
- package/dist/components/atoms/typography/text.d.mts +2 -2
- package/dist/components/atoms/typography/text.d.mts.map +1 -1
- package/dist/components/atoms/typography/title.d.mts +2 -2
- package/dist/components/atoms/typography/title.d.mts.map +1 -1
- package/dist/components/atoms/typography/typography.d.mts +2 -2
- package/dist/components/atoms/typography/typography.d.mts.map +1 -1
- package/dist/components/molecules/collapse.d.mts +9 -9
- package/dist/components/molecules/collapse.d.mts.map +1 -1
- package/dist/components/molecules/collapse.mjs +11 -2
- package/dist/components/molecules/collapse.mjs.map +1 -1
- package/dist/components/molecules/dropdown.d.mts +2 -2
- package/dist/components/molecules/dropdown.d.mts.map +1 -1
- package/dist/components/molecules/index.d.mts +23 -13
- package/dist/components/molecules/marquees/index.d.mts.map +1 -1
- package/dist/components/molecules/marquees/item.d.mts +4 -4
- package/dist/components/molecules/marquees/item.d.mts.map +1 -1
- package/dist/components/molecules/marquees/item.mjs +5 -5
- package/dist/components/molecules/marquees/item.mjs.map +1 -1
- package/dist/components/molecules/marquees/marquees.d.mts +2 -2
- package/dist/components/molecules/marquees/marquees.d.mts.map +1 -1
- package/dist/components/molecules/marquees/marquees.mjs +4 -5
- package/dist/components/molecules/marquees/marquees.mjs.map +1 -1
- package/dist/components/molecules/menu/item/item.mjs +1 -1
- package/dist/components/molecules/menu/menu.d.mts +9 -9
- package/dist/components/molecules/menu/menu.d.mts.map +1 -1
- package/dist/components/molecules/menu/menu.mjs +3 -1
- package/dist/components/molecules/menu/menu.mjs.map +1 -1
- package/dist/components/molecules/reveals/item.d.mts +2 -2
- package/dist/components/molecules/reveals/item.d.mts.map +1 -1
- package/dist/components/molecules/reveals/reveals.d.mts +5 -5
- package/dist/components/molecules/reveals/reveals.d.mts.map +1 -1
- package/dist/components/molecules/splitter/index.d.mts.map +1 -1
- package/dist/components/molecules/splitter/panel.d.mts +3 -3
- package/dist/components/molecules/splitter/panel.d.mts.map +1 -1
- package/dist/components/molecules/splitter/splitter.d.mts +3 -3
- package/dist/components/molecules/splitter/splitter.d.mts.map +1 -1
- package/dist/components/molecules/tabs.d.mts +9 -5
- package/dist/components/molecules/tabs.d.mts.map +1 -1
- package/dist/components/molecules/tabs.mjs +5 -1
- package/dist/components/molecules/tabs.mjs.map +1 -1
- package/dist/components/molecules/upload.d.mts +3 -3
- package/dist/components/molecules/upload.d.mts.map +1 -1
- package/dist/components/molecules/upload.mjs +1 -1
- package/dist/components/organisms/drawer.d.mts +3 -3
- package/dist/components/organisms/drawer.d.mts.map +1 -1
- package/dist/components/organisms/drawer.mjs +4 -3
- package/dist/components/organisms/drawer.mjs.map +1 -1
- package/dist/components/organisms/form/context.d.mts +4 -0
- package/dist/components/organisms/form/context.d.mts.map +1 -0
- package/dist/components/organisms/form/context.mjs +9 -0
- package/dist/components/organisms/form/context.mjs.map +1 -0
- package/dist/components/organisms/form/control.d.mts +11 -0
- package/dist/components/organisms/form/control.d.mts.map +1 -0
- package/dist/components/organisms/form/control.mjs +19 -0
- package/dist/components/organisms/form/control.mjs.map +1 -0
- package/dist/components/organisms/form/field.d.mts +25 -0
- package/dist/components/organisms/form/field.d.mts.map +1 -0
- package/dist/components/organisms/form/field.mjs +54 -0
- package/dist/components/organisms/form/field.mjs.map +1 -0
- package/dist/components/organisms/form/form.d.mts +14 -0
- package/dist/components/organisms/form/form.d.mts.map +1 -0
- package/dist/components/organisms/form/form.mjs +23 -0
- package/dist/components/organisms/form/form.mjs.map +1 -0
- package/dist/components/organisms/index.d.mts +14 -6
- package/dist/components/organisms/list/index.d.mts.map +1 -1
- package/dist/components/organisms/list/list.d.mts +2 -2
- package/dist/components/organisms/list/list.d.mts.map +1 -1
- package/dist/components/organisms/modal.d.mts +6 -3
- package/dist/components/organisms/modal.d.mts.map +1 -1
- package/dist/components/organisms/modal.mjs +25 -18
- package/dist/components/organisms/modal.mjs.map +1 -1
- package/dist/components/organisms/swiper/index.d.mts.map +1 -1
- package/dist/components/organisms/swiper/swiper.d.mts +2 -2
- package/dist/components/organisms/swiper/swiper.d.mts.map +1 -1
- package/dist/components/organisms/toast.d.mts +2 -2
- package/dist/components/organisms/toast.d.mts.map +1 -1
- package/dist/components/organisms/toast.mjs +1 -1
- package/dist/components/templates/container.d.mts +2 -2
- package/dist/components/templates/container.d.mts.map +1 -1
- package/dist/components/templates/empty.d.mts +2 -2
- package/dist/components/templates/empty.d.mts.map +1 -1
- package/dist/components/templates/empty.mjs +1 -1
- package/dist/components/templates/grid/col.d.mts +2 -2
- package/dist/components/templates/grid/col.d.mts.map +1 -1
- package/dist/components/templates/grid/row.d.mts +2 -2
- package/dist/components/templates/grid/row.d.mts.map +1 -1
- package/dist/components/templates/layout/content.d.mts +2 -2
- package/dist/components/templates/layout/content.d.mts.map +1 -1
- package/dist/components/templates/layout/footer.d.mts +2 -2
- package/dist/components/templates/layout/footer.d.mts.map +1 -1
- package/dist/components/templates/layout/header.d.mts +2 -2
- package/dist/components/templates/layout/header.d.mts.map +1 -1
- package/dist/components/templates/layout/layout.d.mts +2 -2
- package/dist/components/templates/layout/layout.d.mts.map +1 -1
- package/dist/components/templates/layout/sider.d.mts +2 -2
- package/dist/components/templates/layout/sider.d.mts.map +1 -1
- package/dist/components/templates/layout/sider.mjs +1 -1
- package/dist/components/templates/page-header.d.mts +2 -2
- package/dist/components/templates/page-header.d.mts.map +1 -1
- package/dist/components/templates/page-header.mjs +1 -1
- package/dist/components/templates/result.d.mts +2 -2
- package/dist/components/templates/result.d.mts.map +1 -1
- package/dist/components/templates/result.mjs +1 -1
- package/dist/core/accordion.mjs +1 -1
- package/dist/core/autocomplete.d.mts +2 -0
- package/dist/core/autocomplete.mjs +48 -0
- package/dist/core/autocomplete.mjs.map +1 -0
- package/dist/core/badge.d.mts +5 -3
- package/dist/core/badge.d.mts.map +1 -1
- package/dist/core/button.d.mts +6 -4
- package/dist/core/button.d.mts.map +1 -1
- package/dist/core/calendar.d.mts +13 -3
- package/dist/core/calendar.d.mts.map +1 -0
- package/dist/core/calendar.mjs +1 -1
- package/dist/core/checkbox.mjs +11 -8
- package/dist/core/checkbox.mjs.map +1 -1
- package/dist/core/combobox.d.mts +26 -4
- package/dist/core/combobox.d.mts.map +1 -1
- package/dist/core/combobox.mjs +2 -2
- package/dist/core/combobox.mjs.map +1 -1
- package/dist/core/dialog.mjs +2 -2
- package/dist/core/dialog.mjs.map +1 -1
- package/dist/core/form.d.mts +8 -0
- package/dist/core/form.d.mts.map +1 -0
- package/dist/core/form.mjs +3 -0
- package/dist/core/index.d.mts +13 -9
- package/dist/core/popover.mjs +10 -2
- package/dist/core/popover.mjs.map +1 -1
- package/dist/core/radio-group.mjs +1 -1
- package/dist/core/resizable.d.mts +7 -2
- package/dist/core/resizable.d.mts.map +1 -1
- package/dist/core/resizable.mjs +1 -1
- package/dist/core/scroll-area.d.mts +20 -0
- package/dist/core/scroll-area.d.mts.map +1 -0
- package/dist/core/scroll-area.mjs +57 -0
- package/dist/core/scroll-area.mjs.map +1 -0
- package/dist/core/select.d.mts +24 -2
- package/dist/core/select.d.mts.map +1 -1
- package/dist/core/select.mjs +1 -1
- package/dist/core/separator.d.mts +13 -2
- package/dist/core/separator.d.mts.map +1 -0
- package/dist/core/tabs.d.mts +16 -2
- package/dist/core/tabs.d.mts.map +1 -1
- package/dist/index.d.mts +63 -34
- package/dist/index.mjs +29 -5
- package/dist/lib/colors.d.mts +2 -3
- package/dist/lib/colors.d.mts.map +1 -1
- package/dist/providers/config/context.d.mts +2 -3
- package/dist/providers/config/context.d.mts.map +1 -1
- package/dist/providers/config/context.mjs +3 -1
- package/dist/providers/config/context.mjs.map +1 -1
- package/dist/providers/config/registry.d.mts +2 -3
- package/dist/providers/config/registry.d.mts.map +1 -1
- package/dist/providers/config/types.d.mts +8 -7
- package/dist/providers/config/types.d.mts.map +1 -1
- package/dist/style.css +838 -288
- package/dist/utils.d.mts +2 -3
- package/dist/utils.d.mts.map +1 -1
- package/package.json +147 -26
- package/dist/components/molecules/marquees/use-pause-on-hover.mjs +0 -26
- package/dist/components/molecules/marquees/use-pause-on-hover.mjs.map +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tabs.d.mts","names":[],"sources":["../../../src/components/molecules/tabs.tsx"],"mappings":";;;;cAQc,
|
|
1
|
+
{"version":3,"file":"tabs.d.mts","names":["tabs","tabs.Tabs"],"sources":["../../../src/components/molecules/tabs.tsx"],"mappings":";;;;cAQc,aAAIC;iBAED;EACf;EACA,OAAO;EACP,UAAU;EACV;;EAEA,OAAO;;iBAGQ,cAAc,KAC7B,MAAM,sBAAsB;EAG5B,OAAO;;EAEP,YAAY;;EAEZ,gBAAgB,MAAM,sBAAsB;EAC5C;;EAEA;;EAEA;;EAEA;;EAEA;;EAEA,QAAQ;EACR;IACE;IACA;IACA;IACA;;;cAIE,SAAQ,OAAA,WAAA,aAAA,iBAAA,YAAA,QAAA,OAAA,YAAA,cAAA,UAAA,eAAA,gBAAA,SAcX,0BAAK,IAAA"}
|
|
@@ -4,11 +4,15 @@ import { tabs_exports } from "../../core/tabs.mjs";
|
|
|
4
4
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
5
5
|
//#region src/components/molecules/tabs.tsx
|
|
6
6
|
const { Tabs: Core, TabsList, TabsTab, TabsPanel } = tabs_exports;
|
|
7
|
-
const Tabs = ({ items, listLabel = "Tabs", keepMounted = false, activateOnFocus = false, scrollable = false, fitted = false, extra, classNames, defaultValue, orientation = "horizontal", ...props }) => {
|
|
7
|
+
const Tabs = ({ items, listLabel = "Tabs", keepMounted = false, activateOnFocus = false, scrollable = false, fitted = false, extra, classNames, defaultValue, onChange, onValueChange, orientation = "horizontal", ...props }) => {
|
|
8
8
|
const initialValue = defaultValue === void 0 ? items.find((item) => !item.disabled)?.key : defaultValue;
|
|
9
9
|
return /* @__PURE__ */ jsxs(Core, {
|
|
10
10
|
defaultValue: props.value === void 0 ? initialValue : void 0,
|
|
11
11
|
orientation,
|
|
12
|
+
onValueChange: (value, eventDetails) => {
|
|
13
|
+
onChange?.(value);
|
|
14
|
+
onValueChange?.(value, eventDetails);
|
|
15
|
+
},
|
|
12
16
|
...props,
|
|
13
17
|
children: [/* @__PURE__ */ jsxs("div", {
|
|
14
18
|
"data-slot": "tabs-bar",
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"tabs.mjs","names":["tabs"],"sources":["../../../src/components/molecules/tabs.tsx"],"sourcesContent":["'use client';\n\nimport type { ReactNode } from 'react';\n\nimport { cn } from '@repo/ui/utils';\n\nimport { tabs } from '../../core';\n\nconst { Tabs: Core, TabsList, TabsTab, TabsPanel } = tabs;\n\nexport interface Item {\n key: string;\n label: ReactNode;\n children: ReactNode;\n disabled?: boolean;\n /** Decorative icon rendered before the label with consistent spacing. */\n icon?: ReactNode;\n}\n\nexport interface Props extends Omit<\n React.ComponentProps<typeof Core>,\n 'children'\n> {\n items: Item[];\n listLabel?: string;\n /** Preserve inactive panel DOM and local state. */\n keepMounted?: boolean;\n /** Select a tab when arrow-key focus moves to it. */\n activateOnFocus?: boolean;\n /** Scroll the tab list when its items exceed the available space. */\n scrollable?: boolean;\n /** Give tabs equal width in horizontal mode; ignored when scrollable. */\n fitted?: boolean;\n /** Content shown after the tab list, outside the tablist role. */\n extra?: ReactNode;\n classNames?: {\n list?: string;\n tab?: string;\n panel?: string;\n extra?: string;\n };\n}\n\nconst Tabs = ({\n items,\n listLabel = 'Tabs',\n keepMounted = false,\n activateOnFocus = false,\n scrollable = false,\n fitted = false,\n extra,\n classNames,\n defaultValue,\n orientation = 'horizontal',\n ...props\n}: Props) => {\n const initialValue =\n defaultValue === undefined\n ? items.find(item => !item.disabled)?.key\n : defaultValue;\n\n return (\n <Core\n defaultValue={props.value === undefined ? initialValue : undefined}\n orientation={orientation}\n {...props}\n >\n <div\n data-slot=\"tabs-bar\"\n className={cn(\n 'flex min-w-0 items-stretch',\n orientation === 'vertical' && 'min-h-0 shrink-0 flex-col',\n //\n )}\n >\n <TabsList\n aria-label={listLabel}\n activateOnFocus={activateOnFocus}\n className={cn(\n 'min-w-0 flex-1',\n scrollable &&\n (orientation === 'vertical'\n ? 'min-h-0 overflow-y-auto'\n : `[scrollbar-width:none] overflow-x-auto overflow-y-hidden\n [&::-webkit-scrollbar]:hidden`),\n classNames?.list,\n //\n )}\n >\n {items.map(item => (\n <TabsTab\n key={item.key}\n value={item.key}\n disabled={item.disabled}\n className={cn(\n fitted &&\n !scrollable &&\n orientation === 'horizontal' &&\n 'flex-1',\n scrollable && 'shrink-0',\n classNames?.tab,\n //\n )}\n >\n {item.icon != null && (\n <span\n data-slot=\"tabs-icon\"\n aria-hidden=\"true\"\n className=\"inline-flex shrink-0 items-center\"\n >\n {item.icon}\n </span>\n )}\n {item.label}\n </TabsTab>\n ))}\n </TabsList>\n {extra != null && (\n <div\n data-slot=\"tabs-extra\"\n className={cn(\n `border-border flex shrink-0 items-center border-b px-3\n data-[orientation=vertical]:border-r\n data-[orientation=vertical]:border-b-0`,\n classNames?.extra,\n //\n )}\n data-orientation={orientation}\n >\n {extra}\n </div>\n )}\n </div>\n {items.map(item => (\n <TabsPanel\n key={item.key}\n value={item.key}\n keepMounted={keepMounted}\n className={classNames?.panel}\n >\n {item.children}\n </TabsPanel>\n ))}\n </Core>\n );\n};\n\nexport default Tabs;\n"],"mappings":";;;;;AAQA,MAAM,EAAE,MAAM,MAAM,UAAU,SAAS,cAAcA;
|
|
1
|
+
{"version":3,"file":"tabs.mjs","names":["tabs"],"sources":["../../../src/components/molecules/tabs.tsx"],"sourcesContent":["'use client';\n\nimport type { ReactNode } from 'react';\n\nimport { cn } from '@repo/ui/utils';\n\nimport { tabs } from '../../core';\n\nconst { Tabs: Core, TabsList, TabsTab, TabsPanel } = tabs;\n\nexport interface Item {\n key: string;\n label: ReactNode;\n children: ReactNode;\n disabled?: boolean;\n /** Decorative icon rendered before the label with consistent spacing. */\n icon?: ReactNode;\n}\n\nexport interface Props extends Omit<\n React.ComponentProps<typeof Core>,\n 'children' | 'onChange'\n> {\n items: Item[];\n /** Called when the selected tab changes. */\n onChange?: (value: string | number | null) => void;\n /** @deprecated Use `onChange` for the selected value. */\n onValueChange?: React.ComponentProps<typeof Core>['onValueChange'];\n listLabel?: string;\n /** Preserve inactive panel DOM and local state. */\n keepMounted?: boolean;\n /** Select a tab when arrow-key focus moves to it. */\n activateOnFocus?: boolean;\n /** Scroll the tab list when its items exceed the available space. */\n scrollable?: boolean;\n /** Give tabs equal width in horizontal mode; ignored when scrollable. */\n fitted?: boolean;\n /** Content shown after the tab list, outside the tablist role. */\n extra?: ReactNode;\n classNames?: {\n list?: string;\n tab?: string;\n panel?: string;\n extra?: string;\n };\n}\n\nconst Tabs = ({\n items,\n listLabel = 'Tabs',\n keepMounted = false,\n activateOnFocus = false,\n scrollable = false,\n fitted = false,\n extra,\n classNames,\n defaultValue,\n onChange,\n onValueChange,\n orientation = 'horizontal',\n ...props\n}: Props) => {\n const initialValue =\n defaultValue === undefined\n ? items.find(item => !item.disabled)?.key\n : defaultValue;\n\n return (\n <Core\n defaultValue={props.value === undefined ? initialValue : undefined}\n orientation={orientation}\n onValueChange={(value, eventDetails) => {\n onChange?.(value);\n onValueChange?.(value, eventDetails);\n }}\n {...props}\n >\n <div\n data-slot=\"tabs-bar\"\n className={cn(\n 'flex min-w-0 items-stretch',\n orientation === 'vertical' && 'min-h-0 shrink-0 flex-col',\n //\n )}\n >\n <TabsList\n aria-label={listLabel}\n activateOnFocus={activateOnFocus}\n className={cn(\n 'min-w-0 flex-1',\n scrollable &&\n (orientation === 'vertical'\n ? 'min-h-0 overflow-y-auto'\n : `[scrollbar-width:none] overflow-x-auto overflow-y-hidden\n [&::-webkit-scrollbar]:hidden`),\n classNames?.list,\n //\n )}\n >\n {items.map(item => (\n <TabsTab\n key={item.key}\n value={item.key}\n disabled={item.disabled}\n className={cn(\n fitted &&\n !scrollable &&\n orientation === 'horizontal' &&\n 'flex-1',\n scrollable && 'shrink-0',\n classNames?.tab,\n //\n )}\n >\n {item.icon != null && (\n <span\n data-slot=\"tabs-icon\"\n aria-hidden=\"true\"\n className=\"inline-flex shrink-0 items-center\"\n >\n {item.icon}\n </span>\n )}\n {item.label}\n </TabsTab>\n ))}\n </TabsList>\n {extra != null && (\n <div\n data-slot=\"tabs-extra\"\n className={cn(\n `border-border flex shrink-0 items-center border-b px-3\n data-[orientation=vertical]:border-r\n data-[orientation=vertical]:border-b-0`,\n classNames?.extra,\n //\n )}\n data-orientation={orientation}\n >\n {extra}\n </div>\n )}\n </div>\n {items.map(item => (\n <TabsPanel\n key={item.key}\n value={item.key}\n keepMounted={keepMounted}\n className={classNames?.panel}\n >\n {item.children}\n </TabsPanel>\n ))}\n </Core>\n );\n};\n\nexport default Tabs;\n"],"mappings":";;;;;AAQA,MAAM,EAAE,MAAM,MAAM,UAAU,SAAS,cAAcA;AAuCrD,MAAM,QAAQ,EACZ,OACA,YAAY,QACZ,cAAc,OACd,kBAAkB,OAClB,aAAa,OACb,SAAS,OACT,OACA,YACA,cACA,UACA,eACA,cAAc,cACd,GAAG,YACQ;CACX,MAAM,eACJ,iBAAiB,KAAA,IACb,MAAM,MAAK,SAAQ,CAAC,KAAK,QAAQ,CAAC,EAAE,MACpC;CAEN,OACE,qBAAC,MAAD;EACE,cAAc,MAAM,UAAU,KAAA,IAAY,eAAe,KAAA;EAC5C;EACb,gBAAgB,OAAO,iBAAiB;GACtC,WAAW,KAAK;GAChB,gBAAgB,OAAO,YAAY;EACrC;EACA,GAAI;EAPN,UAAA,CASE,qBAAC,OAAD;GACE,aAAU;GACV,WAAW,GACT,8BACA,gBAAgB,cAAc,2BAEhC;GANF,UAAA,CAQE,oBAAC,UAAD;IACE,cAAY;IACK;IACjB,WAAW,GACT,kBACA,eACG,gBAAgB,aACb,4BACA;mDAEN,YAAY,IAEd;IAEC,UAAA,MAAM,KAAI,SACT,qBAAC,SAAD;KAEE,OAAO,KAAK;KACZ,UAAU,KAAK;KACf,WAAW,GACT,UACE,CAAC,cACD,gBAAgB,gBAChB,UACF,cAAc,YACd,YAAY,GAEd;KAZF,UAAA,CAcG,KAAK,QAAQ,QACZ,oBAAC,QAAD;MACE,aAAU;MACV,eAAY;MACZ,WAAU;MAET,UAAA,KAAK;KACF,CAAA,GAEP,KAAK,KACC;IAvBF,GAAA,KAAK,GAuBH,CACV;GACO,CAAA,GACT,SAAS,QACR,oBAAC,OAAD;IACE,aAAU;IACV,WAAW,GACT;;uDAGA,YAAY,KAEd;IACA,oBAAkB;IAEjB,UAAA;GACE,CAAA,CAEJ;EACJ,CAAA,GAAA,MAAM,KAAI,SACT,oBAAC,WAAD;GAEE,OAAO,KAAK;GACC;GACb,WAAW,YAAY;GAEtB,UAAA,KAAK;EACG,GANJ,KAAK,GAMD,CACZ,CACG;;AAEV"}
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
//#region src/components/molecules/upload.d.ts
|
|
2
|
-
interface UploadFile {
|
|
2
|
+
export interface UploadFile {
|
|
3
3
|
uid: string;
|
|
4
4
|
name: string;
|
|
5
5
|
url: string;
|
|
6
6
|
}
|
|
7
|
-
interface Props {
|
|
7
|
+
export interface Props {
|
|
8
8
|
defaultValue?: UploadFile[];
|
|
9
9
|
value?: UploadFile[];
|
|
10
10
|
multiple?: boolean;
|
|
@@ -29,5 +29,5 @@ interface Props {
|
|
|
29
29
|
}
|
|
30
30
|
declare const Upload: ({ defaultValue, value: _value, multiple, accept, maxCount, disabled, className, classNames, onChange: _onChange, onReject }: Props) => import("react").JSX.Element;
|
|
31
31
|
//#endregion
|
|
32
|
-
export {
|
|
32
|
+
export { Upload as default };
|
|
33
33
|
//# sourceMappingURL=upload.d.mts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"upload.d.mts","names":[],"sources":["../../../src/components/molecules/upload.tsx"],"mappings":";
|
|
1
|
+
{"version":3,"file":"upload.d.mts","names":[],"sources":["../../../src/components/molecules/upload.tsx"],"mappings":";iBAuBiB;EACf;EACA;EACA;;iBAGe;EACf,eAAe;EACf,QAAQ;EACR;EACA;EACA;EACA;EACA;EACA;IACE;IACA;IACA;;EAEF,YAAY,OAAO;;;;;EAKnB,YAAY;IAAQ,MAAM;IAAM;;;cAO5B,WAAU,cAAA,OAAA,QAAA,UAAA,QAAA,UAAA,UAAA,WAAA,YAAA,UAAA,WAAA,YAWb,0BAAK,IAAA"}
|
|
@@ -2,9 +2,9 @@
|
|
|
2
2
|
import { cn } from "../../utils.mjs";
|
|
3
3
|
import Button from "../../Button.mjs";
|
|
4
4
|
import { useId } from "react";
|
|
5
|
-
import { Upload, X } from "lucide-react";
|
|
6
5
|
import { useControllableState, useFileDrop, useFileToDataUrl } from "@jbpark/use-hooks";
|
|
7
6
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
7
|
+
import { Upload, X } from "lucide-react";
|
|
8
8
|
//#region src/components/molecules/upload.tsx
|
|
9
9
|
let uidCounter = 0;
|
|
10
10
|
const nextUid = () => uidCounter += 1;
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
//#region src/components/organisms/drawer.d.ts
|
|
2
|
-
interface Props {
|
|
2
|
+
export interface Props {
|
|
3
3
|
open: boolean;
|
|
4
4
|
children?: React.ReactNode;
|
|
5
5
|
title?: React.ReactNode;
|
|
@@ -8,7 +8,7 @@ interface Props {
|
|
|
8
8
|
closable?: boolean;
|
|
9
9
|
closeIcon?: React.ReactNode;
|
|
10
10
|
direction?: 'top' | 'bottom' | 'left' | 'right';
|
|
11
|
-
size?: 'small' | 'medium' | 'large' | 'full' | string;
|
|
11
|
+
size?: 'small' | 'middle' | 'medium' | 'large' | 'full' | string;
|
|
12
12
|
maskClosable?: boolean;
|
|
13
13
|
handlebar?: boolean;
|
|
14
14
|
rounded?: boolean;
|
|
@@ -31,5 +31,5 @@ interface Props {
|
|
|
31
31
|
}
|
|
32
32
|
declare const Drawer: ({ open, title, extra, footer, closable, closeIcon, direction, size, maskClosable, handlebar, rounded, mask, className, classNames, style, children, container, onClose, ...props }: Props) => import("react").JSX.Element;
|
|
33
33
|
//#endregion
|
|
34
|
-
export {
|
|
34
|
+
export { Drawer as default };
|
|
35
35
|
//# sourceMappingURL=drawer.d.mts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"drawer.d.mts","names":[],"sources":["../../../src/components/organisms/drawer.tsx"],"mappings":";
|
|
1
|
+
{"version":3,"file":"drawer.d.mts","names":[],"sources":["../../../src/components/organisms/drawer.tsx"],"mappings":";iBA2CiB;EACf;EACA,WAAW,MAAM;EACjB,QAAQ,MAAM;EACd,QAAQ,MAAM;EACd,SAAS,MAAM;EACf;EACA,YAAY,MAAM;EAClB;EACA;EACA;EACA;EACA;EACA;EACA;EACA,QAAQ,MAAM;EACd;IACE;IACA;IACA;IACA;IACA;IACA;IACA;IACA;IACA;;EAEF,YAAY;EACZ;;cA+CI,WAAU,MAAA,OAAA,OAAA,QAAA,UAAA,WAAA,WAAA,MAAA,cAAA,WAAA,SAAA,MAAA,WAAA,YAAA,OAAA,UAAA,WAAA,YAAA,SAoBb,0BAAK,IAAA"}
|
|
@@ -1,11 +1,11 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
import { cn } from "../../utils.mjs";
|
|
3
3
|
import { DEFAULT_LOCALE, useConfig } from "../../providers/config/context.mjs";
|
|
4
|
-
import { drawer_exports } from "../../core/drawer.mjs";
|
|
5
4
|
import Button from "../../Button.mjs";
|
|
5
|
+
import { drawer_exports } from "../../core/drawer.mjs";
|
|
6
6
|
import { useEffect } from "react";
|
|
7
|
-
import { X } from "lucide-react";
|
|
8
7
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
8
|
+
import { X } from "lucide-react";
|
|
9
9
|
//#region src/components/organisms/drawer.tsx
|
|
10
10
|
const { DrawerContent, Drawer: DrawerCore, DrawerDescription, DrawerFooter, DrawerHeader, DrawerTitle } = drawer_exports;
|
|
11
11
|
const maskLessStates = /* @__PURE__ */ new WeakMap();
|
|
@@ -22,6 +22,7 @@ const getMaskLessState = (doc) => {
|
|
|
22
22
|
};
|
|
23
23
|
const SIZES = {
|
|
24
24
|
small: "30%",
|
|
25
|
+
middle: "50%",
|
|
25
26
|
medium: "50%",
|
|
26
27
|
large: "75%",
|
|
27
28
|
full: "90%"
|
|
@@ -41,7 +42,7 @@ const getSizeStyles = (direction, size) => {
|
|
|
41
42
|
maxWidth: "100%"
|
|
42
43
|
};
|
|
43
44
|
};
|
|
44
|
-
const Drawer = ({ open, title, extra, footer, closable = true, closeIcon, direction = "bottom", size = "
|
|
45
|
+
const Drawer = ({ open, title, extra, footer, closable = true, closeIcon, direction = "bottom", size = "middle", maskClosable = true, handlebar = true, rounded = false, mask = true, className, classNames, style, children, container, onClose, ...props }) => {
|
|
45
46
|
const { locale } = useConfig();
|
|
46
47
|
useEffect(() => {
|
|
47
48
|
if (!open || mask) return;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"drawer.mjs","names":["drawer"],"sources":["../../../src/components/organisms/drawer.tsx"],"sourcesContent":["'use client';\n\nimport { useEffect } from 'react';\n\nimport { X } from 'lucide-react';\n\nimport { DEFAULT_LOCALE, useConfig } from '@repo/ui/providers';\nimport { cn } from '@repo/ui/utils';\n\nimport { drawer } from '../../core';\nimport Button from '../atoms/button';\n\nconst {\n DrawerContent,\n Drawer: DrawerCore,\n DrawerDescription,\n DrawerFooter,\n DrawerHeader,\n DrawerTitle,\n} = drawer;\n\n// `body.style.pointerEvents` is global state (per document), so several\n// mask-less overlays opening at once would otherwise race: each instance\n// would capture whatever the previous one had already written and the\n// last cleanup would restore a stale value. Reference counting makes only\n// the first instance capture the original value and only the last one\n// restore it. Keyed by document (not a single module-level counter) so\n// drawers portaled into different documents — e.g. live-editor's iframe\n// Renderer — don't share state with the host document.\ntype MaskLessState = { count: number; originalPointerEvents: string | null };\nconst maskLessStates = new WeakMap<Document, MaskLessState>();\n\nconst getMaskLessState = (doc: Document): MaskLessState => {\n let state = maskLessStates.get(doc);\n\n if (!state) {\n state = { count: 0, originalPointerEvents: null };\n maskLessStates.set(doc, state);\n }\n\n return state;\n};\n\nexport interface Props {\n open: boolean;\n children?: React.ReactNode;\n title?: React.ReactNode;\n extra?: React.ReactNode;\n footer?: React.ReactNode;\n closable?: boolean;\n closeIcon?: React.ReactNode;\n direction?: 'top' | 'bottom' | 'left' | 'right';\n size?: 'small' | 'medium' | 'large' | 'full' | string;\n maskClosable?: boolean;\n handlebar?: boolean;\n rounded?: boolean;\n mask?: boolean;\n className?: string;\n style?: React.CSSProperties;\n classNames?: {\n mask?: string;\n content?: string;\n handlebar?: string;\n header?: string;\n title?: string;\n close?: string;\n extra?: string;\n body?: string;\n footer?: string;\n };\n container?: HTMLElement;\n onClose: () => void;\n}\n\nconst SIZES: Record<string, string> = {\n small: '30%',\n medium: '50%',\n large: '75%',\n full: '90%',\n};\n\n// Rounds the edge facing into the viewport — the opposite edge from\n// whichever side the drawer is anchored to.\nconst ROUNDED_CLASSES: Record<'top' | 'bottom' | 'left' | 'right', string> = {\n top: 'rounded-b-[30px]!',\n bottom: 'rounded-t-[30px]!',\n left: 'rounded-r-[30px]!',\n right: 'rounded-l-[30px]!',\n};\n\n// A side drawer sized by a preset is sized by a percentage of the viewport,\n// which collapses on a phone: `small` is 30%, so it lands at ~112px on a 375px\n// screen — a sliver too narrow to read. Floor the preset widths so they stay\n// usable on small screens. A custom `size` is passed through untouched; an\n// explicit value is the caller's decision, not something to second-guess.\nconst SIDE_MIN_WIDTH = '20rem';\n\nconst getSizeStyles = (\n direction: 'top' | 'bottom' | 'left' | 'right',\n size: string,\n): React.CSSProperties => {\n if (direction === 'top' || direction === 'bottom') {\n return { height: SIZES[size] || size };\n }\n\n const preset = SIZES[size];\n\n return {\n width: preset ? `max(${preset}, ${SIDE_MIN_WIDTH})` : size,\n // Set inline so it beats `core/drawer`'s `sm:max-w-sm`, which would\n // otherwise hold every side drawer at 24rem from the `sm` breakpoint up\n // and leave `size` with no effect on anything wider than a phone. It also\n // keeps the floor above from overflowing a container narrower than it.\n maxWidth: '100%',\n };\n};\n\nconst Drawer = ({\n open,\n title,\n extra,\n footer,\n closable = true,\n closeIcon,\n direction = 'bottom',\n size = '
|
|
1
|
+
{"version":3,"file":"drawer.mjs","names":["drawer"],"sources":["../../../src/components/organisms/drawer.tsx"],"sourcesContent":["'use client';\n\nimport { useEffect } from 'react';\n\nimport { X } from 'lucide-react';\n\nimport { DEFAULT_LOCALE, useConfig } from '@repo/ui/providers';\nimport { cn } from '@repo/ui/utils';\n\nimport { drawer } from '../../core';\nimport Button from '../atoms/button';\n\nconst {\n DrawerContent,\n Drawer: DrawerCore,\n DrawerDescription,\n DrawerFooter,\n DrawerHeader,\n DrawerTitle,\n} = drawer;\n\n// `body.style.pointerEvents` is global state (per document), so several\n// mask-less overlays opening at once would otherwise race: each instance\n// would capture whatever the previous one had already written and the\n// last cleanup would restore a stale value. Reference counting makes only\n// the first instance capture the original value and only the last one\n// restore it. Keyed by document (not a single module-level counter) so\n// drawers portaled into different documents — e.g. live-editor's iframe\n// Renderer — don't share state with the host document.\ntype MaskLessState = { count: number; originalPointerEvents: string | null };\nconst maskLessStates = new WeakMap<Document, MaskLessState>();\n\nconst getMaskLessState = (doc: Document): MaskLessState => {\n let state = maskLessStates.get(doc);\n\n if (!state) {\n state = { count: 0, originalPointerEvents: null };\n maskLessStates.set(doc, state);\n }\n\n return state;\n};\n\nexport interface Props {\n open: boolean;\n children?: React.ReactNode;\n title?: React.ReactNode;\n extra?: React.ReactNode;\n footer?: React.ReactNode;\n closable?: boolean;\n closeIcon?: React.ReactNode;\n direction?: 'top' | 'bottom' | 'left' | 'right';\n size?: 'small' | 'middle' | 'medium' | 'large' | 'full' | string;\n maskClosable?: boolean;\n handlebar?: boolean;\n rounded?: boolean;\n mask?: boolean;\n className?: string;\n style?: React.CSSProperties;\n classNames?: {\n mask?: string;\n content?: string;\n handlebar?: string;\n header?: string;\n title?: string;\n close?: string;\n extra?: string;\n body?: string;\n footer?: string;\n };\n container?: HTMLElement;\n onClose: () => void;\n}\n\nconst SIZES: Record<string, string> = {\n small: '30%',\n middle: '50%',\n medium: '50%',\n large: '75%',\n full: '90%',\n};\n\n// Rounds the edge facing into the viewport — the opposite edge from\n// whichever side the drawer is anchored to.\nconst ROUNDED_CLASSES: Record<'top' | 'bottom' | 'left' | 'right', string> = {\n top: 'rounded-b-[30px]!',\n bottom: 'rounded-t-[30px]!',\n left: 'rounded-r-[30px]!',\n right: 'rounded-l-[30px]!',\n};\n\n// A side drawer sized by a preset is sized by a percentage of the viewport,\n// which collapses on a phone: `small` is 30%, so it lands at ~112px on a 375px\n// screen — a sliver too narrow to read. Floor the preset widths so they stay\n// usable on small screens. A custom `size` is passed through untouched; an\n// explicit value is the caller's decision, not something to second-guess.\nconst SIDE_MIN_WIDTH = '20rem';\n\nconst getSizeStyles = (\n direction: 'top' | 'bottom' | 'left' | 'right',\n size: string,\n): React.CSSProperties => {\n if (direction === 'top' || direction === 'bottom') {\n return { height: SIZES[size] || size };\n }\n\n const preset = SIZES[size];\n\n return {\n width: preset ? `max(${preset}, ${SIDE_MIN_WIDTH})` : size,\n // Set inline so it beats `core/drawer`'s `sm:max-w-sm`, which would\n // otherwise hold every side drawer at 24rem from the `sm` breakpoint up\n // and leave `size` with no effect on anything wider than a phone. It also\n // keeps the floor above from overflowing a container narrower than it.\n maxWidth: '100%',\n };\n};\n\nconst Drawer = ({\n open,\n title,\n extra,\n footer,\n closable = true,\n closeIcon,\n direction = 'bottom',\n size = 'middle',\n maskClosable = true,\n handlebar = true,\n rounded = false,\n mask = true,\n className,\n classNames,\n style,\n children,\n container,\n onClose,\n ...props\n}: Props) => {\n const { locale } = useConfig();\n\n useEffect(() => {\n if (!open || mask) {\n return;\n }\n\n const targetDocument = container?.ownerDocument ?? document;\n const targetWindow = targetDocument.defaultView ?? window;\n const body = targetDocument.body;\n const state = getMaskLessState(targetDocument);\n\n if (state.count === 0) {\n state.originalPointerEvents = body.style.pointerEvents;\n }\n state.count += 1;\n\n const raf = targetWindow.requestAnimationFrame(() => {\n body.style.pointerEvents = 'auto';\n });\n\n return () => {\n targetWindow.cancelAnimationFrame(raf);\n state.count -= 1;\n\n if (state.count === 0) {\n body.style.pointerEvents = state.originalPointerEvents ?? '';\n state.originalPointerEvents = null;\n }\n };\n }, [open, mask, container]);\n\n return (\n <DrawerCore\n open={open}\n // antd's mask ⇒ Base UI's modal (focus trap + scroll lock); maskClosable\n // gates outside-press dismissal at the root, replacing vaul's\n // Content-level onPointerDownOutside handler.\n modal={mask}\n disablePointerDismissal={!maskClosable}\n onOpenChange={open => {\n if (!open) {\n onClose();\n }\n }}\n {...props}\n >\n <DrawerContent\n direction={direction}\n container={container}\n className={cn(\n 'border-none outline-none',\n rounded ? ROUNDED_CLASSES[direction] : 'rounded-none!',\n classNames?.content,\n className,\n //\n )}\n handlebar={handlebar}\n mask={mask}\n classNames={{\n mask: classNames?.mask || '',\n handlebar: classNames?.handlebar || '',\n }}\n style={{\n ...getSizeStyles(direction, size),\n ...style,\n }}\n >\n <DrawerHeader\n className={cn(\n classNames?.header,\n !title && 'p-0',\n //\n )}\n >\n <div className=\"flex items-start gap-2\">\n {closable && (\n <Button\n variant=\"text\"\n shape=\"circle\"\n size=\"small\"\n aria-label={locale.close ?? DEFAULT_LOCALE.close}\n icon={closeIcon || <X />}\n onClick={onClose}\n className={cn(classNames?.close)}\n />\n )}\n <div className=\"flex flex-1 items-start justify-between gap-2\">\n <DrawerTitle className={cn(classNames?.title)}>\n {title}\n </DrawerTitle>\n {extra != null && (\n <div className={cn('shrink-0', classNames?.extra)}>{extra}</div>\n )}\n </div>\n </div>\n <DrawerDescription className=\"hidden\" />\n </DrawerHeader>\n <div\n className={cn(\n 'overflow-auto p-5',\n classNames?.body,\n //\n )}\n >\n {children}\n </div>\n {footer != null && (\n <DrawerFooter className={cn(classNames?.footer)}>\n {footer}\n </DrawerFooter>\n )}\n </DrawerContent>\n </DrawerCore>\n );\n};\n\nexport default Drawer;\n"],"mappings":";;;;;;;;;AAYA,MAAM,EACJ,eACA,QAAQ,YACR,mBACA,cACA,cACA,gBACEA;AAWJ,MAAM,iCAAiB,IAAI,QAAiC;AAE5D,MAAM,oBAAoB,QAAiC;CACzD,IAAI,QAAQ,eAAe,IAAI,GAAG;CAElC,IAAI,CAAC,OAAO;EACV,QAAQ;GAAE,OAAO;GAAG,uBAAuB;EAAK;EAChD,eAAe,IAAI,KAAK,KAAK;CAC/B;CAEA,OAAO;AACT;AAiCA,MAAM,QAAgC;CACpC,OAAO;CACP,QAAQ;CACR,QAAQ;CACR,OAAO;CACP,MAAM;AACR;AAIA,MAAM,kBAAuE;CAC3E,KAAK;CACL,QAAQ;CACR,MAAM;CACN,OAAO;AACT;AAOA,MAAM,iBAAiB;AAEvB,MAAM,iBACJ,WACA,SACwB;CACxB,IAAI,cAAc,SAAS,cAAc,UACvC,OAAO,EAAE,QAAQ,MAAM,SAAS,KAAK;CAGvC,MAAM,SAAS,MAAM;CAErB,OAAO;EACL,OAAO,SAAS,OAAO,OAAO,IAAI,eAAe,KAAK;EAKtD,UAAU;CACZ;AACF;AAEA,MAAM,UAAU,EACd,MACA,OACA,OACA,QACA,WAAW,MACX,WACA,YAAY,UACZ,OAAO,UACP,eAAe,MACf,YAAY,MACZ,UAAU,OACV,OAAO,MACP,WACA,YACA,OACA,UACA,WACA,SACA,GAAG,YACQ;CACX,MAAM,EAAE,WAAW,UAAU;CAE7B,gBAAgB;EACd,IAAI,CAAC,QAAQ,MACX;EAGF,MAAM,iBAAiB,WAAW,iBAAiB;EACnD,MAAM,eAAe,eAAe,eAAe;EACnD,MAAM,OAAO,eAAe;EAC5B,MAAM,QAAQ,iBAAiB,cAAc;EAE7C,IAAI,MAAM,UAAU,GAClB,MAAM,wBAAwB,KAAK,MAAM;EAE3C,MAAM,SAAS;EAEf,MAAM,MAAM,aAAa,4BAA4B;GACnD,KAAK,MAAM,gBAAgB;EAC7B,CAAC;EAED,aAAa;GACX,aAAa,qBAAqB,GAAG;GACrC,MAAM,SAAS;GAEf,IAAI,MAAM,UAAU,GAAG;IACrB,KAAK,MAAM,gBAAgB,MAAM,yBAAyB;IAC1D,MAAM,wBAAwB;GAChC;EACF;CACF,GAAG;EAAC;EAAM;EAAM;CAAS,CAAC;CAE1B,OACE,oBAAC,YAAD;EACQ;EAIN,OAAO;EACP,yBAAyB,CAAC;EAC1B,eAAc,SAAQ;GACpB,IAAI,CAAC,MACH,QAAQ;EAEZ;EACA,GAAI;EAEJ,UAAA,qBAAC,eAAD;GACa;GACA;GACX,WAAW,GACT,4BACA,UAAU,gBAAgB,aAAa,iBACvC,YAAY,SACZ,SAEF;GACW;GACL;GACN,YAAY;IACV,MAAM,YAAY,QAAQ;IAC1B,WAAW,YAAY,aAAa;GACtC;GACA,OAAO;IACL,GAAG,cAAc,WAAW,IAAI;IAChC,GAAG;GACL;GAnBF,UAAA;IAqBE,qBAAC,cAAD;KACE,WAAW,GACT,YAAY,QACZ,CAAC,SAAS,KAEZ;KALF,UAAA,CAOE,qBAAC,OAAD;MAAK,WAAU;MAAf,UAAA,CACG,YACC,oBAAC,QAAD;OACE,SAAQ;OACR,OAAM;OACN,MAAK;OACL,cAAY,OAAO,SAAS,eAAe;OAC3C,MAAM,aAAa,oBAAC,GAAD,CAAI,CAAA;OACvB,SAAS;OACT,WAAW,GAAG,YAAY,KAAK;MAChC,CAAA,GAEH,qBAAC,OAAD;OAAK,WAAU;OAAf,UAAA,CACE,oBAAC,aAAD;QAAa,WAAW,GAAG,YAAY,KAAK;QACzC,UAAA;OACU,CAAA,GACZ,SAAS,QACR,oBAAC,OAAD;QAAK,WAAW,GAAG,YAAY,YAAY,KAAK;QAAI,UAAA;OAAW,CAAA,CAE9D;MACF,CAAA,CAAA;KACL,CAAA,GAAA,oBAAC,mBAAD,EAAmB,WAAU,SAAU,CAAA,CAC3B;;IACd,oBAAC,OAAD;KACE,WAAW,GACT,qBACA,YAAY,IAEd;KAEC;IACE,CAAA;IACJ,UAAU,QACT,oBAAC,cAAD;KAAc,WAAW,GAAG,YAAY,MAAM;KAC3C,UAAA;IACW,CAAA;GAEH;;CACL,CAAA;AAEhB"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"context.d.mts","names":[],"sources":["../../../../src/components/organisms/form/context.ts"],"mappings":";YAIY"}
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { createContext } from "react";
|
|
3
|
+
//#region src/components/organisms/form/context.ts
|
|
4
|
+
const LayoutContext = createContext("vertical");
|
|
5
|
+
const RequiredContext = createContext(false);
|
|
6
|
+
//#endregion
|
|
7
|
+
export { LayoutContext, RequiredContext };
|
|
8
|
+
|
|
9
|
+
//# sourceMappingURL=context.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"context.mjs","names":[],"sources":["../../../../src/components/organisms/form/context.ts"],"sourcesContent":["'use client';\n\nimport { createContext } from 'react';\n\nexport type Layout = 'vertical' | 'horizontal';\n\nexport const LayoutContext = createContext<Layout>('vertical');\nexport const RequiredContext = createContext(false);\n"],"mappings":";;;AAMA,MAAa,gBAAgB,cAAsB,UAAU;AAC7D,MAAa,kBAAkB,cAAc,KAAK"}
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { Field, form_d_exports } from "../../../core/form.mjs";
|
|
2
|
+
import "../../../core/index.mjs";
|
|
3
|
+
import { ComponentPropsWithRef } from "react";
|
|
4
|
+
//#region src/components/organisms/form/control.d.ts
|
|
5
|
+
export interface Props extends Omit<ComponentPropsWithRef<typeof Field.Control>, 'className'> {
|
|
6
|
+
className?: string;
|
|
7
|
+
}
|
|
8
|
+
declare const Control: ({ required, render, ...props }: Props) => import("react").JSX.Element;
|
|
9
|
+
//#endregion
|
|
10
|
+
export { Control as default };
|
|
11
|
+
//# sourceMappingURL=control.d.mts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"control.d.mts","names":["form"],"sources":["../../../../src/components/organisms/form/control.tsx"],"mappings":";;;;iBAQiB,cAAc,KAC7B,6BAAwC,MAAA;EAGxC;;cAGI,YAAW,UAAA,WAAA,SAA4C,0BAAK,IAAA"}
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { Field } from "../../../core/form.mjs";
|
|
3
|
+
import Input from "../../atoms/input/index.mjs";
|
|
4
|
+
import { RequiredContext } from "./context.mjs";
|
|
5
|
+
import { useContext } from "react";
|
|
6
|
+
import { jsx } from "react/jsx-runtime";
|
|
7
|
+
//#region src/components/organisms/form/control.tsx
|
|
8
|
+
const Control = ({ required, render = /* @__PURE__ */ jsx(Input, {}), ...props }) => {
|
|
9
|
+
const inheritedRequired = useContext(RequiredContext);
|
|
10
|
+
return /* @__PURE__ */ jsx(Field.Control, {
|
|
11
|
+
...props,
|
|
12
|
+
required: required ?? inheritedRequired,
|
|
13
|
+
render
|
|
14
|
+
});
|
|
15
|
+
};
|
|
16
|
+
//#endregion
|
|
17
|
+
export { Control as default };
|
|
18
|
+
|
|
19
|
+
//# sourceMappingURL=control.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"control.mjs","names":[],"sources":["../../../../src/components/organisms/form/control.tsx"],"sourcesContent":["'use client';\n\nimport { type ComponentPropsWithRef, useContext } from 'react';\n\nimport { form } from '../../../core';\nimport Input from '../../atoms/input';\nimport { RequiredContext } from './context';\n\nexport interface Props extends Omit<\n ComponentPropsWithRef<typeof form.Field.Control>,\n 'className'\n> {\n className?: string;\n}\n\nconst Control = ({ required, render = <Input />, ...props }: Props) => {\n const inheritedRequired = useContext(RequiredContext);\n\n return (\n <form.Field.Control\n {...props}\n required={required ?? inheritedRequired}\n render={render}\n />\n );\n};\n\nexport default Control;\n"],"mappings":";;;;;;;AAeA,MAAM,WAAW,EAAE,UAAU,SAAS,oBAAC,OAAD,CAAQ,CAAA,GAAG,GAAG,YAAmB;CACrE,MAAM,oBAAoB,WAAW,eAAe;CAEpD,OACE,oBAAA,MAAY,SAAZ;EACE,GAAI;EACJ,UAAU,YAAY;EACd;CACT,CAAA;AAEL"}
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { Field as Field$1, form_d_exports } from "../../../core/form.mjs";
|
|
2
|
+
import "../../../core/index.mjs";
|
|
3
|
+
import { Layout } from "./context.mjs";
|
|
4
|
+
import { ComponentPropsWithRef, ReactNode } from "react";
|
|
5
|
+
//#region src/components/organisms/form/field.d.ts
|
|
6
|
+
export interface Props extends Omit<ComponentPropsWithRef<typeof Field$1.Root>, 'className' | 'render' | 'children'> {
|
|
7
|
+
label?: ReactNode;
|
|
8
|
+
description?: ReactNode;
|
|
9
|
+
error?: ReactNode;
|
|
10
|
+
children?: ReactNode;
|
|
11
|
+
required?: boolean;
|
|
12
|
+
layout?: Layout;
|
|
13
|
+
className?: string;
|
|
14
|
+
classNames?: {
|
|
15
|
+
label?: string;
|
|
16
|
+
required?: string;
|
|
17
|
+
content?: string;
|
|
18
|
+
description?: string;
|
|
19
|
+
error?: string;
|
|
20
|
+
};
|
|
21
|
+
}
|
|
22
|
+
declare const Field: ({ label, description, error, children, required, layout, invalid, className, classNames, ...props }: Props) => import("react").JSX.Element;
|
|
23
|
+
//#endregion
|
|
24
|
+
export { Field as default };
|
|
25
|
+
//# sourceMappingURL=field.d.mts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"field.d.mts","names":["form"],"sources":["../../../../src/components/organisms/form/field.tsx"],"mappings":";;;;;iBASiB,cAAc,KAC7B,6BAAwC,QAAA;EAGxC,QAAQ;EACR,cAAc;EACd,QAAQ;EACR,WAAW;EACX;EACA,SAAS;EACT;EACA;IACE;IACA;IACA;IACA;IACA;;;cAIE,UAAS,OAAA,aAAA,OAAA,UAAA,UAAA,QAAA,SAAA,WAAA,eAAA,SAWZ,0BAAK,IAAA"}
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { cn } from "../../../utils.mjs";
|
|
3
|
+
import { Field as Field$1 } from "../../../core/form.mjs";
|
|
4
|
+
import { LayoutContext, RequiredContext } from "./context.mjs";
|
|
5
|
+
import { useContext } from "react";
|
|
6
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
7
|
+
//#region src/components/organisms/form/field.tsx
|
|
8
|
+
const Field = ({ label, description, error, children, required = false, layout, invalid, className, classNames, ...props }) => {
|
|
9
|
+
const inheritedLayout = useContext(LayoutContext);
|
|
10
|
+
const resolvedLayout = layout ?? inheritedLayout;
|
|
11
|
+
const hasError = error !== void 0 && error !== null && error !== false && error !== "";
|
|
12
|
+
return /* @__PURE__ */ jsx(RequiredContext.Provider, {
|
|
13
|
+
value: required,
|
|
14
|
+
children: /* @__PURE__ */ jsxs(Field$1.Root, {
|
|
15
|
+
...props,
|
|
16
|
+
"data-slot": "form-field",
|
|
17
|
+
invalid: invalid || hasError,
|
|
18
|
+
className: cn("grid min-w-0 gap-2", resolvedLayout === "horizontal" && `@md/form:grid-cols-[minmax(0,1fr)_minmax(0,3fr)]
|
|
19
|
+
@md/form:items-start`, className),
|
|
20
|
+
children: [label != null && /* @__PURE__ */ jsxs(Field$1.Label, {
|
|
21
|
+
"data-slot": "form-label",
|
|
22
|
+
className: cn(`flex min-w-0 items-center gap-1 text-sm font-medium
|
|
23
|
+
data-disabled:opacity-50`, resolvedLayout === "horizontal" && "@md/form:pt-2", classNames?.label),
|
|
24
|
+
children: [label, required && /* @__PURE__ */ jsx("span", {
|
|
25
|
+
"aria-hidden": "true",
|
|
26
|
+
className: cn("text-destructive", classNames?.required),
|
|
27
|
+
children: "*"
|
|
28
|
+
})]
|
|
29
|
+
}), /* @__PURE__ */ jsxs("div", {
|
|
30
|
+
"data-slot": "form-field-content",
|
|
31
|
+
className: cn("flex min-w-0 flex-col gap-1.5", classNames?.content),
|
|
32
|
+
children: [
|
|
33
|
+
children,
|
|
34
|
+
description != null && /* @__PURE__ */ jsx(Field$1.Description, {
|
|
35
|
+
"data-slot": "form-description",
|
|
36
|
+
className: cn("text-muted-foreground text-sm [overflow-wrap:anywhere]", classNames?.description),
|
|
37
|
+
children: description
|
|
38
|
+
}),
|
|
39
|
+
/* @__PURE__ */ jsx(Field$1.Error, {
|
|
40
|
+
...hasError ? { children: error } : {},
|
|
41
|
+
"data-slot": "form-error",
|
|
42
|
+
role: "alert",
|
|
43
|
+
match: hasError ? true : void 0,
|
|
44
|
+
className: cn("text-destructive text-sm [overflow-wrap:anywhere]", classNames?.error)
|
|
45
|
+
})
|
|
46
|
+
]
|
|
47
|
+
})]
|
|
48
|
+
})
|
|
49
|
+
});
|
|
50
|
+
};
|
|
51
|
+
//#endregion
|
|
52
|
+
export { Field as default };
|
|
53
|
+
|
|
54
|
+
//# sourceMappingURL=field.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"field.mjs","names":[],"sources":["../../../../src/components/organisms/form/field.tsx"],"sourcesContent":["'use client';\n\nimport { type ComponentPropsWithRef, type ReactNode, useContext } from 'react';\n\nimport { cn } from '@repo/ui/utils';\n\nimport { form } from '../../../core';\nimport { type Layout, LayoutContext, RequiredContext } from './context';\n\nexport interface Props extends Omit<\n ComponentPropsWithRef<typeof form.Field.Root>,\n 'className' | 'render' | 'children'\n> {\n label?: ReactNode;\n description?: ReactNode;\n error?: ReactNode;\n children?: ReactNode;\n required?: boolean;\n layout?: Layout;\n className?: string;\n classNames?: {\n label?: string;\n required?: string;\n content?: string;\n description?: string;\n error?: string;\n };\n}\n\nconst Field = ({\n label,\n description,\n error,\n children,\n required = false,\n layout,\n invalid,\n className,\n classNames,\n ...props\n}: Props) => {\n const inheritedLayout = useContext(LayoutContext);\n const resolvedLayout = layout ?? inheritedLayout;\n const hasError =\n error !== undefined && error !== null && error !== false && error !== '';\n\n return (\n <RequiredContext.Provider value={required}>\n <form.Field.Root\n {...props}\n data-slot=\"form-field\"\n invalid={invalid || hasError}\n className={cn(\n 'grid min-w-0 gap-2',\n resolvedLayout === 'horizontal' &&\n `@md/form:grid-cols-[minmax(0,1fr)_minmax(0,3fr)]\n @md/form:items-start`,\n className, //\n )}\n >\n {label != null && (\n <form.Field.Label\n data-slot=\"form-label\"\n className={cn(\n `flex min-w-0 items-center gap-1 text-sm font-medium\n data-disabled:opacity-50`,\n resolvedLayout === 'horizontal' && '@md/form:pt-2',\n classNames?.label, //\n )}\n >\n {label}\n {required && (\n <span\n aria-hidden=\"true\"\n className={cn(\n 'text-destructive',\n classNames?.required, //\n )}\n >\n *\n </span>\n )}\n </form.Field.Label>\n )}\n <div\n data-slot=\"form-field-content\"\n className={cn(\n 'flex min-w-0 flex-col gap-1.5',\n classNames?.content, //\n )}\n >\n {children}\n {description != null && (\n <form.Field.Description\n data-slot=\"form-description\"\n className={cn(\n 'text-muted-foreground text-sm [overflow-wrap:anywhere]',\n classNames?.description, //\n )}\n >\n {description}\n </form.Field.Description>\n )}\n <form.Field.Error\n {...(hasError ? { children: error } : {})}\n data-slot=\"form-error\"\n role=\"alert\"\n match={hasError ? true : undefined}\n className={cn(\n 'text-destructive text-sm [overflow-wrap:anywhere]',\n classNames?.error, //\n )}\n />\n </div>\n </form.Field.Root>\n </RequiredContext.Provider>\n );\n};\n\nexport default Field;\n"],"mappings":";;;;;;;AA6BA,MAAM,SAAS,EACb,OACA,aACA,OACA,UACA,WAAW,OACX,QACA,SACA,WACA,YACA,GAAG,YACQ;CACX,MAAM,kBAAkB,WAAW,aAAa;CAChD,MAAM,iBAAiB,UAAU;CACjC,MAAM,WACJ,UAAU,KAAA,KAAa,UAAU,QAAQ,UAAU,SAAS,UAAU;CAExE,OACE,oBAAC,gBAAgB,UAAjB;EAA0B,OAAO;EAC/B,UAAA,qBAAA,QAAY,MAAZ;GACE,GAAI;GACJ,aAAU;GACV,SAAS,WAAW;GACpB,WAAW,GACT,sBACA,mBAAmB,gBACjB;mCAEF,SACF;GAVF,UAAA,CAYG,SAAS,QACR,qBAAA,QAAY,OAAZ;IACE,aAAU;IACV,WAAW,GACT;yCAEA,mBAAmB,gBAAgB,iBACnC,YAAY,KACd;IAPF,UAAA,CASG,OACA,YACC,oBAAC,QAAD;KACE,eAAY;KACZ,WAAW,GACT,oBACA,YAAY,QACd;KACD,UAAA;IAEK,CAAA,CAEQ;GAEpB,CAAA,GAAA,qBAAC,OAAD;IACE,aAAU;IACV,WAAW,GACT,iCACA,YAAY,OACd;IALF,UAAA;KAOG;KACA,eAAe,QACd,oBAAA,QAAY,aAAZ;MACE,aAAU;MACV,WAAW,GACT,0DACA,YAAY,WACd;MAEC,UAAA;KACqB,CAAA;KAE1B,oBAAA,QAAY,OAAZ;MACE,GAAK,WAAW,EAAE,UAAU,MAAM,IAAI,CAAC;MACvC,aAAU;MACV,MAAK;MACL,OAAO,WAAW,OAAO,KAAA;MACzB,WAAW,GACT,qDACA,YAAY,KACd;KACD,CAAA;IACE;GACU,CAAA,CAAA;;CACO,CAAA;AAE9B"}
|
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
import { Form as Form$1, form_d_exports } from "../../../core/form.mjs";
|
|
2
|
+
import "../../../core/index.mjs";
|
|
3
|
+
import { Layout } from "./context.mjs";
|
|
4
|
+
import { ComponentPropsWithRef } from "react";
|
|
5
|
+
//#region src/components/organisms/form/form.d.ts
|
|
6
|
+
type Values = Record<string, unknown>;
|
|
7
|
+
export interface Props<T extends Values = Values> extends Omit<ComponentPropsWithRef<typeof Form$1<T>>, 'className' | 'render'> {
|
|
8
|
+
layout?: Layout;
|
|
9
|
+
className?: string;
|
|
10
|
+
}
|
|
11
|
+
declare const Form: <T extends Values = Values>({ layout, className, dir, ...props }: Props<T>) => import("react").JSX.Element;
|
|
12
|
+
//#endregion
|
|
13
|
+
export { Form as default };
|
|
14
|
+
//# sourceMappingURL=form.d.mts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"form.d.mts","names":["form","form.Form"],"sources":["../../../../src/components/organisms/form/form.tsx"],"mappings":";;;;;KAUK,SAAS;iBAEG,MAAM,UAAU,SAAS,gBAAgB,KACxD,6BAA6BC,OAAU;EAGvC,SAAS;EACT;;cAGI,OAAQ,UAAU,SAAS,UAAQ,QAAA,WAAA,QAAA,SAKtC,MAAM,uBAAE,IAAA"}
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { cn } from "../../../utils.mjs";
|
|
3
|
+
import { useConfig } from "../../../providers/config/context.mjs";
|
|
4
|
+
import { Form as Form$1 } from "../../../core/form.mjs";
|
|
5
|
+
import { LayoutContext } from "./context.mjs";
|
|
6
|
+
import { jsx } from "react/jsx-runtime";
|
|
7
|
+
//#region src/components/organisms/form/form.tsx
|
|
8
|
+
const Form = ({ layout = "vertical", className, dir, ...props }) => {
|
|
9
|
+
const { direction } = useConfig();
|
|
10
|
+
return /* @__PURE__ */ jsx(LayoutContext.Provider, {
|
|
11
|
+
value: layout,
|
|
12
|
+
children: /* @__PURE__ */ jsx(Form$1, {
|
|
13
|
+
"data-slot": "form",
|
|
14
|
+
dir: dir ?? direction,
|
|
15
|
+
className: cn("@container/form flex w-full min-w-0 flex-col gap-5", className),
|
|
16
|
+
...props
|
|
17
|
+
})
|
|
18
|
+
});
|
|
19
|
+
};
|
|
20
|
+
//#endregion
|
|
21
|
+
export { Form as default };
|
|
22
|
+
|
|
23
|
+
//# sourceMappingURL=form.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"form.mjs","names":["form.Form"],"sources":["../../../../src/components/organisms/form/form.tsx"],"sourcesContent":["'use client';\n\nimport type { ComponentPropsWithRef } from 'react';\n\nimport { useConfig } from '@repo/ui/providers';\nimport { cn } from '@repo/ui/utils';\n\nimport { form } from '../../../core';\nimport { type Layout, LayoutContext } from './context';\n\ntype Values = Record<string, unknown>;\n\nexport interface Props<T extends Values = Values> extends Omit<\n ComponentPropsWithRef<typeof form.Form<T>>,\n 'className' | 'render'\n> {\n layout?: Layout;\n className?: string;\n}\n\nconst Form = <T extends Values = Values>({\n layout = 'vertical',\n className,\n dir,\n ...props\n}: Props<T>) => {\n const { direction } = useConfig();\n\n return (\n <LayoutContext.Provider value={layout}>\n <form.Form<T>\n data-slot=\"form\"\n dir={dir ?? direction}\n className={cn(\n '@container/form flex w-full min-w-0 flex-col gap-5',\n className, //\n )}\n {...props}\n />\n </LayoutContext.Provider>\n );\n};\n\nexport default Form;\n"],"mappings":";;;;;;;AAoBA,MAAM,QAAmC,EACvC,SAAS,YACT,WACA,KACA,GAAG,YACW;CACd,MAAM,EAAE,cAAc,UAAU;CAEhC,OACE,oBAAC,cAAc,UAAf;EAAwB,OAAO;EAC7B,UAAA,oBAACA,QAAD;GACE,aAAU;GACV,KAAK,OAAO;GACZ,WAAW,GACT,sDACA,SACF;GACA,GAAI;EACL,CAAA;CACqB,CAAA;AAE5B"}
|
|
@@ -1,9 +1,17 @@
|
|
|
1
|
-
import
|
|
2
|
-
import
|
|
3
|
-
import { Props as Props$2 } from "./
|
|
1
|
+
import Calendar, { Props } from "../../Calendar.mjs";
|
|
2
|
+
import { Props as Props$1 } from "./form/control.mjs";
|
|
3
|
+
import { Props as Props$2 } from "./form/field.mjs";
|
|
4
|
+
import { Props as Props$3 } from "./form/form.mjs";
|
|
5
|
+
import Form from "../../Form.mjs";
|
|
6
|
+
import Table, { Column, PaginationOptions, Props as Props$4 } from "../../Table.mjs";
|
|
7
|
+
import Tour, { Props as Props$5, Step } from "../../Tour.mjs";
|
|
8
|
+
import Tree, { Actions, ExpandInfo, LoadOptions, Node, Props as Props$6, ScrollOptions } from "../../Tree.mjs";
|
|
9
|
+
import TreeSelect, { Props as Props$7 } from "../../TreeSelect.mjs";
|
|
10
|
+
import Drawer, { Props as Props$8 } from "./drawer.mjs";
|
|
11
|
+
import { Props as Props$9 } from "./list/list.mjs";
|
|
4
12
|
import List from "./list/index.mjs";
|
|
5
|
-
import Modal, { Props as Props$
|
|
6
|
-
import { Props as Props$
|
|
13
|
+
import Modal, { Props as Props$10 } from "./modal.mjs";
|
|
14
|
+
import { Props as Props$11 } from "./swiper/swiper.mjs";
|
|
7
15
|
import Swiper from "./swiper/index.mjs";
|
|
8
16
|
import Toast, { ToastOptions as StaticProps } from "./toast.mjs";
|
|
9
|
-
export { Drawer, type Props$
|
|
17
|
+
export { Calendar, type Props as CalendarProps, Drawer, type Props$8 as DrawerProps, Form, type Props$1 as FormControlProps, type Props$2 as FormFieldProps, type Props$3 as FormProps, List, type Props$9 as ListProps, Modal, type Props$10 as ModalProps, Swiper, type Props$11 as SwiperProps, Table, type Column as TableColumn, type PaginationOptions as TablePaginationOptions, type Props$4 as TableProps, Toast, type StaticProps as ToastOptions, Tour, type Props$5 as TourProps, type Step as TourStep, Tree, type Actions as TreeActions, type ExpandInfo as TreeExpandInfo, type LoadOptions as TreeLoadOptions, type Node as TreeNode, type Props$6 as TreeProps, type ScrollOptions as TreeScrollOptions, TreeSelect, type Node as TreeSelectNode, type Props$7 as TreeSelectProps };
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.mts","names":[],"sources":["../../../../src/components/organisms/list/index.ts"],"mappings":";;;KAGK,
|
|
1
|
+
{"version":3,"file":"index.d.mts","names":["ListImpl"],"sources":["../../../../src/components/organisms/list/index.ts"],"mappings":";;;KAGK,uBAAuBA;EAAa,aAAa;;cAEhD,MAAmB"}
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import Skeleton from "../../atoms/skeleton/index.mjs";
|
|
2
2
|
import React from "react";
|
|
3
3
|
//#region src/components/organisms/list/list.d.ts
|
|
4
|
-
interface Props<T> extends Omit<React.ComponentPropsWithoutRef<'div'>, 'title'> {
|
|
4
|
+
export interface Props<T> extends Omit<React.ComponentPropsWithoutRef<'div'>, 'title'> {
|
|
5
5
|
loading?: boolean;
|
|
6
6
|
loaderProps?: React.ComponentProps<typeof Skeleton>;
|
|
7
7
|
loader?: React.ReactNode;
|
|
@@ -34,5 +34,5 @@ interface Props<T> extends Omit<React.ComponentPropsWithoutRef<'div'>, 'title'>
|
|
|
34
34
|
}
|
|
35
35
|
declare const List: <T>({ loading, loaderProps, loader, header, title, titleLevel, empty, scroll, data, className, classNames, renderItem, itemKey, ...props }: Props<T>) => React.JSX.Element;
|
|
36
36
|
//#endregion
|
|
37
|
-
export {
|
|
37
|
+
export { List as default };
|
|
38
38
|
//# sourceMappingURL=list.d.mts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"list.d.mts","names":[],"sources":["../../../../src/components/organisms/list/list.tsx"],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"list.d.mts","names":[],"sources":["../../../../src/components/organisms/list/list.tsx"],"mappings":";;;iBAWiB,MAAM,WAAW,KAChC,MAAM;EAGN;EACA,cAAc,MAAM,sBAAsB;EAC1C,SAAS,MAAM;EACf,QAAQ,MAAM;EACd;EACA,SAAS,MAAM;EACf,QAAQ,MAAM;EACd;IACE;IACA;IACA;;EAEF;IACE;IACA;IACA,SAAS,MAAM;IACf,UAAU;;;;;;;;IAQV;;EAEF,OAAO;EACP,cAAc,MAAM,GAAG,kBAAkB,MAAM;EAC/C,WAAW,MAAM,GAAG,kBAAkB,MAAM;;cAGxC,OAAQ,KAAI,SAAA,aAAA,QAAA,QAAA,OAAA,YAAA,OAAA,QAAA,MAAA,WAAA,YAAA,YAAA,YAAA,SAef,MAAM,OAAE,MAAA,IAAA"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import React from "react";
|
|
2
2
|
//#region src/components/organisms/modal.d.ts
|
|
3
|
-
interface Props {
|
|
3
|
+
export interface Props {
|
|
4
4
|
open?: boolean;
|
|
5
5
|
maskClosable?: boolean;
|
|
6
6
|
closable?: boolean | {
|
|
@@ -25,6 +25,8 @@ interface Props {
|
|
|
25
25
|
children?: React.ReactNode;
|
|
26
26
|
onOk?: () => void;
|
|
27
27
|
onCancel?: () => void;
|
|
28
|
+
/** Called after the opening or closing animations finish. */
|
|
29
|
+
onOpenChangeComplete?: (open: boolean) => void;
|
|
28
30
|
}
|
|
29
31
|
type ModalStatus = 'info' | 'success' | 'error' | 'warning';
|
|
30
32
|
interface StaticProps extends Props {
|
|
@@ -40,7 +42,8 @@ interface StaticProps extends Props {
|
|
|
40
42
|
container?: HTMLElement;
|
|
41
43
|
}
|
|
42
44
|
declare const Modal: {
|
|
43
|
-
({ open, maskClosable, closable, closeIcon, className, classNames, style, title, content, footer, container, children, okText, cancelText, onOk, onCancel, ...props }: Props): React.JSX.Element | null;
|
|
45
|
+
({ open, maskClosable, closable, closeIcon, className, classNames, style, title, content, footer, container, children, okText, cancelText, onOk, onCancel, onOpenChangeComplete, ...props }: Props): React.JSX.Element | null;
|
|
46
|
+
/** Immediately removes a modal without waiting for its closing animation. */
|
|
44
47
|
destroy: (id?: string) => void;
|
|
45
48
|
destroyAll(): void;
|
|
46
49
|
info(props: StaticProps): string | undefined;
|
|
@@ -50,5 +53,5 @@ declare const Modal: {
|
|
|
50
53
|
confirm(props: StaticProps): string | undefined;
|
|
51
54
|
};
|
|
52
55
|
//#endregion
|
|
53
|
-
export {
|
|
56
|
+
export { Modal as default };
|
|
54
57
|
//# sourceMappingURL=modal.d.mts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"modal.d.mts","names":[],"sources":["../../../src/components/organisms/modal.tsx"],"mappings":";;
|
|
1
|
+
{"version":3,"file":"modal.d.mts","names":[],"sources":["../../../src/components/organisms/modal.tsx"],"mappings":";;iBAiCiB;EACf;EACA;EACA;IAGM,YAAY,MAAM;IAClB;;EAEN,YAAY,MAAM;EAClB,QAAQ,MAAM;EACd,UAAU,MAAM;EAChB,SAAS,MAAM;EACf;EACA;IACE;IACA;IACA;IACA;;EAEF,QAAQ,MAAM;EACd;EACA;EACA,YAAY;EACZ,WAAW,MAAM;EACjB;EACA;;EAEA,wBAAwB;;KAGrB;UAEK,oBAAoB;EAC5B,SAAS;;;;;;EAMT;EACA;EACA,OAAO,MAAM;EACb,YAAY;;cAGR;KAmBH,MAAA,cAAA,UAAA,WAAA,WAAA,YAAA,OAAA,OAAA,SAAA,QAAA,WAAA,UAAA,QAAA,YAAA,MAAA,UAAA,yBAAA,SAAA,QAAK,MAAA,IAAA;;;;EA2Oa,KAAA,OAAA;EAEG,QAAA,OAAA;EAEF,MAAA,OAAA;EAEE,QAAA,OAAA;EAIA,QAAA,OAAA"}
|