@kerfjs/ui 5.0.0-beta.10 → 5.0.0-beta.101

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 (1022) hide show
  1. package/README.md +632 -132
  2. package/ai/application-ui-diagnostic-ids-v1.json +114 -0
  3. package/ai/application-ui-profile-sync.cjs +548 -0
  4. package/ai/application-ui-profile.d.mts +1 -0
  5. package/ai/application-ui-profile.d.ts +106 -0
  6. package/ai/application-ui-profile.defaults.json +96 -0
  7. package/ai/application-ui-profile.mjs +653 -0
  8. package/ai/application-ui-profile.schema.json +140 -0
  9. package/ai/catalog-authoring.json +34 -0
  10. package/ai/catalog-authoring.schema.json +105 -0
  11. package/ai/compile-time-contracts-v1.json +149 -0
  12. package/ai/compile-time-contracts-v1.schema.json +52 -0
  13. package/ai/component-catalog-extension.schema.json +104 -0
  14. package/ai/component-catalog.json +6668 -1002
  15. package/ai/component-catalog.schema.json +94 -1
  16. package/ai/component-class-owners.cjs +83 -0
  17. package/ai/component-composition-extension.d.ts +7 -0
  18. package/ai/component-composition-extension.schema.json +7 -0
  19. package/ai/component-composition-rules.json +551 -0
  20. package/ai/component-composition.d.ts +132 -0
  21. package/ai/component-composition.json +8937 -0
  22. package/ai/component-composition.schema.json +412 -0
  23. package/ai/components/README.md +187 -0
  24. package/ai/components/anchored-surface.md +99 -0
  25. package/ai/components/application-tabs.md +65 -0
  26. package/ai/components/backdrop-image.md +84 -0
  27. package/ai/components/badge.md +76 -0
  28. package/ai/components/chip.md +76 -0
  29. package/ai/components/choice-chips.md +87 -0
  30. package/ai/components/collapsible-panel.md +103 -0
  31. package/ai/components/column-track.md +78 -0
  32. package/ai/components/combobox.md +88 -0
  33. package/ai/components/composer.md +83 -0
  34. package/ai/components/content-item.md +98 -0
  35. package/ai/components/content-swap.md +78 -0
  36. package/ai/components/corner-status.md +88 -0
  37. package/ai/components/disclosure-arrow.md +77 -0
  38. package/ai/components/document-baseline.md +77 -0
  39. package/ai/components/edge-activity-indicator.md +81 -0
  40. package/ai/components/empty-state.md +80 -0
  41. package/ai/components/feedback.md +71 -0
  42. package/ai/components/file-picker.md +88 -0
  43. package/ai/components/floating-toolbar.md +82 -0
  44. package/ai/components/foundation.md +65 -0
  45. package/ai/components/framed-list.md +80 -0
  46. package/ai/components/grid.md +101 -0
  47. package/ai/components/headers.md +63 -0
  48. package/ai/components/icon-button.md +82 -0
  49. package/ai/components/icon-toggle-button.md +80 -0
  50. package/ai/components/layout.md +75 -0
  51. package/ai/components/list-action-row.md +108 -0
  52. package/ai/components/list-header.md +91 -0
  53. package/ai/components/list-inset-control.md +74 -0
  54. package/ai/components/list-inset-text.md +72 -0
  55. package/ai/components/list-item.md +108 -0
  56. package/ai/components/list.md +125 -0
  57. package/ai/components/loading-spinner.md +73 -0
  58. package/ai/components/lucide-icon.md +97 -0
  59. package/ai/components/nav-stack.md +120 -0
  60. package/ai/components/pane.md +125 -0
  61. package/ai/components/popup-menu.md +171 -0
  62. package/ai/components/recipe-app-shell.md +57 -0
  63. package/ai/components/recipe-collapsible-sidebar.md +57 -0
  64. package/ai/components/recipe-compact-toolbar.md +57 -0
  65. package/ai/components/recipe-composer-form.md +57 -0
  66. package/ai/components/recipe-list-detail-dialog.md +57 -0
  67. package/ai/components/recipe-list-workspace-states.md +57 -0
  68. package/ai/components/recipe-loading-inspector.md +57 -0
  69. package/ai/components/recipe-media-detail.md +57 -0
  70. package/ai/components/recipe-navigation-sidebar.md +57 -0
  71. package/ai/components/recipe-navigation-stack.md +57 -0
  72. package/ai/components/recipe-workspace-header.md +57 -0
  73. package/ai/components/resize.md +106 -0
  74. package/ai/components/row.md +96 -0
  75. package/ai/components/segmented-control.md +82 -0
  76. package/ai/components/select.md +116 -0
  77. package/ai/components/skeleton.md +84 -0
  78. package/ai/components/spacer.md +86 -0
  79. package/ai/components/split-button.md +80 -0
  80. package/ai/components/split-view.md +105 -0
  81. package/ai/components/state-banner.md +96 -0
  82. package/ai/components/summary-row.md +85 -0
  83. package/ai/components/sunken-panel.md +79 -0
  84. package/ai/components/surface-scaffold.md +112 -0
  85. package/ai/components/tab-bar.md +114 -0
  86. package/ai/components/tab-navigator.md +105 -0
  87. package/ai/components/tabs.md +95 -0
  88. package/ai/components/text.md +90 -0
  89. package/ai/components/token-search-field.md +107 -0
  90. package/ai/components/toolbar-control-group.md +126 -0
  91. package/ai/components/toolbar-text.md +100 -0
  92. package/ai/components/toolbar.md +103 -0
  93. package/ai/components/value-table.md +80 -0
  94. package/ai/components/wa-accordion-item.md +55 -0
  95. package/ai/components/wa-accordion.md +65 -0
  96. package/ai/components/wa-animated-image.md +55 -0
  97. package/ai/components/wa-animation.md +55 -0
  98. package/ai/components/wa-avatar.md +55 -0
  99. package/ai/components/wa-badge.md +55 -0
  100. package/ai/components/wa-breadcrumb-item.md +53 -0
  101. package/ai/components/wa-breadcrumb.md +55 -0
  102. package/ai/components/wa-button-group.md +60 -0
  103. package/ai/components/wa-button.md +59 -0
  104. package/ai/components/wa-callout.md +58 -0
  105. package/ai/components/wa-card.md +59 -0
  106. package/ai/components/wa-carousel-item.md +53 -0
  107. package/ai/components/wa-carousel.md +55 -0
  108. package/ai/components/wa-checkbox-group.md +55 -0
  109. package/ai/components/wa-checkbox.md +55 -0
  110. package/ai/components/wa-color-picker.md +55 -0
  111. package/ai/components/wa-comparison.md +55 -0
  112. package/ai/components/wa-copy-button.md +55 -0
  113. package/ai/components/wa-details.md +61 -0
  114. package/ai/components/wa-dialog.md +59 -0
  115. package/ai/components/wa-divider.md +53 -0
  116. package/ai/components/wa-drawer.md +55 -0
  117. package/ai/components/wa-dropdown-item.md +60 -0
  118. package/ai/components/wa-dropdown.md +60 -0
  119. package/ai/components/wa-format-bytes.md +53 -0
  120. package/ai/components/wa-format-date.md +53 -0
  121. package/ai/components/wa-format-number.md +53 -0
  122. package/ai/components/wa-icon.md +58 -0
  123. package/ai/components/wa-include.md +53 -0
  124. package/ai/components/wa-input.md +59 -0
  125. package/ai/components/wa-intersection-observer.md +53 -0
  126. package/ai/components/wa-known-date.md +53 -0
  127. package/ai/components/wa-markdown.md +53 -0
  128. package/ai/components/wa-mutation-observer.md +53 -0
  129. package/ai/components/wa-number-input.md +55 -0
  130. package/ai/components/wa-option.md +59 -0
  131. package/ai/components/wa-otp-input.md +53 -0
  132. package/ai/components/wa-page.md +53 -0
  133. package/ai/components/wa-pagination.md +55 -0
  134. package/ai/components/wa-popover.md +55 -0
  135. package/ai/components/wa-popup.md +53 -0
  136. package/ai/components/wa-progress-bar.md +53 -0
  137. package/ai/components/wa-progress-ring.md +53 -0
  138. package/ai/components/wa-qr-code.md +53 -0
  139. package/ai/components/wa-radio-group.md +59 -0
  140. package/ai/components/wa-radio.md +55 -0
  141. package/ai/components/wa-random-content.md +53 -0
  142. package/ai/components/wa-rating.md +55 -0
  143. package/ai/components/wa-relative-time.md +53 -0
  144. package/ai/components/wa-resize-observer.md +53 -0
  145. package/ai/components/wa-scroller.md +53 -0
  146. package/ai/components/wa-select.md +63 -0
  147. package/ai/components/wa-skeleton.md +53 -0
  148. package/ai/components/wa-slider.md +55 -0
  149. package/ai/components/wa-spinner.md +58 -0
  150. package/ai/components/wa-split-panel.md +58 -0
  151. package/ai/components/wa-switch.md +53 -0
  152. package/ai/components/wa-tab-group.md +69 -0
  153. package/ai/components/wa-tab-panel.md +60 -0
  154. package/ai/components/wa-tab.md +59 -0
  155. package/ai/components/wa-tag.md +59 -0
  156. package/ai/components/wa-textarea.md +53 -0
  157. package/ai/components/wa-time-input.md +55 -0
  158. package/ai/components/wa-toast-item.md +60 -0
  159. package/ai/components/wa-toast.md +60 -0
  160. package/ai/components/wa-tooltip.md +55 -0
  161. package/ai/components/wa-tree-item.md +55 -0
  162. package/ai/components/wa-tree.md +55 -0
  163. package/ai/components/wa-zoomable-frame.md +55 -0
  164. package/ai/components/workbench.md +120 -0
  165. package/ai/public-api-signatures-v1.md +4564 -438
  166. package/ai/skill.md +490 -64
  167. package/ai/webawesome-jsx-signatures-v1.md +9 -2
  168. package/analyzer/cli.mjs +49 -0
  169. package/analyzer/component-ownership.d.mts +72 -0
  170. package/analyzer/component-ownership.mjs +429 -0
  171. package/analyzer/index.d.mts +53 -0
  172. package/analyzer/index.mjs +2375 -0
  173. package/analyzer/loud-pairs.d.mts +49 -0
  174. package/analyzer/loud-pairs.mjs +357 -0
  175. package/analyzer/report.schema.json +66 -0
  176. package/analyzer/selectors.d.mts +21 -0
  177. package/analyzer/selectors.mjs +212 -0
  178. package/catalog-projection-cli.mjs +96 -0
  179. package/catalog-projection.d.mts +55 -0
  180. package/catalog-projection.mjs +62 -0
  181. package/dist/anchored-surface.d.ts +69 -0
  182. package/dist/anchored-surface.js +3 -0
  183. package/dist/anchored-surface.js.map +1 -0
  184. package/dist/app-tab.d.ts +39 -4
  185. package/dist/app-tab.js +2 -1
  186. package/dist/backdrop-image.d.ts +132 -0
  187. package/dist/backdrop-image.js +5 -0
  188. package/dist/backdrop-image.js.map +1 -0
  189. package/dist/badge.d.ts +83 -0
  190. package/dist/badge.js +4 -0
  191. package/dist/badge.js.map +1 -0
  192. package/dist/browser/anchored-surface.js +3 -0
  193. package/dist/browser/backdrop-image.js +3 -0
  194. package/dist/browser/badge.js +3 -0
  195. package/dist/browser/catalog.js +28 -0
  196. package/dist/browser/chip.js +3 -0
  197. package/dist/browser/choice-chips.js +3 -0
  198. package/dist/browser/collapsible-panel.js +9 -0
  199. package/dist/browser/column-track.js +3 -0
  200. package/dist/browser/combobox.js +3 -0
  201. package/dist/browser/composer.js +4 -0
  202. package/dist/browser/content-item.js +3 -0
  203. package/dist/browser/content-swap.js +3 -0
  204. package/dist/browser/corner-status.js +3 -0
  205. package/dist/browser/edge-activity-indicator.js +3 -0
  206. package/dist/browser/file-picker.js +3 -0
  207. package/dist/browser/floating-toolbar.js +3 -0
  208. package/dist/browser/framed-list.js +3 -0
  209. package/dist/browser/grid.js +3 -0
  210. package/dist/browser/icon-button.js +4 -0
  211. package/dist/browser/icon-toggle-button.js +4 -0
  212. package/dist/browser/list-action-row.js +2 -0
  213. package/dist/browser/list-header.js +3 -1
  214. package/dist/browser/list-inset-control.js +3 -0
  215. package/dist/browser/list-inset-text.js +3 -0
  216. package/dist/browser/list-item.js +1 -0
  217. package/dist/browser/list.js +3 -0
  218. package/dist/browser/nav-stack.js +11 -0
  219. package/dist/browser/pane.js +3 -0
  220. package/dist/browser/popup-menu.js +3 -0
  221. package/dist/browser/row.js +3 -0
  222. package/dist/browser/segmented-control.js +0 -1
  223. package/dist/browser/select.js +2 -1
  224. package/dist/browser/spacer.js +3 -0
  225. package/dist/browser/split-button.js +5 -0
  226. package/dist/browser/split-view.js +13 -0
  227. package/dist/browser/state-banner.js +1 -0
  228. package/dist/browser/summary-row.js +3 -0
  229. package/dist/browser/sunken-panel.js +3 -0
  230. package/dist/browser/surface-scaffold.js +3 -0
  231. package/dist/browser/tab-navigator.js +4 -0
  232. package/dist/browser/text.js +3 -0
  233. package/dist/browser/toolbar-control-group.js +1 -0
  234. package/dist/browser/workbench.js +14 -0
  235. package/dist/catalog-resources.d.ts +50 -0
  236. package/dist/catalog-resources.js +22 -0
  237. package/dist/catalog-resources.js.map +1 -0
  238. package/dist/catalog.d.ts +134 -101
  239. package/dist/catalog.js +669 -105
  240. package/dist/catalog.js.map +1 -1
  241. package/dist/chip.d.ts +69 -0
  242. package/dist/chip.js +3 -0
  243. package/dist/chip.js.map +1 -0
  244. package/dist/choice-chips.d.ts +82 -0
  245. package/dist/choice-chips.js +3 -0
  246. package/dist/choice-chips.js.map +1 -0
  247. package/dist/chunk-2GOCOLQL.js +270 -0
  248. package/dist/chunk-2GOCOLQL.js.map +1 -0
  249. package/dist/chunk-2MSPNRWJ.js +82 -0
  250. package/dist/chunk-2MSPNRWJ.js.map +1 -0
  251. package/dist/chunk-2PXZBFEC.js +141 -0
  252. package/dist/chunk-2PXZBFEC.js.map +1 -0
  253. package/dist/chunk-34U4ANDJ.js +119 -0
  254. package/dist/chunk-34U4ANDJ.js.map +1 -0
  255. package/dist/chunk-3SKAEPPZ.js +165 -0
  256. package/dist/chunk-3SKAEPPZ.js.map +1 -0
  257. package/dist/{chunk-56RJXPHG.js → chunk-3VXDSIBJ.js} +7 -4
  258. package/dist/chunk-3VXDSIBJ.js.map +1 -0
  259. package/dist/chunk-3WYREXW4.js +120 -0
  260. package/dist/chunk-3WYREXW4.js.map +1 -0
  261. package/dist/chunk-4UB5Z3ZZ.js +68 -0
  262. package/dist/chunk-4UB5Z3ZZ.js.map +1 -0
  263. package/dist/chunk-5NQF35VO.js +67 -0
  264. package/dist/chunk-5NQF35VO.js.map +1 -0
  265. package/dist/chunk-6C6DLP3W.js +31 -0
  266. package/dist/chunk-6C6DLP3W.js.map +1 -0
  267. package/dist/chunk-6E2H2E5A.js +196 -0
  268. package/dist/chunk-6E2H2E5A.js.map +1 -0
  269. package/dist/chunk-7IUEBNCO.js +108 -0
  270. package/dist/chunk-7IUEBNCO.js.map +1 -0
  271. package/dist/chunk-AN5IWMTM.js +24 -0
  272. package/dist/chunk-AN5IWMTM.js.map +1 -0
  273. package/dist/chunk-AV7CPAPT.js +82 -0
  274. package/dist/chunk-AV7CPAPT.js.map +1 -0
  275. package/dist/chunk-B53PS2LE.js +34 -0
  276. package/dist/chunk-B53PS2LE.js.map +1 -0
  277. package/dist/chunk-BYFTHA4I.js +153 -0
  278. package/dist/chunk-BYFTHA4I.js.map +1 -0
  279. package/dist/chunk-CA7LNX3J.js +44 -0
  280. package/dist/chunk-CA7LNX3J.js.map +1 -0
  281. package/dist/chunk-CEJ5FK6G.js +288 -0
  282. package/dist/chunk-CEJ5FK6G.js.map +1 -0
  283. package/dist/chunk-CMLPFIC5.js +46 -0
  284. package/dist/chunk-CMLPFIC5.js.map +1 -0
  285. package/dist/chunk-CVD5IZGB.js +66 -0
  286. package/dist/chunk-CVD5IZGB.js.map +1 -0
  287. package/dist/chunk-D5RGM3XA.js +38 -0
  288. package/dist/chunk-D5RGM3XA.js.map +1 -0
  289. package/dist/chunk-DZJ4GBSP.js +59 -0
  290. package/dist/chunk-DZJ4GBSP.js.map +1 -0
  291. package/dist/chunk-EIET4QLK.js +51 -0
  292. package/dist/chunk-EIET4QLK.js.map +1 -0
  293. package/dist/chunk-EKHDLBRP.js +86 -0
  294. package/dist/chunk-EKHDLBRP.js.map +1 -0
  295. package/dist/chunk-ELCMSQNJ.js +49 -0
  296. package/dist/chunk-ELCMSQNJ.js.map +1 -0
  297. package/dist/chunk-ETCWQLJV.js +85 -0
  298. package/dist/chunk-ETCWQLJV.js.map +1 -0
  299. package/dist/chunk-FDZNYD4C.js +138 -0
  300. package/dist/chunk-FDZNYD4C.js.map +1 -0
  301. package/dist/chunk-FNZQOUZ5.js +52 -0
  302. package/dist/chunk-FNZQOUZ5.js.map +1 -0
  303. package/dist/chunk-FR76ZJQC.js +90 -0
  304. package/dist/chunk-FR76ZJQC.js.map +1 -0
  305. package/dist/chunk-G3J7JDP6.js +29 -0
  306. package/dist/chunk-G3J7JDP6.js.map +1 -0
  307. package/dist/chunk-GS2QD3N7.js +14 -0
  308. package/dist/chunk-GS2QD3N7.js.map +1 -0
  309. package/dist/chunk-HLDRH23D.js +84 -0
  310. package/dist/chunk-HLDRH23D.js.map +1 -0
  311. package/dist/chunk-HQZYKJ56.js +302 -0
  312. package/dist/chunk-HQZYKJ56.js.map +1 -0
  313. package/dist/chunk-HZPHCSCS.js +95 -0
  314. package/dist/chunk-HZPHCSCS.js.map +1 -0
  315. package/dist/chunk-IKS72C6P.js +53 -0
  316. package/dist/chunk-IKS72C6P.js.map +1 -0
  317. package/dist/chunk-IM3GKYOG.js +202 -0
  318. package/dist/chunk-IM3GKYOG.js.map +1 -0
  319. package/dist/chunk-IQSRHXZR.js +164 -0
  320. package/dist/chunk-IQSRHXZR.js.map +1 -0
  321. package/dist/chunk-IXLUZHGT.js +162 -0
  322. package/dist/chunk-IXLUZHGT.js.map +1 -0
  323. package/dist/chunk-JOR5LGYE.js +55 -0
  324. package/dist/chunk-JOR5LGYE.js.map +1 -0
  325. package/dist/chunk-K4AT3V3J.js +545 -0
  326. package/dist/chunk-K4AT3V3J.js.map +1 -0
  327. package/dist/chunk-KCS6NJ3O.js +82 -0
  328. package/dist/chunk-KCS6NJ3O.js.map +1 -0
  329. package/dist/chunk-KH4KEMSP.js +71 -0
  330. package/dist/chunk-KH4KEMSP.js.map +1 -0
  331. package/dist/chunk-LL45C7BB.js +122 -0
  332. package/dist/chunk-LL45C7BB.js.map +1 -0
  333. package/dist/chunk-LOSRXZAH.js +100 -0
  334. package/dist/chunk-LOSRXZAH.js.map +1 -0
  335. package/dist/chunk-LPHU44S3.js +24 -0
  336. package/dist/chunk-LPHU44S3.js.map +1 -0
  337. package/dist/chunk-M5KZ26VV.js +148 -0
  338. package/dist/chunk-M5KZ26VV.js.map +1 -0
  339. package/dist/chunk-MF6ZUUJZ.js +300 -0
  340. package/dist/chunk-MF6ZUUJZ.js.map +1 -0
  341. package/dist/chunk-MHMWQ7RB.js +19 -0
  342. package/dist/chunk-MHMWQ7RB.js.map +1 -0
  343. package/dist/chunk-MJ5RU6XT.js +173 -0
  344. package/dist/chunk-MJ5RU6XT.js.map +1 -0
  345. package/dist/chunk-MXNIVEVL.js +48 -0
  346. package/dist/chunk-MXNIVEVL.js.map +1 -0
  347. package/dist/{chunk-YGN7OMLT.js → chunk-NS2TBYM4.js} +8 -5
  348. package/dist/chunk-NS2TBYM4.js.map +1 -0
  349. package/dist/chunk-NS762OVM.js +222 -0
  350. package/dist/chunk-NS762OVM.js.map +1 -0
  351. package/dist/chunk-OZ6X76G5.js +547 -0
  352. package/dist/chunk-OZ6X76G5.js.map +1 -0
  353. package/dist/chunk-PKL6QJKK.js +835 -0
  354. package/dist/chunk-PKL6QJKK.js.map +1 -0
  355. package/dist/chunk-QDSZTQXL.js +28 -0
  356. package/dist/chunk-QDSZTQXL.js.map +1 -0
  357. package/dist/chunk-QH5KOFNS.js +39 -0
  358. package/dist/chunk-QH5KOFNS.js.map +1 -0
  359. package/dist/chunk-QLA25V2K.js +493 -0
  360. package/dist/chunk-QLA25V2K.js.map +1 -0
  361. package/dist/chunk-QTSMHH5J.js +85 -0
  362. package/dist/chunk-QTSMHH5J.js.map +1 -0
  363. package/dist/chunk-QYMJHS4K.js +36 -0
  364. package/dist/chunk-QYMJHS4K.js.map +1 -0
  365. package/dist/chunk-S2XULQEK.js +52 -0
  366. package/dist/chunk-S2XULQEK.js.map +1 -0
  367. package/dist/chunk-S3ECMF23.js +33 -0
  368. package/dist/chunk-S3ECMF23.js.map +1 -0
  369. package/dist/chunk-S4Y3YTAI.js +35 -0
  370. package/dist/chunk-S4Y3YTAI.js.map +1 -0
  371. package/dist/chunk-S4ZGTDSG.js +18 -0
  372. package/dist/chunk-S4ZGTDSG.js.map +1 -0
  373. package/dist/chunk-SCDWURBO.js +136 -0
  374. package/dist/chunk-SCDWURBO.js.map +1 -0
  375. package/dist/chunk-SIW64V65.js +176 -0
  376. package/dist/chunk-SIW64V65.js.map +1 -0
  377. package/dist/chunk-SQ5DH66U.js +37 -0
  378. package/dist/chunk-SQ5DH66U.js.map +1 -0
  379. package/dist/chunk-TDMHA7C3.js +251 -0
  380. package/dist/chunk-TDMHA7C3.js.map +1 -0
  381. package/dist/chunk-TGLUDQP2.js +138 -0
  382. package/dist/chunk-TGLUDQP2.js.map +1 -0
  383. package/dist/chunk-U6QYTMDB.js +85 -0
  384. package/dist/chunk-U6QYTMDB.js.map +1 -0
  385. package/dist/chunk-VFYO3UGZ.js +45 -0
  386. package/dist/chunk-VFYO3UGZ.js.map +1 -0
  387. package/dist/chunk-W4IK7AWD.js +73 -0
  388. package/dist/chunk-W4IK7AWD.js.map +1 -0
  389. package/dist/chunk-WVS6CUCT.js +48 -0
  390. package/dist/chunk-WVS6CUCT.js.map +1 -0
  391. package/dist/chunk-Y6KT7ZTR.js +109 -0
  392. package/dist/chunk-Y6KT7ZTR.js.map +1 -0
  393. package/dist/chunk-YBWQR2OK.js +526 -0
  394. package/dist/chunk-YBWQR2OK.js.map +1 -0
  395. package/dist/chunk-YMUIQRWK.js +44 -0
  396. package/dist/chunk-YMUIQRWK.js.map +1 -0
  397. package/dist/chunk-YQ2AC4E2.js +59 -0
  398. package/dist/chunk-YQ2AC4E2.js.map +1 -0
  399. package/dist/chunk-ZKKO4MHC.js +25 -0
  400. package/dist/chunk-ZKKO4MHC.js.map +1 -0
  401. package/dist/chunk-ZNROKDSZ.js +54 -0
  402. package/dist/chunk-ZNROKDSZ.js.map +1 -0
  403. package/dist/chunk-ZYU5WRC3.js +230 -0
  404. package/dist/chunk-ZYU5WRC3.js.map +1 -0
  405. package/dist/collapsible-panel.d.ts +96 -17
  406. package/dist/collapsible-panel.js +133 -14
  407. package/dist/collapsible-panel.js.map +1 -1
  408. package/dist/column-track.d.ts +41 -0
  409. package/dist/column-track.js +4 -0
  410. package/dist/column-track.js.map +1 -0
  411. package/dist/combobox.d.ts +40 -0
  412. package/dist/combobox.js +3 -0
  413. package/dist/combobox.js.map +1 -0
  414. package/dist/composer.d.ts +62 -0
  415. package/dist/composer.js +5 -0
  416. package/dist/composer.js.map +1 -0
  417. package/dist/content-item.d.ts +116 -0
  418. package/dist/content-item.js +4 -0
  419. package/dist/content-item.js.map +1 -0
  420. package/dist/content-swap.d.ts +34 -0
  421. package/dist/content-swap.js +3 -0
  422. package/dist/content-swap.js.map +1 -0
  423. package/dist/corner-status.d.ts +36 -0
  424. package/dist/corner-status.js +3 -0
  425. package/dist/corner-status.js.map +1 -0
  426. package/dist/css-values.d.ts +127 -0
  427. package/dist/css-values.js +3 -0
  428. package/dist/css-values.js.map +1 -0
  429. package/dist/device-class.js +34 -6
  430. package/dist/device-class.js.map +1 -1
  431. package/dist/disclosure-arrow.d.ts +6 -1
  432. package/dist/disclosure-arrow.js +2 -1
  433. package/dist/edge-activity-indicator.d.ts +28 -0
  434. package/dist/edge-activity-indicator.js +3 -0
  435. package/dist/edge-activity-indicator.js.map +1 -0
  436. package/dist/empty-state.d.ts +5 -2
  437. package/dist/empty-state.js +2 -1
  438. package/dist/extension-attributes-mu8MFUl0.d.ts +13 -0
  439. package/dist/file-picker.d.ts +47 -0
  440. package/dist/file-picker.js +3 -0
  441. package/dist/file-picker.js.map +1 -0
  442. package/dist/flex-alignment-4ms8ZbV8.d.ts +5 -0
  443. package/dist/floating-toolbar.d.ts +51 -0
  444. package/dist/floating-toolbar.js +3 -0
  445. package/dist/floating-toolbar.js.map +1 -0
  446. package/dist/framed-list.d.ts +47 -0
  447. package/dist/framed-list.js +4 -0
  448. package/dist/framed-list.js.map +1 -0
  449. package/dist/grid.d.ts +58 -0
  450. package/dist/grid.js +6 -0
  451. package/dist/grid.js.map +1 -0
  452. package/dist/help-tags-register.d.ts +13 -0
  453. package/dist/help-tags-register.js +9 -0
  454. package/dist/help-tags-register.js.map +1 -0
  455. package/dist/icon-button.d.ts +46 -0
  456. package/dist/icon-button.js +6 -0
  457. package/dist/icon-button.js.map +1 -0
  458. package/dist/icon-toggle-button.d.ts +42 -0
  459. package/dist/icon-toggle-button.js +6 -0
  460. package/dist/icon-toggle-button.js.map +1 -0
  461. package/dist/index.d.ts +65 -17
  462. package/dist/index.js +71 -24
  463. package/dist/list-action-row.d.ts +69 -12
  464. package/dist/list-action-row.js +5 -1
  465. package/dist/list-header.d.ts +65 -10
  466. package/dist/list-header.js +4 -1
  467. package/dist/list-icon-tile-B8dr97OW.d.ts +18 -0
  468. package/dist/list-inset-control.d.ts +22 -0
  469. package/dist/list-inset-control.js +3 -0
  470. package/dist/list-inset-control.js.map +1 -0
  471. package/dist/list-inset-text.d.ts +30 -0
  472. package/dist/list-inset-text.js +4 -0
  473. package/dist/list-inset-text.js.map +1 -0
  474. package/dist/list-item.d.ts +49 -5
  475. package/dist/list-item.js +4 -1
  476. package/dist/list.d.ts +128 -0
  477. package/dist/list.js +7 -0
  478. package/dist/list.js.map +1 -0
  479. package/dist/loading-spinner.d.ts +12 -2
  480. package/dist/loading-spinner.js +2 -1
  481. package/dist/lucide-icon.d.ts +15 -3
  482. package/dist/lucide-icon.js +2 -1
  483. package/dist/nav-stack-CU_0dKtI.d.ts +194 -0
  484. package/dist/nav-stack.d.ts +15 -38
  485. package/dist/nav-stack.js +14 -1
  486. package/dist/pane.d.ts +225 -0
  487. package/dist/pane.js +6 -0
  488. package/dist/pane.js.map +1 -0
  489. package/dist/panel-toolbar-vg6Ir5Dy.d.ts +77 -0
  490. package/dist/popup-menu-register.d.ts +10 -0
  491. package/dist/popup-menu-register.js +336 -0
  492. package/dist/popup-menu-register.js.map +1 -0
  493. package/dist/popup-menu.d.ts +125 -0
  494. package/dist/popup-menu.js +3 -0
  495. package/dist/popup-menu.js.map +1 -0
  496. package/dist/resizable-region.d.ts +32 -3
  497. package/dist/resizable-region.js +1 -1
  498. package/dist/row.d.ts +53 -0
  499. package/dist/row.js +7 -0
  500. package/dist/row.js.map +1 -0
  501. package/dist/scroll-clearance-BikHljTc.d.ts +14 -0
  502. package/dist/segmented-control.d.ts +12 -9
  503. package/dist/segmented-control.js +1 -2
  504. package/dist/select-register.js +255 -3
  505. package/dist/select-register.js.map +1 -1
  506. package/dist/select.d.ts +103 -8
  507. package/dist/select.js +4 -1
  508. package/dist/semantic-content-BbzjvSu9.d.ts +14 -0
  509. package/dist/semantic-tone-CdW013KF.d.ts +4 -0
  510. package/dist/sides-BPSWde0A.d.ts +4 -0
  511. package/dist/skeleton.d.ts +14 -7
  512. package/dist/skeleton.js +2 -1
  513. package/dist/spacer.d.ts +18 -0
  514. package/dist/spacer.js +4 -0
  515. package/dist/spacer.js.map +1 -0
  516. package/dist/split-button.d.ts +57 -0
  517. package/dist/split-button.js +7 -0
  518. package/dist/split-button.js.map +1 -0
  519. package/dist/split-view.d.ts +63 -6
  520. package/dist/split-view.js +150 -10
  521. package/dist/split-view.js.map +1 -1
  522. package/dist/state-banner.d.ts +41 -7
  523. package/dist/state-banner.js +4 -1
  524. package/dist/styles/anchored-surface.css +41 -0
  525. package/dist/styles/app-tab.css +232 -0
  526. package/dist/styles/backdrop-image.css +241 -0
  527. package/dist/styles/badge.css +145 -0
  528. package/dist/styles/catalog/components/catalog-example-stack.css +14 -0
  529. package/dist/styles/catalog/components/catalog-example.css +204 -0
  530. package/dist/styles/catalog/components/catalog-stage.css +61 -0
  531. package/dist/styles/catalog/components/catalog.css +26 -0
  532. package/dist/styles/catalog.css +5 -498
  533. package/dist/styles/chip.css +208 -0
  534. package/dist/styles/choice-chips.css +154 -0
  535. package/dist/styles/collapsible-panel.css +450 -16
  536. package/dist/styles/column-track.css +57 -0
  537. package/dist/styles/combobox.css +113 -0
  538. package/dist/styles/components/actions/floating-toolbar/floating-toolbar.css +119 -0
  539. package/dist/styles/components/actions/icon-button/icon-button.css +22 -0
  540. package/dist/styles/components/actions/icon-toggle-button/icon-toggle-button.css +83 -0
  541. package/dist/styles/components/actions/popup-menu/popup-menu.css +370 -0
  542. package/dist/styles/components/actions/split-button/split-button.css +95 -0
  543. package/dist/styles/components/actions/toolbar/toolbar.css +452 -0
  544. package/dist/styles/components/actions/toolbar-control-group/toolbar-control-group.css +1197 -0
  545. package/dist/styles/components/actions/toolbar-text/toolbar-text.css +269 -0
  546. package/dist/styles/components/collections/framed-list/framed-list.css +47 -0
  547. package/dist/styles/components/collections/list/list.css +250 -0
  548. package/dist/styles/components/collections/list-action-row/list-action-row.css +466 -0
  549. package/dist/styles/components/collections/list-header/list-header.css +229 -0
  550. package/dist/styles/components/collections/list-inset-control/list-inset-control.css +30 -0
  551. package/dist/styles/components/collections/list-inset-text/list-inset-text.css +29 -0
  552. package/dist/styles/components/collections/list-item/list-item.css +461 -0
  553. package/dist/styles/components/collections/summary-row/summary-row.css +161 -0
  554. package/dist/styles/components/data-display/value-table/value-table.css +183 -0
  555. package/dist/styles/components/feedback/anchored-surface/anchored-surface.css +41 -0
  556. package/dist/styles/components/feedback/badge/badge.css +145 -0
  557. package/dist/styles/components/feedback/chip/chip.css +208 -0
  558. package/dist/styles/components/feedback/corner-status/corner-status.css +60 -0
  559. package/dist/styles/components/feedback/edge-activity-indicator/edge-activity-indicator.css +127 -0
  560. package/dist/styles/components/feedback/empty-state/empty-state.css +47 -0
  561. package/dist/styles/components/feedback/loading-spinner/loading-spinner.css +25 -0
  562. package/dist/styles/components/feedback/skeleton/skeleton.css +92 -0
  563. package/dist/styles/components/feedback/state-banner/state-banner.css +297 -0
  564. package/dist/styles/components/forms/choice-chips/choice-chips.css +154 -0
  565. package/dist/styles/components/forms/combobox/combobox.css +113 -0
  566. package/dist/styles/components/forms/composer/composer.css +100 -0
  567. package/dist/styles/components/forms/file-picker/file-picker.css +81 -0
  568. package/dist/styles/components/forms/segmented-control/segmented-control.css +196 -0
  569. package/dist/styles/components/forms/select/select.css +455 -0
  570. package/dist/styles/components/forms/token-search-field/token-search-field.css +432 -0
  571. package/dist/styles/components/layout/collapsible-panel/collapsible-panel.css +580 -0
  572. package/dist/styles/components/layout/column-track/column-track.css +57 -0
  573. package/dist/styles/components/layout/content-swap/content-swap.css +154 -0
  574. package/dist/styles/components/layout/grid/grid.css +88 -0
  575. package/dist/styles/components/layout/pane/pane.css +502 -0
  576. package/dist/styles/components/layout/resizable-region/resizable-region.css +545 -0
  577. package/dist/styles/components/layout/row/row.css +114 -0
  578. package/dist/styles/components/layout/spacer/spacer.css +11 -0
  579. package/dist/styles/components/layout/split-view/split-view.css +146 -0
  580. package/dist/styles/components/layout/workbench/workbench.css +1086 -0
  581. package/dist/styles/components/media/lucide-icon/lucide-icon.css +15 -0
  582. package/dist/styles/components/navigation/app-tab/app-tab.css +384 -0
  583. package/dist/styles/components/navigation/disclosure-arrow/disclosure-arrow.css +23 -0
  584. package/dist/styles/components/navigation/nav-stack/nav-stack.css +543 -0
  585. package/dist/styles/components/navigation/tab-bar/tab-bar.css +197 -0
  586. package/dist/styles/components/navigation/tab-navigator/tab-navigator.css +443 -0
  587. package/dist/styles/components/surfaces/backdrop-image/backdrop-image.css +241 -0
  588. package/dist/styles/components/surfaces/content-item/content-item.css +138 -0
  589. package/dist/styles/components/surfaces/sunken-panel/sunken-panel.css +31 -0
  590. package/dist/styles/components/surfaces/surface-scaffold/surface-scaffold.css +589 -0
  591. package/dist/styles/components/typography/text/text.css +220 -0
  592. package/dist/styles/composer.css +100 -0
  593. package/dist/styles/content-item.css +138 -0
  594. package/dist/styles/content-swap.css +154 -0
  595. package/dist/styles/corner-status.css +60 -0
  596. package/dist/styles/document.css +98 -0
  597. package/dist/styles/edge-activity-indicator.css +127 -0
  598. package/dist/styles/file-picker.css +81 -0
  599. package/dist/styles/floating-toolbar.css +119 -0
  600. package/dist/styles/foundation.css +419 -46
  601. package/dist/styles/framed-list.css +47 -0
  602. package/dist/styles/grid.css +88 -0
  603. package/dist/styles/icon-button.css +22 -0
  604. package/dist/styles/icon-toggle-button.css +83 -0
  605. package/dist/styles/layout.css +3 -41
  606. package/dist/styles/list-action-row.css +324 -18
  607. package/dist/styles/list-header.css +128 -59
  608. package/dist/styles/list-inset-control.css +30 -0
  609. package/dist/styles/list-inset-text.css +29 -0
  610. package/dist/styles/list-item.css +371 -33
  611. package/dist/styles/list.css +250 -0
  612. package/dist/styles/loading-spinner.css +4 -0
  613. package/dist/styles/lucide-icon.css +9 -0
  614. package/dist/styles/nav-stack.css +479 -47
  615. package/dist/styles/overlay-sheet.css +211 -0
  616. package/dist/styles/pane.css +502 -0
  617. package/dist/styles/popup-menu.css +370 -0
  618. package/dist/styles/resizable-region.css +438 -4
  619. package/dist/styles/row.css +114 -0
  620. package/dist/styles/segmented-control.css +36 -9
  621. package/dist/styles/select.css +338 -21
  622. package/dist/styles/skeleton.css +64 -3
  623. package/dist/styles/spacer.css +11 -0
  624. package/dist/styles/split-button.css +95 -0
  625. package/dist/styles/split-view.css +114 -3
  626. package/dist/styles/state-banner.css +146 -22
  627. package/dist/styles/styles.css +24 -1
  628. package/dist/styles/summary-row.css +161 -0
  629. package/dist/styles/sunken-panel.css +31 -0
  630. package/dist/styles/surface-scaffold.css +589 -0
  631. package/dist/styles/tab-bar.css +161 -9
  632. package/dist/styles/tab-navigator.css +443 -0
  633. package/dist/styles/text.css +220 -0
  634. package/dist/styles/token-search-field.css +202 -59
  635. package/dist/styles/toolbar-control-group.css +1022 -36
  636. package/dist/styles/toolbar-text.css +236 -7
  637. package/dist/styles/toolbar.css +402 -11
  638. package/dist/styles/value-table.css +115 -7
  639. package/dist/styles/webawesome.css +420 -17
  640. package/dist/styles/workbench.css +999 -7
  641. package/dist/summary-row.d.ts +56 -0
  642. package/dist/summary-row.js +4 -0
  643. package/dist/summary-row.js.map +1 -0
  644. package/dist/sunken-panel.d.ts +38 -0
  645. package/dist/sunken-panel.js +4 -0
  646. package/dist/sunken-panel.js.map +1 -0
  647. package/dist/surface-scaffold-register.d.ts +10 -0
  648. package/dist/surface-scaffold-register.js +254 -0
  649. package/dist/surface-scaffold-register.js.map +1 -0
  650. package/dist/surface-scaffold.d.ts +203 -0
  651. package/dist/surface-scaffold.js +4 -0
  652. package/dist/surface-scaffold.js.map +1 -0
  653. package/dist/tab-bar.d.ts +33 -7
  654. package/dist/tab-bar.js +1 -1
  655. package/dist/tab-navigator.d.ts +154 -0
  656. package/dist/tab-navigator.js +131 -0
  657. package/dist/tab-navigator.js.map +1 -0
  658. package/dist/text.d.ts +98 -0
  659. package/dist/text.js +3 -0
  660. package/dist/text.js.map +1 -0
  661. package/dist/token-search-field.d.ts +3 -43
  662. package/dist/token-search-field.js +2 -1
  663. package/dist/token-search-model-aYR0YAei.d.ts +184 -0
  664. package/dist/token-search-model.d.ts +3 -0
  665. package/dist/token-search-model.js +3 -0
  666. package/dist/token-search-model.js.map +1 -0
  667. package/dist/toolbar-control-group.d.ts +107 -7
  668. package/dist/toolbar-control-group.js +3 -1
  669. package/dist/toolbar-text.d.ts +63 -9
  670. package/dist/toolbar-text.js +2 -1
  671. package/dist/toolbar.d.ts +72 -7
  672. package/dist/toolbar.js +1 -1
  673. package/dist/types-CVgIwSdq.d.ts +189 -0
  674. package/dist/value-table.d.ts +30 -4
  675. package/dist/value-table.js +2 -1
  676. package/dist/webawesome.d.ts +8 -1
  677. package/dist/wire-catalog.d.ts +111 -5
  678. package/dist/wire-catalog.js +302 -14
  679. package/dist/wire-catalog.js.map +1 -1
  680. package/dist/wire-comboboxes.d.ts +26 -0
  681. package/dist/wire-comboboxes.js +3 -0
  682. package/dist/wire-comboboxes.js.map +1 -0
  683. package/dist/wire-composers.d.ts +16 -0
  684. package/dist/wire-composers.js +3 -0
  685. package/dist/wire-composers.js.map +1 -0
  686. package/dist/wire-content-items.d.ts +11 -0
  687. package/dist/wire-content-items.js +139 -0
  688. package/dist/wire-content-items.js.map +1 -0
  689. package/dist/wire-corner-status.d.ts +11 -0
  690. package/dist/wire-corner-status.js +3 -0
  691. package/dist/wire-corner-status.js.map +1 -0
  692. package/dist/wire-file-pickers.d.ts +26 -0
  693. package/dist/wire-file-pickers.js +3 -0
  694. package/dist/wire-file-pickers.js.map +1 -0
  695. package/dist/wire-list-focus-scroll.d.ts +16 -0
  696. package/dist/wire-list-focus-scroll.js +3 -0
  697. package/dist/wire-list-focus-scroll.js.map +1 -0
  698. package/dist/wire-list-reorder.d.ts +41 -0
  699. package/dist/wire-list-reorder.js +3 -0
  700. package/dist/wire-list-reorder.js.map +1 -0
  701. package/dist/wire-nav-stack.d.ts +4 -1
  702. package/dist/wire-nav-stack.js +352 -15
  703. package/dist/wire-nav-stack.js.map +1 -1
  704. package/dist/wire-overlay-sheets.d.ts +20 -0
  705. package/dist/wire-overlay-sheets.js +4 -0
  706. package/dist/wire-overlay-sheets.js.map +1 -0
  707. package/dist/wire-resizable-regions.d.ts +2 -1
  708. package/dist/wire-resizable-regions.js +2 -1
  709. package/dist/wire-scroll-dividers.d.ts +87 -0
  710. package/dist/wire-scroll-dividers.js +3 -0
  711. package/dist/wire-scroll-dividers.js.map +1 -0
  712. package/dist/wire-sidebar.d.ts +24 -4
  713. package/dist/wire-sidebar.js +159 -45
  714. package/dist/wire-sidebar.js.map +1 -1
  715. package/dist/wire-tab-bars.d.ts +6 -2
  716. package/dist/wire-tab-bars.js +1 -1
  717. package/dist/wire-tab-navigator.d.ts +13 -0
  718. package/dist/wire-tab-navigator.js +153 -0
  719. package/dist/wire-tab-navigator.js.map +1 -0
  720. package/dist/wire-token-search-fields.d.ts +28 -10
  721. package/dist/wire-token-search-fields.js +2 -1
  722. package/dist/wire-toolbar-visibility.d.ts +13 -0
  723. package/dist/wire-toolbar-visibility.js +3 -0
  724. package/dist/wire-toolbar-visibility.js.map +1 -0
  725. package/dist/wire-workbench.d.ts +116 -0
  726. package/dist/wire-workbench.js +6 -0
  727. package/dist/wire-workbench.js.map +1 -0
  728. package/dist/workbench.d.ts +253 -10
  729. package/dist/workbench.js +21 -15
  730. package/dist/workbench.js.map +1 -1
  731. package/docs/accessibility.md +675 -33
  732. package/docs/anchored-surface.md +101 -0
  733. package/docs/app-layouts.md +172 -10
  734. package/docs/apple-hig.md +2 -0
  735. package/docs/backdrop-image.md +128 -0
  736. package/docs/catalog.md +565 -63
  737. package/docs/collapsible-panel.md +308 -25
  738. package/docs/component-contract.md +818 -53
  739. package/docs/component-integration.md +75 -0
  740. package/docs/component-selection.md +971 -99
  741. package/docs/composer.md +143 -0
  742. package/docs/design/templates/choice-chips/color-palette-dark.svg +1 -0
  743. package/docs/design/templates/choice-chips/color-palette.svg +1 -0
  744. package/docs/design/templates/choice-chips/compact-icons-dark.svg +1 -0
  745. package/docs/design/templates/choice-chips/compact-icons.svg +1 -0
  746. package/docs/design/templates/choice-chips/multiple-dark.svg +1 -0
  747. package/docs/design/templates/choice-chips/multiple.svg +1 -0
  748. package/docs/design/templates/choice-chips-dark.svg +1 -0
  749. package/docs/design/templates/choice-chips.svg +1 -0
  750. package/docs/design/templates/composer/chat-dark.svg +1 -0
  751. package/docs/design/templates/composer/chat.svg +1 -0
  752. package/docs/design/templates/composer/prompt-dark.svg +1 -0
  753. package/docs/design/templates/composer/prompt.svg +1 -0
  754. package/docs/design/templates/composer-dark.svg +1 -0
  755. package/docs/design/templates/composer.svg +1 -0
  756. package/docs/design/templates/empty-state/filtered-dark.svg +1 -0
  757. package/docs/design/templates/empty-state/filtered.svg +1 -0
  758. package/docs/design/templates/empty-state/with-action-dark.svg +1 -0
  759. package/docs/design/templates/empty-state/with-action.svg +1 -0
  760. package/docs/design/templates/empty-state-dark.svg +1 -0
  761. package/docs/design/templates/empty-state.svg +1 -0
  762. package/docs/design/templates/list/compact-dark.svg +1 -0
  763. package/docs/design/templates/list/compact.svg +1 -0
  764. package/docs/design/templates/list/stack-dark.svg +1 -0
  765. package/docs/design/templates/list/stack.svg +1 -0
  766. package/docs/design/templates/list-action-row/default-dark.svg +1 -0
  767. package/docs/design/templates/list-action-row/default.svg +1 -0
  768. package/docs/design/templates/list-action-row/icon-tile-dark.svg +1 -0
  769. package/docs/design/templates/list-action-row/icon-tile.svg +1 -0
  770. package/docs/design/templates/list-action-row/selected-dark.svg +1 -0
  771. package/docs/design/templates/list-action-row/selected.svg +1 -0
  772. package/docs/design/templates/list-action-row/trailing-menu-dark.svg +1 -0
  773. package/docs/design/templates/list-action-row/trailing-menu.svg +1 -0
  774. package/docs/design/templates/list-action-row-dark.svg +1 -0
  775. package/docs/design/templates/list-action-row.svg +1 -0
  776. package/docs/design/templates/list-dark.svg +1 -0
  777. package/docs/design/templates/list-header/action-dark.svg +1 -0
  778. package/docs/design/templates/list-header/action.svg +1 -0
  779. package/docs/design/templates/list-header/count-dark.svg +1 -0
  780. package/docs/design/templates/list-header/count.svg +1 -0
  781. package/docs/design/templates/list-header/inline-action-dark.svg +1 -0
  782. package/docs/design/templates/list-header/inline-action.svg +1 -0
  783. package/docs/design/templates/list-header/size-l-dark.svg +1 -0
  784. package/docs/design/templates/list-header/size-l.svg +1 -0
  785. package/docs/design/templates/list-header/size-m-dark.svg +1 -0
  786. package/docs/design/templates/list-header/size-m.svg +1 -0
  787. package/docs/design/templates/list-header/size-xl-dark.svg +1 -0
  788. package/docs/design/templates/list-header/size-xl.svg +1 -0
  789. package/docs/design/templates/list-header/size-xs-dark.svg +1 -0
  790. package/docs/design/templates/list-header/size-xs.svg +1 -0
  791. package/docs/design/templates/list-header/toggle-collapsed-dark.svg +1 -0
  792. package/docs/design/templates/list-header/toggle-collapsed.svg +1 -0
  793. package/docs/design/templates/list-header/toggle-expanded-dark.svg +1 -0
  794. package/docs/design/templates/list-header/toggle-expanded.svg +1 -0
  795. package/docs/design/templates/list-header-dark.svg +1 -0
  796. package/docs/design/templates/list-header.svg +1 -0
  797. package/docs/design/templates/list-item/default-dark.svg +1 -0
  798. package/docs/design/templates/list-item/default.svg +1 -0
  799. package/docs/design/templates/list-item/icon-tile-dark.svg +1 -0
  800. package/docs/design/templates/list-item/icon-tile.svg +1 -0
  801. package/docs/design/templates/list-item/multiline-dark.svg +1 -0
  802. package/docs/design/templates/list-item/multiline.svg +1 -0
  803. package/docs/design/templates/list-item/selected-dark.svg +1 -0
  804. package/docs/design/templates/list-item/selected.svg +1 -0
  805. package/docs/design/templates/list-item/trailing-dark.svg +1 -0
  806. package/docs/design/templates/list-item/trailing.svg +1 -0
  807. package/docs/design/templates/list-item-dark.svg +1 -0
  808. package/docs/design/templates/list-item.svg +1 -0
  809. package/docs/design/templates/list.svg +1 -0
  810. package/docs/design/templates/segmented-control/equal-dark.svg +1 -0
  811. package/docs/design/templates/segmented-control/equal.svg +1 -0
  812. package/docs/design/templates/segmented-control/pill-small-dark.svg +1 -0
  813. package/docs/design/templates/segmented-control/pill-small.svg +1 -0
  814. package/docs/design/templates/segmented-control-dark.svg +1 -0
  815. package/docs/design/templates/segmented-control.svg +1 -0
  816. package/docs/design/templates/skeleton/avatar-dark.svg +1 -0
  817. package/docs/design/templates/skeleton/avatar.svg +1 -0
  818. package/docs/design/templates/skeleton/block-dark.svg +1 -0
  819. package/docs/design/templates/skeleton/block.svg +1 -0
  820. package/docs/design/templates/skeleton/lines-dark.svg +1 -0
  821. package/docs/design/templates/skeleton/lines.svg +1 -0
  822. package/docs/design/templates/skeleton-dark.svg +1 -0
  823. package/docs/design/templates/skeleton.svg +1 -0
  824. package/docs/design/templates/state-banner/danger-dark.svg +1 -0
  825. package/docs/design/templates/state-banner/danger.svg +1 -0
  826. package/docs/design/templates/state-banner/info-badge-dark.svg +1 -0
  827. package/docs/design/templates/state-banner/info-badge.svg +1 -0
  828. package/docs/design/templates/state-banner/info-dark.svg +1 -0
  829. package/docs/design/templates/state-banner/info.svg +1 -0
  830. package/docs/design/templates/state-banner/strip-dark.svg +1 -0
  831. package/docs/design/templates/state-banner/strip.svg +1 -0
  832. package/docs/design/templates/state-banner/success-dark.svg +1 -0
  833. package/docs/design/templates/state-banner/success.svg +1 -0
  834. package/docs/design/templates/state-banner/warning-dark.svg +1 -0
  835. package/docs/design/templates/state-banner/warning.svg +1 -0
  836. package/docs/design/templates/state-banner-dark.svg +1 -0
  837. package/docs/design/templates/state-banner.svg +1 -0
  838. package/docs/design/templates/tab-bar/workspace-tabs-dark.svg +1 -0
  839. package/docs/design/templates/tab-bar/workspace-tabs.svg +1 -0
  840. package/docs/design/templates/tab-bar-dark.svg +1 -0
  841. package/docs/design/templates/tab-bar.svg +1 -0
  842. package/docs/design/templates/token-search-field/empty-dark.svg +1 -0
  843. package/docs/design/templates/token-search-field/empty.svg +1 -0
  844. package/docs/design/templates/token-search-field/tokens-dark.svg +1 -0
  845. package/docs/design/templates/token-search-field/tokens.svg +1 -0
  846. package/docs/design/templates/token-search-field-dark.svg +1 -0
  847. package/docs/design/templates/token-search-field.svg +1 -0
  848. package/docs/design/templates/toolbar/title-and-actions-dark.svg +1 -0
  849. package/docs/design/templates/toolbar/title-and-actions.svg +1 -0
  850. package/docs/design/templates/toolbar/width-visibility-320-dark.svg +1 -0
  851. package/docs/design/templates/toolbar/width-visibility-320.svg +1 -0
  852. package/docs/design/templates/toolbar/width-visibility-600-dark.svg +1 -0
  853. package/docs/design/templates/toolbar/width-visibility-600.svg +1 -0
  854. package/docs/design/templates/toolbar-control-group/borderless-single-dark.svg +1 -1
  855. package/docs/design/templates/toolbar-control-group/borderless-single.svg +1 -1
  856. package/docs/design/templates/toolbar-control-group/glass-dark.svg +1 -0
  857. package/docs/design/templates/toolbar-control-group/glass.svg +1 -0
  858. package/docs/design/templates/toolbar-control-group/icon-buttons-dark.svg +1 -1
  859. package/docs/design/templates/toolbar-control-group/icon-buttons.svg +1 -1
  860. package/docs/design/templates/toolbar-control-group/icon-tile-brand-dark.svg +1 -0
  861. package/docs/design/templates/toolbar-control-group/icon-tile-brand.svg +1 -0
  862. package/docs/design/templates/toolbar-control-group/icon-tile-danger-dark.svg +1 -0
  863. package/docs/design/templates/toolbar-control-group/icon-tile-danger.svg +1 -0
  864. package/docs/design/templates/toolbar-control-group/icon-tile-neutral-dark.svg +1 -0
  865. package/docs/design/templates/toolbar-control-group/icon-tile-neutral.svg +1 -0
  866. package/docs/design/templates/toolbar-control-group/icon-tile-success-dark.svg +1 -0
  867. package/docs/design/templates/toolbar-control-group/icon-tile-success.svg +1 -0
  868. package/docs/design/templates/toolbar-control-group/icon-tile-warning-dark.svg +1 -0
  869. package/docs/design/templates/toolbar-control-group/icon-tile-warning.svg +1 -0
  870. package/docs/design/templates/toolbar-control-group/push-buttons-dark.svg +1 -1
  871. package/docs/design/templates/toolbar-control-group/push-buttons.svg +1 -1
  872. package/docs/design/templates/toolbar-control-group/with-text-dark.svg +1 -1
  873. package/docs/design/templates/toolbar-control-group/with-text.svg +1 -1
  874. package/docs/design/templates/toolbar-control-group-dark.svg +1 -11
  875. package/docs/design/templates/toolbar-control-group.svg +1 -11
  876. package/docs/design/templates/toolbar-dark.svg +1 -0
  877. package/docs/design/templates/toolbar-text/dark-tone-dark.svg +1 -0
  878. package/docs/design/templates/toolbar-text/dark-tone.svg +1 -0
  879. package/docs/design/templates/toolbar-text/default-dark.svg +1 -0
  880. package/docs/design/templates/toolbar-text/default.svg +1 -0
  881. package/docs/design/templates/toolbar-text/large-dark.svg +1 -0
  882. package/docs/design/templates/toolbar-text/large.svg +1 -0
  883. package/docs/design/templates/toolbar-text/small-dark.svg +1 -0
  884. package/docs/design/templates/toolbar-text/small.svg +1 -0
  885. package/docs/design/templates/toolbar-text-dark.svg +1 -0
  886. package/docs/design/templates/toolbar-text.svg +1 -0
  887. package/docs/design/templates/toolbar.svg +1 -0
  888. package/docs/design/templates/value-table/details-dark.svg +1 -0
  889. package/docs/design/templates/value-table/details.svg +1 -0
  890. package/docs/design/templates/value-table-dark.svg +1 -0
  891. package/docs/design/templates/value-table.svg +1 -0
  892. package/docs/design/templates.md +83 -18
  893. package/docs/design-philosophy.md +65 -20
  894. package/docs/device-class.md +10 -9
  895. package/docs/document-baseline.md +93 -0
  896. package/docs/examples/application-ui-profile.json +60 -0
  897. package/docs/examples/command-palette-adapter.tsx +69 -17
  898. package/docs/examples/component-catalog-extension.json +52 -0
  899. package/docs/examples/component-composition-extension.json +80 -0
  900. package/docs/layout.md +926 -53
  901. package/docs/manual-test-plan.md +29 -0
  902. package/docs/nav-stack.md +323 -14
  903. package/docs/recipes.md +153 -73
  904. package/docs/split-view.md +96 -7
  905. package/docs/sunken-panel.md +106 -0
  906. package/docs/surface-scaffold.md +416 -0
  907. package/docs/tab-navigator.md +291 -0
  908. package/docs/type-contracts.md +137 -0
  909. package/docs/ui-analyzer.md +406 -0
  910. package/docs/ui-doctor.md +281 -0
  911. package/docs/ui-evaluator.md +139 -0
  912. package/docs/ux-demo.md +58 -17
  913. package/docs/webawesome-theme.md +215 -16
  914. package/docs/workbench.md +627 -12
  915. package/docs/writing.md +152 -0
  916. package/doctor/cli.mjs +120 -0
  917. package/doctor/component-style-checks.mjs +457 -0
  918. package/doctor/config.schema.json +94 -0
  919. package/doctor/copy-capitalization-checks.mjs +591 -0
  920. package/doctor/eslint-diagnostics.d.mts +24 -0
  921. package/doctor/eslint-diagnostics.mjs +24 -0
  922. package/doctor/index.d.mts +122 -0
  923. package/doctor/index.mjs +1424 -0
  924. package/doctor/report.schema.json +118 -0
  925. package/evaluator/cli.mjs +89 -0
  926. package/evaluator/index.d.mts +90 -0
  927. package/evaluator/index.mjs +1203 -0
  928. package/evaluator/report.schema.json +152 -0
  929. package/llms.txt +808 -50
  930. package/package.json +357 -27
  931. package/scripts/component-catalog-extension-validation.mjs +28 -0
  932. package/traversal-exclusions.mjs +86 -0
  933. package/ux-demo/recipes/app-shell.tsx +204 -16
  934. package/ux-demo/recipes/collapsible-sidebar.tsx +206 -45
  935. package/ux-demo/recipes/compact-toolbar.tsx +135 -14
  936. package/ux-demo/recipes/composer-form.tsx +133 -21
  937. package/ux-demo/recipes/list-detail-dialog.tsx +255 -14
  938. package/ux-demo/recipes/list-workspace-states.tsx +183 -11
  939. package/ux-demo/recipes/loaders.ts +11 -3
  940. package/ux-demo/recipes/loading-inspector.tsx +162 -39
  941. package/ux-demo/recipes/media-detail.tsx +272 -0
  942. package/ux-demo/recipes/mount-recipe.ts +26 -10
  943. package/ux-demo/recipes/navigation-sidebar.tsx +137 -11
  944. package/ux-demo/recipes/navigation-stack.tsx +79 -24
  945. package/ux-demo/recipes/types.ts +17 -2
  946. package/ux-demo/recipes/workspace-header.tsx +86 -5
  947. package/vite-ux-review.d.mts +83 -0
  948. package/vite-ux-review.mjs +120 -0
  949. package/dist/browser/panel-header.js +0 -7
  950. package/dist/chunk-2Z5TWHKQ.js +0 -34
  951. package/dist/chunk-2Z5TWHKQ.js.map +0 -1
  952. package/dist/chunk-37T3VNIZ.js +0 -19
  953. package/dist/chunk-37T3VNIZ.js.map +0 -1
  954. package/dist/chunk-55DATV3A.js +0 -10
  955. package/dist/chunk-55DATV3A.js.map +0 -1
  956. package/dist/chunk-56RJXPHG.js.map +0 -1
  957. package/dist/chunk-7BR3DO2A.js +0 -31
  958. package/dist/chunk-7BR3DO2A.js.map +0 -1
  959. package/dist/chunk-7JB7VPRI.js +0 -34
  960. package/dist/chunk-7JB7VPRI.js.map +0 -1
  961. package/dist/chunk-7LDCTU7D.js +0 -134
  962. package/dist/chunk-7LDCTU7D.js.map +0 -1
  963. package/dist/chunk-AQNKJRFH.js +0 -79
  964. package/dist/chunk-AQNKJRFH.js.map +0 -1
  965. package/dist/chunk-AVZHJN6C.js +0 -14
  966. package/dist/chunk-AVZHJN6C.js.map +0 -1
  967. package/dist/chunk-B24C4A6T.js +0 -22
  968. package/dist/chunk-B24C4A6T.js.map +0 -1
  969. package/dist/chunk-BLK3UEEI.js +0 -23
  970. package/dist/chunk-BLK3UEEI.js.map +0 -1
  971. package/dist/chunk-CVZYNJJ5.js +0 -265
  972. package/dist/chunk-CVZYNJJ5.js.map +0 -1
  973. package/dist/chunk-DAFFDO33.js +0 -14
  974. package/dist/chunk-DAFFDO33.js.map +0 -1
  975. package/dist/chunk-I7INRJO4.js +0 -17
  976. package/dist/chunk-I7INRJO4.js.map +0 -1
  977. package/dist/chunk-L4OKFDJY.js +0 -24
  978. package/dist/chunk-L4OKFDJY.js.map +0 -1
  979. package/dist/chunk-LC3YSAZC.js +0 -39
  980. package/dist/chunk-LC3YSAZC.js.map +0 -1
  981. package/dist/chunk-M5JRI6MN.js +0 -27
  982. package/dist/chunk-M5JRI6MN.js.map +0 -1
  983. package/dist/chunk-MFKMHK5W.js +0 -10
  984. package/dist/chunk-MFKMHK5W.js.map +0 -1
  985. package/dist/chunk-RUNWEPR4.js +0 -10
  986. package/dist/chunk-RUNWEPR4.js.map +0 -1
  987. package/dist/chunk-W2FK7ZNY.js +0 -26
  988. package/dist/chunk-W2FK7ZNY.js.map +0 -1
  989. package/dist/chunk-W5EQ3HYQ.js +0 -42
  990. package/dist/chunk-W5EQ3HYQ.js.map +0 -1
  991. package/dist/chunk-WVPYVDXY.js +0 -15
  992. package/dist/chunk-WVPYVDXY.js.map +0 -1
  993. package/dist/chunk-XXMOARTH.js +0 -229
  994. package/dist/chunk-XXMOARTH.js.map +0 -1
  995. package/dist/chunk-Y5MRDTLC.js +0 -20
  996. package/dist/chunk-Y5MRDTLC.js.map +0 -1
  997. package/dist/chunk-YGN7OMLT.js.map +0 -1
  998. package/dist/panel-header.d.ts +0 -36
  999. package/dist/panel-header.js +0 -7
  1000. package/dist/panel-header.js.map +0 -1
  1001. package/dist/styles/panel-header.css +0 -64
  1002. package/dist/styles/tab-scaffold.css +0 -84
  1003. package/dist/tab-scaffold.d.ts +0 -30
  1004. package/dist/tab-scaffold.js +0 -16
  1005. package/dist/tab-scaffold.js.map +0 -1
  1006. package/dist/wire-tab-scaffold.d.ts +0 -11
  1007. package/dist/wire-tab-scaffold.js +0 -16
  1008. package/dist/wire-tab-scaffold.js.map +0 -1
  1009. package/docs/design/templates/panel-header/icon-actions-dark.svg +0 -1
  1010. package/docs/design/templates/panel-header/icon-actions.svg +0 -1
  1011. package/docs/design/templates/panel-header/icon-summary-actions-dark.svg +0 -1
  1012. package/docs/design/templates/panel-header/icon-summary-actions.svg +0 -1
  1013. package/docs/design/templates/panel-header/no-icon-dark.svg +0 -1
  1014. package/docs/design/templates/panel-header/no-icon.svg +0 -1
  1015. package/docs/design/templates/panel-header/page-heading-dark.svg +0 -1
  1016. package/docs/design/templates/panel-header/page-heading.svg +0 -1
  1017. package/docs/design/templates/panel-header/title-only-dark.svg +0 -1
  1018. package/docs/design/templates/panel-header/title-only.svg +0 -1
  1019. package/docs/design/templates/panel-header-dark.svg +0 -13
  1020. package/docs/design/templates/panel-header.svg +0 -13
  1021. package/docs/tab-scaffold.md +0 -41
  1022. package/ux-demo/recipes/recipes.css +0 -448
