@igne-agency/react-web-ui 0.3.1 → 0.4.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (290) hide show
  1. package/README.md +32 -1
  2. package/dist/components/accordion/accordion.css +24 -19
  3. package/dist/components/accordion/accordion.d.ts +19 -3
  4. package/dist/components/accordion/accordion.js +86 -32
  5. package/dist/components/accordion/accordion.module.js +8 -8
  6. package/dist/components/active-filters/active-filter-describers.d.ts +1 -1
  7. package/dist/components/active-filters/active-filter-describers.js +1 -1
  8. package/dist/components/active-filters/active-filters.d.ts +35 -2
  9. package/dist/components/active-filters/active-filters.js +57 -52
  10. package/dist/components/active-filters/index.js +2 -2
  11. package/dist/components/attachment-tile/attachment-preview.d.ts +11 -9
  12. package/dist/components/attachment-tile/attachment-preview.js +102 -68
  13. package/dist/components/attachment-tile/attachment-tile.css +22 -13
  14. package/dist/components/attachment-tile/attachment-tile.d.ts +51 -6
  15. package/dist/components/attachment-tile/attachment-tile.js +209 -85
  16. package/dist/components/attachment-tile/attachment-tile.module.js +10 -10
  17. package/dist/components/attachment-tile/index.d.ts +1 -1
  18. package/dist/components/attachment-tile/index.js +2 -2
  19. package/dist/components/avatar/avatar.d.ts +5 -5
  20. package/dist/components/avatar/avatar.js +64 -37
  21. package/dist/components/avatar-group/avatar-group.js +2 -2
  22. package/dist/components/badge/badge.js +1 -1
  23. package/dist/components/breadcrumbs/breadcrumbs.d.ts +22 -7
  24. package/dist/components/breadcrumbs/breadcrumbs.js +189 -170
  25. package/dist/components/button/button.d.ts +2 -3
  26. package/dist/components/button/button.js +58 -77
  27. package/dist/components/button/close-button.d.ts +4 -2
  28. package/dist/components/button/close-button.js +9 -9
  29. package/dist/components/checkbox-field/checkbox-field.d.ts +17 -3
  30. package/dist/components/checkbox-field/checkbox-field.js +108 -131
  31. package/dist/components/checkbox-field/checkbox.css +26 -34
  32. package/dist/components/checkbox-field/checkbox.d.ts +51 -8
  33. package/dist/components/checkbox-field/checkbox.js +221 -57
  34. package/dist/components/checkbox-field/checkbox.module.js +6 -8
  35. package/dist/components/checkbox-field/index.d.ts +0 -1
  36. package/dist/components/checkbox-field/index.js +1 -2
  37. package/dist/components/checkbox-field/tsf-checkbox-field.d.ts +2 -2
  38. package/dist/components/checkbox-group-field/checkbox-group-field.d.ts +4 -1
  39. package/dist/components/checkbox-group-field/checkbox-group-field.js +54 -50
  40. package/dist/components/checkbox-group-field/checkbox-group.d.ts +7 -2
  41. package/dist/components/checkbox-group-field/checkbox-group.js +8 -3
  42. package/dist/components/collapsible/collapsible.css +23 -18
  43. package/dist/components/collapsible/collapsible.d.ts +18 -3
  44. package/dist/components/collapsible/collapsible.js +85 -32
  45. package/dist/components/collapsible/collapsible.module.js +7 -7
  46. package/dist/components/combobox-field/combobox-field.d.ts +9 -1
  47. package/dist/components/combobox-field/combobox-field.js +195 -175
  48. package/dist/components/combobox-field/combobox-items.d.ts +2 -2
  49. package/dist/components/combobox-field/combobox-items.js +4 -4
  50. package/dist/components/combobox-field/combobox.css +99 -96
  51. package/dist/components/combobox-field/combobox.d.ts +94 -15
  52. package/dist/components/combobox-field/combobox.js +484 -159
  53. package/dist/components/combobox-field/combobox.module.js +21 -21
  54. package/dist/components/combobox-field/index.d.ts +0 -1
  55. package/dist/components/combobox-field/selection.d.ts +4 -1
  56. package/dist/components/combobox-field/value-state-view.css +7 -3
  57. package/dist/components/combobox-field/value-state-view.d.ts +4 -2
  58. package/dist/components/combobox-field/value-state-view.js +15 -15
  59. package/dist/components/combobox-field/value-state-view.module.js +6 -4
  60. package/dist/components/composer/composer-attachments.d.ts +11 -3
  61. package/dist/components/composer/composer-attachments.js +61 -47
  62. package/dist/components/composer/composer-editor.d.ts +2 -1
  63. package/dist/components/composer/composer-editor.js +79 -71
  64. package/dist/components/composer/composer-mentions.js +2 -2
  65. package/dist/components/composer/composer.d.ts +42 -21
  66. package/dist/components/composer/composer.js +201 -58
  67. package/dist/components/composer/mention-text.js +3 -3
  68. package/dist/components/confirm-dialog/confirm-dialog.d.ts +8 -7
  69. package/dist/components/confirm-dialog/confirm-dialog.js +10 -9
  70. package/dist/components/conversation/conversation.context.d.ts +0 -5
  71. package/dist/components/conversation/conversation.d.ts +63 -29
  72. package/dist/components/conversation/conversation.js +193 -82
  73. package/dist/components/conversation/index.d.ts +1 -1
  74. package/dist/components/date-field/date-field.d.ts +10 -4
  75. package/dist/components/date-field/date-field.js +57 -43
  76. package/dist/components/date-field/date-input.d.ts +20 -3
  77. package/dist/components/date-field/date-input.js +28 -13
  78. package/dist/components/date-field/index.d.ts +1 -1
  79. package/dist/components/date-field/tsf-date-field.d.ts +1 -1
  80. package/dist/components/date-field/tsf-date-field.js +1 -1
  81. package/dist/components/date-range-field/date-range-field.d.ts +8 -4
  82. package/dist/components/date-range-field/date-range-field.js +57 -45
  83. package/dist/components/date-range-field/date-range-input.d.ts +20 -3
  84. package/dist/components/date-range-field/date-range-input.js +27 -12
  85. package/dist/components/date-range-field/tsf-date-range-field.d.ts +1 -1
  86. package/dist/components/date-range-field/tsf-date-range-field.js +1 -1
  87. package/dist/components/detail-list/detail-list.d.ts +28 -27
  88. package/dist/components/detail-list/detail-list.js +177 -121
  89. package/dist/components/dialog/dialog.d.ts +47 -27
  90. package/dist/components/dialog/dialog.js +101 -38
  91. package/dist/components/divider/divider.js +1 -1
  92. package/dist/components/drawer/drawer.d.ts +48 -30
  93. package/dist/components/drawer/drawer.js +113 -41
  94. package/dist/components/email-field/email-field.d.ts +5 -3
  95. package/dist/components/email-field/email-field.js +1 -3
  96. package/dist/components/email-field/tsf-email-field.d.ts +3 -2
  97. package/dist/components/empty-message/empty-message.d.ts +3 -3
  98. package/dist/components/empty-message/empty-message.js +3 -3
  99. package/dist/components/error-boundary/error-boundary.d.ts +5 -2
  100. package/dist/components/error-boundary/error-boundary.js +2 -3
  101. package/dist/components/error-message/error-message.d.ts +1 -1
  102. package/dist/components/error-message/error-message.js +1 -1
  103. package/dist/components/error-text/error-text.js +3 -3
  104. package/dist/components/field/field.d.ts +5 -5
  105. package/dist/components/field/field.js +9 -9
  106. package/dist/components/field/index.js +2 -2
  107. package/dist/components/field/input-parts.js +1 -1
  108. package/dist/components/field-placeholder/field-placeholder.d.ts +4 -1
  109. package/dist/components/field-placeholder/field-placeholder.js +41 -26
  110. package/dist/components/fieldset/field-group.js +1 -1
  111. package/dist/components/fieldset/fieldset-root.js +1 -1
  112. package/dist/components/fieldset/fieldset.js +1 -1
  113. package/dist/components/file-field/file-field.css +19 -15
  114. package/dist/components/file-field/file-field.d.ts +10 -1
  115. package/dist/components/file-field/file-field.js +130 -109
  116. package/dist/components/file-field/file-field.module.js +6 -4
  117. package/dist/components/file-field/file-input.d.ts +32 -9
  118. package/dist/components/file-field/file-input.js +94 -74
  119. package/dist/components/filter-bar/filter-bar.d.ts +79 -51
  120. package/dist/components/filter-bar/filter-bar.js +552 -216
  121. package/dist/components/form/form.d.ts +4 -6
  122. package/dist/components/form/form.js +6 -8
  123. package/dist/components/icon/icon.d.ts +5 -10
  124. package/dist/components/icon/icon.js +4 -6
  125. package/dist/components/link/link.js +1 -1
  126. package/dist/components/link-button/link-button.d.ts +1 -2
  127. package/dist/components/link-button/link-button.js +12 -22
  128. package/dist/components/loading-message/loading-message.d.ts +2 -2
  129. package/dist/components/loading-message/loading-message.js +1 -1
  130. package/dist/components/locale-provider/locale-provider.js +1 -1
  131. package/dist/components/menu/menu.d.ts +40 -22
  132. package/dist/components/menu/menu.js +100 -40
  133. package/dist/components/nav/nav-context.d.ts +0 -1
  134. package/dist/components/nav/nav-context.js +1 -2
  135. package/dist/components/nav/nav-item-view.d.ts +7 -7
  136. package/dist/components/nav/nav-item-view.js +27 -51
  137. package/dist/components/nav/nav.css +72 -60
  138. package/dist/components/nav/nav.d.ts +15 -8
  139. package/dist/components/nav/nav.js +105 -52
  140. package/dist/components/nav/nav.module.js +14 -14
  141. package/dist/components/number-field/number-field.d.ts +7 -1
  142. package/dist/components/number-field/number-field.js +98 -82
  143. package/dist/components/number-field/number-input.d.ts +53 -4
  144. package/dist/components/number-field/number-input.js +68 -21
  145. package/dist/components/number-field/tsf-number-field.d.ts +1 -1
  146. package/dist/components/number-field/tsf-number-field.js +1 -1
  147. package/dist/components/otp-field/otp-input.d.ts +25 -0
  148. package/dist/components/otp-field/otp-input.js +26 -1
  149. package/dist/components/pagination/pagination.d.ts +82 -23
  150. package/dist/components/pagination/pagination.js +656 -229
  151. package/dist/components/password-field/password-field.d.ts +7 -1
  152. package/dist/components/password-field/password-field.js +117 -126
  153. package/dist/components/password-field/password-strength.js +1 -1
  154. package/dist/components/password-field/tsf-password-field.d.ts +1 -1
  155. package/dist/components/password-field/tsf-password-field.js +1 -1
  156. package/dist/components/photo-field/photo-field.d.ts +17 -3
  157. package/dist/components/photo-field/photo-field.js +168 -89
  158. package/dist/components/photo-field/photo-input-context.d.ts +25 -0
  159. package/dist/components/photo-field/photo-input-context.js +14 -0
  160. package/dist/components/photo-field/photo-input.d.ts +58 -23
  161. package/dist/components/photo-field/photo-input.js +459 -261
  162. package/dist/components/popover/popover.d.ts +55 -23
  163. package/dist/components/popover/popover.js +205 -61
  164. package/dist/components/radio-group-field/radio-group.js +1 -1
  165. package/dist/components/search-field/search-field.d.ts +7 -5
  166. package/dist/components/search-field/search-field.js +4 -6
  167. package/dist/components/search-field/tsf-search-field.d.ts +1 -1
  168. package/dist/components/search-field/tsf-search-field.js +1 -1
  169. package/dist/components/segmented-control-field/segmented-control.js +1 -1
  170. package/dist/components/select-field/select-field.d.ts +7 -1
  171. package/dist/components/select-field/select-field.js +151 -139
  172. package/dist/components/select-field/select.d.ts +28 -6
  173. package/dist/components/select-field/select.js +234 -149
  174. package/dist/components/skeleton/skeleton.js +1 -1
  175. package/dist/components/spinner/spinner.css +47 -1
  176. package/dist/components/spinner/spinner.js +28 -11
  177. package/dist/components/spinner/spinner.module.js +18 -3
  178. package/dist/components/stale/stale.d.ts +17 -21
  179. package/dist/components/stale/stale.js +307 -129
  180. package/dist/components/status-message/status-message.css +22 -21
  181. package/dist/components/status-message/status-message.d.ts +10 -5
  182. package/dist/components/status-message/status-message.js +20 -24
  183. package/dist/components/status-message/status-message.module.js +6 -6
  184. package/dist/components/status-message/status-preset.d.ts +4 -5
  185. package/dist/components/status-message/status-preset.js +3 -3
  186. package/dist/components/switch-field/switch.js +1 -1
  187. package/dist/components/tabs/tabs.d.ts +51 -28
  188. package/dist/components/tabs/tabs.js +219 -144
  189. package/dist/components/tag/tag.css +23 -21
  190. package/dist/components/tag/tag.d.ts +17 -15
  191. package/dist/components/tag/tag.js +140 -65
  192. package/dist/components/tag/tag.module.js +3 -3
  193. package/dist/components/tag-group/tag-group.css +30 -27
  194. package/dist/components/tag-group/tag-group.d.ts +10 -4
  195. package/dist/components/tag-group/tag-group.js +47 -35
  196. package/dist/components/tag-group/tag-group.module.js +4 -4
  197. package/dist/components/text-field/text-field.d.ts +14 -3
  198. package/dist/components/text-field/text-field.js +154 -133
  199. package/dist/components/text-field/text-input.d.ts +89 -3
  200. package/dist/components/text-field/text-input.js +184 -70
  201. package/dist/components/textarea-field/textarea.js +1 -1
  202. package/dist/components/time-field/time-input.d.ts +6 -0
  203. package/dist/components/time-field/time-input.js +6 -0
  204. package/dist/components/time-zone-provider/time-zone-provider.js +1 -1
  205. package/dist/components/toast/index.js +2 -2
  206. package/dist/components/toast/toast-provider.css +38 -34
  207. package/dist/components/toast/toast-provider.d.ts +65 -3
  208. package/dist/components/toast/toast-provider.js +313 -148
  209. package/dist/components/toast/toast-provider.module.js +11 -17
  210. package/dist/components/toast/toast.d.ts +5 -1
  211. package/dist/components/toast/toast.js +2 -1
  212. package/dist/components/toggle-group-field/toggle-group.js +1 -1
  213. package/dist/components/tooltip/tooltip.d.ts +6 -6
  214. package/dist/components/tooltip/tooltip.js +7 -7
  215. package/dist/data-table/data-table-content.d.ts +18 -10
  216. package/dist/data-table/data-table-content.js +145 -290
  217. package/dist/data-table/data-table-context.d.ts +4 -2
  218. package/dist/data-table/data-table-context.js +1 -1
  219. package/dist/data-table/data-table-parts.d.ts +99 -0
  220. package/dist/data-table/data-table-parts.js +1182 -0
  221. package/dist/data-table/data-table-selection.d.ts +7 -3
  222. package/dist/data-table/data-table-selection.js +62 -37
  223. package/dist/data-table/data-table.css +100 -95
  224. package/dist/data-table/data-table.d.ts +49 -25
  225. package/dist/data-table/data-table.js +95 -83
  226. package/dist/data-table/data-table.module.js +34 -34
  227. package/dist/data-table/index.d.ts +2 -1
  228. package/dist/data-table/index.js +2 -1
  229. package/dist/data-view/use-data-view.d.ts +2 -2
  230. package/dist/data-view/use-data-view.js +2 -2
  231. package/dist/index.js +7 -8
  232. package/dist/lib/calendar/calendar-navigation.d.ts +9 -2
  233. package/dist/lib/calendar/calendar-navigation.js +72 -73
  234. package/dist/lib/calendar/calendar-year.d.ts +4 -3
  235. package/dist/lib/calendar/calendar-year.js +137 -156
  236. package/dist/lib/calendar/temporal.d.ts +18 -12
  237. package/dist/lib/calendar/temporal.js +191 -147
  238. package/dist/lib/table-storage.d.ts +2 -2
  239. package/dist/lib/table-storage.js +2 -2
  240. package/dist/lib/unsaved-changes/leave-guard.js +1 -1
  241. package/dist/terrazzo/index.d.ts +16 -0
  242. package/dist/terrazzo/index.js +94 -2
  243. package/dist/tokens.css +71 -69
  244. package/package.json +3 -2
  245. package/tokens/ref.tokens.json +0 -30
  246. package/tokens/sys.tokens.json +0 -7
  247. package/dist/assets/spinner.js +0 -28
  248. package/dist/components/checkbox-field/checkbox-glyph.d.ts +0 -12
  249. package/dist/components/checkbox-field/checkbox-glyph.js +0 -38
  250. package/dist/components/combobox-field/combobox-popup-body.d.ts +0 -34
  251. package/dist/components/combobox-field/combobox-popup-body.js +0 -142
  252. package/dist/components/conversation/conversation.context.js +0 -4
  253. package/dist/vendor/@material-design-icons/svg/outlined/add.js +0 -12
  254. package/dist/vendor/@material-design-icons/svg/outlined/arrow_downward.js +0 -12
  255. package/dist/vendor/@material-design-icons/svg/outlined/arrow_forward.js +0 -12
  256. package/dist/vendor/@material-design-icons/svg/outlined/arrow_upward.js +0 -12
  257. package/dist/vendor/@material-design-icons/svg/outlined/attach_file.js +0 -12
  258. package/dist/vendor/@material-design-icons/svg/outlined/block.js +0 -12
  259. package/dist/vendor/@material-design-icons/svg/outlined/calendar_today.js +0 -12
  260. package/dist/vendor/@material-design-icons/svg/outlined/check.js +0 -12
  261. package/dist/vendor/@material-design-icons/svg/outlined/check_circle.js +0 -12
  262. package/dist/vendor/@material-design-icons/svg/outlined/chevron_left.js +0 -12
  263. package/dist/vendor/@material-design-icons/svg/outlined/chevron_right.js +0 -12
  264. package/dist/vendor/@material-design-icons/svg/outlined/close.js +0 -12
  265. package/dist/vendor/@material-design-icons/svg/outlined/content_copy.js +0 -12
  266. package/dist/vendor/@material-design-icons/svg/outlined/date_range.js +0 -12
  267. package/dist/vendor/@material-design-icons/svg/outlined/description.js +0 -12
  268. package/dist/vendor/@material-design-icons/svg/outlined/download.js +0 -12
  269. package/dist/vendor/@material-design-icons/svg/outlined/error.js +0 -12
  270. package/dist/vendor/@material-design-icons/svg/outlined/error_outline.js +0 -12
  271. package/dist/vendor/@material-design-icons/svg/outlined/expand_less.js +0 -12
  272. package/dist/vendor/@material-design-icons/svg/outlined/expand_more.js +0 -12
  273. package/dist/vendor/@material-design-icons/svg/outlined/filter_alt.js +0 -12
  274. package/dist/vendor/@material-design-icons/svg/outlined/filter_alt_off.js +0 -12
  275. package/dist/vendor/@material-design-icons/svg/outlined/first_page.js +0 -12
  276. package/dist/vendor/@material-design-icons/svg/outlined/info.js +0 -12
  277. package/dist/vendor/@material-design-icons/svg/outlined/keyboard_arrow_down.js +0 -12
  278. package/dist/vendor/@material-design-icons/svg/outlined/last_page.js +0 -12
  279. package/dist/vendor/@material-design-icons/svg/outlined/mail.js +0 -12
  280. package/dist/vendor/@material-design-icons/svg/outlined/more_horiz.js +0 -12
  281. package/dist/vendor/@material-design-icons/svg/outlined/photo_camera.js +0 -12
  282. package/dist/vendor/@material-design-icons/svg/outlined/remove.js +0 -12
  283. package/dist/vendor/@material-design-icons/svg/outlined/restart_alt.js +0 -12
  284. package/dist/vendor/@material-design-icons/svg/outlined/restore.js +0 -12
  285. package/dist/vendor/@material-design-icons/svg/outlined/search.js +0 -12
  286. package/dist/vendor/@material-design-icons/svg/outlined/unfold_more.js +0 -12
  287. package/dist/vendor/@material-design-icons/svg/outlined/upload_file.js +0 -12
  288. package/dist/vendor/@material-design-icons/svg/outlined/visibility.js +0 -12
  289. package/dist/vendor/@material-design-icons/svg/outlined/visibility_off.js +0 -12
  290. package/dist/vendor/@material-design-icons/svg/outlined/warning_amber.js +0 -12
