react-aria-components 1.10.0 → 1.11.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.
Files changed (302) hide show
  1. package/dist/Breadcrumbs.main.js +9 -2
  2. package/dist/Breadcrumbs.main.js.map +1 -1
  3. package/dist/Breadcrumbs.mjs +10 -3
  4. package/dist/Breadcrumbs.module.js +10 -3
  5. package/dist/Breadcrumbs.module.js.map +1 -1
  6. package/dist/Button.main.js +7 -17
  7. package/dist/Button.main.js.map +1 -1
  8. package/dist/Button.mjs +7 -17
  9. package/dist/Button.module.js +7 -17
  10. package/dist/Button.module.js.map +1 -1
  11. package/dist/Calendar.main.js +36 -14
  12. package/dist/Calendar.main.js.map +1 -1
  13. package/dist/Calendar.mjs +38 -16
  14. package/dist/Calendar.module.js +38 -16
  15. package/dist/Calendar.module.js.map +1 -1
  16. package/dist/Checkbox.main.js +8 -3
  17. package/dist/Checkbox.main.js.map +1 -1
  18. package/dist/Checkbox.mjs +10 -5
  19. package/dist/Checkbox.module.js +10 -5
  20. package/dist/Checkbox.module.js.map +1 -1
  21. package/dist/Collection.main.js.map +1 -1
  22. package/dist/Collection.module.js.map +1 -1
  23. package/dist/ColorArea.main.js +4 -4
  24. package/dist/ColorArea.main.js.map +1 -1
  25. package/dist/ColorArea.mjs +5 -5
  26. package/dist/ColorArea.module.js +5 -5
  27. package/dist/ColorArea.module.js.map +1 -1
  28. package/dist/ColorField.main.js +14 -1
  29. package/dist/ColorField.main.js.map +1 -1
  30. package/dist/ColorField.mjs +14 -1
  31. package/dist/ColorField.module.js +14 -1
  32. package/dist/ColorField.module.js.map +1 -1
  33. package/dist/ColorSlider.main.js +3 -1
  34. package/dist/ColorSlider.main.js.map +1 -1
  35. package/dist/ColorSlider.mjs +3 -1
  36. package/dist/ColorSlider.module.js +3 -1
  37. package/dist/ColorSlider.module.js.map +1 -1
  38. package/dist/ColorSwatch.main.js +6 -2
  39. package/dist/ColorSwatch.main.js.map +1 -1
  40. package/dist/ColorSwatch.mjs +6 -2
  41. package/dist/ColorSwatch.module.js +6 -2
  42. package/dist/ColorSwatch.module.js.map +1 -1
  43. package/dist/ColorSwatchPicker.main.js.map +1 -1
  44. package/dist/ColorSwatchPicker.module.js.map +1 -1
  45. package/dist/ColorThumb.main.js +3 -1
  46. package/dist/ColorThumb.main.js.map +1 -1
  47. package/dist/ColorThumb.mjs +3 -1
  48. package/dist/ColorThumb.module.js +3 -1
  49. package/dist/ColorThumb.module.js.map +1 -1
  50. package/dist/ColorWheel.main.js +3 -1
  51. package/dist/ColorWheel.main.js.map +1 -1
  52. package/dist/ColorWheel.mjs +3 -1
  53. package/dist/ColorWheel.module.js +3 -1
  54. package/dist/ColorWheel.module.js.map +1 -1
  55. package/dist/ComboBox.main.js +4 -1
  56. package/dist/ComboBox.main.js.map +1 -1
  57. package/dist/ComboBox.mjs +4 -1
  58. package/dist/ComboBox.module.js +4 -1
  59. package/dist/ComboBox.module.js.map +1 -1
  60. package/dist/DateField.main.js +16 -3
  61. package/dist/DateField.main.js.map +1 -1
  62. package/dist/DateField.mjs +16 -3
  63. package/dist/DateField.module.js +16 -3
  64. package/dist/DateField.module.js.map +1 -1
  65. package/dist/DatePicker.main.js +15 -8
  66. package/dist/DatePicker.main.js.map +1 -1
  67. package/dist/DatePicker.mjs +16 -9
  68. package/dist/DatePicker.module.js +16 -9
  69. package/dist/DatePicker.module.js.map +1 -1
  70. package/dist/Dialog.main.js +4 -3
  71. package/dist/Dialog.main.js.map +1 -1
  72. package/dist/Dialog.mjs +5 -4
  73. package/dist/Dialog.module.js +5 -4
  74. package/dist/Dialog.module.js.map +1 -1
  75. package/dist/Disclosure.main.js +12 -10
  76. package/dist/Disclosure.main.js.map +1 -1
  77. package/dist/Disclosure.mjs +13 -11
  78. package/dist/Disclosure.module.js +13 -11
  79. package/dist/Disclosure.module.js.map +1 -1
  80. package/dist/DragAndDrop.main.js +31 -3
  81. package/dist/DragAndDrop.main.js.map +1 -1
  82. package/dist/DragAndDrop.mjs +31 -3
  83. package/dist/DragAndDrop.module.js +31 -3
  84. package/dist/DragAndDrop.module.js.map +1 -1
  85. package/dist/DropZone.main.js +4 -3
  86. package/dist/DropZone.main.js.map +1 -1
  87. package/dist/DropZone.mjs +4 -3
  88. package/dist/DropZone.module.js +4 -3
  89. package/dist/DropZone.module.js.map +1 -1
  90. package/dist/FieldError.main.js +3 -1
  91. package/dist/FieldError.main.js.map +1 -1
  92. package/dist/FieldError.mjs +3 -1
  93. package/dist/FieldError.module.js +3 -1
  94. package/dist/FieldError.module.js.map +1 -1
  95. package/dist/FileTrigger.main.js +3 -1
  96. package/dist/FileTrigger.main.js.map +1 -1
  97. package/dist/FileTrigger.mjs +3 -1
  98. package/dist/FileTrigger.module.js +3 -1
  99. package/dist/FileTrigger.module.js.map +1 -1
  100. package/dist/Form.main.js.map +1 -1
  101. package/dist/Form.module.js.map +1 -1
  102. package/dist/GridList.main.js +20 -13
  103. package/dist/GridList.main.js.map +1 -1
  104. package/dist/GridList.mjs +21 -14
  105. package/dist/GridList.module.js +21 -14
  106. package/dist/GridList.module.js.map +1 -1
  107. package/dist/HiddenDateInput.main.js +118 -0
  108. package/dist/HiddenDateInput.main.js.map +1 -0
  109. package/dist/HiddenDateInput.mjs +109 -0
  110. package/dist/HiddenDateInput.module.js +109 -0
  111. package/dist/HiddenDateInput.module.js.map +1 -0
  112. package/dist/Link.main.js +7 -1
  113. package/dist/Link.main.js.map +1 -1
  114. package/dist/Link.mjs +7 -1
  115. package/dist/Link.module.js +7 -1
  116. package/dist/Link.module.js.map +1 -1
  117. package/dist/ListBox.main.js +22 -19
  118. package/dist/ListBox.main.js.map +1 -1
  119. package/dist/ListBox.mjs +23 -20
  120. package/dist/ListBox.module.js +23 -20
  121. package/dist/ListBox.module.js.map +1 -1
  122. package/dist/Menu.main.js +15 -8
  123. package/dist/Menu.main.js.map +1 -1
  124. package/dist/Menu.mjs +16 -9
  125. package/dist/Menu.module.js +16 -9
  126. package/dist/Menu.module.js.map +1 -1
  127. package/dist/Meter.main.js +6 -2
  128. package/dist/Meter.main.js.map +1 -1
  129. package/dist/Meter.mjs +6 -2
  130. package/dist/Meter.module.js +6 -2
  131. package/dist/Meter.module.js.map +1 -1
  132. package/dist/Modal.main.js +31 -6
  133. package/dist/Modal.main.js.map +1 -1
  134. package/dist/Modal.mjs +31 -6
  135. package/dist/Modal.module.js +31 -6
  136. package/dist/Modal.module.js.map +1 -1
  137. package/dist/NumberField.main.js +4 -1
  138. package/dist/NumberField.main.js.map +1 -1
  139. package/dist/NumberField.mjs +4 -1
  140. package/dist/NumberField.module.js +4 -1
  141. package/dist/NumberField.module.js.map +1 -1
  142. package/dist/Popover.main.js +3 -1
  143. package/dist/Popover.main.js.map +1 -1
  144. package/dist/Popover.mjs +3 -1
  145. package/dist/Popover.module.js +3 -1
  146. package/dist/Popover.module.js.map +1 -1
  147. package/dist/ProgressBar.main.js +6 -2
  148. package/dist/ProgressBar.main.js.map +1 -1
  149. package/dist/ProgressBar.mjs +6 -2
  150. package/dist/ProgressBar.module.js +6 -2
  151. package/dist/ProgressBar.module.js.map +1 -1
  152. package/dist/RadioGroup.main.js +8 -3
  153. package/dist/RadioGroup.main.js.map +1 -1
  154. package/dist/RadioGroup.mjs +9 -4
  155. package/dist/RadioGroup.module.js +9 -4
  156. package/dist/RadioGroup.module.js.map +1 -1
  157. package/dist/SearchField.main.js +3 -1
  158. package/dist/SearchField.main.js.map +1 -1
  159. package/dist/SearchField.mjs +3 -1
  160. package/dist/SearchField.module.js +3 -1
  161. package/dist/SearchField.module.js.map +1 -1
  162. package/dist/Select.main.js +12 -14
  163. package/dist/Select.main.js.map +1 -1
  164. package/dist/Select.mjs +13 -15
  165. package/dist/Select.module.js +13 -15
  166. package/dist/Select.module.js.map +1 -1
  167. package/dist/Separator.main.js +4 -2
  168. package/dist/Separator.main.js.map +1 -1
  169. package/dist/Separator.mjs +5 -3
  170. package/dist/Separator.module.js +5 -3
  171. package/dist/Separator.module.js.map +1 -1
  172. package/dist/Slider.main.js +7 -5
  173. package/dist/Slider.main.js.map +1 -1
  174. package/dist/Slider.mjs +8 -6
  175. package/dist/Slider.module.js +8 -6
  176. package/dist/Slider.module.js.map +1 -1
  177. package/dist/Switch.main.js +4 -1
  178. package/dist/Switch.main.js.map +1 -1
  179. package/dist/Switch.mjs +4 -1
  180. package/dist/Switch.module.js +4 -1
  181. package/dist/Switch.module.js.map +1 -1
  182. package/dist/Table.main.js +47 -26
  183. package/dist/Table.main.js.map +1 -1
  184. package/dist/Table.mjs +48 -27
  185. package/dist/Table.module.js +48 -27
  186. package/dist/Table.module.js.map +1 -1
  187. package/dist/Tabs.main.js +22 -11
  188. package/dist/Tabs.main.js.map +1 -1
  189. package/dist/Tabs.mjs +23 -12
  190. package/dist/Tabs.module.js +23 -12
  191. package/dist/Tabs.module.js.map +1 -1
  192. package/dist/TagGroup.main.js +14 -8
  193. package/dist/TagGroup.main.js.map +1 -1
  194. package/dist/TagGroup.mjs +14 -8
  195. package/dist/TagGroup.module.js +14 -8
  196. package/dist/TagGroup.module.js.map +1 -1
  197. package/dist/TextField.main.js +13 -1
  198. package/dist/TextField.main.js.map +1 -1
  199. package/dist/TextField.mjs +13 -1
  200. package/dist/TextField.module.js +13 -1
  201. package/dist/TextField.module.js.map +1 -1
  202. package/dist/Toast.main.js +9 -5
  203. package/dist/Toast.main.js.map +1 -1
  204. package/dist/Toast.mjs +9 -5
  205. package/dist/Toast.module.js +9 -5
  206. package/dist/Toast.module.js.map +1 -1
  207. package/dist/ToggleButton.main.js +8 -2
  208. package/dist/ToggleButton.main.js.map +1 -1
  209. package/dist/ToggleButton.mjs +8 -2
  210. package/dist/ToggleButton.module.js +8 -2
  211. package/dist/ToggleButton.module.js.map +1 -1
  212. package/dist/ToggleButtonGroup.main.js +6 -2
  213. package/dist/ToggleButtonGroup.main.js.map +1 -1
  214. package/dist/ToggleButtonGroup.mjs +6 -2
  215. package/dist/ToggleButtonGroup.module.js +6 -2
  216. package/dist/ToggleButtonGroup.module.js.map +1 -1
  217. package/dist/Toolbar.main.js +4 -3
  218. package/dist/Toolbar.main.js.map +1 -1
  219. package/dist/Toolbar.mjs +4 -3
  220. package/dist/Toolbar.module.js +4 -3
  221. package/dist/Toolbar.module.js.map +1 -1
  222. package/dist/Tooltip.main.js +5 -3
  223. package/dist/Tooltip.main.js.map +1 -1
  224. package/dist/Tooltip.mjs +5 -3
  225. package/dist/Tooltip.module.js +5 -3
  226. package/dist/Tooltip.module.js.map +1 -1
  227. package/dist/Tree.main.js +73 -26
  228. package/dist/Tree.main.js.map +1 -1
  229. package/dist/Tree.mjs +74 -27
  230. package/dist/Tree.module.js +74 -27
  231. package/dist/Tree.module.js.map +1 -1
  232. package/dist/TreeDropTargetDelegate.main.js +8 -5
  233. package/dist/TreeDropTargetDelegate.main.js.map +1 -1
  234. package/dist/TreeDropTargetDelegate.mjs +8 -5
  235. package/dist/TreeDropTargetDelegate.module.js +8 -5
  236. package/dist/TreeDropTargetDelegate.module.js.map +1 -1
  237. package/dist/import.mjs +5 -5
  238. package/dist/main.js +4 -4
  239. package/dist/main.js.map +1 -1
  240. package/dist/module.js +5 -5
  241. package/dist/module.js.map +1 -1
  242. package/dist/types.d.ts +212 -203
  243. package/dist/types.d.ts.map +1 -1
  244. package/dist/useDragAndDrop.main.js.map +1 -1
  245. package/dist/useDragAndDrop.module.js.map +1 -1
  246. package/dist/utils.main.js.map +1 -1
  247. package/dist/utils.module.js.map +1 -1
  248. package/i18n/de-DE.js +1 -1
  249. package/i18n/de-DE.mjs +1 -1
  250. package/package.json +25 -25
  251. package/src/Breadcrumbs.tsx +10 -6
  252. package/src/Button.tsx +8 -30
  253. package/src/Calendar.tsx +41 -24
  254. package/src/Checkbox.tsx +8 -6
  255. package/src/Collection.tsx +2 -2
  256. package/src/ColorArea.tsx +5 -6
  257. package/src/ColorField.tsx +6 -4
  258. package/src/ColorSlider.tsx +3 -2
  259. package/src/ColorSwatch.tsx +6 -3
  260. package/src/ColorSwatchPicker.tsx +3 -3
  261. package/src/ColorThumb.tsx +3 -3
  262. package/src/ColorWheel.tsx +6 -5
  263. package/src/ComboBox.tsx +4 -4
  264. package/src/DateField.tsx +15 -10
  265. package/src/DatePicker.tsx +14 -12
  266. package/src/Dialog.tsx +6 -6
  267. package/src/Disclosure.tsx +10 -14
  268. package/src/DragAndDrop.tsx +31 -1
  269. package/src/DropZone.tsx +4 -5
  270. package/src/FieldError.tsx +3 -3
  271. package/src/FileTrigger.tsx +4 -3
  272. package/src/Form.tsx +2 -1
  273. package/src/GridList.tsx +25 -18
  274. package/src/HiddenDateInput.tsx +142 -0
  275. package/src/Link.tsx +7 -3
  276. package/src/ListBox.tsx +30 -26
  277. package/src/Menu.tsx +15 -12
  278. package/src/Meter.tsx +6 -3
  279. package/src/Modal.tsx +16 -5
  280. package/src/NumberField.tsx +4 -4
  281. package/src/Popover.tsx +3 -3
  282. package/src/ProgressBar.tsx +6 -2
  283. package/src/RadioGroup.tsx +8 -6
  284. package/src/SearchField.tsx +3 -2
  285. package/src/Select.tsx +13 -16
  286. package/src/Separator.tsx +6 -4
  287. package/src/Slider.tsx +9 -11
  288. package/src/Switch.tsx +4 -3
  289. package/src/Table.tsx +58 -56
  290. package/src/Tabs.tsx +20 -16
  291. package/src/TagGroup.tsx +13 -12
  292. package/src/TextField.tsx +5 -2
  293. package/src/Toast.tsx +10 -8
  294. package/src/ToggleButton.tsx +8 -4
  295. package/src/ToggleButtonGroup.tsx +6 -4
  296. package/src/Toolbar.tsx +4 -5
  297. package/src/Tooltip.tsx +6 -5
  298. package/src/Tree.tsx +90 -42
  299. package/src/TreeDropTargetDelegate.ts +5 -1
  300. package/src/index.ts +8 -8
  301. package/src/useDragAndDrop.tsx +2 -2
  302. package/src/utils.tsx +9 -9
