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

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 (1059) 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-C7cGnEyJ.js → action-bar-CJgBierN.js} +88 -87
  5. package/dist/action-bar.js +1 -1
  6. package/dist/action-sheet-tRrjm7WQ.js +358 -0
  7. package/dist/action-sheet.js +1 -1
  8. package/dist/alert-BTcqbG8w.js +163 -0
  9. package/dist/alert.js +1 -1
  10. package/dist/app-shell-BlkqQrOx.js +845 -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-zlOPJvIm.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-DCGynpkb.js +222 -0
  24. package/dist/breadcrumb.js +1 -1
  25. package/dist/button-BCVjdzkn.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-qGUJ-kAy.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-CjRTu8m7.js +499 -0
  34. package/dist/carousel.js +1 -1
  35. package/dist/cascader-DqlC1z5b.js +1154 -0
  36. package/dist/cascader.js +1 -1
  37. package/dist/{chart-BNzfIfQe.js → chart-CPFq3jIE.js} +327 -265
  38. package/dist/chart.js +1 -1
  39. package/dist/checkbox-CMY2KIih.js +144 -0
  40. package/dist/checkbox-group-DzMtLF7f.js +109 -0
  41. package/dist/checkbox-group.js +1 -1
  42. package/dist/checkbox.js +1 -1
  43. package/dist/code-block-Bh_2Eg3M.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-DlepH5co.js +506 -0
  48. package/dist/color-picker.js +1 -1
  49. package/dist/column-manager-CV9tCnKa.js +586 -0
  50. package/dist/column-manager.js +1 -1
  51. package/dist/combobox-YWFkxaQ3.js +902 -0
  52. package/dist/combobox.js +1 -1
  53. package/dist/command-palette-DXNq-zKN.js +741 -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-Dbc0KkFp.js +151 -0
  58. package/dist/context-menu.js +1 -1
  59. package/dist/currency-field--wIfgVAx.js +469 -0
  60. package/dist/currency-field.js +1 -1
  61. package/dist/dashboard-grid-D_LbWfdZ.js +1048 -0
  62. package/dist/dashboard-grid.js +1 -1
  63. package/dist/{data-grid-BUgOJuGp.js → data-grid-XH5fGoGj.js} +1344 -1188
  64. package/dist/data-grid.js +1 -1
  65. package/dist/{data-list-2xfDpHVC.js → data-list-DZCN_uW1.js} +173 -147
  66. package/dist/data-list.js +1 -1
  67. package/dist/date-field-BrNyJBiJ.js +299 -0
  68. package/dist/date-field.js +1 -1
  69. package/dist/date-picker-Nl55so0C.js +316 -0
  70. package/dist/date-picker.js +1 -1
  71. package/dist/date-range-picker-DLkvfUJD.js +501 -0
  72. package/dist/date-range-picker.js +1 -1
  73. package/dist/datetime-field-CZRhRDPb.js +424 -0
  74. package/dist/datetime-field.js +1 -1
  75. package/dist/datetime-picker-_GHra2WL.js +662 -0
  76. package/dist/datetime-picker.js +1 -1
  77. package/dist/datetime-range-picker-Dy1A0Wqy.js +1029 -0
  78. package/dist/datetime-range-picker.js +1 -1
  79. package/dist/description-list-Cc4JYZ-3.js +240 -0
  80. package/dist/description-list.js +1 -1
  81. package/dist/{detail-panel-qOJiNuzr.js → detail-panel-BI_wHSoz.js} +103 -95
  82. package/dist/detail-panel.js +1 -1
  83. package/dist/dialog-B6MP7GYI.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/alert.json +7 -1
  89. package/dist/docs/alert.md +3 -3
  90. package/dist/docs/app-shell.examples.md +1 -1
  91. package/dist/docs/app-shell.json +5 -5
  92. package/dist/docs/app-shell.md +2 -2
  93. package/dist/docs/avatar.json +22 -1
  94. package/dist/docs/avatar.md +5 -3
  95. package/dist/docs/badge.json +7 -1
  96. package/dist/docs/badge.md +3 -3
  97. package/dist/docs/button-group.json +2 -0
  98. package/dist/docs/button-group.md +1 -1
  99. package/dist/docs/button.json +51 -11
  100. package/dist/docs/button.md +10 -6
  101. package/dist/docs/calendar.json +8 -1
  102. package/dist/docs/calendar.md +1 -0
  103. package/dist/docs/cascader.json +1 -0
  104. package/dist/docs/cascader.md +1 -1
  105. package/dist/docs/chart.examples.md +1 -1
  106. package/dist/docs/chart.json +10 -1
  107. package/dist/docs/chart.md +3 -2
  108. package/dist/docs/code-block.json +93 -93
  109. package/dist/docs/code-block.md +71 -71
  110. package/dist/docs/collapsible.json +1 -1
  111. package/dist/docs/collapsible.md +1 -1
  112. package/dist/docs/combobox.json +1 -0
  113. package/dist/docs/combobox.md +1 -1
  114. package/dist/docs/currency-field.json +40 -1
  115. package/dist/docs/currency-field.md +5 -1
  116. package/dist/docs/data-grid.examples.md +2 -2
  117. package/dist/docs/data-grid.json +24 -7
  118. package/dist/docs/data-grid.md +1 -1
  119. package/dist/docs/data-grid.props.md +6 -4
  120. package/dist/docs/data-list.json +2 -1
  121. package/dist/docs/data-list.md +1 -1
  122. package/dist/docs/date-field.json +9 -1
  123. package/dist/docs/date-field.md +3 -2
  124. package/dist/docs/date-picker.examples.md +29 -0
  125. package/dist/docs/date-picker.json +16 -1
  126. package/dist/docs/date-picker.md +2 -1
  127. package/dist/docs/datetime-field.json +1 -0
  128. package/dist/docs/datetime-field.md +1 -1
  129. package/dist/docs/dialog.examples.md +144 -116
  130. package/dist/docs/dialog.json +35 -11
  131. package/dist/docs/dialog.md +5 -3
  132. package/dist/docs/drawer.json +5 -0
  133. package/dist/docs/drawer.md +1 -0
  134. package/dist/docs/entity-picker.json +18 -3
  135. package/dist/docs/entity-picker.md +11 -4
  136. package/dist/docs/event-calendar.json +7 -0
  137. package/dist/docs/event-calendar.md +1 -0
  138. package/dist/docs/filter-bar.json +115 -115
  139. package/dist/docs/filter-bar.md +78 -78
  140. package/dist/docs/form.json +2 -1
  141. package/dist/docs/form.md +1 -1
  142. package/dist/docs/guidelines/README.md +27 -0
  143. package/dist/docs/guidelines/async-feedback.md +129 -0
  144. package/dist/docs/guidelines/browsing.md +74 -0
  145. package/dist/docs/guidelines/builders.md +97 -0
  146. package/dist/docs/guidelines/composition.md +143 -0
  147. package/dist/docs/guidelines/conversations.md +59 -0
  148. package/dist/docs/guidelines/errors-and-conflicts.md +71 -0
  149. package/dist/docs/guidelines/forms.md +202 -0
  150. package/dist/docs/guidelines/index.md +129 -0
  151. package/dist/docs/guidelines/layout-alignment.md +95 -0
  152. package/dist/docs/guidelines/ledgers.md +45 -0
  153. package/dist/docs/guidelines/list-pages.md +206 -0
  154. package/dist/docs/guidelines/overviews.md +76 -0
  155. package/dist/docs/guidelines/own-elements.md +115 -0
  156. package/dist/docs/guidelines/reading-permissions.md +55 -0
  157. package/dist/docs/guidelines/record-pages.md +178 -0
  158. package/dist/docs/guidelines/reports.md +123 -0
  159. package/dist/docs/guidelines/shell-composition.md +94 -0
  160. package/dist/docs/guidelines/workspaces.md +46 -0
  161. package/dist/docs/icon.json +3 -1
  162. package/dist/docs/icon.md +3 -3
  163. package/dist/docs/index.md +12 -0
  164. package/dist/docs/inline-message.json +15 -3
  165. package/dist/docs/inline-message.md +5 -3
  166. package/dist/docs/list-item.json +9 -1
  167. package/dist/docs/list-item.md +3 -3
  168. package/dist/docs/list.json +26 -1
  169. package/dist/docs/list.md +4 -1
  170. package/dist/docs/markdown.json +75 -75
  171. package/dist/docs/markdown.md +63 -63
  172. package/dist/docs/menu.json +12 -0
  173. package/dist/docs/menu.md +2 -0
  174. package/dist/docs/message.json +7 -1
  175. package/dist/docs/message.md +3 -3
  176. package/dist/docs/multi-select.json +1 -0
  177. package/dist/docs/multi-select.md +1 -1
  178. package/dist/docs/notification-center.json +4 -0
  179. package/dist/docs/notification-center.md +2 -2
  180. package/dist/docs/number-field.json +1 -0
  181. package/dist/docs/number-field.md +1 -1
  182. package/dist/docs/otp-input.json +1 -0
  183. package/dist/docs/otp-input.md +1 -1
  184. package/dist/docs/page-header.json +3 -2
  185. package/dist/docs/page-header.md +2 -2
  186. package/dist/docs/page.json +1 -0
  187. package/dist/docs/page.md +1 -0
  188. package/dist/docs/popover.json +1 -1
  189. package/dist/docs/progress-indicator.json +4 -3
  190. package/dist/docs/progress-indicator.md +4 -4
  191. package/dist/docs/prompt-composer.json +41 -1
  192. package/dist/docs/prompt-composer.md +5 -1
  193. package/dist/docs/rating.json +5 -3
  194. package/dist/docs/rating.md +5 -5
  195. package/dist/docs/section.json +26 -14
  196. package/dist/docs/section.md +14 -8
  197. package/dist/docs/segmented-control.json +36 -12
  198. package/dist/docs/segmented-control.md +17 -1
  199. package/dist/docs/select.json +2 -1
  200. package/dist/docs/select.md +2 -2
  201. package/dist/docs/side-navigation.json +3 -2
  202. package/dist/docs/side-navigation.md +20 -5
  203. package/dist/docs/skills/build-own-element/SKILL.md +90 -0
  204. package/dist/docs/skills/compose-screen/SKILL.md +95 -0
  205. package/dist/docs/skills/index.md +9 -0
  206. package/dist/docs/skills/review-screen/SKILL.md +77 -0
  207. package/dist/docs/skills/theme-app/SKILL.md +87 -0
  208. package/dist/docs/skills/waiting-states/SKILL.md +143 -0
  209. package/dist/docs/sparkline.json +5 -2
  210. package/dist/docs/sparkline.md +4 -4
  211. package/dist/docs/split-button.json +4 -1
  212. package/dist/docs/split-button.md +3 -3
  213. package/dist/docs/stat-card.json +5 -1
  214. package/dist/docs/stat-card.md +3 -3
  215. package/dist/docs/table.examples.md +14 -18
  216. package/dist/docs/table.json +94 -5
  217. package/dist/docs/table.md +14 -1
  218. package/dist/docs/tabs.examples.md +1 -1
  219. package/dist/docs/tabs.json +27 -9
  220. package/dist/docs/tabs.md +6 -3
  221. package/dist/docs/tag.json +14 -4
  222. package/dist/docs/tag.md +6 -6
  223. package/dist/docs/tags-input.json +29 -2
  224. package/dist/docs/tags-input.md +4 -1
  225. package/dist/docs/text-field.json +2 -1
  226. package/dist/docs/text-field.md +2 -2
  227. package/dist/docs/textarea.examples.md +504 -0
  228. package/dist/docs/textarea.json +1 -0
  229. package/dist/docs/textarea.md +2 -498
  230. package/dist/docs/time-field.json +1 -0
  231. package/dist/docs/time-field.md +1 -1
  232. package/dist/docs/timeline.json +136 -130
  233. package/dist/docs/timeline.md +122 -122
  234. package/dist/docs/toast.json +7 -1
  235. package/dist/docs/toast.md +3 -3
  236. package/dist/docs/toggle-group.json +14 -3
  237. package/dist/docs/toggle-group.md +3 -3
  238. package/dist/docs/toggle.json +12 -3
  239. package/dist/docs/toggle.md +3 -3
  240. package/dist/docs/tokens.md +467 -0
  241. package/dist/docs/top-navigation.examples.md +23 -5
  242. package/dist/docs/top-navigation.json +2 -2
  243. package/dist/docs/tour.json +1 -1
  244. package/dist/docs/typography.json +4 -2
  245. package/dist/docs/typography.md +4 -4
  246. package/dist/drawer-CkpFlKYa.js +772 -0
  247. package/dist/drawer.js +1 -1
  248. package/dist/entity-picker-CFwLGQeU.js +1281 -0
  249. package/dist/entity-picker.js +2 -2
  250. package/dist/{event-calendar-BFdeGfC-.js → event-calendar-BDjI5T44.js} +465 -395
  251. package/dist/event-calendar.js +1 -1
  252. package/dist/field-CzSGs7wo.js +367 -0
  253. package/dist/field-group-CCM2vPKL.js +138 -0
  254. package/dist/field-group.js +1 -1
  255. package/dist/field.js +1 -1
  256. package/dist/filter-bar-G50WdRac.js +1340 -0
  257. package/dist/filter-bar.js +1 -1
  258. package/dist/{form-vTCQhZM-.js → form-CDq04WDY.js} +96 -87
  259. package/dist/form.js +1 -1
  260. package/dist/fullscreen-6GW4naDP.js +190 -0
  261. package/dist/fullscreen.js +1 -1
  262. package/dist/grid-l7xi6DUg.js +26 -0
  263. package/dist/grid.js +1 -1
  264. package/dist/highlight-9lRPIZ9O.js +59 -0
  265. package/dist/highlight.js +1 -1
  266. package/dist/hover-card-aadyPXzF.js +215 -0
  267. package/dist/hover-card.js +1 -1
  268. package/dist/icon-DjqSEQ-o.js +75 -0
  269. package/dist/icon-button-CRB218_z.js +222 -0
  270. package/dist/icon.js +1 -1
  271. package/dist/{image-DpDFrrXL.js → image-Ajqo38Uz.js} +24 -20
  272. package/dist/image.js +1 -1
  273. package/dist/import-export-center-DUrNwRKP.js +865 -0
  274. package/dist/import-export-center.js +1 -1
  275. package/dist/index.js +127 -126
  276. package/dist/inline-CqF8iT4m.js +17 -0
  277. package/dist/inline-message-DM7mf2cM.js +119 -0
  278. package/dist/inline-message.js +2 -2
  279. package/dist/inline.js +1 -1
  280. package/dist/kbd-Z4YmSPRy.js +105 -0
  281. package/dist/kbd.js +1 -1
  282. package/dist/link-BsSlZ1ts.js +91 -0
  283. package/dist/link.js +1 -1
  284. package/dist/list-B7gaPH1U.js +95 -0
  285. package/dist/list-item-DMeNfokY.js +125 -0
  286. package/dist/list-item.js +1 -1
  287. package/dist/list.js +1 -1
  288. package/dist/listbox-VFcfZT70.js +626 -0
  289. package/dist/listbox.js +1 -1
  290. package/dist/loading-overlay-BZPBDK4w.js +218 -0
  291. package/dist/loading-overlay.js +1 -1
  292. package/dist/markdown-BmCU_sOv.js +306 -0
  293. package/dist/markdown.js +1 -1
  294. package/dist/menu-parts-DS9JEUCt.js +805 -0
  295. package/dist/menu.js +1 -1
  296. package/dist/menubar-BV43BKep.js +157 -0
  297. package/dist/menubar.js +1 -1
  298. package/dist/message-Dtck9RJy.js +434 -0
  299. package/dist/message-scroller-niUJ8RoL.js +216 -0
  300. package/dist/message-scroller.js +1 -1
  301. package/dist/message.js +1 -1
  302. package/dist/multi-select-YaxhhH9y.js +1257 -0
  303. package/dist/multi-select.js +1 -1
  304. package/dist/navigation-menu-parts-B64gKl8B.js +492 -0
  305. package/dist/navigation-menu.js +1 -1
  306. package/dist/notification-center-Ci-OLWTO.js +516 -0
  307. package/dist/notification-center.js +1 -1
  308. package/dist/number-field-BYQmPyM-.js +345 -0
  309. package/dist/number-field.js +1 -1
  310. package/dist/{otp-input-Bf8JUiVR.js → otp-input-BKO0WPZc.js} +75 -72
  311. package/dist/otp-input.js +1 -1
  312. package/dist/page-CfjGviUA.js +179 -0
  313. package/dist/page-header-w_PFLnLG.js +369 -0
  314. package/dist/page-header.js +1 -1
  315. package/dist/page.js +1 -1
  316. package/dist/pagination-Cm9665gb.js +299 -0
  317. package/dist/pagination.js +1 -1
  318. package/dist/popover-D1krYeP-.js +500 -0
  319. package/dist/popover.js +1 -1
  320. package/dist/press-selection-DjOllE2B.js +29 -0
  321. package/dist/press-selection.js +2 -0
  322. package/dist/progress-indicator-D0acshNn.js +292 -0
  323. package/dist/progress-indicator.js +1 -1
  324. package/dist/prompt-composer-sh_TXKYZ.js +273 -0
  325. package/dist/prompt-composer.js +1 -1
  326. package/dist/prose-Bl5OjXTb.js +92 -0
  327. package/dist/prose.js +1 -1
  328. package/dist/radio-group-D9VTBLUB.js +143 -0
  329. package/dist/radio-group.js +1 -1
  330. package/dist/rating-BRqsV5OF.js +501 -0
  331. package/dist/rating.js +1 -1
  332. package/dist/result-state-BMYhelu1.js +128 -0
  333. package/dist/result-state.js +1 -1
  334. package/dist/saved-views-C_76obIv.js +456 -0
  335. package/dist/saved-views.js +1 -1
  336. package/dist/scroll-area-vrm2bbtZ.js +112 -0
  337. package/dist/scroll-area.js +1 -1
  338. package/dist/section-DY8yPm11.js +177 -0
  339. package/dist/section.js +2 -2
  340. package/dist/segmented-control-5DTOKO3g.js +156 -0
  341. package/dist/segmented-control.js +1 -1
  342. package/dist/select-BFx5EgAa.js +1018 -0
  343. package/dist/{select-tags-CQMcHIQN.js → select-tags-CMe5rzql.js} +11 -1
  344. package/dist/select.js +1 -1
  345. package/dist/side-navigation-MNMSkj9b.js +747 -0
  346. package/dist/side-navigation.js +1 -1
  347. package/dist/skeleton-DyOwgYmF.js +149 -0
  348. package/dist/skeleton.js +1 -1
  349. package/dist/slider-OMe1DAC-.js +264 -0
  350. package/dist/slider.js +1 -1
  351. package/dist/sparkline-ChkaLVdY.js +152 -0
  352. package/dist/sparkline.js +1 -1
  353. package/dist/split-button-DbmRwfMC.js +136 -0
  354. package/dist/split-button.js +1 -1
  355. package/dist/splitter-CspZHJz4.js +293 -0
  356. package/dist/splitter.js +1 -1
  357. package/dist/stack-BbgvuQ7m.js +16 -0
  358. package/dist/stack.js +1 -1
  359. package/dist/stat-card-BSnsTmsq.js +247 -0
  360. package/dist/stat-card.js +1 -1
  361. package/dist/status-indicator-CyKhBdvN.js +78 -0
  362. package/dist/status-indicator.js +1 -1
  363. package/dist/stepper-Cw1Auv3n.js +261 -0
  364. package/dist/stepper.js +1 -1
  365. package/dist/styles/accordion.css +2 -0
  366. package/dist/styles/action-bar.css +8 -0
  367. package/dist/styles/action-sheet.css +8 -0
  368. package/dist/styles/alert.css +4 -0
  369. package/dist/styles/app-shell.css +8 -0
  370. package/dist/styles/aspect-ratio.css +2 -0
  371. package/dist/styles/attachment.css +8 -0
  372. package/dist/styles/avatar-group.css +6 -0
  373. package/dist/styles/avatar.css +4 -0
  374. package/dist/styles/badge.css +2 -0
  375. package/dist/styles/breadcrumb.css +4 -0
  376. package/dist/styles/button-group.css +2 -0
  377. package/dist/styles/button.css +4 -0
  378. package/dist/styles/calendar.css +4 -0
  379. package/dist/styles/card.css +2 -0
  380. package/dist/styles/carousel.css +4 -0
  381. package/dist/styles/cascader.css +20 -0
  382. package/dist/styles/chart.css +10 -0
  383. package/dist/styles/checkbox-group.css +12 -0
  384. package/dist/styles/checkbox.css +14 -0
  385. package/dist/styles/code-block.css +10 -0
  386. package/dist/styles/collapsible.css +6 -0
  387. package/dist/styles/color-picker.css +18 -0
  388. package/dist/styles/column-manager.css +32 -0
  389. package/dist/styles/combobox.css +12 -0
  390. package/dist/styles/command-palette.css +14 -0
  391. package/dist/styles/container.css +2 -0
  392. package/dist/styles/context-menu.css +8 -0
  393. package/dist/styles/currency-field.css +10 -0
  394. package/dist/styles/dashboard-grid.css +20 -0
  395. package/dist/styles/data-grid.css +64 -0
  396. package/dist/styles/data-list.css +34 -0
  397. package/dist/styles/date-field.css +10 -0
  398. package/dist/styles/date-picker.css +14 -0
  399. package/dist/styles/date-range-picker.css +14 -0
  400. package/dist/styles/datetime-field.css +10 -0
  401. package/dist/styles/datetime-picker.css +14 -0
  402. package/dist/styles/datetime-range-picker.css +14 -0
  403. package/dist/styles/description-list.css +6 -0
  404. package/dist/styles/detail-panel.css +24 -0
  405. package/dist/styles/dialog.css +4 -0
  406. package/dist/styles/divider.css +2 -0
  407. package/dist/styles/drawer.css +4 -0
  408. package/dist/styles/entity-picker.css +22 -0
  409. package/dist/styles/event-calendar.css +28 -0
  410. package/dist/styles/field-group.css +10 -0
  411. package/dist/styles/field.css +8 -0
  412. package/dist/styles/filter-bar.css +54 -0
  413. package/dist/styles/form.css +2 -0
  414. package/dist/styles/fullscreen.css +4 -0
  415. package/dist/styles/grid.css +2 -0
  416. package/dist/styles/highlight.css +2 -0
  417. package/dist/styles/hover-card.css +6 -0
  418. package/dist/styles/i18n.css +1 -0
  419. package/dist/styles/icon.css +2 -0
  420. package/dist/styles/image.css +6 -0
  421. package/dist/styles/import-export-center.css +70 -0
  422. package/dist/styles/index.css +248 -0
  423. package/dist/styles/inline-message.css +4 -0
  424. package/dist/styles/inline.css +2 -0
  425. package/dist/styles/kbd.css +2 -0
  426. package/dist/styles/link.css +6 -0
  427. package/dist/styles/list-item.css +6 -0
  428. package/dist/styles/list.css +2 -0
  429. package/dist/styles/listbox.css +10 -0
  430. package/dist/styles/loading-overlay.css +6 -0
  431. package/dist/styles/markdown.css +34 -0
  432. package/dist/styles/menu.css +6 -0
  433. package/dist/styles/menubar.css +8 -0
  434. package/dist/styles/message-scroller.css +4 -0
  435. package/dist/styles/message.css +4 -0
  436. package/dist/styles/multi-select.css +18 -0
  437. package/dist/styles/navigation-menu.css +4 -0
  438. package/dist/styles/notification-center.css +16 -0
  439. package/dist/styles/number-field.css +10 -0
  440. package/dist/styles/otp-input.css +10 -0
  441. package/dist/styles/page-header.css +16 -0
  442. package/dist/styles/page.css +6 -0
  443. package/dist/styles/pagination.css +4 -0
  444. package/dist/styles/popover.css +4 -0
  445. package/dist/styles/press-selection.css +1 -0
  446. package/dist/styles/progress-indicator.css +4 -0
  447. package/dist/styles/prompt-composer.css +12 -0
  448. package/dist/styles/prose.css +2 -0
  449. package/dist/styles/radio-group.css +12 -0
  450. package/dist/styles/rating.css +10 -0
  451. package/dist/styles/result-state.css +2 -0
  452. package/dist/styles/saved-views.css +20 -0
  453. package/dist/styles/scroll-area.css +2 -0
  454. package/dist/styles/section.css +4 -0
  455. package/dist/styles/segmented-control.css +12 -0
  456. package/dist/styles/select.css +14 -0
  457. package/dist/styles/side-navigation.css +14 -0
  458. package/dist/styles/skeleton.css +4 -0
  459. package/dist/styles/slider.css +10 -0
  460. package/dist/styles/sparkline.css +2 -0
  461. package/dist/styles/split-button.css +12 -0
  462. package/dist/styles/splitter.css +2 -0
  463. package/dist/styles/stack.css +2 -0
  464. package/dist/styles/stat-card.css +8 -0
  465. package/dist/styles/status-indicator.css +6 -0
  466. package/dist/styles/stepper.css +6 -0
  467. package/dist/styles/switch.css +12 -0
  468. package/dist/styles/table-of-contents.css +8 -0
  469. package/dist/styles/table.css +60 -0
  470. package/dist/styles/tabs.css +4 -0
  471. package/dist/styles/tag.css +4 -0
  472. package/dist/styles/tags-input.css +12 -0
  473. package/dist/styles/text-field.css +10 -0
  474. package/dist/styles/textarea.css +10 -0
  475. package/dist/styles/theme.css +1 -0
  476. package/dist/styles/time-field.css +10 -0
  477. package/dist/styles/time-picker.css +12 -0
  478. package/dist/styles/time-range-picker.css +12 -0
  479. package/dist/styles/timeline.css +8 -0
  480. package/dist/styles/toast.css +8 -0
  481. package/dist/styles/toggle-group.css +10 -0
  482. package/dist/styles/toggle.css +2 -0
  483. package/dist/styles/toolbar.css +8 -0
  484. package/dist/styles/tooltip.css +2 -0
  485. package/dist/styles/top-navigation.css +14 -0
  486. package/dist/styles/tour.css +8 -0
  487. package/dist/styles/transfer.css +26 -0
  488. package/dist/styles/tree.css +6 -0
  489. package/dist/styles/typography.css +2 -0
  490. package/dist/styles/upload.css +16 -0
  491. package/dist/styles/visually-hidden.css +2 -0
  492. package/dist/styles/wizard.css +22 -0
  493. package/dist/styles.css +1 -1
  494. package/dist/switch-CQ1rpuKa.js +144 -0
  495. package/dist/switch.js +1 -1
  496. package/dist/table-DpGTPtnb.js +1019 -0
  497. package/dist/table-of-contents-BFVERMZy.js +471 -0
  498. package/dist/table-of-contents.js +1 -1
  499. package/dist/table.js +2 -2
  500. package/dist/tabs-DjEpS9uq.js +361 -0
  501. package/dist/tabs.js +1 -1
  502. package/dist/tag-aX7uyAN0.js +374 -0
  503. package/dist/tag.js +1 -1
  504. package/dist/tags-input-BgpS22sf.js +729 -0
  505. package/dist/tags-input.js +1 -1
  506. package/dist/text-field-DL_uhNXV.js +203 -0
  507. package/dist/text-field.js +1 -1
  508. package/dist/textarea-DNCjsQYd.js +100 -0
  509. package/dist/textarea.js +1 -1
  510. package/dist/time-field-Cm6iBjwH.js +366 -0
  511. package/dist/time-field.js +1 -1
  512. package/dist/time-picker-Ce18FSO2.js +415 -0
  513. package/dist/time-picker.js +1 -1
  514. package/dist/time-range-picker-kDnw4PQ3.js +779 -0
  515. package/dist/time-range-picker.js +1 -1
  516. package/dist/timeline-pEL30Jp8.js +446 -0
  517. package/dist/timeline.js +1 -1
  518. package/dist/{toast-wI8BtPY5.js → toast-58ex8PDK.js} +111 -109
  519. package/dist/toast.js +1 -1
  520. package/dist/toggle-group-YxVJlCnI.js +145 -0
  521. package/dist/toggle-group.js +1 -1
  522. package/dist/toggle-zDTD5G3H.js +67 -0
  523. package/dist/toggle.js +1 -1
  524. package/dist/toolbar-BtIyVbs4.js +241 -0
  525. package/dist/toolbar.js +1 -1
  526. package/dist/tooltip-DrFiRlH8.js +411 -0
  527. package/dist/tooltip.js +1 -1
  528. package/dist/top-navigation-DorkYBnR.js +744 -0
  529. package/dist/top-navigation.js +1 -1
  530. package/dist/tour-CwK_m_Jp.js +809 -0
  531. package/dist/tour.js +1 -1
  532. package/dist/transfer-DxGDWIEt.js +606 -0
  533. package/dist/transfer.js +1 -1
  534. package/dist/tree-DbLRyItM.js +792 -0
  535. package/dist/tree.js +1 -1
  536. package/dist/types/accordion/accordion.d.ts.map +1 -1
  537. package/dist/types/action-bar/action-bar-overflow.d.ts.map +1 -1
  538. package/dist/types/action-bar/action-bar-parts.d.ts.map +1 -1
  539. package/dist/types/action-bar/action-bar.d.ts.map +1 -1
  540. package/dist/types/action-sheet/action-sheet-parts.d.ts.map +1 -1
  541. package/dist/types/alert/alert-parts.d.ts.map +1 -1
  542. package/dist/types/alert/alert.d.ts.map +1 -1
  543. package/dist/types/alert/alert.types.d.ts +1 -1
  544. package/dist/types/alert/alert.types.d.ts.map +1 -1
  545. package/dist/types/app-shell/app-shell-parts.d.ts +6 -4
  546. package/dist/types/app-shell/app-shell-parts.d.ts.map +1 -1
  547. package/dist/types/app-shell/app-shell.d.ts.map +1 -1
  548. package/dist/types/aspect-ratio/aspect-ratio.d.ts.map +1 -1
  549. package/dist/types/attachment/attachment-parts.d.ts.map +1 -1
  550. package/dist/types/attachment/attachment.d.ts.map +1 -1
  551. package/dist/types/avatar/avatar.d.ts +1 -1
  552. package/dist/types/avatar/avatar.d.ts.map +1 -1
  553. package/dist/types/avatar/avatar.types.d.ts +10 -1
  554. package/dist/types/avatar/avatar.types.d.ts.map +1 -1
  555. package/dist/types/avatar/index.d.ts +1 -1
  556. package/dist/types/avatar/index.d.ts.map +1 -1
  557. package/dist/types/avatar-group/avatar-group.d.ts.map +1 -1
  558. package/dist/types/badge/badge-anchor.d.ts.map +1 -1
  559. package/dist/types/badge/badge.d.ts.map +1 -1
  560. package/dist/types/badge/badge.types.d.ts +1 -1
  561. package/dist/types/badge/badge.types.d.ts.map +1 -1
  562. package/dist/types/breadcrumb/breadcrumb-parts.d.ts.map +1 -1
  563. package/dist/types/breadcrumb/breadcrumb.d.ts.map +1 -1
  564. package/dist/types/breadcrumb/breadcrumb.types.d.ts +2 -1
  565. package/dist/types/breadcrumb/breadcrumb.types.d.ts.map +1 -1
  566. package/dist/types/button/button-content.d.ts.map +1 -1
  567. package/dist/types/button/button-indicator.d.ts.map +1 -1
  568. package/dist/types/button/button-link.d.ts +1 -1
  569. package/dist/types/button/button-link.d.ts.map +1 -1
  570. package/dist/types/button/button-root.d.ts +7 -5
  571. package/dist/types/button/button-root.d.ts.map +1 -1
  572. package/dist/types/button/button.constants.d.ts +2 -1
  573. package/dist/types/button/button.constants.d.ts.map +1 -1
  574. package/dist/types/button/button.d.ts +1 -1
  575. package/dist/types/button/button.d.ts.map +1 -1
  576. package/dist/types/button/button.types.d.ts +11 -3
  577. package/dist/types/button/button.types.d.ts.map +1 -1
  578. package/dist/types/button/icon-button.d.ts.map +1 -1
  579. package/dist/types/button/index.d.ts +1 -1
  580. package/dist/types/button/index.d.ts.map +1 -1
  581. package/dist/types/button/toggle-button.d.ts +1 -1
  582. package/dist/types/button/toggle-button.d.ts.map +1 -1
  583. package/dist/types/button-group/button-group-separator.d.ts.map +1 -1
  584. package/dist/types/button-group/button-group.d.ts.map +1 -1
  585. package/dist/types/calendar/calendar.d.ts +1 -1
  586. package/dist/types/calendar/calendar.d.ts.map +1 -1
  587. package/dist/types/calendar/calendar.types.d.ts +9 -0
  588. package/dist/types/calendar/calendar.types.d.ts.map +1 -1
  589. package/dist/types/calendar/index.d.ts +1 -1
  590. package/dist/types/calendar/index.d.ts.map +1 -1
  591. package/dist/types/card/card-actions.d.ts.map +1 -1
  592. package/dist/types/card/card-body.d.ts.map +1 -1
  593. package/dist/types/card/card-footer.d.ts.map +1 -1
  594. package/dist/types/card/card-header.d.ts.map +1 -1
  595. package/dist/types/card/card-link.d.ts.map +1 -1
  596. package/dist/types/card/card-media.d.ts.map +1 -1
  597. package/dist/types/card/card-selection.d.ts.map +1 -1
  598. package/dist/types/card/card.d.ts.map +1 -1
  599. package/dist/types/card/card.types.d.ts +2 -1
  600. package/dist/types/card/card.types.d.ts.map +1 -1
  601. package/dist/types/carousel/carousel-parts.d.ts.map +1 -1
  602. package/dist/types/carousel/carousel.d.ts.map +1 -1
  603. package/dist/types/cascader/cascader-surface.d.ts.map +1 -1
  604. package/dist/types/cascader/cascader.d.ts.map +1 -1
  605. package/dist/types/chart/chart.d.ts.map +1 -1
  606. package/dist/types/checkbox/checkbox.d.ts.map +1 -1
  607. package/dist/types/checkbox-group/checkbox-group.d.ts.map +1 -1
  608. package/dist/types/code-block/code-block.d.ts.map +1 -1
  609. package/dist/types/collapsible/collapsible-parts.d.ts.map +1 -1
  610. package/dist/types/collapsible/collapsible.d.ts.map +1 -1
  611. package/dist/types/color-picker/color-picker.d.ts.map +1 -1
  612. package/dist/types/column-manager/column-manager.d.ts.map +1 -1
  613. package/dist/types/combobox/combobox-collection.d.ts +1 -0
  614. package/dist/types/combobox/combobox-collection.d.ts.map +1 -1
  615. package/dist/types/combobox/combobox-items.d.ts.map +1 -1
  616. package/dist/types/combobox/combobox-parts.d.ts.map +1 -1
  617. package/dist/types/combobox/combobox.d.ts.map +1 -1
  618. package/dist/types/command-palette/command-palette.d.ts.map +1 -1
  619. package/dist/types/container/container-breakout.d.ts.map +1 -1
  620. package/dist/types/container/container.d.ts.map +1 -1
  621. package/dist/types/context-menu/context-menu.d.ts.map +1 -1
  622. package/dist/types/currency-field/currency-field-defaults.d.ts.map +1 -1
  623. package/dist/types/currency-field/currency-field.d.ts +1 -1
  624. package/dist/types/currency-field/currency-field.d.ts.map +1 -1
  625. package/dist/types/currency-field/currency-field.types.d.ts +28 -5
  626. package/dist/types/currency-field/currency-field.types.d.ts.map +1 -1
  627. package/dist/types/currency-field/index.d.ts +1 -1
  628. package/dist/types/currency-field/index.d.ts.map +1 -1
  629. package/dist/types/dashboard-grid/dashboard-grid.d.ts.map +1 -1
  630. package/dist/types/dashboard-grid/dashboard-widget.d.ts +1 -1
  631. package/dist/types/dashboard-grid/dashboard-widget.d.ts.map +1 -1
  632. package/dist/types/data-grid/data-grid-body.d.ts.map +1 -1
  633. package/dist/types/data-grid/data-grid-context.d.ts +29 -0
  634. package/dist/types/data-grid/data-grid-context.d.ts.map +1 -1
  635. package/dist/types/data-grid/data-grid-filter.d.ts.map +1 -1
  636. package/dist/types/data-grid/data-grid-header.d.ts.map +1 -1
  637. package/dist/types/data-grid/data-grid.d.ts +1 -1
  638. package/dist/types/data-grid/data-grid.d.ts.map +1 -1
  639. package/dist/types/data-grid/data-grid.types.d.ts +24 -1
  640. package/dist/types/data-grid/data-grid.types.d.ts.map +1 -1
  641. package/dist/types/data-grid/index.d.ts +1 -1
  642. package/dist/types/data-grid/index.d.ts.map +1 -1
  643. package/dist/types/data-list/data-list.d.ts.map +1 -1
  644. package/dist/types/date-field/date-field.d.ts +1 -1
  645. package/dist/types/date-field/date-field.d.ts.map +1 -1
  646. package/dist/types/date-field/date-field.types.d.ts +7 -0
  647. package/dist/types/date-field/date-field.types.d.ts.map +1 -1
  648. package/dist/types/date-picker/date-picker.d.ts +5 -1
  649. package/dist/types/date-picker/date-picker.d.ts.map +1 -1
  650. package/dist/types/date-picker/date-picker.types.d.ts +20 -2
  651. package/dist/types/date-picker/date-picker.types.d.ts.map +1 -1
  652. package/dist/types/date-picker/index.d.ts +1 -1
  653. package/dist/types/date-picker/index.d.ts.map +1 -1
  654. package/dist/types/date-range-picker/date-range-picker.d.ts.map +1 -1
  655. package/dist/types/datetime-field/datetime-field.d.ts.map +1 -1
  656. package/dist/types/datetime-picker/datetime-picker.d.ts.map +1 -1
  657. package/dist/types/datetime-range-picker/datetime-range-picker.d.ts.map +1 -1
  658. package/dist/types/description-list/description-list-parts.d.ts.map +1 -1
  659. package/dist/types/description-list/description-list.d.ts.map +1 -1
  660. package/dist/types/detail-panel/detail-panel-parts.d.ts.map +1 -1
  661. package/dist/types/detail-panel/detail-panel.d.ts.map +1 -1
  662. package/dist/types/dialog/dialog-demo.d.ts +8 -0
  663. package/dist/types/dialog/dialog-demo.d.ts.map +1 -1
  664. package/dist/types/dialog/dialog-parts.d.ts.map +1 -1
  665. package/dist/types/dialog/dialog.d.ts.map +1 -1
  666. package/dist/types/dialog/dialog.types.d.ts +12 -2
  667. package/dist/types/dialog/dialog.types.d.ts.map +1 -1
  668. package/dist/types/divider/divider.d.ts.map +1 -1
  669. package/dist/types/drawer/drawer-parts.d.ts.map +1 -1
  670. package/dist/types/drawer/drawer.d.ts +1 -1
  671. package/dist/types/drawer/drawer.d.ts.map +1 -1
  672. package/dist/types/drawer/drawer.types.d.ts +6 -0
  673. package/dist/types/drawer/drawer.types.d.ts.map +1 -1
  674. package/dist/types/entity-picker/entity-picker-control.d.ts.map +1 -1
  675. package/dist/types/entity-picker/entity-picker-option-parts.d.ts +13 -0
  676. package/dist/types/entity-picker/entity-picker-option-parts.d.ts.map +1 -0
  677. package/dist/types/entity-picker/entity-picker-popup.d.ts +0 -7
  678. package/dist/types/entity-picker/entity-picker-popup.d.ts.map +1 -1
  679. package/dist/types/entity-picker/entity-picker.types.d.ts +8 -0
  680. package/dist/types/entity-picker/entity-picker.types.d.ts.map +1 -1
  681. package/dist/types/entity-picker/index.d.ts +1 -0
  682. package/dist/types/entity-picker/index.d.ts.map +1 -1
  683. package/dist/types/event-calendar/event-calendar-event.d.ts.map +1 -1
  684. package/dist/types/event-calendar/event-calendar-list.d.ts.map +1 -1
  685. package/dist/types/event-calendar/event-calendar-month.d.ts.map +1 -1
  686. package/dist/types/event-calendar/event-calendar-time-grid.d.ts.map +1 -1
  687. package/dist/types/event-calendar/event-calendar.d.ts +1 -1
  688. package/dist/types/event-calendar/event-calendar.d.ts.map +1 -1
  689. package/dist/types/event-calendar/event-calendar.types.d.ts +6 -0
  690. package/dist/types/event-calendar/event-calendar.types.d.ts.map +1 -1
  691. package/dist/types/field/field-parts.d.ts.map +1 -1
  692. package/dist/types/field/field.d.ts.map +1 -1
  693. package/dist/types/field-group/field-group-parts.d.ts.map +1 -1
  694. package/dist/types/field-group/field-group.d.ts.map +1 -1
  695. package/dist/types/filter-bar/filter-bar-rules.d.ts.map +1 -1
  696. package/dist/types/filter-bar/filter-bar.d.ts.map +1 -1
  697. package/dist/types/form/form-parts.d.ts.map +1 -1
  698. package/dist/types/form/form.d.ts.map +1 -1
  699. package/dist/types/fullscreen/fullscreen.d.ts.map +1 -1
  700. package/dist/types/grid/grid.d.ts.map +1 -1
  701. package/dist/types/highlight/highlight.d.ts.map +1 -1
  702. package/dist/types/hover-card/hover-card.d.ts.map +1 -1
  703. package/dist/types/icon/glyph.d.ts.map +1 -1
  704. package/dist/types/icon/icon.d.ts.map +1 -1
  705. package/dist/types/icon/icon.types.d.ts +1 -1
  706. package/dist/types/icon/icon.types.d.ts.map +1 -1
  707. package/dist/types/image/image.d.ts.map +1 -1
  708. package/dist/types/import-export-center/import-export-center.d.ts.map +1 -1
  709. package/dist/types/index.d.ts +1 -0
  710. package/dist/types/index.d.ts.map +1 -1
  711. package/dist/types/inline/inline.d.ts.map +1 -1
  712. package/dist/types/inline-message/index.d.ts +2 -2
  713. package/dist/types/inline-message/index.d.ts.map +1 -1
  714. package/dist/types/inline-message/inline-message-defaults.d.ts +1 -1
  715. package/dist/types/inline-message/inline-message-defaults.d.ts.map +1 -1
  716. package/dist/types/inline-message/inline-message.d.ts +11 -3
  717. package/dist/types/inline-message/inline-message.d.ts.map +1 -1
  718. package/dist/types/inline-message/inline-message.types.d.ts +3 -1
  719. package/dist/types/inline-message/inline-message.types.d.ts.map +1 -1
  720. package/dist/types/kbd/key-element.d.ts.map +1 -1
  721. package/dist/types/kbd/shortcut.d.ts.map +1 -1
  722. package/dist/types/link/link.d.ts.map +1 -1
  723. package/dist/types/link/link.types.d.ts +2 -1
  724. package/dist/types/link/link.types.d.ts.map +1 -1
  725. package/dist/types/list/index.d.ts +1 -1
  726. package/dist/types/list/index.d.ts.map +1 -1
  727. package/dist/types/list/list-parts.d.ts +1 -1
  728. package/dist/types/list/list-parts.d.ts.map +1 -1
  729. package/dist/types/list/list.d.ts.map +1 -1
  730. package/dist/types/list/list.types.d.ts +12 -0
  731. package/dist/types/list/list.types.d.ts.map +1 -1
  732. package/dist/types/list-item/list-item-content.d.ts.map +1 -1
  733. package/dist/types/list-item/list-item-parts.d.ts.map +1 -1
  734. package/dist/types/list-item/list-item.d.ts.map +1 -1
  735. package/dist/types/list-item/list-item.types.d.ts +3 -2
  736. package/dist/types/list-item/list-item.types.d.ts.map +1 -1
  737. package/dist/types/listbox/listbox-parts.d.ts.map +1 -1
  738. package/dist/types/listbox/listbox.d.ts.map +1 -1
  739. package/dist/types/loading-overlay/loading-overlay.d.ts.map +1 -1
  740. package/dist/types/markdown/markdown.d.ts.map +1 -1
  741. package/dist/types/menu/index.d.ts +1 -1
  742. package/dist/types/menu/index.d.ts.map +1 -1
  743. package/dist/types/menu/menu-defaults.d.ts.map +1 -1
  744. package/dist/types/menu/menu-items.d.ts.map +1 -1
  745. package/dist/types/menu/menu-parts.d.ts.map +1 -1
  746. package/dist/types/menu/menu.d.ts +1 -1
  747. package/dist/types/menu/menu.d.ts.map +1 -1
  748. package/dist/types/menu/menu.types.d.ts +13 -1
  749. package/dist/types/menu/menu.types.d.ts.map +1 -1
  750. package/dist/types/menubar/menubar.d.ts.map +1 -1
  751. package/dist/types/message/bubble.d.ts.map +1 -1
  752. package/dist/types/message/message-parts.d.ts.map +1 -1
  753. package/dist/types/message/message.d.ts.map +1 -1
  754. package/dist/types/message/message.types.d.ts +1 -1
  755. package/dist/types/message/message.types.d.ts.map +1 -1
  756. package/dist/types/message-scroller/message-scroller.d.ts.map +1 -1
  757. package/dist/types/multi-select/multi-select-chips.d.ts.map +1 -1
  758. package/dist/types/multi-select/multi-select-collection.d.ts +0 -2
  759. package/dist/types/multi-select/multi-select-collection.d.ts.map +1 -1
  760. package/dist/types/multi-select/multi-select-items.d.ts.map +1 -1
  761. package/dist/types/multi-select/multi-select-parts.d.ts.map +1 -1
  762. package/dist/types/multi-select/multi-select.d.ts.map +1 -1
  763. package/dist/types/navigation-menu/navigation-menu-parts.d.ts.map +1 -1
  764. package/dist/types/navigation-menu/navigation-menu.d.ts.map +1 -1
  765. package/dist/types/navigation-menu/navigation-menu.types.d.ts +2 -1
  766. package/dist/types/navigation-menu/navigation-menu.types.d.ts.map +1 -1
  767. package/dist/types/notification-center/notification-center.d.ts.map +1 -1
  768. package/dist/types/notification-center/notification-center.types.d.ts +1 -1
  769. package/dist/types/notification-center/notification-center.types.d.ts.map +1 -1
  770. package/dist/types/number-field/number-field.d.ts.map +1 -1
  771. package/dist/types/otp-input/otp-input.d.ts.map +1 -1
  772. package/dist/types/page/page.d.ts.map +1 -1
  773. package/dist/types/page-header/page-header-parts.d.ts +3 -3
  774. package/dist/types/page-header/page-header-parts.d.ts.map +1 -1
  775. package/dist/types/page-header/page-header.d.ts.map +1 -1
  776. package/dist/types/page-header/page-header.types.d.ts +2 -1
  777. package/dist/types/page-header/page-header.types.d.ts.map +1 -1
  778. package/dist/types/pagination/pagination-parts.d.ts.map +1 -1
  779. package/dist/types/pagination/pagination.d.ts.map +1 -1
  780. package/dist/types/popover/popover-parts.d.ts.map +1 -1
  781. package/dist/types/press-selection/index.d.ts +3 -0
  782. package/dist/types/press-selection/index.d.ts.map +1 -0
  783. package/dist/types/press-selection/press-selection.d.ts +23 -0
  784. package/dist/types/press-selection/press-selection.d.ts.map +1 -0
  785. package/dist/types/progress-indicator/progress-bar.d.ts.map +1 -1
  786. package/dist/types/progress-indicator/progress-circle.d.ts.map +1 -1
  787. package/dist/types/progress-indicator/progress-indicator.types.d.ts +1 -1
  788. package/dist/types/progress-indicator/progress-indicator.types.d.ts.map +1 -1
  789. package/dist/types/progress-indicator/progress-parts.d.ts.map +1 -1
  790. package/dist/types/progress-indicator/use-progress-indicator.d.ts +6 -0
  791. package/dist/types/progress-indicator/use-progress-indicator.d.ts.map +1 -1
  792. package/dist/types/prompt-composer/index.d.ts +1 -1
  793. package/dist/types/prompt-composer/index.d.ts.map +1 -1
  794. package/dist/types/prompt-composer/prompt-composer-defaults.d.ts.map +1 -1
  795. package/dist/types/prompt-composer/prompt-composer.d.ts +1 -1
  796. package/dist/types/prompt-composer/prompt-composer.d.ts.map +1 -1
  797. package/dist/types/prompt-composer/prompt-composer.types.d.ts +9 -0
  798. package/dist/types/prompt-composer/prompt-composer.types.d.ts.map +1 -1
  799. package/dist/types/prose/prose-parts.d.ts.map +1 -1
  800. package/dist/types/prose/prose-scroll.d.ts.map +1 -1
  801. package/dist/types/prose/prose.d.ts.map +1 -1
  802. package/dist/types/radio-group/radio-group-parts.d.ts.map +1 -1
  803. package/dist/types/radio-group/radio-group.d.ts.map +1 -1
  804. package/dist/types/rating/rating-display.d.ts.map +1 -1
  805. package/dist/types/rating/rating-summary.d.ts.map +1 -1
  806. package/dist/types/rating/rating.d.ts.map +1 -1
  807. package/dist/types/rating/rating.types.d.ts +1 -1
  808. package/dist/types/rating/rating.types.d.ts.map +1 -1
  809. package/dist/types/result-state/result-state-parts.d.ts.map +1 -1
  810. package/dist/types/result-state/result-state.d.ts.map +1 -1
  811. package/dist/types/saved-views/saved-views.d.ts.map +1 -1
  812. package/dist/types/scroll-area/scroll-area.d.ts.map +1 -1
  813. package/dist/types/section/index.d.ts +1 -1
  814. package/dist/types/section/index.d.ts.map +1 -1
  815. package/dist/types/section/section-parts.d.ts +9 -1
  816. package/dist/types/section/section-parts.d.ts.map +1 -1
  817. package/dist/types/section/section.d.ts.map +1 -1
  818. package/dist/types/segmented-control/index.d.ts +1 -1
  819. package/dist/types/segmented-control/index.d.ts.map +1 -1
  820. package/dist/types/segmented-control/segmented-control-defaults.d.ts.map +1 -1
  821. package/dist/types/segmented-control/segmented-control-parts.d.ts.map +1 -1
  822. package/dist/types/segmented-control/segmented-control.d.ts +1 -1
  823. package/dist/types/segmented-control/segmented-control.d.ts.map +1 -1
  824. package/dist/types/segmented-control/segmented-control.types.d.ts +10 -0
  825. package/dist/types/segmented-control/segmented-control.types.d.ts.map +1 -1
  826. package/dist/types/select/select-collection.d.ts +0 -2
  827. package/dist/types/select/select-collection.d.ts.map +1 -1
  828. package/dist/types/select/select-items.d.ts.map +1 -1
  829. package/dist/types/select/select-parts.d.ts.map +1 -1
  830. package/dist/types/select/select-tags.d.ts.map +1 -1
  831. package/dist/types/select/select.d.ts.map +1 -1
  832. package/dist/types/side-navigation/side-navigation-parts.d.ts.map +1 -1
  833. package/dist/types/side-navigation/side-navigation.d.ts.map +1 -1
  834. package/dist/types/side-navigation/side-navigation.types.d.ts +2 -1
  835. package/dist/types/side-navigation/side-navigation.types.d.ts.map +1 -1
  836. package/dist/types/skeleton/skeleton-region.d.ts.map +1 -1
  837. package/dist/types/skeleton/skeleton-text.d.ts.map +1 -1
  838. package/dist/types/skeleton/skeleton.d.ts.map +1 -1
  839. package/dist/types/slider/slider.d.ts.map +1 -1
  840. package/dist/types/sparkline/sparkline.d.ts.map +1 -1
  841. package/dist/types/sparkline/sparkline.types.d.ts +3 -1
  842. package/dist/types/sparkline/sparkline.types.d.ts.map +1 -1
  843. package/dist/types/split-button/split-button-parts.d.ts.map +1 -1
  844. package/dist/types/split-button/split-button.d.ts.map +1 -1
  845. package/dist/types/splitter/splitter.d.ts.map +1 -1
  846. package/dist/types/stack/stack.d.ts.map +1 -1
  847. package/dist/types/stat-card/stat-card-delta.d.ts.map +1 -1
  848. package/dist/types/stat-card/stat-card-parts.d.ts.map +1 -1
  849. package/dist/types/stat-card/stat-card-value.d.ts.map +1 -1
  850. package/dist/types/stat-card/stat-card.d.ts.map +1 -1
  851. package/dist/types/stat-card/stat-card.types.d.ts +3 -3
  852. package/dist/types/stat-card/stat-card.types.d.ts.map +1 -1
  853. package/dist/types/status-indicator/status-indicator.d.ts.map +1 -1
  854. package/dist/types/stepper/stepper-parts.d.ts.map +1 -1
  855. package/dist/types/stepper/stepper.d.ts.map +1 -1
  856. package/dist/types/switch/switch.d.ts.map +1 -1
  857. package/dist/types/table/index.d.ts +2 -2
  858. package/dist/types/table/index.d.ts.map +1 -1
  859. package/dist/types/table/table-content.d.ts.map +1 -1
  860. package/dist/types/table/table-defaults.d.ts.map +1 -1
  861. package/dist/types/table/table-filter.d.ts.map +1 -1
  862. package/dist/types/table/table-parts.d.ts +12 -2
  863. package/dist/types/table/table-parts.d.ts.map +1 -1
  864. package/dist/types/table/table.d.ts +1 -1
  865. package/dist/types/table/table.d.ts.map +1 -1
  866. package/dist/types/table/table.types.d.ts +43 -1
  867. package/dist/types/table/table.types.d.ts.map +1 -1
  868. package/dist/types/table-of-contents/table-of-contents-demo.d.ts.map +1 -1
  869. package/dist/types/table-of-contents/table-of-contents-parts.d.ts.map +1 -1
  870. package/dist/types/table-of-contents/table-of-contents.d.ts.map +1 -1
  871. package/dist/types/table-of-contents/table-of-contents.types.d.ts +2 -1
  872. package/dist/types/table-of-contents/table-of-contents.types.d.ts.map +1 -1
  873. package/dist/types/tabs/tabs-parts.d.ts +2 -4
  874. package/dist/types/tabs/tabs-parts.d.ts.map +1 -1
  875. package/dist/types/tabs/tabs.d.ts +1 -1
  876. package/dist/types/tabs/tabs.d.ts.map +1 -1
  877. package/dist/types/tabs/tabs.types.d.ts +18 -0
  878. package/dist/types/tabs/tabs.types.d.ts.map +1 -1
  879. package/dist/types/tag/tag-button.d.ts.map +1 -1
  880. package/dist/types/tag/tag-chip.d.ts +2 -2
  881. package/dist/types/tag/tag-chip.d.ts.map +1 -1
  882. package/dist/types/tag/tag-group.d.ts.map +1 -1
  883. package/dist/types/tag/tag-link.d.ts.map +1 -1
  884. package/dist/types/tag/tag-toggle.d.ts.map +1 -1
  885. package/dist/types/tag/tag.types.d.ts +3 -2
  886. package/dist/types/tag/tag.types.d.ts.map +1 -1
  887. package/dist/types/tags-input/tags-input-chips.d.ts.map +1 -1
  888. package/dist/types/tags-input/tags-input.d.ts +7 -1
  889. package/dist/types/tags-input/tags-input.d.ts.map +1 -1
  890. package/dist/types/tags-input/tags-input.types.d.ts +10 -0
  891. package/dist/types/tags-input/tags-input.types.d.ts.map +1 -1
  892. package/dist/types/text-field/text-field.d.ts.map +1 -1
  893. package/dist/types/textarea/textarea.d.ts.map +1 -1
  894. package/dist/types/time-field/time-field.d.ts.map +1 -1
  895. package/dist/types/time-picker/time-picker.d.ts.map +1 -1
  896. package/dist/types/time-range-picker/time-range-picker.d.ts.map +1 -1
  897. package/dist/types/timeline/timeline-parts.d.ts.map +1 -1
  898. package/dist/types/timeline/timeline.d.ts.map +1 -1
  899. package/dist/types/timeline/timeline.types.d.ts +1 -1
  900. package/dist/types/timeline/timeline.types.d.ts.map +1 -1
  901. package/dist/types/toast/toast-parts.d.ts.map +1 -1
  902. package/dist/types/toast/toast.d.ts.map +1 -1
  903. package/dist/types/toast/toast.types.d.ts +1 -1
  904. package/dist/types/toast/toast.types.d.ts.map +1 -1
  905. package/dist/types/toggle/toggle.d.ts.map +1 -1
  906. package/dist/types/toggle/toggle.types.d.ts +1 -1
  907. package/dist/types/toggle/toggle.types.d.ts.map +1 -1
  908. package/dist/types/toggle-group/toggle-group-parts.d.ts.map +1 -1
  909. package/dist/types/toggle-group/toggle-group.d.ts.map +1 -1
  910. package/dist/types/toggle-group/toggle-group.types.d.ts +6 -1
  911. package/dist/types/toggle-group/toggle-group.types.d.ts.map +1 -1
  912. package/dist/types/toolbar/toolbar-overflow.d.ts.map +1 -1
  913. package/dist/types/toolbar/toolbar-parts.d.ts.map +1 -1
  914. package/dist/types/toolbar/toolbar.d.ts.map +1 -1
  915. package/dist/types/tooltip/tooltip-parts.d.ts.map +1 -1
  916. package/dist/types/top-navigation/top-navigation-parts.d.ts.map +1 -1
  917. package/dist/types/top-navigation/top-navigation.d.ts.map +1 -1
  918. package/dist/types/top-navigation/top-navigation.types.d.ts +8 -7
  919. package/dist/types/top-navigation/top-navigation.types.d.ts.map +1 -1
  920. package/dist/types/tour/tour-parts.d.ts.map +1 -1
  921. package/dist/types/tour/tour.d.ts.map +1 -1
  922. package/dist/types/transfer/transfer.d.ts.map +1 -1
  923. package/dist/types/tree/tree-parts.d.ts.map +1 -1
  924. package/dist/types/tree/tree.d.ts.map +1 -1
  925. package/dist/types/typography/heading.d.ts +2 -2
  926. package/dist/types/typography/heading.d.ts.map +1 -1
  927. package/dist/types/typography/text.d.ts.map +1 -1
  928. package/dist/types/typography/typography.types.d.ts +1 -1
  929. package/dist/types/typography/typography.types.d.ts.map +1 -1
  930. package/dist/types/upload/upload-viewer.d.ts.map +1 -1
  931. package/dist/types/upload/upload.d.ts.map +1 -1
  932. package/dist/types/visually-hidden/visually-hidden.d.ts.map +1 -1
  933. package/dist/types/wizard/wizard-parts.d.ts.map +1 -1
  934. package/dist/types/wizard/wizard.d.ts.map +1 -1
  935. package/dist/typography-BESqb4C0.js +93 -0
  936. package/dist/typography.js +1 -1
  937. package/dist/upload-CEDsfMWz.js +648 -0
  938. package/dist/upload.js +1 -1
  939. package/dist/visually-hidden-BUSrFZ1_.js +15 -0
  940. package/dist/visually-hidden.js +1 -1
  941. package/dist/wizard-B3p7zCSj.js +838 -0
  942. package/dist/wizard.js +1 -1
  943. package/package.json +24 -11
  944. package/dist/accordion-D-YuMJzk.js +0 -143
  945. package/dist/action-sheet-D8Glxl7l.js +0 -347
  946. package/dist/alert-CP62p9Ul.js +0 -159
  947. package/dist/app-shell-CXwma4XA.js +0 -836
  948. package/dist/aspect-ratio-C76l-aoY.js +0 -40
  949. package/dist/attachment-DdBbQcEB.js +0 -302
  950. package/dist/avatar-BnlE5jjr.js +0 -100
  951. package/dist/avatar-group-4rBj99tz.js +0 -47
  952. package/dist/badge-C6rbwVpu.js +0 -94
  953. package/dist/breadcrumb-Bf01N4wK.js +0 -218
  954. package/dist/button-DakQ-7Tm.js +0 -97
  955. package/dist/button-group-Det_nYor.js +0 -50
  956. package/dist/calendar-B3mio8iQ.js +0 -387
  957. package/dist/card-CpVu8PyZ.js +0 -102
  958. package/dist/carousel-BPi-Y5yF.js +0 -498
  959. package/dist/cascader-CARCYdHh.js +0 -1097
  960. package/dist/checkbox-CwUOc-3u.js +0 -139
  961. package/dist/checkbox-group-BYTjgAcX.js +0 -108
  962. package/dist/code-block-CFHf8uTm.js +0 -269
  963. package/dist/collapsible-CGo49NNW.js +0 -217
  964. package/dist/color-picker-BlPR4g4H.js +0 -504
  965. package/dist/column-manager-CNZ7Xk5_.js +0 -585
  966. package/dist/combobox-C46GRqAA.js +0 -852
  967. package/dist/command-palette-BqRyNR9Y.js +0 -707
  968. package/dist/container-CjxY6rYv.js +0 -46
  969. package/dist/context-menu-DMiHdggw.js +0 -150
  970. package/dist/currency-field-B7OZ0hk7.js +0 -436
  971. package/dist/dashboard-grid-nfhEewA4.js +0 -1005
  972. package/dist/date-field-D_kLLTfL.js +0 -279
  973. package/dist/date-picker-DQ5SIhdA.js +0 -264
  974. package/dist/date-range-picker-lpB08hK_.js +0 -471
  975. package/dist/datetime-field-T1gNdJ7t.js +0 -411
  976. package/dist/datetime-picker-0F0kDW-8.js +0 -629
  977. package/dist/datetime-range-picker-ClnEleth.js +0 -994
  978. package/dist/description-list-IYLnFgHT.js +0 -232
  979. package/dist/dialog-Dmy-m_pe.js +0 -499
  980. package/dist/divider-D36Jqo0J.js +0 -33
  981. package/dist/drawer-Ci3wuCVa.js +0 -758
  982. package/dist/entity-picker-UGhbVwkC.js +0 -1111
  983. package/dist/field-BJh5HI7w.js +0 -365
  984. package/dist/field-group-BDaspQPh.js +0 -138
  985. package/dist/filter-bar-b2Q9BZHf.js +0 -1335
  986. package/dist/fullscreen-CF0UN4mv.js +0 -187
  987. package/dist/grid-CIkG_2IQ.js +0 -25
  988. package/dist/highlight-0Qw23QPp.js +0 -57
  989. package/dist/hover-card-CSDbA6zd.js +0 -214
  990. package/dist/icon-T9Yt4tnm.js +0 -73
  991. package/dist/icon-button-TnvMhK4o.js +0 -211
  992. package/dist/import-export-center-D8xbCLWs.js +0 -813
  993. package/dist/inline-D_IjcJ1n.js +0 -16
  994. package/dist/inline-message-C4a-A2mw.js +0 -91
  995. package/dist/kbd-eFSWTKxN.js +0 -100
  996. package/dist/link-TjvRl2VQ.js +0 -87
  997. package/dist/list-C1Y8MWp2.js +0 -87
  998. package/dist/list-item-DN_mcouU.js +0 -123
  999. package/dist/listbox-4WvqR0JF.js +0 -615
  1000. package/dist/loading-overlay-B83XFctM.js +0 -208
  1001. package/dist/markdown-CpfDn1LF.js +0 -295
  1002. package/dist/menu-parts-BQej6eU9.js +0 -787
  1003. package/dist/menubar-CtGavUTO.js +0 -156
  1004. package/dist/message-Cp0rLCyW.js +0 -430
  1005. package/dist/message-scroller-UZjFpflz.js +0 -214
  1006. package/dist/multi-select-CfzsvAeI.js +0 -1193
  1007. package/dist/navigation-menu-parts-D8qFAwHX.js +0 -492
  1008. package/dist/notification-center-C4pEHJ3h.js +0 -485
  1009. package/dist/number-field-J_koud1r.js +0 -342
  1010. package/dist/page-header-CWEBfMGq.js +0 -367
  1011. package/dist/page-kQgLctsA.js +0 -167
  1012. package/dist/pagination-DWJc521r.js +0 -292
  1013. package/dist/popover-DE22lSpV.js +0 -476
  1014. package/dist/progress-indicator-DwvUSFFs.js +0 -269
  1015. package/dist/prompt-composer-B7MMcER0.js +0 -259
  1016. package/dist/prose-CkeNYS0X.js +0 -91
  1017. package/dist/radio-group-BFpjhDkV.js +0 -140
  1018. package/dist/rating-D1EsADFM.js +0 -459
  1019. package/dist/react-dom-DzrKNxo6.js +0 -273
  1020. package/dist/result-state-CZsQfdN4.js +0 -126
  1021. package/dist/saved-views-BueW-Lyb.js +0 -446
  1022. package/dist/scroll-area-BriwmvYY.js +0 -111
  1023. package/dist/section-Be7dX9MC.js +0 -176
  1024. package/dist/segmented-control-Cy_5D3Nj.js +0 -149
  1025. package/dist/select-UTwKjheK.js +0 -957
  1026. package/dist/side-navigation-YUiJRpng.js +0 -729
  1027. package/dist/skeleton-2LSpg84Z.js +0 -143
  1028. package/dist/slider-B432T6nD.js +0 -256
  1029. package/dist/sparkline-rY7HIFE4.js +0 -131
  1030. package/dist/split-button-DHF3v3PJ.js +0 -135
  1031. package/dist/splitter-Bg3UgmbV.js +0 -289
  1032. package/dist/stack-BEFavbRs.js +0 -15
  1033. package/dist/stat-card-BG7uLytP.js +0 -244
  1034. package/dist/status-indicator-BOjpXkU5.js +0 -73
  1035. package/dist/stepper-DQJuRWqR.js +0 -253
  1036. package/dist/switch-4MHwKmkz.js +0 -138
  1037. package/dist/table-CzBIw9ng.js +0 -970
  1038. package/dist/table-of-contents-DfAeYtFJ.js +0 -461
  1039. package/dist/tabs-DQ36APY-.js +0 -343
  1040. package/dist/tag-DjtW53xN.js +0 -365
  1041. package/dist/tags-input-DLdHLWrH.js +0 -625
  1042. package/dist/text-field-BktZbmzD.js +0 -195
  1043. package/dist/textarea-JAK2RJl0.js +0 -99
  1044. package/dist/time-field-DCG_VtGO.js +0 -355
  1045. package/dist/time-picker-DuT1tf5-.js +0 -396
  1046. package/dist/time-range-picker-HwBvrrXN.js +0 -745
  1047. package/dist/timeline-DH_02ysz.js +0 -421
  1048. package/dist/toggle-CBFhM4Jh.js +0 -64
  1049. package/dist/toggle-group-DQBlI1TV.js +0 -140
  1050. package/dist/toolbar-CDQTydDx.js +0 -240
  1051. package/dist/tooltip-BggqPDcW.js +0 -393
  1052. package/dist/top-navigation-COQZsNqW.js +0 -740
  1053. package/dist/tour-C11DmYTC.js +0 -799
  1054. package/dist/transfer-JA9TWjAw.js +0 -596
  1055. package/dist/tree-C6fYJqT9.js +0 -783
  1056. package/dist/typography-B2iaigEC.js +0 -92
  1057. package/dist/upload-Bq_UiyMr.js +0 -613
  1058. package/dist/visually-hidden-CE6u5JLW.js +0 -14
  1059. package/dist/wizard-B4GrlEqh.js +0 -815
