@kerfjs/ui 5.0.0-beta.74 → 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 +54 -16
- package/ai/component-composition.json +18 -6
- 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/list.md +3 -2
- package/ai/components/lucide-icon.md +20 -1
- package/ai/components/select.md +5 -4
- package/ai/public-api-signatures-v1.md +101 -61
- package/ai/skill.md +35 -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-I6FTU27I.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-VZOFZPSO.js → chunk-5D3WDMIK.js} +4 -4
- package/dist/chunk-5D3WDMIK.js.map +1 -0
- package/dist/{chunk-IJNYCPAU.js → chunk-5PAVAR4B.js} +3 -3
- package/dist/chunk-5PAVAR4B.js.map +1 -0
- package/dist/{chunk-2IGHGE3M.js → chunk-72LLWYP2.js} +6 -6
- package/dist/chunk-72LLWYP2.js.map +1 -0
- package/dist/{chunk-KZRR7NNV.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-33EOFAUN.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-RT5WKYX3.js → chunk-ARZ4RSQO.js} +5 -6
- package/dist/chunk-ARZ4RSQO.js.map +1 -0
- package/dist/{chunk-ZSJOLL3S.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-TT5ROTQK.js → chunk-EFDCALR3.js} +2 -2
- package/dist/chunk-EFDCALR3.js.map +1 -0
- package/dist/{chunk-RVERAFFY.js → chunk-G4VKQP7B.js} +2 -2
- package/dist/chunk-G4VKQP7B.js.map +1 -0
- package/dist/{chunk-BGD7EHUE.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-KFJSNWO4.js → chunk-H7ZJEI3H.js} +3 -3
- package/dist/chunk-H7ZJEI3H.js.map +1 -0
- package/dist/{chunk-7KHKLG5C.js → chunk-HFLGWMG3.js} +4 -4
- package/dist/chunk-HFLGWMG3.js.map +1 -0
- package/dist/{chunk-6LAQWWEX.js → chunk-HFQDSSED.js} +6 -6
- package/dist/chunk-HFQDSSED.js.map +1 -0
- package/dist/{chunk-2RMDP7HQ.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-G4S2QU6V.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-RU2EMR56.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-2G2ZJQYK.js → chunk-LRAIS3YB.js} +9 -3
- 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-W2AC6Q2A.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-WTSNV5RG.js → chunk-PQQQXJGV.js} +9 -3
- 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-L67OYMGE.js → chunk-SJY7KC45.js} +5 -5
- package/dist/chunk-SJY7KC45.js.map +1 -0
- package/dist/{chunk-DB5ADJKF.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-B2ZMR7NY.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-3DOHW3K4.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.d.ts +6 -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 -1
- package/dist/loading-spinner.js +1 -1
- package/dist/lucide-icon.d.ts +6 -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 +19 -5
- 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/type-contracts.md +17 -17
- 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 +20 -3
- package/package.json +3 -2
- package/dist/chunk-2G2ZJQYK.js.map +0 -1
- package/dist/chunk-2IGHGE3M.js.map +0 -1
- package/dist/chunk-2RMDP7HQ.js.map +0 -1
- package/dist/chunk-33EOFAUN.js.map +0 -1
- package/dist/chunk-3BYFWTP3.js.map +0 -1
- package/dist/chunk-3DOHW3K4.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-6DFDTWGG.js.map +0 -1
- package/dist/chunk-6LAQWWEX.js.map +0 -1
- package/dist/chunk-7KHKLG5C.js.map +0 -1
- package/dist/chunk-ALGYHYXP.js.map +0 -1
- package/dist/chunk-AYUHMAI6.js.map +0 -1
- package/dist/chunk-B2ZMR7NY.js.map +0 -1
- package/dist/chunk-BFPBS5Y4.js.map +0 -1
- package/dist/chunk-BGD7EHUE.js.map +0 -1
- package/dist/chunk-DB5ADJKF.js.map +0 -1
- package/dist/chunk-DG6G5EPF.js.map +0 -1
- package/dist/chunk-DPAUKNB6.js.map +0 -1
- package/dist/chunk-G4S2QU6V.js.map +0 -1
- package/dist/chunk-I3Q7KKYM.js.map +0 -1
- package/dist/chunk-I6FTU27I.js.map +0 -1
- package/dist/chunk-IJNYCPAU.js.map +0 -1
- package/dist/chunk-K47P7QZC.js.map +0 -1
- package/dist/chunk-KFJSNWO4.js.map +0 -1
- package/dist/chunk-KZRR7NNV.js.map +0 -1
- package/dist/chunk-L67OYMGE.js.map +0 -1
- package/dist/chunk-NCSWXG7G.js.map +0 -1
- package/dist/chunk-NN6GYOA2.js.map +0 -1
- package/dist/chunk-OXO2QJWV.js.map +0 -1
- package/dist/chunk-PSHUSWQH.js.map +0 -1
- package/dist/chunk-RGS4WX2M.js.map +0 -1
- package/dist/chunk-RT5WKYX3.js.map +0 -1
- package/dist/chunk-RU2EMR56.js.map +0 -1
- package/dist/chunk-RVERAFFY.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-TDN5EE3S.js.map +0 -1
- package/dist/chunk-TT5ROTQK.js.map +0 -1
- package/dist/chunk-V4WLBOVJ.js.map +0 -1
- package/dist/chunk-VZOFZPSO.js.map +0 -1
- package/dist/chunk-W2AC6Q2A.js.map +0 -1
- package/dist/chunk-WF75U3V4.js.map +0 -1
- package/dist/chunk-WTSNV5RG.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/chunk-ZSJOLL3S.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
|
|
|
@@ -110,8 +110,13 @@ declare function colorVar(name: `--${string}`, fallback?: CssColor): CssColor;
|
|
|
110
110
|
* accepts only {@link CssForegroundColor}, such as `SelectChoice.color`.
|
|
111
111
|
*/
|
|
112
112
|
declare function foregroundColorVar(name: `--${string}`, fallback?: CssForegroundColor): CssForegroundColor;
|
|
113
|
+
/**
|
|
114
|
+
* Use an application-chosen CSS color for foreground content. The browser
|
|
115
|
+
* resolves the color syntax; this checks only that it is one declaration value.
|
|
116
|
+
*/
|
|
117
|
+
declare function foregroundColor(value: string): CssForegroundColor;
|
|
113
118
|
|
|
114
|
-
export { type CssColor, type CssFlex, type CssFlexBasis, type CssFlexKeyword, type CssForegroundColor, type CssLength, type CssLengthExpression, type CssSize, type CssSizeKeyword, type CssValue, type UiColor, type UiColorName, type UiForegroundColorName, type UiSpaceName, calc, colorVar, em, flex, foregroundColorVar, lengthVar, pct, plus, px, rem, remify, space, uiColor };
|
|
119
|
+
export { type CssColor, type CssFlex, type CssFlexBasis, type CssFlexKeyword, type CssForegroundColor, type CssLength, type CssLengthExpression, type CssSize, type CssSizeKeyword, type CssValue, type UiColor, type UiColorName, type UiForegroundColorName, type UiSpaceName, calc, colorVar, em, flex, foregroundColor, foregroundColorVar, lengthVar, pct, plus, px, rem, remify, space, uiColor };
|
|
115
120
|
```
|
|
116
121
|
|
|
117
122
|
## `@kerfjs/ui/disclosure-arrow`
|
|
@@ -142,9 +147,9 @@ export { DisclosureArrow, type DisclosureArrowProps, type DisclosureDirection };
|
|
|
142
147
|
|
|
143
148
|
```ts
|
|
144
149
|
import * as kerfjs from 'kerfjs';
|
|
145
|
-
import { PaneSeparatorSide } from './pane.js';
|
|
146
150
|
import { K as KerfUiContent } from './semantic-content-BbzjvSu9.js';
|
|
147
151
|
import { S as Sides } from './sides-BPSWde0A.js';
|
|
152
|
+
import { PaneSeparatorSide } from './pane.js';
|
|
148
153
|
|
|
149
154
|
type ToolbarPosition = 'header' | 'footer';
|
|
150
155
|
interface ToolbarProps {
|
|
@@ -358,8 +363,8 @@ export { ToolbarActionLink, type ToolbarActionLinkProps, ToolbarControlGroup, ty
|
|
|
358
363
|
|
|
359
364
|
```ts
|
|
360
365
|
import * as kerfjs from 'kerfjs';
|
|
361
|
-
import { CssLength } from './css-values.js';
|
|
362
366
|
import { K as KerfUiContent } from './semantic-content-BbzjvSu9.js';
|
|
367
|
+
import { CssLength } from './css-values.js';
|
|
363
368
|
|
|
364
369
|
/** Where a {@link FloatingToolbar} floats within its positioned container. */
|
|
365
370
|
type FloatingToolbarPosition = 'bottom' | 'bottom-start' | 'bottom-end' | 'top' | 'top-start' | 'top-end';
|
|
@@ -626,11 +631,11 @@ export { ListHeader, type ListHeaderProps };
|
|
|
626
631
|
|
|
627
632
|
```ts
|
|
628
633
|
import * as kerfjs from 'kerfjs';
|
|
629
|
-
import {
|
|
634
|
+
import { K as KerfUiContent } from './semantic-content-BbzjvSu9.js';
|
|
630
635
|
import { H as HorizontalAlignment, L as ListVerticalAlignment } from './flex-alignment-4ms8ZbV8.js';
|
|
631
636
|
export { V as VerticalAlignment } from './flex-alignment-4ms8ZbV8.js';
|
|
632
|
-
import { K as KerfUiContent } from './semantic-content-BbzjvSu9.js';
|
|
633
637
|
import { S as Sides } from './sides-BPSWde0A.js';
|
|
638
|
+
import { UiSpaceName, CssLength, CssFlexKeyword, CssFlex } from './css-values.js';
|
|
634
639
|
|
|
635
640
|
type ListRootAttributes = Readonly<Record<`data-${string}`, string | undefined> & {
|
|
636
641
|
'data-component'?: never;
|
|
@@ -893,7 +898,10 @@ export { ListInsetText, type ListInsetTextProps, Sides };
|
|
|
893
898
|
```ts
|
|
894
899
|
import * as kerfjs from 'kerfjs';
|
|
895
900
|
import { K as KerfUiContent } from './semantic-content-BbzjvSu9.js';
|
|
901
|
+
import { S as SemanticTone } from './semantic-tone-CdW013KF.js';
|
|
896
902
|
|
|
903
|
+
/** Base surface treatment or semantic status colors. */
|
|
904
|
+
type ContentItemAppearance = 'transparent' | 'surface' | SemanticTone;
|
|
897
905
|
/** Whether the item's always-reserved 1px border is transparent or visible. */
|
|
898
906
|
type ContentItemFrame = 'none' | 'framed';
|
|
899
907
|
/** Corner shape: the 12px rounded rectangle or the 22px pill. */
|
|
@@ -902,9 +910,11 @@ type ContentItemShape = 'rounded' | 'pill';
|
|
|
902
910
|
type ContentItemSelectionMode = 'none' | 'single' | 'multiple' | 'toggle';
|
|
903
911
|
type ContentItemRootAttributes = Readonly<Record<`data-${string}`, string | undefined> & {
|
|
904
912
|
'data-component'?: never;
|
|
913
|
+
'data-appearance'?: never;
|
|
905
914
|
}>;
|
|
906
915
|
type ContentItemInteractiveRootAttributes = Readonly<Record<`data-${string}`, string | undefined> & {
|
|
907
916
|
'data-component'?: never;
|
|
917
|
+
'data-appearance'?: never;
|
|
908
918
|
'data-action'?: never;
|
|
909
919
|
'data-item-id'?: never;
|
|
910
920
|
'data-interactive'?: never;
|
|
@@ -914,6 +924,12 @@ type ContentItemInteractiveRootAttributes = Readonly<Record<`data-${string}`, st
|
|
|
914
924
|
'data-kui-pressed'?: never;
|
|
915
925
|
}>;
|
|
916
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;
|
|
917
933
|
/** Item content; a plain string is allowed for bare copy. */
|
|
918
934
|
children?: KerfUiContent | string;
|
|
919
935
|
/**
|
|
@@ -969,9 +985,9 @@ type ContentItemProps = ContentItemBaseProps & ({
|
|
|
969
985
|
* border (transparent unless `framed`), 8px padding, and a rounded or pill
|
|
970
986
|
* radius. It owns that whole geometry, so wrappers must not add more.
|
|
971
987
|
*/
|
|
972
|
-
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;
|
|
973
989
|
|
|
974
|
-
export { ContentItem, type ContentItemFrame, type ContentItemProps, type ContentItemSelectionMode, type ContentItemShape };
|
|
990
|
+
export { ContentItem, type ContentItemAppearance, type ContentItemFrame, type ContentItemProps, type ContentItemSelectionMode, type ContentItemShape, SemanticTone };
|
|
975
991
|
```
|
|
976
992
|
|
|
977
993
|
## `@kerfjs/ui/value-table`
|
|
@@ -1249,10 +1265,10 @@ export { type ScrollDividerTarget, type WireScrollDividersOptions, wireScrollDiv
|
|
|
1249
1265
|
|
|
1250
1266
|
```ts
|
|
1251
1267
|
import * as kerfjs from 'kerfjs';
|
|
1252
|
-
import { PaneAppearance } from './pane.js';
|
|
1253
1268
|
import { K as KerfUiContent } from './semantic-content-BbzjvSu9.js';
|
|
1254
1269
|
import { ToolbarConfig } from './toolbar.js';
|
|
1255
1270
|
import { ToolbarTextSize, HeadingLevel } from './toolbar-text.js';
|
|
1271
|
+
import { PaneAppearance } from './pane.js';
|
|
1256
1272
|
import './sides-BPSWde0A.js';
|
|
1257
1273
|
|
|
1258
1274
|
/**
|
|
@@ -1371,12 +1387,12 @@ export { type WireNavStackOptions, wireNavStack };
|
|
|
1371
1387
|
|
|
1372
1388
|
```ts
|
|
1373
1389
|
import * as kerfjs from 'kerfjs';
|
|
1390
|
+
import { K as KerfUiContent } from './semantic-content-BbzjvSu9.js';
|
|
1374
1391
|
import { NavStackProps, NavStackView } from './nav-stack.js';
|
|
1375
1392
|
import { ResizableRegionProps } from './resizable-region.js';
|
|
1376
|
-
import { K as KerfUiContent } from './semantic-content-BbzjvSu9.js';
|
|
1377
|
-
import './pane.js';
|
|
1378
1393
|
import './toolbar.js';
|
|
1379
1394
|
import './sides-BPSWde0A.js';
|
|
1395
|
+
import './pane.js';
|
|
1380
1396
|
import './toolbar-text.js';
|
|
1381
1397
|
import './css-values.js';
|
|
1382
1398
|
|
|
@@ -1563,16 +1579,16 @@ export { Pane, type PaneAppearance, type PaneChromeDividers, type PaneChromePlac
|
|
|
1563
1579
|
|
|
1564
1580
|
```ts
|
|
1565
1581
|
import { SafeHtml } from 'kerfjs';
|
|
1582
|
+
import { K as KerfUiContent } from './semantic-content-BbzjvSu9.js';
|
|
1566
1583
|
import { ListConfig } from './list.js';
|
|
1567
1584
|
import { NavStackProps } from './nav-stack.js';
|
|
1568
1585
|
import { PaneConfig } from './pane.js';
|
|
1569
1586
|
import { ResizableRegionSeparator, ResizableRegionCollapseMotion, ResizableRegionContentOverflow, ResizableRegionPresentation, ResizableRegionRestorePosition } from './resizable-region.js';
|
|
1570
|
-
import {
|
|
1587
|
+
import { a as PanelToolbar, b as PanelChromePlacement, c as PanelBottomToolbar, d as PanelToggle } from './panel-toolbar-CL9tYOkh.js';
|
|
1571
1588
|
import { ToolbarConfig } from './toolbar.js';
|
|
1572
|
-
import { a as PanelToolbar, b as PanelChromePlacement, c as PanelBottomToolbar, d as PanelToggle } from './panel-toolbar-DDKh4uKd.js';
|
|
1573
|
-
import './css-values.js';
|
|
1574
1589
|
import './flex-alignment-4ms8ZbV8.js';
|
|
1575
1590
|
import './sides-BPSWde0A.js';
|
|
1591
|
+
import './css-values.js';
|
|
1576
1592
|
import './toolbar-text.js';
|
|
1577
1593
|
import './lucide-icon.js';
|
|
1578
1594
|
import 'lucide';
|
|
@@ -1957,18 +1973,18 @@ export { type WireWorkbenchOptions, type WireWorkbenchPanel, type WorkbenchPanel
|
|
|
1957
1973
|
|
|
1958
1974
|
```ts
|
|
1959
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';
|
|
1960
1979
|
import { ListConfig } from './list.js';
|
|
1961
1980
|
import { PaneConfig } from './pane.js';
|
|
1962
|
-
import { P as PanelSide, a as PanelToolbar, b as PanelChromePlacement, c as PanelBottomToolbar, d as PanelToggle } from './panel-toolbar-DDKh4uKd.js';
|
|
1963
|
-
export { e as collapsiblePanelToggleIcon } from './panel-toolbar-DDKh4uKd.js';
|
|
1964
1981
|
import { ResizableRegionSeparator, ResizableRegionCollapseMotion, ResizableRegionContentOverflow, ResizableRegionPresentation, ResizableRegionRestorePosition } from './resizable-region.js';
|
|
1965
|
-
import
|
|
1966
|
-
import './css-values.js';
|
|
1967
|
-
import './flex-alignment-4ms8ZbV8.js';
|
|
1982
|
+
import './toolbar.js';
|
|
1968
1983
|
import './sides-BPSWde0A.js';
|
|
1969
1984
|
import './lucide-icon.js';
|
|
1970
1985
|
import 'lucide';
|
|
1971
|
-
import './
|
|
1986
|
+
import './css-values.js';
|
|
1987
|
+
import './flex-alignment-4ms8ZbV8.js';
|
|
1972
1988
|
|
|
1973
1989
|
/** Which edge a {@link CollapsiblePanel} docks to. */
|
|
1974
1990
|
type CollapsiblePanelSide = PanelSide;
|
|
@@ -2163,8 +2179,8 @@ export { type SidebarStorage, type WireSidebarOptions, type WireSidebarPanel, wi
|
|
|
2163
2179
|
|
|
2164
2180
|
```ts
|
|
2165
2181
|
import { SafeHtml } from 'kerfjs';
|
|
2166
|
-
import { PaneAppearance } from './pane.js';
|
|
2167
2182
|
import { K as KerfUiContent } from './semantic-content-BbzjvSu9.js';
|
|
2183
|
+
import { PaneAppearance } from './pane.js';
|
|
2168
2184
|
|
|
2169
2185
|
interface TabScaffoldTabBase<Id extends string> {
|
|
2170
2186
|
id: Id;
|
|
@@ -2264,8 +2280,8 @@ export { type WireTabScaffoldOptions, wireTabScaffold };
|
|
|
2264
2280
|
|
|
2265
2281
|
```ts
|
|
2266
2282
|
import { SafeHtml } from 'kerfjs';
|
|
2267
|
-
import { CssLength } from './css-values.js';
|
|
2268
2283
|
import { K as KerfUiContent } from './semantic-content-BbzjvSu9.js';
|
|
2284
|
+
import { CssLength } from './css-values.js';
|
|
2269
2285
|
|
|
2270
2286
|
type ResizableRegionAxis = 'horizontal' | 'vertical';
|
|
2271
2287
|
type ResizableRegionEdge = 'start' | 'end';
|
|
@@ -2410,20 +2426,20 @@ export { DEFAULT_BREAKPOINTS, type DeviceBreakpoints, type DeviceClass, type Dev
|
|
|
2410
2426
|
```ts
|
|
2411
2427
|
import * as kerfjs from 'kerfjs';
|
|
2412
2428
|
import { SafeHtml } from 'kerfjs';
|
|
2413
|
-
import { a as CatalogProps } from './types-
|
|
2414
|
-
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';
|
|
2415
2431
|
import { K as KerfUiContent } from './semantic-content-BbzjvSu9.js';
|
|
2416
2432
|
import './toolbar.js';
|
|
2417
|
-
import './pane.js';
|
|
2418
2433
|
import './sides-BPSWde0A.js';
|
|
2434
|
+
import './pane.js';
|
|
2419
2435
|
import './workbench.js';
|
|
2420
2436
|
import './list.js';
|
|
2421
|
-
import './css-values.js';
|
|
2422
2437
|
import './flex-alignment-4ms8ZbV8.js';
|
|
2438
|
+
import './css-values.js';
|
|
2423
2439
|
import './nav-stack.js';
|
|
2424
2440
|
import './toolbar-text.js';
|
|
2425
2441
|
import './resizable-region.js';
|
|
2426
|
-
import './panel-toolbar-
|
|
2442
|
+
import './panel-toolbar-CL9tYOkh.js';
|
|
2427
2443
|
import './lucide-icon.js';
|
|
2428
2444
|
import 'lucide';
|
|
2429
2445
|
|
|
@@ -2505,20 +2521,20 @@ export { Catalog, CatalogExample, type CatalogExampleAlign, type CatalogExampleP
|
|
|
2505
2521
|
## `@kerfjs/ui/catalog-resources`
|
|
2506
2522
|
|
|
2507
2523
|
```ts
|
|
2508
|
-
import { C as CatalogResource } from './types-
|
|
2509
|
-
import './semantic-content-BbzjvSu9.js';
|
|
2510
|
-
import 'kerfjs';
|
|
2524
|
+
import { C as CatalogResource } from './types-C9BubXfz.js';
|
|
2511
2525
|
import './toolbar.js';
|
|
2512
|
-
import '
|
|
2526
|
+
import 'kerfjs';
|
|
2527
|
+
import './semantic-content-BbzjvSu9.js';
|
|
2513
2528
|
import './sides-BPSWde0A.js';
|
|
2529
|
+
import './pane.js';
|
|
2514
2530
|
import './workbench.js';
|
|
2515
2531
|
import './list.js';
|
|
2516
|
-
import './css-values.js';
|
|
2517
2532
|
import './flex-alignment-4ms8ZbV8.js';
|
|
2533
|
+
import './css-values.js';
|
|
2518
2534
|
import './nav-stack.js';
|
|
2519
2535
|
import './toolbar-text.js';
|
|
2520
2536
|
import './resizable-region.js';
|
|
2521
|
-
import './panel-toolbar-
|
|
2537
|
+
import './panel-toolbar-CL9tYOkh.js';
|
|
2522
2538
|
import './lucide-icon.js';
|
|
2523
2539
|
import 'lucide';
|
|
2524
2540
|
|
|
@@ -2684,9 +2700,9 @@ export { SegmentedControl, type SegmentedControlAppearance, type SegmentedContro
|
|
|
2684
2700
|
|
|
2685
2701
|
```ts
|
|
2686
2702
|
import { SafeHtml } from 'kerfjs';
|
|
2703
|
+
import { K as KerfUiContent } from './semantic-content-BbzjvSu9.js';
|
|
2687
2704
|
import { CssForegroundColor } from './css-values.js';
|
|
2688
2705
|
import { LucideNode } from './lucide-icon.js';
|
|
2689
|
-
import { K as KerfUiContent } from './semantic-content-BbzjvSu9.js';
|
|
2690
2706
|
import 'lucide';
|
|
2691
2707
|
|
|
2692
2708
|
interface SelectChoice<Value extends string = string> {
|
|
@@ -2815,8 +2831,10 @@ export { Select, type SelectChoice, type SelectFocusRingOwner, type SelectMultip
|
|
|
2815
2831
|
```ts
|
|
2816
2832
|
import { SafeHtml } from 'kerfjs';
|
|
2817
2833
|
import { K as KerfUiContent } from './semantic-content-BbzjvSu9.js';
|
|
2834
|
+
import { S as SemanticTone } from './semantic-tone-CdW013KF.js';
|
|
2818
2835
|
|
|
2819
|
-
|
|
2836
|
+
/** @deprecated Use SemanticTone. */
|
|
2837
|
+
type StateBannerTone = SemanticTone;
|
|
2820
2838
|
type StateBannerUrgency = 'status' | 'alert';
|
|
2821
2839
|
type StateBannerCopyLayout = 'inline' | 'stacked';
|
|
2822
2840
|
type StateBannerActionPlacement = 'trailing' | 'below';
|
|
@@ -2827,7 +2845,7 @@ interface StateBannerProps {
|
|
|
2827
2845
|
badge?: string;
|
|
2828
2846
|
icon?: SafeHtml;
|
|
2829
2847
|
action?: KerfUiContent;
|
|
2830
|
-
tone?:
|
|
2848
|
+
tone?: SemanticTone;
|
|
2831
2849
|
urgency?: StateBannerUrgency;
|
|
2832
2850
|
/** Keep the detail beside the title, or give it its own line. */
|
|
2833
2851
|
copyLayout?: StateBannerCopyLayout;
|
|
@@ -2841,7 +2859,7 @@ interface StateBannerProps {
|
|
|
2841
2859
|
}
|
|
2842
2860
|
declare function StateBanner({ title, detail, badge, icon, action, tone, urgency, copyLayout, actionPlacement, className, placeholder, slot, }: StateBannerProps): SafeHtml;
|
|
2843
2861
|
|
|
2844
|
-
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 };
|
|
2845
2863
|
```
|
|
2846
2864
|
|
|
2847
2865
|
## `@kerfjs/ui/empty-state`
|
|
@@ -2869,12 +2887,15 @@ export { EmptyState, type EmptyStateProps };
|
|
|
2869
2887
|
|
|
2870
2888
|
```ts
|
|
2871
2889
|
import * as kerfjs from 'kerfjs';
|
|
2890
|
+
import { CssForegroundColor } from './css-values.js';
|
|
2872
2891
|
import { LucideIconSize } from './lucide-icon.js';
|
|
2873
2892
|
import 'lucide';
|
|
2874
2893
|
|
|
2875
2894
|
type LoadingSpinnerSize = LucideIconSize;
|
|
2876
2895
|
interface LoadingSpinnerProps {
|
|
2877
2896
|
className?: string;
|
|
2897
|
+
/** Foreground color; omit to inherit the surrounding text color. */
|
|
2898
|
+
color?: CssForegroundColor;
|
|
2878
2899
|
label?: string;
|
|
2879
2900
|
/** Named icon scale or positive pixel size, converted to rem. Omit for 1em. */
|
|
2880
2901
|
size?: LoadingSpinnerSize;
|
|
@@ -2882,7 +2903,7 @@ interface LoadingSpinnerProps {
|
|
|
2882
2903
|
slot?: string;
|
|
2883
2904
|
}
|
|
2884
2905
|
/** Stable viewBox-centered progress ring based on svg-spinners' MIT-licensed 180-ring. */
|
|
2885
|
-
declare function LoadingSpinner({ className, label, size, slot, }: LoadingSpinnerProps): kerfjs.SafeHtml;
|
|
2906
|
+
declare function LoadingSpinner({ className, color, label, size, slot, }: LoadingSpinnerProps): kerfjs.SafeHtml;
|
|
2886
2907
|
|
|
2887
2908
|
export { LoadingSpinner, type LoadingSpinnerProps, type LoadingSpinnerSize };
|
|
2888
2909
|
```
|
|
@@ -2927,8 +2948,8 @@ export { Skeleton, type SkeletonProps };
|
|
|
2927
2948
|
|
|
2928
2949
|
```ts
|
|
2929
2950
|
import * as kerfjs from 'kerfjs';
|
|
2930
|
-
import { CssFlexKeyword, CssFlex } from './css-values.js';
|
|
2931
2951
|
import { K as KerfUiContent } from './semantic-content-BbzjvSu9.js';
|
|
2952
|
+
import { CssFlexKeyword, CssFlex } from './css-values.js';
|
|
2932
2953
|
|
|
2933
2954
|
type SunkenPanelShape = 'rounded' | 'square';
|
|
2934
2955
|
interface SunkenPanelProps {
|
|
@@ -2958,16 +2979,16 @@ export { SunkenPanel, type SunkenPanelProps, type SunkenPanelShape };
|
|
|
2958
2979
|
## `@kerfjs/ui/token-search-field`
|
|
2959
2980
|
|
|
2960
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';
|
|
2961
2983
|
import 'kerfjs';
|
|
2962
2984
|
import './semantic-content-BbzjvSu9.js';
|
|
2963
|
-
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';
|
|
2964
2985
|
```
|
|
2965
2986
|
|
|
2966
2987
|
## `@kerfjs/ui/wire-token-search-fields`
|
|
2967
2988
|
|
|
2968
2989
|
```ts
|
|
2969
2990
|
import { Signal } from 'kerfjs';
|
|
2970
|
-
import { d as TokenSearchModel } from './token-search-
|
|
2991
|
+
import { d as TokenSearchModel } from './token-search-model-DTcTXWMS.js';
|
|
2971
2992
|
import './semantic-content-BbzjvSu9.js';
|
|
2972
2993
|
|
|
2973
2994
|
interface TokenSearchSubmit {
|
|
@@ -3164,14 +3185,16 @@ export { type ActionHandler, type DelegateActionsOptions, action, delegateAction
|
|
|
3164
3185
|
|
|
3165
3186
|
```ts
|
|
3166
3187
|
import { SafeHtml } from 'kerfjs';
|
|
3188
|
+
import { S as SemanticTone } from './semantic-tone-CdW013KF.js';
|
|
3167
3189
|
|
|
3168
|
-
|
|
3190
|
+
/** @deprecated Use SemanticTone. */
|
|
3191
|
+
type BadgeTone = SemanticTone;
|
|
3169
3192
|
type BadgeAppearance = 'quiet' | 'solid' | 'outline';
|
|
3170
3193
|
type BadgeShape = 'pill' | 'rounded';
|
|
3171
3194
|
/** Size of a text badge. A text-free dot is the separate `size: 'dot'` form. */
|
|
3172
3195
|
type BadgeSize = 'compact' | 'default';
|
|
3173
3196
|
interface BadgeCommonProps {
|
|
3174
|
-
tone?:
|
|
3197
|
+
tone?: SemanticTone;
|
|
3175
3198
|
className?: string;
|
|
3176
3199
|
/** Native named-slot assignment when composed inside a web component. */
|
|
3177
3200
|
slot?: string;
|
|
@@ -3214,19 +3237,20 @@ type BadgeProps = BadgeTextProps | BadgeDotProps;
|
|
|
3214
3237
|
/** Compact, non-interactive metadata whose tone, emphasis, and shape are configured by props. */
|
|
3215
3238
|
declare function Badge(props: BadgeProps): SafeHtml;
|
|
3216
3239
|
|
|
3217
|
-
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 };
|
|
3218
3241
|
```
|
|
3219
3242
|
|
|
3220
3243
|
## `@kerfjs/ui/chip`
|
|
3221
3244
|
|
|
3222
3245
|
```ts
|
|
3223
3246
|
import { SafeHtml } from 'kerfjs';
|
|
3224
|
-
import {
|
|
3247
|
+
import { S as SemanticTone } from './semantic-tone-CdW013KF.js';
|
|
3248
|
+
import { BadgeAppearance, BadgeShape, BadgeSize } from './badge.js';
|
|
3225
3249
|
|
|
3226
3250
|
interface ChipCommonProps {
|
|
3227
3251
|
/** Decorative leading icon, normally an unsized LucideIcon. */
|
|
3228
3252
|
icon?: SafeHtml;
|
|
3229
|
-
tone?:
|
|
3253
|
+
tone?: SemanticTone;
|
|
3230
3254
|
appearance?: BadgeAppearance;
|
|
3231
3255
|
shape?: BadgeShape;
|
|
3232
3256
|
size?: BadgeSize;
|
|
@@ -3262,6 +3286,7 @@ export { Chip, type ChipProps };
|
|
|
3262
3286
|
```ts
|
|
3263
3287
|
import * as kerfjs from 'kerfjs';
|
|
3264
3288
|
import { IconNode } from 'lucide';
|
|
3289
|
+
import { CssForegroundColor } from './css-values.js';
|
|
3265
3290
|
|
|
3266
3291
|
type LucideNode = IconNode;
|
|
3267
3292
|
type LucideIconSize = 'xs' | 's' | 'm' | 'l' | 'xl' | number;
|
|
@@ -3271,6 +3296,10 @@ interface LucideIconProps {
|
|
|
3271
3296
|
/** Outline by default; solid fills compatible glyphs with the current text color. */
|
|
3272
3297
|
appearance?: 'outline' | 'solid';
|
|
3273
3298
|
className?: string;
|
|
3299
|
+
/** Foreground color; omit to inherit the surrounding text color. */
|
|
3300
|
+
color?: CssForegroundColor;
|
|
3301
|
+
/** Flow with surrounding text instead of occupying a block. */
|
|
3302
|
+
inline?: boolean;
|
|
3274
3303
|
label?: string;
|
|
3275
3304
|
/** Named icon scale or positive pixel size, converted to rem. Omit for 1em. */
|
|
3276
3305
|
size?: LucideIconSize;
|
|
@@ -3278,7 +3307,7 @@ interface LucideIconProps {
|
|
|
3278
3307
|
slot?: string;
|
|
3279
3308
|
}
|
|
3280
3309
|
/** Render a Lucide-compatible icon node without copying icon SVG strings. */
|
|
3281
|
-
declare function LucideIcon({ icon, name, appearance, className, label, size, slot, }: LucideIconProps): kerfjs.SafeHtml;
|
|
3310
|
+
declare function LucideIcon({ icon, name, appearance, className, color, inline, label, size, slot, }: LucideIconProps): kerfjs.SafeHtml;
|
|
3282
3311
|
|
|
3283
3312
|
export { LucideIcon, type LucideIconProps, type LucideIconSize, type LucideNode };
|
|
3284
3313
|
```
|
|
@@ -3324,6 +3353,15 @@ export { DialogSurface, type DialogSurfacePresentation, type DialogSurfaceProps,
|
|
|
3324
3353
|
import * as kerfjs from 'kerfjs';
|
|
3325
3354
|
import { KerfBaseAttrs } from 'kerfjs/jsx-runtime';
|
|
3326
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;
|
|
3327
3365
|
|
|
3328
3366
|
type TextVariant = 'h1' | 'h2' | 'h3' | 'h4' | 'h5' | 'h6' | 'p' | 'span';
|
|
3329
3367
|
type TextTone = 'default' | 'quiet' | 'danger';
|
|
@@ -3333,18 +3371,13 @@ type TextBorder = 'transparent' | 'none';
|
|
|
3333
3371
|
type TextLineHeight = 'default' | 'tight';
|
|
3334
3372
|
type TextWrap = 'normal' | 'anywhere' | 'nowrap' | 'truncate';
|
|
3335
3373
|
type TextContent = KerfUiContent | string | number | readonly TextContent[];
|
|
3336
|
-
type FieldLabelProps = Omit<KerfBaseAttrs, 'children' | 'class' | 'className'> & {
|
|
3337
|
-
children: string;
|
|
3338
|
-
class?: string;
|
|
3339
|
-
className?: string;
|
|
3340
|
-
};
|
|
3341
|
-
/** Visible field heading for a read-only preview; use its id with aria-labelledby on the preview group. */
|
|
3342
|
-
declare function FieldLabel({ children, class: classValue, className, ...attributes }: FieldLabelProps): kerfjs.SafeHtml;
|
|
3343
3374
|
type TextCommonProps = Omit<KerfBaseAttrs, 'children' | 'class' | 'className'> & {
|
|
3344
3375
|
/** Native heading, paragraph, or inline span element to render. Defaults to `p`. */
|
|
3345
3376
|
variant?: TextVariant;
|
|
3346
3377
|
/** Semantic foreground treatment. Defaults to the inherited foreground. */
|
|
3347
3378
|
tone?: TextTone;
|
|
3379
|
+
/** Foreground color; overrides tone when supplied, or inherits when omitted. */
|
|
3380
|
+
color?: CssForegroundColor;
|
|
3348
3381
|
/** Text sizing independent of the native semantic element. */
|
|
3349
3382
|
size?: TextSize;
|
|
3350
3383
|
/** Font family independent of the native semantic element. */
|
|
@@ -3374,7 +3407,7 @@ type TextProps = TextCommonProps & ({
|
|
|
3374
3407
|
* content-item padding; `span` adds no box geometry.
|
|
3375
3408
|
* All ordinary native heading/paragraph attributes pass through to the element.
|
|
3376
3409
|
*/
|
|
3377
|
-
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;
|
|
3378
3411
|
|
|
3379
3412
|
export { FieldLabel, type FieldLabelProps, Text, type TextBorder, type TextContent, type TextFont, type TextLineHeight, type TextProps, type TextSize, type TextTone, type TextVariant, type TextWrap };
|
|
3380
3413
|
```
|
|
@@ -3383,10 +3416,10 @@ export { FieldLabel, type FieldLabelProps, Text, type TextBorder, type TextConte
|
|
|
3383
3416
|
|
|
3384
3417
|
```ts
|
|
3385
3418
|
import * as kerfjs from 'kerfjs';
|
|
3386
|
-
import { UiSpaceName, CssLength, CssFlexKeyword, CssFlex } from './css-values.js';
|
|
3387
|
-
import { H as HorizontalAlignment, V as VerticalAlignment } from './flex-alignment-4ms8ZbV8.js';
|
|
3388
3419
|
import { K as KerfUiContent } from './semantic-content-BbzjvSu9.js';
|
|
3420
|
+
import { H as HorizontalAlignment, V as VerticalAlignment } from './flex-alignment-4ms8ZbV8.js';
|
|
3389
3421
|
import { S as Sides } from './sides-BPSWde0A.js';
|
|
3422
|
+
import { UiSpaceName, CssLength, CssFlexKeyword, CssFlex } from './css-values.js';
|
|
3390
3423
|
|
|
3391
3424
|
type RowRootAttributes = Readonly<Record<`data-${string}`, string | undefined> & {
|
|
3392
3425
|
'data-component'?: never;
|
|
@@ -3436,8 +3469,9 @@ export { CssFlex, CssFlexKeyword, CssLength, HorizontalAlignment, Row, type RowP
|
|
|
3436
3469
|
|
|
3437
3470
|
```ts
|
|
3438
3471
|
import * as kerfjs from 'kerfjs';
|
|
3439
|
-
import { UiSpaceName, CssLength, CssFlexKeyword, CssFlex } from './css-values.js';
|
|
3440
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';
|
|
3441
3475
|
|
|
3442
3476
|
type GridRootAttributes = Readonly<Record<`data-${string}`, string | undefined> & {
|
|
3443
3477
|
'data-component'?: never;
|
|
@@ -3446,6 +3480,8 @@ type GridRootAttributes = Readonly<Record<`data-${string}`, string | undefined>
|
|
|
3446
3480
|
'data-auto-fill'?: never;
|
|
3447
3481
|
'data-flex'?: never;
|
|
3448
3482
|
'data-fill'?: never;
|
|
3483
|
+
'data-text-insets'?: never;
|
|
3484
|
+
'data-control-insets'?: never;
|
|
3449
3485
|
}>;
|
|
3450
3486
|
interface GridCommonProps {
|
|
3451
3487
|
children?: KerfUiContent;
|
|
@@ -3463,6 +3499,10 @@ interface GridCommonProps {
|
|
|
3463
3499
|
* flex layout use `flex` instead. Defaults to false.
|
|
3464
3500
|
*/
|
|
3465
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;
|
|
3466
3506
|
className?: string;
|
|
3467
3507
|
/** Safe `data-*` metadata; Grid-owned structural attributes remain protected. */
|
|
3468
3508
|
rootAttributes?: GridRootAttributes;
|
|
@@ -3482,9 +3522,9 @@ type GridProps = GridCommonProps & ({
|
|
|
3482
3522
|
autoFill?: boolean;
|
|
3483
3523
|
});
|
|
3484
3524
|
/** Render equal tracks with a fixed count or a responsive minimum width. */
|
|
3485
|
-
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;
|
|
3486
3526
|
|
|
3487
|
-
export { CssFlex, CssFlexKeyword, CssLength, Grid, type GridProps, UiSpaceName };
|
|
3527
|
+
export { CssFlex, CssFlexKeyword, CssLength, Grid, type GridProps, Sides, UiSpaceName };
|
|
3488
3528
|
```
|
|
3489
3529
|
|
|
3490
3530
|
## `@kerfjs/ui/spacer`
|
|
@@ -3513,7 +3553,7 @@ export { CssLength, Spacer, type SpacerProps, UiSpaceName };
|
|
|
3513
3553
|
## `@kerfjs/ui/token-search-model`
|
|
3514
3554
|
|
|
3515
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';
|
|
3516
3557
|
import 'kerfjs';
|
|
3517
|
-
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';
|
|
3518
3558
|
import './semantic-content-BbzjvSu9.js';
|
|
3519
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
|
|
|
@@ -309,6 +335,9 @@ For prominent content text, use `Text size="large"`; use `size="xlarge"` for dis
|
|
|
309
335
|
|
|
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
|
|
|
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`.
|
|
340
|
+
|
|
312
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`.
|
|
313
342
|
|
|
314
343
|
For nested action menus, use `PopupMenuItem.submenu` with item, heading, and divider entries; headings and dividers do not enter keyboard navigation. Items support `checked`, `icon`, `details`, `disabledReason`, and `tone`. The app owns choice state. For a right-click menu, use `PopupMenu` with `context: true` and call `openPopupMenuAt` from the app's `contextmenu` handler; the package positions and opens the menu. Call `closePopupMenu` for programmatic dismissal.
|
|
@@ -320,3 +349,5 @@ lifecycle: the latest request wins through open/close reversals, canceled
|
|
|
320
349
|
transitions, and removal. Native value, keyboard, dismissal, and anchor placement
|
|
321
350
|
remain with Web Awesome. Do not add popup delays, position repairs, or animation
|
|
322
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();
|