@slotted/react 0.1.0-beta.7 → 0.1.0-beta.9

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 (630) hide show
  1. package/dist/accordion-BV8Fk_Bb.js +144 -0
  2. package/dist/accordion.js +1 -1
  3. package/dist/{action-bar-C5zaYrEW.js → action-bar-1Oim1M96.js} +87 -86
  4. package/dist/action-bar.js +1 -1
  5. package/dist/action-sheet-DDYGq59n.js +358 -0
  6. package/dist/action-sheet.js +1 -1
  7. package/dist/alert-CBOYFgV4.js +162 -0
  8. package/dist/alert.js +1 -1
  9. package/dist/app-shell-lsR7E83y.js +845 -0
  10. package/dist/app-shell.js +1 -1
  11. package/dist/aspect-ratio-4-jVcJVH.js +41 -0
  12. package/dist/aspect-ratio.js +1 -1
  13. package/dist/attachment-DRJ1Xbwf.js +305 -0
  14. package/dist/attachment.js +1 -1
  15. package/dist/avatar-XLx8XVQx.js +103 -0
  16. package/dist/avatar-group-C7WnrQcv.js +50 -0
  17. package/dist/avatar-group.js +1 -1
  18. package/dist/avatar.js +1 -1
  19. package/dist/badge-D8JWis8n.js +98 -0
  20. package/dist/badge.js +1 -1
  21. package/dist/breadcrumb-Dwhy6HNo.js +222 -0
  22. package/dist/breadcrumb.js +1 -1
  23. package/dist/button-DE4tnH90.js +100 -0
  24. package/dist/button-group-CNDK1041.js +51 -0
  25. package/dist/button-group.js +1 -1
  26. package/dist/button.js +2 -2
  27. package/dist/calendar-C5MWMBJ-.js +457 -0
  28. package/dist/calendar.js +1 -1
  29. package/dist/card-D-qJkGER.js +103 -0
  30. package/dist/card.js +1 -1
  31. package/dist/carousel-AUACHYJI.js +499 -0
  32. package/dist/carousel.js +1 -1
  33. package/dist/{cascader-Cn2Acpcv.js → cascader-DxoDZicZ.js} +374 -334
  34. package/dist/cascader.js +1 -1
  35. package/dist/chart-DlFmkiTt.js +1010 -0
  36. package/dist/chart.js +1 -1
  37. package/dist/checkbox-BiQZiZNt.js +144 -0
  38. package/dist/checkbox-group-DGTqyyx5.js +109 -0
  39. package/dist/checkbox-group.js +1 -1
  40. package/dist/checkbox.js +1 -1
  41. package/dist/code-block-eGJk55we.js +282 -0
  42. package/dist/code-block.js +1 -1
  43. package/dist/collapsible-BZJRc6im.js +222 -0
  44. package/dist/collapsible.js +1 -1
  45. package/dist/color-picker-BwN0Z-6T.js +506 -0
  46. package/dist/color-picker.js +1 -1
  47. package/dist/column-manager-TmTLTxbk.js +586 -0
  48. package/dist/column-manager.js +1 -1
  49. package/dist/combobox-C7ah850L.js +902 -0
  50. package/dist/combobox.js +1 -1
  51. package/dist/command-palette-DaJvrDUu.js +741 -0
  52. package/dist/command-palette.js +1 -1
  53. package/dist/container-D055iqqL.js +47 -0
  54. package/dist/container.js +1 -1
  55. package/dist/context-menu-DPVaLtM3.js +151 -0
  56. package/dist/context-menu.js +1 -1
  57. package/dist/currency-field-DaTmtosk.js +469 -0
  58. package/dist/currency-field.js +1 -1
  59. package/dist/{dashboard-grid-DsovCuVC.js → dashboard-grid-CPkG03YJ.js} +335 -330
  60. package/dist/dashboard-grid.js +1 -1
  61. package/dist/{data-grid-CjFQ2U6v.js → data-grid-UyqqM0QZ.js} +1329 -1180
  62. package/dist/data-grid.js +1 -1
  63. package/dist/{data-list-UtLdop-1.js → data-list-nqUyMq3p.js} +173 -147
  64. package/dist/data-list.js +1 -1
  65. package/dist/date-field-BSxzX9I5.js +299 -0
  66. package/dist/date-field.js +1 -1
  67. package/dist/date-picker-Cw5cGND1.js +316 -0
  68. package/dist/date-picker.js +1 -1
  69. package/dist/date-range-picker-l7D9XdFz.js +501 -0
  70. package/dist/date-range-picker.js +1 -1
  71. package/dist/datetime-field-KtkRmy6M.js +424 -0
  72. package/dist/datetime-field.js +1 -1
  73. package/dist/{datetime-picker-STqSWMkH.js → datetime-picker-CWNTsAk5.js} +217 -200
  74. package/dist/datetime-picker.js +1 -1
  75. package/dist/datetime-range-picker-OXDQGRWg.js +1029 -0
  76. package/dist/datetime-range-picker.js +1 -1
  77. package/dist/description-list-wYFj_gz-.js +240 -0
  78. package/dist/description-list.js +1 -1
  79. package/dist/{detail-panel-ChaIgrw3.js → detail-panel-CKizcLlb.js} +101 -93
  80. package/dist/detail-panel.js +1 -1
  81. package/dist/dialog-CpdINwbD.js +533 -0
  82. package/dist/dialog.js +1 -1
  83. package/dist/divider-mlzDmInL.js +35 -0
  84. package/dist/divider.js +1 -1
  85. package/dist/docs/calendar.json +1 -1
  86. package/dist/docs/code-block.json +93 -93
  87. package/dist/docs/code-block.md +71 -71
  88. package/dist/docs/currency-field.json +7 -0
  89. package/dist/docs/currency-field.md +1 -0
  90. package/dist/docs/data-grid.examples.md +1 -1
  91. package/dist/docs/data-grid.json +21 -4
  92. package/dist/docs/data-grid.md +1 -1
  93. package/dist/docs/data-grid.props.md +5 -3
  94. package/dist/docs/dialog.examples.md +118 -116
  95. package/dist/docs/dialog.json +8 -8
  96. package/dist/docs/filter-bar.json +115 -115
  97. package/dist/docs/filter-bar.md +78 -78
  98. package/dist/docs/guidelines/async-feedback.md +10 -0
  99. package/dist/docs/guidelines/composition.md +11 -7
  100. package/dist/docs/guidelines/index.md +6 -1
  101. package/dist/docs/guidelines/list-pages.md +30 -0
  102. package/dist/docs/guidelines/overviews.md +10 -0
  103. package/dist/docs/markdown.json +75 -75
  104. package/dist/docs/markdown.md +63 -63
  105. package/dist/docs/page-header.json +1 -1
  106. package/dist/docs/skills/compose-screen/SKILL.md +22 -10
  107. package/dist/docs/skills/review-screen/SKILL.md +6 -0
  108. package/dist/docs/skills/waiting-states/SKILL.md +4 -1
  109. package/dist/docs/tags-input.json +28 -2
  110. package/dist/docs/tags-input.md +4 -1
  111. package/dist/docs/timeline.json +129 -129
  112. package/dist/docs/timeline.md +120 -120
  113. package/dist/drawer-CRaogb8b.js +769 -0
  114. package/dist/drawer.js +1 -1
  115. package/dist/{entity-picker-BdySwW8F.js → entity-picker-Z_R15jez.js} +461 -407
  116. package/dist/entity-picker.js +1 -1
  117. package/dist/{event-calendar-VUGigZIP.js → event-calendar-BTqvEoHB.js} +466 -397
  118. package/dist/event-calendar.js +1 -1
  119. package/dist/field-DKA-qsCV.js +367 -0
  120. package/dist/field-group-DFBcVPei.js +138 -0
  121. package/dist/field-group.js +1 -1
  122. package/dist/field.js +1 -1
  123. package/dist/filter-bar-C9QzKlR7.js +1340 -0
  124. package/dist/filter-bar.js +1 -1
  125. package/dist/{form-vTCQhZM-.js → form-C3PbJPAx.js} +96 -87
  126. package/dist/form.js +1 -1
  127. package/dist/fullscreen-DnMrOXT1.js +190 -0
  128. package/dist/fullscreen.js +1 -1
  129. package/dist/grid-Ceyh0svH.js +26 -0
  130. package/dist/grid.js +1 -1
  131. package/dist/highlight-CIcfSNwz.js +59 -0
  132. package/dist/highlight.js +1 -1
  133. package/dist/hover-card-Cw65NrY1.js +215 -0
  134. package/dist/hover-card.js +1 -1
  135. package/dist/icon-DMdotKfc.js +75 -0
  136. package/dist/icon-button-VOA-RY_1.js +222 -0
  137. package/dist/icon.js +1 -1
  138. package/dist/{image-DpDFrrXL.js → image-CHiNVcMX.js} +24 -20
  139. package/dist/image.js +1 -1
  140. package/dist/{import-export-center-BuEBO1CB.js → import-export-center-BZkY9DNX.js} +227 -175
  141. package/dist/import-export-center.js +1 -1
  142. package/dist/index.js +125 -125
  143. package/dist/inline-BvUpHX8q.js +17 -0
  144. package/dist/inline-message-BgA4EOsR.js +95 -0
  145. package/dist/inline-message.js +1 -1
  146. package/dist/inline.js +1 -1
  147. package/dist/kbd-DQwbQOQo.js +105 -0
  148. package/dist/kbd.js +1 -1
  149. package/dist/link-2zYK7lG3.js +91 -0
  150. package/dist/link.js +1 -1
  151. package/dist/list-Bl3ittKt.js +95 -0
  152. package/dist/list-item-C95M_E6h.js +125 -0
  153. package/dist/list-item.js +1 -1
  154. package/dist/list.js +1 -1
  155. package/dist/listbox-CjCzb8wA.js +626 -0
  156. package/dist/listbox.js +1 -1
  157. package/dist/loading-overlay-B6htOo0b.js +218 -0
  158. package/dist/loading-overlay.js +1 -1
  159. package/dist/markdown-CvkdDhk0.js +306 -0
  160. package/dist/markdown.js +1 -1
  161. package/dist/menu-parts-Dsszga3r.js +805 -0
  162. package/dist/menu.js +1 -1
  163. package/dist/menubar-C6ADG3vZ.js +157 -0
  164. package/dist/menubar.js +1 -1
  165. package/dist/message-Cjx5EKXr.js +434 -0
  166. package/dist/message-scroller-DbsTtBDf.js +216 -0
  167. package/dist/message-scroller.js +1 -1
  168. package/dist/message.js +1 -1
  169. package/dist/{multi-select-B8z6ApgW.js → multi-select-BwBY-V0x.js} +468 -428
  170. package/dist/multi-select.js +1 -1
  171. package/dist/navigation-menu-parts-BH_bD_nB.js +492 -0
  172. package/dist/navigation-menu.js +1 -1
  173. package/dist/notification-center-COgvX79i.js +515 -0
  174. package/dist/notification-center.js +1 -1
  175. package/dist/number-field-DAkV-0Ds.js +345 -0
  176. package/dist/number-field.js +1 -1
  177. package/dist/{otp-input-CI-kdNgx.js → otp-input-BhNLVojM.js} +75 -72
  178. package/dist/otp-input.js +1 -1
  179. package/dist/page-DhWDOrba.js +179 -0
  180. package/dist/page-header-_w0GDfzQ.js +369 -0
  181. package/dist/page-header.js +1 -1
  182. package/dist/page.js +1 -1
  183. package/dist/pagination-ORU3xJIl.js +299 -0
  184. package/dist/pagination.js +1 -1
  185. package/dist/popover-Dwj841Zz.js +500 -0
  186. package/dist/popover.js +1 -1
  187. package/dist/progress-indicator-BhljwFx8.js +289 -0
  188. package/dist/progress-indicator.js +1 -1
  189. package/dist/prompt-composer-DekRS1MN.js +259 -0
  190. package/dist/prompt-composer.js +1 -1
  191. package/dist/prose-vW3cGfUO.js +92 -0
  192. package/dist/prose.js +1 -1
  193. package/dist/radio-group-B90c6yUE.js +143 -0
  194. package/dist/radio-group.js +1 -1
  195. package/dist/rating-DQ8ekf4J.js +501 -0
  196. package/dist/rating.js +1 -1
  197. package/dist/result-state-_QpLl0_K.js +128 -0
  198. package/dist/result-state.js +1 -1
  199. package/dist/saved-views-CSVHsnUY.js +456 -0
  200. package/dist/saved-views.js +1 -1
  201. package/dist/scroll-area-YWtHa-AH.js +112 -0
  202. package/dist/scroll-area.js +1 -1
  203. package/dist/section-BIVN1b9I.js +177 -0
  204. package/dist/section.js +1 -1
  205. package/dist/segmented-control-BEhDuh3f.js +156 -0
  206. package/dist/segmented-control.js +1 -1
  207. package/dist/select-Dx9crduQ.js +1018 -0
  208. package/dist/{select-tags-CQMcHIQN.js → select-tags-O7s_VG8g.js} +11 -1
  209. package/dist/select.js +1 -1
  210. package/dist/side-navigation-Clp3d76j.js +747 -0
  211. package/dist/side-navigation.js +1 -1
  212. package/dist/skeleton-DhMVeVtn.js +149 -0
  213. package/dist/skeleton.js +1 -1
  214. package/dist/slider-Q4U838QA.js +264 -0
  215. package/dist/slider.js +1 -1
  216. package/dist/sparkline-BpEgC_sE.js +139 -0
  217. package/dist/sparkline.js +1 -1
  218. package/dist/split-button-BXTSOL1t.js +136 -0
  219. package/dist/split-button.js +1 -1
  220. package/dist/splitter-CQIAFS-U.js +293 -0
  221. package/dist/splitter.js +1 -1
  222. package/dist/stack-CcdrLuIO.js +16 -0
  223. package/dist/stack.js +1 -1
  224. package/dist/stat-card-B26PbBTG.js +247 -0
  225. package/dist/stat-card.js +1 -1
  226. package/dist/status-indicator-BcRmvlQi.js +78 -0
  227. package/dist/status-indicator.js +1 -1
  228. package/dist/stepper-DJiyt8_a.js +261 -0
  229. package/dist/stepper.js +1 -1
  230. package/dist/styles.css +1 -1
  231. package/dist/switch-DJcPFG_K.js +144 -0
  232. package/dist/switch.js +1 -1
  233. package/dist/{table-C1kLS0-9.js → table-B_h8MWmn.js} +345 -332
  234. package/dist/table-of-contents-Di60gQxa.js +471 -0
  235. package/dist/table-of-contents.js +1 -1
  236. package/dist/table.js +1 -1
  237. package/dist/tabs-cSln63RJ.js +361 -0
  238. package/dist/tabs.js +1 -1
  239. package/dist/tag-IJC5A6Mw.js +374 -0
  240. package/dist/tag.js +1 -1
  241. package/dist/tags-input-C1rz88eV.js +729 -0
  242. package/dist/tags-input.js +1 -1
  243. package/dist/text-field-8YqMC2pD.js +203 -0
  244. package/dist/text-field.js +1 -1
  245. package/dist/textarea-CLs-VUAu.js +100 -0
  246. package/dist/textarea.js +1 -1
  247. package/dist/time-field-8ZgiPHW6.js +366 -0
  248. package/dist/time-field.js +1 -1
  249. package/dist/{time-picker-D6SlQWNF.js → time-picker-MmBtsFt-.js} +134 -121
  250. package/dist/time-picker.js +1 -1
  251. package/dist/time-range-picker-IKd3NKiC.js +779 -0
  252. package/dist/time-range-picker.js +1 -1
  253. package/dist/timeline-DHzS0QcQ.js +446 -0
  254. package/dist/timeline.js +1 -1
  255. package/dist/toast-BFK2kxCh.js +469 -0
  256. package/dist/toast.js +1 -1
  257. package/dist/toggle-Tce-wI5k.js +67 -0
  258. package/dist/toggle-group-CjtkcHal.js +145 -0
  259. package/dist/toggle-group.js +1 -1
  260. package/dist/toggle.js +1 -1
  261. package/dist/toolbar-f-xwEocO.js +241 -0
  262. package/dist/toolbar.js +1 -1
  263. package/dist/tooltip-Bhr8L7US.js +411 -0
  264. package/dist/tooltip.js +1 -1
  265. package/dist/top-navigation-DkklehE6.js +744 -0
  266. package/dist/top-navigation.js +1 -1
  267. package/dist/tour-BgFSHHxG.js +809 -0
  268. package/dist/tour.js +1 -1
  269. package/dist/transfer-kbdtwSnx.js +606 -0
  270. package/dist/transfer.js +1 -1
  271. package/dist/tree-CNUJWzmq.js +792 -0
  272. package/dist/tree.js +1 -1
  273. package/dist/types/accordion/accordion.d.ts.map +1 -1
  274. package/dist/types/action-bar/action-bar-overflow.d.ts.map +1 -1
  275. package/dist/types/action-bar/action-bar-parts.d.ts.map +1 -1
  276. package/dist/types/action-bar/action-bar.d.ts.map +1 -1
  277. package/dist/types/action-sheet/action-sheet-parts.d.ts.map +1 -1
  278. package/dist/types/alert/alert-parts.d.ts.map +1 -1
  279. package/dist/types/alert/alert.d.ts.map +1 -1
  280. package/dist/types/app-shell/app-shell-parts.d.ts.map +1 -1
  281. package/dist/types/app-shell/app-shell.d.ts.map +1 -1
  282. package/dist/types/aspect-ratio/aspect-ratio.d.ts.map +1 -1
  283. package/dist/types/attachment/attachment-parts.d.ts.map +1 -1
  284. package/dist/types/attachment/attachment.d.ts.map +1 -1
  285. package/dist/types/avatar/avatar.d.ts.map +1 -1
  286. package/dist/types/avatar-group/avatar-group.d.ts.map +1 -1
  287. package/dist/types/badge/badge-anchor.d.ts.map +1 -1
  288. package/dist/types/badge/badge.d.ts.map +1 -1
  289. package/dist/types/breadcrumb/breadcrumb-parts.d.ts.map +1 -1
  290. package/dist/types/breadcrumb/breadcrumb.d.ts.map +1 -1
  291. package/dist/types/button/button-content.d.ts.map +1 -1
  292. package/dist/types/button/button-indicator.d.ts.map +1 -1
  293. package/dist/types/button/button-link.d.ts.map +1 -1
  294. package/dist/types/button/button-root.d.ts +2 -2
  295. package/dist/types/button/button-root.d.ts.map +1 -1
  296. package/dist/types/button/button.d.ts.map +1 -1
  297. package/dist/types/button/icon-button.d.ts.map +1 -1
  298. package/dist/types/button/toggle-button.d.ts.map +1 -1
  299. package/dist/types/button-group/button-group-separator.d.ts.map +1 -1
  300. package/dist/types/button-group/button-group.d.ts.map +1 -1
  301. package/dist/types/calendar/calendar.d.ts.map +1 -1
  302. package/dist/types/card/card-actions.d.ts.map +1 -1
  303. package/dist/types/card/card-body.d.ts.map +1 -1
  304. package/dist/types/card/card-footer.d.ts.map +1 -1
  305. package/dist/types/card/card-header.d.ts.map +1 -1
  306. package/dist/types/card/card-link.d.ts.map +1 -1
  307. package/dist/types/card/card-media.d.ts.map +1 -1
  308. package/dist/types/card/card-selection.d.ts.map +1 -1
  309. package/dist/types/card/card.d.ts.map +1 -1
  310. package/dist/types/carousel/carousel-parts.d.ts.map +1 -1
  311. package/dist/types/carousel/carousel.d.ts.map +1 -1
  312. package/dist/types/cascader/cascader-surface.d.ts.map +1 -1
  313. package/dist/types/cascader/cascader.d.ts.map +1 -1
  314. package/dist/types/chart/chart.d.ts.map +1 -1
  315. package/dist/types/checkbox/checkbox.d.ts.map +1 -1
  316. package/dist/types/checkbox-group/checkbox-group.d.ts.map +1 -1
  317. package/dist/types/code-block/code-block.d.ts.map +1 -1
  318. package/dist/types/collapsible/collapsible-parts.d.ts.map +1 -1
  319. package/dist/types/collapsible/collapsible.d.ts.map +1 -1
  320. package/dist/types/color-picker/color-picker.d.ts.map +1 -1
  321. package/dist/types/column-manager/column-manager.d.ts.map +1 -1
  322. package/dist/types/combobox/combobox-items.d.ts.map +1 -1
  323. package/dist/types/combobox/combobox-parts.d.ts.map +1 -1
  324. package/dist/types/command-palette/command-palette.d.ts.map +1 -1
  325. package/dist/types/container/container-breakout.d.ts.map +1 -1
  326. package/dist/types/container/container.d.ts.map +1 -1
  327. package/dist/types/context-menu/context-menu.d.ts.map +1 -1
  328. package/dist/types/currency-field/currency-field-defaults.d.ts.map +1 -1
  329. package/dist/types/currency-field/currency-field.d.ts +1 -1
  330. package/dist/types/currency-field/currency-field.d.ts.map +1 -1
  331. package/dist/types/currency-field/currency-field.types.d.ts +14 -5
  332. package/dist/types/currency-field/currency-field.types.d.ts.map +1 -1
  333. package/dist/types/dashboard-grid/dashboard-grid.d.ts.map +1 -1
  334. package/dist/types/dashboard-grid/dashboard-widget.d.ts.map +1 -1
  335. package/dist/types/data-grid/data-grid-body.d.ts.map +1 -1
  336. package/dist/types/data-grid/data-grid-context.d.ts +29 -0
  337. package/dist/types/data-grid/data-grid-context.d.ts.map +1 -1
  338. package/dist/types/data-grid/data-grid-filter.d.ts.map +1 -1
  339. package/dist/types/data-grid/data-grid-header.d.ts.map +1 -1
  340. package/dist/types/data-grid/data-grid.d.ts +1 -1
  341. package/dist/types/data-grid/data-grid.d.ts.map +1 -1
  342. package/dist/types/data-grid/data-grid.types.d.ts +10 -0
  343. package/dist/types/data-grid/data-grid.types.d.ts.map +1 -1
  344. package/dist/types/data-grid/index.d.ts +1 -1
  345. package/dist/types/data-grid/index.d.ts.map +1 -1
  346. package/dist/types/data-list/data-list.d.ts.map +1 -1
  347. package/dist/types/date-field/date-field.d.ts.map +1 -1
  348. package/dist/types/date-picker/date-picker.d.ts.map +1 -1
  349. package/dist/types/date-range-picker/date-range-picker.d.ts.map +1 -1
  350. package/dist/types/datetime-field/datetime-field.d.ts.map +1 -1
  351. package/dist/types/datetime-picker/datetime-picker.d.ts.map +1 -1
  352. package/dist/types/datetime-range-picker/datetime-range-picker.d.ts.map +1 -1
  353. package/dist/types/description-list/description-list-parts.d.ts.map +1 -1
  354. package/dist/types/description-list/description-list.d.ts.map +1 -1
  355. package/dist/types/detail-panel/detail-panel-parts.d.ts.map +1 -1
  356. package/dist/types/detail-panel/detail-panel.d.ts.map +1 -1
  357. package/dist/types/dialog/dialog-parts.d.ts.map +1 -1
  358. package/dist/types/dialog/dialog.types.d.ts +5 -1
  359. package/dist/types/dialog/dialog.types.d.ts.map +1 -1
  360. package/dist/types/divider/divider.d.ts.map +1 -1
  361. package/dist/types/drawer/drawer-parts.d.ts.map +1 -1
  362. package/dist/types/entity-picker/entity-picker-control.d.ts.map +1 -1
  363. package/dist/types/entity-picker/entity-picker-popup.d.ts.map +1 -1
  364. package/dist/types/event-calendar/event-calendar-event.d.ts.map +1 -1
  365. package/dist/types/event-calendar/event-calendar-list.d.ts.map +1 -1
  366. package/dist/types/event-calendar/event-calendar-month.d.ts.map +1 -1
  367. package/dist/types/event-calendar/event-calendar-time-grid.d.ts.map +1 -1
  368. package/dist/types/event-calendar/event-calendar.d.ts.map +1 -1
  369. package/dist/types/field/field-parts.d.ts.map +1 -1
  370. package/dist/types/field/field.d.ts.map +1 -1
  371. package/dist/types/field-group/field-group-parts.d.ts.map +1 -1
  372. package/dist/types/field-group/field-group.d.ts.map +1 -1
  373. package/dist/types/filter-bar/filter-bar-rules.d.ts.map +1 -1
  374. package/dist/types/filter-bar/filter-bar.d.ts.map +1 -1
  375. package/dist/types/form/form-parts.d.ts.map +1 -1
  376. package/dist/types/form/form.d.ts.map +1 -1
  377. package/dist/types/fullscreen/fullscreen.d.ts.map +1 -1
  378. package/dist/types/grid/grid.d.ts.map +1 -1
  379. package/dist/types/highlight/highlight.d.ts.map +1 -1
  380. package/dist/types/hover-card/hover-card.d.ts.map +1 -1
  381. package/dist/types/icon/glyph.d.ts.map +1 -1
  382. package/dist/types/icon/icon.d.ts.map +1 -1
  383. package/dist/types/image/image.d.ts.map +1 -1
  384. package/dist/types/import-export-center/import-export-center.d.ts.map +1 -1
  385. package/dist/types/inline/inline.d.ts.map +1 -1
  386. package/dist/types/inline-message/inline-message.d.ts.map +1 -1
  387. package/dist/types/kbd/key-element.d.ts.map +1 -1
  388. package/dist/types/kbd/shortcut.d.ts.map +1 -1
  389. package/dist/types/link/link.d.ts.map +1 -1
  390. package/dist/types/list/list-parts.d.ts.map +1 -1
  391. package/dist/types/list/list.d.ts.map +1 -1
  392. package/dist/types/list-item/list-item-content.d.ts.map +1 -1
  393. package/dist/types/list-item/list-item-parts.d.ts.map +1 -1
  394. package/dist/types/list-item/list-item.d.ts.map +1 -1
  395. package/dist/types/listbox/listbox-parts.d.ts.map +1 -1
  396. package/dist/types/listbox/listbox.d.ts.map +1 -1
  397. package/dist/types/loading-overlay/loading-overlay.d.ts.map +1 -1
  398. package/dist/types/markdown/markdown.d.ts.map +1 -1
  399. package/dist/types/menu/menu-items.d.ts.map +1 -1
  400. package/dist/types/menu/menu-parts.d.ts.map +1 -1
  401. package/dist/types/menubar/menubar.d.ts.map +1 -1
  402. package/dist/types/message/bubble.d.ts.map +1 -1
  403. package/dist/types/message/message-parts.d.ts.map +1 -1
  404. package/dist/types/message/message.d.ts.map +1 -1
  405. package/dist/types/message-scroller/message-scroller.d.ts.map +1 -1
  406. package/dist/types/multi-select/multi-select-chips.d.ts.map +1 -1
  407. package/dist/types/multi-select/multi-select-items.d.ts.map +1 -1
  408. package/dist/types/multi-select/multi-select-parts.d.ts.map +1 -1
  409. package/dist/types/navigation-menu/navigation-menu-parts.d.ts.map +1 -1
  410. package/dist/types/navigation-menu/navigation-menu.d.ts.map +1 -1
  411. package/dist/types/notification-center/notification-center.d.ts.map +1 -1
  412. package/dist/types/number-field/number-field.d.ts.map +1 -1
  413. package/dist/types/otp-input/otp-input.d.ts.map +1 -1
  414. package/dist/types/page/page.d.ts.map +1 -1
  415. package/dist/types/page-header/page-header-parts.d.ts.map +1 -1
  416. package/dist/types/page-header/page-header.d.ts.map +1 -1
  417. package/dist/types/pagination/pagination-parts.d.ts.map +1 -1
  418. package/dist/types/pagination/pagination.d.ts.map +1 -1
  419. package/dist/types/popover/popover-parts.d.ts.map +1 -1
  420. package/dist/types/progress-indicator/progress-bar.d.ts.map +1 -1
  421. package/dist/types/progress-indicator/progress-circle.d.ts.map +1 -1
  422. package/dist/types/progress-indicator/progress-parts.d.ts.map +1 -1
  423. package/dist/types/progress-indicator/use-progress-indicator.d.ts.map +1 -1
  424. package/dist/types/prompt-composer/prompt-composer.d.ts.map +1 -1
  425. package/dist/types/prose/prose-parts.d.ts.map +1 -1
  426. package/dist/types/prose/prose-scroll.d.ts.map +1 -1
  427. package/dist/types/prose/prose.d.ts.map +1 -1
  428. package/dist/types/radio-group/radio-group-parts.d.ts.map +1 -1
  429. package/dist/types/radio-group/radio-group.d.ts.map +1 -1
  430. package/dist/types/rating/rating-display.d.ts.map +1 -1
  431. package/dist/types/rating/rating-summary.d.ts.map +1 -1
  432. package/dist/types/rating/rating.d.ts.map +1 -1
  433. package/dist/types/result-state/result-state-parts.d.ts.map +1 -1
  434. package/dist/types/result-state/result-state.d.ts.map +1 -1
  435. package/dist/types/saved-views/saved-views.d.ts.map +1 -1
  436. package/dist/types/scroll-area/scroll-area.d.ts.map +1 -1
  437. package/dist/types/section/section-parts.d.ts.map +1 -1
  438. package/dist/types/section/section.d.ts.map +1 -1
  439. package/dist/types/segmented-control/segmented-control-parts.d.ts.map +1 -1
  440. package/dist/types/segmented-control/segmented-control.d.ts.map +1 -1
  441. package/dist/types/select/select-items.d.ts.map +1 -1
  442. package/dist/types/select/select-parts.d.ts.map +1 -1
  443. package/dist/types/select/select-tags.d.ts.map +1 -1
  444. package/dist/types/side-navigation/side-navigation-parts.d.ts.map +1 -1
  445. package/dist/types/side-navigation/side-navigation.d.ts.map +1 -1
  446. package/dist/types/skeleton/skeleton-region.d.ts.map +1 -1
  447. package/dist/types/skeleton/skeleton-text.d.ts.map +1 -1
  448. package/dist/types/skeleton/skeleton.d.ts.map +1 -1
  449. package/dist/types/slider/slider.d.ts.map +1 -1
  450. package/dist/types/sparkline/sparkline.d.ts.map +1 -1
  451. package/dist/types/split-button/split-button-parts.d.ts.map +1 -1
  452. package/dist/types/split-button/split-button.d.ts.map +1 -1
  453. package/dist/types/splitter/splitter.d.ts.map +1 -1
  454. package/dist/types/stack/stack.d.ts.map +1 -1
  455. package/dist/types/stat-card/stat-card-delta.d.ts.map +1 -1
  456. package/dist/types/stat-card/stat-card-parts.d.ts.map +1 -1
  457. package/dist/types/stat-card/stat-card-value.d.ts.map +1 -1
  458. package/dist/types/stat-card/stat-card.d.ts.map +1 -1
  459. package/dist/types/status-indicator/status-indicator.d.ts.map +1 -1
  460. package/dist/types/stepper/stepper-parts.d.ts.map +1 -1
  461. package/dist/types/stepper/stepper.d.ts.map +1 -1
  462. package/dist/types/switch/switch.d.ts.map +1 -1
  463. package/dist/types/table/table-content.d.ts.map +1 -1
  464. package/dist/types/table/table-filter.d.ts.map +1 -1
  465. package/dist/types/table/table-parts.d.ts.map +1 -1
  466. package/dist/types/table/table.d.ts.map +1 -1
  467. package/dist/types/table-of-contents/table-of-contents-parts.d.ts.map +1 -1
  468. package/dist/types/table-of-contents/table-of-contents.d.ts.map +1 -1
  469. package/dist/types/tabs/tabs-parts.d.ts.map +1 -1
  470. package/dist/types/tabs/tabs.d.ts.map +1 -1
  471. package/dist/types/tag/tag-button.d.ts.map +1 -1
  472. package/dist/types/tag/tag-chip.d.ts +2 -2
  473. package/dist/types/tag/tag-chip.d.ts.map +1 -1
  474. package/dist/types/tag/tag-group.d.ts.map +1 -1
  475. package/dist/types/tag/tag-link.d.ts.map +1 -1
  476. package/dist/types/tag/tag-toggle.d.ts.map +1 -1
  477. package/dist/types/tags-input/tags-input-chips.d.ts.map +1 -1
  478. package/dist/types/tags-input/tags-input.d.ts +7 -1
  479. package/dist/types/tags-input/tags-input.d.ts.map +1 -1
  480. package/dist/types/tags-input/tags-input.types.d.ts +10 -0
  481. package/dist/types/tags-input/tags-input.types.d.ts.map +1 -1
  482. package/dist/types/text-field/text-field.d.ts.map +1 -1
  483. package/dist/types/textarea/textarea.d.ts.map +1 -1
  484. package/dist/types/time-field/time-field.d.ts.map +1 -1
  485. package/dist/types/time-picker/time-picker.d.ts.map +1 -1
  486. package/dist/types/time-range-picker/time-range-picker.d.ts.map +1 -1
  487. package/dist/types/timeline/timeline-parts.d.ts.map +1 -1
  488. package/dist/types/timeline/timeline.d.ts.map +1 -1
  489. package/dist/types/toast/toast-parts.d.ts.map +1 -1
  490. package/dist/types/toast/toast.d.ts.map +1 -1
  491. package/dist/types/toggle/toggle.d.ts.map +1 -1
  492. package/dist/types/toggle-group/toggle-group-parts.d.ts.map +1 -1
  493. package/dist/types/toggle-group/toggle-group.d.ts.map +1 -1
  494. package/dist/types/toolbar/toolbar-overflow.d.ts.map +1 -1
  495. package/dist/types/toolbar/toolbar-parts.d.ts.map +1 -1
  496. package/dist/types/toolbar/toolbar.d.ts.map +1 -1
  497. package/dist/types/tooltip/tooltip-parts.d.ts.map +1 -1
  498. package/dist/types/top-navigation/top-navigation-parts.d.ts.map +1 -1
  499. package/dist/types/top-navigation/top-navigation.d.ts.map +1 -1
  500. package/dist/types/tour/tour-parts.d.ts.map +1 -1
  501. package/dist/types/tour/tour.d.ts.map +1 -1
  502. package/dist/types/transfer/transfer.d.ts.map +1 -1
  503. package/dist/types/tree/tree-parts.d.ts.map +1 -1
  504. package/dist/types/tree/tree.d.ts.map +1 -1
  505. package/dist/types/typography/heading.d.ts +2 -2
  506. package/dist/types/typography/heading.d.ts.map +1 -1
  507. package/dist/types/typography/text.d.ts.map +1 -1
  508. package/dist/types/upload/upload-viewer.d.ts.map +1 -1
  509. package/dist/types/upload/upload.d.ts.map +1 -1
  510. package/dist/types/visually-hidden/visually-hidden.d.ts.map +1 -1
  511. package/dist/types/wizard/wizard-parts.d.ts.map +1 -1
  512. package/dist/types/wizard/wizard.d.ts.map +1 -1
  513. package/dist/typography-DLiIuMKf.js +93 -0
  514. package/dist/typography.js +1 -1
  515. package/dist/upload-CKwUxRtB.js +648 -0
  516. package/dist/upload.js +1 -1
  517. package/dist/visually-hidden-Dlnpzic3.js +15 -0
  518. package/dist/visually-hidden.js +1 -1
  519. package/dist/wizard-gMgYFSLO.js +838 -0
  520. package/dist/wizard.js +1 -1
  521. package/package.json +11 -8
  522. package/dist/accordion-lCqrmQ3w.js +0 -143
  523. package/dist/action-sheet-CaUaP0K2.js +0 -347
  524. package/dist/alert-CP62p9Ul.js +0 -159
  525. package/dist/app-shell-DNdZ5ys0.js +0 -840
  526. package/dist/aspect-ratio-C76l-aoY.js +0 -40
  527. package/dist/attachment-DdBbQcEB.js +0 -302
  528. package/dist/avatar-BnlE5jjr.js +0 -100
  529. package/dist/avatar-group-4rBj99tz.js +0 -47
  530. package/dist/badge-C6rbwVpu.js +0 -94
  531. package/dist/breadcrumb-Bf01N4wK.js +0 -218
  532. package/dist/button-Db9f3Bxn.js +0 -99
  533. package/dist/button-group-Det_nYor.js +0 -50
  534. package/dist/calendar-BZ6PP7Ke.js +0 -436
  535. package/dist/card-CpVu8PyZ.js +0 -102
  536. package/dist/carousel-BPi-Y5yF.js +0 -498
  537. package/dist/chart-04i6NZQA.js +0 -968
  538. package/dist/checkbox-B4Sb1eXj.js +0 -139
  539. package/dist/checkbox-group-LpGMuq9w.js +0 -108
  540. package/dist/code-block-CTNiyt0U.js +0 -269
  541. package/dist/collapsible-F-K36XbF.js +0 -217
  542. package/dist/color-picker-amz8XfXm.js +0 -504
  543. package/dist/column-manager-CFtJxQWS.js +0 -585
  544. package/dist/combobox-C1D5doWM.js +0 -885
  545. package/dist/command-palette-D1C1GDWC.js +0 -707
  546. package/dist/container-CjxY6rYv.js +0 -46
  547. package/dist/context-menu-g3DMZKR3.js +0 -150
  548. package/dist/currency-field-Dti9JFu0.js +0 -455
  549. package/dist/date-field-BxEpqAPg.js +0 -290
  550. package/dist/date-picker-DRk9SZp1.js +0 -308
  551. package/dist/date-range-picker-6Yz7avTS.js +0 -483
  552. package/dist/datetime-field-D2f9u6im.js +0 -411
  553. package/dist/datetime-range-picker-DQNQwr3K.js +0 -1000
  554. package/dist/description-list-IYLnFgHT.js +0 -232
  555. package/dist/dialog-yT-x3B9s.js +0 -498
  556. package/dist/divider-D36Jqo0J.js +0 -33
  557. package/dist/drawer-B_EgvFeX.js +0 -757
  558. package/dist/field-BxQFpOXS.js +0 -365
  559. package/dist/field-group-DcN_hiZN.js +0 -138
  560. package/dist/filter-bar-BzSOD3ad.js +0 -1335
  561. package/dist/fullscreen-CF0UN4mv.js +0 -187
  562. package/dist/grid-CIkG_2IQ.js +0 -25
  563. package/dist/highlight-0Qw23QPp.js +0 -57
  564. package/dist/hover-card-DpVzwvDJ.js +0 -214
  565. package/dist/icon-T9Yt4tnm.js +0 -73
  566. package/dist/icon-button-CCWkCDMs.js +0 -213
  567. package/dist/inline-D_IjcJ1n.js +0 -16
  568. package/dist/inline-message-C4a-A2mw.js +0 -91
  569. package/dist/kbd-eFSWTKxN.js +0 -100
  570. package/dist/link-TjvRl2VQ.js +0 -87
  571. package/dist/list-WsQ6ZzCa.js +0 -91
  572. package/dist/list-item-DpCwZIrd.js +0 -123
  573. package/dist/listbox-D0MJcAMm.js +0 -615
  574. package/dist/loading-overlay-RRsNK1FN.js +0 -208
  575. package/dist/markdown-IiVoh6yi.js +0 -295
  576. package/dist/menu-parts-BpQu2s4z.js +0 -813
  577. package/dist/menubar-rpNcgIrw.js +0 -156
  578. package/dist/message-Cp0rLCyW.js +0 -430
  579. package/dist/message-scroller-UZjFpflz.js +0 -214
  580. package/dist/navigation-menu-parts-Cn-OAadu.js +0 -492
  581. package/dist/notification-center-CGEEHcRA.js +0 -485
  582. package/dist/number-field-DXk1TAXA.js +0 -342
  583. package/dist/page-QP8Zyz8-.js +0 -167
  584. package/dist/page-header-BP_Wt3eS.js +0 -367
  585. package/dist/pagination-DWJc521r.js +0 -292
  586. package/dist/popover-DEp8Bf3e.js +0 -495
  587. package/dist/progress-indicator-DwvUSFFs.js +0 -269
  588. package/dist/prompt-composer-DdcU3S3L.js +0 -259
  589. package/dist/prose-CkeNYS0X.js +0 -91
  590. package/dist/radio-group-D8csBZ8Z.js +0 -140
  591. package/dist/rating-rI3b5zII.js +0 -459
  592. package/dist/result-state-CZsQfdN4.js +0 -126
  593. package/dist/saved-views-DB2IIdhH.js +0 -446
  594. package/dist/scroll-area-DQ_ansLu.js +0 -112
  595. package/dist/section-Be7dX9MC.js +0 -176
  596. package/dist/segmented-control-C-PzkTtg.js +0 -153
  597. package/dist/select-BUylPwpb.js +0 -995
  598. package/dist/side-navigation-BnUKTrtd.js +0 -744
  599. package/dist/skeleton-2LSpg84Z.js +0 -143
  600. package/dist/slider-fp7kyg-6.js +0 -256
  601. package/dist/sparkline-rY7HIFE4.js +0 -131
  602. package/dist/split-button-p97Bd5wM.js +0 -135
  603. package/dist/splitter-Bg3UgmbV.js +0 -289
  604. package/dist/stack-BEFavbRs.js +0 -15
  605. package/dist/stat-card-BG7uLytP.js +0 -244
  606. package/dist/status-indicator-BOjpXkU5.js +0 -73
  607. package/dist/stepper-DQJuRWqR.js +0 -253
  608. package/dist/switch-aVoc4C2F.js +0 -138
  609. package/dist/table-of-contents-DfAeYtFJ.js +0 -461
  610. package/dist/tabs-HWmvOKM4.js +0 -355
  611. package/dist/tag-DjtW53xN.js +0 -365
  612. package/dist/tags-input-pbv6x1Pi.js +0 -625
  613. package/dist/text-field-CbQ6UCAP.js +0 -195
  614. package/dist/textarea-DJSfhrXH.js +0 -99
  615. package/dist/time-field-BI9n607q.js +0 -355
  616. package/dist/time-range-picker-CcV3_45h.js +0 -751
  617. package/dist/timeline-DH_02ysz.js +0 -421
  618. package/dist/toast-BTN_F9No.js +0 -468
  619. package/dist/toggle-CBFhM4Jh.js +0 -64
  620. package/dist/toggle-group-i7JPO8BM.js +0 -142
  621. package/dist/toolbar-U-CFEb1c.js +0 -240
  622. package/dist/tooltip-CgjIROUy.js +0 -410
  623. package/dist/top-navigation-BjIRQfkK.js +0 -739
  624. package/dist/tour-BTdt716T.js +0 -799
  625. package/dist/transfer--UOQVeKE.js +0 -596
  626. package/dist/tree-C6fYJqT9.js +0 -783
  627. package/dist/typography-B2iaigEC.js +0 -92
  628. package/dist/upload-CXDjxuS8.js +0 -613
  629. package/dist/visually-hidden-CE6u5JLW.js +0 -14
  630. package/dist/wizard-BxA08vXt.js +0 -815