@@ -624,6 +624,150 @@ Excerpt — not a complete module
624
624
  <DialogTrigger render={(props) => <Button {...props}>Edit project</Button>} />;
625
625
  ```
626
626
 
627
+ ### A layout of its own
628
+
629
+ DialogContent draws no padding: the header, the body and the footer carry the inset. A layout of its own — one field, a preview, a footer — reads --slotted-dialog-inset-inline and --slotted-dialog-inset-block, so it stands in the column the parts stand in.
630
+
631
+ Excerpt — not a complete module
632
+
633
+ ```tsx
634
+ <DialogContent>
635
+ <div
636
+ style={{
637
+ display: 'grid',
638
+ gap: 'var(--slotted-space-5)',
639
+ paddingBlock: 'var(--slotted-dialog-inset-block)',
640
+ paddingInline: 'var(--slotted-dialog-inset-inline)',
641
+ }}
642
+ >
643
+ <DialogTitle>Rename file</DialogTitle>
644
+ <TextField aria-label="Name" defaultValue="report-q3.pdf" />
645
+ <img alt="First page of report-q3.pdf" src={preview} />
646
+ </div>
647
+ <DialogFooter>
648
+ <Button size="sm">Rename</Button>
649
+ </DialogFooter>
650
+ </DialogContent>;
651
+ ```
652
+
653
+ ### A dialog that is a form
654
+
655
+ A dialog that edits a record submits with Enter from any field and with the footer’s submit. render makes the panel the form itself, so the header, the body and the footer stay its rows and keep its inset; a form written around them inside DialogContent keeps them too.
656
+
657
+ Example
658
+
659
+ ```tsx
660
+ import { useState, type SubmitEvent } from 'react';
661
+
662
+ import { Button } from '@slotted/react/button';
663
+ import {
664
+ Dialog,
665
+ DialogBody,
666
+ DialogClose,
667
+ DialogContent,
668
+ DialogDescription,
669
+ DialogFooter,
670
+ DialogHeader,
671
+ DialogTitle,
672
+ DialogTrigger,
673
+ } from '@slotted/react/dialog';
674
+ import { Field, FieldError, FieldLabel } from '@slotted/react/field';
675
+ import { Inline } from '@slotted/react/inline';
676
+ import { Stack } from '@slotted/react/stack';
677
+ import { TextField } from '@slotted/react/text-field';
678
+ import { Text } from '@slotted/react/typography';
679
+
680
+ function nameError(value: string): string {
681
+ return value.trim() === '' ? 'Enter the contact’s full name.' : '';
682
+ }
683
+
684
+ function emailError(value: string): string {
685
+ if (value.trim() === '') return 'Enter the address the contact reads.';
686
+ if (!/^\S+@\S+\.\S+$/.test(value)) return 'Enter an address like ana@contoso.com.';
687
+ return '';
688
+ }
689
+
690
+ export default function DialogForm() {
691
+ const [open, setOpen] = useState(false);
692
+ const [name, setName] = useState('');
693
+ const [email, setEmail] = useState('');
694
+ const [submitted, setSubmitted] = useState(false);
695
+ const [added, setAdded] = useState<string | null>(null);
696
+ const errors = submitted ? { name: nameError(name), email: emailError(email) } : null;
697
+
698
+ const submit = (event: SubmitEvent<HTMLFormElement>) => {
699
+ event.preventDefault();
700
+ setSubmitted(true);
701
+ if (nameError(name) !== '' || emailError(email) !== '') return;
702
+ setAdded(`${name.trim()} was added to Contoso Foods.`);
703
+ setOpen(false);
704
+ };
705
+
706
+ return (
707
+ <Inline align="center" gap={3}>
708
+ <Dialog
709
+ open={open}
710
+ onOpenChange={(next) => {
711
+ if (next) {
712
+ setName('');
713
+ setEmail('');
714
+ setSubmitted(false);
715
+ }
716
+ setOpen(next);
717
+ }}
718
+ >
719
+ <DialogTrigger render={(props) => <Button {...props}>Add contact</Button>} />
720
+ <DialogContent>
721
+ <DialogHeader>
722
+ <DialogTitle>New contact</DialogTitle>
723
+ <DialogDescription>Contoso Foods, Seattle.</DialogDescription>
724
+ <DialogClose />
725
+ </DialogHeader>
726
+ <DialogBody>
727
+ <form id="new-contact" noValidate onSubmit={submit}>
728
+ <Stack gap={4}>
729
+ <Field required invalid={errors?.name ? true : undefined}>
730
+ <FieldLabel>Full name</FieldLabel>
731
+ <TextField autoComplete="name" value={name} onValueChange={setName} />
732
+ <FieldError live="polite" reserve>
733
+ {errors?.name}
734
+ </FieldError>
735
+ </Field>
736
+ <Field required invalid={errors?.email ? true : undefined}>
737
+ <FieldLabel>Email</FieldLabel>
738
+ <TextField
739
+ autoComplete="email"
740
+ type="email"
741
+ value={email}
742
+ onValueChange={setEmail}
743
+ />
744
+ <FieldError live="polite" reserve>
745
+ {errors?.email}
746
+ </FieldError>
747
+ </Field>
748
+ </Stack>
749
+ </form>
750
+ </DialogBody>
751
+ <DialogFooter>
752
+ <Button variant="ghost" tone="secondary" onClick={() => setOpen(false)}>
753
+ Cancel
754
+ </Button>
755
+ <Button type="submit" form="new-contact">
756
+ Add contact
757
+ </Button>
758
+ </DialogFooter>
759
+ </DialogContent>
760
+ </Dialog>
761
+ {added === null ? null : (
762
+ <Text role="status" size="sm" tone="muted">
763
+ {added}
764
+ </Text>
765
+ )}
766
+ </Inline>
767
+ );
768
+ }
769
+ ```
770
+
627
771
  ### Deciding once for the application
628
772
 
629
773
  Eight decisions an application takes once instead of eight props on every dialog in a product. Angular Material is the only surveyed library with an equivalent, and a dialog that states one itself still wins.
@@ -1624,122 +1768,6 @@ export default function DialogDismiss() {
1624
1768
  }
1625
1769
  ```
