@slotted/react 0.0.0-stage → 0.1.0-beta.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 (1922) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +45 -2
  3. package/dist/accordion-D-YuMJzk.js +143 -0
  4. package/dist/accordion.js +2 -0
  5. package/dist/action-bar-C7cGnEyJ.js +282 -0
  6. package/dist/action-bar.js +2 -0
  7. package/dist/action-sheet-D8Glxl7l.js +347 -0
  8. package/dist/action-sheet.js +2 -0
  9. package/dist/alert-CP62p9Ul.js +159 -0
  10. package/dist/alert.js +2 -0
  11. package/dist/app-shell-CXwma4XA.js +836 -0
  12. package/dist/app-shell.js +2 -0
  13. package/dist/aspect-ratio-C76l-aoY.js +40 -0
  14. package/dist/aspect-ratio.js +2 -0
  15. package/dist/attachment-DdBbQcEB.js +302 -0
  16. package/dist/attachment.js +2 -0
  17. package/dist/avatar-BnlE5jjr.js +100 -0
  18. package/dist/avatar-group-4rBj99tz.js +47 -0
  19. package/dist/avatar-group.js +2 -0
  20. package/dist/avatar.js +2 -0
  21. package/dist/badge-C6rbwVpu.js +94 -0
  22. package/dist/badge.js +2 -0
  23. package/dist/breadcrumb-Bf01N4wK.js +218 -0
  24. package/dist/breadcrumb.js +2 -0
  25. package/dist/button-DakQ-7Tm.js +97 -0
  26. package/dist/button-defaults-DNq_DDJh.js +20 -0
  27. package/dist/button-group-Det_nYor.js +50 -0
  28. package/dist/button-group.js +2 -0
  29. package/dist/button.js +4 -0
  30. package/dist/calendar-B3mio8iQ.js +387 -0
  31. package/dist/calendar.js +2 -0
  32. package/dist/card-CpVu8PyZ.js +102 -0
  33. package/dist/card.js +2 -0
  34. package/dist/carousel-BPi-Y5yF.js +498 -0
  35. package/dist/carousel.js +2 -0
  36. package/dist/cascader-CARCYdHh.js +1097 -0
  37. package/dist/cascader.js +2 -0
  38. package/dist/chart-BNzfIfQe.js +948 -0
  39. package/dist/chart.js +2 -0
  40. package/dist/checkbox-CwUOc-3u.js +139 -0
  41. package/dist/checkbox-group-BYTjgAcX.js +108 -0
  42. package/dist/checkbox-group.js +2 -0
  43. package/dist/checkbox.js +2 -0
  44. package/dist/code-block-CFHf8uTm.js +269 -0
  45. package/dist/code-block.js +2 -0
  46. package/dist/collapsible-CGo49NNW.js +217 -0
  47. package/dist/collapsible.js +2 -0
  48. package/dist/color-picker-BlPR4g4H.js +504 -0
  49. package/dist/color-picker.js +2 -0
  50. package/dist/column-manager-CNZ7Xk5_.js +585 -0
  51. package/dist/column-manager.js +2 -0
  52. package/dist/combobox-C46GRqAA.js +852 -0
  53. package/dist/combobox.js +2 -0
  54. package/dist/command-palette-BqRyNR9Y.js +707 -0
  55. package/dist/command-palette.js +2 -0
  56. package/dist/container-CjxY6rYv.js +46 -0
  57. package/dist/container.js +2 -0
  58. package/dist/context-menu-DMiHdggw.js +150 -0
  59. package/dist/context-menu.js +2 -0
  60. package/dist/currency-field-B7OZ0hk7.js +436 -0
  61. package/dist/currency-field.js +2 -0
  62. package/dist/dashboard-grid-nfhEewA4.js +1005 -0
  63. package/dist/dashboard-grid.js +2 -0
  64. package/dist/data-grid-BUgOJuGp.js +3648 -0
  65. package/dist/data-grid.js +2 -0
  66. package/dist/data-list-2xfDpHVC.js +561 -0
  67. package/dist/data-list.js +2 -0
  68. package/dist/date-field-D_kLLTfL.js +279 -0
  69. package/dist/date-field.js +2 -0
  70. package/dist/date-picker-DQ5SIhdA.js +264 -0
  71. package/dist/date-picker.js +2 -0
  72. package/dist/date-range-picker-lpB08hK_.js +471 -0
  73. package/dist/date-range-picker.js +2 -0
  74. package/dist/datetime-field-T1gNdJ7t.js +411 -0
  75. package/dist/datetime-field.js +2 -0
  76. package/dist/datetime-picker-0F0kDW-8.js +629 -0
  77. package/dist/datetime-picker.js +2 -0
  78. package/dist/datetime-range-picker-ClnEleth.js +994 -0
  79. package/dist/datetime-range-picker.js +2 -0
  80. package/dist/description-list-IYLnFgHT.js +232 -0
  81. package/dist/description-list.js +2 -0
  82. package/dist/detail-panel-qOJiNuzr.js +319 -0
  83. package/dist/detail-panel.js +2 -0
  84. package/dist/dialog-Dmy-m_pe.js +499 -0
  85. package/dist/dialog.js +2 -0
  86. package/dist/divider-D36Jqo0J.js +33 -0
  87. package/dist/divider.js +2 -0
  88. package/dist/docs/AGENTS.snippet.md +11 -0
  89. package/dist/docs/accordion.json +352 -0
  90. package/dist/docs/accordion.md +214 -0
  91. package/dist/docs/action-bar.json +426 -0
  92. package/dist/docs/action-bar.md +366 -0
  93. package/dist/docs/action-sheet.json +210 -0
  94. package/dist/docs/action-sheet.md +19 -0
  95. package/dist/docs/alert.json +405 -0
  96. package/dist/docs/alert.md +251 -0
  97. package/dist/docs/app-shell.examples.md +374 -0
  98. package/dist/docs/app-shell.json +847 -0
  99. package/dist/docs/app-shell.md +200 -0
  100. package/dist/docs/aspect-ratio.json +157 -0
  101. package/dist/docs/aspect-ratio.md +132 -0
  102. package/dist/docs/attachment.json +520 -0
  103. package/dist/docs/attachment.md +276 -0
  104. package/dist/docs/avatar-group.json +207 -0
  105. package/dist/docs/avatar-group.md +119 -0
  106. package/dist/docs/avatar.json +350 -0
  107. package/dist/docs/avatar.md +145 -0
  108. package/dist/docs/badge.json +342 -0
  109. package/dist/docs/badge.md +146 -0
  110. package/dist/docs/breadcrumb.json +358 -0
  111. package/dist/docs/breadcrumb.md +233 -0
  112. package/dist/docs/button-group.json +165 -0
  113. package/dist/docs/button-group.md +73 -0
  114. package/dist/docs/button.examples.md +601 -0
  115. package/dist/docs/button.json +1006 -0
  116. package/dist/docs/button.md +187 -0
  117. package/dist/docs/calendar.json +590 -0
  118. package/dist/docs/calendar.md +246 -0
  119. package/dist/docs/card.json +263 -0
  120. package/dist/docs/card.md +156 -0
  121. package/dist/docs/carousel.json +505 -0
  122. package/dist/docs/carousel.md +380 -0
  123. package/dist/docs/cascader.json +980 -0
  124. package/dist/docs/cascader.md +304 -0
  125. package/dist/docs/chart.examples.md +538 -0
  126. package/dist/docs/chart.json +1406 -0
  127. package/dist/docs/chart.md +191 -0
  128. package/dist/docs/checkbox-group.examples.md +577 -0
  129. package/dist/docs/checkbox-group.json +393 -0
  130. package/dist/docs/checkbox-group.md +99 -0
  131. package/dist/docs/checkbox.examples.md +505 -0
  132. package/dist/docs/checkbox.json +511 -0
  133. package/dist/docs/checkbox.md +95 -0
  134. package/dist/docs/code-block.json +628 -0
  135. package/dist/docs/code-block.md +280 -0
  136. package/dist/docs/collapsible.json +457 -0
  137. package/dist/docs/collapsible.md +260 -0
  138. package/dist/docs/color-picker.json +521 -0
  139. package/dist/docs/color-picker.md +198 -0
  140. package/dist/docs/column-manager.json +508 -0
  141. package/dist/docs/column-manager.md +296 -0
  142. package/dist/docs/combobox.examples.md +1739 -0
  143. package/dist/docs/combobox.json +1235 -0
  144. package/dist/docs/combobox.md +197 -0
  145. package/dist/docs/command-palette.json +833 -0
  146. package/dist/docs/command-palette.md +467 -0
  147. package/dist/docs/container.json +156 -0
  148. package/dist/docs/container.md +90 -0
  149. package/dist/docs/context-menu.json +243 -0
  150. package/dist/docs/context-menu.md +206 -0
  151. package/dist/docs/currency-field.examples.md +268 -0
  152. package/dist/docs/currency-field.json +649 -0
  153. package/dist/docs/currency-field.md +117 -0
  154. package/dist/docs/dashboard-grid.json +671 -0
  155. package/dist/docs/dashboard-grid.md +272 -0
  156. package/dist/docs/data-grid.examples.md +2846 -0
  157. package/dist/docs/data-grid.json +1687 -0
  158. package/dist/docs/data-grid.md +215 -0
  159. package/dist/docs/data-grid.props.md +102 -0
  160. package/dist/docs/data-list.json +711 -0
  161. package/dist/docs/data-list.md +342 -0
  162. package/dist/docs/date-field.json +502 -0
  163. package/dist/docs/date-field.md +251 -0
  164. package/dist/docs/date-picker.examples.md +1021 -0
  165. package/dist/docs/date-picker.json +687 -0
  166. package/dist/docs/date-picker.md +114 -0
  167. package/dist/docs/date-range-picker.examples.md +1089 -0
  168. package/dist/docs/date-range-picker.json +901 -0
  169. package/dist/docs/date-range-picker.md +136 -0
  170. package/dist/docs/datetime-field.json +663 -0
  171. package/dist/docs/datetime-field.md +366 -0
  172. package/dist/docs/datetime-picker.examples.md +1081 -0
  173. package/dist/docs/datetime-picker.json +926 -0
  174. package/dist/docs/datetime-picker.md +144 -0
  175. package/dist/docs/datetime-range-picker.examples.md +219 -0
  176. package/dist/docs/datetime-range-picker.json +1006 -0
  177. package/dist/docs/datetime-range-picker.md +158 -0
  178. package/dist/docs/description-list.json +469 -0
  179. package/dist/docs/description-list.md +281 -0
  180. package/dist/docs/detail-panel.json +558 -0
  181. package/dist/docs/detail-panel.md +382 -0
  182. package/dist/docs/dialog.examples.md +2403 -0
  183. package/dist/docs/dialog.json +1138 -0
  184. package/dist/docs/dialog.md +252 -0
  185. package/dist/docs/divider.json +155 -0
  186. package/dist/docs/divider.md +86 -0
  187. package/dist/docs/drawer.examples.md +1795 -0
  188. package/dist/docs/drawer.json +756 -0
  189. package/dist/docs/drawer.md +186 -0
  190. package/dist/docs/entity-picker.json +998 -0
  191. package/dist/docs/entity-picker.md +389 -0
  192. package/dist/docs/event-calendar.examples.md +374 -0
  193. package/dist/docs/event-calendar.json +1207 -0
  194. package/dist/docs/event-calendar.md +188 -0
  195. package/dist/docs/field-group.json +331 -0
  196. package/dist/docs/field-group.md +189 -0
  197. package/dist/docs/field.examples.md +557 -0
  198. package/dist/docs/field.json +528 -0
  199. package/dist/docs/field.md +119 -0
  200. package/dist/docs/filter-bar.json +808 -0
  201. package/dist/docs/filter-bar.md +373 -0
  202. package/dist/docs/form.json +383 -0
  203. package/dist/docs/form.md +240 -0
  204. package/dist/docs/fullscreen.json +414 -0
  205. package/dist/docs/fullscreen.md +246 -0
  206. package/dist/docs/grid.json +183 -0
  207. package/dist/docs/grid.md +75 -0
  208. package/dist/docs/highlight.json +277 -0
  209. package/dist/docs/highlight.md +209 -0
  210. package/dist/docs/hover-card.json +273 -0
  211. package/dist/docs/hover-card.md +225 -0
  212. package/dist/docs/icon.json +173 -0
  213. package/dist/docs/icon.md +107 -0
  214. package/dist/docs/image.json +474 -0
  215. package/dist/docs/image.md +263 -0
  216. package/dist/docs/import-export-center.json +831 -0
  217. package/dist/docs/import-export-center.md +359 -0
  218. package/dist/docs/index.md +141 -0
  219. package/dist/docs/inline-message.json +317 -0
  220. package/dist/docs/inline-message.md +209 -0
  221. package/dist/docs/inline.json +156 -0
  222. package/dist/docs/inline.md +75 -0
  223. package/dist/docs/kbd.json +348 -0
  224. package/dist/docs/kbd.md +216 -0
  225. package/dist/docs/link.json +269 -0
  226. package/dist/docs/link.md +194 -0
  227. package/dist/docs/list-item.json +475 -0
  228. package/dist/docs/list-item.md +240 -0
  229. package/dist/docs/list.json +325 -0
  230. package/dist/docs/list.md +187 -0
  231. package/dist/docs/listbox.json +811 -0
  232. package/dist/docs/listbox.md +397 -0
  233. package/dist/docs/loading-overlay.json +445 -0
  234. package/dist/docs/loading-overlay.md +249 -0
  235. package/dist/docs/markdown.json +459 -0
  236. package/dist/docs/markdown.md +257 -0
  237. package/dist/docs/menu.examples.md +1513 -0
  238. package/dist/docs/menu.json +985 -0
  239. package/dist/docs/menu.md +163 -0
  240. package/dist/docs/menubar.json +299 -0
  241. package/dist/docs/menubar.md +183 -0
  242. package/dist/docs/message-scroller.json +413 -0
  243. package/dist/docs/message-scroller.md +218 -0
  244. package/dist/docs/message.json +879 -0
  245. package/dist/docs/message.md +479 -0
  246. package/dist/docs/multi-select.examples.md +1867 -0
  247. package/dist/docs/multi-select.json +1342 -0
  248. package/dist/docs/multi-select.md +221 -0
  249. package/dist/docs/navigation-menu.json +541 -0
  250. package/dist/docs/navigation-menu.md +369 -0
  251. package/dist/docs/notification-center.json +664 -0
  252. package/dist/docs/notification-center.md +371 -0
  253. package/dist/docs/number-field.examples.md +822 -0
  254. package/dist/docs/number-field.json +669 -0
  255. package/dist/docs/number-field.md +115 -0
  256. package/dist/docs/otp-input.json +477 -0
  257. package/dist/docs/otp-input.md +274 -0
  258. package/dist/docs/page-header.json +583 -0
  259. package/dist/docs/page-header.md +368 -0
  260. package/dist/docs/page.json +330 -0
  261. package/dist/docs/page.md +199 -0
  262. package/dist/docs/pagination.json +439 -0
  263. package/dist/docs/pagination.md +232 -0
  264. package/dist/docs/popover.examples.md +1067 -0
  265. package/dist/docs/popover.json +649 -0
  266. package/dist/docs/popover.md +182 -0
  267. package/dist/docs/progress-indicator.json +492 -0
  268. package/dist/docs/progress-indicator.md +318 -0
  269. package/dist/docs/prompt-composer.json +496 -0
  270. package/dist/docs/prompt-composer.md +256 -0
  271. package/dist/docs/prose.json +363 -0
  272. package/dist/docs/prose.md +246 -0
  273. package/dist/docs/radio-group.examples.md +582 -0
  274. package/dist/docs/radio-group.json +538 -0
  275. package/dist/docs/radio-group.md +102 -0
  276. package/dist/docs/rating.json +1082 -0
  277. package/dist/docs/rating.md +422 -0
  278. package/dist/docs/result-state.json +374 -0
  279. package/dist/docs/result-state.md +292 -0
  280. package/dist/docs/saved-views.json +377 -0
  281. package/dist/docs/saved-views.md +241 -0
  282. package/dist/docs/scroll-area.json +120 -0
  283. package/dist/docs/scroll-area.md +8 -0
  284. package/dist/docs/section.json +342 -0
  285. package/dist/docs/section.md +224 -0
  286. package/dist/docs/segmented-control.json +435 -0
  287. package/dist/docs/segmented-control.md +253 -0
  288. package/dist/docs/select.examples.md +1348 -0
  289. package/dist/docs/select.json +1179 -0
  290. package/dist/docs/select.md +208 -0
  291. package/dist/docs/side-navigation.json +658 -0
  292. package/dist/docs/side-navigation.md +440 -0
  293. package/dist/docs/skeleton.json +356 -0
  294. package/dist/docs/skeleton.md +226 -0
  295. package/dist/docs/slider.json +528 -0
  296. package/dist/docs/slider.md +275 -0
  297. package/dist/docs/sparkline.json +417 -0
  298. package/dist/docs/sparkline.md +208 -0
  299. package/dist/docs/split-button.json +352 -0
  300. package/dist/docs/split-button.md +260 -0
  301. package/dist/docs/splitter.json +142 -0
  302. package/dist/docs/splitter.md +14 -0
  303. package/dist/docs/stack.json +142 -0
  304. package/dist/docs/stack.md +75 -0
  305. package/dist/docs/stat-card.json +527 -0
  306. package/dist/docs/stat-card.md +305 -0
  307. package/dist/docs/status-indicator.json +312 -0
  308. package/dist/docs/status-indicator.md +221 -0
  309. package/dist/docs/stepper.json +456 -0
  310. package/dist/docs/stepper.md +232 -0
  311. package/dist/docs/switch.json +458 -0
  312. package/dist/docs/switch.md +466 -0
  313. package/dist/docs/table-of-contents.json +579 -0
  314. package/dist/docs/table-of-contents.md +301 -0
  315. package/dist/docs/table.examples.md +1706 -0
  316. package/dist/docs/table.json +1042 -0
  317. package/dist/docs/table.md +261 -0
  318. package/dist/docs/tabs.examples.md +1247 -0
  319. package/dist/docs/tabs.json +652 -0
  320. package/dist/docs/tabs.md +184 -0
  321. package/dist/docs/tag.json +803 -0
  322. package/dist/docs/tag.md +246 -0
  323. package/dist/docs/tags-input.json +738 -0
  324. package/dist/docs/tags-input.md +377 -0
  325. package/dist/docs/text-field.examples.md +617 -0
  326. package/dist/docs/text-field.json +610 -0
  327. package/dist/docs/text-field.md +112 -0
  328. package/dist/docs/textarea.json +431 -0
  329. package/dist/docs/textarea.md +587 -0
  330. package/dist/docs/time-field.json +582 -0
  331. package/dist/docs/time-field.md +310 -0
  332. package/dist/docs/time-picker.json +677 -0
  333. package/dist/docs/time-picker.md +337 -0
  334. package/dist/docs/time-range-picker.json +915 -0
  335. package/dist/docs/time-range-picker.md +336 -0
  336. package/dist/docs/timeline.json +851 -0
  337. package/dist/docs/timeline.md +346 -0
  338. package/dist/docs/toast.json +640 -0
  339. package/dist/docs/toast.md +308 -0
  340. package/dist/docs/toggle-group.json +422 -0
  341. package/dist/docs/toggle-group.md +260 -0
  342. package/dist/docs/toggle.json +331 -0
  343. package/dist/docs/toggle.md +201 -0
  344. package/dist/docs/toolbar.json +385 -0
  345. package/dist/docs/toolbar.md +245 -0
  346. package/dist/docs/tooltip.examples.md +638 -0
  347. package/dist/docs/tooltip.json +597 -0
  348. package/dist/docs/tooltip.md +138 -0
  349. package/dist/docs/top-navigation.examples.md +327 -0
  350. package/dist/docs/top-navigation.json +695 -0
  351. package/dist/docs/top-navigation.md +145 -0
  352. package/dist/docs/tour.json +773 -0
  353. package/dist/docs/tour.md +370 -0
  354. package/dist/docs/transfer.json +736 -0
  355. package/dist/docs/transfer.md +291 -0
  356. package/dist/docs/tree.json +967 -0
  357. package/dist/docs/tree.md +417 -0
  358. package/dist/docs/typography.json +331 -0
  359. package/dist/docs/typography.md +115 -0
  360. package/dist/docs/upload.examples.md +374 -0
  361. package/dist/docs/upload.json +1130 -0
  362. package/dist/docs/upload.md +168 -0
  363. package/dist/docs/visually-hidden.json +92 -0
  364. package/dist/docs/visually-hidden.md +45 -0
  365. package/dist/docs/wizard.json +736 -0
  366. package/dist/docs/wizard.md +351 -0
  367. package/dist/drawer-Ci3wuCVa.js +758 -0
  368. package/dist/drawer.js +2 -0
  369. package/dist/entity-picker-UGhbVwkC.js +1111 -0
  370. package/dist/entity-picker.js +2 -0
  371. package/dist/event-calendar-BFdeGfC-.js +1399 -0
  372. package/dist/event-calendar.js +2 -0
  373. package/dist/field-BJh5HI7w.js +365 -0
  374. package/dist/field-group-BDaspQPh.js +138 -0
  375. package/dist/field-group.js +2 -0
  376. package/dist/field.js +2 -0
  377. package/dist/filter-bar-b2Q9BZHf.js +1335 -0
  378. package/dist/filter-bar.js +2 -0
  379. package/dist/form-vTCQhZM-.js +265 -0
  380. package/dist/form.js +2 -0
  381. package/dist/fullscreen-CF0UN4mv.js +187 -0
  382. package/dist/fullscreen.js +2 -0
  383. package/dist/grid-CIkG_2IQ.js +25 -0
  384. package/dist/grid.js +2 -0
  385. package/dist/highlight-0Qw23QPp.js +57 -0
  386. package/dist/highlight.js +2 -0
  387. package/dist/hover-card-CSDbA6zd.js +214 -0
  388. package/dist/hover-card.js +2 -0
  389. package/dist/i18n-DpW8lqJ1.js +55 -0
  390. package/dist/i18n.js +2 -0
  391. package/dist/icon-T9Yt4tnm.js +73 -0
  392. package/dist/icon-button-TnvMhK4o.js +211 -0
  393. package/dist/icon.js +2 -0
  394. package/dist/image-DpDFrrXL.js +147 -0
  395. package/dist/image.js +2 -0
  396. package/dist/import-export-center-D8xbCLWs.js +813 -0
  397. package/dist/import-export-center.js +2 -0
  398. package/dist/index.js +131 -0
  399. package/dist/inline-D_IjcJ1n.js +16 -0
  400. package/dist/inline-message-C4a-A2mw.js +91 -0
  401. package/dist/inline-message.js +2 -0
  402. package/dist/inline.js +2 -0
  403. package/dist/kbd-defaults-CDgRhiep.js +40 -0
  404. package/dist/kbd-eFSWTKxN.js +100 -0
  405. package/dist/kbd.js +3 -0
  406. package/dist/link-TjvRl2VQ.js +87 -0
  407. package/dist/link.js +2 -0
  408. package/dist/list-C1Y8MWp2.js +87 -0
  409. package/dist/list-item-DN_mcouU.js +123 -0
  410. package/dist/list-item.js +2 -0
  411. package/dist/list.js +2 -0
  412. package/dist/listbox-4WvqR0JF.js +615 -0
  413. package/dist/listbox.js +2 -0
  414. package/dist/loading-overlay-B83XFctM.js +208 -0
  415. package/dist/loading-overlay.js +2 -0
  416. package/dist/markdown-CpfDn1LF.js +295 -0
  417. package/dist/markdown.js +2 -0
  418. package/dist/menu-parts-BQej6eU9.js +787 -0
  419. package/dist/menu.js +2 -0
  420. package/dist/menubar-CtGavUTO.js +156 -0
  421. package/dist/menubar.js +2 -0
  422. package/dist/message-Cp0rLCyW.js +430 -0
  423. package/dist/message-scroller-UZjFpflz.js +214 -0
  424. package/dist/message-scroller.js +2 -0
  425. package/dist/message.js +2 -0
  426. package/dist/multi-select-CfzsvAeI.js +1193 -0
  427. package/dist/multi-select.js +2 -0
  428. package/dist/navigation-menu-parts-D8qFAwHX.js +492 -0
  429. package/dist/navigation-menu.js +2 -0
  430. package/dist/notification-center-C4pEHJ3h.js +485 -0
  431. package/dist/notification-center.js +2 -0
  432. package/dist/number-field-J_koud1r.js +342 -0
  433. package/dist/number-field.js +2 -0
  434. package/dist/otp-input-Bf8JUiVR.js +205 -0
  435. package/dist/otp-input.js +2 -0
  436. package/dist/page-header-CWEBfMGq.js +367 -0
  437. package/dist/page-header.js +2 -0
  438. package/dist/page-kQgLctsA.js +167 -0
  439. package/dist/page.js +2 -0
  440. package/dist/pagination-DWJc521r.js +292 -0
  441. package/dist/pagination.js +2 -0
  442. package/dist/popover-DE22lSpV.js +476 -0
  443. package/dist/popover.js +2 -0
  444. package/dist/progress-indicator-DwvUSFFs.js +269 -0
  445. package/dist/progress-indicator.js +2 -0
  446. package/dist/prompt-composer-B7MMcER0.js +259 -0
  447. package/dist/prompt-composer.js +2 -0
  448. package/dist/prose-CkeNYS0X.js +91 -0
  449. package/dist/prose.js +2 -0
  450. package/dist/radio-group-BFpjhDkV.js +140 -0
  451. package/dist/radio-group.js +2 -0
  452. package/dist/rating-D1EsADFM.js +459 -0
  453. package/dist/rating.js +2 -0
  454. package/dist/react-dom-DzrKNxo6.js +273 -0
  455. package/dist/result-state-CZsQfdN4.js +126 -0
  456. package/dist/result-state.js +2 -0
  457. package/dist/saved-views-BueW-Lyb.js +446 -0
  458. package/dist/saved-views.js +2 -0
  459. package/dist/scroll-area-BriwmvYY.js +111 -0
  460. package/dist/scroll-area.js +2 -0
  461. package/dist/section-Be7dX9MC.js +176 -0
  462. package/dist/section.js +2 -0
  463. package/dist/segmented-control-Cy_5D3Nj.js +149 -0
  464. package/dist/segmented-control.js +2 -0
  465. package/dist/select-UTwKjheK.js +957 -0
  466. package/dist/select-tags-CQMcHIQN.js +74 -0
  467. package/dist/select.js +2 -0
  468. package/dist/side-navigation-YUiJRpng.js +729 -0
  469. package/dist/side-navigation.js +2 -0
  470. package/dist/skeleton-2LSpg84Z.js +143 -0
  471. package/dist/skeleton.js +2 -0
  472. package/dist/slider-B432T6nD.js +256 -0
  473. package/dist/slider.js +2 -0
  474. package/dist/sparkline-rY7HIFE4.js +131 -0
  475. package/dist/sparkline.js +2 -0
  476. package/dist/split-button-DHF3v3PJ.js +135 -0
  477. package/dist/split-button.js +2 -0
  478. package/dist/splitter-Bg3UgmbV.js +289 -0
  479. package/dist/splitter.js +2 -0
  480. package/dist/stack-BEFavbRs.js +15 -0
  481. package/dist/stack.js +2 -0
  482. package/dist/stat-card-BG7uLytP.js +244 -0
  483. package/dist/stat-card.js +2 -0
  484. package/dist/status-indicator-BOjpXkU5.js +73 -0
  485. package/dist/status-indicator.js +2 -0
  486. package/dist/stepper-DQJuRWqR.js +253 -0
  487. package/dist/stepper.js +2 -0
  488. package/dist/styles.css +3 -0
  489. package/dist/switch-4MHwKmkz.js +138 -0
  490. package/dist/switch.js +2 -0
  491. package/dist/table-CzBIw9ng.js +970 -0
  492. package/dist/table-of-contents-DfAeYtFJ.js +461 -0
  493. package/dist/table-of-contents.js +2 -0
  494. package/dist/table.js +2 -0
  495. package/dist/tabs-DQ36APY-.js +343 -0
  496. package/dist/tabs.js +2 -0
  497. package/dist/tag-DjtW53xN.js +365 -0
  498. package/dist/tag.js +2 -0
  499. package/dist/tags-input-DLdHLWrH.js +625 -0
  500. package/dist/tags-input.js +2 -0
  501. package/dist/text-field-BktZbmzD.js +195 -0
  502. package/dist/text-field.js +2 -0
  503. package/dist/textarea-JAK2RJl0.js +99 -0
  504. package/dist/textarea.js +2 -0
  505. package/dist/theme.js +19 -0
  506. package/dist/time-field-DCG_VtGO.js +355 -0
  507. package/dist/time-field.js +2 -0
  508. package/dist/time-picker-DuT1tf5-.js +396 -0
  509. package/dist/time-picker.js +2 -0
  510. package/dist/time-range-picker-HwBvrrXN.js +745 -0
  511. package/dist/time-range-picker.js +2 -0
  512. package/dist/timeline-DH_02ysz.js +421 -0
  513. package/dist/timeline.js +2 -0
  514. package/dist/toast-wI8BtPY5.js +468 -0
  515. package/dist/toast.js +2 -0
  516. package/dist/toggle-CBFhM4Jh.js +64 -0
  517. package/dist/toggle-group-DQBlI1TV.js +140 -0
  518. package/dist/toggle-group.js +2 -0
  519. package/dist/toggle.js +2 -0
  520. package/dist/toolbar-CDQTydDx.js +240 -0
  521. package/dist/toolbar.js +2 -0
  522. package/dist/tooltip-BggqPDcW.js +393 -0
  523. package/dist/tooltip.js +2 -0
  524. package/dist/top-navigation-COQZsNqW.js +740 -0
  525. package/dist/top-navigation.js +2 -0
  526. package/dist/tour-C11DmYTC.js +799 -0
  527. package/dist/tour.js +2 -0
  528. package/dist/transfer-JA9TWjAw.js +596 -0
  529. package/dist/transfer.js +2 -0
  530. package/dist/tree-C6fYJqT9.js +783 -0
  531. package/dist/tree.js +2 -0
  532. package/dist/types/accordion/accordion-defaults.d.ts +10 -0
  533. package/dist/types/accordion/accordion-defaults.d.ts.map +1 -0
  534. package/dist/types/accordion/accordion.d.ts +38 -0
  535. package/dist/types/accordion/accordion.d.ts.map +1 -0
  536. package/dist/types/accordion/accordion.types.d.ts +124 -0
  537. package/dist/types/accordion/accordion.types.d.ts.map +1 -0
  538. package/dist/types/accordion/index.d.ts +4 -0
  539. package/dist/types/accordion/index.d.ts.map +1 -0
  540. package/dist/types/action-bar/action-bar-context.d.ts +68 -0
  541. package/dist/types/action-bar/action-bar-context.d.ts.map +1 -0
  542. package/dist/types/action-bar/action-bar-defaults.d.ts +11 -0
  543. package/dist/types/action-bar/action-bar-defaults.d.ts.map +1 -0
  544. package/dist/types/action-bar/action-bar-demo.d.ts +25 -0
  545. package/dist/types/action-bar/action-bar-demo.d.ts.map +1 -0
  546. package/dist/types/action-bar/action-bar-overflow.d.ts +26 -0
  547. package/dist/types/action-bar/action-bar-overflow.d.ts.map +1 -0
  548. package/dist/types/action-bar/action-bar-parts.d.ts +50 -0
  549. package/dist/types/action-bar/action-bar-parts.d.ts.map +1 -0
  550. package/dist/types/action-bar/action-bar.d.ts +31 -0
  551. package/dist/types/action-bar/action-bar.d.ts.map +1 -0
  552. package/dist/types/action-bar/action-bar.types.d.ts +146 -0
  553. package/dist/types/action-bar/action-bar.types.d.ts.map +1 -0
  554. package/dist/types/action-bar/index.d.ts +8 -0
  555. package/dist/types/action-bar/index.d.ts.map +1 -0
  556. package/dist/types/action-sheet/action-sheet-defaults.d.ts +11 -0
  557. package/dist/types/action-sheet/action-sheet-defaults.d.ts.map +1 -0
  558. package/dist/types/action-sheet/action-sheet-demo.d.ts +15 -0
  559. package/dist/types/action-sheet/action-sheet-demo.d.ts.map +1 -0
  560. package/dist/types/action-sheet/action-sheet-entry.d.ts +10 -0
  561. package/dist/types/action-sheet/action-sheet-entry.d.ts.map +1 -0
  562. package/dist/types/action-sheet/action-sheet-parts.d.ts +53 -0
  563. package/dist/types/action-sheet/action-sheet-parts.d.ts.map +1 -0
  564. package/dist/types/action-sheet/action-sheet.d.ts +24 -0
  565. package/dist/types/action-sheet/action-sheet.d.ts.map +1 -0
  566. package/dist/types/action-sheet/action-sheet.types.d.ts +166 -0
  567. package/dist/types/action-sheet/action-sheet.types.d.ts.map +1 -0
  568. package/dist/types/action-sheet/index.d.ts +5 -0
  569. package/dist/types/action-sheet/index.d.ts.map +1 -0
  570. package/dist/types/alert/alert-defaults.d.ts +15 -0
  571. package/dist/types/alert/alert-defaults.d.ts.map +1 -0
  572. package/dist/types/alert/alert-demo.d.ts +25 -0
  573. package/dist/types/alert/alert-demo.d.ts.map +1 -0
  574. package/dist/types/alert/alert-parts.d.ts +49 -0
  575. package/dist/types/alert/alert-parts.d.ts.map +1 -0
  576. package/dist/types/alert/alert.d.ts +27 -0
  577. package/dist/types/alert/alert.d.ts.map +1 -0
  578. package/dist/types/alert/alert.types.d.ts +98 -0
  579. package/dist/types/alert/alert.types.d.ts.map +1 -0
  580. package/dist/types/alert/index.d.ts +5 -0
  581. package/dist/types/alert/index.d.ts.map +1 -0
  582. package/dist/types/app-shell/app-shell-defaults.d.ts +12 -0
  583. package/dist/types/app-shell/app-shell-defaults.d.ts.map +1 -0
  584. package/dist/types/app-shell/app-shell-demo/atrio.d.ts +21 -0
  585. package/dist/types/app-shell/app-shell-demo/atrio.d.ts.map +1 -0
  586. package/dist/types/app-shell/app-shell-demo/aurora.d.ts +89 -0
  587. package/dist/types/app-shell/app-shell-demo/aurora.d.ts.map +1 -0
  588. package/dist/types/app-shell/app-shell-demo/cadence.d.ts +17 -0
  589. package/dist/types/app-shell/app-shell-demo/cadence.d.ts.map +1 -0
  590. package/dist/types/app-shell/app-shell-demo/index.d.ts +7 -0
  591. package/dist/types/app-shell/app-shell-demo/index.d.ts.map +1 -0
  592. package/dist/types/app-shell/app-shell-demo/rail.d.ts +19 -0
  593. package/dist/types/app-shell/app-shell-demo/rail.d.ts.map +1 -0
  594. package/dist/types/app-shell/app-shell-demo/shared.d.ts +80 -0
  595. package/dist/types/app-shell/app-shell-demo/shared.d.ts.map +1 -0
  596. package/dist/types/app-shell/app-shell-parts.d.ts +114 -0
  597. package/dist/types/app-shell/app-shell-parts.d.ts.map +1 -0
  598. package/dist/types/app-shell/app-shell.d.ts +42 -0
  599. package/dist/types/app-shell/app-shell.d.ts.map +1 -0
  600. package/dist/types/app-shell/app-shell.types.d.ts +312 -0
  601. package/dist/types/app-shell/app-shell.types.d.ts.map +1 -0
  602. package/dist/types/app-shell/index.d.ts +5 -0
  603. package/dist/types/app-shell/index.d.ts.map +1 -0
  604. package/dist/types/aspect-ratio/aspect-ratio.d.ts +25 -0
  605. package/dist/types/aspect-ratio/aspect-ratio.d.ts.map +1 -0
  606. package/dist/types/aspect-ratio/aspect-ratio.types.d.ts +35 -0
  607. package/dist/types/aspect-ratio/aspect-ratio.types.d.ts.map +1 -0
  608. package/dist/types/aspect-ratio/index.d.ts +3 -0
  609. package/dist/types/aspect-ratio/index.d.ts.map +1 -0
  610. package/dist/types/attachment/attachment-defaults.d.ts +11 -0
  611. package/dist/types/attachment/attachment-defaults.d.ts.map +1 -0
  612. package/dist/types/attachment/attachment-kinds.d.ts +21 -0
  613. package/dist/types/attachment/attachment-kinds.d.ts.map +1 -0
  614. package/dist/types/attachment/attachment-parts.d.ts +67 -0
  615. package/dist/types/attachment/attachment-parts.d.ts.map +1 -0
  616. package/dist/types/attachment/attachment.d.ts +41 -0
  617. package/dist/types/attachment/attachment.d.ts.map +1 -0
  618. package/dist/types/attachment/attachment.types.d.ts +193 -0
  619. package/dist/types/attachment/attachment.types.d.ts.map +1 -0
  620. package/dist/types/attachment/index.d.ts +6 -0
  621. package/dist/types/attachment/index.d.ts.map +1 -0
  622. package/dist/types/avatar/avatar-defaults.d.ts +17 -0
  623. package/dist/types/avatar/avatar-defaults.d.ts.map +1 -0
  624. package/dist/types/avatar/avatar.d.ts +22 -0
  625. package/dist/types/avatar/avatar.d.ts.map +1 -0
  626. package/dist/types/avatar/avatar.types.d.ts +155 -0
  627. package/dist/types/avatar/avatar.types.d.ts.map +1 -0
  628. package/dist/types/avatar/index.d.ts +4 -0
  629. package/dist/types/avatar/index.d.ts.map +1 -0
  630. package/dist/types/avatar-group/avatar-group.d.ts +22 -0
  631. package/dist/types/avatar-group/avatar-group.d.ts.map +1 -0
  632. package/dist/types/avatar-group/index.d.ts +3 -0
  633. package/dist/types/avatar-group/index.d.ts.map +1 -0
  634. package/dist/types/badge/badge-anchor.d.ts +16 -0
  635. package/dist/types/badge/badge-anchor.d.ts.map +1 -0
  636. package/dist/types/badge/badge-defaults.d.ts +15 -0
  637. package/dist/types/badge/badge-defaults.d.ts.map +1 -0
  638. package/dist/types/badge/badge.d.ts +16 -0
  639. package/dist/types/badge/badge.d.ts.map +1 -0
  640. package/dist/types/badge/badge.types.d.ts +120 -0
  641. package/dist/types/badge/badge.types.d.ts.map +1 -0
  642. package/dist/types/badge/index.d.ts +5 -0
  643. package/dist/types/badge/index.d.ts.map +1 -0
  644. package/dist/types/breadcrumb/breadcrumb-defaults.d.ts +11 -0
  645. package/dist/types/breadcrumb/breadcrumb-defaults.d.ts.map +1 -0
  646. package/dist/types/breadcrumb/breadcrumb-parts.d.ts +65 -0
  647. package/dist/types/breadcrumb/breadcrumb-parts.d.ts.map +1 -0
  648. package/dist/types/breadcrumb/breadcrumb.d.ts +35 -0
  649. package/dist/types/breadcrumb/breadcrumb.d.ts.map +1 -0
  650. package/dist/types/breadcrumb/breadcrumb.types.d.ts +122 -0
  651. package/dist/types/breadcrumb/breadcrumb.types.d.ts.map +1 -0
  652. package/dist/types/breadcrumb/index.d.ts +5 -0
  653. package/dist/types/breadcrumb/index.d.ts.map +1 -0
  654. package/dist/types/button/button-content.d.ts +31 -0
  655. package/dist/types/button/button-content.d.ts.map +1 -0
  656. package/dist/types/button/button-defaults.d.ts +18 -0
  657. package/dist/types/button/button-defaults.d.ts.map +1 -0
  658. package/dist/types/button/button-indicator.d.ts +21 -0
  659. package/dist/types/button/button-indicator.d.ts.map +1 -0
  660. package/dist/types/button/button-link.d.ts +16 -0
  661. package/dist/types/button/button-link.d.ts.map +1 -0
  662. package/dist/types/button/button-root.d.ts +104 -0
  663. package/dist/types/button/button-root.d.ts.map +1 -0
  664. package/dist/types/button/button.constants.d.ts +31 -0
  665. package/dist/types/button/button.constants.d.ts.map +1 -0
  666. package/dist/types/button/button.d.ts +7 -0
  667. package/dist/types/button/button.d.ts.map +1 -0
  668. package/dist/types/button/button.types.d.ts +136 -0
  669. package/dist/types/button/button.types.d.ts.map +1 -0
  670. package/dist/types/button/icon-button.d.ts +14 -0
  671. package/dist/types/button/icon-button.d.ts.map +1 -0
  672. package/dist/types/button/index.d.ts +7 -0
  673. package/dist/types/button/index.d.ts.map +1 -0
  674. package/dist/types/button/toggle-button.d.ts +14 -0
  675. package/dist/types/button/toggle-button.d.ts.map +1 -0
  676. package/dist/types/button-group/button-group-separator.d.ts +15 -0
  677. package/dist/types/button-group/button-group-separator.d.ts.map +1 -0
  678. package/dist/types/button-group/button-group-shape.d.ts +14 -0
  679. package/dist/types/button-group/button-group-shape.d.ts.map +1 -0
  680. package/dist/types/button-group/button-group.d.ts +22 -0
  681. package/dist/types/button-group/button-group.d.ts.map +1 -0
  682. package/dist/types/button-group/button-group.types.d.ts +63 -0
  683. package/dist/types/button-group/button-group.types.d.ts.map +1 -0
  684. package/dist/types/button-group/index.d.ts +4 -0
  685. package/dist/types/button-group/index.d.ts.map +1 -0
  686. package/dist/types/calendar/calendar-defaults.d.ts +15 -0
  687. package/dist/types/calendar/calendar-defaults.d.ts.map +1 -0
  688. package/dist/types/calendar/calendar-demo.d.ts +22 -0
  689. package/dist/types/calendar/calendar-demo.d.ts.map +1 -0
  690. package/dist/types/calendar/calendar-selection.d.ts +41 -0
  691. package/dist/types/calendar/calendar-selection.d.ts.map +1 -0
  692. package/dist/types/calendar/calendar.d.ts +28 -0
  693. package/dist/types/calendar/calendar.d.ts.map +1 -0
  694. package/dist/types/calendar/calendar.types.d.ts +114 -0
  695. package/dist/types/calendar/calendar.types.d.ts.map +1 -0
  696. package/dist/types/calendar/index.d.ts +5 -0
  697. package/dist/types/calendar/index.d.ts.map +1 -0
  698. package/dist/types/card/card-actions.d.ts +8 -0
  699. package/dist/types/card/card-actions.d.ts.map +1 -0
  700. package/dist/types/card/card-body.d.ts +4 -0
  701. package/dist/types/card/card-body.d.ts.map +1 -0
  702. package/dist/types/card/card-defaults.d.ts +10 -0
  703. package/dist/types/card/card-defaults.d.ts.map +1 -0
  704. package/dist/types/card/card-footer.d.ts +7 -0
  705. package/dist/types/card/card-footer.d.ts.map +1 -0
  706. package/dist/types/card/card-header.d.ts +4 -0
  707. package/dist/types/card/card-header.d.ts.map +1 -0
  708. package/dist/types/card/card-link.d.ts +11 -0
  709. package/dist/types/card/card-link.d.ts.map +1 -0
  710. package/dist/types/card/card-media.d.ts +8 -0
  711. package/dist/types/card/card-media.d.ts.map +1 -0
  712. package/dist/types/card/card-selection.d.ts +17 -0
  713. package/dist/types/card/card-selection.d.ts.map +1 -0
  714. package/dist/types/card/card.d.ts +13 -0
  715. package/dist/types/card/card.d.ts.map +1 -0
  716. package/dist/types/card/card.types.d.ts +82 -0
  717. package/dist/types/card/card.types.d.ts.map +1 -0
  718. package/dist/types/card/index.d.ts +11 -0
  719. package/dist/types/card/index.d.ts.map +1 -0
  720. package/dist/types/carousel/carousel-catalogue.d.ts +24 -0
  721. package/dist/types/carousel/carousel-catalogue.d.ts.map +1 -0
  722. package/dist/types/carousel/carousel-defaults.d.ts +10 -0
  723. package/dist/types/carousel/carousel-defaults.d.ts.map +1 -0
  724. package/dist/types/carousel/carousel-demo.d.ts +27 -0
  725. package/dist/types/carousel/carousel-demo.d.ts.map +1 -0
  726. package/dist/types/carousel/carousel-parts.d.ts +46 -0
  727. package/dist/types/carousel/carousel-parts.d.ts.map +1 -0
  728. package/dist/types/carousel/carousel.d.ts +25 -0
  729. package/dist/types/carousel/carousel.d.ts.map +1 -0
  730. package/dist/types/carousel/carousel.types.d.ts +198 -0
  731. package/dist/types/carousel/carousel.types.d.ts.map +1 -0
  732. package/dist/types/carousel/index.d.ts +5 -0
  733. package/dist/types/carousel/index.d.ts.map +1 -0
  734. package/dist/types/cascader/cascader-defaults.d.ts +9 -0
  735. package/dist/types/cascader/cascader-defaults.d.ts.map +1 -0
  736. package/dist/types/cascader/cascader-state.d.ts +60 -0
  737. package/dist/types/cascader/cascader-state.d.ts.map +1 -0
  738. package/dist/types/cascader/cascader-surface.d.ts +30 -0
  739. package/dist/types/cascader/cascader-surface.d.ts.map +1 -0
  740. package/dist/types/cascader/cascader.d.ts +18 -0
  741. package/dist/types/cascader/cascader.d.ts.map +1 -0
  742. package/dist/types/cascader/cascader.types.d.ts +154 -0
  743. package/dist/types/cascader/cascader.types.d.ts.map +1 -0
  744. package/dist/types/cascader/index.d.ts +4 -0
  745. package/dist/types/cascader/index.d.ts.map +1 -0
  746. package/dist/types/chart/chart-defaults.d.ts +12 -0
  747. package/dist/types/chart/chart-defaults.d.ts.map +1 -0
  748. package/dist/types/chart/chart.d.ts +32 -0
  749. package/dist/types/chart/chart.d.ts.map +1 -0
  750. package/dist/types/chart/chart.types.d.ts +143 -0
  751. package/dist/types/chart/chart.types.d.ts.map +1 -0
  752. package/dist/types/chart/index.d.ts +7 -0
  753. package/dist/types/chart/index.d.ts.map +1 -0
  754. package/dist/types/checkbox/checkbox-defaults.d.ts +10 -0
  755. package/dist/types/checkbox/checkbox-defaults.d.ts.map +1 -0
  756. package/dist/types/checkbox/checkbox.d.ts +4 -0
  757. package/dist/types/checkbox/checkbox.d.ts.map +1 -0
  758. package/dist/types/checkbox/checkbox.types.d.ts +99 -0
  759. package/dist/types/checkbox/checkbox.types.d.ts.map +1 -0
  760. package/dist/types/checkbox/index.d.ts +4 -0
  761. package/dist/types/checkbox/index.d.ts.map +1 -0
  762. package/dist/types/checkbox-group/checkbox-group-defaults.d.ts +12 -0
  763. package/dist/types/checkbox-group/checkbox-group-defaults.d.ts.map +1 -0
  764. package/dist/types/checkbox-group/checkbox-group.d.ts +28 -0
  765. package/dist/types/checkbox-group/checkbox-group.d.ts.map +1 -0
  766. package/dist/types/checkbox-group/checkbox-group.types.d.ts +110 -0
  767. package/dist/types/checkbox-group/checkbox-group.types.d.ts.map +1 -0
  768. package/dist/types/checkbox-group/index.d.ts +4 -0
  769. package/dist/types/checkbox-group/index.d.ts.map +1 -0
  770. package/dist/types/code-block/code-block-defaults.d.ts +11 -0
  771. package/dist/types/code-block/code-block-defaults.d.ts.map +1 -0
  772. package/dist/types/code-block/code-block.d.ts +10 -0
  773. package/dist/types/code-block/code-block.d.ts.map +1 -0
  774. package/dist/types/code-block/code-block.types.d.ts +95 -0
  775. package/dist/types/code-block/code-block.types.d.ts.map +1 -0
  776. package/dist/types/code-block/index.d.ts +4 -0
  777. package/dist/types/code-block/index.d.ts.map +1 -0
  778. package/dist/types/collapsible/collapsible-defaults.d.ts +10 -0
  779. package/dist/types/collapsible/collapsible-defaults.d.ts.map +1 -0
  780. package/dist/types/collapsible/collapsible-parts.d.ts +53 -0
  781. package/dist/types/collapsible/collapsible-parts.d.ts.map +1 -0
  782. package/dist/types/collapsible/collapsible.d.ts +30 -0
  783. package/dist/types/collapsible/collapsible.d.ts.map +1 -0
  784. package/dist/types/collapsible/collapsible.types.d.ts +194 -0
  785. package/dist/types/collapsible/collapsible.types.d.ts.map +1 -0
  786. package/dist/types/collapsible/index.d.ts +5 -0
  787. package/dist/types/collapsible/index.d.ts.map +1 -0
  788. package/dist/types/color-picker/color-picker-defaults.d.ts +8 -0
  789. package/dist/types/color-picker/color-picker-defaults.d.ts.map +1 -0
  790. package/dist/types/color-picker/color-picker-demo.d.ts +22 -0
  791. package/dist/types/color-picker/color-picker-demo.d.ts.map +1 -0
  792. package/dist/types/color-picker/color-picker.d.ts +45 -0
  793. package/dist/types/color-picker/color-picker.d.ts.map +1 -0
  794. package/dist/types/color-picker/color-picker.types.d.ts +63 -0
  795. package/dist/types/color-picker/color-picker.types.d.ts.map +1 -0
  796. package/dist/types/color-picker/index.d.ts +4 -0
  797. package/dist/types/color-picker/index.d.ts.map +1 -0
  798. package/dist/types/column-manager/column-manager-defaults.d.ts +10 -0
  799. package/dist/types/column-manager/column-manager-defaults.d.ts.map +1 -0
  800. package/dist/types/column-manager/column-manager.d.ts +25 -0
  801. package/dist/types/column-manager/column-manager.d.ts.map +1 -0
  802. package/dist/types/column-manager/column-manager.types.d.ts +78 -0
  803. package/dist/types/column-manager/column-manager.types.d.ts.map +1 -0
  804. package/dist/types/column-manager/index.d.ts +4 -0
  805. package/dist/types/column-manager/index.d.ts.map +1 -0
  806. package/dist/types/combobox/combobox-collection.d.ts +33 -0
  807. package/dist/types/combobox/combobox-collection.d.ts.map +1 -0
  808. package/dist/types/combobox/combobox-defaults.d.ts +35 -0
  809. package/dist/types/combobox/combobox-defaults.d.ts.map +1 -0
  810. package/dist/types/combobox/combobox-items.d.ts +29 -0
  811. package/dist/types/combobox/combobox-items.d.ts.map +1 -0
  812. package/dist/types/combobox/combobox-parts.d.ts +25 -0
  813. package/dist/types/combobox/combobox-parts.d.ts.map +1 -0
  814. package/dist/types/combobox/combobox.d.ts +105 -0
  815. package/dist/types/combobox/combobox.d.ts.map +1 -0
  816. package/dist/types/combobox/combobox.types.d.ts +211 -0
  817. package/dist/types/combobox/combobox.types.d.ts.map +1 -0
  818. package/dist/types/combobox/index.d.ts +7 -0
  819. package/dist/types/combobox/index.d.ts.map +1 -0
  820. package/dist/types/command-palette/command-palette-defaults.d.ts +30 -0
  821. package/dist/types/command-palette/command-palette-defaults.d.ts.map +1 -0
  822. package/dist/types/command-palette/command-palette.d.ts +14 -0
  823. package/dist/types/command-palette/command-palette.d.ts.map +1 -0
  824. package/dist/types/command-palette/command-palette.types.d.ts +162 -0
  825. package/dist/types/command-palette/command-palette.types.d.ts.map +1 -0
  826. package/dist/types/command-palette/index.d.ts +4 -0
  827. package/dist/types/command-palette/index.d.ts.map +1 -0
  828. package/dist/types/container/container-breakout.d.ts +11 -0
  829. package/dist/types/container/container-breakout.d.ts.map +1 -0
  830. package/dist/types/container/container-defaults.d.ts +11 -0
  831. package/dist/types/container/container-defaults.d.ts.map +1 -0
  832. package/dist/types/container/container.d.ts +16 -0
  833. package/dist/types/container/container.d.ts.map +1 -0
  834. package/dist/types/container/container.types.d.ts +61 -0
  835. package/dist/types/container/container.types.d.ts.map +1 -0
  836. package/dist/types/container/index.d.ts +5 -0
  837. package/dist/types/container/index.d.ts.map +1 -0
  838. package/dist/types/context-menu/context-menu-defaults.d.ts +11 -0
  839. package/dist/types/context-menu/context-menu-defaults.d.ts.map +1 -0
  840. package/dist/types/context-menu/context-menu.d.ts +27 -0
  841. package/dist/types/context-menu/context-menu.d.ts.map +1 -0
  842. package/dist/types/context-menu/context-menu.types.d.ts +60 -0
  843. package/dist/types/context-menu/context-menu.types.d.ts.map +1 -0
  844. package/dist/types/context-menu/index.d.ts +4 -0
  845. package/dist/types/context-menu/index.d.ts.map +1 -0
  846. package/dist/types/currency-field/currency-field-defaults.d.ts +20 -0
  847. package/dist/types/currency-field/currency-field-defaults.d.ts.map +1 -0
  848. package/dist/types/currency-field/currency-field-demo.d.ts +22 -0
  849. package/dist/types/currency-field/currency-field-demo.d.ts.map +1 -0
  850. package/dist/types/currency-field/currency-field.d.ts +42 -0
  851. package/dist/types/currency-field/currency-field.d.ts.map +1 -0
  852. package/dist/types/currency-field/currency-field.types.d.ts +228 -0
  853. package/dist/types/currency-field/currency-field.types.d.ts.map +1 -0
  854. package/dist/types/currency-field/index.d.ts +4 -0
  855. package/dist/types/currency-field/index.d.ts.map +1 -0
  856. package/dist/types/dashboard-grid/dashboard-grid-context.d.ts +51 -0
  857. package/dist/types/dashboard-grid/dashboard-grid-context.d.ts.map +1 -0
  858. package/dist/types/dashboard-grid/dashboard-grid-defaults.d.ts +12 -0
  859. package/dist/types/dashboard-grid/dashboard-grid-defaults.d.ts.map +1 -0
  860. package/dist/types/dashboard-grid/dashboard-grid-demo.d.ts +17 -0
  861. package/dist/types/dashboard-grid/dashboard-grid-demo.d.ts.map +1 -0
  862. package/dist/types/dashboard-grid/dashboard-grid.d.ts +11 -0
  863. package/dist/types/dashboard-grid/dashboard-grid.d.ts.map +1 -0
  864. package/dist/types/dashboard-grid/dashboard-grid.types.d.ts +137 -0
  865. package/dist/types/dashboard-grid/dashboard-grid.types.d.ts.map +1 -0
  866. package/dist/types/dashboard-grid/dashboard-widget.d.ts +9 -0
  867. package/dist/types/dashboard-grid/dashboard-widget.d.ts.map +1 -0
  868. package/dist/types/dashboard-grid/index.d.ts +6 -0
  869. package/dist/types/dashboard-grid/index.d.ts.map +1 -0
  870. package/dist/types/dashboard-grid/use-persisted-dashboard-layout.d.ts +11 -0
  871. package/dist/types/dashboard-grid/use-persisted-dashboard-layout.d.ts.map +1 -0
  872. package/dist/types/data-grid/data-grid-body.d.ts +49 -0
  873. package/dist/types/data-grid/data-grid-body.d.ts.map +1 -0
  874. package/dist/types/data-grid/data-grid-constants.d.ts +40 -0
  875. package/dist/types/data-grid/data-grid-constants.d.ts.map +1 -0
  876. package/dist/types/data-grid/data-grid-context.d.ts +180 -0
  877. package/dist/types/data-grid/data-grid-context.d.ts.map +1 -0
  878. package/dist/types/data-grid/data-grid-defaults.d.ts +9 -0
  879. package/dist/types/data-grid/data-grid-defaults.d.ts.map +1 -0
  880. package/dist/types/data-grid/data-grid-editors.d.ts +16 -0
  881. package/dist/types/data-grid/data-grid-editors.d.ts.map +1 -0
  882. package/dist/types/data-grid/data-grid-filter.d.ts +25 -0
  883. package/dist/types/data-grid/data-grid-filter.d.ts.map +1 -0
  884. package/dist/types/data-grid/data-grid-header.d.ts +8 -0
  885. package/dist/types/data-grid/data-grid-header.d.ts.map +1 -0
  886. package/dist/types/data-grid/data-grid.d.ts +6 -0
  887. package/dist/types/data-grid/data-grid.d.ts.map +1 -0
  888. package/dist/types/data-grid/data-grid.types.d.ts +330 -0
  889. package/dist/types/data-grid/data-grid.types.d.ts.map +1 -0
  890. package/dist/types/data-grid/index.d.ts +7 -0
  891. package/dist/types/data-grid/index.d.ts.map +1 -0
  892. package/dist/types/data-grid/use-data-source.d.ts +21 -0
  893. package/dist/types/data-grid/use-data-source.d.ts.map +1 -0
  894. package/dist/types/data-grid/use-model.d.ts +9 -0
  895. package/dist/types/data-grid/use-model.d.ts.map +1 -0
  896. package/dist/types/data-grid/use-persisted-grid-view.d.ts +40 -0
  897. package/dist/types/data-grid/use-persisted-grid-view.d.ts.map +1 -0
  898. package/dist/types/data-list/data-list-defaults.d.ts +10 -0
  899. package/dist/types/data-list/data-list-defaults.d.ts.map +1 -0
  900. package/dist/types/data-list/data-list-demo.d.ts +34 -0
  901. package/dist/types/data-list/data-list-demo.d.ts.map +1 -0
  902. package/dist/types/data-list/data-list.d.ts +11 -0
  903. package/dist/types/data-list/data-list.d.ts.map +1 -0
  904. package/dist/types/data-list/data-list.types.d.ts +125 -0
  905. package/dist/types/data-list/data-list.types.d.ts.map +1 -0
  906. package/dist/types/data-list/index.d.ts +4 -0
  907. package/dist/types/data-list/index.d.ts.map +1 -0
  908. package/dist/types/date-field/date-field-defaults.d.ts +26 -0
  909. package/dist/types/date-field/date-field-defaults.d.ts.map +1 -0
  910. package/dist/types/date-field/date-field-demo.d.ts +22 -0
  911. package/dist/types/date-field/date-field-demo.d.ts.map +1 -0
  912. package/dist/types/date-field/date-field.d.ts +30 -0
  913. package/dist/types/date-field/date-field.d.ts.map +1 -0
  914. package/dist/types/date-field/date-field.types.d.ts +124 -0
  915. package/dist/types/date-field/date-field.types.d.ts.map +1 -0
  916. package/dist/types/date-field/index.d.ts +4 -0
  917. package/dist/types/date-field/index.d.ts.map +1 -0
  918. package/dist/types/date-picker/date-picker-defaults.d.ts +11 -0
  919. package/dist/types/date-picker/date-picker-defaults.d.ts.map +1 -0
  920. package/dist/types/date-picker/date-picker-demo.d.ts +22 -0
  921. package/dist/types/date-picker/date-picker-demo.d.ts.map +1 -0
  922. package/dist/types/date-picker/date-picker.d.ts +22 -0
  923. package/dist/types/date-picker/date-picker.d.ts.map +1 -0
  924. package/dist/types/date-picker/date-picker.types.d.ts +100 -0
  925. package/dist/types/date-picker/date-picker.types.d.ts.map +1 -0
  926. package/dist/types/date-picker/index.d.ts +4 -0
  927. package/dist/types/date-picker/index.d.ts.map +1 -0
  928. package/dist/types/date-range-picker/date-range-picker-defaults.d.ts +11 -0
  929. package/dist/types/date-range-picker/date-range-picker-defaults.d.ts.map +1 -0
  930. package/dist/types/date-range-picker/date-range-picker-demo.d.ts +22 -0
  931. package/dist/types/date-range-picker/date-range-picker-demo.d.ts.map +1 -0
  932. package/dist/types/date-range-picker/date-range-picker.d.ts +29 -0
  933. package/dist/types/date-range-picker/date-range-picker.d.ts.map +1 -0
  934. package/dist/types/date-range-picker/date-range-picker.types.d.ts +137 -0
  935. package/dist/types/date-range-picker/date-range-picker.types.d.ts.map +1 -0
  936. package/dist/types/date-range-picker/index.d.ts +4 -0
  937. package/dist/types/date-range-picker/index.d.ts.map +1 -0
  938. package/dist/types/datetime-field/datetime-field-defaults.d.ts +17 -0
  939. package/dist/types/datetime-field/datetime-field-defaults.d.ts.map +1 -0
  940. package/dist/types/datetime-field/datetime-field-demo.d.ts +31 -0
  941. package/dist/types/datetime-field/datetime-field-demo.d.ts.map +1 -0
  942. package/dist/types/datetime-field/datetime-field.d.ts +31 -0
  943. package/dist/types/datetime-field/datetime-field.d.ts.map +1 -0
  944. package/dist/types/datetime-field/datetime-field.types.d.ts +168 -0
  945. package/dist/types/datetime-field/datetime-field.types.d.ts.map +1 -0
  946. package/dist/types/datetime-field/index.d.ts +4 -0
  947. package/dist/types/datetime-field/index.d.ts.map +1 -0
  948. package/dist/types/datetime-picker/datetime-picker-defaults.d.ts +18 -0
  949. package/dist/types/datetime-picker/datetime-picker-defaults.d.ts.map +1 -0
  950. package/dist/types/datetime-picker/datetime-picker-demo.d.ts +38 -0
  951. package/dist/types/datetime-picker/datetime-picker-demo.d.ts.map +1 -0
  952. package/dist/types/datetime-picker/datetime-picker.d.ts +28 -0
  953. package/dist/types/datetime-picker/datetime-picker.d.ts.map +1 -0
  954. package/dist/types/datetime-picker/datetime-picker.types.d.ts +166 -0
  955. package/dist/types/datetime-picker/datetime-picker.types.d.ts.map +1 -0
  956. package/dist/types/datetime-picker/index.d.ts +4 -0
  957. package/dist/types/datetime-picker/index.d.ts.map +1 -0
  958. package/dist/types/datetime-range-picker/datetime-range-picker-defaults.d.ts +20 -0
  959. package/dist/types/datetime-range-picker/datetime-range-picker-defaults.d.ts.map +1 -0
  960. package/dist/types/datetime-range-picker/datetime-range-picker-demo.d.ts +31 -0
  961. package/dist/types/datetime-range-picker/datetime-range-picker-demo.d.ts.map +1 -0
  962. package/dist/types/datetime-range-picker/datetime-range-picker.d.ts +31 -0
  963. package/dist/types/datetime-range-picker/datetime-range-picker.d.ts.map +1 -0
  964. package/dist/types/datetime-range-picker/datetime-range-picker.types.d.ts +191 -0
  965. package/dist/types/datetime-range-picker/datetime-range-picker.types.d.ts.map +1 -0
  966. package/dist/types/datetime-range-picker/index.d.ts +4 -0
  967. package/dist/types/datetime-range-picker/index.d.ts.map +1 -0
  968. package/dist/types/description-list/description-list-clipboard.d.ts +15 -0
  969. package/dist/types/description-list/description-list-clipboard.d.ts.map +1 -0
  970. package/dist/types/description-list/description-list-defaults.d.ts +10 -0
  971. package/dist/types/description-list/description-list-defaults.d.ts.map +1 -0
  972. package/dist/types/description-list/description-list-parts.d.ts +86 -0
  973. package/dist/types/description-list/description-list-parts.d.ts.map +1 -0
  974. package/dist/types/description-list/description-list.d.ts +34 -0
  975. package/dist/types/description-list/description-list.d.ts.map +1 -0
  976. package/dist/types/description-list/description-list.types.d.ts +128 -0
  977. package/dist/types/description-list/description-list.types.d.ts.map +1 -0
  978. package/dist/types/description-list/index.d.ts +6 -0
  979. package/dist/types/description-list/index.d.ts.map +1 -0
  980. package/dist/types/detail-panel/detail-panel-defaults.d.ts +11 -0
  981. package/dist/types/detail-panel/detail-panel-defaults.d.ts.map +1 -0
  982. package/dist/types/detail-panel/detail-panel-demo.d.ts +92 -0
  983. package/dist/types/detail-panel/detail-panel-demo.d.ts.map +1 -0
  984. package/dist/types/detail-panel/detail-panel-parts.d.ts +27 -0
  985. package/dist/types/detail-panel/detail-panel-parts.d.ts.map +1 -0
  986. package/dist/types/detail-panel/detail-panel.d.ts +24 -0
  987. package/dist/types/detail-panel/detail-panel.d.ts.map +1 -0
  988. package/dist/types/detail-panel/detail-panel.types.d.ts +186 -0
  989. package/dist/types/detail-panel/detail-panel.types.d.ts.map +1 -0
  990. package/dist/types/detail-panel/index.d.ts +5 -0
  991. package/dist/types/detail-panel/index.d.ts.map +1 -0
  992. package/dist/types/dialog/dialog-defaults.d.ts +14 -0
  993. package/dist/types/dialog/dialog-defaults.d.ts.map +1 -0
  994. package/dist/types/dialog/dialog-demo.d.ts +18 -0
  995. package/dist/types/dialog/dialog-demo.d.ts.map +1 -0
  996. package/dist/types/dialog/dialog-parts.d.ts +73 -0
  997. package/dist/types/dialog/dialog-parts.d.ts.map +1 -0
  998. package/dist/types/dialog/dialog.d.ts +40 -0
  999. package/dist/types/dialog/dialog.d.ts.map +1 -0
  1000. package/dist/types/dialog/dialog.types.d.ts +279 -0
  1001. package/dist/types/dialog/dialog.types.d.ts.map +1 -0
  1002. package/dist/types/dialog/index.d.ts +5 -0
  1003. package/dist/types/dialog/index.d.ts.map +1 -0
  1004. package/dist/types/divider/divider.d.ts +14 -0
  1005. package/dist/types/divider/divider.d.ts.map +1 -0
  1006. package/dist/types/divider/divider.types.d.ts +37 -0
  1007. package/dist/types/divider/divider.types.d.ts.map +1 -0
  1008. package/dist/types/divider/index.d.ts +3 -0
  1009. package/dist/types/divider/index.d.ts.map +1 -0
  1010. package/dist/types/drawer/drawer-defaults.d.ts +14 -0
  1011. package/dist/types/drawer/drawer-defaults.d.ts.map +1 -0
  1012. package/dist/types/drawer/drawer-demo.d.ts +31 -0
  1013. package/dist/types/drawer/drawer-demo.d.ts.map +1 -0
  1014. package/dist/types/drawer/drawer-parts.d.ts +52 -0
  1015. package/dist/types/drawer/drawer-parts.d.ts.map +1 -0
  1016. package/dist/types/drawer/drawer.d.ts +32 -0
  1017. package/dist/types/drawer/drawer.d.ts.map +1 -0
  1018. package/dist/types/drawer/drawer.types.d.ts +311 -0
  1019. package/dist/types/drawer/drawer.types.d.ts.map +1 -0
  1020. package/dist/types/drawer/index.d.ts +5 -0
  1021. package/dist/types/drawer/index.d.ts.map +1 -0
  1022. package/dist/types/entity-picker/entity-picker-control.d.ts +16 -0
  1023. package/dist/types/entity-picker/entity-picker-control.d.ts.map +1 -0
  1024. package/dist/types/entity-picker/entity-picker-defaults.d.ts +13 -0
  1025. package/dist/types/entity-picker/entity-picker-defaults.d.ts.map +1 -0
  1026. package/dist/types/entity-picker/entity-picker-popup.d.ts +9 -0
  1027. package/dist/types/entity-picker/entity-picker-popup.d.ts.map +1 -0
  1028. package/dist/types/entity-picker/entity-picker.d.ts +91 -0
  1029. package/dist/types/entity-picker/entity-picker.d.ts.map +1 -0
  1030. package/dist/types/entity-picker/entity-picker.types.d.ts +159 -0
  1031. package/dist/types/entity-picker/entity-picker.types.d.ts.map +1 -0
  1032. package/dist/types/entity-picker/index.d.ts +5 -0
  1033. package/dist/types/entity-picker/index.d.ts.map +1 -0
  1034. package/dist/types/event-calendar/event-calendar-context.d.ts +59 -0
  1035. package/dist/types/event-calendar/event-calendar-context.d.ts.map +1 -0
  1036. package/dist/types/event-calendar/event-calendar-defaults.d.ts +13 -0
  1037. package/dist/types/event-calendar/event-calendar-defaults.d.ts.map +1 -0
  1038. package/dist/types/event-calendar/event-calendar-demo.d.ts +42 -0
  1039. package/dist/types/event-calendar/event-calendar-demo.d.ts.map +1 -0
  1040. package/dist/types/event-calendar/event-calendar-event.d.ts +33 -0
  1041. package/dist/types/event-calendar/event-calendar-event.d.ts.map +1 -0
  1042. package/dist/types/event-calendar/event-calendar-list.d.ts +17 -0
  1043. package/dist/types/event-calendar/event-calendar-list.d.ts.map +1 -0
  1044. package/dist/types/event-calendar/event-calendar-month.d.ts +24 -0
  1045. package/dist/types/event-calendar/event-calendar-month.d.ts.map +1 -0
  1046. package/dist/types/event-calendar/event-calendar-time-grid.d.ts +17 -0
  1047. package/dist/types/event-calendar/event-calendar-time-grid.d.ts.map +1 -0
  1048. package/dist/types/event-calendar/event-calendar.d.ts +23 -0
  1049. package/dist/types/event-calendar/event-calendar.d.ts.map +1 -0
  1050. package/dist/types/event-calendar/event-calendar.types.d.ts +225 -0
  1051. package/dist/types/event-calendar/event-calendar.types.d.ts.map +1 -0
  1052. package/dist/types/event-calendar/index.d.ts +4 -0
  1053. package/dist/types/event-calendar/index.d.ts.map +1 -0
  1054. package/dist/types/field/field-context.d.ts +54 -0
  1055. package/dist/types/field/field-context.d.ts.map +1 -0
  1056. package/dist/types/field/field-defaults.d.ts +20 -0
  1057. package/dist/types/field/field-defaults.d.ts.map +1 -0
  1058. package/dist/types/field/field-demo.d.ts +26 -0
  1059. package/dist/types/field/field-demo.d.ts.map +1 -0
  1060. package/dist/types/field/field-parts.d.ts +112 -0
  1061. package/dist/types/field/field-parts.d.ts.map +1 -0
  1062. package/dist/types/field/field.d.ts +31 -0
  1063. package/dist/types/field/field.d.ts.map +1 -0
  1064. package/dist/types/field/field.types.d.ts +249 -0
  1065. package/dist/types/field/field.types.d.ts.map +1 -0
  1066. package/dist/types/field/index.d.ts +6 -0
  1067. package/dist/types/field/index.d.ts.map +1 -0
  1068. package/dist/types/field-group/field-group-parts.d.ts +30 -0
  1069. package/dist/types/field-group/field-group-parts.d.ts.map +1 -0
  1070. package/dist/types/field-group/field-group.d.ts +34 -0
  1071. package/dist/types/field-group/field-group.d.ts.map +1 -0
  1072. package/dist/types/field-group/field-group.types.d.ts +87 -0
  1073. package/dist/types/field-group/field-group.types.d.ts.map +1 -0
  1074. package/dist/types/field-group/index.d.ts +4 -0
  1075. package/dist/types/field-group/index.d.ts.map +1 -0
  1076. package/dist/types/filter-bar/filter-bar-defaults.d.ts +10 -0
  1077. package/dist/types/filter-bar/filter-bar-defaults.d.ts.map +1 -0
  1078. package/dist/types/filter-bar/filter-bar-rules.d.ts +108 -0
  1079. package/dist/types/filter-bar/filter-bar-rules.d.ts.map +1 -0
  1080. package/dist/types/filter-bar/filter-bar.d.ts +11 -0
  1081. package/dist/types/filter-bar/filter-bar.d.ts.map +1 -0
  1082. package/dist/types/filter-bar/filter-bar.types.d.ts +171 -0
  1083. package/dist/types/filter-bar/filter-bar.types.d.ts.map +1 -0
  1084. package/dist/types/filter-bar/index.d.ts +4 -0
  1085. package/dist/types/filter-bar/index.d.ts.map +1 -0
  1086. package/dist/types/form/form-context.d.ts +13 -0
  1087. package/dist/types/form/form-context.d.ts.map +1 -0
  1088. package/dist/types/form/form-defaults.d.ts +9 -0
  1089. package/dist/types/form/form-defaults.d.ts.map +1 -0
  1090. package/dist/types/form/form-demo.d.ts +22 -0
  1091. package/dist/types/form/form-demo.d.ts.map +1 -0
  1092. package/dist/types/form/form-parts.d.ts +30 -0
  1093. package/dist/types/form/form-parts.d.ts.map +1 -0
  1094. package/dist/types/form/form.d.ts +27 -0
  1095. package/dist/types/form/form.d.ts.map +1 -0
  1096. package/dist/types/form/form.types.d.ts +137 -0
  1097. package/dist/types/form/form.types.d.ts.map +1 -0
  1098. package/dist/types/form/index.d.ts +6 -0
  1099. package/dist/types/form/index.d.ts.map +1 -0
  1100. package/dist/types/fullscreen/fullscreen-defaults.d.ts +10 -0
  1101. package/dist/types/fullscreen/fullscreen-defaults.d.ts.map +1 -0
  1102. package/dist/types/fullscreen/fullscreen.d.ts +30 -0
  1103. package/dist/types/fullscreen/fullscreen.d.ts.map +1 -0
  1104. package/dist/types/fullscreen/fullscreen.types.d.ts +116 -0
  1105. package/dist/types/fullscreen/fullscreen.types.d.ts.map +1 -0
  1106. package/dist/types/fullscreen/index.d.ts +5 -0
  1107. package/dist/types/fullscreen/index.d.ts.map +1 -0
  1108. package/dist/types/fullscreen/use-fullscreen.d.ts +16 -0
  1109. package/dist/types/fullscreen/use-fullscreen.d.ts.map +1 -0
  1110. package/dist/types/grid/grid.d.ts +19 -0
  1111. package/dist/types/grid/grid.d.ts.map +1 -0
  1112. package/dist/types/grid/grid.types.d.ts +38 -0
  1113. package/dist/types/grid/grid.types.d.ts.map +1 -0
  1114. package/dist/types/grid/index.d.ts +3 -0
  1115. package/dist/types/grid/index.d.ts.map +1 -0
  1116. package/dist/types/highlight/highlight-defaults.d.ts +12 -0
  1117. package/dist/types/highlight/highlight-defaults.d.ts.map +1 -0
  1118. package/dist/types/highlight/highlight.d.ts +18 -0
  1119. package/dist/types/highlight/highlight.d.ts.map +1 -0
  1120. package/dist/types/highlight/highlight.types.d.ts +57 -0
  1121. package/dist/types/highlight/highlight.types.d.ts.map +1 -0
  1122. package/dist/types/highlight/index.d.ts +4 -0
  1123. package/dist/types/highlight/index.d.ts.map +1 -0
  1124. package/dist/types/hover-card/hover-card-defaults.d.ts +12 -0
  1125. package/dist/types/hover-card/hover-card-defaults.d.ts.map +1 -0
  1126. package/dist/types/hover-card/hover-card.d.ts +36 -0
  1127. package/dist/types/hover-card/hover-card.d.ts.map +1 -0
  1128. package/dist/types/hover-card/hover-card.types.d.ts +94 -0
  1129. package/dist/types/hover-card/hover-card.types.d.ts.map +1 -0
  1130. package/dist/types/hover-card/index.d.ts +4 -0
  1131. package/dist/types/hover-card/index.d.ts.map +1 -0
  1132. package/dist/types/i18n/index.d.ts +3 -0
  1133. package/dist/types/i18n/index.d.ts.map +1 -0
  1134. package/dist/types/i18n/slotted-provider.d.ts +30 -0
  1135. package/dist/types/i18n/slotted-provider.d.ts.map +1 -0
  1136. package/dist/types/icon/glyph.d.ts +16 -0
  1137. package/dist/types/icon/glyph.d.ts.map +1 -0
  1138. package/dist/types/icon/icon.d.ts +15 -0
  1139. package/dist/types/icon/icon.d.ts.map +1 -0
  1140. package/dist/types/icon/icon.types.d.ts +37 -0
  1141. package/dist/types/icon/icon.types.d.ts.map +1 -0
  1142. package/dist/types/icon/index.d.ts +5 -0
  1143. package/dist/types/icon/index.d.ts.map +1 -0
  1144. package/dist/types/image/image-defaults.d.ts +11 -0
  1145. package/dist/types/image/image-defaults.d.ts.map +1 -0
  1146. package/dist/types/image/image.d.ts +24 -0
  1147. package/dist/types/image/image.d.ts.map +1 -0
  1148. package/dist/types/image/image.types.d.ts +158 -0
  1149. package/dist/types/image/image.types.d.ts.map +1 -0
  1150. package/dist/types/image/index.d.ts +4 -0
  1151. package/dist/types/image/index.d.ts.map +1 -0
  1152. package/dist/types/import-export-center/import-export-center-defaults.d.ts +11 -0
  1153. package/dist/types/import-export-center/import-export-center-defaults.d.ts.map +1 -0
  1154. package/dist/types/import-export-center/import-export-center-demo.d.ts +32 -0
  1155. package/dist/types/import-export-center/import-export-center-demo.d.ts.map +1 -0
  1156. package/dist/types/import-export-center/import-export-center.d.ts +29 -0
  1157. package/dist/types/import-export-center/import-export-center.d.ts.map +1 -0
  1158. package/dist/types/import-export-center/import-export-center.types.d.ts +130 -0
  1159. package/dist/types/import-export-center/import-export-center.types.d.ts.map +1 -0
  1160. package/dist/types/import-export-center/index.d.ts +6 -0
  1161. package/dist/types/import-export-center/index.d.ts.map +1 -0
  1162. package/dist/types/import-export-center/use-job-toasts.d.ts +21 -0
  1163. package/dist/types/import-export-center/use-job-toasts.d.ts.map +1 -0
  1164. package/dist/types/index.d.ts +126 -0
  1165. package/dist/types/index.d.ts.map +1 -0
  1166. package/dist/types/inline/index.d.ts +3 -0
  1167. package/dist/types/inline/index.d.ts.map +1 -0
  1168. package/dist/types/inline/inline.d.ts +17 -0
  1169. package/dist/types/inline/inline.d.ts.map +1 -0
  1170. package/dist/types/inline/inline.types.d.ts +29 -0
  1171. package/dist/types/inline/inline.types.d.ts.map +1 -0
  1172. package/dist/types/inline-message/index.d.ts +4 -0
  1173. package/dist/types/inline-message/index.d.ts.map +1 -0
  1174. package/dist/types/inline-message/inline-message-defaults.d.ts +25 -0
  1175. package/dist/types/inline-message/inline-message-defaults.d.ts.map +1 -0
  1176. package/dist/types/inline-message/inline-message-demo.d.ts +33 -0
  1177. package/dist/types/inline-message/inline-message-demo.d.ts.map +1 -0
  1178. package/dist/types/inline-message/inline-message.d.ts +24 -0
  1179. package/dist/types/inline-message/inline-message.d.ts.map +1 -0
  1180. package/dist/types/inline-message/inline-message.types.d.ts +97 -0
  1181. package/dist/types/inline-message/inline-message.types.d.ts.map +1 -0
  1182. package/dist/types/kbd/index.d.ts +5 -0
  1183. package/dist/types/kbd/index.d.ts.map +1 -0
  1184. package/dist/types/kbd/kbd-defaults.d.ts +43 -0
  1185. package/dist/types/kbd/kbd-defaults.d.ts.map +1 -0
  1186. package/dist/types/kbd/kbd.d.ts +17 -0
  1187. package/dist/types/kbd/kbd.d.ts.map +1 -0
  1188. package/dist/types/kbd/kbd.types.d.ts +115 -0
  1189. package/dist/types/kbd/kbd.types.d.ts.map +1 -0
  1190. package/dist/types/kbd/key-element.d.ts +28 -0
  1191. package/dist/types/kbd/key-element.d.ts.map +1 -0
  1192. package/dist/types/kbd/shortcut.d.ts +18 -0
  1193. package/dist/types/kbd/shortcut.d.ts.map +1 -0
  1194. package/dist/types/link/index.d.ts +4 -0
  1195. package/dist/types/link/index.d.ts.map +1 -0
  1196. package/dist/types/link/link-defaults.d.ts +10 -0
  1197. package/dist/types/link/link-defaults.d.ts.map +1 -0
  1198. package/dist/types/link/link.d.ts +18 -0
  1199. package/dist/types/link/link.d.ts.map +1 -0
  1200. package/dist/types/link/link.types.d.ts +44 -0
  1201. package/dist/types/link/link.types.d.ts.map +1 -0
  1202. package/dist/types/list/index.d.ts +5 -0
  1203. package/dist/types/list/index.d.ts.map +1 -0
  1204. package/dist/types/list/list-defaults.d.ts +11 -0
  1205. package/dist/types/list/list-defaults.d.ts.map +1 -0
  1206. package/dist/types/list/list-parts.d.ts +23 -0
  1207. package/dist/types/list/list-parts.d.ts.map +1 -0
  1208. package/dist/types/list/list.d.ts +27 -0
  1209. package/dist/types/list/list.d.ts.map +1 -0
  1210. package/dist/types/list/list.types.d.ts +96 -0
  1211. package/dist/types/list/list.types.d.ts.map +1 -0
  1212. package/dist/types/list-item/index.d.ts +6 -0
  1213. package/dist/types/list-item/index.d.ts.map +1 -0
  1214. package/dist/types/list-item/list-item-content.d.ts +39 -0
  1215. package/dist/types/list-item/list-item-content.d.ts.map +1 -0
  1216. package/dist/types/list-item/list-item-defaults.d.ts +10 -0
  1217. package/dist/types/list-item/list-item-defaults.d.ts.map +1 -0
  1218. package/dist/types/list-item/list-item-parts.d.ts +37 -0
  1219. package/dist/types/list-item/list-item-parts.d.ts.map +1 -0
  1220. package/dist/types/list-item/list-item.d.ts +25 -0
  1221. package/dist/types/list-item/list-item.d.ts.map +1 -0
  1222. package/dist/types/list-item/list-item.types.d.ts +131 -0
  1223. package/dist/types/list-item/list-item.types.d.ts.map +1 -0
  1224. package/dist/types/listbox/index.d.ts +6 -0
  1225. package/dist/types/listbox/index.d.ts.map +1 -0
  1226. package/dist/types/listbox/listbox-context.d.ts +9 -0
  1227. package/dist/types/listbox/listbox-context.d.ts.map +1 -0
  1228. package/dist/types/listbox/listbox-defaults.d.ts +14 -0
  1229. package/dist/types/listbox/listbox-defaults.d.ts.map +1 -0
  1230. package/dist/types/listbox/listbox-parts.d.ts +65 -0
  1231. package/dist/types/listbox/listbox-parts.d.ts.map +1 -0
  1232. package/dist/types/listbox/listbox.d.ts +31 -0
  1233. package/dist/types/listbox/listbox.d.ts.map +1 -0
  1234. package/dist/types/listbox/listbox.types.d.ts +275 -0
  1235. package/dist/types/listbox/listbox.types.d.ts.map +1 -0
  1236. package/dist/types/loading-overlay/index.d.ts +4 -0
  1237. package/dist/types/loading-overlay/index.d.ts.map +1 -0
  1238. package/dist/types/loading-overlay/loading-overlay-defaults.d.ts +18 -0
  1239. package/dist/types/loading-overlay/loading-overlay-defaults.d.ts.map +1 -0
  1240. package/dist/types/loading-overlay/loading-overlay.d.ts +22 -0
  1241. package/dist/types/loading-overlay/loading-overlay.d.ts.map +1 -0
  1242. package/dist/types/loading-overlay/loading-overlay.types.d.ts +145 -0
  1243. package/dist/types/loading-overlay/loading-overlay.types.d.ts.map +1 -0
  1244. package/dist/types/loading-overlay/use-loading-visibility.d.ts +26 -0
  1245. package/dist/types/loading-overlay/use-loading-visibility.d.ts.map +1 -0
  1246. package/dist/types/markdown/index.d.ts +4 -0
  1247. package/dist/types/markdown/index.d.ts.map +1 -0
  1248. package/dist/types/markdown/markdown-defaults.d.ts +10 -0
  1249. package/dist/types/markdown/markdown-defaults.d.ts.map +1 -0
  1250. package/dist/types/markdown/markdown.d.ts +18 -0
  1251. package/dist/types/markdown/markdown.d.ts.map +1 -0
  1252. package/dist/types/markdown/markdown.types.d.ts +105 -0
  1253. package/dist/types/markdown/markdown.types.d.ts.map +1 -0
  1254. package/dist/types/menu/index.d.ts +6 -0
  1255. package/dist/types/menu/index.d.ts.map +1 -0
  1256. package/dist/types/menu/menu-defaults.d.ts +28 -0
  1257. package/dist/types/menu/menu-defaults.d.ts.map +1 -0
  1258. package/dist/types/menu/menu-items.d.ts +50 -0
  1259. package/dist/types/menu/menu-items.d.ts.map +1 -0
  1260. package/dist/types/menu/menu-parts.d.ts +23 -0
  1261. package/dist/types/menu/menu-parts.d.ts.map +1 -0
  1262. package/dist/types/menu/menu.d.ts +15 -0
  1263. package/dist/types/menu/menu.d.ts.map +1 -0
  1264. package/dist/types/menu/menu.types.d.ts +334 -0
  1265. package/dist/types/menu/menu.types.d.ts.map +1 -0
  1266. package/dist/types/menubar/index.d.ts +4 -0
  1267. package/dist/types/menubar/index.d.ts.map +1 -0
  1268. package/dist/types/menubar/menubar-defaults.d.ts +11 -0
  1269. package/dist/types/menubar/menubar-defaults.d.ts.map +1 -0
  1270. package/dist/types/menubar/menubar.d.ts +12 -0
  1271. package/dist/types/menubar/menubar.d.ts.map +1 -0
  1272. package/dist/types/menubar/menubar.types.d.ts +52 -0
  1273. package/dist/types/menubar/menubar.types.d.ts.map +1 -0
  1274. package/dist/types/message/bubble-context.d.ts +6 -0
  1275. package/dist/types/message/bubble-context.d.ts.map +1 -0
  1276. package/dist/types/message/bubble.d.ts +69 -0
  1277. package/dist/types/message/bubble.d.ts.map +1 -0
  1278. package/dist/types/message/index.d.ts +7 -0
  1279. package/dist/types/message/index.d.ts.map +1 -0
  1280. package/dist/types/message/message-defaults.d.ts +11 -0
  1281. package/dist/types/message/message-defaults.d.ts.map +1 -0
  1282. package/dist/types/message/message-demo.d.ts +36 -0
  1283. package/dist/types/message/message-demo.d.ts.map +1 -0
  1284. package/dist/types/message/message-parts.d.ts +40 -0
  1285. package/dist/types/message/message-parts.d.ts.map +1 -0
  1286. package/dist/types/message/message.d.ts +43 -0
  1287. package/dist/types/message/message.d.ts.map +1 -0
  1288. package/dist/types/message/message.types.d.ts +156 -0
  1289. package/dist/types/message/message.types.d.ts.map +1 -0
  1290. package/dist/types/message-scroller/index.d.ts +4 -0
  1291. package/dist/types/message-scroller/index.d.ts.map +1 -0
  1292. package/dist/types/message-scroller/message-scroller-defaults.d.ts +10 -0
  1293. package/dist/types/message-scroller/message-scroller-defaults.d.ts.map +1 -0
  1294. package/dist/types/message-scroller/message-scroller.d.ts +49 -0
  1295. package/dist/types/message-scroller/message-scroller.d.ts.map +1 -0
  1296. package/dist/types/message-scroller/message-scroller.types.d.ts +90 -0
  1297. package/dist/types/message-scroller/message-scroller.types.d.ts.map +1 -0
  1298. package/dist/types/multi-select/index.d.ts +7 -0
  1299. package/dist/types/multi-select/index.d.ts.map +1 -0
  1300. package/dist/types/multi-select/multi-select-chips.d.ts +16 -0
  1301. package/dist/types/multi-select/multi-select-chips.d.ts.map +1 -0
  1302. package/dist/types/multi-select/multi-select-collection.d.ts +47 -0
  1303. package/dist/types/multi-select/multi-select-collection.d.ts.map +1 -0
  1304. package/dist/types/multi-select/multi-select-defaults.d.ts +42 -0
  1305. package/dist/types/multi-select/multi-select-defaults.d.ts.map +1 -0
  1306. package/dist/types/multi-select/multi-select-items.d.ts +28 -0
  1307. package/dist/types/multi-select/multi-select-items.d.ts.map +1 -0
  1308. package/dist/types/multi-select/multi-select-parts.d.ts +26 -0
  1309. package/dist/types/multi-select/multi-select-parts.d.ts.map +1 -0
  1310. package/dist/types/multi-select/multi-select.d.ts +118 -0
  1311. package/dist/types/multi-select/multi-select.d.ts.map +1 -0
  1312. package/dist/types/multi-select/multi-select.types.d.ts +209 -0
  1313. package/dist/types/multi-select/multi-select.types.d.ts.map +1 -0
  1314. package/dist/types/navigation-menu/index.d.ts +5 -0
  1315. package/dist/types/navigation-menu/index.d.ts.map +1 -0
  1316. package/dist/types/navigation-menu/navigation-menu-defaults.d.ts +13 -0
  1317. package/dist/types/navigation-menu/navigation-menu-defaults.d.ts.map +1 -0
  1318. package/dist/types/navigation-menu/navigation-menu-parts.d.ts +45 -0
  1319. package/dist/types/navigation-menu/navigation-menu-parts.d.ts.map +1 -0
  1320. package/dist/types/navigation-menu/navigation-menu.d.ts +27 -0
  1321. package/dist/types/navigation-menu/navigation-menu.d.ts.map +1 -0
  1322. package/dist/types/navigation-menu/navigation-menu.types.d.ts +175 -0
  1323. package/dist/types/navigation-menu/navigation-menu.types.d.ts.map +1 -0
  1324. package/dist/types/notification-center/index.d.ts +4 -0
  1325. package/dist/types/notification-center/index.d.ts.map +1 -0
  1326. package/dist/types/notification-center/notification-center-defaults.d.ts +12 -0
  1327. package/dist/types/notification-center/notification-center-defaults.d.ts.map +1 -0
  1328. package/dist/types/notification-center/notification-center-demo.d.ts +32 -0
  1329. package/dist/types/notification-center/notification-center-demo.d.ts.map +1 -0
  1330. package/dist/types/notification-center/notification-center.d.ts +28 -0
  1331. package/dist/types/notification-center/notification-center.d.ts.map +1 -0
  1332. package/dist/types/notification-center/notification-center.types.d.ts +193 -0
  1333. package/dist/types/notification-center/notification-center.types.d.ts.map +1 -0
  1334. package/dist/types/number-field/index.d.ts +4 -0
  1335. package/dist/types/number-field/index.d.ts.map +1 -0
  1336. package/dist/types/number-field/number-field-defaults.d.ts +21 -0
  1337. package/dist/types/number-field/number-field-defaults.d.ts.map +1 -0
  1338. package/dist/types/number-field/number-field-demo.d.ts +22 -0
  1339. package/dist/types/number-field/number-field-demo.d.ts.map +1 -0
  1340. package/dist/types/number-field/number-field.d.ts +49 -0
  1341. package/dist/types/number-field/number-field.d.ts.map +1 -0
  1342. package/dist/types/number-field/number-field.types.d.ts +174 -0
  1343. package/dist/types/number-field/number-field.types.d.ts.map +1 -0
  1344. package/dist/types/otp-input/index.d.ts +4 -0
  1345. package/dist/types/otp-input/index.d.ts.map +1 -0
  1346. package/dist/types/otp-input/otp-input-defaults.d.ts +15 -0
  1347. package/dist/types/otp-input/otp-input-defaults.d.ts.map +1 -0
  1348. package/dist/types/otp-input/otp-input-demo.d.ts +29 -0
  1349. package/dist/types/otp-input/otp-input-demo.d.ts.map +1 -0
  1350. package/dist/types/otp-input/otp-input.d.ts +29 -0
  1351. package/dist/types/otp-input/otp-input.d.ts.map +1 -0
  1352. package/dist/types/otp-input/otp-input.types.d.ts +130 -0
  1353. package/dist/types/otp-input/otp-input.types.d.ts.map +1 -0
  1354. package/dist/types/page/index.d.ts +4 -0
  1355. package/dist/types/page/index.d.ts.map +1 -0
  1356. package/dist/types/page/page-defaults.d.ts +11 -0
  1357. package/dist/types/page/page-defaults.d.ts.map +1 -0
  1358. package/dist/types/page/page-demo.d.ts +90 -0
  1359. package/dist/types/page/page-demo.d.ts.map +1 -0
  1360. package/dist/types/page/page.d.ts +39 -0
  1361. package/dist/types/page/page.d.ts.map +1 -0
  1362. package/dist/types/page/page.types.d.ts +103 -0
  1363. package/dist/types/page/page.types.d.ts.map +1 -0
  1364. package/dist/types/page-header/index.d.ts +5 -0
  1365. package/dist/types/page-header/index.d.ts.map +1 -0
  1366. package/dist/types/page-header/page-header-defaults.d.ts +11 -0
  1367. package/dist/types/page-header/page-header-defaults.d.ts.map +1 -0
  1368. package/dist/types/page-header/page-header-parts.d.ts +113 -0
  1369. package/dist/types/page-header/page-header-parts.d.ts.map +1 -0
  1370. package/dist/types/page-header/page-header.d.ts +32 -0
  1371. package/dist/types/page-header/page-header.d.ts.map +1 -0
  1372. package/dist/types/page-header/page-header.types.d.ts +198 -0
  1373. package/dist/types/page-header/page-header.types.d.ts.map +1 -0
  1374. package/dist/types/pagination/index.d.ts +5 -0
  1375. package/dist/types/pagination/index.d.ts.map +1 -0
  1376. package/dist/types/pagination/pagination-defaults.d.ts +11 -0
  1377. package/dist/types/pagination/pagination-defaults.d.ts.map +1 -0
  1378. package/dist/types/pagination/pagination-parts.d.ts +32 -0
  1379. package/dist/types/pagination/pagination-parts.d.ts.map +1 -0
  1380. package/dist/types/pagination/pagination.d.ts +28 -0
  1381. package/dist/types/pagination/pagination.d.ts.map +1 -0
  1382. package/dist/types/pagination/pagination.types.d.ts +130 -0
  1383. package/dist/types/pagination/pagination.types.d.ts.map +1 -0
  1384. package/dist/types/popover/index.d.ts +5 -0
  1385. package/dist/types/popover/index.d.ts.map +1 -0
  1386. package/dist/types/popover/popover-defaults.d.ts +18 -0
  1387. package/dist/types/popover/popover-defaults.d.ts.map +1 -0
  1388. package/dist/types/popover/popover-demo.d.ts +32 -0
  1389. package/dist/types/popover/popover-demo.d.ts.map +1 -0
  1390. package/dist/types/popover/popover-parts.d.ts +74 -0
  1391. package/dist/types/popover/popover-parts.d.ts.map +1 -0
  1392. package/dist/types/popover/popover.d.ts +26 -0
  1393. package/dist/types/popover/popover.d.ts.map +1 -0
  1394. package/dist/types/popover/popover.types.d.ts +246 -0
  1395. package/dist/types/popover/popover.types.d.ts.map +1 -0
  1396. package/dist/types/progress-indicator/index.d.ts +6 -0
  1397. package/dist/types/progress-indicator/index.d.ts.map +1 -0
  1398. package/dist/types/progress-indicator/loader.d.ts +23 -0
  1399. package/dist/types/progress-indicator/loader.d.ts.map +1 -0
  1400. package/dist/types/progress-indicator/progress-bar.d.ts +30 -0
  1401. package/dist/types/progress-indicator/progress-bar.d.ts.map +1 -0
  1402. package/dist/types/progress-indicator/progress-circle.d.ts +25 -0
  1403. package/dist/types/progress-indicator/progress-circle.d.ts.map +1 -0
  1404. package/dist/types/progress-indicator/progress-indicator-defaults.d.ts +16 -0
  1405. package/dist/types/progress-indicator/progress-indicator-defaults.d.ts.map +1 -0
  1406. package/dist/types/progress-indicator/progress-indicator.types.d.ts +117 -0
  1407. package/dist/types/progress-indicator/progress-indicator.types.d.ts.map +1 -0
  1408. package/dist/types/progress-indicator/progress-parts.d.ts +24 -0
  1409. package/dist/types/progress-indicator/progress-parts.d.ts.map +1 -0
  1410. package/dist/types/progress-indicator/use-loading-visibility.d.ts +20 -0
  1411. package/dist/types/progress-indicator/use-loading-visibility.d.ts.map +1 -0
  1412. package/dist/types/progress-indicator/use-progress-indicator.d.ts +76 -0
  1413. package/dist/types/progress-indicator/use-progress-indicator.d.ts.map +1 -0
  1414. package/dist/types/prompt-composer/index.d.ts +4 -0
  1415. package/dist/types/prompt-composer/index.d.ts.map +1 -0
  1416. package/dist/types/prompt-composer/prompt-composer-defaults.d.ts +9 -0
  1417. package/dist/types/prompt-composer/prompt-composer-defaults.d.ts.map +1 -0
  1418. package/dist/types/prompt-composer/prompt-composer-demo.d.ts +22 -0
  1419. package/dist/types/prompt-composer/prompt-composer-demo.d.ts.map +1 -0
  1420. package/dist/types/prompt-composer/prompt-composer.d.ts +43 -0
  1421. package/dist/types/prompt-composer/prompt-composer.d.ts.map +1 -0
  1422. package/dist/types/prompt-composer/prompt-composer.types.d.ts +144 -0
  1423. package/dist/types/prompt-composer/prompt-composer.types.d.ts.map +1 -0
  1424. package/dist/types/prose/index.d.ts +6 -0
  1425. package/dist/types/prose/index.d.ts.map +1 -0
  1426. package/dist/types/prose/prose-defaults.d.ts +11 -0
  1427. package/dist/types/prose/prose-defaults.d.ts.map +1 -0
  1428. package/dist/types/prose/prose-demo.d.ts +20 -0
  1429. package/dist/types/prose/prose-demo.d.ts.map +1 -0
  1430. package/dist/types/prose/prose-parts.d.ts +34 -0
  1431. package/dist/types/prose/prose-parts.d.ts.map +1 -0
  1432. package/dist/types/prose/prose-scroll.d.ts +27 -0
  1433. package/dist/types/prose/prose-scroll.d.ts.map +1 -0
  1434. package/dist/types/prose/prose.d.ts +27 -0
  1435. package/dist/types/prose/prose.d.ts.map +1 -0
  1436. package/dist/types/prose/prose.types.d.ts +99 -0
  1437. package/dist/types/prose/prose.types.d.ts.map +1 -0
  1438. package/dist/types/radio-group/index.d.ts +5 -0
  1439. package/dist/types/radio-group/index.d.ts.map +1 -0
  1440. package/dist/types/radio-group/radio-group-defaults.d.ts +11 -0
  1441. package/dist/types/radio-group/radio-group-defaults.d.ts.map +1 -0
  1442. package/dist/types/radio-group/radio-group-parts.d.ts +15 -0
  1443. package/dist/types/radio-group/radio-group-parts.d.ts.map +1 -0
  1444. package/dist/types/radio-group/radio-group.d.ts +29 -0
  1445. package/dist/types/radio-group/radio-group.d.ts.map +1 -0
  1446. package/dist/types/radio-group/radio-group.types.d.ts +128 -0
  1447. package/dist/types/radio-group/radio-group.types.d.ts.map +1 -0
  1448. package/dist/types/rating/index.d.ts +6 -0
  1449. package/dist/types/rating/index.d.ts.map +1 -0
  1450. package/dist/types/rating/rating-defaults.d.ts +11 -0
  1451. package/dist/types/rating/rating-defaults.d.ts.map +1 -0
  1452. package/dist/types/rating/rating-display.d.ts +30 -0
  1453. package/dist/types/rating/rating-display.d.ts.map +1 -0
  1454. package/dist/types/rating/rating-summary.d.ts +20 -0
  1455. package/dist/types/rating/rating-summary.d.ts.map +1 -0
  1456. package/dist/types/rating/rating.d.ts +29 -0
  1457. package/dist/types/rating/rating.d.ts.map +1 -0
  1458. package/dist/types/rating/rating.types.d.ts +172 -0
  1459. package/dist/types/rating/rating.types.d.ts.map +1 -0
  1460. package/dist/types/result-state/index.d.ts +5 -0
  1461. package/dist/types/result-state/index.d.ts.map +1 -0
  1462. package/dist/types/result-state/result-state-defaults.d.ts +15 -0
  1463. package/dist/types/result-state/result-state-defaults.d.ts.map +1 -0
  1464. package/dist/types/result-state/result-state-demo.d.ts +37 -0
  1465. package/dist/types/result-state/result-state-demo.d.ts.map +1 -0
  1466. package/dist/types/result-state/result-state-parts.d.ts +61 -0
  1467. package/dist/types/result-state/result-state-parts.d.ts.map +1 -0
  1468. package/dist/types/result-state/result-state.d.ts +5 -0
  1469. package/dist/types/result-state/result-state.d.ts.map +1 -0
  1470. package/dist/types/result-state/result-state.types.d.ts +115 -0
  1471. package/dist/types/result-state/result-state.types.d.ts.map +1 -0
  1472. package/dist/types/saved-views/index.d.ts +4 -0
  1473. package/dist/types/saved-views/index.d.ts.map +1 -0
  1474. package/dist/types/saved-views/saved-views-demo.d.ts +36 -0
  1475. package/dist/types/saved-views/saved-views-demo.d.ts.map +1 -0
  1476. package/dist/types/saved-views/saved-views.d.ts +12 -0
  1477. package/dist/types/saved-views/saved-views.d.ts.map +1 -0
  1478. package/dist/types/saved-views/saved-views.types.d.ts +83 -0
  1479. package/dist/types/saved-views/saved-views.types.d.ts.map +1 -0
  1480. package/dist/types/saved-views/use-persisted-saved-views.d.ts +10 -0
  1481. package/dist/types/saved-views/use-persisted-saved-views.d.ts.map +1 -0
  1482. package/dist/types/scroll-area/index.d.ts +4 -0
  1483. package/dist/types/scroll-area/index.d.ts.map +1 -0
  1484. package/dist/types/scroll-area/scroll-area-defaults.d.ts +18 -0
  1485. package/dist/types/scroll-area/scroll-area-defaults.d.ts.map +1 -0
  1486. package/dist/types/scroll-area/scroll-area-demo.d.ts +38 -0
  1487. package/dist/types/scroll-area/scroll-area-demo.d.ts.map +1 -0
  1488. package/dist/types/scroll-area/scroll-area.d.ts +35 -0
  1489. package/dist/types/scroll-area/scroll-area.d.ts.map +1 -0
  1490. package/dist/types/scroll-area/scroll-area.types.d.ts +112 -0
  1491. package/dist/types/scroll-area/scroll-area.types.d.ts.map +1 -0
  1492. package/dist/types/section/index.d.ts +5 -0
  1493. package/dist/types/section/index.d.ts.map +1 -0
  1494. package/dist/types/section/section-defaults.d.ts +10 -0
  1495. package/dist/types/section/section-defaults.d.ts.map +1 -0
  1496. package/dist/types/section/section-parts.d.ts +28 -0
  1497. package/dist/types/section/section-parts.d.ts.map +1 -0
  1498. package/dist/types/section/section.d.ts +29 -0
  1499. package/dist/types/section/section.d.ts.map +1 -0
  1500. package/dist/types/section/section.types.d.ts +83 -0
  1501. package/dist/types/section/section.types.d.ts.map +1 -0
  1502. package/dist/types/segmented-control/index.d.ts +5 -0
  1503. package/dist/types/segmented-control/index.d.ts.map +1 -0
  1504. package/dist/types/segmented-control/segmented-control-defaults.d.ts +11 -0
  1505. package/dist/types/segmented-control/segmented-control-defaults.d.ts.map +1 -0
  1506. package/dist/types/segmented-control/segmented-control-parts.d.ts +17 -0
  1507. package/dist/types/segmented-control/segmented-control-parts.d.ts.map +1 -0
  1508. package/dist/types/segmented-control/segmented-control.d.ts +30 -0
  1509. package/dist/types/segmented-control/segmented-control.d.ts.map +1 -0
  1510. package/dist/types/segmented-control/segmented-control.types.d.ts +116 -0
  1511. package/dist/types/segmented-control/segmented-control.types.d.ts.map +1 -0
  1512. package/dist/types/select/index.d.ts +7 -0
  1513. package/dist/types/select/index.d.ts.map +1 -0
  1514. package/dist/types/select/select-collection.d.ts +59 -0
  1515. package/dist/types/select/select-collection.d.ts.map +1 -0
  1516. package/dist/types/select/select-defaults.d.ts +41 -0
  1517. package/dist/types/select/select-defaults.d.ts.map +1 -0
  1518. package/dist/types/select/select-items.d.ts +46 -0
  1519. package/dist/types/select/select-items.d.ts.map +1 -0
  1520. package/dist/types/select/select-parts.d.ts +54 -0
  1521. package/dist/types/select/select-parts.d.ts.map +1 -0
  1522. package/dist/types/select/select-tags.d.ts +47 -0
  1523. package/dist/types/select/select-tags.d.ts.map +1 -0
  1524. package/dist/types/select/select.d.ts +101 -0
  1525. package/dist/types/select/select.d.ts.map +1 -0
  1526. package/dist/types/select/select.types.d.ts +264 -0
  1527. package/dist/types/select/select.types.d.ts.map +1 -0
  1528. package/dist/types/side-navigation/index.d.ts +5 -0
  1529. package/dist/types/side-navigation/index.d.ts.map +1 -0
  1530. package/dist/types/side-navigation/side-navigation-defaults.d.ts +13 -0
  1531. package/dist/types/side-navigation/side-navigation-defaults.d.ts.map +1 -0
  1532. package/dist/types/side-navigation/side-navigation-parts.d.ts +64 -0
  1533. package/dist/types/side-navigation/side-navigation-parts.d.ts.map +1 -0
  1534. package/dist/types/side-navigation/side-navigation.d.ts +32 -0
  1535. package/dist/types/side-navigation/side-navigation.d.ts.map +1 -0
  1536. package/dist/types/side-navigation/side-navigation.types.d.ts +248 -0
  1537. package/dist/types/side-navigation/side-navigation.types.d.ts.map +1 -0
  1538. package/dist/types/skeleton/index.d.ts +6 -0
  1539. package/dist/types/skeleton/index.d.ts.map +1 -0
  1540. package/dist/types/skeleton/skeleton-defaults.d.ts +17 -0
  1541. package/dist/types/skeleton/skeleton-defaults.d.ts.map +1 -0
  1542. package/dist/types/skeleton/skeleton-region-context.d.ts +14 -0
  1543. package/dist/types/skeleton/skeleton-region-context.d.ts.map +1 -0
  1544. package/dist/types/skeleton/skeleton-region.d.ts +28 -0
  1545. package/dist/types/skeleton/skeleton-region.d.ts.map +1 -0
  1546. package/dist/types/skeleton/skeleton-text.d.ts +20 -0
  1547. package/dist/types/skeleton/skeleton-text.d.ts.map +1 -0
  1548. package/dist/types/skeleton/skeleton.d.ts +29 -0
  1549. package/dist/types/skeleton/skeleton.d.ts.map +1 -0
  1550. package/dist/types/skeleton/skeleton.types.d.ts +110 -0
  1551. package/dist/types/skeleton/skeleton.types.d.ts.map +1 -0
  1552. package/dist/types/skeleton/use-loading-visibility.d.ts +18 -0
  1553. package/dist/types/skeleton/use-loading-visibility.d.ts.map +1 -0
  1554. package/dist/types/slider/index.d.ts +4 -0
  1555. package/dist/types/slider/index.d.ts.map +1 -0
  1556. package/dist/types/slider/slider-defaults.d.ts +15 -0
  1557. package/dist/types/slider/slider-defaults.d.ts.map +1 -0
  1558. package/dist/types/slider/slider-demo.d.ts +22 -0
  1559. package/dist/types/slider/slider-demo.d.ts.map +1 -0
  1560. package/dist/types/slider/slider.d.ts +27 -0
  1561. package/dist/types/slider/slider.d.ts.map +1 -0
  1562. package/dist/types/slider/slider.types.d.ts +134 -0
  1563. package/dist/types/slider/slider.types.d.ts.map +1 -0
  1564. package/dist/types/sparkline/index.d.ts +4 -0
  1565. package/dist/types/sparkline/index.d.ts.map +1 -0
  1566. package/dist/types/sparkline/sparkline-defaults.d.ts +11 -0
  1567. package/dist/types/sparkline/sparkline-defaults.d.ts.map +1 -0
  1568. package/dist/types/sparkline/sparkline.d.ts +18 -0
  1569. package/dist/types/sparkline/sparkline.d.ts.map +1 -0
  1570. package/dist/types/sparkline/sparkline.types.d.ts +68 -0
  1571. package/dist/types/sparkline/sparkline.types.d.ts.map +1 -0
  1572. package/dist/types/split-button/index.d.ts +5 -0
  1573. package/dist/types/split-button/index.d.ts.map +1 -0
  1574. package/dist/types/split-button/split-button-defaults.d.ts +15 -0
  1575. package/dist/types/split-button/split-button-defaults.d.ts.map +1 -0
  1576. package/dist/types/split-button/split-button-parts.d.ts +50 -0
  1577. package/dist/types/split-button/split-button-parts.d.ts.map +1 -0
  1578. package/dist/types/split-button/split-button.d.ts +21 -0
  1579. package/dist/types/split-button/split-button.d.ts.map +1 -0
  1580. package/dist/types/split-button/split-button.types.d.ts +101 -0
  1581. package/dist/types/split-button/split-button.types.d.ts.map +1 -0
  1582. package/dist/types/splitter/index.d.ts +4 -0
  1583. package/dist/types/splitter/index.d.ts.map +1 -0
  1584. package/dist/types/splitter/splitter-defaults.d.ts +16 -0
  1585. package/dist/types/splitter/splitter-defaults.d.ts.map +1 -0
  1586. package/dist/types/splitter/splitter-demo.d.ts +27 -0
  1587. package/dist/types/splitter/splitter-demo.d.ts.map +1 -0
  1588. package/dist/types/splitter/splitter.d.ts +14 -0
  1589. package/dist/types/splitter/splitter.d.ts.map +1 -0
  1590. package/dist/types/splitter/splitter.types.d.ts +106 -0
  1591. package/dist/types/splitter/splitter.types.d.ts.map +1 -0
  1592. package/dist/types/stack/index.d.ts +3 -0
  1593. package/dist/types/stack/index.d.ts.map +1 -0
  1594. package/dist/types/stack/stack.d.ts +17 -0
  1595. package/dist/types/stack/stack.d.ts.map +1 -0
  1596. package/dist/types/stack/stack.types.d.ts +26 -0
  1597. package/dist/types/stack/stack.types.d.ts.map +1 -0
  1598. package/dist/types/stat-card/index.d.ts +8 -0
  1599. package/dist/types/stat-card/index.d.ts.map +1 -0
  1600. package/dist/types/stat-card/stat-card-context.d.ts +12 -0
  1601. package/dist/types/stat-card/stat-card-context.d.ts.map +1 -0
  1602. package/dist/types/stat-card/stat-card-defaults.d.ts +10 -0
  1603. package/dist/types/stat-card/stat-card-defaults.d.ts.map +1 -0
  1604. package/dist/types/stat-card/stat-card-delta.d.ts +15 -0
  1605. package/dist/types/stat-card/stat-card-delta.d.ts.map +1 -0
  1606. package/dist/types/stat-card/stat-card-parts.d.ts +33 -0
  1607. package/dist/types/stat-card/stat-card-parts.d.ts.map +1 -0
  1608. package/dist/types/stat-card/stat-card-value.d.ts +11 -0
  1609. package/dist/types/stat-card/stat-card-value.d.ts.map +1 -0
  1610. package/dist/types/stat-card/stat-card.d.ts +20 -0
  1611. package/dist/types/stat-card/stat-card.d.ts.map +1 -0
  1612. package/dist/types/stat-card/stat-card.types.d.ts +140 -0
  1613. package/dist/types/stat-card/stat-card.types.d.ts.map +1 -0
  1614. package/dist/types/status-indicator/index.d.ts +5 -0
  1615. package/dist/types/status-indicator/index.d.ts.map +1 -0
  1616. package/dist/types/status-indicator/status-indicator-defaults.d.ts +10 -0
  1617. package/dist/types/status-indicator/status-indicator-defaults.d.ts.map +1 -0
  1618. package/dist/types/status-indicator/status-indicator.constants.d.ts +10 -0
  1619. package/dist/types/status-indicator/status-indicator.constants.d.ts.map +1 -0
  1620. package/dist/types/status-indicator/status-indicator.d.ts +20 -0
  1621. package/dist/types/status-indicator/status-indicator.d.ts.map +1 -0
  1622. package/dist/types/status-indicator/status-indicator.types.d.ts +83 -0
  1623. package/dist/types/status-indicator/status-indicator.types.d.ts.map +1 -0
  1624. package/dist/types/stepper/index.d.ts +6 -0
  1625. package/dist/types/stepper/index.d.ts.map +1 -0
  1626. package/dist/types/stepper/stepper-defaults.d.ts +11 -0
  1627. package/dist/types/stepper/stepper-defaults.d.ts.map +1 -0
  1628. package/dist/types/stepper/stepper-parts.d.ts +54 -0
  1629. package/dist/types/stepper/stepper-parts.d.ts.map +1 -0
  1630. package/dist/types/stepper/stepper.d.ts +50 -0
  1631. package/dist/types/stepper/stepper.d.ts.map +1 -0
  1632. package/dist/types/stepper/stepper.types.d.ts +133 -0
  1633. package/dist/types/stepper/stepper.types.d.ts.map +1 -0
  1634. package/dist/types/switch/index.d.ts +4 -0
  1635. package/dist/types/switch/index.d.ts.map +1 -0
  1636. package/dist/types/switch/switch-defaults.d.ts +27 -0
  1637. package/dist/types/switch/switch-defaults.d.ts.map +1 -0
  1638. package/dist/types/switch/switch-demo.d.ts +22 -0
  1639. package/dist/types/switch/switch-demo.d.ts.map +1 -0
  1640. package/dist/types/switch/switch.d.ts +48 -0
  1641. package/dist/types/switch/switch.d.ts.map +1 -0
  1642. package/dist/types/switch/switch.types.d.ts +118 -0
  1643. package/dist/types/switch/switch.types.d.ts.map +1 -0
  1644. package/dist/types/table/index.d.ts +7 -0
  1645. package/dist/types/table/index.d.ts.map +1 -0
  1646. package/dist/types/table/table-content.d.ts +18 -0
  1647. package/dist/types/table/table-content.d.ts.map +1 -0
  1648. package/dist/types/table/table-defaults.d.ts +10 -0
  1649. package/dist/types/table/table-defaults.d.ts.map +1 -0
  1650. package/dist/types/table/table-filter.d.ts +47 -0
  1651. package/dist/types/table/table-filter.d.ts.map +1 -0
  1652. package/dist/types/table/table-parts.d.ts +114 -0
  1653. package/dist/types/table/table-parts.d.ts.map +1 -0
  1654. package/dist/types/table/table.d.ts +33 -0
  1655. package/dist/types/table/table.d.ts.map +1 -0
  1656. package/dist/types/table/table.types.d.ts +439 -0
  1657. package/dist/types/table/table.types.d.ts.map +1 -0
  1658. package/dist/types/table-of-contents/index.d.ts +6 -0
  1659. package/dist/types/table-of-contents/index.d.ts.map +1 -0
  1660. package/dist/types/table-of-contents/table-of-contents-context.d.ts +15 -0
  1661. package/dist/types/table-of-contents/table-of-contents-context.d.ts.map +1 -0
  1662. package/dist/types/table-of-contents/table-of-contents-defaults.d.ts +13 -0
  1663. package/dist/types/table-of-contents/table-of-contents-defaults.d.ts.map +1 -0
  1664. package/dist/types/table-of-contents/table-of-contents-demo.d.ts +26 -0
  1665. package/dist/types/table-of-contents/table-of-contents-demo.d.ts.map +1 -0
  1666. package/dist/types/table-of-contents/table-of-contents-parts.d.ts +17 -0
  1667. package/dist/types/table-of-contents/table-of-contents-parts.d.ts.map +1 -0
  1668. package/dist/types/table-of-contents/table-of-contents.d.ts +31 -0
  1669. package/dist/types/table-of-contents/table-of-contents.d.ts.map +1 -0
  1670. package/dist/types/table-of-contents/table-of-contents.types.d.ts +157 -0
  1671. package/dist/types/table-of-contents/table-of-contents.types.d.ts.map +1 -0
  1672. package/dist/types/tabs/index.d.ts +5 -0
  1673. package/dist/types/tabs/index.d.ts.map +1 -0
  1674. package/dist/types/tabs/tabs-defaults.d.ts +10 -0
  1675. package/dist/types/tabs/tabs-defaults.d.ts.map +1 -0
  1676. package/dist/types/tabs/tabs-parts.d.ts +52 -0
  1677. package/dist/types/tabs/tabs-parts.d.ts.map +1 -0
  1678. package/dist/types/tabs/tabs.d.ts +33 -0
  1679. package/dist/types/tabs/tabs.d.ts.map +1 -0
  1680. package/dist/types/tabs/tabs.types.d.ts +209 -0
  1681. package/dist/types/tabs/tabs.types.d.ts.map +1 -0
  1682. package/dist/types/tag/index.d.ts +8 -0
  1683. package/dist/types/tag/index.d.ts.map +1 -0
  1684. package/dist/types/tag/tag-button.d.ts +14 -0
  1685. package/dist/types/tag/tag-button.d.ts.map +1 -0
  1686. package/dist/types/tag/tag-chip.d.ts +120 -0
  1687. package/dist/types/tag/tag-chip.d.ts.map +1 -0
  1688. package/dist/types/tag/tag-defaults.d.ts +15 -0
  1689. package/dist/types/tag/tag-defaults.d.ts.map +1 -0
  1690. package/dist/types/tag/tag-demo.d.ts +32 -0
  1691. package/dist/types/tag/tag-demo.d.ts.map +1 -0
  1692. package/dist/types/tag/tag-group.d.ts +22 -0
  1693. package/dist/types/tag/tag-group.d.ts.map +1 -0
  1694. package/dist/types/tag/tag-link.d.ts +16 -0
  1695. package/dist/types/tag/tag-link.d.ts.map +1 -0
  1696. package/dist/types/tag/tag-toggle.d.ts +20 -0
  1697. package/dist/types/tag/tag-toggle.d.ts.map +1 -0
  1698. package/dist/types/tag/tag.d.ts +17 -0
  1699. package/dist/types/tag/tag.d.ts.map +1 -0
  1700. package/dist/types/tag/tag.types.d.ts +153 -0
  1701. package/dist/types/tag/tag.types.d.ts.map +1 -0
  1702. package/dist/types/tags-input/index.d.ts +4 -0
  1703. package/dist/types/tags-input/index.d.ts.map +1 -0
  1704. package/dist/types/tags-input/tags-input-chips.d.ts +42 -0
  1705. package/dist/types/tags-input/tags-input-chips.d.ts.map +1 -0
  1706. package/dist/types/tags-input/tags-input-defaults.d.ts +30 -0
  1707. package/dist/types/tags-input/tags-input-defaults.d.ts.map +1 -0
  1708. package/dist/types/tags-input/tags-input.d.ts +28 -0
  1709. package/dist/types/tags-input/tags-input.d.ts.map +1 -0
  1710. package/dist/types/tags-input/tags-input.types.d.ts +139 -0
  1711. package/dist/types/tags-input/tags-input.types.d.ts.map +1 -0
  1712. package/dist/types/text-field/index.d.ts +4 -0
  1713. package/dist/types/text-field/index.d.ts.map +1 -0
  1714. package/dist/types/text-field/text-field-defaults.d.ts +17 -0
  1715. package/dist/types/text-field/text-field-defaults.d.ts.map +1 -0
  1716. package/dist/types/text-field/text-field-demo.d.ts +22 -0
  1717. package/dist/types/text-field/text-field-demo.d.ts.map +1 -0
  1718. package/dist/types/text-field/text-field.d.ts +37 -0
  1719. package/dist/types/text-field/text-field.d.ts.map +1 -0
  1720. package/dist/types/text-field/text-field.types.d.ts +156 -0
  1721. package/dist/types/text-field/text-field.types.d.ts.map +1 -0
  1722. package/dist/types/textarea/index.d.ts +4 -0
  1723. package/dist/types/textarea/index.d.ts.map +1 -0
  1724. package/dist/types/textarea/textarea-defaults.d.ts +11 -0
  1725. package/dist/types/textarea/textarea-defaults.d.ts.map +1 -0
  1726. package/dist/types/textarea/textarea-demo.d.ts +22 -0
  1727. package/dist/types/textarea/textarea-demo.d.ts.map +1 -0
  1728. package/dist/types/textarea/textarea.d.ts +25 -0
  1729. package/dist/types/textarea/textarea.d.ts.map +1 -0
  1730. package/dist/types/textarea/textarea.types.d.ts +88 -0
  1731. package/dist/types/textarea/textarea.types.d.ts.map +1 -0
  1732. package/dist/types/theme/index.d.ts +3 -0
  1733. package/dist/types/theme/index.d.ts.map +1 -0
  1734. package/dist/types/theme/theme-scope.d.ts +26 -0
  1735. package/dist/types/theme/theme-scope.d.ts.map +1 -0
  1736. package/dist/types/time-field/index.d.ts +4 -0
  1737. package/dist/types/time-field/index.d.ts.map +1 -0
  1738. package/dist/types/time-field/time-field-defaults.d.ts +17 -0
  1739. package/dist/types/time-field/time-field-defaults.d.ts.map +1 -0
  1740. package/dist/types/time-field/time-field-demo.d.ts +31 -0
  1741. package/dist/types/time-field/time-field-demo.d.ts.map +1 -0
  1742. package/dist/types/time-field/time-field.d.ts +31 -0
  1743. package/dist/types/time-field/time-field.d.ts.map +1 -0
  1744. package/dist/types/time-field/time-field.types.d.ts +134 -0
  1745. package/dist/types/time-field/time-field.types.d.ts.map +1 -0
  1746. package/dist/types/time-picker/index.d.ts +4 -0
  1747. package/dist/types/time-picker/index.d.ts.map +1 -0
  1748. package/dist/types/time-picker/time-picker-defaults.d.ts +27 -0
  1749. package/dist/types/time-picker/time-picker-defaults.d.ts.map +1 -0
  1750. package/dist/types/time-picker/time-picker.d.ts +22 -0
  1751. package/dist/types/time-picker/time-picker.d.ts.map +1 -0
  1752. package/dist/types/time-picker/time-picker.types.d.ts +126 -0
  1753. package/dist/types/time-picker/time-picker.types.d.ts.map +1 -0
  1754. package/dist/types/time-range-picker/index.d.ts +4 -0
  1755. package/dist/types/time-range-picker/index.d.ts.map +1 -0
  1756. package/dist/types/time-range-picker/time-range-picker-defaults.d.ts +18 -0
  1757. package/dist/types/time-range-picker/time-range-picker-defaults.d.ts.map +1 -0
  1758. package/dist/types/time-range-picker/time-range-picker-demo.d.ts +31 -0
  1759. package/dist/types/time-range-picker/time-range-picker-demo.d.ts.map +1 -0
  1760. package/dist/types/time-range-picker/time-range-picker.d.ts +35 -0
  1761. package/dist/types/time-range-picker/time-range-picker.d.ts.map +1 -0
  1762. package/dist/types/time-range-picker/time-range-picker.types.d.ts +170 -0
  1763. package/dist/types/time-range-picker/time-range-picker.types.d.ts.map +1 -0
  1764. package/dist/types/timeline/index.d.ts +6 -0
  1765. package/dist/types/timeline/index.d.ts.map +1 -0
  1766. package/dist/types/timeline/timeline-context.d.ts +12 -0
  1767. package/dist/types/timeline/timeline-context.d.ts.map +1 -0
  1768. package/dist/types/timeline/timeline-defaults.d.ts +11 -0
  1769. package/dist/types/timeline/timeline-defaults.d.ts.map +1 -0
  1770. package/dist/types/timeline/timeline-parts.d.ts +56 -0
  1771. package/dist/types/timeline/timeline-parts.d.ts.map +1 -0
  1772. package/dist/types/timeline/timeline.d.ts +28 -0
  1773. package/dist/types/timeline/timeline.d.ts.map +1 -0
  1774. package/dist/types/timeline/timeline.types.d.ts +206 -0
  1775. package/dist/types/timeline/timeline.types.d.ts.map +1 -0
  1776. package/dist/types/toast/index.d.ts +5 -0
  1777. package/dist/types/toast/index.d.ts.map +1 -0
  1778. package/dist/types/toast/toast-defaults.d.ts +41 -0
  1779. package/dist/types/toast/toast-defaults.d.ts.map +1 -0
  1780. package/dist/types/toast/toast-demo.d.ts +26 -0
  1781. package/dist/types/toast/toast-demo.d.ts.map +1 -0
  1782. package/dist/types/toast/toast-parts.d.ts +44 -0
  1783. package/dist/types/toast/toast-parts.d.ts.map +1 -0
  1784. package/dist/types/toast/toast.d.ts +42 -0
  1785. package/dist/types/toast/toast.d.ts.map +1 -0
  1786. package/dist/types/toast/toast.types.d.ts +163 -0
  1787. package/dist/types/toast/toast.types.d.ts.map +1 -0
  1788. package/dist/types/toggle/index.d.ts +4 -0
  1789. package/dist/types/toggle/index.d.ts.map +1 -0
  1790. package/dist/types/toggle/toggle-defaults.d.ts +11 -0
  1791. package/dist/types/toggle/toggle-defaults.d.ts.map +1 -0
  1792. package/dist/types/toggle/toggle.d.ts +17 -0
  1793. package/dist/types/toggle/toggle.d.ts.map +1 -0
  1794. package/dist/types/toggle/toggle.types.d.ts +66 -0
  1795. package/dist/types/toggle/toggle.types.d.ts.map +1 -0
  1796. package/dist/types/toggle-group/index.d.ts +5 -0
  1797. package/dist/types/toggle-group/index.d.ts.map +1 -0
  1798. package/dist/types/toggle-group/toggle-group-defaults.d.ts +10 -0
  1799. package/dist/types/toggle-group/toggle-group-defaults.d.ts.map +1 -0
  1800. package/dist/types/toggle-group/toggle-group-parts.d.ts +13 -0
  1801. package/dist/types/toggle-group/toggle-group-parts.d.ts.map +1 -0
  1802. package/dist/types/toggle-group/toggle-group.d.ts +31 -0
  1803. package/dist/types/toggle-group/toggle-group.d.ts.map +1 -0
  1804. package/dist/types/toggle-group/toggle-group.types.d.ts +110 -0
  1805. package/dist/types/toggle-group/toggle-group.types.d.ts.map +1 -0
  1806. package/dist/types/toolbar/index.d.ts +8 -0
  1807. package/dist/types/toolbar/index.d.ts.map +1 -0
  1808. package/dist/types/toolbar/toolbar-context.d.ts +42 -0
  1809. package/dist/types/toolbar/toolbar-context.d.ts.map +1 -0
  1810. package/dist/types/toolbar/toolbar-defaults.d.ts +10 -0
  1811. package/dist/types/toolbar/toolbar-defaults.d.ts.map +1 -0
  1812. package/dist/types/toolbar/toolbar-overflow.d.ts +23 -0
  1813. package/dist/types/toolbar/toolbar-overflow.d.ts.map +1 -0
  1814. package/dist/types/toolbar/toolbar-parts.d.ts +49 -0
  1815. package/dist/types/toolbar/toolbar-parts.d.ts.map +1 -0
  1816. package/dist/types/toolbar/toolbar.d.ts +32 -0
  1817. package/dist/types/toolbar/toolbar.d.ts.map +1 -0
  1818. package/dist/types/toolbar/toolbar.types.d.ts +123 -0
  1819. package/dist/types/toolbar/toolbar.types.d.ts.map +1 -0
  1820. package/dist/types/tooltip/index.d.ts +5 -0
  1821. package/dist/types/tooltip/index.d.ts.map +1 -0
  1822. package/dist/types/tooltip/tooltip-defaults.d.ts +39 -0
  1823. package/dist/types/tooltip/tooltip-defaults.d.ts.map +1 -0
  1824. package/dist/types/tooltip/tooltip-demo.d.ts +33 -0
  1825. package/dist/types/tooltip/tooltip-demo.d.ts.map +1 -0
  1826. package/dist/types/tooltip/tooltip-parts.d.ts +39 -0
  1827. package/dist/types/tooltip/tooltip-parts.d.ts.map +1 -0
  1828. package/dist/types/tooltip/tooltip.d.ts +27 -0
  1829. package/dist/types/tooltip/tooltip.d.ts.map +1 -0
  1830. package/dist/types/tooltip/tooltip.types.d.ts +260 -0
  1831. package/dist/types/tooltip/tooltip.types.d.ts.map +1 -0
  1832. package/dist/types/top-navigation/index.d.ts +5 -0
  1833. package/dist/types/top-navigation/index.d.ts.map +1 -0
  1834. package/dist/types/top-navigation/top-navigation-defaults.d.ts +13 -0
  1835. package/dist/types/top-navigation/top-navigation-defaults.d.ts.map +1 -0
  1836. package/dist/types/top-navigation/top-navigation-parts.d.ts +83 -0
  1837. package/dist/types/top-navigation/top-navigation-parts.d.ts.map +1 -0
  1838. package/dist/types/top-navigation/top-navigation.d.ts +40 -0
  1839. package/dist/types/top-navigation/top-navigation.d.ts.map +1 -0
  1840. package/dist/types/top-navigation/top-navigation.types.d.ts +271 -0
  1841. package/dist/types/top-navigation/top-navigation.types.d.ts.map +1 -0
  1842. package/dist/types/tour/index.d.ts +5 -0
  1843. package/dist/types/tour/index.d.ts.map +1 -0
  1844. package/dist/types/tour/tour-defaults.d.ts +17 -0
  1845. package/dist/types/tour/tour-defaults.d.ts.map +1 -0
  1846. package/dist/types/tour/tour-parts.d.ts +55 -0
  1847. package/dist/types/tour/tour-parts.d.ts.map +1 -0
  1848. package/dist/types/tour/tour.d.ts +25 -0
  1849. package/dist/types/tour/tour.d.ts.map +1 -0
  1850. package/dist/types/tour/tour.types.d.ts +232 -0
  1851. package/dist/types/tour/tour.types.d.ts.map +1 -0
  1852. package/dist/types/transfer/index.d.ts +4 -0
  1853. package/dist/types/transfer/index.d.ts.map +1 -0
  1854. package/dist/types/transfer/transfer-defaults.d.ts +10 -0
  1855. package/dist/types/transfer/transfer-defaults.d.ts.map +1 -0
  1856. package/dist/types/transfer/transfer.d.ts +5 -0
  1857. package/dist/types/transfer/transfer.d.ts.map +1 -0
  1858. package/dist/types/transfer/transfer.types.d.ts +157 -0
  1859. package/dist/types/transfer/transfer.types.d.ts.map +1 -0
  1860. package/dist/types/tree/index.d.ts +6 -0
  1861. package/dist/types/tree/index.d.ts.map +1 -0
  1862. package/dist/types/tree/tree-context.d.ts +19 -0
  1863. package/dist/types/tree/tree-context.d.ts.map +1 -0
  1864. package/dist/types/tree/tree-defaults.d.ts +10 -0
  1865. package/dist/types/tree/tree-defaults.d.ts.map +1 -0
  1866. package/dist/types/tree/tree-parts.d.ts +28 -0
  1867. package/dist/types/tree/tree-parts.d.ts.map +1 -0
  1868. package/dist/types/tree/tree.d.ts +24 -0
  1869. package/dist/types/tree/tree.d.ts.map +1 -0
  1870. package/dist/types/tree/tree.types.d.ts +322 -0
  1871. package/dist/types/tree/tree.types.d.ts.map +1 -0
  1872. package/dist/types/typography/heading-level.d.ts +12 -0
  1873. package/dist/types/typography/heading-level.d.ts.map +1 -0
  1874. package/dist/types/typography/heading.d.ts +293 -0
  1875. package/dist/types/typography/heading.d.ts.map +1 -0
  1876. package/dist/types/typography/index.d.ts +5 -0
  1877. package/dist/types/typography/index.d.ts.map +1 -0
  1878. package/dist/types/typography/text.d.ts +12 -0
  1879. package/dist/types/typography/text.d.ts.map +1 -0
  1880. package/dist/types/typography/typography.attributes.d.ts +18 -0
  1881. package/dist/types/typography/typography.attributes.d.ts.map +1 -0
  1882. package/dist/types/typography/typography.types.d.ts +49 -0
  1883. package/dist/types/typography/typography.types.d.ts.map +1 -0
  1884. package/dist/types/upload/index.d.ts +4 -0
  1885. package/dist/types/upload/index.d.ts.map +1 -0
  1886. package/dist/types/upload/upload-defaults.d.ts +20 -0
  1887. package/dist/types/upload/upload-defaults.d.ts.map +1 -0
  1888. package/dist/types/upload/upload-demo.d.ts +138 -0
  1889. package/dist/types/upload/upload-demo.d.ts.map +1 -0
  1890. package/dist/types/upload/upload-viewer.d.ts +34 -0
  1891. package/dist/types/upload/upload-viewer.d.ts.map +1 -0
  1892. package/dist/types/upload/upload.d.ts +19 -0
  1893. package/dist/types/upload/upload.d.ts.map +1 -0
  1894. package/dist/types/upload/upload.types.d.ts +151 -0
  1895. package/dist/types/upload/upload.types.d.ts.map +1 -0
  1896. package/dist/types/visually-hidden/index.d.ts +3 -0
  1897. package/dist/types/visually-hidden/index.d.ts.map +1 -0
  1898. package/dist/types/visually-hidden/visually-hidden.d.ts +14 -0
  1899. package/dist/types/visually-hidden/visually-hidden.d.ts.map +1 -0
  1900. package/dist/types/visually-hidden/visually-hidden.types.d.ts +21 -0
  1901. package/dist/types/visually-hidden/visually-hidden.types.d.ts.map +1 -0
  1902. package/dist/types/wizard/index.d.ts +6 -0
  1903. package/dist/types/wizard/index.d.ts.map +1 -0
  1904. package/dist/types/wizard/wizard-context.d.ts +12 -0
  1905. package/dist/types/wizard/wizard-context.d.ts.map +1 -0
  1906. package/dist/types/wizard/wizard-defaults.d.ts +16 -0
  1907. package/dist/types/wizard/wizard-defaults.d.ts.map +1 -0
  1908. package/dist/types/wizard/wizard-parts.d.ts +47 -0
  1909. package/dist/types/wizard/wizard-parts.d.ts.map +1 -0
  1910. package/dist/types/wizard/wizard.d.ts +27 -0
  1911. package/dist/types/wizard/wizard.d.ts.map +1 -0
  1912. package/dist/types/wizard/wizard.types.d.ts +228 -0
  1913. package/dist/types/wizard/wizard.types.d.ts.map +1 -0
  1914. package/dist/typography-B2iaigEC.js +92 -0
  1915. package/dist/typography.js +2 -0
  1916. package/dist/upload-Bq_UiyMr.js +613 -0
  1917. package/dist/upload.js +2 -0
  1918. package/dist/visually-hidden-CE6u5JLW.js +14 -0
  1919. package/dist/visually-hidden.js +2 -0
  1920. package/dist/wizard-B4GrlEqh.js +815 -0
  1921. package/dist/wizard.js +2 -0
  1922. package/package.json +558 -3
