@igne-agency/react-web-ui 0.0.0-stage → 0.2.1

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 (690) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +200 -2
  3. package/dist/assets/spinner.js +28 -0
  4. package/dist/base.css +171 -0
  5. package/dist/components/accordion/accordion.css +93 -0
  6. package/dist/components/accordion/accordion.d.ts +46 -0
  7. package/dist/components/accordion/accordion.js +184 -0
  8. package/dist/components/accordion/accordion.module.js +16 -0
  9. package/dist/components/accordion/index.d.ts +1 -0
  10. package/dist/components/accordion/index.js +1 -0
  11. package/dist/components/active-filters/active-filter-describers.d.ts +62 -0
  12. package/dist/components/active-filters/active-filter-describers.js +48 -0
  13. package/dist/components/active-filters/active-filters.d.ts +27 -0
  14. package/dist/components/active-filters/active-filters.js +96 -0
  15. package/dist/components/active-filters/index.d.ts +2 -0
  16. package/dist/components/active-filters/index.js +3 -0
  17. package/dist/components/attachment-tile/attachment-preview.d.ts +33 -0
  18. package/dist/components/attachment-tile/attachment-preview.js +181 -0
  19. package/dist/components/attachment-tile/attachment-tile.css +92 -0
  20. package/dist/components/attachment-tile/attachment-tile.d.ts +51 -0
  21. package/dist/components/attachment-tile/attachment-tile.js +126 -0
  22. package/dist/components/attachment-tile/attachment-tile.module.js +20 -0
  23. package/dist/components/attachment-tile/index.d.ts +2 -0
  24. package/dist/components/attachment-tile/index.js +3 -0
  25. package/dist/components/avatar/avatar.css +48 -0
  26. package/dist/components/avatar/avatar.d.ts +19 -0
  27. package/dist/components/avatar/avatar.js +98 -0
  28. package/dist/components/avatar/avatar.module.js +10 -0
  29. package/dist/components/avatar/index.d.ts +1 -0
  30. package/dist/components/avatar/index.js +1 -0
  31. package/dist/components/avatar-group/avatar-group-context.d.ts +15 -0
  32. package/dist/components/avatar-group/avatar-group-context.js +14 -0
  33. package/dist/components/avatar-group/avatar-group.css +62 -0
  34. package/dist/components/avatar-group/avatar-group.d.ts +96 -0
  35. package/dist/components/avatar-group/avatar-group.js +519 -0
  36. package/dist/components/avatar-group/avatar-group.module.js +20 -0
  37. package/dist/components/avatar-group/index.d.ts +1 -0
  38. package/dist/components/avatar-group/index.js +1 -0
  39. package/dist/components/badge/badge.css +101 -0
  40. package/dist/components/badge/badge.d.ts +17 -0
  41. package/dist/components/badge/badge.js +61 -0
  42. package/dist/components/badge/badge.module.js +4 -0
  43. package/dist/components/badge/index.d.ts +1 -0
  44. package/dist/components/badge/index.js +1 -0
  45. package/dist/components/breadcrumbs/breadcrumbs.css +57 -0
  46. package/dist/components/breadcrumbs/breadcrumbs.d.ts +105 -0
  47. package/dist/components/breadcrumbs/breadcrumbs.js +710 -0
  48. package/dist/components/breadcrumbs/breadcrumbs.module.js +20 -0
  49. package/dist/components/breadcrumbs/index.d.ts +2 -0
  50. package/dist/components/breadcrumbs/index.js +3 -0
  51. package/dist/components/breadcrumbs/use-fold.d.ts +34 -0
  52. package/dist/components/breadcrumbs/use-fold.js +73 -0
  53. package/dist/components/button/button-attributes.d.ts +23 -0
  54. package/dist/components/button/button-attributes.js +17 -0
  55. package/dist/components/button/button.css +111 -0
  56. package/dist/components/button/button.d.ts +47 -0
  57. package/dist/components/button/button.js +210 -0
  58. package/dist/components/button/button.module.js +4 -0
  59. package/dist/components/button/close-button.d.ts +14 -0
  60. package/dist/components/button/close-button.js +30 -0
  61. package/dist/components/button/index.d.ts +1 -0
  62. package/dist/components/button/index.js +1 -0
  63. package/dist/components/checkbox-field/checkbox-field.d.ts +21 -0
  64. package/dist/components/checkbox-field/checkbox-field.js +181 -0
  65. package/dist/components/checkbox-field/checkbox-glyph.d.ts +12 -0
  66. package/dist/components/checkbox-field/checkbox-glyph.js +38 -0
  67. package/dist/components/checkbox-field/checkbox.css +128 -0
  68. package/dist/components/checkbox-field/checkbox.d.ts +14 -0
  69. package/dist/components/checkbox-field/checkbox.js +91 -0
  70. package/dist/components/checkbox-field/checkbox.module.js +14 -0
  71. package/dist/components/checkbox-field/index.d.ts +4 -0
  72. package/dist/components/checkbox-field/index.js +5 -0
  73. package/dist/components/checkbox-field/tsf-checkbox-field.d.ts +14 -0
  74. package/dist/components/checkbox-field/tsf-checkbox-field.js +40 -0
  75. package/dist/components/checkbox-group-field/checkbox-group-field.d.ts +33 -0
  76. package/dist/components/checkbox-group-field/checkbox-group-field.js +128 -0
  77. package/dist/components/checkbox-group-field/checkbox-group.css +31 -0
  78. package/dist/components/checkbox-group-field/checkbox-group.d.ts +38 -0
  79. package/dist/components/checkbox-group-field/checkbox-group.js +102 -0
  80. package/dist/components/checkbox-group-field/checkbox-group.module.js +8 -0
  81. package/dist/components/checkbox-group-field/index.d.ts +3 -0
  82. package/dist/components/checkbox-group-field/index.js +4 -0
  83. package/dist/components/checkbox-group-field/tsf-checkbox-group-field.d.ts +15 -0
  84. package/dist/components/checkbox-group-field/tsf-checkbox-group-field.js +41 -0
  85. package/dist/components/collapsible/collapsible.css +88 -0
  86. package/dist/components/collapsible/collapsible.d.ts +33 -0
  87. package/dist/components/collapsible/collapsible.js +146 -0
  88. package/dist/components/collapsible/collapsible.module.js +14 -0
  89. package/dist/components/collapsible/index.d.ts +1 -0
  90. package/dist/components/collapsible/index.js +1 -0
  91. package/dist/components/combobox-field/combobox-field.d.ts +66 -0
  92. package/dist/components/combobox-field/combobox-field.js +527 -0
  93. package/dist/components/combobox-field/combobox-items.d.ts +80 -0
  94. package/dist/components/combobox-field/combobox-items.js +27 -0
  95. package/dist/components/combobox-field/combobox-popup-body.d.ts +34 -0
  96. package/dist/components/combobox-field/combobox-popup-body.js +142 -0
  97. package/dist/components/combobox-field/combobox.css +535 -0
  98. package/dist/components/combobox-field/combobox.d.ts +105 -0
  99. package/dist/components/combobox-field/combobox.js +642 -0
  100. package/dist/components/combobox-field/combobox.module.js +46 -0
  101. package/dist/components/combobox-field/index.d.ts +7 -0
  102. package/dist/components/combobox-field/index.js +4 -0
  103. package/dist/components/combobox-field/item-lookups.d.ts +18 -0
  104. package/dist/components/combobox-field/item-lookups.js +8 -0
  105. package/dist/components/combobox-field/react-query.d.ts +15 -0
  106. package/dist/components/combobox-field/react-query.js +78 -0
  107. package/dist/components/combobox-field/selection.d.ts +50 -0
  108. package/dist/components/combobox-field/selection.js +38 -0
  109. package/dist/components/combobox-field/tsf-combobox-field.d.ts +33 -0
  110. package/dist/components/combobox-field/tsf-combobox-field.js +88 -0
  111. package/dist/components/combobox-field/value-state-view.css +21 -0
  112. package/dist/components/combobox-field/value-state-view.d.ts +35 -0
  113. package/dist/components/combobox-field/value-state-view.js +107 -0
  114. package/dist/components/combobox-field/value-state-view.module.js +10 -0
  115. package/dist/components/combobox-field/value-state.d.ts +49 -0
  116. package/dist/components/combobox-field/value-state.js +38 -0
  117. package/dist/components/composer/composer-attachments.d.ts +31 -0
  118. package/dist/components/composer/composer-attachments.js +158 -0
  119. package/dist/components/composer/composer-editor.css +104 -0
  120. package/dist/components/composer/composer-editor.d.ts +15 -0
  121. package/dist/components/composer/composer-editor.js +165 -0
  122. package/dist/components/composer/composer-editor.module.js +14 -0
  123. package/dist/components/composer/composer-mentions.d.ts +10 -0
  124. package/dist/components/composer/composer-mentions.js +294 -0
  125. package/dist/components/composer/composer.context.d.ts +56 -0
  126. package/dist/components/composer/composer.context.js +14 -0
  127. package/dist/components/composer/composer.css +81 -0
  128. package/dist/components/composer/composer.d.ts +77 -0
  129. package/dist/components/composer/composer.handle.d.ts +31 -0
  130. package/dist/components/composer/composer.handle.js +41 -0
  131. package/dist/components/composer/composer.js +428 -0
  132. package/dist/components/composer/composer.module.js +14 -0
  133. package/dist/components/composer/editor-behavior.d.ts +2 -0
  134. package/dist/components/composer/editor-behavior.js +99 -0
  135. package/dist/components/composer/index.d.ts +8 -0
  136. package/dist/components/composer/index.js +3 -0
  137. package/dist/components/composer/mention-node.d.ts +44 -0
  138. package/dist/components/composer/mention-node.js +71 -0
  139. package/dist/components/composer/mention-sources.d.ts +14 -0
  140. package/dist/components/composer/mention-text.css +14 -0
  141. package/dist/components/composer/mention-text.d.ts +66 -0
  142. package/dist/components/composer/mention-text.js +95 -0
  143. package/dist/components/composer/mention-text.module.js +4 -0
  144. package/dist/components/confirm-dialog/confirm-dialog.css +68 -0
  145. package/dist/components/confirm-dialog/confirm-dialog.d.ts +75 -0
  146. package/dist/components/confirm-dialog/confirm-dialog.js +399 -0
  147. package/dist/components/confirm-dialog/confirm-dialog.module.js +14 -0
  148. package/dist/components/confirm-dialog/index.d.ts +1 -0
  149. package/dist/components/confirm-dialog/index.js +1 -0
  150. package/dist/components/conversation/conversation.context.d.ts +9 -0
  151. package/dist/components/conversation/conversation.context.js +4 -0
  152. package/dist/components/conversation/conversation.css +143 -0
  153. package/dist/components/conversation/conversation.d.ts +126 -0
  154. package/dist/components/conversation/conversation.js +761 -0
  155. package/dist/components/conversation/conversation.module.js +34 -0
  156. package/dist/components/conversation/group-messages.d.ts +34 -0
  157. package/dist/components/conversation/group-messages.js +64 -0
  158. package/dist/components/conversation/index.d.ts +4 -0
  159. package/dist/components/conversation/index.js +3 -0
  160. package/dist/components/conversation/moment.d.ts +11 -0
  161. package/dist/components/conversation/moment.js +15 -0
  162. package/dist/components/date-field/date-field.d.ts +45 -0
  163. package/dist/components/date-field/date-field.js +162 -0
  164. package/dist/components/date-field/date-input.d.ts +46 -0
  165. package/dist/components/date-field/date-input.js +109 -0
  166. package/dist/components/date-field/index.d.ts +4 -0
  167. package/dist/components/date-field/index.js +4 -0
  168. package/dist/components/date-field/tsf-date-field.d.ts +14 -0
  169. package/dist/components/date-field/tsf-date-field.js +40 -0
  170. package/dist/components/date-range-field/date-range-field.d.ts +53 -0
  171. package/dist/components/date-range-field/date-range-field.js +167 -0
  172. package/dist/components/date-range-field/date-range-input.d.ts +51 -0
  173. package/dist/components/date-range-field/date-range-input.js +109 -0
  174. package/dist/components/date-range-field/index.d.ts +4 -0
  175. package/dist/components/date-range-field/index.js +5 -0
  176. package/dist/components/date-range-field/tsf-date-range-field.d.ts +15 -0
  177. package/dist/components/date-range-field/tsf-date-range-field.js +58 -0
  178. package/dist/components/detail-list/detail-list.css +32 -0
  179. package/dist/components/detail-list/detail-list.d.ts +41 -0
  180. package/dist/components/detail-list/detail-list.js +163 -0
  181. package/dist/components/detail-list/detail-list.module.js +14 -0
  182. package/dist/components/detail-list/index.d.ts +1 -0
  183. package/dist/components/detail-list/index.js +1 -0
  184. package/dist/components/dialog/dialog.css +78 -0
  185. package/dist/components/dialog/dialog.d.ts +59 -0
  186. package/dist/components/dialog/dialog.js +245 -0
  187. package/dist/components/dialog/dialog.module.js +16 -0
  188. package/dist/components/dialog/index.d.ts +1 -0
  189. package/dist/components/dialog/index.js +1 -0
  190. package/dist/components/divider/divider.css +16 -0
  191. package/dist/components/divider/divider.d.ts +13 -0
  192. package/dist/components/divider/divider.js +47 -0
  193. package/dist/components/divider/divider.module.js +10 -0
  194. package/dist/components/divider/index.d.ts +1 -0
  195. package/dist/components/divider/index.js +1 -0
  196. package/dist/components/drawer/drawer.css +168 -0
  197. package/dist/components/drawer/drawer.d.ts +65 -0
  198. package/dist/components/drawer/drawer.js +219 -0
  199. package/dist/components/drawer/drawer.module.js +16 -0
  200. package/dist/components/drawer/index.d.ts +1 -0
  201. package/dist/components/drawer/index.js +1 -0
  202. package/dist/components/email-field/email-field.d.ts +11 -0
  203. package/dist/components/email-field/email-field.js +45 -0
  204. package/dist/components/email-field/index.d.ts +2 -0
  205. package/dist/components/email-field/index.js +3 -0
  206. package/dist/components/email-field/tsf-email-field.d.ts +13 -0
  207. package/dist/components/email-field/tsf-email-field.js +14 -0
  208. package/dist/components/empty-message/empty-message.d.ts +16 -0
  209. package/dist/components/empty-message/empty-message.js +31 -0
  210. package/dist/components/empty-message/index.d.ts +1 -0
  211. package/dist/components/empty-message/index.js +1 -0
  212. package/dist/components/error-boundary/error-boundary.d.ts +43 -0
  213. package/dist/components/error-boundary/error-boundary.js +60 -0
  214. package/dist/components/error-boundary/index.d.ts +1 -0
  215. package/dist/components/error-boundary/index.js +1 -0
  216. package/dist/components/error-message/error-message.d.ts +15 -0
  217. package/dist/components/error-message/error-message.js +30 -0
  218. package/dist/components/error-message/index.d.ts +1 -0
  219. package/dist/components/error-message/index.js +1 -0
  220. package/dist/components/error-text/error-cascade.d.ts +32 -0
  221. package/dist/components/error-text/error-cascade.js +49 -0
  222. package/dist/components/error-text/error-text.css +27 -0
  223. package/dist/components/error-text/error-text.d.ts +22 -0
  224. package/dist/components/error-text/error-text.js +139 -0
  225. package/dist/components/error-text/error-text.module.js +11 -0
  226. package/dist/components/error-text/index.d.ts +1 -0
  227. package/dist/components/error-text/index.js +1 -0
  228. package/dist/components/field/choice-option.d.ts +11 -0
  229. package/dist/components/field/field-state.d.ts +51 -0
  230. package/dist/components/field/field-state.js +28 -0
  231. package/dist/components/field/field.css +50 -0
  232. package/dist/components/field/field.d.ts +183 -0
  233. package/dist/components/field/field.js +434 -0
  234. package/dist/components/field/field.module.js +20 -0
  235. package/dist/components/field/fieldset.d.ts +22 -0
  236. package/dist/components/field/fieldset.js +130 -0
  237. package/dist/components/field/hidden-input.d.ts +8 -0
  238. package/dist/components/field/hidden-input.js +12 -0
  239. package/dist/components/field/index.d.ts +6 -0
  240. package/dist/components/field/index.js +6 -0
  241. package/dist/components/field/input-parts.d.ts +49 -0
  242. package/dist/components/field/input-parts.js +94 -0
  243. package/dist/components/field/options-load.d.ts +54 -0
  244. package/dist/components/field/options-load.js +38 -0
  245. package/dist/components/field/rim-focus.d.ts +10 -0
  246. package/dist/components/field/rim-focus.js +23 -0
  247. package/dist/components/field/use-field-focus.d.ts +37 -0
  248. package/dist/components/field/use-field-focus.js +71 -0
  249. package/dist/components/field/use-field-state.d.ts +32 -0
  250. package/dist/components/field/use-field-state.js +77 -0
  251. package/dist/components/field-placeholder/field-placeholder.css +22 -0
  252. package/dist/components/field-placeholder/field-placeholder.d.ts +10 -0
  253. package/dist/components/field-placeholder/field-placeholder.js +54 -0
  254. package/dist/components/field-placeholder/field-placeholder.module.js +12 -0
  255. package/dist/components/field-placeholder/index.d.ts +1 -0
  256. package/dist/components/field-placeholder/index.js +1 -0
  257. package/dist/components/file-field/file-field.css +101 -0
  258. package/dist/components/file-field/file-field.d.ts +59 -0
  259. package/dist/components/file-field/file-field.js +296 -0
  260. package/dist/components/file-field/file-field.module.js +10 -0
  261. package/dist/components/file-field/file-input.d.ts +85 -0
  262. package/dist/components/file-field/file-input.js +334 -0
  263. package/dist/components/file-field/file-size.d.ts +21 -0
  264. package/dist/components/file-field/file-size.js +18 -0
  265. package/dist/components/file-field/file-type.d.ts +21 -0
  266. package/dist/components/file-field/file-type.js +28 -0
  267. package/dist/components/file-field/index.d.ts +3 -0
  268. package/dist/components/file-field/index.js +4 -0
  269. package/dist/components/file-field/tsf-file-field.d.ts +14 -0
  270. package/dist/components/file-field/tsf-file-field.js +48 -0
  271. package/dist/components/filter-bar/filter-bar.css +34 -0
  272. package/dist/components/filter-bar/filter-bar.d.ts +87 -0
  273. package/dist/components/filter-bar/filter-bar.js +311 -0
  274. package/dist/components/filter-bar/filter-bar.module.js +14 -0
  275. package/dist/components/filter-bar/index.d.ts +2 -0
  276. package/dist/components/filter-bar/index.js +3 -0
  277. package/dist/components/filter-bar/use-filter-view.d.ts +86 -0
  278. package/dist/components/filter-bar/use-filter-view.js +219 -0
  279. package/dist/components/form/first-invalid.d.ts +10 -0
  280. package/dist/components/form/first-invalid.js +31 -0
  281. package/dist/components/form/form-context.d.ts +23 -0
  282. package/dist/components/form/form-context.js +28 -0
  283. package/dist/components/form/form.css +14 -0
  284. package/dist/components/form/form.d.ts +68 -0
  285. package/dist/components/form/form.js +317 -0
  286. package/dist/components/form/form.module.js +8 -0
  287. package/dist/components/form/index.d.ts +2 -0
  288. package/dist/components/form/index.js +3 -0
  289. package/dist/components/icon/icon.css +9 -0
  290. package/dist/components/icon/icon.d.ts +31 -0
  291. package/dist/components/icon/icon.js +61 -0
  292. package/dist/components/icon/icon.module.js +4 -0
  293. package/dist/components/icon/index.d.ts +1 -0
  294. package/dist/components/icon/index.js +1 -0
  295. package/dist/components/link/index.d.ts +1 -0
  296. package/dist/components/link/index.js +1 -0
  297. package/dist/components/link/link.css +18 -0
  298. package/dist/components/link/link.d.ts +11 -0
  299. package/dist/components/link/link.js +45 -0
  300. package/dist/components/link/link.module.js +4 -0
  301. package/dist/components/link-button/index.d.ts +1 -0
  302. package/dist/components/link-button/index.js +1 -0
  303. package/dist/components/link-button/link-button.d.ts +23 -0
  304. package/dist/components/link-button/link-button.js +80 -0
  305. package/dist/components/loading-message/index.d.ts +1 -0
  306. package/dist/components/loading-message/index.js +1 -0
  307. package/dist/components/loading-message/loading-message.d.ts +22 -0
  308. package/dist/components/loading-message/loading-message.js +55 -0
  309. package/dist/components/locale-provider/index.d.ts +1 -0
  310. package/dist/components/locale-provider/index.js +1 -0
  311. package/dist/components/locale-provider/locale-provider.d.ts +22 -0
  312. package/dist/components/locale-provider/locale-provider.js +50 -0
  313. package/dist/components/menu/index.d.ts +1 -0
  314. package/dist/components/menu/index.js +1 -0
  315. package/dist/components/menu/menu.css +122 -0
  316. package/dist/components/menu/menu.d.ts +78 -0
  317. package/dist/components/menu/menu.js +382 -0
  318. package/dist/components/menu/menu.module.js +20 -0
  319. package/dist/components/nav/index.d.ts +3 -0
  320. package/dist/components/nav/index.js +3 -0
  321. package/dist/components/nav/nav-context.d.ts +17 -0
  322. package/dist/components/nav/nav-context.js +5 -0
  323. package/dist/components/nav/nav-item-view.d.ts +63 -0
  324. package/dist/components/nav/nav-item-view.js +243 -0
  325. package/dist/components/nav/nav.css +310 -0
  326. package/dist/components/nav/nav.d.ts +87 -0
  327. package/dist/components/nav/nav.js +481 -0
  328. package/dist/components/nav/nav.module.js +32 -0
  329. package/dist/components/number-field/index.d.ts +4 -0
  330. package/dist/components/number-field/index.js +5 -0
  331. package/dist/components/number-field/number-field-formats.d.ts +24 -0
  332. package/dist/components/number-field/number-field-formats.js +43 -0
  333. package/dist/components/number-field/number-field.css +116 -0
  334. package/dist/components/number-field/number-field.d.ts +34 -0
  335. package/dist/components/number-field/number-field.js +168 -0
  336. package/dist/components/number-field/number-field.module.js +16 -0
  337. package/dist/components/number-field/number-input.d.ts +76 -0
  338. package/dist/components/number-field/number-input.js +383 -0
  339. package/dist/components/number-field/tsf-number-field.d.ts +14 -0
  340. package/dist/components/number-field/tsf-number-field.js +34 -0
  341. package/dist/components/otp-field/index.d.ts +3 -0
  342. package/dist/components/otp-field/index.js +4 -0
  343. package/dist/components/otp-field/otp-field.css +97 -0
  344. package/dist/components/otp-field/otp-field.d.ts +22 -0
  345. package/dist/components/otp-field/otp-field.js +91 -0
  346. package/dist/components/otp-field/otp-field.module.js +12 -0
  347. package/dist/components/otp-field/otp-input-context.d.ts +27 -0
  348. package/dist/components/otp-field/otp-input-context.js +15 -0
  349. package/dist/components/otp-field/otp-input.d.ts +76 -0
  350. package/dist/components/otp-field/otp-input.js +341 -0
  351. package/dist/components/otp-field/tsf-otp-field.d.ts +14 -0
  352. package/dist/components/otp-field/tsf-otp-field.js +34 -0
  353. package/dist/components/pagination/index.d.ts +1 -0
  354. package/dist/components/pagination/index.js +1 -0
  355. package/dist/components/pagination/pagination-context.d.ts +23 -0
  356. package/dist/components/pagination/pagination-context.js +14 -0
  357. package/dist/components/pagination/pagination.css +24 -0
  358. package/dist/components/pagination/pagination.d.ts +60 -0
  359. package/dist/components/pagination/pagination.js +341 -0
  360. package/dist/components/pagination/pagination.module.js +12 -0
  361. package/dist/components/password-field/index.d.ts +4 -0
  362. package/dist/components/password-field/index.js +4 -0
  363. package/dist/components/password-field/password-field.css +66 -0
  364. package/dist/components/password-field/password-field.d.ts +44 -0
  365. package/dist/components/password-field/password-field.js +227 -0
  366. package/dist/components/password-field/password-field.module.js +20 -0
  367. package/dist/components/password-field/password-strength.d.ts +27 -0
  368. package/dist/components/password-field/password-strength.js +124 -0
  369. package/dist/components/password-field/tsf-password-field.d.ts +14 -0
  370. package/dist/components/password-field/tsf-password-field.js +34 -0
  371. package/dist/components/phone-field/index.d.ts +2 -0
  372. package/dist/components/phone-field/index.js +3 -0
  373. package/dist/components/phone-field/phone-field.d.ts +14 -0
  374. package/dist/components/phone-field/phone-field.js +29 -0
  375. package/dist/components/phone-field/tsf-phone-field.d.ts +14 -0
  376. package/dist/components/phone-field/tsf-phone-field.js +14 -0
  377. package/dist/components/photo-field/index.d.ts +3 -0
  378. package/dist/components/photo-field/index.js +4 -0
  379. package/dist/components/photo-field/photo-field.d.ts +29 -0
  380. package/dist/components/photo-field/photo-field.js +183 -0
  381. package/dist/components/photo-field/photo-input.css +113 -0
  382. package/dist/components/photo-field/photo-input.d.ts +63 -0
  383. package/dist/components/photo-field/photo-input.js +327 -0
  384. package/dist/components/photo-field/photo-input.module.js +18 -0
  385. package/dist/components/photo-field/tsf-photo-field.d.ts +19 -0
  386. package/dist/components/photo-field/tsf-photo-field.js +56 -0
  387. package/dist/components/popover/index.d.ts +1 -0
  388. package/dist/components/popover/index.js +1 -0
  389. package/dist/components/popover/popover.css +120 -0
  390. package/dist/components/popover/popover.d.ts +72 -0
  391. package/dist/components/popover/popover.js +434 -0
  392. package/dist/components/popover/popover.module.js +34 -0
  393. package/dist/components/radio-group-field/index.d.ts +3 -0
  394. package/dist/components/radio-group-field/index.js +4 -0
  395. package/dist/components/radio-group-field/radio-group-field.d.ts +26 -0
  396. package/dist/components/radio-group-field/radio-group-field.js +128 -0
  397. package/dist/components/radio-group-field/radio-group.css +116 -0
  398. package/dist/components/radio-group-field/radio-group.d.ts +38 -0
  399. package/dist/components/radio-group-field/radio-group.js +158 -0
  400. package/dist/components/radio-group-field/radio-group.module.js +12 -0
  401. package/dist/components/radio-group-field/tsf-radio-group-field.d.ts +15 -0
  402. package/dist/components/radio-group-field/tsf-radio-group-field.js +41 -0
  403. package/dist/components/search-field/index.d.ts +2 -0
  404. package/dist/components/search-field/index.js +3 -0
  405. package/dist/components/search-field/search-field.d.ts +17 -0
  406. package/dist/components/search-field/search-field.js +45 -0
  407. package/dist/components/search-field/tsf-search-field.d.ts +14 -0
  408. package/dist/components/search-field/tsf-search-field.js +14 -0
  409. package/dist/components/segmented-control-field/index.d.ts +3 -0
  410. package/dist/components/segmented-control-field/index.js +4 -0
  411. package/dist/components/segmented-control-field/segmented-control-field.d.ts +32 -0
  412. package/dist/components/segmented-control-field/segmented-control-field.js +166 -0
  413. package/dist/components/segmented-control-field/segmented-control.css +203 -0
  414. package/dist/components/segmented-control-field/segmented-control.d.ts +58 -0
  415. package/dist/components/segmented-control-field/segmented-control.js +209 -0
  416. package/dist/components/segmented-control-field/segmented-control.module.js +12 -0
  417. package/dist/components/segmented-control-field/tsf-segmented-control-field.d.ts +15 -0
  418. package/dist/components/segmented-control-field/tsf-segmented-control-field.js +41 -0
  419. package/dist/components/select-field/index.d.ts +3 -0
  420. package/dist/components/select-field/index.js +4 -0
  421. package/dist/components/select-field/select-context.d.ts +20 -0
  422. package/dist/components/select-field/select-context.js +15 -0
  423. package/dist/components/select-field/select-field.d.ts +32 -0
  424. package/dist/components/select-field/select-field.js +312 -0
  425. package/dist/components/select-field/select.css +233 -0
  426. package/dist/components/select-field/select.d.ts +78 -0
  427. package/dist/components/select-field/select.js +529 -0
  428. package/dist/components/select-field/select.module.js +30 -0
  429. package/dist/components/select-field/tsf-select-field.d.ts +15 -0
  430. package/dist/components/select-field/tsf-select-field.js +41 -0
  431. package/dist/components/skeleton/index.d.ts +1 -0
  432. package/dist/components/skeleton/index.js +1 -0
  433. package/dist/components/skeleton/skeleton.css +16 -0
  434. package/dist/components/skeleton/skeleton.d.ts +13 -0
  435. package/dist/components/skeleton/skeleton.js +34 -0
  436. package/dist/components/skeleton/skeleton.module.js +9 -0
  437. package/dist/components/spinner/index.d.ts +1 -0
  438. package/dist/components/spinner/index.js +1 -0
  439. package/dist/components/spinner/spinner.css +7 -0
  440. package/dist/components/spinner/spinner.d.ts +15 -0
  441. package/dist/components/spinner/spinner.js +50 -0
  442. package/dist/components/spinner/spinner.module.js +4 -0
  443. package/dist/components/stale/index.d.ts +1 -0
  444. package/dist/components/stale/index.js +1 -0
  445. package/dist/components/stale/stale.css +60 -0
  446. package/dist/components/stale/stale.d.ts +68 -0
  447. package/dist/components/stale/stale.js +231 -0
  448. package/dist/components/stale/stale.module.js +16 -0
  449. package/dist/components/status-message/index.d.ts +1 -0
  450. package/dist/components/status-message/index.js +1 -0
  451. package/dist/components/status-message/status-message.css +122 -0
  452. package/dist/components/status-message/status-message.d.ts +72 -0
  453. package/dist/components/status-message/status-message.js +182 -0
  454. package/dist/components/status-message/status-message.module.js +16 -0
  455. package/dist/components/status-message/status-preset.d.ts +26 -0
  456. package/dist/components/status-message/status-preset.js +64 -0
  457. package/dist/components/switch-field/index.d.ts +3 -0
  458. package/dist/components/switch-field/index.js +4 -0
  459. package/dist/components/switch-field/switch-field.d.ts +23 -0
  460. package/dist/components/switch-field/switch-field.js +142 -0
  461. package/dist/components/switch-field/switch.css +145 -0
  462. package/dist/components/switch-field/switch.d.ts +35 -0
  463. package/dist/components/switch-field/switch.js +207 -0
  464. package/dist/components/switch-field/switch.module.js +12 -0
  465. package/dist/components/switch-field/tsf-switch-field.d.ts +14 -0
  466. package/dist/components/switch-field/tsf-switch-field.js +40 -0
  467. package/dist/components/tabs/index.d.ts +1 -0
  468. package/dist/components/tabs/index.js +1 -0
  469. package/dist/components/tabs/tabs.css +122 -0
  470. package/dist/components/tabs/tabs.d.ts +57 -0
  471. package/dist/components/tabs/tabs.js +194 -0
  472. package/dist/components/tabs/tabs.module.js +18 -0
  473. package/dist/components/tag/index.d.ts +1 -0
  474. package/dist/components/tag/index.js +1 -0
  475. package/dist/components/tag/tag.css +120 -0
  476. package/dist/components/tag/tag.d.ts +36 -0
  477. package/dist/components/tag/tag.js +124 -0
  478. package/dist/components/tag/tag.module.js +10 -0
  479. package/dist/components/tag-group/index.d.ts +1 -0
  480. package/dist/components/tag-group/index.js +1 -0
  481. package/dist/components/tag-group/tag-group.css +155 -0
  482. package/dist/components/tag-group/tag-group.d.ts +53 -0
  483. package/dist/components/tag-group/tag-group.js +182 -0
  484. package/dist/components/tag-group/tag-group.module.js +12 -0
  485. package/dist/components/text-field/connect-text-preset.d.ts +13 -0
  486. package/dist/components/text-field/connect-text-preset.js +34 -0
  487. package/dist/components/text-field/index.d.ts +5 -0
  488. package/dist/components/text-field/index.js +5 -0
  489. package/dist/components/text-field/text-field.css +170 -0
  490. package/dist/components/text-field/text-field.d.ts +57 -0
  491. package/dist/components/text-field/text-field.js +247 -0
  492. package/dist/components/text-field/text-field.module.js +22 -0
  493. package/dist/components/text-field/text-input-context.d.ts +28 -0
  494. package/dist/components/text-field/text-input-context.js +16 -0
  495. package/dist/components/text-field/text-input.d.ts +79 -0
  496. package/dist/components/text-field/text-input.js +588 -0
  497. package/dist/components/text-field/text-preset.d.ts +7 -0
  498. package/dist/components/text-field/tsf-text-field.d.ts +14 -0
  499. package/dist/components/text-field/tsf-text-field.js +34 -0
  500. package/dist/components/textarea-field/index.d.ts +3 -0
  501. package/dist/components/textarea-field/index.js +4 -0
  502. package/dist/components/textarea-field/textarea-field.css +12 -0
  503. package/dist/components/textarea-field/textarea-field.d.ts +19 -0
  504. package/dist/components/textarea-field/textarea-field.js +168 -0
  505. package/dist/components/textarea-field/textarea-field.module.js +8 -0
  506. package/dist/components/textarea-field/textarea.d.ts +19 -0
  507. package/dist/components/textarea-field/textarea.js +108 -0
  508. package/dist/components/textarea-field/tsf-textarea-field.d.ts +14 -0
  509. package/dist/components/textarea-field/tsf-textarea-field.js +34 -0
  510. package/dist/components/textarea-field/use-autosize.d.ts +11 -0
  511. package/dist/components/textarea-field/use-autosize.js +65 -0
  512. package/dist/components/time-field/index.d.ts +3 -0
  513. package/dist/components/time-field/index.js +4 -0
  514. package/dist/components/time-field/time-field.d.ts +25 -0
  515. package/dist/components/time-field/time-field.js +115 -0
  516. package/dist/components/time-field/time-input.d.ts +30 -0
  517. package/dist/components/time-field/time-input.js +66 -0
  518. package/dist/components/time-field/tsf-time-field.d.ts +14 -0
  519. package/dist/components/time-field/tsf-time-field.js +40 -0
  520. package/dist/components/time-zone-provider/index.d.ts +1 -0
  521. package/dist/components/time-zone-provider/index.js +1 -0
  522. package/dist/components/time-zone-provider/time-zone-provider.d.ts +22 -0
  523. package/dist/components/time-zone-provider/time-zone-provider.js +39 -0
  524. package/dist/components/toast/index.d.ts +2 -0
  525. package/dist/components/toast/index.js +3 -0
  526. package/dist/components/toast/toast-provider.css +99 -0
  527. package/dist/components/toast/toast-provider.d.ts +18 -0
  528. package/dist/components/toast/toast-provider.js +203 -0
  529. package/dist/components/toast/toast-provider.module.js +24 -0
  530. package/dist/components/toast/toast.d.ts +79 -0
  531. package/dist/components/toast/toast.js +68 -0
  532. package/dist/components/toggle-group-field/index.d.ts +3 -0
  533. package/dist/components/toggle-group-field/index.js +4 -0
  534. package/dist/components/toggle-group-field/toggle-group-field.d.ts +32 -0
  535. package/dist/components/toggle-group-field/toggle-group-field.js +158 -0
  536. package/dist/components/toggle-group-field/toggle-group.css +148 -0
  537. package/dist/components/toggle-group-field/toggle-group.d.ts +44 -0
  538. package/dist/components/toggle-group-field/toggle-group.js +156 -0
  539. package/dist/components/toggle-group-field/toggle-group.module.js +8 -0
  540. package/dist/components/toggle-group-field/tsf-toggle-group-field.d.ts +15 -0
  541. package/dist/components/toggle-group-field/tsf-toggle-group-field.js +41 -0
  542. package/dist/components/tooltip/index.d.ts +1 -0
  543. package/dist/components/tooltip/index.js +1 -0
  544. package/dist/components/tooltip/tooltip.css +22 -0
  545. package/dist/components/tooltip/tooltip.d.ts +46 -0
  546. package/dist/components/tooltip/tooltip.js +175 -0
  547. package/dist/components/tooltip/tooltip.module.js +4 -0
  548. package/dist/data-table/data-table-content.d.ts +27 -0
  549. package/dist/data-table/data-table-content.js +311 -0
  550. package/dist/data-table/data-table-context.d.ts +33 -0
  551. package/dist/data-table/data-table-context.js +31 -0
  552. package/dist/data-table/data-table-selection.d.ts +42 -0
  553. package/dist/data-table/data-table-selection.js +299 -0
  554. package/dist/data-table/data-table.css +515 -0
  555. package/dist/data-table/data-table.d.ts +93 -0
  556. package/dist/data-table/data-table.js +215 -0
  557. package/dist/data-table/data-table.module.js +68 -0
  558. package/dist/data-table/index.d.ts +6 -0
  559. package/dist/data-table/index.js +5 -0
  560. package/dist/data-table/resolve-view.d.ts +31 -0
  561. package/dist/data-table/resolve-view.js +37 -0
  562. package/dist/data-table/table-features.d.ts +69 -0
  563. package/dist/data-table/table-features.js +41 -0
  564. package/dist/data-table/use-sticky-offsets.d.ts +21 -0
  565. package/dist/data-table/use-sticky-offsets.js +86 -0
  566. package/dist/data-view/index.d.ts +1 -0
  567. package/dist/data-view/index.js +1 -0
  568. package/dist/data-view/use-data-view.d.ts +83 -0
  569. package/dist/data-view/use-data-view.js +135 -0
  570. package/dist/index.d.ts +69 -0
  571. package/dist/index.js +132 -0
  572. package/dist/lib/calendar/calendar-navigation.d.ts +19 -0
  573. package/dist/lib/calendar/calendar-navigation.js +216 -0
  574. package/dist/lib/calendar/calendar-state.d.ts +19 -0
  575. package/dist/lib/calendar/calendar-state.js +33 -0
  576. package/dist/lib/calendar/calendar-year.d.ts +20 -0
  577. package/dist/lib/calendar/calendar-year.js +342 -0
  578. package/dist/lib/calendar/temporal-value.d.ts +84 -0
  579. package/dist/lib/calendar/temporal-value.js +105 -0
  580. package/dist/lib/calendar/temporal.css +596 -0
  581. package/dist/lib/calendar/temporal.d.ts +134 -0
  582. package/dist/lib/calendar/temporal.js +783 -0
  583. package/dist/lib/calendar/temporal.module.js +80 -0
  584. package/dist/lib/format-bytes.d.ts +10 -0
  585. package/dist/lib/format-bytes.js +22 -0
  586. package/dist/lib/forms/context.d.ts +32 -0
  587. package/dist/lib/forms/context.js +33 -0
  588. package/dist/lib/forms/create-app-form.d.ts +24 -0
  589. package/dist/lib/forms/create-app-form.js +36 -0
  590. package/dist/lib/forms/errors.d.ts +23 -0
  591. package/dist/lib/forms/errors.js +25 -0
  592. package/dist/lib/forms/failed-submit.d.ts +16 -0
  593. package/dist/lib/forms/failed-submit.js +44 -0
  594. package/dist/lib/forms/index.d.ts +3 -0
  595. package/dist/lib/forms/index.js +4 -0
  596. package/dist/lib/forms/use-connected-field.d.ts +27 -0
  597. package/dist/lib/forms/use-connected-field.js +48 -0
  598. package/dist/lib/hooks/index.d.ts +5 -0
  599. package/dist/lib/hooks/index.js +6 -0
  600. package/dist/lib/hooks/use-busy-phase.d.ts +31 -0
  601. package/dist/lib/hooks/use-busy-phase.js +75 -0
  602. package/dist/lib/hooks/use-media-query.d.ts +8 -0
  603. package/dist/lib/hooks/use-media-query.js +34 -0
  604. package/dist/lib/hooks/use-presence.d.ts +25 -0
  605. package/dist/lib/hooks/use-presence.js +155 -0
  606. package/dist/lib/hooks/use-row-selection.d.ts +65 -0
  607. package/dist/lib/hooks/use-row-selection.js +136 -0
  608. package/dist/lib/hooks/use-theme.d.ts +28 -0
  609. package/dist/lib/hooks/use-theme.js +88 -0
  610. package/dist/lib/iso-zoned.d.ts +9 -0
  611. package/dist/lib/iso-zoned.js +19 -0
  612. package/dist/lib/password-strength/password-strength.d.ts +38 -0
  613. package/dist/lib/password-strength/password-strength.js +72 -0
  614. package/dist/lib/popup-edge-padding.d.ts +20 -0
  615. package/dist/lib/popup-edge-padding.js +41 -0
  616. package/dist/lib/sliding-indicator/index.d.ts +1 -0
  617. package/dist/lib/sliding-indicator/use-sliding-indicator.d.ts +27 -0
  618. package/dist/lib/sliding-indicator/use-sliding-indicator.js +84 -0
  619. package/dist/lib/storage.d.ts +21 -0
  620. package/dist/lib/storage.js +0 -0
  621. package/dist/lib/table-storage.d.ts +43 -0
  622. package/dist/lib/table-storage.js +62 -0
  623. package/dist/lib/text-length.d.ts +10 -0
  624. package/dist/lib/text-length.js +15 -0
  625. package/dist/lib/tone.d.ts +14 -0
  626. package/dist/lib/tone.js +0 -0
  627. package/dist/lib/unsaved-changes/before-unload.d.ts +8 -0
  628. package/dist/lib/unsaved-changes/before-unload.js +37 -0
  629. package/dist/lib/unsaved-changes/index.d.ts +4 -0
  630. package/dist/lib/unsaved-changes/index.js +5 -0
  631. package/dist/lib/unsaved-changes/leave-guard.d.ts +80 -0
  632. package/dist/lib/unsaved-changes/leave-guard.js +170 -0
  633. package/dist/lib/unsaved-changes/policy.d.ts +24 -0
  634. package/dist/lib/unsaved-changes/policy.js +17 -0
  635. package/dist/lib/unsaved-changes/registry.d.ts +36 -0
  636. package/dist/lib/unsaved-changes/registry.js +78 -0
  637. package/dist/lib/unsaved-changes/tanstack-router.d.ts +12 -0
  638. package/dist/lib/unsaved-changes/tanstack-router.js +50 -0
  639. package/dist/lib/use-infinite-scroll.d.ts +31 -0
  640. package/dist/lib/use-infinite-scroll.js +78 -0
  641. package/dist/lib/use-intent.d.ts +17 -0
  642. package/dist/lib/use-intent.js +77 -0
  643. package/dist/lib/use-required-context.d.ts +9 -0
  644. package/dist/lib/use-required-context.js +15 -0
  645. package/dist/terrazzo/index.d.ts +39 -0
  646. package/dist/terrazzo/index.js +93 -0
  647. package/dist/tokens.css +1102 -0
  648. package/dist/vendor/@material-design-icons/svg/outlined/add.js +12 -0
  649. package/dist/vendor/@material-design-icons/svg/outlined/arrow_downward.js +12 -0
  650. package/dist/vendor/@material-design-icons/svg/outlined/arrow_forward.js +12 -0
  651. package/dist/vendor/@material-design-icons/svg/outlined/arrow_upward.js +12 -0
  652. package/dist/vendor/@material-design-icons/svg/outlined/attach_file.js +12 -0
  653. package/dist/vendor/@material-design-icons/svg/outlined/block.js +12 -0
  654. package/dist/vendor/@material-design-icons/svg/outlined/calendar_today.js +12 -0
  655. package/dist/vendor/@material-design-icons/svg/outlined/check.js +12 -0
  656. package/dist/vendor/@material-design-icons/svg/outlined/check_circle.js +12 -0
  657. package/dist/vendor/@material-design-icons/svg/outlined/chevron_left.js +12 -0
  658. package/dist/vendor/@material-design-icons/svg/outlined/chevron_right.js +12 -0
  659. package/dist/vendor/@material-design-icons/svg/outlined/close.js +12 -0
  660. package/dist/vendor/@material-design-icons/svg/outlined/content_copy.js +12 -0
  661. package/dist/vendor/@material-design-icons/svg/outlined/date_range.js +12 -0
  662. package/dist/vendor/@material-design-icons/svg/outlined/description.js +12 -0
  663. package/dist/vendor/@material-design-icons/svg/outlined/download.js +12 -0
  664. package/dist/vendor/@material-design-icons/svg/outlined/error.js +12 -0
  665. package/dist/vendor/@material-design-icons/svg/outlined/error_outline.js +12 -0
  666. package/dist/vendor/@material-design-icons/svg/outlined/expand_less.js +12 -0
  667. package/dist/vendor/@material-design-icons/svg/outlined/expand_more.js +12 -0
  668. package/dist/vendor/@material-design-icons/svg/outlined/filter_alt.js +12 -0
  669. package/dist/vendor/@material-design-icons/svg/outlined/filter_alt_off.js +12 -0
  670. package/dist/vendor/@material-design-icons/svg/outlined/first_page.js +12 -0
  671. package/dist/vendor/@material-design-icons/svg/outlined/info.js +12 -0
  672. package/dist/vendor/@material-design-icons/svg/outlined/keyboard_arrow_down.js +12 -0
  673. package/dist/vendor/@material-design-icons/svg/outlined/last_page.js +12 -0
  674. package/dist/vendor/@material-design-icons/svg/outlined/mail.js +12 -0
  675. package/dist/vendor/@material-design-icons/svg/outlined/more_horiz.js +12 -0
  676. package/dist/vendor/@material-design-icons/svg/outlined/photo_camera.js +12 -0
  677. package/dist/vendor/@material-design-icons/svg/outlined/remove.js +12 -0
  678. package/dist/vendor/@material-design-icons/svg/outlined/restart_alt.js +12 -0
  679. package/dist/vendor/@material-design-icons/svg/outlined/restore.js +12 -0
  680. package/dist/vendor/@material-design-icons/svg/outlined/search.js +12 -0
  681. package/dist/vendor/@material-design-icons/svg/outlined/unfold_more.js +12 -0
  682. package/dist/vendor/@material-design-icons/svg/outlined/upload_file.js +12 -0
  683. package/dist/vendor/@material-design-icons/svg/outlined/visibility.js +12 -0
  684. package/dist/vendor/@material-design-icons/svg/outlined/visibility_off.js +12 -0
  685. package/dist/vendor/@material-design-icons/svg/outlined/warning_amber.js +12 -0
  686. package/package.json +452 -5
  687. package/tokens/dark.tokens.json +329 -0
  688. package/tokens/kit.resolver.json +38 -0
  689. package/tokens/ref.tokens.json +1436 -0
  690. package/tokens/sys.tokens.json +1267 -0