@@ -68,49 +68,49 @@ Excerpt — not a complete module
68
68
 
69
69
  | Name | Type | Default | Applies to | Description |
70
70
  | --- | --- | --- | --- | --- |
71
- | `fields` | `FilterBarField[]` | — | FilterBar | Os campos filtráveis: key, label, kind, icon (nome de glifo ou nó), operators, pinned, required, defaultValue, section, options, searchable |
72
- | `value` | `FilterGroup \| null` | — | FilterBar | A árvore que o consumidor possui. Presente é controlado, para a vida da barra |
73
- | `defaultValue` | `FilterGroup \| null` | — | FilterBar | Onde uma barra não controlada começa, lida uma vez |
74
- | `query` | `string` | — | FilterBar | A busca global, controlada |
75
- | `defaultQuery` | `string` | | FilterBar | A busca com que uma barra não controlada começa |
76
- | `presets` | `FilterBarPreset[]` | — | FilterBar | As vistas guardadas: key, label, value |
77
- | `preset` | `string \| null` | — | FilterBar | A vista corrente, controlada |
78
- | `defaultPreset` | `string \| null` | null | FilterBar | A vista com que começa |
79
- | `open` | `boolean` | — | FilterBar | Se o construtor está aberto, controlado |
80
- | `defaultOpen` | `boolean` | false | FilterBar | Se começa aberto |
81
- | `revealed` | `boolean` | — | FilterBar | Se os chips dobrados estão à vista, controlado |
82
- | `defaultRevealed` | `boolean` | false | FilterBar | Se começam à vista |
83
- | `apply` | `'live' \| 'manual'` | live | FilterBar | Pede a cada edição, ou edita um rascunho até Apply |
84
- | `sticky` | `boolean` | false | FilterBar | Cola sob o cabeçalho da página e soma a sua altura ao que segue |
85
- | `container` | `Element \| null` | — | FilterBar | Um pai só para o drawer do construtor, em vez da raiz de portal partilhada |
86
- | `size` | `'sm' \| 'md' \| 'lg'` | md | FilterBar | O passo dos controles |
87
- | `queryDelay` | `number` | 320 | FilterBar | Milissegundos que a busca e um operando de texto esperam sob live |
88
- | `chipLimit` | `number` | 6 | FilterBar | Chips à vista antes de dobrar |
89
- | `shortcut` | `string \| null` | null | FilterBar | A tecla do documento que foca a busca, fora de um campo editável |
90
- | `disabled` | `boolean` | false | FilterBar | Desliga todos os controles |
91
- | `readOnly` | `boolean` | false | FilterBar | Cada condição alcançável e legível, nenhuma alterável: sem X, add, clear nem pills vazios |
92
- | `loading` | `boolean` | false | FilterBar | Mantém a largura, desliga Apply, spinner no lugar da contagem |
93
- | `count` | `number` | — | FilterBar | Quantas linhas o filtro manteve |
94
- | `total` | `number` | — | FilterBar | Quantas há |
95
- | `messages` | `Partial<FilterBarMessages>` | — | FilterBar | Palavras sobre as da língua em vigor, chave a chave: o nome do landmark (bar), os controles, os nomes dos chips, a contagem e os anúncios |
96
- | `renderOperand` | `(props: FilterBarOperandProps) => ReactNode` | — | FilterBar | Substitui o controle do operando; undefined mantém o da espécie |
97
- | `children` | `ReactNode` | — | FilterBar | Os controles do consumidor no slot end |
98
- | `renderOperand` | `(props) => ReactNode` | — | FilterBar | A costura que a rodada 12 usa em table: date-range-picker num between, tags-input num conjunto grande |
99
- | `children` | `ReactNode` | — | FilterBar | O slot end: uma ordenação, um seletor de colunas, fora do anel da toolbar |
100
- | `ref` | `Ref<FilterBarHandle>` | — | FilterBar | focusSearch(), open(), root — as ações que uma prop não exprime |
101
- | `FilterBarDefaultsProvider` | `apply \| chipLimit \| queryDelay \| shortcut \| size` | — | Aplicação | Decide uma vez para tudo por baixo; uma prop na barra ganha |
102
- | `onKeyDown, id, aria-*, data-*` | `props nativas` | — | FilterBar | Chegam à raiz; o handler do consumidor corre antes do da família |
71
+ | `fields` | `FilterBarField[]` | — | FilterBar | The filterable fields: key, label, kind, icon (glyph name or node), operators, pinned, required, defaultValue, section, options, searchable |
72
+ | `value` | `FilterGroup \| null` | — | FilterBar | The tree the consumer owns. Present means controlled, for the life of the bar |
73
+ | `defaultValue` | `FilterGroup \| null` | — | FilterBar | Where an uncontrolled bar starts, read once |
74
+ | `query` | `string` | — | FilterBar | The global search, controlled |
75
+ | `defaultQuery` | `string` | | FilterBar | The search an uncontrolled bar starts with |
76
+ | `presets` | `FilterBarPreset[]` | — | FilterBar | The saved views: key, label, value |
77
+ | `preset` | `string \| null` | — | FilterBar | The current view, controlled |
78
+ | `defaultPreset` | `string \| null` | null | FilterBar | The view it starts with |
79
+ | `open` | `boolean` | — | FilterBar | Whether the builder is open, controlled |
80
+ | `defaultOpen` | `boolean` | false | FilterBar | Whether it starts open |
81
+ | `revealed` | `boolean` | — | FilterBar | Whether the folded chips are in view, controlled |
82
+ | `defaultRevealed` | `boolean` | false | FilterBar | Whether they start in view |
83
+ | `apply` | `'live' \| 'manual'` | live | FilterBar | Requests on every edit, or edits a draft until Apply |
84
+ | `sticky` | `boolean` | false | FilterBar | Sticks under the page header and adds its height to what follows |
85
+ | `container` | `Element \| null` | — | FilterBar | A parent for the builder drawer only, instead of the shared portal root |
86
+ | `size` | `'sm' \| 'md' \| 'lg'` | md | FilterBar | The step of the controls |
87
+ | `queryDelay` | `number` | 320 | FilterBar | Milliseconds the search and a text operand wait under live |
88
+ | `chipLimit` | `number` | 6 | FilterBar | Chips in view before folding |
89
+ | `shortcut` | `string \| null` | null | FilterBar | The document key that focuses the search, outside an editable field |
90
+ | `disabled` | `boolean` | false | FilterBar | Turns off every control |
91
+ | `readOnly` | `boolean` | false | FilterBar | Every condition reachable and readable, none changeable: no X, add, clear or empty pills |
92
+ | `loading` | `boolean` | false | FilterBar | Keeps the width, turns off Apply, spinner in place of the count |
93
+ | `count` | `number` | — | FilterBar | How many rows the filter kept |
94
+ | `total` | `number` | — | FilterBar | How many there are |
95
+ | `messages` | `Partial<FilterBarMessages>` | — | FilterBar | Words over those of the current locale, key by key: the landmark name (bar), the controls, the chip names, the count and the announcements |
96
+ | `renderOperand` | `(props: FilterBarOperandProps) => ReactNode` | — | FilterBar | Replaces the operand control; undefined keeps the one for the kind |
97
+ | `children` | `ReactNode` | — | FilterBar | The consumer’s controls in the end slot |
98
+ | `renderOperand` | `(props) => ReactNode` | — | FilterBar | The seam table uses: date-range-picker on a between, tags-input on a large set |
99
+ | `children` | `ReactNode` | — | FilterBar | The end slot: a sort, a column picker, outside the toolbar ring |
100
+ | `ref` | `Ref<FilterBarHandle>` | — | FilterBar | focusSearch(), open(), root — the actions a prop does not express |
101
+ | `FilterBarDefaultsProvider` | `apply \| chipLimit \| queryDelay \| shortcut \| size` | — | Application | Decides once for everything below; a prop on the bar wins |
102
+ | `onKeyDown, id, aria-*, data-*` | `native props` | — | FilterBar | Reach the root; the consumer’s handler runs before the family’s |
103
103
 
