@k2b/ui 0.49.0 → 0.50.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (265) hide show
  1. package/dist/base.css +40 -2
  2. package/dist/browser/actions/ContextMenu.js +3 -0
  3. package/dist/browser/actions/ContextMenu.js.map +1 -1
  4. package/dist/browser/charts/core/area.js +190 -0
  5. package/dist/browser/charts/core/area.js.map +1 -0
  6. package/dist/browser/charts/core/calendar.js +186 -0
  7. package/dist/browser/charts/core/calendar.js.map +1 -0
  8. package/dist/browser/charts/core/chart-map-data.js +9 -0
  9. package/dist/browser/charts/core/chart-map-data.js.map +1 -0
  10. package/dist/browser/charts/core/index.js +12 -0
  11. package/dist/browser/charts/core/index.js.map +1 -0
  12. package/dist/browser/charts/core/inspection.js +9 -0
  13. package/dist/browser/charts/core/inspection.js.map +1 -0
  14. package/dist/browser/charts/core/registry.js +28 -0
  15. package/dist/browser/charts/core/registry.js.map +1 -0
  16. package/dist/browser/charts/core/render.js +103 -0
  17. package/dist/browser/charts/core/render.js.map +1 -0
  18. package/dist/browser/charts/core/snapshot.js +65 -0
  19. package/dist/browser/charts/core/snapshot.js.map +1 -0
  20. package/dist/browser/charts/core/svg.js +2542 -0
  21. package/dist/browser/charts/core/svg.js.map +1 -0
  22. package/dist/browser/charts/core/termination.test-fixture.js +162 -0
  23. package/dist/browser/charts/core/termination.test-fixture.js.map +1 -0
  24. package/dist/browser/charts/core/text.js +13 -0
  25. package/dist/browser/charts/core/text.js.map +1 -0
  26. package/dist/browser/charts/core/types.js +8 -0
  27. package/dist/browser/charts/core/types.js.map +1 -0
  28. package/dist/browser/charts.js +4 -2
  29. package/dist/browser/charts.js.map +1 -1
  30. package/dist/browser/content/BalanceSummary.js +106 -0
  31. package/dist/browser/content/BalanceSummary.js.map +1 -0
  32. package/dist/browser/content/Chart.js +134 -115
  33. package/dist/browser/content/Chart.js.map +1 -1
  34. package/dist/browser/content/ChartExplorer.js +366 -122
  35. package/dist/browser/content/ChartExplorer.js.map +1 -1
  36. package/dist/browser/content/ChartSnapshotView.js +16 -9
  37. package/dist/browser/content/ChartSnapshotView.js.map +1 -1
  38. package/dist/browser/content/DataTable.js +676 -293
  39. package/dist/browser/content/DataTable.js.map +1 -1
  40. package/dist/browser/content/DataTableTools.js +119 -0
  41. package/dist/browser/content/DataTableTools.js.map +1 -0
  42. package/dist/browser/content/FlowAmount.js +82 -0
  43. package/dist/browser/content/FlowAmount.js.map +1 -0
  44. package/dist/browser/content/balance-summary-messages.js +26 -0
  45. package/dist/browser/content/balance-summary-messages.js.map +1 -0
  46. package/dist/browser/content/chart-bar.js +6 -6
  47. package/dist/browser/content/chart-bar.js.map +1 -1
  48. package/dist/browser/content/chart-calendar.js +43 -0
  49. package/dist/browser/content/chart-calendar.js.map +1 -0
  50. package/dist/browser/content/chart-inspection-core.js +164 -37
  51. package/dist/browser/content/chart-inspection-core.js.map +1 -1
  52. package/dist/browser/content/chart-inspection.js.map +1 -1
  53. package/dist/browser/content/chart-line-gaps.js +2 -2
  54. package/dist/browser/content/chart-line-gaps.js.map +1 -1
  55. package/dist/browser/content/chart-map-viewport.js.map +1 -1
  56. package/dist/browser/content/chart-message-catalog.js +164 -0
  57. package/dist/browser/content/chart-message-catalog.js.map +1 -0
  58. package/dist/browser/content/chart-messages.js +2 -138
  59. package/dist/browser/content/chart-messages.js.map +1 -1
  60. package/dist/browser/content/chart-snapshot.js +1 -62
  61. package/dist/browser/content/chart-snapshot.js.map +1 -1
  62. package/dist/browser/content/chart-state-timeline.js +1 -1
  63. package/dist/browser/content/chart-state-timeline.js.map +1 -1
  64. package/dist/browser/content/chart-svg.js +2 -1
  65. package/dist/browser/content/chart-svg.js.map +1 -1
  66. package/dist/browser/content/chart-time-axis.js +139 -0
  67. package/dist/browser/content/chart-time-axis.js.map +1 -0
  68. package/dist/browser/content/data-table-columns.js +160 -0
  69. package/dist/browser/content/data-table-columns.js.map +1 -0
  70. package/dist/browser/content/data-table-messages.js +38 -2
  71. package/dist/browser/content/data-table-messages.js.map +1 -1
  72. package/dist/browser/content/flow-amount-messages.js +26 -0
  73. package/dist/browser/content/flow-amount-messages.js.map +1 -0
  74. package/dist/browser/content/index.js +4 -0
  75. package/dist/browser/content/index.js.map +1 -1
  76. package/dist/browser/inputs/DatePicker.js +5 -4
  77. package/dist/browser/inputs/DatePicker.js.map +1 -1
  78. package/dist/browser/inputs/SelectChip.js +50 -17
  79. package/dist/browser/inputs/SelectChip.js.map +1 -1
  80. package/dist/browser/inputs/date-picker.js +13 -0
  81. package/dist/browser/inputs/date-picker.js.map +1 -1
  82. package/dist/browser/intl/Format.js +31 -8
  83. package/dist/browser/intl/Format.js.map +1 -1
  84. package/dist/browser/layout/AppWorkspace.js +7 -1
  85. package/dist/browser/layout/AppWorkspace.js.map +1 -1
  86. package/dist/browser/surfaces/BudgetList.js +281 -0
  87. package/dist/browser/surfaces/BudgetList.js.map +1 -0
  88. package/dist/browser/surfaces/ProgressBar.js +134 -21
  89. package/dist/browser/surfaces/ProgressBar.js.map +1 -1
  90. package/dist/browser/surfaces/StatCell.js +320 -144
  91. package/dist/browser/surfaces/StatCell.js.map +1 -1
  92. package/dist/browser/surfaces/StatGrid.js +75 -57
  93. package/dist/browser/surfaces/StatGrid.js.map +1 -1
  94. package/dist/browser/surfaces/budget-messages.js +64 -0
  95. package/dist/browser/surfaces/budget-messages.js.map +1 -0
  96. package/dist/browser/surfaces/delta-badge.js +65 -0
  97. package/dist/browser/surfaces/delta-badge.js.map +1 -0
  98. package/dist/browser/surfaces/index.js +2 -1
  99. package/dist/browser/surfaces/index.js.map +1 -1
  100. package/dist/browser/surfaces/person-color.js +2 -2
  101. package/dist/browser/surfaces/person-color.js.map +1 -1
  102. package/dist/browser/surfaces/stat-cell-messages.js +41 -0
  103. package/dist/browser/surfaces/stat-cell-messages.js.map +1 -0
  104. package/dist/browser/widgets/Dashboard.js +137 -0
  105. package/dist/browser/widgets/Dashboard.js.map +1 -0
  106. package/dist/browser/widgets/index.js +1 -0
  107. package/dist/browser/widgets/index.js.map +1 -1
  108. package/dist/ssr/actions/ContextMenu.js +3 -0
  109. package/dist/ssr/actions/ContextMenu.js.map +1 -1
  110. package/dist/ssr/charts/core/area.js +190 -0
  111. package/dist/ssr/charts/core/area.js.map +1 -0
  112. package/dist/ssr/charts/core/calendar.js +186 -0
  113. package/dist/ssr/charts/core/calendar.js.map +1 -0
  114. package/dist/ssr/charts/core/chart-map-data.js +9 -0
  115. package/dist/ssr/charts/core/chart-map-data.js.map +1 -0
  116. package/dist/ssr/charts/core/index.js +12 -0
  117. package/dist/ssr/charts/core/index.js.map +1 -0
  118. package/dist/ssr/charts/core/inspection.js +9 -0
  119. package/dist/ssr/charts/core/inspection.js.map +1 -0
  120. package/dist/ssr/charts/core/registry.js +28 -0
  121. package/dist/ssr/charts/core/registry.js.map +1 -0
  122. package/dist/ssr/charts/core/render.js +103 -0
  123. package/dist/ssr/charts/core/render.js.map +1 -0
  124. package/dist/ssr/charts/core/snapshot.js +65 -0
  125. package/dist/ssr/charts/core/snapshot.js.map +1 -0
  126. package/dist/ssr/charts/core/svg.js +2542 -0
  127. package/dist/ssr/charts/core/svg.js.map +1 -0
  128. package/dist/ssr/charts/core/termination.test-fixture.js +162 -0
  129. package/dist/ssr/charts/core/termination.test-fixture.js.map +1 -0
  130. package/dist/ssr/charts/core/text.js +13 -0
  131. package/dist/ssr/charts/core/text.js.map +1 -0
  132. package/dist/ssr/charts/core/types.js +8 -0
  133. package/dist/ssr/charts/core/types.js.map +1 -0
  134. package/dist/ssr/charts.js +4 -2
  135. package/dist/ssr/charts.js.map +1 -1
  136. package/dist/ssr/content/BalanceSummary.js +75 -0
  137. package/dist/ssr/content/BalanceSummary.js.map +1 -0
  138. package/dist/ssr/content/Chart.js +90 -95
  139. package/dist/ssr/content/Chart.js.map +1 -1
  140. package/dist/ssr/content/ChartExplorer.js +190 -46
  141. package/dist/ssr/content/ChartExplorer.js.map +1 -1
  142. package/dist/ssr/content/ChartSnapshotView.js +5 -1
  143. package/dist/ssr/content/ChartSnapshotView.js.map +1 -1
  144. package/dist/ssr/content/DataTable.js +287 -78
  145. package/dist/ssr/content/DataTable.js.map +1 -1
  146. package/dist/ssr/content/DataTableTools.js +106 -0
  147. package/dist/ssr/content/DataTableTools.js.map +1 -0
  148. package/dist/ssr/content/FlowAmount.js +58 -0
  149. package/dist/ssr/content/FlowAmount.js.map +1 -0
  150. package/dist/ssr/content/balance-summary-messages.js +26 -0
  151. package/dist/ssr/content/balance-summary-messages.js.map +1 -0
  152. package/dist/ssr/content/chart-bar.js +6 -6
  153. package/dist/ssr/content/chart-bar.js.map +1 -1
  154. package/dist/ssr/content/chart-calendar.js +43 -0
  155. package/dist/ssr/content/chart-calendar.js.map +1 -0
  156. package/dist/ssr/content/chart-inspection-core.js +164 -37
  157. package/dist/ssr/content/chart-inspection-core.js.map +1 -1
  158. package/dist/ssr/content/chart-inspection.js.map +1 -1
  159. package/dist/ssr/content/chart-line-gaps.js +2 -2
  160. package/dist/ssr/content/chart-line-gaps.js.map +1 -1
  161. package/dist/ssr/content/chart-map-viewport.js.map +1 -1
  162. package/dist/ssr/content/chart-message-catalog.js +164 -0
  163. package/dist/ssr/content/chart-message-catalog.js.map +1 -0
  164. package/dist/ssr/content/chart-messages.js +2 -138
  165. package/dist/ssr/content/chart-messages.js.map +1 -1
  166. package/dist/ssr/content/chart-snapshot.js +1 -62
  167. package/dist/ssr/content/chart-snapshot.js.map +1 -1
  168. package/dist/ssr/content/chart-state-timeline.js +1 -1
  169. package/dist/ssr/content/chart-state-timeline.js.map +1 -1
  170. package/dist/ssr/content/chart-svg.js +2 -1
  171. package/dist/ssr/content/chart-svg.js.map +1 -1
  172. package/dist/ssr/content/chart-time-axis.js +139 -0
  173. package/dist/ssr/content/chart-time-axis.js.map +1 -0
  174. package/dist/ssr/content/data-table-columns.js +160 -0
  175. package/dist/ssr/content/data-table-columns.js.map +1 -0
  176. package/dist/ssr/content/data-table-messages.js +38 -2
  177. package/dist/ssr/content/data-table-messages.js.map +1 -1
  178. package/dist/ssr/content/flow-amount-messages.js +26 -0
  179. package/dist/ssr/content/flow-amount-messages.js.map +1 -0
  180. package/dist/ssr/content/index.js +4 -0
  181. package/dist/ssr/content/index.js.map +1 -1
  182. package/dist/ssr/inputs/DatePicker.js +5 -4
  183. package/dist/ssr/inputs/DatePicker.js.map +1 -1
  184. package/dist/ssr/inputs/SelectChip.js +26 -9
  185. package/dist/ssr/inputs/SelectChip.js.map +1 -1
  186. package/dist/ssr/inputs/date-picker.js +13 -0
  187. package/dist/ssr/inputs/date-picker.js.map +1 -1
  188. package/dist/ssr/intl/Format.js +22 -2
  189. package/dist/ssr/intl/Format.js.map +1 -1
  190. package/dist/ssr/layout/AppWorkspace.js +7 -1
  191. package/dist/ssr/layout/AppWorkspace.js.map +1 -1
  192. package/dist/ssr/surfaces/BudgetList.js +170 -0
  193. package/dist/ssr/surfaces/BudgetList.js.map +1 -0
  194. package/dist/ssr/surfaces/ProgressBar.js +96 -5
  195. package/dist/ssr/surfaces/ProgressBar.js.map +1 -1
  196. package/dist/ssr/surfaces/StatCell.js +157 -51
  197. package/dist/ssr/surfaces/StatCell.js.map +1 -1
  198. package/dist/ssr/surfaces/StatGrid.js +24 -35
  199. package/dist/ssr/surfaces/StatGrid.js.map +1 -1
  200. package/dist/ssr/surfaces/budget-messages.js +64 -0
  201. package/dist/ssr/surfaces/budget-messages.js.map +1 -0
  202. package/dist/ssr/surfaces/delta-badge.js +41 -0
  203. package/dist/ssr/surfaces/delta-badge.js.map +1 -0
  204. package/dist/ssr/surfaces/index.js +2 -1
  205. package/dist/ssr/surfaces/index.js.map +1 -1
  206. package/dist/ssr/surfaces/person-color.js +2 -2
  207. package/dist/ssr/surfaces/person-color.js.map +1 -1
  208. package/dist/ssr/surfaces/stat-cell-messages.js +41 -0
  209. package/dist/ssr/surfaces/stat-cell-messages.js.map +1 -0
  210. package/dist/ssr/widgets/Dashboard.js +84 -0
  211. package/dist/ssr/widgets/Dashboard.js.map +1 -0
  212. package/dist/ssr/widgets/index.js +1 -0
  213. package/dist/ssr/widgets/index.js.map +1 -1
  214. package/dist/styles.css +1 -1
  215. package/dist/types/charts/core/area.d.ts +62 -0
  216. package/dist/types/charts/core/calendar.d.ts +57 -0
  217. package/dist/types/charts/core/chart-map-data.d.ts +3 -0
  218. package/dist/types/charts/core/index.d.ts +11 -0
  219. package/dist/types/charts/core/inspection.d.ts +16 -0
  220. package/dist/types/charts/core/registry.d.ts +27 -0
  221. package/dist/types/charts/core/render.d.ts +40 -0
  222. package/dist/types/charts/core/snapshot.d.ts +27 -0
  223. package/dist/types/charts/core/svg.d.ts +714 -0
  224. package/dist/types/charts/core/termination.test-fixture.d.ts +1 -0
  225. package/dist/types/charts/core/text.d.ts +5 -0
  226. package/dist/types/charts/core/types.d.ts +31 -0
  227. package/dist/types/charts.d.ts +4 -2
  228. package/dist/types/content/BalanceSummary.d.ts +29 -0
  229. package/dist/types/content/Chart.d.ts +26 -36
  230. package/dist/types/content/ChartExplorer.d.ts +43 -2
  231. package/dist/types/content/ChartSnapshotView.d.ts +1 -0
  232. package/dist/types/content/DataTable.d.ts +28 -0
  233. package/dist/types/content/DataTableTools.d.ts +44 -0
  234. package/dist/types/content/FlowAmount.d.ts +28 -0
  235. package/dist/types/content/balance-summary-messages.d.ts +11 -0
  236. package/dist/types/content/chart-bar.d.ts +1 -1
  237. package/dist/types/content/chart-calendar.d.ts +4 -0
  238. package/dist/types/content/chart-inspection-core.d.ts +21 -16
  239. package/dist/types/content/chart-inspection.d.ts +5 -1
  240. package/dist/types/content/chart-map-viewport.d.ts +1 -1
  241. package/dist/types/content/chart-message-catalog.d.ts +84 -0
  242. package/dist/types/content/chart-messages.d.ts +2 -33
  243. package/dist/types/content/chart-snapshot.d.ts +1 -26
  244. package/dist/types/content/chart-svg.d.ts +1 -1
  245. package/dist/types/content/chart-time-axis.d.ts +26 -0
  246. package/dist/types/content/data-table-columns.d.ts +72 -0
  247. package/dist/types/content/data-table-messages.d.ts +18 -0
  248. package/dist/types/content/flow-amount-messages.d.ts +11 -0
  249. package/dist/types/content/index.d.ts +10 -2
  250. package/dist/types/inputs/SelectChip.d.ts +2 -0
  251. package/dist/types/inputs/date-picker.d.ts +6 -0
  252. package/dist/types/intl/Format.d.ts +5 -0
  253. package/dist/types/layout/AppWorkspace.d.ts +5 -0
  254. package/dist/types/surfaces/BudgetList.d.ts +42 -0
  255. package/dist/types/surfaces/ProgressBar.d.ts +38 -2
  256. package/dist/types/surfaces/StatCell.d.ts +35 -2
  257. package/dist/types/surfaces/StatGrid.d.ts +3 -1
  258. package/dist/types/surfaces/budget-messages.d.ts +30 -0
  259. package/dist/types/surfaces/delta-badge.d.ts +10 -0
  260. package/dist/types/surfaces/index.d.ts +4 -3
  261. package/dist/types/surfaces/person-color.d.ts +2 -2
  262. package/dist/types/surfaces/stat-cell-messages.d.ts +19 -0
  263. package/dist/types/widgets/Dashboard.d.ts +42 -0
  264. package/dist/types/widgets/index.d.ts +1 -0
  265. package/package.json +7 -1
