@lssm-tech/lib.ui-kit-web 3.13.4
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 +233 -0
- package/dist/browser/index.js +1 -0
- package/dist/browser/ui/accordion.js +1 -0
- package/dist/browser/ui/alert-dialog.js +1 -0
- package/dist/browser/ui/alert.js +1 -0
- package/dist/browser/ui/aspect-ratio.js +1 -0
- package/dist/browser/ui/atoms/FilterSelect/FilterSelect.js +1 -0
- package/dist/browser/ui/atoms/FilterSelect/index.js +1 -0
- package/dist/browser/ui/atoms/FilterSelect/types.js +0 -0
- package/dist/browser/ui/atoms/LoadingSpinner/LoadingSpinner.js +1 -0
- package/dist/browser/ui/atoms/LoadingSpinner/index.js +1 -0
- package/dist/browser/ui/atoms/Pagination/Pagination.js +1 -0
- package/dist/browser/ui/atoms/Pagination/index.js +1 -0
- package/dist/browser/ui/atoms/Pagination/types.js +0 -0
- package/dist/browser/ui/atoms/SearchInput/SearchInput.js +1 -0
- package/dist/browser/ui/atoms/SearchInput/index.js +1 -0
- package/dist/browser/ui/atoms/SearchInput/types.js +0 -0
- package/dist/browser/ui/avatar.js +1 -0
- package/dist/browser/ui/badge.js +1 -0
- package/dist/browser/ui/breadcrumb.js +1 -0
- package/dist/browser/ui/button-group.js +1 -0
- package/dist/browser/ui/button.js +1 -0
- package/dist/browser/ui/calendar.js +1 -0
- package/dist/browser/ui/card.js +1 -0
- package/dist/browser/ui/carousel.js +1 -0
- package/dist/browser/ui/chart.js +1 -0
- package/dist/browser/ui/checkbox.js +1 -0
- package/dist/browser/ui/collapsible.js +1 -0
- package/dist/browser/ui/combobox.js +1 -0
- package/dist/browser/ui/command.js +1 -0
- package/dist/browser/ui/confirm-dialog.js +1 -0
- package/dist/browser/ui/context-menu.js +1 -0
- package/dist/browser/ui/contracts.typecheck.js +0 -0
- package/dist/browser/ui/cta.js +1 -0
- package/dist/browser/ui/data-table.js +1 -0
- package/dist/browser/ui/data-table.parts.js +1 -0
- package/dist/browser/ui/date-picker.js +1 -0
- package/dist/browser/ui/date-range-picker.js +1 -0
- package/dist/browser/ui/datetime-picker.js +1 -0
- package/dist/browser/ui/dialog.js +1 -0
- package/dist/browser/ui/direction.js +1 -0
- package/dist/browser/ui/drawer.js +1 -0
- package/dist/browser/ui/dropdown-menu.js +1 -0
- package/dist/browser/ui/empty-state.js +1 -0
- package/dist/browser/ui/empty.js +1 -0
- package/dist/browser/ui/field.js +1 -0
- package/dist/browser/ui/focus-on-route-change.js +1 -0
- package/dist/browser/ui/form.js +1 -0
- package/dist/browser/ui/hover-card.js +1 -0
- package/dist/browser/ui/input-group.js +1 -0
- package/dist/browser/ui/input-otp.js +1 -0
- package/dist/browser/ui/input-password.js +1 -0
- package/dist/browser/ui/input.js +1 -0
- package/dist/browser/ui/item.js +1 -0
- package/dist/browser/ui/kbd.js +1 -0
- package/dist/browser/ui/label.js +1 -0
- package/dist/browser/ui/link.js +1 -0
- package/dist/browser/ui/list.js +1 -0
- package/dist/browser/ui/live-region.js +1 -0
- package/dist/browser/ui/loading-button.js +1 -0
- package/dist/browser/ui/map/MapBase.js +1 -0
- package/dist/browser/ui/map/MapGeoJsonOverlay.js +1 -0
- package/dist/browser/ui/map/MapHeatmapH3.js +1 -0
- package/dist/browser/ui/map/MapMarkers.js +1 -0
- package/dist/browser/ui/map/index.js +1 -0
- package/dist/browser/ui/marketing/FeatureGrid.js +1 -0
- package/dist/browser/ui/marketing/Hero.js +1 -0
- package/dist/browser/ui/marketing/PricingTable.js +1 -0
- package/dist/browser/ui/marketing/index.js +1 -0
- package/dist/browser/ui/menubar.js +1 -0
- package/dist/browser/ui/molecules/Autocomplete/index.js +1 -0
- package/dist/browser/ui/molecules/SearchAndFilter/SearchAndFilter.js +1 -0
- package/dist/browser/ui/molecules/SearchAndFilter/index.js +1 -0
- package/dist/browser/ui/molecules/SearchAndFilter/types.js +0 -0
- package/dist/browser/ui/molecules/SkeletonList.js +1 -0
- package/dist/browser/ui/native-select.js +1 -0
- package/dist/browser/ui/nav-layout.js +1 -0
- package/dist/browser/ui/navigation-menu.js +1 -0
- package/dist/browser/ui/organisms/ErrorBoundary/ErrorBoundary.js +1 -0
- package/dist/browser/ui/organisms/ErrorBoundary/index.js +1 -0
- package/dist/browser/ui/organisms/ListPage/ListPage.js +1 -0
- package/dist/browser/ui/organisms/ListPage/index.js +1 -0
- package/dist/browser/ui/organisms/ListPage/types.js +0 -0
- package/dist/browser/ui/page-header.js +1 -0
- package/dist/browser/ui/pagination.js +1 -0
- package/dist/browser/ui/popover.js +1 -0
- package/dist/browser/ui/progress.js +1 -0
- package/dist/browser/ui/radio-group.js +1 -0
- package/dist/browser/ui/resizable.js +1 -0
- package/dist/browser/ui/route-announcer.js +1 -0
- package/dist/browser/ui/scroll-area.js +1 -0
- package/dist/browser/ui/section.js +1 -0
- package/dist/browser/ui/select.js +1 -0
- package/dist/browser/ui/separator.js +1 -0
- package/dist/browser/ui/sheet.js +1 -0
- package/dist/browser/ui/sidebar.js +1 -0
- package/dist/browser/ui/skeleton.js +1 -0
- package/dist/browser/ui/skip-link.js +1 -0
- package/dist/browser/ui/slider.js +1 -0
- package/dist/browser/ui/sonner.js +1 -0
- package/dist/browser/ui/spinner.js +1 -0
- package/dist/browser/ui/stack.js +1 -0
- package/dist/browser/ui/stat-card-group.js +1 -0
- package/dist/browser/ui/stepper.js +1 -0
- package/dist/browser/ui/switch.js +1 -0
- package/dist/browser/ui/table.js +1 -0
- package/dist/browser/ui/tabs.js +1 -0
- package/dist/browser/ui/text.js +1 -0
- package/dist/browser/ui/textarea.js +1 -0
- package/dist/browser/ui/time-picker.js +1 -0
- package/dist/browser/ui/toast.js +1 -0
- package/dist/browser/ui/toaster.js +1 -0
- package/dist/browser/ui/toggle-group.js +1 -0
- package/dist/browser/ui/toggle.js +1 -0
- package/dist/browser/ui/tooltip.js +1 -0
- package/dist/browser/ui/typography.js +1 -0
- package/dist/browser/ui/use-media-query.js +1 -0
- package/dist/browser/ui/use-mobile.js +1 -0
- package/dist/browser/ui/use-reduced-motion.js +1 -0
- package/dist/browser/ui/use-toast.js +1 -0
- package/dist/browser/ui/useListState.js +1 -0
- package/dist/browser/ui/usecases/UseCaseCard.js +1 -0
- package/dist/browser/ui/usecases/UserStoryCard.js +1 -0
- package/dist/browser/ui/usecases/index.js +1 -0
- package/dist/browser/ui/utils.js +1 -0
- package/dist/browser/ui/visualization/Visualization.js +1 -0
- package/dist/browser/ui/visualization/Visualization.support.js +1 -0
- package/dist/browser/ui/visualization/index.js +1 -0
- package/dist/browser/ui/visually-hidden.js +1 -0
- package/dist/index.d.ts +1 -0
- package/dist/index.js +2 -0
- package/dist/ui/accordion.d.ts +7 -0
- package/dist/ui/accordion.js +2 -0
- package/dist/ui/alert-dialog.d.ts +14 -0
- package/dist/ui/alert-dialog.js +2 -0
- package/dist/ui/alert.d.ts +9 -0
- package/dist/ui/alert.js +2 -0
- package/dist/ui/aspect-ratio.d.ts +3 -0
- package/dist/ui/aspect-ratio.js +2 -0
- package/dist/ui/atoms/FilterSelect/FilterSelect.d.ts +3 -0
- package/dist/ui/atoms/FilterSelect/FilterSelect.js +2 -0
- package/dist/ui/atoms/FilterSelect/index.d.ts +2 -0
- package/dist/ui/atoms/FilterSelect/index.js +2 -0
- package/dist/ui/atoms/FilterSelect/types.d.ts +5 -0
- package/dist/ui/atoms/FilterSelect/types.js +1 -0
- package/dist/ui/atoms/LoadingSpinner/LoadingSpinner.d.ts +19 -0
- package/dist/ui/atoms/LoadingSpinner/LoadingSpinner.js +2 -0
- package/dist/ui/atoms/LoadingSpinner/index.d.ts +1 -0
- package/dist/ui/atoms/LoadingSpinner/index.js +2 -0
- package/dist/ui/atoms/Pagination/Pagination.d.ts +3 -0
- package/dist/ui/atoms/Pagination/Pagination.js +2 -0
- package/dist/ui/atoms/Pagination/index.d.ts +2 -0
- package/dist/ui/atoms/Pagination/index.js +2 -0
- package/dist/ui/atoms/Pagination/types.d.ts +3 -0
- package/dist/ui/atoms/Pagination/types.js +1 -0
- package/dist/ui/atoms/SearchInput/SearchInput.d.ts +3 -0
- package/dist/ui/atoms/SearchInput/SearchInput.js +2 -0
- package/dist/ui/atoms/SearchInput/index.d.ts +2 -0
- package/dist/ui/atoms/SearchInput/index.js +2 -0
- package/dist/ui/atoms/SearchInput/types.d.ts +3 -0
- package/dist/ui/atoms/SearchInput/types.js +1 -0
- package/dist/ui/avatar.d.ts +6 -0
- package/dist/ui/avatar.js +2 -0
- package/dist/ui/badge.d.ts +9 -0
- package/dist/ui/badge.js +2 -0
- package/dist/ui/breadcrumb.d.ts +11 -0
- package/dist/ui/breadcrumb.js +2 -0
- package/dist/ui/button-group.d.ts +5 -0
- package/dist/ui/button-group.js +2 -0
- package/dist/ui/button.d.ts +17 -0
- package/dist/ui/button.js +2 -0
- package/dist/ui/calendar.d.ts +8 -0
- package/dist/ui/calendar.js +2 -0
- package/dist/ui/card.d.ts +9 -0
- package/dist/ui/card.js +2 -0
- package/dist/ui/carousel.d.ts +19 -0
- package/dist/ui/carousel.js +2 -0
- package/dist/ui/chart.d.ts +45 -0
- package/dist/ui/chart.js +2 -0
- package/dist/ui/checkbox.d.ts +4 -0
- package/dist/ui/checkbox.js +2 -0
- package/dist/ui/collapsible.d.ts +5 -0
- package/dist/ui/collapsible.js +2 -0
- package/dist/ui/combobox.d.ts +32 -0
- package/dist/ui/combobox.js +2 -0
- package/dist/ui/combobox.test.d.ts +1 -0
- package/dist/ui/command.d.ts +18 -0
- package/dist/ui/command.js +2 -0
- package/dist/ui/confirm-dialog.d.ts +14 -0
- package/dist/ui/confirm-dialog.js +2 -0
- package/dist/ui/context-menu.d.ts +31 -0
- package/dist/ui/context-menu.js +2 -0
- package/dist/ui/contracts.typecheck.d.ts +1 -0
- package/dist/ui/contracts.typecheck.js +1 -0
- package/dist/ui/cta.d.ts +12 -0
- package/dist/ui/cta.js +2 -0
- package/dist/ui/data-table.d.ts +8 -0
- package/dist/ui/data-table.js +2 -0
- package/dist/ui/data-table.parts.d.ts +19 -0
- package/dist/ui/data-table.parts.js +2 -0
- package/dist/ui/data-table.test.d.ts +1 -0
- package/dist/ui/date-picker.d.ts +5 -0
- package/dist/ui/date-picker.js +2 -0
- package/dist/ui/date-range-picker.d.ts +6 -0
- package/dist/ui/date-range-picker.js +2 -0
- package/dist/ui/datetime-picker.d.ts +6 -0
- package/dist/ui/datetime-picker.js +2 -0
- package/dist/ui/dialog.d.ts +15 -0
- package/dist/ui/dialog.js +2 -0
- package/dist/ui/direction.d.ts +9 -0
- package/dist/ui/direction.js +2 -0
- package/dist/ui/drawer.d.ts +13 -0
- package/dist/ui/drawer.js +2 -0
- package/dist/ui/dropdown-menu.d.ts +25 -0
- package/dist/ui/dropdown-menu.js +2 -0
- package/dist/ui/empty-state.d.ts +9 -0
- package/dist/ui/empty-state.js +2 -0
- package/dist/ui/empty.d.ts +12 -0
- package/dist/ui/empty.js +2 -0
- package/dist/ui/field.d.ts +20 -0
- package/dist/ui/field.js +2 -0
- package/dist/ui/focus-on-route-change.d.ts +3 -0
- package/dist/ui/focus-on-route-change.js +2 -0
- package/dist/ui/form.d.ts +26 -0
- package/dist/ui/form.js +2 -0
- package/dist/ui/hover-card.d.ts +6 -0
- package/dist/ui/hover-card.js +2 -0
- package/dist/ui/input-group.d.ts +18 -0
- package/dist/ui/input-group.js +2 -0
- package/dist/ui/input-otp.d.ts +16 -0
- package/dist/ui/input-otp.js +2 -0
- package/dist/ui/input-password.d.ts +11 -0
- package/dist/ui/input-password.js +2 -0
- package/dist/ui/input-password.test.d.ts +1 -0
- package/dist/ui/input.d.ts +7 -0
- package/dist/ui/input.js +2 -0
- package/dist/ui/item.d.ts +23 -0
- package/dist/ui/item.js +2 -0
- package/dist/ui/kbd.d.ts +3 -0
- package/dist/ui/kbd.js +2 -0
- package/dist/ui/label.d.ts +4 -0
- package/dist/ui/label.js +2 -0
- package/dist/ui/link.d.ts +6 -0
- package/dist/ui/link.js +2 -0
- package/dist/ui/list.d.ts +20 -0
- package/dist/ui/list.js +2 -0
- package/dist/ui/live-region.d.ts +10 -0
- package/dist/ui/live-region.js +2 -0
- package/dist/ui/loading-button.d.ts +9 -0
- package/dist/ui/loading-button.js +2 -0
- package/dist/ui/map/MapBase.d.ts +22 -0
- package/dist/ui/map/MapBase.js +2 -0
- package/dist/ui/map/MapGeoJsonOverlay.d.ts +10 -0
- package/dist/ui/map/MapGeoJsonOverlay.js +2 -0
- package/dist/ui/map/MapHeatmapH3.d.ts +12 -0
- package/dist/ui/map/MapHeatmapH3.js +2 -0
- package/dist/ui/map/MapMarkers.d.ts +12 -0
- package/dist/ui/map/MapMarkers.js +2 -0
- package/dist/ui/map/index.d.ts +4 -0
- package/dist/ui/map/index.js +2 -0
- package/dist/ui/marketing/FeatureGrid.d.ts +4 -0
- package/dist/ui/marketing/FeatureGrid.js +2 -0
- package/dist/ui/marketing/Hero.d.ts +16 -0
- package/dist/ui/marketing/Hero.js +2 -0
- package/dist/ui/marketing/PricingTable.d.ts +4 -0
- package/dist/ui/marketing/PricingTable.js +2 -0
- package/dist/ui/marketing/index.d.ts +3 -0
- package/dist/ui/marketing/index.js +2 -0
- package/dist/ui/menubar.d.ts +26 -0
- package/dist/ui/menubar.js +2 -0
- package/dist/ui/molecules/Autocomplete/index.d.ts +1 -0
- package/dist/ui/molecules/Autocomplete/index.js +2 -0
- package/dist/ui/molecules/SearchAndFilter/SearchAndFilter.d.ts +3 -0
- package/dist/ui/molecules/SearchAndFilter/SearchAndFilter.js +2 -0
- package/dist/ui/molecules/SearchAndFilter/index.d.ts +2 -0
- package/dist/ui/molecules/SearchAndFilter/index.js +2 -0
- package/dist/ui/molecules/SearchAndFilter/types.d.ts +3 -0
- package/dist/ui/molecules/SearchAndFilter/types.js +1 -0
- package/dist/ui/molecules/SkeletonList.d.ts +7 -0
- package/dist/ui/molecules/SkeletonList.js +2 -0
- package/dist/ui/native-select.d.ts +4 -0
- package/dist/ui/native-select.js +2 -0
- package/dist/ui/nav-layout.d.ts +47 -0
- package/dist/ui/nav-layout.js +2 -0
- package/dist/ui/navigation-menu.d.ts +14 -0
- package/dist/ui/navigation-menu.js +2 -0
- package/dist/ui/organisms/ErrorBoundary/ErrorBoundary.d.ts +25 -0
- package/dist/ui/organisms/ErrorBoundary/ErrorBoundary.js +2 -0
- package/dist/ui/organisms/ErrorBoundary/index.d.ts +2 -0
- package/dist/ui/organisms/ErrorBoundary/index.js +2 -0
- package/dist/ui/organisms/ListPage/ListPage.d.ts +2 -0
- package/dist/ui/organisms/ListPage/ListPage.js +2 -0
- package/dist/ui/organisms/ListPage/index.d.ts +2 -0
- package/dist/ui/organisms/ListPage/index.js +2 -0
- package/dist/ui/organisms/ListPage/types.d.ts +37 -0
- package/dist/ui/organisms/ListPage/types.js +1 -0
- package/dist/ui/page-header.d.ts +9 -0
- package/dist/ui/page-header.js +2 -0
- package/dist/ui/pagination.d.ts +17 -0
- package/dist/ui/pagination.js +2 -0
- package/dist/ui/popover.d.ts +7 -0
- package/dist/ui/popover.js +2 -0
- package/dist/ui/progress.d.ts +4 -0
- package/dist/ui/progress.js +2 -0
- package/dist/ui/radio-group.d.ts +5 -0
- package/dist/ui/radio-group.js +2 -0
- package/dist/ui/resizable.d.ts +8 -0
- package/dist/ui/resizable.js +2 -0
- package/dist/ui/route-announcer.d.ts +3 -0
- package/dist/ui/route-announcer.js +2 -0
- package/dist/ui/scroll-area.d.ts +5 -0
- package/dist/ui/scroll-area.js +2 -0
- package/dist/ui/section.d.ts +15 -0
- package/dist/ui/section.js +2 -0
- package/dist/ui/select.d.ts +15 -0
- package/dist/ui/select.js +2 -0
- package/dist/ui/select.test.d.ts +1 -0
- package/dist/ui/separator.d.ts +4 -0
- package/dist/ui/separator.js +2 -0
- package/dist/ui/sheet.d.ts +13 -0
- package/dist/ui/sheet.js +2 -0
- package/dist/ui/sidebar.d.ts +69 -0
- package/dist/ui/sidebar.js +2 -0
- package/dist/ui/skeleton.d.ts +3 -0
- package/dist/ui/skeleton.js +2 -0
- package/dist/ui/skip-link.d.ts +7 -0
- package/dist/ui/skip-link.js +2 -0
- package/dist/ui/slider.d.ts +4 -0
- package/dist/ui/slider.js +2 -0
- package/dist/ui/sonner.d.ts +3 -0
- package/dist/ui/sonner.js +2 -0
- package/dist/ui/spinner.d.ts +5 -0
- package/dist/ui/spinner.js +2 -0
- package/dist/ui/stack.d.ts +35 -0
- package/dist/ui/stack.js +2 -0
- package/dist/ui/stat-card-group.d.ts +10 -0
- package/dist/ui/stat-card-group.js +2 -0
- package/dist/ui/stepper.d.ts +10 -0
- package/dist/ui/stepper.js +2 -0
- package/dist/ui/switch.d.ts +6 -0
- package/dist/ui/switch.js +2 -0
- package/dist/ui/table.d.ts +10 -0
- package/dist/ui/table.js +2 -0
- package/dist/ui/tabs.d.ts +7 -0
- package/dist/ui/tabs.js +2 -0
- package/dist/ui/text.d.ts +6 -0
- package/dist/ui/text.js +2 -0
- package/dist/ui/textarea.d.ts +5 -0
- package/dist/ui/textarea.js +2 -0
- package/dist/ui/time-picker.d.ts +4 -0
- package/dist/ui/time-picker.js +2 -0
- package/dist/ui/toast.d.ts +28 -0
- package/dist/ui/toast.js +2 -0
- package/dist/ui/toaster.d.ts +1 -0
- package/dist/ui/toaster.js +2 -0
- package/dist/ui/toggle-group.d.ts +7 -0
- package/dist/ui/toggle-group.js +2 -0
- package/dist/ui/toggle.d.ts +9 -0
- package/dist/ui/toggle.js +2 -0
- package/dist/ui/tooltip.d.ts +7 -0
- package/dist/ui/tooltip.js +2 -0
- package/dist/ui/typography.d.ts +16 -0
- package/dist/ui/typography.js +2 -0
- package/dist/ui/use-media-query.d.ts +1 -0
- package/dist/ui/use-media-query.js +2 -0
- package/dist/ui/use-mobile.d.ts +1 -0
- package/dist/ui/use-mobile.js +2 -0
- package/dist/ui/use-reduced-motion.d.ts +1 -0
- package/dist/ui/use-reduced-motion.js +2 -0
- package/dist/ui/use-toast.d.ts +44 -0
- package/dist/ui/use-toast.js +2 -0
- package/dist/ui/useListState.d.ts +6 -0
- package/dist/ui/useListState.js +2 -0
- package/dist/ui/usecases/UseCaseCard.d.ts +7 -0
- package/dist/ui/usecases/UseCaseCard.js +2 -0
- package/dist/ui/usecases/UserStoryCard.d.ts +5 -0
- package/dist/ui/usecases/UserStoryCard.js +2 -0
- package/dist/ui/usecases/index.d.ts +2 -0
- package/dist/ui/usecases/index.js +2 -0
- package/dist/ui/utils.d.ts +2 -0
- package/dist/ui/utils.js +2 -0
- package/dist/ui/visualization/Visualization.d.ts +7 -0
- package/dist/ui/visualization/Visualization.js +2 -0
- package/dist/ui/visualization/Visualization.support.d.ts +15 -0
- package/dist/ui/visualization/Visualization.support.js +2 -0
- package/dist/ui/visualization/index.d.ts +1 -0
- package/dist/ui/visualization/index.js +2 -0
- package/dist/ui/visually-hidden.d.ts +8 -0
- package/dist/ui/visually-hidden.js +2 -0
- package/package.json +1691 -0
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
// @bun
|
|
2
|
+
var U=import.meta.require;import{cn as E}from"@contractspec/lib.ui-kit-core/utils";import*as q from"@radix-ui/react-dropdown-menu";import{CheckIcon as J,ChevronRightIcon as K,CircleIcon as Q}from"lucide-react";import{jsx as z,jsxs as H}from"react/jsx-runtime";function Y({...y}){return z(q.Root,{"data-slot":"dropdown-menu",...y})}function Z({...y}){return z(q.Portal,{"data-slot":"dropdown-menu-portal",...y})}function _({...y}){return z(q.Trigger,{"data-slot":"dropdown-menu-trigger",...y})}function $({className:y,sideOffset:A=4,...B}){return z(q.Portal,{children:z(q.Content,{"data-slot":"dropdown-menu-content",sideOffset:A,className:E("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 max-h-(--radix-dropdown-menu-content-available-height) min-w-32 origin-(--radix-dropdown-menu-content-transform-origin) overflow-y-auto overflow-x-hidden rounded-md border bg-popover p-1 text-popover-foreground shadow-md data-[state=closed]:animate-out data-[state=open]:animate-in",y),...B})})}function L({...y}){return z(q.Group,{"data-slot":"dropdown-menu-group",...y})}function P({className:y,inset:A,variant:B="default",...F}){return z(q.Item,{"data-slot":"dropdown-menu-item","data-inset":A,"data-variant":B,className:E("relative flex cursor-default select-none items-center gap-2 rounded-xs px-2 py-1.5 text-sm outline-hidden focus:bg-accent focus:text-accent-foreground data-disabled:pointer-events-none data-inset:pl-8 data-[variant=destructive]:text-destructive data-disabled:opacity-50 data-[variant=destructive]:focus:bg-destructive/10 data-[variant=destructive]:focus:text-destructive dark:data-[variant=destructive]:focus:bg-destructive/20 [&_svg:not([class*='size-'])]:size-4 [&_svg:not([class*='text-'])]:text-muted-foreground [&_svg]:pointer-events-none [&_svg]:shrink-0 data-[variant=destructive]:*:[svg]:text-destructive!",y),...F})}function G({className:y,children:A,checked:B,...F}){return H(q.CheckboxItem,{"data-slot":"dropdown-menu-checkbox-item",className:E("relative flex cursor-default select-none items-center gap-2 rounded-xs py-1.5 pr-2 pl-8 text-sm outline-hidden focus:bg-accent focus:text-accent-foreground data-disabled:pointer-events-none data-disabled:opacity-50 [&_svg:not([class*='size-'])]:size-4 [&_svg]:pointer-events-none [&_svg]:shrink-0",y),checked:B,...F,children:[z("span",{className:"pointer-events-none absolute left-2 flex size-3.5 items-center justify-center",children:z(q.ItemIndicator,{children:z(J,{className:"size-4"})})}),A]})}function O({...y}){return z(q.RadioGroup,{"data-slot":"dropdown-menu-radio-group",...y})}function T({className:y,children:A,...B}){return H(q.RadioItem,{"data-slot":"dropdown-menu-radio-item",className:E("relative flex cursor-default select-none items-center gap-2 rounded-xs py-1.5 pr-2 pl-8 text-sm outline-hidden focus:bg-accent focus:text-accent-foreground data-disabled:pointer-events-none data-disabled:opacity-50 [&_svg:not([class*='size-'])]:size-4 [&_svg]:pointer-events-none [&_svg]:shrink-0",y),...B,children:[z("span",{className:"pointer-events-none absolute left-2 flex size-3.5 items-center justify-center",children:z(q.ItemIndicator,{children:z(Q,{className:"size-2 fill-current"})})}),A]})}function v({className:y,inset:A,...B}){return z(q.Label,{"data-slot":"dropdown-menu-label","data-inset":A,className:E("px-2 py-1.5 font-medium text-sm data-inset:pl-8",y),...B})}function R({className:y,...A}){return z(q.Separator,{"data-slot":"dropdown-menu-separator",className:E("-mx-1 my-1 h-px bg-border",y),...A})}function f({className:y,...A}){return z("span",{"data-slot":"dropdown-menu-shortcut",className:E("ml-auto text-muted-foreground text-xs tracking-widest",y),...A})}function g({...y}){return z(q.Sub,{"data-slot":"dropdown-menu-sub",...y})}function k({className:y,inset:A,children:B,...F}){return H(q.SubTrigger,{"data-slot":"dropdown-menu-sub-trigger","data-inset":A,className:E("flex cursor-default select-none items-center rounded-xs px-2 py-1.5 text-sm outline-hidden focus:bg-accent focus:text-accent-foreground data-[state=open]:bg-accent data-inset:pl-8 data-[state=open]:text-accent-foreground",y),...F,children:[B,z(K,{className:"ml-auto size-4"})]})}function S({className:y,...A}){return z(q.SubContent,{"data-slot":"dropdown-menu-sub-content",className:E("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 origin-(--radix-dropdown-menu-content-transform-origin) overflow-hidden rounded-md border bg-popover p-1 text-popover-foreground shadow-lg data-[state=closed]:animate-out data-[state=open]:animate-in",y),...A})}export{_ as DropdownMenuTrigger,k as DropdownMenuSubTrigger,S as DropdownMenuSubContent,g as DropdownMenuSub,f as DropdownMenuShortcut,R as DropdownMenuSeparator,T as DropdownMenuRadioItem,O as DropdownMenuRadioGroup,Z as DropdownMenuPortal,v as DropdownMenuLabel,P as DropdownMenuItem,L as DropdownMenuGroup,$ as DropdownMenuContent,G as DropdownMenuCheckboxItem,Y as DropdownMenu};
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { SharedEmptyStateProps } from '@contractspec/lib.ui-kit-core/interfaces';
|
|
2
|
+
import { type VariantProps } from 'class-variance-authority';
|
|
3
|
+
declare const containerVariants: (props?: ({
|
|
4
|
+
density?: "default" | "compact" | null | undefined;
|
|
5
|
+
} & import("class-variance-authority/types").ClassProp) | undefined) => string;
|
|
6
|
+
export interface EmptyStateProps extends SharedEmptyStateProps, VariantProps<typeof containerVariants> {
|
|
7
|
+
}
|
|
8
|
+
export declare function EmptyState({ icon, title, description, primaryAction, secondaryAction, className, density, }: EmptyStateProps): import("react/jsx-runtime").JSX.Element;
|
|
9
|
+
export {};
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
// @bun
|
|
2
|
+
var Z=import.meta.require;import{cn as K}from"@contractspec/lib.ui-kit-core/utils";import{cva as L}from"class-variance-authority";import{jsx as M}from"react/jsx-runtime";var R=L("flex flex-col",{variants:{gap:{none:"gap-0",xs:"gap-1",sm:"gap-2",md:"gap-3",lg:"gap-4",xl:"gap-6","2xl":"gap-8"},align:{start:"items-start",center:"items-center",end:"items-end",stretch:"items-stretch"},justify:{start:"justify-start",center:"justify-center",end:"justify-end",between:"justify-between",around:"justify-around",evenly:"justify-evenly"}},defaultVariants:{gap:"md",align:"stretch",justify:"start"}});function P({className:q,gap:E,align:z,justify:C,as:D="div",ref:F,...G}){return M(D,{ref:F,className:K(R({gap:E,align:z,justify:C}),q),...G})}var T=L("flex flex-row",{variants:{gap:{none:"gap-0",xs:"gap-1",sm:"gap-2",md:"gap-3",lg:"gap-4",xl:"gap-6","2xl":"gap-8"},align:{start:"items-start",center:"items-center",end:"items-end",stretch:"items-stretch",baseline:"items-baseline"},justify:{start:"justify-start",center:"justify-center",end:"justify-end",between:"justify-between",around:"justify-around",evenly:"justify-evenly"},wrap:{nowrap:"flex-nowrap",wrap:"flex-wrap",wrapReverse:"flex-wrap-reverse"}},defaultVariants:{gap:"md",align:"center",justify:"start",wrap:"wrap"}});function H({className:q,gap:E,align:z,justify:C,wrap:D,as:F="div",ref:G,...I}){return M(F,{ref:G,className:K(T({gap:E,align:z,justify:C,wrap:D}),q),...I})}var U=L("flex flex-row",{variants:{gap:{none:"gap-0",xs:"gap-1",sm:"gap-2",md:"gap-3",lg:"gap-4",xl:"gap-6","2xl":"gap-8"},align:{start:"items-start",center:"items-center",end:"items-end",stretch:"items-stretch",baseline:"items-baseline"},justify:{start:"justify-start",center:"justify-center",end:"justify-end",between:"justify-between",around:"justify-around",evenly:"justify-evenly"},wrap:{nowrap:"flex-nowrap",wrap:"flex-wrap",wrapReverse:"flex-wrap-reverse"}},defaultVariants:{gap:"md",align:"center",justify:"center",wrap:"nowrap"}});function b({className:q,gap:E,align:z,justify:C,wrap:D,as:F="div",ref:G,...I}){return M(F,{ref:G,className:K(U({gap:E,align:z,justify:C,wrap:D}),q),...I})}import{cn as W}from"@contractspec/lib.ui-kit-core/utils";import{cva as X}from"class-variance-authority";import{jsx as J,jsxs as O}from"react/jsx-runtime";var Y=X("items-center text-center",{variants:{density:{compact:"gap-3 p-6",default:"gap-4 p-8"}},defaultVariants:{density:"default"}});function N({icon:q,title:E,description:z,primaryAction:C,secondaryAction:D,className:F,density:G}){return O(P,{className:W(Y({density:G}),F),children:[q?J("div",{className:"flex h-12 w-12 items-center justify-center rounded-full bg-muted",children:J("div",{className:"flex items-center justify-center text-muted-foreground",children:q})}):null,O("div",{children:[J("h3",{className:"font-medium",children:E}),z?J("p",{className:"text-base text-muted-foreground",children:z}):null]}),(C||D)&&O("div",{className:"flex items-center justify-center gap-2",children:[C,D]})]})}export{N as EmptyState};
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
import { type VariantProps } from 'class-variance-authority';
|
|
2
|
+
import type * as React from 'react';
|
|
3
|
+
declare function Empty({ className, ...props }: React.ComponentPropsWithoutRef<'div'>): import("react/jsx-runtime").JSX.Element;
|
|
4
|
+
declare function EmptyHeader({ className, ...props }: React.ComponentPropsWithoutRef<'div'>): import("react/jsx-runtime").JSX.Element;
|
|
5
|
+
declare const emptyMediaVariants: (props?: ({
|
|
6
|
+
variant?: "default" | "icon" | null | undefined;
|
|
7
|
+
} & import("class-variance-authority/types").ClassProp) | undefined) => string;
|
|
8
|
+
declare function EmptyMedia({ className, variant, ...props }: React.ComponentPropsWithoutRef<'div'> & VariantProps<typeof emptyMediaVariants>): import("react/jsx-runtime").JSX.Element;
|
|
9
|
+
declare function EmptyTitle({ className, ...props }: React.ComponentPropsWithoutRef<'div'>): import("react/jsx-runtime").JSX.Element;
|
|
10
|
+
declare function EmptyDescription({ className, ...props }: React.ComponentPropsWithoutRef<'p'>): import("react/jsx-runtime").JSX.Element;
|
|
11
|
+
declare function EmptyContent({ className, ...props }: React.ComponentPropsWithoutRef<'div'>): import("react/jsx-runtime").JSX.Element;
|
|
12
|
+
export { Empty, EmptyContent, EmptyDescription, EmptyHeader, EmptyMedia, EmptyTitle, };
|
package/dist/ui/empty.js
ADDED
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
// @bun
|
|
2
|
+
var F=import.meta.require;import{cn as q}from"@contractspec/lib.ui-kit-core/utils";import{cva as A}from"class-variance-authority";import{jsx as w}from"react/jsx-runtime";function K({className:g,...f}){return w("div",{"data-slot":"empty",className:q("flex min-w-0 flex-1 flex-col items-center justify-center gap-6 text-balance rounded-lg border-dashed p-6 text-center md:p-12",g),...f})}function L({className:g,...f}){return w("div",{"data-slot":"empty-header",className:q("flex max-w-sm flex-col items-center gap-2 text-center",g),...f})}var B=A("mb-2 flex shrink-0 items-center justify-center [&_svg]:pointer-events-none [&_svg]:shrink-0",{variants:{variant:{default:"bg-transparent",icon:"flex size-10 shrink-0 items-center justify-center rounded-lg bg-muted text-foreground [&_svg:not([class*='size-'])]:size-6"}},defaultVariants:{variant:"default"}});function O({className:g,variant:f="default",...z}){return w("div",{"data-slot":"empty-icon","data-variant":f,className:q(B({variant:f,className:g})),...z})}function P({className:g,...f}){return w("div",{"data-slot":"empty-title",className:q("font-medium text-lg tracking-tight",g),...f})}function Q({className:g,...f}){return w("p",{"data-slot":"empty-description",className:q("text-muted-foreground text-sm/relaxed [&>a:hover]:text-primary [&>a]:underline [&>a]:underline-offset-4",g),...f})}function R({className:g,...f}){return w("div",{"data-slot":"empty-content",className:q("flex w-full min-w-0 max-w-sm flex-col items-center gap-4 text-balance text-sm",g),...f})}export{P as EmptyTitle,O as EmptyMedia,L as EmptyHeader,Q as EmptyDescription,R as EmptyContent,K as Empty};
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import type { SharedFieldErrorProps, SharedFieldLegendProps, SharedFieldProps } from '@contractspec/lib.ui-kit-core/interfaces';
|
|
2
|
+
import { type VariantProps } from 'class-variance-authority';
|
|
3
|
+
import * as React from 'react';
|
|
4
|
+
import { Label } from './label';
|
|
5
|
+
declare function FieldSet({ className, ...props }: React.ComponentPropsWithoutRef<'fieldset'>): import("react/jsx-runtime").JSX.Element;
|
|
6
|
+
declare function FieldLegend({ className, variant, ...props }: React.ComponentPropsWithoutRef<'legend'> & SharedFieldLegendProps): import("react/jsx-runtime").JSX.Element;
|
|
7
|
+
declare function FieldGroup({ className, ...props }: React.ComponentPropsWithoutRef<'div'>): import("react/jsx-runtime").JSX.Element;
|
|
8
|
+
declare const fieldVariants: (props?: ({
|
|
9
|
+
orientation?: "horizontal" | "vertical" | "responsive" | null | undefined;
|
|
10
|
+
} & import("class-variance-authority/types").ClassProp) | undefined) => string;
|
|
11
|
+
declare function Field({ className, orientation, ...props }: React.ComponentPropsWithoutRef<'div'> & SharedFieldProps & VariantProps<typeof fieldVariants>): import("react/jsx-runtime").JSX.Element;
|
|
12
|
+
declare function FieldContent({ className, ...props }: React.ComponentPropsWithoutRef<'div'>): import("react/jsx-runtime").JSX.Element;
|
|
13
|
+
declare function FieldLabel({ className, ...props }: React.ComponentPropsWithoutRef<typeof Label>): import("react/jsx-runtime").JSX.Element;
|
|
14
|
+
declare function FieldTitle({ className, ...props }: React.ComponentPropsWithoutRef<'div'>): import("react/jsx-runtime").JSX.Element;
|
|
15
|
+
declare function FieldDescription({ className, ...props }: React.ComponentPropsWithoutRef<'p'>): import("react/jsx-runtime").JSX.Element;
|
|
16
|
+
declare function FieldSeparator({ children, className, ...props }: React.ComponentPropsWithoutRef<'div'> & {
|
|
17
|
+
children?: React.ReactNode;
|
|
18
|
+
}): import("react/jsx-runtime").JSX.Element;
|
|
19
|
+
declare function FieldError({ className, children, errors, ...props }: React.ComponentPropsWithoutRef<'div'> & SharedFieldErrorProps): import("react/jsx-runtime").JSX.Element | null;
|
|
20
|
+
export { Field, FieldContent, FieldDescription, FieldError, FieldGroup, FieldLabel, FieldLegend, FieldSeparator, FieldSet, FieldTitle, };
|
package/dist/ui/field.js
ADDED
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
// @bun
|
|
2
|
+
var f=import.meta.require;import{cn as U}from"@contractspec/lib.ui-kit-core/utils";import*as K from"@radix-ui/react-label";import{jsx as W}from"react/jsx-runtime";function M({className:w,...q}){return W(K.Root,{"data-slot":"label",className:U("flex select-none items-center gap-2 font-medium text-sm leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-50 group-data-[disabled=true]:pointer-events-none group-data-[disabled=true]:opacity-50",w),...q})}import{cn as X}from"@contractspec/lib.ui-kit-core/utils";import*as O from"@radix-ui/react-separator";import{jsx as Y}from"react/jsx-runtime";function P({className:w,orientation:q="horizontal",decorative:z=!0,...H}){return Y(O.Root,{"data-slot":"separator",decorative:z,orientation:q,className:X("shrink-0 bg-border data-[orientation=horizontal]:h-px data-[orientation=vertical]:h-full data-[orientation=horizontal]:w-full data-[orientation=vertical]:w-px",w),...H})}import{cn as B}from"@contractspec/lib.ui-kit-core/utils";import{cva as Z}from"class-variance-authority";import*as Q from"react";import{jsx as A,jsxs as $}from"react/jsx-runtime";function v({className:w,...q}){return A("fieldset",{"data-slot":"field-set",className:B("flex flex-col gap-6","has-[>[data-slot=checkbox-group]]:gap-3 has-[>[data-slot=radio-group]]:gap-3",w),...q})}function b({className:w,variant:q="legend",...z}){return A("legend",{"data-slot":"field-legend","data-variant":q,className:B("mb-3 font-medium","data-[variant=legend]:text-base","data-[variant=label]:text-sm",w),...z})}function F({className:w,...q}){return A("div",{"data-slot":"field-group",className:B("group/field-group @container/field-group flex w-full flex-col gap-7 data-[slot=checkbox-group]:gap-3 data-[slot=field-group]:*:gap-4",w),...q})}var _=Z("group/field flex w-full gap-3 data-[invalid=true]:text-destructive",{variants:{orientation:{vertical:["flex-col *:w-full [&>.sr-only]:w-auto"],horizontal:["flex-row items-center","data-[slot=field-label]:*:flex-auto","has-[>[data-slot=field-content]]:items-start has-[>[data-slot=field-content]]:[&>[role=checkbox],[role=radio]]:mt-px"],responsive:["@md/field-group:flex-row flex-col @md/field-group:items-center *:w-full @md/field-group:*:w-auto [&>.sr-only]:w-auto","@md/field-group:data-[slot=field-label]:*:flex-auto","@md/field-group:has-[>[data-slot=field-content]]:items-start @md/field-group:has-[>[data-slot=field-content]]:[&>[role=checkbox],[role=radio]]:mt-px"]}},defaultVariants:{orientation:"vertical"}});function h({className:w,orientation:q="vertical",...z}){return A("div",{role:"group","data-slot":"field","data-orientation":q,className:B(_({orientation:q}),w),...z})}function u({className:w,...q}){return A("div",{"data-slot":"field-content",className:B("group/field-content flex flex-1 flex-col gap-1.5 leading-snug",w),...q})}function j({className:w,...q}){return A(M,{"data-slot":"field-label",className:B("group/field-label peer/field-label flex w-fit gap-2 leading-snug group-data-[disabled=true]/field:opacity-50","has-[>[data-slot=field]]:w-full has-[>[data-slot=field]]:flex-col has-[>[data-slot=field]]:rounded-md has-[>[data-slot=field]]:border *:data-[slot=field]:p-4","has-data-[state=checked]:border-primary has-data-[state=checked]:bg-primary/5 dark:has-data-[state=checked]:bg-primary/10",w),...q})}function x({className:w,...q}){return A("div",{"data-slot":"field-label",className:B("flex w-fit items-center gap-2 font-medium text-sm leading-snug group-data-[disabled=true]/field:opacity-50",w),...q})}function N({className:w,...q}){return A("p",{"data-slot":"field-description",className:B("font-normal text-muted-foreground text-sm leading-normal group-has-data-[orientation=horizontal]/field:text-balance","nth-last-2:-mt-1 last:mt-0 [[data-variant=legend]+&]:-mt-1.5","[&>a:hover]:text-primary [&>a]:underline [&>a]:underline-offset-4",w),...q})}function m({children:w,className:q,...z}){return $("div",{"data-slot":"field-separator","data-content":!!w,className:B("relative -my-2 h-5 text-sm group-data-[variant=outline]/field-group:-mb-2",q),...z,children:[A(P,{className:"absolute inset-0 top-1/2"}),w&&A("span",{className:"relative mx-auto block w-fit bg-background px-2 text-muted-foreground","data-slot":"field-separator-content",children:w})]})}function d({className:w,children:q,errors:z,...H}){let I=Q.useMemo(()=>{if(q)return q;if(!z?.length)return null;if(z?.length==1)return z[0]?.message;return A("ul",{className:"ml-4 flex list-disc flex-col gap-1",children:z.map((J,R)=>J?.message&&A("li",{children:J.message},R))})},[q,z]);if(!I)return null;return A("div",{role:"alert","data-slot":"field-error",className:B("font-normal text-destructive text-sm",w),...H,children:I})}export{x as FieldTitle,v as FieldSet,m as FieldSeparator,b as FieldLegend,j as FieldLabel,F as FieldGroup,d as FieldError,N as FieldDescription,u as FieldContent,h as Field};
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import * as LabelPrimitive from '@radix-ui/react-label';
|
|
2
|
+
import { Slot } from '@radix-ui/react-slot';
|
|
3
|
+
import * as React from 'react';
|
|
4
|
+
import { type ControllerProps, type FieldPath, type FieldValues } from 'react-hook-form';
|
|
5
|
+
export { zodResolver } from '@hookform/resolvers/zod';
|
|
6
|
+
export { type FieldValues, type Resolver, type UseFormReturn, useFieldArray, useForm, } from 'react-hook-form';
|
|
7
|
+
declare const Form: <TFieldValues extends FieldValues, TContext = any, TTransformedValues = TFieldValues>(props: import("react-hook-form").FormProviderProps<TFieldValues, TContext, TTransformedValues>) => React.JSX.Element;
|
|
8
|
+
declare const FormField: <TFieldValues extends FieldValues = FieldValues, TName extends FieldPath<TFieldValues> = FieldPath<TFieldValues>>({ ...props }: ControllerProps<TFieldValues, TName>) => import("react/jsx-runtime").JSX.Element;
|
|
9
|
+
declare const useFormField: () => {
|
|
10
|
+
invalid: boolean;
|
|
11
|
+
isDirty: boolean;
|
|
12
|
+
isTouched: boolean;
|
|
13
|
+
isValidating: boolean;
|
|
14
|
+
error?: import("react-hook-form").FieldError;
|
|
15
|
+
id: string;
|
|
16
|
+
name: string;
|
|
17
|
+
formItemId: string;
|
|
18
|
+
formDescriptionId: string;
|
|
19
|
+
formMessageId: string;
|
|
20
|
+
};
|
|
21
|
+
declare function FormItem({ className, ...props }: React.ComponentPropsWithoutRef<'div'>): import("react/jsx-runtime").JSX.Element;
|
|
22
|
+
declare function FormLabel({ className, ...props }: React.ComponentPropsWithoutRef<typeof LabelPrimitive.Root>): import("react/jsx-runtime").JSX.Element;
|
|
23
|
+
declare function FormControl({ ...props }: React.ComponentPropsWithoutRef<typeof Slot>): import("react/jsx-runtime").JSX.Element;
|
|
24
|
+
declare function FormDescription({ className, ...props }: React.ComponentPropsWithoutRef<'p'>): import("react/jsx-runtime").JSX.Element;
|
|
25
|
+
declare function FormMessage({ className, ...props }: React.ComponentPropsWithoutRef<'p'>): import("react/jsx-runtime").JSX.Element | null;
|
|
26
|
+
export { Form, FormControl, FormDescription, FormField, FormItem, FormLabel, FormMessage, useFormField, };
|
package/dist/ui/form.js
ADDED
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
// @bun
|
|
2
|
+
var h=import.meta.require;import{cn as c}from"@contractspec/lib.ui-kit-core/utils";import*as d from"@radix-ui/react-label";import{jsx as p}from"react/jsx-runtime";function u({className:e,...t}){return p(d.Root,{"data-slot":"label",className:c("flex select-none items-center gap-2 font-medium text-sm leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-50 group-data-[disabled=true]:pointer-events-none group-data-[disabled=true]:opacity-50",e),...t})}import{clsx as C}from"clsx";import{twMerge as V}from"tailwind-merge";function a(...e){return V(C(e))}import{Slot as R}from"@radix-ui/react-slot";import*as m from"react";import{Controller as x,FormProvider as I,useFormContext as P,useFormState as v}from"react-hook-form";import{zodResolver as J}from"@hookform/resolvers/zod";import{useFieldArray as O,useForm as Q}from"react-hook-form";import{jsx as n}from"react/jsx-runtime";var L=I,F=m.createContext({}),z=({...e})=>{return n(F.Provider,{value:{name:e.name},children:n(x,{...e})})},s=()=>{let e=m.useContext(F),t=m.useContext(f),{getFieldState:o}=P(),r=v({name:e.name}),i=o(e.name,r);if(!e)throw Error("useFormField should be used within <FormField>");let{id:l}=t;return{id:l,name:e.name,formItemId:`${l}-form-item`,formDescriptionId:`${l}-form-item-description`,formMessageId:`${l}-form-item-message`,...i}},f=m.createContext({});function A({className:e,...t}){let o=m.useId();return n(f.Provider,{value:{id:o},children:n("div",{"data-slot":"form-item",className:a("grid gap-2",e),...t})})}function E({className:e,...t}){let{error:o,formItemId:r}=s();return n(u,{"data-slot":"form-label","data-error":!!o,className:a("data-[error=true]:text-destructive",e),htmlFor:r,...t})}function U({...e}){let{error:t,formItemId:o,formDescriptionId:r,formMessageId:i}=s();return n(R,{"data-slot":"form-control",id:o,"aria-describedby":!t?`${r}`:`${r} ${i}`,"aria-invalid":!!t,...e})}function q({className:e,...t}){let{formDescriptionId:o}=s();return n("p",{"data-slot":"form-description",id:o,className:a("text-muted-foreground text-sm",e),...t})}function B({className:e,...t}){let{error:o,formMessageId:r}=s(),i=o?String(o?.message??""):t.children;if(!i)return null;return n("p",{"data-slot":"form-message",id:r,className:a("text-destructive text-sm",e),...t,children:i})}export{J as zodResolver,s as useFormField,Q as useForm,O as useFieldArray,B as FormMessage,E as FormLabel,A as FormItem,z as FormField,q as FormDescription,U as FormControl,L as Form};
|
|
@@ -0,0 +1,6 @@
|
|
|
1
|
+
import * as HoverCardPrimitive from '@radix-ui/react-hover-card';
|
|
2
|
+
import * as React from 'react';
|
|
3
|
+
declare function HoverCard({ ...props }: React.ComponentProps<typeof HoverCardPrimitive.Root>): import("react/jsx-runtime").JSX.Element;
|
|
4
|
+
declare function HoverCardTrigger({ ...props }: React.ComponentProps<typeof HoverCardPrimitive.Trigger>): import("react/jsx-runtime").JSX.Element;
|
|
5
|
+
declare function HoverCardContent({ className, align, sideOffset, ...props }: React.ComponentProps<typeof HoverCardPrimitive.Content>): import("react/jsx-runtime").JSX.Element;
|
|
6
|
+
export { HoverCard, HoverCardContent, HoverCardTrigger };
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
// @bun
|
|
2
|
+
var E=import.meta.require;import{cn as D}from"@contractspec/lib.ui-kit-core/utils";import*as q from"@radix-ui/react-hover-card";import{jsx as y}from"react/jsx-runtime";function I({...w}){return y(q.Root,{"data-slot":"hover-card",...w})}function J({...w}){return y(q.Trigger,{"data-slot":"hover-card-trigger",...w})}function K({className:w,align:z="center",sideOffset:A=4,...B}){return y(q.Portal,{"data-slot":"hover-card-portal",children:y(q.Content,{"data-slot":"hover-card-content",align:z,sideOffset:A,className:D("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 w-64 origin-(--radix-hover-card-content-transform-origin) rounded-md border bg-popover p-4 text-popover-foreground shadow-md outline-hidden data-[state=closed]:animate-out data-[state=open]:animate-in",w),...B})})}export{J as HoverCardTrigger,K as HoverCardContent,I as HoverCard};
|
|
@@ -0,0 +1,18 @@
|
|
|
1
|
+
import { type VariantProps } from 'class-variance-authority';
|
|
2
|
+
import * as React from 'react';
|
|
3
|
+
import { Button } from './button';
|
|
4
|
+
declare function InputGroup({ className, ...props }: React.ComponentPropsWithoutRef<'div'>): import("react/jsx-runtime").JSX.Element;
|
|
5
|
+
declare const inputGroupAddonVariants: (props?: ({
|
|
6
|
+
align?: "inline-end" | "inline-start" | "block-end" | "block-start" | null | undefined;
|
|
7
|
+
} & import("class-variance-authority/types").ClassProp) | undefined) => string;
|
|
8
|
+
declare function InputGroupAddon({ className, align, ...props }: React.ComponentPropsWithoutRef<'div'> & VariantProps<typeof inputGroupAddonVariants>): import("react/jsx-runtime").JSX.Element;
|
|
9
|
+
declare const inputGroupButtonVariants: (props?: ({
|
|
10
|
+
size?: "sm" | "xs" | "icon-xs" | "icon-sm" | null | undefined;
|
|
11
|
+
} & import("class-variance-authority/types").ClassProp) | undefined) => string;
|
|
12
|
+
declare function InputGroupButton({ className, type, variant, size, ...props }: Omit<React.ComponentProps<typeof Button>, 'size'> & VariantProps<typeof inputGroupButtonVariants>): import("react/jsx-runtime").JSX.Element;
|
|
13
|
+
declare function InputGroupText({ className, ...props }: React.ComponentPropsWithoutRef<'span'>): import("react/jsx-runtime").JSX.Element;
|
|
14
|
+
declare function InputGroupInput({ className, ref, ...props }: React.ComponentPropsWithoutRef<'input'> & {
|
|
15
|
+
ref?: React.Ref<HTMLInputElement>;
|
|
16
|
+
}): import("react/jsx-runtime").JSX.Element;
|
|
17
|
+
declare function InputGroupTextarea({ className, ...props }: React.ComponentPropsWithoutRef<'textarea'>): import("react/jsx-runtime").JSX.Element;
|
|
18
|
+
export { InputGroup, InputGroupAddon, InputGroupButton, InputGroupInput, InputGroupText, InputGroupTextarea, };
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
// @bun
|
|
2
|
+
var h=import.meta.require;import{cn as R}from"@contractspec/lib.ui-kit-core/utils";import{Slot as U}from"@radix-ui/react-slot";import{cva as W}from"class-variance-authority";import*as L from"react";import{jsx as Y}from"react/jsx-runtime";var X=W("inline-flex shrink-0 items-center justify-center gap-2 whitespace-nowrap rounded-md font-medium text-sm outline-hidden transition-all focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 disabled:pointer-events-none disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 [&_svg:not([class*='size-'])]:size-4 [&_svg]:pointer-events-none [&_svg]:shrink-0",{variants:{variant:{default:"bg-primary text-primary-foreground hover:bg-primary/90",destructive:"bg-destructive text-white hover:bg-destructive/90 focus-visible:ring-destructive/20 dark:bg-destructive/60 dark:focus-visible:ring-destructive/40",outline:"border bg-background shadow-2xs hover:bg-accent hover:text-accent-foreground dark:border-input dark:bg-input/30 dark:hover:bg-input/50",secondary:"bg-secondary text-secondary-foreground hover:bg-secondary/80",ghost:"hover:bg-accent hover:text-accent-foreground dark:hover:bg-accent/50",link:"text-primary underline-offset-4 hover:underline"},size:{default:"h-9 px-4 py-2 has-[>svg]:px-3",sm:"h-8 gap-1.5 rounded-md px-3 has-[>svg]:px-2.5",lg:"h-10 rounded-md px-6 has-[>svg]:px-4",icon:"size-9"}},defaultVariants:{variant:"default",size:"default"}}),K=L.forwardRef(({className:w,variant:q,size:E,asChild:D=!1,...J},Q)=>{return Y(D?U:"button",{ref:Q,"data-slot":"button",className:R(X({variant:q,size:E,className:w})),...J})});K.displayName="Button";import{cn as Z}from"@contractspec/lib.ui-kit-core/utils";import{jsx as _}from"react/jsx-runtime";function M({className:w,type:q,ref:E,...D}){return _("input",{ref:E,type:q,"data-slot":"input",className:Z("h-9 w-full min-w-0 rounded-md border border-input bg-transparent px-3 py-1 text-base shadow-xs outline-none transition-[color,box-shadow] selection:bg-primary selection:text-primary-foreground file:inline-flex file:h-7 file:border-0 file:bg-transparent file:font-medium file:text-foreground file:text-sm placeholder:text-muted-foreground disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50 md:text-sm dark:bg-input/30","focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50","aria-invalid:border-destructive aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40",w),...D})}import{cn as $}from"@contractspec/lib.ui-kit-core/utils";import{jsx as S}from"react/jsx-runtime";function O({className:w,...q}){return S("textarea",{"data-slot":"textarea",className:$("field-sizing-content flex min-h-16 w-full rounded-md border border-input bg-transparent px-3 py-2 text-base shadow-2xs outline-hidden transition-[color,box-shadow] placeholder:text-muted-foreground focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 disabled:cursor-not-allowed disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-destructive/20 md:text-sm dark:bg-input/30 dark:aria-invalid:ring-destructive/40",w),...q})}import{cn as F}from"@contractspec/lib.ui-kit-core/utils";import{cva as P}from"class-variance-authority";import{jsx as H}from"react/jsx-runtime";function u({className:w,...q}){return H("div",{"data-slot":"input-group",role:"group",className:F("group/input-group relative flex w-full items-center rounded-md border border-input shadow-xs outline-none transition-[color,box-shadow] dark:bg-input/30","h-9 min-w-0 has-[>textarea]:h-auto","has-[>[data-align=inline-start]]:[&>input]:pl-2","has-[>[data-align=inline-end]]:[&>input]:pr-2","has-[>[data-align=block-start]]:h-auto has-[>[data-align=block-start]]:flex-col has-[>[data-align=block-start]]:[&>input]:pb-3","has-[>[data-align=block-end]]:h-auto has-[>[data-align=block-end]]:flex-col has-[>[data-align=block-end]]:[&>input]:pt-3","has-[[data-slot=input-group-control]:focus-visible]:border-ring has-[[data-slot=input-group-control]:focus-visible]:ring-[3px] has-[[data-slot=input-group-control]:focus-visible]:ring-ring/50","has-[[data-slot][aria-invalid=true]]:border-destructive has-[[data-slot][aria-invalid=true]]:ring-destructive/20 dark:has-[[data-slot][aria-invalid=true]]:ring-destructive/40",w),...q})}var A=P("flex h-auto cursor-text select-none items-center justify-center gap-2 py-1.5 font-medium text-muted-foreground text-sm group-data-[disabled=true]/input-group:opacity-50 [&>kbd]:rounded-[calc(var(--radius)-5px)] [&>svg:not([class*='size-'])]:size-4",{variants:{align:{"inline-start":"order-first pl-3 has-[>button]:ml-[-0.45rem] has-[>kbd]:ml-[-0.35rem]","inline-end":"order-last pr-3 has-[>button]:mr-[-0.45rem] has-[>kbd]:mr-[-0.35rem]","block-start":"order-first w-full justify-start px-3 pt-3 group-has-[>input]/input-group:pt-2.5 [.border-b]:pb-3","block-end":"order-last w-full justify-start px-3 pb-3 group-has-[>input]/input-group:pb-2.5 [.border-t]:pt-3"}},defaultVariants:{align:"inline-start"}});function o({className:w,align:q="inline-start",...E}){return H("div",{role:"group","data-slot":"input-group-addon","data-align":q,className:F(A({align:q}),w),onClick:(D)=>{if(D.target.closest("button"))return;D.currentTarget.parentElement?.querySelector("input")?.focus()},onKeyDown:(D)=>{if(D.key==="Enter"||D.key===" ")D.preventDefault(),D.currentTarget.parentElement?.querySelector("input")?.focus()},...E})}var C=P("flex items-center gap-2 text-sm shadow-none",{variants:{size:{xs:"h-6 gap-1 rounded-[calc(var(--radius)-5px)] px-2 has-[>svg]:px-2 [&>svg:not([class*='size-'])]:size-3.5",sm:"h-8 gap-1.5 rounded-md px-2.5 has-[>svg]:px-2.5","icon-xs":"size-6 rounded-[calc(var(--radius)-5px)] p-0 has-[>svg]:p-0","icon-sm":"size-8 p-0 has-[>svg]:p-0"}},defaultVariants:{size:"xs"}});function i({className:w,type:q="button",variant:E="ghost",size:D="xs",...J}){return H(K,{type:q,"data-size":D,variant:E,className:F(C({size:D}),w),...J})}function n({className:w,...q}){return H("span",{className:F("flex items-center gap-2 text-muted-foreground text-sm [&_svg:not([class*='size-'])]:size-4 [&_svg]:pointer-events-none",w),...q})}function c({className:w,ref:q,...E}){return H(M,{ref:q,"data-slot":"input-group-control",className:F("flex-1 rounded-none border-0 bg-transparent shadow-none focus-visible:ring-0 dark:bg-transparent",w),...E})}function p({className:w,...q}){return H(O,{"data-slot":"input-group-control",className:F("flex-1 resize-none rounded-none border-0 bg-transparent py-3 shadow-none focus-visible:ring-0 dark:bg-transparent",w),...q})}export{p as InputGroupTextarea,n as InputGroupText,c as InputGroupInput,i as InputGroupButton,o as InputGroupAddon,u as InputGroup};
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import { OTPInput } from 'input-otp';
|
|
2
|
+
import * as React from 'react';
|
|
3
|
+
declare function InputOTP({ className, containerClassName, ref, ...props }: React.ComponentPropsWithoutRef<typeof OTPInput> & {
|
|
4
|
+
ref?: React.Ref<React.ElementRef<typeof OTPInput>>;
|
|
5
|
+
}): import("react/jsx-runtime").JSX.Element;
|
|
6
|
+
declare function InputOTPGroup({ className, ref, ...props }: React.ComponentPropsWithoutRef<'div'> & {
|
|
7
|
+
ref?: React.Ref<HTMLDivElement>;
|
|
8
|
+
}): import("react/jsx-runtime").JSX.Element;
|
|
9
|
+
declare function InputOTPSlot({ index, className, ref, ...props }: React.ComponentPropsWithoutRef<'div'> & {
|
|
10
|
+
index: number;
|
|
11
|
+
ref?: React.Ref<HTMLDivElement>;
|
|
12
|
+
}): import("react/jsx-runtime").JSX.Element;
|
|
13
|
+
declare function InputOTPSeparator({ ref, ...props }: React.ComponentPropsWithoutRef<'div'> & {
|
|
14
|
+
ref?: React.Ref<HTMLDivElement>;
|
|
15
|
+
}): import("react/jsx-runtime").JSX.Element;
|
|
16
|
+
export { InputOTP, InputOTPGroup, InputOTPSeparator, InputOTPSlot };
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
// @bun
|
|
2
|
+
var V=import.meta.require;import{cn as z}from"@contractspec/lib.ui-kit-core/utils";import{OTPInput as M,OTPInputContext as Q}from"input-otp";import{Dot as R}from"lucide-react";import*as E from"react";import{jsx as w,jsxs as U}from"react/jsx-runtime";function _({className:g,containerClassName:q,ref:y,...B}){return w(M,{ref:y,containerClassName:z("flex items-center gap-2 has-disabled:opacity-50",q),className:z("disabled:cursor-not-allowed",g),...B})}function $({className:g,ref:q,...y}){return w("div",{ref:q,className:z("flex items-center",g),...y})}function b({index:g,className:q,ref:y,...B}){let H=E.useContext(Q),{char:J,hasFakeCaret:K,isActive:L}=H.slots[g]||{};return U("div",{ref:y,className:z("relative flex h-10 w-10 items-center justify-center border-input border-y border-r text-base transition-all first:rounded-l-md first:border-l last:rounded-r-md",L&&"z-10 ring-2 ring-ring ring-offset-background",q),...B,children:[J,K&&w("div",{className:"pointer-events-none absolute inset-0 flex items-center justify-center",children:w("div",{className:"h-4 w-px animate-caret-blink bg-foreground duration-1000"})})]})}function v({ref:g,...q}){return w("div",{ref:g,role:"separator",...q,children:w(R,{})})}export{b as InputOTPSlot,v as InputOTPSeparator,$ as InputOTPGroup,_ as InputOTP};
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
export type PasswordPurpose = 'current' | 'new';
|
|
3
|
+
export type InputPasswordProps = Omit<React.ComponentPropsWithoutRef<'input'>, 'type'> & {
|
|
4
|
+
ref?: React.Ref<HTMLInputElement>;
|
|
5
|
+
passwordPurpose?: PasswordPurpose;
|
|
6
|
+
visibilityToggle?: boolean;
|
|
7
|
+
showLabel?: string;
|
|
8
|
+
hideLabel?: string;
|
|
9
|
+
};
|
|
10
|
+
declare function InputPassword({ ref, passwordPurpose, visibilityToggle, showLabel, hideLabel, autoComplete, autoCapitalize, autoCorrect, disabled, className, ...props }: InputPasswordProps): import("react/jsx-runtime").JSX.Element;
|
|
11
|
+
export { InputPassword };
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
// @bun
|
|
2
|
+
var r=import.meta.require;import{cn as X}from"@contractspec/lib.ui-kit-core/utils";import{Slot as Y}from"@radix-ui/react-slot";import{cva as Z}from"class-variance-authority";import*as e from"react";import{jsx as $}from"react/jsx-runtime";var _=Z("inline-flex shrink-0 items-center justify-center gap-2 whitespace-nowrap rounded-md font-medium text-sm outline-hidden transition-all focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 disabled:pointer-events-none disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 [&_svg:not([class*='size-'])]:size-4 [&_svg]:pointer-events-none [&_svg]:shrink-0",{variants:{variant:{default:"bg-primary text-primary-foreground hover:bg-primary/90",destructive:"bg-destructive text-white hover:bg-destructive/90 focus-visible:ring-destructive/20 dark:bg-destructive/60 dark:focus-visible:ring-destructive/40",outline:"border bg-background shadow-2xs hover:bg-accent hover:text-accent-foreground dark:border-input dark:bg-input/30 dark:hover:bg-input/50",secondary:"bg-secondary text-secondary-foreground hover:bg-secondary/80",ghost:"hover:bg-accent hover:text-accent-foreground dark:hover:bg-accent/50",link:"text-primary underline-offset-4 hover:underline"},size:{default:"h-9 px-4 py-2 has-[>svg]:px-3",sm:"h-8 gap-1.5 rounded-md px-3 has-[>svg]:px-2.5",lg:"h-10 rounded-md px-6 has-[>svg]:px-4",icon:"size-9"}},defaultVariants:{variant:"default",size:"default"}}),A=e.forwardRef(({className:o,variant:d,size:P,asChild:w=!1,...I},b)=>{return $(w?Y:"button",{ref:b,"data-slot":"button",className:X(_({variant:d,size:P,className:o})),...I})});A.displayName="Button";import{cn as G}from"@contractspec/lib.ui-kit-core/utils";import{jsx as t}from"react/jsx-runtime";function y({className:o,type:d,ref:P,...w}){return t("input",{ref:P,type:d,"data-slot":"input",className:G("h-9 w-full min-w-0 rounded-md border border-input bg-transparent px-3 py-1 text-base shadow-xs outline-none transition-[color,box-shadow] selection:bg-primary selection:text-primary-foreground file:inline-flex file:h-7 file:border-0 file:bg-transparent file:font-medium file:text-foreground file:text-sm placeholder:text-muted-foreground disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50 md:text-sm dark:bg-input/30","focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50","aria-invalid:border-destructive aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40",o),...w})}import{cn as T}from"@contractspec/lib.ui-kit-core/utils";import{jsx as k}from"react/jsx-runtime";function g({className:o,...d}){return k("textarea",{"data-slot":"textarea",className:T("field-sizing-content flex min-h-16 w-full rounded-md border border-input bg-transparent px-3 py-2 text-base shadow-2xs outline-hidden transition-[color,box-shadow] placeholder:text-muted-foreground focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 disabled:cursor-not-allowed disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-destructive/20 md:text-sm dark:bg-input/30 dark:aria-invalid:ring-destructive/40",o),...d})}import{cn as f}from"@contractspec/lib.ui-kit-core/utils";import{cva as S}from"class-variance-authority";import{jsx as u}from"react/jsx-runtime";function W({className:o,...d}){return u("div",{"data-slot":"input-group",role:"group",className:f("group/input-group relative flex w-full items-center rounded-md border border-input shadow-xs outline-none transition-[color,box-shadow] dark:bg-input/30","h-9 min-w-0 has-[>textarea]:h-auto","has-[>[data-align=inline-start]]:[&>input]:pl-2","has-[>[data-align=inline-end]]:[&>input]:pr-2","has-[>[data-align=block-start]]:h-auto has-[>[data-align=block-start]]:flex-col has-[>[data-align=block-start]]:[&>input]:pb-3","has-[>[data-align=block-end]]:h-auto has-[>[data-align=block-end]]:flex-col has-[>[data-align=block-end]]:[&>input]:pt-3","has-[[data-slot=input-group-control]:focus-visible]:border-ring has-[[data-slot=input-group-control]:focus-visible]:ring-[3px] has-[[data-slot=input-group-control]:focus-visible]:ring-ring/50","has-[[data-slot][aria-invalid=true]]:border-destructive has-[[data-slot][aria-invalid=true]]:ring-destructive/20 dark:has-[[data-slot][aria-invalid=true]]:ring-destructive/40",o),...d})}var B=S("flex h-auto cursor-text select-none items-center justify-center gap-2 py-1.5 font-medium text-muted-foreground text-sm group-data-[disabled=true]/input-group:opacity-50 [&>kbd]:rounded-[calc(var(--radius)-5px)] [&>svg:not([class*='size-'])]:size-4",{variants:{align:{"inline-start":"order-first pl-3 has-[>button]:ml-[-0.45rem] has-[>kbd]:ml-[-0.35rem]","inline-end":"order-last pr-3 has-[>button]:mr-[-0.45rem] has-[>kbd]:mr-[-0.35rem]","block-start":"order-first w-full justify-start px-3 pt-3 group-has-[>input]/input-group:pt-2.5 [.border-b]:pb-3","block-end":"order-last w-full justify-start px-3 pb-3 group-has-[>input]/input-group:pb-2.5 [.border-t]:pt-3"}},defaultVariants:{align:"inline-start"}});function h({className:o,align:d="inline-start",...P}){return u("div",{role:"group","data-slot":"input-group-addon","data-align":d,className:f(B({align:d}),o),onClick:(w)=>{if(w.target.closest("button"))return;w.currentTarget.parentElement?.querySelector("input")?.focus()},onKeyDown:(w)=>{if(w.key==="Enter"||w.key===" ")w.preventDefault(),w.currentTarget.parentElement?.querySelector("input")?.focus()},...P})}var V=S("flex items-center gap-2 text-sm shadow-none",{variants:{size:{xs:"h-6 gap-1 rounded-[calc(var(--radius)-5px)] px-2 has-[>svg]:px-2 [&>svg:not([class*='size-'])]:size-3.5",sm:"h-8 gap-1.5 rounded-md px-2.5 has-[>svg]:px-2.5","icon-xs":"size-6 rounded-[calc(var(--radius)-5px)] p-0 has-[>svg]:p-0","icon-sm":"size-8 p-0 has-[>svg]:p-0"}},defaultVariants:{size:"xs"}});function q({className:o,type:d="button",variant:P="ghost",size:w="xs",...I}){return u(A,{type:d,"data-size":w,variant:P,className:f(V({size:w}),o),...I})}function yo({className:o,...d}){return u("span",{className:f("flex items-center gap-2 text-muted-foreground text-sm [&_svg:not([class*='size-'])]:size-4 [&_svg]:pointer-events-none",o),...d})}function F({className:o,ref:d,...P}){return u(y,{ref:d,"data-slot":"input-group-control",className:f("flex-1 rounded-none border-0 bg-transparent shadow-none focus-visible:ring-0 dark:bg-transparent",o),...P})}function bo({className:o,...d}){return u(g,{"data-slot":"input-group-control",className:f("flex-1 resize-none rounded-none border-0 bg-transparent py-3 shadow-none focus-visible:ring-0 dark:bg-transparent",o),...d})}import{EyeIcon as z,EyeOffIcon as v}from"lucide-react";import*as J from"react";import{jsx as C,jsxs as p}from"react/jsx-runtime";function m(o){return o==="new"?"new-password":"current-password"}function Mo({ref:o,passwordPurpose:d="current",visibilityToggle:P=!0,showLabel:w="Show password",hideLabel:I="Hide password",autoComplete:b,autoCapitalize:E="none",autoCorrect:D="off",disabled:R,className:H,...M}){let[n,K]=J.useState(!1),Q=n?I:w,U=n?"text":"password",O=b??m(d);if(!P)return C(y,{ref:o,...M,type:"password",autoComplete:O,autoCapitalize:E,autoCorrect:D,disabled:R,className:H});return p(W,{"data-disabled":R?!0:void 0,children:[C(F,{ref:o,...M,type:U,autoComplete:O,autoCapitalize:E,autoCorrect:D,disabled:R,className:H}),C(h,{align:"inline-end",children:C(q,{type:"button",size:"icon-xs","aria-label":Q,"aria-pressed":n,disabled:R,onMouseDown:(L)=>{L.preventDefault()},onClick:()=>{K((L)=>!L)},children:n?C(v,{}):C(z,{})})})]})}export{Mo as InputPassword};
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export {};
|
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
import type { SharedInputProps } from '@contractspec/lib.ui-kit-core/interfaces';
|
|
2
|
+
import * as React from 'react';
|
|
3
|
+
export type InputProps = SharedInputProps & React.ComponentPropsWithoutRef<'input'> & {
|
|
4
|
+
ref?: React.Ref<HTMLInputElement>;
|
|
5
|
+
};
|
|
6
|
+
declare function Input({ className, type, ref, ...props }: InputProps): import("react/jsx-runtime").JSX.Element;
|
|
7
|
+
export { Input };
|
package/dist/ui/input.js
ADDED
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
// @bun
|
|
2
|
+
var z=import.meta.require;import{cn as v}from"@contractspec/lib.ui-kit-core/utils";import{jsx as w}from"react/jsx-runtime";function C({className:d,type:g,ref:h,...q}){return w("input",{ref:h,type:g,"data-slot":"input",className:v("h-9 w-full min-w-0 rounded-md border border-input bg-transparent px-3 py-1 text-base shadow-xs outline-none transition-[color,box-shadow] selection:bg-primary selection:text-primary-foreground file:inline-flex file:h-7 file:border-0 file:bg-transparent file:font-medium file:text-foreground file:text-sm placeholder:text-muted-foreground disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50 md:text-sm dark:bg-input/30","focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50","aria-invalid:border-destructive aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40",d),...q})}export{C as Input};
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import { type VariantProps } from 'class-variance-authority';
|
|
2
|
+
import type * as React from 'react';
|
|
3
|
+
declare const itemVariants: (props?: ({
|
|
4
|
+
variant?: "default" | "outline" | "muted" | null | undefined;
|
|
5
|
+
size?: "default" | "sm" | "xs" | null | undefined;
|
|
6
|
+
} & import("class-variance-authority/types").ClassProp) | undefined) => string;
|
|
7
|
+
declare const itemMediaVariants: (props?: ({
|
|
8
|
+
variant?: "image" | "default" | "icon" | null | undefined;
|
|
9
|
+
} & import("class-variance-authority/types").ClassProp) | undefined) => string;
|
|
10
|
+
export interface ItemProps extends React.ComponentPropsWithoutRef<'div'>, VariantProps<typeof itemVariants> {
|
|
11
|
+
asChild?: boolean;
|
|
12
|
+
}
|
|
13
|
+
export declare function Item({ asChild, className, variant, size, ...props }: ItemProps): import("react/jsx-runtime").JSX.Element;
|
|
14
|
+
export declare function ItemGroup({ className, ...props }: React.ComponentPropsWithoutRef<'div'>): import("react/jsx-runtime").JSX.Element;
|
|
15
|
+
export declare function ItemSeparator({ className, ...props }: React.ComponentPropsWithoutRef<'div'>): import("react/jsx-runtime").JSX.Element;
|
|
16
|
+
export declare function ItemMedia({ className, variant, ...props }: React.ComponentPropsWithoutRef<'div'> & VariantProps<typeof itemMediaVariants>): import("react/jsx-runtime").JSX.Element;
|
|
17
|
+
export declare function ItemContent({ className, ...props }: React.ComponentPropsWithoutRef<'div'>): import("react/jsx-runtime").JSX.Element;
|
|
18
|
+
export declare function ItemHeader({ className, ...props }: React.ComponentPropsWithoutRef<'div'>): import("react/jsx-runtime").JSX.Element;
|
|
19
|
+
export declare function ItemTitle({ className, ...props }: React.ComponentPropsWithoutRef<'div'>): import("react/jsx-runtime").JSX.Element;
|
|
20
|
+
export declare function ItemDescription({ className, ...props }: React.ComponentPropsWithoutRef<'p'>): import("react/jsx-runtime").JSX.Element;
|
|
21
|
+
export declare function ItemActions({ className, ...props }: React.ComponentPropsWithoutRef<'div'>): import("react/jsx-runtime").JSX.Element;
|
|
22
|
+
export declare function ItemFooter({ className, ...props }: React.ComponentPropsWithoutRef<'div'>): import("react/jsx-runtime").JSX.Element;
|
|
23
|
+
export {};
|
package/dist/ui/item.js
ADDED
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
// @bun
|
|
2
|
+
var J=import.meta.require;import{cn as q}from"@contractspec/lib.ui-kit-core/utils";import{Slot as F}from"@radix-ui/react-slot";import{cva as B}from"class-variance-authority";import{jsx as w}from"react/jsx-runtime";var G=B("group/item flex w-full items-start gap-3 rounded-lg border p-4 text-left transition-colors",{variants:{variant:{default:"bg-background hover:bg-muted/50",outline:"border-border bg-background hover:bg-accent/50",muted:"border-transparent bg-muted/50 hover:bg-muted"},size:{default:"p-4",sm:"gap-2 p-3",xs:"gap-2 p-2.5"}},defaultVariants:{variant:"default",size:"default"}}),H=B("flex shrink-0 items-center justify-center overflow-hidden rounded-md",{variants:{variant:{default:"bg-transparent",icon:"size-10 bg-muted text-foreground",image:"size-10 bg-muted"}},defaultVariants:{variant:"default"}});function Q({asChild:f=!1,className:g,variant:A,size:D,...E}){return w(f?F:"div",{"data-slot":"item",className:q(G({variant:A,size:D,className:g})),...E})}function R({className:f,...g}){return w("div",{"data-slot":"item-group",className:q("flex flex-col gap-2",f),...g})}function T({className:f,...g}){return w("div",{"data-slot":"item-separator",className:q("h-px bg-border",f),...g})}function U({className:f,variant:g,...A}){return w("div",{"data-slot":"item-media",className:q(H({variant:g,className:f})),...A})}function W({className:f,...g}){return w("div",{"data-slot":"item-content",className:q("min-w-0 flex-1 space-y-1",f),...g})}function X({className:f,...g}){return w("div",{"data-slot":"item-header",className:q("font-medium text-muted-foreground text-xs uppercase",f),...g})}function Y({className:f,...g}){return w("div",{"data-slot":"item-title",className:q("font-medium text-sm",f),...g})}function Z({className:f,...g}){return w("p",{"data-slot":"item-description",className:q("text-muted-foreground text-sm",f),...g})}function _({className:f,...g}){return w("div",{"data-slot":"item-actions",className:q("flex shrink-0 items-center gap-2",f),...g})}function $({className:f,...g}){return w("div",{"data-slot":"item-footer",className:q("pt-1 text-muted-foreground text-xs",f),...g})}export{Y as ItemTitle,T as ItemSeparator,U as ItemMedia,X as ItemHeader,R as ItemGroup,$ as ItemFooter,Z as ItemDescription,W as ItemContent,_ as ItemActions,Q as Item};
|
package/dist/ui/kbd.d.ts
ADDED
|
@@ -0,0 +1,3 @@
|
|
|
1
|
+
import type * as React from 'react';
|
|
2
|
+
export declare function Kbd({ className, ...props }: React.ComponentPropsWithoutRef<'kbd'>): import("react/jsx-runtime").JSX.Element;
|
|
3
|
+
export declare function KbdGroup({ className, ...props }: React.ComponentPropsWithoutRef<'div'>): import("react/jsx-runtime").JSX.Element;
|
package/dist/ui/kbd.js
ADDED
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
// @bun
|
|
2
|
+
var q=import.meta.require;import{cn as g}from"@contractspec/lib.ui-kit-core/utils";import{jsx as h}from"react/jsx-runtime";function y({className:d,...f}){return h("kbd",{"data-slot":"kbd",className:g("inline-flex min-h-6 min-w-6 items-center justify-center rounded-md border bg-muted px-1.5 font-medium text-[0.8rem] text-muted-foreground",d),...f})}function z({className:d,...f}){return h("div",{"data-slot":"kbd-group",className:g("inline-flex items-center gap-1",d),...f})}export{z as KbdGroup,y as Kbd};
|
package/dist/ui/label.js
ADDED
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
// @bun
|
|
2
|
+
var w=import.meta.require;import{cn as q}from"@contractspec/lib.ui-kit-core/utils";import*as f from"@radix-ui/react-label";import{jsx as v}from"react/jsx-runtime";function A({className:g,...h}){return v(f.Root,{"data-slot":"label",className:q("flex select-none items-center gap-2 font-medium text-sm leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-50 group-data-[disabled=true]:pointer-events-none group-data-[disabled=true]:opacity-50",g),...h})}export{A as Label};
|
package/dist/ui/link.js
ADDED
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
// @bun
|
|
2
|
+
var y=import.meta.require;import{cn as q}from"@contractspec/lib.ui-kit-core/utils";import v from"next/link";import{jsx as w}from"react/jsx-runtime";function C({className:d,ref:g,...h}){return w(v,{ref:g,className:q('className="text-primary underline"',d),...h})}export{C as Link};
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { type VariantProps } from 'class-variance-authority';
|
|
2
|
+
import * as React from 'react';
|
|
3
|
+
declare const listVariants: (props?: ({
|
|
4
|
+
type?: "none" | "ordered" | "unordered" | null | undefined;
|
|
5
|
+
spacing?: "none" | "sm" | "lg" | "xs" | "md" | null | undefined;
|
|
6
|
+
} & import("class-variance-authority/types").ClassProp) | undefined) => string;
|
|
7
|
+
export type ListType = 'unordered' | 'ordered' | 'none';
|
|
8
|
+
export type ListProps = React.HTMLAttributes<HTMLUListElement | HTMLOListElement> & VariantProps<typeof listVariants> & {
|
|
9
|
+
type?: ListType;
|
|
10
|
+
ref?: React.Ref<HTMLUListElement | HTMLOListElement>;
|
|
11
|
+
};
|
|
12
|
+
declare function List({ className, type, spacing, ref, ...props }: ListProps): import("react/jsx-runtime").JSX.Element;
|
|
13
|
+
declare const listItemVariants: (props?: ({
|
|
14
|
+
tone?: "default" | "muted" | null | undefined;
|
|
15
|
+
} & import("class-variance-authority/types").ClassProp) | undefined) => string;
|
|
16
|
+
export type ListItemProps = React.LiHTMLAttributes<HTMLLIElement> & VariantProps<typeof listItemVariants> & {
|
|
17
|
+
ref?: React.Ref<HTMLLIElement>;
|
|
18
|
+
};
|
|
19
|
+
declare function ListItem({ className, tone, ref, ...props }: ListItemProps): import("react/jsx-runtime").JSX.Element;
|
|
20
|
+
export { List, ListItem, listItemVariants, listVariants };
|
package/dist/ui/list.js
ADDED
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
// @bun
|
|
2
|
+
var H=import.meta.require;import{cn as A}from"@contractspec/lib.ui-kit-core/utils";import{cva as B}from"class-variance-authority";import{jsx as C}from"react/jsx-runtime";var E=B("flex flex-col",{variants:{type:{unordered:"list-disc pl-6",ordered:"list-decimal pl-6",none:"list-none pl-0"},spacing:{none:"gap-0",xs:"gap-1",sm:"gap-2",md:"gap-3",lg:"gap-4"}},defaultVariants:{type:"unordered",spacing:"sm"}});function O({className:q,type:d="unordered",spacing:w,ref:z,...D}){return C(d==="ordered"?"ol":"ul",{ref:z,role:d==="none"?"list":void 0,className:A(E({type:d,spacing:w}),q),...D})}var F=B("",{variants:{tone:{default:"",muted:"text-muted-foreground"}},defaultVariants:{tone:"default"}});function P({className:q,tone:d,ref:w,...z}){return C("li",{ref:w,className:A(F({tone:d}),q),...z})}export{E as listVariants,F as listItemVariants,P as ListItem,O as List};
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
export type LiveRegionPoliteness = 'polite' | 'assertive';
|
|
3
|
+
interface SRLiveRegionContextValue {
|
|
4
|
+
announce: (text: string, politeness?: LiveRegionPoliteness) => void;
|
|
5
|
+
}
|
|
6
|
+
export declare function useSRLiveRegion(): SRLiveRegionContextValue;
|
|
7
|
+
export declare function SRLiveRegionProvider({ children, }: {
|
|
8
|
+
children: React.ReactNode;
|
|
9
|
+
}): import("react/jsx-runtime").JSX.Element;
|
|
10
|
+
export {};
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
// @bun
|
|
2
|
+
var K=import.meta.require;import*as q from"react";import{jsx as y,jsxs as J}from"react/jsx-runtime";var E=q.createContext(null);function O(){let w=q.useContext(E);if(!w)throw Error("useSRLiveRegion must be used within SRLiveRegionProvider");return w}function P({children:w}){let[A,B]=q.useState([]),F=q.useRef(0),G=q.useCallback((b,H="polite")=>{let D=++F.current;B((z)=>[...z,{id:D,text:b,politeness:H}]),setTimeout(()=>B((z)=>z.filter((I)=>I.id!==D)),1000)},[]);return J(E.Provider,{value:{announce:G},children:[w,y("div",{"aria-live":"polite","aria-atomic":"true",className:"sr-only",children:A.filter((b)=>b.politeness==="polite").map((b)=>y("div",{children:b.text},b.id))}),y("div",{"aria-live":"assertive","aria-atomic":"true",className:"sr-only",children:A.filter((b)=>b.politeness==="assertive").map((b)=>y("div",{children:b.text},b.id))})]})}export{O as useSRLiveRegion,P as SRLiveRegionProvider};
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import type { SharedLoadingButtonProps } from '@contractspec/lib.ui-kit-core/interfaces';
|
|
2
|
+
import React from 'react';
|
|
3
|
+
import type { ButtonProps } from './button';
|
|
4
|
+
export interface LoadingButtonProps extends SharedLoadingButtonProps, ButtonProps {
|
|
5
|
+
isLoading?: boolean;
|
|
6
|
+
loadingText?: string;
|
|
7
|
+
children: React.ReactNode;
|
|
8
|
+
}
|
|
9
|
+
export declare function LoadingButton({ isLoading, loadingText, children, disabled, ...props }: LoadingButtonProps): import("react/jsx-runtime").JSX.Element;
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
// @bun
|
|
2
|
+
var y=import.meta.require;import{cn as Y}from"@contractspec/lib.ui-kit-core/utils";import{Slot as Z}from"@radix-ui/react-slot";import{cva as _}from"class-variance-authority";import*as R from"react";import{jsx as z}from"react/jsx-runtime";var $=_("inline-flex shrink-0 items-center justify-center gap-2 whitespace-nowrap rounded-md font-medium text-sm outline-hidden transition-all focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 disabled:pointer-events-none disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 [&_svg:not([class*='size-'])]:size-4 [&_svg]:pointer-events-none [&_svg]:shrink-0",{variants:{variant:{default:"bg-primary text-primary-foreground hover:bg-primary/90",destructive:"bg-destructive text-white hover:bg-destructive/90 focus-visible:ring-destructive/20 dark:bg-destructive/60 dark:focus-visible:ring-destructive/40",outline:"border bg-background shadow-2xs hover:bg-accent hover:text-accent-foreground dark:border-input dark:bg-input/30 dark:hover:bg-input/50",secondary:"bg-secondary text-secondary-foreground hover:bg-secondary/80",ghost:"hover:bg-accent hover:text-accent-foreground dark:hover:bg-accent/50",link:"text-primary underline-offset-4 hover:underline"},size:{default:"h-9 px-4 py-2 has-[>svg]:px-3",sm:"h-8 gap-1.5 rounded-md px-3 has-[>svg]:px-2.5",lg:"h-10 rounded-md px-6 has-[>svg]:px-4",icon:"size-9"}},defaultVariants:{variant:"default",size:"default"}}),K=R.forwardRef(({className:q,variant:A,size:D,asChild:E=!1,...F},G)=>{return z(E?Z:"button",{ref:G,"data-slot":"button",className:Y($({variant:A,size:D,className:q})),...F})});K.displayName="Button";import{cn as M}from"@contractspec/lib.ui-kit-core/utils";import{cva as O}from"class-variance-authority";import{jsx as P}from"react/jsx-runtime";var H=O("flex flex-col",{variants:{gap:{none:"gap-0",xs:"gap-1",sm:"gap-2",md:"gap-3",lg:"gap-4",xl:"gap-6","2xl":"gap-8"},align:{start:"items-start",center:"items-center",end:"items-end",stretch:"items-stretch"},justify:{start:"justify-start",center:"justify-center",end:"justify-end",between:"justify-between",around:"justify-around",evenly:"justify-evenly"}},defaultVariants:{gap:"md",align:"stretch",justify:"start"}});function d({className:q,gap:A,align:D,justify:E,as:F="div",ref:G,...I}){return P(F,{ref:G,className:M(H({gap:A,align:D,justify:E}),q),...I})}var w=O("flex flex-row",{variants:{gap:{none:"gap-0",xs:"gap-1",sm:"gap-2",md:"gap-3",lg:"gap-4",xl:"gap-6","2xl":"gap-8"},align:{start:"items-start",center:"items-center",end:"items-end",stretch:"items-stretch",baseline:"items-baseline"},justify:{start:"justify-start",center:"justify-center",end:"justify-end",between:"justify-between",around:"justify-around",evenly:"justify-evenly"},wrap:{nowrap:"flex-nowrap",wrap:"flex-wrap",wrapReverse:"flex-wrap-reverse"}},defaultVariants:{gap:"md",align:"center",justify:"start",wrap:"wrap"}});function U({className:q,gap:A,align:D,justify:E,wrap:F,as:G="div",ref:I,...J}){return P(G,{ref:I,className:M(w({gap:A,align:D,justify:E,wrap:F}),q),...J})}var B=O("flex flex-row",{variants:{gap:{none:"gap-0",xs:"gap-1",sm:"gap-2",md:"gap-3",lg:"gap-4",xl:"gap-6","2xl":"gap-8"},align:{start:"items-start",center:"items-center",end:"items-end",stretch:"items-stretch",baseline:"items-baseline"},justify:{start:"justify-start",center:"justify-center",end:"justify-end",between:"justify-between",around:"justify-around",evenly:"justify-evenly"},wrap:{nowrap:"flex-nowrap",wrap:"flex-wrap",wrapReverse:"flex-wrap-reverse"}},defaultVariants:{gap:"md",align:"center",justify:"center",wrap:"nowrap"}});function g({className:q,gap:A,align:D,justify:E,wrap:F,as:G="div",ref:I,...J}){return P(G,{ref:I,className:M(B({gap:A,align:D,justify:E,wrap:F}),q),...J})}import{cn as C}from"@contractspec/lib.ui-kit-core/utils";import{Slot as L}from"@radix-ui/react-slot";import{jsx as T}from"react/jsx-runtime";function W({className:q,asChild:A=!1,...D}){return T(A?L:"p",{className:C("web:select-text text-base text-foreground",q),...D})}import{jsx as Q}from"react/jsx-runtime";function c({isLoading:q=!1,loadingText:A,children:D,disabled:E,...F}){return Q(K,{disabled:E||q,...F,children:q?Q(U,{className:"items-center gap-x-2",children:Q(W,{children:A||"Loading..."})}):D})}export{c as LoadingButton};
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
import type { CSSProperties, ReactNode } from 'react';
|
|
2
|
+
import { type MapRef } from 'react-map-gl/maplibre';
|
|
3
|
+
export interface BBox {
|
|
4
|
+
minLng: number;
|
|
5
|
+
minLat: number;
|
|
6
|
+
maxLng: number;
|
|
7
|
+
maxLat: number;
|
|
8
|
+
}
|
|
9
|
+
export interface MapBaseProps {
|
|
10
|
+
initialViewState?: {
|
|
11
|
+
longitude: number;
|
|
12
|
+
latitude: number;
|
|
13
|
+
zoom: number;
|
|
14
|
+
};
|
|
15
|
+
styleUrl?: string;
|
|
16
|
+
style?: CSSProperties;
|
|
17
|
+
showControls?: boolean;
|
|
18
|
+
showCssLink?: boolean;
|
|
19
|
+
onMapRef?: (ref: MapRef | null) => void;
|
|
20
|
+
children?: ReactNode;
|
|
21
|
+
}
|
|
22
|
+
export declare function MapBase(props: MapBaseProps): import("react/jsx-runtime").JSX.Element;
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
// @bun
|
|
2
|
+
var u=import.meta.require;import*as e from"react";import f,{NavigationControl as d,ScaleControl as b}from"react-map-gl/maplibre";import{jsx as o,jsxs as n,Fragment as y}from"react/jsx-runtime";var h="https://basemaps.cartocdn.com/gl/positron-gl-style/style.json";function R(i){let{initialViewState:a={longitude:2.3522,latitude:48.8566,zoom:5},styleUrl:l=h,style:r,showControls:s=!0,showCssLink:p=!0,onMapRef:m,children:c}=i,t=e.useRef(null);return e.useEffect(()=>{m?.(t.current)},[t.current]),n("div",{style:{position:"relative",width:"100%",height:"100%",...r||{}},children:[p&&o("link",{href:"https://unpkg.com/maplibre-gl@4.7.0/dist/maplibre-gl.css",rel:"stylesheet"}),n(f,{ref:t,mapLib:import("maplibre-gl"),initialViewState:a,style:{width:"100%",height:"100%"},mapStyle:l,maplibreLogo:!1,children:[s&&n(y,{children:[o(b,{position:"bottom-left"}),o(d,{position:"bottom-left"})]}),c]})]})}export{R as MapBase};
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
export interface GeoJsonOverlayProps {
|
|
2
|
+
id?: string;
|
|
3
|
+
data: GeoJSON.FeatureCollection;
|
|
4
|
+
fillColor?: string;
|
|
5
|
+
fillOpacity?: number;
|
|
6
|
+
lineColor?: string;
|
|
7
|
+
lineWidth?: number;
|
|
8
|
+
lineOpacity?: number;
|
|
9
|
+
}
|
|
10
|
+
export declare function MapGeoJsonOverlay(props: GeoJsonOverlayProps): import("react/jsx-runtime").JSX.Element;
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
// @bun
|
|
2
|
+
var K=import.meta.require;import{Layer as q,Source as I}from"react-map-gl/maplibre";import{jsx as v,jsxs as J}from"react/jsx-runtime";function P(w){let{id:k="geojson-overlay",data:z,fillColor:A="#2563eb",fillOpacity:B=0.25,lineColor:D="#1e40af",lineWidth:E=1.5,lineOpacity:F=0.8}=w,G={id:`${k}-fill`,type:"fill",paint:{"fill-color":A,"fill-opacity":B}},H={id:`${k}-outline`,type:"line",paint:{"line-color":D,"line-width":E,"line-opacity":F}};return J(I,{id:k,type:"geojson",data:z,children:[v(q,{...G}),v(q,{...H})]})}export{P as MapGeoJsonOverlay};
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
export interface H3FeatureProperties {
|
|
2
|
+
id: string;
|
|
3
|
+
h3Index?: string;
|
|
4
|
+
count: number;
|
|
5
|
+
}
|
|
6
|
+
export interface H3HeatmapProps {
|
|
7
|
+
id?: string;
|
|
8
|
+
data: GeoJSON.FeatureCollection<GeoJSON.Polygon | GeoJSON.MultiPolygon, H3FeatureProperties>;
|
|
9
|
+
colorStops?: [number, string][];
|
|
10
|
+
maxCount?: number;
|
|
11
|
+
}
|
|
12
|
+
export declare function MapHeatmapH3(props: H3HeatmapProps): import("react/jsx-runtime").JSX.Element;
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
// @bun
|
|
2
|
+
var I=import.meta.require;import{Layer as A,Source as F}from"react-map-gl/maplibre";import{jsx as B,jsxs as H}from"react/jsx-runtime";function G(q,k){let v=(q||[]).map(([w,z])=>[w,z]);return{"fill-color":["interpolate",["linear"],["get","count"],...v.flat()],"fill-opacity":0.6}}function M(q){let{id:k="h3-heatmap",data:v,colorStops:w=[[0,"#22c55e"],[5,"#eab308"],[10,"#ef4444"]],maxCount:z}=q,D={id:`${k}-fill`,type:"fill",paint:G(w,z)},E={id:`${k}-outline`,type:"line",paint:{"line-color":"#ffffff","line-width":0.25,"line-opacity":0.25}};return H(F,{id:k,type:"geojson",data:v,children:[B(A,{...D}),B(A,{...E})]})}export{M as MapHeatmapH3};
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
export interface MapPoint {
|
|
2
|
+
id: string;
|
|
3
|
+
lng: number;
|
|
4
|
+
lat: number;
|
|
5
|
+
color?: string;
|
|
6
|
+
size?: number;
|
|
7
|
+
ariaLabel?: string;
|
|
8
|
+
onClick?: () => void;
|
|
9
|
+
}
|
|
10
|
+
export declare function MapMarkers({ points }: {
|
|
11
|
+
points: MapPoint[];
|
|
12
|
+
}): import("react/jsx-runtime").JSX.Element;
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
// @bun
|
|
2
|
+
var a=import.meta.require;import{Marker as n}from"react-map-gl/maplibre";import{jsx as r,Fragment as t}from"react/jsx-runtime";function d({points:i}){return r(t,{children:i.map((e)=>r(n,{longitude:e.lng,latitude:e.lat,anchor:"bottom",children:r("button",{role:e.onClick?"button":void 0,tabIndex:e.onClick?0:-1,"aria-label":e.ariaLabel||"marker",onClick:e.onClick,onKeyDown:(o)=>{if(o.key==="Enter"||o.key===" ")o.preventDefault(),e.onClick?.()},style:{width:e.size??14,height:e.size??14,background:e.color??"#2563eb",border:"2px solid white",borderRadius:9999,boxShadow:"0 1px 3px rgba(0,0,0,0.35)",cursor:e.onClick?"pointer":"default"}})},e.id))})}export{d as MapMarkers};
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
// @bun
|
|
2
|
+
var g=import.meta.require;import*as m from"react";import M,{NavigationControl as w,ScaleControl as R}from"react-map-gl/maplibre";import{jsx as b,jsxs as f,Fragment as v}from"react/jsx-runtime";var C="https://basemaps.cartocdn.com/gl/positron-gl-style/style.json";function U(o){let{initialViewState:e={longitude:2.3522,latitude:48.8566,zoom:5},styleUrl:t=C,style:n,showControls:r=!0,showCssLink:i=!0,onMapRef:a,children:u}=o,l=m.useRef(null);return m.useEffect(()=>{a?.(l.current)},[l.current]),f("div",{style:{position:"relative",width:"100%",height:"100%",...n||{}},children:[i&&b("link",{href:"https://unpkg.com/maplibre-gl@4.7.0/dist/maplibre-gl.css",rel:"stylesheet"}),f(M,{ref:l,mapLib:import("maplibre-gl"),initialViewState:e,style:{width:"100%",height:"100%"},mapStyle:t,maplibreLogo:!1,children:[r&&f(v,{children:[b(R,{position:"bottom-left"}),b(w,{position:"bottom-left"})]}),u]})]})}import{Layer as d,Source as S}from"react-map-gl/maplibre";import{jsx as c,jsxs as y}from"react/jsx-runtime";function I(o){let{id:e="geojson-overlay",data:t,fillColor:n="#2563eb",fillOpacity:r=0.25,lineColor:i="#1e40af",lineWidth:a=1.5,lineOpacity:u=0.8}=o,l={id:`${e}-fill`,type:"fill",paint:{"fill-color":n,"fill-opacity":r}},k={id:`${e}-outline`,type:"line",paint:{"line-color":i,"line-width":a,"line-opacity":u}};return y(S,{id:e,type:"geojson",data:t,children:[c(d,{...l}),c(d,{...k})]})}import{Layer as p,Source as E}from"react-map-gl/maplibre";import{jsx as h,jsxs as B}from"react/jsx-runtime";function z(o,e){let t=(o||[]).map(([n,r])=>[n,r]);return{"fill-color":["interpolate",["linear"],["get","count"],...t.flat()],"fill-opacity":0.6}}function q(o){let{id:e="h3-heatmap",data:t,colorStops:n=[[0,"#22c55e"],[5,"#eab308"],[10,"#ef4444"]],maxCount:r}=o,i={id:`${e}-fill`,type:"fill",paint:z(n,r)},a={id:`${e}-outline`,type:"line",paint:{"line-color":"#ffffff","line-width":0.25,"line-opacity":0.25}};return B(E,{id:e,type:"geojson",data:t,children:[h(p,{...i}),h(p,{...a})]})}import{Marker as P}from"react-map-gl/maplibre";import{jsx as s,Fragment as L}from"react/jsx-runtime";function Q({points:o}){return s(L,{children:o.map((e)=>s(P,{longitude:e.lng,latitude:e.lat,anchor:"bottom",children:s("button",{role:e.onClick?"button":void 0,tabIndex:e.onClick?0:-1,"aria-label":e.ariaLabel||"marker",onClick:e.onClick,onKeyDown:(t)=>{if(t.key==="Enter"||t.key===" ")t.preventDefault(),e.onClick?.()},style:{width:e.size??14,height:e.size??14,background:e.color??"#2563eb",border:"2px solid white",borderRadius:9999,boxShadow:"0 1px 3px rgba(0,0,0,0.35)",cursor:e.onClick?"pointer":"default"}})},e.id))})}export{Q as MapMarkers,q as MapHeatmapH3,I as MapGeoJsonOverlay,U as MapBase};
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import type { SharedFeatureGridProps, SharedFeatureItem } from '@contractspec/lib.ui-kit-core/interfaces';
|
|
2
|
+
export interface FeatureItem extends SharedFeatureItem {
|
|
3
|
+
}
|
|
4
|
+
export declare function FeatureGrid({ items, columns, className, }: SharedFeatureGridProps): import("react/jsx-runtime").JSX.Element;
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
// @bun
|
|
2
|
+
var p=import.meta.require;import{clsx as m}from"clsx";import{twMerge as s}from"tailwind-merge";function o(...t){return s(m(t))}import{jsx as r,jsxs as l}from"react/jsx-runtime";function v({items:t,columns:a=3,className:i}){let d=a===4?"md:grid-cols-4":a===2?"md:grid-cols-2":"md:grid-cols-3";return r("section",{className:o("mx-auto max-w-6xl py-12",i),children:r("div",{className:o("grid grid-cols-1 gap-6",d),children:t.map((e,c)=>l("div",{className:"rounded-lg border p-6",children:[e.icon&&r("div",{className:"mb-3 text-primary",children:e.icon}),r("h3",{className:"font-semibold text-lg",children:e.title}),e.description&&r("p",{className:"mt-2 text-base text-muted-foreground",children:e.description})]},c))})})}export{v as FeatureGrid};
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
export declare function Hero({ title, subtitle, primaryCta, secondaryCta, className, }: {
|
|
3
|
+
title: React.ReactNode;
|
|
4
|
+
subtitle?: React.ReactNode;
|
|
5
|
+
primaryCta?: {
|
|
6
|
+
label: string;
|
|
7
|
+
href?: string;
|
|
8
|
+
onClick?: () => void;
|
|
9
|
+
};
|
|
10
|
+
secondaryCta?: {
|
|
11
|
+
label: string;
|
|
12
|
+
href?: string;
|
|
13
|
+
onClick?: () => void;
|
|
14
|
+
};
|
|
15
|
+
className?: string;
|
|
16
|
+
}): import("react/jsx-runtime").JSX.Element;
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
// @bun
|
|
2
|
+
var p=import.meta.require;import{cn as u}from"@contractspec/lib.ui-kit-core/utils";import{Slot as k}from"@radix-ui/react-slot";import{cva as d}from"class-variance-authority";import*as g from"react";import{jsx as N}from"react/jsx-runtime";var r=d("inline-flex shrink-0 items-center justify-center gap-2 whitespace-nowrap rounded-md font-medium text-sm outline-hidden transition-all focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 disabled:pointer-events-none disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 [&_svg:not([class*='size-'])]:size-4 [&_svg]:pointer-events-none [&_svg]:shrink-0",{variants:{variant:{default:"bg-primary text-primary-foreground hover:bg-primary/90",destructive:"bg-destructive text-white hover:bg-destructive/90 focus-visible:ring-destructive/20 dark:bg-destructive/60 dark:focus-visible:ring-destructive/40",outline:"border bg-background shadow-2xs hover:bg-accent hover:text-accent-foreground dark:border-input dark:bg-input/30 dark:hover:bg-input/50",secondary:"bg-secondary text-secondary-foreground hover:bg-secondary/80",ghost:"hover:bg-accent hover:text-accent-foreground dark:hover:bg-accent/50",link:"text-primary underline-offset-4 hover:underline"},size:{default:"h-9 px-4 py-2 has-[>svg]:px-3",sm:"h-8 gap-1.5 rounded-md px-3 has-[>svg]:px-2.5",lg:"h-10 rounded-md px-6 has-[>svg]:px-4",icon:"size-9"}},defaultVariants:{variant:"default",size:"default"}}),o=g.forwardRef(({className:n,variant:f,size:e,asChild:l=!1,...i},c)=>{return N(l?k:"button",{ref:c,"data-slot":"button",className:u(r({variant:f,size:e,className:n})),...i})});o.displayName="Button";import{clsx as R}from"clsx";import{twMerge as b}from"tailwind-merge";function m(...n){return b(R(n))}import{jsx as t,jsxs as h}from"react/jsx-runtime";function G({title:n,subtitle:f,primaryCta:e,secondaryCta:l,className:i}){return h("section",{className:m("mx-auto max-w-4xl py-16 text-center",i),children:[t("h1",{className:"font-bold text-4xl tracking-tight md:text-5xl",children:n}),f&&t("p",{className:"mt-4 text-lg text-muted-foreground md:text-xl",children:f}),(e||l)&&h("div",{className:"mt-8 flex items-center justify-center gap-3",children:[e&&(e.href?t(o,{asChild:!0,size:"lg",children:t("a",{href:e.href,children:e.label})}):t(o,{size:"lg",onClick:e.onClick,children:e.label})),l&&(l.href?t(o,{variant:"outline",asChild:!0,size:"lg",children:t("a",{href:l.href,children:l.label})}):t(o,{variant:"outline",size:"lg",onClick:l.onClick,children:l.label}))]})]})}export{G as Hero};
|
|
@@ -0,0 +1,4 @@
|
|
|
1
|
+
import type { SharedPricingTableProps, SharedPricingTier } from '@contractspec/lib.ui-kit-core/interfaces';
|
|
2
|
+
export interface PricingTier extends SharedPricingTier {
|
|
3
|
+
}
|
|
4
|
+
export declare function PricingTable({ tiers, className }: SharedPricingTableProps): import("react/jsx-runtime").JSX.Element;
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
// @bun
|
|
2
|
+
var v=import.meta.require;import{cn as p}from"@contractspec/lib.ui-kit-core/utils";import{Slot as g}from"@radix-ui/react-slot";import{cva as f}from"class-variance-authority";import*as n from"react";import{jsx as u}from"react/jsx-runtime";var s=f("inline-flex shrink-0 items-center justify-center gap-2 whitespace-nowrap rounded-md font-medium text-sm outline-hidden transition-all focus-visible:border-ring focus-visible:ring-[3px] focus-visible:ring-ring/50 disabled:pointer-events-none disabled:opacity-50 aria-invalid:border-destructive aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 [&_svg:not([class*='size-'])]:size-4 [&_svg]:pointer-events-none [&_svg]:shrink-0",{variants:{variant:{default:"bg-primary text-primary-foreground hover:bg-primary/90",destructive:"bg-destructive text-white hover:bg-destructive/90 focus-visible:ring-destructive/20 dark:bg-destructive/60 dark:focus-visible:ring-destructive/40",outline:"border bg-background shadow-2xs hover:bg-accent hover:text-accent-foreground dark:border-input dark:bg-input/30 dark:hover:bg-input/50",secondary:"bg-secondary text-secondary-foreground hover:bg-secondary/80",ghost:"hover:bg-accent hover:text-accent-foreground dark:hover:bg-accent/50",link:"text-primary underline-offset-4 hover:underline"},size:{default:"h-9 px-4 py-2 has-[>svg]:px-3",sm:"h-8 gap-1.5 rounded-md px-3 has-[>svg]:px-2.5",lg:"h-10 rounded-md px-6 has-[>svg]:px-4",icon:"size-9"}},defaultVariants:{variant:"default",size:"default"}}),i=n.forwardRef(({className:r,variant:l,size:e,asChild:m=!1,...d},t)=>{return u(m?g:"button",{ref:t,"data-slot":"button",className:p(s({variant:l,size:e,className:r})),...d})});i.displayName="Button";import{clsx as b}from"clsx";import{twMerge as N}from"tailwind-merge";function o(...r){return N(b(r))}import{jsx as a,jsxs as c}from"react/jsx-runtime";function q({tiers:r,className:l}){return c("section",{className:o("mx-auto max-w-6xl py-12",l),children:[a("div",{className:"grid grid-cols-1 gap-6 md:grid-cols-3",children:r.map((e,m)=>c("div",{className:o("flex flex-col rounded-lg border p-6",e.highlighted&&"border-primary shadow-lg"),children:[a("div",{className:"mb-2 font-medium text-base text-muted-foreground",children:e.name}),a("div",{className:"font-semibold text-3xl",children:e.price}),e.tagline&&a("div",{className:"mt-1 text-base text-muted-foreground",children:e.tagline}),a("ul",{className:"mt-4 space-y-2 text-base",children:e.features.map((d,t)=>c("li",{className:"flex items-start gap-2",children:[a("span",{className:"mt-1 h-1.5 w-1.5 rounded-full bg-primary"}),a("span",{children:d})]},t))}),e.cta&&a("div",{className:"mt-6",children:e.cta.href?a(i,{asChild:!0,className:"w-full",children:a("a",{href:e.cta.href,children:e.cta.label})}):a(i,{className:"w-full",onClick:e.cta.onClick,children:e.cta.label})})]},m))}),a("p",{className:"mt-6 text-center text-base text-muted-foreground",children:"Usage-based tiers inspired by generous free allowances and per-unit pricing."})]})}export{q as PricingTable};
|