@digdir/designsystemet-react 1.0.0-next.34 → 1.0.0-next.36
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 +1 -2
- package/dist/cjs/components/Accordion/Accordion.js +1 -1
- package/dist/cjs/components/Accordion/AccordionContent.js +1 -2
- package/dist/cjs/components/Accordion/AccordionHeading.js +4 -6
- package/dist/cjs/components/Accordion/AccordionItem.js +16 -52
- package/dist/cjs/components/Alert/Alert.js +2 -3
- package/dist/cjs/components/Avatar/Avatar.js +5 -10
- package/dist/cjs/components/Badge/Badge.js +4 -10
- package/dist/cjs/components/Breadcrumbs/Breadcrumbs.js +1 -2
- package/dist/cjs/components/Button/Button.js +5 -5
- package/dist/cjs/components/Card/Card.js +24 -6
- package/dist/cjs/components/Card/{CardMedia.js → CardBlock.js} +3 -4
- package/dist/cjs/components/Card/index.js +6 -17
- package/dist/cjs/components/Chip/Chips.js +51 -0
- package/dist/cjs/components/Chip/index.js +12 -11
- package/dist/cjs/components/Dropdown/Dropdown.js +2 -12
- package/dist/cjs/components/Dropdown/DropdownButton.js +12 -0
- package/dist/cjs/components/Dropdown/DropdownHeading.js +3 -6
- package/dist/cjs/components/Dropdown/DropdownItem.js +2 -5
- package/dist/cjs/components/Dropdown/DropdownList.js +1 -2
- package/dist/cjs/components/Dropdown/DropdownTriggerContext.js +26 -0
- package/dist/cjs/components/Dropdown/index.js +13 -7
- package/dist/cjs/components/ErrorSummary/ErrorSummary.js +2 -3
- package/dist/cjs/components/ErrorSummary/ErrorSummaryHeading.js +3 -8
- package/dist/cjs/components/ErrorSummary/ErrorSummaryList.js +1 -3
- package/dist/cjs/components/{Typography/Heading → Heading}/Heading.js +3 -4
- package/dist/cjs/components/HelpText/HelpText.js +2 -2
- package/dist/cjs/components/{Typography/Label → Label}/Label.js +3 -4
- package/dist/cjs/components/Link/Link.js +2 -2
- package/dist/cjs/components/List/Lists.js +2 -3
- package/dist/cjs/components/Modal/Modal.js +51 -0
- package/dist/cjs/components/Modal/ModalBlock.js +14 -0
- package/dist/cjs/components/Modal/ModalTrigger.js +4 -5
- package/dist/cjs/components/Modal/ModalTriggerContext.js +17 -0
- package/dist/cjs/components/Modal/index.js +12 -22
- package/dist/cjs/components/Pagination/Pagination.js +5 -14
- package/dist/cjs/components/Pagination/PaginationButton.js +2 -4
- package/dist/cjs/components/Pagination/PaginationItem.js +1 -4
- package/dist/cjs/components/Pagination/PaginationList.js +2 -5
- package/dist/cjs/components/Pagination/index.js +5 -19
- package/dist/cjs/components/Pagination/usePagination.js +46 -51
- package/dist/cjs/components/Paragraph/Paragraph.js +20 -0
- package/dist/cjs/components/Popover/Popover.js +41 -19
- package/dist/cjs/components/Popover/PopoverTrigger.js +2 -2
- package/dist/cjs/components/Popover/{PopoverContext.js → PopoverTriggerContext.js} +3 -3
- package/dist/cjs/components/Popover/index.js +4 -4
- package/dist/cjs/components/SkipLink/SkipLink.js +4 -4
- package/dist/cjs/components/Table/Table.js +2 -3
- package/dist/cjs/components/Table/TableFoot.js +11 -0
- package/dist/cjs/components/Table/index.js +11 -6
- package/dist/cjs/components/Tabs/Tabs.js +2 -3
- package/dist/cjs/components/Tabs/TabsPanel.js +2 -3
- package/dist/cjs/components/Tabs/TabsTab.js +1 -2
- package/dist/cjs/components/Tag/Tag.js +2 -3
- package/dist/cjs/components/ToggleGroup/ToggleGroup.js +1 -2
- package/dist/cjs/components/ToggleGroup/ToggleGroupItem.js +2 -2
- package/dist/cjs/components/ToggleGroup/useToggleGroupitem.js +0 -1
- package/dist/cjs/components/Tooltip/Tooltip.js +51 -22
- package/dist/cjs/components/{Typography/ValidationMessage → ValidationMessage}/ValidationMessage.js +2 -2
- package/dist/cjs/components/form/Checkbox/Checkbox.js +11 -19
- package/dist/cjs/components/form/Combobox/Combobox.js +3 -4
- package/dist/cjs/components/form/Combobox/Custom.js +2 -2
- package/dist/cjs/components/form/Combobox/Empty.js +2 -2
- package/dist/cjs/components/form/Combobox/Option/Option.js +5 -3
- package/dist/cjs/components/form/Combobox/internal/ComboboxChips.js +2 -2
- package/dist/cjs/components/form/Combobox/internal/ComboboxError.js +2 -2
- package/dist/cjs/components/form/Combobox/internal/ComboboxInput.js +2 -2
- package/dist/cjs/components/form/Combobox/internal/ComboboxLabel.js +3 -3
- package/dist/cjs/components/form/Field/Field.js +17 -0
- package/dist/cjs/components/form/Field/FieldAffix.js +16 -0
- package/dist/cjs/components/form/Field/FieldCounter.js +28 -0
- package/dist/cjs/components/form/Field/FieldDescription.js +11 -0
- package/dist/cjs/components/form/Field/fieldObserver.js +97 -0
- package/dist/cjs/components/form/Field/index.js +33 -0
- package/dist/cjs/components/form/Fieldset/Fieldset.js +2 -16
- package/dist/cjs/components/form/Fieldset/FieldsetDescription.js +12 -0
- package/dist/cjs/components/form/Fieldset/FieldsetLegend.js +12 -0
- package/dist/cjs/components/form/Fieldset/index.js +25 -0
- package/dist/cjs/components/form/Input/Input.js +23 -0
- package/dist/cjs/components/form/Radio/Radio.js +11 -10
- package/dist/cjs/components/form/Search/Search.js +2 -39
- package/dist/cjs/components/form/Search/SearchButton.js +12 -0
- package/dist/cjs/components/form/Search/SearchClear.js +28 -0
- package/dist/cjs/components/form/Search/SearchInput.js +14 -0
- package/dist/cjs/components/form/Search/index.js +33 -0
- package/dist/cjs/components/form/Select/Select.js +12 -10
- package/dist/cjs/components/form/Select/index.js +4 -3
- package/dist/cjs/components/form/Switch/Switch.js +10 -11
- package/dist/cjs/components/form/Textarea/Textarea.js +3 -20
- package/dist/cjs/components/form/Textfield/Textfield.js +14 -21
- package/dist/cjs/components/form/useFormField.js +1 -3
- package/dist/cjs/components/loaders/Skeleton/Skeleton.js +2 -1
- package/dist/cjs/components/loaders/Spinner/Spinner.js +6 -4
- package/dist/cjs/index.js +66 -63
- package/dist/cjs/utilities/hooks/useCheckboxGroup/useCheckboxGroup.js +121 -0
- package/dist/cjs/utilities/hooks/useRadioGroup/useRadioGroup.js +99 -0
- package/dist/esm/components/Accordion/Accordion.js +1 -1
- package/dist/esm/components/Accordion/AccordionContent.js +1 -2
- package/dist/esm/components/Accordion/AccordionHeading.js +4 -6
- package/dist/esm/components/Accordion/AccordionItem.js +17 -53
- package/dist/esm/components/Alert/Alert.js +2 -3
- package/dist/esm/components/Avatar/Avatar.js +5 -10
- package/dist/esm/components/Badge/Badge.js +4 -10
- package/dist/esm/components/Breadcrumbs/Breadcrumbs.js +1 -2
- package/dist/esm/components/Button/Button.js +6 -6
- package/dist/esm/components/Card/Card.js +25 -7
- package/dist/esm/components/Card/{CardMedia.js → CardBlock.js} +3 -4
- package/dist/esm/components/Card/index.js +6 -14
- package/dist/esm/components/Chip/Chips.js +46 -0
- package/dist/esm/components/Chip/index.js +9 -9
- package/dist/esm/components/Dropdown/Dropdown.js +4 -13
- package/dist/esm/components/Dropdown/DropdownButton.js +10 -0
- package/dist/esm/components/Dropdown/DropdownHeading.js +4 -7
- package/dist/esm/components/Dropdown/DropdownItem.js +3 -6
- package/dist/esm/components/Dropdown/DropdownList.js +1 -2
- package/dist/esm/components/Dropdown/DropdownTriggerContext.js +24 -0
- package/dist/esm/components/Dropdown/index.js +12 -7
- package/dist/esm/components/ErrorSummary/ErrorSummary.js +2 -3
- package/dist/esm/components/ErrorSummary/ErrorSummaryHeading.js +3 -8
- package/dist/esm/components/ErrorSummary/ErrorSummaryList.js +2 -4
- package/dist/esm/components/Heading/Heading.js +18 -0
- package/dist/esm/components/HelpText/HelpText.js +2 -2
- package/dist/esm/components/{Typography/Label → Label}/Label.js +3 -4
- package/dist/esm/components/Link/Link.js +2 -2
- package/dist/esm/components/List/Lists.js +2 -3
- package/dist/esm/components/Modal/Modal.js +49 -0
- package/dist/esm/components/Modal/ModalBlock.js +12 -0
- package/dist/esm/components/Modal/ModalTrigger.js +4 -5
- package/dist/esm/components/Modal/ModalTriggerContext.js +14 -0
- package/dist/esm/components/Modal/index.js +11 -18
- package/dist/esm/components/Pagination/Pagination.js +6 -15
- package/dist/esm/components/Pagination/PaginationButton.js +3 -5
- package/dist/esm/components/Pagination/PaginationItem.js +2 -5
- package/dist/esm/components/Pagination/PaginationList.js +3 -6
- package/dist/esm/components/Pagination/index.js +6 -16
- package/dist/esm/components/Pagination/usePagination.js +47 -52
- package/dist/esm/components/Paragraph/Paragraph.js +18 -0
- package/dist/esm/components/Popover/Popover.js +40 -18
- package/dist/esm/components/Popover/PopoverTrigger.js +1 -1
- package/dist/esm/components/Popover/{PopoverContext.js → PopoverTriggerContext.js} +3 -3
- package/dist/esm/components/Popover/index.js +4 -4
- package/dist/esm/components/SkipLink/SkipLink.js +4 -4
- package/dist/esm/components/Table/Table.js +2 -3
- package/dist/esm/components/Table/TableFoot.js +9 -0
- package/dist/esm/components/Table/index.js +11 -7
- package/dist/esm/components/Tabs/Tabs.js +2 -3
- package/dist/esm/components/Tabs/TabsPanel.js +2 -3
- package/dist/esm/components/Tabs/TabsTab.js +1 -2
- package/dist/esm/components/Tag/Tag.js +2 -3
- package/dist/esm/components/ToggleGroup/ToggleGroup.js +1 -2
- package/dist/esm/components/ToggleGroup/ToggleGroupItem.js +2 -2
- package/dist/esm/components/ToggleGroup/useToggleGroupitem.js +0 -1
- package/dist/esm/components/Tooltip/Tooltip.js +53 -24
- package/dist/esm/components/{Typography/ValidationMessage → ValidationMessage}/ValidationMessage.js +2 -2
- package/dist/esm/components/form/Checkbox/Checkbox.js +12 -20
- package/dist/esm/components/form/Combobox/Combobox.js +4 -5
- package/dist/esm/components/form/Combobox/Custom.js +2 -2
- package/dist/esm/components/form/Combobox/Empty.js +2 -2
- package/dist/esm/components/form/Combobox/Option/Option.js +5 -3
- package/dist/esm/components/form/Combobox/internal/ComboboxChips.js +2 -2
- package/dist/esm/components/form/Combobox/internal/ComboboxError.js +2 -2
- package/dist/esm/components/form/Combobox/internal/ComboboxInput.js +2 -2
- package/dist/esm/components/form/Combobox/internal/ComboboxLabel.js +3 -3
- package/dist/esm/components/form/Field/Field.js +15 -0
- package/dist/esm/components/form/Field/FieldAffix.js +13 -0
- package/dist/esm/components/form/Field/FieldCounter.js +26 -0
- package/dist/esm/components/form/Field/FieldDescription.js +9 -0
- package/dist/esm/components/form/Field/fieldObserver.js +95 -0
- package/dist/esm/components/form/Field/index.js +27 -0
- package/dist/esm/components/form/Fieldset/Fieldset.js +4 -18
- package/dist/esm/components/form/Fieldset/FieldsetDescription.js +10 -0
- package/dist/esm/components/form/Fieldset/FieldsetLegend.js +10 -0
- package/dist/esm/components/form/Fieldset/index.js +21 -0
- package/dist/esm/components/form/Input/Input.js +21 -0
- package/dist/esm/components/form/Radio/Radio.js +12 -11
- package/dist/esm/components/form/Search/Search.js +4 -41
- package/dist/esm/components/form/Search/SearchButton.js +10 -0
- package/dist/esm/components/form/Search/SearchClear.js +26 -0
- package/dist/esm/components/form/Search/SearchInput.js +12 -0
- package/dist/esm/components/form/Search/index.js +28 -0
- package/dist/esm/components/form/Select/Select.js +13 -11
- package/dist/esm/components/form/Select/index.js +4 -3
- package/dist/esm/components/form/Switch/Switch.js +11 -12
- package/dist/esm/components/form/Textarea/Textarea.js +5 -22
- package/dist/esm/components/form/Textfield/Textfield.js +16 -23
- package/dist/esm/components/form/useFormField.js +1 -3
- package/dist/esm/components/loaders/Skeleton/Skeleton.js +2 -1
- package/dist/esm/components/loaders/Spinner/Spinner.js +6 -4
- package/dist/esm/index.js +28 -28
- package/dist/esm/utilities/hooks/useCheckboxGroup/useCheckboxGroup.js +119 -0
- package/dist/esm/utilities/hooks/useRadioGroup/useRadioGroup.js +97 -0
- package/dist/types/colors.d.ts +4 -0
- package/dist/types/colors.d.ts.map +1 -0
- package/dist/types/components/Accordion/Accordion.d.ts +276 -16
- package/dist/types/components/Accordion/Accordion.d.ts.map +1 -1
- package/dist/types/components/Accordion/AccordionContent.d.ts.map +1 -1
- package/dist/types/components/Accordion/AccordionHeading.d.ts +2 -2
- package/dist/types/components/Accordion/AccordionHeading.d.ts.map +1 -1
- package/dist/types/components/Accordion/AccordionItem.d.ts +8 -8
- package/dist/types/components/Accordion/AccordionItem.d.ts.map +1 -1
- package/dist/types/components/Alert/Alert.d.ts +275 -23
- package/dist/types/components/Alert/Alert.d.ts.map +1 -1
- package/dist/types/components/Avatar/Avatar.d.ts +282 -36
- package/dist/types/components/Avatar/Avatar.d.ts.map +1 -1
- package/dist/types/components/Badge/Badge.d.ts +281 -50
- package/dist/types/components/Badge/Badge.d.ts.map +1 -1
- package/dist/types/components/Breadcrumbs/Breadcrumbs.d.ts +273 -18
- package/dist/types/components/Breadcrumbs/Breadcrumbs.d.ts.map +1 -1
- package/dist/types/components/Breadcrumbs/BreadcrumbsLink.d.ts +277 -5
- package/dist/types/components/Breadcrumbs/BreadcrumbsLink.d.ts.map +1 -1
- package/dist/types/components/Breadcrumbs/index.d.ts +546 -8
- package/dist/types/components/Breadcrumbs/index.d.ts.map +1 -1
- package/dist/types/components/Button/Button.d.ts +289 -41
- package/dist/types/components/Button/Button.d.ts.map +1 -1
- package/dist/types/components/Card/Card.d.ts +280 -34
- package/dist/types/components/Card/Card.d.ts.map +1 -1
- package/dist/types/components/Card/{CardMedia.d.ts → CardBlock.d.ts} +3 -3
- package/dist/types/components/Card/{CardMedia.d.ts.map → CardBlock.d.ts.map} +1 -1
- package/dist/types/components/Card/index.d.ts +278 -16
- package/dist/types/components/Card/index.d.ts.map +1 -1
- package/dist/types/components/Chip/Chips.d.ts +1204 -0
- package/dist/types/components/Chip/Chips.d.ts.map +1 -0
- package/dist/types/components/Chip/index.d.ts +1166 -21
- package/dist/types/components/Chip/index.d.ts.map +1 -1
- package/dist/types/components/Dropdown/Dropdown.d.ts +283 -15
- package/dist/types/components/Dropdown/Dropdown.d.ts.map +1 -1
- package/dist/types/components/Dropdown/DropdownButton.d.ts +4 -0
- package/dist/types/components/Dropdown/DropdownButton.d.ts.map +1 -0
- package/dist/types/components/Dropdown/DropdownHeading.d.ts +7 -3
- package/dist/types/components/Dropdown/DropdownHeading.d.ts.map +1 -1
- package/dist/types/components/Dropdown/DropdownItem.d.ts +3 -3
- package/dist/types/components/Dropdown/DropdownItem.d.ts.map +1 -1
- package/dist/types/components/Dropdown/DropdownList.d.ts.map +1 -1
- package/dist/types/components/Dropdown/DropdownTrigger.d.ts +285 -15
- package/dist/types/components/Dropdown/DropdownTrigger.d.ts.map +1 -1
- package/dist/types/components/Dropdown/DropdownTriggerContext.d.ts +22 -0
- package/dist/types/components/Dropdown/DropdownTriggerContext.d.ts.map +1 -0
- package/dist/types/components/Dropdown/index.d.ts +577 -25
- package/dist/types/components/Dropdown/index.d.ts.map +1 -1
- package/dist/types/components/ErrorSummary/ErrorSummary.d.ts +3 -8
- package/dist/types/components/ErrorSummary/ErrorSummary.d.ts.map +1 -1
- package/dist/types/components/ErrorSummary/ErrorSummaryHeading.d.ts +2 -3
- package/dist/types/components/ErrorSummary/ErrorSummaryHeading.d.ts.map +1 -1
- package/dist/types/components/ErrorSummary/ErrorSummaryList.d.ts +1 -2
- package/dist/types/components/ErrorSummary/ErrorSummaryList.d.ts.map +1 -1
- package/dist/types/components/ErrorSummary/index.d.ts +3 -7
- package/dist/types/components/ErrorSummary/index.d.ts.map +1 -1
- package/dist/types/components/{Typography/Heading → Heading}/Heading.d.ts +3 -11
- package/dist/types/components/Heading/Heading.d.ts.map +1 -0
- package/dist/types/components/Heading/index.d.ts.map +1 -0
- package/dist/types/components/HelpText/HelpText.d.ts +286 -22
- package/dist/types/components/HelpText/HelpText.d.ts.map +1 -1
- package/dist/types/components/{Typography/Label → Label}/Label.d.ts +4 -17
- package/dist/types/components/Label/Label.d.ts.map +1 -0
- package/dist/types/components/Label/index.d.ts.map +1 -0
- package/dist/types/components/Link/Link.d.ts +284 -20
- package/dist/types/components/Link/Link.d.ts.map +1 -1
- package/dist/types/components/List/Lists.d.ts +16 -9
- package/dist/types/components/List/Lists.d.ts.map +1 -1
- package/dist/types/components/List/index.d.ts +2 -4
- package/dist/types/components/List/index.d.ts.map +1 -1
- package/dist/types/components/Modal/Modal.d.ts +297 -0
- package/dist/types/components/Modal/Modal.d.ts.map +1 -0
- package/dist/types/components/{Card/CardFooter.d.ts → Modal/ModalBlock.d.ts} +3 -3
- package/dist/types/components/Modal/ModalBlock.d.ts.map +1 -0
- package/dist/types/components/Modal/ModalTrigger.d.ts +282 -7
- package/dist/types/components/Modal/ModalTrigger.d.ts.map +1 -1
- package/dist/types/components/Modal/ModalTriggerContext.d.ts +10 -0
- package/dist/types/components/Modal/ModalTriggerContext.d.ts.map +1 -0
- package/dist/types/components/Modal/index.d.ts +576 -20
- package/dist/types/components/Modal/index.d.ts.map +1 -1
- package/dist/types/components/Pagination/Pagination.d.ts +287 -45
- package/dist/types/components/Pagination/Pagination.d.ts.map +1 -1
- package/dist/types/components/Pagination/PaginationButton.d.ts +289 -5
- package/dist/types/components/Pagination/PaginationButton.d.ts.map +1 -1
- package/dist/types/components/Pagination/PaginationItem.d.ts.map +1 -1
- package/dist/types/components/Pagination/PaginationList.d.ts +1 -1
- package/dist/types/components/Pagination/PaginationList.d.ts.map +1 -1
- package/dist/types/components/Pagination/index.d.ts +565 -17
- package/dist/types/components/Pagination/index.d.ts.map +1 -1
- package/dist/types/components/Pagination/usePagination.d.ts +41 -17
- package/dist/types/components/Pagination/usePagination.d.ts.map +1 -1
- package/dist/types/components/{Typography/Paragraph → Paragraph}/Paragraph.d.ts +3 -13
- package/dist/types/components/Paragraph/Paragraph.d.ts.map +1 -0
- package/dist/types/components/Paragraph/index.d.ts.map +1 -0
- package/dist/types/components/Popover/Popover.d.ts +287 -43
- package/dist/types/components/Popover/Popover.d.ts.map +1 -1
- package/dist/types/components/Popover/PopoverTrigger.d.ts +285 -13
- package/dist/types/components/Popover/PopoverTrigger.d.ts.map +1 -1
- package/dist/types/components/Popover/PopoverTriggerContext.d.ts +13 -0
- package/dist/types/components/Popover/PopoverTriggerContext.d.ts.map +1 -0
- package/dist/types/components/Popover/index.d.ts +4 -4
- package/dist/types/components/Popover/index.d.ts.map +1 -1
- package/dist/types/components/SkipLink/SkipLink.d.ts +283 -7
- package/dist/types/components/SkipLink/SkipLink.d.ts.map +1 -1
- package/dist/types/components/Table/Table.d.ts +3 -12
- package/dist/types/components/Table/Table.d.ts.map +1 -1
- package/dist/types/components/Table/TableFoot.d.ts +4 -0
- package/dist/types/components/Table/TableFoot.d.ts.map +1 -0
- package/dist/types/components/Table/TableHeaderCell.d.ts.map +1 -1
- package/dist/types/components/Table/index.d.ts +18 -10
- package/dist/types/components/Table/index.d.ts.map +1 -1
- package/dist/types/components/Tabs/Tabs.d.ts +278 -20
- package/dist/types/components/Tabs/Tabs.d.ts.map +1 -1
- package/dist/types/components/Tabs/TabsPanel.d.ts.map +1 -1
- package/dist/types/components/Tabs/TabsTab.d.ts.map +1 -1
- package/dist/types/components/Tabs/index.d.ts +270 -5
- package/dist/types/components/Tabs/index.d.ts.map +1 -1
- package/dist/types/components/Tag/Tag.d.ts +276 -23
- package/dist/types/components/Tag/Tag.d.ts.map +1 -1
- package/dist/types/components/ToggleGroup/ToggleGroup.d.ts +279 -23
- package/dist/types/components/ToggleGroup/ToggleGroup.d.ts.map +1 -1
- package/dist/types/components/ToggleGroup/ToggleGroupItem.d.ts +285 -2
- package/dist/types/components/ToggleGroup/ToggleGroupItem.d.ts.map +1 -1
- package/dist/types/components/ToggleGroup/useToggleGroupitem.d.ts +0 -2
- package/dist/types/components/ToggleGroup/useToggleGroupitem.d.ts.map +1 -1
- package/dist/types/components/Tooltip/Tooltip.d.ts +286 -33
- package/dist/types/components/Tooltip/Tooltip.d.ts.map +1 -1
- package/dist/types/components/ValidationMessage/ValidationMessage.d.ts +285 -0
- package/dist/types/components/ValidationMessage/ValidationMessage.d.ts.map +1 -0
- package/dist/types/components/ValidationMessage/index.d.ts.map +1 -0
- package/dist/types/components/form/CharacterCounter.d.ts +2 -2
- package/dist/types/components/form/CharacterCounter.d.ts.map +1 -1
- package/dist/types/components/form/Checkbox/Checkbox.d.ts +36 -19
- package/dist/types/components/form/Checkbox/Checkbox.d.ts.map +1 -1
- package/dist/types/components/form/Checkbox/index.d.ts +2 -21
- package/dist/types/components/form/Checkbox/index.d.ts.map +1 -1
- package/dist/types/components/form/Combobox/Combobox.d.ts +3 -3
- package/dist/types/components/form/Combobox/Combobox.d.ts.map +1 -1
- package/dist/types/components/form/Combobox/Option/Option.d.ts.map +1 -1
- package/dist/types/components/form/Combobox/internal/ComboboxLabel.d.ts.map +1 -1
- package/dist/types/components/form/Field/Field.d.ts +15 -0
- package/dist/types/components/form/Field/Field.d.ts.map +1 -0
- package/dist/types/components/form/Field/FieldAffix.d.ts +6 -0
- package/dist/types/components/form/Field/FieldAffix.d.ts.map +1 -0
- package/dist/types/components/form/Field/FieldCounter.d.ts +296 -0
- package/dist/types/components/form/Field/FieldCounter.d.ts.map +1 -0
- package/dist/types/components/form/Field/FieldDescription.d.ts +4 -0
- package/dist/types/components/form/Field/FieldDescription.d.ts.map +1 -0
- package/dist/types/components/form/Field/fieldObserver.d.ts +2 -0
- package/dist/types/components/form/Field/fieldObserver.d.ts.map +1 -0
- package/dist/types/components/form/Field/index.d.ts +300 -0
- package/dist/types/components/form/Field/index.d.ts.map +1 -0
- package/dist/types/components/form/Fieldset/Fieldset.d.ts +276 -25
- package/dist/types/components/form/Fieldset/Fieldset.d.ts.map +1 -1
- package/dist/types/components/form/Fieldset/FieldsetContext.d.ts +1 -1
- package/dist/types/components/form/Fieldset/FieldsetContext.d.ts.map +1 -1
- package/dist/types/components/form/Fieldset/FieldsetDescription.d.ts +8 -0
- package/dist/types/components/form/Fieldset/FieldsetDescription.d.ts.map +1 -0
- package/dist/types/components/form/Fieldset/FieldsetLegend.d.ts +5 -0
- package/dist/types/components/form/Fieldset/FieldsetLegend.d.ts.map +1 -0
- package/dist/types/components/form/Fieldset/index.d.ts +295 -1
- package/dist/types/components/form/Fieldset/index.d.ts.map +1 -1
- package/dist/types/components/form/Input/Input.d.ts +334 -0
- package/dist/types/components/form/Input/Input.d.ts.map +1 -0
- package/dist/types/components/form/Input/index.d.ts +3 -0
- package/dist/types/components/form/Input/index.d.ts.map +1 -0
- package/dist/types/components/form/Radio/Radio.d.ts +37 -12
- package/dist/types/components/form/Radio/Radio.d.ts.map +1 -1
- package/dist/types/components/form/Radio/index.d.ts +2 -19
- package/dist/types/components/form/Radio/index.d.ts.map +1 -1
- package/dist/types/components/form/Search/Search.d.ts +3 -75
- package/dist/types/components/form/Search/Search.d.ts.map +1 -1
- package/dist/types/components/form/Search/SearchButton.d.ts +295 -0
- package/dist/types/components/form/Search/SearchButton.d.ts.map +1 -0
- package/dist/types/components/form/Search/SearchClear.d.ts +299 -0
- package/dist/types/components/form/Search/SearchClear.d.ts.map +1 -0
- package/dist/types/components/form/Search/SearchInput.d.ts +4 -0
- package/dist/types/components/form/Search/SearchInput.d.ts.map +1 -0
- package/dist/types/components/form/Search/index.d.ts +593 -1
- package/dist/types/components/form/Search/index.d.ts.map +1 -1
- package/dist/types/components/form/Select/Select.d.ts +283 -57
- package/dist/types/components/form/Select/Select.d.ts.map +1 -1
- package/dist/types/components/form/Select/index.d.ts +283 -5
- package/dist/types/components/form/Select/index.d.ts.map +1 -1
- package/dist/types/components/form/Switch/Switch.d.ts +43 -18
- package/dist/types/components/form/Switch/Switch.d.ts.map +1 -1
- package/dist/types/components/form/Textarea/Textarea.d.ts +5 -44
- package/dist/types/components/form/Textarea/Textarea.d.ts.map +1 -1
- package/dist/types/components/form/Textfield/Textfield.d.ts +38 -61
- package/dist/types/components/form/Textfield/Textfield.d.ts.map +1 -1
- package/dist/types/components/form/useFormField.d.ts +2 -1
- package/dist/types/components/form/useFormField.d.ts.map +1 -1
- package/dist/types/components/index.d.ts +6 -1
- package/dist/types/components/index.d.ts.map +1 -1
- package/dist/types/components/loaders/Skeleton/Skeleton.d.ts +8 -17
- package/dist/types/components/loaders/Skeleton/Skeleton.d.ts.map +1 -1
- package/dist/types/components/loaders/Spinner/Spinner.d.ts +15 -14
- package/dist/types/components/loaders/Spinner/Spinner.d.ts.map +1 -1
- package/dist/types/components/loaders/Spinner/index.d.ts +1 -2
- package/dist/types/components/loaders/Spinner/index.d.ts.map +1 -1
- package/dist/types/types.d.ts +19 -0
- package/dist/types/types.d.ts.map +1 -0
- package/dist/types/utilities/RovingFocus/useRovingFocus.d.ts +1 -1
- package/dist/types/utilities/hooks/useCheckboxGroup/useCheckboxGroup.d.ts +377 -0
- package/dist/types/utilities/hooks/useCheckboxGroup/useCheckboxGroup.d.ts.map +1 -0
- package/dist/types/utilities/hooks/useRadioGroup/useRadioGroup.d.ts +365 -0
- package/dist/types/utilities/hooks/useRadioGroup/useRadioGroup.d.ts.map +1 -0
- package/dist/types/utilities/index.d.ts +1 -0
- package/dist/types/utilities/index.d.ts.map +1 -1
- package/dist/types/utilities/types.d.ts +10 -0
- package/dist/types/utilities/types.d.ts.map +1 -0
- package/package.json +3 -3
- package/dist/cjs/components/Card/CardContent.js +0 -16
- package/dist/cjs/components/Card/CardFooter.js +0 -16
- package/dist/cjs/components/Card/CardHeader.js +0 -16
- package/dist/cjs/components/Chip/Group/Group.js +0 -15
- package/dist/cjs/components/Chip/Removable/Removable.js +0 -17
- package/dist/cjs/components/Chip/Toggle/Toggle.js +0 -18
- package/dist/cjs/components/Dropdown/DropdownContext.js +0 -26
- package/dist/cjs/components/Modal/ModaContent.js +0 -15
- package/dist/cjs/components/Modal/ModalDialog.js +0 -73
- package/dist/cjs/components/Modal/ModalFooter.js +0 -15
- package/dist/cjs/components/Modal/ModalHeader.js +0 -20
- package/dist/cjs/components/Modal/ModalRoot.js +0 -31
- package/dist/cjs/components/Modal/useModalState.js +0 -30
- package/dist/cjs/components/Modal/useScrollLock.js +0 -29
- package/dist/cjs/components/Pagination/PaginationEllipsis.js +0 -15
- package/dist/cjs/components/Pagination/PaginationNextPrev.js +0 -16
- package/dist/cjs/components/Pagination/PaginationRoot.js +0 -18
- package/dist/cjs/components/Typography/Ingress/Ingress.js +0 -21
- package/dist/cjs/components/Typography/Paragraph/Paragraph.js +0 -26
- package/dist/cjs/components/form/CharacterCounter.js +0 -17
- package/dist/cjs/components/form/Checkbox/CheckboxGroup.js +0 -31
- package/dist/cjs/components/form/Checkbox/index.js +0 -13
- package/dist/cjs/components/form/Checkbox/useCheckbox.js +0 -44
- package/dist/cjs/components/form/Radio/RadioGroup.js +0 -23
- package/dist/cjs/components/form/Radio/index.js +0 -13
- package/dist/cjs/components/form/Radio/useRadio.js +0 -46
- package/dist/cjs/components/form/Search/useSearch.js +0 -39
- package/dist/cjs/components/form/Select/useSelect.js +0 -49
- package/dist/cjs/components/form/Switch/useSwitch.js +0 -46
- package/dist/cjs/components/form/Textarea/useTextarea.js +0 -37
- package/dist/cjs/components/form/Textfield/useTextfield.js +0 -37
- package/dist/esm/components/Card/CardContent.js +0 -14
- package/dist/esm/components/Card/CardFooter.js +0 -14
- package/dist/esm/components/Card/CardHeader.js +0 -14
- package/dist/esm/components/Chip/Group/Group.js +0 -12
- package/dist/esm/components/Chip/Removable/Removable.js +0 -15
- package/dist/esm/components/Chip/Toggle/Toggle.js +0 -16
- package/dist/esm/components/Dropdown/DropdownContext.js +0 -24
- package/dist/esm/components/Modal/ModaContent.js +0 -13
- package/dist/esm/components/Modal/ModalDialog.js +0 -71
- package/dist/esm/components/Modal/ModalFooter.js +0 -13
- package/dist/esm/components/Modal/ModalHeader.js +0 -18
- package/dist/esm/components/Modal/ModalRoot.js +0 -28
- package/dist/esm/components/Modal/useModalState.js +0 -28
- package/dist/esm/components/Modal/useScrollLock.js +0 -27
- package/dist/esm/components/Pagination/PaginationEllipsis.js +0 -13
- package/dist/esm/components/Pagination/PaginationNextPrev.js +0 -13
- package/dist/esm/components/Pagination/PaginationRoot.js +0 -15
- package/dist/esm/components/Typography/Heading/Heading.js +0 -19
- package/dist/esm/components/Typography/Ingress/Ingress.js +0 -19
- package/dist/esm/components/Typography/Paragraph/Paragraph.js +0 -24
- package/dist/esm/components/form/CharacterCounter.js +0 -15
- package/dist/esm/components/form/Checkbox/CheckboxGroup.js +0 -28
- package/dist/esm/components/form/Checkbox/index.js +0 -10
- package/dist/esm/components/form/Checkbox/useCheckbox.js +0 -42
- package/dist/esm/components/form/Radio/RadioGroup.js +0 -20
- package/dist/esm/components/form/Radio/index.js +0 -10
- package/dist/esm/components/form/Radio/useRadio.js +0 -44
- package/dist/esm/components/form/Search/useSearch.js +0 -37
- package/dist/esm/components/form/Select/useSelect.js +0 -47
- package/dist/esm/components/form/Switch/useSwitch.js +0 -44
- package/dist/esm/components/form/Textarea/useTextarea.js +0 -35
- package/dist/esm/components/form/Textfield/useTextfield.js +0 -35
- package/dist/types/components/Card/CardContent.d.ts +0 -16
- package/dist/types/components/Card/CardContent.d.ts.map +0 -1
- package/dist/types/components/Card/CardFooter.d.ts.map +0 -1
- package/dist/types/components/Card/CardHeader.d.ts +0 -16
- package/dist/types/components/Card/CardHeader.d.ts.map +0 -1
- package/dist/types/components/Chip/Group/Group.d.ts +0 -20
- package/dist/types/components/Chip/Group/Group.d.ts.map +0 -1
- package/dist/types/components/Chip/Removable/Removable.d.ts +0 -17
- package/dist/types/components/Chip/Removable/Removable.d.ts.map +0 -1
- package/dist/types/components/Chip/Toggle/Toggle.d.ts +0 -33
- package/dist/types/components/Chip/Toggle/Toggle.d.ts.map +0 -1
- package/dist/types/components/Dropdown/DropdownContext.d.ts +0 -22
- package/dist/types/components/Dropdown/DropdownContext.d.ts.map +0 -1
- package/dist/types/components/Modal/ModaContent.d.ts +0 -16
- package/dist/types/components/Modal/ModaContent.d.ts.map +0 -1
- package/dist/types/components/Modal/ModalDialog.d.ts +0 -38
- package/dist/types/components/Modal/ModalDialog.d.ts.map +0 -1
- package/dist/types/components/Modal/ModalFooter.d.ts +0 -16
- package/dist/types/components/Modal/ModalFooter.d.ts.map +0 -1
- package/dist/types/components/Modal/ModalHeader.d.ts +0 -44
- package/dist/types/components/Modal/ModalHeader.d.ts.map +0 -1
- package/dist/types/components/Modal/ModalRoot.d.ts +0 -17
- package/dist/types/components/Modal/ModalRoot.d.ts.map +0 -1
- package/dist/types/components/Modal/useModalState.d.ts +0 -2
- package/dist/types/components/Modal/useModalState.d.ts.map +0 -1
- package/dist/types/components/Modal/useScrollLock.d.ts +0 -2
- package/dist/types/components/Modal/useScrollLock.d.ts.map +0 -1
- package/dist/types/components/Pagination/PaginationEllipsis.d.ts +0 -4
- package/dist/types/components/Pagination/PaginationEllipsis.d.ts.map +0 -1
- package/dist/types/components/Pagination/PaginationNextPrev.d.ts +0 -10
- package/dist/types/components/Pagination/PaginationNextPrev.d.ts.map +0 -1
- package/dist/types/components/Pagination/PaginationRoot.d.ts +0 -53
- package/dist/types/components/Pagination/PaginationRoot.d.ts.map +0 -1
- package/dist/types/components/Popover/PopoverContext.d.ts +0 -13
- package/dist/types/components/Popover/PopoverContext.d.ts.map +0 -1
- package/dist/types/components/Typography/Heading/Heading.d.ts.map +0 -1
- package/dist/types/components/Typography/Heading/index.d.ts.map +0 -1
- package/dist/types/components/Typography/Ingress/Ingress.d.ts +0 -34
- package/dist/types/components/Typography/Ingress/Ingress.d.ts.map +0 -1
- package/dist/types/components/Typography/Ingress/index.d.ts +0 -2
- package/dist/types/components/Typography/Ingress/index.d.ts.map +0 -1
- package/dist/types/components/Typography/Label/Label.d.ts.map +0 -1
- package/dist/types/components/Typography/Label/index.d.ts.map +0 -1
- package/dist/types/components/Typography/Paragraph/Paragraph.d.ts.map +0 -1
- package/dist/types/components/Typography/Paragraph/index.d.ts.map +0 -1
- package/dist/types/components/Typography/ValidationMessage/ValidationMessage.d.ts +0 -35
- package/dist/types/components/Typography/ValidationMessage/ValidationMessage.d.ts.map +0 -1
- package/dist/types/components/Typography/ValidationMessage/index.d.ts.map +0 -1
- package/dist/types/components/Typography/index.d.ts +0 -6
- package/dist/types/components/Typography/index.d.ts.map +0 -1
- package/dist/types/components/form/Checkbox/CheckboxGroup.d.ts +0 -29
- package/dist/types/components/form/Checkbox/CheckboxGroup.d.ts.map +0 -1
- package/dist/types/components/form/Checkbox/useCheckbox.d.ts +0 -10
- package/dist/types/components/form/Checkbox/useCheckbox.d.ts.map +0 -1
- package/dist/types/components/form/Radio/RadioGroup.d.ts +0 -43
- package/dist/types/components/form/Radio/RadioGroup.d.ts.map +0 -1
- package/dist/types/components/form/Radio/useRadio.d.ts +0 -10
- package/dist/types/components/form/Radio/useRadio.d.ts.map +0 -1
- package/dist/types/components/form/Search/useSearch.d.ts +0 -10
- package/dist/types/components/form/Search/useSearch.d.ts.map +0 -1
- package/dist/types/components/form/Select/useSelect.d.ts +0 -10
- package/dist/types/components/form/Select/useSelect.d.ts.map +0 -1
- package/dist/types/components/form/Switch/useSwitch.d.ts +0 -10
- package/dist/types/components/form/Switch/useSwitch.d.ts.map +0 -1
- package/dist/types/components/form/Textfield/useTextfield.d.ts +0 -10
- package/dist/types/components/form/Textfield/useTextfield.d.ts.map +0 -1
- package/dist/types/types/Portal.d.ts +0 -9
- package/dist/types/types/Portal.d.ts.map +0 -1
- package/dist/types/utilities/AnimateHeight/AnimateHeight.d.ts +0 -9
- package/dist/types/utilities/AnimateHeight/AnimateHeight.d.ts.map +0 -1
- package/dist/types/utilities/AnimateHeight/index.d.ts +0 -3
- package/dist/types/utilities/AnimateHeight/index.d.ts.map +0 -1
- /package/dist/types/components/{Typography/Heading → Heading}/index.d.ts +0 -0
- /package/dist/types/components/{Typography/Label → Label}/index.d.ts +0 -0
- /package/dist/types/components/{Typography/Paragraph → Paragraph}/index.d.ts +0 -0
- /package/dist/types/components/{Typography/ValidationMessage → ValidationMessage}/index.d.ts +0 -0
|
@@ -5,12 +5,9 @@ import { useMergeRefs } from '@floating-ui/react';
|
|
|
5
5
|
import { Slot } from '@radix-ui/react-slot';
|
|
6
6
|
import cl from 'clsx/lite';
|
|
7
7
|
import { forwardRef, useRef, useContext, useState, useEffect } from 'react';
|
|
8
|
-
import { Context } from './
|
|
9
|
-
import { Paragraph } from '../Typography/Paragraph/Paragraph.js';
|
|
8
|
+
import { Context } from './PopoverTriggerContext.js';
|
|
10
9
|
|
|
11
|
-
const
|
|
12
|
-
const ARROW_GAP = 4;
|
|
13
|
-
const Popover = forwardRef(function Popover({ id, className, onClose, onOpen, open, placement = 'top', size = 'md', variant = 'default', asChild = false, ...rest }, ref) {
|
|
10
|
+
const Popover = forwardRef(function Popover({ id, className, onClose, onOpen, open, placement = 'top', autoPlacement = true, asChild = false, ...rest }, ref) {
|
|
14
11
|
const Component = asChild ? Slot : 'div';
|
|
15
12
|
const popoverRef = useRef(null);
|
|
16
13
|
const mergedRefs = useMergeRefs([popoverRef, ref]);
|
|
@@ -42,10 +39,10 @@ const Popover = forwardRef(function Popover({ id, className, onClose, onOpen, op
|
|
|
42
39
|
onClose?.();
|
|
43
40
|
};
|
|
44
41
|
popover?.togglePopover?.(controlledOpen);
|
|
45
|
-
document.addEventListener('click', handleClick);
|
|
42
|
+
document.addEventListener('click', handleClick, true); // Use capture to execute before React event API
|
|
46
43
|
document.addEventListener('keydown', handleKeydown);
|
|
47
44
|
return () => {
|
|
48
|
-
document.removeEventListener('click', handleClick);
|
|
45
|
+
document.removeEventListener('click', handleClick, true);
|
|
49
46
|
document.removeEventListener('keydown', handleKeydown);
|
|
50
47
|
};
|
|
51
48
|
}, [controlledOpen]);
|
|
@@ -59,34 +56,59 @@ const Popover = forwardRef(function Popover({ id, className, onClose, onOpen, op
|
|
|
59
56
|
placement,
|
|
60
57
|
strategy: 'fixed',
|
|
61
58
|
middleware: [
|
|
62
|
-
offset(
|
|
63
|
-
|
|
64
|
-
|
|
59
|
+
offset((data) => {
|
|
60
|
+
// get pseudo element arrow size
|
|
61
|
+
const styles = getComputedStyle(data.elements.floating, '::before');
|
|
62
|
+
return parseFloat(styles.height);
|
|
63
|
+
}),
|
|
64
|
+
...(autoPlacement
|
|
65
|
+
? [flip({ fallbackAxisSideDirection: 'start' }), shift()]
|
|
66
|
+
: []),
|
|
65
67
|
arrowPseudoElement,
|
|
66
68
|
],
|
|
67
69
|
}).then(({ x, y }) => {
|
|
68
70
|
popover.style.translate = `${x}px ${y}px`;
|
|
69
71
|
});
|
|
70
72
|
});
|
|
71
|
-
}, [controlledOpen, placement, id]);
|
|
73
|
+
}, [controlledOpen, placement, id, autoPlacement]);
|
|
72
74
|
// Update context with id
|
|
73
75
|
useEffect(() => {
|
|
74
76
|
if (id)
|
|
75
77
|
setPopoverId?.(id);
|
|
76
78
|
}, [id]);
|
|
77
|
-
return (jsx(
|
|
78
|
-
|
|
79
|
-
|
|
79
|
+
return (jsx(Component, { className: cl('ds-popover', className), id: id || popoverId,
|
|
80
|
+
// @ts-ignore @types/react-dom does not understand popover yet
|
|
81
|
+
popover: 'manual', ref: mergedRefs, ...rest }));
|
|
80
82
|
});
|
|
81
83
|
const arrowPseudoElement = {
|
|
82
84
|
name: 'ArrowPseudoElement',
|
|
83
85
|
fn(data) {
|
|
84
86
|
const { elements, rects, placement } = data;
|
|
85
|
-
|
|
86
|
-
|
|
87
|
+
let arrowX = `${Math.round(rects.reference.width / 2 + rects.reference.x - data.x)}px`;
|
|
88
|
+
let arrowY = `${Math.round(rects.reference.height / 2 + rects.reference.y - data.y)}px`;
|
|
89
|
+
if (rects.reference.width > rects.floating.width) {
|
|
90
|
+
arrowX = `${Math.round(rects.floating.width / 2)}px`;
|
|
91
|
+
}
|
|
92
|
+
if (rects.reference.height > rects.floating.height) {
|
|
93
|
+
arrowY = `${Math.round(rects.floating.height / 2)}px`;
|
|
94
|
+
}
|
|
95
|
+
switch (placement.split('-')[0]) {
|
|
96
|
+
case 'top':
|
|
97
|
+
arrowY = '100%';
|
|
98
|
+
break;
|
|
99
|
+
case 'right':
|
|
100
|
+
arrowX = '0';
|
|
101
|
+
break;
|
|
102
|
+
case 'bottom':
|
|
103
|
+
arrowY = '0';
|
|
104
|
+
break;
|
|
105
|
+
case 'left':
|
|
106
|
+
arrowX = '100%';
|
|
107
|
+
break;
|
|
108
|
+
}
|
|
87
109
|
elements.floating.setAttribute('data-placement', placement.split('-')[0]); // We only need top/left/right/bottom
|
|
88
|
-
elements.floating.style.setProperty('--ds-popover-arrow-x',
|
|
89
|
-
elements.floating.style.setProperty('--ds-popover-arrow-y',
|
|
110
|
+
elements.floating.style.setProperty('--ds-popover-arrow-x', arrowX);
|
|
111
|
+
elements.floating.style.setProperty('--ds-popover-arrow-y', arrowY);
|
|
90
112
|
return data;
|
|
91
113
|
},
|
|
92
114
|
};
|
|
@@ -3,7 +3,7 @@ import { jsx } from 'react/jsx-runtime';
|
|
|
3
3
|
import { Slot } from '@radix-ui/react-slot';
|
|
4
4
|
import { forwardRef, useContext } from 'react';
|
|
5
5
|
import { Button } from '../Button/Button.js';
|
|
6
|
-
import { Context } from './
|
|
6
|
+
import { Context } from './PopoverTriggerContext.js';
|
|
7
7
|
|
|
8
8
|
const PopoverTrigger = forwardRef(function PopoverTrigger({ id, asChild, ...rest }, ref) {
|
|
9
9
|
const { popoverId } = useContext(Context);
|
|
@@ -2,12 +2,12 @@
|
|
|
2
2
|
import { jsx } from 'react/jsx-runtime';
|
|
3
3
|
import { useId, useState, createContext } from 'react';
|
|
4
4
|
|
|
5
|
-
const
|
|
5
|
+
const PopoverTriggerContext = ({ children, }) => {
|
|
6
6
|
const randomPopoverId = useId();
|
|
7
7
|
const [popoverId, setPopoverId] = useState(randomPopoverId);
|
|
8
8
|
return (jsx(Context.Provider, { value: { popoverId, setPopoverId }, children: children }));
|
|
9
9
|
};
|
|
10
|
-
|
|
10
|
+
PopoverTriggerContext.displayName = 'PopoverTriggerContext';
|
|
11
11
|
const Context = createContext({});
|
|
12
12
|
|
|
13
|
-
export { Context,
|
|
13
|
+
export { Context, PopoverTriggerContext };
|
|
@@ -1,12 +1,12 @@
|
|
|
1
1
|
'use client';
|
|
2
2
|
import { Popover as Popover$1 } from './Popover.js';
|
|
3
|
-
import { PopoverContext } from './PopoverContext.js';
|
|
4
3
|
import { PopoverTrigger } from './PopoverTrigger.js';
|
|
4
|
+
import { PopoverTriggerContext } from './PopoverTriggerContext.js';
|
|
5
5
|
|
|
6
6
|
const Popover = Popover$1;
|
|
7
|
-
Popover.
|
|
7
|
+
Popover.TriggerContext = PopoverTriggerContext;
|
|
8
8
|
Popover.Trigger = PopoverTrigger;
|
|
9
|
-
Popover.
|
|
9
|
+
Popover.TriggerContext.displayName = 'Popover.TriggerContext';
|
|
10
10
|
Popover.Trigger.displayName = 'Popover.Trigger';
|
|
11
11
|
|
|
12
|
-
export { Popover,
|
|
12
|
+
export { Popover, PopoverTrigger, PopoverTriggerContext };
|
|
@@ -1,10 +1,10 @@
|
|
|
1
1
|
'use client';
|
|
2
2
|
import { jsx } from 'react/jsx-runtime';
|
|
3
3
|
import cl from 'clsx/lite';
|
|
4
|
+
import { forwardRef } from 'react';
|
|
4
5
|
|
|
5
|
-
const SkipLink = ({
|
|
6
|
-
return (jsx("a", {
|
|
7
|
-
};
|
|
8
|
-
SkipLink.displayName = 'SkipLink';
|
|
6
|
+
const SkipLink = forwardRef(function SkipLink({ children, className, ...rest }, ref) {
|
|
7
|
+
return (jsx("a", { className: cl('ds-skiplink', className), ...rest, ref: ref, children: children }));
|
|
8
|
+
});
|
|
9
9
|
|
|
10
10
|
export { SkipLink };
|
|
@@ -2,10 +2,9 @@
|
|
|
2
2
|
import { jsx } from 'react/jsx-runtime';
|
|
3
3
|
import cl from 'clsx/lite';
|
|
4
4
|
import { forwardRef } from 'react';
|
|
5
|
-
import { Paragraph } from '../Typography/Paragraph/Paragraph.js';
|
|
6
5
|
|
|
7
|
-
const Table = forwardRef(function Table({ zebra = false, stickyHeader = false, border = false, hover = false,
|
|
8
|
-
return (jsx(
|
|
6
|
+
const Table = forwardRef(function Table({ zebra = false, stickyHeader = false, border = false, hover = false, className, children, ...rest }, ref) {
|
|
7
|
+
return (jsx("table", { className: cl('ds-table', className), "data-border": border || undefined, "data-hover": hover || undefined, "data-sticky-header": stickyHeader || undefined, "data-zebra": zebra || undefined, ref: ref, ...rest, children: children }));
|
|
9
8
|
});
|
|
10
9
|
|
|
11
10
|
export { Table };
|
|
@@ -2,21 +2,25 @@
|
|
|
2
2
|
import { Table as Table$1 } from './Table.js';
|
|
3
3
|
import { TableBody } from './TableBody.js';
|
|
4
4
|
import { TableCell } from './TableCell.js';
|
|
5
|
+
import { TableFoot } from './TableFoot.js';
|
|
5
6
|
import { TableHead } from './TableHead.js';
|
|
6
7
|
import { TableHeaderCell } from './TableHeaderCell.js';
|
|
7
8
|
import { TableRow } from './TableRow.js';
|
|
8
9
|
|
|
9
|
-
const Table = Table$1
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
10
|
+
const Table = Object.assign(Table$1, {
|
|
11
|
+
Head: TableHead,
|
|
12
|
+
Body: TableBody,
|
|
13
|
+
Row: TableRow,
|
|
14
|
+
Cell: TableCell,
|
|
15
|
+
HeaderCell: TableHeaderCell,
|
|
16
|
+
Foot: TableFoot,
|
|
17
|
+
});
|
|
15
18
|
Table.displayName = 'Table';
|
|
16
19
|
Table.Head.displayName = 'Table.Head';
|
|
17
20
|
Table.Body.displayName = 'Table.Body';
|
|
18
21
|
Table.Row.displayName = 'Table.Row';
|
|
19
22
|
Table.Cell.displayName = 'Table.Cell';
|
|
20
23
|
Table.HeaderCell.displayName = 'Table.HeaderCell';
|
|
24
|
+
Table.Foot.displayName = 'Table.Foot';
|
|
21
25
|
|
|
22
|
-
export { Table, TableBody, TableCell, TableHead, TableHeaderCell, TableRow };
|
|
26
|
+
export { Table, TableBody, TableCell, TableFoot, TableHead, TableHeaderCell, TableRow };
|
|
@@ -20,7 +20,7 @@ const Context = createContext({});
|
|
|
20
20
|
* </Tabs>
|
|
21
21
|
* ```
|
|
22
22
|
*/
|
|
23
|
-
const Tabs = forwardRef(function Tabs({
|
|
23
|
+
const Tabs = forwardRef(function Tabs({ value, defaultValue, className, onChange, ...rest }, ref) {
|
|
24
24
|
const isControlled = value !== undefined;
|
|
25
25
|
const [uncontrolledValue, setUncontrolledValue] = useState(defaultValue);
|
|
26
26
|
let onValueChange = onChange;
|
|
@@ -35,8 +35,7 @@ const Tabs = forwardRef(function Tabs({ size = 'md', value, defaultValue, classN
|
|
|
35
35
|
value,
|
|
36
36
|
defaultValue,
|
|
37
37
|
onChange: onValueChange,
|
|
38
|
-
|
|
39
|
-
}, children: jsx("div", { className: cl('ds-tabs', className), "data-size": size, ref: ref, ...rest }) }));
|
|
38
|
+
}, children: jsx("div", { className: cl('ds-tabs', className), ref: ref, ...rest }) }));
|
|
40
39
|
});
|
|
41
40
|
|
|
42
41
|
export { Context, Tabs };
|
|
@@ -3,7 +3,6 @@ import { jsx, Fragment } from 'react/jsx-runtime';
|
|
|
3
3
|
import cl from 'clsx/lite';
|
|
4
4
|
import { forwardRef, useContext } from 'react';
|
|
5
5
|
import { Context } from './Tabs.js';
|
|
6
|
-
import { Paragraph } from '../Typography/Paragraph/Paragraph.js';
|
|
7
6
|
|
|
8
7
|
/**
|
|
9
8
|
* A single content item in a Tabs component.
|
|
@@ -13,9 +12,9 @@ import { Paragraph } from '../Typography/Paragraph/Paragraph.js';
|
|
|
13
12
|
* ```
|
|
14
13
|
*/
|
|
15
14
|
const TabsPanel = forwardRef(function TabsPanel({ children, value, className, ...rest }, ref) {
|
|
16
|
-
const { value: tabsValue
|
|
15
|
+
const { value: tabsValue } = useContext(Context);
|
|
17
16
|
const active = value === tabsValue;
|
|
18
|
-
return (jsx(Fragment, { children: active && (jsx(
|
|
17
|
+
return (jsx(Fragment, { children: active && (jsx("div", { className: cl('ds-tabs__panel', className), ref: ref, ...rest, children: children })) }));
|
|
19
18
|
});
|
|
20
19
|
|
|
21
20
|
export { TabsPanel };
|
|
@@ -4,7 +4,6 @@ import cl from 'clsx/lite';
|
|
|
4
4
|
import { forwardRef, useContext, useId } from 'react';
|
|
5
5
|
import { RovingFocusItem } from '../../utilities/RovingFocus/RovingFocusItem.js';
|
|
6
6
|
import { Context } from './Tabs.js';
|
|
7
|
-
import { Paragraph } from '../Typography/Paragraph/Paragraph.js';
|
|
8
7
|
|
|
9
8
|
/**
|
|
10
9
|
* A single item in a Tabs component.
|
|
@@ -14,7 +13,7 @@ import { Paragraph } from '../Typography/Paragraph/Paragraph.js';
|
|
|
14
13
|
const TabsTab = forwardRef(function TabsTab({ className, value, ...rest }, ref) {
|
|
15
14
|
const tabs = useContext(Context);
|
|
16
15
|
const buttonId = `tab-${useId()}`;
|
|
17
|
-
return (jsx(RovingFocusItem, { value: value, ...rest, asChild: true, children: jsx(
|
|
16
|
+
return (jsx(RovingFocusItem, { value: value, ...rest, asChild: true, children: jsx("button", { ...rest, "aria-selected": tabs.value === value, className: cl('ds-tabs__tab', className), id: buttonId, onClick: () => tabs.onChange?.(value), ref: ref, role: 'tab', type: 'button' }) }));
|
|
18
17
|
});
|
|
19
18
|
|
|
20
19
|
export { TabsTab };
|
|
@@ -2,15 +2,14 @@
|
|
|
2
2
|
import { jsx } from 'react/jsx-runtime';
|
|
3
3
|
import cl from 'clsx/lite';
|
|
4
4
|
import { forwardRef } from 'react';
|
|
5
|
-
import { Paragraph } from '../Typography/Paragraph/Paragraph.js';
|
|
6
5
|
|
|
7
6
|
/**
|
|
8
7
|
* Use `Tag` to display a small piece of information.
|
|
9
8
|
* @example
|
|
10
9
|
* <Tag color='success'>Success</Tag>
|
|
11
10
|
*/
|
|
12
|
-
const Tag = forwardRef(function Tag({
|
|
13
|
-
return (jsx(
|
|
11
|
+
const Tag = forwardRef(function Tag({ color = 'neutral', className, ...rest }, ref) {
|
|
12
|
+
return (jsx("span", { className: cl('ds-tag', className), "data-color": color, ref: ref, ...rest }));
|
|
14
13
|
});
|
|
15
14
|
|
|
16
15
|
export { Tag };
|
|
@@ -14,7 +14,7 @@ const ToggleGroupContext = createContext({});
|
|
|
14
14
|
* <ToggleGroup.Item value='3'>Toggle 3</ToggleGroup.Item>
|
|
15
15
|
* </ToggleGroup>
|
|
16
16
|
*/
|
|
17
|
-
const ToggleGroup = forwardRef(function ToggleGroup({
|
|
17
|
+
const ToggleGroup = forwardRef(function ToggleGroup({ children, value, defaultValue, onChange, name, className, ...rest }, ref) {
|
|
18
18
|
const nameId = useId();
|
|
19
19
|
const isControlled = value !== undefined;
|
|
20
20
|
const [uncontrolledValue, setUncontrolledValue] = useState(defaultValue);
|
|
@@ -31,7 +31,6 @@ const ToggleGroup = forwardRef(function ToggleGroup({ size = 'md', children, val
|
|
|
31
31
|
defaultValue,
|
|
32
32
|
name: name ?? `togglegroup-name-${nameId}`,
|
|
33
33
|
onChange: onValueChange,
|
|
34
|
-
size,
|
|
35
34
|
}, children: jsx(RovingFocusRoot, { asChild: true, activeValue: value, orientation: 'ambiguous', children: jsxs("div", { className: cl('ds-togglegroup', className), role: 'radiogroup', ref: ref, ...rest, children: [name && jsx("input", { type: 'hidden', name: name, value: value }), children] }) }) }));
|
|
36
35
|
});
|
|
37
36
|
|
|
@@ -11,8 +11,8 @@ import { useToggleGroupItem } from './useToggleGroupitem.js';
|
|
|
11
11
|
* <ToggleGroup.Item value='1'>Toggle 1</ToggleGroup.Item>
|
|
12
12
|
*/
|
|
13
13
|
const ToggleGroupItem = forwardRef(function ToggleGroupItem(rest, ref) {
|
|
14
|
-
const { active,
|
|
15
|
-
return (jsx(RovingFocusItem, { asChild: true, value: value, children: jsx(Button, { variant: active ? 'primary' : 'tertiary',
|
|
14
|
+
const { active, buttonProps, value } = useToggleGroupItem(rest);
|
|
15
|
+
return (jsx(RovingFocusItem, { asChild: true, value: value, children: jsx(Button, { variant: active ? 'primary' : 'tertiary', ref: ref, ...rest, ...buttonProps }) }));
|
|
16
16
|
});
|
|
17
17
|
|
|
18
18
|
export { ToggleGroupItem };
|
|
@@ -1,38 +1,42 @@
|
|
|
1
1
|
'use client';
|
|
2
2
|
import { jsxs, Fragment as Fragment$1, jsx } from 'react/jsx-runtime';
|
|
3
|
-
import { useFloating, autoUpdate, offset, flip, shift,
|
|
3
|
+
import { useFloating, autoUpdate, offset, flip, shift, useTransitionStyles, useInteractions, useHover, useFocus, useDismiss, useRole, useMergeRefs, FloatingPortal } from '@floating-ui/react';
|
|
4
|
+
import { Slot } from '@radix-ui/react-slot';
|
|
4
5
|
import cl from 'clsx/lite';
|
|
5
|
-
import { forwardRef, useState,
|
|
6
|
-
import { Paragraph } from '../Typography/Paragraph/Paragraph.js';
|
|
6
|
+
import { forwardRef, useState, Fragment } from 'react';
|
|
7
7
|
|
|
8
|
-
const ARROW_HEIGHT = 7;
|
|
9
|
-
const ARROW_GAP = 4;
|
|
10
8
|
/**
|
|
11
9
|
* Tooltip component that displays a small piece of information when hovering or focusing on an element.
|
|
12
10
|
* @example
|
|
13
11
|
* <Tooltip content='This is a tooltip'>
|
|
14
12
|
* <button>Hover me</button>
|
|
15
13
|
* </Tooltip>
|
|
14
|
+
*
|
|
15
|
+
* @example
|
|
16
|
+
* <Tooltip content='This is a tooltip'>
|
|
17
|
+
* Hover me
|
|
18
|
+
* </Tooltip>
|
|
16
19
|
*/
|
|
17
|
-
const Tooltip = forwardRef(({ children, content, placement = 'top', delay = 150, open: userOpen, defaultOpen = false, portal = false, className, style, ...rest }, ref)
|
|
20
|
+
const Tooltip = forwardRef(function Tooltip({ children, content, placement = 'top', delay = 150, open: userOpen, defaultOpen = false, portal = false, className, style, ...rest }, ref) {
|
|
18
21
|
const [isOpen, setIsOpen] = useState(defaultOpen);
|
|
19
|
-
const Container = portal ? FloatingPortal : Fragment;
|
|
20
|
-
const arrowRef = useRef(null);
|
|
21
22
|
const internalOpen = userOpen ?? isOpen;
|
|
23
|
+
const Container = portal ? FloatingPortal : Fragment;
|
|
22
24
|
const { refs, floatingStyles, context } = useFloating({
|
|
23
25
|
open: internalOpen,
|
|
24
26
|
onOpenChange: setIsOpen,
|
|
25
27
|
placement,
|
|
26
28
|
whileElementsMounted: autoUpdate,
|
|
27
29
|
middleware: [
|
|
28
|
-
offset(
|
|
30
|
+
offset((data) => {
|
|
31
|
+
// get pseudo element arrow size
|
|
32
|
+
const styles = getComputedStyle(data.elements.floating, '::before');
|
|
33
|
+
return parseFloat(styles.height);
|
|
34
|
+
}),
|
|
29
35
|
flip({
|
|
30
36
|
fallbackAxisSideDirection: 'start',
|
|
31
37
|
}),
|
|
32
38
|
shift(),
|
|
33
|
-
|
|
34
|
-
element: arrowRef,
|
|
35
|
-
}),
|
|
39
|
+
arrowPseudoElement,
|
|
36
40
|
],
|
|
37
41
|
});
|
|
38
42
|
const { styles: animationStyles } = useTransitionStyles(context, {
|
|
@@ -53,20 +57,45 @@ const Tooltip = forwardRef(({ children, content, placement = 'top', delay = 150,
|
|
|
53
57
|
.ref,
|
|
54
58
|
refs.setReference,
|
|
55
59
|
]);
|
|
56
|
-
|
|
57
|
-
|
|
58
|
-
|
|
59
|
-
|
|
60
|
+
/* If children is only a string, make a span */
|
|
61
|
+
const ChildContainer = typeof children === 'string' ? 'span' : Slot;
|
|
62
|
+
/* Make sure it is valid */
|
|
63
|
+
if (typeof children !== 'string' && children.type === Fragment) {
|
|
64
|
+
console.error('<Tooltip> children needs to be a single ReactElement that can receive a ref and not: <Fragment/> | <></>');
|
|
60
65
|
return null;
|
|
61
66
|
}
|
|
62
|
-
return (jsxs(Fragment$1, { children: [
|
|
63
|
-
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
67
|
+
return (jsxs(Fragment$1, { children: [jsx(ChildContainer, { ...getReferenceProps({
|
|
68
|
+
ref: childMergedRef,
|
|
69
|
+
}), children: children }), internalOpen && (jsx(Container, { children: jsx("div", { ref: refs.setFloating, style: { ...floatingStyles, ...animationStyles, ...style }, role: 'tooltip', ...getFloatingProps({
|
|
70
|
+
className: cl('ds-tooltip', className),
|
|
71
|
+
ref: mergedRef,
|
|
72
|
+
...rest,
|
|
73
|
+
}), children: content }) }))] }));
|
|
69
74
|
});
|
|
70
|
-
|
|
75
|
+
const arrowPseudoElement = {
|
|
76
|
+
name: 'ArrowPseudoElement',
|
|
77
|
+
fn(data) {
|
|
78
|
+
const { elements, rects, placement } = data;
|
|
79
|
+
let arrowX = `${Math.round(rects.reference.width / 2 + rects.reference.x - data.x)}px`;
|
|
80
|
+
let arrowY = `${Math.round(rects.reference.height / 2 + rects.reference.y - data.y)}px`;
|
|
81
|
+
switch (placement) {
|
|
82
|
+
case 'top':
|
|
83
|
+
arrowY = '100%';
|
|
84
|
+
break;
|
|
85
|
+
case 'right':
|
|
86
|
+
arrowX = '0';
|
|
87
|
+
break;
|
|
88
|
+
case 'bottom':
|
|
89
|
+
arrowY = '0';
|
|
90
|
+
break;
|
|
91
|
+
case 'left':
|
|
92
|
+
arrowX = '100%';
|
|
93
|
+
break;
|
|
94
|
+
}
|
|
95
|
+
elements.floating.style.setProperty('--ds-tooltip-arrow-x', arrowX);
|
|
96
|
+
elements.floating.style.setProperty('--ds-tooltip-arrow-y', arrowY);
|
|
97
|
+
return data;
|
|
98
|
+
},
|
|
99
|
+
};
|
|
71
100
|
|
|
72
101
|
export { Tooltip };
|
package/dist/esm/components/{Typography/ValidationMessage → ValidationMessage}/ValidationMessage.js
RENAMED
|
@@ -5,9 +5,9 @@ import cl from 'clsx/lite';
|
|
|
5
5
|
import { forwardRef } from 'react';
|
|
6
6
|
|
|
7
7
|
/** Use `ValidationMessage` to display validation text */
|
|
8
|
-
const ValidationMessage = forwardRef(function ValidationMessage({
|
|
8
|
+
const ValidationMessage = forwardRef(function ValidationMessage({ className, asChild, error = true, ...rest }, ref) {
|
|
9
9
|
const Component = asChild ? Slot : 'div';
|
|
10
|
-
return (jsx(Component, {
|
|
10
|
+
return (jsx(Component, { className: cl('ds-validation-message', className), "data-error": error || undefined, "data-field": 'validation', ref: ref, ...rest }));
|
|
11
11
|
});
|
|
12
12
|
|
|
13
13
|
export { ValidationMessage };
|
|
@@ -1,26 +1,18 @@
|
|
|
1
1
|
'use client';
|
|
2
|
-
import {
|
|
3
|
-
import { useMergeRefs } from '@floating-ui/react';
|
|
4
|
-
import cl from 'clsx/lite';
|
|
2
|
+
import { jsxs, jsx } from 'react/jsx-runtime';
|
|
5
3
|
import { forwardRef } from 'react';
|
|
6
|
-
import {
|
|
7
|
-
import {
|
|
8
|
-
import {
|
|
9
|
-
import {
|
|
4
|
+
import { Field } from '../Field/index.js';
|
|
5
|
+
import { Input } from '../Input/Input.js';
|
|
6
|
+
import { Label } from '../../Label/Label.js';
|
|
7
|
+
import { ValidationMessage } from '../../ValidationMessage/ValidationMessage.js';
|
|
10
8
|
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
|
|
18
|
-
el.indeterminate = rest.indeterminate ?? false;
|
|
19
|
-
}
|
|
20
|
-
},
|
|
21
|
-
]);
|
|
22
|
-
return (jsx(Paragraph, { asChild: true, size: size, children: jsxs("div", { className: cl('ds-checkbox', `ds-checkbox--${size}`, hasError && `ds-checkbox--error`, readOnly && `ds-checkbox--readonly`, className), style: style, children: [jsx("input", { className: `ds-checkbox__input`, ref: inputRef, ...omit(['size', 'error', 'indeterminate'], rest), ...inputProps, type: 'checkbox', disabled: inputProps.disabled, "aria-checked": rest.indeterminate ? 'mixed' : inputProps.checked }), children && (jsxs(Fragment, { children: [jsx(Label, { className: cl(`ds-checkbox__label`), htmlFor: inputProps.id, size: size, weight: 'regular', children: jsx("span", { children: children }) }), description && (jsx(Paragraph, { asChild: true, size: size, children: jsx("div", { id: descriptionId, className: `ds-checkbox__description`, children: description }) }))] }))] }) }));
|
|
9
|
+
/**
|
|
10
|
+
* Checkbox used to select multiple options.
|
|
11
|
+
* @example
|
|
12
|
+
* <Checkbox label="I agree" value="agree" />
|
|
13
|
+
*/
|
|
14
|
+
const Checkbox = forwardRef(function Checkbox({ 'data-size': size, children, label, description, validation, ...rest }, ref) {
|
|
15
|
+
return (jsxs(Field, { "data-size": size, children: [jsx(Input, { type: 'checkbox', ref: ref, ...rest }), !!label && jsx(Label, { weight: 'regular', children: label }), !!description && jsx("div", { "data-field": 'description', children: description }), !!validation && jsx(ValidationMessage, { children: validation })] }));
|
|
23
16
|
});
|
|
24
|
-
Checkbox.displayName = 'Checkbox';
|
|
25
17
|
|
|
26
18
|
export { Checkbox };
|
|
@@ -3,7 +3,7 @@ import { jsxs, jsx, Fragment } from 'react/jsx-runtime';
|
|
|
3
3
|
import { FloatingPortal, FloatingFocusManager } from '@floating-ui/react';
|
|
4
4
|
import { useVirtualizer } from '@tanstack/react-virtual';
|
|
5
5
|
import cl from 'clsx/lite';
|
|
6
|
-
import { forwardRef, useRef,
|
|
6
|
+
import { forwardRef, useRef, useState, useEffect } from 'react';
|
|
7
7
|
import { useFormField } from '../useFormField.js';
|
|
8
8
|
import { ComboboxContext } from './ComboboxContext.js';
|
|
9
9
|
import { ComboboxIdProvider } from './ComboboxIdContext.js';
|
|
@@ -16,15 +16,14 @@ import { useCombobox } from './useCombobox.js';
|
|
|
16
16
|
import { useComboboxKeyboard } from './useComboboxKeyboard.js';
|
|
17
17
|
import { useFloatingCombobox } from './useFloatingCombobox.js';
|
|
18
18
|
import { prefix, setReactInputValue, removePrefix } from './utilities.js';
|
|
19
|
-
import { Spinner } from '../../loaders/Spinner/Spinner.js';
|
|
20
19
|
import { useDebounceCallback } from '../../../utilities/hooks/useDebounceCallback/useDebounceCallback.js';
|
|
21
20
|
import { omit } from '../../../utilities/omit/omit.js';
|
|
21
|
+
import { Spinner } from '../../loaders/Spinner/Spinner.js';
|
|
22
22
|
|
|
23
23
|
const ComboboxComponent = forwardRef(({ value, initialValue = [], onValueChange, label, hideLabel = false, description, multiple = false, disabled = false, readOnly = false, hideChips = false, clearButtonLabel = 'Fjern alt', hideClearButton = false, error, errorId, id, name, portal = true, htmlSize = 0, virtual = false, children, style, size = 'md', loading, loadingLabel = 'Laster...', filter, chipSrLabel = (option) => 'Slett ' + option.label, className, ...rest }, forwareddRef) => {
|
|
24
24
|
const inputRef = useRef(null);
|
|
25
25
|
const portalRef = useRef(null);
|
|
26
26
|
const listRef = useRef([]);
|
|
27
|
-
const listId = useId();
|
|
28
27
|
const [inputValue, setInputValue] = useState(rest.inputValue || '');
|
|
29
28
|
useEffect(() => {
|
|
30
29
|
if (typeof rest.inputValue === 'string') {
|
|
@@ -177,7 +176,7 @@ const ComboboxComponent = forwardRef(({ value, initialValue = [], onValueChange,
|
|
|
177
176
|
setListRef: (index, node) => {
|
|
178
177
|
listRef.current[index] = node;
|
|
179
178
|
},
|
|
180
|
-
}, children: [jsxs("div", { className: cl('ds-combobox', `ds-combobox--${size}`, disabled && 'ds-combobox__disabled', className), style: style, ref: portalRef, children: [name && (jsx(ComboboxNative, { name: name, selectedOptions: selectedOptions, multiple: multiple })), jsx(ComboboxLabel, { label: label, description: description, size: size, readOnly: readOnly, hideLabel: hideLabel, formFieldProps: formFieldProps }), jsx(ComboboxInput, { ...omit(['inputValue'], rest), hideClearButton: hideClearButton, listId:
|
|
179
|
+
}, children: [jsxs("div", { className: cl('ds-combobox', `ds-combobox--${size}`, disabled && 'ds-combobox__disabled', className), style: style, ref: portalRef, children: [name && (jsx(ComboboxNative, { name: name, selectedOptions: selectedOptions, multiple: multiple })), jsx(ComboboxLabel, { label: label, description: description, size: size, readOnly: readOnly, hideLabel: hideLabel, formFieldProps: formFieldProps }), jsx(ComboboxInput, { ...omit(['inputValue'], rest), hideClearButton: hideClearButton, listId: context.floatingId, error: error, hideChips: hideChips, handleKeyDown: handleKeyDown, "aria-busy": loading }), jsx(ComboboxError, { size: size, error: error, formFieldProps: formFieldProps })] }), open && (jsx(FloatingPortal, { root: portal ? null : portalRef, children: jsx(FloatingFocusManager, { context: context, initialFocus: -1, visuallyHiddenDismiss: true, children: jsxs("div", { "aria-labelledby": formFieldProps.inputProps.id, "aria-autocomplete": 'list', tabIndex: -1, ...getFloatingProps({
|
|
181
180
|
ref: refs.setFloating,
|
|
182
181
|
style: {
|
|
183
182
|
...floatingStyles,
|
|
@@ -192,7 +191,7 @@ const ComboboxComponent = forwardRef(({ value, initialValue = [], onValueChange,
|
|
|
192
191
|
left: 0,
|
|
193
192
|
width: '100%',
|
|
194
193
|
transform: `translateY(${virtualRow.start}px)`,
|
|
195
|
-
}, children: filteredOptionsChildren[virtualRow.index] }, virtualRow.index))) })), loading ? (jsxs(ComboboxCustom, { className: 'ds-combobox__loading', children: [jsx(Spinner, {
|
|
194
|
+
}, children: filteredOptionsChildren[virtualRow.index] }, virtualRow.index))) })), loading ? (jsxs(ComboboxCustom, { className: 'ds-combobox__loading', children: [jsx(Spinner, { "aria-label": 'Laster', "data-size": 'sm' }), loadingLabel] })) : (jsxs(Fragment, { children: [restChildren, !virtual && filteredOptionsChildren] }))] }) }) }))] }));
|
|
196
195
|
});
|
|
197
196
|
const Combobox = forwardRef((props, ref) => (jsx(ComboboxIdProvider, { children: jsx(ComboboxComponent, { ...props, ref: ref }) })));
|
|
198
197
|
Combobox.displayName = 'Combobox';
|
|
@@ -6,8 +6,8 @@ import cl from 'clsx/lite';
|
|
|
6
6
|
import { forwardRef, useId, useContext, useMemo } from 'react';
|
|
7
7
|
import { ComboboxContext } from './ComboboxContext.js';
|
|
8
8
|
import { useComboboxId } from './ComboboxIdContext.js';
|
|
9
|
-
import { Label } from '../../Typography/Label/Label.js';
|
|
10
9
|
import { omit } from '../../../utilities/omit/omit.js';
|
|
10
|
+
import { Label } from '../../Label/Label.js';
|
|
11
11
|
|
|
12
12
|
const ComboboxCustom = forwardRef(({ asChild, interactive, id, className, ...rest }, ref) => {
|
|
13
13
|
if (interactive && !id) {
|
|
@@ -28,7 +28,7 @@ const ComboboxCustom = forwardRef(({ asChild, interactive, id, className, ...res
|
|
|
28
28
|
},
|
|
29
29
|
ref,
|
|
30
30
|
]);
|
|
31
|
-
return (jsx(Label, { size: size, asChild: true, children: jsx(Component, { ref: combinedRef, tabIndex: -1, className: cl('ds-combobox__custom', className), id: id || randomId, role: 'option', "aria-selected": activeIndex === index, "data-active": activeIndex === index, ...omit(['interactive'], rest), ...omit(['onClick', 'onPointerLeave'], getItemProps()) }) }));
|
|
31
|
+
return (jsx(Label, { "data-size": size, asChild: true, children: jsx(Component, { ref: combinedRef, tabIndex: -1, className: cl('ds-combobox__custom', className), id: id || randomId, role: 'option', "aria-selected": activeIndex === index, "data-active": activeIndex === index, ...omit(['interactive'], rest), ...omit(['onClick', 'onPointerLeave'], getItemProps()) }) }));
|
|
32
32
|
});
|
|
33
33
|
|
|
34
34
|
export { ComboboxCustom };
|
|
@@ -3,7 +3,7 @@ import { jsx } from 'react/jsx-runtime';
|
|
|
3
3
|
import cl from 'clsx/lite';
|
|
4
4
|
import { forwardRef, useContext } from 'react';
|
|
5
5
|
import { ComboboxContext } from './ComboboxContext.js';
|
|
6
|
-
import { Label } from '../../
|
|
6
|
+
import { Label } from '../../Label/Label.js';
|
|
7
7
|
|
|
8
8
|
const ComboboxEmpty = forwardRef(({ children, className, ...rest }, ref) => {
|
|
9
9
|
const context = useContext(ComboboxContext);
|
|
@@ -11,7 +11,7 @@ const ComboboxEmpty = forwardRef(({ children, className, ...rest }, ref) => {
|
|
|
11
11
|
throw new Error('ComboboxEmpty must be used within a Combobox');
|
|
12
12
|
}
|
|
13
13
|
const { filteredOptions, size } = context;
|
|
14
|
-
return (filteredOptions.length === 0 && (jsx(Label, { size: size, asChild: true, children: jsx("div", { ref: ref, className: cl('ds-combobox__empty', className), ...rest, children: children }) })));
|
|
14
|
+
return (filteredOptions.length === 0 && (jsx(Label, { "data-size": size, asChild: true, children: jsx("div", { ref: ref, className: cl('ds-combobox__empty', className), ...rest, children: children }) })));
|
|
15
15
|
});
|
|
16
16
|
ComboboxEmpty.displayName = 'ComboboxEmpty';
|
|
17
17
|
|
|
@@ -7,7 +7,7 @@ import { ComboboxContext } from '../ComboboxContext.js';
|
|
|
7
7
|
import ComboboxOptionDescription from './Description.js';
|
|
8
8
|
import { SelectedIcon } from './SelectedIcon.js';
|
|
9
9
|
import { useComboboxOption } from './useComboboxOption.js';
|
|
10
|
-
import { Label } from '../../../
|
|
10
|
+
import { Label } from '../../../Label/Label.js';
|
|
11
11
|
|
|
12
12
|
const ComboboxOption = memo(forwardRef(({ value, description, children, className, ...rest }, forwardedRef) => {
|
|
13
13
|
const labelId = useId();
|
|
@@ -22,10 +22,12 @@ const ComboboxOption = memo(forwardRef(({ value, description, children, classNam
|
|
|
22
22
|
}
|
|
23
23
|
const { size, multiple, getItemProps } = context;
|
|
24
24
|
const props = getItemProps();
|
|
25
|
-
return (jsx(Label, { size: 'md', asChild: true, children: jsxs("button", { ref: ref, id: id,
|
|
25
|
+
return (jsx(Label, { "data-size": 'md', asChild: true, children: jsxs("button", { ref: ref, id: id,
|
|
26
|
+
// biome-ignore lint/a11y/useSemanticElements: biome wants me to use the <option> element
|
|
27
|
+
role: 'option', type: 'button', "aria-selected": !!selected, "aria-labelledby": labelId, tabIndex: -1, onClick: (e) => {
|
|
26
28
|
onOptionClick();
|
|
27
29
|
rest.onClick?.(e);
|
|
28
|
-
}, className: cl('ds-combobox__option', active && 'ds-combobox__option--active', multiple && 'ds-combobox__option--multiple', className), ...omit(['displayValue'], rest), ...omit(['onClick', 'onPointerLeave'], props), children: [jsx(Label, { asChild: true, size: size, children: jsx("span", { children: jsx(SelectedIcon, { multiple: multiple, selected: !!selected }) }) }), jsxs(Label, { className: 'ds-combobox__option__label', size: size, id: labelId, children: [children, description && (jsx(ComboboxOptionDescription, { children: description }))] })] }) }));
|
|
30
|
+
}, className: cl('ds-combobox__option', active && 'ds-combobox__option--active', multiple && 'ds-combobox__option--multiple', className), ...omit(['displayValue'], rest), ...omit(['onClick', 'onPointerLeave'], props), children: [jsx(Label, { asChild: true, "data-size": size, children: jsx("span", { children: jsx(SelectedIcon, { multiple: multiple, selected: !!selected }) }) }), jsxs(Label, { className: 'ds-combobox__option__label', "data-size": size, id: labelId, children: [children, description && (jsx(ComboboxOptionDescription, { children: description }))] })] }) }));
|
|
29
31
|
}));
|
|
30
32
|
ComboboxOption.displayName = 'ComboboxOption';
|
|
31
33
|
function isComboboxOption(child) {
|