@proyecto-viviana/solidaria-components 0.5.0 → 0.7.0-rc.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 (561) hide show
  1. package/LICENSE-APACHE-2.0 +201 -0
  2. package/NOTICE +91 -0
  3. package/README.md +4 -7
  4. package/dist/ActionBar.d.ts +2 -10
  5. package/dist/ActionBar.d.ts.map +1 -1
  6. package/dist/ActionBar.js +95 -59
  7. package/dist/ActionBar.js.map +1 -1
  8. package/dist/ActionBar.jsx +42 -15
  9. package/dist/ActionBar.jsx.map +1 -1
  10. package/dist/ActionGroup.d.ts +1 -12
  11. package/dist/ActionGroup.d.ts.map +1 -1
  12. package/dist/ActionGroup.js +66 -44
  13. package/dist/ActionGroup.js.map +1 -1
  14. package/dist/ActionGroup.jsx +25 -10
  15. package/dist/ActionGroup.jsx.map +1 -1
  16. package/dist/Alert.d.ts +4 -1
  17. package/dist/Alert.d.ts.map +1 -1
  18. package/dist/Alert.js +25 -17
  19. package/dist/Alert.js.map +1 -1
  20. package/dist/Alert.jsx +9 -5
  21. package/dist/Alert.jsx.map +1 -1
  22. package/dist/Autocomplete.d.ts +2 -9
  23. package/dist/Autocomplete.d.ts.map +1 -1
  24. package/dist/Autocomplete.js +18 -5
  25. package/dist/Autocomplete.js.map +1 -1
  26. package/dist/Autocomplete.jsx +20 -7
  27. package/dist/Autocomplete.jsx.map +1 -1
  28. package/dist/Breadcrumbs.d.ts +2 -7
  29. package/dist/Breadcrumbs.d.ts.map +1 -1
  30. package/dist/Breadcrumbs.js +71 -51
  31. package/dist/Breadcrumbs.js.map +1 -1
  32. package/dist/Breadcrumbs.jsx +25 -12
  33. package/dist/Breadcrumbs.jsx.map +1 -1
  34. package/dist/Button.d.ts +1 -7
  35. package/dist/Button.d.ts.map +1 -1
  36. package/dist/Button.js +125 -72
  37. package/dist/Button.js.map +1 -1
  38. package/dist/Button.jsx +105 -43
  39. package/dist/Button.jsx.map +1 -1
  40. package/dist/Calendar.d.ts +1 -7
  41. package/dist/Calendar.d.ts.map +1 -1
  42. package/dist/Calendar.js +297 -221
  43. package/dist/Calendar.js.map +1 -1
  44. package/dist/Calendar.jsx +52 -32
  45. package/dist/Calendar.jsx.map +1 -1
  46. package/dist/CalendarPicker.d.ts +1 -10
  47. package/dist/CalendarPicker.d.ts.map +1 -1
  48. package/dist/CalendarPicker.js +12 -0
  49. package/dist/CalendarPicker.js.map +1 -1
  50. package/dist/CalendarPicker.jsx +12 -0
  51. package/dist/CalendarPicker.jsx.map +1 -1
  52. package/dist/Checkbox.d.ts +2 -7
  53. package/dist/Checkbox.d.ts.map +1 -1
  54. package/dist/Checkbox.js +332 -270
  55. package/dist/Checkbox.js.map +1 -1
  56. package/dist/Checkbox.jsx +70 -77
  57. package/dist/Checkbox.jsx.map +1 -1
  58. package/dist/Collection.d.ts +33 -7
  59. package/dist/Collection.d.ts.map +1 -1
  60. package/dist/Collection.js +128 -74
  61. package/dist/Collection.js.map +1 -1
  62. package/dist/Collection.jsx +46 -7
  63. package/dist/Collection.jsx.map +1 -1
  64. package/dist/Color.d.ts +15 -20
  65. package/dist/Color.d.ts.map +1 -1
  66. package/dist/Color.js +572 -334
  67. package/dist/Color.js.map +1 -1
  68. package/dist/Color.jsx +205 -85
  69. package/dist/Color.jsx.map +1 -1
  70. package/dist/ColorEditor.d.ts +3 -1
  71. package/dist/ColorEditor.d.ts.map +1 -1
  72. package/dist/ColorEditor.js +147 -124
  73. package/dist/ColorEditor.js.map +1 -1
  74. package/dist/ColorEditor.jsx +4 -1
  75. package/dist/ColorEditor.jsx.map +1 -1
  76. package/dist/ComboBox.d.ts +31 -10
  77. package/dist/ComboBox.d.ts.map +1 -1
  78. package/dist/ComboBox.js +539 -274
  79. package/dist/ComboBox.js.map +1 -1
  80. package/dist/ComboBox.jsx +213 -70
  81. package/dist/ComboBox.jsx.map +1 -1
  82. package/dist/ContextualHelpTrigger.d.ts +1 -7
  83. package/dist/ContextualHelpTrigger.d.ts.map +1 -1
  84. package/dist/ContextualHelpTrigger.js +102 -72
  85. package/dist/ContextualHelpTrigger.js.map +1 -1
  86. package/dist/ContextualHelpTrigger.jsx +36 -16
  87. package/dist/ContextualHelpTrigger.jsx.map +1 -1
  88. package/dist/DateField.d.ts +2 -7
  89. package/dist/DateField.d.ts.map +1 -1
  90. package/dist/DateField.js +0 -2
  91. package/dist/DateField.jsx +0 -2
  92. package/dist/DateField2.js +194 -179
  93. package/dist/DateField2.js.map +1 -1
  94. package/dist/DateField2.jsx +58 -55
  95. package/dist/DateField2.jsx.map +1 -1
  96. package/dist/DatePicker.d.ts +7 -7
  97. package/dist/DatePicker.d.ts.map +1 -1
  98. package/dist/DatePicker.js +2 -2
  99. package/dist/DatePicker.jsx +2 -2
  100. package/dist/DatePicker2.js +357 -435
  101. package/dist/DatePicker2.js.map +1 -1
  102. package/dist/DatePicker2.jsx +109 -178
  103. package/dist/DatePicker2.jsx.map +1 -1
  104. package/dist/DateRangePickerContext.d.ts +7 -0
  105. package/dist/DateRangePickerContext.d.ts.map +1 -1
  106. package/dist/Dialog.d.ts +4 -9
  107. package/dist/Dialog.d.ts.map +1 -1
  108. package/dist/Dialog.js +168 -101
  109. package/dist/Dialog.js.map +1 -1
  110. package/dist/Dialog.jsx +75 -27
  111. package/dist/Dialog.jsx.map +1 -1
  112. package/dist/Disclosure.d.ts +1 -9
  113. package/dist/Disclosure.d.ts.map +1 -1
  114. package/dist/Disclosure.js +121 -79
  115. package/dist/Disclosure.js.map +1 -1
  116. package/dist/Disclosure.jsx +32 -19
  117. package/dist/Disclosure.jsx.map +1 -1
  118. package/dist/DragAndDrop.d.ts +9 -6
  119. package/dist/DragAndDrop.d.ts.map +1 -1
  120. package/dist/DragAndDrop.js +37 -22
  121. package/dist/DragAndDrop.js.map +1 -1
  122. package/dist/DragAndDrop.jsx +20 -4
  123. package/dist/DragAndDrop.jsx.map +1 -1
  124. package/dist/DragPreview.d.ts +1 -1
  125. package/dist/DragPreview.d.ts.map +1 -1
  126. package/dist/DropZone.d.ts +1 -7
  127. package/dist/DropZone.d.ts.map +1 -1
  128. package/dist/DropZone.js +74 -40
  129. package/dist/DropZone.js.map +1 -1
  130. package/dist/DropZone.jsx +24 -8
  131. package/dist/DropZone.jsx.map +1 -1
  132. package/dist/ElementTag.d.ts +9 -20
  133. package/dist/ElementTag.d.ts.map +1 -1
  134. package/dist/ElementTag.js +8 -210
  135. package/dist/ElementTag.js.map +1 -1
  136. package/dist/ElementTag.jsx +8 -57
  137. package/dist/ElementTag.jsx.map +1 -1
  138. package/dist/FieldError.d.ts +8 -7
  139. package/dist/FieldError.d.ts.map +1 -1
  140. package/dist/FieldError.js +33 -13
  141. package/dist/FieldError.js.map +1 -1
  142. package/dist/FieldError.jsx +20 -5
  143. package/dist/FieldError.jsx.map +1 -1
  144. package/dist/FileTrigger.d.ts +1 -7
  145. package/dist/FileTrigger.d.ts.map +1 -1
  146. package/dist/FileTrigger.js +30 -12
  147. package/dist/FileTrigger.js.map +1 -1
  148. package/dist/FileTrigger.jsx +15 -2
  149. package/dist/FileTrigger.jsx.map +1 -1
  150. package/dist/Focusable.d.ts +2 -8
  151. package/dist/Focusable.d.ts.map +1 -1
  152. package/dist/Focusable.js +23 -6
  153. package/dist/Focusable.js.map +1 -1
  154. package/dist/Focusable.jsx +22 -5
  155. package/dist/Focusable.jsx.map +1 -1
  156. package/dist/Form.d.ts +9 -8
  157. package/dist/Form.d.ts.map +1 -1
  158. package/dist/Form.js +66 -43
  159. package/dist/Form.js.map +1 -1
  160. package/dist/Form.jsx +36 -16
  161. package/dist/Form.jsx.map +1 -1
  162. package/dist/GridList.d.ts +5 -10
  163. package/dist/GridList.d.ts.map +1 -1
  164. package/dist/GridList.js +372 -243
  165. package/dist/GridList.js.map +1 -1
  166. package/dist/GridList.jsx +177 -99
  167. package/dist/GridList.jsx.map +1 -1
  168. package/dist/HiddenDateInput.d.ts +1 -7
  169. package/dist/HiddenDateInput.d.ts.map +1 -1
  170. package/dist/Icon.d.ts +4 -1
  171. package/dist/Icon.d.ts.map +1 -1
  172. package/dist/Icon.js +41 -37
  173. package/dist/Icon.js.map +1 -1
  174. package/dist/Icon.jsx +7 -3
  175. package/dist/Icon.jsx.map +1 -1
  176. package/dist/Keyboard.d.ts +1 -7
  177. package/dist/Keyboard.d.ts.map +1 -1
  178. package/dist/Keyboard.js +24 -11
  179. package/dist/Keyboard.js.map +1 -1
  180. package/dist/Keyboard.jsx +15 -2
  181. package/dist/Keyboard.jsx.map +1 -1
  182. package/dist/Label.d.ts +20 -0
  183. package/dist/Label.d.ts.map +1 -0
  184. package/dist/Label.js +60 -0
  185. package/dist/Label.js.map +1 -0
  186. package/dist/Label.jsx +47 -0
  187. package/dist/Label.jsx.map +1 -0
  188. package/dist/Landmark.d.ts +4 -1
  189. package/dist/Landmark.d.ts.map +1 -1
  190. package/dist/Landmark.js +10 -4
  191. package/dist/Landmark.js.map +1 -1
  192. package/dist/Landmark.jsx +5 -1
  193. package/dist/Landmark.jsx.map +1 -1
  194. package/dist/Link.d.ts +2 -7
  195. package/dist/Link.d.ts.map +1 -1
  196. package/dist/Link.js +56 -36
  197. package/dist/Link.js.map +1 -1
  198. package/dist/Link.jsx +52 -10
  199. package/dist/Link.jsx.map +1 -1
  200. package/dist/ListBox.d.ts +17 -13
  201. package/dist/ListBox.d.ts.map +1 -1
  202. package/dist/ListBox.js +647 -348
  203. package/dist/ListBox.js.map +1 -1
  204. package/dist/ListBox.jsx +339 -236
  205. package/dist/ListBox.jsx.map +1 -1
  206. package/dist/ListDropTargetDelegate.d.ts +3 -0
  207. package/dist/ListDropTargetDelegate.d.ts.map +1 -1
  208. package/dist/Menu.d.ts +39 -30
  209. package/dist/Menu.d.ts.map +1 -1
  210. package/dist/Menu.js +547 -368
  211. package/dist/Menu.js.map +1 -1
  212. package/dist/Menu.jsx +328 -230
  213. package/dist/Menu.jsx.map +1 -1
  214. package/dist/Meter.d.ts +6 -13
  215. package/dist/Meter.d.ts.map +1 -1
  216. package/dist/Meter.js +55 -18
  217. package/dist/Meter.js.map +1 -1
  218. package/dist/Meter.jsx +33 -8
  219. package/dist/Meter.jsx.map +1 -1
  220. package/dist/Modal.d.ts +1 -7
  221. package/dist/Modal.d.ts.map +1 -1
  222. package/dist/Modal.js +104 -56
  223. package/dist/Modal.js.map +1 -1
  224. package/dist/Modal.jsx +68 -38
  225. package/dist/Modal.jsx.map +1 -1
  226. package/dist/NumberField.d.ts +4 -7
  227. package/dist/NumberField.d.ts.map +1 -1
  228. package/dist/NumberField.js +243 -124
  229. package/dist/NumberField.js.map +1 -1
  230. package/dist/NumberField.jsx +115 -26
  231. package/dist/NumberField.jsx.map +1 -1
  232. package/dist/Popover.d.ts +15 -7
  233. package/dist/Popover.d.ts.map +1 -1
  234. package/dist/Popover.js +370 -181
  235. package/dist/Popover.js.map +1 -1
  236. package/dist/Popover.jsx +215 -82
  237. package/dist/Popover.jsx.map +1 -1
  238. package/dist/Pressable.d.ts +2 -8
  239. package/dist/Pressable.d.ts.map +1 -1
  240. package/dist/Pressable.js +23 -6
  241. package/dist/Pressable.js.map +1 -1
  242. package/dist/Pressable.jsx +22 -5
  243. package/dist/Pressable.jsx.map +1 -1
  244. package/dist/PreviewTrigger.d.ts +24 -0
  245. package/dist/PreviewTrigger.d.ts.map +1 -0
  246. package/dist/PreviewTrigger.js +128 -0
  247. package/dist/PreviewTrigger.js.map +1 -0
  248. package/dist/PreviewTrigger.jsx +117 -0
  249. package/dist/PreviewTrigger.jsx.map +1 -0
  250. package/dist/ProgressBar.d.ts +1 -7
  251. package/dist/ProgressBar.d.ts.map +1 -1
  252. package/dist/ProgressBar.js +34 -14
  253. package/dist/ProgressBar.js.map +1 -1
  254. package/dist/ProgressBar.jsx +17 -3
  255. package/dist/ProgressBar.jsx.map +1 -1
  256. package/dist/RadioGroup.d.ts +2 -7
  257. package/dist/RadioGroup.d.ts.map +1 -1
  258. package/dist/RadioGroup.js +388 -269
  259. package/dist/RadioGroup.js.map +1 -1
  260. package/dist/RadioGroup.jsx +110 -99
  261. package/dist/RadioGroup.jsx.map +1 -1
  262. package/dist/RangeCalendar.d.ts +3 -7
  263. package/dist/RangeCalendar.d.ts.map +1 -1
  264. package/dist/RangeCalendar.js +271 -202
  265. package/dist/RangeCalendar.js.map +1 -1
  266. package/dist/RangeCalendar.jsx +56 -37
  267. package/dist/RangeCalendar.jsx.map +1 -1
  268. package/dist/RouterProvider.d.ts +3 -9
  269. package/dist/RouterProvider.d.ts.map +1 -1
  270. package/dist/RouterProvider.js +15 -14
  271. package/dist/RouterProvider.js.map +1 -1
  272. package/dist/RouterProvider.jsx +14 -13
  273. package/dist/RouterProvider.jsx.map +1 -1
  274. package/dist/SearchField.d.ts +4 -7
  275. package/dist/SearchField.d.ts.map +1 -1
  276. package/dist/SearchField.js +191 -164
  277. package/dist/SearchField.js.map +1 -1
  278. package/dist/SearchField.jsx +69 -62
  279. package/dist/SearchField.jsx.map +1 -1
  280. package/dist/Select.d.ts +5 -10
  281. package/dist/Select.d.ts.map +1 -1
  282. package/dist/Select.js +565 -359
  283. package/dist/Select.js.map +1 -1
  284. package/dist/Select.jsx +281 -161
  285. package/dist/Select.jsx.map +1 -1
  286. package/dist/SelectionIndicator.d.ts +1 -4
  287. package/dist/SelectionIndicator.d.ts.map +1 -1
  288. package/dist/SelectionIndicator.js +29 -13
  289. package/dist/SelectionIndicator.js.map +1 -1
  290. package/dist/SelectionIndicator.jsx +18 -4
  291. package/dist/SelectionIndicator.jsx.map +1 -1
  292. package/dist/Separator.d.ts +1 -7
  293. package/dist/Separator.d.ts.map +1 -1
  294. package/dist/Separator.js +22 -6
  295. package/dist/Separator.js.map +1 -1
  296. package/dist/Separator.jsx +16 -3
  297. package/dist/Separator.jsx.map +1 -1
  298. package/dist/SharedElementTransition.d.ts +1 -10
  299. package/dist/SharedElementTransition.d.ts.map +1 -1
  300. package/dist/SharedElementTransition.js +68 -40
  301. package/dist/SharedElementTransition.js.map +1 -1
  302. package/dist/SharedElementTransition.jsx +49 -25
  303. package/dist/SharedElementTransition.jsx.map +1 -1
  304. package/dist/Slider.d.ts +2 -8
  305. package/dist/Slider.d.ts.map +1 -1
  306. package/dist/Slider.js +155 -97
  307. package/dist/Slider.js.map +1 -1
  308. package/dist/Slider.jsx +25 -12
  309. package/dist/Slider.jsx.map +1 -1
  310. package/dist/StepList.d.ts +1 -7
  311. package/dist/StepList.d.ts.map +1 -1
  312. package/dist/StepList.js +112 -68
  313. package/dist/StepList.js.map +1 -1
  314. package/dist/StepList.jsx +58 -20
  315. package/dist/StepList.jsx.map +1 -1
  316. package/dist/Switch.d.ts +2 -9
  317. package/dist/Switch.d.ts.map +1 -1
  318. package/dist/Switch.js +164 -114
  319. package/dist/Switch.js.map +1 -1
  320. package/dist/Switch.jsx +26 -13
  321. package/dist/Switch.jsx.map +1 -1
  322. package/dist/Table.d.ts +2 -1
  323. package/dist/Table.d.ts.map +1 -1
  324. package/dist/Table.js +689 -592
  325. package/dist/Table.js.map +1 -1
  326. package/dist/Table.jsx +317 -237
  327. package/dist/Table.jsx.map +1 -1
  328. package/dist/Tabs.d.ts +2 -7
  329. package/dist/Tabs.d.ts.map +1 -1
  330. package/dist/Tabs.js +278 -293
  331. package/dist/Tabs.js.map +1 -1
  332. package/dist/Tabs.jsx +68 -66
  333. package/dist/Tabs.jsx.map +1 -1
  334. package/dist/TagGroup.d.ts +4 -11
  335. package/dist/TagGroup.d.ts.map +1 -1
  336. package/dist/TagGroup.js +153 -115
  337. package/dist/TagGroup.js.map +1 -1
  338. package/dist/TagGroup.jsx +37 -24
  339. package/dist/TagGroup.jsx.map +1 -1
  340. package/dist/Text.d.ts +3 -3
  341. package/dist/Text.d.ts.map +1 -1
  342. package/dist/Text.js +24 -7
  343. package/dist/Text.js.map +1 -1
  344. package/dist/Text.jsx +17 -5
  345. package/dist/Text.jsx.map +1 -1
  346. package/dist/TextField.d.ts +3 -16
  347. package/dist/TextField.d.ts.map +1 -1
  348. package/dist/TextField.js +104 -129
  349. package/dist/TextField.js.map +1 -1
  350. package/dist/TextField.jsx +76 -102
  351. package/dist/TextField.jsx.map +1 -1
  352. package/dist/TimeField.d.ts +2 -15
  353. package/dist/TimeField.d.ts.map +1 -1
  354. package/dist/TimeField.js +86 -102
  355. package/dist/TimeField.js.map +1 -1
  356. package/dist/TimeField.jsx +32 -49
  357. package/dist/TimeField.jsx.map +1 -1
  358. package/dist/Toast.d.ts +10 -13
  359. package/dist/Toast.d.ts.map +1 -1
  360. package/dist/Toast.js +209 -108
  361. package/dist/Toast.js.map +1 -1
  362. package/dist/Toast.jsx +127 -22
  363. package/dist/Toast.jsx.map +1 -1
  364. package/dist/ToggleButton.d.ts +1 -7
  365. package/dist/ToggleButton.d.ts.map +1 -1
  366. package/dist/ToggleButton.js +57 -35
  367. package/dist/ToggleButton.js.map +1 -1
  368. package/dist/ToggleButton.jsx +26 -12
  369. package/dist/ToggleButton.jsx.map +1 -1
  370. package/dist/ToggleButtonGroup.d.ts +1 -7
  371. package/dist/ToggleButtonGroup.d.ts.map +1 -1
  372. package/dist/ToggleButtonGroup.js +59 -44
  373. package/dist/ToggleButtonGroup.js.map +1 -1
  374. package/dist/ToggleButtonGroup.jsx +25 -12
  375. package/dist/ToggleButtonGroup.jsx.map +1 -1
  376. package/dist/TokenField.d.ts +52 -0
  377. package/dist/TokenField.d.ts.map +1 -0
  378. package/dist/TokenField.js +301 -0
  379. package/dist/TokenField.js.map +1 -0
  380. package/dist/TokenField.jsx +197 -0
  381. package/dist/TokenField.jsx.map +1 -0
  382. package/dist/Toolbar.d.ts +2 -7
  383. package/dist/Toolbar.d.ts.map +1 -1
  384. package/dist/Toolbar.js +35 -16
  385. package/dist/Toolbar.js.map +1 -1
  386. package/dist/Toolbar.jsx +15 -2
  387. package/dist/Toolbar.jsx.map +1 -1
  388. package/dist/Tooltip.d.ts +2 -7
  389. package/dist/Tooltip.d.ts.map +1 -1
  390. package/dist/Tooltip.js +105 -68
  391. package/dist/Tooltip.js.map +1 -1
  392. package/dist/Tooltip.jsx +60 -36
  393. package/dist/Tooltip.jsx.map +1 -1
  394. package/dist/Tree.d.ts +8 -11
  395. package/dist/Tree.d.ts.map +1 -1
  396. package/dist/Tree.js +486 -339
  397. package/dist/Tree.js.map +1 -1
  398. package/dist/Tree.jsx +155 -107
  399. package/dist/Tree.jsx.map +1 -1
  400. package/dist/Virtualizer.d.ts +39 -9
  401. package/dist/Virtualizer.d.ts.map +1 -1
  402. package/dist/Virtualizer.js +2 -2
  403. package/dist/Virtualizer.jsx +2 -2
  404. package/dist/Virtualizer2.js +491 -136
  405. package/dist/Virtualizer2.js.map +1 -1
  406. package/dist/Virtualizer2.jsx +455 -122
  407. package/dist/Virtualizer2.jsx.map +1 -1
  408. package/dist/VirtualizerLayouts.d.ts +55 -2
  409. package/dist/VirtualizerLayouts.d.ts.map +1 -1
  410. package/dist/VisuallyHidden.d.ts +4 -3
  411. package/dist/VisuallyHidden.d.ts.map +1 -1
  412. package/dist/VisuallyHidden.js +18 -11
  413. package/dist/VisuallyHidden.js.map +1 -1
  414. package/dist/VisuallyHidden.jsx +15 -9
  415. package/dist/VisuallyHidden.jsx.map +1 -1
  416. package/dist/contexts.d.ts +25 -0
  417. package/dist/contexts.d.ts.map +1 -1
  418. package/dist/contexts.js +3 -0
  419. package/dist/contexts.js.map +1 -1
  420. package/dist/contexts.jsx +3 -0
  421. package/dist/contexts.jsx.map +1 -1
  422. package/dist/index.d.ts +11 -9
  423. package/dist/index.d.ts.map +1 -1
  424. package/dist/index.js +14 -11
  425. package/dist/index.jsx +14 -11
  426. package/dist/intl/index.d.ts +16 -0
  427. package/dist/intl/index.d.ts.map +1 -0
  428. package/dist/intl.js +212 -0
  429. package/dist/intl.js.map +1 -0
  430. package/dist/intl.jsx +212 -0
  431. package/dist/intl.jsx.map +1 -0
  432. package/dist/useDragAndDrop.d.ts +4 -2
  433. package/dist/useDragAndDrop.d.ts.map +1 -1
  434. package/dist/useDragAndDrop2.js +39 -21
  435. package/dist/useDragAndDrop2.js.map +1 -1
  436. package/dist/useDragAndDrop2.jsx +39 -21
  437. package/dist/useDragAndDrop2.jsx.map +1 -1
  438. package/dist/utils.d.ts +28 -9
  439. package/dist/utils.d.ts.map +1 -1
  440. package/dist/utils.js +96 -24
  441. package/dist/utils.js.map +1 -1
  442. package/dist/utils.jsx +81 -24
  443. package/dist/utils.jsx.map +1 -1
  444. package/dist/virtualizer/Layout.d.ts +9 -0
  445. package/dist/virtualizer/Layout.d.ts.map +1 -1
  446. package/dist/virtualizer/Layout.js +23 -2
  447. package/dist/virtualizer/Layout.js.map +1 -1
  448. package/dist/virtualizer/Layout.jsx +23 -2
  449. package/dist/virtualizer/Layout.jsx.map +1 -1
  450. package/package.json +29 -10
  451. package/src/ActionBar.tsx +50 -24
  452. package/src/ActionGroup.tsx +31 -19
  453. package/src/Alert.tsx +10 -4
  454. package/src/Autocomplete.tsx +24 -15
  455. package/src/Breadcrumbs.tsx +32 -16
  456. package/src/Button.tsx +182 -67
  457. package/src/Calendar.tsx +65 -47
  458. package/src/CalendarPicker.tsx +16 -1
  459. package/src/Checkbox.tsx +84 -116
  460. package/src/Collection.tsx +84 -3
  461. package/src/Color.tsx +282 -104
  462. package/src/ColorEditor.tsx +5 -1
  463. package/src/ComboBox.tsx +384 -109
  464. package/src/ContextualHelpTrigger.tsx +47 -41
  465. package/src/DateField.tsx +74 -106
  466. package/src/DatePicker.tsx +156 -352
  467. package/src/DateRangePickerContext.tsx +8 -0
  468. package/src/Dialog.tsx +105 -38
  469. package/src/Disclosure.tsx +29 -19
  470. package/src/DragAndDrop.tsx +43 -8
  471. package/src/DragPreview.tsx +20 -1
  472. package/src/DropZone.tsx +32 -18
  473. package/src/ElementTag.tsx +14 -104
  474. package/src/FieldError.tsx +39 -7
  475. package/src/FileTrigger.tsx +18 -3
  476. package/src/Focusable.tsx +27 -6
  477. package/src/Form.tsx +57 -11
  478. package/src/GridList.tsx +233 -141
  479. package/src/HiddenDateInput.tsx +19 -3
  480. package/src/Icon.tsx +8 -2
  481. package/src/Keyboard.tsx +18 -2
  482. package/src/Label.tsx +77 -0
  483. package/src/Landmark.tsx +6 -1
  484. package/src/Link.tsx +65 -19
  485. package/src/ListBox.tsx +645 -468
  486. package/src/ListDropTargetDelegate.ts +4 -0
  487. package/src/Menu.tsx +512 -349
  488. package/src/Meter.tsx +42 -8
  489. package/src/Modal.tsx +85 -42
  490. package/src/NumberField.tsx +161 -48
  491. package/src/Popover.tsx +424 -148
  492. package/src/Pressable.tsx +27 -6
  493. package/src/PreviewTrigger.tsx +171 -0
  494. package/src/ProgressBar.tsx +25 -3
  495. package/src/RadioGroup.tsx +230 -161
  496. package/src/RangeCalendar.tsx +75 -63
  497. package/src/RouterProvider.tsx +24 -14
  498. package/src/SearchField.tsx +118 -121
  499. package/src/Select.tsx +454 -274
  500. package/src/SelectionIndicator.tsx +21 -3
  501. package/src/Separator.tsx +17 -1
  502. package/src/SharedElementTransition.tsx +115 -97
  503. package/src/Slider.tsx +35 -17
  504. package/src/StepList.tsx +71 -32
  505. package/src/Switch.tsx +45 -29
  506. package/src/Table.tsx +446 -380
  507. package/src/Tabs.tsx +132 -155
  508. package/src/TagGroup.tsx +53 -40
  509. package/src/Text.tsx +23 -6
  510. package/src/TextField.tsx +118 -159
  511. package/src/TimeField.tsx +34 -95
  512. package/src/Toast.tsx +141 -67
  513. package/src/ToggleButton.tsx +33 -15
  514. package/src/ToggleButtonGroup.tsx +27 -9
  515. package/src/TokenField.tsx +379 -0
  516. package/src/Toolbar.tsx +19 -9
  517. package/src/Tooltip.tsx +126 -84
  518. package/src/Tree.tsx +233 -173
  519. package/src/Virtualizer.tsx +400 -138
  520. package/src/VirtualizerLayouts.ts +211 -26
  521. package/src/VisuallyHidden.tsx +22 -8
  522. package/src/contexts.ts +13 -0
  523. package/src/index.ts +32 -11
  524. package/src/intl/ar-AE.json +6 -0
  525. package/src/intl/bg-BG.json +6 -0
  526. package/src/intl/cs-CZ.json +6 -0
  527. package/src/intl/da-DK.json +6 -0
  528. package/src/intl/de-DE.json +6 -0
  529. package/src/intl/el-GR.json +6 -0
  530. package/src/intl/en-US.json +6 -0
  531. package/src/intl/es-ES.json +6 -0
  532. package/src/intl/et-EE.json +6 -0
  533. package/src/intl/fi-FI.json +6 -0
  534. package/src/intl/fr-FR.json +6 -0
  535. package/src/intl/he-IL.json +6 -0
  536. package/src/intl/hr-HR.json +6 -0
  537. package/src/intl/hu-HU.json +6 -0
  538. package/src/intl/index.ts +125 -0
  539. package/src/intl/it-IT.json +6 -0
  540. package/src/intl/ja-JP.json +6 -0
  541. package/src/intl/ko-KR.json +6 -0
  542. package/src/intl/lt-LT.json +6 -0
  543. package/src/intl/lv-LV.json +6 -0
  544. package/src/intl/nb-NO.json +6 -0
  545. package/src/intl/nl-NL.json +6 -0
  546. package/src/intl/pl-PL.json +6 -0
  547. package/src/intl/pt-BR.json +6 -0
  548. package/src/intl/pt-PT.json +6 -0
  549. package/src/intl/ro-RO.json +6 -0
  550. package/src/intl/ru-RU.json +6 -0
  551. package/src/intl/sk-SK.json +6 -0
  552. package/src/intl/sl-SI.json +6 -0
  553. package/src/intl/sr-SP.json +6 -0
  554. package/src/intl/sv-SE.json +6 -0
  555. package/src/intl/tr-TR.json +6 -0
  556. package/src/intl/uk-UA.json +6 -0
  557. package/src/intl/zh-CN.json +6 -0
  558. package/src/intl/zh-TW.json +6 -0
  559. package/src/useDragAndDrop.ts +30 -32
  560. package/src/utils.tsx +124 -68
  561. package/src/virtualizer/Layout.ts +29 -0
