@fabio.caffarello/react-design-system 3.7.0 → 3.9.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +4 -2
- package/dist/granular/index.js +445 -0
- package/dist/granular/index.js.map +1 -0
- package/dist/granular/ui/components/Accordion/Accordion.js +105 -0
- package/dist/granular/ui/components/Accordion/Accordion.js.map +1 -0
- package/dist/granular/ui/components/Autocomplete/Autocomplete.js +133 -0
- package/dist/granular/ui/components/Autocomplete/Autocomplete.js.map +1 -0
- package/dist/granular/ui/components/Autocomplete/AutocompleteList.js +119 -0
- package/dist/granular/ui/components/Autocomplete/AutocompleteList.js.map +1 -0
- package/dist/granular/ui/components/Autocomplete/AutocompleteOption.js +42 -0
- package/dist/granular/ui/components/Autocomplete/AutocompleteOption.js.map +1 -0
- package/dist/granular/ui/components/Breadcrumb/Breadcrumb.js +100 -0
- package/dist/granular/ui/components/Breadcrumb/Breadcrumb.js.map +1 -0
- package/dist/granular/ui/components/Card/Card.js +113 -0
- package/dist/granular/ui/components/Card/Card.js.map +1 -0
- package/dist/granular/ui/components/Card/CardActions.js +51 -0
- package/dist/granular/ui/components/Card/CardActions.js.map +1 -0
- package/dist/granular/ui/components/Card/CardBody.js +32 -0
- package/dist/granular/ui/components/Card/CardBody.js.map +1 -0
- package/dist/granular/ui/components/Card/CardHeader.js +47 -0
- package/dist/granular/ui/components/Card/CardHeader.js.map +1 -0
- package/dist/granular/ui/components/Card/CardSubtitle.js +38 -0
- package/dist/granular/ui/components/Card/CardSubtitle.js.map +1 -0
- package/dist/granular/ui/components/Card/CardTitle.js +61 -0
- package/dist/granular/ui/components/Card/CardTitle.js.map +1 -0
- package/dist/granular/ui/components/ColorPicker/ColorPicker.js +250 -0
- package/dist/granular/ui/components/ColorPicker/ColorPicker.js.map +1 -0
- package/dist/granular/ui/components/CommandPalette/CommandPalette.js +274 -0
- package/dist/granular/ui/components/CommandPalette/CommandPalette.js.map +1 -0
- package/dist/granular/ui/components/DashboardLayout/DashboardLayout.js +37 -0
- package/dist/granular/ui/components/DashboardLayout/DashboardLayout.js.map +1 -0
- package/dist/granular/ui/components/DataGrid/DataGrid.js +155 -0
- package/dist/granular/ui/components/DataGrid/DataGrid.js.map +1 -0
- package/dist/granular/ui/components/DataTablePattern/DataTablePattern.js +113 -0
- package/dist/granular/ui/components/DataTablePattern/DataTablePattern.js.map +1 -0
- package/dist/granular/ui/components/DatePicker/DatePicker.js +126 -0
- package/dist/granular/ui/components/DatePicker/DatePicker.js.map +1 -0
- package/dist/granular/ui/components/DatePicker/DatePickerCalendar.js +294 -0
- package/dist/granular/ui/components/DatePicker/DatePickerCalendar.js.map +1 -0
- package/dist/granular/ui/components/DatePicker/DatePickerContext.js +16 -0
- package/dist/granular/ui/components/DatePicker/DatePickerContext.js.map +1 -0
- package/dist/granular/ui/components/DatePicker/DatePickerInput.js +119 -0
- package/dist/granular/ui/components/DatePicker/DatePickerInput.js.map +1 -0
- package/dist/granular/ui/components/DatePicker/DatePickerProvider.js +47 -0
- package/dist/granular/ui/components/DatePicker/DatePickerProvider.js.map +1 -0
- package/dist/granular/ui/components/Dialog/AlertDialog.js +48 -0
- package/dist/granular/ui/components/Dialog/AlertDialog.js.map +1 -0
- package/dist/granular/ui/components/Dialog/Dialog.js +36 -0
- package/dist/granular/ui/components/Dialog/Dialog.js.map +1 -0
- package/dist/granular/ui/components/Dialog/DialogClose.js +34 -0
- package/dist/granular/ui/components/Dialog/DialogClose.js.map +1 -0
- package/dist/granular/ui/components/Dialog/DialogContent.js +114 -0
- package/dist/granular/ui/components/Dialog/DialogContent.js.map +1 -0
- package/dist/granular/ui/components/Dialog/DialogDescription.js +51 -0
- package/dist/granular/ui/components/Dialog/DialogDescription.js.map +1 -0
- package/dist/granular/ui/components/Dialog/DialogFooter.js +45 -0
- package/dist/granular/ui/components/Dialog/DialogFooter.js.map +1 -0
- package/dist/granular/ui/components/Dialog/DialogHeader.js +45 -0
- package/dist/granular/ui/components/Dialog/DialogHeader.js.map +1 -0
- package/dist/granular/ui/components/Dialog/DialogTitle.js +53 -0
- package/dist/granular/ui/components/Dialog/DialogTitle.js.map +1 -0
- package/dist/granular/ui/components/Dialog/DialogTrigger.js +28 -0
- package/dist/granular/ui/components/Dialog/DialogTrigger.js.map +1 -0
- package/dist/granular/ui/components/Drawer/Drawer.js +47 -0
- package/dist/granular/ui/components/Drawer/Drawer.js.map +1 -0
- package/dist/granular/ui/components/Drawer/DrawerContent.js +140 -0
- package/dist/granular/ui/components/Drawer/DrawerContent.js.map +1 -0
- package/dist/granular/ui/components/Drawer/DrawerContext.js +21 -0
- package/dist/granular/ui/components/Drawer/DrawerContext.js.map +1 -0
- package/dist/granular/ui/components/Drawer/DrawerFooter.js +53 -0
- package/dist/granular/ui/components/Drawer/DrawerFooter.js.map +1 -0
- package/dist/granular/ui/components/Drawer/DrawerHeader.js +50 -0
- package/dist/granular/ui/components/Drawer/DrawerHeader.js.map +1 -0
- package/dist/granular/ui/components/Dropdown/Dropdown.js +243 -0
- package/dist/granular/ui/components/Dropdown/Dropdown.js.map +1 -0
- package/dist/granular/ui/components/EmptyState/EmptyState.js +102 -0
- package/dist/granular/ui/components/EmptyState/EmptyState.js.map +1 -0
- package/dist/granular/ui/components/FileUpload/FileUpload.js +342 -0
- package/dist/granular/ui/components/FileUpload/FileUpload.js.map +1 -0
- package/dist/granular/ui/components/Form/Form.js +184 -0
- package/dist/granular/ui/components/Form/Form.js.map +1 -0
- package/dist/granular/ui/components/Form/FormContext.js +19 -0
- package/dist/granular/ui/components/Form/FormContext.js.map +1 -0
- package/dist/granular/ui/components/Form/FormField.js +66 -0
- package/dist/granular/ui/components/Form/FormField.js.map +1 -0
- package/dist/granular/ui/components/Form/FormProvider.js +17 -0
- package/dist/granular/ui/components/Form/FormProvider.js.map +1 -0
- package/dist/granular/ui/components/Form/useFormFieldArray.js +29 -0
- package/dist/granular/ui/components/Form/useFormFieldArray.js.map +1 -0
- package/dist/granular/ui/components/FormWizardPattern/FormWizardPattern.js +121 -0
- package/dist/granular/ui/components/FormWizardPattern/FormWizardPattern.js.map +1 -0
- package/dist/granular/ui/components/Header/Header.js +98 -0
- package/dist/granular/ui/components/Header/Header.js.map +1 -0
- package/dist/granular/ui/components/Header/components/HeaderActions.js +21 -0
- package/dist/granular/ui/components/Header/components/HeaderActions.js.map +1 -0
- package/dist/granular/ui/components/Header/components/HeaderHamburger.js +31 -0
- package/dist/granular/ui/components/Header/components/HeaderHamburger.js.map +1 -0
- package/dist/granular/ui/components/Header/components/HeaderLogo.js +50 -0
- package/dist/granular/ui/components/Header/components/HeaderLogo.js.map +1 -0
- package/dist/granular/ui/components/Header/components/HeaderMobileMenu.js +38 -0
- package/dist/granular/ui/components/Header/components/HeaderMobileMenu.js.map +1 -0
- package/dist/granular/ui/components/Header/components/HeaderNavigation.js +27 -0
- package/dist/granular/ui/components/Header/components/HeaderNavigation.js.map +1 -0
- package/dist/granular/ui/components/Header/contexts/HeaderContext.js +49 -0
- package/dist/granular/ui/components/Header/contexts/HeaderContext.js.map +1 -0
- package/dist/granular/ui/components/LoginBox/LoginBox.js +84 -0
- package/dist/granular/ui/components/LoginBox/LoginBox.js.map +1 -0
- package/dist/granular/ui/components/Menu/Menu.js +45 -0
- package/dist/granular/ui/components/Menu/Menu.js.map +1 -0
- package/dist/granular/ui/components/Menu/MenuContent.js +94 -0
- package/dist/granular/ui/components/Menu/MenuContent.js.map +1 -0
- package/dist/granular/ui/components/Menu/MenuContext.js +21 -0
- package/dist/granular/ui/components/Menu/MenuContext.js.map +1 -0
- package/dist/granular/ui/components/Menu/MenuItem.js +93 -0
- package/dist/granular/ui/components/Menu/MenuItem.js.map +1 -0
- package/dist/granular/ui/components/Menu/MenuSeparator.js +46 -0
- package/dist/granular/ui/components/Menu/MenuSeparator.js.map +1 -0
- package/dist/granular/ui/components/Menu/MenuTrigger.js +71 -0
- package/dist/granular/ui/components/Menu/MenuTrigger.js.map +1 -0
- package/dist/granular/ui/components/Modal/Modal.js +171 -0
- package/dist/granular/ui/components/Modal/Modal.js.map +1 -0
- package/dist/granular/ui/components/MultiSelect/MultiSelect.js +193 -0
- package/dist/granular/ui/components/MultiSelect/MultiSelect.js.map +1 -0
- package/dist/granular/ui/components/Navigation/Navigation.js +141 -0
- package/dist/granular/ui/components/Navigation/Navigation.js.map +1 -0
- package/dist/granular/ui/components/PageHeader/PageHeader.js +95 -0
- package/dist/granular/ui/components/PageHeader/PageHeader.js.map +1 -0
- package/dist/granular/ui/components/Pagination/Pagination.js +156 -0
- package/dist/granular/ui/components/Pagination/Pagination.js.map +1 -0
- package/dist/granular/ui/components/Popover/Popover.js +171 -0
- package/dist/granular/ui/components/Popover/Popover.js.map +1 -0
- package/dist/granular/ui/components/Rating/Rating.js +110 -0
- package/dist/granular/ui/components/Rating/Rating.js.map +1 -0
- package/dist/granular/ui/components/SearchAndFilterPattern/SearchAndFilterPattern.js +120 -0
- package/dist/granular/ui/components/SearchAndFilterPattern/SearchAndFilterPattern.js.map +1 -0
- package/dist/granular/ui/components/SearchInput/SearchInput.js +103 -0
- package/dist/granular/ui/components/SearchInput/SearchInput.js.map +1 -0
- package/dist/granular/ui/components/SideNavbar/SideNavbar.js +143 -0
- package/dist/granular/ui/components/SideNavbar/SideNavbar.js.map +1 -0
- package/dist/granular/ui/components/SideNavbar/components/Navbar/Navbar.js +173 -0
- package/dist/granular/ui/components/SideNavbar/components/Navbar/Navbar.js.map +1 -0
- package/dist/granular/ui/components/SideNavbar/components/Navbar/NavbarGroup.js +87 -0
- package/dist/granular/ui/components/SideNavbar/components/Navbar/NavbarGroup.js.map +1 -0
- package/dist/granular/ui/components/SideNavbar/components/Navbar/NavbarItem.js +242 -0
- package/dist/granular/ui/components/SideNavbar/components/Navbar/NavbarItem.js.map +1 -0
- package/dist/granular/ui/components/SideNavbar/components/Navbar/NavbarSeparator.js +66 -0
- package/dist/granular/ui/components/SideNavbar/components/Navbar/NavbarSeparator.js.map +1 -0
- package/dist/granular/ui/components/SideNavbar/components/Navbar/NavbarToggle.js +108 -0
- package/dist/granular/ui/components/SideNavbar/components/Navbar/NavbarToggle.js.map +1 -0
- package/dist/granular/ui/components/SideNavbar/components/SideNavbarBackdrop.js +63 -0
- package/dist/granular/ui/components/SideNavbar/components/SideNavbarBackdrop.js.map +1 -0
- package/dist/granular/ui/components/SideNavbar/components/SideNavbarResizeHandle.js +113 -0
- package/dist/granular/ui/components/SideNavbar/components/SideNavbarResizeHandle.js.map +1 -0
- package/dist/granular/ui/components/SideNavbar/components/SideNavbarRoot.js +150 -0
- package/dist/granular/ui/components/SideNavbar/components/SideNavbarRoot.js.map +1 -0
- package/dist/granular/ui/components/SideNavbar/components/SideNavbarToggle.js +197 -0
- package/dist/granular/ui/components/SideNavbar/components/SideNavbarToggle.js.map +1 -0
- package/dist/granular/ui/components/SideNavbar/components/Sidebar/Sidebar.js +108 -0
- package/dist/granular/ui/components/SideNavbar/components/Sidebar/Sidebar.js.map +1 -0
- package/dist/granular/ui/components/SideNavbar/components/Sidebar/SidebarContent.js +71 -0
- package/dist/granular/ui/components/SideNavbar/components/Sidebar/SidebarContent.js.map +1 -0
- package/dist/granular/ui/components/SideNavbar/components/Sidebar/SidebarFooter.js +64 -0
- package/dist/granular/ui/components/SideNavbar/components/Sidebar/SidebarFooter.js.map +1 -0
- package/dist/granular/ui/components/SideNavbar/components/Sidebar/SidebarGroup.js +141 -0
- package/dist/granular/ui/components/SideNavbar/components/Sidebar/SidebarGroup.js.map +1 -0
- package/dist/granular/ui/components/SideNavbar/components/Sidebar/SidebarHeader.js +90 -0
- package/dist/granular/ui/components/SideNavbar/components/Sidebar/SidebarHeader.js.map +1 -0
- package/dist/granular/ui/components/SideNavbar/components/Sidebar/SidebarSlot.js +12 -0
- package/dist/granular/ui/components/SideNavbar/components/Sidebar/SidebarSlot.js.map +1 -0
- package/dist/granular/ui/components/SideNavbar/components/Sidebar/SidebarSlotContent.js +13 -0
- package/dist/granular/ui/components/SideNavbar/components/Sidebar/SidebarSlotContent.js.map +1 -0
- package/dist/granular/ui/components/SideNavbar/contexts/NavbarContext.js +20 -0
- package/dist/granular/ui/components/SideNavbar/contexts/NavbarContext.js.map +1 -0
- package/dist/granular/ui/components/SideNavbar/contexts/SideNavbarConfigContext.js +37 -0
- package/dist/granular/ui/components/SideNavbar/contexts/SideNavbarConfigContext.js.map +1 -0
- package/dist/granular/ui/components/SideNavbar/contexts/SideNavbarStateContext.js +20 -0
- package/dist/granular/ui/components/SideNavbar/contexts/SideNavbarStateContext.js.map +1 -0
- package/dist/granular/ui/components/SideNavbar/contexts/SideNavbarThemeContext.js +28 -0
- package/dist/granular/ui/components/SideNavbar/contexts/SideNavbarThemeContext.js.map +1 -0
- package/dist/granular/ui/components/SideNavbar/contexts/SideNavbarToggleContext.js +19 -0
- package/dist/granular/ui/components/SideNavbar/contexts/SideNavbarToggleContext.js.map +1 -0
- package/dist/granular/ui/components/SideNavbar/contexts/SidebarContext.js +20 -0
- package/dist/granular/ui/components/SideNavbar/contexts/SidebarContext.js.map +1 -0
- package/dist/granular/ui/components/SideNavbar/contexts/SidebarSlotContext.js +22 -0
- package/dist/granular/ui/components/SideNavbar/contexts/SidebarSlotContext.js.map +1 -0
- package/dist/granular/ui/components/SideNavbar/hooks/useFocusManagement.js +43 -0
- package/dist/granular/ui/components/SideNavbar/hooks/useFocusManagement.js.map +1 -0
- package/dist/granular/ui/components/SideNavbar/hooks/useGroupState.js +59 -0
- package/dist/granular/ui/components/SideNavbar/hooks/useGroupState.js.map +1 -0
- package/dist/granular/ui/components/SideNavbar/hooks/useKeyboardShortcut.js +34 -0
- package/dist/granular/ui/components/SideNavbar/hooks/useKeyboardShortcut.js.map +1 -0
- package/dist/granular/ui/components/SideNavbar/hooks/useResize.js +58 -0
- package/dist/granular/ui/components/SideNavbar/hooks/useResize.js.map +1 -0
- package/dist/granular/ui/components/SideNavbar/hooks/useResponsiveSidebar.js +35 -0
- package/dist/granular/ui/components/SideNavbar/hooks/useResponsiveSidebar.js.map +1 -0
- package/dist/granular/ui/components/SideNavbar/hooks/useSideNavbar.js +21 -0
- package/dist/granular/ui/components/SideNavbar/hooks/useSideNavbar.js.map +1 -0
- package/dist/granular/ui/components/SideNavbar/hooks/useSideNavbarContent.js +19 -0
- package/dist/granular/ui/components/SideNavbar/hooks/useSideNavbarContent.js.map +1 -0
- package/dist/granular/ui/components/SideNavbar/hooks/useSideNavbarNavigation.js +21 -0
- package/dist/granular/ui/components/SideNavbar/hooks/useSideNavbarNavigation.js.map +1 -0
- package/dist/granular/ui/components/SideNavbar/providers/SideNavbarConfigProvider.js +61 -0
- package/dist/granular/ui/components/SideNavbar/providers/SideNavbarConfigProvider.js.map +1 -0
- package/dist/granular/ui/components/SideNavbar/providers/SideNavbarProvider.js +82 -0
- package/dist/granular/ui/components/SideNavbar/providers/SideNavbarProvider.js.map +1 -0
- package/dist/granular/ui/components/SideNavbar/providers/SideNavbarStateProvider.js +165 -0
- package/dist/granular/ui/components/SideNavbar/providers/SideNavbarStateProvider.js.map +1 -0
- package/dist/granular/ui/components/SideNavbar/providers/SideNavbarThemeProvider.js +34 -0
- package/dist/granular/ui/components/SideNavbar/providers/SideNavbarThemeProvider.js.map +1 -0
- package/dist/granular/ui/components/SideNavbar/providers/SidebarSlotProvider.js +28 -0
- package/dist/granular/ui/components/SideNavbar/providers/SidebarSlotProvider.js.map +1 -0
- package/dist/granular/ui/components/SideNavbar/utils/parseKeyboardShortcut.js +60 -0
- package/dist/granular/ui/components/SideNavbar/utils/parseKeyboardShortcut.js.map +1 -0
- package/dist/granular/ui/components/SideNavbar/utils/parseWidth.js +19 -0
- package/dist/granular/ui/components/SideNavbar/utils/parseWidth.js.map +1 -0
- package/dist/granular/ui/components/Stat/Stat.js +84 -0
- package/dist/granular/ui/components/Stat/Stat.js.map +1 -0
- package/dist/granular/ui/components/Stat/StatGroup.js +61 -0
- package/dist/granular/ui/components/Stat/StatGroup.js.map +1 -0
- package/dist/granular/ui/components/Stepper/Stepper.js +248 -0
- package/dist/granular/ui/components/Stepper/Stepper.js.map +1 -0
- package/dist/granular/ui/components/Table/Table.js +162 -0
- package/dist/granular/ui/components/Table/Table.js.map +1 -0
- package/dist/granular/ui/components/Table/TableActions/TableActions.js +67 -0
- package/dist/granular/ui/components/Table/TableActions/TableActions.js.map +1 -0
- package/dist/granular/ui/components/Table/TableActions.js +44 -0
- package/dist/granular/ui/components/Table/TableActions.js.map +1 -0
- package/dist/granular/ui/components/Table/TableBody.js +134 -0
- package/dist/granular/ui/components/Table/TableBody.js.map +1 -0
- package/dist/granular/ui/components/Table/TableCell.js +40 -0
- package/dist/granular/ui/components/Table/TableCell.js.map +1 -0
- package/dist/granular/ui/components/Table/TableContext.js +19 -0
- package/dist/granular/ui/components/Table/TableContext.js.map +1 -0
- package/dist/granular/ui/components/Table/TableEmptyState.js +62 -0
- package/dist/granular/ui/components/Table/TableEmptyState.js.map +1 -0
- package/dist/granular/ui/components/Table/TableFilters/TableFilters.js +189 -0
- package/dist/granular/ui/components/Table/TableFilters/TableFilters.js.map +1 -0
- package/dist/granular/ui/components/Table/TableFilters.js +48 -0
- package/dist/granular/ui/components/Table/TableFilters.js.map +1 -0
- package/dist/granular/ui/components/Table/TableHeader.js +45 -0
- package/dist/granular/ui/components/Table/TableHeader.js.map +1 -0
- package/dist/granular/ui/components/Table/TableHeaderCell.js +117 -0
- package/dist/granular/ui/components/Table/TableHeaderCell.js.map +1 -0
- package/dist/granular/ui/components/Table/TableHeaderRow.js +89 -0
- package/dist/granular/ui/components/Table/TableHeaderRow.js.map +1 -0
- package/dist/granular/ui/components/Table/TablePagination/TablePagination.js +216 -0
- package/dist/granular/ui/components/Table/TablePagination/TablePagination.js.map +1 -0
- package/dist/granular/ui/components/Table/TablePagination.js +56 -0
- package/dist/granular/ui/components/Table/TablePagination.js.map +1 -0
- package/dist/granular/ui/components/Table/TableProvider.js +244 -0
- package/dist/granular/ui/components/Table/TableProvider.js.map +1 -0
- package/dist/granular/ui/components/Table/TableRow.js +95 -0
- package/dist/granular/ui/components/Table/TableRow.js.map +1 -0
- package/dist/granular/ui/components/Table/useColumnResizing.js +71 -0
- package/dist/granular/ui/components/Table/useColumnResizing.js.map +1 -0
- package/dist/granular/ui/components/Table/useVirtualScrolling.js +50 -0
- package/dist/granular/ui/components/Table/useVirtualScrolling.js.map +1 -0
- package/dist/granular/ui/components/Tabs/Tabs.js +39 -0
- package/dist/granular/ui/components/Tabs/Tabs.js.map +1 -0
- package/dist/granular/ui/components/Tabs/TabsContent.js +59 -0
- package/dist/granular/ui/components/Tabs/TabsContent.js.map +1 -0
- package/dist/granular/ui/components/Tabs/TabsContext.js +18 -0
- package/dist/granular/ui/components/Tabs/TabsContext.js.map +1 -0
- package/dist/granular/ui/components/Tabs/TabsList.js +84 -0
- package/dist/granular/ui/components/Tabs/TabsList.js.map +1 -0
- package/dist/granular/ui/components/Tabs/TabsProvider.js +31 -0
- package/dist/granular/ui/components/Tabs/TabsProvider.js.map +1 -0
- package/dist/granular/ui/components/Tabs/TabsTrigger.js +103 -0
- package/dist/granular/ui/components/Tabs/TabsTrigger.js.map +1 -0
- package/dist/granular/ui/components/TimePicker/TimePicker.js +216 -0
- package/dist/granular/ui/components/TimePicker/TimePicker.js.map +1 -0
- package/dist/granular/ui/components/Timeline/Timeline.js +152 -0
- package/dist/granular/ui/components/Timeline/Timeline.js.map +1 -0
- package/dist/granular/ui/components/Toast/Toast.js +159 -0
- package/dist/granular/ui/components/Toast/Toast.js.map +1 -0
- package/dist/granular/ui/components/Toast/ToastContainer.js +41 -0
- package/dist/granular/ui/components/Toast/ToastContainer.js.map +1 -0
- package/dist/granular/ui/components/Toast/useToast.js +64 -0
- package/dist/granular/ui/components/Toast/useToast.js.map +1 -0
- package/dist/granular/ui/hooks/createGenericContext.js +27 -0
- package/dist/granular/ui/hooks/createGenericContext.js.map +1 -0
- package/dist/granular/ui/hooks/focusable.js +14 -0
- package/dist/granular/ui/hooks/focusable.js.map +1 -0
- package/dist/granular/ui/hooks/useAutoFocus.js +23 -0
- package/dist/granular/ui/hooks/useAutoFocus.js.map +1 -0
- package/dist/granular/ui/hooks/useCollapsible.js +37 -0
- package/dist/granular/ui/hooks/useCollapsible.js.map +1 -0
- package/dist/granular/ui/hooks/useFocusRestore.js +20 -0
- package/dist/granular/ui/hooks/useFocusRestore.js.map +1 -0
- package/dist/granular/ui/hooks/useFocusTrap.js +31 -0
- package/dist/granular/ui/hooks/useFocusTrap.js.map +1 -0
- package/dist/granular/ui/hooks/useScrollSpy.js +23 -0
- package/dist/granular/ui/hooks/useScrollSpy.js.map +1 -0
- package/dist/granular/ui/layouts/Container/Container.js +73 -0
- package/dist/granular/ui/layouts/Container/Container.js.map +1 -0
- package/dist/granular/ui/layouts/Stack/Stack.js +79 -0
- package/dist/granular/ui/layouts/Stack/Stack.js.map +1 -0
- package/dist/granular/ui/primitives/Avatar/Avatar.js +122 -0
- package/dist/granular/ui/primitives/Avatar/Avatar.js.map +1 -0
- package/dist/granular/ui/primitives/Avatar/AvatarGroup.js +97 -0
- package/dist/granular/ui/primitives/Avatar/AvatarGroup.js.map +1 -0
- package/dist/granular/ui/primitives/Badge/Badge.js +212 -0
- package/dist/granular/ui/primitives/Badge/Badge.js.map +1 -0
- package/dist/granular/ui/primitives/Button/Button.js +288 -0
- package/dist/granular/ui/primitives/Button/Button.js.map +1 -0
- package/dist/granular/ui/primitives/Checkbox/Checkbox.js +129 -0
- package/dist/granular/ui/primitives/Checkbox/Checkbox.js.map +1 -0
- package/dist/granular/ui/primitives/Chip/Chip.js +206 -0
- package/dist/granular/ui/primitives/Chip/Chip.js.map +1 -0
- package/dist/granular/ui/primitives/Collapsible/Collapsible.js +115 -0
- package/dist/granular/ui/primitives/Collapsible/Collapsible.js.map +1 -0
- package/dist/granular/ui/primitives/ErrorMessage/ErrorMessage.js +54 -0
- package/dist/granular/ui/primitives/ErrorMessage/ErrorMessage.js.map +1 -0
- package/dist/granular/ui/primitives/Info/Info.js +57 -0
- package/dist/granular/ui/primitives/Info/Info.js.map +1 -0
- package/dist/granular/ui/primitives/Input/Input.js +351 -0
- package/dist/granular/ui/primitives/Input/Input.js.map +1 -0
- package/dist/granular/ui/primitives/Label/Label.js +61 -0
- package/dist/granular/ui/primitives/Label/Label.js.map +1 -0
- package/dist/granular/ui/primitives/NavLink/NavLink.js +229 -0
- package/dist/granular/ui/primitives/NavLink/NavLink.js.map +1 -0
- package/dist/granular/ui/primitives/NavLink/hooks/useNavLink.js +15 -0
- package/dist/granular/ui/primitives/NavLink/hooks/useNavLink.js.map +1 -0
- package/dist/granular/ui/primitives/Progress/Progress.js +182 -0
- package/dist/granular/ui/primitives/Progress/Progress.js.map +1 -0
- package/dist/granular/ui/primitives/Radio/Radio.js +118 -0
- package/dist/granular/ui/primitives/Radio/Radio.js.map +1 -0
- package/dist/granular/ui/primitives/Select/Select.js +210 -0
- package/dist/granular/ui/primitives/Select/Select.js.map +1 -0
- package/dist/granular/ui/primitives/Separator/Separator.js +69 -0
- package/dist/granular/ui/primitives/Separator/Separator.js.map +1 -0
- package/dist/granular/ui/primitives/Skeleton/Skeleton.js +87 -0
- package/dist/granular/ui/primitives/Skeleton/Skeleton.js.map +1 -0
- package/dist/granular/ui/primitives/Slider/Slider.js +291 -0
- package/dist/granular/ui/primitives/Slider/Slider.js.map +1 -0
- package/dist/granular/ui/primitives/Spinner/Spinner.js +95 -0
- package/dist/granular/ui/primitives/Spinner/Spinner.js.map +1 -0
- package/dist/granular/ui/primitives/Switch/Switch.js +212 -0
- package/dist/granular/ui/primitives/Switch/Switch.js.map +1 -0
- package/dist/granular/ui/primitives/Text/Text.js +118 -0
- package/dist/granular/ui/primitives/Text/Text.js.map +1 -0
- package/dist/granular/ui/primitives/Textarea/Textarea.js +129 -0
- package/dist/granular/ui/primitives/Textarea/Textarea.js.map +1 -0
- package/dist/granular/ui/primitives/Tooltip/Tooltip.js +227 -0
- package/dist/granular/ui/primitives/Tooltip/Tooltip.js.map +1 -0
- package/dist/granular/ui/providers/AppProvider.js +50 -0
- package/dist/granular/ui/providers/AppProvider.js.map +1 -0
- package/dist/granular/ui/providers/ConfigProvider.js +95 -0
- package/dist/granular/ui/providers/ConfigProvider.js.map +1 -0
- package/dist/granular/ui/providers/DialogContext.js +20 -0
- package/dist/granular/ui/providers/DialogContext.js.map +1 -0
- package/dist/granular/ui/providers/DialogProvider.js +32 -0
- package/dist/granular/ui/providers/DialogProvider.js.map +1 -0
- package/dist/granular/ui/providers/ThemeProvider.js +56 -0
- package/dist/granular/ui/providers/ThemeProvider.js.map +1 -0
- package/dist/granular/ui/providers/ToastContext.js +20 -0
- package/dist/granular/ui/providers/ToastContext.js.map +1 -0
- package/dist/granular/ui/providers/ToastProvider.js +47 -0
- package/dist/granular/ui/providers/ToastProvider.js.map +1 -0
- package/dist/granular/ui/providers/providers-bundle.js +23 -0
- package/dist/granular/ui/providers/providers-bundle.js.map +1 -0
- package/dist/granular/ui/tokens/animations.js +106 -0
- package/dist/granular/ui/tokens/animations.js.map +1 -0
- package/dist/granular/ui/tokens/borders.js +54 -0
- package/dist/granular/ui/tokens/borders.js.map +1 -0
- package/dist/granular/ui/tokens/breakpoints.js +43 -0
- package/dist/granular/ui/tokens/breakpoints.js.map +1 -0
- package/dist/granular/ui/tokens/colors/brand.js +67 -0
- package/dist/granular/ui/tokens/colors/brand.js.map +1 -0
- package/dist/granular/ui/tokens/colors/index.js +25 -0
- package/dist/granular/ui/tokens/colors/index.js.map +1 -0
- package/dist/granular/ui/tokens/colors/primitives.js +320 -0
- package/dist/granular/ui/tokens/colors/primitives.js.map +1 -0
- package/dist/granular/ui/tokens/colors/semantic.js +212 -0
- package/dist/granular/ui/tokens/colors/semantic.js.map +1 -0
- package/dist/granular/ui/tokens/colors/types.js +18 -0
- package/dist/granular/ui/tokens/colors/types.js.map +1 -0
- package/dist/granular/ui/tokens/colors/utils.js +131 -0
- package/dist/granular/ui/tokens/colors/utils.js.map +1 -0
- package/dist/granular/ui/tokens/opacity.js +59 -0
- package/dist/granular/ui/tokens/opacity.js.map +1 -0
- package/dist/granular/ui/tokens/radius.js +76 -0
- package/dist/granular/ui/tokens/radius.js.map +1 -0
- package/dist/granular/ui/tokens/shadows.js +63 -0
- package/dist/granular/ui/tokens/shadows.js.map +1 -0
- package/dist/granular/ui/tokens/sidebar.js +92 -0
- package/dist/granular/ui/tokens/sidebar.js.map +1 -0
- package/dist/granular/ui/tokens/spacing.js +143 -0
- package/dist/granular/ui/tokens/spacing.js.map +1 -0
- package/dist/granular/ui/tokens/switch.js +51 -0
- package/dist/granular/ui/tokens/switch.js.map +1 -0
- package/dist/granular/ui/tokens/typography.js +146 -0
- package/dist/granular/ui/tokens/typography.js.map +1 -0
- package/dist/granular/ui/tokens/z-index.js +79 -0
- package/dist/granular/ui/tokens/z-index.js.map +1 -0
- package/dist/granular/ui/utils/cn.js +10 -0
- package/dist/granular/ui/utils/cn.js.map +1 -0
- package/dist/granular/ui/utils/cva.js +14 -0
- package/dist/granular/ui/utils/cva.js.map +1 -0
- package/dist/granular/ui/utils/mergeRefs.js +11 -0
- package/dist/granular/ui/utils/mergeRefs.js.map +1 -0
- package/dist/granular/vite.svg +1 -0
- package/dist/hooks/index.cjs +2 -0
- package/dist/hooks/index.cjs.map +1 -0
- package/dist/hooks/index.js +23 -0
- package/dist/hooks/index.js.map +1 -0
- package/dist/index.cjs +44 -70
- package/dist/index.cjs.map +1 -1
- package/dist/index.js +1900 -1885
- package/dist/index.js.map +1 -1
- package/dist/react-design-system.css +1 -1
- package/dist/server/index.cjs +23 -23
- package/dist/server/index.cjs.map +1 -1
- package/dist/server/index.js +863 -1180
- package/dist/server/index.js.map +1 -1
- package/dist/ui/components/Accordion/Accordion.d.ts +9 -1
- package/dist/ui/hooks-entry.d.ts +2 -0
- package/dist/ui/utils/tailwind-safelist.d.ts +3 -1
- package/package.json +24 -13
|
@@ -0,0 +1,102 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
var v = Object.defineProperty, T = Object.defineProperties;
|
|
3
|
+
var C = Object.getOwnPropertyDescriptors;
|
|
4
|
+
var m = Object.getOwnPropertySymbols;
|
|
5
|
+
var h = Object.prototype.hasOwnProperty, d = Object.prototype.propertyIsEnumerable;
|
|
6
|
+
var n = (e, t, r) => t in e ? v(e, t, { enumerable: !0, configurable: !0, writable: !0, value: r }) : e[t] = r, f = (e, t) => {
|
|
7
|
+
for (var r in t || (t = {}))
|
|
8
|
+
h.call(t, r) && n(e, r, t[r]);
|
|
9
|
+
if (m)
|
|
10
|
+
for (var r of m(t))
|
|
11
|
+
d.call(t, r) && n(e, r, t[r]);
|
|
12
|
+
return e;
|
|
13
|
+
}, x = (e, t) => T(e, C(t));
|
|
14
|
+
var y = (e, t) => {
|
|
15
|
+
var r = {};
|
|
16
|
+
for (var s in e)
|
|
17
|
+
h.call(e, s) && t.indexOf(s) < 0 && (r[s] = e[s]);
|
|
18
|
+
if (e != null && m)
|
|
19
|
+
for (var s of m(e))
|
|
20
|
+
t.indexOf(s) < 0 && d.call(e, s) && (r[s] = e[s]);
|
|
21
|
+
return r;
|
|
22
|
+
};
|
|
23
|
+
import { jsxs as F, jsx as i } from "react/jsx-runtime";
|
|
24
|
+
import { cn as o } from "../../utils/cn.js";
|
|
25
|
+
import { getSpacingClass as a } from "../../tokens/spacing.js";
|
|
26
|
+
import g from "../../primitives/Text/Text.js";
|
|
27
|
+
import { getTypographyWeightFromFontWeight as I, getTypographySize as u } from "../../tokens/typography.js";
|
|
28
|
+
import { Button as W } from "../../primitives/Button/Button.js";
|
|
29
|
+
function G($) {
|
|
30
|
+
var p = $, {
|
|
31
|
+
title: e,
|
|
32
|
+
message: t,
|
|
33
|
+
actionLabel: r,
|
|
34
|
+
onAction: s,
|
|
35
|
+
illustration: l,
|
|
36
|
+
variant: c = "default",
|
|
37
|
+
className: b = ""
|
|
38
|
+
} = p, w = y(p, [
|
|
39
|
+
"title",
|
|
40
|
+
"message",
|
|
41
|
+
"actionLabel",
|
|
42
|
+
"onAction",
|
|
43
|
+
"illustration",
|
|
44
|
+
"variant",
|
|
45
|
+
"className"
|
|
46
|
+
]);
|
|
47
|
+
const N = o(
|
|
48
|
+
"flex",
|
|
49
|
+
"flex-col",
|
|
50
|
+
"items-center",
|
|
51
|
+
"justify-center",
|
|
52
|
+
"text-center",
|
|
53
|
+
a("xl", "py"),
|
|
54
|
+
a("base", "px"),
|
|
55
|
+
b
|
|
56
|
+
), S = c === "withAction" || r && s, j = c === "withIllustration" || l;
|
|
57
|
+
return /* @__PURE__ */ F(
|
|
58
|
+
"div",
|
|
59
|
+
x(f({
|
|
60
|
+
className: N,
|
|
61
|
+
role: "status",
|
|
62
|
+
"aria-live": "polite",
|
|
63
|
+
"aria-label": `${e}. ${t}`
|
|
64
|
+
}, w), {
|
|
65
|
+
children: [
|
|
66
|
+
j && l && /* @__PURE__ */ i("div", { className: o(a("base", "mb")), "aria-hidden": "true", children: l }),
|
|
67
|
+
/* @__PURE__ */ i(
|
|
68
|
+
g,
|
|
69
|
+
{
|
|
70
|
+
as: "h3",
|
|
71
|
+
className: o(
|
|
72
|
+
u("h4"),
|
|
73
|
+
I("semibold"),
|
|
74
|
+
"text-fg-primary",
|
|
75
|
+
a("sm", "mb")
|
|
76
|
+
),
|
|
77
|
+
children: e
|
|
78
|
+
}
|
|
79
|
+
),
|
|
80
|
+
/* @__PURE__ */ i(
|
|
81
|
+
g,
|
|
82
|
+
{
|
|
83
|
+
as: "p",
|
|
84
|
+
className: o(
|
|
85
|
+
u("bodySmall"),
|
|
86
|
+
"text-fg-secondary",
|
|
87
|
+
a("md", "mb"),
|
|
88
|
+
"max-w-sm"
|
|
89
|
+
// Max width utility - justified as layout constraint
|
|
90
|
+
),
|
|
91
|
+
children: t
|
|
92
|
+
}
|
|
93
|
+
),
|
|
94
|
+
S && r && s && /* @__PURE__ */ i(W, { variant: "primary", onClick: s, children: r })
|
|
95
|
+
]
|
|
96
|
+
})
|
|
97
|
+
);
|
|
98
|
+
}
|
|
99
|
+
export {
|
|
100
|
+
G as default
|
|
101
|
+
};
|
|
102
|
+
//# sourceMappingURL=EmptyState.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"EmptyState.js","sources":["../../../../../src/ui/components/EmptyState/EmptyState.tsx"],"sourcesContent":["\"use client\";\n\nimport type { HTMLAttributes, ReactNode } from \"react\";\nimport { Button } from \"../../primitives\";\nimport { Text } from \"../../primitives\";\nimport { cn } from \"../../utils\";\nimport {\n getSpacingClass,\n getTypographySize,\n getTypographyWeightFromFontWeight,\n} from \"../../tokens\";\n\nexport interface EmptyStateProps extends HTMLAttributes<HTMLDivElement> {\n title: string;\n message: string;\n actionLabel?: string;\n onAction?: () => void;\n illustration?: ReactNode;\n variant?: \"default\" | \"withAction\" | \"withIllustration\";\n}\n\n/**\n * EmptyState Component\n *\n * A component for displaying empty states when there's no content to show.\n * Follows Atomic Design principles as a Molecule component.\n *\n * @example\n * ```tsx\n * <EmptyState\n * title=\"No epics yet\"\n * message=\"Get started by creating your first epic\"\n * actionLabel=\"Create Epic\"\n * onAction={() => router.push('/epics/new')}\n * />\n * ```\n */\nexport default function EmptyState({\n title,\n message,\n actionLabel,\n onAction,\n illustration,\n variant = \"default\",\n className = \"\",\n ...props\n}: EmptyStateProps) {\n const classes = cn(\n \"flex\",\n \"flex-col\",\n \"items-center\",\n \"justify-center\",\n \"text-center\",\n getSpacingClass(\"xl\", \"py\"),\n getSpacingClass(\"base\", \"px\"),\n className,\n );\n\n const showAction = variant === \"withAction\" || (actionLabel && onAction);\n const showIllustration = variant === \"withIllustration\" || illustration;\n\n return (\n <div\n className={classes}\n role=\"status\"\n aria-live=\"polite\"\n aria-label={`${title}. ${message}`}\n {...props}\n >\n {showIllustration && illustration && (\n <div className={cn(getSpacingClass(\"base\", \"mb\"))} aria-hidden=\"true\">\n {illustration}\n </div>\n )}\n\n <Text\n as=\"h3\"\n className={cn(\n getTypographySize(\"h4\"),\n getTypographyWeightFromFontWeight(\"semibold\"),\n \"text-fg-primary\",\n getSpacingClass(\"sm\", \"mb\"),\n )}\n >\n {title}\n </Text>\n\n <Text\n as=\"p\"\n className={cn(\n getTypographySize(\"bodySmall\"),\n \"text-fg-secondary\",\n getSpacingClass(\"md\", \"mb\"),\n \"max-w-sm\", // Max width utility - justified as layout constraint\n )}\n >\n {message}\n </Text>\n\n {showAction && actionLabel && onAction && (\n <Button variant=\"primary\" onClick={onAction}>\n {actionLabel}\n </Button>\n )}\n </div>\n );\n}\n"],"names":["EmptyState","_a","_b","title","message","actionLabel","onAction","illustration","variant","className","props","__objRest","classes","cn","getSpacingClass","showAction","showIllustration","jsxs","__spreadProps","__spreadValues","jsx","Text","getTypographySize","getTypographyWeightFromFontWeight","Button"],"mappings":";;;;;;;;;;;;;;;;;;;;;;;;;;;;AAqCA,SAAwBA,EAAWC,GASf;AATe,MAAAC,IAAAD,GACjC;AAAA,WAAAE;AAAA,IACA,SAAAC;AAAA,IACA,aAAAC;AAAA,IACA,UAAAC;AAAA,IACA,cAAAC;AAAA,IACA,SAAAC,IAAU;AAAA,IACV,WAAAC,IAAY;AAAA,MAPqBP,GAQ9BQ,IAAAC,EAR8BT,GAQ9B;AAAA,IAPH;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA;AAGA,QAAMU,IAAUC;AAAA,IACd;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACAC,EAAgB,MAAM,IAAI;AAAA,IAC1BA,EAAgB,QAAQ,IAAI;AAAA,IAC5BL;AAAA,EAAA,GAGIM,IAAaP,MAAY,gBAAiBH,KAAeC,GACzDU,IAAmBR,MAAY,sBAAsBD;AAE3D,SACE,gBAAAU;AAAA,IAAC;AAAA,IAAAC,EAAAC,EAAA;AAAA,MACC,WAAWP;AAAA,MACX,MAAK;AAAA,MACL,aAAU;AAAA,MACV,cAAY,GAAGT,CAAK,KAAKC,CAAO;AAAA,OAC5BM,IALL;AAAA,MAOE,UAAA;AAAA,QAAAM,KAAoBT,KACnB,gBAAAa,EAAC,OAAA,EAAI,WAAWP,EAAGC,EAAgB,QAAQ,IAAI,CAAC,GAAG,eAAY,QAC5D,UAAAP,GACH;AAAA,QAGF,gBAAAa;AAAA,UAACC;AAAA,UAAA;AAAA,YACC,IAAG;AAAA,YACH,WAAWR;AAAA,cACTS,EAAkB,IAAI;AAAA,cACtBC,EAAkC,UAAU;AAAA,cAC5C;AAAA,cACAT,EAAgB,MAAM,IAAI;AAAA,YAAA;AAAA,YAG3B,UAAAX;AAAA,UAAA;AAAA,QAAA;AAAA,QAGH,gBAAAiB;AAAA,UAACC;AAAA,UAAA;AAAA,YACC,IAAG;AAAA,YACH,WAAWR;AAAA,cACTS,EAAkB,WAAW;AAAA,cAC7B;AAAA,cACAR,EAAgB,MAAM,IAAI;AAAA,cAC1B;AAAA;AAAA,YAAA;AAAA,YAGD,UAAAV;AAAA,UAAA;AAAA,QAAA;AAAA,QAGFW,KAAcV,KAAeC,KAC5B,gBAAAc,EAACI,KAAO,SAAQ,WAAU,SAASlB,GAChC,UAAAD,EAAA,CACH;AAAA,MAAA;AAAA,IAAA;AAAA,EAAA;AAIR;"}
|
|
@@ -0,0 +1,342 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
var _ = Object.defineProperty, P = Object.defineProperties;
|
|
3
|
+
var U = Object.getOwnPropertyDescriptors;
|
|
4
|
+
var T = Object.getOwnPropertySymbols;
|
|
5
|
+
var ee = Object.prototype.hasOwnProperty, re = Object.prototype.propertyIsEnumerable;
|
|
6
|
+
var W = (n, c, a) => c in n ? _(n, c, { enumerable: !0, configurable: !0, writable: !0, value: a }) : n[c] = a, C = (n, c) => {
|
|
7
|
+
for (var a in c || (c = {}))
|
|
8
|
+
ee.call(c, a) && W(n, a, c[a]);
|
|
9
|
+
if (T)
|
|
10
|
+
for (var a of T(c))
|
|
11
|
+
re.call(c, a) && W(n, a, c[a]);
|
|
12
|
+
return n;
|
|
13
|
+
}, O = (n, c) => P(n, U(c));
|
|
14
|
+
import { jsxs as l, jsx as t } from "react/jsx-runtime";
|
|
15
|
+
import { useState as S, useRef as se } from "react";
|
|
16
|
+
import { Upload as te, File as ae, AlertCircle as ce, CheckCircle2 as ne, X as oe } from "lucide-react";
|
|
17
|
+
import { Button as ie } from "../../primitives/Button/Button.js";
|
|
18
|
+
import le from "../../primitives/Progress/Progress.js";
|
|
19
|
+
import { cn as r } from "../../utils/cn.js";
|
|
20
|
+
import { getSpacingClass as o } from "../../tokens/spacing.js";
|
|
21
|
+
import { getTypographyWeightFromFontWeight as z, getTypographySizeFromFontSize as m } from "../../tokens/typography.js";
|
|
22
|
+
import { getAnimationClass as me } from "../../tokens/animations.js";
|
|
23
|
+
import { getRadiusClass as A } from "../../tokens/radius.js";
|
|
24
|
+
function De({
|
|
25
|
+
accept: n,
|
|
26
|
+
multiple: c = !1,
|
|
27
|
+
maxSize: a,
|
|
28
|
+
maxFiles: B,
|
|
29
|
+
onFilesChange: g,
|
|
30
|
+
onFileRemove: h,
|
|
31
|
+
showPreview: F = !0,
|
|
32
|
+
showProgress: x = !1,
|
|
33
|
+
disabled: d = !1,
|
|
34
|
+
className: E = "",
|
|
35
|
+
label: v,
|
|
36
|
+
description: N
|
|
37
|
+
}) {
|
|
38
|
+
const [p, y] = S([]), [b, D] = S(!1), u = se(null), w = (e) => {
|
|
39
|
+
if (e === 0) return "0 Bytes";
|
|
40
|
+
const s = 1024, i = ["Bytes", "KB", "MB", "GB"], f = Math.floor(Math.log(e) / Math.log(s));
|
|
41
|
+
return Math.round(e / Math.pow(s, f) * 100) / 100 + " " + i[f];
|
|
42
|
+
}, G = (e) => a && e.size > a ? `File size exceeds ${w(a)}` : null, $ = (e) => {
|
|
43
|
+
const s = Array.from(e), i = [];
|
|
44
|
+
return s.forEach((f) => {
|
|
45
|
+
const k = G(f), j = `${Date.now()}-${Math.random().toString(36).slice(2, 11)}`, V = {
|
|
46
|
+
file: f,
|
|
47
|
+
id: j,
|
|
48
|
+
error: k != null ? k : void 0,
|
|
49
|
+
progress: x ? 0 : void 0
|
|
50
|
+
};
|
|
51
|
+
if (F && f.type.startsWith("image/")) {
|
|
52
|
+
const L = new FileReader();
|
|
53
|
+
L.onload = (Y) => {
|
|
54
|
+
y(
|
|
55
|
+
(Z) => Z.map(
|
|
56
|
+
(M) => {
|
|
57
|
+
var R;
|
|
58
|
+
return M.id === j ? O(C({}, M), { preview: (R = Y.target) == null ? void 0 : R.result }) : M;
|
|
59
|
+
}
|
|
60
|
+
)
|
|
61
|
+
);
|
|
62
|
+
}, L.readAsDataURL(f);
|
|
63
|
+
}
|
|
64
|
+
i.push(V);
|
|
65
|
+
}), i;
|
|
66
|
+
}, I = (e) => {
|
|
67
|
+
const s = c ? [...p, ...e] : e, i = B ? s.slice(0, B) : s;
|
|
68
|
+
y(i), g == null || g(i);
|
|
69
|
+
}, K = (e) => {
|
|
70
|
+
if (e.preventDefault(), D(!1), d) return;
|
|
71
|
+
const s = e.dataTransfer.files;
|
|
72
|
+
if (s.length > 0) {
|
|
73
|
+
const i = $(s);
|
|
74
|
+
I(i);
|
|
75
|
+
}
|
|
76
|
+
}, X = (e) => {
|
|
77
|
+
e.preventDefault(), d || D(!0);
|
|
78
|
+
}, q = (e) => {
|
|
79
|
+
e.preventDefault(), D(!1);
|
|
80
|
+
}, H = (e) => {
|
|
81
|
+
if (e.target.files && e.target.files.length > 0) {
|
|
82
|
+
const s = $(e.target.files);
|
|
83
|
+
I(s);
|
|
84
|
+
}
|
|
85
|
+
u.current && (u.current.value = "");
|
|
86
|
+
}, J = (e) => {
|
|
87
|
+
const s = p.filter((i) => i.id !== e);
|
|
88
|
+
y(s), g == null || g(s), h == null || h(e);
|
|
89
|
+
}, Q = () => {
|
|
90
|
+
var e;
|
|
91
|
+
d || (e = u.current) == null || e.click();
|
|
92
|
+
};
|
|
93
|
+
return /* @__PURE__ */ l(
|
|
94
|
+
"div",
|
|
95
|
+
{
|
|
96
|
+
className: r(
|
|
97
|
+
o("lg", "gap"),
|
|
98
|
+
"flex",
|
|
99
|
+
"flex-col",
|
|
100
|
+
E
|
|
101
|
+
),
|
|
102
|
+
children: [
|
|
103
|
+
(v || N) && /* @__PURE__ */ l("div", { children: [
|
|
104
|
+
v && /* @__PURE__ */ t(
|
|
105
|
+
"label",
|
|
106
|
+
{
|
|
107
|
+
className: r(
|
|
108
|
+
"block",
|
|
109
|
+
m("sm"),
|
|
110
|
+
z("medium"),
|
|
111
|
+
"text-fg-primary",
|
|
112
|
+
o("xs", "mb")
|
|
113
|
+
),
|
|
114
|
+
children: v
|
|
115
|
+
}
|
|
116
|
+
),
|
|
117
|
+
N && /* @__PURE__ */ t(
|
|
118
|
+
"p",
|
|
119
|
+
{
|
|
120
|
+
className: r(
|
|
121
|
+
m("sm"),
|
|
122
|
+
"text-fg-secondary"
|
|
123
|
+
),
|
|
124
|
+
children: N
|
|
125
|
+
}
|
|
126
|
+
)
|
|
127
|
+
] }),
|
|
128
|
+
/* @__PURE__ */ l(
|
|
129
|
+
"div",
|
|
130
|
+
{
|
|
131
|
+
onDrop: K,
|
|
132
|
+
onDragOver: X,
|
|
133
|
+
onDragLeave: q,
|
|
134
|
+
onClick: Q,
|
|
135
|
+
className: r(
|
|
136
|
+
"relative",
|
|
137
|
+
"border-2",
|
|
138
|
+
"border-dashed",
|
|
139
|
+
b ? "border-line-brand" : "border-line-default",
|
|
140
|
+
A("lg"),
|
|
141
|
+
o("lg", "p"),
|
|
142
|
+
"text-center",
|
|
143
|
+
"cursor-pointer",
|
|
144
|
+
me("base"),
|
|
145
|
+
"focus:border-line-focus",
|
|
146
|
+
d ? "opacity-50 cursor-not-allowed" : r(
|
|
147
|
+
"hover:border-line-strong",
|
|
148
|
+
"focus:outline-none",
|
|
149
|
+
"focus:ring-2",
|
|
150
|
+
"focus:ring-offset-2"
|
|
151
|
+
)
|
|
152
|
+
),
|
|
153
|
+
role: "button",
|
|
154
|
+
tabIndex: d ? -1 : 0,
|
|
155
|
+
"aria-label": "Upload files",
|
|
156
|
+
"aria-disabled": d,
|
|
157
|
+
children: [
|
|
158
|
+
/* @__PURE__ */ t(
|
|
159
|
+
"input",
|
|
160
|
+
{
|
|
161
|
+
ref: u,
|
|
162
|
+
type: "file",
|
|
163
|
+
accept: n,
|
|
164
|
+
multiple: c,
|
|
165
|
+
onChange: H,
|
|
166
|
+
disabled: d,
|
|
167
|
+
className: "hidden"
|
|
168
|
+
}
|
|
169
|
+
),
|
|
170
|
+
/* @__PURE__ */ l(
|
|
171
|
+
"div",
|
|
172
|
+
{
|
|
173
|
+
className: r(
|
|
174
|
+
"flex",
|
|
175
|
+
"flex-col",
|
|
176
|
+
"items-center",
|
|
177
|
+
o("sm", "gap")
|
|
178
|
+
),
|
|
179
|
+
children: [
|
|
180
|
+
/* @__PURE__ */ t(
|
|
181
|
+
te,
|
|
182
|
+
{
|
|
183
|
+
className: r(
|
|
184
|
+
"h-8",
|
|
185
|
+
"w-8",
|
|
186
|
+
b ? "text-fg-brand" : "text-fg-secondary"
|
|
187
|
+
)
|
|
188
|
+
}
|
|
189
|
+
),
|
|
190
|
+
/* @__PURE__ */ l("div", { children: [
|
|
191
|
+
/* @__PURE__ */ t(
|
|
192
|
+
"span",
|
|
193
|
+
{
|
|
194
|
+
className: r(
|
|
195
|
+
m("sm"),
|
|
196
|
+
z("medium"),
|
|
197
|
+
"text-fg-primary"
|
|
198
|
+
),
|
|
199
|
+
children: b ? "Drop files here" : "Click to upload or drag and drop"
|
|
200
|
+
}
|
|
201
|
+
),
|
|
202
|
+
n && /* @__PURE__ */ l(
|
|
203
|
+
"p",
|
|
204
|
+
{
|
|
205
|
+
className: r(
|
|
206
|
+
m("xs"),
|
|
207
|
+
"text-fg-secondary",
|
|
208
|
+
o("xs", "mt")
|
|
209
|
+
),
|
|
210
|
+
children: [
|
|
211
|
+
"Accepted: ",
|
|
212
|
+
n
|
|
213
|
+
]
|
|
214
|
+
}
|
|
215
|
+
),
|
|
216
|
+
a && /* @__PURE__ */ l(
|
|
217
|
+
"p",
|
|
218
|
+
{
|
|
219
|
+
className: r(
|
|
220
|
+
m("xs"),
|
|
221
|
+
"text-fg-secondary"
|
|
222
|
+
),
|
|
223
|
+
children: [
|
|
224
|
+
"Max size: ",
|
|
225
|
+
w(a)
|
|
226
|
+
]
|
|
227
|
+
}
|
|
228
|
+
)
|
|
229
|
+
] })
|
|
230
|
+
]
|
|
231
|
+
}
|
|
232
|
+
)
|
|
233
|
+
]
|
|
234
|
+
}
|
|
235
|
+
),
|
|
236
|
+
p.length > 0 && /* @__PURE__ */ t("div", { className: r("flex", "flex-col", o("sm", "gap")), children: p.map((e) => /* @__PURE__ */ l(
|
|
237
|
+
"div",
|
|
238
|
+
{
|
|
239
|
+
className: r(
|
|
240
|
+
"flex",
|
|
241
|
+
"items-center",
|
|
242
|
+
o("md", "gap"),
|
|
243
|
+
o("base", "p"),
|
|
244
|
+
"border",
|
|
245
|
+
"border-line-default",
|
|
246
|
+
A("md"),
|
|
247
|
+
e.error ? "bg-error-bg" : "bg-surface-muted"
|
|
248
|
+
),
|
|
249
|
+
children: [
|
|
250
|
+
F && e.preview ? /* @__PURE__ */ t(
|
|
251
|
+
"img",
|
|
252
|
+
{
|
|
253
|
+
src: e.preview,
|
|
254
|
+
alt: e.file.name,
|
|
255
|
+
className: r(
|
|
256
|
+
"w-12",
|
|
257
|
+
"h-12",
|
|
258
|
+
"object-cover",
|
|
259
|
+
A("md")
|
|
260
|
+
)
|
|
261
|
+
}
|
|
262
|
+
) : /* @__PURE__ */ t(ae, { className: r("h-8", "w-8", "text-fg-secondary") }),
|
|
263
|
+
/* @__PURE__ */ l("div", { className: r("flex-1", "min-w-0"), children: [
|
|
264
|
+
/* @__PURE__ */ t(
|
|
265
|
+
"p",
|
|
266
|
+
{
|
|
267
|
+
className: r(
|
|
268
|
+
m("sm"),
|
|
269
|
+
z("medium"),
|
|
270
|
+
"text-fg-primary",
|
|
271
|
+
"truncate"
|
|
272
|
+
),
|
|
273
|
+
children: e.file.name
|
|
274
|
+
}
|
|
275
|
+
),
|
|
276
|
+
/* @__PURE__ */ t(
|
|
277
|
+
"p",
|
|
278
|
+
{
|
|
279
|
+
className: r(
|
|
280
|
+
m("xs"),
|
|
281
|
+
"text-fg-secondary"
|
|
282
|
+
),
|
|
283
|
+
children: w(e.file.size)
|
|
284
|
+
}
|
|
285
|
+
),
|
|
286
|
+
e.error && /* @__PURE__ */ l(
|
|
287
|
+
"div",
|
|
288
|
+
{
|
|
289
|
+
className: r(
|
|
290
|
+
"flex",
|
|
291
|
+
"items-center",
|
|
292
|
+
o("xs", "gap"),
|
|
293
|
+
o("xs", "mt")
|
|
294
|
+
),
|
|
295
|
+
children: [
|
|
296
|
+
/* @__PURE__ */ t(
|
|
297
|
+
ce,
|
|
298
|
+
{
|
|
299
|
+
className: r("h-3", "w-3", "text-fg-error")
|
|
300
|
+
}
|
|
301
|
+
),
|
|
302
|
+
/* @__PURE__ */ t(
|
|
303
|
+
"span",
|
|
304
|
+
{
|
|
305
|
+
className: r(
|
|
306
|
+
m("xs"),
|
|
307
|
+
"text-fg-error"
|
|
308
|
+
),
|
|
309
|
+
children: e.error
|
|
310
|
+
}
|
|
311
|
+
)
|
|
312
|
+
]
|
|
313
|
+
}
|
|
314
|
+
),
|
|
315
|
+
x && e.progress !== void 0 && /* @__PURE__ */ t("div", { className: r(o("sm", "mt")), children: /* @__PURE__ */ t(le, { value: e.progress, size: "sm" }) })
|
|
316
|
+
] }),
|
|
317
|
+
!e.error && !x && /* @__PURE__ */ t(ne, { className: r("h-5", "w-5", "text-fg-success") }),
|
|
318
|
+
/* @__PURE__ */ t(
|
|
319
|
+
ie,
|
|
320
|
+
{
|
|
321
|
+
variant: "ghost",
|
|
322
|
+
size: "sm",
|
|
323
|
+
onClick: (s) => {
|
|
324
|
+
s.stopPropagation(), J(e.id);
|
|
325
|
+
},
|
|
326
|
+
className: `h-auto ${o("xs", "p")}`,
|
|
327
|
+
"aria-label": `Remove ${e.file.name}`,
|
|
328
|
+
children: /* @__PURE__ */ t(oe, { className: "h-4 w-4" })
|
|
329
|
+
}
|
|
330
|
+
)
|
|
331
|
+
]
|
|
332
|
+
},
|
|
333
|
+
e.id
|
|
334
|
+
)) })
|
|
335
|
+
]
|
|
336
|
+
}
|
|
337
|
+
);
|
|
338
|
+
}
|
|
339
|
+
export {
|
|
340
|
+
De as default
|
|
341
|
+
};
|
|
342
|
+
//# sourceMappingURL=FileUpload.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"FileUpload.js","sources":["../../../../../src/ui/components/FileUpload/FileUpload.tsx"],"sourcesContent":["\"use client\";\n\nimport { useState, useRef, type DragEvent, type ChangeEvent } from \"react\";\nimport { Upload, X, File, CheckCircle2, AlertCircle } from \"lucide-react\";\nimport { cn } from \"../../utils\";\nimport {\n getSpacingClass,\n getRadiusClass,\n getAnimationClass,\n getTypographySizeFromFontSize,\n getTypographyWeightFromFontWeight,\n} from \"../../tokens\";\nimport Button from \"../../primitives/Button/Button\";\nimport Progress from \"../../primitives/Progress/Progress\";\n\nexport interface FileUploadFile {\n file: File;\n id: string;\n preview?: string;\n progress?: number;\n error?: string;\n}\n\nexport interface FileUploadProps {\n accept?: string;\n multiple?: boolean;\n maxSize?: number; // in bytes\n maxFiles?: number;\n onFilesChange?: (files: FileUploadFile[]) => void;\n onFileRemove?: (fileId: string) => void;\n showPreview?: boolean;\n showProgress?: boolean;\n disabled?: boolean;\n className?: string;\n label?: string;\n description?: string;\n}\n\n/**\n * FileUpload Component\n *\n * A file upload component with drag and drop, preview, validation, and progress.\n * Follows Atomic Design principles as a Molecule component.\n *\n * @example\n * ```tsx\n * <FileUpload\n * accept=\"image/*\"\n * maxSize={5 * 1024 * 1024} // 5MB\n * onFilesChange={(files) => console.log(files)}\n * />\n * ```\n */\nexport default function FileUpload({\n accept,\n multiple = false,\n maxSize,\n maxFiles,\n onFilesChange,\n onFileRemove,\n showPreview = true,\n showProgress = false,\n disabled = false,\n className = \"\",\n label,\n description,\n}: FileUploadProps) {\n const [files, setFiles] = useState<FileUploadFile[]>([]);\n const [isDragging, setIsDragging] = useState(false);\n const fileInputRef = useRef<HTMLInputElement>(null);\n\n const formatFileSize = (bytes: number): string => {\n if (bytes === 0) return \"0 Bytes\";\n const k = 1024;\n const sizes = [\"Bytes\", \"KB\", \"MB\", \"GB\"];\n const i = Math.floor(Math.log(bytes) / Math.log(k));\n return Math.round((bytes / Math.pow(k, i)) * 100) / 100 + \" \" + sizes[i];\n };\n\n const validateFile = (file: File): string | null => {\n if (maxSize && file.size > maxSize) {\n return `File size exceeds ${formatFileSize(maxSize)}`;\n }\n return null;\n };\n\n const processFiles = (fileList: FileList | File[]): FileUploadFile[] => {\n const fileArray = Array.from(fileList);\n const newFiles: FileUploadFile[] = [];\n\n fileArray.forEach((file) => {\n const error = validateFile(file);\n const fileId = `${Date.now()}-${Math.random().toString(36).slice(2, 11)}`;\n\n const fileUpload: FileUploadFile = {\n file,\n id: fileId,\n error: error ?? undefined,\n progress: showProgress ? 0 : undefined,\n };\n\n // Generate preview for images\n if (showPreview && file.type.startsWith(\"image/\")) {\n const reader = new FileReader();\n reader.onload = (e) => {\n setFiles((prev) =>\n prev.map((f) =>\n f.id === fileId\n ? { ...f, preview: e.target?.result as string }\n : f,\n ),\n );\n };\n reader.readAsDataURL(file);\n }\n\n newFiles.push(fileUpload);\n });\n\n return newFiles;\n };\n\n const handleFiles = (newFiles: FileUploadFile[]) => {\n const updatedFiles = multiple ? [...files, ...newFiles] : newFiles;\n const limitedFiles = maxFiles\n ? updatedFiles.slice(0, maxFiles)\n : updatedFiles;\n\n setFiles(limitedFiles);\n onFilesChange?.(limitedFiles);\n };\n\n const handleDrop = (e: DragEvent<HTMLDivElement>) => {\n e.preventDefault();\n setIsDragging(false);\n\n if (disabled) return;\n\n const droppedFiles = e.dataTransfer.files;\n if (droppedFiles.length > 0) {\n const processedFiles = processFiles(droppedFiles);\n handleFiles(processedFiles);\n }\n };\n\n const handleDragOver = (e: DragEvent<HTMLDivElement>) => {\n e.preventDefault();\n if (!disabled) {\n setIsDragging(true);\n }\n };\n\n const handleDragLeave = (e: DragEvent<HTMLDivElement>) => {\n e.preventDefault();\n setIsDragging(false);\n };\n\n const handleFileInput = (e: ChangeEvent<HTMLInputElement>) => {\n if (e.target.files && e.target.files.length > 0) {\n const processedFiles = processFiles(e.target.files);\n handleFiles(processedFiles);\n }\n // Reset input\n if (fileInputRef.current) {\n fileInputRef.current.value = \"\";\n }\n };\n\n const handleRemove = (fileId: string) => {\n const updatedFiles = files.filter((f) => f.id !== fileId);\n setFiles(updatedFiles);\n onFilesChange?.(updatedFiles);\n onFileRemove?.(fileId);\n };\n\n const handleClick = () => {\n if (!disabled) {\n fileInputRef.current?.click();\n }\n };\n\n return (\n <div\n className={cn(\n getSpacingClass(\"lg\", \"gap\"),\n \"flex\",\n \"flex-col\",\n className,\n )}\n >\n {(label || description) && (\n <div>\n {label && (\n <label\n className={cn(\n \"block\",\n getTypographySizeFromFontSize(\"sm\"),\n getTypographyWeightFromFontWeight(\"medium\"),\n \"text-fg-primary\",\n getSpacingClass(\"xs\", \"mb\"),\n )}\n >\n {label}\n </label>\n )}\n {description && (\n <p\n className={cn(\n getTypographySizeFromFontSize(\"sm\"),\n \"text-fg-secondary\",\n )}\n >\n {description}\n </p>\n )}\n </div>\n )}\n\n <div\n onDrop={handleDrop}\n onDragOver={handleDragOver}\n onDragLeave={handleDragLeave}\n onClick={handleClick}\n className={cn(\n \"relative\",\n \"border-2\",\n \"border-dashed\",\n isDragging ? \"border-line-brand\" : \"border-line-default\",\n getRadiusClass(\"lg\"),\n getSpacingClass(\"lg\", \"p\"),\n \"text-center\",\n \"cursor-pointer\",\n getAnimationClass(\"base\"),\n \"focus:border-line-focus\",\n disabled\n ? \"opacity-50 cursor-not-allowed\"\n : cn(\n \"hover:border-line-strong\",\n \"focus:outline-none\",\n \"focus:ring-2\",\n \"focus:ring-offset-2\",\n ),\n )}\n role=\"button\"\n tabIndex={disabled ? -1 : 0}\n aria-label=\"Upload files\"\n aria-disabled={disabled}\n >\n <input\n ref={fileInputRef}\n type=\"file\"\n accept={accept}\n multiple={multiple}\n onChange={handleFileInput}\n disabled={disabled}\n className=\"hidden\"\n />\n\n <div\n className={cn(\n \"flex\",\n \"flex-col\",\n \"items-center\",\n getSpacingClass(\"sm\", \"gap\"),\n )}\n >\n <Upload\n className={cn(\n \"h-8\",\n \"w-8\",\n isDragging ? \"text-fg-brand\" : \"text-fg-secondary\",\n )}\n />\n <div>\n <span\n className={cn(\n getTypographySizeFromFontSize(\"sm\"),\n getTypographyWeightFromFontWeight(\"medium\"),\n \"text-fg-primary\",\n )}\n >\n {isDragging\n ? \"Drop files here\"\n : \"Click to upload or drag and drop\"}\n </span>\n {accept && (\n <p\n className={cn(\n getTypographySizeFromFontSize(\"xs\"),\n \"text-fg-secondary\",\n getSpacingClass(\"xs\", \"mt\"),\n )}\n >\n Accepted: {accept}\n </p>\n )}\n {maxSize && (\n <p\n className={cn(\n getTypographySizeFromFontSize(\"xs\"),\n \"text-fg-secondary\",\n )}\n >\n Max size: {formatFileSize(maxSize)}\n </p>\n )}\n </div>\n </div>\n </div>\n\n {files.length > 0 && (\n <div className={cn(\"flex\", \"flex-col\", getSpacingClass(\"sm\", \"gap\"))}>\n {files.map((fileUpload) => (\n <div\n key={fileUpload.id}\n className={cn(\n \"flex\",\n \"items-center\",\n getSpacingClass(\"md\", \"gap\"),\n getSpacingClass(\"base\", \"p\"),\n \"border\",\n \"border-line-default\",\n getRadiusClass(\"md\"),\n fileUpload.error ? \"bg-error-bg\" : \"bg-surface-muted\",\n )}\n >\n {showPreview && fileUpload.preview ? (\n <img\n src={fileUpload.preview}\n alt={fileUpload.file.name}\n className={cn(\n \"w-12\",\n \"h-12\",\n \"object-cover\",\n getRadiusClass(\"md\"),\n )}\n />\n ) : (\n <File className={cn(\"h-8\", \"w-8\", \"text-fg-secondary\")} />\n )}\n\n <div className={cn(\"flex-1\", \"min-w-0\")}>\n <p\n className={cn(\n getTypographySizeFromFontSize(\"sm\"),\n getTypographyWeightFromFontWeight(\"medium\"),\n \"text-fg-primary\",\n \"truncate\",\n )}\n >\n {fileUpload.file.name}\n </p>\n <p\n className={cn(\n getTypographySizeFromFontSize(\"xs\"),\n \"text-fg-secondary\",\n )}\n >\n {formatFileSize(fileUpload.file.size)}\n </p>\n {fileUpload.error && (\n <div\n className={cn(\n \"flex\",\n \"items-center\",\n getSpacingClass(\"xs\", \"gap\"),\n getSpacingClass(\"xs\", \"mt\"),\n )}\n >\n <AlertCircle\n className={cn(\"h-3\", \"w-3\", \"text-fg-error\")}\n />\n <span\n className={cn(\n getTypographySizeFromFontSize(\"xs\"),\n \"text-fg-error\",\n )}\n >\n {fileUpload.error}\n </span>\n </div>\n )}\n {showProgress && fileUpload.progress !== undefined && (\n <div className={cn(getSpacingClass(\"sm\", \"mt\"))}>\n <Progress value={fileUpload.progress} size=\"sm\" />\n </div>\n )}\n </div>\n\n {!fileUpload.error && !showProgress && (\n <CheckCircle2 className={cn(\"h-5\", \"w-5\", \"text-fg-success\")} />\n )}\n\n <Button\n variant=\"ghost\"\n size=\"sm\"\n onClick={(e) => {\n e.stopPropagation();\n handleRemove(fileUpload.id);\n }}\n className={`h-auto ${getSpacingClass(\"xs\", \"p\")}`}\n aria-label={`Remove ${fileUpload.file.name}`}\n >\n <X className=\"h-4 w-4\" />\n </Button>\n </div>\n ))}\n </div>\n )}\n </div>\n );\n}\n"],"names":["FileUpload","accept","multiple","maxSize","maxFiles","onFilesChange","onFileRemove","showPreview","showProgress","disabled","className","label","description","files","setFiles","useState","isDragging","setIsDragging","fileInputRef","useRef","formatFileSize","bytes","k","sizes","i","validateFile","file","processFiles","fileList","fileArray","newFiles","error","fileId","fileUpload","reader","e","prev","f","__spreadProps","__spreadValues","_a","handleFiles","updatedFiles","limitedFiles","handleDrop","droppedFiles","processedFiles","handleDragOver","handleDragLeave","handleFileInput","handleRemove","handleClick","jsxs","cn","getSpacingClass","jsx","getTypographySizeFromFontSize","getTypographyWeightFromFontWeight","getRadiusClass","getAnimationClass","Upload","File","AlertCircle","Progress","CheckCircle2","Button","X"],"mappings":"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"}
|
|
@@ -0,0 +1,184 @@
|
|
|
1
|
+
"use client";
|
|
2
|
+
var _ = Object.defineProperty, q = Object.defineProperties;
|
|
3
|
+
var A = Object.getOwnPropertyDescriptors;
|
|
4
|
+
var g = Object.getOwnPropertySymbols;
|
|
5
|
+
var R = Object.prototype.hasOwnProperty, j = Object.prototype.propertyIsEnumerable;
|
|
6
|
+
var P = (r, o, e) => o in r ? _(r, o, { enumerable: !0, configurable: !0, writable: !0, value: e }) : r[o] = e, k = (r, o) => {
|
|
7
|
+
for (var e in o || (o = {}))
|
|
8
|
+
R.call(o, e) && P(r, e, o[e]);
|
|
9
|
+
if (g)
|
|
10
|
+
for (var e of g(o))
|
|
11
|
+
j.call(o, e) && P(r, e, o[e]);
|
|
12
|
+
return r;
|
|
13
|
+
}, F = (r, o) => q(r, A(o));
|
|
14
|
+
var h = (r, o) => {
|
|
15
|
+
var e = {};
|
|
16
|
+
for (var t in r)
|
|
17
|
+
R.call(r, t) && o.indexOf(t) < 0 && (e[t] = r[t]);
|
|
18
|
+
if (r != null && g)
|
|
19
|
+
for (var t of g(r))
|
|
20
|
+
o.indexOf(t) < 0 && j.call(r, t) && (e[t] = r[t]);
|
|
21
|
+
return e;
|
|
22
|
+
};
|
|
23
|
+
var z = (r, o, e) => new Promise((t, m) => {
|
|
24
|
+
var S = (s) => {
|
|
25
|
+
try {
|
|
26
|
+
f(e.next(s));
|
|
27
|
+
} catch (l) {
|
|
28
|
+
m(l);
|
|
29
|
+
}
|
|
30
|
+
}, a = (s) => {
|
|
31
|
+
try {
|
|
32
|
+
f(e.throw(s));
|
|
33
|
+
} catch (l) {
|
|
34
|
+
m(l);
|
|
35
|
+
}
|
|
36
|
+
}, f = (s) => s.done ? t(s.value) : Promise.resolve(s.value).then(S, a);
|
|
37
|
+
f((e = e.apply(r, o)).next());
|
|
38
|
+
});
|
|
39
|
+
import { jsx as c, jsxs as C } from "react/jsx-runtime";
|
|
40
|
+
import { FormProvider as B } from "./FormProvider.js";
|
|
41
|
+
import { cn as n } from "../../utils/cn.js";
|
|
42
|
+
import { getSpacingClass as b } from "../../tokens/spacing.js";
|
|
43
|
+
import { getRadiusClass as p } from "../../tokens/radius.js";
|
|
44
|
+
import { getTypographySizeFromFontSize as x } from "../../tokens/typography.js";
|
|
45
|
+
function X(f) {
|
|
46
|
+
var s = f, {
|
|
47
|
+
children: r,
|
|
48
|
+
onSubmit: o,
|
|
49
|
+
loading: e = !1,
|
|
50
|
+
error: t = null,
|
|
51
|
+
success: m = null,
|
|
52
|
+
className: S = ""
|
|
53
|
+
} = s, a = h(s, [
|
|
54
|
+
"children",
|
|
55
|
+
"onSubmit",
|
|
56
|
+
"loading",
|
|
57
|
+
"error",
|
|
58
|
+
"success",
|
|
59
|
+
"className"
|
|
60
|
+
]);
|
|
61
|
+
const l = n(
|
|
62
|
+
b("lg", "gap"),
|
|
63
|
+
"flex",
|
|
64
|
+
"flex-col",
|
|
65
|
+
S
|
|
66
|
+
);
|
|
67
|
+
if ("form" in a && a.form !== void 0) {
|
|
68
|
+
const N = a, {
|
|
69
|
+
form: i,
|
|
70
|
+
onSubmit: H,
|
|
71
|
+
onSubmitError: d
|
|
72
|
+
} = N, V = h(N, [
|
|
73
|
+
"form",
|
|
74
|
+
"onSubmit",
|
|
75
|
+
"onSubmitError"
|
|
76
|
+
]), w = i.handleSubmit(
|
|
77
|
+
(v) => z(null, null, function* () {
|
|
78
|
+
try {
|
|
79
|
+
yield H(v);
|
|
80
|
+
} catch (T) {
|
|
81
|
+
d == null || d(T);
|
|
82
|
+
}
|
|
83
|
+
}),
|
|
84
|
+
(v) => {
|
|
85
|
+
d == null || d(v);
|
|
86
|
+
}
|
|
87
|
+
);
|
|
88
|
+
return /* @__PURE__ */ c(B, { form: i, loading: e, children: /* @__PURE__ */ C(
|
|
89
|
+
"form",
|
|
90
|
+
F(k({
|
|
91
|
+
className: l,
|
|
92
|
+
onSubmit: w,
|
|
93
|
+
noValidate: !0
|
|
94
|
+
}, V), {
|
|
95
|
+
children: [
|
|
96
|
+
r,
|
|
97
|
+
t && /* @__PURE__ */ c(
|
|
98
|
+
"div",
|
|
99
|
+
{
|
|
100
|
+
role: "alert",
|
|
101
|
+
className: n(
|
|
102
|
+
b("md", "p"),
|
|
103
|
+
x("sm"),
|
|
104
|
+
"text-error-dark",
|
|
105
|
+
"bg-error-bg",
|
|
106
|
+
"border",
|
|
107
|
+
"border-error",
|
|
108
|
+
p("md")
|
|
109
|
+
),
|
|
110
|
+
children: t
|
|
111
|
+
}
|
|
112
|
+
),
|
|
113
|
+
m && /* @__PURE__ */ c(
|
|
114
|
+
"div",
|
|
115
|
+
{
|
|
116
|
+
role: "alert",
|
|
117
|
+
className: n(
|
|
118
|
+
b("md", "p"),
|
|
119
|
+
x("sm"),
|
|
120
|
+
"text-success-dark",
|
|
121
|
+
"bg-success-bg",
|
|
122
|
+
"border",
|
|
123
|
+
"border-success",
|
|
124
|
+
p("md")
|
|
125
|
+
),
|
|
126
|
+
children: m
|
|
127
|
+
}
|
|
128
|
+
)
|
|
129
|
+
]
|
|
130
|
+
})
|
|
131
|
+
) });
|
|
132
|
+
}
|
|
133
|
+
const u = a.onSubmit || o, y = a, { onSubmit: I } = y, D = h(y, ["onSubmit"]);
|
|
134
|
+
return /* @__PURE__ */ C(
|
|
135
|
+
"form",
|
|
136
|
+
F(k({
|
|
137
|
+
className: l,
|
|
138
|
+
onSubmit: (i) => {
|
|
139
|
+
i.preventDefault(), u && !e && (u == null || u(i));
|
|
140
|
+
},
|
|
141
|
+
noValidate: !0
|
|
142
|
+
}, D), {
|
|
143
|
+
children: [
|
|
144
|
+
r,
|
|
145
|
+
t && /* @__PURE__ */ c(
|
|
146
|
+
"div",
|
|
147
|
+
{
|
|
148
|
+
role: "alert",
|
|
149
|
+
className: n(
|
|
150
|
+
b("md", "p"),
|
|
151
|
+
x("sm"),
|
|
152
|
+
"text-error-dark",
|
|
153
|
+
"bg-error-bg",
|
|
154
|
+
"border",
|
|
155
|
+
"border-error",
|
|
156
|
+
p("md")
|
|
157
|
+
),
|
|
158
|
+
children: t
|
|
159
|
+
}
|
|
160
|
+
),
|
|
161
|
+
m && /* @__PURE__ */ c(
|
|
162
|
+
"div",
|
|
163
|
+
{
|
|
164
|
+
role: "alert",
|
|
165
|
+
className: n(
|
|
166
|
+
b("md", "p"),
|
|
167
|
+
x("sm"),
|
|
168
|
+
"text-success-dark",
|
|
169
|
+
"bg-success-bg",
|
|
170
|
+
"border",
|
|
171
|
+
"border-success",
|
|
172
|
+
p("md")
|
|
173
|
+
),
|
|
174
|
+
children: m
|
|
175
|
+
}
|
|
176
|
+
)
|
|
177
|
+
]
|
|
178
|
+
})
|
|
179
|
+
);
|
|
180
|
+
}
|
|
181
|
+
export {
|
|
182
|
+
X as default
|
|
183
|
+
};
|
|
184
|
+
//# sourceMappingURL=Form.js.map
|