@navikt/ds-react 8.7.0 → 8.9.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/cjs/alert/base-alert/root/BaseAlertRoot.js +1 -2
- package/cjs/alert/base-alert/root/BaseAlertRoot.js.map +1 -1
- package/cjs/alert/info-card/index.d.ts +2 -2
- package/cjs/alert/info-card/index.js +2 -1
- package/cjs/alert/info-card/index.js.map +1 -1
- package/cjs/alert/info-card/message/InfoCardMessage.d.ts +23 -0
- package/cjs/alert/info-card/message/InfoCardMessage.js +73 -0
- package/cjs/alert/info-card/message/InfoCardMessage.js.map +1 -0
- package/cjs/alert/info-card/root/InfoCardRoot.d.ts +15 -2
- package/cjs/alert/info-card/root/InfoCardRoot.js +4 -1
- package/cjs/alert/info-card/root/InfoCardRoot.js.map +1 -1
- package/cjs/data/drag-and-drop/drag-handler/DragAndDropDragHandler.d.ts +12 -0
- package/cjs/data/drag-and-drop/drag-handler/DragAndDropDragHandler.js +57 -0
- package/cjs/data/drag-and-drop/drag-handler/DragAndDropDragHandler.js.map +1 -0
- package/cjs/data/drag-and-drop/item/DragAndDropItem.d.ts +27 -0
- package/cjs/data/drag-and-drop/item/DragAndDropItem.js +52 -0
- package/cjs/data/drag-and-drop/item/DragAndDropItem.js.map +1 -0
- package/cjs/data/drag-and-drop/root/DragAndDrop.context.d.ts +16 -0
- package/cjs/data/drag-and-drop/root/DragAndDrop.context.js +10 -0
- package/cjs/data/drag-and-drop/root/DragAndDrop.context.js.map +1 -0
- package/cjs/data/drag-and-drop/root/DragAndDropRoot.d.ts +36 -0
- package/cjs/data/drag-and-drop/root/DragAndDropRoot.js +187 -0
- package/cjs/data/drag-and-drop/root/DragAndDropRoot.js.map +1 -0
- package/cjs/data/drag-and-drop/types.d.ts +4 -0
- package/cjs/data/drag-and-drop/types.js +3 -0
- package/cjs/data/drag-and-drop/types.js.map +1 -0
- package/cjs/data/drag-and-drop-old/drag-handler/DataDragAndDropDragHandler.d.ts +22 -0
- package/cjs/data/drag-and-drop-old/drag-handler/DataDragAndDropDragHandler.js +35 -0
- package/cjs/data/drag-and-drop-old/drag-handler/DataDragAndDropDragHandler.js.map +1 -0
- package/cjs/data/{drag-and-drop → drag-and-drop-old}/item/DataDragAndDropItem.js +2 -7
- package/cjs/data/drag-and-drop-old/item/DataDragAndDropItem.js.map +1 -0
- package/cjs/data/drag-and-drop-old/root/DataDragAndDrop.context.js.map +1 -0
- package/cjs/data/{drag-and-drop → drag-and-drop-old}/root/DataDragAndDropRoot.d.ts +2 -2
- package/cjs/data/{drag-and-drop → drag-and-drop-old}/root/DataDragAndDropRoot.js +5 -8
- package/cjs/data/drag-and-drop-old/root/DataDragAndDropRoot.js.map +1 -0
- package/cjs/data/table/empty-state/DataTableEmptyState.d.ts +5 -0
- package/cjs/data/table/empty-state/DataTableEmptyState.js +57 -0
- package/cjs/data/table/empty-state/DataTableEmptyState.js.map +1 -0
- package/cjs/data/table/helpers/selection/getMultipleSelectProps.d.ts +14 -0
- package/cjs/data/table/helpers/selection/getMultipleSelectProps.js +48 -0
- package/cjs/data/table/helpers/selection/getMultipleSelectProps.js.map +1 -0
- package/cjs/data/table/helpers/selection/getSingleSelectProps.d.ts +10 -0
- package/cjs/data/table/helpers/selection/getSingleSelectProps.js +23 -0
- package/cjs/data/table/helpers/selection/getSingleSelectProps.js.map +1 -0
- package/cjs/data/table/helpers/selection/selection.types.d.ts +42 -0
- package/cjs/data/table/helpers/selection/selection.types.js +3 -0
- package/cjs/data/table/helpers/selection/selection.types.js.map +1 -0
- package/cjs/data/table/helpers/table-focus.js +7 -1
- package/cjs/data/table/helpers/table-focus.js.map +1 -1
- package/cjs/data/table/helpers/table-keyboard.d.ts +0 -1
- package/cjs/data/table/helpers/table-keyboard.js +2 -4
- package/cjs/data/table/helpers/table-keyboard.js.map +1 -1
- package/cjs/data/table/{root → hooks}/useTableKeyboardNav.js +2 -1
- package/cjs/data/table/hooks/useTableKeyboardNav.js.map +1 -0
- package/cjs/data/table/hooks/useTableSelection.d.ts +8 -0
- package/cjs/data/table/hooks/useTableSelection.js +49 -0
- package/cjs/data/table/hooks/useTableSelection.js.map +1 -0
- package/cjs/data/table/loading-state/DataTableLoadingState.d.ts +5 -0
- package/cjs/data/table/loading-state/DataTableLoadingState.js +57 -0
- package/cjs/data/table/loading-state/DataTableLoadingState.js.map +1 -0
- package/cjs/data/table/root/DataTable.types.d.ts +13 -0
- package/cjs/data/table/root/DataTable.types.js +3 -0
- package/cjs/data/table/root/DataTable.types.js.map +1 -0
- package/cjs/data/table/root/DataTableAuto.d.ts +60 -0
- package/cjs/data/table/root/DataTableAuto.js +113 -0
- package/cjs/data/table/root/DataTableAuto.js.map +1 -0
- package/cjs/data/table/root/DataTableRoot.context.d.ts +3 -2
- package/cjs/data/table/root/DataTableRoot.context.js.map +1 -1
- package/cjs/data/table/root/DataTableRoot.d.ts +30 -3
- package/cjs/data/table/root/DataTableRoot.js +9 -3
- package/cjs/data/table/root/DataTableRoot.js.map +1 -1
- package/cjs/data/table/td/DataTableTd.d.ts +10 -0
- package/cjs/data/table/td/DataTableTd.js +4 -2
- package/cjs/data/table/td/DataTableTd.js.map +1 -1
- package/cjs/data/table/th/DataTableTh.d.ts +10 -4
- package/cjs/data/table/th/DataTableTh.js +24 -22
- package/cjs/data/table/th/DataTableTh.js.map +1 -1
- package/cjs/data/table/th/useTableColumnResize.d.ts +64 -0
- package/cjs/data/table/th/useTableColumnResize.js +144 -0
- package/cjs/data/table/th/useTableColumnResize.js.map +1 -0
- package/cjs/data/table/thead/DataTableThead.context.d.ts +4 -0
- package/cjs/data/table/thead/DataTableThead.context.js +45 -0
- package/cjs/data/table/thead/DataTableThead.context.js.map +1 -0
- package/cjs/data/table/thead/DataTableThead.js +3 -1
- package/cjs/data/table/thead/DataTableThead.js.map +1 -1
- package/cjs/data/table/tr/DataTableTr.js +4 -3
- package/cjs/data/table/tr/DataTableTr.js.map +1 -1
- package/cjs/data/token-filter/AutoSuggest.js +40 -9
- package/cjs/data/token-filter/AutoSuggest.js.map +1 -1
- package/cjs/data/token-filter/TokenFilter.d.ts +1 -0
- package/cjs/data/token-filter/TokenFilter.js +1 -0
- package/cjs/data/token-filter/TokenFilter.js.map +1 -1
- package/cjs/data/toolbar/root/DataToolbarRoot.d.ts +6 -23
- package/cjs/data/toolbar/root/DataToolbarRoot.js +42 -7
- package/cjs/data/toolbar/root/DataToolbarRoot.js.map +1 -1
- package/cjs/date/Date.Input.js +8 -9
- package/cjs/date/Date.Input.js.map +1 -1
- package/cjs/date/datepicker/hooks/useDatepicker.d.ts +12 -1
- package/cjs/date/datepicker/hooks/useDatepicker.js +4 -3
- package/cjs/date/datepicker/hooks/useDatepicker.js.map +1 -1
- package/cjs/date/monthpicker/hooks/useMonthPicker.d.ts +11 -1
- package/cjs/date/monthpicker/hooks/useMonthPicker.js +3 -2
- package/cjs/date/monthpicker/hooks/useMonthPicker.js.map +1 -1
- package/cjs/form/checkbox/CheckboxGroup.js +1 -1
- package/cjs/form/checkbox/CheckboxGroup.js.map +1 -1
- package/cjs/form/fieldset/Fieldset.d.ts +25 -5
- package/cjs/form/fieldset/Fieldset.js +19 -2
- package/cjs/form/fieldset/Fieldset.js.map +1 -1
- package/cjs/form/radio/RadioGroup.js +1 -1
- package/cjs/form/radio/RadioGroup.js.map +1 -1
- package/cjs/index.d.ts +1 -1
- package/cjs/index.js.map +1 -1
- package/cjs/internal-header/InternalHeaderButton.d.ts +5 -0
- package/cjs/internal-header/InternalHeaderButton.js +2 -2
- package/cjs/internal-header/InternalHeaderButton.js.map +1 -1
- package/cjs/read-more/ReadMore.d.ts +10 -0
- package/cjs/read-more/ReadMore.js +4 -6
- package/cjs/read-more/ReadMore.js.map +1 -1
- package/cjs/types/index.d.ts +1 -1
- package/cjs/types/index.js +0 -15
- package/cjs/types/index.js.map +1 -1
- package/cjs/utils/components/Listbox/group/ListboxGroup.js +2 -1
- package/cjs/utils/components/Listbox/group/ListboxGroup.js.map +1 -1
- package/cjs/utils/components/Listbox/input-slot/ListboxInputSlot.js +1 -1
- package/cjs/utils/components/Listbox/input-slot/ListboxInputSlot.js.map +1 -1
- package/cjs/utils/components/Listbox/option/ListboxOption.d.ts +24 -0
- package/cjs/utils/components/Listbox/{item/ListboxItem.js → option/ListboxOption.js} +8 -8
- package/cjs/utils/components/Listbox/option/ListboxOption.js.map +1 -0
- package/cjs/utils/components/Listbox/options/ListboxOptions.d.ts +8 -0
- package/cjs/utils/components/Listbox/{list/ListboxList.js → options/ListboxOptions.js} +8 -8
- package/cjs/utils/components/Listbox/options/ListboxOptions.js.map +1 -0
- package/cjs/utils/components/Listbox/root/ListboxRoot.d.ts +6 -6
- package/cjs/utils/components/Listbox/root/ListboxRoot.js +28 -28
- package/cjs/utils/components/Listbox/root/ListboxRoot.js.map +1 -1
- package/cjs/utils/components/Listbox/root/domHelpers.d.ts +3 -3
- package/cjs/utils/components/Listbox/root/domHelpers.js +8 -8
- package/cjs/utils/components/Listbox/root/domHelpers.js.map +1 -1
- package/cjs/utils/components/floating/Floating.d.ts +1 -1
- package/cjs/utils/components/floating/Floating.js +1 -1
- package/cjs/utils/components/floating/Floating.js.map +1 -1
- package/cjs/utils/components/focus-boundary/FocusBoundary.d.ts +0 -1
- package/cjs/utils/components/focus-boundary/FocusBoundary.js +1 -1
- package/cjs/utils/components/focus-boundary/FocusBoundary.js.map +1 -1
- package/cjs/utils/components/link-anchor/LinkAnchor.js +10 -0
- package/cjs/utils/components/link-anchor/LinkAnchor.js.map +1 -1
- package/cjs/utils/helpers/className.js +1 -1
- package/cjs/utils/helpers/className.js.map +1 -1
- package/cjs/utils/helpers/focus.d.ts +3 -1
- package/cjs/utils/helpers/focus.js +2 -2
- package/cjs/utils/helpers/focus.js.map +1 -1
- package/cjs/utils/helpers/index.d.ts +9 -9
- package/cjs/utils/helpers/index.js +22 -23
- package/cjs/utils/helpers/index.js.map +1 -1
- package/cjs/utils/hooks/index.d.ts +13 -13
- package/cjs/utils/hooks/index.js +31 -28
- package/cjs/utils/hooks/index.js.map +1 -1
- package/cjs/utils/hooks/useScrollLock.js +41 -11
- package/cjs/utils/hooks/useScrollLock.js.map +1 -1
- package/esm/alert/base-alert/root/BaseAlertRoot.js +1 -2
- package/esm/alert/base-alert/root/BaseAlertRoot.js.map +1 -1
- package/esm/alert/info-card/index.d.ts +2 -2
- package/esm/alert/info-card/index.js +1 -1
- package/esm/alert/info-card/index.js.map +1 -1
- package/esm/alert/info-card/message/InfoCardMessage.d.ts +23 -0
- package/esm/alert/info-card/message/InfoCardMessage.js +37 -0
- package/esm/alert/info-card/message/InfoCardMessage.js.map +1 -0
- package/esm/alert/info-card/root/InfoCardRoot.d.ts +15 -2
- package/esm/alert/info-card/root/InfoCardRoot.js +3 -1
- package/esm/alert/info-card/root/InfoCardRoot.js.map +1 -1
- package/esm/data/drag-and-drop/drag-handler/DragAndDropDragHandler.d.ts +12 -0
- package/esm/data/drag-and-drop/drag-handler/DragAndDropDragHandler.js +51 -0
- package/esm/data/drag-and-drop/drag-handler/DragAndDropDragHandler.js.map +1 -0
- package/esm/data/drag-and-drop/item/DragAndDropItem.d.ts +27 -0
- package/esm/data/drag-and-drop/item/DragAndDropItem.js +46 -0
- package/esm/data/drag-and-drop/item/DragAndDropItem.js.map +1 -0
- package/esm/data/drag-and-drop/root/DragAndDrop.context.d.ts +16 -0
- package/esm/data/drag-and-drop/root/DragAndDrop.context.js +6 -0
- package/esm/data/drag-and-drop/root/DragAndDrop.context.js.map +1 -0
- package/esm/data/drag-and-drop/root/DragAndDropRoot.d.ts +36 -0
- package/esm/data/drag-and-drop/root/DragAndDropRoot.js +147 -0
- package/esm/data/drag-and-drop/root/DragAndDropRoot.js.map +1 -0
- package/esm/data/drag-and-drop/types.d.ts +4 -0
- package/esm/data/drag-and-drop/types.js +2 -0
- package/esm/data/drag-and-drop/types.js.map +1 -0
- package/esm/data/drag-and-drop-old/drag-handler/DataDragAndDropDragHandler.d.ts +22 -0
- package/esm/data/drag-and-drop-old/drag-handler/DataDragAndDropDragHandler.js +29 -0
- package/esm/data/drag-and-drop-old/drag-handler/DataDragAndDropDragHandler.js.map +1 -0
- package/esm/data/{drag-and-drop → drag-and-drop-old}/item/DataDragAndDropItem.js +2 -7
- package/esm/data/drag-and-drop-old/item/DataDragAndDropItem.js.map +1 -0
- package/esm/data/drag-and-drop-old/root/DataDragAndDrop.context.js.map +1 -0
- package/esm/data/{drag-and-drop → drag-and-drop-old}/root/DataDragAndDropRoot.d.ts +2 -2
- package/esm/data/{drag-and-drop → drag-and-drop-old}/root/DataDragAndDropRoot.js +5 -8
- package/esm/data/drag-and-drop-old/root/DataDragAndDropRoot.js.map +1 -0
- package/esm/data/table/empty-state/DataTableEmptyState.d.ts +5 -0
- package/esm/data/table/empty-state/DataTableEmptyState.js +21 -0
- package/esm/data/table/empty-state/DataTableEmptyState.js.map +1 -0
- package/esm/data/table/helpers/selection/getMultipleSelectProps.d.ts +14 -0
- package/esm/data/table/helpers/selection/getMultipleSelectProps.js +46 -0
- package/esm/data/table/helpers/selection/getMultipleSelectProps.js.map +1 -0
- package/esm/data/table/helpers/selection/getSingleSelectProps.d.ts +10 -0
- package/esm/data/table/helpers/selection/getSingleSelectProps.js +21 -0
- package/esm/data/table/helpers/selection/getSingleSelectProps.js.map +1 -0
- package/esm/data/table/helpers/selection/selection.types.d.ts +42 -0
- package/esm/data/table/helpers/selection/selection.types.js +2 -0
- package/esm/data/table/helpers/selection/selection.types.js.map +1 -0
- package/esm/data/table/helpers/table-focus.js +7 -1
- package/esm/data/table/helpers/table-focus.js.map +1 -1
- package/esm/data/table/helpers/table-keyboard.d.ts +0 -1
- package/esm/data/table/helpers/table-keyboard.js +2 -4
- package/esm/data/table/helpers/table-keyboard.js.map +1 -1
- package/esm/data/table/{root → hooks}/useTableKeyboardNav.js +2 -1
- package/esm/data/table/hooks/useTableKeyboardNav.js.map +1 -0
- package/esm/data/table/hooks/useTableSelection.d.ts +8 -0
- package/esm/data/table/hooks/useTableSelection.js +47 -0
- package/esm/data/table/hooks/useTableSelection.js.map +1 -0
- package/esm/data/table/loading-state/DataTableLoadingState.d.ts +5 -0
- package/esm/data/table/loading-state/DataTableLoadingState.js +21 -0
- package/esm/data/table/loading-state/DataTableLoadingState.js.map +1 -0
- package/esm/data/table/root/DataTable.types.d.ts +13 -0
- package/esm/data/table/root/DataTable.types.js +2 -0
- package/esm/data/table/root/DataTable.types.js.map +1 -0
- package/esm/data/table/root/DataTableAuto.d.ts +60 -0
- package/esm/data/table/root/DataTableAuto.js +77 -0
- package/esm/data/table/root/DataTableAuto.js.map +1 -0
- package/esm/data/table/root/DataTableRoot.context.d.ts +3 -2
- package/esm/data/table/root/DataTableRoot.context.js.map +1 -1
- package/esm/data/table/root/DataTableRoot.d.ts +30 -3
- package/esm/data/table/root/DataTableRoot.js +7 -3
- package/esm/data/table/root/DataTableRoot.js.map +1 -1
- package/esm/data/table/td/DataTableTd.d.ts +10 -0
- package/esm/data/table/td/DataTableTd.js +4 -2
- package/esm/data/table/td/DataTableTd.js.map +1 -1
- package/esm/data/table/th/DataTableTh.d.ts +10 -4
- package/esm/data/table/th/DataTableTh.js +25 -23
- package/esm/data/table/th/DataTableTh.js.map +1 -1
- package/esm/data/table/th/useTableColumnResize.d.ts +64 -0
- package/esm/data/table/th/useTableColumnResize.js +142 -0
- package/esm/data/table/th/useTableColumnResize.js.map +1 -0
- package/esm/data/table/thead/DataTableThead.context.d.ts +4 -0
- package/esm/data/table/thead/DataTableThead.context.js +8 -0
- package/esm/data/table/thead/DataTableThead.context.js.map +1 -0
- package/esm/data/table/thead/DataTableThead.js +3 -1
- package/esm/data/table/thead/DataTableThead.js.map +1 -1
- package/esm/data/table/tr/DataTableTr.js +4 -3
- package/esm/data/table/tr/DataTableTr.js.map +1 -1
- package/esm/data/token-filter/AutoSuggest.js +41 -10
- package/esm/data/token-filter/AutoSuggest.js.map +1 -1
- package/esm/data/token-filter/TokenFilter.d.ts +1 -0
- package/esm/data/token-filter/TokenFilter.js +1 -0
- package/esm/data/token-filter/TokenFilter.js.map +1 -1
- package/esm/data/toolbar/root/DataToolbarRoot.d.ts +6 -23
- package/esm/data/toolbar/root/DataToolbarRoot.js +9 -7
- package/esm/data/toolbar/root/DataToolbarRoot.js.map +1 -1
- package/esm/date/Date.Input.js +9 -10
- package/esm/date/Date.Input.js.map +1 -1
- package/esm/date/datepicker/hooks/useDatepicker.d.ts +12 -1
- package/esm/date/datepicker/hooks/useDatepicker.js +4 -3
- package/esm/date/datepicker/hooks/useDatepicker.js.map +1 -1
- package/esm/date/monthpicker/hooks/useMonthPicker.d.ts +11 -1
- package/esm/date/monthpicker/hooks/useMonthPicker.js +3 -2
- package/esm/date/monthpicker/hooks/useMonthPicker.js.map +1 -1
- package/esm/form/checkbox/CheckboxGroup.js +1 -1
- package/esm/form/checkbox/CheckboxGroup.js.map +1 -1
- package/esm/form/fieldset/Fieldset.d.ts +25 -5
- package/esm/form/fieldset/Fieldset.js +19 -2
- package/esm/form/fieldset/Fieldset.js.map +1 -1
- package/esm/form/radio/RadioGroup.js +1 -1
- package/esm/form/radio/RadioGroup.js.map +1 -1
- package/esm/index.d.ts +1 -1
- package/esm/index.js.map +1 -1
- package/esm/internal-header/InternalHeaderButton.d.ts +5 -0
- package/esm/internal-header/InternalHeaderButton.js +2 -2
- package/esm/internal-header/InternalHeaderButton.js.map +1 -1
- package/esm/read-more/ReadMore.d.ts +10 -0
- package/esm/read-more/ReadMore.js +4 -6
- package/esm/read-more/ReadMore.js.map +1 -1
- package/esm/types/index.d.ts +1 -1
- package/esm/types/index.js +1 -1
- package/esm/types/index.js.map +1 -1
- package/esm/utils/components/Listbox/group/ListboxGroup.js +2 -1
- package/esm/utils/components/Listbox/group/ListboxGroup.js.map +1 -1
- package/esm/utils/components/Listbox/input-slot/ListboxInputSlot.js +1 -1
- package/esm/utils/components/Listbox/input-slot/ListboxInputSlot.js.map +1 -1
- package/esm/utils/components/Listbox/option/ListboxOption.d.ts +24 -0
- package/esm/utils/components/Listbox/{item/ListboxItem.js → option/ListboxOption.js} +7 -7
- package/esm/utils/components/Listbox/option/ListboxOption.js.map +1 -0
- package/esm/utils/components/Listbox/options/ListboxOptions.d.ts +8 -0
- package/esm/utils/components/Listbox/{list/ListboxList.js → options/ListboxOptions.js} +8 -8
- package/esm/utils/components/Listbox/options/ListboxOptions.js.map +1 -0
- package/esm/utils/components/Listbox/root/ListboxRoot.d.ts +6 -6
- package/esm/utils/components/Listbox/root/ListboxRoot.js +29 -29
- package/esm/utils/components/Listbox/root/ListboxRoot.js.map +1 -1
- package/esm/utils/components/Listbox/root/domHelpers.d.ts +3 -3
- package/esm/utils/components/Listbox/root/domHelpers.js +7 -7
- package/esm/utils/components/Listbox/root/domHelpers.js.map +1 -1
- package/esm/utils/components/floating/Floating.d.ts +1 -1
- package/esm/utils/components/floating/Floating.js +1 -1
- package/esm/utils/components/floating/Floating.js.map +1 -1
- package/esm/utils/components/focus-boundary/FocusBoundary.d.ts +0 -1
- package/esm/utils/components/focus-boundary/FocusBoundary.js +1 -1
- package/esm/utils/components/focus-boundary/FocusBoundary.js.map +1 -1
- package/esm/utils/components/link-anchor/LinkAnchor.js +10 -0
- package/esm/utils/components/link-anchor/LinkAnchor.js.map +1 -1
- package/esm/utils/helpers/className.js +1 -1
- package/esm/utils/helpers/className.js.map +1 -1
- package/esm/utils/helpers/focus.d.ts +3 -1
- package/esm/utils/helpers/focus.js +2 -2
- package/esm/utils/helpers/focus.js.map +1 -1
- package/esm/utils/helpers/index.d.ts +9 -9
- package/esm/utils/helpers/index.js +9 -9
- package/esm/utils/helpers/index.js.map +1 -1
- package/esm/utils/hooks/index.d.ts +13 -13
- package/esm/utils/hooks/index.js +13 -13
- package/esm/utils/hooks/index.js.map +1 -1
- package/esm/utils/hooks/useScrollLock.js +41 -11
- package/esm/utils/hooks/useScrollLock.js.map +1 -1
- package/package.json +6 -6
- package/src/alert/base-alert/root/BaseAlertRoot.tsx +1 -1
- package/src/alert/info-card/index.ts +2 -0
- package/src/alert/info-card/message/InfoCardMessage.tsx +48 -0
- package/src/alert/info-card/root/InfoCardRoot.tsx +20 -1
- package/src/data/drag-and-drop/drag-handler/DragAndDropDragHandler.tsx +90 -0
- package/src/data/drag-and-drop/item/DragAndDropItem.tsx +71 -0
- package/src/data/drag-and-drop/root/DragAndDrop.context.tsx +25 -0
- package/src/data/drag-and-drop/root/DragAndDropRoot.tsx +245 -0
- package/src/data/drag-and-drop/types.ts +4 -0
- package/src/data/drag-and-drop-old/drag-handler/DataDragAndDropDragHandler.tsx +104 -0
- package/src/data/{drag-and-drop → drag-and-drop-old}/item/DataDragAndDropItem.tsx +6 -33
- package/src/data/{drag-and-drop → drag-and-drop-old}/root/DataDragAndDrop.context.tsx +2 -0
- package/src/data/{drag-and-drop → drag-and-drop-old}/root/DataDragAndDropRoot.tsx +6 -8
- package/src/data/table/empty-state/DataTableEmptyState.tsx +26 -0
- package/src/data/table/helpers/selection/getMultipleSelectProps.ts +70 -0
- package/src/data/table/helpers/selection/getSingleSelectProps.ts +33 -0
- package/src/data/table/helpers/selection/selection.types.ts +56 -0
- package/src/data/table/helpers/table-focus.ts +10 -1
- package/src/data/table/helpers/table-keyboard.ts +2 -6
- package/src/data/table/hooks/__tests__/useTableSelection.test.ts +327 -0
- package/src/data/table/{root → hooks}/useTableKeyboardNav.ts +2 -1
- package/src/data/table/hooks/useTableSelection.ts +78 -0
- package/src/data/table/loading-state/DataTableLoadingState.tsx +26 -0
- package/src/data/table/root/DataTable.types.ts +16 -0
- package/src/data/table/root/DataTableAuto.tsx +205 -0
- package/src/data/table/root/DataTableRoot.context.ts +3 -2
- package/src/data/table/root/DataTableRoot.tsx +46 -3
- package/src/data/table/td/DataTableTd.tsx +14 -1
- package/src/data/table/th/DataTableTh.tsx +48 -36
- package/src/data/table/th/useTableColumnResize.ts +276 -0
- package/src/data/table/thead/DataTableThead.context.ts +10 -0
- package/src/data/table/thead/DataTableThead.tsx +8 -5
- package/src/data/table/tr/DataTableTr.tsx +8 -3
- package/src/data/token-filter/AutoSuggest.tsx +76 -15
- package/src/data/token-filter/TokenFilter.tsx +1 -0
- package/src/data/toolbar/root/DataToolbarRoot.tsx +29 -32
- package/src/date/Date.Input.tsx +18 -17
- package/src/date/datepicker/hooks/useDatepicker.tsx +16 -6
- package/src/date/monthpicker/hooks/useMonthPicker.tsx +14 -5
- package/src/form/checkbox/CheckboxGroup.tsx +1 -1
- package/src/form/fieldset/Fieldset.tsx +31 -7
- package/src/form/radio/RadioGroup.tsx +1 -1
- package/src/index.ts +1 -0
- package/src/internal-header/InternalHeaderButton.tsx +18 -9
- package/src/read-more/ReadMore.tsx +15 -16
- package/src/types/index.ts +1 -1
- package/src/utils/components/Listbox/group/ListboxGroup.tsx +9 -2
- package/src/utils/components/Listbox/input-slot/ListboxInputSlot.tsx +1 -1
- package/src/utils/components/Listbox/{item/ListboxItem.tsx → option/ListboxOption.tsx} +14 -14
- package/src/utils/components/Listbox/{list/ListboxList.tsx → options/ListboxOptions.tsx} +10 -10
- package/src/utils/components/Listbox/root/ListboxRoot.tsx +31 -31
- package/src/utils/components/Listbox/root/domHelpers.ts +8 -7
- package/src/utils/components/floating/Floating.tsx +2 -2
- package/src/utils/components/focus-boundary/FocusBoundary.tsx +1 -2
- package/src/utils/components/link-anchor/LinkAnchor.tsx +11 -0
- package/src/utils/helpers/className.ts +1 -1
- package/src/utils/helpers/focus.ts +5 -2
- package/src/utils/helpers/index.ts +9 -9
- package/src/utils/hooks/index.ts +20 -13
- package/src/utils/hooks/useScrollLock.ts +57 -13
- package/cjs/data/action-bar/root/DataActionBarRoot.d.ts +0 -27
- package/cjs/data/action-bar/root/DataActionBarRoot.js +0 -49
- package/cjs/data/action-bar/root/DataActionBarRoot.js.map +0 -1
- package/cjs/data/drag-and-drop/item/DataDragAndDropItem.js.map +0 -1
- package/cjs/data/drag-and-drop/root/DataDragAndDrop.context.js.map +0 -1
- package/cjs/data/drag-and-drop/root/DataDragAndDropRoot.js.map +0 -1
- package/cjs/data/table/root/useTableKeyboardNav.js.map +0 -1
- package/cjs/utils/components/Listbox/item/ListboxItem.d.ts +0 -24
- package/cjs/utils/components/Listbox/item/ListboxItem.js.map +0 -1
- package/cjs/utils/components/Listbox/list/ListboxList.d.ts +0 -8
- package/cjs/utils/components/Listbox/list/ListboxList.js.map +0 -1
- package/esm/data/action-bar/root/DataActionBarRoot.d.ts +0 -27
- package/esm/data/action-bar/root/DataActionBarRoot.js +0 -43
- package/esm/data/action-bar/root/DataActionBarRoot.js.map +0 -1
- package/esm/data/drag-and-drop/item/DataDragAndDropItem.js.map +0 -1
- package/esm/data/drag-and-drop/root/DataDragAndDrop.context.js.map +0 -1
- package/esm/data/drag-and-drop/root/DataDragAndDropRoot.js.map +0 -1
- package/esm/data/table/root/useTableKeyboardNav.js.map +0 -1
- package/esm/utils/components/Listbox/item/ListboxItem.d.ts +0 -24
- package/esm/utils/components/Listbox/item/ListboxItem.js.map +0 -1
- package/esm/utils/components/Listbox/list/ListboxList.d.ts +0 -8
- package/esm/utils/components/Listbox/list/ListboxList.js.map +0 -1
- package/src/data/action-bar/root/DataActionBarRoot.tsx +0 -59
- /package/cjs/data/{drag-and-drop → drag-and-drop-old}/item/DataDragAndDropItem.d.ts +0 -0
- /package/cjs/data/{drag-and-drop → drag-and-drop-old}/root/DataDragAndDrop.context.d.ts +0 -0
- /package/cjs/data/{drag-and-drop → drag-and-drop-old}/root/DataDragAndDrop.context.js +0 -0
- /package/cjs/data/table/{root → hooks}/useTableKeyboardNav.d.ts +0 -0
- /package/esm/data/{drag-and-drop → drag-and-drop-old}/item/DataDragAndDropItem.d.ts +0 -0
- /package/esm/data/{drag-and-drop → drag-and-drop-old}/root/DataDragAndDrop.context.d.ts +0 -0
- /package/esm/data/{drag-and-drop → drag-and-drop-old}/root/DataDragAndDrop.context.js +0 -0
- /package/esm/data/table/{root → hooks}/useTableKeyboardNav.d.ts +0 -0
|
@@ -4,6 +4,34 @@ import { Timeout } from "./useTimeout.js";
|
|
|
4
4
|
let originalHtmlStyles = {};
|
|
5
5
|
let originalBodyStyles = {};
|
|
6
6
|
let originalHtmlScrollBehavior = "";
|
|
7
|
+
function supportsStableScrollbarGutter(referenceElement) {
|
|
8
|
+
const supported = typeof CSS !== "undefined" &&
|
|
9
|
+
CSS.supports &&
|
|
10
|
+
CSS.supports("scrollbar-gutter", "stable");
|
|
11
|
+
if (!supported || typeof document === "undefined") {
|
|
12
|
+
return false;
|
|
13
|
+
}
|
|
14
|
+
/*
|
|
15
|
+
* We need to do aditional checks since the scenario:
|
|
16
|
+
* - Scrollbar is edited with `::-webkit-scrollbar`
|
|
17
|
+
* - MacOS setting: Show scroll bars -> Automatically based on mouse or tracked
|
|
18
|
+
* Causes the calculation of scrollbar width to be incorrect, and thus the scrollbar gutter to not work as intended.
|
|
19
|
+
*/
|
|
20
|
+
const doc = ownerDocument(referenceElement);
|
|
21
|
+
const html = doc.documentElement;
|
|
22
|
+
const body = doc.body;
|
|
23
|
+
const scrollContainer = isOverflowElement(html) ? html : body;
|
|
24
|
+
const originalScrollContainerOverflowY = scrollContainer.style.overflowY;
|
|
25
|
+
const originalHtmlStyleGutter = html.style.scrollbarGutter;
|
|
26
|
+
html.style.scrollbarGutter = "stable";
|
|
27
|
+
scrollContainer.style.overflowY = "scroll";
|
|
28
|
+
const before = scrollContainer.offsetWidth;
|
|
29
|
+
scrollContainer.style.overflowY = "hidden";
|
|
30
|
+
const after = scrollContainer.offsetWidth;
|
|
31
|
+
scrollContainer.style.overflowY = originalScrollContainerOverflowY;
|
|
32
|
+
html.style.scrollbarGutter = originalHtmlStyleGutter;
|
|
33
|
+
return before === after;
|
|
34
|
+
}
|
|
7
35
|
function hasInsetScrollbars(referenceElement) {
|
|
8
36
|
if (typeof document === "undefined") {
|
|
9
37
|
return false;
|
|
@@ -48,9 +76,11 @@ function preventScrollStandard(referenceElement) {
|
|
|
48
76
|
*/
|
|
49
77
|
function lockScroll() {
|
|
50
78
|
/* DOM reads: */
|
|
51
|
-
var _a;
|
|
52
79
|
const htmlStyles = win.getComputedStyle(html);
|
|
53
80
|
const bodyStyles = win.getComputedStyle(body);
|
|
81
|
+
const htmlScrollbarGutterValue = htmlStyles.scrollbarGutter || "";
|
|
82
|
+
const hasBothEdges = htmlScrollbarGutterValue.includes("both-edges");
|
|
83
|
+
const scrollbarGutterValue = hasBothEdges ? "stable both-edges" : "stable";
|
|
54
84
|
scrollTop = html.scrollTop;
|
|
55
85
|
scrollLeft = html.scrollLeft;
|
|
56
86
|
originalHtmlStyles = {
|
|
@@ -84,22 +114,22 @@ function preventScrollStandard(referenceElement) {
|
|
|
84
114
|
/**
|
|
85
115
|
* Check support for stable scrollbar gutter to avoid layout shift when scrollbars appear/disappear.
|
|
86
116
|
*/
|
|
87
|
-
const
|
|
88
|
-
((_a = CSS.supports) === null || _a === void 0 ? void 0 : _a.call(CSS, "scrollbar-gutter", "stable"));
|
|
117
|
+
const supportsScrollbarGutter = supportsStableScrollbarGutter(referenceElement);
|
|
89
118
|
/*
|
|
90
119
|
* DOM writes:
|
|
91
120
|
* Do not read the DOM past this point!
|
|
92
121
|
*/
|
|
122
|
+
if (supportsScrollbarGutter) {
|
|
123
|
+
const elementToLock = isOverflowElement(html) ? html : body;
|
|
124
|
+
html.style.scrollbarGutter = scrollbarGutterValue;
|
|
125
|
+
elementToLock.style.overflowY = "hidden";
|
|
126
|
+
elementToLock.style.overflowX = "hidden";
|
|
127
|
+
return;
|
|
128
|
+
}
|
|
93
129
|
Object.assign(html.style, {
|
|
94
130
|
scrollbarGutter: "stable",
|
|
95
|
-
overflowY:
|
|
96
|
-
|
|
97
|
-
? "scroll"
|
|
98
|
-
: "hidden",
|
|
99
|
-
overflowX: !supportsStableScrollbarGutter &&
|
|
100
|
-
(isScrollableX || hasConstantOverflowX)
|
|
101
|
-
? "scroll"
|
|
102
|
-
: "hidden",
|
|
131
|
+
overflowY: isScrollableY || hasConstantOverflowY ? "scroll" : "hidden",
|
|
132
|
+
overflowX: isScrollableX || hasConstantOverflowX ? "scroll" : "hidden",
|
|
103
133
|
});
|
|
104
134
|
Object.assign(body.style, {
|
|
105
135
|
/*
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"useScrollLock.js","sourceRoot":"","sources":["../../../src/utils/hooks/useScrollLock.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAC7D,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AACzE,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAEvC,IAAI,kBAAkB,GAAiC,EAAE,CAAC;AAC1D,IAAI,kBAAkB,GAAiC,EAAE,CAAC;AAC1D,IAAI,0BAA0B,GAAG,EAAE,CAAC;AAEpC,SAAS,kBAAkB,CAAC,gBAAgC;IAC1D,IAAI,OAAO,QAAQ,KAAK,WAAW,EAAE,CAAC;QACpC,OAAO,KAAK,CAAC;IACf,CAAC;IACD,MAAM,GAAG,GAAG,aAAa,CAAC,gBAAgB,CAAC,CAAC;IAC5C,MAAM,GAAG,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC;IAC7B,OAAO,GAAG,CAAC,UAAU,GAAG,GAAG,CAAC,eAAe,CAAC,WAAW,GAAG,CAAC,CAAC;AAC9D,CAAC;AAED,SAAS,kBAAkB,CAAC,gBAAgC;IAC1D,MAAM,GAAG,GAAG,aAAa,CAAC,gBAAgB,CAAC,CAAC;IAC5C,MAAM,IAAI,GAAG,GAAG,CAAC,eAAe,CAAC;IACjC,MAAM,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC;IAEtB;;;;;OAKG;IACH,MAAM,aAAa,GAAG,iBAAiB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;IAC5D,MAAM,gBAAgB,GAAG,aAAa,CAAC,KAAK,CAAC,QAAQ,CAAC;IACtD,aAAa,CAAC,KAAK,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAExC,OAAO,GAAG,EAAE;QACV,aAAa,CAAC,KAAK,CAAC,QAAQ,GAAG,gBAAgB,CAAC;IAClD,CAAC,CAAC;AACJ,CAAC;AAED,SAAS,qBAAqB,CAAC,gBAAgC;;IAC7D,MAAM,GAAG,GAAG,aAAa,CAAC,gBAAgB,CAAC,CAAC;IAC5C,MAAM,IAAI,GAAG,GAAG,CAAC,eAAe,CAAC;IACjC,MAAM,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC;IACtB,MAAM,GAAG,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC;IAE9B,IAAI,SAAS,GAAG,CAAC,CAAC;IAClB,IAAI,UAAU,GAAG,CAAC,CAAC;IACnB,IAAI,SAAS,GAAG,CAAC,CAAC;IAElB,4FAA4F;IAC5F,IAAI,QAAQ,IAAI,CAAC,MAAA,MAAA,GAAG,CAAC,cAAc,0CAAE,KAAK,mCAAI,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC;QACvD,OAAO,GAAG,EAAE,GAAE,CAAC,CAAC;IAClB,CAAC;IAED;;;OAGG;IACH,SAAS,UAAU;QACjB,gBAAgB
|
|
1
|
+
{"version":3,"file":"useScrollLock.js","sourceRoot":"","sources":["../../../src/utils/hooks/useScrollLock.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,qBAAqB,EAAE,MAAM,sBAAsB,CAAC;AAC7D,OAAO,EAAE,KAAK,EAAE,QAAQ,EAAE,aAAa,EAAE,WAAW,EAAE,MAAM,YAAY,CAAC;AACzE,OAAO,EAAE,OAAO,EAAE,MAAM,cAAc,CAAC;AAEvC,IAAI,kBAAkB,GAAiC,EAAE,CAAC;AAC1D,IAAI,kBAAkB,GAAiC,EAAE,CAAC;AAC1D,IAAI,0BAA0B,GAAG,EAAE,CAAC;AAEpC,SAAS,6BAA6B,CAAC,gBAAgC;IACrE,MAAM,SAAS,GACb,OAAO,GAAG,KAAK,WAAW;QAC1B,GAAG,CAAC,QAAQ;QACZ,GAAG,CAAC,QAAQ,CAAC,kBAAkB,EAAE,QAAQ,CAAC,CAAC;IAE7C,IAAI,CAAC,SAAS,IAAI,OAAO,QAAQ,KAAK,WAAW,EAAE,CAAC;QAClD,OAAO,KAAK,CAAC;IACf,CAAC;IAED;;;;;OAKG;IAEH,MAAM,GAAG,GAAG,aAAa,CAAC,gBAAgB,CAAC,CAAC;IAC5C,MAAM,IAAI,GAAG,GAAG,CAAC,eAAe,CAAC;IACjC,MAAM,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC;IAEtB,MAAM,eAAe,GAAG,iBAAiB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;IAE9D,MAAM,gCAAgC,GAAG,eAAe,CAAC,KAAK,CAAC,SAAS,CAAC;IACzE,MAAM,uBAAuB,GAAG,IAAI,CAAC,KAAK,CAAC,eAAe,CAAC;IAE3D,IAAI,CAAC,KAAK,CAAC,eAAe,GAAG,QAAQ,CAAC;IAEtC,eAAe,CAAC,KAAK,CAAC,SAAS,GAAG,QAAQ,CAAC;IAC3C,MAAM,MAAM,GAAG,eAAe,CAAC,WAAW,CAAC;IAE3C,eAAe,CAAC,KAAK,CAAC,SAAS,GAAG,QAAQ,CAAC;IAC3C,MAAM,KAAK,GAAG,eAAe,CAAC,WAAW,CAAC;IAE1C,eAAe,CAAC,KAAK,CAAC,SAAS,GAAG,gCAAgC,CAAC;IACnE,IAAI,CAAC,KAAK,CAAC,eAAe,GAAG,uBAAuB,CAAC;IAErD,OAAO,MAAM,KAAK,KAAK,CAAC;AAC1B,CAAC;AAED,SAAS,kBAAkB,CAAC,gBAAgC;IAC1D,IAAI,OAAO,QAAQ,KAAK,WAAW,EAAE,CAAC;QACpC,OAAO,KAAK,CAAC;IACf,CAAC;IACD,MAAM,GAAG,GAAG,aAAa,CAAC,gBAAgB,CAAC,CAAC;IAC5C,MAAM,GAAG,GAAG,WAAW,CAAC,GAAG,CAAC,CAAC;IAC7B,OAAO,GAAG,CAAC,UAAU,GAAG,GAAG,CAAC,eAAe,CAAC,WAAW,GAAG,CAAC,CAAC;AAC9D,CAAC;AAED,SAAS,kBAAkB,CAAC,gBAAgC;IAC1D,MAAM,GAAG,GAAG,aAAa,CAAC,gBAAgB,CAAC,CAAC;IAC5C,MAAM,IAAI,GAAG,GAAG,CAAC,eAAe,CAAC;IACjC,MAAM,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC;IAEtB;;;;;OAKG;IACH,MAAM,aAAa,GAAG,iBAAiB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;IAC5D,MAAM,gBAAgB,GAAG,aAAa,CAAC,KAAK,CAAC,QAAQ,CAAC;IACtD,aAAa,CAAC,KAAK,CAAC,QAAQ,GAAG,QAAQ,CAAC;IAExC,OAAO,GAAG,EAAE;QACV,aAAa,CAAC,KAAK,CAAC,QAAQ,GAAG,gBAAgB,CAAC;IAClD,CAAC,CAAC;AACJ,CAAC;AAED,SAAS,qBAAqB,CAAC,gBAAgC;;IAC7D,MAAM,GAAG,GAAG,aAAa,CAAC,gBAAgB,CAAC,CAAC;IAC5C,MAAM,IAAI,GAAG,GAAG,CAAC,eAAe,CAAC;IACjC,MAAM,IAAI,GAAG,GAAG,CAAC,IAAI,CAAC;IACtB,MAAM,GAAG,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC;IAE9B,IAAI,SAAS,GAAG,CAAC,CAAC;IAClB,IAAI,UAAU,GAAG,CAAC,CAAC;IACnB,IAAI,SAAS,GAAG,CAAC,CAAC;IAElB,4FAA4F;IAC5F,IAAI,QAAQ,IAAI,CAAC,MAAA,MAAA,GAAG,CAAC,cAAc,0CAAE,KAAK,mCAAI,CAAC,CAAC,KAAK,CAAC,EAAE,CAAC;QACvD,OAAO,GAAG,EAAE,GAAE,CAAC,CAAC;IAClB,CAAC;IAED;;;OAGG;IACH,SAAS,UAAU;QACjB,gBAAgB;QAEhB,MAAM,UAAU,GAAG,GAAG,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC;QAC9C,MAAM,UAAU,GAAG,GAAG,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC;QAC9C,MAAM,wBAAwB,GAAG,UAAU,CAAC,eAAe,IAAI,EAAE,CAAC;QAClE,MAAM,YAAY,GAAG,wBAAwB,CAAC,QAAQ,CAAC,YAAY,CAAC,CAAC;QACrE,MAAM,oBAAoB,GAAG,YAAY,CAAC,CAAC,CAAC,mBAAmB,CAAC,CAAC,CAAC,QAAQ,CAAC;QAE3E,SAAS,GAAG,IAAI,CAAC,SAAS,CAAC;QAC3B,UAAU,GAAG,IAAI,CAAC,UAAU,CAAC;QAE7B,kBAAkB,GAAG;YACnB,eAAe,EAAE,IAAI,CAAC,KAAK,CAAC,eAAe;YAC3C,SAAS,EAAE,IAAI,CAAC,KAAK,CAAC,SAAS;YAC/B,SAAS,EAAE,IAAI,CAAC,KAAK,CAAC,SAAS;SAChC,CAAC;QACF,0BAA0B,GAAG,IAAI,CAAC,KAAK,CAAC,cAAc,CAAC;QAEvD,kBAAkB,GAAG;YACnB,QAAQ,EAAE,IAAI,CAAC,KAAK,CAAC,QAAQ;YAC7B,MAAM,EAAE,IAAI,CAAC,KAAK,CAAC,MAAM;YACzB,KAAK,EAAE,IAAI,CAAC,KAAK,CAAC,KAAK;YACvB,SAAS,EAAE,IAAI,CAAC,KAAK,CAAC,SAAS;YAC/B,SAAS,EAAE,IAAI,CAAC,KAAK,CAAC,SAAS;YAC/B,SAAS,EAAE,IAAI,CAAC,KAAK,CAAC,SAAS;YAC/B,cAAc,EAAE,IAAI,CAAC,KAAK,CAAC,cAAc;SAC1C,CAAC;QAEF,MAAM,aAAa,GAAG,IAAI,CAAC,YAAY,GAAG,IAAI,CAAC,YAAY,CAAC;QAC5D,MAAM,aAAa,GAAG,IAAI,CAAC,WAAW,GAAG,IAAI,CAAC,WAAW,CAAC;QAC1D,MAAM,oBAAoB,GACxB,UAAU,CAAC,SAAS,KAAK,QAAQ,IAAI,UAAU,CAAC,SAAS,KAAK,QAAQ,CAAC;QACzE,MAAM,oBAAoB,GACxB,UAAU,CAAC,SAAS,KAAK,QAAQ,IAAI,UAAU,CAAC,SAAS,KAAK,QAAQ,CAAC;QAEzE,uCAAuC;QACvC,MAAM,cAAc,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,UAAU,GAAG,IAAI,CAAC,WAAW,CAAC,CAAC;QACtE,MAAM,eAAe,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,GAAG,CAAC,WAAW,GAAG,IAAI,CAAC,YAAY,CAAC,CAAC;QAEzE;;;WAGG;QACH,MAAM,OAAO,GACX,UAAU,CAAC,UAAU,CAAC,SAAS,CAAC,GAAG,UAAU,CAAC,UAAU,CAAC,YAAY,CAAC,CAAC;QACzE,MAAM,OAAO,GACX,UAAU,CAAC,UAAU,CAAC,UAAU,CAAC,GAAG,UAAU,CAAC,UAAU,CAAC,WAAW,CAAC,CAAC;QAEzE;;WAEG;QACH,MAAM,uBAAuB,GAC3B,6BAA6B,CAAC,gBAAgB,CAAC,CAAC;QAElD;;;WAGG;QAEH,IAAI,uBAAuB,EAAE,CAAC;YAC5B,MAAM,aAAa,GAAG,iBAAiB,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC;YAE5D,IAAI,CAAC,KAAK,CAAC,eAAe,GAAG,oBAAoB,CAAC;YAClD,aAAa,CAAC,KAAK,CAAC,SAAS,GAAG,QAAQ,CAAC;YACzC,aAAa,CAAC,KAAK,CAAC,SAAS,GAAG,QAAQ,CAAC;YACzC,OAAO;QACT,CAAC;QAED,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE;YACxB,eAAe,EAAE,QAAQ;YACzB,SAAS,EAAE,aAAa,IAAI,oBAAoB,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ;YACtE,SAAS,EAAE,aAAa,IAAI,oBAAoB,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC,CAAC,QAAQ;SACvE,CAAC,CAAC;QAEH,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE;YACxB;;eAEG;YACH,QAAQ,EAAE,UAAU;YACpB;;eAEG;YACH,MAAM,EACJ,OAAO,IAAI,eAAe;gBACxB,CAAC,CAAC,iBAAiB,OAAO,GAAG,eAAe,KAAK;gBACjD,CAAC,CAAC,QAAQ;YACd;;eAEG;YACH,KAAK,EACH,OAAO,IAAI,cAAc;gBACvB,CAAC,CAAC,gBAAgB,OAAO,GAAG,cAAc,KAAK;gBAC/C,CAAC,CAAC,OAAO;YACb;;eAEG;YACH,SAAS,EAAE,YAAY;YACvB;;eAEG;YACH,QAAQ,EAAE,QAAQ;YAClB;;eAEG;YACH,cAAc,EAAE,OAAO;SACxB,CAAC,CAAC;QAEH,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAC3B,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,IAAI,CAAC,YAAY,CAAC,0BAA0B,EAAE,EAAE,CAAC,CAAC;QAClD,IAAI,CAAC,KAAK,CAAC,cAAc,GAAG,OAAO,CAAC;IACtC,CAAC;IAED;;OAEG;IACH,SAAS,OAAO;QACd,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,kBAAkB,CAAC,CAAC;QAC9C,MAAM,CAAC,MAAM,CAAC,IAAI,CAAC,KAAK,EAAE,kBAAkB,CAAC,CAAC;QAC9C,IAAI,CAAC,SAAS,GAAG,SAAS,CAAC;QAC3B,IAAI,CAAC,UAAU,GAAG,UAAU,CAAC;QAC7B,IAAI,CAAC,eAAe,CAAC,0BAA0B,CAAC,CAAC;QACjD,IAAI,CAAC,KAAK,CAAC,cAAc,GAAG,0BAA0B,CAAC;IACzD,CAAC;IAED;;OAEG;IACH,SAAS,YAAY;QACnB,OAAO,EAAE,CAAC;QACV,IAAI,SAAS,EAAE,CAAC;YACd,oBAAoB,CAAC,SAAS,CAAC,CAAC;QAClC,CAAC;QAED;;WAEG;QACH,SAAS,GAAG,qBAAqB,CAAC,UAAU,CAAC,CAAC;IAChD,CAAC;IAED,UAAU,EAAE,CAAC;IACb,GAAG,CAAC,gBAAgB,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC;IAE7C,OAAO,GAAG,EAAE;QACV,IAAI,SAAS,EAAE,CAAC;YACd,oBAAoB,CAAC,SAAS,CAAC,CAAC;QAClC,CAAC;QACD,OAAO,EAAE,CAAC;QACV,GAAG,CAAC,mBAAmB,CAAC,QAAQ,EAAE,YAAY,CAAC,CAAC;IAClD,CAAC,CAAC;AACJ,CAAC;AAED,MAAM,YAAY;IAAlB;QACE,cAAS,GAAG,CAAC,CAAC;QACd,YAAO,GAAwB,IAAI,CAAC;QACpC,gBAAW,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;QAC/B,kBAAa,GAAG,OAAO,CAAC,MAAM,EAAE,CAAC;QAkBjC;;;;WAIG;QACH,YAAO,GAAG,GAAG,EAAE;YACb,IAAI,CAAC,SAAS,IAAI,CAAC,CAAC;YACpB,IAAI,IAAI,CAAC,SAAS,KAAK,CAAC,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;gBACzC,IAAI,CAAC,aAAa,CAAC,KAAK,CAAC,CAAC,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;YAC3C,CAAC;QACH,CAAC,CAAC;QAEM,WAAM,GAAG,GAAG,EAAE;;YACpB,IAAI,IAAI,CAAC,SAAS,KAAK,CAAC,IAAI,IAAI,CAAC,OAAO,EAAE,CAAC;gBACzC,MAAA,IAAI,CAAC,OAAO,oDAAI,CAAC;gBACjB,IAAI,CAAC,OAAO,GAAG,IAAI,CAAC;YACtB,CAAC;QACH,CAAC,CAAC;IA8BJ,CAAC;IA/DC;;;;OAIG;IACH,OAAO,CAAC,gBAAgC;QACtC,IAAI,CAAC,SAAS,IAAI,CAAC,CAAC;QACpB,IAAI,IAAI,CAAC,SAAS,KAAK,CAAC,IAAI,IAAI,CAAC,OAAO,KAAK,IAAI,EAAE,CAAC;YAClD;;eAEG;YACH,IAAI,CAAC,WAAW,CAAC,KAAK,CAAC,CAAC,EAAE,GAAG,EAAE,CAAC,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC;QAC/D,CAAC;QACD,OAAO,IAAI,CAAC,OAAO,CAAC;IACtB,CAAC;IAqBO,IAAI,CAAC,gBAAgC;QAC3C,IAAI,IAAI,CAAC,SAAS,KAAK,CAAC,IAAI,IAAI,CAAC,OAAO,KAAK,IAAI,EAAE,CAAC;YAClD,OAAO;QACT,CAAC;QAED,MAAM,GAAG,GAAG,aAAa,CAAC,gBAAgB,CAAC,CAAC;QAC5C,MAAM,IAAI,GAAG,GAAG,CAAC,eAAe,CAAC;QACjC,MAAM,aAAa,GAAG,WAAW,CAAC,IAAI,CAAC,CAAC,gBAAgB,CAAC,IAAI,CAAC,CAAC,SAAS,CAAC;QAEzE,iFAAiF;QACjF,IAAI,aAAa,KAAK,QAAQ,IAAI,aAAa,KAAK,MAAM,EAAE,CAAC;YAC3D,IAAI,CAAC,OAAO,GAAG,GAAG,EAAE,GAAE,CAAC,CAAC;YACxB,OAAO;QACT,CAAC;QAED,MAAM,kBAAkB,GAAG,KAAK,IAAI,CAAC,kBAAkB,CAAC,gBAAgB,CAAC,CAAC;QAE1E;;;;;;WAMG;QACH,IAAI,CAAC,OAAO,GAAG,kBAAkB;YAC/B,CAAC,CAAC,kBAAkB,CAAC,gBAAgB,CAAC;YACtC,CAAC,CAAC,qBAAqB,CAAC,gBAAgB,CAAC,CAAC;IAC9C,CAAC;CACF;AAED,MAAM,aAAa,GAAG,IAAI,YAAY,EAAE,CAAC;AAEzC;;;GAGG;AACH,SAAS,aAAa,CAAC,MAKtB;IACC,MAAM,EAAE,OAAO,GAAG,IAAI,EAAE,OAAO,EAAE,IAAI,EAAE,gBAAgB,GAAG,IAAI,EAAE,GAAG,MAAM,CAAC;IAE1E;;;;;;;OAOG;IACH,qBAAqB,CAAC,GAAG,EAAE;QACzB,IAAI,OAAO,IAAI,QAAQ,IAAI,OAAO,IAAI,CAAC,IAAI,EAAE,CAAC;YAC5C,MAAM,GAAG,GAAG,aAAa,CAAC,gBAAgB,CAAC,CAAC;YAC5C,MAAM,kBAAkB,GAAG,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,CAAC;YACrD,MAAM,wBAAwB,GAAG,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,gBAAgB,CAAC;YACjE,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,GAAG,MAAM,CAAC;YACnC,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,gBAAgB,GAAG,MAAM,CAAC;YAEzC,OAAO,GAAG,EAAE;gBACV,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,UAAU,GAAG,kBAAkB,CAAC;gBAC/C,GAAG,CAAC,IAAI,CAAC,KAAK,CAAC,gBAAgB,GAAG,wBAAwB,CAAC;YAC7D,CAAC,CAAC;QACJ,CAAC;QACD,OAAO,SAAS,CAAC;IACnB,CAAC,EAAE,CAAC,OAAO,EAAE,OAAO,EAAE,IAAI,EAAE,gBAAgB,CAAC,CAAC,CAAC;IAE/C,qBAAqB,CAAC,GAAG,EAAE;QACzB,IAAI,CAAC,OAAO,EAAE,CAAC;YACb,OAAO,SAAS,CAAC;QACnB,CAAC;QAED,OAAO,aAAa,CAAC,OAAO,CAAC,gBAAgB,CAAC,CAAC;IACjD,CAAC,EAAE,CAAC,OAAO,EAAE,gBAAgB,CAAC,CAAC,CAAC;AAClC,CAAC;AAED,MAAM,4BAA4B,GAAG,IAAI,GAAG,CAAC,CAAC,QAAQ,EAAE,UAAU,CAAC,CAAC,CAAC;AAErE,SAAS,iBAAiB,CAAC,OAAgB;IACzC,MAAM,EAAE,QAAQ,EAAE,SAAS,EAAE,SAAS,EAAE,OAAO,EAAE,GAAG,gBAAgB,CAAC,OAAO,CAAC,CAAC;IAC9E,OAAO,CACL,iCAAiC,CAAC,IAAI,CAAC,QAAQ,GAAG,SAAS,GAAG,SAAS,CAAC;QACxE,CAAC,4BAA4B,CAAC,GAAG,CAAC,OAAO,CAAC,CAC3C,CAAC;AACJ,CAAC;AAED,OAAO,EAAE,aAAa,EAAE,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@navikt/ds-react",
|
|
3
|
-
"version": "8.
|
|
3
|
+
"version": "8.9.0",
|
|
4
4
|
"description": "React components from the Norwegian Labour and Welfare Administration.",
|
|
5
5
|
"author": "Aksel, a team part of the Norwegian Labour and Welfare Administration.",
|
|
6
6
|
"license": "MIT",
|
|
@@ -704,9 +704,9 @@
|
|
|
704
704
|
},
|
|
705
705
|
"dependencies": {
|
|
706
706
|
"@floating-ui/react": "0.27.8",
|
|
707
|
-
"@floating-ui/react-dom": "^2.1.
|
|
708
|
-
"@navikt/aksel-icons": "^8.
|
|
709
|
-
"@navikt/ds-tokens": "^8.
|
|
707
|
+
"@floating-ui/react-dom": "^2.1.8",
|
|
708
|
+
"@navikt/aksel-icons": "^8.9.0",
|
|
709
|
+
"@navikt/ds-tokens": "^8.9.0",
|
|
710
710
|
"date-fns": "^4.0.0",
|
|
711
711
|
"react-day-picker": "9.7.0"
|
|
712
712
|
},
|
|
@@ -726,13 +726,13 @@
|
|
|
726
726
|
"jsdom": "27.1.0",
|
|
727
727
|
"react": "19.2.4",
|
|
728
728
|
"react-dom": "19.2.4",
|
|
729
|
-
"react-router": "^7.13.
|
|
729
|
+
"react-router": "^7.13.1",
|
|
730
730
|
"rimraf": "6.1.3",
|
|
731
731
|
"swr": "^2.3.6",
|
|
732
732
|
"tsc-alias": "1.8.16",
|
|
733
733
|
"tsx": "^4.20.6",
|
|
734
734
|
"typescript": "5.9.3",
|
|
735
|
-
"vitest": "4.0
|
|
735
|
+
"vitest": "4.1.0"
|
|
736
736
|
},
|
|
737
737
|
"peerDependencies": {
|
|
738
738
|
"@types/react": "^17.0.30 || ^18 || ^19",
|
|
@@ -4,6 +4,7 @@ export {
|
|
|
4
4
|
InfoCardHeader,
|
|
5
5
|
InfoCardTitle,
|
|
6
6
|
InfoCardContent,
|
|
7
|
+
InfoCardMessage,
|
|
7
8
|
} from "./root/InfoCardRoot";
|
|
8
9
|
|
|
9
10
|
export type {
|
|
@@ -11,4 +12,5 @@ export type {
|
|
|
11
12
|
InfoCardHeaderProps,
|
|
12
13
|
InfoCardTitleProps,
|
|
13
14
|
InfoCardContentProps,
|
|
15
|
+
InfoCardMessageProps,
|
|
14
16
|
} from "./root/InfoCardRoot";
|
|
@@ -0,0 +1,48 @@
|
|
|
1
|
+
import React, { forwardRef } from "react";
|
|
2
|
+
import { BodyLong } from "../../../typography";
|
|
3
|
+
import { cl } from "../../../utils/helpers";
|
|
4
|
+
import { useBaseAlert } from "../../base-alert/root/BaseAlertRoot.context";
|
|
5
|
+
|
|
6
|
+
interface InfoCardMessageProps extends React.HTMLAttributes<HTMLDivElement> {
|
|
7
|
+
/**
|
|
8
|
+
* Icon to display in message.
|
|
9
|
+
*/
|
|
10
|
+
icon: React.ReactNode;
|
|
11
|
+
}
|
|
12
|
+
|
|
13
|
+
/**
|
|
14
|
+
* A component for displaying informational messages.
|
|
15
|
+
* @see [📝 Documentation](https://aksel.nav.no/komponenter/core/infocard)
|
|
16
|
+
* @see 🏷️ {@link InfoCardMessageProps}
|
|
17
|
+
* @example
|
|
18
|
+
* ```jsx
|
|
19
|
+
* <InfoCard data-color="info">
|
|
20
|
+
* <InfoCard.Message icon={<InformationSquareIcon aria-hidden />}>
|
|
21
|
+
* Message contents
|
|
22
|
+
* </InfoCard.Message>
|
|
23
|
+
* </InfoCard>
|
|
24
|
+
* ```
|
|
25
|
+
*/
|
|
26
|
+
const InfoCardMessage = forwardRef<HTMLDivElement, InfoCardMessageProps>(
|
|
27
|
+
(
|
|
28
|
+
{ children, className, icon, ...restProps }: InfoCardMessageProps,
|
|
29
|
+
forwardedRef,
|
|
30
|
+
) => {
|
|
31
|
+
const context = useBaseAlert();
|
|
32
|
+
return (
|
|
33
|
+
<div
|
|
34
|
+
ref={forwardedRef}
|
|
35
|
+
className={cl(className, "aksel-base-alert__message")}
|
|
36
|
+
{...restProps}
|
|
37
|
+
>
|
|
38
|
+
<div className="aksel-base-alert__icon">{icon}</div>
|
|
39
|
+
<BodyLong size={context.size} as="div" textColor="default">
|
|
40
|
+
{children}
|
|
41
|
+
</BodyLong>
|
|
42
|
+
</div>
|
|
43
|
+
);
|
|
44
|
+
},
|
|
45
|
+
);
|
|
46
|
+
|
|
47
|
+
export { InfoCardMessage };
|
|
48
|
+
export type { InfoCardMessageProps };
|
|
@@ -8,6 +8,10 @@ import {
|
|
|
8
8
|
InfoCardHeader,
|
|
9
9
|
type InfoCardHeaderProps,
|
|
10
10
|
} from "../header/InfoCardHeader";
|
|
11
|
+
import {
|
|
12
|
+
InfoCardMessage,
|
|
13
|
+
type InfoCardMessageProps,
|
|
14
|
+
} from "../message/InfoCardMessage";
|
|
11
15
|
import { InfoCardTitle, type InfoCardTitleProps } from "../title/InfoCardTitle";
|
|
12
16
|
|
|
13
17
|
type InfoCardProps = Omit<
|
|
@@ -70,6 +74,19 @@ interface InfoCardComponent extends React.ForwardRefExoticComponent<
|
|
|
70
74
|
* ```
|
|
71
75
|
*/
|
|
72
76
|
Content: typeof InfoCardContent;
|
|
77
|
+
|
|
78
|
+
/**
|
|
79
|
+
* @see 🏷️ {@link InfoCardMessageProps}
|
|
80
|
+
* @example
|
|
81
|
+
* ```jsx
|
|
82
|
+
* <InfoCard data-color="info">
|
|
83
|
+
* <InfoCard.Message icon={<InformationSquareIcon aria-hidden />}>
|
|
84
|
+
* Message contents
|
|
85
|
+
* </InfoCard.Message>
|
|
86
|
+
* </InfoCard>
|
|
87
|
+
* ```
|
|
88
|
+
*/
|
|
89
|
+
Message: typeof InfoCardMessage;
|
|
73
90
|
}
|
|
74
91
|
|
|
75
92
|
/**
|
|
@@ -111,12 +128,14 @@ export const InfoCard = forwardRef<HTMLDivElement, InfoCardProps>(
|
|
|
111
128
|
InfoCard.Header = InfoCardHeader;
|
|
112
129
|
InfoCard.Title = InfoCardTitle;
|
|
113
130
|
InfoCard.Content = InfoCardContent;
|
|
131
|
+
InfoCard.Message = InfoCardMessage;
|
|
114
132
|
|
|
115
133
|
export default InfoCard;
|
|
116
|
-
export { InfoCardContent, InfoCardHeader, InfoCardTitle };
|
|
134
|
+
export { InfoCardContent, InfoCardHeader, InfoCardTitle, InfoCardMessage };
|
|
117
135
|
export type {
|
|
118
136
|
InfoCardProps,
|
|
119
137
|
InfoCardHeaderProps,
|
|
120
138
|
InfoCardTitleProps,
|
|
121
139
|
InfoCardContentProps,
|
|
140
|
+
InfoCardMessageProps,
|
|
122
141
|
};
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
import {
|
|
3
|
+
CaretDownCircleFillIcon,
|
|
4
|
+
CaretUpCircleFillIcon,
|
|
5
|
+
DragVerticalIcon,
|
|
6
|
+
} from "@navikt/aksel-icons";
|
|
7
|
+
import { useDragAndDropContext } from "../root/DragAndDrop.context";
|
|
8
|
+
import { DragAndDropElement } from "../types";
|
|
9
|
+
|
|
10
|
+
export interface DragAndDropDragHandlerProps {
|
|
11
|
+
item: DragAndDropElement;
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
/**
|
|
15
|
+
* DragAndDropDragHandler
|
|
16
|
+
*
|
|
17
|
+
* A button component that serves as a drag handle for drag and drop operations.
|
|
18
|
+
* Can be used to initiate dragging of elements in a data table or list.
|
|
19
|
+
*/
|
|
20
|
+
export const DragAndDropDragHandler = React.forwardRef<
|
|
21
|
+
HTMLDivElement,
|
|
22
|
+
DragAndDropDragHandlerProps
|
|
23
|
+
>(({ item }, forwardedRef) => {
|
|
24
|
+
const context = useDragAndDropContext();
|
|
25
|
+
const active = context?.dragHandlerActive?.id === item.id;
|
|
26
|
+
|
|
27
|
+
return (
|
|
28
|
+
<div className="aksel-data-drag-and-drop__drag-handler" ref={forwardedRef}>
|
|
29
|
+
{active && (
|
|
30
|
+
<span
|
|
31
|
+
className="aksel-data-drag-and-drop__drag-handler__arrow"
|
|
32
|
+
data-direction="up"
|
|
33
|
+
>
|
|
34
|
+
<CaretUpCircleFillIcon aria-hidden fontSize="1.2rem" />
|
|
35
|
+
</span>
|
|
36
|
+
)}
|
|
37
|
+
<button
|
|
38
|
+
aria-label="Dra for å flytte"
|
|
39
|
+
className="aksel-data-drag-and-drop__drag-handler__button"
|
|
40
|
+
data-drag-handler-active={active}
|
|
41
|
+
onPointerDown={(event) => {
|
|
42
|
+
event.stopPropagation();
|
|
43
|
+
context?.onDragStart(event, item);
|
|
44
|
+
}}
|
|
45
|
+
onClick={() => context?.setDragHandlerActive(item)}
|
|
46
|
+
onKeyDown={(event) => {
|
|
47
|
+
if (
|
|
48
|
+
(event.key === "Enter" || event.key === " ") &&
|
|
49
|
+
context?.dragHandlerActive
|
|
50
|
+
) {
|
|
51
|
+
// Enter or space, currently active item - end keyboard dragging
|
|
52
|
+
event.preventDefault();
|
|
53
|
+
context?.setDragHandlerActive(null);
|
|
54
|
+
} else if (
|
|
55
|
+
(event.key === "Enter" || event.key === " ") &&
|
|
56
|
+
!context?.dragHandlerActive
|
|
57
|
+
) {
|
|
58
|
+
// Enter or space, not currently active item - start keyboard dragging
|
|
59
|
+
event.preventDefault();
|
|
60
|
+
context?.setDragHandlerActive(item);
|
|
61
|
+
} else if (event.key === "Escape") {
|
|
62
|
+
// Cancel dragging
|
|
63
|
+
// TODO Handle reset
|
|
64
|
+
context?.setDragHandlerActive(null);
|
|
65
|
+
} else if (event.key === "ArrowUp") {
|
|
66
|
+
// Move item up
|
|
67
|
+
context?.onKeyboardDragEnd(-1);
|
|
68
|
+
} else if (event.key === "ArrowDown") {
|
|
69
|
+
// Move item down
|
|
70
|
+
context?.onKeyboardDragEnd(1);
|
|
71
|
+
}
|
|
72
|
+
}}
|
|
73
|
+
>
|
|
74
|
+
<DragVerticalIcon
|
|
75
|
+
aria-hidden
|
|
76
|
+
title="Dra for å flytte"
|
|
77
|
+
fontSize="1.5rem"
|
|
78
|
+
/>
|
|
79
|
+
</button>
|
|
80
|
+
{active && (
|
|
81
|
+
<span
|
|
82
|
+
className="aksel-data-drag-and-drop__drag-handler__arrow"
|
|
83
|
+
data-direction="down"
|
|
84
|
+
>
|
|
85
|
+
<CaretDownCircleFillIcon aria-hidden fontSize="1.2rem" />
|
|
86
|
+
</span>
|
|
87
|
+
)}
|
|
88
|
+
</div>
|
|
89
|
+
);
|
|
90
|
+
});
|
|
@@ -0,0 +1,71 @@
|
|
|
1
|
+
import React from "react";
|
|
2
|
+
import { HStack } from "../../../primitives/stack";
|
|
3
|
+
import { cl } from "../../../utils/helpers";
|
|
4
|
+
import { DragAndDropDragHandler } from "../drag-handler/DragAndDropDragHandler";
|
|
5
|
+
import { useDragAndDropContext } from "../root/DragAndDrop.context";
|
|
6
|
+
|
|
7
|
+
interface DragAndDropItemProps extends React.HTMLAttributes<HTMLDivElement> {
|
|
8
|
+
children: React.ReactNode;
|
|
9
|
+
/**
|
|
10
|
+
* Unique id
|
|
11
|
+
*/
|
|
12
|
+
id: string;
|
|
13
|
+
/**
|
|
14
|
+
* Index of the item being dragged
|
|
15
|
+
*/
|
|
16
|
+
index: number;
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
/**
|
|
20
|
+
* TODO
|
|
21
|
+
*
|
|
22
|
+
* @see 🏷️ {@link DragAndDropItemProps}
|
|
23
|
+
* @example
|
|
24
|
+
* ```tsx
|
|
25
|
+
* <DragAndDrop.Item numOfSelectedRows={selectedRows.length} onClear={handleClear}>
|
|
26
|
+
* TODO
|
|
27
|
+
* </DragAndDrop.Item>
|
|
28
|
+
* ```
|
|
29
|
+
*/
|
|
30
|
+
const DragAndDropItem = React.forwardRef<HTMLDivElement, DragAndDropItemProps>(
|
|
31
|
+
({ children, id, index, className, ...rest }, forwardedRef) => {
|
|
32
|
+
const ref = React.useRef<HTMLDivElement>(null);
|
|
33
|
+
const context = useDragAndDropContext();
|
|
34
|
+
const item = { id, index };
|
|
35
|
+
const isDropTarget = context?.dropTarget?.id === id;
|
|
36
|
+
|
|
37
|
+
return (
|
|
38
|
+
<HStack
|
|
39
|
+
gap="space-8"
|
|
40
|
+
align="center"
|
|
41
|
+
wrap={false}
|
|
42
|
+
asChild
|
|
43
|
+
ref={forwardedRef}
|
|
44
|
+
padding="space-4"
|
|
45
|
+
>
|
|
46
|
+
{/* TODO Should this be a <li>? */}
|
|
47
|
+
<div
|
|
48
|
+
id={id}
|
|
49
|
+
ref={ref}
|
|
50
|
+
{...rest}
|
|
51
|
+
data-dnd-id={id}
|
|
52
|
+
data-dnd-index={index}
|
|
53
|
+
role="button"
|
|
54
|
+
className={cl("aksel-data-table__drag-and-drop-item", className)}
|
|
55
|
+
data-drop-target={isDropTarget}
|
|
56
|
+
/*
|
|
57
|
+
data-keyboard-dragging={keyboardDragging}
|
|
58
|
+
*/
|
|
59
|
+
tabIndex={-1}
|
|
60
|
+
>
|
|
61
|
+
<DragAndDropDragHandler item={item} />
|
|
62
|
+
<div>{children}</div>
|
|
63
|
+
</div>
|
|
64
|
+
</HStack>
|
|
65
|
+
);
|
|
66
|
+
},
|
|
67
|
+
);
|
|
68
|
+
|
|
69
|
+
export default DragAndDropItem;
|
|
70
|
+
export { DragAndDropItem };
|
|
71
|
+
export type { DragAndDropItemProps };
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { createStrictContext } from "../../../utils/helpers";
|
|
2
|
+
import { DragAndDropElement } from "../types";
|
|
3
|
+
|
|
4
|
+
interface DragAndDropContextType {
|
|
5
|
+
activeItem: DragAndDropElement | null;
|
|
6
|
+
setActiveItem: (id: DragAndDropElement | null) => void;
|
|
7
|
+
dropTarget: DragAndDropElement | null;
|
|
8
|
+
setDropTarget: (id: DragAndDropElement | null) => void;
|
|
9
|
+
dragHandlerActive: DragAndDropElement | null;
|
|
10
|
+
setDragHandlerActive: (active: DragAndDropElement | null) => void;
|
|
11
|
+
onKeyboardDragEnd: (diff: number) => void;
|
|
12
|
+
onDragStart: (
|
|
13
|
+
event: React.PointerEvent | React.MouseEvent,
|
|
14
|
+
item: DragAndDropElement,
|
|
15
|
+
) => void;
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
export const {
|
|
19
|
+
Provider: DragAndDropProvider,
|
|
20
|
+
useContext: useDragAndDropContext,
|
|
21
|
+
} = createStrictContext<DragAndDropContextType | undefined>({
|
|
22
|
+
errorMessage:
|
|
23
|
+
"useDragAndDropContext must be used within a DragAndDropProvider",
|
|
24
|
+
name: "DragAndDropContext",
|
|
25
|
+
});
|