1626
1770
 
1627
- ### form.tsx
1628
-
1629
- Example
1630
-
1631
- ```tsx
1632
- import { useState, type SubmitEvent } from 'react';
1633
-
1634
- import { Button } from '@slotted/react/button';
1635
- import {
1636
- Dialog,
1637
- DialogBody,
1638
- DialogClose,
1639
- DialogContent,
1640
- DialogDescription,
1641
- DialogFooter,
1642
- DialogHeader,
1643
- DialogTitle,
1644
- DialogTrigger,
1645
- } from '@slotted/react/dialog';
1646
- import { Field, FieldError, FieldLabel } from '@slotted/react/field';
1647
- import { Inline } from '@slotted/react/inline';
1648
- import { Stack } from '@slotted/react/stack';
1649
- import { TextField } from '@slotted/react/text-field';
1650
- import { Text } from '@slotted/react/typography';
1651
-
1652
- function nameError(value: string): string {
1653
- return value.trim() === '' ? 'Enter the contact’s full name.' : '';
1654
- }
1655
-
1656
- function emailError(value: string): string {
1657
- if (value.trim() === '') return 'Enter the address the contact reads.';
1658
- if (!/^\S+@\S+\.\S+$/.test(value)) return 'Enter an address like ana@contoso.com.';
1659
- return '';
1660
- }
1661
-
1662
- export default function DialogForm() {
1663
- const [open, setOpen] = useState(false);
1664
- const [name, setName] = useState('');
1665
- const [email, setEmail] = useState('');
1666
- const [submitted, setSubmitted] = useState(false);
1667
- const [added, setAdded] = useState<string | null>(null);
1668
- const errors = submitted ? { name: nameError(name), email: emailError(email) } : null;
1669
-
1670
- const submit = (event: SubmitEvent<HTMLFormElement>) => {
1671
- event.preventDefault();
1672
- setSubmitted(true);
1673
- if (nameError(name) !== '' || emailError(email) !== '') return;
1674
- setAdded(`${name.trim()} was added to Contoso Foods.`);
1675
- setOpen(false);
1676
- };
1677
-
1678
- return (
1679
- <Inline align="center" gap={3}>
1680
- <Dialog
1681
- open={open}
1682
- onOpenChange={(next) => {
1683
- if (next) {
1684
- setName('');
1685
- setEmail('');
1686
- setSubmitted(false);
1687
- }
1688
- setOpen(next);
1689
- }}
1690
- >
1691
- <DialogTrigger render={(props) => <Button {...props}>Add contact</Button>} />
1692
- <DialogContent>
1693
- <DialogHeader>
1694
- <DialogTitle>New contact</DialogTitle>
1695
- <DialogDescription>Contoso Foods, Seattle.</DialogDescription>
1696
- <DialogClose />
1697
- </DialogHeader>
1698
- <DialogBody>
1699
- <form id="new-contact" noValidate onSubmit={submit}>
1700
- <Stack gap={4}>
1701
- <Field required invalid={errors?.name ? true : undefined}>
1702
- <FieldLabel>Full name</FieldLabel>
1703
- <TextField autoComplete="name" value={name} onValueChange={setName} />
1704
- <FieldError live="polite" reserve>
1705
- {errors?.name}
1706
- </FieldError>
1707
- </Field>
1708
- <Field required invalid={errors?.email ? true : undefined}>
1709
- <FieldLabel>Email</FieldLabel>
1710
- <TextField
1711
- autoComplete="email"
1712
- type="email"
1713
- value={email}
1714
- onValueChange={setEmail}
1715
- />
1716
- <FieldError live="polite" reserve>
1717
- {errors?.email}
1718
- </FieldError>
1719
- </Field>
1720
- </Stack>
1721
- </form>
1722
- </DialogBody>
1723
- <DialogFooter>
1724
- <Button variant="ghost" tone="secondary" onClick={() => setOpen(false)}>
1725
- Cancel
1726
- </Button>
1727
- <Button type="submit" form="new-contact">
1728
- Add contact
1729
- </Button>
1730
- </DialogFooter>
1731
- </DialogContent>
1732
- </Dialog>
1733
- {added === null ? null : (
1734
- <Text role="status" size="sm" tone="muted">
1735
- {added}
1736
- </Text>
1737
- )}
1738
- </Inline>
1739
- );
1740
- }
1741
- ```
1742
-
1743
1771
  ### full-screen.tsx
