@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
|
@@ -0,0 +1,285 @@
|
|
|
1
|
+
/* An icon-only trigger's accessible name: Web Awesome names its button from the
|
|
2
|
+
slotted content, so the label is present but visually hidden. */
|
|
3
|
+
.kui-popup-menu__label {
|
|
4
|
+
position: absolute;
|
|
5
|
+
width: 1px;
|
|
6
|
+
height: 1px;
|
|
7
|
+
padding: 0;
|
|
8
|
+
overflow: hidden;
|
|
9
|
+
clip: rect(0, 0, 0, 0);
|
|
10
|
+
white-space: nowrap;
|
|
11
|
+
clip-path: inset(50%);
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
/* PopupMenu shares the Select's caret motion, surface inset, row rhythm,
|
|
15
|
+
current-row fill, and group titles from the popup-choice contract in
|
|
16
|
+
foundation.css. Only checkbox items reserve a check column. */
|
|
17
|
+
|
|
18
|
+
/* The trigger caret turns to face the open menu, like the Select's. */
|
|
19
|
+
.kui-popup-menu > wa-button::part(caret) {
|
|
20
|
+
rotate: 0deg;
|
|
21
|
+
transition: var(--_kui-popup-caret-transition);
|
|
22
|
+
}
|
|
23
|
+
.kui-popup-menu[open] > wa-button::part(caret) {
|
|
24
|
+
rotate: var(--_kui-popup-caret-open-rotation);
|
|
25
|
+
}
|
|
26
|
+
|
|
27
|
+
/* The Select's popup fades in place; Web Awesome's dropdown also scales from
|
|
28
|
+
90%. Holding the scale leaves the shared fade. */
|
|
29
|
+
.kui-popup-menu::part(menu) {
|
|
30
|
+
padding: var(--_kui-popup-inset);
|
|
31
|
+
gap: var(--_kui-popup-row-gap);
|
|
32
|
+
scale: none !important;
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
.kui-popup-menu wa-dropdown-item {
|
|
36
|
+
/* A plain command starts at the checkbox glyph's leading edge. The glyph
|
|
37
|
+
sits half a smaller-font em beyond the row's base inset; its label starts
|
|
38
|
+
after the full check column below. */
|
|
39
|
+
padding: var(--_kui-popup-row-padding-block)
|
|
40
|
+
var(--_kui-popup-row-padding-inline-end) var(--_kui-popup-row-padding-block)
|
|
41
|
+
calc(var(--_kui-popup-row-padding-inline-start) + 0.4375em);
|
|
42
|
+
}
|
|
43
|
+
.kui-popup-menu wa-dropdown-item[type="checkbox"] {
|
|
44
|
+
/* Web Awesome marks every sibling checkbox-adjacent; reserve this column
|
|
45
|
+
only on items whose checked state was explicitly supplied. */
|
|
46
|
+
padding-inline-start: calc(
|
|
47
|
+
var(--_kui-popup-row-padding-inline-start) +
|
|
48
|
+
var(--_kui-popup-row-check-width)
|
|
49
|
+
);
|
|
50
|
+
}
|
|
51
|
+
/* Web Awesome's nested submenu owns its item host padding. Move its exposed
|
|
52
|
+
checkmark inside the panel and leave room for the label beside it. */
|
|
53
|
+
.kui-popup-menu
|
|
54
|
+
wa-dropdown-item[slot="submenu"][type="checkbox"]::part(checkmark) {
|
|
55
|
+
margin-inline-start: 0;
|
|
56
|
+
}
|
|
57
|
+
.kui-popup-menu wa-dropdown-item[slot="submenu"][type="checkbox"]::part(label) {
|
|
58
|
+
padding-inline-start: 1em;
|
|
59
|
+
}
|
|
60
|
+
.kui-popup-menu wa-dropdown-item::part(label) {
|
|
61
|
+
padding-block: var(--_kui-popup-row-label-padding-block);
|
|
62
|
+
line-height: var(--_kui-popup-row-label-line-height);
|
|
63
|
+
}
|
|
64
|
+
/* A keyboard-focused item is the menu's current row: the Select's brand fill,
|
|
65
|
+
with no second focus ring inside the open popup. */
|
|
66
|
+
.kui-popup-menu wa-dropdown-item:focus-visible {
|
|
67
|
+
outline: none;
|
|
68
|
+
color: var(--_kui-popup-row-current-color);
|
|
69
|
+
background-color: var(--_kui-popup-row-current-background);
|
|
70
|
+
}
|
|
71
|
+
.kui-popup-menu > wa-divider,
|
|
72
|
+
.kui-popup-menu wa-divider[slot="submenu"] {
|
|
73
|
+
--spacing: 0.5em;
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
/* Center the icon on the label's line, like the Select's start slot. */
|
|
77
|
+
.kui-popup-menu wa-dropdown-item::part(icon) {
|
|
78
|
+
display: flex;
|
|
79
|
+
align-self: center;
|
|
80
|
+
}
|
|
81
|
+
.kui-popup-menu__icon {
|
|
82
|
+
display: inline-flex;
|
|
83
|
+
width: var(--_kui-popup-row-icon-size);
|
|
84
|
+
height: var(--_kui-popup-row-icon-size);
|
|
85
|
+
flex: none;
|
|
86
|
+
/* Web Awesome spaces a slotted item icon 0.75em from its label (an
|
|
87
|
+
!important shadow rule). Sizing that em makes the gap the Select's. */
|
|
88
|
+
font-size: calc(var(--_kui-popup-row-icon-gap) / 0.75);
|
|
89
|
+
}
|
|
90
|
+
.kui-popup-menu__icon svg {
|
|
91
|
+
display: block;
|
|
92
|
+
width: 100%;
|
|
93
|
+
height: 100%;
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
.kui-popup-menu__details {
|
|
97
|
+
display: inline-flex;
|
|
98
|
+
align-items: center;
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
.kui-popup-menu__details svg {
|
|
102
|
+
display: block;
|
|
103
|
+
width: var(--_kui-popup-row-icon-size);
|
|
104
|
+
height: var(--_kui-popup-row-icon-size);
|
|
105
|
+
}
|
|
106
|
+
|
|
107
|
+
.kui-popup-menu[data-trigger="context"] {
|
|
108
|
+
display: inline-block;
|
|
109
|
+
width: 0;
|
|
110
|
+
height: 0;
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
.kui-popup-menu__context-anchor {
|
|
114
|
+
position: fixed;
|
|
115
|
+
top: var(--kui-popup-menu-context-y, 0px);
|
|
116
|
+
left: var(--kui-popup-menu-context-x, 0px);
|
|
117
|
+
width: 1px;
|
|
118
|
+
height: 1px;
|
|
119
|
+
padding: 0;
|
|
120
|
+
border: 0;
|
|
121
|
+
opacity: 0;
|
|
122
|
+
pointer-events: none;
|
|
123
|
+
}
|
|
124
|
+
|
|
125
|
+
/* A group title matches the Select's group title. It is a styled element
|
|
126
|
+
rather than a slotted heading, whose Web Awesome metrics are !important. */
|
|
127
|
+
.kui-popup-menu__heading {
|
|
128
|
+
padding: var(--_kui-popup-group-title-padding);
|
|
129
|
+
color: var(--kui-color-neutral-on-quiet);
|
|
130
|
+
font-size: var(--kui-font-2xs);
|
|
131
|
+
font-weight: var(--_kui-popup-group-title-font-weight);
|
|
132
|
+
letter-spacing: 0.04em;
|
|
133
|
+
text-transform: uppercase;
|
|
134
|
+
}
|
|
135
|
+
|
|
136
|
+
/* In a ToolbarControlGroup a PopupMenu sizes itself in the group's context:
|
|
137
|
+
the group lays out its own native and raw Web Awesome children and names a
|
|
138
|
+
PopupMenu only to key its own state on it. The trigger takes the group's
|
|
139
|
+
control height (40px, or 32px in a compact group). A mixed-content trigger
|
|
140
|
+
in a nested-dropdown group grows for its label plus the caret; a fixed 32px
|
|
141
|
+
base would center both outside its host, painting the label across the
|
|
142
|
+
separator and the caret beyond the group border. */
|
|
143
|
+
/* The trigger button takes the group's control metrics, as the group's own
|
|
144
|
+
raw wa-button children do (toolbar-control-group.css excludes this
|
|
145
|
+
trigger). The PopupMenu ancestor sits in `:where()` so each rule keeps the
|
|
146
|
+
specificity of the group's matching raw-child rule and resolves against the
|
|
147
|
+
group's attribute-keyed variants exactly as they do. */
|
|
148
|
+
.kui-toolbar-control-group :where(wa-dropdown.kui-popup-menu) > wa-button {
|
|
149
|
+
--wa-form-control-height: 2.5rem;
|
|
150
|
+
display: inline-flex;
|
|
151
|
+
line-height: 0;
|
|
152
|
+
align-items: center;
|
|
153
|
+
justify-content: center;
|
|
154
|
+
--wa-color-fill-quiet: transparent;
|
|
155
|
+
}
|
|
156
|
+
.kui-toolbar-control-group[data-size="compact"]
|
|
157
|
+
:where(wa-dropdown.kui-popup-menu)
|
|
158
|
+
> wa-button {
|
|
159
|
+
--wa-form-control-height: 2rem;
|
|
160
|
+
}
|
|
161
|
+
.kui-toolbar-control-group[data-content="mixed"]
|
|
162
|
+
:where(wa-dropdown.kui-popup-menu)
|
|
163
|
+
> wa-button {
|
|
164
|
+
line-height: normal;
|
|
165
|
+
}
|
|
166
|
+
.kui-toolbar-control-group
|
|
167
|
+
:where(wa-dropdown.kui-popup-menu)
|
|
168
|
+
> wa-button
|
|
169
|
+
> svg {
|
|
170
|
+
display: block;
|
|
171
|
+
width: 1rem;
|
|
172
|
+
height: 1rem;
|
|
173
|
+
}
|
|
174
|
+
/* Toolbar controls never wrap: a slotted icon and its label share one row. */
|
|
175
|
+
.kui-toolbar-control-group
|
|
176
|
+
:where(wa-dropdown.kui-popup-menu)
|
|
177
|
+
> wa-button::part(label) {
|
|
178
|
+
display: inline-flex;
|
|
179
|
+
align-items: center;
|
|
180
|
+
gap: var(--kui-space-xs);
|
|
181
|
+
white-space: nowrap;
|
|
182
|
+
}
|
|
183
|
+
/* At least a circle around an icon-only trigger, with the group's item radius;
|
|
184
|
+
hover lifts the trigger like a group button, except in a `single` group,
|
|
185
|
+
whose whole surface shows the hover (toolbar-control-group.css). */
|
|
186
|
+
.kui-toolbar-control-group
|
|
187
|
+
:where(wa-dropdown.kui-popup-menu)
|
|
188
|
+
> wa-button::part(base) {
|
|
189
|
+
min-width: 2.5rem;
|
|
190
|
+
min-height: 2.5rem;
|
|
191
|
+
box-sizing: border-box;
|
|
192
|
+
border: 1px solid transparent;
|
|
193
|
+
border-radius: var(
|
|
194
|
+
--kui-toolbar-item-radius,
|
|
195
|
+
var(--kui-layout-pill-radius, calc(1px + 1.3125rem))
|
|
196
|
+
);
|
|
197
|
+
}
|
|
198
|
+
.kui-toolbar-control-group
|
|
199
|
+
:where(wa-dropdown.kui-popup-menu)
|
|
200
|
+
> wa-button:hover::part(base) {
|
|
201
|
+
border-color: var(--kui-toolbar-control-border);
|
|
202
|
+
background-color: var(--kui-toolbar-control-hover-background);
|
|
203
|
+
}
|
|
204
|
+
.kui-toolbar-control-group[data-single="true"]
|
|
205
|
+
:where(wa-dropdown.kui-popup-menu)
|
|
206
|
+
> wa-button:hover::part(base) {
|
|
207
|
+
border-color: transparent;
|
|
208
|
+
background: transparent;
|
|
209
|
+
}
|
|
210
|
+
.kui-toolbar-control-group > wa-dropdown.kui-popup-menu {
|
|
211
|
+
display: inline-flex;
|
|
212
|
+
flex: 0 0 auto;
|
|
213
|
+
}
|
|
214
|
+
.kui-toolbar-control-group > wa-dropdown.kui-popup-menu,
|
|
215
|
+
.kui-toolbar-control-group > wa-dropdown.kui-popup-menu > wa-button,
|
|
216
|
+
.kui-toolbar-control-group
|
|
217
|
+
> wa-dropdown.kui-popup-menu
|
|
218
|
+
> wa-button::part(base) {
|
|
219
|
+
min-width: 2.5rem;
|
|
220
|
+
height: 2.5rem;
|
|
221
|
+
}
|
|
222
|
+
.kui-toolbar-control-group[data-size="compact"] > wa-dropdown.kui-popup-menu,
|
|
223
|
+
.kui-toolbar-control-group[data-size="compact"]
|
|
224
|
+
> wa-dropdown.kui-popup-menu
|
|
225
|
+
> wa-button,
|
|
226
|
+
.kui-toolbar-control-group[data-size="compact"]
|
|
227
|
+
> wa-dropdown.kui-popup-menu
|
|
228
|
+
> wa-button::part(base),
|
|
229
|
+
.kui-toolbar-control-group[data-size="compact"][data-nested-dropdown="true"]
|
|
230
|
+
wa-dropdown.kui-popup-menu
|
|
231
|
+
wa-button,
|
|
232
|
+
.kui-toolbar-control-group[data-size="compact"][data-nested-dropdown="true"]
|
|
233
|
+
wa-dropdown.kui-popup-menu
|
|
234
|
+
wa-button::part(base) {
|
|
235
|
+
min-width: 2rem;
|
|
236
|
+
height: 2rem;
|
|
237
|
+
min-height: 2rem;
|
|
238
|
+
}
|
|
239
|
+
.kui-toolbar-control-group[data-size="compact"][data-content="mixed"]
|
|
240
|
+
> wa-dropdown.kui-popup-menu {
|
|
241
|
+
margin: -2px;
|
|
242
|
+
}
|
|
243
|
+
.kui-toolbar-control-group[data-content="mixed"][data-nested-dropdown="true"]
|
|
244
|
+
> wa-dropdown.kui-popup-menu
|
|
245
|
+
> wa-button,
|
|
246
|
+
.kui-toolbar-control-group[data-content="mixed"][data-nested-dropdown="true"]
|
|
247
|
+
> wa-dropdown.kui-popup-menu
|
|
248
|
+
> wa-button::part(base) {
|
|
249
|
+
min-width: max-content;
|
|
250
|
+
}
|
|
251
|
+
.kui-toolbar-control-group[data-content="mixed"][data-nested-dropdown="true"]
|
|
252
|
+
> wa-dropdown.kui-popup-menu
|
|
253
|
+
> wa-button::part(base) {
|
|
254
|
+
width: max-content;
|
|
255
|
+
}
|
|
256
|
+
.kui-toolbar-control-group[data-single="true"]
|
|
257
|
+
> wa-dropdown.kui-popup-menu
|
|
258
|
+
> wa-button::part(base) {
|
|
259
|
+
width: max-content;
|
|
260
|
+
}
|
|
261
|
+
|
|
262
|
+
/* The menu insets a composing parent asks for. A PopupMenu applies them to
|
|
263
|
+
itself; its default is the Select listbox inset above, which a
|
|
264
|
+
ToolbarControlGroup's `standard` inset keeps. A PopupSurface's inset follows
|
|
265
|
+
the group's, so a surface wins when both apply. */
|
|
266
|
+
.kui-toolbar-control-group[data-menu-inset="compact"]
|
|
267
|
+
wa-dropdown.kui-popup-menu::part(menu) {
|
|
268
|
+
padding: 0.25rem;
|
|
269
|
+
}
|
|
270
|
+
.kui-toolbar-control-group[data-menu-inset="list-zero"]
|
|
271
|
+
wa-dropdown.kui-popup-menu::part(menu) {
|
|
272
|
+
padding: 0;
|
|
273
|
+
}
|
|
274
|
+
.kui-popup-surface[data-inset="standard"]
|
|
275
|
+
> wa-dropdown.kui-popup-menu::part(menu) {
|
|
276
|
+
padding: var(--kui-wa-surface-inset, 0.5rem);
|
|
277
|
+
}
|
|
278
|
+
.kui-popup-surface[data-inset="compact"]
|
|
279
|
+
> wa-dropdown.kui-popup-menu::part(menu) {
|
|
280
|
+
padding: 0.25rem;
|
|
281
|
+
}
|
|
282
|
+
.kui-popup-surface[data-inset="list-zero"]
|
|
283
|
+
> wa-dropdown.kui-popup-menu::part(menu) {
|
|
284
|
+
padding: 0;
|
|
285
|
+
}
|
|
@@ -0,0 +1,392 @@
|
|
|
1
|
+
.kui-toolbar {
|
|
2
|
+
display: grid;
|
|
3
|
+
width: 100%;
|
|
4
|
+
/* min-height and padding: see the safe-area rules below. */
|
|
5
|
+
box-sizing: border-box;
|
|
6
|
+
color: var(--kui-color-text);
|
|
7
|
+
background: transparent;
|
|
8
|
+
/* The center track's minimum is `auto`, not 0, so it resolves to the center
|
|
9
|
+
zone's own min-width (its content width, below): when the zones do not all
|
|
10
|
+
fit, the auto leading track is what shrinks and its title truncates, and
|
|
11
|
+
the center group never overflows its track onto the leading identity. */
|
|
12
|
+
grid-template-columns: auto 1fr auto;
|
|
13
|
+
align-items: start;
|
|
14
|
+
gap: var(--kui-toolbar-gap, 0.5rem);
|
|
15
|
+
container: kui-toolbar / inline-size;
|
|
16
|
+
font-family: var(--kui-font-sans);
|
|
17
|
+
}
|
|
18
|
+
|
|
19
|
+
/* Safe areas: a toolbar compensates only for the inline edges its owner hands
|
|
20
|
+
it through `--kui-edge-inset-inline-*` (a Pane header or footer does), so its
|
|
21
|
+
box and dividers keep reaching the edge while its zones clear the unsafe
|
|
22
|
+
area. Unset means none: a toolbar embedded in content never pads for the
|
|
23
|
+
device. An app bar or bottom bar at a screen edge claims its sides with
|
|
24
|
+
`safeAreaEdges`; each claimed side pads by the routed edge context, or the
|
|
25
|
+
full device inset when nothing routes it (the Pane rule), so the top bar of
|
|
26
|
+
a shell clears the status area. A Pane header or footer clears the context
|
|
27
|
+
for its children, so a claimed side there never double-insets. Its zones
|
|
28
|
+
then see a cleared context. */
|
|
29
|
+
.kui-toolbar {
|
|
30
|
+
--_kui-toolbar-safe-block-start: 0px;
|
|
31
|
+
--_kui-toolbar-safe-block-end: 0px;
|
|
32
|
+
--_kui-toolbar-safe-inline-start: var(--kui-edge-inset-inline-start, 0px);
|
|
33
|
+
--_kui-toolbar-safe-inline-end: var(--kui-edge-inset-inline-end, 0px);
|
|
34
|
+
/* The minimum height grows by any claimed block inset, so a toolbar a flex
|
|
35
|
+
column shrinks still keeps a whole control row clear of the unsafe area. */
|
|
36
|
+
min-height: calc(
|
|
37
|
+
var(--kui-toolbar-group-size, calc(2px + 2.625rem)) +
|
|
38
|
+
(2 * var(--kui-toolbar-inset, var(--kui-toolbar-gap, 0.5rem))) +
|
|
39
|
+
var(--_kui-toolbar-safe-block-start) + var(--_kui-toolbar-safe-block-end)
|
|
40
|
+
);
|
|
41
|
+
padding-block: calc(
|
|
42
|
+
var(--kui-toolbar-inset, var(--kui-toolbar-gap, 0.5rem)) +
|
|
43
|
+
var(--_kui-toolbar-safe-block-start)
|
|
44
|
+
)
|
|
45
|
+
calc(
|
|
46
|
+
var(--kui-toolbar-inset, var(--kui-toolbar-gap, 0.5rem)) +
|
|
47
|
+
var(--_kui-toolbar-safe-block-end)
|
|
48
|
+
);
|
|
49
|
+
padding-inline: calc(
|
|
50
|
+
var(--kui-toolbar-inset, var(--kui-toolbar-gap, 0.5rem)) +
|
|
51
|
+
var(--_kui-toolbar-safe-inline-start)
|
|
52
|
+
)
|
|
53
|
+
calc(
|
|
54
|
+
var(--kui-toolbar-inset, var(--kui-toolbar-gap, 0.5rem)) +
|
|
55
|
+
var(--_kui-toolbar-safe-inline-end)
|
|
56
|
+
);
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
.kui-toolbar[data-safe-area-block-start="true"] {
|
|
60
|
+
--_kui-toolbar-safe-block-start: var(
|
|
61
|
+
--kui-edge-inset-block-start,
|
|
62
|
+
var(--kui-safe-area-block-start, env(safe-area-inset-top, 0px))
|
|
63
|
+
);
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
.kui-toolbar[data-safe-area-block-end="true"] {
|
|
67
|
+
--_kui-toolbar-safe-block-end: var(
|
|
68
|
+
--kui-edge-inset-block-end,
|
|
69
|
+
var(--kui-safe-area-block-end, env(safe-area-inset-bottom, 0px))
|
|
70
|
+
);
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
.kui-toolbar[data-safe-area-inline-start="true"] {
|
|
74
|
+
--_kui-toolbar-safe-inline-start: var(
|
|
75
|
+
--kui-edge-inset-inline-start,
|
|
76
|
+
var(--kui-safe-area-inline-start, env(safe-area-inset-left, 0px))
|
|
77
|
+
);
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
.kui-toolbar[data-safe-area-inline-end="true"] {
|
|
81
|
+
--_kui-toolbar-safe-inline-end: var(
|
|
82
|
+
--kui-edge-inset-inline-end,
|
|
83
|
+
var(--kui-safe-area-inline-end, env(safe-area-inset-right, 0px))
|
|
84
|
+
);
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
.kui-toolbar > * {
|
|
88
|
+
--kui-edge-inset-block-start: 0px;
|
|
89
|
+
--kui-edge-inset-block-end: 0px;
|
|
90
|
+
--kui-edge-inset-inline-start: 0px;
|
|
91
|
+
--kui-edge-inset-inline-end: 0px;
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
.kui-toolbar[data-has-center="false"] {
|
|
95
|
+
grid-template-columns: minmax(0, 1fr) auto;
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
/* Equal side tracks center the middle zone on the toolbar's content box even
|
|
99
|
+
when one side has no controls. Side content still shrinks or wraps within
|
|
100
|
+
its own track, and responsive policies below may move a zone to a new row. */
|
|
101
|
+
.kui-toolbar[data-center-align="balanced"][data-has-center="true"] {
|
|
102
|
+
grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
.kui-toolbar[data-responsive="trailing-priority"][data-has-center="false"]:has(
|
|
106
|
+
> .kui-toolbar__trailing [data-expanded="true"]
|
|
107
|
+
) {
|
|
108
|
+
grid-template-columns:
|
|
109
|
+
minmax(0, 1fr)
|
|
110
|
+
minmax(0, var(--kui-token-search-expanded-width, 30rem));
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
.kui-toolbar {
|
|
114
|
+
--_kui-toolbar-divider-top: transparent;
|
|
115
|
+
--_kui-toolbar-divider-right: transparent;
|
|
116
|
+
--_kui-toolbar-divider-bottom: transparent;
|
|
117
|
+
--_kui-toolbar-divider-left: transparent;
|
|
118
|
+
box-shadow:
|
|
119
|
+
inset 0 1px var(--_kui-toolbar-divider-top),
|
|
120
|
+
inset -1px 0 var(--_kui-toolbar-divider-right),
|
|
121
|
+
inset 0 -1px var(--_kui-toolbar-divider-bottom),
|
|
122
|
+
inset 1px 0 var(--_kui-toolbar-divider-left);
|
|
123
|
+
}
|
|
124
|
+
|
|
125
|
+
.kui-toolbar:is([divider-sides*="t"], [data-scroll-divider*="t"]) {
|
|
126
|
+
--_kui-toolbar-divider-top: var(
|
|
127
|
+
--kui-toolbar-divider-color,
|
|
128
|
+
var(--kui-color-neutral-border-normal)
|
|
129
|
+
);
|
|
130
|
+
}
|
|
131
|
+
|
|
132
|
+
.kui-toolbar:is([divider-sides*="r"], [data-scroll-divider*="r"]) {
|
|
133
|
+
--_kui-toolbar-divider-right: var(
|
|
134
|
+
--kui-toolbar-divider-color,
|
|
135
|
+
var(--kui-color-neutral-border-normal)
|
|
136
|
+
);
|
|
137
|
+
}
|
|
138
|
+
|
|
139
|
+
.kui-toolbar:is([divider-sides*="b"], [data-scroll-divider*="b"]) {
|
|
140
|
+
--_kui-toolbar-divider-bottom: var(
|
|
141
|
+
--kui-toolbar-divider-color,
|
|
142
|
+
var(--kui-color-neutral-border-normal)
|
|
143
|
+
);
|
|
144
|
+
}
|
|
145
|
+
|
|
146
|
+
.kui-toolbar:is([divider-sides*="l"], [data-scroll-divider*="l"]) {
|
|
147
|
+
--_kui-toolbar-divider-left: var(
|
|
148
|
+
--kui-toolbar-divider-color,
|
|
149
|
+
var(--kui-color-neutral-border-normal)
|
|
150
|
+
);
|
|
151
|
+
}
|
|
152
|
+
|
|
153
|
+
/* The control band. Every zone reserves one group-height row at the top of
|
|
154
|
+
the toolbar, and each item is centered in that band by its own size, not by
|
|
155
|
+
its siblings: a group or title shorter than the band takes half the
|
|
156
|
+
difference as a top margin, and anything taller (a wrapped title, a
|
|
157
|
+
multi-line search, a second trailing row) starts at the band's top and grows
|
|
158
|
+
down. A growing item therefore never moves the other items or its own top.
|
|
159
|
+
Centering the zones in the toolbar row instead dropped every control to the
|
|
160
|
+
middle of a two-line title. The band is resolved here, on the toolbar, so a
|
|
161
|
+
compact group's own smaller group size never redefines it.
|
|
162
|
+
`--_kui-toolbar-band` is context the toolbar provides: a ToolbarControlGroup
|
|
163
|
+
and a ToolbarText each center themselves in it from their own stylesheets
|
|
164
|
+
(toolbar-control-group.css, toolbar-text.css). A direct primary wa-button in
|
|
165
|
+
trailing is centered here without altering its Web Awesome chrome. */
|
|
166
|
+
.kui-toolbar {
|
|
167
|
+
--_kui-toolbar-band: var(--kui-toolbar-group-size, calc(2px + 2.625rem));
|
|
168
|
+
}
|
|
169
|
+
|
|
170
|
+
.kui-toolbar__leading,
|
|
171
|
+
.kui-toolbar__center,
|
|
172
|
+
.kui-toolbar__trailing {
|
|
173
|
+
display: flex;
|
|
174
|
+
min-width: 0;
|
|
175
|
+
min-height: var(--_kui-toolbar-band);
|
|
176
|
+
padding-inline: var(--kui-toolbar-zone-padding-inline, 0px);
|
|
177
|
+
box-sizing: border-box;
|
|
178
|
+
align-items: flex-start;
|
|
179
|
+
gap: var(--kui-toolbar-gap, 0.5rem);
|
|
180
|
+
}
|
|
181
|
+
|
|
182
|
+
/* Pin each zone to its column so a display:none (empty) leading or center zone
|
|
183
|
+
doesn't let the trailing zone auto-place into the first column — which left an
|
|
184
|
+
extra gap + empty track to the trailing zone's right (KF-5BEF2M). The trailing
|
|
185
|
+
zone anchors to the last column via -2/-1, so it stays flush right for both
|
|
186
|
+
the 3- and 2-column layouts, and still stacks under the leading zone when a
|
|
187
|
+
consumer collapses the toolbar to a single column. */
|
|
188
|
+
.kui-toolbar__leading {
|
|
189
|
+
min-width: var(--kui-toolbar-leading-min-width, 0px);
|
|
190
|
+
padding-inline: var(
|
|
191
|
+
--kui-toolbar-leading-padding-inline,
|
|
192
|
+
var(--kui-toolbar-zone-padding-inline, 0px)
|
|
193
|
+
);
|
|
194
|
+
grid-column: 1;
|
|
195
|
+
/* Keep a shrinking title clipped while letting the 3px focus outline plus
|
|
196
|
+
its 1px offset paint past the zone edge. `hidden` cropped the ring of the
|
|
197
|
+
first control in this zone. */
|
|
198
|
+
overflow: clip;
|
|
199
|
+
overflow-clip-margin: 4px;
|
|
200
|
+
}
|
|
201
|
+
|
|
202
|
+
.kui-toolbar__center {
|
|
203
|
+
/* The center content never compresses below its own width (a group cannot
|
|
204
|
+
shrink or clip its controls). The track above takes this as its minimum, so
|
|
205
|
+
the leading identity gives way first, the way a platform toolbar truncates
|
|
206
|
+
its title before it overlaps the centered controls. */
|
|
207
|
+
min-width: min-content;
|
|
208
|
+
padding-inline: var(
|
|
209
|
+
--kui-toolbar-center-padding-inline,
|
|
210
|
+
var(--kui-toolbar-zone-padding-inline, 0px)
|
|
211
|
+
);
|
|
212
|
+
justify-content: center;
|
|
213
|
+
grid-column: 2;
|
|
214
|
+
}
|
|
215
|
+
|
|
216
|
+
.kui-toolbar[data-center-align="stretch"] > .kui-toolbar__center {
|
|
217
|
+
justify-content: flex-start;
|
|
218
|
+
}
|
|
219
|
+
|
|
220
|
+
.kui-toolbar[data-center-align="stretch"] > .kui-toolbar__center > * {
|
|
221
|
+
width: 100%;
|
|
222
|
+
flex-basis: 100%;
|
|
223
|
+
}
|
|
224
|
+
|
|
225
|
+
.kui-toolbar__trailing {
|
|
226
|
+
padding-inline: var(
|
|
227
|
+
--kui-toolbar-trailing-padding-inline,
|
|
228
|
+
var(--kui-toolbar-zone-padding-inline, 0px)
|
|
229
|
+
);
|
|
230
|
+
justify-content: var(--kui-toolbar-trailing-justify, flex-end);
|
|
231
|
+
justify-self: var(--kui-toolbar-trailing-justify-self, stretch);
|
|
232
|
+
grid-column: -2 / -1;
|
|
233
|
+
gap: var(--kui-toolbar-trailing-gap, var(--kui-toolbar-gap, 0.5rem));
|
|
234
|
+
/* Trailing actions never clip (KF-4EYES0): the zone wraps its groups, so its
|
|
235
|
+
track can shrink only to the widest single group. When one row cannot hold
|
|
236
|
+
every group, the next group moves to a new trailing-aligned row instead of
|
|
237
|
+
overflowing the toolbar. */
|
|
238
|
+
flex-wrap: wrap;
|
|
239
|
+
}
|
|
240
|
+
|
|
241
|
+
.kui-toolbar__trailing > wa-button {
|
|
242
|
+
margin-block-start: max(
|
|
243
|
+
0px,
|
|
244
|
+
calc((var(--_kui-toolbar-band) - var(--wa-form-control-height)) / 2)
|
|
245
|
+
);
|
|
246
|
+
flex: 0 0 auto;
|
|
247
|
+
}
|
|
248
|
+
|
|
249
|
+
/* An expanded trailing search gets a complete second row while the leading
|
|
250
|
+
identity and optional center controls remain in the first. The query styles
|
|
251
|
+
descendants because a toolbar cannot query its own container width. */
|
|
252
|
+
@container kui-toolbar (max-width: 52rem) {
|
|
253
|
+
.kui-toolbar[data-responsive="trailing-priority"][data-responsive-at="narrow"][data-has-center="false"]:has(
|
|
254
|
+
> .kui-toolbar__trailing [data-expanded="true"]
|
|
255
|
+
)
|
|
256
|
+
> .kui-toolbar__leading {
|
|
257
|
+
grid-column: 1 / -1;
|
|
258
|
+
grid-row: 1;
|
|
259
|
+
}
|
|
260
|
+
|
|
261
|
+
.kui-toolbar[data-responsive="trailing-priority"][data-responsive-at="narrow"]:has(
|
|
262
|
+
> .kui-toolbar__trailing [data-expanded="true"]
|
|
263
|
+
)
|
|
264
|
+
> .kui-toolbar__trailing {
|
|
265
|
+
width: 100%;
|
|
266
|
+
grid-column: 1 / -1;
|
|
267
|
+
grid-row: 2;
|
|
268
|
+
justify-self: stretch;
|
|
269
|
+
}
|
|
270
|
+
|
|
271
|
+
.kui-toolbar[data-responsive="trailing-priority"][data-responsive-at="narrow"]
|
|
272
|
+
> .kui-toolbar__trailing
|
|
273
|
+
> [data-expanded="true"] {
|
|
274
|
+
width: 100%;
|
|
275
|
+
flex: 1 1 100%;
|
|
276
|
+
}
|
|
277
|
+
}
|
|
278
|
+
|
|
279
|
+
@container kui-toolbar (max-width: 44rem) {
|
|
280
|
+
.kui-toolbar[data-responsive="trailing-priority"][data-responsive-at="compact"][data-has-center="false"]:has(
|
|
281
|
+
> .kui-toolbar__trailing [data-expanded="true"]
|
|
282
|
+
)
|
|
283
|
+
> .kui-toolbar__leading {
|
|
284
|
+
grid-column: 1 / -1;
|
|
285
|
+
grid-row: 1;
|
|
286
|
+
}
|
|
287
|
+
|
|
288
|
+
.kui-toolbar[data-responsive="trailing-priority"][data-responsive-at="compact"]:has(
|
|
289
|
+
> .kui-toolbar__trailing [data-expanded="true"]
|
|
290
|
+
)
|
|
291
|
+
> .kui-toolbar__trailing {
|
|
292
|
+
width: 100%;
|
|
293
|
+
grid-column: 1 / -1;
|
|
294
|
+
grid-row: 2;
|
|
295
|
+
justify-self: stretch;
|
|
296
|
+
}
|
|
297
|
+
|
|
298
|
+
.kui-toolbar[data-responsive="trailing-priority"][data-responsive-at="compact"]
|
|
299
|
+
> .kui-toolbar__trailing
|
|
300
|
+
> [data-expanded="true"] {
|
|
301
|
+
width: 100%;
|
|
302
|
+
flex: 1 1 100%;
|
|
303
|
+
}
|
|
304
|
+
}
|
|
305
|
+
|
|
306
|
+
/* Content-driven wrap: one row while every zone fits at its natural width;
|
|
307
|
+
otherwise the trailing zone moves below the identity, still trailing-aligned,
|
|
308
|
+
instead of truncating the leading title or clipping an action. For panel,
|
|
309
|
+
inspector, and dialog headings whose identity must stay whole. */
|
|
310
|
+
.kui-toolbar[data-responsive="wrap"] {
|
|
311
|
+
display: flex;
|
|
312
|
+
flex-wrap: wrap;
|
|
313
|
+
}
|
|
314
|
+
|
|
315
|
+
.kui-toolbar[data-responsive="wrap"] > .kui-toolbar__leading {
|
|
316
|
+
max-width: 100%;
|
|
317
|
+
flex: 1 1 auto;
|
|
318
|
+
}
|
|
319
|
+
|
|
320
|
+
.kui-toolbar[data-responsive="wrap"] > .kui-toolbar__center {
|
|
321
|
+
flex: 1 1 auto;
|
|
322
|
+
}
|
|
323
|
+
|
|
324
|
+
.kui-toolbar[data-responsive="wrap"] > .kui-toolbar__trailing {
|
|
325
|
+
max-width: 100%;
|
|
326
|
+
flex: 0 1 auto;
|
|
327
|
+
margin-inline-start: auto;
|
|
328
|
+
}
|
|
329
|
+
|
|
330
|
+
.kui-toolbar[data-has-center="false"] .kui-toolbar__center,
|
|
331
|
+
.kui-toolbar__leading:empty,
|
|
332
|
+
.kui-toolbar__trailing:empty {
|
|
333
|
+
display: none;
|
|
334
|
+
}
|
|
335
|
+
|
|
336
|
+
/* Stacked topology. A container query only matches an ancestor container, so
|
|
337
|
+
these rules style the zones (whose query container is this toolbar) rather
|
|
338
|
+
than the toolbar's own grid template, which a self query can never reach.
|
|
339
|
+
Each zone spans every column track, one zone per row, so no empty track or
|
|
340
|
+
column gap narrows a stacked zone. Stacked control zones wrap at group
|
|
341
|
+
granularity (KF-4EYES0: a stacked trailing zone clipped its last action at
|
|
342
|
+
phone widths), so every group stays whole, reachable, and full size; the
|
|
343
|
+
leading identity keeps its single-line truncation. */
|
|
344
|
+
@container kui-toolbar (max-width: 52rem) {
|
|
345
|
+
.kui-toolbar[data-responsive="stack"][data-responsive-at="narrow"]
|
|
346
|
+
> :is(.kui-toolbar__leading, .kui-toolbar__center, .kui-toolbar__trailing) {
|
|
347
|
+
width: 100%;
|
|
348
|
+
grid-column: 1 / -1;
|
|
349
|
+
justify-content: flex-start;
|
|
350
|
+
}
|
|
351
|
+
|
|
352
|
+
.kui-toolbar[data-responsive="stack"][data-responsive-at="narrow"]
|
|
353
|
+
> :is(.kui-toolbar__center, .kui-toolbar__trailing) {
|
|
354
|
+
flex-wrap: wrap;
|
|
355
|
+
}
|
|
356
|
+
}
|
|
357
|
+
|
|
358
|
+
@container kui-toolbar (max-width: 44rem) {
|
|
359
|
+
.kui-toolbar[data-responsive="stack"][data-responsive-at="compact"]
|
|
360
|
+
> :is(.kui-toolbar__leading, .kui-toolbar__center, .kui-toolbar__trailing) {
|
|
361
|
+
width: 100%;
|
|
362
|
+
grid-column: 1 / -1;
|
|
363
|
+
justify-content: flex-start;
|
|
364
|
+
}
|
|
365
|
+
|
|
366
|
+
.kui-toolbar[data-responsive="stack"][data-responsive-at="compact"]
|
|
367
|
+
> :is(.kui-toolbar__center, .kui-toolbar__trailing) {
|
|
368
|
+
flex-wrap: wrap;
|
|
369
|
+
}
|
|
370
|
+
}
|
|
371
|
+
|
|
372
|
+
/* Center priority. As with the stacked topology, the toolbar cannot query its
|
|
373
|
+
own width, so these rules style the zones: while the center holds an expanded
|
|
374
|
+
control, the leading and trailing zones leave and the center spans every
|
|
375
|
+
column track (including the gaps the vacated tracks still own), taking the
|
|
376
|
+
whole row. */
|
|
377
|
+
@container kui-toolbar (max-width: 42rem) {
|
|
378
|
+
.kui-toolbar[data-responsive="center-priority"]:has(
|
|
379
|
+
> .kui-toolbar__center [data-expanded="true"]
|
|
380
|
+
)
|
|
381
|
+
> .kui-toolbar__center {
|
|
382
|
+
width: 100%;
|
|
383
|
+
grid-column: 1 / -1;
|
|
384
|
+
}
|
|
385
|
+
|
|
386
|
+
.kui-toolbar[data-responsive="center-priority"]:has(
|
|
387
|
+
> .kui-toolbar__center [data-expanded="true"]
|
|
388
|
+
)
|
|
389
|
+
> :is(.kui-toolbar__leading, .kui-toolbar__trailing) {
|
|
390
|
+
display: none;
|
|
391
|
+
}
|
|
392
|
+
}
|