buildgrid-ui 1.14.6 → 1.14.8
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/assets/en-US-BUOWLxFp.js +2 -0
- package/dist/assets/en-US-BUOWLxFp.js.map +1 -0
- package/dist/assets/jsx-runtime-D_zvdyIk.js +10 -0
- package/dist/assets/jsx-runtime-D_zvdyIk.js.map +1 -0
- package/dist/assets/magic-string.es-CTSuTltI.js +11 -0
- package/dist/assets/magic-string.es-CTSuTltI.js.map +1 -0
- package/dist/assets/vi.bdSIJ99Y-C6e_ZQS2.js +482 -0
- package/dist/assets/vi.bdSIJ99Y-C6e_ZQS2.js.map +1 -0
- package/dist/blocks/bento-grid/bento-grid.js +2 -0
- package/dist/blocks/bento-grid/bento-grid.js.map +1 -0
- package/dist/blocks/bento-grid/bento-grid.stories.js +2 -0
- package/dist/blocks/bento-grid/bento-grid.stories.js.map +1 -0
- package/dist/blocks/bento-grid/index.js +2 -0
- package/dist/blocks/bento-grid/index.js.map +1 -0
- package/dist/blocks/data-table/components/active-filters.js +2 -0
- package/dist/blocks/data-table/components/active-filters.js.map +1 -0
- package/dist/blocks/data-table/components/column-visibility-dropdown.js +2 -0
- package/dist/blocks/data-table/components/column-visibility-dropdown.js.map +1 -0
- package/dist/blocks/data-table/components/filter-dropdown.js +2 -0
- package/dist/blocks/data-table/components/filter-dropdown.js.map +1 -0
- package/dist/blocks/data-table/components/search-input.js +2 -0
- package/dist/blocks/data-table/components/search-input.js.map +1 -0
- package/dist/blocks/data-table/components/selection-info.js +2 -0
- package/dist/blocks/data-table/components/selection-info.js.map +1 -0
- package/dist/blocks/data-table/components/table-header.js +2 -0
- package/dist/blocks/data-table/components/table-header.js.map +1 -0
- package/dist/blocks/data-table/components/table-row.js +2 -0
- package/dist/blocks/data-table/components/table-row.js.map +1 -0
- package/dist/blocks/data-table/components/table-skeleton.js +2 -0
- package/dist/blocks/data-table/components/table-skeleton.js.map +1 -0
- package/dist/blocks/data-table/data-table.js +2 -0
- package/dist/blocks/data-table/data-table.js.map +1 -0
- package/dist/blocks/data-table/data-table.stories.js +2 -0
- package/dist/blocks/data-table/data-table.stories.js.map +1 -0
- package/dist/blocks/data-table/index.js +2 -0
- package/dist/blocks/data-table/index.js.map +1 -0
- package/dist/blocks/data-table/types/data-table.js +2 -0
- package/dist/blocks/data-table/types/data-table.js.map +1 -0
- package/dist/blocks/data-table/utils/export.js +3 -0
- package/dist/blocks/data-table/utils/export.js.map +1 -0
- package/dist/blocks/empty-message/empty-message.js +2 -0
- package/dist/blocks/empty-message/empty-message.js.map +1 -0
- package/dist/blocks/empty-message/empty-message.stories.js +2 -0
- package/dist/blocks/empty-message/empty-message.stories.js.map +1 -0
- package/dist/blocks/empty-message/index.js +2 -0
- package/dist/blocks/empty-message/index.js.map +1 -0
- package/dist/blocks/help-carousel/help-carousel.js +2 -0
- package/dist/blocks/help-carousel/help-carousel.js.map +1 -0
- package/dist/blocks/help-carousel/help-carousel.stories.js +2 -0
- package/dist/blocks/help-carousel/help-carousel.stories.js.map +1 -0
- package/dist/blocks/help-carousel/index.js +2 -0
- package/dist/blocks/help-carousel/index.js.map +1 -0
- package/dist/blocks/html-text-editor/html-text-area.js +2 -0
- package/dist/blocks/html-text-editor/html-text-area.js.map +1 -0
- package/dist/blocks/html-text-editor/html-text-area.stories.js +8 -0
- package/dist/blocks/html-text-editor/html-text-area.stories.js.map +1 -0
- package/dist/blocks/html-text-editor/html-text-editor.js +2 -0
- package/dist/blocks/html-text-editor/html-text-editor.js.map +1 -0
- package/dist/blocks/html-text-editor/html-text-editor.stories.js +2 -0
- package/dist/blocks/html-text-editor/html-text-editor.stories.js.map +1 -0
- package/dist/blocks/html-text-editor/index.js +2 -0
- package/dist/blocks/html-text-editor/index.js.map +1 -0
- package/dist/blocks/html-text-editor/options-bar.js +2 -0
- package/dist/blocks/html-text-editor/options-bar.js.map +1 -0
- package/dist/blocks/index.js +2 -0
- package/dist/blocks/index.js.map +1 -0
- package/dist/blocks/lazy-image-gallery/index.js +2 -0
- package/dist/blocks/lazy-image-gallery/index.js.map +1 -0
- package/dist/blocks/lazy-image-gallery/lazy-image-gallery.js +2 -0
- package/dist/blocks/lazy-image-gallery/lazy-image-gallery.js.map +1 -0
- package/dist/blocks/lazy-image-gallery/lazy-image-gallery.stories.js +2 -0
- package/dist/blocks/lazy-image-gallery/lazy-image-gallery.stories.js.map +1 -0
- package/dist/blocks/month-navigator/index.js +2 -0
- package/dist/blocks/month-navigator/index.js.map +1 -0
- package/dist/blocks/month-navigator/month-navigator.js +2 -0
- package/dist/blocks/month-navigator/month-navigator.js.map +1 -0
- package/dist/blocks/month-navigator/month-navigator.stories.js +2 -0
- package/dist/blocks/month-navigator/month-navigator.stories.js.map +1 -0
- package/dist/blocks/navigable-list/index.js +2 -0
- package/dist/blocks/navigable-list/index.js.map +1 -0
- package/dist/blocks/navigable-list/navigable-list.js +2 -0
- package/dist/blocks/navigable-list/navigable-list.js.map +1 -0
- package/dist/blocks/navigable-list/navigable-list.stories.js +2 -0
- package/dist/blocks/navigable-list/navigable-list.stories.js.map +1 -0
- package/dist/blocks/paginated-items/index.js +2 -0
- package/dist/blocks/paginated-items/index.js.map +1 -0
- package/dist/blocks/paginated-items/paginated-items.js +2 -0
- package/dist/blocks/paginated-items/paginated-items.js.map +1 -0
- package/dist/blocks/paginated-items/paginated-items.stories.js +2 -0
- package/dist/blocks/paginated-items/paginated-items.stories.js.map +1 -0
- package/dist/blocks/pagination-controls/index.js +2 -0
- package/dist/blocks/pagination-controls/index.js.map +1 -0
- package/dist/blocks/pagination-controls/pagination-controls.js +2 -0
- package/dist/blocks/pagination-controls/pagination-controls.js.map +1 -0
- package/dist/blocks/pagination-controls/pagination-controls.stories.js +2 -0
- package/dist/blocks/pagination-controls/pagination-controls.stories.js.map +1 -0
- package/dist/blocks/sidebar/index.js +2 -0
- package/dist/blocks/sidebar/index.js.map +1 -0
- package/dist/blocks/sidebar/sidebar.js +2 -0
- package/dist/blocks/sidebar/sidebar.js.map +1 -0
- package/dist/blocks/sidebar/sidebar.stories.js +2 -0
- package/dist/blocks/sidebar/sidebar.stories.js.map +1 -0
- package/dist/components/accordion/accordion.js +2 -0
- package/dist/components/accordion/accordion.js.map +1 -0
- package/dist/components/accordion/accordion.stories.js +2 -0
- package/dist/components/accordion/accordion.stories.js.map +1 -0
- package/dist/components/accordion/index.js +2 -0
- package/dist/components/accordion/index.js.map +1 -0
- package/dist/components/adaptive-input/adaptive-input.js +2 -0
- package/dist/components/adaptive-input/adaptive-input.js.map +1 -0
- package/dist/components/adaptive-input/adaptive-input.stories.js +2 -0
- package/dist/components/adaptive-input/adaptive-input.stories.js.map +1 -0
- package/dist/components/adaptive-input/index.js +2 -0
- package/dist/components/adaptive-input/index.js.map +1 -0
- package/dist/components/alert-dialog/alert-dialog.js +2 -0
- package/dist/components/alert-dialog/alert-dialog.js.map +1 -0
- package/dist/components/alert-dialog/alert-dialog.stories.js +2 -0
- package/dist/components/alert-dialog/alert-dialog.stories.js.map +1 -0
- package/dist/components/alert-dialog/index.js +2 -0
- package/dist/components/alert-dialog/index.js.map +1 -0
- package/dist/components/autocomplete/autocomplete.js +2 -0
- package/dist/components/autocomplete/autocomplete.js.map +1 -0
- package/dist/components/autocomplete/autocomplete.stories.js +2 -0
- package/dist/components/autocomplete/autocomplete.stories.js.map +1 -0
- package/dist/components/autocomplete/autocomplete.test.js +2 -0
- package/dist/components/autocomplete/autocomplete.test.js.map +1 -0
- package/dist/components/autocomplete/index.js +2 -0
- package/dist/components/autocomplete/index.js.map +1 -0
- package/dist/components/avatar/avatar.js +2 -0
- package/dist/components/avatar/avatar.js.map +1 -0
- package/dist/components/avatar/avatar.stories.js +2 -0
- package/dist/components/avatar/avatar.stories.js.map +1 -0
- package/dist/components/avatar/index.js +2 -0
- package/dist/components/avatar/index.js.map +1 -0
- package/dist/components/badge/badge.js +2 -0
- package/dist/components/badge/badge.js.map +1 -0
- package/dist/components/badge/badge.stories.js +2 -0
- package/dist/components/badge/badge.stories.js.map +1 -0
- package/dist/components/badge/index.js +2 -0
- package/dist/components/badge/index.js.map +1 -0
- package/dist/components/button/button.js +2 -0
- package/dist/components/button/button.js.map +1 -0
- package/dist/components/button/button.stories.js +2 -0
- package/dist/components/button/button.stories.js.map +1 -0
- package/dist/components/button/button.test.js +2 -0
- package/dist/components/button/button.test.js.map +1 -0
- package/dist/components/button/button.types.js +2 -0
- package/dist/components/button/button.types.js.map +1 -0
- package/dist/components/button/index.js +2 -0
- package/dist/components/button/index.js.map +1 -0
- package/dist/components/calendar/calendar.js +2 -0
- package/dist/components/calendar/calendar.js.map +1 -0
- package/dist/components/calendar/calendar.stories.js +2 -0
- package/dist/components/calendar/calendar.stories.js.map +1 -0
- package/dist/components/calendar/index.js +2 -0
- package/dist/components/calendar/index.js.map +1 -0
- package/dist/components/card/card.js +2 -0
- package/dist/components/card/card.js.map +1 -0
- package/dist/components/card/card.stories.js +2 -0
- package/dist/components/card/card.stories.js.map +1 -0
- package/dist/components/card/index.js +2 -0
- package/dist/components/card/index.js.map +1 -0
- package/dist/components/checkbox/checkbox.js +2 -0
- package/dist/components/checkbox/checkbox.js.map +1 -0
- package/dist/components/checkbox/checkbox.stories.js +2 -0
- package/dist/components/checkbox/checkbox.stories.js.map +1 -0
- package/dist/components/checkbox/index.js +2 -0
- package/dist/components/checkbox/index.js.map +1 -0
- package/dist/components/command/command.js +2 -0
- package/dist/components/command/command.js.map +1 -0
- package/dist/components/command/command.stories.js +2 -0
- package/dist/components/command/command.stories.js.map +1 -0
- package/dist/components/command/index.js +2 -0
- package/dist/components/command/index.js.map +1 -0
- package/dist/components/currency-input/currency-input.js +2 -0
- package/dist/components/currency-input/currency-input.js.map +1 -0
- package/dist/components/currency-input/currency-input.stories.js +2 -0
- package/dist/components/currency-input/currency-input.stories.js.map +1 -0
- package/dist/components/currency-input/index.js +2 -0
- package/dist/components/currency-input/index.js.map +1 -0
- package/dist/components/dialog/dialog.js +2 -0
- package/dist/components/dialog/dialog.js.map +1 -0
- package/dist/components/dialog/dialog.stories.js +2 -0
- package/dist/components/dialog/dialog.stories.js.map +1 -0
- package/dist/components/dialog/index.js +2 -0
- package/dist/components/dialog/index.js.map +1 -0
- package/dist/components/dropdown-menu/dropdown-menu.js +2 -0
- package/dist/components/dropdown-menu/dropdown-menu.js.map +1 -0
- package/dist/components/dropdown-menu/dropdown-menu.stories.js +2 -0
- package/dist/components/dropdown-menu/dropdown-menu.stories.js.map +1 -0
- package/dist/components/dropdown-menu/index.js +2 -0
- package/dist/components/dropdown-menu/index.js.map +1 -0
- package/dist/components/index.js +2 -0
- package/dist/components/index.js.map +1 -0
- package/dist/components/input/index.js +2 -0
- package/dist/components/input/index.js.map +1 -0
- package/dist/components/input/input.js +2 -0
- package/dist/components/input/input.js.map +1 -0
- package/dist/components/input/input.stories.js +2 -0
- package/dist/components/input/input.stories.js.map +1 -0
- package/dist/components/label/index.js +2 -0
- package/dist/components/label/index.js.map +1 -0
- package/dist/components/label/label.js +2 -0
- package/dist/components/label/label.js.map +1 -0
- package/dist/components/label/label.stories.js +2 -0
- package/dist/components/label/label.stories.js.map +1 -0
- package/dist/components/multi-select/index.js +2 -0
- package/dist/components/multi-select/index.js.map +1 -0
- package/dist/components/multi-select/multi-select.js +2 -0
- package/dist/components/multi-select/multi-select.js.map +1 -0
- package/dist/components/multi-select/multi-select.stories.js +2 -0
- package/dist/components/multi-select/multi-select.stories.js.map +1 -0
- package/dist/components/navigation-menu/index.js +2 -0
- package/dist/components/navigation-menu/index.js.map +1 -0
- package/dist/components/navigation-menu/navigation-menu.js +2 -0
- package/dist/components/navigation-menu/navigation-menu.js.map +1 -0
- package/dist/components/navigation-menu/navigation-menu.stories.js +2 -0
- package/dist/components/navigation-menu/navigation-menu.stories.js.map +1 -0
- package/dist/components/pagination/index.js +2 -0
- package/dist/components/pagination/index.js.map +1 -0
- package/dist/components/pagination/pagination.js +2 -0
- package/dist/components/pagination/pagination.js.map +1 -0
- package/dist/components/pagination/pagination.stories.js +2 -0
- package/dist/components/pagination/pagination.stories.js.map +1 -0
- package/dist/components/password-input/index.js +2 -0
- package/dist/components/password-input/index.js.map +1 -0
- package/dist/components/password-input/password-input.js +2 -0
- package/dist/components/password-input/password-input.js.map +1 -0
- package/dist/components/password-input/password-input.stories.js +2 -0
- package/dist/components/password-input/password-input.stories.js.map +1 -0
- package/dist/components/popover/index.js +2 -0
- package/dist/components/popover/index.js.map +1 -0
- package/dist/components/popover/popover.js +2 -0
- package/dist/components/popover/popover.js.map +1 -0
- package/dist/components/popover/popover.stories.js +2 -0
- package/dist/components/popover/popover.stories.js.map +1 -0
- package/dist/components/progress/index.js +2 -0
- package/dist/components/progress/index.js.map +1 -0
- package/dist/components/progress/progress.js +2 -0
- package/dist/components/progress/progress.js.map +1 -0
- package/dist/components/progress/progress.stories.js +2 -0
- package/dist/components/progress/progress.stories.js.map +1 -0
- package/dist/components/radio-group/index.js +2 -0
- package/dist/components/radio-group/index.js.map +1 -0
- package/dist/components/radio-group/radio-group.js +2 -0
- package/dist/components/radio-group/radio-group.js.map +1 -0
- package/dist/components/radio-group/radio-group.stories.js +2 -0
- package/dist/components/radio-group/radio-group.stories.js.map +1 -0
- package/dist/components/select/index.js +2 -0
- package/dist/components/select/index.js.map +1 -0
- package/dist/components/select/select.js +2 -0
- package/dist/components/select/select.js.map +1 -0
- package/dist/components/select/select.stories.js +2 -0
- package/dist/components/select/select.stories.js.map +1 -0
- package/dist/components/separator/index.js +2 -0
- package/dist/components/separator/index.js.map +1 -0
- package/dist/components/separator/separator.js +2 -0
- package/dist/components/separator/separator.js.map +1 -0
- package/dist/components/separator/separator.stories.js +2 -0
- package/dist/components/separator/separator.stories.js.map +1 -0
- package/dist/components/skeleton/index.js +2 -0
- package/dist/components/skeleton/index.js.map +1 -0
- package/dist/components/skeleton/skeleton.js +2 -0
- package/dist/components/skeleton/skeleton.js.map +1 -0
- package/dist/components/skeleton/skeleton.stories.js +2 -0
- package/dist/components/skeleton/skeleton.stories.js.map +1 -0
- package/dist/components/spinner/index.js +2 -0
- package/dist/components/spinner/index.js.map +1 -0
- package/dist/components/spinner/spinner.js +2 -0
- package/dist/components/spinner/spinner.js.map +1 -0
- package/dist/components/spinner/spinner.stories.js +2 -0
- package/dist/components/spinner/spinner.stories.js.map +1 -0
- package/dist/components/switch/index.js +2 -0
- package/dist/components/switch/index.js.map +1 -0
- package/dist/components/switch/switch.js +2 -0
- package/dist/components/switch/switch.js.map +1 -0
- package/dist/components/switch/switch.stories.js +2 -0
- package/dist/components/switch/switch.stories.js.map +1 -0
- package/dist/components/table/index.js +2 -0
- package/dist/components/table/index.js.map +1 -0
- package/dist/components/table/table.js +2 -0
- package/dist/components/table/table.js.map +1 -0
- package/dist/components/table/table.stories.js +2 -0
- package/dist/components/table/table.stories.js.map +1 -0
- package/dist/components/tabs/index.js +2 -0
- package/dist/components/tabs/index.js.map +1 -0
- package/dist/components/tabs/tabs.js +2 -0
- package/dist/components/tabs/tabs.js.map +1 -0
- package/dist/components/tabs/tabs.stories.js +2 -0
- package/dist/components/tabs/tabs.stories.js.map +1 -0
- package/dist/components/textarea/index.js +2 -0
- package/dist/components/textarea/index.js.map +1 -0
- package/dist/components/textarea/textarea.js +2 -0
- package/dist/components/textarea/textarea.js.map +1 -0
- package/dist/components/textarea/textarea.stories.js +2 -0
- package/dist/components/textarea/textarea.stories.js.map +1 -0
- package/dist/components/toaster/index.js +2 -0
- package/dist/components/toaster/index.js.map +1 -0
- package/dist/components/toaster/toast.js +2 -0
- package/dist/components/toaster/toast.js.map +1 -0
- package/dist/components/toaster/toaster.js +2 -0
- package/dist/components/toaster/toaster.js.map +1 -0
- package/dist/components/toaster/toaster.stories.js +2 -0
- package/dist/components/toaster/toaster.stories.js.map +1 -0
- package/dist/components/toggle/index.js +2 -0
- package/dist/components/toggle/index.js.map +1 -0
- package/dist/components/toggle/toggle.js +2 -0
- package/dist/components/toggle/toggle.js.map +1 -0
- package/dist/components/toggle/toggle.stories.js +2 -0
- package/dist/components/toggle/toggle.stories.js.map +1 -0
- package/dist/components/toggle-group/index.js +2 -0
- package/dist/components/toggle-group/index.js.map +1 -0
- package/dist/components/toggle-group/toggle-group.js +2 -0
- package/dist/components/toggle-group/toggle-group.js.map +1 -0
- package/dist/components/toggle-group/toggle-group.stories.js +2 -0
- package/dist/components/toggle-group/toggle-group.stories.js.map +1 -0
- package/dist/components/tooltip/index.js +2 -0
- package/dist/components/tooltip/index.js.map +1 -0
- package/dist/components/tooltip/tooltip.js +2 -0
- package/dist/components/tooltip/tooltip.js.map +1 -0
- package/dist/components/tooltip/tooltip.stories.js +2 -0
- package/dist/components/tooltip/tooltip.stories.js.map +1 -0
- package/dist/index.js +2 -0
- package/dist/index.js.map +1 -0
- package/dist/lib/hooks/index.js +2 -0
- package/dist/lib/hooks/index.js.map +1 -0
- package/dist/lib/hooks/use-array.js +2 -0
- package/dist/lib/hooks/use-array.js.map +1 -0
- package/dist/lib/hooks/use-copy-to-clipboard.js +2 -0
- package/dist/lib/hooks/use-copy-to-clipboard.js.map +1 -0
- package/dist/lib/hooks/use-debounce.js +2 -0
- package/dist/lib/hooks/use-debounce.js.map +1 -0
- package/dist/lib/hooks/use-dialog.js +2 -0
- package/dist/lib/hooks/use-dialog.js.map +1 -0
- package/dist/lib/hooks/use-dialog.stories.js +2 -0
- package/dist/lib/hooks/use-dialog.stories.js.map +1 -0
- package/dist/lib/hooks/use-disclosure-bool.js +2 -0
- package/dist/lib/hooks/use-disclosure-bool.js.map +1 -0
- package/dist/lib/hooks/use-disclosure.js +2 -0
- package/dist/lib/hooks/use-disclosure.js.map +1 -0
- package/dist/lib/hooks/use-file-utilities.js +2 -0
- package/dist/lib/hooks/use-file-utilities.js.map +1 -0
- package/dist/lib/hooks/use-key-press.js +2 -0
- package/dist/lib/hooks/use-key-press.js.map +1 -0
- package/dist/lib/hooks/use-local-storage.js +2 -0
- package/dist/lib/hooks/use-local-storage.js.map +1 -0
- package/dist/lib/hooks/use-media-query.js +2 -0
- package/dist/lib/hooks/use-media-query.js.map +1 -0
- package/dist/lib/hooks/use-mobile.js +2 -0
- package/dist/lib/hooks/use-mobile.js.map +1 -0
- package/dist/lib/hooks/use-pwa-install.js +2 -0
- package/dist/lib/hooks/use-pwa-install.js.map +1 -0
- package/dist/lib/types/ts-utilities.js +2 -0
- package/dist/lib/types/ts-utilities.js.map +1 -0
- package/dist/lib/utils/cn.js +2 -0
- package/dist/lib/utils/cn.js.map +1 -0
- package/dist/lib/utils/date-formatters.js +2 -0
- package/dist/lib/utils/date-formatters.js.map +1 -0
- package/dist/lib/utils/formatters.js +2 -0
- package/dist/lib/utils/formatters.js.map +1 -0
- package/dist/lib/utils/index.js +2 -0
- package/dist/lib/utils/index.js.map +1 -0
- package/dist/lib/utils/merge-objects.js +2 -0
- package/dist/lib/utils/merge-objects.js.map +1 -0
- package/dist/lib/utils/string.js +2 -0
- package/dist/lib/utils/string.js.map +1 -0
- package/package.json +15 -19
- package/dist/buildgrid-ui.es.js +0 -17094
- package/dist/buildgrid-ui.umd.js +0 -277
- /package/dist/{buildgrid-ui.css → assets/unreset.css} +0 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{j as i}from"../../assets/jsx-runtime-D_zvdyIk.js";import"../../components/accordion/accordion.js";import"../../components/adaptive-input/adaptive-input.js";import"../../components/alert-dialog/alert-dialog.js";import"../../components/autocomplete/autocomplete.js";import"../../components/avatar/avatar.js";import"../../components/badge/badge.js";import{B as o}from"../../components/button/button.js";import"date-fns";import{Bold as x,Italic as u,Underline as j,List as h,ListOrdered as z,Quote as v,ImageIcon as b,LinkIcon as f}from"lucide-react";import"react";import"../../components/card/card.js";import"../../components/checkbox/checkbox.js";import"../../components/command/command.js";import"../../components/currency-input/currency-input.js";import"../../components/dialog/dialog.js";import"../../components/dropdown-menu/dropdown-menu.js";import"../../components/input/input.js";import"../../components/label/label.js";import"../../components/multi-select/multi-select.js";import"../../components/navigation-menu/navigation-menu.js";import"../../components/pagination/pagination.js";import"../../components/progress/progress.js";import"../../components/popover/popover.js";import"../../components/radio-group/radio-group.js";import{S as k,a as g,b as C,c as L,d as r}from"../../components/select/select.js";import"../../components/separator/separator.js";import"clsx";import"tailwind-merge";import"../../components/spinner/spinner.js";import"../../components/switch/switch.js";import"../../components/table/table.js";import"../../components/tabs/tabs.js";import"../../components/textarea/textarea.js";import"../../components/toaster/toast.js";import"sonner";import"../../components/toggle/toggle.js";import"../../components/toggle-group/toggle-group.js";import"../../components/tooltip/tooltip.js";import"@radix-ui/react-accordion";import"../../lib/utils/cn.js";import"date-fns-tz";import"class-variance-authority";import"@radix-ui/react-alert-dialog";import"../../components/button/button.types.js";import"cva-extended";import"../../lib/utils/merge-objects.js";import"@radix-ui/react-slot";import"../../lib/utils/string.js";import"@radix-ui/react-avatar";import"@radix-ui/react-checkbox";import"cmdk";import"@radix-ui/react-dialog";import"@radix-ui/react-dropdown-menu";import"@radix-ui/react-label";import"@radix-ui/react-popover";import"@radix-ui/react-separator";import"@radix-ui/react-navigation-menu";import"@radix-ui/react-progress";import"@radix-ui/react-radio-group";import"@radix-ui/react-select";import"@radix-ui/react-switch";import"@radix-ui/react-tabs";import"@radix-ui/react-toggle";import"@radix-ui/react-toggle-group";import"@radix-ui/react-tooltip";const qi=s=>{const{execCommand:e}=s,l=()=>{const t=document.createElement("input");t.type="file",t.accept="image/*",t.onchange=async d=>{var m;const p=(m=d.target.files)==null?void 0:m[0];if(p){const n=new FileReader;n.onload=()=>{e("insertImage",n.result)},n.readAsDataURL(p)}},t.click()},c=()=>{const t=prompt("Enter the URL:");t&&e("createLink",t)},a=t=>{e("fontSize",t)};return i.jsxs("div",{className:"flex flex-wrap gap-2 border-b pb-2 mb-2",children:[i.jsx(o,{variant:"outline",size:"icon",onClick:()=>e("bold"),type:"button",children:i.jsx(x,{size:16})}),i.jsx(o,{variant:"outline",size:"icon",onClick:()=>e("italic"),type:"button",children:i.jsx(u,{size:16})}),i.jsx(o,{variant:"outline",size:"icon",onClick:()=>e("underline"),type:"button",children:i.jsx(j,{size:16})}),i.jsxs(k,{onValueChange:t=>a(t),defaultValue:"3",children:[i.jsx(g,{className:"w-[100px]",children:i.jsx(C,{placeholder:"Size"})}),i.jsxs(L,{children:[i.jsx(r,{value:"1",children:i.jsx("div",{children:"Small"})}),i.jsx(r,{value:"3",children:i.jsx("div",{children:"Medium"})}),i.jsx(r,{value:"5",children:i.jsx("div",{children:"Large"})}),i.jsx(r,{value:"7",children:i.jsx("div",{children:"Extra Large"})})]})]}),i.jsx(o,{variant:"outline",size:"icon",onClick:()=>e("insertUnorderedList"),type:"button",children:i.jsx(h,{size:16})}),i.jsx(o,{variant:"outline",size:"icon",onClick:()=>e("insertOrderedList"),type:"button",children:i.jsx(z,{size:16})}),i.jsx(o,{variant:"outline",size:"icon",onClick:()=>e("formatBlock","blockquote"),type:"button",children:i.jsx(v,{size:16})}),i.jsx(o,{variant:"outline",size:"icon",onClick:l,type:"button",children:i.jsx(b,{size:16})}),i.jsx(o,{variant:"outline",size:"icon",onClick:c,type:"button",children:i.jsx(f,{size:16})})]})};export{qi as O};
|
|
2
|
+
//# sourceMappingURL=options-bar.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"options-bar.js","sources":["../../../src/blocks/html-text-editor/options-bar.tsx"],"sourcesContent":["import {\n\tButton,\n\tSelect,\n\tSelectContent,\n\tSelectItem,\n\tSelectTrigger,\n\tSelectValue,\n} from '@/components'\nimport {\n\tBold,\n\tImageIcon,\n\tItalic,\n\tLinkIcon,\n\tList,\n\tListOrdered,\n\tQuote,\n\tUnderline,\n} from 'lucide-react'\n\ntype OptionsBarProps = {\n\texecCommand: (command: string, value?: string) => void\n}\n\nexport const OptionsBar = (props: OptionsBarProps) => {\n\tconst { execCommand } = props\n\n\tconst insertImage = () => {\n\t\tconst input = document.createElement('input')\n\t\tinput.type = 'file'\n\t\tinput.accept = 'image/*'\n\t\tinput.onchange = async (event) => {\n\t\t\tconst file = (event.target as HTMLInputElement).files?.[0]\n\t\t\tif (file) {\n\t\t\t\tconst reader = new FileReader()\n\t\t\t\treader.onload = () => {\n\t\t\t\t\texecCommand('insertImage', reader.result as string)\n\t\t\t\t}\n\t\t\t\treader.readAsDataURL(file)\n\t\t\t}\n\t\t}\n\t\tinput.click()\n\t}\n\n\tconst insertLink = () => {\n\t\tconst url = prompt('Enter the URL:')\n\t\tif (url) {\n\t\t\texecCommand('createLink', url)\n\t\t}\n\t}\n\n\tconst changeFontSize = (size: string) => {\n\t\texecCommand('fontSize', size)\n\t}\n\n\treturn (\n\t\t<div className=\"flex flex-wrap gap-2 border-b pb-2 mb-2\">\n\t\t\t<Button\n\t\t\t\tvariant=\"outline\"\n\t\t\t\tsize=\"icon\"\n\t\t\t\tonClick={() => execCommand('bold')}\n\t\t\t\ttype=\"button\"\n\t\t\t>\n\t\t\t\t<Bold size={16} />\n\t\t\t</Button>\n\t\t\t<Button\n\t\t\t\tvariant=\"outline\"\n\t\t\t\tsize=\"icon\"\n\t\t\t\tonClick={() => execCommand('italic')}\n\t\t\t\ttype=\"button\"\n\t\t\t>\n\t\t\t\t<Italic size={16} />\n\t\t\t</Button>\n\t\t\t<Button\n\t\t\t\tvariant=\"outline\"\n\t\t\t\tsize=\"icon\"\n\t\t\t\tonClick={() => execCommand('underline')}\n\t\t\t\ttype=\"button\"\n\t\t\t>\n\t\t\t\t<Underline size={16} />\n\t\t\t</Button>\n\t\t\t<Select onValueChange={(value) => changeFontSize(value)} defaultValue=\"3\">\n\t\t\t\t<SelectTrigger className=\"w-[100px]\">\n\t\t\t\t\t<SelectValue placeholder=\"Size\" />\n\t\t\t\t</SelectTrigger>\n\t\t\t\t<SelectContent>\n\t\t\t\t\t<SelectItem value=\"1\">\n\t\t\t\t\t\t<div>Small</div>\n\t\t\t\t\t</SelectItem>\n\t\t\t\t\t<SelectItem value=\"3\">\n\t\t\t\t\t\t<div>Medium</div>\n\t\t\t\t\t</SelectItem>\n\t\t\t\t\t<SelectItem value=\"5\">\n\t\t\t\t\t\t<div>Large</div>\n\t\t\t\t\t</SelectItem>\n\t\t\t\t\t<SelectItem value=\"7\">\n\t\t\t\t\t\t<div>Extra Large</div>\n\t\t\t\t\t</SelectItem>\n\t\t\t\t</SelectContent>\n\t\t\t</Select>\n\t\t\t<Button\n\t\t\t\tvariant=\"outline\"\n\t\t\t\tsize=\"icon\"\n\t\t\t\tonClick={() => execCommand('insertUnorderedList')}\n\t\t\t\ttype=\"button\"\n\t\t\t>\n\t\t\t\t<List size={16} />\n\t\t\t</Button>\n\t\t\t<Button\n\t\t\t\tvariant=\"outline\"\n\t\t\t\tsize=\"icon\"\n\t\t\t\tonClick={() => execCommand('insertOrderedList')}\n\t\t\t\ttype=\"button\"\n\t\t\t>\n\t\t\t\t<ListOrdered size={16} />\n\t\t\t</Button>\n\t\t\t<Button\n\t\t\t\tvariant=\"outline\"\n\t\t\t\tsize=\"icon\"\n\t\t\t\tonClick={() => execCommand('formatBlock', 'blockquote')}\n\t\t\t\ttype=\"button\"\n\t\t\t>\n\t\t\t\t<Quote size={16} />\n\t\t\t</Button>\n\t\t\t<Button variant=\"outline\" size=\"icon\" onClick={insertImage} type=\"button\">\n\t\t\t\t<ImageIcon size={16} />\n\t\t\t</Button>\n\t\t\t<Button variant=\"outline\" size=\"icon\" onClick={insertLink} type=\"button\">\n\t\t\t\t<LinkIcon size={16} />\n\t\t\t</Button>\n\t\t\t{/* <Button\n\t\t\t\tvariant={isHtmlMode ? 'default' : 'outline'}\n\t\t\t\tsize=\"icon\"\n\t\t\t\tonClick={toggleHtmlMode}\n\t\t\t\tclassName=\"ml-auto\"\n\t\t\t>\n\t\t\t\t<Code size={16} />\n\t\t\t</Button> */}\n\t\t</div>\n\t)\n}\n"],"names":["OptionsBar","props","execCommand","insertImage","input","event","file","_a","reader","insertLink","url","changeFontSize","size","jsxs","jsx","Button","Bold","Italic","Underline","Select","value","SelectTrigger","SelectValue","SelectContent","SelectItem","List","ListOrdered","Quote","ImageIcon","LinkIcon"],"mappings":"wnFAuBO,MAAMA,GAAcC,GAA2B,CACrD,KAAM,CAAE,YAAAC,GAAgBD,EAElBE,EAAc,IAAM,CACzB,MAAMC,EAAQ,SAAS,cAAc,OAAO,EAC5CA,EAAM,KAAO,OACbA,EAAM,OAAS,UACfA,EAAM,SAAW,MAAOC,GAAU,OACjC,MAAMC,GAAQC,EAAAF,EAAM,OAA4B,QAAlC,YAAAE,EAA0C,GACxD,GAAID,EAAM,CACT,MAAME,EAAS,IAAI,WACnBA,EAAO,OAAS,IAAM,CACrBN,EAAY,cAAeM,EAAO,MAAgB,CAAA,EAEnDA,EAAO,cAAcF,CAAI,CAAA,CAC1B,EAEDF,EAAM,MAAA,CAAM,EAGPK,EAAa,IAAM,CACxB,MAAMC,EAAM,OAAO,gBAAgB,EAC/BA,GACHR,EAAY,aAAcQ,CAAG,CAC9B,EAGKC,EAAkBC,GAAiB,CACxCV,EAAY,WAAYU,CAAI,CAAA,EAG7B,OACCC,EAAAA,KAAC,MAAA,CAAI,UAAU,0CACd,SAAA,CAAAC,EAAAA,IAACC,EAAA,CACA,QAAQ,UACR,KAAK,OACL,QAAS,IAAMb,EAAY,MAAM,EACjC,KAAK,SAEL,SAAAY,EAAAA,IAACE,EAAA,CAAK,KAAM,EAAA,CAAI,CAAA,CAAA,EAEjBF,EAAAA,IAACC,EAAA,CACA,QAAQ,UACR,KAAK,OACL,QAAS,IAAMb,EAAY,QAAQ,EACnC,KAAK,SAEL,SAAAY,EAAAA,IAACG,EAAA,CAAO,KAAM,EAAA,CAAI,CAAA,CAAA,EAEnBH,EAAAA,IAACC,EAAA,CACA,QAAQ,UACR,KAAK,OACL,QAAS,IAAMb,EAAY,WAAW,EACtC,KAAK,SAEL,SAAAY,EAAAA,IAACI,EAAA,CAAU,KAAM,EAAA,CAAI,CAAA,CAAA,EAEtBL,EAAAA,KAACM,GAAO,cAAgBC,GAAUT,EAAeS,CAAK,EAAG,aAAa,IACrE,SAAA,CAAAN,EAAAA,IAACO,GAAc,UAAU,YACxB,eAACC,EAAA,CAAY,YAAY,OAAO,CAAA,CACjC,SACCC,EAAA,CACA,SAAA,CAAAT,EAAAA,IAACU,GAAW,MAAM,IACjB,SAAAV,MAAC,MAAA,CAAI,iBAAK,CAAA,CACX,QACCU,EAAA,CAAW,MAAM,IACjB,SAAAV,MAAC,MAAA,CAAI,kBAAM,CAAA,CACZ,QACCU,EAAA,CAAW,MAAM,IACjB,SAAAV,MAAC,MAAA,CAAI,iBAAK,CAAA,CACX,QACCU,EAAA,CAAW,MAAM,IACjB,SAAAV,EAAAA,IAAC,MAAA,CAAI,uBAAW,CAAA,CACjB,CAAA,CAAA,CACD,CAAA,EACD,EACAA,EAAAA,IAACC,EAAA,CACA,QAAQ,UACR,KAAK,OACL,QAAS,IAAMb,EAAY,qBAAqB,EAChD,KAAK,SAEL,SAAAY,EAAAA,IAACW,EAAA,CAAK,KAAM,EAAA,CAAI,CAAA,CAAA,EAEjBX,EAAAA,IAACC,EAAA,CACA,QAAQ,UACR,KAAK,OACL,QAAS,IAAMb,EAAY,mBAAmB,EAC9C,KAAK,SAEL,SAAAY,EAAAA,IAACY,EAAA,CAAY,KAAM,EAAA,CAAI,CAAA,CAAA,EAExBZ,EAAAA,IAACC,EAAA,CACA,QAAQ,UACR,KAAK,OACL,QAAS,IAAMb,EAAY,cAAe,YAAY,EACtD,KAAK,SAEL,SAAAY,EAAAA,IAACa,EAAA,CAAM,KAAM,EAAA,CAAI,CAAA,CAAA,EAElBb,EAAAA,IAACC,EAAA,CAAO,QAAQ,UAAU,KAAK,OAAO,QAASZ,EAAa,KAAK,SAChE,SAAAW,MAACc,EAAA,CAAU,KAAM,GAAI,EACtB,EACAd,EAAAA,IAACC,EAAA,CAAO,QAAQ,UAAU,KAAK,OAAO,QAASN,EAAY,KAAK,SAC/D,SAAAK,EAAAA,IAACe,EAAA,CAAS,KAAM,GAAI,CAAA,CACrB,CAAA,EASD,CAEF"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import"./bento-grid/bento-grid.js";import"./data-table/components/table-row.js";import"./empty-message/empty-message.js";import"./help-carousel/help-carousel.js";import"./html-text-editor/html-text-area.js";import"./html-text-editor/html-text-editor.js";import"./lazy-image-gallery/lazy-image-gallery.js";import"./month-navigator/month-navigator.js";import"./paginated-items/paginated-items.js";import"./pagination-controls/pagination-controls.js";import"./sidebar/sidebar.js";import"../assets/jsx-runtime-D_zvdyIk.js";import"../lib/utils/cn.js";import"clsx";import"tailwind-merge";import"date-fns-tz";import"../components/button/button.js";import"../lib/utils/merge-objects.js";import"@radix-ui/react-slot";import"cva-extended";import"react";import"../components/button/button.types.js";import"../components/table/table.js";import"lucide-react";import"./data-table/components/active-filters.js";import"../components/badge/badge.js";import"class-variance-authority";import"./data-table/components/column-visibility-dropdown.js";import"../components/dropdown-menu/dropdown-menu.js";import"@radix-ui/react-dropdown-menu";import"./data-table/components/filter-dropdown.js";import"../components/select/select.js";import"@radix-ui/react-select";import"./data-table/components/search-input.js";import"../components/input/input.js";import"./data-table/components/selection-info.js";import"./data-table/components/table-header.js";import"../components/checkbox/checkbox.js";import"@radix-ui/react-checkbox";import"./data-table/components/table-skeleton.js";import"../components/skeleton/skeleton.js";import"./data-table/utils/export.js";import"../components/accordion/accordion.js";import"@radix-ui/react-accordion";import"../components/adaptive-input/adaptive-input.js";import"../components/alert-dialog/alert-dialog.js";import"@radix-ui/react-alert-dialog";import"../components/autocomplete/autocomplete.js";import"../lib/utils/string.js";import"../components/avatar/avatar.js";import"@radix-ui/react-avatar";import"date-fns";import"../components/card/card.js";import"../components/command/command.js";import"cmdk";import"../components/dialog/dialog.js";import"@radix-ui/react-dialog";import"../components/currency-input/currency-input.js";import"../components/label/label.js";import"@radix-ui/react-label";import"../components/multi-select/multi-select.js";import"../components/popover/popover.js";import"@radix-ui/react-popover";import"../components/separator/separator.js";import"@radix-ui/react-separator";import"../components/navigation-menu/navigation-menu.js";import"@radix-ui/react-navigation-menu";import"../components/pagination/pagination.js";import"../components/progress/progress.js";import"@radix-ui/react-progress";import"../components/radio-group/radio-group.js";import"@radix-ui/react-radio-group";import"../components/spinner/spinner.js";import"../components/switch/switch.js";import"@radix-ui/react-switch";import"../components/tabs/tabs.js";import"@radix-ui/react-tabs";import"../components/textarea/textarea.js";import"../components/toaster/toast.js";import"sonner";import"../components/toggle/toggle.js";import"@radix-ui/react-toggle";import"../components/toggle-group/toggle-group.js";import"@radix-ui/react-toggle-group";import"../components/tooltip/tooltip.js";import"@radix-ui/react-tooltip";import"../lib/hooks/use-debounce.js";import"../lib/hooks/use-dialog.js";import"compressorjs";/* empty css */import"./html-text-editor/options-bar.js";import"../assets/en-US-BUOWLxFp.js";
|
|
2
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{j as o}from"../../assets/jsx-runtime-D_zvdyIk.js";import{c as l}from"../../lib/utils/cn.js";import"date-fns-tz";import{useState as p,useRef as v,useEffect as s}from"react";import"clsx";import"tailwind-merge";const w=m=>{const{observerOptions:c,images:n,classNames:r}=m,[g,u]=p([]),a=v(null);return s(()=>{const i={root:document.querySelector(".image-gallery"),rootMargin:"0px",threshold:1,...c};return a.current=new IntersectionObserver(e=>{e.forEach(t=>{if(t.isIntersecting&&t.target instanceof HTMLDivElement){const f=Number(t.target.dataset.index);u(d=>[...new Set([...d,f])])}})},i),()=>{var e;return(e=a.current)==null?void 0:e.disconnect()}},[]),s(()=>{document.querySelectorAll(".image-cell").forEach(e=>{var t;return(t=a.current)==null?void 0:t.observe(e)})},[n]),o.jsx("div",{className:l("image-gallery overflow-auto grid grid-cols-[repeat(auto-fit,minmax(300px,1fr))]","gap-2 justify-center h-full",r==null?void 0:r.imageGallery),children:n.map((i,e)=>o.jsx("div",{"data-index":e,className:l("image-cell w-full h-52",r==null?void 0:r.imageCell),children:g.includes(e)&&o.jsx("img",{src:i,alt:`Gallery Image ${e+1}`,className:l("animate-fade-up animate-duration-[400ms] animate-ease-linear w-full h-full object-cover",r==null?void 0:r.image)})},e))})};export{w as L};
|
|
2
|
+
//# sourceMappingURL=lazy-image-gallery.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lazy-image-gallery.js","sources":["../../../src/blocks/lazy-image-gallery/lazy-image-gallery.tsx"],"sourcesContent":["import { cn } from '@/lib/utils'\nimport React, { useEffect, useRef, useState } from 'react'\n\ninterface LazyImageGalleryProps {\n\timages: string[]\n\tobserverOptions?: IntersectionObserverInit\n\tclassNames?: {\n\t\timageGallery?: string\n\t\timageCell?: string\n\t\timage?: string\n\t}\n}\n\nexport const LazyImageGallery: React.FC<LazyImageGalleryProps> = (props) => {\n\tconst { observerOptions, images, classNames } = props\n\tconst [visibleImages, setVisibleImages] = useState<number[]>([])\n\tconst observer = useRef<IntersectionObserver | null>(null)\n\n\tuseEffect(() => {\n\t\tconst observerConfig = {\n\t\t\troot: document.querySelector('.image-gallery'),\n\t\t\trootMargin: '0px',\n\t\t\tthreshold: 1,\n\t\t\t...observerOptions,\n\t\t}\n\n\t\tobserver.current = new IntersectionObserver((entries) => {\n\t\t\tentries.forEach((entry) => {\n\t\t\t\tif (entry.isIntersecting && entry.target instanceof HTMLDivElement) {\n\t\t\t\t\tconst index = Number(entry.target.dataset.index)\n\t\t\t\t\tsetVisibleImages((prev) => [...new Set([...prev, index])])\n\t\t\t\t}\n\t\t\t})\n\t\t}, observerConfig)\n\n\t\treturn () => observer.current?.disconnect()\n\t}, [])\n\n\tuseEffect(() => {\n\t\tconst imageDivs = document.querySelectorAll('.image-cell')\n\t\timageDivs.forEach((div) => observer.current?.observe(div as Element))\n\t}, [images])\n\n\treturn (\n\t\t<div\n\t\t\tclassName={cn(\n\t\t\t\t'image-gallery overflow-auto grid grid-cols-[repeat(auto-fit,minmax(300px,1fr))]',\n\t\t\t\t'gap-2 justify-center h-full',\n\t\t\t\tclassNames?.imageGallery,\n\t\t\t)}\n\t\t>\n\t\t\t{images.map((src, index) => (\n\t\t\t\t<div\n\t\t\t\t\tkey={index}\n\t\t\t\t\tdata-index={index}\n\t\t\t\t\tclassName={cn('image-cell w-full h-52', classNames?.imageCell)}\n\t\t\t\t>\n\t\t\t\t\t{visibleImages.includes(index) && (\n\t\t\t\t\t\t<img\n\t\t\t\t\t\t\tsrc={src}\n\t\t\t\t\t\t\talt={`Gallery Image ${index + 1}`}\n\t\t\t\t\t\t\tclassName={cn(\n\t\t\t\t\t\t\t\t'animate-fade-up animate-duration-[400ms] animate-ease-linear w-full h-full object-cover',\n\t\t\t\t\t\t\t\tclassNames?.image,\n\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t/>\n\t\t\t\t\t)}\n\t\t\t\t</div>\n\t\t\t))}\n\t\t</div>\n\t)\n}\n"],"names":["LazyImageGallery","props","observerOptions","images","classNames","visibleImages","setVisibleImages","useState","observer","useRef","useEffect","observerConfig","entries","entry","index","prev","_a","div","jsx","cn","src"],"mappings":"uNAaO,MAAMA,EAAqDC,GAAU,CAC3E,KAAM,CAAE,gBAAAC,EAAiB,OAAAC,EAAQ,WAAAC,CAAA,EAAeH,EAC1C,CAACI,EAAeC,CAAgB,EAAIC,EAAmB,CAAA,CAAE,EACzDC,EAAWC,EAAoC,IAAI,EAEzD,OAAAC,EAAU,IAAM,CACf,MAAMC,EAAiB,CACtB,KAAM,SAAS,cAAc,gBAAgB,EAC7C,WAAY,MACZ,UAAW,EACX,GAAGT,CAAA,EAGJ,OAAAM,EAAS,QAAU,IAAI,qBAAsBI,GAAY,CACxDA,EAAQ,QAASC,GAAU,CAC1B,GAAIA,EAAM,gBAAkBA,EAAM,kBAAkB,eAAgB,CACnE,MAAMC,EAAQ,OAAOD,EAAM,OAAO,QAAQ,KAAK,EAC/CP,EAAkBS,GAAS,CAAC,GAAG,IAAI,IAAI,CAAC,GAAGA,EAAMD,CAAK,CAAC,CAAC,CAAC,CAAA,CAC1D,CACA,CAAA,EACCH,CAAc,EAEV,IAAA,OAAM,OAAAK,EAAAR,EAAS,UAAT,YAAAQ,EAAkB,aAAW,EACxC,EAAE,EAELN,EAAU,IAAM,CACG,SAAS,iBAAiB,aAAa,EAC/C,QAASO,GAAA,OAAQ,OAAAD,EAAAR,EAAS,UAAT,YAAAQ,EAAkB,QAAQC,GAAe,CAAA,EAClE,CAACd,CAAM,CAAC,EAGVe,EAAAA,IAAC,MAAA,CACA,UAAWC,EACV,kFACA,8BACAf,GAAA,YAAAA,EAAY,YAAA,EAGZ,SAAAD,EAAO,IAAI,CAACiB,EAAKN,IACjBI,EAAAA,IAAC,MAAA,CAEA,aAAYJ,EACZ,UAAWK,EAAG,yBAA0Bf,GAAA,YAAAA,EAAY,SAAS,EAE5D,SAAAC,EAAc,SAASS,CAAK,GAC5BI,EAAAA,IAAC,MAAA,CACA,IAAAE,EACA,IAAK,iBAAiBN,EAAQ,CAAC,GAC/B,UAAWK,EACV,0FACAf,GAAA,YAAAA,EAAY,KAAA,CACb,CAAA,CACD,EAZIU,CAAA,CAeN,CAAA,CAAA,CAGJ"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{j as o}from"../../assets/jsx-runtime-D_zvdyIk.js";import{L as t}from"./lazy-image-gallery.js";import"../../lib/utils/cn.js";import"clsx";import"tailwind-merge";import"date-fns-tz";import"react";const p=["https://placehold.co/600x400","https://placehold.co/700x500","https://placehold.co/800x600","https://placehold.co/900x700","https://placehold.co/1000x800","https://placehold.co/1100x900","https://placehold.co/1200x1000","https://placehold.co/1300x1100","https://placehold.co/1400x1200","https://placehold.co/1500x1300","https://placehold.co/1600x1400","https://placehold.co/1800x1500","https://placehold.co/1900x1600","https://placehold.co/2000x1700","https://placehold.co/2100x1800","https://placehold.co/2200x1900"],l=()=>o.jsx("div",{className:"h-96 border rounded p-2",children:o.jsx(t,{images:p})});l.bind({});
|
|
2
|
+
//# sourceMappingURL=lazy-image-gallery.stories.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"lazy-image-gallery.stories.js","sources":["../../../src/blocks/lazy-image-gallery/lazy-image-gallery.stories.tsx"],"sourcesContent":["// organize-imports-ignore\nimport React from 'react'\nimport type { Meta, StoryObj } from '@storybook/react'\nimport { LazyImageGallery } from './lazy-image-gallery'\n\nconst meta: Meta<typeof LazyImageGallery> = {\n\tcomponent: LazyImageGallery,\n}\n\nexport default meta\ntype Story = StoryObj<typeof LazyImageGallery>\n\nconst imageUrls = [\n\t'https://placehold.co/600x400',\n\t'https://placehold.co/700x500',\n\t'https://placehold.co/800x600',\n\t'https://placehold.co/900x700',\n\t'https://placehold.co/1000x800',\n\t'https://placehold.co/1100x900',\n\t'https://placehold.co/1200x1000',\n\t'https://placehold.co/1300x1100',\n\t'https://placehold.co/1400x1200',\n\t'https://placehold.co/1500x1300',\n\t'https://placehold.co/1600x1400',\n\t'https://placehold.co/1800x1500',\n\t'https://placehold.co/1900x1600',\n\t'https://placehold.co/2000x1700',\n\t'https://placehold.co/2100x1800',\n\t'https://placehold.co/2200x1900',\n\t// Add more URLs here\n]\n\nconst Template = () => {\n\treturn (\n\t\t<div className=\"h-96 border rounded p-2\">\n\t\t\t<LazyImageGallery images={imageUrls} />\n\t\t</div>\n\t)\n}\n\nexport const Default: Story = {\n\trender: Template.bind({}),\n\targs: {},\n}\n"],"names":["imageUrls","Template","jsx","LazyImageGallery"],"mappings":"yMAYA,MAAMA,EAAY,CACjB,+BACA,+BACA,+BACA,+BACA,gCACA,gCACA,iCACA,iCACA,iCACA,iCACA,iCACA,iCACA,iCACA,iCACA,iCACA,gCAED,EAEMC,EAAW,IAEfC,MAAC,OAAI,UAAU,0BACd,eAACC,EAAA,CAAiB,OAAQH,EAAW,CAAA,CACtC,EAKOC,EAAS,KAAK,EAAE"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import"./month-navigator.js";import"../../assets/jsx-runtime-D_zvdyIk.js";import"../../components/accordion/accordion.js";import"@radix-ui/react-accordion";import"lucide-react";import"react";import"../../lib/utils/cn.js";import"clsx";import"tailwind-merge";import"date-fns-tz";import"../../components/adaptive-input/adaptive-input.js";import"../../components/input/input.js";import"class-variance-authority";import"../../components/alert-dialog/alert-dialog.js";import"@radix-ui/react-alert-dialog";import"../../components/button/button.js";import"../../lib/utils/merge-objects.js";import"@radix-ui/react-slot";import"cva-extended";import"../../components/button/button.types.js";import"../../components/autocomplete/autocomplete.js";import"../../lib/utils/string.js";import"../../components/avatar/avatar.js";import"@radix-ui/react-avatar";import"../../components/badge/badge.js";import"date-fns";import"../../components/card/card.js";import"../../components/checkbox/checkbox.js";import"@radix-ui/react-checkbox";import"../../components/command/command.js";import"cmdk";import"../../components/dialog/dialog.js";import"@radix-ui/react-dialog";import"../../components/currency-input/currency-input.js";import"../../components/dropdown-menu/dropdown-menu.js";import"@radix-ui/react-dropdown-menu";import"../../components/label/label.js";import"@radix-ui/react-label";import"../../components/multi-select/multi-select.js";import"../../components/popover/popover.js";import"@radix-ui/react-popover";import"../../components/separator/separator.js";import"@radix-ui/react-separator";import"../../components/navigation-menu/navigation-menu.js";import"@radix-ui/react-navigation-menu";import"../../components/pagination/pagination.js";import"../../components/progress/progress.js";import"@radix-ui/react-progress";import"../../components/radio-group/radio-group.js";import"@radix-ui/react-radio-group";import"../../components/select/select.js";import"@radix-ui/react-select";import"../../components/spinner/spinner.js";import"../../components/switch/switch.js";import"@radix-ui/react-switch";import"../../components/table/table.js";import"../../components/tabs/tabs.js";import"@radix-ui/react-tabs";import"../../components/textarea/textarea.js";import"../../components/toaster/toast.js";import"sonner";import"../../components/toggle/toggle.js";import"@radix-ui/react-toggle";import"../../components/toggle-group/toggle-group.js";import"@radix-ui/react-toggle-group";import"../../components/tooltip/tooltip.js";import"@radix-ui/react-tooltip";import"../../assets/en-US-BUOWLxFp.js";
|
|
2
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{j as t}from"../../assets/jsx-runtime-D_zvdyIk.js";import"../../components/accordion/accordion.js";import"../../components/adaptive-input/adaptive-input.js";import"../../components/alert-dialog/alert-dialog.js";import"../../components/autocomplete/autocomplete.js";import"../../components/avatar/avatar.js";import"../../components/badge/badge.js";import{B as n}from"../../components/button/button.js";import"date-fns";import{ArrowLeft as h,ArrowRight as x}from"lucide-react";import"react";import"../../components/card/card.js";import"../../components/checkbox/checkbox.js";import"../../components/command/command.js";import"../../components/currency-input/currency-input.js";import"../../components/dialog/dialog.js";import"../../components/dropdown-menu/dropdown-menu.js";import"../../components/input/input.js";import"../../components/label/label.js";import"../../components/multi-select/multi-select.js";import"../../components/navigation-menu/navigation-menu.js";import"../../components/pagination/pagination.js";import"../../components/progress/progress.js";import"../../components/popover/popover.js";import"../../components/radio-group/radio-group.js";import"../../components/select/select.js";import"../../components/separator/separator.js";import"clsx";import"tailwind-merge";import"../../components/spinner/spinner.js";import"../../components/switch/switch.js";import"../../components/table/table.js";import"../../components/tabs/tabs.js";import"../../components/textarea/textarea.js";import"../../components/toaster/toast.js";import"sonner";import"../../components/toggle/toggle.js";import"../../components/toggle-group/toggle-group.js";import"../../components/tooltip/tooltip.js";import{e as d}from"../../assets/en-US-BUOWLxFp.js";import"@radix-ui/react-accordion";import"../../lib/utils/cn.js";import"date-fns-tz";import"@radix-ui/react-alert-dialog";import"../../components/button/button.types.js";import"cva-extended";import"../../lib/utils/string.js";import"@radix-ui/react-avatar";import"class-variance-authority";import"../../lib/utils/merge-objects.js";import"@radix-ui/react-slot";import"@radix-ui/react-checkbox";import"cmdk";import"@radix-ui/react-dialog";import"@radix-ui/react-dropdown-menu";import"@radix-ui/react-label";import"@radix-ui/react-navigation-menu";import"@radix-ui/react-progress";import"@radix-ui/react-popover";import"@radix-ui/react-radio-group";import"@radix-ui/react-select";import"@radix-ui/react-separator";import"@radix-ui/react-switch";import"@radix-ui/react-tabs";import"@radix-ui/react-toggle";import"@radix-ui/react-toggle-group";import"@radix-ui/react-tooltip";const At=a=>{const{currentMonth:p,currentYear:m,onChangeMonthYear:l,locale:c=d,mode:i="month"}=a,e=s=>{let r=p,o=m;i==="month"?s==="prev"?r===0?(r=11,o--):r--:r===11?(r=0,o++):r++:o=s==="prev"?o-1:o+1,l(r,o)};return t.jsxs("div",{className:"flex items-center justify-between",children:[t.jsx(n,{variant:"ghost",size:"icon",onClick:()=>e("prev"),"aria-label":`Previous ${i}`,children:t.jsx(h,{className:"!h-8 !w-8"})}),t.jsxs("div",{className:"text-center",children:[t.jsx("h2",{className:"text-2xl font-bold capitalize",children:i==="month"?c.localize.month(p,{width:"wide"}):m}),i==="month"&&t.jsx("p",{className:"text-sm text-muted-foreground",children:m})]}),t.jsx(n,{variant:"ghost",size:"icon",onClick:()=>e("next"),"aria-label":`Next ${i}`,children:t.jsx(x,{className:"!h-8 !w-8"})})]})};export{At as M};
|
|
2
|
+
//# sourceMappingURL=month-navigator.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"month-navigator.js","sources":["../../../src/blocks/month-navigator/month-navigator.tsx"],"sourcesContent":["import { Button } from '@/components'\nimport { enUS, Locale } from 'date-fns/locale'\nimport { ArrowLeft, ArrowRight } from 'lucide-react'\n\nexport type Month = 0 | 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11\nexport type Mode = 'month' | 'year'\n\nexport interface MonthNavigatorProps {\n\tlocale?: Locale\n\tcurrentMonth: Month\n\tcurrentYear: number\n\tonChangeMonthYear: (month: Month, year: number) => void\n\tmode?: Mode\n}\n\nexport const MonthNavigator = (props: MonthNavigatorProps) => {\n\tconst {\n\t\tcurrentMonth,\n\t\tcurrentYear,\n\t\tonChangeMonthYear,\n\t\tlocale = enUS,\n\t\tmode = 'month',\n\t} = props\n\n\tconst navigate = (direction: 'prev' | 'next') => {\n\t\tlet newMonth = currentMonth\n\t\tlet newYear = currentYear\n\n\t\tif (mode === 'month') {\n\t\t\tif (direction === 'prev') {\n\t\t\t\tif (newMonth === 0) {\n\t\t\t\t\tnewMonth = 11\n\t\t\t\t\tnewYear--\n\t\t\t\t} else {\n\t\t\t\t\tnewMonth--\n\t\t\t\t}\n\t\t\t} else {\n\t\t\t\tif (newMonth === 11) {\n\t\t\t\t\tnewMonth = 0\n\t\t\t\t\tnewYear++\n\t\t\t\t} else {\n\t\t\t\t\tnewMonth++\n\t\t\t\t}\n\t\t\t}\n\t\t} else {\n\t\t\tnewYear = direction === 'prev' ? newYear - 1 : newYear + 1\n\t\t}\n\n\t\tonChangeMonthYear(newMonth as Month, newYear)\n\t}\n\n\treturn (\n\t\t<div className=\"flex items-center justify-between\">\n\t\t\t<Button\n\t\t\t\tvariant=\"ghost\"\n\t\t\t\tsize=\"icon\"\n\t\t\t\tonClick={() => navigate('prev')}\n\t\t\t\taria-label={`Previous ${mode}`}\n\t\t\t>\n\t\t\t\t<ArrowLeft className=\"!h-8 !w-8\" />\n\t\t\t</Button>\n\t\t\t<div className=\"text-center\">\n\t\t\t\t<h2 className=\"text-2xl font-bold capitalize\">\n\t\t\t\t\t{mode === 'month'\n\t\t\t\t\t\t? locale.localize.month(currentMonth, { width: 'wide' })\n\t\t\t\t\t\t: currentYear}\n\t\t\t\t</h2>\n\t\t\t\t{mode === 'month' && (\n\t\t\t\t\t<p className=\"text-sm text-muted-foreground\">{currentYear}</p>\n\t\t\t\t)}\n\t\t\t</div>\n\t\t\t<Button\n\t\t\t\tvariant=\"ghost\"\n\t\t\t\tsize=\"icon\"\n\t\t\t\tonClick={() => navigate('next')}\n\t\t\t\taria-label={`Next ${mode}`}\n\t\t\t>\n\t\t\t\t<ArrowRight className=\"!h-8 !w-8\" />\n\t\t\t</Button>\n\t\t</div>\n\t)\n}\n"],"names":["MonthNavigator","props","currentMonth","currentYear","onChangeMonthYear","locale","enUS","mode","navigate","direction","newMonth","newYear","jsxs","jsx","Button","ArrowLeft","ArrowRight"],"mappings":"0jFAeO,MAAMA,GAAkBC,GAA+B,CAC7D,KAAM,CACL,aAAAC,EACA,YAAAC,EACA,kBAAAC,EACA,OAAAC,EAASC,EACT,KAAAC,EAAO,OAAA,EACJN,EAEEO,EAAYC,GAA+B,CAChD,IAAIC,EAAWR,EACXS,EAAUR,EAEVI,IAAS,QACRE,IAAc,OACbC,IAAa,GAChBA,EAAW,GACXC,KAEAD,IAGGA,IAAa,IAChBA,EAAW,EACXC,KAEAD,IAIFC,EAAUF,IAAc,OAASE,EAAU,EAAIA,EAAU,EAG1DP,EAAkBM,EAAmBC,CAAO,CAAA,EAG7C,OACCC,EAAAA,KAAC,MAAA,CAAI,UAAU,oCACd,SAAA,CAAAC,EAAAA,IAACC,EAAA,CACA,QAAQ,QACR,KAAK,OACL,QAAS,IAAMN,EAAS,MAAM,EAC9B,aAAY,YAAYD,CAAI,GAE5B,SAAAM,EAAAA,IAACE,EAAA,CAAU,UAAU,WAAA,CAAY,CAAA,CAAA,EAElCH,EAAAA,KAAC,MAAA,CAAI,UAAU,cACd,SAAA,CAAAC,EAAAA,IAAC,KAAA,CAAG,UAAU,gCACZ,SAAAN,IAAS,QACPF,EAAO,SAAS,MAAMH,EAAc,CAAE,MAAO,MAAA,CAAQ,EACrDC,EACJ,EACCI,IAAS,SACTM,EAAAA,IAAC,IAAA,CAAE,UAAU,gCAAiC,SAAAV,CAAA,CAAY,CAAA,EAE5D,EACAU,EAAAA,IAACC,EAAA,CACA,QAAQ,QACR,KAAK,OACL,QAAS,IAAMN,EAAS,MAAM,EAC9B,aAAY,QAAQD,CAAI,GAExB,SAAAM,EAAAA,IAACG,EAAA,CAAW,UAAU,WAAA,CAAY,CAAA,CAAA,CACnC,EACD,CAEF"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{j as t}from"../../assets/jsx-runtime-D_zvdyIk.js";import r from"react";import{M as a}from"./month-navigator.js";import"../../components/accordion/accordion.js";import"@radix-ui/react-accordion";import"lucide-react";import"../../lib/utils/cn.js";import"clsx";import"tailwind-merge";import"date-fns-tz";import"../../components/adaptive-input/adaptive-input.js";import"../../components/input/input.js";import"class-variance-authority";import"../../components/alert-dialog/alert-dialog.js";import"@radix-ui/react-alert-dialog";import"../../components/button/button.js";import"../../lib/utils/merge-objects.js";import"@radix-ui/react-slot";import"cva-extended";import"../../components/button/button.types.js";import"../../components/autocomplete/autocomplete.js";import"../../lib/utils/string.js";import"../../components/avatar/avatar.js";import"@radix-ui/react-avatar";import"../../components/badge/badge.js";import"date-fns";import"../../components/card/card.js";import"../../components/checkbox/checkbox.js";import"@radix-ui/react-checkbox";import"../../components/command/command.js";import"cmdk";import"../../components/dialog/dialog.js";import"@radix-ui/react-dialog";import"../../components/currency-input/currency-input.js";import"../../components/dropdown-menu/dropdown-menu.js";import"@radix-ui/react-dropdown-menu";import"../../components/label/label.js";import"@radix-ui/react-label";import"../../components/multi-select/multi-select.js";import"../../components/popover/popover.js";import"@radix-ui/react-popover";import"../../components/separator/separator.js";import"@radix-ui/react-separator";import"../../components/navigation-menu/navigation-menu.js";import"@radix-ui/react-navigation-menu";import"../../components/pagination/pagination.js";import"../../components/progress/progress.js";import"@radix-ui/react-progress";import"../../components/radio-group/radio-group.js";import"@radix-ui/react-radio-group";import"../../components/select/select.js";import"@radix-ui/react-select";import"../../components/spinner/spinner.js";import"../../components/switch/switch.js";import"@radix-ui/react-switch";import"../../components/table/table.js";import"../../components/tabs/tabs.js";import"@radix-ui/react-tabs";import"../../components/textarea/textarea.js";import"../../components/toaster/toast.js";import"sonner";import"../../components/toggle/toggle.js";import"@radix-ui/react-toggle";import"../../components/toggle-group/toggle-group.js";import"@radix-ui/react-toggle-group";import"../../components/tooltip/tooltip.js";import"@radix-ui/react-tooltip";import"../../assets/en-US-BUOWLxFp.js";const s=()=>{const[o,m]=r.useState(new Date().getMonth()),[i,p]=r.useState(new Date().getFullYear());return t.jsx("div",{className:"w-96 border rounded-md p-4",children:t.jsx(a,{currentMonth:o,currentYear:i,onChangeMonthYear:(e,n)=>{m(e),p(n)}})})};s.bind({});const d=()=>{const[o,m]=r.useState(new Date().getMonth()),[i,p]=r.useState(new Date().getFullYear());return t.jsx("div",{className:"w-96 border rounded-md p-4",children:t.jsx(a,{currentMonth:o,currentYear:i,mode:"year",onChangeMonthYear:(e,n)=>{m(e),p(n)}})})};d.bind({});
|
|
2
|
+
//# sourceMappingURL=month-navigator.stories.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"month-navigator.stories.js","sources":["../../../src/blocks/month-navigator/month-navigator.stories.tsx"],"sourcesContent":["// organize-imports-ignore\nimport React from 'react'\nimport type { Meta, StoryObj } from '@storybook/react'\nimport { Month, MonthNavigator } from './month-navigator'\n\nconst meta: Meta<typeof MonthNavigator> = {\n\tcomponent: MonthNavigator,\n}\n\nexport default meta\ntype Story = StoryObj<typeof MonthNavigator>\n\nconst Template = () => {\n\tconst [month, setMonth] = React.useState(new Date().getMonth() as Month)\n\tconst [year, setYear] = React.useState(new Date().getFullYear())\n\n\treturn (\n\t\t<div className=\"w-96 border rounded-md p-4\">\n\t\t\t<MonthNavigator\n\t\t\t\tcurrentMonth={month}\n\t\t\t\tcurrentYear={year}\n\t\t\t\tonChangeMonthYear={(month, year) => {\n\t\t\t\t\tsetMonth(month)\n\t\t\t\t\tsetYear(year)\n\t\t\t\t}}\n\t\t\t/>\n\t\t</div>\n\t)\n}\n\nexport const Default: Story = {\n\trender: Template.bind({}),\n\targs: {},\n}\n\nconst YearModeTemplate = () => {\n\tconst [month, setMonth] = React.useState(new Date().getMonth() as Month)\n\tconst [year, setYear] = React.useState(new Date().getFullYear())\n\n\treturn (\n\t\t<div className=\"w-96 border rounded-md p-4\">\n\t\t\t<MonthNavigator\n\t\t\t\tcurrentMonth={month}\n\t\t\t\tcurrentYear={year}\n\t\t\t\tmode=\"year\"\n\t\t\t\tonChangeMonthYear={(month, year) => {\n\t\t\t\t\tsetMonth(month)\n\t\t\t\t\tsetYear(year)\n\t\t\t\t}}\n\t\t\t/>\n\t\t</div>\n\t)\n}\n\nexport const YearMode: Story = {\n\trender: YearModeTemplate.bind({}),\n\targs: {},\n}\n"],"names":["Template","month","setMonth","React","year","setYear","jsx","MonthNavigator","YearModeTemplate"],"mappings":"8iFAYA,MAAMA,EAAW,IAAM,CACtB,KAAM,CAACC,EAAOC,CAAQ,EAAIC,EAAM,SAAS,IAAI,OAAO,UAAmB,EACjE,CAACC,EAAMC,CAAO,EAAIF,EAAM,SAAS,IAAI,OAAO,aAAa,EAE/D,OACCG,EAAAA,IAAC,MAAA,CAAI,UAAU,6BACd,SAAAA,EAAAA,IAACC,EAAA,CACA,aAAcN,EACd,YAAaG,EACb,kBAAmB,CAACH,EAAOG,IAAS,CACnCF,EAASD,CAAK,EACdI,EAAQD,CAAI,CAAA,CACb,CAAA,EAEF,CAEF,EAGSJ,EAAS,KAAK,EAAE,EAIzB,MAAMQ,EAAmB,IAAM,CAC9B,KAAM,CAACP,EAAOC,CAAQ,EAAIC,EAAM,SAAS,IAAI,OAAO,UAAmB,EACjE,CAACC,EAAMC,CAAO,EAAIF,EAAM,SAAS,IAAI,OAAO,aAAa,EAE/D,OACCG,EAAAA,IAAC,MAAA,CAAI,UAAU,6BACd,SAAAA,EAAAA,IAACC,EAAA,CACA,aAAcN,EACd,YAAaG,EACb,KAAK,OACL,kBAAmB,CAACH,EAAOG,IAAS,CACnCF,EAASD,CAAK,EACdI,EAAQD,CAAI,CAAA,CACb,CAAA,EAEF,CAEF,EAGSI,EAAiB,KAAK,EAAE"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"navigable-list.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"navigable-list.stories.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import"./paginated-items.js";import"../../assets/jsx-runtime-D_zvdyIk.js";import"../../components/accordion/accordion.js";import"@radix-ui/react-accordion";import"lucide-react";import"react";import"../../lib/utils/cn.js";import"clsx";import"tailwind-merge";import"date-fns-tz";import"../../components/adaptive-input/adaptive-input.js";import"../../components/input/input.js";import"class-variance-authority";import"../../components/alert-dialog/alert-dialog.js";import"@radix-ui/react-alert-dialog";import"../../components/button/button.js";import"../../lib/utils/merge-objects.js";import"@radix-ui/react-slot";import"cva-extended";import"../../components/button/button.types.js";import"../../components/autocomplete/autocomplete.js";import"../../lib/utils/string.js";import"../../components/avatar/avatar.js";import"@radix-ui/react-avatar";import"../../components/badge/badge.js";import"date-fns";import"../../components/card/card.js";import"../../components/checkbox/checkbox.js";import"@radix-ui/react-checkbox";import"../../components/command/command.js";import"cmdk";import"../../components/dialog/dialog.js";import"@radix-ui/react-dialog";import"../../components/currency-input/currency-input.js";import"../../components/dropdown-menu/dropdown-menu.js";import"@radix-ui/react-dropdown-menu";import"../../components/label/label.js";import"@radix-ui/react-label";import"../../components/multi-select/multi-select.js";import"../../components/popover/popover.js";import"@radix-ui/react-popover";import"../../components/separator/separator.js";import"@radix-ui/react-separator";import"../../components/navigation-menu/navigation-menu.js";import"@radix-ui/react-navigation-menu";import"../../components/pagination/pagination.js";import"../../components/progress/progress.js";import"@radix-ui/react-progress";import"../../components/radio-group/radio-group.js";import"@radix-ui/react-radio-group";import"../../components/select/select.js";import"@radix-ui/react-select";import"../../components/skeleton/skeleton.js";import"../../components/spinner/spinner.js";import"../../components/switch/switch.js";import"@radix-ui/react-switch";import"../../components/table/table.js";import"../../components/tabs/tabs.js";import"@radix-ui/react-tabs";import"../../components/textarea/textarea.js";import"../../components/toaster/toast.js";import"sonner";import"../../components/toggle/toggle.js";import"@radix-ui/react-toggle";import"../../components/toggle-group/toggle-group.js";import"@radix-ui/react-toggle-group";import"../../components/tooltip/tooltip.js";import"@radix-ui/react-tooltip";import"../empty-message/empty-message.js";import"../pagination-controls/pagination-controls.js";
|
|
2
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{j as t}from"../../assets/jsx-runtime-D_zvdyIk.js";import"../../components/accordion/accordion.js";import"../../components/adaptive-input/adaptive-input.js";import"../../components/alert-dialog/alert-dialog.js";import"../../components/autocomplete/autocomplete.js";import"../../components/avatar/avatar.js";import"../../components/badge/badge.js";import"../../components/button/button.js";import"date-fns";import"lucide-react";import{useState as u,useEffect as v,Fragment as w}from"react";import"../../components/card/card.js";import"../../components/checkbox/checkbox.js";import"../../components/command/command.js";import"../../components/currency-input/currency-input.js";import"../../components/dialog/dialog.js";import"../../components/dropdown-menu/dropdown-menu.js";import"../../components/input/input.js";import"../../components/label/label.js";import"../../components/multi-select/multi-select.js";import"../../components/navigation-menu/navigation-menu.js";import"../../components/pagination/pagination.js";import"../../components/progress/progress.js";import"../../components/popover/popover.js";import"../../components/radio-group/radio-group.js";import"../../components/select/select.js";import"../../components/separator/separator.js";import{S as E}from"../../components/skeleton/skeleton.js";import{S as y}from"../../components/spinner/spinner.js";import"../../components/switch/switch.js";import"../../components/table/table.js";import"../../components/tabs/tabs.js";import"../../components/textarea/textarea.js";import"../../components/toaster/toast.js";import"sonner";import"../../components/toggle/toggle.js";import"../../components/toggle-group/toggle-group.js";import"../../components/tooltip/tooltip.js";import{E as D}from"../empty-message/empty-message.js";import{P as b}from"../pagination-controls/pagination-controls.js";import"@radix-ui/react-accordion";import"../../lib/utils/cn.js";import"clsx";import"tailwind-merge";import"date-fns-tz";import"@radix-ui/react-alert-dialog";import"../../components/button/button.types.js";import"cva-extended";import"../../lib/utils/string.js";import"@radix-ui/react-avatar";import"class-variance-authority";import"../../lib/utils/merge-objects.js";import"@radix-ui/react-slot";import"@radix-ui/react-checkbox";import"cmdk";import"@radix-ui/react-dialog";import"@radix-ui/react-dropdown-menu";import"@radix-ui/react-label";import"@radix-ui/react-navigation-menu";import"@radix-ui/react-progress";import"@radix-ui/react-popover";import"@radix-ui/react-radio-group";import"@radix-ui/react-select";import"@radix-ui/react-separator";import"@radix-ui/react-switch";import"@radix-ui/react-tabs";import"@radix-ui/react-toggle";import"@radix-ui/react-toggle-group";import"@radix-ui/react-tooltip";const P=({initIndex:i,onPageChange:o,totalItems:r,totalPages:p,pageTotalItems:s,currentPage:m,showItemsCounter:n=!0})=>t.jsxs("div",{className:"flex flex-col gap-2 items-end",children:[n&&t.jsxs("p",{children:[t.jsx("b",{children:i+1})," - ",t.jsx("b",{children:i+s})," (",r,")"]}),p>1&&t.jsx(b,{currentPage:m,onPageChange:o,totalPages:p,totalItems:r,startIndex:i,endIndex:i+s,onPreviousPage:()=>o(m-1),onNextPage:()=>o(m+1)})]}),Kt=i=>{const{data:o=[],perPage:r=50,initialPage:p=1,children:s,itemsContainerClass:m="",emptyState:n=t.jsx(D,{notFoundText:"No item found!"}),isLoading:N=!1,showItemsCounter:g=!0,loadingVariant:I="loader"}=i,[e,C]=u(o);v(()=>{C(o),l(1)},[o]);const[a,l]=u(p),h=Math.ceil(e.length/r),c=(a-1)*r,d=a*r,x=e.slice(c,d),f=N?t.jsx("section",{className:"w-full",children:I==="loader"?t.jsx(y,{size:"lg"}):t.jsx(E,{className:"h-12 w-full",repeat:r})}):e.length===0?n:void 0;return t.jsxs("div",{className:"flex flex-col gap-4 items-end",children:[t.jsx(P,{initIndex:c,endIndex:d,totalItems:e.length,totalPages:h,currentPage:a,pageTotalItems:x.length,onPageChange:l,showItemsCounter:g}),f?t.jsx("section",{className:"w-full",children:f}):t.jsx("section",{className:`w-full ${m}`,children:x.map((j,S)=>t.jsx(w,{children:s(j,S)},j.id))}),t.jsx(P,{initIndex:c,endIndex:d,totalItems:e.length,totalPages:h,currentPage:a,pageTotalItems:x.length,onPageChange:l,showItemsCounter:g})]})};export{Kt as P};
|
|
2
|
+
//# sourceMappingURL=paginated-items.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"paginated-items.js","sources":["../../../src/blocks/paginated-items/paginated-items.tsx"],"sourcesContent":["import { Skeleton, Spinner } from '@/components'\nimport { Fragment, ReactNode, useEffect, useState } from 'react'\nimport { EmptyItems } from '../empty-message'\nimport { PaginationControls } from '../pagination-controls'\n\ninterface PaginatedControlsProps {\n\tinitIndex: number\n\tendIndex: number\n\ttotalItems: number\n\ttotalPages: number\n\tcurrentPage: number\n\tpageTotalItems: number\n\tonPageChange: (page: number) => void\n\tshowItemsCounter?: boolean\n}\n\ninterface PaginatedItemsProps<Entry> {\n\tdata: Entry[]\n\tperPage?: number\n\tinitialPage?: number\n\titemsContainerClass?: string\n\tchildren: (item: Entry, index: number) => React.ReactNode\n\temptyState?: ReactNode\n\tisLoading?: boolean\n\tloadingVariant?: 'loader' | 'skeleton'\n\tshowItemsCounter?: boolean\n}\n\nconst PaginatedControls = ({\n\tinitIndex,\n\tonPageChange,\n\ttotalItems,\n\ttotalPages,\n\tpageTotalItems,\n\tcurrentPage,\n\tshowItemsCounter = true,\n}: PaginatedControlsProps) => {\n\treturn (\n\t\t<div className=\"flex flex-col gap-2 items-end\">\n\t\t\t{showItemsCounter && (\n\t\t\t\t<p>\n\t\t\t\t\t<b>{initIndex + 1}</b> - <b>{initIndex + pageTotalItems}</b> ({totalItems})\n\t\t\t\t</p>\n\t\t\t)}\n\t\t\t{totalPages > 1 && (\n\t\t\t\t<PaginationControls\n\t\t\t\t\tcurrentPage={currentPage}\n\t\t\t\t\tonPageChange={onPageChange}\n\t\t\t\t\ttotalPages={totalPages}\n\t\t\t\t\ttotalItems={totalItems}\n\t\t\t\t\tstartIndex={initIndex}\n\t\t\t\t\tendIndex={initIndex + pageTotalItems}\n\t\t\t\t\tonPreviousPage={() => onPageChange(currentPage - 1)}\n\t\t\t\t\tonNextPage={() => onPageChange(currentPage + 1)}\n\t\t\t\t/>\n\t\t\t)}\n\t\t</div>\n\t)\n}\n\nexport const PaginatedItems = <Entry extends { id?: string }>(\n\tprops: PaginatedItemsProps<Entry>,\n) => {\n\tconst {\n\t\tdata: originalData = [],\n\t\tperPage = 50,\n\t\tinitialPage = 1,\n\t\tchildren,\n\t\titemsContainerClass = '',\n\t\temptyState = <EmptyItems notFoundText=\"No item found!\" />,\n\t\tisLoading = false,\n\t\tshowItemsCounter = true,\n\t\tloadingVariant = 'loader',\n\t} = props\n\n\tconst [data, setData] = useState<Entry[]>(originalData)\n\n\tuseEffect(() => {\n\t\tsetData(originalData)\n\t\tsetCurrentPage(1)\n\t}, [originalData])\n\n\tconst [currentPage, setCurrentPage] = useState(initialPage)\n\tconst totalPages = Math.ceil(data.length / perPage)\n\tconst initIndex = (currentPage - 1) * perPage\n\tconst endIndex = currentPage * perPage\n\tconst currentPageItems = data.slice(initIndex, endIndex)\n\n\tconst alternativeDisplay = isLoading ? (\n\t\t<section className=\"w-full\">\n\t\t\t{loadingVariant === 'loader' ? (\n\t\t\t\t<Spinner size=\"lg\" />\n\t\t\t) : (\n\t\t\t\t<Skeleton className=\"h-12 w-full\" repeat={perPage} />\n\t\t\t)}\n\t\t</section>\n\t) : data.length === 0 ? (\n\t\temptyState\n\t) : undefined\n\n\treturn (\n\t\t<div className=\"flex flex-col gap-4 items-end\">\n\t\t\t<PaginatedControls\n\t\t\t\tinitIndex={initIndex}\n\t\t\t\tendIndex={endIndex}\n\t\t\t\ttotalItems={data.length}\n\t\t\t\ttotalPages={totalPages}\n\t\t\t\tcurrentPage={currentPage}\n\t\t\t\tpageTotalItems={currentPageItems.length}\n\t\t\t\tonPageChange={setCurrentPage}\n\t\t\t\tshowItemsCounter={showItemsCounter}\n\t\t\t/>\n\n\t\t\t{alternativeDisplay ? (\n\t\t\t\t<section className=\"w-full\">{alternativeDisplay}</section>\n\t\t\t) : (\n\t\t\t\t<section className={`w-full ${itemsContainerClass}`}>\n\t\t\t\t\t{currentPageItems.map((item, i) => (\n\t\t\t\t\t\t<Fragment key={item.id}>{children(item, i)}</Fragment>\n\t\t\t\t\t))}\n\t\t\t\t</section>\n\t\t\t)}\n\t\t\t<PaginatedControls\n\t\t\t\tinitIndex={initIndex}\n\t\t\t\tendIndex={endIndex}\n\t\t\t\ttotalItems={data.length}\n\t\t\t\ttotalPages={totalPages}\n\t\t\t\tcurrentPage={currentPage}\n\t\t\t\tpageTotalItems={currentPageItems.length}\n\t\t\t\tonPageChange={setCurrentPage}\n\t\t\t\tshowItemsCounter={showItemsCounter}\n\t\t\t/>\n\t\t</div>\n\t)\n}\n"],"names":["PaginatedControls","initIndex","onPageChange","totalItems","totalPages","pageTotalItems","currentPage","showItemsCounter","jsxs","jsx","PaginationControls","PaginatedItems","props","originalData","perPage","initialPage","children","itemsContainerClass","emptyState","EmptyItems","isLoading","loadingVariant","data","setData","useState","useEffect","setCurrentPage","endIndex","currentPageItems","alternativeDisplay","Spinner","Skeleton","item","i","Fragment"],"mappings":"qsFA4BA,MAAMA,EAAoB,CAAC,CAC1B,UAAAC,EACA,aAAAC,EACA,WAAAC,EACA,WAAAC,EACA,eAAAC,EACA,YAAAC,EACA,iBAAAC,EAAmB,EACpB,IAEEC,EAAAA,KAAC,MAAA,CAAI,UAAU,gCACb,SAAA,CAAAD,UACC,IAAA,CACA,SAAA,CAAAE,EAAAA,IAAC,IAAA,CAAG,WAAY,CAAA,CAAE,EAAI,MAAGA,EAAAA,IAAC,IAAA,CAAG,SAAAR,EAAYI,CAAA,CAAe,EAAI,KAAGF,EAAW,GAAA,EAC3E,EAEAC,EAAa,GACbK,EAAAA,IAACC,EAAA,CACA,YAAAJ,EACA,aAAAJ,EACA,WAAAE,EACA,WAAAD,EACA,WAAYF,EACZ,SAAUA,EAAYI,EACtB,eAAgB,IAAMH,EAAaI,EAAc,CAAC,EAClD,WAAY,IAAMJ,EAAaI,EAAc,CAAC,CAAA,CAAA,CAC/C,EAEF,EAIWK,GACZC,GACI,CACJ,KAAM,CACL,KAAMC,EAAe,CAAA,EACrB,QAAAC,EAAU,GACV,YAAAC,EAAc,EACd,SAAAC,EACA,oBAAAC,EAAsB,GACtB,WAAAC,EAAaT,EAAAA,IAACU,EAAA,CAAW,aAAa,gBAAA,CAAiB,EACvD,UAAAC,EAAY,GACZ,iBAAAb,EAAmB,GACnB,eAAAc,EAAiB,QAAA,EACdT,EAEE,CAACU,EAAMC,CAAO,EAAIC,EAAkBX,CAAY,EAEtDY,EAAU,IAAM,CACfF,EAAQV,CAAY,EACpBa,EAAe,CAAC,CAAA,EACd,CAACb,CAAY,CAAC,EAEjB,KAAM,CAACP,EAAaoB,CAAc,EAAIF,EAAST,CAAW,EACpDX,EAAa,KAAK,KAAKkB,EAAK,OAASR,CAAO,EAC5Cb,GAAaK,EAAc,GAAKQ,EAChCa,EAAWrB,EAAcQ,EACzBc,EAAmBN,EAAK,MAAMrB,EAAW0B,CAAQ,EAEjDE,EAAqBT,EAC1BX,EAAAA,IAAC,UAAA,CAAQ,UAAU,SACjB,SAAAY,IAAmB,SACnBZ,EAAAA,IAACqB,EAAA,CAAQ,KAAK,KAAK,EAEnBrB,EAAAA,IAACsB,EAAA,CAAS,UAAU,cAAc,OAAQjB,EAAS,EAErD,EACGQ,EAAK,SAAW,EACnBJ,EACG,OAEJ,OACCV,EAAAA,KAAC,MAAA,CAAI,UAAU,gCACd,SAAA,CAAAC,EAAAA,IAACT,EAAA,CACA,UAAAC,EACA,SAAA0B,EACA,WAAYL,EAAK,OACjB,WAAAlB,EACA,YAAAE,EACA,eAAgBsB,EAAiB,OACjC,aAAcF,EACd,iBAAAnB,CAAA,CAAA,EAGAsB,EACApB,EAAAA,IAAC,UAAA,CAAQ,UAAU,SAAU,SAAAoB,CAAA,CAAmB,EAEhDpB,EAAAA,IAAC,UAAA,CAAQ,UAAW,UAAUQ,CAAmB,GAC/C,SAAAW,EAAiB,IAAI,CAACI,EAAMC,IAC5BxB,EAAAA,IAACyB,EAAA,CAAwB,SAAAlB,EAASgB,EAAMC,CAAC,CAAA,EAA1BD,EAAK,EAAuB,CAC3C,EACF,EAEDvB,EAAAA,IAACT,EAAA,CACA,UAAAC,EACA,SAAA0B,EACA,WAAYL,EAAK,OACjB,WAAAlB,EACA,YAAAE,EACA,eAAgBsB,EAAiB,OACjC,aAAcF,EACd,iBAAAnB,CAAA,CAAA,CACD,EACD,CAEF"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{j as m}from"../../assets/jsx-runtime-D_zvdyIk.js";import{P as i}from"./paginated-items.js";import{User as o}from"lucide-react";import"../../components/accordion/accordion.js";import"@radix-ui/react-accordion";import"react";import"../../lib/utils/cn.js";import"clsx";import"tailwind-merge";import"date-fns-tz";import"../../components/adaptive-input/adaptive-input.js";import"../../components/input/input.js";import"class-variance-authority";import"../../components/alert-dialog/alert-dialog.js";import"@radix-ui/react-alert-dialog";import"../../components/button/button.js";import"../../lib/utils/merge-objects.js";import"@radix-ui/react-slot";import"cva-extended";import"../../components/button/button.types.js";import"../../components/autocomplete/autocomplete.js";import"../../lib/utils/string.js";import"../../components/avatar/avatar.js";import"@radix-ui/react-avatar";import"../../components/badge/badge.js";import"date-fns";import"../../components/card/card.js";import"../../components/checkbox/checkbox.js";import"@radix-ui/react-checkbox";import"../../components/command/command.js";import"cmdk";import"../../components/dialog/dialog.js";import"@radix-ui/react-dialog";import"../../components/currency-input/currency-input.js";import"../../components/dropdown-menu/dropdown-menu.js";import"@radix-ui/react-dropdown-menu";import"../../components/label/label.js";import"@radix-ui/react-label";import"../../components/multi-select/multi-select.js";import"../../components/popover/popover.js";import"@radix-ui/react-popover";import"../../components/separator/separator.js";import"@radix-ui/react-separator";import"../../components/navigation-menu/navigation-menu.js";import"@radix-ui/react-navigation-menu";import"../../components/pagination/pagination.js";import"../../components/progress/progress.js";import"@radix-ui/react-progress";import"../../components/radio-group/radio-group.js";import"@radix-ui/react-radio-group";import"../../components/select/select.js";import"@radix-ui/react-select";import"../../components/skeleton/skeleton.js";import"../../components/spinner/spinner.js";import"../../components/switch/switch.js";import"@radix-ui/react-switch";import"../../components/table/table.js";import"../../components/tabs/tabs.js";import"@radix-ui/react-tabs";import"../../components/textarea/textarea.js";import"../../components/toaster/toast.js";import"sonner";import"../../components/toggle/toggle.js";import"@radix-ui/react-toggle";import"../../components/toggle-group/toggle-group.js";import"@radix-ui/react-toggle-group";import"../../components/tooltip/tooltip.js";import"@radix-ui/react-tooltip";import"../empty-message/empty-message.js";import"../pagination-controls/pagination-controls.js";const p=Array.from({length:1e3},(r,t)=>t+1).map(r=>({id:r.toString(),name:`User ${r}`,email:`user${r}@example.com`})),e=()=>m.jsx(i,{data:p,itemsContainerClass:"grid grid-cols-2 gap-3",children:r=>m.jsxs("div",{className:"border rounded-sm p-3",children:[m.jsxs("div",{className:"flex gap-2 items-center",children:[m.jsx(o,{}),r.name]}),m.jsx("span",{className:"text-sm text-gray-400",children:r.email})]},r.id)});e.bind({});
|
|
2
|
+
//# sourceMappingURL=paginated-items.stories.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"paginated-items.stories.js","sources":["../../../src/blocks/paginated-items/paginated-items.stories.tsx"],"sourcesContent":["// organize-imports-ignore\nimport React from 'react'\nimport type { Meta, StoryObj } from '@storybook/react'\nimport { PaginatedItems } from '.'\nimport { User } from 'lucide-react'\n\nconst meta: Meta<typeof PaginatedItems> = {\n\tcomponent: PaginatedItems,\n}\n\nexport default meta\ntype Story = StoryObj<typeof PaginatedItems>\n\ntype User = {\n\tid: string\n\tname: string\n\temail: string\n}\n// create a list of 100 users using the map function\nconst users: User[] = Array.from({ length: 1000 }, (_, index) => index + 1).map(\n\t(user) => ({\n\t\tid: user.toString(),\n\t\tname: `User ${user}`,\n\t\temail: `user${user}@example.com`,\n\t}),\n)\n\nconst Template = () => {\n\treturn (\n\t\t<PaginatedItems<User> data={users} itemsContainerClass=\"grid grid-cols-2 gap-3\">\n\t\t\t{(user) => (\n\t\t\t\t<div key={user.id} className=\"border rounded-sm p-3\">\n\t\t\t\t\t<div className=\"flex gap-2 items-center\">\n\t\t\t\t\t\t<User />\n\t\t\t\t\t\t{user.name}\n\t\t\t\t\t</div>\n\t\t\t\t\t<span className=\"text-sm text-gray-400\">{user.email}</span>\n\t\t\t\t</div>\n\t\t\t)}\n\t\t</PaginatedItems>\n\t)\n}\n\nexport const Default: Story = {\n\trender: Template.bind({}),\n\targs: {},\n}\n"],"names":["users","_","index","user","Template","jsx","PaginatedItems","jsxs","User"],"mappings":"6pFAmBA,MAAMA,EAAgB,MAAM,KAAK,CAAE,OAAQ,GAAA,EAAQ,CAACC,EAAGC,IAAUA,EAAQ,CAAC,EAAE,IAC1EC,IAAU,CACV,GAAIA,EAAK,SAAA,EACT,KAAM,QAAQA,CAAI,GAClB,MAAO,OAAOA,CAAI,cAAA,EAEpB,EAEMC,EAAW,IAEfC,EAAAA,IAACC,EAAA,CAAqB,KAAMN,EAAO,oBAAoB,yBACrD,SAACG,GACDI,EAAAA,KAAC,MAAA,CAAkB,UAAU,wBAC5B,SAAA,CAAAA,EAAAA,KAAC,MAAA,CAAI,UAAU,0BACd,SAAA,CAAAF,EAAAA,IAACG,EAAA,EAAK,EACLL,EAAK,IAAA,EACP,EACAE,EAAAA,IAAC,OAAA,CAAK,UAAU,wBAAyB,WAAK,KAAA,CAAM,CAAA,GAL3CF,EAAK,EAMf,EAEF,EAKOC,EAAS,KAAK,EAAE"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import"./pagination-controls.js";import"../../assets/jsx-runtime-D_zvdyIk.js";import"../../components/button/button.js";import"../../lib/utils/cn.js";import"clsx";import"tailwind-merge";import"date-fns-tz";import"../../lib/utils/merge-objects.js";import"@radix-ui/react-slot";import"cva-extended";import"react";import"../../components/button/button.types.js";import"../../lib/utils/string.js";import"lucide-react";
|
|
2
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{j as t}from"../../assets/jsx-runtime-D_zvdyIk.js";import{B as n}from"../../components/button/button.js";import"clsx";import"tailwind-merge";import"date-fns-tz";import{r as N}from"../../lib/utils/string.js";import{ChevronLeft as P,ChevronRight as v}from"lucide-react";import w from"react";import"../../lib/utils/cn.js";import"../../lib/utils/merge-objects.js";import"@radix-ui/react-slot";import"cva-extended";import"../../components/button/button.types.js";const F=l=>{const{currentPage:r,totalPages:s,totalItems:m,startIndex:c,endIndex:x,onPageChange:u,onPreviousPage:d,onNextPage:p,showItemsCounter:h=!0,counterText:f="Showing {{startIndex}} to {{endIndex}} of {{totalItems}} results"}=l,g=()=>{const e=[];if(s<=7)for(let a=1;a<=s;a++)e.push(a);else{e.push(1),r>4&&e.push("...");const a=Math.max(2,r-1),j=Math.min(s-1,r+1);for(let i=a;i<=j;i++)i!==1&&i!==s&&e.push(i);r<s-3&&e.push("..."),s>1&&e.push(s)}return e};return s<=1?null:t.jsxs("div",{className:"flex flex-col sm:flex-row items-center justify-between gap-4",children:[h?t.jsx("div",{className:"text-sm text-muted-foreground",children:N(f,{startIndex:c+1,endIndex:x,totalItems:m})}):null,t.jsxs("div",{className:"flex items-center space-x-1",children:[t.jsx(n,{variant:"outline",size:"sm",onClick:d,disabled:r===1,className:"h-8 w-8 p-0",children:t.jsx(P,{className:"h-4 w-4"})}),g().map((e,o)=>t.jsx(w.Fragment,{children:e==="..."?t.jsx("span",{className:"px-2 text-muted-foreground",children:"..."}):t.jsx(n,{variant:r===e?"default":"outline",size:"sm",onClick:()=>u(e),className:"h-8 w-8 p-0",children:e})},o)),t.jsx(n,{variant:"outline",size:"sm",onClick:p,disabled:r===s,className:"h-8 w-8 p-0",children:t.jsx(v,{className:"h-4 w-4"})})]})]})};export{F as P};
|
|
2
|
+
//# sourceMappingURL=pagination-controls.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pagination-controls.js","sources":["../../../src/blocks/pagination-controls/pagination-controls.tsx"],"sourcesContent":["'use client'\n\nimport { Button } from '@/components/button'\nimport { replaceTemplateWithVariables } from '@/lib/utils'\nimport { ChevronLeft, ChevronRight } from 'lucide-react'\nimport React from 'react'\n\ninterface PaginationControlsProps {\n\tcurrentPage: number\n\ttotalPages: number\n\ttotalItems: number\n\tstartIndex: number\n\tendIndex: number\n\tonPageChange: (page: number) => void\n\tonPreviousPage: () => void\n\tonNextPage: () => void\n\tshowItemsCounter?: boolean\n\tcounterText?: string\n}\n\nexport const PaginationControls = (props: PaginationControlsProps) => {\n\tconst {\n\t\tcurrentPage,\n\t\ttotalPages,\n\t\ttotalItems,\n\t\tstartIndex,\n\t\tendIndex,\n\t\tonPageChange,\n\t\tonPreviousPage,\n\t\tonNextPage,\n\t\tshowItemsCounter = true,\n\t\tcounterText = 'Showing {{startIndex}} to {{endIndex}} of {{totalItems}} results',\n\t} = props\n\n\t// Generate page numbers for pagination\n\tconst getPageNumbers = () => {\n\t\tconst pages: (number | string)[] = []\n\t\tconst maxVisiblePages = 7\n\n\t\tif (totalPages <= maxVisiblePages) {\n\t\t\tfor (let i = 1; i <= totalPages; i++) {\n\t\t\t\tpages.push(i)\n\t\t\t}\n\t\t} else {\n\t\t\t// Always show first page\n\t\t\tpages.push(1)\n\n\t\t\tif (currentPage > 4) {\n\t\t\t\tpages.push('...')\n\t\t\t}\n\n\t\t\t// Show pages around current page\n\t\t\tconst start = Math.max(2, currentPage - 1)\n\t\t\tconst end = Math.min(totalPages - 1, currentPage + 1)\n\n\t\t\tfor (let i = start; i <= end; i++) {\n\t\t\t\tif (i !== 1 && i !== totalPages) {\n\t\t\t\t\tpages.push(i)\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tif (currentPage < totalPages - 3) {\n\t\t\t\tpages.push('...')\n\t\t\t}\n\n\t\t\t// Always show last page\n\t\t\tif (totalPages > 1) {\n\t\t\t\tpages.push(totalPages)\n\t\t\t}\n\t\t}\n\n\t\treturn pages\n\t}\n\n\tif (totalPages <= 1) return null\n\n\treturn (\n\t\t<div className=\"flex flex-col sm:flex-row items-center justify-between gap-4\">\n\t\t\t{showItemsCounter ? (\n\t\t\t\t<div className=\"text-sm text-muted-foreground\">\n\t\t\t\t\t{replaceTemplateWithVariables(counterText, {\n\t\t\t\t\t\tstartIndex: startIndex + 1,\n\t\t\t\t\t\tendIndex,\n\t\t\t\t\t\ttotalItems,\n\t\t\t\t\t})}\n\t\t\t\t</div>\n\t\t\t) : null}\n\n\t\t\t<div className=\"flex items-center space-x-1\">\n\t\t\t\t<Button\n\t\t\t\t\tvariant=\"outline\"\n\t\t\t\t\tsize=\"sm\"\n\t\t\t\t\tonClick={onPreviousPage}\n\t\t\t\t\tdisabled={currentPage === 1}\n\t\t\t\t\tclassName=\"h-8 w-8 p-0\"\n\t\t\t\t>\n\t\t\t\t\t<ChevronLeft className=\"h-4 w-4\" />\n\t\t\t\t</Button>\n\n\t\t\t\t{getPageNumbers().map((page, index) => (\n\t\t\t\t\t<React.Fragment key={index}>\n\t\t\t\t\t\t{page === '...' ? (\n\t\t\t\t\t\t\t<span className=\"px-2 text-muted-foreground\">...</span>\n\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\tvariant={currentPage === page ? 'default' : 'outline'}\n\t\t\t\t\t\t\t\tsize=\"sm\"\n\t\t\t\t\t\t\t\tonClick={() => onPageChange(page as number)}\n\t\t\t\t\t\t\t\tclassName=\"h-8 w-8 p-0\"\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{page}\n\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t)}\n\t\t\t\t\t</React.Fragment>\n\t\t\t\t))}\n\n\t\t\t\t<Button\n\t\t\t\t\tvariant=\"outline\"\n\t\t\t\t\tsize=\"sm\"\n\t\t\t\t\tonClick={onNextPage}\n\t\t\t\t\tdisabled={currentPage === totalPages}\n\t\t\t\t\tclassName=\"h-8 w-8 p-0\"\n\t\t\t\t>\n\t\t\t\t\t<ChevronRight className=\"h-4 w-4\" />\n\t\t\t\t</Button>\n\t\t\t</div>\n\t\t</div>\n\t)\n}\n"],"names":["PaginationControls","props","currentPage","totalPages","totalItems","startIndex","endIndex","onPageChange","onPreviousPage","onNextPage","showItemsCounter","counterText","getPageNumbers","pages","i","start","end","jsxs","jsx","Button","ChevronLeft","page","index","React","ChevronRight"],"mappings":"gdAoBO,MAAMA,EAAsBC,GAAmC,CACrE,KAAM,CACL,YAAAC,EACA,WAAAC,EACA,WAAAC,EACA,WAAAC,EACA,SAAAC,EACA,aAAAC,EACA,eAAAC,EACA,WAAAC,EACA,iBAAAC,EAAmB,GACnB,YAAAC,EAAc,kEAAA,EACXV,EAGEW,EAAiB,IAAM,CAC5B,MAAMC,EAA6B,CAAA,EAGnC,GAAIV,GAAc,EACjB,QAASW,EAAI,EAAGA,GAAKX,EAAYW,IAChCD,EAAM,KAAKC,CAAC,MAEP,CAEND,EAAM,KAAK,CAAC,EAERX,EAAc,GACjBW,EAAM,KAAK,KAAK,EAIjB,MAAME,EAAQ,KAAK,IAAI,EAAGb,EAAc,CAAC,EACnCc,EAAM,KAAK,IAAIb,EAAa,EAAGD,EAAc,CAAC,EAEpD,QAAS,EAAIa,EAAO,GAAKC,EAAK,IACzB,IAAM,GAAK,IAAMb,GACpBU,EAAM,KAAK,CAAC,EAIVX,EAAcC,EAAa,GAC9BU,EAAM,KAAK,KAAK,EAIbV,EAAa,GAChBU,EAAM,KAAKV,CAAU,CACtB,CAGD,OAAOU,CAAA,EAGR,OAAIV,GAAc,EAAU,KAG3Bc,EAAAA,KAAC,MAAA,CAAI,UAAU,+DACb,SAAA,CAAAP,EACAQ,EAAAA,IAAC,MAAA,CAAI,UAAU,gCACb,WAA6BP,EAAa,CAC1C,WAAYN,EAAa,EACzB,SAAAC,EACA,WAAAF,CAAA,CACA,EACF,EACG,KAEJa,EAAAA,KAAC,MAAA,CAAI,UAAU,8BACd,SAAA,CAAAC,EAAAA,IAACC,EAAA,CACA,QAAQ,UACR,KAAK,KACL,QAASX,EACT,SAAUN,IAAgB,EAC1B,UAAU,cAEV,SAAAgB,EAAAA,IAACE,EAAA,CAAY,UAAU,SAAA,CAAU,CAAA,CAAA,EAGjCR,IAAiB,IAAI,CAACS,EAAMC,IAC5BJ,MAACK,EAAM,SAAN,CACC,aAAS,MACTL,EAAAA,IAAC,QAAK,UAAU,6BAA6B,eAAG,EAEhDA,EAAAA,IAACC,EAAA,CACA,QAASjB,IAAgBmB,EAAO,UAAY,UAC5C,KAAK,KACL,QAAS,IAAMd,EAAac,CAAc,EAC1C,UAAU,cAET,SAAAA,CAAA,CAAA,CACF,EAXmBC,CAarB,CACA,EAEDJ,EAAAA,IAACC,EAAA,CACA,QAAQ,UACR,KAAK,KACL,QAASV,EACT,SAAUP,IAAgBC,EAC1B,UAAU,cAEV,SAAAe,EAAAA,IAACM,EAAA,CAAa,UAAU,SAAA,CAAU,CAAA,CAAA,CACnC,CAAA,CACD,CAAA,EACD,CAEF"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{j as e}from"../../assets/jsx-runtime-D_zvdyIk.js";import m from"react";import{P as i}from"./pagination-controls.js";import"../../components/button/button.js";import"../../lib/utils/cn.js";import"clsx";import"tailwind-merge";import"date-fns-tz";import"../../lib/utils/merge-objects.js";import"@radix-ui/react-slot";import"cva-extended";import"../../components/button/button.types.js";import"../../lib/utils/string.js";import"lucide-react";const a=()=>{const[t,o]=m.useState(1);return e.jsx(i,{currentPage:t,totalPages:10,totalItems:100,startIndex:0,endIndex:10,onPageChange:r=>o(r),onPreviousPage:()=>o(t-1),onNextPage:()=>o(t+1)})};a.bind({});
|
|
2
|
+
//# sourceMappingURL=pagination-controls.stories.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"pagination-controls.stories.js","sources":["../../../src/blocks/pagination-controls/pagination-controls.stories.tsx"],"sourcesContent":["// organize-imports-ignore\nimport React from 'react'\nimport type { Meta, StoryObj } from '@storybook/react'\nimport { PaginationControls } from './pagination-controls'\n\nconst meta: Meta<typeof PaginationControls> = {\n\tcomponent: PaginationControls,\n}\n\nexport default meta\ntype Story = StoryObj<typeof PaginationControls>\n\nconst Template = () => {\n\tconst [currentPage, setCurrentPage] = React.useState(1)\n\treturn (\n\t\t<PaginationControls\n\t\t\tcurrentPage={currentPage}\n\t\t\ttotalPages={10}\n\t\t\ttotalItems={100}\n\t\t\tstartIndex={0}\n\t\t\tendIndex={10}\n\t\t\tonPageChange={(page) => setCurrentPage(page)}\n\t\t\tonPreviousPage={() => setCurrentPage(currentPage - 1)}\n\t\t\tonNextPage={() => setCurrentPage(currentPage + 1)}\n\t\t/>\n\t)\n}\n\nexport const Default: Story = {\n\trender: Template.bind({}),\n\targs: {},\n}\n"],"names":["Template","currentPage","setCurrentPage","React","jsx","PaginationControls","page"],"mappings":"6bAYA,MAAMA,EAAW,IAAM,CACtB,KAAM,CAACC,EAAaC,CAAc,EAAIC,EAAM,SAAS,CAAC,EACtD,OACCC,EAAAA,IAACC,EAAA,CACA,YAAAJ,EACA,WAAY,GACZ,WAAY,IACZ,WAAY,EACZ,SAAU,GACV,aAAeK,GAASJ,EAAeI,CAAI,EAC3C,eAAgB,IAAMJ,EAAeD,EAAc,CAAC,EACpD,WAAY,IAAMC,EAAeD,EAAc,CAAC,CAAA,CAAA,CAGnD,EAGSD,EAAS,KAAK,EAAE"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{j as a}from"../../assets/jsx-runtime-D_zvdyIk.js";import{c as s}from"../../lib/utils/cn.js";import"date-fns-tz";import{useState as x,useRef as c,useEffect as S}from"react";import"clsx";import"tailwind-merge";const E=({fixed:e,isOpen:t,onToggle:n,children:u,className:d})=>{const[m,f]=x(!0),i=c(null),b=c(null),r=t!==void 0?t:m,p=()=>{var o;e||(n?n(!1):f(!1),(o=b.current)==null||o.focus())},l=o=>{i.current&&!i.current.contains(o.target)&&!e&&p()};return S(()=>{if(!e)return document.addEventListener("mousedown",l),()=>{document.removeEventListener("mousedown",l)}},[e]),a.jsxs(a.Fragment,{children:[a.jsx("aside",{ref:i,className:s("bg-white z-50 h-full shadow-md flex flex-col fixed top-0 left-0 transition-all duration-300 ease-in-out overflow-auto",{"w-72":e||r},{"w-0":!r&&!e},{"translate-x-0":r},{"-translate-x-full":!r&&!e},d),"aria-hidden":!r,children:u}),e&&a.jsx("div",{className:"w-72 relative"})]})},L=({children:e,className:t})=>a.jsx("header",{className:s("p-4 flex justify-between items-center border-b",t),"aria-label":"Sidebar header",children:e}),O=({children:e,className:t})=>a.jsx("nav",{"aria-label":"Sidebar navigation",className:t,children:e}),R=({children:e,className:t})=>a.jsx("ul",{className:s("flex flex-col gap-2 my-4 px-4",t),children:e}),y=({children:e,className:t,onClick:n})=>a.jsx("li",{className:s("flex items-center gap-2 hover:bg-gray-100 rounded transition-colors",t),onClick:n,children:e}),F=({children:e,className:t})=>a.jsx("footer",{className:s("mt-auto p-4 text-sm",t),"aria-label":"Sidebar footer",children:e});export{E as S,L as a,O as b,R as c,y as d,F as e};
|
|
2
|
+
//# sourceMappingURL=sidebar.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sidebar.js","sources":["../../../src/blocks/sidebar/sidebar.tsx"],"sourcesContent":["import { cn } from '@/lib/utils'\nimport React, { PropsWithChildren, useEffect, useRef, useState } from 'react'\n\ninterface SidebarProps {\n\tfixed: boolean\n\tisOpen?: boolean\n\tonToggle?: (open: boolean) => void\n\tchildren: React.ReactNode\n\tclassName?: string\n}\n\nexport const Sidebar: React.FC<SidebarProps> = ({\n\tfixed,\n\tisOpen: externalOpen,\n\tonToggle,\n\tchildren,\n\tclassName,\n}) => {\n\tconst [internalOpen, setInternalOpen] = useState(true)\n\tconst sidebarRef = useRef<HTMLDivElement>(null)\n\tconst toggleButtonRef = useRef<HTMLButtonElement>(null)\n\n\tconst isOpen = externalOpen !== undefined ? externalOpen : internalOpen\n\n\tconst toggleSidebar = () => {\n\t\tif (!fixed) {\n\t\t\tconst newState = !isOpen\n\t\t\tonToggle ? onToggle(newState) : setInternalOpen(newState)\n\t\t}\n\t}\n\n\tconst closeSidebar = () => {\n\t\tif (!fixed) {\n\t\t\tonToggle ? onToggle(false) : setInternalOpen(false)\n\t\t\ttoggleButtonRef.current?.focus()\n\t\t}\n\t}\n\n\tconst handleClickOutside = (event: MouseEvent) => {\n\t\tif (\n\t\t\tsidebarRef.current &&\n\t\t\t!sidebarRef.current.contains(event.target as Node) &&\n\t\t\t!fixed\n\t\t) {\n\t\t\tcloseSidebar()\n\t\t}\n\t}\n\n\tuseEffect(() => {\n\t\tif (!fixed) {\n\t\t\tdocument.addEventListener('mousedown', handleClickOutside)\n\t\t\treturn () => {\n\t\t\t\tdocument.removeEventListener('mousedown', handleClickOutside)\n\t\t\t}\n\t\t}\n\t}, [fixed])\n\n\treturn (\n\t\t<>\n\t\t\t<aside\n\t\t\t\tref={sidebarRef}\n\t\t\t\tclassName={cn(\n\t\t\t\t\t'bg-white z-50 h-full shadow-md flex flex-col fixed top-0 left-0 transition-all duration-300 ease-in-out overflow-auto',\n\t\t\t\t\t{ 'w-72': fixed || isOpen },\n\t\t\t\t\t{ 'w-0': !isOpen && !fixed },\n\t\t\t\t\t{ 'translate-x-0': isOpen },\n\t\t\t\t\t{ '-translate-x-full': !isOpen && !fixed },\n\t\t\t\t\tclassName,\n\t\t\t\t)}\n\t\t\t\taria-hidden={!isOpen}\n\t\t\t>\n\t\t\t\t{children}\n\t\t\t</aside>\n\t\t\t{fixed && <div className=\"w-72 relative\" />}\n\t\t</>\n\t)\n}\n\nexport const SidebarHeader = ({\n\tchildren,\n\tclassName,\n}: PropsWithChildren<{ className?: string }>) => {\n\treturn (\n\t\t<header\n\t\t\tclassName={cn('p-4 flex justify-between items-center border-b', className)}\n\t\t\taria-label=\"Sidebar header\"\n\t\t>\n\t\t\t{children}\n\t\t</header>\n\t)\n}\n\nexport const SidebarNav = ({\n\tchildren,\n\tclassName,\n}: PropsWithChildren<{ className?: string }>) => {\n\treturn (\n\t\t<nav aria-label=\"Sidebar navigation\" className={className}>\n\t\t\t{children}\n\t\t</nav>\n\t)\n}\n\nexport const SidebarList = ({\n\tchildren,\n\tclassName,\n}: PropsWithChildren<{ className?: string }>) => {\n\treturn <ul className={cn('flex flex-col gap-2 my-4 px-4', className)}>{children}</ul>\n}\n\nexport const SidebarListItem = ({\n\tchildren,\n\tclassName,\n\tonClick,\n}: PropsWithChildren<{ className?: string; onClick?: () => void }>) => {\n\treturn (\n\t\t<li\n\t\t\tclassName={cn(\n\t\t\t\t'flex items-center gap-2 hover:bg-gray-100 rounded transition-colors',\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t\tonClick={onClick}\n\t\t>\n\t\t\t{children}\n\t\t</li>\n\t)\n}\n\nexport const SidebarFooter = ({\n\tchildren,\n\tclassName,\n}: PropsWithChildren<{ className?: string }>) => {\n\treturn (\n\t\t<footer className={cn('mt-auto p-4 text-sm', className)} aria-label=\"Sidebar footer\">\n\t\t\t{children}\n\t\t</footer>\n\t)\n}\n"],"names":["Sidebar","fixed","externalOpen","onToggle","children","className","internalOpen","setInternalOpen","useState","sidebarRef","useRef","toggleButtonRef","isOpen","closeSidebar","_a","handleClickOutside","event","useEffect","jsxs","Fragment","jsx","cn","SidebarHeader","SidebarNav","SidebarList","SidebarListItem","onClick","SidebarFooter"],"mappings":"uNAWO,MAAMA,EAAkC,CAAC,CAC/C,MAAAC,EACA,OAAQC,EACR,SAAAC,EACA,SAAAC,EACA,UAAAC,CACD,IAAM,CACL,KAAM,CAACC,EAAcC,CAAe,EAAIC,EAAS,EAAI,EAC/CC,EAAaC,EAAuB,IAAI,EACxCC,EAAkBD,EAA0B,IAAI,EAEhDE,EAASV,IAAiB,OAAYA,EAAeI,EASrDO,EAAe,IAAM,OACrBZ,IACJE,EAAWA,EAAS,EAAK,EAAII,EAAgB,EAAK,GAClDO,EAAAH,EAAgB,UAAhB,MAAAG,EAAyB,QAC1B,EAGKC,EAAsBC,GAAsB,CAEhDP,EAAW,SACX,CAACA,EAAW,QAAQ,SAASO,EAAM,MAAc,GACjD,CAACf,GAEDY,EAAA,CACD,EAGD,OAAAI,EAAU,IAAM,CACf,GAAI,CAAChB,EACJ,gBAAS,iBAAiB,YAAac,CAAkB,EAClD,IAAM,CACZ,SAAS,oBAAoB,YAAaA,CAAkB,CAAA,CAE9D,EACE,CAACd,CAAK,CAAC,EAGTiB,EAAAA,KAAAC,WAAA,CACC,SAAA,CAAAC,EAAAA,IAAC,QAAA,CACA,IAAKX,EACL,UAAWY,EACV,wHACA,CAAE,OAAQpB,GAASW,CAAA,EACnB,CAAE,MAAO,CAACA,GAAU,CAACX,CAAA,EACrB,CAAE,gBAAiBW,CAAA,EACnB,CAAE,oBAAqB,CAACA,GAAU,CAACX,CAAA,EACnCI,CAAA,EAED,cAAa,CAACO,EAEb,SAAAR,CAAA,CAAA,EAEDH,GAASmB,EAAAA,IAAC,MAAA,CAAI,UAAU,eAAA,CAAgB,CAAA,EAC1C,CAEF,EAEaE,EAAgB,CAAC,CAC7B,SAAAlB,EACA,UAAAC,CACD,IAEEe,EAAAA,IAAC,SAAA,CACA,UAAWC,EAAG,iDAAkDhB,CAAS,EACzE,aAAW,iBAEV,SAAAD,CAAA,CAAA,EAKSmB,EAAa,CAAC,CAC1B,SAAAnB,EACA,UAAAC,CACD,IAEEe,EAAAA,IAAC,MAAA,CAAI,aAAW,qBAAqB,UAAAf,EACnC,SAAAD,EACF,EAIWoB,EAAc,CAAC,CAC3B,SAAApB,EACA,UAAAC,CACD,UACS,KAAA,CAAG,UAAWgB,EAAG,gCAAiChB,CAAS,EAAI,SAAAD,EAAS,EAGpEqB,EAAkB,CAAC,CAC/B,SAAArB,EACA,UAAAC,EACA,QAAAqB,CACD,IAEEN,EAAAA,IAAC,KAAA,CACA,UAAWC,EACV,sEACAhB,CAAA,EAED,QAAAqB,EAEC,SAAAtB,CAAA,CAAA,EAKSuB,EAAgB,CAAC,CAC7B,SAAAvB,EACA,UAAAC,CACD,IAEEe,MAAC,UAAO,UAAWC,EAAG,sBAAuBhB,CAAS,EAAG,aAAW,iBAClE,SAAAD,CAAA,CACF"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{j as s}from"../../assets/jsx-runtime-D_zvdyIk.js";import{useState as o}from"react";import{B as t}from"../../components/button/button.js";import{S as l,a as n,b as d,c as p,d as i,e as c}from"./sidebar.js";import{Home as m,List as x,Check as j}from"lucide-react";import"../../lib/utils/cn.js";import"clsx";import"tailwind-merge";import"date-fns-tz";import"../../lib/utils/merge-objects.js";import"@radix-ui/react-slot";import"cva-extended";import"../../components/button/button.types.js";const h=()=>{const[a,e]=o(!0);return s.jsxs("div",{className:"bg-gray-200 w-full h-screen",children:[s.jsx(t,{onClick:()=>e(r=>!r),children:"Toggle Sidebar"}),s.jsxs(l,{fixed:!1,isOpen:a,onToggle:e,children:[s.jsxs(n,{children:[s.jsx("h1",{children:"My app"}),s.jsx("button",{onClick:()=>e(r=>!r),className:"toggle-button",children:a?"Collapse":"Expand"})]}),s.jsx(d,{children:s.jsxs(p,{children:[s.jsxs(i,{className:"px-4 py-2",onClick:()=>e(!1),children:[s.jsx(m,{})," Dashboard"]}),s.jsxs(i,{className:"px-4 py-2",onClick:()=>e(!1),children:[s.jsx(x,{})," Projects"]}),s.jsxs(i,{className:"px-4 py-2",onClick:()=>e(!1),children:[s.jsx(j,{})," Tasks"]})]})}),s.jsx(c,{children:s.jsx("p",{children:"©2025 Copyright"})})]})]})};h.bind({});
|
|
2
|
+
//# sourceMappingURL=sidebar.stories.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"sidebar.stories.js","sources":["../../../src/blocks/sidebar/sidebar.stories.tsx"],"sourcesContent":["// organize-imports-ignore\nimport React, { useState } from 'react'\nimport type { Meta, StoryObj } from '@storybook/react'\nimport { Button } from '../../components/button'\nimport {\n\tSidebar,\n\tSidebarFooter,\n\tSidebarHeader,\n\tSidebarList,\n\tSidebarListItem,\n\tSidebarNav,\n} from '../sidebar'\nimport { Check, Home, List } from 'lucide-react'\n\nconst meta: Meta<typeof Sidebar> = {\n\tcomponent: Sidebar,\n}\n\nexport default meta\ntype Story = StoryObj<typeof Sidebar>\n\nconst Template = () => {\n\tconst [isSidebarOpen, setSidebarOpen] = useState(true)\n\n\treturn (\n\t\t<div className=\"bg-gray-200 w-full h-screen\">\n\t\t\t<Button onClick={() => setSidebarOpen((prev) => !prev)}>Toggle Sidebar</Button>\n\t\t\t<Sidebar fixed={false} isOpen={isSidebarOpen} onToggle={setSidebarOpen}>\n\t\t\t\t<SidebarHeader>\n\t\t\t\t\t<h1>My app</h1>\n\t\t\t\t\t<button\n\t\t\t\t\t\tonClick={() => setSidebarOpen((prev) => !prev)}\n\t\t\t\t\t\tclassName=\"toggle-button\"\n\t\t\t\t\t>\n\t\t\t\t\t\t{isSidebarOpen ? 'Collapse' : 'Expand'}\n\t\t\t\t\t</button>\n\t\t\t\t</SidebarHeader>\n\t\t\t\t<SidebarNav>\n\t\t\t\t\t<SidebarList>\n\t\t\t\t\t\t<SidebarListItem className=\"px-4 py-2\" onClick={() => setSidebarOpen(false)}>\n\t\t\t\t\t\t\t<Home /> Dashboard\n\t\t\t\t\t\t</SidebarListItem>\n\t\t\t\t\t\t<SidebarListItem className=\"px-4 py-2\" onClick={() => setSidebarOpen(false)}>\n\t\t\t\t\t\t\t<List /> Projects\n\t\t\t\t\t\t</SidebarListItem>\n\t\t\t\t\t\t<SidebarListItem className=\"px-4 py-2\" onClick={() => setSidebarOpen(false)}>\n\t\t\t\t\t\t\t<Check /> Tasks\n\t\t\t\t\t\t</SidebarListItem>\n\t\t\t\t\t</SidebarList>\n\t\t\t\t</SidebarNav>\n\t\t\t\t<SidebarFooter>\n\t\t\t\t\t<p>©2025 Copyright</p>\n\t\t\t\t</SidebarFooter>\n\t\t\t</Sidebar>\n\t\t</div>\n\t)\n}\n\nexport const Default: Story = {\n\trender: Template.bind({}),\n\targs: {},\n}\n"],"names":["Template","isSidebarOpen","setSidebarOpen","useState","jsxs","jsx","Button","prev","Sidebar","SidebarHeader","SidebarNav","SidebarList","SidebarListItem","Home","List","Check","SidebarFooter"],"mappings":"8eAqBA,MAAMA,EAAW,IAAM,CACtB,KAAM,CAACC,EAAeC,CAAc,EAAIC,EAAS,EAAI,EAErD,OACCC,EAAAA,KAAC,MAAA,CAAI,UAAU,8BACd,SAAA,CAAAC,EAAAA,IAACC,EAAA,CAAO,QAAS,IAAMJ,EAAgBK,GAAS,CAACA,CAAI,EAAG,SAAA,gBAAA,CAAc,SACrEC,EAAA,CAAQ,MAAO,GAAO,OAAQP,EAAe,SAAUC,EACvD,SAAA,CAAAE,OAACK,EAAA,CACA,SAAA,CAAAJ,EAAAA,IAAC,MAAG,SAAA,QAAA,CAAM,EACVA,EAAAA,IAAC,SAAA,CACA,QAAS,IAAMH,EAAgBK,GAAS,CAACA,CAAI,EAC7C,UAAU,gBAET,WAAgB,WAAa,QAAA,CAAA,CAC/B,EACD,EACAF,EAAAA,IAACK,EAAA,CACA,SAAAN,EAAAA,KAACO,EAAA,CACA,SAAA,CAAAP,OAACQ,GAAgB,UAAU,YAAY,QAAS,IAAMV,EAAe,EAAK,EACzE,SAAA,CAAAG,EAAAA,IAACQ,EAAA,EAAK,EAAE,YAAA,EACT,EACAT,OAACQ,GAAgB,UAAU,YAAY,QAAS,IAAMV,EAAe,EAAK,EACzE,SAAA,CAAAG,EAAAA,IAACS,EAAA,EAAK,EAAE,WAAA,EACT,EACAV,OAACQ,GAAgB,UAAU,YAAY,QAAS,IAAMV,EAAe,EAAK,EACzE,SAAA,CAAAG,EAAAA,IAACU,EAAA,EAAM,EAAE,QAAA,CAAA,CACV,CAAA,CAAA,CACD,CAAA,CACD,EACAV,MAACW,EAAA,CACA,SAAAX,EAAAA,IAAC,IAAA,CAAE,2BAAe,CAAA,CACnB,CAAA,CAAA,CACD,CAAA,EACD,CAEF,EAGSL,EAAS,KAAK,EAAE"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{j as a}from"../../assets/jsx-runtime-D_zvdyIk.js";import*as e from"@radix-ui/react-accordion";import{ChevronDown as m}from"lucide-react";import*as i from"react";import{c as n}from"../../lib/utils/cn.js";import"date-fns-tz";import"clsx";import"tailwind-merge";const w=e.Root,c=i.forwardRef(({className:o,...t},r)=>a.jsx(e.Item,{ref:r,className:n("border-b",o),...t}));c.displayName="AccordionItem";const d=i.forwardRef(({className:o,children:t,...r},s)=>a.jsx(e.Header,{className:"flex",children:a.jsxs(e.Trigger,{ref:s,className:n("text-base flex flex-1 items-center justify-between py-4 font-medium transition-all hover:underline [&[data-state=open]>svg]:rotate-180",o),...r,children:[t,a.jsx(m,{className:"h-4 w-4 shrink-0 transition-transform duration-200"})]})}));d.displayName=e.Trigger.displayName;const l=i.forwardRef(({className:o,children:t,...r},s)=>a.jsx(e.Content,{ref:s,className:"overflow-hidden text-sm transition-all data-[state=closed]:animate-accordion-up data-[state=open]:animate-accordion-down",...r,children:a.jsx("div",{className:n("pb-4 pt-0",o),children:t})}));l.displayName=e.Content.displayName;export{w as A,c as a,d as b,l as c};
|
|
2
|
+
//# sourceMappingURL=accordion.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"accordion.js","sources":["../../../src/components/accordion/accordion.tsx"],"sourcesContent":["import * as AccordionPrimitive from '@radix-ui/react-accordion'\nimport { ChevronDown } from 'lucide-react'\nimport * as React from 'react'\n\nimport { cn } from '@/lib/utils'\n\nconst Accordion = AccordionPrimitive.Root\n\nconst AccordionItem = React.forwardRef<\n\tReact.ElementRef<typeof AccordionPrimitive.Item>,\n\tReact.ComponentPropsWithoutRef<typeof AccordionPrimitive.Item>\n>(({ className, ...props }, ref) => (\n\t<AccordionPrimitive.Item ref={ref} className={cn('border-b', className)} {...props} />\n))\nAccordionItem.displayName = 'AccordionItem'\n\nconst AccordionTrigger = React.forwardRef<\n\tReact.ElementRef<typeof AccordionPrimitive.Trigger>,\n\tReact.ComponentPropsWithoutRef<typeof AccordionPrimitive.Trigger>\n>(({ className, children, ...props }, ref) => (\n\t<AccordionPrimitive.Header className=\"flex\">\n\t\t<AccordionPrimitive.Trigger\n\t\t\tref={ref}\n\t\t\tclassName={cn(\n\t\t\t\t'text-base flex flex-1 items-center justify-between py-4 font-medium transition-all hover:underline [&[data-state=open]>svg]:rotate-180',\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t\t{...props}\n\t\t>\n\t\t\t{children}\n\t\t\t<ChevronDown className=\"h-4 w-4 shrink-0 transition-transform duration-200\" />\n\t\t</AccordionPrimitive.Trigger>\n\t</AccordionPrimitive.Header>\n))\nAccordionTrigger.displayName = AccordionPrimitive.Trigger.displayName\n\nconst AccordionContent = React.forwardRef<\n\tReact.ElementRef<typeof AccordionPrimitive.Content>,\n\tReact.ComponentPropsWithoutRef<typeof AccordionPrimitive.Content>\n>(({ className, children, ...props }, ref) => (\n\t<AccordionPrimitive.Content\n\t\tref={ref}\n\t\tclassName=\"overflow-hidden text-sm transition-all data-[state=closed]:animate-accordion-up data-[state=open]:animate-accordion-down\"\n\t\t{...props}\n\t>\n\t\t<div className={cn('pb-4 pt-0', className)}>{children}</div>\n\t</AccordionPrimitive.Content>\n))\n\nAccordionContent.displayName = AccordionPrimitive.Content.displayName\n\nexport { Accordion, AccordionContent, AccordionItem, AccordionTrigger }\n"],"names":["Accordion","AccordionPrimitive","AccordionItem","React","className","props","ref","jsx","cn","AccordionTrigger","children","jsxs","ChevronDown","AccordionContent"],"mappings":"0QAMA,MAAMA,EAAYC,EAAmB,KAE/BC,EAAgBC,EAAM,WAG1B,CAAC,CAAE,UAAAC,EAAW,GAAGC,CAAA,EAASC,IAC3BC,EAAAA,IAACN,EAAmB,KAAnB,CAAwB,IAAAK,EAAU,UAAWE,EAAG,WAAYJ,CAAS,EAAI,GAAGC,EAAO,CACpF,EACDH,EAAc,YAAc,gBAE5B,MAAMO,EAAmBN,EAAM,WAG7B,CAAC,CAAE,UAAAC,EAAW,SAAAM,EAAU,GAAGL,CAAA,EAASC,IACrCC,EAAAA,IAACN,EAAmB,OAAnB,CAA0B,UAAU,OACpC,SAAAU,EAAAA,KAACV,EAAmB,QAAnB,CACA,IAAAK,EACA,UAAWE,EACV,yIACAJ,CAAA,EAEA,GAAGC,EAEH,SAAA,CAAAK,EACDH,EAAAA,IAACK,EAAA,CAAY,UAAU,oDAAA,CAAqD,CAAA,CAAA,CAC7E,EACD,CACA,EACDH,EAAiB,YAAcR,EAAmB,QAAQ,YAE1D,MAAMY,EAAmBV,EAAM,WAG7B,CAAC,CAAE,UAAAC,EAAW,SAAAM,EAAU,GAAGL,GAASC,IACrCC,EAAAA,IAACN,EAAmB,QAAnB,CACA,IAAAK,EACA,UAAU,2HACT,GAAGD,EAEJ,eAAC,MAAA,CAAI,UAAWG,EAAG,YAAaJ,CAAS,EAAI,SAAAM,CAAA,CAAS,CAAA,CACvD,CACA,EAEDG,EAAiB,YAAcZ,EAAmB,QAAQ"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{j as e}from"../../assets/jsx-runtime-D_zvdyIk.js";import{A as r,a as s,b as t,c as i}from"./accordion.js";import"@radix-ui/react-accordion";import"lucide-react";import"react";import"../../lib/utils/cn.js";import"clsx";import"tailwind-merge";import"date-fns-tz";const n=()=>e.jsx("div",{className:"max-w-[350px]",children:e.jsxs(r,{type:"single",collapsible:!0,children:[e.jsxs(s,{value:"item-1",children:[e.jsx(t,{className:"text-blue-800 md:text-orange-700 lg:text-teal-800",children:"Is it accessible?"}),e.jsx(i,{children:"Yes. It adheres to the WAI-ARIA design pattern."})]}),e.jsxs(s,{value:"item-2",children:[e.jsx(t,{children:"Is it styled?"}),e.jsx(i,{children:"Yes. It has a default style."})]}),e.jsxs(s,{value:"item-3",children:[e.jsx(t,{children:"Is it animated?"}),e.jsx(i,{children:"Yes. It uses CSS transitions to animate its content."})]}),e.jsxs(s,{value:"item-4",children:[e.jsx(t,{children:"Can it be closed?"}),e.jsx(i,{children:"Yes. It is closed by default."})]})]})});n.bind({});
|
|
2
|
+
//# sourceMappingURL=accordion.stories.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"accordion.stories.js","sources":["../../../src/components/accordion/accordion.stories.tsx"],"sourcesContent":["// organize-imports-ignore\nimport React from 'react'\nimport type { Meta, StoryObj } from '@storybook/react'\nimport { Accordion, AccordionContent, AccordionItem, AccordionTrigger } from './accordion'\n\nconst meta: Meta<typeof Accordion> = {\n\ttitle: 'Components/Accordion',\n\tcomponent: Accordion,\n\ttags: ['autodocs'],\n}\n\nexport default meta\ntype Story = StoryObj<typeof Accordion>\n\nconst Template = () => {\n\treturn (\n\t\t<div className=\"max-w-[350px]\">\n\t\t\t<Accordion type=\"single\" collapsible>\n\t\t\t\t<AccordionItem value=\"item-1\">\n\t\t\t\t\t<AccordionTrigger className=\"text-blue-800 md:text-orange-700 lg:text-teal-800\">\n\t\t\t\t\t\tIs it accessible?\n\t\t\t\t\t</AccordionTrigger>\n\t\t\t\t\t<AccordionContent>\n\t\t\t\t\t\tYes. It adheres to the WAI-ARIA design pattern.\n\t\t\t\t\t</AccordionContent>\n\t\t\t\t</AccordionItem>\n\t\t\t\t<AccordionItem value=\"item-2\">\n\t\t\t\t\t<AccordionTrigger>Is it styled?</AccordionTrigger>\n\t\t\t\t\t<AccordionContent>Yes. It has a default style.</AccordionContent>\n\t\t\t\t</AccordionItem>\n\t\t\t\t<AccordionItem value=\"item-3\">\n\t\t\t\t\t<AccordionTrigger>Is it animated?</AccordionTrigger>\n\t\t\t\t\t<AccordionContent>\n\t\t\t\t\t\tYes. It uses CSS transitions to animate its content.\n\t\t\t\t\t</AccordionContent>\n\t\t\t\t</AccordionItem>\n\t\t\t\t<AccordionItem value=\"item-4\">\n\t\t\t\t\t<AccordionTrigger>Can it be closed?</AccordionTrigger>\n\t\t\t\t\t<AccordionContent>Yes. It is closed by default.</AccordionContent>\n\t\t\t\t</AccordionItem>\n\t\t\t</Accordion>\n\t\t</div>\n\t)\n}\n\nexport const Default: Story = {\n\trender: Template.bind({}),\n\targs: {},\n}\n"],"names":["Template","jsx","Accordion","jsxs","AccordionItem","AccordionTrigger","AccordionContent"],"mappings":"4QAcA,MAAMA,EAAW,IAEfC,EAAAA,IAAC,OAAI,UAAU,gBACd,gBAACC,EAAA,CAAU,KAAK,SAAS,YAAW,GACnC,SAAA,CAAAC,EAAAA,KAACC,EAAA,CAAc,MAAM,SACpB,SAAA,CAAAH,EAAAA,IAACI,EAAA,CAAiB,UAAU,oDAAoD,SAAA,oBAEhF,EACAJ,EAAAA,IAACK,GAAiB,SAAA,iDAAA,CAElB,CAAA,EACD,EACAH,EAAAA,KAACC,EAAA,CAAc,MAAM,SACpB,SAAA,CAAAH,EAAAA,IAACI,GAAiB,SAAA,eAAA,CAAa,EAC/BJ,EAAAA,IAACK,GAAiB,SAAA,8BAAA,CAA4B,CAAA,EAC/C,EACAH,EAAAA,KAACC,EAAA,CAAc,MAAM,SACpB,SAAA,CAAAH,EAAAA,IAACI,GAAiB,SAAA,iBAAA,CAAe,EACjCJ,EAAAA,IAACK,GAAiB,SAAA,sDAAA,CAElB,CAAA,EACD,EACAH,EAAAA,KAACC,EAAA,CAAc,MAAM,SACpB,SAAA,CAAAH,EAAAA,IAACI,GAAiB,SAAA,mBAAA,CAAiB,EACnCJ,EAAAA,IAACK,GAAiB,SAAA,+BAAA,CAA6B,CAAA,CAAA,CAChD,CAAA,CAAA,CACD,CAAA,CACD,EAKON,EAAS,KAAK,EAAE"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{j as r}from"../../assets/jsx-runtime-D_zvdyIk.js";import{c as n}from"../../lib/utils/cn.js";import"date-fns-tz";import*as c from"react";import{I as x}from"../input/input.js";import"clsx";import"tailwind-merge";import"class-variance-authority";const f=(p,e)=>{const a=p.replace(/\D/g,"");let s="",t=0,l=0;for(;t<e.length&&l<a.length;)e[t]==="0"?(s+=a[l],l++):s+=e[t],t++;return s},v=c.forwardRef(({className:p,leftIcon:e,rightIcon:a,mask:s,onChange:t,...l},u)=>{const m=i=>{const o=i.target;if(s){const d=f(o.value,s);o.value=d}t==null||t(i)};return r.jsxs("div",{className:"relative w-full",children:[e&&r.jsx("div",{className:"absolute left-2 top-1/2 -translate-y-1/2 text-muted-foreground",children:e}),r.jsx(x,{className:n(e&&"pl-8",a&&"pr-8",p),ref:u,onInput:m,...l}),a&&r.jsx("div",{className:"absolute right-2 top-1/2 -translate-y-1/2 text-muted-foreground",children:a})]})});v.displayName="AdaptiveInput";export{v as A};
|
|
2
|
+
//# sourceMappingURL=adaptive-input.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"adaptive-input.js","sources":["../../../src/components/adaptive-input/adaptive-input.tsx"],"sourcesContent":["import { cn } from '@/lib/utils'\nimport * as React from 'react'\nimport { Input, InputProps } from '../input'\n\nexport interface AdaptiveInputProps extends InputProps {\n\tleftIcon?: React.ReactNode\n\trightIcon?: React.ReactNode\n\tmask?: string // New prop for the mask\n}\n\nconst applyMask = (value: string, mask: string): string => {\n\tconst cleanValue = value.replace(/\\D/g, '')\n\tlet maskedValue = ''\n\tlet maskIndex = 0\n\tlet valueIndex = 0\n\n\twhile (maskIndex < mask.length && valueIndex < cleanValue.length) {\n\t\tif (mask[maskIndex] === '0') {\n\t\t\tmaskedValue += cleanValue[valueIndex]\n\t\t\tvalueIndex++\n\t\t} else {\n\t\t\tmaskedValue += mask[maskIndex]\n\t\t}\n\t\tmaskIndex++\n\t}\n\n\treturn maskedValue\n}\n\nconst AdaptiveInput = React.forwardRef<HTMLInputElement, AdaptiveInputProps>(\n\t({ className, leftIcon, rightIcon, mask, onChange, ...props }, ref) => {\n\t\tconst handleInputChange = (e: React.ChangeEvent<HTMLInputElement>) => {\n\t\t\tconst input = e.target\n\t\t\tif (mask) {\n\t\t\t\tconst maskedValue = applyMask(input.value, mask)\n\t\t\t\tinput.value = maskedValue\n\t\t\t}\n\t\t\tonChange?.(e) // Call the original onChange if provided\n\t\t}\n\n\t\treturn (\n\t\t\t<div className=\"relative w-full\">\n\t\t\t\t{leftIcon && (\n\t\t\t\t\t<div className=\"absolute left-2 top-1/2 -translate-y-1/2 text-muted-foreground\">\n\t\t\t\t\t\t{leftIcon}\n\t\t\t\t\t</div>\n\t\t\t\t)}\n\t\t\t\t<Input\n\t\t\t\t\tclassName={cn(leftIcon && 'pl-8', rightIcon && 'pr-8', className)}\n\t\t\t\t\tref={ref}\n\t\t\t\t\tonInput={handleInputChange} // Attach the input handler\n\t\t\t\t\t{...props}\n\t\t\t\t/>\n\t\t\t\t{rightIcon && (\n\t\t\t\t\t<div className=\"absolute right-2 top-1/2 -translate-y-1/2 text-muted-foreground\">\n\t\t\t\t\t\t{rightIcon}\n\t\t\t\t\t</div>\n\t\t\t\t)}\n\t\t\t</div>\n\t\t)\n\t},\n)\n\nAdaptiveInput.displayName = 'AdaptiveInput'\n\nexport { AdaptiveInput }\n"],"names":["applyMask","value","mask","cleanValue","maskedValue","maskIndex","valueIndex","AdaptiveInput","React","className","leftIcon","rightIcon","onChange","props","ref","handleInputChange","e","input","jsxs","jsx","Input","cn"],"mappings":"0PAUA,MAAMA,EAAY,CAACC,EAAeC,IAAyB,CAC1D,MAAMC,EAAaF,EAAM,QAAQ,MAAO,EAAE,EAC1C,IAAIG,EAAc,GACdC,EAAY,EACZC,EAAa,EAEjB,KAAOD,EAAYH,EAAK,QAAUI,EAAaH,EAAW,QACrDD,EAAKG,CAAS,IAAM,KACvBD,GAAeD,EAAWG,CAAU,EACpCA,KAEAF,GAAeF,EAAKG,CAAS,EAE9BA,IAGD,OAAOD,CACR,EAEMG,EAAgBC,EAAM,WAC3B,CAAC,CAAE,UAAAC,EAAW,SAAAC,EAAU,UAAAC,EAAW,KAAAT,EAAM,SAAAU,EAAU,GAAGC,CAAA,EAASC,IAAQ,CACtE,MAAMC,EAAqBC,GAA2C,CACrE,MAAMC,EAAQD,EAAE,OAChB,GAAId,EAAM,CACT,MAAME,EAAcJ,EAAUiB,EAAM,MAAOf,CAAI,EAC/Ce,EAAM,MAAQb,CAAA,CAEfQ,GAAA,MAAAA,EAAWI,EAAC,EAGb,OACCE,EAAAA,KAAC,MAAA,CAAI,UAAU,kBACb,SAAA,CAAAR,GACAS,EAAAA,IAAC,MAAA,CAAI,UAAU,iEACb,SAAAT,EACF,EAEDS,EAAAA,IAACC,EAAA,CACA,UAAWC,EAAGX,GAAY,OAAQC,GAAa,OAAQF,CAAS,EAChE,IAAAK,EACA,QAASC,EACR,GAAGF,CAAA,CAAA,EAEJF,GACAQ,EAAAA,IAAC,MAAA,CAAI,UAAU,kEACb,SAAAR,CAAA,CACF,CAAA,EAEF,CAAA,CAGH,EAEAJ,EAAc,YAAc"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{j as r}from"../../assets/jsx-runtime-D_zvdyIk.js";import{A as m}from"./adaptive-input.js";import{HelpCircle as t,Phone as o}from"lucide-react";import"../../lib/utils/cn.js";import"clsx";import"tailwind-merge";import"date-fns-tz";import"react";import"../input/input.js";import"class-variance-authority";const i=()=>r.jsx("div",{className:"w-64",children:r.jsx(m,{leftIcon:r.jsx(o,{className:"w-4 h-4"}),rightIcon:r.jsx(t,{className:"w-4 h-4"}),mask:"+00 0000-0000"})});i.bind({});
|
|
2
|
+
//# sourceMappingURL=adaptive-input.stories.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"adaptive-input.stories.js","sources":["../../../src/components/adaptive-input/adaptive-input.stories.tsx"],"sourcesContent":["// organize-imports-ignore\nimport React from 'react'\nimport type { Meta, StoryObj } from '@storybook/react'\n\nimport { AdaptiveInput } from './adaptive-input'\nimport { HelpCircle, Phone, User } from 'lucide-react'\n\nconst meta: Meta<typeof AdaptiveInput> = {\n\ttitle: 'Components/input/adaptiveInput',\n\tcomponent: AdaptiveInput,\n}\n\nexport default meta\ntype Story = StoryObj<typeof AdaptiveInput>\n\nconst Template = () => {\n\treturn (\n\t\t<div className=\"w-64\">\n\t\t\t<AdaptiveInput\n\t\t\t\tleftIcon={<Phone className=\"w-4 h-4\" />}\n\t\t\t\trightIcon={<HelpCircle className=\"w-4 h-4\" />}\n\t\t\t\tmask=\"+00 0000-0000\"\n\t\t\t/>\n\t\t</div>\n\t)\n}\n\nexport const Default: Story = {\n\trender: Template.bind({}),\n\targs: {},\n}\n"],"names":["Template","jsx","AdaptiveInput","Phone","HelpCircle"],"mappings":"qTAeA,MAAMA,EAAW,IAEfC,EAAAA,IAAC,MAAA,CAAI,UAAU,OACd,SAAAA,EAAAA,IAACC,EAAA,CACA,SAAUD,EAAAA,IAACE,EAAA,CAAM,UAAU,SAAA,CAAU,EACrC,UAAWF,EAAAA,IAACG,EAAA,CAAW,UAAU,SAAA,CAAU,EAC3C,KAAK,eAAA,CAAA,EAEP,EAKOJ,EAAS,KAAK,EAAE"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{j as s}from"../../assets/jsx-runtime-D_zvdyIk.js";import{c as l}from"../../lib/utils/cn.js";import"date-fns-tz";import*as e from"@radix-ui/react-alert-dialog";import*as i from"react";import"../button/button.js";import{b as r}from"../button/button.types.js";import"clsx";import"tailwind-merge";import"../../lib/utils/merge-objects.js";import"@radix-ui/react-slot";import"cva-extended";const T=e.Root,z=e.Trigger,m=e.Portal,d=i.forwardRef(({className:a,...t},o)=>s.jsx(e.Overlay,{className:l("fixed inset-0 z-50 bg-black/80 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0",a),...t,ref:o}));d.displayName=e.Overlay.displayName;const n=i.forwardRef(({className:a,...t},o)=>s.jsxs(m,{children:[s.jsx(d,{}),s.jsx(e.Content,{ref:o,className:l("fixed left-[50%] top-[50%] z-50 grid w-full max-w-lg translate-x-[-50%] translate-y-[-50%] gap-4 border bg-background p-6 shadow-lg duration-200 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[state=closed]:slide-out-to-left-1/2 data-[state=closed]:slide-out-to-top-[48%] data-[state=open]:slide-in-from-left-1/2 data-[state=open]:slide-in-from-top-[48%] sm:rounded-lg",a),...t})]}));n.displayName=e.Content.displayName;const c=({className:a,...t})=>s.jsx("div",{className:l("flex flex-col space-y-2 text-center sm:text-left",a),...t});c.displayName="AlertDialogHeader";const p=({className:a,...t})=>s.jsx("div",{className:l("flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2",a),...t});p.displayName="AlertDialogFooter";const f=i.forwardRef(({className:a,...t},o)=>s.jsx(e.Title,{ref:o,className:l("text-lg font-semibold",a),...t}));f.displayName=e.Title.displayName;const g=i.forwardRef(({className:a,...t},o)=>s.jsx(e.Description,{ref:o,className:l("text-sm text-muted-foreground",a),...t}));g.displayName=e.Description.displayName;const x=i.forwardRef(({className:a,...t},o)=>s.jsx(e.Action,{ref:o,className:l(r(),a),...t}));x.displayName=e.Action.displayName;const N=i.forwardRef(({className:a,...t},o)=>s.jsx(e.Cancel,{ref:o,className:l(r({variant:"outline"}),"mt-2 sm:mt-0",a),...t}));N.displayName=e.Cancel.displayName;export{T as A,z as a,n as b,c,f as d,g as e,p as f,N as g,x as h};
|
|
2
|
+
//# sourceMappingURL=alert-dialog.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"alert-dialog.js","sources":["../../../src/components/alert-dialog/alert-dialog.tsx"],"sourcesContent":["import { cn } from '@/lib/utils'\nimport * as AlertDialogPrimitive from '@radix-ui/react-alert-dialog'\nimport * as React from 'react'\nimport { buttonVariants } from '../button'\n\nconst AlertDialog = AlertDialogPrimitive.Root\n\nconst AlertDialogTrigger = AlertDialogPrimitive.Trigger\n\nconst AlertDialogPortal = AlertDialogPrimitive.Portal\n\nconst AlertDialogOverlay = React.forwardRef<\n\tReact.ElementRef<typeof AlertDialogPrimitive.Overlay>,\n\tReact.ComponentPropsWithoutRef<typeof AlertDialogPrimitive.Overlay>\n>(({ className, ...props }, ref) => (\n\t<AlertDialogPrimitive.Overlay\n\t\tclassName={cn(\n\t\t\t'fixed inset-0 z-50 bg-black/80 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0',\n\t\t\tclassName,\n\t\t)}\n\t\t{...props}\n\t\tref={ref}\n\t/>\n))\nAlertDialogOverlay.displayName = AlertDialogPrimitive.Overlay.displayName\n\nconst AlertDialogContent = React.forwardRef<\n\tReact.ElementRef<typeof AlertDialogPrimitive.Content>,\n\tReact.ComponentPropsWithoutRef<typeof AlertDialogPrimitive.Content>\n>(({ className, ...props }, ref) => (\n\t<AlertDialogPortal>\n\t\t<AlertDialogOverlay />\n\t\t<AlertDialogPrimitive.Content\n\t\t\tref={ref}\n\t\t\tclassName={cn(\n\t\t\t\t'fixed left-[50%] top-[50%] z-50 grid w-full max-w-lg translate-x-[-50%] translate-y-[-50%] gap-4 border bg-background p-6 shadow-lg duration-200 data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[state=closed]:slide-out-to-left-1/2 data-[state=closed]:slide-out-to-top-[48%] data-[state=open]:slide-in-from-left-1/2 data-[state=open]:slide-in-from-top-[48%] sm:rounded-lg',\n\t\t\t\tclassName,\n\t\t\t)}\n\t\t\t{...props}\n\t\t/>\n\t</AlertDialogPortal>\n))\nAlertDialogContent.displayName = AlertDialogPrimitive.Content.displayName\n\nconst AlertDialogHeader = ({\n\tclassName,\n\t...props\n}: React.HTMLAttributes<HTMLDivElement>) => (\n\t<div\n\t\tclassName={cn('flex flex-col space-y-2 text-center sm:text-left', className)}\n\t\t{...props}\n\t/>\n)\nAlertDialogHeader.displayName = 'AlertDialogHeader'\n\nconst AlertDialogFooter = ({\n\tclassName,\n\t...props\n}: React.HTMLAttributes<HTMLDivElement>) => (\n\t<div\n\t\tclassName={cn(\n\t\t\t'flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2',\n\t\t\tclassName,\n\t\t)}\n\t\t{...props}\n\t/>\n)\nAlertDialogFooter.displayName = 'AlertDialogFooter'\n\nconst AlertDialogTitle = React.forwardRef<\n\tReact.ElementRef<typeof AlertDialogPrimitive.Title>,\n\tReact.ComponentPropsWithoutRef<typeof AlertDialogPrimitive.Title>\n>(({ className, ...props }, ref) => (\n\t<AlertDialogPrimitive.Title\n\t\tref={ref}\n\t\tclassName={cn('text-lg font-semibold', className)}\n\t\t{...props}\n\t/>\n))\nAlertDialogTitle.displayName = AlertDialogPrimitive.Title.displayName\n\nconst AlertDialogDescription = React.forwardRef<\n\tReact.ElementRef<typeof AlertDialogPrimitive.Description>,\n\tReact.ComponentPropsWithoutRef<typeof AlertDialogPrimitive.Description>\n>(({ className, ...props }, ref) => (\n\t<AlertDialogPrimitive.Description\n\t\tref={ref}\n\t\tclassName={cn('text-sm text-muted-foreground', className)}\n\t\t{...props}\n\t/>\n))\nAlertDialogDescription.displayName = AlertDialogPrimitive.Description.displayName\n\nconst AlertDialogAction = React.forwardRef<\n\tReact.ElementRef<typeof AlertDialogPrimitive.Action>,\n\tReact.ComponentPropsWithoutRef<typeof AlertDialogPrimitive.Action>\n>(({ className, ...props }, ref) => (\n\t<AlertDialogPrimitive.Action\n\t\tref={ref}\n\t\tclassName={cn(buttonVariants(), className)}\n\t\t{...props}\n\t/>\n))\nAlertDialogAction.displayName = AlertDialogPrimitive.Action.displayName\n\nconst AlertDialogCancel = React.forwardRef<\n\tReact.ElementRef<typeof AlertDialogPrimitive.Cancel>,\n\tReact.ComponentPropsWithoutRef<typeof AlertDialogPrimitive.Cancel>\n>(({ className, ...props }, ref) => (\n\t<AlertDialogPrimitive.Cancel\n\t\tref={ref}\n\t\tclassName={cn(buttonVariants({ variant: 'outline' }), 'mt-2 sm:mt-0', className)}\n\t\t{...props}\n\t/>\n))\nAlertDialogCancel.displayName = AlertDialogPrimitive.Cancel.displayName\n\nexport {\n\tAlertDialog,\n\tAlertDialogAction,\n\tAlertDialogCancel,\n\tAlertDialogContent,\n\tAlertDialogDescription,\n\tAlertDialogFooter,\n\tAlertDialogHeader,\n\tAlertDialogOverlay,\n\tAlertDialogPortal,\n\tAlertDialogTitle,\n\tAlertDialogTrigger,\n}\n"],"names":["AlertDialog","AlertDialogPrimitive","AlertDialogTrigger","AlertDialogPortal","AlertDialogOverlay","React","className","props","ref","jsx","cn","AlertDialogContent","jsxs","AlertDialogHeader","AlertDialogFooter","AlertDialogTitle","AlertDialogDescription","AlertDialogAction","buttonVariants","AlertDialogCancel"],"mappings":"uYAKA,MAAMA,EAAcC,EAAqB,KAEnCC,EAAqBD,EAAqB,QAE1CE,EAAoBF,EAAqB,OAEzCG,EAAqBC,EAAM,WAG/B,CAAC,CAAE,UAAAC,EAAW,GAAGC,CAAA,EAASC,IAC3BC,EAAAA,IAACR,EAAqB,QAArB,CACA,UAAWS,EACV,yJACAJ,CAAA,EAEA,GAAGC,EACJ,IAAAC,CAAA,CACD,CACA,EACDJ,EAAmB,YAAcH,EAAqB,QAAQ,YAE9D,MAAMU,EAAqBN,EAAM,WAG/B,CAAC,CAAE,UAAAC,EAAW,GAAGC,CAAA,EAASC,IAC3BI,EAAAA,KAACT,EAAA,CACA,SAAA,CAAAM,EAAAA,IAACL,EAAA,EAAmB,EACpBK,EAAAA,IAACR,EAAqB,QAArB,CACA,IAAAO,EACA,UAAWE,EACV,8fACAJ,CAAA,EAEA,GAAGC,CAAA,CAAA,CACL,EACD,CACA,EACDI,EAAmB,YAAcV,EAAqB,QAAQ,YAE9D,MAAMY,EAAoB,CAAC,CAC1B,UAAAP,EACA,GAAGC,CACJ,IACCE,EAAAA,IAAC,MAAA,CACA,UAAWC,EAAG,mDAAoDJ,CAAS,EAC1E,GAAGC,CAAA,CACL,EAEDM,EAAkB,YAAc,oBAEhC,MAAMC,EAAoB,CAAC,CAC1B,UAAAR,EACA,GAAGC,CACJ,IACCE,EAAAA,IAAC,MAAA,CACA,UAAWC,EACV,gEACAJ,CAAA,EAEA,GAAGC,CAAA,CACL,EAEDO,EAAkB,YAAc,oBAEhC,MAAMC,EAAmBV,EAAM,WAG7B,CAAC,CAAE,UAAAC,EAAW,GAAGC,CAAA,EAASC,IAC3BC,EAAAA,IAACR,EAAqB,MAArB,CACA,IAAAO,EACA,UAAWE,EAAG,wBAAyBJ,CAAS,EAC/C,GAAGC,CAAA,CACL,CACA,EACDQ,EAAiB,YAAcd,EAAqB,MAAM,YAE1D,MAAMe,EAAyBX,EAAM,WAGnC,CAAC,CAAE,UAAAC,EAAW,GAAGC,CAAA,EAASC,IAC3BC,EAAAA,IAACR,EAAqB,YAArB,CACA,IAAAO,EACA,UAAWE,EAAG,gCAAiCJ,CAAS,EACvD,GAAGC,CAAA,CACL,CACA,EACDS,EAAuB,YAAcf,EAAqB,YAAY,YAEtE,MAAMgB,EAAoBZ,EAAM,WAG9B,CAAC,CAAE,UAAAC,EAAW,GAAGC,CAAA,EAASC,IAC3BC,EAAAA,IAACR,EAAqB,OAArB,CACA,IAAAO,EACA,UAAWE,EAAGQ,EAAA,EAAkBZ,CAAS,EACxC,GAAGC,CAAA,CACL,CACA,EACDU,EAAkB,YAAchB,EAAqB,OAAO,YAE5D,MAAMkB,EAAoBd,EAAM,WAG9B,CAAC,CAAE,UAAAC,EAAW,GAAGC,CAAA,EAASC,IAC3BC,EAAAA,IAACR,EAAqB,OAArB,CACA,IAAAO,EACA,UAAWE,EAAGQ,EAAe,CAAE,QAAS,UAAW,EAAG,eAAgBZ,CAAS,EAC9E,GAAGC,CAAA,CACL,CACA,EACDY,EAAkB,YAAclB,EAAqB,OAAO"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{j as r}from"../../assets/jsx-runtime-D_zvdyIk.js";import{A as e,a as i,b as t,c as l,d as s,e as o,f as a,g as n,h as m}from"./alert-dialog.js";import{B as c}from"../button/button.js";import"../../lib/utils/cn.js";import"clsx";import"tailwind-merge";import"date-fns-tz";import"@radix-ui/react-alert-dialog";import"react";import"../button/button.types.js";import"cva-extended";import"../../lib/utils/merge-objects.js";import"@radix-ui/react-slot";const d=()=>r.jsxs(e,{children:[r.jsx(i,{asChild:!0,children:r.jsx(c,{children:"Open dialog"})}),r.jsxs(t,{children:[r.jsxs(l,{children:[r.jsx(s,{children:"Alert title"}),r.jsx(o,{children:"This is the alert description"})]}),r.jsx("div",{className:"bg-gray-200 p-4 h-20 text-sm",children:"Content goes here"}),r.jsxs(a,{children:[r.jsx(n,{children:"Cancel"}),r.jsx(m,{children:"Submit"})]})]})]});d.bind({});
|
|
2
|
+
//# sourceMappingURL=alert-dialog.stories.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"alert-dialog.stories.js","sources":["../../../src/components/alert-dialog/alert-dialog.stories.tsx"],"sourcesContent":["// organize-imports-ignore\nimport React from 'react'\nimport type { Meta, StoryObj } from '@storybook/react'\nimport {\n\tAlertDialog,\n\tAlertDialogAction,\n\tAlertDialogCancel,\n\tAlertDialogContent,\n\tAlertDialogDescription,\n\tAlertDialogFooter,\n\tAlertDialogHeader,\n\tAlertDialogTitle,\n\tAlertDialogTrigger,\n} from './alert-dialog'\nimport { Button } from '../button'\n\nconst meta: Meta<typeof AlertDialog> = {\n\tcomponent: AlertDialog,\n}\n\nexport default meta\ntype Story = StoryObj<typeof AlertDialog>\n\nconst Template = () => {\n\treturn (\n\t\t<AlertDialog>\n\t\t\t<AlertDialogTrigger asChild>\n\t\t\t\t<Button>Open dialog</Button>\n\t\t\t</AlertDialogTrigger>\n\t\t\t<AlertDialogContent>\n\t\t\t\t<AlertDialogHeader>\n\t\t\t\t\t<AlertDialogTitle>Alert title</AlertDialogTitle>\n\t\t\t\t\t<AlertDialogDescription>This is the alert description</AlertDialogDescription>\n\t\t\t\t</AlertDialogHeader>\n\t\t\t\t<div className=\"bg-gray-200 p-4 h-20 text-sm\">Content goes here</div>\n\n\t\t\t\t<AlertDialogFooter>\n\t\t\t\t\t<AlertDialogCancel>Cancel</AlertDialogCancel>\n\t\t\t\t\t<AlertDialogAction>Submit</AlertDialogAction>\n\t\t\t\t</AlertDialogFooter>\n\t\t\t</AlertDialogContent>\n\t\t</AlertDialog>\n\t)\n}\n\nexport const Default: Story = {\n\trender: Template.bind({}),\n\targs: {},\n}\n"],"names":["Template","AlertDialog","jsx","AlertDialogTrigger","Button","AlertDialogContent","jsxs","AlertDialogHeader","AlertDialogTitle","AlertDialogDescription","AlertDialogFooter","AlertDialogCancel","AlertDialogAction"],"mappings":"qcAuBA,MAAMA,EAAW,WAEdC,EAAA,CACA,SAAA,CAAAC,EAAAA,IAACC,GAAmB,QAAO,GAC1B,SAAAD,MAACE,EAAA,CAAO,uBAAW,CAAA,CACpB,SACCC,EAAA,CACA,SAAA,CAAAC,OAACC,EAAA,CACA,SAAA,CAAAL,EAAAA,IAACM,GAAiB,SAAA,aAAA,CAAW,EAC7BN,EAAAA,IAACO,GAAuB,SAAA,+BAAA,CAA6B,CAAA,EACtD,EACAP,EAAAA,IAAC,MAAA,CAAI,UAAU,+BAA+B,SAAA,oBAAiB,SAE9DQ,EAAA,CACA,SAAA,CAAAR,EAAAA,IAACS,GAAkB,SAAA,QAAA,CAAM,EACzBT,EAAAA,IAACU,GAAkB,SAAA,QAAA,CAAM,CAAA,CAAA,CAC1B,CAAA,CAAA,CACD,CAAA,EACD,EAKOZ,EAAS,KAAK,EAAE"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import"./alert-dialog.js";import"../../assets/jsx-runtime-D_zvdyIk.js";import"../../lib/utils/cn.js";import"clsx";import"tailwind-merge";import"date-fns-tz";import"@radix-ui/react-alert-dialog";import"react";import"../button/button.js";import"../../lib/utils/merge-objects.js";import"@radix-ui/react-slot";import"cva-extended";import"../button/button.types.js";
|
|
2
|
+
//# sourceMappingURL=index.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{j as o}from"../../assets/jsx-runtime-D_zvdyIk.js";import{c as $}from"../../lib/utils/cn.js";import"date-fns-tz";import{c as L}from"../../lib/utils/string.js";import{X as H,Search as V}from"lucide-react";import{forwardRef as B,useState as a,useRef as A,useImperativeHandle as F,useEffect as h}from"react";import{A as K}from"../adaptive-input/adaptive-input.js";import"clsx";import"tailwind-merge";import"../input/input.js";import"class-variance-authority";const Z=B(function(c,C){const{options:j,placeholder:I="Type to search...",onSelect:w,defaultSelectedOption:m}=c,[i,d]=a((m==null?void 0:m.label)||""),[n,E]=a([]),[s,r]=a(!1),[l,b]=a(-1),[N,R]=a("down"),[f,p]=a(m||null),g=A(null),x=A(null),v=A(null);F(C,()=>({clearSelection:()=>{p(null),d(""),w(null)}})),h(()=>{const e=t=>{g.current&&!g.current.contains(t.target)&&r(!1)};return document.addEventListener("click",e),()=>{document.removeEventListener("click",e)}},[]),h(()=>{const e=j.filter(t=>L(t.label,i));E(e),b(-1)},[i,j]),h(()=>{if(s&&x.current){const e=x.current.getBoundingClientRect(),t=window.innerHeight-e.bottom,k=e.top,u=Math.min(n.length*40,240);R(t>=u||t>k?"down":"up")}},[s,n]);const S=e=>{var t;d(e.target.value),(t=c.onChange)==null||t.call(c,e.target.value),p(null),r(!0)},y=e=>{d(e.label),p(e),r(!1),w(e)},D=e=>{if(!s&&(e.key==="ArrowDown"||e.key==="ArrowUp")){r(!0);return}switch(e.key){case"ArrowDown":b(t=>t<n.length-1?t+1:t);break;case"ArrowUp":b(t=>t>0?t-1:t);break;case"Enter":l>=0&&l<n.length&&y(n[l]);break;case"Escape":r(!1);break}};return h(()=>{s&&v.current&&l>=0&&v.current.children[l].scrollIntoView({block:"nearest"})},[l,s]),o.jsxs("div",{ref:g,className:"relative w-full",children:[o.jsx(K,{ref:x,type:"text",value:i,onChange:S,onFocus:()=>r(!0),onKeyDown:D,placeholder:I,className:$("w-full",c.className),"aria-expanded":s,"aria-autocomplete":"list","aria-controls":"autocomplete-list",role:"combobox",leftIcon:o.jsx(V,{className:"w-4 h-4"}),rightIcon:f?o.jsx("button",{className:"mt-[5px]",onClick:()=>{p(null),d(""),w(null)},children:o.jsx(H,{className:"w-5 h-5"})}):null}),s&&n.length>0&&o.jsx("ul",{id:"autocomplete-list",ref:v,className:`absolute z-10 w-full bg-white border border-gray-300 rounded-md shadow-lg max-h-60 overflow-auto ${N==="up"?"bottom-full mb-1":"top-full mt-1"}`,role:"listbox",children:n.map((e,t)=>{const k=e.label.split(new RegExp(`(${i})`,"gi"));return o.jsx("li",{onClick:()=>y(e),className:`px-4 py-2 cursor-pointer ${t===l?"bg-blue-100":"hover:bg-gray-100"} ${(f==null?void 0:f.value)===e.value?"bg-blue-200":""}`,role:"option","aria-selected":t===l,id:`option-${t}`,children:k.map((u,O)=>u.toLowerCase()===i.toLowerCase()?o.jsx("span",{className:"font-bold text-blue-600",children:u},O):u)},e.value)})})]})});export{Z as A};
|
|
2
|
+
//# sourceMappingURL=autocomplete.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"autocomplete.js","sources":["../../../src/components/autocomplete/autocomplete.tsx"],"sourcesContent":["'use client'\n\nimport { cn, containSearchStrings } from '@/lib/utils'\nimport { Search, X } from 'lucide-react'\nimport React, {\n\tforwardRef,\n\tKeyboardEvent,\n\tuseEffect,\n\tuseImperativeHandle,\n\tuseRef,\n\tuseState,\n} from 'react'\nimport { AdaptiveInput } from '../adaptive-input'\n\nexport interface Option {\n\tlabel: string\n\tvalue: string\n}\n\ninterface AutocompleteProps {\n\toptions: Option[]\n\tplaceholder?: string\n\tonSelect: (option: Option | null) => void\n\tonChange?: (value: string) => void\n\tdefaultSelectedOption?: Option\n\tclassName?: string\n}\n\nexport const Autocomplete = forwardRef(function Autocomplete(\n\tprops: AutocompleteProps,\n\tref: React.Ref<{ clearSelection: () => void }>,\n) {\n\tconst {\n\t\toptions,\n\t\tplaceholder = 'Type to search...',\n\t\tonSelect,\n\t\tdefaultSelectedOption,\n\t} = props\n\n\tconst [inputValue, setInputValue] = useState(defaultSelectedOption?.label || '')\n\tconst [filteredOptions, setFilteredOptions] = useState<Option[]>([])\n\tconst [isOpen, setIsOpen] = useState(false)\n\tconst [activeIndex, setActiveIndex] = useState(-1)\n\tconst [dropdownPosition, setDropdownPosition] = useState<'down' | 'up'>('down')\n\tconst [selectedOption, setSelectedOption] = useState<Option | null>(\n\t\tdefaultSelectedOption || null,\n\t)\n\tconst autocompleteRef = useRef<HTMLDivElement>(null)\n\tconst inputRef = useRef<HTMLInputElement>(null)\n\tconst listRef = useRef<HTMLUListElement>(null)\n\n\t// Expose the clearSelection method via the ref\n\tuseImperativeHandle(ref, () => ({\n\t\tclearSelection: () => {\n\t\t\tsetSelectedOption(null)\n\t\t\tsetInputValue('')\n\t\t\tonSelect(null)\n\t\t},\n\t}))\n\n\tuseEffect(() => {\n\t\tconst handleClickOutside = (event: MouseEvent) => {\n\t\t\tif (\n\t\t\t\tautocompleteRef.current &&\n\t\t\t\t!autocompleteRef.current.contains(event.target as Node)\n\t\t\t) {\n\t\t\t\tsetIsOpen(false)\n\t\t\t}\n\t\t}\n\n\t\tdocument.addEventListener('click', handleClickOutside)\n\t\treturn () => {\n\t\t\tdocument.removeEventListener('click', handleClickOutside)\n\t\t}\n\t}, [])\n\n\tuseEffect(() => {\n\t\tconst filtered = options.filter((option) =>\n\t\t\tcontainSearchStrings(option.label, inputValue),\n\t\t)\n\t\tsetFilteredOptions(filtered)\n\t\tsetActiveIndex(-1)\n\t}, [inputValue, options])\n\n\tuseEffect(() => {\n\t\tif (isOpen && inputRef.current) {\n\t\t\tconst rect = inputRef.current.getBoundingClientRect()\n\t\t\tconst spaceBelow = window.innerHeight - rect.bottom\n\t\t\tconst spaceAbove = rect.top\n\t\t\tconst listHeight = Math.min(filteredOptions.length * 40, 240) // Assuming each option is 40px high, max 240px\n\n\t\t\tsetDropdownPosition(\n\t\t\t\tspaceBelow >= listHeight || spaceBelow > spaceAbove ? 'down' : 'up',\n\t\t\t)\n\t\t}\n\t}, [isOpen, filteredOptions])\n\n\tconst handleInputChange = (e: React.ChangeEvent<HTMLInputElement>) => {\n\t\tsetInputValue(e.target.value)\n\t\tprops.onChange?.(e.target.value)\n\t\tsetSelectedOption(null)\n\t\tsetIsOpen(true)\n\t}\n\n\tconst handleOptionClick = (option: Option) => {\n\t\tsetInputValue(option.label)\n\t\tsetSelectedOption(option)\n\t\tsetIsOpen(false)\n\t\tonSelect(option)\n\t}\n\n\tconst handleKeyDown = (e: KeyboardEvent<HTMLInputElement>) => {\n\t\tif (!isOpen) {\n\t\t\tif (e.key === 'ArrowDown' || e.key === 'ArrowUp') {\n\t\t\t\tsetIsOpen(true)\n\t\t\t\treturn\n\t\t\t}\n\t\t}\n\n\t\tswitch (e.key) {\n\t\t\tcase 'ArrowDown':\n\t\t\t\tsetActiveIndex((prev) => (prev < filteredOptions.length - 1 ? prev + 1 : prev))\n\t\t\t\tbreak\n\t\t\tcase 'ArrowUp':\n\t\t\t\tsetActiveIndex((prev) => (prev > 0 ? prev - 1 : prev))\n\t\t\t\tbreak\n\t\t\tcase 'Enter':\n\t\t\t\tif (activeIndex >= 0 && activeIndex < filteredOptions.length) {\n\t\t\t\t\thandleOptionClick(filteredOptions[activeIndex])\n\t\t\t\t}\n\t\t\t\tbreak\n\t\t\tcase 'Escape':\n\t\t\t\tsetIsOpen(false)\n\t\t\t\tbreak\n\t\t}\n\t}\n\n\tuseEffect(() => {\n\t\tif (isOpen && listRef.current && activeIndex >= 0) {\n\t\t\tconst activeElement = listRef.current.children[activeIndex] as HTMLElement\n\t\t\tactiveElement.scrollIntoView({ block: 'nearest' })\n\t\t}\n\t}, [activeIndex, isOpen])\n\n\treturn (\n\t\t<div ref={autocompleteRef} className=\"relative w-full\">\n\t\t\t<AdaptiveInput\n\t\t\t\tref={inputRef}\n\t\t\t\ttype=\"text\"\n\t\t\t\tvalue={inputValue}\n\t\t\t\tonChange={handleInputChange}\n\t\t\t\tonFocus={() => setIsOpen(true)}\n\t\t\t\tonKeyDown={handleKeyDown}\n\t\t\t\tplaceholder={placeholder}\n\t\t\t\tclassName={cn('w-full', props.className)}\n\t\t\t\taria-expanded={isOpen}\n\t\t\t\taria-autocomplete=\"list\"\n\t\t\t\taria-controls=\"autocomplete-list\"\n\t\t\t\trole=\"combobox\"\n\t\t\t\tleftIcon={<Search className=\"w-4 h-4\" />}\n\t\t\t\trightIcon={\n\t\t\t\t\tselectedOption ? (\n\t\t\t\t\t\t<button\n\t\t\t\t\t\t\tclassName=\"mt-[5px]\"\n\t\t\t\t\t\t\tonClick={() => {\n\t\t\t\t\t\t\t\tsetSelectedOption(null)\n\t\t\t\t\t\t\t\tsetInputValue('')\n\t\t\t\t\t\t\t\tonSelect(null)\n\t\t\t\t\t\t\t}}\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<X className=\"w-5 h-5\" />\n\t\t\t\t\t\t</button>\n\t\t\t\t\t) : null\n\t\t\t\t}\n\t\t\t/>\n\t\t\t{isOpen && filteredOptions.length > 0 && (\n\t\t\t\t<ul\n\t\t\t\t\tid=\"autocomplete-list\"\n\t\t\t\t\tref={listRef}\n\t\t\t\t\tclassName={`absolute z-10 w-full bg-white border border-gray-300 rounded-md shadow-lg max-h-60 overflow-auto ${\n\t\t\t\t\t\tdropdownPosition === 'up' ? 'bottom-full mb-1' : 'top-full mt-1'\n\t\t\t\t\t}`}\n\t\t\t\t\trole=\"listbox\"\n\t\t\t\t>\n\t\t\t\t\t{filteredOptions.map((option, index) => {\n\t\t\t\t\t\tconst parts = option.label.split(new RegExp(`(${inputValue})`, 'gi'))\n\n\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t<li\n\t\t\t\t\t\t\t\tkey={option.value}\n\t\t\t\t\t\t\t\tonClick={() => handleOptionClick(option)}\n\t\t\t\t\t\t\t\tclassName={`px-4 py-2 cursor-pointer ${\n\t\t\t\t\t\t\t\t\tindex === activeIndex ? 'bg-blue-100' : 'hover:bg-gray-100'\n\t\t\t\t\t\t\t\t} ${selectedOption?.value === option.value ? 'bg-blue-200' : ''}`}\n\t\t\t\t\t\t\t\trole=\"option\"\n\t\t\t\t\t\t\t\taria-selected={index === activeIndex}\n\t\t\t\t\t\t\t\tid={`option-${index}`}\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{parts.map((part, i) =>\n\t\t\t\t\t\t\t\t\tpart.toLowerCase() === inputValue.toLowerCase() ? (\n\t\t\t\t\t\t\t\t\t\t<span key={i} className=\"font-bold text-blue-600\">\n\t\t\t\t\t\t\t\t\t\t\t{part}\n\t\t\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t\t\t\tpart\n\t\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t\t\t)}\n\t\t\t\t\t\t\t</li>\n\t\t\t\t\t\t)\n\t\t\t\t\t})}\n\t\t\t\t</ul>\n\t\t\t)}\n\t\t</div>\n\t)\n})\n"],"names":["Autocomplete","forwardRef","props","ref","options","placeholder","onSelect","defaultSelectedOption","inputValue","setInputValue","useState","filteredOptions","setFilteredOptions","isOpen","setIsOpen","activeIndex","setActiveIndex","dropdownPosition","setDropdownPosition","selectedOption","setSelectedOption","autocompleteRef","useRef","inputRef","listRef","useImperativeHandle","useEffect","handleClickOutside","event","filtered","option","containSearchStrings","rect","spaceBelow","spaceAbove","listHeight","handleInputChange","_a","handleOptionClick","handleKeyDown","prev","jsxs","jsx","AdaptiveInput","cn","Search","X","index","parts","part","i"],"mappings":"8cA4BO,MAAMA,EAAeC,EAAW,SACtCC,EACAC,EACC,CACD,KAAM,CACL,QAAAC,EACA,YAAAC,EAAc,oBACd,SAAAC,EACA,sBAAAC,CAAA,EACGL,EAEE,CAACM,EAAYC,CAAa,EAAIC,GAASH,GAAA,YAAAA,EAAuB,QAAS,EAAE,EACzE,CAACI,EAAiBC,CAAkB,EAAIF,EAAmB,CAAA,CAAE,EAC7D,CAACG,EAAQC,CAAS,EAAIJ,EAAS,EAAK,EACpC,CAACK,EAAaC,CAAc,EAAIN,EAAS,EAAE,EAC3C,CAACO,EAAkBC,CAAmB,EAAIR,EAAwB,MAAM,EACxE,CAACS,EAAgBC,CAAiB,EAAIV,EAC3CH,GAAyB,IAAA,EAEpBc,EAAkBC,EAAuB,IAAI,EAC7CC,EAAWD,EAAyB,IAAI,EACxCE,EAAUF,EAAyB,IAAI,EAG7CG,EAAoBtB,EAAK,KAAO,CAC/B,eAAgB,IAAM,CACrBiB,EAAkB,IAAI,EACtBX,EAAc,EAAE,EAChBH,EAAS,IAAI,CAAA,CACd,EACC,EAEFoB,EAAU,IAAM,CACf,MAAMC,EAAsBC,GAAsB,CAEhDP,EAAgB,SAChB,CAACA,EAAgB,QAAQ,SAASO,EAAM,MAAc,GAEtDd,EAAU,EAAK,CAChB,EAGD,gBAAS,iBAAiB,QAASa,CAAkB,EAC9C,IAAM,CACZ,SAAS,oBAAoB,QAASA,CAAkB,CAAA,CACzD,EACE,EAAE,EAELD,EAAU,IAAM,CACf,MAAMG,EAAWzB,EAAQ,OAAQ0B,GAChCC,EAAqBD,EAAO,MAAOtB,CAAU,CAAA,EAE9CI,EAAmBiB,CAAQ,EAC3Bb,EAAe,EAAE,CAAA,EACf,CAACR,EAAYJ,CAAO,CAAC,EAExBsB,EAAU,IAAM,CACf,GAAIb,GAAUU,EAAS,QAAS,CAC/B,MAAMS,EAAOT,EAAS,QAAQ,sBAAA,EACxBU,EAAa,OAAO,YAAcD,EAAK,OACvCE,EAAaF,EAAK,IAClBG,EAAa,KAAK,IAAIxB,EAAgB,OAAS,GAAI,GAAG,EAE5DO,EACCe,GAAcE,GAAcF,EAAaC,EAAa,OAAS,IAAA,CAChE,CACD,EACE,CAACrB,EAAQF,CAAe,CAAC,EAE5B,MAAMyB,EAAqB,GAA2C,OACrE3B,EAAc,EAAE,OAAO,KAAK,GAC5B4B,EAAAnC,EAAM,WAAN,MAAAmC,EAAA,KAAAnC,EAAiB,EAAE,OAAO,OAC1BkB,EAAkB,IAAI,EACtBN,EAAU,EAAI,CAAA,EAGTwB,EAAqBR,GAAmB,CAC7CrB,EAAcqB,EAAO,KAAK,EAC1BV,EAAkBU,CAAM,EACxBhB,EAAU,EAAK,EACfR,EAASwB,CAAM,CAAA,EAGVS,EAAiB,GAAuC,CAC7D,GAAI,CAAC1B,IACA,EAAE,MAAQ,aAAe,EAAE,MAAQ,WAAW,CACjDC,EAAU,EAAI,EACd,MAAA,CAIF,OAAQ,EAAE,IAAA,CACT,IAAK,YACJE,EAAgBwB,GAAUA,EAAO7B,EAAgB,OAAS,EAAI6B,EAAO,EAAIA,CAAK,EAC9E,MACD,IAAK,UACJxB,EAAgBwB,GAAUA,EAAO,EAAIA,EAAO,EAAIA,CAAK,EACrD,MACD,IAAK,QACAzB,GAAe,GAAKA,EAAcJ,EAAgB,QACrD2B,EAAkB3B,EAAgBI,CAAW,CAAC,EAE/C,MACD,IAAK,SACJD,EAAU,EAAK,EACf,KAAA,CACF,EAGD,OAAAY,EAAU,IAAM,CACXb,GAAUW,EAAQ,SAAWT,GAAe,GACzBS,EAAQ,QAAQ,SAAST,CAAW,EAC5C,eAAe,CAAE,MAAO,SAAA,CAAW,CAClD,EACE,CAACA,EAAaF,CAAM,CAAC,EAGvB4B,EAAAA,KAAC,MAAA,CAAI,IAAKpB,EAAiB,UAAU,kBACpC,SAAA,CAAAqB,EAAAA,IAACC,EAAA,CACA,IAAKpB,EACL,KAAK,OACL,MAAOf,EACP,SAAU4B,EACV,QAAS,IAAMtB,EAAU,EAAI,EAC7B,UAAWyB,EACX,YAAAlC,EACA,UAAWuC,EAAG,SAAU1C,EAAM,SAAS,EACvC,gBAAeW,EACf,oBAAkB,OAClB,gBAAc,oBACd,KAAK,WACL,SAAU6B,EAAAA,IAACG,EAAA,CAAO,UAAU,SAAA,CAAU,EACtC,UACC1B,EACCuB,EAAAA,IAAC,SAAA,CACA,UAAU,WACV,QAAS,IAAM,CACdtB,EAAkB,IAAI,EACtBX,EAAc,EAAE,EAChBH,EAAS,IAAI,CAAA,EAGd,SAAAoC,EAAAA,IAACI,EAAA,CAAE,UAAU,SAAA,CAAU,CAAA,CAAA,EAErB,IAAA,CAAA,EAGLjC,GAAUF,EAAgB,OAAS,GACnC+B,EAAAA,IAAC,KAAA,CACA,GAAG,oBACH,IAAKlB,EACL,UAAW,oGACVP,IAAqB,KAAO,mBAAqB,eAClD,GACA,KAAK,UAEJ,SAAAN,EAAgB,IAAI,CAACmB,EAAQiB,IAAU,CACvC,MAAMC,EAAQlB,EAAO,MAAM,MAAM,IAAI,OAAO,IAAItB,CAAU,IAAK,IAAI,CAAC,EAEpE,OACCkC,EAAAA,IAAC,KAAA,CAEA,QAAS,IAAMJ,EAAkBR,CAAM,EACvC,UAAW,4BACViB,IAAUhC,EAAc,cAAgB,mBACzC,KAAII,GAAA,YAAAA,EAAgB,SAAUW,EAAO,MAAQ,cAAgB,EAAE,GAC/D,KAAK,SACL,gBAAeiB,IAAUhC,EACzB,GAAI,UAAUgC,CAAK,GAElB,SAAAC,EAAM,IAAI,CAACC,EAAMC,IACjBD,EAAK,gBAAkBzC,EAAW,YAAA,QAChC,OAAA,CAAa,UAAU,0BACtB,SAAAyC,CAAA,EADSC,CAEX,EAEAD,CAAA,CAEF,EAjBKnB,EAAO,KAAA,CAkBb,CAED,CAAA,CAAA,CACF,EAEF,CAEF,CAAC"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{j as a}from"../../assets/jsx-runtime-D_zvdyIk.js";import o,{useRef as l}from"react";import{A as m}from"./autocomplete.js";import{B as s}from"../button/button.js";import"../../lib/utils/cn.js";import"clsx";import"tailwind-merge";import"date-fns-tz";import"../../lib/utils/string.js";import"lucide-react";import"../adaptive-input/adaptive-input.js";import"../input/input.js";import"class-variance-authority";import"../../lib/utils/merge-objects.js";import"@radix-ui/react-slot";import"cva-extended";import"../button/button.types.js";const p=["United States","Canada","Argentina","Brazil","Chile","Colombia","Ecuador","Peru","Uruguay","Venezuela","Australia","China","India","Indonesia","Japan","Korea","Malaysia","Philippines","Singapore","Thailand","Vietnam","Austria","Belgium","Croatia","Denmark","Finland","France","Germany","Greece","Hungary","Ireland","Italy","Netherlands","Norway","Poland","Portugal","Romania","Russia","Spain","Sweden","Switzerland","Turkey","Ukraine","United Kingdom","Egypt","Nigeria","South Africa","Kenya"],u=()=>{const[i,r]=o.useState(),t=l(null),n=()=>{var e;(e=t.current)==null||e.clearSelection()};return a.jsxs("div",{className:"w-80",children:[a.jsx(m,{ref:t,defaultSelectedOption:{value:"Italy",label:"Italy"},onSelect:e=>r(e),options:p.map(e=>({value:e,label:e}))}),a.jsxs("p",{className:"mt-4",children:["Selected value: ",a.jsx("code",{children:JSON.stringify(i)})]}),a.jsx(s,{onClick:n,children:"Clear Selection"})]})};u.bind({});
|
|
2
|
+
//# sourceMappingURL=autocomplete.stories.js.map
|