104
104
  ## Events
105
105
 
106
106
  | Name | Payload | When |
107
107
  | --- | --- | --- |
108
- | `onValueChange` | `(value: FilterGroup \| null, request)` | Antes de a árvore mover. A razão é pointer, keyboard, clear, remove, select, submit ou programmatic; cancelar não move nada. A árvore chega normalizada: sem regras incompletas, null quando nada resta. |
109
- | `onQueryChange` | `(query: string, request)` | Depois de queryDelay sob live, ou com submit sob manual; clear quando Escape ou o X do campo a limpam. |
110
- | `onPresetChange` | `(preset: string \| null, request)` | Quando uma vista é escolhida no select, com select; clear quando o select é esvaziado. |
111
- | `onPresetSave` | `(value: FilterGroup \| null)` | Quando o leitor pressiona "Save as view…" no construtor. A família não guarda: pergunta. |
112
- | `onOpenChange` | `(open: boolean, request)` | Antes de o construtor abrir ou fechar: pointer, keyboard, escape, outsidePress, dismiss, submit, programmatic. |
113
- | `onRevealedChange` | `(revealed: boolean, request)` | Antes de os chips dobrados aparecerem ou voltarem a dobrar. |
108
+ | `onValueChange` | `(value: FilterGroup \| null, request)` | Before the tree moves. The reason is pointer, keyboard, clear, remove, select, submit or programmatic; cancelling moves nothing. The tree arrives normalized: no incomplete rules, null when nothing is left. |
109
+ | `onQueryChange` | `(query: string, request)` | After queryDelay under live, or with submit under manual; clear when Escape or the field’s X clears it. |
110
+ | `onPresetChange` | `(preset: string \| null, request)` | When a view is chosen in the select, with select; clear when the select is emptied. |
111
+ | `onPresetSave` | `(value: FilterGroup \| null)` | When the reader presses "Save as view…" in the builder. The family does not save: it asks. |
112
+ | `onOpenChange` | `(open: boolean, request)` | Before the builder opens or closes: pointer, keyboard, escape, outsidePress, dismiss, submit, programmatic. |
113
+ | `onRevealedChange` | `(revealed: boolean, request)` | Before the folded chips appear or fold again. |
114
114
 