package/dist/Table.js CHANGED
@@ -2,12 +2,15 @@ import { dataAttr, filterDOMProps, useRenderProps } from "./utils.js";
2
2
  import { ButtonContext } from "./Button.js";
3
3
  import { SharedElementTransition } from "./SharedElementTransition.js";
4
4
  import { useLinkProps, useRouter } from "./RouterProvider.js";
5
- import { CollectionRendererContext, useCollectionRenderer } from "./Collection.js";
6
- import { r as useVirtualizerContext } from "./Virtualizer2.js";
7
- import { getNormalizedDropTargetKey, mergePersistedKeysIntoVirtualRange, useDndPersistedKeys, useRenderDropIndicator } from "./DragAndDrop.js";
8
- import { className, createComponent, effect, getNextElement, getNextMarker, insert, memo, mergeProps, runHydrationEvents, setAttribute, setStyleProperty, spread, style, template, use } from "solid-js/web";
9
- import { For, Show, createContext, createEffect, createMemo, createSignal, createUniqueId, onCleanup, splitProps, untrack, useContext } from "solid-js";
10
- import { createFocusRing, createHover, createTable, createTableCell, createTableColumnHeader, createTableColumnResize, createTableRow, createTableRowGroup, createTableSelectAllCheckbox, createTableSelectionCheckbox, getTableData, isFocusVisible, mergeProps as mergeProps$2 } from "@proyecto-viviana/solidaria";
5
+ import { t as racIntlStrings } from "./intl.js";
6
+ import { CollectionRendererContext, renderCollectionDropSlots, useCollectionRenderer, useCollectionRoot } from "./Collection.js";
7
+ import { o as useVirtualizerContext, t as PersistedVirtualItem } from "./Virtualizer2.js";
8
+ import { getNormalizedDropTargetKey, indexesOutsideRange, mergePersistedKeysIntoVirtualRange, useDndPersistedKeys, useRenderDropIndicator } from "./DragAndDrop.js";
9
+ import { createTreeDropTargetDelegate } from "./Tree.js";
10
+ import { className, createComponent, effect, getNextElement, getNextMarker, insert, memo, mergeProps, readShallow, ref, runHydrationEvents, scope, setAttribute, spread, style, template } from "@solidjs/web";
11
+ import { For, Show, createContext, createEffect, createMemo, createRenderEffect, createSignal, createTrackedEffect, createUniqueId, untrack, useContext } from "solid-js";
12
+ import { createFocusRing, createHover, createStringFormatter, createTable, createTableCell, createTableColumnHeader, createTableColumnResize, createTableRow, createTableRowGroup, createTableSelectAllCheckbox, createTableSelectionCheckbox, getTableData, isFocusVisible, mergeProps as mergeProps$1, useLocale } from "@proyecto-viviana/solidaria";
13
+ import { splitProps } from "@proyecto-viviana/solidaria/utils";
11
14
  import { createTableCollection, createTableColumnResizeState, createTableState, createTreeGridState } from "@proyecto-viviana/solid-stately";