1744
1772
 
1745
1773
  Example
@@ -55,6 +55,7 @@
55
55
  "tone": [
56
56
  "accent",
57
57
  "secondary",
58
+ "info",
58
59
  "success",
59
60
  "warning",
60
61
  "danger"
@@ -206,7 +207,7 @@
206
207
  "part": "content",
207
208
  "element": "div",
208
209
  "required": true,
209
- "purpose": "The panel. It carries role=\"dialog\" and, while modal, aria-modal=\"true\". It is a grid of three rows, header, body and footer, and only the body row shrinks, so the actions stay on screen when the body is long."
210
+ "purpose": "The panel. It carries role=\"dialog\" and, while modal, aria-modal=\"true\". It is a grid of three rows, header, body and footer, and only the body row shrinks, so the actions stay on screen when the body is long. It draws no padding: DialogHeader, DialogBody and DialogFooter carry the panel inset. A layout that skips them reads --slotted-dialog-inset-inline and --slotted-dialog-inset-block, which the panel states, and a theme sets the inset with --slotted-dialog-padding-inline and --slotted-dialog-padding-block."
210
211
  },
211
212
  {
212
213
  "part": "header",
@@ -443,6 +444,11 @@
443
444
  "payload": "(open: boolean, request: DialogChangeRequest)",
444
445
  "when": "Before the dialog opens or closes, whatever caused it. The request carries the new value, the previous value, the reason (pointer, keyboard, dismiss, escape, outsidePress, back, submit or programmatic), the result of the close, the originating event, and cancel(), which keeps the dialog as it is. One handler therefore guards the ✕, Escape, a press outside, the way back and the ref handle together."
445
446
  },