115
115
  ## Axes and defaults
116
116
 
@@ -122,12 +122,12 @@ Excerpt — not a complete module
122
122
 
123
123
  ## Rules
124
124
 
125
- - A raiz é role="search", não role="toolbar": o padrão Toolbar do APG pede que uma toolbar evite controles que precisam das setas, e o campo de busca é um. A busca é a primeira parada de tabulação e a toolbar a segunda — duas paradas sejam quantos forem os campos; a nota do APG para toolbars de várias linhas deixa as setas passar de linha em linha.
126
- - Um chip é role="group" com o nome "<campo>: <frase>", a mesma frase que describeFilter dá ao anúncio de table, e ", incomplete" enquanto falta o valor. O operador tem aria-haspopup="menu", o valor aria-haspopup="dialog" e o nome com a lista inteira, o X "Remove <campo>". Delete e Backspace em qualquer segmento removem com a razão remove e o foco vai ao segmento do mesmo papel no chip seguinte, ao anterior, ou ao Add filter.
127
- - Um pill tem aria-haspopup="dialog"; sob readOnly a toolbar leva aria-description="Read only" e os segmentos guardam a paragem com aria-disabled, e um valor bloqueado nomeia a lista inteira que o popover já não mostra.
128
- - A contagem é a própria região viva, em polite, por isso o efeito de um filtro é ouvido; aplicar, limpar, remover um chip e escolher uma vista são anunciados pelo live-announcer partilhado.
129
- - O construtor é um drawer: modal, Escape fecha e descarta, o foco volta ao gatilho. Cada grupo é um fieldset com legend, cada regra três controles nomeados — Field, Operator, Value ou From e To.
130
- - Abaixo de 36rem o operador, more, add e clear saem do anel de foco com visibility hidden, não só do desenho: uma parada onde nada se vê é uma parada que não existe. Os cartões fechados do construtor tiram os três controles do anel da mesma forma; a frase do cartão tem aria-expanded e aria-controls.
125
+ - The root is role="search", not role="toolbar": the APG Toolbar pattern asks a toolbar to avoid controls that need the arrows, and the search field is one. The search is the first tab stop and the toolbar the second — two stops however many fields there are; the APG note on multi-row toolbars lets the arrows move from row to row.
126
+ - A chip is role="group" named "<field>: <phrase>", the same phrase describeFilter gives to the table announcement, and ", incomplete" while the value is missing. The operator has aria-haspopup="menu", the value aria-haspopup="dialog" and the name with the whole list, the X "Remove <field>". Delete and Backspace on any segment remove with the reason remove and focus goes to the segment of the same role on the next chip, the previous one, or Add filter.
127
+ - A pill has aria-haspopup="dialog"; under readOnly the toolbar carries aria-description="Read only" and the segments keep their stop with aria-disabled, and a locked value names the whole list the popover no longer shows.
128
+ - The count is itself the live region, in polite, so the effect of a filter is heard; applying, clearing, removing a chip and choosing a view are announced by the shared live-announcer.
129
+ - The builder is a drawer: modal, Escape closes and discards, focus returns to the trigger. Each group is a fieldset with a legend, each rule three named controls — Field, Operator, Value or From and To.
130
+ - Below 36rem the operator, more, add and clear leave the focus ring with visibility hidden, not only the drawing: a stop where nothing is seen is a stop that does not exist. The builder’s closed cards take the three controls out of the ring the same way; the card’s phrase has aria-expanded and aria-controls.
131
131
 
