@contractspec/lib.ui-kit-web 1.44.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +21 -0
- package/README.md +109 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.js +0 -0
- package/dist/ui/accordion.d.ts +25 -0
- package/dist/ui/accordion.d.ts.map +1 -0
- package/dist/ui/accordion.js +48 -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 +85 -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 +10 -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 +33 -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 +21 -0
- package/dist/ui/button.d.ts.map +1 -0
- package/dist/ui/button.js +55 -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 +109 -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 +136 -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 +25 -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 +28 -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 +90 -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 +84 -0
- package/dist/ui/context-menu.js.map +1 -0
- package/dist/ui/cta.d.ts +23 -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 +101 -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 +54 -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 +44 -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 +90 -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 +82 -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 +127 -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 +37 -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 +66 -0
- package/dist/ui/field.d.ts.map +1 -0
- package/dist/ui/field.js +121 -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 +94 -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 +36 -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 +89 -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 +46 -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 +19 -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 +47 -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 +28 -0
- package/dist/ui/map/MapBase.d.ts.map +1 -0
- package/dist/ui/map/MapBase.js +47 -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 +38 -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 +51 -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 +40 -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 +137 -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 +85 -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 +105 -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 +107 -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 +200 -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 +39 -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 +24 -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 +32 -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 +25 -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 +22 -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 +40 -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 +100 -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 +21 -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 +86 -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 +379 -0
- package/dist/ui/sidebar.js.map +1 -0
- package/dist/ui/skeleton.d.ts +11 -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 +40 -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 +24 -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 +15 -0
- package/dist/ui/switch.d.ts.map +1 -0
- package/dist/ui/switch.js +23 -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 +71 -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 +40 -0
- package/dist/ui/tabs.js.map +1 -0
- package/dist/ui/text.d.ts +15 -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 +81 -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 +62 -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 +27 -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 +48 -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 +41 -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 +40 -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 +122 -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 +338 -0
|
@@ -0,0 +1,46 @@
|
|
|
1
|
+
import { cn } from "../../utils.js";
|
|
2
|
+
import React from "react";
|
|
3
|
+
import { Loader2 } from "lucide-react";
|
|
4
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
5
|
+
|
|
6
|
+
//#region ui/atoms/LoadingSpinner/LoadingSpinner.tsx
|
|
7
|
+
const sizeClasses = {
|
|
8
|
+
sm: "h-4 w-4",
|
|
9
|
+
md: "h-6 w-6",
|
|
10
|
+
lg: "h-8 w-8",
|
|
11
|
+
xl: "h-12 w-12"
|
|
12
|
+
};
|
|
13
|
+
const LoadingSpinner = ({ size = "md", className, text, fullScreen = false }) => {
|
|
14
|
+
const spinner = /* @__PURE__ */ jsxs("div", {
|
|
15
|
+
className: cn("flex flex-col items-center justify-center gap-2", className),
|
|
16
|
+
children: [/* @__PURE__ */ jsx(Loader2, { className: cn("text-primary-600 animate-spin", sizeClasses[size]) }), text && /* @__PURE__ */ jsx("p", {
|
|
17
|
+
className: "animate-pulse text-base text-gray-600",
|
|
18
|
+
children: text
|
|
19
|
+
})]
|
|
20
|
+
});
|
|
21
|
+
if (fullScreen) return /* @__PURE__ */ jsx("div", {
|
|
22
|
+
className: "fixed inset-0 z-50 flex items-center justify-center bg-white/80 backdrop-blur-xs",
|
|
23
|
+
children: spinner
|
|
24
|
+
});
|
|
25
|
+
return spinner;
|
|
26
|
+
};
|
|
27
|
+
const SkeletonLine = ({ className }) => /* @__PURE__ */ jsx("div", { className: cn("h-4 animate-pulse rounded-xs bg-gray-200", className) });
|
|
28
|
+
const SkeletonCard = ({ className }) => /* @__PURE__ */ jsxs("div", {
|
|
29
|
+
className: cn("animate-pulse space-y-3 rounded-lg bg-gray-200 p-4", className),
|
|
30
|
+
children: [
|
|
31
|
+
/* @__PURE__ */ jsx(SkeletonLine, { className: "h-6 w-3/4" }),
|
|
32
|
+
/* @__PURE__ */ jsx(SkeletonLine, { className: "h-4 w-full" }),
|
|
33
|
+
/* @__PURE__ */ jsx(SkeletonLine, { className: "h-4 w-2/3" })
|
|
34
|
+
]
|
|
35
|
+
});
|
|
36
|
+
const SkeletonTable = ({ rows = 5, cols = 4 }) => /* @__PURE__ */ jsx("div", {
|
|
37
|
+
className: "space-y-3",
|
|
38
|
+
children: Array.from({ length: rows }).map((_, i) => /* @__PURE__ */ jsx("div", {
|
|
39
|
+
className: "flex space-x-4",
|
|
40
|
+
children: Array.from({ length: cols }).map((_$1, j) => /* @__PURE__ */ jsx(SkeletonLine, { className: "flex-1" }, j))
|
|
41
|
+
}, i))
|
|
42
|
+
});
|
|
43
|
+
|
|
44
|
+
//#endregion
|
|
45
|
+
export { LoadingSpinner, SkeletonCard, SkeletonLine, SkeletonTable };
|
|
46
|
+
//# sourceMappingURL=LoadingSpinner.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"LoadingSpinner.js","names":["LoadingSpinner: React.FC<LoadingSpinnerProps>","SkeletonLine: React.FC<{ className?: string }>","SkeletonCard: React.FC<{ className?: string }>","SkeletonTable: React.FC<{ rows?: number; cols?: number }>"],"sources":["../../../../ui/atoms/LoadingSpinner/LoadingSpinner.tsx"],"sourcesContent":["import React from 'react';\nimport { Loader2 } from 'lucide-react';\nimport { cn } from '../../utils';\n\ninterface LoadingSpinnerProps {\n size?: 'sm' | 'md' | 'lg' | 'xl';\n className?: string;\n text?: string;\n fullScreen?: boolean;\n}\n\nconst sizeClasses = {\n sm: 'h-4 w-4',\n md: 'h-6 w-6',\n lg: 'h-8 w-8',\n xl: 'h-12 w-12',\n};\n\nexport const LoadingSpinner: React.FC<LoadingSpinnerProps> = ({\n size = 'md',\n className,\n text,\n fullScreen = false,\n}) => {\n const spinner = (\n <div\n className={cn(\n 'flex flex-col items-center justify-center gap-2',\n className\n )}\n >\n <Loader2\n className={cn('text-primary-600 animate-spin', sizeClasses[size])}\n />\n {text && <p className=\"animate-pulse text-base text-gray-600\">{text}</p>}\n </div>\n );\n\n if (fullScreen) {\n return (\n <div className=\"fixed inset-0 z-50 flex items-center justify-center bg-white/80 backdrop-blur-xs\">\n {spinner}\n </div>\n );\n }\n\n return spinner;\n};\n\n// Skeleton loading components for better UX\nexport const SkeletonLine: React.FC<{ className?: string }> = ({\n className,\n}) => (\n <div className={cn('h-4 animate-pulse rounded-xs bg-gray-200', className)} />\n);\n\nexport const SkeletonCard: React.FC<{ className?: string }> = ({\n className,\n}) => (\n <div\n className={cn(\n 'animate-pulse space-y-3 rounded-lg bg-gray-200 p-4',\n className\n )}\n >\n <SkeletonLine className=\"h-6 w-3/4\" />\n <SkeletonLine className=\"h-4 w-full\" />\n <SkeletonLine className=\"h-4 w-2/3\" />\n </div>\n);\n\nexport const SkeletonTable: React.FC<{ rows?: number; cols?: number }> = ({\n rows = 5,\n cols = 4,\n}) => (\n <div className=\"space-y-3\">\n {Array.from({ length: rows }).map((_, i) => (\n <div key={i} className=\"flex space-x-4\">\n {Array.from({ length: cols }).map((_, j) => (\n <SkeletonLine key={j} className=\"flex-1\" />\n ))}\n </div>\n ))}\n </div>\n);\n"],"mappings":";;;;;;AAWA,MAAM,cAAc;CAClB,IAAI;CACJ,IAAI;CACJ,IAAI;CACJ,IAAI;CACL;AAED,MAAaA,kBAAiD,EAC5D,OAAO,MACP,WACA,MACA,aAAa,YACT;CACJ,MAAM,UACJ,qBAAC;EACC,WAAW,GACT,mDACA,UACD;aAED,oBAAC,WACC,WAAW,GAAG,iCAAiC,YAAY,MAAM,GACjE,EACD,QAAQ,oBAAC;GAAE,WAAU;aAAyC;IAAS;GACpE;AAGR,KAAI,WACF,QACE,oBAAC;EAAI,WAAU;YACZ;GACG;AAIV,QAAO;;AAIT,MAAaC,gBAAkD,EAC7D,gBAEA,oBAAC,SAAI,WAAW,GAAG,4CAA4C,UAAU,GAAI;AAG/E,MAAaC,gBAAkD,EAC7D,gBAEA,qBAAC;CACC,WAAW,GACT,sDACA,UACD;;EAED,oBAAC,gBAAa,WAAU,cAAc;EACtC,oBAAC,gBAAa,WAAU,eAAe;EACvC,oBAAC,gBAAa,WAAU,cAAc;;EAClC;AAGR,MAAaC,iBAA6D,EACxE,OAAO,GACP,OAAO,QAEP,oBAAC;CAAI,WAAU;WACZ,MAAM,KAAK,EAAE,QAAQ,MAAM,CAAC,CAAC,KAAK,GAAG,MACpC,oBAAC;EAAY,WAAU;YACpB,MAAM,KAAK,EAAE,QAAQ,MAAM,CAAC,CAAC,KAAK,KAAG,MACpC,oBAAC,gBAAqB,WAAU,YAAb,EAAwB,CAC3C;IAHM,EAIJ,CACN;EACE"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Pagination.d.ts","names":[],"sources":["../../../../ui/atoms/Pagination/Pagination.tsx"],"sourcesContent":[],"mappings":";;;;cAiBa,YAAY,KAAA,CAAM,GAAG"}
|
|
@@ -0,0 +1,157 @@
|
|
|
1
|
+
import { Button } from "../../button.js";
|
|
2
|
+
import { Select, SelectContent, SelectItem, SelectTrigger, SelectValue } from "../../select.js";
|
|
3
|
+
import React from "react";
|
|
4
|
+
import { ChevronLeft, ChevronRight, ChevronsLeft, ChevronsRight } from "lucide-react";
|
|
5
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
6
|
+
|
|
7
|
+
//#region ui/atoms/Pagination/Pagination.tsx
|
|
8
|
+
const Pagination = ({ currentPage, totalPages, totalItems, itemsPerPage, onPageChange, onItemsPerPageChange, disabled = false, className = "", showItemsPerPage = true, itemsPerPageOptions = [
|
|
9
|
+
10,
|
|
10
|
+
25,
|
|
11
|
+
50,
|
|
12
|
+
100
|
|
13
|
+
] }) => {
|
|
14
|
+
const startItem = (currentPage - 1) * itemsPerPage + 1;
|
|
15
|
+
const endItem = Math.min(currentPage * itemsPerPage, totalItems);
|
|
16
|
+
const canGoPrevious = currentPage > 1 && !disabled;
|
|
17
|
+
const canGoNext = currentPage < totalPages && !disabled;
|
|
18
|
+
const getVisiblePageNumbers = () => {
|
|
19
|
+
if (totalPages <= 7) return Array.from({ length: totalPages }, (_, i) => i + 1);
|
|
20
|
+
if (currentPage <= 3) return [
|
|
21
|
+
1,
|
|
22
|
+
2,
|
|
23
|
+
3,
|
|
24
|
+
4,
|
|
25
|
+
5,
|
|
26
|
+
-1,
|
|
27
|
+
totalPages
|
|
28
|
+
];
|
|
29
|
+
if (currentPage >= totalPages - 2) return [
|
|
30
|
+
1,
|
|
31
|
+
-1,
|
|
32
|
+
totalPages - 4,
|
|
33
|
+
totalPages - 3,
|
|
34
|
+
totalPages - 2,
|
|
35
|
+
totalPages - 1,
|
|
36
|
+
totalPages
|
|
37
|
+
];
|
|
38
|
+
return [
|
|
39
|
+
1,
|
|
40
|
+
-1,
|
|
41
|
+
currentPage - 1,
|
|
42
|
+
currentPage,
|
|
43
|
+
currentPage + 1,
|
|
44
|
+
-1,
|
|
45
|
+
totalPages
|
|
46
|
+
];
|
|
47
|
+
};
|
|
48
|
+
if (totalPages === 0) return null;
|
|
49
|
+
return /* @__PURE__ */ jsxs("div", {
|
|
50
|
+
className: `flex flex-col items-center justify-between gap-4 sm:flex-row ${className}`,
|
|
51
|
+
children: [
|
|
52
|
+
/* @__PURE__ */ jsxs("div", {
|
|
53
|
+
className: "text-muted-foreground order-2 text-base sm:order-1",
|
|
54
|
+
children: [
|
|
55
|
+
"Affichage de ",
|
|
56
|
+
startItem,
|
|
57
|
+
" à ",
|
|
58
|
+
endItem,
|
|
59
|
+
" sur ",
|
|
60
|
+
totalItems,
|
|
61
|
+
" résultats"
|
|
62
|
+
]
|
|
63
|
+
}),
|
|
64
|
+
/* @__PURE__ */ jsxs("div", {
|
|
65
|
+
className: "order-1 flex items-center gap-2 sm:order-2",
|
|
66
|
+
children: [
|
|
67
|
+
/* @__PURE__ */ jsxs(Button, {
|
|
68
|
+
variant: "outline",
|
|
69
|
+
size: "sm",
|
|
70
|
+
onClick: () => onPageChange(1),
|
|
71
|
+
disabled: !canGoPrevious,
|
|
72
|
+
className: "hidden h-8 w-8 p-0 sm:flex",
|
|
73
|
+
children: [/* @__PURE__ */ jsx(ChevronsLeft, { className: "h-4 w-4" }), /* @__PURE__ */ jsx("span", {
|
|
74
|
+
className: "sr-only",
|
|
75
|
+
children: "Première page"
|
|
76
|
+
})]
|
|
77
|
+
}),
|
|
78
|
+
/* @__PURE__ */ jsxs(Button, {
|
|
79
|
+
variant: "outline",
|
|
80
|
+
size: "sm",
|
|
81
|
+
onClick: () => onPageChange(currentPage - 1),
|
|
82
|
+
disabled: !canGoPrevious,
|
|
83
|
+
className: "h-8 w-8 p-0",
|
|
84
|
+
children: [/* @__PURE__ */ jsx(ChevronLeft, { className: "h-4 w-4" }), /* @__PURE__ */ jsx("span", {
|
|
85
|
+
className: "sr-only",
|
|
86
|
+
children: "Page précédente"
|
|
87
|
+
})]
|
|
88
|
+
}),
|
|
89
|
+
/* @__PURE__ */ jsx("div", {
|
|
90
|
+
className: "flex items-center gap-1",
|
|
91
|
+
children: getVisiblePageNumbers().map((page, index) => {
|
|
92
|
+
if (page === -1) return /* @__PURE__ */ jsx("span", {
|
|
93
|
+
className: "text-muted-foreground px-2 py-1",
|
|
94
|
+
children: "..."
|
|
95
|
+
}, `ellipsis-${index}`);
|
|
96
|
+
return /* @__PURE__ */ jsx(Button, {
|
|
97
|
+
variant: page === currentPage ? "default" : "outline",
|
|
98
|
+
size: "sm",
|
|
99
|
+
onClick: () => onPageChange(page),
|
|
100
|
+
disabled,
|
|
101
|
+
className: "h-8 min-w-8 px-2",
|
|
102
|
+
children: page
|
|
103
|
+
}, page);
|
|
104
|
+
})
|
|
105
|
+
}),
|
|
106
|
+
/* @__PURE__ */ jsxs(Button, {
|
|
107
|
+
variant: "outline",
|
|
108
|
+
size: "sm",
|
|
109
|
+
onClick: () => onPageChange(currentPage + 1),
|
|
110
|
+
disabled: !canGoNext,
|
|
111
|
+
className: "h-8 w-8 p-0",
|
|
112
|
+
children: [/* @__PURE__ */ jsx(ChevronRight, { className: "h-4 w-4" }), /* @__PURE__ */ jsx("span", {
|
|
113
|
+
className: "sr-only",
|
|
114
|
+
children: "Page suivante"
|
|
115
|
+
})]
|
|
116
|
+
}),
|
|
117
|
+
/* @__PURE__ */ jsxs(Button, {
|
|
118
|
+
variant: "outline",
|
|
119
|
+
size: "sm",
|
|
120
|
+
onClick: () => onPageChange(totalPages),
|
|
121
|
+
disabled: !canGoNext,
|
|
122
|
+
className: "hidden h-8 w-8 p-0 sm:flex",
|
|
123
|
+
children: [/* @__PURE__ */ jsx(ChevronsRight, { className: "h-4 w-4" }), /* @__PURE__ */ jsx("span", {
|
|
124
|
+
className: "sr-only",
|
|
125
|
+
children: "Dernière page"
|
|
126
|
+
})]
|
|
127
|
+
})
|
|
128
|
+
]
|
|
129
|
+
}),
|
|
130
|
+
showItemsPerPage && onItemsPerPageChange && /* @__PURE__ */ jsxs("div", {
|
|
131
|
+
className: "order-3 flex items-center gap-2 text-base",
|
|
132
|
+
children: [/* @__PURE__ */ jsx("span", {
|
|
133
|
+
className: "text-muted-foreground",
|
|
134
|
+
children: "Afficher:"
|
|
135
|
+
}), /* @__PURE__ */ jsxs(Select, {
|
|
136
|
+
value: itemsPerPage.toString(),
|
|
137
|
+
onValueChange: (value) => onItemsPerPageChange(parseInt(value)),
|
|
138
|
+
disabled,
|
|
139
|
+
children: [/* @__PURE__ */ jsx(SelectTrigger, {
|
|
140
|
+
className: "h-8 w-16",
|
|
141
|
+
children: /* @__PURE__ */ jsx(SelectValue, {})
|
|
142
|
+
}), /* @__PURE__ */ jsx(SelectContent, {
|
|
143
|
+
className: "bg-background",
|
|
144
|
+
children: itemsPerPageOptions.map((option) => /* @__PURE__ */ jsx(SelectItem, {
|
|
145
|
+
value: option.toString(),
|
|
146
|
+
children: option
|
|
147
|
+
}, option))
|
|
148
|
+
})]
|
|
149
|
+
})]
|
|
150
|
+
})
|
|
151
|
+
]
|
|
152
|
+
});
|
|
153
|
+
};
|
|
154
|
+
|
|
155
|
+
//#endregion
|
|
156
|
+
export { Pagination };
|
|
157
|
+
//# sourceMappingURL=Pagination.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"Pagination.js","names":["Pagination: React.FC<PaginationProps>"],"sources":["../../../../ui/atoms/Pagination/Pagination.tsx"],"sourcesContent":["import React from 'react';\nimport {\n ChevronLeft,\n ChevronRight,\n ChevronsLeft,\n ChevronsRight,\n} from 'lucide-react';\nimport { Button } from '../../button';\nimport {\n Select,\n SelectContent,\n SelectItem,\n SelectTrigger,\n SelectValue,\n} from '../../select';\nimport type { PaginationProps } from './types';\n\nexport const Pagination: React.FC<PaginationProps> = ({\n currentPage,\n totalPages,\n totalItems,\n itemsPerPage,\n onPageChange,\n onItemsPerPageChange,\n disabled = false,\n className = '',\n showItemsPerPage = true,\n itemsPerPageOptions = [10, 25, 50, 100],\n}) => {\n const startItem = (currentPage - 1) * itemsPerPage + 1;\n const endItem = Math.min(currentPage * itemsPerPage, totalItems);\n\n const canGoPrevious = currentPage > 1 && !disabled;\n const canGoNext = currentPage < totalPages && !disabled;\n\n const getVisiblePageNumbers = () => {\n if (totalPages <= 7) {\n return Array.from({ length: totalPages }, (_, i) => i + 1);\n }\n\n if (currentPage <= 3) {\n return [1, 2, 3, 4, 5, -1, totalPages]; // -1 represents ellipsis\n }\n\n if (currentPage >= totalPages - 2) {\n return [\n 1,\n -1,\n totalPages - 4,\n totalPages - 3,\n totalPages - 2,\n totalPages - 1,\n totalPages,\n ];\n }\n\n return [\n 1,\n -1,\n currentPage - 1,\n currentPage,\n currentPage + 1,\n -1,\n totalPages,\n ];\n };\n\n if (totalPages === 0) return null;\n\n return (\n <div\n className={`flex flex-col items-center justify-between gap-4 sm:flex-row ${className}`}\n >\n {/* Items info */}\n <div className=\"text-muted-foreground order-2 text-base sm:order-1\">\n Affichage de {startItem} à {endItem} sur {totalItems} résultats\n </div>\n\n {/* Pagination controls */}\n <div className=\"order-1 flex items-center gap-2 sm:order-2\">\n {/* First page */}\n <Button\n variant=\"outline\"\n size=\"sm\"\n onClick={() => onPageChange(1)}\n disabled={!canGoPrevious}\n className=\"hidden h-8 w-8 p-0 sm:flex\"\n >\n <ChevronsLeft className=\"h-4 w-4\" />\n <span className=\"sr-only\">Première page</span>\n </Button>\n\n {/* Previous page */}\n <Button\n variant=\"outline\"\n size=\"sm\"\n onClick={() => onPageChange(currentPage - 1)}\n disabled={!canGoPrevious}\n className=\"h-8 w-8 p-0\"\n >\n <ChevronLeft className=\"h-4 w-4\" />\n <span className=\"sr-only\">Page précédente</span>\n </Button>\n\n {/* Page numbers */}\n <div className=\"flex items-center gap-1\">\n {getVisiblePageNumbers().map((page, index) => {\n if (page === -1) {\n return (\n <span\n key={`ellipsis-${index}`}\n className=\"text-muted-foreground px-2 py-1\"\n >\n ...\n </span>\n );\n }\n\n return (\n <Button\n key={page}\n variant={page === currentPage ? 'default' : 'outline'}\n size=\"sm\"\n onClick={() => onPageChange(page)}\n disabled={disabled}\n className=\"h-8 min-w-8 px-2\"\n >\n {page}\n </Button>\n );\n })}\n </div>\n\n {/* Next page */}\n <Button\n variant=\"outline\"\n size=\"sm\"\n onClick={() => onPageChange(currentPage + 1)}\n disabled={!canGoNext}\n className=\"h-8 w-8 p-0\"\n >\n <ChevronRight className=\"h-4 w-4\" />\n <span className=\"sr-only\">Page suivante</span>\n </Button>\n\n {/* Last page */}\n <Button\n variant=\"outline\"\n size=\"sm\"\n onClick={() => onPageChange(totalPages)}\n disabled={!canGoNext}\n className=\"hidden h-8 w-8 p-0 sm:flex\"\n >\n <ChevronsRight className=\"h-4 w-4\" />\n <span className=\"sr-only\">Dernière page</span>\n </Button>\n </div>\n\n {/* Items per page */}\n {showItemsPerPage && onItemsPerPageChange && (\n <div className=\"order-3 flex items-center gap-2 text-base\">\n <span className=\"text-muted-foreground\">Afficher:</span>\n <Select\n value={itemsPerPage.toString()}\n onValueChange={(value) => onItemsPerPageChange(parseInt(value))}\n disabled={disabled}\n >\n <SelectTrigger className=\"h-8 w-16\">\n <SelectValue />\n </SelectTrigger>\n <SelectContent className=\"bg-background\">\n {itemsPerPageOptions.map((option) => (\n <SelectItem key={option} value={option.toString()}>\n {option}\n </SelectItem>\n ))}\n </SelectContent>\n </Select>\n </div>\n )}\n </div>\n );\n};\n"],"mappings":";;;;;;;AAiBA,MAAaA,cAAyC,EACpD,aACA,YACA,YACA,cACA,cACA,sBACA,WAAW,OACX,YAAY,IACZ,mBAAmB,MACnB,sBAAsB;CAAC;CAAI;CAAI;CAAI;CAAI,OACnC;CACJ,MAAM,aAAa,cAAc,KAAK,eAAe;CACrD,MAAM,UAAU,KAAK,IAAI,cAAc,cAAc,WAAW;CAEhE,MAAM,gBAAgB,cAAc,KAAK,CAAC;CAC1C,MAAM,YAAY,cAAc,cAAc,CAAC;CAE/C,MAAM,8BAA8B;AAClC,MAAI,cAAc,EAChB,QAAO,MAAM,KAAK,EAAE,QAAQ,YAAY,GAAG,GAAG,MAAM,IAAI,EAAE;AAG5D,MAAI,eAAe,EACjB,QAAO;GAAC;GAAG;GAAG;GAAG;GAAG;GAAG;GAAI;GAAW;AAGxC,MAAI,eAAe,aAAa,EAC9B,QAAO;GACL;GACA;GACA,aAAa;GACb,aAAa;GACb,aAAa;GACb,aAAa;GACb;GACD;AAGH,SAAO;GACL;GACA;GACA,cAAc;GACd;GACA,cAAc;GACd;GACA;GACD;;AAGH,KAAI,eAAe,EAAG,QAAO;AAE7B,QACE,qBAAC;EACC,WAAW,gEAAgE;;GAG3E,qBAAC;IAAI,WAAU;;KAAqD;KACpD;KAAU;KAAI;KAAQ;KAAM;KAAW;;KACjD;GAGN,qBAAC;IAAI,WAAU;;KAEb,qBAAC;MACC,SAAQ;MACR,MAAK;MACL,eAAe,aAAa,EAAE;MAC9B,UAAU,CAAC;MACX,WAAU;iBAEV,oBAAC,gBAAa,WAAU,YAAY,EACpC,oBAAC;OAAK,WAAU;iBAAU;QAAoB;OACvC;KAGT,qBAAC;MACC,SAAQ;MACR,MAAK;MACL,eAAe,aAAa,cAAc,EAAE;MAC5C,UAAU,CAAC;MACX,WAAU;iBAEV,oBAAC,eAAY,WAAU,YAAY,EACnC,oBAAC;OAAK,WAAU;iBAAU;QAAsB;OACzC;KAGT,oBAAC;MAAI,WAAU;gBACZ,uBAAuB,CAAC,KAAK,MAAM,UAAU;AAC5C,WAAI,SAAS,GACX,QACE,oBAAC;QAEC,WAAU;kBACX;UAFM,YAAY,QAIZ;AAIX,cACE,oBAAC;QAEC,SAAS,SAAS,cAAc,YAAY;QAC5C,MAAK;QACL,eAAe,aAAa,KAAK;QACvB;QACV,WAAU;kBAET;UAPI,KAQE;QAEX;OACE;KAGN,qBAAC;MACC,SAAQ;MACR,MAAK;MACL,eAAe,aAAa,cAAc,EAAE;MAC5C,UAAU,CAAC;MACX,WAAU;iBAEV,oBAAC,gBAAa,WAAU,YAAY,EACpC,oBAAC;OAAK,WAAU;iBAAU;QAAoB;OACvC;KAGT,qBAAC;MACC,SAAQ;MACR,MAAK;MACL,eAAe,aAAa,WAAW;MACvC,UAAU,CAAC;MACX,WAAU;iBAEV,oBAAC,iBAAc,WAAU,YAAY,EACrC,oBAAC;OAAK,WAAU;iBAAU;QAAoB;OACvC;;KACL;GAGL,oBAAoB,wBACnB,qBAAC;IAAI,WAAU;eACb,oBAAC;KAAK,WAAU;eAAwB;MAAgB,EACxD,qBAAC;KACC,OAAO,aAAa,UAAU;KAC9B,gBAAgB,UAAU,qBAAqB,SAAS,MAAM,CAAC;KACrD;gBAEV,oBAAC;MAAc,WAAU;gBACvB,oBAAC,gBAAc;OACD,EAChB,oBAAC;MAAc,WAAU;gBACtB,oBAAoB,KAAK,WACxB,oBAAC;OAAwB,OAAO,OAAO,UAAU;iBAC9C;SADc,OAEJ,CACb;OACY;MACT;KACL;;GAEJ"}
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
//#region ui/atoms/Pagination/types.d.ts
|
|
2
|
+
interface PaginationProps {
|
|
3
|
+
currentPage: number;
|
|
4
|
+
totalPages: number;
|
|
5
|
+
totalItems: number;
|
|
6
|
+
itemsPerPage: number;
|
|
7
|
+
onPageChange: (page: number) => void;
|
|
8
|
+
onItemsPerPageChange?: (itemsPerPage: number) => void;
|
|
9
|
+
disabled?: boolean;
|
|
10
|
+
className?: string;
|
|
11
|
+
showItemsPerPage?: boolean;
|
|
12
|
+
itemsPerPageOptions?: number[];
|
|
13
|
+
}
|
|
14
|
+
//#endregion
|
|
15
|
+
export { PaginationProps };
|
|
16
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","names":[],"sources":["../../../../ui/atoms/Pagination/types.ts"],"sourcesContent":[],"mappings":";UAAiB,eAAA;EAAA,WAAA,EAAA,MAAe"}
|
|
File without changes
|
|
@@ -0,0 +1,8 @@
|
|
|
1
|
+
import { SearchInputProps } from "./types.js";
|
|
2
|
+
import React from "react";
|
|
3
|
+
|
|
4
|
+
//#region ui/atoms/SearchInput/SearchInput.d.ts
|
|
5
|
+
declare const SearchInput: React.FC<SearchInputProps>;
|
|
6
|
+
//#endregion
|
|
7
|
+
export { SearchInput };
|
|
8
|
+
//# sourceMappingURL=SearchInput.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SearchInput.d.ts","names":[],"sources":["../../../../ui/atoms/SearchInput/SearchInput.tsx"],"sourcesContent":[],"mappings":";;;;cAMa,aAAa,KAAA,CAAM,GAAG"}
|
|
@@ -0,0 +1,50 @@
|
|
|
1
|
+
import { Button } from "../../button.js";
|
|
2
|
+
import { Input } from "../../input.js";
|
|
3
|
+
import React from "react";
|
|
4
|
+
import { Search, X } from "lucide-react";
|
|
5
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
6
|
+
|
|
7
|
+
//#region ui/atoms/SearchInput/SearchInput.tsx
|
|
8
|
+
const SearchInput = ({ value, onChange, placeholder = "Rechercher...", onClear, disabled = false, className = "", autoFocus = false }) => {
|
|
9
|
+
const handleClear = () => {
|
|
10
|
+
onChange("");
|
|
11
|
+
onClear?.();
|
|
12
|
+
};
|
|
13
|
+
return /* @__PURE__ */ jsxs("div", {
|
|
14
|
+
className: `relative w-full ${className}`,
|
|
15
|
+
children: [
|
|
16
|
+
/* @__PURE__ */ jsx("div", {
|
|
17
|
+
className: "pointer-events-none absolute inset-y-0 left-0 flex items-center pl-3",
|
|
18
|
+
children: /* @__PURE__ */ jsx(Search, { className: "text-muted-foreground h-4 w-4" })
|
|
19
|
+
}),
|
|
20
|
+
/* @__PURE__ */ jsx(Input, {
|
|
21
|
+
type: "text",
|
|
22
|
+
value,
|
|
23
|
+
onChange: (e) => onChange(e.target.value),
|
|
24
|
+
placeholder,
|
|
25
|
+
disabled,
|
|
26
|
+
autoFocus,
|
|
27
|
+
className: "pr-10 pl-10"
|
|
28
|
+
}),
|
|
29
|
+
value && /* @__PURE__ */ jsx("div", {
|
|
30
|
+
className: "absolute inset-y-0 right-0 flex items-center pr-3",
|
|
31
|
+
children: /* @__PURE__ */ jsxs(Button, {
|
|
32
|
+
type: "button",
|
|
33
|
+
variant: "ghost",
|
|
34
|
+
size: "sm",
|
|
35
|
+
onClick: handleClear,
|
|
36
|
+
disabled,
|
|
37
|
+
className: "h-6 w-6 p-0 hover:bg-transparent",
|
|
38
|
+
children: [/* @__PURE__ */ jsx(X, { className: "text-muted-foreground hover:text-foreground h-4 w-4" }), /* @__PURE__ */ jsx("span", {
|
|
39
|
+
className: "sr-only",
|
|
40
|
+
children: "Effacer la recherche"
|
|
41
|
+
})]
|
|
42
|
+
})
|
|
43
|
+
})
|
|
44
|
+
]
|
|
45
|
+
});
|
|
46
|
+
};
|
|
47
|
+
|
|
48
|
+
//#endregion
|
|
49
|
+
export { SearchInput };
|
|
50
|
+
//# sourceMappingURL=SearchInput.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"SearchInput.js","names":["SearchInput: React.FC<SearchInputProps>"],"sources":["../../../../ui/atoms/SearchInput/SearchInput.tsx"],"sourcesContent":["import React from 'react';\nimport { Search, X } from 'lucide-react';\nimport { Input } from '../../input';\nimport { Button } from '../../button';\nimport type { SearchInputProps } from './types';\n\nexport const SearchInput: React.FC<SearchInputProps> = ({\n value,\n onChange,\n placeholder = 'Rechercher...',\n onClear,\n disabled = false,\n className = '',\n autoFocus = false,\n}) => {\n const handleClear = () => {\n onChange('');\n onClear?.();\n };\n\n return (\n <div className={`relative w-full ${className}`}>\n <div className=\"pointer-events-none absolute inset-y-0 left-0 flex items-center pl-3\">\n <Search className=\"text-muted-foreground h-4 w-4\" />\n </div>\n\n <Input\n type=\"text\"\n value={value}\n onChange={(e) => onChange(e.target.value)}\n placeholder={placeholder}\n disabled={disabled}\n // eslint-disable-next-line jsx-a11y/no-autofocus\n autoFocus={autoFocus}\n className=\"pr-10 pl-10\"\n />\n\n {value && (\n <div className=\"absolute inset-y-0 right-0 flex items-center pr-3\">\n <Button\n type=\"button\"\n variant=\"ghost\"\n size=\"sm\"\n onClick={handleClear}\n disabled={disabled}\n className=\"h-6 w-6 p-0 hover:bg-transparent\"\n >\n <X className=\"text-muted-foreground hover:text-foreground h-4 w-4\" />\n <span className=\"sr-only\">Effacer la recherche</span>\n </Button>\n </div>\n )}\n </div>\n );\n};\n"],"mappings":";;;;;;;AAMA,MAAaA,eAA2C,EACtD,OACA,UACA,cAAc,iBACd,SACA,WAAW,OACX,YAAY,IACZ,YAAY,YACR;CACJ,MAAM,oBAAoB;AACxB,WAAS,GAAG;AACZ,aAAW;;AAGb,QACE,qBAAC;EAAI,WAAW,mBAAmB;;GACjC,oBAAC;IAAI,WAAU;cACb,oBAAC,UAAO,WAAU,kCAAkC;KAChD;GAEN,oBAAC;IACC,MAAK;IACE;IACP,WAAW,MAAM,SAAS,EAAE,OAAO,MAAM;IAC5B;IACH;IAEC;IACX,WAAU;KACV;GAED,SACC,oBAAC;IAAI,WAAU;cACb,qBAAC;KACC,MAAK;KACL,SAAQ;KACR,MAAK;KACL,SAAS;KACC;KACV,WAAU;gBAEV,oBAAC,KAAE,WAAU,wDAAwD,EACrE,oBAAC;MAAK,WAAU;gBAAU;OAA2B;MAC9C;KACL;;GAEJ"}
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
//#region ui/atoms/SearchInput/types.d.ts
|
|
2
|
+
interface SearchInputProps {
|
|
3
|
+
value: string;
|
|
4
|
+
onChange: (value: string) => void;
|
|
5
|
+
placeholder?: string;
|
|
6
|
+
onClear?: () => void;
|
|
7
|
+
disabled?: boolean;
|
|
8
|
+
className?: string;
|
|
9
|
+
autoFocus?: boolean;
|
|
10
|
+
}
|
|
11
|
+
//#endregion
|
|
12
|
+
export { SearchInputProps };
|
|
13
|
+
//# sourceMappingURL=types.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"types.d.ts","names":[],"sources":["../../../../ui/atoms/SearchInput/types.ts"],"sourcesContent":[],"mappings":";UAAiB,gBAAA;EAAA,KAAA,EAAA,MAAA"}
|
|
File without changes
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import * as React$1 from "react";
|
|
2
|
+
import * as react_jsx_runtime17 from "react/jsx-runtime";
|
|
3
|
+
import * as AvatarPrimitive from "@radix-ui/react-avatar";
|
|
4
|
+
|
|
5
|
+
//#region ui/avatar.d.ts
|
|
6
|
+
declare function Avatar({
|
|
7
|
+
className,
|
|
8
|
+
...props
|
|
9
|
+
}: React$1.ComponentProps<typeof AvatarPrimitive.Root>): react_jsx_runtime17.JSX.Element;
|
|
10
|
+
declare function AvatarImage({
|
|
11
|
+
className,
|
|
12
|
+
...props
|
|
13
|
+
}: React$1.ComponentProps<typeof AvatarPrimitive.Image>): react_jsx_runtime17.JSX.Element;
|
|
14
|
+
declare function AvatarFallback({
|
|
15
|
+
className,
|
|
16
|
+
...props
|
|
17
|
+
}: React$1.ComponentProps<typeof AvatarPrimitive.Fallback>): react_jsx_runtime17.JSX.Element;
|
|
18
|
+
//#endregion
|
|
19
|
+
export { Avatar, AvatarFallback, AvatarImage };
|
|
20
|
+
//# sourceMappingURL=avatar.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"avatar.d.ts","names":[],"sources":["../../ui/avatar.tsx"],"sourcesContent":[],"mappings":";;;;;iBAOS,MAAA;;;GAGN,OAAA,CAAM,sBAAsB,eAAA,CAAgB,QAAK,mBAAA,CAAA,GAAA,CAAA;iBAa3C,WAAA;;;GAGN,OAAA,CAAM,sBAAsB,eAAA,CAAgB,SAAM,mBAAA,CAAA,GAAA,CAAA;iBAU5C,cAAA;;;GAGN,OAAA,CAAM,sBAAsB,eAAA,CAAgB,YAAS,mBAAA,CAAA,GAAA,CAAA"}
|
|
@@ -0,0 +1,33 @@
|
|
|
1
|
+
'use client';
|
|
2
|
+
|
|
3
|
+
import { cn } from "./utils.js";
|
|
4
|
+
import "react";
|
|
5
|
+
import { jsx } from "react/jsx-runtime";
|
|
6
|
+
import * as AvatarPrimitive from "@radix-ui/react-avatar";
|
|
7
|
+
|
|
8
|
+
//#region ui/avatar.tsx
|
|
9
|
+
function Avatar({ className, ...props }) {
|
|
10
|
+
return /* @__PURE__ */ jsx(AvatarPrimitive.Root, {
|
|
11
|
+
"data-slot": "avatar",
|
|
12
|
+
className: cn("relative flex size-8 shrink-0 overflow-hidden rounded-full", className),
|
|
13
|
+
...props
|
|
14
|
+
});
|
|
15
|
+
}
|
|
16
|
+
function AvatarImage({ className, ...props }) {
|
|
17
|
+
return /* @__PURE__ */ jsx(AvatarPrimitive.Image, {
|
|
18
|
+
"data-slot": "avatar-image",
|
|
19
|
+
className: cn("aspect-square size-full", className),
|
|
20
|
+
...props
|
|
21
|
+
});
|
|
22
|
+
}
|
|
23
|
+
function AvatarFallback({ className, ...props }) {
|
|
24
|
+
return /* @__PURE__ */ jsx(AvatarPrimitive.Fallback, {
|
|
25
|
+
"data-slot": "avatar-fallback",
|
|
26
|
+
className: cn("bg-muted flex size-full items-center justify-center rounded-full", className),
|
|
27
|
+
...props
|
|
28
|
+
});
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
//#endregion
|
|
32
|
+
export { Avatar, AvatarFallback, AvatarImage };
|
|
33
|
+
//# sourceMappingURL=avatar.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"avatar.js","names":[],"sources":["../../ui/avatar.tsx"],"sourcesContent":["'use client';\n\nimport * as React from 'react';\nimport * as AvatarPrimitive from '@radix-ui/react-avatar';\n\nimport { cn } from './utils';\n\nfunction Avatar({\n className,\n ...props\n}: React.ComponentProps<typeof AvatarPrimitive.Root>) {\n return (\n <AvatarPrimitive.Root\n data-slot=\"avatar\"\n className={cn(\n 'relative flex size-8 shrink-0 overflow-hidden rounded-full',\n className\n )}\n {...props}\n />\n );\n}\n\nfunction AvatarImage({\n className,\n ...props\n}: React.ComponentProps<typeof AvatarPrimitive.Image>) {\n return (\n <AvatarPrimitive.Image\n data-slot=\"avatar-image\"\n className={cn('aspect-square size-full', className)}\n {...props}\n />\n );\n}\n\nfunction AvatarFallback({\n className,\n ...props\n}: React.ComponentProps<typeof AvatarPrimitive.Fallback>) {\n return (\n <AvatarPrimitive.Fallback\n data-slot=\"avatar-fallback\"\n className={cn(\n 'bg-muted flex size-full items-center justify-center rounded-full',\n className\n )}\n {...props}\n />\n );\n}\n\nexport { Avatar, AvatarImage, AvatarFallback };\n"],"mappings":";;;;;;;;AAOA,SAAS,OAAO,EACd,WACA,GAAG,SACiD;AACpD,QACE,oBAAC,gBAAgB;EACf,aAAU;EACV,WAAW,GACT,8DACA,UACD;EACD,GAAI;GACJ;;AAIN,SAAS,YAAY,EACnB,WACA,GAAG,SACkD;AACrD,QACE,oBAAC,gBAAgB;EACf,aAAU;EACV,WAAW,GAAG,2BAA2B,UAAU;EACnD,GAAI;GACJ;;AAIN,SAAS,eAAe,EACtB,WACA,GAAG,SACqD;AACxD,QACE,oBAAC,gBAAgB;EACf,aAAU;EACV,WAAW,GACT,oEACA,UACD;EACD,GAAI;GACJ"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import * as React$1 from "react";
|
|
2
|
+
import * as react_jsx_runtime21 from "react/jsx-runtime";
|
|
3
|
+
import { VariantProps } from "class-variance-authority";
|
|
4
|
+
import * as class_variance_authority_types0 from "class-variance-authority/types";
|
|
5
|
+
|
|
6
|
+
//#region ui/badge.d.ts
|
|
7
|
+
declare const badgeVariants: (props?: ({
|
|
8
|
+
variant?: "default" | "destructive" | "secondary" | "outline" | null | undefined;
|
|
9
|
+
} & class_variance_authority_types0.ClassProp) | undefined) => string;
|
|
10
|
+
declare function Badge({
|
|
11
|
+
className,
|
|
12
|
+
variant,
|
|
13
|
+
asChild,
|
|
14
|
+
...props
|
|
15
|
+
}: React$1.ComponentPropsWithoutRef<'span'> & VariantProps<typeof badgeVariants> & {
|
|
16
|
+
asChild?: boolean;
|
|
17
|
+
}): react_jsx_runtime21.JSX.Element;
|
|
18
|
+
//#endregion
|
|
19
|
+
export { Badge, badgeVariants };
|
|
20
|
+
//# sourceMappingURL=badge.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"badge.d.ts","names":[],"sources":["../../ui/badge.tsx"],"sourcesContent":[],"mappings":";;;;;;cAMM;;IAmBL,+BAAA,CAAA;iBAEQ,KAAA;;;;;GAKN,OAAA,CAAM,mCACP,oBAAoB;EA3BhB,OAAA,CAAA,EAAA,OAmBL;IAQ2D,mBAAA,CAAA,GAAA,CAAA,OAN9C"}
|
package/dist/ui/badge.js
ADDED
|
@@ -0,0 +1,27 @@
|
|
|
1
|
+
import "react";
|
|
2
|
+
import { cn } from "@contractspec/lib.ui-kit-core/utils";
|
|
3
|
+
import { jsx } from "react/jsx-runtime";
|
|
4
|
+
import { Slot } from "@radix-ui/react-slot";
|
|
5
|
+
import { cva } from "class-variance-authority";
|
|
6
|
+
|
|
7
|
+
//#region ui/badge.tsx
|
|
8
|
+
const badgeVariants = cva("inline-flex items-center justify-center rounded-md border px-2 py-0.5 text-xs font-medium w-fit whitespace-nowrap shrink-0 [&>svg]:size-3 gap-1 [&>svg]:pointer-events-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive transition-[color,box-shadow] overflow-hidden", {
|
|
9
|
+
variants: { variant: {
|
|
10
|
+
default: "border-transparent bg-primary text-primary-foreground [a&]:hover:bg-primary/90",
|
|
11
|
+
secondary: "border-transparent bg-secondary text-secondary-foreground [a&]:hover:bg-secondary/90",
|
|
12
|
+
destructive: "border-transparent bg-destructive text-white [a&]:hover:bg-destructive/90 focus-visible:ring-destructive/20 dark:focus-visible:ring-destructive/40 dark:bg-destructive/60",
|
|
13
|
+
outline: "text-foreground [a&]:hover:bg-accent [a&]:hover:text-accent-foreground"
|
|
14
|
+
} },
|
|
15
|
+
defaultVariants: { variant: "default" }
|
|
16
|
+
});
|
|
17
|
+
function Badge({ className, variant, asChild = false, ...props }) {
|
|
18
|
+
return /* @__PURE__ */ jsx(asChild ? Slot : "span", {
|
|
19
|
+
"data-slot": "badge",
|
|
20
|
+
className: cn(badgeVariants({ variant }), className),
|
|
21
|
+
...props
|
|
22
|
+
});
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
//#endregion
|
|
26
|
+
export { Badge, badgeVariants };
|
|
27
|
+
//# sourceMappingURL=badge.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"badge.js","names":[],"sources":["../../ui/badge.tsx"],"sourcesContent":["import * as React from 'react';\nimport { Slot } from '@radix-ui/react-slot';\nimport { cva, type VariantProps } from 'class-variance-authority';\n\nimport { cn } from '@contractspec/lib.ui-kit-core/utils';\n\nconst badgeVariants = cva(\n 'inline-flex items-center justify-center rounded-md border px-2 py-0.5 text-xs font-medium w-fit whitespace-nowrap shrink-0 [&>svg]:size-3 gap-1 [&>svg]:pointer-events-none focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px] aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive transition-[color,box-shadow] overflow-hidden',\n {\n variants: {\n variant: {\n default:\n 'border-transparent bg-primary text-primary-foreground [a&]:hover:bg-primary/90',\n secondary:\n 'border-transparent bg-secondary text-secondary-foreground [a&]:hover:bg-secondary/90',\n destructive:\n 'border-transparent bg-destructive text-white [a&]:hover:bg-destructive/90 focus-visible:ring-destructive/20 dark:focus-visible:ring-destructive/40 dark:bg-destructive/60',\n outline:\n 'text-foreground [a&]:hover:bg-accent [a&]:hover:text-accent-foreground',\n },\n },\n defaultVariants: {\n variant: 'default',\n },\n }\n);\n\nfunction Badge({\n className,\n variant,\n asChild = false,\n ...props\n}: React.ComponentPropsWithoutRef<'span'> &\n VariantProps<typeof badgeVariants> & { asChild?: boolean }) {\n const Comp = asChild ? Slot : 'span';\n\n return (\n <Comp\n data-slot=\"badge\"\n className={cn(badgeVariants({ variant }), className)}\n {...props}\n />\n );\n}\n\nexport { Badge, badgeVariants };\n"],"mappings":";;;;;;;AAMA,MAAM,gBAAgB,IACpB,kZACA;CACE,UAAU,EACR,SAAS;EACP,SACE;EACF,WACE;EACF,aACE;EACF,SACE;EACH,EACF;CACD,iBAAiB,EACf,SAAS,WACV;CACF,CACF;AAED,SAAS,MAAM,EACb,WACA,SACA,UAAU,OACV,GAAG,SAEyD;AAG5D,QACE,oBAHW,UAAU,OAAO;EAI1B,aAAU;EACV,WAAW,GAAG,cAAc,EAAE,SAAS,CAAC,EAAE,UAAU;EACpD,GAAI;GACJ"}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
import * as React$1 from "react";
|
|
2
|
+
import * as react_jsx_runtime227 from "react/jsx-runtime";
|
|
3
|
+
|
|
4
|
+
//#region ui/breadcrumb.d.ts
|
|
5
|
+
declare function Breadcrumb({
|
|
6
|
+
...props
|
|
7
|
+
}: React$1.ComponentPropsWithoutRef<'nav'>): react_jsx_runtime227.JSX.Element;
|
|
8
|
+
declare function BreadcrumbList({
|
|
9
|
+
className,
|
|
10
|
+
...props
|
|
11
|
+
}: React$1.ComponentPropsWithoutRef<'ol'>): react_jsx_runtime227.JSX.Element;
|
|
12
|
+
declare function BreadcrumbItem({
|
|
13
|
+
className,
|
|
14
|
+
...props
|
|
15
|
+
}: React$1.ComponentPropsWithoutRef<'li'>): react_jsx_runtime227.JSX.Element;
|
|
16
|
+
declare function BreadcrumbLink({
|
|
17
|
+
asChild,
|
|
18
|
+
className,
|
|
19
|
+
...props
|
|
20
|
+
}: React$1.ComponentPropsWithoutRef<'a'> & {
|
|
21
|
+
asChild?: boolean;
|
|
22
|
+
}): react_jsx_runtime227.JSX.Element;
|
|
23
|
+
declare function BreadcrumbPage({
|
|
24
|
+
className,
|
|
25
|
+
...props
|
|
26
|
+
}: React$1.ComponentPropsWithoutRef<'span'>): react_jsx_runtime227.JSX.Element;
|
|
27
|
+
declare function BreadcrumbSeparator({
|
|
28
|
+
children,
|
|
29
|
+
className,
|
|
30
|
+
...props
|
|
31
|
+
}: React$1.ComponentPropsWithoutRef<'li'>): react_jsx_runtime227.JSX.Element;
|
|
32
|
+
declare function BreadcrumbEllipsis({
|
|
33
|
+
className,
|
|
34
|
+
...props
|
|
35
|
+
}: React$1.ComponentPropsWithoutRef<'span'>): react_jsx_runtime227.JSX.Element;
|
|
36
|
+
//#endregion
|
|
37
|
+
export { Breadcrumb, BreadcrumbEllipsis, BreadcrumbItem, BreadcrumbLink, BreadcrumbList, BreadcrumbPage, BreadcrumbSeparator };
|
|
38
|
+
//# sourceMappingURL=breadcrumb.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"breadcrumb.d.ts","names":[],"sources":["../../ui/breadcrumb.tsx"],"sourcesContent":[],"mappings":";;;;iBAMS,UAAA;;GAAyB,OAAA,CAAM,kCAA+B,oBAAA,CAAA,GAAA,CAAA;iBAI9D,cAAA;;;GAGN,OAAA,CAAM,iCAA8B,oBAAA,CAAA,GAAA,CAAA;iBAa9B,cAAA;;;GAGN,OAAA,CAAM,iCAA8B,oBAAA,CAAA,GAAA,CAAA;AA7BR,iBAuCtB,cAAA,CAjCyB;EAAA,OAAM;EAAA,SAAA;EAAA,GAAA;CAA+B,EAqCpE,OAAA,CAAM,wBArC8D,CAAA,GAAA,CAAA,GAAA;EAI9D,OAAA,CAAA,EAAA,OAAc;CACrB,CAAA,EAkCD,oBAAA,CAAA,GAAA,CAAA,OAlCC;iBA8CO,cAAA,CA5CA;EAAA,SAAA;EAAA,GAAA;AAAA,CAAA,EA+CN,OAAA,CAAM,wBA/CA,CAAA,MAAA,CAAA,CAAA,EA+CgC,oBAAA,CAAA,GAAA,CAAA,OA/ChC;iBA4DA,mBAAA,CA5D8B;EAAA,QAAA;EAAA,SAAA;EAAA,GAAA;AAAA,CAAA,EAgEpC,OAAA,CAAM,wBAhE8B,CAAA,IAAA,CAAA,CAAA,EAgEA,oBAAA,CAAA,GAAA,CAAA,OAhEA;iBA8E9B,kBAAA,CA9E8B;EAAA,SAAA;EAAA,GAAA;AAAA,CAAA,EAiFpC,OAAA,CAAM,wBAjF8B,CAAA,MAAA,CAAA,CAAA,EAiFE,oBAAA,CAAA,GAAA,CAAA,OAjFF"}
|
|
@@ -0,0 +1,72 @@
|
|
|
1
|
+
import "react";
|
|
2
|
+
import { ChevronRight, MoreHorizontal } from "lucide-react";
|
|
3
|
+
import { cn } from "@contractspec/lib.ui-kit-core/utils";
|
|
4
|
+
import { jsx, jsxs } from "react/jsx-runtime";
|
|
5
|
+
import { Slot } from "@radix-ui/react-slot";
|
|
6
|
+
|
|
7
|
+
//#region ui/breadcrumb.tsx
|
|
8
|
+
function Breadcrumb({ ...props }) {
|
|
9
|
+
return /* @__PURE__ */ jsx("nav", {
|
|
10
|
+
"aria-label": "breadcrumb",
|
|
11
|
+
"data-slot": "breadcrumb",
|
|
12
|
+
...props
|
|
13
|
+
});
|
|
14
|
+
}
|
|
15
|
+
function BreadcrumbList({ className, ...props }) {
|
|
16
|
+
return /* @__PURE__ */ jsx("ol", {
|
|
17
|
+
"data-slot": "breadcrumb-list",
|
|
18
|
+
className: cn("text-muted-foreground flex flex-wrap items-center gap-1.5 text-sm break-words sm:gap-2.5", className),
|
|
19
|
+
...props
|
|
20
|
+
});
|
|
21
|
+
}
|
|
22
|
+
function BreadcrumbItem({ className, ...props }) {
|
|
23
|
+
return /* @__PURE__ */ jsx("li", {
|
|
24
|
+
"data-slot": "breadcrumb-item",
|
|
25
|
+
className: cn("inline-flex items-center gap-1.5", className),
|
|
26
|
+
...props
|
|
27
|
+
});
|
|
28
|
+
}
|
|
29
|
+
function BreadcrumbLink({ asChild, className, ...props }) {
|
|
30
|
+
return /* @__PURE__ */ jsx(asChild ? Slot : "a", {
|
|
31
|
+
"data-slot": "breadcrumb-link",
|
|
32
|
+
className: cn("hover:text-foreground transition-colors", className),
|
|
33
|
+
...props
|
|
34
|
+
});
|
|
35
|
+
}
|
|
36
|
+
function BreadcrumbPage({ className, ...props }) {
|
|
37
|
+
return /* @__PURE__ */ jsx("span", {
|
|
38
|
+
"data-slot": "breadcrumb-page",
|
|
39
|
+
role: "link",
|
|
40
|
+
"aria-disabled": "true",
|
|
41
|
+
"aria-current": "page",
|
|
42
|
+
className: cn("text-foreground font-normal", className),
|
|
43
|
+
...props
|
|
44
|
+
});
|
|
45
|
+
}
|
|
46
|
+
function BreadcrumbSeparator({ children, className, ...props }) {
|
|
47
|
+
return /* @__PURE__ */ jsx("li", {
|
|
48
|
+
"data-slot": "breadcrumb-separator",
|
|
49
|
+
role: "presentation",
|
|
50
|
+
"aria-hidden": "true",
|
|
51
|
+
className: cn("[&>svg]:size-3.5", className),
|
|
52
|
+
...props,
|
|
53
|
+
children: children ?? /* @__PURE__ */ jsx(ChevronRight, {})
|
|
54
|
+
});
|
|
55
|
+
}
|
|
56
|
+
function BreadcrumbEllipsis({ className, ...props }) {
|
|
57
|
+
return /* @__PURE__ */ jsxs("span", {
|
|
58
|
+
"data-slot": "breadcrumb-ellipsis",
|
|
59
|
+
role: "presentation",
|
|
60
|
+
"aria-hidden": "true",
|
|
61
|
+
className: cn("flex size-9 items-center justify-center", className),
|
|
62
|
+
...props,
|
|
63
|
+
children: [/* @__PURE__ */ jsx(MoreHorizontal, { className: "size-4" }), /* @__PURE__ */ jsx("span", {
|
|
64
|
+
className: "sr-only",
|
|
65
|
+
children: "More"
|
|
66
|
+
})]
|
|
67
|
+
});
|
|
68
|
+
}
|
|
69
|
+
|
|
70
|
+
//#endregion
|
|
71
|
+
export { Breadcrumb, BreadcrumbEllipsis, BreadcrumbItem, BreadcrumbLink, BreadcrumbList, BreadcrumbPage, BreadcrumbSeparator };
|
|
72
|
+
//# sourceMappingURL=breadcrumb.js.map
|