12
15
  //#region src/Table.tsx
13
16
  /**
@@ -16,8 +19,21 @@ import { createTableCollection, createTableColumnResizeState, createTableState,
16
19
  * A pre-wired headless table that combines state + aria hooks.
17
20
  * Based on react-aria-components/src/Table.tsx
18
21
  */
19
- var _tmpl$ = /*#__PURE__*/ template(`<table>`), _tmpl$2 = /*#__PURE__*/ template(`<tr role=row>`), _tmpl$3 = /*#__PURE__*/ template(`<thead><tr role=row>`), _tmpl$4 = /*#__PURE__*/ template(`<th>`), _tmpl$5 = /*#__PURE__*/ template(`<tr role=row data-empty-state><th role=rowheader>`), _tmpl$6 = /*#__PURE__*/ template(`<tr role=presentation aria-hidden=true data-virtualizer-spacer=top><td style=padding:0;border:0>`), _tmpl$7 = /*#__PURE__*/ template(`<tr role=presentation aria-hidden=true data-virtualizer-spacer=bottom><td style=padding:0;border:0>`), _tmpl$8 = /*#__PURE__*/ template(`<tbody><!$><!/><!$><!/>`), _tmpl$9 = /*#__PURE__*/ template(`<tfoot>`), _tmpl$0 = /*#__PURE__*/ template(`<div role=progressbar aria-label=loading>`), _tmpl$1 = /*#__PURE__*/ template(`<tr inert style=position:relative;width:0;height:0;overflow:hidden><td><div data-testid=loadMoreSentinel style=position:absolute;height:1px;width:1px>`), _tmpl$10 = /*#__PURE__*/ template(`<tr role=row tabindex=0 data-loading><td role=rowheader>`), _tmpl$11 = /*#__PURE__*/ template(`<tr>`), _tmpl$12 = /*#__PURE__*/ template(`<td>`), _tmpl$13 = /*#__PURE__*/ template(`<input>`), _tmpl$14 = /*#__PURE__*/ template(`<div><!$><!/><!$><!/>`), _tmpl$15 = /*#__PURE__*/ template(`<div>`);
20
- function assignRef(ref, el) {
22
+ var _tmpl$ = /* @__PURE__ */ template(`<div>`);
23
+ var _tmpl$2 = /* @__PURE__ */ template(`<table>`);
24
+ var _tmpl$3 = /* @__PURE__ */ template(`<thead>`);
25
+ var _tmpl$4 = /* @__PURE__ */ template(`<tbody>`);
26
+ var _tmpl$5 = /* @__PURE__ */ template(`<tfoot>`);
27
+ var _tmpl$6 = /* @__PURE__ */ template(`<tr>`);
28
+ var _tmpl$7 = /* @__PURE__ */ template(`<th>`);
29
+ var _tmpl$8 = /* @__PURE__ */ template(`<td>`);
30
+ var _tmpl$9 = /* @__PURE__ */ template(`<div role=progressbar aria-label=loading>`);
31
+ var _tmpl$10 = /* @__PURE__ */ template(`<div data-testid=loadMoreSentinel style=position:absolute;height:1px;width:1px>`);
32
+ var _tmpl$11 = /* @__PURE__ */ template(`<tr inert style=position:relative;width:0;height:0;overflow:hidden><td><div data-testid=loadMoreSentinel style=position:absolute;height:1px;width:1px>`);
33
+ var _tmpl$12 = /* @__PURE__ */ template(`<tr role=row tabindex=0 data-loading><td role=rowheader>`);
34
+ var _tmpl$13 = /* @__PURE__ */ template(`<input>`);
35
+ var _tmpl$14 = /* @__PURE__ */ template(`<div><!$><!/><!$><!/>`);
36
+ function assignRef$1(ref, el) {
21
37
  if (!ref) return;
22
38
  if (typeof ref === "function") ref(el);
23
39
  else ref.current = el;
@@ -40,6 +56,81 @@ function resolveItemKey(item, getKey, index) {
40
56
  const record = item;
41
57
  return record.id ?? record.key ?? index;
42
58
  }
59
+ /** RAC Table.tsx TableElementType / THead / TBody / row / cell: div when virtualized. */
60
+ function TableHost(props) {
61
+ const [local, rest] = splitProps(props, [
62
+ "hostTag",
63
+ "virtualized",
64
+ "children"
65
+ ]);
66
+ if (local.virtualized) {
67
+ var _el$ = getNextElement(_tmpl$);
68
+ spread(_el$, rest, true);
69
+ insert(_el$, scope(() => {
70
+ return local.children;
71
+ }));
72
+ runHydrationEvents();
73
+ return _el$;
74
+ }
75
+ switch (local.hostTag) {
76
+ case "table":
77
+ var _el$2 = getNextElement(_tmpl$2);
78
+ spread(_el$2, rest, true);
79
+ insert(_el$2, scope(() => {
80
+ return local.children;
81
+ }));
82
+ runHydrationEvents();
83
+ return _el$2;
84
+ case "thead":
85
+ var _el$3 = getNextElement(_tmpl$3);
86
+ spread(_el$3, rest, true);
87
+ insert(_el$3, scope(() => {
88
+ return local.children;
89
+ }));
90
+ runHydrationEvents();
91
+ return _el$3;
92
+ case "tbody":
93
+ var _el$4 = getNextElement(_tmpl$4);
94
+ spread(_el$4, rest, true);
95
+ insert(_el$4, scope(() => {
96
+ return local.children;
97
+ }));
98
+ runHydrationEvents();
99
+ return _el$4;
100
+ case "tfoot":
101
+ var _el$5 = getNextElement(_tmpl$5);
102
+ spread(_el$5, rest, true);
103
+ insert(_el$5, scope(() => {
104
+ return local.children;
105
+ }));
106
+ runHydrationEvents();
107
+ return _el$5;
108
+ case "tr":
109
+ var _el$6 = getNextElement(_tmpl$6);
110
+ spread(_el$6, rest, true);
111
+ insert(_el$6, scope(() => {
112
+ return local.children;
113
+ }));
114
+ runHydrationEvents();
115
+ return _el$6;
116
+ case "th":
117
+ var _el$7 = getNextElement(_tmpl$7);
118
+ spread(_el$7, rest, true);
119
+ insert(_el$7, scope(() => {
120
+ return local.children;
121
+ }));
122
+ runHydrationEvents();
123
+ return _el$7;
124
+ default:
125
+ var _el$8 = getNextElement(_tmpl$8);
126
+ spread(_el$8, rest, true);
127
+ insert(_el$8, scope(() => {
128
+ return local.children;
129
+ }));
130
+ runHydrationEvents();
131
+ return _el$8;
132
+ }
133
+ }
43
134
  /**
44
135
  * Turns the flat `items` into nested {@link RowDefinition}s by recursively expanding each
45
136
  * item's children via `getChildItems`. The result feeds the tree-grid collection.
@@ -102,6 +193,7 @@ function Table(props) {
102
193
  "UNSTABLE_defaultExpandedKeys",
103
194
  "UNSTABLE_onExpandedChange"
104
195
  ]);
196
+ const locale = useLocale();
105
197
  const [ref, setRef] = createSignal(null);
106
198
  const normalizedColumns = createMemo(() => normalizeColumnDefinitions(stateProps.columns));
107
199
  const rowHeaderColumnKeys = createMemo(() => getRowHeaderColumnKeys(normalizedColumns()));
@@ -197,43 +289,38 @@ function Table(props) {
197
289
  const hooks = local.dragAndDropHooks;
198
290
  return Boolean(hooks?.useDroppableCollectionState && hooks.useDroppableCollection && (hooks.dropTargetDelegate || parentCollectionRenderer?.dropTargetDelegate || hooks.ListDropTargetDelegate));
199
291
  });
200
- const hasDraggableDnd = createMemo(() => {
292
+ const dragStateValue = createMemo(() => {
201
293
  const hooks = local.dragAndDropHooks;
202
294
  return Boolean(hooks?.useDraggableCollectionState && hooks.useDraggableCollection);
203
- });
204
- const dragState = createMemo(() => {
205
- if (!hasDraggableDnd()) return void 0;
206
- return local.dragAndDropHooks?.useDraggableCollectionState?.({ items: stateProps.items });
207
- });
208
- const dropState = createMemo(() => {
295
+ })() ? local.dragAndDropHooks?.useDraggableCollectionState?.({
296
+ items: stateProps.items,
297
+ collection: state.collection,
298
+ selectedKeys: state.selectedKeys,
299
+ isSelected: (key) => state.isSelected(key)
300
+ }) : void 0;
301
+ const dragState = () => dragStateValue;
302
+ const dropStateValue = hasDroppableDnd() ? local.dragAndDropHooks?.useDroppableCollectionState?.({ get collection() {
303
+ return state.collection;
304
+ } }) : void 0;
305
+ const dropState = () => dropStateValue;
306
+ if (local.dragAndDropHooks?.useDraggableCollection && dragStateValue) local.dragAndDropHooks.useDraggableCollection({}, dragStateValue, () => ref());
307
+ const droppableCollectionValue = (() => {
209
308
  if (!hasDroppableDnd()) return void 0;
210
- return local.dragAndDropHooks?.useDroppableCollectionState?.({});
211
- });
212
- createEffect(() => {
213
- if (!hasDraggableDnd()) return;
214
309
  const hooks = local.dragAndDropHooks;
215
- const activeDragState = dragState();
216
- if (!hooks?.useDraggableCollection || !activeDragState) return;
217
- hooks.useDraggableCollection({}, activeDragState, () => ref());
218
- });
219
- const droppableCollection = createMemo(() => {
220
- if (!hasDroppableDnd()) return void 0;
221
- const hooks = local.dragAndDropHooks;
222
- const activeDropState = dropState();
310
+ const activeDropState = dropStateValue;
223
311
  if (!hooks?.useDroppableCollection || !activeDropState) return void 0;
224
- const resolveDirection = () => {
225
- const el = ref();
226
- if (el && typeof window !== "undefined" && typeof window.getComputedStyle === "function") {
227
- if (window.getComputedStyle(el).direction === "rtl") return "rtl";
228
- }
229
- return typeof document !== "undefined" && document.dir === "rtl" ? "rtl" : "ltr";
230
- };
231
- const dropTargetDelegate = hooks.dropTargetDelegate ?? parentCollectionRenderer?.dropTargetDelegate ?? (hooks.ListDropTargetDelegate ? new hooks.ListDropTargetDelegate(() => state.collection, () => ref(), {
312
+ const resolveDirection = () => locale().direction;
313
+ const baseDropTargetDelegate = hooks.dropTargetDelegate ?? parentCollectionRenderer?.dropTargetDelegate ?? (hooks.ListDropTargetDelegate ? new hooks.ListDropTargetDelegate(() => state.collection, () => ref(), {
232
314
  layout: "grid",
233
315
  orientation: "vertical",
234
316
  direction: resolveDirection()
235
317
  }) : void 0);
236
- if (!dropTargetDelegate) return void 0;
318
+ if (!baseDropTargetDelegate) return void 0;
319
+ const expandedKeys = state.expandedKeys;
320
+ const dropTargetDelegate = createTreeDropTargetDelegate(baseDropTargetDelegate, {
321
+ collection: state.collection,
322
+ expandedKeys: expandedKeys === "all" ? new Set(Array.from(state.collection, (node) => node.key)) : expandedKeys ?? /* @__PURE__ */ new Set()
323
+ }, resolveDirection());
237
324
  return hooks.useDroppableCollection({
238
325
  dropTargetDelegate,
239
326
  keyboardDelegate: {
@@ -259,7 +346,8 @@ function Table(props) {
259
346
  },
260
347
  setFocusedKey: (key) => state.setFocusedKey(key)
261
348
  }, activeDropState, () => ref());
262
- });
349
+ })();
350
+ const droppableCollection = () => droppableCollectionValue;
263
351
  const isRootDropTarget = createMemo(() => {
264
352
  return Boolean(dropState()?.target?.type === "root");
265
353
  });
