@navikt/ds-react 8.3.0 → 8.4.1

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.
Files changed (964) hide show
  1. package/cjs/accordion/AccordionContent.js.map +1 -1
  2. package/cjs/accordion/AccordionHeader.js.map +1 -1
  3. package/cjs/{overlays/action-menu → action-menu}/ActionMenu.d.ts +2 -2
  4. package/cjs/{overlays/action-menu → action-menu}/ActionMenu.js +12 -9
  5. package/cjs/action-menu/ActionMenu.js.map +1 -0
  6. package/cjs/action-menu/index.js.map +1 -0
  7. package/cjs/alert/global-alert/root/GlobalAlertRoot.js.map +1 -1
  8. package/cjs/alert/info-card/root/InfoCardRoot.js.map +1 -1
  9. package/cjs/alert/local-alert/root/LocalAlertRoot.js.map +1 -1
  10. package/cjs/button/Button.js.map +1 -1
  11. package/cjs/chips/Removable.js.map +1 -1
  12. package/cjs/chips/Toggle.js.map +1 -1
  13. package/cjs/collapsible/{parts/Collapsible.Content.js → content/CollapsibleContent.js} +3 -3
  14. package/cjs/collapsible/{parts/Collapsible.Content.js.map → content/CollapsibleContent.js.map} +1 -1
  15. package/cjs/collapsible/index.d.ts +2 -2
  16. package/cjs/collapsible/index.js +4 -4
  17. package/cjs/collapsible/index.js.map +1 -1
  18. package/cjs/collapsible/{Collapsible.context.d.ts → root/CollapsibleRoot.context.d.ts} +5 -23
  19. package/cjs/collapsible/{Collapsible.context.js → root/CollapsibleRoot.context.js} +2 -2
  20. package/cjs/collapsible/root/CollapsibleRoot.context.js.map +1 -0
  21. package/{esm/collapsible/Collapsible.d.ts → cjs/collapsible/root/CollapsibleRoot.d.ts} +20 -4
  22. package/cjs/collapsible/{Collapsible.js → root/CollapsibleRoot.js} +11 -11
  23. package/cjs/collapsible/root/CollapsibleRoot.js.map +1 -0
  24. package/cjs/collapsible/{parts/Collapsible.Trigger.js → trigger/CollapsibleTrigger.js} +3 -3
  25. package/cjs/collapsible/{parts/Collapsible.Trigger.js.map → trigger/CollapsibleTrigger.js.map} +1 -1
  26. package/cjs/copybutton/CopyButton.js.map +1 -1
  27. package/cjs/data/action-bar/root/DataActionBarRoot.js +2 -2
  28. package/cjs/data/action-bar/root/DataActionBarRoot.js.map +1 -1
  29. package/cjs/data/stories/DataTableProfiler.js +7 -7
  30. package/cjs/data/stories/DataTableProfiler.js.map +1 -1
  31. package/cjs/data/table/helpers/table-cell.d.ts +3 -0
  32. package/cjs/data/table/helpers/table-cell.js +19 -0
  33. package/cjs/data/table/helpers/table-cell.js.map +1 -0
  34. package/cjs/data/table/helpers/table-focus.d.ts +14 -0
  35. package/cjs/data/table/helpers/table-focus.js +84 -0
  36. package/cjs/data/table/helpers/table-focus.js.map +1 -0
  37. package/cjs/data/table/helpers/table-grid-nav.d.ts +33 -0
  38. package/cjs/data/table/helpers/table-grid-nav.js +84 -0
  39. package/cjs/data/table/helpers/table-grid-nav.js.map +1 -0
  40. package/cjs/data/table/helpers/table-keyboard.d.ts +15 -0
  41. package/cjs/data/table/helpers/table-keyboard.js +98 -0
  42. package/cjs/data/table/helpers/table-keyboard.js.map +1 -0
  43. package/cjs/data/table/root/DataTableRoot.d.ts +15 -3
  44. package/cjs/data/table/root/DataTableRoot.js +15 -4
  45. package/cjs/data/table/root/DataTableRoot.js.map +1 -1
  46. package/cjs/data/table/root/useTableKeyboardNav.d.ts +7 -0
  47. package/cjs/data/table/root/useTableKeyboardNav.js +153 -0
  48. package/cjs/data/table/root/useTableKeyboardNav.js.map +1 -0
  49. package/cjs/data/table/td/DataTableTd.d.ts +7 -1
  50. package/cjs/data/table/td/DataTableTd.js.map +1 -1
  51. package/cjs/data/table/th/DataTableTh.d.ts +9 -15
  52. package/cjs/data/table/th/DataTableTh.js +5 -3
  53. package/cjs/data/table/th/DataTableTh.js.map +1 -1
  54. package/cjs/data/table/th/DataTableThActions.js +1 -1
  55. package/cjs/data/table/th/DataTableThActions.js.map +1 -1
  56. package/cjs/data/table/tr/DataTableTr.d.ts +6 -2
  57. package/cjs/data/table/tr/DataTableTr.js +4 -2
  58. package/cjs/data/table/tr/DataTableTr.js.map +1 -1
  59. package/cjs/date/Date.Input.js.map +1 -1
  60. package/cjs/date/datepicker/hooks/useDatepicker.js.map +1 -1
  61. package/cjs/date/datepicker/hooks/useRangeDatepicker.js.map +1 -1
  62. package/cjs/date/datepicker/parts/DatePicker.RDP.js +1 -1
  63. package/cjs/date/datepicker/parts/DatePicker.RDP.js.map +1 -1
  64. package/cjs/date/datepicker/parts/DatePicker.Standalone.js.map +1 -1
  65. package/cjs/date/datepicker/parts/DatePicker.WeekNumber.js +1 -1
  66. package/cjs/date/datepicker/parts/DatePicker.WeekNumber.js.map +1 -1
  67. package/cjs/date/datepicker/parts/DatePicker.WeekRow.js +1 -1
  68. package/cjs/date/datepicker/parts/DatePicker.WeekRow.js.map +1 -1
  69. package/cjs/date/monthpicker/hooks/useMonthPicker.js.map +1 -1
  70. package/cjs/date/monthpicker/parts/MonthPicker.Standalone.js.map +1 -1
  71. package/cjs/dialog/close-trigger/DialogCloseTrigger.js.map +1 -1
  72. package/cjs/dialog/popup/DialogPopupInternal.js +2 -2
  73. package/cjs/dialog/popup/DialogPopupInternal.js.map +1 -1
  74. package/cjs/dropdown/Menu/GroupedList/GroupedHeading.js.map +1 -1
  75. package/cjs/dropdown/Menu/GroupedList/GroupedItem.js.map +1 -1
  76. package/cjs/dropdown/Menu/GroupedList/index.js.map +1 -1
  77. package/cjs/dropdown/Menu/List/index.js.map +1 -1
  78. package/cjs/dropdown/Menu/index.js.map +1 -1
  79. package/cjs/dropdown/Toggle.js.map +1 -1
  80. package/cjs/expansion-card/ExpansionCardContent.js.map +1 -1
  81. package/cjs/expansion-card/ExpansionCardDescription.js.map +1 -1
  82. package/cjs/expansion-card/ExpansionCardHeader.js.map +1 -1
  83. package/cjs/expansion-card/ExpansionCardTitle.js.map +1 -1
  84. package/cjs/form/checkbox/CheckboxGroup.js.map +1 -1
  85. package/cjs/form/combobox/Combobox.js +1 -1
  86. package/cjs/form/combobox/Combobox.js.map +1 -1
  87. package/cjs/form/combobox/FilteredOptions/FilteredOptions.js +2 -2
  88. package/cjs/form/combobox/FilteredOptions/FilteredOptions.js.map +1 -1
  89. package/cjs/form/combobox/FilteredOptions/filteredOptionsContext.js +20 -6
  90. package/cjs/form/combobox/FilteredOptions/filteredOptionsContext.js.map +1 -1
  91. package/cjs/form/combobox/Input/Input.js.map +1 -1
  92. package/cjs/form/combobox/Input/InputController.js +1 -1
  93. package/cjs/form/combobox/Input/InputController.js.map +1 -1
  94. package/cjs/form/confirmation-panel/ConfirmationPanel.js.map +1 -1
  95. package/cjs/form/error-summary/ErrorSummary.js.map +1 -1
  96. package/cjs/form/error-summary/ErrorSummaryItem.js.map +1 -1
  97. package/cjs/form/fieldset/Fieldset.js.map +1 -1
  98. package/cjs/form/file-upload/dropzone/FileUploadDropzone.d.ts +6 -0
  99. package/cjs/form/file-upload/{parts/dropzone/Dropzone.js → dropzone/FileUploadDropzone.js} +14 -12
  100. package/cjs/form/file-upload/dropzone/FileUploadDropzone.js.map +1 -0
  101. package/cjs/form/file-upload/{parts/dropzone → dropzone}/dropzone.types.d.ts +3 -3
  102. package/cjs/form/file-upload/dropzone/dropzone.types.js.map +1 -0
  103. package/cjs/form/file-upload/{parts/dropzone → dropzone}/useDropzone.d.ts +1 -1
  104. package/cjs/form/file-upload/dropzone/useDropzone.js.map +1 -0
  105. package/cjs/form/file-upload/helpers/download-file.js.map +1 -0
  106. package/cjs/form/file-upload/{parts/item/utils → helpers}/file-type-checker.d.ts +1 -1
  107. package/cjs/form/file-upload/helpers/file-type-checker.js.map +1 -0
  108. package/cjs/form/file-upload/{parts/item/utils → helpers}/format-file-size.d.ts +1 -1
  109. package/cjs/form/file-upload/helpers/format-file-size.js.map +1 -0
  110. package/cjs/form/file-upload/helpers/is-accepted-file-type.js.map +1 -0
  111. package/cjs/form/file-upload/helpers/is-accepted-size.js.map +1 -0
  112. package/cjs/form/file-upload/helpers/validate-files.js.map +1 -0
  113. package/cjs/form/file-upload/{useFileUpload.d.ts → hooks/useFileUpload.d.ts} +1 -1
  114. package/cjs/form/file-upload/{useFileUpload.js → hooks/useFileUpload.js} +2 -2
  115. package/cjs/form/file-upload/hooks/useFileUpload.js.map +1 -0
  116. package/cjs/form/file-upload/index.d.ts +3 -6
  117. package/cjs/form/file-upload/index.js +6 -9
  118. package/cjs/form/file-upload/index.js.map +1 -1
  119. package/cjs/form/file-upload/{parts/item/Item.d.ts → item/FileUploadItem.d.ts} +7 -6
  120. package/cjs/form/file-upload/{parts/item/Item.js → item/FileUploadItem.js} +12 -12
  121. package/cjs/form/file-upload/item/FileUploadItem.js.map +1 -0
  122. package/cjs/{collapsible/Collapsible.types.js → form/file-upload/item/FileUploadItem.types.js} +1 -1
  123. package/cjs/form/file-upload/item/FileUploadItem.types.js.map +1 -0
  124. package/{esm/form/file-upload/parts/item → cjs/form/file-upload/item-action-field}/ItemActionField.d.ts +1 -1
  125. package/cjs/form/file-upload/{parts/item → item-action-field}/ItemActionField.js +6 -6
  126. package/cjs/form/file-upload/item-action-field/ItemActionField.js.map +1 -0
  127. package/cjs/form/file-upload/{parts/item → item-header}/ItemHeader.d.ts +1 -1
  128. package/cjs/form/file-upload/{parts/item → item-header}/ItemHeader.js +5 -5
  129. package/cjs/form/file-upload/item-header/ItemHeader.js.map +1 -0
  130. package/cjs/form/file-upload/{parts/item → item-icon}/ItemIcon.d.ts +1 -1
  131. package/cjs/form/file-upload/item-icon/ItemIcon.js.map +1 -0
  132. package/cjs/form/file-upload/{FileUpload.context.d.ts → root/FileUploadRoot.context.d.ts} +1 -1
  133. package/cjs/form/file-upload/{FileUpload.context.js → root/FileUploadRoot.context.js} +2 -2
  134. package/cjs/form/file-upload/root/FileUploadRoot.context.js.map +1 -0
  135. package/cjs/form/file-upload/{FileUpload.d.ts → root/FileUploadRoot.d.ts} +12 -7
  136. package/cjs/form/file-upload/{FileUpload.js → root/FileUploadRoot.js} +14 -14
  137. package/cjs/form/file-upload/root/FileUploadRoot.js.map +1 -0
  138. package/cjs/form/file-upload/trigger/FileUploadTrigger.d.ts +9 -0
  139. package/cjs/form/file-upload/{parts/Trigger.js → trigger/FileUploadTrigger.js} +6 -4
  140. package/cjs/form/file-upload/trigger/FileUploadTrigger.js.map +1 -0
  141. package/cjs/form/form-progress/FormProgress.js +7 -10
  142. package/cjs/form/form-progress/FormProgress.js.map +1 -1
  143. package/cjs/form/form-summary/FormSummary.js.map +1 -1
  144. package/cjs/form/form-summary/FormSummaryAnswer.js.map +1 -1
  145. package/cjs/form/form-summary/FormSummaryAnswers.js.map +1 -1
  146. package/cjs/form/form-summary/FormSummaryEditLink.js.map +1 -1
  147. package/cjs/form/form-summary/FormSummaryFooter.js.map +1 -1
  148. package/cjs/form/form-summary/FormSummaryHeader.js.map +1 -1
  149. package/cjs/form/form-summary/FormSummaryHeading.js.map +1 -1
  150. package/cjs/form/form-summary/FormSummaryLabel.js.map +1 -1
  151. package/cjs/form/form-summary/FormSummaryValue.js.map +1 -1
  152. package/cjs/form/radio/RadioGroup.js.map +1 -1
  153. package/cjs/form/search/SearchButton.js.map +1 -1
  154. package/cjs/form/select/Select.js.map +1 -1
  155. package/cjs/form/switch/Switch.js +3 -3
  156. package/cjs/form/switch/Switch.js.map +1 -1
  157. package/cjs/form/textarea/Textarea.js.map +1 -1
  158. package/cjs/form/textfield/TextField.js.map +1 -1
  159. package/cjs/help-text/HelpText.js.map +1 -1
  160. package/cjs/index.d.ts +7 -7
  161. package/cjs/index.js +7 -7
  162. package/cjs/index.js.map +1 -1
  163. package/cjs/internal-header/InternalHeaderButton.js.map +1 -1
  164. package/cjs/internal-header/InternalHeaderTitle.js.map +1 -1
  165. package/cjs/internal-header/InternalHeaderUser.js.map +1 -1
  166. package/cjs/internal-header/InternalHeaderUserButton.js.map +1 -1
  167. package/cjs/link/Link.js.map +1 -1
  168. package/cjs/link-card/LinkCard.js.map +1 -1
  169. package/cjs/link-panel/LinkPanelDescription.js.map +1 -1
  170. package/cjs/link-panel/LinkPanelTitle.js.map +1 -1
  171. package/cjs/modal/Modal.js.map +1 -1
  172. package/cjs/pagination/Pagination.js.map +1 -1
  173. package/cjs/popover/Popover.js +1 -1
  174. package/cjs/popover/Popover.js.map +1 -1
  175. package/cjs/popover/PopoverContent.js.map +1 -1
  176. package/cjs/primitives/base/BasePrimitive.js.map +1 -0
  177. package/cjs/primitives/base/PrimitiveAsChildProps.js.map +1 -0
  178. package/cjs/primitives/bleed/Bleed.js.map +1 -0
  179. package/cjs/primitives/bleed/index.js.map +1 -0
  180. package/cjs/primitives/box/Box.darkside.js.map +1 -0
  181. package/cjs/primitives/box/Box.js.map +1 -0
  182. package/cjs/primitives/box/index.js.map +1 -0
  183. package/cjs/primitives/grid/HGrid.js.map +1 -0
  184. package/cjs/primitives/grid/index.js.map +1 -0
  185. package/cjs/primitives/page/Page.js.map +1 -0
  186. package/cjs/primitives/page/index.js.map +1 -0
  187. package/cjs/primitives/page/parts/PageBlock.js.map +1 -0
  188. package/cjs/primitives/responsive/Responsive.js.map +1 -0
  189. package/cjs/primitives/responsive/index.js.map +1 -0
  190. package/cjs/primitives/stack/HStack.js.map +1 -0
  191. package/cjs/primitives/stack/Spacer.js.map +1 -0
  192. package/cjs/primitives/stack/Stack.js.map +1 -0
  193. package/cjs/primitives/stack/VStack.js.map +1 -0
  194. package/cjs/primitives/stack/index.js.map +1 -0
  195. package/cjs/primitives/utilities/css.js.map +1 -0
  196. package/cjs/primitives/utilities/types.js.map +1 -0
  197. package/cjs/process/Process.js.map +1 -1
  198. package/cjs/progress-bar/ProgressBar.js.map +1 -1
  199. package/cjs/read-more/ReadMore.js.map +1 -1
  200. package/cjs/stepper/Step.js.map +1 -1
  201. package/cjs/table/DataCell.js.map +1 -1
  202. package/cjs/table/ExpandableRow.js.map +1 -1
  203. package/cjs/table/HeaderCell.js.map +1 -1
  204. package/cjs/table/Table.js.map +1 -1
  205. package/cjs/tabs/parts/tab/Tab.js.map +1 -1
  206. package/cjs/timeline/Timeline.js.map +1 -1
  207. package/cjs/timeline/TimelineRow.d.ts +11 -3
  208. package/cjs/timeline/TimelineRow.js +5 -4
  209. package/cjs/timeline/TimelineRow.js.map +1 -1
  210. package/cjs/timeline/period/index.js.map +1 -1
  211. package/cjs/timeline/pin/Pin.js.map +1 -1
  212. package/cjs/timeline/pin/PinInternal.js.map +1 -1
  213. package/cjs/timeline/utils/timeline.d.ts +1 -1
  214. package/cjs/timeline/zoom/index.js.map +1 -1
  215. package/cjs/toggle-group/useToggleGroup.js +4 -8
  216. package/cjs/toggle-group/useToggleGroup.js.map +1 -1
  217. package/cjs/tooltip/Tooltip.js +1 -1
  218. package/cjs/tooltip/Tooltip.js.map +1 -1
  219. package/cjs/typography/BodyLong.js.map +1 -1
  220. package/cjs/typography/BodyShort.js.map +1 -1
  221. package/cjs/typography/Detail.js.map +1 -1
  222. package/cjs/typography/ErrorMessage.js.map +1 -1
  223. package/cjs/typography/Heading.js.map +1 -1
  224. package/cjs/typography/Ingress.js.map +1 -1
  225. package/cjs/typography/Label.js.map +1 -1
  226. package/cjs/{overlays → utils/components}/dismissablelayer/DismissableLayer.d.ts +1 -1
  227. package/cjs/{overlays → utils/components}/dismissablelayer/DismissableLayer.js +3 -3
  228. package/cjs/utils/components/dismissablelayer/DismissableLayer.js.map +1 -0
  229. package/cjs/utils/components/dismissablelayer/util/dispatchCustomEvent.js.map +1 -0
  230. package/cjs/utils/components/dismissablelayer/util/sort-layers.js.map +1 -0
  231. package/cjs/{overlays → utils/components}/dismissablelayer/util/useEscapeKeydown.js +1 -1
  232. package/cjs/utils/components/dismissablelayer/util/useEscapeKeydown.js.map +1 -0
  233. package/cjs/{overlays → utils/components}/dismissablelayer/util/useFocusOutside.js +1 -1
  234. package/cjs/utils/components/dismissablelayer/util/useFocusOutside.js.map +1 -0
  235. package/cjs/{overlays → utils/components}/dismissablelayer/util/usePointerDownOutside.js +1 -1
  236. package/cjs/utils/components/dismissablelayer/util/usePointerDownOutside.js.map +1 -0
  237. package/cjs/{overlays → utils/components}/dismissablelayer/util/usePointerUpOutside.js +1 -1
  238. package/cjs/utils/components/dismissablelayer/util/usePointerUpOutside.js.map +1 -0
  239. package/cjs/{overlays → utils/components}/floating/Floating.d.ts +1 -1
  240. package/cjs/{overlays → utils/components}/floating/Floating.js +5 -5
  241. package/cjs/utils/components/floating/Floating.js.map +1 -0
  242. package/{esm/overlays → cjs/utils/components}/floating/Floating.utils.d.ts +1 -1
  243. package/cjs/utils/components/floating/Floating.utils.js.map +1 -0
  244. package/cjs/{overlays → utils/components}/floating-menu/Menu.d.ts +3 -3
  245. package/cjs/{overlays → utils/components}/floating-menu/Menu.js +5 -5
  246. package/cjs/utils/components/floating-menu/Menu.js.map +1 -0
  247. package/cjs/{overlays → utils/components}/floating-menu/parts/RovingFocus.d.ts +1 -1
  248. package/cjs/{overlays → utils/components}/floating-menu/parts/RovingFocus.js +3 -3
  249. package/cjs/utils/components/floating-menu/parts/RovingFocus.js.map +1 -0
  250. package/cjs/{overlays → utils/components}/floating-menu/parts/SlottedDivElement.js +1 -1
  251. package/cjs/utils/components/floating-menu/parts/SlottedDivElement.js.map +1 -0
  252. package/cjs/utils/components/textarea-autosize/TextareaAutoSize.js.map +1 -1
  253. package/cjs/utils/components/virtualfocus/parts/VirtualFocusAnchor.js.map +1 -1
  254. package/cjs/utils/components/virtualfocus/parts/VirtualFocusItem.js.map +1 -1
  255. package/cjs/utils-external/hooks/useEventListener.d.ts +2 -2
  256. package/esm/accordion/AccordionContent.js.map +1 -1
  257. package/esm/accordion/AccordionHeader.js.map +1 -1
  258. package/esm/{overlays/action-menu → action-menu}/ActionMenu.d.ts +2 -2
  259. package/esm/{overlays/action-menu → action-menu}/ActionMenu.js +12 -9
  260. package/esm/action-menu/ActionMenu.js.map +1 -0
  261. package/esm/action-menu/index.js.map +1 -0
  262. package/esm/alert/global-alert/root/GlobalAlertRoot.js.map +1 -1
  263. package/esm/alert/info-card/root/InfoCardRoot.js.map +1 -1
  264. package/esm/alert/local-alert/root/LocalAlertRoot.js.map +1 -1
  265. package/esm/button/Button.js.map +1 -1
  266. package/esm/chips/Removable.js.map +1 -1
  267. package/esm/chips/Toggle.js.map +1 -1
  268. package/esm/collapsible/{parts/Collapsible.Content.js → content/CollapsibleContent.js} +2 -2
  269. package/esm/collapsible/{parts/Collapsible.Content.js.map → content/CollapsibleContent.js.map} +1 -1
  270. package/esm/collapsible/index.d.ts +2 -2
  271. package/esm/collapsible/index.js +1 -1
  272. package/esm/collapsible/index.js.map +1 -1
  273. package/esm/collapsible/{Collapsible.context.d.ts → root/CollapsibleRoot.context.d.ts} +5 -23
  274. package/esm/collapsible/{Collapsible.context.js → root/CollapsibleRoot.context.js} +2 -2
  275. package/esm/collapsible/root/CollapsibleRoot.context.js.map +1 -0
  276. package/{cjs/collapsible/Collapsible.d.ts → esm/collapsible/root/CollapsibleRoot.d.ts} +20 -4
  277. package/esm/collapsible/{Collapsible.js → root/CollapsibleRoot.js} +6 -6
  278. package/esm/collapsible/root/CollapsibleRoot.js.map +1 -0
  279. package/esm/collapsible/{parts/Collapsible.Trigger.js → trigger/CollapsibleTrigger.js} +2 -2
  280. package/esm/collapsible/{parts/Collapsible.Trigger.js.map → trigger/CollapsibleTrigger.js.map} +1 -1
  281. package/esm/copybutton/CopyButton.js.map +1 -1
  282. package/esm/data/action-bar/root/DataActionBarRoot.js +2 -2
  283. package/esm/data/action-bar/root/DataActionBarRoot.js.map +1 -1
  284. package/esm/data/stories/DataTableProfiler.js +7 -7
  285. package/esm/data/stories/DataTableProfiler.js.map +1 -1
  286. package/esm/data/table/helpers/table-cell.d.ts +3 -0
  287. package/esm/data/table/helpers/table-cell.js +16 -0
  288. package/esm/data/table/helpers/table-cell.js.map +1 -0
  289. package/esm/data/table/helpers/table-focus.d.ts +14 -0
  290. package/esm/data/table/helpers/table-focus.js +80 -0
  291. package/esm/data/table/helpers/table-focus.js.map +1 -0
  292. package/esm/data/table/helpers/table-grid-nav.d.ts +33 -0
  293. package/esm/data/table/helpers/table-grid-nav.js +80 -0
  294. package/esm/data/table/helpers/table-grid-nav.js.map +1 -0
  295. package/esm/data/table/helpers/table-keyboard.d.ts +15 -0
  296. package/esm/data/table/helpers/table-keyboard.js +95 -0
  297. package/esm/data/table/helpers/table-keyboard.js.map +1 -0
  298. package/esm/data/table/root/DataTableRoot.d.ts +15 -3
  299. package/esm/data/table/root/DataTableRoot.js +16 -5
  300. package/esm/data/table/root/DataTableRoot.js.map +1 -1
  301. package/esm/data/table/root/useTableKeyboardNav.d.ts +7 -0
  302. package/esm/data/table/root/useTableKeyboardNav.js +151 -0
  303. package/esm/data/table/root/useTableKeyboardNav.js.map +1 -0
  304. package/esm/data/table/td/DataTableTd.d.ts +7 -1
  305. package/esm/data/table/td/DataTableTd.js.map +1 -1
  306. package/esm/data/table/th/DataTableTh.d.ts +9 -15
  307. package/esm/data/table/th/DataTableTh.js +5 -3
  308. package/esm/data/table/th/DataTableTh.js.map +1 -1
  309. package/esm/data/table/th/DataTableThActions.js +1 -1
  310. package/esm/data/table/th/DataTableThActions.js.map +1 -1
  311. package/esm/data/table/tr/DataTableTr.d.ts +6 -2
  312. package/esm/data/table/tr/DataTableTr.js +4 -2
  313. package/esm/data/table/tr/DataTableTr.js.map +1 -1
  314. package/esm/date/Date.Input.js.map +1 -1
  315. package/esm/date/datepicker/hooks/useDatepicker.js.map +1 -1
  316. package/esm/date/datepicker/hooks/useRangeDatepicker.js.map +1 -1
  317. package/esm/date/datepicker/parts/DatePicker.RDP.js +1 -1
  318. package/esm/date/datepicker/parts/DatePicker.RDP.js.map +1 -1
  319. package/esm/date/datepicker/parts/DatePicker.Standalone.js.map +1 -1
  320. package/esm/date/datepicker/parts/DatePicker.WeekNumber.js +1 -1
  321. package/esm/date/datepicker/parts/DatePicker.WeekNumber.js.map +1 -1
  322. package/esm/date/datepicker/parts/DatePicker.WeekRow.js +1 -1
  323. package/esm/date/datepicker/parts/DatePicker.WeekRow.js.map +1 -1
  324. package/esm/date/monthpicker/hooks/useMonthPicker.js.map +1 -1
  325. package/esm/date/monthpicker/parts/MonthPicker.Standalone.js.map +1 -1
  326. package/esm/dialog/close-trigger/DialogCloseTrigger.js.map +1 -1
  327. package/esm/dialog/popup/DialogPopupInternal.js +2 -2
  328. package/esm/dialog/popup/DialogPopupInternal.js.map +1 -1
  329. package/esm/dropdown/Menu/GroupedList/GroupedHeading.js.map +1 -1
  330. package/esm/dropdown/Menu/GroupedList/GroupedItem.js.map +1 -1
  331. package/esm/dropdown/Menu/GroupedList/index.js.map +1 -1
  332. package/esm/dropdown/Menu/List/index.js.map +1 -1
  333. package/esm/dropdown/Menu/index.js.map +1 -1
  334. package/esm/dropdown/Toggle.js.map +1 -1
  335. package/esm/expansion-card/ExpansionCardContent.js.map +1 -1
  336. package/esm/expansion-card/ExpansionCardDescription.js.map +1 -1
  337. package/esm/expansion-card/ExpansionCardHeader.js.map +1 -1
  338. package/esm/expansion-card/ExpansionCardTitle.js.map +1 -1
  339. package/esm/form/checkbox/CheckboxGroup.js.map +1 -1
  340. package/esm/form/combobox/Combobox.js +1 -1
  341. package/esm/form/combobox/Combobox.js.map +1 -1
  342. package/esm/form/combobox/FilteredOptions/FilteredOptions.js +2 -2
  343. package/esm/form/combobox/FilteredOptions/FilteredOptions.js.map +1 -1
  344. package/esm/form/combobox/FilteredOptions/filteredOptionsContext.js +20 -6
  345. package/esm/form/combobox/FilteredOptions/filteredOptionsContext.js.map +1 -1
  346. package/esm/form/combobox/Input/Input.js.map +1 -1
  347. package/esm/form/combobox/Input/InputController.js +1 -1
  348. package/esm/form/combobox/Input/InputController.js.map +1 -1
  349. package/esm/form/confirmation-panel/ConfirmationPanel.js.map +1 -1
  350. package/esm/form/error-summary/ErrorSummary.js.map +1 -1
  351. package/esm/form/error-summary/ErrorSummaryItem.js.map +1 -1
  352. package/esm/form/fieldset/Fieldset.js.map +1 -1
  353. package/esm/form/file-upload/dropzone/FileUploadDropzone.d.ts +6 -0
  354. package/esm/form/file-upload/{parts/dropzone/Dropzone.js → dropzone/FileUploadDropzone.js} +12 -11
  355. package/esm/form/file-upload/dropzone/FileUploadDropzone.js.map +1 -0
  356. package/esm/form/file-upload/{parts/dropzone → dropzone}/dropzone.types.d.ts +3 -3
  357. package/esm/form/file-upload/dropzone/dropzone.types.js.map +1 -0
  358. package/esm/form/file-upload/{parts/dropzone → dropzone}/useDropzone.d.ts +1 -1
  359. package/esm/form/file-upload/dropzone/useDropzone.js.map +1 -0
  360. package/esm/form/file-upload/helpers/download-file.js.map +1 -0
  361. package/esm/form/file-upload/{parts/item/utils → helpers}/file-type-checker.d.ts +1 -1
  362. package/esm/form/file-upload/helpers/file-type-checker.js.map +1 -0
  363. package/esm/form/file-upload/{parts/item/utils → helpers}/format-file-size.d.ts +1 -1
  364. package/esm/form/file-upload/helpers/format-file-size.js.map +1 -0
  365. package/esm/form/file-upload/helpers/is-accepted-file-type.js.map +1 -0
  366. package/esm/form/file-upload/helpers/is-accepted-size.js.map +1 -0
  367. package/esm/form/file-upload/helpers/validate-files.js.map +1 -0
  368. package/esm/form/file-upload/{useFileUpload.d.ts → hooks/useFileUpload.d.ts} +1 -1
  369. package/esm/form/file-upload/{useFileUpload.js → hooks/useFileUpload.js} +2 -2
  370. package/esm/form/file-upload/hooks/useFileUpload.js.map +1 -0
  371. package/esm/form/file-upload/index.d.ts +3 -6
  372. package/esm/form/file-upload/index.js +1 -4
  373. package/esm/form/file-upload/index.js.map +1 -1
  374. package/esm/form/file-upload/{parts/item/Item.d.ts → item/FileUploadItem.d.ts} +7 -6
  375. package/esm/form/file-upload/{parts/item/Item.js → item/FileUploadItem.js} +10 -10
  376. package/esm/form/file-upload/item/FileUploadItem.js.map +1 -0
  377. package/esm/form/file-upload/item/FileUploadItem.types.js +2 -0
  378. package/esm/form/file-upload/item/FileUploadItem.types.js.map +1 -0
  379. package/{cjs/form/file-upload/parts/item → esm/form/file-upload/item-action-field}/ItemActionField.d.ts +1 -1
  380. package/esm/form/file-upload/{parts/item → item-action-field}/ItemActionField.js +3 -3
  381. package/esm/form/file-upload/item-action-field/ItemActionField.js.map +1 -0
  382. package/esm/form/file-upload/{parts/item → item-header}/ItemHeader.d.ts +1 -1
  383. package/esm/form/file-upload/{parts/item → item-header}/ItemHeader.js +5 -5
  384. package/esm/form/file-upload/{parts/item → item-header}/ItemHeader.js.map +1 -1
  385. package/esm/form/file-upload/{parts/item → item-icon}/ItemIcon.d.ts +1 -1
  386. package/esm/form/file-upload/item-icon/ItemIcon.js.map +1 -0
  387. package/esm/form/file-upload/{FileUpload.context.d.ts → root/FileUploadRoot.context.d.ts} +1 -1
  388. package/esm/form/file-upload/{FileUpload.context.js → root/FileUploadRoot.context.js} +2 -2
  389. package/esm/form/file-upload/root/FileUploadRoot.context.js.map +1 -0
  390. package/esm/form/file-upload/{FileUpload.d.ts → root/FileUploadRoot.d.ts} +12 -7
  391. package/esm/form/file-upload/{FileUpload.js → root/FileUploadRoot.js} +10 -9
  392. package/esm/form/file-upload/root/FileUploadRoot.js.map +1 -0
  393. package/esm/form/file-upload/trigger/FileUploadTrigger.d.ts +9 -0
  394. package/esm/form/file-upload/{parts/Trigger.js → trigger/FileUploadTrigger.js} +5 -4
  395. package/esm/form/file-upload/trigger/FileUploadTrigger.js.map +1 -0
  396. package/esm/form/form-progress/FormProgress.js +3 -3
  397. package/esm/form/form-progress/FormProgress.js.map +1 -1
  398. package/esm/form/form-summary/FormSummary.js.map +1 -1
  399. package/esm/form/form-summary/FormSummaryAnswer.js.map +1 -1
  400. package/esm/form/form-summary/FormSummaryAnswers.js.map +1 -1
  401. package/esm/form/form-summary/FormSummaryEditLink.js.map +1 -1
  402. package/esm/form/form-summary/FormSummaryFooter.js.map +1 -1
  403. package/esm/form/form-summary/FormSummaryHeader.js.map +1 -1
  404. package/esm/form/form-summary/FormSummaryHeading.js.map +1 -1
  405. package/esm/form/form-summary/FormSummaryLabel.js.map +1 -1
  406. package/esm/form/form-summary/FormSummaryValue.js.map +1 -1
  407. package/esm/form/radio/RadioGroup.js.map +1 -1
  408. package/esm/form/search/SearchButton.js.map +1 -1
  409. package/esm/form/select/Select.js.map +1 -1
  410. package/esm/form/switch/Switch.js +4 -4
  411. package/esm/form/switch/Switch.js.map +1 -1
  412. package/esm/form/textarea/Textarea.js.map +1 -1
  413. package/esm/form/textfield/TextField.js.map +1 -1
  414. package/esm/help-text/HelpText.js.map +1 -1
  415. package/esm/index.d.ts +7 -7
  416. package/esm/index.js +7 -7
  417. package/esm/index.js.map +1 -1
  418. package/esm/internal-header/InternalHeaderButton.js.map +1 -1
  419. package/esm/internal-header/InternalHeaderTitle.js.map +1 -1
  420. package/esm/internal-header/InternalHeaderUser.js.map +1 -1
  421. package/esm/internal-header/InternalHeaderUserButton.js.map +1 -1
  422. package/esm/link/Link.js.map +1 -1
  423. package/esm/link-card/LinkCard.js.map +1 -1
  424. package/esm/link-panel/LinkPanelDescription.js.map +1 -1
  425. package/esm/link-panel/LinkPanelTitle.js.map +1 -1
  426. package/esm/modal/Modal.js.map +1 -1
  427. package/esm/pagination/Pagination.js.map +1 -1
  428. package/esm/popover/Popover.js +1 -1
  429. package/esm/popover/Popover.js.map +1 -1
  430. package/esm/popover/PopoverContent.js.map +1 -1
  431. package/esm/primitives/base/BasePrimitive.js.map +1 -0
  432. package/esm/primitives/base/PrimitiveAsChildProps.js.map +1 -0
  433. package/esm/primitives/bleed/Bleed.js.map +1 -0
  434. package/esm/primitives/bleed/index.js.map +1 -0
  435. package/esm/primitives/box/Box.darkside.js.map +1 -0
  436. package/esm/primitives/box/Box.js.map +1 -0
  437. package/esm/primitives/box/index.js.map +1 -0
  438. package/esm/primitives/grid/HGrid.js.map +1 -0
  439. package/esm/primitives/grid/index.js.map +1 -0
  440. package/esm/primitives/page/Page.js.map +1 -0
  441. package/esm/primitives/page/index.js.map +1 -0
  442. package/esm/primitives/page/parts/PageBlock.js.map +1 -0
  443. package/esm/primitives/responsive/Responsive.js.map +1 -0
  444. package/esm/primitives/responsive/index.js.map +1 -0
  445. package/esm/primitives/stack/HStack.js.map +1 -0
  446. package/esm/primitives/stack/Spacer.js.map +1 -0
  447. package/esm/primitives/stack/Stack.js.map +1 -0
  448. package/esm/primitives/stack/VStack.js.map +1 -0
  449. package/esm/primitives/stack/index.js.map +1 -0
  450. package/esm/primitives/utilities/css.js.map +1 -0
  451. package/esm/primitives/utilities/types.js.map +1 -0
  452. package/esm/process/Process.js.map +1 -1
  453. package/esm/progress-bar/ProgressBar.js.map +1 -1
  454. package/esm/read-more/ReadMore.js.map +1 -1
  455. package/esm/stepper/Step.js.map +1 -1
  456. package/esm/table/DataCell.js.map +1 -1
  457. package/esm/table/ExpandableRow.js.map +1 -1
  458. package/esm/table/HeaderCell.js.map +1 -1
  459. package/esm/table/Table.js.map +1 -1
  460. package/esm/tabs/parts/tab/Tab.js.map +1 -1
  461. package/esm/timeline/Timeline.js.map +1 -1
  462. package/esm/timeline/TimelineRow.d.ts +11 -3
  463. package/esm/timeline/TimelineRow.js +5 -4
  464. package/esm/timeline/TimelineRow.js.map +1 -1
  465. package/esm/timeline/period/index.js.map +1 -1
  466. package/esm/timeline/pin/Pin.js.map +1 -1
  467. package/esm/timeline/pin/PinInternal.js.map +1 -1
  468. package/esm/timeline/utils/timeline.d.ts +1 -1
  469. package/esm/timeline/zoom/index.js.map +1 -1
  470. package/esm/toggle-group/useToggleGroup.js +5 -9
  471. package/esm/toggle-group/useToggleGroup.js.map +1 -1
  472. package/esm/tooltip/Tooltip.js +1 -1
  473. package/esm/tooltip/Tooltip.js.map +1 -1
  474. package/esm/typography/BodyLong.js.map +1 -1
  475. package/esm/typography/BodyShort.js.map +1 -1
  476. package/esm/typography/Detail.js.map +1 -1
  477. package/esm/typography/ErrorMessage.js.map +1 -1
  478. package/esm/typography/Heading.js.map +1 -1
  479. package/esm/typography/Ingress.js.map +1 -1
  480. package/esm/typography/Label.js.map +1 -1
  481. package/esm/{overlays → utils/components}/dismissablelayer/DismissableLayer.d.ts +1 -1
  482. package/esm/{overlays → utils/components}/dismissablelayer/DismissableLayer.js +3 -3
  483. package/esm/utils/components/dismissablelayer/DismissableLayer.js.map +1 -0
  484. package/esm/utils/components/dismissablelayer/util/dispatchCustomEvent.js.map +1 -0
  485. package/esm/utils/components/dismissablelayer/util/sort-layers.js.map +1 -0
  486. package/esm/{overlays → utils/components}/dismissablelayer/util/useEscapeKeydown.js +1 -1
  487. package/esm/utils/components/dismissablelayer/util/useEscapeKeydown.js.map +1 -0
  488. package/esm/{overlays → utils/components}/dismissablelayer/util/useFocusOutside.js +1 -1
  489. package/esm/utils/components/dismissablelayer/util/useFocusOutside.js.map +1 -0
  490. package/esm/{overlays → utils/components}/dismissablelayer/util/usePointerDownOutside.js +1 -1
  491. package/esm/utils/components/dismissablelayer/util/usePointerDownOutside.js.map +1 -0
  492. package/esm/{overlays → utils/components}/dismissablelayer/util/usePointerUpOutside.js +1 -1
  493. package/esm/utils/components/dismissablelayer/util/usePointerUpOutside.js.map +1 -0
  494. package/esm/{overlays → utils/components}/floating/Floating.d.ts +1 -1
  495. package/esm/{overlays → utils/components}/floating/Floating.js +5 -5
  496. package/esm/utils/components/floating/Floating.js.map +1 -0
  497. package/{cjs/overlays → esm/utils/components}/floating/Floating.utils.d.ts +1 -1
  498. package/esm/utils/components/floating/Floating.utils.js.map +1 -0
  499. package/esm/{overlays → utils/components}/floating-menu/Menu.d.ts +3 -3
  500. package/esm/{overlays → utils/components}/floating-menu/Menu.js +5 -5
  501. package/esm/utils/components/floating-menu/Menu.js.map +1 -0
  502. package/esm/{overlays → utils/components}/floating-menu/parts/RovingFocus.d.ts +1 -1
  503. package/esm/{overlays → utils/components}/floating-menu/parts/RovingFocus.js +3 -3
  504. package/esm/utils/components/floating-menu/parts/RovingFocus.js.map +1 -0
  505. package/esm/{overlays → utils/components}/floating-menu/parts/SlottedDivElement.js +1 -1
  506. package/esm/utils/components/floating-menu/parts/SlottedDivElement.js.map +1 -0
  507. package/esm/utils/components/textarea-autosize/TextareaAutoSize.js.map +1 -1
  508. package/esm/utils/components/virtualfocus/parts/VirtualFocusAnchor.js.map +1 -1
  509. package/esm/utils/components/virtualfocus/parts/VirtualFocusItem.js.map +1 -1
  510. package/esm/utils-external/hooks/useEventListener.d.ts +2 -2
  511. package/package.json +32 -32
  512. package/src/accordion/AccordionContent.tsx +1 -2
  513. package/src/accordion/AccordionHeader.tsx +1 -2
  514. package/src/{overlays/action-menu → action-menu}/ActionMenu.tsx +18 -9
  515. package/src/alert/global-alert/root/GlobalAlertRoot.tsx +7 -6
  516. package/src/alert/info-card/root/InfoCardRoot.tsx +3 -4
  517. package/src/alert/local-alert/root/LocalAlertRoot.tsx +7 -6
  518. package/src/button/Button.tsx +1 -2
  519. package/src/chips/Removable.tsx +1 -2
  520. package/src/chips/Toggle.tsx +1 -2
  521. package/src/collapsible/{parts/Collapsible.Content.tsx → content/CollapsibleContent.tsx} +5 -6
  522. package/src/collapsible/index.ts +2 -2
  523. package/src/collapsible/{Collapsible.context.tsx → root/CollapsibleRoot.context.tsx} +6 -3
  524. package/src/collapsible/{Collapsible.tsx → root/CollapsibleRoot.tsx} +24 -8
  525. package/src/collapsible/{parts/Collapsible.Trigger.tsx → trigger/CollapsibleTrigger.tsx} +5 -6
  526. package/src/copybutton/CopyButton.tsx +2 -1
  527. package/src/data/action-bar/root/DataActionBarRoot.tsx +2 -2
  528. package/src/data/stories/DataTableProfiler.tsx +8 -8
  529. package/src/data/table/helpers/table-cell.ts +23 -0
  530. package/src/data/table/helpers/table-focus.ts +105 -0
  531. package/src/data/table/helpers/table-grid-nav.ts +112 -0
  532. package/src/data/table/helpers/table-keyboard.test.ts +247 -0
  533. package/src/data/table/helpers/table-keyboard.ts +126 -0
  534. package/src/data/table/root/DataTableRoot.tsx +52 -13
  535. package/src/data/table/root/useTableKeyboardNav.ts +197 -0
  536. package/src/data/table/td/DataTableTd.tsx +7 -1
  537. package/src/data/table/th/DataTableTh.tsx +19 -9
  538. package/src/data/table/th/DataTableThActions.tsx +1 -1
  539. package/src/data/table/tr/DataTableTr.tsx +7 -3
  540. package/src/date/Date.Input.tsx +1 -2
  541. package/src/date/datepicker/DatePicker.types.ts +2 -1
  542. package/src/date/datepicker/hooks/useDatepicker.tsx +12 -13
  543. package/src/date/datepicker/hooks/useRangeDatepicker.tsx +4 -5
  544. package/src/date/datepicker/parts/DatePicker.RDP.tsx +1 -1
  545. package/src/date/datepicker/parts/DatePicker.Standalone.tsx +4 -5
  546. package/src/date/datepicker/parts/DatePicker.WeekNumber.tsx +1 -1
  547. package/src/date/datepicker/parts/DatePicker.WeekRow.tsx +1 -1
  548. package/src/date/monthpicker/hooks/useMonthPicker.tsx +4 -5
  549. package/src/date/monthpicker/parts/MonthPicker.Standalone.tsx +4 -5
  550. package/src/dialog/close-trigger/DialogCloseTrigger.tsx +1 -2
  551. package/src/dialog/popup/DialogPopupInternal.tsx +3 -4
  552. package/src/dropdown/Menu/GroupedList/GroupedHeading.tsx +1 -2
  553. package/src/dropdown/Menu/GroupedList/GroupedItem.tsx +1 -2
  554. package/src/dropdown/Menu/GroupedList/index.tsx +4 -6
  555. package/src/dropdown/Menu/List/index.tsx +3 -4
  556. package/src/dropdown/Menu/index.tsx +5 -4
  557. package/src/dropdown/Toggle.tsx +1 -2
  558. package/src/expansion-card/ExpansionCardContent.tsx +1 -2
  559. package/src/expansion-card/ExpansionCardDescription.tsx +1 -2
  560. package/src/expansion-card/ExpansionCardHeader.tsx +1 -2
  561. package/src/expansion-card/ExpansionCardTitle.tsx +1 -2
  562. package/src/form/checkbox/CheckboxGroup.tsx +4 -5
  563. package/src/form/checkbox/types.ts +2 -1
  564. package/src/form/combobox/Combobox.tsx +1 -1
  565. package/src/form/combobox/FilteredOptions/FilteredOptions.tsx +2 -2
  566. package/src/form/combobox/FilteredOptions/filteredOptionsContext.tsx +23 -9
  567. package/src/form/combobox/Input/Input.tsx +12 -13
  568. package/src/form/combobox/Input/InputController.tsx +1 -1
  569. package/src/form/combobox/types.ts +2 -1
  570. package/src/form/confirmation-panel/ConfirmationPanel.tsx +4 -5
  571. package/src/form/error-summary/ErrorSummary.tsx +7 -6
  572. package/src/form/error-summary/ErrorSummaryItem.tsx +1 -2
  573. package/src/form/fieldset/Fieldset.tsx +1 -2
  574. package/src/form/file-upload/dropzone/FileUploadDropzone.tsx +183 -0
  575. package/src/form/file-upload/{parts/dropzone → dropzone}/dropzone.types.ts +5 -4
  576. package/src/form/file-upload/{parts/dropzone → dropzone}/useDropzone.ts +1 -1
  577. package/src/form/file-upload/{parts/item/utils → helpers}/file-type-checker.ts +1 -1
  578. package/src/form/file-upload/{parts/item/utils → helpers}/format-file-size.ts +1 -1
  579. package/src/form/file-upload/{useFileUpload.ts → hooks/useFileUpload.ts} +8 -6
  580. package/src/form/file-upload/index.ts +11 -11
  581. package/src/form/file-upload/item/FileUploadItem.tsx +142 -0
  582. package/src/form/file-upload/{parts/item → item-action-field}/ItemActionField.tsx +4 -4
  583. package/src/form/file-upload/{parts/item → item-header}/ItemHeader.tsx +6 -6
  584. package/src/form/file-upload/{parts/item → item-icon}/ItemIcon.tsx +1 -1
  585. package/src/form/file-upload/{FileUpload.context.tsx → root/FileUploadRoot.context.tsx} +2 -2
  586. package/src/form/file-upload/{FileUpload.tsx → root/FileUploadRoot.tsx} +31 -12
  587. package/src/form/file-upload/{parts/Trigger.tsx → trigger/FileUploadTrigger.tsx} +9 -5
  588. package/src/form/form-progress/FormProgress.tsx +7 -9
  589. package/src/form/form-summary/FormSummary.tsx +3 -4
  590. package/src/form/form-summary/FormSummaryAnswer.tsx +1 -2
  591. package/src/form/form-summary/FormSummaryAnswers.tsx +1 -2
  592. package/src/form/form-summary/FormSummaryEditLink.tsx +1 -2
  593. package/src/form/form-summary/FormSummaryFooter.tsx +1 -2
  594. package/src/form/form-summary/FormSummaryHeader.tsx +1 -2
  595. package/src/form/form-summary/FormSummaryHeading.tsx +1 -2
  596. package/src/form/form-summary/FormSummaryLabel.tsx +1 -2
  597. package/src/form/form-summary/FormSummaryValue.tsx +1 -2
  598. package/src/form/radio/RadioGroup.tsx +4 -5
  599. package/src/form/radio/types.ts +2 -1
  600. package/src/form/search/SearchButton.tsx +4 -2
  601. package/src/form/select/Select.tsx +2 -1
  602. package/src/form/switch/Switch.tsx +6 -10
  603. package/src/form/textarea/Textarea.tsx +1 -2
  604. package/src/form/textfield/TextField.tsx +1 -2
  605. package/src/help-text/HelpText.tsx +2 -1
  606. package/src/index.ts +7 -7
  607. package/src/internal-header/InternalHeaderButton.tsx +1 -2
  608. package/src/internal-header/InternalHeaderTitle.tsx +1 -2
  609. package/src/internal-header/InternalHeaderUser.tsx +1 -2
  610. package/src/internal-header/InternalHeaderUserButton.tsx +1 -2
  611. package/src/link/Link.tsx +1 -2
  612. package/src/link-card/LinkCard.tsx +3 -4
  613. package/src/link-panel/LinkPanelDescription.tsx +1 -2
  614. package/src/link-panel/LinkPanelTitle.tsx +1 -2
  615. package/src/modal/Modal.tsx +3 -4
  616. package/src/pagination/Pagination.tsx +7 -9
  617. package/src/popover/Popover.tsx +4 -5
  618. package/src/popover/PopoverContent.tsx +1 -2
  619. package/src/{layout → primitives}/box/Box.tsx +4 -2
  620. package/src/{layout → primitives}/page/Page.tsx +4 -2
  621. package/src/process/Process.tsx +3 -4
  622. package/src/progress-bar/ProgressBar.tsx +4 -2
  623. package/src/read-more/ReadMore.tsx +1 -2
  624. package/src/stepper/Step.tsx +1 -2
  625. package/src/table/DataCell.tsx +1 -2
  626. package/src/table/ExpandableRow.tsx +4 -2
  627. package/src/table/HeaderCell.tsx +1 -2
  628. package/src/table/Table.tsx +4 -6
  629. package/src/tabs/Tabs.types.ts +4 -2
  630. package/src/tabs/parts/tab/Tab.tsx +4 -2
  631. package/src/timeline/Timeline.tsx +1 -2
  632. package/src/timeline/TimelineRow.tsx +45 -32
  633. package/src/timeline/period/index.tsx +4 -7
  634. package/src/timeline/pin/Pin.tsx +3 -4
  635. package/src/timeline/pin/PinInternal.tsx +1 -2
  636. package/src/timeline/utils/timeline.ts +1 -1
  637. package/src/timeline/zoom/index.tsx +5 -4
  638. package/src/toggle-group/ToggleGroup.types.ts +4 -2
  639. package/src/toggle-group/useToggleGroup.ts +5 -9
  640. package/src/tooltip/Tooltip.tsx +1 -1
  641. package/src/typography/BodyLong.tsx +1 -2
  642. package/src/typography/BodyShort.tsx +1 -2
  643. package/src/typography/Detail.tsx +1 -2
  644. package/src/typography/ErrorMessage.tsx +2 -1
  645. package/src/typography/Heading.tsx +2 -1
  646. package/src/typography/Ingress.tsx +1 -2
  647. package/src/typography/Label.tsx +2 -1
  648. package/src/{overlays → utils/components}/dismissablelayer/DismissableLayer.tsx +5 -6
  649. package/src/{overlays → utils/components}/dismissablelayer/util/useEscapeKeydown.ts +1 -1
  650. package/src/{overlays → utils/components}/dismissablelayer/util/useFocusOutside.ts +1 -1
  651. package/src/{overlays → utils/components}/dismissablelayer/util/usePointerDownOutside.ts +1 -1
  652. package/src/{overlays → utils/components}/dismissablelayer/util/usePointerUpOutside.ts +1 -1
  653. package/src/{overlays → utils/components}/floating/Floating.tsx +7 -6
  654. package/src/{overlays → utils/components}/floating/Floating.utils.ts +1 -1
  655. package/src/{overlays → utils/components}/floating-menu/Menu.tsx +7 -6
  656. package/src/{overlays → utils/components}/floating-menu/parts/RovingFocus.tsx +9 -7
  657. package/src/{overlays → utils/components}/floating-menu/parts/SlottedDivElement.tsx +1 -1
  658. package/src/utils/components/textarea-autosize/TextareaAutoSize.tsx +4 -5
  659. package/src/utils/components/virtualfocus/parts/VirtualFocusAnchor.tsx +4 -2
  660. package/src/utils/components/virtualfocus/parts/VirtualFocusItem.tsx +4 -2
  661. package/src/utils-external/hooks/useEventListener.ts +2 -2
  662. package/cjs/collapsible/Collapsible.context.js.map +0 -1
  663. package/cjs/collapsible/Collapsible.js.map +0 -1
  664. package/cjs/collapsible/Collapsible.types.d.ts +0 -19
  665. package/cjs/collapsible/Collapsible.types.js.map +0 -1
  666. package/cjs/form/file-upload/FileUpload.context.js.map +0 -1
  667. package/cjs/form/file-upload/FileUpload.js.map +0 -1
  668. package/cjs/form/file-upload/parts/Trigger.d.ts +0 -7
  669. package/cjs/form/file-upload/parts/Trigger.js.map +0 -1
  670. package/cjs/form/file-upload/parts/dropzone/Dropzone.d.ts +0 -4
  671. package/cjs/form/file-upload/parts/dropzone/Dropzone.js.map +0 -1
  672. package/cjs/form/file-upload/parts/dropzone/dropzone.types.js.map +0 -1
  673. package/cjs/form/file-upload/parts/dropzone/useDropzone.js.map +0 -1
  674. package/cjs/form/file-upload/parts/item/Item.js.map +0 -1
  675. package/cjs/form/file-upload/parts/item/Item.types.js +0 -3
  676. package/cjs/form/file-upload/parts/item/Item.types.js.map +0 -1
  677. package/cjs/form/file-upload/parts/item/ItemActionField.js.map +0 -1
  678. package/cjs/form/file-upload/parts/item/ItemButton.d.ts +0 -9
  679. package/cjs/form/file-upload/parts/item/ItemButton.js +0 -14
  680. package/cjs/form/file-upload/parts/item/ItemButton.js.map +0 -1
  681. package/cjs/form/file-upload/parts/item/ItemHeader.js.map +0 -1
  682. package/cjs/form/file-upload/parts/item/ItemIcon.js.map +0 -1
  683. package/cjs/form/file-upload/parts/item/utils/download-file.js.map +0 -1
  684. package/cjs/form/file-upload/parts/item/utils/file-type-checker.js.map +0 -1
  685. package/cjs/form/file-upload/parts/item/utils/format-file-size.js.map +0 -1
  686. package/cjs/form/file-upload/useFileUpload.js.map +0 -1
  687. package/cjs/form/file-upload/utils/is-accepted-file-type.js.map +0 -1
  688. package/cjs/form/file-upload/utils/is-accepted-size.js.map +0 -1
  689. package/cjs/form/file-upload/utils/validate-files.js.map +0 -1
  690. package/cjs/layout/base/BasePrimitive.js.map +0 -1
  691. package/cjs/layout/base/PrimitiveAsChildProps.js.map +0 -1
  692. package/cjs/layout/bleed/Bleed.js.map +0 -1
  693. package/cjs/layout/bleed/index.js.map +0 -1
  694. package/cjs/layout/box/Box.darkside.js.map +0 -1
  695. package/cjs/layout/box/Box.js.map +0 -1
  696. package/cjs/layout/box/index.js.map +0 -1
  697. package/cjs/layout/grid/HGrid.js.map +0 -1
  698. package/cjs/layout/grid/index.js.map +0 -1
  699. package/cjs/layout/page/Page.js.map +0 -1
  700. package/cjs/layout/page/index.js.map +0 -1
  701. package/cjs/layout/page/parts/PageBlock.js.map +0 -1
  702. package/cjs/layout/responsive/Responsive.js.map +0 -1
  703. package/cjs/layout/responsive/index.js.map +0 -1
  704. package/cjs/layout/stack/HStack.js.map +0 -1
  705. package/cjs/layout/stack/Spacer.js.map +0 -1
  706. package/cjs/layout/stack/Stack.js.map +0 -1
  707. package/cjs/layout/stack/VStack.js.map +0 -1
  708. package/cjs/layout/stack/index.js.map +0 -1
  709. package/cjs/layout/utilities/css.js.map +0 -1
  710. package/cjs/layout/utilities/types.js.map +0 -1
  711. package/cjs/overlays/action-menu/ActionMenu.js.map +0 -1
  712. package/cjs/overlays/action-menu/index.js.map +0 -1
  713. package/cjs/overlays/dismissablelayer/DismissableLayer.js.map +0 -1
  714. package/cjs/overlays/dismissablelayer/util/dispatchCustomEvent.js.map +0 -1
  715. package/cjs/overlays/dismissablelayer/util/sort-layers.js.map +0 -1
  716. package/cjs/overlays/dismissablelayer/util/useEscapeKeydown.js.map +0 -1
  717. package/cjs/overlays/dismissablelayer/util/useFocusOutside.js.map +0 -1
  718. package/cjs/overlays/dismissablelayer/util/usePointerDownOutside.js.map +0 -1
  719. package/cjs/overlays/dismissablelayer/util/usePointerUpOutside.js.map +0 -1
  720. package/cjs/overlays/floating/Floating.js.map +0 -1
  721. package/cjs/overlays/floating/Floating.utils.js.map +0 -1
  722. package/cjs/overlays/floating-menu/Menu.js.map +0 -1
  723. package/cjs/overlays/floating-menu/parts/RovingFocus.js.map +0 -1
  724. package/cjs/overlays/floating-menu/parts/SlottedDivElement.js.map +0 -1
  725. package/esm/collapsible/Collapsible.context.js.map +0 -1
  726. package/esm/collapsible/Collapsible.js.map +0 -1
  727. package/esm/collapsible/Collapsible.types.d.ts +0 -19
  728. package/esm/collapsible/Collapsible.types.js +0 -2
  729. package/esm/collapsible/Collapsible.types.js.map +0 -1
  730. package/esm/form/file-upload/FileUpload.context.js.map +0 -1
  731. package/esm/form/file-upload/FileUpload.js.map +0 -1
  732. package/esm/form/file-upload/parts/Trigger.d.ts +0 -7
  733. package/esm/form/file-upload/parts/Trigger.js.map +0 -1
  734. package/esm/form/file-upload/parts/dropzone/Dropzone.d.ts +0 -4
  735. package/esm/form/file-upload/parts/dropzone/Dropzone.js.map +0 -1
  736. package/esm/form/file-upload/parts/dropzone/dropzone.types.js.map +0 -1
  737. package/esm/form/file-upload/parts/dropzone/useDropzone.js.map +0 -1
  738. package/esm/form/file-upload/parts/item/Item.js.map +0 -1
  739. package/esm/form/file-upload/parts/item/Item.types.js +0 -2
  740. package/esm/form/file-upload/parts/item/Item.types.js.map +0 -1
  741. package/esm/form/file-upload/parts/item/ItemActionField.js.map +0 -1
  742. package/esm/form/file-upload/parts/item/ItemButton.d.ts +0 -9
  743. package/esm/form/file-upload/parts/item/ItemButton.js +0 -9
  744. package/esm/form/file-upload/parts/item/ItemButton.js.map +0 -1
  745. package/esm/form/file-upload/parts/item/ItemIcon.js.map +0 -1
  746. package/esm/form/file-upload/parts/item/utils/download-file.js.map +0 -1
  747. package/esm/form/file-upload/parts/item/utils/file-type-checker.js.map +0 -1
  748. package/esm/form/file-upload/parts/item/utils/format-file-size.js.map +0 -1
  749. package/esm/form/file-upload/useFileUpload.js.map +0 -1
  750. package/esm/form/file-upload/utils/is-accepted-file-type.js.map +0 -1
  751. package/esm/form/file-upload/utils/is-accepted-size.js.map +0 -1
  752. package/esm/form/file-upload/utils/validate-files.js.map +0 -1
  753. package/esm/layout/base/BasePrimitive.js.map +0 -1
  754. package/esm/layout/base/PrimitiveAsChildProps.js.map +0 -1
  755. package/esm/layout/bleed/Bleed.js.map +0 -1
  756. package/esm/layout/bleed/index.js.map +0 -1
  757. package/esm/layout/box/Box.darkside.js.map +0 -1
  758. package/esm/layout/box/Box.js.map +0 -1
  759. package/esm/layout/box/index.js.map +0 -1
  760. package/esm/layout/grid/HGrid.js.map +0 -1
  761. package/esm/layout/grid/index.js.map +0 -1
  762. package/esm/layout/page/Page.js.map +0 -1
  763. package/esm/layout/page/index.js.map +0 -1
  764. package/esm/layout/page/parts/PageBlock.js.map +0 -1
  765. package/esm/layout/responsive/Responsive.js.map +0 -1
  766. package/esm/layout/responsive/index.js.map +0 -1
  767. package/esm/layout/stack/HStack.js.map +0 -1
  768. package/esm/layout/stack/Spacer.js.map +0 -1
  769. package/esm/layout/stack/Stack.js.map +0 -1
  770. package/esm/layout/stack/VStack.js.map +0 -1
  771. package/esm/layout/stack/index.js.map +0 -1
  772. package/esm/layout/utilities/css.js.map +0 -1
  773. package/esm/layout/utilities/types.js.map +0 -1
  774. package/esm/overlays/action-menu/ActionMenu.js.map +0 -1
  775. package/esm/overlays/action-menu/index.js.map +0 -1
  776. package/esm/overlays/dismissablelayer/DismissableLayer.js.map +0 -1
  777. package/esm/overlays/dismissablelayer/util/dispatchCustomEvent.js.map +0 -1
  778. package/esm/overlays/dismissablelayer/util/sort-layers.js.map +0 -1
  779. package/esm/overlays/dismissablelayer/util/useEscapeKeydown.js.map +0 -1
  780. package/esm/overlays/dismissablelayer/util/useFocusOutside.js.map +0 -1
  781. package/esm/overlays/dismissablelayer/util/usePointerDownOutside.js.map +0 -1
  782. package/esm/overlays/dismissablelayer/util/usePointerUpOutside.js.map +0 -1
  783. package/esm/overlays/floating/Floating.js.map +0 -1
  784. package/esm/overlays/floating/Floating.utils.js.map +0 -1
  785. package/esm/overlays/floating-menu/Menu.js.map +0 -1
  786. package/esm/overlays/floating-menu/parts/RovingFocus.js.map +0 -1
  787. package/esm/overlays/floating-menu/parts/SlottedDivElement.js.map +0 -1
  788. package/src/collapsible/Collapsible.types.ts +0 -19
  789. package/src/form/file-upload/parts/dropzone/Dropzone.tsx +0 -189
  790. package/src/form/file-upload/parts/item/Item.tsx +0 -140
  791. package/src/form/file-upload/parts/item/ItemButton.tsx +0 -27
  792. /package/cjs/{overlays/action-menu → action-menu}/index.d.ts +0 -0
  793. /package/cjs/{overlays/action-menu → action-menu}/index.js +0 -0
  794. /package/cjs/collapsible/{parts/Collapsible.Content.d.ts → content/CollapsibleContent.d.ts} +0 -0
  795. /package/cjs/collapsible/{parts/Collapsible.Trigger.d.ts → trigger/CollapsibleTrigger.d.ts} +0 -0
  796. /package/cjs/form/file-upload/{parts/dropzone → dropzone}/dropzone.types.js +0 -0
  797. /package/cjs/form/file-upload/{parts/dropzone → dropzone}/useDropzone.js +0 -0
  798. /package/cjs/form/file-upload/{parts/item/utils → helpers}/download-file.d.ts +0 -0
  799. /package/cjs/form/file-upload/{parts/item/utils → helpers}/download-file.js +0 -0
  800. /package/cjs/form/file-upload/{parts/item/utils → helpers}/file-type-checker.js +0 -0
  801. /package/cjs/form/file-upload/{parts/item/utils → helpers}/format-file-size.js +0 -0
  802. /package/cjs/form/file-upload/{utils → helpers}/is-accepted-file-type.d.ts +0 -0
  803. /package/cjs/form/file-upload/{utils → helpers}/is-accepted-file-type.js +0 -0
  804. /package/cjs/form/file-upload/{utils → helpers}/is-accepted-size.d.ts +0 -0
  805. /package/cjs/form/file-upload/{utils → helpers}/is-accepted-size.js +0 -0
  806. /package/cjs/form/file-upload/{utils → helpers}/validate-files.d.ts +0 -0
  807. /package/cjs/form/file-upload/{utils → helpers}/validate-files.js +0 -0
  808. /package/cjs/form/file-upload/{parts/item/Item.types.d.ts → item/FileUploadItem.types.d.ts} +0 -0
  809. /package/cjs/form/file-upload/{parts/item → item-icon}/ItemIcon.js +0 -0
  810. /package/cjs/{layout → primitives}/base/BasePrimitive.d.ts +0 -0
  811. /package/cjs/{layout → primitives}/base/BasePrimitive.js +0 -0
  812. /package/cjs/{layout → primitives}/base/PrimitiveAsChildProps.d.ts +0 -0
  813. /package/cjs/{layout → primitives}/base/PrimitiveAsChildProps.js +0 -0
  814. /package/cjs/{layout → primitives}/bleed/Bleed.d.ts +0 -0
  815. /package/cjs/{layout → primitives}/bleed/Bleed.js +0 -0
  816. /package/cjs/{layout → primitives}/bleed/index.d.ts +0 -0
  817. /package/cjs/{layout → primitives}/bleed/index.js +0 -0
  818. /package/cjs/{layout → primitives}/box/Box.d.ts +0 -0
  819. /package/cjs/{layout → primitives}/box/Box.darkside.d.ts +0 -0
  820. /package/cjs/{layout → primitives}/box/Box.darkside.js +0 -0
  821. /package/cjs/{layout → primitives}/box/Box.js +0 -0
  822. /package/cjs/{layout → primitives}/box/index.d.ts +0 -0
  823. /package/cjs/{layout → primitives}/box/index.js +0 -0
  824. /package/cjs/{layout → primitives}/grid/HGrid.d.ts +0 -0
  825. /package/cjs/{layout → primitives}/grid/HGrid.js +0 -0
  826. /package/cjs/{layout → primitives}/grid/index.d.ts +0 -0
  827. /package/cjs/{layout → primitives}/grid/index.js +0 -0
  828. /package/cjs/{layout → primitives}/page/Page.d.ts +0 -0
  829. /package/cjs/{layout → primitives}/page/Page.js +0 -0
  830. /package/cjs/{layout → primitives}/page/index.d.ts +0 -0
  831. /package/cjs/{layout → primitives}/page/index.js +0 -0
  832. /package/cjs/{layout → primitives}/page/parts/PageBlock.d.ts +0 -0
  833. /package/cjs/{layout → primitives}/page/parts/PageBlock.js +0 -0
  834. /package/cjs/{layout → primitives}/responsive/Responsive.d.ts +0 -0
  835. /package/cjs/{layout → primitives}/responsive/Responsive.js +0 -0
  836. /package/cjs/{layout → primitives}/responsive/index.d.ts +0 -0
  837. /package/cjs/{layout → primitives}/responsive/index.js +0 -0
  838. /package/cjs/{layout → primitives}/stack/HStack.d.ts +0 -0
  839. /package/cjs/{layout → primitives}/stack/HStack.js +0 -0
  840. /package/cjs/{layout → primitives}/stack/Spacer.d.ts +0 -0
  841. /package/cjs/{layout → primitives}/stack/Spacer.js +0 -0
  842. /package/cjs/{layout → primitives}/stack/Stack.d.ts +0 -0
  843. /package/cjs/{layout → primitives}/stack/Stack.js +0 -0
  844. /package/cjs/{layout → primitives}/stack/VStack.d.ts +0 -0
  845. /package/cjs/{layout → primitives}/stack/VStack.js +0 -0
  846. /package/cjs/{layout → primitives}/stack/index.d.ts +0 -0
  847. /package/cjs/{layout → primitives}/stack/index.js +0 -0
  848. /package/cjs/{layout → primitives}/utilities/css.d.ts +0 -0
  849. /package/cjs/{layout → primitives}/utilities/css.js +0 -0
  850. /package/cjs/{layout → primitives}/utilities/types.d.ts +0 -0
  851. /package/cjs/{layout → primitives}/utilities/types.js +0 -0
  852. /package/cjs/{overlays → utils/components}/dismissablelayer/util/dispatchCustomEvent.d.ts +0 -0
  853. /package/cjs/{overlays → utils/components}/dismissablelayer/util/dispatchCustomEvent.js +0 -0
  854. /package/cjs/{overlays → utils/components}/dismissablelayer/util/sort-layers.d.ts +0 -0
  855. /package/cjs/{overlays → utils/components}/dismissablelayer/util/sort-layers.js +0 -0
  856. /package/cjs/{overlays → utils/components}/dismissablelayer/util/useEscapeKeydown.d.ts +0 -0
  857. /package/cjs/{overlays → utils/components}/dismissablelayer/util/useFocusOutside.d.ts +0 -0
  858. /package/cjs/{overlays → utils/components}/dismissablelayer/util/usePointerDownOutside.d.ts +0 -0
  859. /package/cjs/{overlays → utils/components}/dismissablelayer/util/usePointerUpOutside.d.ts +0 -0
  860. /package/cjs/{overlays → utils/components}/floating/Floating.utils.js +0 -0
  861. /package/cjs/{overlays → utils/components}/floating-menu/parts/SlottedDivElement.d.ts +0 -0
  862. /package/esm/{overlays/action-menu → action-menu}/index.d.ts +0 -0
  863. /package/esm/{overlays/action-menu → action-menu}/index.js +0 -0
  864. /package/esm/collapsible/{parts/Collapsible.Content.d.ts → content/CollapsibleContent.d.ts} +0 -0
  865. /package/esm/collapsible/{parts/Collapsible.Trigger.d.ts → trigger/CollapsibleTrigger.d.ts} +0 -0
  866. /package/esm/form/file-upload/{parts/dropzone → dropzone}/dropzone.types.js +0 -0
  867. /package/esm/form/file-upload/{parts/dropzone → dropzone}/useDropzone.js +0 -0
  868. /package/esm/form/file-upload/{parts/item/utils → helpers}/download-file.d.ts +0 -0
  869. /package/esm/form/file-upload/{parts/item/utils → helpers}/download-file.js +0 -0
  870. /package/esm/form/file-upload/{parts/item/utils → helpers}/file-type-checker.js +0 -0
  871. /package/esm/form/file-upload/{parts/item/utils → helpers}/format-file-size.js +0 -0
  872. /package/esm/form/file-upload/{utils → helpers}/is-accepted-file-type.d.ts +0 -0
  873. /package/esm/form/file-upload/{utils → helpers}/is-accepted-file-type.js +0 -0
  874. /package/esm/form/file-upload/{utils → helpers}/is-accepted-size.d.ts +0 -0
  875. /package/esm/form/file-upload/{utils → helpers}/is-accepted-size.js +0 -0
  876. /package/esm/form/file-upload/{utils → helpers}/validate-files.d.ts +0 -0
  877. /package/esm/form/file-upload/{utils → helpers}/validate-files.js +0 -0
  878. /package/esm/form/file-upload/{parts/item/Item.types.d.ts → item/FileUploadItem.types.d.ts} +0 -0
  879. /package/esm/form/file-upload/{parts/item → item-icon}/ItemIcon.js +0 -0
  880. /package/esm/{layout → primitives}/base/BasePrimitive.d.ts +0 -0
  881. /package/esm/{layout → primitives}/base/BasePrimitive.js +0 -0
  882. /package/esm/{layout → primitives}/base/PrimitiveAsChildProps.d.ts +0 -0
  883. /package/esm/{layout → primitives}/base/PrimitiveAsChildProps.js +0 -0
  884. /package/esm/{layout → primitives}/bleed/Bleed.d.ts +0 -0
  885. /package/esm/{layout → primitives}/bleed/Bleed.js +0 -0
  886. /package/esm/{layout → primitives}/bleed/index.d.ts +0 -0
  887. /package/esm/{layout → primitives}/bleed/index.js +0 -0
  888. /package/esm/{layout → primitives}/box/Box.d.ts +0 -0
  889. /package/esm/{layout → primitives}/box/Box.darkside.d.ts +0 -0
  890. /package/esm/{layout → primitives}/box/Box.darkside.js +0 -0
  891. /package/esm/{layout → primitives}/box/Box.js +0 -0
  892. /package/esm/{layout → primitives}/box/index.d.ts +0 -0
  893. /package/esm/{layout → primitives}/box/index.js +0 -0
  894. /package/esm/{layout → primitives}/grid/HGrid.d.ts +0 -0
  895. /package/esm/{layout → primitives}/grid/HGrid.js +0 -0
  896. /package/esm/{layout → primitives}/grid/index.d.ts +0 -0
  897. /package/esm/{layout → primitives}/grid/index.js +0 -0
  898. /package/esm/{layout → primitives}/page/Page.d.ts +0 -0
  899. /package/esm/{layout → primitives}/page/Page.js +0 -0
  900. /package/esm/{layout → primitives}/page/index.d.ts +0 -0
  901. /package/esm/{layout → primitives}/page/index.js +0 -0
  902. /package/esm/{layout → primitives}/page/parts/PageBlock.d.ts +0 -0
  903. /package/esm/{layout → primitives}/page/parts/PageBlock.js +0 -0
  904. /package/esm/{layout → primitives}/responsive/Responsive.d.ts +0 -0
  905. /package/esm/{layout → primitives}/responsive/Responsive.js +0 -0
  906. /package/esm/{layout → primitives}/responsive/index.d.ts +0 -0
  907. /package/esm/{layout → primitives}/responsive/index.js +0 -0
  908. /package/esm/{layout → primitives}/stack/HStack.d.ts +0 -0
  909. /package/esm/{layout → primitives}/stack/HStack.js +0 -0
  910. /package/esm/{layout → primitives}/stack/Spacer.d.ts +0 -0
  911. /package/esm/{layout → primitives}/stack/Spacer.js +0 -0
  912. /package/esm/{layout → primitives}/stack/Stack.d.ts +0 -0
  913. /package/esm/{layout → primitives}/stack/Stack.js +0 -0
  914. /package/esm/{layout → primitives}/stack/VStack.d.ts +0 -0
  915. /package/esm/{layout → primitives}/stack/VStack.js +0 -0
  916. /package/esm/{layout → primitives}/stack/index.d.ts +0 -0
  917. /package/esm/{layout → primitives}/stack/index.js +0 -0
  918. /package/esm/{layout → primitives}/utilities/css.d.ts +0 -0
  919. /package/esm/{layout → primitives}/utilities/css.js +0 -0
  920. /package/esm/{layout → primitives}/utilities/types.d.ts +0 -0
  921. /package/esm/{layout → primitives}/utilities/types.js +0 -0
  922. /package/esm/{overlays → utils/components}/dismissablelayer/util/dispatchCustomEvent.d.ts +0 -0
  923. /package/esm/{overlays → utils/components}/dismissablelayer/util/dispatchCustomEvent.js +0 -0
  924. /package/esm/{overlays → utils/components}/dismissablelayer/util/sort-layers.d.ts +0 -0
  925. /package/esm/{overlays → utils/components}/dismissablelayer/util/sort-layers.js +0 -0
  926. /package/esm/{overlays → utils/components}/dismissablelayer/util/useEscapeKeydown.d.ts +0 -0
  927. /package/esm/{overlays → utils/components}/dismissablelayer/util/useFocusOutside.d.ts +0 -0
  928. /package/esm/{overlays → utils/components}/dismissablelayer/util/usePointerDownOutside.d.ts +0 -0
  929. /package/esm/{overlays → utils/components}/dismissablelayer/util/usePointerUpOutside.d.ts +0 -0
  930. /package/esm/{overlays → utils/components}/floating/Floating.utils.js +0 -0
  931. /package/esm/{overlays → utils/components}/floating-menu/parts/SlottedDivElement.d.ts +0 -0
  932. /package/src/{overlays/action-menu → action-menu}/index.ts +0 -0
  933. /package/src/form/file-upload/{parts/item/utils → helpers}/download-file.ts +0 -0
  934. /package/src/form/file-upload/{parts/item/utils → helpers}/format-file-size.test.ts +0 -0
  935. /package/src/form/file-upload/{utils → helpers}/is-accepted-file-type.test.ts +0 -0
  936. /package/src/form/file-upload/{utils → helpers}/is-accepted-file-type.ts +0 -0
  937. /package/src/form/file-upload/{utils → helpers}/is-accepted-size.test.ts +0 -0
  938. /package/src/form/file-upload/{utils → helpers}/is-accepted-size.ts +0 -0
  939. /package/src/form/file-upload/{utils → helpers}/validate-files.test.ts +0 -0
  940. /package/src/form/file-upload/{utils → helpers}/validate-files.ts +0 -0
  941. /package/src/form/file-upload/{parts/item/Item.types.ts → item/FileUploadItem.types.ts} +0 -0
  942. /package/src/{layout → primitives}/base/BasePrimitive.tsx +0 -0
  943. /package/src/{layout → primitives}/base/PrimitiveAsChildProps.ts +0 -0
  944. /package/src/{layout → primitives}/bleed/Bleed.tsx +0 -0
  945. /package/src/{layout → primitives}/bleed/index.ts +0 -0
  946. /package/src/{layout → primitives}/box/Box.darkside.tsx +0 -0
  947. /package/src/{layout → primitives}/box/index.ts +0 -0
  948. /package/src/{layout → primitives}/grid/HGrid.tsx +0 -0
  949. /package/src/{layout → primitives}/grid/index.ts +0 -0
  950. /package/src/{layout → primitives}/page/index.ts +0 -0
  951. /package/src/{layout → primitives}/page/parts/PageBlock.tsx +0 -0
  952. /package/src/{layout → primitives}/responsive/Responsive.tsx +0 -0
  953. /package/src/{layout → primitives}/responsive/index.ts +0 -0
  954. /package/src/{layout → primitives}/stack/HStack.tsx +0 -0
  955. /package/src/{layout → primitives}/stack/Spacer.tsx +0 -0
  956. /package/src/{layout → primitives}/stack/Stack.tsx +0 -0
  957. /package/src/{layout → primitives}/stack/VStack.tsx +0 -0
  958. /package/src/{layout → primitives}/stack/index.ts +0 -0
  959. /package/src/{layout → primitives}/utilities/css.ts +0 -0
  960. /package/src/{layout → primitives}/utilities/types.ts +0 -0
  961. /package/src/{overlays → utils/components}/dismissablelayer/README.md +0 -0
  962. /package/src/{overlays → utils/components}/dismissablelayer/util/dispatchCustomEvent.ts +0 -0
  963. /package/src/{overlays → utils/components}/dismissablelayer/util/sort-layers.test.ts +0 -0
  964. /package/src/{overlays → utils/components}/dismissablelayer/util/sort-layers.ts +0 -0
