@digdir/designsystemet-react 0.0.0-next-20250710132619 → 0.0.0-react-side-effects-20260113071010
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 +2 -2
- package/dist/cjs/components/Combobox/Combobox.js +4 -2
- package/dist/cjs/components/Combobox/Custom.js +1 -1
- package/dist/cjs/components/Combobox/Option/Option.js +1 -1
- package/dist/cjs/components/Combobox/Option/useComboboxOption.js +3 -1
- package/dist/cjs/components/Combobox/internal/ComboboxInput.js +1 -1
- package/dist/cjs/{utilities → components/Combobox}/omit/omit.js +2 -0
- package/dist/cjs/components/Combobox/useCombobox.js +2 -1
- package/dist/cjs/components/Combobox/useComboboxKeyboard.js +4 -1
- package/dist/cjs/components/breadcrumbs/index.js +6 -6
- package/dist/cjs/components/button/button.js +1 -1
- package/dist/cjs/components/card/index.js +3 -3
- package/dist/cjs/components/chip/index.js +6 -6
- package/dist/cjs/components/details/details.js +1 -1
- package/dist/cjs/components/details/index.js +4 -4
- package/dist/cjs/components/dialog/dialog.js +18 -5
- package/dist/cjs/components/dialog/index.js +5 -5
- package/dist/cjs/components/dropdown/dropdown-button.js +12 -0
- package/dist/cjs/components/dropdown/dropdown-heading.js +8 -0
- package/dist/cjs/components/dropdown/dropdown-item.js +12 -0
- package/dist/cjs/components/dropdown/dropdown-list.js +12 -0
- package/dist/cjs/components/dropdown/dropdown-trigger-context.js +9 -9
- package/dist/cjs/components/dropdown/dropdown-trigger.js +16 -0
- package/dist/cjs/components/dropdown/index.js +20 -9
- package/dist/cjs/components/error-summary/error-summary-heading.js +8 -0
- package/dist/cjs/components/error-summary/error-summary-item.js +4 -4
- package/dist/cjs/components/error-summary/error-summary-link.js +8 -1
- package/dist/cjs/components/error-summary/error-summary-list.js +15 -0
- package/dist/cjs/components/error-summary/index.js +6 -6
- package/dist/cjs/components/field/field-counter.js +23 -3
- package/dist/cjs/components/field/field-description.js +6 -0
- package/dist/cjs/components/field/field-observer.js +8 -6
- package/dist/cjs/components/field/field.js +1 -1
- package/dist/cjs/components/field/index.js +6 -6
- package/dist/cjs/components/fieldset/fieldset-description.js +2 -2
- package/dist/cjs/components/fieldset/fieldset-legend.js +1 -1
- package/dist/cjs/components/fieldset/index.js +4 -4
- package/dist/cjs/components/list/index.js +5 -5
- package/dist/cjs/components/list/list-item.js +6 -0
- package/dist/cjs/components/list/lists.js +8 -8
- package/dist/cjs/components/pagination/index.js +5 -5
- package/dist/cjs/components/pagination/pagination-button.js +3 -3
- package/dist/cjs/components/pagination/pagination-item.js +5 -5
- package/dist/cjs/components/pagination/pagination-list.js +5 -5
- package/dist/cjs/components/popover/index.js +4 -4
- package/dist/cjs/components/popover/popover-trigger-context.js +3 -3
- package/dist/cjs/components/popover/popover-trigger.js +6 -6
- package/dist/cjs/components/popover/popover.js +7 -5
- package/dist/cjs/components/search/index.js +5 -5
- package/dist/cjs/components/search/search-button.js +2 -2
- package/dist/cjs/components/search/search-clear.js +2 -2
- package/dist/cjs/components/search/search-input.js +1 -1
- package/dist/cjs/components/select/index.js +4 -4
- package/dist/cjs/components/select/select-optgroup.js +4 -4
- package/dist/cjs/components/select/select-option.js +2 -2
- package/dist/cjs/components/skeleton/skeleton.js +3 -1
- package/dist/cjs/components/spinner/spinner.js +3 -1
- package/dist/cjs/components/suggestion/index.js +0 -4
- package/dist/cjs/components/suggestion/suggestion-clear.js +1 -1
- package/dist/cjs/components/suggestion/suggestion-list.js +41 -3
- package/dist/cjs/components/suggestion/suggestion-option.js +12 -0
- package/dist/cjs/components/suggestion/suggestion.js +39 -30
- package/dist/cjs/components/table/index.js +9 -9
- package/dist/cjs/components/table/table-body.js +6 -6
- package/dist/cjs/components/table/table-cell.js +1 -1
- package/dist/cjs/components/table/table-foot.js +6 -6
- package/dist/cjs/components/table/table-head.js +6 -6
- package/dist/cjs/components/table/table-header-cell.js +1 -1
- package/dist/cjs/components/table/table-row.js +4 -4
- package/dist/cjs/components/tabs/index.js +5 -5
- package/dist/cjs/components/tabs/tabs-list.js +8 -6
- package/dist/cjs/components/tabs/tabs-panel.js +18 -5
- package/dist/cjs/components/tabs/tabs-tab.js +6 -3
- package/dist/cjs/components/tabs/tabs.js +5 -0
- package/dist/cjs/components/tag/tag.js +2 -2
- package/dist/cjs/components/textfield/textfield.js +1 -1
- package/dist/cjs/components/toggle-group/index.js +3 -3
- package/dist/cjs/components/toggle-group/toggle-group-item.js +3 -3
- package/dist/cjs/components/toggle-group/toggle-group.js +3 -2
- package/dist/cjs/components/toggle-group/use-toggle-groupitem.js +2 -0
- package/dist/cjs/components/tooltip/tooltip.js +25 -7
- package/dist/cjs/index.js +95 -100
- package/dist/cjs/utilities/hooks/use-merge-refs/use-merge-refs.js +1 -1
- package/dist/cjs/utilities/hooks/use-pagination/use-pagination.js +2 -2
- package/dist/cjs/utilities/hooks/use-synchronized-animation/use-synchronized-animation.js +4 -2
- package/dist/cjs/utilities/roving-focus/roving-focus-item.js +1 -1
- package/dist/cjs/utilities/roving-focus/roving-focus-root.js +4 -3
- package/dist/esm/components/Combobox/Combobox.js +5 -3
- package/dist/esm/components/Combobox/ComboboxIdContext.js +1 -1
- package/dist/esm/components/Combobox/Custom.js +1 -1
- package/dist/esm/components/Combobox/Option/Option.js +1 -1
- package/dist/esm/components/Combobox/Option/useComboboxOption.js +3 -1
- package/dist/esm/components/Combobox/internal/ComboboxInput.js +1 -1
- package/dist/esm/{utilities → components/Combobox}/omit/omit.js +2 -0
- package/dist/esm/components/Combobox/useCombobox.js +2 -1
- package/dist/esm/components/Combobox/useComboboxKeyboard.js +4 -1
- package/dist/esm/components/breadcrumbs/index.js +7 -7
- package/dist/esm/components/button/button.js +1 -1
- package/dist/esm/components/card/index.js +4 -4
- package/dist/esm/components/checkbox/checkbox.js +2 -2
- package/dist/esm/components/chip/index.js +7 -7
- package/dist/esm/components/details/details.js +1 -1
- package/dist/esm/components/details/index.js +5 -5
- package/dist/esm/components/dialog/dialog.js +18 -5
- package/dist/esm/components/dialog/index.js +6 -6
- package/dist/esm/components/dropdown/dropdown-button.js +12 -0
- package/dist/esm/components/dropdown/dropdown-heading.js +8 -0
- package/dist/esm/components/dropdown/dropdown-item.js +12 -0
- package/dist/esm/components/dropdown/dropdown-list.js +12 -0
- package/dist/esm/components/dropdown/dropdown-trigger-context.js +9 -9
- package/dist/esm/components/dropdown/dropdown-trigger.js +16 -0
- package/dist/esm/components/dropdown/index.js +21 -10
- package/dist/esm/components/error-summary/error-summary-heading.js +8 -0
- package/dist/esm/components/error-summary/error-summary-item.js +4 -4
- package/dist/esm/components/error-summary/error-summary-link.js +8 -1
- package/dist/esm/components/error-summary/error-summary-list.js +17 -2
- package/dist/esm/components/error-summary/error-summary.js +1 -1
- package/dist/esm/components/error-summary/index.js +7 -7
- package/dist/esm/components/field/field-counter.js +23 -3
- package/dist/esm/components/field/field-description.js +6 -0
- package/dist/esm/components/field/field-observer.js +8 -6
- package/dist/esm/components/field/field.js +1 -1
- package/dist/esm/components/field/index.js +7 -7
- package/dist/esm/components/fieldset/fieldset-description.js +2 -2
- package/dist/esm/components/fieldset/fieldset-legend.js +1 -1
- package/dist/esm/components/fieldset/index.js +5 -5
- package/dist/esm/components/list/index.js +6 -6
- package/dist/esm/components/list/list-item.js +6 -0
- package/dist/esm/components/list/lists.js +8 -8
- package/dist/esm/components/pagination/index.js +6 -6
- package/dist/esm/components/pagination/pagination-button.js +3 -3
- package/dist/esm/components/pagination/pagination-item.js +5 -5
- package/dist/esm/components/pagination/pagination-list.js +5 -5
- package/dist/esm/components/popover/index.js +5 -5
- package/dist/esm/components/popover/popover-trigger-context.js +3 -3
- package/dist/esm/components/popover/popover-trigger.js +6 -6
- package/dist/esm/components/popover/popover.js +7 -5
- package/dist/esm/components/radio/radio.js +2 -2
- package/dist/esm/components/search/index.js +6 -6
- package/dist/esm/components/search/search-button.js +2 -2
- package/dist/esm/components/search/search-clear.js +2 -2
- package/dist/esm/components/search/search-input.js +1 -1
- package/dist/esm/components/select/index.js +5 -5
- package/dist/esm/components/select/select-optgroup.js +4 -4
- package/dist/esm/components/select/select-option.js +2 -2
- package/dist/esm/components/skeleton/skeleton.js +3 -1
- package/dist/esm/components/spinner/spinner.js +3 -1
- package/dist/esm/components/suggestion/index.js +1 -4
- package/dist/esm/components/suggestion/suggestion-clear.js +1 -1
- package/dist/esm/components/suggestion/suggestion-list.js +41 -3
- package/dist/esm/components/suggestion/suggestion-option.js +12 -0
- package/dist/esm/components/suggestion/suggestion.js +40 -31
- package/dist/esm/components/switch/switch.js +2 -2
- package/dist/esm/components/table/index.js +10 -10
- package/dist/esm/components/table/table-body.js +6 -6
- package/dist/esm/components/table/table-cell.js +1 -1
- package/dist/esm/components/table/table-foot.js +6 -6
- package/dist/esm/components/table/table-head.js +6 -6
- package/dist/esm/components/table/table-header-cell.js +1 -1
- package/dist/esm/components/table/table-row.js +4 -4
- package/dist/esm/components/tabs/index.js +6 -6
- package/dist/esm/components/tabs/tabs-list.js +8 -6
- package/dist/esm/components/tabs/tabs-panel.js +20 -7
- package/dist/esm/components/tabs/tabs-tab.js +6 -3
- package/dist/esm/components/tabs/tabs.js +6 -1
- package/dist/esm/components/tag/tag.js +2 -2
- package/dist/esm/components/textfield/textfield.js +2 -2
- package/dist/esm/components/toggle-group/index.js +4 -4
- package/dist/esm/components/toggle-group/toggle-group-item.js +3 -3
- package/dist/esm/components/toggle-group/toggle-group.js +4 -3
- package/dist/esm/components/toggle-group/use-toggle-groupitem.js +2 -0
- package/dist/esm/components/tooltip/tooltip.js +25 -7
- package/dist/esm/index.js +48 -49
- package/dist/esm/utilities/hooks/use-merge-refs/use-merge-refs.js +1 -1
- package/dist/esm/utilities/hooks/use-pagination/use-pagination.js +2 -2
- package/dist/esm/utilities/hooks/use-synchronized-animation/use-synchronized-animation.js +4 -3
- package/dist/esm/utilities/roving-focus/roving-focus-item.js +1 -1
- package/dist/esm/utilities/roving-focus/roving-focus-root.js +5 -4
- package/dist/react-types.d.ts +22 -2
- package/dist/types/colors.d.ts +1 -23
- package/dist/types/colors.d.ts.map +1 -1
- package/dist/types/components/Combobox/Combobox.d.ts +6 -6
- package/dist/types/components/Combobox/Combobox.d.ts.map +1 -1
- package/dist/types/components/Combobox/ComboboxContext.d.ts +1 -1
- package/dist/types/components/Combobox/ComboboxContext.d.ts.map +1 -1
- package/dist/types/components/Combobox/ComboboxIdContext.d.ts +2 -2
- package/dist/types/components/Combobox/ComboboxIdContext.d.ts.map +1 -1
- package/dist/types/components/Combobox/Custom.d.ts +1 -1
- package/dist/types/components/Combobox/Custom.d.ts.map +1 -1
- package/dist/types/components/Combobox/Empty.d.ts +1 -1
- package/dist/types/components/Combobox/Empty.d.ts.map +1 -1
- package/dist/types/components/Combobox/Option/Description.d.ts +1 -1
- package/dist/types/components/Combobox/Option/Description.d.ts.map +1 -1
- package/dist/types/components/Combobox/Option/Option.d.ts +2 -2
- package/dist/types/components/Combobox/Option/Option.d.ts.map +1 -1
- package/dist/types/components/Combobox/internal/ComboboxClearButton.d.ts +1 -1
- package/dist/types/components/Combobox/internal/ComboboxClearButton.d.ts.map +1 -1
- package/dist/types/components/Combobox/internal/ComboboxInput.d.ts.map +1 -1
- package/dist/types/{utilities → components/Combobox}/omit/omit.d.ts +2 -0
- package/dist/types/components/Combobox/omit/omit.d.ts.map +1 -0
- package/dist/types/components/Combobox/useCombobox.d.ts +3 -3
- package/dist/types/components/Combobox/useCombobox.d.ts.map +1 -1
- package/dist/types/components/Combobox/useFormField/FieldsetContext.d.ts +1 -1
- package/dist/types/components/Combobox/useFormField/FieldsetContext.d.ts.map +1 -1
- package/dist/types/components/Combobox/useFormField/useFormField.d.ts +1 -1
- package/dist/types/components/Combobox/useFormField/useFormField.d.ts.map +1 -1
- package/dist/types/components/alert/alert.d.ts +3 -3
- package/dist/types/components/alert/alert.d.ts.map +1 -1
- package/dist/types/components/avatar/avatar.d.ts +10 -28
- package/dist/types/components/avatar/avatar.d.ts.map +1 -1
- package/dist/types/components/badge/badge-position.d.ts +2 -2
- package/dist/types/components/badge/badge-position.d.ts.map +1 -1
- package/dist/types/components/badge/badge.d.ts +3 -3
- package/dist/types/components/badge/badge.d.ts.map +1 -1
- package/dist/types/components/badge/index.d.ts +5 -5
- package/dist/types/components/breadcrumbs/breadcrumbs-item.d.ts +1 -1
- package/dist/types/components/breadcrumbs/breadcrumbs-item.d.ts.map +1 -1
- package/dist/types/components/breadcrumbs/breadcrumbs-link.d.ts +3 -3
- package/dist/types/components/breadcrumbs/breadcrumbs-link.d.ts.map +1 -1
- package/dist/types/components/breadcrumbs/breadcrumbs-list.d.ts +1 -1
- package/dist/types/components/breadcrumbs/breadcrumbs-list.d.ts.map +1 -1
- package/dist/types/components/breadcrumbs/breadcrumbs.d.ts +2 -2
- package/dist/types/components/breadcrumbs/breadcrumbs.d.ts.map +1 -1
- package/dist/types/components/breadcrumbs/index.d.ts +48 -12
- package/dist/types/components/breadcrumbs/index.d.ts.map +1 -1
- package/dist/types/components/button/button.d.ts +7 -5
- package/dist/types/components/button/button.d.ts.map +1 -1
- package/dist/types/components/card/card-block.d.ts +2 -2
- package/dist/types/components/card/card-block.d.ts.map +1 -1
- package/dist/types/components/card/card.d.ts +2 -2
- package/dist/types/components/card/card.d.ts.map +1 -1
- package/dist/types/components/card/index.d.ts +18 -10
- package/dist/types/components/card/index.d.ts.map +1 -1
- package/dist/types/components/checkbox/checkbox.d.ts +1 -1
- package/dist/types/components/checkbox/checkbox.d.ts.map +1 -1
- package/dist/types/components/chip/chips.d.ts +4 -4
- package/dist/types/components/chip/chips.d.ts.map +1 -1
- package/dist/types/components/chip/index.d.ts +33 -14
- package/dist/types/components/chip/index.d.ts.map +1 -1
- package/dist/types/components/details/details-content.d.ts +1 -1
- package/dist/types/components/details/details-content.d.ts.map +1 -1
- package/dist/types/components/details/details-summary.d.ts +2 -2
- package/dist/types/components/details/details-summary.d.ts.map +1 -1
- package/dist/types/components/details/details.d.ts +1 -1
- package/dist/types/components/details/details.d.ts.map +1 -1
- package/dist/types/components/details/index.d.ts +19 -7
- package/dist/types/components/details/index.d.ts.map +1 -1
- package/dist/types/components/dialog/dialog-block.d.ts +2 -2
- package/dist/types/components/dialog/dialog-block.d.ts.map +1 -1
- package/dist/types/components/dialog/dialog-trigger-context.d.ts +1 -1
- package/dist/types/components/dialog/dialog-trigger-context.d.ts.map +1 -1
- package/dist/types/components/dialog/dialog-trigger.d.ts +5 -5
- package/dist/types/components/dialog/dialog-trigger.d.ts.map +1 -1
- package/dist/types/components/dialog/dialog.d.ts +24 -4
- package/dist/types/components/dialog/dialog.d.ts.map +1 -1
- package/dist/types/components/dialog/index.d.ts +46 -25
- package/dist/types/components/dialog/index.d.ts.map +1 -1
- package/dist/types/components/divider/divider.d.ts +1 -1
- package/dist/types/components/divider/divider.d.ts.map +1 -1
- package/dist/types/components/dropdown/dropdown-button.d.ts +13 -1
- package/dist/types/components/dropdown/dropdown-button.d.ts.map +1 -1
- package/dist/types/components/dropdown/dropdown-heading.d.ts +10 -2
- package/dist/types/components/dropdown/dropdown-heading.d.ts.map +1 -1
- package/dist/types/components/dropdown/dropdown-item.d.ts +13 -1
- package/dist/types/components/dropdown/dropdown-item.d.ts.map +1 -1
- package/dist/types/components/dropdown/dropdown-list.d.ts +13 -1
- package/dist/types/components/dropdown/dropdown-list.d.ts.map +1 -1
- package/dist/types/components/dropdown/dropdown-trigger-context.d.ts +9 -9
- package/dist/types/components/dropdown/dropdown-trigger.d.ts +17 -1
- package/dist/types/components/dropdown/dropdown-trigger.d.ts.map +1 -1
- package/dist/types/components/dropdown/dropdown.d.ts +2 -2
- package/dist/types/components/dropdown/dropdown.d.ts.map +1 -1
- package/dist/types/components/dropdown/index.d.ts +99 -19
- package/dist/types/components/dropdown/index.d.ts.map +1 -1
- package/dist/types/components/error-summary/error-summary-heading.d.ts +10 -2
- package/dist/types/components/error-summary/error-summary-heading.d.ts.map +1 -1
- package/dist/types/components/error-summary/error-summary-item.d.ts +6 -6
- package/dist/types/components/error-summary/error-summary-item.d.ts.map +1 -1
- package/dist/types/components/error-summary/error-summary-link.d.ts +11 -4
- package/dist/types/components/error-summary/error-summary-link.d.ts.map +1 -1
- package/dist/types/components/error-summary/error-summary-list.d.ts +17 -2
- package/dist/types/components/error-summary/error-summary-list.d.ts.map +1 -1
- package/dist/types/components/error-summary/error-summary.d.ts +3 -3
- package/dist/types/components/error-summary/error-summary.d.ts.map +1 -1
- package/dist/types/components/error-summary/index.d.ts +52 -20
- package/dist/types/components/error-summary/index.d.ts.map +1 -1
- package/dist/types/components/field/field-affix.d.ts +2 -2
- package/dist/types/components/field/field-affix.d.ts.map +1 -1
- package/dist/types/components/field/field-counter.d.ts +18 -4
- package/dist/types/components/field/field-counter.d.ts.map +1 -1
- package/dist/types/components/field/field-description.d.ts +7 -1
- package/dist/types/components/field/field-description.d.ts.map +1 -1
- package/dist/types/components/field/field-observer.d.ts.map +1 -1
- package/dist/types/components/field/field.d.ts +2 -2
- package/dist/types/components/field/field.d.ts.map +1 -1
- package/dist/types/components/field/index.d.ts +45 -17
- package/dist/types/components/field/index.d.ts.map +1 -1
- package/dist/types/components/fieldset/fieldset-description.d.ts +4 -4
- package/dist/types/components/fieldset/fieldset-description.d.ts.map +1 -1
- package/dist/types/components/fieldset/fieldset-legend.d.ts +2 -2
- package/dist/types/components/fieldset/fieldset-legend.d.ts.map +1 -1
- package/dist/types/components/fieldset/fieldset.d.ts +1 -1
- package/dist/types/components/fieldset/fieldset.d.ts.map +1 -1
- package/dist/types/components/fieldset/index.d.ts +21 -9
- package/dist/types/components/fieldset/index.d.ts.map +1 -1
- package/dist/types/components/heading/heading.d.ts +2 -2
- package/dist/types/components/heading/heading.d.ts.map +1 -1
- package/dist/types/components/index.d.ts +2 -2
- package/dist/types/components/index.d.ts.map +1 -1
- package/dist/types/components/input/input.d.ts +2 -2
- package/dist/types/components/input/input.d.ts.map +1 -1
- package/dist/types/components/label/label.d.ts +2 -2
- package/dist/types/components/label/label.d.ts.map +1 -1
- package/dist/types/components/link/link.d.ts +2 -2
- package/dist/types/components/link/link.d.ts.map +1 -1
- package/dist/types/components/list/index.d.ts +32 -11
- package/dist/types/components/list/index.d.ts.map +1 -1
- package/dist/types/components/list/list-item.d.ts +8 -2
- package/dist/types/components/list/list-item.d.ts.map +1 -1
- package/dist/types/components/list/lists.d.ts +12 -12
- package/dist/types/components/list/lists.d.ts.map +1 -1
- package/dist/types/components/pagination/index.d.ts +38 -15
- package/dist/types/components/pagination/index.d.ts.map +1 -1
- package/dist/types/components/pagination/pagination-button.d.ts +5 -5
- package/dist/types/components/pagination/pagination-button.d.ts.map +1 -1
- package/dist/types/components/pagination/pagination-item.d.ts +7 -7
- package/dist/types/components/pagination/pagination-item.d.ts.map +1 -1
- package/dist/types/components/pagination/pagination-list.d.ts +7 -7
- package/dist/types/components/pagination/pagination-list.d.ts.map +1 -1
- package/dist/types/components/pagination/pagination.d.ts +2 -2
- package/dist/types/components/pagination/pagination.d.ts.map +1 -1
- package/dist/types/components/paragraph/paragraph.d.ts +2 -2
- package/dist/types/components/paragraph/paragraph.d.ts.map +1 -1
- package/dist/types/components/popover/index.d.ts +39 -18
- package/dist/types/components/popover/index.d.ts.map +1 -1
- package/dist/types/components/popover/popover-trigger-context.d.ts +4 -4
- package/dist/types/components/popover/popover-trigger.d.ts +7 -7
- package/dist/types/components/popover/popover-trigger.d.ts.map +1 -1
- package/dist/types/components/popover/popover.d.ts +3 -3
- package/dist/types/components/popover/popover.d.ts.map +1 -1
- package/dist/types/components/radio/radio.d.ts +1 -1
- package/dist/types/components/radio/radio.d.ts.map +1 -1
- package/dist/types/components/search/index.d.ts +34 -15
- package/dist/types/components/search/index.d.ts.map +1 -1
- package/dist/types/components/search/search-button.d.ts +6 -6
- package/dist/types/components/search/search-button.d.ts.map +1 -1
- package/dist/types/components/search/search-clear.d.ts +4 -4
- package/dist/types/components/search/search-clear.d.ts.map +1 -1
- package/dist/types/components/search/search-input.d.ts +2 -2
- package/dist/types/components/search/search-input.d.ts.map +1 -1
- package/dist/types/components/search/search.d.ts +1 -1
- package/dist/types/components/search/search.d.ts.map +1 -1
- package/dist/types/components/select/index.d.ts +27 -12
- package/dist/types/components/select/index.d.ts.map +1 -1
- package/dist/types/components/select/select-optgroup.d.ts +6 -6
- package/dist/types/components/select/select-optgroup.d.ts.map +1 -1
- package/dist/types/components/select/select-option.d.ts +4 -4
- package/dist/types/components/select/select-option.d.ts.map +1 -1
- package/dist/types/components/select/select.d.ts +2 -2
- package/dist/types/components/select/select.d.ts.map +1 -1
- package/dist/types/components/skeleton/skeleton.d.ts +24 -7
- package/dist/types/components/skeleton/skeleton.d.ts.map +1 -1
- package/dist/types/components/skip-link/skip-link.d.ts +2 -2
- package/dist/types/components/skip-link/skip-link.d.ts.map +1 -1
- package/dist/types/components/spinner/spinner.d.ts +1 -2
- package/dist/types/components/spinner/spinner.d.ts.map +1 -1
- package/dist/types/components/suggestion/index.d.ts +67 -44
- package/dist/types/components/suggestion/index.d.ts.map +1 -1
- package/dist/types/components/suggestion/suggestion-clear.d.ts +2 -2
- package/dist/types/components/suggestion/suggestion-clear.d.ts.map +1 -1
- package/dist/types/components/suggestion/suggestion-empty.d.ts +1 -1
- package/dist/types/components/suggestion/suggestion-empty.d.ts.map +1 -1
- package/dist/types/components/suggestion/suggestion-input.d.ts +15 -3
- package/dist/types/components/suggestion/suggestion-input.d.ts.map +1 -1
- package/dist/types/components/suggestion/suggestion-list.d.ts +12 -2
- package/dist/types/components/suggestion/suggestion-list.d.ts.map +1 -1
- package/dist/types/components/suggestion/suggestion-option.d.ts +13 -1
- package/dist/types/components/suggestion/suggestion-option.d.ts.map +1 -1
- package/dist/types/components/suggestion/suggestion.d.ts +47 -57
- package/dist/types/components/suggestion/suggestion.d.ts.map +1 -1
- package/dist/types/components/switch/switch.d.ts +2 -2
- package/dist/types/components/switch/switch.d.ts.map +1 -1
- package/dist/types/components/table/index.d.ts +65 -16
- package/dist/types/components/table/index.d.ts.map +1 -1
- package/dist/types/components/table/table-body.d.ts +7 -7
- package/dist/types/components/table/table-body.d.ts.map +1 -1
- package/dist/types/components/table/table-cell.d.ts +2 -2
- package/dist/types/components/table/table-cell.d.ts.map +1 -1
- package/dist/types/components/table/table-foot.d.ts +7 -7
- package/dist/types/components/table/table-foot.d.ts.map +1 -1
- package/dist/types/components/table/table-head.d.ts +7 -7
- package/dist/types/components/table/table-head.d.ts.map +1 -1
- package/dist/types/components/table/table-header-cell.d.ts +3 -3
- package/dist/types/components/table/table-header-cell.d.ts.map +1 -1
- package/dist/types/components/table/table-row.d.ts +5 -5
- package/dist/types/components/table/table-row.d.ts.map +1 -1
- package/dist/types/components/table/table.d.ts +2 -2
- package/dist/types/components/table/table.d.ts.map +1 -1
- package/dist/types/components/tabs/index.d.ts +29 -14
- package/dist/types/components/tabs/index.d.ts.map +1 -1
- package/dist/types/components/tabs/tabs-list.d.ts +5 -5
- package/dist/types/components/tabs/tabs-list.d.ts.map +1 -1
- package/dist/types/components/tabs/tabs-panel.d.ts +3 -3
- package/dist/types/components/tabs/tabs-panel.d.ts.map +1 -1
- package/dist/types/components/tabs/tabs-tab.d.ts +3 -3
- package/dist/types/components/tabs/tabs-tab.d.ts.map +1 -1
- package/dist/types/components/tabs/tabs.d.ts +6 -3
- package/dist/types/components/tabs/tabs.d.ts.map +1 -1
- package/dist/types/components/tag/tag.d.ts +15 -3
- package/dist/types/components/tag/tag.d.ts.map +1 -1
- package/dist/types/components/textarea/textarea.d.ts +1 -1
- package/dist/types/components/textarea/textarea.d.ts.map +1 -1
- package/dist/types/components/textfield/textfield.d.ts +1 -1
- package/dist/types/components/textfield/textfield.d.ts.map +1 -1
- package/dist/types/components/toggle-group/index.d.ts +11 -11
- package/dist/types/components/toggle-group/index.d.ts.map +1 -1
- package/dist/types/components/toggle-group/toggle-group-item.d.ts +3 -3
- package/dist/types/components/toggle-group/toggle-group-item.d.ts.map +1 -1
- package/dist/types/components/toggle-group/toggle-group.d.ts +14 -3
- package/dist/types/components/toggle-group/toggle-group.d.ts.map +1 -1
- package/dist/types/components/toggle-group/use-toggle-groupitem.d.ts +1 -0
- package/dist/types/components/toggle-group/use-toggle-groupitem.d.ts.map +1 -1
- package/dist/types/components/tooltip/tooltip.d.ts +11 -1
- package/dist/types/components/tooltip/tooltip.d.ts.map +1 -1
- package/dist/types/components/validation-message/validation-message.d.ts +3 -3
- package/dist/types/components/validation-message/validation-message.d.ts.map +1 -1
- package/dist/types/index.d.ts +15 -2
- package/dist/types/index.d.ts.map +1 -1
- package/dist/types/types.d.ts +1 -1
- package/dist/types/types.d.ts.map +1 -1
- package/dist/types/utilities/hooks/deprecated/use-debounce-callback/use-debounce-callback.d.ts.map +1 -0
- package/dist/types/utilities/hooks/deprecated/use-isomorphic-layout-effect/use-isomorphic-layout-effect.d.ts.map +1 -0
- package/dist/types/utilities/hooks/deprecated/use-media-query/use-media-query.d.ts.map +1 -0
- package/dist/types/utilities/hooks/index.d.ts +3 -3
- package/dist/types/utilities/hooks/index.d.ts.map +1 -1
- package/dist/types/utilities/hooks/use-synchronized-animation/use-synchronized-animation.d.ts +3 -1
- package/dist/types/utilities/hooks/use-synchronized-animation/use-synchronized-animation.d.ts.map +1 -1
- package/dist/types/utilities/index.d.ts +4 -3
- package/dist/types/utilities/index.d.ts.map +1 -1
- package/dist/types/utilities/roving-focus/roving-focus-item.d.ts +2 -2
- package/dist/types/utilities/roving-focus/roving-focus-item.d.ts.map +1 -1
- package/dist/types/utilities/roving-focus/roving-focus-root.d.ts +3 -3
- package/dist/types/utilities/roving-focus/roving-focus-root.d.ts.map +1 -1
- package/dist/types/utilities/roving-focus/use-roving-focus.d.ts +173 -172
- package/dist/types/utilities/roving-focus/use-roving-focus.d.ts.map +1 -1
- package/package.json +28 -30
- package/dist/cjs/components/suggestion/suggestion-chips.js +0 -15
- package/dist/esm/components/suggestion/suggestion-chips.js +0 -13
- package/dist/types/components/suggestion/suggestion-chips.d.ts +0 -19
- package/dist/types/components/suggestion/suggestion-chips.d.ts.map +0 -1
- package/dist/types/utilities/hooks/use-debounce-callback/use-debounce-callback.d.ts.map +0 -1
- package/dist/types/utilities/hooks/use-isomorphic-layout-effect/use-isomorphic-layout-effect.d.ts.map +0 -1
- package/dist/types/utilities/hooks/use-media-query/use-media-query.d.ts.map +0 -1
- package/dist/types/utilities/omit/omit.d.ts.map +0 -1
- package/dist/types/utilities/roving-focus/index.d.ts +0 -4
- package/dist/types/utilities/roving-focus/index.d.ts.map +0 -1
- /package/dist/cjs/utilities/hooks/{use-debounce-callback → deprecated/use-debounce-callback}/use-debounce-callback.js +0 -0
- /package/dist/cjs/utilities/hooks/{use-isomorphic-layout-effect → deprecated/use-isomorphic-layout-effect}/use-isomorphic-layout-effect.js +0 -0
- /package/dist/cjs/utilities/hooks/{use-media-query → deprecated/use-media-query}/use-media-query.js +0 -0
- /package/dist/esm/utilities/hooks/{use-debounce-callback → deprecated/use-debounce-callback}/use-debounce-callback.js +0 -0
- /package/dist/esm/utilities/hooks/{use-isomorphic-layout-effect → deprecated/use-isomorphic-layout-effect}/use-isomorphic-layout-effect.js +0 -0
- /package/dist/esm/utilities/hooks/{use-media-query → deprecated/use-media-query}/use-media-query.js +0 -0
- /package/dist/types/utilities/hooks/{use-debounce-callback → deprecated/use-debounce-callback}/use-debounce-callback.d.ts +0 -0
- /package/dist/types/utilities/hooks/{use-isomorphic-layout-effect → deprecated/use-isomorphic-layout-effect}/use-isomorphic-layout-effect.d.ts +0 -0
- /package/dist/types/utilities/hooks/{use-media-query → deprecated/use-media-query}/use-media-query.d.ts +0 -0
|
@@ -1,15 +1,15 @@
|
|
|
1
1
|
'use client';
|
|
2
|
-
import {
|
|
2
|
+
import { ChipButton, ChipCheckbox, ChipRadio, ChipRemovable } from './chips.js';
|
|
3
3
|
|
|
4
|
-
const
|
|
4
|
+
const ChipComponent = {
|
|
5
5
|
Button: ChipButton,
|
|
6
6
|
Checkbox: ChipCheckbox,
|
|
7
7
|
Radio: ChipRadio,
|
|
8
8
|
Removable: ChipRemovable,
|
|
9
9
|
};
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
|
|
10
|
+
ChipComponent.Button.displayName = 'Chip.Button';
|
|
11
|
+
ChipComponent.Checkbox.displayName = 'Chip.Checkbox';
|
|
12
|
+
ChipComponent.Radio.displayName = 'Chip.Radio';
|
|
13
|
+
ChipComponent.Removable.displayName = 'Chip.Removable';
|
|
14
14
|
|
|
15
|
-
export { Chip, ChipButton, ChipCheckbox, ChipRadio, ChipRemovable };
|
|
15
|
+
export { ChipComponent as Chip, ChipButton, ChipCheckbox, ChipRadio, ChipRemovable };
|
|
@@ -2,8 +2,8 @@
|
|
|
2
2
|
import { jsx } from 'react/jsx-runtime';
|
|
3
3
|
import cl from 'clsx/lite';
|
|
4
4
|
import { forwardRef, useRef, useEffect } from 'react';
|
|
5
|
-
import '@u-elements/u-details';
|
|
6
5
|
import { useMergeRefs } from '../../utilities/hooks/use-merge-refs/use-merge-refs.js';
|
|
6
|
+
import '@u-elements/u-details';
|
|
7
7
|
|
|
8
8
|
/**
|
|
9
9
|
* Details component, contains `Details.Summary` and `Details.Content` components.
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
'use client';
|
|
2
|
-
import { Details
|
|
2
|
+
import { Details } from './details.js';
|
|
3
3
|
import { DetailsContent } from './details-content.js';
|
|
4
4
|
import { DetailsSummary } from './details-summary.js';
|
|
5
5
|
|
|
@@ -12,11 +12,11 @@ import { DetailsSummary } from './details-summary.js';
|
|
|
12
12
|
* <Details.Content>Content</Details.Content>
|
|
13
13
|
* </Details>
|
|
14
14
|
*/
|
|
15
|
-
const
|
|
15
|
+
const DetailsComponent = Object.assign(Details, {
|
|
16
16
|
Summary: DetailsSummary,
|
|
17
17
|
Content: DetailsContent,
|
|
18
18
|
});
|
|
19
|
-
|
|
20
|
-
|
|
19
|
+
DetailsComponent.Summary.displayName = 'Details.Summary';
|
|
20
|
+
DetailsComponent.Content.displayName = 'Details.Content';
|
|
21
21
|
|
|
22
|
-
export { Details, DetailsContent, DetailsSummary };
|
|
22
|
+
export { DetailsComponent as Details, DetailsContent, DetailsSummary };
|
|
@@ -3,9 +3,9 @@ import { jsxs, jsx } from 'react/jsx-runtime';
|
|
|
3
3
|
import { Slot } from '@radix-ui/react-slot';
|
|
4
4
|
import cl from 'clsx/lite';
|
|
5
5
|
import { forwardRef, useContext, useRef, useEffect } from 'react';
|
|
6
|
+
import { useMergeRefs } from '../../utilities/hooks/use-merge-refs/use-merge-refs.js';
|
|
6
7
|
import { Button } from '../button/button.js';
|
|
7
8
|
import { Context } from './dialog-trigger-context.js';
|
|
8
|
-
import { useMergeRefs } from '../../utilities/hooks/use-merge-refs/use-merge-refs.js';
|
|
9
9
|
|
|
10
10
|
/**
|
|
11
11
|
* Dialog component, used to display a dialog dialog.
|
|
@@ -30,7 +30,7 @@ import { useMergeRefs } from '../../utilities/hooks/use-merge-refs/use-merge-ref
|
|
|
30
30
|
* Content
|
|
31
31
|
* </Dialog>
|
|
32
32
|
*/
|
|
33
|
-
const Dialog = forwardRef(function Dialog({ asChild, children, className, closeButton = 'Lukk dialogvindu', closedby = 'closerequest', modal = true, onClose, open, ...rest }, ref) {
|
|
33
|
+
const Dialog = forwardRef(function Dialog({ asChild, children, className, placement = 'center', closeButton = 'Lukk dialogvindu', closedby = 'closerequest', modal = true, onClose, open, ...rest }, ref) {
|
|
34
34
|
const contextRef = useContext(Context);
|
|
35
35
|
const dialogRef = useRef(null); // This local ref is used to make sure the dialog works without a DialogTriggerContext
|
|
36
36
|
const Component = asChild ? Slot : 'dialog';
|
|
@@ -40,7 +40,19 @@ const Dialog = forwardRef(function Dialog({ asChild, children, className, closeB
|
|
|
40
40
|
useEffect(() => {
|
|
41
41
|
const dialog = dialogRef.current;
|
|
42
42
|
const handleClosedby = (event) => {
|
|
43
|
+
if (event.defaultPrevented)
|
|
44
|
+
return; // Skip if default action is prevented
|
|
43
45
|
const { clientY: y, clientX: x, target } = event;
|
|
46
|
+
/* Check if clicked element or its closest parent has data-command='close' */
|
|
47
|
+
if (target instanceof Element && event.type === 'click') {
|
|
48
|
+
const closeElement = target.closest('[data-command="close"]');
|
|
49
|
+
if (closeElement)
|
|
50
|
+
return dialog?.close();
|
|
51
|
+
}
|
|
52
|
+
// if the browser supports closedBy, we let the browser handle it
|
|
53
|
+
// see https://developer.mozilla.org/en-US/docs/Web/API/HTMLDialogElement/closedBy
|
|
54
|
+
if (dialog && 'closedBy' in dialog)
|
|
55
|
+
return;
|
|
44
56
|
if (event instanceof KeyboardEvent)
|
|
45
57
|
return (closedby === 'none' &&
|
|
46
58
|
event.key === 'Escape' &&
|
|
@@ -71,10 +83,11 @@ const Dialog = forwardRef(function Dialog({ asChild, children, className, closeB
|
|
|
71
83
|
/* handle closing */
|
|
72
84
|
useEffect(() => {
|
|
73
85
|
const handleClose = (event) => onClose?.(event);
|
|
74
|
-
dialogRef.current
|
|
75
|
-
|
|
86
|
+
const currentRef = dialogRef.current;
|
|
87
|
+
currentRef?.addEventListener('close', handleClose);
|
|
88
|
+
return () => currentRef?.removeEventListener('close', handleClose);
|
|
76
89
|
}, [onClose]);
|
|
77
|
-
return (jsxs(Component, { className: cl('ds-dialog', className), ref: mergedRefs, "data-modal": modal, ...rest, children: [closeButton !== false && (jsx(
|
|
90
|
+
return (jsxs(Component, { className: cl('ds-dialog', className), ref: mergedRefs, "data-placement": placement, "data-modal": modal, closedby: closedby, ...rest, children: [closeButton !== false && (jsx(Button, { "aria-label": closeButton, "data-color": 'neutral', icon: true, variant: 'tertiary', "data-command": 'close' })), children] }));
|
|
78
91
|
});
|
|
79
92
|
|
|
80
93
|
export { Dialog };
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
'use client';
|
|
2
|
-
import { Dialog
|
|
2
|
+
import { Dialog } from './dialog.js';
|
|
3
3
|
import { DialogBlock } from './dialog-block.js';
|
|
4
4
|
import { DialogTrigger } from './dialog-trigger.js';
|
|
5
5
|
import { DialogTriggerContext } from './dialog-trigger-context.js';
|
|
@@ -17,13 +17,13 @@ import { DialogTriggerContext } from './dialog-trigger-context.js';
|
|
|
17
17
|
* </Dialog>
|
|
18
18
|
* </Dialog.TriggerContext>
|
|
19
19
|
*/
|
|
20
|
-
const
|
|
20
|
+
const DialogComponent = Object.assign(Dialog, {
|
|
21
21
|
Block: DialogBlock,
|
|
22
22
|
TriggerContext: DialogTriggerContext,
|
|
23
23
|
Trigger: DialogTrigger,
|
|
24
24
|
});
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
25
|
+
DialogComponent.Block.displayName = 'Dialog.Block';
|
|
26
|
+
DialogComponent.TriggerContext.displayName = 'Dialog.TriggerContext';
|
|
27
|
+
DialogComponent.Trigger.displayName = 'Dialog.Trigger';
|
|
28
28
|
|
|
29
|
-
export { Dialog, DialogBlock, DialogTrigger, DialogTriggerContext };
|
|
29
|
+
export { DialogComponent as Dialog, DialogBlock, DialogTrigger, DialogTriggerContext };
|
|
@@ -3,6 +3,18 @@ import { jsx } from 'react/jsx-runtime';
|
|
|
3
3
|
import { forwardRef } from 'react';
|
|
4
4
|
import { Button } from '../button/button.js';
|
|
5
5
|
|
|
6
|
+
/**
|
|
7
|
+
* DropdownButton component, used to display a button in the DropdownItem.
|
|
8
|
+
*
|
|
9
|
+
* @example
|
|
10
|
+
* <Dropdown>
|
|
11
|
+
* <DropdownList>
|
|
12
|
+
* <DropdownItem>
|
|
13
|
+
* <DropdownButton>Button</DropdownButton>
|
|
14
|
+
* </DropdownItem>
|
|
15
|
+
* </DropdownList>
|
|
16
|
+
* </Dropdown>
|
|
17
|
+
*/
|
|
6
18
|
const DropdownButton = forwardRef(function DropdownButton({ ...rest }, ref) {
|
|
7
19
|
return jsx(Button, { ref: ref, variant: 'tertiary', ...rest });
|
|
8
20
|
});
|
|
@@ -3,6 +3,14 @@ import { jsx } from 'react/jsx-runtime';
|
|
|
3
3
|
import { forwardRef } from 'react';
|
|
4
4
|
import { Heading } from '../heading/heading.js';
|
|
5
5
|
|
|
6
|
+
/**
|
|
7
|
+
* DropdownHeading component, used to display a heading in the Dropdown.
|
|
8
|
+
*
|
|
9
|
+
* @example
|
|
10
|
+
* <Dropdown>
|
|
11
|
+
* <DropdownHeading>Heading</DropdownHeading>
|
|
12
|
+
* </Dropdown>
|
|
13
|
+
*/
|
|
6
14
|
const DropdownHeading = forwardRef(function DropdownHeading({ className, ...rest }, ref) {
|
|
7
15
|
return jsx(Heading, { ref: ref, ...rest });
|
|
8
16
|
});
|
|
@@ -2,6 +2,18 @@
|
|
|
2
2
|
import { jsx } from 'react/jsx-runtime';
|
|
3
3
|
import { forwardRef } from 'react';
|
|
4
4
|
|
|
5
|
+
/**
|
|
6
|
+
* DropdownItem component, used to display an item in the Dropdown. Used within a DropdownList.
|
|
7
|
+
*
|
|
8
|
+
* @example
|
|
9
|
+
* <Dropdown>
|
|
10
|
+
* <DropdownList>
|
|
11
|
+
* <DropdownItem>
|
|
12
|
+
* <DropdownButton>Button</DropdownButton>
|
|
13
|
+
* </DropdownItem>
|
|
14
|
+
* </DropdownList>
|
|
15
|
+
* </Dropdown>
|
|
16
|
+
*/
|
|
5
17
|
const DropdownItem = forwardRef(function DropdownItem({ className, ...rest }, ref) {
|
|
6
18
|
return jsx("li", { ref: ref, ...rest });
|
|
7
19
|
});
|
|
@@ -2,6 +2,18 @@
|
|
|
2
2
|
import { jsx } from 'react/jsx-runtime';
|
|
3
3
|
import { forwardRef } from 'react';
|
|
4
4
|
|
|
5
|
+
/**
|
|
6
|
+
* DropdownList component, used to display a list of items in the Dropdown.
|
|
7
|
+
*
|
|
8
|
+
* @example
|
|
9
|
+
* <Dropdown>
|
|
10
|
+
* <DropdownList>
|
|
11
|
+
* <DropdownItem>
|
|
12
|
+
* <DropdownButton>Button</DropdownButton>
|
|
13
|
+
* </DropdownItem>
|
|
14
|
+
* </DropdownList>
|
|
15
|
+
* </Dropdown>
|
|
16
|
+
*/
|
|
5
17
|
const DropdownList = forwardRef(function DropdownList({ className, ...rest }, ref) {
|
|
6
18
|
return jsx("ul", { ref: ref, ...rest });
|
|
7
19
|
});
|
|
@@ -6,17 +6,17 @@ import { PopoverTriggerContext } from '../popover/popover-trigger-context.js';
|
|
|
6
6
|
* DropdownTriggerContext enables use of the `.Trigger` for the Dropdown component.
|
|
7
7
|
*
|
|
8
8
|
* @example
|
|
9
|
-
* <
|
|
10
|
-
* <
|
|
9
|
+
* <DropdownTriggerContext>
|
|
10
|
+
* <DropdownTrigger>Dropdown</DropdownTrigger>
|
|
11
11
|
* <Dropdown>
|
|
12
|
-
* <
|
|
13
|
-
* <
|
|
14
|
-
* <
|
|
15
|
-
* <
|
|
16
|
-
* </
|
|
17
|
-
* </
|
|
12
|
+
* <DropdownHeading>Heading</DropdownHeading>
|
|
13
|
+
* <DropdownList>
|
|
14
|
+
* <DropdownItem>
|
|
15
|
+
* <DropdownButton>Button</DropdownButton>
|
|
16
|
+
* </DropdownItem>
|
|
17
|
+
* </DropdownList>
|
|
18
18
|
* </Dropdown>
|
|
19
|
-
* </
|
|
19
|
+
* </DropdownTriggerContext>
|
|
20
20
|
*/
|
|
21
21
|
const DropdownTriggerContext = ({ children, }) => {
|
|
22
22
|
return jsx(PopoverTriggerContext, { children: children });
|
|
@@ -3,6 +3,22 @@ import { jsx } from 'react/jsx-runtime';
|
|
|
3
3
|
import { forwardRef } from 'react';
|
|
4
4
|
import { PopoverTrigger } from '../popover/popover-trigger.js';
|
|
5
5
|
|
|
6
|
+
/**
|
|
7
|
+
* DropdownTrigger component, used within a Dropdown.TriggerContext to open a Dropdown.
|
|
8
|
+
*
|
|
9
|
+
* @example
|
|
10
|
+
* <Dropdown.TriggerContext>
|
|
11
|
+
* <Dropdown.Trigger>Dropdown</Dropdown.Trigger>
|
|
12
|
+
* <Dropdown>
|
|
13
|
+
* <Dropdown.Heading>Heading</Dropdown.Heading>
|
|
14
|
+
* <Dropdown.List>
|
|
15
|
+
* <Dropdown.Item>
|
|
16
|
+
* <Dropdown.Button>Button</Dropdown.Button>
|
|
17
|
+
* </Dropdown.Item>
|
|
18
|
+
* </Dropdown.List>
|
|
19
|
+
* </Dropdown>
|
|
20
|
+
* </Dropdown.TriggerContext>
|
|
21
|
+
*/
|
|
6
22
|
const DropdownTrigger = forwardRef(function DropdownTrigger({ asChild, ...rest }, ref) {
|
|
7
23
|
return jsx(PopoverTrigger, { ref: ref, ...rest });
|
|
8
24
|
});
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
'use client';
|
|
2
|
-
import { Dropdown
|
|
2
|
+
import { Dropdown } from './dropdown.js';
|
|
3
3
|
import { DropdownButton } from './dropdown-button.js';
|
|
4
4
|
import { DropdownHeading } from './dropdown-heading.js';
|
|
5
5
|
import { DropdownItem } from './dropdown-item.js';
|
|
@@ -10,7 +10,7 @@ import { DropdownTriggerContext } from './dropdown-trigger-context.js';
|
|
|
10
10
|
/**
|
|
11
11
|
* Dropdown component, used to display a list of options.
|
|
12
12
|
*
|
|
13
|
-
* @example
|
|
13
|
+
* @example with TriggerContext
|
|
14
14
|
* <Dropdown.TriggerContext>
|
|
15
15
|
* <Dropdown.Trigger>Dropdown trigger</Dropdown.Trigger>
|
|
16
16
|
* <Dropdown placement='bottom-end'>
|
|
@@ -22,8 +22,19 @@ import { DropdownTriggerContext } from './dropdown-trigger-context.js';
|
|
|
22
22
|
* </Dropdown.List>
|
|
23
23
|
* </Dropdown>
|
|
24
24
|
* </Dropdown.TriggerContext>
|
|
25
|
+
*
|
|
26
|
+
* @example without TriggerContext
|
|
27
|
+
* <Button popovertarget="my-dropdown">Trigger</Button>
|
|
28
|
+
* <Dropdown id="my-dropdown">
|
|
29
|
+
* <Dropdown.Heading>Heading</Dropdown.Heading>
|
|
30
|
+
* <Dropdown.List>
|
|
31
|
+
* <Dropdown.Item>
|
|
32
|
+
* <Dropdown.Button>Item</Dropdown.Button>
|
|
33
|
+
* </Dropdown.Item>
|
|
34
|
+
* </Dropdown.List>
|
|
35
|
+
* </Dropdown>
|
|
25
36
|
*/
|
|
26
|
-
const
|
|
37
|
+
const DropdownComponent = Object.assign(Dropdown, {
|
|
27
38
|
TriggerContext: DropdownTriggerContext,
|
|
28
39
|
Heading: DropdownHeading,
|
|
29
40
|
List: DropdownList,
|
|
@@ -31,11 +42,11 @@ const Dropdown = Object.assign(Dropdown$1, {
|
|
|
31
42
|
Button: DropdownButton,
|
|
32
43
|
Trigger: DropdownTrigger,
|
|
33
44
|
});
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
45
|
+
DropdownComponent.TriggerContext.displayName = 'Dropdown.TriggerContext';
|
|
46
|
+
DropdownComponent.List.displayName = 'Dropdown.List';
|
|
47
|
+
DropdownComponent.Heading.displayName = 'Dropdown.Heading';
|
|
48
|
+
DropdownComponent.Item.displayName = 'Dropdown.Item';
|
|
49
|
+
DropdownComponent.Button.displayName = 'Dropdown.Button';
|
|
50
|
+
DropdownComponent.Trigger.displayName = 'Dropdown.Trigger';
|
|
40
51
|
|
|
41
|
-
export { Dropdown, DropdownButton, DropdownHeading, DropdownItem, DropdownList, DropdownTrigger, DropdownTriggerContext };
|
|
52
|
+
export { DropdownComponent as Dropdown, DropdownButton, DropdownHeading, DropdownItem, DropdownList, DropdownTrigger, DropdownTriggerContext };
|
|
@@ -4,6 +4,14 @@ import { forwardRef, useContext, useEffect } from 'react';
|
|
|
4
4
|
import { Heading } from '../heading/heading.js';
|
|
5
5
|
import { ErrorSummaryContext } from './error-summary.js';
|
|
6
6
|
|
|
7
|
+
/**
|
|
8
|
+
* ErrorSummary heading component, used to display a heading for the error summary.
|
|
9
|
+
*
|
|
10
|
+
* @example
|
|
11
|
+
* <ErrorSummary>
|
|
12
|
+
* <ErrorSummaryHeading>Heading</ErrorSummaryHeading>
|
|
13
|
+
* </ErrorSummary>
|
|
14
|
+
*/
|
|
7
15
|
const ErrorSummaryHeading = forwardRef(function ErrorSummaryHeading({ className, id, ...rest }, ref) {
|
|
8
16
|
const { headingId, setHeadingId } = useContext(ErrorSummaryContext);
|
|
9
17
|
useEffect(() => {
|
|
@@ -8,11 +8,11 @@ import { ListItem } from '../list/list-item.js';
|
|
|
8
8
|
* ErrorSummaryItem component, used to display an error link in the ErrorSummary.
|
|
9
9
|
*
|
|
10
10
|
* @example
|
|
11
|
-
* <
|
|
12
|
-
* <
|
|
11
|
+
* <ErrorSummaryItem>
|
|
12
|
+
* <ErrorSummaryLink href="#">
|
|
13
13
|
* Link to error
|
|
14
|
-
* </
|
|
15
|
-
* </
|
|
14
|
+
* </ErrorSummaryLink>
|
|
15
|
+
* </ErrorSummaryItem>
|
|
16
16
|
*/
|
|
17
17
|
const ErrorSummaryItem = forwardRef(function ErrorSummaryItem({ ...rest }, ref) {
|
|
18
18
|
return jsx(ListItem, { ref: ref, ...rest });
|
|
@@ -4,7 +4,14 @@ import { forwardRef } from 'react';
|
|
|
4
4
|
import { Link } from '../link/link.js';
|
|
5
5
|
|
|
6
6
|
/**
|
|
7
|
-
*
|
|
7
|
+
* ErrorSummary link component, used to link to a specific error. Used within an ErrorSummary.Item.
|
|
8
|
+
*
|
|
9
|
+
* @example
|
|
10
|
+
* <ErrorSummary>
|
|
11
|
+
* <ErrorSummaryItem>
|
|
12
|
+
* <ErrorSummaryLink href='#'>Error 1</ErrorSummaryLink>
|
|
13
|
+
* </ErrorSummaryItem>
|
|
14
|
+
* </ErrorSummary>
|
|
8
15
|
*/
|
|
9
16
|
const ErrorSummaryLink = forwardRef(function ErrorSummaryLink({ ...rest }, ref) {
|
|
10
17
|
return jsx(Link, { ref: ref, "data-color": 'neutral', ...rest });
|
|
@@ -1,10 +1,25 @@
|
|
|
1
1
|
'use client';
|
|
2
2
|
import { jsx } from 'react/jsx-runtime';
|
|
3
3
|
import { forwardRef } from 'react';
|
|
4
|
-
import { List } from '../list/index.js';
|
|
4
|
+
import { List as ListComponent } from '../list/index.js';
|
|
5
5
|
|
|
6
|
+
/**
|
|
7
|
+
* ErrorSummary list component, used to display a list of errors.
|
|
8
|
+
*
|
|
9
|
+
* @example
|
|
10
|
+
* <ErrorSummary>
|
|
11
|
+
* <ErrorSummary.List>
|
|
12
|
+
* <ErrorSummary.Item>
|
|
13
|
+
* <ErrorSummary.Link href='#'>Error 1</ErrorSummary.Link>
|
|
14
|
+
* </ErrorSummary.Item>
|
|
15
|
+
* <ErrorSummary.Item>
|
|
16
|
+
* <ErrorSummary.Link href='#'>Error 2</ErrorSummary.Link>
|
|
17
|
+
* </ErrorSummary.Item>
|
|
18
|
+
* </ErrorSummary.List>
|
|
19
|
+
* </ErrorSummary>
|
|
20
|
+
*/
|
|
6
21
|
const ErrorSummaryList = forwardRef(function ErrorSummaryList({ ...rest }, ref) {
|
|
7
|
-
return jsx(
|
|
22
|
+
return jsx(ListComponent.Unordered, { ...rest, ref: ref });
|
|
8
23
|
});
|
|
9
24
|
|
|
10
25
|
export { ErrorSummaryList };
|
|
@@ -2,7 +2,7 @@
|
|
|
2
2
|
import { jsx } from 'react/jsx-runtime';
|
|
3
3
|
import { Slot } from '@radix-ui/react-slot';
|
|
4
4
|
import cl from 'clsx/lite';
|
|
5
|
-
import {
|
|
5
|
+
import { createContext, forwardRef, useId, useState } from 'react';
|
|
6
6
|
|
|
7
7
|
const ErrorSummaryContext = createContext({
|
|
8
8
|
headingId: 'heading',
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
'use client';
|
|
2
|
-
import { ErrorSummary
|
|
2
|
+
import { ErrorSummary } from './error-summary.js';
|
|
3
3
|
import { ErrorSummaryHeading } from './error-summary-heading.js';
|
|
4
4
|
import { ErrorSummaryItem } from './error-summary-item.js';
|
|
5
5
|
import { ErrorSummaryLink } from './error-summary-link.js';
|
|
@@ -21,15 +21,15 @@ import { ErrorSummaryList } from './error-summary-list.js';
|
|
|
21
21
|
* </ErrorSummary.List>
|
|
22
22
|
* </ErrorSummary>
|
|
23
23
|
*/
|
|
24
|
-
const
|
|
24
|
+
const ErrorSummaryComponent = Object.assign(ErrorSummary, {
|
|
25
25
|
Heading: ErrorSummaryHeading,
|
|
26
26
|
Item: ErrorSummaryItem,
|
|
27
27
|
List: ErrorSummaryList,
|
|
28
28
|
Link: ErrorSummaryLink,
|
|
29
29
|
});
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
30
|
+
ErrorSummaryComponent.Item.displayName = 'ErrorSummary.Item';
|
|
31
|
+
ErrorSummaryComponent.Heading.displayName = 'ErrorSummary.Heading';
|
|
32
|
+
ErrorSummaryComponent.List.displayName = 'ErrorSummary.List';
|
|
33
|
+
ErrorSummaryComponent.Link.displayName = 'ErrorSummary.Link';
|
|
34
34
|
|
|
35
|
-
export { ErrorSummary, ErrorSummaryHeading, ErrorSummaryItem, ErrorSummaryLink, ErrorSummaryList };
|
|
35
|
+
export { ErrorSummaryComponent as ErrorSummary, ErrorSummaryHeading, ErrorSummaryItem, ErrorSummaryLink, ErrorSummaryList };
|
|
@@ -1,6 +1,9 @@
|
|
|
1
1
|
'use client';
|
|
2
2
|
import { jsxs, Fragment, jsx } from 'react/jsx-runtime';
|
|
3
3
|
import { forwardRef, useState, useRef, useEffect } from 'react';
|
|
4
|
+
import { useDebounceCallback } from '../../utilities/hooks/deprecated/use-debounce-callback/use-debounce-callback.js';
|
|
5
|
+
import '../../utilities/roving-focus/roving-focus-item.js';
|
|
6
|
+
import '../../utilities/roving-focus/roving-focus-root.js';
|
|
4
7
|
import { Paragraph } from '../paragraph/paragraph.js';
|
|
5
8
|
import { ValidationMessage } from '../validation-message/validation-message.js';
|
|
6
9
|
import { isInputLike } from './field-observer.js';
|
|
@@ -15,11 +18,15 @@ const label = (text, count) => text.replace('%d', Math.abs(count).toString());
|
|
|
15
18
|
* <Field.Counter limit={100} under='%d tegn igjen' over='%d tegn for mye' />
|
|
16
19
|
* </Field>
|
|
17
20
|
*/
|
|
18
|
-
const FieldCounter = forwardRef(function FieldCounter({ limit, under = '%d tegn igjen', over = '%d tegn for mye', ...rest }, ref) {
|
|
21
|
+
const FieldCounter = forwardRef(function FieldCounter({ limit, under = '%d tegn igjen', over = '%d tegn for mye', hint = 'Maks %d tegn tillatt.', ...rest }, ref) {
|
|
19
22
|
const [count, setCount] = useState(0);
|
|
23
|
+
const [liveRegionText, setLiveRegionText] = useState('');
|
|
24
|
+
const fieldInputRef = useRef(null);
|
|
20
25
|
const counterRef = useRef(null);
|
|
21
26
|
const hasExceededLimit = count > limit;
|
|
22
27
|
const remainder = limit - count;
|
|
28
|
+
const debouncedSetLiveRegionText = useDebounceCallback((text) => setLiveRegionText(text), 1200);
|
|
29
|
+
// Listen to native input events (user typing) to update the counter in real time
|
|
23
30
|
useEffect(() => {
|
|
24
31
|
const field = counterRef.current?.closest('.ds-field');
|
|
25
32
|
const input = Array.from(field?.getElementsByTagName('*') || []).find(isInputLike);
|
|
@@ -29,10 +36,23 @@ const FieldCounter = forwardRef(function FieldCounter({ limit, under = '%d tegn
|
|
|
29
36
|
};
|
|
30
37
|
if (input)
|
|
31
38
|
onInput({ target: input }); // Initial setup
|
|
39
|
+
fieldInputRef.current = input;
|
|
32
40
|
field?.addEventListener('input', onInput);
|
|
33
41
|
return () => field?.removeEventListener('input', onInput);
|
|
34
|
-
}, [
|
|
35
|
-
|
|
42
|
+
}, []);
|
|
43
|
+
/* React does not dispatch a native input event when the value prop changes externally.
|
|
44
|
+
Since the parent re-renders this component when value changes, we can sync on render. */
|
|
45
|
+
useEffect(() => {
|
|
46
|
+
if (fieldInputRef.current) {
|
|
47
|
+
const valueLength = fieldInputRef.current.value.length;
|
|
48
|
+
setCount((prev) => (prev === valueLength ? prev : valueLength));
|
|
49
|
+
}
|
|
50
|
+
});
|
|
51
|
+
// Update live region text when count or limit changes
|
|
52
|
+
useEffect(() => {
|
|
53
|
+
debouncedSetLiveRegionText(label(hasExceededLimit ? over : under, remainder));
|
|
54
|
+
}, [count, limit, over, under, hasExceededLimit, remainder]);
|
|
55
|
+
return (jsxs(Fragment, { children: [jsx("div", { className: 'ds-sr-only', "aria-live": 'polite', ref: counterRef, children: liveRegionText }), hasExceededLimit ? (jsx(ValidationMessage, { ref: ref, ...rest, "aria-hidden": 'true', "data-field": null, children: label(over, remainder) })) : (jsx(Paragraph, { ref: ref, ...rest, "aria-hidden": 'true', children: label(under, remainder) })), jsx("div", { className: 'ds-sr-only', "aria-hidden": 'true', "data-field": 'description', children: label(hint, limit) })] }));
|
|
36
56
|
});
|
|
37
57
|
|
|
38
58
|
export { FieldCounter };
|
|
@@ -2,6 +2,12 @@
|
|
|
2
2
|
import { jsx } from 'react/jsx-runtime';
|
|
3
3
|
import { forwardRef } from 'react';
|
|
4
4
|
|
|
5
|
+
/**
|
|
6
|
+
* Field description component, used to provide additional information below the input.
|
|
7
|
+
*
|
|
8
|
+
* @example
|
|
9
|
+
* <FieldDescription>Additional information</FieldDescription>
|
|
10
|
+
*/
|
|
5
11
|
const FieldDescription = forwardRef(function FieldDescription(rest, ref) {
|
|
6
12
|
return jsx("div", { "data-field": 'description', ref: ref, ...rest });
|
|
7
13
|
});
|
|
@@ -25,7 +25,7 @@ function fieldObserver(fieldElement) {
|
|
|
25
25
|
elements.set(el, el.htmlFor);
|
|
26
26
|
else if (el.hasAttribute('data-field'))
|
|
27
27
|
elements.set(el, el.id);
|
|
28
|
-
else if (isInputLike(el)) {
|
|
28
|
+
else if (isInputLike(el) && !el.hidden) {
|
|
29
29
|
input = el;
|
|
30
30
|
describedby = el.getAttribute('aria-describedby') || '';
|
|
31
31
|
}
|
|
@@ -42,7 +42,7 @@ function fieldObserver(fieldElement) {
|
|
|
42
42
|
}
|
|
43
43
|
}
|
|
44
44
|
// Connect elements
|
|
45
|
-
const describedbyIds = [
|
|
45
|
+
const describedbyIds = describedby ? describedby.split(' ') : []; // Keep original aria-describedby
|
|
46
46
|
const inputId = input?.id || uuid;
|
|
47
47
|
// Reset type counters since we reprocess all elements
|
|
48
48
|
typeCounter.clear();
|
|
@@ -60,10 +60,12 @@ function fieldObserver(fieldElement) {
|
|
|
60
60
|
}
|
|
61
61
|
if (!value)
|
|
62
62
|
setAttr(el, isLabel(el) ? 'for' : 'id', id); // Ensure we have a value
|
|
63
|
-
if (
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
63
|
+
if (!describedbyIds.includes(el.id)) {
|
|
64
|
+
if (descriptionType === 'validation')
|
|
65
|
+
describedbyIds.unshift(el.id); // Validations to the front
|
|
66
|
+
else if (descriptionType)
|
|
67
|
+
describedbyIds.push(el.id); // Other descriptions to the back
|
|
68
|
+
}
|
|
67
69
|
}
|
|
68
70
|
setAttr(input, 'id', inputId);
|
|
69
71
|
setAttr(input, 'aria-describedby', describedbyIds.join(' ').trim());
|
|
@@ -3,8 +3,8 @@ import { jsx } from 'react/jsx-runtime';
|
|
|
3
3
|
import { Slot } from '@radix-ui/react-slot';
|
|
4
4
|
import cl from 'clsx/lite';
|
|
5
5
|
import { forwardRef, useRef, useEffect } from 'react';
|
|
6
|
-
import { fieldObserver } from './field-observer.js';
|
|
7
6
|
import { useMergeRefs } from '../../utilities/hooks/use-merge-refs/use-merge-refs.js';
|
|
7
|
+
import { fieldObserver } from './field-observer.js';
|
|
8
8
|
|
|
9
9
|
/**
|
|
10
10
|
* Field component, used to wrap a form field.
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
'use client';
|
|
2
|
-
import { Field
|
|
2
|
+
import { Field } from './field.js';
|
|
3
3
|
import { FieldAffix, FieldAffixes } from './field-affix.js';
|
|
4
4
|
import { FieldCounter } from './field-counter.js';
|
|
5
5
|
import { FieldDescription } from './field-description.js';
|
|
@@ -15,15 +15,15 @@ import { FieldDescription } from './field-description.js';
|
|
|
15
15
|
* <ValidationMessage>Feilmelding</ValidationMessage>
|
|
16
16
|
* </Field>
|
|
17
17
|
*/
|
|
18
|
-
const
|
|
18
|
+
const FieldComponent = Object.assign(Field, {
|
|
19
19
|
Description: FieldDescription,
|
|
20
20
|
Affixes: FieldAffixes,
|
|
21
21
|
Affix: FieldAffix,
|
|
22
22
|
Counter: FieldCounter,
|
|
23
23
|
});
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
24
|
+
FieldComponent.Description.displayName = 'Field.Description';
|
|
25
|
+
FieldComponent.Affixes.displayName = 'Field.Affixes';
|
|
26
|
+
FieldComponent.Affix.displayName = 'Field.Affix';
|
|
27
|
+
FieldComponent.Counter.displayName = 'Field.Counter';
|
|
28
28
|
|
|
29
|
-
export { Field, FieldAffix, FieldAffixes, FieldCounter, FieldDescription };
|
|
29
|
+
export { FieldComponent as Field, FieldAffix, FieldAffixes, FieldCounter, FieldDescription };
|
|
@@ -7,9 +7,9 @@ import { Paragraph } from '../paragraph/paragraph.js';
|
|
|
7
7
|
* FieldsetDescription component, used to display a description for a fieldset.
|
|
8
8
|
*
|
|
9
9
|
* @example
|
|
10
|
-
* <
|
|
10
|
+
* <FieldsetDescription>
|
|
11
11
|
* Gi en kort beskrivelse i begge feltene
|
|
12
|
-
* </
|
|
12
|
+
* </FieldsetDescription>
|
|
13
13
|
*/
|
|
14
14
|
const FieldsetDescription = forwardRef(function FieldsetDescription(rest, ref) {
|
|
15
15
|
return jsx(Paragraph, { ref: ref, ...rest });
|
|
@@ -7,7 +7,7 @@ import { Label } from '../label/label.js';
|
|
|
7
7
|
* FieldsetLegend component, used to display a legend for a fieldset.
|
|
8
8
|
*
|
|
9
9
|
* @example
|
|
10
|
-
* <
|
|
10
|
+
* <FieldsetLegend>Skriv inn dine svar</FieldsetLegend>
|
|
11
11
|
*/
|
|
12
12
|
const FieldsetLegend = forwardRef(function FieldsetLegend(rest, ref) {
|
|
13
13
|
return (jsx(Label, { asChild: true, children: jsx("legend", { ref: ref, ...rest }) }));
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
'use client';
|
|
2
|
-
import { Fieldset
|
|
2
|
+
import { Fieldset } from './fieldset.js';
|
|
3
3
|
import { FieldsetDescription } from './fieldset-description.js';
|
|
4
4
|
import { FieldsetLegend } from './fieldset-legend.js';
|
|
5
5
|
|
|
@@ -18,11 +18,11 @@ import { FieldsetLegend } from './fieldset-legend.js';
|
|
|
18
18
|
* </Field>
|
|
19
19
|
* </Fieldset>
|
|
20
20
|
*/
|
|
21
|
-
const
|
|
21
|
+
const FieldsetComponent = Object.assign(Fieldset, {
|
|
22
22
|
Legend: FieldsetLegend,
|
|
23
23
|
Description: FieldsetDescription,
|
|
24
24
|
});
|
|
25
|
-
|
|
26
|
-
|
|
25
|
+
FieldsetComponent.Legend.displayName = 'Fieldset.Legend';
|
|
26
|
+
FieldsetComponent.Description.displayName = 'Fieldset.Description';
|
|
27
27
|
|
|
28
|
-
export { Fieldset, FieldsetDescription, FieldsetLegend };
|
|
28
|
+
export { FieldsetComponent as Fieldset, FieldsetDescription, FieldsetLegend };
|