@@ -10,18 +10,19 @@
10
10
  "Segoe UI",
11
11
  sans-serif
12
12
  );
13
- --kui-font-mono: var(
14
- --wa-font-family-code,
15
- ui-monospace,
16
- SFMono-Regular,
17
- Menlo,
18
- monospace
19
- );
13
+ /* Kerf owns the code stack rather than deferring to Web Awesome's
14
+ `ui-monospace, monospace`: Chromium does not recognize `ui-monospace`, and
15
+ the generic `monospace` ends any stack, so named fallbacks after it would
16
+ never apply. Kerf's Web Awesome theme points `--wa-font-family-code` here. */
17
+ --kui-font-mono:
18
+ ui-monospace, SFMono-Regular, "SF Mono", Menlo, Consolas, "Liberation Mono",
19
+ monospace;
20
20
  --kui-font-2xs: var(--wa-font-size-2xs, 11px);
21
21
  --kui-font-xs: var(--wa-font-size-xs, 12px);
22
22
  --kui-font-s: var(--wa-font-size-s, 14px);
23
23
  --kui-font-m: var(--wa-font-size-m, 16px);
24
24
  --kui-font-l: var(--wa-font-size-l, 20px);
25
+ --kui-font-xl: var(--wa-font-size-xl, 25px);
25
26
  --kui-font-2xl: var(--wa-font-size-2xl, 32px);