@@ -1 +1 @@
1
- {"mappings":"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","sources":["packages/react-aria-components/src/Table.tsx"],"sourcesContent":["import {AriaLabelingProps, HoverEvents, Key, LinkDOMProps, RefObject} from '@react-types/shared';\nimport {BaseCollection, Collection, CollectionBuilder, CollectionNode, createBranchComponent, createLeafComponent, useCachedChildren} from '@react-aria/collections';\nimport {buildHeaderRows, TableColumnResizeState} from '@react-stately/table';\nimport {ButtonContext} from './Button';\nimport {CheckboxContext} from './RSPContexts';\nimport {CollectionProps, CollectionRendererContext, DefaultCollectionRenderer, ItemRenderProps} from './Collection';\nimport {ColumnSize, ColumnStaticSize, TableCollection as ITableCollection, TableProps as SharedTableProps} from '@react-types/table';\nimport {ContextValue, DEFAULT_SLOT, DOMProps, Provider, RenderProps, ScrollableProps, SlotProps, StyleProps, StyleRenderProps, useContextProps, useRenderProps} from './utils';\nimport {DisabledBehavior, DraggableCollectionState, DroppableCollectionState, MultipleSelectionState, Node, SelectionBehavior, SelectionMode, SortDirection, TableState, useMultipleSelectionState, useTableColumnResizeState, useTableState} from 'react-stately';\nimport {DragAndDropContext, DropIndicatorContext, DropIndicatorProps, useDndPersistedKeys, useRenderDropIndicator} from './DragAndDrop';\nimport {DragAndDropHooks} from './useDragAndDrop';\nimport {DraggableItemResult, DragPreviewRenderer, DropIndicatorAria, DroppableCollectionResult, FocusScope, ListKeyboardDelegate, mergeProps, useFocusRing, useHover, useLocale, useLocalizedStringFormatter, useTable, useTableCell, useTableColumnHeader, useTableColumnResize, useTableHeaderRow, useTableRow, useTableRowGroup, useTableSelectAllCheckbox, useTableSelectionCheckbox, useVisuallyHidden} from 'react-aria';\nimport {filterDOMProps, inertValue, isScrollable, LoadMoreSentinelProps, mergeRefs, UNSTABLE_useLoadMoreSentinel, useLayoutEffect, useObjectRef, useResizeObserver} from '@react-aria/utils';\nimport {GridNode} from '@react-types/grid';\n// @ts-ignore\nimport intlMessages from '../intl/*.json';\nimport React, {createContext, ForwardedRef, forwardRef, JSX, ReactElement, ReactNode, useCallback, useContext, useEffect, useMemo, useRef, useState} from 'react';\nimport ReactDOM from 'react-dom';\n\nclass TableCollection<T> extends BaseCollection<T> implements ITableCollection<T> {\n headerRows: GridNode<T>[] = [];\n columns: GridNode<T>[] = [];\n rows: GridNode<T>[] = [];\n rowHeaderColumnKeys: Set<Key> = new Set();\n head: CollectionNode<T> = new CollectionNode('tableheader', -1);\n body: CollectionNode<T> = new CollectionNode('tablebody', -2);\n columnsDirty = true;\n\n addNode(node: CollectionNode<T>) {\n super.addNode(node);\n\n this.columnsDirty ||= node.type === 'column';\n if (node.type === 'tableheader') {\n this.head = node;\n }\n\n if (node.type === 'tablebody') {\n this.body = node;\n }\n }\n\n commit(firstKey: Key, lastKey: Key, isSSR = false) {\n this.updateColumns(isSSR);\n\n this.rows = [];\n for (let row of this.getChildren(this.body.key)) {\n let lastChildKey = (row as CollectionNode<T>).lastChildKey;\n if (lastChildKey != null) {\n let lastCell = this.getItem(lastChildKey) as GridNode<T>;\n let numberOfCellsInRow = (lastCell.colIndex ?? lastCell.index) + (lastCell.colSpan ?? 1);\n if (numberOfCellsInRow !== this.columns.length && !isSSR) {\n throw new Error(`Cell count must match column count. Found ${numberOfCellsInRow} cells and ${this.columns.length} columns.`);\n }\n }\n this.rows.push(row);\n }\n\n super.commit(firstKey, lastKey, isSSR);\n }\n\n private updateColumns(isSSR: boolean) {\n if (!this.columnsDirty) {\n return;\n }\n\n this.rowHeaderColumnKeys = new Set();\n this.columns = [];\n\n let columnKeyMap = new Map();\n let visit = (node: Node<T>) => {\n switch (node.type) {\n case 'column':\n columnKeyMap.set(node.key, node);\n if (!node.hasChildNodes) {\n node.index = this.columns.length;\n this.columns.push(node);\n\n if (node.props.isRowHeader) {\n this.rowHeaderColumnKeys.add(node.key);\n }\n }\n break;\n }\n for (let child of this.getChildren(node.key)) {\n visit(child);\n }\n };\n\n for (let node of this.getChildren(this.head.key)) {\n visit(node);\n }\n\n this.headerRows = buildHeaderRows(columnKeyMap, this.columns);\n this.columnsDirty = false;\n if (this.rowHeaderColumnKeys.size === 0 && this.columns.length > 0 && !isSSR) {\n throw new Error('A table must have at least one Column with the isRowHeader prop set to true');\n }\n }\n\n get columnCount() {\n return this.columns.length;\n }\n\n *[Symbol.iterator]() {\n // Wait until the collection is initialized.\n if (this.head.key === -1) {\n return;\n }\n yield this.head;\n yield this.body;\n }\n\n get size() {\n return this.rows.length;\n }\n\n getFirstKey() {\n return this.body.firstChildKey;\n }\n\n getLastKey() {\n return this.body.lastChildKey;\n }\n\n getKeyAfter(key: Key) {\n let node = this.getItem(key);\n if (node?.type === 'column') {\n return node.nextKey ?? null;\n }\n\n return super.getKeyAfter(key);\n }\n\n getKeyBefore(key: Key) {\n let node = this.getItem(key);\n if (node?.type === 'column') {\n return node.prevKey ?? null;\n }\n\n let k = super.getKeyBefore(key);\n if (k != null && this.getItem(k)?.type === 'tablebody') {\n return null;\n }\n\n return k;\n }\n\n getChildren(key: Key): Iterable<Node<T>> {\n if (!this.getItem(key)) {\n for (let row of this.headerRows) {\n if (row.key === key) {\n return row.childNodes;\n }\n }\n }\n\n return super.getChildren(key);\n }\n\n clone() {\n let collection = super.clone();\n collection.headerRows = this.headerRows;\n collection.columns = this.columns;\n collection.rowHeaderColumnKeys = this.rowHeaderColumnKeys;\n collection.head = this.head;\n collection.body = this.body;\n return collection;\n }\n\n getTextValue(key: Key): string {\n let row = this.getItem(key);\n if (!row) {\n return '';\n }\n\n // If the row has a textValue, use that.\n if (row.textValue) {\n return row.textValue;\n }\n\n // Otherwise combine the text of each of the row header columns.\n let rowHeaderColumnKeys = this.rowHeaderColumnKeys;\n let text: string[] = [];\n for (let cell of this.getChildren(key)) {\n let column = this.columns[cell.index!];\n if (rowHeaderColumnKeys.has(column.key) && cell.textValue) {\n text.push(cell.textValue);\n }\n\n if (text.length === rowHeaderColumnKeys.size) {\n break;\n }\n }\n\n return text.join(' ');\n }\n}\n\ninterface ResizableTableContainerContextValue {\n tableWidth: number,\n tableRef: RefObject<HTMLTableElement | null>,\n scrollRef: RefObject<HTMLElement | null>,\n // Dependency inject useTableColumnResizeState so it doesn't affect bundle size unless you're using ResizableTableContainer.\n useTableColumnResizeState: typeof useTableColumnResizeState,\n onResizeStart?: (widths: Map<Key, ColumnSize>) => void,\n onResize?: (widths: Map<Key, ColumnSize>) => void,\n onResizeEnd?: (widths: Map<Key, ColumnSize>) => void\n}\n\nconst ResizableTableContainerContext = createContext<ResizableTableContainerContextValue | null>(null);\n\nexport interface ResizableTableContainerProps extends DOMProps, ScrollableProps<HTMLDivElement> {\n /**\n * Handler that is called when a user starts a column resize.\n */\n onResizeStart?: (widths: Map<Key, ColumnSize>) => void,\n /**\n * Handler that is called when a user performs a column resize.\n * Can be used with the width property on columns to put the column widths into\n * a controlled state.\n */\n onResize?: (widths: Map<Key, ColumnSize>) => void,\n /**\n * Handler that is called after a user performs a column resize.\n * Can be used to store the widths of columns for another future session.\n */\n onResizeEnd?: (widths: Map<Key, ColumnSize>) => void\n}\n\nexport const ResizableTableContainer = forwardRef(function ResizableTableContainer(props: ResizableTableContainerProps, ref: ForwardedRef<HTMLDivElement>) {\n let containerRef = useObjectRef(ref);\n let tableRef = useRef<HTMLTableElement>(null);\n let scrollRef = useRef<HTMLElement | null>(null);\n let [width, setWidth] = useState(0);\n\n useLayoutEffect(() => {\n // Walk up the DOM from the Table to the ResizableTableContainer and stop\n // when we reach the first scrollable element. This is what we'll measure\n // to determine column widths (important due to width of scrollbars).\n // This will usually be the ResizableTableContainer for native tables, and\n // the Table itself for virtualized tables.\n let table = tableRef.current as HTMLElement | null;\n while (table && table !== containerRef.current && !isScrollable(table)) {\n table = table.parentElement;\n }\n scrollRef.current = table;\n }, [containerRef]);\n\n useResizeObserver({\n ref: scrollRef,\n box: 'border-box',\n onResize() {\n setWidth(scrollRef.current?.clientWidth ?? 0);\n }\n });\n\n useLayoutEffect(() => {\n setWidth(scrollRef.current?.clientWidth ?? 0);\n }, []);\n\n let ctx = useMemo(() => ({\n tableRef,\n scrollRef,\n tableWidth: width,\n useTableColumnResizeState,\n onResizeStart: props.onResizeStart,\n onResize: props.onResize,\n onResizeEnd: props.onResizeEnd\n }), [tableRef, width, props.onResizeStart, props.onResize, props.onResizeEnd]);\n\n return (\n <div\n {...filterDOMProps(props as any)}\n ref={containerRef}\n className={props.className || 'react-aria-ResizableTableContainer'}\n style={props.style}\n onScroll={props.onScroll}>\n <ResizableTableContainerContext.Provider value={ctx}>\n {props.children}\n </ResizableTableContainerContext.Provider>\n </div>\n );\n});\n\nexport const TableContext = createContext<ContextValue<TableProps, HTMLTableElement>>(null);\nexport const TableStateContext = createContext<TableState<any> | null>(null);\nexport const TableColumnResizeStateContext = createContext<TableColumnResizeState<unknown> | null>(null);\n\nexport interface TableRenderProps {\n /**\n * Whether the table is currently focused.\n * @selector [data-focused]\n */\n isFocused: boolean,\n /**\n * Whether the table is currently keyboard focused.\n * @selector [data-focus-visible]\n */\n isFocusVisible: boolean,\n /**\n * Whether the table is currently the active drop target.\n * @selector [data-drop-target]\n */\n isDropTarget: boolean,\n /**\n * State of the table.\n */\n state: TableState<unknown>\n}\n\nexport interface TableProps extends Omit<SharedTableProps<any>, 'children'>, StyleRenderProps<TableRenderProps>, SlotProps, AriaLabelingProps, ScrollableProps<HTMLTableElement> {\n /** The elements that make up the table. Includes the TableHeader, TableBody, Columns, and Rows. */\n children?: ReactNode,\n /**\n * How multiple selection should behave in the collection.\n * @default \"toggle\"\n */\n selectionBehavior?: SelectionBehavior,\n /**\n * Whether `disabledKeys` applies to all interactions, or only selection.\n * @default \"selection\"\n */\n disabledBehavior?: DisabledBehavior,\n /** Handler that is called when a user performs an action on the row. */\n onRowAction?: (key: Key) => void,\n /** The drag and drop hooks returned by `useDragAndDrop` used to enable drag and drop behavior for the Table. */\n dragAndDropHooks?: DragAndDropHooks\n}\n\n/**\n * A table displays data in rows and columns and enables a user to navigate its contents via directional navigation keys,\n * and optionally supports row selection and sorting.\n */\nexport const Table = forwardRef(function Table(props: TableProps, ref: ForwardedRef<HTMLTableElement>) {\n [props, ref] = useContextProps(props, ref, TableContext);\n\n // Separate selection state so we have access to it from collection components via useTableOptions.\n let selectionState = useMultipleSelectionState(props);\n let {selectionBehavior, selectionMode, disallowEmptySelection} = selectionState;\n let hasDragHooks = !!props.dragAndDropHooks?.useDraggableCollectionState;\n let ctx = useMemo(() => ({\n selectionBehavior: selectionMode === 'none' ? null : selectionBehavior,\n selectionMode,\n disallowEmptySelection,\n allowsDragging: hasDragHooks\n }), [selectionBehavior, selectionMode, disallowEmptySelection, hasDragHooks]);\n\n let content = (\n <TableOptionsContext.Provider value={ctx}>\n <Collection {...props} />\n </TableOptionsContext.Provider>\n );\n\n return (\n <CollectionBuilder content={content} createCollection={() => new TableCollection<any>()}>\n {collection => <TableInner props={props} forwardedRef={ref} selectionState={selectionState} collection={collection} />}\n </CollectionBuilder>\n );\n});\n\ninterface TableInnerProps {\n props: TableProps,\n forwardedRef: ForwardedRef<HTMLTableElement>,\n selectionState: MultipleSelectionState,\n collection: ITableCollection<Node<object>>\n}\n\n\nfunction TableInner({props, forwardedRef: ref, selectionState, collection}: TableInnerProps) {\n let tableContainerContext = useContext(ResizableTableContainerContext);\n ref = useObjectRef(useMemo(() => mergeRefs(ref, tableContainerContext?.tableRef), [ref, tableContainerContext?.tableRef]));\n let state = useTableState({\n ...props,\n collection,\n children: undefined,\n UNSAFE_selectionState: selectionState\n });\n\n let {isVirtualized, layoutDelegate, dropTargetDelegate: ctxDropTargetDelegate, CollectionRoot} = useContext(CollectionRendererContext);\n let {dragAndDropHooks} = props;\n let {gridProps} = useTable({\n ...props,\n layoutDelegate,\n isVirtualized\n }, state, ref);\n let selectionManager = state.selectionManager;\n let hasDragHooks = !!dragAndDropHooks?.useDraggableCollectionState;\n let hasDropHooks = !!dragAndDropHooks?.useDroppableCollectionState;\n let dragHooksProvided = useRef(hasDragHooks);\n let dropHooksProvided = useRef(hasDropHooks);\n useEffect(() => {\n if (process.env.NODE_ENV === 'production') {\n return;\n }\n if (dragHooksProvided.current !== hasDragHooks) {\n console.warn('Drag hooks were provided during one render, but not another. This should be avoided as it may produce unexpected behavior.');\n }\n if (dropHooksProvided.current !== hasDropHooks) {\n console.warn('Drop hooks were provided during one render, but not another. This should be avoided as it may produce unexpected behavior.');\n }\n }, [hasDragHooks, hasDropHooks]);\n\n let dragState: DraggableCollectionState | undefined = undefined;\n let dropState: DroppableCollectionState | undefined = undefined;\n let droppableCollection: DroppableCollectionResult | undefined = undefined;\n let isRootDropTarget = false;\n let dragPreview: JSX.Element | null = null;\n let preview = useRef<DragPreviewRenderer>(null);\n\n if (hasDragHooks && dragAndDropHooks) {\n dragState = dragAndDropHooks.useDraggableCollectionState!({\n collection,\n selectionManager,\n preview: dragAndDropHooks.renderDragPreview ? preview : undefined\n });\n dragAndDropHooks.useDraggableCollection!({}, dragState, ref);\n\n let DragPreview = dragAndDropHooks.DragPreview!;\n dragPreview = dragAndDropHooks.renderDragPreview\n ? <DragPreview ref={preview}>{dragAndDropHooks.renderDragPreview}</DragPreview>\n : null;\n }\n\n if (hasDropHooks && dragAndDropHooks) {\n dropState = dragAndDropHooks.useDroppableCollectionState!({\n collection,\n selectionManager\n });\n\n let keyboardDelegate = new ListKeyboardDelegate({\n collection,\n disabledKeys: selectionManager.disabledKeys,\n disabledBehavior: selectionManager.disabledBehavior,\n ref,\n layoutDelegate\n });\n let dropTargetDelegate = dragAndDropHooks.dropTargetDelegate || ctxDropTargetDelegate || new dragAndDropHooks.ListDropTargetDelegate(collection.rows, ref);\n droppableCollection = dragAndDropHooks.useDroppableCollection!({\n keyboardDelegate,\n dropTargetDelegate\n }, dropState, ref);\n\n isRootDropTarget = dropState.isDropTarget({type: 'root'});\n }\n\n let {focusProps, isFocused, isFocusVisible} = useFocusRing();\n let renderProps = useRenderProps({\n className: props.className,\n style: props.style,\n defaultClassName: 'react-aria-Table',\n values: {\n isDropTarget: isRootDropTarget,\n isFocused,\n isFocusVisible,\n state\n }\n });\n\n let isListDraggable = !!(hasDragHooks && !dragState?.isDisabled);\n\n let style = renderProps.style;\n let layoutState: TableColumnResizeState<unknown> | null = null;\n if (tableContainerContext) {\n layoutState = tableContainerContext.useTableColumnResizeState({\n tableWidth: tableContainerContext.tableWidth\n }, state);\n if (!isVirtualized) {\n style = {\n ...style,\n tableLayout: 'fixed',\n width: 'fit-content'\n };\n }\n }\n\n let ElementType = useElementType('table');\n\n return (\n <Provider\n values={[\n [TableStateContext, state],\n [TableColumnResizeStateContext, layoutState],\n [DragAndDropContext, {dragAndDropHooks, dragState, dropState}],\n [DropIndicatorContext, {render: TableDropIndicatorWrapper}]\n ]}>\n <FocusScope>\n <ElementType\n {...filterDOMProps(props)}\n {...renderProps}\n {...mergeProps(gridProps, focusProps, droppableCollection?.collectionProps)}\n style={style}\n ref={ref}\n slot={props.slot || undefined}\n onScroll={props.onScroll}\n data-allows-dragging={isListDraggable || undefined}\n data-drop-target={isRootDropTarget || undefined}\n data-focused={isFocused || undefined}\n data-focus-visible={isFocusVisible || undefined}>\n <CollectionRoot\n collection={collection}\n scrollRef={tableContainerContext?.scrollRef ?? ref}\n persistedKeys={useDndPersistedKeys(selectionManager, dragAndDropHooks, dropState)} />\n </ElementType>\n </FocusScope>\n {dragPreview}\n </Provider>\n );\n}\n\nfunction useElementType<E extends keyof JSX.IntrinsicElements>(element: E): E | 'div' {\n let {isVirtualized} = useContext(CollectionRendererContext);\n return isVirtualized ? 'div' : element;\n}\n\nexport interface TableOptionsContextValue {\n /** The type of selection that is allowed in the table. */\n selectionMode: SelectionMode,\n /** The selection behavior for the table. If selectionMode is `\"none\"`, this will be `null`. */\n selectionBehavior: SelectionBehavior | null,\n /** Whether the table allows empty selection. */\n disallowEmptySelection: boolean,\n /** Whether the table allows rows to be dragged. */\n allowsDragging: boolean\n}\n\nconst TableOptionsContext = createContext<TableOptionsContextValue | null>(null);\n\n/**\n * Returns options from the parent `<Table>` component.\n */\nexport function useTableOptions(): TableOptionsContextValue {\n return useContext(TableOptionsContext)!;\n}\n\nexport interface TableHeaderRenderProps {\n /**\n * Whether the table header is currently hovered with a mouse.\n * @selector [data-hovered]\n */\n isHovered: boolean\n}\n\nexport interface TableHeaderProps<T> extends StyleRenderProps<TableHeaderRenderProps>, HoverEvents {\n /** A list of table columns. */\n columns?: Iterable<T>,\n /** A list of `Column(s)` or a function. If the latter, a list of columns must be provided using the `columns` prop. */\n children?: ReactNode | ((item: T) => ReactElement),\n /** Values that should invalidate the column cache when using dynamic collections. */\n dependencies?: ReadonlyArray<any>\n}\n\n/**\n * A header within a `<Table>`, containing the table columns.\n */\nexport const TableHeader = /*#__PURE__*/ createBranchComponent(\n 'tableheader',\n <T extends object>(props: TableHeaderProps<T>, ref: ForwardedRef<HTMLTableSectionElement>) => {\n let collection = useContext(TableStateContext)!.collection as TableCollection<unknown>;\n let headerRows = useCachedChildren({\n items: collection.headerRows,\n children: useCallback((item: Node<unknown>) => {\n switch (item.type) {\n case 'headerrow':\n return <TableHeaderRow item={item} />;\n default:\n throw new Error('Unsupported node type in TableHeader: ' + item.type);\n }\n }, [])\n });\n\n let THead = useElementType('thead');\n let {rowGroupProps} = useTableRowGroup();\n let {hoverProps, isHovered} = useHover({\n onHoverStart: props.onHoverStart,\n onHoverChange: props.onHoverChange,\n onHoverEnd: props.onHoverEnd\n });\n\n let renderProps = useRenderProps({\n className: props.className,\n style: props.style,\n defaultClassName: 'react-aria-TableHeader',\n values: {\n isHovered\n }\n });\n\n return (\n <THead\n {...mergeProps(filterDOMProps(props as any), rowGroupProps, hoverProps)}\n {...renderProps}\n ref={ref}\n data-hovered={isHovered || undefined}>\n {headerRows}\n </THead>\n );\n },\n props => (\n <Collection dependencies={props.dependencies} items={props.columns}>\n {props.children}\n </Collection>\n )\n);\n\nfunction TableHeaderRow({item}: {item: GridNode<any>}) {\n let ref = useRef<HTMLTableRowElement>(null);\n let state = useContext(TableStateContext)!;\n let {isVirtualized, CollectionBranch} = useContext(CollectionRendererContext);\n let {rowProps} = useTableHeaderRow({node: item, isVirtualized}, state, ref);\n let {checkboxProps} = useTableSelectAllCheckbox(state);\n let TR = useElementType('tr');\n\n return (\n <TR {...rowProps} ref={ref}>\n <Provider\n values={[\n [CheckboxContext, {\n slots: {\n selection: checkboxProps\n }\n }]\n ]}>\n <CollectionBranch collection={state.collection} parent={item} />\n </Provider>\n </TR>\n );\n}\n\nexport interface ColumnRenderProps {\n /**\n * Whether the item is currently hovered with a mouse.\n * @selector [data-hovered]\n */\n isHovered: boolean,\n /**\n * Whether the item is currently focused.\n * @selector [data-focused]\n */\n isFocused: boolean,\n /**\n * Whether the item is currently keyboard focused.\n * @selector [data-focus-visible]\n */\n isFocusVisible: boolean,\n /**\n * Whether the column allows sorting.\n * @selector [data-allows-sorting]\n */\n allowsSorting: boolean,\n /**\n * The current sort direction.\n * @selector [data-sort-direction=\"ascending | descending\"]\n */\n sortDirection: SortDirection | undefined,\n /**\n * Whether the column is currently being resized.\n * @selector [data-resizing]\n */\n isResizing: boolean,\n /**\n * Triggers sorting for this column in the given direction.\n */\n sort(direction: SortDirection): void,\n /**\n * Starts column resizing if the table is contained in a `<ResizableTableContainer>` element.\n */\n startResize(): void\n}\n\nexport interface ColumnProps extends RenderProps<ColumnRenderProps> {\n /** The unique id of the column. */\n id?: Key,\n /** Whether the column allows sorting. */\n allowsSorting?: boolean,\n /** Whether a column is a [row header](https://www.w3.org/TR/wai-aria-1.1/#rowheader) and should be announced by assistive technology during row navigation. */\n isRowHeader?: boolean,\n /** A string representation of the column's contents, used for accessibility announcements. */\n textValue?: string,\n /** The width of the column. This prop only applies when the `<Table>` is wrapped in a `<ResizableTableContainer>`. */\n width?: ColumnSize | null,\n /** The default width of the column. This prop only applies when the `<Table>` is wrapped in a `<ResizableTableContainer>`. */\n defaultWidth?: ColumnSize | null,\n /** The minimum width of the column. This prop only applies when the `<Table>` is wrapped in a `<ResizableTableContainer>`. */\n minWidth?: ColumnStaticSize | null,\n /** The maximum width of the column. This prop only applies when the `<Table>` is wrapped in a `<ResizableTableContainer>`. */\n maxWidth?: ColumnStaticSize | null\n}\n\n/**\n * A column within a `<Table>`.\n */\nexport const Column = /*#__PURE__*/ createLeafComponent('column', (props: ColumnProps, forwardedRef: ForwardedRef<HTMLTableCellElement>, column: GridNode<unknown>) => {\n let ref = useObjectRef<HTMLTableHeaderCellElement>(forwardedRef);\n let state = useContext(TableStateContext)!;\n let {isVirtualized} = useContext(CollectionRendererContext);\n let {columnHeaderProps} = useTableColumnHeader(\n {node: column, isVirtualized},\n state,\n ref\n );\n let {isFocused, isFocusVisible, focusProps} = useFocusRing();\n\n let layoutState = useContext(TableColumnResizeStateContext);\n let isResizing = false;\n if (layoutState) {\n isResizing = layoutState.resizingColumn === column.key;\n } else if (process.env.NODE_ENV !== 'production') {\n for (let prop in ['width', 'defaultWidth', 'minWidth', 'maxWidth']) {\n if (prop in column.props) {\n console.warn(`The ${prop} prop on a <Column> only applies when a <Table> is wrapped in a <ResizableTableContainer>. If you aren't using column resizing, you can set the width of a column with CSS.`);\n }\n }\n }\n\n let {hoverProps, isHovered} = useHover({isDisabled: !props.allowsSorting});\n let renderProps = useRenderProps({\n ...props,\n id: undefined,\n children: column.rendered,\n defaultClassName: 'react-aria-Column',\n values: {\n isHovered,\n isFocused,\n isFocusVisible,\n allowsSorting: column.props.allowsSorting,\n sortDirection: state.sortDescriptor?.column === column.key\n ? state.sortDescriptor.direction\n : undefined,\n isResizing,\n startResize: () => {\n if (layoutState) {\n layoutState.startResize(column.key);\n state.setKeyboardNavigationDisabled(true);\n } else {\n throw new Error('Wrap your <Table> in a <ResizableTableContainer> to enable column resizing');\n }\n },\n sort: (direction) => {\n state.sort(column.key, direction);\n }\n }\n });\n\n let style = renderProps.style;\n if (layoutState) {\n style = {...style, width: layoutState.getColumnWidth(column.key)};\n }\n\n let TH = useElementType('th');\n\n return (\n <TH\n {...mergeProps(filterDOMProps(props as any), columnHeaderProps, focusProps, hoverProps)}\n {...renderProps}\n style={style}\n ref={ref}\n data-hovered={isHovered || undefined}\n data-focused={isFocused || undefined}\n data-focus-visible={isFocusVisible || undefined}\n data-resizing={isResizing || undefined}\n data-allows-sorting={column.props.allowsSorting || undefined}\n data-sort-direction={state.sortDescriptor?.column === column.key ? state.sortDescriptor.direction : undefined}>\n <Provider\n values={[\n [ColumnResizerContext, {column, triggerRef: ref}],\n [CollectionRendererContext, DefaultCollectionRenderer]\n ]}>\n {renderProps.children}\n </Provider>\n </TH>\n );\n});\n\nexport interface ColumnResizerRenderProps {\n /**\n * Whether the resizer is currently hovered with a mouse.\n * @selector [data-hovered]\n */\n isHovered: boolean,\n /**\n * Whether the resizer is currently focused.\n * @selector [data-focused]\n */\n isFocused: boolean,\n /**\n * Whether the resizer is currently keyboard focused.\n * @selector [data-focus-visible]\n */\n isFocusVisible: boolean,\n /**\n * Whether the resizer is currently being resized.\n * @selector [data-resizing]\n */\n isResizing: boolean,\n /**\n * The direction that the column is currently resizable.\n * @selector [data-resizable-direction=\"right | left | both\"]\n */\n resizableDirection: 'right' | 'left' | 'both'\n}\n\nexport interface ColumnResizerProps extends HoverEvents, RenderProps<ColumnResizerRenderProps> {\n /** A custom accessibility label for the resizer. */\n 'aria-label'?: string\n}\n\ninterface ColumnResizerContextValue {\n column: GridNode<unknown>,\n triggerRef: RefObject<HTMLDivElement | null>\n}\n\nconst ColumnResizerContext = createContext<ColumnResizerContextValue | null>(null);\n\nexport const ColumnResizer = forwardRef(function ColumnResizer(props: ColumnResizerProps, ref: ForwardedRef<HTMLDivElement>) {\n let layoutState = useContext(TableColumnResizeStateContext);\n if (!layoutState) {\n throw new Error('Wrap your <Table> in a <ResizableTableContainer> to enable column resizing');\n }\n let stringFormatter = useLocalizedStringFormatter(intlMessages, 'react-aria-components');\n\n let {onResizeStart, onResize, onResizeEnd} = useContext(ResizableTableContainerContext)!;\n let {column, triggerRef} = useContext(ColumnResizerContext)!;\n let inputRef = useRef<HTMLInputElement>(null);\n let {resizerProps, inputProps, isResizing} = useTableColumnResize(\n {\n column,\n 'aria-label': props['aria-label'] || stringFormatter.format('tableResizer'),\n onResizeStart,\n onResize,\n onResizeEnd,\n triggerRef\n },\n layoutState,\n inputRef\n );\n let {focusProps, isFocused, isFocusVisible} = useFocusRing();\n let {hoverProps, isHovered} = useHover(props);\n\n let isEResizable = layoutState.getColumnMinWidth(column.key) >= layoutState.getColumnWidth(column.key);\n let isWResizable = layoutState.getColumnMaxWidth(column.key) <= layoutState.getColumnWidth(column.key);\n let {direction} = useLocale();\n let resizableDirection: ColumnResizerRenderProps['resizableDirection'] = 'both';\n if (isEResizable) {\n resizableDirection = direction === 'rtl' ? 'right' : 'left';\n } else if (isWResizable) {\n resizableDirection = direction === 'rtl' ? 'left' : 'right';\n } else {\n resizableDirection = 'both';\n }\n\n let objectRef = useObjectRef(ref);\n let [cursor, setCursor] = useState('');\n useEffect(() => {\n if (!objectRef.current) {\n return;\n }\n let style = window.getComputedStyle(objectRef.current);\n setCursor(style.cursor);\n }, [objectRef, resizableDirection]);\n\n let renderProps = useRenderProps({\n ...props,\n defaultClassName: 'react-aria-ColumnResizer',\n values: {\n isFocused,\n isFocusVisible,\n isResizing,\n isHovered,\n resizableDirection\n }\n });\n\n let [isMouseDown, setMouseDown] = useState(false);\n let onPointerDown = (e: PointerEvent) => {\n if (e.pointerType === 'mouse') {\n setMouseDown(true);\n }\n };\n\n if (!isResizing && isMouseDown) {\n setMouseDown(false);\n }\n\n return (\n <div\n ref={objectRef}\n role=\"presentation\"\n {...filterDOMProps(props as any)}\n {...renderProps}\n {...mergeProps(resizerProps, {onPointerDown}, hoverProps)}\n data-hovered={isHovered || undefined}\n data-focused={isFocused || undefined}\n data-focus-visible={isFocusVisible || undefined}\n data-resizing={isResizing || undefined}\n data-resizable-direction={resizableDirection}>\n {renderProps.children}\n <input\n ref={inputRef}\n {...mergeProps(inputProps, focusProps)} />\n {isResizing && isMouseDown && ReactDOM.createPortal(<div style={{position: 'fixed', top: 0, left: 0, bottom: 0, right: 0, cursor}} />, document.body)}\n </div>\n );\n});\n\nexport interface TableBodyRenderProps {\n /**\n * Whether the table body has no rows and should display its empty state.\n * @selector [data-empty]\n */\n isEmpty: boolean,\n /**\n * Whether the Table is currently the active drop target.\n * @selector [data-drop-target]\n */\n isDropTarget: boolean\n}\n\nexport interface TableBodyProps<T> extends Omit<CollectionProps<T>, 'disabledKeys'>, StyleRenderProps<TableBodyRenderProps> {\n /** Provides content to display when there are no rows in the table. */\n renderEmptyState?: (props: TableBodyRenderProps) => ReactNode\n}\n/**\n * The body of a `<Table>`, containing the table rows.\n */\nexport const TableBody = /*#__PURE__*/ createBranchComponent('tablebody', <T extends object>(props: TableBodyProps<T>, ref: ForwardedRef<HTMLTableSectionElement>) => {\n let state = useContext(TableStateContext)!;\n let {isVirtualized} = useContext(CollectionRendererContext);\n let collection = state.collection;\n let {CollectionBranch} = useContext(CollectionRendererContext);\n let {dragAndDropHooks, dropState} = useContext(DragAndDropContext);\n let isDroppable = !!dragAndDropHooks?.useDroppableCollectionState && !dropState?.isDisabled;\n let isRootDropTarget = isDroppable && !!dropState && (dropState.isDropTarget({type: 'root'}) ?? false);\n\n let isEmpty = collection.size === 0 || (collection.rows.length === 1 && collection.rows[0].type === 'loader');\n let renderValues = {\n isDropTarget: isRootDropTarget,\n isEmpty\n };\n let renderProps = useRenderProps({\n ...props,\n id: undefined,\n children: undefined,\n defaultClassName: 'react-aria-TableBody',\n values: renderValues\n });\n\n let emptyState;\n let TR = useElementType('tr');\n let TD = useElementType('td');\n let numColumns = collection.columnCount;\n\n if (isEmpty && props.renderEmptyState && state) {\n let rowProps = {};\n let rowHeaderProps = {};\n let style = {};\n if (isVirtualized) {\n rowProps['aria-rowindex'] = collection.headerRows.length + 1;\n rowHeaderProps['aria-colspan'] = numColumns;\n style = {display: 'contents'};\n } else {\n rowHeaderProps['colSpan'] = numColumns;\n }\n\n emptyState = (\n <TR role=\"row\" {...rowProps} style={style}>\n <TD role=\"rowheader\" {...rowHeaderProps} style={style}>\n {props.renderEmptyState(renderValues)}\n </TD>\n </TR>\n );\n }\n\n let {rowGroupProps} = useTableRowGroup();\n let TBody = useElementType('tbody');\n\n // TODO: TableBody doesn't support being the scrollable body of the table yet, to revisit if needed. Would need to\n // call useLoadMore here and walk up the DOM to the nearest scrollable element to set scrollRef\n return (\n <TBody\n {...mergeProps(filterDOMProps(props as any), rowGroupProps)}\n {...renderProps}\n ref={ref}\n data-empty={isEmpty || undefined}>\n {isDroppable && <RootDropIndicator />}\n <CollectionBranch\n collection={collection}\n parent={collection.body}\n renderDropIndicator={useRenderDropIndicator(dragAndDropHooks, dropState)} />\n {emptyState}\n </TBody>\n );\n});\n\nexport interface RowRenderProps extends ItemRenderProps {\n /** Whether the row's children have keyboard focus. */\n isFocusVisibleWithin: boolean,\n /** The unique id of the row. */\n id?: Key\n}\n\nexport interface RowProps<T> extends StyleRenderProps<RowRenderProps>, LinkDOMProps, HoverEvents {\n /** A list of columns used when dynamically rendering cells. */\n columns?: Iterable<T>,\n /** The cells within the row. Supports static items or a function for dynamic rendering. */\n children?: ReactNode | ((item: T) => ReactElement),\n /** The object value that this row represents. When using dynamic collections, this is set automatically. */\n value?: T,\n /** Values that should invalidate the cell cache when using dynamic collections. */\n dependencies?: ReadonlyArray<any>,\n /** A string representation of the row's contents, used for features like typeahead. */\n textValue?: string,\n /** Whether the row is disabled. */\n isDisabled?: boolean,\n /**\n * Handler that is called when a user performs an action on the row. The exact user event depends on\n * the collection's `selectionBehavior` prop and the interaction modality.\n */\n onAction?: () => void,\n /** The unique id of the row. */\n id?: Key\n}\n\n/**\n * A row within a `<Table>`.\n */\nexport const Row = /*#__PURE__*/ createBranchComponent(\n 'item',\n <T extends object>(props: RowProps<T>, forwardedRef: ForwardedRef<HTMLTableRowElement>, item: GridNode<T>) => {\n let ref = useObjectRef<HTMLTableRowElement>(forwardedRef);\n let state = useContext(TableStateContext)!;\n let {dragAndDropHooks, dragState, dropState} = useContext(DragAndDropContext);\n let {isVirtualized, CollectionBranch} = useContext(CollectionRendererContext);\n let {rowProps, ...states} = useTableRow(\n {\n node: item,\n shouldSelectOnPressUp: !!dragState,\n isVirtualized\n },\n state,\n ref\n );\n let {isFocused, isFocusVisible, focusProps} = useFocusRing();\n let {\n isFocusVisible: isFocusVisibleWithin,\n focusProps: focusWithinProps\n } = useFocusRing({within: true});\n let {hoverProps, isHovered} = useHover({\n isDisabled: !states.allowsSelection && !states.hasAction,\n onHoverStart: props.onHoverStart,\n onHoverChange: props.onHoverChange,\n onHoverEnd: props.onHoverEnd\n });\n\n let {checkboxProps} = useTableSelectionCheckbox(\n {key: item.key},\n state\n );\n\n let draggableItem: DraggableItemResult | undefined = undefined;\n if (dragState && dragAndDropHooks) {\n draggableItem = dragAndDropHooks.useDraggableItem!({key: item.key, hasDragButton: true}, dragState);\n }\n\n let dropIndicator: DropIndicatorAria | undefined = undefined;\n let dropIndicatorRef = useRef<HTMLDivElement>(null);\n let {visuallyHiddenProps} = useVisuallyHidden();\n if (dropState && dragAndDropHooks) {\n dropIndicator = dragAndDropHooks.useDropIndicator!({\n target: {type: 'item', key: item.key, dropPosition: 'on'}\n }, dropState, dropIndicatorRef);\n }\n\n let dragButtonRef = useRef<HTMLButtonElement>(null);\n useEffect(() => {\n if (dragState && !dragButtonRef.current && process.env.NODE_ENV !== 'production') {\n console.warn('Draggable items in a Table must contain a <Button slot=\"drag\"> element so that keyboard and screen reader users can drag them.');\n }\n // eslint-disable-next-line\n }, []);\n\n let isDragging = dragState && dragState.isDragging(item.key);\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n let {children: _, ...restProps} = props;\n let renderProps = useRenderProps({\n ...restProps,\n id: undefined,\n defaultClassName: 'react-aria-Row',\n values: {\n ...states,\n isHovered,\n isFocused,\n isFocusVisible,\n selectionMode: state.selectionManager.selectionMode,\n selectionBehavior: state.selectionManager.selectionBehavior,\n isDragging,\n isDropTarget: dropIndicator?.isDropTarget,\n isFocusVisibleWithin,\n id: item.key\n }\n });\n\n let TR = useElementType('tr');\n let TD = useElementType('td');\n\n return (\n <>\n {dropIndicator && !dropIndicator.isHidden && (\n <TR role=\"row\" style={{height: 0}}>\n <TD role=\"gridcell\" colSpan={state.collection.columnCount} style={{padding: 0}}>\n <div role=\"button\" {...visuallyHiddenProps} {...dropIndicator.dropIndicatorProps} ref={dropIndicatorRef} />\n </TD>\n </TR>\n )}\n <TR\n {...mergeProps(filterDOMProps(props as any), rowProps, focusProps, hoverProps, draggableItem?.dragProps, focusWithinProps)}\n {...renderProps}\n ref={ref}\n data-disabled={states.isDisabled || undefined}\n data-selected={states.isSelected || undefined}\n data-hovered={isHovered || undefined}\n data-focused={states.isFocused || undefined}\n data-focus-visible={isFocusVisible || undefined}\n data-pressed={states.isPressed || undefined}\n data-dragging={isDragging || undefined}\n data-drop-target={dropIndicator?.isDropTarget || undefined}\n data-selection-mode={state.selectionManager.selectionMode === 'none' ? undefined : state.selectionManager.selectionMode}\n data-focus-visible-within={isFocusVisibleWithin || undefined}>\n <Provider\n values={[\n [CheckboxContext, {\n slots: {\n [DEFAULT_SLOT]: {},\n selection: checkboxProps\n }\n }],\n [ButtonContext, {\n slots: {\n [DEFAULT_SLOT]: {},\n drag: {\n ...draggableItem?.dragButtonProps,\n ref: dragButtonRef,\n style: {\n pointerEvents: 'none'\n }\n }\n }\n }]\n ]}>\n <CollectionBranch collection={state.collection} parent={item} />\n </Provider>\n </TR>\n </>\n );\n },\n props => {\n if (props.id == null && typeof props.children === 'function') {\n throw new Error('No id detected for the Row element. The Row element requires a id to be provided to it when the cells are rendered dynamically.');\n }\n\n let dependencies = [props.value].concat(props.dependencies);\n return (\n <Collection dependencies={dependencies} items={props.columns} idScope={props.id}>\n {props.children}\n </Collection>\n );\n }\n);\n\nexport interface CellRenderProps {\n /**\n * Whether the cell is currently in a pressed state.\n * @selector [data-pressed]\n */\n isPressed: boolean,\n /**\n * Whether the cell is currently focused.\n * @selector [data-focused]\n */\n isFocused: boolean,\n /**\n * Whether the cell is currently keyboard focused.\n * @selector [data-focus-visible]\n */\n isFocusVisible: boolean,\n /**\n * Whether the cell is currently hovered with a mouse.\n * @selector [data-hovered]\n */\n isHovered: boolean,\n /**\n * The unique id of the cell.\n **/\n id?: Key\n}\n\nexport interface CellProps extends RenderProps<CellRenderProps> {\n /** The unique id of the cell. */\n id?: Key,\n /** A string representation of the cell's contents, used for features like typeahead. */\n textValue?: string,\n /** Indicates how many columns the data cell spans. */\n colSpan?: number\n}\n\n/**\n * A cell within a table row.\n */\nexport const Cell = /*#__PURE__*/ createLeafComponent('cell', (props: CellProps, forwardedRef: ForwardedRef<HTMLTableCellElement>, cell: GridNode<unknown>) => {\n let ref = useObjectRef<HTMLTableCellElement>(forwardedRef);\n let state = useContext(TableStateContext)!;\n let {dragState} = useContext(DragAndDropContext);\n let {isVirtualized} = useContext(CollectionRendererContext);\n\n cell.column = state.collection.columns[cell.index];\n\n let {gridCellProps, isPressed} = useTableCell({\n node: cell,\n shouldSelectOnPressUp: !!dragState,\n isVirtualized\n }, state, ref);\n let {isFocused, isFocusVisible, focusProps} = useFocusRing();\n let {hoverProps, isHovered} = useHover({});\n\n let renderProps = useRenderProps({\n ...props,\n id: undefined,\n defaultClassName: 'react-aria-Cell',\n values: {\n isFocused,\n isFocusVisible,\n isPressed,\n isHovered,\n id: cell.key\n }\n });\n\n let TD = useElementType('td');\n\n return (\n <TD\n {...mergeProps(filterDOMProps(props as any), gridCellProps, focusProps, hoverProps)}\n {...renderProps}\n ref={ref}\n data-focused={isFocused || undefined}\n data-focus-visible={isFocusVisible || undefined}\n data-pressed={isPressed || undefined}>\n <CollectionRendererContext.Provider value={DefaultCollectionRenderer}>\n {renderProps.children}\n </CollectionRendererContext.Provider>\n </TD>\n );\n});\n\nfunction TableDropIndicatorWrapper(props: DropIndicatorProps, ref: ForwardedRef<HTMLElement>) {\n ref = useObjectRef(ref);\n let {dragAndDropHooks, dropState} = useContext(DragAndDropContext)!;\n let buttonRef = useRef<HTMLDivElement>(null);\n let {dropIndicatorProps, isHidden, isDropTarget} = dragAndDropHooks!.useDropIndicator!(\n props,\n dropState!,\n buttonRef\n );\n\n if (isHidden) {\n return null;\n }\n\n return (\n <TableDropIndicatorForwardRef {...props} dropIndicatorProps={dropIndicatorProps} isDropTarget={isDropTarget} buttonRef={buttonRef} ref={ref} />\n );\n}\n\ninterface TableDropIndicatorProps extends DropIndicatorProps {\n dropIndicatorProps: React.HTMLAttributes<HTMLElement>,\n isDropTarget: boolean,\n buttonRef: RefObject<HTMLDivElement | null>\n}\n\nfunction TableDropIndicator(props: TableDropIndicatorProps, ref: ForwardedRef<HTMLElement>) {\n let {\n dropIndicatorProps,\n isDropTarget,\n buttonRef,\n ...otherProps\n } = props;\n\n let state = useContext(TableStateContext)!;\n let {visuallyHiddenProps} = useVisuallyHidden();\n let renderProps = useRenderProps({\n ...otherProps,\n defaultClassName: 'react-aria-DropIndicator',\n values: {\n isDropTarget\n }\n });\n\n let TR = useElementType('tr');\n let TD = useElementType('td');\n\n return (\n <TR\n {...filterDOMProps(props as any)}\n {...renderProps}\n role=\"row\"\n ref={ref as RefObject<HTMLTableRowElement | null>}\n data-drop-target={isDropTarget || undefined}>\n <TD\n role=\"gridcell\"\n colSpan={state.collection.columnCount}\n style={{padding: 0}}>\n <div {...visuallyHiddenProps} role=\"button\" {...dropIndicatorProps} ref={buttonRef} />\n {renderProps.children}\n </TD>\n </TR>\n );\n}\n\nconst TableDropIndicatorForwardRef = forwardRef(TableDropIndicator);\n\nfunction RootDropIndicator() {\n let state = useContext(TableStateContext)!;\n let {dragAndDropHooks, dropState} = useContext(DragAndDropContext);\n let ref = useRef<HTMLDivElement>(null);\n let {dropIndicatorProps} = dragAndDropHooks!.useDropIndicator!({\n target: {type: 'root'}\n }, dropState!, ref);\n let isDropTarget = dropState!.isDropTarget({type: 'root'});\n let {visuallyHiddenProps} = useVisuallyHidden();\n let TR = useElementType('tr');\n let TD = useElementType('td');\n\n if (!isDropTarget && dropIndicatorProps['aria-hidden']) {\n return null;\n }\n\n return (\n <TR\n role=\"row\"\n aria-hidden={dropIndicatorProps['aria-hidden']}\n style={{height: 0}}>\n <TD\n role=\"gridcell\"\n colSpan={state.collection.columnCount}\n style={{padding: 0}}>\n <div role=\"button\" {...visuallyHiddenProps} {...dropIndicatorProps} ref={ref} />\n </TD>\n </TR>\n );\n}\n\nexport interface TableLoadingSentinelProps extends Omit<LoadMoreSentinelProps, 'collection'>, StyleProps {\n /**\n * The load more spinner to render when loading additional items.\n */\n children?: ReactNode,\n /**\n * Whether or not the loading spinner should be rendered or not.\n */\n isLoading?: boolean\n}\n\nexport const UNSTABLE_TableLoadingSentinel = createLeafComponent('loader', function TableLoadingIndicator<T extends object>(props: TableLoadingSentinelProps, ref: ForwardedRef<HTMLTableRowElement>, item: Node<T>) {\n let state = useContext(TableStateContext)!;\n let {isVirtualized} = useContext(CollectionRendererContext);\n let {isLoading, onLoadMore, scrollOffset, ...otherProps} = props;\n let numColumns = state.collection.columns.length;\n\n let sentinelRef = useRef(null);\n let memoedLoadMoreProps = useMemo(() => ({\n onLoadMore,\n collection: state?.collection,\n sentinelRef,\n scrollOffset\n }), [onLoadMore, scrollOffset, state?.collection]);\n UNSTABLE_useLoadMoreSentinel(memoedLoadMoreProps, sentinelRef);\n\n let renderProps = useRenderProps({\n ...otherProps,\n id: undefined,\n children: item.rendered,\n defaultClassName: 'react-aria-TableLoadingIndicator',\n values: null\n });\n let TR = useElementType('tr');\n let TD = useElementType('td');\n let rowProps = {};\n let rowHeaderProps = {};\n let style = {};\n\n if (isVirtualized) {\n rowProps['aria-rowindex'] = item.index + 1 + state.collection.headerRows.length;\n rowHeaderProps['aria-colspan'] = numColumns;\n style = {display: 'contents'};\n } else {\n rowHeaderProps['colSpan'] = numColumns;\n }\n\n return (\n <>\n {/* Alway render the sentinel. For now onus is on the user for styling when using flex + gap (this would introduce a gap even though it doesn't take room) */}\n {/* @ts-ignore - compatibility with React < 19 */}\n <TR style={{height: 0}} inert={inertValue(true)}>\n <TD style={{padding: 0, border: 0}}>\n <div data-testid=\"loadMoreSentinel\" ref={sentinelRef} style={{position: 'relative', height: 1, width: 1}} />\n </TD>\n </TR>\n {isLoading && renderProps.children && (\n <TR\n {...mergeProps(filterDOMProps(props as any), rowProps)}\n {...renderProps}\n role=\"row\"\n ref={ref}>\n <TD role=\"rowheader\" {...rowHeaderProps} style={style}>\n {renderProps.children}\n </TD>\n </TR>\n )}\n </>\n );\n});\n"],"names":[],"version":3,"file":"Table.main.js.map"}
1
+ {"mappings":"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","sources":["packages/react-aria-components/src/Table.tsx"],"sourcesContent":["import {AriaLabelingProps, GlobalDOMAttributes, HoverEvents, Key, LinkDOMProps, PressEvents, RefObject} from '@react-types/shared';\nimport {BaseCollection, Collection, CollectionBuilder, CollectionNode, createBranchComponent, createLeafComponent, useCachedChildren} from '@react-aria/collections';\nimport {buildHeaderRows, TableColumnResizeState} from '@react-stately/table';\nimport {ButtonContext} from './Button';\nimport {CheckboxContext} from './RSPContexts';\nimport {CollectionProps, CollectionRendererContext, DefaultCollectionRenderer, ItemRenderProps} from './Collection';\nimport {ColumnSize, ColumnStaticSize, TableCollection as ITableCollection, TableProps as SharedTableProps} from '@react-types/table';\nimport {ContextValue, DEFAULT_SLOT, DOMProps, Provider, RenderProps, SlotProps, StyleProps, StyleRenderProps, useContextProps, useRenderProps} from './utils';\nimport {DisabledBehavior, DraggableCollectionState, DroppableCollectionState, MultipleSelectionState, Node, SelectionBehavior, SelectionMode, SortDirection, TableState, useMultipleSelectionState, useTableColumnResizeState, useTableState} from 'react-stately';\nimport {DragAndDropContext, DropIndicatorContext, DropIndicatorProps, useDndPersistedKeys, useRenderDropIndicator} from './DragAndDrop';\nimport {DragAndDropHooks} from './useDragAndDrop';\nimport {DraggableItemResult, DragPreviewRenderer, DropIndicatorAria, DroppableCollectionResult, FocusScope, ListKeyboardDelegate, mergeProps, useFocusRing, useHover, useLocale, useLocalizedStringFormatter, useTable, useTableCell, useTableColumnHeader, useTableColumnResize, useTableHeaderRow, useTableRow, useTableRowGroup, useTableSelectAllCheckbox, useTableSelectionCheckbox, useVisuallyHidden} from 'react-aria';\nimport {filterDOMProps, inertValue, isScrollable, LoadMoreSentinelProps, mergeRefs, useLayoutEffect, useLoadMoreSentinel, useObjectRef, useResizeObserver} from '@react-aria/utils';\nimport {GridNode} from '@react-types/grid';\n// @ts-ignore\nimport intlMessages from '../intl/*.json';\nimport React, {createContext, ForwardedRef, forwardRef, JSX, ReactElement, ReactNode, useCallback, useContext, useEffect, useMemo, useRef, useState} from 'react';\nimport ReactDOM from 'react-dom';\n\nclass TableCollection<T> extends BaseCollection<T> implements ITableCollection<T> {\n headerRows: GridNode<T>[] = [];\n columns: GridNode<T>[] = [];\n rows: GridNode<T>[] = [];\n rowHeaderColumnKeys: Set<Key> = new Set();\n head: CollectionNode<T> = new CollectionNode('tableheader', -1);\n body: CollectionNode<T> = new CollectionNode('tablebody', -2);\n columnsDirty = true;\n\n addNode(node: CollectionNode<T>) {\n super.addNode(node);\n\n this.columnsDirty ||= node.type === 'column';\n if (node.type === 'tableheader') {\n this.head = node;\n }\n\n if (node.type === 'tablebody') {\n this.body = node;\n }\n }\n\n commit(firstKey: Key, lastKey: Key, isSSR = false) {\n this.updateColumns(isSSR);\n\n this.rows = [];\n for (let row of this.getChildren(this.body.key)) {\n let lastChildKey = (row as CollectionNode<T>).lastChildKey;\n if (lastChildKey != null) {\n let lastCell = this.getItem(lastChildKey) as GridNode<T>;\n let numberOfCellsInRow = (lastCell.colIndex ?? lastCell.index) + (lastCell.colSpan ?? 1);\n if (numberOfCellsInRow !== this.columns.length && !isSSR) {\n throw new Error(`Cell count must match column count. Found ${numberOfCellsInRow} cells and ${this.columns.length} columns.`);\n }\n }\n this.rows.push(row);\n }\n\n super.commit(firstKey, lastKey, isSSR);\n }\n\n private updateColumns(isSSR: boolean) {\n if (!this.columnsDirty) {\n return;\n }\n\n this.rowHeaderColumnKeys = new Set();\n this.columns = [];\n\n let columnKeyMap = new Map();\n let visit = (node: Node<T>) => {\n switch (node.type) {\n case 'column':\n columnKeyMap.set(node.key, node);\n if (!node.hasChildNodes) {\n node.index = this.columns.length;\n this.columns.push(node);\n\n if (node.props.isRowHeader) {\n this.rowHeaderColumnKeys.add(node.key);\n }\n }\n break;\n }\n for (let child of this.getChildren(node.key)) {\n visit(child);\n }\n };\n\n for (let node of this.getChildren(this.head.key)) {\n visit(node);\n }\n\n this.headerRows = buildHeaderRows(columnKeyMap, this.columns);\n this.columnsDirty = false;\n if (this.rowHeaderColumnKeys.size === 0 && this.columns.length > 0 && !isSSR) {\n throw new Error('A table must have at least one Column with the isRowHeader prop set to true');\n }\n }\n\n get columnCount() {\n return this.columns.length;\n }\n\n *[Symbol.iterator]() {\n // Wait until the collection is initialized.\n if (this.head.key === -1) {\n return;\n }\n yield this.head;\n yield this.body;\n }\n\n getFirstKey() {\n return this.body.firstChildKey;\n }\n\n getLastKey() {\n return this.body.lastChildKey;\n }\n\n getKeyAfter(key: Key) {\n let node = this.getItem(key);\n if (node?.type === 'column') {\n return node.nextKey ?? null;\n }\n\n return super.getKeyAfter(key);\n }\n\n getKeyBefore(key: Key) {\n let node = this.getItem(key);\n if (node?.type === 'column') {\n return node.prevKey ?? null;\n }\n\n let k = super.getKeyBefore(key);\n if (k != null && this.getItem(k)?.type === 'tablebody') {\n return null;\n }\n\n return k;\n }\n\n getChildren(key: Key): Iterable<Node<T>> {\n if (!this.getItem(key)) {\n for (let row of this.headerRows) {\n if (row.key === key) {\n return row.childNodes;\n }\n }\n }\n\n return super.getChildren(key);\n }\n\n clone() {\n let collection = super.clone();\n collection.headerRows = this.headerRows;\n collection.columns = this.columns;\n collection.rowHeaderColumnKeys = this.rowHeaderColumnKeys;\n collection.head = this.head;\n collection.body = this.body;\n return collection;\n }\n\n getTextValue(key: Key): string {\n let row = this.getItem(key);\n if (!row) {\n return '';\n }\n\n // If the row has a textValue, use that.\n if (row.textValue) {\n return row.textValue;\n }\n\n // Otherwise combine the text of each of the row header columns.\n let rowHeaderColumnKeys = this.rowHeaderColumnKeys;\n let text: string[] = [];\n for (let cell of this.getChildren(key)) {\n let column = this.columns[cell.index!];\n if (rowHeaderColumnKeys.has(column.key) && cell.textValue) {\n text.push(cell.textValue);\n }\n\n if (text.length === rowHeaderColumnKeys.size) {\n break;\n }\n }\n\n return text.join(' ');\n }\n}\n\ninterface ResizableTableContainerContextValue {\n tableWidth: number,\n tableRef: RefObject<HTMLTableElement | null>,\n scrollRef: RefObject<HTMLElement | null>,\n // Dependency inject useTableColumnResizeState so it doesn't affect bundle size unless you're using ResizableTableContainer.\n useTableColumnResizeState: typeof useTableColumnResizeState,\n onResizeStart?: (widths: Map<Key, ColumnSize>) => void,\n onResize?: (widths: Map<Key, ColumnSize>) => void,\n onResizeEnd?: (widths: Map<Key, ColumnSize>) => void\n}\n\nconst ResizableTableContainerContext = createContext<ResizableTableContainerContextValue | null>(null);\n\nexport interface ResizableTableContainerProps extends DOMProps, GlobalDOMAttributes<HTMLDivElement> {\n /**\n * Handler that is called when a user starts a column resize.\n */\n onResizeStart?: (widths: Map<Key, ColumnSize>) => void,\n /**\n * Handler that is called when a user performs a column resize.\n * Can be used with the width property on columns to put the column widths into\n * a controlled state.\n */\n onResize?: (widths: Map<Key, ColumnSize>) => void,\n /**\n * Handler that is called after a user performs a column resize.\n * Can be used to store the widths of columns for another future session.\n */\n onResizeEnd?: (widths: Map<Key, ColumnSize>) => void\n}\n\nexport const ResizableTableContainer = forwardRef(function ResizableTableContainer(props: ResizableTableContainerProps, ref: ForwardedRef<HTMLDivElement>) {\n let containerRef = useObjectRef(ref);\n let tableRef = useRef<HTMLTableElement>(null);\n let scrollRef = useRef<HTMLElement | null>(null);\n let [width, setWidth] = useState(0);\n\n useLayoutEffect(() => {\n // Walk up the DOM from the Table to the ResizableTableContainer and stop\n // when we reach the first scrollable element. This is what we'll measure\n // to determine column widths (important due to width of scrollbars).\n // This will usually be the ResizableTableContainer for native tables, and\n // the Table itself for virtualized tables.\n let table = tableRef.current as HTMLElement | null;\n while (table && table !== containerRef.current && !isScrollable(table)) {\n table = table.parentElement;\n }\n scrollRef.current = table;\n }, [containerRef]);\n\n useResizeObserver({\n ref: scrollRef,\n box: 'border-box',\n onResize() {\n setWidth(scrollRef.current?.clientWidth ?? 0);\n }\n });\n\n useLayoutEffect(() => {\n setWidth(scrollRef.current?.clientWidth ?? 0);\n }, []);\n\n let ctx = useMemo(() => ({\n tableRef,\n scrollRef,\n tableWidth: width,\n useTableColumnResizeState,\n onResizeStart: props.onResizeStart,\n onResize: props.onResize,\n onResizeEnd: props.onResizeEnd\n }), [tableRef, width, props.onResizeStart, props.onResize, props.onResizeEnd]);\n\n return (\n <div\n {...filterDOMProps(props, {global: true})}\n ref={containerRef}\n className={props.className || 'react-aria-ResizableTableContainer'}\n style={props.style}\n onScroll={props.onScroll}>\n <ResizableTableContainerContext.Provider value={ctx}>\n {props.children}\n </ResizableTableContainerContext.Provider>\n </div>\n );\n});\n\nexport const TableContext = createContext<ContextValue<TableProps, HTMLTableElement | HTMLDivElement>>(null);\nexport const TableStateContext = createContext<TableState<any> | null>(null);\nexport const TableColumnResizeStateContext = createContext<TableColumnResizeState<unknown> | null>(null);\n\nexport interface TableRenderProps {\n /**\n * Whether the table is currently focused.\n * @selector [data-focused]\n */\n isFocused: boolean,\n /**\n * Whether the table is currently keyboard focused.\n * @selector [data-focus-visible]\n */\n isFocusVisible: boolean,\n /**\n * Whether the table is currently the active drop target.\n * @selector [data-drop-target]\n */\n isDropTarget: boolean,\n /**\n * State of the table.\n */\n state: TableState<unknown>\n}\n\nexport interface TableProps extends Omit<SharedTableProps<any>, 'children'>, StyleRenderProps<TableRenderProps>, SlotProps, AriaLabelingProps, GlobalDOMAttributes<HTMLTableElement> {\n /** The elements that make up the table. Includes the TableHeader, TableBody, Columns, and Rows. */\n children?: ReactNode,\n /**\n * How multiple selection should behave in the collection.\n * @default \"toggle\"\n */\n selectionBehavior?: SelectionBehavior,\n /**\n * Whether `disabledKeys` applies to all interactions, or only selection.\n * @default \"selection\"\n */\n disabledBehavior?: DisabledBehavior,\n /** Handler that is called when a user performs an action on the row. */\n onRowAction?: (key: Key) => void,\n /** The drag and drop hooks returned by `useDragAndDrop` used to enable drag and drop behavior for the Table. */\n dragAndDropHooks?: DragAndDropHooks\n}\n\n/**\n * A table displays data in rows and columns and enables a user to navigate its contents via directional navigation keys,\n * and optionally supports row selection and sorting.\n */\nexport const Table = forwardRef(function Table(props: TableProps, ref: ForwardedRef<HTMLTableElement | HTMLDivElement>) {\n [props, ref] = useContextProps(props, ref, TableContext);\n\n // Separate selection state so we have access to it from collection components via useTableOptions.\n let selectionState = useMultipleSelectionState(props);\n let {selectionBehavior, selectionMode, disallowEmptySelection} = selectionState;\n let hasDragHooks = !!props.dragAndDropHooks?.useDraggableCollectionState;\n let ctx = useMemo(() => ({\n selectionBehavior: selectionMode === 'none' ? null : selectionBehavior,\n selectionMode,\n disallowEmptySelection,\n allowsDragging: hasDragHooks\n }), [selectionBehavior, selectionMode, disallowEmptySelection, hasDragHooks]);\n\n let content = (\n <TableOptionsContext.Provider value={ctx}>\n <Collection {...props} />\n </TableOptionsContext.Provider>\n );\n\n return (\n <CollectionBuilder content={content} createCollection={() => new TableCollection<any>()}>\n {collection => <TableInner props={props} forwardedRef={ref as any} selectionState={selectionState} collection={collection} />}\n </CollectionBuilder>\n );\n});\n\ninterface TableInnerProps {\n props: TableProps,\n forwardedRef: ForwardedRef<HTMLTableElement>,\n selectionState: MultipleSelectionState,\n collection: ITableCollection<Node<object>>\n}\n\n\nfunction TableInner({props, forwardedRef: ref, selectionState, collection}: TableInnerProps) {\n let tableContainerContext = useContext(ResizableTableContainerContext);\n ref = useObjectRef(useMemo(() => mergeRefs(ref, tableContainerContext?.tableRef), [ref, tableContainerContext?.tableRef]));\n let state = useTableState({\n ...props,\n collection,\n children: undefined,\n UNSAFE_selectionState: selectionState\n });\n\n let {isVirtualized, layoutDelegate, dropTargetDelegate: ctxDropTargetDelegate, CollectionRoot} = useContext(CollectionRendererContext);\n let {dragAndDropHooks} = props;\n let {gridProps} = useTable({\n ...props,\n layoutDelegate,\n isVirtualized\n }, state, ref);\n let selectionManager = state.selectionManager;\n let hasDragHooks = !!dragAndDropHooks?.useDraggableCollectionState;\n let hasDropHooks = !!dragAndDropHooks?.useDroppableCollectionState;\n let dragHooksProvided = useRef(hasDragHooks);\n let dropHooksProvided = useRef(hasDropHooks);\n useEffect(() => {\n if (process.env.NODE_ENV === 'production') {\n return;\n }\n if (dragHooksProvided.current !== hasDragHooks) {\n console.warn('Drag hooks were provided during one render, but not another. This should be avoided as it may produce unexpected behavior.');\n }\n if (dropHooksProvided.current !== hasDropHooks) {\n console.warn('Drop hooks were provided during one render, but not another. This should be avoided as it may produce unexpected behavior.');\n }\n }, [hasDragHooks, hasDropHooks]);\n\n let dragState: DraggableCollectionState | undefined = undefined;\n let dropState: DroppableCollectionState | undefined = undefined;\n let droppableCollection: DroppableCollectionResult | undefined = undefined;\n let isRootDropTarget = false;\n let dragPreview: JSX.Element | null = null;\n let preview = useRef<DragPreviewRenderer>(null);\n\n if (hasDragHooks && dragAndDropHooks) {\n dragState = dragAndDropHooks.useDraggableCollectionState!({\n collection,\n selectionManager,\n preview: dragAndDropHooks.renderDragPreview ? preview : undefined\n });\n dragAndDropHooks.useDraggableCollection!({}, dragState, ref);\n\n let DragPreview = dragAndDropHooks.DragPreview!;\n dragPreview = dragAndDropHooks.renderDragPreview\n ? <DragPreview ref={preview}>{dragAndDropHooks.renderDragPreview}</DragPreview>\n : null;\n }\n\n if (hasDropHooks && dragAndDropHooks) {\n dropState = dragAndDropHooks.useDroppableCollectionState!({\n collection,\n selectionManager\n });\n\n let keyboardDelegate = new ListKeyboardDelegate({\n collection,\n disabledKeys: selectionManager.disabledKeys,\n disabledBehavior: selectionManager.disabledBehavior,\n ref,\n layoutDelegate\n });\n let dropTargetDelegate = dragAndDropHooks.dropTargetDelegate || ctxDropTargetDelegate || new dragAndDropHooks.ListDropTargetDelegate(collection.rows, ref);\n droppableCollection = dragAndDropHooks.useDroppableCollection!({\n keyboardDelegate,\n dropTargetDelegate\n }, dropState, ref);\n\n isRootDropTarget = dropState.isDropTarget({type: 'root'});\n }\n\n let {focusProps, isFocused, isFocusVisible} = useFocusRing();\n let renderProps = useRenderProps({\n className: props.className,\n style: props.style,\n defaultClassName: 'react-aria-Table',\n values: {\n isDropTarget: isRootDropTarget,\n isFocused,\n isFocusVisible,\n state\n }\n });\n\n let isListDraggable = !!(hasDragHooks && !dragState?.isDisabled);\n\n let style = renderProps.style;\n let layoutState: TableColumnResizeState<unknown> | null = null;\n if (tableContainerContext) {\n layoutState = tableContainerContext.useTableColumnResizeState({\n tableWidth: tableContainerContext.tableWidth\n }, state);\n if (!isVirtualized) {\n style = {\n ...style,\n tableLayout: 'fixed',\n width: 'fit-content'\n };\n }\n }\n\n let ElementType = useElementType('table');\n let DOMProps = filterDOMProps(props, {global: true});\n\n return (\n <Provider\n values={[\n [TableStateContext, state],\n [TableColumnResizeStateContext, layoutState],\n [DragAndDropContext, {dragAndDropHooks, dragState, dropState}],\n [DropIndicatorContext, {render: TableDropIndicatorWrapper}]\n ]}>\n <FocusScope>\n <ElementType\n {...mergeProps(DOMProps, renderProps, gridProps, focusProps, droppableCollection?.collectionProps)}\n style={style}\n ref={ref}\n slot={props.slot || undefined}\n onScroll={props.onScroll}\n data-allows-dragging={isListDraggable || undefined}\n data-drop-target={isRootDropTarget || undefined}\n data-focused={isFocused || undefined}\n data-focus-visible={isFocusVisible || undefined}>\n <CollectionRoot\n collection={collection}\n scrollRef={tableContainerContext?.scrollRef ?? ref}\n persistedKeys={useDndPersistedKeys(selectionManager, dragAndDropHooks, dropState)} />\n </ElementType>\n </FocusScope>\n {dragPreview}\n </Provider>\n );\n}\n\nfunction useElementType<E extends keyof JSX.IntrinsicElements>(element: E): E | 'div' {\n let {isVirtualized} = useContext(CollectionRendererContext);\n return isVirtualized ? 'div' : element;\n}\n\nexport interface TableOptionsContextValue {\n /** The type of selection that is allowed in the table. */\n selectionMode: SelectionMode,\n /** The selection behavior for the table. If selectionMode is `\"none\"`, this will be `null`. */\n selectionBehavior: SelectionBehavior | null,\n /** Whether the table allows empty selection. */\n disallowEmptySelection: boolean,\n /** Whether the table allows rows to be dragged. */\n allowsDragging: boolean\n}\n\nconst TableOptionsContext = createContext<TableOptionsContextValue | null>(null);\n\n/**\n * Returns options from the parent `<Table>` component.\n */\nexport function useTableOptions(): TableOptionsContextValue {\n return useContext(TableOptionsContext)!;\n}\n\nexport interface TableHeaderRenderProps {\n /**\n * Whether the table header is currently hovered with a mouse.\n * @selector [data-hovered]\n */\n isHovered: boolean\n}\n\nexport interface TableHeaderProps<T> extends StyleRenderProps<TableHeaderRenderProps>, HoverEvents, GlobalDOMAttributes<HTMLTableSectionElement> {\n /** A list of table columns. */\n columns?: Iterable<T>,\n /** A list of `Column(s)` or a function. If the latter, a list of columns must be provided using the `columns` prop. */\n children?: ReactNode | ((item: T) => ReactElement),\n /** Values that should invalidate the column cache when using dynamic collections. */\n dependencies?: ReadonlyArray<any>\n}\n\n/**\n * A header within a `<Table>`, containing the table columns.\n */\nexport const TableHeader = /*#__PURE__*/ createBranchComponent(\n 'tableheader',\n <T extends object>(props: TableHeaderProps<T>, ref: ForwardedRef<HTMLTableSectionElement | HTMLDivElement>) => {\n let collection = useContext(TableStateContext)!.collection as TableCollection<unknown>;\n let headerRows = useCachedChildren({\n items: collection.headerRows,\n children: useCallback((item: Node<unknown>) => {\n switch (item.type) {\n case 'headerrow':\n return <TableHeaderRow item={item} />;\n default:\n throw new Error('Unsupported node type in TableHeader: ' + item.type);\n }\n }, [])\n });\n\n let THead = useElementType('thead');\n let {rowGroupProps} = useTableRowGroup();\n let {hoverProps, isHovered} = useHover({\n onHoverStart: props.onHoverStart,\n onHoverChange: props.onHoverChange,\n onHoverEnd: props.onHoverEnd\n });\n\n let renderProps = useRenderProps({\n className: props.className,\n style: props.style,\n defaultClassName: 'react-aria-TableHeader',\n values: {\n isHovered\n }\n });\n\n return (\n <THead\n {...mergeProps(filterDOMProps(props, {global: true}), rowGroupProps, hoverProps)}\n {...renderProps}\n ref={ref as any}\n data-hovered={isHovered || undefined}>\n {headerRows}\n </THead>\n );\n },\n props => (\n <Collection dependencies={props.dependencies} items={props.columns}>\n {props.children}\n </Collection>\n )\n);\n\nfunction TableHeaderRow({item}: {item: GridNode<any>}) {\n let ref = useRef<HTMLTableRowElement>(null);\n let state = useContext(TableStateContext)!;\n let {isVirtualized, CollectionBranch} = useContext(CollectionRendererContext);\n let {rowProps} = useTableHeaderRow({node: item, isVirtualized}, state, ref);\n let {checkboxProps} = useTableSelectAllCheckbox(state);\n let TR = useElementType('tr');\n\n return (\n <TR {...rowProps} ref={ref}>\n <Provider\n values={[\n [CheckboxContext, {\n slots: {\n selection: checkboxProps\n }\n }]\n ]}>\n <CollectionBranch collection={state.collection} parent={item} />\n </Provider>\n </TR>\n );\n}\n\nexport interface ColumnRenderProps {\n /**\n * Whether the item is currently hovered with a mouse.\n * @selector [data-hovered]\n */\n isHovered: boolean,\n /**\n * Whether the item is currently focused.\n * @selector [data-focused]\n */\n isFocused: boolean,\n /**\n * Whether the item is currently keyboard focused.\n * @selector [data-focus-visible]\n */\n isFocusVisible: boolean,\n /**\n * Whether the column allows sorting.\n * @selector [data-allows-sorting]\n */\n allowsSorting: boolean,\n /**\n * The current sort direction.\n * @selector [data-sort-direction=\"ascending | descending\"]\n */\n sortDirection: SortDirection | undefined,\n /**\n * Whether the column is currently being resized.\n * @selector [data-resizing]\n */\n isResizing: boolean,\n /**\n * Triggers sorting for this column in the given direction.\n */\n sort(direction: SortDirection): void,\n /**\n * Starts column resizing if the table is contained in a `<ResizableTableContainer>` element.\n */\n startResize(): void\n}\n\nexport interface ColumnProps extends RenderProps<ColumnRenderProps>, GlobalDOMAttributes<HTMLTableHeaderCellElement> {\n /** The unique id of the column. */\n id?: Key,\n /** Whether the column allows sorting. */\n allowsSorting?: boolean,\n /** Whether a column is a [row header](https://www.w3.org/TR/wai-aria-1.1/#rowheader) and should be announced by assistive technology during row navigation. */\n isRowHeader?: boolean,\n /** A string representation of the column's contents, used for accessibility announcements. */\n textValue?: string,\n /** The width of the column. This prop only applies when the `<Table>` is wrapped in a `<ResizableTableContainer>`. */\n width?: ColumnSize | null,\n /** The default width of the column. This prop only applies when the `<Table>` is wrapped in a `<ResizableTableContainer>`. */\n defaultWidth?: ColumnSize | null,\n /** The minimum width of the column. This prop only applies when the `<Table>` is wrapped in a `<ResizableTableContainer>`. */\n minWidth?: ColumnStaticSize | null,\n /** The maximum width of the column. This prop only applies when the `<Table>` is wrapped in a `<ResizableTableContainer>`. */\n maxWidth?: ColumnStaticSize | null\n}\n\n/**\n * A column within a `<Table>`.\n */\nexport const Column = /*#__PURE__*/ createLeafComponent('column', (props: ColumnProps, forwardedRef: ForwardedRef<HTMLTableCellElement | HTMLDivElement>, column: GridNode<unknown>) => {\n let ref = useObjectRef<HTMLTableCellElement | HTMLDivElement>(forwardedRef);\n let state = useContext(TableStateContext)!;\n let {isVirtualized} = useContext(CollectionRendererContext);\n let {columnHeaderProps} = useTableColumnHeader(\n {node: column, isVirtualized},\n state,\n ref\n );\n let {isFocused, isFocusVisible, focusProps} = useFocusRing();\n\n let layoutState = useContext(TableColumnResizeStateContext);\n let isResizing = false;\n if (layoutState) {\n isResizing = layoutState.resizingColumn === column.key;\n } else if (process.env.NODE_ENV !== 'production') {\n for (let prop in ['width', 'defaultWidth', 'minWidth', 'maxWidth']) {\n if (prop in column.props) {\n console.warn(`The ${prop} prop on a <Column> only applies when a <Table> is wrapped in a <ResizableTableContainer>. If you aren't using column resizing, you can set the width of a column with CSS.`);\n }\n }\n }\n\n let {hoverProps, isHovered} = useHover({isDisabled: !props.allowsSorting});\n let renderProps = useRenderProps({\n ...props,\n id: undefined,\n children: column.rendered,\n defaultClassName: 'react-aria-Column',\n values: {\n isHovered,\n isFocused,\n isFocusVisible,\n allowsSorting: column.props.allowsSorting,\n sortDirection: state.sortDescriptor?.column === column.key\n ? state.sortDescriptor.direction\n : undefined,\n isResizing,\n startResize: () => {\n if (layoutState) {\n layoutState.startResize(column.key);\n state.setKeyboardNavigationDisabled(true);\n } else {\n throw new Error('Wrap your <Table> in a <ResizableTableContainer> to enable column resizing');\n }\n },\n sort: (direction) => {\n state.sort(column.key, direction);\n }\n }\n });\n\n let style = renderProps.style;\n if (layoutState) {\n style = {...style, width: layoutState.getColumnWidth(column.key)};\n }\n\n let TH = useElementType('th');\n let DOMProps = filterDOMProps(props as any, {global: true});\n delete DOMProps.id;\n\n return (\n <TH\n {...mergeProps(DOMProps, columnHeaderProps, focusProps, hoverProps)}\n {...renderProps}\n style={style}\n ref={ref as any}\n data-hovered={isHovered || undefined}\n data-focused={isFocused || undefined}\n data-focus-visible={isFocusVisible || undefined}\n data-resizing={isResizing || undefined}\n data-allows-sorting={column.props.allowsSorting || undefined}\n data-sort-direction={state.sortDescriptor?.column === column.key ? state.sortDescriptor.direction : undefined}>\n <Provider\n values={[\n [ColumnResizerContext, {column, triggerRef: ref}],\n [CollectionRendererContext, DefaultCollectionRenderer]\n ]}>\n {renderProps.children}\n </Provider>\n </TH>\n );\n});\n\nexport interface ColumnResizerRenderProps {\n /**\n * Whether the resizer is currently hovered with a mouse.\n * @selector [data-hovered]\n */\n isHovered: boolean,\n /**\n * Whether the resizer is currently focused.\n * @selector [data-focused]\n */\n isFocused: boolean,\n /**\n * Whether the resizer is currently keyboard focused.\n * @selector [data-focus-visible]\n */\n isFocusVisible: boolean,\n /**\n * Whether the resizer is currently being resized.\n * @selector [data-resizing]\n */\n isResizing: boolean,\n /**\n * The direction that the column is currently resizable.\n * @selector [data-resizable-direction=\"right | left | both\"]\n */\n resizableDirection: 'right' | 'left' | 'both'\n}\n\nexport interface ColumnResizerProps extends HoverEvents, RenderProps<ColumnResizerRenderProps>, GlobalDOMAttributes<HTMLDivElement> {\n /** A custom accessibility label for the resizer. */\n 'aria-label'?: string\n}\n\ninterface ColumnResizerContextValue {\n column: GridNode<unknown>,\n triggerRef: RefObject<HTMLDivElement | null>\n}\n\nconst ColumnResizerContext = createContext<ColumnResizerContextValue | null>(null);\n\nexport const ColumnResizer = forwardRef(function ColumnResizer(props: ColumnResizerProps, ref: ForwardedRef<HTMLDivElement>) {\n let layoutState = useContext(TableColumnResizeStateContext);\n if (!layoutState) {\n throw new Error('Wrap your <Table> in a <ResizableTableContainer> to enable column resizing');\n }\n let stringFormatter = useLocalizedStringFormatter(intlMessages, 'react-aria-components');\n\n let {onResizeStart, onResize, onResizeEnd} = useContext(ResizableTableContainerContext)!;\n let {column, triggerRef} = useContext(ColumnResizerContext)!;\n let inputRef = useRef<HTMLInputElement>(null);\n let {resizerProps, inputProps, isResizing} = useTableColumnResize(\n {\n column,\n 'aria-label': props['aria-label'] || stringFormatter.format('tableResizer'),\n onResizeStart,\n onResize,\n onResizeEnd,\n triggerRef\n },\n layoutState,\n inputRef\n );\n let {focusProps, isFocused, isFocusVisible} = useFocusRing();\n let {hoverProps, isHovered} = useHover(props);\n\n let isEResizable = layoutState.getColumnMinWidth(column.key) >= layoutState.getColumnWidth(column.key);\n let isWResizable = layoutState.getColumnMaxWidth(column.key) <= layoutState.getColumnWidth(column.key);\n let {direction} = useLocale();\n let resizableDirection: ColumnResizerRenderProps['resizableDirection'] = 'both';\n if (isEResizable) {\n resizableDirection = direction === 'rtl' ? 'right' : 'left';\n } else if (isWResizable) {\n resizableDirection = direction === 'rtl' ? 'left' : 'right';\n } else {\n resizableDirection = 'both';\n }\n\n let objectRef = useObjectRef(ref);\n let [cursor, setCursor] = useState('');\n useEffect(() => {\n if (!objectRef.current) {\n return;\n }\n let style = window.getComputedStyle(objectRef.current);\n setCursor(style.cursor);\n }, [objectRef, resizableDirection]);\n\n let renderProps = useRenderProps({\n ...props,\n defaultClassName: 'react-aria-ColumnResizer',\n values: {\n isFocused,\n isFocusVisible,\n isResizing,\n isHovered,\n resizableDirection\n }\n });\n\n let [isMouseDown, setMouseDown] = useState(false);\n let onPointerDown = (e: PointerEvent) => {\n if (e.pointerType === 'mouse') {\n setMouseDown(true);\n }\n };\n\n if (!isResizing && isMouseDown) {\n setMouseDown(false);\n }\n\n let DOMProps = filterDOMProps(props, {global: true});\n\n return (\n <div\n ref={objectRef}\n role=\"presentation\"\n {...mergeProps(DOMProps, renderProps, resizerProps, {onPointerDown}, hoverProps)}\n data-hovered={isHovered || undefined}\n data-focused={isFocused || undefined}\n data-focus-visible={isFocusVisible || undefined}\n data-resizing={isResizing || undefined}\n data-resizable-direction={resizableDirection}>\n {renderProps.children}\n <input\n ref={inputRef}\n {...mergeProps(inputProps, focusProps)} />\n {isResizing && isMouseDown && ReactDOM.createPortal(<div style={{position: 'fixed', top: 0, left: 0, bottom: 0, right: 0, cursor}} />, document.body)}\n </div>\n );\n});\n\nexport interface TableBodyRenderProps {\n /**\n * Whether the table body has no rows and should display its empty state.\n * @selector [data-empty]\n */\n isEmpty: boolean,\n /**\n * Whether the Table is currently the active drop target.\n * @selector [data-drop-target]\n */\n isDropTarget: boolean\n}\n\nexport interface TableBodyProps<T> extends Omit<CollectionProps<T>, 'disabledKeys'>, StyleRenderProps<TableBodyRenderProps>, GlobalDOMAttributes<HTMLTableSectionElement> {\n /** Provides content to display when there are no rows in the table. */\n renderEmptyState?: (props: TableBodyRenderProps) => ReactNode\n}\n/**\n * The body of a `<Table>`, containing the table rows.\n */\nexport const TableBody = /*#__PURE__*/ createBranchComponent('tablebody', <T extends object>(props: TableBodyProps<T>, ref: ForwardedRef<HTMLTableSectionElement | HTMLDivElement>) => {\n let state = useContext(TableStateContext)!;\n let {isVirtualized} = useContext(CollectionRendererContext);\n let collection = state.collection;\n let {CollectionBranch} = useContext(CollectionRendererContext);\n let {dragAndDropHooks, dropState} = useContext(DragAndDropContext);\n let isDroppable = !!dragAndDropHooks?.useDroppableCollectionState && !dropState?.isDisabled;\n let isRootDropTarget = isDroppable && !!dropState && (dropState.isDropTarget({type: 'root'}) ?? false);\n\n let isEmpty = collection.size === 0;\n let renderValues = {\n isDropTarget: isRootDropTarget,\n isEmpty\n };\n let renderProps = useRenderProps({\n ...props,\n id: undefined,\n children: undefined,\n defaultClassName: 'react-aria-TableBody',\n values: renderValues\n });\n\n let emptyState;\n let TR = useElementType('tr');\n let TD = useElementType('td');\n let numColumns = collection.columnCount;\n\n if (isEmpty && props.renderEmptyState && state) {\n let rowProps = {};\n let rowHeaderProps = {};\n let style = {};\n if (isVirtualized) {\n rowHeaderProps['aria-colspan'] = numColumns;\n style = {display: 'contents'};\n } else {\n rowHeaderProps['colSpan'] = numColumns;\n }\n\n emptyState = (\n <TR role=\"row\" {...rowProps} style={style}>\n <TD role=\"rowheader\" {...rowHeaderProps} style={style}>\n {props.renderEmptyState(renderValues)}\n </TD>\n </TR>\n );\n }\n\n let {rowGroupProps} = useTableRowGroup();\n let TBody = useElementType('tbody');\n\n let DOMProps = filterDOMProps(props, {global: true});\n\n // TODO: TableBody doesn't support being the scrollable body of the table yet, to revisit if needed. Would need to\n // call useLoadMore here and walk up the DOM to the nearest scrollable element to set scrollRef\n return (\n <TBody\n {...mergeProps(DOMProps, renderProps, rowGroupProps)}\n ref={ref as any}\n data-empty={isEmpty || undefined}>\n {isDroppable && <RootDropIndicator />}\n <CollectionBranch\n collection={collection}\n parent={collection.body}\n renderDropIndicator={useRenderDropIndicator(dragAndDropHooks, dropState)} />\n {emptyState}\n </TBody>\n );\n});\n\nexport interface RowRenderProps extends ItemRenderProps {\n /** Whether the row's children have keyboard focus. */\n isFocusVisibleWithin: boolean,\n /** The unique id of the row. */\n id?: Key\n}\n\nexport interface RowProps<T> extends StyleRenderProps<RowRenderProps>, LinkDOMProps, HoverEvents, PressEvents, Omit<GlobalDOMAttributes<HTMLTableRowElement>, 'onClick'> {\n /** A list of columns used when dynamically rendering cells. */\n columns?: Iterable<T>,\n /** The cells within the row. Supports static items or a function for dynamic rendering. */\n children?: ReactNode | ((item: T) => ReactElement),\n /** The object value that this row represents. When using dynamic collections, this is set automatically. */\n value?: T,\n /** Values that should invalidate the cell cache when using dynamic collections. */\n dependencies?: ReadonlyArray<any>,\n /** A string representation of the row's contents, used for features like typeahead. */\n textValue?: string,\n /** Whether the row is disabled. */\n isDisabled?: boolean,\n /**\n * Handler that is called when a user performs an action on the row. The exact user event depends on\n * the collection's `selectionBehavior` prop and the interaction modality.\n */\n onAction?: () => void,\n /** The unique id of the row. */\n id?: Key\n}\n\n/**\n * A row within a `<Table>`.\n */\nexport const Row = /*#__PURE__*/ createBranchComponent(\n 'item',\n <T extends object>(props: RowProps<T>, forwardedRef: ForwardedRef<HTMLTableRowElement | HTMLDivElement>, item: GridNode<T>) => {\n let ref = useObjectRef<HTMLTableRowElement | HTMLDivElement>(forwardedRef);\n let state = useContext(TableStateContext)!;\n let {dragAndDropHooks, dragState, dropState} = useContext(DragAndDropContext);\n let {isVirtualized, CollectionBranch} = useContext(CollectionRendererContext);\n let {rowProps, ...states} = useTableRow(\n {\n node: item,\n shouldSelectOnPressUp: !!dragState,\n isVirtualized\n },\n state,\n ref\n );\n let {isFocused, isFocusVisible, focusProps} = useFocusRing();\n let {\n isFocusVisible: isFocusVisibleWithin,\n focusProps: focusWithinProps\n } = useFocusRing({within: true});\n let {hoverProps, isHovered} = useHover({\n isDisabled: !states.allowsSelection && !states.hasAction,\n onHoverStart: props.onHoverStart,\n onHoverChange: props.onHoverChange,\n onHoverEnd: props.onHoverEnd\n });\n\n let {checkboxProps} = useTableSelectionCheckbox(\n {key: item.key},\n state\n );\n\n let draggableItem: DraggableItemResult | undefined = undefined;\n if (dragState && dragAndDropHooks) {\n draggableItem = dragAndDropHooks.useDraggableItem!({key: item.key, hasDragButton: true}, dragState);\n }\n\n let dropIndicator: DropIndicatorAria | undefined = undefined;\n let dropIndicatorRef = useRef<HTMLDivElement>(null);\n let {visuallyHiddenProps} = useVisuallyHidden();\n if (dropState && dragAndDropHooks) {\n dropIndicator = dragAndDropHooks.useDropIndicator!({\n target: {type: 'item', key: item.key, dropPosition: 'on'}\n }, dropState, dropIndicatorRef);\n }\n\n let dragButtonRef = useRef<HTMLButtonElement>(null);\n useEffect(() => {\n if (dragState && !dragButtonRef.current && process.env.NODE_ENV !== 'production') {\n console.warn('Draggable items in a Table must contain a <Button slot=\"drag\"> element so that keyboard and screen reader users can drag them.');\n }\n // eslint-disable-next-line\n }, []);\n\n let isDragging = dragState && dragState.isDragging(item.key);\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n let {children: _, ...restProps} = props;\n let renderProps = useRenderProps({\n ...restProps,\n id: undefined,\n defaultClassName: 'react-aria-Row',\n values: {\n ...states,\n isHovered,\n isFocused,\n isFocusVisible,\n selectionMode: state.selectionManager.selectionMode,\n selectionBehavior: state.selectionManager.selectionBehavior,\n isDragging,\n isDropTarget: dropIndicator?.isDropTarget,\n isFocusVisibleWithin,\n id: item.key\n }\n });\n\n let TR = useElementType('tr');\n let TD = useElementType('td');\n let DOMProps = filterDOMProps(props as any, {global: true});\n delete DOMProps.id;\n delete DOMProps.onClick;\n\n return (\n <>\n {dropIndicator && !dropIndicator.isHidden && (\n <TR role=\"row\" style={{height: 0}}>\n <TD role=\"gridcell\" colSpan={state.collection.columnCount} style={{padding: 0}}>\n <div role=\"button\" {...visuallyHiddenProps} {...dropIndicator.dropIndicatorProps} ref={dropIndicatorRef} />\n </TD>\n </TR>\n )}\n <TR\n {...mergeProps(DOMProps, renderProps, rowProps, focusProps, hoverProps, draggableItem?.dragProps, focusWithinProps)}\n ref={ref as any}\n data-disabled={states.isDisabled || undefined}\n data-selected={states.isSelected || undefined}\n data-hovered={isHovered || undefined}\n data-focused={states.isFocused || undefined}\n data-focus-visible={isFocusVisible || undefined}\n data-pressed={states.isPressed || undefined}\n data-dragging={isDragging || undefined}\n data-drop-target={dropIndicator?.isDropTarget || undefined}\n data-selection-mode={state.selectionManager.selectionMode === 'none' ? undefined : state.selectionManager.selectionMode}\n data-focus-visible-within={isFocusVisibleWithin || undefined}>\n <Provider\n values={[\n [CheckboxContext, {\n slots: {\n [DEFAULT_SLOT]: {},\n selection: checkboxProps\n }\n }],\n [ButtonContext, {\n slots: {\n [DEFAULT_SLOT]: {},\n drag: {\n ...draggableItem?.dragButtonProps,\n ref: dragButtonRef,\n style: {\n pointerEvents: 'none'\n }\n }\n }\n }]\n ]}>\n <CollectionBranch collection={state.collection} parent={item} />\n </Provider>\n </TR>\n </>\n );\n },\n props => {\n if (props.id == null && typeof props.children === 'function') {\n throw new Error('No id detected for the Row element. The Row element requires a id to be provided to it when the cells are rendered dynamically.');\n }\n\n let dependencies = [props.value].concat(props.dependencies);\n return (\n <Collection dependencies={dependencies} items={props.columns} idScope={props.id}>\n {props.children}\n </Collection>\n );\n }\n);\n\nexport interface CellRenderProps {\n /**\n * Whether the cell is currently in a pressed state.\n * @selector [data-pressed]\n */\n isPressed: boolean,\n /**\n * Whether the cell is currently focused.\n * @selector [data-focused]\n */\n isFocused: boolean,\n /**\n * Whether the cell is currently keyboard focused.\n * @selector [data-focus-visible]\n */\n isFocusVisible: boolean,\n /**\n * Whether the cell is currently hovered with a mouse.\n * @selector [data-hovered]\n */\n isHovered: boolean,\n /**\n * The unique id of the cell.\n **/\n id?: Key\n}\n\nexport interface CellProps extends RenderProps<CellRenderProps>, GlobalDOMAttributes<HTMLTableCellElement> {\n /** The unique id of the cell. */\n id?: Key,\n /** A string representation of the cell's contents, used for features like typeahead. */\n textValue?: string,\n /** Indicates how many columns the data cell spans. */\n colSpan?: number\n}\n\n/**\n * A cell within a table row.\n */\nexport const Cell = /*#__PURE__*/ createLeafComponent('cell', (props: CellProps, forwardedRef: ForwardedRef<HTMLTableCellElement | HTMLDivElement>, cell: GridNode<unknown>) => {\n let ref = useObjectRef<HTMLTableCellElement | HTMLDivElement>(forwardedRef);\n let state = useContext(TableStateContext)!;\n let {dragState} = useContext(DragAndDropContext);\n let {isVirtualized} = useContext(CollectionRendererContext);\n\n cell.column = state.collection.columns[cell.index];\n\n let {gridCellProps, isPressed} = useTableCell({\n node: cell,\n shouldSelectOnPressUp: !!dragState,\n isVirtualized\n }, state, ref);\n let {isFocused, isFocusVisible, focusProps} = useFocusRing();\n let {hoverProps, isHovered} = useHover({});\n\n let renderProps = useRenderProps({\n ...props,\n id: undefined,\n defaultClassName: 'react-aria-Cell',\n values: {\n isFocused,\n isFocusVisible,\n isPressed,\n isHovered,\n id: cell.key\n }\n });\n\n let TD = useElementType('td');\n let DOMProps = filterDOMProps(props as any, {global: true});\n delete DOMProps.id;\n\n return (\n <TD\n {...mergeProps(DOMProps, renderProps, gridCellProps, focusProps, hoverProps)}\n ref={ref as any}\n data-focused={isFocused || undefined}\n data-focus-visible={isFocusVisible || undefined}\n data-pressed={isPressed || undefined}>\n <CollectionRendererContext.Provider value={DefaultCollectionRenderer}>\n {renderProps.children}\n </CollectionRendererContext.Provider>\n </TD>\n );\n});\n\nfunction TableDropIndicatorWrapper(props: DropIndicatorProps, ref: ForwardedRef<HTMLElement>) {\n ref = useObjectRef(ref);\n let {dragAndDropHooks, dropState} = useContext(DragAndDropContext)!;\n let buttonRef = useRef<HTMLDivElement>(null);\n let {dropIndicatorProps, isHidden, isDropTarget} = dragAndDropHooks!.useDropIndicator!(\n props,\n dropState!,\n buttonRef\n );\n\n if (isHidden) {\n return null;\n }\n\n return (\n <TableDropIndicatorForwardRef {...props} dropIndicatorProps={dropIndicatorProps} isDropTarget={isDropTarget} buttonRef={buttonRef} ref={ref} />\n );\n}\n\ninterface TableDropIndicatorProps extends DropIndicatorProps, GlobalDOMAttributes<HTMLTableRowElement> {\n dropIndicatorProps: React.HTMLAttributes<HTMLElement>,\n isDropTarget: boolean,\n buttonRef: RefObject<HTMLDivElement | null>\n}\n\nfunction TableDropIndicator(props: TableDropIndicatorProps, ref: ForwardedRef<HTMLElement>) {\n let {\n dropIndicatorProps,\n isDropTarget,\n buttonRef,\n ...otherProps\n } = props;\n\n let state = useContext(TableStateContext)!;\n let {visuallyHiddenProps} = useVisuallyHidden();\n let renderProps = useRenderProps({\n ...otherProps,\n defaultClassName: 'react-aria-DropIndicator',\n values: {\n isDropTarget\n }\n });\n\n let TR = useElementType('tr');\n let TD = useElementType('td');\n\n return (\n <TR\n {...filterDOMProps(props as any, {global: true})}\n {...renderProps}\n role=\"row\"\n ref={ref as RefObject<HTMLTableRowElement | null>}\n data-drop-target={isDropTarget || undefined}>\n <TD\n role=\"gridcell\"\n colSpan={state.collection.columnCount}\n style={{padding: 0}}>\n <div {...visuallyHiddenProps} role=\"button\" {...dropIndicatorProps} ref={buttonRef} />\n {renderProps.children}\n </TD>\n </TR>\n );\n}\n\nconst TableDropIndicatorForwardRef = forwardRef(TableDropIndicator);\n\nfunction RootDropIndicator() {\n let state = useContext(TableStateContext)!;\n let {dragAndDropHooks, dropState} = useContext(DragAndDropContext);\n let ref = useRef<HTMLDivElement>(null);\n let {dropIndicatorProps} = dragAndDropHooks!.useDropIndicator!({\n target: {type: 'root'}\n }, dropState!, ref);\n let isDropTarget = dropState!.isDropTarget({type: 'root'});\n let {visuallyHiddenProps} = useVisuallyHidden();\n let TR = useElementType('tr');\n let TD = useElementType('td');\n\n if (!isDropTarget && dropIndicatorProps['aria-hidden']) {\n return null;\n }\n\n return (\n <TR\n role=\"row\"\n aria-hidden={dropIndicatorProps['aria-hidden']}\n style={{height: 0}}>\n <TD\n role=\"gridcell\"\n colSpan={state.collection.columnCount}\n style={{padding: 0}}>\n <div role=\"button\" {...visuallyHiddenProps} {...dropIndicatorProps} ref={ref} />\n </TD>\n </TR>\n );\n}\n\nexport interface TableLoadMoreItemProps extends Omit<LoadMoreSentinelProps, 'collection'>, StyleProps, GlobalDOMAttributes<HTMLTableRowElement> {\n /**\n * The load more spinner to render when loading additional items.\n */\n children?: ReactNode,\n /**\n * Whether or not the loading spinner should be rendered or not.\n */\n isLoading?: boolean\n}\n\nexport const TableLoadMoreItem = createLeafComponent('loader', function TableLoadingIndicator(props: TableLoadMoreItemProps, ref: ForwardedRef<HTMLTableRowElement>, item: Node<object>) {\n let state = useContext(TableStateContext)!;\n let {isVirtualized} = useContext(CollectionRendererContext);\n let {isLoading, onLoadMore, scrollOffset, ...otherProps} = props;\n let numColumns = state.collection.columns.length;\n\n let sentinelRef = useRef(null);\n let memoedLoadMoreProps = useMemo(() => ({\n onLoadMore,\n collection: state?.collection,\n sentinelRef,\n scrollOffset\n }), [onLoadMore, scrollOffset, state?.collection]);\n useLoadMoreSentinel(memoedLoadMoreProps, sentinelRef);\n\n let renderProps = useRenderProps({\n ...otherProps,\n id: undefined,\n children: item.rendered,\n defaultClassName: 'react-aria-TableLoadingIndicator',\n values: null\n });\n let TR = useElementType('tr');\n let TD = useElementType('td');\n let rowProps = {};\n let rowHeaderProps = {};\n let style = {};\n\n if (isVirtualized) {\n // For now don't include aria-rowindex on loader since they aren't keyboard focusable\n // Arguably shouldn't include them ever since it might be confusing to the user to include the loaders as part of the\n // row count\n rowHeaderProps['aria-colspan'] = numColumns;\n style = {display: 'contents'};\n } else {\n rowHeaderProps['colSpan'] = numColumns;\n }\n\n return (\n <>\n {/* Alway render the sentinel. For now onus is on the user for styling when using flex + gap (this would introduce a gap even though it doesn't take room) */}\n {/* @ts-ignore - compatibility with React < 19 */}\n <TR style={{height: 0}} inert={inertValue(true)}>\n <TD style={{padding: 0, border: 0}}>\n <div data-testid=\"loadMoreSentinel\" ref={sentinelRef} style={{position: 'relative', height: 1, width: 1}} />\n </TD>\n </TR>\n {isLoading && renderProps.children && (\n <TR\n {...mergeProps(filterDOMProps(props, {global: true}), rowProps)}\n {...renderProps}\n role=\"row\"\n ref={ref as ForwardedRef<HTMLTableRowElement>}>\n <TD role=\"rowheader\" {...rowHeaderProps} style={style}>\n {renderProps.children}\n </TD>\n </TR>\n )}\n </>\n );\n});\n"],"names":[],"version":3,"file":"Table.main.js.map"}
package/dist/Table.mjs CHANGED
@@ -8,7 +8,7 @@ import {CollectionNode as $dbSRa$CollectionNode, BaseCollection as $dbSRa$BaseCo
8
8
  import {buildHeaderRows as $dbSRa$buildHeaderRows} from "@react-stately/table";
9
9
  import {useTableColumnResizeState as $dbSRa$useTableColumnResizeState, useMultipleSelectionState as $dbSRa$useMultipleSelectionState, useTableState as $dbSRa$useTableState} from "react-stately";
10
10
  import {useTable as $dbSRa$useTable, ListKeyboardDelegate as $dbSRa$ListKeyboardDelegate, useFocusRing as $dbSRa$useFocusRing, FocusScope as $dbSRa$FocusScope, mergeProps as $dbSRa$mergeProps, useTableRowGroup as $dbSRa$useTableRowGroup, useHover as $dbSRa$useHover, useTableHeaderRow as $dbSRa$useTableHeaderRow, useTableSelectAllCheckbox as $dbSRa$useTableSelectAllCheckbox, useTableColumnHeader as $dbSRa$useTableColumnHeader, useLocalizedStringFormatter as $dbSRa$useLocalizedStringFormatter, useTableColumnResize as $dbSRa$useTableColumnResize, useLocale as $dbSRa$useLocale, useTableRow as $dbSRa$useTableRow, useTableSelectionCheckbox as $dbSRa$useTableSelectionCheckbox, useVisuallyHidden as $dbSRa$useVisuallyHidden, useTableCell as $dbSRa$useTableCell} from "react-aria";
11
- import {useObjectRef as $dbSRa$useObjectRef, useLayoutEffect as $dbSRa$useLayoutEffect, isScrollable as $dbSRa$isScrollable, useResizeObserver as $dbSRa$useResizeObserver, filterDOMProps as $dbSRa$filterDOMProps, mergeRefs as $dbSRa$mergeRefs, UNSTABLE_useLoadMoreSentinel as $dbSRa$UNSTABLE_useLoadMoreSentinel, inertValue as $dbSRa$inertValue} from "@react-aria/utils";
11
+ import {useObjectRef as $dbSRa$useObjectRef, useLayoutEffect as $dbSRa$useLayoutEffect, isScrollable as $dbSRa$isScrollable, useResizeObserver as $dbSRa$useResizeObserver, filterDOMProps as $dbSRa$filterDOMProps, mergeRefs as $dbSRa$mergeRefs, useLoadMoreSentinel as $dbSRa$useLoadMoreSentinel, inertValue as $dbSRa$inertValue} from "@react-aria/utils";
12
12
  import $dbSRa$react, {createContext as $dbSRa$createContext, forwardRef as $dbSRa$forwardRef, useRef as $dbSRa$useRef, useState as $dbSRa$useState, useMemo as $dbSRa$useMemo, useContext as $dbSRa$useContext, useEffect as $dbSRa$useEffect, useCallback as $dbSRa$useCallback} from "react";
13
13
  import $dbSRa$reactdom from "react-dom";
14
14
 
@@ -83,9 +83,6 @@ class $1910c06f0ca9905e$var$TableCollection extends (0, $dbSRa$BaseCollection) {
83
83
  yield this.head;
84
84
  yield this.body;
85
85
  }
86
- get size() {
87
- return this.rows.length;
88
- }
89
86
  getFirstKey() {
90
87
  return this.body.firstChildKey;
91
88
  }
@@ -189,7 +186,9 @@ const $1910c06f0ca9905e$export$7063e69b8a954175 = /*#__PURE__*/ (0, $dbSRa$forwa
189
186
  props.onResizeEnd
190
187
  ]);