@@ -0,0 +1,2846 @@
1
+ <!-- index: ./index.md -->
2
+ # data-grid
3
+
4
+ `data-ui="data-grid"` · Table that sorts, filters and selects records.
5
+
6
+ ## Examples
7
+
8
+ ### Playground
9
+
10
+ Every capability on one listing of shipments: sort with a press and Shift, filter from the funnel or the row, select with the checkboxes, edit a cell with Enter, pin and resize from the header. The toolbar switches scheme, density and direction.
11
+
12
+ Excerpt — not a complete module
13
+
14
+ ```tsx
15
+ <DataGrid
16
+ columns={columns}
17
+ height="100%"
18
+ label="Shipments"
19
+ rowKey="id"
20
+ rows={shipments}
21
+ selectionMode="multiple"
22
+ />;
23
+ ```
24
+
25
+ ### Columns
26
+
27
+ Each column declares its kind, and the kind decides the comparator, the operators, the editor and the alignment: a number column sits its digits at the end in tabular figures, a date column formats the ISO day in the reader’s locale, a set column names its values.
28
+
29
+ Example
30
+
31
+ ```tsx
32
+ import type { GridColumn } from '@slotted/core/grid';
33
+ import { DataGrid } from '@slotted/react/data-grid';
34
+
35
+ interface Shipment {
36
+ id: string;
37
+ customer: string;
38
+ destination: string;
39
+ carrier: string;
40
+ status: string;
41
+ shipped: string;
42
+ weight: number;
43
+ cost: number;
44
+ priority: boolean;
45
+ }
46
+
47
+ const CUSTOMERS = [
48
+ 'Alfreds Futterkiste',
49
+ "Bon app'",
50
+ 'Ernst Handel',
51
+ 'Folk och fä HB',
52
+ 'Hanari Carnes',
53
+ 'Island Trading',
54
+ 'QUICK-Stop',
55
+ 'Wartian Herkku',
56
+ ];
57
+ const DESTINATIONS = [
58
+ 'Berlin, DE',
59
+ 'Marseille, FR',
60
+ 'Graz, AT',
61
+ 'Bräcke, SE',
62
+ 'Rio de Janeiro, BR',
63
+ 'Cowes, UK',
64
+ 'Boise, US',
65
+ 'Oulu, FI',
66
+ ];
67
+ const CARRIERS = ['UPS', 'FedEx', 'DHL', 'USPS'];
68
+ const STATUSES = ['In transit', 'Delivered', 'Delayed', 'Customs'];
69
+
70
+ function shipments(count: number): Shipment[] {
71
+ let seed = 7;
72
+ const next = () => (seed = (seed * 1664525 + 1013904223) % 4294967296) / 4294967296;
73
+ const pick = <T,>(list: readonly T[]) => list[Math.floor(next() * list.length)]!;
74
+ return Array.from({ length: count }, (_, index) => {
75
+ const weight = Math.round(next() * 9000) / 10;
76
+ return {
77
+ id: `SH-${3301 + index}`,
78
+ customer: pick(CUSTOMERS),
79
+ destination: pick(DESTINATIONS),
80
+ carrier: pick(CARRIERS),
81
+ status: pick(STATUSES),
82
+ shipped: `2026-09-${String(1 + Math.floor(next() * 28)).padStart(2, '0')}`,
83
+ weight,
84
+ cost: Math.round(weight * (2 + next() * 3) * 100) / 100,
85
+ priority: next() < 0.3,
86
+ };
87
+ });
88
+ }
89
+
90
+ const USD = new Intl.NumberFormat('en-US', { currency: 'USD', style: 'currency' });
91
+ const money = (value: unknown) => (typeof value === 'number' ? USD.format(value) : '');
92
+ const kilograms = (value: unknown) => (typeof value === 'number' ? `${value.toFixed(1)} kg` : '');
93
+
94
+ const COLUMNS: GridColumn<Shipment>[] = [
95
+ { id: 'id', label: 'Shipment', accessor: 'id', rowHeader: true, width: 120, text: 'nowrap' },
96
+ { id: 'customer', label: 'Customer', accessor: 'customer', flex: 1, minWidth: 180 },
97
+ { id: 'destination', label: 'Destination', accessor: 'destination', width: 170 },
98
+ {
99
+ id: 'carrier',
100
+ label: 'Carrier',
101
+ accessor: 'carrier',
102
+ kind: 'set',
103
+ width: 110,
104
+ options: CARRIERS.map((value) => ({ value, label: value })),
105
+ },
106
+ {
107
+ id: 'status',
108
+ label: 'Status',
109
+ accessor: 'status',
110
+ kind: 'set',
111
+ width: 120,
112
+ options: STATUSES.map((value) => ({ value, label: value })),
113
+ },
114
+ { id: 'shipped', label: 'Shipped', accessor: 'shipped', kind: 'date', width: 130 },
115
+ {
116
+ id: 'weight',
117
+ label: 'Weight',
118
+ accessor: 'weight',
119
+ kind: 'number',
120
+ width: 110,
121
+ format: kilograms,
122
+ },
123
+ { id: 'cost', label: 'Cost', accessor: 'cost', kind: 'number', width: 120, format: money },
124
+ ];
125
+
126
+ const ROWS = shipments(8);
127
+
128
+ export default function DataGridColumns() {
129
+ return (
130
+ <DataGrid aria-label="Shipments" columns={COLUMNS} rowKey="id" rows={ROWS} height="22rem" />
131
+ );
132
+ }
133
+ ```
134
+
135
+ ### Column groups
136
+
137
+ A second header row above the columns: each group spans the columns it names, wherever the reader has laid them out, and a column no group names spans itself.
138
+
139
+ Example
140
+
141
+ ```tsx
142
+ import type { GridColumn, GridColumnGroup } from '@slotted/core/grid';
143
+ import { DataGrid } from '@slotted/react/data-grid';
144
+
145
+ interface Shipment {
146
+ id: string;
147
+ customer: string;
148
+ destination: string;
149
+ carrier: string;
150
+ status: string;
151
+ shipped: string;
152
+ weight: number;
153
+ cost: number;
154
+ priority: boolean;
155
+ }
156
+
157
+ const CUSTOMERS = [
158
+ 'Alfreds Futterkiste',
159
+ "Bon app'",
160
+ 'Ernst Handel',
161
+ 'Folk och fä HB',
162
+ 'Hanari Carnes',
163
+ 'Island Trading',
164
+ 'QUICK-Stop',
165
+ 'Wartian Herkku',
166
+ ];
167
+ const DESTINATIONS = [
168
+ 'Berlin, DE',
169
+ 'Marseille, FR',
170
+ 'Graz, AT',
171
+ 'Bräcke, SE',
172
+ 'Rio de Janeiro, BR',
173
+ 'Cowes, UK',
174
+ 'Boise, US',
175
+ 'Oulu, FI',
176
+ ];
177
+ const CARRIERS = ['UPS', 'FedEx', 'DHL', 'USPS'];
178
+ const STATUSES = ['In transit', 'Delivered', 'Delayed', 'Customs'];
179
+
180
+ function shipments(count: number): Shipment[] {
181
+ let seed = 7;
182
+ const next = () => (seed = (seed * 1664525 + 1013904223) % 4294967296) / 4294967296;
183
+ const pick = <T,>(list: readonly T[]) => list[Math.floor(next() * list.length)]!;
184
+ return Array.from({ length: count }, (_, index) => {
185
+ const weight = Math.round(next() * 9000) / 10;
186
+ return {
187
+ id: `SH-${3301 + index}`,
188
+ customer: pick(CUSTOMERS),
189
+ destination: pick(DESTINATIONS),
190
+ carrier: pick(CARRIERS),
191
+ status: pick(STATUSES),
192
+ shipped: `2026-09-${String(1 + Math.floor(next() * 28)).padStart(2, '0')}`,
193
+ weight,
194
+ cost: Math.round(weight * (2 + next() * 3) * 100) / 100,
195
+ priority: next() < 0.3,
196
+ };
197
+ });
198
+ }
199
+
200
+ const USD = new Intl.NumberFormat('en-US', { currency: 'USD', style: 'currency' });
201
+ const money = (value: unknown) => (typeof value === 'number' ? USD.format(value) : '');
202
+ const kilograms = (value: unknown) => (typeof value === 'number' ? `${value.toFixed(1)} kg` : '');
203
+
204
+ const COLUMNS: GridColumn<Shipment>[] = [
205
+ { id: 'id', label: 'Shipment', accessor: 'id', rowHeader: true, width: 120, text: 'nowrap' },
206
+ { id: 'customer', label: 'Customer', accessor: 'customer', flex: 1, minWidth: 180 },
207
+ { id: 'destination', label: 'Destination', accessor: 'destination', width: 170 },
208
+ {
209
+ id: 'carrier',
210
+ label: 'Carrier',
211
+ accessor: 'carrier',
212
+ kind: 'set',
213
+ width: 110,
214
+ options: CARRIERS.map((value) => ({ value, label: value })),
215
+ },
216
+ {
217
+ id: 'status',
218
+ label: 'Status',
219
+ accessor: 'status',
220
+ kind: 'set',
221
+ width: 120,
222
+ options: STATUSES.map((value) => ({ value, label: value })),
223
+ },
224
+ { id: 'shipped', label: 'Shipped', accessor: 'shipped', kind: 'date', width: 130 },
225
+ {
226
+ id: 'weight',
227
+ label: 'Weight',
228
+ accessor: 'weight',
229
+ kind: 'number',
230
+ width: 110,
231
+ format: kilograms,
232
+ },
233
+ { id: 'cost', label: 'Cost', accessor: 'cost', kind: 'number', width: 120, format: money },
234
+ ];
235
+
236
+ const GROUPS: GridColumnGroup[] = [
237
+ { id: 'shipment', label: 'Shipment', columns: ['id', 'customer', 'destination'] },
238
+ { id: 'transport', label: 'Transport', columns: ['carrier', 'status', 'shipped'] },
239
+ { id: 'charges', label: 'Charges', columns: ['weight', 'cost'] },
240
+ ];
241
+
242
+ const ROWS = shipments(8);
243
+
244
+ export default function DataGridColumnGroups() {
245
+ return (
246
+ <DataGrid
247
+ aria-label="Shipments"
248
+ columns={COLUMNS}
249
+ rowKey="id"
250
+ rows={ROWS}
251
+ columnGroups={GROUPS}
252
+ height="22rem"
253
+ />
254
+ );
255
+ }
256
+ ```
257
+
258
+ ### Sorting
259
+
260
+ A press on a header sorts ascending, a second descending, a third removes the key; Shift with the press appends the column to the order instead, and the second and third keys carry their index beside the mark. Enter on the header does the same from the keyboard.
261
+
262
+ Example
263
+
264
+ ```tsx
265
+ import { useState } from 'react';
266
+ import { emptyQuery, type GridColumn, type GridQuery } from '@slotted/core/grid';
267
+ import { DataGrid } from '@slotted/react/data-grid';
268
+ import { Stack } from '@slotted/react/stack';
269
+ import { Text } from '@slotted/react/typography';
270
+
271
+ interface Shipment {
272
+ id: string;
273
+ customer: string;
274
+ destination: string;
275
+ carrier: string;
276
+ status: string;
277
+ shipped: string;
278
+ weight: number;
279
+ cost: number;
280
+ priority: boolean;
281
+ }
282
+
283
+ const CUSTOMERS = [
284
+ 'Alfreds Futterkiste',
285
+ "Bon app'",
286
+ 'Ernst Handel',
287
+ 'Folk och fä HB',
288
+ 'Hanari Carnes',
289
+ 'Island Trading',
290
+ 'QUICK-Stop',
291
+ 'Wartian Herkku',
292
+ ];
293
+ const DESTINATIONS = [
294
+ 'Berlin, DE',
295
+ 'Marseille, FR',
296
+ 'Graz, AT',
297
+ 'Bräcke, SE',
298
+ 'Rio de Janeiro, BR',
299
+ 'Cowes, UK',
300
+ 'Boise, US',
301
+ 'Oulu, FI',
302
+ ];
303
+ const CARRIERS = ['UPS', 'FedEx', 'DHL', 'USPS'];
304
+ const STATUSES = ['In transit', 'Delivered', 'Delayed', 'Customs'];
305
+
306
+ function shipments(count: number): Shipment[] {
307
+ let seed = 7;
308
+ const next = () => (seed = (seed * 1664525 + 1013904223) % 4294967296) / 4294967296;
309
+ const pick = <T,>(list: readonly T[]) => list[Math.floor(next() * list.length)]!;
310
+ return Array.from({ length: count }, (_, index) => {
311
+ const weight = Math.round(next() * 9000) / 10;
312
+ return {
313
+ id: `SH-${3301 + index}`,
314
+ customer: pick(CUSTOMERS),
315
+ destination: pick(DESTINATIONS),
316
+ carrier: pick(CARRIERS),
317
+ status: pick(STATUSES),
318
+ shipped: `2026-09-${String(1 + Math.floor(next() * 28)).padStart(2, '0')}`,
319
+ weight,
320
+ cost: Math.round(weight * (2 + next() * 3) * 100) / 100,
321
+ priority: next() < 0.3,
322
+ };
323
+ });
324
+ }
325
+
326
+ const USD = new Intl.NumberFormat('en-US', { currency: 'USD', style: 'currency' });
327
+ const money = (value: unknown) => (typeof value === 'number' ? USD.format(value) : '');
328
+ const kilograms = (value: unknown) => (typeof value === 'number' ? `${value.toFixed(1)} kg` : '');
329
+
330
+ const COLUMNS: GridColumn<Shipment>[] = [
331
+ { id: 'id', label: 'Shipment', accessor: 'id', rowHeader: true, width: 120, text: 'nowrap' },
332
+ { id: 'customer', label: 'Customer', accessor: 'customer', flex: 1, minWidth: 180 },
333
+ { id: 'destination', label: 'Destination', accessor: 'destination', width: 170 },
334
+ {
335
+ id: 'carrier',
336
+ label: 'Carrier',
337
+ accessor: 'carrier',
338
+ kind: 'set',
339
+ width: 110,
340
+ options: CARRIERS.map((value) => ({ value, label: value })),
341
+ },
342
+ {
343
+ id: 'status',
344
+ label: 'Status',
345
+ accessor: 'status',
346
+ kind: 'set',
347
+ width: 120,
348
+ options: STATUSES.map((value) => ({ value, label: value })),
349
+ },
350
+ { id: 'shipped', label: 'Shipped', accessor: 'shipped', kind: 'date', width: 130 },
351
+ {
352
+ id: 'weight',
353
+ label: 'Weight',
354
+ accessor: 'weight',
355
+ kind: 'number',
356
+ width: 110,
357
+ format: kilograms,
358
+ },
359
+ { id: 'cost', label: 'Cost', accessor: 'cost', kind: 'number', width: 120, format: money },
360
+ ];
361
+
362
+ const ROWS = shipments(12);
363
+
364
+ export default function DataGridSorting() {
365
+ const [query, setQuery] = useState<GridQuery>({
366
+ ...emptyQuery(),
367
+ sort: [
368
+ { column: 'carrier', direction: 'ascending' },
369
+ { column: 'cost', direction: 'descending' },
370
+ ],
371
+ });
372
+ const order = query.sort.map((key) => `${key.column} ${key.direction}`).join(', ') || 'none';
373
+
374
+ return (
375
+ <Stack gap={3}>
376
+ <Text size="sm" tone="muted">
377
+ Sorted by: {order}
378
+ </Text>
379
+ <DataGrid
380
+ aria-label="Shipments"
381
+ columns={COLUMNS}
382
+ rowKey="id"
383
+ rows={ROWS}
384
+ height="22rem"
385
+ onQueryChange={setQuery}
386
+ query={query}
387
+ />
388
+ </Stack>
389
+ );
390
+ }
391
+ ```
392
+
393
+ ### The filter panel
394
+
395
+ Ctrl+Enter on a header or its menu opens the panel: one line per condition — operator and operand in sm — the join as two words on the second line once the first is complete, Clear and Apply at the end. Nothing reaches the query until Apply.
396
+
397
+ Excerpt — not a complete module
398
+
399
+ ```tsx
400
+ <DataGrid
401
+ defaultQuery={
402
+ withColumnFilter(emptyQuery(), 'customer', {
403
+ kind: 'text',
404
+ join: 'or',
405
+ conditions: [
406
+ { operator: 'contains', value: 'nord' },
407
+ { operator: 'startsWith', value: 'B' },
408
+ ],
409
+ }).query
410
+ }
411
+ />;
412
+ ```
413
+
414
+ ### The filter row
415
+
416
+ With filterRow the row under the header holds one operand per column, plain, with the operator as a symbol at its start — press it for the names in full. Text and number apply after the debounce and on Enter; a set, a boolean and a date apply on change. The cursor walks the row.
417
+
418
+ Example
419
+
420
+ ```tsx
421
+ import { emptyQuery, withColumnFilter, type GridColumn } from '@slotted/core/grid';
422
+ import { DataGrid } from '@slotted/react/data-grid';
423
+
424
+ interface Shipment {
425
+ id: string;
426
+ customer: string;
427
+ destination: string;
428
+ carrier: string;
429
+ status: string;
430
+ shipped: string;
431
+ weight: number;
432
+ cost: number;
433
+ priority: boolean;
434
+ }
435
+
436
+ const CUSTOMERS = [
437
+ 'Alfreds Futterkiste',
438
+ "Bon app'",
439
+ 'Ernst Handel',
440
+ 'Folk och fä HB',
441
+ 'Hanari Carnes',
442
+ 'Island Trading',
443
+ 'QUICK-Stop',
444
+ 'Wartian Herkku',
445
+ ];
446
+ const DESTINATIONS = [
447
+ 'Berlin, DE',
448
+ 'Marseille, FR',
449
+ 'Graz, AT',
450
+ 'Bräcke, SE',
451
+ 'Rio de Janeiro, BR',
452
+ 'Cowes, UK',
453
+ 'Boise, US',
454
+ 'Oulu, FI',
455
+ ];
456
+ const CARRIERS = ['UPS', 'FedEx', 'DHL', 'USPS'];
457
+ const STATUSES = ['In transit', 'Delivered', 'Delayed', 'Customs'];
458
+
459
+ function shipments(count: number): Shipment[] {
460
+ let seed = 7;
461
+ const next = () => (seed = (seed * 1664525 + 1013904223) % 4294967296) / 4294967296;
462
+ const pick = <T,>(list: readonly T[]) => list[Math.floor(next() * list.length)]!;
463
+ return Array.from({ length: count }, (_, index) => {
464
+ const weight = Math.round(next() * 9000) / 10;
465
+ return {
466
+ id: `SH-${3301 + index}`,
467
+ customer: pick(CUSTOMERS),
468
+ destination: pick(DESTINATIONS),
469
+ carrier: pick(CARRIERS),
470
+ status: pick(STATUSES),
471
+ shipped: `2026-09-${String(1 + Math.floor(next() * 28)).padStart(2, '0')}`,
472
+ weight,
473
+ cost: Math.round(weight * (2 + next() * 3) * 100) / 100,
474
+ priority: next() < 0.3,
475
+ };
476
+ });
477
+ }
478
+
479
+ const USD = new Intl.NumberFormat('en-US', { currency: 'USD', style: 'currency' });
480
+ const money = (value: unknown) => (typeof value === 'number' ? USD.format(value) : '');
481
+ const kilograms = (value: unknown) => (typeof value === 'number' ? `${value.toFixed(1)} kg` : '');
482
+
483
+ const COLUMNS: GridColumn<Shipment>[] = [
484
+ { id: 'id', label: 'Shipment', accessor: 'id', rowHeader: true, width: 120, text: 'nowrap' },
485
+ { id: 'customer', label: 'Customer', accessor: 'customer', flex: 1, minWidth: 180 },
486
+ { id: 'destination', label: 'Destination', accessor: 'destination', width: 170 },
487
+ {
488
+ id: 'carrier',
489
+ label: 'Carrier',
490
+ accessor: 'carrier',
491
+ kind: 'set',
492
+ width: 110,
493
+ options: CARRIERS.map((value) => ({ value, label: value })),
494
+ },
495
+ {
496
+ id: 'status',
497
+ label: 'Status',
498
+ accessor: 'status',
499
+ kind: 'set',
500
+ width: 120,
501
+ options: STATUSES.map((value) => ({ value, label: value })),
502
+ },
503
+ { id: 'shipped', label: 'Shipped', accessor: 'shipped', kind: 'date', width: 130 },
504
+ {
505
+ id: 'weight',
506
+ label: 'Weight',
507
+ accessor: 'weight',
508
+ kind: 'number',
509
+ width: 110,
510
+ format: kilograms,
511
+ },
512
+ { id: 'cost', label: 'Cost', accessor: 'cost', kind: 'number', width: 120, format: money },
513
+ ];
514
+
515
+ const INITIAL_QUERY = withColumnFilter(emptyQuery(), 'status', {
516
+ kind: 'set',
517
+ join: 'and',
518
+ conditions: [{ operator: 'anyOf', value: ['Delayed', 'Customs'] }],
519
+ }).query;
520
+
521
+ const ROWS = shipments(24);
522
+
523
+ export default function DataGridFilterRow() {
524
+ return (
525
+ <DataGrid
526
+ aria-label="Shipments"
527
+ columns={COLUMNS}
528
+ rowKey="id"
529
+ rows={ROWS}
530
+ defaultQuery={INITIAL_QUERY}
531
+ filterRow
532
+ height="24rem"
533
+ />
534
+ );
535
+ }
536
+ ```
537
+
538
+ ### With a filter bar
539
+
540
+ One descriptor, two families: the bar above edits query.filter and the grid evaluates it, nested groups included. A rule written in a column header appears as a chip in the bar, and a chip removed in the bar clears the header’s funnel.
541
+
542
+ Excerpt — not a complete module
543
+
544
+ ```tsx
545
+ <>
546
+ <FilterBar
547
+ fields={fields}
548
+ onValueChange={(filter) => setQuery(withFilter(query, filter).query)}
549
+ value={query.filter}
550
+ />
551
+ <DataGrid columns={columns} onQueryChange={setQuery} query={query} rowKey="id" rows={shipments} />
552
+ </>;
553
+ ```
554
+
555
+ ### Search
556
+
557
+ One condition that belongs to no column: query.search is matched against the text of every searchable column through the locale collator, so "agua" finds "Água". The field that writes it is the consumer’s own text-field.
558
+
559
+ Example
560
+
561
+ ```tsx
562
+ import { useState } from 'react';
563
+ import { emptyQuery, withSearch, type GridColumn, type GridQuery } from '@slotted/core/grid';
564
+ import { DataGrid } from '@slotted/react/data-grid';
565
+ import { Stack } from '@slotted/react/stack';
566
+ import { TextField } from '@slotted/react/text-field';
567
+
568
+ interface Shipment {
569
+ id: string;
570
+ customer: string;
571
+ destination: string;
572
+ carrier: string;
573
+ status: string;
574
+ shipped: string;
575
+ weight: number;
576
+ cost: number;
577
+ priority: boolean;
578
+ }
579
+
580
+ const CUSTOMERS = [
581
+ 'Alfreds Futterkiste',
582
+ "Bon app'",
583
+ 'Ernst Handel',
584
+ 'Folk och fä HB',
585
+ 'Hanari Carnes',
586
+ 'Island Trading',
587
+ 'QUICK-Stop',
588
+ 'Wartian Herkku',
589
+ ];
590
+ const DESTINATIONS = [
591
+ 'Berlin, DE',
592
+ 'Marseille, FR',
593
+ 'Graz, AT',
594
+ 'Bräcke, SE',
595
+ 'Rio de Janeiro, BR',
596
+ 'Cowes, UK',
597
+ 'Boise, US',
598
+ 'Oulu, FI',
599
+ ];
600
+ const CARRIERS = ['UPS', 'FedEx', 'DHL', 'USPS'];
601
+ const STATUSES = ['In transit', 'Delivered', 'Delayed', 'Customs'];
602
+
603
+ function shipments(count: number): Shipment[] {
604
+ let seed = 7;
605
+ const next = () => (seed = (seed * 1664525 + 1013904223) % 4294967296) / 4294967296;
606
+ const pick = <T,>(list: readonly T[]) => list[Math.floor(next() * list.length)]!;
607
+ return Array.from({ length: count }, (_, index) => {
608
+ const weight = Math.round(next() * 9000) / 10;
609
+ return {
610
+ id: `SH-${3301 + index}`,
611
+ customer: pick(CUSTOMERS),
612
+ destination: pick(DESTINATIONS),
613
+ carrier: pick(CARRIERS),
614
+ status: pick(STATUSES),
615
+ shipped: `2026-09-${String(1 + Math.floor(next() * 28)).padStart(2, '0')}`,
616
+ weight,
617
+ cost: Math.round(weight * (2 + next() * 3) * 100) / 100,
618
+ priority: next() < 0.3,
619
+ };
620
+ });
621
+ }
622
+
623
+ const USD = new Intl.NumberFormat('en-US', { currency: 'USD', style: 'currency' });
624
+ const money = (value: unknown) => (typeof value === 'number' ? USD.format(value) : '');
625
+ const kilograms = (value: unknown) => (typeof value === 'number' ? `${value.toFixed(1)} kg` : '');
626
+
627
+ const COLUMNS: GridColumn<Shipment>[] = [
628
+ { id: 'id', label: 'Shipment', accessor: 'id', rowHeader: true, width: 120, text: 'nowrap' },
629
+ { id: 'customer', label: 'Customer', accessor: 'customer', flex: 1, minWidth: 180 },
630
+ { id: 'destination', label: 'Destination', accessor: 'destination', width: 170 },
631
+ {
632
+ id: 'carrier',
633
+ label: 'Carrier',
634
+ accessor: 'carrier',
635
+ kind: 'set',
636
+ width: 110,
637
+ options: CARRIERS.map((value) => ({ value, label: value })),
638
+ },
639
+ {
640
+ id: 'status',
641
+ label: 'Status',
642
+ accessor: 'status',
643
+ kind: 'set',
644
+ width: 120,
645
+ options: STATUSES.map((value) => ({ value, label: value })),
646
+ },
647
+ { id: 'shipped', label: 'Shipped', accessor: 'shipped', kind: 'date', width: 130 },
648
+ {
649
+ id: 'weight',
650
+ label: 'Weight',
651
+ accessor: 'weight',
652
+ kind: 'number',
653
+ width: 110,
654
+ format: kilograms,
655
+ },
656
+ { id: 'cost', label: 'Cost', accessor: 'cost', kind: 'number', width: 120, format: money },
657
+ ];
658
+
659
+ const ROWS = shipments(24);
660
+
661
+ export default function DataGridSearch() {
662
+ const [query, setQuery] = useState<GridQuery>({ ...emptyQuery(), search: 'graz' });
663
+
664
+ return (
665
+ <Stack gap={3}>
666
+ <TextField
667
+ aria-label="Search shipments"
668
+ clearable
669
+ onValueChange={(text) => setQuery((current) => withSearch(current, text).query)}
670
+ placeholder="Search shipments"
671
+ value={query.search}
672
+ />
673
+ <DataGrid
674
+ aria-label="Shipments"
675
+ columns={COLUMNS}
676
+ rowKey="id"
677
+ rows={ROWS}
678
+ height="22rem"
679
+ onQueryChange={setQuery}
680
+ query={query}
681
+ />
682
+ </Stack>
683
+ );
684
+ }
685
+ ```
686
+
687
+ ### Row selection
688
+
689
+ single chooses one row with a press; multiple draws the checkbox column, pinned to the start: Shift extends from the anchor, Shift+Space toggles the row from any cell, Ctrl+A and the header checkbox cover every row the query left and say so in their name.
690
+
691
+ Example
692
+
693
+ ```tsx
694
+ import { useState } from 'react';
695
+ import type { GridColumn } from '@slotted/core/grid';
696
+ import { DataGrid } from '@slotted/react/data-grid';
697
+ import { Text } from '@slotted/react/typography';
698
+
699
+ interface Shipment {
700
+ id: string;
701
+ customer: string;
702
+ destination: string;
703
+ carrier: string;
704
+ status: string;
705
+ shipped: string;
706
+ weight: number;
707
+ cost: number;
708
+ priority: boolean;
709
+ }
710
+
711
+ const CUSTOMERS = [
712
+ 'Alfreds Futterkiste',
713
+ "Bon app'",
714
+ 'Ernst Handel',
715
+ 'Folk och fä HB',
716
+ 'Hanari Carnes',
717
+ 'Island Trading',
718
+ 'QUICK-Stop',
719
+ 'Wartian Herkku',
720
+ ];
721
+ const DESTINATIONS = [
722
+ 'Berlin, DE',
723
+ 'Marseille, FR',
724
+ 'Graz, AT',
725
+ 'Bräcke, SE',
726
+ 'Rio de Janeiro, BR',
727
+ 'Cowes, UK',
728
+ 'Boise, US',
729
+ 'Oulu, FI',
730
+ ];
731
+ const CARRIERS = ['UPS', 'FedEx', 'DHL', 'USPS'];
732
+ const STATUSES = ['In transit', 'Delivered', 'Delayed', 'Customs'];
733
+
734
+ function shipments(count: number): Shipment[] {
735
+ let seed = 7;
736
+ const next = () => (seed = (seed * 1664525 + 1013904223) % 4294967296) / 4294967296;
737
+ const pick = <T,>(list: readonly T[]) => list[Math.floor(next() * list.length)]!;
738
+ return Array.from({ length: count }, (_, index) => {
739
+ const weight = Math.round(next() * 9000) / 10;
740
+ return {
741
+ id: `SH-${3301 + index}`,
742
+ customer: pick(CUSTOMERS),
743
+ destination: pick(DESTINATIONS),
744
+ carrier: pick(CARRIERS),
745
+ status: pick(STATUSES),
746
+ shipped: `2026-09-${String(1 + Math.floor(next() * 28)).padStart(2, '0')}`,
747
+ weight,
748
+ cost: Math.round(weight * (2 + next() * 3) * 100) / 100,
749
+ priority: next() < 0.3,
750
+ };
751
+ });
752
+ }
753
+
754
+ const USD = new Intl.NumberFormat('en-US', { currency: 'USD', style: 'currency' });
755
+ const money = (value: unknown) => (typeof value === 'number' ? USD.format(value) : '');
756
+ const kilograms = (value: unknown) => (typeof value === 'number' ? `${value.toFixed(1)} kg` : '');
757
+
758
+ const COLUMNS: GridColumn<Shipment>[] = [
759
+ { id: 'id', label: 'Shipment', accessor: 'id', rowHeader: true, width: 120, text: 'nowrap' },
760
+ { id: 'customer', label: 'Customer', accessor: 'customer', flex: 1, minWidth: 180 },
761
+ { id: 'destination', label: 'Destination', accessor: 'destination', width: 170 },
762
+ {
763
+ id: 'carrier',
764
+ label: 'Carrier',
765
+ accessor: 'carrier',
766
+ kind: 'set',
767
+ width: 110,
768
+ options: CARRIERS.map((value) => ({ value, label: value })),
769
+ },
770
+ {
771
+ id: 'status',
772
+ label: 'Status',
773
+ accessor: 'status',
774
+ kind: 'set',
775
+ width: 120,
776
+ options: STATUSES.map((value) => ({ value, label: value })),
777
+ },
778
+ { id: 'shipped', label: 'Shipped', accessor: 'shipped', kind: 'date', width: 130 },
779
+ {
780
+ id: 'weight',
781
+ label: 'Weight',
782
+ accessor: 'weight',
783
+ kind: 'number',
784
+ width: 110,
785
+ format: kilograms,
786
+ },
787
+ { id: 'cost', label: 'Cost', accessor: 'cost', kind: 'number', width: 120, format: money },
788
+ ];
789
+
790
+ const ROWS = shipments(12);
791
+
792
+ export default function DataGridSelection() {
793
+ const [value, setValue] = useState<string | readonly string[] | null>(['SH-3302', 'SH-3303']);
794
+ const count = Array.isArray(value) ? value.length : value === null ? 0 : 1;
795
+
796
+ return (
797
+ <DataGrid
798
+ aria-label="Shipments"
799
+ columns={COLUMNS}
800
+ rowKey="id"
801
+ rows={ROWS}
802
+ disabledKeys={['SH-3305']}
803
+ footer={
804
+ <Text size="sm" tone="muted">
805
+ {count} selected
806
+ </Text>
807
+ }
808
+ height="24rem"
809
+ onValueChange={setValue}
810
+ selectionMode="multiple"
811
+ value={value}
812
+ />
813
+ );
814
+ }
815
+ ```
816
+
817
+ ### Cell range
818
+
819
+ range selects a rectangle of cells: Shift with the arrows extends it from the anchor, Shift with a press sets it, a drag paints it, Ctrl+Space takes the column and Shift+Space the row. Ctrl+C copies it as tab-separated text; Escape clears it.
820
+
821
+ Example
822
+
823
+ ```tsx
824
+ import type { GridColumn } from '@slotted/core/grid';
825
+ import { DataGrid } from '@slotted/react/data-grid';
826
+
827
+ interface Shipment {
828
+ id: string;
829
+ customer: string;
830
+ destination: string;
831
+ carrier: string;
832
+ status: string;
833
+ shipped: string;
834
+ weight: number;
835
+ cost: number;
836
+ priority: boolean;
837
+ }
838
+
839
+ const CUSTOMERS = [
840
+ 'Alfreds Futterkiste',
841
+ "Bon app'",
842
+ 'Ernst Handel',
843
+ 'Folk och fä HB',
844
+ 'Hanari Carnes',
845
+ 'Island Trading',
846
+ 'QUICK-Stop',
847
+ 'Wartian Herkku',
848
+ ];
849
+ const DESTINATIONS = [
850
+ 'Berlin, DE',
851
+ 'Marseille, FR',
852
+ 'Graz, AT',
853
+ 'Bräcke, SE',
854
+ 'Rio de Janeiro, BR',
855
+ 'Cowes, UK',
856
+ 'Boise, US',
857
+ 'Oulu, FI',
858
+ ];
859
+ const CARRIERS = ['UPS', 'FedEx', 'DHL', 'USPS'];
860
+ const STATUSES = ['In transit', 'Delivered', 'Delayed', 'Customs'];
861
+
862
+ function shipments(count: number): Shipment[] {
863
+ let seed = 7;
864
+ const next = () => (seed = (seed * 1664525 + 1013904223) % 4294967296) / 4294967296;
865
+ const pick = <T,>(list: readonly T[]) => list[Math.floor(next() * list.length)]!;
866
+ return Array.from({ length: count }, (_, index) => {
867
+ const weight = Math.round(next() * 9000) / 10;
868
+ return {
869
+ id: `SH-${3301 + index}`,
870
+ customer: pick(CUSTOMERS),
871
+ destination: pick(DESTINATIONS),
872
+ carrier: pick(CARRIERS),
873
+ status: pick(STATUSES),
874
+ shipped: `2026-09-${String(1 + Math.floor(next() * 28)).padStart(2, '0')}`,
875
+ weight,
876
+ cost: Math.round(weight * (2 + next() * 3) * 100) / 100,
877
+ priority: next() < 0.3,
878
+ };
879
+ });
880
+ }
881
+
882
+ const USD = new Intl.NumberFormat('en-US', { currency: 'USD', style: 'currency' });
883
+ const money = (value: unknown) => (typeof value === 'number' ? USD.format(value) : '');
884
+ const kilograms = (value: unknown) => (typeof value === 'number' ? `${value.toFixed(1)} kg` : '');
885
+
886
+ const COLUMNS: GridColumn<Shipment>[] = [
887
+ { id: 'id', label: 'Shipment', accessor: 'id', rowHeader: true, width: 120, text: 'nowrap' },
888
+ { id: 'customer', label: 'Customer', accessor: 'customer', flex: 1, minWidth: 180 },
889
+ { id: 'destination', label: 'Destination', accessor: 'destination', width: 170 },
890
+ {
891
+ id: 'carrier',
892
+ label: 'Carrier',
893
+ accessor: 'carrier',
894
+ kind: 'set',
895
+ width: 110,
896
+ options: CARRIERS.map((value) => ({ value, label: value })),
897
+ },
898
+ {
899
+ id: 'status',
900
+ label: 'Status',
901
+ accessor: 'status',
902
+ kind: 'set',
903
+ width: 120,
904
+ options: STATUSES.map((value) => ({ value, label: value })),
905
+ },
906
+ { id: 'shipped', label: 'Shipped', accessor: 'shipped', kind: 'date', width: 130 },
907
+ {
908
+ id: 'weight',
909
+ label: 'Weight',
910
+ accessor: 'weight',
911
+ kind: 'number',
912
+ width: 110,
913
+ format: kilograms,
914
+ },
915
+ { id: 'cost', label: 'Cost', accessor: 'cost', kind: 'number', width: 120, format: money },
916
+ ];
917
+
918
+ const ROWS = shipments(12);
919
+
920
+ export default function DataGridRange() {
921
+ return (
922
+ <DataGrid
923
+ aria-label="Shipments"
924
+ columns={COLUMNS}
925
+ rowKey="id"
926
+ rows={ROWS}
927
+ defaultCurrent={{ row: 'SH-3303', column: 'weight' }}
928
+ height="24rem"
929
+ selectionMode="range"
930
+ />
931
+ );
932
+ }
933
+ ```
934
+
935
+ ### Editing a cell
936
+
937
+ Enter, F2, a double press or a typed key open the cell’s editor — the field family of its kind, plain, filling the cell. Enter commits and moves one row down, Tab commits and moves to the next editable cell, Escape cancels. The commit may return a promise; the cell dims until it settles.
938
+
939
+ Example
940
+
941
+ ```tsx
942
+ import { useState } from 'react';
943
+ import type { GridColumn } from '@slotted/core/grid';
944
+ import { DataGrid } from '@slotted/react/data-grid';
945
+
946
+ interface Shipment {
947
+ id: string;
948
+ customer: string;
949
+ destination: string;
950
+ carrier: string;
951
+ status: string;
952
+ shipped: string;
953
+ weight: number;
954
+ cost: number;
955
+ priority: boolean;
956
+ }
957
+
958
+ const CUSTOMERS = [
959
+ 'Alfreds Futterkiste',
960
+ "Bon app'",
961
+ 'Ernst Handel',
962
+ 'Folk och fä HB',
963
+ 'Hanari Carnes',
964
+ 'Island Trading',
965
+ 'QUICK-Stop',
966
+ 'Wartian Herkku',
967
+ ];
968
+ const DESTINATIONS = [
969
+ 'Berlin, DE',
970
+ 'Marseille, FR',
971
+ 'Graz, AT',
972
+ 'Bräcke, SE',
973
+ 'Rio de Janeiro, BR',
974
+ 'Cowes, UK',
975
+ 'Boise, US',
976
+ 'Oulu, FI',
977
+ ];
978
+ const CARRIERS = ['UPS', 'FedEx', 'DHL', 'USPS'];
979
+ const STATUSES = ['In transit', 'Delivered', 'Delayed', 'Customs'];
980
+
981
+ function shipments(count: number): Shipment[] {
982
+ let seed = 7;
983
+ const next = () => (seed = (seed * 1664525 + 1013904223) % 4294967296) / 4294967296;
984
+ const pick = <T,>(list: readonly T[]) => list[Math.floor(next() * list.length)]!;
985
+ return Array.from({ length: count }, (_, index) => {
986
+ const weight = Math.round(next() * 9000) / 10;
987
+ return {
988
+ id: `SH-${3301 + index}`,
989
+ customer: pick(CUSTOMERS),
990
+ destination: pick(DESTINATIONS),
991
+ carrier: pick(CARRIERS),
992
+ status: pick(STATUSES),
993
+ shipped: `2026-09-${String(1 + Math.floor(next() * 28)).padStart(2, '0')}`,
994
+ weight,
995
+ cost: Math.round(weight * (2 + next() * 3) * 100) / 100,
996
+ priority: next() < 0.3,
997
+ };
998
+ });
999
+ }
1000
+
1001
+ const USD = new Intl.NumberFormat('en-US', { currency: 'USD', style: 'currency' });
1002
+ const money = (value: unknown) => (typeof value === 'number' ? USD.format(value) : '');
1003
+ const kilograms = (value: unknown) => (typeof value === 'number' ? `${value.toFixed(1)} kg` : '');
1004
+
1005
+ const COLUMNS: GridColumn<Shipment>[] = [
1006
+ { id: 'id', label: 'Shipment', accessor: 'id', rowHeader: true, width: 120, text: 'nowrap' },
1007
+ { id: 'customer', label: 'Customer', accessor: 'customer', flex: 1, minWidth: 180 },
1008
+ { id: 'destination', label: 'Destination', accessor: 'destination', width: 170 },
1009
+ {
1010
+ id: 'carrier',
1011
+ label: 'Carrier',
1012
+ accessor: 'carrier',
1013
+ kind: 'set',
1014
+ width: 110,
1015
+ options: CARRIERS.map((value) => ({ value, label: value })),
1016
+ },
1017
+ {
1018
+ id: 'status',
1019
+ label: 'Status',
1020
+ accessor: 'status',
1021
+ kind: 'set',
1022
+ width: 120,
1023
+ options: STATUSES.map((value) => ({ value, label: value })),
1024
+ },
1025
+ { id: 'shipped', label: 'Shipped', accessor: 'shipped', kind: 'date', width: 130 },
1026
+ {
1027
+ id: 'weight',
1028
+ label: 'Weight',
1029
+ accessor: 'weight',
1030
+ kind: 'number',
1031
+ width: 110,
1032
+ format: kilograms,
1033
+ },
1034
+ { id: 'cost', label: 'Cost', accessor: 'cost', kind: 'number', width: 120, format: money },
1035
+ ];
1036
+
1037
+ const EDIT_COLUMNS: GridColumn<Shipment>[] = COLUMNS.map((column) =>
1038
+ column.id === 'weight'
1039
+ ? {
1040
+ ...column,
1041
+ editable: true,
1042
+ validate: (value: unknown) =>
1043
+ typeof value === 'number' && value <= 0 ? 'Enter a weight above zero.' : null,
1044
+ }
1045
+ : ['customer', 'destination', 'carrier'].includes(column.id)
1046
+ ? { ...column, editable: true }
1047
+ : column,
1048
+ );
1049
+
1050
+ const ROWS = shipments(8);
1051
+
1052
+ export default function DataGridEditing() {
1053
+ const [rows, setRows] = useState(ROWS);
1054
+
1055
+ return (
1056
+ <DataGrid
1057
+ aria-label="Shipments"
1058
+ columns={EDIT_COLUMNS}
1059
+ rowKey="id"
1060
+ rows={rows}
1061
+ editMode="cell"
1062
+ height="22rem"
1063
+ onEditCommit={({ key, changes }) =>
1064
+ setRows((current) => current.map((row) => (row.id === key ? { ...row, ...changes } : row)))
1065
+ }
1066
+ />
1067
+ );
1068
+ }
1069
+ ```
1070
+
1071
+ ### Editing a row
1072
+
1073
+ editMode="row" opens every editable cell of the row at once: Tab moves between them, Enter commits the row with every change in one request, Escape cancels them all.
1074
+
1075
+ Example
1076
+
1077
+ ```tsx
1078
+ import { useState } from 'react';
1079
+ import type { GridColumn } from '@slotted/core/grid';
1080
+ import { DataGrid } from '@slotted/react/data-grid';
1081
+
1082
+ interface Shipment {
1083
+ id: string;
1084
+ customer: string;
1085
+ destination: string;
1086
+ carrier: string;
1087
+ status: string;
1088
+ shipped: string;
1089
+ weight: number;
1090
+ cost: number;
1091
+ priority: boolean;
1092
+ }
1093
+
1094
+ const CUSTOMERS = [
1095
+ 'Alfreds Futterkiste',
1096
+ "Bon app'",
1097
+ 'Ernst Handel',
1098
+ 'Folk och fä HB',
1099
+ 'Hanari Carnes',
1100
+ 'Island Trading',
1101
+ 'QUICK-Stop',
1102
+ 'Wartian Herkku',
1103
+ ];
1104
+ const DESTINATIONS = [
1105
+ 'Berlin, DE',
1106
+ 'Marseille, FR',
1107
+ 'Graz, AT',
1108
+ 'Bräcke, SE',
1109
+ 'Rio de Janeiro, BR',
1110
+ 'Cowes, UK',
1111
+ 'Boise, US',
1112
+ 'Oulu, FI',
1113
+ ];
1114
+ const CARRIERS = ['UPS', 'FedEx', 'DHL', 'USPS'];
1115
+ const STATUSES = ['In transit', 'Delivered', 'Delayed', 'Customs'];
1116
+
1117
+ function shipments(count: number): Shipment[] {
1118
+ let seed = 7;
1119
+ const next = () => (seed = (seed * 1664525 + 1013904223) % 4294967296) / 4294967296;
1120
+ const pick = <T,>(list: readonly T[]) => list[Math.floor(next() * list.length)]!;
1121
+ return Array.from({ length: count }, (_, index) => {
1122
+ const weight = Math.round(next() * 9000) / 10;
1123
+ return {
1124
+ id: `SH-${3301 + index}`,
1125
+ customer: pick(CUSTOMERS),
1126
+ destination: pick(DESTINATIONS),
1127
+ carrier: pick(CARRIERS),
1128
+ status: pick(STATUSES),
1129
+ shipped: `2026-09-${String(1 + Math.floor(next() * 28)).padStart(2, '0')}`,
1130
+ weight,
1131
+ cost: Math.round(weight * (2 + next() * 3) * 100) / 100,
1132
+ priority: next() < 0.3,
1133
+ };
1134
+ });
1135
+ }
1136
+
1137
+ const USD = new Intl.NumberFormat('en-US', { currency: 'USD', style: 'currency' });
1138
+ const money = (value: unknown) => (typeof value === 'number' ? USD.format(value) : '');
1139
+ const kilograms = (value: unknown) => (typeof value === 'number' ? `${value.toFixed(1)} kg` : '');
1140
+
1141
+ const COLUMNS: GridColumn<Shipment>[] = [
1142
+ { id: 'id', label: 'Shipment', accessor: 'id', rowHeader: true, width: 120, text: 'nowrap' },
1143
+ { id: 'customer', label: 'Customer', accessor: 'customer', flex: 1, minWidth: 180 },
1144
+ { id: 'destination', label: 'Destination', accessor: 'destination', width: 170 },
1145
+ {
1146
+ id: 'carrier',
1147
+ label: 'Carrier',
1148
+ accessor: 'carrier',
1149
+ kind: 'set',
1150
+ width: 110,
1151
+ options: CARRIERS.map((value) => ({ value, label: value })),
1152
+ },
1153
+ {
1154
+ id: 'status',
1155
+ label: 'Status',
1156
+ accessor: 'status',
1157
+ kind: 'set',
1158
+ width: 120,
1159
+ options: STATUSES.map((value) => ({ value, label: value })),
1160
+ },
1161
+ { id: 'shipped', label: 'Shipped', accessor: 'shipped', kind: 'date', width: 130 },
1162
+ {
1163
+ id: 'weight',
1164
+ label: 'Weight',
1165
+ accessor: 'weight',
1166
+ kind: 'number',
1167
+ width: 110,
1168
+ format: kilograms,
1169
+ },
1170
+ { id: 'cost', label: 'Cost', accessor: 'cost', kind: 'number', width: 120, format: money },
1171
+ ];
1172
+
1173
+ const EDIT_COLUMNS: GridColumn<Shipment>[] = COLUMNS.map((column) =>
1174
+ column.id === 'weight'
1175
+ ? {
1176
+ ...column,
1177
+ editable: true,
1178
+ validate: (value: unknown) =>
1179
+ typeof value === 'number' && value <= 0 ? 'Enter a weight above zero.' : null,
1180
+ }
1181
+ : ['customer', 'destination', 'carrier'].includes(column.id)
1182
+ ? { ...column, editable: true }
1183
+ : column,
1184
+ );
1185
+
1186
+ const ROWS = shipments(8);
1187
+
1188
+ export default function DataGridEditingRow() {
1189
+ const [rows, setRows] = useState(ROWS);
1190
+
1191
+ return (
1192
+ <DataGrid
1193
+ aria-label="Shipments"
1194
+ columns={EDIT_COLUMNS}
1195
+ rowKey="id"
1196
+ rows={rows}
1197
+ editMode="row"
1198
+ height="22rem"
1199
+ onEditCommit={({ key, changes }) =>
1200
+ setRows((current) => current.map((row) => (row.id === key ? { ...row, ...changes } : row)))
1201
+ }
1202
+ />
1203
+ );
1204
+ }
1205
+ ```
1206
+
1207
+ ### Validation, failure and conflict
1208
+
1209
+ A column’s validate refuses a draft with a message: the cell turns invalid and keeps what was typed. A commit that rejects reopens the editor with the draft and the error. A row that changes under an open editor is a conflict, said in the same place.
1210
+
1211
+ Excerpt — not a complete module
1212
+
1213
+ ```tsx
1214
+ const columns = [
1215
+ {
1216
+ id: 'weight',
1217
+ label: 'Weight',
1218
+ kind: 'number',
1219
+ editable: true,
1220
+ validate: (value) => (value < 0 ? 'A weight is not negative' : null),
1221
+ },
1222
+ ];
1223
+ <DataGrid columns={columns} onEditCommit={() => Promise.reject(new Error('Offline'))} />;
1224
+ ```
1225
+
1226
+ ### Row activation
1227
+
1228
+ activatable turns a double press or Enter on a text cell into onActivate with the row’s key — opening the record is a different act from choosing it, and the two never share a key. An editable cell keeps Enter for its editor. On a touch screen or with a pen one press activates, except on a widget in the cell or a cell in edit, and the double press that follows within 500ms is ignored.
1229
+
1230
+ Example
1231
+
1232
+ ```tsx
1233
+ import { useState } from 'react';
1234
+ import type { GridColumn } from '@slotted/core/grid';
1235
+ import { DataGrid } from '@slotted/react/data-grid';
1236
+ import { Stack } from '@slotted/react/stack';
1237
+ import { Text } from '@slotted/react/typography';
1238
+
1239
+ interface Shipment {
1240
+ id: string;
1241
+ customer: string;
1242
+ destination: string;
1243
+ carrier: string;
1244
+ status: string;
1245
+ shipped: string;
1246
+ weight: number;
1247
+ cost: number;
1248
+ priority: boolean;
1249
+ }
1250
+
1251
+ const CUSTOMERS = [
1252
+ 'Alfreds Futterkiste',
1253
+ "Bon app'",
1254
+ 'Ernst Handel',
1255
+ 'Folk och fä HB',
1256
+ 'Hanari Carnes',
1257
+ 'Island Trading',
1258
+ 'QUICK-Stop',
1259
+ 'Wartian Herkku',
1260
+ ];
1261
+ const DESTINATIONS = [
1262
+ 'Berlin, DE',
1263
+ 'Marseille, FR',
1264
+ 'Graz, AT',
1265
+ 'Bräcke, SE',
1266
+ 'Rio de Janeiro, BR',
1267
+ 'Cowes, UK',
1268
+ 'Boise, US',
1269
+ 'Oulu, FI',
1270
+ ];
1271
+ const CARRIERS = ['UPS', 'FedEx', 'DHL', 'USPS'];
1272
+ const STATUSES = ['In transit', 'Delivered', 'Delayed', 'Customs'];
1273
+
1274
+ function shipments(count: number): Shipment[] {
1275
+ let seed = 7;
1276
+ const next = () => (seed = (seed * 1664525 + 1013904223) % 4294967296) / 4294967296;
1277
+ const pick = <T,>(list: readonly T[]) => list[Math.floor(next() * list.length)]!;
1278
+ return Array.from({ length: count }, (_, index) => {
1279
+ const weight = Math.round(next() * 9000) / 10;
1280
+ return {
1281
+ id: `SH-${3301 + index}`,
1282
+ customer: pick(CUSTOMERS),
1283
+ destination: pick(DESTINATIONS),
1284
+ carrier: pick(CARRIERS),
1285
+ status: pick(STATUSES),
1286
+ shipped: `2026-09-${String(1 + Math.floor(next() * 28)).padStart(2, '0')}`,
1287
+ weight,
1288
+ cost: Math.round(weight * (2 + next() * 3) * 100) / 100,
1289
+ priority: next() < 0.3,
1290
+ };
1291
+ });
1292
+ }
1293
+
1294
+ const USD = new Intl.NumberFormat('en-US', { currency: 'USD', style: 'currency' });
1295
+ const money = (value: unknown) => (typeof value === 'number' ? USD.format(value) : '');
1296
+ const kilograms = (value: unknown) => (typeof value === 'number' ? `${value.toFixed(1)} kg` : '');
1297
+
1298
+ const COLUMNS: GridColumn<Shipment>[] = [
1299
+ { id: 'id', label: 'Shipment', accessor: 'id', rowHeader: true, width: 120, text: 'nowrap' },
1300
+ { id: 'customer', label: 'Customer', accessor: 'customer', flex: 1, minWidth: 180 },
1301
+ { id: 'destination', label: 'Destination', accessor: 'destination', width: 170 },
1302
+ {
1303
+ id: 'carrier',
1304
+ label: 'Carrier',
1305
+ accessor: 'carrier',
1306
+ kind: 'set',
1307
+ width: 110,
1308
+ options: CARRIERS.map((value) => ({ value, label: value })),
1309
+ },
1310
+ {
1311
+ id: 'status',
1312
+ label: 'Status',
1313
+ accessor: 'status',
1314
+ kind: 'set',
1315
+ width: 120,
1316
+ options: STATUSES.map((value) => ({ value, label: value })),
1317
+ },
1318
+ { id: 'shipped', label: 'Shipped', accessor: 'shipped', kind: 'date', width: 130 },
1319
+ {
1320
+ id: 'weight',
1321
+ label: 'Weight',
1322
+ accessor: 'weight',
1323
+ kind: 'number',
1324
+ width: 110,
1325
+ format: kilograms,
1326
+ },
1327
+ { id: 'cost', label: 'Cost', accessor: 'cost', kind: 'number', width: 120, format: money },
1328
+ ];
1329
+
1330
+ const ROWS = shipments(12);
1331
+
1332
+ export default function DataGridActivation() {
1333
+ const [opened, setOpened] = useState<string | null>(null);
1334
+
1335
+ return (
1336
+ <Stack gap={3}>
1337
+ <Text size="sm" tone="muted">
1338
+ {opened ? `Opened ${opened}` : 'Double-click a row, or press Enter on its shipment cell.'}
1339
+ </Text>
1340
+ <DataGrid
1341
+ aria-label="Shipments"
1342
+ columns={COLUMNS}
1343
+ rowKey="id"
1344
+ rows={ROWS}
1345
+ activatable
1346
+ height="22rem"
1347
+ onActivate={({ key }) => setOpened(key)}
1348
+ />
1349
+ </Stack>
1350
+ );
1351
+ }
1352
+ ```
1353
+
1354
+ ### Pinned columns
1355
+
1356
+ A column pinned to the start or the end stays while the others scroll; the checkbox column is always pinned. Pin from the column menu or the state; the last column of each zone draws the edge, darker while something is hidden under it.
1357
+
1358
+ Excerpt — not a complete module
1359
+
1360
+ ```tsx
1361
+ <DataGrid defaultColumnState={{ pinned: { start: ['id'], end: ['actions'] } }} />;
1362
+ ```
1363
+
1364
+ ### Resizing
1365
+
1366
+ Drag the handle on a column’s trailing edge; Escape during the drag restores the width. From the keyboard, Ctrl+Shift+ArrowRight widens by eight pixels and announces the width; Ctrl+Shift+Enter and a double press on the handle fit the column to its mounted cells.
1367
+
1368
+ Excerpt — not a complete module
1369
+
1370
+ ```tsx
1371
+ <DataGrid
1372
+ columnState={state}
1373
+ onColumnStateChange={(next, request) => request.change === 'width' && setState(next)}
1374
+ />;
1375
+ ```
1376
+
1377
+ ### Reordering
1378
+
1379
+ Drag a header along the row: the drop indicator shows the boundary it lands on, and a column never leaves its pin zone. Alt+ArrowLeft and Alt+ArrowRight move the column one place from the keyboard. Every move is announced.
1380
+
1381
+ Excerpt — not a complete module
1382
+
1383
+ ```tsx
1384
+ <DataGrid defaultColumnState={{ order: ['customer', 'id', 'carrier'] }} />;
1385
+ ```
1386
+
1387
+ ### The column menu
1388
+
1389
+ Revealed by the pointer and by the cursor, opened with Ctrl+Enter, a secondary press on the header (at the press; Shift keeps the browser’s menu) or Shift+F10 and the Menu key (on the header cell): sort ascending, descending or remove; filter; pin to either edge or unpin; fit to content, and fit all columns in one request; hide; and manage columns, which hands over to the application’s column-manager. A fit chosen by pointer carries reason pointer, by keyboard reason keyboard; Shift with a double press on the resizer fits every column.
1390
+
1391
+ Excerpt — not a complete module
1392
+
1393
+ ```tsx
1394
+ <DataGrid onManageColumns={() => setManagerOpen(true)} />;
1395
+ ```
1396
+
1397
+ ### A column that explains itself
1398
+
1399
+ ARR and Margin carry a description; Status carries a help node with a link. The circled question mark stays shown, because a coarse pointer has no hover; it opens a popover on a press, Enter or Space, and never sorts. The description is also the header’s accessible description and the caption atop its menu. F2 on a header reaches the button without a pointer.
1400
+
1401
+ Excerpt — not a complete module
1402
+
1403
+ ```tsx
1404
+ const columns: DataGridColumn<Account>[] = [
1405
+ {
1406
+ id: 'arr',
1407
+ label: 'ARR',
1408
+ kind: 'number',
1409
+ description: 'Annual recurring revenue, in US dollars',
1410
+ },
1411
+ { id: 'status', label: 'Status', help: <StatusGlossary /> },
1412
+ ];
1413
+ ```
1414
+
1415
+ ### Undoing a hidden column
1416
+
1417
+ Hide column announces “Carrier hidden” and asks with change: hidden. The application answers with a toast whose Undo shows that column again through withColumnHidden: a hide moves no order, width or pin, so the column returns to its place and its width, and whatever the reader changed after the hide stays. Writing back request.previous would undo those changes too.
1418
+
1419
+ Excerpt — not a complete module
1420
+
1421
+ ```tsx
1422
+ <DataGrid
1423
+ columnState={state}
1424
+ onColumnStateChange={(next, request) => {
1425
+ setState(next);
1426
+ if (request.change !== 'hidden') return;
1427
+ const shown = next.hidden.filter((column) => !request.previous.hidden.includes(column));
1428
+ const id = toaster.show({
1429
+ title: 'Column hidden',
1430
+ actions: (
1431
+ <Button
1432
+ onClick={() => {
1433
+ setState((current) =>
1434
+ shown.reduce((state, column) => withColumnHidden(state, column, false), current),
1435
+ );
1436
+ toaster.dismiss(id, 'pointer');
1437
+ }}
1438
+ size="sm"
1439
+ variant="outline"
1440
+ >
1441
+ Undo
1442
+ </Button>
1443
+ ),
1444
+ });
1445
+ }}
1446
+ />;
1447
+ ```
1448
+
1449
+ ### Saving a view
1450
+
1451
+ A view is the column state, the query and the density as one line of text: serializeGridView writes it, parseGridView reads it back and drops a column the model no longer has. usePersistedGridView keeps that line under a key in localStorage (or any store with getItem, setItem and removeItem; null keeps it in memory), reads it once on mount, writes it after every change, and resets to the defaults by removing the entry. Hand reset, onDensityChange and setView — which replaces the whole view in one write, as applying a saved view does — to the controls that call them, and spread the rest on the grid. Selection, cursor and expansion are session state and are not kept.
1452
+
1453
+ Example
1454
+
1455
+ ```tsx
1456
+ import type { GridColumn } from '@slotted/core/grid';
1457
+ import { DataGrid } from '@slotted/react/data-grid';
1458
+
1459
+ interface Shipment {
1460
+ id: string;
1461
+ customer: string;
1462
+ destination: string;
1463
+ carrier: string;
1464
+ status: string;
1465
+ shipped: string;
1466
+ weight: number;
1467
+ cost: number;
1468
+ priority: boolean;
1469
+ }
1470
+
1471
+ const CUSTOMERS = [
1472
+ 'Alfreds Futterkiste',
1473
+ "Bon app'",
1474
+ 'Ernst Handel',
1475
+ 'Folk och fä HB',
1476
+ 'Hanari Carnes',
1477
+ 'Island Trading',
1478
+ 'QUICK-Stop',
1479
+ 'Wartian Herkku',
1480
+ ];
1481
+ const DESTINATIONS = [
1482
+ 'Berlin, DE',
1483
+ 'Marseille, FR',
1484
+ 'Graz, AT',
1485
+ 'Bräcke, SE',
1486
+ 'Rio de Janeiro, BR',
1487
+ 'Cowes, UK',
1488
+ 'Boise, US',
1489
+ 'Oulu, FI',
1490
+ ];
1491
+ const CARRIERS = ['UPS', 'FedEx', 'DHL', 'USPS'];
1492
+ const STATUSES = ['In transit', 'Delivered', 'Delayed', 'Customs'];
1493
+
1494
+ function shipments(count: number): Shipment[] {
1495
+ let seed = 7;
1496
+ const next = () => (seed = (seed * 1664525 + 1013904223) % 4294967296) / 4294967296;
1497
+ const pick = <T,>(list: readonly T[]) => list[Math.floor(next() * list.length)]!;
1498
+ return Array.from({ length: count }, (_, index) => {
1499
+ const weight = Math.round(next() * 9000) / 10;
1500
+ return {
1501
+ id: `SH-${3301 + index}`,
1502
+ customer: pick(CUSTOMERS),
1503
+ destination: pick(DESTINATIONS),
1504
+ carrier: pick(CARRIERS),
1505
+ status: pick(STATUSES),
1506
+ shipped: `2026-09-${String(1 + Math.floor(next() * 28)).padStart(2, '0')}`,
1507
+ weight,
1508
+ cost: Math.round(weight * (2 + next() * 3) * 100) / 100,
1509
+ priority: next() < 0.3,
1510
+ };
1511
+ });
1512
+ }
1513
+
1514
+ const USD = new Intl.NumberFormat('en-US', { currency: 'USD', style: 'currency' });
1515
+ const money = (value: unknown) => (typeof value === 'number' ? USD.format(value) : '');
1516
+ const kilograms = (value: unknown) => (typeof value === 'number' ? `${value.toFixed(1)} kg` : '');
1517
+
1518
+ const COLUMNS: GridColumn<Shipment>[] = [
1519
+ { id: 'id', label: 'Shipment', accessor: 'id', rowHeader: true, width: 120, text: 'nowrap' },
1520
+ { id: 'customer', label: 'Customer', accessor: 'customer', flex: 1, minWidth: 180 },
1521
+ { id: 'destination', label: 'Destination', accessor: 'destination', width: 170 },
1522
+ {
1523
+ id: 'carrier',
1524
+ label: 'Carrier',
1525
+ accessor: 'carrier',
1526
+ kind: 'set',
1527
+ width: 110,
1528
+ options: CARRIERS.map((value) => ({ value, label: value })),
1529
+ },
1530
+ {
1531
+ id: 'status',
1532
+ label: 'Status',
1533
+ accessor: 'status',
1534
+ kind: 'set',
1535
+ width: 120,
1536
+ options: STATUSES.map((value) => ({ value, label: value })),
1537
+ },
1538
+ { id: 'shipped', label: 'Shipped', accessor: 'shipped', kind: 'date', width: 130 },
1539
+ {
1540
+ id: 'weight',
1541
+ label: 'Weight',
1542
+ accessor: 'weight',
1543
+ kind: 'number',
1544
+ width: 110,
1545
+ format: kilograms,
1546
+ },
1547
+ { id: 'cost', label: 'Cost', accessor: 'cost', kind: 'number', width: 120, format: money },
1548
+ ];
1549
+
1550
+ const ROWS = shipments(12);
1551
+
1552
+ export default function DataGridColumnState() {
1553
+ return (
1554
+ <DataGrid
1555
+ aria-label="Shipments"
1556
+ columns={COLUMNS}
1557
+ rowKey="id"
1558
+ rows={ROWS}
1559
+ defaultColumnState={{ pinned: { start: ['id'], end: ['cost'] }, widths: { customer: 240 } }}
1560
+ height="24rem"
1561
+ selectionMode="multiple"
1562
+ />
1563
+ );
1564
+ }
1565
+ ```
1566
+
1567
+ ### Grouping
1568
+
1569
+ query.group names the columns the rows are grouped by, outermost first. A group row carries its level, its count and the aggregates of its rows; ArrowLeft closes it and ArrowRight opens it. expandedGroups is the set of open groups, all by default.
1570
+
1571
+ Example
1572
+
1573
+ ```tsx
1574
+ import { emptyQuery, type GridColumn, type GridQuery } from '@slotted/core/grid';
1575
+ import { DataGrid } from '@slotted/react/data-grid';
1576
+
1577
+ interface Shipment {
1578
+ id: string;
1579
+ customer: string;
1580
+ destination: string;
1581
+ carrier: string;
1582
+ status: string;
1583
+ shipped: string;
1584
+ weight: number;
1585
+ cost: number;
1586
+ priority: boolean;
1587
+ }
1588
+
1589
+ const CUSTOMERS = [
1590
+ 'Alfreds Futterkiste',
1591
+ "Bon app'",
1592
+ 'Ernst Handel',
1593
+ 'Folk och fä HB',
1594
+ 'Hanari Carnes',
1595
+ 'Island Trading',
1596
+ 'QUICK-Stop',
1597
+ 'Wartian Herkku',
1598
+ ];
1599
+ const DESTINATIONS = [
1600
+ 'Berlin, DE',
1601
+ 'Marseille, FR',
1602
+ 'Graz, AT',
1603
+ 'Bräcke, SE',
1604
+ 'Rio de Janeiro, BR',
1605
+ 'Cowes, UK',
1606
+ 'Boise, US',
1607
+ 'Oulu, FI',
1608
+ ];
1609
+ const CARRIERS = ['UPS', 'FedEx', 'DHL', 'USPS'];
1610
+ const STATUSES = ['In transit', 'Delivered', 'Delayed', 'Customs'];
1611
+
1612
+ function shipments(count: number): Shipment[] {
1613
+ let seed = 7;
1614
+ const next = () => (seed = (seed * 1664525 + 1013904223) % 4294967296) / 4294967296;
1615
+ const pick = <T,>(list: readonly T[]) => list[Math.floor(next() * list.length)]!;
1616
+ return Array.from({ length: count }, (_, index) => {
1617
+ const weight = Math.round(next() * 9000) / 10;
1618
+ return {
1619
+ id: `SH-${3301 + index}`,
1620
+ customer: pick(CUSTOMERS),
1621
+ destination: pick(DESTINATIONS),
1622
+ carrier: pick(CARRIERS),
1623
+ status: pick(STATUSES),
1624
+ shipped: `2026-09-${String(1 + Math.floor(next() * 28)).padStart(2, '0')}`,
1625
+ weight,
1626
+ cost: Math.round(weight * (2 + next() * 3) * 100) / 100,
1627
+ priority: next() < 0.3,
1628
+ };
1629
+ });
1630
+ }
1631
+
1632
+ const USD = new Intl.NumberFormat('en-US', { currency: 'USD', style: 'currency' });
1633
+ const money = (value: unknown) => (typeof value === 'number' ? USD.format(value) : '');
1634
+ const kilograms = (value: unknown) => (typeof value === 'number' ? `${value.toFixed(1)} kg` : '');
1635
+
1636
+ const COLUMNS: GridColumn<Shipment>[] = [
1637
+ { id: 'id', label: 'Shipment', accessor: 'id', rowHeader: true, width: 120, text: 'nowrap' },
1638
+ { id: 'customer', label: 'Customer', accessor: 'customer', flex: 1, minWidth: 180 },
1639
+ { id: 'destination', label: 'Destination', accessor: 'destination', width: 170 },
1640
+ {
1641
+ id: 'carrier',
1642
+ label: 'Carrier',
1643
+ accessor: 'carrier',
1644
+ kind: 'set',
1645
+ width: 110,
1646
+ options: CARRIERS.map((value) => ({ value, label: value })),
1647
+ },
1648
+ {
1649
+ id: 'status',
1650
+ label: 'Status',
1651
+ accessor: 'status',
1652
+ kind: 'set',
1653
+ width: 120,
1654
+ options: STATUSES.map((value) => ({ value, label: value })),
1655
+ },
1656
+ { id: 'shipped', label: 'Shipped', accessor: 'shipped', kind: 'date', width: 130 },
1657
+ {
1658
+ id: 'weight',
1659
+ label: 'Weight',
1660
+ accessor: 'weight',
1661
+ kind: 'number',
1662
+ width: 110,
1663
+ format: kilograms,
1664
+ },
1665
+ { id: 'cost', label: 'Cost', accessor: 'cost', kind: 'number', width: 120, format: money },
1666
+ ];
1667
+
1668
+ const INITIAL_QUERY: GridQuery = {
1669
+ ...emptyQuery(),
1670
+ group: ['carrier'],
1671
+ sort: [{ column: 'id', direction: 'ascending' }],
1672
+ };
1673
+
1674
+ const ROWS = shipments(20);
1675
+
1676
+ export default function DataGridGrouping() {
1677
+ return (
1678
+ <DataGrid
1679
+ aria-label="Shipments"
1680
+ columns={COLUMNS}
1681
+ rowKey="id"
1682
+ rows={ROWS}
1683
+ defaultQuery={INITIAL_QUERY}
1684
+ height="26rem"
1685
+ />
1686
+ );
1687
+ }
1688
+ ```
1689
+
1690
+ ### Aggregates
1691
+
1692
+ A column with aggregate — sum, avg, min, max, count or a function — draws the summary row, pinned to the end of the scroller, over every row the query kept; a grouped grid draws the same aggregate on each group row.
1693
+
1694
+ Example
1695
+
1696
+ ```tsx
1697
+ import type { GridColumn } from '@slotted/core/grid';
1698
+ import { DataGrid } from '@slotted/react/data-grid';
1699
+
1700
+ interface Shipment {
1701
+ id: string;
1702
+ customer: string;
1703
+ destination: string;
1704
+ carrier: string;
1705
+ status: string;
1706
+ shipped: string;
1707
+ weight: number;
1708
+ cost: number;
1709
+ priority: boolean;
1710
+ }
1711
+
1712
+ const CUSTOMERS = [
1713
+ 'Alfreds Futterkiste',
1714
+ "Bon app'",
1715
+ 'Ernst Handel',
1716
+ 'Folk och fä HB',
1717
+ 'Hanari Carnes',
1718
+ 'Island Trading',
1719
+ 'QUICK-Stop',
1720
+ 'Wartian Herkku',
1721
+ ];
1722
+ const DESTINATIONS = [
1723
+ 'Berlin, DE',
1724
+ 'Marseille, FR',
1725
+ 'Graz, AT',
1726
+ 'Bräcke, SE',
1727
+ 'Rio de Janeiro, BR',
1728
+ 'Cowes, UK',
1729
+ 'Boise, US',
1730
+ 'Oulu, FI',
1731
+ ];
1732
+ const CARRIERS = ['UPS', 'FedEx', 'DHL', 'USPS'];
1733
+ const STATUSES = ['In transit', 'Delivered', 'Delayed', 'Customs'];
1734
+
1735
+ function shipments(count: number): Shipment[] {
1736
+ let seed = 7;
1737
+ const next = () => (seed = (seed * 1664525 + 1013904223) % 4294967296) / 4294967296;
1738
+ const pick = <T,>(list: readonly T[]) => list[Math.floor(next() * list.length)]!;
1739
+ return Array.from({ length: count }, (_, index) => {
1740
+ const weight = Math.round(next() * 9000) / 10;
1741
+ return {
1742
+ id: `SH-${3301 + index}`,
1743
+ customer: pick(CUSTOMERS),
1744
+ destination: pick(DESTINATIONS),
1745
+ carrier: pick(CARRIERS),
1746
+ status: pick(STATUSES),
1747
+ shipped: `2026-09-${String(1 + Math.floor(next() * 28)).padStart(2, '0')}`,
1748
+ weight,
1749
+ cost: Math.round(weight * (2 + next() * 3) * 100) / 100,
1750
+ priority: next() < 0.3,
1751
+ };
1752
+ });
1753
+ }
1754
+
1755
+ const USD = new Intl.NumberFormat('en-US', { currency: 'USD', style: 'currency' });
1756
+ const money = (value: unknown) => (typeof value === 'number' ? USD.format(value) : '');
1757
+ const kilograms = (value: unknown) => (typeof value === 'number' ? `${value.toFixed(1)} kg` : '');
1758
+
1759
+ const COLUMNS: GridColumn<Shipment>[] = [
1760
+ { id: 'id', label: 'Shipment', accessor: 'id', rowHeader: true, width: 120, text: 'nowrap' },
1761
+ { id: 'customer', label: 'Customer', accessor: 'customer', flex: 1, minWidth: 180 },
1762
+ { id: 'destination', label: 'Destination', accessor: 'destination', width: 170 },
1763
+ {
1764
+ id: 'carrier',
1765
+ label: 'Carrier',
1766
+ accessor: 'carrier',
1767
+ kind: 'set',
1768
+ width: 110,
1769
+ options: CARRIERS.map((value) => ({ value, label: value })),
1770
+ },
1771
+ {
1772
+ id: 'status',
1773
+ label: 'Status',
1774
+ accessor: 'status',
1775
+ kind: 'set',
1776
+ width: 120,
1777
+ options: STATUSES.map((value) => ({ value, label: value })),
1778
+ },
1779
+ { id: 'shipped', label: 'Shipped', accessor: 'shipped', kind: 'date', width: 130 },
1780
+ {
1781
+ id: 'weight',
1782
+ label: 'Weight',
1783
+ accessor: 'weight',
1784
+ kind: 'number',
1785
+ width: 110,
1786
+ format: kilograms,
1787
+ },
1788
+ { id: 'cost', label: 'Cost', accessor: 'cost', kind: 'number', width: 120, format: money },
1789
+ ];
1790
+
1791
+ const SUM_COLUMNS: GridColumn<Shipment>[] = COLUMNS.map((column) =>
1792
+ column.id === 'weight' || column.id === 'cost'
1793
+ ? { ...column, aggregate: 'sum' as const }
1794
+ : column,
1795
+ );
1796
+
1797
+ const ROWS = shipments(10);
1798
+
1799
+ export default function DataGridSummary() {
1800
+ return (
1801
+ <DataGrid aria-label="Shipments" columns={SUM_COLUMNS} rowKey="id" rows={ROWS} height="24rem" />
1802
+ );
1803
+ }
1804
+ ```
1805
+
1806
+ ### Row detail
1807
+
1808
+ renderDetail gives a row a detail: the expander column appears, ArrowRight on it opens the detail under the row as one cell spanning every column and held to the frame, ArrowLeft closes it. expanded is the set of open rows.
1809
+
1810
+ Example
1811
+
1812
+ ```tsx
1813
+ import type { GridColumn } from '@slotted/core/grid';
1814
+ import { DataGrid } from '@slotted/react/data-grid';
1815
+ import { Text } from '@slotted/react/typography';
1816
+
1817
+ interface Shipment {
1818
+ id: string;
1819
+ customer: string;
1820
+ destination: string;
1821
+ carrier: string;
1822
+ status: string;
1823
+ shipped: string;
1824
+ weight: number;
1825
+ cost: number;
1826
+ priority: boolean;
1827
+ }
1828
+
1829
+ const CUSTOMERS = [
1830
+ 'Alfreds Futterkiste',
1831
+ "Bon app'",
1832
+ 'Ernst Handel',
1833
+ 'Folk och fä HB',
1834
+ 'Hanari Carnes',
1835
+ 'Island Trading',
1836
+ 'QUICK-Stop',
1837
+ 'Wartian Herkku',
1838
+ ];
1839
+ const DESTINATIONS = [
1840
+ 'Berlin, DE',
1841
+ 'Marseille, FR',
1842
+ 'Graz, AT',
1843
+ 'Bräcke, SE',
1844
+ 'Rio de Janeiro, BR',
1845
+ 'Cowes, UK',
1846
+ 'Boise, US',
1847
+ 'Oulu, FI',
1848
+ ];
1849
+ const CARRIERS = ['UPS', 'FedEx', 'DHL', 'USPS'];
1850
+ const STATUSES = ['In transit', 'Delivered', 'Delayed', 'Customs'];
1851
+
1852
+ function shipments(count: number): Shipment[] {
1853
+ let seed = 7;
1854
+ const next = () => (seed = (seed * 1664525 + 1013904223) % 4294967296) / 4294967296;
1855
+ const pick = <T,>(list: readonly T[]) => list[Math.floor(next() * list.length)]!;
1856
+ return Array.from({ length: count }, (_, index) => {
1857
+ const weight = Math.round(next() * 9000) / 10;
1858
+ return {
1859
+ id: `SH-${3301 + index}`,
1860
+ customer: pick(CUSTOMERS),
1861
+ destination: pick(DESTINATIONS),
1862
+ carrier: pick(CARRIERS),
1863
+ status: pick(STATUSES),
1864
+ shipped: `2026-09-${String(1 + Math.floor(next() * 28)).padStart(2, '0')}`,
1865
+ weight,
1866
+ cost: Math.round(weight * (2 + next() * 3) * 100) / 100,
1867
+ priority: next() < 0.3,
1868
+ };
1869
+ });
1870
+ }
1871
+
1872
+ const USD = new Intl.NumberFormat('en-US', { currency: 'USD', style: 'currency' });
1873
+ const money = (value: unknown) => (typeof value === 'number' ? USD.format(value) : '');
1874
+ const kilograms = (value: unknown) => (typeof value === 'number' ? `${value.toFixed(1)} kg` : '');
1875
+
1876
+ const COLUMNS: GridColumn<Shipment>[] = [
1877
+ { id: 'id', label: 'Shipment', accessor: 'id', rowHeader: true, width: 120, text: 'nowrap' },
1878
+ { id: 'customer', label: 'Customer', accessor: 'customer', flex: 1, minWidth: 180 },
1879
+ { id: 'destination', label: 'Destination', accessor: 'destination', width: 170 },
1880
+ {
1881
+ id: 'carrier',
1882
+ label: 'Carrier',
1883
+ accessor: 'carrier',
1884
+ kind: 'set',
1885
+ width: 110,
1886
+ options: CARRIERS.map((value) => ({ value, label: value })),
1887
+ },
1888
+ {
1889
+ id: 'status',
1890
+ label: 'Status',
1891
+ accessor: 'status',
1892
+ kind: 'set',
1893
+ width: 120,
1894
+ options: STATUSES.map((value) => ({ value, label: value })),
1895
+ },
1896
+ { id: 'shipped', label: 'Shipped', accessor: 'shipped', kind: 'date', width: 130 },
1897
+ {
1898
+ id: 'weight',
1899
+ label: 'Weight',
1900
+ accessor: 'weight',
1901
+ kind: 'number',
1902
+ width: 110,
1903
+ format: kilograms,
1904
+ },
1905
+ { id: 'cost', label: 'Cost', accessor: 'cost', kind: 'number', width: 120, format: money },
1906
+ ];
1907
+
1908
+ const ROWS = shipments(8);
1909
+
1910
+ export default function DataGridDetail() {
1911
+ return (
1912
+ <DataGrid
1913
+ aria-label="Shipments"
1914
+ columns={COLUMNS}
1915
+ rowKey="id"
1916
+ rows={ROWS}
1917
+ defaultExpanded={['SH-3301']}
1918
+ height="26rem"
1919
+ renderDetail={(row) => (
1920
+ <Text size="sm">
1921
+ {row.carrier} picked up {row.weight.toFixed(1)} kg on {row.shipped} for {row.destination}.
1922
+ Charged {money(row.cost)}.
1923
+ </Text>
1924
+ )}
1925
+ />
1926
+ );
1927
+ }
1928
+ ```
1929
+
1930
+ ### Ten thousand rows
1931
+
1932
+ Above a hundred rows the grid windows them: the body is as tall as every row and only the ones in view, plus the overscan, are in the DOM. Scroll, or jump with Ctrl+End — the last row is mounted and focused. Above twenty middle columns the same happens sideways.
1933
+
1934
+ Example
1935
+
1936
+ ```tsx
1937
+ import type { GridColumn } from '@slotted/core/grid';
1938
+ import { DataGrid } from '@slotted/react/data-grid';
1939
+
1940
+ interface Shipment {
1941
+ id: string;
1942
+ customer: string;
1943
+ destination: string;
1944
+ carrier: string;
1945
+ status: string;
1946
+ shipped: string;
1947
+ weight: number;
1948
+ cost: number;
1949
+ priority: boolean;
1950
+ }
1951
+
1952
+ const CUSTOMERS = [
1953
+ 'Alfreds Futterkiste',
1954
+ "Bon app'",
1955
+ 'Ernst Handel',
1956
+ 'Folk och fä HB',
1957
+ 'Hanari Carnes',
1958
+ 'Island Trading',
1959
+ 'QUICK-Stop',
1960
+ 'Wartian Herkku',
1961
+ ];
1962
+ const DESTINATIONS = [
1963
+ 'Berlin, DE',
1964
+ 'Marseille, FR',
1965
+ 'Graz, AT',
1966
+ 'Bräcke, SE',
1967
+ 'Rio de Janeiro, BR',
1968
+ 'Cowes, UK',
1969
+ 'Boise, US',
1970
+ 'Oulu, FI',
1971
+ ];
1972
+ const CARRIERS = ['UPS', 'FedEx', 'DHL', 'USPS'];
1973
+ const STATUSES = ['In transit', 'Delivered', 'Delayed', 'Customs'];
1974
+
1975
+ function shipments(count: number): Shipment[] {
1976
+ let seed = 7;
1977
+ const next = () => (seed = (seed * 1664525 + 1013904223) % 4294967296) / 4294967296;
1978
+ const pick = <T,>(list: readonly T[]) => list[Math.floor(next() * list.length)]!;
1979
+ return Array.from({ length: count }, (_, index) => {
1980
+ const weight = Math.round(next() * 9000) / 10;
1981
+ return {
1982
+ id: `SH-${3301 + index}`,
1983
+ customer: pick(CUSTOMERS),
1984
+ destination: pick(DESTINATIONS),
1985
+ carrier: pick(CARRIERS),
1986
+ status: pick(STATUSES),
1987
+ shipped: `2026-09-${String(1 + Math.floor(next() * 28)).padStart(2, '0')}`,
1988
+ weight,
1989
+ cost: Math.round(weight * (2 + next() * 3) * 100) / 100,
1990
+ priority: next() < 0.3,
1991
+ };
1992
+ });
1993
+ }
1994
+
1995
+ const USD = new Intl.NumberFormat('en-US', { currency: 'USD', style: 'currency' });
1996
+ const money = (value: unknown) => (typeof value === 'number' ? USD.format(value) : '');
1997
+ const kilograms = (value: unknown) => (typeof value === 'number' ? `${value.toFixed(1)} kg` : '');
1998
+
1999
+ const COLUMNS: GridColumn<Shipment>[] = [
2000
+ { id: 'id', label: 'Shipment', accessor: 'id', rowHeader: true, width: 120, text: 'nowrap' },
2001
+ { id: 'customer', label: 'Customer', accessor: 'customer', flex: 1, minWidth: 180 },
2002
+ { id: 'destination', label: 'Destination', accessor: 'destination', width: 170 },
2003
+ {
2004
+ id: 'carrier',
2005
+ label: 'Carrier',
2006
+ accessor: 'carrier',
2007
+ kind: 'set',
2008
+ width: 110,
2009
+ options: CARRIERS.map((value) => ({ value, label: value })),
2010
+ },
2011
+ {
2012
+ id: 'status',
2013
+ label: 'Status',
2014
+ accessor: 'status',
2015
+ kind: 'set',
2016
+ width: 120,
2017
+ options: STATUSES.map((value) => ({ value, label: value })),
2018
+ },
2019
+ { id: 'shipped', label: 'Shipped', accessor: 'shipped', kind: 'date', width: 130 },
2020
+ {
2021
+ id: 'weight',
2022
+ label: 'Weight',
2023
+ accessor: 'weight',
2024
+ kind: 'number',
2025
+ width: 110,
2026
+ format: kilograms,
2027
+ },
2028
+ { id: 'cost', label: 'Cost', accessor: 'cost', kind: 'number', width: 120, format: money },
2029
+ ];
2030
+
2031
+ const ROWS = shipments(10_000);
2032
+
2033
+ export default function DataGridVirtualization() {
2034
+ return (
2035
+ <DataGrid
2036
+ aria-label="Shipments, 10,000 rows"
2037
+ columns={COLUMNS}
2038
+ rowKey="id"
2039
+ rows={ROWS}
2040
+ height="26rem"
2041
+ selectionMode="multiple"
2042
+ />
2043
+ );
2044
+ }
2045
+ ```
2046
+
2047
+ ### Server mode
2048
+
2049
+ With totalCount or hasMore the grid draws the rows it is given and reports the query instead of applying it: sorting, filtering, searching and paging all arrive as one request saying what changed, and a server answers with the page.
2050
+
2051
+ Excerpt — not a complete module
2052
+
2053
+ ```tsx
2054
+ <DataGrid
2055
+ loading={pending}
2056
+ onQueryChange={(next, request) => fetchPage(next, request.change)}
2057
+ query={query}
2058
+ rows={page.rows}
2059
+ totalCount={page.total}
2060
+ />;
2061
+ ```
2062
+
2063
+ ### A data source
2064
+
2065
+ dataSource hands the grid its own fetching: getRows is called with the query on every change and an AbortSignal, the request before it aborted; the answer — rows, total or hasMore — is kept by the query’s text (cacheSize, default 20), so a page the reader comes back to is on screen at once. The grid is in server mode with the loading and the error states of its own: a rejection is the error state with the message thrown, Try again asks the same query, handle.reload() drops the cache. rows, totalCount, loading, error and onRetry are the source’s and are not read.
2066
+
2067
+ Excerpt — not a complete module
2068
+
2069
+ ```tsx
2070
+ const shipments: DataGridDataSource<Shipment> = {
2071
+ getRows: (query, { signal }) =>
2072
+ fetch(`/api/shipments?${toGridParams(query)}`, { signal }).then((response) => response.json()),
2073
+ };
2074
+ <DataGrid
2075
+ columns={columns}
2076
+ dataSource={shipments}
2077
+ defaultQuery={emptyQuery({ index: 0, size: 25 })}
2078
+ rowKey="id"
2079
+ />;
2080
+ ```
2081
+
2082
+ ### Pagination
2083
+
2084
+ query.page carries the index and the size; the pagination family in the footer moves both, in the bar a table carries: a page size, the range and the two triggers, at the inline end. The status states the range, so showRange is off. A change of filter, search or group puts the page back at the start in the same request.
2085
+
2086
+ Excerpt — not a complete module
2087
+
2088
+ ```tsx
2089
+ <DataGrid
2090
+ footer={
2091
+ <Pagination
2092
+ count={total}
2093
+ onPageChange={(page) => setQuery(withPageIndex(query, page - 1).query)}
2094
+ onPageSizeChange={(size) => setQuery(withPageSize(query, size).query)}
2095
+ page={query.page.index + 1}
2096
+ pageSize={query.page.size}
2097
+ pageSizeOptions={[25, 50, 100]}
2098
+ >
2099
+ <PaginationPageSize />
2100
+ <PaginationStatus />
2101
+ <PaginationPrevious />
2102
+ <PaginationNext />
2103
+ </Pagination>
2104
+ }
2105
+ query={query}
2106
+ showRange={false}
2107
+ />;
2108
+ ```
2109
+
2110
+ ### Load more
2111
+
2112
+ With an unknown total the footer states the range without one and offers Load more; when the grid windows its rows, onLoadMore is called on its own as the window nears the end.
2113
+
2114
+ Excerpt — not a complete module
2115
+
2116
+ ```tsx
2117
+ <DataGrid
2118
+ hasMore={hasMore}
2119
+ onLoadMore={fetchMore}
2120
+ query={{ ...emptyQuery(), page: { cursor, size: 50 } }}
2121
+ rows={rows}
2122
+ />;
2123
+ ```
2124
+
2125
+ ### Empty, no results, error, loading
2126
+
2127
+ Three states a body can hold instead of rows, each a result-state: nothing at all; nothing after the filter, with Clear filters; and a failed load, with Try again. A first load draws skeleton rows; a refresh over rows already shown dims them and moves nothing.
2128
+
2129
+ Excerpt — not a complete module
2130
+
2131
+ ```tsx
2132
+ <DataGrid error={error} loading={loading} onRetry={reload} rows={rows} />;
2133
+ ```
2134
+
2135
+ ### Variants
2136
+
2137
+ plain draws no rules and no band; ruled draws a rule between rows; framed adds the border, the radius and the footer inside. striped tints every second row under every state.
2138
+
2139
+ Excerpt — not a complete module
2140
+
2141
+ ```tsx
2142
+ <DataGrid striped variant="framed" />;
2143
+ ```
2144
+
2145
+ ### Long values
2146
+
2147
+ truncate is the default — a column has a width — and keeps the whole value in the cell’s title; wrap breaks an unbroken token rather than widening the column; nowrap keeps a code on one line. A value keeps its own direction in a right-to-left grid.
2148
+
2149
+ Excerpt — not a complete module
2150
+
2151
+ ```tsx
2152
+ const columns = [
2153
+ { id: 'customer', label: 'Customer', text: 'wrap' },
2154
+ { id: 'hash', label: 'Hash', text: 'nowrap' },
2155
+ ];
2156
+ ```
2157
+
2158
+ ### Density
2159
+
2160
+ The row reads the theme’s control scale: 34 pixels at comfortable, 28 at compact, 26 at dense, with the type and the inset stepping with it. Without density the grid takes the page’s, which the toolbar switches; with density it writes data-slotted-density on its own root and holds that one whatever the page says. The menu and the popovers it opens are portals and stay at the page’s density.
2161
+
2162
+ Excerpt — not a complete module
2163
+
2164
+ ```tsx
2165
+ <DataGrid columns={columns} density="dense" rowKey="id" rows={shipments} />;
2166
+ ```
2167
+
2168
+ ### Columns that yield to a phone
2169
+
2170
+ The same grid in a phone-wide room. When the frame is too narrow for the template, columns leave the row: first those without a priority, the last first, then the highest priority; the identity column — the first rowHeader — and an actions column never leave. A column that leaves moves into the row’s pop-in, its label over its value drawn by the same cell renderer; one with popin: false is hidden instead. The root states the pop-in’s count as data-popin, rows grow to their fields, and onOutOfSpaceChange reports both sets — but the column state is untouched, so nothing is persisted and a wider frame brings them back. That is columnOverflow="auto", the default, under 600px, or under 1024px with a coarse pointer; wider, with a mouse, it scrolls. columnOverflow="popin" pops in at every width, and "scroll" keeps every column and scrolls.
2171
+
2172
+ Excerpt — not a complete module
2173
+
2174
+ ```tsx
2175
+ const columns: GridColumn<Shipment>[] = [
2176
+ { id: 'id', label: 'Tracking', rowHeader: true },
2177
+ { id: 'status', label: 'Status', priority: 1 },
2178
+ { id: 'eta', label: 'ETA', kind: 'datetime', priority: 2 },
2179
+ { id: 'carrier', label: 'Carrier', priority: 3 },
2180
+ { id: 'cost', label: 'Cost', kind: 'number', popin: false },
2181
+ ];
2182
+ <DataGrid columns={columns} onOutOfSpaceChange={setOut} rowKey="id" rows={rows} />;
2183
+ ```
2184
+
2185
+ ### Content the grid did not choose
2186
+
2187
+ A hundred-character customer name, an unbroken identifier, a right-to-left name, a disabled row, an empty cell in a numeric column and a value with a dash: each holds where the family says it holds.
2188
+
2189
+ Example
2190
+
2191
+ ```tsx
2192
+ import type { GridColumn } from '@slotted/core/grid';
2193
+ import { Avatar } from '@slotted/react/avatar';
2194
+ import { Badge } from '@slotted/react/badge';
2195
+ import { DataGrid } from '@slotted/react/data-grid';
2196
+ import { Inline } from '@slotted/react/inline';
2197
+
2198
+ interface Shipment {
2199
+ id: string;
2200
+ customer: string;
2201
+ destination: string;
2202
+ carrier: string;
2203
+ status: string;
2204
+ shipped: string;
2205
+ weight: number;
2206
+ cost: number;
2207
+ priority: boolean;
2208
+ }
2209
+
2210
+ const CUSTOMERS = [
2211
+ 'Alfreds Futterkiste',
2212
+ "Bon app'",
2213
+ 'Ernst Handel',
2214
+ 'Folk och fä HB',
2215
+ 'Hanari Carnes',
2216
+ 'Island Trading',
2217
+ 'QUICK-Stop',
2218
+ 'Wartian Herkku',
2219
+ ];
2220
+ const DESTINATIONS = [
2221
+ 'Berlin, DE',
2222
+ 'Marseille, FR',
2223
+ 'Graz, AT',
2224
+ 'Bräcke, SE',
2225
+ 'Rio de Janeiro, BR',
2226
+ 'Cowes, UK',
2227
+ 'Boise, US',
2228
+ 'Oulu, FI',
2229
+ ];
2230
+ const CARRIERS = ['UPS', 'FedEx', 'DHL', 'USPS'];
2231
+ const STATUSES = ['In transit', 'Delivered', 'Delayed', 'Customs'];
2232
+
2233
+ function shipments(count: number): Shipment[] {
2234
+ let seed = 7;
2235
+ const next = () => (seed = (seed * 1664525 + 1013904223) % 4294967296) / 4294967296;
2236
+ const pick = <T,>(list: readonly T[]) => list[Math.floor(next() * list.length)]!;
2237
+ return Array.from({ length: count }, (_, index) => {
2238
+ const weight = Math.round(next() * 9000) / 10;
2239
+ return {
2240
+ id: `SH-${3301 + index}`,
2241
+ customer: pick(CUSTOMERS),
2242
+ destination: pick(DESTINATIONS),
2243
+ carrier: pick(CARRIERS),
2244
+ status: pick(STATUSES),
2245
+ shipped: `2026-09-${String(1 + Math.floor(next() * 28)).padStart(2, '0')}`,
2246
+ weight,
2247
+ cost: Math.round(weight * (2 + next() * 3) * 100) / 100,
2248
+ priority: next() < 0.3,
2249
+ };
2250
+ });
2251
+ }
2252
+
2253
+ const USD = new Intl.NumberFormat('en-US', { currency: 'USD', style: 'currency' });
2254
+ const money = (value: unknown) => (typeof value === 'number' ? USD.format(value) : '');
2255
+ const kilograms = (value: unknown) => (typeof value === 'number' ? `${value.toFixed(1)} kg` : '');
2256
+
2257
+ const COLUMNS: GridColumn<Shipment>[] = [
2258
+ { id: 'id', label: 'Shipment', accessor: 'id', rowHeader: true, width: 120, text: 'nowrap' },
2259
+ { id: 'customer', label: 'Customer', accessor: 'customer', flex: 1, minWidth: 180 },
2260
+ { id: 'destination', label: 'Destination', accessor: 'destination', width: 170 },
2261
+ {
2262
+ id: 'carrier',
2263
+ label: 'Carrier',
2264
+ accessor: 'carrier',
2265
+ kind: 'set',
2266
+ width: 110,
2267
+ options: CARRIERS.map((value) => ({ value, label: value })),
2268
+ },
2269
+ {
2270
+ id: 'status',
2271
+ label: 'Status',
2272
+ accessor: 'status',
2273
+ kind: 'set',
2274
+ width: 120,
2275
+ options: STATUSES.map((value) => ({ value, label: value })),
2276
+ },
2277
+ { id: 'shipped', label: 'Shipped', accessor: 'shipped', kind: 'date', width: 130 },
2278
+ {
2279
+ id: 'weight',
2280
+ label: 'Weight',
2281
+ accessor: 'weight',
2282
+ kind: 'number',
2283
+ width: 110,
2284
+ format: kilograms,
2285
+ },
2286
+ { id: 'cost', label: 'Cost', accessor: 'cost', kind: 'number', width: 120, format: money },
2287
+ ];
2288
+
2289
+ const TONE: Record<string, 'secondary' | 'success' | 'danger' | 'warning'> = {
2290
+ 'In transit': 'secondary',
2291
+ Delivered: 'success',
2292
+ Delayed: 'danger',
2293
+ Customs: 'warning',
2294
+ };
2295
+
2296
+ const ROWS = shipments(10);
2297
+
2298
+ export default function DataGridContent() {
2299
+ return (
2300
+ <DataGrid
2301
+ aria-label="Shipments"
2302
+ columns={COLUMNS}
2303
+ rowKey="id"
2304
+ rows={ROWS}
2305
+ cellRenderers={{
2306
+ customer: ({ row }) => (
2307
+ <Inline align="center" gap={2}>
2308
+ <Avatar name={row.customer} size="sm" />
2309
+ {row.customer}
2310
+ </Inline>
2311
+ ),
2312
+ status: ({ value }) => (
2313
+ <Badge tone={TONE[String(value)]} variant="soft">
2314
+ {String(value)}
2315
+ </Badge>
2316
+ ),
2317
+ }}
2318
+ height="24rem"
2319
+ />
2320
+ );
2321
+ }
2322
+ ```
2323
+
2324
+ ### Pictures in cells
2325
+
2326
+ A renderer draws anything: an avatar beside the name, a thumbnail in a custom column. A stated rowHeight is the drawn row as well as the windowed one, so ten thousand rows of 56 pixels scroll to the right place. A cell with a picture and a name is one flex row of the renderer’s own; the grid lays out the renderer’s first element as the value.
2327
+
2328
+ Excerpt — not a complete module
2329
+
2330
+ ```tsx
2331
+ <DataGrid
2332
+ cellRenderers={{
2333
+ customer: ({ row }) => (
2334
+ <span className="customer">
2335
+ <Avatar name={row.customer} size="sm" />
2336
+ <span>{row.customer}</span>
2337
+ </span>
2338
+ ),
2339
+ photo: ({ row }) => <Image alt="" radius="sm" ratio="landscape" src={row.photo} />,
2340
+ }}
2341
+ columns={[...columns, { id: 'photo', label: 'Cargo', kind: 'custom', sortable: false }]}
2342
+ rowHeight={56}
2343
+ />;
2344
+ ```
2345
+
2346
+ ### Realtime
2347
+
2348
+ rows is compared with the rows before it, by key, on the mounted rows only: a cell whose value changed is marked for the time highlightChanges states (true is 1200 ms) and fades on the accent’s subtle ground; under reduced motion the ground stays flat and leaves with the mark. A row that arrived is not a change. Selection, cursor, expansion and scroll survive every tick because the key is the identity.
2349
+
2350
+ Excerpt — not a complete module
2351
+
2352
+ ```tsx
2353
+ <DataGrid highlightChanges rows={feed.rows} />;
2354
+ ```
2355
+
2356
+ ### Tree data
2357
+
2358
+ tree names each row’s parent by key; a row whose parent is not in rows is a root. The root is a treegrid, every row carries aria-level and a branch aria-expanded. The open branches are expanded — the same state the detail uses; a branch opens its children, a leaf its detail. Filter and search keep a row that matches or has a descendant that matches, with its ancestors; sorting is among siblings; the page is a slice of the open rows; query.group is ignored. In the tree column, ArrowRight opens a closed branch, ArrowLeft closes an open one and climbs to the parent from a leaf. A row hasChildren says has children not yet in rows asks for them through onLoadChildren when opened, and shows the wait until they arrive.
2359
+
2360
+ Example
2361
+
2362
+ ```tsx
2363
+ import type { GridColumn, GridTree } from '@slotted/core/grid';
2364
+ import { DataGrid } from '@slotted/react/data-grid';
2365
+
2366
+ interface Location {
2367
+ id: string;
2368
+ parent: string | null;
2369
+ name: string;
2370
+ kind: string;
2371
+ units: number;
2372
+ }
2373
+
2374
+ const LOCATIONS: Location[] = [
2375
+ { id: 'reno', parent: null, name: 'Reno, NV', kind: 'Warehouse', units: 4210 },
2376
+ { id: 'reno-a', parent: 'reno', name: 'Zone A — dry goods', kind: 'Zone', units: 2630 },
2377
+ { id: 'reno-a-01', parent: 'reno-a', name: 'Aisle 01', kind: 'Aisle', units: 1410 },
2378
+ { id: 'reno-a-02', parent: 'reno-a', name: 'Aisle 02', kind: 'Aisle', units: 1220 },
2379
+ { id: 'reno-b', parent: 'reno', name: 'Zone B — chilled', kind: 'Zone', units: 1580 },
2380
+ { id: 'columbus', parent: null, name: 'Columbus, OH', kind: 'Warehouse', units: 3075 },
2381
+ { id: 'columbus-a', parent: 'columbus', name: 'Zone A — dry goods', kind: 'Zone', units: 3075 },
2382
+ { id: 'savannah', parent: null, name: 'Savannah, GA', kind: 'Warehouse', units: 1890 },
2383
+ { id: 'savannah-a', parent: 'savannah', name: 'Zone A — bonded', kind: 'Zone', units: 1890 },
2384
+ ];
2385
+
2386
+ const COLUMNS: GridColumn<Location>[] = [
2387
+ { id: 'name', label: 'Location', accessor: 'name', rowHeader: true, flex: 1, minWidth: 220 },
2388
+ { id: 'kind', label: 'Type', accessor: 'kind', width: 130 },
2389
+ { id: 'units', label: 'Units on hand', accessor: 'units', kind: 'number', width: 150 },
2390
+ ];
2391
+
2392
+ const TREE: GridTree<Location> = { parentKey: (row) => row.parent };
2393
+
2394
+ export default function DataGridTree() {
2395
+ return (
2396
+ <DataGrid
2397
+ aria-label="Stock by location"
2398
+ columns={COLUMNS}
2399
+ defaultExpanded={['reno', 'reno-a']}
2400
+ height="22rem"
2401
+ rowKey="id"
2402
+ rows={LOCATIONS}
2403
+ tree={TREE}
2404
+ />
2405
+ );
2406
+ }
2407
+ ```
2408
+
2409
+ ### Pinned rows
2410
+
2411
+ pinnedRows holds rows at the top or the bottom of the body, by key, in the stated order. A held row leaves the query — never sorted, filtered or paged — and stays on screen, under the head and over the summary, at the heights the grid measures for each. It is a row like any other: the cursor walks through it, it selects, edits and exports with the rest, and it counts in aria-rowcount.
2412
+
2413
+ Excerpt — not a complete module
2414
+
2415
+ ```tsx
2416
+ <DataGrid pinnedRows={{ top: ['SHP-20487'], bottom: ['SHP-20481'] }} />;
2417
+ ```
2418
+
2419
+ ### Reordering rows
2420
+
2421
+ rowsReorderable draws a grip per row in a reserved column. The pointer drags from the grip and drops in a gap, with the same guide a column shows; Alt with the vertical arrows moves the row from any of its cells, and the move is announced. The grid keeps no order of its own: onRowsReorder says where the row goes in rows (from and to, the index it takes once moved) and the consumer moves it. Only while the query is at rest — no sort, filter, search or group — and without a tree, because elsewhere the position on screen is not the position in rows; the grip is disabled otherwise.
2422
+
2423
+ Excerpt — not a complete module
2424
+
2425
+ ```tsx
2426
+ <DataGrid
2427
+ onRowsReorder={({ from, to }) => setRows((rows) => arrayMove(rows, from, to))}
2428
+ rows={rows}
2429
+ rowsReorderable
2430
+ />;
2431
+ ```
2432
+
2433
+ ### Export and print
2434
+
2435
+ handle.exportCsv builds the file by toCsv — RFC 4180, each cell as the grid draws it — from the rows the query left (every page in client mode) and the columns not hidden in the reader’s order, or the selected rows and every column on request, and hands it to the browser as a download; handle.toCsv returns the text for a consumer who sends it elsewhere. In print, the frame grows to its rows, nothing scrolls or sticks, and the pointer’s controls are not on paper; a windowed grid prints the rows it has mounted, so a consumer who prints ten thousand turns the window off first. Excel is the consumer’s: SheetJS reads the same text.
2436
+
2437
+ Excerpt — not a complete module
2438
+
2439
+ ```tsx
2440
+ <>
2441
+ <Button onClick={() => grid.current?.exportCsv({ filename: 'shipments.csv' })}>CSV</Button>
2442
+ <Button onClick={() => grid.current?.exportCsv({ rows: 'selected', bom: true })}>
2443
+ Selected, for Excel
2444
+ </Button>
2445
+ <Button onClick={() => window.print()}>Print</Button>
2446
+ </>;
2447
+ ```
2448
+
2449
+ ### Keyboard
2450
+
2451
+ Tab enters on the current cell and leaves the grid. The arrows move one cell, Home and End along the row, Ctrl+Home and Ctrl+End to the corners, PageUp and PageDown a view. Enter and F2 enter a cell, Escape leaves it. On a header: Enter sorts, Shift+Enter appends, Ctrl+Enter, Shift+F10 and the Menu key open the menu, Ctrl+Shift+arrows resize, Alt+arrows move. The pop-in is the last cell of a row.
2452
+
2453
+ Excerpt — not a complete module
2454
+
2455
+ ```tsx
2456
+ <DataGrid
2457
+ defaultCurrent={{ row: 'SHP-20481', column: 'customer' }}
2458
+ onCurrentChange={(cell) => log(cell)}
2459
+ />;
2460
+ ```
2461
+
2462
+ ### What a reader hears
2463
+
2464
+ A grid named by aria-label; every row with its index in the whole set and every cell with its column index; aria-sort on the first key and the rest announced; the selection’s size in the header checkbox’s name; a resize as a width; a filter as its sentence. Inspect the tree with a screen reader.
2465
+
2466
+ Excerpt — not a complete module
2467
+
2468
+ ```tsx
2469
+ <DataGrid
2470
+ aria-label="Shipments"
2471
+ messages={{
2472
+ selectAllFiltered:
2473
+ '{count, plural, one {Select the # shipment} other {Select all # shipments}}',
2474
+ }}
2475
+ />;
2476
+ ```
2477
+
2478
+ ### empty.tsx
2479
+
2480
+ Example
2481
+
2482
+ ```tsx
2483
+ import type { GridColumn } from '@slotted/core/grid';
2484
+ import { DataGrid } from '@slotted/react/data-grid';
2485
+
2486
+ interface Shipment {
2487
+ id: string;
2488
+ customer: string;
2489
+ destination: string;
2490
+ carrier: string;
2491
+ status: string;
2492
+ shipped: string;
2493
+ weight: number;
2494
+ cost: number;
2495
+ priority: boolean;
2496
+ }
2497
+
2498
+ const CARRIERS = ['UPS', 'FedEx', 'DHL', 'USPS'];
2499
+ const STATUSES = ['In transit', 'Delivered', 'Delayed', 'Customs'];
2500
+
2501
+ const USD = new Intl.NumberFormat('en-US', { currency: 'USD', style: 'currency' });
2502
+ const money = (value: unknown) => (typeof value === 'number' ? USD.format(value) : '');
2503
+ const kilograms = (value: unknown) => (typeof value === 'number' ? `${value.toFixed(1)} kg` : '');
2504
+
2505
+ const COLUMNS: GridColumn<Shipment>[] = [
2506
+ { id: 'id', label: 'Shipment', accessor: 'id', rowHeader: true, width: 120, text: 'nowrap' },
2507
+ { id: 'customer', label: 'Customer', accessor: 'customer', flex: 1, minWidth: 180 },
2508
+ { id: 'destination', label: 'Destination', accessor: 'destination', width: 170 },
2509
+ {
2510
+ id: 'carrier',
2511
+ label: 'Carrier',
2512
+ accessor: 'carrier',
2513
+ kind: 'set',
2514
+ width: 110,
2515
+ options: CARRIERS.map((value) => ({ value, label: value })),
2516
+ },
2517
+ {
2518
+ id: 'status',
2519
+ label: 'Status',
2520
+ accessor: 'status',
2521
+ kind: 'set',
2522
+ width: 120,
2523
+ options: STATUSES.map((value) => ({ value, label: value })),
2524
+ },
2525
+ { id: 'shipped', label: 'Shipped', accessor: 'shipped', kind: 'date', width: 130 },
2526
+ {
2527
+ id: 'weight',
2528
+ label: 'Weight',
2529
+ accessor: 'weight',
2530
+ kind: 'number',
2531
+ width: 110,
2532
+ format: kilograms,
2533
+ },
2534
+ { id: 'cost', label: 'Cost', accessor: 'cost', kind: 'number', width: 120, format: money },
2535
+ ];
2536
+
2537
+ const ROWS = [] as Shipment[];
2538
+
2539
+ export default function DataGridEmpty() {
2540
+ return (
2541
+ <DataGrid aria-label="Shipments" columns={COLUMNS} rowKey="id" rows={ROWS} height="18rem" />
2542
+ );
2543
+ }
2544
+ ```
2545
+
2546
+ ### error.tsx
2547
+
2548
+ Example
2549
+
2550
+ ```tsx
2551
+ import { useState } from 'react';
2552
+ import type { GridColumn } from '@slotted/core/grid';
2553
+ import { DataGrid } from '@slotted/react/data-grid';
2554
+
2555
+ interface Shipment {
2556
+ id: string;
2557
+ customer: string;
2558
+ destination: string;
2559
+ carrier: string;
2560
+ status: string;
2561
+ shipped: string;
2562
+ weight: number;
2563
+ cost: number;
2564
+ priority: boolean;
2565
+ }
2566
+
2567
+ const CARRIERS = ['UPS', 'FedEx', 'DHL', 'USPS'];
2568
+ const STATUSES = ['In transit', 'Delivered', 'Delayed', 'Customs'];
2569
+
2570
+ const USD = new Intl.NumberFormat('en-US', { currency: 'USD', style: 'currency' });
2571
+ const money = (value: unknown) => (typeof value === 'number' ? USD.format(value) : '');
2572
+ const kilograms = (value: unknown) => (typeof value === 'number' ? `${value.toFixed(1)} kg` : '');
2573
+
2574
+ const COLUMNS: GridColumn<Shipment>[] = [
2575
+ { id: 'id', label: 'Shipment', accessor: 'id', rowHeader: true, width: 120, text: 'nowrap' },
2576
+ { id: 'customer', label: 'Customer', accessor: 'customer', flex: 1, minWidth: 180 },
2577
+ { id: 'destination', label: 'Destination', accessor: 'destination', width: 170 },
2578
+ {
2579
+ id: 'carrier',
2580
+ label: 'Carrier',
2581
+ accessor: 'carrier',
2582
+ kind: 'set',
2583
+ width: 110,
2584
+ options: CARRIERS.map((value) => ({ value, label: value })),
2585
+ },
2586
+ {
2587
+ id: 'status',
2588
+ label: 'Status',
2589
+ accessor: 'status',
2590
+ kind: 'set',
2591
+ width: 120,
2592
+ options: STATUSES.map((value) => ({ value, label: value })),
2593
+ },
2594
+ { id: 'shipped', label: 'Shipped', accessor: 'shipped', kind: 'date', width: 130 },
2595
+ {
2596
+ id: 'weight',
2597
+ label: 'Weight',
2598
+ accessor: 'weight',
2599
+ kind: 'number',
2600
+ width: 110,
2601
+ format: kilograms,
2602
+ },
2603
+ { id: 'cost', label: 'Cost', accessor: 'cost', kind: 'number', width: 120, format: money },
2604
+ ];
2605
+
2606
+ const ROWS = [] as Shipment[];
2607
+
2608
+ export default function DataGridError() {
2609
+ const [attempts, setAttempts] = useState(0);
2610
+
2611
+ return (
2612
+ <DataGrid
2613
+ aria-label="Shipments"
2614
+ columns={COLUMNS}
2615
+ rowKey="id"
2616
+ rows={ROWS}
2617
+ error="The shipments service did not answer within 30 seconds."
2618
+ height="18rem"
2619
+ onRetry={() => setAttempts(attempts + 1)}
2620
+ />
2621
+ );
2622
+ }
2623
+ ```
2624
+
2625
+ ### loading.tsx
2626
+
2627
+ Example
2628
+
2629
+ ```tsx
2630
+ import type { GridColumn } from '@slotted/core/grid';
2631
+ import { DataGrid } from '@slotted/react/data-grid';
2632
+
2633
+ interface Shipment {
2634
+ id: string;
2635
+ customer: string;
2636
+ destination: string;
2637
+ carrier: string;
2638
+ status: string;
2639
+ shipped: string;
2640
+ weight: number;
2641
+ cost: number;
2642
+ priority: boolean;
2643
+ }
2644
+
2645
+ const CARRIERS = ['UPS', 'FedEx', 'DHL', 'USPS'];
2646
+ const STATUSES = ['In transit', 'Delivered', 'Delayed', 'Customs'];
2647
+
2648
+ const USD = new Intl.NumberFormat('en-US', { currency: 'USD', style: 'currency' });
2649
+ const money = (value: unknown) => (typeof value === 'number' ? USD.format(value) : '');
2650
+ const kilograms = (value: unknown) => (typeof value === 'number' ? `${value.toFixed(1)} kg` : '');
2651
+
2652
+ const COLUMNS: GridColumn<Shipment>[] = [
2653
+ { id: 'id', label: 'Shipment', accessor: 'id', rowHeader: true, width: 120, text: 'nowrap' },
2654
+ { id: 'customer', label: 'Customer', accessor: 'customer', flex: 1, minWidth: 180 },
2655
+ { id: 'destination', label: 'Destination', accessor: 'destination', width: 170 },
2656
+ {
2657
+ id: 'carrier',
2658
+ label: 'Carrier',
2659
+ accessor: 'carrier',
2660
+ kind: 'set',
2661
+ width: 110,
2662
+ options: CARRIERS.map((value) => ({ value, label: value })),
2663
+ },
2664
+ {
2665
+ id: 'status',
2666
+ label: 'Status',
2667
+ accessor: 'status',
2668
+ kind: 'set',
2669
+ width: 120,
2670
+ options: STATUSES.map((value) => ({ value, label: value })),
2671
+ },
2672
+ { id: 'shipped', label: 'Shipped', accessor: 'shipped', kind: 'date', width: 130 },
2673
+ {
2674
+ id: 'weight',
2675
+ label: 'Weight',
2676
+ accessor: 'weight',
2677
+ kind: 'number',
2678
+ width: 110,
2679
+ format: kilograms,
2680
+ },
2681
+ { id: 'cost', label: 'Cost', accessor: 'cost', kind: 'number', width: 120, format: money },
2682
+ ];
2683
+
2684
+ const ROWS = [] as Shipment[];
2685
+
2686
+ export default function DataGridLoading() {
2687
+ return (
2688
+ <DataGrid
2689
+ aria-label="Shipments"
2690
+ columns={COLUMNS}
2691
+ rowKey="id"
2692
+ rows={ROWS}
2693
+ height="18rem"
2694
+ loading
2695
+ />
2696
+ );
2697
+ }
2698
+ ```
2699
+
2700
+ ### shipments-workspace.tsx
2701
+
2702
+ Example
2703
+
2704
+ ```tsx
2705
+ import { useState } from 'react';
2706
+ import { emptyQuery, withSearch, type GridColumn, type GridQuery } from '@slotted/core/grid';
2707
+ import { Button } from '@slotted/react/button';
2708
+ import { DataGrid } from '@slotted/react/data-grid';
2709
+ import { Inline } from '@slotted/react/inline';
2710
+ import { Stack } from '@slotted/react/stack';
2711
+ import { TextField } from '@slotted/react/text-field';
2712
+ import { Text } from '@slotted/react/typography';
2713
+
2714
+ interface Shipment {
2715
+ id: string;
2716
+ customer: string;
2717
+ destination: string;
2718
+ carrier: string;
2719
+ status: string;
2720
+ shipped: string;
2721
+ weight: number;
2722
+ cost: number;
2723
+ priority: boolean;
2724
+ }
2725
+
2726
+ const CUSTOMERS = [
2727
+ 'Alfreds Futterkiste',
2728
+ "Bon app'",
2729
+ 'Ernst Handel',
2730
+ 'Folk och fä HB',
2731
+ 'Hanari Carnes',
2732
+ 'Island Trading',
2733
+ 'QUICK-Stop',
2734
+ 'Wartian Herkku',
2735
+ ];
2736
+ const DESTINATIONS = [
2737
+ 'Berlin, DE',
2738
+ 'Marseille, FR',
2739
+ 'Graz, AT',
2740
+ 'Bräcke, SE',
2741
+ 'Rio de Janeiro, BR',
2742
+ 'Cowes, UK',
2743
+ 'Boise, US',
2744
+ 'Oulu, FI',
2745
+ ];
2746
+ const CARRIERS = ['UPS', 'FedEx', 'DHL', 'USPS'];
2747
+ const STATUSES = ['In transit', 'Delivered', 'Delayed', 'Customs'];
2748
+
2749
+ function shipments(count: number): Shipment[] {
2750
+ let seed = 7;
2751
+ const next = () => (seed = (seed * 1664525 + 1013904223) % 4294967296) / 4294967296;
2752
+ const pick = <T,>(list: readonly T[]) => list[Math.floor(next() * list.length)]!;
2753
+ return Array.from({ length: count }, (_, index) => {
2754
+ const weight = Math.round(next() * 9000) / 10;
2755
+ return {
2756
+ id: `SH-${3301 + index}`,
2757
+ customer: pick(CUSTOMERS),
2758
+ destination: pick(DESTINATIONS),
2759
+ carrier: pick(CARRIERS),
2760
+ status: pick(STATUSES),
2761
+ shipped: `2026-09-${String(1 + Math.floor(next() * 28)).padStart(2, '0')}`,
2762
+ weight,
2763
+ cost: Math.round(weight * (2 + next() * 3) * 100) / 100,
2764
+ priority: next() < 0.3,
2765
+ };
2766
+ });
2767
+ }
2768
+
2769
+ const USD = new Intl.NumberFormat('en-US', { currency: 'USD', style: 'currency' });
2770
+ const money = (value: unknown) => (typeof value === 'number' ? USD.format(value) : '');
2771
+ const kilograms = (value: unknown) => (typeof value === 'number' ? `${value.toFixed(1)} kg` : '');
2772
+
2773
+ const COLUMNS: GridColumn<Shipment>[] = [
2774
+ { id: 'id', label: 'Shipment', accessor: 'id', rowHeader: true, width: 120, text: 'nowrap' },
2775
+ { id: 'customer', label: 'Customer', accessor: 'customer', flex: 1, minWidth: 180 },
2776
+ { id: 'destination', label: 'Destination', accessor: 'destination', width: 170 },
2777
+ {
2778
+ id: 'carrier',
2779
+ label: 'Carrier',
2780
+ accessor: 'carrier',
2781
+ kind: 'set',
2782
+ width: 110,
2783
+ options: CARRIERS.map((value) => ({ value, label: value })),
2784
+ },
2785
+ {
2786
+ id: 'status',
2787
+ label: 'Status',
2788
+ accessor: 'status',
2789
+ kind: 'set',
2790
+ width: 120,
2791
+ options: STATUSES.map((value) => ({ value, label: value })),
2792
+ },
2793
+ { id: 'shipped', label: 'Shipped', accessor: 'shipped', kind: 'date', width: 130 },
2794
+ {
2795
+ id: 'weight',
2796
+ label: 'Weight',
2797
+ accessor: 'weight',
2798
+ kind: 'number',
2799
+ width: 110,
2800
+ format: kilograms,
2801
+ },
2802
+ { id: 'cost', label: 'Cost', accessor: 'cost', kind: 'number', width: 120, format: money },
2803
+ ];
2804
+
2805
+ const ROWS = shipments(60);
2806
+
2807
+ export default function DataGridShipmentsWorkspace() {
2808
+ const [query, setQuery] = useState<GridQuery>(emptyQuery());
2809
+ const [value, setValue] = useState<string | readonly string[] | null>([]);
2810
+ const count = Array.isArray(value) ? value.length : 0;
2811
+
2812
+ return (
2813
+ <Stack gap={3}>
2814
+ <TextField
2815
+ aria-label="Search shipments"
2816
+ clearable
2817
+ onValueChange={(text) => setQuery((current) => withSearch(current, text).query)}
2818
+ placeholder="Search by shipment, customer or destination"
2819
+ value={query.search}
2820
+ />
2821
+ <DataGrid
2822
+ aria-label="Shipments"
2823
+ columns={COLUMNS}
2824
+ rowKey="id"
2825
+ rows={ROWS}
2826
+ footer={
2827
+ <Inline align="center" gap={3}>
2828
+ <Text size="sm" tone="muted">
2829
+ {count} selected
2830
+ </Text>
2831
+ <Button disabled={count === 0} size="sm" variant="outline">
2832
+ Print labels
2833
+ </Button>
2834
+ </Inline>
2835
+ }
2836
+ height="26rem"
2837
+ onQueryChange={setQuery}
2838
+ onValueChange={setValue}
2839
+ query={query}
2840
+ selectionMode="multiple"
2841
+ value={value}
2842
+ />
2843
+ </Stack>
2844
+ );
2845
+ }
2846
+ ```