@@ -0,0 +1,112 @@
1
+ import { getFocusableTarget } from "./table-focus";
2
+
3
+ /**
4
+ * Builds a utility grid allowing for easier keyboard-navigation between cells on columns and rows
5
+ */
6
+ function buildTableGrid(tableRef: HTMLTableElement): {
7
+ grid: (Element | undefined)[][];
8
+ positions: Map<Element, { x: number; y: number }>;
9
+ maxCols: number;
10
+ } {
11
+ const rows = tableRef.rows;
12
+ const grid: (Element | undefined)[][] = [];
13
+ const positions = new Map<Element, { x: number; y: number }>();
14
+ let maxCols = 0;
15
+
16
+ /* Walk trough each row in order */
17
+ for (let rowIndex = 0; rowIndex < rows.length; rowIndex += 1) {
18
+ const row = rows[rowIndex];
19
+ const cells = row.cells;
20
+ if (!grid[rowIndex]) {
21
+ grid[rowIndex] = [];
22
+ }
23
+
24
+ let colIndex = 0;
25
+
26
+ /* Walk trough each cell in row */
27
+ for (let cellIndex = 0; cellIndex < cells.length; cellIndex += 1) {
28
+ const cell = cells[cellIndex];
29
+
30
+ /* Skip over slots already occupied by previous row/col spans. */
31
+ while (grid[rowIndex][colIndex]) {
32
+ colIndex += 1;
33
+ }
34
+
35
+ const colSpan = Math.max(cell.colSpan || 1, 1);
36
+ const rowSpan = Math.max(cell.rowSpan || 1, 1);
37
+
38
+ /* Fill the grid with references to this cell for its row/col span. */
39
+ for (let y = rowIndex; y < rowIndex + rowSpan; y += 1) {
40
+ if (!grid[y]) {
41
+ grid[y] = [];
42
+ }
43
+ for (let x = colIndex; x < colIndex + colSpan; x += 1) {
44
+ grid[y][x] = cell;
45
+ }
46
+ }
47
+
48
+ /* Track the top-left coordinate for each unique cell. */
49
+ if (!positions.has(cell)) {
50
+ positions.set(cell, { x: colIndex, y: rowIndex });
51
+ }
52
+
53
+ colIndex += colSpan;
54
+ if (colIndex > maxCols) {
55
+ maxCols = colIndex;
56
+ }
57
+ }
58
+ }
59
+
60
+ return { grid, positions, maxCols };
61
+ }
62
+
63
+ type TableGrid = ReturnType<typeof buildTableGrid>;
64
+
65
+ type GridCache = { grid: TableGrid | null; dirty: boolean };
66
+
67
+ /**
68
+ * Makes sure to keep a cached version of the table grid, and only rebuild it when necessary (when "dirty" flag is set)
69
+ */
70
+ function ensureTableGrid(
71
+ tableRef: HTMLTableElement,
72
+ tableGridCache: GridCache,
73
+ ): TableGrid {
74
+ if (tableGridCache.dirty || !tableGridCache.grid) {
75
+ tableGridCache.grid = buildTableGrid(tableRef);
76
+ tableGridCache.dirty = false;
77
+ }
78
+
79
+ return tableGridCache.grid;
80
+ }
81
+
82
+ /**
83
+ * Finds the next cell in the given direction, starting from the current position.
84
+ * Skips over cells that are not focusable or are the same as the current cell.
85
+ * Returns null if no next cell is found in the given direction.
86
+ */
87
+ function findNextCell(
88
+ grid: (Element | undefined)[][],
89
+ currentPos: { x: number; y: number },
90
+ delta: { x: number; y: number },
91
+ currentCell: Element,
92
+ maxCols: number,
93
+ ): Element | null {
94
+ let x = currentPos.x + delta.x;
95
+ let y = currentPos.y + delta.y;
96
+
97
+ const maxRows = grid.length;
98
+
99
+ while (y >= 0 && y < maxRows && x >= 0 && x < maxCols) {
100
+ const row = grid[y] ?? [];
101
+ const cell = row[x];
102
+ if (cell && cell !== currentCell && !!getFocusableTarget(cell)) {
103
+ return cell;
104
+ }
105
+ x += delta.x;
106
+ y += delta.y;
107
+ }
108
+
109
+ return null;
110
+ }
111
+
112
+ export { buildTableGrid, ensureTableGrid, findNextCell, type GridCache };
@@ -0,0 +1,247 @@
1
+ import { describe, expect, test } from "vitest";
2
+ import { shouldBlockArrowKeyNavigation } from "./table-keyboard";
3
+
4
+ describe("shouldBlockArrowKeyNavigation", () => {
5
+ test("should return false for non-arrow keys", () => {
6
+ const event = new KeyboardEvent("keydown", { key: "Enter" });
7
+ Object.defineProperty(event, "target", {
8
+ value: document.createElement("div"),
9
+ });
10
+ expect(shouldBlockArrowKeyNavigation(event)).toBe(false);
11
+ });
12
+
13
+ test("should return false when target is null", () => {
14
+ const event = new KeyboardEvent("keydown", { key: "ArrowLeft" });
15
+ Object.defineProperty(event, "target", { value: null });
16
+ expect(shouldBlockArrowKeyNavigation(event)).toBe(false);
17
+ });
18
+
19
+ test("should return false for non-editable elements", () => {
20
+ const div = document.createElement("div");
21
+ const event = new KeyboardEvent("keydown", { key: "ArrowLeft" });
22
+ Object.defineProperty(event, "target", { value: div });
23
+ expect(shouldBlockArrowKeyNavigation(event)).toBe(false);
24
+ });
25
+
26
+ test("should return true when target is contentEditable", () => {
27
+ const div = document.createElement("div");
28
+ div.setAttribute("contenteditable", "true");
29
+ document.body.appendChild(div);
30
+
31
+ const event = new KeyboardEvent("keydown", { key: "ArrowLeft" });
32
+ Object.defineProperty(event, "target", { value: div });
33
+ expect(shouldBlockArrowKeyNavigation(event)).toBe(true);
34
+
35
+ document.body.removeChild(div);
36
+ });
37
+
38
+ test("should return true when target is inside contentEditable", () => {
39
+ const parent = document.createElement("div");
40
+ parent.setAttribute("contenteditable", "true");
41
+ const child = document.createElement("span");
42
+ parent.appendChild(child);
43
+ document.body.appendChild(parent);
44
+
45
+ const event = new KeyboardEvent("keydown", { key: "ArrowRight" });
46
+ Object.defineProperty(event, "target", { value: child });
47
+ expect(shouldBlockArrowKeyNavigation(event)).toBe(true);
48
+
49
+ document.body.removeChild(parent);
50
+ });
51
+
52
+ test("should return false for checkbox input", () => {
53
+ const input = document.createElement("input");
54
+ input.type = "checkbox";
55
+ const event = new KeyboardEvent("keydown", { key: "ArrowLeft" });
56
+ Object.defineProperty(event, "target", { value: input });
57
+ expect(shouldBlockArrowKeyNavigation(event)).toBe(false);
58
+ });
59
+
60
+ test("should return false for radio input", () => {
61
+ const input = document.createElement("input");
62
+ input.type = "radio";
63
+ const event = new KeyboardEvent("keydown", { key: "ArrowRight" });
64
+ Object.defineProperty(event, "target", { value: input });
65
+ expect(shouldBlockArrowKeyNavigation(event)).toBe(false);
66
+ });
67
+
68
+ test("should return false for non-text input types", () => {
69
+ const input = document.createElement("input");
70
+ input.type = "button";
71
+ const event = new KeyboardEvent("keydown", { key: "ArrowLeft" });
72
+ Object.defineProperty(event, "target", { value: input });
73
+ expect(shouldBlockArrowKeyNavigation(event)).toBe(false);
74
+ });
75
+
76
+ test("should return true for text input when selectionStart is null", () => {
77
+ const input = document.createElement("input");
78
+ input.type = "text";
79
+ Object.defineProperty(input, "selectionStart", {
80
+ value: null,
81
+ configurable: true,
82
+ });
83
+ Object.defineProperty(input, "selectionEnd", {
84
+ value: null,
85
+ configurable: true,
86
+ });
87
+ const event = new KeyboardEvent("keydown", { key: "ArrowLeft" });
88
+ Object.defineProperty(event, "target", { value: input });
89
+ expect(shouldBlockArrowKeyNavigation(event)).toBe(true);
90
+ });
91
+
92
+ test("should block ArrowLeft when cursor is not at start of text input", () => {
93
+ const input = document.createElement("input");
94
+ input.type = "text";
95
+ input.value = "test";
96
+ input.setSelectionRange(2, 2);
97
+ const event = new KeyboardEvent("keydown", { key: "ArrowLeft" });
98
+ Object.defineProperty(event, "target", { value: input });
99
+ expect(shouldBlockArrowKeyNavigation(event)).toBe(true);
100
+ });
101
+
102
+ test("should not block ArrowLeft when cursor is at start of text input", () => {
103
+ const input = document.createElement("input");
104
+ input.type = "text";
105
+ input.value = "test";
106
+ input.setSelectionRange(0, 0);
107
+ const event = new KeyboardEvent("keydown", { key: "ArrowLeft" });
108
+ Object.defineProperty(event, "target", { value: input });
109
+ expect(shouldBlockArrowKeyNavigation(event)).toBe(false);
110
+ });
111
+
112
+ test("should block ArrowRight when cursor is not at end of text input", () => {
113
+ const input = document.createElement("input");
114
+ input.type = "text";
115
+ input.value = "test";
116
+ input.setSelectionRange(2, 2);
117
+ const event = new KeyboardEvent("keydown", { key: "ArrowRight" });
118
+ Object.defineProperty(event, "target", { value: input });
119
+ expect(shouldBlockArrowKeyNavigation(event)).toBe(true);
120
+ });
121
+
122
+ test("should not block ArrowRight when cursor is at end of text input", () => {
123
+ const input = document.createElement("input");
124
+ input.type = "text";
125
+ input.value = "test";
126
+ input.setSelectionRange(4, 4);
127
+ const event = new KeyboardEvent("keydown", { key: "ArrowRight" });
128
+ Object.defineProperty(event, "target", { value: input });
129
+ expect(shouldBlockArrowKeyNavigation(event)).toBe(false);
130
+ });
131
+
132
+ test("should block ArrowLeft when text is selected in input", () => {
133
+ const input = document.createElement("input");
134
+ input.type = "text";
135
+ input.value = "test";
136
+ input.setSelectionRange(0, 2);
137
+ const event = new KeyboardEvent("keydown", { key: "ArrowLeft" });
138
+ Object.defineProperty(event, "target", { value: input });
139
+ expect(shouldBlockArrowKeyNavigation(event)).toBe(true);
140
+ });
141
+
142
+ test("should block ArrowRight when text is selected in input", () => {
143
+ const input = document.createElement("input");
144
+ input.type = "text";
145
+ input.value = "test";
146
+ input.setSelectionRange(1, 3);
147
+ const event = new KeyboardEvent("keydown", { key: "ArrowRight" });
148
+ Object.defineProperty(event, "target", { value: input });
149
+ expect(shouldBlockArrowKeyNavigation(event)).toBe(true);
150
+ });
151
+
152
+ test("should handle various text input types", () => {
153
+ /**
154
+ * Email and number types are excluded since "setSelectionRange" does not work.
155
+ */
156
+ const types = ["text", "search", "url", "tel", "password"];
157
+ types.forEach((type) => {
158
+ const input = document.createElement("input");
159
+ input.type = type;
160
+ input.value = "test";
161
+ input.setSelectionRange(2, 2);
162
+ const event = new KeyboardEvent("keydown", { key: "ArrowLeft" });
163
+ Object.defineProperty(event, "target", { value: input });
164
+ expect(shouldBlockArrowKeyNavigation(event)).toBe(true);
165
+ });
166
+ });
167
+
168
+ test("should block ArrowUp when cursor is not at start of textarea", () => {
169
+ const textarea = document.createElement("textarea");
170
+ textarea.value = "line1\nline2";
171
+ textarea.setSelectionRange(5, 5);
172
+ const event = new KeyboardEvent("keydown", { key: "ArrowUp" });
173
+ Object.defineProperty(event, "target", { value: textarea });
174
+ expect(shouldBlockArrowKeyNavigation(event)).toBe(true);
175
+ });
176
+
177
+ test("should not block ArrowUp when cursor is at start of textarea", () => {
178
+ const textarea = document.createElement("textarea");
179
+ textarea.value = "line1\nline2";
180
+ textarea.setSelectionRange(0, 0);
181
+ const event = new KeyboardEvent("keydown", { key: "ArrowUp" });
182
+ Object.defineProperty(event, "target", { value: textarea });
183
+ expect(shouldBlockArrowKeyNavigation(event)).toBe(false);
184
+ });
185
+
186
+ test("should block ArrowDown when cursor is not at end of textarea", () => {
187
+ const textarea = document.createElement("textarea");
188
+ textarea.value = "line1\nline2";
189
+ textarea.setSelectionRange(5, 5);
190
+ const event = new KeyboardEvent("keydown", { key: "ArrowDown" });
191
+ Object.defineProperty(event, "target", { value: textarea });
192
+ expect(shouldBlockArrowKeyNavigation(event)).toBe(true);
193
+ });
194
+
195
+ test("should not block ArrowDown when cursor is at end of textarea", () => {
196
+ const textarea = document.createElement("textarea");
197
+ textarea.value = "line1\nline2";
198
+ textarea.setSelectionRange(11, 11);
199
+ const event = new KeyboardEvent("keydown", { key: "ArrowDown" });
200
+ Object.defineProperty(event, "target", { value: textarea });
201
+ expect(shouldBlockArrowKeyNavigation(event)).toBe(false);
202
+ });
203
+
204
+ test("should return true for select with ArrowDown", () => {
205
+ const select = document.createElement("select");
206
+ const event = new KeyboardEvent("keydown", { key: "ArrowDown" });
207
+ Object.defineProperty(event, "target", { value: select });
208
+ expect(shouldBlockArrowKeyNavigation(event)).toBe(true);
209
+ });
210
+
211
+ test("should return true for select with ArrowUp", () => {
212
+ const select = document.createElement("select");
213
+ const event = new KeyboardEvent("keydown", { key: "ArrowUp" });
214
+ Object.defineProperty(event, "target", { value: select });
215
+ expect(shouldBlockArrowKeyNavigation(event)).toBe(true);
216
+ });
217
+
218
+ test("should return false for select with ArrowLeft", () => {
219
+ const select = document.createElement("select");
220
+ const event = new KeyboardEvent("keydown", { key: "ArrowLeft" });
221
+ Object.defineProperty(event, "target", { value: select });
222
+ expect(shouldBlockArrowKeyNavigation(event)).toBe(false);
223
+ });
224
+
225
+ test("should return false for select with ArrowRight", () => {
226
+ const select = document.createElement("select");
227
+ const event = new KeyboardEvent("keydown", { key: "ArrowRight" });
228
+ Object.defineProperty(event, "target", { value: select });
229
+ expect(shouldBlockArrowKeyNavigation(event)).toBe(false);
230
+ });
231
+
232
+ test("should handle element inside editable parent", () => {
233
+ const input = document.createElement("input");
234
+ input.type = "text";
235
+ input.value = "test";
236
+ input.setSelectionRange(2, 2);
237
+ const wrapper = document.createElement("div");
238
+ wrapper.appendChild(input);
239
+ document.body.appendChild(wrapper);
240
+
241
+ const event = new KeyboardEvent("keydown", { key: "ArrowLeft" });
242
+ Object.defineProperty(event, "target", { value: input });
243
+ expect(shouldBlockArrowKeyNavigation(event)).toBe(true);
244
+
245
+ document.body.removeChild(wrapper);
246
+ });
247
+ });
@@ -0,0 +1,126 @@
1
+ const keyToCoord = {
2
+ ArrowUp: { x: 0, y: -1 },
3
+ ArrowDown: { x: 0, y: 1 },
4
+ ArrowLeft: { x: -1, y: 0 },
5
+ ArrowRight: { x: 1, y: 0 },
6
+ } as const;
7
+
8
+ type DirectionsT = keyof typeof keyToCoord;
9
+ type Delta = { x: number; y: number };
10
+
11
+ function getDeltaFromKey(key: string): Delta | null {
12
+ if (key in keyToCoord) {
13
+ return keyToCoord[key as DirectionsT];
14
+ }
15
+
16
+ return null;
17
+ }
18
+
19
+ /**
20
+ * Tries to make assumptions of what the user is currently doing inside a table cell
21
+ * Should block navigation if:
22
+ * - Input has selection, caret is not at start/end
23
+ * - Select arrow down/up for opening popup
24
+ * - User is navigating inside multiline textarea
25
+ * - contenteditable attrb is in use
26
+ */
27
+ function shouldBlockArrowKeyNavigation(event: KeyboardEvent): boolean {
28
+ const key = event.key;
29
+ if (!(key in keyToCoord)) {
30
+ return false;
31
+ }
32
+
33
+ const el = event.target as HTMLElement | null;
34
+ if (!el) {
35
+ return false;
36
+ }
37
+
38
+ if (el.isContentEditable) {
39
+ return true;
40
+ }
41
+
42
+ /* If not any of these elements, assueme "safe" to navigate */
43
+ const editable = el.closest(
44
+ 'input, textarea, select, [contenteditable="true"]',
45
+ );
46
+
47
+ if (!editable) {
48
+ return false;
49
+ }
50
+
51
+ if (editable instanceof HTMLInputElement) {
52
+ return shouldBlockInputArrow(editable, key);
53
+ }
54
+
55
+ if (editable instanceof HTMLTextAreaElement) {
56
+ return shouldBlockTextAreaArrow(editable, key);
57
+ }
58
+
59
+ if (editable instanceof HTMLSelectElement) {
60
+ if (key === "ArrowDown" || key === "ArrowUp") {
61
+ return true;
62
+ }
63
+ return false;
64
+ }
65
+
66
+ return editable.hasAttribute("contenteditable");
67
+ }
68
+
69
+ function shouldBlockInputArrow(input: HTMLInputElement, key: string): boolean {
70
+ if (input.type === "checkbox" || input.type === "radio") {
71
+ return false;
72
+ }
73
+
74
+ if (!isTextInputType(input.type)) {
75
+ return false;
76
+ }
77
+
78
+ const start = input.selectionStart;
79
+ const end = input.selectionEnd;
80
+ if (start === null || end === null) {
81
+ return true;
82
+ }
83
+
84
+ return shouldBlockBySelection(key, start, end, input.value.length);
85
+ }
86
+
87
+ function shouldBlockTextAreaArrow(
88
+ textarea: HTMLTextAreaElement,
89
+ key: string,
90
+ ): boolean {
91
+ const start = textarea.selectionStart;
92
+ const end = textarea.selectionEnd;
93
+ return shouldBlockBySelection(key, start, end, textarea.value.length);
94
+ }
95
+
96
+ function shouldBlockBySelection(
97
+ key: string,
98
+ start: number,
99
+ end: number,
100
+ valueLength: number,
101
+ ): boolean {
102
+ if (key === "ArrowLeft" || key === "ArrowUp") {
103
+ return start > 0 || end > 0;
104
+ }
105
+ if (key === "ArrowRight" || key === "ArrowDown") {
106
+ return end < valueLength;
107
+ }
108
+ return false;
109
+ }
110
+
111
+ function isTextInputType(type: string): boolean {
112
+ switch (type) {
113
+ case "text":
114
+ case "search":
115
+ case "url":
116
+ case "tel":
117
+ case "password":
118
+ case "email":
119
+ case "number":
120
+ return true;
121
+ default:
122
+ return false;
123
+ }
124
+ }
125
+
126
+ export { getDeltaFromKey, shouldBlockArrowKeyNavigation };
@@ -1,5 +1,6 @@
1
- import React, { forwardRef } from "react";
1
+ import React, { forwardRef, useState } from "react";
2
2
  import { cl } from "../../../utils/helpers";
