@kerfjs/ui 5.0.0-beta.95 → 5.0.0-beta.97
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 +95 -55
- package/ai/component-catalog.json +1330 -94
- package/ai/component-composition-rules.json +11 -0
- package/ai/component-composition.d.ts +3 -0
- package/ai/component-composition.json +955 -23
- package/ai/component-composition.schema.json +4 -0
- package/ai/components/README.md +12 -0
- package/ai/components/badge.md +6 -2
- package/ai/components/choice-chips.md +80 -0
- package/ai/components/column-track.md +78 -0
- package/ai/components/combobox.md +88 -0
- package/ai/components/content-item.md +2 -0
- package/ai/components/content-swap.md +78 -0
- package/ai/components/corner-status.md +88 -0
- package/ai/components/document-baseline.md +3 -1
- package/ai/components/edge-activity-indicator.md +81 -0
- package/ai/components/file-picker.md +88 -0
- package/ai/components/foundation.md +1 -1
- package/ai/components/framed-list.md +80 -0
- package/ai/components/grid.md +2 -1
- package/ai/components/icon-button.md +82 -0
- package/ai/components/icon-toggle-button.md +80 -0
- package/ai/components/list-action-row.md +20 -7
- package/ai/components/list-item.md +17 -7
- package/ai/components/list.md +5 -2
- package/ai/components/nav-stack.md +2 -1
- package/ai/components/popup-menu.md +2 -2
- package/ai/components/row.md +1 -1
- package/ai/components/select.md +2 -1
- package/ai/components/split-button.md +80 -0
- package/ai/components/split-view.md +1 -1
- package/ai/components/state-banner.md +4 -2
- package/ai/components/summary-row.md +85 -0
- package/ai/components/sunken-panel.md +1 -1
- package/ai/components/surface-scaffold.md +8 -2
- package/ai/components/text.md +3 -0
- package/ai/components/toolbar-control-group.md +4 -2
- package/ai/components/toolbar-text.md +1 -0
- package/ai/components/toolbar.md +1 -0
- package/ai/components/value-table.md +9 -2
- package/ai/components/wa-button-group.md +2 -1
- package/ai/components/wa-button.md +5 -1
- package/ai/public-api-signatures-v1.md +1063 -52
- package/ai/skill.md +55 -53
- package/ai/webawesome-jsx-signatures-v1.md +1 -1
- package/dist/anchored-surface.d.ts +13 -2
- package/dist/anchored-surface.js +1 -1
- package/dist/app-tab.js +1 -1
- package/dist/badge.d.ts +31 -2
- package/dist/badge.js +2 -1
- package/dist/browser/choice-chips.js +3 -0
- package/dist/browser/column-track.js +3 -0
- package/dist/browser/combobox.js +3 -0
- package/dist/browser/content-swap.js +3 -0
- package/dist/browser/corner-status.js +3 -0
- package/dist/browser/edge-activity-indicator.js +3 -0
- package/dist/browser/file-picker.js +3 -0
- package/dist/browser/framed-list.js +3 -0
- package/dist/browser/icon-button.js +4 -0
- package/dist/browser/icon-toggle-button.js +4 -0
- package/dist/browser/list-action-row.js +1 -0
- package/dist/browser/split-button.js +5 -0
- package/dist/browser/summary-row.js +3 -0
- package/dist/catalog-resources.d.ts +1 -0
- package/dist/catalog.d.ts +1 -0
- package/dist/catalog.js +16 -13
- package/dist/catalog.js.map +1 -1
- package/dist/chip.d.ts +1 -0
- package/dist/choice-chips.d.ts +58 -0
- package/dist/choice-chips.js +3 -0
- package/dist/choice-chips.js.map +1 -0
- package/dist/chunk-2MSPNRWJ.js +82 -0
- package/dist/chunk-2MSPNRWJ.js.map +1 -0
- package/dist/{chunk-3PO7JEK7.js → chunk-36TL6BCR.js} +18 -4
- package/dist/chunk-36TL6BCR.js.map +1 -0
- package/dist/{chunk-MORVLMDG.js → chunk-44A6LP54.js} +3 -3
- package/dist/chunk-44A6LP54.js.map +1 -0
- package/dist/{chunk-7QQ3HE47.js → chunk-4LOK4634.js} +7 -3
- package/dist/chunk-4LOK4634.js.map +1 -0
- package/dist/chunk-4UB5Z3ZZ.js +68 -0
- package/dist/chunk-4UB5Z3ZZ.js.map +1 -0
- package/dist/{chunk-PGL6TXFW.js → chunk-6BRRUPJY.js} +6 -2
- package/dist/chunk-6BRRUPJY.js.map +1 -0
- package/dist/{chunk-KAJVVN7Q.js → chunk-6NOLL5KG.js} +2 -2
- package/dist/{chunk-KAJVVN7Q.js.map → chunk-6NOLL5KG.js.map} +1 -1
- package/dist/{chunk-IOS2NXW7.js → chunk-76PWEN5Y.js} +13 -2
- package/dist/chunk-76PWEN5Y.js.map +1 -0
- package/dist/{chunk-B3TROLC2.js → chunk-7IUEBNCO.js} +7 -3
- package/dist/chunk-7IUEBNCO.js.map +1 -0
- package/dist/{chunk-75YOTZ25.js → chunk-AYHC62OZ.js} +10 -6
- package/dist/chunk-AYHC62OZ.js.map +1 -0
- package/dist/{chunk-RZYQFGMM.js → chunk-BBU2SPRE.js} +4 -4
- package/dist/{chunk-RZYQFGMM.js.map → chunk-BBU2SPRE.js.map} +1 -1
- package/dist/{chunk-QCLLBMLA.js → chunk-BU23Z5HZ.js} +37 -12
- package/dist/chunk-BU23Z5HZ.js.map +1 -0
- package/dist/{chunk-BYHGRKC3.js → chunk-CMLPFIC5.js} +3 -1
- package/dist/chunk-CMLPFIC5.js.map +1 -0
- package/dist/{chunk-3XPGJUUQ.js → chunk-D5RGM3XA.js} +3 -2
- package/dist/chunk-D5RGM3XA.js.map +1 -0
- package/dist/chunk-EIET4QLK.js +51 -0
- package/dist/chunk-EIET4QLK.js.map +1 -0
- package/dist/chunk-ETCWQLJV.js +85 -0
- package/dist/chunk-ETCWQLJV.js.map +1 -0
- package/dist/chunk-FDZNYD4C.js +138 -0
- package/dist/chunk-FDZNYD4C.js.map +1 -0
- package/dist/{chunk-XKZPBRU7.js → chunk-FOQK4F3L.js} +25 -5
- package/dist/chunk-FOQK4F3L.js.map +1 -0
- package/dist/{chunk-FL6J644M.js → chunk-GJYQ27C2.js} +4 -2
- package/dist/chunk-GJYQ27C2.js.map +1 -0
- package/dist/{chunk-DL55BSQX.js → chunk-GZE2XVKC.js} +8 -1
- package/dist/chunk-GZE2XVKC.js.map +1 -0
- package/dist/{chunk-YP2G67S7.js → chunk-HO6FU3G7.js} +2 -2
- package/dist/{chunk-YP2G67S7.js.map → chunk-HO6FU3G7.js.map} +1 -1
- package/dist/{chunk-3DXHNLME.js → chunk-IGTWXPTN.js} +25 -8
- package/dist/chunk-IGTWXPTN.js.map +1 -0
- package/dist/chunk-IKS72C6P.js +53 -0
- package/dist/chunk-IKS72C6P.js.map +1 -0
- package/dist/chunk-JYD7G4RG.js +130 -0
- package/dist/chunk-JYD7G4RG.js.map +1 -0
- package/dist/{chunk-LAZLBC2Q.js → chunk-KH4KEMSP.js} +33 -2
- package/dist/chunk-KH4KEMSP.js.map +1 -0
- package/dist/chunk-LL45C7BB.js +122 -0
- package/dist/chunk-LL45C7BB.js.map +1 -0
- package/dist/chunk-M2NRCFRO.js +45 -0
- package/dist/chunk-M2NRCFRO.js.map +1 -0
- package/dist/chunk-MJ5RU6XT.js +173 -0
- package/dist/chunk-MJ5RU6XT.js.map +1 -0
- package/dist/{chunk-GIUOXAVL.js → chunk-P74VXMB6.js} +39 -19
- package/dist/chunk-P74VXMB6.js.map +1 -0
- package/dist/{chunk-TKDDTLG5.js → chunk-PBT3CPPY.js} +31 -3
- package/dist/chunk-PBT3CPPY.js.map +1 -0
- package/dist/chunk-PRG4CL3Q.js +88 -0
- package/dist/chunk-PRG4CL3Q.js.map +1 -0
- package/dist/chunk-QH5KOFNS.js +39 -0
- package/dist/chunk-QH5KOFNS.js.map +1 -0
- package/dist/{chunk-CD5TOO22.js → chunk-QIAPOWHH.js} +2 -2
- package/dist/{chunk-CD5TOO22.js.map → chunk-QIAPOWHH.js.map} +1 -1
- package/dist/chunk-QQ3TTWFH.js +29 -0
- package/dist/chunk-QQ3TTWFH.js.map +1 -0
- package/dist/chunk-QYMJHS4K.js +36 -0
- package/dist/chunk-QYMJHS4K.js.map +1 -0
- package/dist/chunk-R42D2BAO.js +44 -0
- package/dist/chunk-R42D2BAO.js.map +1 -0
- package/dist/chunk-S2XULQEK.js +52 -0
- package/dist/chunk-S2XULQEK.js.map +1 -0
- package/dist/{chunk-NMWDHZVM.js → chunk-S4Y3YTAI.js} +2 -2
- package/dist/{chunk-NMWDHZVM.js.map → chunk-S4Y3YTAI.js.map} +1 -1
- package/dist/{chunk-O27D24CA.js → chunk-TDMHA7C3.js} +3 -2
- package/dist/chunk-TDMHA7C3.js.map +1 -0
- package/dist/chunk-U6QYTMDB.js +85 -0
- package/dist/chunk-U6QYTMDB.js.map +1 -0
- package/dist/{chunk-QQICWWNX.js → chunk-V6W56V3N.js} +18 -7
- package/dist/chunk-V6W56V3N.js.map +1 -0
- package/dist/chunk-W4IK7AWD.js +73 -0
- package/dist/chunk-W4IK7AWD.js.map +1 -0
- package/dist/{chunk-TNG3XKHB.js → chunk-Y3LC7JQO.js} +26 -8
- package/dist/chunk-Y3LC7JQO.js.map +1 -0
- package/dist/chunk-YWQGSUF2.js +84 -0
- package/dist/chunk-YWQGSUF2.js.map +1 -0
- package/dist/{chunk-MTCTX25G.js → chunk-YXOMI7ES.js} +1 -1
- package/dist/chunk-YXOMI7ES.js.map +1 -0
- package/dist/chunk-ZKKO4MHC.js +25 -0
- package/dist/chunk-ZKKO4MHC.js.map +1 -0
- package/dist/collapsible-panel.d.ts +10 -3
- package/dist/collapsible-panel.js +8 -5
- package/dist/collapsible-panel.js.map +1 -1
- package/dist/column-track.d.ts +41 -0
- package/dist/column-track.js +4 -0
- package/dist/column-track.js.map +1 -0
- package/dist/combobox.d.ts +40 -0
- package/dist/combobox.js +3 -0
- package/dist/combobox.js.map +1 -0
- package/dist/content-item.d.ts +21 -4
- package/dist/content-item.js +1 -1
- package/dist/content-swap.d.ts +34 -0
- package/dist/content-swap.js +3 -0
- package/dist/content-swap.js.map +1 -0
- package/dist/corner-status.d.ts +36 -0
- package/dist/corner-status.js +3 -0
- package/dist/corner-status.js.map +1 -0
- package/dist/edge-activity-indicator.d.ts +28 -0
- package/dist/edge-activity-indicator.js +3 -0
- package/dist/edge-activity-indicator.js.map +1 -0
- package/dist/extension-attributes-mu8MFUl0.d.ts +13 -0
- package/dist/file-picker.d.ts +47 -0
- package/dist/file-picker.js +3 -0
- package/dist/file-picker.js.map +1 -0
- package/dist/framed-list.d.ts +47 -0
- package/dist/framed-list.js +4 -0
- package/dist/framed-list.js.map +1 -0
- package/dist/grid.js +1 -1
- package/dist/help-tags-register.js +1 -1
- package/dist/icon-button.d.ts +46 -0
- package/dist/icon-button.js +6 -0
- package/dist/icon-button.js.map +1 -0
- package/dist/icon-toggle-button.d.ts +42 -0
- package/dist/icon-toggle-button.js +6 -0
- package/dist/icon-toggle-button.js.map +1 -0
- package/dist/index.d.ts +23 -6
- package/dist/index.js +44 -27
- package/dist/list-action-row.d.ts +47 -10
- package/dist/list-action-row.js +2 -1
- package/dist/list-header.js +1 -1
- package/dist/list-inset-text.js +1 -1
- package/dist/list-item.d.ts +10 -2
- package/dist/list-item.js +1 -1
- package/dist/list.d.ts +37 -5
- package/dist/list.js +1 -1
- package/dist/nav-stack.d.ts +1 -0
- package/dist/nav-stack.js +2 -1
- package/dist/pane.js +2 -1
- package/dist/popup-menu-register.js +18 -1
- package/dist/popup-menu-register.js.map +1 -1
- package/dist/popup-menu.d.ts +28 -3
- package/dist/popup-menu.js +1 -1
- package/dist/row.d.ts +6 -2
- package/dist/row.js +1 -1
- package/dist/select-register.js +1 -1
- package/dist/select.js +2 -1
- package/dist/split-button.d.ts +57 -0
- package/dist/split-button.js +7 -0
- package/dist/split-button.js.map +1 -0
- package/dist/split-view.d.ts +20 -2
- package/dist/split-view.js +22 -1
- package/dist/split-view.js.map +1 -1
- package/dist/state-banner.d.ts +17 -2
- package/dist/state-banner.js +2 -1
- package/dist/styles/badge.css +27 -0
- package/dist/styles/catalog/components/catalog-example.css +7 -3
- package/dist/styles/choice-chips.css +154 -0
- package/dist/styles/column-track.css +57 -0
- package/dist/styles/combobox.css +113 -0
- package/dist/styles/components/actions/icon-button/icon-button.css +22 -0
- package/dist/styles/components/actions/icon-toggle-button/icon-toggle-button.css +83 -0
- package/dist/styles/components/actions/popup-menu/popup-menu.css +69 -1
- package/dist/styles/components/actions/split-button/split-button.css +95 -0
- package/dist/styles/components/actions/toolbar/toolbar.css +16 -9
- package/dist/styles/components/actions/toolbar-control-group/toolbar-control-group.css +152 -48
- package/dist/styles/components/actions/toolbar-text/toolbar-text.css +23 -0
- package/dist/styles/components/collections/framed-list/framed-list.css +47 -0
- package/dist/styles/components/collections/list/list.css +44 -0
- package/dist/styles/components/collections/list-action-row/list-action-row.css +53 -0
- package/dist/styles/components/collections/list-item/list-item.css +59 -0
- package/dist/styles/components/collections/summary-row/summary-row.css +161 -0
- package/dist/styles/components/data-display/value-table/value-table.css +76 -0
- package/dist/styles/components/feedback/badge/badge.css +27 -0
- package/dist/styles/components/feedback/corner-status/corner-status.css +60 -0
- package/dist/styles/components/feedback/edge-activity-indicator/edge-activity-indicator.css +127 -0
- package/dist/styles/components/feedback/state-banner/state-banner.css +38 -0
- package/dist/styles/components/forms/choice-chips/choice-chips.css +154 -0
- package/dist/styles/components/forms/combobox/combobox.css +113 -0
- package/dist/styles/components/forms/file-picker/file-picker.css +81 -0
- package/dist/styles/components/forms/token-search-field/token-search-field.css +30 -1
- package/dist/styles/components/layout/column-track/column-track.css +57 -0
- package/dist/styles/components/layout/content-swap/content-swap.css +154 -0
- package/dist/styles/components/layout/pane/pane.css +2 -8
- package/dist/styles/components/layout/workbench/workbench.css +2 -8
- package/dist/styles/components/navigation/tab-navigator/tab-navigator.css +1 -4
- package/dist/styles/components/surfaces/content-item/content-item.css +18 -0
- package/dist/styles/components/surfaces/sunken-panel/sunken-panel.css +1 -4
- package/dist/styles/components/surfaces/surface-scaffold/surface-scaffold.css +119 -0
- package/dist/styles/components/typography/text/text.css +62 -0
- package/dist/styles/content-item.css +18 -0
- package/dist/styles/content-swap.css +154 -0
- package/dist/styles/corner-status.css +60 -0
- package/dist/styles/document.css +65 -0
- package/dist/styles/edge-activity-indicator.css +127 -0
- package/dist/styles/file-picker.css +81 -0
- package/dist/styles/foundation.css +8 -0
- package/dist/styles/framed-list.css +47 -0
- package/dist/styles/icon-button.css +22 -0
- package/dist/styles/icon-toggle-button.css +83 -0
- package/dist/styles/list-action-row.css +53 -0
- package/dist/styles/list-item.css +59 -0
- package/dist/styles/list.css +44 -0
- package/dist/styles/pane.css +2 -8
- package/dist/styles/popup-menu.css +69 -1
- package/dist/styles/split-button.css +95 -0
- package/dist/styles/state-banner.css +38 -0
- package/dist/styles/styles.css +12 -0
- package/dist/styles/summary-row.css +161 -0
- package/dist/styles/sunken-panel.css +1 -4
- package/dist/styles/surface-scaffold.css +119 -0
- package/dist/styles/tab-navigator.css +1 -4
- package/dist/styles/text.css +62 -0
- package/dist/styles/token-search-field.css +30 -1
- package/dist/styles/toolbar-control-group.css +152 -48
- package/dist/styles/toolbar-text.css +23 -0
- package/dist/styles/toolbar.css +16 -9
- package/dist/styles/value-table.css +76 -0
- package/dist/styles/webawesome.css +4 -4
- package/dist/styles/workbench.css +2 -8
- package/dist/summary-row.d.ts +56 -0
- package/dist/summary-row.js +4 -0
- package/dist/summary-row.js.map +1 -0
- package/dist/sunken-panel.d.ts +8 -1
- package/dist/sunken-panel.js +2 -1
- package/dist/surface-scaffold-register.js +7 -1
- package/dist/surface-scaffold-register.js.map +1 -1
- package/dist/surface-scaffold.d.ts +75 -2
- package/dist/surface-scaffold.js +2 -1
- package/dist/tab-navigator.js +4 -1
- package/dist/tab-navigator.js.map +1 -1
- package/dist/text.d.ts +39 -4
- package/dist/text.js +1 -1
- package/dist/toolbar-control-group.d.ts +8 -1
- package/dist/toolbar-control-group.js +1 -1
- package/dist/toolbar-text.d.ts +14 -1
- package/dist/toolbar-text.js +1 -1
- package/dist/toolbar.d.ts +14 -3
- package/dist/toolbar.js +1 -1
- package/dist/value-table.d.ts +20 -2
- package/dist/value-table.js +1 -1
- package/dist/wire-catalog.d.ts +1 -0
- package/dist/wire-comboboxes.d.ts +26 -0
- package/dist/wire-comboboxes.js +3 -0
- package/dist/wire-comboboxes.js.map +1 -0
- package/dist/wire-corner-status.d.ts +11 -0
- package/dist/wire-corner-status.js +3 -0
- package/dist/wire-corner-status.js.map +1 -0
- package/dist/wire-file-pickers.d.ts +26 -0
- package/dist/wire-file-pickers.js +3 -0
- package/dist/wire-file-pickers.js.map +1 -0
- package/dist/wire-list-reorder.d.ts +41 -0
- package/dist/wire-list-reorder.js +3 -0
- package/dist/wire-list-reorder.js.map +1 -0
- package/dist/wire-token-search-fields.js +1 -1
- package/dist/workbench.d.ts +1 -0
- package/dist/workbench.js +2 -1
- package/docs/accessibility.md +45 -2
- package/docs/anchored-surface.md +15 -7
- package/docs/app-layouts.md +2 -1
- package/docs/component-contract.md +30 -6
- package/docs/component-selection.md +165 -13
- package/docs/design/templates/choice-chips/color-palette-dark.svg +1 -0
- package/docs/design/templates/choice-chips/color-palette.svg +1 -0
- package/docs/design/templates/choice-chips/compact-icons-dark.svg +1 -0
- package/docs/design/templates/choice-chips/compact-icons.svg +1 -0
- package/docs/design/templates/choice-chips-dark.svg +1 -0
- package/docs/design/templates/choice-chips.svg +1 -0
- package/docs/design/templates/list-action-row/trailing-menu-dark.svg +1 -0
- package/docs/design/templates/list-action-row/trailing-menu.svg +1 -0
- package/docs/design/templates/list-action-row-dark.svg +1 -1
- package/docs/design/templates/list-action-row.svg +1 -1
- package/docs/design/templates/state-banner/strip-dark.svg +1 -0
- package/docs/design/templates/state-banner/strip.svg +1 -0
- package/docs/design/templates/state-banner-dark.svg +1 -1
- package/docs/design/templates/state-banner.svg +1 -1
- package/docs/design/templates.md +1 -1
- package/docs/document-baseline.md +51 -0
- package/docs/layout.md +52 -1
- package/docs/split-view.md +20 -2
- package/docs/sunken-panel.md +13 -0
- package/docs/surface-scaffold.md +66 -1
- package/docs/ux-demo.md +1 -0
- package/docs/webawesome-theme.md +6 -2
- package/llms.txt +138 -16
- package/package.json +89 -1
- package/dist/chunk-3DXHNLME.js.map +0 -1
- package/dist/chunk-3PO7JEK7.js.map +0 -1
- package/dist/chunk-3XPGJUUQ.js.map +0 -1
- package/dist/chunk-4Y4L5YEI.js +0 -66
- package/dist/chunk-4Y4L5YEI.js.map +0 -1
- package/dist/chunk-75YOTZ25.js.map +0 -1
- package/dist/chunk-7QQ3HE47.js.map +0 -1
- package/dist/chunk-A7DYEERU.js +0 -59
- package/dist/chunk-A7DYEERU.js.map +0 -1
- package/dist/chunk-B3TROLC2.js.map +0 -1
- package/dist/chunk-BYHGRKC3.js.map +0 -1
- package/dist/chunk-DL55BSQX.js.map +0 -1
- package/dist/chunk-FL6J644M.js.map +0 -1
- package/dist/chunk-GIUOXAVL.js.map +0 -1
- package/dist/chunk-IOS2NXW7.js.map +0 -1
- package/dist/chunk-J3AWE5I4.js +0 -50
- package/dist/chunk-J3AWE5I4.js.map +0 -1
- package/dist/chunk-LAZLBC2Q.js.map +0 -1
- package/dist/chunk-MORVLMDG.js.map +0 -1
- package/dist/chunk-MTCTX25G.js.map +0 -1
- package/dist/chunk-O27D24CA.js.map +0 -1
- package/dist/chunk-PGL6TXFW.js.map +0 -1
- package/dist/chunk-QCLLBMLA.js.map +0 -1
- package/dist/chunk-QQICWWNX.js.map +0 -1
- package/dist/chunk-TKDDTLG5.js.map +0 -1
- package/dist/chunk-TNG3XKHB.js.map +0 -1
- package/dist/chunk-XKZPBRU7.js.map +0 -1
|
@@ -173,6 +173,13 @@
|
|
|
173
173
|
align-self: center;
|
|
174
174
|
}
|
|
175
175
|
.kui-toolbar-control-group[data-content="search"] {
|
|
176
|
+
/* The group owns the open/close width motion, and a collapsible search
|
|
177
|
+
inside follows it on every frame (no second, lagging width transition,
|
|
178
|
+
which left an empty band). For the length of the opening it also asks the
|
|
179
|
+
search to keep its query on one line, so the group's clip reveals the
|
|
180
|
+
query instead of re-wrapping it every frame (KF-CXQB30). */
|
|
181
|
+
--_kui-toolbar-group-search-width-duration: 0s;
|
|
182
|
+
--_kui-toolbar-group-search-reveal-duration: 0.25s;
|
|
176
183
|
width: min(var(--kui-token-search-expanded-width, 30rem), 100%);
|
|
177
184
|
max-width: 100%;
|
|
178
185
|
height: auto;
|
|
@@ -215,10 +222,35 @@
|
|
|
215
222
|
|
|
216
223
|
.kui-toolbar-control-group[data-sizing="grow"][data-expanded="true"] {
|
|
217
224
|
--_kui-toolbar-group-grow-search-width: 100%;
|
|
225
|
+
/* The grown group's content-box width at its basis (basis minus the 1px
|
|
226
|
+
border and 1px padding on each side). A collapsible search lays its editor
|
|
227
|
+
out at least this wide while the group's flex size animates open, so the
|
|
228
|
+
clipped query is revealed rather than re-wrapped every frame (KF-50K0JM). */
|
|
229
|
+
--_kui-toolbar-group-grow-search-min-width: calc(
|
|
230
|
+
var(--kui-toolbar-group-grow-basis, 19rem) - 4px
|
|
231
|
+
);
|
|
218
232
|
width: auto;
|
|
219
233
|
min-width: var(--kui-toolbar-group-grow-basis, 19rem);
|
|
220
234
|
flex: 1 1 var(--kui-toolbar-group-grow-basis, 19rem);
|
|
221
235
|
}
|
|
236
|
+
|
|
237
|
+
/* A grow search animates its flex size, not `width`: an expanded grow group's
|
|
238
|
+
`width: auto` cannot interpolate, so it used to snap open while the search
|
|
239
|
+
inside animated, leaving an empty band (KF-50K0JM). The collapsed state names
|
|
240
|
+
a definite basis and minimum so all three flex lengths interpolate. */
|
|
241
|
+
.kui-toolbar-control-group[data-content="search"][data-sizing="grow"] {
|
|
242
|
+
/* The group's flex size owns this motion; its basis-wide minimum (above)
|
|
243
|
+
already keeps the query on one line. */
|
|
244
|
+
--_kui-toolbar-group-search-reveal-duration: 0s;
|
|
245
|
+
transition-property:
|
|
246
|
+
width, flex-basis, flex-grow, min-width, background-color, border-color;
|
|
247
|
+
transition-duration: 0.25s, 0.25s, 0.25s, 0.25s, 0.2s, 0.2s;
|
|
248
|
+
transition-timing-function: ease;
|
|
249
|
+
}
|
|
250
|
+
.kui-toolbar-control-group[data-content="search"][data-sizing="grow"][data-expanded="false"] {
|
|
251
|
+
min-width: var(--kui-toolbar-group-size, calc(2px + 2.625rem));
|
|
252
|
+
flex: 0 0 var(--kui-toolbar-group-size, calc(2px + 2.625rem));
|
|
253
|
+
}
|
|
222
254
|
.kui-toolbar-control-group[data-sizing="fill"] {
|
|
223
255
|
width: 100%;
|
|
224
256
|
min-width: 0;
|
|
@@ -256,15 +288,32 @@
|
|
|
256
288
|
|
|
257
289
|
@container kui-toolbar (max-width: 30rem) {
|
|
258
290
|
.kui-toolbar-control-group[data-sizing="grow"][data-expanded="true"] {
|
|
291
|
+
--_kui-toolbar-group-grow-search-min-width: 0px;
|
|
259
292
|
width: 100%;
|
|
260
293
|
min-width: 0;
|
|
261
294
|
flex: 1 1 100%;
|
|
262
295
|
}
|
|
296
|
+
|
|
297
|
+
/* Here the grown search takes its own line. Animating its basis would push
|
|
298
|
+
the trailing siblings and then jump the group to the next line mid-way, so
|
|
299
|
+
it opens and closes in one frame with the search filling it. */
|
|
300
|
+
.kui-toolbar-control-group[data-content="search"][data-sizing="grow"] {
|
|
301
|
+
transition-property: background-color, border-color;
|
|
302
|
+
transition-duration: 0.2s;
|
|
303
|
+
}
|
|
263
304
|
}
|
|
264
305
|
.kui-toolbar-control-group[data-content="text"]
|
|
265
|
-
> :is(
|
|
306
|
+
> :is(
|
|
307
|
+
button,
|
|
308
|
+
wa-button:not(:where(.kui-icon-button)),
|
|
309
|
+
.kui-toolbar-action-link
|
|
310
|
+
),
|
|
266
311
|
.kui-toolbar-control-group[data-content="mixed"]
|
|
267
|
-
> :is(
|
|
312
|
+
> :is(
|
|
313
|
+
button,
|
|
314
|
+
wa-button:not(:where(.kui-icon-button)),
|
|
315
|
+
.kui-toolbar-action-link
|
|
316
|
+
) {
|
|
268
317
|
min-width: max-content;
|
|
269
318
|
}
|
|
270
319
|
.kui-toolbar-control-group[data-content="mixed"] > button {
|
|
@@ -272,14 +321,14 @@
|
|
|
272
321
|
gap: var(--kui-space-xs);
|
|
273
322
|
}
|
|
274
323
|
.kui-toolbar-control-group[data-content="mixed"]
|
|
275
|
-
wa-button:not(:where(.kui-popup-menu >
|
|
324
|
+
wa-button:not(:where(.kui-popup-menu > *, .kui-icon-button)) {
|
|
276
325
|
line-height: normal;
|
|
277
326
|
}
|
|
278
327
|
/* Toolbar controls never wrap. Web Awesome's label part is a plain block, so a
|
|
279
328
|
slotted icon (a block SVG) and its text would otherwise stack vertically —
|
|
280
329
|
lay them out on one row the way native mixed buttons already are. */
|
|
281
330
|
.kui-toolbar-control-group
|
|
282
|
-
wa-button:not(:where(.kui-popup-menu >
|
|
331
|
+
wa-button:not(:where(.kui-popup-menu > *, .kui-icon-button))::part(label) {
|
|
283
332
|
display: inline-flex;
|
|
284
333
|
align-items: center;
|
|
285
334
|
gap: var(--kui-space-xs);
|
|
@@ -335,11 +384,32 @@
|
|
|
335
384
|
background: transparent;
|
|
336
385
|
}
|
|
337
386
|
|
|
387
|
+
/* `selectedChrome="none"`: a pressed control paints like its unpressed
|
|
388
|
+
neighbors, for an icon-state toggle whose glyph already shows the state.
|
|
389
|
+
One button opts out alone with `data-selected-chrome="none"`. After the
|
|
390
|
+
tone and appearance rules above, so it wins over their selected fills. */
|
|
391
|
+
.kui-toolbar-control-group[data-selected-chrome="none"],
|
|
392
|
+
.kui-toolbar-control-group
|
|
393
|
+
> :is(
|
|
394
|
+
button,
|
|
395
|
+
wa-button:not(:where(.kui-icon-button))
|
|
396
|
+
)[data-selected-chrome="none"] {
|
|
397
|
+
--kui-toolbar-control-selected-shadow: none;
|
|
398
|
+
--kui-toolbar-control-selected-border: transparent;
|
|
399
|
+
--kui-toolbar-control-selected-background: transparent;
|
|
400
|
+
--kui-toolbar-control-selected-color: var(--kui-toolbar-control-color);
|
|
401
|
+
}
|
|
402
|
+
|
|
338
403
|
/* The group lays out its own native and raw Web Awesome children. A composed
|
|
339
404
|
PopupMenu (`wa-dropdown.kui-popup-menu`) or Select sizes itself in the
|
|
340
405
|
group's context from its own stylesheet (popup-menu.css, select.css); the
|
|
341
406
|
group names those children by class only to key its own state on them. */
|
|
342
|
-
.kui-toolbar-control-group
|
|
407
|
+
.kui-toolbar-control-group
|
|
408
|
+
> :is(
|
|
409
|
+
button,
|
|
410
|
+
wa-button:not(:where(.kui-icon-button)),
|
|
411
|
+
.kui-toolbar-action-link
|
|
412
|
+
),
|
|
343
413
|
.kui-toolbar-control-group > wa-dropdown:not(.kui-popup-menu) {
|
|
344
414
|
flex: 0 0 auto;
|
|
345
415
|
}
|
|
@@ -366,12 +436,15 @@
|
|
|
366
436
|
place-items: center;
|
|
367
437
|
}
|
|
368
438
|
|
|
369
|
-
|
|
439
|
+
/* A native button that is disabled, or kept focusable with aria-disabled,
|
|
440
|
+
dims and drops hover chrome. */
|
|
441
|
+
.kui-toolbar-control-group > button:is(:disabled, [aria-disabled="true"]) {
|
|
370
442
|
opacity: 0.5;
|
|
371
443
|
cursor: not-allowed;
|
|
372
444
|
}
|
|
373
445
|
|
|
374
|
-
.kui-toolbar-control-group
|
|
446
|
+
.kui-toolbar-control-group
|
|
447
|
+
> button:not(:disabled, [aria-disabled="true"]):hover {
|
|
375
448
|
border-color: var(--kui-toolbar-control-border);
|
|
376
449
|
background: var(--kui-toolbar-control-hover-background);
|
|
377
450
|
}
|
|
@@ -429,7 +502,9 @@
|
|
|
429
502
|
}
|
|
430
503
|
|
|
431
504
|
.kui-toolbar-control-group > button svg,
|
|
432
|
-
.kui-toolbar-control-group
|
|
505
|
+
.kui-toolbar-control-group
|
|
506
|
+
wa-button:not(:where(.kui-popup-menu > *, .kui-icon-button))
|
|
507
|
+
> svg,
|
|
433
508
|
.kui-toolbar-control-group > .kui-toolbar-action-link svg {
|
|
434
509
|
display: block;
|
|
435
510
|
width: 1rem;
|
|
@@ -441,40 +516,44 @@
|
|
|
441
516
|
buttons: a composed PopupMenu's trigger (`.kui-popup-menu > wa-button`) is
|
|
442
517
|
excluded inside a zero-specificity `:where()` and takes the same metrics
|
|
443
518
|
from popup-menu.css. */
|
|
444
|
-
.kui-toolbar-control-group
|
|
519
|
+
.kui-toolbar-control-group
|
|
520
|
+
wa-button:not(:where(.kui-popup-menu > *, .kui-icon-button)) {
|
|
445
521
|
--wa-form-control-height: 2.5rem;
|
|
446
522
|
}
|
|
447
523
|
.kui-toolbar-control-group[data-size="compact"]
|
|
448
|
-
wa-button:not(:where(.kui-popup-menu >
|
|
524
|
+
wa-button:not(:where(.kui-popup-menu > *, .kui-icon-button)) {
|
|
449
525
|
--wa-form-control-height: 2rem;
|
|
450
526
|
}
|
|
451
527
|
|
|
452
|
-
.kui-toolbar-control-group > wa-button,
|
|
528
|
+
.kui-toolbar-control-group > wa-button:not(:where(.kui-icon-button)),
|
|
453
529
|
.kui-toolbar-control-group > wa-dropdown:not(.kui-popup-menu),
|
|
454
|
-
.kui-toolbar-control-group > wa-dropdown:not(.kui-popup-menu) > wa-button,
|
|
455
530
|
.kui-toolbar-control-group
|
|
456
531
|
> wa-dropdown:not(.kui-popup-menu)
|
|
457
|
-
> wa-button
|
|
532
|
+
> wa-button:not(:where(.kui-icon-button)),
|
|
533
|
+
.kui-toolbar-control-group
|
|
534
|
+
> wa-dropdown:not(.kui-popup-menu)
|
|
535
|
+
> wa-button:not(:where(.kui-icon-button))::part(base) {
|
|
458
536
|
min-width: 2.5rem;
|
|
459
537
|
height: 2.5rem;
|
|
460
538
|
}
|
|
461
539
|
.kui-toolbar-control-group[data-size="compact"] > button,
|
|
462
540
|
.kui-toolbar-control-group[data-size="compact"] > .kui-toolbar-action-link,
|
|
463
|
-
.kui-toolbar-control-group[data-size="compact"]
|
|
541
|
+
.kui-toolbar-control-group[data-size="compact"]
|
|
542
|
+
> wa-button:not(:where(.kui-icon-button)),
|
|
464
543
|
.kui-toolbar-control-group[data-size="compact"]
|
|
465
544
|
> wa-dropdown:not(.kui-popup-menu),
|
|
466
545
|
.kui-toolbar-control-group[data-size="compact"]
|
|
467
546
|
> wa-dropdown:not(.kui-popup-menu)
|
|
468
|
-
> wa-button,
|
|
547
|
+
> wa-button:not(:where(.kui-icon-button)),
|
|
469
548
|
.kui-toolbar-control-group[data-size="compact"]
|
|
470
549
|
> wa-dropdown:not(.kui-popup-menu)
|
|
471
|
-
> wa-button::part(base),
|
|
550
|
+
> wa-button:not(:where(.kui-icon-button))::part(base),
|
|
472
551
|
.kui-toolbar-control-group[data-size="compact"][data-nested-dropdown="true"]
|
|
473
552
|
wa-dropdown:not(.kui-popup-menu)
|
|
474
|
-
wa-button,
|
|
553
|
+
wa-button:not(:where(.kui-icon-button)),
|
|
475
554
|
.kui-toolbar-control-group[data-size="compact"][data-nested-dropdown="true"]
|
|
476
555
|
wa-dropdown:not(.kui-popup-menu)
|
|
477
|
-
wa-button::part(base) {
|
|
556
|
+
wa-button:not(:where(.kui-icon-button))::part(base) {
|
|
478
557
|
min-width: 2rem;
|
|
479
558
|
height: 2rem;
|
|
480
559
|
min-height: 2rem;
|
|
@@ -523,7 +602,7 @@
|
|
|
523
602
|
.kui-toolbar-control-group[data-size="compact"][data-content="mixed"]
|
|
524
603
|
> wa-dropdown:not(.kui-popup-menu),
|
|
525
604
|
.kui-toolbar-control-group[data-size="compact"][data-content="mixed"]
|
|
526
|
-
> wa-button {
|
|
605
|
+
> wa-button:not(:where(.kui-icon-button)) {
|
|
527
606
|
margin: -2px;
|
|
528
607
|
}
|
|
529
608
|
|
|
@@ -533,25 +612,26 @@
|
|
|
533
612
|
the separator and the caret beyond the group border. */
|
|
534
613
|
.kui-toolbar-control-group[data-content="mixed"][data-nested-dropdown="true"]
|
|
535
614
|
> wa-dropdown:not(.kui-popup-menu)
|
|
536
|
-
> wa-button,
|
|
615
|
+
> wa-button:not(:where(.kui-icon-button)),
|
|
537
616
|
.kui-toolbar-control-group[data-content="mixed"][data-nested-dropdown="true"]
|
|
538
617
|
> wa-dropdown:not(.kui-popup-menu)
|
|
539
|
-
> wa-button::part(base) {
|
|
618
|
+
> wa-button:not(:where(.kui-icon-button))::part(base) {
|
|
540
619
|
min-width: max-content;
|
|
541
620
|
}
|
|
542
621
|
.kui-toolbar-control-group[data-content="mixed"][data-nested-dropdown="true"]
|
|
543
622
|
> wa-dropdown:not(.kui-popup-menu)
|
|
544
|
-
> wa-button::part(base) {
|
|
623
|
+
> wa-button:not(:where(.kui-icon-button))::part(base) {
|
|
545
624
|
width: max-content;
|
|
546
625
|
}
|
|
547
626
|
|
|
548
627
|
.kui-toolbar-control-group[data-single="true"]
|
|
549
628
|
> wa-dropdown:not(.kui-popup-menu)
|
|
550
|
-
> wa-button::part(base) {
|
|
629
|
+
> wa-button:not(:where(.kui-icon-button))::part(base) {
|
|
551
630
|
width: max-content;
|
|
552
631
|
}
|
|
553
632
|
|
|
554
|
-
.kui-toolbar-control-group
|
|
633
|
+
.kui-toolbar-control-group
|
|
634
|
+
wa-button:not(:where(.kui-popup-menu > *, .kui-icon-button)) {
|
|
555
635
|
display: inline-flex;
|
|
556
636
|
line-height: 0;
|
|
557
637
|
align-items: center;
|
|
@@ -560,7 +640,7 @@
|
|
|
560
640
|
}
|
|
561
641
|
|
|
562
642
|
.kui-toolbar-control-group
|
|
563
|
-
wa-button:not(:where(.kui-popup-menu >
|
|
643
|
+
wa-button:not(:where(.kui-popup-menu > *, .kui-icon-button))::part(base) {
|
|
564
644
|
/* Match min-width to the 40px height so an icon-only button's highlight is at
|
|
565
645
|
least a circle, not a vertical oval — the host is 40px wide but the base
|
|
566
646
|
part was sizing to its ~32px content. Text/caret buttons grow past it. */
|
|
@@ -575,15 +655,18 @@
|
|
|
575
655
|
}
|
|
576
656
|
|
|
577
657
|
.kui-toolbar-control-group
|
|
578
|
-
wa-button:not(
|
|
658
|
+
wa-button:not(
|
|
659
|
+
:where(.kui-popup-menu > *, .kui-icon-button),
|
|
660
|
+
[disabled]
|
|
661
|
+
):hover::part(base) {
|
|
579
662
|
border-color: var(--kui-toolbar-control-border);
|
|
580
663
|
background-color: var(--kui-toolbar-control-hover-background);
|
|
581
664
|
}
|
|
582
665
|
|
|
583
666
|
.kui-toolbar-control-group[data-single="true"]:has(
|
|
584
667
|
> :is(
|
|
585
|
-
button:not(:disabled),
|
|
586
|
-
wa-button,
|
|
668
|
+
button:not(:disabled, [aria-disabled="true"]),
|
|
669
|
+
wa-button:not([disabled]),
|
|
587
670
|
.kui-popup-menu,
|
|
588
671
|
wa-dropdown:not(.kui-popup-menu),
|
|
589
672
|
.kui-select,
|
|
@@ -594,9 +677,16 @@
|
|
|
594
677
|
}
|
|
595
678
|
|
|
596
679
|
.kui-toolbar-control-group[data-single="true"]
|
|
597
|
-
> :is(
|
|
680
|
+
> :is(
|
|
681
|
+
button,
|
|
682
|
+
wa-button:not(:where(.kui-icon-button)),
|
|
683
|
+
.kui-toolbar-action-link
|
|
684
|
+
):hover,
|
|
598
685
|
.kui-toolbar-control-group[data-single="true"]
|
|
599
|
-
wa-button:not(
|
|
686
|
+
wa-button:not(
|
|
687
|
+
:where(.kui-popup-menu > *, .kui-icon-button),
|
|
688
|
+
[disabled]
|
|
689
|
+
):hover::part(base) {
|
|
600
690
|
border-color: transparent;
|
|
601
691
|
background: transparent;
|
|
602
692
|
}
|
|
@@ -607,8 +697,8 @@
|
|
|
607
697
|
Done action). */
|
|
608
698
|
.kui-toolbar-control-group:not([data-single="true"]):has(
|
|
609
699
|
> :is(
|
|
610
|
-
button:not(:disabled),
|
|
611
|
-
wa-button,
|
|
700
|
+
button:not(:disabled, [aria-disabled="true"]),
|
|
701
|
+
wa-button:not([disabled]),
|
|
612
702
|
.kui-select,
|
|
613
703
|
.kui-toolbar-action-link
|
|
614
704
|
):nth-child(1 of :where(:not([data-toolbar-visibility-state]))):where(
|
|
@@ -619,17 +709,25 @@
|
|
|
619
709
|
}
|
|
620
710
|
|
|
621
711
|
.kui-toolbar-control-group:not([data-single="true"]):has(
|
|
622
|
-
> :is(
|
|
623
|
-
|
|
624
|
-
|
|
712
|
+
> :is(
|
|
713
|
+
button,
|
|
714
|
+
wa-button:not(:where(.kui-icon-button)),
|
|
715
|
+
.kui-toolbar-action-link
|
|
716
|
+
):nth-child(1 of :where(:not([data-toolbar-visibility-state]))):where(
|
|
717
|
+
:nth-last-child(1 of :not([data-toolbar-visibility-state]))
|
|
718
|
+
)
|
|
625
719
|
)
|
|
626
|
-
> :is(
|
|
720
|
+
> :is(
|
|
721
|
+
button,
|
|
722
|
+
wa-button:not(:where(.kui-icon-button)),
|
|
723
|
+
.kui-toolbar-action-link
|
|
724
|
+
):hover,
|
|
627
725
|
.kui-toolbar-control-group:not([data-single="true"]):has(
|
|
628
|
-
> :is(button, wa-button):nth-child(
|
|
726
|
+
> :is(button, wa-button:not(:where(.kui-icon-button))):nth-child(
|
|
629
727
|
1 of :where(:not([data-toolbar-visibility-state]))
|
|
630
728
|
):where(:nth-last-child(1 of :not([data-toolbar-visibility-state])))
|
|
631
729
|
)
|
|
632
|
-
> wa-button:hover::part(base) {
|
|
730
|
+
> wa-button:not(:where(.kui-icon-button)):hover::part(base) {
|
|
633
731
|
border-color: transparent;
|
|
634
732
|
background: transparent;
|
|
635
733
|
}
|
|
@@ -651,18 +749,22 @@
|
|
|
651
749
|
and stays inside the group's border instead of overflowing it as an oversized
|
|
652
750
|
square (KF-5BDDQ9). The selected text color rides on the host and inherits in. */
|
|
653
751
|
.kui-toolbar-control-group[data-single="false"]
|
|
654
|
-
> wa-button[aria-pressed="true"] {
|
|
752
|
+
> wa-button:not(:where(.kui-icon-button))[aria-pressed="true"] {
|
|
655
753
|
color: var(--kui-toolbar-control-selected-color);
|
|
656
754
|
}
|
|
657
755
|
.kui-toolbar-control-group[data-single="false"]
|
|
658
|
-
> wa-button[aria-pressed="true"]::part(base) {
|
|
756
|
+
> wa-button:not(:where(.kui-icon-button))[aria-pressed="true"]::part(base) {
|
|
659
757
|
border-color: var(--kui-toolbar-control-selected-border);
|
|
660
758
|
background: var(--kui-toolbar-control-selected-background);
|
|
661
759
|
box-shadow: var(--kui-toolbar-control-selected-shadow);
|
|
662
760
|
}
|
|
663
761
|
|
|
664
762
|
.kui-toolbar-control-group
|
|
665
|
-
> :is(
|
|
763
|
+
> :is(
|
|
764
|
+
button,
|
|
765
|
+
wa-button:not(:where(.kui-icon-button)),
|
|
766
|
+
.kui-toolbar-action-link
|
|
767
|
+
):focus-visible {
|
|
666
768
|
outline: var(--kui-focus-ring);
|
|
667
769
|
outline-offset: 1px;
|
|
668
770
|
}
|
|
@@ -743,12 +845,14 @@
|
|
|
743
845
|
}
|
|
744
846
|
|
|
745
847
|
.kui-toolbar-control-group[data-button-appearance="push"][data-single="true"]
|
|
746
|
-
> :is(button, wa-button)[aria-pressed="true"] {
|
|
848
|
+
> :is(button, wa-button:not(:where(.kui-icon-button)))[aria-pressed="true"] {
|
|
747
849
|
color: var(--kui-toolbar-control-pressed-color);
|
|
748
850
|
}
|
|
749
851
|
|
|
750
852
|
@media (prefers-reduced-motion: reduce) {
|
|
751
|
-
.kui-toolbar-control-group[data-content="search"]
|
|
853
|
+
.kui-toolbar-control-group[data-content="search"],
|
|
854
|
+
.kui-toolbar-control-group[data-content="search"][data-sizing="grow"] {
|
|
855
|
+
--_kui-toolbar-group-search-reveal-duration: 0s;
|
|
752
856
|
transition-duration: 0s;
|
|
753
857
|
}
|
|
754
858
|
|
|
@@ -785,18 +889,18 @@
|
|
|
785
889
|
.kui-toolbar-control-group[data-content="avatar"]:is(
|
|
786
890
|
[data-single="true"],
|
|
787
891
|
:has(
|
|
788
|
-
> :is(button, wa-button):nth-child(
|
|
892
|
+
> :is(button, wa-button:not(:where(.kui-icon-button))):nth-child(
|
|
789
893
|
1 of :where(:not([data-toolbar-visibility-state]))
|
|
790
894
|
):where(:nth-last-child(1 of :not([data-toolbar-visibility-state])))
|
|
791
895
|
)
|
|
792
896
|
)
|
|
793
|
-
> :is(button, wa-button) {
|
|
897
|
+
> :is(button, wa-button:not(:where(.kui-icon-button))) {
|
|
794
898
|
color: transparent;
|
|
795
899
|
}
|
|
796
900
|
|
|
797
901
|
.kui-toolbar-control-group[data-content="avatar"][data-single="false"]:not(
|
|
798
902
|
:has(
|
|
799
|
-
> :is(button, wa-button):nth-child(
|
|
903
|
+
> :is(button, wa-button:not(:where(.kui-icon-button))):nth-child(
|
|
800
904
|
1 of :where(:not([data-toolbar-visibility-state]))
|
|
801
905
|
):where(:nth-last-child(1 of :not([data-toolbar-visibility-state])))
|
|
802
906
|
)
|
|
@@ -804,12 +908,12 @@
|
|
|
804
908
|
> button[aria-pressed="true"],
|
|
805
909
|
.kui-toolbar-control-group[data-content="avatar"][data-single="false"]:not(
|
|
806
910
|
:has(
|
|
807
|
-
> :is(button, wa-button):nth-child(
|
|
911
|
+
> :is(button, wa-button:not(:where(.kui-icon-button))):nth-child(
|
|
808
912
|
1 of :where(:not([data-toolbar-visibility-state]))
|
|
809
913
|
):where(:nth-last-child(1 of :not([data-toolbar-visibility-state])))
|
|
810
914
|
)
|
|
811
915
|
)
|
|
812
|
-
> wa-button[aria-pressed="true"]::part(base) {
|
|
916
|
+
> wa-button:not(:where(.kui-icon-button))[aria-pressed="true"]::part(base) {
|
|
813
917
|
color: transparent;
|
|
814
918
|
background-image: var(--kui-toolbar-avatar-image);
|
|
815
919
|
background-origin: border-box;
|
|
@@ -49,6 +49,29 @@ button.kui-toolbar-text:focus-visible {
|
|
|
49
49
|
padding-block: max(0px, calc((var(--_kui-toolbar-band) - 1.25em) / 2));
|
|
50
50
|
}
|
|
51
51
|
|
|
52
|
+
/* A title with supporting copy stacks the two lines and centers them together
|
|
53
|
+
in the control band (growing past it only when they do not fit), so
|
|
54
|
+
trailing groups stay on the band and both lines start at the same edge. */
|
|
55
|
+
.kui-toolbar-text[data-has-description="true"] {
|
|
56
|
+
height: auto;
|
|
57
|
+
flex-direction: column;
|
|
58
|
+
align-items: stretch;
|
|
59
|
+
justify-content: center;
|
|
60
|
+
gap: 0.125rem;
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
.kui-toolbar-text__description {
|
|
64
|
+
min-width: 0;
|
|
65
|
+
overflow: hidden;
|
|
66
|
+
color: var(--kui-color-text-quiet);
|
|
67
|
+
font-size: var(--kui-font-xs);
|
|
68
|
+
font-weight: 400;
|
|
69
|
+
letter-spacing: normal;
|
|
70
|
+
line-height: 1.2;
|
|
71
|
+
text-overflow: ellipsis;
|
|
72
|
+
white-space: nowrap;
|
|
73
|
+
}
|
|
74
|
+
|
|
52
75
|
/* A filling title grows into its row's free space and truncates there. */
|
|
53
76
|
.kui-toolbar-text[data-fill="true"] {
|
|
54
77
|
flex: 1 1 auto;
|
package/dist/styles/toolbar.css
CHANGED
|
@@ -34,18 +34,13 @@
|
|
|
34
34
|
/* The minimum height grows by any claimed block inset, so a toolbar a flex
|
|
35
35
|
column shrinks still keeps a whole control row clear of the unsafe area. */
|
|
36
36
|
min-height: calc(
|
|
37
|
-
var(--
|
|
38
|
-
(2 * var(--kui-toolbar-inset, var(--kui-toolbar-gap, 0.5rem))) +
|
|
37
|
+
var(--_kui-toolbar-band) + (2 * var(--_kui-toolbar-block-inset)) +
|
|
39
38
|
var(--_kui-toolbar-safe-block-start) + var(--_kui-toolbar-safe-block-end)
|
|
40
39
|
);
|
|
41
40
|
padding-block: calc(
|
|
42
|
-
var(--
|
|
43
|
-
var(--_kui-toolbar-safe-block-start)
|
|
41
|
+
var(--_kui-toolbar-block-inset) + var(--_kui-toolbar-safe-block-start)
|
|
44
42
|
)
|
|
45
|
-
calc(
|
|
46
|
-
var(--kui-toolbar-inset, var(--kui-toolbar-gap, 0.5rem)) +
|
|
47
|
-
var(--_kui-toolbar-safe-block-end)
|
|
48
|
-
);
|
|
43
|
+
calc(var(--_kui-toolbar-block-inset) + var(--_kui-toolbar-safe-block-end));
|
|
49
44
|
padding-inline: calc(
|
|
50
45
|
var(--kui-toolbar-inset, var(--kui-toolbar-gap, 0.5rem)) +
|
|
51
46
|
var(--_kui-toolbar-safe-inline-start)
|
|
@@ -157,6 +152,18 @@
|
|
|
157
152
|
`--_kui-toolbar-band` is context those components use for that placement. */
|
|
158
153
|
.kui-toolbar {
|
|
159
154
|
--_kui-toolbar-band: var(--kui-toolbar-group-size, calc(2px + 2.625rem));
|
|
155
|
+
--_kui-toolbar-block-inset: var(
|
|
156
|
+
--kui-toolbar-inset,
|
|
157
|
+
var(--kui-toolbar-gap, 0.5rem)
|
|
158
|
+
);
|
|
159
|
+
}
|
|
160
|
+
|
|
161
|
+
/* Compact density: a 34px band (the compact ToolbarControlGroup's size) with
|
|
162
|
+
3px block insets makes a 40px header for an embedded panel or card. The
|
|
163
|
+
inline insets and zone gap keep the standard 8px. */
|
|
164
|
+
.kui-toolbar[data-density="compact"] {
|
|
165
|
+
--_kui-toolbar-band: 2.125rem;
|
|
166
|
+
--_kui-toolbar-block-inset: var(--kui-toolbar-inset, 0.1875rem);
|
|
160
167
|
}
|
|
161
168
|
|
|
162
169
|
.kui-toolbar__leading,
|
|
@@ -230,7 +237,7 @@
|
|
|
230
237
|
flex-wrap: wrap;
|
|
231
238
|
}
|
|
232
239
|
|
|
233
|
-
.kui-toolbar__trailing > wa-button {
|
|
240
|
+
.kui-toolbar__trailing > wa-button:not(:where(.kui-icon-button)) {
|
|
234
241
|
margin-block-start: max(
|
|
235
242
|
0px,
|
|
236
243
|
calc((var(--_kui-toolbar-band) - var(--wa-form-control-height)) / 2)
|
|
@@ -105,3 +105,79 @@
|
|
|
105
105
|
font-weight: var(--kui-font-weight-semibold);
|
|
106
106
|
text-align: end;
|
|
107
107
|
}
|
|
108
|
+
|
|
109
|
+
/* `labelWidth`: a minimum label column; the value takes the rest of the row
|
|
110
|
+
(never wider than the row, so a narrow table still fits). */
|
|
111
|
+
.kui-value-table[data-label-width] .kui-value-table__row {
|
|
112
|
+
grid-template-columns: var(
|
|
113
|
+
--kui-value-table-row-columns,
|
|
114
|
+
minmax(min(var(--_kui-value-table-label-min), 100%), auto) minmax(0, 1fr)
|
|
115
|
+
);
|
|
116
|
+
}
|
|
117
|
+
|
|
118
|
+
/* Only a table that stacks below a width becomes a size container. Size
|
|
119
|
+
containment drops its content-based width, so it fills its container's
|
|
120
|
+
width (inside its own inline margins) instead; a table without
|
|
121
|
+
`stackBelow` keeps sizing to content in shrink-to-fit contexts. */
|
|
122
|
+
.kui-value-table[data-stack-below] {
|
|
123
|
+
box-sizing: border-box;
|
|
124
|
+
width: calc(100% - 2 * var(--kui-layout-inline-margin, 0.5rem));
|
|
125
|
+
container: kui-value-table / inline-size;
|
|
126
|
+
}
|
|
127
|
+
|
|
128
|
+
/* Stacked rows: each value sits under its label and starts at the label's
|
|
129
|
+
text edge (after a leading icon). */
|
|
130
|
+
.kui-value-table[data-presentation="stacked"] .kui-value-table__row {
|
|
131
|
+
grid-template-columns: minmax(0, 1fr);
|
|
132
|
+
row-gap: var(--kui-space-2xs);
|
|
133
|
+
}
|
|
134
|
+
.kui-value-table[data-presentation="stacked"] .kui-value-table__row dd {
|
|
135
|
+
justify-content: flex-start;
|
|
136
|
+
text-align: start;
|
|
137
|
+
}
|
|
138
|
+
.kui-value-table[data-presentation="stacked"]
|
|
139
|
+
.kui-value-table__row[data-has-icon="true"]
|
|
140
|
+
dd {
|
|
141
|
+
padding-inline-start: calc(
|
|
142
|
+
var(--_kui-value-table-separator-start) -
|
|
143
|
+
var(--_kui-value-table-inline-padding)
|
|
144
|
+
);
|
|
145
|
+
}
|
|
146
|
+
|
|
147
|
+
@container kui-value-table (max-width: 36rem) {
|
|
148
|
+
.kui-value-table[data-stack-below="narrow"] .kui-value-table__row {
|
|
149
|
+
grid-template-columns: minmax(0, 1fr);
|
|
150
|
+
row-gap: var(--kui-space-2xs);
|
|
151
|
+
}
|
|
152
|
+
.kui-value-table[data-stack-below="narrow"] .kui-value-table__row dd {
|
|
153
|
+
justify-content: flex-start;
|
|
154
|
+
text-align: start;
|
|
155
|
+
}
|
|
156
|
+
.kui-value-table[data-stack-below="narrow"]
|
|
157
|
+
.kui-value-table__row[data-has-icon="true"]
|
|
158
|
+
dd {
|
|
159
|
+
padding-inline-start: calc(
|
|
160
|
+
var(--_kui-value-table-separator-start) -
|
|
161
|
+
var(--_kui-value-table-inline-padding)
|
|
162
|
+
);
|
|
163
|
+
}
|
|
164
|
+
}
|
|
165
|
+
|
|
166
|
+
@container kui-value-table (max-width: 32rem) {
|
|
167
|
+
.kui-value-table[data-stack-below="compact"] .kui-value-table__row {
|
|
168
|
+
grid-template-columns: minmax(0, 1fr);
|
|
169
|
+
row-gap: var(--kui-space-2xs);
|
|
170
|
+
}
|
|
171
|
+
.kui-value-table[data-stack-below="compact"] .kui-value-table__row dd {
|
|
172
|
+
justify-content: flex-start;
|
|
173
|
+
text-align: start;
|
|
174
|
+
}
|
|
175
|
+
.kui-value-table[data-stack-below="compact"]
|
|
176
|
+
.kui-value-table__row[data-has-icon="true"]
|
|
177
|
+
dd {
|
|
178
|
+
padding-inline-start: calc(
|
|
179
|
+
var(--_kui-value-table-separator-start) -
|
|
180
|
+
var(--_kui-value-table-inline-padding)
|
|
181
|
+
);
|
|
182
|
+
}
|
|
183
|
+
}
|
|
@@ -370,9 +370,9 @@
|
|
|
370
370
|
inside the exported `details` part, while Accordion and Card paint their
|
|
371
371
|
host directly. */
|
|
372
372
|
:is(wa-accordion, wa-card)[appearance="sunken"] {
|
|
373
|
-
background
|
|
373
|
+
background: var(
|
|
374
374
|
--kui-wa-sunken-background,
|
|
375
|
-
var(--kui-
|
|
375
|
+
var(--kui-sunken-surface, var(--wa-color-surface-lowered))
|
|
376
376
|
);
|
|
377
377
|
border-color: transparent;
|
|
378
378
|
border-radius: var(
|
|
@@ -383,9 +383,9 @@
|
|
|
383
383
|
}
|
|
384
384
|
|
|
385
385
|
wa-details[appearance="sunken"]::part(details) {
|
|
386
|
-
background
|
|
386
|
+
background: var(
|
|
387
387
|
--kui-wa-sunken-background,
|
|
388
|
-
var(--kui-
|
|
388
|
+
var(--kui-sunken-surface, var(--wa-color-surface-lowered))
|
|
389
389
|
);
|
|
390
390
|
border-color: transparent;
|
|
391
391
|
border-radius: var(
|
|
@@ -135,10 +135,7 @@
|
|
|
135
135
|
separator handle remains fixed. Paint only that owner. */
|
|
136
136
|
.kui-workbench__main[data-appearance="sunken"],
|
|
137
137
|
:is(.kui-workbench__rail, .kui-workbench__drawer)[data-appearance="sunken"] {
|
|
138
|
-
background: var(
|
|
139
|
-
--kui-sunken-panel-background,
|
|
140
|
-
var(--kui-color-surface-lowered)
|
|
141
|
-
);
|
|
138
|
+
background: var(--kui-sunken-panel-background, var(--kui-sunken-surface));
|
|
142
139
|
}
|
|
143
140
|
|
|
144
141
|
:is(
|
|
@@ -153,10 +150,7 @@
|
|
|
153
150
|
.kui-workbench__drawer
|
|
154
151
|
)[data-appearance="sunken"][data-resizable="true"][data-content-overflow="auto"]
|
|
155
152
|
> .kui-workbench__panel-content {
|
|
156
|
-
background: var(
|
|
157
|
-
--kui-sunken-panel-background,
|
|
158
|
-
var(--kui-color-surface-lowered)
|
|
159
|
-
);
|
|
153
|
+
background: var(--kui-sunken-panel-background, var(--kui-sunken-surface));
|
|
160
154
|
}
|
|
161
155
|
|
|
162
156
|
.kui-workbench__main[data-drawer-inline-expanded="true"] {
|