447
+ {
448
+ "name": "onOpenChangeComplete",
449
+ "payload": "(open: boolean)",
450
+ "when": "After the entrance or the exit has ended: true once the layer is settled open, false once it has left — the moment an application that renders the layer conditionally removes it, so the exit runs. A layer mounted open enters from its closed style, as one opened later does."
451
+ },
446
452
  {
447
453
  "name": "onFullscreenChange",
448
454
  "payload": "(fullscreen: boolean, request: DialogFullscreenRequest)",
@@ -497,7 +503,7 @@
497
503
  "part": "content",
498
504
  "element": "div",
499
505
  "required": true,
500
- "purpose": "The panel. It carries role=\"alertdialog\" and, while modal, aria-modal=\"true\". It is a grid of three rows, header, body and footer, and only the body row shrinks, so the actions stay on screen when the body is long."
506
+ "purpose": "The panel. It carries role=\"alertdialog\" and, while modal, aria-modal=\"true\". It is a grid of three rows, header, body and footer, and only the body row shrinks, so the actions stay on screen when the body is long. It draws no padding: DialogHeader, DialogBody and DialogFooter carry the panel inset. A layout that skips them reads --slotted-dialog-inset-inline and --slotted-dialog-inset-block, which the panel states, and a theme sets the inset with --slotted-dialog-padding-inline and --slotted-dialog-padding-block."
501
507
  },
