@kerfjs/ui 5.0.0-beta.75 → 5.0.0-beta.76
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.
- package/README.md +29 -1
- package/ai/component-catalog.json +23 -11
- package/ai/component-composition.json +9 -3
- package/ai/components/README.md +1 -1
- package/ai/components/badge.md +1 -1
- package/ai/components/chip.md +1 -1
- package/ai/components/content-item.md +8 -5
- package/ai/components/document-baseline.md +2 -2
- package/ai/components/grid.md +5 -3
- package/ai/components/lucide-icon.md +11 -0
- package/ai/public-api-signatures-v1.md +92 -61
- package/ai/skill.md +33 -4
- package/ai/webawesome-jsx-signatures-v1.md +1 -1
- package/analyzer/index.mjs +11 -1
- package/dist/app-tab.js +1 -1
- package/dist/badge.d.ts +5 -3
- package/dist/badge.js +1 -1
- package/dist/browser/catalog.js +7 -7
- package/dist/browser/collapsible-panel.js +3 -3
- package/dist/browser/list-header.js +1 -1
- package/dist/browser/nav-stack.js +1 -1
- package/dist/browser/select.js +1 -1
- package/dist/browser/split-view.js +1 -1
- package/dist/browser/workbench.js +4 -4
- package/dist/catalog-resources.d.ts +6 -6
- package/dist/catalog-resources.js +1 -1
- package/dist/catalog-resources.js.map +1 -1
- package/dist/catalog.d.ts +5 -5
- package/dist/catalog.js +13 -13
- package/dist/catalog.js.map +1 -1
- package/dist/chip.d.ts +3 -2
- package/dist/chip.js +1 -1
- package/dist/{chunk-SVLDRGPJ.js → chunk-3RE2JMZU.js} +7 -3
- package/dist/chunk-3RE2JMZU.js.map +1 -0
- package/dist/{chunk-V4WLBOVJ.js → chunk-5BZBIRQG.js} +4 -4
- package/dist/chunk-5BZBIRQG.js.map +1 -0
- package/dist/{chunk-SX7FJXPJ.js → chunk-5D3WDMIK.js} +4 -4
- package/dist/chunk-5D3WDMIK.js.map +1 -0
- package/dist/{chunk-HKVJ5MW3.js → chunk-5PAVAR4B.js} +3 -3
- package/dist/chunk-5PAVAR4B.js.map +1 -0
- package/dist/{chunk-5TTZPGUY.js → chunk-72LLWYP2.js} +6 -6
- package/dist/chunk-72LLWYP2.js.map +1 -0
- package/dist/{chunk-JA4J7Y4C.js → chunk-75I3SNUJ.js} +2 -2
- package/dist/chunk-75I3SNUJ.js.map +1 -0
- package/dist/{chunk-K47P7QZC.js → chunk-7QQ3HE47.js} +2 -2
- package/dist/chunk-7QQ3HE47.js.map +1 -0
- package/dist/{chunk-O5GM2JAM.js → chunk-7QWIJEK5.js} +9 -9
- package/dist/chunk-7QWIJEK5.js.map +1 -0
- package/dist/{chunk-5I7QGQVT.js → chunk-AN5IWMTM.js} +2 -2
- package/dist/chunk-AN5IWMTM.js.map +1 -0
- package/dist/{chunk-3BYFWTP3.js → chunk-AOAW55JN.js} +2 -2
- package/dist/chunk-AOAW55JN.js.map +1 -0
- package/dist/{chunk-5UGLKFBF.js → chunk-ARZ4RSQO.js} +5 -6
- package/dist/chunk-ARZ4RSQO.js.map +1 -0
- package/dist/{chunk-TCXDZNCX.js → chunk-BJLXE56E.js} +6 -6
- package/dist/chunk-BJLXE56E.js.map +1 -0
- package/dist/{chunk-RGS4WX2M.js → chunk-BYHGRKC3.js} +2 -2
- package/dist/chunk-BYHGRKC3.js.map +1 -0
- package/dist/{chunk-ZLKZFKLW.js → chunk-CEJ5FK6G.js} +2 -2
- package/dist/chunk-CEJ5FK6G.js.map +1 -0
- package/dist/{chunk-SMZGAPCU.js → chunk-DQDTZE4W.js} +2 -2
- package/dist/chunk-DQDTZE4W.js.map +1 -0
- package/dist/{chunk-JGIV6ZDA.js → chunk-EFDCALR3.js} +2 -2
- package/dist/chunk-EFDCALR3.js.map +1 -0
- package/dist/{chunk-FKPKGP2H.js → chunk-G4VKQP7B.js} +2 -2
- package/dist/chunk-G4VKQP7B.js.map +1 -0
- package/dist/{chunk-TOICTHR2.js → chunk-GO2CZX4M.js} +2 -2
- package/dist/chunk-GO2CZX4M.js.map +1 -0
- package/dist/{chunk-DPAUKNB6.js → chunk-GS2QD3N7.js} +3 -3
- package/dist/chunk-GS2QD3N7.js.map +1 -0
- package/dist/{chunk-SLWCCHNP.js → chunk-H45DAZBL.js} +2 -2
- package/dist/chunk-H45DAZBL.js.map +1 -0
- package/dist/{chunk-DA3HS64I.js → chunk-H7ZJEI3H.js} +3 -3
- package/dist/chunk-H7ZJEI3H.js.map +1 -0
- package/dist/{chunk-V4GAQ74C.js → chunk-HFLGWMG3.js} +4 -4
- package/dist/chunk-HFLGWMG3.js.map +1 -0
- package/dist/{chunk-HXTAPIHQ.js → chunk-HFQDSSED.js} +6 -6
- package/dist/chunk-HFQDSSED.js.map +1 -0
- package/dist/{chunk-GRHJQWV2.js → chunk-HGSTMZZ6.js} +6 -6
- package/dist/chunk-HGSTMZZ6.js.map +1 -0
- package/dist/{chunk-WF75U3V4.js → chunk-HPREYDKV.js} +2 -2
- package/dist/chunk-HPREYDKV.js.map +1 -0
- package/dist/{chunk-VA5TN5PR.js → chunk-I4SDIMFA.js} +2 -2
- package/dist/chunk-I4SDIMFA.js.map +1 -0
- package/dist/{chunk-4SQK27MR.js → chunk-IM3GKYOG.js} +2 -2
- package/dist/chunk-IM3GKYOG.js.map +1 -0
- package/dist/{chunk-PL26TKNK.js → chunk-IVLTEBBT.js} +8 -8
- package/dist/chunk-IVLTEBBT.js.map +1 -0
- package/dist/{chunk-ALGYHYXP.js → chunk-J3AWE5I4.js} +2 -2
- package/dist/chunk-J3AWE5I4.js.map +1 -0
- package/dist/{chunk-OXO2QJWV.js → chunk-JOR5LGYE.js} +2 -2
- package/dist/chunk-JOR5LGYE.js.map +1 -0
- package/dist/{chunk-SRSJO5QE.js → chunk-LAZLBC2Q.js} +2 -2
- package/dist/chunk-LAZLBC2Q.js.map +1 -0
- package/dist/{chunk-RFGW735Q.js → chunk-LRAIS3YB.js} +2 -2
- package/dist/chunk-LRAIS3YB.js.map +1 -0
- package/dist/{chunk-AYUHMAI6.js → chunk-MXNIVEVL.js} +2 -2
- package/dist/chunk-MXNIVEVL.js.map +1 -0
- package/dist/{chunk-4NG4Y2Q6.js → chunk-NJZMR7HM.js} +2 -2
- package/dist/chunk-NJZMR7HM.js.map +1 -0
- package/dist/{chunk-DG6G5EPF.js → chunk-NMWDHZVM.js} +2 -2
- package/dist/chunk-NMWDHZVM.js.map +1 -0
- package/dist/{chunk-X5QSICJ3.js → chunk-NS2TBYM4.js} +2 -2
- package/dist/chunk-NS2TBYM4.js.map +1 -0
- package/dist/{chunk-4FEVHE7C.js → chunk-NVRJ7C3W.js} +4 -4
- package/dist/chunk-NVRJ7C3W.js.map +1 -0
- package/dist/{chunk-BFPBS5Y4.js → chunk-O27D24CA.js} +2 -2
- package/dist/chunk-O27D24CA.js.map +1 -0
- package/dist/{chunk-DUBUXJA3.js → chunk-PQQQXJGV.js} +4 -2
- package/dist/chunk-PQQQXJGV.js.map +1 -0
- package/dist/{chunk-6DFDTWGG.js → chunk-QYXKMLHO.js} +2 -2
- package/dist/chunk-QYXKMLHO.js.map +1 -0
- package/dist/{chunk-I3Q7KKYM.js → chunk-S3ECMF23.js} +2 -2
- package/dist/chunk-S3ECMF23.js.map +1 -0
- package/dist/{chunk-PSHUSWQH.js → chunk-S4ZGTDSG.js} +2 -2
- package/dist/chunk-S4ZGTDSG.js.map +1 -0
- package/dist/{chunk-OYQIONQF.js → chunk-SJY7KC45.js} +5 -5
- package/dist/chunk-SJY7KC45.js.map +1 -0
- package/dist/{chunk-NPNSKX3K.js → chunk-VLPE6OPN.js} +2 -2
- package/dist/chunk-VLPE6OPN.js.map +1 -0
- package/dist/{chunk-NCSWXG7G.js → chunk-VLQUXZKA.js} +9 -3
- package/dist/chunk-VLQUXZKA.js.map +1 -0
- package/dist/{chunk-EHIMH4J7.js → chunk-VR7MWD2X.js} +10 -4
- package/dist/chunk-VR7MWD2X.js.map +1 -0
- package/dist/{chunk-NN6GYOA2.js → chunk-XIZRXI7N.js} +2 -2
- package/dist/chunk-XIZRXI7N.js.map +1 -0
- package/dist/{chunk-TDN5EE3S.js → chunk-Y6KT7ZTR.js} +2 -2
- package/dist/chunk-Y6KT7ZTR.js.map +1 -0
- package/dist/{chunk-LHSUPNSE.js → chunk-YLJ6X3AC.js} +2 -2
- package/dist/chunk-YLJ6X3AC.js.map +1 -0
- package/dist/{chunk-YDGNU2OD.js → chunk-ZVYA6TLR.js} +5 -2
- package/dist/chunk-ZVYA6TLR.js.map +1 -0
- package/dist/collapsible-panel.d.ts +6 -6
- package/dist/collapsible-panel.js +3 -3
- package/dist/collapsible-panel.js.map +1 -1
- package/dist/content-item.d.ts +13 -2
- package/dist/content-item.js +1 -1
- package/dist/css-values.js +1 -1
- package/dist/device-class.js +1 -1
- package/dist/device-class.js.map +1 -1
- package/dist/disclosure-arrow.js +1 -1
- package/dist/empty-state.js +1 -1
- package/dist/floating-toolbar.d.ts +1 -1
- package/dist/floating-toolbar.js +1 -1
- package/dist/grid.d.ts +10 -3
- package/dist/grid.js +1 -1
- package/dist/help-tags-register.js +1 -1
- package/dist/help-tags-register.js.map +1 -1
- package/dist/index.d.ts +27 -26
- package/dist/index.js +40 -40
- package/dist/list-action-row.js +1 -1
- package/dist/list-header.js +1 -1
- package/dist/list-inset-control.js +1 -1
- package/dist/list-inset-text.js +1 -1
- package/dist/list-item.js +1 -1
- package/dist/list.d.ts +2 -2
- package/dist/list.js +1 -1
- package/dist/loading-spinner.d.ts +4 -2
- package/dist/loading-spinner.js +1 -1
- package/dist/lucide-icon.d.ts +3 -1
- package/dist/lucide-icon.js +1 -1
- package/dist/nav-stack.d.ts +1 -1
- package/dist/nav-stack.js +1 -1
- package/dist/pane.js +1 -1
- package/dist/popup-menu-register.js +7 -7
- package/dist/popup-menu-register.js.map +1 -1
- package/dist/popup-menu.js +1 -1
- package/dist/resizable-region.d.ts +1 -1
- package/dist/resizable-region.js +1 -1
- package/dist/row.d.ts +2 -2
- package/dist/row.js +1 -1
- package/dist/segmented-control.js +1 -1
- package/dist/select-register.js +6 -6
- package/dist/select-register.js.map +1 -1
- package/dist/select.d.ts +1 -1
- package/dist/select.js +1 -1
- package/dist/semantic-tone-CdW013KF.d.ts +4 -0
- package/dist/skeleton.js +1 -1
- package/dist/spacer.js +1 -1
- package/dist/split-view.d.ts +2 -2
- package/dist/split-view.js +2 -2
- package/dist/split-view.js.map +1 -1
- package/dist/state-banner.d.ts +5 -3
- package/dist/state-banner.js +1 -1
- package/dist/styles/badge.css +1 -1
- package/dist/styles/chip.css +1 -1
- package/dist/styles/components/actions/floating-toolbar/floating-toolbar.css +119 -0
- package/dist/styles/components/actions/popup-menu/popup-menu.css +285 -0
- package/dist/styles/components/actions/toolbar/toolbar.css +392 -0
- package/dist/styles/components/actions/toolbar-control-group/toolbar-control-group.css +790 -0
- package/dist/styles/components/actions/toolbar-text/toolbar-text.css +153 -0
- package/dist/styles/components/collections/list/list.css +133 -0
- package/dist/styles/components/collections/list-action-row/list-action-row.css +258 -0
- package/dist/styles/components/collections/list-header/list-header.css +229 -0
- package/dist/styles/components/collections/list-inset-control/list-inset-control.css +30 -0
- package/dist/styles/components/collections/list-inset-text/list-inset-text.css +29 -0
- package/dist/styles/components/collections/list-item/list-item.css +255 -0
- package/dist/styles/components/data-display/value-table/value-table.css +105 -0
- package/dist/styles/components/feedback/badge/badge.css +118 -0
- package/dist/styles/components/feedback/chip/chip.css +138 -0
- package/dist/styles/components/feedback/empty-state/empty-state.css +47 -0
- package/dist/styles/components/feedback/loading-spinner/loading-spinner.css +25 -0
- package/dist/styles/components/feedback/skeleton/skeleton.css +92 -0
- package/dist/styles/components/feedback/state-banner/state-banner.css +248 -0
- package/dist/styles/components/forms/segmented-control/segmented-control.css +196 -0
- package/dist/styles/components/forms/select/select.css +454 -0
- package/dist/styles/components/forms/token-search-field/token-search-field.css +381 -0
- package/dist/styles/components/layout/collapsible-panel/collapsible-panel.css +575 -0
- package/dist/styles/components/layout/grid/grid.css +85 -0
- package/dist/styles/components/layout/pane/pane.css +263 -0
- package/dist/styles/components/layout/resizable-region/resizable-region.css +545 -0
- package/dist/styles/components/layout/row/row.css +111 -0
- package/dist/styles/components/layout/spacer/spacer.css +11 -0
- package/dist/styles/components/layout/split-view/split-view.css +146 -0
- package/dist/styles/components/layout/workbench/workbench.css +1067 -0
- package/dist/styles/components/media/lucide-icon/lucide-icon.css +15 -0
- package/dist/styles/components/navigation/app-tab/app-tab.css +376 -0
- package/dist/styles/components/navigation/disclosure-arrow/disclosure-arrow.css +23 -0
- package/dist/styles/components/navigation/nav-stack/nav-stack.css +237 -0
- package/dist/styles/components/navigation/tab-bar/tab-bar.css +183 -0
- package/dist/styles/components/navigation/tab-scaffold/tab-scaffold.css +207 -0
- package/dist/styles/components/surfaces/content-item/content-item.css +120 -0
- package/dist/styles/components/surfaces/sunken-panel/sunken-panel.css +29 -0
- package/dist/styles/components/surfaces/surface-scaffold/surface-scaffold.css +56 -0
- package/dist/styles/components/typography/text/text.css +139 -0
- package/dist/styles/content-item.css +46 -1
- package/dist/styles/document.css +10 -0
- package/dist/styles/foundation.css +9 -6
- package/dist/styles/grid.css +50 -0
- package/dist/styles/lucide-icon.css +4 -0
- package/dist/styles/webawesome.css +23 -6
- package/dist/sunken-panel.d.ts +1 -1
- package/dist/sunken-panel.js +1 -1
- package/dist/surface-scaffold.js +1 -1
- package/dist/tab-bar.js +1 -1
- package/dist/tab-scaffold.d.ts +1 -1
- package/dist/tab-scaffold.js +1 -1
- package/dist/tab-scaffold.js.map +1 -1
- package/dist/text.d.ts +12 -8
- package/dist/text.js +1 -1
- package/dist/token-search-field.d.ts +1 -1
- package/dist/token-search-field.js +1 -1
- package/dist/{token-search-field-CVGwDn2y.d.ts → token-search-model-DTcTXWMS.d.ts} +54 -54
- package/dist/token-search-model.d.ts +1 -1
- package/dist/token-search-model.js +1 -1
- package/dist/toolbar-control-group.js +1 -1
- package/dist/toolbar-text.js +1 -1
- package/dist/toolbar.d.ts +1 -1
- package/dist/toolbar.js +1 -1
- package/dist/value-table.js +1 -1
- package/dist/wire-catalog.js +2 -2
- package/dist/wire-catalog.js.map +1 -1
- package/dist/wire-content-items.js +1 -1
- package/dist/wire-content-items.js.map +1 -1
- package/dist/wire-nav-stack.js +1 -1
- package/dist/wire-nav-stack.js.map +1 -1
- package/dist/wire-resizable-regions.js +1 -1
- package/dist/wire-scroll-dividers.js +1 -1
- package/dist/wire-sidebar.js +1 -1
- package/dist/wire-sidebar.js.map +1 -1
- package/dist/wire-tab-bars.js +1 -1
- package/dist/wire-tab-scaffold.js +1 -1
- package/dist/wire-tab-scaffold.js.map +1 -1
- package/dist/wire-token-search-fields.d.ts +1 -1
- package/dist/wire-token-search-fields.js +1 -1
- package/dist/wire-workbench.js +1 -1
- package/dist/workbench.d.ts +3 -3
- package/dist/workbench.js +1 -1
- package/docs/collapsible-panel.md +1 -1
- package/docs/component-contract.md +25 -7
- package/docs/component-selection.md +18 -4
- package/docs/design/templates/empty-state/filtered-dark.svg +1 -1
- package/docs/design/templates/empty-state/filtered.svg +1 -1
- package/docs/design/templates/empty-state/with-action-dark.svg +1 -1
- package/docs/design/templates/empty-state/with-action.svg +1 -1
- package/docs/design/templates/empty-state-dark.svg +1 -1
- package/docs/design/templates/empty-state.svg +1 -1
- package/docs/design/templates/list/stack-dark.svg +1 -1
- package/docs/design/templates/list/stack.svg +1 -1
- package/docs/design/templates/list-dark.svg +1 -1
- package/docs/design/templates/list-header/action-dark.svg +1 -1
- package/docs/design/templates/list-header/action.svg +1 -1
- package/docs/design/templates/list-header/count-dark.svg +1 -1
- package/docs/design/templates/list-header/count.svg +1 -1
- package/docs/design/templates/list-header/inline-action-dark.svg +1 -1
- package/docs/design/templates/list-header/inline-action.svg +1 -1
- package/docs/design/templates/list-header/size-l-dark.svg +1 -1
- package/docs/design/templates/list-header/size-l.svg +1 -1
- package/docs/design/templates/list-header/size-m-dark.svg +1 -1
- package/docs/design/templates/list-header/size-m.svg +1 -1
- package/docs/design/templates/list-header/size-xl-dark.svg +1 -1
- package/docs/design/templates/list-header/size-xl.svg +1 -1
- package/docs/design/templates/list-header/size-xs-dark.svg +1 -1
- package/docs/design/templates/list-header/size-xs.svg +1 -1
- package/docs/design/templates/list-header/toggle-collapsed-dark.svg +1 -1
- package/docs/design/templates/list-header/toggle-collapsed.svg +1 -1
- package/docs/design/templates/list-header/toggle-expanded-dark.svg +1 -1
- package/docs/design/templates/list-header/toggle-expanded.svg +1 -1
- package/docs/design/templates/list-header-dark.svg +1 -1
- package/docs/design/templates/list-header.svg +1 -1
- package/docs/design/templates/list.svg +1 -1
- package/docs/design/templates/segmented-control/equal-dark.svg +1 -1
- package/docs/design/templates/segmented-control/equal.svg +1 -1
- package/docs/design/templates/segmented-control/pill-small-dark.svg +1 -1
- package/docs/design/templates/segmented-control/pill-small.svg +1 -1
- package/docs/design/templates/segmented-control-dark.svg +1 -1
- package/docs/design/templates/segmented-control.svg +1 -1
- package/docs/design/templates/tab-bar/workspace-tabs-dark.svg +1 -1
- package/docs/design/templates/tab-bar/workspace-tabs.svg +1 -1
- package/docs/design/templates/tab-bar-dark.svg +1 -1
- package/docs/design/templates/tab-bar.svg +1 -1
- package/docs/design/templates/token-search-field/empty-dark.svg +1 -1
- package/docs/design/templates/token-search-field/empty.svg +1 -1
- package/docs/design/templates/token-search-field/tokens-dark.svg +1 -1
- package/docs/design/templates/token-search-field/tokens.svg +1 -1
- package/docs/design/templates/token-search-field-dark.svg +1 -1
- package/docs/design/templates/token-search-field.svg +1 -1
- package/docs/design/templates/toolbar/title-and-actions-dark.svg +1 -1
- package/docs/design/templates/toolbar/title-and-actions.svg +1 -1
- package/docs/design/templates/toolbar-control-group/borderless-single-dark.svg +1 -1
- package/docs/design/templates/toolbar-control-group/borderless-single.svg +1 -1
- package/docs/design/templates/toolbar-control-group/icon-buttons-dark.svg +1 -1
- package/docs/design/templates/toolbar-control-group/icon-buttons.svg +1 -1
- package/docs/design/templates/toolbar-control-group/push-buttons-dark.svg +1 -1
- package/docs/design/templates/toolbar-control-group/push-buttons.svg +1 -1
- package/docs/design/templates/toolbar-control-group/with-text-dark.svg +1 -1
- package/docs/design/templates/toolbar-control-group/with-text.svg +1 -1
- package/docs/design/templates/toolbar-control-group-dark.svg +1 -1
- package/docs/design/templates/toolbar-control-group.svg +1 -1
- package/docs/design/templates/toolbar-dark.svg +1 -1
- package/docs/design/templates/toolbar-text/default-dark.svg +1 -1
- package/docs/design/templates/toolbar-text/default.svg +1 -1
- package/docs/design/templates/toolbar-text/large-dark.svg +1 -1
- package/docs/design/templates/toolbar-text/large.svg +1 -1
- package/docs/design/templates/toolbar-text/small-dark.svg +1 -1
- package/docs/design/templates/toolbar-text/small.svg +1 -1
- package/docs/design/templates/toolbar-text-dark.svg +1 -1
- package/docs/design/templates/toolbar-text.svg +1 -1
- package/docs/design/templates/toolbar.svg +1 -1
- package/docs/design/templates/value-table/details-dark.svg +1 -1
- package/docs/design/templates/value-table/details.svg +1 -1
- package/docs/design/templates/value-table-dark.svg +1 -1
- package/docs/design/templates/value-table.svg +1 -1
- package/docs/document-baseline.md +4 -0
- package/docs/layout.md +11 -5
- package/docs/sunken-panel.md +7 -7
- package/docs/ui-analyzer.md +12 -1
- package/docs/ui-doctor.md +12 -2
- package/docs/webawesome-theme.md +29 -59
- package/doctor/index.mjs +39 -30
- package/llms.txt +18 -1
- package/package.json +3 -2
- package/dist/chunk-3BYFWTP3.js.map +0 -1
- package/dist/chunk-4FEVHE7C.js.map +0 -1
- package/dist/chunk-4NG4Y2Q6.js.map +0 -1
- package/dist/chunk-4SQK27MR.js.map +0 -1
- package/dist/chunk-5I7QGQVT.js.map +0 -1
- package/dist/chunk-5TTZPGUY.js.map +0 -1
- package/dist/chunk-5UGLKFBF.js.map +0 -1
- package/dist/chunk-6DFDTWGG.js.map +0 -1
- package/dist/chunk-ALGYHYXP.js.map +0 -1
- package/dist/chunk-AYUHMAI6.js.map +0 -1
- package/dist/chunk-BFPBS5Y4.js.map +0 -1
- package/dist/chunk-DA3HS64I.js.map +0 -1
- package/dist/chunk-DG6G5EPF.js.map +0 -1
- package/dist/chunk-DPAUKNB6.js.map +0 -1
- package/dist/chunk-DUBUXJA3.js.map +0 -1
- package/dist/chunk-EHIMH4J7.js.map +0 -1
- package/dist/chunk-FKPKGP2H.js.map +0 -1
- package/dist/chunk-GRHJQWV2.js.map +0 -1
- package/dist/chunk-HKVJ5MW3.js.map +0 -1
- package/dist/chunk-HXTAPIHQ.js.map +0 -1
- package/dist/chunk-I3Q7KKYM.js.map +0 -1
- package/dist/chunk-JA4J7Y4C.js.map +0 -1
- package/dist/chunk-JGIV6ZDA.js.map +0 -1
- package/dist/chunk-K47P7QZC.js.map +0 -1
- package/dist/chunk-LHSUPNSE.js.map +0 -1
- package/dist/chunk-NCSWXG7G.js.map +0 -1
- package/dist/chunk-NN6GYOA2.js.map +0 -1
- package/dist/chunk-NPNSKX3K.js.map +0 -1
- package/dist/chunk-O5GM2JAM.js.map +0 -1
- package/dist/chunk-OXO2QJWV.js.map +0 -1
- package/dist/chunk-OYQIONQF.js.map +0 -1
- package/dist/chunk-PL26TKNK.js.map +0 -1
- package/dist/chunk-PSHUSWQH.js.map +0 -1
- package/dist/chunk-RFGW735Q.js.map +0 -1
- package/dist/chunk-RGS4WX2M.js.map +0 -1
- package/dist/chunk-SLWCCHNP.js.map +0 -1
- package/dist/chunk-SMZGAPCU.js.map +0 -1
- package/dist/chunk-SRSJO5QE.js.map +0 -1
- package/dist/chunk-SVLDRGPJ.js.map +0 -1
- package/dist/chunk-SX7FJXPJ.js.map +0 -1
- package/dist/chunk-TCXDZNCX.js.map +0 -1
- package/dist/chunk-TDN5EE3S.js.map +0 -1
- package/dist/chunk-TOICTHR2.js.map +0 -1
- package/dist/chunk-V4GAQ74C.js.map +0 -1
- package/dist/chunk-V4WLBOVJ.js.map +0 -1
- package/dist/chunk-VA5TN5PR.js.map +0 -1
- package/dist/chunk-WF75U3V4.js.map +0 -1
- package/dist/chunk-X5QSICJ3.js.map +0 -1
- package/dist/chunk-YDGNU2OD.js.map +0 -1
- package/dist/chunk-ZLKZFKLW.js.map +0 -1
- package/dist/{panel-toolbar-DDKh4uKd.d.ts → panel-toolbar-CL9tYOkh.d.ts} +1 -1
- package/dist/{types-BuHELdXR.d.ts → types-C9BubXfz.d.ts} +1 -1
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# Public API signatures for the UI authoring corpus
|
|
2
2
|
|
|
3
|
-
Generated from emitted declarations for `@kerfjs/ui@5.0.0-beta.
|
|
3
|
+
Generated from emitted declarations for `@kerfjs/ui@5.0.0-beta.76` and `kerfjs@5.0.0-beta.76`. This bounded reference covers only APIs used by the seven-task corpus. It is interface evidence, not an implementation or runtime guarantee.
|
|
4
4
|
|
|
5
5
|
## `@kerfjs/ui/css-values`
|
|
6
6
|
|
|
@@ -147,9 +147,9 @@ export { DisclosureArrow, type DisclosureArrowProps, type DisclosureDirection };
|
|
|
147
147
|
|
|
148
148
|
```ts
|
|
149
149
|
import * as kerfjs from 'kerfjs';
|
|
150
|
-
import { PaneSeparatorSide } from './pane.js';
|
|
151
150
|
import { K as KerfUiContent } from './semantic-content-BbzjvSu9.js';
|
|
152
151
|
import { S as Sides } from './sides-BPSWde0A.js';
|
|
152
|
+
import { PaneSeparatorSide } from './pane.js';
|
|
153
153
|
|
|
154
154
|
type ToolbarPosition = 'header' | 'footer';
|
|
155
155
|
interface ToolbarProps {
|
|
@@ -363,8 +363,8 @@ export { ToolbarActionLink, type ToolbarActionLinkProps, ToolbarControlGroup, ty
|
|
|
363
363
|
|
|
364
364
|
```ts
|
|
365
365
|
import * as kerfjs from 'kerfjs';
|
|
366
|
-
import { CssLength } from './css-values.js';
|
|
367
366
|
import { K as KerfUiContent } from './semantic-content-BbzjvSu9.js';
|
|
367
|
+
import { CssLength } from './css-values.js';
|
|
368
368
|
|
|
369
369
|
/** Where a {@link FloatingToolbar} floats within its positioned container. */
|
|
370
370
|
type FloatingToolbarPosition = 'bottom' | 'bottom-start' | 'bottom-end' | 'top' | 'top-start' | 'top-end';
|
|
@@ -631,11 +631,11 @@ export { ListHeader, type ListHeaderProps };
|
|
|
631
631
|
|
|
632
632
|
```ts
|
|
633
633
|
import * as kerfjs from 'kerfjs';
|
|
634
|
-
import {
|
|
634
|
+
import { K as KerfUiContent } from './semantic-content-BbzjvSu9.js';
|
|
635
635
|
import { H as HorizontalAlignment, L as ListVerticalAlignment } from './flex-alignment-4ms8ZbV8.js';
|
|
636
636
|
export { V as VerticalAlignment } from './flex-alignment-4ms8ZbV8.js';
|
|
637
|
-
import { K as KerfUiContent } from './semantic-content-BbzjvSu9.js';
|
|
638
637
|
import { S as Sides } from './sides-BPSWde0A.js';
|
|
638
|
+
import { UiSpaceName, CssLength, CssFlexKeyword, CssFlex } from './css-values.js';
|
|
639
639
|
|
|
640
640
|
type ListRootAttributes = Readonly<Record<`data-${string}`, string | undefined> & {
|
|
641
641
|
'data-component'?: never;
|
|
@@ -898,7 +898,10 @@ export { ListInsetText, type ListInsetTextProps, Sides };
|
|
|
898
898
|
```ts
|
|
899
899
|
import * as kerfjs from 'kerfjs';
|
|
900
900
|
import { K as KerfUiContent } from './semantic-content-BbzjvSu9.js';
|
|
901
|
+
import { S as SemanticTone } from './semantic-tone-CdW013KF.js';
|
|
901
902
|
|
|
903
|
+
/** Base surface treatment or semantic status colors. */
|
|
904
|
+
type ContentItemAppearance = 'transparent' | 'surface' | SemanticTone;
|
|
902
905
|
/** Whether the item's always-reserved 1px border is transparent or visible. */
|
|
903
906
|
type ContentItemFrame = 'none' | 'framed';
|
|
904
907
|
/** Corner shape: the 12px rounded rectangle or the 22px pill. */
|
|
@@ -907,9 +910,11 @@ type ContentItemShape = 'rounded' | 'pill';
|
|
|
907
910
|
type ContentItemSelectionMode = 'none' | 'single' | 'multiple' | 'toggle';
|
|
908
911
|
type ContentItemRootAttributes = Readonly<Record<`data-${string}`, string | undefined> & {
|
|
909
912
|
'data-component'?: never;
|
|
913
|
+
'data-appearance'?: never;
|
|
910
914
|
}>;
|
|
911
915
|
type ContentItemInteractiveRootAttributes = Readonly<Record<`data-${string}`, string | undefined> & {
|
|
912
916
|
'data-component'?: never;
|
|
917
|
+
'data-appearance'?: never;
|
|
913
918
|
'data-action'?: never;
|
|
914
919
|
'data-item-id'?: never;
|
|
915
920
|
'data-interactive'?: never;
|
|
@@ -919,6 +924,12 @@ type ContentItemInteractiveRootAttributes = Readonly<Record<`data-${string}`, st
|
|
|
919
924
|
'data-kui-pressed'?: never;
|
|
920
925
|
}>;
|
|
921
926
|
interface ContentItemBaseProps {
|
|
927
|
+
/**
|
|
928
|
+
* Coordinated background, border, and foreground colors. `transparent`
|
|
929
|
+
* preserves the surrounding surface; `surface` paints the base surface;
|
|
930
|
+
* semantic values match StateBanner. Defaults to `transparent`.
|
|
931
|
+
*/
|
|
932
|
+
appearance?: ContentItemAppearance;
|
|
922
933
|
/** Item content; a plain string is allowed for bare copy. */
|
|
923
934
|
children?: KerfUiContent | string;
|
|
924
935
|
/**
|
|
@@ -974,9 +985,9 @@ type ContentItemProps = ContentItemBaseProps & ({
|
|
|
974
985
|
* border (transparent unless `framed`), 8px padding, and a rounded or pill
|
|
975
986
|
* radius. It owns that whole geometry, so wrappers must not add more.
|
|
976
987
|
*/
|
|
977
|
-
declare function ContentItem({ children, frame, flush, shape, title, ariaLabel, focusTarget, interactive, action, itemId, selectionMode, selected, disabled, className, rootAttributes, slot, }: ContentItemProps): kerfjs.SafeHtml;
|
|
988
|
+
declare function ContentItem({ appearance, children, frame, flush, shape, title, ariaLabel, focusTarget, interactive, action, itemId, selectionMode, selected, disabled, className, rootAttributes, slot, }: ContentItemProps): kerfjs.SafeHtml;
|
|
978
989
|
|
|
979
|
-
export { ContentItem, type ContentItemFrame, type ContentItemProps, type ContentItemSelectionMode, type ContentItemShape };
|
|
990
|
+
export { ContentItem, type ContentItemAppearance, type ContentItemFrame, type ContentItemProps, type ContentItemSelectionMode, type ContentItemShape, SemanticTone };
|
|
980
991
|
```
|
|
981
992
|
|
|
982
993
|
## `@kerfjs/ui/value-table`
|
|
@@ -1254,10 +1265,10 @@ export { type ScrollDividerTarget, type WireScrollDividersOptions, wireScrollDiv
|
|
|
1254
1265
|
|
|
1255
1266
|
```ts
|
|
1256
1267
|
import * as kerfjs from 'kerfjs';
|
|
1257
|
-
import { PaneAppearance } from './pane.js';
|
|
1258
1268
|
import { K as KerfUiContent } from './semantic-content-BbzjvSu9.js';
|
|
1259
1269
|
import { ToolbarConfig } from './toolbar.js';
|
|
1260
1270
|
import { ToolbarTextSize, HeadingLevel } from './toolbar-text.js';
|
|
1271
|
+
import { PaneAppearance } from './pane.js';
|
|
1261
1272
|
import './sides-BPSWde0A.js';
|
|
1262
1273
|
|
|
1263
1274
|
/**
|
|
@@ -1376,12 +1387,12 @@ export { type WireNavStackOptions, wireNavStack };
|
|
|
1376
1387
|
|
|
1377
1388
|
```ts
|
|
1378
1389
|
import * as kerfjs from 'kerfjs';
|
|
1390
|
+
import { K as KerfUiContent } from './semantic-content-BbzjvSu9.js';
|
|
1379
1391
|
import { NavStackProps, NavStackView } from './nav-stack.js';
|
|
1380
1392
|
import { ResizableRegionProps } from './resizable-region.js';
|
|
1381
|
-
import { K as KerfUiContent } from './semantic-content-BbzjvSu9.js';
|
|
1382
|
-
import './pane.js';
|
|
1383
1393
|
import './toolbar.js';
|
|
1384
1394
|
import './sides-BPSWde0A.js';
|
|
1395
|
+
import './pane.js';
|
|
1385
1396
|
import './toolbar-text.js';
|
|
1386
1397
|
import './css-values.js';
|
|
1387
1398
|
|
|
@@ -1568,16 +1579,16 @@ export { Pane, type PaneAppearance, type PaneChromeDividers, type PaneChromePlac
|
|
|
1568
1579
|
|
|
1569
1580
|
```ts
|
|
1570
1581
|
import { SafeHtml } from 'kerfjs';
|
|
1582
|
+
import { K as KerfUiContent } from './semantic-content-BbzjvSu9.js';
|
|
1571
1583
|
import { ListConfig } from './list.js';
|
|
1572
1584
|
import { NavStackProps } from './nav-stack.js';
|
|
1573
1585
|
import { PaneConfig } from './pane.js';
|
|
1574
1586
|
import { ResizableRegionSeparator, ResizableRegionCollapseMotion, ResizableRegionContentOverflow, ResizableRegionPresentation, ResizableRegionRestorePosition } from './resizable-region.js';
|
|
1575
|
-
import {
|
|
1587
|
+
import { a as PanelToolbar, b as PanelChromePlacement, c as PanelBottomToolbar, d as PanelToggle } from './panel-toolbar-CL9tYOkh.js';
|
|
1576
1588
|
import { ToolbarConfig } from './toolbar.js';
|
|
1577
|
-
import { a as PanelToolbar, b as PanelChromePlacement, c as PanelBottomToolbar, d as PanelToggle } from './panel-toolbar-DDKh4uKd.js';
|
|
1578
|
-
import './css-values.js';
|
|
1579
1589
|
import './flex-alignment-4ms8ZbV8.js';
|
|
1580
1590
|
import './sides-BPSWde0A.js';
|
|
1591
|
+
import './css-values.js';
|
|
1581
1592
|
import './toolbar-text.js';
|
|
1582
1593
|
import './lucide-icon.js';
|
|
1583
1594
|
import 'lucide';
|
|
@@ -1962,18 +1973,18 @@ export { type WireWorkbenchOptions, type WireWorkbenchPanel, type WorkbenchPanel
|
|
|
1962
1973
|
|
|
1963
1974
|
```ts
|
|
1964
1975
|
import { SafeHtml } from 'kerfjs';
|
|
1976
|
+
import { K as KerfUiContent } from './semantic-content-BbzjvSu9.js';
|
|
1977
|
+
import { P as PanelSide, a as PanelToolbar, b as PanelChromePlacement, c as PanelBottomToolbar, d as PanelToggle } from './panel-toolbar-CL9tYOkh.js';
|
|
1978
|
+
export { e as collapsiblePanelToggleIcon } from './panel-toolbar-CL9tYOkh.js';
|
|
1965
1979
|
import { ListConfig } from './list.js';
|
|
1966
1980
|
import { PaneConfig } from './pane.js';
|
|
1967
|
-
import { P as PanelSide, a as PanelToolbar, b as PanelChromePlacement, c as PanelBottomToolbar, d as PanelToggle } from './panel-toolbar-DDKh4uKd.js';
|
|
1968
|
-
export { e as collapsiblePanelToggleIcon } from './panel-toolbar-DDKh4uKd.js';
|
|
1969
1981
|
import { ResizableRegionSeparator, ResizableRegionCollapseMotion, ResizableRegionContentOverflow, ResizableRegionPresentation, ResizableRegionRestorePosition } from './resizable-region.js';
|
|
1970
|
-
import
|
|
1971
|
-
import './css-values.js';
|
|
1972
|
-
import './flex-alignment-4ms8ZbV8.js';
|
|
1982
|
+
import './toolbar.js';
|
|
1973
1983
|
import './sides-BPSWde0A.js';
|
|
1974
1984
|
import './lucide-icon.js';
|
|
1975
1985
|
import 'lucide';
|
|
1976
|
-
import './
|
|
1986
|
+
import './css-values.js';
|
|
1987
|
+
import './flex-alignment-4ms8ZbV8.js';
|
|
1977
1988
|
|
|
1978
1989
|
/** Which edge a {@link CollapsiblePanel} docks to. */
|
|
1979
1990
|
type CollapsiblePanelSide = PanelSide;
|
|
@@ -2168,8 +2179,8 @@ export { type SidebarStorage, type WireSidebarOptions, type WireSidebarPanel, wi
|
|
|
2168
2179
|
|
|
2169
2180
|
```ts
|
|
2170
2181
|
import { SafeHtml } from 'kerfjs';
|
|
2171
|
-
import { PaneAppearance } from './pane.js';
|
|
2172
2182
|
import { K as KerfUiContent } from './semantic-content-BbzjvSu9.js';
|
|
2183
|
+
import { PaneAppearance } from './pane.js';
|
|
2173
2184
|
|
|
2174
2185
|
interface TabScaffoldTabBase<Id extends string> {
|
|
2175
2186
|
id: Id;
|
|
@@ -2269,8 +2280,8 @@ export { type WireTabScaffoldOptions, wireTabScaffold };
|
|
|
2269
2280
|
|
|
2270
2281
|
```ts
|
|
2271
2282
|
import { SafeHtml } from 'kerfjs';
|
|
2272
|
-
import { CssLength } from './css-values.js';
|
|
2273
2283
|
import { K as KerfUiContent } from './semantic-content-BbzjvSu9.js';
|
|
2284
|
+
import { CssLength } from './css-values.js';
|
|
2274
2285
|
|
|
2275
2286
|
type ResizableRegionAxis = 'horizontal' | 'vertical';
|
|
2276
2287
|
type ResizableRegionEdge = 'start' | 'end';
|
|
@@ -2415,20 +2426,20 @@ export { DEFAULT_BREAKPOINTS, type DeviceBreakpoints, type DeviceClass, type Dev
|
|
|
2415
2426
|
```ts
|
|
2416
2427
|
import * as kerfjs from 'kerfjs';
|
|
2417
2428
|
import { SafeHtml } from 'kerfjs';
|
|
2418
|
-
import { a as CatalogProps } from './types-
|
|
2419
|
-
export { b as CatalogBrand, c as CatalogEntry, d as CatalogRelated, C as CatalogResource, e as CatalogSecondaryGroup, f as CatalogSection, g as CatalogStageRootAttributes } from './types-
|
|
2429
|
+
import { a as CatalogProps } from './types-C9BubXfz.js';
|
|
2430
|
+
export { b as CatalogBrand, c as CatalogEntry, d as CatalogRelated, C as CatalogResource, e as CatalogSecondaryGroup, f as CatalogSection, g as CatalogStageRootAttributes } from './types-C9BubXfz.js';
|
|
2420
2431
|
import { K as KerfUiContent } from './semantic-content-BbzjvSu9.js';
|
|
2421
2432
|
import './toolbar.js';
|
|
2422
|
-
import './pane.js';
|
|
2423
2433
|
import './sides-BPSWde0A.js';
|
|
2434
|
+
import './pane.js';
|
|
2424
2435
|
import './workbench.js';
|
|
2425
2436
|
import './list.js';
|
|
2426
|
-
import './css-values.js';
|
|
2427
2437
|
import './flex-alignment-4ms8ZbV8.js';
|
|
2438
|
+
import './css-values.js';
|
|
2428
2439
|
import './nav-stack.js';
|
|
2429
2440
|
import './toolbar-text.js';
|
|
2430
2441
|
import './resizable-region.js';
|
|
2431
|
-
import './panel-toolbar-
|
|
2442
|
+
import './panel-toolbar-CL9tYOkh.js';
|
|
2432
2443
|
import './lucide-icon.js';
|
|
2433
2444
|
import 'lucide';
|
|
2434
2445
|
|
|
@@ -2510,20 +2521,20 @@ export { Catalog, CatalogExample, type CatalogExampleAlign, type CatalogExampleP
|
|
|
2510
2521
|
## `@kerfjs/ui/catalog-resources`
|
|
2511
2522
|
|
|
2512
2523
|
```ts
|
|
2513
|
-
import { C as CatalogResource } from './types-
|
|
2514
|
-
import './semantic-content-BbzjvSu9.js';
|
|
2515
|
-
import 'kerfjs';
|
|
2524
|
+
import { C as CatalogResource } from './types-C9BubXfz.js';
|
|
2516
2525
|
import './toolbar.js';
|
|
2517
|
-
import '
|
|
2526
|
+
import 'kerfjs';
|
|
2527
|
+
import './semantic-content-BbzjvSu9.js';
|
|
2518
2528
|
import './sides-BPSWde0A.js';
|
|
2529
|
+
import './pane.js';
|
|
2519
2530
|
import './workbench.js';
|
|
2520
2531
|
import './list.js';
|
|
2521
|
-
import './css-values.js';
|
|
2522
2532
|
import './flex-alignment-4ms8ZbV8.js';
|
|
2533
|
+
import './css-values.js';
|
|
2523
2534
|
import './nav-stack.js';
|
|
2524
2535
|
import './toolbar-text.js';
|
|
2525
2536
|
import './resizable-region.js';
|
|
2526
|
-
import './panel-toolbar-
|
|
2537
|
+
import './panel-toolbar-CL9tYOkh.js';
|
|
2527
2538
|
import './lucide-icon.js';
|
|
2528
2539
|
import 'lucide';
|
|
2529
2540
|
|
|
@@ -2689,9 +2700,9 @@ export { SegmentedControl, type SegmentedControlAppearance, type SegmentedContro
|
|
|
2689
2700
|
|
|
2690
2701
|
```ts
|
|
2691
2702
|
import { SafeHtml } from 'kerfjs';
|
|
2703
|
+
import { K as KerfUiContent } from './semantic-content-BbzjvSu9.js';
|
|
2692
2704
|
import { CssForegroundColor } from './css-values.js';
|
|
2693
2705
|
import { LucideNode } from './lucide-icon.js';
|
|
2694
|
-
import { K as KerfUiContent } from './semantic-content-BbzjvSu9.js';
|
|
2695
2706
|
import 'lucide';
|
|
2696
2707
|
|
|
2697
2708
|
interface SelectChoice<Value extends string = string> {
|
|
@@ -2820,8 +2831,10 @@ export { Select, type SelectChoice, type SelectFocusRingOwner, type SelectMultip
|
|
|
2820
2831
|
```ts
|
|
2821
2832
|
import { SafeHtml } from 'kerfjs';
|
|
2822
2833
|
import { K as KerfUiContent } from './semantic-content-BbzjvSu9.js';
|
|
2834
|
+
import { S as SemanticTone } from './semantic-tone-CdW013KF.js';
|
|
2823
2835
|
|
|
2824
|
-
|
|
2836
|
+
/** @deprecated Use SemanticTone. */
|
|
2837
|
+
type StateBannerTone = SemanticTone;
|
|
2825
2838
|
type StateBannerUrgency = 'status' | 'alert';
|
|
2826
2839
|
type StateBannerCopyLayout = 'inline' | 'stacked';
|
|
2827
2840
|
type StateBannerActionPlacement = 'trailing' | 'below';
|
|
@@ -2832,7 +2845,7 @@ interface StateBannerProps {
|
|
|
2832
2845
|
badge?: string;
|
|
2833
2846
|
icon?: SafeHtml;
|
|
2834
2847
|
action?: KerfUiContent;
|
|
2835
|
-
tone?:
|
|
2848
|
+
tone?: SemanticTone;
|
|
2836
2849
|
urgency?: StateBannerUrgency;
|
|
2837
2850
|
/** Keep the detail beside the title, or give it its own line. */
|
|
2838
2851
|
copyLayout?: StateBannerCopyLayout;
|
|
@@ -2846,7 +2859,7 @@ interface StateBannerProps {
|
|
|
2846
2859
|
}
|
|
2847
2860
|
declare function StateBanner({ title, detail, badge, icon, action, tone, urgency, copyLayout, actionPlacement, className, placeholder, slot, }: StateBannerProps): SafeHtml;
|
|
2848
2861
|
|
|
2849
|
-
export { StateBanner, type StateBannerActionPlacement, type StateBannerCopyLayout, type StateBannerProps, type StateBannerTone, type StateBannerUrgency };
|
|
2862
|
+
export { SemanticTone, StateBanner, type StateBannerActionPlacement, type StateBannerCopyLayout, type StateBannerProps, type StateBannerTone, type StateBannerUrgency };
|
|
2850
2863
|
```
|
|
2851
2864
|
|
|
2852
2865
|
## `@kerfjs/ui/empty-state`
|
|
@@ -2874,13 +2887,15 @@ export { EmptyState, type EmptyStateProps };
|
|
|
2874
2887
|
|
|
2875
2888
|
```ts
|
|
2876
2889
|
import * as kerfjs from 'kerfjs';
|
|
2890
|
+
import { CssForegroundColor } from './css-values.js';
|
|
2877
2891
|
import { LucideIconSize } from './lucide-icon.js';
|
|
2878
2892
|
import 'lucide';
|
|
2879
|
-
import './css-values.js';
|
|
2880
2893
|
|
|
2881
2894
|
type LoadingSpinnerSize = LucideIconSize;
|
|
2882
2895
|
interface LoadingSpinnerProps {
|
|
2883
2896
|
className?: string;
|
|
2897
|
+
/** Foreground color; omit to inherit the surrounding text color. */
|
|
2898
|
+
color?: CssForegroundColor;
|
|
2884
2899
|
label?: string;
|
|
2885
2900
|
/** Named icon scale or positive pixel size, converted to rem. Omit for 1em. */
|
|
2886
2901
|
size?: LoadingSpinnerSize;
|
|
@@ -2888,7 +2903,7 @@ interface LoadingSpinnerProps {
|
|
|
2888
2903
|
slot?: string;
|
|
2889
2904
|
}
|
|
2890
2905
|
/** Stable viewBox-centered progress ring based on svg-spinners' MIT-licensed 180-ring. */
|
|
2891
|
-
declare function LoadingSpinner({ className, label, size, slot, }: LoadingSpinnerProps): kerfjs.SafeHtml;
|
|
2906
|
+
declare function LoadingSpinner({ className, color, label, size, slot, }: LoadingSpinnerProps): kerfjs.SafeHtml;
|
|
2892
2907
|
|
|
2893
2908
|
export { LoadingSpinner, type LoadingSpinnerProps, type LoadingSpinnerSize };
|
|
2894
2909
|
```
|
|
@@ -2933,8 +2948,8 @@ export { Skeleton, type SkeletonProps };
|
|
|
2933
2948
|
|
|
2934
2949
|
```ts
|
|
2935
2950
|
import * as kerfjs from 'kerfjs';
|
|
2936
|
-
import { CssFlexKeyword, CssFlex } from './css-values.js';
|
|
2937
2951
|
import { K as KerfUiContent } from './semantic-content-BbzjvSu9.js';
|
|
2952
|
+
import { CssFlexKeyword, CssFlex } from './css-values.js';
|
|
2938
2953
|
|
|
2939
2954
|
type SunkenPanelShape = 'rounded' | 'square';
|
|
2940
2955
|
interface SunkenPanelProps {
|
|
@@ -2964,16 +2979,16 @@ export { SunkenPanel, type SunkenPanelProps, type SunkenPanelShape };
|
|
|
2964
2979
|
## `@kerfjs/ui/token-search-field`
|
|
2965
2980
|
|
|
2966
2981
|
```ts
|
|
2982
|
+
export { T as TokenSearchEditorAttributes, a as TokenSearchField, b as TokenSearchFieldProps, c as TokenSearchFieldValue, j as TokenSearchToken, k as TokenSearchTrailingAction, p as placeTokenSearchCaret, r as readTokenSearchField } from './token-search-model-DTcTXWMS.js';
|
|
2967
2983
|
import 'kerfjs';
|
|
2968
2984
|
import './semantic-content-BbzjvSu9.js';
|
|
2969
|
-
export { T as TokenSearchEditorAttributes, a as TokenSearchField, b as TokenSearchFieldProps, c as TokenSearchFieldValue, j as TokenSearchToken, k as TokenSearchTrailingAction, p as placeTokenSearchCaret, r as readTokenSearchField } from './token-search-field-CVGwDn2y.js';
|
|
2970
2985
|
```
|
|
2971
2986
|
|
|
2972
2987
|
## `@kerfjs/ui/wire-token-search-fields`
|
|
2973
2988
|
|
|
2974
2989
|
```ts
|
|
2975
2990
|
import { Signal } from 'kerfjs';
|
|
2976
|
-
import { d as TokenSearchModel } from './token-search-
|
|
2991
|
+
import { d as TokenSearchModel } from './token-search-model-DTcTXWMS.js';
|
|
2977
2992
|
import './semantic-content-BbzjvSu9.js';
|
|
2978
2993
|
|
|
2979
2994
|
interface TokenSearchSubmit {
|
|
@@ -3170,14 +3185,16 @@ export { type ActionHandler, type DelegateActionsOptions, action, delegateAction
|
|
|
3170
3185
|
|
|
3171
3186
|
```ts
|
|
3172
3187
|
import { SafeHtml } from 'kerfjs';
|
|
3188
|
+
import { S as SemanticTone } from './semantic-tone-CdW013KF.js';
|
|
3173
3189
|
|
|
3174
|
-
|
|
3190
|
+
/** @deprecated Use SemanticTone. */
|
|
3191
|
+
type BadgeTone = SemanticTone;
|
|
3175
3192
|
type BadgeAppearance = 'quiet' | 'solid' | 'outline';
|
|
3176
3193
|
type BadgeShape = 'pill' | 'rounded';
|
|
3177
3194
|
/** Size of a text badge. A text-free dot is the separate `size: 'dot'` form. */
|
|
3178
3195
|
type BadgeSize = 'compact' | 'default';
|
|
3179
3196
|
interface BadgeCommonProps {
|
|
3180
|
-
tone?:
|
|
3197
|
+
tone?: SemanticTone;
|
|
3181
3198
|
className?: string;
|
|
3182
3199
|
/** Native named-slot assignment when composed inside a web component. */
|
|
3183
3200
|
slot?: string;
|
|
@@ -3220,19 +3237,20 @@ type BadgeProps = BadgeTextProps | BadgeDotProps;
|
|
|
3220
3237
|
/** Compact, non-interactive metadata whose tone, emphasis, and shape are configured by props. */
|
|
3221
3238
|
declare function Badge(props: BadgeProps): SafeHtml;
|
|
3222
3239
|
|
|
3223
|
-
export { Badge, type BadgeAppearance, type BadgeDotProps, type BadgeProps, type BadgeShape, type BadgeSize, type BadgeTextProps, type BadgeTone };
|
|
3240
|
+
export { Badge, type BadgeAppearance, type BadgeDotProps, type BadgeProps, type BadgeShape, type BadgeSize, type BadgeTextProps, type BadgeTone, SemanticTone };
|
|
3224
3241
|
```
|
|
3225
3242
|
|
|
3226
3243
|
## `@kerfjs/ui/chip`
|
|
3227
3244
|
|
|
3228
3245
|
```ts
|
|
3229
3246
|
import { SafeHtml } from 'kerfjs';
|
|
3230
|
-
import {
|
|
3247
|
+
import { S as SemanticTone } from './semantic-tone-CdW013KF.js';
|
|
3248
|
+
import { BadgeAppearance, BadgeShape, BadgeSize } from './badge.js';
|
|
3231
3249
|
|
|
3232
3250
|
interface ChipCommonProps {
|
|
3233
3251
|
/** Decorative leading icon, normally an unsized LucideIcon. */
|
|
3234
3252
|
icon?: SafeHtml;
|
|
3235
|
-
tone?:
|
|
3253
|
+
tone?: SemanticTone;
|
|
3236
3254
|
appearance?: BadgeAppearance;
|
|
3237
3255
|
shape?: BadgeShape;
|
|
3238
3256
|
size?: BadgeSize;
|
|
@@ -3280,6 +3298,8 @@ interface LucideIconProps {
|
|
|
3280
3298
|
className?: string;
|
|
3281
3299
|
/** Foreground color; omit to inherit the surrounding text color. */
|
|
3282
3300
|
color?: CssForegroundColor;
|
|
3301
|
+
/** Flow with surrounding text instead of occupying a block. */
|
|
3302
|
+
inline?: boolean;
|
|
3283
3303
|
label?: string;
|
|
3284
3304
|
/** Named icon scale or positive pixel size, converted to rem. Omit for 1em. */
|
|
3285
3305
|
size?: LucideIconSize;
|
|
@@ -3287,7 +3307,7 @@ interface LucideIconProps {
|
|
|
3287
3307
|
slot?: string;
|
|
3288
3308
|
}
|
|
3289
3309
|
/** Render a Lucide-compatible icon node without copying icon SVG strings. */
|
|
3290
|
-
declare function LucideIcon({ icon, name, appearance, className, color, label, size, slot, }: LucideIconProps): kerfjs.SafeHtml;
|
|
3310
|
+
declare function LucideIcon({ icon, name, appearance, className, color, inline, label, size, slot, }: LucideIconProps): kerfjs.SafeHtml;
|
|
3291
3311
|
|
|
3292
3312
|
export { LucideIcon, type LucideIconProps, type LucideIconSize, type LucideNode };
|
|
3293
3313
|
```
|
|
@@ -3333,6 +3353,15 @@ export { DialogSurface, type DialogSurfacePresentation, type DialogSurfaceProps,
|
|
|
3333
3353
|
import * as kerfjs from 'kerfjs';
|
|
3334
3354
|
import { KerfBaseAttrs } from 'kerfjs/jsx-runtime';
|
|
3335
3355
|
import { K as KerfUiContent } from './semantic-content-BbzjvSu9.js';
|
|
3356
|
+
import { CssForegroundColor } from './css-values.js';
|
|
3357
|
+
|
|
3358
|
+
type FieldLabelProps = Omit<KerfBaseAttrs, 'children' | 'class' | 'className'> & {
|
|
3359
|
+
children: string;
|
|
3360
|
+
class?: string;
|
|
3361
|
+
className?: string;
|
|
3362
|
+
};
|
|
3363
|
+
/** Visible field heading for a read-only preview; use its id with aria-labelledby on the preview group. */
|
|
3364
|
+
declare function FieldLabel({ children, class: classValue, className, ...attributes }: FieldLabelProps): kerfjs.SafeHtml;
|
|
3336
3365
|
|
|
3337
3366
|
type TextVariant = 'h1' | 'h2' | 'h3' | 'h4' | 'h5' | 'h6' | 'p' | 'span';
|
|
3338
3367
|
type TextTone = 'default' | 'quiet' | 'danger';
|
|
@@ -3342,18 +3371,13 @@ type TextBorder = 'transparent' | 'none';
|
|
|
3342
3371
|
type TextLineHeight = 'default' | 'tight';
|
|
3343
3372
|
type TextWrap = 'normal' | 'anywhere' | 'nowrap' | 'truncate';
|
|
3344
3373
|
type TextContent = KerfUiContent | string | number | readonly TextContent[];
|
|
3345
|
-
type FieldLabelProps = Omit<KerfBaseAttrs, 'children' | 'class' | 'className'> & {
|
|
3346
|
-
children: string;
|
|
3347
|
-
class?: string;
|
|
3348
|
-
className?: string;
|
|
3349
|
-
};
|
|
3350
|
-
/** Visible field heading for a read-only preview; use its id with aria-labelledby on the preview group. */
|
|
3351
|
-
declare function FieldLabel({ children, class: classValue, className, ...attributes }: FieldLabelProps): kerfjs.SafeHtml;
|
|
3352
3374
|
type TextCommonProps = Omit<KerfBaseAttrs, 'children' | 'class' | 'className'> & {
|
|
3353
3375
|
/** Native heading, paragraph, or inline span element to render. Defaults to `p`. */
|
|
3354
3376
|
variant?: TextVariant;
|
|
3355
3377
|
/** Semantic foreground treatment. Defaults to the inherited foreground. */
|
|
3356
3378
|
tone?: TextTone;
|
|
3379
|
+
/** Foreground color; overrides tone when supplied, or inherits when omitted. */
|
|
3380
|
+
color?: CssForegroundColor;
|
|
3357
3381
|
/** Text sizing independent of the native semantic element. */
|
|
3358
3382
|
size?: TextSize;
|
|
3359
3383
|
/** Font family independent of the native semantic element. */
|
|
@@ -3383,7 +3407,7 @@ type TextProps = TextCommonProps & ({
|
|
|
3383
3407
|
* content-item padding; `span` adds no box geometry.
|
|
3384
3408
|
* All ordinary native heading/paragraph attributes pass through to the element.
|
|
3385
3409
|
*/
|
|
3386
|
-
declare function Text({ variant: Variant, tone, size, font, border, flush, lineHeight, wrap, maxLines, children, class: classValue, className, ...attributes }: TextProps): kerfjs.SafeHtml;
|
|
3410
|
+
declare function Text({ variant: Variant, tone, color, size, font, border, flush, lineHeight, wrap, maxLines, children, class: classValue, className, style, ...attributes }: TextProps): kerfjs.SafeHtml;
|
|
3387
3411
|
|
|
3388
3412
|
export { FieldLabel, type FieldLabelProps, Text, type TextBorder, type TextContent, type TextFont, type TextLineHeight, type TextProps, type TextSize, type TextTone, type TextVariant, type TextWrap };
|
|
3389
3413
|
```
|
|
@@ -3392,10 +3416,10 @@ export { FieldLabel, type FieldLabelProps, Text, type TextBorder, type TextConte
|
|
|
3392
3416
|
|
|
3393
3417
|
```ts
|
|
3394
3418
|
import * as kerfjs from 'kerfjs';
|
|
3395
|
-
import { UiSpaceName, CssLength, CssFlexKeyword, CssFlex } from './css-values.js';
|
|
3396
|
-
import { H as HorizontalAlignment, V as VerticalAlignment } from './flex-alignment-4ms8ZbV8.js';
|
|
3397
3419
|
import { K as KerfUiContent } from './semantic-content-BbzjvSu9.js';
|
|
3420
|
+
import { H as HorizontalAlignment, V as VerticalAlignment } from './flex-alignment-4ms8ZbV8.js';
|
|
3398
3421
|
import { S as Sides } from './sides-BPSWde0A.js';
|
|
3422
|
+
import { UiSpaceName, CssLength, CssFlexKeyword, CssFlex } from './css-values.js';
|
|
3399
3423
|
|
|
3400
3424
|
type RowRootAttributes = Readonly<Record<`data-${string}`, string | undefined> & {
|
|
3401
3425
|
'data-component'?: never;
|
|
@@ -3445,8 +3469,9 @@ export { CssFlex, CssFlexKeyword, CssLength, HorizontalAlignment, Row, type RowP
|
|
|
3445
3469
|
|
|
3446
3470
|
```ts
|
|
3447
3471
|
import * as kerfjs from 'kerfjs';
|
|
3448
|
-
import { UiSpaceName, CssLength, CssFlexKeyword, CssFlex } from './css-values.js';
|
|
3449
3472
|
import { K as KerfUiContent } from './semantic-content-BbzjvSu9.js';
|
|
3473
|
+
import { S as Sides } from './sides-BPSWde0A.js';
|
|
3474
|
+
import { UiSpaceName, CssLength, CssFlexKeyword, CssFlex } from './css-values.js';
|
|
3450
3475
|
|
|
3451
3476
|
type GridRootAttributes = Readonly<Record<`data-${string}`, string | undefined> & {
|
|
3452
3477
|
'data-component'?: never;
|
|
@@ -3455,6 +3480,8 @@ type GridRootAttributes = Readonly<Record<`data-${string}`, string | undefined>
|
|
|
3455
3480
|
'data-auto-fill'?: never;
|
|
3456
3481
|
'data-flex'?: never;
|
|
3457
3482
|
'data-fill'?: never;
|
|
3483
|
+
'data-text-insets'?: never;
|
|
3484
|
+
'data-control-insets'?: never;
|
|
3458
3485
|
}>;
|
|
3459
3486
|
interface GridCommonProps {
|
|
3460
3487
|
children?: KerfUiContent;
|
|
@@ -3472,6 +3499,10 @@ interface GridCommonProps {
|
|
|
3472
3499
|
* flex layout use `flex` instead. Defaults to false.
|
|
3473
3500
|
*/
|
|
3474
3501
|
fill?: boolean;
|
|
3502
|
+
/** Physical sides that receive the standard 17px text inset. */
|
|
3503
|
+
textInsets?: Sides;
|
|
3504
|
+
/** Physical sides that receive the standard 8px control inset. Text insets win on overlap. */
|
|
3505
|
+
controlInsets?: Sides;
|
|
3475
3506
|
className?: string;
|
|
3476
3507
|
/** Safe `data-*` metadata; Grid-owned structural attributes remain protected. */
|
|
3477
3508
|
rootAttributes?: GridRootAttributes;
|
|
@@ -3491,9 +3522,9 @@ type GridProps = GridCommonProps & ({
|
|
|
3491
3522
|
autoFill?: boolean;
|
|
3492
3523
|
});
|
|
3493
3524
|
/** Render equal tracks with a fixed count or a responsive minimum width. */
|
|
3494
|
-
declare function Grid({ children, selectionMode, ariaLabel, columns, minColumnWidth, autoFill, gap, flex, fill, className, rootAttributes, slot, }: GridProps): kerfjs.SafeHtml;
|
|
3525
|
+
declare function Grid({ children, selectionMode, ariaLabel, columns, minColumnWidth, autoFill, gap, flex, fill, textInsets, controlInsets, className, rootAttributes, slot, }: GridProps): kerfjs.SafeHtml;
|
|
3495
3526
|
|
|
3496
|
-
export { CssFlex, CssFlexKeyword, CssLength, Grid, type GridProps, UiSpaceName };
|
|
3527
|
+
export { CssFlex, CssFlexKeyword, CssLength, Grid, type GridProps, Sides, UiSpaceName };
|
|
3497
3528
|
```
|
|
3498
3529
|
|
|
3499
3530
|
## `@kerfjs/ui/spacer`
|
|
@@ -3522,7 +3553,7 @@ export { CssLength, Spacer, type SpacerProps, UiSpaceName };
|
|
|
3522
3553
|
## `@kerfjs/ui/token-search-model`
|
|
3523
3554
|
|
|
3524
3555
|
```ts
|
|
3556
|
+
export { d as TokenSearchModel, e as TokenSearchModelOptions, f as TokenSearchResolvedToken, g as TokenSearchRule, h as TokenSearchState, i as TokenSearchSuggestion, l as createTokenSearchModel } from './token-search-model-DTcTXWMS.js';
|
|
3525
3557
|
import 'kerfjs';
|
|
3526
|
-
export { d as TokenSearchModel, e as TokenSearchModelOptions, f as TokenSearchResolvedToken, g as TokenSearchRule, h as TokenSearchState, i as TokenSearchSuggestion, l as createTokenSearchModel } from './token-search-field-CVGwDn2y.js';
|
|
3527
3558
|
import './semantic-content-BbzjvSu9.js';
|
|
3528
3559
|
```
|
package/ai/skill.md
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
name: kerf-ui
|
|
3
3
|
description: Build interfaces with kerfjs and the @kerfjs/ui production component package. Use whenever code imports @kerfjs/ui or a task asks for Kerf UI components.
|
|
4
|
-
kerf-ui-skill-version: 1.
|
|
4
|
+
kerf-ui-skill-version: 1.51.0
|
|
5
5
|
---
|
|
6
6
|
|
|
7
7
|
# Building with @kerfjs/ui
|
|
@@ -21,6 +21,16 @@ documented dynamic-data widening. Do not extend those diagnostics to child
|
|
|
21
21
|
markup, live DOM relationships, disposer invocation, or other conditions that
|
|
22
22
|
TypeScript cannot prove from one call.
|
|
23
23
|
|
|
24
|
+
### Shared semantic tones
|
|
25
|
+
|
|
26
|
+
`SemanticTone` is the shared color-role type for `Badge`, `Chip`, `StateBanner`,
|
|
27
|
+
and semantic `ContentItem` appearances: `neutral`, `info`, `pop`, `success`,
|
|
28
|
+
`warning`, and `danger`. Import it as a type from `@kerfjs/ui`,
|
|
29
|
+
`@kerfjs/ui/badge`, `@kerfjs/ui/state-banner`, or `@kerfjs/ui/content-item`.
|
|
30
|
+
Use `info` for the role backed by the existing `--kui-color-brand-*` tokens.
|
|
31
|
+
Migrate Badge/Chip `tone="brand"` to `tone="info"`; `BadgeTone` and
|
|
32
|
+
`StateBannerTone` remain deprecated aliases of `SemanticTone`.
|
|
33
|
+
|
|
24
34
|
## Components own their styles; configure, never override
|
|
25
35
|
|
|
26
36
|
This is the rule every Kerf UI surface follows, and applications and
|
|
@@ -33,6 +43,11 @@ component packages built on Kerf UI must follow it too:
|
|
|
33
43
|
selects a `.kui-*` class, a `[data-component]` root, a `wa-*` element a Kerf
|
|
34
44
|
component renders, or its `::part()`s, and no hook class added to a
|
|
35
45
|
component's root so that it can be restyled.
|
|
46
|
+
- **Owned implementation details are available.** A component may render raw
|
|
47
|
+
HTML or Web Awesome elements and style those elements when it creates them,
|
|
48
|
+
controls their state, and keeps the selectors in its own stylesheet. That
|
|
49
|
+
permission stops at every nested Kerf or application component boundary;
|
|
50
|
+
ownership follows the child component, even when the parent rendered it.
|
|
36
51
|
- **Configuration, not overrides.** Do not write another component's private
|
|
37
52
|
`--_kui-*` variables or reach for its `--kui-*` tokens to change layout,
|
|
38
53
|
size, padding, or framing when a prop exists. Theme tokens are for theming
|
|
@@ -49,6 +64,11 @@ wa-dropdown.kui-popup-menu { … }` lives with PopupMenu). A parent may key its
|
|
|
49
64
|
you need, report it (open an upstream feature request) instead of
|
|
50
65
|
overriding. Your own components follow the same rule: expose configuration,
|
|
51
66
|
and let each component own its styles.
|
|
67
|
+
- **Thin compositions usually need no CSS.** A component that only chooses and
|
|
68
|
+
connects other components should configure their props and slots without a
|
|
69
|
+
stylesheet. Add CSS only for raw elements or layout that the composition
|
|
70
|
+
itself owns; never use a composition stylesheet to normalize or override its
|
|
71
|
+
children.
|
|
52
72
|
|
|
53
73
|
`kerf-ui-analyze` and `kerf-ui-doctor` enforce this downstream: `KUI-L019`
|
|
54
74
|
(a rule whose subject is a cataloged component), `KUI-L020` (another
|
|
@@ -62,9 +82,12 @@ when none exists, report the component gap rather than suppressing the finding.
|
|
|
62
82
|
For compact known activity, give `LoadingSpinner` its `size` prop (`xs` through
|
|
63
83
|
`xl`, or a positive pixel number) instead of styling its SVG; omitted size is
|
|
64
84
|
1em.
|
|
65
|
-
For an application's own
|
|
66
|
-
`"ownership": "component"
|
|
67
|
-
|
|
85
|
+
For an application's own components, configure Doctor with
|
|
86
|
+
`"ownership": "component"`, `"implicitComponentOwnership": true`, and
|
|
87
|
+
`"ownershipContext": "any-package"`; declare each catalog entry's
|
|
88
|
+
`styleSources` so sibling components cannot style one another. Package
|
|
89
|
+
ownership remains the compatibility default and does not establish those
|
|
90
|
+
application-level boundaries.
|
|
68
91
|
|
|
69
92
|
Read `../docs/webawesome-theme.md` when using Web Awesome components or changing
|
|
70
93
|
shared theme tokens. When overriding a loud fill
|
|
@@ -172,6 +195,8 @@ For selectable document tiles, set `Grid selectionMode="multiple"` and
|
|
|
172
195
|
`ariaLabel`, render `ContentItem selectionMode="multiple"` children, and wire
|
|
173
196
|
`wireContentItems` for arrows, Home/End, and card activation. The app owns the
|
|
174
197
|
selection set and each tile's nested controls.
|
|
198
|
+
`textInsets` adds the standard 17px physical-side content inset; `controlInsets`
|
|
199
|
+
adds 8px. Text insets win on any overlapping side, matching Row and List.
|
|
175
200
|
|
|
176
201
|
For a complete shell, sidebar, workspace header, list-detail dialog, composer
|
|
177
202
|
form, list-state lifecycle, or mixed-control toolbar, start from the runnable
|
|
@@ -262,6 +287,7 @@ Use `Toolbar responsive="trailing-priority"` when an expanded trailing search ne
|
|
|
262
287
|
Set `--kui-toolbar-inset: 0px` on an embedded Toolbar to remove its outer padding while retaining `--kui-toolbar-gap` between zones. The same inset token controls the minimum-height allowance; safe-area padding still applies at claimed edges.
|
|
263
288
|
|
|
264
289
|
For compact dialog copy, use `Text flush lineHeight="tight"`; for compact metadata, use `ValueTable density="compact"` and its public row columns/padding/gap tokens. `ToolbarText size="xsmall"` fits a dense rail heading. A `TokenSearchField` editor shrinks inside a narrow group by default; set `--kui-token-search-editor-min-width` when a minimum is needed. A full-height shell uses the one `.kui-app-root` mount container documented in `docs/document-baseline.md`.
|
|
290
|
+
When importing the opt-in `@kerfjs/ui/document.css` baseline, native `th`, `td`, `button`, `input`, `select`, and `textarea` inherit the surrounding font family, size, and line height; table headers retain their native emphasis. Load application typography overrides after the baseline.
|
|
265
291
|
|
|
266
292
|
For a read-only field preview that replaces a Web Awesome input, use `FieldLabel` from `@kerfjs/ui/text` above the preview. Put it in `ListInsetControl sides="trl"` beside a `ContentItem` value; give it an id and use `aria-labelledby` on the preview group. The app owns preview/edit state and hint copy.
|
|
267
293
|
|
|
@@ -310,6 +336,7 @@ For prominent content text, use `Text size="large"`; use `size="xlarge"` for dis
|
|
|
310
336
|
For removable tags use `Chip`, with `removeAction` for delegated handling and a specific `removeLabel` for the native button. `itemId` identifies the tag; the app owns removal. `size="compact"` and `disabled` replace app styling of raw `wa-tag` internals. Use `Badge` for non-interactive metadata.
|
|
311
337
|
|
|
312
338
|
For an icon with a specific meaning, set `LucideIcon.color` using `uiColor('warning-on-quiet')` or another foreground token. Use `foregroundColorVar('--app-icon-color')` for an app-owned property or `foregroundColor('#8b5cf6')` for a direct custom CSS color. Omit the prop to inherit text color. Outline stroke and solid fill both follow the chosen color; size, appearance, label, and slot remain separate props. Avoid pale fill tokens as foregrounds.
|
|
339
|
+
Set `LucideIcon.inline` when an icon belongs within `Text` or another sentence; the SVG flows as `inline-block` instead of its default block layout. It retains its inherited 1em size unless you set `size`.
|
|
313
340
|
|
|
314
341
|
For `Select`, mark an unavailable choice with `disabled` and optionally `disabledReason`. In a multiple Select, `selectAllLabel` and `clearLabel` opt in to localized footer actions that select enabled choices or clear the selection through normal input/change events; the app still owns the controlled `value`.
|
|
315
342
|
|
|
@@ -322,3 +349,5 @@ lifecycle: the latest request wins through open/close reversals, canceled
|
|
|
322
349
|
transitions, and removal. Native value, keyboard, dismissal, and anchor placement
|
|
323
350
|
remain with Web Awesome. Do not add popup delays, position repairs, or animation
|
|
324
351
|
completion handlers in consumers. Raw `wa-select` elements remain native.
|
|
352
|
+
|
|
353
|
+
Neutral lowered surfaces and decorative neutral fills/borders are translucent theme colors; compose nested public components directly. Default/raised canvases, foregrounds, focus indicators, and loud contrast-bearing fills remain opaque. Do not assign depth-specific component tokens in demo wrappers.
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# Web Awesome JSX signatures for the UI authoring corpus
|
|
2
2
|
|
|
3
|
-
Generated from the emitted `@kerfjs/ui@5.0.0-beta.
|
|
3
|
+
Generated from the emitted `@kerfjs/ui@5.0.0-beta.76` declaration boundary. Import `@kerfjs/ui/webawesome` for type effects when authoring direct `wa-*` JSX. The module emits no runtime behavior and does not register custom elements.
|
|
4
4
|
|
|
5
5
|
```ts
|
|
6
6
|
import { KerfCustomElement } from 'kerfjs/jsx-runtime';
|
package/analyzer/index.mjs
CHANGED
|
@@ -15,6 +15,7 @@ import ts from 'typescript';
|
|
|
15
15
|
import { loadApplicationUiProfile } from '../ai/application-ui-profile.mjs';
|
|
16
16
|
import { isUiTraversalExcluded } from '../traversal-exclusions.mjs';
|
|
17
17
|
import {
|
|
18
|
+
classOwnerFor,
|
|
18
19
|
componentLabel,
|
|
19
20
|
componentName,
|
|
20
21
|
componentOwnershipFacts,
|
|
@@ -1636,7 +1637,13 @@ function inspectTsx(
|
|
|
1636
1637
|
);
|
|
1637
1638
|
if (entry && isForeign(entry))
|
|
1638
1639
|
for (const className of classes.values) {
|
|
1639
|
-
|
|
1640
|
+
// A class owned by the surrounding application is still a hook when
|
|
1641
|
+
// placed on another component's root. Only the component's own
|
|
1642
|
+
// public class is safe to style here.
|
|
1643
|
+
if (
|
|
1644
|
+
classOwnerFor(facts.ownership, className, componentMode)?.key ===
|
|
1645
|
+
entry.key
|
|
1646
|
+
)
|
|
1640
1647
|
continue;
|
|
1641
1648
|
const styled = cssFacts.get(className)?.styled;
|
|
1642
1649
|
if (!styled) continue;
|
|
@@ -1717,6 +1724,9 @@ function inspectTsx(
|
|
|
1717
1724
|
inset: inset || parent?.inset,
|
|
1718
1725
|
label: entry?.key ?? tag,
|
|
1719
1726
|
});
|
|
1727
|
+
// JSX supplied through a prop (for example Toolbar.leading) is still
|
|
1728
|
+
// rendered markup and must be checked like ordinary children.
|
|
1729
|
+
ts.forEachChild(opening.attributes, visit);
|
|
1720
1730
|
if (ts.isJsxElement(node))
|
|
1721
1731
|
for (const child of node.children) visit(child);
|
|
1722
1732
|
stack.pop();
|
package/dist/app-tab.js
CHANGED