@kerfjs/ui 5.0.0-beta.9 → 5.0.0-beta.91

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 (802) hide show
  1. package/README.md +540 -132
  2. package/ai/application-ui-diagnostic-ids-v1.json +113 -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 +4487 -633
  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 +520 -0
  20. package/ai/component-composition.d.ts +129 -0
  21. package/ai/component-composition.json +7470 -0
  22. package/ai/component-composition.schema.json +408 -0
  23. package/ai/components/README.md +172 -0
  24. package/ai/components/anchored-surface.md +86 -0
  25. package/ai/components/application-tabs.md +65 -0
  26. package/ai/components/badge.md +72 -0
  27. package/ai/components/chip.md +72 -0
  28. package/ai/components/collapsible-panel.md +102 -0
  29. package/ai/components/content-item.md +96 -0
  30. package/ai/components/disclosure-arrow.md +77 -0
  31. package/ai/components/document-baseline.md +75 -0
  32. package/ai/components/empty-state.md +80 -0
  33. package/ai/components/feedback.md +71 -0
  34. package/ai/components/floating-toolbar.md +82 -0
  35. package/ai/components/foundation.md +65 -0
  36. package/ai/components/grid.md +100 -0
  37. package/ai/components/headers.md +63 -0
  38. package/ai/components/layout.md +75 -0
  39. package/ai/components/list-action-row.md +91 -0
  40. package/ai/components/list-header.md +91 -0
  41. package/ai/components/list-inset-control.md +74 -0
  42. package/ai/components/list-inset-text.md +72 -0
  43. package/ai/components/list-item.md +94 -0
  44. package/ai/components/list.md +106 -0
  45. package/ai/components/loading-spinner.md +73 -0
  46. package/ai/components/lucide-icon.md +97 -0
  47. package/ai/components/nav-stack.md +105 -0
  48. package/ai/components/pane.md +106 -0
  49. package/ai/components/popup-menu.md +171 -0
  50. package/ai/components/recipe-app-shell.md +57 -0
  51. package/ai/components/recipe-collapsible-sidebar.md +57 -0
  52. package/ai/components/recipe-compact-toolbar.md +57 -0
  53. package/ai/components/recipe-composer-form.md +57 -0
  54. package/ai/components/recipe-list-detail-dialog.md +57 -0
  55. package/ai/components/recipe-list-workspace-states.md +57 -0
  56. package/ai/components/recipe-loading-inspector.md +57 -0
  57. package/ai/components/recipe-navigation-sidebar.md +57 -0
  58. package/ai/components/recipe-navigation-stack.md +57 -0
  59. package/ai/components/recipe-workspace-header.md +57 -0
  60. package/ai/components/resize.md +106 -0
  61. package/ai/components/row.md +96 -0
  62. package/ai/components/segmented-control.md +82 -0
  63. package/ai/components/select.md +115 -0
  64. package/ai/components/skeleton.md +84 -0
  65. package/ai/components/spacer.md +86 -0
  66. package/ai/components/split-view.md +103 -0
  67. package/ai/components/state-banner.md +94 -0
  68. package/ai/components/sunken-panel.md +79 -0
  69. package/ai/components/surface-scaffold.md +87 -0
  70. package/ai/components/tab-bar.md +113 -0
  71. package/ai/components/tab-navigator.md +96 -0
  72. package/ai/components/tabs.md +95 -0
  73. package/ai/components/text.md +87 -0
  74. package/ai/components/token-search-field.md +107 -0
  75. package/ai/components/toolbar-control-group.md +121 -0
  76. package/ai/components/toolbar-text.md +98 -0
  77. package/ai/components/toolbar.md +101 -0
  78. package/ai/components/value-table.md +73 -0
  79. package/ai/components/wa-accordion-item.md +55 -0
  80. package/ai/components/wa-accordion.md +65 -0
  81. package/ai/components/wa-animated-image.md +55 -0
  82. package/ai/components/wa-animation.md +55 -0
  83. package/ai/components/wa-avatar.md +55 -0
  84. package/ai/components/wa-badge.md +55 -0
  85. package/ai/components/wa-breadcrumb-item.md +53 -0
  86. package/ai/components/wa-breadcrumb.md +55 -0
  87. package/ai/components/wa-button-group.md +59 -0
  88. package/ai/components/wa-button.md +55 -0
  89. package/ai/components/wa-callout.md +58 -0
  90. package/ai/components/wa-card.md +59 -0
  91. package/ai/components/wa-carousel-item.md +53 -0
  92. package/ai/components/wa-carousel.md +55 -0
  93. package/ai/components/wa-checkbox-group.md +55 -0
  94. package/ai/components/wa-checkbox.md +55 -0
  95. package/ai/components/wa-color-picker.md +55 -0
  96. package/ai/components/wa-comparison.md +55 -0
  97. package/ai/components/wa-copy-button.md +55 -0
  98. package/ai/components/wa-details.md +61 -0
  99. package/ai/components/wa-dialog.md +59 -0
  100. package/ai/components/wa-divider.md +53 -0
  101. package/ai/components/wa-drawer.md +55 -0
  102. package/ai/components/wa-dropdown-item.md +60 -0
  103. package/ai/components/wa-dropdown.md +60 -0
  104. package/ai/components/wa-format-bytes.md +53 -0
  105. package/ai/components/wa-format-date.md +53 -0
  106. package/ai/components/wa-format-number.md +53 -0
  107. package/ai/components/wa-icon.md +58 -0
  108. package/ai/components/wa-include.md +53 -0
  109. package/ai/components/wa-input.md +59 -0
  110. package/ai/components/wa-intersection-observer.md +53 -0
  111. package/ai/components/wa-known-date.md +53 -0
  112. package/ai/components/wa-markdown.md +53 -0
  113. package/ai/components/wa-mutation-observer.md +53 -0
  114. package/ai/components/wa-number-input.md +55 -0
  115. package/ai/components/wa-option.md +59 -0
  116. package/ai/components/wa-otp-input.md +53 -0
  117. package/ai/components/wa-page.md +53 -0
  118. package/ai/components/wa-pagination.md +55 -0
  119. package/ai/components/wa-popover.md +55 -0
  120. package/ai/components/wa-popup.md +53 -0
  121. package/ai/components/wa-progress-bar.md +53 -0
  122. package/ai/components/wa-progress-ring.md +53 -0
  123. package/ai/components/wa-qr-code.md +53 -0
  124. package/ai/components/wa-radio-group.md +59 -0
  125. package/ai/components/wa-radio.md +55 -0
  126. package/ai/components/wa-random-content.md +53 -0
  127. package/ai/components/wa-rating.md +55 -0
  128. package/ai/components/wa-relative-time.md +53 -0
  129. package/ai/components/wa-resize-observer.md +53 -0
  130. package/ai/components/wa-scroller.md +53 -0
  131. package/ai/components/wa-select.md +63 -0
  132. package/ai/components/wa-skeleton.md +53 -0
  133. package/ai/components/wa-slider.md +55 -0
  134. package/ai/components/wa-spinner.md +58 -0
  135. package/ai/components/wa-split-panel.md +58 -0
  136. package/ai/components/wa-switch.md +53 -0
  137. package/ai/components/wa-tab-group.md +69 -0
  138. package/ai/components/wa-tab-panel.md +60 -0
  139. package/ai/components/wa-tab.md +59 -0
  140. package/ai/components/wa-tag.md +59 -0
  141. package/ai/components/wa-textarea.md +53 -0
  142. package/ai/components/wa-time-input.md +55 -0
  143. package/ai/components/wa-toast-item.md +60 -0
  144. package/ai/components/wa-toast.md +60 -0
  145. package/ai/components/wa-tooltip.md +55 -0
  146. package/ai/components/wa-tree-item.md +55 -0
  147. package/ai/components/wa-tree.md +55 -0
  148. package/ai/components/wa-zoomable-frame.md +55 -0
  149. package/ai/components/workbench.md +119 -0
  150. package/ai/public-api-signatures-v1.md +2837 -351
  151. package/ai/skill.md +401 -63
  152. package/ai/webawesome-jsx-signatures-v1.md +9 -2
  153. package/analyzer/cli.mjs +49 -0
  154. package/analyzer/component-ownership.d.mts +72 -0
  155. package/analyzer/component-ownership.mjs +429 -0
  156. package/analyzer/index.d.mts +53 -0
  157. package/analyzer/index.mjs +2346 -0
  158. package/analyzer/loud-pairs.d.mts +49 -0
  159. package/analyzer/loud-pairs.mjs +357 -0
  160. package/analyzer/report.schema.json +66 -0
  161. package/analyzer/selectors.d.mts +21 -0
  162. package/analyzer/selectors.mjs +212 -0
  163. package/catalog-projection-cli.mjs +96 -0
  164. package/catalog-projection.d.mts +55 -0
  165. package/catalog-projection.mjs +62 -0
  166. package/dist/anchored-surface.d.ts +30 -0
  167. package/dist/anchored-surface.js +3 -0
  168. package/dist/anchored-surface.js.map +1 -0
  169. package/dist/app-tab.d.ts +39 -4
  170. package/dist/app-tab.js +2 -1
  171. package/dist/badge.d.ts +54 -0
  172. package/dist/badge.js +3 -0
  173. package/dist/badge.js.map +1 -0
  174. package/dist/browser/anchored-surface.js +3 -0
  175. package/dist/browser/badge.js +3 -0
  176. package/dist/browser/catalog.js +28 -0
  177. package/dist/browser/chip.js +3 -0
  178. package/dist/browser/collapsible-panel.js +9 -0
  179. package/dist/browser/content-item.js +3 -0
  180. package/dist/browser/floating-toolbar.js +3 -0
  181. package/dist/browser/grid.js +3 -0
  182. package/dist/browser/list-action-row.js +1 -0
  183. package/dist/browser/list-header.js +3 -1
  184. package/dist/browser/list-inset-control.js +3 -0
  185. package/dist/browser/list-inset-text.js +3 -0
  186. package/dist/browser/list-item.js +1 -0
  187. package/dist/browser/list.js +3 -0
  188. package/dist/browser/nav-stack.js +11 -0
  189. package/dist/browser/pane.js +3 -0
  190. package/dist/browser/popup-menu.js +3 -0
  191. package/dist/browser/row.js +3 -0
  192. package/dist/browser/segmented-control.js +0 -1
  193. package/dist/browser/select.js +2 -1
  194. package/dist/browser/spacer.js +3 -0
  195. package/dist/browser/split-view.js +13 -0
  196. package/dist/browser/state-banner.js +1 -0
  197. package/dist/browser/sunken-panel.js +3 -0
  198. package/dist/browser/surface-scaffold.js +3 -0
  199. package/dist/browser/tab-navigator.js +4 -0
  200. package/dist/browser/text.js +3 -0
  201. package/dist/browser/toolbar-control-group.js +1 -0
  202. package/dist/browser/workbench.js +14 -0
  203. package/dist/catalog-resources.d.ts +48 -0
  204. package/dist/catalog-resources.js +22 -0
  205. package/dist/catalog-resources.js.map +1 -0
  206. package/dist/catalog.d.ts +76 -103
  207. package/dist/catalog.js +566 -87
  208. package/dist/catalog.js.map +1 -1
  209. package/dist/chip.d.ts +36 -0
  210. package/dist/chip.js +3 -0
  211. package/dist/chip.js.map +1 -0
  212. package/dist/chunk-2GOCOLQL.js +270 -0
  213. package/dist/chunk-2GOCOLQL.js.map +1 -0
  214. package/dist/chunk-3DXHNLME.js +69 -0
  215. package/dist/chunk-3DXHNLME.js.map +1 -0
  216. package/dist/chunk-3PO7JEK7.js +188 -0
  217. package/dist/chunk-3PO7JEK7.js.map +1 -0
  218. package/dist/chunk-3VWOVICT.js +375 -0
  219. package/dist/chunk-3VWOVICT.js.map +1 -0
  220. package/dist/chunk-3XPGJUUQ.js +37 -0
  221. package/dist/chunk-3XPGJUUQ.js.map +1 -0
  222. package/dist/chunk-4Y4L5YEI.js +66 -0
  223. package/dist/chunk-4Y4L5YEI.js.map +1 -0
  224. package/dist/chunk-5BZBIRQG.js +452 -0
  225. package/dist/chunk-5BZBIRQG.js.map +1 -0
  226. package/dist/chunk-6IVNMC6R.js +19 -0
  227. package/dist/chunk-6IVNMC6R.js.map +1 -0
  228. package/dist/chunk-6L3WBDNW.js +75 -0
  229. package/dist/chunk-6L3WBDNW.js.map +1 -0
  230. package/dist/chunk-7QQ3HE47.js +17 -0
  231. package/dist/chunk-7QQ3HE47.js.map +1 -0
  232. package/dist/chunk-A7DYEERU.js +59 -0
  233. package/dist/chunk-A7DYEERU.js.map +1 -0
  234. package/dist/chunk-AN5IWMTM.js +24 -0
  235. package/dist/chunk-AN5IWMTM.js.map +1 -0
  236. package/dist/chunk-B3TROLC2.js +104 -0
  237. package/dist/chunk-B3TROLC2.js.map +1 -0
  238. package/dist/chunk-BYHGRKC3.js +44 -0
  239. package/dist/chunk-BYHGRKC3.js.map +1 -0
  240. package/dist/chunk-CD5TOO22.js +82 -0
  241. package/dist/chunk-CD5TOO22.js.map +1 -0
  242. package/dist/chunk-CEJ5FK6G.js +288 -0
  243. package/dist/chunk-CEJ5FK6G.js.map +1 -0
  244. package/dist/chunk-D3ACDORR.js +149 -0
  245. package/dist/chunk-D3ACDORR.js.map +1 -0
  246. package/dist/chunk-DL55BSQX.js +52 -0
  247. package/dist/chunk-DL55BSQX.js.map +1 -0
  248. package/dist/chunk-DQDTZE4W.js +70 -0
  249. package/dist/chunk-DQDTZE4W.js.map +1 -0
  250. package/dist/chunk-FHVGTV4Z.js +789 -0
  251. package/dist/chunk-FHVGTV4Z.js.map +1 -0
  252. package/dist/chunk-FL6J644M.js +116 -0
  253. package/dist/chunk-FL6J644M.js.map +1 -0
  254. package/dist/chunk-GS2QD3N7.js +14 -0
  255. package/dist/chunk-GS2QD3N7.js.map +1 -0
  256. package/dist/chunk-H45DAZBL.js +491 -0
  257. package/dist/chunk-H45DAZBL.js.map +1 -0
  258. package/dist/chunk-IM3GKYOG.js +202 -0
  259. package/dist/chunk-IM3GKYOG.js.map +1 -0
  260. package/dist/chunk-IOS2NXW7.js +53 -0
  261. package/dist/chunk-IOS2NXW7.js.map +1 -0
  262. package/dist/chunk-J3AWE5I4.js +50 -0
  263. package/dist/chunk-J3AWE5I4.js.map +1 -0
  264. package/dist/chunk-JOR5LGYE.js +55 -0
  265. package/dist/chunk-JOR5LGYE.js.map +1 -0
  266. package/dist/chunk-JQ4QGIKS.js +165 -0
  267. package/dist/chunk-JQ4QGIKS.js.map +1 -0
  268. package/dist/chunk-KAJVVN7Q.js +138 -0
  269. package/dist/chunk-KAJVVN7Q.js.map +1 -0
  270. package/dist/{chunk-7BR3DO2A.js → chunk-LAZLBC2Q.js} +14 -5
  271. package/dist/chunk-LAZLBC2Q.js.map +1 -0
  272. package/dist/chunk-MN3POJFN.js +44 -0
  273. package/dist/chunk-MN3POJFN.js.map +1 -0
  274. package/dist/chunk-MORVLMDG.js +59 -0
  275. package/dist/chunk-MORVLMDG.js.map +1 -0
  276. package/dist/chunk-MTCTX25G.js +139 -0
  277. package/dist/chunk-MTCTX25G.js.map +1 -0
  278. package/dist/chunk-MXNIVEVL.js +48 -0
  279. package/dist/chunk-MXNIVEVL.js.map +1 -0
  280. package/dist/chunk-NJZMR7HM.js +135 -0
  281. package/dist/chunk-NJZMR7HM.js.map +1 -0
  282. package/dist/chunk-NMKY3WRM.js +295 -0
  283. package/dist/chunk-NMKY3WRM.js.map +1 -0
  284. package/dist/chunk-NMWDHZVM.js +35 -0
  285. package/dist/chunk-NMWDHZVM.js.map +1 -0
  286. package/dist/{chunk-YGN7OMLT.js → chunk-NS2TBYM4.js} +8 -5
  287. package/dist/chunk-NS2TBYM4.js.map +1 -0
  288. package/dist/chunk-O27D24CA.js +250 -0
  289. package/dist/chunk-O27D24CA.js.map +1 -0
  290. package/dist/chunk-PGL6TXFW.js +48 -0
  291. package/dist/chunk-PGL6TXFW.js.map +1 -0
  292. package/dist/chunk-PYWDDPMJ.js +506 -0
  293. package/dist/chunk-PYWDDPMJ.js.map +1 -0
  294. package/dist/chunk-QQICWWNX.js +71 -0
  295. package/dist/chunk-QQICWWNX.js.map +1 -0
  296. package/dist/chunk-S3ECMF23.js +33 -0
  297. package/dist/chunk-S3ECMF23.js.map +1 -0
  298. package/dist/chunk-S4ZGTDSG.js +18 -0
  299. package/dist/chunk-S4ZGTDSG.js.map +1 -0
  300. package/dist/chunk-SSXEYZQR.js +222 -0
  301. package/dist/chunk-SSXEYZQR.js.map +1 -0
  302. package/dist/chunk-U657IHFB.js +158 -0
  303. package/dist/chunk-U657IHFB.js.map +1 -0
  304. package/dist/{chunk-56RJXPHG.js → chunk-X6PR75UE.js} +7 -4
  305. package/dist/chunk-X6PR75UE.js.map +1 -0
  306. package/dist/chunk-XK4E225T.js +34 -0
  307. package/dist/chunk-XK4E225T.js.map +1 -0
  308. package/dist/chunk-XKZPBRU7.js +135 -0
  309. package/dist/chunk-XKZPBRU7.js.map +1 -0
  310. package/dist/chunk-Y43B6DS3.js +66 -0
  311. package/dist/chunk-Y43B6DS3.js.map +1 -0
  312. package/dist/chunk-Y6KT7ZTR.js +109 -0
  313. package/dist/chunk-Y6KT7ZTR.js.map +1 -0
  314. package/dist/chunk-YOKEL75M.js +48 -0
  315. package/dist/chunk-YOKEL75M.js.map +1 -0
  316. package/dist/chunk-ZM3UOGZV.js +174 -0
  317. package/dist/chunk-ZM3UOGZV.js.map +1 -0
  318. package/dist/collapsible-panel.d.ts +137 -0
  319. package/dist/collapsible-panel.js +136 -0
  320. package/dist/collapsible-panel.js.map +1 -0
  321. package/dist/content-item.d.ts +99 -0
  322. package/dist/content-item.js +4 -0
  323. package/dist/content-item.js.map +1 -0
  324. package/dist/css-values.d.ts +119 -0
  325. package/dist/css-values.js +3 -0
  326. package/dist/css-values.js.map +1 -0
  327. package/dist/device-class.js +34 -6
  328. package/dist/device-class.js.map +1 -1
  329. package/dist/disclosure-arrow.d.ts +6 -1
  330. package/dist/disclosure-arrow.js +2 -1
  331. package/dist/empty-state.d.ts +5 -2
  332. package/dist/empty-state.js +2 -1
  333. package/dist/flex-alignment-4ms8ZbV8.d.ts +5 -0
  334. package/dist/floating-toolbar.d.ts +51 -0
  335. package/dist/floating-toolbar.js +3 -0
  336. package/dist/floating-toolbar.js.map +1 -0
  337. package/dist/grid.d.ts +58 -0
  338. package/dist/grid.js +6 -0
  339. package/dist/grid.js.map +1 -0
  340. package/dist/help-tags-register.d.ts +13 -0
  341. package/dist/help-tags-register.js +9 -0
  342. package/dist/help-tags-register.js.map +1 -0
  343. package/dist/index.d.ts +41 -17
  344. package/dist/index.js +46 -23
  345. package/dist/list-action-row.d.ts +15 -3
  346. package/dist/list-action-row.js +4 -1
  347. package/dist/list-header.d.ts +65 -10
  348. package/dist/list-header.js +4 -1
  349. package/dist/list-inset-control.d.ts +22 -0
  350. package/dist/list-inset-control.js +3 -0
  351. package/dist/list-inset-control.js.map +1 -0
  352. package/dist/list-inset-text.d.ts +30 -0
  353. package/dist/list-inset-text.js +4 -0
  354. package/dist/list-inset-text.js.map +1 -0
  355. package/dist/list-item.d.ts +34 -5
  356. package/dist/list-item.js +4 -1
  357. package/dist/list.d.ts +64 -0
  358. package/dist/list.js +7 -0
  359. package/dist/list.js.map +1 -0
  360. package/dist/loading-spinner.d.ts +12 -2
  361. package/dist/loading-spinner.js +2 -1
  362. package/dist/lucide-icon.d.ts +15 -3
  363. package/dist/lucide-icon.js +2 -1
  364. package/dist/nav-stack-BvSKY448.d.ts +109 -0
  365. package/dist/nav-stack.d.ts +13 -38
  366. package/dist/nav-stack.js +11 -1
  367. package/dist/pane.d.ts +116 -0
  368. package/dist/pane.js +4 -0
  369. package/dist/pane.js.map +1 -0
  370. package/dist/panel-toolbar-CL9tYOkh.d.ts +72 -0
  371. package/dist/popup-menu-register.d.ts +9 -0
  372. package/dist/popup-menu-register.js +244 -0
  373. package/dist/popup-menu-register.js.map +1 -0
  374. package/dist/popup-menu.d.ts +100 -0
  375. package/dist/popup-menu.js +3 -0
  376. package/dist/popup-menu.js.map +1 -0
  377. package/dist/resizable-region.d.ts +32 -3
  378. package/dist/resizable-region.js +1 -1
  379. package/dist/row.d.ts +49 -0
  380. package/dist/row.js +7 -0
  381. package/dist/row.js.map +1 -0
  382. package/dist/segmented-control.d.ts +12 -9
  383. package/dist/segmented-control.js +1 -2
  384. package/dist/select-register.d.ts +5 -1
  385. package/dist/select-register.js +247 -3
  386. package/dist/select-register.js.map +1 -1
  387. package/dist/select.d.ts +103 -8
  388. package/dist/select.js +3 -1
  389. package/dist/semantic-content-BbzjvSu9.d.ts +14 -0
  390. package/dist/semantic-tone-CdW013KF.d.ts +4 -0
  391. package/dist/sides-BPSWde0A.d.ts +4 -0
  392. package/dist/skeleton.d.ts +14 -7
  393. package/dist/skeleton.js +2 -1
  394. package/dist/spacer.d.ts +18 -0
  395. package/dist/spacer.js +4 -0
  396. package/dist/spacer.js.map +1 -0
  397. package/dist/split-view.d.ts +43 -6
  398. package/dist/split-view.js +125 -10
  399. package/dist/split-view.js.map +1 -1
  400. package/dist/state-banner.d.ts +21 -7
  401. package/dist/state-banner.js +3 -1
  402. package/dist/styles/anchored-surface.css +15 -0
  403. package/dist/styles/app-tab.css +232 -0
  404. package/dist/styles/badge.css +118 -0
  405. package/dist/styles/catalog/components/catalog-example-stack.css +9 -0
  406. package/dist/styles/catalog/components/catalog-example.css +167 -0
  407. package/dist/styles/catalog/components/catalog-stage.css +54 -0
  408. package/dist/styles/catalog/components/catalog.css +26 -0
  409. package/dist/styles/catalog.css +5 -482
  410. package/dist/styles/chip.css +138 -0
  411. package/dist/styles/collapsible-panel.css +580 -0
  412. package/dist/styles/components/actions/floating-toolbar/floating-toolbar.css +119 -0
  413. package/dist/styles/components/actions/popup-menu/popup-menu.css +285 -0
  414. package/dist/styles/components/actions/toolbar/toolbar.css +417 -0
  415. package/dist/styles/components/actions/toolbar-control-group/toolbar-control-group.css +891 -0
  416. package/dist/styles/components/actions/toolbar-text/toolbar-text.css +171 -0
  417. package/dist/styles/components/collections/list/list.css +136 -0
  418. package/dist/styles/components/collections/list-action-row/list-action-row.css +258 -0
  419. package/dist/styles/components/collections/list-header/list-header.css +229 -0
  420. package/dist/styles/components/collections/list-inset-control/list-inset-control.css +30 -0
  421. package/dist/styles/components/collections/list-inset-text/list-inset-text.css +29 -0
  422. package/dist/styles/components/collections/list-item/list-item.css +255 -0
  423. package/dist/styles/components/data-display/value-table/value-table.css +107 -0
  424. package/dist/styles/components/feedback/anchored-surface/anchored-surface.css +15 -0
  425. package/dist/styles/components/feedback/badge/badge.css +118 -0
  426. package/dist/styles/components/feedback/chip/chip.css +138 -0
  427. package/dist/styles/components/feedback/empty-state/empty-state.css +47 -0
  428. package/dist/styles/components/feedback/loading-spinner/loading-spinner.css +25 -0
  429. package/dist/styles/components/feedback/skeleton/skeleton.css +92 -0
  430. package/dist/styles/components/feedback/state-banner/state-banner.css +248 -0
  431. package/dist/styles/components/forms/segmented-control/segmented-control.css +196 -0
  432. package/dist/styles/components/forms/select/select.css +454 -0
  433. package/dist/styles/components/forms/token-search-field/token-search-field.css +392 -0
  434. package/dist/styles/components/layout/collapsible-panel/collapsible-panel.css +580 -0
  435. package/dist/styles/components/layout/grid/grid.css +88 -0
  436. package/dist/styles/components/layout/pane/pane.css +309 -0
  437. package/dist/styles/components/layout/resizable-region/resizable-region.css +545 -0
  438. package/dist/styles/components/layout/row/row.css +114 -0
  439. package/dist/styles/components/layout/spacer/spacer.css +11 -0
  440. package/dist/styles/components/layout/split-view/split-view.css +146 -0
  441. package/dist/styles/components/layout/workbench/workbench.css +1092 -0
  442. package/dist/styles/components/media/lucide-icon/lucide-icon.css +15 -0
  443. package/dist/styles/components/navigation/app-tab/app-tab.css +384 -0
  444. package/dist/styles/components/navigation/disclosure-arrow/disclosure-arrow.css +23 -0
  445. package/dist/styles/components/navigation/nav-stack/nav-stack.css +258 -0
  446. package/dist/styles/components/navigation/tab-bar/tab-bar.css +186 -0
  447. package/dist/styles/components/navigation/tab-navigator/tab-navigator.css +253 -0
  448. package/dist/styles/components/surfaces/content-item/content-item.css +120 -0
  449. package/dist/styles/components/surfaces/sunken-panel/sunken-panel.css +34 -0
  450. package/dist/styles/components/surfaces/surface-scaffold/surface-scaffold.css +111 -0
  451. package/dist/styles/components/typography/text/text.css +158 -0
  452. package/dist/styles/content-item.css +120 -0
  453. package/dist/styles/document.css +33 -0
  454. package/dist/styles/floating-toolbar.css +119 -0
  455. package/dist/styles/foundation.css +187 -45
  456. package/dist/styles/grid.css +88 -0
  457. package/dist/styles/layout.css +3 -41
  458. package/dist/styles/list-action-row.css +104 -6
  459. package/dist/styles/list-header.css +128 -59
  460. package/dist/styles/list-inset-control.css +30 -0
  461. package/dist/styles/list-inset-text.css +29 -0
  462. package/dist/styles/list-item.css +165 -33
  463. package/dist/styles/list.css +136 -0
  464. package/dist/styles/loading-spinner.css +4 -0
  465. package/dist/styles/lucide-icon.css +9 -0
  466. package/dist/styles/nav-stack.css +196 -50
  467. package/dist/styles/pane.css +309 -0
  468. package/dist/styles/popup-menu.css +285 -0
  469. package/dist/styles/resizable-region.css +438 -4
  470. package/dist/styles/row.css +114 -0
  471. package/dist/styles/segmented-control.css +36 -9
  472. package/dist/styles/select.css +337 -21
  473. package/dist/styles/skeleton.css +64 -3
  474. package/dist/styles/spacer.css +11 -0
  475. package/dist/styles/split-view.css +114 -3
  476. package/dist/styles/state-banner.css +94 -19
  477. package/dist/styles/styles.css +10 -1
  478. package/dist/styles/sunken-panel.css +34 -0
  479. package/dist/styles/surface-scaffold.css +111 -0
  480. package/dist/styles/tab-bar.css +150 -9
  481. package/dist/styles/tab-navigator.css +253 -0
  482. package/dist/styles/text.css +158 -0
  483. package/dist/styles/token-search-field.css +167 -56
  484. package/dist/styles/toolbar-control-group.css +710 -30
  485. package/dist/styles/toolbar-text.css +139 -8
  486. package/dist/styles/toolbar.css +367 -11
  487. package/dist/styles/value-table.css +39 -7
  488. package/dist/styles/webawesome.css +392 -17
  489. package/dist/styles/workbench.css +1005 -7
  490. package/dist/sunken-panel.d.ts +31 -0
  491. package/dist/sunken-panel.js +3 -0
  492. package/dist/sunken-panel.js.map +1 -0
  493. package/dist/surface-scaffold-register.d.ts +4 -0
  494. package/dist/surface-scaffold-register.js +59 -0
  495. package/dist/surface-scaffold-register.js.map +1 -0
  496. package/dist/surface-scaffold.d.ts +38 -0
  497. package/dist/surface-scaffold.js +3 -0
  498. package/dist/surface-scaffold.js.map +1 -0
  499. package/dist/tab-bar.d.ts +39 -6
  500. package/dist/tab-bar.js +1 -1
  501. package/dist/tab-navigator.d.ts +93 -0
  502. package/dist/tab-navigator.js +97 -0
  503. package/dist/tab-navigator.js.map +1 -0
  504. package/dist/text.d.ts +63 -0
  505. package/dist/text.js +3 -0
  506. package/dist/text.js.map +1 -0
  507. package/dist/token-search-field.d.ts +3 -43
  508. package/dist/token-search-field.js +2 -1
  509. package/dist/token-search-model-DTcTXWMS.d.ts +154 -0
  510. package/dist/token-search-model.d.ts +3 -0
  511. package/dist/token-search-model.js +3 -0
  512. package/dist/token-search-model.js.map +1 -0
  513. package/dist/toolbar-control-group.d.ts +89 -7
  514. package/dist/toolbar-control-group.js +3 -1
  515. package/dist/toolbar-text.d.ts +45 -9
  516. package/dist/toolbar-text.js +2 -1
  517. package/dist/toolbar.d.ts +59 -7
  518. package/dist/toolbar.js +1 -1
  519. package/dist/types-oLe_N1w0.d.ts +130 -0
  520. package/dist/value-table.d.ts +11 -3
  521. package/dist/value-table.js +2 -1
  522. package/dist/webawesome.d.ts +8 -1
  523. package/dist/wire-catalog.d.ts +76 -4
  524. package/dist/wire-catalog.js +250 -14
  525. package/dist/wire-catalog.js.map +1 -1
  526. package/dist/wire-content-items.d.ts +11 -0
  527. package/dist/wire-content-items.js +139 -0
  528. package/dist/wire-content-items.js.map +1 -0
  529. package/dist/wire-nav-stack.d.ts +4 -1
  530. package/dist/wire-nav-stack.js +191 -15
  531. package/dist/wire-nav-stack.js.map +1 -1
  532. package/dist/wire-resizable-regions.d.ts +2 -1
  533. package/dist/wire-resizable-regions.js +2 -1
  534. package/dist/wire-scroll-dividers.d.ts +74 -0
  535. package/dist/wire-scroll-dividers.js +3 -0
  536. package/dist/wire-scroll-dividers.js.map +1 -0
  537. package/dist/wire-sidebar.d.ts +63 -0
  538. package/dist/wire-sidebar.js +231 -0
  539. package/dist/wire-sidebar.js.map +1 -0
  540. package/dist/wire-tab-bars.d.ts +19 -2
  541. package/dist/wire-tab-bars.js +1 -1
  542. package/dist/wire-tab-navigator.d.ts +11 -0
  543. package/dist/wire-tab-navigator.js +21 -0
  544. package/dist/wire-tab-navigator.js.map +1 -0
  545. package/dist/wire-token-search-fields.d.ts +65 -3
  546. package/dist/wire-token-search-fields.js +2 -1
  547. package/dist/wire-toolbar-visibility.d.ts +13 -0
  548. package/dist/wire-toolbar-visibility.js +3 -0
  549. package/dist/wire-toolbar-visibility.js.map +1 -0
  550. package/dist/wire-workbench.d.ts +116 -0
  551. package/dist/wire-workbench.js +6 -0
  552. package/dist/wire-workbench.js.map +1 -0
  553. package/dist/workbench.d.ts +246 -9
  554. package/dist/workbench.js +18 -15
  555. package/dist/workbench.js.map +1 -1
  556. package/docs/accessibility.md +495 -24
  557. package/docs/anchored-surface.md +51 -0
  558. package/docs/app-layouts.md +141 -10
  559. package/docs/apple-hig.md +1 -0
  560. package/docs/catalog.md +395 -62
  561. package/docs/collapsible-panel.md +382 -0
  562. package/docs/component-contract.md +750 -53
  563. package/docs/component-integration.md +75 -0
  564. package/docs/component-selection.md +682 -97
  565. package/docs/design/templates/empty-state/filtered-dark.svg +1 -0
  566. package/docs/design/templates/empty-state/filtered.svg +1 -0
  567. package/docs/design/templates/empty-state/with-action-dark.svg +1 -0
  568. package/docs/design/templates/empty-state/with-action.svg +1 -0
  569. package/docs/design/templates/empty-state-dark.svg +1 -0
  570. package/docs/design/templates/empty-state.svg +1 -0
  571. package/docs/design/templates/list/compact-dark.svg +1 -0
  572. package/docs/design/templates/list/compact.svg +1 -0
  573. package/docs/design/templates/list/stack-dark.svg +1 -0
  574. package/docs/design/templates/list/stack.svg +1 -0
  575. package/docs/design/templates/list-action-row/default-dark.svg +1 -0
  576. package/docs/design/templates/list-action-row/default.svg +1 -0
  577. package/docs/design/templates/list-action-row/selected-dark.svg +1 -0
  578. package/docs/design/templates/list-action-row/selected.svg +1 -0
  579. package/docs/design/templates/list-action-row-dark.svg +1 -0
  580. package/docs/design/templates/list-action-row.svg +1 -0
  581. package/docs/design/templates/list-dark.svg +1 -0
  582. package/docs/design/templates/list-header/action-dark.svg +1 -0
  583. package/docs/design/templates/list-header/action.svg +1 -0
  584. package/docs/design/templates/list-header/count-dark.svg +1 -0
  585. package/docs/design/templates/list-header/count.svg +1 -0
  586. package/docs/design/templates/list-header/inline-action-dark.svg +1 -0
  587. package/docs/design/templates/list-header/inline-action.svg +1 -0
  588. package/docs/design/templates/list-header/size-l-dark.svg +1 -0
  589. package/docs/design/templates/list-header/size-l.svg +1 -0
  590. package/docs/design/templates/list-header/size-m-dark.svg +1 -0
  591. package/docs/design/templates/list-header/size-m.svg +1 -0
  592. package/docs/design/templates/list-header/size-xl-dark.svg +1 -0
  593. package/docs/design/templates/list-header/size-xl.svg +1 -0
  594. package/docs/design/templates/list-header/size-xs-dark.svg +1 -0
  595. package/docs/design/templates/list-header/size-xs.svg +1 -0
  596. package/docs/design/templates/list-header/toggle-collapsed-dark.svg +1 -0
  597. package/docs/design/templates/list-header/toggle-collapsed.svg +1 -0
  598. package/docs/design/templates/list-header/toggle-expanded-dark.svg +1 -0
  599. package/docs/design/templates/list-header/toggle-expanded.svg +1 -0
  600. package/docs/design/templates/list-header-dark.svg +1 -0
  601. package/docs/design/templates/list-header.svg +1 -0
  602. package/docs/design/templates/list-item/default-dark.svg +1 -0
  603. package/docs/design/templates/list-item/default.svg +1 -0
  604. package/docs/design/templates/list-item/multiline-dark.svg +1 -0
  605. package/docs/design/templates/list-item/multiline.svg +1 -0
  606. package/docs/design/templates/list-item/selected-dark.svg +1 -0
  607. package/docs/design/templates/list-item/selected.svg +1 -0
  608. package/docs/design/templates/list-item/trailing-dark.svg +1 -0
  609. package/docs/design/templates/list-item/trailing.svg +1 -0
  610. package/docs/design/templates/list-item-dark.svg +1 -0
  611. package/docs/design/templates/list-item.svg +1 -0
  612. package/docs/design/templates/list.svg +1 -0
  613. package/docs/design/templates/segmented-control/equal-dark.svg +1 -0
  614. package/docs/design/templates/segmented-control/equal.svg +1 -0
  615. package/docs/design/templates/segmented-control/pill-small-dark.svg +1 -0
  616. package/docs/design/templates/segmented-control/pill-small.svg +1 -0
  617. package/docs/design/templates/segmented-control-dark.svg +1 -0
  618. package/docs/design/templates/segmented-control.svg +1 -0
  619. package/docs/design/templates/skeleton/avatar-dark.svg +1 -0
  620. package/docs/design/templates/skeleton/avatar.svg +1 -0
  621. package/docs/design/templates/skeleton/block-dark.svg +1 -0
  622. package/docs/design/templates/skeleton/block.svg +1 -0
  623. package/docs/design/templates/skeleton/lines-dark.svg +1 -0
  624. package/docs/design/templates/skeleton/lines.svg +1 -0
  625. package/docs/design/templates/skeleton-dark.svg +1 -0
  626. package/docs/design/templates/skeleton.svg +1 -0
  627. package/docs/design/templates/state-banner/danger-dark.svg +1 -0
  628. package/docs/design/templates/state-banner/danger.svg +1 -0
  629. package/docs/design/templates/state-banner/info-badge-dark.svg +1 -0
  630. package/docs/design/templates/state-banner/info-badge.svg +1 -0
  631. package/docs/design/templates/state-banner/info-dark.svg +1 -0
  632. package/docs/design/templates/state-banner/info.svg +1 -0
  633. package/docs/design/templates/state-banner/success-dark.svg +1 -0
  634. package/docs/design/templates/state-banner/success.svg +1 -0
  635. package/docs/design/templates/state-banner/warning-dark.svg +1 -0
  636. package/docs/design/templates/state-banner/warning.svg +1 -0
  637. package/docs/design/templates/state-banner-dark.svg +1 -0
  638. package/docs/design/templates/state-banner.svg +1 -0
  639. package/docs/design/templates/tab-bar/workspace-tabs-dark.svg +1 -0
  640. package/docs/design/templates/tab-bar/workspace-tabs.svg +1 -0
  641. package/docs/design/templates/tab-bar-dark.svg +1 -0
  642. package/docs/design/templates/tab-bar.svg +1 -0
  643. package/docs/design/templates/token-search-field/empty-dark.svg +1 -0
  644. package/docs/design/templates/token-search-field/empty.svg +1 -0
  645. package/docs/design/templates/token-search-field/tokens-dark.svg +1 -0
  646. package/docs/design/templates/token-search-field/tokens.svg +1 -0
  647. package/docs/design/templates/token-search-field-dark.svg +1 -0
  648. package/docs/design/templates/token-search-field.svg +1 -0
  649. package/docs/design/templates/toolbar/title-and-actions-dark.svg +1 -0
  650. package/docs/design/templates/toolbar/title-and-actions.svg +1 -0
  651. package/docs/design/templates/toolbar/width-visibility-320-dark.svg +1 -0
  652. package/docs/design/templates/toolbar/width-visibility-320.svg +1 -0
  653. package/docs/design/templates/toolbar/width-visibility-600-dark.svg +1 -0
  654. package/docs/design/templates/toolbar/width-visibility-600.svg +1 -0
  655. package/docs/design/templates/toolbar-control-group/borderless-single-dark.svg +1 -0
  656. package/docs/design/templates/toolbar-control-group/borderless-single.svg +1 -0
  657. package/docs/design/templates/toolbar-control-group/icon-buttons-dark.svg +1 -0
  658. package/docs/design/templates/toolbar-control-group/icon-buttons.svg +1 -0
  659. package/docs/design/templates/toolbar-control-group/icon-tile-brand-dark.svg +1 -0
  660. package/docs/design/templates/toolbar-control-group/icon-tile-brand.svg +1 -0
  661. package/docs/design/templates/toolbar-control-group/icon-tile-danger-dark.svg +1 -0
  662. package/docs/design/templates/toolbar-control-group/icon-tile-danger.svg +1 -0
  663. package/docs/design/templates/toolbar-control-group/icon-tile-neutral-dark.svg +1 -0
  664. package/docs/design/templates/toolbar-control-group/icon-tile-neutral.svg +1 -0
  665. package/docs/design/templates/toolbar-control-group/icon-tile-success-dark.svg +1 -0
  666. package/docs/design/templates/toolbar-control-group/icon-tile-success.svg +1 -0
  667. package/docs/design/templates/toolbar-control-group/icon-tile-warning-dark.svg +1 -0
  668. package/docs/design/templates/toolbar-control-group/icon-tile-warning.svg +1 -0
  669. package/docs/design/templates/toolbar-control-group/push-buttons-dark.svg +1 -0
  670. package/docs/design/templates/toolbar-control-group/push-buttons.svg +1 -0
  671. package/docs/design/templates/toolbar-control-group/with-text-dark.svg +1 -0
  672. package/docs/design/templates/toolbar-control-group/with-text.svg +1 -0
  673. package/docs/design/templates/toolbar-control-group-dark.svg +1 -0
  674. package/docs/design/templates/toolbar-control-group.svg +1 -0
  675. package/docs/design/templates/toolbar-dark.svg +1 -0
  676. package/docs/design/templates/toolbar-text/dark-tone-dark.svg +1 -0
  677. package/docs/design/templates/toolbar-text/dark-tone.svg +1 -0
  678. package/docs/design/templates/toolbar-text/default-dark.svg +1 -0
  679. package/docs/design/templates/toolbar-text/default.svg +1 -0
  680. package/docs/design/templates/toolbar-text/large-dark.svg +1 -0
  681. package/docs/design/templates/toolbar-text/large.svg +1 -0
  682. package/docs/design/templates/toolbar-text/small-dark.svg +1 -0
  683. package/docs/design/templates/toolbar-text/small.svg +1 -0
  684. package/docs/design/templates/toolbar-text-dark.svg +1 -0
  685. package/docs/design/templates/toolbar-text.svg +1 -0
  686. package/docs/design/templates/toolbar.svg +1 -0
  687. package/docs/design/templates/value-table/details-dark.svg +1 -0
  688. package/docs/design/templates/value-table/details.svg +1 -0
  689. package/docs/design/templates/value-table-dark.svg +1 -0
  690. package/docs/design/templates/value-table.svg +1 -0
  691. package/docs/design/templates.md +140 -0
  692. package/docs/design-philosophy.md +56 -19
  693. package/docs/device-class.md +10 -9
  694. package/docs/document-baseline.md +42 -0
  695. package/docs/examples/application-ui-profile.json +60 -0
  696. package/docs/examples/command-palette-adapter.tsx +69 -17
  697. package/docs/examples/component-catalog-extension.json +52 -0
  698. package/docs/examples/component-composition-extension.json +80 -0
  699. package/docs/layout.md +612 -53
  700. package/docs/nav-stack.md +163 -14
  701. package/docs/recipes.md +127 -52
  702. package/docs/split-view.md +76 -5
  703. package/docs/sunken-panel.md +93 -0
  704. package/docs/surface-scaffold.md +74 -0
  705. package/docs/tab-navigator.md +218 -0
  706. package/docs/type-contracts.md +137 -0
  707. package/docs/ui-analyzer.md +404 -0
  708. package/docs/ui-doctor.md +202 -0
  709. package/docs/ui-evaluator.md +139 -0
  710. package/docs/ux-demo.md +45 -15
  711. package/docs/webawesome-theme.md +204 -16
  712. package/docs/workbench.md +623 -12
  713. package/doctor/cli.mjs +120 -0
  714. package/doctor/component-style-checks.mjs +457 -0
  715. package/doctor/config.schema.json +94 -0
  716. package/doctor/eslint-diagnostics.d.mts +24 -0
  717. package/doctor/eslint-diagnostics.mjs +24 -0
  718. package/doctor/index.d.mts +122 -0
  719. package/doctor/index.mjs +1403 -0
  720. package/doctor/report.schema.json +118 -0
  721. package/evaluator/cli.mjs +89 -0
  722. package/evaluator/index.d.mts +90 -0
  723. package/evaluator/index.mjs +1203 -0
  724. package/evaluator/report.schema.json +152 -0
  725. package/llms.txt +562 -49
  726. package/package.json +247 -27
  727. package/scripts/component-catalog-extension-validation.mjs +28 -0
  728. package/traversal-exclusions.mjs +27 -0
  729. package/ux-demo/recipes/app-shell.tsx +204 -16
  730. package/ux-demo/recipes/collapsible-sidebar.tsx +260 -0
  731. package/ux-demo/recipes/compact-toolbar.tsx +135 -14
  732. package/ux-demo/recipes/composer-form.tsx +133 -21
  733. package/ux-demo/recipes/list-detail-dialog.tsx +255 -14
  734. package/ux-demo/recipes/list-workspace-states.tsx +183 -11
  735. package/ux-demo/recipes/loaders.ts +11 -3
  736. package/ux-demo/recipes/loading-inspector.tsx +161 -36
  737. package/ux-demo/recipes/mount-recipe.ts +28 -10
  738. package/ux-demo/recipes/navigation-sidebar.tsx +137 -11
  739. package/ux-demo/recipes/navigation-stack.tsx +79 -24
  740. package/ux-demo/recipes/types.ts +23 -2
  741. package/ux-demo/recipes/workspace-header.tsx +86 -5
  742. package/dist/browser/panel-header.js +0 -7
  743. package/dist/chunk-2RJBFNB6.js +0 -172
  744. package/dist/chunk-2RJBFNB6.js.map +0 -1
  745. package/dist/chunk-2TS7ZSYX.js +0 -20
  746. package/dist/chunk-2TS7ZSYX.js.map +0 -1
  747. package/dist/chunk-2Z5TWHKQ.js +0 -34
  748. package/dist/chunk-2Z5TWHKQ.js.map +0 -1
  749. package/dist/chunk-37T3VNIZ.js +0 -19
  750. package/dist/chunk-37T3VNIZ.js.map +0 -1
  751. package/dist/chunk-55DATV3A.js +0 -10
  752. package/dist/chunk-55DATV3A.js.map +0 -1
  753. package/dist/chunk-56RJXPHG.js.map +0 -1
  754. package/dist/chunk-7BR3DO2A.js.map +0 -1
  755. package/dist/chunk-7JB7VPRI.js +0 -34
  756. package/dist/chunk-7JB7VPRI.js.map +0 -1
  757. package/dist/chunk-7LDCTU7D.js +0 -134
  758. package/dist/chunk-7LDCTU7D.js.map +0 -1
  759. package/dist/chunk-AQNKJRFH.js +0 -79
  760. package/dist/chunk-AQNKJRFH.js.map +0 -1
  761. package/dist/chunk-B24C4A6T.js +0 -22
  762. package/dist/chunk-B24C4A6T.js.map +0 -1
  763. package/dist/chunk-BLK3UEEI.js +0 -23
  764. package/dist/chunk-BLK3UEEI.js.map +0 -1
  765. package/dist/chunk-DAFFDO33.js +0 -14
  766. package/dist/chunk-DAFFDO33.js.map +0 -1
  767. package/dist/chunk-I7INRJO4.js +0 -17
  768. package/dist/chunk-I7INRJO4.js.map +0 -1
  769. package/dist/chunk-L4OKFDJY.js +0 -24
  770. package/dist/chunk-L4OKFDJY.js.map +0 -1
  771. package/dist/chunk-LC3YSAZC.js +0 -39
  772. package/dist/chunk-LC3YSAZC.js.map +0 -1
  773. package/dist/chunk-M5JRI6MN.js +0 -27
  774. package/dist/chunk-M5JRI6MN.js.map +0 -1
  775. package/dist/chunk-MBR3TYNL.js +0 -14
  776. package/dist/chunk-MBR3TYNL.js.map +0 -1
  777. package/dist/chunk-MFKMHK5W.js +0 -10
  778. package/dist/chunk-MFKMHK5W.js.map +0 -1
  779. package/dist/chunk-MQIZAD4A.js +0 -227
  780. package/dist/chunk-MQIZAD4A.js.map +0 -1
  781. package/dist/chunk-RUNWEPR4.js +0 -10
  782. package/dist/chunk-RUNWEPR4.js.map +0 -1
  783. package/dist/chunk-W2FK7ZNY.js +0 -26
  784. package/dist/chunk-W2FK7ZNY.js.map +0 -1
  785. package/dist/chunk-W5EQ3HYQ.js +0 -42
  786. package/dist/chunk-W5EQ3HYQ.js.map +0 -1
  787. package/dist/chunk-WVPYVDXY.js +0 -15
  788. package/dist/chunk-WVPYVDXY.js.map +0 -1
  789. package/dist/chunk-YGN7OMLT.js.map +0 -1
  790. package/dist/panel-header.d.ts +0 -36
  791. package/dist/panel-header.js +0 -7
  792. package/dist/panel-header.js.map +0 -1
  793. package/dist/styles/panel-header.css +0 -64
  794. package/dist/styles/tab-scaffold.css +0 -84
  795. package/dist/tab-scaffold.d.ts +0 -30
  796. package/dist/tab-scaffold.js +0 -16
  797. package/dist/tab-scaffold.js.map +0 -1
  798. package/dist/wire-tab-scaffold.d.ts +0 -11
  799. package/dist/wire-tab-scaffold.js +0 -16
  800. package/dist/wire-tab-scaffold.js.map +0 -1
  801. package/docs/tab-scaffold.md +0 -41
  802. package/ux-demo/recipes/recipes.css +0 -361