@@ -0,0 +1,215 @@
1
+ import { Pagination } from "../components/pagination/pagination.js";
2
+ import { DataTableContent } from "./data-table-content.js";
3
+ import { DataTableContext, useDataTable } from "./data-table-context.js";
4
+ import { DataTableSelectionBar } from "./data-table-selection.js";
5
+ import { PAGE_SIZE_OPTIONS } from "./table-features.js";
6
+ import data_table_module_default from "./data-table.module.js";
7
+ import { c } from "react/compiler-runtime";
8
+ import { jsx, jsxs } from "react/jsx-runtime";
9
+ import { clsx } from "clsx";
10
+ // src/data-table/data-table.tsx
11
+ var Root = (t0) => {
12
+ const $ = c(14);
13
+ const { table, selection, status, isFetching: t1, onRetry, children, className } = t0;
14
+ const isFetching = t1 === void 0 ? false : t1;
15
+ let t2;
16
+ if ($[0] !== isFetching || $[1] !== onRetry || $[2] !== selection || $[3] !== status || $[4] !== table) {
17
+ t2 = {
18
+ table,
19
+ selection,
20
+ status,
21
+ isFetching,
22
+ onRetry
23
+ };
24
+ $[0] = isFetching;
25
+ $[1] = onRetry;
26
+ $[2] = selection;
27
+ $[3] = status;
28
+ $[4] = table;
29
+ $[5] = t2;
30
+ } else t2 = $[5];
31
+ let t3;
32
+ if ($[6] !== className) {
33
+ t3 = clsx(data_table_module_default.root, className);
34
+ $[6] = className;
35
+ $[7] = t3;
36
+ } else t3 = $[7];
37
+ let t4;
38
+ if ($[8] !== children || $[9] !== t3) {
39
+ t4 = /* @__PURE__ */ jsx("div", {
40
+ className: t3,
41
+ children
42
+ });
43
+ $[8] = children;
44
+ $[9] = t3;
45
+ $[10] = t4;
46
+ } else t4 = $[10];
47
+ let t5;
48
+ if ($[11] !== t2 || $[12] !== t4) {
49
+ t5 = /* @__PURE__ */ jsx(DataTableContext, {
50
+ value: t2,
51
+ children: t4
52
+ });
53
+ $[11] = t2;
54
+ $[12] = t4;
55
+ $[13] = t5;
56
+ } else t5 = $[13];
57
+ return t5;
58
+ };
59
+ /** Layout slot above the table for search, filters and actions. */
60
+ var Toolbar = (t0) => {
61
+ const $ = c(5);
62
+ const { children, className } = t0;
63
+ let t1;
64
+ if ($[0] !== className) {
65
+ t1 = clsx(data_table_module_default.toolbar, className);
66
+ $[0] = className;
67
+ $[1] = t1;
68
+ } else t1 = $[1];
69
+ let t2;
70
+ if ($[2] !== children || $[3] !== t1) {
71
+ t2 = /* @__PURE__ */ jsx("div", {
72
+ className: t1,
73
+ children
74
+ });
75
+ $[2] = children;
76
+ $[3] = t1;
77
+ $[4] = t2;
78
+ } else t2 = $[4];
79
+ return t2;
80
+ };
81
+ /**
82
+ * The kit's `Pagination`, driven by the instance's pagination API (built with
83
+ * `manualPagination` + server `rowCount`). The page sizes come from the
84
+ * table's `meta.pageSizeOptions`, and picking one returns to the first page.
85
+ */
86
+ var DataTablePagination = (t0) => {
87
+ const $ = c(27);
88
+ const { pageSizeLabel, indexLabel, firstLabel, previousLabel, nextLabel, lastLabel, className } = t0;
89
+ const { table } = useDataTable();
90
+ const { pageIndex, pageSize } = table.state.pagination;
91
+ let t1;
92
+ if ($[0] !== className) {
93
+ t1 = clsx(data_table_module_default.pagination, className);
94
+ $[0] = className;
95
+ $[1] = t1;
96
+ } else t1 = $[1];
97
+ let t2;
98
+ if ($[2] !== table) {
99
+ t2 = table.getPageCount();
100
+ $[2] = table;
101
+ $[3] = t2;
102
+ } else t2 = $[3];
103
+ const t3 = Math.max(t2, 1);
104
+ const t4 = table.options.meta?.pageSizeOptions ?? PAGE_SIZE_OPTIONS;
105
+ let t5;
106
+ let t6;
107
+ if ($[4] !== table) {
108
+ t5 = (next) => {
109
+ table.setPageIndex(next);
110
+ };
111
+ t6 = (next_0) => {
112
+ table.setPagination({
113
+ pageIndex: 0,
114
+ pageSize: next_0
115
+ });
116
+ };
117
+ $[4] = table;
118
+ $[5] = t5;
119
+ $[6] = t6;
120
+ } else {
121
+ t5 = $[5];
122
+ t6 = $[6];
123
+ }
124
+ let t7;
125
+ if ($[7] !== pageSizeLabel) {
126
+ t7 = /* @__PURE__ */ jsx(Pagination.PageSize, { label: pageSizeLabel });
127
+ $[7] = pageSizeLabel;
128
+ $[8] = t7;
129
+ } else t7 = $[8];
130
+ let t8;
131
+ if ($[9] !== indexLabel) {
132
+ t8 = /* @__PURE__ */ jsx(Pagination.Index, { label: indexLabel });
133
+ $[9] = indexLabel;
134
+ $[10] = t8;
135
+ } else t8 = $[10];
136
+ let t9;
137
+ if ($[11] !== firstLabel || $[12] !== lastLabel || $[13] !== nextLabel || $[14] !== previousLabel) {
138
+ t9 = /* @__PURE__ */ jsx(Pagination.Controls, {
139
+ firstLabel,
140
+ previousLabel,
141
+ nextLabel,
142
+ lastLabel
143
+ });
144
+ $[11] = firstLabel;
145
+ $[12] = lastLabel;
146
+ $[13] = nextLabel;
147
+ $[14] = previousLabel;
148
+ $[15] = t9;
149
+ } else t9 = $[15];
150
+ let t10;
151
+ if ($[16] !== pageIndex || $[17] !== pageSize || $[18] !== t1 || $[19] !== t3 || $[20] !== t4 || $[21] !== t5 || $[22] !== t6 || $[23] !== t7 || $[24] !== t8 || $[25] !== t9) {
152
+ t10 = /* @__PURE__ */ jsxs(Pagination.Root, {
153
+ className: t1,
154
+ pageIndex,
155
+ pageCount: t3,
156
+ pageSize,
157
+ pageSizes: t4,
158
+ onPageIndexChange: t5,
159
+ onPageSizeChange: t6,
160
+ children: [
161
+ t7,
162
+ t8,
163
+ t9
164
+ ]
165
+ });
166
+ $[16] = pageIndex;
167
+ $[17] = pageSize;
168
+ $[18] = t1;
169
+ $[19] = t3;
170
+ $[20] = t4;
171
+ $[21] = t5;
172
+ $[22] = t6;
173
+ $[23] = t7;
174
+ $[24] = t8;
175
+ $[25] = t9;
176
+ $[26] = t10;
177
+ } else t10 = $[26];
178
+ return t10;
179
+ };
180
+ /**
181
+ * Composite data table over a TanStack Table instance. `Root` holds the
182
+ * instance and the injected query state in context; the parts lay it out:
183
+ * `Toolbar`, `SelectionBar`, `Content` and `Pagination`. A nested sub-table
184
+ * gets its own `DataTable.Root`, with its own instance and context.
185
+ *
186
+ * @example
187
+ * <DataTable.Root table={table} status={query.status} isFetching={query.isFetching}>
188
+ * <DataTable.Toolbar>
189
+ * <FilterBar.Root filters={filters}>…</FilterBar.Root>
190
+ * </DataTable.Toolbar>
191
+ * <DataTable.Content
192
+ * emptyState="No declarations yet."
193
+ * errorLabel="The declarations could not be loaded."
194
+ * loadingLabel="Loading declarations"
195
+ * slowLabel="This is taking longer than usual."
196
+ * retryLabel="Try again"
197
+ * />
198
+ * <DataTable.Pagination
199
+ * pageSizeLabel="Rows per page"
200
+ * indexLabel={page => `Page ${page.pageIndex + 1} of ${page.pageCount}`}
201
+ * firstLabel="First page"
202
+ * previousLabel="Previous page"
203
+ * nextLabel="Next page"
204
+ * lastLabel="Last page"
205
+ * />
206
+ * </DataTable.Root>
207
+ */
208
+ var DataTable = {
209
+ Root,
210
+ Toolbar,
211
+ Content: DataTableContent,
212
+ Pagination: DataTablePagination,
213
+ SelectionBar: DataTableSelectionBar
214
+ };
215
+ export { DataTable };
@@ -0,0 +1,68 @@
1
+ import './data-table.css';// src/data-table/data-table.module.scss
2
+ var root = "_root_i4wmq_3";
3
+ var toolbar = "_toolbar_i4wmq_77";
4
+ var scrollFrame = "_scrollFrame_i4wmq_84";
5
+ var stale = "_stale_i4wmq_92";
6
+ var staleOverlay = "_staleOverlay_i4wmq_98";
7
+ var contentWrap = "_contentWrap_i4wmq_101";
8
+ var th = "_th_i4wmq_132";
9
+ var edgeStart = "_edgeStart_i4wmq_1";
10
+ var edgeEnd = "_edgeEnd_i4wmq_1";
11
+ var refreshFailed = "_refreshFailed_i4wmq_165";
12
+ var table = "_table_i4wmq_177";
13
+ var thead = "_thead_i4wmq_185";
14
+ var sortToggle = "_sortToggle_i4wmq_200";
15
+ var sortIconIdle = "_sortIconIdle_i4wmq_251";
16
+ var td = "_td_i4wmq_255";
17
+ var row = "_row_i4wmq_280";
18
+ var subRow = "_subRow_i4wmq_302";
19
+ var skeletonBar = "_skeletonBar_i4wmq_311";
20
+ var busyCaption = "_busyCaption_i4wmq_314";
21
+ var stateCell = "_stateCell_i4wmq_322";
22
+ var errorState = "_errorState_i4wmq_327";
23
+ var pagination = "_pagination_i4wmq_330";
24
+ var selectionContainer = "_selectionContainer_i4wmq_334";
25
+ var selectionBar = "_selectionBar_i4wmq_338";
26
+ var selectionSummary = "_selectionSummary_i4wmq_408";
27
+ var selectionTotal = "_selectionTotal_i4wmq_423";
28
+ var selectionCount = "_selectionCount_i4wmq_424";
29
+ var selectionMeasure = "_selectionMeasure_i4wmq_425";
30
+ var selectionStatus = "_selectionStatus_i4wmq_457";
31
+ var selectionActions = "_selectionActions_i4wmq_465";
32
+ var selectionSelectAll = "_selectionSelectAll_i4wmq_495";
33
+ var selectionBulk = "_selectionBulk_i4wmq_498";
34
+ var data_table_module_default = {
35
+ root,
36
+ toolbar,
37
+ scrollFrame,
38
+ stale,
39
+ staleOverlay,
40
+ contentWrap,
41
+ th,
42
+ edgeStart,
43
+ edgeEnd,
44
+ refreshFailed,
45
+ table,
46
+ thead,
47
+ sortToggle,
48
+ sortIconIdle,
49
+ td,
50
+ row,
51
+ subRow,
52
+ skeletonBar,
53
+ busyCaption,
54
+ stateCell,
55
+ errorState,
56
+ pagination,
57
+ selectionContainer,
58
+ selectionBar,
59
+ selectionSummary,
60
+ selectionTotal,
61
+ selectionCount,
62
+ selectionMeasure,
63
+ selectionStatus,
64
+ selectionActions,
65
+ selectionSelectAll,
66
+ selectionBulk
67
+ };
68
+ export { busyCaption, contentWrap, data_table_module_default as default, edgeEnd, edgeStart, errorState, pagination, refreshFailed, root, row, scrollFrame, selectionActions, selectionBar, selectionBulk, selectionContainer, selectionCount, selectionMeasure, selectionSelectAll, selectionStatus, selectionSummary, selectionTotal, skeletonBar, sortIconIdle, sortToggle, stale, staleOverlay, stateCell, subRow, table, td, th, thead, toolbar };
@@ -0,0 +1,6 @@
1
+ export * from "./data-table.tsx";
2
+ export type { DataTableContentProps } from "./data-table-content.tsx";
3
+ export { type DataTableState, useDataTable, } from "./data-table-context.tsx";
4
+ export { type DataTableSelectionBarProps, type SelectionColumnOptions, selectionColumn, } from "./data-table-selection.tsx";
5
+ export type { DataTableStatus } from "./resolve-view.ts";
6
+ export * from "./table-features.ts";
@@ -0,0 +1,5 @@
1
+ import { DataTable } from "./data-table.js";
2
+ import { useDataTable } from "./data-table-context.js";
3
+ import { selectionColumn } from "./data-table-selection.js";
4
+ import { EMPTY_ROWS, PAGE_SIZE_OPTIONS, dataTableFeatures } from "./table-features.js";
5
+ export { DataTable, EMPTY_ROWS, PAGE_SIZE_OPTIONS, dataTableFeatures, selectionColumn, useDataTable };
@@ -0,0 +1,31 @@
1
+ /** The lifecycle status of the query a `DataTable` shows, as TanStack Query reports it. */
2
+ export type DataTableStatus = "pending" | "error" | "success";
3
+ /** Which body state `DataTable.Content` should render. */
4
+ export type TableView = "loading" | "error" | "empty" | "ready";
5
+ export type ResolvedView = Readonly<{
6
+ view: TableView;
7
+ /**
8
+ * True when rendered rows are from a previous successful fetch while a
9
+ * background refetch is in flight. Drives the subtle "stale" affordance.
10
+ */
11
+ stale: boolean;
12
+ /**
13
+ * True when the fetch failed but earlier rows are still on screen, so the
14
+ * failure is reported alongside them instead of replacing the body.
15
+ */
16
+ refreshFailed: boolean;
17
+ }>;
18
+ /**
19
+ * Maps an injected query state to the single body view `DataTable.Content`
20
+ * renders. Rows never unmount once they are on screen: a failure with rows
21
+ * still present stays on the `"ready"` body and reports `refreshFailed`.
22
+ *
23
+ * @example
24
+ * resolveView({ status: "success", isFetching: true, hasRows: true });
25
+ * // => { view: "ready", stale: true, refreshFailed: false }
26
+ */
27
+ export declare const resolveView: ({ status, isFetching, hasRows, }: Readonly<{
28
+ status: DataTableStatus;
29
+ isFetching: boolean;
30
+ hasRows: boolean;
31
+ }>) => ResolvedView;
@@ -0,0 +1,37 @@
1
+ // src/data-table/resolve-view.ts
2
+ /**
3
+ * Maps an injected query state to the single body view `DataTable.Content`
4
+ * renders. Rows never unmount once they are on screen: a failure with rows
5
+ * still present stays on the `"ready"` body and reports `refreshFailed`.
6
+ *
7
+ * @example
8
+ * resolveView({ status: "success", isFetching: true, hasRows: true });
9
+ * // => { view: "ready", stale: true, refreshFailed: false }
10
+ */
11
+ var resolveView = ({ status, isFetching, hasRows }) => {
12
+ if (status === "error") return hasRows ? {
13
+ view: "ready",
14
+ stale: false,
15
+ refreshFailed: true
16
+ } : {
17
+ view: "error",
18
+ stale: false,
19
+ refreshFailed: false
20
+ };
21
+ if (status === "pending") return {
22
+ view: "loading",
23
+ stale: false,
24
+ refreshFailed: false
25
+ };
26
+ if (!hasRows) return {
27
+ view: "empty",
28
+ stale: false,
29
+ refreshFailed: false
30
+ };
31
+ return {
32
+ view: "ready",
33
+ stale: isFetching,
34
+ refreshFailed: false
35
+ };
36
+ };
37
+ export { resolveView };
@@ -0,0 +1,69 @@
1
+ import { rowExpandingFeature, rowPaginationFeature, rowSelectionFeature, rowSortingFeature } from "@tanstack/react-table";
2
+ import type { ReactNode } from "react";
3
+ /** Per-column options a `DataTable` reads from a column definition's `meta`. */
4
+ export type DataTableColumnMeta = Readonly<{
5
+ /**
6
+ * Collapse the column to its content width rather than letting it take a
7
+ * share of the free space. For icon-button and control columns.
8
+ */
9
+ fit?: boolean;
10
+ /**
11
+ * This column holds quantities — amounts, counts, measures — and is
12
+ * end-aligned, with its unit named in the header. Not for codes or dates.
13
+ */
14
+ numeric?: boolean;
15
+ /**
16
+ * Pin this column to an edge of the scroll container, so it stays put while
17
+ * the rest of the table scrolls sideways. At most two per edge, and each
18
+ * edge's columns must be adjacent and sit at that edge of the column list.
19
+ */
20
+ sticky?: "start" | "end";
21
+ /**
22
+ * What this column draws in a placeholder row while the first page loads.
23
+ * Every other column falls back to a skeleton bar.
24
+ */
25
+ placeholderCell?: () => ReactNode;
26
+ }>;
27
+ /** The page sizes a table offers, as a list that is never empty. */
28
+ export type PageSizeOptions = readonly [
29
+ number,
30
+ ...number[]
31
+ ];
32
+ /**
33
+ * The page sizes a table offers when it names none of its own.
34
+ *
35
+ * @example
36
+ * pageSizeOptions: PAGE_SIZE_OPTIONS, // 10, 25, 50, 100
37
+ */
38
+ export declare const PAGE_SIZE_OPTIONS: PageSizeOptions;
39
+ /** Per-table options a `DataTable` reads from a table's `meta`. */
40
+ export type DataTableMeta = Readonly<{
41
+ /** The page sizes the pagination control offers. */
42
+ pageSizeOptions?: PageSizeOptions;
43
+ }>;
44
+ /** The TanStack Table features a `DataTable` instance registers. */
45
+ export type DataTableFeatures = Readonly<{
46
+ rowSortingFeature: typeof rowSortingFeature;
47
+ rowPaginationFeature: typeof rowPaginationFeature;
48
+ rowExpandingFeature: typeof rowExpandingFeature;
49
+ rowSelectionFeature: typeof rowSelectionFeature;
50
+ tableMeta: DataTableMeta;
51
+ columnMeta: DataTableColumnMeta;
52
+ }>;
53
+ /**
54
+ * The feature set a `DataTable` instance registers. No row-model slots:
55
+ * sorting and pagination are server-owned and expansion drives the table's
56
+ * own sub-row rendering.
57
+ *
58
+ * @example
59
+ * const table = useTable<DataTableFeatures, Row>({ features: dataTableFeatures, columns, data });
60
+ */
61
+ export declare const dataTableFeatures: DataTableFeatures;
62
+ /**
63
+ * A frozen empty rows array. Pass it as the `data` default when building the
64
+ * table instance, so an undefined query result never mints a new array.
65
+ *
66
+ * @example
67
+ * data: query.data?.items ?? EMPTY_ROWS,
68
+ */
69
+ export declare const EMPTY_ROWS: never[];
@@ -0,0 +1,41 @@
1
+ import { metaHelper, rowExpandingFeature, rowPaginationFeature, rowSelectionFeature, rowSortingFeature, tableFeatures } from "@tanstack/react-table";
2
+ // src/data-table/table-features.ts
3
+ /**
4
+ * The page sizes a table offers when it names none of its own.
5
+ *
6
+ * @example
7
+ * pageSizeOptions: PAGE_SIZE_OPTIONS, // 10, 25, 50, 100
8
+ */
9
+ var PAGE_SIZE_OPTIONS = [
10
+ 10,
11
+ 25,
12
+ 50,
13
+ 100
14
+ ];
15
+ /**
16
+ * The feature set a `DataTable` instance registers. No row-model slots:
17
+ * sorting and pagination are server-owned and expansion drives the table's
18
+ * own sub-row rendering.
19
+ *
20
+ * @example
21
+ * const table = useTable<DataTableFeatures, Row>({ features: dataTableFeatures, columns, data });
22
+ */
23
+ var dataTableFeatures = tableFeatures({
24
+ rowSortingFeature,
25
+ rowPaginationFeature,
26
+ rowExpandingFeature,
27
+ rowSelectionFeature,
28
+ tableMeta: metaHelper(),
29
+ columnMeta: metaHelper()
30
+ });
31
+ var emptyRows = [];
32
+ Object.freeze(emptyRows);
33
+ /**
34
+ * A frozen empty rows array. Pass it as the `data` default when building the
35
+ * table instance, so an undefined query result never mints a new array.
36
+ *
37
+ * @example
38
+ * data: query.data?.items ?? EMPTY_ROWS,
39
+ */
40
+ var EMPTY_ROWS = emptyRows;
41
+ export { EMPTY_ROWS, PAGE_SIZE_OPTIONS, dataTableFeatures };
@@ -0,0 +1,21 @@
1
+ import { type RefObject } from "react";
2
+ /**
3
+ * Publishes the measured geometry of a table's pinned columns as custom
4
+ * properties on the element the returned ref is attached to: one
5
+ * `--table-sticky-inset-{n}` per column pinned to the start and one
6
+ * `--table-sticky-end-{n}` per column pinned to the end, each holding
7
+ * everything between it and its edge, plus `--table-sticky-total` and
8
+ * `--table-sticky-end-total` for each group as a whole, and
9
+ * `--table-scrollbar-block` / `--table-scrollbar-inline` for the space the
10
+ * scroller's own scrollbars take. Widths are measured off the header cells of
11
+ * the frame's own table and re-measured on resize.
12
+ *
13
+ * @param pinnedColumnKey - The pinned column ids joined into one string; a
14
+ * changed pinned set re-runs the measurement.
15
+ * @returns Ref for the non-scrolling frame around the table.
16
+ *
17
+ * @example
18
+ * const frameRef = useStickyOffsets(pinnedIds.join(","));
19
+ * // <div ref={frameRef}> … <td style={{ insetInlineStart: "var(--table-sticky-inset-0)" }} />
20
+ */
21
+ export declare const useStickyOffsets: (pinnedColumnKey: string) => RefObject<HTMLDivElement | null>;
@@ -0,0 +1,86 @@
1
+ import { c } from "react/compiler-runtime";
2
+ import { useLayoutEffect, useRef } from "react";
3
+ // src/data-table/use-sticky-offsets.ts
4
+ var START_PROPERTY = "--table-sticky-inset";
5
+ var END_PROPERTY = "--table-sticky-end";
6
+ var TOTAL_PROPERTY = "--table-sticky-total";
7
+ var END_TOTAL_PROPERTY = "--table-sticky-end-total";
8
+ var SCROLLBAR_BLOCK_PROPERTY = "--table-scrollbar-block";
9
+ var SCROLLBAR_INLINE_PROPERTY = "--table-scrollbar-inline";
10
+ /**
11
+ * Publishes the measured geometry of a table's pinned columns as custom
12
+ * properties on the element the returned ref is attached to: one
13
+ * `--table-sticky-inset-{n}` per column pinned to the start and one
14
+ * `--table-sticky-end-{n}` per column pinned to the end, each holding
15
+ * everything between it and its edge, plus `--table-sticky-total` and
16
+ * `--table-sticky-end-total` for each group as a whole, and
17
+ * `--table-scrollbar-block` / `--table-scrollbar-inline` for the space the
18
+ * scroller's own scrollbars take. Widths are measured off the header cells of
19
+ * the frame's own table and re-measured on resize.
20
+ *
21
+ * @param pinnedColumnKey - The pinned column ids joined into one string; a
22
+ * changed pinned set re-runs the measurement.
23
+ * @returns Ref for the non-scrolling frame around the table.
24
+ *
25
+ * @example
26
+ * const frameRef = useStickyOffsets(pinnedIds.join(","));
27
+ * // <div ref={frameRef}> … <td style={{ insetInlineStart: "var(--table-sticky-inset-0)" }} />
28
+ */
29
+ var useStickyOffsets = (pinnedColumnKey) => {
30
+ const $ = c(3);
31
+ const frameRef = useRef(null);
32
+ let t0;
33
+ if ($[0] === Symbol.for("react.memo_cache_sentinel")) {
34
+ t0 = () => {
35
+ const frame = frameRef.current;
36
+ if (!frame) return;
37
+ const scroller = frame.querySelector("[data-scroller]");
38
+ const table = frame.querySelector("table");
39
+ const headerCells = (side) => Array.from(table?.querySelectorAll(`:scope > thead [data-sticky="${side}"]`) ?? []);
40
+ const startCells = headerCells("start");
41
+ const endCells = headerCells("end");
42
+ const publish = () => {
43
+ const total = startCells.reduce((offset, cell, index) => {
44
+ frame.style.setProperty(`${START_PROPERTY}-${index}`, `${offset}px`);
45
+ return offset + cell.getBoundingClientRect().width;
46
+ }, 0);
47
+ frame.style.setProperty(TOTAL_PROPERTY, `${total}px`);
48
+ const endTotal = endCells.reduceRight((offset_0, cell_0, index_0) => {
49
+ frame.style.setProperty(`${END_PROPERTY}-${index_0}`, `${offset_0}px`);
50
+ return offset_0 + cell_0.getBoundingClientRect().width;
51
+ }, 0);
52
+ frame.style.setProperty(END_TOTAL_PROPERTY, `${endTotal}px`);
53
+ if (scroller) {
54
+ frame.style.setProperty(SCROLLBAR_BLOCK_PROPERTY, `${scroller.offsetHeight - scroller.clientHeight}px`);
55
+ frame.style.setProperty(SCROLLBAR_INLINE_PROPERTY, `${scroller.offsetWidth - scroller.clientWidth}px`);
56
+ }
57
+ };
58
+ publish();
59
+ const observer = new ResizeObserver(publish);
60
+ for (const cell_1 of [
61
+ ...startCells,
62
+ ...endCells,
63
+ ...scroller ? [scroller] : []
64
+ ]) observer.observe(cell_1);
65
+ return () => {
66
+ observer.disconnect();
67
+ for (const index_1 of startCells.keys()) frame.style.removeProperty(`${START_PROPERTY}-${index_1}`);
68
+ for (const index_2 of endCells.keys()) frame.style.removeProperty(`${END_PROPERTY}-${index_2}`);
69
+ frame.style.removeProperty(TOTAL_PROPERTY);
70
+ frame.style.removeProperty(END_TOTAL_PROPERTY);
71
+ frame.style.removeProperty(SCROLLBAR_BLOCK_PROPERTY);
72
+ frame.style.removeProperty(SCROLLBAR_INLINE_PROPERTY);
73
+ };
74
+ };
75
+ $[0] = t0;
76
+ } else t0 = $[0];
77
+ let t1;
78
+ if ($[1] !== pinnedColumnKey) {
79
+ t1 = [pinnedColumnKey];
80
+ $[1] = pinnedColumnKey;
81
+ $[2] = t1;
82
+ } else t1 = $[2];
83
+ useLayoutEffect(t0, t1);
84
+ return frameRef;
85
+ };
86
+ export { useStickyOffsets };
@@ -0,0 +1 @@
1
+ export * from "./use-data-view.ts";
@@ -0,0 +1 @@
1
+ export { useDataView } from "./use-data-view.js";
@@ -0,0 +1,83 @@
1
+ import { type DefaultError, type QueryKey, type UseQueryOptions, type UseQueryResult } from "@tanstack/react-query";
2
+ import { type ColumnDef, type PaginationState, type ReactTable, type Row, type RowData, type SortingState } from "@tanstack/react-table";
3
+ import { type FilterView } from "../components/filter-bar/use-filter-view.ts";
4
+ import { type RowSelectionView } from "../lib/hooks/use-row-selection.ts";
5
+ import type { StorageAdapter } from "../lib/storage.ts";
6
+ import { type StoredValue } from "../lib/table-storage.ts";
7
+ import { type DataTableFeatures, type PageSizeOptions } from "../data-table/table-features.ts";
8
+ /**
9
+ * The current view parameters handed to the caller's `queryOptions` factory:
10
+ * committed filters, the debounced search, and table pagination + sorting.
11
+ */
12
+ export type DataViewQueryParams<TFilters> = Readonly<{
13
+ filters: TFilters;
14
+ search: string;
15
+ pagination: PaginationState;
16
+ sorting: SortingState;
17
+ }>;
18
+ export type UseDataViewConfig<TFilters extends object, TRow extends RowData, TQueryData, TError, TQueryKey extends QueryKey> = Readonly<{
19
+ /**
20
+ * Stable id of this table instance, unique in the app. What the table
21
+ * remembers across reloads, such as its page size, is stored under it.
22
+ */
23
+ tableId: string;
24
+ initialFilters: TFilters;
25
+ /**
26
+ * Where the committed filters persist, usually
27
+ * `tableStoredValue(tableId, "filters", shape, storage)`. The table opens on
28
+ * them and writes them back on every commit.
29
+ */
30
+ storedFilters?: StoredValue<TFilters>;
31
+ /** The columns; a column is sortable when it sets `enableSorting`. */
32
+ columns: readonly ColumnDef<DataTableFeatures, TRow>[];
33
+ /**
34
+ * Query-options factory, parameterized by the committed filters, debounced
35
+ * search, pagination and sorting.
36
+ */
37
+ queryOptions: (params: DataViewQueryParams<TFilters>) => UseQueryOptions<TQueryData, TError, TQueryData, TQueryKey>;
38
+ /** Stable application id for a row. Required for selection. */
39
+ getRowId: (row: TRow) => string;
40
+ /** Whether a row offers to expand. @default never */
41
+ getRowCanExpand?: (row: Row<DataTableFeatures, TRow>) => boolean;
42
+ /** Extracts the current page's rows from the query data. */
43
+ getRows: (data: TQueryData) => readonly TRow[];
44
+ /** Extracts the server-side total row count from the query data. */
45
+ getRowCount: (data: TQueryData) => number;
46
+ initialPagination?: PaginationState;
47
+ /** The page sizes the user can pick from. @default PAGE_SIZE_OPTIONS */
48
+ pageSizeOptions?: PageSizeOptions;
49
+ initialSorting?: SortingState;
50
+ /** Debounce for the live search, in ms. @default 300 */
51
+ searchDelay?: number;
52
+ /** Where the picked page size persists, under `tableId`. Without it, nothing persists. */
53
+ storage?: StorageAdapter;
54
+ }>;
55
+ export type DataView<TFilters extends object, TRow extends RowData, TQueryData, TError> = Readonly<{
56
+ filters: FilterView<TFilters>;
57
+ table: ReactTable<DataTableFeatures, TRow>;
58
+ query: UseQueryResult<TQueryData, TError>;
59
+ selection: RowSelectionView;
60
+ }>;
61
+ /**
62
+ * Orchestrates a server-driven, filterable table: `useFilterView`, a TanStack
63
+ * Query and a TanStack Table instance with manual pagination and sorting, plus
64
+ * a row selection. Pagination, sorting, expansion and selection live in the
65
+ * instance's own state: read `table.state`, never mirror it back through
66
+ * `options.state`. A new filter or search returns to the first page and clears
67
+ * the selection, and rows from the last settled page stay on screen when a
68
+ * fetch fails.
69
+ *
70
+ * @example
71
+ * const { filters, table, query, selection } = useDataView({
72
+ * tableId: "declarations",
73
+ * initialFilters: {},
74
+ * columns,
75
+ * queryOptions: ({ filters, search, pagination, sorting }) =>
76
+ * declarationsQuery({ filters, search, pagination, sorting }),
77
+ * getRowId: row => row.id,
78
+ * getRows: data => data.rows,
79
+ * getRowCount: data => data.totalCount,
80
+ * storage: localStorageAdapter,
81
+ * });
82
+ */
83
+ export declare const useDataView: <TFilters extends object, TRow extends RowData, TQueryData, TError = DefaultError, TQueryKey extends QueryKey = QueryKey>({ tableId, initialFilters, storedFilters, columns, queryOptions, getRowId, getRowCanExpand, getRows, getRowCount, initialPagination, pageSizeOptions, initialSorting, searchDelay, storage, }: UseDataViewConfig<TFilters, TRow, TQueryData, TError, TQueryKey>) => DataView<TFilters, TRow, TQueryData, TError>;