502
508
  {
503
509
  "part": "header",
@@ -635,7 +641,7 @@
635
641
  },
636
642
  {
637
643
  "name": "tone",
638
- "type": "'accent' | 'secondary' | 'success' | 'warning' | 'danger'",
644
+ "type": "'accent' | 'secondary' | 'info' | 'success' | 'warning' | 'danger'",
639
645
  "defaultValue": "danger",
640
646
  "appliesTo": "AlertDialog",
641
647
  "description": "The kind of decision. It sets the mark AlertDialogIcon draws and its colour."
@@ -726,6 +732,11 @@
726
732
  "payload": "(open: boolean, request: DialogChangeRequest)",
727
733
  "when": "Before the dialog opens or closes, whatever caused it. The request carries the new value, the previous value, the reason (pointer, keyboard, dismiss, escape, outsidePress, back, submit or programmatic), the result of the close, the originating event, and cancel(), which keeps the dialog as it is. One handler therefore guards the ✕, Escape, a press outside, the way back and the ref handle together."
728
734
  },
735
+ {
736
+ "name": "onOpenChangeComplete",
737
+ "payload": "(open: boolean)",
738
+ "when": "After the entrance or the exit has ended: true once the layer is settled open, false once it has left — the moment an application that renders the layer conditionally removes it, so the exit runs. A layer mounted open enters from its closed style, as one opened later does."
739
+ },
729
740
  {
730
741
  "name": "onFullscreenChange",
731
742
  "payload": "(fullscreen: boolean, request: DialogFullscreenRequest)",
@@ -766,6 +777,10 @@
766
777
  "--slotted-dialog-description-color",
767
778
  "--slotted-dialog-footer-surface",
768
779
  "--slotted-dialog-measure",
780
+ "--slotted-dialog-padding-block",
781
+ "--slotted-dialog-padding-block-sm",
782
+ "--slotted-dialog-padding-inline",
783
+ "--slotted-dialog-padding-inline-sm",
769
784
  "--slotted-dialog-radius",
770
785
  "--slotted-dialog-rule-color",
771
786
  "--slotted-dialog-scrim",
@@ -806,6 +821,7 @@
806
821
  "--slotted-text-muted",
807
822
  "--slotted-tone-accent-text",
808
823
  "--slotted-tone-danger-text",
824
+ "--slotted-tone-info-text",
809
825
  "--slotted-tone-secondary-subtle-active",
810
826
  "--slotted-tone-secondary-subtle-hover",
811
827
  "--slotted-tone-secondary-text",
@@ -918,6 +934,22 @@
918
934
  "source": "<DialogTrigger render={(props) => <Button {...props}>Edit project</Button>} />;\n",
919
935
  "verdict": "excerpt"
920
936
  },
937
+ {
938
+ "id": "layout",
939
+ "title": "A layout of its own",
940
+ "note": "DialogContent draws no padding: the header, the body and the footer carry the inset. A layout of its own — one field, a preview, a footer — reads --slotted-dialog-inset-inline and --slotted-dialog-inset-block, so it stands in the column the parts stand in.",
941
+ "language": "tsx",
942
+ "source": "<DialogContent>\n <div\n style={{\n display: 'grid',\n gap: 'var(--slotted-space-5)',\n paddingBlock: 'var(--slotted-dialog-inset-block)',\n paddingInline: 'var(--slotted-dialog-inset-inline)',\n }}\n >\n <DialogTitle>Rename file</DialogTitle>\n <TextField aria-label=\"Name\" defaultValue=\"report-q3.pdf\" />\n <img alt=\"First page of report-q3.pdf\" src={preview} />\n </div>\n <DialogFooter>\n <Button size=\"sm\">Rename</Button>\n </DialogFooter>\n</DialogContent>;\n",
943
+ "verdict": "excerpt"
944
+ },
945
+ {
946
+ "id": "form",
947
+ "title": "A dialog that is a form",
948
+ "note": "A dialog that edits a record submits with Enter from any field and with the footer’s submit. render makes the panel the form itself, so the header, the body and the footer stay its rows and keep its inset; a form written around them inside DialogContent keeps them too.",
949
+ "language": "tsx",
950
+ "source": "import { useState, type SubmitEvent } from 'react';\n\nimport { Button } from '@slotted/react/button';\nimport {\n Dialog,\n DialogBody,\n DialogClose,\n DialogContent,\n DialogDescription,\n DialogFooter,\n DialogHeader,\n DialogTitle,\n DialogTrigger,\n} from '@slotted/react/dialog';\nimport { Field, FieldError, FieldLabel } from '@slotted/react/field';\nimport { Inline } from '@slotted/react/inline';\nimport { Stack } from '@slotted/react/stack';\nimport { TextField } from '@slotted/react/text-field';\nimport { Text } from '@slotted/react/typography';\n\nfunction nameError(value: string): string {\n return value.trim() === '' ? 'Enter the contact’s full name.' : '';\n}\n\nfunction emailError(value: string): string {\n if (value.trim() === '') return 'Enter the address the contact reads.';\n if (!/^\\S+@\\S+\\.\\S+$/.test(value)) return 'Enter an address like ana@contoso.com.';\n return '';\n}\n\nexport default function DialogForm() {\n const [open, setOpen] = useState(false);\n const [name, setName] = useState('');\n const [email, setEmail] = useState('');\n const [submitted, setSubmitted] = useState(false);\n const [added, setAdded] = useState<string | null>(null);\n const errors = submitted ? { name: nameError(name), email: emailError(email) } : null;\n\n const submit = (event: SubmitEvent<HTMLFormElement>) => {\n event.preventDefault();\n setSubmitted(true);\n if (nameError(name) !== '' || emailError(email) !== '') return;\n setAdded(`${name.trim()} was added to Contoso Foods.`);\n setOpen(false);\n };\n\n return (\n <Inline align=\"center\" gap={3}>\n <Dialog\n open={open}\n onOpenChange={(next) => {\n if (next) {\n setName('');\n setEmail('');\n setSubmitted(false);\n }\n setOpen(next);\n }}\n >\n <DialogTrigger render={(props) => <Button {...props}>Add contact</Button>} />\n <DialogContent>\n <DialogHeader>\n <DialogTitle>New contact</DialogTitle>\n <DialogDescription>Contoso Foods, Seattle.</DialogDescription>\n <DialogClose />\n </DialogHeader>\n <DialogBody>\n <form id=\"new-contact\" noValidate onSubmit={submit}>\n <Stack gap={4}>\n <Field required invalid={errors?.name ? true : undefined}>\n <FieldLabel>Full name</FieldLabel>\n <TextField autoComplete=\"name\" value={name} onValueChange={setName} />\n <FieldError live=\"polite\" reserve>\n {errors?.name}\n </FieldError>\n </Field>\n <Field required invalid={errors?.email ? true : undefined}>\n <FieldLabel>Email</FieldLabel>\n <TextField\n autoComplete=\"email\"\n type=\"email\"\n value={email}\n onValueChange={setEmail}\n />\n <FieldError live=\"polite\" reserve>\n {errors?.email}\n </FieldError>\n </Field>\n </Stack>\n </form>\n </DialogBody>\n <DialogFooter>\n <Button variant=\"ghost\" tone=\"secondary\" onClick={() => setOpen(false)}>\n Cancel\n </Button>\n <Button type=\"submit\" form=\"new-contact\">\n Add contact\n </Button>\n </DialogFooter>\n </DialogContent>\n </Dialog>\n {added === null ? null : (\n <Text role=\"status\" size=\"sm\" tone=\"muted\">\n {added}\n </Text>\n )}\n </Inline>\n );\n}\n",
951
+ "verdict": "example"
952
+ },
921
953
  {
922
954
  "id": "defaults",
923
955
  "title": "Deciding once for the application",
@@ -1062,14 +1094,6 @@
1062
1094
  "source": "import { useState } from 'react';\n\nimport { Button } from '@slotted/react/button';\nimport {\n Dialog,\n DialogBody,\n DialogContent,\n DialogDescription,\n DialogFooter,\n DialogHeader,\n DialogTitle,\n DialogTrigger,\n} from '@slotted/react/dialog';\nimport { Text } from '@slotted/react/typography';\n\nexport default function DialogDismiss() {\n const [open, setOpen] = useState(false);\n\n return (\n <Dialog open={open} onOpenChange={setOpen} escape=\"none\" outsidePress=\"none\">\n <DialogTrigger render={(props) => <Button {...props}>Import products</Button>} />\n <DialogContent>\n <DialogHeader>\n <DialogTitle>Import 1,240 products</DialogTitle>\n <DialogDescription>\n From spring-catalogue.csv into the Northwind price list.\n </DialogDescription>\n </DialogHeader>\n <DialogBody>\n <Text size=\"sm\">\n 38 rows update existing products and 1,202 add new ones. Escape and a press outside the\n panel leave this dialog open; choose one of the actions.\n </Text>\n </DialogBody>\n <DialogFooter>\n <Button variant=\"ghost\" tone=\"secondary\" onClick={() => setOpen(false)}>\n Cancel import\n </Button>\n <Button onClick={() => setOpen(false)}>Start import</Button>\n </DialogFooter>\n </DialogContent>\n </Dialog>\n );\n}\n",
1063
1095
  "verdict": "example"
1064
1096
  },
