react-aria-components 3.0.0-nightly-ab9fd5c68-241125 → 3.0.0-nightly-10a43de88-241127

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 (315) hide show
  1. package/dist/Breadcrumbs.main.js +2 -5
  2. package/dist/Breadcrumbs.main.js.map +1 -1
  3. package/dist/Breadcrumbs.mjs +3 -6
  4. package/dist/Breadcrumbs.module.js +3 -6
  5. package/dist/Breadcrumbs.module.js.map +1 -1
  6. package/dist/Button.main.js +2 -5
  7. package/dist/Button.main.js.map +1 -1
  8. package/dist/Button.mjs +2 -5
  9. package/dist/Button.module.js +2 -5
  10. package/dist/Button.module.js.map +1 -1
  11. package/dist/Calendar.main.js +9 -22
  12. package/dist/Calendar.main.js.map +1 -1
  13. package/dist/Calendar.mjs +9 -22
  14. package/dist/Calendar.module.js +9 -22
  15. package/dist/Calendar.module.js.map +1 -1
  16. package/dist/Checkbox.main.js +5 -12
  17. package/dist/Checkbox.main.js.map +1 -1
  18. package/dist/Checkbox.mjs +6 -13
  19. package/dist/Checkbox.module.js +6 -13
  20. package/dist/Checkbox.module.js.map +1 -1
  21. package/dist/ColorArea.main.js +2 -5
  22. package/dist/ColorArea.main.js.map +1 -1
  23. package/dist/ColorArea.mjs +3 -6
  24. package/dist/ColorArea.module.js +3 -6
  25. package/dist/ColorArea.module.js.map +1 -1
  26. package/dist/ColorField.main.js +2 -5
  27. package/dist/ColorField.main.js.map +1 -1
  28. package/dist/ColorField.mjs +2 -5
  29. package/dist/ColorField.module.js +2 -5
  30. package/dist/ColorField.module.js.map +1 -1
  31. package/dist/ColorSlider.main.js +2 -5
  32. package/dist/ColorSlider.main.js.map +1 -1
  33. package/dist/ColorSlider.mjs +2 -5
  34. package/dist/ColorSlider.module.js +2 -5
  35. package/dist/ColorSlider.module.js.map +1 -1
  36. package/dist/ColorSwatch.main.js +2 -5
  37. package/dist/ColorSwatch.main.js.map +1 -1
  38. package/dist/ColorSwatch.mjs +2 -5
  39. package/dist/ColorSwatch.module.js +2 -5
  40. package/dist/ColorSwatch.module.js.map +1 -1
  41. package/dist/ColorSwatchPicker.main.js +4 -8
  42. package/dist/ColorSwatchPicker.main.js.map +1 -1
  43. package/dist/ColorSwatchPicker.mjs +5 -9
  44. package/dist/ColorSwatchPicker.module.js +5 -9
  45. package/dist/ColorSwatchPicker.module.js.map +1 -1
  46. package/dist/ColorThumb.main.js +2 -5
  47. package/dist/ColorThumb.main.js.map +1 -1
  48. package/dist/ColorThumb.mjs +3 -6
  49. package/dist/ColorThumb.module.js +3 -6
  50. package/dist/ColorThumb.module.js.map +1 -1
  51. package/dist/ColorWheel.main.js +5 -11
  52. package/dist/ColorWheel.main.js.map +1 -1
  53. package/dist/ColorWheel.mjs +6 -12
  54. package/dist/ColorWheel.module.js +6 -12
  55. package/dist/ColorWheel.module.js.map +1 -1
  56. package/dist/ComboBox.main.js +2 -5
  57. package/dist/ComboBox.main.js.map +1 -1
  58. package/dist/ComboBox.mjs +3 -6
  59. package/dist/ComboBox.module.js +3 -6
  60. package/dist/ComboBox.module.js.map +1 -1
  61. package/dist/DateField.main.js +8 -23
  62. package/dist/DateField.main.js.map +1 -1
  63. package/dist/DateField.mjs +9 -24
  64. package/dist/DateField.module.js +9 -24
  65. package/dist/DateField.module.js.map +1 -1
  66. package/dist/DatePicker.main.js +4 -11
  67. package/dist/DatePicker.main.js.map +1 -1
  68. package/dist/DatePicker.mjs +5 -12
  69. package/dist/DatePicker.module.js +5 -12
  70. package/dist/DatePicker.module.js.map +1 -1
  71. package/dist/Dialog.main.js +2 -5
  72. package/dist/Dialog.main.js.map +1 -1
  73. package/dist/Dialog.mjs +3 -6
  74. package/dist/Dialog.module.js +3 -6
  75. package/dist/Dialog.module.js.map +1 -1
  76. package/dist/Disclosure.main.js +6 -16
  77. package/dist/Disclosure.main.js.map +1 -1
  78. package/dist/Disclosure.mjs +6 -16
  79. package/dist/Disclosure.module.js +6 -16
  80. package/dist/Disclosure.module.js.map +1 -1
  81. package/dist/DragAndDrop.main.js +2 -5
  82. package/dist/DragAndDrop.main.js.map +1 -1
  83. package/dist/DragAndDrop.mjs +3 -6
  84. package/dist/DragAndDrop.module.js +3 -6
  85. package/dist/DragAndDrop.module.js.map +1 -1
  86. package/dist/DropZone.main.js +2 -5
  87. package/dist/DropZone.main.js.map +1 -1
  88. package/dist/DropZone.mjs +3 -6
  89. package/dist/DropZone.module.js +3 -6
  90. package/dist/DropZone.module.js.map +1 -1
  91. package/dist/FieldError.main.js +2 -5
  92. package/dist/FieldError.main.js.map +1 -1
  93. package/dist/FieldError.mjs +3 -6
  94. package/dist/FieldError.module.js +3 -6
  95. package/dist/FieldError.module.js.map +1 -1
  96. package/dist/FileTrigger.main.js +2 -5
  97. package/dist/FileTrigger.main.js.map +1 -1
  98. package/dist/FileTrigger.mjs +2 -5
  99. package/dist/FileTrigger.module.js +2 -5
  100. package/dist/FileTrigger.module.js.map +1 -1
  101. package/dist/Form.main.js +2 -6
  102. package/dist/Form.main.js.map +1 -1
  103. package/dist/Form.mjs +2 -6
  104. package/dist/Form.module.js +2 -6
  105. package/dist/Form.module.js.map +1 -1
  106. package/dist/GridList.main.js +2 -6
  107. package/dist/GridList.main.js.map +1 -1
  108. package/dist/GridList.mjs +3 -7
  109. package/dist/GridList.module.js +3 -7
  110. package/dist/GridList.module.js.map +1 -1
  111. package/dist/Group.main.js +2 -5
  112. package/dist/Group.main.js.map +1 -1
  113. package/dist/Group.mjs +2 -5
  114. package/dist/Group.module.js +2 -5
  115. package/dist/Group.module.js.map +1 -1
  116. package/dist/Heading.main.js +2 -3
  117. package/dist/Heading.main.js.map +1 -1
  118. package/dist/Heading.mjs +2 -3
  119. package/dist/Heading.module.js +2 -3
  120. package/dist/Heading.module.js.map +1 -1
  121. package/dist/Input.main.js +2 -5
  122. package/dist/Input.main.js.map +1 -1
  123. package/dist/Input.mjs +2 -5
  124. package/dist/Input.module.js +2 -5
  125. package/dist/Input.module.js.map +1 -1
  126. package/dist/Keyboard.main.js +2 -3
  127. package/dist/Keyboard.main.js.map +1 -1
  128. package/dist/Keyboard.mjs +2 -3
  129. package/dist/Keyboard.module.js +2 -3
  130. package/dist/Keyboard.module.js.map +1 -1
  131. package/dist/Label.main.js +2 -3
  132. package/dist/Label.main.js.map +1 -1
  133. package/dist/Label.mjs +2 -3
  134. package/dist/Label.module.js +2 -3
  135. package/dist/Label.module.js.map +1 -1
  136. package/dist/Link.main.js +2 -6
  137. package/dist/Link.main.js.map +1 -1
  138. package/dist/Link.mjs +2 -6
  139. package/dist/Link.module.js +2 -6
  140. package/dist/Link.module.js.map +1 -1
  141. package/dist/ListBox.main.js +5 -10
  142. package/dist/ListBox.main.js.map +1 -1
  143. package/dist/ListBox.mjs +6 -11
  144. package/dist/ListBox.module.js +6 -11
  145. package/dist/ListBox.module.js.map +1 -1
  146. package/dist/Menu.main.js +5 -10
  147. package/dist/Menu.main.js.map +1 -1
  148. package/dist/Menu.mjs +5 -10
  149. package/dist/Menu.module.js +5 -10
  150. package/dist/Menu.module.js.map +1 -1
  151. package/dist/Meter.main.js +2 -5
  152. package/dist/Meter.main.js.map +1 -1
  153. package/dist/Meter.mjs +2 -5
  154. package/dist/Meter.module.js +2 -5
  155. package/dist/Meter.module.js.map +1 -1
  156. package/dist/Modal.main.js +3 -6
  157. package/dist/Modal.main.js.map +1 -1
  158. package/dist/Modal.mjs +4 -7
  159. package/dist/Modal.module.js +4 -7
  160. package/dist/Modal.module.js.map +1 -1
  161. package/dist/NumberField.main.js +2 -5
  162. package/dist/NumberField.main.js.map +1 -1
  163. package/dist/NumberField.mjs +3 -6
  164. package/dist/NumberField.module.js +3 -6
  165. package/dist/NumberField.module.js.map +1 -1
  166. package/dist/OverlayArrow.main.js +2 -6
  167. package/dist/OverlayArrow.main.js.map +1 -1
  168. package/dist/OverlayArrow.mjs +2 -6
  169. package/dist/OverlayArrow.module.js +2 -6
  170. package/dist/OverlayArrow.module.js.map +1 -1
  171. package/dist/Popover.main.js +2 -5
  172. package/dist/Popover.main.js.map +1 -1
  173. package/dist/Popover.mjs +3 -6
  174. package/dist/Popover.module.js +3 -6
  175. package/dist/Popover.module.js.map +1 -1
  176. package/dist/ProgressBar.main.js +2 -6
  177. package/dist/ProgressBar.main.js.map +1 -1
  178. package/dist/ProgressBar.mjs +2 -6
  179. package/dist/ProgressBar.module.js +2 -6
  180. package/dist/ProgressBar.module.js.map +1 -1
  181. package/dist/RadioGroup.main.js +4 -10
  182. package/dist/RadioGroup.main.js.map +1 -1
  183. package/dist/RadioGroup.mjs +4 -10
  184. package/dist/RadioGroup.module.js +4 -10
  185. package/dist/RadioGroup.module.js.map +1 -1
  186. package/dist/SearchField.main.js +2 -5
  187. package/dist/SearchField.main.js.map +1 -1
  188. package/dist/SearchField.mjs +3 -6
  189. package/dist/SearchField.module.js +3 -6
  190. package/dist/SearchField.module.js.map +1 -1
  191. package/dist/Select.main.js +5 -12
  192. package/dist/Select.main.js.map +1 -1
  193. package/dist/Select.mjs +6 -13
  194. package/dist/Select.module.js +6 -13
  195. package/dist/Select.module.js.map +1 -1
  196. package/dist/Slider.main.js +8 -20
  197. package/dist/Slider.main.js.map +1 -1
  198. package/dist/Slider.mjs +9 -21
  199. package/dist/Slider.module.js +9 -21
  200. package/dist/Slider.module.js.map +1 -1
  201. package/dist/Switch.main.js +2 -5
  202. package/dist/Switch.main.js.map +1 -1
  203. package/dist/Switch.mjs +2 -5
  204. package/dist/Switch.module.js +2 -5
  205. package/dist/Switch.module.js.map +1 -1
  206. package/dist/Table.main.js +6 -12
  207. package/dist/Table.main.js.map +1 -1
  208. package/dist/Table.mjs +7 -13
  209. package/dist/Table.module.js +7 -13
  210. package/dist/Table.module.js.map +1 -1
  211. package/dist/Tabs.main.js +6 -16
  212. package/dist/Tabs.main.js.map +1 -1
  213. package/dist/Tabs.mjs +7 -17
  214. package/dist/Tabs.module.js +7 -17
  215. package/dist/Tabs.module.js.map +1 -1
  216. package/dist/TagGroup.main.js +4 -10
  217. package/dist/TagGroup.main.js.map +1 -1
  218. package/dist/TagGroup.mjs +5 -11
  219. package/dist/TagGroup.module.js +5 -11
  220. package/dist/TagGroup.module.js.map +1 -1
  221. package/dist/Text.main.js +2 -3
  222. package/dist/Text.main.js.map +1 -1
  223. package/dist/Text.mjs +2 -3
  224. package/dist/Text.module.js +2 -3
  225. package/dist/Text.module.js.map +1 -1
  226. package/dist/TextArea.main.js +2 -5
  227. package/dist/TextArea.main.js.map +1 -1
  228. package/dist/TextArea.mjs +2 -5
  229. package/dist/TextArea.module.js +2 -5
  230. package/dist/TextArea.module.js.map +1 -1
  231. package/dist/TextField.main.js +2 -5
  232. package/dist/TextField.main.js.map +1 -1
  233. package/dist/TextField.mjs +3 -6
  234. package/dist/TextField.module.js +3 -6
  235. package/dist/TextField.module.js.map +1 -1
  236. package/dist/ToggleButton.main.js +2 -5
  237. package/dist/ToggleButton.main.js.map +1 -1
  238. package/dist/ToggleButton.mjs +3 -6
  239. package/dist/ToggleButton.module.js +3 -6
  240. package/dist/ToggleButton.module.js.map +1 -1
  241. package/dist/ToggleButtonGroup.main.js +2 -5
  242. package/dist/ToggleButtonGroup.main.js.map +1 -1
  243. package/dist/ToggleButtonGroup.mjs +2 -5
  244. package/dist/ToggleButtonGroup.module.js +2 -5
  245. package/dist/ToggleButtonGroup.module.js.map +1 -1
  246. package/dist/Toolbar.main.js +2 -6
  247. package/dist/Toolbar.main.js.map +1 -1
  248. package/dist/Toolbar.mjs +2 -6
  249. package/dist/Toolbar.module.js +2 -6
  250. package/dist/Toolbar.module.js.map +1 -1
  251. package/dist/Tooltip.main.js +2 -5
  252. package/dist/Tooltip.main.js.map +1 -1
  253. package/dist/Tooltip.mjs +3 -6
  254. package/dist/Tooltip.module.js +3 -6
  255. package/dist/Tooltip.module.js.map +1 -1
  256. package/dist/Tree.main.js +2 -6
  257. package/dist/Tree.main.js.map +1 -1
  258. package/dist/Tree.mjs +3 -7
  259. package/dist/Tree.module.js +3 -7
  260. package/dist/Tree.module.js.map +1 -1
  261. package/dist/types.d.ts +10 -10
  262. package/dist/types.d.ts.map +1 -1
  263. package/package.json +30 -30
  264. package/src/Breadcrumbs.tsx +5 -8
  265. package/src/Button.tsx +5 -8
  266. package/src/Calendar.tsx +19 -31
  267. package/src/Checkbox.tsx +11 -17
  268. package/src/ColorArea.tsx +5 -8
  269. package/src/ColorField.tsx +5 -8
  270. package/src/ColorSlider.tsx +5 -8
  271. package/src/ColorSwatch.tsx +5 -8
  272. package/src/ColorSwatchPicker.tsx +7 -13
  273. package/src/ColorThumb.tsx +5 -8
  274. package/src/ColorWheel.tsx +10 -16
  275. package/src/ComboBox.tsx +5 -8
  276. package/src/DateField.tsx +21 -33
  277. package/src/DatePicker.tsx +9 -15
  278. package/src/Dialog.tsx +5 -8
  279. package/src/Disclosure.tsx +16 -25
  280. package/src/DragAndDrop.tsx +5 -8
  281. package/src/DropZone.tsx +5 -8
  282. package/src/FieldError.tsx +5 -8
  283. package/src/FileTrigger.tsx +5 -8
  284. package/src/Form.tsx +6 -9
  285. package/src/GridList.tsx +6 -9
  286. package/src/Group.tsx +5 -8
  287. package/src/Heading.tsx +2 -5
  288. package/src/Input.tsx +5 -8
  289. package/src/Keyboard.tsx +2 -5
  290. package/src/Label.tsx +2 -5
  291. package/src/Link.tsx +6 -9
  292. package/src/ListBox.tsx +8 -12
  293. package/src/Menu.tsx +8 -12
  294. package/src/Meter.tsx +5 -8
  295. package/src/Modal.tsx +5 -8
  296. package/src/NumberField.tsx +5 -8
  297. package/src/OverlayArrow.tsx +6 -9
  298. package/src/Popover.tsx +5 -8
  299. package/src/ProgressBar.tsx +6 -9
  300. package/src/RadioGroup.tsx +10 -16
  301. package/src/SearchField.tsx +5 -8
  302. package/src/Select.tsx +11 -17
  303. package/src/Slider.tsx +20 -32
  304. package/src/Switch.tsx +5 -8
  305. package/src/Table.tsx +10 -19
  306. package/src/Tabs.tsx +14 -23
  307. package/src/TagGroup.tsx +8 -14
  308. package/src/Text.tsx +2 -5
  309. package/src/TextArea.tsx +5 -7
  310. package/src/TextField.tsx +5 -8
  311. package/src/ToggleButton.tsx +5 -8
  312. package/src/ToggleButtonGroup.tsx +5 -8
  313. package/src/Toolbar.tsx +6 -9
  314. package/src/Tooltip.tsx +5 -8
  315. package/src/Tree.tsx +6 -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, isScrollable, mergeRefs, 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 super.commit(firstKey, lastKey, isSSR);\n this.rows = [...this.getChildren(this.body.key)];\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\nfunction 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\nconst _ResizableTableContainer = forwardRef(ResizableTableContainer);\nexport {_ResizableTableContainer as ResizableTableContainer};\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\nfunction 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 (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\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 */\nconst _Table = forwardRef(Table);\nexport {_Table as Table};\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?: 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?: 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 {\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 colSpan={column.colspan}\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\nfunction 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\nconst _ColumnResizer = forwardRef(ColumnResizer);\nexport {_ColumnResizer as ColumnResizer};\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 CollectionProps<T>, 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 renderValues = {\n isDropTarget: isRootDropTarget,\n isEmpty: collection.size === 0\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 if (collection.size === 0 && 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={collection.size === 0 || 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}\n\nexport interface RowProps<T> extends StyleRenderProps<RowRenderProps>, LinkDOMProps, HoverEvents {\n /** The unique id of the row. */\n id?: Key,\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?: 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}\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) {\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 }\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\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}\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 }\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 TableLoadingIndicatorProps extends StyleProps {\n children?: ReactNode\n}\n\nexport const UNSTABLE_TableLoadingIndicator = createLeafComponent('loader', function TableLoadingIndicator<T extends object>(props: TableLoadingIndicatorProps, ref: ForwardedRef<HTMLTableRowElement>, item: Node<T>) {\n let state = useContext(TableStateContext)!;\n let {isVirtualized} = useContext(CollectionRendererContext);\n let numColumns = state.collection.columns.length;\n\n let renderProps = useRenderProps({\n ...props,\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'] = state.collection.headerRows.length + state.collection.size ;\n rowHeaderProps['aria-colspan'] = numColumns;\n style = {display: 'contents'};\n } else {\n rowHeaderProps['colSpan'] = numColumns;\n }\n\n return (\n <>\n <TR\n role=\"row\"\n ref={ref}\n {...mergeProps(filterDOMProps(props as any), rowProps)}\n {...renderProps}>\n <TD role=\"rowheader\" {...rowHeaderProps} style={style}>\n {renderProps.children}\n </TD>\n </TR>\n </>\n );\n});\n"],"names":[],"version":3,"file":"Table.module.js.map"}
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, isScrollable, mergeRefs, 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 super.commit(firstKey, lastKey, isSSR);\n this.rows = [...this.getChildren(this.body.key)];\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 (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?: 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?: 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 {\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 colSpan={column.colspan}\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 CollectionProps<T>, 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 renderValues = {\n isDropTarget: isRootDropTarget,\n isEmpty: collection.size === 0\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 if (collection.size === 0 && 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={collection.size === 0 || 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}\n\nexport interface RowProps<T> extends StyleRenderProps<RowRenderProps>, LinkDOMProps, HoverEvents {\n /** The unique id of the row. */\n id?: Key,\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?: 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}\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) {\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 }\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\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}\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 }\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 TableLoadingIndicatorProps extends StyleProps {\n children?: ReactNode\n}\n\nexport const UNSTABLE_TableLoadingIndicator = createLeafComponent('loader', function TableLoadingIndicator<T extends object>(props: TableLoadingIndicatorProps, ref: ForwardedRef<HTMLTableRowElement>, item: Node<T>) {\n let state = useContext(TableStateContext)!;\n let {isVirtualized} = useContext(CollectionRendererContext);\n let numColumns = state.collection.columns.length;\n\n let renderProps = useRenderProps({\n ...props,\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'] = state.collection.headerRows.length + state.collection.size ;\n rowHeaderProps['aria-colspan'] = numColumns;\n style = {display: 'contents'};\n } else {\n rowHeaderProps['colSpan'] = numColumns;\n }\n\n return (\n <>\n <TR\n role=\"row\"\n ref={ref}\n {...mergeProps(filterDOMProps(props as any), rowProps)}\n {...renderProps}>\n <TD role=\"rowheader\" {...rowHeaderProps} style={style}>\n {renderProps.children}\n </TD>\n </TR>\n </>\n );\n});\n"],"names":[],"version":3,"file":"Table.module.js.map"}
package/dist/Tabs.main.js CHANGED
@@ -40,7 +40,7 @@ $parcel$export(module.exports, "TabPanel", () => $f982e6cd1aac14a3$export$3d96ec
40
40
 
41
41
  const $f982e6cd1aac14a3$export$cfa7aa87c26e7d1f = /*#__PURE__*/ (0, $ke4kY$react.createContext)(null);
42
42
  const $f982e6cd1aac14a3$export$364712098d2aa57c = /*#__PURE__*/ (0, $ke4kY$react.createContext)(null);
43
- function $f982e6cd1aac14a3$var$Tabs(props, ref) {
43
+ const $f982e6cd1aac14a3$export$b2539bed5023c21c = /*#__PURE__*/ (0, $ke4kY$react.forwardRef)(function Tabs(props, ref) {
44
44
  [props, ref] = (0, $c5ccf687772c0422$exports.useContextProps)(props, ref, $f982e6cd1aac14a3$export$cfa7aa87c26e7d1f);
45
45
  let { children: children, orientation: orientation = 'horizontal' } = props;
46
46
  children = (0, $ke4kY$react.useMemo)(()=>typeof children === 'function' ? children({
@@ -57,7 +57,7 @@ function $f982e6cd1aac14a3$var$Tabs(props, ref) {
57
57
  collection: collection,
58
58
  tabsRef: ref
59
59
  }));
60
- }
60
+ });
61
61
  function $f982e6cd1aac14a3$var$TabsInner({ props: props, tabsRef: ref, collection: collection }) {
62
62
  let { orientation: orientation = 'horizontal' } = props;
63
63
  let state = (0, $ke4kY$reactstately.useTabListState)({
@@ -105,16 +105,13 @@ function $f982e6cd1aac14a3$var$TabsInner({ props: props, tabsRef: ref, collectio
105
105
  ]
106
106
  }, renderProps.children));
107
107
  }
108
- /**
109
- * Tabs organize content into multiple sections and allow users to navigate between them.
110
- */ const $f982e6cd1aac14a3$export$b2539bed5023c21c = /*#__PURE__*/ (0, $ke4kY$react.forwardRef)($f982e6cd1aac14a3$var$Tabs);
111
- function $f982e6cd1aac14a3$var$TabList(props, ref) {
108
+ const $f982e6cd1aac14a3$export$e51a686c67fdaa2d = /*#__PURE__*/ (0, $ke4kY$react.forwardRef)(function TabList(props, ref) {
112
109
  let state = (0, $ke4kY$react.useContext)($f982e6cd1aac14a3$export$364712098d2aa57c);
113
110
  return state ? /*#__PURE__*/ (0, ($parcel$interopDefault($ke4kY$react))).createElement($f982e6cd1aac14a3$var$TabListInner, {
114
111
  props: props,
115
112
  forwardedRef: ref
116
113
  }) : /*#__PURE__*/ (0, ($parcel$interopDefault($ke4kY$react))).createElement((0, $ke4kY$reactariacollections.Collection), props);
117
- }
114
+ });
118
115
  function $f982e6cd1aac14a3$var$TabListInner({ props: props, forwardedRef: ref }) {
119
116
  let state = (0, $ke4kY$react.useContext)($f982e6cd1aac14a3$export$364712098d2aa57c);
120
117
  let { CollectionRoot: CollectionRoot } = (0, $ke4kY$react.useContext)((0, $3114c2382242bdc0$exports.CollectionRendererContext));
@@ -147,10 +144,6 @@ function $f982e6cd1aac14a3$var$TabListInner({ props: props, forwardedRef: ref })
147
144
  persistedKeys: (0, $3114c2382242bdc0$exports.usePersistedKeys)(state.selectionManager.focusedKey)
148
145
  }));
149
146
  }
150
- /**
151
- * A TabList is used within Tabs to group tabs that a user can switch between.
152
- * The ids of the items within the <TabList> must match up with a corresponding item inside the <TabPanels>.
153
- */ const $f982e6cd1aac14a3$export$e51a686c67fdaa2d = /*#__PURE__*/ (0, $ke4kY$react.forwardRef)($f982e6cd1aac14a3$var$TabList);
154
147
  const $f982e6cd1aac14a3$export$3e41faf802a29e71 = /*#__PURE__*/ (0, $ke4kY$reactariacollections.createLeafComponent)('item', (props, forwardedRef, item)=>{
155
148
  let state = (0, $ke4kY$react.useContext)($f982e6cd1aac14a3$export$364712098d2aa57c);
156
149
  let ref = (0, $ke4kY$reactariautils.useObjectRef)(forwardedRef);
@@ -190,7 +183,7 @@ const $f982e6cd1aac14a3$export$3e41faf802a29e71 = /*#__PURE__*/ (0, $ke4kY$react
190
183
  "data-hovered": isHovered || undefined
191
184
  });
192
185
  });
193
- function $f982e6cd1aac14a3$var$TabPanel(props, forwardedRef) {
186
+ const $f982e6cd1aac14a3$export$3d96ec278d3efce4 = /*#__PURE__*/ (0, $ke4kY$reactariacollections.createHideableComponent)(function TabPanel(props, forwardedRef) {
194
187
  const state = (0, $ke4kY$react.useContext)($f982e6cd1aac14a3$export$364712098d2aa57c);
195
188
  let ref = (0, $ke4kY$reactariautils.useObjectRef)(forwardedRef);
196
189
  let { tabPanelProps: tabPanelProps } = (0, $ke4kY$reactaria.useTabPanel)(props, state, ref);
@@ -230,10 +223,7 @@ function $f982e6cd1aac14a3$var$TabPanel(props, forwardedRef) {
230
223
  ]
231
224
  ]
232
225
  }, renderProps.children));
233
- }
234
- /**
235
- * A TabPanel provides the content for a tab.
236
- */ const $f982e6cd1aac14a3$export$3d96ec278d3efce4 = /*#__PURE__*/ (0, $ke4kY$reactariacollections.createHideableComponent)($f982e6cd1aac14a3$var$TabPanel);
226
+ });
237
227
 
238
228
 
239
229
  //# sourceMappingURL=Tabs.main.js.map
@@ -1 +1 @@
1
- {"mappings":"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","sources":["packages/react-aria-components/src/Tabs.tsx"],"sourcesContent":["/*\n * Copyright 2022 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {AriaLabelingProps, forwardRefType, HoverEvents, Key, LinkDOMProps, RefObject} from '@react-types/shared';\nimport {AriaTabListProps, AriaTabPanelProps, mergeProps, Orientation, useFocusRing, useHover, useTab, useTabList, useTabPanel} from 'react-aria';\nimport {Collection, CollectionBuilder, createHideableComponent, createLeafComponent} from '@react-aria/collections';\nimport {CollectionProps, CollectionRendererContext, usePersistedKeys} from './Collection';\nimport {ContextValue, Provider, RenderProps, SlotProps, StyleRenderProps, useContextProps, useRenderProps, useSlottedContext} from './utils';\nimport {filterDOMProps, useObjectRef} from '@react-aria/utils';\nimport {Collection as ICollection, Node, TabListState, useTabListState} from 'react-stately';\nimport React, {createContext, ForwardedRef, forwardRef, JSX, useContext, useMemo} from 'react';\n\nexport interface TabsProps extends Omit<AriaTabListProps<any>, 'items' | 'children'>, RenderProps<TabsRenderProps>, SlotProps {}\n\nexport interface TabsRenderProps {\n /**\n * The orientation of the tabs.\n * @selector [data-orientation=\"horizontal | vertical\"]\n */\n orientation: Orientation\n}\n\nexport interface TabListProps<T> extends StyleRenderProps<TabListRenderProps>, AriaLabelingProps, Omit<CollectionProps<T>, 'disabledKeys'> {}\n\nexport interface TabListRenderProps {\n /**\n * The orientation of the tab list.\n * @selector [data-orientation=\"horizontal | vertical\"]\n */\n orientation: Orientation,\n /**\n * State of the tab list.\n */\n state: TabListState<unknown>\n}\n\nexport interface TabProps extends RenderProps<TabRenderProps>, AriaLabelingProps, LinkDOMProps, HoverEvents {\n /** The unique id of the tab. */\n id?: Key,\n /** Whether the tab is disabled. */\n isDisabled?: boolean\n}\n\nexport interface TabRenderProps {\n /**\n * Whether the tab is currently hovered with a mouse.\n * @selector [data-hovered]\n */\n isHovered: boolean,\n /**\n * Whether the tab is currently in a pressed state.\n * @selector [data-pressed]\n */\n isPressed: boolean,\n /**\n * Whether the tab is currently selected.\n * @selector [data-selected]\n */\n isSelected: boolean,\n /**\n * Whether the tab is currently focused.\n * @selector [data-focused]\n */\n isFocused: boolean,\n /**\n * Whether the tab is currently keyboard focused.\n * @selector [data-focus-visible]\n */\n isFocusVisible: boolean,\n /**\n * Whether the tab is disabled.\n * @selector [data-disabled]\n */\n isDisabled: boolean\n}\n\nexport interface TabPanelProps extends AriaTabPanelProps, RenderProps<TabPanelRenderProps> {\n /**\n * Whether to mount the tab panel in the DOM even when it is not currently selected.\n * Inactive tab panels are inert and cannot be interacted with. They must be styled appropriately so this is clear to the user visually.\n * @default false\n */\n shouldForceMount?: boolean\n}\n\nexport interface TabPanelRenderProps {\n /**\n * Whether the tab panel is currently focused.\n * @selector [data-focused]\n */\n isFocused: boolean,\n /**\n * Whether the tab panel is currently keyboard focused.\n * @selector [data-focus-visible]\n */\n isFocusVisible: boolean,\n /**\n * Whether the tab panel is currently non-interactive. This occurs when the\n * `shouldForceMount` prop is true, and the corresponding tab is not selected.\n * @selector [data-inert]\n */\n isInert: boolean,\n /**\n * State of the tab list.\n */\n state: TabListState<unknown>\n}\n\nexport const TabsContext = createContext<ContextValue<TabsProps, HTMLDivElement>>(null);\nexport const TabListStateContext = createContext<TabListState<object> | null>(null);\n\nfunction Tabs(props: TabsProps, ref: ForwardedRef<HTMLDivElement>) {\n [props, ref] = useContextProps(props, ref, TabsContext);\n let {children, orientation = 'horizontal'} = props;\n children = useMemo(() => (\n typeof children === 'function'\n ? children({orientation, defaultChildren: null})\n : children\n ), [children, orientation]);\n\n return (\n <CollectionBuilder content={children}>\n {collection => <TabsInner props={props} collection={collection} tabsRef={ref} />}\n </CollectionBuilder>\n );\n}\n\ninterface TabsInnerProps {\n props: TabsProps,\n collection: ICollection<Node<any>>,\n tabsRef: RefObject<HTMLDivElement | null>\n}\n\nfunction TabsInner({props, tabsRef: ref, collection}: TabsInnerProps) {\n let {orientation = 'horizontal'} = props;\n let state = useTabListState({\n ...props,\n collection,\n children: undefined\n });\n let {focusProps, isFocused, isFocusVisible} = useFocusRing({within: true});\n let values = useMemo(() => ({\n orientation,\n isFocusWithin: isFocused,\n isFocusVisible\n }), [orientation, isFocused, isFocusVisible]);\n let renderProps = useRenderProps({\n ...props,\n defaultClassName: 'react-aria-Tabs',\n values\n });\n\n return (\n <div\n {...filterDOMProps(props as any)}\n {...focusProps}\n {...renderProps}\n ref={ref}\n slot={props.slot || undefined}\n data-focused={isFocused || undefined}\n data-orientation={orientation}\n data-focus-visible={isFocusVisible || undefined}\n data-disabled={state.isDisabled || undefined}>\n <Provider\n values={[\n [TabsContext, props],\n [TabListStateContext, state]\n ]}>\n {renderProps.children}\n </Provider>\n </div>\n );\n}\n\n/**\n * Tabs organize content into multiple sections and allow users to navigate between them.\n */\nconst _Tabs = /*#__PURE__*/ (forwardRef as forwardRefType)(Tabs);\nexport {_Tabs as Tabs};\n\nfunction TabList<T extends object>(props: TabListProps<T>, ref: ForwardedRef<HTMLDivElement>): JSX.Element {\n let state = useContext(TabListStateContext);\n return state\n ? <TabListInner props={props} forwardedRef={ref} />\n : <Collection {...props} />;\n}\n\ninterface TabListInnerProps<T> {\n props: TabListProps<T>,\n forwardedRef: ForwardedRef<HTMLDivElement>\n}\n\nfunction TabListInner<T extends object>({props, forwardedRef: ref}: TabListInnerProps<T>) {\n let state = useContext(TabListStateContext)!;\n let {CollectionRoot} = useContext(CollectionRendererContext);\n let {orientation = 'horizontal', keyboardActivation = 'automatic'} = useSlottedContext(TabsContext)!;\n let objectRef = useObjectRef(ref);\n\n let {tabListProps} = useTabList({\n ...props,\n orientation,\n keyboardActivation\n }, state, objectRef);\n\n let renderProps = useRenderProps({\n ...props,\n children: null,\n defaultClassName: 'react-aria-TabList',\n values: {\n orientation,\n state\n }\n });\n\n let DOMProps = filterDOMProps(props);\n delete DOMProps.id;\n\n return (\n <div\n {...DOMProps}\n {...tabListProps}\n ref={objectRef}\n {...renderProps}\n data-orientation={orientation || undefined}>\n <CollectionRoot collection={state.collection} persistedKeys={usePersistedKeys(state.selectionManager.focusedKey)} />\n </div>\n );\n}\n\n/**\n * A TabList is used within Tabs to group tabs that a user can switch between.\n * The ids of the items within the <TabList> must match up with a corresponding item inside the <TabPanels>.\n */\nconst _TabList = /*#__PURE__*/ (forwardRef as forwardRefType)(TabList);\nexport {_TabList as TabList};\n\n/**\n * A Tab provides a title for an individual item within a TabList.\n */\nexport const Tab = /*#__PURE__*/ createLeafComponent('item', (props: TabProps, forwardedRef: ForwardedRef<HTMLDivElement>, item: Node<unknown>) => {\n let state = useContext(TabListStateContext)!;\n let ref = useObjectRef<any>(forwardedRef);\n let {tabProps, isSelected, isDisabled, isPressed} = useTab({key: item.key, ...props}, state, ref);\n let {focusProps, isFocused, isFocusVisible} = useFocusRing();\n let {hoverProps, isHovered} = useHover({\n isDisabled,\n onHoverStart: props.onHoverStart,\n onHoverEnd: props.onHoverEnd,\n onHoverChange: props.onHoverChange\n });\n\n let renderProps = useRenderProps({\n ...props,\n id: undefined,\n defaultClassName: 'react-aria-Tab',\n values: {\n isSelected,\n isDisabled,\n isFocused,\n isFocusVisible,\n isPressed,\n isHovered\n }\n });\n\n let ElementType: React.ElementType = item.props.href ? 'a' : 'div';\n\n return (\n <ElementType\n {...mergeProps(tabProps, focusProps, hoverProps, renderProps)}\n ref={ref}\n data-selected={isSelected || undefined}\n data-disabled={isDisabled || undefined}\n data-focused={isFocused || undefined}\n data-focus-visible={isFocusVisible || undefined}\n data-pressed={isPressed || undefined}\n data-hovered={isHovered || undefined} />\n );\n});\n\nfunction TabPanel(props: TabPanelProps, forwardedRef: ForwardedRef<HTMLDivElement>) {\n const state = useContext(TabListStateContext)!;\n let ref = useObjectRef<HTMLDivElement>(forwardedRef);\n let {tabPanelProps} = useTabPanel(props, state, ref);\n let {focusProps, isFocused, isFocusVisible} = useFocusRing();\n\n let isSelected = state.selectedKey === props.id;\n let renderProps = useRenderProps({\n ...props,\n defaultClassName: 'react-aria-TabPanel',\n values: {\n isFocused,\n isFocusVisible,\n isInert: !isSelected,\n state\n }\n });\n\n if (!isSelected && !props.shouldForceMount) {\n return null;\n }\n\n let DOMProps = filterDOMProps(props);\n delete DOMProps.id;\n\n let domProps = isSelected\n ? mergeProps(DOMProps, tabPanelProps, focusProps, renderProps)\n : renderProps;\n\n return (\n <div\n {...domProps}\n ref={ref}\n data-focused={isFocused || undefined}\n data-focus-visible={isFocusVisible || undefined}\n // @ts-ignore\n inert={!isSelected ? 'true' : undefined}\n data-inert={!isSelected ? 'true' : undefined}>\n <Provider\n values={[\n [TabsContext, null],\n [TabListStateContext, null]\n ]}>\n {renderProps.children}\n </Provider>\n </div>\n );\n}\n\n/**\n * A TabPanel provides the content for a tab.\n */\nconst _TabPanel = /*#__PURE__*/ createHideableComponent(TabPanel);\nexport {_TabPanel as TabPanel};\n"],"names":[],"version":3,"file":"Tabs.main.js.map"}
1
+ {"mappings":"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","sources":["packages/react-aria-components/src/Tabs.tsx"],"sourcesContent":["/*\n * Copyright 2022 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {AriaLabelingProps, forwardRefType, HoverEvents, Key, LinkDOMProps, RefObject} from '@react-types/shared';\nimport {AriaTabListProps, AriaTabPanelProps, mergeProps, Orientation, useFocusRing, useHover, useTab, useTabList, useTabPanel} from 'react-aria';\nimport {Collection, CollectionBuilder, createHideableComponent, createLeafComponent} from '@react-aria/collections';\nimport {CollectionProps, CollectionRendererContext, usePersistedKeys} from './Collection';\nimport {ContextValue, Provider, RenderProps, SlotProps, StyleRenderProps, useContextProps, useRenderProps, useSlottedContext} from './utils';\nimport {filterDOMProps, useObjectRef} from '@react-aria/utils';\nimport {Collection as ICollection, Node, TabListState, useTabListState} from 'react-stately';\nimport React, {createContext, ForwardedRef, forwardRef, JSX, useContext, useMemo} from 'react';\n\nexport interface TabsProps extends Omit<AriaTabListProps<any>, 'items' | 'children'>, RenderProps<TabsRenderProps>, SlotProps {}\n\nexport interface TabsRenderProps {\n /**\n * The orientation of the tabs.\n * @selector [data-orientation=\"horizontal | vertical\"]\n */\n orientation: Orientation\n}\n\nexport interface TabListProps<T> extends StyleRenderProps<TabListRenderProps>, AriaLabelingProps, Omit<CollectionProps<T>, 'disabledKeys'> {}\n\nexport interface TabListRenderProps {\n /**\n * The orientation of the tab list.\n * @selector [data-orientation=\"horizontal | vertical\"]\n */\n orientation: Orientation,\n /**\n * State of the tab list.\n */\n state: TabListState<unknown>\n}\n\nexport interface TabProps extends RenderProps<TabRenderProps>, AriaLabelingProps, LinkDOMProps, HoverEvents {\n /** The unique id of the tab. */\n id?: Key,\n /** Whether the tab is disabled. */\n isDisabled?: boolean\n}\n\nexport interface TabRenderProps {\n /**\n * Whether the tab is currently hovered with a mouse.\n * @selector [data-hovered]\n */\n isHovered: boolean,\n /**\n * Whether the tab is currently in a pressed state.\n * @selector [data-pressed]\n */\n isPressed: boolean,\n /**\n * Whether the tab is currently selected.\n * @selector [data-selected]\n */\n isSelected: boolean,\n /**\n * Whether the tab is currently focused.\n * @selector [data-focused]\n */\n isFocused: boolean,\n /**\n * Whether the tab is currently keyboard focused.\n * @selector [data-focus-visible]\n */\n isFocusVisible: boolean,\n /**\n * Whether the tab is disabled.\n * @selector [data-disabled]\n */\n isDisabled: boolean\n}\n\nexport interface TabPanelProps extends AriaTabPanelProps, RenderProps<TabPanelRenderProps> {\n /**\n * Whether to mount the tab panel in the DOM even when it is not currently selected.\n * Inactive tab panels are inert and cannot be interacted with. They must be styled appropriately so this is clear to the user visually.\n * @default false\n */\n shouldForceMount?: boolean\n}\n\nexport interface TabPanelRenderProps {\n /**\n * Whether the tab panel is currently focused.\n * @selector [data-focused]\n */\n isFocused: boolean,\n /**\n * Whether the tab panel is currently keyboard focused.\n * @selector [data-focus-visible]\n */\n isFocusVisible: boolean,\n /**\n * Whether the tab panel is currently non-interactive. This occurs when the\n * `shouldForceMount` prop is true, and the corresponding tab is not selected.\n * @selector [data-inert]\n */\n isInert: boolean,\n /**\n * State of the tab list.\n */\n state: TabListState<unknown>\n}\n\nexport const TabsContext = createContext<ContextValue<TabsProps, HTMLDivElement>>(null);\nexport const TabListStateContext = createContext<TabListState<object> | null>(null);\n\n/**\n * Tabs organize content into multiple sections and allow users to navigate between them.\n */\nexport const Tabs = /*#__PURE__*/ (forwardRef as forwardRefType)(function Tabs(props: TabsProps, ref: ForwardedRef<HTMLDivElement>) {\n [props, ref] = useContextProps(props, ref, TabsContext);\n let {children, orientation = 'horizontal'} = props;\n children = useMemo(() => (\n typeof children === 'function'\n ? children({orientation, defaultChildren: null})\n : children\n ), [children, orientation]);\n\n return (\n <CollectionBuilder content={children}>\n {collection => <TabsInner props={props} collection={collection} tabsRef={ref} />}\n </CollectionBuilder>\n );\n});\n\ninterface TabsInnerProps {\n props: TabsProps,\n collection: ICollection<Node<any>>,\n tabsRef: RefObject<HTMLDivElement | null>\n}\n\nfunction TabsInner({props, tabsRef: ref, collection}: TabsInnerProps) {\n let {orientation = 'horizontal'} = props;\n let state = useTabListState({\n ...props,\n collection,\n children: undefined\n });\n let {focusProps, isFocused, isFocusVisible} = useFocusRing({within: true});\n let values = useMemo(() => ({\n orientation,\n isFocusWithin: isFocused,\n isFocusVisible\n }), [orientation, isFocused, isFocusVisible]);\n let renderProps = useRenderProps({\n ...props,\n defaultClassName: 'react-aria-Tabs',\n values\n });\n\n return (\n <div\n {...filterDOMProps(props as any)}\n {...focusProps}\n {...renderProps}\n ref={ref}\n slot={props.slot || undefined}\n data-focused={isFocused || undefined}\n data-orientation={orientation}\n data-focus-visible={isFocusVisible || undefined}\n data-disabled={state.isDisabled || undefined}>\n <Provider\n values={[\n [TabsContext, props],\n [TabListStateContext, state]\n ]}>\n {renderProps.children}\n </Provider>\n </div>\n );\n}\n\n/**\n * A TabList is used within Tabs to group tabs that a user can switch between.\n * The ids of the items within the <TabList> must match up with a corresponding item inside the <TabPanels>.\n */\nexport const TabList = /*#__PURE__*/ (forwardRef as forwardRefType)(function TabList<T extends object>(props: TabListProps<T>, ref: ForwardedRef<HTMLDivElement>): JSX.Element {\n let state = useContext(TabListStateContext);\n return state\n ? <TabListInner props={props} forwardedRef={ref} />\n : <Collection {...props} />;\n});\n\ninterface TabListInnerProps<T> {\n props: TabListProps<T>,\n forwardedRef: ForwardedRef<HTMLDivElement>\n}\n\nfunction TabListInner<T extends object>({props, forwardedRef: ref}: TabListInnerProps<T>) {\n let state = useContext(TabListStateContext)!;\n let {CollectionRoot} = useContext(CollectionRendererContext);\n let {orientation = 'horizontal', keyboardActivation = 'automatic'} = useSlottedContext(TabsContext)!;\n let objectRef = useObjectRef(ref);\n\n let {tabListProps} = useTabList({\n ...props,\n orientation,\n keyboardActivation\n }, state, objectRef);\n\n let renderProps = useRenderProps({\n ...props,\n children: null,\n defaultClassName: 'react-aria-TabList',\n values: {\n orientation,\n state\n }\n });\n\n let DOMProps = filterDOMProps(props);\n delete DOMProps.id;\n\n return (\n <div\n {...DOMProps}\n {...tabListProps}\n ref={objectRef}\n {...renderProps}\n data-orientation={orientation || undefined}>\n <CollectionRoot collection={state.collection} persistedKeys={usePersistedKeys(state.selectionManager.focusedKey)} />\n </div>\n );\n}\n\n/**\n * A Tab provides a title for an individual item within a TabList.\n */\nexport const Tab = /*#__PURE__*/ createLeafComponent('item', (props: TabProps, forwardedRef: ForwardedRef<HTMLDivElement>, item: Node<unknown>) => {\n let state = useContext(TabListStateContext)!;\n let ref = useObjectRef<any>(forwardedRef);\n let {tabProps, isSelected, isDisabled, isPressed} = useTab({key: item.key, ...props}, state, ref);\n let {focusProps, isFocused, isFocusVisible} = useFocusRing();\n let {hoverProps, isHovered} = useHover({\n isDisabled,\n onHoverStart: props.onHoverStart,\n onHoverEnd: props.onHoverEnd,\n onHoverChange: props.onHoverChange\n });\n\n let renderProps = useRenderProps({\n ...props,\n id: undefined,\n defaultClassName: 'react-aria-Tab',\n values: {\n isSelected,\n isDisabled,\n isFocused,\n isFocusVisible,\n isPressed,\n isHovered\n }\n });\n\n let ElementType: React.ElementType = item.props.href ? 'a' : 'div';\n\n return (\n <ElementType\n {...mergeProps(tabProps, focusProps, hoverProps, renderProps)}\n ref={ref}\n data-selected={isSelected || undefined}\n data-disabled={isDisabled || undefined}\n data-focused={isFocused || undefined}\n data-focus-visible={isFocusVisible || undefined}\n data-pressed={isPressed || undefined}\n data-hovered={isHovered || undefined} />\n );\n});\n\n/**\n * A TabPanel provides the content for a tab.\n */\nexport const TabPanel = /*#__PURE__*/ createHideableComponent(function TabPanel(props: TabPanelProps, forwardedRef: ForwardedRef<HTMLDivElement>) {\n const state = useContext(TabListStateContext)!;\n let ref = useObjectRef<HTMLDivElement>(forwardedRef);\n let {tabPanelProps} = useTabPanel(props, state, ref);\n let {focusProps, isFocused, isFocusVisible} = useFocusRing();\n\n let isSelected = state.selectedKey === props.id;\n let renderProps = useRenderProps({\n ...props,\n defaultClassName: 'react-aria-TabPanel',\n values: {\n isFocused,\n isFocusVisible,\n isInert: !isSelected,\n state\n }\n });\n\n if (!isSelected && !props.shouldForceMount) {\n return null;\n }\n\n let DOMProps = filterDOMProps(props);\n delete DOMProps.id;\n\n let domProps = isSelected\n ? mergeProps(DOMProps, tabPanelProps, focusProps, renderProps)\n : renderProps;\n\n return (\n <div\n {...domProps}\n ref={ref}\n data-focused={isFocused || undefined}\n data-focus-visible={isFocusVisible || undefined}\n // @ts-ignore\n inert={!isSelected ? 'true' : undefined}\n data-inert={!isSelected ? 'true' : undefined}>\n <Provider\n values={[\n [TabsContext, null],\n [TabListStateContext, null]\n ]}>\n {renderProps.children}\n </Provider>\n </div>\n );\n});\n"],"names":[],"version":3,"file":"Tabs.main.js.map"}
package/dist/Tabs.mjs CHANGED
@@ -4,7 +4,7 @@ import {useFocusRing as $7aSLZ$useFocusRing, useTabList as $7aSLZ$useTabList, us
4
4
  import {CollectionBuilder as $7aSLZ$CollectionBuilder, Collection as $7aSLZ$Collection, createLeafComponent as $7aSLZ$createLeafComponent, createHideableComponent as $7aSLZ$createHideableComponent} from "@react-aria/collections";
5
5
  import {filterDOMProps as $7aSLZ$filterDOMProps, useObjectRef as $7aSLZ$useObjectRef} from "@react-aria/utils";
6
6
  import {useTabListState as $7aSLZ$useTabListState} from "react-stately";
7
- import $7aSLZ$react, {createContext as $7aSLZ$createContext, useMemo as $7aSLZ$useMemo, forwardRef as $7aSLZ$forwardRef, useContext as $7aSLZ$useContext} from "react";
7
+ import $7aSLZ$react, {createContext as $7aSLZ$createContext, forwardRef as $7aSLZ$forwardRef, useMemo as $7aSLZ$useMemo, useContext as $7aSLZ$useContext} from "react";
8
8
 
9
9
  /*
10
10
  * Copyright 2022 Adobe. All rights reserved.
@@ -25,7 +25,7 @@ import $7aSLZ$react, {createContext as $7aSLZ$createContext, useMemo as $7aSLZ$u
25
25
 
26
26
  const $5e8ad37a45e1c704$export$cfa7aa87c26e7d1f = /*#__PURE__*/ (0, $7aSLZ$createContext)(null);
27
27
  const $5e8ad37a45e1c704$export$364712098d2aa57c = /*#__PURE__*/ (0, $7aSLZ$createContext)(null);
28
- function $5e8ad37a45e1c704$var$Tabs(props, ref) {
28
+ const $5e8ad37a45e1c704$export$b2539bed5023c21c = /*#__PURE__*/ (0, $7aSLZ$forwardRef)(function Tabs(props, ref) {
29
29
  [props, ref] = (0, $64fa3d84918910a7$export$29f1550f4b0d4415)(props, ref, $5e8ad37a45e1c704$export$cfa7aa87c26e7d1f);
30
30
  let { children: children, orientation: orientation = 'horizontal' } = props;
31
31
  children = (0, $7aSLZ$useMemo)(()=>typeof children === 'function' ? children({
@@ -42,7 +42,7 @@ function $5e8ad37a45e1c704$var$Tabs(props, ref) {
42
42
  collection: collection,
43
43
  tabsRef: ref
44
44
  }));
45
- }
45
+ });
46
46
  function $5e8ad37a45e1c704$var$TabsInner({ props: props, tabsRef: ref, collection: collection }) {
47
47
  let { orientation: orientation = 'horizontal' } = props;
48
48
  let state = (0, $7aSLZ$useTabListState)({
@@ -90,16 +90,13 @@ function $5e8ad37a45e1c704$var$TabsInner({ props: props, tabsRef: ref, collectio
90
90
  ]
91
91
  }, renderProps.children));
92
92
  }
93
- /**
94
- * Tabs organize content into multiple sections and allow users to navigate between them.
95
- */ const $5e8ad37a45e1c704$export$b2539bed5023c21c = /*#__PURE__*/ (0, $7aSLZ$forwardRef)($5e8ad37a45e1c704$var$Tabs);
96
- function $5e8ad37a45e1c704$var$TabList(props, ref) {
93
+ const $5e8ad37a45e1c704$export$e51a686c67fdaa2d = /*#__PURE__*/ (0, $7aSLZ$forwardRef)(function TabList(props, ref) {
97
94
  let state = (0, $7aSLZ$useContext)($5e8ad37a45e1c704$export$364712098d2aa57c);
98
95
  return state ? /*#__PURE__*/ (0, $7aSLZ$react).createElement($5e8ad37a45e1c704$var$TabListInner, {
99
96
  props: props,
100
97
  forwardedRef: ref
101
98
  }) : /*#__PURE__*/ (0, $7aSLZ$react).createElement((0, $7aSLZ$Collection), props);
102
- }
99
+ });
103
100
  function $5e8ad37a45e1c704$var$TabListInner({ props: props, forwardedRef: ref }) {
104
101
  let state = (0, $7aSLZ$useContext)($5e8ad37a45e1c704$export$364712098d2aa57c);
105
102
  let { CollectionRoot: CollectionRoot } = (0, $7aSLZ$useContext)((0, $7135fc7d473fd974$export$4feb769f8ddf26c5));
@@ -132,10 +129,6 @@ function $5e8ad37a45e1c704$var$TabListInner({ props: props, forwardedRef: ref })
132
129
  persistedKeys: (0, $7135fc7d473fd974$export$90e00781bc59d8f9)(state.selectionManager.focusedKey)
133
130
  }));
134
131
  }
135
- /**
136
- * A TabList is used within Tabs to group tabs that a user can switch between.
137
- * The ids of the items within the <TabList> must match up with a corresponding item inside the <TabPanels>.
138
- */ const $5e8ad37a45e1c704$export$e51a686c67fdaa2d = /*#__PURE__*/ (0, $7aSLZ$forwardRef)($5e8ad37a45e1c704$var$TabList);
139
132
  const $5e8ad37a45e1c704$export$3e41faf802a29e71 = /*#__PURE__*/ (0, $7aSLZ$createLeafComponent)('item', (props, forwardedRef, item)=>{
140
133
  let state = (0, $7aSLZ$useContext)($5e8ad37a45e1c704$export$364712098d2aa57c);
141
134
  let ref = (0, $7aSLZ$useObjectRef)(forwardedRef);
@@ -175,7 +168,7 @@ const $5e8ad37a45e1c704$export$3e41faf802a29e71 = /*#__PURE__*/ (0, $7aSLZ$creat
175
168
  "data-hovered": isHovered || undefined
176
169
  });
177
170
  });
178
- function $5e8ad37a45e1c704$var$TabPanel(props, forwardedRef) {
171
+ const $5e8ad37a45e1c704$export$3d96ec278d3efce4 = /*#__PURE__*/ (0, $7aSLZ$createHideableComponent)(function TabPanel(props, forwardedRef) {
179
172
  const state = (0, $7aSLZ$useContext)($5e8ad37a45e1c704$export$364712098d2aa57c);
180
173
  let ref = (0, $7aSLZ$useObjectRef)(forwardedRef);
181
174
  let { tabPanelProps: tabPanelProps } = (0, $7aSLZ$useTabPanel)(props, state, ref);
@@ -215,10 +208,7 @@ function $5e8ad37a45e1c704$var$TabPanel(props, forwardedRef) {
215
208
  ]
216
209
  ]
217
210
  }, renderProps.children));
218
- }
219
- /**
220
- * A TabPanel provides the content for a tab.
221
- */ const $5e8ad37a45e1c704$export$3d96ec278d3efce4 = /*#__PURE__*/ (0, $7aSLZ$createHideableComponent)($5e8ad37a45e1c704$var$TabPanel);
211
+ });
222
212
 
223
213
 
224
214
  export {$5e8ad37a45e1c704$export$cfa7aa87c26e7d1f as TabsContext, $5e8ad37a45e1c704$export$364712098d2aa57c as TabListStateContext, $5e8ad37a45e1c704$export$b2539bed5023c21c as Tabs, $5e8ad37a45e1c704$export$e51a686c67fdaa2d as TabList, $5e8ad37a45e1c704$export$3e41faf802a29e71 as Tab, $5e8ad37a45e1c704$export$3d96ec278d3efce4 as TabPanel};