buildgrid-ui 1.14.5 → 1.14.7
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-CoDNcMYi.js +11 -0
- package/dist/assets/magic-string.es-CoDNcMYi.js.map +1 -0
- package/dist/assets/vi.B-PuvDzu-CCLEoytE.js +500 -0
- package/dist/assets/vi.B-PuvDzu-CCLEoytE.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.d.ts +1 -1
- 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.d.ts +1 -1
- 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.d.ts +1 -1
- 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.d.ts +1 -1
- 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.d.ts +1 -1
- 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.d.ts +2 -2
- 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.d.ts +14 -2
- 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.d.ts +1 -1
- 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.d.ts +0 -1
- 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.d.ts +1 -2
- 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.d.ts +1 -1
- 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.d.ts +1 -1
- 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.d.ts +1 -1
- 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.d.ts +1 -1
- 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.d.ts +1 -1
- 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.d.ts +2 -2
- 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.d.ts +1 -1
- 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.d.ts +3 -3
- 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.d.ts +1 -1
- 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.d.ts +1 -1
- 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.d.ts +1 -1
- 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.d.ts +1 -1
- 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.d.ts +2 -2
- 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.d.ts +2 -2
- 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.d.ts +1 -1
- 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.d.ts +1 -1
- 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.d.ts +1 -1
- 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.d.ts +8 -8
- 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.d.ts +3 -3
- 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.d.ts +3 -3
- 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.d.ts +1 -1
- 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.d.ts +1 -1
- 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 +22 -13
- package/dist/buildgrid-ui.es.js +0 -17075
- package/dist/buildgrid-ui.umd.js +0 -277
- /package/dist/{buildgrid-ui.css → assets/unreset.css} +0 -0
|
@@ -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,CAAM,EAAGC,IAC3BC,EAAA,IAACR,EAAqB,QAArB,CACA,UAAWS,EACV,yJACAJ,CACD,EACC,GAAGC,EACJ,IAAAC,CAAA,CACD,CACA,EACDJ,EAAmB,YAAcH,EAAqB,QAAQ,YAExD,MAAAU,EAAqBN,EAAM,WAG/B,CAAC,CAAE,UAAAC,EAAW,GAAGC,CAAM,EAAGC,IAC3BI,EAAAA,KAACT,EACA,CAAA,SAAA,CAAAM,EAAA,IAACL,EAAmB,EAAA,EACpBK,EAAA,IAACR,EAAqB,QAArB,CACA,IAAAO,EACA,UAAWE,EACV,8fACAJ,CACD,EACC,GAAGC,CAAA,CAAA,CACL,EACD,CACA,EACDI,EAAmB,YAAcV,EAAqB,QAAQ,YAE9D,MAAMY,EAAoB,CAAC,CAC1B,UAAAP,EACA,GAAGC,CACJ,IACCE,EAAA,IAAC,MAAA,CACA,UAAWC,EAAG,mDAAoDJ,CAAS,EAC1E,GAAGC,CAAA,CACL,EAEDM,EAAkB,YAAc,oBAEhC,MAAMC,EAAoB,CAAC,CAC1B,UAAAR,EACA,GAAGC,CACJ,IACCE,EAAA,IAAC,MAAA,CACA,UAAWC,EACV,gEACAJ,CACD,EACC,GAAGC,CAAA,CACL,EAEDO,EAAkB,YAAc,oBAE1B,MAAAC,EAAmBV,EAAM,WAG7B,CAAC,CAAE,UAAAC,EAAW,GAAGC,CAAM,EAAGC,IAC3BC,EAAA,IAACR,EAAqB,MAArB,CACA,IAAAO,EACA,UAAWE,EAAG,wBAAyBJ,CAAS,EAC/C,GAAGC,CAAA,CACL,CACA,EACDQ,EAAiB,YAAcd,EAAqB,MAAM,YAEpD,MAAAe,EAAyBX,EAAM,WAGnC,CAAC,CAAE,UAAAC,EAAW,GAAGC,CAAM,EAAGC,IAC3BC,EAAA,IAACR,EAAqB,YAArB,CACA,IAAAO,EACA,UAAWE,EAAG,gCAAiCJ,CAAS,EACvD,GAAGC,CAAA,CACL,CACA,EACDS,EAAuB,YAAcf,EAAqB,YAAY,YAEhE,MAAAgB,EAAoBZ,EAAM,WAG9B,CAAC,CAAE,UAAAC,EAAW,GAAGC,CAAM,EAAGC,IAC3BC,EAAA,IAACR,EAAqB,OAArB,CACA,IAAAO,EACA,UAAWE,EAAGQ,EAAe,EAAGZ,CAAS,EACxC,GAAGC,CAAA,CACL,CACA,EACDU,EAAkB,YAAchB,EAAqB,OAAO,YAEtD,MAAAkB,EAAoBd,EAAM,WAG9B,CAAC,CAAE,UAAAC,EAAW,GAAGC,CAAM,EAAGC,IAC3BC,EAAA,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,EACA,CAAA,SAAA,CAAAC,EAAAA,IAACC,GAAmB,QAAO,GAC1B,SAACD,MAAAE,EAAA,CAAO,uBAAW,CACpB,CAAA,SACCC,EACA,CAAA,SAAA,CAAAC,OAACC,EACA,CAAA,SAAA,CAAAL,EAAAA,IAACM,GAAiB,SAAW,aAAA,CAAA,EAC7BN,EAAAA,IAACO,GAAuB,SAA6B,+BAAA,CAAA,CAAA,EACtD,EACCP,EAAA,IAAA,MAAA,CAAI,UAAU,+BAA+B,SAAiB,oBAAA,SAE9DQ,EACA,CAAA,SAAA,CAAAR,EAAAA,IAACS,GAAkB,SAAM,QAAA,CAAA,EACzBT,EAAAA,IAACU,GAAkB,SAAM,QAAA,CAAA,CAAA,CAC1B,CAAA,CAAA,CACD,CAAA,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":"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"}
|
|
@@ -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
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"autocomplete.stories.js","sources":["../../../src/components/autocomplete/autocomplete.stories.tsx"],"sourcesContent":["// organize-imports-ignore\nimport React, { useRef } from 'react'\nimport type { Meta, StoryObj } from '@storybook/react'\n\nimport { Autocomplete, Option } from './autocomplete'\nimport { Button } from '../button'\n\nconst meta: Meta<typeof Autocomplete> = {\n\ttitle: 'Components/input/autocomplete',\n\tcomponent: Autocomplete,\n}\n\nexport default meta\ntype Story = StoryObj<typeof Autocomplete>\n\n// list of 50 names of countries\nconst options = [\n\t'United States',\n\t'Canada',\n\t'Argentina',\n\t'Brazil',\n\t'Chile',\n\t'Colombia',\n\t'Ecuador',\n\t'Peru',\n\t'Uruguay',\n\t'Venezuela',\n\t'Australia',\n\t'China',\n\t'India',\n\t'Indonesia',\n\t'Japan',\n\t'Korea',\n\t'Malaysia',\n\t'Philippines',\n\t'Singapore',\n\t'Thailand',\n\t'Vietnam',\n\t'Austria',\n\t'Belgium',\n\t'Croatia',\n\t'Denmark',\n\t'Finland',\n\t'France',\n\t'Germany',\n\t'Greece',\n\t'Hungary',\n\t'Ireland',\n\t'Italy',\n\t'Netherlands',\n\t'Norway',\n\t'Poland',\n\t'Portugal',\n\t'Romania',\n\t'Russia',\n\t'Spain',\n\t'Sweden',\n\t'Switzerland',\n\t'Turkey',\n\t'Ukraine',\n\t'United Kingdom',\n\t'Egypt',\n\t'Nigeria',\n\t'South Africa',\n\t'Kenya',\n]\n\nconst Template = () => {\n\tconst [value, setValue] = React.useState<Option | null>()\n\n\tconst autocompleteRef = useRef<{ clearSelection: () => void }>(null)\n\n\tconst handleClear = () => {\n\t\tautocompleteRef.current?.clearSelection()\n\t}\n\n\treturn (\n\t\t<div className=\"w-80\">\n\t\t\t<Autocomplete\n\t\t\t\tref={autocompleteRef}\n\t\t\t\tdefaultSelectedOption={{ value: 'Italy', label: 'Italy' }}\n\t\t\t\tonSelect={(value) => setValue(value)}\n\t\t\t\toptions={options.map((option) => ({ value: option, label: option }))}\n\t\t\t/>\n\t\t\t<p className=\"mt-4\">\n\t\t\t\tSelected value: <code>{JSON.stringify(value)}</code>\n\t\t\t</p>\n\t\t\t<Button onClick={handleClear}>Clear Selection</Button>\n\t\t</div>\n\t)\n}\n\nexport const Default: Story = {\n\trender: Template.bind({}),\n\targs: {},\n}\n"],"names":["options","Template","value","setValue","React","autocompleteRef","useRef","handleClear","_a","jsxs","jsx","Autocomplete","option","Button"],"mappings":"0hBAgBA,MAAMA,EAAU,CACf,gBACA,SACA,YACA,SACA,QACA,WACA,UACA,OACA,UACA,YACA,YACA,QACA,QACA,YACA,QACA,QACA,WACA,cACA,YACA,WACA,UACA,UACA,UACA,UACA,UACA,UACA,SACA,UACA,SACA,UACA,UACA,QACA,cACA,SACA,SACA,WACA,UACA,SACA,QACA,SACA,cACA,SACA,UACA,iBACA,QACA,UACA,eACA,OACD,EAEMC,EAAW,IAAM,CACtB,KAAM,CAACC,EAAOC,CAAQ,EAAIC,EAAM,SAAwB,EAElDC,EAAkBC,EAAuC,IAAI,EAE7DC,EAAc,IAAM,QACzBC,EAAAH,EAAgB,UAAhB,MAAAG,EAAyB,gBAC1B,EAGC,OAAAC,EAAA,KAAC,MAAI,CAAA,UAAU,OACd,SAAA,CAAAC,EAAA,IAACC,EAAA,CACA,IAAKN,EACL,sBAAuB,CAAE,MAAO,QAAS,MAAO,OAAQ,EACxD,SAAWH,GAAUC,EAASD,CAAK,EACnC,QAASF,EAAQ,IAAKY,IAAY,CAAE,MAAOA,EAAQ,MAAOA,GAAS,CAAA,CACpE,EACAH,EAAAA,KAAC,IAAE,CAAA,UAAU,OAAO,SAAA,CAAA,mBACFC,EAAA,IAAA,OAAA,CAAM,SAAK,KAAA,UAAUR,CAAK,CAAE,CAAA,CAAA,EAC9C,EACCQ,EAAA,IAAAG,EAAA,CAAO,QAASN,EAAa,SAAe,iBAAA,CAAA,CAAA,EAC9C,CAEF,EAGSN,EAAS,KAAK,EAAE"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{j as i}from"../../assets/jsx-runtime-D_zvdyIk.js";import{v as u,d as h,i as l,r as c,s as n,g as s,f as o}from"../../assets/vi.B-PuvDzu-CCLEoytE.js";import{A as r}from"./autocomplete.js";import"react";import"react-dom";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";const a=[{value:"apple",label:"Apple"},{value:"banana",label:"Banana"},{value:"orange",label:"Orange"}],p=u.fn();h("Autocomplete Component",()=>{l("renders the input field with a placeholder",()=>{c(i.jsx(r,{options:a,placeholder:"Search fruits...",onSelect:p}));const t=n.getByPlaceholderText(/search fruits.../i);s(t).toBeInTheDocument()}),l("renders all suggestions initially when the input is focused",()=>{c(i.jsx(r,{options:a,onSelect:p}));const t=n.getByPlaceholderText(/search.../i);o.focus(t);const e=n.getAllByRole("option");s(e).toHaveLength(a.length),s(e[0]).toHaveTextContent("Apple"),s(e[1]).toHaveTextContent("Banana"),s(e[2]).toHaveTextContent("Orange")}),l("calls onSelect with the selected value when a suggestion is clicked",()=>{const t=u.fn();c(i.jsx(r,{options:a,onSelect:t}));const e=n.getByPlaceholderText(/search.../i);o.focus(e);const g=n.getByText(/banana/i);o.click(g),s(t).toHaveBeenCalledWith(a[1])}),l("updates the input value when a suggestion is clicked",()=>{c(i.jsx(r,{options:a,onSelect:p}));const t=n.getByPlaceholderText(/search.../i);o.focus(t);const e=n.getByText(/orange/i);o.click(e),s(t).toHaveValue("Orange")}),l("navigates suggestions with keyboard (ArrowDown, ArrowUp, Enter)",()=>{const t=u.fn();c(i.jsx(r,{options:a,onSelect:t}));const e=n.getByPlaceholderText(/search.../i);o.focus(e),o.keyDown(e,{key:"ArrowDown"}),o.keyDown(e,{key:"ArrowDown"}),o.keyDown(e,{key:"Enter"}),s(t).toHaveBeenCalledWith(a[1]),s(e).toHaveValue("Banana")}),l("closes suggestions when Escape is pressed",()=>{c(i.jsx(r,{options:a,onSelect:p}));const t=n.getByPlaceholderText(/search.../i);o.focus(t),o.keyDown(t,{key:"Escape"});const e=n.queryAllByRole("option");s(e).toHaveLength(0)})});
|
|
2
|
+
//# sourceMappingURL=autocomplete.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"autocomplete.test.js","sources":["../../../src/components/autocomplete/autocomplete.test.tsx"],"sourcesContent":["// organize-imports-ignore\nimport { render, screen, fireEvent } from '@testing-library/react'\nimport { describe, it, expect, vi } from 'vitest'\nimport { Autocomplete } from './autocomplete'\nimport React from 'react'\n\nconst options = [\n\t{ value: 'apple', label: 'Apple' },\n\t{ value: 'banana', label: 'Banana' },\n\t{ value: 'orange', label: 'Orange' },\n]\n\nconst onSelectMock = vi.fn()\n\ndescribe('Autocomplete Component', () => {\n\tit('renders the input field with a placeholder', () => {\n\t\trender(\n\t\t\t<Autocomplete\n\t\t\t\toptions={options}\n\t\t\t\tplaceholder=\"Search fruits...\"\n\t\t\t\tonSelect={onSelectMock}\n\t\t\t/>\n\t\t)\n\t\tconst input = screen.getByPlaceholderText(/search fruits.../i)\n\t\texpect(input).toBeInTheDocument()\n\t})\n\n\tit('renders all suggestions initially when the input is focused', () => {\n\t\trender(<Autocomplete options={options} onSelect={onSelectMock} />)\n\t\tconst input = screen.getByPlaceholderText(/search.../i)\n\t\tfireEvent.focus(input)\n\n\t\tconst suggestionList = screen.getAllByRole('option')\n\t\texpect(suggestionList).toHaveLength(options.length)\n\t\texpect(suggestionList[0]).toHaveTextContent('Apple')\n\t\texpect(suggestionList[1]).toHaveTextContent('Banana')\n\t\texpect(suggestionList[2]).toHaveTextContent('Orange')\n\t})\n\n\tit('calls onSelect with the selected value when a suggestion is clicked', () => {\n\t\tconst onSelect = vi.fn()\n\t\trender(<Autocomplete options={options} onSelect={onSelect} />)\n\t\tconst input = screen.getByPlaceholderText(/search.../i)\n\t\tfireEvent.focus(input)\n\n\t\tconst suggestion = screen.getByText(/banana/i)\n\t\tfireEvent.click(suggestion)\n\n\t\texpect(onSelect).toHaveBeenCalledWith(options[1])\n\t})\n\n\tit('updates the input value when a suggestion is clicked', () => {\n\t\trender(<Autocomplete options={options} onSelect={onSelectMock} />)\n\t\tconst input = screen.getByPlaceholderText(/search.../i)\n\t\tfireEvent.focus(input)\n\n\t\tconst suggestion = screen.getByText(/orange/i)\n\t\tfireEvent.click(suggestion)\n\n\t\texpect(input).toHaveValue('Orange')\n\t})\n\n\tit('navigates suggestions with keyboard (ArrowDown, ArrowUp, Enter)', () => {\n\t\tconst onSelect = vi.fn()\n\t\trender(<Autocomplete options={options} onSelect={onSelect} />)\n\t\tconst input = screen.getByPlaceholderText(/search.../i)\n\t\tfireEvent.focus(input)\n\n\t\tfireEvent.keyDown(input, { key: 'ArrowDown' })\n\t\tfireEvent.keyDown(input, { key: 'ArrowDown' })\n\t\tfireEvent.keyDown(input, { key: 'Enter' })\n\n\t\texpect(onSelect).toHaveBeenCalledWith(options[1])\n\t\texpect(input).toHaveValue('Banana')\n\t})\n\n\tit('closes suggestions when Escape is pressed', () => {\n\t\trender(<Autocomplete options={options} onSelect={onSelectMock} />)\n\t\tconst input = screen.getByPlaceholderText(/search.../i)\n\t\tfireEvent.focus(input)\n\n\t\tfireEvent.keyDown(input, { key: 'Escape' })\n\t\tconst suggestions = screen.queryAllByRole('option')\n\t\texpect(suggestions).toHaveLength(0)\n\t})\n})"],"names":["options","onSelectMock","vi","describe","it","render","jsx","Autocomplete","input","screen","expect","fireEvent","suggestionList","onSelect","suggestion","suggestions"],"mappings":"sdAMA,MAAMA,EAAU,CACf,CAAE,MAAO,QAAS,MAAO,OAAQ,EACjC,CAAE,MAAO,SAAU,MAAO,QAAS,EACnC,CAAE,MAAO,SAAU,MAAO,QAAS,CACpC,EAEMC,EAAeC,EAAG,GAAG,EAE3BC,EAAS,yBAA0B,IAAM,CACxCC,EAAG,6CAA8C,IAAM,CACtDC,EACCC,EAAA,IAACC,EAAA,CACA,QAAAP,EACA,YAAY,mBACZ,SAAUC,CAAA,CAAA,CAEZ,EACM,MAAAO,EAAQC,EAAO,qBAAqB,mBAAmB,EACtDC,EAAAF,CAAK,EAAE,kBAAkB,CAAA,CAChC,EAEDJ,EAAG,8DAA+D,IAAM,CACvEC,EAAQC,EAAA,IAAAC,EAAA,CAAa,QAAAP,EAAkB,SAAUC,EAAc,CAAE,EAC3D,MAAAO,EAAQC,EAAO,qBAAqB,YAAY,EACtDE,EAAU,MAAMH,CAAK,EAEf,MAAAI,EAAiBH,EAAO,aAAa,QAAQ,EACnDC,EAAOE,CAAc,EAAE,aAAaZ,EAAQ,MAAM,EAClDU,EAAOE,EAAe,CAAC,CAAC,EAAE,kBAAkB,OAAO,EACnDF,EAAOE,EAAe,CAAC,CAAC,EAAE,kBAAkB,QAAQ,EACpDF,EAAOE,EAAe,CAAC,CAAC,EAAE,kBAAkB,QAAQ,CAAA,CACpD,EAEDR,EAAG,sEAAuE,IAAM,CACzE,MAAAS,EAAWX,EAAG,GAAG,EACvBG,EAAQC,EAAA,IAAAC,EAAA,CAAa,QAAAP,EAAkB,SAAAa,CAAoB,CAAA,CAAE,EACvD,MAAAL,EAAQC,EAAO,qBAAqB,YAAY,EACtDE,EAAU,MAAMH,CAAK,EAEf,MAAAM,EAAaL,EAAO,UAAU,SAAS,EAC7CE,EAAU,MAAMG,CAAU,EAE1BJ,EAAOG,CAAQ,EAAE,qBAAqBb,EAAQ,CAAC,CAAC,CAAA,CAChD,EAEDI,EAAG,uDAAwD,IAAM,CAChEC,EAAQC,EAAA,IAAAC,EAAA,CAAa,QAAAP,EAAkB,SAAUC,EAAc,CAAE,EAC3D,MAAAO,EAAQC,EAAO,qBAAqB,YAAY,EACtDE,EAAU,MAAMH,CAAK,EAEf,MAAAM,EAAaL,EAAO,UAAU,SAAS,EAC7CE,EAAU,MAAMG,CAAU,EAEnBJ,EAAAF,CAAK,EAAE,YAAY,QAAQ,CAAA,CAClC,EAEDJ,EAAG,kEAAmE,IAAM,CACrE,MAAAS,EAAWX,EAAG,GAAG,EACvBG,EAAQC,EAAA,IAAAC,EAAA,CAAa,QAAAP,EAAkB,SAAAa,CAAoB,CAAA,CAAE,EACvD,MAAAL,EAAQC,EAAO,qBAAqB,YAAY,EACtDE,EAAU,MAAMH,CAAK,EAErBG,EAAU,QAAQH,EAAO,CAAE,IAAK,YAAa,EAC7CG,EAAU,QAAQH,EAAO,CAAE,IAAK,YAAa,EAC7CG,EAAU,QAAQH,EAAO,CAAE,IAAK,QAAS,EAEzCE,EAAOG,CAAQ,EAAE,qBAAqBb,EAAQ,CAAC,CAAC,EACzCU,EAAAF,CAAK,EAAE,YAAY,QAAQ,CAAA,CAClC,EAEDJ,EAAG,4CAA6C,IAAM,CACrDC,EAAQC,EAAA,IAAAC,EAAA,CAAa,QAAAP,EAAkB,SAAUC,EAAc,CAAE,EAC3D,MAAAO,EAAQC,EAAO,qBAAqB,YAAY,EACtDE,EAAU,MAAMH,CAAK,EAErBG,EAAU,QAAQH,EAAO,CAAE,IAAK,SAAU,EACpC,MAAAO,EAAcN,EAAO,eAAe,QAAQ,EAC3CC,EAAAK,CAAW,EAAE,aAAa,CAAC,CAAA,CAClC,CACF,CAAC"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import"./autocomplete.js";import"../../assets/jsx-runtime-D_zvdyIk.js";import"../../lib/utils/cn.js";import"clsx";import"tailwind-merge";import"date-fns-tz";import"../../lib/utils/string.js";import"lucide-react";import"react";import"../adaptive-input/adaptive-input.js";import"../input/input.js";import"class-variance-authority";
|
|
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 r}from"../../assets/jsx-runtime-D_zvdyIk.js";import*as a from"@radix-ui/react-avatar";import*as t from"react";import{c as m}from"../../lib/utils/cn.js";import"clsx";import"tailwind-merge";const o=t.forwardRef(({className:e,...s},l)=>r.jsx(a.Root,{ref:l,className:m("relative flex h-10 w-10 shrink-0 overflow-hidden rounded-full",e),...s}));o.displayName=a.Root.displayName;const i=t.forwardRef(({className:e,...s},l)=>r.jsx(a.Image,{ref:l,className:m("aspect-square h-full w-full",e),...s}));i.displayName=a.Image.displayName;const f=t.forwardRef(({className:e,...s},l)=>r.jsx(a.Fallback,{ref:l,className:m("flex h-full w-full items-center justify-center rounded-full bg-muted",e),...s}));f.displayName=a.Fallback.displayName;export{o as A,i as a,f as b};
|
|
2
|
+
//# sourceMappingURL=avatar.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"avatar.js","sources":["../../../src/components/avatar/avatar.tsx"],"sourcesContent":["import * as AvatarPrimitive from '@radix-ui/react-avatar'\nimport * as React from 'react'\n\nimport { cn } from '@/lib/utils/cn'\n\nconst Avatar = React.forwardRef<\n\tReact.ElementRef<typeof AvatarPrimitive.Root>,\n\tReact.ComponentPropsWithoutRef<typeof AvatarPrimitive.Root>\n>(({ className, ...props }, ref) => (\n\t<AvatarPrimitive.Root\n\t\tref={ref}\n\t\tclassName={cn(\n\t\t\t'relative flex h-10 w-10 shrink-0 overflow-hidden rounded-full',\n\t\t\tclassName,\n\t\t)}\n\t\t{...props}\n\t/>\n))\nAvatar.displayName = AvatarPrimitive.Root.displayName\n\nconst AvatarImage = React.forwardRef<\n\tReact.ElementRef<typeof AvatarPrimitive.Image>,\n\tReact.ComponentPropsWithoutRef<typeof AvatarPrimitive.Image>\n>(({ className, ...props }, ref) => (\n\t<AvatarPrimitive.Image\n\t\tref={ref}\n\t\tclassName={cn('aspect-square h-full w-full', className)}\n\t\t{...props}\n\t/>\n))\nAvatarImage.displayName = AvatarPrimitive.Image.displayName\n\nconst AvatarFallback = React.forwardRef<\n\tReact.ElementRef<typeof AvatarPrimitive.Fallback>,\n\tReact.ComponentPropsWithoutRef<typeof AvatarPrimitive.Fallback>\n>(({ className, ...props }, ref) => (\n\t<AvatarPrimitive.Fallback\n\t\tref={ref}\n\t\tclassName={cn(\n\t\t\t'flex h-full w-full items-center justify-center rounded-full bg-muted',\n\t\t\tclassName,\n\t\t)}\n\t\t{...props}\n\t/>\n))\nAvatarFallback.displayName = AvatarPrimitive.Fallback.displayName\n\nexport { Avatar, AvatarFallback, AvatarImage }\n"],"names":["Avatar","React","className","props","ref","jsx","AvatarPrimitive","cn","AvatarImage","AvatarFallback"],"mappings":"wMAKM,MAAAA,EAASC,EAAM,WAGnB,CAAC,CAAE,UAAAC,EAAW,GAAGC,CAAM,EAAGC,IAC3BC,EAAA,IAACC,EAAgB,KAAhB,CACA,IAAAF,EACA,UAAWG,EACV,gEACAL,CACD,EACC,GAAGC,CAAA,CACL,CACA,EACDH,EAAO,YAAcM,EAAgB,KAAK,YAEpC,MAAAE,EAAcP,EAAM,WAGxB,CAAC,CAAE,UAAAC,EAAW,GAAGC,CAAM,EAAGC,IAC3BC,EAAA,IAACC,EAAgB,MAAhB,CACA,IAAAF,EACA,UAAWG,EAAG,8BAA+BL,CAAS,EACrD,GAAGC,CAAA,CACL,CACA,EACDK,EAAY,YAAcF,EAAgB,MAAM,YAE1C,MAAAG,EAAiBR,EAAM,WAG3B,CAAC,CAAE,UAAAC,EAAW,GAAGC,CAAM,EAAGC,IAC3BC,EAAA,IAACC,EAAgB,SAAhB,CACA,IAAAF,EACA,UAAWG,EACV,uEACAL,CACD,EACC,GAAGC,CAAA,CACL,CACA,EACDM,EAAe,YAAcH,EAAgB,SAAS"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{j as a}from"../../assets/jsx-runtime-D_zvdyIk.js";import{A as r,a as t,b as i}from"./avatar.js";import"@radix-ui/react-avatar";import"react";import"../../lib/utils/cn.js";import"clsx";import"tailwind-merge";const e=()=>a.jsxs(r,{className:"w-24 h-24",children:[a.jsx(t,{src:"https://upload.wikimedia.org/wikipedia/commons/7/7c/Profile_avatar_placeholder_large.png?20150327203541",alt:"User avatar"}),a.jsx(i,{children:"NS"})]});e.bind({});
|
|
2
|
+
//# sourceMappingURL=avatar.stories.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"avatar.stories.js","sources":["../../../src/components/avatar/avatar.stories.tsx"],"sourcesContent":["// organize-imports-ignore\nimport React from 'react'\nimport type { Meta, StoryObj } from '@storybook/react'\n\nimport { Avatar, AvatarFallback, AvatarImage } from './avatar'\n\nconst meta: Meta<typeof Avatar> = {\n\tcomponent: Avatar,\n}\n\nexport default meta\ntype Story = StoryObj<typeof Avatar>\n\nconst Template = () => {\n\treturn (\n\t\t<Avatar className=\"w-24 h-24\">\n\t\t\t<AvatarImage\n\t\t\t\tsrc=\"https://upload.wikimedia.org/wikipedia/commons/7/7c/Profile_avatar_placeholder_large.png?20150327203541\"\n\t\t\t\talt=\"User avatar\"\n\t\t\t/>\n\t\t\t<AvatarFallback>NS</AvatarFallback>\n\t\t</Avatar>\n\t)\n}\n\nexport const Default: Story = {\n\trender: Template.bind({}),\n\targs: {},\n}\n"],"names":["Template","jsxs","Avatar","jsx","AvatarImage","AvatarFallback"],"mappings":"sNAaA,MAAMA,EAAW,IAEfC,EAAA,KAACC,EAAO,CAAA,UAAU,YACjB,SAAA,CAAAC,EAAA,IAACC,EAAA,CACA,IAAI,0GACJ,IAAI,aAAA,CACL,EACAD,EAAAA,IAACE,GAAe,SAAE,IAAA,CAAA,CAAA,EACnB,EAKOL,EAAS,KAAK,EAAE"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { VariantProps } from 'class-variance-authority';
|
|
2
2
|
import * as React from 'react';
|
|
3
3
|
declare const badgeVariants: (props?: ({
|
|
4
4
|
variant?: "default" | "destructive" | "outline" | "secondary" | null | undefined;
|
|
5
|
-
} & import(
|
|
5
|
+
} & import('class-variance-authority/dist/types').ClassProp) | undefined) => string;
|
|
6
6
|
export interface BadgeProps extends React.HTMLAttributes<HTMLDivElement>, VariantProps<typeof badgeVariants> {
|
|
7
7
|
}
|
|
8
8
|
declare function Badge({ className, variant, ...props }: BadgeProps): import("react/jsx-runtime").JSX.Element;
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{j as o}from"../../assets/jsx-runtime-D_zvdyIk.js";import{cva as n}from"class-variance-authority";import{c as a}from"../../lib/utils/cn.js";import"date-fns-tz";import"clsx";import"tailwind-merge";const s=n("inline-flex items-center rounded-md border px-2.5 py-0.5 text-xs font-semibold transition-colors focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2",{variants:{variant:{default:"border-transparent bg-primary text-primary-foreground shadow hover:bg-primary/80",secondary:"border-transparent bg-secondary text-secondary-foreground hover:bg-secondary/80",destructive:"border-transparent bg-destructive text-destructive-foreground shadow hover:bg-destructive/80",outline:"text-foreground"}},defaultVariants:{variant:"default"}});function g({className:r,variant:t,...e}){return o.jsx("div",{className:a(s({variant:t}),r),...e})}export{g as B};
|
|
2
|
+
//# sourceMappingURL=badge.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"badge.js","sources":["../../../src/components/badge/badge.tsx"],"sourcesContent":["import { cva, type VariantProps } from 'class-variance-authority'\nimport * as React from 'react'\n\nimport { cn } from '@/lib/utils'\n\nconst badgeVariants = cva(\n\t'inline-flex items-center rounded-md border px-2.5 py-0.5 text-xs font-semibold transition-colors focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2',\n\t{\n\t\tvariants: {\n\t\t\tvariant: {\n\t\t\t\tdefault:\n\t\t\t\t\t'border-transparent bg-primary text-primary-foreground shadow hover:bg-primary/80',\n\t\t\t\tsecondary:\n\t\t\t\t\t'border-transparent bg-secondary text-secondary-foreground hover:bg-secondary/80',\n\t\t\t\tdestructive:\n\t\t\t\t\t'border-transparent bg-destructive text-destructive-foreground shadow hover:bg-destructive/80',\n\t\t\t\toutline: 'text-foreground',\n\t\t\t},\n\t\t},\n\t\tdefaultVariants: {\n\t\t\tvariant: 'default',\n\t\t},\n\t},\n)\n\nexport interface BadgeProps\n\textends React.HTMLAttributes<HTMLDivElement>,\n\t\tVariantProps<typeof badgeVariants> {}\n\nfunction Badge({ className, variant, ...props }: BadgeProps) {\n\treturn <div className={cn(badgeVariants({ variant }), className)} {...props} />\n}\n\nexport { Badge, badgeVariants }\n"],"names":["badgeVariants","cva","Badge","className","variant","props","jsx","cn"],"mappings":"0MAKA,MAAMA,EAAgBC,EACrB,uKACA,CACC,SAAU,CACT,QAAS,CACR,QACC,mFACD,UACC,kFACD,YACC,+FACD,QAAS,iBAAA,CAEX,EACA,gBAAiB,CAChB,QAAS,SAAA,CACV,CAEF,EAMA,SAASC,EAAM,CAAE,UAAAC,EAAW,QAAAC,EAAS,GAAGC,GAAqB,CAC5D,OAAQC,MAAA,MAAA,CAAI,UAAWC,EAAGP,EAAc,CAAE,QAAAI,CAAS,CAAA,EAAGD,CAAS,EAAI,GAAGE,CAAO,CAAA,CAC9E"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{j as r}from"../../assets/jsx-runtime-D_zvdyIk.js";import{B as o}from"./badge.js";import"class-variance-authority";import"../../lib/utils/cn.js";import"clsx";import"tailwind-merge";import"date-fns-tz";const s=t=>{const i=["default","secondary","destructive","outline"];return r.jsx("div",{className:"flex gap-2",children:Object.values(i).map(e=>r.jsx(o,{...t,variant:e,children:e}))})};s.bind({});
|
|
2
|
+
//# sourceMappingURL=badge.stories.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"badge.stories.js","sources":["../../../src/components/badge/badge.stories.tsx"],"sourcesContent":["// organize-imports-ignore\nimport React from 'react'\nimport type { Meta, StoryObj } from '@storybook/react'\n\nimport { Badge, BadgeProps, badgeVariants } from './badge'\n\nconst meta: Meta<typeof Badge> = {\n\tcomponent: Badge,\n}\n\nexport default meta\ntype Story = StoryObj<typeof Badge>\n\nconst Template = (args: BadgeProps) => {\n\tconst variants = ['default', 'secondary', 'destructive', 'outline']\n\treturn (\n\t\t<div className=\"flex gap-2\">\n\t\t\t{Object.values(variants).map((variant) => (\n\t\t\t\t<Badge {...args} variant={variant as BadgeProps['variant']}>\n\t\t\t\t\t{variant}\n\t\t\t\t</Badge>\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","args","variants","variant","Badge"],"mappings":"+MAaA,MAAMA,EAAYC,GAAqB,CACtC,MAAMC,EAAW,CAAC,UAAW,YAAa,cAAe,SAAS,EAClE,aACE,MAAI,CAAA,UAAU,aACb,SAAO,OAAA,OAAOA,CAAQ,EAAE,IAAKC,SAC5BC,EAAO,CAAA,GAAGH,EAAM,QAAAE,EACf,SAAAA,EACF,CACA,EACF,CAEF,EAGSH,EAAS,KAAK,EAAE"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
|
-
import * as React from 'react';
|
|
2
1
|
import { ButtonTheme, ButtonThemeVariants, buttonVariants } from './button.types';
|
|
2
|
+
import * as React from 'react';
|
|
3
3
|
export interface ButtonProps extends React.ButtonHTMLAttributes<HTMLButtonElement>, ButtonThemeVariants, Partial<{
|
|
4
4
|
theme: ButtonTheme;
|
|
5
5
|
}> {
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{j as t}from"../../assets/jsx-runtime-D_zvdyIk.js";import{c as u}from"../../lib/utils/cn.js";import"date-fns-tz";import{m as h}from"../../lib/utils/merge-objects.js";import{Slot as x}from"@radix-ui/react-slot";import{cva as j}from"cva-extended";import*as w from"react";import{a as e}from"./button.types.js";import"clsx";import"tailwind-merge";const b=w.forwardRef(({className:r,variant:a="default",size:m="md",rounded:l=!1,isLoading:s=!1,asChild:c=!1,theme:i=e,...o},n)=>{const f=c?x:"button",d=h(i,e),p=j(d);return t.jsxs(f,{className:u(p({variant:a,size:m,rounded:l,className:r})),ref:n,...o,disabled:s||o.disabled,children:[s&&t.jsxs("svg",{className:"animate-spin -ml-1 h-5 w-5",xmlns:"http://www.w3.org/2000/svg",fill:"none",viewBox:"0 0 24 24","data-testid":"loader-svg",children:[t.jsx("circle",{className:"opacity-25",cx:"12",cy:"12",r:"10",stroke:"currentColor",strokeWidth:"4"}),t.jsx("path",{className:"opacity-75",fill:"currentColor",d:"M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z"})]}),o.children]})});b.displayName="Button";export{b as B};
|
|
2
|
+
//# sourceMappingURL=button.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"button.js","sources":["../../../src/components/button/button.tsx"],"sourcesContent":["import { cn, mergeObjects } from '@/lib/utils'\nimport { Slot } from '@radix-ui/react-slot'\nimport { cva } from 'cva-extended'\nimport * as React from 'react'\nimport {\n\tButtonTheme,\n\tbuttonThemeDefaults,\n\tButtonThemeVariants,\n\tbuttonVariants,\n} from './button.types'\n\nexport interface ButtonProps\n\textends React.ButtonHTMLAttributes<HTMLButtonElement>,\n\t\tButtonThemeVariants,\n\t\tPartial<{ theme: ButtonTheme }> {\n\tisLoading?: boolean\n\tasChild?: boolean\n}\n\nconst Button = React.forwardRef<HTMLButtonElement, ButtonProps>(\n\t(\n\t\t{\n\t\t\tclassName,\n\t\t\tvariant = 'default',\n\t\t\tsize = 'md',\n\t\t\trounded = false,\n\t\t\tisLoading = false,\n\t\t\tasChild = false,\n\t\t\ttheme = buttonThemeDefaults,\n\t\t\t...props\n\t\t},\n\t\tref,\n\t) => {\n\t\tconst Comp = asChild ? Slot : 'button'\n\n\t\tconst t = mergeObjects<ButtonTheme, ButtonTheme>(\n\t\t\ttheme as ButtonTheme,\n\t\t\tbuttonThemeDefaults as ButtonTheme,\n\t\t)\n\n\t\tconst buttonThemeCVA = cva(t)\n\n\t\treturn (\n\t\t\t<Comp\n\t\t\t\tclassName={cn(buttonThemeCVA({ variant, size, rounded, className }))}\n\t\t\t\tref={ref}\n\t\t\t\t{...props}\n\t\t\t\tdisabled={isLoading || props.disabled}\n\t\t\t>\n\t\t\t\t{isLoading && (\n\t\t\t\t\t<svg\n\t\t\t\t\t\tclassName=\"animate-spin -ml-1 h-5 w-5\"\n\t\t\t\t\t\txmlns=\"http://www.w3.org/2000/svg\"\n\t\t\t\t\t\tfill=\"none\"\n\t\t\t\t\t\tviewBox=\"0 0 24 24\"\n\t\t\t\t\t\tdata-testid=\"loader-svg\"\n\t\t\t\t\t>\n\t\t\t\t\t\t<circle\n\t\t\t\t\t\t\tclassName=\"opacity-25\"\n\t\t\t\t\t\t\tcx=\"12\"\n\t\t\t\t\t\t\tcy=\"12\"\n\t\t\t\t\t\t\tr=\"10\"\n\t\t\t\t\t\t\tstroke=\"currentColor\"\n\t\t\t\t\t\t\tstrokeWidth=\"4\"\n\t\t\t\t\t\t/>\n\t\t\t\t\t\t<path\n\t\t\t\t\t\t\tclassName=\"opacity-75\"\n\t\t\t\t\t\t\tfill=\"currentColor\"\n\t\t\t\t\t\t\td=\"M4 12a8 8 0 018-8V0C5.373 0 0 5.373 0 12h4zm2 5.291A7.962 7.962 0 014 12H0c0 3.042 1.135 5.824 3 7.938l3-2.647z\"\n\t\t\t\t\t\t/>\n\t\t\t\t\t</svg>\n\t\t\t\t)}\n\t\t\t\t{props.children}\n\t\t\t</Comp>\n\t\t)\n\t},\n)\nButton.displayName = 'Button'\n\nexport { Button, buttonVariants }\n"],"names":["Button","React","className","variant","size","rounded","isLoading","asChild","theme","buttonThemeDefaults","props","ref","Comp","Slot","t","mergeObjects","buttonThemeCVA","cva","jsxs","cn","jsx"],"mappings":"6VAmBA,MAAMA,EAASC,EAAM,WACpB,CACC,CACC,UAAAC,EACA,QAAAC,EAAU,UACV,KAAAC,EAAO,KACP,QAAAC,EAAU,GACV,UAAAC,EAAY,GACZ,QAAAC,EAAU,GACV,MAAAC,EAAQC,EACR,GAAGC,GAEJC,IACI,CACE,MAAAC,EAAOL,EAAUM,EAAO,SAExBC,EAAIC,EACTP,EACAC,CACD,EAEMO,EAAiBC,EAAIH,CAAC,EAG3B,OAAAI,EAAA,KAACN,EAAA,CACA,UAAWO,EAAGH,EAAe,CAAE,QAAAb,EAAS,KAAAC,EAAM,QAAAC,EAAS,UAAAH,CAAU,CAAC,CAAC,EACnE,IAAAS,EACC,GAAGD,EACJ,SAAUJ,GAAaI,EAAM,SAE5B,SAAA,CACAJ,GAAAY,EAAA,KAAC,MAAA,CACA,UAAU,6BACV,MAAM,6BACN,KAAK,OACL,QAAQ,YACR,cAAY,aAEZ,SAAA,CAAAE,EAAA,IAAC,SAAA,CACA,UAAU,aACV,GAAG,KACH,GAAG,KACH,EAAE,KACF,OAAO,eACP,YAAY,GAAA,CACb,EACAA,EAAA,IAAC,OAAA,CACA,UAAU,aACV,KAAK,eACL,EAAE,iHAAA,CAAA,CACH,CAAA,CACD,EAEAV,EAAM,QAAA,CAAA,CACR,CAAA,CAGH,EACAV,EAAO,YAAc"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{j as t}from"../../assets/jsx-runtime-D_zvdyIk.js";import{B as a}from"./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"./button.types.js";const s=["default","secondary","destructive","outline","ghost","link"],n=["sm","md","lg","xl","icon"],o=r=>t.jsx("div",{className:"flex gap-2 flex-wrap",children:Object.values(s).map(e=>t.jsx(a,{...r,variant:e,children:e}))});o.bind({});const l=r=>t.jsx("div",{className:"flex gap-2 flex-wrap",children:Object.values(n).map(e=>t.jsx(a,{...r,size:e,children:e}))});l.bind({});const i=r=>t.jsx("div",{className:"flex gap-2 flex-wrap",children:Object.values(s).map(e=>t.jsx(a,{...r,variant:e,rounded:!0,children:e}))});i.bind({});const d=()=>t.jsx("div",{className:"flex gap-2 flex-wrap",children:Object.values(s).map(r=>t.jsx(a,{isLoading:!0,variant:r,children:r}))});d.bind({});const p=()=>{const r={base:"border-2 shadow-lg rounded p-3",variants:{variant:{default:"bg-black text-white hover:bg-gray-600",secondary:"bg-gray-600 text-white hover:bg-gray-800",destructive:"bg-orange-600 text-white hover:bg-orange-800",outline:"bg-transparent text-black hover:bg-gray-200",ghost:"bg-gray-100 text-black hover:bg-gray-200",link:"text-blue-600 border-none"},size:{sm:"h-auto py-1 px-2",md:"h-auto py-2 px-4",lg:"h-auto py-3 px-6",xl:"h-auto py-4 px-8",icon:"h-10 w-10"},rounded:{true:"rounded-full"}}};return t.jsx("div",{className:"flex gap-2 flex-wrap",children:Object.values(s).map(e=>t.jsx(a,{theme:r,variant:e,className:"capitalize",children:e}))})};p.bind({});
|
|
2
|
+
//# sourceMappingURL=button.stories.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"button.stories.js","sources":["../../../src/components/button/button.stories.tsx"],"sourcesContent":["// organize-imports-ignore\nimport React from 'react'\nimport type { Meta, StoryObj } from '@storybook/react'\nimport { Button, ButtonProps } from './button'\nimport { ButtonThemeProps } from './button.types'\n\nconst meta: Meta<typeof Button> = {\n\tcomponent: Button,\n}\n\nexport default meta\ntype Story = StoryObj<typeof Button>\n\nconst variants: Array<ButtonProps['variant']> = [\n\t'default',\n\t'secondary',\n\t'destructive',\n\t'outline',\n\t'ghost',\n\t'link',\n]\n\nconst sizes: Array<ButtonProps['size']> = ['sm', 'md', 'lg', 'xl', 'icon']\n\nconst Template = (args: ButtonProps) => {\n\treturn (\n\t\t<div className=\"flex gap-2 flex-wrap\">\n\t\t\t{Object.values(variants).map((variant) => (\n\t\t\t\t<Button {...args} variant={variant as ButtonProps['variant']}>\n\t\t\t\t\t{variant}\n\t\t\t\t</Button>\n\t\t\t))}\n\t\t</div>\n\t)\n}\n\nexport const Variants: Story = {\n\trender: Template.bind({}),\n\targs: {},\n}\n\nconst SizesTemplate = (args: ButtonProps) => {\n\treturn (\n\t\t<div className=\"flex gap-2 flex-wrap\">\n\t\t\t{Object.values(sizes).map((size) => (\n\t\t\t\t<Button {...args} size={size as ButtonProps['size']}>\n\t\t\t\t\t{size}\n\t\t\t\t</Button>\n\t\t\t))}\n\t\t</div>\n\t)\n}\n\nexport const Sizes: Story = {\n\trender: SizesTemplate.bind({}),\n\targs: {},\n}\n\nconst RoundedTemplate = (args: ButtonProps) => {\n\treturn (\n\t\t<div className=\"flex gap-2 flex-wrap\">\n\t\t\t{Object.values(variants).map((variant) => (\n\t\t\t\t<Button {...args} variant={variant as ButtonProps['variant']} rounded>\n\t\t\t\t\t{variant}\n\t\t\t\t</Button>\n\t\t\t))}\n\t\t</div>\n\t)\n}\n\nexport const Rounded: Story = {\n\trender: RoundedTemplate.bind({}),\n\targs: {},\n}\n\nconst TemplateIsLoading = () => {\n\treturn (\n\t\t<div className=\"flex gap-2 flex-wrap\">\n\t\t\t{Object.values(variants).map((variant) => (\n\t\t\t\t<Button isLoading variant={variant as ButtonProps['variant']}>\n\t\t\t\t\t{variant}\n\t\t\t\t</Button>\n\t\t\t))}\n\t\t</div>\n\t)\n}\n\nexport const Loading: Story = {\n\trender: TemplateIsLoading.bind({}),\n\targs: {},\n}\n\nconst TemplateCustomTheme = () => {\n\tconst customTheme = {\n\t\tbase: 'border-2 shadow-lg rounded p-3',\n\t\tvariants: {\n\t\t\tvariant: {\n\t\t\t\tdefault: 'bg-black text-white hover:bg-gray-600',\n\t\t\t\tsecondary: 'bg-gray-600 text-white hover:bg-gray-800',\n\t\t\t\tdestructive: 'bg-orange-600 text-white hover:bg-orange-800',\n\t\t\t\toutline: 'bg-transparent text-black hover:bg-gray-200',\n\t\t\t\tghost: 'bg-gray-100 text-black hover:bg-gray-200',\n\t\t\t\tlink: 'text-blue-600 border-none',\n\t\t\t},\n\t\t\tsize: {\n\t\t\t\tsm: 'h-auto py-1 px-2',\n\t\t\t\tmd: 'h-auto py-2 px-4',\n\t\t\t\tlg: 'h-auto py-3 px-6',\n\t\t\t\txl: 'h-auto py-4 px-8',\n\t\t\t\ticon: 'h-10 w-10',\n\t\t\t},\n rounded: {\n true: 'rounded-full'\n }\n\t\t},\n\t}\n\n\treturn (\n\t\t<div className=\"flex gap-2 flex-wrap\">\n\t\t\t{Object.values(variants).map((variant) => (\n\t\t\t\t<Button\n\t\t\t\t\ttheme={customTheme}\n\t\t\t\t\tvariant={variant as ButtonProps['variant']}\n\t\t\t\t\tclassName=\"capitalize\"\n\t\t\t\t>\n\t\t\t\t\t{variant}\n\t\t\t\t</Button>\n\t\t\t))}\n\t\t</div>\n\t)\n}\n\nexport const CustomTheme: Story = {\n\trender: TemplateCustomTheme.bind({}),\n\targs: {},\n}\n"],"names":["variants","sizes","Template","args","variant","Button","SizesTemplate","size","RoundedTemplate","jsx","TemplateIsLoading","TemplateCustomTheme","customTheme"],"mappings":"kTAaA,MAAMA,EAA0C,CAC/C,UACA,YACA,cACA,UACA,QACA,MACD,EAEMC,EAAoC,CAAC,KAAM,KAAM,KAAM,KAAM,MAAM,EAEnEC,EAAYC,SAEf,MAAI,CAAA,UAAU,uBACb,SAAO,OAAA,OAAOH,CAAQ,EAAE,IAAKI,SAC5BC,EAAQ,CAAA,GAAGF,EAAM,QAAAC,EAChB,SAAAA,EACF,CACA,EACF,EAKOF,EAAS,KAAK,EAAE,EAIzB,MAAMI,EAAiBH,SAEpB,MAAI,CAAA,UAAU,uBACb,SAAO,OAAA,OAAOF,CAAK,EAAE,IAAKM,SACzBF,EAAQ,CAAA,GAAGF,EAAM,KAAAI,EAChB,SAAAA,EACF,CACA,EACF,EAKOD,EAAc,KAAK,EAAE,EAI9B,MAAME,EAAmBL,GAEvBM,MAAC,OAAI,UAAU,uBACb,gBAAO,OAAOT,CAAQ,EAAE,IAAKI,GAC5BK,EAAAA,IAAAJ,EAAA,CAAQ,GAAGF,EAAM,QAAAC,EAA4C,QAAO,GACnE,SAAAA,CACF,CAAA,CACA,CACF,CAAA,EAKOI,EAAgB,KAAK,EAAE,EAIhC,MAAME,EAAoB,UAEvB,MAAI,CAAA,UAAU,uBACb,SAAO,OAAA,OAAOV,CAAQ,EAAE,IAAKI,SAC5BC,EAAO,CAAA,UAAS,GAAC,QAAAD,EAChB,SAAAA,EACF,CACA,EACF,EAKOM,EAAkB,KAAK,EAAE,EAIlC,MAAMC,EAAsB,IAAM,CACjC,MAAMC,EAAc,CACnB,KAAM,iCACN,SAAU,CACT,QAAS,CACR,QAAS,wCACT,UAAW,2CACX,YAAa,+CACb,QAAS,8CACT,MAAO,2CACP,KAAM,2BACP,EACA,KAAM,CACL,GAAI,mBACJ,GAAI,mBACJ,GAAI,mBACJ,GAAI,mBACJ,KAAM,WACP,EACG,QAAS,CACP,KAAM,cAAA,CACR,CAEL,EAGC,OAAAH,EAAA,IAAC,MAAI,CAAA,UAAU,uBACb,SAAA,OAAO,OAAOT,CAAQ,EAAE,IAAKI,GAC7BK,EAAA,IAACJ,EAAA,CACA,MAAOO,EACP,QAAAR,EACA,UAAU,aAET,SAAAA,CAAA,CAEF,CAAA,EACF,CAEF,EAGSO,EAAoB,KAAK,EAAE"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{j as o}from"../../assets/jsx-runtime-D_zvdyIk.js";import{d as l,i as n,r as i,s,g as e,v as d,f as c}from"../../assets/vi.B-PuvDzu-CCLEoytE.js";import{B as a}from"./button.js";import"react";import"react-dom";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"./button.types.js";l("Button Component",()=>{n("renders with default variant and size",()=>{i(o.jsx(a,{children:"Click Me"}));const t=s.getByRole("button",{name:/click me/i});e(t).toBeInTheDocument(),e(t).toHaveClass("bg-primary text-primary-foreground h-9 px-4 py-2")}),n("renders with a custom variant and size",()=>{i(o.jsx(a,{variant:"outline",size:"lg",children:"Outline Button"}));const t=s.getByRole("button",{name:/outline button/i});e(t).toBeInTheDocument(),e(t).toHaveClass("border border-input bg-background h-10 rounded-md px-8")}),n('disables the button when "isLoading" is true',()=>{i(o.jsx(a,{isLoading:!0,children:"Loading..."}));const t=s.getByRole("button",{name:/loading.../i});e(t).toBeDisabled()}),n('displays a spinner when "isLoading" is true',()=>{i(o.jsx(a,{isLoading:!0,children:"Loading..."}));const t=s.getByTestId("loader-svg");e(t).toBeInTheDocument(),e(t).toHaveClass("animate-spin")}),n("calls the onClick handler when clicked",()=>{const t=d.fn();i(o.jsx(a,{onClick:t,children:"Click Me"}));const r=s.getByRole("button",{name:/click me/i});c.click(r),e(t).toHaveBeenCalledTimes(1)}),n("applies additional class names provided through props",()=>{i(o.jsx(a,{className:"custom-class",children:"Click Me"}));const t=s.getByRole("button",{name:/click me/i});e(t).toHaveClass("custom-class")}),n('applies the "disabled" attribute correctly',()=>{i(o.jsx(a,{disabled:!0,children:"Disabled Button"}));const t=s.getByRole("button",{name:/disabled button/i});e(t).toBeDisabled()})});
|
|
2
|
+
//# sourceMappingURL=button.test.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"button.test.js","sources":["../../../src/components/button/button.test.tsx"],"sourcesContent":["// organize-imports-ignore\nimport React from 'react'\nimport { render, screen, fireEvent } from '@testing-library/react'\nimport { describe, it, expect, vi } from 'vitest'\nimport { Button } from './button'\n\ndescribe('Button Component', () => {\n\tit('renders with default variant and size', () => {\n\t\trender(<Button>Click Me</Button>)\n\t\tconst button = screen.getByRole('button', { name: /click me/i })\n\n\t\texpect(button).toBeInTheDocument()\n\t\texpect(button).toHaveClass('bg-primary text-primary-foreground h-9 px-4 py-2')\n\t})\n\n\tit('renders with a custom variant and size', () => {\n\t\trender(\n\t\t\t<Button variant=\"outline\" size=\"lg\">\n\t\t\t\tOutline Button\n\t\t\t</Button>,\n\t\t)\n\t\tconst button = screen.getByRole('button', { name: /outline button/i })\n\n\t\texpect(button).toBeInTheDocument()\n\t\texpect(button).toHaveClass('border border-input bg-background h-10 rounded-md px-8')\n\t})\n\n\t// it('renders as a custom element when \"asChild\" is true', () => {\n\t// \trender(\n\t// \t\t<Button asChild className=\"text-blue-500\">\n\t// \t\t\t<>\n\t// \t\t\t\t<a href=\"/test-link\" data-testid=\"test-link\">\n\t// \t\t\t\t\tLink Button\n\t// \t\t\t\t</a>\n\t// \t\t\t</>\n\t// \t\t</Button>,\n\t// \t)\n\t// \tconst link = screen.getByTestId('test-link')\n\n\t// \texpect(link).toBeInTheDocument()\n\t// \texpect(link).toHaveAttribute('href', '/test-link')\n\t// \texpect(link).toHaveClass('text-blue-500')\n\t// })\n\n\tit('disables the button when \"isLoading\" is true', () => {\n\t\trender(<Button isLoading>Loading...</Button>)\n\t\tconst button = screen.getByRole('button', { name: /loading.../i })\n\n\t\texpect(button).toBeDisabled()\n\t})\n\n\tit('displays a spinner when \"isLoading\" is true', () => {\n\t\trender(<Button isLoading>Loading...</Button>)\n\t\tconst spinner = screen.getByTestId('loader-svg')\n\n\t\texpect(spinner).toBeInTheDocument()\n\t\texpect(spinner).toHaveClass('animate-spin')\n\t})\n\n\tit('calls the onClick handler when clicked', () => {\n\t\tconst handleClick = vi.fn()\n\t\trender(<Button onClick={handleClick}>Click Me</Button>)\n\t\tconst button = screen.getByRole('button', { name: /click me/i })\n\n\t\tfireEvent.click(button)\n\n\t\texpect(handleClick).toHaveBeenCalledTimes(1)\n\t})\n\n\tit('applies additional class names provided through props', () => {\n\t\trender(<Button className=\"custom-class\">Click Me</Button>)\n\t\tconst button = screen.getByRole('button', { name: /click me/i })\n\n\t\texpect(button).toHaveClass('custom-class')\n\t})\n\n\tit('applies the \"disabled\" attribute correctly', () => {\n\t\trender(<Button disabled>Disabled Button</Button>)\n\t\tconst button = screen.getByRole('button', { name: /disabled button/i })\n\n\t\texpect(button).toBeDisabled()\n\t})\n})\n"],"names":["describe","it","render","jsx","Button","button","screen","expect","spinner","handleClick","vi","fireEvent"],"mappings":"kaAMAA,EAAS,mBAAoB,IAAM,CAClCC,EAAG,wCAAyC,IAAM,CAC1CC,EAAAC,EAAA,IAACC,EAAO,CAAA,SAAA,UAAQ,CAAA,CAAS,EAChC,MAAMC,EAASC,EAAO,UAAU,SAAU,CAAE,KAAM,YAAa,EAExDC,EAAAF,CAAM,EAAE,kBAAkB,EAC1BE,EAAAF,CAAM,EAAE,YAAY,kDAAkD,CAAA,CAC7E,EAEDJ,EAAG,yCAA0C,IAAM,CAClDC,QACEE,EAAO,CAAA,QAAQ,UAAU,KAAK,KAAK,SAEpC,gBAAA,CAAA,CACD,EACA,MAAMC,EAASC,EAAO,UAAU,SAAU,CAAE,KAAM,kBAAmB,EAE9DC,EAAAF,CAAM,EAAE,kBAAkB,EAC1BE,EAAAF,CAAM,EAAE,YAAY,wDAAwD,CAAA,CACnF,EAmBDJ,EAAG,+CAAgD,IAAM,CACxDC,EAAQC,EAAAA,IAAAC,EAAA,CAAO,UAAS,GAAC,sBAAU,CAAS,EAC5C,MAAMC,EAASC,EAAO,UAAU,SAAU,CAAE,KAAM,cAAe,EAE1DC,EAAAF,CAAM,EAAE,aAAa,CAAA,CAC5B,EAEDJ,EAAG,8CAA+C,IAAM,CACvDC,EAAQC,EAAAA,IAAAC,EAAA,CAAO,UAAS,GAAC,sBAAU,CAAS,EACtC,MAAAI,EAAUF,EAAO,YAAY,YAAY,EAExCC,EAAAC,CAAO,EAAE,kBAAkB,EAC3BD,EAAAC,CAAO,EAAE,YAAY,cAAc,CAAA,CAC1C,EAEDP,EAAG,yCAA0C,IAAM,CAC5C,MAAAQ,EAAcC,EAAG,GAAG,EAC1BR,EAAQC,EAAAA,IAAAC,EAAA,CAAO,QAASK,EAAa,oBAAQ,CAAS,EACtD,MAAMJ,EAASC,EAAO,UAAU,SAAU,CAAE,KAAM,YAAa,EAE/DK,EAAU,MAAMN,CAAM,EAEfE,EAAAE,CAAW,EAAE,sBAAsB,CAAC,CAAA,CAC3C,EAEDR,EAAG,wDAAyD,IAAM,CACjEC,EAAQC,EAAAA,IAAAC,EAAA,CAAO,UAAU,eAAe,oBAAQ,CAAS,EACzD,MAAMC,EAASC,EAAO,UAAU,SAAU,CAAE,KAAM,YAAa,EAExDC,EAAAF,CAAM,EAAE,YAAY,cAAc,CAAA,CACzC,EAEDJ,EAAG,6CAA8C,IAAM,CACtDC,EAAQC,EAAAA,IAAAC,EAAA,CAAO,SAAQ,GAAC,2BAAe,CAAS,EAChD,MAAMC,EAASC,EAAO,UAAU,SAAU,CAAE,KAAM,mBAAoB,EAE/DC,EAAAF,CAAM,EAAE,aAAa,CAAA,CAC5B,CACF,CAAC"}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import { DeepPartial } from '
|
|
1
|
+
import { DeepPartial } from '../../lib/types/ts-utilities';
|
|
2
2
|
export declare const buttonThemeDefaults: {
|
|
3
3
|
base: string[];
|
|
4
4
|
variants: {
|
|
@@ -28,11 +28,11 @@ export declare const buttonThemeDefaults: {
|
|
|
28
28
|
};
|
|
29
29
|
};
|
|
30
30
|
export declare const buttonVariants: ((arg?: (({
|
|
31
|
-
class?: import(
|
|
31
|
+
class?: import('cva-extended').ClassValue;
|
|
32
32
|
className?: never;
|
|
33
33
|
} | {
|
|
34
34
|
class?: never;
|
|
35
|
-
className?: import(
|
|
35
|
+
className?: import('cva-extended').ClassValue;
|
|
36
36
|
}) & {
|
|
37
37
|
variant?: "link" | "default" | "destructive" | "outline" | "secondary" | "ghost" | undefined;
|
|
38
38
|
size?: "md" | "sm" | "lg" | "xl" | "icon" | undefined;
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{cva as e}from"cva-extended";const r={base:["inline-flex items-center justify-center gap-2 whitespace-nowrap hover:cursor-pointer","rounded-md text-sm font-medium transition-colors focus-visible:outline-none","focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none","disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0"],variants:{variant:{default:"bg-primary text-primary-foreground shadow hover:bg-primary/90",destructive:"bg-destructive text-destructive-foreground shadow-sm hover:bg-destructive/90",outline:"border border-input bg-background shadow-sm hover:bg-accent hover:text-accent-foreground",secondary:"bg-secondary text-secondary-foreground shadow-sm hover:bg-secondary/80",ghost:"hover:bg-accent hover:text-accent-foreground",link:"text-primary underline-offset-4 hover:underline"},size:{sm:"h-8 px-3 text-xs",md:"h-9 px-4 py-2",lg:"h-10 px-8",xl:"h-12 px-10 text-xl",icon:"h-9 w-9"},rounded:{true:"rounded-full"}},defaultVariants:{variant:"default",size:"md",rounded:!1}},o=e(r);export{r as a,o as b};
|
|
2
|
+
//# sourceMappingURL=button.types.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"button.types.js","sources":["../../../src/components/button/button.types.tsx"],"sourcesContent":["import { DeepPartial } from '@/lib/types/ts-utilities'\nimport { cva } from 'cva-extended'\n\nexport const buttonThemeDefaults = {\n\tbase: [\n\t\t'inline-flex items-center justify-center gap-2 whitespace-nowrap hover:cursor-pointer',\n\t\t'rounded-md text-sm font-medium transition-colors focus-visible:outline-none',\n\t\t'focus-visible:ring-1 focus-visible:ring-ring disabled:pointer-events-none',\n\t\t'disabled:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0',\n\t],\n\tvariants: {\n\t\tvariant: {\n\t\t\tdefault: 'bg-primary text-primary-foreground shadow hover:bg-primary/90',\n\t\t\tdestructive:\n\t\t\t\t'bg-destructive text-destructive-foreground shadow-sm hover:bg-destructive/90',\n\t\t\toutline:\n\t\t\t\t'border border-input bg-background shadow-sm hover:bg-accent hover:text-accent-foreground',\n\t\t\tsecondary: 'bg-secondary text-secondary-foreground shadow-sm hover:bg-secondary/80',\n\t\t\tghost: 'hover:bg-accent hover:text-accent-foreground',\n\t\t\tlink: 'text-primary underline-offset-4 hover:underline',\n\t\t},\n\t\tsize: {\n\t\t\tsm: 'h-8 px-3 text-xs',\n\t\t\tmd: 'h-9 px-4 py-2',\n\t\t\tlg: 'h-10 px-8',\n\t\t\txl: 'h-12 px-10 text-xl',\n\t\t\ticon: 'h-9 w-9',\n\t\t},\n\t\trounded: {\n\t\t\ttrue: 'rounded-full',\n\t\t},\n\t},\n\tdefaultVariants: {\n\t\tvariant: 'default' as const,\n\t\tsize: 'md' as const,\n\t\trounded: false,\n\t},\n}\n\nexport const buttonVariants = cva(buttonThemeDefaults)\n\nexport interface ButtonThemeVariants {\n\tsize?: (typeof buttonVariants)['variants']['size'][0]\n\trounded?: boolean\n\tvariant?: (typeof buttonVariants)['variants']['variant'][0]\n}\n\nexport interface ButtonTheme {\n\tbase: string | string[]\n\tvariants: {\n\t\tsize: { [key in (typeof buttonVariants)['variants']['size'][0]]: string }\n\t\trounded: { true: string }\n\t\tvariant: { [key in (typeof buttonVariants)['variants']['variant'][0]]: string }\n\t}\n}\n\nexport type ButtonThemeProps = DeepPartial<ButtonTheme>\n"],"names":["buttonThemeDefaults","buttonVariants","cva"],"mappings":"mCAGO,MAAMA,EAAsB,CAClC,KAAM,CACL,uFACA,8EACA,4EACA,iFACD,EACA,SAAU,CACT,QAAS,CACR,QAAS,gEACT,YACC,+EACD,QACC,2FACD,UAAW,yEACX,MAAO,+CACP,KAAM,iDACP,EACA,KAAM,CACL,GAAI,mBACJ,GAAI,gBACJ,GAAI,YACJ,GAAI,qBACJ,KAAM,SACP,EACA,QAAS,CACR,KAAM,cAAA,CAER,EACA,gBAAiB,CAChB,QAAS,UACT,KAAM,KACN,QAAS,EAAA,CAEX,EAEaC,EAAiBC,EAAIF,CAAmB"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import"./button.js";import"./button.types.js";import"../../assets/jsx-runtime-D_zvdyIk.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";
|
|
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 i}from"../../assets/jsx-runtime-D_zvdyIk.js";import{getDaysInMonth as v,startOfMonth as M,format as c,subMonths as w,addMonths as P}from"date-fns";import{ChevronLeft as j,ChevronRight as x}from"lucide-react";import{useState as D}from"react";import{b as l,a as d,c as m,d as W,e as k}from"../../assets/en-US-BUOWLxFp.js";const q={lessThanXSeconds:{one:"menos de um segundo",other:"menos de {{count}} segundos"},xSeconds:{one:"1 segundo",other:"{{count}} segundos"},halfAMinute:"meio minuto",lessThanXMinutes:{one:"menos de um minuto",other:"menos de {{count}} minutos"},xMinutes:{one:"1 minuto",other:"{{count}} minutos"},aboutXHours:{one:"cerca de 1 hora",other:"cerca de {{count}} horas"},xHours:{one:"1 hora",other:"{{count}} horas"},xDays:{one:"1 dia",other:"{{count}} dias"},aboutXWeeks:{one:"cerca de 1 semana",other:"cerca de {{count}} semanas"},xWeeks:{one:"1 semana",other:"{{count}} semanas"},aboutXMonths:{one:"cerca de 1 mês",other:"cerca de {{count}} meses"},xMonths:{one:"1 mês",other:"{{count}} meses"},aboutXYears:{one:"cerca de 1 ano",other:"cerca de {{count}} anos"},xYears:{one:"1 ano",other:"{{count}} anos"},overXYears:{one:"mais de 1 ano",other:"mais de {{count}} anos"},almostXYears:{one:"quase 1 ano",other:"quase {{count}} anos"}},C=(e,t,o)=>{let n;const r=q[e];return typeof r=="string"?n=r:t===1?n=r.one:n=r.other.replace("{{count}}",String(t)),o!=null&&o.addSuffix?o.comparison&&o.comparison>0?"em "+n:"há "+n:n},S={full:"EEEE, d 'de' MMMM 'de' y",long:"d 'de' MMMM 'de' y",medium:"d MMM y",short:"dd/MM/yyyy"},N={full:"HH:mm:ss zzzz",long:"HH:mm:ss z",medium:"HH:mm:ss",short:"HH:mm"},z={full:"{{date}} 'às' {{time}}",long:"{{date}} 'às' {{time}}",medium:"{{date}}, {{time}}",short:"{{date}}, {{time}}"},E={date:l({formats:S,defaultWidth:"full"}),time:l({formats:N,defaultWidth:"full"}),dateTime:l({formats:z,defaultWidth:"full"})},F={lastWeek:e=>{const t=e.getDay();return"'"+(t===0||t===6?"último":"última")+"' eeee 'às' p"},yesterday:"'ontem às' p",today:"'hoje às' p",tomorrow:"'amanhã às' p",nextWeek:"eeee 'às' p",other:"P"},H=(e,t,o,n)=>{const r=F[e];return typeof r=="function"?r(t):r},T={narrow:["AC","DC"],abbreviated:["AC","DC"],wide:["antes de cristo","depois de cristo"]},A={narrow:["1","2","3","4"],abbreviated:["T1","T2","T3","T4"],wide:["1º trimestre","2º trimestre","3º trimestre","4º trimestre"]},V={narrow:["j","f","m","a","m","j","j","a","s","o","n","d"],abbreviated:["jan","fev","mar","abr","mai","jun","jul","ago","set","out","nov","dez"],wide:["janeiro","fevereiro","março","abril","maio","junho","julho","agosto","setembro","outubro","novembro","dezembro"]},X={narrow:["D","S","T","Q","Q","S","S"],short:["dom","seg","ter","qua","qui","sex","sab"],abbreviated:["domingo","segunda","terça","quarta","quinta","sexta","sábado"],wide:["domingo","segunda-feira","terça-feira","quarta-feira","quinta-feira","sexta-feira","sábado"]},L={narrow:{am:"a",pm:"p",midnight:"mn",noon:"md",morning:"manhã",afternoon:"tarde",evening:"tarde",night:"noite"},abbreviated:{am:"AM",pm:"PM",midnight:"meia-noite",noon:"meio-dia",morning:"manhã",afternoon:"tarde",evening:"tarde",night:"noite"},wide:{am:"a.m.",pm:"p.m.",midnight:"meia-noite",noon:"meio-dia",morning:"manhã",afternoon:"tarde",evening:"tarde",night:"noite"}},R={narrow:{am:"a",pm:"p",midnight:"mn",noon:"md",morning:"da manhã",afternoon:"da tarde",evening:"da tarde",night:"da noite"},abbreviated:{am:"AM",pm:"PM",midnight:"meia-noite",noon:"meio-dia",morning:"da manhã",afternoon:"da tarde",evening:"da tarde",night:"da noite"},wide:{am:"a.m.",pm:"p.m.",midnight:"meia-noite",noon:"meio-dia",morning:"da manhã",afternoon:"da tarde",evening:"da tarde",night:"da noite"}},O=(e,t)=>{const o=Number(e);return(t==null?void 0:t.unit)==="week"?o+"ª":o+"º"},Y={ordinalNumber:O,era:d({values:T,defaultWidth:"wide"}),quarter:d({values:A,defaultWidth:"wide",argumentCallback:e=>e-1}),month:d({values:V,defaultWidth:"wide"}),day:d({values:X,defaultWidth:"wide"}),dayPeriod:d({values:L,defaultWidth:"wide",formattingValues:R,defaultFormattingWidth:"wide"})},_=/^(\d+)[ºªo]?/i,I=/\d+/i,Q={narrow:/^(ac|dc|a|d)/i,abbreviated:/^(a\.?\s?c\.?|d\.?\s?c\.?)/i,wide:/^(antes de cristo|depois de cristo)/i},B={any:[/^ac/i,/^dc/i],wide:[/^antes de cristo/i,/^depois de cristo/i]},U={narrow:/^[1234]/i,abbreviated:/^T[1234]/i,wide:/^[1234](º)? trimestre/i},$={any:[/1/i,/2/i,/3/i,/4/i]},G={narrow:/^[jfmajsond]/i,abbreviated:/^(jan|fev|mar|abr|mai|jun|jul|ago|set|out|nov|dez)/i,wide:/^(janeiro|fevereiro|março|abril|maio|junho|julho|agosto|setembro|outubro|novembro|dezembro)/i},J={narrow:[/^j/i,/^f/i,/^m/i,/^a/i,/^m/i,/^j/i,/^j/i,/^a/i,/^s/i,/^o/i,/^n/i,/^d/i],any:[/^ja/i,/^fev/i,/^mar/i,/^abr/i,/^mai/i,/^jun/i,/^jul/i,/^ago/i,/^set/i,/^out/i,/^nov/i,/^dez/i]},K={narrow:/^(dom|[23456]ª?|s[aá]b)/i,short:/^(dom|[23456]ª?|s[aá]b)/i,abbreviated:/^(dom|seg|ter|qua|qui|sex|s[aá]b)/i,wide:/^(domingo|(segunda|ter[cç]a|quarta|quinta|sexta)([- ]feira)?|s[aá]bado)/i},Z={short:[/^d/i,/^2/i,/^3/i,/^4/i,/^5/i,/^6/i,/^s[aá]/i],narrow:[/^d/i,/^2/i,/^3/i,/^4/i,/^5/i,/^6/i,/^s[aá]/i],any:[/^d/i,/^seg/i,/^t/i,/^qua/i,/^qui/i,/^sex/i,/^s[aá]b/i]},ee={narrow:/^(a|p|mn|md|(da) (manhã|tarde|noite))/i,any:/^([ap]\.?\s?m\.?|meia[-\s]noite|meio[-\s]dia|(da) (manhã|tarde|noite))/i},ae={any:{am:/^a/i,pm:/^p/i,midnight:/^mn|^meia[-\s]noite/i,noon:/^md|^meio[-\s]dia/i,morning:/manhã/i,afternoon:/tarde/i,evening:/tarde/i,night:/noite/i}},te={ordinalNumber:W({matchPattern:_,parsePattern:I,valueCallback:e=>parseInt(e,10)}),era:m({matchPatterns:Q,defaultMatchWidth:"wide",parsePatterns:B,defaultParseWidth:"any"}),quarter:m({matchPatterns:U,defaultMatchWidth:"wide",parsePatterns:$,defaultParseWidth:"any",valueCallback:e=>e+1}),month:m({matchPatterns:G,defaultMatchWidth:"wide",parsePatterns:J,defaultParseWidth:"any"}),day:m({matchPatterns:K,defaultMatchWidth:"wide",parsePatterns:Z,defaultParseWidth:"any"}),dayPeriod:m({matchPatterns:ee,defaultMatchWidth:"any",parsePatterns:ae,defaultParseWidth:"any"})},ne={code:"pt-BR",formatDistance:C,formatLong:E,formatRelative:H,localize:Y,match:te,options:{weekStartsOn:0,firstWeekContainsDate:1}},ue=({selectedDate:e,onChange:t,language:o="enUS"})=>{const[n,r]=D(e||new Date),u={ptBR:ne,enUS:k}[o],h=()=>{r(a=>w(a,1))},f=()=>{r(a=>P(a,1))},g=a=>{t&&t(a)},b=Array.from({length:v(n)}).map((a,s)=>new Date(n.getFullYear(),n.getMonth(),s+1)),y=M(n).getDay(),p=Array.from({length:7}).map((a,s)=>c(new Date(2021,0,s+3),"EEEEEE",{locale:u}));return i.jsxs("div",{className:"max-w-sm mx-auto p-4 border rounded shadow",role:"application","aria-label":"Calendar",children:[i.jsxs("div",{className:"flex justify-between items-center mb-4",children:[i.jsx("button",{className:"px-2 py-1 bg-gray-200 rounded hover:bg-gray-300",onClick:h,"aria-label":"Previous Month",children:i.jsx(j,{})}),i.jsx("h2",{className:"text-lg font-bold","aria-live":"polite",children:c(n,"MMMM yyyy",{locale:u})}),i.jsx("button",{className:"px-2 py-1 bg-gray-200 rounded hover:bg-gray-300",onClick:f,"aria-label":"Next Month",children:i.jsx(x,{})})]}),i.jsxs("div",{className:"grid grid-cols-7 gap-2",children:[p.map((a,s)=>i.jsx("div",{className:"text-center font-medium","aria-hidden":"true",children:a},s)),Array.from({length:y}).map((a,s)=>i.jsx("div",{className:"","aria-hidden":"true"},`empty-${s}`)),b.map(a=>i.jsx("button",{className:`p-2 rounded hover:bg-blue-100 ${e&&a.toDateString()===e.toDateString()&&"bg-blue-200"}`,onClick:()=>g(a),"aria-label":c(a,"MMMM do yyyy",{locale:u}),"aria-pressed":e&&a.toDateString()===e.toDateString()?"true":"false",children:a.getDate()},a.toISOString()))]})]})};export{ue as C};
|
|
2
|
+
//# sourceMappingURL=calendar.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"calendar.js","sources":["../../../node_modules/date-fns/locale/pt-BR/_lib/formatDistance.js","../../../node_modules/date-fns/locale/pt-BR/_lib/formatLong.js","../../../node_modules/date-fns/locale/pt-BR/_lib/formatRelative.js","../../../node_modules/date-fns/locale/pt-BR/_lib/localize.js","../../../node_modules/date-fns/locale/pt-BR/_lib/match.js","../../../node_modules/date-fns/locale/pt-BR.js","../../../src/components/calendar/calendar.tsx"],"sourcesContent":["const formatDistanceLocale = {\n lessThanXSeconds: {\n one: \"menos de um segundo\",\n other: \"menos de {{count}} segundos\",\n },\n\n xSeconds: {\n one: \"1 segundo\",\n other: \"{{count}} segundos\",\n },\n\n halfAMinute: \"meio minuto\",\n\n lessThanXMinutes: {\n one: \"menos de um minuto\",\n other: \"menos de {{count}} minutos\",\n },\n\n xMinutes: {\n one: \"1 minuto\",\n other: \"{{count}} minutos\",\n },\n\n aboutXHours: {\n one: \"cerca de 1 hora\",\n other: \"cerca de {{count}} horas\",\n },\n\n xHours: {\n one: \"1 hora\",\n other: \"{{count}} horas\",\n },\n\n xDays: {\n one: \"1 dia\",\n other: \"{{count}} dias\",\n },\n\n aboutXWeeks: {\n one: \"cerca de 1 semana\",\n other: \"cerca de {{count}} semanas\",\n },\n\n xWeeks: {\n one: \"1 semana\",\n other: \"{{count}} semanas\",\n },\n\n aboutXMonths: {\n one: \"cerca de 1 mês\",\n other: \"cerca de {{count}} meses\",\n },\n\n xMonths: {\n one: \"1 mês\",\n other: \"{{count}} meses\",\n },\n\n aboutXYears: {\n one: \"cerca de 1 ano\",\n other: \"cerca de {{count}} anos\",\n },\n\n xYears: {\n one: \"1 ano\",\n other: \"{{count}} anos\",\n },\n\n overXYears: {\n one: \"mais de 1 ano\",\n other: \"mais de {{count}} anos\",\n },\n\n almostXYears: {\n one: \"quase 1 ano\",\n other: \"quase {{count}} anos\",\n },\n};\n\nexport const formatDistance = (token, count, options) => {\n let result;\n\n const tokenValue = formatDistanceLocale[token];\n if (typeof tokenValue === \"string\") {\n result = tokenValue;\n } else if (count === 1) {\n result = tokenValue.one;\n } else {\n result = tokenValue.other.replace(\"{{count}}\", String(count));\n }\n\n if (options?.addSuffix) {\n if (options.comparison && options.comparison > 0) {\n return \"em \" + result;\n } else {\n return \"há \" + result;\n }\n }\n\n return result;\n};\n","import { buildFormatLongFn } from \"../../_lib/buildFormatLongFn.js\";\n\nconst dateFormats = {\n full: \"EEEE, d 'de' MMMM 'de' y\",\n long: \"d 'de' MMMM 'de' y\",\n medium: \"d MMM y\",\n short: \"dd/MM/yyyy\",\n};\n\nconst timeFormats = {\n full: \"HH:mm:ss zzzz\",\n long: \"HH:mm:ss z\",\n medium: \"HH:mm:ss\",\n short: \"HH:mm\",\n};\n\nconst dateTimeFormats = {\n full: \"{{date}} 'às' {{time}}\",\n long: \"{{date}} 'às' {{time}}\",\n medium: \"{{date}}, {{time}}\",\n short: \"{{date}}, {{time}}\",\n};\n\nexport const formatLong = {\n date: buildFormatLongFn({\n formats: dateFormats,\n defaultWidth: \"full\",\n }),\n\n time: buildFormatLongFn({\n formats: timeFormats,\n defaultWidth: \"full\",\n }),\n\n dateTime: buildFormatLongFn({\n formats: dateTimeFormats,\n defaultWidth: \"full\",\n }),\n};\n","const formatRelativeLocale = {\n lastWeek: (date) => {\n const weekday = date.getDay();\n const last = weekday === 0 || weekday === 6 ? \"último\" : \"última\";\n return \"'\" + last + \"' eeee 'às' p\";\n },\n yesterday: \"'ontem às' p\",\n today: \"'hoje às' p\",\n tomorrow: \"'amanhã às' p\",\n nextWeek: \"eeee 'às' p\",\n other: \"P\",\n};\n\nexport const formatRelative = (token, date, _baseDate, _options) => {\n const format = formatRelativeLocale[token];\n\n if (typeof format === \"function\") {\n return format(date);\n }\n\n return format;\n};\n","import { buildLocalizeFn } from \"../../_lib/buildLocalizeFn.js\";\n\nconst eraValues = {\n narrow: [\"AC\", \"DC\"],\n abbreviated: [\"AC\", \"DC\"],\n wide: [\"antes de cristo\", \"depois de cristo\"],\n};\n\nconst quarterValues = {\n narrow: [\"1\", \"2\", \"3\", \"4\"],\n abbreviated: [\"T1\", \"T2\", \"T3\", \"T4\"],\n wide: [\"1º trimestre\", \"2º trimestre\", \"3º trimestre\", \"4º trimestre\"],\n};\n\nconst monthValues = {\n narrow: [\"j\", \"f\", \"m\", \"a\", \"m\", \"j\", \"j\", \"a\", \"s\", \"o\", \"n\", \"d\"],\n abbreviated: [\n \"jan\",\n \"fev\",\n \"mar\",\n \"abr\",\n \"mai\",\n \"jun\",\n \"jul\",\n \"ago\",\n \"set\",\n \"out\",\n \"nov\",\n \"dez\",\n ],\n\n wide: [\n \"janeiro\",\n \"fevereiro\",\n \"março\",\n \"abril\",\n \"maio\",\n \"junho\",\n \"julho\",\n \"agosto\",\n \"setembro\",\n \"outubro\",\n \"novembro\",\n \"dezembro\",\n ],\n};\n\nconst dayValues = {\n narrow: [\"D\", \"S\", \"T\", \"Q\", \"Q\", \"S\", \"S\"],\n short: [\"dom\", \"seg\", \"ter\", \"qua\", \"qui\", \"sex\", \"sab\"],\n abbreviated: [\n \"domingo\",\n \"segunda\",\n \"terça\",\n \"quarta\",\n \"quinta\",\n \"sexta\",\n \"sábado\",\n ],\n\n wide: [\n \"domingo\",\n \"segunda-feira\",\n \"terça-feira\",\n \"quarta-feira\",\n \"quinta-feira\",\n \"sexta-feira\",\n \"sábado\",\n ],\n};\n\nconst dayPeriodValues = {\n narrow: {\n am: \"a\",\n pm: \"p\",\n midnight: \"mn\",\n noon: \"md\",\n morning: \"manhã\",\n afternoon: \"tarde\",\n evening: \"tarde\",\n night: \"noite\",\n },\n abbreviated: {\n am: \"AM\",\n pm: \"PM\",\n midnight: \"meia-noite\",\n noon: \"meio-dia\",\n morning: \"manhã\",\n afternoon: \"tarde\",\n evening: \"tarde\",\n night: \"noite\",\n },\n wide: {\n am: \"a.m.\",\n pm: \"p.m.\",\n midnight: \"meia-noite\",\n noon: \"meio-dia\",\n morning: \"manhã\",\n afternoon: \"tarde\",\n evening: \"tarde\",\n night: \"noite\",\n },\n};\n\nconst formattingDayPeriodValues = {\n narrow: {\n am: \"a\",\n pm: \"p\",\n midnight: \"mn\",\n noon: \"md\",\n morning: \"da manhã\",\n afternoon: \"da tarde\",\n evening: \"da tarde\",\n night: \"da noite\",\n },\n abbreviated: {\n am: \"AM\",\n pm: \"PM\",\n midnight: \"meia-noite\",\n noon: \"meio-dia\",\n morning: \"da manhã\",\n afternoon: \"da tarde\",\n evening: \"da tarde\",\n night: \"da noite\",\n },\n wide: {\n am: \"a.m.\",\n pm: \"p.m.\",\n midnight: \"meia-noite\",\n noon: \"meio-dia\",\n morning: \"da manhã\",\n afternoon: \"da tarde\",\n evening: \"da tarde\",\n night: \"da noite\",\n },\n};\n\nconst ordinalNumber = (dirtyNumber, options) => {\n const number = Number(dirtyNumber);\n\n if (options?.unit === \"week\") {\n return number + \"ª\";\n }\n return number + \"º\";\n};\n\nexport const localize = {\n ordinalNumber,\n\n era: buildLocalizeFn({\n values: eraValues,\n defaultWidth: \"wide\",\n }),\n\n quarter: buildLocalizeFn({\n values: quarterValues,\n defaultWidth: \"wide\",\n argumentCallback: (quarter) => quarter - 1,\n }),\n\n month: buildLocalizeFn({\n values: monthValues,\n defaultWidth: \"wide\",\n }),\n\n day: buildLocalizeFn({\n values: dayValues,\n defaultWidth: \"wide\",\n }),\n\n dayPeriod: buildLocalizeFn({\n values: dayPeriodValues,\n defaultWidth: \"wide\",\n formattingValues: formattingDayPeriodValues,\n defaultFormattingWidth: \"wide\",\n }),\n};\n","import { buildMatchFn } from \"../../_lib/buildMatchFn.js\";\nimport { buildMatchPatternFn } from \"../../_lib/buildMatchPatternFn.js\";\n\nconst matchOrdinalNumberPattern = /^(\\d+)[ºªo]?/i;\nconst parseOrdinalNumberPattern = /\\d+/i;\n\nconst matchEraPatterns = {\n narrow: /^(ac|dc|a|d)/i,\n abbreviated: /^(a\\.?\\s?c\\.?|d\\.?\\s?c\\.?)/i,\n wide: /^(antes de cristo|depois de cristo)/i,\n};\nconst parseEraPatterns = {\n any: [/^ac/i, /^dc/i],\n wide: [/^antes de cristo/i, /^depois de cristo/i],\n};\n\nconst matchQuarterPatterns = {\n narrow: /^[1234]/i,\n abbreviated: /^T[1234]/i,\n wide: /^[1234](º)? trimestre/i,\n};\nconst parseQuarterPatterns = {\n any: [/1/i, /2/i, /3/i, /4/i],\n};\n\nconst matchMonthPatterns = {\n narrow: /^[jfmajsond]/i,\n abbreviated: /^(jan|fev|mar|abr|mai|jun|jul|ago|set|out|nov|dez)/i,\n wide: /^(janeiro|fevereiro|março|abril|maio|junho|julho|agosto|setembro|outubro|novembro|dezembro)/i,\n};\nconst parseMonthPatterns = {\n narrow: [\n /^j/i,\n /^f/i,\n /^m/i,\n /^a/i,\n /^m/i,\n /^j/i,\n /^j/i,\n /^a/i,\n /^s/i,\n /^o/i,\n /^n/i,\n /^d/i,\n ],\n\n any: [\n /^ja/i,\n /^fev/i,\n /^mar/i,\n /^abr/i,\n /^mai/i,\n /^jun/i,\n /^jul/i,\n /^ago/i,\n /^set/i,\n /^out/i,\n /^nov/i,\n /^dez/i,\n ],\n};\n\nconst matchDayPatterns = {\n narrow: /^(dom|[23456]ª?|s[aá]b)/i,\n short: /^(dom|[23456]ª?|s[aá]b)/i,\n abbreviated: /^(dom|seg|ter|qua|qui|sex|s[aá]b)/i,\n wide: /^(domingo|(segunda|ter[cç]a|quarta|quinta|sexta)([- ]feira)?|s[aá]bado)/i,\n};\nconst parseDayPatterns = {\n short: [/^d/i, /^2/i, /^3/i, /^4/i, /^5/i, /^6/i, /^s[aá]/i],\n narrow: [/^d/i, /^2/i, /^3/i, /^4/i, /^5/i, /^6/i, /^s[aá]/i],\n any: [/^d/i, /^seg/i, /^t/i, /^qua/i, /^qui/i, /^sex/i, /^s[aá]b/i],\n};\n\nconst matchDayPeriodPatterns = {\n narrow: /^(a|p|mn|md|(da) (manhã|tarde|noite))/i,\n any: /^([ap]\\.?\\s?m\\.?|meia[-\\s]noite|meio[-\\s]dia|(da) (manhã|tarde|noite))/i,\n};\nconst parseDayPeriodPatterns = {\n any: {\n am: /^a/i,\n pm: /^p/i,\n midnight: /^mn|^meia[-\\s]noite/i,\n noon: /^md|^meio[-\\s]dia/i,\n morning: /manhã/i,\n afternoon: /tarde/i,\n evening: /tarde/i,\n night: /noite/i,\n },\n};\n\nexport const match = {\n ordinalNumber: buildMatchPatternFn({\n matchPattern: matchOrdinalNumberPattern,\n parsePattern: parseOrdinalNumberPattern,\n valueCallback: (value) => parseInt(value, 10),\n }),\n\n era: buildMatchFn({\n matchPatterns: matchEraPatterns,\n defaultMatchWidth: \"wide\",\n parsePatterns: parseEraPatterns,\n defaultParseWidth: \"any\",\n }),\n\n quarter: buildMatchFn({\n matchPatterns: matchQuarterPatterns,\n defaultMatchWidth: \"wide\",\n parsePatterns: parseQuarterPatterns,\n defaultParseWidth: \"any\",\n valueCallback: (index) => index + 1,\n }),\n\n month: buildMatchFn({\n matchPatterns: matchMonthPatterns,\n defaultMatchWidth: \"wide\",\n parsePatterns: parseMonthPatterns,\n defaultParseWidth: \"any\",\n }),\n\n day: buildMatchFn({\n matchPatterns: matchDayPatterns,\n defaultMatchWidth: \"wide\",\n parsePatterns: parseDayPatterns,\n defaultParseWidth: \"any\",\n }),\n\n dayPeriod: buildMatchFn({\n matchPatterns: matchDayPeriodPatterns,\n defaultMatchWidth: \"any\",\n parsePatterns: parseDayPeriodPatterns,\n defaultParseWidth: \"any\",\n }),\n};\n","import { formatDistance } from \"./pt-BR/_lib/formatDistance.js\";\nimport { formatLong } from \"./pt-BR/_lib/formatLong.js\";\nimport { formatRelative } from \"./pt-BR/_lib/formatRelative.js\";\nimport { localize } from \"./pt-BR/_lib/localize.js\";\nimport { match } from \"./pt-BR/_lib/match.js\";\n\n/**\n * @category Locales\n * @summary Portuguese locale (Brazil).\n * @language Portuguese\n * @iso-639-2 por\n * @author Lucas Duailibe [@duailibe](https://github.com/duailibe)\n * @author Yago Carballo [@yagocarballo](https://github.com/YagoCarballo)\n */\nexport const ptBR = {\n code: \"pt-BR\",\n formatDistance: formatDistance,\n formatLong: formatLong,\n formatRelative: formatRelative,\n localize: localize,\n match: match,\n options: {\n weekStartsOn: 0 /* Sunday */,\n firstWeekContainsDate: 1,\n },\n};\n\n// Fallback for modularized imports:\nexport default ptBR;\n","import { addMonths, format, getDaysInMonth, startOfMonth, subMonths } from 'date-fns'\nimport { enUS, ptBR } from 'date-fns/locale'\nimport { ChevronLeft, ChevronRight } from 'lucide-react'\nimport React, { useState } from 'react'\n\ntype CalendarProps = {\n\tselectedDate?: Date\n\tonChange?: (date: Date) => void\n\tlanguage?: 'enUS' | 'ptBR'\n}\n\nexport const Calendar: React.FC<CalendarProps> = ({\n\tselectedDate,\n\tonChange,\n\tlanguage = 'enUS',\n}) => {\n\tconst [currentDate, setCurrentDate] = useState<Date>(selectedDate || new Date())\n\n\tconst locales = { ptBR, enUS }\n\tconst locale = locales[language]\n\n\tconst handlePrevMonth = () => {\n\t\tsetCurrentDate((prev) => subMonths(prev, 1))\n\t}\n\n\tconst handleNextMonth = () => {\n\t\tsetCurrentDate((prev) => addMonths(prev, 1))\n\t}\n\n\tconst handleDayClick = (date: Date) => {\n\t\tif (onChange) {\n\t\t\tonChange(date)\n\t\t}\n\t}\n\n\tconst daysInMonth = Array.from({\n\t\tlength: getDaysInMonth(currentDate),\n\t}).map((_, i) => new Date(currentDate.getFullYear(), currentDate.getMonth(), i + 1))\n\n\tconst startDay = startOfMonth(currentDate).getDay()\n\tconst weekdays = Array.from({ length: 7 }).map((_, i) =>\n\t\tformat(new Date(2021, 0, i + 3), 'EEEEEE', { locale }),\n\t)\n\n\treturn (\n\t\t<div\n\t\t\tclassName=\"max-w-sm mx-auto p-4 border rounded shadow\"\n\t\t\trole=\"application\"\n\t\t\taria-label=\"Calendar\"\n\t\t>\n\t\t\t<div className=\"flex justify-between items-center mb-4\">\n\t\t\t\t<button\n\t\t\t\t\tclassName=\"px-2 py-1 bg-gray-200 rounded hover:bg-gray-300\"\n\t\t\t\t\tonClick={handlePrevMonth}\n\t\t\t\t\taria-label=\"Previous Month\"\n\t\t\t\t>\n\t\t\t\t\t<ChevronLeft />\n\t\t\t\t</button>\n\t\t\t\t<h2 className=\"text-lg font-bold\" aria-live=\"polite\">\n\t\t\t\t\t{format(currentDate, 'MMMM yyyy', { locale })}\n\t\t\t\t</h2>\n\t\t\t\t<button\n\t\t\t\t\tclassName=\"px-2 py-1 bg-gray-200 rounded hover:bg-gray-300\"\n\t\t\t\t\tonClick={handleNextMonth}\n\t\t\t\t\taria-label=\"Next Month\"\n\t\t\t\t>\n\t\t\t\t\t<ChevronRight />\n\t\t\t\t</button>\n\t\t\t</div>\n\n\t\t\t<div className=\"grid grid-cols-7 gap-2\">\n\t\t\t\t{weekdays.map((day, index) => (\n\t\t\t\t\t<div key={index} className=\"text-center font-medium\" aria-hidden=\"true\">\n\t\t\t\t\t\t{day}\n\t\t\t\t\t</div>\n\t\t\t\t))}\n\n\t\t\t\t{Array.from({ length: startDay }).map((_, i) => (\n\t\t\t\t\t<div key={`empty-${i}`} className=\"\" aria-hidden=\"true\"></div>\n\t\t\t\t))}\n\n\t\t\t\t{daysInMonth.map((date) => (\n\t\t\t\t\t<button\n\t\t\t\t\t\tkey={date.toISOString()}\n\t\t\t\t\t\tclassName={`p-2 rounded hover:bg-blue-100 ${\n\t\t\t\t\t\t\tselectedDate &&\n\t\t\t\t\t\t\tdate.toDateString() === selectedDate.toDateString() &&\n\t\t\t\t\t\t\t'bg-blue-200'\n\t\t\t\t\t\t}`}\n\t\t\t\t\t\tonClick={() => handleDayClick(date)}\n\t\t\t\t\t\taria-label={format(date, 'MMMM do yyyy', { locale })}\n\t\t\t\t\t\taria-pressed={\n\t\t\t\t\t\t\tselectedDate && date.toDateString() === selectedDate.toDateString()\n\t\t\t\t\t\t\t\t? 'true'\n\t\t\t\t\t\t\t\t: 'false'\n\t\t\t\t\t\t}\n\t\t\t\t\t>\n\t\t\t\t\t\t{date.getDate()}\n\t\t\t\t\t</button>\n\t\t\t\t))}\n\t\t\t</div>\n\t\t</div>\n\t)\n}\n"],"names":["formatDistanceLocale","formatDistance","token","count","options","result","tokenValue","dateFormats","timeFormats","dateTimeFormats","formatLong","buildFormatLongFn","formatRelativeLocale","date","weekday","formatRelative","_baseDate","_options","format","eraValues","quarterValues","monthValues","dayValues","dayPeriodValues","formattingDayPeriodValues","ordinalNumber","dirtyNumber","number","localize","buildLocalizeFn","quarter","matchOrdinalNumberPattern","parseOrdinalNumberPattern","matchEraPatterns","parseEraPatterns","matchQuarterPatterns","parseQuarterPatterns","matchMonthPatterns","parseMonthPatterns","matchDayPatterns","parseDayPatterns","matchDayPeriodPatterns","parseDayPeriodPatterns","match","buildMatchPatternFn","value","buildMatchFn","index","ptBR","Calendar","selectedDate","onChange","language","currentDate","setCurrentDate","useState","locale","enUS","handlePrevMonth","prev","subMonths","handleNextMonth","addMonths","handleDayClick","daysInMonth","getDaysInMonth","_","i","startDay","startOfMonth","weekdays","jsxs","jsx","ChevronLeft","ChevronRight","day"],"mappings":"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","x_google_ignoreList":[0,1,2,3,4,5]}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"calendar.stories.js","sources":["../../../src/components/calendar/calendar.stories.tsx"],"sourcesContent":["// organize-imports-ignore\nimport React from 'react'\nimport type { Meta, StoryObj } from '@storybook/react'\nimport { Calendar } from './calendar'\n\nconst meta: Meta<typeof Calendar> = {\n\tcomponent: Calendar,\n}\n\nexport default meta\ntype Story = StoryObj<typeof Calendar>\n\nconst Template = () => {\n\treturn <Calendar />\n}\n\nexport const Default: Story = {\n\trender: Template.bind({}),\n\targs: {},\n}\n"],"names":["Template","Calendar"],"mappings":"sLAYA,MAAMA,EAAW,UACRC,EAAS,EAAA,EAITD,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*as d from"react";import{c as o}from"../../lib/utils/cn.js";import"clsx";import"tailwind-merge";const t=d.forwardRef(({className:a,...e},r)=>s.jsx("div",{ref:r,className:o("rounded-xl border bg-card text-card-foreground shadow",a),...e}));t.displayName="Card";const i=d.forwardRef(({className:a,...e},r)=>s.jsx("div",{ref:r,className:o("flex flex-col space-y-1.5 p-6",a),...e}));i.displayName="CardHeader";const m=d.forwardRef(({className:a,...e},r)=>s.jsx("div",{ref:r,className:o("font-semibold leading-none tracking-tight pb-4",a),...e}));m.displayName="CardTitle";const c=d.forwardRef(({className:a,...e},r)=>s.jsx("div",{ref:r,className:o("text-sm text-muted-foreground",a),...e}));c.displayName="CardDescription";const n=d.forwardRef(({className:a,...e},r)=>s.jsx("div",{ref:r,className:o("p-6 py-0",a),...e}));n.displayName="CardContent";const p=d.forwardRef(({className:a,...e},r)=>s.jsx("div",{ref:r,className:o("flex items-center p-6 pt-6",a),...e}));p.displayName="CardFooter";export{t as C,i as a,m as b,c,n as d,p as e};
|
|
2
|
+
//# sourceMappingURL=card.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"card.js","sources":["../../../src/components/card/card.tsx"],"sourcesContent":["import * as React from 'react'\n\nimport { cn } from '@/lib/utils/cn'\n\nconst Card = React.forwardRef<HTMLDivElement, React.HTMLAttributes<HTMLDivElement>>(\n\t({ className, ...props }, ref) => (\n\t\t<div\n\t\t\tref={ref}\n\t\t\tclassName={cn('rounded-xl border bg-card text-card-foreground shadow', className)}\n\t\t\t{...props}\n\t\t/>\n\t),\n)\nCard.displayName = 'Card'\n\nconst CardHeader = React.forwardRef<HTMLDivElement, React.HTMLAttributes<HTMLDivElement>>(\n\t({ className, ...props }, ref) => (\n\t\t<div\n\t\t\tref={ref}\n\t\t\tclassName={cn('flex flex-col space-y-1.5 p-6', className)}\n\t\t\t{...props}\n\t\t/>\n\t),\n)\nCardHeader.displayName = 'CardHeader'\n\nconst CardTitle = React.forwardRef<HTMLDivElement, React.HTMLAttributes<HTMLDivElement>>(\n\t({ className, ...props }, ref) => (\n\t\t<div\n\t\t\tref={ref}\n\t\t\tclassName={cn('font-semibold leading-none tracking-tight pb-4', className)}\n\t\t\t{...props}\n\t\t/>\n\t),\n)\nCardTitle.displayName = 'CardTitle'\n\nconst CardDescription = React.forwardRef<\n\tHTMLDivElement,\n\tReact.HTMLAttributes<HTMLDivElement>\n>(({ className, ...props }, ref) => (\n\t<div ref={ref} className={cn('text-sm text-muted-foreground', className)} {...props} />\n))\nCardDescription.displayName = 'CardDescription'\n\nconst CardContent = React.forwardRef<\n\tHTMLDivElement,\n\tReact.HTMLAttributes<HTMLDivElement>\n>(({ className, ...props }, ref) => (\n\t<div ref={ref} className={cn('p-6 py-0', className)} {...props} />\n))\nCardContent.displayName = 'CardContent'\n\nconst CardFooter = React.forwardRef<HTMLDivElement, React.HTMLAttributes<HTMLDivElement>>(\n\t({ className, ...props }, ref) => (\n\t\t<div ref={ref} className={cn('flex items-center p-6 pt-6', className)} {...props} />\n\t),\n)\nCardFooter.displayName = 'CardFooter'\n\nexport { Card, CardContent, CardDescription, CardFooter, CardHeader, CardTitle }\n"],"names":["Card","React","className","props","ref","jsx","cn","CardHeader","CardTitle","CardDescription","CardContent","CardFooter"],"mappings":"+JAIA,MAAMA,EAAOC,EAAM,WAClB,CAAC,CAAE,UAAAC,EAAW,GAAGC,GAASC,IACzBC,EAAA,IAAC,MAAA,CACA,IAAAD,EACA,UAAWE,EAAG,wDAAyDJ,CAAS,EAC/E,GAAGC,CAAA,CAAA,CAGP,EACAH,EAAK,YAAc,OAEnB,MAAMO,EAAaN,EAAM,WACxB,CAAC,CAAE,UAAAC,EAAW,GAAGC,GAASC,IACzBC,EAAA,IAAC,MAAA,CACA,IAAAD,EACA,UAAWE,EAAG,gCAAiCJ,CAAS,EACvD,GAAGC,CAAA,CAAA,CAGP,EACAI,EAAW,YAAc,aAEzB,MAAMC,EAAYP,EAAM,WACvB,CAAC,CAAE,UAAAC,EAAW,GAAGC,GAASC,IACzBC,EAAA,IAAC,MAAA,CACA,IAAAD,EACA,UAAWE,EAAG,iDAAkDJ,CAAS,EACxE,GAAGC,CAAA,CAAA,CAGP,EACAK,EAAU,YAAc,YAElB,MAAAC,EAAkBR,EAAM,WAG5B,CAAC,CAAE,UAAAC,EAAW,GAAGC,CAAS,EAAAC,UAC1B,MAAI,CAAA,IAAAA,EAAU,UAAWE,EAAG,gCAAiCJ,CAAS,EAAI,GAAGC,EAAO,CACrF,EACDM,EAAgB,YAAc,kBAExB,MAAAC,EAAcT,EAAM,WAGxB,CAAC,CAAE,UAAAC,EAAW,GAAGC,CAAS,EAAAC,UAC1B,MAAI,CAAA,IAAAA,EAAU,UAAWE,EAAG,WAAYJ,CAAS,EAAI,GAAGC,EAAO,CAChE,EACDO,EAAY,YAAc,cAE1B,MAAMC,EAAaV,EAAM,WACxB,CAAC,CAAE,UAAAC,EAAW,GAAGC,GAASC,IACzBC,EAAA,IAAC,MAAI,CAAA,IAAAD,EAAU,UAAWE,EAAG,6BAA8BJ,CAAS,EAAI,GAAGC,CAAO,CAAA,CAEpF,EACAQ,EAAW,YAAc"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{j as r}from"../../assets/jsx-runtime-D_zvdyIk.js";import{C as e,a as i,b as s,c as t,d as o,e as a}from"./card.js";import{B as n}from"../button/button.js";import"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"../button/button.types.js";const m=()=>r.jsxs(e,{className:"w-96",children:[r.jsxs(i,{children:[r.jsx(s,{children:"Title"}),r.jsx(t,{children:"Description"})]}),r.jsx(o,{className:"px-0 pt-2",children:r.jsx("div",{className:"bg-gray-200 w-full h-40 p-6",children:"Content goes here"})}),r.jsx(a,{children:r.jsx(n,{variant:"outline",children:"Close"})})]});m.bind({});
|
|
2
|
+
//# sourceMappingURL=card.stories.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"card.stories.js","sources":["../../../src/components/card/card.stories.tsx"],"sourcesContent":["// organize-imports-ignore\nimport React from 'react'\nimport type { Meta, StoryObj } from '@storybook/react'\nimport {\n\tCard,\n\tCardContent,\n\tCardDescription,\n\tCardFooter,\n\tCardHeader,\n\tCardTitle,\n} from './card'\nimport { Button } from '../button/button'\n\nconst meta: Meta<typeof Card> = {\n\tcomponent: Card,\n}\n\nexport default meta\ntype Story = StoryObj<typeof Button>\n\nconst Template = () => {\n\treturn (\n\t\t<Card className=\"w-96\">\n\t\t\t<CardHeader>\n\t\t\t\t<CardTitle>Title</CardTitle>\n\t\t\t\t<CardDescription>Description</CardDescription>\n\t\t\t</CardHeader>\n\t\t\t<CardContent className=\"px-0 pt-2\">\n\t\t\t\t<div className=\"bg-gray-200 w-full h-40 p-6\">Content goes here</div>\n\t\t\t</CardContent>\n\t\t\t<CardFooter>\n\t\t\t\t<Button variant=\"outline\">Close</Button>\n\t\t\t</CardFooter>\n\t\t</Card>\n\t)\n}\n\nexport const Default: Story = {\n\trender: Template.bind({}),\n\targs: {},\n}\n"],"names":["Template","jsxs","Card","CardHeader","jsx","CardTitle","CardDescription","CardContent","CardFooter","Button"],"mappings":"mYAoBA,MAAMA,EAAW,IAEfC,EAAA,KAACC,EAAK,CAAA,UAAU,OACf,SAAA,CAAAD,OAACE,EACA,CAAA,SAAA,CAAAC,EAAAA,IAACC,GAAU,SAAK,OAAA,CAAA,EAChBD,EAAAA,IAACE,GAAgB,SAAW,aAAA,CAAA,CAAA,EAC7B,EACAF,EAAAA,IAACG,GAAY,UAAU,YACtB,eAAC,MAAI,CAAA,UAAU,8BAA8B,SAAA,mBAAA,CAAiB,CAC/D,CAAA,QACCC,EACA,CAAA,SAAAJ,MAACK,GAAO,QAAQ,UAAU,gBAAK,CAAA,CAChC,CAAA,CAAA,EACD,EAKOT,EAAS,KAAK,EAAE"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"index.js","sources":[],"sourcesContent":[],"names":[],"mappings":""}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{j as e}from"../../assets/jsx-runtime-D_zvdyIk.js";import*as r from"@radix-ui/react-checkbox";import{Check as a}from"lucide-react";import*as c from"react";import{c as o}from"../../lib/utils/cn.js";import"clsx";import"tailwind-merge";const m=c.forwardRef(({className:i,...s},t)=>e.jsx(r.Root,{ref:t,className:o("peer h-4 w-4 shrink-0 rounded-sm border border-primary shadow focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:cursor-not-allowed disabled:opacity-50 data-[state=checked]:bg-primary data-[state=checked]:text-primary-foreground",i),...s,children:e.jsx(r.Indicator,{className:o("flex items-center justify-center text-current"),children:e.jsx(a,{className:"h-4 w-4"})})}));m.displayName=r.Root.displayName;export{m as C};
|
|
2
|
+
//# sourceMappingURL=checkbox.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"checkbox.js","sources":["../../../src/components/checkbox/checkbox.tsx"],"sourcesContent":["import * as CheckboxPrimitive from '@radix-ui/react-checkbox'\nimport { Check } from 'lucide-react'\nimport * as React from 'react'\n\nimport { cn } from '@/lib/utils/cn'\n\nconst Checkbox = React.forwardRef<\n\tReact.ElementRef<typeof CheckboxPrimitive.Root>,\n\tReact.ComponentPropsWithoutRef<typeof CheckboxPrimitive.Root>\n>(({ className, ...props }, ref) => (\n\t<CheckboxPrimitive.Root\n\t\tref={ref}\n\t\tclassName={cn(\n\t\t\t'peer h-4 w-4 shrink-0 rounded-sm border border-primary shadow focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:cursor-not-allowed disabled:opacity-50 data-[state=checked]:bg-primary data-[state=checked]:text-primary-foreground',\n\t\t\tclassName,\n\t\t)}\n\t\t{...props}\n\t>\n\t\t<CheckboxPrimitive.Indicator\n\t\t\tclassName={cn('flex items-center justify-center text-current')}\n\t\t>\n\t\t\t<Check className=\"h-4 w-4\" />\n\t\t</CheckboxPrimitive.Indicator>\n\t</CheckboxPrimitive.Root>\n))\nCheckbox.displayName = CheckboxPrimitive.Root.displayName\n\nexport { Checkbox }\n"],"names":["Checkbox","React","className","props","ref","jsx","CheckboxPrimitive","cn","Check"],"mappings":"+OAMM,MAAAA,EAAWC,EAAM,WAGrB,CAAC,CAAE,UAAAC,EAAW,GAAGC,CAAM,EAAGC,IAC3BC,EAAA,IAACC,EAAkB,KAAlB,CACA,IAAAF,EACA,UAAWG,EACV,qQACAL,CACD,EACC,GAAGC,EAEJ,SAAAE,EAAA,IAACC,EAAkB,UAAlB,CACA,UAAWC,EAAG,+CAA+C,EAE7D,SAAAF,EAAAA,IAACG,EAAM,CAAA,UAAU,SAAU,CAAA,CAAA,CAAA,CAC5B,CACD,CACA,EACDR,EAAS,YAAcM,EAAkB,KAAK"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{j as e}from"../../assets/jsx-runtime-D_zvdyIk.js";import{C as r}from"./checkbox.js";import"@radix-ui/react-checkbox";import"lucide-react";import"react";import"../../lib/utils/cn.js";import"clsx";import"tailwind-merge";const s=()=>e.jsxs("div",{className:"items-top flex space-x-2",children:[e.jsx(r,{id:"terms1"}),e.jsxs("div",{className:"grid gap-1.5 leading-none",children:[e.jsx("label",{htmlFor:"terms1",className:"text-sm font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70",children:"Accept terms and conditions"}),e.jsx("p",{className:"text-sm text-muted-foreground",children:"You agree to our Terms of Service and Privacy Policy."})]})]});s.bind({});
|
|
2
|
+
//# sourceMappingURL=checkbox.stories.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"checkbox.stories.js","sources":["../../../src/components/checkbox/checkbox.stories.tsx"],"sourcesContent":["// organize-imports-ignore\nimport React from 'react'\nimport type { Meta, StoryObj } from '@storybook/react'\n\nimport { Checkbox } from './checkbox'\n\nconst meta: Meta<typeof Checkbox> = {\n\tcomponent: Checkbox,\n}\n\nexport default meta\ntype Story = StoryObj<typeof Checkbox>\n\nconst Template = () => {\n\treturn (\n\t\t<div className=\"items-top flex space-x-2\">\n\t\t\t<Checkbox id=\"terms1\" />\n\t\t\t<div className=\"grid gap-1.5 leading-none\">\n\t\t\t\t<label\n\t\t\t\t\thtmlFor=\"terms1\"\n\t\t\t\t\tclassName=\"text-sm font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70\"\n\t\t\t\t>\n\t\t\t\t\tAccept terms and conditions\n\t\t\t\t</label>\n\t\t\t\t<p className=\"text-sm text-muted-foreground\">\n\t\t\t\t\tYou agree to our Terms of Service and Privacy Policy.\n\t\t\t\t</p>\n\t\t\t</div>\n\t\t</div>\n\t)\n}\n\nexport const Default: Story = {\n\trender: Template.bind({}),\n\targs: {},\n}\n"],"names":["Template","jsxs","jsx","Checkbox"],"mappings":"iOAaA,MAAMA,EAAW,IAEfC,EAAA,KAAC,MAAI,CAAA,UAAU,2BACd,SAAA,CAACC,EAAAA,IAAAC,EAAA,CAAS,GAAG,QAAS,CAAA,EACtBF,EAAAA,KAAC,MAAI,CAAA,UAAU,4BACd,SAAA,CAAAC,EAAA,IAAC,QAAA,CACA,QAAQ,SACR,UAAU,6FACV,SAAA,6BAAA,CAED,EACCA,EAAA,IAAA,IAAA,CAAE,UAAU,gCAAgC,SAE7C,uDAAA,CAAA,CAAA,CACD,CAAA,CAAA,EACD,EAKOF,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 d}from"../../lib/utils/cn.js";import"date-fns-tz";import{Command as e}from"cmdk";import{Search as m}from"lucide-react";import*as s from"react";import"../dialog/dialog.js";import"clsx";import"tailwind-merge";import"@radix-ui/react-dialog";const p=s.forwardRef(({className:a,...o},t)=>r.jsx(e,{ref:t,className:d("flex h-full w-full flex-col overflow-hidden rounded-md bg-popover text-popover-foreground",a),...o}));p.displayName=e.displayName;const n=s.forwardRef(({className:a,...o},t)=>r.jsxs("div",{className:"flex items-center border-b px-3","cmdk-input-wrapper":"",children:[r.jsx(m,{className:"mr-2 h-4 w-4 shrink-0 opacity-50"}),r.jsx(e.Input,{ref:t,className:d("flex h-11 w-full rounded-md bg-transparent py-3 text-sm outline-none placeholder:text-muted-foreground disabled:cursor-not-allowed disabled:opacity-50",a),...o})]}));n.displayName=e.Input.displayName;const i=s.forwardRef(({className:a,...o},t)=>r.jsx(e.List,{ref:t,className:d("max-h-[300px] overflow-y-auto overflow-x-hidden",a),...o}));i.displayName=e.List.displayName;const l=s.forwardRef((a,o)=>r.jsx(e.Empty,{ref:o,className:"py-6 text-center text-sm",...a}));l.displayName=e.Empty.displayName;const c=s.forwardRef(({className:a,...o},t)=>r.jsx(e.Group,{ref:t,className:d("overflow-hidden p-1 text-foreground [&_[cmdk-group-heading]]:px-2 [&_[cmdk-group-heading]]:py-1.5 [&_[cmdk-group-heading]]:text-xs [&_[cmdk-group-heading]]:font-medium [&_[cmdk-group-heading]]:text-muted-foreground",a),...o}));c.displayName=e.Group.displayName;const f=s.forwardRef(({className:a,...o},t)=>r.jsx(e.Separator,{ref:t,className:d("-mx-1 h-px bg-border",a),...o}));f.displayName=e.Separator.displayName;const u=s.forwardRef(({className:a,...o},t)=>r.jsx(e.Item,{ref:t,className:d("relative flex cursor-default gap-2 select-none items-center rounded-sm px-2 py-1.5 text-sm outline-none data-[disabled=true]:pointer-events-none data-[selected='true']:bg-accent data-[selected=true]:text-accent-foreground data-[disabled=true]:opacity-50 [&_svg]:pointer-events-none [&_svg]:size-4 [&_svg]:shrink-0",a),...o}));u.displayName=e.Item.displayName;export{p as C,n as a,i as b,l as c,c as d,u as e,f};
|
|
2
|
+
//# sourceMappingURL=command.js.map
|