26
27
  --kui-font-weight-semibold: var(--wa-font-weight-semibold, 650);
27
28
  /* Official spacing scale (see docs/layout.md "Spacing scale"). Five canonical
@@ -58,30 +59,149 @@
58
59
  --kui-layout-content-gap: var(--kui-space-l);
59
60
  --kui-layout-control-gap: var(--kui-space-xs);
60
61
  --kui-layout-metadata-gap: var(--kui-space-2xs);
62
+ --kui-layout-highlight-inset: 2px;
61
63
  --kui-layout-rounded-radius: calc(1px + 0.6875rem);
62
64
  --kui-layout-pill-radius: calc(1px + 1.3125rem);
63
65
  --kui-toolbar-group-inner-size: 2.625rem;
64
66
  --kui-toolbar-group-size: calc(2px + var(--kui-toolbar-group-inner-size));
65
67
  --kui-toolbar-gap: var(--kui-layout-item-gap);
68
+ /* Device safe-area insets, in logical terms. Panes and layouts read these
69
+ through the inherited `--kui-edge-inset-*` edge context: surfaces paint
70
+ through the unsafe area while their content gains compensating padding on
71
+ the edges it still touches (docs/app-layouts.md "Safe areas"). Override
72
+ them to simulate a device or to reserve space for app-owned chrome. */
73
+ --kui-safe-area-block-start: env(safe-area-inset-top, 0px);
74
+ --kui-safe-area-block-end: env(safe-area-inset-bottom, 0px);
75
+ --kui-safe-area-inline-start: env(safe-area-inset-left, 0px);
76
+ --kui-safe-area-inline-end: env(safe-area-inset-right, 0px);
66
77
  --kui-radius-s: var(--wa-border-radius-s, 0.1875rem);
