@proyecto-viviana/solidaria-components 0.3.2 → 0.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (398) hide show
  1. package/dist/ActionBar.js +184 -0
  2. package/dist/ActionBar.js.map +1 -0
  3. package/dist/ActionBar.jsx +128 -0
  4. package/dist/ActionBar.jsx.map +1 -0
  5. package/dist/ActionGroup.js +179 -0
  6. package/dist/ActionGroup.js.map +1 -0
  7. package/dist/ActionGroup.jsx +129 -0
  8. package/dist/ActionGroup.jsx.map +1 -0
  9. package/dist/Alert.js +111 -0
  10. package/dist/Alert.js.map +1 -0
  11. package/dist/Alert.jsx +82 -0
  12. package/dist/Alert.jsx.map +1 -0
  13. package/dist/Autocomplete.js +130 -0
  14. package/dist/Autocomplete.js.map +1 -0
  15. package/dist/Autocomplete.jsx +116 -0
  16. package/dist/Autocomplete.jsx.map +1 -0
  17. package/dist/Breadcrumbs.d.ts.map +1 -1
  18. package/dist/Breadcrumbs.js +334 -0
  19. package/dist/Breadcrumbs.js.map +1 -0
  20. package/dist/Breadcrumbs.jsx +266 -0
  21. package/dist/Breadcrumbs.jsx.map +1 -0
  22. package/dist/Button.d.ts.map +1 -1
  23. package/dist/Button.js +348 -0
  24. package/dist/Button.js.map +1 -0
  25. package/dist/Button.jsx +314 -0
  26. package/dist/Button.jsx.map +1 -0
  27. package/dist/Calendar.d.ts +4 -4
  28. package/dist/Calendar.d.ts.map +1 -1
  29. package/dist/Calendar.js +538 -0
  30. package/dist/Calendar.js.map +1 -0
  31. package/dist/Calendar.jsx +333 -0
  32. package/dist/Calendar.jsx.map +1 -0
  33. package/dist/CalendarPicker.d.ts +33 -0
  34. package/dist/CalendarPicker.d.ts.map +1 -0
  35. package/dist/CalendarPicker.js +44 -0
  36. package/dist/CalendarPicker.js.map +1 -0
  37. package/dist/CalendarPicker.jsx +44 -0
  38. package/dist/CalendarPicker.jsx.map +1 -0
  39. package/dist/Checkbox.d.ts +83 -4
  40. package/dist/Checkbox.d.ts.map +1 -1
  41. package/dist/Checkbox.js +923 -0
  42. package/dist/Checkbox.js.map +1 -0
  43. package/dist/Checkbox.jsx +707 -0
  44. package/dist/Checkbox.jsx.map +1 -0
  45. package/dist/Collection.d.ts.map +1 -1
  46. package/dist/Collection.js +202 -0
  47. package/dist/Collection.js.map +1 -0
  48. package/dist/Collection.jsx +152 -0
  49. package/dist/Collection.jsx.map +1 -0
  50. package/dist/Color.d.ts.map +1 -1
  51. package/dist/Color.js +1720 -0
  52. package/dist/Color.js.map +1 -0
  53. package/dist/Color.jsx +1344 -0
  54. package/dist/Color.jsx.map +1 -0
  55. package/dist/ColorEditor.js +208 -0
  56. package/dist/ColorEditor.js.map +1 -0
  57. package/dist/ColorEditor.jsx +120 -0
  58. package/dist/ColorEditor.jsx.map +1 -0
  59. package/dist/ComboBox.d.ts +4 -4
  60. package/dist/ComboBox.d.ts.map +1 -1
  61. package/dist/ComboBox.js +992 -0
  62. package/dist/ComboBox.js.map +1 -0
  63. package/dist/ComboBox.jsx +714 -0
  64. package/dist/ComboBox.jsx.map +1 -0
  65. package/dist/ContextualHelpTrigger.js +146 -0
  66. package/dist/ContextualHelpTrigger.js.map +1 -0
  67. package/dist/ContextualHelpTrigger.jsx +109 -0
  68. package/dist/ContextualHelpTrigger.jsx.map +1 -0
  69. package/dist/DateField.d.ts +3 -3
  70. package/dist/DateField.d.ts.map +1 -1
  71. package/dist/DateField.js +4 -0
  72. package/dist/DateField.jsx +4 -0
  73. package/dist/DateField2.js +499 -0
  74. package/dist/DateField2.js.map +1 -0
  75. package/dist/DateField2.jsx +317 -0
  76. package/dist/DateField2.jsx.map +1 -0
  77. package/dist/DatePicker.d.ts +4 -4
  78. package/dist/DatePicker.d.ts.map +1 -1
  79. package/dist/DatePicker.js +991 -0
  80. package/dist/DatePicker.js.map +1 -0
  81. package/dist/DatePicker.jsx +682 -0
  82. package/dist/DatePicker.jsx.map +1 -0
  83. package/dist/Dialog.d.ts.map +1 -1
  84. package/dist/Dialog.js +337 -0
  85. package/dist/Dialog.js.map +1 -0
  86. package/dist/Dialog.jsx +192 -0
  87. package/dist/Dialog.jsx.map +1 -0
  88. package/dist/Disclosure.d.ts.map +1 -1
  89. package/dist/Disclosure.js +328 -0
  90. package/dist/Disclosure.js.map +1 -0
  91. package/dist/Disclosure.jsx +230 -0
  92. package/dist/Disclosure.jsx.map +1 -0
  93. package/dist/DragAndDrop.d.ts.map +1 -1
  94. package/dist/DragAndDrop.js +176 -0
  95. package/dist/DragAndDrop.js.map +1 -0
  96. package/dist/DragAndDrop.jsx +160 -0
  97. package/dist/DragAndDrop.jsx.map +1 -0
  98. package/dist/DropZone.d.ts.map +1 -1
  99. package/dist/DropZone.js +189 -0
  100. package/dist/DropZone.js.map +1 -0
  101. package/dist/DropZone.jsx +144 -0
  102. package/dist/DropZone.jsx.map +1 -0
  103. package/dist/FieldError.js +66 -0
  104. package/dist/FieldError.js.map +1 -0
  105. package/dist/FieldError.jsx +47 -0
  106. package/dist/FieldError.jsx.map +1 -0
  107. package/dist/FileTrigger.js +79 -0
  108. package/dist/FileTrigger.js.map +1 -0
  109. package/dist/FileTrigger.jsx +49 -0
  110. package/dist/FileTrigger.jsx.map +1 -0
  111. package/dist/Focusable.js +70 -0
  112. package/dist/Focusable.js.map +1 -0
  113. package/dist/Focusable.jsx +69 -0
  114. package/dist/Focusable.jsx.map +1 -0
  115. package/dist/Form.js +99 -0
  116. package/dist/Form.js.map +1 -0
  117. package/dist/Form.jsx +73 -0
  118. package/dist/Form.jsx.map +1 -0
  119. package/dist/GridList.d.ts +34 -2
  120. package/dist/GridList.d.ts.map +1 -1
  121. package/dist/GridList.js +723 -0
  122. package/dist/GridList.js.map +1 -0
  123. package/dist/GridList.jsx +552 -0
  124. package/dist/GridList.jsx.map +1 -0
  125. package/dist/HiddenTimeInput.js +104 -0
  126. package/dist/HiddenTimeInput.js.map +1 -0
  127. package/dist/HiddenTimeInput.jsx +69 -0
  128. package/dist/HiddenTimeInput.jsx.map +1 -0
  129. package/dist/Icon.d.ts.map +1 -1
  130. package/dist/Icon.js +127 -0
  131. package/dist/Icon.js.map +1 -0
  132. package/dist/Icon.jsx +72 -0
  133. package/dist/Icon.jsx.map +1 -0
  134. package/dist/Keyboard.js +30 -0
  135. package/dist/Keyboard.js.map +1 -0
  136. package/dist/Keyboard.jsx +24 -0
  137. package/dist/Keyboard.jsx.map +1 -0
  138. package/dist/Landmark.js +134 -0
  139. package/dist/Landmark.js.map +1 -0
  140. package/dist/Landmark.jsx +118 -0
  141. package/dist/Landmark.jsx.map +1 -0
  142. package/dist/Link.d.ts.map +1 -1
  143. package/dist/Link.js +219 -0
  144. package/dist/Link.js.map +1 -0
  145. package/dist/Link.jsx +189 -0
  146. package/dist/Link.jsx.map +1 -0
  147. package/dist/ListBox.d.ts.map +1 -1
  148. package/dist/ListBox.js +670 -0
  149. package/dist/ListBox.js.map +1 -0
  150. package/dist/ListBox.jsx +508 -0
  151. package/dist/ListBox.jsx.map +1 -0
  152. package/dist/Menu.d.ts +27 -9
  153. package/dist/Menu.d.ts.map +1 -1
  154. package/dist/Menu.js +1254 -0
  155. package/dist/Menu.js.map +1 -0
  156. package/dist/Menu.jsx +1042 -0
  157. package/dist/Menu.jsx.map +1 -0
  158. package/dist/Meter.d.ts.map +1 -1
  159. package/dist/Meter.js +123 -0
  160. package/dist/Meter.js.map +1 -0
  161. package/dist/Meter.jsx +107 -0
  162. package/dist/Meter.jsx.map +1 -0
  163. package/dist/Modal.d.ts.map +1 -1
  164. package/dist/Modal.js +380 -0
  165. package/dist/Modal.js.map +1 -0
  166. package/dist/Modal.jsx +314 -0
  167. package/dist/Modal.jsx.map +1 -0
  168. package/dist/NumberField.d.ts +3 -3
  169. package/dist/NumberField.d.ts.map +1 -1
  170. package/dist/NumberField.js +573 -0
  171. package/dist/NumberField.js.map +1 -0
  172. package/dist/NumberField.jsx +443 -0
  173. package/dist/NumberField.jsx.map +1 -0
  174. package/dist/Popover.d.ts +10 -2
  175. package/dist/Popover.d.ts.map +1 -1
  176. package/dist/Popover.js +464 -0
  177. package/dist/Popover.js.map +1 -0
  178. package/dist/Popover.jsx +333 -0
  179. package/dist/Popover.jsx.map +1 -0
  180. package/dist/Pressable.js +69 -0
  181. package/dist/Pressable.js.map +1 -0
  182. package/dist/Pressable.jsx +68 -0
  183. package/dist/Pressable.jsx.map +1 -0
  184. package/dist/ProgressBar.d.ts.map +1 -1
  185. package/dist/ProgressBar.js +130 -0
  186. package/dist/ProgressBar.js.map +1 -0
  187. package/dist/ProgressBar.jsx +114 -0
  188. package/dist/ProgressBar.jsx.map +1 -0
  189. package/dist/RadioGroup.d.ts +82 -4
  190. package/dist/RadioGroup.d.ts.map +1 -1
  191. package/dist/RadioGroup.js +931 -0
  192. package/dist/RadioGroup.js.map +1 -0
  193. package/dist/RadioGroup.jsx +681 -0
  194. package/dist/RadioGroup.jsx.map +1 -0
  195. package/dist/RangeCalendar.d.ts.map +1 -1
  196. package/dist/RangeCalendar.js +410 -0
  197. package/dist/RangeCalendar.js.map +1 -0
  198. package/dist/RangeCalendar.jsx +253 -0
  199. package/dist/RangeCalendar.jsx.map +1 -0
  200. package/dist/RouterProvider.js +118 -0
  201. package/dist/RouterProvider.js.map +1 -0
  202. package/dist/RouterProvider.jsx +112 -0
  203. package/dist/RouterProvider.jsx.map +1 -0
  204. package/dist/SearchField.d.ts +2 -2
  205. package/dist/SearchField.d.ts.map +1 -1
  206. package/dist/SearchField.js +643 -0
  207. package/dist/SearchField.js.map +1 -0
  208. package/dist/SearchField.jsx +526 -0
  209. package/dist/SearchField.jsx.map +1 -0
  210. package/dist/Select.d.ts.map +1 -1
  211. package/dist/Select.js +1031 -0
  212. package/dist/Select.js.map +1 -0
  213. package/dist/Select.jsx +744 -0
  214. package/dist/Select.jsx.map +1 -0
  215. package/dist/SelectionIndicator.d.ts.map +1 -1
  216. package/dist/SelectionIndicator.js +86 -0
  217. package/dist/SelectionIndicator.js.map +1 -0
  218. package/dist/SelectionIndicator.jsx +50 -0
  219. package/dist/SelectionIndicator.jsx.map +1 -0
  220. package/dist/Separator.js +97 -0
  221. package/dist/Separator.js.map +1 -0
  222. package/dist/Separator.jsx +85 -0
  223. package/dist/Separator.jsx.map +1 -0
  224. package/dist/SharedElementTransition.d.ts.map +1 -1
  225. package/dist/SharedElementTransition.js +165 -0
  226. package/dist/SharedElementTransition.js.map +1 -0
  227. package/dist/SharedElementTransition.jsx +138 -0
  228. package/dist/SharedElementTransition.jsx.map +1 -0
  229. package/dist/Slider.d.ts +33 -1
  230. package/dist/Slider.d.ts.map +1 -1
  231. package/dist/Slider.js +515 -0
  232. package/dist/Slider.js.map +1 -0
  233. package/dist/Slider.jsx +403 -0
  234. package/dist/Slider.jsx.map +1 -0
  235. package/dist/StepList.js +198 -0
  236. package/dist/StepList.js.map +1 -0
  237. package/dist/StepList.jsx +141 -0
  238. package/dist/StepList.jsx.map +1 -0
  239. package/dist/Switch.d.ts +65 -2
  240. package/dist/Switch.d.ts.map +1 -1
  241. package/dist/Switch.js +534 -0
  242. package/dist/Switch.js.map +1 -0
  243. package/dist/Switch.jsx +393 -0
  244. package/dist/Switch.jsx.map +1 -0
  245. package/dist/Table.d.ts +48 -0
  246. package/dist/Table.d.ts.map +1 -1
  247. package/dist/Table.js +1759 -0
  248. package/dist/Table.js.map +1 -0
  249. package/dist/Table.jsx +1348 -0
  250. package/dist/Table.jsx.map +1 -0
  251. package/dist/Tabs.d.ts +0 -4
  252. package/dist/Tabs.d.ts.map +1 -1
  253. package/dist/Tabs.js +595 -0
  254. package/dist/Tabs.js.map +1 -0
  255. package/dist/Tabs.jsx +367 -0
  256. package/dist/Tabs.jsx.map +1 -0
  257. package/dist/TagGroup.d.ts.map +1 -1
  258. package/dist/TagGroup.js +378 -0
  259. package/dist/TagGroup.js.map +1 -0
  260. package/dist/TagGroup.jsx +270 -0
  261. package/dist/TagGroup.jsx.map +1 -0
  262. package/dist/Text.d.ts +18 -6
  263. package/dist/Text.d.ts.map +1 -1
  264. package/dist/Text.js +42 -0
  265. package/dist/Text.js.map +1 -0
  266. package/dist/Text.jsx +35 -0
  267. package/dist/Text.jsx.map +1 -0
  268. package/dist/TextField.d.ts +6 -6
  269. package/dist/TextField.d.ts.map +1 -1
  270. package/dist/TextField.js +436 -0
  271. package/dist/TextField.js.map +1 -0
  272. package/dist/TextField.jsx +403 -0
  273. package/dist/TextField.jsx.map +1 -0
  274. package/dist/TimeField.d.ts +3 -3
  275. package/dist/TimeField.d.ts.map +1 -1
  276. package/dist/TimeField.js +372 -0
  277. package/dist/TimeField.js.map +1 -0
  278. package/dist/TimeField.jsx +224 -0
  279. package/dist/TimeField.jsx.map +1 -0
  280. package/dist/Toast.d.ts +14 -0
  281. package/dist/Toast.d.ts.map +1 -1
  282. package/dist/Toast.js +551 -0
  283. package/dist/Toast.js.map +1 -0
  284. package/dist/Toast.jsx +361 -0
  285. package/dist/Toast.jsx.map +1 -0
  286. package/dist/ToggleButton.d.ts.map +1 -1
  287. package/dist/ToggleButton.js +123 -0
  288. package/dist/ToggleButton.js.map +1 -0
  289. package/dist/ToggleButton.jsx +88 -0
  290. package/dist/ToggleButton.jsx.map +1 -0
  291. package/dist/ToggleButtonGroup.d.ts.map +1 -1
  292. package/dist/ToggleButtonGroup.js +114 -0
  293. package/dist/ToggleButtonGroup.js.map +1 -0
  294. package/dist/ToggleButtonGroup.jsx +85 -0
  295. package/dist/ToggleButtonGroup.jsx.map +1 -0
  296. package/dist/Toolbar.js +112 -0
  297. package/dist/Toolbar.js.map +1 -0
  298. package/dist/Toolbar.jsx +92 -0
  299. package/dist/Toolbar.jsx.map +1 -0
  300. package/dist/Tooltip.d.ts.map +1 -1
  301. package/dist/Tooltip.js +539 -0
  302. package/dist/Tooltip.js.map +1 -0
  303. package/dist/Tooltip.jsx +465 -0
  304. package/dist/Tooltip.jsx.map +1 -0
  305. package/dist/Tree.d.ts +14 -2
  306. package/dist/Tree.d.ts.map +1 -1
  307. package/dist/Tree.js +1424 -0
  308. package/dist/Tree.js.map +1 -0
  309. package/dist/Tree.jsx +1172 -0
  310. package/dist/Tree.jsx.map +1 -0
  311. package/dist/Virtualizer.d.ts +16 -2
  312. package/dist/Virtualizer.d.ts.map +1 -1
  313. package/dist/Virtualizer.js +2 -0
  314. package/dist/Virtualizer.jsx +2 -0
  315. package/dist/Virtualizer2.js +751 -0
  316. package/dist/Virtualizer2.js.map +1 -0
  317. package/dist/Virtualizer2.jsx +730 -0
  318. package/dist/Virtualizer2.jsx.map +1 -0
  319. package/dist/VirtualizerLayouts.d.ts +18 -0
  320. package/dist/VirtualizerLayouts.d.ts.map +1 -1
  321. package/dist/VisuallyHidden.js +42 -0
  322. package/dist/VisuallyHidden.js.map +1 -0
  323. package/dist/VisuallyHidden.jsx +35 -0
  324. package/dist/VisuallyHidden.jsx.map +1 -0
  325. package/dist/contexts.js +33 -0
  326. package/dist/contexts.js.map +1 -0
  327. package/dist/contexts.jsx +33 -0
  328. package/dist/contexts.jsx.map +1 -0
  329. package/dist/index.d.ts +7 -6
  330. package/dist/index.d.ts.map +1 -1
  331. package/dist/index.js +70 -23932
  332. package/dist/index.jsx +70 -18337
  333. package/dist/useDragAndDrop.js +2 -0
  334. package/dist/useDragAndDrop.jsx +2 -0
  335. package/dist/useDragAndDrop2.js +395 -0
  336. package/dist/useDragAndDrop2.js.map +1 -0
  337. package/dist/useDragAndDrop2.jsx +395 -0
  338. package/dist/useDragAndDrop2.jsx.map +1 -0
  339. package/dist/utils.d.ts +83 -11
  340. package/dist/utils.d.ts.map +1 -1
  341. package/dist/utils.js +285 -0
  342. package/dist/utils.js.map +1 -0
  343. package/dist/utils.jsx +277 -0
  344. package/dist/utils.jsx.map +1 -0
  345. package/dist/virtualizer/Layout.js +144 -0
  346. package/dist/virtualizer/Layout.js.map +1 -0
  347. package/dist/virtualizer/Layout.jsx +144 -0
  348. package/dist/virtualizer/Layout.jsx.map +1 -0
  349. package/package.json +401 -4
  350. package/src/Breadcrumbs.tsx +3 -1
  351. package/src/Button.tsx +22 -2
  352. package/src/Calendar.tsx +27 -10
  353. package/src/CalendarPicker.tsx +73 -0
  354. package/src/Checkbox.tsx +539 -3
  355. package/src/Collection.tsx +9 -3
  356. package/src/Color.tsx +42 -14
  357. package/src/ComboBox.tsx +50 -6
  358. package/src/DateField.tsx +20 -2
  359. package/src/DatePicker.tsx +57 -5
  360. package/src/Dialog.tsx +13 -5
  361. package/src/Disclosure.tsx +3 -1
  362. package/src/DragAndDrop.tsx +3 -1
  363. package/src/DropZone.tsx +3 -1
  364. package/src/GridList.tsx +125 -24
  365. package/src/Icon.tsx +3 -1
  366. package/src/Link.tsx +3 -1
  367. package/src/ListBox.tsx +31 -4
  368. package/src/Menu.tsx +252 -128
  369. package/src/Meter.tsx +3 -1
  370. package/src/Modal.tsx +100 -52
  371. package/src/NumberField.tsx +51 -8
  372. package/src/Popover.tsx +40 -10
  373. package/src/ProgressBar.tsx +3 -1
  374. package/src/RadioGroup.tsx +468 -4
  375. package/src/RangeCalendar.tsx +3 -1
  376. package/src/SearchField.tsx +27 -3
  377. package/src/Select.tsx +22 -7
  378. package/src/SelectionIndicator.tsx +3 -1
  379. package/src/SharedElementTransition.tsx +3 -1
  380. package/src/Slider.tsx +159 -13
  381. package/src/Switch.tsx +395 -2
  382. package/src/Table.tsx +409 -95
  383. package/src/Tabs.tsx +16 -45
  384. package/src/TagGroup.tsx +3 -1
  385. package/src/Text.tsx +31 -10
  386. package/src/TextField.tsx +43 -5
  387. package/src/TimeField.tsx +20 -2
  388. package/src/Toast.tsx +79 -14
  389. package/src/ToggleButton.tsx +3 -1
  390. package/src/ToggleButtonGroup.tsx +3 -1
  391. package/src/Tooltip.tsx +3 -1
  392. package/src/Tree.tsx +77 -9
  393. package/src/Virtualizer.tsx +180 -31
  394. package/src/VirtualizerLayouts.ts +45 -10
  395. package/src/index.ts +50 -0
  396. package/src/utils.tsx +243 -27
  397. package/dist/index.js.map +0 -1
  398. package/dist/index.jsx.map +0 -1