@@ -1,8 +1,9 @@
1
1
  import { template as _$template } from "solid-js/web";
2
2
  import { delegateEvents as _$delegateEvents } from "solid-js/web";
3
- import { setStyleProperty as _$setStyleProperty } from "solid-js/web";
4
- import { use as _$use } from "solid-js/web";
5
3
  import { memo as _$memo } from "solid-js/web";
4
+ import { setProperty as _$setProperty } from "solid-js/web";
5
+ import { use as _$use } from "solid-js/web";
6
+ import { setStyleProperty as _$setStyleProperty } from "solid-js/web";
6
7
  import { runHydrationEvents as _$runHydrationEvents } from "solid-js/web";
7
8
  import { setAttribute as _$setAttribute } from "solid-js/web";
8
9
  import { className as _$className } from "solid-js/web";
@@ -17,22 +18,37 @@ var _tmpl$ = /*#__PURE__*/_$template(`<span class=k2b-data-table__header-title>`
17
18
  _tmpl$4 = /*#__PURE__*/_$template(`<a class="k2b-data-table__header-content k2b-data-table__sort">`),
18
19
  _tmpl$5 = /*#__PURE__*/_$template(`<button type=button class="k2b-data-table__header-content k2b-data-table__sort">`),
19
20
  _tmpl$6 = /*#__PURE__*/_$template(`<div class=k2b-data-table__header-content>`),
20
- _tmpl$7 = /*#__PURE__*/_$template(`<caption class=k2b-sr-only>`),
21
- _tmpl$8 = /*#__PURE__*/_$template(`<tr aria-hidden=true><td class=k2b-data-table__fill>`),
22
- _tmpl$9 = /*#__PURE__*/_$template(`<div class=k2b-data-table__sentinel aria-hidden=true>`),
23
- _tmpl$0 = /*#__PURE__*/_$template(`<div role=region tabindex=0><table><!$><!/><thead class=k2b-data-table__head><tr class=k2b-data-table__head-row></tr></thead><tbody></tbody><!$><!/></table><!$><!/>`),
24
- _tmpl$1 = /*#__PURE__*/_$template(`<th scope=col>`),
25
- _tmpl$10 = /*#__PURE__*/_$template(`<tr><td class=k2b-data-table__empty>`),
26
- _tmpl$11 = /*#__PURE__*/_$template(`<tr class=k2b-data-table__row data-loading=true aria-hidden=true>`),
27
- _tmpl$12 = /*#__PURE__*/_$template(`<td><span class=k2b-data-table__skeleton>`),
28
- _tmpl$13 = /*#__PURE__*/_$template(`<tr>`),
29
- _tmpl$14 = /*#__PURE__*/_$template(`<td><div>`),
30
- _tmpl$15 = /*#__PURE__*/_$template(`<tfoot class=k2b-data-table__foot data-sticky=true><tr class=k2b-data-table__foot-row>`),
31
- _tmpl$16 = /*#__PURE__*/_$template(`<td class=k2b-data-table__footer-cell>`),
32
- _tmpl$17 = /*#__PURE__*/_$template(`<div class=k2b-data-table__scrollbar aria-hidden=true><span>`),
33
- _tmpl$18 = /*#__PURE__*/_$template(`<div>`),
34
- _tmpl$19 = /*#__PURE__*/_$template(`<span>`),
35
- _tmpl$20 = /*#__PURE__*/_$template(`<footer>`);
21
+ _tmpl$7 = /*#__PURE__*/_$template(`<span class=k2b-data-table__bar><!$><!/><span class=k2b-data-table__bar-track aria-hidden=true><span>`),
22
+ _tmpl$8 = /*#__PURE__*/_$template(`<td class=k2b-data-table__details-toggle><button type=button class=k2b-data-table__details-button><i aria-hidden=true>`),
23
+ _tmpl$9 = /*#__PURE__*/_$template(`<tr><!$><!/><!$><!/>`),
24
+ _tmpl$0 = /*#__PURE__*/_$template(`<tr class=k2b-data-table__details><td><dl>`),
25
+ _tmpl$1 = /*#__PURE__*/_$template(`<td><div>`),
26
+ _tmpl$10 = /*#__PURE__*/_$template(`<div><dt></dt><dd>`),
27
+ _tmpl$11 = /*#__PURE__*/_$template(`<caption class=k2b-sr-only>`),
28
+ _tmpl$12 = /*#__PURE__*/_$template(`<th scope=col class=k2b-data-table__details-toggle><span class=k2b-sr-only>`),
29
+ _tmpl$13 = /*#__PURE__*/_$template(`<div class=k2b-data-table__sentinel aria-hidden=true>`),
30
+ _tmpl$14 = /*#__PURE__*/_$template(`<div role=region tabindex=0><table><!$><!/><thead class=k2b-data-table__head><tr class=k2b-data-table__head-row><!$><!/><!$><!/></tr></thead><!$><!/><!$><!/></table><!$><!/>`),
31
+ _tmpl$15 = /*#__PURE__*/_$template(`<th scope=col>`),
32
+ _tmpl$16 = /*#__PURE__*/_$template(`<tr aria-hidden=true><td class=k2b-data-table__fill>`),
33
+ _tmpl$17 = /*#__PURE__*/_$template(`<tbody>`),
34
+ _tmpl$18 = /*#__PURE__*/_$template(`<tr>`),
35
+ _tmpl$19 = /*#__PURE__*/_$template(`<td class=k2b-data-table__empty>`),
36
+ _tmpl$20 = /*#__PURE__*/_$template(`<button type=button class=k2b-data-table__clear-query>`),
37
+ _tmpl$21 = /*#__PURE__*/_$template(`<td class=k2b-data-table__no-match><!$><!/> <!$><!/>`),
38
+ _tmpl$22 = /*#__PURE__*/_$template(`<td class=k2b-data-table__details-toggle>`),
39
+ _tmpl$23 = /*#__PURE__*/_$template(`<tr class=k2b-data-table__row data-loading=true aria-hidden=true><!$><!/><!$><!/>`),
40
+ _tmpl$24 = /*#__PURE__*/_$template(`<td><span class=k2b-data-table__skeleton>`),
41
+ _tmpl$25 = /*#__PURE__*/_$template(`<tbody><!$><!/><!$><!/>`),
42
+ _tmpl$26 = /*#__PURE__*/_$template(`<tbody aria-hidden=true><tr><td class=k2b-data-table__fill>`),
43
+ _tmpl$27 = /*#__PURE__*/_$template(`<tbody class=k2b-data-table__group><tr class=k2b-data-table__group-row><th scope=rowgroup><!$><!/><span class=k2b-data-table__group-count><span aria-hidden=true></span><span class=k2b-sr-only>, <!$><!/></span></span></th></tr><!$><!/>`),
44
+ _tmpl$28 = /*#__PURE__*/_$template(`<td class="k2b-data-table__footer-cell k2b-data-table__details-toggle">`),
45
+ _tmpl$29 = /*#__PURE__*/_$template(`<tr class=k2b-data-table__details data-footer=true><td><dl>`),
46
+ _tmpl$30 = /*#__PURE__*/_$template(`<tfoot class=k2b-data-table__foot data-sticky=true><tr class=k2b-data-table__foot-row><!$><!/><!$><!/></tr><!$><!/>`),
47
+ _tmpl$31 = /*#__PURE__*/_$template(`<td class=k2b-data-table__footer-cell>`),
48
+ _tmpl$32 = /*#__PURE__*/_$template(`<div class=k2b-data-table__scrollbar aria-hidden=true><span>`),
49
+ _tmpl$33 = /*#__PURE__*/_$template(`<div>`),
50
+ _tmpl$34 = /*#__PURE__*/_$template(`<span>`),
51
+ _tmpl$35 = /*#__PURE__*/_$template(`<footer>`);
36
52
  import { createContext, createEffect, createMemo, createSignal, createUniqueId, For, Match, on, onCleanup, onMount, Show, Switch, useContext } from "solid-js";
37
53
  import { Dynamic } from "solid-js/web";
38
54
  import { announce } from "../feedback/announce";
@@ -40,15 +56,20 @@ import { suppressTextSelection } from "../internal/text-selection";
40
56
  import { useLocale } from "../intl/locale";
41
57
  import { useUiMessages } from "../intl/messages";
42
58
  import { PanelHeader } from "../layout/PanelHeader";
59
+ import { DeltaBadge } from "../surfaces/delta-badge";
43
60
  import { Paper } from "../surfaces/Paper";
44
61
  import Placeholder from "../surfaces/Placeholder";
62
+ import { StatusBadge } from "../surfaces/StatusBadge";
63
+ import { formatTableNumber, groupRows, isEmptyCell, isNumericColumnType, readTableValue, tableCellText } from "./data-table-columns";
45
64
  import { useDataTableMessages } from "./data-table-messages";
65
+ import { FlowAmount } from "./FlowAmount";
46
66
  const DataTablePanelContext = createContext();
47
- const defaultRender = (value, locale, messages) => {
67
+ const defaultRender = (value, locale, numbers, messages) => {
48
68
  if (value === null || value === undefined || value === "") return "—";
49
69
  if (value instanceof Date) return value.toLocaleString(locale);
50
70
  if (typeof value === "boolean") return value ? messages.yes : messages.no;
51
- if (typeof value === "number" || typeof value === "bigint") return String(value);
71
+ // Numbers read in the reader's language: grouping and decimal mark follow the locale, at most three decimals.
72
+ if (typeof value === "number" || typeof value === "bigint") return numbers.format(Object.is(value, -0) ? 0 : value);
52
73
  if (typeof value === "string") return value;
53
74
  return JSON.stringify(value);
54
75
  };
@@ -197,17 +218,14 @@ function DataTableRoot(props) {
197
218
  suppressTextSelection(event.pointerId);
198
219
  scrollFromPointer(event, axis);
199
220
  };
200
- const valueOf = (row, col) => {
201
- if (typeof col.value === "function") return col.value(row);
202
- if (col.value) return row[col.value];
203
- return undefined;
204
- };
221
+ const valueOf = (row, col) => readTableValue(row, col);
205
222
  const columnPresentation = createMemo(() => {
206
223
  const presentation = new Map();
207
224
  for (const col of props.columns) {
208
- let numeric = false;
209
- let date = false;
210
- if (col.align === undefined || col.nowrap === undefined) {
225
+ // A typed column says what it holds; only an untyped one is read from its first value.
226
+ let numeric = isNumericColumnType(col.type);
227
+ let date = col.type === "date";
228
+ if (!col.type && (col.align === undefined || col.nowrap === undefined)) {
211
229
  for (const row of props.rows) {
212
230
  const value = valueOf(row, col);
213
231
  if (value === null || value === undefined || value === "") continue;
@@ -230,6 +248,44 @@ function DataTableRoot(props) {
230
248
  return align === "left" ? undefined : align;
231
249
  };
232
250
  const nowrapAttr = col => columnPresentation().get(col.id)?.nowrap ? "true" : undefined;
251
+ /** Text columns wrap inside their cell; every other value keeps one line. */
252
+ const wrapAttr = col => col.type === "text" && col.nowrap !== true ? "true" : undefined;
253
+ const priorityAttr = col => col.priority === 2 || col.priority === 3 ? String(col.priority) : undefined;
254
+ /** The lowest priority present: 3 shows the details toggle below 560 px, 2 below 420 px. */
255
+ const detailsPriority = createMemo(() => {
256
+ const priorities = props.columns.map(col => col.priority ?? 1);
257
+ return priorities.includes(3) ? "3" : priorities.includes(2) ? "2" : undefined;
258
+ });
259
+ const hiddenColumns = () => props.columns.filter(col => priorityAttr(col));
260
+ const columnCount = () => props.columns.length + (detailsPriority() ? 1 : 0);
261
+ const [openDetails, setOpenDetails] = createSignal(new Set());
262
+ const toggleDetails = row => setOpenDetails(open => {
263
+ const next = new Set(open);
264
+ if (!next.delete(row)) next.add(row);
265
+ return next;
266
+ });
267
+ /** A bar column fills its track at `max`, or else at its largest value. */
268
+ const barMax = createMemo(() => {
269
+ const max = new Map();
270
+ for (const col of props.columns) {
271
+ if (col.type !== "bar") continue;
272
+ if (col.max !== undefined && col.max > 0) {
273
+ max.set(col.id, col.max);
274
+ continue;
275
+ }
276
+ let largest = 0;
277
+ for (const row of props.rows) {
278
+ const value = Number(valueOf(row, col));
279
+ if (Number.isFinite(value)) largest = Math.max(largest, Math.abs(value));
280
+ }
281
+ max.set(col.id, largest);
282
+ }
283
+ return max;
284
+ });
285
+ const groups = createMemo(() => {
286
+ const col = props.groupBy ? props.columns.find(entry => entry.id === props.groupBy) : undefined;
287
+ return col ? groupRows(props.rows, col, locale()) : null;
288
+ });
233
289
  const sortKeyOf = col => col.sortable === true ? col.id : typeof col.sortable === "string" ? col.sortable : null;
234
290
 
235
291
  /**
@@ -332,8 +388,60 @@ function DataTableRoot(props) {
332
388
  }
333
389
  });
334
390
  };
335
- const renderValueDefault = value => defaultRender(value, locale(), messages());
336
- const renderCellDefault = (row, col) => renderValueDefault(valueOf(row, col));
391
+ const numberFormat = createMemo(() => new Intl.NumberFormat(locale()));
392
+ const renderValueDefault = value => defaultRender(value, locale(), numberFormat(), messages());
393
+ /** A typed column shows its value the way its type reads; an untyped one falls back to the plain rendering. */
394
+ const renderTypedValue = (col, value) => {
395
+ if (!col.type || isEmptyCell(value)) return renderValueDefault(value);
396
+ if (col.type === "status") {
397
+ const state = col.states?.[String(value)];
398
+ return state ? _$createComponent(StatusBadge, {
399
+ get tone() {
400
+ return state.tone;
401
+ },
402
+ get label() {
403
+ return state.label;
404
+ },
405
+ variant: "dot"
406
+ }) : String(value);
407
+ }
408
+ if (col.type === "flow" && col.format?.currency && Number.isFinite(Number(value))) return _$createComponent(FlowAmount, {
409
+ get value() {
410
+ return Number(value);
411
+ },
412
+ get currency() {
413
+ return col.format.currency;
414
+ },
415
+ get decimals() {
416
+ return col.format.decimals;
417
+ }
418
+ });
419
+ if (col.type === "delta" && Number.isFinite(Number(value))) return _$createComponent(DeltaBadge, {
420
+ get delta() {
421
+ return {
422
+ value: Number(value),
423
+ unit: col.delta?.unit,
424
+ better: col.delta?.better
425
+ };
426
+ }
427
+ });
428
+ if (col.type === "bar") {
429
+ const number = Number(value);
430
+ const max = barMax().get(col.id) ?? 0;
431
+ if (!Number.isFinite(number)) return String(value);
432
+ return (() => {
433
+ var _el$0 = _$getNextElement(_tmpl$7),
434
+ _el$11 = _el$0.firstChild,
435
+ [_el$12, _co$2] = _$getNextMarker(_el$11.nextSibling),
436
+ _el$1 = _el$12.nextSibling,
437
+ _el$10 = _el$1.firstChild;
438
+ _$insert(_el$0, () => formatTableNumber(number, col, locale()), _el$12, _co$2);
439
+ _$effect(_$p => _$setStyleProperty(_el$10, "width", `${max > 0 ? Math.min(100, Math.abs(number) / max * 100) : 0}%`));
440
+ return _el$0;
441
+ })();
442
+ }
443
+ return tableCellText(value, col, locale());
444
+ };
337
445
  const onRowKeyDown = (event, row) => {
338
446
  if (!isInteractive()) return;
339
447
  if (isNestedRowControl(event)) return;
@@ -357,6 +465,179 @@ function DataTableRoot(props) {
357
465
  if (typeof props.rowClass === "function") return props.rowClass(row) ?? "";
358
466
  return props.rowClass ?? "";
359
467
  };
468
+
469
+ // A heading given as a JSX node lives in the head; each details line needs its own copy, so it takes text or a fresh call.
470
+ const detailLabel = col => typeof col.header === "function" ? col.header({
471
+ col
472
+ }) : typeof col.header === "string" || typeof col.header === "number" ? col.header : col.id;
473
+ const cellContent = (row, col, value) => props.renderCell ? props.renderCell({
474
+ row,
475
+ col,
476
+ value,
477
+ render: v => renderTypedValue(col, v)
478
+ }) : renderTypedValue(col, value);
479
+
480
+ /** `last` marks the final row of its body when details rows follow every row, so the frame keeps the only edge. */
481
+ const renderRow = (row, last) => {
482
+ const id = () => rowId(row);
483
+ const isSelected = () => props.selection ? props.selection.selected().has(id() ?? "") : props.selectedRowId && id() === props.selectedRowId;
484
+ const detailsId = `k2b-data-table-${createUniqueId()}-details`;
485
+ const open = () => openDetails().has(row);
486
+ return [(() => {
487
+ var _el$13 = _$getNextElement(_tmpl$9),
488
+ _el$17 = _el$13.firstChild,
489
+ [_el$18, _co$3] = _$getNextMarker(_el$17.nextSibling),
490
+ _el$19 = _el$18.nextSibling,
491
+ [_el$20, _co$4] = _$getNextMarker(_el$19.nextSibling);
492
+ _el$13.$$keydown = e => onRowKeyDown(e, row);
493
+ _el$13.$$contextmenu = () => props.onRowContextMenu?.(row);
494
+ _el$13.$$dblclick = event => onRowDoubleClick(event, row);
495
+ _el$13.$$click = event => onRowClick(event, row);
496
+ _el$13.addEventListener("focus", () => {
497
+ const key = id();
498
+ if (key !== undefined) props.selection?.markFocused(key);
499
+ });
500
+ _$use(element => {
501
+ const key = id();
502
+ if (key !== undefined) props.selection?.register(key, element);
503
+ }, _el$13);
504
+ _$insert(_el$13, _$createComponent(For, {
505
+ get each() {
506
+ return props.columns;
507
+ },
508
+ children: (col, index) => {
509
+ const value = () => valueOf(row, col);
510
+ return (() => {
511
+ var _el$24 = _$getNextElement(_tmpl$1),
512
+ _el$25 = _el$24.firstChild;
513
+ _el$24.addEventListener("mouseenter", () => setHoveredColumnIfEnabled(index()));
514
+ _$insert(_el$25, () => cellContent(row, col, value()));
515
+ _$effect(_p$ => {
516
+ var _v$16 = `${col.cellClass ?? ""} ${col.class ?? ""}`,
517
+ _v$17 = nowrapAttr(col),
518
+ _v$18 = wrapAttr(col),
519
+ _v$19 = alignAttr(col),
520
+ _v$20 = priorityAttr(col),
521
+ _v$21 = props.verticalAlign && props.verticalAlign !== "middle" ? props.verticalAlign : undefined,
522
+ _v$22 = columnHighlighted(index()),
523
+ _v$23 = cellContentClass();
524
+ _v$16 !== _p$.e && _$className(_el$24, _p$.e = _v$16);
525
+ _v$17 !== _p$.t && _$setAttribute(_el$24, "data-nowrap", _p$.t = _v$17);
526
+ _v$18 !== _p$.a && _$setAttribute(_el$24, "data-wrap", _p$.a = _v$18);
527
+ _v$19 !== _p$.o && _$setAttribute(_el$24, "data-align", _p$.o = _v$19);
528
+ _v$20 !== _p$.i && _$setAttribute(_el$24, "data-priority", _p$.i = _v$20);
529
+ _v$21 !== _p$.n && _$setAttribute(_el$24, "data-valign", _p$.n = _v$21);
530
+ _v$22 !== _p$.s && _$setAttribute(_el$24, "data-highlighted", _p$.s = _v$22);
531
+ _v$23 !== _p$.h && _$className(_el$25, _p$.h = _v$23);
532
+ return _p$;
533
+ }, {
534
+ e: undefined,
535
+ t: undefined,
536
+ a: undefined,
537
+ o: undefined,
538
+ i: undefined,
539
+ n: undefined,
540
+ s: undefined,
541
+ h: undefined
542
+ });
543
+ return _el$24;
544
+ })();
545
+ }
546
+ }), _el$18, _co$3);
547
+ _$insert(_el$13, _$createComponent(Show, {
548
+ get when() {
549
+ return detailsPriority();
550
+ },
551
+ get children() {
552
+ var _el$14 = _$getNextElement(_tmpl$8),
553
+ _el$15 = _el$14.firstChild,
554
+ _el$16 = _el$15.firstChild;
555
+ _el$15.$$click = () => toggleDetails(row);
556
+ _$setAttribute(_el$15, "aria-controls", detailsId);
557
+ _$effect(_p$ => {
558
+ var _v$5 = open(),
559
+ _v$6 = dataTableMessages().showDetails,
560
+ _v$7 = `ti ${open() ? "ti-chevron-up" : "ti-chevron-down"}`;
561
+ _v$5 !== _p$.e && _$setAttribute(_el$15, "aria-expanded", _p$.e = _v$5);
562
+ _v$6 !== _p$.t && _$setAttribute(_el$15, "aria-label", _p$.t = _v$6);
563
+ _v$7 !== _p$.a && _$className(_el$16, _p$.a = _v$7);
564
+ return _p$;
565
+ }, {
566
+ e: undefined,
567
+ t: undefined,
568
+ a: undefined
569
+ });
570
+ _$runHydrationEvents();
571
+ return _el$14;
572
+ }
573
+ }), _el$20, _co$4);
574
+ _$effect(_p$ => {
575
+ var _v$8 = `k2b-data-table__row ${rowClass(row)}`,
576
+ _v$9 = shouldHoverRows() ? "true" : undefined,
577
+ _v$0 = shouldHoverRows() && isInteractive() ? "true" : undefined,
578
+ _v$1 = isSelected() ? "true" : undefined,
579
+ _v$10 = open() ? "true" : undefined,
580
+ _v$11 = detailsPriority() && last() ? "true" : undefined,
581
+ _v$12 = props.selection ? !!isSelected() : undefined,
582
+ _v$13 = props.selection ? props.selection.focused() === id() ? 0 : -1 : isInteractive() ? 0 : undefined;
583
+ _v$8 !== _p$.e && _$className(_el$13, _p$.e = _v$8);
584
+ _v$9 !== _p$.t && _$setAttribute(_el$13, "data-hover", _p$.t = _v$9);
585
+ _v$0 !== _p$.a && _$setAttribute(_el$13, "data-clickable", _p$.a = _v$0);
586
+ _v$1 !== _p$.o && _$setAttribute(_el$13, "data-selected", _p$.o = _v$1);
587
+ _v$10 !== _p$.i && _$setAttribute(_el$13, "data-details-open", _p$.i = _v$10);
588
+ _v$11 !== _p$.n && _$setAttribute(_el$13, "data-last", _p$.n = _v$11);
589
+ _v$12 !== _p$.s && _$setAttribute(_el$13, "aria-selected", _p$.s = _v$12);
590
+ _v$13 !== _p$.h && _$setAttribute(_el$13, "tabindex", _p$.h = _v$13);
591
+ return _p$;
592
+ }, {
593
+ e: undefined,
594
+ t: undefined,
595
+ a: undefined,
596
+ o: undefined,
597
+ i: undefined,
598
+ n: undefined,
599
+ s: undefined,
600
+ h: undefined
601
+ });
602
+ _$runHydrationEvents();
603
+ return _el$13;
604
+ })(), _$createComponent(Show, {
605
+ get when() {
606
+ return detailsPriority();
607
+ },
608
+ get children() {
609
+ var _el$21 = _$getNextElement(_tmpl$0),
610
+ _el$22 = _el$21.firstChild,
611
+ _el$23 = _el$22.firstChild;
612
+ _$setAttribute(_el$21, "id", detailsId);
613
+ _$insert(_el$23, _$createComponent(For, {
614
+ get each() {
615
+ return hiddenColumns();
616
+ },
617
+ children: col => (() => {
618
+ var _el$26 = _$getNextElement(_tmpl$10),
619
+ _el$27 = _el$26.firstChild,
620
+ _el$28 = _el$27.nextSibling;
621
+ _$insert(_el$27, () => detailLabel(col));
622
+ _$insert(_el$28, () => cellContent(row, col, valueOf(row, col)));
623
+ _$effect(() => _$setAttribute(_el$26, "data-priority", priorityAttr(col)));
624
+ return _el$26;
625
+ })()
626
+ }));
627
+ _$effect(_p$ => {
628
+ var _v$14 = !open(),
629
+ _v$15 = columnCount();
630
+ _v$14 !== _p$.e && _$setProperty(_el$21, "hidden", _p$.e = _v$14);
631
+ _v$15 !== _p$.t && _$setAttribute(_el$22, "colspan", _p$.t = _v$15);
632
+ return _p$;
633
+ }, {
634
+ e: undefined,
635
+ t: undefined
636
+ });
637
+ return _el$21;
638
+ }
639
+ })];
640
+ };
360
641
  onMount(() => {
361
642
  if (typeof IntersectionObserver === "undefined" || !loadMoreRef) return;
362
643
  // The viewport root notices the end whichever element scrolls; `isNearBottom` decides.
@@ -424,6 +705,9 @@ function DataTableRoot(props) {
424
705
  get ["data-has-footer"]() {
425
706
  return props.footer ? "true" : undefined;
426
707
  },
708
+ get ["data-priorities"]() {
709
+ return detailsPriority();
710
+ },
427
711
  get ["data-overflow-x"]() {
428
712
  return scrollbars().x.overflow ? "true" : undefined;
429
713
  },
@@ -439,40 +723,45 @@ function DataTableRoot(props) {
439
723
  onMouseLeave: () => setHoveredColumn(null),
440
724
  get children() {
441
725
  return [(() => {
442
- var _el$0 = _$getNextElement(_tmpl$0),
443
- _el$1 = _el$0.firstChild,
444
- _el$16 = _el$1.firstChild,
445
- [_el$17, _co$2] = _$getNextMarker(_el$16.nextSibling),
446
- _el$11 = _el$17.nextSibling,
447
- _el$12 = _el$11.firstChild,
448
- _el$13 = _el$11.nextSibling,
449
- _el$18 = _el$13.nextSibling,
450
- [_el$19, _co$3] = _$getNextMarker(_el$18.nextSibling),
451
- _el$21 = _el$1.nextSibling,
452
- [_el$22, _co$4] = _$getNextMarker(_el$21.nextSibling);
453
- _el$0.addEventListener("scroll", onScroll);
726
+ var _el$29 = _$getNextElement(_tmpl$14),
727
+ _el$30 = _el$29.firstChild,
728
+ _el$40 = _el$30.firstChild,
729
+ [_el$41, _co$7] = _$getNextMarker(_el$40.nextSibling),
730
+ _el$32 = _el$41.nextSibling,
731
+ _el$33 = _el$32.firstChild,
732
+ _el$36 = _el$33.firstChild,
733
+ [_el$37, _co$5] = _$getNextMarker(_el$36.nextSibling),
734
+ _el$38 = _el$37.nextSibling,
735
+ [_el$39, _co$6] = _$getNextMarker(_el$38.nextSibling),
736
+ _el$42 = _el$32.nextSibling,
737
+ [_el$43, _co$8] = _$getNextMarker(_el$42.nextSibling),
738
+ _el$44 = _el$43.nextSibling,
739
+ [_el$45, _co$9] = _$getNextMarker(_el$44.nextSibling),
740
+ _el$47 = _el$30.nextSibling,
741
+ [_el$48, _co$0] = _$getNextMarker(_el$47.nextSibling);
742
+ _el$29.addEventListener("scroll", onScroll);
454
743
  var _ref$ = scrollRef;
455
- typeof _ref$ === "function" ? _$use(_ref$, _el$0) : scrollRef = _el$0;
744
+ typeof _ref$ === "function" ? _$use(_ref$, _el$29) : scrollRef = _el$29;
456
745
  var _ref$2 = tableRef;
457
- typeof _ref$2 === "function" ? _$use(_ref$2, _el$1) : tableRef = _el$1;
458
- _$insert(_el$1, _$createComponent(Show, {
746
+ typeof _ref$2 === "function" ? _$use(_ref$2, _el$30) : tableRef = _el$30;
747
+ _$insert(_el$30, _$createComponent(Show, {
459
748
  get when() {
460
749
  return props.loading;
461
750
  },
462
751
  get children() {
463
- var _el$10 = _$getNextElement(_tmpl$7);
464
- _$insert(_el$10, () => dataTableMessages().loadingRows);
465
- return _el$10;
752
+ var _el$31 = _$getNextElement(_tmpl$11);
753
+ _$insert(_el$31, () => dataTableMessages().loadingRows);
754
+ return _el$31;
466
755
  }
467
- }), _el$17, _co$2);
468
- _$insert(_el$12, _$createComponent(For, {
756
+ }), _el$41, _co$7);
757
+ _$insert(_el$33, _$createComponent(For, {
469
758
  get each() {
470
759
  return props.columns;
471
760
  },
472
761
  children: (col, index) => (() => {
473
- var _el$23 = _$getNextElement(_tmpl$1);
474
- _el$23.addEventListener("mouseenter", () => setHoveredColumnIfEnabled(index()));
475
- _$insert(_el$23, (() => {
762
+ var _el$49 = _$getNextElement(_tmpl$15);
763
+ _el$49.addEventListener("mouseenter", () => setHoveredColumnIfEnabled(index()));
764
+ _$insert(_el$49, (() => {
476
765
  var _c$ = _$memo(() => !!props.renderHeader);
477
766
  return () => _c$() ? props.renderHeader({
478
767
  col,
@@ -480,268 +769,362 @@ function DataTableRoot(props) {
480
769
  }) : renderHeaderDefault(col);
481
770
  })());
482
771
  _$effect(_p$ => {
483
- var _v$14 = `${col.headerClass ?? ""} ${col.class ?? ""}`,
484
- _v$15 = alignAttr(col),
485
- _v$16 = columnHighlighted(index()),
486
- _v$17 = ariaSortFor(col);
487
- _v$14 !== _p$.e && _$className(_el$23, _p$.e = _v$14);
488
- _v$15 !== _p$.t && _$setAttribute(_el$23, "data-align", _p$.t = _v$15);
489
- _v$16 !== _p$.a && _$setAttribute(_el$23, "data-highlighted", _p$.a = _v$16);
490
- _v$17 !== _p$.o && _$setAttribute(_el$23, "aria-sort", _p$.o = _v$17);
772
+ var _v$35 = `${col.headerClass ?? ""} ${col.class ?? ""}`,
773
+ _v$36 = alignAttr(col),
774
+ _v$37 = priorityAttr(col),
775
+ _v$38 = columnHighlighted(index()),
776
+ _v$39 = ariaSortFor(col);
777
+ _v$35 !== _p$.e && _$className(_el$49, _p$.e = _v$35);
778
+ _v$36 !== _p$.t && _$setAttribute(_el$49, "data-align", _p$.t = _v$36);
779
+ _v$37 !== _p$.a && _$setAttribute(_el$49, "data-priority", _p$.a = _v$37);
780
+ _v$38 !== _p$.o && _$setAttribute(_el$49, "data-highlighted", _p$.o = _v$38);
781
+ _v$39 !== _p$.i && _$setAttribute(_el$49, "aria-sort", _p$.i = _v$39);
491
782
  return _p$;
492
783
  }, {
493
784
  e: undefined,
494
785
  t: undefined,
495
786
  a: undefined,
496
- o: undefined
787
+ o: undefined,
788
+ i: undefined
497
789
  });
498
- return _el$23;
790
+ return _el$49;
499
791
  })()
500
- }));
501
- _$insert(_el$13, _$createComponent(Show, {
792
+ }), _el$37, _co$5);
793
+ _$insert(_el$33, _$createComponent(Show, {
794
+ get when() {
795
+ return detailsPriority();
796
+ },
797
+ get children() {
798
+ var _el$34 = _$getNextElement(_tmpl$12),
799
+ _el$35 = _el$34.firstChild;
800
+ _$insert(_el$35, () => dataTableMessages().details);
801
+ return _el$34;
802
+ }
803
+ }), _el$39, _co$6);
804
+ _$insert(_el$30, _$createComponent(Show, {
502
805
  get when() {
503
806
  return props.rows.length > 0;
504
807
  },
505
808
  get fallback() {
506
- return _$createComponent(Show, {
507
- get when() {
508
- return props.loading;
509
- },
510
- get fallback() {
511
- return (() => {
512
- var _el$26 = _$getNextElement(_tmpl$10),
513
- _el$27 = _el$26.firstChild;
514
- _$insert(_el$27, _$createComponent(Placeholder, {
515
- get description() {
516
- return _$memo(() => props.empty ?? dataTableMessages().noRecords);
517
- }
518
- }));
519
- _$effect(() => _$setAttribute(_el$27, "colspan", props.columns.length));
520
- return _el$26;
521
- })();
522
- },
523
- get children() {
524
- return [_$createComponent(For, {
525
- get each() {
526
- return Array.from({
527
- length: loadingRows()
528
- });
529
- },
530
- children: () => (() => {
531
- var _el$28 = _$getNextElement(_tmpl$11);
532
- _$insert(_el$28, _$createComponent(For, {
533
- get each() {
534
- return props.columns;
809
+ return (() => {
810
+ var _el$50 = _$getNextElement(_tmpl$17);
811
+ _$insert(_el$50, _$createComponent(Show, {
812
+ get when() {
813
+ return props.loading;
814
+ },
815
+ get fallback() {
816
+ return (() => {
817
+ var _el$53 = _$getNextElement(_tmpl$18);
818
+ _$insert(_el$53, _$createComponent(Show, {
819
+ get when() {
820
+ return props.query?.trim();
821
+ },
822
+ get fallback() {
823
+ return (() => {
824
+ var _el$54 = _$getNextElement(_tmpl$19);
825
+ _$insert(_el$54, _$createComponent(Placeholder, {
826
+ get description() {
827
+ return _$memo(() => props.empty ?? dataTableMessages().noRecords);
828
+ }
829
+ }));
830
+ _$effect(() => _$setAttribute(_el$54, "colspan", columnCount()));
831
+ return _el$54;
832
+ })();
535
833
  },
536
- children: col => (() => {
537
- var _el$29 = _$getNextElement(_tmpl$12);
538
- _$effect(() => _$setAttribute(_el$29, "data-align", alignAttr(col)));
539
- return _el$29;
834
+ children: query => (() => {
835
+ var _el$55 = _$getNextElement(_tmpl$21),
836
+ _el$58 = _el$55.firstChild,
837
+ [_el$59, _co$1] = _$getNextMarker(_el$58.nextSibling),
838
+ _el$56 = _el$59.nextSibling,
839
+ _el$60 = _el$56.nextSibling,
840
+ [_el$61, _co$10] = _$getNextMarker(_el$60.nextSibling);
841
+ _$insert(_el$55, () => dataTableMessages().noMatch({
842
+ query: query()
843
+ }), _el$59, _co$1);
844
+ _$insert(_el$55, _$createComponent(Show, {
845
+ get when() {
846
+ return props.onClearQuery;
847
+ },
848
+ get children() {
849
+ var _el$57 = _$getNextElement(_tmpl$20);
850
+ _el$57.$$click = () => props.onClearQuery?.();
851
+ _$insert(_el$57, () => dataTableMessages().clearSearch);
852
+ _$runHydrationEvents();
853
+ return _el$57;
854
+ }
855
+ }), _el$61, _co$10);
856
+ _$effect(() => _$setAttribute(_el$55, "colspan", columnCount()));
857
+ return _el$55;
540
858
  })()
541
859
  }));
542
- return _el$28;
543
- })()
544
- }), _$createComponent(Show, {
545
- get when() {
546
- return props.fillHeight;
547
- },
548
- get children() {
549
- var _el$24 = _$getNextElement(_tmpl$8),
550
- _el$25 = _el$24.firstChild;
551
- _$effect(() => _$setAttribute(_el$25, "colspan", props.columns.length));
552
- return _el$24;
553
- }
554
- })];
555
- }
556
- });
860
+ return _el$53;
861
+ })();
862
+ },
863
+ get children() {
864
+ return [_$createComponent(For, {
865
+ get each() {
866
+ return Array.from({
867
+ length: loadingRows()
868
+ });
869
+ },
870
+ children: () => (() => {
871
+ var _el$62 = _$getNextElement(_tmpl$23),
872
+ _el$64 = _el$62.firstChild,
873
+ [_el$65, _co$11] = _$getNextMarker(_el$64.nextSibling),
874
+ _el$66 = _el$65.nextSibling,
875
+ [_el$67, _co$12] = _$getNextMarker(_el$66.nextSibling);
876
+ _$insert(_el$62, _$createComponent(For, {
877
+ get each() {
878
+ return props.columns;
879
+ },
880
+ children: col => (() => {
881
+ var _el$68 = _$getNextElement(_tmpl$24);
882
+ _$effect(_p$ => {
883
+ var _v$40 = alignAttr(col),
884
+ _v$41 = priorityAttr(col);
885
+ _v$40 !== _p$.e && _$setAttribute(_el$68, "data-align", _p$.e = _v$40);
886
+ _v$41 !== _p$.t && _$setAttribute(_el$68, "data-priority", _p$.t = _v$41);
887
+ return _p$;
888
+ }, {
889
+ e: undefined,
890
+ t: undefined
891
+ });
892
+ return _el$68;
893
+ })()
894
+ }), _el$65, _co$11);
895
+ _$insert(_el$62, _$createComponent(Show, {
896
+ get when() {
897
+ return detailsPriority();
898
+ },
899
+ get children() {
900
+ return _$getNextElement(_tmpl$22);
901
+ }
902
+ }), _el$67, _co$12);
903
+ return _el$62;
904
+ })()
905
+ }), _$createComponent(Show, {
906
+ get when() {
907
+ return props.fillHeight;
908
+ },
909
+ get children() {
910
+ var _el$51 = _$getNextElement(_tmpl$16),
911
+ _el$52 = _el$51.firstChild;
912
+ _$effect(() => _$setAttribute(_el$52, "colspan", columnCount()));
913
+ return _el$51;
914
+ }
915
+ })];
916
+ }
917
+ }));
918
+ return _el$50;
919
+ })();
557
920
  },
558
921
  get children() {
559
- return [_$createComponent(For, {
560
- get each() {
561
- return props.rows;
922
+ return _$createComponent(Show, {
923
+ get when() {
924
+ return groups();
562
925
  },
563
- children: row => {
564
- const id = () => rowId(row);
565
- const isSelected = () => props.selection ? props.selection.selected().has(id() ?? "") : props.selectedRowId && id() === props.selectedRowId;
926
+ get fallback() {
566
927
  return (() => {
567
- var _el$30 = _$getNextElement(_tmpl$13);
568
- _el$30.$$keydown = e => onRowKeyDown(e, row);
569
- _el$30.$$contextmenu = () => props.onRowContextMenu?.(row);
570
- _el$30.$$dblclick = event => onRowDoubleClick(event, row);
571
- _el$30.$$click = event => onRowClick(event, row);
572
- _el$30.addEventListener("focus", () => {
573
- const key = id();
574
- if (key !== undefined) props.selection?.markFocused(key);
575
- });
576
- _$use(element => {
577
- const key = id();
578
- if (key !== undefined) props.selection?.register(key, element);
579
- }, _el$30);
580
- _$insert(_el$30, _$createComponent(For, {
928
+ var _el$69 = _$getNextElement(_tmpl$25),
929
+ _el$72 = _el$69.firstChild,
930
+ [_el$73, _co$13] = _$getNextMarker(_el$72.nextSibling),
931
+ _el$74 = _el$73.nextSibling,
932
+ [_el$75, _co$14] = _$getNextMarker(_el$74.nextSibling);
933
+ _$insert(_el$69, _$createComponent(For, {
581
934
  get each() {
582
- return props.columns;
935
+ return props.rows;
936
+ },
937
+ children: (row, index) => renderRow(row, () => index() === props.rows.length - 1)
938
+ }), _el$73, _co$13);
939
+ _$insert(_el$69, _$createComponent(Show, {
940
+ get when() {
941
+ return props.fillHeight;
583
942
  },
584
- children: (col, index) => {
585
- const value = () => valueOf(row, col);
586
- return (() => {
587
- var _el$31 = _$getNextElement(_tmpl$14),
588
- _el$32 = _el$31.firstChild;
589
- _el$31.addEventListener("mouseenter", () => setHoveredColumnIfEnabled(index()));
590
- _$insert(_el$32, (() => {
591
- var _c$2 = _$memo(() => !!props.renderCell);
592
- return () => _c$2() ? props.renderCell({
593
- row,
594
- col,
595
- value: value(),
596
- render: v => renderCellDefault(row, {
597
- ...col,
598
- value: () => v
599
- })
600
- }) : renderValueDefault(value());
601
- })());
602
- _$effect(_p$ => {
603
- var _v$24 = `${col.cellClass ?? ""} ${col.class ?? ""}`,
604
- _v$25 = nowrapAttr(col),
605
- _v$26 = alignAttr(col),
606
- _v$27 = props.verticalAlign && props.verticalAlign !== "middle" ? props.verticalAlign : undefined,
607
- _v$28 = columnHighlighted(index()),
608
- _v$29 = cellContentClass();
609
- _v$24 !== _p$.e && _$className(_el$31, _p$.e = _v$24);
610
- _v$25 !== _p$.t && _$setAttribute(_el$31, "data-nowrap", _p$.t = _v$25);
611
- _v$26 !== _p$.a && _$setAttribute(_el$31, "data-align", _p$.a = _v$26);
612
- _v$27 !== _p$.o && _$setAttribute(_el$31, "data-valign", _p$.o = _v$27);
613
- _v$28 !== _p$.i && _$setAttribute(_el$31, "data-highlighted", _p$.i = _v$28);
614
- _v$29 !== _p$.n && _$className(_el$32, _p$.n = _v$29);
615
- return _p$;
616
- }, {
617
- e: undefined,
618
- t: undefined,
619
- a: undefined,
620
- o: undefined,
621
- i: undefined,
622
- n: undefined
623
- });
624
- return _el$31;
625
- })();
943
+ get children() {
944
+ var _el$70 = _$getNextElement(_tmpl$16),
945
+ _el$71 = _el$70.firstChild;
946
+ _$effect(() => _$setAttribute(_el$71, "colspan", columnCount()));
947
+ return _el$70;
626
948
  }
627
- }));
628
- _$effect(_p$ => {
629
- var _v$18 = `k2b-data-table__row ${rowClass(row)}`,
630
- _v$19 = shouldHoverRows() ? "true" : undefined,
631
- _v$20 = shouldHoverRows() && isInteractive() ? "true" : undefined,
632
- _v$21 = isSelected() ? "true" : undefined,
633
- _v$22 = props.selection ? !!isSelected() : undefined,
634
- _v$23 = props.selection ? props.selection.focused() === id() ? 0 : -1 : isInteractive() ? 0 : undefined;
635
- _v$18 !== _p$.e && _$className(_el$30, _p$.e = _v$18);
636
- _v$19 !== _p$.t && _$setAttribute(_el$30, "data-hover", _p$.t = _v$19);
637
- _v$20 !== _p$.a && _$setAttribute(_el$30, "data-clickable", _p$.a = _v$20);
638
- _v$21 !== _p$.o && _$setAttribute(_el$30, "data-selected", _p$.o = _v$21);
639
- _v$22 !== _p$.i && _$setAttribute(_el$30, "aria-selected", _p$.i = _v$22);
640
- _v$23 !== _p$.n && _$setAttribute(_el$30, "tabindex", _p$.n = _v$23);
641
- return _p$;
642
- }, {
643
- e: undefined,
644
- t: undefined,
645
- a: undefined,
646
- o: undefined,
647
- i: undefined,
648
- n: undefined
649
- });
650
- _$runHydrationEvents();
651
- return _el$30;
949
+ }), _el$75, _co$14);
950
+ return _el$69;
652
951
  })();
653
- }
654
- }), _$createComponent(Show, {
655
- get when() {
656
- return props.fillHeight;
657
952
  },
658
- get children() {
659
- var _el$14 = _$getNextElement(_tmpl$8),
660
- _el$15 = _el$14.firstChild;
661
- _$effect(() => _$setAttribute(_el$15, "colspan", props.columns.length));
662
- return _el$14;
663
- }
664
- })];
953
+ children: list => [_$createComponent(For, {
954
+ get each() {
955
+ return list();
956
+ },
957
+ children: group => (() => {
958
+ var _el$79 = _$getNextElement(_tmpl$27),
959
+ _el$80 = _el$79.firstChild,
960
+ _el$81 = _el$80.firstChild,
961
+ _el$88 = _el$81.firstChild,
962
+ [_el$89, _co$16] = _$getNextMarker(_el$88.nextSibling),
963
+ _el$82 = _el$89.nextSibling,
964
+ _el$83 = _el$82.firstChild,
965
+ _el$84 = _el$83.nextSibling,
966
+ _el$85 = _el$84.firstChild,
967
+ _el$86 = _el$85.nextSibling,
968
+ [_el$87, _co$15] = _$getNextMarker(_el$86.nextSibling),
969
+ _el$90 = _el$80.nextSibling,
970
+ [_el$91, _co$17] = _$getNextMarker(_el$90.nextSibling);
971
+ _$insert(_el$81, () => group.label || "—", _el$89, _co$16);
972
+ _$insert(_el$83, () => group.rows.length);
973
+ _$insert(_el$84, () => dataTableMessages().rowCount({
974
+ count: group.rows.length
975
+ }), _el$87, _co$15);
976
+ _$insert(_el$79, _$createComponent(For, {
977
+ get each() {
978
+ return group.rows;
979
+ },
980
+ children: (row, index) => renderRow(row, () => index() === group.rows.length - 1)
981
+ }), _el$91, _co$17);
982
+ _$effect(() => _$setAttribute(_el$81, "colspan", columnCount()));
983
+ return _el$79;
984
+ })()
985
+ }), _$createComponent(Show, {
986
+ get when() {
987
+ return props.fillHeight;
988
+ },
989
+ get children() {
990
+ var _el$76 = _$getNextElement(_tmpl$26),
991
+ _el$77 = _el$76.firstChild,
992
+ _el$78 = _el$77.firstChild;
993
+ _$effect(() => _$setAttribute(_el$78, "colspan", columnCount()));
994
+ return _el$76;
995
+ }
996
+ })]
997
+ });
665
998
  }
666
- }));
667
- _$insert(_el$1, _$createComponent(Show, {
999
+ }), _el$43, _co$8);
1000
+ _$insert(_el$30, _$createComponent(Show, {
668
1001
  get when() {
669
1002
  return props.footer;
670
1003
  },
671
1004
  children: footer => (() => {
672
- var _el$33 = _$getNextElement(_tmpl$15),
673
- _el$34 = _el$33.firstChild;
674
- _$insert(_el$34, _$createComponent(For, {
1005
+ var _el$92 = _$getNextElement(_tmpl$30),
1006
+ _el$93 = _el$92.firstChild,
1007
+ _el$95 = _el$93.firstChild,
1008
+ [_el$96, _co$18] = _$getNextMarker(_el$95.nextSibling),
1009
+ _el$97 = _el$96.nextSibling,
1010
+ [_el$98, _co$19] = _$getNextMarker(_el$97.nextSibling),
1011
+ _el$102 = _el$93.nextSibling,
1012
+ [_el$103, _co$20] = _$getNextMarker(_el$102.nextSibling);
1013
+ _$insert(_el$93, _$createComponent(For, {
675
1014
  get each() {
676
1015
  return props.columns;
677
1016
  },
678
1017
  children: (col, index) => {
679
1018
  const value = () => footer().values?.[col.id];
680
1019
  return (() => {
681
- var _el$35 = _$getNextElement(_tmpl$16);
682
- _el$35.addEventListener("mouseenter", () => setHoveredColumnIfEnabled(index()));
683
- _$insert(_el$35, (() => {
684
- var _c$3 = _$memo(() => !!footer().renderCell);
685
- return () => _c$3() ? footer().renderCell({
1020
+ var _el$104 = _$getNextElement(_tmpl$31);
1021
+ _el$104.addEventListener("mouseenter", () => setHoveredColumnIfEnabled(index()));
1022
+ _$insert(_el$104, (() => {
1023
+ var _c$2 = _$memo(() => !!footer().renderCell);
1024
+ return () => _c$2() ? footer().renderCell({
686
1025
  col,
687
1026
  value: value(),
688
- render: renderValueDefault
689
- }) : renderValueDefault(value());
1027
+ render: v => renderTypedValue(col, v)
1028
+ }) : renderTypedValue(col, value());
690
1029
  })());
691
1030
  _$effect(_p$ => {
692
- var _v$30 = nowrapAttr(col),
693
- _v$31 = alignAttr(col),
694
- _v$32 = columnHighlighted(index());
695
- _v$30 !== _p$.e && _$setAttribute(_el$35, "data-nowrap", _p$.e = _v$30);
696
- _v$31 !== _p$.t && _$setAttribute(_el$35, "data-align", _p$.t = _v$31);
697
- _v$32 !== _p$.a && _$setAttribute(_el$35, "data-highlighted", _p$.a = _v$32);
1031
+ var _v$42 = nowrapAttr(col),
1032
+ _v$43 = alignAttr(col),
1033
+ _v$44 = priorityAttr(col),
1034
+ _v$45 = columnHighlighted(index());
1035
+ _v$42 !== _p$.e && _$setAttribute(_el$104, "data-nowrap", _p$.e = _v$42);
1036
+ _v$43 !== _p$.t && _$setAttribute(_el$104, "data-align", _p$.t = _v$43);
1037
+ _v$44 !== _p$.a && _$setAttribute(_el$104, "data-priority", _p$.a = _v$44);
1038
+ _v$45 !== _p$.o && _$setAttribute(_el$104, "data-highlighted", _p$.o = _v$45);
698
1039
  return _p$;
699
1040
  }, {
700
1041
  e: undefined,
701
1042
  t: undefined,
702
- a: undefined
1043
+ a: undefined,
1044
+ o: undefined
703
1045
  });
704
- return _el$35;
1046
+ return _el$104;
705
1047
  })();
706
1048
  }
707
- }));
708
- return _el$33;
1049
+ }), _el$96, _co$18);
1050
+ _$insert(_el$93, _$createComponent(Show, {
1051
+ get when() {
1052
+ return detailsPriority();
1053
+ },
1054
+ get children() {
1055
+ return _$getNextElement(_tmpl$28);
1056
+ }
1057
+ }), _el$98, _co$19);
1058
+ _$insert(_el$92, _$createComponent(Show, {
1059
+ get when() {
1060
+ return detailsPriority();
1061
+ },
1062
+ get children() {
1063
+ var _el$99 = _$getNextElement(_tmpl$29),
1064
+ _el$100 = _el$99.firstChild,
1065
+ _el$101 = _el$100.firstChild;
1066
+ _$insert(_el$101, _$createComponent(For, {
1067
+ get each() {
1068
+ return hiddenColumns();
1069
+ },
1070
+ children: col => (() => {
1071
+ var _el$105 = _$getNextElement(_tmpl$10),
1072
+ _el$106 = _el$105.firstChild,
1073
+ _el$107 = _el$106.nextSibling;
1074
+ _$insert(_el$106, () => detailLabel(col));
1075
+ _$insert(_el$107, (() => {
1076
+ var _c$3 = _$memo(() => !!footer().renderCell);
1077
+ return () => _c$3() ? footer().renderCell({
1078
+ col,
1079
+ value: footer().values?.[col.id],
1080
+ render: v => renderTypedValue(col, v)
1081
+ }) : renderTypedValue(col, footer().values?.[col.id]);
1082
+ })());
1083
+ _$effect(() => _$setAttribute(_el$105, "data-priority", priorityAttr(col)));
1084
+ return _el$105;
1085
+ })()
1086
+ }));
1087
+ _$effect(() => _$setAttribute(_el$100, "colspan", columnCount()));
1088
+ return _el$99;
1089
+ }
1090
+ }), _el$103, _co$20);
1091
+ return _el$92;
709
1092
  })()
710
- }), _el$19, _co$3);
711
- _$insert(_el$0, _$createComponent(Show, {
1093
+ }), _el$45, _co$9);
1094
+ _$insert(_el$29, _$createComponent(Show, {
712
1095
  get when() {
713
1096
  return shouldRenderLoadMoreSentinel();
714
1097
  },
715
1098
  get children() {
716
- var _el$20 = _$getNextElement(_tmpl$9);
1099
+ var _el$46 = _$getNextElement(_tmpl$13);
717
1100
  var _ref$3 = loadMoreRef;
718
- typeof _ref$3 === "function" ? _$use(_ref$3, _el$20) : loadMoreRef = _el$20;
719
- return _el$20;
1101
+ typeof _ref$3 === "function" ? _$use(_ref$3, _el$46) : loadMoreRef = _el$46;
1102
+ return _el$46;
720
1103
  }
721
- }), _el$22, _co$4);
1104
+ }), _el$48, _co$0);
722
1105
  _$effect(_p$ => {
723
- var _v$5 = labelledBy() ? undefined : props.ariaLabel ?? dataTableMessages().dataTable,
724
- _v$6 = labelledBy(),
725
- _v$7 = props.loading ? "true" : undefined,
726
- _v$8 = `k2b-table-wrap${props.scrollClass ? ` ${props.scrollClass}` : ""}`,
727
- _v$9 = props.density === "compact" ? "compact" : undefined,
728
- _v$0 = props.footer ? "true" : undefined,
729
- _v$1 = surface(),
730
- _v$10 = props.scrollPreserveKey || undefined,
731
- _v$11 = tableClass(),
732
- _v$12 = props.fillHeight ? "true" : undefined,
733
- _v$13 = props.stickyHeader === false ? undefined : "true";
734
- _v$5 !== _p$.e && _$setAttribute(_el$0, "aria-label", _p$.e = _v$5);
735
- _v$6 !== _p$.t && _$setAttribute(_el$0, "aria-labelledby", _p$.t = _v$6);
736
- _v$7 !== _p$.a && _$setAttribute(_el$0, "aria-busy", _p$.a = _v$7);
737
- _v$8 !== _p$.o && _$className(_el$0, _p$.o = _v$8);
738
- _v$9 !== _p$.i && _$setAttribute(_el$0, "data-density", _p$.i = _v$9);
739
- _v$0 !== _p$.n && _$setAttribute(_el$0, "data-has-footer", _p$.n = _v$0);
740
- _v$1 !== _p$.s && _$setAttribute(_el$0, "data-surface", _p$.s = _v$1);
741
- _v$10 !== _p$.h && _$setAttribute(_el$0, "data-scroll-preserve", _p$.h = _v$10);
742
- _v$11 !== _p$.r && _$className(_el$1, _p$.r = _v$11);
743
- _v$12 !== _p$.d && _$setAttribute(_el$1, "data-fill", _p$.d = _v$12);
744
- _v$13 !== _p$.l && _$setAttribute(_el$11, "data-sticky", _p$.l = _v$13);
1106
+ var _v$24 = labelledBy() ? undefined : props.ariaLabel ?? dataTableMessages().dataTable,
1107
+ _v$25 = labelledBy(),
1108
+ _v$26 = props.loading ? "true" : undefined,
1109
+ _v$27 = `k2b-table-wrap${props.scrollClass ? ` ${props.scrollClass}` : ""}`,
1110
+ _v$28 = props.density === "compact" ? "compact" : undefined,
1111
+ _v$29 = props.footer ? "true" : undefined,
1112
+ _v$30 = surface(),
1113
+ _v$31 = props.scrollPreserveKey || undefined,
1114
+ _v$32 = tableClass(),
1115
+ _v$33 = props.fillHeight ? "true" : undefined,
1116
+ _v$34 = props.stickyHeader === false ? undefined : "true";
1117
+ _v$24 !== _p$.e && _$setAttribute(_el$29, "aria-label", _p$.e = _v$24);
1118
+ _v$25 !== _p$.t && _$setAttribute(_el$29, "aria-labelledby", _p$.t = _v$25);
1119
+ _v$26 !== _p$.a && _$setAttribute(_el$29, "aria-busy", _p$.a = _v$26);
1120
+ _v$27 !== _p$.o && _$className(_el$29, _p$.o = _v$27);
1121
+ _v$28 !== _p$.i && _$setAttribute(_el$29, "data-density", _p$.i = _v$28);
1122
+ _v$29 !== _p$.n && _$setAttribute(_el$29, "data-has-footer", _p$.n = _v$29);
1123
+ _v$30 !== _p$.s && _$setAttribute(_el$29, "data-surface", _p$.s = _v$30);
1124
+ _v$31 !== _p$.h && _$setAttribute(_el$29, "data-scroll-preserve", _p$.h = _v$31);
1125
+ _v$32 !== _p$.r && _$className(_el$30, _p$.r = _v$32);
1126
+ _v$33 !== _p$.d && _$setAttribute(_el$30, "data-fill", _p$.d = _v$33);
1127
+ _v$34 !== _p$.l && _$setAttribute(_el$32, "data-sticky", _p$.l = _v$34);
745
1128
  return _p$;
746
1129
  }, {
747
1130
  e: undefined,
@@ -756,26 +1139,26 @@ function DataTableRoot(props) {
756
1139
  d: undefined,
757
1140
  l: undefined
758
1141
  });
759
- return _el$0;
1142
+ return _el$29;
760
1143
  })(), _$createComponent(For, {
761
1144
  each: ["y", "x"],
762
1145
  children: axis => (() => {
763
- var _el$36 = _$getNextElement(_tmpl$17),
764
- _el$37 = _el$36.firstChild;
765
- _el$36.addEventListener("pointercancel", event => event.currentTarget.releasePointerCapture(event.pointerId));
766
- _el$36.$$pointerup = event => event.currentTarget.releasePointerCapture(event.pointerId);
767
- _el$36.$$pointermove = event => {
1146
+ var _el$108 = _$getNextElement(_tmpl$32),
1147
+ _el$109 = _el$108.firstChild;
1148
+ _el$108.addEventListener("pointercancel", event => event.currentTarget.releasePointerCapture(event.pointerId));
1149
+ _el$108.$$pointerup = event => event.currentTarget.releasePointerCapture(event.pointerId);
1150
+ _el$108.$$pointermove = event => {
768
1151
  if (event.currentTarget.hasPointerCapture(event.pointerId)) scrollFromPointer(event, axis);
769
1152
  };
770
- _el$36.$$pointerdown = event => startScrollbarDrag(event, axis);
771
- _$setAttribute(_el$36, "data-axis", axis);
1153
+ _el$108.$$pointerdown = event => startScrollbarDrag(event, axis);
1154
+ _$setAttribute(_el$108, "data-axis", axis);
772
1155
  _$effect(_p$ => {
773
- var _v$33 = scrollbars()[axis].overflow ? "true" : undefined,
774
- _v$34 = `${scrollbars()[axis].offset}px`,
775
- _v$35 = `${scrollbars()[axis].size}px`;
776
- _v$33 !== _p$.e && _$setAttribute(_el$36, "data-overflow", _p$.e = _v$33);
777
- _v$34 !== _p$.t && _$setStyleProperty(_el$37, "--k2b-data-table-scroll-offset", _p$.t = _v$34);
778
- _v$35 !== _p$.a && _$setStyleProperty(_el$37, "--k2b-data-table-scroll-size", _p$.a = _v$35);
1156
+ var _v$46 = scrollbars()[axis].overflow ? "true" : undefined,
1157
+ _v$47 = `${scrollbars()[axis].offset}px`,
1158
+ _v$48 = `${scrollbars()[axis].size}px`;
1159
+ _v$46 !== _p$.e && _$setAttribute(_el$108, "data-overflow", _p$.e = _v$46);
1160
+ _v$47 !== _p$.t && _$setStyleProperty(_el$109, "--k2b-data-table-scroll-offset", _p$.t = _v$47);
1161
+ _v$48 !== _p$.a && _$setStyleProperty(_el$109, "--k2b-data-table-scroll-size", _p$.a = _v$48);
779
1162
  return _p$;
780
1163
  }, {
781
1164
  e: undefined,
@@ -783,7 +1166,7 @@ function DataTableRoot(props) {
783
1166
  a: undefined
784
1167
  });
785
1168
  _$runHydrationEvents();
786
- return _el$36;
1169
+ return _el$108;
787
1170
  })()
788
1171
  })];
789
1172
  }
@@ -818,14 +1201,14 @@ const DataTableHeader = props => {
818
1201
  const panel = useContext(DataTablePanelContext);
819
1202
  panel?.registerHeading();
820
1203
  return (() => {
821
- var _el$38 = _$getNextElement(_tmpl$18);
822
- _$insert(_el$38, _$createComponent(PanelHeader, {
1204
+ var _el$110 = _$getNextElement(_tmpl$33);
1205
+ _$insert(_el$110, _$createComponent(PanelHeader, {
823
1206
  get title() {
824
1207
  return (() => {
825
- var _el$39 = _$getNextElement(_tmpl$19);
826
- _$insert(_el$39, () => props.title);
827
- _$effect(() => _$setAttribute(_el$39, "id", panel?.headingId));
828
- return _el$39;
1208
+ var _el$111 = _$getNextElement(_tmpl$34);
1209
+ _$insert(_el$111, () => props.title);
1210
+ _$effect(() => _$setAttribute(_el$111, "id", panel?.headingId));
1211
+ return _el$111;
829
1212
  })();
830
1213
  },
831
1214
  get subtitle() {
@@ -841,21 +1224,21 @@ const DataTableHeader = props => {
841
1224
  return props.size;
842
1225
  }
843
1226
  }));
844
- _$effect(() => _$className(_el$38, `k2b-data-panel__header ${props.class ?? ""}`));
845
- return _el$38;
1227
+ _$effect(() => _$className(_el$110, `k2b-data-panel__header ${props.class ?? ""}`));
1228
+ return _el$110;
846
1229
  })();
847
1230
  };
848
1231
  const DataTableControls = props => (() => {
849
- var _el$40 = _$getNextElement(_tmpl$18);
850
- _$insert(_el$40, () => props.children);
851
- _$effect(() => _$className(_el$40, `k2b-data-panel__controls ${props.class ?? ""}`));
852
- return _el$40;
1232
+ var _el$112 = _$getNextElement(_tmpl$33);
1233
+ _$insert(_el$112, () => props.children);
1234
+ _$effect(() => _$className(_el$112, `k2b-data-panel__controls ${props.class ?? ""}`));
1235
+ return _el$112;
853
1236
  })();
854
1237
  const DataTablePanelFooter = props => (() => {
855
- var _el$41 = _$getNextElement(_tmpl$20);
856
- _$insert(_el$41, () => props.children);
857
- _$effect(() => _$className(_el$41, `k2b-data-panel__footer ${props.class ?? ""}`));
858
- return _el$41;
1238
+ var _el$113 = _$getNextElement(_tmpl$35);
1239
+ _$insert(_el$113, () => props.children);
1240
+ _$effect(() => _$className(_el$113, `k2b-data-panel__footer ${props.class ?? ""}`));
1241
+ return _el$113;
859
1242
  })();
860
1243
  const DataTable = DataTableRoot;
861
1244
  DataTable.Panel = DataTablePanel;