@@ -6,6 +6,10 @@ type ListActionRowRootAttributes = Readonly<Record<`data-${string}`, string | un
6
6
  'data-item-id'?: never;
7
7
  'data-has-icon'?: never;
8
8
  'data-multiline'?: never;
9
+ 'data-density'?: never;
10
+ 'data-divider'?: never;
11
+ 'data-busy'?: never;
12
+ 'data-trailing-visibility'?: never;
9
13
  'data-state'?: never;
10
14
  'data-selected'?: never;
11
15
  'data-pressed'?: never;
@@ -14,6 +18,7 @@ type ListActionRowTrailingAttributes = Readonly<Record<`data-${string}`, string
14
18
  'data-component'?: never;
15
19
  'data-action'?: never;
16
20
  'data-item-id'?: never;
21
+ 'data-kui-disabled'?: never;
17
22
  popoverTarget?: string;
18
23
  popoverTargetAction?: 'toggle' | 'show' | 'hide';
19
24
  'aria-controls'?: string;
@@ -22,6 +27,11 @@ type ListActionRowTrailingAttributes = Readonly<Record<`data-${string}`, string
22
27
  interface ListActionRowProps {
23
28
  /** Visible dormant content for the primary button. Must not contain interactive descendants. */
24
29
  label: string | SafeHtml;
30
+ description?: string | SafeHtml;
31
+ status?: string | SafeHtml;
32
+ busy?: boolean;
33
+ density?: 'standard' | 'compact';
34
+ divider?: 'none' | 'before' | 'after' | 'both';
25
35
  /** Decorative dormant content for the primary button. Must not contain interactive descendants. */
26
36
  icon?: SafeHtml;
27
37
  action: string;
@@ -34,7 +44,7 @@ interface ListActionRowProps {
34
44
  state?: string;
35
45
  disabled?: boolean;
36
46
  tabIndex?: number;
37
- /** Render as an unanimated loading skeleton, disabling both actions. */
47
+ /** Render as an unanimated loading skeleton, disabling both actions: label, description, icon, and status text become skeletons; the `busy` indicator stays live. */
38
48
  placeholder?: boolean;
39
49
  trailingAction: string;
40
50
  trailingActionLabel: string;
@@ -42,11 +52,13 @@ interface ListActionRowProps {
42
52
  trailingActionIcon: SafeHtml;
43
53
  trailingActionDisabled?: boolean;
44
54
  trailingActionTitle?: string;
55
+ trailingActionVisibility?: 'always' | 'interaction';
45
56
  className?: string;
46
- style?: string;
47
57
  rootAttributes?: ListActionRowRootAttributes;
48
58
  trailingActionAttributes?: ListActionRowTrailingAttributes;
59
+ /** Native named-slot assignment when composed inside a web component. */
60
+ slot?: string;
49
61
  }
50
- declare function ListActionRow({ label, icon, action, itemId, selected, pressed, accessibleLabel, title, multiline, state, disabled, tabIndex, placeholder, trailingAction, trailingActionLabel, trailingActionIcon, trailingActionDisabled, trailingActionTitle, className, style, rootAttributes, trailingActionAttributes }: ListActionRowProps): SafeHtml;
62
+ declare function ListActionRow({ label, description, status, busy, density, divider, icon, action, itemId, selected, pressed, accessibleLabel, title, multiline, state, disabled, tabIndex, placeholder, trailingAction, trailingActionLabel, trailingActionIcon, trailingActionDisabled, trailingActionTitle, trailingActionVisibility, className, rootAttributes, trailingActionAttributes, slot, }: ListActionRowProps): SafeHtml;
51
63
 
52
64
  export { ListActionRow, type ListActionRowProps };
@@ -1,4 +1,7 @@
1
- export { ListActionRow } from './chunk-7JB7VPRI.js';
1
+ export { ListActionRow } from './chunk-XKZPBRU7.js';
2
+
3
+
4
+
2
5
 
3
6
 
4
7
 
@@ -1,14 +1,23 @@
1
1
  import { SafeHtml } from 'kerfjs';
2
+ import { HeadingLevel } from './toolbar-text.js';
3
+ import './css-values.js';
2
4
 
3
5
  type ListHeaderRootAttributes = Readonly<Record<`data-${string}`, string | undefined> & {
4
6
  'data-component'?: never;
5
7
  'data-action'?: never;
6
8
  'data-has-badge'?: never;
7
9
  'data-has-count'?: never;
10
+ 'data-density'?: never;
11
+ 'data-size'?: never;
12
+ 'data-divider'?: never;
13
+ 'data-inline'?: never;
14
+ 'data-width'?: never;
15
+ 'data-indicator-tone'?: never;
8
16
  'data-toggle'?: never;
9
17
  }>;
10
18
  type ListHeaderTriggerAttributes = Readonly<Record<`data-${string}`, string | undefined> & {
11
19
  'data-action'?: never;
20
+ 'data-kui-disabled'?: never;
12
21
  popoverTarget?: string;
13
22
  popoverTargetAction?: 'toggle' | 'show' | 'hide';
14
23
  'aria-controls'?: string;
@@ -16,28 +25,74 @@ type ListHeaderTriggerAttributes = Readonly<Record<`data-${string}`, string | un
16
25
  }>;
17
26
  interface ListHeaderBaseProps {
18
27
  label: string;
19
- action?: string;
20
- actionLabel?: string;
21
- actionIcon?: SafeHtml;
22
- actionDisabled?: boolean;
23
- disabledReason?: string;
24
- expanded?: boolean;
25
- toggle?: boolean;
28
+ /** Visual label size, independent of the native heading level. Default `sm`. */
29
+ size?: 'xs' | 'sm' | 'm' | 'l' | 'xl';
30
+ density?: 'standard' | 'compact';
31
+ divider?: 'none' | 'before' | 'after' | 'both';
32
+ /** Shrink-wrap the header without its default outer margin, border, or padding. */
33
+ inline?: boolean;
34
+ /** Fill the available row or shrink-wrap while retaining normal header geometry. */
35
+ width?: 'fill' | 'content';
36
+ indicatorTone?: 'neutral' | 'accent' | 'pop' | 'danger';
26
37
  /** Render as an unanimated loading skeleton: keep the label and action affordance, disable interaction. */
27
38
  placeholder?: boolean;
28
39
  rootAttributes?: ListHeaderRootAttributes;
29
40
  triggerAttributes?: ListHeaderTriggerAttributes;
41
+ /** Native named-slot assignment when composed inside a web component. */
42
+ slot?: string;
30
43
  }
44
+ type ListHeaderModeProps = {
45
+ /** Render the title as a controlled disclosure trigger. */
46
+ toggle: true;
47
+ /** A toggle's label is its button text, not a heading. */
48
+ headingLevel?: never;
49
+ action: string;
50
+ expanded: boolean;
51
+ actionIcon?: SafeHtml;
52
+ actionLabel?: never;
53
+ actionDisabled?: boolean;
54
+ disabledReason?: string;
55
+ } | {
56
+ /** Render a separately named trailing action. */
57
+ toggle?: false;
58
+ /**
59
+ * Native heading level (`h1`–`h6`) of the label. Default `2`. Match the
60
+ * document outline; the visual treatment does not change.
61
+ */
62
+ headingLevel?: HeadingLevel;
63
+ action: string;
64
+ actionLabel: string;
65
+ actionIcon: SafeHtml;
66
+ expanded?: never;
67
+ actionDisabled?: boolean;
68
+ disabledReason?: string;
69
+ } | {
70
+ /** Render a passive section heading. */
71
+ toggle?: false;
72
+ /**
73
+ * Native heading level (`h1`–`h6`) of the label. Default `2`. Match the
74
+ * document outline; the visual treatment does not change.
75
+ */
76
+ headingLevel?: HeadingLevel;
77
+ action?: never;
78
+ actionLabel?: never;
79
+ actionIcon?: never;
80
+ expanded?: never;
81
+ actionDisabled?: never;
82
+ disabledReason?: never;
83
+ };
31
84
  type ListHeaderIndicatorProps = {
32
85
  count: number;
33
86
  countLabel: string;
34
87
  badge?: never;
88
+ status?: never;
35
89
  } | {
36
90
  count?: never;
37
91
  countLabel?: never;
38
- badge?: SafeHtml;
92
+ badge?: SafeHtml | undefined;
93
+ status?: SafeHtml | undefined;
39
94
  };
40
- type ListHeaderProps = ListHeaderBaseProps & ListHeaderIndicatorProps;
41
- declare function ListHeader({ label, count, countLabel, badge, action, actionLabel, actionIcon, actionDisabled, disabledReason, expanded, toggle, placeholder, rootAttributes, triggerAttributes }: ListHeaderProps): SafeHtml;
95
+ type ListHeaderProps = ListHeaderBaseProps & ListHeaderIndicatorProps & ListHeaderModeProps;
96
+ declare function ListHeader({ label, size, headingLevel, count, countLabel, badge, status, density, divider, inline, width, indicatorTone, action, actionLabel, actionIcon, actionDisabled, disabledReason, expanded, toggle, placeholder, rootAttributes, triggerAttributes, slot, }: ListHeaderProps): SafeHtml;
42
97
 
43
98
  export { ListHeader, type ListHeaderProps };
@@ -1,4 +1,7 @@
1
- export { ListHeader } from './chunk-W5EQ3HYQ.js';
1
+ export { ListHeader } from './chunk-JQ4QGIKS.js';
2
+
3
+
4
+
2
5
 
3
6
 
4
7
 
@@ -0,0 +1,22 @@
1
+ import * as kerfjs from 'kerfjs';
2
+ import { K as KerfUiContent } from './semantic-content-BbzjvSu9.js';
3
+ import { S as Sides } from './sides-BPSWde0A.js';
4
+
5
+ interface ListInsetControlProps {
6
+ /** Control(s) that own their own border and padding (e.g. an input, a `wa-*`). */
7
+ children: KerfUiContent;
8
+ /** Physical inset sides in canonical top/right/bottom/left order. Defaults to all sides. */
9
+ sides?: Sides;
10
+ className?: string;
11
+ /** Native named-slot assignment when composed inside a web component. */
12
+ slot?: string;
13
+ }
14
+ /**
15
+ * Insets a control into a pane/list content region: an 8px inline margin (so its
16
+ * edges line up with `.kui-content` items) and a stretch flex row with an 8px gap.
17
+ * Use it for controls that carry their own border and padding but no outer margin
18
+ * — the wrapper adds only the alignment margin and layout, not a second inset.
19
+ */
20
+ declare function ListInsetControl({ children, sides, className, slot, }: ListInsetControlProps): kerfjs.SafeHtml;
21
+
22
+ export { ListInsetControl, type ListInsetControlProps, Sides };
@@ -0,0 +1,3 @@
1
+ export { ListInsetControl } from './chunk-AN5IWMTM.js';
2
+
3
+ //# sourceMappingURL=list-inset-control.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"names":[],"mappings":"","file":"list-inset-control.js"}
@@ -0,0 +1,30 @@
1
+ import * as kerfjs from 'kerfjs';
2
+ import { K as KerfUiContent } from './semantic-content-BbzjvSu9.js';
3
+ import { S as Sides } from './sides-BPSWde0A.js';
4
+
5
+ type ListInsetTextRootAttributes = Readonly<Record<`data-${string}`, string | undefined> & {
6
+ 'data-component'?: never;
7
+ 'data-sides'?: never;
8
+ }>;
9
+ interface ListInsetTextProps {
10
+ /** Text (or inline content) that carries no margin, border, or padding of its own. */
11
+ children: KerfUiContent | string;
12
+ /** Physical inset sides in canonical top/right/bottom/left order. Defaults to all sides. */
13
+ sides?: Sides;
14
+ className?: string;
15
+ /** Safe `data-*` metadata; component-owned structural attributes stay protected. */
16
+ rootAttributes?: ListInsetTextRootAttributes;
17
+ /** Native named-slot assignment when composed inside a web component. */
18
+ slot?: string;
19
+ }
20
+ /**
21
+ * Gives bare text the content-item geometry — an 8px inline margin, a 1px
22
+ * transparent border, and 8px padding — so a plain string lines up with
23
+ * bordered `.kui-content` items (its text edge lands at the same 17px inset).
24
+ * Use it for text elements that have no margin, border, or padding of their own.
25
+ * Pass `sides="rl"` to keep the horizontal inset but drop the vertical box
26
+ * space for tight text layout.
27
+ */
28
+ declare function ListInsetText({ children, sides, className, rootAttributes, slot, }: ListInsetTextProps): kerfjs.SafeHtml;
29
+
30
+ export { ListInsetText, type ListInsetTextProps, Sides };
@@ -0,0 +1,4 @@
1
+ export { ListInsetText } from './chunk-NMWDHZVM.js';
2
+
3
+
4
+ //# sourceMappingURL=list-inset-text.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"names":[],"mappings":"","file":"list-inset-text.js"}
@@ -1,33 +1,62 @@
1
1
  import { SafeHtml } from 'kerfjs';
2
+ import { K as KerfUiContent } from './semantic-content-BbzjvSu9.js';
2
3
 
3
4
  type ListItemRootAttributes = Readonly<Record<`data-${string}`, string | undefined> & {
4
5
  'data-component'?: never;
5
6
  'data-action'?: never;
6
7
  'data-item-id'?: never;
7
8
  'data-has-icon'?: never;
9
+ 'data-has-description'?: never;
8
10
  'data-multiline'?: never;
11
+ 'data-density'?: never;
12
+ 'data-divider'?: never;
13
+ 'data-busy'?: never;
9
14
  'data-state'?: never;
15
+ 'data-kui-disabled'?: never;
16
+ 'data-icon-align'?: never;
10
17
  }>;
11
18
  interface ListItemProps {
12
19
  label: string | SafeHtml;
20
+ /** App-owned supporting text rendered in the component's stable label stack. */
21
+ description?: string | SafeHtml;
13
22
  icon?: SafeHtml;
14
- trailing?: SafeHtml;
23
+ /** Dormant author content at the row's end; a placeholder renders it as a skeleton. */
24
+ trailing?: KerfUiContent;
25
+ /** Dormant status metadata rendered before trailing content; a placeholder renders it as a skeleton. */
26
+ status?: string | SafeHtml;
27
+ /** Show a progress indicator and expose the row as busy without replacing its content; a placeholder keeps the indicator. */
28
+ busy?: boolean;
29
+ density?: 'standard' | 'compact' | 'spacious';
30
+ divider?: 'none' | 'before' | 'after' | 'both';
15
31
  selected?: boolean;
16
32
  action: string;
17
33
  itemId?: string;
18
34
  className?: string;
19
- style?: string;
20
35
  pressed?: boolean;
21
36
  accessibleLabel?: string;
22
37
  title?: string;
23
38
  multiline?: boolean;
39
+ /** Alignment of an icon beside a wrapped label. Defaults to its first line. */
40
+ multilineIconAlign?: 'first-line' | 'center';
24
41
  state?: string;
25
42
  disabled?: boolean;
26
43
  tabIndex?: number;
27
- /** Render the row as an unanimated loading skeleton, disabling its action. */
44
+ /** Render the row as an unanimated loading skeleton, disabling its action: label, description, icon, status, and trailing content become skeletons; the `busy` indicator stays live. */
28
45
  placeholder?: boolean;
29
46
  rootAttributes?: ListItemRootAttributes;
47
+ /** Native named-slot assignment when composed inside a web component. */
48
+ slot?: string;
30
49
  }
31
- declare function ListItem({ label, icon, trailing, selected, action, itemId, className, style, pressed, accessibleLabel, title, multiline, state, disabled, tabIndex, placeholder, rootAttributes }: ListItemProps): SafeHtml;
50
+ interface ListItemLinkProps extends Omit<ListItemProps, 'action' | 'pressed'> {
51
+ /** Native destination for this navigation row. */
52
+ href: string;
53
+ /** Open in a new tab with a safe rel and announce that behavior. */
54
+ external?: boolean;
55
+ action?: never;
56
+ pressed?: never;
57
+ }
58
+ declare function ListItem({ label, description, icon, trailing, status, busy, density, divider, selected, action, itemId, className, pressed, accessibleLabel, title, multiline, multilineIconAlign, state, disabled, tabIndex, placeholder, rootAttributes, slot, }: ListItemProps): SafeHtml;
59
+ /** A navigation row with native link activation and ListItem geometry. */
60
+ declare function ListItemLink({ href, external, label, description, icon, trailing, status, busy, density, divider, selected, itemId, className, accessibleLabel, title, multiline, multilineIconAlign, state, disabled, tabIndex, placeholder, rootAttributes, slot, }: ListItemLinkProps): SafeHtml;
32
61
 
33
- export { ListItem, type ListItemProps };
62
+ export { ListItem, ListItemLink, type ListItemLinkProps, type ListItemProps };
package/dist/list-item.js CHANGED
@@ -1,4 +1,7 @@
1
- export { ListItem } from './chunk-L4OKFDJY.js';
1
+ export { ListItem, ListItemLink } from './chunk-3PO7JEK7.js';
2
+
3
+
4
+
2
5
 
3
6
 
4
7
 
package/dist/list.d.ts ADDED
@@ -0,0 +1,64 @@
1
+ import * as kerfjs from 'kerfjs';
2
+ import { K as KerfUiContent } from './semantic-content-BbzjvSu9.js';
3
+ import { H as HorizontalAlignment, L as ListVerticalAlignment } from './flex-alignment-4ms8ZbV8.js';
4
+ export { V as VerticalAlignment } from './flex-alignment-4ms8ZbV8.js';
5
+ import { S as Sides } from './sides-BPSWde0A.js';
6
+ import { UiGap, CssFlexKeyword, CssFlex } from './css-values.js';
7
+ export { CssLength, UiGapValue, UiSpaceName } from './css-values.js';
8
+
9
+ type ListRootAttributes = Readonly<Record<`data-${string}`, string | undefined> & {
10
+ 'data-component'?: never;
11
+ 'data-gap'?: never;
12
+ 'data-flex'?: never;
13
+ 'data-fill'?: never;
14
+ 'data-h-align'?: never;
15
+ 'data-v-align'?: never;
16
+ 'data-scrollable'?: never;
17
+ 'data-text-insets'?: never;
18
+ 'data-control-insets'?: never;
19
+ }>;
20
+ interface ListProps {
21
+ children?: KerfUiContent;
22
+ /** Make this list a labeled multi-select grid for `ContentItem selectionMode="multiple"` rows. */
23
+ selectionMode?: 'multiple';
24
+ /** Accessible name for the multi-select grid. */
25
+ ariaLabel?: string;
26
+ /** Standard gap (`true`), one spacing value, or separate column and row values. Defaults to no gap. */
27
+ gap?: boolean | UiGap;
28
+ /** Allow this list to grow/shrink, use a keyword, or supply a typed CSS flex shorthand. */
29
+ flex?: boolean | CssFlexKeyword | CssFlex;
30
+ /**
31
+ * Fill the height of a parent with a definite height, such as an app root or
32
+ * a fixed-height frame, when this list is that parent's layout root. Inside a
33
+ * flex layout use `flex` instead. Defaults to false.
34
+ */
35
+ fill?: boolean;
36
+ /** Horizontal alignment. Defaults to full to preserve stretch-aligned list children. */
37
+ hAlign?: HorizontalAlignment;
38
+ /** Vertical distribution. Defaults to top. */
39
+ vAlign?: ListVerticalAlignment;
40
+ /** Own vertical scrolling and overscroll containment. */
41
+ scrollable?: boolean;
42
+ /** Physical divider edges in canonical top/right/bottom/left order. */
43
+ dividerSides?: Sides;
44
+ /** Physical sides that receive the standard 17px text inset. */
45
+ textInsets?: Sides;
46
+ /** Physical sides that receive the standard 8px control inset. Text insets win on overlap. */
47
+ controlInsets?: Sides;
48
+ className?: string;
49
+ /** Safe `data-*` metadata; List-owned structural attributes remain protected. */
50
+ rootAttributes?: ListRootAttributes;
51
+ /** Native named-slot assignment when composed inside a web component. */
52
+ slot?: string;
53
+ }
54
+ /**
55
+ * A list's configuration, apart from its content and styling hooks: the props a
56
+ * composite that renders a `List` for the app (the Workbench's `mainHeader` /
57
+ * `mainFooter` chrome) forwards, so the app configures that list instead of
58
+ * styling it. An omitted or `undefined` field keeps the composite's default.
59
+ */
60
+ type ListConfig = Pick<ListProps, 'gap' | 'hAlign' | 'vAlign' | 'dividerSides' | 'textInsets' | 'controlInsets'>;
61
+ /** A stretch-aligned vertical stack with optional gap, flex, fill, scroll, and dividers. */
62
+ declare function List({ children, selectionMode, ariaLabel, gap, flex, fill, hAlign, vAlign, scrollable, dividerSides, textInsets, controlInsets, className, rootAttributes, slot, }: ListProps): kerfjs.SafeHtml;
63
+
64
+ export { CssFlex, CssFlexKeyword, HorizontalAlignment, List, type ListConfig, type ListProps, ListVerticalAlignment, Sides, UiGap };
package/dist/list.js ADDED
@@ -0,0 +1,7 @@
1
+ export { List } from './chunk-QQICWWNX.js';
2
+
3
+
4
+
5
+
6
+
7
+ //# sourceMappingURL=list.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"names":[],"mappings":"","file":"list.js"}
@@ -1,10 +1,20 @@
1
1
  import * as kerfjs from 'kerfjs';
2
+ import { CssForegroundColor } from './css-values.js';
3
+ import { LucideIconSize } from './lucide-icon.js';
4
+ import 'lucide';
2
5
 
6
+ type LoadingSpinnerSize = LucideIconSize;
3
7
  interface LoadingSpinnerProps {
4
8
  className?: string;
9
+ /** Foreground color; omit to inherit the surrounding text color. */
10
+ color?: CssForegroundColor;
5
11
  label?: string;
12
+ /** Named icon scale or positive pixel size, converted to rem. Omit for 1em. */
13
+ size?: LoadingSpinnerSize;
14
+ /** Native named-slot assignment when composed inside a web component. */
15
+ slot?: string;
6
16
  }
7
17
  /** Stable viewBox-centered progress ring based on svg-spinners' MIT-licensed 180-ring. */
8
- declare function LoadingSpinner({ className, label }: LoadingSpinnerProps): kerfjs.SafeHtml;
18
+ declare function LoadingSpinner({ className, color, label, size, slot, }: LoadingSpinnerProps): kerfjs.SafeHtml;
9
19
 
10
- export { LoadingSpinner, type LoadingSpinnerProps };
20
+ export { LoadingSpinner, type LoadingSpinnerProps, type LoadingSpinnerSize };
@@ -1,3 +1,4 @@
1
- export { LoadingSpinner } from './chunk-55DATV3A.js';
1
+ export { LoadingSpinner } from './chunk-YOKEL75M.js';
2
+
2
3
 
3
4
  //# sourceMappingURL=loading-spinner.js.map
@@ -1,14 +1,26 @@
1
- import * as kerfjs from 'kerfjs';
1
+ import { SafeHtml } from 'kerfjs';
2
2
  import { IconNode } from 'lucide';
3
+ import { CssForegroundColor } from './css-values.js';
3
4
 
4
5
  type LucideNode = IconNode;
6
+ type LucideIconSize = 'xs' | 's' | 'm' | 'l' | 'xl' | number;
5
7
  interface LucideIconProps {
6
8
  icon: LucideNode;
7
9
  name: string;
10
+ /** Outline by default; solid fills compatible glyphs with the current text color. */
11
+ appearance?: 'outline' | 'solid';
8
12
  className?: string;
13
+ /** Foreground color; omit to inherit the surrounding text color. */
14
+ color?: CssForegroundColor;
15
+ /** Flow with surrounding text instead of occupying a block. */
16
+ inline?: boolean;
9
17
  label?: string;
18
+ /** Named icon scale or positive pixel size, converted to rem. Omit for 1em. */
19
+ size?: LucideIconSize;
20
+ /** Native named-slot assignment when composed inside a web component. */
21
+ slot?: string;
10
22
  }
11
23
  /** Render a Lucide-compatible icon node without copying icon SVG strings. */
12
- declare function LucideIcon({ icon, name, className, label }: LucideIconProps): kerfjs.SafeHtml;
24
+ declare function LucideIcon({ icon, name, appearance, className, color, inline, label, size, slot, }: LucideIconProps): SafeHtml;
13
25
 
14
- export { LucideIcon, type LucideIconProps, type LucideNode };
26
+ export { LucideIcon, type LucideIconProps, type LucideIconSize, type LucideNode };
@@ -1,3 +1,4 @@
1
- export { LucideIcon } from './chunk-W2FK7ZNY.js';
1
+ export { LucideIcon } from './chunk-6L3WBDNW.js';
2
+
2
3
 
3
4
  //# sourceMappingURL=lucide-icon.js.map
@@ -0,0 +1,109 @@
1
+ import * as kerfjs from 'kerfjs';
2
+ import { K as KerfUiContent } from './semantic-content-BbzjvSu9.js';
3
+ import { ListConfig } from './list.js';
4
+ import { PaneConfig } from './pane.js';
5
+ import { c as PanelBottomToolbar } from './panel-toolbar-CL9tYOkh.js';
6
+ import { ToolbarConfig } from './toolbar.js';
7
+ import { ToolbarTextSize, HeadingLevel } from './toolbar-text.js';
8
+
9
+ /** Content and chrome shared by a navigation view and a static workbench panel. */
10
+ interface NavPane<TToolbar, TBottomToolbar> {
11
+ content: KerfUiContent;
12
+ toolbar?: TToolbar;
13
+ header?: KerfUiContent;
14
+ headerList?: ListConfig;
15
+ footer?: KerfUiContent;
16
+ footerList?: ListConfig;
17
+ bottomToolbar?: TBottomToolbar;
18
+ pane?: PaneConfig;
19
+ }
20
+
21
+ /**
22
+ * One entry in a {@link NavStack}. The app owns the stack as an array (usually a
23
+ * signal); `NavStack` renders it and `wireNavStack` animates the transitions.
24
+ */
25
+ interface NavStackView extends NavPane<NavStackViewToolbar, PanelBottomToolbar> {
26
+ /** Stable identity for keyed reconcile and transition direction. */
27
+ key: string;
28
+ }
29
+ /** Per-view top toolbar. The stack supplies its back control before `leading`. */
30
+ interface NavStackViewToolbar extends NavStackToolbarConfig {
31
+ title?: string;
32
+ leading?: KerfUiContent;
33
+ center?: KerfUiContent;
34
+ trailing?: KerfUiContent;
35
+ }
36
+ /** A view's structured bottom toolbar; it cross-fades on navigation. */
37
+ type NavStackViewBottomToolbar = PanelBottomToolbar;
38
+ /**
39
+ * The top toolbar's configuration. Its `ToolbarConfig` forwards to the real
40
+ * `Toolbar` the stack renders; by default that toolbar draws no divider and
41
+ * claims the top and side safe-area edges the stack still touches.
42
+ */
43
+ interface NavStackToolbarConfig extends ToolbarConfig {
44
+ /** Accessible name of the top toolbar (default: none). */
45
+ label?: string;
46
+ /** Size of the view title's `ToolbarText` (default `large`). */
47
+ titleSize?: ToolbarTextSize;
48
+ /** Expose the view title as a heading at this level (default: a plain span). */
49
+ headingLevel?: HeadingLevel;
50
+ }
51
+ interface NavStackProps {
52
+ id: string;
53
+ /** Accessible name for the stack region. */
54
+ label: string;
55
+ /** The stack, root first; the last entry is the active top view. */
56
+ views: NavStackView[];
57
+ /** Accessible label for the icon-only back control (default "Back"). */
58
+ backLabel?: string;
59
+ /** The back control's icon (default a chevron-left `LucideIcon`). */
60
+ backIcon?: KerfUiContent;
61
+ /**
62
+ * Visible text beside the back icon, such as the previous view's title
63
+ * (default: icon only). When set, the text names the control and
64
+ * `backLabel` is not used.
65
+ */
66
+ backText?: string;
67
+ /** The top toolbar's configuration, forwarded to its `Toolbar`. */
68
+ toolbarConfig?: NavStackToolbarConfig;
69
+ /** Persistent last group in every view's top toolbar, supplied by a hosting panel. */
70
+ panelToggle?: KerfUiContent;
71
+ /** Hide the top toolbar entirely (rare — a fully custom-chrome view). */
72
+ hideToolbar?: boolean;
73
+ /** Optional persistent bottom toolbar used when the active view does not provide one. */
74
+ bottomToolbar?: NavStackViewBottomToolbar;
75
+ /**
76
+ * Stack chrome separator. `auto` (default) draws both available edges
77
+ * against a sunken active Pane and otherwise follows `chromeDividers`;
78
+ * `hidden` suppresses the stack-owned edges.
79
+ */
80
+ separator?: 'auto' | 'hidden';
81
+ /**
82
+ * The line under the top chrome and over the bottom toolbar, where they
83
+ * meet the active view. `scroll` (default) shows the chrome's line only
84
+ * while the view's content is scrolled beneath it, and the bottom
85
+ * toolbar's only while more content lies below — never when the content
86
+ * fits — once `wireScrollDividers` (`@kerfjs/ui/wire-scroll-dividers`) is
87
+ * wired above the stack; unwired, neither shows. `always` shows both
88
+ * without the wiring; `none` neither, even when wired. The line is drawn
89
+ * inside the chrome, so no state moves the chrome or the content. A
90
+ * A sunken active Pane still draws the separator unless
91
+ * `separator="hidden"`. A `toolbarConfig.dividerSides` edge is the Toolbar's
92
+ * own and is unaffected.
93
+ */
94
+ chromeDividers?: 'scroll' | 'always' | 'none';
95
+ className?: string;
96
+ /** Native named-slot assignment when composed inside a web component. */
97
+ slot?: string;
98
+ }
99
+ /**
100
+ * A navigation stack (iOS-style push/pop). Renders every entry stacked, the last
101
+ * one active; `@kerfjs/ui/wire-nav-stack`'s `wireNavStack` slides the content and
102
+ * cross-fades the chrome across a change. Its top chrome is a real `Toolbar`: the
103
+ * back control and title lead, the active view's `toolbar` fills the zones,
104
+ * and `toolbarConfig` supplies defaults. A single-pane
105
+ * layout is a `NavStack` with one entry. See `docs/23-app-layouts.md` §3.1.
106
+ */
107
+ declare function NavStack({ id, label, views, backLabel, backIcon, backText, toolbarConfig, panelToggle, hideToolbar, bottomToolbar, separator, chromeDividers, className, slot, }: NavStackProps): kerfjs.SafeHtml;
108
+
109
+ export { type NavStackProps as N, type NavStackView as a, type NavPane as b, NavStack as c, type NavStackToolbarConfig as d, type NavStackViewBottomToolbar as e, type NavStackViewToolbar as f };
@@ -1,38 +1,13 @@
1
- import { SafeHtml } from 'kerfjs';
2
-
3
- /**
4
- * One entry in a {@link NavStack}. The app owns the stack as an array (usually a
5
- * signal); `NavStack` renders it and `wireNavStack` animates the transitions.
6
- */
7
- interface NavStackView {
8
- /** Stable identity for keyed reconcile and transition direction. */
9
- key: string;
10
- content: SafeHtml;
11
- /** Title shown in the top toolbar for this view. */
12
- title?: string;
13
- /** Trailing actions for this view's top toolbar. */
14
- toolbar?: SafeHtml;
15
- }
16
- interface NavStackProps {
17
- id: string;
18
- /** Accessible name for the stack region. */
19
- label: string;
20
- /** The stack, root first; the last entry is the active top view. */
21
- views: NavStackView[];
22
- /** Accessible label for the back control (default "Back"). */
23
- backLabel?: string;
24
- /** Hide the top toolbar entirely (rare — a fully custom-chrome view). */
25
- hideToolbar?: boolean;
26
- /** Optional persistent bottom toolbar. */
27
- bottomToolbar?: SafeHtml;
28
- className?: string;
29
- }
30
- /**
31
- * A navigation stack (iOS-style push/pop). Renders every entry stacked, the last
32
- * one active; `@kerfjs/ui/wire-nav-stack`'s `wireNavStack` slides the content and
33
- * cross-fades the chrome across a change. A single-pane layout is a `NavStack`
34
- * with one entry. See `docs/23-app-layouts.md` §3.1.
35
- */
36
- declare function NavStack({ id, label, views, backLabel, hideToolbar, bottomToolbar, className }: NavStackProps): SafeHtml;
37
-
38
- export { NavStack, type NavStackProps, type NavStackView };
1
+ export { c as NavStack, N as NavStackProps, d as NavStackToolbarConfig, a as NavStackView, e as NavStackViewBottomToolbar, f as NavStackViewToolbar } from './nav-stack-BvSKY448.js';
2
+ import 'kerfjs';
3
+ import './semantic-content-BbzjvSu9.js';
4
+ import './list.js';
5
+ import './flex-alignment-4ms8ZbV8.js';
6
+ import './sides-BPSWde0A.js';
7
+ import './css-values.js';
8
+ import './pane.js';
9
+ import './panel-toolbar-CL9tYOkh.js';
10
+ import './toolbar.js';
11
+ import './lucide-icon.js';
12
+ import 'lucide';
13
+ import './toolbar-text.js';