@douglasneuroinformatics/libui 2.0.2 → 2.0.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/dist/components/Accordion/Accordion.d.ts +7 -0
- package/dist/components/Accordion/Accordion.d.ts.map +1 -0
- package/dist/components/Accordion/Accordion.js +9 -0
- package/dist/components/Accordion/AccordionContent.d.ts +4 -0
- package/dist/components/Accordion/AccordionContent.d.ts.map +1 -0
- package/dist/components/Accordion/AccordionContent.js +7 -0
- package/dist/components/Accordion/AccordionItem.d.ts +4 -0
- package/dist/components/Accordion/AccordionItem.d.ts.map +1 -0
- package/dist/components/Accordion/AccordionItem.js +6 -0
- package/dist/components/Accordion/AccordionRoot.d.ts +4 -0
- package/dist/components/Accordion/AccordionRoot.d.ts.map +1 -0
- package/dist/components/Accordion/AccordionRoot.js +5 -0
- package/dist/components/Accordion/AccordionTrigger.d.ts +4 -0
- package/dist/components/Accordion/AccordionTrigger.d.ts.map +1 -0
- package/dist/components/Accordion/AccordionTrigger.js +10 -0
- package/dist/components/AlertDialog/AlertDialog.d.ts +13 -0
- package/dist/components/AlertDialog/AlertDialog.d.ts.map +1 -0
- package/dist/components/AlertDialog/AlertDialog.js +20 -0
- package/dist/components/AlertDialog/AlertDialogAction.d.ts +3 -0
- package/dist/components/AlertDialog/AlertDialogAction.d.ts.map +1 -0
- package/dist/components/AlertDialog/AlertDialogAction.js +7 -0
- package/dist/components/AlertDialog/AlertDialogCancel.d.ts +3 -0
- package/dist/components/AlertDialog/AlertDialogCancel.d.ts.map +1 -0
- package/dist/components/AlertDialog/AlertDialogCancel.js +7 -0
- package/dist/components/AlertDialog/AlertDialogContent.d.ts +3 -0
- package/dist/components/AlertDialog/AlertDialogContent.d.ts.map +1 -0
- package/dist/components/AlertDialog/AlertDialogContent.js +9 -0
- package/dist/components/AlertDialog/AlertDialogDescription.d.ts +3 -0
- package/dist/components/AlertDialog/AlertDialogDescription.d.ts.map +1 -0
- package/dist/components/AlertDialog/AlertDialogDescription.js +6 -0
- package/dist/components/AlertDialog/AlertDialogFooter.d.ts +3 -0
- package/dist/components/AlertDialog/AlertDialogFooter.d.ts.map +1 -0
- package/dist/components/AlertDialog/AlertDialogFooter.js +3 -0
- package/dist/components/AlertDialog/AlertDialogHeader.d.ts +3 -0
- package/dist/components/AlertDialog/AlertDialogHeader.d.ts.map +1 -0
- package/dist/components/AlertDialog/AlertDialogHeader.js +3 -0
- package/dist/components/AlertDialog/AlertDialogOverlay.d.ts +3 -0
- package/dist/components/AlertDialog/AlertDialogOverlay.d.ts.map +1 -0
- package/dist/components/AlertDialog/AlertDialogOverlay.js +6 -0
- package/dist/components/AlertDialog/AlertDialogTitle.d.ts +3 -0
- package/dist/components/AlertDialog/AlertDialogTitle.d.ts.map +1 -0
- package/dist/components/AlertDialog/AlertDialogTitle.js +6 -0
- package/dist/components/ArrowToggle/ArrowToggle.d.ts +287 -0
- package/dist/components/ArrowToggle/ArrowToggle.d.ts.map +1 -0
- package/dist/components/ArrowToggle/ArrowToggle.js +22 -0
- package/dist/components/Avatar/Avatar.d.ts +6 -0
- package/dist/components/Avatar/Avatar.d.ts.map +1 -0
- package/dist/components/Avatar/Avatar.js +7 -0
- package/dist/components/Avatar/AvatarFallback.d.ts +4 -0
- package/dist/components/Avatar/AvatarFallback.d.ts.map +1 -0
- package/dist/components/Avatar/AvatarFallback.js +6 -0
- package/dist/components/Avatar/AvatarImage.d.ts +4 -0
- package/dist/components/Avatar/AvatarImage.d.ts.map +1 -0
- package/dist/components/Avatar/AvatarImage.js +6 -0
- package/dist/components/Avatar/AvatarRoot.d.ts +4 -0
- package/dist/components/Avatar/AvatarRoot.d.ts.map +1 -0
- package/dist/components/Avatar/AvatarRoot.js +6 -0
- package/dist/components/Badge/Badge.d.ts +9 -0
- package/dist/components/Badge/Badge.d.ts.map +1 -0
- package/dist/components/Badge/Badge.js +20 -0
- package/dist/components/Breadcrumb/Breadcrumb.d.ts +14 -0
- package/dist/components/Breadcrumb/Breadcrumb.d.ts.map +1 -0
- package/dist/components/Breadcrumb/Breadcrumb.js +15 -0
- package/dist/components/Breadcrumb/BreadcrumbEllipsis.d.ts +3 -0
- package/dist/components/Breadcrumb/BreadcrumbEllipsis.d.ts.map +1 -0
- package/dist/components/Breadcrumb/BreadcrumbEllipsis.js +5 -0
- package/dist/components/Breadcrumb/BreadcrumbItem.d.ts +3 -0
- package/dist/components/Breadcrumb/BreadcrumbItem.d.ts.map +1 -0
- package/dist/components/Breadcrumb/BreadcrumbItem.js +5 -0
- package/dist/components/Breadcrumb/BreadcrumbLink.d.ts +5 -0
- package/dist/components/Breadcrumb/BreadcrumbLink.d.ts.map +1 -0
- package/dist/components/Breadcrumb/BreadcrumbLink.js +7 -0
- package/dist/components/Breadcrumb/BreadcrumbList.d.ts +3 -0
- package/dist/components/Breadcrumb/BreadcrumbList.d.ts.map +1 -0
- package/dist/components/Breadcrumb/BreadcrumbList.js +5 -0
- package/dist/components/Breadcrumb/BreadcrumbPage.d.ts +3 -0
- package/dist/components/Breadcrumb/BreadcrumbPage.d.ts.map +1 -0
- package/dist/components/Breadcrumb/BreadcrumbPage.js +5 -0
- package/dist/components/Breadcrumb/BreadcrumbRoot.d.ts +5 -0
- package/dist/components/Breadcrumb/BreadcrumbRoot.d.ts.map +1 -0
- package/dist/components/Breadcrumb/BreadcrumbRoot.js +4 -0
- package/dist/components/Breadcrumb/BreadcrumbSeparator.d.ts +3 -0
- package/dist/components/Breadcrumb/BreadcrumbSeparator.d.ts.map +1 -0
- package/dist/components/Breadcrumb/BreadcrumbSeparator.js +4 -0
- package/dist/components/Button/Button.d.ts +299 -0
- package/dist/components/Button/Button.d.ts.map +1 -0
- package/dist/components/Button/Button.js +37 -0
- package/dist/components/Card/Card.d.ts +9 -0
- package/dist/components/Card/Card.d.ts.map +1 -0
- package/dist/components/Card/Card.js +14 -0
- package/dist/components/Checkbox/Checkbox.d.ts +4 -0
- package/dist/components/Checkbox/Checkbox.d.ts.map +1 -0
- package/dist/components/Checkbox/Checkbox.js +9 -0
- package/dist/components/Collapsible/Collapsible.d.ts +6 -0
- package/dist/components/Collapsible/Collapsible.d.ts.map +1 -0
- package/dist/components/Collapsible/Collapsible.js +6 -0
- package/dist/components/Collapsible/CollapsibleRoot.d.ts +3 -0
- package/dist/components/Collapsible/CollapsibleRoot.d.ts.map +1 -0
- package/dist/components/Collapsible/CollapsibleRoot.js +5 -0
- package/dist/components/Command/Command.d.ts +336 -0
- package/dist/components/Command/Command.d.ts.map +1 -0
- package/dist/components/Command/Command.js +22 -0
- package/dist/components/Command/CommandEmpty.d.ts +9 -0
- package/dist/components/Command/CommandEmpty.d.ts.map +1 -0
- package/dist/components/Command/CommandEmpty.js +5 -0
- package/dist/components/Command/CommandGroup.d.ts +13 -0
- package/dist/components/Command/CommandGroup.d.ts.map +1 -0
- package/dist/components/Command/CommandGroup.js +6 -0
- package/dist/components/Command/CommandInput.d.ts +10 -0
- package/dist/components/Command/CommandInput.d.ts.map +1 -0
- package/dist/components/Command/CommandInput.js +11 -0
- package/dist/components/Command/CommandItem.d.ts +15 -0
- package/dist/components/Command/CommandItem.d.ts.map +1 -0
- package/dist/components/Command/CommandItem.js +6 -0
- package/dist/components/Command/CommandList.d.ts +11 -0
- package/dist/components/Command/CommandList.d.ts.map +1 -0
- package/dist/components/Command/CommandList.js +6 -0
- package/dist/components/Command/CommandSeparator.d.ts +9 -0
- package/dist/components/Command/CommandSeparator.d.ts.map +1 -0
- package/dist/components/Command/CommandSeparator.js +6 -0
- package/dist/components/Command/CommandShortcut.d.ts +3 -0
- package/dist/components/Command/CommandShortcut.d.ts.map +1 -0
- package/dist/components/Command/CommandShortcut.js +5 -0
- package/dist/components/ContextMenu/ContextMenu.d.ts +24 -0
- package/dist/components/ContextMenu/ContextMenu.d.ts.map +1 -0
- package/dist/components/ContextMenu/ContextMenu.js +26 -0
- package/dist/components/ContextMenu/ContextMenuCheckboxItem.d.ts +4 -0
- package/dist/components/ContextMenu/ContextMenuCheckboxItem.d.ts.map +1 -0
- package/dist/components/ContextMenu/ContextMenuCheckboxItem.js +11 -0
- package/dist/components/ContextMenu/ContextMenuContent.d.ts +4 -0
- package/dist/components/ContextMenu/ContextMenuContent.d.ts.map +1 -0
- package/dist/components/ContextMenu/ContextMenuContent.js +7 -0
- package/dist/components/ContextMenu/ContextMenuItem.d.ts +6 -0
- package/dist/components/ContextMenu/ContextMenuItem.d.ts.map +1 -0
- package/dist/components/ContextMenu/ContextMenuItem.js +6 -0
- package/dist/components/ContextMenu/ContextMenuLabel.d.ts +6 -0
- package/dist/components/ContextMenu/ContextMenuLabel.d.ts.map +1 -0
- package/dist/components/ContextMenu/ContextMenuLabel.js +6 -0
- package/dist/components/ContextMenu/ContextMenuRadioItem.d.ts +4 -0
- package/dist/components/ContextMenu/ContextMenuRadioItem.d.ts.map +1 -0
- package/dist/components/ContextMenu/ContextMenuRadioItem.js +11 -0
- package/dist/components/ContextMenu/ContextMenuSeparator.d.ts +4 -0
- package/dist/components/ContextMenu/ContextMenuSeparator.d.ts.map +1 -0
- package/dist/components/ContextMenu/ContextMenuSeparator.js +6 -0
- package/dist/components/ContextMenu/ContextMenuShortcut.d.ts +3 -0
- package/dist/components/ContextMenu/ContextMenuShortcut.d.ts.map +1 -0
- package/dist/components/ContextMenu/ContextMenuShortcut.js +5 -0
- package/dist/components/ContextMenu/ContextMenuSubContent.d.ts +4 -0
- package/dist/components/ContextMenu/ContextMenuSubContent.d.ts.map +1 -0
- package/dist/components/ContextMenu/ContextMenuSubContent.js +6 -0
- package/dist/components/ContextMenu/ContextMenuSubTrigger.d.ts +6 -0
- package/dist/components/ContextMenu/ContextMenuSubTrigger.d.ts.map +1 -0
- package/dist/components/ContextMenu/ContextMenuSubTrigger.js +9 -0
- package/dist/components/DatePicker/Calendar.d.ts +9 -0
- package/dist/components/DatePicker/Calendar.d.ts.map +1 -0
- package/dist/components/DatePicker/Calendar.js +28 -0
- package/dist/components/DatePicker/DatePicker.d.ts +8 -0
- package/dist/components/DatePicker/DatePicker.d.ts.map +1 -0
- package/dist/components/DatePicker/DatePicker.js +79 -0
- package/dist/components/DatePicker/YearSelector.d.ts +7 -0
- package/dist/components/DatePicker/YearSelector.d.ts.map +1 -0
- package/dist/components/DatePicker/YearSelector.js +20 -0
- package/dist/components/Dialog/Dialog.d.ts +10 -0
- package/dist/components/Dialog/Dialog.d.ts.map +1 -0
- package/dist/components/Dialog/Dialog.js +14 -0
- package/dist/components/Dialog/DialogContent.d.ts +3 -0
- package/dist/components/Dialog/DialogContent.d.ts.map +1 -0
- package/dist/components/Dialog/DialogContent.js +13 -0
- package/dist/components/Dialog/DialogDescription.d.ts +3 -0
- package/dist/components/Dialog/DialogDescription.d.ts.map +1 -0
- package/dist/components/Dialog/DialogDescription.js +6 -0
- package/dist/components/Dialog/DialogFooter.d.ts +3 -0
- package/dist/components/Dialog/DialogFooter.d.ts.map +1 -0
- package/dist/components/Dialog/DialogFooter.js +3 -0
- package/dist/components/Dialog/DialogHeader.d.ts +3 -0
- package/dist/components/Dialog/DialogHeader.d.ts.map +1 -0
- package/dist/components/Dialog/DialogHeader.js +3 -0
- package/dist/components/Dialog/DialogOverlay.d.ts +3 -0
- package/dist/components/Dialog/DialogOverlay.d.ts.map +1 -0
- package/dist/components/Dialog/DialogOverlay.js +6 -0
- package/dist/components/Dialog/DialogTitle.d.ts +3 -0
- package/dist/components/Dialog/DialogTitle.d.ts.map +1 -0
- package/dist/components/Dialog/DialogTitle.js +6 -0
- package/dist/components/Drawer/Drawer.d.ts +14 -0
- package/dist/components/Drawer/Drawer.d.ts.map +1 -0
- package/dist/components/Drawer/Drawer.js +17 -0
- package/dist/components/Drawer/DrawerContent.d.ts +5 -0
- package/dist/components/Drawer/DrawerContent.d.ts.map +1 -0
- package/dist/components/Drawer/DrawerContent.js +10 -0
- package/dist/components/Drawer/DrawerDescription.d.ts +3 -0
- package/dist/components/Drawer/DrawerDescription.d.ts.map +1 -0
- package/dist/components/Drawer/DrawerDescription.js +6 -0
- package/dist/components/Drawer/DrawerFooter.d.ts +3 -0
- package/dist/components/Drawer/DrawerFooter.d.ts.map +1 -0
- package/dist/components/Drawer/DrawerFooter.js +3 -0
- package/dist/components/Drawer/DrawerHeader.d.ts +3 -0
- package/dist/components/Drawer/DrawerHeader.d.ts.map +1 -0
- package/dist/components/Drawer/DrawerHeader.js +3 -0
- package/dist/components/Drawer/DrawerTitle.d.ts +3 -0
- package/dist/components/Drawer/DrawerTitle.d.ts.map +1 -0
- package/dist/components/Drawer/DrawerTitle.js +6 -0
- package/dist/components/DropdownButton/DropdownButton.d.ts +3 -0
- package/dist/components/DropdownButton/DropdownButton.d.ts.map +1 -0
- package/dist/components/DropdownButton/DropdownButton.js +8 -0
- package/dist/components/DropdownMenu/DropdownMenu.d.ts +27 -0
- package/dist/components/DropdownMenu/DropdownMenu.d.ts.map +1 -0
- package/dist/components/DropdownMenu/DropdownMenu.js +26 -0
- package/dist/components/DropdownMenu/DropdownMenuCheckboxItem.d.ts +4 -0
- package/dist/components/DropdownMenu/DropdownMenuCheckboxItem.d.ts.map +1 -0
- package/dist/components/DropdownMenu/DropdownMenuCheckboxItem.js +11 -0
- package/dist/components/DropdownMenu/DropdownMenuContent.d.ts +9 -0
- package/dist/components/DropdownMenu/DropdownMenuContent.d.ts.map +1 -0
- package/dist/components/DropdownMenu/DropdownMenuContent.js +7 -0
- package/dist/components/DropdownMenu/DropdownMenuItem.d.ts +6 -0
- package/dist/components/DropdownMenu/DropdownMenuItem.d.ts.map +1 -0
- package/dist/components/DropdownMenu/DropdownMenuItem.js +6 -0
- package/dist/components/DropdownMenu/DropdownMenuLabel.d.ts +6 -0
- package/dist/components/DropdownMenu/DropdownMenuLabel.d.ts.map +1 -0
- package/dist/components/DropdownMenu/DropdownMenuLabel.js +6 -0
- package/dist/components/DropdownMenu/DropdownMenuRadioItem.d.ts +4 -0
- package/dist/components/DropdownMenu/DropdownMenuRadioItem.d.ts.map +1 -0
- package/dist/components/DropdownMenu/DropdownMenuRadioItem.js +11 -0
- package/dist/components/DropdownMenu/DropdownMenuSeparator.d.ts +4 -0
- package/dist/components/DropdownMenu/DropdownMenuSeparator.d.ts.map +1 -0
- package/dist/components/DropdownMenu/DropdownMenuSeparator.js +6 -0
- package/dist/components/DropdownMenu/DropdownMenuShortcut.d.ts +3 -0
- package/dist/components/DropdownMenu/DropdownMenuShortcut.d.ts.map +1 -0
- package/dist/components/DropdownMenu/DropdownMenuShortcut.js +5 -0
- package/dist/components/DropdownMenu/DropdownMenuSubContent.d.ts +4 -0
- package/dist/components/DropdownMenu/DropdownMenuSubContent.d.ts.map +1 -0
- package/dist/components/DropdownMenu/DropdownMenuSubContent.js +6 -0
- package/dist/components/DropdownMenu/DropdownMenuSubTrigger.d.ts +6 -0
- package/dist/components/DropdownMenu/DropdownMenuSubTrigger.d.ts.map +1 -0
- package/dist/components/DropdownMenu/DropdownMenuSubTrigger.js +9 -0
- package/dist/components/ErrorBoundary/ErrorBoundary.d.ts +5 -0
- package/dist/components/ErrorBoundary/ErrorBoundary.d.ts.map +1 -0
- package/dist/components/ErrorBoundary/ErrorBoundary.js +6 -0
- package/dist/components/ErrorFallback/ErrorFallback.d.ts +8 -0
- package/dist/components/ErrorFallback/ErrorFallback.d.ts.map +1 -0
- package/dist/components/ErrorFallback/ErrorFallback.js +16 -0
- package/dist/components/Form/BaseRadioField.d.ts +13 -0
- package/dist/components/Form/BaseRadioField.d.ts.map +1 -0
- package/dist/components/Form/BaseRadioField.js +27 -0
- package/dist/components/Form/BooleanField/BooleanField.d.ts +6 -0
- package/dist/components/Form/BooleanField/BooleanField.d.ts.map +1 -0
- package/dist/components/Form/BooleanField/BooleanField.js +10 -0
- package/dist/components/Form/BooleanField/BooleanFieldCheckbox.d.ts +9 -0
- package/dist/components/Form/BooleanField/BooleanFieldCheckbox.d.ts.map +1 -0
- package/dist/components/Form/BooleanField/BooleanFieldCheckbox.js +15 -0
- package/dist/components/Form/BooleanField/BooleanFieldRadio.d.ts +9 -0
- package/dist/components/Form/BooleanField/BooleanFieldRadio.d.ts.map +1 -0
- package/dist/components/Form/BooleanField/BooleanFieldRadio.js +31 -0
- package/dist/components/Form/DateField/DateField.d.ts +7 -0
- package/dist/components/Form/DateField/DateField.d.ts.map +1 -0
- package/dist/components/Form/DateField/DateField.js +40 -0
- package/dist/components/Form/DynamicField.d.ts +13 -0
- package/dist/components/Form/DynamicField.d.ts.map +1 -0
- package/dist/components/Form/DynamicField.js +21 -0
- package/dist/components/Form/ErrorMessage.d.ts +5 -0
- package/dist/components/Form/ErrorMessage.d.ts.map +1 -0
- package/dist/components/Form/ErrorMessage.js +5 -0
- package/dist/components/Form/FieldGroup/FieldGroup.d.ts +15 -0
- package/dist/components/Form/FieldGroup/FieldGroup.d.ts.map +1 -0
- package/dist/components/Form/FieldGroup/FieldGroup.js +9 -0
- package/dist/components/Form/FieldGroup/FieldGroupDescription.d.ts +5 -0
- package/dist/components/Form/FieldGroup/FieldGroupDescription.d.ts.map +1 -0
- package/dist/components/Form/FieldGroup/FieldGroupDescription.js +8 -0
- package/dist/components/Form/FieldGroup/FieldGroupRoot.d.ts +5 -0
- package/dist/components/Form/FieldGroup/FieldGroupRoot.d.ts.map +1 -0
- package/dist/components/Form/FieldGroup/FieldGroupRoot.js +2 -0
- package/dist/components/Form/FieldGroup/FieldGroupRow.d.ts +5 -0
- package/dist/components/Form/FieldGroup/FieldGroupRow.d.ts.map +1 -0
- package/dist/components/Form/FieldGroup/FieldGroupRow.js +2 -0
- package/dist/components/Form/FieldsComponent.d.ts +13 -0
- package/dist/components/Form/FieldsComponent.d.ts.map +1 -0
- package/dist/components/Form/FieldsComponent.js +13 -0
- package/dist/components/Form/Form.d.ts +18 -0
- package/dist/components/Form/Form.d.ts.map +1 -0
- package/dist/components/Form/Form.js +64 -0
- package/dist/components/Form/NumberField/NumberField.d.ts +7 -0
- package/dist/components/Form/NumberField/NumberField.d.ts.map +1 -0
- package/dist/components/Form/NumberField/NumberField.js +12 -0
- package/dist/components/Form/NumberField/NumberFieldInput.d.ts +9 -0
- package/dist/components/Form/NumberField/NumberFieldInput.d.ts.map +1 -0
- package/dist/components/Form/NumberField/NumberFieldInput.js +21 -0
- package/dist/components/Form/NumberField/NumberFieldRadio.d.ts +9 -0
- package/dist/components/Form/NumberField/NumberFieldRadio.d.ts.map +1 -0
- package/dist/components/Form/NumberField/NumberFieldRadio.js +19 -0
- package/dist/components/Form/NumberField/NumberFieldSlider.d.ts +9 -0
- package/dist/components/Form/NumberField/NumberFieldSlider.d.ts.map +1 -0
- package/dist/components/Form/NumberField/NumberFieldSlider.js +14 -0
- package/dist/components/Form/NumberRecordField.d.ts +7 -0
- package/dist/components/Form/NumberRecordField.d.ts.map +1 -0
- package/dist/components/Form/NumberRecordField.js +17 -0
- package/dist/components/Form/RecordArrayField.d.ts +23 -0
- package/dist/components/Form/RecordArrayField.d.ts.map +1 -0
- package/dist/components/Form/RecordArrayField.js +56 -0
- package/dist/components/Form/ScalarField.d.ts +8 -0
- package/dist/components/Form/ScalarField.d.ts.map +1 -0
- package/dist/components/Form/ScalarField.js +22 -0
- package/dist/components/Form/SetField/SetField.d.ts +7 -0
- package/dist/components/Form/SetField/SetField.d.ts.map +1 -0
- package/dist/components/Form/SetField/SetField.js +27 -0
- package/dist/components/Form/SetField/SetFieldListbox.d.ts +7 -0
- package/dist/components/Form/SetField/SetFieldListbox.d.ts.map +1 -0
- package/dist/components/Form/SetField/SetFieldListbox.js +16 -0
- package/dist/components/Form/SetField/SetFieldSelect.d.ts +7 -0
- package/dist/components/Form/SetField/SetFieldSelect.d.ts.map +1 -0
- package/dist/components/Form/SetField/SetFieldSelect.js +23 -0
- package/dist/components/Form/StaticField.d.ts +14 -0
- package/dist/components/Form/StaticField.d.ts.map +1 -0
- package/dist/components/Form/StaticField.js +17 -0
- package/dist/components/Form/StringField/StringField.d.ts +8 -0
- package/dist/components/Form/StringField/StringField.d.ts.map +1 -0
- package/dist/components/Form/StringField/StringField.js +16 -0
- package/dist/components/Form/StringField/StringFieldInput.d.ts +6 -0
- package/dist/components/Form/StringField/StringFieldInput.d.ts.map +1 -0
- package/dist/components/Form/StringField/StringFieldInput.js +12 -0
- package/dist/components/Form/StringField/StringFieldPassword.d.ts +6 -0
- package/dist/components/Form/StringField/StringFieldPassword.d.ts.map +1 -0
- package/dist/components/Form/StringField/StringFieldPassword.js +19 -0
- package/dist/components/Form/StringField/StringFieldRadio.d.ts +9 -0
- package/dist/components/Form/StringField/StringFieldRadio.d.ts.map +1 -0
- package/dist/components/Form/StringField/StringFieldRadio.js +5 -0
- package/dist/components/Form/StringField/StringFieldSelect.d.ts +9 -0
- package/dist/components/Form/StringField/StringFieldSelect.d.ts.map +1 -0
- package/dist/components/Form/StringField/StringFieldSelect.js +16 -0
- package/dist/components/Form/StringField/StringFieldTextArea.d.ts +6 -0
- package/dist/components/Form/StringField/StringFieldTextArea.d.ts.map +1 -0
- package/dist/components/Form/StringField/StringFieldTextArea.js +12 -0
- package/dist/components/Form/types.d.ts +23 -0
- package/dist/components/Form/types.d.ts.map +1 -0
- package/dist/components/Form/types.js +1 -0
- package/dist/components/Form/utils.d.ts +10 -0
- package/dist/components/Form/utils.d.ts.map +1 -0
- package/dist/components/Form/utils.js +44 -0
- package/dist/components/Heading/Heading.d.ts +8 -0
- package/dist/components/Heading/Heading.d.ts.map +1 -0
- package/dist/components/Heading/Heading.js +18 -0
- package/dist/components/HoverCard/HoverCard.d.ts +6 -0
- package/dist/components/HoverCard/HoverCard.d.ts.map +1 -0
- package/dist/components/HoverCard/HoverCard.js +6 -0
- package/dist/components/HoverCard/HoverCardContent.d.ts +3 -0
- package/dist/components/HoverCard/HoverCardContent.d.ts.map +1 -0
- package/dist/components/HoverCard/HoverCardContent.js +6 -0
- package/dist/components/Input/Input.d.ts +4 -0
- package/dist/components/Input/Input.d.ts.map +1 -0
- package/dist/components/Input/Input.js +5 -0
- package/dist/components/Label/Label.d.ts +6 -0
- package/dist/components/Label/Label.d.ts.map +1 -0
- package/dist/components/Label/Label.js +8 -0
- package/dist/components/LanguageToggle/LanguageToggle.d.ts +12 -0
- package/dist/components/LanguageToggle/LanguageToggle.d.ts.map +1 -0
- package/dist/components/LanguageToggle/LanguageToggle.js +13 -0
- package/dist/components/LegacyDropdown/LegacyDropdown.d.ts +21 -0
- package/dist/components/LegacyDropdown/LegacyDropdown.d.ts.map +1 -0
- package/dist/components/LegacyDropdown/LegacyDropdown.js +17 -0
- package/dist/components/LegacyModal/LegacyModal.d.ts +13 -0
- package/dist/components/LegacyModal/LegacyModal.d.ts.map +1 -0
- package/dist/components/LegacyModal/LegacyModal.js +25 -0
- package/dist/components/LegacySelectDropdown/LegacySelectDropdown.d.ts +21 -0
- package/dist/components/LegacySelectDropdown/LegacySelectDropdown.d.ts.map +1 -0
- package/dist/components/LegacySelectDropdown/LegacySelectDropdown.js +18 -0
- package/dist/components/LegacySlider/LegacySlider.d.ts +11 -0
- package/dist/components/LegacySlider/LegacySlider.d.ts.map +1 -0
- package/dist/components/LegacySlider/LegacySlider.js +24 -0
- package/dist/components/LegacyStepper/LegacyStepper.d.ts +15 -0
- package/dist/components/LegacyStepper/LegacyStepper.d.ts.map +1 -0
- package/dist/components/LegacyStepper/LegacyStepper.js +46 -0
- package/dist/components/LegacyTable/LegacyClientTable.d.ts +5 -0
- package/dist/components/LegacyTable/LegacyClientTable.d.ts.map +1 -0
- package/dist/components/LegacyTable/LegacyClientTable.js +29 -0
- package/dist/components/LegacyTable/LegacyTable.d.ts +29 -0
- package/dist/components/LegacyTable/LegacyTable.d.ts.map +1 -0
- package/dist/components/LegacyTable/LegacyTable.js +54 -0
- package/dist/components/LegacyTable/LegacyTableColumnHeader.d.ts +16 -0
- package/dist/components/LegacyTable/LegacyTableColumnHeader.d.ts.map +1 -0
- package/dist/components/LegacyTable/LegacyTableColumnHeader.js +20 -0
- package/dist/components/LineGraph/LineGraph.d.ts +28 -0
- package/dist/components/LineGraph/LineGraph.d.ts.map +1 -0
- package/dist/components/LineGraph/LineGraph.js +42 -0
- package/dist/components/MenuBar/MenuBar.d.ts +28 -0
- package/dist/components/MenuBar/MenuBar.d.ts.map +1 -0
- package/dist/components/MenuBar/MenuBar.js +29 -0
- package/dist/components/MenuBar/MenuBarCheckboxItem.d.ts +3 -0
- package/dist/components/MenuBar/MenuBarCheckboxItem.d.ts.map +1 -0
- package/dist/components/MenuBar/MenuBarCheckboxItem.js +11 -0
- package/dist/components/MenuBar/MenuBarContent.d.ts +3 -0
- package/dist/components/MenuBar/MenuBarContent.d.ts.map +1 -0
- package/dist/components/MenuBar/MenuBarContent.js +7 -0
- package/dist/components/MenuBar/MenuBarItem.d.ts +5 -0
- package/dist/components/MenuBar/MenuBarItem.d.ts.map +1 -0
- package/dist/components/MenuBar/MenuBarItem.js +6 -0
- package/dist/components/MenuBar/MenuBarLabel.d.ts +5 -0
- package/dist/components/MenuBar/MenuBarLabel.d.ts.map +1 -0
- package/dist/components/MenuBar/MenuBarLabel.js +6 -0
- package/dist/components/MenuBar/MenuBarRadioItem.d.ts +3 -0
- package/dist/components/MenuBar/MenuBarRadioItem.d.ts.map +1 -0
- package/dist/components/MenuBar/MenuBarRadioItem.js +11 -0
- package/dist/components/MenuBar/MenuBarRoot.d.ts +3 -0
- package/dist/components/MenuBar/MenuBarRoot.d.ts.map +1 -0
- package/dist/components/MenuBar/MenuBarRoot.js +6 -0
- package/dist/components/MenuBar/MenuBarSeparator.d.ts +3 -0
- package/dist/components/MenuBar/MenuBarSeparator.d.ts.map +1 -0
- package/dist/components/MenuBar/MenuBarSeparator.js +6 -0
- package/dist/components/MenuBar/MenuBarShortcut.d.ts +3 -0
- package/dist/components/MenuBar/MenuBarShortcut.d.ts.map +1 -0
- package/dist/components/MenuBar/MenuBarShortcut.js +5 -0
- package/dist/components/MenuBar/MenuBarSubContent.d.ts +3 -0
- package/dist/components/MenuBar/MenuBarSubContent.d.ts.map +1 -0
- package/dist/components/MenuBar/MenuBarSubContent.js +6 -0
- package/dist/components/MenuBar/MenuBarSubTrigger.d.ts +5 -0
- package/dist/components/MenuBar/MenuBarSubTrigger.d.ts.map +1 -0
- package/dist/components/MenuBar/MenuBarSubTrigger.js +9 -0
- package/dist/components/MenuBar/MenuBarTrigger.d.ts +3 -0
- package/dist/components/MenuBar/MenuBarTrigger.d.ts.map +1 -0
- package/dist/components/MenuBar/MenuBarTrigger.js +6 -0
- package/dist/components/NotificationHub/NotificationHub.d.ts +8 -0
- package/dist/components/NotificationHub/NotificationHub.d.ts.map +1 -0
- package/dist/components/NotificationHub/NotificationHub.js +28 -0
- package/dist/components/NotificationHub/NotificationIcon.d.ts +7 -0
- package/dist/components/NotificationHub/NotificationIcon.d.ts.map +1 -0
- package/dist/components/NotificationHub/NotificationIcon.js +15 -0
- package/dist/components/Pagination/Pagination.d.ts +845 -0
- package/dist/components/Pagination/Pagination.d.ts.map +1 -0
- package/dist/components/Pagination/Pagination.js +15 -0
- package/dist/components/Pagination/PaginationContent.d.ts +3 -0
- package/dist/components/Pagination/PaginationContent.d.ts.map +1 -0
- package/dist/components/Pagination/PaginationContent.js +3 -0
- package/dist/components/Pagination/PaginationEllipsis.d.ts +3 -0
- package/dist/components/Pagination/PaginationEllipsis.d.ts.map +1 -0
- package/dist/components/Pagination/PaginationEllipsis.js +6 -0
- package/dist/components/Pagination/PaginationItem.d.ts +3 -0
- package/dist/components/Pagination/PaginationItem.d.ts.map +1 -0
- package/dist/components/Pagination/PaginationItem.js +2 -0
- package/dist/components/Pagination/PaginationLink.d.ts +8 -0
- package/dist/components/Pagination/PaginationLink.d.ts.map +1 -0
- package/dist/components/Pagination/PaginationLink.js +7 -0
- package/dist/components/Pagination/PaginationNext.d.ts +4 -0
- package/dist/components/Pagination/PaginationNext.d.ts.map +1 -0
- package/dist/components/Pagination/PaginationNext.js +11 -0
- package/dist/components/Pagination/PaginationPrevious.d.ts +4 -0
- package/dist/components/Pagination/PaginationPrevious.d.ts.map +1 -0
- package/dist/components/Pagination/PaginationPrevious.js +11 -0
- package/dist/components/Pagination/PaginationRoot.d.ts +3 -0
- package/dist/components/Pagination/PaginationRoot.d.ts.map +1 -0
- package/dist/components/Pagination/PaginationRoot.js +3 -0
- package/dist/components/Popover/Popover.d.ts +6 -0
- package/dist/components/Popover/Popover.d.ts.map +1 -0
- package/dist/components/Popover/Popover.js +6 -0
- package/dist/components/Popover/PopoverContent.d.ts +19 -0
- package/dist/components/Popover/PopoverContent.d.ts.map +1 -0
- package/dist/components/Popover/PopoverContent.js +7 -0
- package/dist/components/Progress/Progress.d.ts +4 -0
- package/dist/components/Progress/Progress.d.ts.map +1 -0
- package/dist/components/Progress/Progress.js +7 -0
- package/dist/components/RadioGroup/RadioGroup.d.ts +8 -0
- package/dist/components/RadioGroup/RadioGroup.d.ts.map +1 -0
- package/dist/components/RadioGroup/RadioGroup.js +10 -0
- package/dist/components/RadioGroup/RadioGroupItem.d.ts +4 -0
- package/dist/components/RadioGroup/RadioGroupItem.d.ts.map +1 -0
- package/dist/components/RadioGroup/RadioGroupItem.js +9 -0
- package/dist/components/Resizable/Resizable.d.ts +15 -0
- package/dist/components/Resizable/Resizable.d.ts.map +1 -0
- package/dist/components/Resizable/Resizable.js +11 -0
- package/dist/components/Resizable/ResizableHandle.d.ts +7 -0
- package/dist/components/Resizable/ResizableHandle.d.ts.map +1 -0
- package/dist/components/Resizable/ResizableHandle.js +6 -0
- package/dist/components/Resizable/ResizablePanelGroup.d.ts +5 -0
- package/dist/components/Resizable/ResizablePanelGroup.d.ts.map +1 -0
- package/dist/components/Resizable/ResizablePanelGroup.js +4 -0
- package/dist/components/ScrollArea/ScrollArea.d.ts +3 -0
- package/dist/components/ScrollArea/ScrollArea.d.ts.map +1 -0
- package/dist/components/ScrollArea/ScrollArea.js +10 -0
- package/dist/components/ScrollArea/ScrollBar.d.ts +3 -0
- package/dist/components/ScrollArea/ScrollBar.d.ts.map +1 -0
- package/dist/components/ScrollArea/ScrollBar.js +7 -0
- package/dist/components/SearchBar/SearchBar.d.ts +23 -0
- package/dist/components/SearchBar/SearchBar.d.ts.map +1 -0
- package/dist/components/SearchBar/SearchBar.js +13 -0
- package/dist/components/Select/Select.d.ts +14 -0
- package/dist/components/Select/Select.d.ts.map +1 -0
- package/dist/components/Select/Select.js +19 -0
- package/dist/components/Select/SelectContent.d.ts +4 -0
- package/dist/components/Select/SelectContent.d.ts.map +1 -0
- package/dist/components/Select/SelectContent.js +14 -0
- package/dist/components/Select/SelectItem.d.ts +4 -0
- package/dist/components/Select/SelectItem.d.ts.map +1 -0
- package/dist/components/Select/SelectItem.js +11 -0
- package/dist/components/Select/SelectLabel.d.ts +4 -0
- package/dist/components/Select/SelectLabel.d.ts.map +1 -0
- package/dist/components/Select/SelectLabel.js +6 -0
- package/dist/components/Select/SelectScrollDownButton.d.ts +4 -0
- package/dist/components/Select/SelectScrollDownButton.d.ts.map +1 -0
- package/dist/components/Select/SelectScrollDownButton.js +8 -0
- package/dist/components/Select/SelectScrollUpButton.d.ts +4 -0
- package/dist/components/Select/SelectScrollUpButton.d.ts.map +1 -0
- package/dist/components/Select/SelectScrollUpButton.js +8 -0
- package/dist/components/Select/SelectSeparator.d.ts +4 -0
- package/dist/components/Select/SelectSeparator.d.ts.map +1 -0
- package/dist/components/Select/SelectSeparator.js +6 -0
- package/dist/components/Select/SelectTrigger.d.ts +4 -0
- package/dist/components/Select/SelectTrigger.d.ts.map +1 -0
- package/dist/components/Select/SelectTrigger.js +7 -0
- package/dist/components/Separator/Separator.d.ts +4 -0
- package/dist/components/Separator/Separator.d.ts.map +1 -0
- package/dist/components/Separator/Separator.js +6 -0
- package/dist/components/Sheet/Sheet.d.ts +15 -0
- package/dist/components/Sheet/Sheet.d.ts.map +1 -0
- package/dist/components/Sheet/Sheet.js +18 -0
- package/dist/components/Sheet/SheetContent.d.ts +11 -0
- package/dist/components/Sheet/SheetContent.d.ts.map +1 -0
- package/dist/components/Sheet/SheetContent.js +27 -0
- package/dist/components/Sheet/SheetDescription.d.ts +3 -0
- package/dist/components/Sheet/SheetDescription.d.ts.map +1 -0
- package/dist/components/Sheet/SheetDescription.js +6 -0
- package/dist/components/Sheet/SheetFooter.d.ts +3 -0
- package/dist/components/Sheet/SheetFooter.d.ts.map +1 -0
- package/dist/components/Sheet/SheetFooter.js +3 -0
- package/dist/components/Sheet/SheetHeader.d.ts +3 -0
- package/dist/components/Sheet/SheetHeader.d.ts.map +1 -0
- package/dist/components/Sheet/SheetHeader.js +3 -0
- package/dist/components/Sheet/SheetOverlay.d.ts +3 -0
- package/dist/components/Sheet/SheetOverlay.d.ts.map +1 -0
- package/dist/components/Sheet/SheetOverlay.js +6 -0
- package/dist/components/Sheet/SheetTitle.d.ts +3 -0
- package/dist/components/Sheet/SheetTitle.d.ts.map +1 -0
- package/dist/components/Sheet/SheetTitle.js +6 -0
- package/dist/components/Slider/Slider.d.ts +3 -0
- package/dist/components/Slider/Slider.d.ts.map +1 -0
- package/dist/components/Slider/Slider.js +9 -0
- package/dist/components/Spinner/Spinner.d.ts +4 -0
- package/dist/components/Spinner/Spinner.d.ts.map +1 -0
- package/dist/components/Spinner/Spinner.js +13 -0
- package/dist/components/SpinnerIcon/SpinnerIcon.d.ts +3 -0
- package/dist/components/SpinnerIcon/SpinnerIcon.d.ts.map +1 -0
- package/dist/components/SpinnerIcon/SpinnerIcon.js +4 -0
- package/dist/components/Switch/Switch.d.ts +4 -0
- package/dist/components/Switch/Switch.d.ts.map +1 -0
- package/dist/components/Switch/Switch.js +7 -0
- package/dist/components/Table/Table.d.ts +11 -0
- package/dist/components/Table/Table.d.ts.map +1 -0
- package/dist/components/Table/Table.js +17 -0
- package/dist/components/Table/TableBody.d.ts +3 -0
- package/dist/components/Table/TableBody.d.ts.map +1 -0
- package/dist/components/Table/TableBody.js +5 -0
- package/dist/components/Table/TableCaption.d.ts +3 -0
- package/dist/components/Table/TableCaption.d.ts.map +1 -0
- package/dist/components/Table/TableCaption.js +5 -0
- package/dist/components/Table/TableCell.d.ts +3 -0
- package/dist/components/Table/TableCell.d.ts.map +1 -0
- package/dist/components/Table/TableCell.js +5 -0
- package/dist/components/Table/TableFooter.d.ts +3 -0
- package/dist/components/Table/TableFooter.d.ts.map +1 -0
- package/dist/components/Table/TableFooter.js +5 -0
- package/dist/components/Table/TableHead.d.ts +3 -0
- package/dist/components/Table/TableHead.d.ts.map +1 -0
- package/dist/components/Table/TableHead.js +5 -0
- package/dist/components/Table/TableHeader.d.ts +3 -0
- package/dist/components/Table/TableHeader.d.ts.map +1 -0
- package/dist/components/Table/TableHeader.js +5 -0
- package/dist/components/Table/TableRoot.d.ts +3 -0
- package/dist/components/Table/TableRoot.d.ts.map +1 -0
- package/dist/components/Table/TableRoot.js +6 -0
- package/dist/components/Table/TableRow.d.ts +3 -0
- package/dist/components/Table/TableRow.d.ts.map +1 -0
- package/dist/components/Table/TableRow.js +5 -0
- package/dist/components/Tabs/Tabs.d.ts +7 -0
- package/dist/components/Tabs/Tabs.d.ts.map +1 -0
- package/dist/components/Tabs/Tabs.js +9 -0
- package/dist/components/Tabs/TabsContent.d.ts +4 -0
- package/dist/components/Tabs/TabsContent.d.ts.map +1 -0
- package/dist/components/Tabs/TabsContent.js +6 -0
- package/dist/components/Tabs/TabsList.d.ts +4 -0
- package/dist/components/Tabs/TabsList.d.ts.map +1 -0
- package/dist/components/Tabs/TabsList.js +6 -0
- package/dist/components/Tabs/TabsRoot.d.ts +3 -0
- package/dist/components/Tabs/TabsRoot.d.ts.map +1 -0
- package/dist/components/Tabs/TabsRoot.js +5 -0
- package/dist/components/Tabs/TabsTrigger.d.ts +4 -0
- package/dist/components/Tabs/TabsTrigger.d.ts.map +1 -0
- package/dist/components/Tabs/TabsTrigger.js +6 -0
- package/dist/components/TextArea/TextArea.d.ts +4 -0
- package/dist/components/TextArea/TextArea.d.ts.map +1 -0
- package/dist/components/TextArea/TextArea.js +5 -0
- package/dist/components/ThemeToggle/ThemeToggle.d.ts +5 -0
- package/dist/components/ThemeToggle/ThemeToggle.d.ts.map +1 -0
- package/dist/components/ThemeToggle/ThemeToggle.js +16 -0
- package/dist/components/Tooltip/Tooltip.d.ts +6 -0
- package/dist/components/Tooltip/Tooltip.d.ts.map +1 -0
- package/dist/components/Tooltip/Tooltip.js +7 -0
- package/dist/components/Tooltip/TooltipContent.d.ts +15 -0
- package/dist/components/Tooltip/TooltipContent.d.ts.map +1 -0
- package/dist/components/Tooltip/TooltipContent.js +6 -0
- package/dist/components/Tooltip/TooltipRoot.d.ts +11 -0
- package/dist/components/Tooltip/TooltipRoot.d.ts.map +1 -0
- package/dist/components/Tooltip/TooltipRoot.js +6 -0
- package/dist/components/Tooltip/TooltipTrigger.d.ts +5 -0
- package/dist/components/Tooltip/TooltipTrigger.d.ts.map +1 -0
- package/dist/components/Tooltip/TooltipTrigger.js +7 -0
- package/dist/components.d.ts +55 -0
- package/dist/components.d.ts.map +1 -0
- package/dist/components.js +54 -0
- package/dist/context/LegacyStepperContext.d.ts +7 -0
- package/dist/context/LegacyStepperContext.d.ts.map +1 -0
- package/dist/context/LegacyStepperContext.js +3 -0
- package/dist/hooks/useDownload.d.ts +13 -0
- package/dist/hooks/useDownload.d.ts.map +1 -0
- package/dist/hooks/useDownload.js +42 -0
- package/dist/hooks/useEventCallback.d.ts +2 -0
- package/dist/hooks/useEventCallback.d.ts.map +1 -0
- package/dist/hooks/useEventCallback.js +11 -0
- package/dist/hooks/useEventListener.d.ts +7 -0
- package/dist/hooks/useEventListener.d.ts.map +1 -0
- package/dist/hooks/useEventListener.js +23 -0
- package/dist/hooks/useInterval.d.ts +2 -0
- package/dist/hooks/useInterval.d.ts.map +1 -0
- package/dist/hooks/useInterval.js +19 -0
- package/dist/hooks/useIsomorphicLayoutEffect.d.ts +3 -0
- package/dist/hooks/useIsomorphicLayoutEffect.d.ts.map +1 -0
- package/dist/hooks/useIsomorphicLayoutEffect.js +3 -0
- package/dist/hooks/useLegacyStepper.d.ts +7 -0
- package/dist/hooks/useLegacyStepper.d.ts.map +1 -0
- package/dist/hooks/useLegacyStepper.js +6 -0
- package/dist/hooks/useMediaQuery.d.ts +11 -0
- package/dist/hooks/useMediaQuery.d.ts.map +1 -0
- package/dist/hooks/useMediaQuery.js +34 -0
- package/dist/hooks/useNotificationsStore.d.ts +14 -0
- package/dist/hooks/useNotificationsStore.d.ts.map +1 -0
- package/dist/hooks/useNotificationsStore.js +14 -0
- package/dist/hooks/useOnClickOutside.d.ts +5 -0
- package/dist/hooks/useOnClickOutside.d.ts.map +1 -0
- package/dist/hooks/useOnClickOutside.js +12 -0
- package/dist/hooks/useSessionStorage.d.ts +38 -0
- package/dist/hooks/useSessionStorage.d.ts.map +1 -0
- package/dist/hooks/useSessionStorage.js +99 -0
- package/dist/hooks/useTheme.d.ts +19 -0
- package/dist/hooks/useTheme.d.ts.map +1 -0
- package/dist/hooks/useTheme.js +60 -0
- package/dist/hooks/useWindowSize.d.ts +6 -0
- package/dist/hooks/useWindowSize.d.ts.map +1 -0
- package/dist/hooks/useWindowSize.js +21 -0
- package/dist/hooks.d.ts +13 -0
- package/dist/hooks.d.ts.map +1 -0
- package/dist/hooks.js +12 -0
- package/dist/i18n.d.ts +13 -14
- package/dist/i18n.d.ts.map +1 -0
- package/dist/i18n.js +46 -211
- package/dist/testing/mocks.d.ts +16 -0
- package/dist/testing/mocks.d.ts.map +1 -0
- package/dist/testing/mocks.js +46 -0
- package/dist/testing/setup-tests.d.ts +2 -0
- package/dist/testing/setup-tests.d.ts.map +1 -0
- package/dist/testing/setup-tests.js +8 -0
- package/dist/translations/libui.json +154 -0
- package/dist/utils.d.ts +4 -6
- package/dist/utils.d.ts.map +1 -0
- package/dist/utils.js +8 -9
- package/package.json +13 -10
- package/src/assets/libui-logo.svg +113 -0
- package/src/components/Accordion/Accordion.tsx +10 -0
- package/src/components/Accordion/AccordionContent.tsx +20 -0
- package/src/components/Accordion/AccordionItem.tsx +12 -0
- package/src/components/Accordion/AccordionRoot.tsx +10 -0
- package/src/components/Accordion/AccordionTrigger.tsx +27 -0
- package/src/components/AlertDialog/AlertDialog.tsx +22 -0
- package/src/components/AlertDialog/AlertDialogAction.tsx +13 -0
- package/src/components/AlertDialog/AlertDialogCancel.tsx +15 -0
- package/src/components/AlertDialog/AlertDialogContent.tsx +25 -0
- package/src/components/AlertDialog/AlertDialogDescription.tsx +12 -0
- package/src/components/AlertDialog/AlertDialogFooter.tsx +7 -0
- package/src/components/AlertDialog/AlertDialogHeader.tsx +7 -0
- package/src/components/AlertDialog/AlertDialogOverlay.tsx +21 -0
- package/src/components/AlertDialog/AlertDialogTitle.tsx +12 -0
- package/src/components/ArrowToggle/ArrowToggle.tsx +63 -0
- package/src/components/Avatar/Avatar.tsx +8 -0
- package/src/components/Avatar/AvatarFallback.tsx +18 -0
- package/src/components/Avatar/AvatarImage.tsx +12 -0
- package/src/components/Avatar/AvatarRoot.tsx +19 -0
- package/src/components/Badge/Badge.tsx +30 -0
- package/src/components/Breadcrumb/Breadcrumb.tsx +16 -0
- package/src/components/Breadcrumb/BreadcrumbEllipsis.tsx +16 -0
- package/src/components/Breadcrumb/BreadcrumbItem.tsx +9 -0
- package/src/components/Breadcrumb/BreadcrumbLink.tsx +15 -0
- package/src/components/Breadcrumb/BreadcrumbList.tsx +18 -0
- package/src/components/Breadcrumb/BreadcrumbPage.tsx +18 -0
- package/src/components/Breadcrumb/BreadcrumbRoot.tsx +10 -0
- package/src/components/Breadcrumb/BreadcrumbSeparator.tsx +11 -0
- package/src/components/Button/Button.tsx +61 -0
- package/src/components/Card/Card.tsx +37 -0
- package/src/components/Checkbox/Checkbox.tsx +27 -0
- package/src/components/Collapsible/Collapsible.tsx +8 -0
- package/src/components/Collapsible/CollapsibleRoot.tsx +10 -0
- package/src/components/Command/Command.tsx +41 -0
- package/src/components/Command/CommandEmpty.tsx +10 -0
- package/src/components/Command/CommandGroup.tsx +21 -0
- package/src/components/Command/CommandInput.tsx +26 -0
- package/src/components/Command/CommandItem.tsx +21 -0
- package/src/components/Command/CommandList.tsx +18 -0
- package/src/components/Command/CommandSeparator.tsx +12 -0
- package/src/components/Command/CommandShortcut.tsx +7 -0
- package/src/components/ContextMenu/ContextMenu.tsx +28 -0
- package/src/components/ContextMenu/ContextMenuCheckboxItem.tsx +30 -0
- package/src/components/ContextMenu/ContextMenuContent.tsx +23 -0
- package/src/components/ContextMenu/ContextMenuItem.tsx +24 -0
- package/src/components/ContextMenu/ContextMenuLabel.tsx +20 -0
- package/src/components/ContextMenu/ContextMenuRadioItem.tsx +29 -0
- package/src/components/ContextMenu/ContextMenuSeparator.tsx +12 -0
- package/src/components/ContextMenu/ContextMenuShortcut.tsx +7 -0
- package/src/components/ContextMenu/ContextMenuSubContent.tsx +21 -0
- package/src/components/ContextMenu/ContextMenuSubTrigger.tsx +28 -0
- package/src/components/DatePicker/Calendar.tsx +64 -0
- package/src/components/DatePicker/DatePicker.tsx +156 -0
- package/src/components/DatePicker/YearSelector.tsx +49 -0
- package/src/components/Dialog/Dialog.tsx +16 -0
- package/src/components/Dialog/DialogContent.tsx +31 -0
- package/src/components/Dialog/DialogDescription.tsx +12 -0
- package/src/components/Dialog/DialogFooter.tsx +7 -0
- package/src/components/Dialog/DialogHeader.tsx +7 -0
- package/src/components/Dialog/DialogOverlay.tsx +21 -0
- package/src/components/Dialog/DialogTitle.tsx +12 -0
- package/src/components/Drawer/Drawer.tsx +23 -0
- package/src/components/Drawer/DrawerContent.tsx +27 -0
- package/src/components/Drawer/DrawerDescription.tsx +14 -0
- package/src/components/Drawer/DrawerFooter.tsx +7 -0
- package/src/components/Drawer/DrawerHeader.tsx +7 -0
- package/src/components/Drawer/DrawerTitle.tsx +18 -0
- package/src/components/DropdownButton/DropdownButton.tsx +25 -0
- package/src/components/DropdownMenu/DropdownMenu.tsx +28 -0
- package/src/components/DropdownMenu/DropdownMenuCheckboxItem.tsx +30 -0
- package/src/components/DropdownMenu/DropdownMenuContent.tsx +29 -0
- package/src/components/DropdownMenu/DropdownMenuItem.tsx +24 -0
- package/src/components/DropdownMenu/DropdownMenuLabel.tsx +20 -0
- package/src/components/DropdownMenu/DropdownMenuRadioItem.tsx +29 -0
- package/src/components/DropdownMenu/DropdownMenuSeparator.tsx +12 -0
- package/src/components/DropdownMenu/DropdownMenuShortcut.tsx +7 -0
- package/src/components/DropdownMenu/DropdownMenuSubContent.tsx +21 -0
- package/src/components/DropdownMenu/DropdownMenuSubTrigger.tsx +28 -0
- package/src/components/ErrorBoundary/ErrorBoundary.tsx +9 -0
- package/src/components/ErrorFallback/ErrorFallback.tsx +34 -0
- package/src/components/Form/BaseRadioField.tsx +68 -0
- package/src/components/Form/BooleanField/BooleanField.tsx +15 -0
- package/src/components/Form/BooleanField/BooleanFieldCheckbox.tsx +35 -0
- package/src/components/Form/BooleanField/BooleanFieldRadio.tsx +59 -0
- package/src/components/Form/DateField/DateField.tsx +68 -0
- package/src/components/Form/DynamicField.tsx +45 -0
- package/src/components/Form/ErrorMessage.tsx +11 -0
- package/src/components/Form/FieldGroup/FieldGroup.tsx +10 -0
- package/src/components/Form/FieldGroup/FieldGroupDescription.tsx +17 -0
- package/src/components/Form/FieldGroup/FieldGroupRoot.tsx +5 -0
- package/src/components/Form/FieldGroup/FieldGroupRow.tsx +5 -0
- package/src/components/Form/FieldsComponent.tsx +27 -0
- package/src/components/Form/Form.tsx +145 -0
- package/src/components/Form/NumberField/NumberField.tsx +17 -0
- package/src/components/Form/NumberField/NumberFieldInput.tsx +44 -0
- package/src/components/Form/NumberField/NumberFieldRadio.tsx +58 -0
- package/src/components/Form/NumberField/NumberFieldSlider.tsx +41 -0
- package/src/components/Form/NumberRecordField.tsx +60 -0
- package/src/components/Form/RecordArrayField.tsx +99 -0
- package/src/components/Form/ScalarField.tsx +39 -0
- package/src/components/Form/SetField/SetField.tsx +37 -0
- package/src/components/Form/SetField/SetFieldListbox.tsx +45 -0
- package/src/components/Form/SetField/SetFieldSelect.tsx +64 -0
- package/src/components/Form/StaticField.tsx +83 -0
- package/src/components/Form/StringField/StringField.tsx +25 -0
- package/src/components/Form/StringField/StringFieldInput.tsx +24 -0
- package/src/components/Form/StringField/StringFieldPassword.tsx +42 -0
- package/src/components/Form/StringField/StringFieldRadio.tsx +16 -0
- package/src/components/Form/StringField/StringFieldSelect.tsx +45 -0
- package/src/components/Form/StringField/StringFieldTextArea.tsx +24 -0
- package/src/components/Form/types.ts +26 -0
- package/src/components/Form/utils.ts +53 -0
- package/src/components/Heading/Heading.tsx +26 -0
- package/src/components/HoverCard/HoverCard.tsx +8 -0
- package/src/components/HoverCard/HoverCardContent.tsx +23 -0
- package/src/components/Input/Input.tsx +21 -0
- package/src/components/Label/Label.tsx +17 -0
- package/src/components/LanguageToggle/LanguageToggle.tsx +41 -0
- package/src/components/LegacyDropdown/LegacyDropdown.tsx +79 -0
- package/src/components/LegacyModal/LegacyModal.tsx +77 -0
- package/src/components/LegacySelectDropdown/LegacySelectDropdown.tsx +87 -0
- package/src/components/LegacySlider/LegacySlider.tsx +67 -0
- package/src/components/LegacyStepper/LegacyStepper.tsx +91 -0
- package/src/components/LegacyTable/LegacyClientTable.tsx +55 -0
- package/src/components/LegacyTable/LegacyTable.tsx +118 -0
- package/src/components/LegacyTable/LegacyTableColumnHeader.tsx +71 -0
- package/src/components/LineGraph/LineGraph.tsx +133 -0
- package/src/components/MenuBar/MenuBar.tsx +31 -0
- package/src/components/MenuBar/MenuBarCheckboxItem.tsx +30 -0
- package/src/components/MenuBar/MenuBarContent.tsx +25 -0
- package/src/components/MenuBar/MenuBarItem.tsx +24 -0
- package/src/components/MenuBar/MenuBarLabel.tsx +14 -0
- package/src/components/MenuBar/MenuBarRadioItem.tsx +29 -0
- package/src/components/MenuBar/MenuBarRoot.tsx +17 -0
- package/src/components/MenuBar/MenuBarSeparator.tsx +12 -0
- package/src/components/MenuBar/MenuBarShortcut.tsx +7 -0
- package/src/components/MenuBar/MenuBarSubContent.tsx +21 -0
- package/src/components/MenuBar/MenuBarSubTrigger.tsx +28 -0
- package/src/components/MenuBar/MenuBarTrigger.tsx +20 -0
- package/src/components/NotificationHub/NotificationHub.tsx +70 -0
- package/src/components/NotificationHub/NotificationIcon.tsx +22 -0
- package/src/components/Pagination/Pagination.tsx +16 -0
- package/src/components/Pagination/PaginationContent.tsx +7 -0
- package/src/components/Pagination/PaginationEllipsis.tsx +12 -0
- package/src/components/Pagination/PaginationItem.tsx +5 -0
- package/src/components/Pagination/PaginationLink.tsx +29 -0
- package/src/components/Pagination/PaginationNext.tsx +17 -0
- package/src/components/Pagination/PaginationPrevious.tsx +17 -0
- package/src/components/Pagination/PaginationRoot.tsx +12 -0
- package/src/components/Popover/Popover.tsx +8 -0
- package/src/components/Popover/PopoverContent.tsx +47 -0
- package/src/components/Progress/Progress.tsx +23 -0
- package/src/components/RadioGroup/RadioGroup.tsx +23 -0
- package/src/components/RadioGroup/RadioGroupItem.tsx +29 -0
- package/src/components/Resizable/Resizable.tsx +22 -0
- package/src/components/Resizable/ResizableHandle.tsx +26 -0
- package/src/components/Resizable/ResizablePanelGroup.tsx +14 -0
- package/src/components/ScrollArea/ScrollArea.tsx +18 -0
- package/src/components/ScrollArea/ScrollBar.tsx +26 -0
- package/src/components/SearchBar/SearchBar.tsx +49 -0
- package/src/components/Select/Select.tsx +21 -0
- package/src/components/Select/SelectContent.tsx +40 -0
- package/src/components/Select/SelectItem.tsx +29 -0
- package/src/components/Select/SelectLabel.tsx +12 -0
- package/src/components/Select/SelectScrollDownButton.tsx +21 -0
- package/src/components/Select/SelectScrollUpButton.tsx +21 -0
- package/src/components/Select/SelectSeparator.tsx +12 -0
- package/src/components/Select/SelectTrigger.tsx +16 -0
- package/src/components/Separator/Separator.tsx +25 -0
- package/src/components/Sheet/Sheet.tsx +20 -0
- package/src/components/Sheet/SheetContent.tsx +46 -0
- package/src/components/Sheet/SheetDescription.tsx +12 -0
- package/src/components/Sheet/SheetFooter.tsx +7 -0
- package/src/components/Sheet/SheetHeader.tsx +7 -0
- package/src/components/Sheet/SheetOverlay.tsx +21 -0
- package/src/components/Sheet/SheetTitle.tsx +12 -0
- package/src/components/Slider/Slider.tsx +22 -0
- package/src/components/Spinner/Spinner.tsx +22 -0
- package/src/components/SpinnerIcon/SpinnerIcon.tsx +21 -0
- package/src/components/Switch/Switch.tsx +27 -0
- package/src/components/Table/Table.tsx +18 -0
- package/src/components/Table/TableBody.tsx +9 -0
- package/src/components/Table/TableCaption.tsx +9 -0
- package/src/components/Table/TableCell.tsx +9 -0
- package/src/components/Table/TableFooter.tsx +15 -0
- package/src/components/Table/TableHead.tsx +18 -0
- package/src/components/Table/TableHeader.tsx +9 -0
- package/src/components/Table/TableRoot.tsx +14 -0
- package/src/components/Table/TableRow.tsx +15 -0
- package/src/components/Tabs/Tabs.tsx +10 -0
- package/src/components/Tabs/TabsContent.tsx +21 -0
- package/src/components/Tabs/TabsList.tsx +21 -0
- package/src/components/Tabs/TabsRoot.tsx +9 -0
- package/src/components/Tabs/TabsTrigger.tsx +21 -0
- package/src/components/TextArea/TextArea.tsx +23 -0
- package/src/components/ThemeToggle/ThemeToggle.tsx +31 -0
- package/src/components/Tooltip/Tooltip.tsx +8 -0
- package/src/components/Tooltip/TooltipContent.tsx +35 -0
- package/src/components/Tooltip/TooltipRoot.tsx +20 -0
- package/src/components/Tooltip/TooltipTrigger.tsx +17 -0
- package/src/components.ts +54 -0
- package/src/context/LegacyStepperContext.tsx +7 -0
- package/src/hooks/useDownload.ts +61 -0
- package/src/hooks/useEventCallback.ts +15 -0
- package/src/hooks/useEventListener.ts +73 -0
- package/src/hooks/useInterval.ts +25 -0
- package/src/hooks/useIsomorphicLayoutEffect.ts +5 -0
- package/src/hooks/useLegacyStepper.ts +8 -0
- package/src/hooks/useMediaQuery.ts +43 -0
- package/src/hooks/useNotificationsStore.ts +29 -0
- package/src/hooks/useOnClickOutside.ts +22 -0
- package/src/hooks/useSessionStorage.ts +155 -0
- package/src/hooks/useTheme.ts +75 -0
- package/src/hooks/useWindowSize.ts +32 -0
- package/src/hooks.ts +12 -0
- package/src/i18n.ts +78 -0
- package/src/styles/globals.css +86 -0
- package/src/testing/mocks.ts +53 -0
- package/src/testing/setup-tests.ts +11 -0
- package/src/translations/libui.json +154 -0
- package/src/typings/i18next.d.ts +21 -0
- package/src/utils.ts +10 -0
- package/dist/chunk-IP3LSCUG.js +0 -129
- package/dist/chunk-IP3LSCUG.js.map +0 -1
- package/dist/chunk-PAAJ5AH3.js +0 -15
- package/dist/chunk-PAAJ5AH3.js.map +0 -1
- package/dist/components/index.d.ts +0 -2043
- package/dist/components/index.js +0 -4141
- package/dist/components/index.js.map +0 -1
- package/dist/hooks/index.d.ts +0 -122
- package/dist/hooks/index.js +0 -219
- package/dist/hooks/index.js.map +0 -1
- package/dist/i18n.js.map +0 -1
- package/dist/utils.js.map +0 -1
|
@@ -0,0 +1,39 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
|
|
3
|
+
import type {
|
|
4
|
+
BooleanFormField,
|
|
5
|
+
DateFormField,
|
|
6
|
+
NumberFormField,
|
|
7
|
+
ScalarFieldValue,
|
|
8
|
+
SetFormField,
|
|
9
|
+
StringFormField
|
|
10
|
+
} from '@douglasneuroinformatics/libui-form-types';
|
|
11
|
+
|
|
12
|
+
import { BooleanField, type BooleanFieldProps } from './BooleanField/BooleanField.js';
|
|
13
|
+
import { DateField, type DateFieldProps } from './DateField/DateField.js';
|
|
14
|
+
import { NumberField, type NumberFieldProps } from './NumberField/NumberField.js';
|
|
15
|
+
import { SetField, type SetFieldProps } from './SetField/SetField.js';
|
|
16
|
+
import { StringField, type StringFieldProps } from './StringField/StringField.js';
|
|
17
|
+
|
|
18
|
+
import type { BaseFieldComponentProps } from './types.js';
|
|
19
|
+
|
|
20
|
+
export type ScalarFieldProps = BaseFieldComponentProps<ScalarFieldValue> & {
|
|
21
|
+
field: BooleanFormField | DateFormField | NumberFormField | SetFormField | StringFormField;
|
|
22
|
+
};
|
|
23
|
+
|
|
24
|
+
export const ScalarField = ({ field, ...props }: ScalarFieldProps) => {
|
|
25
|
+
switch (field.kind) {
|
|
26
|
+
case 'string':
|
|
27
|
+
return <StringField {...field} {...(props as StringFieldProps)} />;
|
|
28
|
+
case 'number':
|
|
29
|
+
return <NumberField {...field} {...(props as NumberFieldProps)} />;
|
|
30
|
+
case 'date':
|
|
31
|
+
return <DateField {...field} {...(props as DateFieldProps)} />;
|
|
32
|
+
case 'boolean':
|
|
33
|
+
return <BooleanField {...field} {...(props as BooleanFieldProps)} />;
|
|
34
|
+
case 'set':
|
|
35
|
+
return <SetField {...field} {...(props as SetFieldProps)} />;
|
|
36
|
+
default:
|
|
37
|
+
throw new Error(`Unexpected value for kind: ${Reflect.get(field, 'kind') satisfies never}`);
|
|
38
|
+
}
|
|
39
|
+
};
|
|
@@ -0,0 +1,37 @@
|
|
|
1
|
+
import React, { useEffect } from 'react';
|
|
2
|
+
|
|
3
|
+
import type { SetFormField } from '@douglasneuroinformatics/libui-form-types';
|
|
4
|
+
import { match } from 'ts-pattern';
|
|
5
|
+
import type { Simplify } from 'type-fest';
|
|
6
|
+
|
|
7
|
+
import { SetFieldListbox } from './SetFieldListbox.js';
|
|
8
|
+
import { SetFieldSelect } from './SetFieldSelect.js';
|
|
9
|
+
|
|
10
|
+
import type { BaseFieldComponentProps } from '../types.js';
|
|
11
|
+
|
|
12
|
+
export type SetFieldProps<T extends string = string> = Simplify<BaseFieldComponentProps<Set<T>> & SetFormField<Set<T>>>;
|
|
13
|
+
|
|
14
|
+
export const SetField = <T extends string = string>(props: SetFieldProps<T>) => {
|
|
15
|
+
useEffect(() => {
|
|
16
|
+
if (!props.value) {
|
|
17
|
+
props.setValue(new Set([]));
|
|
18
|
+
}
|
|
19
|
+
}, [props.value]);
|
|
20
|
+
|
|
21
|
+
const handleCheckedChange = (option: T, isChecked: boolean) => {
|
|
22
|
+
if (isChecked) {
|
|
23
|
+
const updatedValue = new Set<T>(props.value);
|
|
24
|
+
updatedValue.delete(option);
|
|
25
|
+
props.setValue(updatedValue);
|
|
26
|
+
} else {
|
|
27
|
+
const updatedValue = new Set<T>(props.value);
|
|
28
|
+
updatedValue.add(option);
|
|
29
|
+
props.setValue(updatedValue);
|
|
30
|
+
}
|
|
31
|
+
};
|
|
32
|
+
|
|
33
|
+
return match(props)
|
|
34
|
+
.with({ variant: 'select' }, (props) => <SetFieldSelect onCheckedChange={handleCheckedChange} {...props} />)
|
|
35
|
+
.with({ variant: 'listbox' }, (props) => <SetFieldListbox onCheckedChange={handleCheckedChange} {...props} />)
|
|
36
|
+
.exhaustive();
|
|
37
|
+
};
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
|
|
3
|
+
import { Checkbox } from '../../Checkbox/Checkbox.js';
|
|
4
|
+
import { Label } from '../../Label/Label.js';
|
|
5
|
+
import { FieldGroup } from '../FieldGroup/FieldGroup.js';
|
|
6
|
+
|
|
7
|
+
import type { SetFieldProps } from './SetField.js';
|
|
8
|
+
|
|
9
|
+
export type SetFieldListboxProps<T extends string = string> = SetFieldProps<T> & {
|
|
10
|
+
onCheckedChange: (option: T, isChecked: boolean) => void;
|
|
11
|
+
};
|
|
12
|
+
|
|
13
|
+
export const SetFieldListbox = <T extends string = string>({
|
|
14
|
+
description,
|
|
15
|
+
error,
|
|
16
|
+
label,
|
|
17
|
+
name,
|
|
18
|
+
onCheckedChange,
|
|
19
|
+
options,
|
|
20
|
+
value
|
|
21
|
+
}: SetFieldListboxProps<T>) => {
|
|
22
|
+
return (
|
|
23
|
+
<FieldGroup>
|
|
24
|
+
<FieldGroup.Row>
|
|
25
|
+
<Label>{label}</Label>
|
|
26
|
+
<FieldGroup.Description description={description} />
|
|
27
|
+
</FieldGroup.Row>
|
|
28
|
+
{Object.keys(options).map((option) => (
|
|
29
|
+
<div className="flex items-center gap-2" key={option}>
|
|
30
|
+
<Checkbox
|
|
31
|
+
checked={value?.has(option as T) ?? false}
|
|
32
|
+
id={`${name}-${option}`}
|
|
33
|
+
onCheckedChange={(checked) => {
|
|
34
|
+
onCheckedChange(option as T, !checked);
|
|
35
|
+
}}
|
|
36
|
+
/>
|
|
37
|
+
<Label className="font-normal" htmlFor={`${name}-${option}`}>
|
|
38
|
+
{options[option as T]}
|
|
39
|
+
</Label>
|
|
40
|
+
</div>
|
|
41
|
+
))}
|
|
42
|
+
<FieldGroup.Error error={error} />
|
|
43
|
+
</FieldGroup>
|
|
44
|
+
);
|
|
45
|
+
};
|
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
|
|
3
|
+
import { Badge } from '../../Badge/Badge.js';
|
|
4
|
+
import { DropdownButton } from '../../DropdownButton/DropdownButton.js';
|
|
5
|
+
import { DropdownMenu } from '../../DropdownMenu/DropdownMenu.js';
|
|
6
|
+
import { Label } from '../../Label/Label.js';
|
|
7
|
+
import { FieldGroup } from '../FieldGroup/FieldGroup.js';
|
|
8
|
+
|
|
9
|
+
import type { SetFieldProps } from './SetField.js';
|
|
10
|
+
|
|
11
|
+
export type SetFieldSelectProps<T extends string = string> = SetFieldProps<T> & {
|
|
12
|
+
onCheckedChange: (option: T, isChecked: boolean) => void;
|
|
13
|
+
};
|
|
14
|
+
|
|
15
|
+
export const SetFieldSelect = <T extends string = string>({
|
|
16
|
+
description,
|
|
17
|
+
error,
|
|
18
|
+
label,
|
|
19
|
+
onCheckedChange,
|
|
20
|
+
options,
|
|
21
|
+
value
|
|
22
|
+
}: SetFieldSelectProps<T>) => {
|
|
23
|
+
return value ? (
|
|
24
|
+
<FieldGroup>
|
|
25
|
+
<FieldGroup.Row>
|
|
26
|
+
<Label>{label}</Label>
|
|
27
|
+
<FieldGroup.Description description={description} />
|
|
28
|
+
</FieldGroup.Row>
|
|
29
|
+
<DropdownMenu>
|
|
30
|
+
<DropdownMenu.Trigger asChild className="w-full">
|
|
31
|
+
<DropdownButton>
|
|
32
|
+
{value.size ? (
|
|
33
|
+
<div className="flex items-center gap-2">
|
|
34
|
+
{Array.from(value).map((option) => (
|
|
35
|
+
<Badge className="font-normal" key={option} variant="outline">
|
|
36
|
+
{options[option]}
|
|
37
|
+
</Badge>
|
|
38
|
+
))}
|
|
39
|
+
</div>
|
|
40
|
+
) : null}
|
|
41
|
+
</DropdownButton>
|
|
42
|
+
</DropdownMenu.Trigger>
|
|
43
|
+
<DropdownMenu.Content widthFull align="start">
|
|
44
|
+
{Object.keys(options).map((option) => {
|
|
45
|
+
const checked = value.has(option as T);
|
|
46
|
+
return (
|
|
47
|
+
<DropdownMenu.CheckboxItem
|
|
48
|
+
checked={checked}
|
|
49
|
+
key={option}
|
|
50
|
+
onSelect={(event) => {
|
|
51
|
+
event.preventDefault();
|
|
52
|
+
onCheckedChange(option as T, value.has(option as T));
|
|
53
|
+
}}
|
|
54
|
+
>
|
|
55
|
+
{options[option as T]}
|
|
56
|
+
</DropdownMenu.CheckboxItem>
|
|
57
|
+
);
|
|
58
|
+
})}
|
|
59
|
+
</DropdownMenu.Content>
|
|
60
|
+
</DropdownMenu>
|
|
61
|
+
<FieldGroup.Error error={error} />
|
|
62
|
+
</FieldGroup>
|
|
63
|
+
) : null;
|
|
64
|
+
};
|
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
import React, { useCallback } from 'react';
|
|
2
|
+
|
|
3
|
+
import type {
|
|
4
|
+
FormDataType,
|
|
5
|
+
FormFieldValue,
|
|
6
|
+
NumberRecordFieldValue,
|
|
7
|
+
NumberRecordFormField,
|
|
8
|
+
PartialFormDataType,
|
|
9
|
+
RecordArrayFieldValue,
|
|
10
|
+
RecordArrayFormField,
|
|
11
|
+
ScalarFieldValue
|
|
12
|
+
} from '@douglasneuroinformatics/libui-form-types';
|
|
13
|
+
import { match } from 'ts-pattern';
|
|
14
|
+
|
|
15
|
+
import { NumberRecordField } from './NumberRecordField.js';
|
|
16
|
+
import { RecordArrayField } from './RecordArrayField.js';
|
|
17
|
+
import { ScalarField, type ScalarFieldProps } from './ScalarField.js';
|
|
18
|
+
|
|
19
|
+
import type { FieldError, FormErrors } from './types.js';
|
|
20
|
+
|
|
21
|
+
export type StaticFieldProps<TData extends FormDataType> = {
|
|
22
|
+
errors: FormErrors<TData>;
|
|
23
|
+
field: NumberRecordFormField | RecordArrayFormField | ScalarFieldProps['field'];
|
|
24
|
+
name: string;
|
|
25
|
+
setErrors: React.Dispatch<React.SetStateAction<FormErrors<TData>>>;
|
|
26
|
+
setValues: React.Dispatch<React.SetStateAction<PartialFormDataType<TData>>>;
|
|
27
|
+
values: PartialFormDataType<TData>;
|
|
28
|
+
};
|
|
29
|
+
|
|
30
|
+
export const StaticField = <TData extends FormDataType>({
|
|
31
|
+
errors,
|
|
32
|
+
field,
|
|
33
|
+
name,
|
|
34
|
+
setErrors,
|
|
35
|
+
setValues,
|
|
36
|
+
values
|
|
37
|
+
}: StaticFieldProps<TData>) => {
|
|
38
|
+
const setError = useCallback(
|
|
39
|
+
<TValue extends FormFieldValue>(error: FieldError<TValue>) => {
|
|
40
|
+
return setErrors((prevErrors) => ({ ...prevErrors, [name]: error }));
|
|
41
|
+
},
|
|
42
|
+
[setErrors]
|
|
43
|
+
);
|
|
44
|
+
|
|
45
|
+
const setValue = useCallback(
|
|
46
|
+
<TValue extends FormFieldValue>(value: TValue) => {
|
|
47
|
+
return setValues((prevValues) => ({ ...prevValues, [name]: value }));
|
|
48
|
+
},
|
|
49
|
+
[setValues]
|
|
50
|
+
);
|
|
51
|
+
|
|
52
|
+
return match(field)
|
|
53
|
+
.with({ kind: 'record-array' }, (field) => (
|
|
54
|
+
<RecordArrayField
|
|
55
|
+
{...field}
|
|
56
|
+
error={errors[name] as { [key: string]: string }[]}
|
|
57
|
+
name={name}
|
|
58
|
+
setError={setError}
|
|
59
|
+
setValue={setValue}
|
|
60
|
+
value={values[name] as RecordArrayFieldValue}
|
|
61
|
+
/>
|
|
62
|
+
))
|
|
63
|
+
.with({ kind: 'number-record' }, (field) => (
|
|
64
|
+
<NumberRecordField
|
|
65
|
+
{...field}
|
|
66
|
+
error={errors[name] as { [key: string]: string }}
|
|
67
|
+
name={name}
|
|
68
|
+
setError={setError}
|
|
69
|
+
setValue={setValue}
|
|
70
|
+
value={values[name] as NumberRecordFieldValue}
|
|
71
|
+
/>
|
|
72
|
+
))
|
|
73
|
+
.otherwise((field) => (
|
|
74
|
+
<ScalarField
|
|
75
|
+
error={errors[name] as string}
|
|
76
|
+
field={field}
|
|
77
|
+
name={name}
|
|
78
|
+
setError={setError}
|
|
79
|
+
setValue={setValue}
|
|
80
|
+
value={values[name] as ScalarFieldValue}
|
|
81
|
+
/>
|
|
82
|
+
));
|
|
83
|
+
};
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
|
|
3
|
+
import { match } from 'ts-pattern';
|
|
4
|
+
|
|
5
|
+
import { StringFieldInput, type StringFieldInputProps } from './StringFieldInput.js';
|
|
6
|
+
import { StringFieldPassword, type StringFieldPasswordProps } from './StringFieldPassword.js';
|
|
7
|
+
import { StringFieldRadio, type StringFieldRadioProps } from './StringFieldRadio.js';
|
|
8
|
+
import { StringFieldSelect } from './StringFieldSelect.js';
|
|
9
|
+
import { StringFieldTextArea, type StringFieldTextAreaProps } from './StringFieldTextArea.js';
|
|
10
|
+
|
|
11
|
+
export type StringFieldProps =
|
|
12
|
+
| StringFieldInputProps
|
|
13
|
+
| StringFieldPasswordProps
|
|
14
|
+
| StringFieldRadioProps
|
|
15
|
+
| StringFieldTextAreaProps;
|
|
16
|
+
|
|
17
|
+
export const StringField = (props: StringFieldProps) => {
|
|
18
|
+
return match(props)
|
|
19
|
+
.with({ variant: 'textarea' }, (props) => <StringFieldTextArea {...props} />)
|
|
20
|
+
.with({ variant: 'password' }, (props) => <StringFieldPassword {...props} />)
|
|
21
|
+
.with({ variant: 'input' }, (props) => <StringFieldInput {...props} />)
|
|
22
|
+
.with({ variant: 'select' }, (props) => <StringFieldSelect {...props} />)
|
|
23
|
+
.with({ variant: 'radio' }, (props) => <StringFieldRadio {...props} />)
|
|
24
|
+
.exhaustive();
|
|
25
|
+
};
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
|
|
3
|
+
import type { StringFormField } from '@douglasneuroinformatics/libui-form-types';
|
|
4
|
+
|
|
5
|
+
import { Input } from '../../Input/Input.js';
|
|
6
|
+
import { Label } from '../../Label/Label.js';
|
|
7
|
+
import { FieldGroup } from '../FieldGroup/FieldGroup.js';
|
|
8
|
+
|
|
9
|
+
import type { BaseFieldComponentProps } from '../types.js';
|
|
10
|
+
|
|
11
|
+
export type StringFieldInputProps = BaseFieldComponentProps<string> & StringFormField;
|
|
12
|
+
|
|
13
|
+
export const StringFieldInput = ({ description, error, label, name, setValue, value }: StringFieldInputProps) => {
|
|
14
|
+
return (
|
|
15
|
+
<FieldGroup>
|
|
16
|
+
<FieldGroup.Row>
|
|
17
|
+
<Label>{label}</Label>
|
|
18
|
+
<FieldGroup.Description description={description} />
|
|
19
|
+
</FieldGroup.Row>
|
|
20
|
+
<Input name={name} type="text" value={value ?? ''} onChange={(event) => setValue(event.target.value)} />
|
|
21
|
+
<FieldGroup.Error error={error} />
|
|
22
|
+
</FieldGroup>
|
|
23
|
+
);
|
|
24
|
+
};
|
|
@@ -0,0 +1,42 @@
|
|
|
1
|
+
import React, { useState } from 'react';
|
|
2
|
+
|
|
3
|
+
import type { StringFormField } from '@douglasneuroinformatics/libui-form-types';
|
|
4
|
+
import { EyeIcon, EyeOffIcon } from 'lucide-react';
|
|
5
|
+
|
|
6
|
+
import { cn } from '../../../utils.js';
|
|
7
|
+
import { Input } from '../../Input/Input.js';
|
|
8
|
+
import { Label } from '../../Label/Label.js';
|
|
9
|
+
import { FieldGroup } from '../FieldGroup/FieldGroup.js';
|
|
10
|
+
|
|
11
|
+
import type { BaseFieldComponentProps } from '../types.js';
|
|
12
|
+
|
|
13
|
+
export type StringFieldPasswordProps = BaseFieldComponentProps<string> & StringFormField;
|
|
14
|
+
|
|
15
|
+
export const StringFieldPassword = ({ description, error, label, name, setValue, value }: StringFieldPasswordProps) => {
|
|
16
|
+
const [show, setShow] = useState(false);
|
|
17
|
+
return (
|
|
18
|
+
<FieldGroup>
|
|
19
|
+
<FieldGroup.Row>
|
|
20
|
+
<Label>{label}</Label>
|
|
21
|
+
<FieldGroup.Description description={description} />
|
|
22
|
+
</FieldGroup.Row>
|
|
23
|
+
<FieldGroup.Row>
|
|
24
|
+
<Input
|
|
25
|
+
name={name}
|
|
26
|
+
type={show ? 'text' : 'password'}
|
|
27
|
+
value={value ?? ''}
|
|
28
|
+
onChange={(event) => setValue(event.target.value)}
|
|
29
|
+
/>
|
|
30
|
+
<button
|
|
31
|
+
className="absolute right-0 flex h-full w-8 items-center justify-center text-muted-foreground"
|
|
32
|
+
type="button"
|
|
33
|
+
onClick={() => setShow(!show)}
|
|
34
|
+
>
|
|
35
|
+
<EyeIcon className={cn('absolute transition-all', show ? '-rotate-90 scale-0' : 'rotate-0 scale-100')} />
|
|
36
|
+
<EyeOffIcon className={cn('absolute transition-all', !show ? 'rotate-90 scale-0' : 'rotate-0 scale-100')} />
|
|
37
|
+
</button>
|
|
38
|
+
</FieldGroup.Row>
|
|
39
|
+
<FieldGroup.Error error={error} />
|
|
40
|
+
</FieldGroup>
|
|
41
|
+
);
|
|
42
|
+
};
|
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
|
|
3
|
+
import type { StringFormField } from '@douglasneuroinformatics/libui-form-types';
|
|
4
|
+
import type { Simplify } from 'type-fest';
|
|
5
|
+
|
|
6
|
+
import { BaseRadioField } from '../BaseRadioField.js';
|
|
7
|
+
|
|
8
|
+
import type { BaseFieldComponentProps } from '../types.js';
|
|
9
|
+
|
|
10
|
+
export type StringFieldRadioProps<T extends string = string> = Simplify<
|
|
11
|
+
BaseFieldComponentProps<T> & Extract<StringFormField<T>, { options: object }>
|
|
12
|
+
>;
|
|
13
|
+
|
|
14
|
+
export const StringFieldRadio = <T extends string = string>(props: StringFieldRadioProps<T>) => {
|
|
15
|
+
return <BaseRadioField {...props} />;
|
|
16
|
+
};
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
|
|
3
|
+
import type { StringFormField } from '@douglasneuroinformatics/libui-form-types';
|
|
4
|
+
import type { Simplify } from 'type-fest';
|
|
5
|
+
|
|
6
|
+
import { Label } from '../../Label/Label.js';
|
|
7
|
+
import { Select } from '../../Select/Select.js';
|
|
8
|
+
import { FieldGroup } from '../FieldGroup/FieldGroup.js';
|
|
9
|
+
import { type BaseFieldComponentProps } from '../types.js';
|
|
10
|
+
|
|
11
|
+
export type StringFieldSelectProps<T extends string = string> = Simplify<
|
|
12
|
+
BaseFieldComponentProps<T> & Extract<StringFormField<T>, { options: object }>
|
|
13
|
+
>;
|
|
14
|
+
|
|
15
|
+
export const StringFieldSelect = <T extends string = string>({
|
|
16
|
+
description,
|
|
17
|
+
error,
|
|
18
|
+
label,
|
|
19
|
+
name,
|
|
20
|
+
options,
|
|
21
|
+
setValue,
|
|
22
|
+
value
|
|
23
|
+
}: StringFieldSelectProps<T>) => {
|
|
24
|
+
return (
|
|
25
|
+
<FieldGroup>
|
|
26
|
+
<FieldGroup.Row>
|
|
27
|
+
<Label>{label}</Label>
|
|
28
|
+
<FieldGroup.Description description={description} />
|
|
29
|
+
</FieldGroup.Row>
|
|
30
|
+
<Select name={name} value={value ?? ''} onValueChange={(value: T) => setValue(value)}>
|
|
31
|
+
<Select.Trigger data-cy={`${name}-select-trigger`} data-testid={`${name}-select-trigger`}>
|
|
32
|
+
<Select.Value />
|
|
33
|
+
</Select.Trigger>
|
|
34
|
+
<Select.Content data-cy={`${name}-select-content`} data-testid={`${name}-select-content`}>
|
|
35
|
+
{Object.keys(options).map((option) => (
|
|
36
|
+
<Select.Item key={option} value={option}>
|
|
37
|
+
{options[option as T]}
|
|
38
|
+
</Select.Item>
|
|
39
|
+
))}
|
|
40
|
+
</Select.Content>
|
|
41
|
+
</Select>
|
|
42
|
+
<FieldGroup.Error error={error} />
|
|
43
|
+
</FieldGroup>
|
|
44
|
+
);
|
|
45
|
+
};
|
|
@@ -0,0 +1,24 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
|
|
3
|
+
import type { StringFormField } from '@douglasneuroinformatics/libui-form-types';
|
|
4
|
+
|
|
5
|
+
import { Label } from '../../Label/Label.js';
|
|
6
|
+
import { TextArea } from '../../TextArea/TextArea.js';
|
|
7
|
+
import { FieldGroup } from '../FieldGroup/FieldGroup.js';
|
|
8
|
+
|
|
9
|
+
import type { BaseFieldComponentProps } from '../types.js';
|
|
10
|
+
|
|
11
|
+
export type StringFieldTextAreaProps = BaseFieldComponentProps<string> & StringFormField;
|
|
12
|
+
|
|
13
|
+
export const StringFieldTextArea = ({ description, error, label, name, setValue, value }: StringFieldTextAreaProps) => {
|
|
14
|
+
return (
|
|
15
|
+
<FieldGroup>
|
|
16
|
+
<FieldGroup.Row>
|
|
17
|
+
<Label>{label}</Label>
|
|
18
|
+
<FieldGroup.Description description={description} />
|
|
19
|
+
</FieldGroup.Row>
|
|
20
|
+
<TextArea name={name} rows={5} value={value ?? ''} onChange={(event) => setValue(event.target.value)} />
|
|
21
|
+
<FieldGroup.Error error={error} />
|
|
22
|
+
</FieldGroup>
|
|
23
|
+
);
|
|
24
|
+
};
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import type { FormDataType, FormFieldValue, ScalarFieldValue } from '@douglasneuroinformatics/libui-form-types';
|
|
2
|
+
|
|
3
|
+
export type FieldError<T extends FormFieldValue> =
|
|
4
|
+
T extends NonNullable<infer TValue>
|
|
5
|
+
? TValue extends NonNullable<ScalarFieldValue>
|
|
6
|
+
? string
|
|
7
|
+
: TValue extends { [key: string]: unknown }
|
|
8
|
+
? { [key: string]: string }
|
|
9
|
+
: TValue extends { [key: string]: unknown }[]
|
|
10
|
+
? { [key: string]: string }[]
|
|
11
|
+
: never
|
|
12
|
+
: never;
|
|
13
|
+
|
|
14
|
+
/** Common props for all field components */
|
|
15
|
+
export type BaseFieldComponentProps<TValue extends FormFieldValue = FormFieldValue> = {
|
|
16
|
+
error?: FieldError<TValue>;
|
|
17
|
+
name: string;
|
|
18
|
+
setError: (error: FieldError<TValue>) => void;
|
|
19
|
+
setValue: (value: TValue | undefined) => void;
|
|
20
|
+
value: TValue | undefined;
|
|
21
|
+
};
|
|
22
|
+
|
|
23
|
+
/** An object mapping field names to error messages, if applicable */
|
|
24
|
+
export type FormErrors<TData extends FormDataType = FormDataType> = {
|
|
25
|
+
[K in keyof TData]?: FieldError<TData[K]>;
|
|
26
|
+
};
|
|
@@ -0,0 +1,53 @@
|
|
|
1
|
+
import type {
|
|
2
|
+
FormContent,
|
|
3
|
+
FormDataType,
|
|
4
|
+
FormFields,
|
|
5
|
+
PartialFormDataType,
|
|
6
|
+
PartialNullableFormDataType,
|
|
7
|
+
StaticFormFields,
|
|
8
|
+
UnknownFormField
|
|
9
|
+
} from '@douglasneuroinformatics/libui-form-types';
|
|
10
|
+
|
|
11
|
+
export function getInitialValues<T extends FormDataType>(values: PartialNullableFormDataType<T>) {
|
|
12
|
+
const initialValues: { [key: string]: unknown } = {};
|
|
13
|
+
for (const key in values) {
|
|
14
|
+
const value = values[key];
|
|
15
|
+
if (value === null || value === undefined) {
|
|
16
|
+
continue;
|
|
17
|
+
} else if (Array.isArray(value)) {
|
|
18
|
+
initialValues[key] = value.map(getInitialValues);
|
|
19
|
+
} else {
|
|
20
|
+
initialValues[key] = value;
|
|
21
|
+
}
|
|
22
|
+
}
|
|
23
|
+
return initialValues as PartialFormDataType<T>;
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
/** Extract a flat array of form fields from the content. This function assumes there are no duplicate keys in groups */
|
|
27
|
+
export function getFormFields<T extends FormDataType>(content: FormContent<T>): FormFields<T> {
|
|
28
|
+
if (!Array.isArray(content)) {
|
|
29
|
+
return content;
|
|
30
|
+
}
|
|
31
|
+
return content.reduce((prev, current) => ({ ...prev, ...current.fields }), content[0].fields) as FormFields<T>;
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
/**
|
|
35
|
+
* Given a set of data, resolve static content for form fields. Null values
|
|
36
|
+
* will be removed.
|
|
37
|
+
*/
|
|
38
|
+
export function resolveStaticFormFields<T extends FormDataType>(content: FormContent<T>, data: PartialFormDataType<T>) {
|
|
39
|
+
const staticFormFields: Partial<StaticFormFields<T>> = {};
|
|
40
|
+
const formFields = getFormFields(content);
|
|
41
|
+
for (const fieldName in formFields) {
|
|
42
|
+
const field: UnknownFormField<T, typeof fieldName> = formFields[fieldName];
|
|
43
|
+
if (field.kind === 'dynamic') {
|
|
44
|
+
const resolvedField = field.render(data);
|
|
45
|
+
if (resolvedField) {
|
|
46
|
+
staticFormFields[fieldName] = resolvedField;
|
|
47
|
+
}
|
|
48
|
+
} else {
|
|
49
|
+
staticFormFields[fieldName] = field;
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
return staticFormFields;
|
|
53
|
+
}
|
|
@@ -0,0 +1,26 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
|
|
3
|
+
import { cn } from '../../utils.js';
|
|
4
|
+
|
|
5
|
+
export type HeadingProps = {
|
|
6
|
+
children: string;
|
|
7
|
+
className?: string;
|
|
8
|
+
variant: 'h1' | 'h2' | 'h3' | 'h4' | 'h5';
|
|
9
|
+
};
|
|
10
|
+
|
|
11
|
+
export const Heading = ({ children, className, variant }: HeadingProps) => {
|
|
12
|
+
switch (variant) {
|
|
13
|
+
case 'h1':
|
|
14
|
+
return <h1 className={cn('text-3xl font-bold tracking-tight', className)}>{children}</h1>;
|
|
15
|
+
case 'h2':
|
|
16
|
+
return <h2 className={cn('text-2xl font-semibold tracking-tight', className)}>{children}</h2>;
|
|
17
|
+
case 'h3':
|
|
18
|
+
return <h3 className={cn('text-xl font-semibold tracking-tight', className)}>{children}</h3>;
|
|
19
|
+
case 'h4':
|
|
20
|
+
return <h4 className={cn('text-lg font-semibold tracking-tight', className)}>{children}</h4>;
|
|
21
|
+
case 'h5':
|
|
22
|
+
return <h4 className={cn('text-base font-semibold tracking-tight', className)}>{children}</h4>;
|
|
23
|
+
default:
|
|
24
|
+
throw new Error(`Unhandled heading variant: ${variant satisfies never}`);
|
|
25
|
+
}
|
|
26
|
+
};
|
|
@@ -0,0 +1,23 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
|
|
3
|
+
import { Content } from '@radix-ui/react-hover-card';
|
|
4
|
+
|
|
5
|
+
import { cn } from '../../utils.js';
|
|
6
|
+
|
|
7
|
+
export const HoverCardContent = React.forwardRef<
|
|
8
|
+
React.ElementRef<typeof Content>,
|
|
9
|
+
React.ComponentPropsWithoutRef<typeof Content>
|
|
10
|
+
>(function HoverCardContent({ align = 'center', className, sideOffset = 4, ...props }, ref) {
|
|
11
|
+
return (
|
|
12
|
+
<Content
|
|
13
|
+
align={align}
|
|
14
|
+
className={cn(
|
|
15
|
+
'z-50 w-64 rounded-md border bg-popover p-4 text-popover-foreground shadow-md outline-none data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2',
|
|
16
|
+
className
|
|
17
|
+
)}
|
|
18
|
+
ref={ref}
|
|
19
|
+
sideOffset={sideOffset}
|
|
20
|
+
{...props}
|
|
21
|
+
/>
|
|
22
|
+
);
|
|
23
|
+
});
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
|
|
3
|
+
import { cn } from '../../utils.js';
|
|
4
|
+
|
|
5
|
+
export type InputProps = React.InputHTMLAttributes<HTMLInputElement>;
|
|
6
|
+
|
|
7
|
+
export const Input = React.forwardRef<HTMLInputElement, InputProps>(function Input({ className, type, ...props }, ref) {
|
|
8
|
+
return (
|
|
9
|
+
<input
|
|
10
|
+
autoComplete="off"
|
|
11
|
+
className={cn(
|
|
12
|
+
'flex h-9 w-full rounded-md border border-input bg-transparent px-3 py-1 text-sm shadow-sm transition-colors file:border-0 file:bg-transparent file:text-sm file:font-medium placeholder:text-muted-foreground focus-visible:outline-none focus-visible:ring-1 focus-visible:ring-ring disabled:cursor-not-allowed disabled:opacity-50',
|
|
13
|
+
className
|
|
14
|
+
)}
|
|
15
|
+
data-testid="input"
|
|
16
|
+
ref={ref}
|
|
17
|
+
type={type}
|
|
18
|
+
{...props}
|
|
19
|
+
/>
|
|
20
|
+
);
|
|
21
|
+
});
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import React from 'react';
|
|
2
|
+
|
|
3
|
+
import * as LabelPrimitive from '@radix-ui/react-label';
|
|
4
|
+
import { type VariantProps, cva } from 'class-variance-authority';
|
|
5
|
+
|
|
6
|
+
import { cn } from '../../utils.js';
|
|
7
|
+
|
|
8
|
+
export const labelVariants = cva(
|
|
9
|
+
'text-sm font-medium leading-none peer-disabled:cursor-not-allowed peer-disabled:opacity-70'
|
|
10
|
+
);
|
|
11
|
+
|
|
12
|
+
export const Label = React.forwardRef<
|
|
13
|
+
React.ElementRef<typeof LabelPrimitive.Root>,
|
|
14
|
+
React.ComponentPropsWithoutRef<typeof LabelPrimitive.Root> & VariantProps<typeof labelVariants>
|
|
15
|
+
>(function Label({ className, ...props }, ref) {
|
|
16
|
+
return <LabelPrimitive.Root className={cn(labelVariants(), className)} ref={ref} {...props} />;
|
|
17
|
+
});
|