@slotted/react 0.1.0-beta.1 → 0.1.0-beta.11

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 (1088) hide show
  1. package/README.md +23 -2
  2. package/dist/accordion-n5D6mcmS.js +144 -0
  3. package/dist/accordion.js +1 -1
  4. package/dist/action-bar-z2DPc1Wy.js +285 -0
  5. package/dist/action-bar.js +1 -1
  6. package/dist/action-sheet-BnedGewu.js +360 -0
  7. package/dist/action-sheet.js +1 -1
  8. package/dist/alert-BTAXJ69M.js +163 -0
  9. package/dist/alert.js +1 -1
  10. package/dist/app-shell-Cb_kDBeV.js +904 -0
  11. package/dist/app-shell.js +1 -1
  12. package/dist/aspect-ratio-CLxOFJVH.js +41 -0
  13. package/dist/aspect-ratio.js +1 -1
  14. package/dist/attachment-D1O4qS8H.js +305 -0
  15. package/dist/attachment.js +1 -1
  16. package/dist/avatar-C1mYlU05.js +104 -0
  17. package/dist/avatar-group-DhbHJlMx.js +50 -0
  18. package/dist/avatar-group.js +1 -1
  19. package/dist/avatar.js +1 -1
  20. package/dist/badge-pgYVOnZO.js +98 -0
  21. package/dist/badge.js +1 -1
  22. package/dist/bin/slotted-agent-docs.mjs +297 -0
  23. package/dist/breadcrumb-CnFjxxI2.js +222 -0
  24. package/dist/breadcrumb.js +1 -1
  25. package/dist/button-D31perSu.js +100 -0
  26. package/dist/button-group-C-m4aSqu.js +51 -0
  27. package/dist/button-group.js +1 -1
  28. package/dist/button.js +2 -2
  29. package/dist/calendar-DZyC1gAT.js +457 -0
  30. package/dist/calendar.js +1 -1
  31. package/dist/card-DRmq8_5e.js +103 -0
  32. package/dist/card.js +1 -1
  33. package/dist/carousel-Dso3gcYd.js +499 -0
  34. package/dist/carousel.js +1 -1
  35. package/dist/cascader-BbajBwsX.js +1157 -0
  36. package/dist/cascader.js +1 -1
  37. package/dist/{chart-BNzfIfQe.js → chart-Bb6ctahn.js} +333 -271
  38. package/dist/chart.js +1 -1
  39. package/dist/checkbox-C_8GVtjD.js +144 -0
  40. package/dist/checkbox-group-DXCcusol.js +109 -0
  41. package/dist/checkbox-group.js +1 -1
  42. package/dist/checkbox.js +1 -1
  43. package/dist/code-block-C4mtsROE.js +282 -0
  44. package/dist/code-block.js +1 -1
  45. package/dist/collapsible-B_UjYE2f.js +222 -0
  46. package/dist/collapsible.js +1 -1
  47. package/dist/color-picker-JZPnPb7s.js +506 -0
  48. package/dist/color-picker.js +1 -1
  49. package/dist/column-manager-BDUj-WIs.js +586 -0
  50. package/dist/column-manager.js +1 -1
  51. package/dist/combobox-Dn69QwGX.js +904 -0
  52. package/dist/combobox.js +1 -1
  53. package/dist/command-palette-Dh1HKz_F.js +744 -0
  54. package/dist/command-palette.js +1 -1
  55. package/dist/container-WoYiHo50.js +47 -0
  56. package/dist/container.js +1 -1
  57. package/dist/context-menu-uJjEmAN3.js +151 -0
  58. package/dist/context-menu.js +1 -1
  59. package/dist/currency-field-lHcrNJ7X.js +469 -0
  60. package/dist/currency-field.js +1 -1
  61. package/dist/dashboard-grid-z-SOm9H0.js +1048 -0
  62. package/dist/dashboard-grid.js +1 -1
  63. package/dist/data-grid-DQCvXMJA.js +3856 -0
  64. package/dist/data-grid.js +1 -1
  65. package/dist/data-list-BgdkA3bD.js +587 -0
  66. package/dist/data-list.js +1 -1
  67. package/dist/date-field-B2lQzE3p.js +299 -0
  68. package/dist/date-field.js +1 -1
  69. package/dist/date-picker-DpTRb-Y1.js +316 -0
  70. package/dist/date-picker.js +1 -1
  71. package/dist/date-range-picker-CBUPJep5.js +501 -0
  72. package/dist/date-range-picker.js +1 -1
  73. package/dist/datetime-field-BZ44uJ_B.js +424 -0
  74. package/dist/datetime-field.js +1 -1
  75. package/dist/datetime-picker-BK_bV3Yr.js +662 -0
  76. package/dist/datetime-picker.js +1 -1
  77. package/dist/datetime-range-picker-ChdbRgzQ.js +1029 -0
  78. package/dist/datetime-range-picker.js +1 -1
  79. package/dist/description-list-CYlfHDwx.js +240 -0
  80. package/dist/description-list.js +1 -1
  81. package/dist/{detail-panel-qOJiNuzr.js → detail-panel-DimjnPI8.js} +121 -113
  82. package/dist/detail-panel.js +1 -1
  83. package/dist/dialog-BB5MdJex.js +537 -0
  84. package/dist/dialog.js +1 -1
  85. package/dist/divider-ryFeK0Pi.js +35 -0
  86. package/dist/divider.js +1 -1
  87. package/dist/docs/AGENTS.snippet.md +12 -0
  88. package/dist/docs/action-bar.json +4 -4
  89. package/dist/docs/action-bar.md +3 -3
  90. package/dist/docs/alert.json +7 -1
  91. package/dist/docs/alert.md +3 -3
  92. package/dist/docs/app-shell.examples.md +1 -1
  93. package/dist/docs/app-shell.json +5 -5
  94. package/dist/docs/app-shell.md +2 -2
  95. package/dist/docs/avatar.json +22 -1
  96. package/dist/docs/avatar.md +5 -3
  97. package/dist/docs/badge.json +7 -1
  98. package/dist/docs/badge.md +3 -3
  99. package/dist/docs/button-group.json +2 -0
  100. package/dist/docs/button-group.md +1 -1
  101. package/dist/docs/button.json +51 -11
  102. package/dist/docs/button.md +10 -6
  103. package/dist/docs/calendar.json +8 -1
  104. package/dist/docs/calendar.md +3 -2
  105. package/dist/docs/cascader.json +1 -0
  106. package/dist/docs/cascader.md +1 -1
  107. package/dist/docs/chart.examples.md +1 -1
  108. package/dist/docs/chart.json +10 -1
  109. package/dist/docs/chart.md +3 -2
  110. package/dist/docs/code-block.json +93 -93
  111. package/dist/docs/code-block.md +71 -71
  112. package/dist/docs/collapsible.json +1 -1
  113. package/dist/docs/collapsible.md +1 -1
  114. package/dist/docs/combobox.json +1 -0
  115. package/dist/docs/combobox.md +1 -1
  116. package/dist/docs/command-palette.json +1 -0
  117. package/dist/docs/command-palette.md +1 -1
  118. package/dist/docs/currency-field.json +40 -1
  119. package/dist/docs/currency-field.md +5 -1
  120. package/dist/docs/data-grid.examples.md +10 -4
  121. package/dist/docs/data-grid.json +48 -9
  122. package/dist/docs/data-grid.md +4 -1
  123. package/dist/docs/data-grid.props.md +7 -4
  124. package/dist/docs/data-list.json +2 -1
  125. package/dist/docs/data-list.md +1 -1
  126. package/dist/docs/date-field.json +9 -1
  127. package/dist/docs/date-field.md +3 -2
  128. package/dist/docs/date-picker.examples.md +29 -0
  129. package/dist/docs/date-picker.json +16 -1
  130. package/dist/docs/date-picker.md +2 -1
  131. package/dist/docs/datetime-field.json +1 -0
  132. package/dist/docs/datetime-field.md +1 -1
  133. package/dist/docs/detail-panel.json +4 -2
  134. package/dist/docs/detail-panel.md +15 -5
  135. package/dist/docs/dialog.examples.md +144 -116
  136. package/dist/docs/dialog.json +36 -11
  137. package/dist/docs/dialog.md +5 -3
  138. package/dist/docs/drawer.json +11 -4
  139. package/dist/docs/drawer.md +4 -3
  140. package/dist/docs/entity-picker.json +18 -3
  141. package/dist/docs/entity-picker.md +11 -4
  142. package/dist/docs/event-calendar.json +7 -0
  143. package/dist/docs/event-calendar.md +3 -2
  144. package/dist/docs/filter-bar.json +115 -115
  145. package/dist/docs/filter-bar.md +78 -78
  146. package/dist/docs/form.json +2 -1
  147. package/dist/docs/form.md +1 -1
  148. package/dist/docs/guidelines/README.md +27 -0
  149. package/dist/docs/guidelines/async-feedback.md +129 -0
  150. package/dist/docs/guidelines/browsing.md +74 -0
  151. package/dist/docs/guidelines/builders.md +97 -0
  152. package/dist/docs/guidelines/composition.md +143 -0
  153. package/dist/docs/guidelines/conversations.md +59 -0
  154. package/dist/docs/guidelines/errors-and-conflicts.md +71 -0
  155. package/dist/docs/guidelines/forms.md +202 -0
  156. package/dist/docs/guidelines/index.md +130 -0
  157. package/dist/docs/guidelines/layout-alignment.md +105 -0
  158. package/dist/docs/guidelines/ledgers.md +45 -0
  159. package/dist/docs/guidelines/list-pages.md +206 -0
  160. package/dist/docs/guidelines/overviews.md +76 -0
  161. package/dist/docs/guidelines/own-elements.md +115 -0
  162. package/dist/docs/guidelines/reading-permissions.md +55 -0
  163. package/dist/docs/guidelines/record-pages.md +178 -0
  164. package/dist/docs/guidelines/reports.md +123 -0
  165. package/dist/docs/guidelines/shell-composition.md +94 -0
  166. package/dist/docs/guidelines/workspaces.md +46 -0
  167. package/dist/docs/icon.json +3 -1
  168. package/dist/docs/icon.md +3 -3
  169. package/dist/docs/index.md +12 -0
  170. package/dist/docs/inline-message.json +15 -3
  171. package/dist/docs/inline-message.md +5 -3
  172. package/dist/docs/list-item.json +9 -1
  173. package/dist/docs/list-item.md +3 -3
  174. package/dist/docs/list.json +26 -1
  175. package/dist/docs/list.md +4 -1
  176. package/dist/docs/markdown.json +75 -75
  177. package/dist/docs/markdown.md +63 -63
  178. package/dist/docs/menu.json +12 -0
  179. package/dist/docs/menu.md +2 -0
  180. package/dist/docs/message.json +7 -1
  181. package/dist/docs/message.md +3 -3
  182. package/dist/docs/multi-select.json +1 -0
  183. package/dist/docs/multi-select.md +1 -1
  184. package/dist/docs/notification-center.json +4 -0
  185. package/dist/docs/notification-center.md +2 -2
  186. package/dist/docs/number-field.json +1 -0
  187. package/dist/docs/number-field.md +1 -1
  188. package/dist/docs/otp-input.json +1 -0
  189. package/dist/docs/otp-input.md +1 -1
  190. package/dist/docs/page-header.json +21 -4
  191. package/dist/docs/page-header.md +6 -4
  192. package/dist/docs/page.json +2 -0
  193. package/dist/docs/page.md +2 -1
  194. package/dist/docs/popover.json +1 -1
  195. package/dist/docs/progress-indicator.json +4 -3
  196. package/dist/docs/progress-indicator.md +4 -4
  197. package/dist/docs/prompt-composer.json +41 -1
  198. package/dist/docs/prompt-composer.md +5 -1
  199. package/dist/docs/rating.json +5 -3
  200. package/dist/docs/rating.md +6 -6
  201. package/dist/docs/section.json +27 -15
  202. package/dist/docs/section.md +15 -9
  203. package/dist/docs/segmented-control.json +36 -12
  204. package/dist/docs/segmented-control.md +17 -1
  205. package/dist/docs/select.json +2 -1
  206. package/dist/docs/select.md +2 -2
  207. package/dist/docs/side-navigation.json +3 -2
  208. package/dist/docs/side-navigation.md +20 -5
  209. package/dist/docs/skills/build-own-element/SKILL.md +90 -0
  210. package/dist/docs/skills/compose-screen/SKILL.md +103 -0
  211. package/dist/docs/skills/index.md +9 -0
  212. package/dist/docs/skills/review-screen/SKILL.md +79 -0
  213. package/dist/docs/skills/theme-app/SKILL.md +98 -0
  214. package/dist/docs/skills/waiting-states/SKILL.md +143 -0
  215. package/dist/docs/sparkline.json +5 -2
  216. package/dist/docs/sparkline.md +4 -4
  217. package/dist/docs/split-button.json +4 -1
  218. package/dist/docs/split-button.md +3 -3
  219. package/dist/docs/stat-card.json +5 -1
  220. package/dist/docs/stat-card.md +3 -3
  221. package/dist/docs/table.examples.md +14 -18
  222. package/dist/docs/table.json +94 -5
  223. package/dist/docs/table.md +14 -1
  224. package/dist/docs/tabs.examples.md +1 -1
  225. package/dist/docs/tabs.json +27 -9
  226. package/dist/docs/tabs.md +6 -3
  227. package/dist/docs/tag.json +14 -4
  228. package/dist/docs/tag.md +6 -6
  229. package/dist/docs/tags-input.json +29 -2
  230. package/dist/docs/tags-input.md +4 -1
  231. package/dist/docs/text-field.json +2 -1
  232. package/dist/docs/text-field.md +2 -2
  233. package/dist/docs/textarea.examples.md +504 -0
  234. package/dist/docs/textarea.json +1 -0
  235. package/dist/docs/textarea.md +2 -498
  236. package/dist/docs/time-field.json +1 -0
  237. package/dist/docs/time-field.md +1 -1
  238. package/dist/docs/timeline.json +136 -130
  239. package/dist/docs/timeline.md +122 -122
  240. package/dist/docs/toast.json +8 -1
  241. package/dist/docs/toast.md +3 -3
  242. package/dist/docs/toggle-group.json +14 -3
  243. package/dist/docs/toggle-group.md +3 -3
  244. package/dist/docs/toggle.json +12 -3
  245. package/dist/docs/toggle.md +3 -3
  246. package/dist/docs/tokens.md +467 -0
  247. package/dist/docs/toolbar.json +1 -1
  248. package/dist/docs/toolbar.md +1 -1
  249. package/dist/docs/top-navigation.examples.md +23 -5
  250. package/dist/docs/top-navigation.json +2 -2
  251. package/dist/docs/tour.json +1 -1
  252. package/dist/docs/typography.json +4 -2
  253. package/dist/docs/typography.md +5 -5
  254. package/dist/drawer-fyPyxnYQ.js +782 -0
  255. package/dist/drawer.js +1 -1
  256. package/dist/entity-picker-ClyhBTyK.js +1283 -0
  257. package/dist/entity-picker.js +2 -2
  258. package/dist/{event-calendar-BFdeGfC-.js → event-calendar-COgC24UG.js} +479 -409
  259. package/dist/event-calendar.js +1 -1
  260. package/dist/field-group-Bj-EbPIU.js +138 -0
  261. package/dist/field-group.js +1 -1
  262. package/dist/field-tnEZiRLg.js +367 -0
  263. package/dist/field.js +1 -1
  264. package/dist/filter-bar-BRuCz79-.js +1342 -0
  265. package/dist/filter-bar.js +1 -1
  266. package/dist/{form-vTCQhZM-.js → form-DEcJ7tHf.js} +97 -88
  267. package/dist/form.js +1 -1
  268. package/dist/fullscreen-BwweNj3-.js +190 -0
  269. package/dist/fullscreen.js +1 -1
  270. package/dist/grid-l7xi6DUg.js +26 -0
  271. package/dist/grid.js +1 -1
  272. package/dist/highlight-9lRPIZ9O.js +59 -0
  273. package/dist/highlight.js +1 -1
  274. package/dist/hover-card-BWcU37Yp.js +215 -0
  275. package/dist/hover-card.js +1 -1
  276. package/dist/{i18n-DpW8lqJ1.js → i18n-D7xXDd8-.js} +11 -4
  277. package/dist/i18n.js +1 -1
  278. package/dist/icon-DjqSEQ-o.js +75 -0
  279. package/dist/icon-button-DbSZKGT4.js +224 -0
  280. package/dist/icon.js +1 -1
  281. package/dist/{image-DpDFrrXL.js → image-Ajqo38Uz.js} +24 -20
  282. package/dist/image.js +1 -1
  283. package/dist/import-export-center-CYf0Qxl_.js +867 -0
  284. package/dist/import-export-center.js +1 -1
  285. package/dist/index.js +128 -127
  286. package/dist/inline-CqF8iT4m.js +17 -0
  287. package/dist/inline-message-DM7mf2cM.js +119 -0
  288. package/dist/inline-message.js +2 -2
  289. package/dist/inline.js +1 -1
  290. package/dist/kbd-dNz8QHfL.js +105 -0
  291. package/dist/kbd.js +1 -1
  292. package/dist/link-DLPyg54C.js +91 -0
  293. package/dist/link.js +1 -1
  294. package/dist/list-B7gaPH1U.js +95 -0
  295. package/dist/list-item-DMeNfokY.js +125 -0
  296. package/dist/list-item.js +1 -1
  297. package/dist/list.js +1 -1
  298. package/dist/listbox-BSqx_ARf.js +626 -0
  299. package/dist/listbox.js +1 -1
  300. package/dist/loading-overlay-BLIrcaoj.js +218 -0
  301. package/dist/loading-overlay.js +1 -1
  302. package/dist/markdown-DccRb1xf.js +306 -0
  303. package/dist/markdown.js +1 -1
  304. package/dist/menu-parts-CNNHRduK.js +805 -0
  305. package/dist/menu.js +1 -1
  306. package/dist/menubar-Bdr6zigi.js +157 -0
  307. package/dist/menubar.js +1 -1
  308. package/dist/message-BkTiWsUp.js +436 -0
  309. package/dist/message-scroller-akQEtQLn.js +218 -0
  310. package/dist/message-scroller.js +1 -1
  311. package/dist/message.js +1 -1
  312. package/dist/multi-select-BvlJIEtz.js +1259 -0
  313. package/dist/multi-select.js +1 -1
  314. package/dist/navigation-menu-parts-CEW4fgCo.js +492 -0
  315. package/dist/navigation-menu.js +1 -1
  316. package/dist/notification-center-BQO0Ey3h.js +516 -0
  317. package/dist/notification-center.js +1 -1
  318. package/dist/number-field-D1MqT8_A.js +345 -0
  319. package/dist/number-field.js +1 -1
  320. package/dist/{otp-input-Bf8JUiVR.js → otp-input-Cub9H9Di.js} +75 -72
  321. package/dist/otp-input.js +1 -1
  322. package/dist/page-CwYmBoZQ.js +179 -0
  323. package/dist/page-header-CMxCQqu_.js +372 -0
  324. package/dist/page-header.js +1 -1
  325. package/dist/page.js +1 -1
  326. package/dist/pagination-IEuos7H1.js +299 -0
  327. package/dist/pagination.js +1 -1
  328. package/dist/popover-C7NpEzq6.js +500 -0
  329. package/dist/popover.js +1 -1
  330. package/dist/press-selection-DjOllE2B.js +29 -0
  331. package/dist/press-selection.js +2 -0
  332. package/dist/progress-indicator-D0acshNn.js +292 -0
  333. package/dist/progress-indicator.js +1 -1
  334. package/dist/prompt-composer-Cu8bj1Vb.js +276 -0
  335. package/dist/prompt-composer.js +1 -1
  336. package/dist/prose-CQN4Bqqh.js +92 -0
  337. package/dist/prose.js +1 -1
  338. package/dist/radio-group-BHlDgCLk.js +143 -0
  339. package/dist/radio-group.js +1 -1
  340. package/dist/rating-Cr0lXaAV.js +501 -0
  341. package/dist/rating.js +1 -1
  342. package/dist/result-state-BMYhelu1.js +128 -0
  343. package/dist/result-state.js +1 -1
  344. package/dist/saved-views-CyLSn8a2.js +456 -0
  345. package/dist/saved-views.js +1 -1
  346. package/dist/scroll-area-Fr0PmnRS.js +112 -0
  347. package/dist/scroll-area.js +1 -1
  348. package/dist/section-DY8yPm11.js +177 -0
  349. package/dist/section.js +2 -2
  350. package/dist/segmented-control-uPnQYklX.js +156 -0
  351. package/dist/segmented-control.js +1 -1
  352. package/dist/select-C0JYHwBy.js +1020 -0
  353. package/dist/{select-tags-CQMcHIQN.js → select-tags-CMe5rzql.js} +11 -1
  354. package/dist/select.js +1 -1
  355. package/dist/side-navigation-D8lRpHwj.js +747 -0
  356. package/dist/side-navigation.js +1 -1
  357. package/dist/skeleton-DeEOmm1y.js +149 -0
  358. package/dist/skeleton.js +1 -1
  359. package/dist/slider-BSI1xvjw.js +264 -0
  360. package/dist/slider.js +1 -1
  361. package/dist/sparkline-CYU4_lCD.js +152 -0
  362. package/dist/sparkline.js +1 -1
  363. package/dist/spinner-ring-DyfaYloA.js +19 -0
  364. package/dist/split-button-CkbylOMN.js +136 -0
  365. package/dist/split-button.js +1 -1
  366. package/dist/splitter-CspZHJz4.js +293 -0
  367. package/dist/splitter.js +1 -1
  368. package/dist/stack-BbgvuQ7m.js +16 -0
  369. package/dist/stack.js +1 -1
  370. package/dist/stat-card-CAh4SdeY.js +247 -0
  371. package/dist/stat-card.js +1 -1
  372. package/dist/status-indicator-BVMnpcm8.js +78 -0
  373. package/dist/status-indicator.js +1 -1
  374. package/dist/stepper-BLfvMz04.js +261 -0
  375. package/dist/stepper.js +1 -1
  376. package/dist/styles/accordion.css +2 -0
  377. package/dist/styles/action-bar.css +8 -0
  378. package/dist/styles/action-sheet.css +8 -0
  379. package/dist/styles/alert.css +4 -0
  380. package/dist/styles/app-shell.css +8 -0
  381. package/dist/styles/aspect-ratio.css +2 -0
  382. package/dist/styles/attachment.css +8 -0
  383. package/dist/styles/avatar-group.css +6 -0
  384. package/dist/styles/avatar.css +4 -0
  385. package/dist/styles/badge.css +2 -0
  386. package/dist/styles/breadcrumb.css +4 -0
  387. package/dist/styles/button-group.css +2 -0
  388. package/dist/styles/button.css +4 -0
  389. package/dist/styles/calendar.css +4 -0
  390. package/dist/styles/card.css +2 -0
  391. package/dist/styles/carousel.css +4 -0
  392. package/dist/styles/cascader.css +20 -0
  393. package/dist/styles/chart.css +10 -0
  394. package/dist/styles/checkbox-group.css +12 -0
  395. package/dist/styles/checkbox.css +14 -0
  396. package/dist/styles/code-block.css +10 -0
  397. package/dist/styles/collapsible.css +6 -0
  398. package/dist/styles/color-picker.css +18 -0
  399. package/dist/styles/column-manager.css +32 -0
  400. package/dist/styles/combobox.css +12 -0
  401. package/dist/styles/command-palette.css +14 -0
  402. package/dist/styles/container.css +2 -0
  403. package/dist/styles/context-menu.css +8 -0
  404. package/dist/styles/currency-field.css +10 -0
  405. package/dist/styles/dashboard-grid.css +20 -0
  406. package/dist/styles/data-grid.css +64 -0
  407. package/dist/styles/data-list.css +34 -0
  408. package/dist/styles/date-field.css +10 -0
  409. package/dist/styles/date-picker.css +14 -0
  410. package/dist/styles/date-range-picker.css +14 -0
  411. package/dist/styles/datetime-field.css +10 -0
  412. package/dist/styles/datetime-picker.css +14 -0
  413. package/dist/styles/datetime-range-picker.css +14 -0
  414. package/dist/styles/description-list.css +6 -0
  415. package/dist/styles/detail-panel.css +24 -0
  416. package/dist/styles/dialog.css +4 -0
  417. package/dist/styles/divider.css +2 -0
  418. package/dist/styles/drawer.css +4 -0
  419. package/dist/styles/entity-picker.css +22 -0
  420. package/dist/styles/event-calendar.css +28 -0
  421. package/dist/styles/field-group.css +10 -0
  422. package/dist/styles/field.css +8 -0
  423. package/dist/styles/filter-bar.css +54 -0
  424. package/dist/styles/form.css +2 -0
  425. package/dist/styles/fullscreen.css +4 -0
  426. package/dist/styles/grid.css +2 -0
  427. package/dist/styles/highlight.css +2 -0
  428. package/dist/styles/hover-card.css +6 -0
  429. package/dist/styles/i18n.css +1 -0
  430. package/dist/styles/icon.css +2 -0
  431. package/dist/styles/image.css +6 -0
  432. package/dist/styles/import-export-center.css +70 -0
  433. package/dist/styles/index.css +248 -0
  434. package/dist/styles/inline-message.css +4 -0
  435. package/dist/styles/inline.css +2 -0
  436. package/dist/styles/kbd.css +2 -0
  437. package/dist/styles/link.css +6 -0
  438. package/dist/styles/list-item.css +6 -0
  439. package/dist/styles/list.css +2 -0
  440. package/dist/styles/listbox.css +10 -0
  441. package/dist/styles/loading-overlay.css +6 -0
  442. package/dist/styles/markdown.css +34 -0
  443. package/dist/styles/menu.css +6 -0
  444. package/dist/styles/menubar.css +8 -0
  445. package/dist/styles/message-scroller.css +4 -0
  446. package/dist/styles/message.css +4 -0
  447. package/dist/styles/multi-select.css +18 -0
  448. package/dist/styles/navigation-menu.css +4 -0
  449. package/dist/styles/notification-center.css +16 -0
  450. package/dist/styles/number-field.css +10 -0
  451. package/dist/styles/otp-input.css +10 -0
  452. package/dist/styles/page-header.css +16 -0
  453. package/dist/styles/page.css +6 -0
  454. package/dist/styles/pagination.css +4 -0
  455. package/dist/styles/popover.css +4 -0
  456. package/dist/styles/press-selection.css +1 -0
  457. package/dist/styles/progress-indicator.css +4 -0
  458. package/dist/styles/prompt-composer.css +12 -0
  459. package/dist/styles/prose.css +2 -0
  460. package/dist/styles/radio-group.css +12 -0
  461. package/dist/styles/rating.css +10 -0
  462. package/dist/styles/result-state.css +2 -0
  463. package/dist/styles/saved-views.css +20 -0
  464. package/dist/styles/scroll-area.css +2 -0
  465. package/dist/styles/section.css +4 -0
  466. package/dist/styles/segmented-control.css +12 -0
  467. package/dist/styles/select.css +14 -0
  468. package/dist/styles/side-navigation.css +14 -0
  469. package/dist/styles/skeleton.css +4 -0
  470. package/dist/styles/slider.css +10 -0
  471. package/dist/styles/sparkline.css +2 -0
  472. package/dist/styles/split-button.css +12 -0
  473. package/dist/styles/splitter.css +2 -0
  474. package/dist/styles/stack.css +2 -0
  475. package/dist/styles/stat-card.css +8 -0
  476. package/dist/styles/status-indicator.css +6 -0
  477. package/dist/styles/stepper.css +6 -0
  478. package/dist/styles/switch.css +12 -0
  479. package/dist/styles/table-of-contents.css +8 -0
  480. package/dist/styles/table.css +60 -0
  481. package/dist/styles/tabs.css +4 -0
  482. package/dist/styles/tag.css +4 -0
  483. package/dist/styles/tags-input.css +12 -0
  484. package/dist/styles/text-field.css +10 -0
  485. package/dist/styles/textarea.css +10 -0
  486. package/dist/styles/theme.css +1 -0
  487. package/dist/styles/time-field.css +10 -0
  488. package/dist/styles/time-picker.css +12 -0
  489. package/dist/styles/time-range-picker.css +12 -0
  490. package/dist/styles/timeline.css +8 -0
  491. package/dist/styles/toast.css +8 -0
  492. package/dist/styles/toggle-group.css +10 -0
  493. package/dist/styles/toggle.css +2 -0
  494. package/dist/styles/toolbar.css +8 -0
  495. package/dist/styles/tooltip.css +2 -0
  496. package/dist/styles/top-navigation.css +14 -0
  497. package/dist/styles/tour.css +8 -0
  498. package/dist/styles/transfer.css +26 -0
  499. package/dist/styles/tree.css +6 -0
  500. package/dist/styles/typography.css +2 -0
  501. package/dist/styles/upload.css +16 -0
  502. package/dist/styles/visually-hidden.css +2 -0
  503. package/dist/styles/wizard.css +22 -0
  504. package/dist/styles.css +1 -1
  505. package/dist/switch-BHyKHqeI.js +144 -0
  506. package/dist/switch.js +1 -1
  507. package/dist/table-C8zOHDcY.js +1019 -0
  508. package/dist/table-of-contents-BAIuPCdy.js +471 -0
  509. package/dist/table-of-contents.js +1 -1
  510. package/dist/table.js +2 -2
  511. package/dist/tabs-DjEpS9uq.js +361 -0
  512. package/dist/tabs.js +1 -1
  513. package/dist/tag-XYGEPUHR.js +374 -0
  514. package/dist/tag.js +1 -1
  515. package/dist/tags-input-ClYSd-No.js +729 -0
  516. package/dist/tags-input.js +1 -1
  517. package/dist/text-field-Cguj75tn.js +205 -0
  518. package/dist/text-field.js +1 -1
  519. package/dist/textarea-BKsh_jAo.js +100 -0
  520. package/dist/textarea.js +1 -1
  521. package/dist/time-field-BIE4WMpS.js +366 -0
  522. package/dist/time-field.js +1 -1
  523. package/dist/time-picker-CNfafRDF.js +415 -0
  524. package/dist/time-picker.js +1 -1
  525. package/dist/time-range-picker-D7gM_Wno.js +779 -0
  526. package/dist/time-range-picker.js +1 -1
  527. package/dist/timeline-BLadNUkS.js +449 -0
  528. package/dist/timeline.js +1 -1
  529. package/dist/{toast-wI8BtPY5.js → toast-CjbiXiza.js} +114 -112
  530. package/dist/toast.js +1 -1
  531. package/dist/toggle-group-BZmghKac.js +145 -0
  532. package/dist/toggle-group.js +1 -1
  533. package/dist/toggle-zDTD5G3H.js +67 -0
  534. package/dist/toggle.js +1 -1
  535. package/dist/toolbar-BI4ZepBs.js +243 -0
  536. package/dist/toolbar.js +1 -1
  537. package/dist/tooltip-DrFiRlH8.js +411 -0
  538. package/dist/tooltip.js +1 -1
  539. package/dist/top-navigation-BTZpx5VA.js +744 -0
  540. package/dist/top-navigation.js +1 -1
  541. package/dist/tour-_CQ1kYov.js +809 -0
  542. package/dist/tour.js +1 -1
  543. package/dist/transfer-BVhBdIGp.js +606 -0
  544. package/dist/transfer.js +1 -1
  545. package/dist/tree-DfI9UWLA.js +794 -0
  546. package/dist/tree.js +1 -1
  547. package/dist/types/accordion/accordion.d.ts.map +1 -1
  548. package/dist/types/action-bar/action-bar-overflow.d.ts.map +1 -1
  549. package/dist/types/action-bar/action-bar-parts.d.ts.map +1 -1
  550. package/dist/types/action-bar/action-bar.d.ts.map +1 -1
  551. package/dist/types/action-bar/action-bar.types.d.ts +2 -2
  552. package/dist/types/action-sheet/action-sheet-parts.d.ts.map +1 -1
  553. package/dist/types/alert/alert-parts.d.ts.map +1 -1
  554. package/dist/types/alert/alert.d.ts.map +1 -1
  555. package/dist/types/alert/alert.types.d.ts +1 -1
  556. package/dist/types/alert/alert.types.d.ts.map +1 -1
  557. package/dist/types/app-shell/app-shell-parts.d.ts +6 -4
  558. package/dist/types/app-shell/app-shell-parts.d.ts.map +1 -1
  559. package/dist/types/app-shell/app-shell.d.ts.map +1 -1
  560. package/dist/types/app-shell/app-shell.types.d.ts +21 -14
  561. package/dist/types/app-shell/app-shell.types.d.ts.map +1 -1
  562. package/dist/types/app-shell/index.d.ts +1 -1
  563. package/dist/types/app-shell/index.d.ts.map +1 -1
  564. package/dist/types/aspect-ratio/aspect-ratio.d.ts.map +1 -1
  565. package/dist/types/attachment/attachment-parts.d.ts.map +1 -1
  566. package/dist/types/attachment/attachment.d.ts.map +1 -1
  567. package/dist/types/avatar/avatar.d.ts +1 -1
  568. package/dist/types/avatar/avatar.d.ts.map +1 -1
  569. package/dist/types/avatar/avatar.types.d.ts +10 -1
  570. package/dist/types/avatar/avatar.types.d.ts.map +1 -1
  571. package/dist/types/avatar/index.d.ts +1 -1
  572. package/dist/types/avatar/index.d.ts.map +1 -1
  573. package/dist/types/avatar-group/avatar-group.d.ts.map +1 -1
  574. package/dist/types/badge/badge-anchor.d.ts.map +1 -1
  575. package/dist/types/badge/badge.d.ts.map +1 -1
  576. package/dist/types/badge/badge.types.d.ts +1 -1
  577. package/dist/types/badge/badge.types.d.ts.map +1 -1
  578. package/dist/types/breadcrumb/breadcrumb-parts.d.ts.map +1 -1
  579. package/dist/types/breadcrumb/breadcrumb.d.ts.map +1 -1
  580. package/dist/types/breadcrumb/breadcrumb.types.d.ts +2 -1
  581. package/dist/types/breadcrumb/breadcrumb.types.d.ts.map +1 -1
  582. package/dist/types/button/button-content.d.ts.map +1 -1
  583. package/dist/types/button/button-indicator.d.ts.map +1 -1
  584. package/dist/types/button/button-link.d.ts +1 -1
  585. package/dist/types/button/button-link.d.ts.map +1 -1
  586. package/dist/types/button/button-root.d.ts +7 -5
  587. package/dist/types/button/button-root.d.ts.map +1 -1
  588. package/dist/types/button/button.constants.d.ts +2 -1
  589. package/dist/types/button/button.constants.d.ts.map +1 -1
  590. package/dist/types/button/button.d.ts +1 -1
  591. package/dist/types/button/button.d.ts.map +1 -1
  592. package/dist/types/button/button.types.d.ts +11 -3
  593. package/dist/types/button/button.types.d.ts.map +1 -1
  594. package/dist/types/button/icon-button.d.ts.map +1 -1
  595. package/dist/types/button/index.d.ts +1 -1
  596. package/dist/types/button/index.d.ts.map +1 -1
  597. package/dist/types/button/spinner-ring.d.ts +8 -0
  598. package/dist/types/button/spinner-ring.d.ts.map +1 -0
  599. package/dist/types/button/toggle-button.d.ts +1 -1
  600. package/dist/types/button/toggle-button.d.ts.map +1 -1
  601. package/dist/types/button-group/button-group-separator.d.ts.map +1 -1
  602. package/dist/types/button-group/button-group.d.ts.map +1 -1
  603. package/dist/types/calendar/calendar.d.ts +1 -1
  604. package/dist/types/calendar/calendar.d.ts.map +1 -1
  605. package/dist/types/calendar/calendar.types.d.ts +9 -0
  606. package/dist/types/calendar/calendar.types.d.ts.map +1 -1
  607. package/dist/types/calendar/index.d.ts +1 -1
  608. package/dist/types/calendar/index.d.ts.map +1 -1
  609. package/dist/types/card/card-actions.d.ts.map +1 -1
  610. package/dist/types/card/card-body.d.ts.map +1 -1
  611. package/dist/types/card/card-footer.d.ts.map +1 -1
  612. package/dist/types/card/card-header.d.ts.map +1 -1
  613. package/dist/types/card/card-link.d.ts.map +1 -1
  614. package/dist/types/card/card-media.d.ts.map +1 -1
  615. package/dist/types/card/card-selection.d.ts.map +1 -1
  616. package/dist/types/card/card.d.ts.map +1 -1
  617. package/dist/types/card/card.types.d.ts +2 -1
  618. package/dist/types/card/card.types.d.ts.map +1 -1
  619. package/dist/types/carousel/carousel-parts.d.ts.map +1 -1
  620. package/dist/types/carousel/carousel.d.ts.map +1 -1
  621. package/dist/types/cascader/cascader-surface.d.ts.map +1 -1
  622. package/dist/types/cascader/cascader.d.ts.map +1 -1
  623. package/dist/types/chart/chart.d.ts.map +1 -1
  624. package/dist/types/checkbox/checkbox.d.ts.map +1 -1
  625. package/dist/types/checkbox-group/checkbox-group.d.ts.map +1 -1
  626. package/dist/types/code-block/code-block.d.ts.map +1 -1
  627. package/dist/types/collapsible/collapsible-parts.d.ts.map +1 -1
  628. package/dist/types/collapsible/collapsible.d.ts.map +1 -1
  629. package/dist/types/color-picker/color-picker.d.ts.map +1 -1
  630. package/dist/types/column-manager/column-manager.d.ts.map +1 -1
  631. package/dist/types/combobox/combobox-collection.d.ts +1 -0
  632. package/dist/types/combobox/combobox-collection.d.ts.map +1 -1
  633. package/dist/types/combobox/combobox-items.d.ts.map +1 -1
  634. package/dist/types/combobox/combobox-parts.d.ts.map +1 -1
  635. package/dist/types/combobox/combobox.d.ts.map +1 -1
  636. package/dist/types/command-palette/command-palette.d.ts.map +1 -1
  637. package/dist/types/container/container-breakout.d.ts.map +1 -1
  638. package/dist/types/container/container.d.ts.map +1 -1
  639. package/dist/types/context-menu/context-menu.d.ts.map +1 -1
  640. package/dist/types/currency-field/currency-field-defaults.d.ts.map +1 -1
  641. package/dist/types/currency-field/currency-field.d.ts +1 -1
  642. package/dist/types/currency-field/currency-field.d.ts.map +1 -1
  643. package/dist/types/currency-field/currency-field.types.d.ts +28 -5
  644. package/dist/types/currency-field/currency-field.types.d.ts.map +1 -1
  645. package/dist/types/currency-field/index.d.ts +1 -1
  646. package/dist/types/currency-field/index.d.ts.map +1 -1
  647. package/dist/types/dashboard-grid/dashboard-grid.d.ts.map +1 -1
  648. package/dist/types/dashboard-grid/dashboard-widget.d.ts +1 -1
  649. package/dist/types/dashboard-grid/dashboard-widget.d.ts.map +1 -1
  650. package/dist/types/data-grid/data-grid-body.d.ts +7 -2
  651. package/dist/types/data-grid/data-grid-body.d.ts.map +1 -1
  652. package/dist/types/data-grid/data-grid-context.d.ts +31 -1
  653. package/dist/types/data-grid/data-grid-context.d.ts.map +1 -1
  654. package/dist/types/data-grid/data-grid-filter.d.ts.map +1 -1
  655. package/dist/types/data-grid/data-grid-header.d.ts.map +1 -1
  656. package/dist/types/data-grid/data-grid.d.ts +1 -1
  657. package/dist/types/data-grid/data-grid.d.ts.map +1 -1
  658. package/dist/types/data-grid/data-grid.types.d.ts +36 -1
  659. package/dist/types/data-grid/data-grid.types.d.ts.map +1 -1
  660. package/dist/types/data-grid/index.d.ts +1 -1
  661. package/dist/types/data-grid/index.d.ts.map +1 -1
  662. package/dist/types/data-list/data-list.d.ts.map +1 -1
  663. package/dist/types/date-field/date-field.d.ts +1 -1
  664. package/dist/types/date-field/date-field.d.ts.map +1 -1
  665. package/dist/types/date-field/date-field.types.d.ts +7 -0
  666. package/dist/types/date-field/date-field.types.d.ts.map +1 -1
  667. package/dist/types/date-picker/date-picker.d.ts +5 -1
  668. package/dist/types/date-picker/date-picker.d.ts.map +1 -1
  669. package/dist/types/date-picker/date-picker.types.d.ts +20 -2
  670. package/dist/types/date-picker/date-picker.types.d.ts.map +1 -1
  671. package/dist/types/date-picker/index.d.ts +1 -1
  672. package/dist/types/date-picker/index.d.ts.map +1 -1
  673. package/dist/types/date-range-picker/date-range-picker.d.ts.map +1 -1
  674. package/dist/types/datetime-field/datetime-field.d.ts.map +1 -1
  675. package/dist/types/datetime-picker/datetime-picker.d.ts.map +1 -1
  676. package/dist/types/datetime-range-picker/datetime-range-picker.d.ts.map +1 -1
  677. package/dist/types/description-list/description-list-parts.d.ts.map +1 -1
  678. package/dist/types/description-list/description-list.d.ts.map +1 -1
  679. package/dist/types/detail-panel/detail-panel-parts.d.ts +2 -1
  680. package/dist/types/detail-panel/detail-panel-parts.d.ts.map +1 -1
  681. package/dist/types/detail-panel/detail-panel.d.ts.map +1 -1
  682. package/dist/types/dialog/dialog-demo.d.ts +8 -0
  683. package/dist/types/dialog/dialog-demo.d.ts.map +1 -1
  684. package/dist/types/dialog/dialog-parts.d.ts.map +1 -1
  685. package/dist/types/dialog/dialog.d.ts.map +1 -1
  686. package/dist/types/dialog/dialog.types.d.ts +12 -2
  687. package/dist/types/dialog/dialog.types.d.ts.map +1 -1
  688. package/dist/types/divider/divider.d.ts.map +1 -1
  689. package/dist/types/drawer/drawer-parts.d.ts.map +1 -1
  690. package/dist/types/drawer/drawer.d.ts +1 -1
  691. package/dist/types/drawer/drawer.d.ts.map +1 -1
  692. package/dist/types/drawer/drawer.types.d.ts +6 -0
  693. package/dist/types/drawer/drawer.types.d.ts.map +1 -1
  694. package/dist/types/entity-picker/entity-picker-control.d.ts.map +1 -1
  695. package/dist/types/entity-picker/entity-picker-option-parts.d.ts +13 -0
  696. package/dist/types/entity-picker/entity-picker-option-parts.d.ts.map +1 -0
  697. package/dist/types/entity-picker/entity-picker-popup.d.ts +0 -7
  698. package/dist/types/entity-picker/entity-picker-popup.d.ts.map +1 -1
  699. package/dist/types/entity-picker/entity-picker.types.d.ts +8 -0
  700. package/dist/types/entity-picker/entity-picker.types.d.ts.map +1 -1
  701. package/dist/types/entity-picker/index.d.ts +1 -0
  702. package/dist/types/entity-picker/index.d.ts.map +1 -1
  703. package/dist/types/event-calendar/event-calendar-event.d.ts.map +1 -1
  704. package/dist/types/event-calendar/event-calendar-list.d.ts.map +1 -1
  705. package/dist/types/event-calendar/event-calendar-month.d.ts.map +1 -1
  706. package/dist/types/event-calendar/event-calendar-time-grid.d.ts.map +1 -1
  707. package/dist/types/event-calendar/event-calendar.d.ts +1 -1
  708. package/dist/types/event-calendar/event-calendar.d.ts.map +1 -1
  709. package/dist/types/event-calendar/event-calendar.types.d.ts +6 -0
  710. package/dist/types/event-calendar/event-calendar.types.d.ts.map +1 -1
  711. package/dist/types/field/field-parts.d.ts.map +1 -1
  712. package/dist/types/field/field.d.ts.map +1 -1
  713. package/dist/types/field-group/field-group-parts.d.ts.map +1 -1
  714. package/dist/types/field-group/field-group.d.ts.map +1 -1
  715. package/dist/types/filter-bar/filter-bar-rules.d.ts.map +1 -1
  716. package/dist/types/filter-bar/filter-bar.d.ts.map +1 -1
  717. package/dist/types/form/form-parts.d.ts.map +1 -1
  718. package/dist/types/form/form.d.ts.map +1 -1
  719. package/dist/types/fullscreen/fullscreen.d.ts.map +1 -1
  720. package/dist/types/grid/grid.d.ts.map +1 -1
  721. package/dist/types/highlight/highlight.d.ts.map +1 -1
  722. package/dist/types/hover-card/hover-card.d.ts.map +1 -1
  723. package/dist/types/i18n/slotted-provider.d.ts +6 -0
  724. package/dist/types/i18n/slotted-provider.d.ts.map +1 -1
  725. package/dist/types/icon/glyph.d.ts.map +1 -1
  726. package/dist/types/icon/icon.d.ts.map +1 -1
  727. package/dist/types/icon/icon.types.d.ts +1 -1
  728. package/dist/types/icon/icon.types.d.ts.map +1 -1
  729. package/dist/types/image/image.d.ts.map +1 -1
  730. package/dist/types/import-export-center/import-export-center.d.ts.map +1 -1
  731. package/dist/types/index.d.ts +1 -0
  732. package/dist/types/index.d.ts.map +1 -1
  733. package/dist/types/inline/inline.d.ts.map +1 -1
  734. package/dist/types/inline-message/index.d.ts +2 -2
  735. package/dist/types/inline-message/index.d.ts.map +1 -1
  736. package/dist/types/inline-message/inline-message-defaults.d.ts +1 -1
  737. package/dist/types/inline-message/inline-message-defaults.d.ts.map +1 -1
  738. package/dist/types/inline-message/inline-message.d.ts +11 -3
  739. package/dist/types/inline-message/inline-message.d.ts.map +1 -1
  740. package/dist/types/inline-message/inline-message.types.d.ts +3 -1
  741. package/dist/types/inline-message/inline-message.types.d.ts.map +1 -1
  742. package/dist/types/kbd/key-element.d.ts.map +1 -1
  743. package/dist/types/kbd/shortcut.d.ts.map +1 -1
  744. package/dist/types/link/link.d.ts.map +1 -1
  745. package/dist/types/link/link.types.d.ts +2 -1
  746. package/dist/types/link/link.types.d.ts.map +1 -1
  747. package/dist/types/list/index.d.ts +1 -1
  748. package/dist/types/list/index.d.ts.map +1 -1
  749. package/dist/types/list/list-parts.d.ts +1 -1
  750. package/dist/types/list/list-parts.d.ts.map +1 -1
  751. package/dist/types/list/list.d.ts.map +1 -1
  752. package/dist/types/list/list.types.d.ts +12 -0
  753. package/dist/types/list/list.types.d.ts.map +1 -1
  754. package/dist/types/list-item/list-item-content.d.ts.map +1 -1
  755. package/dist/types/list-item/list-item-parts.d.ts.map +1 -1
  756. package/dist/types/list-item/list-item.d.ts.map +1 -1
  757. package/dist/types/list-item/list-item.types.d.ts +3 -2
  758. package/dist/types/list-item/list-item.types.d.ts.map +1 -1
  759. package/dist/types/listbox/listbox-parts.d.ts.map +1 -1
  760. package/dist/types/listbox/listbox.d.ts.map +1 -1
  761. package/dist/types/loading-overlay/loading-overlay.d.ts.map +1 -1
  762. package/dist/types/markdown/markdown.d.ts.map +1 -1
  763. package/dist/types/menu/index.d.ts +1 -1
  764. package/dist/types/menu/index.d.ts.map +1 -1
  765. package/dist/types/menu/menu-defaults.d.ts.map +1 -1
  766. package/dist/types/menu/menu-items.d.ts.map +1 -1
  767. package/dist/types/menu/menu-parts.d.ts.map +1 -1
  768. package/dist/types/menu/menu.d.ts +1 -1
  769. package/dist/types/menu/menu.d.ts.map +1 -1
  770. package/dist/types/menu/menu.types.d.ts +13 -1
  771. package/dist/types/menu/menu.types.d.ts.map +1 -1
  772. package/dist/types/menubar/menubar.d.ts.map +1 -1
  773. package/dist/types/message/bubble.d.ts.map +1 -1
  774. package/dist/types/message/message-parts.d.ts.map +1 -1
  775. package/dist/types/message/message.d.ts.map +1 -1
  776. package/dist/types/message/message.types.d.ts +1 -1
  777. package/dist/types/message/message.types.d.ts.map +1 -1
  778. package/dist/types/message-scroller/message-scroller.d.ts.map +1 -1
  779. package/dist/types/multi-select/multi-select-chips.d.ts.map +1 -1
  780. package/dist/types/multi-select/multi-select-collection.d.ts +0 -2
  781. package/dist/types/multi-select/multi-select-collection.d.ts.map +1 -1
  782. package/dist/types/multi-select/multi-select-items.d.ts.map +1 -1
  783. package/dist/types/multi-select/multi-select-parts.d.ts.map +1 -1
  784. package/dist/types/multi-select/multi-select.d.ts.map +1 -1
  785. package/dist/types/navigation-menu/navigation-menu-parts.d.ts.map +1 -1
  786. package/dist/types/navigation-menu/navigation-menu.d.ts.map +1 -1
  787. package/dist/types/navigation-menu/navigation-menu.types.d.ts +2 -1
  788. package/dist/types/navigation-menu/navigation-menu.types.d.ts.map +1 -1
  789. package/dist/types/notification-center/notification-center.d.ts.map +1 -1
  790. package/dist/types/notification-center/notification-center.types.d.ts +1 -1
  791. package/dist/types/notification-center/notification-center.types.d.ts.map +1 -1
  792. package/dist/types/number-field/number-field.d.ts.map +1 -1
  793. package/dist/types/otp-input/otp-input.d.ts.map +1 -1
  794. package/dist/types/page/page.d.ts.map +1 -1
  795. package/dist/types/page-header/page-header-defaults.d.ts +1 -1
  796. package/dist/types/page-header/page-header-defaults.d.ts.map +1 -1
  797. package/dist/types/page-header/page-header-parts.d.ts +3 -3
  798. package/dist/types/page-header/page-header-parts.d.ts.map +1 -1
  799. package/dist/types/page-header/page-header.d.ts +1 -1
  800. package/dist/types/page-header/page-header.d.ts.map +1 -1
  801. package/dist/types/page-header/page-header.types.d.ts +11 -1
  802. package/dist/types/page-header/page-header.types.d.ts.map +1 -1
  803. package/dist/types/pagination/pagination-parts.d.ts.map +1 -1
  804. package/dist/types/pagination/pagination.d.ts.map +1 -1
  805. package/dist/types/popover/popover-parts.d.ts.map +1 -1
  806. package/dist/types/press-selection/index.d.ts +3 -0
  807. package/dist/types/press-selection/index.d.ts.map +1 -0
  808. package/dist/types/press-selection/press-selection.d.ts +23 -0
  809. package/dist/types/press-selection/press-selection.d.ts.map +1 -0
  810. package/dist/types/progress-indicator/progress-bar.d.ts.map +1 -1
  811. package/dist/types/progress-indicator/progress-circle.d.ts.map +1 -1
  812. package/dist/types/progress-indicator/progress-indicator.types.d.ts +1 -1
  813. package/dist/types/progress-indicator/progress-indicator.types.d.ts.map +1 -1
  814. package/dist/types/progress-indicator/progress-parts.d.ts.map +1 -1
  815. package/dist/types/progress-indicator/use-progress-indicator.d.ts +6 -0
  816. package/dist/types/progress-indicator/use-progress-indicator.d.ts.map +1 -1
  817. package/dist/types/prompt-composer/index.d.ts +1 -1
  818. package/dist/types/prompt-composer/index.d.ts.map +1 -1
  819. package/dist/types/prompt-composer/prompt-composer-defaults.d.ts.map +1 -1
  820. package/dist/types/prompt-composer/prompt-composer.d.ts +1 -1
  821. package/dist/types/prompt-composer/prompt-composer.d.ts.map +1 -1
  822. package/dist/types/prompt-composer/prompt-composer.types.d.ts +9 -0
  823. package/dist/types/prompt-composer/prompt-composer.types.d.ts.map +1 -1
  824. package/dist/types/prose/prose-parts.d.ts.map +1 -1
  825. package/dist/types/prose/prose-scroll.d.ts.map +1 -1
  826. package/dist/types/prose/prose.d.ts.map +1 -1
  827. package/dist/types/radio-group/radio-group-parts.d.ts.map +1 -1
  828. package/dist/types/radio-group/radio-group.d.ts.map +1 -1
  829. package/dist/types/rating/rating-display.d.ts.map +1 -1
  830. package/dist/types/rating/rating-summary.d.ts.map +1 -1
  831. package/dist/types/rating/rating.d.ts.map +1 -1
  832. package/dist/types/rating/rating.types.d.ts +1 -1
  833. package/dist/types/rating/rating.types.d.ts.map +1 -1
  834. package/dist/types/result-state/result-state-parts.d.ts.map +1 -1
  835. package/dist/types/result-state/result-state.d.ts.map +1 -1
  836. package/dist/types/saved-views/saved-views.d.ts.map +1 -1
  837. package/dist/types/scroll-area/scroll-area.d.ts.map +1 -1
  838. package/dist/types/section/index.d.ts +1 -1
  839. package/dist/types/section/index.d.ts.map +1 -1
  840. package/dist/types/section/section-parts.d.ts +9 -1
  841. package/dist/types/section/section-parts.d.ts.map +1 -1
  842. package/dist/types/section/section.d.ts.map +1 -1
  843. package/dist/types/segmented-control/index.d.ts +1 -1
  844. package/dist/types/segmented-control/index.d.ts.map +1 -1
  845. package/dist/types/segmented-control/segmented-control-defaults.d.ts.map +1 -1
  846. package/dist/types/segmented-control/segmented-control-parts.d.ts.map +1 -1
  847. package/dist/types/segmented-control/segmented-control.d.ts +1 -1
  848. package/dist/types/segmented-control/segmented-control.d.ts.map +1 -1
  849. package/dist/types/segmented-control/segmented-control.types.d.ts +10 -0
  850. package/dist/types/segmented-control/segmented-control.types.d.ts.map +1 -1
  851. package/dist/types/select/select-collection.d.ts +0 -2
  852. package/dist/types/select/select-collection.d.ts.map +1 -1
  853. package/dist/types/select/select-items.d.ts.map +1 -1
  854. package/dist/types/select/select-parts.d.ts.map +1 -1
  855. package/dist/types/select/select-tags.d.ts.map +1 -1
  856. package/dist/types/select/select.d.ts.map +1 -1
  857. package/dist/types/side-navigation/side-navigation-parts.d.ts.map +1 -1
  858. package/dist/types/side-navigation/side-navigation.d.ts.map +1 -1
  859. package/dist/types/side-navigation/side-navigation.types.d.ts +2 -1
  860. package/dist/types/side-navigation/side-navigation.types.d.ts.map +1 -1
  861. package/dist/types/skeleton/skeleton-region.d.ts.map +1 -1
  862. package/dist/types/skeleton/skeleton-text.d.ts.map +1 -1
  863. package/dist/types/skeleton/skeleton.d.ts.map +1 -1
  864. package/dist/types/slider/slider.d.ts.map +1 -1
  865. package/dist/types/sparkline/sparkline.d.ts.map +1 -1
  866. package/dist/types/sparkline/sparkline.types.d.ts +3 -1
  867. package/dist/types/sparkline/sparkline.types.d.ts.map +1 -1
  868. package/dist/types/split-button/split-button-parts.d.ts.map +1 -1
  869. package/dist/types/split-button/split-button.d.ts.map +1 -1
  870. package/dist/types/splitter/splitter.d.ts.map +1 -1
  871. package/dist/types/stack/stack.d.ts.map +1 -1
  872. package/dist/types/stat-card/stat-card-delta.d.ts.map +1 -1
  873. package/dist/types/stat-card/stat-card-parts.d.ts.map +1 -1
  874. package/dist/types/stat-card/stat-card-value.d.ts.map +1 -1
  875. package/dist/types/stat-card/stat-card.d.ts.map +1 -1
  876. package/dist/types/stat-card/stat-card.types.d.ts +3 -3
  877. package/dist/types/stat-card/stat-card.types.d.ts.map +1 -1
  878. package/dist/types/status-indicator/status-indicator.d.ts.map +1 -1
  879. package/dist/types/stepper/stepper-parts.d.ts.map +1 -1
  880. package/dist/types/stepper/stepper.d.ts.map +1 -1
  881. package/dist/types/switch/switch.d.ts.map +1 -1
  882. package/dist/types/table/index.d.ts +2 -2
  883. package/dist/types/table/index.d.ts.map +1 -1
  884. package/dist/types/table/table-content.d.ts.map +1 -1
  885. package/dist/types/table/table-defaults.d.ts.map +1 -1
  886. package/dist/types/table/table-filter.d.ts.map +1 -1
  887. package/dist/types/table/table-parts.d.ts +12 -2
  888. package/dist/types/table/table-parts.d.ts.map +1 -1
  889. package/dist/types/table/table.d.ts +1 -1
  890. package/dist/types/table/table.d.ts.map +1 -1
  891. package/dist/types/table/table.types.d.ts +43 -1
  892. package/dist/types/table/table.types.d.ts.map +1 -1
  893. package/dist/types/table-of-contents/table-of-contents-demo.d.ts.map +1 -1
  894. package/dist/types/table-of-contents/table-of-contents-parts.d.ts.map +1 -1
  895. package/dist/types/table-of-contents/table-of-contents.d.ts.map +1 -1
  896. package/dist/types/table-of-contents/table-of-contents.types.d.ts +2 -1
  897. package/dist/types/table-of-contents/table-of-contents.types.d.ts.map +1 -1
  898. package/dist/types/tabs/tabs-parts.d.ts +2 -4
  899. package/dist/types/tabs/tabs-parts.d.ts.map +1 -1
  900. package/dist/types/tabs/tabs.d.ts +1 -1
  901. package/dist/types/tabs/tabs.d.ts.map +1 -1
  902. package/dist/types/tabs/tabs.types.d.ts +18 -0
  903. package/dist/types/tabs/tabs.types.d.ts.map +1 -1
  904. package/dist/types/tag/tag-button.d.ts.map +1 -1
  905. package/dist/types/tag/tag-chip.d.ts +2 -2
  906. package/dist/types/tag/tag-chip.d.ts.map +1 -1
  907. package/dist/types/tag/tag-group.d.ts.map +1 -1
  908. package/dist/types/tag/tag-link.d.ts.map +1 -1
  909. package/dist/types/tag/tag-toggle.d.ts.map +1 -1
  910. package/dist/types/tag/tag.types.d.ts +3 -2
  911. package/dist/types/tag/tag.types.d.ts.map +1 -1
  912. package/dist/types/tags-input/tags-input-chips.d.ts.map +1 -1
  913. package/dist/types/tags-input/tags-input.d.ts +7 -1
  914. package/dist/types/tags-input/tags-input.d.ts.map +1 -1
  915. package/dist/types/tags-input/tags-input.types.d.ts +10 -0
  916. package/dist/types/tags-input/tags-input.types.d.ts.map +1 -1
  917. package/dist/types/text-field/text-field.d.ts.map +1 -1
  918. package/dist/types/textarea/textarea.d.ts.map +1 -1
  919. package/dist/types/time-field/time-field.d.ts.map +1 -1
  920. package/dist/types/time-picker/time-picker.d.ts.map +1 -1
  921. package/dist/types/time-range-picker/time-range-picker.d.ts.map +1 -1
  922. package/dist/types/timeline/timeline-parts.d.ts.map +1 -1
  923. package/dist/types/timeline/timeline.d.ts.map +1 -1
  924. package/dist/types/timeline/timeline.types.d.ts +1 -1
  925. package/dist/types/timeline/timeline.types.d.ts.map +1 -1
  926. package/dist/types/toast/toast-parts.d.ts.map +1 -1
  927. package/dist/types/toast/toast.d.ts.map +1 -1
  928. package/dist/types/toast/toast.types.d.ts +1 -1
  929. package/dist/types/toast/toast.types.d.ts.map +1 -1
  930. package/dist/types/toggle/toggle.d.ts.map +1 -1
  931. package/dist/types/toggle/toggle.types.d.ts +1 -1
  932. package/dist/types/toggle/toggle.types.d.ts.map +1 -1
  933. package/dist/types/toggle-group/toggle-group-parts.d.ts.map +1 -1
  934. package/dist/types/toggle-group/toggle-group.d.ts.map +1 -1
  935. package/dist/types/toggle-group/toggle-group.types.d.ts +6 -1
  936. package/dist/types/toggle-group/toggle-group.types.d.ts.map +1 -1
  937. package/dist/types/toolbar/toolbar-overflow.d.ts.map +1 -1
  938. package/dist/types/toolbar/toolbar-parts.d.ts.map +1 -1
  939. package/dist/types/toolbar/toolbar.d.ts.map +1 -1
  940. package/dist/types/toolbar/toolbar.types.d.ts +2 -2
  941. package/dist/types/tooltip/tooltip-parts.d.ts.map +1 -1
  942. package/dist/types/top-navigation/top-navigation-parts.d.ts.map +1 -1
  943. package/dist/types/top-navigation/top-navigation.d.ts.map +1 -1
  944. package/dist/types/top-navigation/top-navigation.types.d.ts +8 -7
  945. package/dist/types/top-navigation/top-navigation.types.d.ts.map +1 -1
  946. package/dist/types/tour/tour-parts.d.ts.map +1 -1
  947. package/dist/types/tour/tour.d.ts.map +1 -1
  948. package/dist/types/transfer/transfer.d.ts.map +1 -1
  949. package/dist/types/tree/tree-parts.d.ts.map +1 -1
  950. package/dist/types/tree/tree.d.ts.map +1 -1
  951. package/dist/types/typography/heading.d.ts +2 -2
  952. package/dist/types/typography/heading.d.ts.map +1 -1
  953. package/dist/types/typography/text.d.ts.map +1 -1
  954. package/dist/types/typography/typography.types.d.ts +1 -1
  955. package/dist/types/typography/typography.types.d.ts.map +1 -1
  956. package/dist/types/upload/upload-viewer.d.ts.map +1 -1
  957. package/dist/types/upload/upload.d.ts.map +1 -1
  958. package/dist/types/visually-hidden/visually-hidden.d.ts.map +1 -1
  959. package/dist/types/wizard/wizard-parts.d.ts.map +1 -1
  960. package/dist/types/wizard/wizard.d.ts.map +1 -1
  961. package/dist/typography-BESqb4C0.js +93 -0
  962. package/dist/typography.js +1 -1
  963. package/dist/upload-N2-nyO8x.js +648 -0
  964. package/dist/upload.js +1 -1
  965. package/dist/visually-hidden-BUSrFZ1_.js +15 -0
  966. package/dist/visually-hidden.js +1 -1
  967. package/dist/wizard-CK1x2fs3.js +838 -0
  968. package/dist/wizard.js +1 -1
  969. package/package.json +24 -11
  970. package/dist/accordion-D-YuMJzk.js +0 -143
  971. package/dist/action-bar-C7cGnEyJ.js +0 -282
  972. package/dist/action-sheet-D8Glxl7l.js +0 -347
  973. package/dist/alert-CP62p9Ul.js +0 -159
  974. package/dist/app-shell-CXwma4XA.js +0 -836
  975. package/dist/aspect-ratio-C76l-aoY.js +0 -40
  976. package/dist/attachment-DdBbQcEB.js +0 -302
  977. package/dist/avatar-BnlE5jjr.js +0 -100
  978. package/dist/avatar-group-4rBj99tz.js +0 -47
  979. package/dist/badge-C6rbwVpu.js +0 -94
  980. package/dist/breadcrumb-Bf01N4wK.js +0 -218
  981. package/dist/button-DakQ-7Tm.js +0 -97
  982. package/dist/button-group-Det_nYor.js +0 -50
  983. package/dist/calendar-B3mio8iQ.js +0 -387
  984. package/dist/card-CpVu8PyZ.js +0 -102
  985. package/dist/carousel-BPi-Y5yF.js +0 -498
  986. package/dist/cascader-CARCYdHh.js +0 -1097
  987. package/dist/checkbox-CwUOc-3u.js +0 -139
  988. package/dist/checkbox-group-BYTjgAcX.js +0 -108
  989. package/dist/code-block-CFHf8uTm.js +0 -269
  990. package/dist/collapsible-CGo49NNW.js +0 -217
  991. package/dist/color-picker-BlPR4g4H.js +0 -504
  992. package/dist/column-manager-CNZ7Xk5_.js +0 -585
  993. package/dist/combobox-C46GRqAA.js +0 -852
  994. package/dist/command-palette-BqRyNR9Y.js +0 -707
  995. package/dist/container-CjxY6rYv.js +0 -46
  996. package/dist/context-menu-DMiHdggw.js +0 -150
  997. package/dist/currency-field-B7OZ0hk7.js +0 -436
  998. package/dist/dashboard-grid-nfhEewA4.js +0 -1005
  999. package/dist/data-grid-BUgOJuGp.js +0 -3648
  1000. package/dist/data-list-2xfDpHVC.js +0 -561
  1001. package/dist/date-field-D_kLLTfL.js +0 -279
  1002. package/dist/date-picker-DQ5SIhdA.js +0 -264
  1003. package/dist/date-range-picker-lpB08hK_.js +0 -471
  1004. package/dist/datetime-field-T1gNdJ7t.js +0 -411
  1005. package/dist/datetime-picker-0F0kDW-8.js +0 -629
  1006. package/dist/datetime-range-picker-ClnEleth.js +0 -994
  1007. package/dist/description-list-IYLnFgHT.js +0 -232
  1008. package/dist/dialog-Dmy-m_pe.js +0 -499
  1009. package/dist/divider-D36Jqo0J.js +0 -33
  1010. package/dist/drawer-Ci3wuCVa.js +0 -758
  1011. package/dist/entity-picker-UGhbVwkC.js +0 -1111
  1012. package/dist/field-BJh5HI7w.js +0 -365
  1013. package/dist/field-group-BDaspQPh.js +0 -138
  1014. package/dist/filter-bar-b2Q9BZHf.js +0 -1335
  1015. package/dist/fullscreen-CF0UN4mv.js +0 -187
  1016. package/dist/grid-CIkG_2IQ.js +0 -25
  1017. package/dist/highlight-0Qw23QPp.js +0 -57
  1018. package/dist/hover-card-CSDbA6zd.js +0 -214
  1019. package/dist/icon-T9Yt4tnm.js +0 -73
  1020. package/dist/icon-button-TnvMhK4o.js +0 -211
  1021. package/dist/import-export-center-D8xbCLWs.js +0 -813
  1022. package/dist/inline-D_IjcJ1n.js +0 -16
  1023. package/dist/inline-message-C4a-A2mw.js +0 -91
  1024. package/dist/kbd-eFSWTKxN.js +0 -100
  1025. package/dist/link-TjvRl2VQ.js +0 -87
  1026. package/dist/list-C1Y8MWp2.js +0 -87
  1027. package/dist/list-item-DN_mcouU.js +0 -123
  1028. package/dist/listbox-4WvqR0JF.js +0 -615
  1029. package/dist/loading-overlay-B83XFctM.js +0 -208
  1030. package/dist/markdown-CpfDn1LF.js +0 -295
  1031. package/dist/menu-parts-BQej6eU9.js +0 -787
  1032. package/dist/menubar-CtGavUTO.js +0 -156
  1033. package/dist/message-Cp0rLCyW.js +0 -430
  1034. package/dist/message-scroller-UZjFpflz.js +0 -214
  1035. package/dist/multi-select-CfzsvAeI.js +0 -1193
  1036. package/dist/navigation-menu-parts-D8qFAwHX.js +0 -492
  1037. package/dist/notification-center-C4pEHJ3h.js +0 -485
  1038. package/dist/number-field-J_koud1r.js +0 -342
  1039. package/dist/page-header-CWEBfMGq.js +0 -367
  1040. package/dist/page-kQgLctsA.js +0 -167
  1041. package/dist/pagination-DWJc521r.js +0 -292
  1042. package/dist/popover-DE22lSpV.js +0 -476
  1043. package/dist/progress-indicator-DwvUSFFs.js +0 -269
  1044. package/dist/prompt-composer-B7MMcER0.js +0 -259
  1045. package/dist/prose-CkeNYS0X.js +0 -91
  1046. package/dist/radio-group-BFpjhDkV.js +0 -140
  1047. package/dist/rating-D1EsADFM.js +0 -459
  1048. package/dist/react-dom-DzrKNxo6.js +0 -273
  1049. package/dist/result-state-CZsQfdN4.js +0 -126
  1050. package/dist/saved-views-BueW-Lyb.js +0 -446
  1051. package/dist/scroll-area-BriwmvYY.js +0 -111
  1052. package/dist/section-Be7dX9MC.js +0 -176
  1053. package/dist/segmented-control-Cy_5D3Nj.js +0 -149
  1054. package/dist/select-UTwKjheK.js +0 -957
  1055. package/dist/side-navigation-YUiJRpng.js +0 -729
  1056. package/dist/skeleton-2LSpg84Z.js +0 -143
  1057. package/dist/slider-B432T6nD.js +0 -256
  1058. package/dist/sparkline-rY7HIFE4.js +0 -131
  1059. package/dist/split-button-DHF3v3PJ.js +0 -135
  1060. package/dist/splitter-Bg3UgmbV.js +0 -289
  1061. package/dist/stack-BEFavbRs.js +0 -15
  1062. package/dist/stat-card-BG7uLytP.js +0 -244
  1063. package/dist/status-indicator-BOjpXkU5.js +0 -73
  1064. package/dist/stepper-DQJuRWqR.js +0 -253
  1065. package/dist/switch-4MHwKmkz.js +0 -138
  1066. package/dist/table-CzBIw9ng.js +0 -970
  1067. package/dist/table-of-contents-DfAeYtFJ.js +0 -461
  1068. package/dist/tabs-DQ36APY-.js +0 -343
  1069. package/dist/tag-DjtW53xN.js +0 -365
  1070. package/dist/tags-input-DLdHLWrH.js +0 -625
  1071. package/dist/text-field-BktZbmzD.js +0 -195
  1072. package/dist/textarea-JAK2RJl0.js +0 -99
  1073. package/dist/time-field-DCG_VtGO.js +0 -355
  1074. package/dist/time-picker-DuT1tf5-.js +0 -396
  1075. package/dist/time-range-picker-HwBvrrXN.js +0 -745
  1076. package/dist/timeline-DH_02ysz.js +0 -421
  1077. package/dist/toggle-CBFhM4Jh.js +0 -64
  1078. package/dist/toggle-group-DQBlI1TV.js +0 -140
  1079. package/dist/toolbar-CDQTydDx.js +0 -240
  1080. package/dist/tooltip-BggqPDcW.js +0 -393
  1081. package/dist/top-navigation-COQZsNqW.js +0 -740
  1082. package/dist/tour-C11DmYTC.js +0 -799
  1083. package/dist/transfer-JA9TWjAw.js +0 -596
  1084. package/dist/tree-C6fYJqT9.js +0 -783
  1085. package/dist/typography-B2iaigEC.js +0 -92
  1086. package/dist/upload-Bq_UiyMr.js +0 -613
  1087. package/dist/visually-hidden-CE6u5JLW.js +0 -14
  1088. package/dist/wizard-B4GrlEqh.js +0 -815