1065
- {
1066
- "id": "form",
1067
- "title": "form.tsx",
1068
- "note": null,
1069
- "language": "tsx",
1070
- "source": "import { useState, type SubmitEvent } from 'react';\n\nimport { Button } from '@slotted/react/button';\nimport {\n Dialog,\n DialogBody,\n DialogClose,\n DialogContent,\n DialogDescription,\n DialogFooter,\n DialogHeader,\n DialogTitle,\n DialogTrigger,\n} from '@slotted/react/dialog';\nimport { Field, FieldError, FieldLabel } from '@slotted/react/field';\nimport { Inline } from '@slotted/react/inline';\nimport { Stack } from '@slotted/react/stack';\nimport { TextField } from '@slotted/react/text-field';\nimport { Text } from '@slotted/react/typography';\n\nfunction nameError(value: string): string {\n return value.trim() === '' ? 'Enter the contact’s full name.' : '';\n}\n\nfunction emailError(value: string): string {\n if (value.trim() === '') return 'Enter the address the contact reads.';\n if (!/^\\S+@\\S+\\.\\S+$/.test(value)) return 'Enter an address like ana@contoso.com.';\n return '';\n}\n\nexport default function DialogForm() {\n const [open, setOpen] = useState(false);\n const [name, setName] = useState('');\n const [email, setEmail] = useState('');\n const [submitted, setSubmitted] = useState(false);\n const [added, setAdded] = useState<string | null>(null);\n const errors = submitted ? { name: nameError(name), email: emailError(email) } : null;\n\n const submit = (event: SubmitEvent<HTMLFormElement>) => {\n event.preventDefault();\n setSubmitted(true);\n if (nameError(name) !== '' || emailError(email) !== '') return;\n setAdded(`${name.trim()} was added to Contoso Foods.`);\n setOpen(false);\n };\n\n return (\n <Inline align=\"center\" gap={3}>\n <Dialog\n open={open}\n onOpenChange={(next) => {\n if (next) {\n setName('');\n setEmail('');\n setSubmitted(false);\n }\n setOpen(next);\n }}\n >\n <DialogTrigger render={(props) => <Button {...props}>Add contact</Button>} />\n <DialogContent>\n <DialogHeader>\n <DialogTitle>New contact</DialogTitle>\n <DialogDescription>Contoso Foods, Seattle.</DialogDescription>\n <DialogClose />\n </DialogHeader>\n <DialogBody>\n <form id=\"new-contact\" noValidate onSubmit={submit}>\n <Stack gap={4}>\n <Field required invalid={errors?.name ? true : undefined}>\n <FieldLabel>Full name</FieldLabel>\n <TextField autoComplete=\"name\" value={name} onValueChange={setName} />\n <FieldError live=\"polite\" reserve>\n {errors?.name}\n </FieldError>\n </Field>\n <Field required invalid={errors?.email ? true : undefined}>\n <FieldLabel>Email</FieldLabel>\n <TextField\n autoComplete=\"email\"\n type=\"email\"\n value={email}\n onValueChange={setEmail}\n />\n <FieldError live=\"polite\" reserve>\n {errors?.email}\n </FieldError>\n </Field>\n </Stack>\n </form>\n </DialogBody>\n <DialogFooter>\n <Button variant=\"ghost\" tone=\"secondary\" onClick={() => setOpen(false)}>\n Cancel\n </Button>\n <Button type=\"submit\" form=\"new-contact\">\n Add contact\n </Button>\n </DialogFooter>\n </DialogContent>\n </Dialog>\n {added === null ? null : (\n <Text role=\"status\" size=\"sm\" tone=\"muted\">\n {added}\n </Text>\n )}\n </Inline>\n );\n}\n",
1071
- "verdict": "example"
1072
- },
1073
1097
  {
1074
1098
  "id": "full-screen",
1075
1099
  "title": "full-screen.tsx",
@@ -179,7 +179,7 @@ export default function DialogBasic() {
179
179
  | `initialFocus` | `'first' \| 'container' \| 'cancel' \| RefObject \| false` | cancel | AlertDialog | Where focus goes when the dialog opens. The default, cancel, is the least destructive answer. |
180
180
  | `finalFocus` | `RefObject \| false` | — | Dialog, AlertDialog | Where focus goes when the dialog closes. Unset, focus returns to the element that had it when the dialog opened, usually the trigger. false leaves focus where it is. |
181
181
  | `value` | `string` | — | DialogClose, AlertDialogCancel, AlertDialogAction | The result this button closes the dialog with, read from request.result in onOpenChange. AlertDialogCancel defaults to "cancel" and AlertDialogAction to "confirm". |
182
- | `tone` | `'accent' \| 'secondary' \| 'success' \| 'warning' \| 'danger'` | danger | AlertDialog | The kind of decision. It sets the mark AlertDialogIcon draws and its colour. |
182
+ | `tone` | `'accent' \| 'secondary' \| 'info' \| 'success' \| 'warning' \| 'danger'` | danger | AlertDialog | The kind of decision. It sets the mark AlertDialogIcon draws and its colour. |
183
183
  | `modal` | `boolean` | true | AlertDialog | Fixed: an alert dialog is always modal. |
184
184
  | `outsidePress` | `'close' \| 'none'` | none | AlertDialog | Fixed: a press outside never closes an alert dialog. |
185
185
  | `back` | `'close' \| 'none'` | close | AlertDialog | Whether the browser’s way back cancels the confirmation, as Escape does. The close request carries the reason back. |
@@ -199,6 +199,7 @@ export default function DialogBasic() {
199
199
  | Name | Payload | When |
200
200
  | --- | --- | --- |
201
201
  | `onOpenChange` | `(open: boolean, request: DialogChangeRequest)` | Before the dialog opens or closes, whatever caused it. The request carries the new value, the previous value, the reason (pointer, keyboard, dismiss, escape, outsidePress, back, submit or programmatic), the result of the close, the originating event, and cancel(), which keeps the dialog as it is. One handler therefore guards the ✕, Escape, a press outside, the way back and the ref handle together. |
202
+ | `onOpenChangeComplete` | `(open: boolean)` | After the entrance or the exit has ended: true once the layer is settled open, false once it has left — the moment an application that renders the layer conditionally removes it, so the exit runs. A layer mounted open enters from its closed style, as one opened later does. |
202
203
  | `onFullscreenChange` | `(fullscreen: boolean, request: DialogFullscreenRequest)` | Before the panel expands to the whole layer or is restored. The request carries the new value, the previous value, the reason (pointer, keyboard or programmatic), the originating event, and cancel(), which keeps the panel as it is. |
203
204
  | `onClick, onKeyDown and the other native events, on every part` | `the element’s own event` | Whenever the element fires them. Your handler runs before the dialog’s own, and calling preventDefault() in it cancels the dialog’s behaviour, such as opening on a trigger press or closing on a close press. |
204
205
 
@@ -207,6 +208,7 @@ export default function DialogBasic() {
207
208
  | Name | Payload | When |
208
209
  | --- | --- | --- |
209
210
  | `onOpenChange` | `(open: boolean, request: DialogChangeRequest)` | Before the dialog opens or closes, whatever caused it. The request carries the new value, the previous value, the reason (pointer, keyboard, dismiss, escape, outsidePress, back, submit or programmatic), the result of the close, the originating event, and cancel(), which keeps the dialog as it is. One handler therefore guards the ✕, Escape, a press outside, the way back and the ref handle together. |
211
+ | `onOpenChangeComplete` | `(open: boolean)` | After the entrance or the exit has ended: true once the layer is settled open, false once it has left — the moment an application that renders the layer conditionally removes it, so the exit runs. A layer mounted open enters from its closed style, as one opened later does. |
210
212
  | `onFullscreenChange` | `(fullscreen: boolean, request: DialogFullscreenRequest)` | Before the panel expands to the whole layer or is restored. The request carries the new value, the previous value, the reason (pointer, keyboard or programmatic), the originating event, and cancel(), which keeps the panel as it is. |
211
213
  | `onClick, onKeyDown and the other native events, on every part` | `the element’s own event` | Whenever the element fires them. Your handler runs before the dialog’s own, and calling preventDefault() in it cancels the dialog’s behaviour, such as opening on a trigger press or closing on a close press. |
212
214
 
@@ -224,7 +226,7 @@ export default function DialogBasic() {
224
226
  | `escape` | `close`, `none` | `close` |
225
227
  | `outsidePress` | `close`, `none` | `close`, `none` |
226
228
  | `back` | `close`, `none` | `close` |
227
- | `tone` | `accent`, `secondary`, `success`, `warning`, `danger` | `danger` |
229
+ | `tone` | `accent`, `secondary`, `info`, `success`, `warning`, `danger` | `danger` |
228
230
  | `initialFocus` | `first`, `container`, `cancel` | `first`, `cancel` |
229
231
 
230
232
  ## Rules
@@ -245,7 +247,7 @@ export default function DialogBasic() {
245
247
 
246
248
  ## Tokens
247
249
 
248
- `--slotted-border-subtle`, `--slotted-border-width-thick`, `--slotted-border-width-thin`, `--slotted-control-font-family`, `--slotted-control-icon-size-lg`, `--slotted-control-inner-size-lg`, `--slotted-control-radius`, `--slotted-control-transition-duration`, `--slotted-control-transition-easing`, `--slotted-dialog-body-color`, `--slotted-dialog-border-color`, `--slotted-dialog-close-active-background`, `--slotted-dialog-close-color`, `--slotted-dialog-close-hover-background`, `--slotted-dialog-color`, `--slotted-dialog-description-color`, `--slotted-dialog-footer-surface`, `--slotted-dialog-measure`, `--slotted-dialog-radius`, `--slotted-dialog-rule-color`, `--slotted-dialog-scrim`, `--slotted-dialog-surface`, `--slotted-dialog-title-color`, `--slotted-dialog-title-font-family`, `--slotted-duration-long`, `--slotted-duration-medium`, `--slotted-duration-short`, `--slotted-easing-exit`, `--slotted-easing-standard`, `--slotted-focus-ring-color`, `--slotted-focus-ring-offset`, `--slotted-focus-ring-width`, `--slotted-font-family-heading`, `--slotted-font-family-sans`, `--slotted-font-size-lg`, `--slotted-font-size-md`, `--slotted-font-size-xl`, `--slotted-font-weight-semibold`, `--slotted-line-height-md`, `--slotted-radius-lg`, `--slotted-radius-sm`, `--slotted-scrim`, `--slotted-shadow-lg`, `--slotted-space-12`, `--slotted-space-2`, `--slotted-space-4`, `--slotted-space-5`, `--slotted-space-6`, `--slotted-space-7`, `--slotted-space-8`, `--slotted-surface-raised`, `--slotted-surface-sunken`, `--slotted-target-comfortable`, `--slotted-target-min`, `--slotted-text`, `--slotted-text-muted`, `--slotted-tone-accent-text`, `--slotted-tone-danger-text`, `--slotted-tone-secondary-subtle-active`, `--slotted-tone-secondary-subtle-hover`, `--slotted-tone-secondary-text`, `--slotted-tone-success-text`, `--slotted-tone-warning-text`, `--slotted-z-index-overlay`
250
+ `--slotted-border-subtle`, `--slotted-border-width-thick`, `--slotted-border-width-thin`, `--slotted-control-font-family`, `--slotted-control-icon-size-lg`, `--slotted-control-inner-size-lg`, `--slotted-control-radius`, `--slotted-control-transition-duration`, `--slotted-control-transition-easing`, `--slotted-dialog-body-color`, `--slotted-dialog-border-color`, `--slotted-dialog-close-active-background`, `--slotted-dialog-close-color`, `--slotted-dialog-close-hover-background`, `--slotted-dialog-color`, `--slotted-dialog-description-color`, `--slotted-dialog-footer-surface`, `--slotted-dialog-measure`, `--slotted-dialog-padding-block`, `--slotted-dialog-padding-block-sm`, `--slotted-dialog-padding-inline`, `--slotted-dialog-padding-inline-sm`, `--slotted-dialog-radius`, `--slotted-dialog-rule-color`, `--slotted-dialog-scrim`, `--slotted-dialog-surface`, `--slotted-dialog-title-color`, `--slotted-dialog-title-font-family`, `--slotted-duration-long`, `--slotted-duration-medium`, `--slotted-duration-short`, `--slotted-easing-exit`, `--slotted-easing-standard`, `--slotted-focus-ring-color`, `--slotted-focus-ring-offset`, `--slotted-focus-ring-width`, `--slotted-font-family-heading`, `--slotted-font-family-sans`, `--slotted-font-size-lg`, `--slotted-font-size-md`, `--slotted-font-size-xl`, `--slotted-font-weight-semibold`, `--slotted-line-height-md`, `--slotted-radius-lg`, `--slotted-radius-sm`, `--slotted-scrim`, `--slotted-shadow-lg`, `--slotted-space-12`, `--slotted-space-2`, `--slotted-space-4`, `--slotted-space-5`, `--slotted-space-6`, `--slotted-space-7`, `--slotted-space-8`, `--slotted-surface-raised`, `--slotted-surface-sunken`, `--slotted-target-comfortable`, `--slotted-target-min`, `--slotted-text`, `--slotted-text-muted`, `--slotted-tone-accent-text`, `--slotted-tone-danger-text`, `--slotted-tone-info-text`, `--slotted-tone-secondary-subtle-active`, `--slotted-tone-secondary-subtle-hover`, `--slotted-tone-secondary-text`, `--slotted-tone-success-text`, `--slotted-tone-warning-text`, `--slotted-z-index-overlay`
249
251
 
250
252
  ## Examples
251
253
 
@@ -413,6 +413,11 @@
413
413
  "payload": "(open: boolean, request: DrawerChangeRequest)",
414
414
  "when": "Before the drawer opens or closes, for every way it can: the trigger, the ✕, Escape, a press outside, the back gesture and the handle. The request carries value, previous, reason (pointer, keyboard, dismiss, escape, outsidePress, back or programmatic), result, the source event and cancel(), which keeps the drawer as it is."
415
415
  },
416
+ {
417
+ "name": "onOpenChangeComplete",
418
+ "payload": "(open: boolean)",
419
+ "when": "After the entrance or the exit has ended: true once the drawer is settled open, false once it has left — the moment an application that renders the drawer conditionally removes it, so the exit runs. A drawer mounted open enters from its closed style, as one opened later does."
420
+ },
416
421
  {
417
422
  "name": "onExtentChange",
418
423
  "payload": "(extent: number | undefined, request: DrawerExtentRequest)",
@@ -149,6 +149,7 @@ export default function DrawerBasic() {
149
149
  | Name | Payload | When |
150
150
  | --- | --- | --- |
151
151
  | `onOpenChange` | `(open: boolean, request: DrawerChangeRequest)` | Before the drawer opens or closes, for every way it can: the trigger, the ✕, Escape, a press outside, the back gesture and the handle. The request carries value, previous, reason (pointer, keyboard, dismiss, escape, outsidePress, back or programmatic), result, the source event and cancel(), which keeps the drawer as it is. |
152
+ | `onOpenChangeComplete` | `(open: boolean)` | After the entrance or the exit has ended: true once the drawer is settled open, false once it has left — the moment an application that renders the drawer conditionally removes it, so the exit runs. A drawer mounted open enters from its closed style, as one opened later does. |
152
153
  | `onExtentChange` | `(extent: number \| undefined, request: DrawerExtentRequest)` | Before the panel’s measure changes, with the reason pointer for a drag or a tap on the grip, keyboard for an arrow key, Home, End or Enter, and programmatic for a change from code. A drag of the separator fires on every pointer move and can report a value below minExtent; a drag of a sheet’s body fires once, on release, with the stop it landed on. undefined means the panel is back on its size step, or on the height of its content under size="content". |
153
154
  | `onClick, onKeyDown, onPointerDown, on every part` | `the element’s own events` | Whenever the element fires them. Your handler runs first, and preventDefault() in it cancels the drawer’s own behaviour for that event. |
154
155
 
@@ -176,7 +176,7 @@
176
176
  "docs": {
177
177
  "entity-picker": {
178
178
  "imports": {
179
- "source": "import { EntityPicker, EntityPickerDefaultsProvider, localEntitySource, rememberRecent } from '@slotted/react';"
179
+ "source": "import { EntityPicker, EntityPickerDefaultsProvider, EntityPickerOptionDescription, EntityPickerOptionLabel, EntityPickerOptionMedia, EntityPickerOptionMeta, localEntitySource, rememberRecent } from '@slotted/react';"
180
180
  },
181
181
  "anatomy": [
182
182
  {
@@ -475,12 +475,26 @@
475
475
  "appliesTo": "EntityPicker",
476
476
  "description": "Draws the offer to create"
477
477
  },
478
+ {
479
+ "name": "virtualize",
480
+ "type": "boolean",
481
+ "defaultValue": "above 100 options without headings",
482
+ "appliesTo": "EntityPicker",
483
+ "description": "Draws only the options in view and a few either side; the keyboard, aria-activedescendant and scrolling to the highlight reach every option. A list with section headings is drawn whole"
484
+ },
485
+ {
486
+ "name": "estimatedRowHeight",
487
+ "type": "number",
488
+ "defaultValue": "48",
489
+ "appliesTo": "EntityPicker",
490
+ "description": "The height an option is counted at until it has been drawn and measured"
491
+ },
478
492
  {
479
493
  "name": "renderOption",
480
494
  "type": "(entity, state) => ReactNode",
481
495
  "defaultValue": "name, identifier, fact",
482
496
  "appliesTo": "EntityPicker",
483
- "description": "The content of an option; the face, the check and the row stay the family’s"
497
+ "description": "The content of an option, written with EntityPickerOptionLabel, EntityPickerOptionDescription, EntityPickerOptionMeta and EntityPickerOptionMedia, which place it in the row; the face, the check and the row stay the family’s. With media=\"none\" an option draws its own face in EntityPickerOptionMedia"
484
498
  },
485
499
  {
486
500
  "name": "renderChip",
@@ -739,6 +753,7 @@
739
753
  "--slotted-border-width-thin",
740
754
  "--slotted-control-border-color",
741
755
  "--slotted-control-border-width",
756
+ "--slotted-control-focus-ring-offset",
742
757
  "--slotted-control-font-family",
743
758
  "--slotted-control-font-size-lg",
744
759
  "--slotted-control-font-size-md",
@@ -991,7 +1006,7 @@
991
1006
  "title": "Composition",
992
1007
  "note": "renderOption adds the team after the address; renderChip adds the role to a chip; SlottedProvider says every sentence in Portuguese once.",
993
1008
  "language": "tsx",
994
- "source": "<SlottedProvider locale=\"pt-BR\" catalogs={{ 'pt-BR': PT_BR }}>\n <EntityPicker\n aria-label=\"Responsável\"\n messages={{ retry: 'Buscar outra vez' }}\n renderOption={(person) => <span data-part=\"label\">{person.label}</span>}\n source={directory}\n />\n</SlottedProvider>;\n",
1009
+ "source": "<SlottedProvider locale=\"pt-BR\" catalogs={{ 'pt-BR': PT_BR }}>\n <EntityPicker\n aria-label=\"Responsável\"\n messages={{ retry: 'Buscar outra vez' }}\n renderOption={(person) => (\n <>\n <EntityPickerOptionLabel>{person.label}</EntityPickerOptionLabel>\n <EntityPickerOptionDescription>{person.team}</EntityPickerOptionDescription>\n </>\n )}\n source={directory}\n />\n</SlottedProvider>;\n",
995
1010
  "verdict": "excerpt"
996
1011
  }
997
1012
  ]
@@ -6,7 +6,7 @@
6
6
  ## Import
7
7
 
8
8
  ```tsx
9
- import { EntityPicker, EntityPickerDefaultsProvider, localEntitySource, rememberRecent } from '@slotted/react';
9
+ import { EntityPicker, EntityPickerDefaultsProvider, EntityPickerOptionDescription, EntityPickerOptionLabel, EntityPickerOptionMedia, EntityPickerOptionMeta, localEntitySource, rememberRecent } from '@slotted/react';
10
10
  ```
11
11
 
12
12
  ## Minimal example
@@ -82,7 +82,9 @@ const directory: EntitySource = {
82
82
  | `scope` | `string \| null` | — | EntityPicker | The scope, controlled |
83
83
  | `defaultScope` | `string \| null` | null | EntityPicker | The uncontrolled scope |
84
84
  | `onCreate` | `(query) => void \| Entity \| Promise<Entity \| null \| void>` | — | EntityPicker | Draws the offer to create |
85
- | `renderOption` | `(entity, state) => ReactNode` | name, identifier, fact | EntityPicker | The content of an option; the face, the check and the row stay the family’s |
85
+ | `virtualize` | `boolean` | above 100 options without headings | EntityPicker | Draws only the options in view and a few either side; the keyboard, aria-activedescendant and scrolling to the highlight reach every option. A list with section headings is drawn whole |
86
+ | `estimatedRowHeight` | `number` | 48 | EntityPicker | The height an option is counted at until it has been drawn and measured |
87
+ | `renderOption` | `(entity, state) => ReactNode` | name, identifier, fact | EntityPicker | The content of an option, written with EntityPickerOptionLabel, EntityPickerOptionDescription, EntityPickerOptionMeta and EntityPickerOptionMedia, which place it in the row; the face, the check and the row stay the family’s. With media="none" an option draws its own face in EntityPickerOptionMedia |
86
88
  | `renderChip` | `(entity) => ReactNode` | the name | EntityPicker | The words of a chip |
87
89
  | `render` | `(props) => ReactNode` | a div | EntityPicker | Replaces the root element |
88
90
  | `handleRef` | `Ref<{ focus, open, close, refresh }>` | — | EntityPicker | refresh() asks the source again |
@@ -158,7 +160,7 @@ const directory: EntitySource = {
158
160
 
159
161
  ## Tokens
160
162
 
161
- `--slotted-avatar-size-md`, `--slotted-avatar-size-sm`, `--slotted-avatar-size-xs`, `--slotted-border-subtle`, `--slotted-border-width-thin`, `--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-inner-size-lg`, `--slotted-control-inner-size-md`, `--slotted-control-inner-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-disabled-background`, `--slotted-disabled-border`, `--slotted-disabled-foreground`, `--slotted-duration-medium`, `--slotted-duration-short`, `--slotted-easing-enter`, `--slotted-easing-exit`, `--slotted-easing-standard`, `--slotted-entity-picker-action-active-background`, `--slotted-entity-picker-action-color`, `--slotted-entity-picker-action-hover-background`, `--slotted-entity-picker-action-size`, `--slotted-entity-picker-autofill-background`, `--slotted-entity-picker-background`, `--slotted-entity-picker-border-color`, `--slotted-entity-picker-color`, `--slotted-entity-picker-content-border-color`, `--slotted-entity-picker-content-radius`, `--slotted-entity-picker-content-shadow`, `--slotted-entity-picker-content-text`, `--slotted-entity-picker-content-text-muted`, `--slotted-entity-picker-disabled-background`, `--slotted-entity-picker-disabled-border-color`, `--slotted-entity-picker-disabled-color`, `--slotted-entity-picker-error-color`, `--slotted-entity-picker-field-basis`, `--slotted-entity-picker-field-min`, `--slotted-entity-picker-highlight`, `--slotted-entity-picker-highlight-active`, `--slotted-entity-picker-highlight-ring`, `--slotted-entity-picker-hover-border-color`, `--slotted-entity-picker-icon-size-min`, `--slotted-entity-picker-invalid-border-color`, `--slotted-entity-picker-invalid-edge-width`, `--slotted-entity-picker-invalid-focus-ring-color`, `--slotted-entity-picker-item-radius`, `--slotted-entity-picker-measure`, `--slotted-entity-picker-meta-measure`, `--slotted-entity-picker-offer-color`, `--slotted-entity-picker-open-border-color`, `--slotted-entity-picker-placeholder-color`, `--slotted-entity-picker-plain-hover-background`, `--slotted-entity-picker-radius`, `--slotted-entity-picker-readonly-background`, `--slotted-entity-picker-scope-inline-size`, `--slotted-entity-picker-selected-color`, `--slotted-entity-picker-shadow`, `--slotted-entity-picker-subtle-background`, `--slotted-entity-picker-subtle-border-color`, `--slotted-entity-picker-subtle-hover-background`, `--slotted-entity-picker-surface`, `--slotted-focus-ring-color`, `--slotted-focus-ring-color-invalid`, `--slotted-focus-ring-offset`, `--slotted-focus-ring-width`, `--slotted-font-family-sans`, `--slotted-font-size-xs`, `--slotted-font-weight-medium`, `--slotted-font-weight-semibold`, `--slotted-line-height-md`, `--slotted-line-height-sm`, `--slotted-radius-lg`, `--slotted-radius-none`, `--slotted-shadow-md`, `--slotted-space-1`, `--slotted-space-2`, `--slotted-space-3`, `--slotted-space-4`, `--slotted-space-5`, `--slotted-surface-raised`, `--slotted-surface-sunken`, `--slotted-target-comfortable`, `--slotted-target-min`, `--slotted-text`, `--slotted-text-muted`, `--slotted-tone-accent-border`, `--slotted-tone-accent-surface`, `--slotted-tone-accent-text`, `--slotted-tone-danger-border`, `--slotted-tone-danger-text`, `--slotted-tone-secondary-subtle-active`, `--slotted-tone-secondary-subtle-hover`, `--slotted-z-index-popover`
163
+ `--slotted-avatar-size-md`, `--slotted-avatar-size-sm`, `--slotted-avatar-size-xs`, `--slotted-border-subtle`, `--slotted-border-width-thin`, `--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-inner-size-lg`, `--slotted-control-inner-size-md`, `--slotted-control-inner-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-disabled-background`, `--slotted-disabled-border`, `--slotted-disabled-foreground`, `--slotted-duration-medium`, `--slotted-duration-short`, `--slotted-easing-enter`, `--slotted-easing-exit`, `--slotted-easing-standard`, `--slotted-entity-picker-action-active-background`, `--slotted-entity-picker-action-color`, `--slotted-entity-picker-action-hover-background`, `--slotted-entity-picker-action-size`, `--slotted-entity-picker-autofill-background`, `--slotted-entity-picker-background`, `--slotted-entity-picker-border-color`, `--slotted-entity-picker-color`, `--slotted-entity-picker-content-border-color`, `--slotted-entity-picker-content-radius`, `--slotted-entity-picker-content-shadow`, `--slotted-entity-picker-content-text`, `--slotted-entity-picker-content-text-muted`, `--slotted-entity-picker-disabled-background`, `--slotted-entity-picker-disabled-border-color`, `--slotted-entity-picker-disabled-color`, `--slotted-entity-picker-error-color`, `--slotted-entity-picker-field-basis`, `--slotted-entity-picker-field-min`, `--slotted-entity-picker-highlight`, `--slotted-entity-picker-highlight-active`, `--slotted-entity-picker-highlight-ring`, `--slotted-entity-picker-hover-border-color`, `--slotted-entity-picker-icon-size-min`, `--slotted-entity-picker-invalid-border-color`, `--slotted-entity-picker-invalid-edge-width`, `--slotted-entity-picker-invalid-focus-ring-color`, `--slotted-entity-picker-item-radius`, `--slotted-entity-picker-measure`, `--slotted-entity-picker-meta-measure`, `--slotted-entity-picker-offer-color`, `--slotted-entity-picker-open-border-color`, `--slotted-entity-picker-placeholder-color`, `--slotted-entity-picker-plain-hover-background`, `--slotted-entity-picker-radius`, `--slotted-entity-picker-readonly-background`, `--slotted-entity-picker-scope-inline-size`, `--slotted-entity-picker-selected-color`, `--slotted-entity-picker-shadow`, `--slotted-entity-picker-subtle-background`, `--slotted-entity-picker-subtle-border-color`, `--slotted-entity-picker-subtle-hover-background`, `--slotted-entity-picker-surface`, `--slotted-focus-ring-color`, `--slotted-focus-ring-color-invalid`, `--slotted-focus-ring-offset`, `--slotted-focus-ring-width`, `--slotted-font-family-sans`, `--slotted-font-size-xs`, `--slotted-font-weight-medium`, `--slotted-font-weight-semibold`, `--slotted-line-height-md`, `--slotted-line-height-sm`, `--slotted-radius-lg`, `--slotted-radius-none`, `--slotted-shadow-md`, `--slotted-space-1`, `--slotted-space-2`, `--slotted-space-3`, `--slotted-space-4`, `--slotted-space-5`, `--slotted-surface-raised`, `--slotted-surface-sunken`, `--slotted-target-comfortable`, `--slotted-target-min`, `--slotted-text`, `--slotted-text-muted`, `--slotted-tone-accent-border`, `--slotted-tone-accent-surface`, `--slotted-tone-accent-text`, `--slotted-tone-danger-border`, `--slotted-tone-danger-text`, `--slotted-tone-secondary-subtle-active`, `--slotted-tone-secondary-subtle-hover`, `--slotted-z-index-popover`
162
164
 
163
165
  ## Examples
164
166
 
@@ -382,7 +384,12 @@ Excerpt — not a complete module
382
384
  <EntityPicker
383
385
  aria-label="Responsável"
384
386
  messages={{ retry: 'Buscar outra vez' }}
385
- renderOption={(person) => <span data-part="label">{person.label}</span>}
387
+ renderOption={(person) => (
388
+ <>
389
+ <EntityPickerOptionLabel>{person.label}</EntityPickerOptionLabel>
390
+ <EntityPickerOptionDescription>{person.team}</EntityPickerOptionDescription>
391
+ </>
392
+ )}
386
393
  source={directory}
387
394
  />
388
395
  </SlottedProvider>;
@@ -557,6 +557,13 @@
557
557
  "appliesTo": "EventCalendar",
558
558
  "description": "Read once; pass it when rendering on a server"
559
559
  },
560
+ {
561
+ "name": "now",
562
+ "type": "PlainDateTime",
563
+ "defaultValue": "the clock in timeZone, ticked each minute",
564
+ "appliesTo": "EventCalendar",
565
+ "description": "Present means the consumer owns it: the clock is no longer read, and today and the now line follow it. A page dated by its content passes it."
566
+ },
560
567
  {
561
568
  "name": "view",
562
569
  "type": "'month' | 'week' | 'day' | 'list'",
@@ -98,6 +98,7 @@ Excerpt — not a complete module
98
98
  | `calendars` | `readonly EventCalendarCalendar[]` | [] | EventCalendar | Key, label and an optional colour slot 1–8 |
99
99
  | `date` | `PlainDate` | — | EventCalendar | The day the calendar is on; present means controlled |
100
100
  | `defaultDate` | `PlainDate` | today in timeZone | EventCalendar | Read once; pass it when rendering on a server |
101
+ | `now` | `PlainDateTime` | the clock in timeZone, ticked each minute | EventCalendar | Present means the consumer owns it: the clock is no longer read, and today and the now line follow it. A page dated by its content passes it. |
101
102
  | `view` | `'month' \| 'week' \| 'day' \| 'list'` | month | EventCalendar | Present means controlled; uncontrolled opens on the first of views |
102
103
  | `defaultView` | `EventCalendarView` | views[0] | EventCalendar | Read once |
103
104
  | `views` | `readonly EventCalendarView[]` | month,week,day,list | EventCalendar | The switcher, in order |