191
188
  return /*#__PURE__*/ (0, $dbSRa$react).createElement("div", {
192
- ...(0, $dbSRa$filterDOMProps)(props),
189
+ ...(0, $dbSRa$filterDOMProps)(props, {
190
+ global: true
191
+ }),
193
192
  ref: containerRef,
194
193
  className: props.className || 'react-aria-ResizableTableContainer',
195
194
  style: props.style,
@@ -329,6 +328,9 @@ function $1910c06f0ca9905e$var$TableInner({ props: props, forwardedRef: ref, sel
329
328
  };
330
329
  }
331
330
  let ElementType = $1910c06f0ca9905e$var$useElementType('table');
331
+ let DOMProps = (0, $dbSRa$filterDOMProps)(props, {
332
+ global: true
333
+ });
332
334
  var _tableContainerContext_scrollRef;
333
335
  return /*#__PURE__*/ (0, $dbSRa$react).createElement((0, $64fa3d84918910a7$export$2881499e37b75b9a), {
334
336
  values: [
@@ -356,9 +358,7 @@ function $1910c06f0ca9905e$var$TableInner({ props: props, forwardedRef: ref, sel
356
358
  ]
357
359
  ]
358
360
  }, /*#__PURE__*/ (0, $dbSRa$react).createElement((0, $dbSRa$FocusScope), null, /*#__PURE__*/ (0, $dbSRa$react).createElement(ElementType, {
359
- ...(0, $dbSRa$filterDOMProps)(props),
360
- ...renderProps,
361
- ...(0, $dbSRa$mergeProps)(gridProps, focusProps, droppableCollection === null || droppableCollection === void 0 ? void 0 : droppableCollection.collectionProps),
361
+ ...(0, $dbSRa$mergeProps)(DOMProps, renderProps, gridProps, focusProps, droppableCollection === null || droppableCollection === void 0 ? void 0 : droppableCollection.collectionProps),
362
362
  style: style,
363
363
  ref: ref,
364
364
  slot: props.slot || undefined,
@@ -412,7 +412,9 @@ const $1910c06f0ca9905e$export$f850895b287ef28e = /*#__PURE__*/ (0, $dbSRa$creat
412
412
  }
413
413
  });
414
414
  return /*#__PURE__*/ (0, $dbSRa$react).createElement(THead, {
415
- ...(0, $dbSRa$mergeProps)((0, $dbSRa$filterDOMProps)(props), rowGroupProps, hoverProps),
415
+ ...(0, $dbSRa$mergeProps)((0, $dbSRa$filterDOMProps)(props, {
416
+ global: true
417
+ }), rowGroupProps, hoverProps),
416
418
  ...renderProps,
417
419
  ref: ref,
418
420
  "data-hovered": isHovered || undefined
@@ -503,8 +505,12 @@ const $1910c06f0ca9905e$export$816b5d811295e6bc = /*#__PURE__*/ (0, $dbSRa$creat
503
505
  width: layoutState.getColumnWidth(column.key)
504
506
  };
505
507
  let TH = $1910c06f0ca9905e$var$useElementType('th');
508
+ let DOMProps = (0, $dbSRa$filterDOMProps)(props, {
509
+ global: true
510
+ });
511
+ delete DOMProps.id;
506
512
  return /*#__PURE__*/ (0, $dbSRa$react).createElement(TH, {
507
- ...(0, $dbSRa$mergeProps)((0, $dbSRa$filterDOMProps)(props), columnHeaderProps, focusProps, hoverProps),
513
+ ...(0, $dbSRa$mergeProps)(DOMProps, columnHeaderProps, focusProps, hoverProps),
508
514
  ...renderProps,
509
515
  style: style,
510
516
  ref: ref,
@@ -581,12 +587,13 @@ const $1910c06f0ca9905e$export$ee689e97a7664bfd = /*#__PURE__*/ (0, $dbSRa$forwa
581
587
  if (e.pointerType === 'mouse') setMouseDown(true);
582
588
  };
583
589
  if (!isResizing && isMouseDown) setMouseDown(false);
590
+ let DOMProps = (0, $dbSRa$filterDOMProps)(props, {
591
+ global: true
592
+ });
584
593
  return /*#__PURE__*/ (0, $dbSRa$react).createElement("div", {
585
594
  ref: objectRef,
586
595
  role: "presentation",
587
- ...(0, $dbSRa$filterDOMProps)(props),
588
- ...renderProps,
589
- ...(0, $dbSRa$mergeProps)(resizerProps, {
596
+ ...(0, $dbSRa$mergeProps)(DOMProps, renderProps, resizerProps, {
590
597
  onPointerDown: onPointerDown
591
598
  }, hoverProps),
592
599
  "data-hovered": isHovered || undefined,
@@ -619,7 +626,7 @@ const $1910c06f0ca9905e$export$76ccd210b9029917 = /*#__PURE__*/ (0, $dbSRa$creat
619
626
  let isRootDropTarget = isDroppable && !!dropState && ((_dropState_isDropTarget = dropState.isDropTarget({
620
627
  type: 'root'
621
628
  })) !== null && _dropState_isDropTarget !== void 0 ? _dropState_isDropTarget : false);
622
- let isEmpty = collection.size === 0 || collection.rows.length === 1 && collection.rows[0].type === 'loader';
629
+ let isEmpty = collection.size === 0;
623
630
  let renderValues = {
624
631
  isDropTarget: isRootDropTarget,
625
632
  isEmpty: isEmpty
@@ -640,7 +647,6 @@ const $1910c06f0ca9905e$export$76ccd210b9029917 = /*#__PURE__*/ (0, $dbSRa$creat
640
647
  let rowHeaderProps = {};
641
648
  let style = {};
642
649
  if (isVirtualized) {
643
- rowProps['aria-rowindex'] = collection.headerRows.length + 1;
644
650
  rowHeaderProps['aria-colspan'] = numColumns;
645
651
  style = {
646
652
  display: 'contents'
@@ -658,11 +664,13 @@ const $1910c06f0ca9905e$export$76ccd210b9029917 = /*#__PURE__*/ (0, $dbSRa$creat
658
664
  }
659
665
  let { rowGroupProps: rowGroupProps } = (0, $dbSRa$useTableRowGroup)();
660
666
  let TBody = $1910c06f0ca9905e$var$useElementType('tbody');
667
+ let DOMProps = (0, $dbSRa$filterDOMProps)(props, {
668
+ global: true
669
+ });
661
670
  // TODO: TableBody doesn't support being the scrollable body of the table yet, to revisit if needed. Would need to
662
671
  // call useLoadMore here and walk up the DOM to the nearest scrollable element to set scrollRef
663
672
  return /*#__PURE__*/ (0, $dbSRa$react).createElement(TBody, {
664
- ...(0, $dbSRa$mergeProps)((0, $dbSRa$filterDOMProps)(props), rowGroupProps),
665
- ...renderProps,
673
+ ...(0, $dbSRa$mergeProps)(DOMProps, renderProps, rowGroupProps),
666
674
  ref: ref,
667
675
  "data-empty": isEmpty || undefined
668
676
  }, isDroppable && /*#__PURE__*/ (0, $dbSRa$react).createElement($1910c06f0ca9905e$var$RootDropIndicator, null), /*#__PURE__*/ (0, $dbSRa$react).createElement(CollectionBranch, {
@@ -736,6 +744,11 @@ const $1910c06f0ca9905e$export$b59bdbef9ce70de2 = /*#__PURE__*/ (0, $dbSRa$creat
736
744
  });
737
745
  let TR = $1910c06f0ca9905e$var$useElementType('tr');
738
746
  let TD = $1910c06f0ca9905e$var$useElementType('td');
747
+ let DOMProps = (0, $dbSRa$filterDOMProps)(props, {
748
+ global: true
749
+ });
750
+ delete DOMProps.id;
751
+ delete DOMProps.onClick;
739
752
  return /*#__PURE__*/ (0, $dbSRa$react).createElement((0, $dbSRa$react).Fragment, null, dropIndicator && !dropIndicator.isHidden && /*#__PURE__*/ (0, $dbSRa$react).createElement(TR, {
740
753
  role: "row",
741
754
  style: {
@@ -753,8 +766,7 @@ const $1910c06f0ca9905e$export$b59bdbef9ce70de2 = /*#__PURE__*/ (0, $dbSRa$creat
753
766
  ...dropIndicator.dropIndicatorProps,
754
767
  ref: dropIndicatorRef
755
768
  }))), /*#__PURE__*/ (0, $dbSRa$react).createElement(TR, {
756
- ...(0, $dbSRa$mergeProps)((0, $dbSRa$filterDOMProps)(props), rowProps, focusProps, hoverProps, draggableItem === null || draggableItem === void 0 ? void 0 : draggableItem.dragProps, focusWithinProps),
757
- ...renderProps,
769
+ ...(0, $dbSRa$mergeProps)(DOMProps, renderProps, rowProps, focusProps, hoverProps, draggableItem === null || draggableItem === void 0 ? void 0 : draggableItem.dragProps, focusWithinProps),
758
770
  ref: ref,
759
771
  "data-disabled": states.isDisabled || undefined,
760
772
  "data-selected": states.isSelected || undefined,
@@ -834,9 +846,12 @@ const $1910c06f0ca9905e$export$f6f0c3fe4ec306ea = /*#__PURE__*/ (0, $dbSRa$creat
834
846
  }
835
847
  });
836
848
  let TD = $1910c06f0ca9905e$var$useElementType('td');
849
+ let DOMProps = (0, $dbSRa$filterDOMProps)(props, {
850
+ global: true
851
+ });
852
+ delete DOMProps.id;
837
853
  return /*#__PURE__*/ (0, $dbSRa$react).createElement(TD, {
838
- ...(0, $dbSRa$mergeProps)((0, $dbSRa$filterDOMProps)(props), gridCellProps, focusProps, hoverProps),
839
- ...renderProps,
854
+ ...(0, $dbSRa$mergeProps)(DOMProps, renderProps, gridCellProps, focusProps, hoverProps),
840
855
  ref: ref,
841
856
  "data-focused": isFocused || undefined,
842
857
  "data-focus-visible": isFocusVisible || undefined,
@@ -873,7 +888,9 @@ function $1910c06f0ca9905e$var$TableDropIndicator(props, ref) {
873
888
  let TR = $1910c06f0ca9905e$var$useElementType('tr');
874
889
  let TD = $1910c06f0ca9905e$var$useElementType('td');
875
890
  return /*#__PURE__*/ (0, $dbSRa$react).createElement(TR, {
876
- ...(0, $dbSRa$filterDOMProps)(props),
891
+ ...(0, $dbSRa$filterDOMProps)(props, {
892
+ global: true
893
+ }),
877
894
  ...renderProps,
878
895
  role: "row",
879
896
  ref: ref,
@@ -927,7 +944,7 @@ function $1910c06f0ca9905e$var$RootDropIndicator() {
927
944
  ref: ref
928
945
  })));
929
946
  }
930
- const $1910c06f0ca9905e$export$92aad1076056e17a = (0, $dbSRa$createLeafComponent)('loader', function TableLoadingIndicator(props, ref, item) {
947
+ const $1910c06f0ca9905e$export$8f5bea0338ed243c = (0, $dbSRa$createLeafComponent)('loader', function TableLoadingIndicator(props, ref, item) {
931
948
  let state = (0, $dbSRa$useContext)($1910c06f0ca9905e$export$38de1cb0526c21fb);
932
949
  let { isVirtualized: isVirtualized } = (0, $dbSRa$useContext)((0, $7135fc7d473fd974$export$4feb769f8ddf26c5));
933
950
  let { isLoading: isLoading, onLoadMore: onLoadMore, scrollOffset: scrollOffset, ...otherProps } = props;
@@ -943,7 +960,7 @@ const $1910c06f0ca9905e$export$92aad1076056e17a = (0, $dbSRa$createLeafComponent
943
960
  scrollOffset,
944
961
  state === null || state === void 0 ? void 0 : state.collection
945
962
  ]);
946
- (0, $dbSRa$UNSTABLE_useLoadMoreSentinel)(memoedLoadMoreProps, sentinelRef);
963
+ (0, $dbSRa$useLoadMoreSentinel)(memoedLoadMoreProps, sentinelRef);
947
964
  let renderProps = (0, $64fa3d84918910a7$export$4d86445c2cf5e3)({
948
965
  ...otherProps,
949
966
  id: undefined,
@@ -957,7 +974,9 @@ const $1910c06f0ca9905e$export$92aad1076056e17a = (0, $dbSRa$createLeafComponent
957
974
  let rowHeaderProps = {};
958
975
  let style = {};
959
976
  if (isVirtualized) {
960
- rowProps['aria-rowindex'] = item.index + 1 + state.collection.headerRows.length;
977
+ // For now don't include aria-rowindex on loader since they aren't keyboard focusable
978
+ // Arguably shouldn't include them ever since it might be confusing to the user to include the loaders as part of the
979
+ // row count
961
980
  rowHeaderProps['aria-colspan'] = numColumns;
962
981
  style = {
963
982
  display: 'contents'
@@ -982,7 +1001,9 @@ const $1910c06f0ca9905e$export$92aad1076056e17a = (0, $dbSRa$createLeafComponent
982
1001
  width: 1
983
1002
  }
984
1003
  }))), isLoading && renderProps.children && /*#__PURE__*/ (0, $dbSRa$react).createElement(TR, {
985
- ...(0, $dbSRa$mergeProps)((0, $dbSRa$filterDOMProps)(props), rowProps),
1004
+ ...(0, $dbSRa$mergeProps)((0, $dbSRa$filterDOMProps)(props, {
1005
+ global: true
1006
+ }), rowProps),
986
1007
  ...renderProps,
987
1008
  role: "row",
988
1009
  ref: ref
@@ -994,5 +1015,5 @@ const $1910c06f0ca9905e$export$92aad1076056e17a = (0, $dbSRa$createLeafComponent
994
1015
  });
995
1016
 
996
1017
 
997
- export {$1910c06f0ca9905e$export$7063e69b8a954175 as ResizableTableContainer, $1910c06f0ca9905e$export$93e4b0b2cc49b648 as TableContext, $1910c06f0ca9905e$export$38de1cb0526c21fb as TableStateContext, $1910c06f0ca9905e$export$a2680a798823803c as TableColumnResizeStateContext, $1910c06f0ca9905e$export$54ec01a60f47d33d as Table, $1910c06f0ca9905e$export$fddc468cd8cb4db9 as useTableOptions, $1910c06f0ca9905e$export$f850895b287ef28e as TableHeader, $1910c06f0ca9905e$export$816b5d811295e6bc as Column, $1910c06f0ca9905e$export$ee689e97a7664bfd as ColumnResizer, $1910c06f0ca9905e$export$76ccd210b9029917 as TableBody, $1910c06f0ca9905e$export$b59bdbef9ce70de2 as Row, $1910c06f0ca9905e$export$f6f0c3fe4ec306ea as Cell, $1910c06f0ca9905e$export$92aad1076056e17a as UNSTABLE_TableLoadingSentinel};
1018
+ export {$1910c06f0ca9905e$export$7063e69b8a954175 as ResizableTableContainer, $1910c06f0ca9905e$export$93e4b0b2cc49b648 as TableContext, $1910c06f0ca9905e$export$38de1cb0526c21fb as TableStateContext, $1910c06f0ca9905e$export$a2680a798823803c as TableColumnResizeStateContext, $1910c06f0ca9905e$export$54ec01a60f47d33d as Table, $1910c06f0ca9905e$export$fddc468cd8cb4db9 as useTableOptions, $1910c06f0ca9905e$export$f850895b287ef28e as TableHeader, $1910c06f0ca9905e$export$816b5d811295e6bc as Column, $1910c06f0ca9905e$export$ee689e97a7664bfd as ColumnResizer, $1910c06f0ca9905e$export$76ccd210b9029917 as TableBody, $1910c06f0ca9905e$export$b59bdbef9ce70de2 as Row, $1910c06f0ca9905e$export$f6f0c3fe4ec306ea as Cell, $1910c06f0ca9905e$export$8f5bea0338ed243c as TableLoadMoreItem};
998
1019
  //# sourceMappingURL=Table.module.js.map