67
78
  --kui-radius-m: var(--wa-border-radius-m, 0.375rem);
68
79
  --kui-radius-l: var(--wa-border-radius-l, 0.75rem);
69
80
  --kui-radius-circle: var(--wa-border-radius-circle, 50%);
70
81
  --kui-radius-pill: var(--wa-border-radius-pill, 999px);
71
82
  --kui-disclosure-icon-scale: 0.5;
83
+ /* Private popup-choice contract. A Select's listbox and a PopupMenu's menu
84
+ both read these, so a value list and a command menu draw one surface
85
+ inset, one row geometry (Web Awesome's option metrics plus Kerf's label
86
+ rhythm), one reserved check column, one current-row fill, one group-title
87
+ style, and one disclosure-caret motion. The em values resolve against the
88
+ row that reads them. */
89
+ --_kui-popup-inset: 0.25rem;
90
+ --_kui-popup-row-gap: 0.125rem;
91
+ --_kui-popup-row-padding-block: 0.5em;
92
+ --_kui-popup-row-padding-inline-start: 0.25em;
93
+ --_kui-popup-row-padding-inline-end: 1em;
94
+ --_kui-popup-row-check-width: calc(
95
+ 2 * var(--wa-font-size-smaller, round(calc(1em / 1.125), 1px))
96
+ );
97
+ --_kui-popup-row-icon-size: 1rem;
98
+ --_kui-popup-row-icon-gap: 0.5rem;
99
+ --_kui-popup-row-label-padding-block: 0.35rem;
100
+ --_kui-popup-row-label-line-height: 1.25;
101
+ --_kui-popup-group-title-padding: 0.2rem 0.75rem 0.3rem;
102
+ --_kui-popup-group-title-font-weight: 750;
103
+ --_kui-popup-caret-open-rotation: -180deg;
104
+ /* The theme's brand text color as the root resolves it. A scoped tint
105
+ clamps its lightness for links and brand text (below); it lives outside
106
+ the palette block, so a tint inherits the root's brand rather than
107
+ re-deriving from itself. */
108
+ --_kui-tint-brand-source: var(--kui-color-brand-on-quiet);
109
+ --_kui-popup-caret-transition: rotate var(--wa-transition-slow, 0.3s)
110
+ var(--wa-transition-easing, ease);
111
+ }
112
+
113
+ /* The palette. A scoped tint ([data-kui-tint], below) re-declares this whole
114
+ block on its element: an unregistered custom property substitutes its var()
115
+ references where it is declared, so a derived token (the chrome material, a
116
+ quiet fill mixed into the surface, a popup's current row) resolved at the
117
+ root would keep the root's colors inside the tint. Only color tokens live
118
+ here, so a tint never resets an app's spacing or geometry override. */
119
+ :root,
120
+ [data-kui-tint] {
121
+ --_kui-popup-row-current-background: var(--kui-color-brand-fill-normal);
122
+ /* Current row text sits on the brand fill; the darker on-fill accent clears
123
+ WCAG AA there (brand-on-quiet is 4.26:1 over that fill). */
124
+ --_kui-popup-row-current-color: var(--kui-color-brand-on-fill);
125
+ /* A capped, scrolling popup shows that it scrolls: a soft shadow along an
126
+ edge while more choices lie beyond it. Covers painted in the surface
127
+ color scroll with the content (`local`) and hide each shadow (`scroll`,
128
+ fixed to the box) only while the list rests at that edge, so a popup
129
+ whose choices all fit, or one scrolled to its end, draws no cue there.
130
+ CSS alone, so it works in every engine with no listeners, and it leaves
131
+ the popup's own border, radius, and drop shadow untouched. */
132
+ --_kui-popup-scroll-cue-color: light-dark(rgb(0 0 0 / 0.2), rgb(0 0 0 / 0.9));
133
+ --_kui-popup-scroll-cue:
134
+ linear-gradient(var(--kui-color-surface-raised) 30%, transparent) center
135
+ top / 100% 1.5rem no-repeat local,
136
+ linear-gradient(transparent, var(--kui-color-surface-raised) 70%) center
137
+ bottom / 100% 1.5rem no-repeat local,
138
+ radial-gradient(
139
+ farthest-side at 50% 0,
140
+ var(--_kui-popup-scroll-cue-color),
141
+ transparent
142
+ )
143
+ center top / 100% 0.75rem no-repeat scroll,
144
+ radial-gradient(
145
+ farthest-side at 50% 100%,
146
+ var(--_kui-popup-scroll-cue-color),
147
+ transparent
148
+ )
149
+ center bottom / 100% 0.75rem no-repeat scroll,
150
+ var(--kui-color-surface-raised);
72
151
  /* macOS Tahoe light semantics used by Hot Sheet 2, with a compatible dark extension. */
152
+ /* Every --kui-color-* token (and the focus-ring color) that reads a --wa-*
153
+ token falls back to the value src/webawesome.css assigns to that token,
154
+ including its light-dark() pair, so a page without the Web Awesome theme
155
+ resolves the same palette in both color schemes. A single light color
156
+ here would render, e.g., dark red danger text on a dark surface, and a
157
+ fallback that points at a different token (surface-raised at the surface,
158
+ text-link at the brand fill) silently diverges from the theme.
159
+ tests/browser/tone-contrast.spec.ts pins the parity for every token. */
73
160
  --kui-color-surface: var(
74
161
  --wa-color-surface-default,
75
162
  light-dark(#fff, #1c1c1e)
76
163
  );
77
164
  --kui-color-surface-raised: var(
78
165
  --wa-color-surface-raised,
79
- var(--kui-color-surface)
166
+ light-dark(#fff, #2c2c2e)
80
167
  );
81
168
  --kui-color-surface-lowered: var(
82
169
  --wa-color-surface-lowered,
83
- light-dark(#f2f2f7, #111113)
170
+ light-dark(
171
+ rgb(0 0 98.076923 / 0.05098),
172
+ rgb(228.157895 228.157895 255 / 0.07451)
173
+ )
84
174
  );
175
+ /* The sunken surface: a fine monochrome grain over the lowered color. The
176
+ tile is generated once per page by the first sunken surface that renders
177
+ (ensureSunkenTexture); set --kui-sunken-texture to none at :root for a
178
+ flat lowered surface, or to another image. */
179
+ --kui-sunken-texture: var(--_kui-sunken-texture-generated, none);
180
+ --kui-sunken-surface:
181
+ var(--kui-sunken-texture) 0 0 / 100px 100px repeat,
182
+ var(--kui-color-surface-lowered);
183
+ /* Translucent chrome material: a bar laid over scrolling content (a Pane's
184
+ overlay header) lets the content show through, blurred, beneath it.
185
+ 80% of the surface keeps --kui-color-text at AA over any content
186
+ (about 10:1 light and 8:1 dark against a black or white backdrop). It
187
+ resolves to the opaque surface under prefers-reduced-transparency or
188
+ prefers-contrast: more, and where backdrop-filter is unsupported
189
+ (below). */
190
+ --kui-chrome-material: color-mix(
191
+ in srgb,
192
+ var(--kui-color-surface) 80%,
193
+ transparent
194
+ );
195
+ /* The same material over a raised surface (a dialog panel's floating
196
+ header): 80% of surface-raised keeps --kui-color-text at AA over any
197
+ content (about 10:1 light and 6.7:1 dark against a black or white
198
+ backdrop), with the same opaque fallbacks. */
199
+ --kui-chrome-material-raised: color-mix(
200
+ in srgb,
201
+ var(--kui-color-surface-raised) 80%,
202
+ transparent
203
+ );
204
+ --kui-chrome-material-filter: blur(20px) saturate(180%);
85
205
  --kui-color-text: var(--wa-color-text-normal, light-dark(#1d1d1f, #f5f5f7));
86
206
  --kui-color-text-quiet: var(
87
207
  --wa-color-text-quiet,
@@ -89,7 +209,7 @@
89
209
  );
90
210
  --kui-color-text-link: var(
91
211
  --wa-color-text-link,
92
- var(--kui-color-brand-fill-loud)
212
+ var(--kui-color-brand-on-quiet)
93
213
  );
94
214
 
95
215
  --kui-color-neutral-fill-quiet: var(
@@ -98,7 +218,7 @@
98
218
  );
99
219
  --kui-color-neutral-fill-normal: var(
100
220
  --wa-color-neutral-fill-normal,
101
- light-dark(#e5e5ea, #3a3a3c)
221
+ light-dark(rgb(0 0 49.038462 / 0.101961), rgb(253 253 255 / 0.133333))
102
222
  );
103
223
  --kui-color-neutral-fill-loud: var(
104
224
  --wa-color-neutral-fill-loud,
@@ -106,19 +226,19 @@
106
226
  );
107
227
  --kui-color-neutral-border-quiet: var(
108
228
  --wa-color-neutral-border-quiet,
109
- var(--kui-color-neutral-fill-normal)
229
+ light-dark(rgb(0 0 49.038462 / 0.101961), rgb(253 253 255 / 0.124444))
110
230
  );
111
231
  --kui-color-neutral-border-normal: var(
112
232
  --wa-color-neutral-border-normal,
113
- light-dark(#d1d1d6, #48484a)
233
+ light-dark(rgb(0 0 27.717391 / 0.180392), rgb(253 253 255 / 0.195556))
114
234
  );
115
235
  --kui-color-neutral-border-loud: var(
116
236
  --wa-color-neutral-border-loud,
117
- light-dark(#aeaeb2, #636366)
237
+ light-dark(rgb(0 0 12.592593 / 0.317647), rgb(249.875 249.875 255 / 0.32))
118
238
  );
119
239
  --kui-color-neutral-on-quiet: var(
120
240
  --wa-color-neutral-on-quiet,
121
- var(--kui-color-text-quiet)
241
+ light-dark(#626267, #c2c2c6)
122
242
  );
123
243
  --kui-color-neutral-on-normal: var(
124
244
  --wa-color-neutral-on-normal,
@@ -131,7 +251,7 @@
131
251
 
132
252
  --kui-color-brand-fill-loud: var(
133
253
  --wa-color-brand-fill-loud,
134
- light-dark(#0088ff, #64d2ff)
254
+ light-dark(#0075db, #64d2ff)
135
255
  );
136
256
  --kui-color-brand-fill-quiet: var(
137
257
  --wa-color-brand-fill-quiet,
@@ -169,15 +289,60 @@
169
289
  --wa-color-brand-border-loud,
170
290
  var(--kui-color-brand-fill-loud)
171
291
  );
292
+ /* The light brand/success/warning on-quiet values are Kerf-owned (mirrored
293
+ in src/webawesome.css): each is the Hot Sheet 2 hue darkened just enough to
294
+ clear WCAG AA (>=4.5:1) on the lowered page background (#f2f2f7), not only
295
+ on the white surface. The prior #1e6ef4 / #008932 / #a16a00 reached ~4.1:1
296
+ there. Brand #0c62f3 is 4.64:1, success #007f2e 4.62:1, warning #966200
297
+ 4.65:1 on the page (5.2:1 on white). */
172
298
  --kui-color-brand-on-quiet: var(
173
299
  --wa-color-brand-on-quiet,
174
- light-dark(#1e6ef4, #8acbff)
300
+ light-dark(#0c62f3, #8acbff)
175
301
  );
176
302
  --kui-color-brand-on-normal: var(
177
303
  --wa-color-brand-on-normal,
178
304
  var(--kui-color-brand-on-quiet)
179
305
  );
180
- --kui-color-brand-on-loud: var(--wa-color-brand-on-loud, #fff);
306
+ --kui-color-brand-on-loud: var(
307
+ --wa-color-brand-on-loud,
308
+ light-dark(#fff, #111113)
309
+ );
310
+ /* Brand accent text placed directly ON a brand fill (quiet or normal), such as
311
+ the info StateBanner and Select's current option. Darker than brand-on-quiet
312
+ so it clears WCAG AA (>=4.5:1): brand-on-quiet (#0c62f3) resolves to only
313
+ 4.26:1 over brand-fill-normal (#d6ecff), while #1a5dcf (same hue) clears
314
+ ~4.9:1 there and ~5.5:1 over brand-fill-quiet (#ebf6ff). The dark value
315
+ matches brand-on-quiet, which already passes over the dark fills. */
316
+ --kui-color-brand-on-fill: light-dark(#1a5dcf, #8acbff);
317
+
318
+ /* Pop is attractive emphasis without status meaning: use it for featured,
319
+ novel, or celebratory content, never as a success/danger substitute. */
320
+ --kui-color-pop-fill-loud: light-dark(#af34d4, #da8fff);
321
+ --kui-color-pop-fill-quiet: color-mix(
322
+ in srgb,
323
+ var(--kui-color-pop-fill-loud) 10%,
324
+ var(--kui-color-surface)
325
+ );
326
+ --kui-color-pop-fill-normal: color-mix(
327
+ in srgb,
328
+ var(--kui-color-pop-fill-loud) 18%,
329
+ var(--kui-color-surface)
330
+ );
331
+ --kui-color-pop-border-quiet: color-mix(
332
+ in srgb,
333
+ var(--kui-color-pop-fill-loud) 36%,
334
+ var(--kui-color-surface)
335
+ );
336
+ --kui-color-pop-border-normal: color-mix(
337
+ in srgb,
338
+ var(--kui-color-pop-fill-loud) 58%,
339
+ var(--kui-color-surface)
340
+ );
341
+ --kui-color-pop-border-loud: var(--kui-color-pop-fill-loud);
342
+ --kui-color-pop-on-quiet: light-dark(#792498, #e8a5ff);
343
+ --kui-color-pop-on-normal: var(--kui-color-pop-on-quiet);
344
+ --kui-color-pop-on-loud: light-dark(#fff, #241126);
345
+ --kui-color-pop-on-fill: var(--kui-color-pop-on-quiet);
181
346
 
182
347
  --kui-color-success-fill-loud: var(--wa-color-success-fill-loud, #34c759);
183
348
  --kui-color-success-fill-quiet: var(
@@ -220,9 +385,20 @@
220
385
  var(--kui-color-neutral-on-normal)
221
386
  )
222
387
  );
223
- --kui-color-success-on-quiet: var(--wa-color-success-on-quiet, #008932);
224
- --kui-color-success-on-normal: var(--wa-color-success-on-normal, #006d28);
225
- --kui-color-success-on-loud: var(--wa-color-success-on-loud, #fff);
388
+ --kui-color-success-on-quiet: var(
389
+ --wa-color-success-on-quiet,
390
+ light-dark(#007f2e, #63e685)
391
+ );
392
+ --kui-color-success-on-normal: var(
393
+ --wa-color-success-on-normal,
394
+ light-dark(#006d28, #8cea9f)
395
+ );
396
+ --kui-color-success-on-loud: var(--wa-color-success-on-loud, #1d1d1f);
397
+ /* Success text placed ON a success fill (e.g. the success StateBanner). Darker
398
+ than success-on-quiet for margin over success-fill-quiet (#e3f7e8): the
399
+ original on-quiet #008932 reached only 4.05:1 there and today's #007f2e sits
400
+ at 4.60:1, while #00792c clears ~5:1. Dark matches success-on-quiet. */
401
+ --kui-color-success-on-fill: light-dark(#00792c, #63e685);
226
402
 
227
403
  --kui-color-warning-fill-loud: var(--wa-color-warning-fill-loud, #ffcc00);
228
404
  --kui-color-warning-fill-quiet: var(
@@ -265,11 +441,25 @@
265
441
  var(--kui-color-neutral-on-normal)
266
442
  )
267
443
  );
268
- --kui-color-warning-on-quiet: var(--wa-color-warning-on-quiet, #a16a00);
269
- --kui-color-warning-on-normal: var(--wa-color-warning-on-normal, #5f3f00);
444
+ --kui-color-warning-on-quiet: var(
445
+ --wa-color-warning-on-quiet,
446
+ light-dark(#966200, #ffd84a)
447
+ );
448
+ --kui-color-warning-on-normal: var(
449
+ --wa-color-warning-on-normal,
450
+ light-dark(#5f3f00, #ffe27a)
451
+ );
270
452
  --kui-color-warning-on-loud: var(--wa-color-warning-on-loud, #1d1d1f);
453
+ /* Warning text placed ON a warning fill (e.g. the warning StateBanner). Darker
454
+ than warning-on-quiet for margin over warning-fill-quiet (#fffae8): the
455
+ original on-quiet #a16a00 reached only 4.39:1 there (today's #966200 is
456
+ 4.97:1), while #8f5e00 clears ~5.3:1. Dark matches warning-on-quiet. */
457
+ --kui-color-warning-on-fill: light-dark(#8f5e00, #ffd84a);
271
458
 
272
- --kui-color-danger-fill-loud: var(--wa-color-danger-fill-loud, #ff383c);
459
+ --kui-color-danger-fill-loud: var(
460
+ --wa-color-danger-fill-loud,
461
+ light-dark(#eb0005, #ff383c)
462
+ );
273
463
  --kui-color-danger-fill-quiet: var(
274
464
  --wa-color-danger-fill-quiet,
275
465
  color-mix(
@@ -310,38 +500,221 @@
310
500
  var(--kui-color-neutral-on-normal)
311
501
  )
312
502
  );
313
- --kui-color-danger-on-quiet: var(--wa-color-danger-on-quiet, #c20b20);
314
- --kui-color-danger-on-normal: var(--wa-color-danger-on-normal, #8e0717);
315
- --kui-color-danger-on-loud: var(--wa-color-danger-on-loud, #fff);
503
+ --kui-color-danger-on-quiet: var(
504
+ --wa-color-danger-on-quiet,
505
+ light-dark(#c20b20, #ff696c)
506
+ );
507
+ --kui-color-danger-on-normal: var(
508
+ --wa-color-danger-on-normal,
509
+ light-dark(#8e0717, #ff8a8c)
510
+ );
511
+ --kui-color-danger-on-loud: var(
512
+ --wa-color-danger-on-loud,
513
+ light-dark(#fff, #111113)
514
+ );
515
+ /* Danger text placed ON a danger fill (e.g. the danger StateBanner) and the
516
+ danger Badge's solid fill. The light value matches danger-on-quiet, which
517
+ already clears WCAG AA (5.7:1) over danger-fill-quiet. The dark value is
518
+ lighter than danger-on-quiet (#ff696c), which reached only 5.7:1 over the
519
+ dark fill-quiet (4.0:1 as dimmed banner detail) and left the solid badge's
520
+ dark text and placeholder skeleton the weakest of any tone on a mid-red
521
+ fill; #ffa0a2 matches the other tones' pale dark on-fill values. */
522
+ --kui-color-danger-on-fill: light-dark(#c20b20, #ffa0a2);
316
523
 
317
- /* Compatibility aliases retained for existing @kerfjs/ui consumers. */
318
- --kui-color-border: var(
319
- --wa-color-surface-border,
320
- var(--kui-color-neutral-border-normal)
321
- );
322
- --kui-color-border-quiet: var(--kui-color-neutral-border-quiet);
323
- --kui-color-accent: var(--kui-color-brand-fill-normal);
324
- --kui-color-accent-text: var(--kui-color-brand-on-quiet);
325
- --kui-color-success: var(--kui-color-success-fill-quiet);
326
- --kui-color-success-text: var(--kui-color-success-on-quiet);
327
- --kui-color-warning: var(--kui-color-warning-fill-quiet);
328
- --kui-color-warning-text: var(--kui-color-warning-on-quiet);
329
- --kui-color-danger: var(--kui-color-danger-fill-quiet);
330
- --kui-color-danger-text: var(--kui-color-danger-on-quiet);
331
524
  --kui-focus-ring: var(
332
525
  --wa-focus-ring,
333
- 3px solid var(--wa-color-focus, var(--kui-color-brand-fill-loud))
526
+ 3px solid var(--wa-color-focus, light-dark(#007aff, #64d2ff))
527
+ );
528
+ /* Elevation mirrors webawesome.css's scheme-aware shadows: dark raises the
529
+ alpha so a raised surface still separates from a near-black page. */
530
+ --kui-shadow-s: var(
531
+ --wa-shadow-s,
532
+ 0 1px 3px light-dark(rgb(0 0 0 / 0.14), rgb(0 0 0 / 0.5))
334
533
  );
335
- --kui-shadow-s: var(--wa-shadow-s, 0 1px 3px rgb(0 0 0 / 0.14));
336
534
  --kui-shadow-l: var(
337
535
  --wa-shadow-l,
338
- 0 0.75rem 2rem rgb(0 0 0 / 0.09)
536
+ 0 0.75rem 2rem light-dark(rgb(0 0 0 / 0.09), rgb(0 0 0 / 0.32))
339
537
  );
340
538
  }
341
539
 
540
+ :root:dir(rtl) {
541
+ --kui-safe-area-inline-start: env(safe-area-inset-right, 0px);
542
+ --kui-safe-area-inline-end: env(safe-area-inset-left, 0px);
543
+ }
544
+
545
+ /* Scoped tint. A Pane, NavStack, or TabNavigator `tint` ({ color, scheme })
546
+ marks its root `data-kui-tint="<scheme>"` with the color in
547
+ `--_kui-tint-color`. The app declares the scheme (there is no automatic
548
+ color detection), and the scope re-derives the base surface and text
549
+ tokens from the color; the palette block above then re-derives everything
550
+ built on them (raised and lowered surfaces, quiet fills, the chrome
551
+ material). Relative color syntax clamps each token's lightness to a band
552
+ that holds WCAG AA whatever the color: a light tint's surface stays at or
553
+ above 90% OKLCH lightness under 24% text, 44% quiet text, and brand text
554
+ at most 45%, and a dark tint's surface at or below 30% under 97% text, 80%
555
+ quiet text, and brand text at least 80%. Chroma is capped so
556
+ text stays near-neutral and a surface stays a tint, not a fill.
557
+ Without relative color syntax, and under `prefers-contrast: more`, the
558
+ scope keeps the plain palette in its declared scheme. */
559
+ [data-kui-tint="light"] {
560
+ color-scheme: light;
561
+ }
562
+
563
+ [data-kui-tint="dark"] {
564
+ color-scheme: dark;
565
+ }
566
+
567
+ /* Inside a tint the chrome material keeps its blur but drops the saturation
568
+ boost: over the scope's own colored surface, saturating it would paint a
569
+ visibly brighter band (and a lighter edge) under an overlay header at
570
+ rest, where the header should read as the same surface. */
571
+ [data-kui-tint] {
572
+ color: var(--kui-color-text);
573
+ --kui-chrome-material-filter: blur(20px);
574
+ }
575
+
576
+ @supports (color: oklch(from red l c h)) {
577
+ @media not (prefers-contrast: more) {
578
+ [data-kui-tint="light"] {
579
+ --wa-color-surface-default: oklch(
580
+ from var(--_kui-tint-color) clamp(0.9, l, 0.985) min(c, 0.08) h
581
+ );
582
+ --wa-color-surface-raised: oklch(
583
+ from var(--_kui-tint-color) min(1, calc(clamp(0.9, l, 0.985) + 0.03))
584
+ min(c, 0.05) h
585
+ );
586
+ --wa-color-text-normal: oklch(
587
+ from var(--_kui-tint-color) 0.24 min(c, 0.03) h
588
+ );
589
+ --wa-color-text-quiet: oklch(
590
+ from var(--_kui-tint-color) 0.44 min(c, 0.04) h
591
+ );
592
+ --wa-color-neutral-on-quiet: oklch(
593
+ from var(--_kui-tint-color) 0.42 min(c, 0.04) h
594
+ );
595
+ --wa-color-brand-on-quiet: oklch(
596
+ from var(--_kui-tint-brand-source) min(l, 0.45) c h
597
+ );
598
+ }
599
+
600
+ [data-kui-tint="dark"] {
601
+ --wa-color-surface-default: oklch(
602
+ from var(--_kui-tint-color) clamp(0.16, l, 0.3) min(c, 0.1) h
603
+ );
604
+ --wa-color-surface-raised: oklch(
605
+ from var(--_kui-tint-color) calc(clamp(0.16, l, 0.3) + 0.06)
606
+ min(c, 0.08) h
607
+ );
608
+ --wa-color-text-normal: oklch(
609
+ from var(--_kui-tint-color) 0.97 min(c, 0.02) h
610
+ );
611
+ --wa-color-text-quiet: oklch(
612
+ from var(--_kui-tint-color) 0.8 min(c, 0.04) h
613
+ );
614
+ --wa-color-neutral-on-quiet: oklch(
615
+ from var(--_kui-tint-color) 0.82 min(c, 0.04) h
616
+ );
617
+ --wa-color-brand-on-quiet: oklch(
618
+ from var(--_kui-tint-brand-source) max(l, 0.8) c h
619
+ );
620
+ }
621
+
622
+ /* An optional accent (`tint.accent`) re-derives the brand ramp in the
623
+ scope: the loud fill (buttons, the current row, checked controls), its
624
+ on-loud text, brand text and links, text on brand fills, and the focus
625
+ ring. Lightness is clamped so each pair keeps WCAG AA for any accent:
626
+ a light scope's fill stays at or below 50% under white text, a dark
627
+ scope's between 72% and 85% under near-black text, and brand text at
628
+ most 45% (light) or at least 80% (dark). */
629
+ [data-kui-tint="light"][data-kui-tint-accent] {
630
+ --wa-color-brand-fill-loud: oklch(
631
+ from var(--_kui-tint-accent) min(l, 0.5) c h
632
+ );
633
+ --wa-color-brand-on-loud: #fff;
634
+ --wa-color-brand-on-quiet: oklch(
635
+ from var(--_kui-tint-accent) min(l, 0.45) c h
636
+ );
637
+ --kui-color-brand-on-fill: oklch(
638
+ from var(--_kui-tint-accent) min(l, 0.38) c h
639
+ );
640
+ --wa-color-focus: oklch(from var(--_kui-tint-accent) min(l, 0.5) c h);
641
+ }
642
+
643
+ [data-kui-tint="dark"][data-kui-tint-accent] {
644
+ --wa-color-brand-fill-loud: oklch(
645
+ from var(--_kui-tint-accent) clamp(0.72, l, 0.85) c h
646
+ );
647
+ --wa-color-brand-on-loud: #111113;
648
+ --wa-color-brand-on-quiet: oklch(
649
+ from var(--_kui-tint-accent) max(l, 0.8) c h
650
+ );
651
+ --kui-color-brand-on-fill: oklch(
652
+ from var(--_kui-tint-accent) max(l, 0.82) c h
653
+ );
654
+ --wa-color-focus: oklch(
655
+ from var(--_kui-tint-accent) clamp(0.72, l, 0.85) c h
656
+ );
657
+ }
658
+ }
659
+ }
660
+
661
+ @supports not (
662
+ (backdrop-filter: blur(1px)) or (-webkit-backdrop-filter: blur(1px))
663
+ ) {
664
+ :root,
665
+ [data-kui-tint] {
666
+ --kui-chrome-material: var(--kui-color-surface);
667
+ --kui-chrome-material-raised: var(--kui-color-surface-raised);
668
+ --kui-chrome-material-filter: none;
669
+ }
670
+ }
671
+
672
+ @media (prefers-reduced-transparency: reduce), (prefers-contrast: more) {
673
+ :root,
674
+ [data-kui-tint] {
675
+ --kui-chrome-material: var(--kui-color-surface);
676
+ --kui-chrome-material-raised: var(--kui-color-surface-raised);
677
+ --kui-chrome-material-filter: none;
678
+ }
679
+ }
680
+
681
+ /* The static-effects switch. There is no reliable CSS signal for a low-power
682
+ or slow device, so an app that detects one itself sets
683
+ `data-kui-effects="static"` on the root element; a display that cannot
684
+ animate smoothly (`update: slow`, e-ink and similar) gets the same result
685
+ on its own. Either way every backdrop effect turns opaque here, and every
686
+ scroll-driven animation a component owns stops in that component's CSS
687
+ (tests/unit/static-effects.test.ts holds each one to it). */
688
+ :root[data-kui-effects="static"],
689
+ :root[data-kui-effects="static"] [data-kui-tint] {
690
+ --kui-chrome-material: var(--kui-color-surface);
691
+ --kui-chrome-material-raised: var(--kui-color-surface-raised);
692
+ --kui-chrome-material-filter: none;
693
+ }
694
+
695
+ @media (update: slow) {
696
+ :root,
697
+ [data-kui-tint] {
698
+ --kui-chrome-material: var(--kui-color-surface);
699
+ --kui-chrome-material-raised: var(--kui-color-surface-raised);
700
+ --kui-chrome-material-filter: none;
701
+ }
702
+ }
703
+
342
704
  @media (prefers-contrast: more) {
343
- :root {
344
- --kui-color-border: currentColor;
705
+ :root,
706
+ [data-kui-tint] {
707
+ --kui-color-pop-fill-quiet: Canvas;
708
+ --kui-color-pop-fill-normal: Canvas;
709
+ --kui-color-pop-fill-loud: Highlight;
710
+ --kui-color-pop-border-quiet: currentColor;
711
+ --kui-color-pop-border-normal: currentColor;
712
+ --kui-color-pop-border-loud: currentColor;
713
+ --kui-color-pop-on-quiet: currentColor;
714
+ --kui-color-pop-on-normal: currentColor;
715
+ --kui-color-pop-on-loud: HighlightText;
716
+ --kui-color-pop-on-fill: currentColor;
717
+ --kui-color-neutral-border-normal: currentColor;
345
718
  --kui-focus-ring: 3px solid currentColor;
346
719
  }
347
720
  }
@@ -0,0 +1,47 @@
1
+ /* The same frame as ValueTable: content-item margin, a real 1px border, the
2
+ rounded radius, and a lowered (or base) fill. Rows clip to its corners. */
3
+ .kui-framed-list {
4
+ --kui-framed-list-border: var(--kui-color-neutral-border-normal);
5
+ display: flex;
6
+ flex-direction: column;
7
+ margin-block: 0;
8
+ margin-inline: var(--kui-layout-inline-margin, 0.5rem);
9
+ padding: 0;
10
+ overflow: hidden;
11
+ border: 1px solid var(--kui-framed-list-border);
12
+ border-radius: var(--kui-layout-rounded-radius, calc(1px + 0.6875rem));
13
+ background: var(--kui-color-surface-lowered);
14
+ list-style: none;
15
+ }
16
+
17
+ .kui-framed-list[data-surface="base"] {
18
+ background: var(--kui-color-surface);
19
+ }
20
+
21
+ /* Each row owns the content inset and the 1px divider above it, inset to the
22
+ row's padding like ValueTable's separators. Its margin is reset because a
23
+ document or Web Awesome native stylesheet indents list items. */
24
+ .kui-framed-list__row {
25
+ --_kui-framed-list-row-padding: var(--kui-layout-item-padding, 0.5rem);
26
+ position: relative;
27
+ display: grid;
28
+ min-width: 0;
29
+ margin: 0;
30
+ min-height: 2.75rem;
31
+ padding: var(--_kui-framed-list-row-padding);
32
+ box-sizing: border-box;
33
+ align-items: center;
34
+ }
35
+
36
+ .kui-framed-list__row + .kui-framed-list__row::before {
37
+ position: absolute;
38
+ top: 0;
39
+ right: var(--_kui-framed-list-row-padding);
40
+ left: var(--_kui-framed-list-row-padding);
41
+ border-top: 1px solid var(--kui-framed-list-border);
42
+ content: "";
43
+ }
44
+
45
+ .kui-framed-list__row[data-highlighted="true"] {
46
+ background: var(--kui-color-brand-fill-quiet);
47
+ }