@jbpark/ui-kit 10.2.0 → 10.4.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/README.ko.md +97 -76
- package/README.md +91 -70
- package/dist/Alert.d.mts +2 -2
- package/dist/Alert.d.mts.map +1 -1
- package/dist/Alert.mjs +1 -1
- 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 +2 -2
- package/dist/Avatar.d.mts.map +1 -1
- package/dist/Avatar.mjs +2 -2
- package/dist/Badge.d.mts +2 -2
- package/dist/Badge.d.mts.map +1 -1
- package/dist/Breadcrumb.d.mts +3 -3
- package/dist/Breadcrumb.d.mts.map +1 -1
- package/dist/Breadcrumb.mjs +2 -2
- 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/Checkbox.d.mts +10 -0
- package/dist/Checkbox.d.mts.map +1 -0
- package/dist/Checkbox.mjs +9 -0
- package/dist/Checkbox.mjs.map +1 -0
- package/dist/CodeEditor.d.mts +10 -4
- package/dist/CodeEditor.d.mts.map +1 -1
- package/dist/CodeEditor.mjs +9 -4
- package/dist/CodeEditor.mjs.map +1 -1
- package/dist/{components/molecules/collapse.d.mts → Collapse.d.mts} +3 -3
- package/dist/Collapse.d.mts.map +1 -0
- package/dist/{components/molecules/collapse.mjs → Collapse.mjs} +3 -3
- package/dist/Collapse.mjs.map +1 -0
- package/dist/{components/atoms/color-picker.d.mts → ColorPicker.d.mts} +3 -3
- package/dist/ColorPicker.d.mts.map +1 -0
- package/dist/{components/atoms/color-picker.mjs → ColorPicker.mjs} +3 -3
- package/dist/ColorPicker.mjs.map +1 -0
- package/dist/{components/templates/container.d.mts → Container.d.mts} +3 -3
- package/dist/Container.d.mts.map +1 -0
- package/dist/{components/templates/container.mjs → Container.mjs} +2 -2
- package/dist/Container.mjs.map +1 -0
- 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/{components/atoms/date-picker.d.mts → DatePicker.d.mts} +6 -2
- package/dist/DatePicker.d.mts.map +1 -0
- package/dist/DatePicker.mjs +88 -0
- package/dist/DatePicker.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/{components/organisms/drawer.d.mts → Drawer.d.mts} +3 -3
- package/dist/Drawer.d.mts.map +1 -0
- package/dist/{components/organisms/drawer.mjs → Drawer.mjs} +6 -6
- package/dist/Drawer.mjs.map +1 -0
- package/dist/{components/molecules/dropdown.d.mts → Dropdown.d.mts} +4 -4
- package/dist/Dropdown.d.mts.map +1 -0
- package/dist/{components/molecules/dropdown.mjs → Dropdown.mjs} +4 -4
- package/dist/Dropdown.mjs.map +1 -0
- package/dist/{components/templates/empty.d.mts → Empty.d.mts} +4 -4
- package/dist/Empty.d.mts.map +1 -0
- package/dist/{components/templates/empty.mjs → Empty.mjs} +4 -4
- package/dist/Empty.mjs.map +1 -0
- package/dist/FloatButton.d.mts +10 -0
- package/dist/FloatButton.d.mts.map +1 -0
- package/dist/FloatButton.mjs +9 -0
- package/dist/FloatButton.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/Input.d.mts +16 -0
- package/dist/Input.d.mts.map +1 -0
- package/dist/Input.mjs +15 -0
- package/dist/Input.mjs.map +1 -0
- package/dist/Layout.d.mts.map +1 -1
- package/dist/{components/organisms/list/index.d.mts → List.d.mts} +3 -3
- package/dist/List.d.mts.map +1 -0
- package/dist/List.mjs +9 -0
- package/dist/List.mjs.map +1 -0
- package/dist/Marquees.d.mts +10 -0
- package/dist/Marquees.d.mts.map +1 -0
- package/dist/Marquees.mjs +9 -0
- package/dist/Marquees.mjs.map +1 -0
- package/dist/Mentions.d.mts +34 -0
- package/dist/Mentions.d.mts.map +1 -0
- package/dist/Mentions.mjs +208 -0
- package/dist/Mentions.mjs.map +1 -0
- package/dist/Menu.mjs +1 -2
- package/dist/{components/organisms/modal.d.mts → Modal.d.mts} +7 -4
- package/dist/Modal.d.mts.map +1 -0
- package/dist/{components/organisms/modal.mjs → Modal.mjs} +30 -23
- package/dist/Modal.mjs.map +1 -0
- package/dist/{components/templates/page-header.d.mts → PageHeader.d.mts} +3 -3
- package/dist/PageHeader.d.mts.map +1 -0
- package/dist/{components/templates/page-header.mjs → PageHeader.mjs} +5 -5
- package/dist/PageHeader.mjs.map +1 -0
- package/dist/Pagination.d.mts +2 -2
- package/dist/Pagination.d.mts.map +1 -1
- package/dist/Pagination.mjs +3 -3
- 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/{components/atoms/popover.d.mts → Popover.d.mts} +3 -3
- package/dist/Popover.d.mts.map +1 -0
- package/dist/{components/atoms/popover.mjs → Popover.mjs} +4 -4
- package/dist/Popover.mjs.map +1 -0
- package/dist/{components/atoms/progress.d.mts → Progress.d.mts} +3 -3
- package/dist/Progress.d.mts.map +1 -0
- package/dist/{components/atoms/progress.mjs → Progress.mjs} +3 -3
- package/dist/Progress.mjs.map +1 -0
- package/dist/Radio.d.mts +10 -0
- package/dist/Radio.d.mts.map +1 -0
- package/dist/Radio.mjs +9 -0
- package/dist/Radio.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/{components/templates/result.d.mts → Result.d.mts} +3 -3
- package/dist/Result.d.mts.map +1 -0
- package/dist/{components/templates/result.mjs → Result.mjs} +3 -3
- package/dist/Result.mjs.map +1 -0
- package/dist/Reveals.d.mts.map +1 -1
- package/dist/RichTextEditor.d.mts +3 -0
- package/dist/RichTextEditor.mjs +1 -0
- 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 +3 -3
- package/dist/Segmented.d.mts.map +1 -1
- package/dist/{components/atoms/select.d.mts → Select.d.mts} +7 -7
- package/dist/Select.d.mts.map +1 -0
- package/dist/{components/atoms/select.mjs → Select.mjs} +5 -5
- package/dist/Select.mjs.map +1 -0
- package/dist/Skeleton.d.mts +12 -0
- package/dist/Skeleton.d.mts.map +1 -0
- package/dist/Skeleton.mjs +11 -0
- package/dist/Skeleton.mjs.map +1 -0
- package/dist/Slider.d.mts +2 -0
- package/dist/{components/atoms/slider/index.mjs → Slider.mjs} +2 -2
- package/dist/Slider.mjs.map +1 -0
- package/dist/Space.d.mts +5 -4
- package/dist/Space.d.mts.map +1 -1
- package/dist/Space.mjs +13 -4
- package/dist/Space.mjs.map +1 -1
- package/dist/{components/atoms/spin.d.mts → Spin.d.mts} +3 -3
- package/dist/Spin.d.mts.map +1 -0
- package/dist/{components/atoms/spin.mjs → Spin.mjs} +4 -4
- package/dist/Spin.mjs.map +1 -0
- package/dist/Splitter.d.mts +10 -0
- package/dist/Splitter.d.mts.map +1 -0
- package/dist/Splitter.mjs +9 -0
- package/dist/Splitter.mjs.map +1 -0
- 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 +3 -3
- package/dist/Steps.d.mts.map +1 -1
- package/dist/Steps.mjs +1 -1
- package/dist/Swiper.d.mts +10 -0
- package/dist/Swiper.d.mts.map +1 -0
- package/dist/Swiper.mjs +9 -0
- package/dist/Swiper.mjs.map +1 -0
- package/dist/{components/atoms/switch.d.mts → Switch.d.mts} +4 -4
- package/dist/Switch.d.mts.map +1 -0
- package/dist/{components/atoms/switch.mjs → Switch.mjs} +4 -4
- package/dist/Switch.mjs.map +1 -0
- package/dist/Table.d.mts +4 -4
- package/dist/Table.d.mts.map +1 -1
- package/dist/Table.mjs +2 -2
- package/dist/Table.mjs.map +1 -1
- package/dist/{components/molecules/tabs.d.mts → Tabs.d.mts} +6 -6
- package/dist/Tabs.d.mts.map +1 -0
- package/dist/{components/molecules/tabs.mjs → Tabs.mjs} +3 -3
- package/dist/Tabs.mjs.map +1 -0
- 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/{components/organisms/toast.d.mts → Toast.d.mts} +14 -4
- package/dist/Toast.d.mts.map +1 -0
- package/dist/Toast.mjs +198 -0
- package/dist/Toast.mjs.map +1 -0
- package/dist/ToggleGroup.d.mts +28 -0
- package/dist/ToggleGroup.d.mts.map +1 -0
- package/dist/ToggleGroup.mjs +58 -0
- package/dist/ToggleGroup.mjs.map +1 -0
- package/dist/{components/atoms/tooltip.d.mts → Tooltip.d.mts} +3 -3
- package/dist/Tooltip.d.mts.map +1 -0
- package/dist/{components/atoms/tooltip.mjs → Tooltip.mjs} +2 -2
- package/dist/Tooltip.mjs.map +1 -0
- package/dist/Tour.d.mts +37 -0
- package/dist/Tour.d.mts.map +1 -0
- package/dist/Tour.mjs +175 -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/molecules/upload.d.mts → Upload.d.mts} +4 -4
- package/dist/Upload.d.mts.map +1 -0
- package/dist/{components/molecules/upload.mjs → Upload.mjs} +7 -7
- package/dist/Upload.mjs.map +1 -0
- 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/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/index.d.mts +37 -23
- package/dist/components/atoms/input/input.d.mts +2 -1
- package/dist/components/atoms/input/input.d.mts.map +1 -1
- package/dist/components/atoms/input/input.mjs.map +1 -1
- package/dist/components/atoms/input/number.d.mts +2 -2
- package/dist/components/atoms/input/number.d.mts.map +1 -1
- package/dist/components/atoms/input/number.mjs +1 -1
- 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 -2
- package/dist/components/atoms/input/search.d.mts.map +1 -1
- package/dist/components/atoms/input/search.mjs +2 -2
- 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/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/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 +2 -2
- package/dist/components/atoms/rich-text-editor/rich-text-editor.d.mts.map +1 -1
- package/dist/components/atoms/rich-text-editor/toolbar-presets.mjs +5 -5
- 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 +5 -4
- 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 +5 -4
- package/dist/components/atoms/select-searchable.mjs.map +1 -1
- package/dist/components/atoms/skeleton/button.d.mts.map +1 -1
- package/dist/components/atoms/skeleton/node.d.mts.map +1 -1
- package/dist/components/atoms/skeleton/skeleton.d.mts +2 -2
- package/dist/components/atoms/skeleton/skeleton.d.mts.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/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/index.d.mts +25 -16
- 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/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/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/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/imperative-stack.mjs +16 -1
- package/dist/components/organisms/imperative-stack.mjs.map +1 -1
- package/dist/components/organisms/index.d.mts +17 -9
- package/dist/components/organisms/list/list.d.mts +3 -3
- package/dist/components/organisms/list/list.d.mts.map +1 -1
- package/dist/components/organisms/list/list.mjs +1 -1
- package/dist/components/organisms/swiper/swiper.d.mts +8 -2
- package/dist/components/organisms/swiper/swiper.d.mts.map +1 -1
- package/dist/components/organisms/swiper/swiper.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/index.d.mts +11 -12
- 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 +5 -7
- package/dist/components/templates/layout/sider.mjs.map +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 +5 -3
- 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 +87 -57
- package/dist/index.mjs +53 -33
- 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 +710 -332
- package/dist/utils.d.mts +2 -3
- package/dist/utils.d.mts.map +1 -1
- package/package.json +277 -26
- package/dist/components/atoms/checkbox/index.d.mts +0 -10
- package/dist/components/atoms/checkbox/index.d.mts.map +0 -1
- package/dist/components/atoms/checkbox/index.mjs +0 -9
- package/dist/components/atoms/checkbox/index.mjs.map +0 -1
- package/dist/components/atoms/color-picker.d.mts.map +0 -1
- package/dist/components/atoms/color-picker.mjs.map +0 -1
- package/dist/components/atoms/date-picker.d.mts.map +0 -1
- package/dist/components/atoms/date-picker.mjs +0 -44
- package/dist/components/atoms/date-picker.mjs.map +0 -1
- package/dist/components/atoms/float-button/index.d.mts +0 -10
- package/dist/components/atoms/float-button/index.d.mts.map +0 -1
- package/dist/components/atoms/float-button/index.mjs +0 -9
- package/dist/components/atoms/float-button/index.mjs.map +0 -1
- package/dist/components/atoms/input/index.d.mts +0 -14
- package/dist/components/atoms/input/index.d.mts.map +0 -1
- package/dist/components/atoms/input/index.mjs +0 -13
- package/dist/components/atoms/input/index.mjs.map +0 -1
- package/dist/components/atoms/popover.d.mts.map +0 -1
- package/dist/components/atoms/popover.mjs.map +0 -1
- package/dist/components/atoms/progress.d.mts.map +0 -1
- package/dist/components/atoms/progress.mjs.map +0 -1
- package/dist/components/atoms/radio/index.d.mts +0 -10
- package/dist/components/atoms/radio/index.d.mts.map +0 -1
- package/dist/components/atoms/radio/index.mjs +0 -9
- package/dist/components/atoms/radio/index.mjs.map +0 -1
- package/dist/components/atoms/rich-text-editor/index.d.mts +0 -3
- package/dist/components/atoms/select.d.mts.map +0 -1
- package/dist/components/atoms/select.mjs.map +0 -1
- package/dist/components/atoms/skeleton/index.d.mts +0 -12
- package/dist/components/atoms/skeleton/index.d.mts.map +0 -1
- package/dist/components/atoms/skeleton/index.mjs +0 -11
- package/dist/components/atoms/skeleton/index.mjs.map +0 -1
- package/dist/components/atoms/slider/index.mjs.map +0 -1
- package/dist/components/atoms/spin.d.mts.map +0 -1
- package/dist/components/atoms/spin.mjs.map +0 -1
- package/dist/components/atoms/switch.d.mts.map +0 -1
- package/dist/components/atoms/switch.mjs.map +0 -1
- package/dist/components/atoms/tooltip.d.mts.map +0 -1
- package/dist/components/atoms/tooltip.mjs.map +0 -1
- package/dist/components/molecules/collapse.d.mts.map +0 -1
- package/dist/components/molecules/collapse.mjs.map +0 -1
- package/dist/components/molecules/dropdown.d.mts.map +0 -1
- package/dist/components/molecules/dropdown.mjs.map +0 -1
- package/dist/components/molecules/marquees/index.d.mts +0 -10
- package/dist/components/molecules/marquees/index.d.mts.map +0 -1
- package/dist/components/molecules/marquees/index.mjs +0 -9
- package/dist/components/molecules/marquees/index.mjs.map +0 -1
- 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
- package/dist/components/molecules/splitter/index.d.mts +0 -10
- package/dist/components/molecules/splitter/index.d.mts.map +0 -1
- package/dist/components/molecules/splitter/index.mjs +0 -9
- package/dist/components/molecules/splitter/index.mjs.map +0 -1
- package/dist/components/molecules/tabs.d.mts.map +0 -1
- package/dist/components/molecules/tabs.mjs.map +0 -1
- package/dist/components/molecules/upload.d.mts.map +0 -1
- package/dist/components/molecules/upload.mjs.map +0 -1
- package/dist/components/organisms/drawer.d.mts.map +0 -1
- package/dist/components/organisms/drawer.mjs.map +0 -1
- package/dist/components/organisms/list/index.d.mts.map +0 -1
- package/dist/components/organisms/list/index.mjs +0 -9
- package/dist/components/organisms/list/index.mjs.map +0 -1
- package/dist/components/organisms/modal.d.mts.map +0 -1
- package/dist/components/organisms/modal.mjs.map +0 -1
- package/dist/components/organisms/swiper/index.d.mts +0 -10
- package/dist/components/organisms/swiper/index.d.mts.map +0 -1
- package/dist/components/organisms/swiper/index.mjs +0 -9
- package/dist/components/organisms/swiper/index.mjs.map +0 -1
- package/dist/components/organisms/toast.d.mts.map +0 -1
- package/dist/components/organisms/toast.mjs +0 -126
- package/dist/components/organisms/toast.mjs.map +0 -1
- package/dist/components/templates/container.d.mts.map +0 -1
- package/dist/components/templates/container.mjs.map +0 -1
- package/dist/components/templates/empty.d.mts.map +0 -1
- package/dist/components/templates/empty.mjs.map +0 -1
- package/dist/components/templates/page-header.d.mts.map +0 -1
- package/dist/components/templates/page-header.mjs.map +0 -1
- package/dist/components/templates/result.d.mts.map +0 -1
- package/dist/components/templates/result.mjs.map +0 -1
package/dist/Table.mjs
CHANGED
|
@@ -1,9 +1,9 @@
|
|
|
1
1
|
"use client";
|
|
2
2
|
import { cn } from "./utils.mjs";
|
|
3
3
|
import { useConfig } from "./providers/config/context.mjs";
|
|
4
|
-
import Skeleton from "./
|
|
4
|
+
import Skeleton from "./Skeleton.mjs";
|
|
5
5
|
import Pagination from "./Pagination.mjs";
|
|
6
|
-
import Empty from "./
|
|
6
|
+
import Empty from "./Empty.mjs";
|
|
7
7
|
import { useState } from "react";
|
|
8
8
|
import { Fragment as Fragment$1, jsx, jsxs } from "react/jsx-runtime";
|
|
9
9
|
//#region src/components/organisms/table.tsx
|
package/dist/Table.mjs.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Table.mjs","names":[],"sources":["../src/components/organisms/table.tsx"],"sourcesContent":["'use client';\n\nimport { useState } from 'react';\n\nimport { useConfig } from '@repo/ui/providers';\nimport { cn } from '@repo/ui/utils';\n\nimport Skeleton from '../atoms/skeleton';\nimport Pagination, {\n type Props as PaginationProps,\n} from '../molecules/pagination';\nimport Empty from '../templates/empty';\n\nexport type PaginationOptions = Omit<PaginationProps, 'total'> &\n ({ mode?: 'client'; total?: never } | { mode: 'server'; total: number });\n\nexport interface Column<T> {\n key: React.Key;\n title: React.ReactNode;\n /** Field displayed when render is omitted. */\n dataIndex?: keyof T;\n render?: (record: T, index: number) => React.ReactNode;\n align?: 'left' | 'center' | 'right';\n width?: string | number;\n className?: string;\n headerClassName?: string;\n}\n\nexport interface Props<T> extends Omit<\n React.ComponentPropsWithoutRef<'table'>,\n 'children'\n> {\n columns: Column<T>[];\n data?: T[];\n /** Use a stable key when rows may be reordered or paged. */\n rowKey?: (record: T, index: number) => React.Key;\n caption?: React.ReactNode;\n loading?: boolean;\n empty?: React.ReactNode;\n size?: 'small' | 'middle' | 'large';\n bordered?: boolean;\n striped?: boolean;\n hoverable?: boolean;\n /** true paginates data locally; server mode expects current-page data. */\n pagination?: boolean | PaginationOptions;\n classNames?: {\n container?: string;\n header?: string;\n body?: string;\n row?: string;\n cell?: string;\n empty?: string;\n pagination?: string;\n };\n}\n\nconst clampPage = (page: number, pageCount: number) =>\n Math.min(\n Math.max(1, Number.isFinite(page) ? Math.floor(page) : 1),\n Math.max(1, pageCount),\n );\n\nconst normalizePageSize = (value: number) =>\n Number.isFinite(value) && value >= 1 ? Math.floor(value) : 10;\n\nconst Table = <T,>({\n columns,\n data = [],\n rowKey,\n loading = false,\n empty,\n size,\n bordered = false,\n striped = false,\n hoverable = true,\n pagination = false,\n caption,\n className,\n classNames,\n ...props\n}: Props<T>) => {\n const { componentSize } = useConfig();\n const paginationOptions: PaginationOptions =\n typeof pagination === 'object' ? pagination : {};\n const {\n mode = 'client',\n total: serverTotal,\n page: controlledPage,\n defaultPage = 1,\n pageSize: controlledPageSize,\n defaultPageSize = 10,\n onChange,\n onPageSizeChange,\n ...paginationProps\n } = paginationOptions;\n const [internal, setInternal] = useState(() => ({\n page: defaultPage,\n pageSize: normalizePageSize(defaultPageSize),\n pageCount: 0,\n }));\n const pageSize = normalizePageSize(controlledPageSize ?? internal.pageSize);\n const total = mode === 'server' ? (serverTotal ?? 0) : data.length;\n const pageCount = Math.ceil(total / pageSize);\n\n if (\n pagination &&\n controlledPage === undefined &&\n internal.pageCount !== pageCount\n ) {\n setInternal(current => ({\n ...current,\n page: clampPage(current.page, pageCount),\n pageCount,\n }));\n }\n\n const page = clampPage(controlledPage ?? internal.page, pageCount);\n const visibleData =\n pagination && mode === 'client'\n ? data.slice((page - 1) * pageSize, page * pageSize)\n : data;\n const resolvedSize = size ?? componentSize ?? 'middle';\n const cellPadding = {\n small: 'px-3 py-2',\n middle: 'px-4 py-3',\n large: 'px-5 py-4',\n }[resolvedSize];\n\n const handlePageChange = (next: number) => {\n if (controlledPage === undefined) {\n setInternal(current => ({ ...current, page: next }));\n }\n\n onChange?.(next);\n };\n\n const handlePageSizeChange = (next: number) => {\n if (controlledPageSize === undefined || controlledPage === undefined) {\n setInternal(current => ({\n ...current,\n page: controlledPage === undefined ? 1 : current.page,\n pageSize: controlledPageSize === undefined ? next : current.pageSize,\n pageCount: Math.ceil(total / next),\n }));\n }\n\n onPageSizeChange?.(next);\n };\n\n return (\n <>\n <div\n data-slot=\"table-container\"\n className={cn(\n 'w-full overflow-x-auto',\n bordered && 'rounded-md border',\n classNames?.container,\n //\n )}\n >\n <table\n {...props}\n data-slot=\"table\"\n aria-busy={loading || undefined}\n className={cn(\n 'w-full min-w-max border-collapse text-sm',\n className,\n //\n )}\n >\n {caption && <caption className=\"mb-2 text-start\">{caption}</caption>}\n <thead\n data-slot=\"table-header\"\n className={cn(\n 'bg-muted/50 border-b',\n classNames?.header,\n //\n )}\n >\n <tr>\n {columns.map(column => (\n <th\n key={column.key}\n scope=\"col\"\n style={{ width: column.width }}\n className={cn(\n 'text-foreground font-medium',\n cellPadding,\n column.align === 'center' && 'text-center',\n column.align === 'right' && 'text-right',\n column.align === undefined && 'text-start',\n bordered && 'border-e last:border-e-0',\n classNames?.cell,\n column.headerClassName,\n //\n )}\n >\n {column.title}\n </th>\n ))}\n </tr>\n </thead>\n <tbody data-slot=\"table-body\" className={classNames?.body}>\n {loading ? (\n <tr>\n <td\n colSpan={Math.max(columns.length, 1)}\n className={cellPadding}\n >\n <Skeleton count={3} className=\"py-2\" />\n </td>\n </tr>\n ) : visibleData.length === 0 ? (\n <tr>\n <td\n colSpan={Math.max(columns.length, 1)}\n className={cn(cellPadding, classNames?.empty)}\n >\n {empty ?? <Empty />}\n </td>\n </tr>\n ) : (\n visibleData.map((record, index) => (\n <tr\n key={rowKey?.(record, index) ?? index}\n data-slot=\"table-row\"\n className={cn(\n 'border-b last:border-b-0',\n striped && 'even:bg-muted/30',\n hoverable && 'hover:bg-muted/50',\n classNames?.row,\n //\n )}\n >\n {columns.map(column => {\n const value =\n column.dataIndex === undefined\n ? undefined\n : record[column.dataIndex];\n\n return (\n <td\n key={column.key}\n data-slot=\"table-cell\"\n className={cn(\n cellPadding,\n column.align === 'center' && 'text-center',\n column.align === 'right' && 'text-right',\n bordered && 'border-e last:border-e-0',\n classNames?.cell,\n column.className,\n //\n )}\n >\n {column.render\n ? column.render(record, index)\n : value == null\n ? null\n : String(value)}\n </td>\n );\n })}\n </tr>\n ))\n )}\n </tbody>\n </table>\n </div>\n {pagination && (\n <div\n data-slot=\"table-pagination\"\n className={cn(\n 'mt-4 flex justify-end',\n classNames?.pagination,\n //\n )}\n >\n <Pagination\n {...paginationProps}\n total={total}\n page={page}\n pageSize={pageSize}\n onChange={handlePageChange}\n onPageSizeChange={handlePageSizeChange}\n />\n </div>\n )}\n </>\n );\n};\n\nexport default Table;\n"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"Table.mjs","names":[],"sources":["../src/components/organisms/table.tsx"],"sourcesContent":["'use client';\n\nimport { useState } from 'react';\n\nimport { useConfig } from '@repo/ui/providers';\nimport { cn } from '@repo/ui/utils';\n\nimport Skeleton from '../atoms/skeleton';\nimport Empty from '../molecules/empty';\nimport Pagination, {\n type Props as PaginationProps,\n} from '../molecules/pagination';\n\nexport type PaginationOptions = Omit<PaginationProps, 'total'> &\n ({ mode?: 'client'; total?: never } | { mode: 'server'; total: number });\n\nexport interface Column<T> {\n key: React.Key;\n title: React.ReactNode;\n /** Field displayed when render is omitted. */\n dataIndex?: keyof T;\n render?: (record: T, index: number) => React.ReactNode;\n align?: 'left' | 'center' | 'right';\n width?: string | number;\n className?: string;\n headerClassName?: string;\n}\n\nexport interface Props<T> extends Omit<\n React.ComponentPropsWithoutRef<'table'>,\n 'children'\n> {\n columns: Column<T>[];\n data?: T[];\n /** Use a stable key when rows may be reordered or paged. */\n rowKey?: (record: T, index: number) => React.Key;\n caption?: React.ReactNode;\n loading?: boolean;\n empty?: React.ReactNode;\n size?: 'small' | 'middle' | 'large';\n bordered?: boolean;\n striped?: boolean;\n hoverable?: boolean;\n /** true paginates data locally; server mode expects current-page data. */\n pagination?: boolean | PaginationOptions;\n classNames?: {\n container?: string;\n header?: string;\n body?: string;\n row?: string;\n cell?: string;\n empty?: string;\n pagination?: string;\n };\n}\n\nconst clampPage = (page: number, pageCount: number) =>\n Math.min(\n Math.max(1, Number.isFinite(page) ? Math.floor(page) : 1),\n Math.max(1, pageCount),\n );\n\nconst normalizePageSize = (value: number) =>\n Number.isFinite(value) && value >= 1 ? Math.floor(value) : 10;\n\nconst Table = <T,>({\n columns,\n data = [],\n rowKey,\n loading = false,\n empty,\n size,\n bordered = false,\n striped = false,\n hoverable = true,\n pagination = false,\n caption,\n className,\n classNames,\n ...props\n}: Props<T>) => {\n const { componentSize } = useConfig();\n const paginationOptions: PaginationOptions =\n typeof pagination === 'object' ? pagination : {};\n const {\n mode = 'client',\n total: serverTotal,\n page: controlledPage,\n defaultPage = 1,\n pageSize: controlledPageSize,\n defaultPageSize = 10,\n onChange,\n onPageSizeChange,\n ...paginationProps\n } = paginationOptions;\n const [internal, setInternal] = useState(() => ({\n page: defaultPage,\n pageSize: normalizePageSize(defaultPageSize),\n pageCount: 0,\n }));\n const pageSize = normalizePageSize(controlledPageSize ?? internal.pageSize);\n const total = mode === 'server' ? (serverTotal ?? 0) : data.length;\n const pageCount = Math.ceil(total / pageSize);\n\n if (\n pagination &&\n controlledPage === undefined &&\n internal.pageCount !== pageCount\n ) {\n setInternal(current => ({\n ...current,\n page: clampPage(current.page, pageCount),\n pageCount,\n }));\n }\n\n const page = clampPage(controlledPage ?? internal.page, pageCount);\n const visibleData =\n pagination && mode === 'client'\n ? data.slice((page - 1) * pageSize, page * pageSize)\n : data;\n const resolvedSize = size ?? componentSize ?? 'middle';\n const cellPadding = {\n small: 'px-3 py-2',\n middle: 'px-4 py-3',\n large: 'px-5 py-4',\n }[resolvedSize];\n\n const handlePageChange = (next: number) => {\n if (controlledPage === undefined) {\n setInternal(current => ({ ...current, page: next }));\n }\n\n onChange?.(next);\n };\n\n const handlePageSizeChange = (next: number) => {\n if (controlledPageSize === undefined || controlledPage === undefined) {\n setInternal(current => ({\n ...current,\n page: controlledPage === undefined ? 1 : current.page,\n pageSize: controlledPageSize === undefined ? next : current.pageSize,\n pageCount: Math.ceil(total / next),\n }));\n }\n\n onPageSizeChange?.(next);\n };\n\n return (\n <>\n <div\n data-slot=\"table-container\"\n className={cn(\n 'w-full overflow-x-auto',\n bordered && 'rounded-md border',\n classNames?.container,\n //\n )}\n >\n <table\n {...props}\n data-slot=\"table\"\n aria-busy={loading || undefined}\n className={cn(\n 'w-full min-w-max border-collapse text-sm',\n className,\n //\n )}\n >\n {caption && <caption className=\"mb-2 text-start\">{caption}</caption>}\n <thead\n data-slot=\"table-header\"\n className={cn(\n 'bg-muted/50 border-b',\n classNames?.header,\n //\n )}\n >\n <tr>\n {columns.map(column => (\n <th\n key={column.key}\n scope=\"col\"\n style={{ width: column.width }}\n className={cn(\n 'text-foreground font-medium',\n cellPadding,\n column.align === 'center' && 'text-center',\n column.align === 'right' && 'text-right',\n column.align === undefined && 'text-start',\n bordered && 'border-e last:border-e-0',\n classNames?.cell,\n column.headerClassName,\n //\n )}\n >\n {column.title}\n </th>\n ))}\n </tr>\n </thead>\n <tbody data-slot=\"table-body\" className={classNames?.body}>\n {loading ? (\n <tr>\n <td\n colSpan={Math.max(columns.length, 1)}\n className={cellPadding}\n >\n <Skeleton count={3} className=\"py-2\" />\n </td>\n </tr>\n ) : visibleData.length === 0 ? (\n <tr>\n <td\n colSpan={Math.max(columns.length, 1)}\n className={cn(cellPadding, classNames?.empty)}\n >\n {empty ?? <Empty />}\n </td>\n </tr>\n ) : (\n visibleData.map((record, index) => (\n <tr\n key={rowKey?.(record, index) ?? index}\n data-slot=\"table-row\"\n className={cn(\n 'border-b last:border-b-0',\n striped && 'even:bg-muted/30',\n hoverable && 'hover:bg-muted/50',\n classNames?.row,\n //\n )}\n >\n {columns.map(column => {\n const value =\n column.dataIndex === undefined\n ? undefined\n : record[column.dataIndex];\n\n return (\n <td\n key={column.key}\n data-slot=\"table-cell\"\n className={cn(\n cellPadding,\n column.align === 'center' && 'text-center',\n column.align === 'right' && 'text-right',\n bordered && 'border-e last:border-e-0',\n classNames?.cell,\n column.className,\n //\n )}\n >\n {column.render\n ? column.render(record, index)\n : value == null\n ? null\n : String(value)}\n </td>\n );\n })}\n </tr>\n ))\n )}\n </tbody>\n </table>\n </div>\n {pagination && (\n <div\n data-slot=\"table-pagination\"\n className={cn(\n 'mt-4 flex justify-end',\n classNames?.pagination,\n //\n )}\n >\n <Pagination\n {...paginationProps}\n total={total}\n page={page}\n pageSize={pageSize}\n onChange={handlePageChange}\n onPageSizeChange={handlePageSizeChange}\n />\n </div>\n )}\n </>\n );\n};\n\nexport default Table;\n"],"mappings":";;;;;;;;;AAwDA,MAAM,aAAa,MAAc,cAC/B,KAAK,IACH,KAAK,IAAI,GAAG,OAAO,SAAS,IAAI,IAAI,KAAK,MAAM,IAAI,IAAI,CAAC,GACxD,KAAK,IAAI,GAAG,SAAS,CACvB;AAEF,MAAM,qBAAqB,UACzB,OAAO,SAAS,KAAK,KAAK,SAAS,IAAI,KAAK,MAAM,KAAK,IAAI;AAE7D,MAAM,SAAa,EACjB,SACA,OAAO,CAAC,GACR,QACA,UAAU,OACV,OACA,MACA,WAAW,OACX,UAAU,OACV,YAAY,MACZ,aAAa,OACb,SACA,WACA,YACA,GAAG,YACW;CACd,MAAM,EAAE,kBAAkB,UAAU;CAGpC,MAAM,EACJ,OAAO,UACP,OAAO,aACP,MAAM,gBACN,cAAc,GACd,UAAU,oBACV,kBAAkB,IAClB,UACA,kBACA,GAAG,oBAVH,OAAO,eAAe,WAAW,aAAa,CAAC;CAYjD,MAAM,CAAC,UAAU,eAAe,gBAAgB;EAC9C,MAAM;EACN,UAAU,kBAAkB,eAAe;EAC3C,WAAW;CACb,EAAE;CACF,MAAM,WAAW,kBAAkB,sBAAsB,SAAS,QAAQ;CAC1E,MAAM,QAAQ,SAAS,WAAY,eAAe,IAAK,KAAK;CAC5D,MAAM,YAAY,KAAK,KAAK,QAAQ,QAAQ;CAE5C,IACE,cACA,mBAAmB,KAAA,KACnB,SAAS,cAAc,WAEvB,aAAY,aAAY;EACtB,GAAG;EACH,MAAM,UAAU,QAAQ,MAAM,SAAS;EACvC;CACF,EAAE;CAGJ,MAAM,OAAO,UAAU,kBAAkB,SAAS,MAAM,SAAS;CACjE,MAAM,cACJ,cAAc,SAAS,WACnB,KAAK,OAAO,OAAO,KAAK,UAAU,OAAO,QAAQ,IACjD;CAEN,MAAM,cAAc;EAClB,OAAO;EACP,QAAQ;EACR,OAAO;CACT,EALqB,QAAQ,iBAAiB;CAO9C,MAAM,oBAAoB,SAAiB;EACzC,IAAI,mBAAmB,KAAA,GACrB,aAAY,aAAY;GAAE,GAAG;GAAS,MAAM;EAAK,EAAE;EAGrD,WAAW,IAAI;CACjB;CAEA,MAAM,wBAAwB,SAAiB;EAC7C,IAAI,uBAAuB,KAAA,KAAa,mBAAmB,KAAA,GACzD,aAAY,aAAY;GACtB,GAAG;GACH,MAAM,mBAAmB,KAAA,IAAY,IAAI,QAAQ;GACjD,UAAU,uBAAuB,KAAA,IAAY,OAAO,QAAQ;GAC5D,WAAW,KAAK,KAAK,QAAQ,IAAI;EACnC,EAAE;EAGJ,mBAAmB,IAAI;CACzB;CAEA,OACE,qBAAA,YAAA,EAAA,UAAA,CACE,oBAAC,OAAD;EACE,aAAU;EACV,WAAW,GACT,0BACA,YAAY,qBACZ,YAAY,SAEd;EAEA,UAAA,qBAAC,SAAD;GACE,GAAI;GACJ,aAAU;GACV,aAAW,WAAW,KAAA;GACtB,WAAW,GACT,4CACA,SAEF;GARF,UAAA;IAUG,WAAW,oBAAC,WAAD;KAAS,WAAU;KAAmB,UAAA;IAAiB,CAAA;IACnE,oBAAC,SAAD;KACE,aAAU;KACV,WAAW,GACT,wBACA,YAAY,MAEd;KAEA,UAAA,oBAAC,MAAD,EAAA,UACG,QAAQ,KAAI,WACX,oBAAC,MAAD;MAEE,OAAM;MACN,OAAO,EAAE,OAAO,OAAO,MAAM;MAC7B,WAAW,GACT,+BACA,aACA,OAAO,UAAU,YAAY,eAC7B,OAAO,UAAU,WAAW,cAC5B,OAAO,UAAU,KAAA,KAAa,cAC9B,YAAY,4BACZ,YAAY,MACZ,OAAO,eAET;MAEC,UAAA,OAAO;KACN,GAhBG,OAAO,GAgBV,CACL,EACC,CAAA;IACC,CAAA;IACP,oBAAC,SAAD;KAAO,aAAU;KAAa,WAAW,YAAY;KAClD,UAAA,UACC,oBAAC,MAAD,EAAA,UACE,oBAAC,MAAD;MACE,SAAS,KAAK,IAAI,QAAQ,QAAQ,CAAC;MACnC,WAAW;MAEX,UAAA,oBAAC,UAAD;OAAU,OAAO;OAAG,WAAU;MAAQ,CAAA;KACpC,CAAA,EACF,CAAA,IACF,YAAY,WAAW,IACzB,oBAAC,MAAD,EAAA,UACE,oBAAC,MAAD;MACE,SAAS,KAAK,IAAI,QAAQ,QAAQ,CAAC;MACnC,WAAW,GAAG,aAAa,YAAY,KAAK;MAE3C,UAAA,SAAS,oBAAC,OAAD,CAAQ,CAAA;KAChB,CAAA,EACF,CAAA,IAEJ,YAAY,KAAK,QAAQ,UACvB,oBAAC,MAAD;MAEE,aAAU;MACV,WAAW,GACT,4BACA,WAAW,oBACX,aAAa,qBACb,YAAY,GAEd;MAEC,UAAA,QAAQ,KAAI,WAAU;OACrB,MAAM,QACJ,OAAO,cAAc,KAAA,IACjB,KAAA,IACA,OAAO,OAAO;OAEpB,OACE,oBAAC,MAAD;QAEE,aAAU;QACV,WAAW,GACT,aACA,OAAO,UAAU,YAAY,eAC7B,OAAO,UAAU,WAAW,cAC5B,YAAY,4BACZ,YAAY,MACZ,OAAO,SAET;QAEC,UAAA,OAAO,SACJ,OAAO,OAAO,QAAQ,KAAK,IAC3B,SAAS,OACP,OACA,OAAO,KAAK;OAChB,GAjBG,OAAO,GAiBV;MAER,CAAC;KACC,GAtCG,SAAS,QAAQ,KAAK,KAAK,KAsC9B,CACL;IAEE,CAAA;GACF;;CACJ,CAAA,GACJ,cACC,oBAAC,OAAD;EACE,aAAU;EACV,WAAW,GACT,yBACA,YAAY,UAEd;EAEA,UAAA,oBAAC,YAAD;GACE,GAAI;GACG;GACD;GACI;GACV,UAAU;GACV,kBAAkB;EACnB,CAAA;CACE,CAAA,CAEP,EAAA,CAAA;AAEN"}
|
|
@@ -1,9 +1,9 @@
|
|
|
1
|
-
import { Tabs as Tabs$1 } from "
|
|
2
|
-
import "
|
|
1
|
+
import { Tabs as Tabs$1, tabs_d_exports } from "./core/tabs.mjs";
|
|
2
|
+
import "./core/index.mjs";
|
|
3
3
|
import { ReactNode } from "react";
|
|
4
4
|
//#region src/components/molecules/tabs.d.ts
|
|
5
5
|
declare const Core: typeof Tabs$1;
|
|
6
|
-
interface Item {
|
|
6
|
+
export interface Item {
|
|
7
7
|
key: string;
|
|
8
8
|
label: ReactNode;
|
|
9
9
|
children: ReactNode;
|
|
@@ -11,7 +11,7 @@ interface Item {
|
|
|
11
11
|
/** Decorative icon rendered before the label with consistent spacing. */
|
|
12
12
|
icon?: ReactNode;
|
|
13
13
|
}
|
|
14
|
-
interface Props extends Omit<React.ComponentProps<typeof Core>, 'children' | 'onChange'> {
|
|
14
|
+
export interface Props extends Omit<React.ComponentProps<typeof Core>, 'children' | 'onChange'> {
|
|
15
15
|
items: Item[];
|
|
16
16
|
/** Called when the selected tab changes. */
|
|
17
17
|
onChange?: (value: string | number | null) => void;
|
|
@@ -37,5 +37,5 @@ interface Props extends Omit<React.ComponentProps<typeof Core>, 'children' | 'on
|
|
|
37
37
|
}
|
|
38
38
|
declare const Tabs: ({ items, listLabel, keepMounted, activateOnFocus, scrollable, fitted, extra, classNames, defaultValue, onChange, onValueChange, orientation, ...props }: Props) => import("react").JSX.Element;
|
|
39
39
|
//#endregion
|
|
40
|
-
export {
|
|
41
|
-
//# sourceMappingURL=
|
|
40
|
+
export { Tabs as default };
|
|
41
|
+
//# sourceMappingURL=Tabs.d.mts.map
|
|
@@ -0,0 +1 @@
|
|
|
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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use client";
|
|
2
|
-
import { cn } from "
|
|
3
|
-
import { tabs_exports } from "
|
|
2
|
+
import { cn } from "./utils.mjs";
|
|
3
|
+
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;
|
|
@@ -52,4 +52,4 @@ const Tabs = ({ items, listLabel = "Tabs", keepMounted = false, activateOnFocus
|
|
|
52
52
|
//#endregion
|
|
53
53
|
export { Tabs as default };
|
|
54
54
|
|
|
55
|
-
//# sourceMappingURL=
|
|
55
|
+
//# sourceMappingURL=Tabs.mjs.map
|
|
@@ -0,0 +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' | '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"}
|
package/dist/Tag.d.mts
CHANGED
|
@@ -1,10 +1,10 @@
|
|
|
1
|
-
import { Badge } from "./core/badge.mjs";
|
|
1
|
+
import { Badge, badge_d_exports } from "./core/badge.mjs";
|
|
2
2
|
import "./core/index.mjs";
|
|
3
3
|
import { PresetColor } from "./lib/colors.mjs";
|
|
4
4
|
import * as React$1 from "react";
|
|
5
5
|
//#region src/components/atoms/tag.d.ts
|
|
6
6
|
declare const Core: typeof Badge;
|
|
7
|
-
interface Props extends Omit<React$1.ComponentProps<typeof Core>, 'variant' | 'color'> {
|
|
7
|
+
export interface Props extends Omit<React$1.ComponentProps<typeof Core>, 'variant' | 'color'> {
|
|
8
8
|
/**
|
|
9
9
|
* Fill style, aligned with `Button`'s vocabulary (#320). The pre-7.0
|
|
10
10
|
* `'default'` spelling was removed — use `'filled'`, which renders
|
|
@@ -26,5 +26,5 @@ interface Props extends Omit<React$1.ComponentProps<typeof Core>, 'variant' | 'c
|
|
|
26
26
|
}
|
|
27
27
|
declare const Tag: ({ className, variant, color, children, ...props }: Props) => React$1.JSX.Element;
|
|
28
28
|
//#endregion
|
|
29
|
-
export {
|
|
29
|
+
export { Tag as default };
|
|
30
30
|
//# sourceMappingURL=Tag.d.mts.map
|
package/dist/Tag.d.mts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Tag.d.mts","names":[],"sources":["../src/components/atoms/tag.tsx"],"mappings":";;;;;cAUM,
|
|
1
|
+
{"version":3,"file":"Tag.d.mts","names":["badge","badge.Badge","React"],"sources":["../src/components/atoms/tag.tsx"],"mappings":";;;;;cAUM,aAAIC;iBAEO,cAAc,KAC7BC,QAAM,sBAAsB;;;;;;EAQ5B;;;;;;;;;;;;EAYA,mEAC6D;;cAuBzD,QAAO,WAAA,SAAA,OAAA,aAAA,SAAmD,UAAKA,QAAA,IAAA"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { ComponentSize } from "./providers/config/types.mjs";
|
|
2
|
+
import * as React$1 from "react";
|
|
3
|
+
//#region src/components/atoms/time-picker.d.ts
|
|
4
|
+
export interface Props extends Omit<React$1.ComponentPropsWithRef<'input'>, 'children' | 'defaultValue' | 'onChange' | 'size' | 'step' | 'type' | 'value'> {
|
|
5
|
+
/** Visible label. An external label or aria-label can be used instead. */
|
|
6
|
+
label?: string;
|
|
7
|
+
/** A local time in 24-hour HH:mm form; null keeps a controlled field empty. */
|
|
8
|
+
value?: string | null;
|
|
9
|
+
defaultValue?: string;
|
|
10
|
+
/** Called with HH:mm, or null when the field is cleared. */
|
|
11
|
+
onChange?: (value: string | null) => void;
|
|
12
|
+
/** Positive whole-minute interval. Native time inputs use seconds for step. */
|
|
13
|
+
minuteStep?: number;
|
|
14
|
+
allowClear?: boolean;
|
|
15
|
+
clearLabel?: string;
|
|
16
|
+
size?: ComponentSize;
|
|
17
|
+
classNames?: {
|
|
18
|
+
label?: string;
|
|
19
|
+
input?: string;
|
|
20
|
+
clear?: string;
|
|
21
|
+
};
|
|
22
|
+
}
|
|
23
|
+
declare const TimePicker: ({ ref, id, label, value, defaultValue, onChange, minuteStep, allowClear, clearLabel, size, disabled, readOnly, className, classNames, ...props }: Props) => React$1.JSX.Element;
|
|
24
|
+
//#endregion
|
|
25
|
+
export { TimePicker as default };
|
|
26
|
+
//# sourceMappingURL=TimePicker.d.mts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TimePicker.d.mts","names":["React"],"sources":["../src/components/atoms/time-picker.tsx"],"mappings":";;;iBAmBiB,cAAc,KAC7BA,QAAM;;EAIN;;EAEA;EACA;;EAEA,YAAY;;EAEZ;EACA;EACA;EACA,OAAO;EACP;IACE;IACA;IACA;;;cAIE,eAAc,KAAA,IAAA,OAAA,OAAA,cAAA,UAAA,YAAA,YAAA,YAAA,MAAA,UAAA,UAAA,WAAA,eAAA,SAgBjB,UAAKA,QAAA,IAAA"}
|
|
@@ -0,0 +1,77 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
import { cn } from "./utils.mjs";
|
|
3
|
+
import { useConfig } from "./providers/config/context.mjs";
|
|
4
|
+
import Button from "./Button.mjs";
|
|
5
|
+
import Input from "./Input.mjs";
|
|
6
|
+
import * as React$1 from "react";
|
|
7
|
+
import { useMergedRef } from "@jbpark/use-hooks";
|
|
8
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
9
|
+
import { CircleX } from "lucide-react";
|
|
10
|
+
//#region src/components/atoms/time-picker.tsx
|
|
11
|
+
const sizes = {
|
|
12
|
+
small: "h-8",
|
|
13
|
+
middle: "h-9",
|
|
14
|
+
large: "h-10"
|
|
15
|
+
};
|
|
16
|
+
const TimePicker = ({ ref, id, label, value, defaultValue, onChange, minuteStep = 1, allowClear = true, clearLabel = "Clear time", size, disabled, readOnly, className, classNames, ...props }) => {
|
|
17
|
+
const generatedId = React$1.useId();
|
|
18
|
+
const inputId = id ?? generatedId;
|
|
19
|
+
const inputRef = React$1.useRef(null);
|
|
20
|
+
const mergedRef = useMergedRef(inputRef, ref);
|
|
21
|
+
const { componentSize } = useConfig();
|
|
22
|
+
const resolvedSize = size ?? componentSize ?? "middle";
|
|
23
|
+
const isControlled = value !== void 0;
|
|
24
|
+
const [uncontrolledValue, setUncontrolledValue] = React$1.useState(defaultValue ?? "");
|
|
25
|
+
const currentValue = isControlled ? value ?? "" : uncontrolledValue;
|
|
26
|
+
const handleChange = (event) => {
|
|
27
|
+
const nextValue = event.currentTarget.value;
|
|
28
|
+
if (!isControlled) setUncontrolledValue(nextValue);
|
|
29
|
+
onChange?.(nextValue || null);
|
|
30
|
+
};
|
|
31
|
+
const handleClear = () => {
|
|
32
|
+
if (!isControlled && inputRef.current) {
|
|
33
|
+
inputRef.current.value = "";
|
|
34
|
+
setUncontrolledValue("");
|
|
35
|
+
}
|
|
36
|
+
onChange?.(null);
|
|
37
|
+
inputRef.current?.focus();
|
|
38
|
+
};
|
|
39
|
+
return /* @__PURE__ */ jsxs("div", {
|
|
40
|
+
"data-slot": "time-picker",
|
|
41
|
+
className: cn("w-full", className),
|
|
42
|
+
children: [label && /* @__PURE__ */ jsx("label", {
|
|
43
|
+
htmlFor: inputId,
|
|
44
|
+
className: cn("mb-1.5 block text-sm font-medium", classNames?.label),
|
|
45
|
+
children: label
|
|
46
|
+
}), /* @__PURE__ */ jsxs("div", {
|
|
47
|
+
className: "flex items-center gap-1",
|
|
48
|
+
children: [/* @__PURE__ */ jsx(Input, {
|
|
49
|
+
...props,
|
|
50
|
+
ref: mergedRef,
|
|
51
|
+
id: inputId,
|
|
52
|
+
type: "time",
|
|
53
|
+
step: minuteStep * 60,
|
|
54
|
+
disabled,
|
|
55
|
+
readOnly,
|
|
56
|
+
value: isControlled ? value ?? "" : void 0,
|
|
57
|
+
defaultValue: isControlled ? void 0 : defaultValue,
|
|
58
|
+
onChange: handleChange,
|
|
59
|
+
className: cn("min-w-0 flex-1", sizes[resolvedSize], classNames?.input)
|
|
60
|
+
}), allowClear && currentValue && !disabled && !readOnly && /* @__PURE__ */ jsx(Button, {
|
|
61
|
+
htmlType: "button",
|
|
62
|
+
variant: "text",
|
|
63
|
+
shape: "circle",
|
|
64
|
+
size: resolvedSize,
|
|
65
|
+
icon: /* @__PURE__ */ jsx(CircleX, {}),
|
|
66
|
+
"aria-label": clearLabel,
|
|
67
|
+
"data-time-picker-clear": "",
|
|
68
|
+
className: cn(classNames?.clear),
|
|
69
|
+
onClick: handleClear
|
|
70
|
+
})]
|
|
71
|
+
})]
|
|
72
|
+
});
|
|
73
|
+
};
|
|
74
|
+
//#endregion
|
|
75
|
+
export { TimePicker as default };
|
|
76
|
+
|
|
77
|
+
//# sourceMappingURL=TimePicker.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"TimePicker.mjs","names":["React"],"sources":["../src/components/atoms/time-picker.tsx"],"sourcesContent":["'use client';\n\nimport * as React from 'react';\n\nimport { useMergedRef } from '@jbpark/use-hooks';\nimport { CircleX } from 'lucide-react';\n\nimport { type ComponentSize, useConfig } from '@repo/ui/providers';\nimport { cn } from '@repo/ui/utils';\n\nimport Button from './button';\nimport Input from './input';\n\nconst sizes: Record<ComponentSize, string> = {\n small: 'h-8',\n middle: 'h-9',\n large: 'h-10',\n};\n\nexport interface Props extends Omit<\n React.ComponentPropsWithRef<'input'>,\n 'children' | 'defaultValue' | 'onChange' | 'size' | 'step' | 'type' | 'value'\n> {\n /** Visible label. An external label or aria-label can be used instead. */\n label?: string;\n /** A local time in 24-hour HH:mm form; null keeps a controlled field empty. */\n value?: string | null;\n defaultValue?: string;\n /** Called with HH:mm, or null when the field is cleared. */\n onChange?: (value: string | null) => void;\n /** Positive whole-minute interval. Native time inputs use seconds for step. */\n minuteStep?: number;\n allowClear?: boolean;\n clearLabel?: string;\n size?: ComponentSize;\n classNames?: {\n label?: string;\n input?: string;\n clear?: string;\n };\n}\n\nconst TimePicker = ({\n ref,\n id,\n label,\n value,\n defaultValue,\n onChange,\n minuteStep = 1,\n allowClear = true,\n clearLabel = 'Clear time',\n size,\n disabled,\n readOnly,\n className,\n classNames,\n ...props\n}: Props) => {\n const generatedId = React.useId();\n const inputId = id ?? generatedId;\n const inputRef = React.useRef<HTMLInputElement>(null);\n const mergedRef = useMergedRef(inputRef, ref);\n const { componentSize } = useConfig();\n const resolvedSize = size ?? componentSize ?? 'middle';\n const isControlled = value !== undefined;\n const [uncontrolledValue, setUncontrolledValue] = React.useState(\n defaultValue ?? '',\n );\n const currentValue = isControlled ? (value ?? '') : uncontrolledValue;\n\n const handleChange = (event: React.ChangeEvent<HTMLInputElement>) => {\n const nextValue = event.currentTarget.value;\n\n if (!isControlled) {\n setUncontrolledValue(nextValue);\n }\n\n onChange?.(nextValue || null);\n };\n\n const handleClear = () => {\n if (!isControlled && inputRef.current) {\n inputRef.current.value = '';\n setUncontrolledValue('');\n }\n\n onChange?.(null);\n inputRef.current?.focus();\n };\n\n return (\n <div data-slot=\"time-picker\" className={cn('w-full', className)}>\n {label && (\n <label\n htmlFor={inputId}\n className={cn('mb-1.5 block text-sm font-medium', classNames?.label)}\n >\n {label}\n </label>\n )}\n <div className=\"flex items-center gap-1\">\n <Input\n {...props}\n ref={mergedRef}\n id={inputId}\n type=\"time\"\n step={minuteStep * 60}\n disabled={disabled}\n readOnly={readOnly}\n value={isControlled ? (value ?? '') : undefined}\n defaultValue={isControlled ? undefined : defaultValue}\n onChange={handleChange}\n className={cn(\n 'min-w-0 flex-1',\n sizes[resolvedSize],\n classNames?.input,\n //\n )}\n />\n {allowClear && currentValue && !disabled && !readOnly && (\n <Button\n htmlType=\"button\"\n variant=\"text\"\n shape=\"circle\"\n size={resolvedSize}\n icon={<CircleX />}\n aria-label={clearLabel}\n data-time-picker-clear=\"\"\n className={cn(classNames?.clear)}\n onClick={handleClear}\n />\n )}\n </div>\n </div>\n );\n};\n\nexport default TimePicker;\n"],"mappings":";;;;;;;;;;AAaA,MAAM,QAAuC;CAC3C,OAAO;CACP,QAAQ;CACR,OAAO;AACT;AAyBA,MAAM,cAAc,EAClB,KACA,IACA,OACA,OACA,cACA,UACA,aAAa,GACb,aAAa,MACb,aAAa,cACb,MACA,UACA,UACA,WACA,YACA,GAAG,YACQ;CACX,MAAM,cAAcA,QAAM,MAAM;CAChC,MAAM,UAAU,MAAM;CACtB,MAAM,WAAWA,QAAM,OAAyB,IAAI;CACpD,MAAM,YAAY,aAAa,UAAU,GAAG;CAC5C,MAAM,EAAE,kBAAkB,UAAU;CACpC,MAAM,eAAe,QAAQ,iBAAiB;CAC9C,MAAM,eAAe,UAAU,KAAA;CAC/B,MAAM,CAAC,mBAAmB,wBAAwBA,QAAM,SACtD,gBAAgB,EAClB;CACA,MAAM,eAAe,eAAgB,SAAS,KAAM;CAEpD,MAAM,gBAAgB,UAA+C;EACnE,MAAM,YAAY,MAAM,cAAc;EAEtC,IAAI,CAAC,cACH,qBAAqB,SAAS;EAGhC,WAAW,aAAa,IAAI;CAC9B;CAEA,MAAM,oBAAoB;EACxB,IAAI,CAAC,gBAAgB,SAAS,SAAS;GACrC,SAAS,QAAQ,QAAQ;GACzB,qBAAqB,EAAE;EACzB;EAEA,WAAW,IAAI;EACf,SAAS,SAAS,MAAM;CAC1B;CAEA,OACE,qBAAC,OAAD;EAAK,aAAU;EAAc,WAAW,GAAG,UAAU,SAAS;EAA9D,UAAA,CACG,SACC,oBAAC,SAAD;GACE,SAAS;GACT,WAAW,GAAG,oCAAoC,YAAY,KAAK;GAElE,UAAA;EACI,CAAA,GAET,qBAAC,OAAD;GAAK,WAAU;GAAf,UAAA,CACE,oBAAC,OAAD;IACE,GAAI;IACJ,KAAK;IACL,IAAI;IACJ,MAAK;IACL,MAAM,aAAa;IACT;IACA;IACV,OAAO,eAAgB,SAAS,KAAM,KAAA;IACtC,cAAc,eAAe,KAAA,IAAY;IACzC,UAAU;IACV,WAAW,GACT,kBACA,MAAM,eACN,YAAY,KAEd;GACD,CAAA,GACA,cAAc,gBAAgB,CAAC,YAAY,CAAC,YAC3C,oBAAC,QAAD;IACE,UAAS;IACT,SAAQ;IACR,OAAM;IACN,MAAM;IACN,MAAM,oBAAC,SAAD,CAAU,CAAA;IAChB,cAAY;IACZ,0BAAuB;IACvB,WAAW,GAAG,YAAY,KAAK;IAC/B,SAAS;GACV,CAAA,CAEA;EACF,CAAA,CAAA;;AAET"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import { ComponentPropsWithRef, Key, ReactNode } from "react";
|
|
2
|
+
//#region src/components/molecules/timeline.d.ts
|
|
3
|
+
export interface Timestamp {
|
|
4
|
+
/** Caller-formatted text. No locale or timezone conversion is performed. */
|
|
5
|
+
label: ReactNode;
|
|
6
|
+
/** A valid HTML time value, such as an ISO date or timestamp. */
|
|
7
|
+
dateTime?: string;
|
|
8
|
+
}
|
|
9
|
+
export interface Item {
|
|
10
|
+
key: Key;
|
|
11
|
+
title: ReactNode;
|
|
12
|
+
description?: ReactNode;
|
|
13
|
+
timestamp?: Timestamp;
|
|
14
|
+
/** Decorative marker treatment. Include meaningful status in the event text. */
|
|
15
|
+
status?: 'neutral' | 'primary' | 'error';
|
|
16
|
+
/** Decorative content, such as an icon; do not supply interactive elements. */
|
|
17
|
+
marker?: ReactNode;
|
|
18
|
+
}
|
|
19
|
+
export interface Props extends Omit<ComponentPropsWithRef<'ol'>, 'children' | 'reversed' | 'start' | 'type'> {
|
|
20
|
+
/** Events render in this order; the component does not sort by timestamp. */
|
|
21
|
+
items: readonly Item[];
|
|
22
|
+
classNames?: {
|
|
23
|
+
item?: string;
|
|
24
|
+
marker?: string;
|
|
25
|
+
connector?: string;
|
|
26
|
+
content?: string;
|
|
27
|
+
title?: string;
|
|
28
|
+
description?: string;
|
|
29
|
+
timestamp?: string;
|
|
30
|
+
};
|
|
31
|
+
}
|
|
32
|
+
declare const Timeline: ({ items, className, classNames, ...props }: Props) => import("react").JSX.Element;
|
|
33
|
+
//#endregion
|
|
34
|
+
export { Timeline as default };
|
|
35
|
+
//# sourceMappingURL=Timeline.d.mts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Timeline.d.mts","names":[],"sources":["../src/components/molecules/timeline.tsx"],"mappings":";;iBAIiB;;EAEf,OAAO;;EAEP;;iBAGe;EACf,KAAK;EACL,OAAO;EACP,cAAc;EACd,YAAY;;EAEZ;;EAEA,SAAS;;iBAGM,cAAc,KAC7B;;EAIA,gBAAgB;EAChB;IACE;IACA;IACA;IACA;IACA;IACA;IACA;;;cAIE,aAAY,OAAA,WAAA,eAAA,SAA4C,0BAAK,IAAA"}
|
|
@@ -0,0 +1,59 @@
|
|
|
1
|
+
import { cn } from "./utils.mjs";
|
|
2
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
3
|
+
//#region src/components/molecules/timeline.tsx
|
|
4
|
+
const Timeline = ({ items, className, classNames, ...props }) => {
|
|
5
|
+
return /* @__PURE__ */ jsx("ol", {
|
|
6
|
+
...props,
|
|
7
|
+
"data-slot": "timeline",
|
|
8
|
+
role: "list",
|
|
9
|
+
className: cn("text-foreground m-0 w-full min-w-0 list-none p-0", className),
|
|
10
|
+
children: items.map((item, index) => {
|
|
11
|
+
const TimestampElement = item.timestamp?.dateTime ? "time" : "span";
|
|
12
|
+
return /* @__PURE__ */ jsxs("li", {
|
|
13
|
+
"data-slot": "timeline-item",
|
|
14
|
+
"data-status": item.status ?? "neutral",
|
|
15
|
+
className: cn("relative m-0 flex min-w-0 gap-3", index < items.length - 1 && "pb-6", classNames?.item),
|
|
16
|
+
children: [/* @__PURE__ */ jsxs("div", {
|
|
17
|
+
"aria-hidden": "true",
|
|
18
|
+
className: "relative w-5 shrink-0",
|
|
19
|
+
children: [/* @__PURE__ */ jsx("span", {
|
|
20
|
+
"data-slot": "timeline-marker",
|
|
21
|
+
className: cn(`border-border bg-background text-muted-foreground relative
|
|
22
|
+
z-10 flex size-5 items-center justify-center rounded-full
|
|
23
|
+
border-2 [&>svg]:size-3`, item.status === "primary" && "border-primary text-primary", item.status === "error" && "border-destructive text-destructive", classNames?.marker),
|
|
24
|
+
children: item.marker
|
|
25
|
+
}), index < items.length - 1 && /* @__PURE__ */ jsx("span", {
|
|
26
|
+
"data-slot": "timeline-connector",
|
|
27
|
+
className: cn(`bg-border absolute start-[calc(50%-0.5px)] top-5 -bottom-6
|
|
28
|
+
w-px`, classNames?.connector)
|
|
29
|
+
})]
|
|
30
|
+
}), /* @__PURE__ */ jsxs("div", {
|
|
31
|
+
"data-slot": "timeline-content",
|
|
32
|
+
className: cn("min-w-0 flex-1 text-sm [overflow-wrap:anywhere]", classNames?.content),
|
|
33
|
+
children: [
|
|
34
|
+
/* @__PURE__ */ jsx("div", {
|
|
35
|
+
"data-slot": "timeline-title",
|
|
36
|
+
className: cn("leading-5 font-medium", classNames?.title),
|
|
37
|
+
children: item.title
|
|
38
|
+
}),
|
|
39
|
+
item.timestamp != null && /* @__PURE__ */ jsx(TimestampElement, {
|
|
40
|
+
"data-slot": "timeline-timestamp",
|
|
41
|
+
dateTime: TimestampElement === "time" ? item.timestamp.dateTime : void 0,
|
|
42
|
+
className: cn("text-muted-foreground mt-1 block text-xs", classNames?.timestamp),
|
|
43
|
+
children: item.timestamp.label
|
|
44
|
+
}),
|
|
45
|
+
item.description != null && /* @__PURE__ */ jsx("div", {
|
|
46
|
+
"data-slot": "timeline-description",
|
|
47
|
+
className: cn("text-muted-foreground mt-2", classNames?.description),
|
|
48
|
+
children: item.description
|
|
49
|
+
})
|
|
50
|
+
]
|
|
51
|
+
})]
|
|
52
|
+
}, item.key);
|
|
53
|
+
})
|
|
54
|
+
});
|
|
55
|
+
};
|
|
56
|
+
//#endregion
|
|
57
|
+
export { Timeline as default };
|
|
58
|
+
|
|
59
|
+
//# sourceMappingURL=Timeline.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Timeline.mjs","names":[],"sources":["../src/components/molecules/timeline.tsx"],"sourcesContent":["import type { ComponentPropsWithRef, Key, ReactNode } from 'react';\n\nimport { cn } from '@repo/ui/utils';\n\nexport interface Timestamp {\n /** Caller-formatted text. No locale or timezone conversion is performed. */\n label: ReactNode;\n /** A valid HTML time value, such as an ISO date or timestamp. */\n dateTime?: string;\n}\n\nexport interface Item {\n key: Key;\n title: ReactNode;\n description?: ReactNode;\n timestamp?: Timestamp;\n /** Decorative marker treatment. Include meaningful status in the event text. */\n status?: 'neutral' | 'primary' | 'error';\n /** Decorative content, such as an icon; do not supply interactive elements. */\n marker?: ReactNode;\n}\n\nexport interface Props extends Omit<\n ComponentPropsWithRef<'ol'>,\n 'children' | 'reversed' | 'start' | 'type'\n> {\n /** Events render in this order; the component does not sort by timestamp. */\n items: readonly Item[];\n classNames?: {\n item?: string;\n marker?: string;\n connector?: string;\n content?: string;\n title?: string;\n description?: string;\n timestamp?: string;\n };\n}\n\nconst Timeline = ({ items, className, classNames, ...props }: Props) => {\n return (\n <ol\n {...props}\n data-slot=\"timeline\"\n role=\"list\"\n className={cn(\n 'text-foreground m-0 w-full min-w-0 list-none p-0',\n className, //\n )}\n >\n {items.map((item, index) => {\n const TimestampElement = item.timestamp?.dateTime ? 'time' : 'span';\n\n return (\n <li\n key={item.key}\n data-slot=\"timeline-item\"\n data-status={item.status ?? 'neutral'}\n className={cn(\n 'relative m-0 flex min-w-0 gap-3',\n index < items.length - 1 && 'pb-6',\n classNames?.item, //\n )}\n >\n <div aria-hidden=\"true\" className=\"relative w-5 shrink-0\">\n <span\n data-slot=\"timeline-marker\"\n className={cn(\n `border-border bg-background text-muted-foreground relative\n z-10 flex size-5 items-center justify-center rounded-full\n border-2 [&>svg]:size-3`,\n item.status === 'primary' && 'border-primary text-primary',\n item.status === 'error' &&\n 'border-destructive text-destructive',\n classNames?.marker, //\n )}\n >\n {item.marker}\n </span>\n {index < items.length - 1 && (\n <span\n data-slot=\"timeline-connector\"\n className={cn(\n `bg-border absolute start-[calc(50%-0.5px)] top-5 -bottom-6\n w-px`,\n classNames?.connector, //\n )}\n />\n )}\n </div>\n <div\n data-slot=\"timeline-content\"\n className={cn(\n 'min-w-0 flex-1 text-sm [overflow-wrap:anywhere]',\n classNames?.content, //\n )}\n >\n <div\n data-slot=\"timeline-title\"\n className={cn(\n 'leading-5 font-medium',\n classNames?.title, //\n )}\n >\n {item.title}\n </div>\n {item.timestamp != null && (\n <TimestampElement\n data-slot=\"timeline-timestamp\"\n dateTime={\n TimestampElement === 'time'\n ? item.timestamp.dateTime\n : undefined\n }\n className={cn(\n 'text-muted-foreground mt-1 block text-xs',\n classNames?.timestamp, //\n )}\n >\n {item.timestamp.label}\n </TimestampElement>\n )}\n {item.description != null && (\n <div\n data-slot=\"timeline-description\"\n className={cn(\n 'text-muted-foreground mt-2',\n classNames?.description, //\n )}\n >\n {item.description}\n </div>\n )}\n </div>\n </li>\n );\n })}\n </ol>\n );\n};\n\nexport default Timeline;\n"],"mappings":";;;AAuCA,MAAM,YAAY,EAAE,OAAO,WAAW,YAAY,GAAG,YAAmB;CACtE,OACE,oBAAC,MAAD;EACE,GAAI;EACJ,aAAU;EACV,MAAK;EACL,WAAW,GACT,oDACA,SACF;EAEC,UAAA,MAAM,KAAK,MAAM,UAAU;GAC1B,MAAM,mBAAmB,KAAK,WAAW,WAAW,SAAS;GAE7D,OACE,qBAAC,MAAD;IAEE,aAAU;IACV,eAAa,KAAK,UAAU;IAC5B,WAAW,GACT,mCACA,QAAQ,MAAM,SAAS,KAAK,QAC5B,YAAY,IACd;IARF,UAAA,CAUE,qBAAC,OAAD;KAAK,eAAY;KAAO,WAAU;KAAlC,UAAA,CACE,oBAAC,QAAD;MACE,aAAU;MACV,WAAW,GACT;;4CAGA,KAAK,WAAW,aAAa,+BAC7B,KAAK,WAAW,WACd,uCACF,YAAY,MACd;MAEC,UAAA,KAAK;KACF,CAAA,GACL,QAAQ,MAAM,SAAS,KACtB,oBAAC,QAAD;MACE,aAAU;MACV,WAAW,GACT;2BAEA,YAAY,SACd;KACD,CAAA,CAEA;IACL,CAAA,GAAA,qBAAC,OAAD;KACE,aAAU;KACV,WAAW,GACT,mDACA,YAAY,OACd;KALF,UAAA;MAOE,oBAAC,OAAD;OACE,aAAU;OACV,WAAW,GACT,yBACA,YAAY,KACd;OAEC,UAAA,KAAK;MACH,CAAA;MACJ,KAAK,aAAa,QACjB,oBAAC,kBAAD;OACE,aAAU;OACV,UACE,qBAAqB,SACjB,KAAK,UAAU,WACf,KAAA;OAEN,WAAW,GACT,4CACA,YAAY,SACd;OAEC,UAAA,KAAK,UAAU;MACA,CAAA;MAEnB,KAAK,eAAe,QACnB,oBAAC,OAAD;OACE,aAAU;OACV,WAAW,GACT,8BACA,YAAY,WACd;OAEC,UAAA,KAAK;MACH,CAAA;KAEJ;IACH,CAAA,CAAA;GA/EG,GAAA,KAAK,GA+ER;EAER,CAAC;CACC,CAAA;AAER"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
//#region src/components/organisms/toast.d.ts
|
|
2
|
-
type ToastStatus = 'info' | 'success' | 'error' | 'warning';
|
|
3
|
-
|
|
2
|
+
type ToastStatus = 'info' | 'success' | 'error' | 'warning' | 'loading';
|
|
3
|
+
export type Placement = 'top-start' | 'top' | 'top-end' | 'bottom-start' | 'bottom' | 'bottom-end';
|
|
4
|
+
export interface Props {
|
|
4
5
|
status?: ToastStatus;
|
|
5
6
|
title: React.ReactNode;
|
|
6
7
|
description?: React.ReactNode;
|
|
@@ -14,17 +15,26 @@ interface StaticProps extends Props {
|
|
|
14
15
|
id?: string;
|
|
15
16
|
duration?: number;
|
|
16
17
|
container?: HTMLElement;
|
|
18
|
+
placement?: Placement;
|
|
19
|
+
}
|
|
20
|
+
export interface GlobalConfig {
|
|
21
|
+
placement?: Placement;
|
|
22
|
+
duration?: number;
|
|
23
|
+
maxCount?: number;
|
|
17
24
|
}
|
|
18
25
|
declare const Toast: {
|
|
19
26
|
({ status, title, description, icon, closable, action, className, onClose }: Props): import("react").JSX.Element;
|
|
20
27
|
destroy: (id?: string) => void;
|
|
21
28
|
destroyAll(): void;
|
|
29
|
+
config(config: GlobalConfig): void;
|
|
30
|
+
open(props: StaticProps): string | undefined;
|
|
22
31
|
info(title: React.ReactNode, props?: TriggerOptions): string | undefined;
|
|
23
32
|
success(title: React.ReactNode, props?: TriggerOptions): string | undefined;
|
|
24
33
|
error(title: React.ReactNode, props?: TriggerOptions): string | undefined;
|
|
25
34
|
warning(title: React.ReactNode, props?: TriggerOptions): string | undefined;
|
|
35
|
+
loading(title: React.ReactNode, props?: TriggerOptions): string | undefined;
|
|
26
36
|
};
|
|
27
37
|
type TriggerOptions = Omit<StaticProps, 'status' | 'title'>;
|
|
28
38
|
//#endregion
|
|
29
|
-
export {
|
|
30
|
-
//# sourceMappingURL=
|
|
39
|
+
export { type StaticProps as ToastOptions, Toast as default };
|
|
40
|
+
//# sourceMappingURL=Toast.d.mts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Toast.d.mts","names":[],"sources":["../src/components/organisms/toast.tsx"],"mappings":";KAyBK;YAEO;iBAGK;EACf,SAAS;EACT,OAAO,MAAM;EACb,cAAc,MAAM;EACpB,OAAO,MAAM;EACb;EACA,SAAS,MAAM;EACf;EACA;;UAGQ,oBAAoB;EAC5B;EACA;EACA,YAAY;EACZ,YAAY;;iBAGG;EACf,YAAY;EACZ;EAEA;;cAiBI;KASH,QAAA,OAAA,aAAA,MAAA,UAAA,QAAA,WAAA,WAAA,wBAAK,IAAA;EA0Mc,UAAA;;EAcE,OAAA,QAAA;EAMH,KAAA,OAAA;EACA,KAAA,OAAA,MAAM,WAAS,QAAU;EAEtB,QAAA,OAAA,MAAM,WAAS,QAAU;EAE3B,MAAA,OAAA,MAAM,WAAS,QAAU;EAEvB,QAAA,OAAA,MAAM,WAAS,QAAU;EAGzB,QAAA,OAAA,MAAM,WAAS,QAAU;;KAZ5C,iBAAiB,KAAK"}
|