@@ -295,7 +383,8 @@ function Table(props) {
295
383
  },
296
384
  get isVirtualized() {
297
385
  return ariaProps.isVirtualized ?? parentCollectionRenderer?.isVirtualized ?? false;
298
- }
386
+ },
387
+ getScrollElement: () => ref()
299
388
  };
300
389
  const collectionRenderer = createMemo(() => ({
301
390
  ...parentCollectionRenderer,
@@ -306,38 +395,41 @@ function Table(props) {
306
395
  const tableProps = () => ({
307
396
  ref: (el) => {
308
397
  setRef(el);
309
- assignRef(local.ref, el);
398
+ assignRef$1(local.ref, el);
310
399
  },
311
- ...mergeProps$2(domProps(), cleanGridProps(), cleanFocusProps(), droppableCollection()?.collectionProps ?? {}),
400
+ ...mergeProps$1(domProps(), cleanGridProps(), cleanFocusProps(), droppableCollection()?.collectionProps ?? {}),
312
401
  class: renderProps.class(),
313
402
  style: renderProps.style(),
314
- "data-focused": state.isFocused || void 0,
315
- "data-focus-visible": isFocusVisible() || void 0,
316
- "data-empty": stateProps.items.length === 0 || void 0,
317
- "data-drop-target": isRootDropTarget() || void 0,
403
+ "data-focused": dataAttr(state.isFocused),
404
+ "data-focus-visible": dataAttr(isFocusVisible()),
405
+ "data-empty": dataAttr(stateProps.items.length === 0),
406
+ "data-drop-target": dataAttr(isRootDropTarget()),
318
407
  slot: local.slot
319
408
  });
320
- return createComponent(TableContext.Provider, {
409
+ return createComponent(TableContext, {
321
410
  value: contextValue,
322
411
  get children() {
323
- return createComponent(TableStateContext.Provider, {
412
+ return createComponent(TableStateContext, {
324
413
  value: state,
325
414
  get children() {
326
- return createComponent(CollectionRendererContext.Provider, {
415
+ return createComponent(CollectionRendererContext, {
327
416
  get value() {
328
417
  return collectionRenderer();
329
418
  },
330
419
  get children() {
331
- return memo(() => !!local.render)() ? local.render({
420
+ return memo(() => {
421
+ return !!local.render;
422
+ })() ? local.render({
332
423
  ...tableProps(),
333
424
  children: tableChildren()
334
- }, renderValues()) : (() => {
335
- var _el$ = getNextElement(_tmpl$);
336
- spread(_el$, mergeProps(tableProps), false, true);
337
- insert(_el$, tableChildren);
338
- runHydrationEvents();
339
- return _el$;
340
- })();
425
+ }, renderValues()) : createComponent(TableHost, mergeProps({
426
+ hostTag: "table",
427
+ get virtualized() {
428
+ return contextValue.isVirtualized;
429
+ }
430
+ }, tableProps, { get children() {
431
+ return tableChildren();
432
+ } }));
341
433
  }
342
434
  });
343
435
  }
@@ -357,7 +449,8 @@ function TableHeader(props) {
357
449
  "children",
358
450
  "ref"
359
451
  ]);
360
- if (!useContext(TableContext)) throw new Error("TableHeader must be used within a Table");
452
+ const context = useContext(TableContext);
453
+ if (!context) throw new Error("TableHeader must be used within a Table");
361
454
  const { rowGroupProps } = createTableRowGroup(() => ({ type: "thead" }));
362
455
  const { isHovered, hoverProps } = createHover({
363
456
  isDisabled: false,
@@ -389,38 +482,55 @@ function TableHeader(props) {
389
482
  return rest;
390
483
  };
391
484
  const headerProps = () => ({
392
- ref: (el) => assignRef(local.ref, el),
485
+ ref: (el) => assignRef$1(local.ref, el),
393
486
  ...domProps,
394
487
  ...cleanRowGroupProps(),
395
488
  ...cleanHoverProps(),
396
489
  class: renderProps.class(),
397
490
  style: renderProps.style(),
398
491
  "data-hovered": isHovered() || void 0,
399
- children: (() => {
400
- var _el$2 = getNextElement(_tmpl$2);
401
- insert(_el$2, () => local.children);
402
- return _el$2;
403
- })()
404
- });
405
- return local.render ? local.render(headerProps(), renderValues()) : (() => {
406
- var _el$3 = getNextElement(_tmpl$3), _el$4 = _el$3.firstChild;
407
- use((el) => assignRef(local.ref, el), _el$3);
408
- spread(_el$3, mergeProps(domProps, cleanRowGroupProps, cleanHoverProps, {
409
- get ["class"]() {
410
- return renderProps.class();
411
- },
412
- get style() {
413
- return renderProps.style();
492
+ children: createComponent(TableHost, {
493
+ hostTag: "tr",
494
+ get virtualized() {
495
+ return context.isVirtualized;
414
496
  },
415
- get ["data-hovered"]() {
416
- return isHovered() || void 0;
497
+ role: "row",
498
+ get children() {
499
+ return local.children;
417
500
  }
418
- }), false, true);
419
- insert(_el$4, () => local.children);
420
- runHydrationEvents();
421
- return _el$3;
422
- })();
501
+ })
502
+ });
503
+ return local.render ? local.render(headerProps(), renderValues()) : createComponent(TableHost, mergeProps({
504
+ hostTag: "thead",
505
+ get virtualized() {
506
+ return context.isVirtualized;
507
+ },
508
+ ref: (el) => assignRef$1(local.ref, el)
509
+ }, domProps, cleanRowGroupProps, cleanHoverProps, {
510
+ get "class"() {
511
+ return renderProps.class();
512
+ },
513
+ get style() {
514
+ return renderProps.style();
515
+ },
516
+ get "data-hovered"() {
517
+ return dataAttr(isHovered());
518
+ },
519
+ get children() {
520
+ return createComponent(TableHost, {
521
+ hostTag: "tr",
522
+ get virtualized() {
523
+ return context.isVirtualized;
524
+ },
525
+ role: "row",
526
+ get children() {
527
+ return local.children;
528
+ }
529
+ });
530
+ }
531
+ }));
423
532
  }
533
+ const TableColumnDefinitionContext = createContext(null);
424
534
  /**
425
535
  * A column header in a table.
426
536
  */
@@ -535,64 +645,56 @@ function TableColumn(props) {
535
645
  ...widthStyle
536
646
  };
537
647
  });
538
- const columnChildren = () => typeof local.children === "function" ? local.children(renderValues()) : local.children;
539
- const columnProps = () => ({
648
+ const columnChildren = () => {
649
+ const rawChildren = local.children;
650
+ return typeof rawChildren === "function" ? rawChildren(renderValues()) : rawChildren;
651
+ };
652
+ const columnAttrs = () => ({
540
653
  ref: (el) => {
541
654
  setRef(el);
542
- assignRef(local.ref, el);
655
+ assignRef$1(local.ref, el);
543
656
  },
544
657
  ...domProps,
545
- ...mergeProps$2(cleanColumnHeaderProps(), cleanHoverProps(), cleanFocusProps()),
658
+ ...mergeProps$1(cleanColumnHeaderProps(), cleanHoverProps(), cleanFocusProps()),
546
659
  class: renderProps.class(),
547
660
  style: columnStyle(),
548
- "data-sortable": local.allowsSorting || void 0,
661
+ "data-sortable": dataAttr(!!local.allowsSorting),
549
662
  "data-sort-direction": sortDirection() || void 0,
550
- "data-resizable": local.allowsResizing || void 0,
551
- "data-resizing": isResizing() || void 0,
552
- "data-hovered": isHovered() || void 0,
553
- "data-focused": state.focusedKey === local.id || void 0,
554
- "data-focus-visible": isFocusVisible() && state.focusedKey === local.id || void 0,
555
- children: columnChildren()
663
+ "data-resizable": dataAttr(!!local.allowsResizing),
664
+ "data-resizing": dataAttr(isResizing()),
665
+ "data-hovered": dataAttr(isHovered()),
666
+ "data-focused": dataAttr(state.focusedKey === local.id),
667
+ "data-focus-visible": dataAttr(isFocusVisible() && state.focusedKey === local.id),
668
+ "data-key": local.id
669
+ });
670
+ const columnDefinition = {
671
+ key: local.id,
672
+ width: local.width ?? local.defaultWidth,
673
+ minWidth: local.minWidth,
674
+ maxWidth: local.maxWidth
675
+ };
676
+ if (local.render) return createComponent(TableColumnDefinitionContext, {
677
+ value: columnDefinition,
678
+ get children() {
679
+ return local.render({
680
+ ...columnAttrs(),
681
+ children: columnChildren()
682
+ }, renderValues());
683
+ }
684
+ });
685
+ return createComponent(TableColumnDefinitionContext, {
686
+ value: columnDefinition,
687
+ get children() {
688
+ return createComponent(TableHost, mergeProps({
689
+ hostTag: "th",
690
+ get virtualized() {
691
+ return context.isVirtualized;
692
+ }
693
+ }, columnAttrs, { get children() {
694
+ return columnChildren();
695
+ } }));
696
+ }
556
697
  });
557
- return local.render ? local.render(columnProps(), renderValues()) : (() => {
558
- var _el$5 = getNextElement(_tmpl$4);
559
- use((el) => {
560
- setRef(el);
561
- assignRef(local.ref, el);
562
- }, _el$5);
563
- spread(_el$5, mergeProps(domProps, () => mergeProps$2(cleanColumnHeaderProps(), cleanHoverProps(), cleanFocusProps()), {
564
- get ["class"]() {
565
- return renderProps.class();
566
- },
567
- get style() {
568
- return columnStyle();
569
- },
570
- get ["data-sortable"]() {
571
- return local.allowsSorting || void 0;
572
- },
573
- get ["data-sort-direction"]() {
574
- return sortDirection() || void 0;
575
- },
576
- get ["data-resizable"]() {
577
- return local.allowsResizing || void 0;
578
- },
579
- get ["data-resizing"]() {
580
- return isResizing() || void 0;
581
- },
582
- get ["data-hovered"]() {
583
- return isHovered() || void 0;
584
- },
585
- get ["data-focused"]() {
586
- return state.focusedKey === local.id || void 0;
587
- },
588
- get ["data-focus-visible"]() {
589
- return memo(() => !!isFocusVisible())() && state.focusedKey === local.id || void 0;
590
- }
591
- }), false, true);
592
- insert(_el$5, columnChildren);
593
- runHydrationEvents();
594
- return _el$5;
595
- })();
596
698
  }
597
699
  /**
598
700
  * The body of a table containing data rows.
@@ -635,21 +737,22 @@ function TableBody(props) {
635
737
  if (!virtualizer || !parentCollectionRenderer?.isVirtualized) return null;
636
738
  const rowCount = items().length;
637
739
  const baseRange = virtualizer.getVisibleRange(rowCount);
638
- const persistedIndexes = Array.from(persistedKeys()).map((key) => rowNodes().findIndex((node) => node.key === key)).filter((index) => index >= 0);
639
740
  const dropTarget = context.dropState?.target;
640
741
  const normalizedDropKey = getNormalizedDropTargetKey(dropTarget, context.collection);
641
- const focusedKey = context.state.focusedKey;
642
- const focusedIndex = focusedKey != null ? rowNodes().findIndex((node) => node.key === focusedKey) : -1;
643
- return mergePersistedKeysIntoVirtualRange(baseRange, persistedIndexes, rowCount, virtualizer, 80, {
644
- forceIncludeIndexes: [
645
- dropTarget?.type === "item" ? rowNodes().findIndex((node) => node.key === dropTarget.key) : -1,
646
- normalizedDropKey != null ? rowNodes().findIndex((node) => node.key === normalizedDropKey) : -1,
647
- dropTarget?.type === "item" ? -1 : focusedIndex
648
- ].filter((index) => index >= 0),
742
+ const forceIncludeIndexes = [dropTarget?.type === "item" ? rowNodes().findIndex((node) => node.key === dropTarget.key) : -1, normalizedDropKey != null ? rowNodes().findIndex((node) => node.key === normalizedDropKey) : -1].filter((index) => index >= 0);
743
+ return mergePersistedKeysIntoVirtualRange(baseRange, [], rowCount, virtualizer, 80, {
744
+ forceIncludeIndexes,
649
745
  forceIncludeMaxSpan: 320
650
746
  });
651
747
  });
652
- createEffect(() => {
748
+ const persistedOutsideIndexes = createMemo(() => {
749
+ const range = virtualRange();
750
+ if (!range) return [];
751
+ const persistedIndexes = Array.from(persistedKeys()).map((key) => rowNodes().findIndex((node) => node.key === key)).filter((index) => index >= 0);
752
+ return indexesOutsideRange(range, persistedIndexes);
753
+ });
754
+ createTrackedEffect(() => {
755
+ const _s2Cleanups = [];
653
756
  if (!virtualizer || !parentCollectionRenderer?.isVirtualized) return;
654
757
  virtualizer.setDropTargetItemCountResolver(() => items().length);
655
758
  virtualizer.setDropTargetIndexResolver((key) => {
@@ -664,11 +767,14 @@ function TableBody(props) {
664
767
  key: typeof node.key === "string" || typeof node.key === "number" ? node.key : void 0
665
768
  };
666
769
  });
667
- onCleanup(() => {
770
+ _s2Cleanups.push(() => {
668
771
  virtualizer.setDropTargetIndexResolver(void 0);
669
772
  virtualizer.setDropTargetItemCountResolver(void 0);
670
773
  virtualizer.setDropTargetResolver(void 0);
671
774
  });
775
+ return () => {
776
+ for (const c of _s2Cleanups) c();
777
+ };
672
778
  });
673
779
  const visibleItems = createMemo(() => {
674
780
  if (context.state.treeColumn != null) return rowNodes().map((node) => node.value);
@@ -677,68 +783,94 @@ function TableBody(props) {
677
783
  return items().slice(range.start, range.end);
678
784
  });
679
785
  const spacerColSpan = () => context.columns.length + (context.showSelectionCheckboxes ? 1 : 0);
786
+ const CollectionRoot = useCollectionRoot();
787
+ const collectionRows = () => {
788
+ const rows = createComponent(For, {
789
+ get each() {
790
+ return visibleItems();
791
+ },
792
+ children: (item, index) => {
793
+ const itemIndex = () => (virtualRange()?.start ?? 0) + index();
794
+ return renderCollectionDropSlots({
795
+ index: itemIndex(),
796
+ lastIndex: rowNodes().length - 1,
797
+ renderDropIndicator: (i, position) => parentCollectionRenderer?.renderDropIndicator?.(i, position),
798
+ children: local.children?.(item)
799
+ });
800
+ }
801
+ });
802
+ if (!context.isVirtualized) return rows;
803
+ return createComponent(CollectionRoot, {
804
+ get collection() {
805
+ return memo(() => {
806
+ return !!virtualRange();
807
+ })() ? items() : [];
808
+ },
809
+ scrollRef: () => context.getScrollElement(),
810
+ get persistedKeys() {
811
+ return persistedKeys();
812
+ },
813
+ get children() {
814
+ return [rows, createComponent(For, {
815
+ get each() {
816
+ return persistedOutsideIndexes();
817
+ },
818
+ children: (index) => createComponent(PersistedVirtualItem, {
819
+ index,
820
+ get children() {
821
+ return renderCollectionDropSlots({
822
+ index,
823
+ lastIndex: rowNodes().length - 1,
824
+ renderDropIndicator: (i, position) => parentCollectionRenderer?.renderDropIndicator?.(i, position),
825
+ children: local.children?.(items()[index])
826
+ });
827
+ }
828
+ })
829
+ })];
830
+ }
831
+ });
832
+ };
680
833
  const bodyChildren = () => [createComponent(SharedElementTransition, { get children() {
681
834
  return createComponent(Show, {
682
835
  get when() {
683
- return memo(() => !!(isEmpty() && local.renderEmptyState))() && !local.isLoading;
836
+ return memo(() => {
837
+ return !!(isEmpty() && local.renderEmptyState);
838
+ })() ? !local.isLoading : isEmpty() && local.renderEmptyState;
684
839
  },
685
840
  get fallback() {
686
- return [
687
- memo(() => memo(() => !!virtualRange()?.offsetTop)() ? (() => {
688
- var _el$8 = getNextElement(_tmpl$6), _el$9 = _el$8.firstChild;
689
- effect((_p$) => {
690
- var _v$ = spacerColSpan(), _v$2 = `${virtualRange().offsetTop}px`;
691
- _v$ !== _p$.e && setAttribute(_el$9, "colspan", _p$.e = _v$);
692
- _v$2 !== _p$.t && setStyleProperty(_el$9, "height", _p$.t = _v$2);
693
- return _p$;
694
- }, {
695
- e: void 0,
696
- t: void 0
697
- });
698
- return _el$8;
699
- })() : null),
700
- createComponent(For, {
701
- get each() {
702
- return visibleItems();
703
- },
704
- children: (item, index) => {
705
- const itemIndex = () => (virtualRange()?.start ?? 0) + index();
706
- const beforeIndicator = () => parentCollectionRenderer?.renderDropIndicator?.(itemIndex(), "before");
707
- const onIndicator = () => parentCollectionRenderer?.renderDropIndicator?.(itemIndex(), "on");
708
- const afterIndicator = () => parentCollectionRenderer?.renderDropIndicator?.(itemIndex(), "after");
709
- return [
710
- memo(beforeIndicator),
711
- memo(onIndicator),
712
- memo(() => local.children?.(item)),
713
- memo(afterIndicator)
714
- ];
715
- }
716
- }),
717
- memo(() => memo(() => !!virtualRange()?.offsetBottom)() ? (() => {
718
- var _el$0 = getNextElement(_tmpl$7), _el$1 = _el$0.firstChild;
719
- effect((_p$) => {
720
- var _v$3 = spacerColSpan(), _v$4 = `${virtualRange().offsetBottom}px`;
721
- _v$3 !== _p$.e && setAttribute(_el$1, "colspan", _p$.e = _v$3);
722
- _v$4 !== _p$.t && setStyleProperty(_el$1, "height", _p$.t = _v$4);
723
- return _p$;
724
- }, {
725
- e: void 0,
726
- t: void 0
727
- });
728
- return _el$0;
729
- })() : null)
730
- ];
841
+ return collectionRows();
731
842
  },
732
843
  get children() {
733
- var _el$6 = getNextElement(_tmpl$5), _el$7 = _el$6.firstChild;
734
- insert(_el$7, () => local.renderEmptyState?.());
735
- effect(() => setAttribute(_el$7, "colspan", spacerColSpan()));
736
- return _el$6;
844
+ return createComponent(TableHost, {
845
+ hostTag: "tr",
846
+ get virtualized() {
847
+ return context.isVirtualized;
848
+ },
849
+ role: "row",
850
+ "data-empty-state": true,
851
+ get children() {
852
+ return createComponent(TableHost, {
853
+ hostTag: "th",
854
+ get virtualized() {
855
+ return context.isVirtualized;
856
+ },
857
+ role: "rowheader",
858
+ get colSpan() {
859
+ return spacerColSpan();
860
+ },
861
+ get children() {
862
+ return local.renderEmptyState?.();
863
+ }
864
+ });
865
+ }
866
+ });
737
867
  }
738
868
  });
739
869
  } }), createComponent(Show, {
740
870
  get when() {
741
- return memo(() => !!local.hasMore)() && local.onLoadMore;
871
+ return memo(() => {
872
+ return !!local.hasMore;
873
+ })() ? local.onLoadMore : local.hasMore;
742
874
  },
743
875
  get children() {
744
876
  return createComponent(TableLoadMoreItem, {
@@ -755,109 +887,34 @@ function TableBody(props) {
755
887
  }
756
888
  })];
757
889
  const bodyProps = () => ({
758
- ref: (el) => assignRef(local.ref, el),
890
+ ref: (el) => assignRef$1(local.ref, el),
759
891
  ...domProps,
760
892
  ...cleanRowGroupProps(),
761
893
  class: renderProps.class(),
762
894
  style: renderProps.style(),
763
- "data-empty": isEmpty() || void 0,
895
+ "data-empty": dataAttr(isEmpty()),
764
896
  children: bodyChildren()
765
897
  });
766
- return local.render ? local.render(bodyProps(), renderValues()) : (() => {
767
- var _el$10 = getNextElement(_tmpl$8), _el$13 = _el$10.firstChild, [_el$14, _co$] = getNextMarker(_el$13.nextSibling), _el$15 = _el$14.nextSibling, [_el$16, _co$2] = getNextMarker(_el$15.nextSibling);
768
- use((el) => assignRef(local.ref, el), _el$10);
769
- spread(_el$10, mergeProps(domProps, cleanRowGroupProps, {
770
- get ["class"]() {
771
- return renderProps.class();
772
- },
773
- get style() {
774
- return renderProps.style();
775
- },
776
- get ["data-empty"]() {
777
- return isEmpty() || void 0;
778
- }
779
- }), false, true);
780
- insert(_el$10, createComponent(SharedElementTransition, { get children() {
781
- return createComponent(Show, {
782
- get when() {
783
- return memo(() => !!(isEmpty() && local.renderEmptyState))() && !local.isLoading;
784
- },
785
- get fallback() {
786
- return [
787
- memo(() => memo(() => !!virtualRange()?.offsetTop)() ? (() => {
788
- var _el$17 = getNextElement(_tmpl$6), _el$18 = _el$17.firstChild;
789
- effect((_p$) => {
790
- var _v$5 = spacerColSpan(), _v$6 = `${virtualRange().offsetTop}px`;
791
- _v$5 !== _p$.e && setAttribute(_el$18, "colspan", _p$.e = _v$5);
792
- _v$6 !== _p$.t && setStyleProperty(_el$18, "height", _p$.t = _v$6);
793
- return _p$;
794
- }, {
795
- e: void 0,
796
- t: void 0
797
- });
798
- return _el$17;
799
- })() : null),
800
- createComponent(For, {
801
- get each() {
802
- return visibleItems();
803
- },
804
- children: (item, index) => {
805
- const itemIndex = () => (virtualRange()?.start ?? 0) + index();
806
- const beforeIndicator = () => parentCollectionRenderer?.renderDropIndicator?.(itemIndex(), "before");
807
- const onIndicator = () => parentCollectionRenderer?.renderDropIndicator?.(itemIndex(), "on");
808
- const afterIndicator = () => parentCollectionRenderer?.renderDropIndicator?.(itemIndex(), "after");
809
- return [
810
- memo(beforeIndicator),
811
- memo(onIndicator),
812
- memo(() => local.children?.(item)),
813
- memo(afterIndicator)
814
- ];
815
- }
816
- }),
817
- memo(() => memo(() => !!virtualRange()?.offsetBottom)() ? (() => {
818
- var _el$19 = getNextElement(_tmpl$7), _el$20 = _el$19.firstChild;
819
- effect((_p$) => {
820
- var _v$7 = spacerColSpan(), _v$8 = `${virtualRange().offsetBottom}px`;
821
- _v$7 !== _p$.e && setAttribute(_el$20, "colspan", _p$.e = _v$7);
822
- _v$8 !== _p$.t && setStyleProperty(_el$20, "height", _p$.t = _v$8);
823
- return _p$;
824
- }, {
825
- e: void 0,
826
- t: void 0
827
- });
828
- return _el$19;
829
- })() : null)
830
- ];
831
- },
832
- get children() {
833
- var _el$11 = getNextElement(_tmpl$5), _el$12 = _el$11.firstChild;
834
- insert(_el$12, () => local.renderEmptyState?.());
835
- effect(() => setAttribute(_el$12, "colspan", spacerColSpan()));
836
- return _el$11;
837
- }
838
- });
839
- } }), _el$14, _co$);
840
- insert(_el$10, createComponent(Show, {
841
- get when() {
842
- return memo(() => !!local.hasMore)() && local.onLoadMore;
843
- },
844
- get children() {
845
- return createComponent(TableLoadMoreItem, {
846
- get onLoadMore() {
847
- return local.onLoadMore;
848
- },
849
- get isLoading() {
850
- return local.isLoading;
851
- },
852
- get colSpan() {
853
- return spacerColSpan();
854
- }
855
- });
856
- }
857
- }), _el$16, _co$2);
858
- runHydrationEvents();
859
- return _el$10;
860
- })();
898
+ return local.render ? local.render(bodyProps(), renderValues()) : createComponent(TableHost, mergeProps({
899
+ hostTag: "tbody",
900
+ get virtualized() {
901
+ return context.isVirtualized;
902
+ },
903
+ ref: (el) => assignRef$1(local.ref, el)
904
+ }, domProps, cleanRowGroupProps, {
905
+ get "class"() {
906
+ return renderProps.class();
907
+ },
908
+ get style() {
909
+ return renderProps.style();
910
+ },
911
+ get "data-empty"() {
912
+ return dataAttr(isEmpty());
913
+ },
914
+ get children() {
915
+ return bodyChildren();
916
+ }
917
+ }));
861
918
  }
862
919
  /**
863
920
  * The footer of a table containing summary rows.
@@ -870,7 +927,8 @@ function TableFooter(props) {
870
927
  "slot",
871
928
  "children"
872
929
  ]);
873
- if (!useContext(TableContext)) throw new Error("TableFooter must be used within a Table");
930
+ const context = useContext(TableContext);
931
+ if (!context) throw new Error("TableFooter must be used within a Table");
874
932
  const { rowGroupProps } = createTableRowGroup(() => ({ type: "tfoot" }));
875
933
  const items = createMemo(() => local.items ?? []);
876
934
  const renderValues = createMemo(() => ({ isEmpty: items().length === 0 }));
@@ -883,40 +941,46 @@ function TableFooter(props) {
883
941
  const { ref: _ref, ...rest } = rowGroupProps;
884
942
  return rest;
885
943
  };
886
- return (() => {
887
- var _el$21 = getNextElement(_tmpl$9);
888
- spread(_el$21, mergeProps(domProps, cleanRowGroupProps, {
889
- get ["class"]() {
890
- return renderProps.class();
891
- },
892
- get style() {
893
- return renderProps.style();
894
- }
895
- }), false, true);
896
- insert(_el$21, createComponent(Show, {
897
- get when() {
898
- return memo(() => !!local.items)() && typeof local.children === "function";
899
- },
900
- get fallback() {
901
- return local.children;
902
- },
903
- get children() {
904
- return createComponent(For, {
905
- get each() {
906
- return items();
907
- },
908
- children: (item) => local.children(item)
909
- });
910
- }
911
- }));
912
- runHydrationEvents();
913
- return _el$21;
914
- })();
944
+ return createComponent(TableHost, mergeProps({
945
+ hostTag: "tfoot",
946
+ get virtualized() {
947
+ return context.isVirtualized;
948
+ }
949
+ }, domProps, cleanRowGroupProps, {
950
+ get "class"() {
951
+ return renderProps.class();
952
+ },
953
+ get style() {
954
+ return renderProps.style();
955
+ },
956
+ get children() {
957
+ return createComponent(Show, {
958
+ get when() {
959
+ return memo(() => {
960
+ return !!local.items;
961
+ })() ? typeof local.children === "function" : local.items;
962
+ },
963
+ get fallback() {
964
+ return local.children;
965
+ },
966
+ get children() {
967
+ return createComponent(For, {
968
+ get each() {
969
+ return items();
970
+ },
971
+ children: (item) => local.children(item)
972
+ });
973
+ }
974
+ });
975
+ }
976
+ }));
915
977
  }
916
978
  function TableLoadMoreItem(props) {
917
- let sentinelRef;
979
+ const [sentinel, setSentinel] = createSignal();
918
980
  const [isPending, setIsPending] = createSignal(false);
981
+ const scrollOffsetValue = createMemo(() => props.scrollOffset ?? 1);
919
982
  const isLoading = () => !!props.isLoading || isPending();
983
+ const tableContext = useContext(TableContext);
920
984
  const triggerLoadMore = async () => {
921
985
  if (isPending()) return;
922
986
  setIsPending(true);
@@ -926,50 +990,126 @@ function TableLoadMoreItem(props) {
926
990
  setIsPending(false);
927
991
  }
928
992
  };
929
- createEffect(() => {
930
- if (!sentinelRef || typeof IntersectionObserver !== "function") return;
931
- const margin = `0px 0px ${100 * (props.scrollOffset ?? 1)}% 0px`;
993
+ createEffect(() => ({
994
+ current: sentinel(),
995
+ scrollOffset: scrollOffsetValue()
996
+ }), ({ current, scrollOffset }) => {
997
+ if (!current || typeof IntersectionObserver !== "function") return;
998
+ const margin = `0px 0px ${100 * scrollOffset}% 0px`;
932
999
  const observer = new IntersectionObserver((entries) => {
933
1000
  if (entries[0]?.isIntersecting) triggerLoadMore();
934
1001
  }, { rootMargin: margin });
935
- observer.observe(sentinelRef);
1002
+ observer.observe(current);
936
1003
  return () => observer.disconnect();
937
1004
  });
938
1005
  const renderProps = useRenderProps({
939
- children: props.children ?? (() => isLoading() ? getNextElement(_tmpl$0) : null),
1006
+ children: props.children ?? (() => isLoading() ? getNextElement(_tmpl$9) : null),
940
1007
  class: props.class,
941
1008
  style: props.style,
942
1009
  defaultClassName: "solidaria-Table-loadMore"
943
1010
  }, () => ({ isLoading: isLoading() }));
944
- return [(() => {
945
- var _el$23 = getNextElement(_tmpl$1), _el$25 = _el$23.firstChild.firstChild;
946
- var _ref$ = sentinelRef;
947
- typeof _ref$ === "function" ? use(_ref$, _el$25) : sentinelRef = _el$25;
948
- return _el$23;
949
- })(), createComponent(Show, {
1011
+ return createComponent(Show, {
950
1012
  get when() {
951
- return isLoading();
1013
+ return tableContext?.isVirtualized;
1014
+ },
1015
+ get fallback() {
1016
+ return [(() => {
1017
+ var _el$11 = getNextElement(_tmpl$11);
1018
+ var _el$13 = _el$11.firstChild.firstChild;
1019
+ ref(() => {
1020
+ return setSentinel;
1021
+ }, _el$13);
1022
+ return _el$11;
1023
+ })(), createComponent(Show, {
1024
+ get when() {
1025
+ return isLoading();
1026
+ },
1027
+ get children() {
1028
+ var _el$14 = getNextElement(_tmpl$12);
1029
+ var _el$15 = _el$14.firstChild;
1030
+ _el$14.addEventListener("focus", () => {
1031
+ triggerLoadMore();
1032
+ });
1033
+ insert(_el$15, scope(() => {
1034
+ return renderProps.renderChildren();
1035
+ }));
1036
+ effect(() => {
1037
+ return {
1038
+ e: readShallow(renderProps.class()),
1039
+ t: readShallow(renderProps.style()),
1040
+ a: props.colSpan ?? 1
1041
+ };
1042
+ }, ({ e, t, a }, _p$) => {
1043
+ className(_el$14, e, _p$?.e);
1044
+ style(_el$14, t, _p$?.t);
1045
+ a !== _p$?.a && setAttribute(_el$15, "colspan", a);
1046
+ });
1047
+ return _el$14;
1048
+ }
1049
+ })];
952
1050
  },
953
1051
  get children() {
954
- var _el$26 = getNextElement(_tmpl$10), _el$27 = _el$26.firstChild;
955
- _el$26.addEventListener("focus", () => {
956
- triggerLoadMore();
957
- });
958
- insert(_el$27, () => renderProps.renderChildren());
959
- effect((_p$) => {
960
- var _v$9 = renderProps.class(), _v$0 = renderProps.style(), _v$1 = props.colSpan ?? 1;
961
- _v$9 !== _p$.e && className(_el$26, _p$.e = _v$9);
962
- _p$.t = style(_el$26, _v$0, _p$.t);
963
- _v$1 !== _p$.a && setAttribute(_el$27, "colspan", _p$.a = _v$1);
964
- return _p$;
965
- }, {
966
- e: void 0,
967
- t: void 0,
968
- a: void 0
969
- });
970
- return _el$26;
1052
+ return [createComponent(TableHost, {
1053
+ hostTag: "tr",
1054
+ virtualized: true,
1055
+ style: {
1056
+ position: "relative",
1057
+ width: 0,
1058
+ height: 0,
1059
+ overflow: "hidden"
1060
+ },
1061
+ inert: true,
1062
+ get children() {
1063
+ return createComponent(TableHost, {
1064
+ hostTag: "td",
1065
+ virtualized: true,
1066
+ get children() {
1067
+ var _el$10 = getNextElement(_tmpl$10);
1068
+ ref(() => {
1069
+ return setSentinel;
1070
+ }, _el$10);
1071
+ return _el$10;
1072
+ }
1073
+ });
1074
+ }
1075
+ }), createComponent(Show, {
1076
+ get when() {
1077
+ return isLoading();
1078
+ },
1079
+ get children() {
1080
+ return createComponent(TableHost, {
1081
+ hostTag: "tr",
1082
+ virtualized: true,
1083
+ role: "row",
1084
+ tabindex: 0,
1085
+ onFocus: () => {
1086
+ triggerLoadMore();
1087
+ },
1088
+ get "class"() {
1089
+ return renderProps.class();
1090
+ },
1091
+ get style() {
1092
+ return renderProps.style();
1093
+ },
1094
+ "data-loading": true,
1095
+ get children() {
1096
+ return createComponent(TableHost, {
1097
+ hostTag: "td",
1098
+ virtualized: true,
1099
+ role: "rowheader",
1100
+ get colSpan() {
1101
+ return props.colSpan ?? 1;
1102
+ },
1103
+ get children() {
1104
+ return renderProps.renderChildren();
1105
+ }
1106
+ });
1107
+ }
1108
+ });
1109
+ }
1110
+ })];
971
1111
  }
972
- })];
1112
+ });
973
1113
  }
974
1114
  /**
975
1115
  * A row in a table.
@@ -1116,8 +1256,12 @@ function TableRow(props) {
1116
1256
  return rest;
1117
1257
  };
1118
1258
  const rowContextValue = {
1119
- rowKey: rowKey(),
1120
- rowNode: rowNode(),
1259
+ get rowKey() {
1260
+ return rowKey();
1261
+ },
1262
+ get rowNode() {
1263
+ return rowNode();
1264
+ },
1121
1265
  get isRowDisabled() {
1122
1266
  return isDisabled();
1123
1267
  },
@@ -1128,7 +1272,8 @@ function TableRow(props) {
1128
1272
  index = registeredCellIds.length;
1129
1273
  registeredCellIds.push(cellId);
1130
1274
  }
1131
- return explicitId ?? tableContext.columns[index]?.key;
1275
+ const dataColumns = tableContext.columns.filter((column) => column.key !== "__selection__");
1276
+ return explicitId ?? dataColumns[index]?.key;
1132
1277
  }
1133
1278
  };
1134
1279
  const dragButtonProps = createMemo(() => {
@@ -1189,10 +1334,10 @@ function TableRow(props) {
1189
1334
  "--table-row-level": rowLevel()
1190
1335
  };
1191
1336
  };
1192
- return createComponent(TableRowContext.Provider, {
1337
+ return createComponent(TableRowContext, {
1193
1338
  value: rowContextValue,
1194
1339
  get children() {
1195
- return createComponent(ButtonContext.Provider, {
1340
+ return createComponent(ButtonContext, {
1196
1341
  value: buttonContextValue,
1197
1342
  get children() {
1198
1343
  return (() => {
@@ -1206,30 +1351,32 @@ function TableRow(props) {
1206
1351
  const tableRowProps = () => ({
1207
1352
  ref: (el) => {
1208
1353
  setRef(el);
1209
- assignRef(local.ref, el);
1354
+ assignRef$1(local.ref, el);
1355
+ const dragRef = (draggableItem()?.dragProps)?.ref;
1356
+ if (typeof dragRef === "function") dragRef(el);
1210
1357
  },
1211
1358
  ...domProps,
1212
- ...mergeProps$2(cleanRowProps(), cleanHoverProps(), cleanFocusProps(), focusWithinProps, draggableItem()?.dragProps ?? {}, droppableItem()?.dropProps ?? {}),
1359
+ ...mergeProps$1(cleanRowProps(), cleanHoverProps(), cleanFocusProps(), focusWithinProps, draggableItem()?.dragProps ?? {}, droppableItem()?.dropProps ?? {}),
1213
1360
  class: renderProps.class(),
1214
1361
  style: rowStyle(),
1215
1362
  "data-key": rowKey(),
1216
- "data-selected": isSelected() || void 0,
1217
- "data-focused": isFocused() || void 0,
1218
- "data-focus-visible": isFocusVisible$1() && isFocused() || void 0,
1363
+ "data-selected": dataAttr(isSelected()),
1364
+ "data-focused": dataAttr(isFocused()),
1365
+ "data-focus-visible": dataAttr(isFocusVisible$1() && isFocused()),
1219
1366
  "data-focus-visible-within": dataAttr(isFocusWithin() && isFocusVisible()),
1220
- "data-pressed": isPressed() || void 0,
1221
- "data-hovered": isHovered() || void 0,
1222
- "data-disabled": isDisabled() || void 0,
1367
+ "data-pressed": dataAttr(isPressed()),
1368
+ "data-hovered": dataAttr(isHovered()),
1369
+ "data-disabled": dataAttr(isDisabled()),
1223
1370
  "data-href": linkProps().href,
1224
1371
  "data-target": linkProps().target,
1225
1372
  "data-rel": linkProps().rel,
1226
1373
  "data-download": typeof linkProps().download === "string" ? linkProps().download : linkProps().download ? "" : void 0,
1227
1374
  "data-ping": linkProps().ping,
1228
1375
  "data-referrer-policy": linkProps().referrerPolicy,
1229
- "data-dragging": draggableItem()?.isDragging || void 0,
1230
- "data-drop-target": droppableItem()?.isDropTarget || void 0,
1231
- "data-expanded": isTreeRow() && isExpanded() || void 0,
1232
- "data-has-child-items": isTreeRow() && hasChildItems() || void 0,
1376
+ "data-dragging": dataAttr(!!draggableItem()?.isDragging),
1377
+ "data-drop-target": dataAttr(!!droppableItem()?.isDropTarget),
1378
+ "data-expanded": dataAttr(isTreeRow() && isExpanded()),
1379
+ "data-has-child-items": dataAttr(isTreeRow() && hasChildItems()),
1233
1380
  "data-level": isTreeRow() ? rowLevel() : void 0,
1234
1381
  children: rowChildrenContent
1235
1382
  });
@@ -1238,80 +1385,20 @@ function TableRow(props) {
1238
1385
  return local.render;
1239
1386
  },
1240
1387
  get fallback() {
1241
- return (() => {
1242
- var _el$28 = getNextElement(_tmpl$11);
1243
- use((el) => {
1244
- setRef(el);
1245
- assignRef(local.ref, el);
1246
- }, _el$28);
1247
- spread(_el$28, mergeProps(domProps, () => mergeProps$2(cleanRowProps(), cleanHoverProps(), cleanFocusProps(), focusWithinProps, draggableItem()?.dragProps ?? {}, droppableItem()?.dropProps ?? {}), {
1248
- get ["class"]() {
1249
- return renderProps.class();
1250
- },
1251
- get style() {
1252
- return rowStyle();
1253
- },
1254
- get ["data-key"]() {
1255
- return rowKey();
1256
- },
1257
- get ["data-selected"]() {
1258
- return isSelected() || void 0;
1259
- },
1260
- get ["data-focused"]() {
1261
- return isFocused() || void 0;
1262
- },
1263
- get ["data-focus-visible"]() {
1264
- return memo(() => !!isFocusVisible$1())() && isFocused() || void 0;
1265
- },
1266
- get ["data-focus-visible-within"]() {
1267
- return dataAttr(isFocusWithin() && isFocusVisible());
1268
- },
1269
- get ["data-pressed"]() {
1270
- return isPressed() || void 0;
1271
- },
1272
- get ["data-hovered"]() {
1273
- return isHovered() || void 0;
1274
- },
1275
- get ["data-disabled"]() {
1276
- return isDisabled() || void 0;
1277
- },
1278
- get ["data-href"]() {
1279
- return linkProps().href;
1280
- },
1281
- get ["data-target"]() {
1282
- return linkProps().target;
1283
- },
1284
- get ["data-rel"]() {
1285
- return linkProps().rel;
1286
- },
1287
- get ["data-download"]() {
1288
- return memo(() => typeof linkProps().download === "string")() ? linkProps().download : linkProps().download ? "" : void 0;
1289
- },
1290
- get ["data-ping"]() {
1291
- return linkProps().ping;
1292
- },
1293
- get ["data-referrer-policy"]() {
1294
- return linkProps().referrerPolicy;
1295
- },
1296
- get ["data-dragging"]() {
1297
- return draggableItem()?.isDragging || void 0;
1298
- },
1299
- get ["data-drop-target"]() {
1300
- return droppableItem()?.isDropTarget || void 0;
1301
- },
1302
- get ["data-expanded"]() {
1303
- return memo(() => !!isTreeRow())() && isExpanded() || void 0;
1304
- },
1305
- get ["data-has-child-items"]() {
1306
- return memo(() => !!isTreeRow())() && hasChildItems() || void 0;
1307
- },
1308
- get ["data-level"]() {
1309
- return memo(() => !!isTreeRow())() ? rowLevel() : void 0;
1310
- }
1311
- }), false, true);
1312
- insert(_el$28, rowChildrenContent);
1388
+ return memo(() => {
1389
+ return !!tableContext.isVirtualized;
1390
+ })() ? (() => {
1391
+ var _el$16 = getNextElement(_tmpl$);
1392
+ spread(_el$16, () => {
1393
+ return tableRowProps();
1394
+ }, false);
1395
+ runHydrationEvents();
1396
+ return _el$16;
1397
+ })() : (() => {
1398
+ var _el$17 = getNextElement(_tmpl$6);
1399
+ spread(_el$17, tableRowProps, false);
1313
1400
  runHydrationEvents();
1314
- return _el$28;
1401
+ return _el$17;
1315
1402
  })();
1316
1403
  },
1317
1404
  get children() {
@@ -1349,14 +1436,26 @@ function TableCell(props) {
1349
1436
  const columnKey = createMemo(() => rowContext.getCellColumnKey(cellId, local.id));
1350
1437
  const cellNode = createMemo(() => {
1351
1438
  const key = columnKey();
1439
+ const collection = state.collection;
1352
1440
  if (key != null) {
1353
1441
  const cellKey = `${rowKey}-${key}`;
1354
- const node = state.collection.getItem(cellKey);
1442
+ const node = collection.getItem(cellKey);
1355
1443
  if (node) return node;
1444
+ return {
1445
+ type: collection.rowHeaderColumnKeys.has(key) ? "rowheader" : "cell",
1446
+ key: cellKey,
1447
+ value: rowNode.value,
1448
+ textValue: "",
1449
+ level: 1,
1450
+ index: 0,
1451
+ parentKey: rowKey,
1452
+ hasChildNodes: false,
1453
+ childNodes: []
1454
+ };
1356
1455
  }
1357
1456
  return {
1358
1457
  type: "cell",
1359
- key: key ?? `${rowKey}-cell`,
1458
+ key: `${rowKey}-cell`,
1360
1459
  value: rowNode.value,
1361
1460
  textValue: "",
1362
1461
  level: 1,
@@ -1414,80 +1513,43 @@ function TableCell(props) {
1414
1513
  const { ref: _ref3, ...rest } = focusProps;
1415
1514
  return rest;
1416
1515
  };
1417
- const cellChildren = () => typeof local.children === "function" ? local.children(renderValues()) : local.children;
1418
- const tableCellProps = () => ({
1516
+ const cellChildren = () => {
1517
+ const rawChildren = local.children;
1518
+ return typeof rawChildren === "function" ? rawChildren(renderValues()) : rawChildren;
1519
+ };
1520
+ const cellAttrs = () => ({
1419
1521
  ref: (el) => {
1420
1522
  setRef(el);
1421
- assignRef(local.ref, el);
1523
+ assignRef$1(local.ref, el);
1422
1524
  },
1423
1525
  ...domProps,
1424
- ...mergeProps$2(cleanCellProps(), cleanHoverProps(), cleanFocusProps()),
1526
+ ...mergeProps$1(cleanCellProps(), cleanHoverProps(), cleanFocusProps()),
1425
1527
  colSpan: local.colSpan,
1426
1528
  class: renderProps.class(),
1427
1529
  style: renderProps.style(),
1428
1530
  "data-key": cellNode().key,
1429
- "data-focused": isFocused() || void 0,
1430
- "data-focus-visible": isFocusVisible() && isFocused() || void 0,
1531
+ "data-focused": dataAttr(isFocused()),
1532
+ "data-focus-visible": dataAttr(isFocusVisible() && isFocused()),
1431
1533
  "data-column-index": cellColumnIndex(),
1432
- "data-pressed": isPressed() || void 0,
1433
- "data-hovered": isHovered() || void 0,
1434
- "data-tree-column": isTreeColumn() || void 0,
1435
- "data-expanded": isTreeGridCell() && cellIsExpanded() || void 0,
1436
- "data-has-child-items": isTreeGridCell() && cellHasChildItems() || void 0,
1437
- "data-level": isTreeGridCell() ? cellLevel() : void 0,
1438
- children: cellChildren()
1534
+ "data-pressed": dataAttr(isPressed()),
1535
+ "data-hovered": dataAttr(isHovered()),
1536
+ "data-tree-column": dataAttr(isTreeColumn()),
1537
+ "data-expanded": dataAttr(isTreeGridCell() && cellIsExpanded()),
1538
+ "data-has-child-items": dataAttr(isTreeGridCell() && cellHasChildItems()),
1539
+ "data-level": isTreeGridCell() ? cellLevel() : void 0
1439
1540
  });
1440
- return local.render ? local.render(tableCellProps(), renderValues()) : (() => {
1441
- var _el$29 = getNextElement(_tmpl$12);
1442
- use((el) => {
1443
- setRef(el);
1444
- assignRef(local.ref, el);
1445
- }, _el$29);
1446
- spread(_el$29, mergeProps(domProps, () => mergeProps$2(cleanCellProps(), cleanHoverProps(), cleanFocusProps()), {
1447
- get colSpan() {
1448
- return local.colSpan;
1449
- },
1450
- get ["class"]() {
1451
- return renderProps.class();
1452
- },
1453
- get style() {
1454
- return renderProps.style();
1455
- },
1456
- get ["data-key"]() {
1457
- return cellNode().key;
1458
- },
1459
- get ["data-focused"]() {
1460
- return isFocused() || void 0;
1461
- },
1462
- get ["data-focus-visible"]() {
1463
- return memo(() => !!isFocusVisible())() && isFocused() || void 0;
1464
- },
1465
- get ["data-column-index"]() {
1466
- return cellColumnIndex();
1467
- },
1468
- get ["data-pressed"]() {
1469
- return isPressed() || void 0;
1470
- },
1471
- get ["data-hovered"]() {
1472
- return isHovered() || void 0;
1473
- },
1474
- get ["data-tree-column"]() {
1475
- return isTreeColumn() || void 0;
1476
- },
1477
- get ["data-expanded"]() {
1478
- return memo(() => !!isTreeGridCell())() && cellIsExpanded() || void 0;
1479
- },
1480
- get ["data-has-child-items"]() {
1481
- return memo(() => !!isTreeGridCell())() && cellHasChildItems() || void 0;
1482
- },
1483
- get ["data-level"]() {
1484
- return memo(() => !!isTreeGridCell())() ? cellLevel() : void 0;
1485
- }
1486
- }), false, true);
1487
- insert(_el$29, cellChildren);
1488
- runHydrationEvents();
1489
- return _el$29;
1490
- })();
1541
+ if (local.render) return local.render({
1542
+ ...cellAttrs(),
1543
+ children: cellChildren()
1544
+ }, renderValues());
1545
+ return createComponent(TableHost, mergeProps({
1546
+ hostTag: "td",
1547
+ get virtualized() {
1548
+ return tableContext.isVirtualized;
1549
+ }
1550
+ }, cellAttrs, { get children() {
1551
+ return cellChildren();
1552
+ } }));
1491
1553
  }
1492
1554
  /**
1493
1555
  * A checkbox cell for row selection.
@@ -1501,30 +1563,28 @@ function TableSelectionCheckbox(props) {
1501
1563
  key: props.rowKey,
1502
1564
  isRowDisabled: rowContext?.isRowDisabled
1503
1565
  }), () => state);
1504
- return (() => {
1505
- var _el$30 = getNextElement(_tmpl$13);
1506
- spread(_el$30, mergeProps(() => selectionCheckboxAria.checkboxProps, {
1507
- get ["class"]() {
1508
- return props.class;
1509
- },
1510
- get style() {
1511
- return props.style;
1512
- },
1513
- get tabIndex() {
1514
- return memo(() => !!props.excludeFromTabOrder)() ? -1 : selectionCheckboxAria.checkboxProps.tabIndex;
1515
- },
1516
- get ["aria-label"]() {
1517
- return props["aria-label"] ?? selectionCheckboxAria.checkboxProps["aria-label"];
1518
- },
1519
- "onClick": (event) => event.stopPropagation(),
1520
- "onKeyDown": (event) => event.stopPropagation(),
1521
- "onKeyUp": (event) => event.stopPropagation(),
1522
- "onPointerDown": (event) => event.stopPropagation(),
1523
- "onPointerUp": (event) => event.stopPropagation()
1524
- }), false, false);
1525
- runHydrationEvents();
1526
- return _el$30;
1527
- })();
1566
+ var _el$18 = getNextElement(_tmpl$13);
1567
+ spread(_el$18, [() => {
1568
+ return selectionCheckboxAria.checkboxProps;
1569
+ }, {
1570
+ get "class"() {
1571
+ return props.class;
1572
+ },
1573
+ get style() {
1574
+ return props.style;
1575
+ },
1576
+ tabindex: -1,
1577
+ get "aria-label"() {
1578
+ return props["aria-label"] ?? selectionCheckboxAria.checkboxProps["aria-label"];
1579
+ },
1580
+ onClick: (event) => event.stopPropagation(),
1581
+ onKeyDown: (event) => event.stopPropagation(),
1582
+ onKeyUp: (event) => event.stopPropagation(),
1583
+ onPointerDown: (event) => event.stopPropagation(),
1584
+ onPointerUp: (event) => event.stopPropagation()
1585
+ }], false);
1586
+ runHydrationEvents();
1587
+ return _el$18;
1528
1588
  }
1529
1589
  /**
1530
1590
  * A checkbox for select-all functionality.
@@ -1534,28 +1594,35 @@ function TableSelectAllCheckbox(props = {}) {
1534
1594
  if (!context) throw new Error("TableSelectAllCheckbox must be used within a Table");
1535
1595
  const { state } = context;
1536
1596
  const selectAllCheckboxAria = createTableSelectAllCheckbox(() => state);
1537
- let inputRef;
1538
- createEffect(() => {
1539
- if (inputRef) inputRef.indeterminate = selectAllCheckboxAria.isIndeterminate;
1597
+ const [inputEl, setInputEl] = createSignal(null);
1598
+ const applyIndeterminate = (input) => {
1599
+ if (input) input.indeterminate = selectAllCheckboxAria.isIndeterminate;
1600
+ };
1601
+ createRenderEffect(() => [selectAllCheckboxAria.checkboxProps.checked, inputEl()], ([, input]) => {
1602
+ applyIndeterminate(input);
1540
1603
  });
1541
- return (() => {
1542
- var _el$31 = getNextElement(_tmpl$13);
1543
- var _ref$2 = inputRef;
1544
- typeof _ref$2 === "function" ? use(_ref$2, _el$31) : inputRef = _el$31;
1545
- spread(_el$31, mergeProps(() => selectAllCheckboxAria.checkboxProps, {
1546
- get ["class"]() {
1547
- return props.class;
1548
- },
1549
- get style() {
1550
- return props.style;
1551
- },
1552
- get ["aria-label"]() {
1553
- return props["aria-label"] ?? selectAllCheckboxAria.checkboxProps["aria-label"];
1554
- }
1555
- }), false, false);
1556
- runHydrationEvents();
1557
- return _el$31;
1558
- })();
1604
+ var _el$19 = getNextElement(_tmpl$13);
1605
+ ref(() => {
1606
+ return (el) => {
1607
+ setInputEl(el);
1608
+ applyIndeterminate(el);
1609
+ };
1610
+ }, _el$19);
1611
+ spread(_el$19, [() => {
1612
+ return selectAllCheckboxAria.checkboxProps;
1613
+ }, {
1614
+ get "class"() {
1615
+ return props.class;
1616
+ },
1617
+ get style() {
1618
+ return props.style;
1619
+ },
1620
+ get "aria-label"() {
1621
+ return props["aria-label"] ?? selectAllCheckboxAria.checkboxProps["aria-label"];
1622
+ }
1623
+ }], false);
1624
+ runHydrationEvents();
1625
+ return _el$19;
1559
1626
  }
1560
1627
  Table.Header = TableHeader;
1561
1628
  Table.Column = TableColumn;
@@ -1578,8 +1645,15 @@ function ColumnResizer(props) {
1578
1645
  "slot",
1579
1646
  "children"
1580
1647
  ]);
1648
+ const stringFormatter = createStringFormatter(racIntlStrings, "react-aria-components");
1581
1649
  const registerColumn = useContext(ResizableTableRegisterContext);
1582
- if (registerColumn) registerColumn(local.column.key, { key: local.column.key });
1650
+ const columnDef = useContext(TableColumnDefinitionContext);
1651
+ if (registerColumn) registerColumn(local.column.key, {
1652
+ key: local.column.key,
1653
+ width: columnDef?.width,
1654
+ minWidth: columnDef?.minWidth,
1655
+ maxWidth: columnDef?.maxWidth
1656
+ });
1583
1657
  const resizeCtx = useContext(TableColumnResizeStateContext);
1584
1658
  const hasResizeContext = !!resizeCtx;
1585
1659
  const noopResizeState = {
@@ -1604,7 +1678,7 @@ function ColumnResizer(props) {
1604
1678
  const [isFocused, setIsFocused] = createSignal(false);
1605
1679
  const columnResize = createTableColumnResize(() => ({
1606
1680
  column: local.column,
1607
- "aria-label": local["aria-label"] ?? "Resizer",
1681
+ "aria-label": local["aria-label"] ?? stringFormatter().format("tableResizer"),
1608
1682
  isDisabled: local.isDisabled,
1609
1683
  onResizeStart: (widths) => {
1610
1684
  resizeCtx?.getCallbacks?.().onResizeStart?.(widths);
@@ -1634,41 +1708,56 @@ function ColumnResizer(props) {
1634
1708
  const { ref: _ref, ...rest } = hoverProps;
1635
1709
  return rest;
1636
1710
  };
1637
- return (() => {
1638
- var _el$32 = getNextElement(_tmpl$14), _el$34 = _el$32.firstChild, [_el$35, _co$3] = getNextMarker(_el$34.nextSibling), _el$36 = _el$35.nextSibling, [_el$37, _co$4] = getNextMarker(_el$36.nextSibling);
1639
- spread(_el$32, mergeProps(domProps, () => columnResize.resizerProps, cleanHoverProps, {
1640
- get ["class"]() {
1711
+ var _el$20 = getNextElement(_tmpl$14);
1712
+ var _el$22 = _el$20.firstChild;
1713
+ var [_el$23, _el$24] = getNextMarker(_el$22.nextSibling);
1714
+ var _el$25 = _el$23.nextSibling;
1715
+ var [_el$26, _el$27] = getNextMarker(_el$25.nextSibling);
1716
+ spread(_el$20, [
1717
+ domProps,
1718
+ () => {
1719
+ return columnResize.resizerProps;
1720
+ },
1721
+ cleanHoverProps,
1722
+ {
1723
+ get "class"() {
1641
1724
  return renderProps.class();
1642
1725
  },
1643
1726
  get style() {
1644
1727
  return renderProps.style();
1645
1728
  },
1646
- get ["data-hovered"]() {
1647
- return isHovered() || void 0;
1729
+ get "data-hovered"() {
1730
+ return dataAttr(isHovered());
1648
1731
  },
1649
- get ["data-resizing"]() {
1650
- return columnResize.isResizing() || void 0;
1651
- }
1652
- }), false, true);
1653
- insert(_el$32, createComponent(Show, {
1654
- when: hasResizeContext,
1655
- get children() {
1656
- var _el$33 = getNextElement(_tmpl$13);
1657
- spread(_el$33, mergeProps(() => columnResize.inputProps, {
1658
- "onFocus": () => setIsFocused(true),
1659
- "onBlur": () => setIsFocused(false)
1660
- }), false, false);
1661
- runHydrationEvents();
1662
- return _el$33;
1732
+ get "data-resizing"() {
1733
+ return dataAttr(columnResize.isResizing());
1663
1734
  }
1664
- }), _el$35, _co$3);
1665
- insert(_el$32, (() => {
1666
- var _c$ = memo(() => typeof local.children === "function");
1667
- return () => _c$() ? local.children(renderValues()) : local.children;
1668
- })(), _el$37, _co$4);
1669
- runHydrationEvents();
1670
- return _el$32;
1671
- })();
1735
+ }
1736
+ ], true);
1737
+ insert(_el$20, createComponent(Show, {
1738
+ when: hasResizeContext,
1739
+ get children() {
1740
+ var _el$21 = getNextElement(_tmpl$13);
1741
+ spread(_el$21, [() => {
1742
+ return columnResize.inputProps;
1743
+ }, {
1744
+ onFocus: () => setIsFocused(true),
1745
+ onBlur: () => setIsFocused(false)
1746
+ }], false);
1747
+ runHydrationEvents();
1748
+ return _el$21;
1749
+ }
1750
+ }), _el$23, _el$24);
1751
+ insert(_el$20, scope((() => {
1752
+ var _c$ = memo(() => {
1753
+ return typeof local.children === "function";
1754
+ });
1755
+ return () => {
1756
+ return _c$() ? local.children(renderValues()) : local.children;
1757
+ };
1758
+ })()), _el$26, _el$27);
1759
+ runHydrationEvents();
1760
+ return _el$20;
1672
1761
  }
1673
1762
  function ResizableTableContainer(props) {
1674
1763
  const [local, domProps] = splitProps(props, [
@@ -1683,7 +1772,8 @@ function ResizableTableContainer(props) {
1683
1772
  ]);
1684
1773
  const [containerRef, setContainerRef] = createSignal(null);
1685
1774
  const [tableWidth, setTableWidth] = createSignal(0);
1686
- createEffect(() => {
1775
+ createTrackedEffect(() => {
1776
+ const _s2Cleanups = [];
1687
1777
  const el = containerRef();
1688
1778
  if (!el) return;
1689
1779
  setTableWidth(el.clientWidth);
@@ -1692,10 +1782,13 @@ function ResizableTableContainer(props) {
1692
1782
  for (const entry of entries) setTableWidth(entry.contentRect.width);
1693
1783
  });
1694
1784
  observer.observe(el);
1695
- onCleanup(() => observer.disconnect());
1785
+ _s2Cleanups.push(() => observer.disconnect());
1696
1786
  }
1787
+ return () => {
1788
+ for (const c of _s2Cleanups) c();
1789
+ };
1697
1790
  });
1698
- const [autoColumns, setAutoColumns] = createSignal(/* @__PURE__ */ new Map());
1791
+ const [autoColumns, setAutoColumns] = createSignal(/* @__PURE__ */ new Map(), { ownedWrite: true });
1699
1792
  const registerColumn = (key, def) => {
1700
1793
  setAutoColumns((prev) => {
1701
1794
  const next = new Map(prev);
@@ -1727,16 +1820,18 @@ function ResizableTableContainer(props) {
1727
1820
  onResizeEnd: local.onResizeEnd
1728
1821
  })
1729
1822
  };
1730
- return createComponent(ResizableTableRegisterContext.Provider, {
1823
+ return createComponent(ResizableTableRegisterContext, {
1731
1824
  value: registerColumn,
1732
1825
  get children() {
1733
- return createComponent(TableColumnResizeStateContext.Provider, {
1826
+ return createComponent(TableColumnResizeStateContext, {
1734
1827
  value: contextValue,
1735
1828
  get children() {
1736
- var _el$38 = getNextElement(_tmpl$15);
1737
- use(setContainerRef, _el$38);
1738
- spread(_el$38, mergeProps(domProps, {
1739
- get ["class"]() {
1829
+ var _el$28 = getNextElement(_tmpl$);
1830
+ ref(() => {
1831
+ return setContainerRef;
1832
+ }, _el$28);
1833
+ spread(_el$28, [domProps, {
1834
+ get "class"() {
1740
1835
  return local.class ?? "solidaria-ResizableTableContainer";
1741
1836
  },
1742
1837
  get style() {
@@ -1746,10 +1841,12 @@ function ResizableTableContainer(props) {
1746
1841
  ...local.style
1747
1842
  };
1748
1843
  }
1749
- }), false, true);
1750
- insert(_el$38, () => local.children);
1844
+ }], true);
1845
+ insert(_el$28, scope(() => {
1846
+ return local.children;
1847
+ }));
1751
1848
  runHydrationEvents();
1752
- return _el$38;
1849
+ return _el$28;
1753
1850
  }
1754
1851
  });
1755
1852
  }