@@ -1,6 +1,6 @@
1
1
  @layer kit.reset, kit.base, kit.components;
2
2
  @layer kit.components {
3
- ._root_i4wmq_3 {
3
+ ._root_k21i7_3 {
4
4
  --_table-radius: var(
5
5
  --table-radius,
6
6
  var(--sys-radius-md)
@@ -74,14 +74,14 @@
74
74
  color: var(--sys-color-text);
75
75
  min-block-size: 0;
76
76
  }
77
- ._toolbar_i4wmq_77 {
77
+ ._toolbar_k21i7_77 {
78
78
  display: flex;
79
79
  flex-shrink: 0;
80
80
  flex-wrap: wrap;
81
81
  align-items: center;
82
82
  gap: var(--sys-unit-8);
83
83
  }
84
- ._scrollFrame_i4wmq_84 {
84
+ ._scrollFrame_k21i7_84 {
85
85
  position: relative;
86
86
  display: flex;
87
87
  flex: 0 1 auto;
@@ -89,16 +89,16 @@
89
89
  min-block-size: 0;
90
90
  timeline-scope: --table-scroll;
91
91
  }
92
- ._stale_i4wmq_92 {
92
+ ._stale_k21i7_92 {
93
93
  display: flex;
94
94
  flex: 1 1 0;
95
95
  min-inline-size: 0;
96
96
  min-block-size: 0;
97
97
  }
98
- ._staleOverlay_i4wmq_98 {
98
+ ._staleOverlay_k21i7_98 {
99
99
  border-radius: var(--_table-radius);
100
100
  }
101
- ._contentWrap_i4wmq_101 {
101
+ ._contentWrap_k21i7_101 {
102
102
  position: relative;
103
103
  isolation: isolate;
104
104
  flex: 1 1 0;
@@ -109,16 +109,16 @@
109
109
  background: var(--sys-color-surface);
110
110
  scroll-timeline: --table-scroll inline;
111
111
  }
112
- ._contentWrap_i4wmq_101 {
112
+ ._contentWrap_k21i7_101 {
113
113
  outline: 0 solid var(--sys-color-focus-ring);
114
114
  outline-offset: var(--sys-focus-ring-offset);
115
115
  }
116
- ._contentWrap_i4wmq_101:focus-visible {
116
+ ._contentWrap_k21i7_101:focus-visible {
117
117
  outline-width: var(--sys-focus-ring-width);
118
118
  }
119
119
  @supports (animation-timeline: scroll()) {
120
- ._scrollFrame_i4wmq_84::before,
121
- ._scrollFrame_i4wmq_84::after {
120
+ ._scrollFrame_k21i7_84::before,
121
+ ._scrollFrame_k21i7_84::after {
122
122
  position: absolute;
123
123
  z-index: 1;
124
124
  inset-block: 0 var(--table-scrollbar-block, 0px);
@@ -129,24 +129,24 @@
129
129
  animation-fill-mode: both;
130
130
  animation-timeline: --table-scroll;
131
131
  }
132
- ._scrollFrame_i4wmq_84:has(._th_i4wmq_132[data-sticky=start])::before,
133
- ._scrollFrame_i4wmq_84:has(._th_i4wmq_132[data-sticky=end])::after {
132
+ ._scrollFrame_k21i7_84:has(._th_k21i7_132[data-sticky=start])::before,
133
+ ._scrollFrame_k21i7_84:has(._th_k21i7_132[data-sticky=end])::after {
134
134
  content: "";
135
135
  }
136
- ._scrollFrame_i4wmq_84::before {
136
+ ._scrollFrame_k21i7_84::before {
137
137
  inset-inline-start: var(--table-sticky-total, 0px);
138
138
  background: linear-gradient(to right, var(--_table-edge-shadow), transparent);
139
- animation-name: _edgeStart_i4wmq_1;
139
+ animation-name: _edgeStart_k21i7_1;
140
140
  animation-range: var(--_table-edge-slack) calc(var(--_table-edge-cue) + var(--_table-edge-slack));
141
141
  }
142
- ._scrollFrame_i4wmq_84::after {
142
+ ._scrollFrame_k21i7_84::after {
143
143
  inset-inline-end: calc(var(--table-sticky-end-total, 0px) + var(--table-scrollbar-inline, 0px));
144
144
  background: linear-gradient(to left, var(--_table-edge-shadow), transparent);
145
- animation-name: _edgeEnd_i4wmq_1;
145
+ animation-name: _edgeEnd_k21i7_1;
146
146
  animation-range: calc(100% - var(--_table-edge-cue) - var(--_table-edge-slack)) calc(100% - var(--_table-edge-slack));
147
147
  }
148
148
  }
149
- @keyframes _edgeStart_i4wmq_1 {
149
+ @keyframes _edgeStart_k21i7_1 {
150
150
  from {
151
151
  opacity: 0;
152
152
  }
@@ -154,7 +154,7 @@
154
154
  opacity: 1;
155
155
  }
156
156
  }
157
- @keyframes _edgeEnd_i4wmq_1 {
157
+ @keyframes _edgeEnd_k21i7_1 {
158
158
  from {
159
159
  opacity: 1;
160
160
  }
@@ -162,7 +162,7 @@
162
162
  opacity: 0;
163
163
  }
164
164
  }
165
- ._refreshFailed_i4wmq_165 {
165
+ ._refreshFailed_k21i7_165 {
166
166
  display: flex;
167
167
  flex-shrink: 0;
168
168
  flex-wrap: wrap;
@@ -174,7 +174,7 @@
174
174
  color: var(--sys-color-error-fg);
175
175
  font: var(--sys-font-label-medium);
176
176
  }
177
- ._table_i4wmq_177 {
177
+ ._table_k21i7_177 {
178
178
  inline-size: max-content;
179
179
  min-inline-size: var(--_table-min-inline);
180
180
  border-collapse: separate;
@@ -182,13 +182,13 @@
182
182
  font: var(--sys-font-body-medium);
183
183
  font-variant-numeric: tabular-nums;
184
184
  }
185
- ._thead_i4wmq_185 {
185
+ ._thead_k21i7_185 {
186
186
  position: sticky;
187
187
  inset-block-start: 0;
188
188
  z-index: 2;
189
189
  background: var(--_table-header-bg);
190
190
  }
191
- ._th_i4wmq_132 {
191
+ ._th_k21i7_132 {
192
192
  block-size: var(--_table-header-min-block);
193
193
  padding: var(--_table-header-pad-y) var(--_table-cell-pad-x);
194
194
  vertical-align: middle;
@@ -197,10 +197,10 @@
197
197
  font: var(--sys-font-label-small);
198
198
  white-space: nowrap;
199
199
  }
200
- ._th_i4wmq_132:has(> ._sortToggle_i4wmq_200) {
200
+ ._th_k21i7_132:has(> ._sortToggle_k21i7_200) {
201
201
  padding: 0;
202
202
  }
203
- ._sortToggle_i4wmq_200 {
203
+ ._sortToggle_k21i7_200 {
204
204
  display: flex;
205
205
  align-items: center;
206
206
  gap: var(--sys-unit-4);
@@ -210,18 +210,18 @@
210
210
  color: inherit;
211
211
  font: inherit;
212
212
  }
213
- ._sortToggle_i4wmq_200 {
213
+ ._sortToggle_k21i7_200 {
214
214
  outline: 0 solid var(--sys-color-focus-ring);
215
215
  outline-offset: var(--sys-focus-ring-offset);
216
216
  }
217
- ._sortToggle_i4wmq_200:focus-visible {
217
+ ._sortToggle_k21i7_200:focus-visible {
218
218
  outline-width: var(--sys-focus-ring-width);
219
219
  }
220
- ._sortToggle_i4wmq_200 {
220
+ ._sortToggle_k21i7_200 {
221
221
  position: relative;
222
222
  isolation: isolate;
223
223
  }
224
- ._sortToggle_i4wmq_200::after {
224
+ ._sortToggle_k21i7_200::after {
225
225
  content: "";
226
226
  position: absolute;
227
227
  z-index: -1;
@@ -232,86 +232,91 @@
232
232
  pointer-events: none;
233
233
  }
234
234
  @media not (prefers-reduced-motion) {
235
- ._sortToggle_i4wmq_200::after {
235
+ ._sortToggle_k21i7_200::after {
236
236
  transition: opacity var(--sys-motion-instant) var(--sys-motion-standard);
237
237
  }
238
238
  }
239
- ._sortToggle_i4wmq_200:hover:not(:disabled, [data-disabled])::after {
239
+ ._sortToggle_k21i7_200:hover:not(:disabled, [data-disabled])::after {
240
240
  opacity: var(--sys-state-hover);
241
241
  }
242
- ._sortToggle_i4wmq_200:active:not(:disabled, [data-disabled])::after {
242
+ ._sortToggle_k21i7_200:active:not(:disabled, [data-disabled])::after {
243
243
  opacity: var(--sys-state-pressed);
244
244
  }
245
- ._sortToggle_i4wmq_200 {
245
+ ._sortToggle_k21i7_200 {
246
246
  outline-offset: calc(-1 * var(--sys-focus-ring-width));
247
247
  }
248
- ._th_i4wmq_132[data-numeric=true] ._sortToggle_i4wmq_200 {
248
+ ._th_k21i7_132[data-numeric=true] ._sortToggle_k21i7_200 {
249
249
  justify-content: flex-end;
250
250
  }
251
- ._sortIconIdle_i4wmq_251 {
251
+ ._sortIcon_k21i7_251 {
252
+ display: inline-flex;
253
+ flex-shrink: 0;
254
+ font-size: var(--table-sort-icon-size, 1em);
255
+ }
256
+ ._sortIcon_k21i7_251[data-sort=none] {
252
257
  color: color-mix(in oklab, var(--_table-header-fg) 55%, var(--_table-header-bg));
253
258
  }
254
- ._th_i4wmq_132[data-fit=true],
255
- ._td_i4wmq_255[data-fit=true] {
259
+ ._th_k21i7_132[data-fit=true],
260
+ ._td_k21i7_260[data-fit=true] {
256
261
  inline-size: 1px;
257
262
  white-space: nowrap;
258
263
  }
259
- ._th_i4wmq_132[data-numeric=true],
260
- ._td_i4wmq_255[data-numeric=true] {
264
+ ._th_k21i7_132[data-numeric=true],
265
+ ._td_k21i7_260[data-numeric=true] {
261
266
  text-align: end;
262
267
  font-variant-numeric: tabular-nums;
263
268
  }
264
- ._th_i4wmq_132[data-sticky],
265
- ._td_i4wmq_255[data-sticky] {
269
+ ._th_k21i7_132[data-sticky],
270
+ ._td_k21i7_260[data-sticky] {
266
271
  position: sticky;
267
272
  z-index: 1;
268
273
  }
269
- ._th_i4wmq_132[data-sticky] {
274
+ ._th_k21i7_132[data-sticky] {
270
275
  background: var(--_table-header-bg);
271
276
  }
272
- ._td_i4wmq_255[data-sticky] {
277
+ ._td_k21i7_260[data-sticky] {
273
278
  background: var(--sys-color-surface);
274
279
  }
275
280
  @media not (prefers-reduced-motion) {
276
- ._td_i4wmq_255[data-sticky] {
281
+ ._td_k21i7_260[data-sticky] {
277
282
  transition: background-color var(--sys-motion-instant) var(--sys-motion-standard);
278
283
  }
279
284
  }
280
- ._row_i4wmq_280[data-stripe=true] ._td_i4wmq_255[data-sticky] {
285
+ ._row_k21i7_285[data-stripe=true] ._td_k21i7_260[data-sticky] {
281
286
  background: var(--_table-row-stripe);
282
287
  }
283
- ._row_i4wmq_280:hover ._td_i4wmq_255[data-sticky] {
288
+ ._row_k21i7_285:hover ._td_k21i7_260[data-sticky] {
284
289
  background: var(--_table-row-hover);
285
290
  }
286
291
  @media not (prefers-reduced-motion) {
287
- ._row_i4wmq_280 {
292
+ ._row_k21i7_285 {
288
293
  transition: background-color var(--sys-motion-instant) var(--sys-motion-standard);
289
294
  }
290
295
  }
291
- ._row_i4wmq_280[data-stripe=true] {
296
+ ._row_k21i7_285[data-stripe=true] {
292
297
  background: var(--_table-row-stripe);
293
298
  }
294
- ._row_i4wmq_280:hover {
299
+ ._row_k21i7_285:hover {
295
300
  background: var(--_table-row-hover);
296
301
  }
297
- ._td_i4wmq_255 {
302
+ ._td_k21i7_260 {
298
303
  padding: var(--_table-cell-pad-y) var(--_table-cell-pad-x);
299
304
  vertical-align: middle;
300
305
  white-space: nowrap;
301
306
  }
302
- ._subRow_i4wmq_302 {
307
+ ._subRow_k21i7_307 {
303
308
  background: var(--_table-subrow-bg);
304
309
  }
305
- ._subRow_i4wmq_302 > td {
310
+ ._subRow_k21i7_307 > td {
306
311
  padding: 0;
307
312
  }
308
- ._subRow_i4wmq_302 > ._td_i4wmq_255[data-sticky] {
313
+ ._subRow_k21i7_307 > ._td_k21i7_260[data-sticky] {
309
314
  background: var(--_table-subrow-bg);
310
315
  }
311
- ._skeletonBar_i4wmq_311 {
316
+ ._skeletonBar_k21i7_316 {
312
317
  min-inline-size: var(--sys-unit-16);
313
318
  }
314
- ._busyCaption_i4wmq_314 {
319
+ ._busyCaption_k21i7_319 {
315
320
  position: absolute;
316
321
  overflow: hidden;
317
322
  clip-path: inset(50%);
@@ -319,23 +324,23 @@
319
324
  block-size: 1px;
320
325
  white-space: nowrap;
321
326
  }
322
- ._stateCell_i4wmq_322 {
327
+ ._stateCell_k21i7_327 {
323
328
  padding: var(--sys-unit-24) var(--_table-cell-pad-x);
324
329
  color: var(--sys-color-text-muted);
325
330
  text-align: center;
326
331
  }
327
- ._errorState_i4wmq_327 {
332
+ ._errorState_k21i7_332 {
328
333
  color: var(--sys-color-error-fg);
329
334
  }
330
- ._pagination_i4wmq_330 {
335
+ ._pagination_k21i7_335 {
331
336
  flex-shrink: 0;
332
337
  align-self: flex-end;
333
338
  }
334
- ._selectionContainer_i4wmq_334 {
339
+ ._selectionContainer_k21i7_339 {
335
340
  container: selection-bar/inline-size;
336
341
  min-inline-size: 0;
337
342
  }
338
- ._selectionBar_i4wmq_338 {
343
+ ._selectionBar_k21i7_343 {
339
344
  --_selection-stagger: var(
340
345
  --selection-stagger,
341
346
  calc(var(--sys-motion-instant) / 4)
@@ -364,14 +369,14 @@
364
369
  color: var(--sys-color-text);
365
370
  white-space: nowrap;
366
371
  }
367
- ._selectionBar_i4wmq_338 {
372
+ ._selectionBar_k21i7_343 {
368
373
  outline: 0 solid var(--sys-color-focus-ring);
369
374
  outline-offset: var(--sys-focus-ring-offset);
370
375
  }
371
- ._selectionBar_i4wmq_338:focus-visible {
376
+ ._selectionBar_k21i7_343:focus-visible {
372
377
  outline-width: var(--sys-focus-ring-width);
373
378
  }
374
- ._selectionBar_i4wmq_338::before {
379
+ ._selectionBar_k21i7_343::before {
375
380
  position: absolute;
376
381
  inset: 0;
377
382
  z-index: -1;
@@ -381,80 +386,80 @@
381
386
  opacity: 0;
382
387
  scale: 0.98 0.8;
383
388
  }
384
- ._selectionBar_i4wmq_338[data-selected] {
389
+ ._selectionBar_k21i7_343[data-selected] {
385
390
  --_selection-text-inset: var(--sys-unit-6);
386
391
  padding-inline: var(--_selection-pad);
387
392
  }
388
- ._selectionBar_i4wmq_338[data-selected]::before {
393
+ ._selectionBar_k21i7_343[data-selected]::before {
389
394
  opacity: 1;
390
395
  scale: 1;
391
396
  }
392
397
  @media not (prefers-reduced-motion) {
393
- ._selectionBar_i4wmq_338 {
398
+ ._selectionBar_k21i7_343 {
394
399
  transition: padding-inline var(--sys-motion-instant) var(--sys-motion-accelerate);
395
400
  }
396
- ._selectionBar_i4wmq_338::before {
401
+ ._selectionBar_k21i7_343::before {
397
402
  transition: opacity var(--sys-motion-instant) var(--sys-motion-accelerate), scale var(--sys-motion-instant) var(--sys-motion-accelerate);
398
403
  }
399
- ._selectionBar_i4wmq_338[data-selected] {
404
+ ._selectionBar_k21i7_343[data-selected] {
400
405
  transition-duration: var(--sys-motion-short);
401
406
  transition-timing-function: var(--sys-motion-emphasized);
402
407
  }
403
- ._selectionBar_i4wmq_338[data-selected]::before {
408
+ ._selectionBar_k21i7_343[data-selected]::before {
404
409
  transition-duration: var(--sys-motion-short);
405
410
  transition-timing-function: var(--sys-motion-emphasized);
406
411
  }
407
412
  }
408
- ._selectionSummary_i4wmq_408 {
413
+ ._selectionSummary_k21i7_413 {
409
414
  display: grid;
410
415
  flex-shrink: 0;
411
416
  align-items: center;
412
417
  padding-inline-start: var(--_selection-text-inset);
413
418
  }
414
419
  @media not (prefers-reduced-motion) {
415
- ._selectionSummary_i4wmq_408 {
420
+ ._selectionSummary_k21i7_413 {
416
421
  transition: padding-inline-start var(--sys-motion-instant) var(--sys-motion-accelerate);
417
422
  }
418
- ._selectionBar_i4wmq_338[data-selected] ._selectionSummary_i4wmq_408 {
423
+ ._selectionBar_k21i7_343[data-selected] ._selectionSummary_k21i7_413 {
419
424
  transition-duration: var(--sys-motion-short);
420
425
  transition-timing-function: var(--sys-motion-emphasized);
421
426
  }
422
427
  }
423
- ._selectionTotal_i4wmq_423,
424
- ._selectionCount_i4wmq_424,
425
- ._selectionMeasure_i4wmq_425 {
428
+ ._selectionTotal_k21i7_428,
429
+ ._selectionCount_k21i7_429,
430
+ ._selectionMeasure_k21i7_430 {
426
431
  grid-area: 1/1;
427
432
  font: var(--sys-font-body-medium);
428
433
  }
429
- ._selectionTotal_i4wmq_423 {
434
+ ._selectionTotal_k21i7_428 {
430
435
  color: var(--sys-color-text-muted);
431
436
  }
432
- ._selectionCount_i4wmq_424 {
437
+ ._selectionCount_k21i7_429 {
433
438
  font-variant-numeric: tabular-nums;
434
439
  }
435
- ._selectionBar_i4wmq_338:not([data-selected]) ._selectionCount_i4wmq_424 {
440
+ ._selectionBar_k21i7_343:not([data-selected]) ._selectionCount_k21i7_429 {
436
441
  opacity: 0;
437
442
  translate: 0 var(--sys-unit-2);
438
443
  }
439
- ._selectionBar_i4wmq_338[data-selected] ._selectionCount_i4wmq_424 {
444
+ ._selectionBar_k21i7_343[data-selected] ._selectionCount_k21i7_429 {
440
445
  opacity: 1;
441
446
  translate: 0;
442
447
  }
443
- ._selectionMeasure_i4wmq_425 {
448
+ ._selectionMeasure_k21i7_430 {
444
449
  visibility: hidden;
445
450
  font-variant-numeric: tabular-nums;
446
451
  }
447
- ._selectionBar_i4wmq_338[data-selected] ._selectionTotal_i4wmq_423 {
452
+ ._selectionBar_k21i7_343[data-selected] ._selectionTotal_k21i7_428 {
448
453
  opacity: 0;
449
454
  translate: 0 calc(-1 * var(--sys-unit-2));
450
455
  }
451
456
  @media not (prefers-reduced-motion) {
452
- ._selectionTotal_i4wmq_423,
453
- ._selectionCount_i4wmq_424 {
457
+ ._selectionTotal_k21i7_428,
458
+ ._selectionCount_k21i7_429 {
454
459
  transition: opacity var(--sys-motion-instant) var(--sys-motion-standard), translate var(--sys-motion-instant) var(--sys-motion-standard);
455
460
  }
456
461
  }
457
- ._selectionStatus_i4wmq_457 {
462
+ ._selectionStatus_k21i7_462 {
458
463
  position: absolute;
459
464
  overflow: hidden;
460
465
  clip-path: inset(50%);
@@ -462,40 +467,40 @@
462
467
  block-size: 1px;
463
468
  white-space: nowrap;
464
469
  }
465
- ._selectionActions_i4wmq_465 {
470
+ ._selectionActions_k21i7_470 {
466
471
  display: flex;
467
472
  flex: 1 1 auto;
468
473
  flex-wrap: nowrap;
469
474
  align-items: center;
470
475
  gap: var(--_selection-pad);
471
476
  }
472
- ._selectionActions_i4wmq_465 > * {
477
+ ._selectionActions_k21i7_470 > * {
473
478
  opacity: 1;
474
479
  }
475
- ._selectionActions_i4wmq_465[inert] {
480
+ ._selectionActions_k21i7_470[inert] {
476
481
  visibility: hidden;
477
482
  }
478
- ._selectionActions_i4wmq_465[inert] > * {
483
+ ._selectionActions_k21i7_470[inert] > * {
479
484
  opacity: 0;
480
485
  }
481
486
  @media not (prefers-reduced-motion) {
482
- ._selectionActions_i4wmq_465 {
487
+ ._selectionActions_k21i7_470 {
483
488
  transition: visibility var(--sys-motion-instant);
484
489
  }
485
- ._selectionActions_i4wmq_465 > * {
490
+ ._selectionActions_k21i7_470 > * {
486
491
  transition: opacity var(--sys-motion-instant) var(--sys-motion-standard);
487
492
  }
488
- ._selectionActions_i4wmq_465:not([inert]) > :nth-child(1) {
493
+ ._selectionActions_k21i7_470:not([inert]) > :nth-child(1) {
489
494
  transition-delay: var(--_selection-stagger);
490
495
  }
491
- ._selectionActions_i4wmq_465:not([inert]) > :nth-child(2) {
496
+ ._selectionActions_k21i7_470:not([inert]) > :nth-child(2) {
492
497
  transition-delay: calc(var(--_selection-stagger) * 2);
493
498
  }
494
499
  }
495
- ._selectionSelectAll_i4wmq_495[data-starting-style], ._selectionSelectAll_i4wmq_495[data-ending-style] {
500
+ ._selectionSelectAll_k21i7_500[data-starting-style], ._selectionSelectAll_k21i7_500[data-ending-style] {
496
501
  opacity: 0;
497
502
  }
498
- ._selectionBulk_i4wmq_498 {
503
+ ._selectionBulk_k21i7_503 {
499
504
  display: flex;
500
505
  flex-wrap: nowrap;
501
506
  align-items: center;
@@ -503,12 +508,12 @@
503
508
  margin-inline-start: auto;
504
509
  }
505
510
  @container selection-bar (max-width: 36rem) {
506
- ._selectionBar_i4wmq_338 {
511
+ ._selectionBar_k21i7_343 {
507
512
  flex-wrap: wrap;
508
513
  overflow-x: visible;
509
514
  row-gap: var(--_selection-pad);
510
515
  }
511
- ._selectionActions_i4wmq_465 {
516
+ ._selectionActions_k21i7_470 {
512
517
  flex-wrap: wrap;
513
518
  }
514
519
  }
@@ -1,8 +1,9 @@
1
1
  import type { ReactTable } from "@tanstack/react-table";
2
2
  import type { ReactNode } from "react";
3
- import { type PaginationIndexProps } from "../components/pagination/pagination.tsx";
3
+ import { type PaginationContentProps, type PaginationRootProps } from "../components/pagination/pagination.tsx";
4
4
  import type { RowSelectionView } from "../lib/hooks/use-row-selection.ts";
5
5
  import { DataTableContent } from "./data-table-content.tsx";
6
+ import { Body, Cell, ErrorMessage, Frame, Head, HeaderCell, HeaderRow, LoadingCaption, PlaceholderRows, RefreshFailed, Row, Scroller, SortButton, StaleOverlay, StateRow, SubRow, Table } from "./data-table-parts.tsx";
6
7
  import { DataTableSelectionBar } from "./data-table-selection.tsx";
7
8
  import type { DataTableStatus } from "./resolve-view.ts";
8
9
  import { type DataTableFeatures } from "./table-features.ts";
@@ -26,6 +27,7 @@ export type DataTableRootProps<TData extends Record<string, unknown>> = Readonly
26
27
  children: ReactNode;
27
28
  className?: string;
28
29
  }>;
30
+ /** Holds the table instance and the injected query state for the parts inside it. */
29
31
  declare const Root: <TData extends Record<string, unknown>>({ table, selection, status, isFetching, onRetry, children, className, }: DataTableRootProps<TData>) => ReactNode;
30
32
  export type DataTableToolbarProps = Readonly<{
31
33
  children: ReactNode;
@@ -33,39 +35,54 @@ export type DataTableToolbarProps = Readonly<{
33
35
  }>;
34
36
  /** Layout slot above the table for search, filters and actions. */
35
37
  declare const Toolbar: ({ children, className, }: DataTableToolbarProps) => ReactNode;
36
- export type DataTablePaginationProps = Readonly<{
37
- /** The page-size select's label, such as "Rows per page". */
38
- pageSizeLabel: string;
39
- /** What the index says, such as `Page 3 of 12`, from where the table stands. */
40
- indexLabel: PaginationIndexProps["label"];
41
- /** The first-page button's name, such as "First page". */
42
- firstLabel: string;
43
- /** The previous-page button's name, such as "Previous page". */
44
- previousLabel: string;
45
- /** The next-page button's name, such as "Next page". */
46
- nextLabel: string;
47
- /** The last-page button's name, such as "Last page". */
48
- lastLabel: string;
49
- className?: string;
50
- }>;
38
+ type TableBoundPagination = "pageIndex" | "pageCount" | "pageSize" | "pageSizes" | "onPageIndexChange" | "onPageSizeChange";
39
+ export type DataTablePaginationProps = Omit<PaginationRootProps, TableBoundPagination | "children"> & ((PaginationContentProps & Readonly<{
40
+ children?: undefined;
41
+ }>) | (Readonly<{
42
+ /** The `Pagination` parts, such as `Pagination.PageSize`, `Pagination.Index` and `Pagination.Controls`, in place of the ready-made pager. */
43
+ children: ReactNode;
44
+ }> & Readonly<Partial<Record<keyof PaginationContentProps, undefined>>>));
51
45
  /**
52
- * The kit's `Pagination`, driven by the instance's pagination API (built with
53
- * `manualPagination` + server `rowCount`). The page sizes come from the
54
- * table's `meta.pageSizeOptions`, and picking one returns to the first page.
46
+ * The pager driven by the instance's pagination API (built with
47
+ * `manualPagination` + server `rowCount`): the ready-made `Pagination` from its
48
+ * labels and icons, or a `Pagination.Root` holding the parts it is given. The
49
+ * page sizes come from the table's `meta.pageSizeOptions`, and picking one
50
+ * returns to the first page.
55
51
  */
56
- declare const DataTablePagination: ({ pageSizeLabel, indexLabel, firstLabel, previousLabel, nextLabel, lastLabel, className, }: DataTablePaginationProps) => ReactNode;
52
+ declare const DataTablePagination: (props: DataTablePaginationProps) => ReactNode;
57
53
  type DataTableParts = Readonly<{
58
54
  Root: typeof Root;
59
55
  Toolbar: typeof Toolbar;
60
56
  Content: typeof DataTableContent;
61
57
  Pagination: typeof DataTablePagination;
62
58
  SelectionBar: typeof DataTableSelectionBar;
59
+ RefreshFailed: typeof RefreshFailed;
60
+ Frame: typeof Frame;
61
+ Scroller: typeof Scroller;
62
+ StaleOverlay: typeof StaleOverlay;
63
+ Table: typeof Table;
64
+ LoadingCaption: typeof LoadingCaption;
65
+ Head: typeof Head;
66
+ HeaderRow: typeof HeaderRow;
67
+ HeaderCell: typeof HeaderCell;
68
+ SortButton: typeof SortButton;
69
+ Body: typeof Body;
70
+ Row: typeof Row;
71
+ Cell: typeof Cell;
72
+ SubRow: typeof SubRow;
73
+ PlaceholderRows: typeof PlaceholderRows;
74
+ StateRow: typeof StateRow;
75
+ ErrorMessage: typeof ErrorMessage;
63
76
  }>;
64
77
  /**
65
78
  * Composite data table over a TanStack Table instance. `Root` holds the
66
79
  * instance and the injected query state in context; the parts lay it out:
67
- * `Toolbar`, `SelectionBar`, `Content` and `Pagination`. A nested sub-table
68
- * gets its own `DataTable.Root`, with its own instance and context.
80
+ * `Toolbar`, `SelectionBar`, `Content` and `Pagination`. `Content` is the
81
+ * whole table; where a table needs other markup, compose its parts instead:
82
+ * `RefreshFailed`, then a `Frame` holding a `Scroller` and a `StaleOverlay`,
83
+ * the `Scroller` holding the `Table` and its rows and cells, with
84
+ * `useDataTableView` to pick the body. A nested sub-table gets its own
85
+ * `DataTable.Root`, with its own instance and context.
69
86
  *
70
87
  * @example
71
88
  * <DataTable.Root table={table} status={query.status} isFetching={query.isFetching}>
@@ -73,11 +90,13 @@ type DataTableParts = Readonly<{
73
90
  * <FilterBar.Root filters={filters}>…</FilterBar.Root>
74
91
  * </DataTable.Toolbar>
75
92
  * <DataTable.Content
76
- * emptyState="No declarations yet."
77
- * errorLabel="The declarations could not be loaded."
78
- * loadingLabel="Loading declarations"
93
+ * emptyState="No invoices yet."
94
+ * errorLabel="The invoices could not be loaded."
95
+ * loadingLabel="Loading invoices"
79
96
  * slowLabel="This is taking longer than usual."
80
97
  * retryLabel="Try again"
98
+ * sortAscendingIcon={<ArrowUpwardIcon />}
99
+ * sortDescendingIcon={<ArrowDownwardIcon />}
81
100
  * />
82
101
  * <DataTable.Pagination
83
102
  * pageSizeLabel="Rows per page"
@@ -86,6 +105,11 @@ type DataTableParts = Readonly<{
86
105
  * previousLabel="Previous page"
87
106
  * nextLabel="Next page"
88
107
  * lastLabel="Last page"
108
+ * firstIcon={<FirstPageIcon />}
109
+ * previousIcon={<ChevronLeftIcon />}
110
+ * nextIcon={<ChevronRightIcon />}
111
+ * lastIcon={<LastPageIcon />}
112
+ * checkIcon={<CheckIcon />}
89
113
  * />
90
114
  * </DataTable.Root>
91
115
  */