132
132
  ## Tokens
133
133
 
@@ -135,9 +135,9 @@ Excerpt — not a complete module
135
135
 
136
136
  ## Examples
137
137
 
138
- ### A barra sobre a tabela, e a mesma regra nos dois sítios
138
+ ### The bar over the table, and the same rule in both places
139
139
 
140
- A árvore é aplicada pelo consumidor com createFilterGroupPredicate e createSearchPredicate; a tabela abaixo encolhe e a contagem diz quanto. O filtro de coluna de Status no cabeçalho edita o mesmo objeto que o chip de Status da barra.
140
+ The consumer applies the tree with createFilterGroupPredicate and createSearchPredicate; the table below shrinks and the count says by how much. The Status column filter in the header edits the same object as the bar’s Status chip.
141
141
 
142
142
  Excerpt — not a complete module
143
143
 
@@ -147,9 +147,9 @@ const find = createSearchPredicate(query, (row, field) => row[field], ['customer
147
147
  const kept = orders.filter((row) => keep(row) && find(row));
148
148
  ```
149
149
 
150
- ### Campos fixados: um lugar tracejado que vira chip
150
+ ### Pinned fields: a dashed place that becomes a chip
151
151
 
152
- pinned deixa o campo sempre à vista. Sem condição é um pill tracejado com + e o nome — um lugar à espera de ser preenchido; premido, dá lugar ao chip do campo, no mesmo sítio, incompleto e com o popover do valor aberto. Remover a condição devolve o pill.
152
+ pinned keeps the field always in view. Without a condition it is a dashed pill with + and the name — a place waiting to be filled; pressed, it gives way to the field’s chip, in the same place, incomplete and with the value popover open. Removing the condition brings the pill back.
153
153
 
154
154
  Excerpt — not a complete module
155
155
 
@@ -168,9 +168,9 @@ const FIELDS = [
168
168
  ];
169
169
  ```
170
170
 
171
- ### Cada condição escrita em segmentos
171
+ ### Each condition written in segments
172
172
 
173
- Um chip é a frase da condição em segmentos: o campo com o seu glifo, o operador mais leve, o valor, e o X. O operador abre um menu, o valor um popover só com o operando — mudar a comparação não reabre os valores. Uma lista longa escreve dois valores e o resto em número (Paid, Refunded +2), inteira no nome e no title; uma lista de um lê-se como igualdade. Add filter cria o chip de imediato, tracejado até ter valor, e fora do valor emitido até lá. Além de chipLimit os chips dobram atrás de +n more.
173
+ A chip is the condition’s phrase in segments: the field with its glyph, the lighter operator, the value, and the X. The operator opens a menu, the value a popover with the operand only — changing the comparison does not reopen the values. A long list writes two values and the rest as a number (Paid, Refunded +2), whole in the name and the title; a list of one reads as equality. Add filter creates the chip at once, dashed until it has a value, and left out of the emitted value until then. Beyond chipLimit the chips fold behind +n more.
174
174
 
175
175
  Excerpt — not a complete module
176
176
 
@@ -178,9 +178,9 @@ Excerpt — not a complete module
178
178
  <FilterBar chipLimit={6} defaultRevealed={false} fields={FIELDS} value={filter} />;
179
179
  ```
180
180
 
181
- ### O construtor num drawer
181
+ ### The builder in a drawer
182
182
 
183
- Add filter, um chip de grupo ou Filters (n) abrem a árvore inteira num drawer; num telefone o drawer sobe de baixo como uma folha. Com mais de 30rem cada regra é uma linha de campo, operador, operando e X; com menos, um cartão com a frase que se expande no lugar, um de cada vez. Apply pede a árvore com a razão submit, Cancel e Escape descartam.
183
+ Add filter, a group chip or Filters (n) open the whole tree in a drawer; on a phone the drawer rises from the bottom as a sheet. Wider than 30rem each rule is a row of field, operator, operand and X; narrower, a card with the phrase that expands in place, one at a time. Apply requests the tree with the reason submit, Cancel and Escape discard.
184
184
 
185
185
  Excerpt — not a complete module
186
186
 
@@ -195,9 +195,9 @@ const bar = useRef<FilterBarHandle>(null);
195
195
  bar.current?.open();
196
196
  ```
197
197
 
198
- ### Grupos E/OU aninhados
198
+ ### Nested AND/OR groups
199
199
 
200
- Um grupo dentro de um grupo é uma caixa sobre a superfície afundada, com a junção oposta e o caixote que o remove; num construtor estreito passa a um trilho na aresta inicial, que custa dez pixels por nível em vez de oitenta. Na barra aparece como um chip só, com a frase entre parênteses, que abre o construtor.
200
+ A group inside a group is a box over the sunken surface, with the opposite join and the trash that removes it; in a narrow builder it becomes a rail on the start edge, which costs ten pixels per level instead of eighty. On the bar it appears as a single chip, with the phrase in parentheses, that opens the builder.
201
201
 
202
202
  Excerpt — not a complete module
203
203
 
@@ -227,9 +227,9 @@ const filter = {
227
227
  };
228
228
  ```
229
229
 
230
- ### Aplicar em lote
230
+ ### Applying in a batch
231
231
 
232
- Com apply="manual" cada edição vai a um rascunho: a raiz fica data-dirty, Reset descarta, Apply pede a árvore e a query com a razão submit. Enter num operando aplica. É o Go do Fiori e o batch do Carbon.
232
+ With apply="manual" each edit goes to a draft: the root becomes data-dirty, Reset discards, Apply requests the tree and the query with the reason submit. Enter on an operand applies. It is the Go of Fiori and the batch of Carbon.
233
233
 
234
234
  Excerpt — not a complete module
235
235
 
@@ -242,9 +242,9 @@ Excerpt — not a complete module
242
242
  />;
243
243
  ```
244
244
 
245
- ### Um campo obrigatório com default
245
+ ### A required field with a default
246
246
 
247
- required fixa o campo e dá-lhe um defaultValue: Clear devolve-o ao default em vez de o apagar, o chip não tem X, e um Apply com o campo sem valor é recusado — o chip fica tracejado e data-invalid, a mensagem é anunciada.
247
+ required pins the field and gives it a defaultValue: Clear returns it to the default instead of erasing it, the chip has no X, and an Apply with the field empty is refused — the chip stays dashed and data-invalid, and the message is announced.
248
248
 
249
249
  Excerpt — not a complete module
250
250
 
@@ -259,9 +259,9 @@ const company = {
259
259
  };
260
260
  ```
261
261
 
262
- ### Vistas guardadas
262
+ ### Saved views
263
263
 
264
- presets aparece como um select no fim da barra: escolher uma substitui a árvore com a razão select; editar depois mantém a vista escolhida e marca a raiz data-dirty. Guardar é da aplicação — onPresetSave entrega a árvore, o nome é ela que pergunta.
264
+ presets appears as a select at the end of the bar: choosing one replaces the tree with the reason select; editing afterwards keeps the chosen view and marks the root data-dirty. Saving belongs to the application — onPresetSave hands over the tree, and the application asks for the name.
265
265
 
266
266
  Excerpt — not a complete module
267
267
 
@@ -275,9 +275,9 @@ Excerpt — not a complete module
275
275
  />;
276
276
  ```
277
277
 
278
- ### A busca global
278
+ ### The global search
279
279
 
280
- A query é o único campo que não pertence a nenhuma coluna. Debounced por queryDelay sob live; Escape limpa com a razão clear; shortcut é a tecla do documento que chega ao campo, desenhada dentro dele com kbd — e escondida onde a entrada primária é um ecrã táctil, onde não há tecla para carregar.
280
+ The query is the only field that belongs to no column. Debounced by queryDelay under live; Escape clears with the reason clear; shortcut is the document key that reaches the field, drawn inside it with kbd — and hidden where the primary input is a touch screen, where there is no key to press.
281
281
 
282
282
  Excerpt — not a complete module
283
283
 
@@ -285,9 +285,9 @@ Excerpt — not a complete module
285
285
  <FilterBar fields={FIELDS} onQueryChange={setQuery} query={query} queryDelay={120} shortcut="/" />;
286
286
  ```
287
287
 
288
- ### O estado numa URL
288
+ ### The state in a URL
289
289
 
290
- toFilterBarParams escreve f=and(…) e q=; fromFilterBarParams lê-os de volta, e um f.<coluna> escrito por uma tabela sem barra vira um grupo de primeiro nível. parseFilterGroup é total: um marcador de uma versão antiga degrada para nenhum filtro.
290
+ toFilterBarParams writes f=and(…) and q=; fromFilterBarParams reads them back, and an f.<column> written by a table without a bar becomes a top-level group. parseFilterGroup is total: a marker from an older version degrades to no filter.
291
291
 
292
292
  Excerpt — not a complete module
293
293
 
@@ -297,9 +297,9 @@ history.replaceState(null, '', `?${params}`);
297
297
  const restored = fromFilterBarParams(location.search);
298
298
  ```
299
299
 
300
- ### A contagem como região viva
300
+ ### The count as a live region
301
301
 
302
- count e total são os números do consumidor, escritos nas figuras da língua em vigor. A parte é aria-live="polite", por isso uma mudança no filtro é ouvida como o seu efeito; com loading a contagem dá lugar a um spinner e aria-busy.
302
+ count and total are the consumer’s numbers, written in the figures of the current locale. The part is aria-live="polite", so a change in the filter is heard as its effect; with loading the count gives way to a spinner and aria-busy.
303
303
 
304
304
  Excerpt — not a complete module
305
305
 
@@ -307,9 +307,9 @@ Excerpt — not a complete module
307
307
  <FilterBar count={128} fields={FIELDS} loading={fetching} total={3412} />;
308
308
  ```
309
309
 
310
- ### Num telefone: uma linha que desliza e uma folha
310
+ ### On a phone: a row that scrolls sideways and a sheet
311
311
 
312
- Abaixo de 36rem a busca fica em cima e a barra passa a uma linha que desliza: Filters (n) primeiro, todos os chips — também os dobrados —, depois os pills vazios; o chip cortado na borda diz que a linha continua. Cada chip tem três alvos: o campo, o valor com as palavras do operador, o X. Tocar num valor, num pill ou em Filters abre o construtor como folha, com o cartão da regra aberto. Redimensione o palco.
312
+ Below 36rem the search sits on top and the bar becomes a row that scrolls sideways: Filters (n) first, every chip — the folded ones too —, then the empty pills; the chip cut at the edge says the row continues. Each chip has three targets: the field, the value with the operator’s words, the X. Tapping a value, a pill or Filters opens the builder as a sheet, with the rule’s card open. Resize the stage.
313
313
 
314
314
  Excerpt — not a complete module
315
315
 
@@ -319,9 +319,9 @@ Excerpt — not a complete module
319
319
  </div>;
320
320
  ```
321
321
 
322
- ### Colada sob o cabeçalho da página
322
+ ### Stuck under the page header
323
323
 
324
- sticky lê --slotted-page-sticky-top, cola a barra aí, e soma a própria altura à propriedade no elemento pai para o que vem a seguir — uma tabela com cabeçalho colado para debaixo da barra, não debaixo do título.
324
+ sticky reads --slotted-page-sticky-top, sticks the bar there, and adds its own height to the property on the parent element for what comes next — a table with a sticky header sticks below the bar, not below the title.
325
325
 
326
326
  Excerpt — not a complete module
327
327
 
@@ -332,9 +332,9 @@ Excerpt — not a complete module
332
332
  </>;
333
333
  ```
334
334
 
335
- ### Desabilitada, a carregar, só leitura
335
+ ### Disabled, loading, read only
336
336
 
337
- disabled desliga todos os controles e mantém a largura; loading mantém os controles, desliga Apply e põe o spinner no lugar da contagem; readOnly deixa cada condição alcançável e legível — os segmentos guardam a paragem com aria-disabled — e não desenha X, add, clear nem pills vazios.
337
+ disabled turns off every control and keeps the width; loading keeps the controls, turns off Apply and puts the spinner in place of the count; readOnly leaves every condition reachable and readable — the segments keep their stop with aria-disabled — and draws no X, add, clear or empty pills.
338
338
 
339
339
  Excerpt — not a complete module
340
340
 
@@ -346,9 +346,9 @@ Excerpt — not a complete module
346
346
  </>;
347
347
  ```
348
348
 
349
- ### Conteúdo que a família não escolheu
349
+ ### Content the family did not choose
350
350
 
351
- Um valor de onze itens escreve dois e o resto em número, inteiro no title e no nome acessível; um valor longo trunca a 12rem; um rótulo árabe ao lado de uma data ISO não reordena a data, porque campo, operador e valor são corridas isoladas; um campo desconhecido é um chip inválido, removível.
351
+ A value of eleven items writes two and the rest as a number, whole in the title and in the accessible name; a long value truncates at 12rem; an Arabic label next to an ISO date does not reorder the date, because field, operator and value are isolated runs; an unknown field is an invalid, removable chip.
352
352
 
353
353
  Excerpt — not a complete module
354
354
 
@@ -360,14 +360,14 @@ Excerpt — not a complete module
360
360
  />;
361
361
  ```
362
362
 
363
- ### Teclado
363
+ ### Keyboard
364
364
 
365
- Tab: a busca, depois a barra — duas paragens. As setas percorrem cada controle da barra, segmento a segmento, de linha em linha e espelhadas em RTL; Home e End nas pontas. Enter no operador abre o menu, no valor o popover; Delete em qualquer segmento remove a condição com a razão remove e o foco vai ao mesmo segmento do chip seguinte; Escape limpa a busca ou fecha a superfície.
365
+ Tab: the search, then the bar — two stops. The arrows move through every control of the bar, segment by segment, from row to row and mirrored in RTL; Home and End at the ends. Enter on the operator opens the menu, on the value the popover; Delete on any segment removes the condition with the reason remove and focus goes to the same segment of the next chip; Escape clears the search or closes the surface.
366
366
 
367
367
  Excerpt — not a complete module
368
368
 
369
369
  ```tsx
370
- // "Amount filter removed" — e o foco segue para o chip seguinte, ou para
371
- // Add filter quando não sobra nenhum.
370
+ // "Amount filter removed" — and focus moves to the next chip, or to
371
+ // Add filter when none is left.
372
372
  <FilterBar fields={FIELDS} onValueChange={(next, request) => request.reason === 'remove'} />;
373
373
  ```
@@ -106,3 +106,13 @@ Why: Without it the reader reloads the browser, which loses the scroll, the open
106
106
  Do: Put an icon button named "Refresh" in the header's actions toolbar with its menu counterpart, in its `loading` state until the answer (AF-03); bind the page's `loading` to "reading again while a record is shown", so the body takes `aria-busy` and draws no placeholder.
107
107
  Don't: Offer Refresh on a record nothing else writes, or clear the record and draw its skeleton on every read after the first.
108
108
  Check: Press Refresh on a record another writer changes: the values stay, the page body is busy until the answer, and the button waits on it.
109
+
110
+ ### AF-08 · A write refreshes every view it changed
111
+
112
+ Level: MUST
113
+ Applies to: every control that writes — a create, an edit, a delete, a categorisation — and every region on any screen whose figures the write can change
114
+ Rule: A successful write marks stale every query whose answer the write can change, and the regions on screen read again; an application that cannot list them marks every query stale; a region that reads again keeps its rows and dims them (LP-06).
115
+ Why: Categorising a transaction left the category totals and the rules' coverage at their old figures until a reload, and the reader reloaded after every action to trust the screen.
116
+ Do: Beside each write, list the queries its answer changes — the record, the lists it appears in, the totals and counts over them — and invalidate them on success; where the list cannot be stated, invalidate every query after a successful write.
117
+ Don't: Refresh only the region the control stands in, or rely on the next navigation to read the other figures again.
118
+ Check: Perform each write: every figure on screen that the write changes shows the new value without a reload.
@@ -110,13 +110,7 @@ Check: For every axis a screen passes to a family, the screen can name what it a
110
110
 
111
111
  ### CP-07 · A page's width is its type's
112
112
 
113
- Level: SHOULD
114
- Applies to: every `page`
115
- Rule: A list page is `bleed` with `fill`; a record, a dashboard and an overview keep the default `wide`; a create or edit form is `content`; a page of preferences read as prose is `measure`.
116
- Why: The page's width is the one measure its header and its body share, and a form capped in its own stylesheet ran its body to 736 pixels under a header of 1280, so the two end edges did not meet.
117
- Do: Set the width on the page and nowhere else; a form with a table of lines keeps `content` and lets the table's columns truncate.
118
- Don't: Cap a form's body with a width of the screen's own, or leave a form at `wide` so its fields run the length of a monitor.
119
- Check: On every form the header's end edge and the body's end edge are the same line.
113
+ Status: retired · rewritten as CP-10, which gives every destination one width
120
114
 
121
115
  ### CP-08 · A control that changes mode keeps every box where it was
122
116
 
@@ -137,3 +131,13 @@ Why: Mounting a region of families in the click's task blocks the next paint, an
137
131
  Do: Keep the selection state urgent and hand the region the deferred value; mount only the selected panel, with mount active.
138
132
  Don't: Set the selection and the region from one state update inside the click handler, or mount every panel to make switching look instant.
139
133
  Check: Switch the control with the CPU throttled 4× in Chrome: the selection marker moves in the next frame, and the Performance panel shows no long task between the click and that paint.
134
+
135
+ ### CP-10 · Every destination has one width
136
+
137
+ Level: SHOULD
138
+ Applies to: every `page`
139
+ Rule: Every destination of the navigation — a list, a record, a dashboard, an overview — is `full`, so moving between destinations never moves the column's edges; a create or edit form is `wide` and lays its fields out in a grid of the form's own; a page of preferences read as prose is `measure`.
140
+ Why: A list at `bleed`, a record at `wide` and a form at `content` moved the column's edges on every move between destinations, and a form 56rem wide stood narrow in a desktop frame; the owner read the pages as squeezed and without a pattern.
141
+ Do: Set `full` on every destination and `wide` on every form, on the page and nowhere else; a list keeps `fill` (LP-12); a form arranges its fields in a `grid` within that width.
142
+ Don't: Give each page type a measure of its own, or cap a form's body with a width of the screen's own.
143
+ Check: Move between two destinations of the navigation: the header's and the body's start and end edges stay on the same lines.
@@ -11,6 +11,7 @@ Every active rule, one line each. Load this first; load a topic file when the ta
11
11
  | AF-05 | MAY | A control's indicator may be delayed by the family's loading delay, so a request that answers first shows no indicator; a region's placeholders are never delayed. | `async-feedback.md` |
12
12
  | AF-06 | SHOULD | The application states one minimum duration for the whole product: once placeholders are painted they stay for it, even when the answer has already arrived. | `async-feedback.md` |
13
13
  | AF-07 | SHOULD | The page offers Refresh among the header's actions, and a refresh keeps the values on screen, marks the page busy and replaces them when the answer arrives. | `async-feedback.md` |
14
+ | AF-08 | MUST | A successful write marks stale every query whose answer the write can change, and the regions on screen read again; an application that cannot list them marks every query stale; a region that reads again keeps its rows and dims them (LP-06). | `async-feedback.md` |
14
15
  | BR-01 | SHOULD | The branch a reader chose is the list's heading and its `breadcrumb`; the filter bar keeps the facets and holds no pill for it. | `browsing.md` |
15
16
  | BR-02 | MUST | The query covers the branch and every node beneath it, and the page states how many nodes that is beside how many records they hold. | `browsing.md` |
16
17
  | BR-03 | MUST | The number on a row is one of the two and the screen says which; where a node holds records of its own and has nodes under it, the second number is said apart from the first. | `browsing.md` |
@@ -27,9 +28,9 @@ Every active rule, one line each. Load this first; load a topic file when the ta
27
28
  | CP-04 | MAY | When the families' anatomies have been read and none of them answers the problem, the screen writes an element of its own rather than bending a family into a shape it does not have. | `composition.md` |
28
29
  | CP-05 | MUST | Every value the element paints comes from the theme — space, type, ink, border, radius, elevation and motion — where the theme has a token for it; a literal is written only beside a comment that says what decided it and why no token covers it. | `composition.md` |
29
30
  | CP-06 | SHOULD | A screen states a state once. Where the family has a state for it, the screen sets that state and adds nothing louder beside it. | `composition.md` |
30
- | CP-07 | SHOULD | A list page is `bleed` with `fill`; a record, a dashboard and an overview keep the default `wide`; a create or edit form is `content`; a page of preferences read as prose is `measure`. | `composition.md` |
31
31
  | CP-08 | MUST | Switching the mode changes the words and the values in the region, never the size, the line count or the position of any box in it or around it; text whose length differs between modes stands on one line, cut with an ellipsis and read whole from its title. | `composition.md` |
32
32
  | CP-09 | MUST | The control's own state — the selected tab, the pressed segment — updates in the interaction's frame; the region renders from a deferred value (in React, useDeferredValue or startTransition) and states aria-busy while the shown value lags the selected one. | `composition.md` |
33
+ | CP-10 | SHOULD | Every destination of the navigation — a list, a record, a dashboard, an overview — is `full`, so moving between destinations never moves the column's edges; a create or edit form is `wide` and lays its fields out in a grid of the form's own; a page of preferences read as prose is `measure`. | `composition.md` |
33
34
  | CV-01 | MUST | From 600 pixels the conversation fills its region and scrolls on its own with the composer under it, and the record's context scrolls on its own beside it or behind a tab of the header; below 600 pixels the page scrolls, the composer is stuck to the bottom of the screen, and the record opens on its last message. | `conversations.md` |
34
35
  | CV-02 | SHOULD | A running clock says the business time left and the hour it falls due in the organization's zone, a passed one by how much and when it was due, a paused one that it is stopped and why; a queue's row says the span alone, and no clock is ever said in raw minutes. | `conversations.md` |
35
36
  | CV-03 | SHOULD | Each queue is a view of the list's `filter-bar`, a tree of the bar's own fields, labelled with the count of the rows it opens on; choosing it writes its pills, and editing a pill leaves a view the bar marks as changed. | `conversations.md` |
@@ -74,11 +75,15 @@ Every active rule, one line each. Load this first; load a topic file when the ta
74
75
  | LP-12 | MUST | From 600 pixels of the page's width the listing takes the height the bar and the messages leave and scrolls its own rows while the page does not scroll; below 600 the page's `fill` does not apply, the listing is as tall as its rows and the page scrolls. | `list-pages.md` |
75
76
  | LP-13 | SHOULD | The mark takes the `sm` `size`; the default `md` belongs to a record's header and to a region with room around it. | `list-pages.md` |
76
77
  | LP-14 | MUST | A list that can hold more than a hundred rows, or more than twenty columns, is a `data-grid`, which windows rows and middle columns under its default `virtualize` of `auto`; `table` is for sets the page bounds, such as a statement's lines or a record's related rows. | `list-pages.md` |
78
+ | LP-15 | SHOULD | A grid that stands on the page's surface beside other blocks takes the `framed` `variant`; a grid that is the page's only body under a `bleed` page may stay `ruled`; `plain` is for a grid inside a `card` or a panel that already draws the frame. | `list-pages.md` |
79
+ | LP-16 | SHOULD | A list page's header holds a subheading that says what the list covers, the control of the period when the list reads one, the page's figures for that period in the header area as label-over-figure pairs, and the primary action as the last, solid control; a refresh control is an icon button and never the only action. | `list-pages.md` |
80
+ | LP-17 | SHOULD | The column of kind `actions` stays pinned to the end, which is the grid's default, and the row header is pinned to the start with `pinned: 'start'` when it is the first column; no other column is pinned without a reason the page states. | `list-pages.md` |
77
81
  | OV-01 | SHOULD | The figure leads to the list page of the records it counts, and that list opens with the figure's condition applied as the bar's own pills, which the reader removes like any other. | `overviews.md` |
78
82
  | OV-02 | SHOULD | Below 600 pixels the figures are one `list` of rows that are destinations — label, comparison, number — followed by the records to act on, the work in flight, the charts, and the history last. | `overviews.md` |
79
83
  | OV-03 | SHOULD | Where the reader's scope holds one category, the chart is not drawn and one sentence states the numbers it would have compared. | `overviews.md` |
80
84
  | OV-04 | SHOULD | The thresholds are stated once in words beside the figures, and a figure past one says so in its own comparison line, on the line the placeholder reserves. | `overviews.md` |
81
85
  | OV-05 | SHOULD | A chart takes the `card` `variant` when it is one of two or more peer tiles in one grid with no section heading of its own, and stays `plain` when it is the body of a titled section or the only content of a tab. | `overviews.md` |
86
+ | OV-06 | SHOULD | The cards of one row carry a label of at most three words, the figure, and the same optional parts on every card — a comparison of one line on each, or on none. | `overviews.md` |
82
87
  | OE-01 | MUST | An element of the application's own reads only tokens of the groups `../tokens.md` lists for the application. | `own-elements.md` |
83
88
  | OE-02 | MUST | Where two states hold at once, the element paints the ground, the edge and the text colour of the stronger, in the order `disabled`, `loading`, `readonly`, `invalid`, `checked`, `selected`, `pressed`, `current`, `complete`, `active`, `hover`; the focus ring of OE-03 is drawn over every state. | `own-elements.md` |
84
89
  | OE-03 | MUST | In its `focus-visible` state the element draws an outline of `--slotted-focus-ring-width` in `--slotted-focus-ring-color`, offset by `--slotted-focus-ring-offset`. | `own-elements.md` |
@@ -174,3 +174,33 @@ Why: `table` mounts every cell: a hundred rows of twenty columns measured 93 ms
174
174
  Do: Give the store's list a `data-grid` with its query, and keep `table` for the bounded sets inside a record or a document.
175
175
  Don't: Render an unbounded store into a `table`, or page a `table` to keep it under a hundred rows where the grid's window would have kept the whole set reachable.
176
176
  Check: Every list over an unbounded store is a `data-grid`; every `table` on a page renders a set the page bounds.
177
+
178
+ ### LP-15 · A grid on the page's surface is framed
179
+
180
+ Level: SHOULD
181
+ Applies to: a `data-grid` or a `table` on a list page, a record or an overview
182
+ Rule: A grid that stands on the page's surface beside other blocks takes the `framed` `variant`; a grid that is the page's only body under a `bleed` page may stay `ruled`; `plain` is for a grid inside a `card` or a panel that already draws the frame.
183
+ Why: `ruled`, the grid's default, draws rules between rows and no outer edge, and on a raised page surface every grid read as a bare slab beside blocks that have edges.
184
+ Do: Give every grid that shares the page with a header area, a filter bar or other blocks the `framed` `variant`, and leave `ruled` to the full-bleed list whose edges are the page's.
185
+ Don't: Leave the variant at its default on a page whose width is not `bleed`, or frame a grid a second time inside a card.
186
+ Check: Every `data-grid` with no `variant` stands on a page whose `width` is `bleed`; every grid inside a `card` is `plain`.
187
+
188
+ ### LP-16 · A list's header says what the list covers
189
+
190
+ Level: SHOULD
191
+ Applies to: the `page-header` of a list page
192
+ Rule: A list page's header holds a subheading that says what the list covers, the control of the period when the list reads one, the page's figures for that period in the header area as label-over-figure pairs, and the primary action as the last, solid control; a refresh control is an icon button and never the only action.
193
+ Why: A header with a heading and a refresh icon left the period and the totals with no place, and the reader learned what the list covered only by reading its rows.
194
+ Do: Write the `page-header`'s `subheading` part for what the list covers, the period's control and the figures in its `header-area` as `figure` parts, and end its `actions` with the solid primary action; the refresh stands before it as the `button` family's `iconButton`.
195
+ Don't: Leave a list's header as a heading alone, put its figures in a row of cards above the grid, or make a refresh icon the header's only control.
196
+ Check: Every list page's header has a subheading, its figures in the header area, and a solid primary action last; no header's only control is a refresh.
197
+
198
+ ### LP-17 · The row header and the row's actions stay in the frame
199
+
200
+ Level: SHOULD
201
+ Applies to: a `data-grid` whose columns can scroll sideways
202
+ Rule: The column of kind `actions` stays pinned to the end, which is the grid's default, and the row header is pinned to the start with `pinned: 'start'` when it is the first column; no other column is pinned without a reason the page states.
203
+ Why: When the columns scrolled sideways the row's menu left the frame, and on a narrow frame the reader scrolled away from the actions to reach them.
204
+ Do: Keep the `actions` column at its default pin, write `pinned: 'start'` on a row header that is the first column, and pin nothing else.
205
+ Don't: Unpin the actions column, or pin a column the reader did not ask to keep in view.
206
+ Check: In a frame narrower than the grid's columns, scrolled to the end, every row's actions cell is in view, and so is the row header when it is the first column.
@@ -64,3 +64,13 @@ Why: The section's heading and its space already frame a chart that is its body,
64
64
  Do: Give a plain chart a `title` that names the measure and not the section's words again; in a grid of peer tiles, let the chart's title be the tile's title and share the row's height, as `stat-card` always does.
65
65
  Don't: Frame every chart by habit, or leave a chart plain among framed tiles where it reads as the page's background.
66
66
  Check: For each chart, name what frames it: a titled section (plain) or a grid of peers (card); a chart with neither frame, or with both, is a finding.
67
+
68
+ ### OV-06 · The stat-cards of one row share their structure
69
+
70
+ Level: SHOULD
71
+ Applies to: a row of `stat-card`s on an overview or a record page
72
+ Rule: The cards of one row carry a label of at most three words, the figure, and the same optional parts on every card — a comparison of one line on each, or on none.
73
+ Why: One card with a long label and a wrapping comparison beside three cards with a label and a value made four boxes of the tallest card's height, three of them mostly empty, and the row read as broken.
74
+ Do: Give every card a short label, its figure and one comparison line; detail that only one card has goes into its comparison or a tooltip.
75
+ Don't: Lengthen one card's label to carry its detail, or give one card of the row a part the others lack.
76
+ Check: In every row of `stat-card`s, every label has three words or fewer, and either every card has a comparison or none does.