@proyecto-viviana/ui 0.6.1 → 0.6.3

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 (301) hide show
  1. package/README.md +14 -16
  2. package/dist/_chunk/LinkButton.js +9 -9
  3. package/dist/_chunk/LinkButton.js.map +1 -1
  4. package/dist/_chunk/LinkButton.jsx +9 -9
  5. package/dist/_chunk/LinkButton.jsx.map +1 -1
  6. package/dist/_chunk/RangeCalendar.js +7 -7
  7. package/dist/_chunk/RangeCalendar.js.map +1 -1
  8. package/dist/_chunk/RangeCalendar.jsx +7 -7
  9. package/dist/_chunk/RangeCalendar.jsx.map +1 -1
  10. package/dist/_chunk/Tabs.js +2 -2
  11. package/dist/_chunk/Tabs.jsx +2 -2
  12. package/dist/_chunk/breadcrumbs.js +2 -2
  13. package/dist/_chunk/breadcrumbs.js.map +1 -1
  14. package/dist/_chunk/breadcrumbs.jsx +2 -2
  15. package/dist/_chunk/breadcrumbs.jsx.map +1 -1
  16. package/dist/_chunk/button.js +3 -3
  17. package/dist/_chunk/button.jsx +3 -3
  18. package/dist/_chunk/color.js +4 -4
  19. package/dist/_chunk/color.jsx +4 -4
  20. package/dist/_chunk/form.js +5 -7
  21. package/dist/_chunk/form.js.map +1 -1
  22. package/dist/_chunk/form.jsx +5 -8
  23. package/dist/_chunk/form.jsx.map +1 -1
  24. package/dist/_chunk/layout.js +5 -1
  25. package/dist/_chunk/layout.js.map +1 -1
  26. package/dist/_chunk/layout.jsx +5 -1
  27. package/dist/_chunk/layout.jsx.map +1 -1
  28. package/dist/_chunk/list.js +4 -4
  29. package/dist/_chunk/list.jsx +4 -4
  30. package/dist/_chunk/menu.js +1 -1
  31. package/dist/_chunk/menu.js.map +1 -1
  32. package/dist/_chunk/menu.jsx +1 -1
  33. package/dist/_chunk/menu.jsx.map +1 -1
  34. package/dist/_chunk/numberfield.js +2 -2
  35. package/dist/_chunk/numberfield.jsx +2 -2
  36. package/dist/_chunk/s2-action-button-styles.js +8 -8
  37. package/dist/_chunk/s2-action-button-styles.js.map +1 -1
  38. package/dist/_chunk/s2-action-button-styles.jsx +8 -8
  39. package/dist/_chunk/s2-action-button-styles.jsx.map +1 -1
  40. package/dist/_chunk/s2-menu-styles.js +1 -1
  41. package/dist/_chunk/s2-menu-styles.jsx +1 -1
  42. package/dist/_chunk/slider.js +6 -6
  43. package/dist/_chunk/slider.jsx +6 -6
  44. package/dist/_chunk/switch.js +2 -2
  45. package/dist/_chunk/switch.jsx +2 -2
  46. package/dist/_chunk/table.js +3 -3
  47. package/dist/_chunk/table.js.map +1 -1
  48. package/dist/_chunk/table.jsx +3 -3
  49. package/dist/_chunk/table.jsx.map +1 -1
  50. package/dist/_chunk/text.js +1 -1
  51. package/dist/_chunk/text.jsx +1 -1
  52. package/dist/_chunk/textfield.js +4 -4
  53. package/dist/_chunk/textfield.jsx +4 -4
  54. package/dist/_chunk/toast.js +3 -3
  55. package/dist/_chunk/toast.jsx +3 -3
  56. package/dist/actiongroup/index.js +2 -2
  57. package/dist/actiongroup/index.jsx +2 -2
  58. package/dist/badge/index.js +6 -6
  59. package/dist/badge/index.jsx +6 -6
  60. package/dist/breadcrumbs/index.d.ts.map +1 -1
  61. package/dist/calendar/DateField.d.ts.map +1 -1
  62. package/dist/calendar/DateField.js +2 -2
  63. package/dist/calendar/DateField.js.map +1 -1
  64. package/dist/calendar/DateField.jsx +2 -2
  65. package/dist/calendar/DateField.jsx.map +1 -1
  66. package/dist/calendar/DatePicker.d.ts.map +1 -1
  67. package/dist/calendar/DatePicker.js +2 -2
  68. package/dist/calendar/DatePicker.js.map +1 -1
  69. package/dist/calendar/DatePicker.jsx +2 -2
  70. package/dist/calendar/DatePicker.jsx.map +1 -1
  71. package/dist/calendar/DateRangePicker.js +2 -2
  72. package/dist/calendar/DateRangePicker.jsx +2 -2
  73. package/dist/calendar/RangeCalendar.d.ts.map +1 -1
  74. package/dist/calendar/TimeField.d.ts.map +1 -1
  75. package/dist/calendar/TimeField.js +2 -2
  76. package/dist/calendar/TimeField.js.map +1 -1
  77. package/dist/calendar/TimeField.jsx +2 -2
  78. package/dist/calendar/TimeField.jsx.map +1 -1
  79. package/dist/calendar/index.js +5 -5
  80. package/dist/calendar/index.js.map +1 -1
  81. package/dist/calendar/index.jsx +5 -5
  82. package/dist/calendar/index.jsx.map +1 -1
  83. package/dist/checkbox/index.js +3 -3
  84. package/dist/checkbox/index.jsx +3 -3
  85. package/dist/combobox/index.js +2 -2
  86. package/dist/combobox/index.jsx +2 -2
  87. package/dist/dropzone/index.js +1 -1
  88. package/dist/dropzone/index.jsx +1 -1
  89. package/dist/font-faces.css +13 -6
  90. package/dist/form/index.d.ts.map +1 -1
  91. package/dist/icon/pixel-icons/PixelChartIcon.d.ts.map +1 -1
  92. package/dist/icon/pixel-icons/PixelChartIcon.js.map +1 -1
  93. package/dist/icon/pixel-icons/PixelChartIcon.jsx.map +1 -1
  94. package/dist/icon/pixel-icons/PixelCheckIcon.d.ts.map +1 -1
  95. package/dist/icon/pixel-icons/PixelCheckIcon.js.map +1 -1
  96. package/dist/icon/pixel-icons/PixelCheckIcon.jsx.map +1 -1
  97. package/dist/icon/pixel-icons/PixelChevronDownIcon.d.ts.map +1 -1
  98. package/dist/icon/pixel-icons/PixelChevronDownIcon.js.map +1 -1
  99. package/dist/icon/pixel-icons/PixelChevronDownIcon.jsx.map +1 -1
  100. package/dist/icon/pixel-icons/PixelChevronRightIcon.d.ts.map +1 -1
  101. package/dist/icon/pixel-icons/PixelChevronRightIcon.js.map +1 -1
  102. package/dist/icon/pixel-icons/PixelChevronRightIcon.jsx.map +1 -1
  103. package/dist/icon/pixel-icons/PixelClockIcon.d.ts.map +1 -1
  104. package/dist/icon/pixel-icons/PixelClockIcon.js.map +1 -1
  105. package/dist/icon/pixel-icons/PixelClockIcon.jsx.map +1 -1
  106. package/dist/icon/pixel-icons/PixelCodeIcon.d.ts.map +1 -1
  107. package/dist/icon/pixel-icons/PixelCodeIcon.js.map +1 -1
  108. package/dist/icon/pixel-icons/PixelCodeIcon.jsx.map +1 -1
  109. package/dist/icon/pixel-icons/PixelCommunityIcon.d.ts.map +1 -1
  110. package/dist/icon/pixel-icons/PixelCommunityIcon.js.map +1 -1
  111. package/dist/icon/pixel-icons/PixelCommunityIcon.jsx.map +1 -1
  112. package/dist/icon/pixel-icons/PixelCubeIcon.d.ts.map +1 -1
  113. package/dist/icon/pixel-icons/PixelCubeIcon.js.map +1 -1
  114. package/dist/icon/pixel-icons/PixelCubeIcon.jsx.map +1 -1
  115. package/dist/icon/pixel-icons/PixelFlameIcon.d.ts.map +1 -1
  116. package/dist/icon/pixel-icons/PixelFlameIcon.js.map +1 -1
  117. package/dist/icon/pixel-icons/PixelFlameIcon.jsx.map +1 -1
  118. package/dist/icon/pixel-icons/PixelHomeIcon.d.ts.map +1 -1
  119. package/dist/icon/pixel-icons/PixelHomeIcon.js.map +1 -1
  120. package/dist/icon/pixel-icons/PixelHomeIcon.jsx.map +1 -1
  121. package/dist/icon/pixel-icons/PixelLayoutIcon.d.ts.map +1 -1
  122. package/dist/icon/pixel-icons/PixelLayoutIcon.js.map +1 -1
  123. package/dist/icon/pixel-icons/PixelLayoutIcon.jsx.map +1 -1
  124. package/dist/icon/pixel-icons/PixelMessageIcon.d.ts.map +1 -1
  125. package/dist/icon/pixel-icons/PixelMessageIcon.js.map +1 -1
  126. package/dist/icon/pixel-icons/PixelMessageIcon.jsx.map +1 -1
  127. package/dist/icon/pixel-icons/PixelNavCommunityIcon.d.ts.map +1 -1
  128. package/dist/icon/pixel-icons/PixelNavCommunityIcon.js.map +1 -1
  129. package/dist/icon/pixel-icons/PixelNavCommunityIcon.jsx.map +1 -1
  130. package/dist/icon/pixel-icons/PixelNavExploreIcon.d.ts.map +1 -1
  131. package/dist/icon/pixel-icons/PixelNavExploreIcon.js.map +1 -1
  132. package/dist/icon/pixel-icons/PixelNavExploreIcon.jsx.map +1 -1
  133. package/dist/icon/pixel-icons/PixelNavLiveIcon.d.ts.map +1 -1
  134. package/dist/icon/pixel-icons/PixelNavLiveIcon.js.map +1 -1
  135. package/dist/icon/pixel-icons/PixelNavLiveIcon.jsx.map +1 -1
  136. package/dist/icon/pixel-icons/PixelNavPathwaysIcon.d.ts.map +1 -1
  137. package/dist/icon/pixel-icons/PixelNavPathwaysIcon.js.map +1 -1
  138. package/dist/icon/pixel-icons/PixelNavPathwaysIcon.jsx.map +1 -1
  139. package/dist/icon/pixel-icons/PixelNavPlaygroundIcon.d.ts.map +1 -1
  140. package/dist/icon/pixel-icons/PixelNavPlaygroundIcon.js.map +1 -1
  141. package/dist/icon/pixel-icons/PixelNavPlaygroundIcon.jsx.map +1 -1
  142. package/dist/icon/pixel-icons/PixelNavProjectsIcon.d.ts.map +1 -1
  143. package/dist/icon/pixel-icons/PixelNavProjectsIcon.js.map +1 -1
  144. package/dist/icon/pixel-icons/PixelNavProjectsIcon.jsx.map +1 -1
  145. package/dist/icon/pixel-icons/PixelNavReferenceIcon.d.ts.map +1 -1
  146. package/dist/icon/pixel-icons/PixelNavReferenceIcon.js.map +1 -1
  147. package/dist/icon/pixel-icons/PixelNavReferenceIcon.jsx.map +1 -1
  148. package/dist/icon/pixel-icons/PixelNavSettingsIcon.d.ts.map +1 -1
  149. package/dist/icon/pixel-icons/PixelNavSettingsIcon.js.map +1 -1
  150. package/dist/icon/pixel-icons/PixelNavSettingsIcon.jsx.map +1 -1
  151. package/dist/icon/pixel-icons/PixelNavTopicsIcon.d.ts.map +1 -1
  152. package/dist/icon/pixel-icons/PixelNavTopicsIcon.js.map +1 -1
  153. package/dist/icon/pixel-icons/PixelNavTopicsIcon.jsx.map +1 -1
  154. package/dist/icon/pixel-icons/PixelNotificationIcon.d.ts.map +1 -1
  155. package/dist/icon/pixel-icons/PixelNotificationIcon.js.map +1 -1
  156. package/dist/icon/pixel-icons/PixelNotificationIcon.jsx.map +1 -1
  157. package/dist/icon/pixel-icons/PixelPathwaysIcon.d.ts.map +1 -1
  158. package/dist/icon/pixel-icons/PixelPathwaysIcon.js.map +1 -1
  159. package/dist/icon/pixel-icons/PixelPathwaysIcon.jsx.map +1 -1
  160. package/dist/icon/pixel-icons/PixelPlayIcon.d.ts.map +1 -1
  161. package/dist/icon/pixel-icons/PixelPlayIcon.js.map +1 -1
  162. package/dist/icon/pixel-icons/PixelPlayIcon.jsx.map +1 -1
  163. package/dist/icon/pixel-icons/PixelSearchIcon.d.ts.map +1 -1
  164. package/dist/icon/pixel-icons/PixelSearchIcon.js.map +1 -1
  165. package/dist/icon/pixel-icons/PixelSearchIcon.jsx.map +1 -1
  166. package/dist/icon/pixel-icons/PixelSettingsIcon.d.ts.map +1 -1
  167. package/dist/icon/pixel-icons/PixelSettingsIcon.js.map +1 -1
  168. package/dist/icon/pixel-icons/PixelSettingsIcon.jsx.map +1 -1
  169. package/dist/icon/pixel-icons/PixelSparkleIcon.d.ts.map +1 -1
  170. package/dist/icon/pixel-icons/PixelSparkleIcon.js.map +1 -1
  171. package/dist/icon/pixel-icons/PixelSparkleIcon.jsx.map +1 -1
  172. package/dist/icon/pixel-icons/PixelTopicsIcon.d.ts.map +1 -1
  173. package/dist/icon/pixel-icons/PixelTopicsIcon.js.map +1 -1
  174. package/dist/icon/pixel-icons/PixelTopicsIcon.jsx.map +1 -1
  175. package/dist/icon/pixel-icons/PixelUserIcon.d.ts.map +1 -1
  176. package/dist/icon/pixel-icons/PixelUserIcon.js.map +1 -1
  177. package/dist/icon/pixel-icons/PixelUserIcon.jsx.map +1 -1
  178. package/dist/icon/pixel-icons/PixelZapIcon.d.ts.map +1 -1
  179. package/dist/icon/pixel-icons/PixelZapIcon.js.map +1 -1
  180. package/dist/icon/pixel-icons/PixelZapIcon.jsx.map +1 -1
  181. package/dist/inlinealert/index.js +6 -6
  182. package/dist/inlinealert/index.jsx +6 -6
  183. package/dist/labeledvalue/index.js +1 -1
  184. package/dist/labeledvalue/index.jsx +1 -1
  185. package/dist/layout/Flex.d.ts +2 -0
  186. package/dist/layout/Flex.d.ts.map +1 -1
  187. package/dist/link/index.d.ts.map +1 -1
  188. package/dist/link/index.js +1 -4
  189. package/dist/link/index.js.map +1 -1
  190. package/dist/link/index.jsx +1 -4
  191. package/dist/link/index.jsx.map +1 -1
  192. package/dist/listbox/index.js +3 -3
  193. package/dist/listbox/index.jsx +4 -4
  194. package/dist/menu/index.d.ts.map +1 -1
  195. package/dist/meter/index.d.ts.map +1 -1
  196. package/dist/meter/index.js +2 -2
  197. package/dist/meter/index.js.map +1 -1
  198. package/dist/meter/index.jsx +2 -2
  199. package/dist/meter/index.jsx.map +1 -1
  200. package/dist/notificationbadge/index.js +1 -1
  201. package/dist/notificationbadge/index.jsx +1 -1
  202. package/dist/picker/index.js +3 -3
  203. package/dist/picker/index.jsx +3 -3
  204. package/dist/popover/index.js +1 -1
  205. package/dist/popover/index.jsx +1 -1
  206. package/dist/progress/ProgressCircle.js +2 -2
  207. package/dist/progress/ProgressCircle.js.map +1 -1
  208. package/dist/progress/ProgressCircle.jsx +2 -2
  209. package/dist/progress/ProgressCircle.jsx.map +1 -1
  210. package/dist/progress-bar/index.js +4 -4
  211. package/dist/progress-bar/index.jsx +4 -4
  212. package/dist/radio/index.js +2 -2
  213. package/dist/radio/index.jsx +2 -2
  214. package/dist/searchfield/index.js +2 -2
  215. package/dist/searchfield/index.jsx +2 -2
  216. package/dist/segmentedcontrol/index.js +2 -5
  217. package/dist/segmentedcontrol/index.js.map +1 -1
  218. package/dist/segmentedcontrol/index.jsx +2 -5
  219. package/dist/segmentedcontrol/index.jsx.map +1 -1
  220. package/dist/select/index.js +3 -3
  221. package/dist/select/index.jsx +3 -3
  222. package/dist/selectboxgroup/index.js +1 -1
  223. package/dist/selectboxgroup/index.jsx +1 -1
  224. package/dist/statuslight/index.js +1 -1
  225. package/dist/statuslight/index.jsx +1 -1
  226. package/dist/steplist/index.js +5 -5
  227. package/dist/steplist/index.jsx +5 -5
  228. package/dist/style/glasselated-ramps.d.ts.map +1 -1
  229. package/dist/style/index.js +18 -9
  230. package/dist/style/index.js.map +1 -1
  231. package/dist/style/spectrum-theme.d.ts +7 -7
  232. package/dist/style/spectrum-theme.d.ts.map +1 -1
  233. package/dist/styles.css +1 -1
  234. package/dist/table/index.d.ts.map +1 -1
  235. package/dist/tag-group/index.js +10 -10
  236. package/dist/tag-group/index.js.map +1 -1
  237. package/dist/tag-group/index.jsx +10 -10
  238. package/dist/tag-group/index.jsx.map +1 -1
  239. package/dist/toolbar/index.d.ts.map +1 -1
  240. package/dist/toolbar/index.js.map +1 -1
  241. package/dist/toolbar/index.jsx.map +1 -1
  242. package/dist/tree/index.d.ts.map +1 -1
  243. package/dist/tree/index.js +5 -5
  244. package/dist/tree/index.js.map +1 -1
  245. package/dist/tree/index.jsx +5 -5
  246. package/dist/tree/index.jsx.map +1 -1
  247. package/dist/viviana-tokens.css +39 -12
  248. package/package.json +18 -5
  249. package/src/breadcrumbs/index.tsx +14 -7
  250. package/src/button/s2-action-button-styles.ts +8 -8
  251. package/src/button/s2-button-styles.ts +8 -8
  252. package/src/calendar/DateField.tsx +2 -6
  253. package/src/calendar/DatePicker.tsx +8 -1
  254. package/src/calendar/RangeCalendar.tsx +13 -7
  255. package/src/calendar/TimeField.tsx +2 -6
  256. package/src/calendar/index.tsx +4 -4
  257. package/src/font-faces.css +13 -6
  258. package/src/form/index.tsx +5 -6
  259. package/src/icon/pixel-icons/PixelChartIcon.tsx +4 -1
  260. package/src/icon/pixel-icons/PixelCheckIcon.tsx +4 -1
  261. package/src/icon/pixel-icons/PixelChevronDownIcon.tsx +4 -1
  262. package/src/icon/pixel-icons/PixelChevronRightIcon.tsx +4 -1
  263. package/src/icon/pixel-icons/PixelClockIcon.tsx +4 -1
  264. package/src/icon/pixel-icons/PixelCodeIcon.tsx +4 -1
  265. package/src/icon/pixel-icons/PixelCommunityIcon.tsx +4 -1
  266. package/src/icon/pixel-icons/PixelCubeIcon.tsx +4 -1
  267. package/src/icon/pixel-icons/PixelFlameIcon.tsx +4 -1
  268. package/src/icon/pixel-icons/PixelHomeIcon.tsx +4 -1
  269. package/src/icon/pixel-icons/PixelLayoutIcon.tsx +4 -1
  270. package/src/icon/pixel-icons/PixelMessageIcon.tsx +4 -1
  271. package/src/icon/pixel-icons/PixelNavCommunityIcon.tsx +4 -1
  272. package/src/icon/pixel-icons/PixelNavExploreIcon.tsx +4 -1
  273. package/src/icon/pixel-icons/PixelNavLiveIcon.tsx +4 -1
  274. package/src/icon/pixel-icons/PixelNavPathwaysIcon.tsx +4 -1
  275. package/src/icon/pixel-icons/PixelNavPlaygroundIcon.tsx +4 -1
  276. package/src/icon/pixel-icons/PixelNavProjectsIcon.tsx +4 -1
  277. package/src/icon/pixel-icons/PixelNavReferenceIcon.tsx +4 -1
  278. package/src/icon/pixel-icons/PixelNavSettingsIcon.tsx +4 -1
  279. package/src/icon/pixel-icons/PixelNavTopicsIcon.tsx +4 -1
  280. package/src/icon/pixel-icons/PixelNotificationIcon.tsx +4 -1
  281. package/src/icon/pixel-icons/PixelPathwaysIcon.tsx +4 -1
  282. package/src/icon/pixel-icons/PixelPlayIcon.tsx +4 -1
  283. package/src/icon/pixel-icons/PixelSearchIcon.tsx +4 -1
  284. package/src/icon/pixel-icons/PixelSettingsIcon.tsx +4 -1
  285. package/src/icon/pixel-icons/PixelSparkleIcon.tsx +4 -1
  286. package/src/icon/pixel-icons/PixelTopicsIcon.tsx +4 -1
  287. package/src/icon/pixel-icons/PixelUserIcon.tsx +4 -1
  288. package/src/icon/pixel-icons/PixelZapIcon.tsx +4 -1
  289. package/src/layout/Flex.tsx +7 -0
  290. package/src/link/index.tsx +3 -1
  291. package/src/menu/index.tsx +1 -3
  292. package/src/meter/index.tsx +1 -3
  293. package/src/progress/ProgressCircle.tsx +1 -1
  294. package/src/segmentedcontrol/index.tsx +6 -6
  295. package/src/style/glasselated-ramps.ts +37 -33
  296. package/src/style/spectrum-theme.ts +22 -17
  297. package/src/table/index.tsx +1 -3
  298. package/src/tag-group/index.tsx +8 -8
  299. package/src/toolbar/index.tsx +4 -1
  300. package/src/tree/index.tsx +3 -11
  301. package/src/viviana-tokens.css +39 -12