3
+ import { useMergeRefs } from "../../../utils/hooks";
3
4
  import {
4
5
  DataTableCaption,
5
6
  type DataTableCaptionProps,
@@ -19,13 +20,26 @@ import {
19
20
  type DataTableTheadProps,
20
21
  } from "../thead/DataTableThead";
21
22
  import { DataTableTr, type DataTableTrProps } from "../tr/DataTableTr";
23
+ import { useTableKeyboardNav } from "./useTableKeyboardNav";
22
24
 
23
25
  interface DataTableProps extends React.HTMLAttributes<HTMLTableElement> {
24
26
  children: React.ReactNode;
27
+ rowDensity?: "condensed" | "normal" | "spacious";
28
+ /**
29
+ * Enables keyboard navigation for table rows and cells.
30
+ * @default false
31
+ */
32
+ withKeyboardNav?: boolean;
33
+ /**
34
+ * Zebra striped table
35
+ * @default false
36
+ */
37
+ zebraStripes?: boolean;
38
+ truncateContent?: boolean;
25
39
  }
26
40
 
27
41
  interface DataTableRootComponent extends React.ForwardRefExoticComponent<
28
- DataTableProps & React.RefAttributes<HTMLDialogElement>
42
+ DataTableProps & React.RefAttributes<HTMLTableElement>
29
43
  > {
30
44
  /**
31
45
  * @see 🏷️ {@link DataTableCaptionProps}
@@ -120,14 +134,39 @@ interface DataTableRootComponent extends React.ForwardRefExoticComponent<
120
134
  }
121
135
 
122
136
  const DataTable = forwardRef<HTMLTableElement, DataTableProps>(
123
- ({ className, ...rest }, forwardedRef) => {
137
+ (
138
+ {
139
+ className,
140
+ rowDensity = "normal",
141
+ withKeyboardNav = false,
142
+ zebraStripes = false,
143
+ truncateContent = true,
144
+ ...rest
145
+ },
146
+ forwardedRef,
147
+ ) => {
148
+ const [tableRef, setTableRef] = useState<HTMLTableElement | null>(null);
149
+ const mergedRef = useMergeRefs(forwardedRef, setTableRef);
150
+
151
+ const { onFocus, tableTabIndex } = useTableKeyboardNav(tableRef, {
152
+ enabled: withKeyboardNav,
153
+ });
154
+
124
155
  return (
125
- <div className="aksel-data-table__wrapper">
126
- <table
127
- {...rest}
128
- ref={forwardedRef}
129
- className={cl("aksel-data-table", className)}
130
- />
156
+ <div className="aksel-data-table__border-wrapper">
157
+ <div className="aksel-data-table__scroll-wrapper">
158
+ <table
159
+ {...rest}
160
+ ref={mergedRef}
161
+ className={cl("aksel-data-table", className, {
162
+ "aksel-data-table--zebra-stripes": zebraStripes,
163
+ "aksel-data-table--truncate-content": truncateContent,
164
+ })}
165
+ data-density={rowDensity}
166
+ tabIndex={tableTabIndex}
167
+ onFocus={onFocus}
168
+ />
169
+ </div>
131
170
  </div>
132
171
  );
133
172
  },
@@ -146,19 +185,19 @@ export {
146
185
  DataTableCaption,
147
186
  DataTableTbody,
148
187
  DataTableTd,
188
+ DataTableTfoot,
149
189
  DataTableTh,
150
190
  DataTableThead,
151
191
  DataTableTr,
152
- DataTableTfoot,
153
192
  };
154
193
  export default DataTable;
155
194
  export type {
156
- DataTableProps,
157
195
  DataTableCaptionProps,
196
+ DataTableProps,
158
197
  DataTableTbodyProps,
159
198
  DataTableTdProps,
160
- DataTableThProps,
199
+ DataTableTfootProps,
161
200
  DataTableTheadProps,
201
+ DataTableThProps,
162
202
  DataTableTrProps,
163
- DataTableTfootProps,
164
203
  };