@jbpark/ui-kit 5.2.0 → 5.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/dist/Button.d.mts +1 -19
- package/dist/Button.d.mts.map +1 -1
- package/dist/Button.mjs +2 -4
- package/dist/Button.mjs.map +1 -1
- package/dist/Card.d.mts +1 -10
- package/dist/Card.d.mts.map +1 -1
- package/dist/Card.mjs +1 -2
- package/dist/Card.mjs.map +1 -1
- package/dist/Layout.d.mts +5 -6
- package/dist/Layout.d.mts.map +1 -1
- package/dist/Layout.mjs +1 -2
- package/dist/Layout.mjs.map +1 -1
- package/dist/Menu.d.mts +1 -1
- package/dist/Menu.mjs +1 -2
- package/dist/Reveals.d.mts +2 -3
- package/dist/Reveals.d.mts.map +1 -1
- package/dist/Reveals.mjs +1 -2
- package/dist/Reveals.mjs.map +1 -1
- package/dist/Space.d.mts +1 -17
- package/dist/Space.d.mts.map +1 -1
- package/dist/Space.mjs +1 -2
- package/dist/Space.mjs.map +1 -1
- package/dist/Tag.d.mts +1 -9
- package/dist/Tag.d.mts.map +1 -1
- package/dist/Tag.mjs +1 -2
- package/dist/Tag.mjs.map +1 -1
- package/dist/Typography.d.mts +5 -6
- package/dist/Typography.d.mts.map +1 -1
- package/dist/Typography.mjs +1 -2
- package/dist/Typography.mjs.map +1 -1
- package/dist/_virtual/_rolldown/runtime.mjs +6 -11
- package/dist/components/atoms/checkbox/checkbox.d.mts +2 -17
- package/dist/components/atoms/checkbox/checkbox.d.mts.map +1 -1
- package/dist/components/atoms/checkbox/checkbox.mjs +2 -4
- package/dist/components/atoms/checkbox/checkbox.mjs.map +1 -1
- package/dist/components/atoms/checkbox/group.d.mts +2 -16
- package/dist/components/atoms/checkbox/group.d.mts.map +1 -1
- package/dist/components/atoms/checkbox/group.mjs +4 -5
- package/dist/components/atoms/checkbox/group.mjs.map +1 -1
- package/dist/components/atoms/checkbox/index.d.mts +3 -4
- package/dist/components/atoms/checkbox/index.d.mts.map +1 -1
- package/dist/components/atoms/checkbox/index.mjs +1 -2
- package/dist/components/atoms/checkbox/index.mjs.map +1 -1
- package/dist/components/atoms/color-picker.d.mts +2 -15
- package/dist/components/atoms/color-picker.d.mts.map +1 -1
- package/dist/components/atoms/color-picker.mjs +2 -4
- package/dist/components/atoms/color-picker.mjs.map +1 -1
- package/dist/components/atoms/date-picker.d.mts +2 -11
- package/dist/components/atoms/date-picker.d.mts.map +1 -1
- package/dist/components/atoms/date-picker.mjs +2 -4
- package/dist/components/atoms/date-picker.mjs.map +1 -1
- package/dist/components/atoms/float-button/back-top.d.mts +2 -10
- package/dist/components/atoms/float-button/back-top.d.mts.map +1 -1
- package/dist/components/atoms/float-button/back-top.mjs +4 -5
- package/dist/components/atoms/float-button/back-top.mjs.map +1 -1
- package/dist/components/atoms/float-button/float-button.d.mts +2 -8
- package/dist/components/atoms/float-button/float-button.d.mts.map +1 -1
- package/dist/components/atoms/float-button/float-button.mjs +1 -2
- package/dist/components/atoms/float-button/float-button.mjs.map +1 -1
- package/dist/components/atoms/float-button/index.d.mts +3 -4
- package/dist/components/atoms/float-button/index.d.mts.map +1 -1
- package/dist/components/atoms/float-button/index.mjs +1 -2
- package/dist/components/atoms/float-button/index.mjs.map +1 -1
- package/dist/components/atoms/index.d.mts +13 -12
- package/dist/components/atoms/input/index.d.mts +4 -5
- package/dist/components/atoms/input/index.d.mts.map +1 -1
- package/dist/components/atoms/input/index.mjs +2 -3
- package/dist/components/atoms/input/index.mjs.map +1 -1
- package/dist/components/atoms/input/input.d.mts +2 -7
- package/dist/components/atoms/input/input.d.mts.map +1 -1
- package/dist/components/atoms/input/input.mjs +1 -2
- package/dist/components/atoms/input/input.mjs.map +1 -1
- package/dist/components/atoms/input/search.d.mts +2 -15
- package/dist/components/atoms/input/search.d.mts.map +1 -1
- package/dist/components/atoms/input/search.mjs +2 -4
- package/dist/components/atoms/input/search.mjs.map +1 -1
- package/dist/components/atoms/input/text-area.d.mts +2 -8
- package/dist/components/atoms/input/text-area.d.mts.map +1 -1
- package/dist/components/atoms/input/text-area.mjs +1 -2
- package/dist/components/atoms/input/text-area.mjs.map +1 -1
- package/dist/components/atoms/option-group.d.mts +1 -1
- package/dist/components/atoms/option-group.d.mts.map +1 -1
- package/dist/components/atoms/option-group.mjs +1 -1
- package/dist/components/atoms/option-group.mjs.map +1 -1
- package/dist/components/atoms/popover.d.mts +2 -14
- package/dist/components/atoms/popover.d.mts.map +1 -1
- package/dist/components/atoms/popover.mjs +1 -2
- package/dist/components/atoms/popover.mjs.map +1 -1
- package/dist/components/atoms/progress.d.mts +2 -10
- package/dist/components/atoms/progress.d.mts.map +1 -1
- package/dist/components/atoms/progress.mjs +1 -2
- package/dist/components/atoms/progress.mjs.map +1 -1
- package/dist/components/atoms/radio/context.mjs +2 -4
- package/dist/components/atoms/radio/context.mjs.map +1 -1
- package/dist/components/atoms/radio/group.d.mts +2 -19
- package/dist/components/atoms/radio/group.d.mts.map +1 -1
- package/dist/components/atoms/radio/group.mjs +2 -4
- package/dist/components/atoms/radio/group.mjs.map +1 -1
- package/dist/components/atoms/radio/index.d.mts +3 -4
- package/dist/components/atoms/radio/index.d.mts.map +1 -1
- package/dist/components/atoms/radio/index.mjs +1 -2
- package/dist/components/atoms/radio/index.mjs.map +1 -1
- package/dist/components/atoms/radio/radio.d.mts +2 -18
- package/dist/components/atoms/radio/radio.d.mts.map +1 -1
- package/dist/components/atoms/radio/radio.mjs +2 -4
- package/dist/components/atoms/radio/radio.mjs.map +1 -1
- package/dist/components/atoms/select.d.mts +2 -10
- package/dist/components/atoms/select.d.mts.map +1 -1
- package/dist/components/atoms/select.mjs +2 -3
- package/dist/components/atoms/select.mjs.map +1 -1
- package/dist/components/atoms/skeleton/button.d.mts +2 -7
- package/dist/components/atoms/skeleton/button.d.mts.map +1 -1
- package/dist/components/atoms/skeleton/button.mjs +1 -2
- package/dist/components/atoms/skeleton/button.mjs.map +1 -1
- package/dist/components/atoms/skeleton/index.d.mts +4 -5
- package/dist/components/atoms/skeleton/index.d.mts.map +1 -1
- package/dist/components/atoms/skeleton/index.mjs +2 -3
- package/dist/components/atoms/skeleton/index.mjs.map +1 -1
- package/dist/components/atoms/skeleton/node.d.mts +2 -7
- package/dist/components/atoms/skeleton/node.d.mts.map +1 -1
- package/dist/components/atoms/skeleton/node.mjs +1 -2
- package/dist/components/atoms/skeleton/node.mjs.map +1 -1
- package/dist/components/atoms/skeleton/skeleton.d.mts +2 -20
- package/dist/components/atoms/skeleton/skeleton.d.mts.map +1 -1
- package/dist/components/atoms/skeleton/skeleton.mjs +2 -4
- package/dist/components/atoms/skeleton/skeleton.mjs.map +1 -1
- package/dist/components/atoms/spin.d.mts +2 -10
- package/dist/components/atoms/spin.d.mts.map +1 -1
- package/dist/components/atoms/spin.mjs +2 -4
- package/dist/components/atoms/spin.mjs.map +1 -1
- package/dist/components/atoms/switch.d.mts +2 -14
- package/dist/components/atoms/switch.d.mts.map +1 -1
- package/dist/components/atoms/switch.mjs +4 -6
- package/dist/components/atoms/switch.mjs.map +1 -1
- package/dist/components/atoms/typography/link.d.mts +2 -10
- package/dist/components/atoms/typography/link.d.mts.map +1 -1
- package/dist/components/atoms/typography/link.mjs +1 -2
- package/dist/components/atoms/typography/link.mjs.map +1 -1
- package/dist/components/atoms/typography/paragraph.d.mts +2 -8
- package/dist/components/atoms/typography/paragraph.d.mts.map +1 -1
- package/dist/components/atoms/typography/paragraph.mjs +1 -2
- package/dist/components/atoms/typography/paragraph.mjs.map +1 -1
- package/dist/components/atoms/typography/text.d.mts +2 -10
- package/dist/components/atoms/typography/text.d.mts.map +1 -1
- package/dist/components/atoms/typography/text.mjs +1 -2
- package/dist/components/atoms/typography/text.mjs.map +1 -1
- package/dist/components/atoms/typography/title.d.mts +2 -9
- package/dist/components/atoms/typography/title.d.mts.map +1 -1
- package/dist/components/atoms/typography/title.mjs +1 -2
- package/dist/components/atoms/typography/title.mjs.map +1 -1
- package/dist/components/atoms/typography/typography.d.mts +2 -7
- package/dist/components/atoms/typography/typography.d.mts.map +1 -1
- package/dist/components/atoms/typography/typography.mjs +1 -2
- package/dist/components/atoms/typography/typography.mjs.map +1 -1
- package/dist/components/molecules/collapse.d.mts +2 -14
- package/dist/components/molecules/collapse.d.mts.map +1 -1
- package/dist/components/molecules/collapse.mjs +4 -6
- package/dist/components/molecules/collapse.mjs.map +1 -1
- package/dist/components/molecules/dropdown.d.mts +2 -15
- package/dist/components/molecules/dropdown.d.mts.map +1 -1
- package/dist/components/molecules/dropdown.mjs +2 -4
- package/dist/components/molecules/dropdown.mjs.map +1 -1
- package/dist/components/molecules/index.d.mts +7 -7
- package/dist/components/molecules/marquees/index.d.mts +3 -4
- package/dist/components/molecules/marquees/index.d.mts.map +1 -1
- package/dist/components/molecules/marquees/index.mjs +2 -3
- package/dist/components/molecules/marquees/index.mjs.map +1 -1
- package/dist/components/molecules/marquees/item.d.mts +2 -11
- package/dist/components/molecules/marquees/item.d.mts.map +1 -1
- package/dist/components/molecules/marquees/item.mjs +14 -19
- package/dist/components/molecules/marquees/item.mjs.map +1 -1
- package/dist/components/molecules/marquees/marquees.d.mts +2 -11
- package/dist/components/molecules/marquees/marquees.d.mts.map +1 -1
- package/dist/components/molecules/marquees/marquees.mjs +10 -20
- package/dist/components/molecules/marquees/marquees.mjs.map +1 -1
- package/dist/components/molecules/marquees/use-pause-on-hover.mjs +26 -0
- package/dist/components/molecules/marquees/use-pause-on-hover.mjs.map +1 -0
- package/dist/components/molecules/menu/item/item.mjs +2 -4
- package/dist/components/molecules/menu/item/item.mjs.map +1 -1
- package/dist/components/molecules/menu/item/label.mjs +1 -2
- package/dist/components/molecules/menu/item/label.mjs.map +1 -1
- package/dist/components/molecules/menu/menu.d.mts +2 -17
- package/dist/components/molecules/menu/menu.d.mts.map +1 -1
- package/dist/components/molecules/menu/menu.mjs +2 -4
- package/dist/components/molecules/menu/menu.mjs.map +1 -1
- package/dist/components/molecules/reveals/item.d.mts +2 -15
- package/dist/components/molecules/reveals/item.d.mts.map +1 -1
- package/dist/components/molecules/reveals/item.mjs +2 -4
- package/dist/components/molecules/reveals/item.mjs.map +1 -1
- package/dist/components/molecules/reveals/reveals.d.mts +2 -18
- package/dist/components/molecules/reveals/reveals.d.mts.map +1 -1
- package/dist/components/molecules/reveals/reveals.mjs +2 -3
- package/dist/components/molecules/reveals/reveals.mjs.map +1 -1
- package/dist/components/molecules/splitter/index.d.mts +3 -4
- package/dist/components/molecules/splitter/index.d.mts.map +1 -1
- package/dist/components/molecules/splitter/index.mjs +1 -2
- package/dist/components/molecules/splitter/index.mjs.map +1 -1
- package/dist/components/molecules/splitter/panel.d.mts +2 -8
- package/dist/components/molecules/splitter/panel.d.mts.map +1 -1
- package/dist/components/molecules/splitter/panel.mjs +1 -2
- package/dist/components/molecules/splitter/panel.mjs.map +1 -1
- package/dist/components/molecules/splitter/splitter.d.mts +2 -14
- package/dist/components/molecules/splitter/splitter.d.mts.map +1 -1
- package/dist/components/molecules/splitter/splitter.mjs +2 -4
- package/dist/components/molecules/splitter/splitter.mjs.map +1 -1
- package/dist/components/molecules/upload.d.mts +2 -15
- package/dist/components/molecules/upload.d.mts.map +1 -1
- package/dist/components/molecules/upload.mjs +2 -4
- package/dist/components/molecules/upload.mjs.map +1 -1
- package/dist/components/organisms/drawer.d.mts +2 -25
- package/dist/components/organisms/drawer.d.mts.map +1 -1
- package/dist/components/organisms/drawer.mjs +2 -4
- package/dist/components/organisms/drawer.mjs.map +1 -1
- package/dist/components/organisms/imperative-stack.mjs +9 -11
- package/dist/components/organisms/imperative-stack.mjs.map +1 -1
- package/dist/components/organisms/index.d.mts +6 -5
- package/dist/components/organisms/list/index.d.mts +3 -4
- package/dist/components/organisms/list/index.d.mts.map +1 -1
- package/dist/components/organisms/list/index.mjs +1 -2
- package/dist/components/organisms/list/index.mjs.map +1 -1
- package/dist/components/organisms/list/item.d.mts +2 -8
- package/dist/components/organisms/list/item.d.mts.map +1 -1
- package/dist/components/organisms/list/item.mjs +1 -2
- package/dist/components/organisms/list/item.mjs.map +1 -1
- package/dist/components/organisms/list/list.d.mts +3 -20
- package/dist/components/organisms/list/list.d.mts.map +1 -1
- package/dist/components/organisms/list/list.mjs +3 -5
- package/dist/components/organisms/list/list.mjs.map +1 -1
- package/dist/components/organisms/modal.d.mts +2 -22
- package/dist/components/organisms/modal.d.mts.map +1 -1
- package/dist/components/organisms/modal.mjs +3 -5
- package/dist/components/organisms/modal.mjs.map +1 -1
- package/dist/components/organisms/swiper/index.d.mts +3 -4
- package/dist/components/organisms/swiper/index.d.mts.map +1 -1
- package/dist/components/organisms/swiper/index.mjs +2 -3
- package/dist/components/organisms/swiper/index.mjs.map +1 -1
- package/dist/components/organisms/swiper/slide.d.mts +2 -8
- package/dist/components/organisms/swiper/slide.d.mts.map +1 -1
- package/dist/components/organisms/swiper/slide.mjs +2 -4
- package/dist/components/organisms/swiper/slide.mjs.map +1 -1
- package/dist/components/organisms/swiper/swiper.d.mts +2 -15
- package/dist/components/organisms/swiper/swiper.d.mts.map +1 -1
- package/dist/components/organisms/swiper/swiper.mjs +2 -4
- package/dist/components/organisms/swiper/swiper.mjs.map +1 -1
- package/dist/components/organisms/toast.d.mts +2 -13
- package/dist/components/organisms/toast.d.mts.map +1 -1
- package/dist/components/organisms/toast.mjs +2 -4
- package/dist/components/organisms/toast.mjs.map +1 -1
- package/dist/components/templates/container.d.mts +2 -10
- package/dist/components/templates/container.d.mts.map +1 -1
- package/dist/components/templates/container.mjs +1 -2
- package/dist/components/templates/container.mjs.map +1 -1
- package/dist/components/templates/empty.d.mts +2 -11
- package/dist/components/templates/empty.d.mts.map +1 -1
- package/dist/components/templates/empty.mjs +1 -2
- package/dist/components/templates/empty.mjs.map +1 -1
- package/dist/components/templates/grid/col.d.mts +2 -17
- package/dist/components/templates/grid/col.d.mts.map +1 -1
- package/dist/components/templates/grid/col.mjs +2 -4
- package/dist/components/templates/grid/col.mjs.map +1 -1
- package/dist/components/templates/grid/row-context.mjs +1 -2
- package/dist/components/templates/grid/row-context.mjs.map +1 -1
- package/dist/components/templates/grid/row.d.mts +2 -13
- package/dist/components/templates/grid/row.d.mts.map +1 -1
- package/dist/components/templates/grid/row.mjs +2 -4
- package/dist/components/templates/grid/row.mjs.map +1 -1
- package/dist/components/templates/layout/content.d.mts +2 -9
- package/dist/components/templates/layout/content.d.mts.map +1 -1
- package/dist/components/templates/layout/content.mjs +1 -2
- package/dist/components/templates/layout/content.mjs.map +1 -1
- package/dist/components/templates/layout/footer.d.mts +2 -8
- package/dist/components/templates/layout/footer.d.mts.map +1 -1
- package/dist/components/templates/layout/footer.mjs +1 -2
- package/dist/components/templates/layout/footer.mjs.map +1 -1
- package/dist/components/templates/layout/header.d.mts +2 -9
- package/dist/components/templates/layout/header.d.mts.map +1 -1
- package/dist/components/templates/layout/header.mjs +1 -2
- package/dist/components/templates/layout/header.mjs.map +1 -1
- package/dist/components/templates/layout/layout.d.mts +2 -8
- package/dist/components/templates/layout/layout.d.mts.map +1 -1
- package/dist/components/templates/layout/layout.mjs +1 -2
- package/dist/components/templates/layout/layout.mjs.map +1 -1
- package/dist/components/templates/layout/sider-context.mjs +1 -2
- package/dist/components/templates/layout/sider-context.mjs.map +1 -1
- package/dist/components/templates/layout/sider.d.mts +2 -21
- package/dist/components/templates/layout/sider.d.mts.map +1 -1
- package/dist/components/templates/layout/sider.mjs +2 -4
- package/dist/components/templates/layout/sider.mjs.map +1 -1
- package/dist/components/templates/page-header.d.mts +2 -14
- package/dist/components/templates/page-header.d.mts.map +1 -1
- package/dist/components/templates/page-header.mjs +2 -4
- package/dist/components/templates/page-header.mjs.map +1 -1
- package/dist/components/templates/result.d.mts +2 -13
- package/dist/components/templates/result.d.mts.map +1 -1
- package/dist/components/templates/result.mjs +1 -2
- package/dist/components/templates/result.mjs.map +1 -1
- package/dist/core/accordion.d.mts +5 -22
- package/dist/core/accordion.d.mts.map +1 -1
- package/dist/core/accordion.mjs +3 -5
- package/dist/core/accordion.mjs.map +1 -1
- package/dist/core/badge.d.mts +4 -13
- package/dist/core/badge.d.mts.map +1 -1
- package/dist/core/badge.mjs +2 -3
- package/dist/core/badge.mjs.map +1 -1
- package/dist/core/button.d.mts +5 -15
- package/dist/core/button.d.mts.map +1 -1
- package/dist/core/button.mjs +1 -2
- package/dist/core/button.mjs.map +1 -1
- package/dist/core/calendar.d.mts +4 -21
- package/dist/core/calendar.d.mts.map +1 -1
- package/dist/core/calendar.mjs +3 -5
- package/dist/core/calendar.mjs.map +1 -1
- package/dist/core/checkbox.d.mts +2 -8
- package/dist/core/checkbox.d.mts.map +1 -1
- package/dist/core/checkbox.mjs +3 -5
- package/dist/core/checkbox.mjs.map +1 -1
- package/dist/core/dialog.d.mts +12 -48
- package/dist/core/dialog.d.mts.map +1 -1
- package/dist/core/dialog.mjs +3 -5
- package/dist/core/dialog.mjs.map +1 -1
- package/dist/core/drawer.d.mts +11 -46
- package/dist/core/drawer.d.mts.map +1 -1
- package/dist/core/drawer.mjs +3 -5
- package/dist/core/drawer.mjs.map +1 -1
- package/dist/core/field.d.mts +15 -54
- package/dist/core/field.d.mts.map +1 -1
- package/dist/core/field.mjs +3 -5
- package/dist/core/field.mjs.map +1 -1
- package/dist/core/input.d.mts +2 -9
- package/dist/core/input.d.mts.map +1 -1
- package/dist/core/input.mjs +2 -3
- package/dist/core/input.mjs.map +1 -1
- package/dist/core/label.d.mts +1 -7
- package/dist/core/label.d.mts.map +1 -1
- package/dist/core/label.mjs +2 -4
- package/dist/core/label.mjs.map +1 -1
- package/dist/core/popover.d.mts +9 -33
- package/dist/core/popover.d.mts.map +1 -1
- package/dist/core/popover.mjs +3 -5
- package/dist/core/popover.mjs.map +1 -1
- package/dist/core/progress.d.mts +2 -11
- package/dist/core/progress.d.mts.map +1 -1
- package/dist/core/progress.mjs +3 -5
- package/dist/core/progress.mjs.map +1 -1
- package/dist/core/radio-group.d.mts +4 -15
- package/dist/core/radio-group.d.mts.map +1 -1
- package/dist/core/radio-group.mjs +3 -5
- package/dist/core/radio-group.mjs.map +1 -1
- package/dist/core/resizable.d.mts +5 -17
- package/dist/core/resizable.d.mts.map +1 -1
- package/dist/core/resizable.mjs +3 -5
- package/dist/core/resizable.mjs.map +1 -1
- package/dist/core/select.d.mts +13 -50
- package/dist/core/select.d.mts.map +1 -1
- package/dist/core/select.mjs +3 -5
- package/dist/core/select.mjs.map +1 -1
- package/dist/core/separator.d.mts +2 -10
- package/dist/core/separator.d.mts.map +1 -1
- package/dist/core/separator.mjs +2 -4
- package/dist/core/separator.mjs.map +1 -1
- package/dist/core/skeleton.d.mts +2 -8
- package/dist/core/skeleton.d.mts.map +1 -1
- package/dist/core/skeleton.mjs +2 -3
- package/dist/core/skeleton.mjs.map +1 -1
- package/dist/core/switch.d.mts +3 -12
- package/dist/core/switch.d.mts.map +1 -1
- package/dist/core/switch.mjs +3 -5
- package/dist/core/switch.mjs.map +1 -1
- package/dist/core/textarea.d.mts +2 -8
- package/dist/core/textarea.d.mts.map +1 -1
- package/dist/core/textarea.mjs +2 -3
- package/dist/core/textarea.mjs.map +1 -1
- package/dist/core.mjs +1 -2
- package/dist/index.d.mts +31 -33
- package/dist/index.mjs +2 -3
- package/dist/providers/config/config.d.mts +2 -14
- package/dist/providers/config/config.d.mts.map +1 -1
- package/dist/providers/config/config.mjs +5 -6
- package/dist/providers/config/config.mjs.map +1 -1
- package/dist/providers/config/context.d.mts +0 -2
- package/dist/providers/config/context.d.mts.map +1 -1
- package/dist/providers/config/context.mjs +2 -4
- package/dist/providers/config/context.mjs.map +1 -1
- package/dist/providers/config/registry.d.mts +2 -7
- package/dist/providers/config/registry.d.mts.map +1 -1
- package/dist/providers/config/registry.mjs +2 -4
- package/dist/providers/config/registry.mjs.map +1 -1
- package/dist/providers/config/types.d.mts.map +1 -1
- package/dist/providers.d.mts +1 -2
- package/dist/providers.mjs +1 -2
- package/dist/style.css +1013 -1868
- package/dist/utils.d.mts +0 -1
- package/dist/utils.d.mts.map +1 -1
- package/dist/utils.mjs +1 -2
- package/dist/utils.mjs.map +1 -1
- package/package.json +29 -28
- package/dist/components/templates/grid/index.d.mts +0 -2
- package/dist/components/templates/index.d.mts +0 -13
- package/dist/providers/config/index.d.mts +0 -4
- package/dist/style.css.map +0 -1
- package/dist/style.mjs +0 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"title.mjs","names":[],"sources":["../../../../src/components/atoms/typography/title.tsx"],"sourcesContent":["import { cn } from '@repo/ui/utils';\n\nexport interface Props extends React.ComponentPropsWithoutRef<\n 'h1' | 'h2' | 'h3' | 'h4' | 'h5' | 'h6'\n> {\n level?: 1 | 2 | 3 | 4 | 5 | 6;\n}\n\ntype ElementType = 'h1' | 'h2' | 'h3' | 'h4' | 'h5' | 'h6';\n\n// Scale up at wider breakpoints instead of a single fixed size — the desktop\n// size stays the same as before, but narrow/mobile viewports now get a\n// smaller starting size instead of always rendering at the full desktop size.\nconst styles: Record<string, string> = {\n h1: 'text-4xl sm:text-5xl lg:text-6xl',\n h2: 'text-3xl sm:text-4xl lg:text-5xl',\n h3: 'text-2xl sm:text-3xl lg:text-4xl',\n h4: 'text-xl sm:text-2xl lg:text-3xl',\n h5: 'text-lg sm:text-xl lg:text-2xl',\n h6: 'text-base sm:text-lg lg:text-xl',\n};\n\nconst Title = ({ children, level = 1, className, ...props }: Props) => {\n const Element: ElementType = level < 1 || level > 6 ? 'h1' : `h${level}`;\n\n return (\n <Element\n className={cn('leading-snug font-bold', styles[Element], className)}\n {...props}\n >\n {children}\n </Element>\n );\n};\n\nexport default Title;\n"],"mappings":"
|
|
1
|
+
{"version":3,"file":"title.mjs","names":[],"sources":["../../../../src/components/atoms/typography/title.tsx"],"sourcesContent":["import { cn } from '@repo/ui/utils';\n\nexport interface Props extends React.ComponentPropsWithoutRef<\n 'h1' | 'h2' | 'h3' | 'h4' | 'h5' | 'h6'\n> {\n level?: 1 | 2 | 3 | 4 | 5 | 6;\n}\n\ntype ElementType = 'h1' | 'h2' | 'h3' | 'h4' | 'h5' | 'h6';\n\n// Scale up at wider breakpoints instead of a single fixed size — the desktop\n// size stays the same as before, but narrow/mobile viewports now get a\n// smaller starting size instead of always rendering at the full desktop size.\nconst styles: Record<string, string> = {\n h1: 'text-4xl sm:text-5xl lg:text-6xl',\n h2: 'text-3xl sm:text-4xl lg:text-5xl',\n h3: 'text-2xl sm:text-3xl lg:text-4xl',\n h4: 'text-xl sm:text-2xl lg:text-3xl',\n h5: 'text-lg sm:text-xl lg:text-2xl',\n h6: 'text-base sm:text-lg lg:text-xl',\n};\n\nconst Title = ({ children, level = 1, className, ...props }: Props) => {\n const Element: ElementType = level < 1 || level > 6 ? 'h1' : `h${level}`;\n\n return (\n <Element\n className={cn('leading-snug font-bold', styles[Element], className)}\n {...props}\n >\n {children}\n </Element>\n );\n};\n\nexport default Title;\n"],"mappings":";;;AAaA,MAAM,SAAiC;CACrC,IAAI;CACJ,IAAI;CACJ,IAAI;CACJ,IAAI;CACJ,IAAI;CACJ,IAAI;AACN;AAEA,MAAM,SAAS,EAAE,UAAU,QAAQ,GAAG,WAAW,GAAG,YAAmB;CACrE,MAAM,UAAuB,QAAQ,KAAK,QAAQ,IAAI,OAAO,IAAI;CAEjE,OACE,oBAAC,SAAD;EACE,WAAW,GAAG,0BAA0B,OAAO,UAAU,SAAS;EAClE,GAAI;EAEH;CACM,CAAA;AAEb"}
|
|
@@ -1,11 +1,6 @@
|
|
|
1
|
-
import * as react_jsx_runtime0 from "react/jsx-runtime";
|
|
2
|
-
|
|
3
1
|
//#region src/components/atoms/typography/typography.d.ts
|
|
4
2
|
interface Props extends React.ComponentPropsWithoutRef<'article'> {}
|
|
5
|
-
declare const Typography: ({
|
|
6
|
-
children,
|
|
7
|
-
...props
|
|
8
|
-
}: Props) => react_jsx_runtime0.JSX.Element;
|
|
3
|
+
declare const Typography: ({ children, ...props }: Props) => import("react").JSX.Element;
|
|
9
4
|
//#endregion
|
|
10
|
-
export { Props, Typography };
|
|
5
|
+
export { Props, Typography as default };
|
|
11
6
|
//# sourceMappingURL=typography.d.mts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"typography.d.mts","names":[],"sources":["../../../../src/components/atoms/typography/typography.tsx"],"mappings":"
|
|
1
|
+
{"version":3,"file":"typography.d.mts","names":[],"sources":["../../../../src/components/atoms/typography/typography.tsx"],"mappings":";UAAiB,cAAc,MAAM;cAE/B,eAAc,aAAA,SAAwB,0BAAK,IAAA"}
|
|
@@ -1,5 +1,4 @@
|
|
|
1
1
|
import { jsx } from "react/jsx-runtime";
|
|
2
|
-
|
|
3
2
|
//#region src/components/atoms/typography/typography.tsx
|
|
4
3
|
const Typography = ({ children, ...props }) => {
|
|
5
4
|
return /* @__PURE__ */ jsx("article", {
|
|
@@ -7,7 +6,7 @@ const Typography = ({ children, ...props }) => {
|
|
|
7
6
|
children
|
|
8
7
|
});
|
|
9
8
|
};
|
|
10
|
-
|
|
11
9
|
//#endregion
|
|
12
10
|
export { Typography as default };
|
|
11
|
+
|
|
13
12
|
//# sourceMappingURL=typography.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"typography.mjs","names":[],"sources":["../../../../src/components/atoms/typography/typography.tsx"],"sourcesContent":["export interface Props extends React.ComponentPropsWithoutRef<'article'> {}\n\nconst Typography = ({ children, ...props }: Props) => {\n return <article {...props}>{children}</article>;\n};\n\nexport default Typography;\n"],"mappings":"
|
|
1
|
+
{"version":3,"file":"typography.mjs","names":[],"sources":["../../../../src/components/atoms/typography/typography.tsx"],"sourcesContent":["export interface Props extends React.ComponentPropsWithoutRef<'article'> {}\n\nconst Typography = ({ children, ...props }: Props) => {\n return <article {...props}>{children}</article>;\n};\n\nexport default Typography;\n"],"mappings":";;AAEA,MAAM,cAAc,EAAE,UAAU,GAAG,YAAmB;CACpD,OAAO,oBAAC,WAAD;EAAS,GAAI;EAAQ;CAAkB,CAAA;AAChD"}
|
|
@@ -1,6 +1,4 @@
|
|
|
1
1
|
import React from "react";
|
|
2
|
-
import * as react_jsx_runtime0 from "react/jsx-runtime";
|
|
3
|
-
|
|
4
2
|
//#region src/components/molecules/collapse.d.ts
|
|
5
3
|
interface Item {
|
|
6
4
|
key: React.Key;
|
|
@@ -21,17 +19,7 @@ interface Props extends Omit<React.ComponentPropsWithoutRef<'div'>, 'onChange' |
|
|
|
21
19
|
activeKey?: string[] | number[];
|
|
22
20
|
onChange?: (keys: string[]) => void;
|
|
23
21
|
}
|
|
24
|
-
declare const Collapse: ({
|
|
25
|
-
expandIcon,
|
|
26
|
-
accordion,
|
|
27
|
-
items,
|
|
28
|
-
className,
|
|
29
|
-
classNames,
|
|
30
|
-
defaultActiveKey,
|
|
31
|
-
activeKey: _activeKey,
|
|
32
|
-
onChange: _onChange,
|
|
33
|
-
...props
|
|
34
|
-
}: Props) => react_jsx_runtime0.JSX.Element;
|
|
22
|
+
declare const Collapse: ({ expandIcon, accordion, items, className, classNames, defaultActiveKey, activeKey: _activeKey, onChange: _onChange, ...props }: Props) => React.JSX.Element;
|
|
35
23
|
//#endregion
|
|
36
|
-
export {
|
|
24
|
+
export { Props, Collapse as default };
|
|
37
25
|
//# sourceMappingURL=collapse.d.mts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"collapse.d.mts","names":[],"sources":["../../../src/components/molecules/collapse.tsx"],"mappings":"
|
|
1
|
+
{"version":3,"file":"collapse.d.mts","names":[],"sources":["../../../src/components/molecules/collapse.tsx"],"mappings":";;UAUU;EACR,KAAK,MAAM;EACX,OAAO,MAAM;EACb;EACA,UAAU,MAAM;;UAGD,cAAc,KAC7B,MAAM;EAGN,QAAQ;EACR;EACA,aAAa,MAAM;EACnB;IACE;IACA;IACA;;EAEF;EACA;EACA,YAAY;;cAGR,aAAY,YAAA,WAAA,OAAA,WAAA,YAAA,kBAAA,WAAA,YAAA,UAAA,cAAA,SAUf,UAAK,MAAA,IAAA"}
|
|
@@ -1,10 +1,8 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
"use client";
|
|
3
2
|
import { cn } from "../../utils.mjs";
|
|
4
3
|
import { accordion_exports } from "../../core/accordion.mjs";
|
|
5
|
-
import
|
|
4
|
+
import "react";
|
|
6
5
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
7
|
-
|
|
8
6
|
//#region src/components/molecules/collapse.tsx
|
|
9
7
|
const { Accordion, AccordionItem, AccordionTrigger, AccordionContent } = accordion_exports;
|
|
10
8
|
const Collapse = ({ expandIcon, accordion = false, items = [], className, classNames, defaultActiveKey, activeKey: _activeKey, onChange: _onChange, ...props }) => {
|
|
@@ -27,7 +25,7 @@ const Collapse = ({ expandIcon, accordion = false, items = [], className, classN
|
|
|
27
25
|
className,
|
|
28
26
|
...accordionProps,
|
|
29
27
|
children: items.map(({ key, label, children, disabled }) => /* @__PURE__ */ jsxs(AccordionItem, {
|
|
30
|
-
value:
|
|
28
|
+
value: String(key),
|
|
31
29
|
className: cn("border-none", classNames?.item),
|
|
32
30
|
disabled,
|
|
33
31
|
children: [/* @__PURE__ */ jsx(AccordionTrigger, {
|
|
@@ -42,7 +40,7 @@ const Collapse = ({ expandIcon, accordion = false, items = [], className, classN
|
|
|
42
40
|
}, key))
|
|
43
41
|
});
|
|
44
42
|
};
|
|
45
|
-
|
|
46
43
|
//#endregion
|
|
47
44
|
export { Collapse as default };
|
|
45
|
+
|
|
48
46
|
//# sourceMappingURL=collapse.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"collapse.mjs","names":["accordion"],"sources":["../../../src/components/molecules/collapse.tsx"],"sourcesContent":["'use client';\n\nimport React from 'react';\n\nimport { accordion } from '@repo/ui/core';\nimport { cn } from '@repo/ui/utils';\n\nconst { Accordion, AccordionItem, AccordionTrigger, AccordionContent } =\n accordion;\n\ninterface Item {\n key: React.Key;\n label: React.ReactNode;\n disabled?: boolean;\n children: React.ReactNode;\n}\n\nexport interface Props extends Omit<\n React.ComponentPropsWithoutRef<'div'>,\n 'onChange' | 'defaultValue' | 'value' | 'dir'\n> {\n items?: Item[];\n accordion?: boolean;\n expandIcon?: React.ReactNode;\n classNames?: {\n item?: string;\n header?: string;\n body?: string;\n };\n defaultActiveKey?: string[] | number[];\n activeKey?: string[] | number[];\n onChange?: (keys: string[]) => void;\n}\n\nconst Collapse = ({\n expandIcon,\n accordion = false,\n items = [],\n className,\n classNames,\n defaultActiveKey,\n activeKey: _activeKey,\n onChange: _onChange,\n ...props\n}: Props) => {\n const controlled = _activeKey !== undefined;\n\n const accordionProps = accordion\n ? {\n type: 'single' as const,\n onValueChange: (value: string) => {\n _onChange?.(value ? [value] : []);\n },\n ...(controlled\n ? { value: `${_activeKey?.[0] ?? ''}` }\n : { defaultValue: `${defaultActiveKey?.[0] ?? ''}` }),\n }\n : {\n type: 'multiple' as const,\n onValueChange: (values: string[]) => {\n _onChange?.(values);\n },\n ...(controlled\n ? { value: _activeKey?.map(key => `${key}`) }\n : { defaultValue: defaultActiveKey?.map(key => `${key}`) }),\n };\n\n return (\n <Accordion {...props} className={className} {...accordionProps}>\n {items.map(({ key, label, children, disabled }) => (\n <AccordionItem\n key={key}\n value={
|
|
1
|
+
{"version":3,"file":"collapse.mjs","names":["accordion"],"sources":["../../../src/components/molecules/collapse.tsx"],"sourcesContent":["'use client';\n\nimport React from 'react';\n\nimport { accordion } from '@repo/ui/core';\nimport { cn } from '@repo/ui/utils';\n\nconst { Accordion, AccordionItem, AccordionTrigger, AccordionContent } =\n accordion;\n\ninterface Item {\n key: React.Key;\n label: React.ReactNode;\n disabled?: boolean;\n children: React.ReactNode;\n}\n\nexport interface Props extends Omit<\n React.ComponentPropsWithoutRef<'div'>,\n 'onChange' | 'defaultValue' | 'value' | 'dir'\n> {\n items?: Item[];\n accordion?: boolean;\n expandIcon?: React.ReactNode;\n classNames?: {\n item?: string;\n header?: string;\n body?: string;\n };\n defaultActiveKey?: string[] | number[];\n activeKey?: string[] | number[];\n onChange?: (keys: string[]) => void;\n}\n\nconst Collapse = ({\n expandIcon,\n accordion = false,\n items = [],\n className,\n classNames,\n defaultActiveKey,\n activeKey: _activeKey,\n onChange: _onChange,\n ...props\n}: Props) => {\n const controlled = _activeKey !== undefined;\n\n const accordionProps = accordion\n ? {\n type: 'single' as const,\n onValueChange: (value: string) => {\n _onChange?.(value ? [value] : []);\n },\n ...(controlled\n ? { value: `${_activeKey?.[0] ?? ''}` }\n : { defaultValue: `${defaultActiveKey?.[0] ?? ''}` }),\n }\n : {\n type: 'multiple' as const,\n onValueChange: (values: string[]) => {\n _onChange?.(values);\n },\n ...(controlled\n ? { value: _activeKey?.map(key => `${key}`) }\n : { defaultValue: defaultActiveKey?.map(key => `${key}`) }),\n };\n\n return (\n <Accordion {...props} className={className} {...accordionProps}>\n {items.map(({ key, label, children, disabled }) => (\n <AccordionItem\n key={key}\n value={String(key)}\n className={cn(\n 'border-none',\n classNames?.item,\n //\n )}\n disabled={disabled}\n >\n <AccordionTrigger\n className={cn(\n 'hover:no-underline',\n classNames?.header,\n disabled && 'cursor-no-drop opacity-50',\n //\n )}\n expandIcon={expandIcon}\n disabled={disabled}\n >\n {label}\n </AccordionTrigger>\n <AccordionContent\n className={cn(\n classNames?.body,\n //\n )}\n >\n {children}\n </AccordionContent>\n </AccordionItem>\n ))}\n </Accordion>\n );\n};\n\nexport default Collapse;\n"],"mappings":";;;;;;AAOA,MAAM,EAAE,WAAW,eAAe,kBAAkB,qBAClDA;AA0BF,MAAM,YAAY,EAChB,YACA,YAAY,OACZ,QAAQ,CAAC,GACT,WACA,YACA,kBACA,WAAW,YACX,UAAU,WACV,GAAG,YACQ;CACX,MAAM,aAAa,eAAe,KAAA;CAElC,MAAM,iBAAiB,YACnB;EACE,MAAM;EACN,gBAAgB,UAAkB;GAChC,YAAY,QAAQ,CAAC,KAAK,IAAI,CAAC,CAAC;EAClC;EACA,GAAI,aACA,EAAE,OAAO,GAAG,aAAa,MAAM,KAAK,IACpC,EAAE,cAAc,GAAG,mBAAmB,MAAM,KAAK;CACvD,IACA;EACE,MAAM;EACN,gBAAgB,WAAqB;GACnC,YAAY,MAAM;EACpB;EACA,GAAI,aACA,EAAE,OAAO,YAAY,KAAI,QAAO,GAAG,KAAK,EAAE,IAC1C,EAAE,cAAc,kBAAkB,KAAI,QAAO,GAAG,KAAK,EAAE;CAC7D;CAEJ,OACE,oBAAC,WAAD;EAAW,GAAI;EAAkB;EAAW,GAAI;EAC7C,UAAA,MAAM,KAAK,EAAE,KAAK,OAAO,UAAU,eAClC,qBAAC,eAAD;GAEE,OAAO,OAAO,GAAG;GACjB,WAAW,GACT,eACA,YAAY,IAEd;GACU;GARZ,UAAA,CAUE,oBAAC,kBAAD;IACE,WAAW,GACT,sBACA,YAAY,QACZ,YAAY,2BAEd;IACY;IACF;IAET,UAAA;GACe,CAAA,GAClB,oBAAC,kBAAD;IACE,WAAW,GACT,YAAY,IAEd;IAEC;GACe,CAAA,CACL;EA7BR,GAAA,GA6BQ,CAChB;CACQ,CAAA;AAEf"}
|
|
@@ -1,7 +1,4 @@
|
|
|
1
1
|
import { MenuProps } from "./menu/menu.mjs";
|
|
2
|
-
import "../../Menu.mjs";
|
|
3
|
-
import * as react_jsx_runtime0 from "react/jsx-runtime";
|
|
4
|
-
|
|
5
2
|
//#region src/components/molecules/dropdown.d.ts
|
|
6
3
|
type ChangeEventHandler = (open: boolean) => void;
|
|
7
4
|
interface Props extends React.ComponentPropsWithoutRef<'div'> {
|
|
@@ -10,17 +7,7 @@ interface Props extends React.ComponentPropsWithoutRef<'div'> {
|
|
|
10
7
|
menu?: MenuProps;
|
|
11
8
|
onOpenChange?: ChangeEventHandler;
|
|
12
9
|
}
|
|
13
|
-
declare const Dropdown: ({
|
|
14
|
-
children,
|
|
15
|
-
menu,
|
|
16
|
-
trigger,
|
|
17
|
-
open: _open,
|
|
18
|
-
onOpenChange: _onOpenChange,
|
|
19
|
-
className,
|
|
20
|
-
onMouseEnter,
|
|
21
|
-
onMouseLeave,
|
|
22
|
-
...props
|
|
23
|
-
}: Props) => react_jsx_runtime0.JSX.Element;
|
|
10
|
+
declare const Dropdown: ({ children, menu, trigger, open: _open, onOpenChange: _onOpenChange, className, onMouseEnter, onMouseLeave, ...props }: Props) => import("react").JSX.Element;
|
|
24
11
|
//#endregion
|
|
25
|
-
export {
|
|
12
|
+
export { Props, Dropdown as default };
|
|
26
13
|
//# sourceMappingURL=dropdown.d.mts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dropdown.d.mts","names":[],"sources":["../../../src/components/molecules/dropdown.tsx"],"mappings":"
|
|
1
|
+
{"version":3,"file":"dropdown.d.mts","names":[],"sources":["../../../src/components/molecules/dropdown.tsx"],"mappings":";;KAWK,sBAAsB;UAEV,cAAc,MAAM;EACnC;EACA;EACA,OAAO;EACP,eAAe;;cAGX,aAAY,UAAA,MAAA,SAAA,MAAA,OAAA,cAAA,eAAA,WAAA,cAAA,iBAAA,SAUf,0BAAK,IAAA"}
|
|
@@ -1,12 +1,10 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
"use client";
|
|
3
2
|
import { cn } from "../../utils.mjs";
|
|
4
3
|
import Menu from "./menu/menu.mjs";
|
|
5
4
|
import { useId, useRef } from "react";
|
|
6
5
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
7
6
|
import { useControllableState, useKeyPress } from "@jbpark/use-hooks";
|
|
8
7
|
import { AnimatePresence, motion } from "motion/react";
|
|
9
|
-
|
|
10
8
|
//#region src/components/molecules/dropdown.tsx
|
|
11
9
|
const Dropdown = ({ children, menu, trigger = "hover", open: _open, onOpenChange: _onOpenChange = () => {}, className, onMouseEnter, onMouseLeave, ...props }) => {
|
|
12
10
|
const [open, onOpenChange] = useControllableState({
|
|
@@ -86,7 +84,7 @@ const Dropdown = ({ children, menu, trigger = "hover", open: _open, onOpenChange
|
|
|
86
84
|
}) })]
|
|
87
85
|
});
|
|
88
86
|
};
|
|
89
|
-
|
|
90
87
|
//#endregion
|
|
91
88
|
export { Dropdown as default };
|
|
89
|
+
|
|
92
90
|
//# sourceMappingURL=dropdown.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"dropdown.mjs","names":[],"sources":["../../../src/components/molecules/dropdown.tsx"],"sourcesContent":["'use client';\n\nimport { useId, useRef } from 'react';\n\nimport { useControllableState, useKeyPress } from '@jbpark/use-hooks';\nimport { AnimatePresence, motion } from 'motion/react';\n\nimport { cn } from '@repo/ui/utils';\n\nimport Menu, { MenuProps } from './menu';\n\ntype ChangeEventHandler = (open: boolean) => void;\n\nexport interface Props extends React.ComponentPropsWithoutRef<'div'> {\n open?: boolean;\n trigger?: 'hover' | 'click';\n menu?: MenuProps;\n onOpenChange?: ChangeEventHandler;\n}\n\nconst Dropdown = ({\n children,\n menu,\n trigger = 'hover',\n open: _open,\n onOpenChange: _onOpenChange = () => {},\n className,\n onMouseEnter,\n onMouseLeave,\n ...props\n}: Props) => {\n const [open, onOpenChange] = useControllableState<boolean>({\n value: _open,\n defaultValue: false,\n onChange: _onOpenChange,\n });\n\n const isClickTrigger = trigger === 'click';\n const menuId = useId();\n const containerRef = useRef<HTMLDivElement>(null);\n const triggerRef = useRef<HTMLDivElement>(null);\n\n useKeyPress(\n 'esc',\n () => {\n onOpenChange(false);\n },\n { target: triggerRef },\n );\n\n useKeyPress(\n ['Enter', 'space'],\n event => {\n event.preventDefault();\n onOpenChange(!open);\n },\n { target: triggerRef, enabled: isClickTrigger },\n );\n\n return (\n <div\n {...props}\n ref={containerRef}\n className={cn(\n 'relative',\n 'inline-block cursor-pointer',\n className,\n //\n )}\n onMouseEnter={event => {\n onMouseEnter?.(event);\n if (isClickTrigger) {\n return;\n }\n onOpenChange(true);\n }}\n onMouseLeave={event => {\n onMouseLeave?.(event);\n if (isClickTrigger) {\n return;\n }\n onOpenChange(false);\n }}\n >\n <div\n ref={triggerRef}\n role={isClickTrigger ? 'button' : undefined}\n tabIndex={isClickTrigger ? 0 : undefined}\n aria-haspopup=\"menu\"\n aria-expanded={open}\n aria-controls={open ? menuId : undefined}\n onClick={() => {\n if (!isClickTrigger) {\n return;\n }\n onOpenChange(!open);\n }}\n onFocus={() => {\n if (isClickTrigger) {\n return;\n }\n onOpenChange(true);\n }}\n onBlur={e => {\n // Without this check, moving focus from the trigger into the\n // menu itself (e.g. via Tab) closed the dropdown before the\n // user could ever reach it — the mouse path avoided the same\n // bug only by way of onMouseDown's preventDefault below, which\n // does nothing for keyboard focus. Mirrors the containment\n // check menu/item/item.tsx already uses for the same reason.\n if (!containerRef.current?.contains(e.relatedTarget as Node)) {\n onOpenChange(false);\n }\n }}\n >\n {children}\n </div>\n <AnimatePresence>\n {open && (\n <motion.div\n className={cn(\n 'absolute top-full z-50 pt-2',\n //\n )}\n initial={{ opacity: 0, y: -10 }}\n animate={{ opacity: 1, y: 0 }}\n exit={{ opacity: 0, y: -10 }}\n transition={{ duration: 0.1 }}\n >\n <Menu\n {...menu}\n id={menuId}\n onMouseDown={e => {\n e.preventDefault();\n }}\n />\n </motion.div>\n )}\n </AnimatePresence>\n </div>\n );\n};\n\nexport default Dropdown;\n"],"mappings":"
|
|
1
|
+
{"version":3,"file":"dropdown.mjs","names":[],"sources":["../../../src/components/molecules/dropdown.tsx"],"sourcesContent":["'use client';\n\nimport { useId, useRef } from 'react';\n\nimport { useControllableState, useKeyPress } from '@jbpark/use-hooks';\nimport { AnimatePresence, motion } from 'motion/react';\n\nimport { cn } from '@repo/ui/utils';\n\nimport Menu, { MenuProps } from './menu';\n\ntype ChangeEventHandler = (open: boolean) => void;\n\nexport interface Props extends React.ComponentPropsWithoutRef<'div'> {\n open?: boolean;\n trigger?: 'hover' | 'click';\n menu?: MenuProps;\n onOpenChange?: ChangeEventHandler;\n}\n\nconst Dropdown = ({\n children,\n menu,\n trigger = 'hover',\n open: _open,\n onOpenChange: _onOpenChange = () => {},\n className,\n onMouseEnter,\n onMouseLeave,\n ...props\n}: Props) => {\n const [open, onOpenChange] = useControllableState<boolean>({\n value: _open,\n defaultValue: false,\n onChange: _onOpenChange,\n });\n\n const isClickTrigger = trigger === 'click';\n const menuId = useId();\n const containerRef = useRef<HTMLDivElement>(null);\n const triggerRef = useRef<HTMLDivElement>(null);\n\n useKeyPress(\n 'esc',\n () => {\n onOpenChange(false);\n },\n { target: triggerRef },\n );\n\n useKeyPress(\n ['Enter', 'space'],\n event => {\n event.preventDefault();\n onOpenChange(!open);\n },\n { target: triggerRef, enabled: isClickTrigger },\n );\n\n return (\n <div\n {...props}\n ref={containerRef}\n className={cn(\n 'relative',\n 'inline-block cursor-pointer',\n className,\n //\n )}\n onMouseEnter={event => {\n onMouseEnter?.(event);\n if (isClickTrigger) {\n return;\n }\n onOpenChange(true);\n }}\n onMouseLeave={event => {\n onMouseLeave?.(event);\n if (isClickTrigger) {\n return;\n }\n onOpenChange(false);\n }}\n >\n <div\n ref={triggerRef}\n role={isClickTrigger ? 'button' : undefined}\n tabIndex={isClickTrigger ? 0 : undefined}\n aria-haspopup=\"menu\"\n aria-expanded={open}\n aria-controls={open ? menuId : undefined}\n onClick={() => {\n if (!isClickTrigger) {\n return;\n }\n onOpenChange(!open);\n }}\n onFocus={() => {\n if (isClickTrigger) {\n return;\n }\n onOpenChange(true);\n }}\n onBlur={e => {\n // Without this check, moving focus from the trigger into the\n // menu itself (e.g. via Tab) closed the dropdown before the\n // user could ever reach it — the mouse path avoided the same\n // bug only by way of onMouseDown's preventDefault below, which\n // does nothing for keyboard focus. Mirrors the containment\n // check menu/item/item.tsx already uses for the same reason.\n if (!containerRef.current?.contains(e.relatedTarget as Node)) {\n onOpenChange(false);\n }\n }}\n >\n {children}\n </div>\n <AnimatePresence>\n {open && (\n <motion.div\n className={cn(\n 'absolute top-full z-50 pt-2',\n //\n )}\n initial={{ opacity: 0, y: -10 }}\n animate={{ opacity: 1, y: 0 }}\n exit={{ opacity: 0, y: -10 }}\n transition={{ duration: 0.1 }}\n >\n <Menu\n {...menu}\n id={menuId}\n onMouseDown={e => {\n e.preventDefault();\n }}\n />\n </motion.div>\n )}\n </AnimatePresence>\n </div>\n );\n};\n\nexport default Dropdown;\n"],"mappings":";;;;;;;;AAoBA,MAAM,YAAY,EAChB,UACA,MACA,UAAU,SACV,MAAM,OACN,cAAc,sBAAsB,CAAC,GACrC,WACA,cACA,cACA,GAAG,YACQ;CACX,MAAM,CAAC,MAAM,gBAAgB,qBAA8B;EACzD,OAAO;EACP,cAAc;EACd,UAAU;CACZ,CAAC;CAED,MAAM,iBAAiB,YAAY;CACnC,MAAM,SAAS,MAAM;CACrB,MAAM,eAAe,OAAuB,IAAI;CAChD,MAAM,aAAa,OAAuB,IAAI;CAE9C,YACE,aACM;EACJ,aAAa,KAAK;CACpB,GACA,EAAE,QAAQ,WAAW,CACvB;CAEA,YACE,CAAC,SAAS,OAAO,IACjB,UAAS;EACP,MAAM,eAAe;EACrB,aAAa,CAAC,IAAI;CACpB,GACA;EAAE,QAAQ;EAAY,SAAS;CAAe,CAChD;CAEA,OACE,qBAAC,OAAD;EACE,GAAI;EACJ,KAAK;EACL,WAAW,GACT,YACA,+BACA,SAEF;EACA,eAAc,UAAS;GACrB,eAAe,KAAK;GACpB,IAAI,gBACF;GAEF,aAAa,IAAI;EACnB;EACA,eAAc,UAAS;GACrB,eAAe,KAAK;GACpB,IAAI,gBACF;GAEF,aAAa,KAAK;EACpB;EAtBF,UAAA,CAwBE,oBAAC,OAAD;GACE,KAAK;GACL,MAAM,iBAAiB,WAAW,KAAA;GAClC,UAAU,iBAAiB,IAAI,KAAA;GAC/B,iBAAc;GACd,iBAAe;GACf,iBAAe,OAAO,SAAS,KAAA;GAC/B,eAAe;IACb,IAAI,CAAC,gBACH;IAEF,aAAa,CAAC,IAAI;GACpB;GACA,eAAe;IACb,IAAI,gBACF;IAEF,aAAa,IAAI;GACnB;GACA,SAAQ,MAAK;IAOX,IAAI,CAAC,aAAa,SAAS,SAAS,EAAE,aAAqB,GACzD,aAAa,KAAK;GAEtB;GAEC;EACE,CAAA,GACL,oBAAC,iBAAD,EAAA,UACG,QACC,oBAAC,OAAO,KAAR;GACE,WAAW,GACT,6BAEF;GACA,SAAS;IAAE,SAAS;IAAG,GAAG;GAAI;GAC9B,SAAS;IAAE,SAAS;IAAG,GAAG;GAAE;GAC5B,MAAM;IAAE,SAAS;IAAG,GAAG;GAAI;GAC3B,YAAY,EAAE,UAAU,GAAI;GAE5B,UAAA,oBAAC,MAAD;IACE,GAAI;IACJ,IAAI;IACJ,cAAa,MAAK;KAChB,EAAE,eAAe;IACnB;GACD,CAAA;EACS,CAAA,EAEC,CAAA,CACd;;AAET"}
|
|
@@ -1,13 +1,13 @@
|
|
|
1
1
|
import Card, { Props } from "../../Card.mjs";
|
|
2
|
-
import
|
|
3
|
-
import "../../Menu.mjs";
|
|
2
|
+
import Menu, { Props as Props$1 } from "./menu/menu.mjs";
|
|
4
3
|
import { Props as Props$2 } from "./reveals/reveals.mjs";
|
|
5
4
|
import Reveals from "../../Reveals.mjs";
|
|
6
5
|
import Space, { Props as Props$3 } from "../../Space.mjs";
|
|
7
|
-
import
|
|
8
|
-
import
|
|
6
|
+
import Collapse, { Props as Props$4 } from "./collapse.mjs";
|
|
7
|
+
import Dropdown, { Props as Props$5 } from "./dropdown.mjs";
|
|
9
8
|
import { Props as Props$6 } from "./marquees/marquees.mjs";
|
|
10
|
-
import
|
|
9
|
+
import Marquees from "./marquees/index.mjs";
|
|
11
10
|
import { Props as Props$7 } from "./splitter/splitter.mjs";
|
|
12
|
-
import
|
|
13
|
-
import { Props as Props$8,
|
|
11
|
+
import Splitter from "./splitter/index.mjs";
|
|
12
|
+
import Upload, { Props as Props$8, UploadFile } from "./upload.mjs";
|
|
13
|
+
export { Card, type Props as CardProps, Collapse, type Props$4 as CollapseProps, Dropdown, type Props$5 as DropdownProps, Marquees, type Props$6 as MarqueesProps, Menu, type Props$1 as MenuProps, Reveals, type Props$2 as RevealsProps, Space, type Props$3 as SpaceProps, Splitter, type Props$7 as SplitterProps, Upload, type UploadFile, type Props$8 as UploadProps };
|
|
@@ -1,11 +1,10 @@
|
|
|
1
|
-
import
|
|
2
|
-
import
|
|
3
|
-
|
|
1
|
+
import Item, { ItemProps } from "./item.mjs";
|
|
2
|
+
import Marquees$1, { Props } from "./marquees.mjs";
|
|
4
3
|
//#region src/components/molecules/marquees/index.d.ts
|
|
5
4
|
type MarqueesComponent = typeof Marquees$1 & {
|
|
6
5
|
Item: typeof Item;
|
|
7
6
|
};
|
|
8
7
|
declare const Marquees: MarqueesComponent;
|
|
9
8
|
//#endregion
|
|
10
|
-
export { Marquees };
|
|
9
|
+
export { Item, type Props as MarqueesProps, type Props, Marquees as default };
|
|
11
10
|
//# sourceMappingURL=index.d.mts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.mts","names":[],"sources":["../../../../src/components/molecules/marquees/index.ts"],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.d.mts","names":[],"sources":["../../../../src/components/molecules/marquees/index.ts"],"mappings":";;;KAGK,2BAA2B;EAAiB,aAAa;;cAExD,UAA2B"}
|
|
@@ -1,10 +1,9 @@
|
|
|
1
1
|
import Item from "./item.mjs";
|
|
2
2
|
import Marquees$1 from "./marquees.mjs";
|
|
3
|
-
|
|
4
3
|
//#region src/components/molecules/marquees/index.ts
|
|
5
4
|
const Marquees = Marquees$1;
|
|
6
5
|
Marquees.Item = Item;
|
|
7
|
-
|
|
8
6
|
//#endregion
|
|
9
|
-
export { Marquees as default };
|
|
7
|
+
export { Item, Marquees as default };
|
|
8
|
+
|
|
10
9
|
//# sourceMappingURL=index.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.mjs","names":["MarqueesImpl"],"sources":["../../../../src/components/molecules/marquees/index.ts"],"sourcesContent":["import Item from './item';\nimport MarqueesImpl, { type Props } from './marquees';\n\ntype MarqueesComponent = typeof MarqueesImpl & { Item: typeof Item };\n\nconst Marquees = MarqueesImpl as MarqueesComponent;\n\nMarquees.Item = Item;\n\nexport default Marquees;\nexport { Item };\nexport type { ItemProps } from './item';\nexport type { Props, Props as MarqueesProps };\n"],"mappings":"
|
|
1
|
+
{"version":3,"file":"index.mjs","names":["MarqueesImpl"],"sources":["../../../../src/components/molecules/marquees/index.ts"],"sourcesContent":["import Item from './item';\nimport MarqueesImpl, { type Props } from './marquees';\n\ntype MarqueesComponent = typeof MarqueesImpl & { Item: typeof Item };\n\nconst Marquees = MarqueesImpl as MarqueesComponent;\n\nMarquees.Item = Item;\n\nexport default Marquees;\nexport { Item };\nexport type { ItemProps } from './item';\nexport type { Props, Props as MarqueesProps };\n"],"mappings":";;;AAKA,MAAM,WAAWA;AAEjB,SAAS,OAAO"}
|
|
@@ -1,5 +1,3 @@
|
|
|
1
|
-
import * as react_jsx_runtime0 from "react/jsx-runtime";
|
|
2
|
-
|
|
3
1
|
//#region src/components/molecules/marquees/item.d.ts
|
|
4
2
|
interface ItemProps {
|
|
5
3
|
key?: React.Key;
|
|
@@ -12,14 +10,7 @@ interface ItemProps {
|
|
|
12
10
|
interface Props extends Omit<React.ComponentPropsWithoutRef<'div'>, 'key'>, ItemProps {
|
|
13
11
|
width: string | number;
|
|
14
12
|
}
|
|
15
|
-
declare const Item: ({
|
|
16
|
-
width: _width,
|
|
17
|
-
speed,
|
|
18
|
-
autoFill,
|
|
19
|
-
pause: _pause,
|
|
20
|
-
pauseOnHover,
|
|
21
|
-
children
|
|
22
|
-
}: Props) => react_jsx_runtime0.JSX.Element;
|
|
13
|
+
declare const Item: ({ width: _width, speed, autoFill, pause: _pause, pauseOnHover, children }: Props) => import("react").JSX.Element;
|
|
23
14
|
//#endregion
|
|
24
|
-
export {
|
|
15
|
+
export { ItemProps, Props, Item as default };
|
|
25
16
|
//# sourceMappingURL=item.d.mts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"item.d.mts","names":[],"sources":["../../../../src/components/molecules/marquees/item.tsx"],"mappings":"
|
|
1
|
+
{"version":3,"file":"item.d.mts","names":[],"sources":["../../../../src/components/molecules/marquees/item.tsx"],"mappings":";UASiB;EACf,MAAM,MAAM;EACZ;EACA;EACA;EACA;EACA,WAAW,MAAM;;UAGF,cACP,KAAK,MAAM,yCAAyC;EAC5D;;cAYI,SAAQ,OAAA,QAAA,OAAA,UAAA,OAAA,QAAA,cAAA,YAOX,0BAAK,IAAA"}
|
|
@@ -1,10 +1,9 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
"use client";
|
|
2
|
+
import usePauseOnHover from "./use-pause-on-hover.mjs";
|
|
3
3
|
import { useEffect, useRef, useState } from "react";
|
|
4
4
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
5
5
|
import { useGSAP } from "@gsap/react";
|
|
6
6
|
import { gsap } from "gsap";
|
|
7
|
-
|
|
8
7
|
//#region src/components/molecules/marquees/item.tsx
|
|
9
8
|
const INITIAL_AUTO_FILL_GUESS = 10;
|
|
10
9
|
const Item = ({ width: _width, speed = 100, autoFill = false, pause: _pause = false, pauseOnHover = false, children }) => {
|
|
@@ -12,17 +11,19 @@ const Item = ({ width: _width, speed = 100, autoFill = false, pause: _pause = fa
|
|
|
12
11
|
const containerRef = useRef(null);
|
|
13
12
|
const tweenRef = useRef(null);
|
|
14
13
|
const [width, setWidth] = useState(_width);
|
|
15
|
-
const
|
|
14
|
+
const { pause, hoverEvents } = usePauseOnHover(pauseOnHover);
|
|
16
15
|
const [repeatCount, setRepeatCount] = useState(autoFill ? typeof autoFill === "boolean" ? INITIAL_AUTO_FILL_GUESS : autoFill : 0);
|
|
16
|
+
const [prevWidthProp, setPrevWidthProp] = useState(_width);
|
|
17
|
+
const [prevAutoFill, setPrevAutoFill] = useState(autoFill);
|
|
18
|
+
if (_width !== prevWidthProp) {
|
|
19
|
+
setPrevWidthProp(_width);
|
|
20
|
+
setWidth(_width);
|
|
21
|
+
}
|
|
22
|
+
if (autoFill !== prevAutoFill) {
|
|
23
|
+
setPrevAutoFill(autoFill);
|
|
24
|
+
setRepeatCount(autoFill ? typeof autoFill === "boolean" ? INITIAL_AUTO_FILL_GUESS : autoFill : 0);
|
|
25
|
+
}
|
|
17
26
|
const isPaused = _pause || pause;
|
|
18
|
-
const hoverEvents = pauseOnHover ? {
|
|
19
|
-
onMouseEnter: () => {
|
|
20
|
-
setPause(true);
|
|
21
|
-
},
|
|
22
|
-
onMouseLeave: () => {
|
|
23
|
-
setPause(false);
|
|
24
|
-
}
|
|
25
|
-
} : {};
|
|
26
27
|
useEffect(() => {
|
|
27
28
|
if (!autoFill || !children || !itemRefs.current[0] || typeof width === "string") return;
|
|
28
29
|
const itemWidth = itemRefs.current[0].offsetWidth;
|
|
@@ -44,9 +45,6 @@ const Item = ({ width: _width, speed = 100, autoFill = false, pause: _pause = fa
|
|
|
44
45
|
width,
|
|
45
46
|
children
|
|
46
47
|
]);
|
|
47
|
-
useEffect(() => {
|
|
48
|
-
setWidth(_width);
|
|
49
|
-
}, [_width]);
|
|
50
48
|
useGSAP(() => {
|
|
51
49
|
if (!containerRef.current || typeof width === "string") return;
|
|
52
50
|
if (tweenRef.current) tweenRef.current.kill();
|
|
@@ -68,9 +66,6 @@ const Item = ({ width: _width, speed = 100, autoFill = false, pause: _pause = fa
|
|
|
68
66
|
if (isPaused) tweenRef.current.pause();
|
|
69
67
|
else tweenRef.current.play();
|
|
70
68
|
}, [isPaused]);
|
|
71
|
-
useEffect(() => {
|
|
72
|
-
setRepeatCount(autoFill ? typeof autoFill === "boolean" ? INITIAL_AUTO_FILL_GUESS : autoFill : 0);
|
|
73
|
-
}, [autoFill]);
|
|
74
69
|
return /* @__PURE__ */ jsx("div", {
|
|
75
70
|
className: "flex overflow-hidden",
|
|
76
71
|
...hoverEvents,
|
|
@@ -90,7 +85,7 @@ const Item = ({ width: _width, speed = 100, autoFill = false, pause: _pause = fa
|
|
|
90
85
|
})
|
|
91
86
|
});
|
|
92
87
|
};
|
|
93
|
-
|
|
94
88
|
//#endregion
|
|
95
89
|
export { Item as default };
|
|
90
|
+
|
|
96
91
|
//# sourceMappingURL=item.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"item.mjs","names":[],"sources":["../../../../src/components/molecules/marquees/item.tsx"],"sourcesContent":["'use client';\n\nimport { useEffect, useRef, useState } from 'react';\n\nimport { useGSAP } from '@gsap/react';\nimport { gsap } from 'gsap';\n\nexport interface ItemProps {\n key?: React.Key;\n speed?: number;\n autoFill?: boolean | number;\n pause?: boolean;\n pauseOnHover?: boolean;\n children?: React.ReactNode;\n}\n\nexport interface Props\n extends Omit<React.ComponentPropsWithoutRef<'div'>, 'key'>, ItemProps {\n width: string | number;\n}\n\n// `autoFill={true}` (the default on `Marquees`) needs *some* repeat count\n// before the item can be measured and the real count computed — this is\n// only ever visible for that one render, but rendering 100 copies (200\n// with the 2x loop duplication) up front was needlessly heavy for the\n// common case. A modest guess still avoids visible gaps for typical\n// item/container width ratios while cutting the worst-case default\n// render by ~90%.\nconst INITIAL_AUTO_FILL_GUESS = 10;\n\nconst Item = ({\n width: _width,\n speed = 100,\n autoFill = false,\n pause: _pause = false,\n pauseOnHover = false,\n children,\n}: Props) => {\n const itemRefs = useRef<HTMLDivElement[]>([]);\n const containerRef = useRef<HTMLDivElement>(null);\n const tweenRef = useRef<gsap.core.Tween | null>(null);\n\n const [width, setWidth] = useState<string | number>(_width);\n const
|
|
1
|
+
{"version":3,"file":"item.mjs","names":[],"sources":["../../../../src/components/molecules/marquees/item.tsx"],"sourcesContent":["'use client';\n\nimport { useEffect, useRef, useState } from 'react';\n\nimport { useGSAP } from '@gsap/react';\nimport { gsap } from 'gsap';\n\nimport usePauseOnHover from './use-pause-on-hover';\n\nexport interface ItemProps {\n key?: React.Key;\n speed?: number;\n autoFill?: boolean | number;\n pause?: boolean;\n pauseOnHover?: boolean;\n children?: React.ReactNode;\n}\n\nexport interface Props\n extends Omit<React.ComponentPropsWithoutRef<'div'>, 'key'>, ItemProps {\n width: string | number;\n}\n\n// `autoFill={true}` (the default on `Marquees`) needs *some* repeat count\n// before the item can be measured and the real count computed — this is\n// only ever visible for that one render, but rendering 100 copies (200\n// with the 2x loop duplication) up front was needlessly heavy for the\n// common case. A modest guess still avoids visible gaps for typical\n// item/container width ratios while cutting the worst-case default\n// render by ~90%.\nconst INITIAL_AUTO_FILL_GUESS = 10;\n\nconst Item = ({\n width: _width,\n speed = 100,\n autoFill = false,\n pause: _pause = false,\n pauseOnHover = false,\n children,\n}: Props) => {\n const itemRefs = useRef<HTMLDivElement[]>([]);\n const containerRef = useRef<HTMLDivElement>(null);\n const tweenRef = useRef<gsap.core.Tween | null>(null);\n\n const [width, setWidth] = useState<string | number>(_width);\n const { pause, hoverEvents } = usePauseOnHover(pauseOnHover);\n const [repeatCount, setRepeatCount] = useState(\n autoFill\n ? typeof autoFill === 'boolean'\n ? INITIAL_AUTO_FILL_GUESS\n : autoFill\n : 0,\n );\n const [prevWidthProp, setPrevWidthProp] = useState(_width);\n const [prevAutoFill, setPrevAutoFill] = useState(autoFill);\n\n // Adjusted directly in render (React's \"adjust state during render\"\n // pattern) instead of an effect, so `width`/`repeatCount` re-sync with\n // the prop in the same render it changes rather than the render after.\n if (_width !== prevWidthProp) {\n setPrevWidthProp(_width);\n setWidth(_width);\n }\n\n if (autoFill !== prevAutoFill) {\n setPrevAutoFill(autoFill);\n setRepeatCount(\n autoFill\n ? typeof autoFill === 'boolean'\n ? INITIAL_AUTO_FILL_GUESS\n : autoFill\n : 0,\n );\n }\n\n const isPaused = _pause || pause;\n\n useEffect(() => {\n if (\n !autoFill ||\n !children ||\n !itemRefs.current[0] ||\n typeof width === 'string'\n ) {\n return;\n }\n\n const itemWidth = itemRefs.current[0].offsetWidth;\n\n if (itemWidth >= width) {\n setWidth(itemWidth);\n setRepeatCount(0);\n return;\n }\n\n let totalWidth = 0;\n let repeatCount = 0;\n\n while (totalWidth < width) {\n totalWidth += itemWidth;\n repeatCount += 1;\n }\n\n setWidth(totalWidth);\n setRepeatCount(repeatCount - 1);\n }, [autoFill, width, children]);\n\n useGSAP(\n () => {\n if (!containerRef.current || typeof width === 'string') {\n return;\n }\n\n if (tweenRef.current) {\n tweenRef.current.kill();\n }\n\n tweenRef.current = gsap.fromTo(\n containerRef.current,\n { x: 0 },\n {\n x: -width,\n duration: width / speed,\n repeat: -1,\n ease: 'linear',\n },\n );\n\n return () => {\n tweenRef.current?.kill();\n };\n },\n {\n scope: containerRef,\n dependencies: [width, speed],\n },\n );\n\n useEffect(() => {\n if (!tweenRef.current) {\n return;\n }\n\n if (isPaused) {\n tweenRef.current.pause();\n } else {\n tweenRef.current.play();\n }\n }, [isPaused]);\n\n return (\n <div\n className=\"flex overflow-hidden\"\n {...hoverEvents}\n //\n >\n <div ref={containerRef} className=\"flex flex-nowrap\">\n {[...Array(2)].map((_, index) => (\n <div\n key={index}\n style={{ minWidth: width }}\n className=\"flex flex-nowrap\"\n >\n <div\n ref={el => {\n if (el) {\n itemRefs.current[index] = el;\n }\n }}\n >\n {children}\n </div>\n {[\n ...Array(typeof autoFill === 'number' ? autoFill : repeatCount),\n ].map((_, i) => (\n <div key={i}>{children}</div>\n ))}\n </div>\n ))}\n </div>\n </div>\n );\n};\n\nexport default Item;\n"],"mappings":";;;;;;;AA8BA,MAAM,0BAA0B;AAEhC,MAAM,QAAQ,EACZ,OAAO,QACP,QAAQ,KACR,WAAW,OACX,OAAO,SAAS,OAChB,eAAe,OACf,eACW;CACX,MAAM,WAAW,OAAyB,CAAC,CAAC;CAC5C,MAAM,eAAe,OAAuB,IAAI;CAChD,MAAM,WAAW,OAA+B,IAAI;CAEpD,MAAM,CAAC,OAAO,YAAY,SAA0B,MAAM;CAC1D,MAAM,EAAE,OAAO,gBAAgB,gBAAgB,YAAY;CAC3D,MAAM,CAAC,aAAa,kBAAkB,SACpC,WACI,OAAO,aAAa,YAClB,0BACA,WACF,CACN;CACA,MAAM,CAAC,eAAe,oBAAoB,SAAS,MAAM;CACzD,MAAM,CAAC,cAAc,mBAAmB,SAAS,QAAQ;CAKzD,IAAI,WAAW,eAAe;EAC5B,iBAAiB,MAAM;EACvB,SAAS,MAAM;CACjB;CAEA,IAAI,aAAa,cAAc;EAC7B,gBAAgB,QAAQ;EACxB,eACE,WACI,OAAO,aAAa,YAClB,0BACA,WACF,CACN;CACF;CAEA,MAAM,WAAW,UAAU;CAE3B,gBAAgB;EACd,IACE,CAAC,YACD,CAAC,YACD,CAAC,SAAS,QAAQ,MAClB,OAAO,UAAU,UAEjB;EAGF,MAAM,YAAY,SAAS,QAAQ,EAAE,CAAC;EAEtC,IAAI,aAAa,OAAO;GACtB,SAAS,SAAS;GAClB,eAAe,CAAC;GAChB;EACF;EAEA,IAAI,aAAa;EACjB,IAAI,cAAc;EAElB,OAAO,aAAa,OAAO;GACzB,cAAc;GACd,eAAe;EACjB;EAEA,SAAS,UAAU;EACnB,eAAe,cAAc,CAAC;CAChC,GAAG;EAAC;EAAU;EAAO;CAAQ,CAAC;CAE9B,cACQ;EACJ,IAAI,CAAC,aAAa,WAAW,OAAO,UAAU,UAC5C;EAGF,IAAI,SAAS,SACX,SAAS,QAAQ,KAAK;EAGxB,SAAS,UAAU,KAAK,OACtB,aAAa,SACb,EAAE,GAAG,EAAE,GACP;GACE,GAAG,CAAC;GACJ,UAAU,QAAQ;GAClB,QAAQ;GACR,MAAM;EACR,CACF;EAEA,aAAa;GACX,SAAS,SAAS,KAAK;EACzB;CACF,GACA;EACE,OAAO;EACP,cAAc,CAAC,OAAO,KAAK;CAC7B,CACF;CAEA,gBAAgB;EACd,IAAI,CAAC,SAAS,SACZ;EAGF,IAAI,UACF,SAAS,QAAQ,MAAM;OAEvB,SAAS,QAAQ,KAAK;CAE1B,GAAG,CAAC,QAAQ,CAAC;CAEb,OACE,oBAAC,OAAD;EACE,WAAU;EACV,GAAI;EAGJ,UAAA,oBAAC,OAAD;GAAK,KAAK;GAAc,WAAU;GAC/B,UAAA,CAAC,GAAG,MAAM,CAAC,CAAC,CAAC,CAAC,KAAK,GAAG,UACrB,qBAAC,OAAD;IAEE,OAAO,EAAE,UAAU,MAAM;IACzB,WAAU;IAHZ,UAAA,CAKE,oBAAC,OAAD;KACE,MAAK,OAAM;MACT,IAAI,IACF,SAAS,QAAQ,SAAS;KAE9B;KAEC;IACE,CAAA,GACJ,CACC,GAAG,MAAM,OAAO,aAAa,WAAW,WAAW,WAAW,CAChE,CAAC,CAAC,KAAK,GAAG,MACR,oBAAC,OAAD,EAAc,SAAc,GAAlB,CAAkB,CAC7B,CACE;GAlBE,GAAA,KAkBF,CACN;EACE,CAAA;CACF,CAAA;AAET"}
|
|
@@ -1,6 +1,4 @@
|
|
|
1
1
|
import { ItemProps } from "./item.mjs";
|
|
2
|
-
import * as react_jsx_runtime0 from "react/jsx-runtime";
|
|
3
|
-
|
|
4
2
|
//#region src/components/molecules/marquees/marquees.d.ts
|
|
5
3
|
interface Props extends React.ComponentPropsWithoutRef<'div'> {
|
|
6
4
|
speed?: number;
|
|
@@ -8,14 +6,7 @@ interface Props extends React.ComponentPropsWithoutRef<'div'> {
|
|
|
8
6
|
pauseOnHover?: boolean;
|
|
9
7
|
items?: ItemProps[];
|
|
10
8
|
}
|
|
11
|
-
declare const Marquees: ({
|
|
12
|
-
className,
|
|
13
|
-
items,
|
|
14
|
-
speed,
|
|
15
|
-
pauseOnHover,
|
|
16
|
-
autoFill,
|
|
17
|
-
...props
|
|
18
|
-
}: Props) => react_jsx_runtime0.JSX.Element;
|
|
9
|
+
declare const Marquees: ({ className, items, speed, pauseOnHover, autoFill, ...props }: Props) => import("react").JSX.Element;
|
|
19
10
|
//#endregion
|
|
20
|
-
export {
|
|
11
|
+
export { Props, Marquees as default };
|
|
21
12
|
//# sourceMappingURL=marquees.d.mts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"marquees.d.mts","names":[],"sources":["../../../../src/components/molecules/marquees/marquees.tsx"],"mappings":"
|
|
1
|
+
{"version":3,"file":"marquees.d.mts","names":[],"sources":["../../../../src/components/molecules/marquees/marquees.tsx"],"mappings":";;UAeiB,cAAc,MAAM;EACnC;EACA;EACA;EACA,QAAQ;;cAGJ,aAAY,WAAA,OAAA,OAAA,cAAA,aAAA,SAOf,0BAAK,IAAA"}
|
|
@@ -1,35 +1,25 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
"use client";
|
|
3
2
|
import { cn } from "../../../utils.mjs";
|
|
3
|
+
import usePauseOnHover from "./use-pause-on-hover.mjs";
|
|
4
4
|
import Item from "./item.mjs";
|
|
5
5
|
import { useEffect, useRef, useState } from "react";
|
|
6
6
|
import { jsx } from "react/jsx-runtime";
|
|
7
|
-
import { useResponsiveSize,
|
|
8
|
-
|
|
7
|
+
import { useMergedRef, useResponsiveSize, useThrottledValue } from "@jbpark/use-hooks";
|
|
9
8
|
//#region src/components/molecules/marquees/marquees.tsx
|
|
10
9
|
const Marquees = ({ className, items, speed, pauseOnHover = true, autoFill = true, ...props }) => {
|
|
11
10
|
const [width, setWidth] = useState("100vw");
|
|
12
11
|
const [padding, setPadding] = useState(0);
|
|
13
|
-
const
|
|
14
|
-
const throttledWidth =
|
|
12
|
+
const { pause, hoverEvents } = usePauseOnHover(pauseOnHover);
|
|
13
|
+
const throttledWidth = useThrottledValue(width, 200);
|
|
15
14
|
const { size, ref: responsiveRef } = useResponsiveSize();
|
|
16
15
|
const containerRef = useRef(null);
|
|
17
|
-
const setContainerRef = (
|
|
18
|
-
containerRef.current = node;
|
|
19
|
-
responsiveRef(node);
|
|
20
|
-
};
|
|
21
|
-
const hoverEvents = pauseOnHover ? {
|
|
22
|
-
onMouseEnter: () => {
|
|
23
|
-
setPause(true);
|
|
24
|
-
},
|
|
25
|
-
onMouseLeave: () => {
|
|
26
|
-
setPause(false);
|
|
27
|
-
}
|
|
28
|
-
} : {};
|
|
16
|
+
const setContainerRef = useMergedRef(containerRef, responsiveRef);
|
|
29
17
|
useEffect(() => {
|
|
30
18
|
if (!size.width || !containerRef.current) return;
|
|
31
19
|
const computedStyle = getComputedStyle(containerRef.current);
|
|
32
|
-
|
|
20
|
+
const paddingLeft = parseFloat(computedStyle.paddingLeft) || 0;
|
|
21
|
+
const paddingRight = parseFloat(computedStyle.paddingRight) || 0;
|
|
22
|
+
setPadding(paddingLeft + paddingRight);
|
|
33
23
|
setWidth(size.width);
|
|
34
24
|
}, [size]);
|
|
35
25
|
return /* @__PURE__ */ jsx("div", {
|
|
@@ -51,7 +41,7 @@ const Marquees = ({ className, items, speed, pauseOnHover = true, autoFill = tru
|
|
|
51
41
|
})
|
|
52
42
|
});
|
|
53
43
|
};
|
|
54
|
-
|
|
55
44
|
//#endregion
|
|
56
45
|
export { Marquees as default };
|
|
46
|
+
|
|
57
47
|
//# sourceMappingURL=marquees.mjs.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"marquees.mjs","names":[],"sources":["../../../../src/components/molecules/marquees/marquees.tsx"],"sourcesContent":["'use client';\n\nimport { useEffect, useRef, useState } from 'react';\n\nimport {
|
|
1
|
+
{"version":3,"file":"marquees.mjs","names":[],"sources":["../../../../src/components/molecules/marquees/marquees.tsx"],"sourcesContent":["'use client';\n\nimport { useEffect, useRef, useState } from 'react';\n\nimport {\n useMergedRef,\n useResponsiveSize,\n useThrottledValue,\n} from '@jbpark/use-hooks';\n\nimport { cn } from '@repo/ui/utils';\n\nimport Item, { type ItemProps } from './item';\nimport usePauseOnHover from './use-pause-on-hover';\n\nexport interface Props extends React.ComponentPropsWithoutRef<'div'> {\n speed?: number;\n autoFill?: boolean | number;\n pauseOnHover?: boolean;\n items?: ItemProps[];\n}\n\nconst Marquees = ({\n className,\n items,\n speed,\n pauseOnHover = true,\n autoFill = true,\n ...props\n}: Props) => {\n const [width, setWidth] = useState<string | number>(\n '100vw',\n //\n );\n const [padding, setPadding] = useState(0);\n const { pause, hoverEvents } = usePauseOnHover(pauseOnHover);\n\n const throttledWidth = useThrottledValue(width, 200);\n\n const { size, ref: responsiveRef } = useResponsiveSize<HTMLDivElement>();\n const containerRef = useRef<HTMLDivElement | null>(null);\n const setContainerRef = useMergedRef(containerRef, responsiveRef);\n\n useEffect(() => {\n if (!size.width || !containerRef.current) {\n return;\n }\n\n const computedStyle = getComputedStyle(containerRef.current);\n const paddingLeft = parseFloat(computedStyle.paddingLeft) || 0;\n const paddingRight = parseFloat(computedStyle.paddingRight) || 0;\n\n setPadding(paddingLeft + paddingRight);\n\n setWidth(size.width);\n }, [size]);\n\n return (\n <div\n ref={setContainerRef}\n className={cn(\n className,\n //\n )}\n {...hoverEvents}\n {...props}\n >\n <div\n className={cn(\n 'flex flex-col gap-y-5',\n 'overflow-hidden',\n 'whitespace-nowrap',\n 'bg-inherit',\n //\n )}\n style={{\n width:\n typeof throttledWidth === 'number'\n ? throttledWidth - padding\n : throttledWidth,\n }}\n >\n {items?.map(({ children, key: itemKey, ...item }: ItemProps, key) => (\n <Item\n key={itemKey || key}\n width={throttledWidth}\n pause={pause}\n speed={speed}\n autoFill={autoFill}\n {...item}\n >\n {children}\n </Item>\n ))}\n </div>\n </div>\n );\n};\n\nexport default Marquees;\n"],"mappings":";;;;;;;;AAsBA,MAAM,YAAY,EAChB,WACA,OACA,OACA,eAAe,MACf,WAAW,MACX,GAAG,YACQ;CACX,MAAM,CAAC,OAAO,YAAY,SACxB,OAEF;CACA,MAAM,CAAC,SAAS,cAAc,SAAS,CAAC;CACxC,MAAM,EAAE,OAAO,gBAAgB,gBAAgB,YAAY;CAE3D,MAAM,iBAAiB,kBAAkB,OAAO,GAAG;CAEnD,MAAM,EAAE,MAAM,KAAK,kBAAkB,kBAAkC;CACvE,MAAM,eAAe,OAA8B,IAAI;CACvD,MAAM,kBAAkB,aAAa,cAAc,aAAa;CAEhE,gBAAgB;EACd,IAAI,CAAC,KAAK,SAAS,CAAC,aAAa,SAC/B;EAGF,MAAM,gBAAgB,iBAAiB,aAAa,OAAO;EAC3D,MAAM,cAAc,WAAW,cAAc,WAAW,KAAK;EAC7D,MAAM,eAAe,WAAW,cAAc,YAAY,KAAK;EAE/D,WAAW,cAAc,YAAY;EAErC,SAAS,KAAK,KAAK;CACrB,GAAG,CAAC,IAAI,CAAC;CAET,OACE,oBAAC,OAAD;EACE,KAAK;EACL,WAAW,GACT,SAEF;EACA,GAAI;EACJ,GAAI;EAEJ,UAAA,oBAAC,OAAD;GACE,WAAW,GACT,yBACA,mBACA,qBACA,YAEF;GACA,OAAO,EACL,OACE,OAAO,mBAAmB,WACtB,iBAAiB,UACjB,eACR;GAEC,UAAA,OAAO,KAAK,EAAE,UAAU,KAAK,SAAS,GAAG,QAAmB,QAC3D,oBAAC,MAAD;IAEE,OAAO;IACA;IACA;IACG;IACV,GAAI;IAEH;GACG,GARC,WAAW,GAQZ,CACP;EACE,CAAA;CACF,CAAA;AAET"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import { useState } from "react";
|
|
2
|
+
//#region src/components/molecules/marquees/use-pause-on-hover.ts
|
|
3
|
+
const usePauseOnHover = (enabled) => {
|
|
4
|
+
const [pause, setPause] = useState(false);
|
|
5
|
+
return {
|
|
6
|
+
pause,
|
|
7
|
+
hoverEvents: enabled ? {
|
|
8
|
+
onMouseEnter: () => {
|
|
9
|
+
setPause(true);
|
|
10
|
+
},
|
|
11
|
+
onMouseLeave: () => {
|
|
12
|
+
setPause(false);
|
|
13
|
+
},
|
|
14
|
+
onFocus: () => {
|
|
15
|
+
setPause(true);
|
|
16
|
+
},
|
|
17
|
+
onBlur: () => {
|
|
18
|
+
setPause(false);
|
|
19
|
+
}
|
|
20
|
+
} : {}
|
|
21
|
+
};
|
|
22
|
+
};
|
|
23
|
+
//#endregion
|
|
24
|
+
export { usePauseOnHover as default };
|
|
25
|
+
|
|
26
|
+
//# sourceMappingURL=use-pause-on-hover.mjs.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"use-pause-on-hover.mjs","names":[],"sources":["../../../../src/components/molecules/marquees/use-pause-on-hover.ts"],"sourcesContent":["import { useState } from 'react';\n\n// Pausing on hover alone leaves keyboard users with no way to stop the\n// marquee, so focus/blur (which bubble from any interactive child) pause it\n// the same way hover does.\nconst usePauseOnHover = (enabled: boolean) => {\n const [pause, setPause] = useState(false);\n\n const hoverEvents = enabled\n ? {\n onMouseEnter: () => {\n setPause(true);\n },\n onMouseLeave: () => {\n setPause(false);\n },\n onFocus: () => {\n setPause(true);\n },\n onBlur: () => {\n setPause(false);\n },\n }\n : {};\n\n return { pause, hoverEvents };\n};\n\nexport default usePauseOnHover;\n"],"mappings":";;AAKA,MAAM,mBAAmB,YAAqB;CAC5C,MAAM,CAAC,OAAO,YAAY,SAAS,KAAK;CAmBxC,OAAO;EAAE;EAAO,aAjBI,UAChB;GACE,oBAAoB;IAClB,SAAS,IAAI;GACf;GACA,oBAAoB;IAClB,SAAS,KAAK;GAChB;GACA,eAAe;IACb,SAAS,IAAI;GACf;GACA,cAAc;IACZ,SAAS,KAAK;GAChB;EACF,IACA,CAAC;CAEuB;AAC9B"}
|
|
@@ -1,5 +1,4 @@
|
|
|
1
|
-
|
|
2
|
-
|
|
1
|
+
"use client";
|
|
3
2
|
import { cn } from "../../../../utils.mjs";
|
|
4
3
|
import Label from "./label.mjs";
|
|
5
4
|
import { MENU_CLASSNAMES } from "../menu.mjs";
|
|
@@ -7,7 +6,6 @@ import { ChevronDown } from "lucide-react";
|
|
|
7
6
|
import { createElement, useRef, useState } from "react";
|
|
8
7
|
import { jsx, jsxs } from "react/jsx-runtime";
|
|
9
8
|
import { AnimatePresence, motion } from "motion/react";
|
|
10
|
-
|
|
11
9
|
//#region src/components/molecules/menu/item/item.tsx
|
|
12
10
|
const OFFSET = [8, 8];
|
|
13
11
|
const INLINE_OFFSET = 16;
|
|
@@ -150,7 +148,7 @@ const Item = ({ itemKey, keyPath, root = false, index, mode, label, children, se
|
|
|
150
148
|
}) })]
|
|
151
149
|
});
|
|
152
150
|
};
|
|
153
|
-
|
|
154
151
|
//#endregion
|
|
155
152
|
export { Item as default };
|
|
153
|
+
|
|
156
154
|
//# sourceMappingURL=item.mjs.map
|