@lssm/lib.ui-kit-web 0.0.0-canary-20251120170226
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +73 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.js +0 -0
- package/dist/node_modules/sonner/dist/index.js +912 -0
- package/dist/node_modules/sonner/dist/index.js.map +1 -0
- package/dist/tsconfig.tsbuildinfo +1 -0
- package/dist/ui/accordion.d.ts +25 -0
- package/dist/ui/accordion.d.ts.map +1 -0
- package/dist/ui/accordion.js +49 -0
- package/dist/ui/accordion.js.map +1 -0
- package/dist/ui/alert-dialog.d.ts +49 -0
- package/dist/ui/alert-dialog.d.ts.map +1 -0
- package/dist/ui/alert-dialog.js +86 -0
- package/dist/ui/alert-dialog.js.map +1 -0
- package/dist/ui/alert.d.ts +25 -0
- package/dist/ui/alert.d.ts.map +1 -0
- package/dist/ui/alert.js +39 -0
- package/dist/ui/alert.js.map +1 -0
- package/dist/ui/aspect-ratio.d.ts +8 -0
- package/dist/ui/aspect-ratio.d.ts.map +1 -0
- package/dist/ui/aspect-ratio.js +11 -0
- package/dist/ui/aspect-ratio.js.map +1 -0
- package/dist/ui/atoms/FilterSelect/FilterSelect.d.ts +8 -0
- package/dist/ui/atoms/FilterSelect/FilterSelect.d.ts.map +1 -0
- package/dist/ui/atoms/FilterSelect/FilterSelect.js +53 -0
- package/dist/ui/atoms/FilterSelect/FilterSelect.js.map +1 -0
- package/dist/ui/atoms/FilterSelect/index.d.ts +3 -0
- package/dist/ui/atoms/FilterSelect/index.js +3 -0
- package/dist/ui/atoms/FilterSelect/types.d.ts +19 -0
- package/dist/ui/atoms/FilterSelect/types.d.ts.map +1 -0
- package/dist/ui/atoms/FilterSelect/types.js +0 -0
- package/dist/ui/atoms/LoadingSpinner/LoadingSpinner.d.ts +23 -0
- package/dist/ui/atoms/LoadingSpinner/LoadingSpinner.d.ts.map +1 -0
- package/dist/ui/atoms/LoadingSpinner/LoadingSpinner.js +46 -0
- package/dist/ui/atoms/LoadingSpinner/LoadingSpinner.js.map +1 -0
- package/dist/ui/atoms/LoadingSpinner/index.d.ts +2 -0
- package/dist/ui/atoms/LoadingSpinner/index.js +3 -0
- package/dist/ui/atoms/Pagination/Pagination.d.ts +8 -0
- package/dist/ui/atoms/Pagination/Pagination.d.ts.map +1 -0
- package/dist/ui/atoms/Pagination/Pagination.js +157 -0
- package/dist/ui/atoms/Pagination/Pagination.js.map +1 -0
- package/dist/ui/atoms/Pagination/index.d.ts +3 -0
- package/dist/ui/atoms/Pagination/index.js +3 -0
- package/dist/ui/atoms/Pagination/types.d.ts +16 -0
- package/dist/ui/atoms/Pagination/types.d.ts.map +1 -0
- package/dist/ui/atoms/Pagination/types.js +0 -0
- package/dist/ui/atoms/SearchInput/SearchInput.d.ts +8 -0
- package/dist/ui/atoms/SearchInput/SearchInput.d.ts.map +1 -0
- package/dist/ui/atoms/SearchInput/SearchInput.js +50 -0
- package/dist/ui/atoms/SearchInput/SearchInput.js.map +1 -0
- package/dist/ui/atoms/SearchInput/index.d.ts +3 -0
- package/dist/ui/atoms/SearchInput/index.js +3 -0
- package/dist/ui/atoms/SearchInput/types.d.ts +13 -0
- package/dist/ui/atoms/SearchInput/types.d.ts.map +1 -0
- package/dist/ui/atoms/SearchInput/types.js +0 -0
- package/dist/ui/avatar.d.ts +20 -0
- package/dist/ui/avatar.d.ts.map +1 -0
- package/dist/ui/avatar.js +34 -0
- package/dist/ui/avatar.js.map +1 -0
- package/dist/ui/badge.d.ts +20 -0
- package/dist/ui/badge.d.ts.map +1 -0
- package/dist/ui/badge.js +27 -0
- package/dist/ui/badge.js.map +1 -0
- package/dist/ui/breadcrumb.d.ts +38 -0
- package/dist/ui/breadcrumb.d.ts.map +1 -0
- package/dist/ui/breadcrumb.js +72 -0
- package/dist/ui/breadcrumb.js.map +1 -0
- package/dist/ui/button.d.ts +23 -0
- package/dist/ui/button.d.ts.map +1 -0
- package/dist/ui/button.js +44 -0
- package/dist/ui/button.js.map +1 -0
- package/dist/ui/calendar.d.ts +27 -0
- package/dist/ui/calendar.d.ts.map +1 -0
- package/dist/ui/calendar.js +110 -0
- package/dist/ui/calendar.js.map +1 -0
- package/dist/ui/card.d.ts +35 -0
- package/dist/ui/card.d.ts.map +1 -0
- package/dist/ui/card.js +58 -0
- package/dist/ui/card.js.map +1 -0
- package/dist/ui/carousel.d.ts +48 -0
- package/dist/ui/carousel.d.ts.map +1 -0
- package/dist/ui/carousel.js +137 -0
- package/dist/ui/carousel.js.map +1 -0
- package/dist/ui/checkbox.d.ts +12 -0
- package/dist/ui/checkbox.d.ts.map +1 -0
- package/dist/ui/checkbox.js +26 -0
- package/dist/ui/checkbox.js.map +1 -0
- package/dist/ui/collapsible.d.ts +16 -0
- package/dist/ui/collapsible.d.ts.map +1 -0
- package/dist/ui/collapsible.js +29 -0
- package/dist/ui/collapsible.js.map +1 -0
- package/dist/ui/command.d.ts +53 -0
- package/dist/ui/command.d.ts.map +1 -0
- package/dist/ui/command.js +91 -0
- package/dist/ui/command.js.map +1 -0
- package/dist/ui/confirm-dialog.d.ts +31 -0
- package/dist/ui/confirm-dialog.d.ts.map +1 -0
- package/dist/ui/confirm-dialog.js +34 -0
- package/dist/ui/confirm-dialog.js.map +1 -0
- package/dist/ui/context-menu.d.ts +35 -0
- package/dist/ui/context-menu.d.ts.map +1 -0
- package/dist/ui/context-menu.js +85 -0
- package/dist/ui/context-menu.js.map +1 -0
- package/dist/ui/cta.d.ts +15 -0
- package/dist/ui/cta.d.ts.map +1 -0
- package/dist/ui/cta.js +39 -0
- package/dist/ui/cta.js.map +1 -0
- package/dist/ui/date-picker.d.ts +26 -0
- package/dist/ui/date-picker.d.ts.map +1 -0
- package/dist/ui/date-picker.js +102 -0
- package/dist/ui/date-picker.js.map +1 -0
- package/dist/ui/date-range-picker.d.ts +26 -0
- package/dist/ui/date-range-picker.d.ts.map +1 -0
- package/dist/ui/date-range-picker.js +55 -0
- package/dist/ui/date-range-picker.js.map +1 -0
- package/dist/ui/datetime-picker.d.ts +28 -0
- package/dist/ui/datetime-picker.d.ts.map +1 -0
- package/dist/ui/datetime-picker.js +45 -0
- package/dist/ui/datetime-picker.js.map +1 -0
- package/dist/ui/dialog.d.ts +48 -0
- package/dist/ui/dialog.d.ts.map +1 -0
- package/dist/ui/dialog.js +91 -0
- package/dist/ui/dialog.js.map +1 -0
- package/dist/ui/drawer.d.ts +45 -0
- package/dist/ui/drawer.d.ts.map +1 -0
- package/dist/ui/drawer.js +83 -0
- package/dist/ui/drawer.js.map +1 -0
- package/dist/ui/dropdown-menu.d.ts +78 -0
- package/dist/ui/dropdown-menu.d.ts.map +1 -0
- package/dist/ui/dropdown-menu.js +128 -0
- package/dist/ui/dropdown-menu.js.map +1 -0
- package/dist/ui/empty-state.d.ts +29 -0
- package/dist/ui/empty-state.d.ts.map +1 -0
- package/dist/ui/empty-state.js +43 -0
- package/dist/ui/empty-state.js.map +1 -0
- package/dist/ui/empty.d.ts +36 -0
- package/dist/ui/empty.d.ts.map +1 -0
- package/dist/ui/empty.js +62 -0
- package/dist/ui/empty.js.map +1 -0
- package/dist/ui/field.d.ts +65 -0
- package/dist/ui/field.d.ts.map +1 -0
- package/dist/ui/field.js +122 -0
- package/dist/ui/field.js.map +1 -0
- package/dist/ui/focus-on-route-change.d.ts +9 -0
- package/dist/ui/focus-on-route-change.d.ts.map +1 -0
- package/dist/ui/focus-on-route-change.js +17 -0
- package/dist/ui/focus-on-route-change.js.map +1 -0
- package/dist/ui/form.d.ts +47 -0
- package/dist/ui/form.d.ts.map +1 -0
- package/dist/ui/form.js +95 -0
- package/dist/ui/form.js.map +1 -0
- package/dist/ui/hover-card.d.ts +20 -0
- package/dist/ui/hover-card.d.ts.map +1 -0
- package/dist/ui/hover-card.js +37 -0
- package/dist/ui/hover-card.js.map +1 -0
- package/dist/ui/input-group.d.ts +44 -0
- package/dist/ui/input-group.d.ts.map +1 -0
- package/dist/ui/input-group.js +84 -0
- package/dist/ui/input-group.js.map +1 -0
- package/dist/ui/input-otp.d.ts +39 -0
- package/dist/ui/input-otp.d.ts.map +1 -0
- package/dist/ui/input-otp.js +47 -0
- package/dist/ui/input-otp.js.map +1 -0
- package/dist/ui/input.d.ts +13 -0
- package/dist/ui/input.d.ts.map +1 -0
- package/dist/ui/input.js +17 -0
- package/dist/ui/input.js.map +1 -0
- package/dist/ui/label.d.ts +12 -0
- package/dist/ui/label.d.ts.map +1 -0
- package/dist/ui/label.js +20 -0
- package/dist/ui/label.js.map +1 -0
- package/dist/ui/link.d.ts +9 -0
- package/dist/ui/link.d.ts.map +1 -0
- package/dist/ui/link.js +18 -0
- package/dist/ui/link.js.map +1 -0
- package/dist/ui/live-region.d.ts +17 -0
- package/dist/ui/live-region.d.ts.map +1 -0
- package/dist/ui/live-region.js +48 -0
- package/dist/ui/live-region.js.map +1 -0
- package/dist/ui/loading-button.d.ts +20 -0
- package/dist/ui/loading-button.d.ts.map +1 -0
- package/dist/ui/loading-button.js +21 -0
- package/dist/ui/loading-button.js.map +1 -0
- package/dist/ui/map/MapBase.d.ts +29 -0
- package/dist/ui/map/MapBase.d.ts.map +1 -0
- package/dist/ui/map/MapBase.js +48 -0
- package/dist/ui/map/MapBase.js.map +1 -0
- package/dist/ui/map/MapGeoJsonOverlay.d.ts +16 -0
- package/dist/ui/map/MapGeoJsonOverlay.d.ts.map +1 -0
- package/dist/ui/map/MapGeoJsonOverlay.js +39 -0
- package/dist/ui/map/MapGeoJsonOverlay.js.map +1 -0
- package/dist/ui/map/MapHeatmapH3.d.ts +18 -0
- package/dist/ui/map/MapHeatmapH3.d.ts.map +1 -0
- package/dist/ui/map/MapHeatmapH3.js +52 -0
- package/dist/ui/map/MapHeatmapH3.js.map +1 -0
- package/dist/ui/map/MapMarkers.d.ts +20 -0
- package/dist/ui/map/MapMarkers.d.ts.map +1 -0
- package/dist/ui/map/MapMarkers.js +35 -0
- package/dist/ui/map/MapMarkers.js.map +1 -0
- package/dist/ui/map/index.d.ts +5 -0
- package/dist/ui/map/index.js +6 -0
- package/dist/ui/marketing/FeatureGrid.d.ts +21 -0
- package/dist/ui/marketing/FeatureGrid.d.ts.map +1 -0
- package/dist/ui/marketing/FeatureGrid.js +35 -0
- package/dist/ui/marketing/FeatureGrid.js.map +1 -0
- package/dist/ui/marketing/Hero.d.ts +28 -0
- package/dist/ui/marketing/Hero.d.ts.map +1 -0
- package/dist/ui/marketing/Hero.js +53 -0
- package/dist/ui/marketing/Hero.js.map +1 -0
- package/dist/ui/marketing/PricingTable.d.ts +25 -0
- package/dist/ui/marketing/PricingTable.d.ts.map +1 -0
- package/dist/ui/marketing/PricingTable.js +60 -0
- package/dist/ui/marketing/PricingTable.js.map +1 -0
- package/dist/ui/marketing/index.d.ts +4 -0
- package/dist/ui/marketing/index.js +5 -0
- package/dist/ui/menubar.d.ts +85 -0
- package/dist/ui/menubar.d.ts.map +1 -0
- package/dist/ui/menubar.js +138 -0
- package/dist/ui/menubar.js.map +1 -0
- package/dist/ui/molecules/Autocomplete/index.d.ts +7 -0
- package/dist/ui/molecules/Autocomplete/index.d.ts.map +1 -0
- package/dist/ui/molecules/Autocomplete/index.js +86 -0
- package/dist/ui/molecules/Autocomplete/index.js.map +1 -0
- package/dist/ui/molecules/SearchAndFilter/SearchAndFilter.d.ts +8 -0
- package/dist/ui/molecules/SearchAndFilter/SearchAndFilter.d.ts.map +1 -0
- package/dist/ui/molecules/SearchAndFilter/SearchAndFilter.js +103 -0
- package/dist/ui/molecules/SearchAndFilter/SearchAndFilter.js.map +1 -0
- package/dist/ui/molecules/SearchAndFilter/index.d.ts +3 -0
- package/dist/ui/molecules/SearchAndFilter/index.js +3 -0
- package/dist/ui/molecules/SearchAndFilter/types.d.ts +24 -0
- package/dist/ui/molecules/SearchAndFilter/types.d.ts.map +1 -0
- package/dist/ui/molecules/SearchAndFilter/types.js +0 -0
- package/dist/ui/molecules/SkeletonList.d.ts +16 -0
- package/dist/ui/molecules/SkeletonList.d.ts.map +1 -0
- package/dist/ui/molecules/SkeletonList.js +15 -0
- package/dist/ui/molecules/SkeletonList.js.map +1 -0
- package/dist/ui/nav-layout.d.ts +71 -0
- package/dist/ui/nav-layout.d.ts.map +1 -0
- package/dist/ui/nav-layout.js +133 -0
- package/dist/ui/nav-layout.js.map +1 -0
- package/dist/ui/navigation-menu.d.ts +47 -0
- package/dist/ui/navigation-menu.d.ts.map +1 -0
- package/dist/ui/navigation-menu.js +83 -0
- package/dist/ui/navigation-menu.js.map +1 -0
- package/dist/ui/organisms/ErrorBoundary/ErrorBoundary.d.ts +30 -0
- package/dist/ui/organisms/ErrorBoundary/ErrorBoundary.d.ts.map +1 -0
- package/dist/ui/organisms/ErrorBoundary/ErrorBoundary.js +108 -0
- package/dist/ui/organisms/ErrorBoundary/ErrorBoundary.js.map +1 -0
- package/dist/ui/organisms/ErrorBoundary/index.d.ts +2 -0
- package/dist/ui/organisms/ErrorBoundary/index.js +3 -0
- package/dist/ui/organisms/ListPage/ListPage.d.ts +29 -0
- package/dist/ui/organisms/ListPage/ListPage.d.ts.map +1 -0
- package/dist/ui/organisms/ListPage/ListPage.js +198 -0
- package/dist/ui/organisms/ListPage/ListPage.js.map +1 -0
- package/dist/ui/organisms/ListPage/index.d.ts +3 -0
- package/dist/ui/organisms/ListPage/index.js +3 -0
- package/dist/ui/organisms/ListPage/types.d.ts +41 -0
- package/dist/ui/organisms/ListPage/types.d.ts.map +1 -0
- package/dist/ui/organisms/ListPage/types.js +0 -0
- package/dist/ui/page-header.d.ts +27 -0
- package/dist/ui/page-header.d.ts.map +1 -0
- package/dist/ui/page-header.js +40 -0
- package/dist/ui/page-header.js.map +1 -0
- package/dist/ui/pagination.d.ts +50 -0
- package/dist/ui/pagination.d.ts.map +1 -0
- package/dist/ui/pagination.js +65 -0
- package/dist/ui/pagination.js.map +1 -0
- package/dist/ui/popover.d.ts +23 -0
- package/dist/ui/popover.d.ts.map +1 -0
- package/dist/ui/popover.js +40 -0
- package/dist/ui/popover.js.map +1 -0
- package/dist/ui/progress.d.ts +13 -0
- package/dist/ui/progress.d.ts.map +1 -0
- package/dist/ui/progress.js +25 -0
- package/dist/ui/progress.js.map +1 -0
- package/dist/ui/radio-group.d.ts +16 -0
- package/dist/ui/radio-group.d.ts.map +1 -0
- package/dist/ui/radio-group.js +33 -0
- package/dist/ui/radio-group.js.map +1 -0
- package/dist/ui/resizable.d.ts +36 -0
- package/dist/ui/resizable.d.ts.map +1 -0
- package/dist/ui/resizable.js +26 -0
- package/dist/ui/resizable.js.map +1 -0
- package/dist/ui/route-announcer.d.ts +11 -0
- package/dist/ui/route-announcer.d.ts.map +1 -0
- package/dist/ui/route-announcer.js +23 -0
- package/dist/ui/route-announcer.js.map +1 -0
- package/dist/ui/scroll-area.d.ts +18 -0
- package/dist/ui/scroll-area.d.ts.map +1 -0
- package/dist/ui/scroll-area.js +41 -0
- package/dist/ui/scroll-area.js.map +1 -0
- package/dist/ui/section.d.ts +27 -0
- package/dist/ui/section.d.ts.map +1 -0
- package/dist/ui/section.js +63 -0
- package/dist/ui/section.js.map +1 -0
- package/dist/ui/select.d.ts +52 -0
- package/dist/ui/select.d.ts.map +1 -0
- package/dist/ui/select.js +101 -0
- package/dist/ui/select.js.map +1 -0
- package/dist/ui/separator.d.ts +14 -0
- package/dist/ui/separator.d.ts.map +1 -0
- package/dist/ui/separator.js +22 -0
- package/dist/ui/separator.js.map +1 -0
- package/dist/ui/sheet.d.ts +41 -0
- package/dist/ui/sheet.d.ts.map +1 -0
- package/dist/ui/sheet.js +87 -0
- package/dist/ui/sheet.js.map +1 -0
- package/dist/ui/sidebar.d.ts +167 -0
- package/dist/ui/sidebar.d.ts.map +1 -0
- package/dist/ui/sidebar.js +380 -0
- package/dist/ui/sidebar.js.map +1 -0
- package/dist/ui/skeleton.d.ts +10 -0
- package/dist/ui/skeleton.d.ts.map +1 -0
- package/dist/ui/skeleton.js +15 -0
- package/dist/ui/skeleton.js.map +1 -0
- package/dist/ui/skip-link.d.ts +17 -0
- package/dist/ui/skip-link.d.ts.map +1 -0
- package/dist/ui/skip-link.js +17 -0
- package/dist/ui/skip-link.js.map +1 -0
- package/dist/ui/slider.d.ts +16 -0
- package/dist/ui/slider.d.ts.map +1 -0
- package/dist/ui/slider.js +41 -0
- package/dist/ui/slider.js.map +1 -0
- package/dist/ui/sonner.d.ts +10 -0
- package/dist/ui/sonner.d.ts.map +1 -0
- package/dist/ui/sonner.js +25 -0
- package/dist/ui/sonner.js.map +1 -0
- package/dist/ui/stack.d.ts +48 -0
- package/dist/ui/stack.d.ts.map +1 -0
- package/dist/ui/stack.js +158 -0
- package/dist/ui/stack.js.map +1 -0
- package/dist/ui/stat-card-group.d.ts +19 -0
- package/dist/ui/stat-card-group.d.ts.map +1 -0
- package/dist/ui/stat-card-group.js +39 -0
- package/dist/ui/stat-card-group.js.map +1 -0
- package/dist/ui/stepper.d.ts +23 -0
- package/dist/ui/stepper.d.ts.map +1 -0
- package/dist/ui/stepper.js +37 -0
- package/dist/ui/stepper.js.map +1 -0
- package/dist/ui/switch.d.ts +12 -0
- package/dist/ui/switch.d.ts.map +1 -0
- package/dist/ui/switch.js +24 -0
- package/dist/ui/switch.js.map +1 -0
- package/dist/ui/table.d.ts +39 -0
- package/dist/ui/table.d.ts.map +1 -0
- package/dist/ui/table.js +72 -0
- package/dist/ui/table.js.map +1 -0
- package/dist/ui/tabs.d.ts +24 -0
- package/dist/ui/tabs.d.ts.map +1 -0
- package/dist/ui/tabs.js +41 -0
- package/dist/ui/tabs.js.map +1 -0
- package/dist/ui/text.d.ts +16 -0
- package/dist/ui/text.d.ts.map +1 -0
- package/dist/ui/text.js +16 -0
- package/dist/ui/text.js.map +1 -0
- package/dist/ui/textarea.d.ts +12 -0
- package/dist/ui/textarea.d.ts.map +1 -0
- package/dist/ui/textarea.js +16 -0
- package/dist/ui/textarea.js.map +1 -0
- package/dist/ui/time-picker.d.ts +22 -0
- package/dist/ui/time-picker.d.ts.map +1 -0
- package/dist/ui/time-picker.js +82 -0
- package/dist/ui/time-picker.js.map +1 -0
- package/dist/ui/toast.d.ts +20 -0
- package/dist/ui/toast.d.ts.map +1 -0
- package/dist/ui/toast.js +63 -0
- package/dist/ui/toast.js.map +1 -0
- package/dist/ui/toaster.d.ts +7 -0
- package/dist/ui/toaster.d.ts.map +1 -0
- package/dist/ui/toaster.js +28 -0
- package/dist/ui/toaster.js.map +1 -0
- package/dist/ui/toggle-group.d.ts +24 -0
- package/dist/ui/toggle-group.d.ts.map +1 -0
- package/dist/ui/toggle-group.js +49 -0
- package/dist/ui/toggle-group.js.map +1 -0
- package/dist/ui/toggle.d.ts +20 -0
- package/dist/ui/toggle.d.ts.map +1 -0
- package/dist/ui/toggle.js +42 -0
- package/dist/ui/toggle.js.map +1 -0
- package/dist/ui/tooltip.d.ts +24 -0
- package/dist/ui/tooltip.d.ts.map +1 -0
- package/dist/ui/tooltip.js +41 -0
- package/dist/ui/tooltip.js.map +1 -0
- package/dist/ui/typography.d.ts +65 -0
- package/dist/ui/typography.d.ts.map +1 -0
- package/dist/ui/typography.js +87 -0
- package/dist/ui/typography.js.map +1 -0
- package/dist/ui/use-media-query.d.ts +5 -0
- package/dist/ui/use-media-query.d.ts.map +1 -0
- package/dist/ui/use-media-query.js +20 -0
- package/dist/ui/use-media-query.js.map +1 -0
- package/dist/ui/use-mobile.d.ts +5 -0
- package/dist/ui/use-mobile.d.ts.map +1 -0
- package/dist/ui/use-mobile.js +21 -0
- package/dist/ui/use-mobile.js.map +1 -0
- package/dist/ui/use-reduced-motion.d.ts +5 -0
- package/dist/ui/use-reduced-motion.d.ts.map +1 -0
- package/dist/ui/use-reduced-motion.js +18 -0
- package/dist/ui/use-reduced-motion.js.map +1 -0
- package/dist/ui/use-toast.d.ts +50 -0
- package/dist/ui/use-toast.d.ts.map +1 -0
- package/dist/ui/use-toast.js +123 -0
- package/dist/ui/use-toast.js.map +1 -0
- package/dist/ui/useListState.d.ts +34 -0
- package/dist/ui/useListState.d.ts.map +1 -0
- package/dist/ui/useListState.js +75 -0
- package/dist/ui/useListState.js.map +1 -0
- package/dist/ui/usecases/UseCaseCard.d.ts +19 -0
- package/dist/ui/usecases/UseCaseCard.d.ts.map +1 -0
- package/dist/ui/usecases/UseCaseCard.js +35 -0
- package/dist/ui/usecases/UseCaseCard.js.map +1 -0
- package/dist/ui/usecases/UserStoryCard.d.ts +15 -0
- package/dist/ui/usecases/UserStoryCard.d.ts.map +1 -0
- package/dist/ui/usecases/UserStoryCard.js +36 -0
- package/dist/ui/usecases/UserStoryCard.js.map +1 -0
- package/dist/ui/usecases/index.d.ts +3 -0
- package/dist/ui/usecases/index.js +4 -0
- package/dist/ui/utils.d.ts +7 -0
- package/dist/ui/utils.d.ts.map +1 -0
- package/dist/ui/utils.js +11 -0
- package/dist/ui/utils.js.map +1 -0
- package/dist/ui/visually-hidden.d.ts +10 -0
- package/dist/ui/visually-hidden.d.ts.map +1 -0
- package/dist/ui/visually-hidden.js +31 -0
- package/dist/ui/visually-hidden.js.map +1 -0
- package/package.json +222 -0
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import { Dialog } from "./dialog.js";
|
|
2
|
+
import * as React$1 from "react";
|
|
3
|
+
import * as react_jsx_runtime92 from "react/jsx-runtime";
|
|
4
|
+
import { Command as Command$1 } from "cmdk";
|
|
5
|
+
|
|
6
|
+
//#region ui/command.d.ts
|
|
7
|
+
declare function Command({
|
|
8
|
+
className,
|
|
9
|
+
...props
|
|
10
|
+
}: React$1.ComponentProps<typeof Command$1>): react_jsx_runtime92.JSX.Element;
|
|
11
|
+
declare function CommandDialog({
|
|
12
|
+
title,
|
|
13
|
+
description,
|
|
14
|
+
children,
|
|
15
|
+
className,
|
|
16
|
+
showCloseButton,
|
|
17
|
+
...props
|
|
18
|
+
}: React$1.ComponentProps<typeof Dialog> & {
|
|
19
|
+
title?: string;
|
|
20
|
+
description?: string;
|
|
21
|
+
className?: string;
|
|
22
|
+
showCloseButton?: boolean;
|
|
23
|
+
}): react_jsx_runtime92.JSX.Element;
|
|
24
|
+
declare function CommandInput({
|
|
25
|
+
className,
|
|
26
|
+
...props
|
|
27
|
+
}: React$1.ComponentProps<typeof Command$1.Input>): react_jsx_runtime92.JSX.Element;
|
|
28
|
+
declare function CommandList({
|
|
29
|
+
className,
|
|
30
|
+
...props
|
|
31
|
+
}: React$1.ComponentProps<typeof Command$1.List>): react_jsx_runtime92.JSX.Element;
|
|
32
|
+
declare function CommandEmpty({
|
|
33
|
+
...props
|
|
34
|
+
}: React$1.ComponentProps<typeof Command$1.Empty>): react_jsx_runtime92.JSX.Element;
|
|
35
|
+
declare function CommandGroup({
|
|
36
|
+
className,
|
|
37
|
+
...props
|
|
38
|
+
}: React$1.ComponentProps<typeof Command$1.Group>): react_jsx_runtime92.JSX.Element;
|
|
39
|
+
declare function CommandSeparator({
|
|
40
|
+
className,
|
|
41
|
+
...props
|
|
42
|
+
}: React$1.ComponentProps<typeof Command$1.Separator>): react_jsx_runtime92.JSX.Element;
|
|
43
|
+
declare function CommandItem({
|
|
44
|
+
className,
|
|
45
|
+
...props
|
|
46
|
+
}: React$1.ComponentProps<typeof Command$1.Item>): react_jsx_runtime92.JSX.Element;
|
|
47
|
+
declare function CommandShortcut({
|
|
48
|
+
className,
|
|
49
|
+
...props
|
|
50
|
+
}: React$1.ComponentProps<'span'>): react_jsx_runtime92.JSX.Element;
|
|
51
|
+
//#endregion
|
|
52
|
+
export { Command, CommandDialog, CommandEmpty, CommandGroup, CommandInput, CommandItem, CommandList, CommandSeparator, CommandShortcut };
|
|
53
|
+
//# sourceMappingURL=command.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"command.d.ts","names":[],"sources":["../../ui/command.tsx"],"sourcesContent":[],"mappings":";;;;;;iBAeS,OAAA;;;GAGN,OAAA,CAAM,sBAAsB,aAAiB,mBAAA,CAAA,GAAA,CAAA;iBAavC,aAAA;;;;;;;GAON,OAAA,CAAM,sBAAsB;;EAvBtB,WAAO,CAAA,EAAA,MAAA;EACd,SAAA,CAAA,EAAA,MAAA;EAE6B,eAAA,CAAA,EAAA,OAAA;CAA5B,CAAA,EAyBF,mBAAA,CAAA,GAAA,CAAA,OAzBQ;iBA4CA,YAAA,CA5CuC;EAAA,SAAA;EAAA,GAAA;AAAA,CAAA,EA+C7C,OAAA,CAAM,cA/CuC,CAAA,OA+CjB,SAAA,CAAiB,KA/CA,CAAA,CAAA,EA+CM,mBAAA,CAAA,GAAA,CAAA,OA/CN;iBAkEvC,WAAA,CAlEuC;EAAA,SAAA;EAAA,GAAA;AAAA,CAAA,EAqE7C,OAAA,CAAM,cArEuC,CAAA,OAqEjB,SAAA,CAAiB,IArEA,CAAA,CAAA,EAqEK,mBAAA,CAAA,GAAA,CAAA,OArEL;AAAA,iBAkFvC,YAAA,CArEa;EAAA,GAAA;AAAA,CAAA,EAuEnB,OAAA,CAAM,cAvEa,CAAA,OAuES,SAAA,CAAiB,KAvE1B,CAAA,CAAA,EAuEgC,mBAAA,CAAA,GAAA,CAAA,OAvEhC;iBAiFb,YAAA,CAhFP;EAAA,SAAA;EAAA,GAAA;AAAA,CAAA,EAmFC,OAAA,CAAM,cAnFP,CAAA,OAmF6B,SAAA,CAAiB,KAnF9C,CAAA,CAAA,EAmFoD,mBAAA,CAAA,GAAA,CAAA,OAnFpD;iBAgGO,gBAAA,CA/FP;EAAA,SAAA;EAAA,GAAA;AAAA,CAAA,EAkGC,OAAA,CAAM,cAlGP,CAAA,OAkG6B,SAAA,CAAiB,SAlG9C,CAAA,CAAA,EAkGwD,mBAAA,CAAA,GAAA,CAAA,OAlGxD;iBA4GO,WAAA,CA3GP;EAAA,SAAA;EAAA,GAAA;AAAA,CAAA,EA8GC,OAAA,CAAM,cA9GP,CAAA,OA8G6B,SAAA,CAAiB,IA9G9C,CAAA,CAAA,EA8GmD,mBAAA,CAAA,GAAA,CAAA,OA9GnD;iBA2HO,eAAA,CA1HP;EAAA,SAAA;EAAA,GAAA;AAAA,CAAA,EA6HC,OAAA,CAAM,cA7HP,CAAA,MAAA,CAAA,CAAA,EA6H6B,mBAAA,CAAA,GAAA,CAAA,OA7H7B"}
|
|
@@ -0,0 +1,91 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
import { cn } from "./utils.js";
|
|
5
|
+
import { Dialog, DialogContent, DialogDescription, DialogHeader, DialogTitle } from "./dialog.js";
|
|
6
|
+
import "react";
|
|
7
|
+
import { SearchIcon } from "lucide-react";
|
|
8
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
9
|
+
import { Command as Command$1 } from "cmdk";
|
|
10
|
+
|
|
11
|
+
//#region ui/command.tsx
|
|
12
|
+
function Command({ className,...props }) {
|
|
13
|
+
return /* @__PURE__ */ jsx(Command$1, {
|
|
14
|
+
"data-slot": "command",
|
|
15
|
+
className: cn("bg-popover text-popover-foreground flex h-full w-full flex-col overflow-hidden rounded-md", className),
|
|
16
|
+
...props
|
|
17
|
+
});
|
|
18
|
+
}
|
|
19
|
+
function CommandDialog({ title = "Command Palette", description = "Search for a command to run...", children, className, showCloseButton = true,...props }) {
|
|
20
|
+
return /* @__PURE__ */ jsxs(Dialog, {
|
|
21
|
+
...props,
|
|
22
|
+
children: [/* @__PURE__ */ jsxs(DialogHeader, {
|
|
23
|
+
className: "sr-only",
|
|
24
|
+
children: [/* @__PURE__ */ jsx(DialogTitle, { children: title }), /* @__PURE__ */ jsx(DialogDescription, { children: description })]
|
|
25
|
+
}), /* @__PURE__ */ jsx(DialogContent, {
|
|
26
|
+
className: cn("overflow-hidden p-0", className),
|
|
27
|
+
showCloseButton,
|
|
28
|
+
children: /* @__PURE__ */ jsx(Command, {
|
|
29
|
+
className: "[&_[cmdk-group-heading]]:text-muted-foreground **:data-[slot=command-input-wrapper]:h-12 [&_[cmdk-group-heading]]:px-2 [&_[cmdk-group-heading]]:font-medium [&_[cmdk-group]]:px-2 [&_[cmdk-group]:not([hidden])_~[cmdk-group]]:pt-0 [&_[cmdk-input-wrapper]_svg]:h-5 [&_[cmdk-input-wrapper]_svg]:w-5 [&_[cmdk-input]]:h-12 [&_[cmdk-item]]:px-2 [&_[cmdk-item]]:py-3 [&_[cmdk-item]_svg]:h-5 [&_[cmdk-item]_svg]:w-5",
|
|
30
|
+
children
|
|
31
|
+
})
|
|
32
|
+
})]
|
|
33
|
+
});
|
|
34
|
+
}
|
|
35
|
+
function CommandInput({ className,...props }) {
|
|
36
|
+
return /* @__PURE__ */ jsxs("div", {
|
|
37
|
+
"data-slot": "command-input-wrapper",
|
|
38
|
+
className: "flex h-9 items-center gap-2 border-b px-3",
|
|
39
|
+
children: [/* @__PURE__ */ jsx(SearchIcon, { className: "size-4 shrink-0 opacity-50" }), /* @__PURE__ */ jsx(Command$1.Input, {
|
|
40
|
+
"data-slot": "command-input",
|
|
41
|
+
className: cn("placeholder:text-muted-foreground flex h-10 w-full rounded-md bg-transparent py-3 text-sm outline-hidden disabled:cursor-not-allowed disabled:opacity-50", className),
|
|
42
|
+
...props
|
|
43
|
+
})]
|
|
44
|
+
});
|
|
45
|
+
}
|
|
46
|
+
function CommandList({ className,...props }) {
|
|
47
|
+
return /* @__PURE__ */ jsx(Command$1.List, {
|
|
48
|
+
"data-slot": "command-list",
|
|
49
|
+
className: cn("max-h-[300px] scroll-py-1 overflow-x-hidden overflow-y-auto", className),
|
|
50
|
+
...props
|
|
51
|
+
});
|
|
52
|
+
}
|
|
53
|
+
function CommandEmpty({ ...props }) {
|
|
54
|
+
return /* @__PURE__ */ jsx(Command$1.Empty, {
|
|
55
|
+
"data-slot": "command-empty",
|
|
56
|
+
className: "py-6 text-center text-sm",
|
|
57
|
+
...props
|
|
58
|
+
});
|
|
59
|
+
}
|
|
60
|
+
function CommandGroup({ className,...props }) {
|
|
61
|
+
return /* @__PURE__ */ jsx(Command$1.Group, {
|
|
62
|
+
"data-slot": "command-group",
|
|
63
|
+
className: cn("text-foreground [&_[cmdk-group-heading]]:text-muted-foreground overflow-hidden p-1 [&_[cmdk-group-heading]]:px-2 [&_[cmdk-group-heading]]:py-1.5 [&_[cmdk-group-heading]]:text-xs [&_[cmdk-group-heading]]:font-medium", className),
|
|
64
|
+
...props
|
|
65
|
+
});
|
|
66
|
+
}
|
|
67
|
+
function CommandSeparator({ className,...props }) {
|
|
68
|
+
return /* @__PURE__ */ jsx(Command$1.Separator, {
|
|
69
|
+
"data-slot": "command-separator",
|
|
70
|
+
className: cn("bg-border -mx-1 h-px", className),
|
|
71
|
+
...props
|
|
72
|
+
});
|
|
73
|
+
}
|
|
74
|
+
function CommandItem({ className,...props }) {
|
|
75
|
+
return /* @__PURE__ */ jsx(Command$1.Item, {
|
|
76
|
+
"data-slot": "command-item",
|
|
77
|
+
className: cn("data-[selected=true]:bg-accent data-[selected=true]:text-accent-foreground [&_svg:not([class*='text-'])]:text-muted-foreground relative flex cursor-default items-center gap-2 rounded-xs px-2 py-1.5 text-sm outline-hidden select-none data-[disabled=true]:pointer-events-none data-[disabled=true]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4", className),
|
|
78
|
+
...props
|
|
79
|
+
});
|
|
80
|
+
}
|
|
81
|
+
function CommandShortcut({ className,...props }) {
|
|
82
|
+
return /* @__PURE__ */ jsx("span", {
|
|
83
|
+
"data-slot": "command-shortcut",
|
|
84
|
+
className: cn("text-muted-foreground ml-auto text-xs tracking-widest", className),
|
|
85
|
+
...props
|
|
86
|
+
});
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
//#endregion
|
|
90
|
+
export { Command, CommandDialog, CommandEmpty, CommandGroup, CommandInput, CommandItem, CommandList, CommandSeparator, CommandShortcut };
|
|
91
|
+
//# sourceMappingURL=command.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"command.js","names":["CommandPrimitive"],"sources":["../../ui/command.tsx"],"sourcesContent":["'use client';\n\nimport * as React from 'react';\nimport { Command as CommandPrimitive } from 'cmdk';\nimport { SearchIcon } from 'lucide-react';\n\nimport { cn } from './utils';\nimport {\n Dialog,\n DialogContent,\n DialogDescription,\n DialogHeader,\n DialogTitle,\n} from './dialog';\n\nfunction Command({\n className,\n ...props\n}: React.ComponentProps<typeof CommandPrimitive>) {\n return (\n <CommandPrimitive\n data-slot=\"command\"\n className={cn(\n 'bg-popover text-popover-foreground flex h-full w-full flex-col overflow-hidden rounded-md',\n className\n )}\n {...props}\n />\n );\n}\n\nfunction CommandDialog({\n title = 'Command Palette',\n description = 'Search for a command to run...',\n children,\n className,\n showCloseButton = true,\n ...props\n}: React.ComponentProps<typeof Dialog> & {\n title?: string;\n description?: string;\n className?: string;\n showCloseButton?: boolean;\n}) {\n return (\n <Dialog {...props}>\n <DialogHeader className=\"sr-only\">\n <DialogTitle>{title}</DialogTitle>\n <DialogDescription>{description}</DialogDescription>\n </DialogHeader>\n <DialogContent\n className={cn('overflow-hidden p-0', className)}\n showCloseButton={showCloseButton}\n >\n <Command className=\"[&_[cmdk-group-heading]]:text-muted-foreground **:data-[slot=command-input-wrapper]:h-12 [&_[cmdk-group-heading]]:px-2 [&_[cmdk-group-heading]]:font-medium [&_[cmdk-group]]:px-2 [&_[cmdk-group]:not([hidden])_~[cmdk-group]]:pt-0 [&_[cmdk-input-wrapper]_svg]:h-5 [&_[cmdk-input-wrapper]_svg]:w-5 [&_[cmdk-input]]:h-12 [&_[cmdk-item]]:px-2 [&_[cmdk-item]]:py-3 [&_[cmdk-item]_svg]:h-5 [&_[cmdk-item]_svg]:w-5\">\n {children}\n </Command>\n </DialogContent>\n </Dialog>\n );\n}\n\nfunction CommandInput({\n className,\n ...props\n}: React.ComponentProps<typeof CommandPrimitive.Input>) {\n return (\n <div\n data-slot=\"command-input-wrapper\"\n className=\"flex h-9 items-center gap-2 border-b px-3\"\n >\n <SearchIcon className=\"size-4 shrink-0 opacity-50\" />\n <CommandPrimitive.Input\n data-slot=\"command-input\"\n className={cn(\n 'placeholder:text-muted-foreground flex h-10 w-full rounded-md bg-transparent py-3 text-sm outline-hidden disabled:cursor-not-allowed disabled:opacity-50',\n className\n )}\n {...props}\n />\n </div>\n );\n}\n\nfunction CommandList({\n className,\n ...props\n}: React.ComponentProps<typeof CommandPrimitive.List>) {\n return (\n <CommandPrimitive.List\n data-slot=\"command-list\"\n className={cn(\n 'max-h-[300px] scroll-py-1 overflow-x-hidden overflow-y-auto',\n className\n )}\n {...props}\n />\n );\n}\n\nfunction CommandEmpty({\n ...props\n}: React.ComponentProps<typeof CommandPrimitive.Empty>) {\n return (\n <CommandPrimitive.Empty\n data-slot=\"command-empty\"\n className=\"py-6 text-center text-sm\"\n {...props}\n />\n );\n}\n\nfunction CommandGroup({\n className,\n ...props\n}: React.ComponentProps<typeof CommandPrimitive.Group>) {\n return (\n <CommandPrimitive.Group\n data-slot=\"command-group\"\n className={cn(\n 'text-foreground [&_[cmdk-group-heading]]:text-muted-foreground overflow-hidden p-1 [&_[cmdk-group-heading]]:px-2 [&_[cmdk-group-heading]]:py-1.5 [&_[cmdk-group-heading]]:text-xs [&_[cmdk-group-heading]]:font-medium',\n className\n )}\n {...props}\n />\n );\n}\n\nfunction CommandSeparator({\n className,\n ...props\n}: React.ComponentProps<typeof CommandPrimitive.Separator>) {\n return (\n <CommandPrimitive.Separator\n data-slot=\"command-separator\"\n className={cn('bg-border -mx-1 h-px', className)}\n {...props}\n />\n );\n}\n\nfunction CommandItem({\n className,\n ...props\n}: React.ComponentProps<typeof CommandPrimitive.Item>) {\n return (\n <CommandPrimitive.Item\n data-slot=\"command-item\"\n className={cn(\n \"data-[selected=true]:bg-accent data-[selected=true]:text-accent-foreground [&_svg:not([class*='text-'])]:text-muted-foreground relative flex cursor-default items-center gap-2 rounded-xs px-2 py-1.5 text-sm outline-hidden select-none data-[disabled=true]:pointer-events-none data-[disabled=true]:opacity-50 [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4\",\n className\n )}\n {...props}\n />\n );\n}\n\nfunction CommandShortcut({\n className,\n ...props\n}: React.ComponentProps<'span'>) {\n return (\n <span\n data-slot=\"command-shortcut\"\n className={cn(\n 'text-muted-foreground ml-auto text-xs tracking-widest',\n className\n )}\n {...props}\n />\n );\n}\n\nexport {\n Command,\n CommandDialog,\n CommandInput,\n CommandList,\n CommandEmpty,\n CommandGroup,\n CommandItem,\n CommandShortcut,\n CommandSeparator,\n};\n"],"mappings":";;;;;;;;;;;AAeA,SAAS,QAAQ,EACf,UACA,GAAG,SAC6C;AAChD,QACE,oBAACA;EACC,aAAU;EACV,WAAW,GACT,6FACA,UACD;EACD,GAAI;GACJ;;AAIN,SAAS,cAAc,EACrB,QAAQ,mBACR,cAAc,kCACd,UACA,WACA,kBAAkB,KAClB,GAAG,SAMF;AACD,QACE,qBAAC;EAAO,GAAI;aACV,qBAAC;GAAa,WAAU;cACtB,oBAAC,yBAAa,QAAoB,EAClC,oBAAC,+BAAmB,cAAgC;IACvC,EACf,oBAAC;GACC,WAAW,GAAG,uBAAuB,UAAU;GAC9B;aAEjB,oBAAC;IAAQ,WAAU;IAChB;KACO;IACI;GACT;;AAIb,SAAS,aAAa,EACpB,UACA,GAAG,SACmD;AACtD,QACE,qBAAC;EACC,aAAU;EACV,WAAU;aAEV,oBAAC,cAAW,WAAU,+BAA+B,EACrD,oBAACA,UAAiB;GAChB,aAAU;GACV,WAAW,GACT,4JACA,UACD;GACD,GAAI;IACJ;GACE;;AAIV,SAAS,YAAY,EACnB,UACA,GAAG,SACkD;AACrD,QACE,oBAACA,UAAiB;EAChB,aAAU;EACV,WAAW,GACT,+DACA,UACD;EACD,GAAI;GACJ;;AAIN,SAAS,aAAa,EACpB,GAAG,SACmD;AACtD,QACE,oBAACA,UAAiB;EAChB,aAAU;EACV,WAAU;EACV,GAAI;GACJ;;AAIN,SAAS,aAAa,EACpB,UACA,GAAG,SACmD;AACtD,QACE,oBAACA,UAAiB;EAChB,aAAU;EACV,WAAW,GACT,0NACA,UACD;EACD,GAAI;GACJ;;AAIN,SAAS,iBAAiB,EACxB,UACA,GAAG,SACuD;AAC1D,QACE,oBAACA,UAAiB;EAChB,aAAU;EACV,WAAW,GAAG,wBAAwB,UAAU;EAChD,GAAI;GACJ;;AAIN,SAAS,YAAY,EACnB,UACA,GAAG,SACkD;AACrD,QACE,oBAACA,UAAiB;EAChB,aAAU;EACV,WAAW,GACT,uYACA,UACD;EACD,GAAI;GACJ;;AAIN,SAAS,gBAAgB,EACvB,UACA,GAAG,SAC4B;AAC/B,QACE,oBAAC;EACC,aAAU;EACV,WAAW,GACT,yDACA,UACD;EACD,GAAI;GACJ"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import * as React$1 from "react";
|
|
2
|
+
import * as react_jsx_runtime102 from "react/jsx-runtime";
|
|
3
|
+
|
|
4
|
+
//#region ui/confirm-dialog.d.ts
|
|
5
|
+
interface ConfirmDialogProps {
|
|
6
|
+
open?: boolean;
|
|
7
|
+
onOpenChange?: (open: boolean) => void;
|
|
8
|
+
title: React$1.ReactNode;
|
|
9
|
+
description?: React$1.ReactNode;
|
|
10
|
+
confirmLabel?: string;
|
|
11
|
+
cancelLabel?: string;
|
|
12
|
+
variant?: 'default' | 'destructive';
|
|
13
|
+
isLoading?: boolean;
|
|
14
|
+
onConfirm: () => Promise<void> | void;
|
|
15
|
+
trigger?: React$1.ReactNode;
|
|
16
|
+
}
|
|
17
|
+
declare function ConfirmDialog({
|
|
18
|
+
open,
|
|
19
|
+
onOpenChange,
|
|
20
|
+
title,
|
|
21
|
+
description,
|
|
22
|
+
confirmLabel,
|
|
23
|
+
cancelLabel,
|
|
24
|
+
variant,
|
|
25
|
+
isLoading,
|
|
26
|
+
onConfirm,
|
|
27
|
+
trigger
|
|
28
|
+
}: ConfirmDialogProps): react_jsx_runtime102.JSX.Element;
|
|
29
|
+
//#endregion
|
|
30
|
+
export { ConfirmDialog, ConfirmDialogProps };
|
|
31
|
+
//# sourceMappingURL=confirm-dialog.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"confirm-dialog.d.ts","names":[],"sources":["../../ui/confirm-dialog.tsx"],"sourcesContent":[],"mappings":";;;;UAciB,kBAAA;;;EAAA,KAAA,EAGR,OAAA,CAAM,SAHoB;EAG1B,WAAM,CAAA,EACC,OAAA,CAAM,SADP;EACC,YAAM,CAAA,EAAA,MAAA;EAKH,WAAA,CAAA,EAAA,MAAA;EACP,OAAM,CAAA,EAAA,SAAA,GAAA,aAAA;EAAS,SAAA,CAAA,EAAA,OAAA;EAGX,SAAA,EAAA,GAAA,GAJG,OAIU,CAAA,IAAA,CAAA,GAAA,IAAA;EAC3B,OAAA,CAAA,EAJU,OAAA,CAAM,SAIhB;;AAEA,iBAHc,aAAA,CAGd;EAAA,IAAA;EAAA,YAAA;EAAA,KAAA;EAAA,WAAA;EAAA,YAAA;EAAA,WAAA;EAAA,OAAA;EAAA,SAAA;EAAA,SAAA;EAAA;AAAA,CAAA,EAQC,kBARD,CAAA,EAQmB,oBAAA,CAAA,GAAA,CAAA,OARnB"}
|
|
@@ -0,0 +1,34 @@
|
|
|
1
|
+
import { Button } from "./button.js";
|
|
2
|
+
import { AlertDialog, AlertDialogAction, AlertDialogCancel, AlertDialogContent, AlertDialogDescription, AlertDialogFooter, AlertDialogHeader, AlertDialogTitle, AlertDialogTrigger } from "./alert-dialog.js";
|
|
3
|
+
import "react";
|
|
4
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
5
|
+
|
|
6
|
+
//#region ui/confirm-dialog.tsx
|
|
7
|
+
function ConfirmDialog({ open, onOpenChange, title, description, confirmLabel = "Confirmer", cancelLabel = "Annuler", variant = "default", isLoading, onConfirm, trigger }) {
|
|
8
|
+
const handleConfirm = async () => {
|
|
9
|
+
await onConfirm();
|
|
10
|
+
};
|
|
11
|
+
return /* @__PURE__ */ jsxs(AlertDialog, {
|
|
12
|
+
open,
|
|
13
|
+
onOpenChange,
|
|
14
|
+
children: [trigger ? /* @__PURE__ */ jsx(AlertDialogTrigger, {
|
|
15
|
+
asChild: true,
|
|
16
|
+
children: trigger
|
|
17
|
+
}) : null, /* @__PURE__ */ jsxs(AlertDialogContent, { children: [/* @__PURE__ */ jsxs(AlertDialogHeader, { children: [/* @__PURE__ */ jsx(AlertDialogTitle, { children: title }), description ? /* @__PURE__ */ jsx(AlertDialogDescription, { children: description }) : null] }), /* @__PURE__ */ jsxs(AlertDialogFooter, { children: [/* @__PURE__ */ jsx(AlertDialogCancel, {
|
|
18
|
+
disabled: isLoading,
|
|
19
|
+
children: cancelLabel
|
|
20
|
+
}), /* @__PURE__ */ jsx(AlertDialogAction, {
|
|
21
|
+
asChild: true,
|
|
22
|
+
children: /* @__PURE__ */ jsx(Button, {
|
|
23
|
+
onClick: handleConfirm,
|
|
24
|
+
disabled: isLoading,
|
|
25
|
+
className: variant === "destructive" ? "bg-destructive text-destructive-foreground hover:bg-destructive/90" : void 0,
|
|
26
|
+
children: isLoading ? "..." : confirmLabel
|
|
27
|
+
})
|
|
28
|
+
})] })] })]
|
|
29
|
+
});
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
//#endregion
|
|
33
|
+
export { ConfirmDialog };
|
|
34
|
+
//# sourceMappingURL=confirm-dialog.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"confirm-dialog.js","names":[],"sources":["../../ui/confirm-dialog.tsx"],"sourcesContent":["import * as React from 'react';\nimport {\n AlertDialog,\n AlertDialogAction,\n AlertDialogCancel,\n AlertDialogContent,\n AlertDialogDescription,\n AlertDialogFooter,\n AlertDialogHeader,\n AlertDialogTitle,\n AlertDialogTrigger,\n} from './alert-dialog';\nimport { Button } from './button';\n\nexport interface ConfirmDialogProps {\n open?: boolean;\n onOpenChange?: (open: boolean) => void;\n title: React.ReactNode;\n description?: React.ReactNode;\n confirmLabel?: string;\n cancelLabel?: string;\n variant?: 'default' | 'destructive';\n isLoading?: boolean;\n onConfirm: () => Promise<void> | void;\n trigger?: React.ReactNode;\n}\n\nexport function ConfirmDialog({\n open,\n onOpenChange,\n title,\n description,\n confirmLabel = 'Confirmer',\n cancelLabel = 'Annuler',\n variant = 'default',\n isLoading,\n onConfirm,\n trigger,\n}: ConfirmDialogProps) {\n const handleConfirm = async () => {\n await onConfirm();\n };\n\n return (\n <AlertDialog open={open} onOpenChange={onOpenChange}>\n {trigger ? (\n <AlertDialogTrigger asChild>{trigger}</AlertDialogTrigger>\n ) : null}\n <AlertDialogContent>\n <AlertDialogHeader>\n <AlertDialogTitle>{title}</AlertDialogTitle>\n {description ? (\n <AlertDialogDescription>{description}</AlertDialogDescription>\n ) : null}\n </AlertDialogHeader>\n <AlertDialogFooter>\n <AlertDialogCancel disabled={isLoading}>\n {cancelLabel}\n </AlertDialogCancel>\n <AlertDialogAction asChild>\n <Button\n onClick={handleConfirm}\n disabled={isLoading}\n className={\n variant === 'destructive'\n ? 'bg-destructive text-destructive-foreground hover:bg-destructive/90'\n : undefined\n }\n >\n {isLoading ? '...' : confirmLabel}\n </Button>\n </AlertDialogAction>\n </AlertDialogFooter>\n </AlertDialogContent>\n </AlertDialog>\n );\n}\n"],"mappings":";;;;;;AA2BA,SAAgB,cAAc,EAC5B,MACA,cACA,OACA,aACA,eAAe,aACf,cAAc,WACd,UAAU,WACV,WACA,WACA,WACqB;CACrB,MAAM,gBAAgB,YAAY;AAChC,QAAM,WAAW;;AAGnB,QACE,qBAAC;EAAkB;EAAoB;aACpC,UACC,oBAAC;GAAmB;aAAS;IAA6B,GACxD,MACJ,qBAAC,iCACC,qBAAC,gCACC,oBAAC,8BAAkB,QAAyB,EAC3C,cACC,oBAAC,oCAAwB,cAAqC,GAC5D,QACc,EACpB,qBAAC,gCACC,oBAAC;GAAkB,UAAU;aAC1B;IACiB,EACpB,oBAAC;GAAkB;aACjB,oBAAC;IACC,SAAS;IACT,UAAU;IACV,WACE,YAAY,gBACR,uEACA;cAGL,YAAY,QAAQ;KACd;IACS,IACF,IACD;GACT"}
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
import * as React$1 from "react";
|
|
2
|
+
import * as react_jsx_runtime104 from "react/jsx-runtime";
|
|
3
|
+
import * as ContextMenuPrimitive from "@radix-ui/react-context-menu";
|
|
4
|
+
|
|
5
|
+
//#region ui/context-menu.d.ts
|
|
6
|
+
declare const ContextMenu: React$1.FC<ContextMenuPrimitive.ContextMenuProps>;
|
|
7
|
+
declare const ContextMenuTrigger: React$1.ForwardRefExoticComponent<ContextMenuPrimitive.ContextMenuTriggerProps & React$1.RefAttributes<HTMLSpanElement>>;
|
|
8
|
+
declare const ContextMenuGroup: React$1.ForwardRefExoticComponent<ContextMenuPrimitive.ContextMenuGroupProps & React$1.RefAttributes<HTMLDivElement>>;
|
|
9
|
+
declare const ContextMenuPortal: React$1.FC<ContextMenuPrimitive.ContextMenuPortalProps>;
|
|
10
|
+
declare const ContextMenuSub: React$1.FC<ContextMenuPrimitive.ContextMenuSubProps>;
|
|
11
|
+
declare const ContextMenuRadioGroup: React$1.ForwardRefExoticComponent<ContextMenuPrimitive.ContextMenuRadioGroupProps & React$1.RefAttributes<HTMLDivElement>>;
|
|
12
|
+
declare const ContextMenuSubTrigger: React$1.ForwardRefExoticComponent<Omit<ContextMenuPrimitive.ContextMenuSubTriggerProps & React$1.RefAttributes<HTMLDivElement>, "ref"> & {
|
|
13
|
+
inset?: boolean;
|
|
14
|
+
} & React$1.RefAttributes<HTMLDivElement>>;
|
|
15
|
+
declare const ContextMenuSubContent: React$1.ForwardRefExoticComponent<Omit<ContextMenuPrimitive.ContextMenuSubContentProps & React$1.RefAttributes<HTMLDivElement>, "ref"> & React$1.RefAttributes<HTMLDivElement>>;
|
|
16
|
+
declare const ContextMenuContent: React$1.ForwardRefExoticComponent<Omit<ContextMenuPrimitive.ContextMenuContentProps & React$1.RefAttributes<HTMLDivElement>, "ref"> & React$1.RefAttributes<HTMLDivElement>>;
|
|
17
|
+
declare const ContextMenuItem: React$1.ForwardRefExoticComponent<Omit<ContextMenuPrimitive.ContextMenuItemProps & React$1.RefAttributes<HTMLDivElement>, "ref"> & {
|
|
18
|
+
inset?: boolean;
|
|
19
|
+
} & React$1.RefAttributes<HTMLDivElement>>;
|
|
20
|
+
declare const ContextMenuCheckboxItem: React$1.ForwardRefExoticComponent<Omit<ContextMenuPrimitive.ContextMenuCheckboxItemProps & React$1.RefAttributes<HTMLDivElement>, "ref"> & React$1.RefAttributes<HTMLDivElement>>;
|
|
21
|
+
declare const ContextMenuRadioItem: React$1.ForwardRefExoticComponent<Omit<ContextMenuPrimitive.ContextMenuRadioItemProps & React$1.RefAttributes<HTMLDivElement>, "ref"> & React$1.RefAttributes<HTMLDivElement>>;
|
|
22
|
+
declare const ContextMenuLabel: React$1.ForwardRefExoticComponent<Omit<ContextMenuPrimitive.ContextMenuLabelProps & React$1.RefAttributes<HTMLDivElement>, "ref"> & {
|
|
23
|
+
inset?: boolean;
|
|
24
|
+
} & React$1.RefAttributes<HTMLDivElement>>;
|
|
25
|
+
declare const ContextMenuSeparator: React$1.ForwardRefExoticComponent<Omit<ContextMenuPrimitive.ContextMenuSeparatorProps & React$1.RefAttributes<HTMLDivElement>, "ref"> & React$1.RefAttributes<HTMLDivElement>>;
|
|
26
|
+
declare const ContextMenuShortcut: {
|
|
27
|
+
({
|
|
28
|
+
className,
|
|
29
|
+
...props
|
|
30
|
+
}: React$1.HTMLAttributes<HTMLSpanElement>): react_jsx_runtime104.JSX.Element;
|
|
31
|
+
displayName: string;
|
|
32
|
+
};
|
|
33
|
+
//#endregion
|
|
34
|
+
export { ContextMenu, ContextMenuCheckboxItem, ContextMenuContent, ContextMenuGroup, ContextMenuItem, ContextMenuLabel, ContextMenuPortal, ContextMenuRadioGroup, ContextMenuRadioItem, ContextMenuSeparator, ContextMenuShortcut, ContextMenuSub, ContextMenuSubContent, ContextMenuSubTrigger, ContextMenuTrigger };
|
|
35
|
+
//# sourceMappingURL=context-menu.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"context-menu.d.ts","names":[],"sources":["../../ui/context-menu.tsx"],"sourcesContent":[],"mappings":";;;;;cAQM,aAAW,OAAA,CAAA,GAAA,oBAAA,CAAA;cAEX,oBAAkB,OAAA,CAAA,0BAAA,oBAAA,CAAA,0BAAA,OAAA,CAAA,cAAA;cAElB,kBAAgB,OAAA,CAAA,0BAAA,oBAAA,CAAA,wBAAA,OAAA,CAAA,cAAA;AAT+C,cAW/D,iBANW,EAMM,OAAA,CAAA,EANN,CAMM,oBAAA,CAAA,sBANN,CAAA;AAAA,cAQX,cANiD,EAMnC,OAAA,CAAA,EANmC,CAMnC,oBAAA,CAAA,mBANmC,CAAA;cAQjD,qBARkB,EAQG,OAAA,CAAA,yBARH,CAQG,oBAAA,CAAA,0BARH,GAQG,OAAA,CAAA,aARH,CAQG,cARH,CAAA,CAAA;cAUlB,qBAVkB,EAUG,OAAA,CAAA,yBAVH,CAUG,IAVH,CAUG,oBAAA,CAAA,0BAVH,GAUG,OAAA,CAAA,aAVH,CAUG,cAVH,CAAA,EAAA,KAAA,CAAA,GAAA;EAAA,KAAA,CAAA,EAAA,OAAA;CAAA,wBAAA,eAAA,CAAA,CAAA;cA+BlB,qBA/BkB,EA+BG,OAAA,CAAA,yBA/BH,CA+BG,IA/BH,CA+BG,oBAAA,CAAA,0BA/BH,GA+BG,OAAA,CAAA,aA/BH,CA+BG,cA/BH,CAAA,EAAA,KAAA,CAAA,GA+BG,OAAA,CAAA,aA/BH,CA+BG,cA/BH,CAAA,CAAA;AAAA,cA8ClB,kBA5C6C,EA4C3B,OAAA,CAAA,yBA5C2B,CA4C3B,IA5C2B,CA4C3B,oBAAA,CAAA,uBA5C2B,GA4C3B,OAAA,CAAA,aA5C2B,CA4C3B,cA5C2B,CAAA,EAAA,KAAA,CAAA,GA4C3B,OAAA,CAAA,aA5C2B,CA4C3B,cA5C2B,CAAA,CAAA;cA6D7C,eA7DgB,EA6DD,OAAA,CAAA,yBA7DC,CA6DD,IA7DC,CA6DD,oBAAA,CAAA,oBA7DC,GA6DD,OAAA,CAAA,aA7DC,CA6DD,cA7DC,CAAA,EAAA,KAAA,CAAA,GAAA;EAAA,KAAA,CAAA,EAAA,OAAA;CAAA,wBAAA,eAAA,CAAA,CAAA;cA+EhB,uBA/EgB,EA+EO,OAAA,CAAA,yBA/EP,CA+EO,IA/EP,CA+EO,oBAAA,CAAA,4BA/EP,GA+EO,OAAA,CAAA,aA/EP,CA+EO,cA/EP,CAAA,EAAA,KAAA,CAAA,GA+EO,OAAA,CAAA,aA/EP,CA+EO,cA/EP,CAAA,CAAA;cAuGhB,oBAvGgB,EAuGI,OAAA,CAAA,yBAvGJ,CAuGI,IAvGJ,CAuGI,oBAAA,CAAA,yBAvGJ,GAuGI,OAAA,CAAA,aAvGJ,CAuGI,cAvGJ,CAAA,EAAA,KAAA,CAAA,GAuGI,OAAA,CAAA,aAvGJ,CAuGI,cAvGJ,CAAA,CAAA;AAAA,cA6HhB,gBA3H+C,EA2H/B,OAAA,CAAA,yBA3HC,CA2HD,IA3HC,CA2HD,oBAAA,CAAA,qBA3HC,GA2HD,OAAA,CAAA,aA3HC,CA2HD,cA3HC,CAAA,EAAA,KAAA,CAAA,GAAA;EAEjB,KAAA,CAAA,EAAA,OAAA;AAAc,CAAA,wBAEd,eAAuD,CAAA,CAAA;cAyIvD,oBAzIqB,EAyID,OAAA,CAAA,yBAzIC,CAyID,IAzIC,CAyID,oBAAA,CAAA,yBAzIC,GAyID,OAAA,CAAA,aAzIC,CAyID,cAzIC,CAAA,EAAA,KAAA,CAAA,GAyID,OAAA,CAAA,aAzIC,CAyID,cAzIC,CAAA,CAAA;cAqJrB,mBArJqB,EAAA;EAAA,CAAA;IAAA,SAAA;IAAA,GAAA;EAAA,CAAA,EAwJxB,OAAA,CAAM,cAxJkB,CAwJH,eAxJG,CAAA,CAAA,EAwJa,oBAAA,CAAA,GAAA,CAAA,OAxJb;EAAA,WAAA,EAAA,MAAA;CAAA"}
|
|
@@ -0,0 +1,85 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
import { cn } from "./utils.js";
|
|
5
|
+
import * as React$1 from "react";
|
|
6
|
+
import { Check, ChevronRight, Circle } from "lucide-react";
|
|
7
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
8
|
+
import * as ContextMenuPrimitive from "@radix-ui/react-context-menu";
|
|
9
|
+
|
|
10
|
+
//#region ui/context-menu.tsx
|
|
11
|
+
const ContextMenu = ContextMenuPrimitive.Root;
|
|
12
|
+
const ContextMenuTrigger = ContextMenuPrimitive.Trigger;
|
|
13
|
+
const ContextMenuGroup = ContextMenuPrimitive.Group;
|
|
14
|
+
const ContextMenuPortal = ContextMenuPrimitive.Portal;
|
|
15
|
+
const ContextMenuSub = ContextMenuPrimitive.Sub;
|
|
16
|
+
const ContextMenuRadioGroup = ContextMenuPrimitive.RadioGroup;
|
|
17
|
+
const ContextMenuSubTrigger = React$1.forwardRef(({ className, inset, children,...props }, ref) => /* @__PURE__ */ jsxs(ContextMenuPrimitive.SubTrigger, {
|
|
18
|
+
ref,
|
|
19
|
+
className: cn("focus:bg-accent focus:text-accent-foreground data-[state=open]:bg-accent data-[state=open]:text-accent-foreground flex cursor-default items-center rounded-xs px-2 py-1.5 text-base outline-hidden select-none", inset && "pl-8", className),
|
|
20
|
+
...props,
|
|
21
|
+
children: [children, /* @__PURE__ */ jsx(ChevronRight, { className: "ml-auto h-4 w-4" })]
|
|
22
|
+
}));
|
|
23
|
+
ContextMenuSubTrigger.displayName = ContextMenuPrimitive.SubTrigger.displayName;
|
|
24
|
+
const ContextMenuSubContent = React$1.forwardRef(({ className,...props }, ref) => /* @__PURE__ */ jsx(ContextMenuPrimitive.SubContent, {
|
|
25
|
+
ref,
|
|
26
|
+
className: cn("bg-popover text-popover-foreground 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-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 min-w-32 overflow-hidden rounded-md border p-1 shadow-md", className),
|
|
27
|
+
...props
|
|
28
|
+
}));
|
|
29
|
+
ContextMenuSubContent.displayName = ContextMenuPrimitive.SubContent.displayName;
|
|
30
|
+
const ContextMenuContent = React$1.forwardRef(({ className,...props }, ref) => /* @__PURE__ */ jsx(ContextMenuPrimitive.Portal, { children: /* @__PURE__ */ jsx(ContextMenuPrimitive.Content, {
|
|
31
|
+
ref,
|
|
32
|
+
className: cn("bg-popover text-popover-foreground animate-in fade-in-80 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-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 min-w-32 overflow-hidden rounded-md border p-1 shadow-md", className),
|
|
33
|
+
...props
|
|
34
|
+
}) }));
|
|
35
|
+
ContextMenuContent.displayName = ContextMenuPrimitive.Content.displayName;
|
|
36
|
+
const ContextMenuItem = React$1.forwardRef(({ className, inset,...props }, ref) => /* @__PURE__ */ jsx(ContextMenuPrimitive.Item, {
|
|
37
|
+
ref,
|
|
38
|
+
className: cn("focus:bg-accent focus:text-accent-foreground relative flex cursor-default items-center rounded-xs px-2 py-1.5 text-base outline-hidden select-none data-disabled:pointer-events-none data-disabled:opacity-50", inset && "pl-8", className),
|
|
39
|
+
...props
|
|
40
|
+
}));
|
|
41
|
+
ContextMenuItem.displayName = ContextMenuPrimitive.Item.displayName;
|
|
42
|
+
const ContextMenuCheckboxItem = React$1.forwardRef(({ className, children, checked,...props }, ref) => /* @__PURE__ */ jsxs(ContextMenuPrimitive.CheckboxItem, {
|
|
43
|
+
ref,
|
|
44
|
+
className: cn("focus:bg-accent focus:text-accent-foreground relative flex cursor-default items-center rounded-xs py-1.5 pr-2 pl-8 text-base outline-hidden select-none data-disabled:pointer-events-none data-disabled:opacity-50", className),
|
|
45
|
+
checked,
|
|
46
|
+
...props,
|
|
47
|
+
children: [/* @__PURE__ */ jsx("span", {
|
|
48
|
+
className: "absolute left-2 flex h-3.5 w-3.5 items-center justify-center",
|
|
49
|
+
children: /* @__PURE__ */ jsx(ContextMenuPrimitive.ItemIndicator, { children: /* @__PURE__ */ jsx(Check, { className: "h-4 w-4" }) })
|
|
50
|
+
}), children]
|
|
51
|
+
}));
|
|
52
|
+
ContextMenuCheckboxItem.displayName = ContextMenuPrimitive.CheckboxItem.displayName;
|
|
53
|
+
const ContextMenuRadioItem = React$1.forwardRef(({ className, children,...props }, ref) => /* @__PURE__ */ jsxs(ContextMenuPrimitive.RadioItem, {
|
|
54
|
+
ref,
|
|
55
|
+
className: cn("focus:bg-accent focus:text-accent-foreground relative flex cursor-default items-center rounded-xs py-1.5 pr-2 pl-8 text-base outline-hidden select-none data-disabled:pointer-events-none data-disabled:opacity-50", className),
|
|
56
|
+
...props,
|
|
57
|
+
children: [/* @__PURE__ */ jsx("span", {
|
|
58
|
+
className: "absolute left-2 flex h-3.5 w-3.5 items-center justify-center",
|
|
59
|
+
children: /* @__PURE__ */ jsx(ContextMenuPrimitive.ItemIndicator, { children: /* @__PURE__ */ jsx(Circle, { className: "h-2 w-2 fill-current" }) })
|
|
60
|
+
}), children]
|
|
61
|
+
}));
|
|
62
|
+
ContextMenuRadioItem.displayName = ContextMenuPrimitive.RadioItem.displayName;
|
|
63
|
+
const ContextMenuLabel = React$1.forwardRef(({ className, inset,...props }, ref) => /* @__PURE__ */ jsx(ContextMenuPrimitive.Label, {
|
|
64
|
+
ref,
|
|
65
|
+
className: cn("text-foreground px-2 py-1.5 text-base font-semibold", inset && "pl-8", className),
|
|
66
|
+
...props
|
|
67
|
+
}));
|
|
68
|
+
ContextMenuLabel.displayName = ContextMenuPrimitive.Label.displayName;
|
|
69
|
+
const ContextMenuSeparator = React$1.forwardRef(({ className,...props }, ref) => /* @__PURE__ */ jsx(ContextMenuPrimitive.Separator, {
|
|
70
|
+
ref,
|
|
71
|
+
className: cn("bg-border -mx-1 my-1 h-px", className),
|
|
72
|
+
...props
|
|
73
|
+
}));
|
|
74
|
+
ContextMenuSeparator.displayName = ContextMenuPrimitive.Separator.displayName;
|
|
75
|
+
const ContextMenuShortcut = ({ className,...props }) => {
|
|
76
|
+
return /* @__PURE__ */ jsx("span", {
|
|
77
|
+
className: cn("text-muted-foreground ml-auto text-sm tracking-widest", className),
|
|
78
|
+
...props
|
|
79
|
+
});
|
|
80
|
+
};
|
|
81
|
+
ContextMenuShortcut.displayName = "ContextMenuShortcut";
|
|
82
|
+
|
|
83
|
+
//#endregion
|
|
84
|
+
export { ContextMenu, ContextMenuCheckboxItem, ContextMenuContent, ContextMenuGroup, ContextMenuItem, ContextMenuLabel, ContextMenuPortal, ContextMenuRadioGroup, ContextMenuRadioItem, ContextMenuSeparator, ContextMenuShortcut, ContextMenuSub, ContextMenuSubContent, ContextMenuSubTrigger, ContextMenuTrigger };
|
|
85
|
+
//# sourceMappingURL=context-menu.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"context-menu.js","names":["React"],"sources":["../../ui/context-menu.tsx"],"sourcesContent":["'use client';\n\nimport * as React from 'react';\nimport * as ContextMenuPrimitive from '@radix-ui/react-context-menu';\nimport { Check, ChevronRight, Circle } from 'lucide-react';\n\nimport { cn } from './utils';\n\nconst ContextMenu = ContextMenuPrimitive.Root;\n\nconst ContextMenuTrigger = ContextMenuPrimitive.Trigger;\n\nconst ContextMenuGroup = ContextMenuPrimitive.Group;\n\nconst ContextMenuPortal = ContextMenuPrimitive.Portal;\n\nconst ContextMenuSub = ContextMenuPrimitive.Sub;\n\nconst ContextMenuRadioGroup = ContextMenuPrimitive.RadioGroup;\n\nconst ContextMenuSubTrigger = React.forwardRef<\n React.ElementRef<typeof ContextMenuPrimitive.SubTrigger>,\n React.ComponentPropsWithoutRef<typeof ContextMenuPrimitive.SubTrigger> & {\n inset?: boolean;\n }\n>(({ className, inset, children, ...props }, ref) => (\n <ContextMenuPrimitive.SubTrigger\n ref={ref}\n className={cn(\n 'focus:bg-accent focus:text-accent-foreground data-[state=open]:bg-accent data-[state=open]:text-accent-foreground flex cursor-default items-center rounded-xs px-2 py-1.5 text-base outline-hidden select-none',\n inset && 'pl-8',\n className\n )}\n {...props}\n >\n {children}\n <ChevronRight className=\"ml-auto h-4 w-4\" />\n </ContextMenuPrimitive.SubTrigger>\n));\nContextMenuSubTrigger.displayName = ContextMenuPrimitive.SubTrigger.displayName;\n\nconst ContextMenuSubContent = React.forwardRef<\n React.ElementRef<typeof ContextMenuPrimitive.SubContent>,\n React.ComponentPropsWithoutRef<typeof ContextMenuPrimitive.SubContent>\n>(({ className, ...props }, ref) => (\n <ContextMenuPrimitive.SubContent\n ref={ref}\n className={cn(\n 'bg-popover text-popover-foreground 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-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 min-w-32 overflow-hidden rounded-md border p-1 shadow-md',\n className\n )}\n {...props}\n />\n));\nContextMenuSubContent.displayName = ContextMenuPrimitive.SubContent.displayName;\n\nconst ContextMenuContent = React.forwardRef<\n React.ElementRef<typeof ContextMenuPrimitive.Content>,\n React.ComponentPropsWithoutRef<typeof ContextMenuPrimitive.Content>\n>(({ className, ...props }, ref) => (\n <ContextMenuPrimitive.Portal>\n <ContextMenuPrimitive.Content\n ref={ref}\n className={cn(\n 'bg-popover text-popover-foreground animate-in fade-in-80 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-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 min-w-32 overflow-hidden rounded-md border p-1 shadow-md',\n className\n )}\n {...props}\n />\n </ContextMenuPrimitive.Portal>\n));\nContextMenuContent.displayName = ContextMenuPrimitive.Content.displayName;\n\nconst ContextMenuItem = React.forwardRef<\n React.ElementRef<typeof ContextMenuPrimitive.Item>,\n React.ComponentPropsWithoutRef<typeof ContextMenuPrimitive.Item> & {\n inset?: boolean;\n }\n>(({ className, inset, ...props }, ref) => (\n <ContextMenuPrimitive.Item\n ref={ref}\n className={cn(\n 'focus:bg-accent focus:text-accent-foreground relative flex cursor-default items-center rounded-xs px-2 py-1.5 text-base outline-hidden select-none data-disabled:pointer-events-none data-disabled:opacity-50',\n inset && 'pl-8',\n className\n )}\n {...props}\n />\n));\nContextMenuItem.displayName = ContextMenuPrimitive.Item.displayName;\n\nconst ContextMenuCheckboxItem = React.forwardRef<\n React.ElementRef<typeof ContextMenuPrimitive.CheckboxItem>,\n React.ComponentPropsWithoutRef<typeof ContextMenuPrimitive.CheckboxItem>\n>(({ className, children, checked, ...props }, ref) => (\n <ContextMenuPrimitive.CheckboxItem\n ref={ref}\n className={cn(\n 'focus:bg-accent focus:text-accent-foreground relative flex cursor-default items-center rounded-xs py-1.5 pr-2 pl-8 text-base outline-hidden select-none data-disabled:pointer-events-none data-disabled:opacity-50',\n className\n )}\n checked={checked}\n {...props}\n >\n <span className=\"absolute left-2 flex h-3.5 w-3.5 items-center justify-center\">\n <ContextMenuPrimitive.ItemIndicator>\n <Check className=\"h-4 w-4\" />\n </ContextMenuPrimitive.ItemIndicator>\n </span>\n {children}\n </ContextMenuPrimitive.CheckboxItem>\n));\nContextMenuCheckboxItem.displayName =\n ContextMenuPrimitive.CheckboxItem.displayName;\n\nconst ContextMenuRadioItem = React.forwardRef<\n React.ElementRef<typeof ContextMenuPrimitive.RadioItem>,\n React.ComponentPropsWithoutRef<typeof ContextMenuPrimitive.RadioItem>\n>(({ className, children, ...props }, ref) => (\n <ContextMenuPrimitive.RadioItem\n ref={ref}\n className={cn(\n 'focus:bg-accent focus:text-accent-foreground relative flex cursor-default items-center rounded-xs py-1.5 pr-2 pl-8 text-base outline-hidden select-none data-disabled:pointer-events-none data-disabled:opacity-50',\n className\n )}\n {...props}\n >\n <span className=\"absolute left-2 flex h-3.5 w-3.5 items-center justify-center\">\n <ContextMenuPrimitive.ItemIndicator>\n <Circle className=\"h-2 w-2 fill-current\" />\n </ContextMenuPrimitive.ItemIndicator>\n </span>\n {children}\n </ContextMenuPrimitive.RadioItem>\n));\nContextMenuRadioItem.displayName = ContextMenuPrimitive.RadioItem.displayName;\n\nconst ContextMenuLabel = React.forwardRef<\n React.ElementRef<typeof ContextMenuPrimitive.Label>,\n React.ComponentPropsWithoutRef<typeof ContextMenuPrimitive.Label> & {\n inset?: boolean;\n }\n>(({ className, inset, ...props }, ref) => (\n <ContextMenuPrimitive.Label\n ref={ref}\n className={cn(\n 'text-foreground px-2 py-1.5 text-base font-semibold',\n inset && 'pl-8',\n className\n )}\n {...props}\n />\n));\nContextMenuLabel.displayName = ContextMenuPrimitive.Label.displayName;\n\nconst ContextMenuSeparator = React.forwardRef<\n React.ElementRef<typeof ContextMenuPrimitive.Separator>,\n React.ComponentPropsWithoutRef<typeof ContextMenuPrimitive.Separator>\n>(({ className, ...props }, ref) => (\n <ContextMenuPrimitive.Separator\n ref={ref}\n className={cn('bg-border -mx-1 my-1 h-px', className)}\n {...props}\n />\n));\nContextMenuSeparator.displayName = ContextMenuPrimitive.Separator.displayName;\n\nconst ContextMenuShortcut = ({\n className,\n ...props\n}: React.HTMLAttributes<HTMLSpanElement>) => {\n return (\n <span\n className={cn(\n 'text-muted-foreground ml-auto text-sm tracking-widest',\n className\n )}\n {...props}\n />\n );\n};\nContextMenuShortcut.displayName = 'ContextMenuShortcut';\n\nexport {\n ContextMenu,\n ContextMenuTrigger,\n ContextMenuContent,\n ContextMenuItem,\n ContextMenuCheckboxItem,\n ContextMenuRadioItem,\n ContextMenuLabel,\n ContextMenuSeparator,\n ContextMenuShortcut,\n ContextMenuGroup,\n ContextMenuPortal,\n ContextMenuSub,\n ContextMenuSubContent,\n ContextMenuSubTrigger,\n ContextMenuRadioGroup,\n};\n"],"mappings":";;;;;;;;;;AAQA,MAAM,cAAc,qBAAqB;AAEzC,MAAM,qBAAqB,qBAAqB;AAEhD,MAAM,mBAAmB,qBAAqB;AAE9C,MAAM,oBAAoB,qBAAqB;AAE/C,MAAM,iBAAiB,qBAAqB;AAE5C,MAAM,wBAAwB,qBAAqB;AAEnD,MAAM,wBAAwBA,QAAM,YAKjC,EAAE,WAAW,OAAO,SAAU,GAAG,SAAS,QAC3C,qBAAC,qBAAqB;CACf;CACL,WAAW,GACT,kNACA,SAAS,QACT,UACD;CACD,GAAI;YAEH,UACD,oBAAC,gBAAa,WAAU,oBAAoB;EACZ,CAClC;AACF,sBAAsB,cAAc,qBAAqB,WAAW;AAEpE,MAAM,wBAAwBA,QAAM,YAGjC,EAAE,UAAW,GAAG,SAAS,QAC1B,oBAAC,qBAAqB;CACf;CACL,WAAW,GACT,qbACA,UACD;CACD,GAAI;EACJ,CACF;AACF,sBAAsB,cAAc,qBAAqB,WAAW;AAEpE,MAAM,qBAAqBA,QAAM,YAG9B,EAAE,UAAW,GAAG,SAAS,QAC1B,oBAAC,qBAAqB,oBACpB,oBAAC,qBAAqB;CACf;CACL,WAAW,GACT,2cACA,UACD;CACD,GAAI;EACJ,GAC0B,CAC9B;AACF,mBAAmB,cAAc,qBAAqB,QAAQ;AAE9D,MAAM,kBAAkBA,QAAM,YAK3B,EAAE,WAAW,MAAO,GAAG,SAAS,QACjC,oBAAC,qBAAqB;CACf;CACL,WAAW,GACT,iNACA,SAAS,QACT,UACD;CACD,GAAI;EACJ,CACF;AACF,gBAAgB,cAAc,qBAAqB,KAAK;AAExD,MAAM,0BAA0BA,QAAM,YAGnC,EAAE,WAAW,UAAU,QAAS,GAAG,SAAS,QAC7C,qBAAC,qBAAqB;CACf;CACL,WAAW,GACT,sNACA,UACD;CACQ;CACT,GAAI;YAEJ,oBAAC;EAAK,WAAU;YACd,oBAAC,qBAAqB,2BACpB,oBAAC,SAAM,WAAU,YAAY,GACM;GAChC,EACN;EACiC,CACpC;AACF,wBAAwB,cACtB,qBAAqB,aAAa;AAEpC,MAAM,uBAAuBA,QAAM,YAGhC,EAAE,WAAW,SAAU,GAAG,SAAS,QACpC,qBAAC,qBAAqB;CACf;CACL,WAAW,GACT,sNACA,UACD;CACD,GAAI;YAEJ,oBAAC;EAAK,WAAU;YACd,oBAAC,qBAAqB,2BACpB,oBAAC,UAAO,WAAU,yBAAyB,GACR;GAChC,EACN;EAC8B,CACjC;AACF,qBAAqB,cAAc,qBAAqB,UAAU;AAElE,MAAM,mBAAmBA,QAAM,YAK5B,EAAE,WAAW,MAAO,GAAG,SAAS,QACjC,oBAAC,qBAAqB;CACf;CACL,WAAW,GACT,uDACA,SAAS,QACT,UACD;CACD,GAAI;EACJ,CACF;AACF,iBAAiB,cAAc,qBAAqB,MAAM;AAE1D,MAAM,uBAAuBA,QAAM,YAGhC,EAAE,UAAW,GAAG,SAAS,QAC1B,oBAAC,qBAAqB;CACf;CACL,WAAW,GAAG,6BAA6B,UAAU;CACrD,GAAI;EACJ,CACF;AACF,qBAAqB,cAAc,qBAAqB,UAAU;AAElE,MAAM,uBAAuB,EAC3B,UACA,GAAG,YACwC;AAC3C,QACE,oBAAC;EACC,WAAW,GACT,yDACA,UACD;EACD,GAAI;GACJ;;AAGN,oBAAoB,cAAc"}
|
package/dist/ui/cta.d.ts
ADDED
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
import { ButtonProps } from "./button.js";
|
|
2
|
+
import * as React$1 from "react";
|
|
3
|
+
|
|
4
|
+
//#region ui/cta.d.ts
|
|
5
|
+
type CtaProps = ButtonProps & {
|
|
6
|
+
capture?: (cta: string) => void;
|
|
7
|
+
ctaName?: string;
|
|
8
|
+
as?: 'button' | 'a';
|
|
9
|
+
href?: string;
|
|
10
|
+
children?: React$1.ReactNode;
|
|
11
|
+
};
|
|
12
|
+
declare const Cta: React$1.ForwardRefExoticComponent<Omit<CtaProps, "ref"> & React$1.RefAttributes<HTMLButtonElement | HTMLAnchorElement>>;
|
|
13
|
+
//#endregion
|
|
14
|
+
export { Cta, CtaProps };
|
|
15
|
+
//# sourceMappingURL=cta.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cta.d.ts","names":[],"sources":["../../ui/cta.tsx"],"sourcesContent":[],"mappings":";;;;KAIY,QAAA,GAAW;;EAAX,OAAA,CAAA,EAAA,MAAQ;EAQP,EAAA,CAAA,EAAA,QAyDZ,GAAA,GAAA;EAzDe,IAAA,CAAA,EAAA,MAAA;EAAA,QAAA,CAAA,EAHH,OAAA,CAAM,SAGH;CAAA;AAAA,cAAH,GAAG,EAAA,OAAA,CAAA,yBAAA,CAAA,IAAA,CAAA,QAAA,EAAA,KAAA,CAAA,GAAA,OAAA,CAAA,aAAA,CAAA,iBAAA,GAAA,iBAAA,CAAA,CAAA"}
|
package/dist/ui/cta.js
ADDED
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import { cn } from "./utils.js";
|
|
2
|
+
import { Button } from "./button.js";
|
|
3
|
+
import * as React$1 from "react";
|
|
4
|
+
import { jsx } from "react/jsx-runtime";
|
|
5
|
+
|
|
6
|
+
//#region ui/cta.tsx
|
|
7
|
+
const Cta = React$1.forwardRef(({ capture, ctaName, className, as = "button", href, onClick, size = "lg", children,...props }, ref) => {
|
|
8
|
+
const handleClick = (e) => {
|
|
9
|
+
if (ctaName && capture) try {
|
|
10
|
+
capture(ctaName);
|
|
11
|
+
} catch {}
|
|
12
|
+
onClick?.(e);
|
|
13
|
+
};
|
|
14
|
+
if (as === "a") return /* @__PURE__ */ jsx(Button, {
|
|
15
|
+
asChild: true,
|
|
16
|
+
size,
|
|
17
|
+
className: cn("min-h-[44px]", className),
|
|
18
|
+
...props,
|
|
19
|
+
children: /* @__PURE__ */ jsx("a", {
|
|
20
|
+
href,
|
|
21
|
+
onClick: handleClick,
|
|
22
|
+
ref,
|
|
23
|
+
children
|
|
24
|
+
})
|
|
25
|
+
});
|
|
26
|
+
return /* @__PURE__ */ jsx(Button, {
|
|
27
|
+
size,
|
|
28
|
+
className: cn("min-h-[44px]", className),
|
|
29
|
+
onClick: handleClick,
|
|
30
|
+
ref,
|
|
31
|
+
...props,
|
|
32
|
+
children
|
|
33
|
+
});
|
|
34
|
+
});
|
|
35
|
+
Cta.displayName = "Cta";
|
|
36
|
+
|
|
37
|
+
//#endregion
|
|
38
|
+
export { Cta };
|
|
39
|
+
//# sourceMappingURL=cta.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"cta.js","names":["React","handleClick: React.MouseEventHandler<\n HTMLButtonElement | HTMLAnchorElement\n >"],"sources":["../../ui/cta.tsx"],"sourcesContent":["import * as React from 'react';\nimport { Button, type ButtonProps } from './button';\nimport { cn } from './utils';\n\nexport type CtaProps = ButtonProps & {\n capture?: (cta: string) => void;\n ctaName?: string;\n as?: 'button' | 'a';\n href?: string;\n children?: React.ReactNode;\n};\n\nexport const Cta = React.forwardRef<\n HTMLButtonElement | HTMLAnchorElement,\n CtaProps\n>(\n (\n {\n capture,\n ctaName,\n className,\n as = 'button',\n href,\n onClick,\n size = 'lg',\n children,\n ...props\n },\n ref\n ) => {\n const handleClick: React.MouseEventHandler<\n HTMLButtonElement | HTMLAnchorElement\n > = (e) => {\n if (ctaName && capture) {\n try {\n capture(ctaName);\n } catch {}\n }\n onClick?.(e as any);\n };\n\n if (as === 'a') {\n return (\n <Button\n asChild\n size={size}\n className={cn('min-h-[44px]', className)}\n {...props}\n >\n {}\n <a href={href} onClick={handleClick} ref={ref as any}>\n {children}\n </a>\n </Button>\n );\n }\n\n return (\n <Button\n size={size}\n className={cn('min-h-[44px]', className)}\n onClick={handleClick as any}\n ref={ref as any}\n {...props}\n >\n {children}\n </Button>\n );\n }\n);\nCta.displayName = 'Cta';\n"],"mappings":";;;;;;AAYA,MAAa,MAAMA,QAAM,YAKrB,EACE,SACA,SACA,WACA,KAAK,UACL,MACA,SACA,OAAO,MACP,SACA,GAAG,SAEL,QACG;CACH,MAAMC,eAED,MAAM;AACT,MAAI,WAAW,QACb,KAAI;AACF,WAAQ,QAAQ;UACV;AAEV,YAAU,EAAS;;AAGrB,KAAI,OAAO,IACT,QACE,oBAAC;EACC;EACM;EACN,WAAW,GAAG,gBAAgB,UAAU;EACxC,GAAI;YAGJ,oBAAC;GAAQ;GAAM,SAAS;GAAkB;GACvC;IACC;GACG;AAIb,QACE,oBAAC;EACO;EACN,WAAW,GAAG,gBAAgB,UAAU;EACxC,SAAS;EACJ;EACL,GAAI;EAEH;GACM;EAGd;AACD,IAAI,cAAc"}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import * as react_jsx_runtime106 from "react/jsx-runtime";
|
|
2
|
+
|
|
3
|
+
//#region ui/date-picker.d.ts
|
|
4
|
+
interface DatePickerProps {
|
|
5
|
+
value: Date | null;
|
|
6
|
+
onChange: (date: Date | null) => void;
|
|
7
|
+
disabled?: boolean;
|
|
8
|
+
minDate?: Date;
|
|
9
|
+
maxDate?: Date;
|
|
10
|
+
placeholder?: string;
|
|
11
|
+
className?: string;
|
|
12
|
+
language?: string;
|
|
13
|
+
}
|
|
14
|
+
declare function DatePicker({
|
|
15
|
+
value,
|
|
16
|
+
onChange,
|
|
17
|
+
disabled,
|
|
18
|
+
minDate,
|
|
19
|
+
maxDate,
|
|
20
|
+
placeholder,
|
|
21
|
+
className,
|
|
22
|
+
language
|
|
23
|
+
}: DatePickerProps): react_jsx_runtime106.JSX.Element;
|
|
24
|
+
//#endregion
|
|
25
|
+
export { DatePicker, DatePickerProps };
|
|
26
|
+
//# sourceMappingURL=date-picker.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"date-picker.d.ts","names":[],"sources":["../../ui/date-picker.tsx"],"sourcesContent":[],"mappings":";;;UAUiB,eAAA;SACR;mBACU;EAFF,QAAA,CAAA,EAAA,OAAe;EACvB,OAAA,CAAA,EAGG,IAHH;EACU,OAAA,CAAA,EAGP,IAHO;EAEP,WAAA,CAAA,EAAA,MAAA;EACA,SAAA,CAAA,EAAA,MAAA;EAAI,QAAA,CAAA,EAAA,MAAA;AAMhB;AACE,iBADc,UAAA,CACd;EAAA,KAAA;EAAA,QAAA;EAAA,QAAA;EAAA,OAAA;EAAA,OAAA;EAAA,WAAA;EAAA,SAAA;EAAA;AAAA,CAAA,EAQC,eARD,CAAA,EAQgB,oBAAA,CAAA,GAAA,CAAA,OARhB"}
|
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
|
|
3
|
+
|
|
4
|
+
import { cn } from "./utils.js";
|
|
5
|
+
import { Button } from "./button.js";
|
|
6
|
+
import { Calendar } from "./calendar.js";
|
|
7
|
+
import { Popover, PopoverContent, PopoverTrigger } from "./popover.js";
|
|
8
|
+
import { Input } from "./input.js";
|
|
9
|
+
import * as React$1 from "react";
|
|
10
|
+
import { CalendarIcon } from "lucide-react";
|
|
11
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
12
|
+
|
|
13
|
+
//#region ui/date-picker.tsx
|
|
14
|
+
function DatePicker({ value, onChange, disabled, minDate, maxDate, placeholder = "Select date", className, language }) {
|
|
15
|
+
const [open, setOpen] = React$1.useState(false);
|
|
16
|
+
const [month, setMonth] = React$1.useState(value ?? /* @__PURE__ */ new Date());
|
|
17
|
+
const [textValue, setTextValue] = React$1.useState(formatDate(value));
|
|
18
|
+
React$1.useEffect(() => {
|
|
19
|
+
setTextValue(formatDate(value));
|
|
20
|
+
if (value) setMonth(value);
|
|
21
|
+
}, [value]);
|
|
22
|
+
function formatDate(date) {
|
|
23
|
+
if (!date) return "";
|
|
24
|
+
return date.toLocaleDateString(language, {
|
|
25
|
+
day: "2-digit",
|
|
26
|
+
month: "long",
|
|
27
|
+
year: "numeric"
|
|
28
|
+
});
|
|
29
|
+
}
|
|
30
|
+
function isValidDate(date) {
|
|
31
|
+
if (!date) return false;
|
|
32
|
+
return !isNaN(date.getTime());
|
|
33
|
+
}
|
|
34
|
+
function isWithinRange(date) {
|
|
35
|
+
if (minDate && date < minDate) return false;
|
|
36
|
+
if (maxDate && date > maxDate) return false;
|
|
37
|
+
return true;
|
|
38
|
+
}
|
|
39
|
+
return /* @__PURE__ */ jsxs(Popover, {
|
|
40
|
+
open,
|
|
41
|
+
onOpenChange: setOpen,
|
|
42
|
+
children: [/* @__PURE__ */ jsxs("div", {
|
|
43
|
+
className: cn("relative w-full", className),
|
|
44
|
+
children: [/* @__PURE__ */ jsx(Input, {
|
|
45
|
+
value: textValue,
|
|
46
|
+
placeholder,
|
|
47
|
+
onChange: (e) => {
|
|
48
|
+
const nextText = e.currentTarget.value;
|
|
49
|
+
setTextValue(nextText);
|
|
50
|
+
const parsed = new Date(nextText);
|
|
51
|
+
if (isValidDate(parsed) && isWithinRange(parsed)) {
|
|
52
|
+
onChange(parsed);
|
|
53
|
+
setMonth(parsed);
|
|
54
|
+
}
|
|
55
|
+
},
|
|
56
|
+
onKeyDown: (e) => {
|
|
57
|
+
if (e.key === "ArrowDown") {
|
|
58
|
+
e.preventDefault();
|
|
59
|
+
setOpen(true);
|
|
60
|
+
}
|
|
61
|
+
},
|
|
62
|
+
disabled,
|
|
63
|
+
className: cn("pr-10")
|
|
64
|
+
}), /* @__PURE__ */ jsx(PopoverTrigger, {
|
|
65
|
+
asChild: true,
|
|
66
|
+
children: /* @__PURE__ */ jsx(Button, {
|
|
67
|
+
type: "button",
|
|
68
|
+
variant: "ghost",
|
|
69
|
+
size: "icon",
|
|
70
|
+
className: "absolute top-1/2 right-1 -translate-y-1/2",
|
|
71
|
+
disabled,
|
|
72
|
+
"aria-label": "Open date picker",
|
|
73
|
+
children: /* @__PURE__ */ jsx(CalendarIcon, { className: "size-4" })
|
|
74
|
+
})
|
|
75
|
+
})]
|
|
76
|
+
}), /* @__PURE__ */ jsx(PopoverContent, {
|
|
77
|
+
className: "w-auto overflow-hidden p-0",
|
|
78
|
+
align: "end",
|
|
79
|
+
sideOffset: 10,
|
|
80
|
+
alignOffset: -8,
|
|
81
|
+
children: /* @__PURE__ */ jsx(Calendar, {
|
|
82
|
+
mode: "single",
|
|
83
|
+
selected: value ?? void 0,
|
|
84
|
+
captionLayout: "dropdown",
|
|
85
|
+
month,
|
|
86
|
+
onMonthChange: setMonth,
|
|
87
|
+
onSelect: (d) => {
|
|
88
|
+
onChange(d ?? null);
|
|
89
|
+
setTextValue(formatDate(d ?? null));
|
|
90
|
+
if (d) setOpen(false);
|
|
91
|
+
},
|
|
92
|
+
fromDate: minDate,
|
|
93
|
+
toDate: maxDate,
|
|
94
|
+
initialFocus: true
|
|
95
|
+
})
|
|
96
|
+
})]
|
|
97
|
+
});
|
|
98
|
+
}
|
|
99
|
+
|
|
100
|
+
//#endregion
|
|
101
|
+
export { DatePicker };
|
|
102
|
+
//# sourceMappingURL=date-picker.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"date-picker.js","names":["React"],"sources":["../../ui/date-picker.tsx"],"sourcesContent":["'use client';\n\nimport * as React from 'react';\nimport { CalendarIcon } from 'lucide-react';\nimport { Popover, PopoverContent, PopoverTrigger } from './popover';\nimport { Button } from './button';\nimport { Calendar } from './calendar';\nimport { Input } from './input';\nimport { cn } from './utils';\n\nexport interface DatePickerProps {\n value: Date | null;\n onChange: (date: Date | null) => void;\n disabled?: boolean;\n minDate?: Date;\n maxDate?: Date;\n placeholder?: string;\n className?: string;\n language?: string;\n}\n\nexport function DatePicker({\n value,\n onChange,\n disabled,\n minDate,\n maxDate,\n placeholder = 'Select date',\n className,\n language,\n}: DatePickerProps) {\n const [open, setOpen] = React.useState(false);\n const [month, setMonth] = React.useState<Date>(value ?? new Date());\n const [textValue, setTextValue] = React.useState<string>(formatDate(value));\n\n React.useEffect(() => {\n setTextValue(formatDate(value));\n if (value) setMonth(value);\n }, [value]);\n\n function formatDate(date: Date | null | undefined) {\n if (!date) return '';\n return date.toLocaleDateString(language, {\n day: '2-digit',\n month: 'long',\n year: 'numeric',\n });\n }\n\n function isValidDate(date: Date | undefined) {\n if (!date) return false;\n return !isNaN(date.getTime());\n }\n\n function isWithinRange(date: Date) {\n if (minDate && date < minDate) return false;\n if (maxDate && date > maxDate) return false;\n return true;\n }\n\n return (\n <Popover open={open} onOpenChange={setOpen}>\n <div className={cn('relative w-full', className)}>\n <Input\n value={textValue}\n placeholder={placeholder}\n onChange={(e) => {\n const nextText = e.currentTarget.value;\n setTextValue(nextText);\n const parsed = new Date(nextText);\n if (isValidDate(parsed) && isWithinRange(parsed)) {\n onChange(parsed);\n setMonth(parsed);\n }\n }}\n onKeyDown={(e) => {\n if (e.key === 'ArrowDown') {\n e.preventDefault();\n setOpen(true);\n }\n }}\n disabled={disabled}\n className={cn('pr-10')}\n />\n <PopoverTrigger asChild>\n <Button\n type=\"button\"\n variant=\"ghost\"\n size=\"icon\"\n className=\"absolute top-1/2 right-1 -translate-y-1/2\"\n disabled={disabled}\n aria-label=\"Open date picker\"\n >\n <CalendarIcon className=\"size-4\" />\n </Button>\n </PopoverTrigger>\n </div>\n <PopoverContent\n className=\"w-auto overflow-hidden p-0\"\n align=\"end\"\n sideOffset={10}\n alignOffset={-8}\n >\n <Calendar\n mode=\"single\"\n selected={value ?? undefined}\n captionLayout=\"dropdown\"\n month={month}\n onMonthChange={setMonth}\n onSelect={(d) => {\n onChange(d ?? null);\n setTextValue(formatDate(d ?? null));\n if (d) setOpen(false);\n }}\n fromDate={minDate}\n toDate={maxDate}\n initialFocus\n />\n </PopoverContent>\n </Popover>\n );\n}\n"],"mappings":";;;;;;;;;;;;;AAqBA,SAAgB,WAAW,EACzB,OACA,UACA,UACA,SACA,SACA,cAAc,eACd,WACA,YACkB;CAClB,MAAM,CAAC,MAAM,WAAWA,QAAM,SAAS,MAAM;CAC7C,MAAM,CAAC,OAAO,YAAYA,QAAM,SAAe,yBAAS,IAAI,MAAM,CAAC;CACnE,MAAM,CAAC,WAAW,gBAAgBA,QAAM,SAAiB,WAAW,MAAM,CAAC;AAE3E,SAAM,gBAAgB;AACpB,eAAa,WAAW,MAAM,CAAC;AAC/B,MAAI,MAAO,UAAS,MAAM;IACzB,CAAC,MAAM,CAAC;CAEX,SAAS,WAAW,MAA+B;AACjD,MAAI,CAAC,KAAM,QAAO;AAClB,SAAO,KAAK,mBAAmB,UAAU;GACvC,KAAK;GACL,OAAO;GACP,MAAM;GACP,CAAC;;CAGJ,SAAS,YAAY,MAAwB;AAC3C,MAAI,CAAC,KAAM,QAAO;AAClB,SAAO,CAAC,MAAM,KAAK,SAAS,CAAC;;CAG/B,SAAS,cAAc,MAAY;AACjC,MAAI,WAAW,OAAO,QAAS,QAAO;AACtC,MAAI,WAAW,OAAO,QAAS,QAAO;AACtC,SAAO;;AAGT,QACE,qBAAC;EAAc;EAAM,cAAc;aACjC,qBAAC;GAAI,WAAW,GAAG,mBAAmB,UAAU;cAC9C,oBAAC;IACC,OAAO;IACM;IACb,WAAW,MAAM;KACf,MAAM,WAAW,EAAE,cAAc;AACjC,kBAAa,SAAS;KACtB,MAAM,SAAS,IAAI,KAAK,SAAS;AACjC,SAAI,YAAY,OAAO,IAAI,cAAc,OAAO,EAAE;AAChD,eAAS,OAAO;AAChB,eAAS,OAAO;;;IAGpB,YAAY,MAAM;AAChB,SAAI,EAAE,QAAQ,aAAa;AACzB,QAAE,gBAAgB;AAClB,cAAQ,KAAK;;;IAGP;IACV,WAAW,GAAG,QAAQ;KACtB,EACF,oBAAC;IAAe;cACd,oBAAC;KACC,MAAK;KACL,SAAQ;KACR,MAAK;KACL,WAAU;KACA;KACV,cAAW;eAEX,oBAAC,gBAAa,WAAU,WAAW;MAC5B;KACM;IACb,EACN,oBAAC;GACC,WAAU;GACV,OAAM;GACN,YAAY;GACZ,aAAa;aAEb,oBAAC;IACC,MAAK;IACL,UAAU,SAAS;IACnB,eAAc;IACP;IACP,eAAe;IACf,WAAW,MAAM;AACf,cAAS,KAAK,KAAK;AACnB,kBAAa,WAAW,KAAK,KAAK,CAAC;AACnC,SAAI,EAAG,SAAQ,MAAM;;IAEvB,UAAU;IACV,QAAQ;IACR;KACA;IACa;GACT"}
|