@@ -1 +1 @@
1
- {"version":3,"file":"table.js","names":["JSX","createUIIcon","ArrowProps","SvgSVGAttributes","SVGSVGElement","size","Arrow_MSvg","props","Element","class","className","width","_width","height","_height","rest","_el$","_$getNextElement","_tmpl$","_$spread","_$mergeProps","_$runHydrationEvents","Arrow_XXLSvg","_el$2","_tmpl$2","Arrow_M","Arrow_XXL","Arrow","_$createComponent","ArrowIcon"],"sources":["../../src/icon/ui-icons/Arrow.tsx","../../src/table/index.tsx"],"sourcesContent":["/*\n * Auto-generated from the shipped @react-spectrum/s2 dist assets (SVGO-\n * optimized — pixel parity requires the shipped path data, not the raw\n * vendored .svg sources). Variants absent from the dist (Arrow, Gripper)\n * fall back to the vendored sources.\n * Do not edit by hand.\n */\n\nimport { type JSX } from \"solid-js\";\nimport { createUIIcon } from \"../spectrum-icon\";\n\nexport type ArrowProps = JSX.SvgSVGAttributes<SVGSVGElement> & {\n size?: \"M\" | \"XXL\";\n};\n\nfunction Arrow_MSvg(props: JSX.SvgSVGAttributes<SVGSVGElement>): JSX.Element {\n const { class: className, width: _width, height: _height, ...rest } = props;\n return (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"10\"\n height=\"10\"\n viewBox=\"0 0 10 10\"\n {...rest}\n class={className}\n >\n <path\n d=\"m9.94946,4.99658c-.00024-.052-.02026-.10132-.02954-.15259-.01074-.05835-.0127-.11768-.03516-.17322-.00122-.00281-.00146-.00574-.00269-.00867-.03198-.07642-.08447-.13965-.13574-.20312-.01831-.02295-.02612-.0509-.04712-.07227l-.00488-.005c-.00024-.00024-.00049-.00049-.00098-.00085l-3.06934-3.11914c-.33984-.3457-.89355-.34863-1.2373-.01074-.34473.33887-.34961.89355-.01074,1.2373l1.6106,1.63672H.9248c-.4834,0-.875.3916-.875.875s.3916.875.875.875h6.06177l-1.6106,1.63672c-.33887.34375-.33398.89844.01074,1.2373.16992.16699.3916.25098.61328.25098.22656,0,.45215-.08691.62402-.26172l3.06934-3.11914c.00049-.00037.00073-.00061.00098-.00085l.00488-.005c.021-.02136.02881-.04932.04712-.07227.05127-.06348.10376-.12671.13574-.20312.00122-.00293.00146-.00586.00269-.00867.02246-.05554.02441-.11487.03516-.17322.00928-.05127.0293-.10059.02954-.15259,0-.00122.00073-.0022.00073-.00342s-.00073-.0022-.00073-.00342Z\"\n fill=\"var(--iconPrimary, #222)\"\n />\n </svg>\n );\n}\n\nfunction Arrow_XXLSvg(props: JSX.SvgSVGAttributes<SVGSVGElement>): JSX.Element {\n const { class: className, width: _width, height: _height, ...rest } = props;\n return (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 16 16\"\n {...rest}\n class={className}\n >\n <path\n d=\"m14.78552,8.3783c.10016-.24194.10016-.51477,0-.75671-.05017-.12085-.12256-.2301-.21375-.32129l-4.63037-4.63037c-.38574-.38672-1.0127-.38672-1.39844,0-.38623.38574-.38623,1.0127,0,1.39844l2.94238,2.94238H1.87012c-.54639,0-.98877.44336-.98877.98926s.44238.98926.98877.98926h9.61523l-2.94238,2.94238c-.38623.38574-.38623,1.0127,0,1.39844.19287.19336.44629.29004.69922.29004s.50635-.09668.69922-.29004l4.63037-4.63037c.09125-.09119.16357-.20044.21375-.32141Z\"\n fill=\"var(--iconPrimary, #222)\"\n />\n </svg>\n );\n}\n\nconst Arrow_M = createUIIcon(Arrow_MSvg);\nconst Arrow_XXL = createUIIcon(Arrow_XXLSvg);\n\nexport default function Arrow(props: ArrowProps): JSX.Element {\n const { size = \"M\", class: className, width: _width, height: _height, ...rest } = props;\n switch (size) {\n case \"M\":\n return <Arrow_M {...rest} class={className} />;\n case \"XXL\":\n return <Arrow_XXL {...rest} class={className} />;\n default:\n return <Arrow_M {...rest} class={className} />;\n }\n}\n\nexport const ArrowIcon = Arrow;\n","import {\n Show,\n createContext,\n createEffect,\n createMemo,\n createSignal,\n getOwner,\n mergeProps,\n runWithOwner,\n splitProps,\n useContext,\n type JSX,\n} from \"solid-js\";\nimport {\n Button as HeadlessButton,\n ColumnResizer as HeadlessColumnResizer,\n ResizableTableContainer as HeadlessResizableTableContainer,\n Table as HeadlessTable,\n TableBody as HeadlessTableBody,\n TableCell as HeadlessTableCell,\n TableColumn as HeadlessTableColumn,\n TableFooter as HeadlessTableFooter,\n TableHeader as HeadlessTableHeader,\n TableRow as HeadlessTableRow,\n TableSelectAllCheckbox as HeadlessTableSelectAllCheckbox,\n TableColumnResizeStateContext as HeadlessTableColumnResizeStateContext,\n TableSelectionCheckbox as HeadlessTableSelectionCheckbox,\n TableStateContext as HeadlessTableStateContext,\n VisuallyHidden as HeadlessVisuallyHidden,\n Form as HeadlessForm,\n Popover as HeadlessPopover,\n OverlayTriggerStateContext,\n type ColumnResizerProps as HeadlessColumnResizerProps,\n type ColumnResizerRenderProps,\n type ResizableTableContainerProps as HeadlessResizableTableContainerProps,\n type TableBodyProps as HeadlessTableBodyProps,\n type TableCellProps as HeadlessTableCellProps,\n type TableCellRenderProps,\n type TableColumnProps as HeadlessTableColumnProps,\n type TableColumnRenderProps,\n type TableFooterProps as HeadlessTableFooterProps,\n type TableFooterRenderProps,\n type TableHeaderProps as HeadlessTableHeaderProps,\n type TableProps as HeadlessTableProps,\n type TableRenderProps,\n type TableRowProps as HeadlessTableRowProps,\n type TableRowRenderProps,\n} from \"@proyecto-viviana/solidaria-components\";\nimport type {\n ColumnDefinition,\n Key,\n LoadingState,\n SortDescriptor,\n} from \"@proyecto-viviana/solid-stately\";\nimport Arrow from \"../icon/ui-icons/Arrow\";\nimport Checkmark from \"../icon/ui-icons/Checkmark\";\nimport Chevron from \"../icon/ui-icons/Chevron\";\nimport Dash from \"../icon/ui-icons/Dash\";\nimport { useProviderProps } from \"../provider\";\nimport type { StyleString } from \"../style\";\nimport {\n baseColor,\n colorMix,\n focusRing,\n setColorScheme,\n style,\n} from \"../style\" with { type: \"macro\" };\nimport { mergeStyles } from \"../style/runtime\";\nimport type { UnsafeClassName } from \"../s2-internal/style-utils\";\nimport {\n controlFont,\n getAllowedOverrides,\n} from \"../s2-internal/style-utils\" with { type: \"macro\" };\nimport { createMediaQuery } from \"../utils/createMediaQuery\";\nimport { createStringFormatter, getOwnerDocument } from \"@proyecto-viviana/solidaria\";\nimport {\n ActionButton,\n ActionButtonContext,\n Button,\n ButtonContext,\n type ActionButtonProps,\n type ActionButtonSize,\n} from \"../button\";\nimport { getSlottedContextProps, type SpectrumContextValue } from \"../button/spectrum-context\";\nimport { ButtonGroup } from \"../buttongroup\";\nimport { CustomDialog, DialogContainer } from \"../dialog\";\nimport Cross from \"../icon/ui-icons/Cross\";\nimport { s2IntlStrings } from \"../intl\";\n\nexport type TableSize = \"sm\" | \"md\" | \"lg\";\nexport type TableVariant = \"default\" | \"striped\" | \"bordered\";\nexport type TableDensity = \"compact\" | \"regular\" | \"spacious\";\nexport type TableOverflowMode = \"truncate\" | \"wrap\";\nexport type TableSelectionStyle = \"checkbox\" | \"highlight\";\nexport type TableAlign = \"start\" | \"center\" | \"end\" | \"left\" | \"right\";\n\ninterface TableContextValue {\n density: TableDensity;\n isQuiet: boolean;\n overflowMode: TableOverflowMode;\n showSelectionCheckboxes: boolean;\n selectionStyle: TableSelectionStyle;\n loadingState?: LoadingState;\n onLoadMore?: () => void | Promise<void>;\n}\n\nconst InternalTableContext = createContext<TableContextValue>({\n density: \"regular\",\n isQuiet: false,\n overflowMode: \"truncate\",\n showSelectionCheckboxes: false,\n selectionStyle: \"checkbox\",\n});\n\n// Mirrors React S2's public `TableContext`: slotted props injected by an ancestor\n// provider. Distinct from `InternalTableContext` above (which shares row/density\n// state between the Table sub-components). No-op by default.\nexport const TableContext = createContext<SpectrumContextValue<TableProps<any>>>(null);\n\nexport interface TableProps<T extends object> extends Omit<\n HeadlessTableProps<T>,\n | \"class\"\n | \"style\"\n | \"children\"\n | \"selectionBehavior\"\n | \"onSelectionChange\"\n | \"showSelectionCheckboxes\"\n> {\n /** Children components (TableHeader, TableBody). */\n children?: JSX.Element | (() => JSX.Element);\n /** Density of rows and headers. */\n density?: TableDensity;\n /** Whether the TableView should draw without the default container chrome. */\n isQuiet?: boolean;\n /** Whether labels and cell content truncate or wrap. */\n overflowMode?: TableOverflowMode;\n /** Provides an action bar when rows are selected. */\n renderActionBar?: (selectedKeys: \"all\" | Set<Key>) => JSX.Element;\n /** Spectrum-defined generated classes. */\n styles?: StyleString;\n /** Additional CSS class name. Use only as a last resort. */\n UNSAFE_className?: UnsafeClassName | string;\n /** Additional inline styles. Use only as a last resort. */\n UNSAFE_style?: JSX.CSSProperties;\n /** Backward-compatible class alias. Prefer UNSAFE_className for S2 parity. */\n class?: string;\n /** Backward-compatible inline style alias. Prefer styles or UNSAFE_style. */\n style?: JSX.CSSProperties;\n /** Title for the table. Prefer aria-label/aria-labelledby for new code. */\n title?: JSX.Element;\n /** Description for the table. */\n description?: JSX.Element;\n /** Legacy size alias retained for compatibility. */\n size?: TableSize;\n /** Legacy variant alias retained for compatibility. */\n variant?: TableVariant;\n /** Overrides the default S2 selection checkbox behavior. */\n showSelectionCheckboxes?: boolean;\n /**\n * How selection is displayed: `checkbox` shows selection checkboxes (toggle\n * behavior), `highlight` selects whole rows with no checkboxes (replace\n * behavior).\n * @default 'checkbox'\n */\n selectionStyle?: TableSelectionStyle;\n /** S2 row action alias. */\n onAction?: (key: Key) => void;\n /** S2 asynchronous loading state. */\n loadingState?: LoadingState;\n /** S2 asynchronous load-more callback. */\n onLoadMore?: () => void | Promise<void>;\n /** Called when a 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 a column resize ends. */\n onResizeEnd?: (widths: Map<Key, number>) => void;\n /** Selection behavior forwarded to the headless table. S2 defaults to toggle. */\n selectionBehavior?: HeadlessTableProps<T>[\"selectionBehavior\"];\n /** Selection callback mirrored for the optional action bar. */\n onSelectionChange?: HeadlessTableProps<T>[\"onSelectionChange\"];\n}\n\nexport interface TableHeaderProps extends Omit<HeadlessTableHeaderProps, \"class\" | \"style\"> {\n /** Additional CSS class name. Use only as a last resort. */\n class?: string;\n /** Spectrum-defined generated classes. */\n styles?: StyleString;\n /** Additional CSS class name. Use only as a last resort. */\n UNSAFE_className?: UnsafeClassName | string;\n}\n\nexport interface TableColumnProps extends Omit<HeadlessTableColumnProps, \"class\" | \"style\"> {\n /** Text alignment for the column. */\n align?: TableAlign;\n /** Whether to draw an end divider. */\n showDivider?: boolean;\n /** Additional CSS class name. Use only as a last resort. */\n class?: string;\n /** Spectrum-defined generated classes. */\n styles?: StyleString;\n /** Additional CSS class name. Use only as a last resort. */\n UNSAFE_className?: UnsafeClassName | string;\n /** Additional inline styles. Use only as a last resort. */\n UNSAFE_style?: JSX.CSSProperties;\n}\n\nexport interface TableBodyProps<T> extends Omit<HeadlessTableBodyProps<T>, \"class\" | \"style\"> {\n /** Additional CSS class name. Use only as a last resort. */\n class?: string;\n /** Spectrum-defined generated classes. */\n styles?: StyleString;\n /** Additional CSS class name. Use only as a last resort. */\n UNSAFE_className?: UnsafeClassName | string;\n}\n\nexport interface TableFooterProps<T> extends Omit<HeadlessTableFooterProps<T>, \"class\" | \"style\"> {\n /** Additional CSS class name. Use only as a last resort. */\n class?: string;\n /** Spectrum-defined generated classes. */\n styles?: StyleString;\n /** Additional CSS class name. Use only as a last resort. */\n UNSAFE_className?: UnsafeClassName | string;\n}\n\nexport interface TableRowProps<T> extends Omit<HeadlessTableRowProps<T>, \"class\" | \"style\"> {\n /** Additional CSS class name. Use only as a last resort. */\n class?: string;\n /** Spectrum-defined generated classes. */\n styles?: StyleString;\n /** Additional CSS class name. Use only as a last resort. */\n UNSAFE_className?: UnsafeClassName | string;\n /** Additional inline styles. Use only as a last resort. */\n UNSAFE_style?: JSX.CSSProperties;\n}\n\nexport interface TableCellProps extends Omit<HeadlessTableCellProps, \"class\" | \"style\"> {\n /** Text alignment for the cell. */\n align?: TableAlign;\n /** Whether to draw an end divider. */\n showDivider?: boolean;\n /** Additional CSS class name. Use only as a last resort. */\n class?: string;\n /** Spectrum-defined generated classes. */\n styles?: StyleString;\n /** Additional CSS class name. Use only as a last resort. */\n UNSAFE_className?: UnsafeClassName | string;\n /** Additional inline styles. Use only as a last resort. */\n UNSAFE_style?: JSX.CSSProperties;\n}\n\nconst tableWrapper = style(\n {\n minHeight: 0,\n minWidth: 0,\n display: \"flex\",\n flexDirection: \"column\",\n isolation: \"isolate\",\n position: \"relative\",\n overflow: \"clip\",\n },\n getAllowedOverrides({ height: true }),\n);\n\nconst tableShell = style<{ isQuiet?: boolean }>({\n minHeight: 0,\n minWidth: 0,\n width: \"full\",\n flexGrow: 1,\n boxSizing: \"border-box\",\n overflow: \"auto\",\n backgroundColor: {\n default: \"gray-25\",\n isQuiet: \"transparent\",\n },\n borderColor: \"gray-300\",\n borderWidth: {\n default: 1,\n isQuiet: 0,\n },\n borderStyle: \"solid\",\n borderRadius: {\n default: \"[6px]\",\n isQuiet: \"none\",\n },\n scrollPaddingTop: 32,\n});\n\nconst table = style<TableRenderProps & { isQuiet?: boolean; hasActionBar?: boolean }>({\n ...focusRing(),\n outlineOffset: -1,\n outlineStyle: \"none\",\n userSelect: \"none\",\n minWidth: \"full\",\n width: \"full\",\n fontSize: controlFont(),\n fontFamily: \"code\",\n fontWeight: \"normal\",\n borderWidth: 0,\n borderCollapse: \"separate\",\n borderSpacing: 0,\n tableLayout: \"fixed\",\n disableTapHighlight: true,\n // Per-level indentation unit for tree-grid columns; read by the cell's\n // paddingStart calc. Mirrors @react-spectrum/s2 TableView's `--indent`.\n \"--indent\": {\n type: \"width\",\n value: 16,\n },\n});\n\nconst legacyLabel = style({\n font: controlFont(),\n fontWeight: \"medium\",\n color: baseColor(\"neutral\"),\n marginBottom: 4,\n});\n\nconst legacyDescription = style({\n font: \"body-sm\",\n color: baseColor(\"neutral-subdued\"),\n marginTop: 4,\n});\n\nconst tableHeader = style({\n backgroundColor: \"gray-75\",\n});\n\nconst headerHeight = {\n compact: 32,\n regular: 32,\n spacious: 40,\n} as const;\n\nconst rowHeight = {\n compact: 32,\n regular: 40,\n spacious: 48,\n} as const;\n\nconst tableColumn = style<\n TableColumnRenderProps & {\n align?: \"start\" | \"center\" | \"end\";\n density?: TableDensity;\n showDivider?: boolean;\n }\n>({\n outlineStyle: \"none\",\n position: \"relative\",\n height: {\n density: headerHeight,\n },\n minHeight: {\n density: headerHeight,\n },\n paddingX: 16,\n paddingY: 0,\n color: baseColor(\"neutral\"),\n fontSize: controlFont(),\n fontFamily: \"code\",\n fontWeight: \"bold\",\n textAlign: {\n align: {\n start: \"start\",\n center: \"center\",\n end: \"end\",\n },\n },\n verticalAlign: \"middle\",\n backgroundColor: \"gray-75\",\n borderWidth: 0,\n borderBottomWidth: 1,\n borderStyle: \"solid\",\n borderColor: \"gray-300\",\n borderEndWidth: {\n showDivider: 1,\n },\n cursor: {\n isSortable: \"pointer\",\n },\n whiteSpace: \"nowrap\",\n});\n\nconst tableColumnContent = style<{\n align?: \"start\" | \"center\" | \"end\";\n overflowMode?: TableOverflowMode;\n}>({\n display: \"flex\",\n alignItems: \"center\",\n gap: \"text-to-visual\",\n justifyContent: {\n align: {\n start: \"start\",\n center: \"center\",\n end: \"end\",\n },\n },\n minWidth: 0,\n width: \"full\",\n overflow: \"hidden\",\n textOverflow: {\n overflowMode: {\n truncate: \"ellipsis\",\n },\n },\n whiteSpace: {\n overflowMode: {\n truncate: \"nowrap\",\n wrap: \"normal\",\n },\n },\n});\n\nconst tableSortIcon = style({\n flexShrink: 0,\n size: 10,\n \"--iconPrimary\": {\n type: \"fill\",\n value: \"currentColor\",\n },\n});\n\nconst rowHoverBackground = colorMix(\"gray-25\", \"gray-900\", 5);\nconst rowPressedBackground = colorMix(\"gray-25\", \"gray-900\", 8);\nconst rowSelectedBackground = colorMix(\"gray-25\", \"gray-900\", 7);\n\nconst rowHighlightBackground = colorMix(\"gray-25\", \"blue-900\", 10);\nconst rowHighlightActiveBackground = colorMix(\"gray-25\", \"blue-900\", 15);\n\n// The S2 highlight-selection \"block\" border — the blue outline around a run of\n// selected rows, rounded only on the group's outer corners — is a row-spanning\n// overlay. The S2 style() macro can't express a pseudo-element, so (exactly like\n// upstream's `highlightSelectionBorder` raw css) we inject a `::before` overlay\n// that reads the per-row custom properties the macro sets on the row. Upstream\n// also pins it to `z-index: 3` to paint above the virtualizer's sticky cells; our\n// real-DOM <table> has no sticky cells, so that part is dropped.\nconst HIGHLIGHT_SELECTION_BORDER_CLASS = \"solid-spectrum-table-highlight-selection\";\nlet highlightSelectionBorderInjected = false;\nfunction injectHighlightSelectionBorderCSS(): void {\n if (highlightSelectionBorderInjected || typeof document === \"undefined\") return;\n const style = document.createElement(\"style\");\n style.id = \"solid-spectrum-table-highlight-selection-style\";\n style.textContent = `.${HIGHLIGHT_SELECTION_BORDER_CLASS}::before {\n content: \"\";\n position: absolute;\n inset: 0;\n box-sizing: border-box;\n pointer-events: none;\n border-style: solid;\n border-color: var(--borderColor);\n border-top-width: var(--borderTopWidth);\n border-bottom-width: var(--borderBottomWidth);\n border-inline-start-width: var(--borderStartEndWidth);\n border-inline-end-width: var(--borderStartEndWidth);\n border-start-start-radius: var(--borderTopRadius);\n border-start-end-radius: var(--borderTopRadius);\n border-end-start-radius: var(--borderBottomRadius);\n border-end-end-radius: var(--borderBottomRadius);\n}`;\n document.head.appendChild(style);\n highlightSelectionBorderInjected = true;\n}\n\n// Upstream S2 draws the row-level focus/drop indicator as raw `&::after`\n// (`focusIndicator`) so it can overlap row boundaries asymmetrically via\n// --topFocusRing/--bottomPosition. Keep the same overlay model rather than a\n// direct outline, which can't express the non-first-row -1px top extension.\nconst ROW_FOCUS_INDICATOR_CLASS = \"solid-spectrum-table-row-focus-indicator\";\nlet rowFocusIndicatorInjected = false;\nfunction injectRowFocusIndicatorCSS(): void {\n if (rowFocusIndicatorInjected || typeof document === \"undefined\") return;\n const style = document.createElement(\"style\");\n style.id = \"solid-spectrum-table-row-focus-indicator-style\";\n style.textContent = `.${ROW_FOCUS_INDICATOR_CLASS}::after {\n content: \"\";\n top: var(--topFocusRing);\n bottom: var(--bottomPosition);\n z-index: 3;\n inset-inline-start: 0;\n inset-inline-end: 0;\n border-radius: 5px;\n position: absolute;\n outline-style: solid;\n outline-color: var(--focusRingColor);\n outline-width: 2px;\n outline-offset: -2px;\n pointer-events: none;\n}`;\n document.head.appendChild(style);\n rowFocusIndicatorInjected = true;\n}\n\nconst tableRow = style<\n TableRowRenderProps & {\n density?: TableDensity;\n selectionStyle?: TableSelectionStyle;\n isFirstItem?: boolean;\n isNextSelected?: boolean;\n isPrevSelected?: boolean;\n }\n>({\n outlineStyle: \"none\",\n position: \"relative\",\n isolation: \"isolate\",\n forcedColorAdjust: \"none\",\n minHeight: {\n density: rowHeight,\n },\n backgroundColor: {\n default: \"transparent\",\n isHovered: rowHoverBackground,\n isPressed: rowPressedBackground,\n isSelected: {\n default: rowSelectedBackground,\n selectionStyle: {\n highlight: {\n default: rowHighlightBackground,\n isHovered: rowHighlightActiveBackground,\n isPressed: rowHighlightActiveBackground,\n },\n },\n },\n forcedColors: {\n selectionStyle: {\n highlight: {\n isSelected: \"Highlight\",\n },\n },\n },\n },\n cursor: {\n isDisabled: \"default\",\n },\n color: {\n default: baseColor(\"neutral-subdued\"),\n isSelected: baseColor(\"neutral\"),\n isDisabled: \"disabled\",\n forcedColors: {\n selectionStyle: {\n highlight: {\n isSelected: \"HighlightText\",\n },\n },\n },\n },\n // Highlight-selection block border + grouped rounded corners. These custom\n // properties feed the `::before` overlay (see injectHighlightSelectionBorderCSS)\n // and only take visible effect in highlight selection — the overlay class is\n // appended to the row only then. Mirrors @react-spectrum/s2 TableView's `row`.\n \"--borderColorGray\": {\n type: \"borderColor\",\n value: {\n default: \"gray-300\",\n forcedColors: {\n default: \"ButtonBorder\",\n isSelected: \"Highlight\",\n },\n },\n },\n \"--borderColorBlue\": {\n type: \"borderColor\",\n value: {\n default: \"blue-900\",\n forcedColors: \"Highlight\",\n },\n },\n \"--borderColor\": {\n type: \"borderColor\",\n value: {\n default: \"transparent\",\n isSelected: \"--borderColorBlue\",\n },\n },\n \"--focusRingColor\": {\n type: \"outlineColor\",\n value: {\n default: \"focus-ring\",\n forcedColors: \"Highlight\",\n },\n },\n \"--topFocusRing\": {\n type: \"top\",\n value: {\n default: \"[-1px]\",\n isFirstItem: 0,\n },\n },\n \"--bottomPosition\": {\n type: \"bottom\",\n value: {\n selectionStyle: {\n checkbox: {\n default: \"[-1px]\",\n isNextSelected: 0,\n },\n highlight: \"[-1px]\",\n },\n },\n },\n \"--borderTopRadius\": {\n type: \"borderTopStartRadius\",\n value: {\n default: \"none\",\n selectionStyle: {\n highlight: {\n default: \"none\",\n isSelected: \"[5px]\",\n isPrevSelected: \"none\",\n },\n },\n },\n },\n \"--borderBottomRadius\": {\n type: \"borderBottomStartRadius\",\n value: {\n default: \"none\",\n selectionStyle: {\n highlight: {\n default: \"none\",\n isSelected: \"[5px]\",\n isNextSelected: \"none\",\n },\n },\n },\n },\n // Round the row's own background to the selection block's outer corners; the\n // visible blue border is drawn by the ::before overlay reading the same props.\n borderBottomRadius: \"[var(--borderBottomRadius)]\",\n borderTopRadius: \"[var(--borderTopRadius)]\",\n \"--borderTopWidth\": {\n type: \"width\",\n value: {\n default: {\n selectionStyle: {\n checkbox: 0,\n highlight: 1,\n },\n },\n isPrevSelected: 0,\n },\n },\n \"--borderBottomWidth\": {\n type: \"width\",\n value: {\n default: {\n selectionStyle: {\n checkbox: 0,\n highlight: 1,\n },\n },\n isNextSelected: 0,\n },\n },\n \"--borderStartEndWidth\": {\n type: \"width\",\n value: {\n default: {\n selectionStyle: {\n checkbox: 0,\n highlight: 1,\n },\n },\n },\n },\n // Highlight mode draws the gray row divider as the row's box-shadow. A real\n // `<tr>` border can't be used here: under `border-collapse: separate` CSS\n // ignores borders set on `<tr>`, so upstream's row `borderBottom` has no\n // real-DOM equivalent — the box-shadow is its faithful realization (checkbox\n // mode keeps the divider on the cell's bottom border instead). The divider is\n // suppressed under selection: when the row itself is selected, or the row\n // below it is, the rounded blue highlight-block border paints that edge, so\n // the gray line would otherwise double up. Mirrors upstream's divider\n // `borderColor` going `transparent` on both `isSelected` and `isNextSelected`.\n boxShadow: {\n selectionStyle: {\n highlight: {\n default: \"[inset 0 -1px 0px var(--borderColorGray)]\",\n isSelected: \"[inset 0 0 0 var(--borderColorGray)]\",\n isNextSelected: \"[inset 0 0 0 var(--borderColorGray)]\",\n },\n },\n },\n});\n\nconst tableCell = style<\n TableCellRenderProps & {\n align?: \"start\" | \"center\" | \"end\";\n density?: TableDensity;\n overflowMode?: TableOverflowMode;\n showDivider?: boolean;\n isTreeColumnWithNoChildren?: boolean;\n selectionStyle?: TableSelectionStyle;\n }\n>({\n outlineStyle: \"none\",\n position: \"relative\",\n color: \"inherit\",\n paddingX: 16,\n paddingY: 0,\n // Tree-grid indentation. A leaf cell in the tree column reserves the chevron's\n // footprint (36) so its content lines up with sibling rows that do show a\n // chevron (16); each nesting level then adds `--indent`. Mirrors\n // @react-spectrum/s2 TableView's `treeColumnStyles`.\n \"--treeColumnPadding\": {\n type: \"width\",\n value: {\n default: 16,\n isTreeColumnWithNoChildren: 36,\n },\n },\n paddingStart: {\n default: 16,\n isTreeColumn:\n \"calc(var(--treeColumnPadding) + (var(--table-row-level, 1) - 1) * var(--indent))\",\n },\n minHeight: {\n density: rowHeight,\n },\n height: {\n density: rowHeight,\n },\n textAlign: {\n align: {\n start: \"start\",\n center: \"center\",\n end: \"end\",\n },\n },\n verticalAlign: \"middle\",\n borderWidth: 0,\n // Checkbox mode draws the gray row divider here; highlight mode draws it as the\n // row's box-shadow instead, so the cell border is suppressed to avoid doubling.\n borderBottomWidth: {\n default: 1,\n selectionStyle: {\n highlight: 0,\n },\n },\n borderStyle: \"solid\",\n borderColor: \"gray-300\",\n borderEndWidth: {\n showDivider: 1,\n },\n});\n\nconst tableCellFocusRing = style({\n outlineStyle: \"solid\",\n outlineOffset: -2,\n outlineWidth: 2,\n outlineColor: {\n default: \"focus-ring\",\n forcedColors: \"Highlight\",\n },\n borderRadius: \"[5px]\",\n zIndex: 2,\n position: \"absolute\",\n top: \"var(--topFocusRing, 0)\",\n bottom: 0,\n insetStart: 0,\n insetEnd: 0,\n pointerEvents: \"none\",\n});\n\nfunction CellFocusRing(): JSX.Element {\n return <div role=\"presentation\" class={tableCellFocusRing} />;\n}\n\nconst tableCellContent = style<{\n align?: \"start\" | \"center\" | \"end\";\n overflowMode?: TableOverflowMode;\n}>({\n minWidth: 0,\n overflow: {\n overflowMode: {\n truncate: \"hidden\",\n wrap: \"visible\",\n },\n },\n textOverflow: {\n overflowMode: {\n truncate: \"ellipsis\",\n },\n },\n whiteSpace: {\n overflowMode: {\n truncate: \"nowrap\",\n wrap: \"normal\",\n },\n },\n});\n\n// Flex wrapper placed *inside* the real `<td>` (rather than making the td a flex\n// container, which would break our fixed table-layout column widths) so the\n// expand chevron and the cell content sit side by side and fill the row height.\nconst treeCellInner = style({\n display: \"flex\",\n alignItems: \"center\",\n height: \"full\",\n minWidth: 0,\n});\n\n// Ports @react-spectrum/s2 TableView's `expandButton`. Upstream rotates the\n// button via `transform`; we rotate with the `rotate` shorthand (matching our\n// TreeView's chevron idiom) and drop the RTL branch our codebase already omits.\nconst expandButton = style<{ isDisabled?: boolean; isExpanded?: boolean }>({\n color: {\n default: \"inherit\",\n isDisabled: {\n default: \"disabled\",\n forcedColors: \"GrayText\",\n },\n },\n height: \"full\",\n width: 40,\n marginStart: -12,\n display: \"flex\",\n flexWrap: \"wrap\",\n alignContent: \"center\",\n justifyContent: \"center\",\n outlineStyle: \"none\",\n cursor: \"default\",\n rotate: {\n isExpanded: 90,\n },\n padding: 0,\n transition: \"default\",\n backgroundColor: \"transparent\",\n borderWidth: 0,\n borderStyle: \"none\",\n disableTapHighlight: true,\n});\n\nconst expandChevronIcon = style({\n \"--iconPrimary\": {\n type: \"fill\",\n value: \"currentColor\",\n },\n});\n\n// An editable cell renders like a regular cell but dims its content while a\n// submitted edit is saving. The inline edit trigger, the editing popover/dialog,\n// and the save/cancel affordances are styled below, mirroring the S2 source.\nconst editableCell = style<\n TableCellRenderProps & {\n align?: \"start\" | \"center\" | \"end\";\n density?: TableDensity;\n overflowMode?: TableOverflowMode;\n showDivider?: boolean;\n isSaving?: boolean;\n selectionStyle?: TableSelectionStyle;\n }\n>({\n outlineStyle: \"none\",\n position: \"relative\",\n color: {\n default: \"inherit\",\n isSaving: baseColor(\"neutral-subdued\"),\n },\n paddingX: 16,\n paddingY: 0,\n minHeight: {\n density: rowHeight,\n },\n height: {\n density: rowHeight,\n },\n textAlign: {\n align: {\n start: \"start\",\n center: \"center\",\n end: \"end\",\n },\n },\n verticalAlign: \"middle\",\n borderWidth: 0,\n // Checkbox mode draws the gray row divider here; highlight mode draws it as the\n // row's box-shadow instead, so the cell border is suppressed to avoid doubling.\n borderBottomWidth: {\n default: 1,\n selectionStyle: {\n highlight: 0,\n },\n },\n borderStyle: \"solid\",\n borderColor: \"gray-300\",\n borderEndWidth: {\n showDivider: 1,\n },\n});\n\nconst editPopover = style(\n {\n ...setColorScheme(),\n \"--s2-container-bg\": {\n type: \"backgroundColor\",\n value: \"layer-2\",\n },\n backgroundColor: \"--s2-container-bg\",\n borderBottomRadius: \"default\",\n boxShadow: \"elevated\",\n borderStyle: \"solid\",\n borderWidth: 1,\n borderColor: {\n default: \"gray-200\",\n forcedColors: \"ButtonBorder\",\n },\n boxSizing: \"content-box\",\n isolation: \"isolate\",\n pointerEvents: {\n isExiting: \"none\",\n },\n outlineStyle: \"none\",\n minWidth: \"--trigger-width\",\n padding: 8,\n display: \"flex\",\n alignItems: \"center\",\n },\n getAllowedOverrides(),\n);\n\nconst editForm = style({\n width: \"full\",\n display: \"flex\",\n alignItems: \"start\",\n gap: 16,\n});\n\nconst editActions = style({\n display: \"flex\",\n flexDirection: \"row\",\n alignItems: \"baseline\",\n flexShrink: 0,\n flexGrow: 0,\n});\n\nconst editFormMobile = style({\n width: \"full\",\n display: \"flex\",\n flexDirection: \"column\",\n alignItems: \"start\",\n gap: 16,\n});\n\nconst editButtonGroupStyles = style({\n alignSelf: \"end\",\n});\n\n// The inline edit trigger is hidden until the row is hovered or focused, the\n// editor is open, or the device lacks a fine pointer (touch). Mirrors S2.\nconst editButtonStyles = style<{ isForcedVisible?: boolean }>({\n visibility: {\n default: \"hidden\",\n isForcedVisible: \"visible\",\n ':is([role=\"row\"]:hover *)': \"visible\",\n ':is([role=\"row\"][data-focus-visible-within] *)': \"visible\",\n \"@media not ((hover: hover) and (pointer: fine))\": \"visible\",\n },\n});\n\n// Input types whose text cannot be range-selected on open. Mirrors S2.\nconst nonTextInputTypes = new Set([\n \"checkbox\",\n \"radio\",\n \"range\",\n \"color\",\n \"file\",\n \"image\",\n \"button\",\n \"submit\",\n \"reset\",\n]);\n\nconst emptyState = style({\n minHeight: 112,\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n color: \"neutral\",\n font: \"body-sm\",\n});\n\nconst selectionColumn = style({\n width: 40,\n minWidth: 40,\n paddingX: 0,\n textAlign: \"center\",\n});\n\nconst selectionCell = style<TableCellRenderProps & { density?: TableDensity }>({\n width: 40,\n minWidth: 40,\n paddingX: 0,\n paddingY: 0,\n height: {\n density: rowHeight,\n },\n borderWidth: 0,\n borderBottomWidth: 1,\n borderStyle: \"solid\",\n borderColor: \"gray-300\",\n textAlign: \"center\",\n verticalAlign: \"middle\",\n});\n\nconst selectionCheckbox = style<{ isDisabled?: boolean }>({\n position: \"relative\",\n display: \"inline-flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n width: 16,\n height: 16,\n // Mirrors S2 TableView's `selectionCheckbox` style\n // (`[slot=\"selection\"][data-disabled=\"true\"]` → `visibility: hidden`): a\n // disabled row's selection checkbox is visually hidden, which also removes it\n // from the accessibility tree (matching the S2 oracle, whose disabled\n // selection checkbox is pruned from the AX snapshot). The select-all checkbox\n // uses S2's separate `selectAllCheckbox` style and is never hidden this way.\n visibility: {\n default: \"visible\",\n isDisabled: \"hidden\",\n },\n});\n\nconst selectionCheckboxInput = style({\n position: \"absolute\",\n inset: 0,\n margin: 0,\n opacity: 0,\n cursor: \"inherit\",\n});\n\nconst selectionCheckboxBox = style<{ isSelected?: boolean; isDisabled?: boolean }>({\n ...focusRing(),\n size: 16,\n pointerEvents: \"none\",\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n borderWidth: 1,\n borderStyle: \"solid\",\n borderRadius: \"row\",\n boxSizing: \"border-box\",\n backgroundColor: {\n default: \"gray-25\",\n isSelected: baseColor(\"neutral\"),\n isDisabled: \"disabled\",\n },\n borderColor: {\n default: baseColor(\"gray-800\"),\n isSelected: \"transparent\",\n isDisabled: \"disabled\",\n },\n});\n\nconst selectionCheckboxIcon = style({\n pointerEvents: \"none\",\n \"--iconPrimary\": {\n type: \"fill\",\n value: {\n default: \"gray-25\",\n forcedColors: \"HighlightText\",\n },\n },\n});\n\nconst tableFooter = style({\n backgroundColor: \"gray-75\",\n borderWidth: 0,\n borderTopWidth: 1,\n borderStyle: \"solid\",\n borderColor: \"gray-300\",\n});\n\nconst actionBarContainer = style({\n position: \"absolute\",\n insetInline: 0,\n bottom: 12,\n display: \"flex\",\n justifyContent: \"center\",\n pointerEvents: \"none\",\n zIndex: 2,\n});\n\nconst actionBarContent = style({\n pointerEvents: \"auto\",\n});\n\nconst resizer = style<ColumnResizerRenderProps>({\n position: \"absolute\",\n top: 0,\n bottom: 0,\n insetEnd: 0,\n width: 6,\n cursor: \"col-resize\",\n touchAction: \"none\",\n userSelect: \"none\",\n backgroundColor: {\n default: \"transparent\",\n isHovered: \"accent-400\",\n isResizing: \"accent-900\",\n },\n});\n\nconst resizableTableContainer = style({\n position: \"relative\",\n width: \"full\",\n});\n\nfunction selectedKeySet(keys: \"all\" | Iterable<Key> | undefined): \"all\" | Set<Key> {\n if (keys === \"all\") {\n return \"all\";\n }\n\n return new Set(keys ?? []);\n}\n\nfunction hasSelection(keys: \"all\" | Set<Key>): boolean {\n return keys === \"all\" || keys.size > 0;\n}\n\nfunction densityFromProps(size: TableSize | undefined, density: TableDensity | undefined) {\n if (density) {\n return density;\n }\n\n switch (size) {\n case \"sm\":\n return \"compact\";\n case \"lg\":\n return \"spacious\";\n default:\n return \"regular\";\n }\n}\n\nfunction normalizeAlign(align: TableAlign | undefined): \"start\" | \"center\" | \"end\" {\n if (align === \"right\") {\n return \"end\";\n }\n\n if (align === \"left\") {\n return \"start\";\n }\n\n return align ?? \"start\";\n}\n\nfunction keyFromRowProps<T extends object>(props: HeadlessTableRowProps<T>): Key | undefined {\n return props.id ?? (props.item as { id?: Key; key?: Key } | undefined)?.id;\n}\n\nfunction inlineStyle(\n styleProp: JSX.CSSProperties | undefined,\n unsafeStyle: JSX.CSSProperties | undefined,\n): JSX.CSSProperties | undefined {\n if (!styleProp && !unsafeStyle) {\n return undefined;\n }\n\n return {\n ...styleProp,\n ...unsafeStyle,\n };\n}\n\nexport function Table<T extends object>(props: TableProps<T>): JSX.Element {\n const providerProps = useProviderProps(props);\n const contextProps = getSlottedContextProps(\n useContext(TableContext),\n (props as { slot?: string }).slot,\n );\n const mergedProps = mergeProps(providerProps, contextProps ?? {}, props);\n const [local, headlessProps] = splitProps(mergedProps, [\n \"children\",\n \"density\",\n \"isQuiet\",\n \"overflowMode\",\n \"renderActionBar\",\n \"styles\",\n \"UNSAFE_className\",\n \"UNSAFE_style\",\n \"class\",\n \"style\",\n \"title\",\n \"description\",\n \"size\",\n \"variant\",\n \"showSelectionCheckboxes\",\n \"selectionStyle\",\n \"selectionBehavior\",\n \"onSelectionChange\",\n \"onAction\",\n \"onRowAction\",\n \"loadingState\",\n \"onLoadMore\",\n \"onResizeStart\",\n \"onResize\",\n \"onResizeEnd\",\n ]);\n const externalResizeContext = useContext(HeadlessTableColumnResizeStateContext);\n const density = () => densityFromProps(local.size, local.density);\n const isQuiet = () => !!local.isQuiet;\n const overflowMode = () => local.overflowMode ?? \"truncate\";\n const selectionStyle = (): TableSelectionStyle => local.selectionStyle ?? \"checkbox\";\n const selectionBehavior = (): \"toggle\" | \"replace\" =>\n local.selectionBehavior ?? (selectionStyle() === \"highlight\" ? \"replace\" : \"toggle\");\n // Mirror upstream S2's gate: checkboxes only appear with toggle behavior in\n // checkbox style. Highlight selection (replace behavior) hides them entirely.\n const showSelectionCheckboxes = () =>\n (local.showSelectionCheckboxes ?? headlessProps.selectionMode !== \"none\") &&\n selectionStyle() === \"checkbox\" &&\n selectionBehavior() === \"toggle\";\n const [actionSelectedKeys, setActionSelectedKeys] = createSignal<\"all\" | Set<Key>>(\n selectedKeySet(headlessProps.selectedKeys ?? headlessProps.defaultSelectedKeys),\n );\n\n createEffect(() => {\n setActionSelectedKeys(\n selectedKeySet(headlessProps.selectedKeys ?? headlessProps.defaultSelectedKeys),\n );\n });\n\n const onSelectionChange = (keys: \"all\" | Set<Key>) => {\n setActionSelectedKeys(keys === \"all\" ? \"all\" : new Set(keys));\n local.onSelectionChange?.(keys);\n };\n const className = (renderProps: TableRenderProps): string =>\n [\n local.UNSAFE_className,\n local.class,\n mergeStyles(\n table({\n ...renderProps,\n isQuiet: isQuiet(),\n }),\n ),\n ]\n .filter(Boolean)\n .join(\" \");\n const context = createMemo<TableContextValue>(() => ({\n density: density(),\n isQuiet: isQuiet(),\n overflowMode: overflowMode(),\n showSelectionCheckboxes: showSelectionCheckboxes(),\n selectionStyle: selectionStyle(),\n loadingState: local.loadingState,\n onLoadMore: local.onLoadMore,\n }));\n const renderTable = () => (\n <HeadlessTable\n {...headlessProps}\n selectionBehavior={selectionBehavior()}\n showSelectionCheckboxes={showSelectionCheckboxes()}\n onRowAction={local.onAction ?? local.onRowAction}\n onSelectionChange={onSelectionChange}\n class={className}\n data-table-view=\"\"\n data-density={density()}\n data-quiet={isQuiet() || undefined}\n data-overflow-mode={overflowMode()}\n data-selection-style={selectionStyle()}\n >\n {local.children}\n </HeadlessTable>\n );\n const renderResizableTable = () =>\n externalResizeContext ? (\n renderTable()\n ) : (\n <HeadlessResizableTableContainer\n class={resizableTableContainer}\n onResizeStart={local.onResizeStart}\n onResize={local.onResize}\n onResizeEnd={local.onResizeEnd}\n >\n {renderTable()}\n </HeadlessResizableTableContainer>\n );\n\n const renderFramed = () => (\n <div\n class={tableWrapper(null, local.styles)}\n style={inlineStyle(local.style, local.UNSAFE_style)}\n >\n {local.title ? <div class={legacyLabel({})}>{local.title}</div> : null}\n <div class={tableShell({ isQuiet: isQuiet() })} data-table-view-shell=\"\">\n {renderResizableTable()}\n </div>\n {local.description ? <div class={legacyDescription({})}>{local.description}</div> : null}\n {local.renderActionBar && hasSelection(actionSelectedKeys()) ? (\n <div class={actionBarContainer}>\n <div class={actionBarContent}>{local.renderActionBar(actionSelectedKeys())}</div>\n </div>\n ) : null}\n </div>\n );\n\n return (\n <InternalTableContext.Provider value={context()}>\n {renderFramed()}\n </InternalTableContext.Provider>\n );\n}\n\nexport function TableHeader(props: TableHeaderProps): JSX.Element {\n const context = useContext(InternalTableContext);\n const [local, headlessProps] = splitProps(props, [\"class\", \"styles\", \"UNSAFE_className\"]);\n const className = () =>\n [local.UNSAFE_className, local.class, mergeStyles(tableHeader, local.styles)]\n .filter(Boolean)\n .join(\" \");\n\n return (\n <HeadlessTableHeader {...headlessProps} class={className()}>\n {context.showSelectionCheckboxes ? <TableSelectAllCheckbox /> : null}\n {props.children}\n </HeadlessTableHeader>\n );\n}\n\nexport function TableColumn(props: TableColumnProps): JSX.Element {\n const context = useContext(InternalTableContext);\n const [local, headlessProps] = splitProps(props, [\n \"children\",\n \"align\",\n \"showDivider\",\n \"class\",\n \"styles\",\n \"UNSAFE_className\",\n \"UNSAFE_style\",\n ]);\n const align = () => normalizeAlign(local.align);\n const className = (renderProps: TableColumnRenderProps): string =>\n [\n local.UNSAFE_className,\n local.class,\n mergeStyles(\n tableColumn({\n ...renderProps,\n align: align(),\n density: context.density,\n showDivider: !!local.showDivider,\n }),\n local.styles,\n ),\n ]\n .filter(Boolean)\n .join(\" \");\n\n return (\n <HeadlessTableColumn {...headlessProps} class={className} style={local.UNSAFE_style}>\n {(renderProps: TableColumnRenderProps) => (\n <>\n <span class={tableColumnContent({ align: align(), overflowMode: context.overflowMode })}>\n {renderProps.isSortable && renderProps.sortDirection ? (\n <SortIcon direction={renderProps.sortDirection} />\n ) : null}\n <span>\n {typeof local.children === \"function\" ? local.children(renderProps) : local.children}\n </span>\n {renderProps.allowsResizing && props.id != null ? (\n <ColumnResizer column={{ key: props.id }} />\n ) : null}\n </span>\n {renderProps.isFocusVisible ? <CellFocusRing /> : null}\n </>\n )}\n </HeadlessTableColumn>\n );\n}\n\nexport function TableBody<T extends object>(props: TableBodyProps<T>): JSX.Element {\n const context = useContext(InternalTableContext);\n const [local, headlessProps] = splitProps(props, [\n \"class\",\n \"styles\",\n \"UNSAFE_className\",\n \"renderEmptyState\",\n \"hasMore\",\n \"isLoading\",\n \"onLoadMore\",\n ]);\n const className = () =>\n [local.UNSAFE_className, local.class, mergeStyles(local.styles)].filter(Boolean).join(\" \");\n const renderEmptyState = () => (\n <div class={emptyState}>{local.renderEmptyState?.() ?? \"No data available\"}</div>\n );\n const rootIsLoading = () => {\n const loadingState = context.loadingState;\n return (\n loadingState === \"loading\" ||\n loadingState === \"loadingMore\" ||\n loadingState === \"sorting\" ||\n loadingState === \"filtering\"\n );\n };\n\n return (\n <HeadlessTableBody\n {...headlessProps}\n hasMore={local.hasMore ?? !!context.onLoadMore}\n isLoading={local.isLoading ?? rootIsLoading()}\n onLoadMore={local.onLoadMore ?? context.onLoadMore}\n class={className()}\n renderEmptyState={renderEmptyState}\n >\n {props.children}\n </HeadlessTableBody>\n );\n}\n\nexport function TableFooter<T extends object>(props: TableFooterProps<T>): JSX.Element {\n const [local, headlessProps] = splitProps(props, [\"class\", \"styles\", \"UNSAFE_className\"]);\n const className = (_renderProps: TableFooterRenderProps): string =>\n [local.UNSAFE_className, local.class, mergeStyles(tableFooter, local.styles)]\n .filter(Boolean)\n .join(\" \");\n\n return (\n <HeadlessTableFooter {...headlessProps} class={className}>\n {props.children}\n </HeadlessTableFooter>\n );\n}\n\nexport function TableRow<T extends object>(props: TableRowProps<T>): JSX.Element {\n const context = useContext(InternalTableContext);\n const state = useContext(HeadlessTableStateContext);\n const [local, headlessProps] = splitProps(props, [\n \"children\",\n \"class\",\n \"styles\",\n \"UNSAFE_className\",\n \"UNSAFE_style\",\n ]);\n const rowKey = () => keyFromRowProps(headlessProps);\n // In highlight selection mode a contiguous run of selected rows draws a single\n // rounded border \"block\" (see injectHighlightSelectionBorderCSS). Mirror\n // upstream's isNextSelected/isPrevSelected helpers so the macro can suppress the\n // inner edges and corner radii wherever the adjacent row is also selected. The\n // reads below run inside useRenderProps' class memo, so toggling a neighbor's\n // selection re-runs this row's class even though its own renderProps are stable.\n const isKeySelected = (key: Key | null | undefined): boolean => {\n if (key == null || !state) return false;\n const selected = state.selectedKeys;\n return selected === \"all\" || selected.has(key);\n };\n const isNextSelected = (): boolean => {\n const k = rowKey();\n if (k == null || !state) return false;\n return isKeySelected(state.collection.getKeyAfter?.(k) ?? null);\n };\n const isPrevSelected = (): boolean => {\n const k = rowKey();\n if (k == null || !state) return false;\n return isKeySelected(state.collection.getKeyBefore?.(k) ?? null);\n };\n const isFirstItem = (): boolean => {\n const k = rowKey();\n if (k == null || !state) return false;\n return state.collection.getFirstKey?.() === k;\n };\n const className = (renderProps: TableRowRenderProps): string => {\n const highlight = context.selectionStyle === \"highlight\";\n if (highlight) injectHighlightSelectionBorderCSS();\n if (renderProps.isFocusVisible) injectRowFocusIndicatorCSS();\n return [\n renderProps.isFocusVisible ? ROW_FOCUS_INDICATOR_CLASS : undefined,\n highlight ? HIGHLIGHT_SELECTION_BORDER_CLASS : undefined,\n local.UNSAFE_className,\n local.class,\n mergeStyles(\n tableRow({\n ...renderProps,\n density: context.density,\n selectionStyle: context.selectionStyle,\n isFirstItem: isFirstItem(),\n isNextSelected: isNextSelected(),\n isPrevSelected: isPrevSelected(),\n }),\n local.styles,\n ),\n ]\n .filter(Boolean)\n .join(\" \");\n };\n\n return (\n <HeadlessTableRow {...headlessProps} class={className} style={local.UNSAFE_style}>\n {(renderProps: TableRowRenderProps) => (\n <>\n {context.showSelectionCheckboxes && rowKey() != null ? (\n <TableSelectionCheckbox\n rowKey={rowKey()!}\n isSelected={renderProps.isSelected}\n isDisabled={renderProps.isDisabled}\n />\n ) : null}\n {typeof local.children === \"function\"\n ? (local.children as (renderProps: TableRowRenderProps) => JSX.Element)(renderProps)\n : local.children}\n </>\n )}\n </HeadlessTableRow>\n );\n}\n\n// The bare expand/collapse affordance for a tree-grid row. This is the\n// *headless* Button so it picks up the row's `chevron` slot (the press handlers\n// that toggle expansion) from the surrounding TableRow's ButtonContext; the\n// styled solid-spectrum Button reads a different, styled ButtonContext and would\n// not. Mirrors @react-spectrum/s2 TableView's `ExpandableRowChevron`.\nfunction ExpandableRowChevron(props: { isExpanded?: boolean }): JSX.Element {\n return (\n <HeadlessButton\n slot=\"chevron\"\n class={(renderProps) =>\n expandButton({ isExpanded: !!props.isExpanded, isDisabled: renderProps.isDisabled })\n }\n >\n <Chevron size=\"S\" class={expandChevronIcon} aria-hidden=\"true\" />\n </HeadlessButton>\n );\n}\n\nexport function TableCell(props: TableCellProps): JSX.Element {\n const context = useContext(InternalTableContext);\n const [local, headlessProps] = splitProps(props, [\n \"children\",\n \"align\",\n \"showDivider\",\n \"class\",\n \"styles\",\n \"UNSAFE_className\",\n \"UNSAFE_style\",\n ]);\n const align = () => normalizeAlign(local.align);\n const className = (renderProps: TableCellRenderProps): string =>\n [\n local.UNSAFE_className,\n local.class,\n mergeStyles(\n tableCell({\n ...renderProps,\n align: align(),\n density: context.density,\n overflowMode: context.overflowMode,\n showDivider: !!local.showDivider,\n isTreeColumnWithNoChildren: renderProps.isTreeColumn && !renderProps.hasChildItems,\n selectionStyle: context.selectionStyle,\n }),\n local.styles,\n ),\n ]\n .filter(Boolean)\n .join(\" \");\n\n const renderChildren = (renderProps: TableCellRenderProps) =>\n typeof local.children === \"function\" ? local.children(renderProps) : local.children;\n const content = (renderProps: TableCellRenderProps) => (\n <div class={tableCellContent({ align: align(), overflowMode: context.overflowMode })}>\n {renderChildren(renderProps)}\n </div>\n );\n\n return (\n <HeadlessTableCell {...headlessProps} class={className} style={local.UNSAFE_style}>\n {(renderProps: TableCellRenderProps) => (\n <>\n <Show\n when={renderProps.isTreeColumn && renderProps.hasChildItems}\n fallback={content(renderProps)}\n >\n <div class={treeCellInner}>\n <ExpandableRowChevron isExpanded={renderProps.isExpanded} />\n {content(renderProps)}\n </div>\n </Show>\n {renderProps.isFocusVisible ? <CellFocusRing /> : null}\n </>\n )}\n </HeadlessTableCell>\n );\n}\n\nexport interface EditableCellProps extends EditableCellOwnProps, TableCellProps {}\n\ninterface EditableCellOwnProps {\n /** Renders the editing form fields shown in the popover (desktop) or dialog (mobile). */\n renderEditing: () => JSX.Element;\n /** Whether a submitted edit is currently saving. Dims the cell and shows a pending trigger. */\n isSaving?: boolean;\n /** Handler called when the editing form is submitted. The native submit is already prevented. */\n onSubmit?: (event: SubmitEvent) => void;\n /** Handler called when editing is cancelled (Cancel button, Escape, or interact-outside without save). */\n onCancel?: () => void;\n /** A native form `action` for the editing form. */\n action?: string;\n}\n\n/**\n * An EditableCell is a table cell whose contents can be edited inline. Pressing\n * the cell's `<ActionButton slot=\"edit\">` opens an editing surface — a popover on\n * desktop, a full dialog on touch devices — containing the fields returned by\n * `renderEditing`. Mirrors the React Spectrum S2 `EditableCell`.\n */\nexport function EditableCell(props: EditableCellProps): JSX.Element {\n const context = useContext(InternalTableContext);\n const [local, headlessProps] = splitProps(props, [\n \"children\",\n \"align\",\n \"showDivider\",\n \"class\",\n \"styles\",\n \"UNSAFE_className\",\n \"UNSAFE_style\",\n \"renderEditing\",\n \"isSaving\",\n \"onSubmit\",\n \"onCancel\",\n \"action\",\n \"ref\",\n ]);\n let cellEl: HTMLTableCellElement | null = null;\n const align = (): \"start\" | \"center\" | \"end\" => normalizeAlign(local.align);\n const className = (renderProps: TableCellRenderProps): string =>\n [\n local.UNSAFE_className,\n local.class,\n mergeStyles(\n editableCell({\n ...renderProps,\n align: align(),\n density: context.density,\n overflowMode: context.overflowMode,\n showDivider: !!local.showDivider,\n isSaving: !!local.isSaving,\n selectionStyle: context.selectionStyle,\n }),\n local.styles,\n ),\n ]\n .filter(Boolean)\n .join(\" \");\n\n const setCell = (el: HTMLTableCellElement): void => {\n cellEl = el;\n const ref = local.ref;\n if (typeof ref === \"function\") {\n ref(el);\n } else if (ref) {\n ref.current = el;\n }\n };\n\n // The headless cell re-invokes its children callback whenever its own render props change\n // (hover/press/focus). Recreating the stateful inner there would tear the edit button down\n // mid-press and reset the open state, so anchor a single inner instance to EditableCell's\n // owner and return it across every rerun. Cell render props are captured once and handed to\n // the (static, per upstream) children — they are not re-read reactively.\n const owner = getOwner();\n let inner: JSX.Element | undefined;\n let latestRenderProps: TableCellRenderProps | undefined;\n\n const renderInner = (renderProps: TableCellRenderProps): JSX.Element => {\n latestRenderProps = renderProps;\n inner ??= runWithOwner(owner, () => (\n <EditableCellInner\n align={align}\n overflowMode={() => context.overflowMode}\n density={() => context.density}\n getCell={() => cellEl}\n renderEditing={local.renderEditing}\n isSaving={() => local.isSaving}\n onSubmit={local.onSubmit}\n onCancel={local.onCancel}\n action={local.action}\n ariaLabel={(props as { \"aria-label\"?: string })[\"aria-label\"]}\n renderChildren={() => {\n if (typeof local.children !== \"function\") {\n return local.children;\n }\n // `latestRenderProps` is a plain capture, not a signal, so reading it does not make\n // the children reactive to the cell's hover/press churn.\n return latestRenderProps ? local.children(latestRenderProps) : null;\n }}\n />\n )) as JSX.Element;\n return inner;\n };\n\n return (\n <HeadlessTableCell\n {...headlessProps}\n ref={setCell}\n class={className}\n style={local.UNSAFE_style}\n >\n {(renderProps: TableCellRenderProps) => (\n <>\n {renderInner(renderProps)}\n {renderProps.isFocusVisible ? <CellFocusRing /> : null}\n </>\n )}\n </HeadlessTableCell>\n );\n}\n\ninterface EditableCellInnerProps {\n align: () => \"start\" | \"center\" | \"end\";\n overflowMode: () => TableOverflowMode;\n density: () => TableDensity;\n getCell: () => HTMLTableCellElement | null;\n renderEditing: () => JSX.Element;\n isSaving: () => boolean | undefined;\n onSubmit?: (event: SubmitEvent) => void;\n onCancel?: () => void;\n action?: string;\n ariaLabel?: string;\n /**\n * Invoked inside the edit-slot provider so the `slot=\"edit\"` ActionButton\n * resolves its `onPress` from `editSlots`. In Solid, `useContext` binds to the\n * owner active when the component executes, so the children must be created\n * here rather than pre-evaluated in `EditableCell`'s scope.\n */\n renderChildren: () => JSX.Element;\n}\n\nfunction EditableCellInner(props: EditableCellInnerProps): JSX.Element {\n const stringFormatter = createStringFormatter(s2IntlStrings, \"@react-spectrum/s2\");\n const [isOpen, setIsOpen] = createSignal(false);\n const [formEl, setFormEl] = createSignal<HTMLFormElement | null>(null);\n const [triggerWidth, setTriggerWidth] = createSignal(0);\n const [tableWidth, setTableWidth] = createSignal(0);\n const [verticalOffset, setVerticalOffset] = createSignal(0);\n\n // Touch devices (no fine pointer / hover) get a full dialog instead of a popover.\n const hasFinePointer = createMediaQuery(\"(hover: hover) and (pointer: fine)\");\n const isMobile = (): boolean => !hasFinePointer();\n\n const size = (): ActionButtonSize => {\n const density = props.density();\n if (density === \"compact\") {\n return \"S\";\n }\n if (density === \"spacious\") {\n return \"L\";\n }\n return \"M\";\n };\n\n // Position the popover relative to the cell: measure the trigger and table\n // widths, and offset upward by the row height so it overlays the cell. Mirrors\n // the S2 useLayoutEffect.\n createEffect(() => {\n if (!isOpen()) {\n return;\n }\n const cell = props.getCell();\n const boundingRect = cell?.parentElement?.getBoundingClientRect();\n setTriggerWidth(cell?.clientWidth ?? 0);\n setVerticalOffset((boundingRect?.top ?? 0) - (boundingRect?.bottom ?? 0));\n const grid = cell?.closest('[role=\"grid\"],[role=\"treegrid\"]');\n setTableWidth((grid as HTMLElement | null)?.clientWidth ?? 0);\n });\n\n // Auto-select the entire text range of the autofocused input when the editor\n // opens. Re-runs once the form element mounts. Mirrors the S2 useEffect.\n createEffect(() => {\n const form = formEl();\n if (!isOpen() || !form) {\n return;\n }\n queueMicrotask(() => {\n if (!isOpen()) {\n return;\n }\n const active = getOwnerDocument(form)?.activeElement;\n if (\n active &&\n form.contains(active) &&\n ((active instanceof HTMLInputElement && !nonTextInputTypes.has(active.type)) ||\n active instanceof HTMLTextAreaElement) &&\n typeof active.select === \"function\"\n ) {\n active.select();\n }\n });\n });\n\n const cancel = (): void => {\n setIsOpen(false);\n props.onCancel?.();\n };\n\n // Our headless Form doesn't prevent the native submit (unlike RAC's Form), so\n // stop the page reload here, then notify the consumer and close. Mirrors S2.\n const handleSubmit = (event: SubmitEvent): void => {\n event.preventDefault();\n props.onSubmit?.(event);\n setIsOpen(false);\n };\n\n // The mobile dialog disables keyboard dismissal, so translate Escape into a\n // cancel ourselves. Mirrors the S2 dialog-level Escape handler.\n const onFormKeyDown = (event: KeyboardEvent): void => {\n if (event.key === \"Escape\") {\n cancel();\n event.stopPropagation();\n event.preventDefault();\n }\n };\n\n const attachForm = (el: HTMLFormElement): void => {\n setFormEl(el);\n el.addEventListener(\"submit\", handleSubmit);\n if (isMobile()) {\n el.addEventListener(\"keydown\", onFormKeyDown);\n }\n };\n\n // Interact-outside never closes the popover directly; instead, if focus is\n // still within the form, submit (saving), which then closes. Mirrors S2.\n const shouldCloseOnInteractOutside = (): boolean => {\n const form = formEl();\n if (!form) {\n return false;\n }\n const active = getOwnerDocument(form)?.activeElement;\n if (!active || !form.contains(active)) {\n return false;\n }\n form.requestSubmit();\n return false;\n };\n\n const editSlots: SpectrumContextValue<ActionButtonProps> = {\n slots: {\n default: {},\n edit: {\n onPress: () => setIsOpen(true),\n excludeFromTabOrder: true,\n get isPending() {\n return props.isSaving();\n },\n get isQuiet() {\n return !props.isSaving();\n },\n get size() {\n return size();\n },\n get styles() {\n return editButtonStyles({ isForcedVisible: isOpen() || !!props.isSaving() });\n },\n },\n },\n };\n\n return (\n <ButtonContext.Provider value={null}>\n <ActionButtonContext.Provider value={editSlots}>\n <div class={tableCellContent({ align: props.align(), overflowMode: props.overflowMode() })}>\n {props.renderChildren()}\n </div>\n\n <ActionButtonContext.Provider value={null}>\n <Show when={!isMobile()}>\n <HeadlessPopover\n isOpen={isOpen()}\n onOpenChange={setIsOpen}\n aria-label={props.ariaLabel ?? stringFormatter().format(\"table.editCell\")}\n triggerRef={() => props.getCell()}\n placement=\"bottom start\"\n offset={verticalOffset()}\n shouldCloseOnInteractOutside={shouldCloseOnInteractOutside}\n class={(renderProps) => editPopover({ isExiting: renderProps.isExiting })}\n style={() => ({\n minWidth: `min(${triggerWidth()}px, ${tableWidth()}px)`,\n maxWidth: `${tableWidth()}px`,\n })}\n >\n <OverlayTriggerStateContext.Provider value={null}>\n <HeadlessForm\n ref={attachForm}\n action={props.action}\n class={editForm}\n style={() => ({ \"--input-width\": `calc(${triggerWidth()}px - 32px)` })}\n >\n {props.renderEditing()}\n <div class={editActions}>\n <ActionButton\n isQuiet\n onPress={cancel}\n aria-label={stringFormatter().format(\"table.cancel\")}\n >\n <Cross />\n </ActionButton>\n <ActionButton\n isQuiet\n type=\"submit\"\n aria-label={stringFormatter().format(\"table.save\")}\n >\n <Checkmark />\n </ActionButton>\n </div>\n </HeadlessForm>\n </OverlayTriggerStateContext.Provider>\n </HeadlessPopover>\n </Show>\n\n <Show when={isMobile()}>\n <DialogContainer onDismiss={() => formEl()?.requestSubmit()}>\n <Show when={isOpen()}>\n <CustomDialog\n isDismissible\n isKeyboardDismissDisabled\n aria-label={props.ariaLabel ?? stringFormatter().format(\"table.editCell\")}\n >\n <HeadlessForm ref={attachForm} action={props.action} class={editFormMobile}>\n {props.renderEditing()}\n <ButtonGroup align=\"end\" styles={editButtonGroupStyles}>\n <Button onPress={cancel} variant=\"secondary\" fillStyle=\"outline\">\n Cancel\n </Button>\n <Button type=\"submit\" variant=\"accent\">\n Save\n </Button>\n </ButtonGroup>\n </HeadlessForm>\n </CustomDialog>\n </Show>\n </DialogContainer>\n </Show>\n </ActionButtonContext.Provider>\n </ActionButtonContext.Provider>\n </ButtonContext.Provider>\n );\n}\n\nexport function TableSelectionCheckbox(props: {\n rowKey: Key;\n isSelected?: boolean;\n isDisabled?: boolean;\n}): JSX.Element {\n const context = useContext(InternalTableContext);\n\n return (\n <HeadlessTableCell\n id=\"__selection__\"\n class={(renderProps: TableCellRenderProps) =>\n selectionCell({ ...renderProps, density: context.density })\n }\n >\n {(renderProps: TableCellRenderProps) => (\n <>\n <span\n class={selectionCheckbox({ isDisabled: !!props.isDisabled })}\n data-rsp-slot=\"selection-indicator\"\n >\n <HeadlessTableSelectionCheckbox rowKey={props.rowKey} class={selectionCheckboxInput} />\n <span\n class={selectionCheckboxBox({\n isSelected: !!props.isSelected,\n isDisabled: !!props.isDisabled,\n })}\n >\n {props.isSelected ? (\n <Checkmark size=\"XS\" class={selectionCheckboxIcon} />\n ) : null}\n </span>\n </span>\n {renderProps.isFocusVisible ? <CellFocusRing /> : null}\n </>\n )}\n </HeadlessTableCell>\n );\n}\n\nexport function TableSelectAllCheckbox(): JSX.Element {\n const context = useContext(InternalTableContext);\n const state = useContext(HeadlessTableStateContext);\n const isSelected = () => state?.selectedKeys === \"all\";\n const isIndeterminate = () => {\n const keys = state?.selectedKeys;\n if (!state || keys === \"all\" || keys == null || keys.size === 0) {\n return false;\n }\n\n return keys.size < state.collection.size;\n };\n const isDisabled = () =>\n !state || state.selectionMode !== \"multiple\" || state.collection.size === 0;\n const className = (renderProps: TableColumnRenderProps): string =>\n mergeStyles(\n tableColumn({\n ...renderProps,\n align: \"center\",\n density: context.density,\n }),\n selectionColumn,\n );\n\n // Mirrors S2's `TableColumnHeader`: in single-selection mode there is no\n // select-all checkbox — the header column instead exposes a `VisuallyHidden`\n // \"Select\" label (S2 `VisuallyHiddenSelectAllLabel`). Only `multiple` mode\n // renders the real select-all checkbox.\n const isSingle = () => state?.selectionMode === \"single\";\n\n return (\n <HeadlessTableColumn id=\"__selection__\" class={className}>\n {isSingle() ? (\n <HeadlessVisuallyHidden>Select</HeadlessVisuallyHidden>\n ) : (\n <span class={selectionCheckbox({})} data-rsp-slot=\"select-all-indicator\">\n <HeadlessTableSelectAllCheckbox class={selectionCheckboxInput} />\n <span\n class={selectionCheckboxBox({\n isSelected: isSelected() || isIndeterminate(),\n isDisabled: isDisabled(),\n })}\n >\n {isSelected() ? (\n <Checkmark size=\"XS\" class={selectionCheckboxIcon} />\n ) : isIndeterminate() ? (\n <Dash size=\"XS\" class={selectionCheckboxIcon} />\n ) : null}\n </span>\n </span>\n )}\n </HeadlessTableColumn>\n );\n}\n\nexport interface ColumnResizerProps extends Omit<HeadlessColumnResizerProps, \"class\" | \"style\"> {\n /** Additional CSS class name. Use only as a last resort. */\n class?: string;\n /** Spectrum-defined generated classes. */\n styles?: StyleString;\n /** Additional CSS class name. Use only as a last resort. */\n UNSAFE_className?: UnsafeClassName | string;\n}\n\nexport function ColumnResizer(props: ColumnResizerProps): JSX.Element {\n const [local, headlessProps] = splitProps(props, [\"class\", \"styles\", \"UNSAFE_className\"]);\n const className = (renderProps: ColumnResizerRenderProps): string =>\n [local.UNSAFE_className, local.class, mergeStyles(resizer(renderProps), local.styles)]\n .filter(Boolean)\n .join(\" \");\n\n return <HeadlessColumnResizer {...headlessProps} class={className} />;\n}\n\nexport interface ResizableTableContainerProps extends Omit<\n HeadlessResizableTableContainerProps,\n \"class\" | \"style\"\n> {\n /** Additional CSS class name. Use only as a last resort. */\n class?: string;\n /** Spectrum-defined generated classes. */\n styles?: StyleString;\n /** Additional CSS class name. Use only as a last resort. */\n UNSAFE_className?: UnsafeClassName | string;\n /** Additional inline styles. Use only as a last resort. */\n UNSAFE_style?: JSX.CSSProperties;\n}\n\nexport function ResizableTableContainer(props: ResizableTableContainerProps): JSX.Element {\n const [local, headlessProps] = splitProps(props, [\n \"class\",\n \"styles\",\n \"UNSAFE_className\",\n \"UNSAFE_style\",\n ]);\n const className = () =>\n [local.UNSAFE_className, local.class, mergeStyles(resizableTableContainer, local.styles)]\n .filter(Boolean)\n .join(\" \");\n\n return (\n <HeadlessResizableTableContainer\n {...headlessProps}\n class={className()}\n style={local.UNSAFE_style}\n />\n );\n}\n\nfunction SortIcon(props: { direction: \"ascending\" | \"descending\" }): JSX.Element {\n return (\n <Arrow\n size=\"M\"\n class={tableSortIcon}\n aria-hidden=\"true\"\n style={{\n transform: props.direction === \"ascending\" ? \"rotate(-90deg)\" : \"rotate(90deg)\",\n }}\n />\n );\n}\n\nTable.Header = TableHeader;\nTable.Column = TableColumn;\nTable.Body = TableBody;\nTable.Footer = TableFooter;\nTable.Row = TableRow;\nTable.Cell = TableCell;\nTable.EditableCell = EditableCell;\nTable.SelectionCheckbox = TableSelectionCheckbox;\nTable.SelectAllCheckbox = TableSelectAllCheckbox;\nTable.ColumnResizer = ColumnResizer;\n\nexport const TableView = Table;\nexport const Column = TableColumn;\nexport const Footer = TableFooter;\nexport const Row = TableRow;\nexport const Cell = TableCell;\n\nexport type { ColumnDefinition, Key, SortDescriptor };\n"],"mappings":"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"}
1
+ {"version":3,"file":"table.js","names":["JSX","createUIIcon","ArrowProps","SvgSVGAttributes","SVGSVGElement","size","Arrow_MSvg","props","Element","class","className","width","_width","height","_height","rest","_el$","_$getNextElement","_tmpl$","_$spread","_$mergeProps","_$runHydrationEvents","Arrow_XXLSvg","_el$2","_tmpl$2","Arrow_M","Arrow_XXL","Arrow","_$createComponent","ArrowIcon"],"sources":["../../src/icon/ui-icons/Arrow.tsx","../../src/table/index.tsx"],"sourcesContent":["/*\n * Auto-generated from the shipped @react-spectrum/s2 dist assets (SVGO-\n * optimized — pixel parity requires the shipped path data, not the raw\n * vendored .svg sources). Variants absent from the dist (Arrow, Gripper)\n * fall back to the vendored sources.\n * Do not edit by hand.\n */\n\nimport { type JSX } from \"solid-js\";\nimport { createUIIcon } from \"../spectrum-icon\";\n\nexport type ArrowProps = JSX.SvgSVGAttributes<SVGSVGElement> & {\n size?: \"M\" | \"XXL\";\n};\n\nfunction Arrow_MSvg(props: JSX.SvgSVGAttributes<SVGSVGElement>): JSX.Element {\n const { class: className, width: _width, height: _height, ...rest } = props;\n return (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"10\"\n height=\"10\"\n viewBox=\"0 0 10 10\"\n {...rest}\n class={className}\n >\n <path\n d=\"m9.94946,4.99658c-.00024-.052-.02026-.10132-.02954-.15259-.01074-.05835-.0127-.11768-.03516-.17322-.00122-.00281-.00146-.00574-.00269-.00867-.03198-.07642-.08447-.13965-.13574-.20312-.01831-.02295-.02612-.0509-.04712-.07227l-.00488-.005c-.00024-.00024-.00049-.00049-.00098-.00085l-3.06934-3.11914c-.33984-.3457-.89355-.34863-1.2373-.01074-.34473.33887-.34961.89355-.01074,1.2373l1.6106,1.63672H.9248c-.4834,0-.875.3916-.875.875s.3916.875.875.875h6.06177l-1.6106,1.63672c-.33887.34375-.33398.89844.01074,1.2373.16992.16699.3916.25098.61328.25098.22656,0,.45215-.08691.62402-.26172l3.06934-3.11914c.00049-.00037.00073-.00061.00098-.00085l.00488-.005c.021-.02136.02881-.04932.04712-.07227.05127-.06348.10376-.12671.13574-.20312.00122-.00293.00146-.00586.00269-.00867.02246-.05554.02441-.11487.03516-.17322.00928-.05127.0293-.10059.02954-.15259,0-.00122.00073-.0022.00073-.00342s-.00073-.0022-.00073-.00342Z\"\n fill=\"var(--iconPrimary, #222)\"\n />\n </svg>\n );\n}\n\nfunction Arrow_XXLSvg(props: JSX.SvgSVGAttributes<SVGSVGElement>): JSX.Element {\n const { class: className, width: _width, height: _height, ...rest } = props;\n return (\n <svg\n xmlns=\"http://www.w3.org/2000/svg\"\n width=\"16\"\n height=\"16\"\n viewBox=\"0 0 16 16\"\n {...rest}\n class={className}\n >\n <path\n d=\"m14.78552,8.3783c.10016-.24194.10016-.51477,0-.75671-.05017-.12085-.12256-.2301-.21375-.32129l-4.63037-4.63037c-.38574-.38672-1.0127-.38672-1.39844,0-.38623.38574-.38623,1.0127,0,1.39844l2.94238,2.94238H1.87012c-.54639,0-.98877.44336-.98877.98926s.44238.98926.98877.98926h9.61523l-2.94238,2.94238c-.38623.38574-.38623,1.0127,0,1.39844.19287.19336.44629.29004.69922.29004s.50635-.09668.69922-.29004l4.63037-4.63037c.09125-.09119.16357-.20044.21375-.32141Z\"\n fill=\"var(--iconPrimary, #222)\"\n />\n </svg>\n );\n}\n\nconst Arrow_M = createUIIcon(Arrow_MSvg);\nconst Arrow_XXL = createUIIcon(Arrow_XXLSvg);\n\nexport default function Arrow(props: ArrowProps): JSX.Element {\n const { size = \"M\", class: className, width: _width, height: _height, ...rest } = props;\n switch (size) {\n case \"M\":\n return <Arrow_M {...rest} class={className} />;\n case \"XXL\":\n return <Arrow_XXL {...rest} class={className} />;\n default:\n return <Arrow_M {...rest} class={className} />;\n }\n}\n\nexport const ArrowIcon = Arrow;\n","import {\n Show,\n createContext,\n createEffect,\n createMemo,\n createSignal,\n getOwner,\n mergeProps,\n runWithOwner,\n splitProps,\n useContext,\n type JSX,\n} from \"solid-js\";\nimport {\n Button as HeadlessButton,\n ColumnResizer as HeadlessColumnResizer,\n ResizableTableContainer as HeadlessResizableTableContainer,\n Table as HeadlessTable,\n TableBody as HeadlessTableBody,\n TableCell as HeadlessTableCell,\n TableColumn as HeadlessTableColumn,\n TableFooter as HeadlessTableFooter,\n TableHeader as HeadlessTableHeader,\n TableRow as HeadlessTableRow,\n TableSelectAllCheckbox as HeadlessTableSelectAllCheckbox,\n TableColumnResizeStateContext as HeadlessTableColumnResizeStateContext,\n TableSelectionCheckbox as HeadlessTableSelectionCheckbox,\n TableStateContext as HeadlessTableStateContext,\n VisuallyHidden as HeadlessVisuallyHidden,\n Form as HeadlessForm,\n Popover as HeadlessPopover,\n OverlayTriggerStateContext,\n type ColumnResizerProps as HeadlessColumnResizerProps,\n type ColumnResizerRenderProps,\n type ResizableTableContainerProps as HeadlessResizableTableContainerProps,\n type TableBodyProps as HeadlessTableBodyProps,\n type TableCellProps as HeadlessTableCellProps,\n type TableCellRenderProps,\n type TableColumnProps as HeadlessTableColumnProps,\n type TableColumnRenderProps,\n type TableFooterProps as HeadlessTableFooterProps,\n type TableFooterRenderProps,\n type TableHeaderProps as HeadlessTableHeaderProps,\n type TableProps as HeadlessTableProps,\n type TableRenderProps,\n type TableRowProps as HeadlessTableRowProps,\n type TableRowRenderProps,\n} from \"@proyecto-viviana/solidaria-components\";\nimport type {\n ColumnDefinition,\n Key,\n LoadingState,\n SortDescriptor,\n} from \"@proyecto-viviana/solid-stately\";\nimport Arrow from \"../icon/ui-icons/Arrow\";\nimport Checkmark from \"../icon/ui-icons/Checkmark\";\nimport Chevron from \"../icon/ui-icons/Chevron\";\nimport Dash from \"../icon/ui-icons/Dash\";\nimport { useProviderProps } from \"../provider\";\nimport type { StyleString } from \"../style\";\nimport {\n baseColor,\n colorMix,\n focusRing,\n setColorScheme,\n style,\n} from \"../style\" with { type: \"macro\" };\nimport { mergeStyles } from \"../style/runtime\";\nimport type { UnsafeClassName } from \"../s2-internal/style-utils\";\nimport {\n controlFont,\n getAllowedOverrides,\n} from \"../s2-internal/style-utils\" with { type: \"macro\" };\nimport { createMediaQuery } from \"../utils/createMediaQuery\";\nimport { createStringFormatter, getOwnerDocument } from \"@proyecto-viviana/solidaria\";\nimport {\n ActionButton,\n ActionButtonContext,\n Button,\n ButtonContext,\n type ActionButtonProps,\n type ActionButtonSize,\n} from \"../button\";\nimport { getSlottedContextProps, type SpectrumContextValue } from \"../button/spectrum-context\";\nimport { ButtonGroup } from \"../buttongroup\";\nimport { CustomDialog, DialogContainer } from \"../dialog\";\nimport Cross from \"../icon/ui-icons/Cross\";\nimport { s2IntlStrings } from \"../intl\";\n\nexport type TableSize = \"sm\" | \"md\" | \"lg\";\nexport type TableVariant = \"default\" | \"striped\" | \"bordered\";\nexport type TableDensity = \"compact\" | \"regular\" | \"spacious\";\nexport type TableOverflowMode = \"truncate\" | \"wrap\";\nexport type TableSelectionStyle = \"checkbox\" | \"highlight\";\nexport type TableAlign = \"start\" | \"center\" | \"end\" | \"left\" | \"right\";\n\ninterface TableContextValue {\n density: TableDensity;\n isQuiet: boolean;\n overflowMode: TableOverflowMode;\n showSelectionCheckboxes: boolean;\n selectionStyle: TableSelectionStyle;\n loadingState?: LoadingState;\n onLoadMore?: () => void | Promise<void>;\n}\n\nconst InternalTableContext = createContext<TableContextValue>({\n density: \"regular\",\n isQuiet: false,\n overflowMode: \"truncate\",\n showSelectionCheckboxes: false,\n selectionStyle: \"checkbox\",\n});\n\n// Mirrors React S2's public `TableContext`: slotted props injected by an ancestor\n// provider. Distinct from `InternalTableContext` above (which shares row/density\n// state between the Table sub-components). No-op by default.\nexport const TableContext = createContext<SpectrumContextValue<TableProps<any>>>(null);\n\nexport interface TableProps<T extends object> extends Omit<\n HeadlessTableProps<T>,\n | \"class\"\n | \"style\"\n | \"children\"\n | \"selectionBehavior\"\n | \"onSelectionChange\"\n | \"showSelectionCheckboxes\"\n> {\n /** Children components (TableHeader, TableBody). */\n children?: JSX.Element | (() => JSX.Element);\n /** Density of rows and headers. */\n density?: TableDensity;\n /** Whether the TableView should draw without the default container chrome. */\n isQuiet?: boolean;\n /** Whether labels and cell content truncate or wrap. */\n overflowMode?: TableOverflowMode;\n /** Provides an action bar when rows are selected. */\n renderActionBar?: (selectedKeys: \"all\" | Set<Key>) => JSX.Element;\n /** Spectrum-defined generated classes. */\n styles?: StyleString;\n /** Additional CSS class name. Use only as a last resort. */\n UNSAFE_className?: UnsafeClassName | string;\n /** Additional inline styles. Use only as a last resort. */\n UNSAFE_style?: JSX.CSSProperties;\n /** Backward-compatible class alias. Prefer UNSAFE_className for S2 parity. */\n class?: string;\n /** Backward-compatible inline style alias. Prefer styles or UNSAFE_style. */\n style?: JSX.CSSProperties;\n /** Title for the table. Prefer aria-label/aria-labelledby for new code. */\n title?: JSX.Element;\n /** Description for the table. */\n description?: JSX.Element;\n /** Legacy size alias retained for compatibility. */\n size?: TableSize;\n /** Legacy variant alias retained for compatibility. */\n variant?: TableVariant;\n /** Overrides the default S2 selection checkbox behavior. */\n showSelectionCheckboxes?: boolean;\n /**\n * How selection is displayed: `checkbox` shows selection checkboxes (toggle\n * behavior), `highlight` selects whole rows with no checkboxes (replace\n * behavior).\n * @default 'checkbox'\n */\n selectionStyle?: TableSelectionStyle;\n /** S2 row action alias. */\n onAction?: (key: Key) => void;\n /** S2 asynchronous loading state. */\n loadingState?: LoadingState;\n /** S2 asynchronous load-more callback. */\n onLoadMore?: () => void | Promise<void>;\n /** Called when a 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 a column resize ends. */\n onResizeEnd?: (widths: Map<Key, number>) => void;\n /** Selection behavior forwarded to the headless table. S2 defaults to toggle. */\n selectionBehavior?: HeadlessTableProps<T>[\"selectionBehavior\"];\n /** Selection callback mirrored for the optional action bar. */\n onSelectionChange?: HeadlessTableProps<T>[\"onSelectionChange\"];\n}\n\nexport interface TableHeaderProps extends Omit<HeadlessTableHeaderProps, \"class\" | \"style\"> {\n /** Additional CSS class name. Use only as a last resort. */\n class?: string;\n /** Spectrum-defined generated classes. */\n styles?: StyleString;\n /** Additional CSS class name. Use only as a last resort. */\n UNSAFE_className?: UnsafeClassName | string;\n}\n\nexport interface TableColumnProps extends Omit<HeadlessTableColumnProps, \"class\" | \"style\"> {\n /** Text alignment for the column. */\n align?: TableAlign;\n /** Whether to draw an end divider. */\n showDivider?: boolean;\n /** Additional CSS class name. Use only as a last resort. */\n class?: string;\n /** Spectrum-defined generated classes. */\n styles?: StyleString;\n /** Additional CSS class name. Use only as a last resort. */\n UNSAFE_className?: UnsafeClassName | string;\n /** Additional inline styles. Use only as a last resort. */\n UNSAFE_style?: JSX.CSSProperties;\n}\n\nexport interface TableBodyProps<T> extends Omit<HeadlessTableBodyProps<T>, \"class\" | \"style\"> {\n /** Additional CSS class name. Use only as a last resort. */\n class?: string;\n /** Spectrum-defined generated classes. */\n styles?: StyleString;\n /** Additional CSS class name. Use only as a last resort. */\n UNSAFE_className?: UnsafeClassName | string;\n}\n\nexport interface TableFooterProps<T> extends Omit<HeadlessTableFooterProps<T>, \"class\" | \"style\"> {\n /** Additional CSS class name. Use only as a last resort. */\n class?: string;\n /** Spectrum-defined generated classes. */\n styles?: StyleString;\n /** Additional CSS class name. Use only as a last resort. */\n UNSAFE_className?: UnsafeClassName | string;\n}\n\nexport interface TableRowProps<T> extends Omit<HeadlessTableRowProps<T>, \"class\" | \"style\"> {\n /** Additional CSS class name. Use only as a last resort. */\n class?: string;\n /** Spectrum-defined generated classes. */\n styles?: StyleString;\n /** Additional CSS class name. Use only as a last resort. */\n UNSAFE_className?: UnsafeClassName | string;\n /** Additional inline styles. Use only as a last resort. */\n UNSAFE_style?: JSX.CSSProperties;\n}\n\nexport interface TableCellProps extends Omit<HeadlessTableCellProps, \"class\" | \"style\"> {\n /** Text alignment for the cell. */\n align?: TableAlign;\n /** Whether to draw an end divider. */\n showDivider?: boolean;\n /** Additional CSS class name. Use only as a last resort. */\n class?: string;\n /** Spectrum-defined generated classes. */\n styles?: StyleString;\n /** Additional CSS class name. Use only as a last resort. */\n UNSAFE_className?: UnsafeClassName | string;\n /** Additional inline styles. Use only as a last resort. */\n UNSAFE_style?: JSX.CSSProperties;\n}\n\nconst tableWrapper = style(\n {\n minHeight: 0,\n minWidth: 0,\n display: \"flex\",\n flexDirection: \"column\",\n isolation: \"isolate\",\n position: \"relative\",\n overflow: \"clip\",\n },\n getAllowedOverrides({ height: true }),\n);\n\nconst tableShell = style<{ isQuiet?: boolean }>({\n minHeight: 0,\n minWidth: 0,\n width: \"full\",\n flexGrow: 1,\n boxSizing: \"border-box\",\n overflow: \"auto\",\n backgroundColor: {\n default: \"gray-25\",\n isQuiet: \"transparent\",\n },\n borderColor: \"gray-300\",\n borderWidth: {\n default: 1,\n isQuiet: 0,\n },\n borderStyle: \"solid\",\n borderRadius: {\n default: \"[6px]\",\n isQuiet: \"none\",\n },\n scrollPaddingTop: 32,\n});\n\nconst table = style<TableRenderProps & { isQuiet?: boolean; hasActionBar?: boolean }>({\n ...focusRing(),\n outlineOffset: -1,\n outlineStyle: \"none\",\n userSelect: \"none\",\n minWidth: \"full\",\n width: \"full\",\n fontSize: controlFont(),\n fontFamily: \"code\",\n fontWeight: \"normal\",\n borderWidth: 0,\n borderCollapse: \"separate\",\n borderSpacing: 0,\n tableLayout: \"fixed\",\n disableTapHighlight: true,\n // Per-level indentation unit for tree-grid columns; read by the cell's\n // paddingStart calc. Mirrors @react-spectrum/s2 TableView's `--indent`.\n \"--indent\": {\n type: \"width\",\n value: 16,\n },\n});\n\nconst legacyLabel = style({\n font: controlFont(),\n fontWeight: \"medium\",\n color: baseColor(\"neutral\"),\n marginBottom: 4,\n});\n\nconst legacyDescription = style({\n font: \"body-sm\",\n color: baseColor(\"neutral-subdued\"),\n marginTop: 4,\n});\n\nconst tableHeader = style({\n backgroundColor: \"gray-75\",\n});\n\nconst headerHeight = {\n compact: 32,\n regular: 32,\n spacious: 40,\n} as const;\n\nconst rowHeight = {\n compact: 32,\n regular: 40,\n spacious: 48,\n} as const;\n\nconst tableColumn = style<\n TableColumnRenderProps & {\n align?: \"start\" | \"center\" | \"end\";\n density?: TableDensity;\n showDivider?: boolean;\n }\n>({\n outlineStyle: \"none\",\n position: \"relative\",\n height: {\n density: headerHeight,\n },\n minHeight: {\n density: headerHeight,\n },\n paddingX: 16,\n paddingY: 0,\n color: baseColor(\"neutral\"),\n fontSize: controlFont(),\n fontFamily: \"code\",\n fontWeight: \"bold\",\n textAlign: {\n align: {\n start: \"start\",\n center: \"center\",\n end: \"end\",\n },\n },\n verticalAlign: \"middle\",\n backgroundColor: \"gray-75\",\n borderWidth: 0,\n borderBottomWidth: 1,\n borderStyle: \"solid\",\n borderColor: \"gray-300\",\n borderEndWidth: {\n showDivider: 1,\n },\n cursor: {\n isSortable: \"pointer\",\n },\n whiteSpace: \"nowrap\",\n});\n\nconst tableColumnContent = style<{\n align?: \"start\" | \"center\" | \"end\";\n overflowMode?: TableOverflowMode;\n}>({\n display: \"flex\",\n alignItems: \"center\",\n gap: \"text-to-visual\",\n justifyContent: {\n align: {\n start: \"start\",\n center: \"center\",\n end: \"end\",\n },\n },\n minWidth: 0,\n width: \"full\",\n overflow: \"hidden\",\n textOverflow: {\n overflowMode: {\n truncate: \"ellipsis\",\n },\n },\n whiteSpace: {\n overflowMode: {\n truncate: \"nowrap\",\n wrap: \"normal\",\n },\n },\n});\n\nconst tableSortIcon = style({\n flexShrink: 0,\n size: 10,\n \"--iconPrimary\": {\n type: \"fill\",\n value: \"currentColor\",\n },\n});\n\nconst rowHoverBackground = colorMix(\"gray-25\", \"gray-900\", 5);\nconst rowPressedBackground = colorMix(\"gray-25\", \"gray-900\", 8);\nconst rowSelectedBackground = colorMix(\"gray-25\", \"gray-900\", 7);\n\nconst rowHighlightBackground = colorMix(\"gray-25\", \"blue-900\", 10);\nconst rowHighlightActiveBackground = colorMix(\"gray-25\", \"blue-900\", 15);\n\n// The S2 highlight-selection \"block\" border — the blue outline around a run of\n// selected rows, rounded only on the group's outer corners — is a row-spanning\n// overlay. The S2 style() macro can't express a pseudo-element, so (exactly like\n// upstream's `highlightSelectionBorder` raw css) we inject a `::before` overlay\n// that reads the per-row custom properties the macro sets on the row. Upstream\n// also pins it to `z-index: 3` to paint above the virtualizer's sticky cells; our\n// real-DOM <table> has no sticky cells, so that part is dropped.\nconst HIGHLIGHT_SELECTION_BORDER_CLASS = \"solid-spectrum-table-highlight-selection\";\nlet highlightSelectionBorderInjected = false;\nfunction injectHighlightSelectionBorderCSS(): void {\n if (highlightSelectionBorderInjected || typeof document === \"undefined\") return;\n const style = document.createElement(\"style\");\n style.id = \"solid-spectrum-table-highlight-selection-style\";\n style.textContent = `.${HIGHLIGHT_SELECTION_BORDER_CLASS}::before {\n content: \"\";\n position: absolute;\n inset: 0;\n box-sizing: border-box;\n pointer-events: none;\n border-style: solid;\n border-color: var(--borderColor);\n border-top-width: var(--borderTopWidth);\n border-bottom-width: var(--borderBottomWidth);\n border-inline-start-width: var(--borderStartEndWidth);\n border-inline-end-width: var(--borderStartEndWidth);\n border-start-start-radius: var(--borderTopRadius);\n border-start-end-radius: var(--borderTopRadius);\n border-end-start-radius: var(--borderBottomRadius);\n border-end-end-radius: var(--borderBottomRadius);\n}`;\n document.head.appendChild(style);\n highlightSelectionBorderInjected = true;\n}\n\n// Upstream S2 draws the row-level focus/drop indicator as raw `&::after`\n// (`focusIndicator`) so it can overlap row boundaries asymmetrically via\n// --topFocusRing/--bottomPosition. Keep the same overlay model rather than a\n// direct outline, which can't express the non-first-row -1px top extension.\nconst ROW_FOCUS_INDICATOR_CLASS = \"solid-spectrum-table-row-focus-indicator\";\nlet rowFocusIndicatorInjected = false;\nfunction injectRowFocusIndicatorCSS(): void {\n if (rowFocusIndicatorInjected || typeof document === \"undefined\") return;\n const style = document.createElement(\"style\");\n style.id = \"solid-spectrum-table-row-focus-indicator-style\";\n style.textContent = `.${ROW_FOCUS_INDICATOR_CLASS}::after {\n content: \"\";\n top: var(--topFocusRing);\n bottom: var(--bottomPosition);\n z-index: 3;\n inset-inline-start: 0;\n inset-inline-end: 0;\n border-radius: 5px;\n position: absolute;\n outline-style: solid;\n outline-color: var(--focusRingColor);\n outline-width: 2px;\n outline-offset: -2px;\n pointer-events: none;\n}`;\n document.head.appendChild(style);\n rowFocusIndicatorInjected = true;\n}\n\nconst tableRow = style<\n TableRowRenderProps & {\n density?: TableDensity;\n selectionStyle?: TableSelectionStyle;\n isFirstItem?: boolean;\n isNextSelected?: boolean;\n isPrevSelected?: boolean;\n }\n>({\n outlineStyle: \"none\",\n position: \"relative\",\n isolation: \"isolate\",\n forcedColorAdjust: \"none\",\n minHeight: {\n density: rowHeight,\n },\n backgroundColor: {\n default: \"transparent\",\n isHovered: rowHoverBackground,\n isPressed: rowPressedBackground,\n isSelected: {\n default: rowSelectedBackground,\n selectionStyle: {\n highlight: {\n default: rowHighlightBackground,\n isHovered: rowHighlightActiveBackground,\n isPressed: rowHighlightActiveBackground,\n },\n },\n },\n forcedColors: {\n selectionStyle: {\n highlight: {\n isSelected: \"Highlight\",\n },\n },\n },\n },\n cursor: {\n isDisabled: \"default\",\n },\n color: {\n default: baseColor(\"neutral-subdued\"),\n isSelected: baseColor(\"neutral\"),\n isDisabled: \"disabled\",\n forcedColors: {\n selectionStyle: {\n highlight: {\n isSelected: \"HighlightText\",\n },\n },\n },\n },\n // Highlight-selection block border + grouped rounded corners. These custom\n // properties feed the `::before` overlay (see injectHighlightSelectionBorderCSS)\n // and only take visible effect in highlight selection — the overlay class is\n // appended to the row only then. Mirrors @react-spectrum/s2 TableView's `row`.\n \"--borderColorGray\": {\n type: \"borderColor\",\n value: {\n default: \"gray-300\",\n forcedColors: {\n default: \"ButtonBorder\",\n isSelected: \"Highlight\",\n },\n },\n },\n \"--borderColorBlue\": {\n type: \"borderColor\",\n value: {\n default: \"blue-900\",\n forcedColors: \"Highlight\",\n },\n },\n \"--borderColor\": {\n type: \"borderColor\",\n value: {\n default: \"transparent\",\n isSelected: \"--borderColorBlue\",\n },\n },\n \"--focusRingColor\": {\n type: \"outlineColor\",\n value: {\n default: \"focus-ring\",\n forcedColors: \"Highlight\",\n },\n },\n \"--topFocusRing\": {\n type: \"top\",\n value: {\n default: \"[-1px]\",\n isFirstItem: 0,\n },\n },\n \"--bottomPosition\": {\n type: \"bottom\",\n value: {\n selectionStyle: {\n checkbox: {\n default: \"[-1px]\",\n isNextSelected: 0,\n },\n highlight: \"[-1px]\",\n },\n },\n },\n \"--borderTopRadius\": {\n type: \"borderTopStartRadius\",\n value: {\n default: \"none\",\n selectionStyle: {\n highlight: {\n default: \"none\",\n isSelected: \"[5px]\",\n isPrevSelected: \"none\",\n },\n },\n },\n },\n \"--borderBottomRadius\": {\n type: \"borderBottomStartRadius\",\n value: {\n default: \"none\",\n selectionStyle: {\n highlight: {\n default: \"none\",\n isSelected: \"[5px]\",\n isNextSelected: \"none\",\n },\n },\n },\n },\n // Round the row's own background to the selection block's outer corners; the\n // visible blue border is drawn by the ::before overlay reading the same props.\n borderBottomRadius: \"[var(--borderBottomRadius)]\",\n borderTopRadius: \"[var(--borderTopRadius)]\",\n \"--borderTopWidth\": {\n type: \"width\",\n value: {\n default: {\n selectionStyle: {\n checkbox: 0,\n highlight: 1,\n },\n },\n isPrevSelected: 0,\n },\n },\n \"--borderBottomWidth\": {\n type: \"width\",\n value: {\n default: {\n selectionStyle: {\n checkbox: 0,\n highlight: 1,\n },\n },\n isNextSelected: 0,\n },\n },\n \"--borderStartEndWidth\": {\n type: \"width\",\n value: {\n default: {\n selectionStyle: {\n checkbox: 0,\n highlight: 1,\n },\n },\n },\n },\n // Highlight mode draws the gray row divider as the row's box-shadow. A real\n // `<tr>` border can't be used here: under `border-collapse: separate` CSS\n // ignores borders set on `<tr>`, so upstream's row `borderBottom` has no\n // real-DOM equivalent — the box-shadow is its faithful realization (checkbox\n // mode keeps the divider on the cell's bottom border instead). The divider is\n // suppressed under selection: when the row itself is selected, or the row\n // below it is, the rounded blue highlight-block border paints that edge, so\n // the gray line would otherwise double up. Mirrors upstream's divider\n // `borderColor` going `transparent` on both `isSelected` and `isNextSelected`.\n boxShadow: {\n selectionStyle: {\n highlight: {\n default: \"[inset 0 -1px 0px var(--borderColorGray)]\",\n isSelected: \"[inset 0 0 0 var(--borderColorGray)]\",\n isNextSelected: \"[inset 0 0 0 var(--borderColorGray)]\",\n },\n },\n },\n});\n\nconst tableCell = style<\n TableCellRenderProps & {\n align?: \"start\" | \"center\" | \"end\";\n density?: TableDensity;\n overflowMode?: TableOverflowMode;\n showDivider?: boolean;\n isTreeColumnWithNoChildren?: boolean;\n selectionStyle?: TableSelectionStyle;\n }\n>({\n outlineStyle: \"none\",\n position: \"relative\",\n color: \"inherit\",\n paddingX: 16,\n paddingY: 0,\n // Tree-grid indentation. A leaf cell in the tree column reserves the chevron's\n // footprint (36) so its content lines up with sibling rows that do show a\n // chevron (16); each nesting level then adds `--indent`. Mirrors\n // @react-spectrum/s2 TableView's `treeColumnStyles`.\n \"--treeColumnPadding\": {\n type: \"width\",\n value: {\n default: 16,\n isTreeColumnWithNoChildren: 36,\n },\n },\n paddingStart: {\n default: 16,\n isTreeColumn:\n \"calc(var(--treeColumnPadding) + (var(--table-row-level, 1) - 1) * var(--indent))\",\n },\n minHeight: {\n density: rowHeight,\n },\n height: {\n density: rowHeight,\n },\n textAlign: {\n align: {\n start: \"start\",\n center: \"center\",\n end: \"end\",\n },\n },\n verticalAlign: \"middle\",\n borderWidth: 0,\n // Checkbox mode draws the gray row divider here; highlight mode draws it as the\n // row's box-shadow instead, so the cell border is suppressed to avoid doubling.\n borderBottomWidth: {\n default: 1,\n selectionStyle: {\n highlight: 0,\n },\n },\n borderStyle: \"solid\",\n borderColor: \"gray-300\",\n borderEndWidth: {\n showDivider: 1,\n },\n});\n\nconst tableCellFocusRing = style({\n outlineStyle: \"solid\",\n outlineOffset: -2,\n outlineWidth: 2,\n outlineColor: {\n default: \"focus-ring\",\n forcedColors: \"Highlight\",\n },\n borderRadius: \"[5px]\",\n zIndex: 2,\n position: \"absolute\",\n top: \"var(--topFocusRing, 0)\",\n bottom: 0,\n insetStart: 0,\n insetEnd: 0,\n pointerEvents: \"none\",\n});\n\nfunction CellFocusRing(): JSX.Element {\n return <div role=\"presentation\" class={tableCellFocusRing} />;\n}\n\nconst tableCellContent = style<{\n align?: \"start\" | \"center\" | \"end\";\n overflowMode?: TableOverflowMode;\n}>({\n minWidth: 0,\n overflow: {\n overflowMode: {\n truncate: \"hidden\",\n wrap: \"visible\",\n },\n },\n textOverflow: {\n overflowMode: {\n truncate: \"ellipsis\",\n },\n },\n whiteSpace: {\n overflowMode: {\n truncate: \"nowrap\",\n wrap: \"normal\",\n },\n },\n});\n\n// Flex wrapper placed *inside* the real `<td>` (rather than making the td a flex\n// container, which would break our fixed table-layout column widths) so the\n// expand chevron and the cell content sit side by side and fill the row height.\nconst treeCellInner = style({\n display: \"flex\",\n alignItems: \"center\",\n height: \"full\",\n minWidth: 0,\n});\n\n// Ports @react-spectrum/s2 TableView's `expandButton`. Upstream rotates the\n// button via `transform`; we rotate with the `rotate` shorthand (matching our\n// TreeView's chevron idiom) and drop the RTL branch our codebase already omits.\nconst expandButton = style<{ isDisabled?: boolean; isExpanded?: boolean }>({\n color: {\n default: \"inherit\",\n isDisabled: {\n default: \"disabled\",\n forcedColors: \"GrayText\",\n },\n },\n height: \"full\",\n width: 40,\n marginStart: -12,\n display: \"flex\",\n flexWrap: \"wrap\",\n alignContent: \"center\",\n justifyContent: \"center\",\n outlineStyle: \"none\",\n cursor: \"default\",\n rotate: {\n isExpanded: 90,\n },\n padding: 0,\n transition: \"default\",\n backgroundColor: \"transparent\",\n borderWidth: 0,\n borderStyle: \"none\",\n disableTapHighlight: true,\n});\n\nconst expandChevronIcon = style({\n \"--iconPrimary\": {\n type: \"fill\",\n value: \"currentColor\",\n },\n});\n\n// An editable cell renders like a regular cell but dims its content while a\n// submitted edit is saving. The inline edit trigger, the editing popover/dialog,\n// and the save/cancel affordances are styled below, mirroring the S2 source.\nconst editableCell = style<\n TableCellRenderProps & {\n align?: \"start\" | \"center\" | \"end\";\n density?: TableDensity;\n overflowMode?: TableOverflowMode;\n showDivider?: boolean;\n isSaving?: boolean;\n selectionStyle?: TableSelectionStyle;\n }\n>({\n outlineStyle: \"none\",\n position: \"relative\",\n color: {\n default: \"inherit\",\n isSaving: baseColor(\"neutral-subdued\"),\n },\n paddingX: 16,\n paddingY: 0,\n minHeight: {\n density: rowHeight,\n },\n height: {\n density: rowHeight,\n },\n textAlign: {\n align: {\n start: \"start\",\n center: \"center\",\n end: \"end\",\n },\n },\n verticalAlign: \"middle\",\n borderWidth: 0,\n // Checkbox mode draws the gray row divider here; highlight mode draws it as the\n // row's box-shadow instead, so the cell border is suppressed to avoid doubling.\n borderBottomWidth: {\n default: 1,\n selectionStyle: {\n highlight: 0,\n },\n },\n borderStyle: \"solid\",\n borderColor: \"gray-300\",\n borderEndWidth: {\n showDivider: 1,\n },\n});\n\nconst editPopover = style(\n {\n ...setColorScheme(),\n \"--s2-container-bg\": {\n type: \"backgroundColor\",\n value: \"layer-2\",\n },\n backgroundColor: \"--s2-container-bg\",\n borderBottomRadius: \"default\",\n boxShadow: \"elevated\",\n borderStyle: \"solid\",\n borderWidth: 1,\n borderColor: {\n default: \"gray-200\",\n forcedColors: \"ButtonBorder\",\n },\n boxSizing: \"content-box\",\n isolation: \"isolate\",\n pointerEvents: {\n isExiting: \"none\",\n },\n outlineStyle: \"none\",\n minWidth: \"--trigger-width\",\n padding: 8,\n display: \"flex\",\n alignItems: \"center\",\n },\n getAllowedOverrides(),\n);\n\nconst editForm = style({\n width: \"full\",\n display: \"flex\",\n alignItems: \"start\",\n gap: 16,\n});\n\nconst editActions = style({\n display: \"flex\",\n flexDirection: \"row\",\n alignItems: \"baseline\",\n flexShrink: 0,\n flexGrow: 0,\n});\n\nconst editFormMobile = style({\n width: \"full\",\n display: \"flex\",\n flexDirection: \"column\",\n alignItems: \"start\",\n gap: 16,\n});\n\nconst editButtonGroupStyles = style({\n alignSelf: \"end\",\n});\n\n// The inline edit trigger is hidden until the row is hovered or focused, the\n// editor is open, or the device lacks a fine pointer (touch). Mirrors S2.\nconst editButtonStyles = style<{ isForcedVisible?: boolean }>({\n visibility: {\n default: \"hidden\",\n isForcedVisible: \"visible\",\n ':is([role=\"row\"]:hover *)': \"visible\",\n ':is([role=\"row\"][data-focus-visible-within] *)': \"visible\",\n \"@media not ((hover: hover) and (pointer: fine))\": \"visible\",\n },\n});\n\n// Input types whose text cannot be range-selected on open. Mirrors S2.\nconst nonTextInputTypes = new Set([\n \"checkbox\",\n \"radio\",\n \"range\",\n \"color\",\n \"file\",\n \"image\",\n \"button\",\n \"submit\",\n \"reset\",\n]);\n\nconst emptyState = style({\n minHeight: 112,\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n color: \"neutral\",\n font: \"body-sm\",\n});\n\nconst selectionColumn = style({\n width: 40,\n minWidth: 40,\n paddingX: 0,\n textAlign: \"center\",\n});\n\nconst selectionCell = style<TableCellRenderProps & { density?: TableDensity }>({\n width: 40,\n minWidth: 40,\n paddingX: 0,\n paddingY: 0,\n height: {\n density: rowHeight,\n },\n borderWidth: 0,\n borderBottomWidth: 1,\n borderStyle: \"solid\",\n borderColor: \"gray-300\",\n textAlign: \"center\",\n verticalAlign: \"middle\",\n});\n\nconst selectionCheckbox = style<{ isDisabled?: boolean }>({\n position: \"relative\",\n display: \"inline-flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n width: 16,\n height: 16,\n // Mirrors S2 TableView's `selectionCheckbox` style\n // (`[slot=\"selection\"][data-disabled=\"true\"]` → `visibility: hidden`): a\n // disabled row's selection checkbox is visually hidden, which also removes it\n // from the accessibility tree (matching the S2 oracle, whose disabled\n // selection checkbox is pruned from the AX snapshot). The select-all checkbox\n // uses S2's separate `selectAllCheckbox` style and is never hidden this way.\n visibility: {\n default: \"visible\",\n isDisabled: \"hidden\",\n },\n});\n\nconst selectionCheckboxInput = style({\n position: \"absolute\",\n inset: 0,\n margin: 0,\n opacity: 0,\n cursor: \"inherit\",\n});\n\nconst selectionCheckboxBox = style<{ isSelected?: boolean; isDisabled?: boolean }>({\n ...focusRing(),\n size: 16,\n pointerEvents: \"none\",\n display: \"flex\",\n alignItems: \"center\",\n justifyContent: \"center\",\n borderWidth: 1,\n borderStyle: \"solid\",\n borderRadius: \"row\",\n boxSizing: \"border-box\",\n backgroundColor: {\n default: \"gray-25\",\n isSelected: baseColor(\"neutral\"),\n isDisabled: \"disabled\",\n },\n borderColor: {\n default: baseColor(\"gray-800\"),\n isSelected: \"transparent\",\n isDisabled: \"disabled\",\n },\n});\n\nconst selectionCheckboxIcon = style({\n pointerEvents: \"none\",\n \"--iconPrimary\": {\n type: \"fill\",\n value: {\n default: \"gray-25\",\n forcedColors: \"HighlightText\",\n },\n },\n});\n\nconst tableFooter = style({\n backgroundColor: \"gray-75\",\n borderWidth: 0,\n borderTopWidth: 1,\n borderStyle: \"solid\",\n borderColor: \"gray-300\",\n});\n\nconst actionBarContainer = style({\n position: \"absolute\",\n insetInline: 0,\n bottom: 12,\n display: \"flex\",\n justifyContent: \"center\",\n pointerEvents: \"none\",\n zIndex: 2,\n});\n\nconst actionBarContent = style({\n pointerEvents: \"auto\",\n});\n\nconst resizer = style<ColumnResizerRenderProps>({\n position: \"absolute\",\n top: 0,\n bottom: 0,\n insetEnd: 0,\n width: 6,\n cursor: \"col-resize\",\n touchAction: \"none\",\n userSelect: \"none\",\n backgroundColor: {\n default: \"transparent\",\n isHovered: \"accent-400\",\n isResizing: \"accent-900\",\n },\n});\n\nconst resizableTableContainer = style({\n position: \"relative\",\n width: \"full\",\n});\n\nfunction selectedKeySet(keys: \"all\" | Iterable<Key> | undefined): \"all\" | Set<Key> {\n if (keys === \"all\") {\n return \"all\";\n }\n\n return new Set(keys ?? []);\n}\n\nfunction hasSelection(keys: \"all\" | Set<Key>): boolean {\n return keys === \"all\" || keys.size > 0;\n}\n\nfunction densityFromProps(size: TableSize | undefined, density: TableDensity | undefined) {\n if (density) {\n return density;\n }\n\n switch (size) {\n case \"sm\":\n return \"compact\";\n case \"lg\":\n return \"spacious\";\n default:\n return \"regular\";\n }\n}\n\nfunction normalizeAlign(align: TableAlign | undefined): \"start\" | \"center\" | \"end\" {\n if (align === \"right\") {\n return \"end\";\n }\n\n if (align === \"left\") {\n return \"start\";\n }\n\n return align ?? \"start\";\n}\n\nfunction keyFromRowProps<T extends object>(props: HeadlessTableRowProps<T>): Key | undefined {\n return props.id ?? (props.item as { id?: Key; key?: Key } | undefined)?.id;\n}\n\nfunction inlineStyle(\n styleProp: JSX.CSSProperties | undefined,\n unsafeStyle: JSX.CSSProperties | undefined,\n): JSX.CSSProperties | undefined {\n if (!styleProp && !unsafeStyle) {\n return undefined;\n }\n\n return {\n ...styleProp,\n ...unsafeStyle,\n };\n}\n\nexport function Table<T extends object>(props: TableProps<T>): JSX.Element {\n const providerProps = useProviderProps(props);\n const contextProps = getSlottedContextProps(\n useContext(TableContext),\n (props as { slot?: string }).slot,\n );\n const mergedProps = mergeProps(providerProps, contextProps ?? {}, props);\n const [local, headlessProps] = splitProps(mergedProps, [\n \"children\",\n \"density\",\n \"isQuiet\",\n \"overflowMode\",\n \"renderActionBar\",\n \"styles\",\n \"UNSAFE_className\",\n \"UNSAFE_style\",\n \"class\",\n \"style\",\n \"title\",\n \"description\",\n \"size\",\n \"variant\",\n \"showSelectionCheckboxes\",\n \"selectionStyle\",\n \"selectionBehavior\",\n \"onSelectionChange\",\n \"onAction\",\n \"onRowAction\",\n \"loadingState\",\n \"onLoadMore\",\n \"onResizeStart\",\n \"onResize\",\n \"onResizeEnd\",\n ]);\n const externalResizeContext = useContext(HeadlessTableColumnResizeStateContext);\n const density = () => densityFromProps(local.size, local.density);\n const isQuiet = () => !!local.isQuiet;\n const overflowMode = () => local.overflowMode ?? \"truncate\";\n const selectionStyle = (): TableSelectionStyle => local.selectionStyle ?? \"checkbox\";\n const selectionBehavior = (): \"toggle\" | \"replace\" =>\n local.selectionBehavior ?? (selectionStyle() === \"highlight\" ? \"replace\" : \"toggle\");\n // Mirror upstream S2's gate: checkboxes only appear with toggle behavior in\n // checkbox style. Highlight selection (replace behavior) hides them entirely.\n const showSelectionCheckboxes = () =>\n (local.showSelectionCheckboxes ?? headlessProps.selectionMode !== \"none\") &&\n selectionStyle() === \"checkbox\" &&\n selectionBehavior() === \"toggle\";\n const [actionSelectedKeys, setActionSelectedKeys] = createSignal<\"all\" | Set<Key>>(\n selectedKeySet(headlessProps.selectedKeys ?? headlessProps.defaultSelectedKeys),\n );\n\n createEffect(() => {\n setActionSelectedKeys(\n selectedKeySet(headlessProps.selectedKeys ?? headlessProps.defaultSelectedKeys),\n );\n });\n\n const onSelectionChange = (keys: \"all\" | Set<Key>) => {\n setActionSelectedKeys(keys === \"all\" ? \"all\" : new Set(keys));\n local.onSelectionChange?.(keys);\n };\n const className = (renderProps: TableRenderProps): string =>\n [\n local.UNSAFE_className,\n local.class,\n mergeStyles(\n table({\n ...renderProps,\n isQuiet: isQuiet(),\n }),\n ),\n ]\n .filter(Boolean)\n .join(\" \");\n const context = createMemo<TableContextValue>(() => ({\n density: density(),\n isQuiet: isQuiet(),\n overflowMode: overflowMode(),\n showSelectionCheckboxes: showSelectionCheckboxes(),\n selectionStyle: selectionStyle(),\n loadingState: local.loadingState,\n onLoadMore: local.onLoadMore,\n }));\n const renderTable = () => (\n <HeadlessTable\n {...headlessProps}\n selectionBehavior={selectionBehavior()}\n showSelectionCheckboxes={showSelectionCheckboxes()}\n onRowAction={local.onAction ?? local.onRowAction}\n onSelectionChange={onSelectionChange}\n class={className}\n data-table-view=\"\"\n data-density={density()}\n data-quiet={isQuiet() || undefined}\n data-overflow-mode={overflowMode()}\n data-selection-style={selectionStyle()}\n >\n {local.children}\n </HeadlessTable>\n );\n const renderResizableTable = () =>\n externalResizeContext ? (\n renderTable()\n ) : (\n <HeadlessResizableTableContainer\n class={resizableTableContainer}\n onResizeStart={local.onResizeStart}\n onResize={local.onResize}\n onResizeEnd={local.onResizeEnd}\n >\n {renderTable()}\n </HeadlessResizableTableContainer>\n );\n\n const renderFramed = () => (\n <div\n class={tableWrapper(null, local.styles)}\n style={inlineStyle(local.style, local.UNSAFE_style)}\n >\n {local.title ? <div class={legacyLabel({})}>{local.title}</div> : null}\n <div class={tableShell({ isQuiet: isQuiet() })} data-table-view-shell=\"\">\n {renderResizableTable()}\n </div>\n {local.description ? <div class={legacyDescription({})}>{local.description}</div> : null}\n {local.renderActionBar && hasSelection(actionSelectedKeys()) ? (\n <div class={actionBarContainer}>\n <div class={actionBarContent}>{local.renderActionBar(actionSelectedKeys())}</div>\n </div>\n ) : null}\n </div>\n );\n\n return (\n <InternalTableContext.Provider value={context()}>\n {renderFramed()}\n </InternalTableContext.Provider>\n );\n}\n\nexport function TableHeader(props: TableHeaderProps): JSX.Element {\n const context = useContext(InternalTableContext);\n const [local, headlessProps] = splitProps(props, [\"class\", \"styles\", \"UNSAFE_className\"]);\n const className = () =>\n [local.UNSAFE_className, local.class, mergeStyles(tableHeader, local.styles)]\n .filter(Boolean)\n .join(\" \");\n\n return (\n <HeadlessTableHeader {...headlessProps} class={className()}>\n {context.showSelectionCheckboxes ? <TableSelectAllCheckbox /> : null}\n {props.children}\n </HeadlessTableHeader>\n );\n}\n\nexport function TableColumn(props: TableColumnProps): JSX.Element {\n const context = useContext(InternalTableContext);\n const [local, headlessProps] = splitProps(props, [\n \"children\",\n \"align\",\n \"showDivider\",\n \"class\",\n \"styles\",\n \"UNSAFE_className\",\n \"UNSAFE_style\",\n ]);\n const align = () => normalizeAlign(local.align);\n const className = (renderProps: TableColumnRenderProps): string =>\n [\n local.UNSAFE_className,\n local.class,\n mergeStyles(\n tableColumn({\n ...renderProps,\n align: align(),\n density: context.density,\n showDivider: !!local.showDivider,\n }),\n local.styles,\n ),\n ]\n .filter(Boolean)\n .join(\" \");\n\n return (\n <HeadlessTableColumn {...headlessProps} class={className} style={local.UNSAFE_style}>\n {(renderProps: TableColumnRenderProps) => (\n <>\n <span class={tableColumnContent({ align: align(), overflowMode: context.overflowMode })}>\n {renderProps.isSortable && renderProps.sortDirection ? (\n <SortIcon direction={renderProps.sortDirection} />\n ) : null}\n <span>\n {typeof local.children === \"function\" ? local.children(renderProps) : local.children}\n </span>\n {renderProps.allowsResizing && props.id != null ? (\n <ColumnResizer column={{ key: props.id }} />\n ) : null}\n </span>\n {renderProps.isFocusVisible ? <CellFocusRing /> : null}\n </>\n )}\n </HeadlessTableColumn>\n );\n}\n\nexport function TableBody<T extends object>(props: TableBodyProps<T>): JSX.Element {\n const context = useContext(InternalTableContext);\n const [local, headlessProps] = splitProps(props, [\n \"class\",\n \"styles\",\n \"UNSAFE_className\",\n \"renderEmptyState\",\n \"hasMore\",\n \"isLoading\",\n \"onLoadMore\",\n ]);\n const className = () =>\n [local.UNSAFE_className, local.class, mergeStyles(local.styles)].filter(Boolean).join(\" \");\n const renderEmptyState = () => (\n <div class={emptyState}>{local.renderEmptyState?.() ?? \"No data available\"}</div>\n );\n const rootIsLoading = () => {\n const loadingState = context.loadingState;\n return (\n loadingState === \"loading\" ||\n loadingState === \"loadingMore\" ||\n loadingState === \"sorting\" ||\n loadingState === \"filtering\"\n );\n };\n\n return (\n <HeadlessTableBody\n {...headlessProps}\n hasMore={local.hasMore ?? !!context.onLoadMore}\n isLoading={local.isLoading ?? rootIsLoading()}\n onLoadMore={local.onLoadMore ?? context.onLoadMore}\n class={className()}\n renderEmptyState={renderEmptyState}\n >\n {props.children}\n </HeadlessTableBody>\n );\n}\n\nexport function TableFooter<T extends object>(props: TableFooterProps<T>): JSX.Element {\n const [local, headlessProps] = splitProps(props, [\"class\", \"styles\", \"UNSAFE_className\"]);\n const className = (_renderProps: TableFooterRenderProps): string =>\n [local.UNSAFE_className, local.class, mergeStyles(tableFooter, local.styles)]\n .filter(Boolean)\n .join(\" \");\n\n return (\n <HeadlessTableFooter {...headlessProps} class={className}>\n {props.children}\n </HeadlessTableFooter>\n );\n}\n\nexport function TableRow<T extends object>(props: TableRowProps<T>): JSX.Element {\n const context = useContext(InternalTableContext);\n const state = useContext(HeadlessTableStateContext);\n const [local, headlessProps] = splitProps(props, [\n \"children\",\n \"class\",\n \"styles\",\n \"UNSAFE_className\",\n \"UNSAFE_style\",\n ]);\n const rowKey = () => keyFromRowProps(headlessProps);\n // In highlight selection mode a contiguous run of selected rows draws a single\n // rounded border \"block\" (see injectHighlightSelectionBorderCSS). Mirror\n // upstream's isNextSelected/isPrevSelected helpers so the macro can suppress the\n // inner edges and corner radii wherever the adjacent row is also selected. The\n // reads below run inside useRenderProps' class memo, so toggling a neighbor's\n // selection re-runs this row's class even though its own renderProps are stable.\n const isKeySelected = (key: Key | null | undefined): boolean => {\n if (key == null || !state) return false;\n const selected = state.selectedKeys;\n return selected === \"all\" || selected.has(key);\n };\n const isNextSelected = (): boolean => {\n const k = rowKey();\n if (k == null || !state) return false;\n return isKeySelected(state.collection.getKeyAfter?.(k) ?? null);\n };\n const isPrevSelected = (): boolean => {\n const k = rowKey();\n if (k == null || !state) return false;\n return isKeySelected(state.collection.getKeyBefore?.(k) ?? null);\n };\n const isFirstItem = (): boolean => {\n const k = rowKey();\n if (k == null || !state) return false;\n return state.collection.getFirstKey?.() === k;\n };\n const className = (renderProps: TableRowRenderProps): string => {\n const highlight = context.selectionStyle === \"highlight\";\n if (highlight) injectHighlightSelectionBorderCSS();\n if (renderProps.isFocusVisible) injectRowFocusIndicatorCSS();\n return [\n renderProps.isFocusVisible ? ROW_FOCUS_INDICATOR_CLASS : undefined,\n highlight ? HIGHLIGHT_SELECTION_BORDER_CLASS : undefined,\n local.UNSAFE_className,\n local.class,\n mergeStyles(\n tableRow({\n ...renderProps,\n density: context.density,\n selectionStyle: context.selectionStyle,\n isFirstItem: isFirstItem(),\n isNextSelected: isNextSelected(),\n isPrevSelected: isPrevSelected(),\n }),\n local.styles,\n ),\n ]\n .filter(Boolean)\n .join(\" \");\n };\n\n return (\n <HeadlessTableRow {...headlessProps} class={className} style={local.UNSAFE_style}>\n {(renderProps: TableRowRenderProps) => (\n <>\n {context.showSelectionCheckboxes && rowKey() != null ? (\n <TableSelectionCheckbox\n rowKey={rowKey()!}\n isSelected={renderProps.isSelected}\n isDisabled={renderProps.isDisabled}\n />\n ) : null}\n {typeof local.children === \"function\"\n ? (local.children as (renderProps: TableRowRenderProps) => JSX.Element)(renderProps)\n : local.children}\n </>\n )}\n </HeadlessTableRow>\n );\n}\n\n// The bare expand/collapse affordance for a tree-grid row. This is the\n// *headless* Button so it picks up the row's `chevron` slot (the press handlers\n// that toggle expansion) from the surrounding TableRow's ButtonContext; the\n// styled solid-spectrum Button reads a different, styled ButtonContext and would\n// not. Mirrors @react-spectrum/s2 TableView's `ExpandableRowChevron`.\nfunction ExpandableRowChevron(props: { isExpanded?: boolean }): JSX.Element {\n return (\n <HeadlessButton\n slot=\"chevron\"\n class={(renderProps) =>\n expandButton({ isExpanded: !!props.isExpanded, isDisabled: renderProps.isDisabled })\n }\n >\n <Chevron size=\"S\" class={expandChevronIcon} aria-hidden=\"true\" />\n </HeadlessButton>\n );\n}\n\nexport function TableCell(props: TableCellProps): JSX.Element {\n const context = useContext(InternalTableContext);\n const [local, headlessProps] = splitProps(props, [\n \"children\",\n \"align\",\n \"showDivider\",\n \"class\",\n \"styles\",\n \"UNSAFE_className\",\n \"UNSAFE_style\",\n ]);\n const align = () => normalizeAlign(local.align);\n const className = (renderProps: TableCellRenderProps): string =>\n [\n local.UNSAFE_className,\n local.class,\n mergeStyles(\n tableCell({\n ...renderProps,\n align: align(),\n density: context.density,\n overflowMode: context.overflowMode,\n showDivider: !!local.showDivider,\n isTreeColumnWithNoChildren: renderProps.isTreeColumn && !renderProps.hasChildItems,\n selectionStyle: context.selectionStyle,\n }),\n local.styles,\n ),\n ]\n .filter(Boolean)\n .join(\" \");\n\n const renderChildren = (renderProps: TableCellRenderProps) =>\n typeof local.children === \"function\" ? local.children(renderProps) : local.children;\n const content = (renderProps: TableCellRenderProps) => (\n <div class={tableCellContent({ align: align(), overflowMode: context.overflowMode })}>\n {renderChildren(renderProps)}\n </div>\n );\n\n return (\n <HeadlessTableCell {...headlessProps} class={className} style={local.UNSAFE_style}>\n {(renderProps: TableCellRenderProps) => (\n <>\n <Show\n when={renderProps.isTreeColumn && renderProps.hasChildItems}\n fallback={content(renderProps)}\n >\n <div class={treeCellInner}>\n <ExpandableRowChevron isExpanded={renderProps.isExpanded} />\n {content(renderProps)}\n </div>\n </Show>\n {renderProps.isFocusVisible ? <CellFocusRing /> : null}\n </>\n )}\n </HeadlessTableCell>\n );\n}\n\nexport interface EditableCellProps extends EditableCellOwnProps, TableCellProps {}\n\ninterface EditableCellOwnProps {\n /** Renders the editing form fields shown in the popover (desktop) or dialog (mobile). */\n renderEditing: () => JSX.Element;\n /** Whether a submitted edit is currently saving. Dims the cell and shows a pending trigger. */\n isSaving?: boolean;\n /** Handler called when the editing form is submitted. The native submit is already prevented. */\n onSubmit?: (event: SubmitEvent) => void;\n /** Handler called when editing is cancelled (Cancel button, Escape, or interact-outside without save). */\n onCancel?: () => void;\n /** A native form `action` for the editing form. */\n action?: string;\n}\n\n/**\n * An EditableCell is a table cell whose contents can be edited inline. Pressing\n * the cell's `<ActionButton slot=\"edit\">` opens an editing surface — a popover on\n * desktop, a full dialog on touch devices — containing the fields returned by\n * `renderEditing`. Mirrors the React Spectrum S2 `EditableCell`.\n */\nexport function EditableCell(props: EditableCellProps): JSX.Element {\n const context = useContext(InternalTableContext);\n const [local, headlessProps] = splitProps(props, [\n \"children\",\n \"align\",\n \"showDivider\",\n \"class\",\n \"styles\",\n \"UNSAFE_className\",\n \"UNSAFE_style\",\n \"renderEditing\",\n \"isSaving\",\n \"onSubmit\",\n \"onCancel\",\n \"action\",\n \"ref\",\n ]);\n let cellEl: HTMLTableCellElement | null = null;\n const align = (): \"start\" | \"center\" | \"end\" => normalizeAlign(local.align);\n const className = (renderProps: TableCellRenderProps): string =>\n [\n local.UNSAFE_className,\n local.class,\n mergeStyles(\n editableCell({\n ...renderProps,\n align: align(),\n density: context.density,\n overflowMode: context.overflowMode,\n showDivider: !!local.showDivider,\n isSaving: !!local.isSaving,\n selectionStyle: context.selectionStyle,\n }),\n local.styles,\n ),\n ]\n .filter(Boolean)\n .join(\" \");\n\n const setCell = (el: HTMLTableCellElement): void => {\n cellEl = el;\n const ref = local.ref;\n if (typeof ref === \"function\") {\n ref(el);\n } else if (ref) {\n ref.current = el;\n }\n };\n\n // The headless cell re-invokes its children callback whenever its own render props change\n // (hover/press/focus). Recreating the stateful inner there would tear the edit button down\n // mid-press and reset the open state, so anchor a single inner instance to EditableCell's\n // owner and return it across every rerun. Cell render props are captured once and handed to\n // the (static, per upstream) children — they are not re-read reactively.\n const owner = getOwner();\n let inner: JSX.Element | undefined;\n let latestRenderProps: TableCellRenderProps | undefined;\n\n const renderInner = (renderProps: TableCellRenderProps): JSX.Element => {\n latestRenderProps = renderProps;\n inner ??= runWithOwner(owner, () => (\n <EditableCellInner\n align={align}\n overflowMode={() => context.overflowMode}\n density={() => context.density}\n getCell={() => cellEl}\n renderEditing={local.renderEditing}\n isSaving={() => local.isSaving}\n onSubmit={local.onSubmit}\n onCancel={local.onCancel}\n action={local.action}\n ariaLabel={(props as { \"aria-label\"?: string })[\"aria-label\"]}\n renderChildren={() => {\n if (typeof local.children !== \"function\") {\n return local.children;\n }\n // `latestRenderProps` is a plain capture, not a signal, so reading it does not make\n // the children reactive to the cell's hover/press churn.\n return latestRenderProps ? local.children(latestRenderProps) : null;\n }}\n />\n )) as JSX.Element;\n return inner;\n };\n\n return (\n <HeadlessTableCell\n {...headlessProps}\n ref={setCell}\n class={className}\n style={local.UNSAFE_style}\n >\n {(renderProps: TableCellRenderProps) => (\n <>\n {renderInner(renderProps)}\n {renderProps.isFocusVisible ? <CellFocusRing /> : null}\n </>\n )}\n </HeadlessTableCell>\n );\n}\n\ninterface EditableCellInnerProps {\n align: () => \"start\" | \"center\" | \"end\";\n overflowMode: () => TableOverflowMode;\n density: () => TableDensity;\n getCell: () => HTMLTableCellElement | null;\n renderEditing: () => JSX.Element;\n isSaving: () => boolean | undefined;\n onSubmit?: (event: SubmitEvent) => void;\n onCancel?: () => void;\n action?: string;\n ariaLabel?: string;\n /**\n * Invoked inside the edit-slot provider so the `slot=\"edit\"` ActionButton\n * resolves its `onPress` from `editSlots`. In Solid, `useContext` binds to the\n * owner active when the component executes, so the children must be created\n * here rather than pre-evaluated in `EditableCell`'s scope.\n */\n renderChildren: () => JSX.Element;\n}\n\nfunction EditableCellInner(props: EditableCellInnerProps): JSX.Element {\n const stringFormatter = createStringFormatter(s2IntlStrings, \"@react-spectrum/s2\");\n const [isOpen, setIsOpen] = createSignal(false);\n const [formEl, setFormEl] = createSignal<HTMLFormElement | null>(null);\n const [triggerWidth, setTriggerWidth] = createSignal(0);\n const [tableWidth, setTableWidth] = createSignal(0);\n const [verticalOffset, setVerticalOffset] = createSignal(0);\n\n // Touch devices (no fine pointer / hover) get a full dialog instead of a popover.\n const hasFinePointer = createMediaQuery(\"(hover: hover) and (pointer: fine)\");\n const isMobile = (): boolean => !hasFinePointer();\n\n const size = (): ActionButtonSize => {\n const density = props.density();\n if (density === \"compact\") {\n return \"S\";\n }\n if (density === \"spacious\") {\n return \"L\";\n }\n return \"M\";\n };\n\n // Position the popover relative to the cell: measure the trigger and table\n // widths, and offset upward by the row height so it overlays the cell. Mirrors\n // the S2 useLayoutEffect.\n createEffect(() => {\n if (!isOpen()) {\n return;\n }\n const cell = props.getCell();\n const boundingRect = cell?.parentElement?.getBoundingClientRect();\n setTriggerWidth(cell?.clientWidth ?? 0);\n setVerticalOffset((boundingRect?.top ?? 0) - (boundingRect?.bottom ?? 0));\n const grid = cell?.closest('[role=\"grid\"],[role=\"treegrid\"]');\n setTableWidth((grid as HTMLElement | null)?.clientWidth ?? 0);\n });\n\n // Auto-select the entire text range of the autofocused input when the editor\n // opens. Re-runs once the form element mounts. Mirrors the S2 useEffect.\n createEffect(() => {\n const form = formEl();\n if (!isOpen() || !form) {\n return;\n }\n queueMicrotask(() => {\n if (!isOpen()) {\n return;\n }\n const active = getOwnerDocument(form)?.activeElement;\n if (\n active &&\n form.contains(active) &&\n ((active instanceof HTMLInputElement && !nonTextInputTypes.has(active.type)) ||\n active instanceof HTMLTextAreaElement) &&\n typeof active.select === \"function\"\n ) {\n active.select();\n }\n });\n });\n\n const cancel = (): void => {\n setIsOpen(false);\n props.onCancel?.();\n };\n\n // Our headless Form doesn't prevent the native submit (unlike RAC's Form), so\n // stop the page reload here, then notify the consumer and close. Mirrors S2.\n const handleSubmit = (event: SubmitEvent): void => {\n event.preventDefault();\n props.onSubmit?.(event);\n setIsOpen(false);\n };\n\n // The mobile dialog disables keyboard dismissal, so translate Escape into a\n // cancel ourselves. Mirrors the S2 dialog-level Escape handler.\n const onFormKeyDown = (event: KeyboardEvent): void => {\n if (event.key === \"Escape\") {\n cancel();\n event.stopPropagation();\n event.preventDefault();\n }\n };\n\n const attachForm = (el: HTMLFormElement): void => {\n setFormEl(el);\n el.addEventListener(\"submit\", handleSubmit);\n if (isMobile()) {\n el.addEventListener(\"keydown\", onFormKeyDown);\n }\n };\n\n // Interact-outside never closes the popover directly; instead, if focus is\n // still within the form, submit (saving), which then closes. Mirrors S2.\n const shouldCloseOnInteractOutside = (): boolean => {\n const form = formEl();\n if (!form) {\n return false;\n }\n const active = getOwnerDocument(form)?.activeElement;\n if (!active || !form.contains(active)) {\n return false;\n }\n form.requestSubmit();\n return false;\n };\n\n const editSlots: SpectrumContextValue<ActionButtonProps> = {\n slots: {\n default: {},\n edit: {\n onPress: () => setIsOpen(true),\n excludeFromTabOrder: true,\n get isPending() {\n return props.isSaving();\n },\n get isQuiet() {\n return !props.isSaving();\n },\n get size() {\n return size();\n },\n get styles() {\n return editButtonStyles({ isForcedVisible: isOpen() || !!props.isSaving() });\n },\n },\n },\n };\n\n return (\n <ButtonContext.Provider value={null}>\n <ActionButtonContext.Provider value={editSlots}>\n <div class={tableCellContent({ align: props.align(), overflowMode: props.overflowMode() })}>\n {props.renderChildren()}\n </div>\n\n <ActionButtonContext.Provider value={null}>\n <Show when={!isMobile()}>\n <HeadlessPopover\n isOpen={isOpen()}\n onOpenChange={setIsOpen}\n aria-label={props.ariaLabel ?? stringFormatter().format(\"table.editCell\")}\n triggerRef={() => props.getCell()}\n placement=\"bottom start\"\n offset={verticalOffset()}\n shouldCloseOnInteractOutside={shouldCloseOnInteractOutside}\n class={(renderProps) => editPopover({ isExiting: renderProps.isExiting })}\n style={() => ({\n minWidth: `min(${triggerWidth()}px, ${tableWidth()}px)`,\n maxWidth: `${tableWidth()}px`,\n })}\n >\n <OverlayTriggerStateContext.Provider value={null}>\n <HeadlessForm\n ref={attachForm}\n action={props.action}\n class={editForm}\n style={() => ({ \"--input-width\": `calc(${triggerWidth()}px - 32px)` })}\n >\n {props.renderEditing()}\n <div class={editActions}>\n <ActionButton\n isQuiet\n onPress={cancel}\n aria-label={stringFormatter().format(\"table.cancel\")}\n >\n <Cross />\n </ActionButton>\n <ActionButton\n isQuiet\n type=\"submit\"\n aria-label={stringFormatter().format(\"table.save\")}\n >\n <Checkmark />\n </ActionButton>\n </div>\n </HeadlessForm>\n </OverlayTriggerStateContext.Provider>\n </HeadlessPopover>\n </Show>\n\n <Show when={isMobile()}>\n <DialogContainer onDismiss={() => formEl()?.requestSubmit()}>\n <Show when={isOpen()}>\n <CustomDialog\n isDismissible\n isKeyboardDismissDisabled\n aria-label={props.ariaLabel ?? stringFormatter().format(\"table.editCell\")}\n >\n <HeadlessForm ref={attachForm} action={props.action} class={editFormMobile}>\n {props.renderEditing()}\n <ButtonGroup align=\"end\" styles={editButtonGroupStyles}>\n <Button onPress={cancel} variant=\"secondary\" fillStyle=\"outline\">\n Cancel\n </Button>\n <Button type=\"submit\" variant=\"accent\">\n Save\n </Button>\n </ButtonGroup>\n </HeadlessForm>\n </CustomDialog>\n </Show>\n </DialogContainer>\n </Show>\n </ActionButtonContext.Provider>\n </ActionButtonContext.Provider>\n </ButtonContext.Provider>\n );\n}\n\nexport function TableSelectionCheckbox(props: {\n rowKey: Key;\n isSelected?: boolean;\n isDisabled?: boolean;\n}): JSX.Element {\n const context = useContext(InternalTableContext);\n\n return (\n <HeadlessTableCell\n id=\"__selection__\"\n class={(renderProps: TableCellRenderProps) =>\n selectionCell({ ...renderProps, density: context.density })\n }\n >\n {(renderProps: TableCellRenderProps) => (\n <>\n <span\n class={selectionCheckbox({ isDisabled: !!props.isDisabled })}\n data-rsp-slot=\"selection-indicator\"\n >\n <HeadlessTableSelectionCheckbox rowKey={props.rowKey} class={selectionCheckboxInput} />\n <span\n class={selectionCheckboxBox({\n isSelected: !!props.isSelected,\n isDisabled: !!props.isDisabled,\n })}\n >\n {props.isSelected ? <Checkmark size=\"XS\" class={selectionCheckboxIcon} /> : null}\n </span>\n </span>\n {renderProps.isFocusVisible ? <CellFocusRing /> : null}\n </>\n )}\n </HeadlessTableCell>\n );\n}\n\nexport function TableSelectAllCheckbox(): JSX.Element {\n const context = useContext(InternalTableContext);\n const state = useContext(HeadlessTableStateContext);\n const isSelected = () => state?.selectedKeys === \"all\";\n const isIndeterminate = () => {\n const keys = state?.selectedKeys;\n if (!state || keys === \"all\" || keys == null || keys.size === 0) {\n return false;\n }\n\n return keys.size < state.collection.size;\n };\n const isDisabled = () =>\n !state || state.selectionMode !== \"multiple\" || state.collection.size === 0;\n const className = (renderProps: TableColumnRenderProps): string =>\n mergeStyles(\n tableColumn({\n ...renderProps,\n align: \"center\",\n density: context.density,\n }),\n selectionColumn,\n );\n\n // Mirrors S2's `TableColumnHeader`: in single-selection mode there is no\n // select-all checkbox — the header column instead exposes a `VisuallyHidden`\n // \"Select\" label (S2 `VisuallyHiddenSelectAllLabel`). Only `multiple` mode\n // renders the real select-all checkbox.\n const isSingle = () => state?.selectionMode === \"single\";\n\n return (\n <HeadlessTableColumn id=\"__selection__\" class={className}>\n {isSingle() ? (\n <HeadlessVisuallyHidden>Select</HeadlessVisuallyHidden>\n ) : (\n <span class={selectionCheckbox({})} data-rsp-slot=\"select-all-indicator\">\n <HeadlessTableSelectAllCheckbox class={selectionCheckboxInput} />\n <span\n class={selectionCheckboxBox({\n isSelected: isSelected() || isIndeterminate(),\n isDisabled: isDisabled(),\n })}\n >\n {isSelected() ? (\n <Checkmark size=\"XS\" class={selectionCheckboxIcon} />\n ) : isIndeterminate() ? (\n <Dash size=\"XS\" class={selectionCheckboxIcon} />\n ) : null}\n </span>\n </span>\n )}\n </HeadlessTableColumn>\n );\n}\n\nexport interface ColumnResizerProps extends Omit<HeadlessColumnResizerProps, \"class\" | \"style\"> {\n /** Additional CSS class name. Use only as a last resort. */\n class?: string;\n /** Spectrum-defined generated classes. */\n styles?: StyleString;\n /** Additional CSS class name. Use only as a last resort. */\n UNSAFE_className?: UnsafeClassName | string;\n}\n\nexport function ColumnResizer(props: ColumnResizerProps): JSX.Element {\n const [local, headlessProps] = splitProps(props, [\"class\", \"styles\", \"UNSAFE_className\"]);\n const className = (renderProps: ColumnResizerRenderProps): string =>\n [local.UNSAFE_className, local.class, mergeStyles(resizer(renderProps), local.styles)]\n .filter(Boolean)\n .join(\" \");\n\n return <HeadlessColumnResizer {...headlessProps} class={className} />;\n}\n\nexport interface ResizableTableContainerProps extends Omit<\n HeadlessResizableTableContainerProps,\n \"class\" | \"style\"\n> {\n /** Additional CSS class name. Use only as a last resort. */\n class?: string;\n /** Spectrum-defined generated classes. */\n styles?: StyleString;\n /** Additional CSS class name. Use only as a last resort. */\n UNSAFE_className?: UnsafeClassName | string;\n /** Additional inline styles. Use only as a last resort. */\n UNSAFE_style?: JSX.CSSProperties;\n}\n\nexport function ResizableTableContainer(props: ResizableTableContainerProps): JSX.Element {\n const [local, headlessProps] = splitProps(props, [\n \"class\",\n \"styles\",\n \"UNSAFE_className\",\n \"UNSAFE_style\",\n ]);\n const className = () =>\n [local.UNSAFE_className, local.class, mergeStyles(resizableTableContainer, local.styles)]\n .filter(Boolean)\n .join(\" \");\n\n return (\n <HeadlessResizableTableContainer\n {...headlessProps}\n class={className()}\n style={local.UNSAFE_style}\n />\n );\n}\n\nfunction SortIcon(props: { direction: \"ascending\" | \"descending\" }): JSX.Element {\n return (\n <Arrow\n size=\"M\"\n class={tableSortIcon}\n aria-hidden=\"true\"\n style={{\n transform: props.direction === \"ascending\" ? \"rotate(-90deg)\" : \"rotate(90deg)\",\n }}\n />\n );\n}\n\nTable.Header = TableHeader;\nTable.Column = TableColumn;\nTable.Body = TableBody;\nTable.Footer = TableFooter;\nTable.Row = TableRow;\nTable.Cell = TableCell;\nTable.EditableCell = EditableCell;\nTable.SelectionCheckbox = TableSelectionCheckbox;\nTable.SelectAllCheckbox = TableSelectAllCheckbox;\nTable.ColumnResizer = ColumnResizer;\n\nexport const TableView = Table;\nexport const Column = TableColumn;\nexport const Footer = TableFooter;\nexport const Row = TableRow;\nexport const Cell = TableCell;\n\nexport type { ColumnDefinition, Key, SortDescriptor };\n"],"mappings":"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"}
@@ -211,7 +211,7 @@ const legacyDescription = function anonymous(props) {
211
211
  if (props.isPressed) rules += " pQKeKoe151";
212
212
  else if (props.isFocusVisible) rules += " pQKeKoe151";
213
213
  else if (props.isHovered) rules += " pQKeKoe151";
214
- else rules += " pUUi0Fe151";
214
+ else rules += " pWQ7V3d151";
215
215
  rules += " Js151";
216
216
  return rules;
217
217
  };
@@ -368,7 +368,7 @@ const tableRow = function anonymous(props) {
368
368
  else if (props.isPressed) rules += " pQKeKoe151";
369
369
  else if (props.isFocusVisible) rules += " pQKeKoe151";
370
370
  else if (props.isHovered) rules += " pQKeKoe151";
371
- else rules += " pUUi0Fe151";
371
+ else rules += " pWQ7V3d151";
372
372
  if (props.selectionStyle === "highlight") {
373
373
  if (props.isSelected) rules += " ple151";
374
374
  }
@@ -498,7 +498,7 @@ const editableCell = function anonymous(props) {
498
498
  if (props.isSaving) if (props.isPressed) rules += " pQKeKoe151";
499
499
  else if (props.isFocusVisible) rules += " pQKeKoe151";
500
500
  else if (props.isHovered) rules += " pQKeKoe151";
501
- else rules += " pUUi0Fe151";
501
+ else rules += " pWQ7V3d151";
502
502
  else rules += " p40ub4c151";
503
503
  rules += " Sf151";
504
504
  rules += " Rf151";