@@ -788,6 +788,7 @@ const COLUMNS: GridColumn<Shipment>[] = [
788
788
  ];
789
789
 
790
790
  const ROWS = shipments(12);
791
+ const DISABLED = ['SH-3305'];
791
792
 
792
793
  export default function DataGridSelection() {
793
794
  const [value, setValue] = useState<string | readonly string[] | null>(['SH-3302', 'SH-3303']);
@@ -799,7 +800,7 @@ export default function DataGridSelection() {
799
800
  columns={COLUMNS}
800
801
  rowKey="id"
801
802
  rows={ROWS}
802
- disabledKeys={['SH-3305']}
803
+ disabledKeys={DISABLED}
803
804
  footer={
804
805
  <Text size="sm" tone="muted">
805
806
  {count} selected
@@ -2109,7 +2110,7 @@ Excerpt — not a complete module
2109
2110
 
2110
2111
  ### Load more
2111
2112
 
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
+ With an unknown total the footer states the range without one. onLoadMore is called on its own as the reader nears the end, and the footer says a page is loading; it offers a control only to retry a page that failed (loadMoreFailed). loadMoreTrigger="button" asks only from a Load more control, "both" does the two.
2113
2114
 
2114
2115
  Excerpt — not a complete module
2115
2116
 
@@ -2124,7 +2125,7 @@ Excerpt — not a complete module
2124
2125
 
2125
2126
  ### Empty, no results, error, loading
2126
2127
 
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
+ 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. Zero rows is an answer too: once the grid has drawn the empty state, loading keeps it and draws no skeleton, and loading="initial" asks for the skeleton anyway.
2128
2129
 
2129
2130
  Excerpt — not a complete module
2130
2131
 
@@ -2328,6 +2329,11 @@ A renderer draws anything: an avatar beside the name, a thumbnail in a custom co
2328
2329
  Excerpt — not a complete module
2329
2330
 
2330
2331
  ```tsx
2332
+ const MEDIA_COLUMNS: DataGridColumn<Shipment>[] = [
2333
+ ...columns,
2334
+ { id: 'photo', label: 'Cargo', kind: 'custom', sortable: false },
2335
+ ];
2336
+
2331
2337
  <DataGrid
2332
2338
  cellRenderers={{
2333
2339
  customer: ({ row }) => (
@@ -2338,7 +2344,7 @@ Excerpt — not a complete module
2338
2344
  ),
2339
2345
  photo: ({ row }) => <Image alt="" radius="sm" ratio="landscape" src={row.photo} />,
2340
2346
  }}
2341
- columns={[...columns, { id: 'photo', label: 'Cargo', kind: 'custom', sortable: false }]}
2347
+ columns={MEDIA_COLUMNS}
2342
2348
  rowHeight={56}
2343
2349
  />;
2344
2350
  ```
@@ -52,6 +52,10 @@
52
52
  "popin",
53
53
  "scroll"
54
54
  ],
55
+ "resizeMode": [
56
+ "live",
57
+ "deferred"
58
+ ],
55
59
  "activatable": [
56
60
  true,
57
61
  false
@@ -98,6 +102,8 @@
98
102
  "skeletonRows": 8,
99
103
  "filterDebounce": 300,
100
104
  "loadMoreThreshold": 20,
105
+ "loadMoreTrigger": "scroll",
106
+ "resizeMode": "live",
101
107
  "pageSizes": [
102
108
  25,
103
109
  50,
@@ -150,6 +156,7 @@
150
156
  "column-menu",
151
157
  "column-menu-description",
152
158
  "resizer",
159
+ "resize-guide",
153
160
  "drop-indicator",
154
161
  "filter-row",
155
162
  "filter-cell",
@@ -271,6 +278,12 @@
271
278
  "required": false,
272
279
  "purpose": "The pointer’s handle on the trailing edge; a double press fits the column."
273
280
  },
281
+ {
282
+ "part": "resize-guide",
283
+ "element": "div[aria-hidden]",
284
+ "required": false,
285
+ "purpose": "Under resizeMode=\"deferred\", the line a drag moves by translate across the scroller’s height; the width is applied on release."
286
+ },
274
287
  {
275
288
  "part": "drop-indicator",
276
289
  "element": "div",
@@ -496,7 +509,7 @@
496
509
  "type": "GridColumn<Row>[]",
497
510
  "defaultValue": "—",
498
511
  "appliesTo": "DataGrid",
499
- "description": "The column model: id, label, description, kind, accessor, format, compare, width, minWidth, maxWidth, flex, priority, sortable, filterable, searchable, editable, resizable, reorderable, hideable, rowHeader, options, aggregate, validate, parse — and help, a node for the column’s help popover."
512
+ "description": "The column model: id, label, description, kind, accessor, format, compare, width, minWidth, maxWidth, flex, priority, sortable, filterable, searchable, editable, resizable, reorderable, hideable, rowHeader, pinned (end by default for kind actions), options, aggregate, validate, parse — and help, a node for the column’s help popover."
500
513
  },
501
514
  {
502
515
  "name": "description",
@@ -552,14 +565,14 @@
552
565
  "type": "boolean",
553
566
  "defaultValue": "—",
554
567
  "appliesTo": "DataGrid",
555
- "description": "Whether a page past this one exists when the total is unknown; the footer offers Load more."
568
+ "description": "Whether a page past this one exists when the total is unknown; loadMoreTrigger decides what asks for it."
556
569
  },
557
570
  {
558
571
  "name": "loading",
559
- "type": "boolean",
572
+ "type": "boolean | 'initial' | 'refresh'",
560
573
  "defaultValue": "false",
561
574
  "appliesTo": "DataGrid",
562
- "description": "Skeleton rows with no rows to keep; aria-busy and a dimmed body over rows already shown."
575
+ "description": "Skeleton rows with no answer to keep; aria-busy over an answer already drawn — rows, which dim, or the empty state, which stays. true is initial until the grid has drawn an answer, and refresh after; rows emptied while a load starts wait in the skeleton."
563
576
  },
564
577
  {
565
578
  "name": "error",
@@ -904,6 +917,27 @@
904
917
  "appliesTo": "DataGrid",
905
918
  "description": "Asked for the next page when hasMore is true."
906
919
  },
920
+ {
921
+ "name": "resizeMode",
922
+ "type": "'live' | 'deferred'",
923
+ "defaultValue": "live",
924
+ "appliesTo": "DataGrid",
925
+ "description": "How a pointer drag of a resizer applies the width: on every move, or once on release while a guide (the resize-guide part) follows the pointer and the rows stay still. Escape during a deferred drag leaves the width. The keyboard step and autofit apply at once in either mode."
926
+ },
927
+ {
928
+ "name": "loadMoreTrigger",
929
+ "type": "'scroll' | 'button' | 'both'",
930
+ "defaultValue": "scroll",
931
+ "appliesTo": "DataGrid",
932
+ "description": "What asks for the next page: nearing the end, with a loading status in the footer; a Load more control; or both."
933
+ },
934
+ {
935
+ "name": "loadMoreFailed",
936
+ "type": "boolean",
937
+ "defaultValue": "false",
938
+ "appliesTo": "DataGrid",
939
+ "description": "The last page asked for failed: the automatic request stops and the footer offers Try again."
940
+ },
907
941
  {
908
942
  "name": "onRetry",
909
943
  "type": "() => void",
@@ -1086,7 +1120,7 @@
1086
1120
  "type": "component",
1087
1121
  "defaultValue": "—",
1088
1122
  "appliesTo": "Application",
1089
- "description": "Sets variant, striped, stickyHeader, stickyTo, selectionMode, editMode, filterRow, virtualize, rowHeight, columnOverflow, overscan, pageSizes, filterDebounce, loadMoreThreshold and skeletonRows once for a subtree. A grid that states one itself still wins. Its words and its locale come from the language in force (SlottedProvider)."
1123
+ "description": "Sets variant, striped, stickyHeader, stickyTo, selectionMode, editMode, filterRow, virtualize, rowHeight, columnOverflow, overscan, pageSizes, filterDebounce, loadMoreThreshold, loadMoreTrigger, resizeMode and skeletonRows once for a subtree. A grid that states one itself still wins. Its words and its locale come from the language in force (SlottedProvider)."
1090
1124
  },
1091
1125
  {
1092
1126
  "name": "@slotted/core/grid",
@@ -1189,6 +1223,7 @@
1189
1223
  }
1190
1224
  ],
1191
1225
  "accessibility": [
1226
+ "`columns`, `disabledKeys` and a function `rowKey` are compared by identity: a new array or function on a render of the parent re-renders every mounted row, so declare them at module scope or memoise them. The renderers — `cellRenderers`, `editorRenderers`, `renderCell`, `renderEditor`, `renderHeader`, `renderGroup`, `renderDetail` — `messages` and `tree` are read when a row renders and may be written inline. A row renders again for its own row object, selection, cursor, edit or expansion, and for a change of `columns` or the language; a renderer whose output reads state outside its row is refreshed by memoising `columns` on that state.",
1192
1227
  "The root is role=\"grid\": a composite widget with one tab stop. The current cell — or the single simple widget inside it, a link, a button or a checkbox — is the only element with tabindex=\"0\"; Tab enters there and leaves the grid to the next control of the page, which is what the APG requires of a grid and what a table cannot give.",
1193
1228
  "Every row carries aria-rowindex against aria-rowcount on the root, and every cell aria-colindex against aria-colcount, always: the grid windows its rows and columns, so the DOM is never the whole set, and the counts are what let a screen reader say “row 4,812 of 9,000”.",
1194
1229
  "aria-sort is written on the first sort key’s header only — the practice says more than one is ambiguous — and the whole order is announced through the live announcer: “Sorted by Carrier ascending, Weight descending”. A resize announces the column and its width; a filter announces its sentence through describeFilter; a copy announces the count.",
@@ -1207,7 +1242,9 @@
1207
1242
  "--slotted-control-font-size-md",
1208
1243
  "--slotted-control-font-size-sm",
1209
1244
  "--slotted-control-gap-md",
1245
+ "--slotted-control-height-lg",
1210
1246
  "--slotted-control-height-md",
1247
+ "--slotted-control-height-sm",
1211
1248
  "--slotted-control-icon-size-md",
1212
1249
  "--slotted-control-inner-size-sm",
1213
1250
  "--slotted-control-invalid-edge-width",
@@ -1243,6 +1280,8 @@
1243
1280
  "--slotted-data-grid-pin-shadow-size",
1244
1281
  "--slotted-data-grid-radius",
1245
1282
  "--slotted-data-grid-range-surface",
1283
+ "--slotted-data-grid-resize-guide-color",
1284
+ "--slotted-data-grid-resize-guide-width",
1246
1285
  "--slotted-data-grid-row-block-size",
1247
1286
  "--slotted-data-grid-row-color-selected",
1248
1287
  "--slotted-data-grid-row-max-block-size",
@@ -1368,7 +1407,7 @@
1368
1407
  "title": "Row selection",
1369
1408
  "note": "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.",
1370
1409
  "language": "tsx",
1371
- "source": "import { useState } from 'react';\nimport type { GridColumn } from '@slotted/core/grid';\nimport { DataGrid } from '@slotted/react/data-grid';\nimport { Text } from '@slotted/react/typography';\n\ninterface Shipment {\n id: string;\n customer: string;\n destination: string;\n carrier: string;\n status: string;\n shipped: string;\n weight: number;\n cost: number;\n priority: boolean;\n}\n\nconst CUSTOMERS = [\n 'Alfreds Futterkiste',\n \"Bon app'\",\n 'Ernst Handel',\n 'Folk och fä HB',\n 'Hanari Carnes',\n 'Island Trading',\n 'QUICK-Stop',\n 'Wartian Herkku',\n];\nconst DESTINATIONS = [\n 'Berlin, DE',\n 'Marseille, FR',\n 'Graz, AT',\n 'Bräcke, SE',\n 'Rio de Janeiro, BR',\n 'Cowes, UK',\n 'Boise, US',\n 'Oulu, FI',\n];\nconst CARRIERS = ['UPS', 'FedEx', 'DHL', 'USPS'];\nconst STATUSES = ['In transit', 'Delivered', 'Delayed', 'Customs'];\n\nfunction shipments(count: number): Shipment[] {\n let seed = 7;\n const next = () => (seed = (seed * 1664525 + 1013904223) % 4294967296) / 4294967296;\n const pick = <T,>(list: readonly T[]) => list[Math.floor(next() * list.length)]!;\n return Array.from({ length: count }, (_, index) => {\n const weight = Math.round(next() * 9000) / 10;\n return {\n id: `SH-${3301 + index}`,\n customer: pick(CUSTOMERS),\n destination: pick(DESTINATIONS),\n carrier: pick(CARRIERS),\n status: pick(STATUSES),\n shipped: `2026-09-${String(1 + Math.floor(next() * 28)).padStart(2, '0')}`,\n weight,\n cost: Math.round(weight * (2 + next() * 3) * 100) / 100,\n priority: next() < 0.3,\n };\n });\n}\n\nconst USD = new Intl.NumberFormat('en-US', { currency: 'USD', style: 'currency' });\nconst money = (value: unknown) => (typeof value === 'number' ? USD.format(value) : '');\nconst kilograms = (value: unknown) => (typeof value === 'number' ? `${value.toFixed(1)} kg` : '');\n\nconst COLUMNS: GridColumn<Shipment>[] = [\n { id: 'id', label: 'Shipment', accessor: 'id', rowHeader: true, width: 120, text: 'nowrap' },\n { id: 'customer', label: 'Customer', accessor: 'customer', flex: 1, minWidth: 180 },\n { id: 'destination', label: 'Destination', accessor: 'destination', width: 170 },\n {\n id: 'carrier',\n label: 'Carrier',\n accessor: 'carrier',\n kind: 'set',\n width: 110,\n options: CARRIERS.map((value) => ({ value, label: value })),\n },\n {\n id: 'status',\n label: 'Status',\n accessor: 'status',\n kind: 'set',\n width: 120,\n options: STATUSES.map((value) => ({ value, label: value })),\n },\n { id: 'shipped', label: 'Shipped', accessor: 'shipped', kind: 'date', width: 130 },\n {\n id: 'weight',\n label: 'Weight',\n accessor: 'weight',\n kind: 'number',\n width: 110,\n format: kilograms,\n },\n { id: 'cost', label: 'Cost', accessor: 'cost', kind: 'number', width: 120, format: money },\n];\n\nconst ROWS = shipments(12);\n\nexport default function DataGridSelection() {\n const [value, setValue] = useState<string | readonly string[] | null>(['SH-3302', 'SH-3303']);\n const count = Array.isArray(value) ? value.length : value === null ? 0 : 1;\n\n return (\n <DataGrid\n aria-label=\"Shipments\"\n columns={COLUMNS}\n rowKey=\"id\"\n rows={ROWS}\n disabledKeys={['SH-3305']}\n footer={\n <Text size=\"sm\" tone=\"muted\">\n {count} selected\n </Text>\n }\n height=\"24rem\"\n onValueChange={setValue}\n selectionMode=\"multiple\"\n value={value}\n />\n );\n}\n",
1410
+ "source": "import { useState } from 'react';\nimport type { GridColumn } from '@slotted/core/grid';\nimport { DataGrid } from '@slotted/react/data-grid';\nimport { Text } from '@slotted/react/typography';\n\ninterface Shipment {\n id: string;\n customer: string;\n destination: string;\n carrier: string;\n status: string;\n shipped: string;\n weight: number;\n cost: number;\n priority: boolean;\n}\n\nconst CUSTOMERS = [\n 'Alfreds Futterkiste',\n \"Bon app'\",\n 'Ernst Handel',\n 'Folk och fä HB',\n 'Hanari Carnes',\n 'Island Trading',\n 'QUICK-Stop',\n 'Wartian Herkku',\n];\nconst DESTINATIONS = [\n 'Berlin, DE',\n 'Marseille, FR',\n 'Graz, AT',\n 'Bräcke, SE',\n 'Rio de Janeiro, BR',\n 'Cowes, UK',\n 'Boise, US',\n 'Oulu, FI',\n];\nconst CARRIERS = ['UPS', 'FedEx', 'DHL', 'USPS'];\nconst STATUSES = ['In transit', 'Delivered', 'Delayed', 'Customs'];\n\nfunction shipments(count: number): Shipment[] {\n let seed = 7;\n const next = () => (seed = (seed * 1664525 + 1013904223) % 4294967296) / 4294967296;\n const pick = <T,>(list: readonly T[]) => list[Math.floor(next() * list.length)]!;\n return Array.from({ length: count }, (_, index) => {\n const weight = Math.round(next() * 9000) / 10;\n return {\n id: `SH-${3301 + index}`,\n customer: pick(CUSTOMERS),\n destination: pick(DESTINATIONS),\n carrier: pick(CARRIERS),\n status: pick(STATUSES),\n shipped: `2026-09-${String(1 + Math.floor(next() * 28)).padStart(2, '0')}`,\n weight,\n cost: Math.round(weight * (2 + next() * 3) * 100) / 100,\n priority: next() < 0.3,\n };\n });\n}\n\nconst USD = new Intl.NumberFormat('en-US', { currency: 'USD', style: 'currency' });\nconst money = (value: unknown) => (typeof value === 'number' ? USD.format(value) : '');\nconst kilograms = (value: unknown) => (typeof value === 'number' ? `${value.toFixed(1)} kg` : '');\n\nconst COLUMNS: GridColumn<Shipment>[] = [\n { id: 'id', label: 'Shipment', accessor: 'id', rowHeader: true, width: 120, text: 'nowrap' },\n { id: 'customer', label: 'Customer', accessor: 'customer', flex: 1, minWidth: 180 },\n { id: 'destination', label: 'Destination', accessor: 'destination', width: 170 },\n {\n id: 'carrier',\n label: 'Carrier',\n accessor: 'carrier',\n kind: 'set',\n width: 110,\n options: CARRIERS.map((value) => ({ value, label: value })),\n },\n {\n id: 'status',\n label: 'Status',\n accessor: 'status',\n kind: 'set',\n width: 120,\n options: STATUSES.map((value) => ({ value, label: value })),\n },\n { id: 'shipped', label: 'Shipped', accessor: 'shipped', kind: 'date', width: 130 },\n {\n id: 'weight',\n label: 'Weight',\n accessor: 'weight',\n kind: 'number',\n width: 110,\n format: kilograms,\n },\n { id: 'cost', label: 'Cost', accessor: 'cost', kind: 'number', width: 120, format: money },\n];\n\nconst ROWS = shipments(12);\nconst DISABLED = ['SH-3305'];\n\nexport default function DataGridSelection() {\n const [value, setValue] = useState<string | readonly string[] | null>(['SH-3302', 'SH-3303']);\n const count = Array.isArray(value) ? value.length : value === null ? 0 : 1;\n\n return (\n <DataGrid\n aria-label=\"Shipments\"\n columns={COLUMNS}\n rowKey=\"id\"\n rows={ROWS}\n disabledKeys={DISABLED}\n footer={\n <Text size=\"sm\" tone=\"muted\">\n {count} selected\n </Text>\n }\n height=\"24rem\"\n onValueChange={setValue}\n selectionMode=\"multiple\"\n value={value}\n />\n );\n}\n",
1372
1411
  "verdict": "example"
1373
1412
  },
1374
1413
  {
@@ -1526,7 +1565,7 @@
1526
1565
  {
1527
1566
  "id": "load-more",
1528
1567
  "title": "Load more",
1529
- "note": "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.",
1568
+ "note": "With an unknown total the footer states the range without one. onLoadMore is called on its own as the reader nears the end, and the footer says a page is loading; it offers a control only to retry a page that failed (loadMoreFailed). loadMoreTrigger=\"button\" asks only from a Load more control, \"both\" does the two.",
1530
1569
  "language": "tsx",
1531
1570
  "source": "<DataGrid\n hasMore={hasMore}\n onLoadMore={fetchMore}\n query={{ ...emptyQuery(), page: { cursor, size: 50 } }}\n rows={rows}\n/>;\n",
1532
1571
  "verdict": "excerpt"
@@ -1534,7 +1573,7 @@
1534
1573
  {
1535
1574
  "id": "empty-and-loading",
1536
1575
  "title": "Empty, no results, error, loading",
1537
- "note": "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.",
1576
+ "note": "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. Zero rows is an answer too: once the grid has drawn the empty state, loading keeps it and draws no skeleton, and loading=\"initial\" asks for the skeleton anyway.",
1538
1577
  "language": "tsx",
1539
1578
  "source": "<DataGrid error={error} loading={loading} onRetry={reload} rows={rows} />;\n",
1540
1579
  "verdict": "excerpt"
@@ -1584,7 +1623,7 @@
1584
1623
  "title": "Pictures in cells",
1585
1624
  "note": "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.",
1586
1625
  "language": "tsx",
1587
- "source": "<DataGrid\n cellRenderers={{\n customer: ({ row }) => (\n <span className=\"customer\">\n <Avatar name={row.customer} size=\"sm\" />\n <span>{row.customer}</span>\n </span>\n ),\n photo: ({ row }) => <Image alt=\"\" radius=\"sm\" ratio=\"landscape\" src={row.photo} />,\n }}\n columns={[...columns, { id: 'photo', label: 'Cargo', kind: 'custom', sortable: false }]}\n rowHeight={56}\n/>;\n",
1626
+ "source": "const MEDIA_COLUMNS: DataGridColumn<Shipment>[] = [\n ...columns,\n { id: 'photo', label: 'Cargo', kind: 'custom', sortable: false },\n];\n\n<DataGrid\n cellRenderers={{\n customer: ({ row }) => (\n <span className=\"customer\">\n <Avatar name={row.customer} size=\"sm\" />\n <span>{row.customer}</span>\n </span>\n ),\n photo: ({ row }) => <Image alt=\"\" radius=\"sm\" ratio=\"landscape\" src={row.photo} />,\n }}\n columns={MEDIA_COLUMNS}\n rowHeight={56}\n/>;\n",
1588
1627
  "verdict": "excerpt"
1589
1628
  },
1590
1629
  {
@@ -122,6 +122,7 @@ export default function DataGridBasic() {
122
122
  | `column-menu` | button | no |
123
123
  | `column-menu-description` | div[aria-hidden] | no |
124
124
  | `resizer` | div[aria-hidden] | no |
125
+ | `resize-guide` | div[aria-hidden] | no |
125
126
  | `drop-indicator` | div | no |
126
127
  | `filter-row` | div[role="row"] | no |
127
128
  | `filter-cell` | div[role="gridcell"] | no |
@@ -191,6 +192,7 @@ See [data-grid.props.md](./data-grid.props.md).
191
192
  | `filterRow` | `true`, `false` | `false` |
192
193
  | `virtualize` | `auto`, `true`, `false` | `auto` |
193
194
  | `columnOverflow` | `auto`, `popin`, `scroll` | `auto` |
195
+ | `resizeMode` | `live`, `deferred` | `live` |
194
196
  | `activatable` | `true`, `false` | `false` |
195
197
  | `align` | `start`, `center`, `end` | `start` |
196
198
  | `numeric` | `true`, `false` | `false` |
@@ -199,6 +201,7 @@ See [data-grid.props.md](./data-grid.props.md).
199
201
 
200
202
  ## Rules
201
203
 
204
+ - `columns`, `disabledKeys` and a function `rowKey` are compared by identity: a new array or function on a render of the parent re-renders every mounted row, so declare them at module scope or memoise them. The renderers — `cellRenderers`, `editorRenderers`, `renderCell`, `renderEditor`, `renderHeader`, `renderGroup`, `renderDetail` — `messages` and `tree` are read when a row renders and may be written inline. A row renders again for its own row object, selection, cursor, edit or expansion, and for a change of `columns` or the language; a renderer whose output reads state outside its row is refreshed by memoising `columns` on that state.
202
205
  - The root is role="grid": a composite widget with one tab stop. The current cell — or the single simple widget inside it, a link, a button or a checkbox — is the only element with tabindex="0"; Tab enters there and leaves the grid to the next control of the page, which is what the APG requires of a grid and what a table cannot give.
203
206
  - Every row carries aria-rowindex against aria-rowcount on the root, and every cell aria-colindex against aria-colcount, always: the grid windows its rows and columns, so the DOM is never the whole set, and the counts are what let a screen reader say “row 4,812 of 9,000”.
204
207
  - aria-sort is written on the first sort key’s header only — the practice says more than one is ambiguous — and the whole order is announced through the live announcer: “Sorted by Carrier ascending, Weight descending”. A resize announces the column and its width; a filter announces its sentence through describeFilter; a copy announces the count.
@@ -208,7 +211,7 @@ See [data-grid.props.md](./data-grid.props.md).
208
211
 
209
212
  ## Tokens
210
213
 
211
- `--slotted-border-strong`, `--slotted-border-subtle`, `--slotted-border-width-thick`, `--slotted-border-width-thin`, `--slotted-control-font-family`, `--slotted-control-font-size-md`, `--slotted-control-font-size-sm`, `--slotted-control-gap-md`, `--slotted-control-height-md`, `--slotted-control-icon-size-md`, `--slotted-control-inner-size-sm`, `--slotted-control-invalid-edge-width`, `--slotted-control-padding-inline-md`, `--slotted-control-padding-inline-sm`, `--slotted-control-transition-duration`, `--slotted-control-transition-easing`, `--slotted-data-grid-band-surface`, `--slotted-data-grid-block-size`, `--slotted-data-grid-border-color`, `--slotted-data-grid-border-color-strong`, `--slotted-data-grid-border-width`, `--slotted-data-grid-cell-padding-block`, `--slotted-data-grid-cell-padding-inline`, `--slotted-data-grid-changed-surface`, `--slotted-data-grid-color`, `--slotted-data-grid-color-muted`, `--slotted-data-grid-control-radius`, `--slotted-data-grid-cursor-color`, `--slotted-data-grid-filter-operator-size`, `--slotted-data-grid-filter-panel-size`, `--slotted-data-grid-filter-panel-size-date`, `--slotted-data-grid-filter-panel-size-datetime`, `--slotted-data-grid-font-family`, `--slotted-data-grid-font-size`, `--slotted-data-grid-gap`, `--slotted-data-grid-head-block-size`, `--slotted-data-grid-header-surface`, `--slotted-data-grid-header-surface-hover`, `--slotted-data-grid-icon-size`, `--slotted-data-grid-indent`, `--slotted-data-grid-pin-shadow-color`, `--slotted-data-grid-pin-shadow-size`, `--slotted-data-grid-radius`, `--slotted-data-grid-range-surface`, `--slotted-data-grid-row-block-size`, `--slotted-data-grid-row-color-selected`, `--slotted-data-grid-row-max-block-size`, `--slotted-data-grid-row-surface-hover`, `--slotted-data-grid-row-surface-selected`, `--slotted-data-grid-row-surface-selected-hover`, `--slotted-data-grid-row-surface-stripe`, `--slotted-data-grid-shadow`, `--slotted-data-grid-sticky-offset`, `--slotted-data-grid-sticky-offset-end`, `--slotted-data-grid-surface`, `--slotted-disabled-foreground`, `--slotted-duration-long`, `--slotted-duration-loop`, `--slotted-duration-short`, `--slotted-easing-standard`, `--slotted-focus-ring-color`, `--slotted-focus-ring-color-invalid`, `--slotted-focus-ring-offset`, `--slotted-focus-ring-width`, `--slotted-font-size-xs`, `--slotted-font-weight-medium`, `--slotted-font-weight-regular`, `--slotted-font-weight-semibold`, `--slotted-ground`, `--slotted-line-height-md`, `--slotted-popover-gap`, `--slotted-popover-padding-block-sm`, `--slotted-popover-padding-inline-sm`, `--slotted-radius-md`, `--slotted-radius-sm`, `--slotted-scrim`, `--slotted-shadow-xs`, `--slotted-space-1`, `--slotted-space-2`, `--slotted-space-3`, `--slotted-space-4`, `--slotted-space-5`, `--slotted-space-6`, `--slotted-space-8`, `--slotted-surface`, `--slotted-surface-sunken`, `--slotted-target-comfortable`, `--slotted-target-min`, `--slotted-text`, `--slotted-text-muted`, `--slotted-tone-accent-border`, `--slotted-tone-accent-solid`, `--slotted-tone-accent-subtle-hover`, `--slotted-tone-accent-surface`, `--slotted-tone-accent-text`, `--slotted-tone-danger-border`, `--slotted-tone-secondary-subtle-hover`, `--slotted-z-index-sticky`
214
+ `--slotted-border-strong`, `--slotted-border-subtle`, `--slotted-border-width-thick`, `--slotted-border-width-thin`, `--slotted-control-font-family`, `--slotted-control-font-size-md`, `--slotted-control-font-size-sm`, `--slotted-control-gap-md`, `--slotted-control-height-lg`, `--slotted-control-height-md`, `--slotted-control-height-sm`, `--slotted-control-icon-size-md`, `--slotted-control-inner-size-sm`, `--slotted-control-invalid-edge-width`, `--slotted-control-padding-inline-md`, `--slotted-control-padding-inline-sm`, `--slotted-control-transition-duration`, `--slotted-control-transition-easing`, `--slotted-data-grid-band-surface`, `--slotted-data-grid-block-size`, `--slotted-data-grid-border-color`, `--slotted-data-grid-border-color-strong`, `--slotted-data-grid-border-width`, `--slotted-data-grid-cell-padding-block`, `--slotted-data-grid-cell-padding-inline`, `--slotted-data-grid-changed-surface`, `--slotted-data-grid-color`, `--slotted-data-grid-color-muted`, `--slotted-data-grid-control-radius`, `--slotted-data-grid-cursor-color`, `--slotted-data-grid-filter-operator-size`, `--slotted-data-grid-filter-panel-size`, `--slotted-data-grid-filter-panel-size-date`, `--slotted-data-grid-filter-panel-size-datetime`, `--slotted-data-grid-font-family`, `--slotted-data-grid-font-size`, `--slotted-data-grid-gap`, `--slotted-data-grid-head-block-size`, `--slotted-data-grid-header-surface`, `--slotted-data-grid-header-surface-hover`, `--slotted-data-grid-icon-size`, `--slotted-data-grid-indent`, `--slotted-data-grid-pin-shadow-color`, `--slotted-data-grid-pin-shadow-size`, `--slotted-data-grid-radius`, `--slotted-data-grid-range-surface`, `--slotted-data-grid-resize-guide-color`, `--slotted-data-grid-resize-guide-width`, `--slotted-data-grid-row-block-size`, `--slotted-data-grid-row-color-selected`, `--slotted-data-grid-row-max-block-size`, `--slotted-data-grid-row-surface-hover`, `--slotted-data-grid-row-surface-selected`, `--slotted-data-grid-row-surface-selected-hover`, `--slotted-data-grid-row-surface-stripe`, `--slotted-data-grid-shadow`, `--slotted-data-grid-sticky-offset`, `--slotted-data-grid-sticky-offset-end`, `--slotted-data-grid-surface`, `--slotted-disabled-foreground`, `--slotted-duration-long`, `--slotted-duration-loop`, `--slotted-duration-short`, `--slotted-easing-standard`, `--slotted-focus-ring-color`, `--slotted-focus-ring-color-invalid`, `--slotted-focus-ring-offset`, `--slotted-focus-ring-width`, `--slotted-font-size-xs`, `--slotted-font-weight-medium`, `--slotted-font-weight-regular`, `--slotted-font-weight-semibold`, `--slotted-ground`, `--slotted-line-height-md`, `--slotted-popover-gap`, `--slotted-popover-padding-block-sm`, `--slotted-popover-padding-inline-sm`, `--slotted-radius-md`, `--slotted-radius-sm`, `--slotted-scrim`, `--slotted-shadow-xs`, `--slotted-space-1`, `--slotted-space-2`, `--slotted-space-3`, `--slotted-space-4`, `--slotted-space-5`, `--slotted-space-6`, `--slotted-space-8`, `--slotted-surface`, `--slotted-surface-sunken`, `--slotted-target-comfortable`, `--slotted-target-min`, `--slotted-text`, `--slotted-text-muted`, `--slotted-tone-accent-border`, `--slotted-tone-accent-solid`, `--slotted-tone-accent-subtle-hover`, `--slotted-tone-accent-surface`, `--slotted-tone-accent-text`, `--slotted-tone-danger-border`, `--slotted-tone-secondary-subtle-hover`, `--slotted-z-index-sticky`
212
215
 
213
216
  ## Examples
214
217
 
@@ -9,7 +9,7 @@
9
9
  | --- | --- | --- | --- | --- |
10
10
  | `rows` | `readonly Row[]` | — | DataGrid | The records; the grid never mutates them. Left out when a dataSource answers for them. |
11
11
  | `rowKey` | `keyof Row \| (row) => string` | — | DataGrid | A field name or a function: the key every state model names a row by. |
12
- | `columns` | `GridColumn<Row>[]` | — | DataGrid | The column model: id, label, description, kind, accessor, format, compare, width, minWidth, maxWidth, flex, priority, sortable, filterable, searchable, editable, resizable, reorderable, hideable, rowHeader, options, aggregate, validate, parse — and help, a node for the column’s help popover. |
12
+ | `columns` | `GridColumn<Row>[]` | — | DataGrid | The column model: id, label, description, kind, accessor, format, compare, width, minWidth, maxWidth, flex, priority, sortable, filterable, searchable, editable, resizable, reorderable, hideable, rowHeader, pinned (end by default for kind actions), options, aggregate, validate, parse — and help, a node for the column’s help popover. |
13
13
  | `description` | `string` | — | DataGridColumn | What the column is: the header’s accessible description, the caption atop its menu and the first line of its help popover. |
14
14
  | `help` | `ReactNode` | — | DataGridColumn | The column’s own help, under the description in the popover the column-help button opens. Its presence alone draws the button. |
15
15
  | `priority` | `number` | — | DataGridColumn | The lower, the longer the column stays when the frame is too narrow. A column without one leaves before every numbered one; the identity column and an actions column never leave. |
@@ -17,8 +17,8 @@
17
17
  | `columnGroups` | `GridColumnGroup[]` | — | DataGrid | Headings spanning columns, drawn as a row above the names. |
18
18
  | `mode` | `'client' \| 'server'` | inferred | DataGrid | client applies the query to rows; server draws rows as given. server when totalCount or hasMore is present. |
19
19
  | `totalCount` | `number` | — | DataGrid | The whole set’s size in server mode; aria-rowcount and the range read it. |
20
- | `hasMore` | `boolean` | — | DataGrid | Whether a page past this one exists when the total is unknown; the footer offers Load more. |
21
- | `loading` | `boolean` | false | DataGrid | Skeleton rows with no rows to keep; aria-busy and a dimmed body over rows already shown. |
20
+ | `hasMore` | `boolean` | — | DataGrid | Whether a page past this one exists when the total is unknown; loadMoreTrigger decides what asks for it. |
21
+ | `loading` | `boolean \| 'initial' \| 'refresh'` | false | DataGrid | Skeleton rows with no answer to keep; aria-busy over an answer already drawn — rows, which dim, or the empty state, which stays. true is initial until the grid has drawn an answer, and refresh after; rows emptied while a load starts wait in the skeleton. |
22
22
  | `error` | `string \| null` | — | DataGrid | The message of a failed load; draws the error state with Try again when onRetry is set. |
23
23
  | `disabledKeys` | `string[]` | — | DataGrid | Rows that are neither selectable nor editable, drawn with data-disabled. |
24
24
  | `query` | `GridQuery` | — | DataGrid | sort, filter, search, page and group in one object. Present puts the query in controlled mode. |
@@ -68,6 +68,9 @@
68
68
  | `highlightChanges` | `boolean \| number` | false | DataGrid | Marks a mounted cell whose value changed between two rows, for the stated milliseconds (true is 1200). |
69
69
  | `loadMoreThreshold` | `number` | 20 | DataGrid | Rows left below the window before onLoadMore is called. |
70
70
  | `onLoadMore` | `() => void` | — | DataGrid | Asked for the next page when hasMore is true. |
71
+ | `resizeMode` | `'live' \| 'deferred'` | live | DataGrid | How a pointer drag of a resizer applies the width: on every move, or once on release while a guide (the resize-guide part) follows the pointer and the rows stay still. Escape during a deferred drag leaves the width. The keyboard step and autofit apply at once in either mode. |
72
+ | `loadMoreTrigger` | `'scroll' \| 'button' \| 'both'` | scroll | DataGrid | What asks for the next page: nearing the end, with a loading status in the footer; a Load more control; or both. |
73
+ | `loadMoreFailed` | `boolean` | false | DataGrid | The last page asked for failed: the automatic request stops and the footer offers Try again. |
71
74
  | `onRetry` | `() => void` | — | DataGrid | The error state’s Try again. |
72
75
  | `skeletonRows` | `number` | 8 | DataGrid | Rows the first load draws. |
73
76
  | `pageSizes` | `number[]` | 25,50,100 | DataGrid | The sizes a page-size control in the footer offers, read through useDataGridDefaults. |
@@ -93,7 +96,7 @@
93
96
  | `align` | `'start' \| 'center' \| 'end'` | start | GridColumn | Where the value sits; a number column sits at the end unless told otherwise. |
94
97
  | `numeric` | `boolean` | false | GridColumn | Tabular figures and end alignment; true for kind number. |
95
98
  | `text` | `'wrap' \| 'truncate' \| 'nowrap'` | truncate | GridColumn | What a long value does. |
96
- | `DataGridDefaultsProvider` | `component` | — | Application | Sets variant, striped, stickyHeader, stickyTo, selectionMode, editMode, filterRow, virtualize, rowHeight, columnOverflow, overscan, pageSizes, filterDebounce, loadMoreThreshold and skeletonRows once for a subtree. A grid that states one itself still wins. Its words and its locale come from the language in force (SlottedProvider). |
99
+ | `DataGridDefaultsProvider` | `component` | — | Application | Sets variant, striped, stickyHeader, stickyTo, selectionMode, editMode, filterRow, virtualize, rowHeight, columnOverflow, overscan, pageSizes, filterDebounce, loadMoreThreshold, loadMoreTrigger, resizeMode and skeletonRows once for a subtree. A grid that states one itself still wins. Its words and its locale come from the language in force (SlottedProvider). |
97
100
  | `@slotted/core/grid` | `module` | — | Application | applyQuery, emptyQuery, withSortPress, withColumnFilter, withSearch, withPageIndex, withGroup, toGridParams, fromGridParams, normalizeColumnState, serializeColumnState, parseColumnState: the engine the grid runs on, for a server mock, a URL and a saved view. |
98
101
  | `renderCell, renderEditor, renderHeader, renderDetail, renderGroup, renderEmpty, renderFilterOperand` | `render props` | — | DataGrid | Every surface a consumer replaces, per grid or per column through cellRenderers and editorRenderers. row, cell, head and body are fixed: the layout and the roles are theirs. |
99
102
  | `footer` | `ReactNode` | — | DataGrid | Pagination, a page-size select, a count: the consumer’s own controls in the bar the grid draws. |
@@ -568,7 +568,8 @@
568
568
  "--slotted-target-min",
569
569
  "--slotted-text",
570
570
  "--slotted-text-muted",
571
- "--slotted-tone-accent-text"
571
+ "--slotted-tone-accent-text",
572
+ "--slotted-z-index-sticky"
572
573
  ],
573
574
  "examples": [
574
575
  {
@@ -125,7 +125,7 @@ Excerpt — not a complete module
125
125
 
126
126
  ## Tokens
127
127
 
128
- `--slotted-border-subtle`, `--slotted-border-width-thin`, `--slotted-control-font-size-sm`, `--slotted-control-gap-lg`, `--slotted-control-gap-md`, `--slotted-control-gap-sm`, `--slotted-control-height-md`, `--slotted-control-padding-inline-lg`, `--slotted-control-padding-inline-md`, `--slotted-control-padding-inline-sm`, `--slotted-disabled-foreground`, `--slotted-duration-short`, `--slotted-easing-standard`, `--slotted-focus-ring-color`, `--slotted-focus-ring-offset`, `--slotted-focus-ring-width`, `--slotted-font-family-sans`, `--slotted-font-size-xs`, `--slotted-font-weight-medium`, `--slotted-font-weight-regular`, `--slotted-line-height-md`, `--slotted-line-height-sm`, `--slotted-line-height-xs`, `--slotted-radius-sm`, `--slotted-space-1`, `--slotted-space-2`, `--slotted-space-3`, `--slotted-space-4`, `--slotted-space-8`, `--slotted-target-min`, `--slotted-text`, `--slotted-text-muted`, `--slotted-tone-accent-text`
128
+ `--slotted-border-subtle`, `--slotted-border-width-thin`, `--slotted-control-font-size-sm`, `--slotted-control-gap-lg`, `--slotted-control-gap-md`, `--slotted-control-gap-sm`, `--slotted-control-height-md`, `--slotted-control-padding-inline-lg`, `--slotted-control-padding-inline-md`, `--slotted-control-padding-inline-sm`, `--slotted-disabled-foreground`, `--slotted-duration-short`, `--slotted-easing-standard`, `--slotted-focus-ring-color`, `--slotted-focus-ring-offset`, `--slotted-focus-ring-width`, `--slotted-font-family-sans`, `--slotted-font-size-xs`, `--slotted-font-weight-medium`, `--slotted-font-weight-regular`, `--slotted-line-height-md`, `--slotted-line-height-sm`, `--slotted-line-height-xs`, `--slotted-radius-sm`, `--slotted-space-1`, `--slotted-space-2`, `--slotted-space-3`, `--slotted-space-4`, `--slotted-space-8`, `--slotted-target-min`, `--slotted-text`, `--slotted-text-muted`, `--slotted-tone-accent-text`, `--slotted-z-index-sticky`
129
129
 
130
130
  ## Examples
131
131
 
@@ -125,7 +125,7 @@
125
125
  "type": "PlainDate | null",
126
126
  "defaultValue": "—",
127
127
  "appliesTo": "DateField",
128
- "description": "The date the control shows. Present means the consumer owns it: the control asks and waits rather than moving it."
128
+ "description": "The date the control shows. Present means the consumer owns it: the control asks and waits rather than moving it. PlainDate is exported by @slotted/core/date. parseISODate(text) returns a PlainDate or null, and toISODate(date) returns 'YYYY-MM-DD': value={parseISODate(iso)} onValueChange={(v) => setIso(v === null ? '' : toISODate(v))}."
129
129
  },
130
130
  {
131
131
  "name": "defaultValue",
@@ -134,6 +134,13 @@
134
134
  "appliesTo": "DateField",
135
135
  "description": "The date the control starts from when nobody else writes one. Read once; a later change to it is not new state."
136
136
  },
137
+ {
138
+ "name": "granularity",
139
+ "type": "'day' | 'month'",
140
+ "defaultValue": "day",
141
+ "appliesTo": "DateField",
142
+ "description": "What the control holds. month shows the month and the year segments in the locale’s order, takes the first day of the month as its value, and submits YYYY-MM through name."
143
+ },
137
144
  {
138
145
  "name": "min",
139
146
  "type": "PlainDate",
@@ -325,6 +332,7 @@
325
332
  "--slotted-border-subtle",
326
333
  "--slotted-control-border-color",
327
334
  "--slotted-control-border-width",
335
+ "--slotted-control-focus-ring-offset",
328
336
  "--slotted-control-font-family",
329
337
  "--slotted-control-font-size-lg",
330
338
  "--slotted-control-font-size-md",
@@ -38,8 +38,9 @@ Excerpt — not a complete module
38
38
 
39
39
  | Name | Type | Default | Applies to | Description |
40
40
  | --- | --- | --- | --- | --- |
41
- | `value` | `PlainDate \| null` | — | DateField | The date the control shows. Present means the consumer owns it: the control asks and waits rather than moving it. |
41
+ | `value` | `PlainDate \| null` | — | DateField | The date the control shows. Present means the consumer owns it: the control asks and waits rather than moving it. PlainDate is exported by @slotted/core/date. parseISODate(text) returns a PlainDate or null, and toISODate(date) returns 'YYYY-MM-DD': value={parseISODate(iso)} onValueChange={(v) => setIso(v === null ? '' : toISODate(v))}. |
42
42
  | `defaultValue` | `PlainDate \| null` | — | DateField | The date the control starts from when nobody else writes one. Read once; a later change to it is not new state. |
43
+ | `granularity` | `'day' \| 'month'` | day | DateField | What the control holds. month shows the month and the year segments in the locale’s order, takes the first day of the month as its value, and submits YYYY-MM through name. |
43
44
  | `min` | `PlainDate` | — | DateField | The earliest date the control accepts. Reported through each segment’s aria-valuemin, and a value below it makes the control invalid. |
44
45
  | `max` | `PlainDate` | — | DateField | The latest date the control accepts, on the same terms as min. |
45
46
  | `isDateUnavailable` | `(date: PlainDate) => boolean` | — | DateField | Refuses particular dates — a weekend, a holiday, a day already booked. A refused date makes the control invalid. |
@@ -89,7 +90,7 @@ Excerpt — not a complete module
89
90
 
90
91
  ## Tokens
91
92
 
92
- `--slotted-border-subtle`, `--slotted-control-border-color`, `--slotted-control-border-width`, `--slotted-control-font-family`, `--slotted-control-font-size-lg`, `--slotted-control-font-size-md`, `--slotted-control-font-size-sm`, `--slotted-control-gap-lg`, `--slotted-control-gap-md`, `--slotted-control-gap-sm`, `--slotted-control-height-lg`, `--slotted-control-height-md`, `--slotted-control-height-sm`, `--slotted-control-icon-size-lg`, `--slotted-control-icon-size-md`, `--slotted-control-icon-size-sm`, `--slotted-control-invalid-edge-width`, `--slotted-control-padding-inline-lg`, `--slotted-control-padding-inline-md`, `--slotted-control-padding-inline-sm`, `--slotted-control-radius`, `--slotted-control-shadow`, `--slotted-control-shadow-focus-geometry`, `--slotted-control-surface`, `--slotted-control-transition-duration`, `--slotted-control-transition-easing`, `--slotted-date-field-action-active-background`, `--slotted-date-field-action-color`, `--slotted-date-field-action-hover-background`, `--slotted-date-field-action-size`, `--slotted-date-field-adornment-color`, `--slotted-date-field-background`, `--slotted-date-field-border-color`, `--slotted-date-field-color`, `--slotted-date-field-disabled-background`, `--slotted-date-field-disabled-border-color`, `--slotted-date-field-disabled-color`, `--slotted-date-field-hover-border-color`, `--slotted-date-field-icon-size-min`, `--slotted-date-field-invalid-border-color`, `--slotted-date-field-invalid-edge-width`, `--slotted-date-field-invalid-focus-ring-color`, `--slotted-date-field-literal-color`, `--slotted-date-field-placeholder-color`, `--slotted-date-field-plain-hover-background`, `--slotted-date-field-radius`, `--slotted-date-field-readonly-background`, `--slotted-date-field-segment-focus-background`, `--slotted-date-field-segment-focus-color`, `--slotted-date-field-segment-min-inline-size`, `--slotted-date-field-segment-padding-inline`, `--slotted-date-field-segment-radius`, `--slotted-date-field-shadow`, `--slotted-date-field-subtle-background`, `--slotted-date-field-subtle-border-color`, `--slotted-date-field-subtle-hover-background`, `--slotted-disabled-background`, `--slotted-disabled-border`, `--slotted-disabled-foreground`, `--slotted-focus-ring-color`, `--slotted-focus-ring-color-invalid`, `--slotted-focus-ring-offset`, `--slotted-focus-ring-width`, `--slotted-radius-none`, `--slotted-radius-xs`, `--slotted-space-1`, `--slotted-space-2`, `--slotted-surface-sunken`, `--slotted-target-comfortable`, `--slotted-target-min`, `--slotted-text`, `--slotted-text-muted`, `--slotted-tone-accent-border`, `--slotted-tone-accent-on-solid`, `--slotted-tone-accent-solid`, `--slotted-tone-danger-border`, `--slotted-tone-secondary-subtle-active`, `--slotted-tone-secondary-subtle-hover`
93
+ `--slotted-border-subtle`, `--slotted-control-border-color`, `--slotted-control-border-width`, `--slotted-control-focus-ring-offset`, `--slotted-control-font-family`, `--slotted-control-font-size-lg`, `--slotted-control-font-size-md`, `--slotted-control-font-size-sm`, `--slotted-control-gap-lg`, `--slotted-control-gap-md`, `--slotted-control-gap-sm`, `--slotted-control-height-lg`, `--slotted-control-height-md`, `--slotted-control-height-sm`, `--slotted-control-icon-size-lg`, `--slotted-control-icon-size-md`, `--slotted-control-icon-size-sm`, `--slotted-control-invalid-edge-width`, `--slotted-control-padding-inline-lg`, `--slotted-control-padding-inline-md`, `--slotted-control-padding-inline-sm`, `--slotted-control-radius`, `--slotted-control-shadow`, `--slotted-control-shadow-focus-geometry`, `--slotted-control-surface`, `--slotted-control-transition-duration`, `--slotted-control-transition-easing`, `--slotted-date-field-action-active-background`, `--slotted-date-field-action-color`, `--slotted-date-field-action-hover-background`, `--slotted-date-field-action-size`, `--slotted-date-field-adornment-color`, `--slotted-date-field-background`, `--slotted-date-field-border-color`, `--slotted-date-field-color`, `--slotted-date-field-disabled-background`, `--slotted-date-field-disabled-border-color`, `--slotted-date-field-disabled-color`, `--slotted-date-field-hover-border-color`, `--slotted-date-field-icon-size-min`, `--slotted-date-field-invalid-border-color`, `--slotted-date-field-invalid-edge-width`, `--slotted-date-field-invalid-focus-ring-color`, `--slotted-date-field-literal-color`, `--slotted-date-field-placeholder-color`, `--slotted-date-field-plain-hover-background`, `--slotted-date-field-radius`, `--slotted-date-field-readonly-background`, `--slotted-date-field-segment-focus-background`, `--slotted-date-field-segment-focus-color`, `--slotted-date-field-segment-min-inline-size`, `--slotted-date-field-segment-padding-inline`, `--slotted-date-field-segment-radius`, `--slotted-date-field-shadow`, `--slotted-date-field-subtle-background`, `--slotted-date-field-subtle-border-color`, `--slotted-date-field-subtle-hover-background`, `--slotted-disabled-background`, `--slotted-disabled-border`, `--slotted-disabled-foreground`, `--slotted-focus-ring-color`, `--slotted-focus-ring-color-invalid`, `--slotted-focus-ring-offset`, `--slotted-focus-ring-width`, `--slotted-radius-none`, `--slotted-radius-xs`, `--slotted-space-1`, `--slotted-space-2`, `--slotted-surface-sunken`, `--slotted-target-comfortable`, `--slotted-target-min`, `--slotted-text`, `--slotted-text-muted`, `--slotted-tone-accent-border`, `--slotted-tone-accent-on-solid`, `--slotted-tone-accent-solid`, `--slotted-tone-danger-border`, `--slotted-tone-secondary-subtle-active`, `--slotted-tone-secondary-subtle-hover`
93
94
 
94
95
  ## Examples
95
96
 
@@ -740,6 +740,35 @@ export default function DatePickerInvoiceDue() {
740
740
  }
741
741
  ```
742
742
 
743
+ ### iso-date.tsx
744
+
745
+ Example
746
+
747
+ ```tsx
748
+ import { useState } from 'react';
749
+ import { DatePicker } from '@slotted/react/date-picker';
750
+ import { Field, FieldDescription, FieldLabel } from '@slotted/react/field';
751
+ import { isPlainDate, parseISODate, toISODate } from '@slotted/core/date';
752
+
753
+ export default function DatePickerIsoDate() {
754
+ /* The API carries the date as text; the picker holds a PlainDate. */
755
+ const [iso, setIso] = useState('2026-10-19');
756
+
757
+ return (
758
+ <Field>
759
+ <FieldLabel>Statement date</FieldLabel>
760
+ <DatePicker
761
+ onValueChange={(value) => setIso(isPlainDate(value) ? toISODate(value) : '')}
762
+ value={parseISODate(iso)}
763
+ />
764
+ <FieldDescription>
765
+ {iso === '' ? 'No date sent.' : `The API receives ${iso}.`}
766
+ </FieldDescription>
767
+ </Field>
768
+ );
769
+ }
770
+ ```
771
+
743
772
  ### locale.tsx
744
773
 
745
774
  Example
@@ -135,7 +135,7 @@
135
135
  "type": "PlainDate | DateRange | PlainDate[] | null",
136
136
  "defaultValue": "—",
137
137
  "appliesTo": "DatePicker",
138
- "description": "The selected value, whose shape follows selectionMode. Setting it makes the value controlled."
138
+ "description": "The selected value, whose shape follows selectionMode. Setting it makes the value controlled. PlainDate is exported by @slotted/core/date. parseISODate(text) returns a PlainDate or null, toISODate(date) returns 'YYYY-MM-DD', and isPlainDate(value) narrows the CalendarValue onValueChange reports: value={parseISODate(iso)} onValueChange={(v) => setIso(isPlainDate(v) ? toISODate(v) : '')}."
139
139
  },
140
140
  {
141
141
  "name": "defaultValue",
@@ -179,6 +179,13 @@
179
179
  "appliesTo": "DatePicker",
180
180
  "description": "Returns true for a date the reader cannot choose. The calendar disables it, and a typed unavailable date marks the date picker invalid."
181
181
  },
182
+ {
183
+ "name": "granularity",
184
+ "type": "'day' | 'month'",
185
+ "defaultValue": "day",
186
+ "appliesTo": "DatePicker",
187
+ "description": "What a choice is. month opens the calendar on the months of a year and chooses a month cell; the field shows the month and the year segments; value, defaultValue, min and max are PlainYearMonth from @slotted/core/date ({ year, month }), onValueChange reports one, and name submits YYYY-MM. parseISOYearMonth and toISOYearMonth convert to and from that text. selectionMode, months, isDateUnavailable and the week props do not apply."
188
+ },
182
189
  {
183
190
  "name": "selectionMode",
184
191
  "type": "'single' | 'range' | 'multiple'",
@@ -627,6 +634,14 @@
627
634
  "source": "import { useState } from 'react';\nimport { DatePicker } from '@slotted/react/date-picker';\nimport { Field, FieldDescription, FieldLabel } from '@slotted/react/field';\nimport {\n Select,\n SelectContent,\n SelectItem,\n SelectTrigger,\n SelectValue,\n} from '@slotted/react/select';\nimport { Stack } from '@slotted/react/stack';\nimport {\n addDays,\n createDateFormat,\n isPlainDate,\n plainDate,\n type PlainDate,\n} from '@slotted/core/date';\n\nconst TERMS = [\n { value: 'receipt', label: 'Due on receipt', days: 0 },\n { value: 'net-15', label: 'Net 15', days: 15 },\n { value: 'net-30', label: 'Net 30', days: 30 },\n { value: 'net-60', label: 'Net 60', days: 60 },\n];\nconst words = createDateFormat({ locale: 'en-US' });\n\nexport default function DatePickerInvoiceDue() {\n const [issued, setIssued] = useState<PlainDate | null>(plainDate(2026, 9, 30));\n const [terms, setTerms] = useState('net-30');\n const days = TERMS.find((option) => option.value === terms)?.days ?? 0;\n const due = issued === null ? null : addDays(issued, days);\n\n return (\n <Stack gap={5}>\n <Field required>\n <FieldLabel>Invoice date</FieldLabel>\n <DatePicker\n onValueChange={(value) => setIssued(isPlainDate(value) ? value : null)}\n value={issued}\n />\n </Field>\n <Field>\n <FieldLabel>Payment terms</FieldLabel>\n <Select\n items={TERMS}\n onValueChange={(next) => {\n if (typeof next === 'string') setTerms(next);\n }}\n value={terms}\n >\n <SelectTrigger>\n <SelectValue />\n </SelectTrigger>\n <SelectContent>\n {TERMS.map((option) => (\n <SelectItem key={option.value} value={option.value}>\n {option.label}\n </SelectItem>\n ))}\n </SelectContent>\n </Select>\n </Field>\n <Field readOnly>\n <FieldLabel>Due date</FieldLabel>\n <DatePicker value={due} />\n <FieldDescription>\n {due === null ? 'Set the invoice date first.' : `Payment is due ${words.describe(due)}.`}\n </FieldDescription>\n </Field>\n </Stack>\n );\n}\n",
628
635
  "verdict": "example"
629
636
  },
637
+ {
638
+ "id": "iso-date",
639
+ "title": "iso-date.tsx",
640
+ "note": null,
641
+ "language": "tsx",
642
+ "source": "import { useState } from 'react';\nimport { DatePicker } from '@slotted/react/date-picker';\nimport { Field, FieldDescription, FieldLabel } from '@slotted/react/field';\nimport { isPlainDate, parseISODate, toISODate } from '@slotted/core/date';\n\nexport default function DatePickerIsoDate() {\n /* The API carries the date as text; the picker holds a PlainDate. */\n const [iso, setIso] = useState('2026-10-19');\n\n return (\n <Field>\n <FieldLabel>Statement date</FieldLabel>\n <DatePicker\n onValueChange={(value) => setIso(isPlainDate(value) ? toISODate(value) : '')}\n value={parseISODate(iso)}\n />\n <FieldDescription>\n {iso === '' ? 'No date sent.' : `The API receives ${iso}.`}\n </FieldDescription>\n </Field>\n );\n}\n",
643
+ "verdict": "example"
644
+ },
630
645
  {
631
646
  "id": "locale",
632
647
  "title": "locale.tsx",
@@ -44,13 +44,14 @@ export default function DatePickerBasic() {
44
44
 
45
45
  | Name | Type | Default | Applies to | Description |
46
46
  | --- | --- | --- | --- | --- |
47
- | `value` | `PlainDate \| DateRange \| PlainDate[] \| null` | — | DatePicker | The selected value, whose shape follows selectionMode. Setting it makes the value controlled. |
47
+ | `value` | `PlainDate \| DateRange \| PlainDate[] \| null` | — | DatePicker | The selected value, whose shape follows selectionMode. Setting it makes the value controlled. PlainDate is exported by @slotted/core/date. parseISODate(text) returns a PlainDate or null, toISODate(date) returns 'YYYY-MM-DD', and isPlainDate(value) narrows the CalendarValue onValueChange reports: value={parseISODate(iso)} onValueChange={(v) => setIso(isPlainDate(v) ? toISODate(v) : '')}. |
48
48
  | `defaultValue` | `PlainDate \| DateRange \| PlainDate[] \| null` | — | DatePicker | The starting value of an uncontrolled date picker. Read once, on the first render. |
49
49
  | `open` | `boolean` | — | DatePicker | Whether the calendar is showing. Setting it makes the open state controlled. |
50
50
  | `defaultOpen` | `boolean` | false | DatePicker | Whether the calendar shows on the first render. Focus does not move into it. |
51
51
  | `min` | `PlainDate` | — | DatePicker | The earliest date the field and the calendar accept. Earlier days are disabled in the calendar, and an earlier typed date marks the date picker invalid. |
52
52
  | `max` | `PlainDate` | — | DatePicker | The latest date the field and the calendar accept. Later days are disabled in the calendar, and a later typed date marks the date picker invalid. |
53
53
  | `isDateUnavailable` | `(date: PlainDate) => boolean` | — | DatePicker | Returns true for a date the reader cannot choose. The calendar disables it, and a typed unavailable date marks the date picker invalid. |
54
+ | `granularity` | `'day' \| 'month'` | day | DatePicker | What a choice is. month opens the calendar on the months of a year and chooses a month cell; the field shows the month and the year segments; value, defaultValue, min and max are PlainYearMonth from @slotted/core/date ({ year, month }), onValueChange reports one, and name submits YYYY-MM. parseISOYearMonth and toISOYearMonth convert to and from that text. selectionMode, months, isDateUnavailable and the week props do not apply. |
54
55
  | `selectionMode` | `'single' \| 'range' \| 'multiple'` | single | DatePicker | How many dates the calendar selects, and so the shape of the value. The field shows a single date only; for a start and an end, use DateRangePicker. |
55
56
  | `months` | `number` | 1 | DatePicker | How many months the calendar draws side by side. |
56
57
  | `defaultView` | `'day' \| 'month' \| 'year'` | day | DatePicker | The grid the calendar opens on. |
@@ -419,6 +419,7 @@
419
419
  "--slotted-border-subtle",
420
420
  "--slotted-control-border-color",
421
421
  "--slotted-control-border-width",
422
+ "--slotted-control-focus-ring-offset",
422
423
  "--slotted-control-font-family",
423
424
  "--slotted-control-font-size-lg",
424
425
  "--slotted-control-font-size-md",
@@ -103,7 +103,7 @@ Excerpt — not a complete module
103
103
 
104
104
  ## Tokens
105
105
 
106
- `--slotted-border-subtle`, `--slotted-control-border-color`, `--slotted-control-border-width`, `--slotted-control-font-family`, `--slotted-control-font-size-lg`, `--slotted-control-font-size-md`, `--slotted-control-font-size-sm`, `--slotted-control-gap-lg`, `--slotted-control-gap-md`, `--slotted-control-gap-sm`, `--slotted-control-height-lg`, `--slotted-control-height-md`, `--slotted-control-height-sm`, `--slotted-control-icon-size-lg`, `--slotted-control-icon-size-md`, `--slotted-control-icon-size-sm`, `--slotted-control-invalid-edge-width`, `--slotted-control-padding-inline-lg`, `--slotted-control-padding-inline-md`, `--slotted-control-padding-inline-sm`, `--slotted-control-radius`, `--slotted-control-shadow`, `--slotted-control-shadow-focus-geometry`, `--slotted-control-surface`, `--slotted-control-transition-duration`, `--slotted-control-transition-easing`, `--slotted-datetime-field-action-active-background`, `--slotted-datetime-field-action-color`, `--slotted-datetime-field-action-hover-background`, `--slotted-datetime-field-action-size`, `--slotted-datetime-field-adornment-color`, `--slotted-datetime-field-background`, `--slotted-datetime-field-border-color`, `--slotted-datetime-field-color`, `--slotted-datetime-field-disabled-background`, `--slotted-datetime-field-disabled-border-color`, `--slotted-datetime-field-disabled-color`, `--slotted-datetime-field-half-gap`, `--slotted-datetime-field-hover-border-color`, `--slotted-datetime-field-icon-size-min`, `--slotted-datetime-field-incomplete-border-color`, `--slotted-datetime-field-invalid-border-color`, `--slotted-datetime-field-invalid-edge-width`, `--slotted-datetime-field-invalid-focus-ring-color`, `--slotted-datetime-field-literal-color`, `--slotted-datetime-field-padding-block`, `--slotted-datetime-field-period-min-inline-size`, `--slotted-datetime-field-placeholder-color`, `--slotted-datetime-field-plain-hover-background`, `--slotted-datetime-field-preview-color`, `--slotted-datetime-field-preview-day-color`, `--slotted-datetime-field-radius`, `--slotted-datetime-field-readonly-background`, `--slotted-datetime-field-relative-border-color`, `--slotted-datetime-field-segment-focus-background`, `--slotted-datetime-field-segment-focus-color`, `--slotted-datetime-field-segment-min-inline-size`, `--slotted-datetime-field-segment-padding-inline`, `--slotted-datetime-field-segment-radius`, `--slotted-datetime-field-shadow`, `--slotted-datetime-field-subtle-background`, `--slotted-datetime-field-subtle-border-color`, `--slotted-datetime-field-subtle-hover-background`, `--slotted-disabled-background`, `--slotted-disabled-border`, `--slotted-disabled-foreground`, `--slotted-focus-ring-color`, `--slotted-focus-ring-color-invalid`, `--slotted-focus-ring-offset`, `--slotted-focus-ring-width`, `--slotted-font-weight-semibold`, `--slotted-radius-none`, `--slotted-radius-xs`, `--slotted-space-1`, `--slotted-space-2`, `--slotted-space-3`, `--slotted-surface-sunken`, `--slotted-target-comfortable`, `--slotted-target-min`, `--slotted-text`, `--slotted-text-muted`, `--slotted-tone-accent-border`, `--slotted-tone-accent-on-solid`, `--slotted-tone-accent-solid`, `--slotted-tone-accent-text`, `--slotted-tone-danger-border`, `--slotted-tone-secondary-subtle-active`, `--slotted-tone-secondary-subtle-hover`, `--slotted-tone-warning-border`
106
+ `--slotted-border-subtle`, `--slotted-control-border-color`, `--slotted-control-border-width`, `--slotted-control-focus-ring-offset`, `--slotted-control-font-family`, `--slotted-control-font-size-lg`, `--slotted-control-font-size-md`, `--slotted-control-font-size-sm`, `--slotted-control-gap-lg`, `--slotted-control-gap-md`, `--slotted-control-gap-sm`, `--slotted-control-height-lg`, `--slotted-control-height-md`, `--slotted-control-height-sm`, `--slotted-control-icon-size-lg`, `--slotted-control-icon-size-md`, `--slotted-control-icon-size-sm`, `--slotted-control-invalid-edge-width`, `--slotted-control-padding-inline-lg`, `--slotted-control-padding-inline-md`, `--slotted-control-padding-inline-sm`, `--slotted-control-radius`, `--slotted-control-shadow`, `--slotted-control-shadow-focus-geometry`, `--slotted-control-surface`, `--slotted-control-transition-duration`, `--slotted-control-transition-easing`, `--slotted-datetime-field-action-active-background`, `--slotted-datetime-field-action-color`, `--slotted-datetime-field-action-hover-background`, `--slotted-datetime-field-action-size`, `--slotted-datetime-field-adornment-color`, `--slotted-datetime-field-background`, `--slotted-datetime-field-border-color`, `--slotted-datetime-field-color`, `--slotted-datetime-field-disabled-background`, `--slotted-datetime-field-disabled-border-color`, `--slotted-datetime-field-disabled-color`, `--slotted-datetime-field-half-gap`, `--slotted-datetime-field-hover-border-color`, `--slotted-datetime-field-icon-size-min`, `--slotted-datetime-field-incomplete-border-color`, `--slotted-datetime-field-invalid-border-color`, `--slotted-datetime-field-invalid-edge-width`, `--slotted-datetime-field-invalid-focus-ring-color`, `--slotted-datetime-field-literal-color`, `--slotted-datetime-field-padding-block`, `--slotted-datetime-field-period-min-inline-size`, `--slotted-datetime-field-placeholder-color`, `--slotted-datetime-field-plain-hover-background`, `--slotted-datetime-field-preview-color`, `--slotted-datetime-field-preview-day-color`, `--slotted-datetime-field-radius`, `--slotted-datetime-field-readonly-background`, `--slotted-datetime-field-relative-border-color`, `--slotted-datetime-field-segment-focus-background`, `--slotted-datetime-field-segment-focus-color`, `--slotted-datetime-field-segment-min-inline-size`, `--slotted-datetime-field-segment-padding-inline`, `--slotted-datetime-field-segment-radius`, `--slotted-datetime-field-shadow`, `--slotted-datetime-field-subtle-background`, `--slotted-datetime-field-subtle-border-color`, `--slotted-datetime-field-subtle-hover-background`, `--slotted-disabled-background`, `--slotted-disabled-border`, `--slotted-disabled-foreground`, `--slotted-focus-ring-color`, `--slotted-focus-ring-color-invalid`, `--slotted-focus-ring-offset`, `--slotted-focus-ring-width`, `--slotted-font-weight-semibold`, `--slotted-radius-none`, `--slotted-radius-xs`, `--slotted-space-1`, `--slotted-space-2`, `--slotted-space-3`, `--slotted-surface-sunken`, `--slotted-target-comfortable`, `--slotted-target-min`, `--slotted-text`, `--slotted-text-muted`, `--slotted-tone-accent-border`, `--slotted-tone-accent-on-solid`, `--slotted-tone-accent-solid`, `--slotted-tone-accent-text`, `--slotted-tone-danger-border`, `--slotted-tone-secondary-subtle-active`, `--slotted-tone-secondary-subtle-hover`, `--slotted-tone-warning-border`
107
107
 
108
108
  ## Examples
109
109
 
@@ -392,6 +392,8 @@
392
392
  "--slotted-detail-panel-aside-size-md",
393
393
  "--slotted-detail-panel-aside-size-sm",
394
394
  "--slotted-detail-panel-border",
395
+ "--slotted-detail-panel-footer-backdrop-filter",
396
+ "--slotted-detail-panel-footer-background",
395
397
  "--slotted-detail-panel-gap-lg",
396
398
  "--slotted-detail-panel-gap-md",
397
399
  "--slotted-detail-panel-gap-sm",
@@ -453,9 +455,9 @@
453
455
  {
454
456
  "id": "hosts",
455
457
  "title": "Three hosts, one anatomy",
456
- "note": "The same panel as a page’s content at level 1, as a drawer’s body with the drawer’s own close in the header actions, and as a split’s pane scrolling itself. Nothing in the panel names its host: scroll=\"self\" is the one difference a pane makes.",
458
+ "note": "The same panel as a page’s content at level 1, as a drawer’s body with the drawer’s own close in the header actions, and as a split’s pane scrolling itself. Nothing in the panel names its host: scroll=\"self\" is the one difference a pane makes. A pane that paints a ground of its own declares --slotted-page-ground with that ground, so a sticky section header inside the panel matches the pane and not the page.",
457
459
  "language": "tsx",
458
- "source": "<Drawer open={open} onOpenChange={setOpen}>\n <DrawerPanel>\n <DrawerBody>\n <DetailPanel recordKey={order.id} footer={<OrderFooter />}>\n …\n </DetailPanel>\n </DrawerBody>\n </DrawerPanel>\n</Drawer>;\n\n<DetailPanel recordKey={order.id} scroll=\"self\">\n …\n</DetailPanel>;\n",
460
+ "source": "<Drawer open={open} onOpenChange={setOpen}>\n <DrawerPanel>\n <DrawerBody>\n <DetailPanel recordKey={order.id} footer={<OrderFooter />}>\n …\n </DetailPanel>\n </DrawerBody>\n </DrawerPanel>\n</Drawer>;\n\n<div\n className=\"pane\"\n style={\n {\n background: 'var(--slotted-surface)',\n '--slotted-page-ground': 'var(--slotted-surface)',\n } as CSSProperties\n }\n>\n <DetailPanel recordKey={order.id} scroll=\"self\">\n …\n </DetailPanel>\n</div>;\n",
459
461
  "verdict": "excerpt"
460
462
  },
461
463
  {