@@ -0,0 +1 @@
1
+ {"version":3,"file":"Table.jsx","names":["mergeProps","isFocusVisible","isGlobalFocusVisible"],"sources":["../src/Table.tsx"],"sourcesContent":["/**\n * Table component for solidaria-components\n *\n * A pre-wired headless table that combines state + aria hooks.\n * Based on react-aria-components/src/Table.tsx\n */\n\nimport {\n type JSX,\n createContext,\n createEffect,\n createMemo,\n createUniqueId,\n createSignal,\n onCleanup,\n splitProps,\n untrack,\n useContext,\n For,\n Show,\n} from \"solid-js\";\nimport {\n createTable,\n createTableColumnHeader,\n createTableRow,\n createTableCell,\n createTableRowGroup,\n createTableSelectionCheckbox,\n createTableSelectAllCheckbox,\n createFocusRing,\n isFocusVisible as isGlobalFocusVisible,\n getTableData,\n createHover,\n mergeProps,\n type AriaTableProps,\n createTableColumnResize,\n} from \"@proyecto-viviana/solidaria\";\nimport {\n createTableState,\n createTreeGridState,\n createTableCollection,\n createTableColumnResizeState,\n type TableState,\n type TableCollection,\n type TableColumnResizeState,\n type Key,\n type SortDescriptor,\n type ColumnDefinition,\n type RowDefinition,\n type ColumnSize,\n type GridNode,\n type DropTarget,\n} from \"@proyecto-viviana/solid-stately\";\nimport {\n type RenderChildren,\n type ClassNameOrFunction,\n type StyleOrFunction,\n type SlotProps,\n dataAttr,\n useRenderProps,\n filterDOMProps,\n} from \"./utils\";\nimport { SharedElementTransition } from \"./SharedElementTransition\";\nimport { type DragAndDropHooks } from \"./useDragAndDrop\";\nimport { ButtonContext, type ButtonContextValue, type ButtonProps } from \"./Button\";\nimport {\n CollectionRendererContext,\n type CollectionRendererContextValue,\n useCollectionRenderer,\n} from \"./Collection\";\nimport { useVirtualizerContext } from \"./Virtualizer\";\nimport {\n type LinkDOMProps,\n type RouterOptions,\n useRouter,\n useLinkProps,\n type RouterClickModifiers,\n} from \"./RouterProvider\";\nimport {\n getNormalizedDropTargetKey,\n mergePersistedKeysIntoVirtualRange,\n useDndPersistedKeys,\n useRenderDropIndicator,\n} from \"./DragAndDrop\";\n\nexport interface TableRenderProps {\n /** Whether the table has focus. */\n isFocused: boolean;\n /** Whether the table has keyboard focus. */\n isFocusVisible: boolean;\n /** Whether the table is disabled. */\n isDisabled: boolean;\n /** Whether the table is empty. */\n isEmpty: boolean;\n}\n\ntype RefLike<T> = ((el: T) => void) | { current?: T | null } | undefined;\nexport type TableColumnDefinition<T = unknown> = Omit<ColumnDefinition<T>, \"key\" | \"children\"> & {\n /** React Spectrum-style alias for the column key. */\n id?: Key;\n key?: Key;\n children?: TableColumnDefinition<T>[];\n};\n\nfunction assignRef<T>(ref: RefLike<T>, el: T): void {\n if (!ref) return;\n if (typeof ref === \"function\") ref(el);\n else ref.current = el;\n}\n\nfunction normalizeColumnDefinitions<T>(\n columns: TableColumnDefinition<T>[],\n parentKey?: Key,\n): (ColumnDefinition<T> & { id?: Key })[] {\n return columns.map((column, index) => {\n const key = column.key ?? column.id ?? (parentKey == null ? index : `${parentKey}-${index}`);\n const id = column.id ?? column.key;\n\n return {\n ...column,\n key,\n id,\n children: column.children ? normalizeColumnDefinitions(column.children, key) : undefined,\n } as ColumnDefinition<T> & { id?: Key };\n });\n}\n\n/** Resolves a stable, unique key for a tree-grid item (keys must be unique across levels). */\nfunction resolveItemKey<T>(item: T, getKey: ((item: T) => Key) | undefined, index: number): Key {\n if (getKey) return getKey(item);\n const record = item as { id?: Key; key?: Key };\n return record.id ?? record.key ?? index;\n}\n\n/**\n * Turns the flat `items` into nested {@link RowDefinition}s by recursively expanding each\n * item's children via `getChildItems`. The result feeds the tree-grid collection.\n */\nfunction toTreeRowDefinitions<T>(\n items: Iterable<T>,\n getKey: ((item: T) => Key) | undefined,\n getChildItems: ((item: T) => Iterable<T> | undefined) | undefined,\n): RowDefinition<T>[] {\n return Array.from(items).map((item, index) => {\n const childItems = getChildItems?.(item);\n const childRows = childItems\n ? toTreeRowDefinitions(childItems, getKey, getChildItems)\n : undefined;\n return {\n key: resolveItemKey(item, getKey, index),\n value: item,\n childRows: childRows && childRows.length > 0 ? childRows : undefined,\n };\n });\n}\n\nfunction getRowHeaderColumnKeys<T>(columns: (ColumnDefinition<T> & { id?: Key })[]): Set<Key> {\n const keys = new Set<Key>();\n\n for (const column of columns) {\n if (column.isRowHeader) {\n keys.add(column.key);\n }\n\n if (column.children) {\n for (const key of getRowHeaderColumnKeys(\n column.children as (ColumnDefinition<T> & {\n id?: Key;\n })[],\n )) {\n keys.add(key);\n }\n }\n }\n\n return keys;\n}\n\nexport interface TableProps<T extends object> extends Omit<AriaTableProps, \"children\">, SlotProps {\n /** The data items to render in the table. */\n items: T[];\n /** The column definitions. */\n columns: TableColumnDefinition<T>[];\n /** Function to get the key from an item. */\n getKey?: (item: T) => Key;\n /** Function to get the text value from an item for a column. */\n getTextValue?: (item: T, column: TableColumnDefinition<T>) => string;\n /** The selection mode. */\n selectionMode?: \"none\" | \"single\" | \"multiple\";\n /** The selection behavior (toggle vs replace). */\n selectionBehavior?: \"toggle\" | \"replace\";\n /** Whether disabled rows remain focusable. */\n disabledBehavior?: \"selection\" | \"all\";\n /** Whether Escape clears selection. */\n escapeKeyBehavior?: \"clearSelection\" | \"none\";\n /** Keys of disabled items. */\n disabledKeys?: Iterable<Key>;\n /** Currently selected keys (controlled). */\n selectedKeys?: \"all\" | Iterable<Key>;\n /** Default selected keys (uncontrolled). */\n defaultSelectedKeys?: \"all\" | Iterable<Key>;\n /** Handler called when selection changes. */\n onSelectionChange?: (keys: \"all\" | Set<Key>) => void;\n /** The current sort descriptor. */\n sortDescriptor?: SortDescriptor;\n /** Handler called when sort changes. */\n onSortChange?: (descriptor: SortDescriptor) => void;\n /** Whether to show selection checkboxes. */\n showSelectionCheckboxes?: boolean;\n /** The children of the component. */\n children?: JSX.Element | RenderChildren<TableRenderProps>;\n /** The CSS className for the element. */\n class?: ClassNameOrFunction<TableRenderProps>;\n /** The inline style for the element. */\n style?: StyleOrFunction<TableRenderProps>;\n /** A function to render when the table is empty. */\n renderEmptyState?: () => JSX.Element;\n /** Ref for the table element. */\n ref?: RefLike<HTMLTableElement>;\n /** Custom renderer for the table element. */\n render?: (\n props: JSX.HTMLAttributes<HTMLTableElement>,\n renderProps: TableRenderProps,\n ) => JSX.Element;\n /** Drag and drop hooks from `useDragAndDrop`. */\n dragAndDropHooks?: DragAndDropHooks<T>;\n /**\n * Derives the child rows of an item, turning the flat `items` into a tree grid\n * (expandable rows). Providing this — or any `UNSTABLE_*expandedKeys` prop — switches the\n * table into tree-grid mode. Mirrors `@react-aria/table`'s `UNSTABLE_` tree-grid feature.\n */\n UNSTABLE_childItems?: (item: T) => Iterable<T> | undefined;\n /** The currently expanded row keys (controlled). Tree grid only. */\n UNSTABLE_expandedKeys?: \"all\" | Iterable<Key>;\n /** The initial expanded row keys (uncontrolled). Tree grid only. */\n UNSTABLE_defaultExpandedKeys?: \"all\" | Iterable<Key>;\n /** Handler called when rows are expanded or collapsed. Tree grid only. */\n UNSTABLE_onExpandedChange?: (keys: Set<Key>) => void;\n}\n\nexport interface TableHeaderRenderProps {\n /** Whether the header has focus. */\n isFocused: boolean;\n /** Whether the header is being hovered. */\n isHovered: boolean;\n}\n\nexport interface TableHeaderProps extends SlotProps {\n /** The children (usually TableColumn components). */\n children?: JSX.Element;\n /** The CSS className for the element. */\n class?: ClassNameOrFunction<TableHeaderRenderProps>;\n /** The inline style for the element. */\n style?: StyleOrFunction<TableHeaderRenderProps>;\n /** Ref for the table header element. */\n ref?: RefLike<HTMLTableSectionElement>;\n /** Custom renderer for the table header element. */\n render?: (\n props: JSX.HTMLAttributes<HTMLTableSectionElement>,\n renderProps: TableHeaderRenderProps,\n ) => JSX.Element;\n}\n\nexport interface TableColumnRenderProps {\n /** Whether the column is focused. */\n isFocused: boolean;\n /** Whether the column has keyboard focus. */\n isFocusVisible: boolean;\n /** Whether the column is sortable. */\n isSortable: boolean;\n /** The current sort direction ('ascending', 'descending', or undefined). */\n sortDirection: \"ascending\" | \"descending\" | undefined;\n /** Whether the column is being hovered. */\n isHovered: boolean;\n /** Whether the column allows resizing. */\n allowsResizing: boolean;\n /** Whether the column is currently being resized. */\n isResizing: boolean;\n}\n\nexport interface TableColumnProps extends SlotProps {\n /** The unique key for the column. */\n id: Key;\n /** Whether the column allows sorting. */\n allowsSorting?: boolean;\n /** Whether the column allows resizing. */\n allowsResizing?: boolean;\n /** Column width (number for px, string for 'Xfr', 'X%', 'Xpx'). */\n width?: ColumnSize;\n /** Default width for uncontrolled mode. */\n defaultWidth?: ColumnSize;\n /** Minimum column width in px. */\n minWidth?: number;\n /** Maximum column width in px. */\n maxWidth?: number;\n /** The children of the column. */\n children?: RenderChildren<TableColumnRenderProps>;\n /** The CSS className for the element. */\n class?: ClassNameOrFunction<TableColumnRenderProps>;\n /** The inline style for the element. */\n style?: StyleOrFunction<TableColumnRenderProps>;\n /** Ref for the column header element. */\n ref?: RefLike<HTMLTableCellElement>;\n /** Custom renderer for the column header element. */\n render?: (\n props: JSX.ThHTMLAttributes<HTMLTableCellElement>,\n renderProps: TableColumnRenderProps,\n ) => JSX.Element;\n}\n\nexport interface TableBodyRenderProps {\n /** Whether the body is empty. */\n isEmpty: boolean;\n}\n\nexport interface TableBodyProps<T> extends SlotProps {\n /** The items to render. If not provided, uses items from Table. */\n items?: T[];\n /** The children (usually a render function for TableRow). */\n children?: (item: T) => JSX.Element;\n /** The CSS className for the element. */\n class?: ClassNameOrFunction<TableBodyRenderProps>;\n /** The inline style for the element. */\n style?: StyleOrFunction<TableBodyRenderProps>;\n /** A function to render when the body is empty. */\n renderEmptyState?: () => JSX.Element;\n /** Whether there are more rows to load. */\n hasMore?: boolean;\n /** Whether additional rows are currently loading. */\n isLoading?: boolean;\n /** Called when the load more sentinel becomes visible. */\n onLoadMore?: () => void | Promise<void>;\n /** Ref for the table body element. */\n ref?: RefLike<HTMLTableSectionElement>;\n /** Custom renderer for the table body element. */\n render?: (\n props: JSX.HTMLAttributes<HTMLTableSectionElement>,\n renderProps: TableBodyRenderProps,\n ) => JSX.Element;\n}\n\nexport interface TableFooterRenderProps {\n /** Whether the footer has no items. */\n isEmpty: boolean;\n}\n\nexport interface TableFooterProps<T> extends SlotProps {\n /** The footer items to render. */\n items?: T[];\n /** The children, or a render function when `items` is provided. */\n children?: JSX.Element | ((item: T) => JSX.Element);\n /** The CSS className for the element. */\n class?: ClassNameOrFunction<TableFooterRenderProps>;\n /** The inline style for the element. */\n style?: StyleOrFunction<TableFooterRenderProps>;\n}\n\nexport interface TableRowRenderProps {\n /** Whether the row is selected. */\n isSelected: boolean;\n /** Whether the row is focused. */\n isFocused: boolean;\n /** Whether the row has keyboard focus. */\n isFocusVisible: boolean;\n /** Whether the row is pressed. */\n isPressed: boolean;\n /** Whether the row is hovered. */\n isHovered: boolean;\n /** Whether the row is disabled. */\n isDisabled: boolean;\n /**\n * Whether the row is expanded (tree grid only; `false` for a flat table).\n * @selector [data-expanded]\n */\n isExpanded: boolean;\n /**\n * Whether the row has child rows (tree grid only; `false` for a flat table).\n * @selector [data-has-child-items]\n */\n hasChildItems: boolean;\n /**\n * The 1-based nesting depth of the row within the table (1 for a flat table).\n * @selector [data-level]\n */\n level: number;\n}\n\nexport interface TableRowProps<T> extends SlotProps {\n /** The unique key for the row. */\n id?: Key;\n /** The item value. */\n item?: T;\n /** Columns to render when children is a column render function. */\n columns?: TableColumnDefinition<T>[];\n /** Whether the row is disabled. */\n isDisabled?: boolean;\n /** The children of the row (usually TableCell components). */\n children?:\n | JSX.Element\n | RenderChildren<TableRowRenderProps>\n | ((column: TableColumnDefinition<T>) => JSX.Element);\n /** The CSS className for the element. */\n class?: ClassNameOrFunction<TableRowRenderProps>;\n /** The inline style for the element. */\n style?: StyleOrFunction<TableRowRenderProps>;\n /** Handler called when the row is activated (double-click or Enter). */\n onAction?: () => void;\n /** The URL this row links to. */\n href?: string;\n /** Link target for linked rows. */\n target?: LinkDOMProps[\"target\"];\n /** Link relationship for linked rows. */\n rel?: LinkDOMProps[\"rel\"];\n /** Download attribute for linked rows. */\n download?: LinkDOMProps[\"download\"];\n /** Ping attribute for linked rows. */\n ping?: LinkDOMProps[\"ping\"];\n /** Referrer policy for linked rows. */\n referrerPolicy?: LinkDOMProps[\"referrerPolicy\"];\n /** Router options for linked rows. */\n routerOptions?: RouterOptions;\n /** Ref for the table row element. */\n ref?: RefLike<HTMLTableRowElement>;\n /** Custom renderer for the table row element. */\n render?: (\n props: JSX.HTMLAttributes<HTMLTableRowElement>,\n renderProps: TableRowRenderProps,\n ) => JSX.Element;\n}\n\nexport interface TableCellRenderProps {\n /** Whether the cell is focused. */\n isFocused: boolean;\n /** Whether the cell has keyboard focus. */\n isFocusVisible: boolean;\n /** The zero-based column index for the cell. */\n columnIndex: number;\n /** Whether the cell is pressed. */\n isPressed: boolean;\n /** Whether the cell is hovered. */\n isHovered: boolean;\n /**\n * Whether the cell is in the tree column — the one that renders the expand/collapse\n * chevron and nesting indentation (tree grid only; `false` for a flat table).\n * @selector [data-tree-column]\n */\n isTreeColumn: boolean;\n /**\n * Whether the cell's row is expanded (tree grid only; `false` for a flat table).\n * @selector [data-expanded]\n */\n isExpanded: boolean;\n /**\n * Whether the cell's row has child rows (tree grid only; `false` for a flat table).\n * @selector [data-has-child-items]\n */\n hasChildItems: boolean;\n /**\n * The 1-based nesting depth of the cell's row within the table (1 for a flat table).\n * @selector [data-level]\n */\n level: number;\n}\n\nexport interface TableCellProps extends SlotProps {\n /** The unique key for the cell. */\n id?: Key;\n /** Number of columns spanned by the cell. */\n colSpan?: number;\n /** The children of the cell. */\n children?: RenderChildren<TableCellRenderProps>;\n /** The CSS className for the element. */\n class?: ClassNameOrFunction<TableCellRenderProps>;\n /** The inline style for the element. */\n style?: StyleOrFunction<TableCellRenderProps>;\n /** Ref for the table cell element. */\n ref?: RefLike<HTMLTableCellElement>;\n /** Custom renderer for the table cell element. */\n render?: (\n props: JSX.TdHTMLAttributes<HTMLTableCellElement>,\n renderProps: TableCellRenderProps,\n ) => JSX.Element;\n}\n\nexport interface TableLoadMoreItemProps extends SlotProps {\n onLoadMore: () => void | Promise<void>;\n isLoading?: boolean;\n /** Scroll offset multiplier for early loading trigger (default: 1 = 100% of viewport height). */\n scrollOffset?: number;\n colSpan?: number;\n children?: JSX.Element;\n class?: ClassNameOrFunction<{ isLoading: boolean }>;\n style?: StyleOrFunction<{ isLoading: boolean }>;\n}\n\ninterface TableContextValue<T extends object> {\n state: TableState<T, TableCollection<T>>;\n collection: TableCollection<T>;\n items: T[];\n columns: (ColumnDefinition<T> & { id?: Key })[];\n isDisabled: boolean;\n showSelectionCheckboxes: boolean;\n dragAndDropHooks?: DragAndDropHooks<T>;\n dragState?: unknown;\n dropState?: unknown;\n isVirtualized: boolean;\n}\n\nexport const TableContext = createContext<TableContextValue<object> | null>(null);\nexport const TableStateContext = createContext<TableState<object, TableCollection<object>> | null>(\n null,\n);\n/** The resize context carries a getter for the resize state. The getter may return null before columns register. */\nexport const TableColumnResizeStateContext = createContext<{\n getState: () => TableColumnResizeState | null;\n getCallbacks?: () => {\n onResizeStart?: (widths: Map<Key, number>) => void;\n onResize?: (widths: Map<Key, number>) => void;\n onResizeEnd?: (widths: Map<Key, number>) => void;\n };\n} | null>(null);\n\ninterface TableRowContextValue {\n rowKey: Key;\n rowNode: GridNode<unknown>;\n getCellColumnKey(cellId: string, explicitId?: Key): Key | undefined;\n}\n\nexport const TableRowContext = createContext<TableRowContextValue | null>(null);\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 function Table<T extends object>(props: TableProps<T>): JSX.Element {\n const [local, stateProps, ariaProps] = splitProps(\n props,\n [\"class\", \"style\", \"render\", \"slot\", \"renderEmptyState\", \"dragAndDropHooks\", \"ref\"],\n [\n \"items\",\n \"columns\",\n \"getKey\",\n \"getTextValue\",\n \"disabledKeys\",\n \"disabledBehavior\",\n \"escapeKeyBehavior\",\n \"selectionMode\",\n \"selectionBehavior\",\n \"selectedKeys\",\n \"defaultSelectedKeys\",\n \"onSelectionChange\",\n \"sortDescriptor\",\n \"onSortChange\",\n \"showSelectionCheckboxes\",\n \"UNSTABLE_childItems\",\n \"UNSTABLE_expandedKeys\",\n \"UNSTABLE_defaultExpandedKeys\",\n \"UNSTABLE_onExpandedChange\",\n ],\n );\n\n const [ref, setRef] = createSignal<HTMLTableElement | null>(null);\n const normalizedColumns = createMemo(() => normalizeColumnDefinitions(stateProps.columns));\n const rowHeaderColumnKeys = createMemo(() => getRowHeaderColumnKeys(normalizedColumns()));\n\n // Tree-grid mode is selected structurally by the presence of any expansion prop. Like\n // controlled-vs-uncontrolled, this is a one-time decision, not a reactive toggle.\n const isTreeGrid =\n stateProps.UNSTABLE_childItems !== undefined ||\n stateProps.UNSTABLE_expandedKeys !== undefined ||\n stateProps.UNSTABLE_defaultExpandedKeys !== undefined ||\n stateProps.UNSTABLE_onExpandedChange !== undefined;\n\n const getTextValue = () =>\n stateProps.getTextValue as ((item: T, column: ColumnDefinition<T>) => string) | undefined;\n\n const state: TableState<T, TableCollection<T>> = isTreeGrid\n ? createTreeGridState<T, TableCollection<T>>(() => ({\n columns: normalizedColumns(),\n rows: toTreeRowDefinitions(\n stateProps.items,\n stateProps.getKey,\n stateProps.UNSTABLE_childItems,\n ),\n getKey: stateProps.getKey,\n getTextValue: getTextValue(),\n showSelectionCheckboxes: stateProps.showSelectionCheckboxes ?? false,\n rowHeaderColumnKeys: rowHeaderColumnKeys().size > 0 ? rowHeaderColumnKeys() : undefined,\n disabledKeys: stateProps.disabledKeys,\n disabledBehavior: stateProps.disabledBehavior,\n selectionMode: stateProps.selectionMode,\n selectionBehavior: stateProps.selectionBehavior,\n selectedKeys: stateProps.selectedKeys,\n defaultSelectedKeys: stateProps.defaultSelectedKeys,\n onSelectionChange: stateProps.onSelectionChange,\n sortDescriptor: stateProps.sortDescriptor,\n onSortChange: stateProps.onSortChange,\n UNSTABLE_expandedKeys: stateProps.UNSTABLE_expandedKeys,\n UNSTABLE_defaultExpandedKeys: stateProps.UNSTABLE_defaultExpandedKeys,\n UNSTABLE_onExpandedChange: stateProps.UNSTABLE_onExpandedChange,\n }))\n : createTableState<T, TableCollection<T>>(() => ({\n collection: createTableCollection<T>({\n columns: normalizedColumns(),\n rows: stateProps.items,\n getKey: stateProps.getKey,\n getTextValue: getTextValue(),\n showSelectionCheckboxes: stateProps.showSelectionCheckboxes ?? false,\n rowHeaderColumnKeys: rowHeaderColumnKeys().size > 0 ? rowHeaderColumnKeys() : undefined,\n }),\n disabledKeys: stateProps.disabledKeys,\n disabledBehavior: stateProps.disabledBehavior,\n selectionMode: stateProps.selectionMode,\n selectionBehavior: stateProps.selectionBehavior,\n selectedKeys: stateProps.selectedKeys,\n defaultSelectedKeys: stateProps.defaultSelectedKeys,\n onSelectionChange: stateProps.onSelectionChange,\n sortDescriptor: stateProps.sortDescriptor,\n onSortChange: stateProps.onSortChange,\n showSelectionCheckboxes: stateProps.showSelectionCheckboxes,\n }));\n const collection = () => state.collection;\n const parentCollectionRenderer = useCollectionRenderer<T>();\n\n const { gridProps } = createTable<T>(\n () => ({\n id: ariaProps.id,\n \"aria-label\": ariaProps[\"aria-label\"],\n \"aria-labelledby\": ariaProps[\"aria-labelledby\"],\n \"aria-describedby\": ariaProps[\"aria-describedby\"],\n isVirtualized: ariaProps.isVirtualized ?? parentCollectionRenderer?.isVirtualized,\n onRowAction: ariaProps.onRowAction,\n onCellAction: ariaProps.onCellAction,\n shouldSelectOnPressUp: ariaProps.shouldSelectOnPressUp,\n focusMode: ariaProps.focusMode,\n escapeKeyBehavior: stateProps.escapeKeyBehavior,\n }),\n () => state,\n ref,\n );\n\n const { isFocused, isFocusVisible, focusProps } = createFocusRing();\n\n const renderValues = createMemo<TableRenderProps>(() => ({\n isFocused: state.isFocused || isFocused(),\n isFocusVisible: isFocusVisible(),\n isDisabled: false, // Tables don't have a global disabled state\n isEmpty: stateProps.items.length === 0,\n }));\n\n // Resolve render props (class and style only — children rendered directly in JSX\n // to avoid eager evaluation before context providers mount)\n const renderProps = useRenderProps(\n {\n class: local.class,\n style: local.style,\n defaultClassName: \"solidaria-Table\",\n },\n renderValues,\n );\n\n const domProps = createMemo(() => {\n const filtered = filterDOMProps(ariaProps as Record<string, unknown>, { global: true });\n return filtered;\n });\n\n const cleanGridProps = () => {\n const { ref: _ref1, ...rest } = gridProps as Record<string, unknown>;\n return rest;\n };\n const cleanFocusProps = () => {\n const { ref: _ref2, ...rest } = focusProps as Record<string, unknown>;\n return rest;\n };\n const getItemNodes = createMemo(() =>\n Array.from(state.collection).filter((node) => node.type === \"item\"),\n );\n const getDropTargetByIndex = (\n index: number,\n position: \"before\" | \"after\" | \"on\",\n ): DropTarget | null => {\n const node = getItemNodes()[index];\n if (!node) return null;\n return { type: \"item\", key: node.key, dropPosition: position };\n };\n const hasDroppableDnd = createMemo(() => {\n const hooks = local.dragAndDropHooks;\n return Boolean(\n hooks?.useDroppableCollectionState &&\n hooks.useDroppableCollection &&\n (hooks.dropTargetDelegate ||\n parentCollectionRenderer?.dropTargetDelegate ||\n hooks.ListDropTargetDelegate),\n );\n });\n const hasDraggableDnd = createMemo(() => {\n const hooks = local.dragAndDropHooks;\n return Boolean(hooks?.useDraggableCollectionState && hooks.useDraggableCollection);\n });\n const dragState = createMemo(() => {\n if (!hasDraggableDnd()) return undefined;\n return local.dragAndDropHooks?.useDraggableCollectionState?.({\n items: stateProps.items,\n });\n });\n const dropState = createMemo(() => {\n if (!hasDroppableDnd()) return undefined;\n return local.dragAndDropHooks?.useDroppableCollectionState?.({});\n });\n createEffect(() => {\n if (!hasDraggableDnd()) return;\n const hooks = local.dragAndDropHooks;\n const activeDragState = dragState();\n if (!hooks?.useDraggableCollection || !activeDragState) return;\n hooks.useDraggableCollection({}, activeDragState, () => ref());\n });\n const droppableCollection = createMemo(() => {\n if (!hasDroppableDnd()) return undefined;\n const hooks = local.dragAndDropHooks;\n const activeDropState = dropState();\n if (!hooks?.useDroppableCollection || !activeDropState) return undefined;\n const resolveDirection = (): \"ltr\" | \"rtl\" => {\n const el = ref();\n if (el && typeof window !== \"undefined\" && typeof window.getComputedStyle === \"function\") {\n const dir = window.getComputedStyle(el).direction;\n if (dir === \"rtl\") return \"rtl\";\n }\n return typeof document !== \"undefined\" && document.dir === \"rtl\" ? \"rtl\" : \"ltr\";\n };\n const dropTargetDelegate =\n hooks.dropTargetDelegate ??\n parentCollectionRenderer?.dropTargetDelegate ??\n (hooks.ListDropTargetDelegate\n ? new hooks.ListDropTargetDelegate(\n () => state.collection,\n () => ref(),\n { layout: \"grid\", orientation: \"vertical\", direction: resolveDirection() },\n )\n : undefined);\n if (!dropTargetDelegate) return undefined;\n return hooks.useDroppableCollection(\n {\n dropTargetDelegate,\n keyboardDelegate: {\n getFirstKey: () => state.collection.getFirstKey?.() ?? null,\n getLastKey: () => state.collection.getLastKey?.() ?? null,\n getKeyBelow: (key) => state.collection.getKeyAfter?.(key) ?? null,\n getKeyAbove: (key) => state.collection.getKeyBefore?.(key) ?? null,\n getKeyLeftOf: (key) =>\n resolveDirection() === \"rtl\"\n ? (state.collection.getKeyAfter?.(key) ?? null)\n : (state.collection.getKeyBefore?.(key) ?? null),\n getKeyRightOf: (key) =>\n resolveDirection() === \"rtl\"\n ? (state.collection.getKeyBefore?.(key) ?? null)\n : (state.collection.getKeyAfter?.(key) ?? null),\n getKeyPageBelow: (key) => state.collection.getKeyAfter?.(key) ?? null,\n getKeyPageAbove: (key) => state.collection.getKeyBefore?.(key) ?? null,\n },\n get collection() {\n return state.collection;\n },\n get selectedKeys() {\n return state.selectedKeys;\n },\n setSelectedKeys: (keys: Set<Key>) => {\n if (state.selectionMode === \"none\") return;\n state.clearSelection();\n for (const key of keys) {\n state.toggleSelection(key);\n }\n },\n setFocusedKey: (key) => state.setFocusedKey(key),\n },\n activeDropState,\n () => ref(),\n );\n });\n const isRootDropTarget = createMemo(() => {\n return Boolean(dropState()?.target?.type === \"root\");\n });\n const dndRenderDropIndicator = createMemo(() =>\n useRenderDropIndicator(local.dragAndDropHooks, dropState()),\n );\n const dndDropIndicator = (index: number, position: \"before\" | \"after\" | \"on\") => {\n const target = getDropTargetByIndex(index, position);\n if (!target || target.type !== \"item\") return undefined;\n return dndRenderDropIndicator()?.(target);\n };\n\n const contextValue: TableContextValue<T> = {\n state,\n get collection() {\n return collection();\n },\n get items() {\n return stateProps.items;\n },\n get columns() {\n return normalizedColumns();\n },\n isDisabled: false,\n get showSelectionCheckboxes() {\n return stateProps.showSelectionCheckboxes ?? false;\n },\n get dragAndDropHooks() {\n return local.dragAndDropHooks;\n },\n get dragState() {\n return dragState();\n },\n get dropState() {\n return dropState();\n },\n get isVirtualized() {\n return ariaProps.isVirtualized ?? parentCollectionRenderer?.isVirtualized ?? false;\n },\n };\n const collectionRenderer = createMemo<CollectionRendererContextValue<unknown>>(() => ({\n ...parentCollectionRenderer,\n renderItem: (item) => item as JSX.Element,\n renderDropIndicator: (index: number, position: \"before\" | \"after\" | \"on\") =>\n dndDropIndicator(index, position) ??\n parentCollectionRenderer?.renderDropIndicator?.(index, position),\n }));\n // The root children function builds the structural `<TableHeader>`/`<TableBody>`\n // subtree once. React re-invokes it on every render and reconciles the result, so\n // reading focus-dependent render values (isFocused/isFocusVisible) there is cheap.\n // Solid has no reconciliation: re-invoking recreates the entire thead/tbody subtree,\n // which detaches the DOM-focused row and drops keyboard focus (Space/Enter never reach\n // the row). So invoke it with an untracked snapshot of the render values — the insert\n // below stays stable across focus changes while children still see current values at\n // creation. Render values for collection structure are not reactive in practice.\n const tableChildren = () =>\n typeof props.children === \"function\" ? props.children(untrack(renderValues)) : props.children;\n const tableProps = () =>\n ({\n ref: (el: HTMLTableElement) => {\n setRef(el);\n assignRef(local.ref, el);\n },\n ...mergeProps(\n domProps(),\n cleanGridProps(),\n cleanFocusProps(),\n (droppableCollection()?.collectionProps as Record<string, unknown> | undefined) ?? {},\n ),\n class: renderProps.class(),\n style: renderProps.style(),\n \"data-focused\": state.isFocused || undefined,\n \"data-focus-visible\": isFocusVisible() || undefined,\n \"data-empty\": stateProps.items.length === 0 || undefined,\n \"data-drop-target\": isRootDropTarget() || undefined,\n slot: local.slot,\n }) as JSX.HTMLAttributes<HTMLTableElement>;\n\n return (\n <TableContext.Provider value={contextValue as unknown as TableContextValue<object>}>\n <TableStateContext.Provider\n value={state as unknown as TableState<object, TableCollection<object>>}\n >\n <CollectionRendererContext.Provider value={collectionRenderer()}>\n {local.render ? (\n local.render({ ...tableProps(), children: tableChildren() }, renderValues())\n ) : (\n <table {...tableProps()}>{tableChildren()}</table>\n )}\n </CollectionRendererContext.Provider>\n </TableStateContext.Provider>\n </TableContext.Provider>\n );\n}\n\n/**\n * A header row in a table containing column headers.\n */\nexport function TableHeader(props: TableHeaderProps): JSX.Element {\n const [local, domProps] = splitProps(props, [\n \"class\",\n \"style\",\n \"render\",\n \"slot\",\n \"children\",\n \"ref\",\n ]);\n\n const context = useContext(TableContext);\n if (!context) {\n throw new Error(\"TableHeader must be used within a Table\");\n }\n\n const { rowGroupProps } = createTableRowGroup(() => ({ type: \"thead\" }));\n\n const { isHovered, hoverProps } = createHover({\n isDisabled: false,\n onHoverStart(e) {\n (domProps as Record<string, (e: unknown) => void>).onHoverStart?.(e);\n },\n onHoverEnd(e) {\n (domProps as Record<string, (e: unknown) => void>).onHoverEnd?.(e);\n },\n onHoverChange(isHovering) {\n (domProps as Record<string, (isHovering: boolean) => void>).onHoverChange?.(isHovering);\n },\n });\n\n const renderValues = createMemo<TableHeaderRenderProps>(() => ({\n isFocused: false,\n isHovered: isHovered(),\n }));\n\n const renderProps = useRenderProps(\n {\n class: local.class,\n style: local.style,\n defaultClassName: \"solidaria-Table-header\",\n },\n renderValues,\n );\n\n const cleanRowGroupProps = () => {\n const { ref: _ref, ...rest } = rowGroupProps as Record<string, unknown>;\n return rest;\n };\n const cleanHoverProps = () => {\n const { ref: _ref, ...rest } = hoverProps as Record<string, unknown>;\n return rest;\n };\n\n const headerProps = () =>\n ({\n ref: (el: HTMLTableSectionElement) => assignRef(local.ref, el),\n ...domProps,\n ...cleanRowGroupProps(),\n ...cleanHoverProps(),\n class: renderProps.class(),\n style: renderProps.style(),\n \"data-hovered\": isHovered() || undefined,\n children: <tr role=\"row\">{local.children}</tr>,\n }) as JSX.HTMLAttributes<HTMLTableSectionElement>;\n\n return local.render ? (\n local.render(headerProps(), renderValues())\n ) : (\n <thead\n ref={(el) => assignRef(local.ref, el)}\n {...domProps}\n {...cleanRowGroupProps()}\n {...cleanHoverProps()}\n class={renderProps.class()}\n style={renderProps.style()}\n data-hovered={isHovered() || undefined}\n >\n <tr role=\"row\">{local.children}</tr>\n </thead>\n );\n}\n\n/**\n * A column header in a table.\n */\nexport function TableColumn(props: TableColumnProps): JSX.Element {\n const [local, domProps] = splitProps(props, [\n \"class\",\n \"style\",\n \"render\",\n \"slot\",\n \"id\",\n \"allowsSorting\",\n \"allowsResizing\",\n \"width\",\n \"defaultWidth\",\n \"minWidth\",\n \"maxWidth\",\n \"children\",\n \"ref\",\n ]);\n\n const context = useContext(TableContext);\n if (!context) {\n throw new Error(\"TableColumn must be used within a Table\");\n }\n const { state, collection } = context;\n\n const [ref, setRef] = createSignal<HTMLTableCellElement | null>(null);\n\n const columnNode = createMemo(() => {\n const node = collection.getItem(local.id);\n if (!node) {\n return {\n type: \"column\" as const,\n key: local.id,\n value: null,\n textValue: String(local.id),\n level: 0,\n index: 0,\n hasChildNodes: false,\n childNodes: [],\n } as GridNode<unknown>;\n }\n return node;\n });\n\n const columnHeaderAria = createTableColumnHeader<object>(\n () => ({\n node: columnNode(),\n allowsSorting: local.allowsSorting,\n }),\n () => state as TableState<object, TableCollection<object>>,\n ref,\n );\n\n const { isHovered, hoverProps } = createHover({\n get isDisabled() {\n return !local.allowsSorting;\n },\n onHoverStart(e) {\n (domProps as Record<string, (e: unknown) => void>).onHoverStart?.(e);\n },\n onHoverEnd(e) {\n (domProps as Record<string, (e: unknown) => void>).onHoverEnd?.(e);\n },\n onHoverChange(isHovering) {\n (domProps as Record<string, (isHovering: boolean) => void>).onHoverChange?.(isHovering);\n },\n });\n\n const { isFocusVisible, focusProps } = createFocusRing();\n\n const sortDirection = createMemo(() => {\n const sortDescriptor = state.sortDescriptor;\n if (sortDescriptor?.column === local.id) {\n return sortDescriptor.direction;\n }\n return undefined;\n });\n\n const resizeCtx = useContext(TableColumnResizeStateContext);\n\n const isResizing = createMemo(() => {\n const rs = resizeCtx?.getState();\n if (!rs) return false;\n return rs.resizingColumn() === local.id;\n });\n\n const resizeWidth = createMemo(() => {\n const rs = resizeCtx?.getState();\n if (!rs) return undefined;\n const w = rs.getColumnWidth(local.id);\n return w > 0 ? w : undefined;\n });\n\n const renderValues = createMemo<TableColumnRenderProps>(() => ({\n isFocused: state.focusedKey === local.id,\n isFocusVisible: isFocusVisible() && state.focusedKey === local.id,\n isSortable: local.allowsSorting ?? false,\n sortDirection: sortDirection(),\n isHovered: isHovered(),\n allowsResizing: local.allowsResizing ?? false,\n isResizing: isResizing(),\n }));\n\n // Resolve render props (children rendered directly in JSX to avoid eager evaluation)\n const renderProps = useRenderProps(\n {\n class: local.class,\n style: local.style,\n defaultClassName: \"solidaria-Table-column\",\n },\n renderValues,\n );\n\n const cleanColumnHeaderProps = () => {\n const { ref: _ref1, ...rest } = columnHeaderAria.columnHeaderProps as Record<string, unknown>;\n return rest;\n };\n const cleanHoverProps = () => {\n const { ref: _ref2, ...rest } = hoverProps as Record<string, unknown>;\n return rest;\n };\n const cleanFocusProps = () => {\n const { ref: _ref3, ...rest } = focusProps as Record<string, unknown>;\n return rest;\n };\n\n const columnStyle = createMemo(() => {\n const base = renderProps.style();\n const rw = resizeWidth();\n if (rw == null) return base;\n const widthStyle = { width: `${rw}px`, \"min-width\": `${rw}px`, \"max-width\": `${rw}px` };\n if (!base) return widthStyle;\n if (typeof base === \"string\") return widthStyle; // fallback\n return { ...base, ...widthStyle };\n });\n\n const columnChildren = () =>\n typeof local.children === \"function\" ? local.children(renderValues()) : local.children;\n const columnProps = () =>\n ({\n ref: (el: HTMLTableCellElement) => {\n setRef(el);\n assignRef(local.ref, el);\n },\n ...domProps,\n ...mergeProps(cleanColumnHeaderProps(), cleanHoverProps(), cleanFocusProps()),\n class: renderProps.class(),\n style: columnStyle(),\n \"data-sortable\": local.allowsSorting || undefined,\n \"data-sort-direction\": sortDirection() || undefined,\n \"data-resizable\": local.allowsResizing || undefined,\n \"data-resizing\": isResizing() || undefined,\n \"data-hovered\": isHovered() || undefined,\n \"data-focused\": state.focusedKey === local.id || undefined,\n \"data-focus-visible\": (isFocusVisible() && state.focusedKey === local.id) || undefined,\n children: columnChildren(),\n }) as JSX.ThHTMLAttributes<HTMLTableCellElement>;\n\n return local.render ? (\n local.render(columnProps(), renderValues())\n ) : (\n <th\n ref={(el) => {\n setRef(el);\n assignRef(local.ref, el);\n }}\n {...domProps}\n {...mergeProps(cleanColumnHeaderProps(), cleanHoverProps(), cleanFocusProps())}\n class={renderProps.class()}\n style={columnStyle()}\n data-sortable={local.allowsSorting || undefined}\n data-sort-direction={sortDirection() || undefined}\n data-resizable={local.allowsResizing || undefined}\n data-resizing={isResizing() || undefined}\n data-hovered={isHovered() || undefined}\n data-focused={state.focusedKey === local.id || undefined}\n data-focus-visible={(isFocusVisible() && state.focusedKey === local.id) || undefined}\n >\n {columnChildren()}\n </th>\n );\n}\n\n/**\n * The body of a table containing data rows.\n */\nexport function TableBody<T extends object>(props: TableBodyProps<T>): JSX.Element {\n const [local, domProps] = splitProps(props, [\n \"items\",\n \"class\",\n \"style\",\n \"render\",\n \"slot\",\n \"renderEmptyState\",\n \"hasMore\",\n \"isLoading\",\n \"onLoadMore\",\n \"children\",\n \"ref\",\n ]);\n\n const context = useContext(TableContext);\n if (!context) {\n throw new Error(\"TableBody must be used within a Table\");\n }\n\n const { rowGroupProps } = createTableRowGroup(() => ({ type: \"tbody\" }));\n\n const items = createMemo(() => (local.items ?? context.items) as T[]);\n\n const renderValues = createMemo<TableBodyRenderProps>(() => ({\n isEmpty: items().length === 0,\n }));\n\n const renderProps = useRenderProps(\n {\n class: local.class,\n style: local.style,\n defaultClassName: \"solidaria-Table-body\",\n },\n renderValues,\n );\n\n const cleanRowGroupProps = () => {\n const { ref: _ref, ...rest } = rowGroupProps as Record<string, unknown>;\n return rest;\n };\n\n const isEmpty = () => items().length === 0;\n const virtualizer = useVirtualizerContext();\n const parentCollectionRenderer = useCollectionRenderer<T>();\n const rowNodes = createMemo(() =>\n Array.from(context.collection).filter((node) => node.type === \"item\"),\n );\n const persistedKeys = useDndPersistedKeys(\n { focusedKey: () => context.state.focusedKey },\n context.dragAndDropHooks,\n context.dropState as { target?: DropTarget | null } | undefined,\n context.collection,\n );\n const virtualRange = createMemo(() => {\n // Tree grids render every visible (flattened) row; virtual windowing is a follow-up.\n if (context.state.treeColumn != null) return null;\n if (!virtualizer || !parentCollectionRenderer?.isVirtualized) return null;\n const rowCount = items().length;\n const baseRange = virtualizer.getVisibleRange(rowCount);\n const persistedIndexes = Array.from(persistedKeys())\n .map((key) => rowNodes().findIndex((node) => node.key === key))\n .filter((index) => index >= 0);\n const dropTarget = (context.dropState as { target?: DropTarget | null } | undefined)?.target;\n const normalizedDropKey = getNormalizedDropTargetKey(dropTarget, context.collection);\n const focusedKey = context.state.focusedKey;\n const focusedIndex =\n focusedKey != null ? rowNodes().findIndex((node) => node.key === focusedKey) : -1;\n const forceIncludeIndexes = [\n dropTarget?.type === \"item\"\n ? rowNodes().findIndex((node) => node.key === dropTarget.key)\n : -1,\n normalizedDropKey != null\n ? rowNodes().findIndex((node) => node.key === normalizedDropKey)\n : -1,\n dropTarget?.type === \"item\" ? -1 : focusedIndex,\n ].filter((index) => index >= 0);\n return mergePersistedKeysIntoVirtualRange(\n baseRange,\n persistedIndexes,\n rowCount,\n virtualizer,\n 80,\n {\n forceIncludeIndexes,\n forceIncludeMaxSpan: 320,\n },\n );\n });\n createEffect(() => {\n if (!virtualizer || !parentCollectionRenderer?.isVirtualized) return;\n virtualizer.setDropTargetItemCountResolver(() => items().length);\n virtualizer.setDropTargetIndexResolver((key) => {\n const index = rowNodes().findIndex((node) => node.key === key);\n return index >= 0 ? index : null;\n });\n virtualizer.setDropTargetResolver((target) => {\n const node = rowNodes()[target.index];\n if (!node) return target;\n return {\n ...target,\n key: typeof node.key === \"string\" || typeof node.key === \"number\" ? node.key : undefined,\n };\n });\n onCleanup(() => {\n virtualizer.setDropTargetIndexResolver(undefined);\n virtualizer.setDropTargetItemCountResolver(undefined);\n virtualizer.setDropTargetResolver(undefined);\n });\n });\n const visibleItems = createMemo(() => {\n // Tree grid: render the flattened set of visible rows (top-level + expanded descendants)\n // the collection materialises in document order, so the render fn runs once per visible row.\n if (context.state.treeColumn != null) {\n return rowNodes().map((node) => node.value as T);\n }\n const range = virtualRange();\n if (!range) return items();\n return items().slice(range.start, range.end);\n });\n const spacerColSpan = () => context.columns.length + (context.showSelectionCheckboxes ? 1 : 0);\n\n const bodyChildren = () => (\n <>\n <SharedElementTransition>\n <Show\n when={isEmpty() && local.renderEmptyState && !local.isLoading}\n fallback={\n <>\n {virtualRange()?.offsetTop ? (\n <tr role=\"presentation\" aria-hidden=\"true\" data-virtualizer-spacer=\"top\">\n <td\n colSpan={spacerColSpan()}\n style={{ height: `${virtualRange()!.offsetTop}px`, padding: \"0\", border: \"0\" }}\n />\n </tr>\n ) : null}\n <For each={visibleItems()}>\n {(item, index) => {\n const itemIndex = () => (virtualRange()?.start ?? 0) + index();\n const beforeIndicator = () =>\n parentCollectionRenderer?.renderDropIndicator?.(itemIndex(), \"before\");\n const onIndicator = () =>\n parentCollectionRenderer?.renderDropIndicator?.(itemIndex(), \"on\");\n const afterIndicator = () =>\n parentCollectionRenderer?.renderDropIndicator?.(itemIndex(), \"after\");\n return (\n <>\n {beforeIndicator()}\n {onIndicator()}\n {local.children?.(item)}\n {afterIndicator()}\n </>\n );\n }}\n </For>\n {virtualRange()?.offsetBottom ? (\n <tr role=\"presentation\" aria-hidden=\"true\" data-virtualizer-spacer=\"bottom\">\n <td\n colSpan={spacerColSpan()}\n style={{\n height: `${virtualRange()!.offsetBottom}px`,\n padding: \"0\",\n border: \"0\",\n }}\n />\n </tr>\n ) : null}\n </>\n }\n >\n <tr role=\"row\" data-empty-state>\n <th role=\"rowheader\" colSpan={spacerColSpan()}>\n {local.renderEmptyState?.()}\n </th>\n </tr>\n </Show>\n </SharedElementTransition>\n <Show when={local.hasMore && local.onLoadMore}>\n <TableLoadMoreItem\n onLoadMore={local.onLoadMore!}\n isLoading={local.isLoading}\n colSpan={spacerColSpan()}\n />\n </Show>\n </>\n );\n const bodyProps = () =>\n ({\n ref: (el: HTMLTableSectionElement) => assignRef(local.ref, el),\n ...domProps,\n ...cleanRowGroupProps(),\n class: renderProps.class(),\n style: renderProps.style(),\n \"data-empty\": isEmpty() || undefined,\n children: bodyChildren(),\n }) as JSX.HTMLAttributes<HTMLTableSectionElement>;\n\n return local.render ? (\n local.render(bodyProps(), renderValues())\n ) : (\n <tbody\n ref={(el) => assignRef(local.ref, el)}\n {...domProps}\n {...cleanRowGroupProps()}\n class={renderProps.class()}\n style={renderProps.style()}\n data-empty={isEmpty() || undefined}\n >\n <SharedElementTransition>\n <Show\n when={isEmpty() && local.renderEmptyState && !local.isLoading}\n fallback={\n <>\n {virtualRange()?.offsetTop ? (\n <tr role=\"presentation\" aria-hidden=\"true\" data-virtualizer-spacer=\"top\">\n <td\n colSpan={spacerColSpan()}\n style={{ height: `${virtualRange()!.offsetTop}px`, padding: \"0\", border: \"0\" }}\n />\n </tr>\n ) : null}\n <For each={visibleItems()}>\n {(item, index) => {\n const itemIndex = () => (virtualRange()?.start ?? 0) + index();\n const beforeIndicator = () =>\n parentCollectionRenderer?.renderDropIndicator?.(itemIndex(), \"before\");\n const onIndicator = () =>\n parentCollectionRenderer?.renderDropIndicator?.(itemIndex(), \"on\");\n const afterIndicator = () =>\n parentCollectionRenderer?.renderDropIndicator?.(itemIndex(), \"after\");\n return (\n <>\n {beforeIndicator()}\n {onIndicator()}\n {local.children?.(item)}\n {afterIndicator()}\n </>\n );\n }}\n </For>\n {virtualRange()?.offsetBottom ? (\n <tr role=\"presentation\" aria-hidden=\"true\" data-virtualizer-spacer=\"bottom\">\n <td\n colSpan={spacerColSpan()}\n style={{\n height: `${virtualRange()!.offsetBottom}px`,\n padding: \"0\",\n border: \"0\",\n }}\n />\n </tr>\n ) : null}\n </>\n }\n >\n <tr role=\"row\" data-empty-state>\n <th role=\"rowheader\" colSpan={spacerColSpan()}>\n {local.renderEmptyState?.()}\n </th>\n </tr>\n </Show>\n </SharedElementTransition>\n <Show when={local.hasMore && local.onLoadMore}>\n <TableLoadMoreItem\n onLoadMore={local.onLoadMore!}\n isLoading={local.isLoading}\n colSpan={spacerColSpan()}\n />\n </Show>\n </tbody>\n );\n}\n\n/**\n * The footer of a table containing summary rows.\n */\nexport function TableFooter<T extends object>(props: TableFooterProps<T>): JSX.Element {\n const [local, domProps] = splitProps(props, [\"items\", \"class\", \"style\", \"slot\", \"children\"]);\n\n const context = useContext(TableContext);\n if (!context) {\n throw new Error(\"TableFooter must be used within a Table\");\n }\n\n const { rowGroupProps } = createTableRowGroup(() => ({ type: \"tfoot\" }));\n const items = createMemo(() => local.items ?? []);\n\n const renderValues = createMemo<TableFooterRenderProps>(() => ({\n isEmpty: items().length === 0,\n }));\n\n const renderProps = useRenderProps(\n {\n class: local.class,\n style: local.style,\n defaultClassName: \"solidaria-Table-footer\",\n },\n renderValues,\n );\n\n const cleanRowGroupProps = () => {\n const { ref: _ref, ...rest } = rowGroupProps as Record<string, unknown>;\n return rest;\n };\n\n return (\n <tfoot\n {...domProps}\n {...cleanRowGroupProps()}\n class={renderProps.class()}\n style={renderProps.style()}\n >\n <Show\n when={local.items && typeof local.children === \"function\"}\n fallback={local.children as JSX.Element}\n >\n <For each={items()}>{(item) => (local.children as (item: T) => JSX.Element)(item)}</For>\n </Show>\n </tfoot>\n );\n}\n\nexport function TableLoadMoreItem(props: TableLoadMoreItemProps): JSX.Element {\n let sentinelRef: HTMLDivElement | undefined;\n const [isPending, setIsPending] = createSignal(false);\n const isLoading = () => !!props.isLoading || isPending();\n\n const triggerLoadMore = async () => {\n if (isPending()) return;\n setIsPending(true);\n try {\n await props.onLoadMore();\n } finally {\n setIsPending(false);\n }\n };\n\n createEffect(() => {\n if (!sentinelRef || typeof IntersectionObserver !== \"function\") return;\n const offset = props.scrollOffset ?? 1;\n const margin = `0px 0px ${100 * offset}% 0px`;\n const observer = new IntersectionObserver(\n (entries) => {\n if (entries[0]?.isIntersecting) {\n void triggerLoadMore();\n }\n },\n { rootMargin: margin },\n );\n observer.observe(sentinelRef);\n return () => observer.disconnect();\n });\n\n const renderProps = useRenderProps(\n {\n children:\n props.children ??\n (() => (isLoading() ? <div role=\"progressbar\" aria-label=\"loading\" /> : null)),\n class: props.class,\n style: props.style,\n defaultClassName: \"solidaria-Table-loadMore\",\n },\n () => ({ isLoading: isLoading() }),\n );\n\n return (\n <>\n <tr style={{ position: \"relative\", width: 0, height: 0, overflow: \"hidden\" }} inert>\n <td>\n <div\n ref={sentinelRef}\n data-testid=\"loadMoreSentinel\"\n style={{ position: \"absolute\", height: \"1px\", width: \"1px\" }}\n />\n </td>\n </tr>\n <Show when={isLoading()}>\n <tr\n role=\"row\"\n tabIndex={0}\n onFocus={() => {\n void triggerLoadMore();\n }}\n class={renderProps.class()}\n style={renderProps.style()}\n data-loading\n >\n <td role=\"rowheader\" colSpan={props.colSpan ?? 1}>\n {renderProps.renderChildren()}\n </td>\n </tr>\n </Show>\n </>\n );\n}\n\n/**\n * A row in a table.\n */\nexport function TableRow<T extends object>(props: TableRowProps<T>): JSX.Element {\n const [local, domProps] = splitProps(props, [\n \"class\",\n \"style\",\n \"render\",\n \"slot\",\n \"id\",\n \"item\",\n \"columns\",\n \"isDisabled\",\n \"onAction\",\n \"children\",\n \"ref\",\n \"href\",\n \"target\",\n \"rel\",\n \"download\",\n \"ping\",\n \"referrerPolicy\",\n \"routerOptions\",\n ]);\n\n const context = useContext(TableContext);\n if (!context) {\n throw new Error(\"TableRow must be used within a Table\");\n }\n const { state } = context;\n const tableContext = context as unknown as TableContextValue<T>;\n const registeredCellIds: string[] = [];\n const generatedId = createUniqueId();\n const rowKey = () => local.id ?? generatedId;\n const router = useRouter();\n const linkProps = createMemo(() =>\n useLinkProps({\n href: local.href,\n target: local.target,\n rel: local.rel,\n download: local.download,\n ping: local.ping,\n referrerPolicy: local.referrerPolicy,\n }),\n );\n\n const [ref, setRef] = createSignal<HTMLTableRowElement | null>(null);\n\n // Read through `state.collection` (not the destructured snapshot) so the node tracks\n // collection rebuilds — e.g. a tree-grid row staying mounted across an expand/collapse.\n const rowNode = createMemo(() => {\n const node = state.collection.getItem(rowKey());\n if (!node) {\n return {\n type: \"item\" as const,\n key: rowKey(),\n value: local.item ?? null,\n textValue: String(local.id),\n level: 0,\n index: 0,\n hasChildNodes: true,\n childNodes: [],\n } as GridNode<unknown>;\n }\n return node;\n });\n\n const rowAria = createTableRow<object>(\n () => ({\n node: rowNode(),\n isVirtualized: tableContext.isVirtualized,\n isDisabled: local.isDisabled,\n onAction: local.onAction,\n href: linkProps().href,\n onLinkAction: (event) => {\n const target = ref();\n if (!target || !local.href) return;\n router.open(target, event as RouterClickModifiers, local.href, local.routerOptions);\n },\n }),\n () => state as TableState<object, TableCollection<object>>,\n ref,\n );\n const isSelected = () => rowAria.isSelected;\n const isDisabled = () => rowAria.isDisabled;\n const isPressed = () => rowAria.isPressed;\n const isInteractive = () => {\n const tableData = getTableData(state as TableState<object, TableCollection<object>>);\n return (\n state.selectionMode !== \"none\" ||\n !!tableData?.actions.onRowAction ||\n !!local.onAction ||\n !!local.href\n );\n };\n\n const { isHovered, hoverProps } = createHover({\n get isDisabled() {\n return isDisabled() || !isInteractive();\n },\n onHoverStart(e) {\n (domProps as Record<string, (e: unknown) => void>).onHoverStart?.(e);\n },\n onHoverEnd(e) {\n (domProps as Record<string, (e: unknown) => void>).onHoverEnd?.(e);\n },\n onHoverChange(isHovering) {\n (domProps as Record<string, (isHovering: boolean) => void>).onHoverChange?.(isHovering);\n },\n });\n\n const { isFocusVisible, focusProps } = createFocusRing();\n const [isFocusWithin, setIsFocusWithin] = createSignal(false);\n const focusWithinProps = {\n onFocusIn() {\n setIsFocusWithin(true);\n },\n onFocusOut(e: FocusEvent) {\n const currentTarget = e.currentTarget as HTMLElement;\n const nextTarget = e.relatedTarget as Node | null;\n if (!nextTarget || !currentTarget.contains(nextTarget)) {\n setIsFocusWithin(false);\n }\n },\n };\n\n const isFocused = createMemo(() => state.focusedKey === rowKey());\n const draggableItem = createMemo(() => {\n if (!tableContext.dragAndDropHooks?.useDraggableItem || !tableContext.dragState)\n return undefined;\n return tableContext.dragAndDropHooks.useDraggableItem(\n {\n key: rowKey() as string | number,\n hasDragButton: true,\n },\n tableContext.dragState as Parameters<NonNullable<DragAndDropHooks<T>[\"useDraggableItem\"]>>[1],\n );\n });\n const droppableItem = createMemo(() => {\n if (!tableContext.dragAndDropHooks?.useDroppableItem || !tableContext.dropState)\n return undefined;\n return tableContext.dragAndDropHooks.useDroppableItem(\n {\n key: rowKey() as string | number,\n },\n tableContext.dropState as Parameters<NonNullable<DragAndDropHooks<T>[\"useDroppableItem\"]>>[1],\n () => ref(),\n );\n });\n\n // Tree-grid (expandable rows): nesting depth, child presence and expansion. These are\n // inert for a flat table (level 1, no children, not expanded).\n const isTreeRow = () => state.treeColumn != null;\n const rowLevel = () => rowNode().level + 1;\n const hasChildItems = () => rowAria.hasChildRows;\n const isExpanded = () => rowAria.isExpanded;\n\n const renderValues = createMemo<TableRowRenderProps>(() => ({\n isSelected: isSelected(),\n isFocused: isFocused(),\n isFocusVisible: isFocusVisible() && isFocused(),\n isPressed: isPressed(),\n isHovered: isHovered(),\n isDisabled: isDisabled(),\n isExpanded: isExpanded(),\n hasChildItems: hasChildItems(),\n level: rowLevel(),\n }));\n\n // Resolve render props (children rendered directly in JSX to avoid eager evaluation)\n const renderProps = useRenderProps(\n {\n class: local.class,\n style: local.style,\n defaultClassName: \"solidaria-Table-row\",\n },\n renderValues,\n );\n\n const cleanRowProps = () => {\n const { ref: _ref1, ...rest } = rowAria.rowProps as Record<string, unknown>;\n return rest;\n };\n const cleanHoverProps = () => {\n const { ref: _ref2, ...rest } = hoverProps as Record<string, unknown>;\n return rest;\n };\n const cleanFocusProps = () => {\n const { ref: _ref3, ...rest } = focusProps as Record<string, unknown>;\n return rest;\n };\n\n const rowContextValue: TableRowContextValue = {\n rowKey: rowKey(),\n rowNode: rowNode(),\n getCellColumnKey(cellId, explicitId) {\n if (explicitId === \"__selection__\") {\n return explicitId;\n }\n\n let index = registeredCellIds.indexOf(cellId);\n if (index < 0) {\n index = registeredCellIds.length;\n registeredCellIds.push(cellId);\n }\n\n return explicitId ?? tableContext.columns[index]?.key;\n },\n };\n const dragButtonProps = createMemo<ButtonProps>(() => {\n const props = (draggableItem()?.dragButtonProps as ButtonProps | undefined) ?? {};\n const textValue = (rowNode().textValue || String(rowKey())).trim();\n return {\n ...props,\n \"aria-label\": `Drag ${textValue}`,\n style: {\n ...(typeof props.style === \"object\" ? props.style : {}),\n \"pointer-events\": \"none\",\n },\n };\n });\n // A STABLE context object: its identity never changes, so the surrounding ButtonContext.Provider\n // never tears down and recreates the row's children. The slots are getters, so a slotted\n // <Button slot=\"drag\"|\"chevron\"> reads the current drag/expand props each time it is (re)created —\n // e.g. when the tree column recreates the chevron on expand/collapse.\n const buttonContextValue: ButtonContextValue = {\n slots: {\n default: {},\n get drag() {\n return dragButtonProps();\n },\n // Tree-grid expand/collapse chevron; the slotted <Button slot=\"chevron\"> picks these up.\n // The aria hook yields DOM button attributes, merged onto the Button as passthrough props.\n get chevron() {\n return rowAria.expandButtonProps as unknown as ButtonProps;\n },\n },\n };\n\n // Render props handed to the row's children as a STABLE getter proxy: reading a getter stays\n // fine-grained reactive at the point of use, without forcing the children to be re-derived (and\n // therefore disposed + recreated) whenever an unrelated render prop flips.\n const childRenderProps: TableRowRenderProps = {\n get isSelected() {\n return isSelected();\n },\n get isFocused() {\n return isFocused();\n },\n get isFocusVisible() {\n return isFocusVisible() && isFocused();\n },\n get isPressed() {\n return isPressed();\n },\n get isHovered() {\n return isHovered();\n },\n get isDisabled() {\n return isDisabled();\n },\n get isExpanded() {\n return isExpanded();\n },\n get hasChildItems() {\n return hasChildItems();\n },\n get level() {\n return rowLevel();\n },\n };\n\n // Tree-grid rows carry their nesting depth as a CSS var so the tree column can indent.\n const rowStyle = () => {\n const base = renderProps.style();\n if (!isTreeRow()) return base;\n return { ...(base ?? {}), \"--table-row-level\": rowLevel() } as JSX.CSSProperties;\n };\n\n return (\n <TableRowContext.Provider value={rowContextValue}>\n <ButtonContext.Provider value={buttonContextValue}>\n {(() => {\n // Build the row's children HERE — inside BOTH providers — so each cell instantiates under\n // this owner. TableCell/EditableCell read TableRowContext, and a slotted\n // <Button slot=\"drag\"|\"chevron\"> reads ButtonContext; in Solid useContext binds at the\n // owner active when the component executes, so the children must be created inside the\n // providers, not merely wrapped by them afterwards. They are built EXACTLY ONCE: a press\n // or focus bubbling up from interactive cell content (e.g. an EditableCell's edit button)\n // flips the row's render-props signals, and re-deriving the children on every such change\n // would dispose and recreate the subtree, destroying the in-flight press. Cells claim\n // their column by render order (see getCellColumnKey), so reset the registry once before\n // this single pass.\n registeredCellIds.length = 0;\n const rowChildrenContent =\n typeof local.children === \"function\" ? (\n local.columns ? (\n <For each={local.columns}>\n {(column) =>\n (local.children as (column: TableColumnDefinition<T>) => JSX.Element)(column)\n }\n </For>\n ) : (\n (local.children as (renderProps: TableRowRenderProps) => JSX.Element)(\n childRenderProps,\n )\n )\n ) : (\n local.children\n );\n const tableRowProps = () =>\n ({\n ref: (el: HTMLTableRowElement) => {\n setRef(el);\n assignRef(local.ref, el);\n },\n ...domProps,\n ...mergeProps(\n cleanRowProps(),\n cleanHoverProps(),\n cleanFocusProps(),\n focusWithinProps as Record<string, unknown>,\n (draggableItem()?.dragProps as Record<string, unknown> | undefined) ?? {},\n (droppableItem()?.dropProps as Record<string, unknown> | undefined) ?? {},\n ),\n class: renderProps.class(),\n style: rowStyle(),\n \"data-key\": rowKey(),\n \"data-selected\": isSelected() || undefined,\n \"data-focused\": isFocused() || undefined,\n \"data-focus-visible\": (isFocusVisible() && isFocused()) || undefined,\n \"data-focus-visible-within\": dataAttr(isFocusWithin() && isGlobalFocusVisible()),\n \"data-pressed\": isPressed() || undefined,\n \"data-hovered\": isHovered() || undefined,\n \"data-disabled\": isDisabled() || undefined,\n \"data-href\": linkProps().href,\n \"data-target\": linkProps().target,\n \"data-rel\": linkProps().rel,\n \"data-download\":\n typeof linkProps().download === \"string\"\n ? linkProps().download\n : linkProps().download\n ? \"\"\n : undefined,\n \"data-ping\": linkProps().ping,\n \"data-referrer-policy\": linkProps().referrerPolicy,\n \"data-dragging\": draggableItem()?.isDragging || undefined,\n \"data-drop-target\": droppableItem()?.isDropTarget || undefined,\n \"data-expanded\": (isTreeRow() && isExpanded()) || undefined,\n \"data-has-child-items\": (isTreeRow() && hasChildItems()) || undefined,\n \"data-level\": isTreeRow() ? rowLevel() : undefined,\n children: rowChildrenContent,\n }) as JSX.HTMLAttributes<HTMLTableRowElement>;\n\n return (\n <Show\n when={local.render}\n fallback={\n // Bind attributes individually on a STABLE <tr> (mirroring TableCell) so a\n // render-props change updates attributes in place instead of recreating the element\n // and its subtree.\n <tr\n ref={(el: HTMLTableRowElement) => {\n setRef(el);\n assignRef(local.ref, el);\n }}\n {...domProps}\n {...mergeProps(\n cleanRowProps(),\n cleanHoverProps(),\n cleanFocusProps(),\n focusWithinProps as Record<string, unknown>,\n (draggableItem()?.dragProps as Record<string, unknown> | undefined) ?? {},\n (droppableItem()?.dropProps as Record<string, unknown> | undefined) ?? {},\n )}\n class={renderProps.class()}\n style={rowStyle()}\n data-key={rowKey()}\n data-selected={isSelected() || undefined}\n data-focused={isFocused() || undefined}\n data-focus-visible={(isFocusVisible() && isFocused()) || undefined}\n data-focus-visible-within={dataAttr(isFocusWithin() && isGlobalFocusVisible())}\n data-pressed={isPressed() || undefined}\n data-hovered={isHovered() || undefined}\n data-disabled={isDisabled() || undefined}\n data-href={linkProps().href}\n data-target={linkProps().target}\n data-rel={linkProps().rel}\n data-download={\n typeof linkProps().download === \"string\"\n ? linkProps().download\n : linkProps().download\n ? \"\"\n : undefined\n }\n data-ping={linkProps().ping}\n data-referrer-policy={linkProps().referrerPolicy}\n data-dragging={draggableItem()?.isDragging || undefined}\n data-drop-target={droppableItem()?.isDropTarget || undefined}\n data-expanded={(isTreeRow() && isExpanded()) || undefined}\n data-has-child-items={(isTreeRow() && hasChildItems()) || undefined}\n data-level={isTreeRow() ? rowLevel() : undefined}\n >\n {rowChildrenContent}\n </tr>\n }\n >\n {local.render!(tableRowProps(), renderValues())}\n </Show>\n );\n })()}\n </ButtonContext.Provider>\n </TableRowContext.Provider>\n );\n}\n\n/**\n * A cell in a table row.\n */\nexport function TableCell(props: TableCellProps): JSX.Element {\n const [local, domProps] = splitProps(props, [\n \"class\",\n \"style\",\n \"render\",\n \"slot\",\n \"id\",\n \"colSpan\",\n \"children\",\n \"ref\",\n ]);\n\n const tableContext = useContext(TableContext);\n const rowContext = useContext(TableRowContext);\n\n if (!tableContext) {\n throw new Error(\"TableCell must be used within a Table\");\n }\n if (!rowContext) {\n throw new Error(\"TableCell must be used within a Table\");\n }\n\n const { state } = tableContext;\n const { rowKey, rowNode } = rowContext;\n\n const [ref, setRef] = createSignal<HTMLTableCellElement | null>(null);\n const cellId = createUniqueId();\n const columnKey = createMemo(() => rowContext.getCellColumnKey(cellId, local.id));\n\n const cellNode = createMemo(() => {\n const key = columnKey();\n if (key != null) {\n const cellKey = `${rowKey}-${key}`;\n const node = state.collection.getItem(cellKey);\n if (node) return node;\n }\n\n return {\n type: \"cell\" as const,\n key: key ?? `${rowKey}-cell`,\n value: rowNode.value,\n textValue: \"\",\n level: 1,\n index: 0,\n parentKey: rowKey,\n hasChildNodes: false,\n childNodes: [],\n } as GridNode<unknown>;\n });\n const cellColumnIndex = createMemo(() => {\n const key = columnKey();\n if (key == null) return undefined;\n const cellKey = `${rowKey}-${key}`;\n return state.collection.getItem(cellKey) ? (cellNode().index ?? 0) : undefined;\n });\n\n // Tree-grid (expandable rows): the cell mirrors its row's nesting/expansion and flags the\n // tree column (the one that renders the chevron + indentation). Inert for a flat table.\n const isTreeGridCell = () => state.treeColumn != null;\n const parentRowNode = createMemo(() => state.collection.getItem(rowKey));\n const cellLevel = () => (parentRowNode()?.level ?? rowNode.level ?? 0) + 1;\n const cellHasChildItems = () => parentRowNode()?.isExpandable ?? false;\n const cellIsExpanded = () => {\n if (!isTreeGridCell() || !cellHasChildItems()) return false;\n return state.expandedKeys === \"all\" || state.expandedKeys.has(rowKey);\n };\n const isTreeColumn = () => isTreeGridCell() && columnKey() === state.treeColumn;\n\n const cellAria = createTableCell<object>(\n () => ({\n node: cellNode(),\n }),\n () => state as TableState<object, TableCollection<object>>,\n ref,\n );\n const isPressed = () => cellAria.isPressed;\n\n const { isHovered, hoverProps } = createHover({\n isDisabled: false,\n });\n\n const { isFocusVisible, focusProps } = createFocusRing();\n\n const isFocused = createMemo(() => state.focusedKey === cellNode().key);\n\n const renderValues = createMemo<TableCellRenderProps>(() => ({\n isFocused: isFocused(),\n isFocusVisible: isFocusVisible() && isFocused(),\n columnIndex: cellColumnIndex() ?? 0,\n isPressed: isPressed(),\n isHovered: isHovered(),\n isTreeColumn: isTreeColumn(),\n isExpanded: cellIsExpanded(),\n hasChildItems: cellHasChildItems(),\n level: cellLevel(),\n }));\n\n // Resolve render props (children rendered directly in JSX to avoid eager evaluation)\n const renderProps = useRenderProps(\n {\n class: local.class,\n style: local.style,\n defaultClassName: \"solidaria-Table-cell\",\n },\n renderValues,\n );\n\n const cleanCellProps = () => {\n const { ref: _ref1, ...rest } = cellAria.gridCellProps as Record<string, unknown>;\n return rest;\n };\n const cleanHoverProps = () => {\n const { ref: _ref2, ...rest } = hoverProps as Record<string, unknown>;\n return rest;\n };\n const cleanFocusProps = () => {\n const { ref: _ref3, ...rest } = focusProps as Record<string, unknown>;\n return rest;\n };\n\n const cellChildren = () =>\n typeof local.children === \"function\" ? local.children(renderValues()) : local.children;\n const tableCellProps = () =>\n ({\n ref: (el: HTMLTableCellElement) => {\n setRef(el);\n assignRef(local.ref, el);\n },\n ...domProps,\n ...mergeProps(cleanCellProps(), cleanHoverProps(), cleanFocusProps()),\n colSpan: local.colSpan,\n class: renderProps.class(),\n style: renderProps.style(),\n \"data-key\": cellNode().key,\n \"data-focused\": isFocused() || undefined,\n \"data-focus-visible\": (isFocusVisible() && isFocused()) || undefined,\n \"data-column-index\": cellColumnIndex(),\n \"data-pressed\": isPressed() || undefined,\n \"data-hovered\": isHovered() || undefined,\n \"data-tree-column\": isTreeColumn() || undefined,\n \"data-expanded\": (isTreeGridCell() && cellIsExpanded()) || undefined,\n \"data-has-child-items\": (isTreeGridCell() && cellHasChildItems()) || undefined,\n \"data-level\": isTreeGridCell() ? cellLevel() : undefined,\n children: cellChildren(),\n }) as JSX.TdHTMLAttributes<HTMLTableCellElement>;\n\n return local.render ? (\n local.render(tableCellProps(), renderValues())\n ) : (\n <td\n ref={(el) => {\n setRef(el);\n assignRef(local.ref, el);\n }}\n {...domProps}\n {...mergeProps(cleanCellProps(), cleanHoverProps(), cleanFocusProps())}\n colSpan={local.colSpan}\n class={renderProps.class()}\n style={renderProps.style()}\n data-key={cellNode().key}\n data-focused={isFocused() || undefined}\n data-focus-visible={(isFocusVisible() && isFocused()) || undefined}\n data-column-index={cellColumnIndex()}\n data-pressed={isPressed() || undefined}\n data-hovered={isHovered() || undefined}\n data-tree-column={isTreeColumn() || undefined}\n data-expanded={(isTreeGridCell() && cellIsExpanded()) || undefined}\n data-has-child-items={(isTreeGridCell() && cellHasChildItems()) || undefined}\n data-level={isTreeGridCell() ? cellLevel() : undefined}\n >\n {cellChildren()}\n </td>\n );\n}\n\nexport interface TableSelectionCheckboxProps {\n rowKey: Key;\n class?: string;\n style?: JSX.CSSProperties;\n excludeFromTabOrder?: boolean;\n \"aria-label\"?: string;\n}\n\n/**\n * A checkbox cell for row selection.\n */\nexport function TableSelectionCheckbox(props: TableSelectionCheckboxProps): JSX.Element {\n const context = useContext(TableContext);\n if (!context) {\n throw new Error(\"TableSelectionCheckbox must be used within a Table\");\n }\n\n const { state } = context;\n\n const selectionCheckboxAria = createTableSelectionCheckbox<object>(\n () => ({ key: props.rowKey }),\n () => state as TableState<object, TableCollection<object>>,\n );\n\n return (\n <input\n {...selectionCheckboxAria.checkboxProps}\n class={props.class}\n style={props.style}\n tabIndex={props.excludeFromTabOrder ? -1 : selectionCheckboxAria.checkboxProps.tabIndex}\n aria-label={props[\"aria-label\"] ?? selectionCheckboxAria.checkboxProps[\"aria-label\"]}\n onClick={(event) => event.stopPropagation()}\n onKeyDown={(event) => event.stopPropagation()}\n onKeyUp={(event) => event.stopPropagation()}\n onPointerDown={(event) => event.stopPropagation()}\n onPointerUp={(event) => event.stopPropagation()}\n />\n );\n}\n\nexport interface TableSelectAllCheckboxProps {\n class?: string;\n style?: JSX.CSSProperties;\n \"aria-label\"?: string;\n}\n\n/**\n * A checkbox for select-all functionality.\n */\nexport function TableSelectAllCheckbox(props: TableSelectAllCheckboxProps = {}): JSX.Element {\n const context = useContext(TableContext);\n if (!context) {\n throw new Error(\"TableSelectAllCheckbox must be used within a Table\");\n }\n\n const { state } = context;\n\n const selectAllCheckboxAria = createTableSelectAllCheckbox<object>(\n () => state as TableState<object, TableCollection<object>>,\n );\n\n let inputRef: HTMLInputElement | undefined;\n createEffect(() => {\n if (inputRef) {\n inputRef.indeterminate = selectAllCheckboxAria.isIndeterminate;\n }\n });\n\n return (\n <input\n ref={inputRef}\n {...selectAllCheckboxAria.checkboxProps}\n class={props.class}\n style={props.style}\n aria-label={props[\"aria-label\"] ?? selectAllCheckboxAria.checkboxProps[\"aria-label\"]}\n />\n );\n}\n\nTable.Header = TableHeader;\nTable.Column = TableColumn;\nTable.Body = TableBody;\nTable.LoadMoreItem = TableLoadMoreItem;\nTable.Row = TableRow;\nTable.Cell = TableCell;\nTable.SelectionCheckbox = TableSelectionCheckbox;\nTable.SelectAllCheckbox = TableSelectAllCheckbox;\n\nexport interface ColumnResizerRenderProps {\n /** Whether the resizer handle is hovered. */\n isHovered: boolean;\n /** Whether the resizer's hidden input is focused. */\n isFocused: boolean;\n /** Whether the column is currently being resized. */\n isResizing: boolean;\n /** The direction(s) the column can be resized: 'both', 'left', 'right'. */\n resizableDirection: \"both\" | \"left\" | \"right\";\n}\n\nexport interface ColumnResizerProps extends SlotProps {\n /** The column key this resizer belongs to. */\n column: { key: Key };\n /** Accessible label for the resizer. */\n \"aria-label\"?: string;\n /** Whether resizing is disabled. */\n isDisabled?: boolean;\n /** Called when resize starts. */\n onResizeStart?: (widths: Map<Key, number>) => void;\n /** Called during resize. */\n onResize?: (widths: Map<Key, number>) => void;\n /** Called when resize ends. */\n onResizeEnd?: (widths: Map<Key, number>) => void;\n /** CSS class — can be a string or function of render props. */\n class?: ClassNameOrFunction<ColumnResizerRenderProps>;\n /** Inline style — can be object or function of render props. */\n style?: StyleOrFunction<ColumnResizerRenderProps>;\n /** Children — can be JSX or render function. */\n children?: JSX.Element | RenderChildren<ColumnResizerRenderProps>;\n}\n\nexport function ColumnResizer(props: ColumnResizerProps): JSX.Element {\n const [local, domProps] = splitProps(props, [\n \"column\",\n \"aria-label\",\n \"isDisabled\",\n \"onResizeStart\",\n \"onResize\",\n \"onResizeEnd\",\n \"class\",\n \"style\",\n \"slot\",\n \"children\",\n ]);\n\n // Register this column with the ResizableTableContainer (auto-collect columns)\n const registerColumn = useContext(ResizableTableRegisterContext);\n if (registerColumn) {\n registerColumn(local.column.key, { key: local.column.key });\n }\n\n const resizeCtx = useContext(TableColumnResizeStateContext);\n const hasResizeContext = !!resizeCtx;\n\n // Create a fallback \"no-op\" resize state for when there's no ResizableTableContainer\n const noopResizeState: TableColumnResizeState = {\n resizingColumn: () => null,\n columnWidths: () => new Map(),\n startResize() {},\n endResize() {},\n updateResizedColumns(_key: Key, _width: number) {\n return new Map();\n },\n getColumnWidth() {\n return 0;\n },\n getColumnMinWidth() {\n return 75;\n },\n getColumnMaxWidth() {\n return Infinity;\n },\n };\n\n const { isHovered, hoverProps } = createHover({ isDisabled: local.isDisabled ?? false });\n const [isFocused, setIsFocused] = createSignal(false);\n\n // Create the ARIA resize hook — always create it but use reactive state getter\n const columnResize = createTableColumnResize(\n () => ({\n column: local.column,\n \"aria-label\": local[\"aria-label\"] ?? \"Resizer\",\n isDisabled: local.isDisabled,\n onResizeStart: (widths) => {\n resizeCtx?.getCallbacks?.().onResizeStart?.(widths);\n local.onResizeStart?.(widths);\n },\n onResize: (widths) => {\n resizeCtx?.getCallbacks?.().onResize?.(widths);\n local.onResize?.(widths);\n },\n onResizeEnd: (widths) => {\n resizeCtx?.getCallbacks?.().onResizeEnd?.(widths);\n local.onResizeEnd?.(widths);\n },\n }),\n () => resizeCtx?.getState() ?? noopResizeState,\n );\n\n const renderValues = createMemo<ColumnResizerRenderProps>(() => ({\n isHovered: isHovered(),\n isFocused: isFocused(),\n isResizing: columnResize.isResizing(),\n resizableDirection: \"both\",\n }));\n\n const renderProps = useRenderProps(\n {\n class: local.class,\n style: local.style,\n defaultClassName: \"solidaria-Table-columnResizer\",\n },\n renderValues,\n );\n\n const cleanHoverProps = () => {\n const { ref: _ref, ...rest } = hoverProps as Record<string, unknown>;\n return rest;\n };\n\n return (\n <div\n {...domProps}\n {...columnResize.resizerProps}\n {...cleanHoverProps()}\n class={renderProps.class()}\n style={renderProps.style()}\n data-hovered={isHovered() || undefined}\n data-resizing={columnResize.isResizing() || undefined}\n >\n <Show when={hasResizeContext}>\n <input\n {...columnResize.inputProps}\n onFocus={() => setIsFocused(true)}\n onBlur={() => setIsFocused(false)}\n />\n </Show>\n {typeof local.children === \"function\"\n ? (local.children as (props: ColumnResizerRenderProps) => JSX.Element)(renderValues())\n : local.children}\n </div>\n );\n}\n\nexport interface ResizableTableContainerProps extends SlotProps {\n /** Children (should contain a Table). */\n children?: JSX.Element;\n /** Column resize definitions. If not provided, columns from child ColumnResizers are auto-detected. */\n columns?: Array<{ key: Key; width?: ColumnSize; minWidth?: number; maxWidth?: number }>;\n /** CSS class name. */\n class?: string;\n /** Inline style. */\n style?: JSX.CSSProperties;\n /** Called when column resize starts. */\n onResizeStart?: (widths: Map<Key, number>) => void;\n /** Called during column resize. */\n onResize?: (widths: Map<Key, number>) => void;\n /** Called when column resize ends. */\n onResizeEnd?: (widths: Map<Key, number>) => void;\n}\n\nexport function ResizableTableContainer(props: ResizableTableContainerProps): JSX.Element {\n const [local, domProps] = splitProps(props, [\n \"class\",\n \"style\",\n \"slot\",\n \"children\",\n \"columns\",\n \"onResizeStart\",\n \"onResize\",\n \"onResizeEnd\",\n ]);\n\n const [containerRef, setContainerRef] = createSignal<HTMLDivElement | null>(null);\n const [tableWidth, setTableWidth] = createSignal(0);\n\n // Track container width via ResizeObserver\n createEffect(() => {\n const el = containerRef();\n if (!el) return;\n\n // Initial measurement\n setTableWidth(el.clientWidth);\n\n if (typeof ResizeObserver !== \"undefined\") {\n const observer = new ResizeObserver((entries) => {\n for (const entry of entries) {\n setTableWidth(entry.contentRect.width);\n }\n });\n observer.observe(el);\n onCleanup(() => observer.disconnect());\n }\n });\n\n // Auto-collected columns from ColumnResizer children\n const [autoColumns, setAutoColumns] = createSignal<\n Map<Key, { key: Key; width?: ColumnSize; minWidth?: number; maxWidth?: number }>\n >(new Map());\n\n const registerColumn = (\n key: Key,\n def: { key: Key; width?: ColumnSize; minWidth?: number; maxWidth?: number },\n ) => {\n setAutoColumns((prev) => {\n const next = new Map(prev);\n next.set(key, def);\n return next;\n });\n };\n\n // Columns: prefer explicit prop, fall back to auto-collected\n const effectiveColumns = createMemo(() => {\n if (local.columns && local.columns.length > 0) return local.columns;\n return Array.from(autoColumns().values());\n });\n\n // Use measured width, with a reasonable fallback for environments without layout (e.g. jsdom)\n const effectiveWidth = createMemo(() => {\n const w = tableWidth();\n return w > 0 ? w : 800; // fallback to 800px\n });\n\n // Create resize state\n const resizeState = createMemo(() => {\n const cols = effectiveColumns();\n if (cols.length === 0) return null;\n\n return createTableColumnResizeState(() => ({\n tableWidth: effectiveWidth(),\n columns: cols,\n }));\n });\n\n // Provide a stable context object with a reactive getter\n const contextValue = {\n getState: () => resizeState(),\n getCallbacks: () => ({\n onResizeStart: local.onResizeStart,\n onResize: local.onResize,\n onResizeEnd: local.onResizeEnd,\n }),\n };\n\n return (\n <ResizableTableRegisterContext.Provider value={registerColumn}>\n <TableColumnResizeStateContext.Provider value={contextValue}>\n <div\n ref={setContainerRef}\n {...domProps}\n class={local.class ?? \"solidaria-ResizableTableContainer\"}\n style={{ position: \"relative\", overflow: \"auto\", ...local.style }}\n >\n {local.children}\n </div>\n </TableColumnResizeStateContext.Provider>\n </ResizableTableRegisterContext.Provider>\n );\n}\n\n/** Internal context for ColumnResizer to register itself with ResizableTableContainer */\nconst ResizableTableRegisterContext = createContext<\n | ((\n key: Key,\n def: { key: Key; width?: ColumnSize; minWidth?: number; maxWidth?: number },\n ) => void)\n | null\n>(null);\n\nexport function useTableOptions() {\n return useContext(TableContext);\n}\n"],"mappings":"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"}
package/dist/Tabs.d.ts CHANGED
@@ -52,10 +52,6 @@ export interface TabListRenderProps {
52
52
  orientation: TabOrientation;
53
53
  /** Whether the tab list is disabled. */
54
54
  isDisabled: boolean;
55
- /** Whether the tab list has focus. */
56
- isFocused: boolean;
57
- /** Whether the tab list has visible focus. */
58
- isFocusVisible: boolean;
59
55
  }
60
56
  export interface TabListProps<T> extends Omit<AriaTabListProps, "children">, SlotProps {
61
57
  /** Items to render in the tab list. */
@@ -1 +1 @@
1
- {"version":3,"file":"Tabs.d.ts","sourceRoot":"","sources":["../src/Tabs.tsx"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"Tabs.d.ts","sourceRoot":"","sources":["../src/Tabs.tsx"],"names":[],"mappings":"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"}