@navikt/ds-react 5.6.4 → 5.7.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/_docs.json +297 -257
- package/cjs/accordion/AccordionContent.js +2 -2
- package/cjs/accordion/AccordionHeader.js +2 -2
- package/cjs/alert/Alert.js +2 -2
- package/cjs/button/Button.js +6 -5
- package/cjs/copybutton/CopyButton.js +8 -7
- package/cjs/date/DateInput.js +6 -5
- package/cjs/date/datepicker/DatePicker.js +6 -5
- package/cjs/date/datepicker/DatePickerStandalone.js +6 -6
- package/cjs/date/datepicker/parts/Caption.js +5 -4
- package/cjs/date/datepicker/parts/DropdownCaption.js +7 -6
- package/cjs/date/datepicker/parts/WeekRow.js +1 -1
- package/cjs/date/datepicker/types.js +2 -0
- package/cjs/date/monthpicker/MonthCaption.js +5 -4
- package/cjs/date/monthpicker/MonthPicker.js +4 -3
- package/cjs/date/monthpicker/MonthSelector.js +2 -2
- package/cjs/date/monthpicker/types.js +2 -0
- package/cjs/date/utils/parse-date.js +7 -7
- package/cjs/dropdown/Dropdown.js +4 -4
- package/cjs/dropdown/Menu/GroupedList/GroupedItem.js +2 -2
- package/cjs/dropdown/Menu/List/Item.js +3 -3
- package/cjs/dropdown/Menu/index.js +2 -2
- package/cjs/dropdown/Toggle.js +3 -3
- package/cjs/dropdown/context.js +5 -0
- package/cjs/expansion-card/ExpansionCard.js +3 -7
- package/cjs/expansion-card/ExpansionCardContent.js +4 -4
- package/cjs/expansion-card/ExpansionCardDescription.js +5 -5
- package/cjs/expansion-card/ExpansionCardHeader.js +3 -3
- package/cjs/expansion-card/ExpansionCardTitle.js +1 -1
- package/cjs/expansion-card/context.js +9 -0
- package/cjs/form/ConfirmationPanel.js +8 -6
- package/cjs/form/Fieldset/Fieldset.js +11 -10
- package/cjs/form/Fieldset/context.js +5 -0
- package/cjs/form/Fieldset/index.js +2 -1
- package/cjs/form/Select.js +8 -7
- package/cjs/form/Switch.js +7 -5
- package/cjs/form/TextField.js +6 -5
- package/cjs/form/Textarea.js +8 -7
- package/cjs/form/checkbox/Checkbox.js +1 -1
- package/cjs/form/checkbox/CheckboxGroup.js +4 -4
- package/cjs/form/checkbox/types.js +2 -0
- package/cjs/form/checkbox/useCheckbox.js +2 -2
- package/cjs/form/combobox/Combobox.js +6 -5
- package/cjs/form/combobox/FilteredOptions/FilteredOptions.js +6 -5
- package/cjs/form/combobox/Input/Input.js +2 -2
- package/cjs/form/combobox/SelectedOptions/SelectedOptions.js +3 -3
- package/cjs/form/error-summary/ErrorSummary.js +3 -3
- package/cjs/form/radio/RadioGroup.js +6 -6
- package/cjs/form/radio/types.js +2 -0
- package/cjs/form/radio/useRadio.js +2 -2
- package/cjs/form/search/Search.js +10 -9
- package/cjs/form/search/SearchButton.js +5 -5
- package/cjs/form/search/context.js +5 -0
- package/cjs/form/useFormField.js +5 -5
- package/cjs/guide-panel/Illustration.js +2 -2
- package/cjs/help-text/HelpText.js +5 -4
- package/cjs/link-panel/LinkPanel.js +2 -2
- package/cjs/link-panel/LinkPanelDescription.js +2 -2
- package/cjs/list/List.js +4 -8
- package/cjs/list/ListItem.js +2 -2
- package/cjs/list/context.js +9 -0
- package/cjs/list/types.js +2 -0
- package/cjs/loader/Loader.js +4 -4
- package/cjs/modal/Modal.js +24 -22
- package/cjs/modal/types.js +2 -0
- package/cjs/pagination/Pagination.js +5 -5
- package/cjs/pagination/PaginationItem.js +2 -2
- package/cjs/popover/Popover.js +4 -5
- package/cjs/stepper/Step.js +5 -5
- package/cjs/stepper/Stepper.js +4 -4
- package/cjs/stepper/context.js +5 -0
- package/cjs/table/ColumnHeader.js +3 -3
- package/cjs/table/DataCell.js +2 -2
- package/cjs/table/ExpandableRow.js +2 -2
- package/cjs/table/Table.js +7 -7
- package/cjs/table/context.js +5 -0
- package/cjs/table/types.js +2 -0
- package/cjs/tabs/Tab.js +4 -4
- package/cjs/tabs/TabList.js +5 -5
- package/cjs/tabs/Tabs.js +3 -3
- package/cjs/tabs/context.js +5 -0
- package/cjs/tag/Tag.js +2 -2
- package/cjs/timeline/period/NonClickablePeriod.js +1 -1
- package/cjs/timeline/period/types.js +2 -0
- package/cjs/toggle-group/ToggleGroup.js +7 -6
- package/cjs/toggle-group/ToggleItem.js +4 -4
- package/cjs/toggle-group/context.js +5 -0
- package/cjs/tooltip/Tooltip.js +4 -3
- package/cjs/util/TextareaAutoSize.js +4 -4
- package/cjs/util/index.js +7 -38
- package/cjs/util/omit.js +7 -0
- package/cjs/util/useClientLayoutEffect.js +10 -0
- package/cjs/util/useEventListener.js +17 -0
- package/esm/accordion/AccordionContent.js +1 -1
- package/esm/accordion/AccordionContent.js.map +1 -1
- package/esm/accordion/AccordionHeader.js +1 -1
- package/esm/accordion/AccordionHeader.js.map +1 -1
- package/esm/alert/Alert.js +1 -1
- package/esm/alert/Alert.js.map +1 -1
- package/esm/button/Button.d.ts +1 -1
- package/esm/button/Button.js +4 -3
- package/esm/button/Button.js.map +1 -1
- package/esm/chips/Chips.d.ts +1 -1
- package/esm/chips/Toggle.d.ts +1 -1
- package/esm/copybutton/CopyButton.d.ts +7 -7
- package/esm/copybutton/CopyButton.js +7 -6
- package/esm/copybutton/CopyButton.js.map +1 -1
- package/esm/date/DateInput.js +2 -1
- package/esm/date/DateInput.js.map +1 -1
- package/esm/date/datepicker/DatePicker.d.ts +5 -105
- package/esm/date/datepicker/DatePicker.js +4 -3
- package/esm/date/datepicker/DatePicker.js.map +1 -1
- package/esm/date/datepicker/DatePickerStandalone.d.ts +1 -1
- package/esm/date/datepicker/DatePickerStandalone.js +5 -5
- package/esm/date/datepicker/DatePickerStandalone.js.map +1 -1
- package/esm/date/datepicker/parts/Caption.js +2 -1
- package/esm/date/datepicker/parts/Caption.js.map +1 -1
- package/esm/date/datepicker/parts/DropdownCaption.js +3 -2
- package/esm/date/datepicker/parts/DropdownCaption.js.map +1 -1
- package/esm/date/datepicker/parts/WeekRow.js +1 -1
- package/esm/date/datepicker/parts/WeekRow.js.map +1 -1
- package/esm/date/datepicker/types.d.ts +102 -0
- package/esm/date/datepicker/types.js +2 -0
- package/esm/date/datepicker/types.js.map +1 -0
- package/esm/date/hooks/useMonthPicker.d.ts +1 -1
- package/esm/date/index.d.ts +4 -3
- package/esm/date/index.js +1 -1
- package/esm/date/index.js.map +1 -1
- package/esm/date/monthpicker/MonthCaption.js +2 -1
- package/esm/date/monthpicker/MonthCaption.js.map +1 -1
- package/esm/date/monthpicker/MonthPicker.d.ts +5 -86
- package/esm/date/monthpicker/MonthPicker.js +3 -2
- package/esm/date/monthpicker/MonthPicker.js.map +1 -1
- package/esm/date/monthpicker/MonthPickerStandalone.d.ts +1 -1
- package/esm/date/monthpicker/MonthPickerStandalone.js.map +1 -1
- package/esm/date/monthpicker/MonthSelector.js +1 -1
- package/esm/date/monthpicker/MonthSelector.js.map +1 -1
- package/esm/date/monthpicker/types.d.ts +83 -0
- package/esm/date/monthpicker/types.js +2 -0
- package/esm/date/monthpicker/types.js.map +1 -0
- package/esm/date/utils/parse-date.js +1 -1
- package/esm/date/utils/parse-date.js.map +1 -1
- package/esm/dropdown/Dropdown.d.ts +1 -9
- package/esm/dropdown/Dropdown.js +3 -3
- package/esm/dropdown/Dropdown.js.map +1 -1
- package/esm/dropdown/Menu/GroupedList/GroupedItem.d.ts +1 -1
- package/esm/dropdown/Menu/GroupedList/GroupedItem.js +1 -1
- package/esm/dropdown/Menu/GroupedList/GroupedItem.js.map +1 -1
- package/esm/dropdown/Menu/GroupedList/index.d.ts +1 -1
- package/esm/dropdown/Menu/List/Item.d.ts +1 -1
- package/esm/dropdown/Menu/List/Item.js +2 -2
- package/esm/dropdown/Menu/List/Item.js.map +1 -1
- package/esm/dropdown/Menu/List/index.d.ts +1 -1
- package/esm/dropdown/Menu/index.js +1 -1
- package/esm/dropdown/Menu/index.js.map +1 -1
- package/esm/dropdown/Toggle.js +2 -2
- package/esm/dropdown/Toggle.js.map +1 -1
- package/esm/dropdown/context.d.ts +9 -0
- package/esm/dropdown/context.js +3 -0
- package/esm/dropdown/context.js.map +1 -0
- package/esm/expansion-card/ExpansionCard.d.ts +1 -7
- package/esm/expansion-card/ExpansionCard.js +2 -6
- package/esm/expansion-card/ExpansionCard.js.map +1 -1
- package/esm/expansion-card/ExpansionCardContent.js +2 -2
- package/esm/expansion-card/ExpansionCardContent.js.map +1 -1
- package/esm/expansion-card/ExpansionCardDescription.js +3 -3
- package/esm/expansion-card/ExpansionCardDescription.js.map +1 -1
- package/esm/expansion-card/ExpansionCardHeader.js +2 -2
- package/esm/expansion-card/ExpansionCardHeader.js.map +1 -1
- package/esm/expansion-card/ExpansionCardTitle.d.ts +1 -1
- package/esm/expansion-card/ExpansionCardTitle.js +1 -1
- package/esm/expansion-card/ExpansionCardTitle.js.map +1 -1
- package/esm/expansion-card/context.d.ts +7 -0
- package/esm/expansion-card/context.js +7 -0
- package/esm/expansion-card/context.js.map +1 -0
- package/esm/form/ConfirmationPanel.d.ts +1 -1
- package/esm/form/ConfirmationPanel.js +4 -2
- package/esm/form/ConfirmationPanel.js.map +1 -1
- package/esm/form/Fieldset/Fieldset.d.ts +0 -23
- package/esm/form/Fieldset/Fieldset.js +4 -3
- package/esm/form/Fieldset/Fieldset.js.map +1 -1
- package/esm/form/Fieldset/context.d.ts +24 -0
- package/esm/form/Fieldset/context.js +3 -0
- package/esm/form/Fieldset/context.js.map +1 -0
- package/esm/form/Fieldset/index.d.ts +2 -1
- package/esm/form/Fieldset/index.js +2 -1
- package/esm/form/Fieldset/index.js.map +1 -1
- package/esm/form/Select.js +4 -3
- package/esm/form/Select.js.map +1 -1
- package/esm/form/Switch.js +3 -1
- package/esm/form/Switch.js.map +1 -1
- package/esm/form/TextField.js +2 -1
- package/esm/form/TextField.js.map +1 -1
- package/esm/form/Textarea.js +2 -1
- package/esm/form/Textarea.js.map +1 -1
- package/esm/form/checkbox/Checkbox.d.ts +2 -34
- package/esm/form/checkbox/Checkbox.js +1 -1
- package/esm/form/checkbox/Checkbox.js.map +1 -1
- package/esm/form/checkbox/CheckboxGroup.d.ts +1 -1
- package/esm/form/checkbox/CheckboxGroup.js +2 -2
- package/esm/form/checkbox/CheckboxGroup.js.map +1 -1
- package/esm/form/checkbox/index.d.ts +2 -1
- package/esm/form/checkbox/index.js.map +1 -1
- package/esm/form/checkbox/types.d.ts +34 -0
- package/esm/form/checkbox/types.js +2 -0
- package/esm/form/checkbox/types.js.map +1 -0
- package/esm/form/checkbox/useCheckbox.d.ts +1 -1
- package/esm/form/checkbox/useCheckbox.js +1 -1
- package/esm/form/checkbox/useCheckbox.js.map +1 -1
- package/esm/form/combobox/Combobox.d.ts +1 -1
- package/esm/form/combobox/Combobox.js +2 -1
- package/esm/form/combobox/Combobox.js.map +1 -1
- package/esm/form/combobox/FilteredOptions/FilteredOptions.js +2 -1
- package/esm/form/combobox/FilteredOptions/FilteredOptions.js.map +1 -1
- package/esm/form/combobox/Input/Input.js +1 -1
- package/esm/form/combobox/Input/Input.js.map +1 -1
- package/esm/form/combobox/SelectedOptions/SelectedOptions.js +1 -1
- package/esm/form/combobox/SelectedOptions/SelectedOptions.js.map +1 -1
- package/esm/form/error-summary/ErrorSummary.js +1 -1
- package/esm/form/error-summary/ErrorSummary.js.map +1 -1
- package/esm/form/error-summary/ErrorSummaryItem.d.ts +1 -1
- package/esm/form/radio/Radio.d.ts +2 -16
- package/esm/form/radio/Radio.js.map +1 -1
- package/esm/form/radio/RadioGroup.d.ts +1 -1
- package/esm/form/radio/RadioGroup.js +3 -3
- package/esm/form/radio/RadioGroup.js.map +1 -1
- package/esm/form/radio/index.d.ts +2 -1
- package/esm/form/radio/index.js.map +1 -1
- package/esm/form/radio/types.d.ts +16 -0
- package/esm/form/radio/types.js +2 -0
- package/esm/form/radio/types.js.map +1 -0
- package/esm/form/radio/useRadio.d.ts +1 -1
- package/esm/form/radio/useRadio.js +1 -1
- package/esm/form/radio/useRadio.js.map +1 -1
- package/esm/form/search/Search.d.ts +0 -7
- package/esm/form/search/Search.js +4 -3
- package/esm/form/search/Search.js.map +1 -1
- package/esm/form/search/SearchButton.d.ts +1 -1
- package/esm/form/search/SearchButton.js +3 -3
- package/esm/form/search/SearchButton.js.map +1 -1
- package/esm/form/search/context.d.ts +8 -0
- package/esm/form/search/context.js +3 -0
- package/esm/form/search/context.js.map +1 -0
- package/esm/form/useFormField.js +3 -3
- package/esm/form/useFormField.js.map +1 -1
- package/esm/guide-panel/Illustration.js +1 -1
- package/esm/guide-panel/Illustration.js.map +1 -1
- package/esm/help-text/HelpText.d.ts +1 -1
- package/esm/help-text/HelpText.js +2 -1
- package/esm/help-text/HelpText.js.map +1 -1
- package/esm/link-panel/LinkPanel.d.ts +1 -1
- package/esm/link-panel/LinkPanel.js +1 -1
- package/esm/link-panel/LinkPanel.js.map +1 -1
- package/esm/link-panel/LinkPanelDescription.js +1 -1
- package/esm/link-panel/LinkPanelDescription.js.map +1 -1
- package/esm/list/List.d.ts +4 -35
- package/esm/list/List.js +2 -6
- package/esm/list/List.js.map +1 -1
- package/esm/list/ListItem.js +1 -1
- package/esm/list/ListItem.js.map +1 -1
- package/esm/list/context.d.ts +9 -0
- package/esm/list/context.js +7 -0
- package/esm/list/context.js.map +1 -0
- package/esm/list/index.d.ts +1 -1
- package/esm/list/types.d.ts +27 -0
- package/esm/list/types.js +2 -0
- package/esm/list/types.js.map +1 -0
- package/esm/loader/Loader.js +2 -2
- package/esm/loader/Loader.js.map +1 -1
- package/esm/modal/Modal.d.ts +2 -64
- package/esm/modal/Modal.js +8 -6
- package/esm/modal/Modal.js.map +1 -1
- package/esm/modal/ModalUtils.d.ts +1 -1
- package/esm/modal/index.d.ts +3 -2
- package/esm/modal/index.js.map +1 -1
- package/esm/modal/types.d.ts +64 -0
- package/esm/modal/types.js +2 -0
- package/esm/modal/types.js.map +1 -0
- package/esm/pagination/Pagination.js +1 -1
- package/esm/pagination/Pagination.js.map +1 -1
- package/esm/pagination/PaginationItem.d.ts +2 -1
- package/esm/pagination/PaginationItem.js +1 -1
- package/esm/pagination/PaginationItem.js.map +1 -1
- package/esm/popover/Popover.d.ts +5 -0
- package/esm/popover/Popover.js +5 -6
- package/esm/popover/Popover.js.map +1 -1
- package/esm/stepper/Step.d.ts +1 -1
- package/esm/stepper/Step.js +2 -2
- package/esm/stepper/Step.js.map +1 -1
- package/esm/stepper/Stepper.d.ts +2 -11
- package/esm/stepper/Stepper.js +2 -2
- package/esm/stepper/Stepper.js.map +1 -1
- package/esm/stepper/context.d.ts +10 -0
- package/esm/stepper/context.js +3 -0
- package/esm/stepper/context.js.map +1 -0
- package/esm/table/ColumnHeader.js +2 -2
- package/esm/table/ColumnHeader.js.map +1 -1
- package/esm/table/DataCell.js +1 -1
- package/esm/table/DataCell.js.map +1 -1
- package/esm/table/ExpandableRow.js +1 -1
- package/esm/table/ExpandableRow.js.map +1 -1
- package/esm/table/Table.d.ts +15 -23
- package/esm/table/Table.js +5 -5
- package/esm/table/Table.js.map +1 -1
- package/esm/table/context.d.ts +7 -0
- package/esm/table/context.js +3 -0
- package/esm/table/context.js.map +1 -0
- package/esm/table/index.d.ts +2 -1
- package/esm/table/index.js.map +1 -1
- package/esm/table/types.d.ts +4 -0
- package/esm/table/types.js +2 -0
- package/esm/table/types.js.map +1 -0
- package/esm/tabs/Tab.d.ts +1 -1
- package/esm/tabs/Tab.js +2 -2
- package/esm/tabs/Tab.js.map +1 -1
- package/esm/tabs/TabList.js +2 -2
- package/esm/tabs/TabList.js.map +1 -1
- package/esm/tabs/Tabs.d.ts +0 -6
- package/esm/tabs/Tabs.js +2 -2
- package/esm/tabs/Tabs.js.map +1 -1
- package/esm/tabs/context.d.ts +8 -0
- package/esm/tabs/context.js +3 -0
- package/esm/tabs/context.js.map +1 -0
- package/esm/tabs/index.d.ts +1 -1
- package/esm/tabs/index.js.map +1 -1
- package/esm/tag/Tag.js +1 -1
- package/esm/tag/Tag.js.map +1 -1
- package/esm/timeline/period/ClickablePeriod.d.ts +1 -1
- package/esm/timeline/period/NonClickablePeriod.d.ts +1 -1
- package/esm/timeline/period/NonClickablePeriod.js +1 -1
- package/esm/timeline/period/NonClickablePeriod.js.map +1 -1
- package/esm/timeline/period/index.d.ts +0 -13
- package/esm/timeline/period/index.js.map +1 -1
- package/esm/timeline/period/types.d.ts +14 -0
- package/esm/timeline/period/types.js +2 -0
- package/esm/timeline/period/types.js.map +1 -0
- package/esm/toggle-group/ToggleGroup.d.ts +0 -4
- package/esm/toggle-group/ToggleGroup.js +4 -3
- package/esm/toggle-group/ToggleGroup.js.map +1 -1
- package/esm/toggle-group/ToggleItem.js +3 -3
- package/esm/toggle-group/ToggleItem.js.map +1 -1
- package/esm/toggle-group/context.d.ts +6 -0
- package/esm/toggle-group/context.js +3 -0
- package/esm/toggle-group/context.js.map +1 -0
- package/esm/tooltip/Tooltip.js +2 -1
- package/esm/tooltip/Tooltip.js.map +1 -1
- package/esm/util/TextareaAutoSize.js +1 -1
- package/esm/util/TextareaAutoSize.js.map +1 -1
- package/esm/util/index.d.ts +5 -11
- package/esm/util/index.js +5 -33
- package/esm/util/index.js.map +1 -1
- package/esm/util/omit.d.ts +1 -0
- package/esm/util/omit.js +4 -0
- package/esm/util/omit.js.map +1 -0
- package/esm/util/useClientLayoutEffect.d.ts +2 -0
- package/esm/util/useClientLayoutEffect.js +8 -0
- package/esm/util/useClientLayoutEffect.js.map +1 -0
- package/esm/util/useEventListener.d.ts +5 -0
- package/esm/util/useEventListener.js +14 -0
- package/esm/util/useEventListener.js.map +1 -0
- package/package.json +3 -3
- package/src/accordion/AccordionContent.tsx +1 -1
- package/src/accordion/AccordionHeader.tsx +1 -1
- package/src/alert/Alert.tsx +1 -1
- package/src/button/Button.tsx +9 -3
- package/src/chips/Chips.tsx +1 -1
- package/src/chips/Toggle.tsx +1 -1
- package/src/copybutton/CopyButton.tsx +28 -29
- package/src/copybutton/copy-button.stories.tsx +24 -22
- package/src/date/DateInput.tsx +2 -1
- package/src/date/datepicker/DatePicker.tsx +9 -124
- package/src/date/datepicker/DatePickerStandalone.tsx +9 -9
- package/src/date/datepicker/parts/Caption.tsx +3 -1
- package/src/date/datepicker/parts/DropdownCaption.tsx +3 -2
- package/src/date/datepicker/parts/WeekRow.tsx +1 -1
- package/src/date/datepicker/types.ts +109 -0
- package/src/date/hooks/useMonthPicker.tsx +1 -1
- package/src/date/index.ts +5 -7
- package/src/date/monthpicker/MonthCaption.tsx +2 -1
- package/src/date/monthpicker/MonthPicker.tsx +9 -92
- package/src/date/monthpicker/MonthPickerStandalone.tsx +1 -1
- package/src/date/monthpicker/MonthSelector.tsx +1 -1
- package/src/date/monthpicker/types.ts +83 -0
- package/src/date/utils/parse-date.ts +1 -1
- package/src/dropdown/Dropdown.tsx +3 -12
- package/src/dropdown/Menu/GroupedList/GroupedItem.tsx +2 -2
- package/src/dropdown/Menu/GroupedList/index.tsx +1 -1
- package/src/dropdown/Menu/List/Item.tsx +3 -3
- package/src/dropdown/Menu/List/index.tsx +1 -1
- package/src/dropdown/Menu/index.tsx +1 -1
- package/src/dropdown/Toggle.tsx +2 -2
- package/src/dropdown/context.ts +11 -0
- package/src/expansion-card/ExpansionCard.tsx +3 -14
- package/src/expansion-card/ExpansionCardContent.tsx +2 -2
- package/src/expansion-card/ExpansionCardDescription.tsx +3 -3
- package/src/expansion-card/ExpansionCardHeader.tsx +2 -2
- package/src/expansion-card/ExpansionCardTitle.tsx +2 -2
- package/src/expansion-card/context.ts +13 -0
- package/src/form/ConfirmationPanel.tsx +4 -2
- package/src/form/Fieldset/Fieldset.tsx +4 -29
- package/src/form/Fieldset/context.ts +26 -0
- package/src/form/Fieldset/index.ts +2 -5
- package/src/form/Select.tsx +4 -4
- package/src/form/Switch.tsx +3 -1
- package/src/form/TextField.tsx +2 -1
- package/src/form/Textarea.tsx +2 -1
- package/src/form/checkbox/Checkbox.tsx +3 -38
- package/src/form/checkbox/CheckboxGroup.tsx +2 -2
- package/src/form/checkbox/index.ts +2 -1
- package/src/form/checkbox/types.ts +37 -0
- package/src/form/checkbox/useCheckbox.ts +2 -1
- package/src/form/combobox/Combobox.tsx +2 -1
- package/src/form/combobox/FilteredOptions/FilteredOptions.tsx +2 -1
- package/src/form/combobox/Input/Input.tsx +1 -1
- package/src/form/combobox/SelectedOptions/SelectedOptions.tsx +1 -1
- package/src/form/error-summary/ErrorSummary.tsx +1 -1
- package/src/form/error-summary/ErrorSummaryItem.tsx +1 -1
- package/src/form/radio/Radio.tsx +2 -19
- package/src/form/radio/RadioGroup.tsx +3 -3
- package/src/form/radio/index.ts +2 -1
- package/src/form/radio/types.ts +19 -0
- package/src/form/radio/useRadio.ts +2 -2
- package/src/form/search/Search.tsx +5 -14
- package/src/form/search/SearchButton.tsx +3 -3
- package/src/form/search/context.ts +10 -0
- package/src/form/useFormField.ts +3 -3
- package/src/guide-panel/Illustration.tsx +1 -1
- package/src/help-text/HelpText.tsx +2 -1
- package/src/link-panel/LinkPanel.tsx +2 -1
- package/src/link-panel/LinkPanelDescription.tsx +1 -1
- package/src/list/List.tsx +8 -45
- package/src/list/ListItem.tsx +1 -1
- package/src/list/context.ts +14 -0
- package/src/list/index.ts +1 -1
- package/src/list/types.ts +26 -0
- package/src/loader/Loader.tsx +2 -2
- package/src/modal/Modal.tsx +9 -71
- package/src/modal/ModalUtils.ts +1 -1
- package/src/modal/index.ts +3 -2
- package/src/modal/types.ts +64 -0
- package/src/pagination/Pagination.tsx +1 -1
- package/src/pagination/PaginationItem.tsx +2 -1
- package/src/popover/Popover.tsx +10 -5
- package/src/stepper/Step.tsx +3 -2
- package/src/stepper/Stepper.tsx +3 -13
- package/src/stepper/context.ts +11 -0
- package/src/table/ColumnHeader.tsx +3 -3
- package/src/table/DataCell.tsx +1 -1
- package/src/table/ExpandableRow.tsx +1 -1
- package/src/table/Table.tsx +17 -27
- package/src/table/context.ts +9 -0
- package/src/table/index.ts +2 -1
- package/src/table/types.ts +4 -0
- package/src/tabs/Tab.tsx +3 -2
- package/src/tabs/TabList.tsx +2 -2
- package/src/tabs/Tabs.tsx +2 -9
- package/src/tabs/context.ts +9 -0
- package/src/tabs/index.ts +1 -1
- package/src/tag/Tag.tsx +1 -1
- package/src/timeline/period/ClickablePeriod.tsx +1 -1
- package/src/timeline/period/NonClickablePeriod.tsx +2 -2
- package/src/timeline/period/index.tsx +0 -14
- package/src/timeline/period/types.ts +13 -0
- package/src/timeline/utils/filter.ts +1 -1
- package/src/toggle-group/ToggleGroup.tsx +4 -15
- package/src/toggle-group/ToggleItem.tsx +3 -3
- package/src/toggle-group/context.ts +9 -0
- package/src/tooltip/Tooltip.tsx +2 -1
- package/src/util/TextareaAutoSize.tsx +1 -1
- package/src/util/index.ts +5 -70
- package/src/util/omit.ts +10 -0
- package/src/util/useClientLayoutEffect.ts +11 -0
- package/src/util/useEventListener.ts +32 -0
|
@@ -0,0 +1,64 @@
|
|
|
1
|
+
export interface ModalProps
|
|
2
|
+
extends React.DialogHTMLAttributes<HTMLDialogElement> {
|
|
3
|
+
/**
|
|
4
|
+
* Content for the header. Alteratively you can use <Modal.Header> instead for more control,
|
|
5
|
+
* but then you have to set `aria-label` or `aria-labelledby` on the modal manually.
|
|
6
|
+
*/
|
|
7
|
+
header?: {
|
|
8
|
+
label?: string;
|
|
9
|
+
icon?: React.ReactNode;
|
|
10
|
+
heading: string;
|
|
11
|
+
/**
|
|
12
|
+
* Heading size
|
|
13
|
+
* @default "medium"
|
|
14
|
+
* */
|
|
15
|
+
size?: "medium" | "small";
|
|
16
|
+
/**
|
|
17
|
+
* Removes close-button (X) when false
|
|
18
|
+
* @default true
|
|
19
|
+
*/
|
|
20
|
+
closeButton?: boolean;
|
|
21
|
+
};
|
|
22
|
+
/**
|
|
23
|
+
* Modal content
|
|
24
|
+
*/
|
|
25
|
+
children: React.ReactNode;
|
|
26
|
+
/**
|
|
27
|
+
* Whether the modal should be visible or not.
|
|
28
|
+
* Remember to use the `onClose` callback to keep your local state in sync.
|
|
29
|
+
* You can also use `ref.current.openModal()` and `ref.current.close()`.
|
|
30
|
+
*/
|
|
31
|
+
open?: boolean;
|
|
32
|
+
/**
|
|
33
|
+
* Called when the modal has been closed
|
|
34
|
+
*/
|
|
35
|
+
onClose?: React.ReactEventHandler<HTMLDialogElement>;
|
|
36
|
+
/**
|
|
37
|
+
* Called when the user wants to close the modal (clicked the close button or pressed Esc).
|
|
38
|
+
* @returns Whether to close the modal
|
|
39
|
+
*/
|
|
40
|
+
onBeforeClose?: () => boolean | void;
|
|
41
|
+
/**
|
|
42
|
+
* Called when the user presses the Esc key, unless `onBeforeClose()` returns `false`.
|
|
43
|
+
*/
|
|
44
|
+
onCancel?: React.ReactEventHandler<HTMLDialogElement>;
|
|
45
|
+
/**
|
|
46
|
+
* @default fit-content (up to 700px)
|
|
47
|
+
* */
|
|
48
|
+
width?: "medium" | "small" | number | `${number}${string}`;
|
|
49
|
+
/**
|
|
50
|
+
* Lets you render the modal into a different part of the DOM.
|
|
51
|
+
* Will use `rootElement` from `Provider` if defined, otherwise `document.body`.
|
|
52
|
+
*/
|
|
53
|
+
portal?: boolean;
|
|
54
|
+
/**
|
|
55
|
+
* User defined classname for modal
|
|
56
|
+
*/
|
|
57
|
+
className?: string;
|
|
58
|
+
/**
|
|
59
|
+
* Sets aria-labelledby on modal.
|
|
60
|
+
* No need to set this manually if the `header` prop is used. A reference to `header.heading` will be created automatically.
|
|
61
|
+
* @warning If not using `header`, you should set either `aria-labelledby` or `aria-label`.
|
|
62
|
+
*/
|
|
63
|
+
"aria-labelledby"?: string;
|
|
64
|
+
}
|
|
@@ -2,7 +2,7 @@ import cl from "clsx";
|
|
|
2
2
|
import React, { forwardRef } from "react";
|
|
3
3
|
|
|
4
4
|
import { ChevronLeftIcon, ChevronRightIcon } from "@navikt/aksel-icons";
|
|
5
|
-
import { BodyShort } from "
|
|
5
|
+
import { BodyShort } from "../typography";
|
|
6
6
|
import PaginationItem, {
|
|
7
7
|
PaginationItemProps,
|
|
8
8
|
PaginationItemType,
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
import React, { forwardRef } from "react";
|
|
2
2
|
import cl from "clsx";
|
|
3
|
-
import { Button, ButtonProps
|
|
3
|
+
import { Button, ButtonProps } from "../button";
|
|
4
|
+
import { OverridableComponent } from "../util";
|
|
4
5
|
|
|
5
6
|
export interface PaginationItemProps extends ButtonProps {
|
|
6
7
|
children: React.ReactNode;
|
package/src/popover/Popover.tsx
CHANGED
|
@@ -14,14 +14,13 @@ import React, {
|
|
|
14
14
|
HTMLAttributes,
|
|
15
15
|
forwardRef,
|
|
16
16
|
useCallback,
|
|
17
|
+
useContext,
|
|
17
18
|
useMemo,
|
|
18
19
|
useRef,
|
|
19
|
-
useContext,
|
|
20
20
|
} from "react";
|
|
21
|
-
import { mergeRefs } from "..";
|
|
22
|
-
import { useClientLayoutEffect, useEventListener } from "../util";
|
|
23
|
-
import PopoverContent, { PopoverContentType } from "./PopoverContent";
|
|
24
21
|
import { ModalContext } from "../modal/ModalContext";
|
|
22
|
+
import { mergeRefs, useClientLayoutEffect, useEventListener } from "../util";
|
|
23
|
+
import PopoverContent, { PopoverContentType } from "./PopoverContent";
|
|
25
24
|
|
|
26
25
|
export interface PopoverProps extends HTMLAttributes<HTMLDivElement> {
|
|
27
26
|
/**
|
|
@@ -79,6 +78,11 @@ export interface PopoverProps extends HTMLAttributes<HTMLDivElement> {
|
|
|
79
78
|
* @default false
|
|
80
79
|
*/
|
|
81
80
|
bubbleEscape?: boolean;
|
|
81
|
+
/**
|
|
82
|
+
* Changes placement of the floating element in order to keep it in view.
|
|
83
|
+
* @default true
|
|
84
|
+
*/
|
|
85
|
+
flip?: boolean;
|
|
82
86
|
}
|
|
83
87
|
|
|
84
88
|
interface PopoverComponent
|
|
@@ -121,6 +125,7 @@ export const Popover = forwardRef<HTMLDivElement, PopoverProps>(
|
|
|
121
125
|
offset,
|
|
122
126
|
strategy: userStrategy,
|
|
123
127
|
bubbleEscape = false,
|
|
128
|
+
flip: _flip = true,
|
|
124
129
|
...rest
|
|
125
130
|
},
|
|
126
131
|
ref
|
|
@@ -145,7 +150,7 @@ export const Popover = forwardRef<HTMLDivElement, PopoverProps>(
|
|
|
145
150
|
onOpenChange: () => onClose(),
|
|
146
151
|
middleware: [
|
|
147
152
|
flOffset(offset ?? (arrow ? 16 : 4)),
|
|
148
|
-
flip({ padding: 5, fallbackPlacements: ["bottom", "top"] }),
|
|
153
|
+
_flip && flip({ padding: 5, fallbackPlacements: ["bottom", "top"] }),
|
|
149
154
|
shift({ padding: 12 }),
|
|
150
155
|
flArrow({ element: arrowRef, padding: 8 }),
|
|
151
156
|
],
|
package/src/stepper/Step.tsx
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import cl from "clsx";
|
|
2
2
|
import React, { forwardRef, useContext } from "react";
|
|
3
|
-
import { Label
|
|
4
|
-
import {
|
|
3
|
+
import { Label } from "../typography";
|
|
4
|
+
import { OverridableComponent } from "../util";
|
|
5
|
+
import { StepperContext } from "./context";
|
|
5
6
|
|
|
6
7
|
export interface StepperStepProps
|
|
7
8
|
extends React.AnchorHTMLAttributes<HTMLAnchorElement> {
|
package/src/stepper/Stepper.tsx
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
|
-
import React, { createContext, forwardRef } from "react";
|
|
2
1
|
import cl from "clsx";
|
|
2
|
+
import React, { forwardRef } from "react";
|
|
3
3
|
import Step, { StepperStepProps } from "./Step";
|
|
4
|
-
import {
|
|
4
|
+
import { StepperContext } from "./context";
|
|
5
5
|
|
|
6
6
|
export interface StepperProps extends React.HTMLAttributes<HTMLOListElement> {
|
|
7
7
|
/**
|
|
@@ -38,19 +38,9 @@ interface StepperComponent
|
|
|
38
38
|
* @see 🏷️ {@link StepperStepProps}
|
|
39
39
|
* @see [🤖 OverridableComponent](https://aksel.nav.no/grunnleggende/kode/overridablecomponent) support
|
|
40
40
|
*/
|
|
41
|
-
Step:
|
|
41
|
+
Step: typeof Step;
|
|
42
42
|
}
|
|
43
43
|
|
|
44
|
-
interface StepperContextProps {
|
|
45
|
-
activeStep: number;
|
|
46
|
-
onStepChange: (step: number) => void;
|
|
47
|
-
lastIndex: number;
|
|
48
|
-
orientation: "horizontal" | "vertical";
|
|
49
|
-
interactive: boolean;
|
|
50
|
-
}
|
|
51
|
-
|
|
52
|
-
export const StepperContext = createContext<StepperContextProps | null>(null);
|
|
53
|
-
|
|
54
44
|
/**
|
|
55
45
|
* A component that displays a stepper with clickable steps.
|
|
56
46
|
*
|
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { createContext } from "react";
|
|
2
|
+
|
|
3
|
+
interface StepperContextProps {
|
|
4
|
+
activeStep: number;
|
|
5
|
+
onStepChange: (step: number) => void;
|
|
6
|
+
lastIndex: number;
|
|
7
|
+
orientation: "horizontal" | "vertical";
|
|
8
|
+
interactive: boolean;
|
|
9
|
+
}
|
|
10
|
+
|
|
11
|
+
export const StepperContext = createContext<StepperContextProps | null>(null);
|
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
import React, { forwardRef, useContext } from "react";
|
|
2
|
-
import { TableContext } from "./Table";
|
|
3
|
-
import HeaderCell, { HeaderCellProps } from "./HeaderCell";
|
|
4
1
|
import {
|
|
5
2
|
ArrowDownIcon,
|
|
6
3
|
ArrowUpIcon,
|
|
7
4
|
ArrowsUpDownIcon,
|
|
8
5
|
} from "@navikt/aksel-icons";
|
|
6
|
+
import React, { forwardRef, useContext } from "react";
|
|
7
|
+
import HeaderCell, { HeaderCellProps } from "./HeaderCell";
|
|
8
|
+
import { TableContext } from "./context";
|
|
9
9
|
|
|
10
10
|
export interface ColumnHeaderProps extends HeaderCellProps {
|
|
11
11
|
/**
|
package/src/table/DataCell.tsx
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import cl from "clsx";
|
|
2
2
|
import React, { forwardRef, useState } from "react";
|
|
3
|
-
import { useId } from "
|
|
3
|
+
import { useId } from "../util";
|
|
4
4
|
import AnimateHeight from "../util/AnimateHeight";
|
|
5
5
|
import DataCell from "./DataCell";
|
|
6
6
|
import Row, { RowProps } from "./Row";
|
package/src/table/Table.tsx
CHANGED
|
@@ -1,17 +1,14 @@
|
|
|
1
|
-
import React, { createContext, forwardRef } from "react";
|
|
2
1
|
import cl from "clsx";
|
|
3
|
-
import
|
|
4
|
-
import Body
|
|
5
|
-
import
|
|
6
|
-
import
|
|
7
|
-
import
|
|
8
|
-
import
|
|
9
|
-
import
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
direction: "ascending" | "descending";
|
|
14
|
-
}
|
|
2
|
+
import React, { forwardRef } from "react";
|
|
3
|
+
import Body from "./Body";
|
|
4
|
+
import ColumnHeader from "./ColumnHeader";
|
|
5
|
+
import DataCell from "./DataCell";
|
|
6
|
+
import ExpandableRow from "./ExpandableRow";
|
|
7
|
+
import Header from "./Header";
|
|
8
|
+
import HeaderCell from "./HeaderCell";
|
|
9
|
+
import Row from "./Row";
|
|
10
|
+
import { TableContext } from "./context";
|
|
11
|
+
import { SortState } from "./types";
|
|
15
12
|
|
|
16
13
|
export interface TableProps
|
|
17
14
|
extends React.TableHTMLAttributes<HTMLTableElement> {
|
|
@@ -39,22 +36,15 @@ export interface TableType
|
|
|
39
36
|
extends React.ForwardRefExoticComponent<
|
|
40
37
|
TableProps & React.RefAttributes<HTMLTableElement>
|
|
41
38
|
> {
|
|
42
|
-
Header:
|
|
43
|
-
Body:
|
|
44
|
-
Row:
|
|
45
|
-
DataCell:
|
|
46
|
-
HeaderCell:
|
|
47
|
-
ColumnHeader:
|
|
48
|
-
ExpandableRow:
|
|
49
|
-
}
|
|
50
|
-
|
|
51
|
-
export interface TableContextProps {
|
|
52
|
-
onSortChange?: (sortKey: string) => void;
|
|
53
|
-
sort?: SortState;
|
|
39
|
+
Header: typeof Header;
|
|
40
|
+
Body: typeof Body;
|
|
41
|
+
Row: typeof Row;
|
|
42
|
+
DataCell: typeof DataCell;
|
|
43
|
+
HeaderCell: typeof HeaderCell;
|
|
44
|
+
ColumnHeader: typeof ColumnHeader;
|
|
45
|
+
ExpandableRow: typeof ExpandableRow;
|
|
54
46
|
}
|
|
55
47
|
|
|
56
|
-
export const TableContext = createContext<TableContextProps | null>(null);
|
|
57
|
-
|
|
58
48
|
/**
|
|
59
49
|
* A component that displays a table with headers and rows.
|
|
60
50
|
*
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
import { createContext } from "react";
|
|
2
|
+
import { SortState } from "./types";
|
|
3
|
+
|
|
4
|
+
export interface TableContextProps {
|
|
5
|
+
onSortChange?: (sortKey: string) => void;
|
|
6
|
+
sort?: SortState;
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
export const TableContext = createContext<TableContextProps | null>(null);
|
package/src/table/index.ts
CHANGED
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
export { default as Table, type TableProps, type SortState } from "./Table";
|
|
2
1
|
export { type BodyProps } from "./Body";
|
|
3
2
|
export { type ColumnHeaderProps } from "./ColumnHeader";
|
|
4
3
|
export { type DataCellProps } from "./DataCell";
|
|
@@ -6,3 +5,5 @@ export { type ExpandableRowProps } from "./ExpandableRow";
|
|
|
6
5
|
export { type HeaderProps } from "./Header";
|
|
7
6
|
export { type HeaderCellProps } from "./HeaderCell";
|
|
8
7
|
export { type RowProps } from "./Row";
|
|
8
|
+
export { default as Table, type TableProps } from "./Table";
|
|
9
|
+
export { type SortState } from "./types";
|
package/src/tabs/Tab.tsx
CHANGED
|
@@ -1,8 +1,9 @@
|
|
|
1
1
|
import * as RadixTabs from "@radix-ui/react-tabs";
|
|
2
2
|
import cl from "clsx";
|
|
3
3
|
import React, { forwardRef, useContext } from "react";
|
|
4
|
-
import { BodyShort
|
|
5
|
-
import {
|
|
4
|
+
import { BodyShort } from "../typography";
|
|
5
|
+
import { OverridableComponent } from "../util";
|
|
6
|
+
import { TabsContext } from "./context";
|
|
6
7
|
|
|
7
8
|
export interface TabProps
|
|
8
9
|
extends Omit<React.HTMLAttributes<HTMLButtonElement>, "children"> {
|
package/src/tabs/TabList.tsx
CHANGED
|
@@ -9,8 +9,8 @@ import React, {
|
|
|
9
9
|
useRef,
|
|
10
10
|
useState,
|
|
11
11
|
} from "react";
|
|
12
|
-
import { debounce, mergeRefs } from "
|
|
13
|
-
import { TabsContext } from "./
|
|
12
|
+
import { debounce, mergeRefs } from "../util";
|
|
13
|
+
import { TabsContext } from "./context";
|
|
14
14
|
|
|
15
15
|
export interface TabListProps extends React.HTMLAttributes<HTMLDivElement> {
|
|
16
16
|
/**
|
package/src/tabs/Tabs.tsx
CHANGED
|
@@ -1,7 +1,8 @@
|
|
|
1
1
|
import * as RadixTabs from "@radix-ui/react-tabs";
|
|
2
2
|
import cl from "clsx";
|
|
3
|
-
import React, {
|
|
3
|
+
import React, { forwardRef, HTMLAttributes } from "react";
|
|
4
4
|
import { OverridableComponent } from "../util/OverridableComponent";
|
|
5
|
+
import { TabsContext } from "./context";
|
|
5
6
|
import Tab, { TabProps } from "./Tab";
|
|
6
7
|
import TabList, { TabListProps } from "./TabList";
|
|
7
8
|
import TabPanel, { TabPanelProps } from "./TabPanel";
|
|
@@ -66,14 +67,6 @@ interface TabsComponent
|
|
|
66
67
|
>;
|
|
67
68
|
}
|
|
68
69
|
|
|
69
|
-
interface TabsContextProps {
|
|
70
|
-
size: "medium" | "small";
|
|
71
|
-
loop: boolean;
|
|
72
|
-
iconPosition: "left" | "top";
|
|
73
|
-
}
|
|
74
|
-
|
|
75
|
-
export const TabsContext = createContext<TabsContextProps | null>(null);
|
|
76
|
-
|
|
77
70
|
/**
|
|
78
71
|
* A component that displays a set of tabs that can be used to switch between different views.
|
|
79
72
|
*
|
package/src/tabs/index.ts
CHANGED
package/src/tag/Tag.tsx
CHANGED
|
@@ -20,7 +20,7 @@ import { usePeriodContext } from "../hooks/usePeriodContext";
|
|
|
20
20
|
import { useRowContext } from "../hooks/useRowContext";
|
|
21
21
|
import { useTimelineContext } from "../hooks/useTimelineContext";
|
|
22
22
|
import { ariaLabel, getConditionalClasses } from "../utils/period";
|
|
23
|
-
import { PeriodProps } from "./
|
|
23
|
+
import { PeriodProps } from "./types";
|
|
24
24
|
|
|
25
25
|
interface TimelineClickablePeriodProps extends PeriodProps {
|
|
26
26
|
onSelectPeriod?: (
|
|
@@ -1,7 +1,7 @@
|
|
|
1
|
+
import cl from "clsx";
|
|
1
2
|
import React from "react";
|
|
2
3
|
import { ariaLabel, getConditionalClasses } from "../utils/period";
|
|
3
|
-
import { PeriodProps } from "./
|
|
4
|
-
import cl from "clsx";
|
|
4
|
+
import { PeriodProps } from "./types";
|
|
5
5
|
|
|
6
6
|
interface TimelineNonClickablePeriodProps extends PeriodProps {
|
|
7
7
|
periodRef?: React.ForwardedRef<HTMLDivElement>;
|
|
@@ -44,20 +44,6 @@ export interface TimelinePeriodProps
|
|
|
44
44
|
isActive?: boolean;
|
|
45
45
|
}
|
|
46
46
|
|
|
47
|
-
export interface PeriodProps {
|
|
48
|
-
start: Date;
|
|
49
|
-
end: Date;
|
|
50
|
-
status: string;
|
|
51
|
-
cropped: string;
|
|
52
|
-
direction: string;
|
|
53
|
-
width: number;
|
|
54
|
-
left: number;
|
|
55
|
-
icon?: React.ReactNode;
|
|
56
|
-
children?: React.ReactNode;
|
|
57
|
-
statusLabel?: string;
|
|
58
|
-
restProps?: any;
|
|
59
|
-
}
|
|
60
|
-
|
|
61
47
|
export interface PeriodType
|
|
62
48
|
extends React.ForwardRefExoticComponent<
|
|
63
49
|
TimelinePeriodProps &
|
|
@@ -0,0 +1,13 @@
|
|
|
1
|
+
export interface PeriodProps {
|
|
2
|
+
start: Date;
|
|
3
|
+
end: Date;
|
|
4
|
+
status: string;
|
|
5
|
+
cropped: string;
|
|
6
|
+
direction: string;
|
|
7
|
+
width: number;
|
|
8
|
+
left: number;
|
|
9
|
+
icon?: React.ReactNode;
|
|
10
|
+
children?: React.ReactNode;
|
|
11
|
+
statusLabel?: string;
|
|
12
|
+
restProps?: any;
|
|
13
|
+
}
|
|
@@ -1,12 +1,9 @@
|
|
|
1
1
|
import * as RadixToggleGroup from "@radix-ui/react-toggle-group";
|
|
2
2
|
import cl from "clsx";
|
|
3
|
-
import React, {
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
useState,
|
|
8
|
-
} from "react";
|
|
9
|
-
import { Label, useId } from "..";
|
|
3
|
+
import React, { forwardRef, HTMLAttributes, useState } from "react";
|
|
4
|
+
import { Label } from "../typography";
|
|
5
|
+
import { useId } from "../util";
|
|
6
|
+
import { ToggleGroupContext } from "./context";
|
|
10
7
|
import ToggleItem, { ToggleItemProps } from "./ToggleItem";
|
|
11
8
|
|
|
12
9
|
export interface ToggleGroupProps
|
|
@@ -55,14 +52,6 @@ interface ToggleGroupComponent
|
|
|
55
52
|
>;
|
|
56
53
|
}
|
|
57
54
|
|
|
58
|
-
interface ToggleContextProps {
|
|
59
|
-
size: "medium" | "small";
|
|
60
|
-
}
|
|
61
|
-
|
|
62
|
-
export const ToggleGroupContext = createContext<ToggleContextProps | null>(
|
|
63
|
-
null
|
|
64
|
-
);
|
|
65
|
-
|
|
66
55
|
/**
|
|
67
56
|
* A component that displays a group of toggle buttons.
|
|
68
57
|
*
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import
|
|
1
|
+
import * as RadixToggleGroup from "@radix-ui/react-toggle-group";
|
|
2
2
|
import cl from "clsx";
|
|
3
|
+
import React, { forwardRef, useContext } from "react";
|
|
3
4
|
import { BodyShort } from "../typography/BodyShort";
|
|
4
|
-
import
|
|
5
|
-
import { ToggleGroupContext } from "./ToggleGroup";
|
|
5
|
+
import { ToggleGroupContext } from "./context";
|
|
6
6
|
|
|
7
7
|
export interface ToggleItemProps
|
|
8
8
|
extends React.HTMLAttributes<HTMLButtonElement> {
|
package/src/tooltip/Tooltip.tsx
CHANGED
|
@@ -21,8 +21,9 @@ import React, {
|
|
|
21
21
|
useRef,
|
|
22
22
|
useState,
|
|
23
23
|
} from "react";
|
|
24
|
-
import { Detail
|
|
24
|
+
import { Detail } from "../typography";
|
|
25
25
|
import { mergeRefs, useId } from "../util";
|
|
26
|
+
import { useProvider } from "../provider";
|
|
26
27
|
|
|
27
28
|
export interface TooltipProps extends HTMLAttributes<HTMLDivElement> {
|
|
28
29
|
/**
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
/* https://github.com/mui/material-ui/blob/master/packages/mui-base/src/TextareaAutosize/TextareaAutosize.js */
|
|
2
2
|
import React, { forwardRef, useEffect, useMemo, useRef, useState } from "react";
|
|
3
3
|
import ReactDOM from "react-dom";
|
|
4
|
-
import { debounce, mergeRefs, useClientLayoutEffect } from "
|
|
4
|
+
import { debounce, mergeRefs, useClientLayoutEffect } from "../util";
|
|
5
5
|
|
|
6
6
|
/**
|
|
7
7
|
* https://github.com/mui/material-ui/blob/master/packages/mui-utils/src/ownerDocument.ts
|
package/src/util/index.ts
CHANGED
|
@@ -1,72 +1,7 @@
|
|
|
1
|
-
import { useEffect, useLayoutEffect } from "react";
|
|
2
|
-
|
|
3
1
|
export * from "./OverridableComponent";
|
|
4
|
-
export * from "./useId";
|
|
5
|
-
export { default as mergeRefs } from "./mergeRefs";
|
|
6
2
|
export { default as debounce } from "./debounce";
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
typeof window.document.createElement !== "undefined"
|
|
13
|
-
);
|
|
14
|
-
};
|
|
15
|
-
|
|
16
|
-
export const useClientLayoutEffect = canUseDOM() ? useLayoutEffect : () => {};
|
|
17
|
-
|
|
18
|
-
export const omit = (obj: object, props: string[]) =>
|
|
19
|
-
Object.entries(obj)
|
|
20
|
-
.filter(([key]) => !props.includes(key))
|
|
21
|
-
.reduce(
|
|
22
|
-
(obj, [key, value]) => ({
|
|
23
|
-
...obj,
|
|
24
|
-
[key]: value,
|
|
25
|
-
}),
|
|
26
|
-
{}
|
|
27
|
-
);
|
|
28
|
-
|
|
29
|
-
export interface ListenerT {
|
|
30
|
-
addEventListener(
|
|
31
|
-
name: string,
|
|
32
|
-
handler: (event?: any) => void,
|
|
33
|
-
...args: any[]
|
|
34
|
-
);
|
|
35
|
-
|
|
36
|
-
removeEventListener(
|
|
37
|
-
name: string,
|
|
38
|
-
handler: (event?: any) => void,
|
|
39
|
-
...args: any[]
|
|
40
|
-
);
|
|
41
|
-
}
|
|
42
|
-
|
|
43
|
-
/* https://github.com/streamich/react-use/blob/master/src/useEvent.ts */
|
|
44
|
-
export const useEventListener = <T extends ListenerT>(
|
|
45
|
-
name: Parameters<ListenerT["addEventListener"]>[0],
|
|
46
|
-
handler: Parameters<ListenerT["addEventListener"]>[1],
|
|
47
|
-
target: null | T | Window = typeof window !== "undefined" ? window : null
|
|
48
|
-
): void => {
|
|
49
|
-
useEffect(() => {
|
|
50
|
-
if (!target) {
|
|
51
|
-
return;
|
|
52
|
-
}
|
|
53
|
-
target?.addEventListener(name, handler);
|
|
54
|
-
return () => {
|
|
55
|
-
target?.removeEventListener(name, handler);
|
|
56
|
-
};
|
|
57
|
-
}, [name, handler, target]);
|
|
58
|
-
};
|
|
59
|
-
|
|
60
|
-
/* https://github.com/radix-ui/primitives/blob/main/packages/core/primitive/src/primitive.tsx */
|
|
61
|
-
export const composeEventHandlers = <E>(
|
|
62
|
-
originalEventHandler?: (event: E) => void,
|
|
63
|
-
ourEventHandler?: (event: E) => void
|
|
64
|
-
) => {
|
|
65
|
-
return function handleEvent(event: E) {
|
|
66
|
-
originalEventHandler?.(event);
|
|
67
|
-
|
|
68
|
-
if (!(event as unknown as Event).defaultPrevented) {
|
|
69
|
-
return ourEventHandler?.(event);
|
|
70
|
-
}
|
|
71
|
-
};
|
|
72
|
-
};
|
|
3
|
+
export { default as mergeRefs } from "./mergeRefs";
|
|
4
|
+
export * from "./omit";
|
|
5
|
+
export * from "./useClientLayoutEffect";
|
|
6
|
+
export * from "./useEventListener";
|
|
7
|
+
export * from "./useId";
|
package/src/util/omit.ts
ADDED
|
@@ -0,0 +1,11 @@
|
|
|
1
|
+
import { useLayoutEffect } from "react";
|
|
2
|
+
|
|
3
|
+
const canUseDOM = (): boolean => {
|
|
4
|
+
return (
|
|
5
|
+
typeof window !== "undefined" &&
|
|
6
|
+
typeof window.document !== "undefined" &&
|
|
7
|
+
typeof window.document.createElement !== "undefined"
|
|
8
|
+
);
|
|
9
|
+
};
|
|
10
|
+
|
|
11
|
+
export const useClientLayoutEffect = canUseDOM() ? useLayoutEffect : () => {};
|