@kerfjs/ui 5.0.0-beta.95 → 5.0.0-beta.96
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 +1328 -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 +19 -7
- package/ai/components/list-item.md +16 -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 +54 -52
- 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 +144 -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 +39 -0
- package/dist/styles/components/collections/list-item/list-item.css +45 -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 +12 -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 +39 -0
- package/dist/styles/list-item.css +45 -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 +12 -1
- package/dist/styles/toolbar-control-group.css +144 -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 +26 -6
- package/docs/component-selection.md +149 -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 +125 -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
|
@@ -62,6 +62,28 @@
|
|
|
62
62
|
)
|
|
63
63
|
);
|
|
64
64
|
}
|
|
65
|
+
.kui-dialog-surface[data-presentation="modal"][data-height]
|
|
66
|
+
> wa-dialog::part(dialog) {
|
|
67
|
+
--_kui-dialog-surface-resolved-height: max(
|
|
68
|
+
0px,
|
|
69
|
+
min(
|
|
70
|
+
var(--_kui-dialog-surface-height, 100dvh),
|
|
71
|
+
calc(
|
|
72
|
+
100dvh - var(--_kui-dialog-surface-resolved-gutter) -
|
|
73
|
+
var(--_kui-dialog-surface-resolved-gutter)
|
|
74
|
+
)
|
|
75
|
+
)
|
|
76
|
+
);
|
|
77
|
+
height: var(--_kui-dialog-surface-resolved-height);
|
|
78
|
+
max-height: var(--_kui-dialog-surface-resolved-height);
|
|
79
|
+
}
|
|
80
|
+
/* One child owns the body: it gets the body's whole height and its own
|
|
81
|
+
scrolling (the body itself no longer scrolls). */
|
|
82
|
+
.kui-dialog-surface[data-body-layout="fill"] > wa-dialog::part(body) {
|
|
83
|
+
display: grid;
|
|
84
|
+
overflow: hidden;
|
|
85
|
+
grid-template-rows: minmax(0, 1fr);
|
|
86
|
+
}
|
|
65
87
|
.kui-dialog-surface[data-body-inset="none"] > wa-dialog::part(body),
|
|
66
88
|
.kui-dialog-surface[data-footer-inset="none"] > wa-dialog::part(footer) {
|
|
67
89
|
padding: 0;
|
|
@@ -92,6 +114,103 @@
|
|
|
92
114
|
max-height: 100dvh;
|
|
93
115
|
border-radius: 0;
|
|
94
116
|
}
|
|
117
|
+
/* PopoverDialogSurface: the dialog chrome and bounded geometry for a native
|
|
118
|
+
popover="auto" surface (non-modal, light dismiss) or the same surface in
|
|
119
|
+
flow. The UA popover rules supply the centered top-layer placement. */
|
|
120
|
+
.kui-popover-dialog-surface {
|
|
121
|
+
--_kui-popover-dialog-surface-width: 35rem;
|
|
122
|
+
--_kui-popover-dialog-surface-resolved-gutter: max(
|
|
123
|
+
0px,
|
|
124
|
+
var(--_kui-popover-dialog-surface-gutter, 1rem)
|
|
125
|
+
);
|
|
126
|
+
--_kui-popover-dialog-surface-available-height: calc(
|
|
127
|
+
100dvh - var(--_kui-popover-dialog-surface-resolved-gutter) -
|
|
128
|
+
var(--_kui-popover-dialog-surface-resolved-gutter)
|
|
129
|
+
);
|
|
130
|
+
box-sizing: border-box;
|
|
131
|
+
width: min(
|
|
132
|
+
var(
|
|
133
|
+
--_kui-popover-dialog-surface-preferred-width,
|
|
134
|
+
var(--_kui-popover-dialog-surface-width)
|
|
135
|
+
),
|
|
136
|
+
max(
|
|
137
|
+
0px,
|
|
138
|
+
calc(
|
|
139
|
+
100vw - var(--_kui-popover-dialog-surface-resolved-gutter) -
|
|
140
|
+
var(--_kui-popover-dialog-surface-resolved-gutter)
|
|
141
|
+
)
|
|
142
|
+
)
|
|
143
|
+
);
|
|
144
|
+
max-height: max(0px, var(--_kui-popover-dialog-surface-available-height));
|
|
145
|
+
padding: 0;
|
|
146
|
+
overflow: auto;
|
|
147
|
+
color: var(--kui-color-text);
|
|
148
|
+
border: 1px solid var(--kui-color-neutral-border-normal);
|
|
149
|
+
border-radius: var(--kui-radius-l);
|
|
150
|
+
background: var(--kui-color-surface-raised);
|
|
151
|
+
box-shadow: var(--kui-shadow-l);
|
|
152
|
+
}
|
|
153
|
+
.kui-popover-dialog-surface[data-size="small"] {
|
|
154
|
+
--_kui-popover-dialog-surface-width: 25rem;
|
|
155
|
+
}
|
|
156
|
+
.kui-popover-dialog-surface[data-size="large"] {
|
|
157
|
+
--_kui-popover-dialog-surface-width: 50rem;
|
|
158
|
+
}
|
|
159
|
+
.kui-popover-dialog-surface[data-max-height] {
|
|
160
|
+
max-height: max(
|
|
161
|
+
0px,
|
|
162
|
+
min(
|
|
163
|
+
var(--_kui-popover-dialog-surface-max-height, 100dvh),
|
|
164
|
+
var(--_kui-popover-dialog-surface-available-height)
|
|
165
|
+
)
|
|
166
|
+
);
|
|
167
|
+
}
|
|
168
|
+
.kui-popover-dialog-surface[data-height] {
|
|
169
|
+
height: max(
|
|
170
|
+
0px,
|
|
171
|
+
min(
|
|
172
|
+
var(--_kui-popover-dialog-surface-height, 100dvh),
|
|
173
|
+
var(--_kui-popover-dialog-surface-available-height)
|
|
174
|
+
)
|
|
175
|
+
);
|
|
176
|
+
max-height: none;
|
|
177
|
+
}
|
|
178
|
+
/* Centered in the top layer whatever margins or item alignment the host
|
|
179
|
+
sets: an absolutely positioned box's auto self-alignment otherwise
|
|
180
|
+
follows its parent's justify-items. */
|
|
181
|
+
.kui-popover-dialog-surface[data-presentation="overlay"]:popover-open {
|
|
182
|
+
inset: 0;
|
|
183
|
+
margin: auto;
|
|
184
|
+
place-self: center;
|
|
185
|
+
}
|
|
186
|
+
.kui-popover-dialog-surface::backdrop {
|
|
187
|
+
background: var(
|
|
188
|
+
--wa-color-overlay-modal,
|
|
189
|
+
light-dark(rgb(29 29 31 / 0.34), rgb(0 0 0 / 0.6))
|
|
190
|
+
);
|
|
191
|
+
}
|
|
192
|
+
/* Only an open overlay lays out, so a closed one stays hidden. One filling
|
|
193
|
+
child takes the whole surface and owns its scrolling. */
|
|
194
|
+
.kui-popover-dialog-surface[data-body-layout="fill"]:is(
|
|
195
|
+
:popover-open,
|
|
196
|
+
[data-presentation="embedded"]
|
|
197
|
+
) {
|
|
198
|
+
display: grid;
|
|
199
|
+
overflow: hidden;
|
|
200
|
+
grid-template-rows: minmax(0, 1fr);
|
|
201
|
+
}
|
|
202
|
+
/* In flow for a catalog or inline use: the same surface without the top
|
|
203
|
+
layer, never wider than its container. */
|
|
204
|
+
.kui-popover-dialog-surface[data-presentation="embedded"] {
|
|
205
|
+
position: relative;
|
|
206
|
+
inset: auto;
|
|
207
|
+
/* The available inline space, after any margin the container gives it. */
|
|
208
|
+
max-width: 100%;
|
|
209
|
+
max-width: -webkit-fill-available;
|
|
210
|
+
max-width: -moz-available;
|
|
211
|
+
max-width: stretch;
|
|
212
|
+
margin: 0;
|
|
213
|
+
}
|
|
95
214
|
.kui-popup-surface {
|
|
96
215
|
display: inline-flex;
|
|
97
216
|
}
|
|
@@ -52,10 +52,7 @@
|
|
|
52
52
|
}
|
|
53
53
|
|
|
54
54
|
.kui-tab-scaffold__scene[data-appearance="sunken"] {
|
|
55
|
-
background: var(
|
|
56
|
-
--kui-sunken-panel-background,
|
|
57
|
-
var(--kui-color-surface-lowered)
|
|
58
|
-
);
|
|
55
|
+
background: var(--kui-sunken-panel-background, var(--kui-sunken-surface));
|
|
59
56
|
}
|
|
60
57
|
|
|
61
58
|
/* A scene is its region's scroll owner, so its top inset is padding inside
|
package/dist/styles/text.css
CHANGED
|
@@ -45,6 +45,42 @@ span.kui-text[data-wrap="truncate"] {
|
|
|
45
45
|
max-width: 100%;
|
|
46
46
|
}
|
|
47
47
|
|
|
48
|
+
/* Tail-preserving truncation: the clip box runs right to left so its ellipsis
|
|
49
|
+
lands at the start, while the isolated left-to-right run keeps the text's
|
|
50
|
+
own order and punctuation. Short text that fits stays left-aligned. */
|
|
51
|
+
.kui-text__truncate-start {
|
|
52
|
+
display: block;
|
|
53
|
+
overflow: hidden;
|
|
54
|
+
direction: rtl;
|
|
55
|
+
text-align: left;
|
|
56
|
+
text-overflow: ellipsis;
|
|
57
|
+
white-space: nowrap;
|
|
58
|
+
}
|
|
59
|
+
|
|
60
|
+
/* Middle truncation: the head shrinks to an ellipsis while the kept suffix
|
|
61
|
+
(the last path segment) stays whole. Pre keeps a space at the split. */
|
|
62
|
+
.kui-text__truncate-middle {
|
|
63
|
+
display: flex;
|
|
64
|
+
min-width: 0;
|
|
65
|
+
overflow: hidden;
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
.kui-text__truncate-head,
|
|
69
|
+
.kui-text__truncate-tail {
|
|
70
|
+
white-space: pre;
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
.kui-text__truncate-head {
|
|
74
|
+
flex: 0 1 auto;
|
|
75
|
+
min-width: 0;
|
|
76
|
+
overflow: hidden;
|
|
77
|
+
text-overflow: ellipsis;
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
.kui-text__truncate-tail {
|
|
81
|
+
flex: 0 0 auto;
|
|
82
|
+
}
|
|
83
|
+
|
|
48
84
|
.kui-text__clamp {
|
|
49
85
|
display: -webkit-box;
|
|
50
86
|
overflow: hidden;
|
|
@@ -89,6 +125,32 @@ span.kui-text[data-wrap="truncate"] {
|
|
|
89
125
|
line-height: 1.2;
|
|
90
126
|
}
|
|
91
127
|
|
|
128
|
+
/* Inline alignment. The truncation boxes carry their own direction or flex
|
|
129
|
+
layout, so each aligns its single line explicitly. */
|
|
130
|
+
.kui-text[data-align="center"] {
|
|
131
|
+
text-align: center;
|
|
132
|
+
}
|
|
133
|
+
|
|
134
|
+
.kui-text[data-align="end"] {
|
|
135
|
+
text-align: end;
|
|
136
|
+
}
|
|
137
|
+
|
|
138
|
+
.kui-text[data-align="center"] > .kui-text__truncate-start {
|
|
139
|
+
text-align: center;
|
|
140
|
+
}
|
|
141
|
+
|
|
142
|
+
.kui-text[data-align="end"] > .kui-text__truncate-start {
|
|
143
|
+
text-align: right;
|
|
144
|
+
}
|
|
145
|
+
|
|
146
|
+
.kui-text[data-align="center"] > .kui-text__truncate-middle {
|
|
147
|
+
justify-content: center;
|
|
148
|
+
}
|
|
149
|
+
|
|
150
|
+
.kui-text[data-align="end"] > .kui-text__truncate-middle {
|
|
151
|
+
justify-content: flex-end;
|
|
152
|
+
}
|
|
153
|
+
|
|
92
154
|
span.kui-text {
|
|
93
155
|
margin: 0;
|
|
94
156
|
border: 0;
|
|
@@ -284,12 +284,23 @@
|
|
|
284
284
|
no-grow / may-shrink behavior a toolbar row wants without leaking the width
|
|
285
285
|
into the cross axis. */
|
|
286
286
|
flex: 0 1 auto;
|
|
287
|
+
/* A grow search group animates the open/close itself and sets this duration
|
|
288
|
+
to 0s: the field is the group's width on every frame instead of running a
|
|
289
|
+
second, lagging width transition that left an empty band beside a wrapped
|
|
290
|
+
query (KF-50K0JM). */
|
|
287
291
|
transition:
|
|
288
|
-
width 0.25s ease,
|
|
292
|
+
width var(--_kui-toolbar-group-grow-search-width-duration, 0.25s) ease,
|
|
289
293
|
background-color 0.2s ease,
|
|
290
294
|
border-color 0.2s ease;
|
|
291
295
|
}
|
|
292
296
|
|
|
297
|
+
/* While a grow search group is still narrower than its basis, keep the
|
|
298
|
+
basis-wide layout it provides; the group clips the field and reveals the
|
|
299
|
+
query instead of re-wrapping it every frame. Elsewhere this is 0px. */
|
|
300
|
+
.kui-token-search[data-collapsible="true"][data-expanded="true"] {
|
|
301
|
+
min-width: var(--_kui-toolbar-group-grow-search-min-width, 0px);
|
|
302
|
+
}
|
|
303
|
+
|
|
293
304
|
.kui-token-search[data-collapsible="true"][data-expanded="true"][data-fill="true"] {
|
|
294
305
|
width: 100%;
|
|
295
306
|
flex: 1 1 auto;
|
|
@@ -215,10 +215,35 @@
|
|
|
215
215
|
|
|
216
216
|
.kui-toolbar-control-group[data-sizing="grow"][data-expanded="true"] {
|
|
217
217
|
--_kui-toolbar-group-grow-search-width: 100%;
|
|
218
|
+
/* The grown group's content-box width at its basis (basis minus the 1px
|
|
219
|
+
border and 1px padding on each side). A collapsible search lays its editor
|
|
220
|
+
out at least this wide while the group's flex size animates open, so the
|
|
221
|
+
clipped query is revealed rather than re-wrapped every frame (KF-50K0JM). */
|
|
222
|
+
--_kui-toolbar-group-grow-search-min-width: calc(
|
|
223
|
+
var(--kui-toolbar-group-grow-basis, 19rem) - 4px
|
|
224
|
+
);
|
|
218
225
|
width: auto;
|
|
219
226
|
min-width: var(--kui-toolbar-group-grow-basis, 19rem);
|
|
220
227
|
flex: 1 1 var(--kui-toolbar-group-grow-basis, 19rem);
|
|
221
228
|
}
|
|
229
|
+
|
|
230
|
+
/* A grow search animates its flex size, not `width`: an expanded grow group's
|
|
231
|
+
`width: auto` cannot interpolate, so it used to snap open while the search
|
|
232
|
+
inside animated, leaving an empty band (KF-50K0JM). The collapsed state names
|
|
233
|
+
a definite basis and minimum so all three flex lengths interpolate. */
|
|
234
|
+
.kui-toolbar-control-group[data-content="search"][data-sizing="grow"] {
|
|
235
|
+
/* The group owns this motion; a collapsible search inside follows it on
|
|
236
|
+
every frame rather than running its own width transition. */
|
|
237
|
+
--_kui-toolbar-group-grow-search-width-duration: 0s;
|
|
238
|
+
transition-property:
|
|
239
|
+
width, flex-basis, flex-grow, min-width, background-color, border-color;
|
|
240
|
+
transition-duration: 0.25s, 0.25s, 0.25s, 0.25s, 0.2s, 0.2s;
|
|
241
|
+
transition-timing-function: ease;
|
|
242
|
+
}
|
|
243
|
+
.kui-toolbar-control-group[data-content="search"][data-sizing="grow"][data-expanded="false"] {
|
|
244
|
+
min-width: var(--kui-toolbar-group-size, calc(2px + 2.625rem));
|
|
245
|
+
flex: 0 0 var(--kui-toolbar-group-size, calc(2px + 2.625rem));
|
|
246
|
+
}
|
|
222
247
|
.kui-toolbar-control-group[data-sizing="fill"] {
|
|
223
248
|
width: 100%;
|
|
224
249
|
min-width: 0;
|
|
@@ -256,15 +281,32 @@
|
|
|
256
281
|
|
|
257
282
|
@container kui-toolbar (max-width: 30rem) {
|
|
258
283
|
.kui-toolbar-control-group[data-sizing="grow"][data-expanded="true"] {
|
|
284
|
+
--_kui-toolbar-group-grow-search-min-width: 0px;
|
|
259
285
|
width: 100%;
|
|
260
286
|
min-width: 0;
|
|
261
287
|
flex: 1 1 100%;
|
|
262
288
|
}
|
|
289
|
+
|
|
290
|
+
/* Here the grown search takes its own line. Animating its basis would push
|
|
291
|
+
the trailing siblings and then jump the group to the next line mid-way, so
|
|
292
|
+
it opens and closes in one frame with the search filling it. */
|
|
293
|
+
.kui-toolbar-control-group[data-content="search"][data-sizing="grow"] {
|
|
294
|
+
transition-property: background-color, border-color;
|
|
295
|
+
transition-duration: 0.2s;
|
|
296
|
+
}
|
|
263
297
|
}
|
|
264
298
|
.kui-toolbar-control-group[data-content="text"]
|
|
265
|
-
> :is(
|
|
299
|
+
> :is(
|
|
300
|
+
button,
|
|
301
|
+
wa-button:not(:where(.kui-icon-button)),
|
|
302
|
+
.kui-toolbar-action-link
|
|
303
|
+
),
|
|
266
304
|
.kui-toolbar-control-group[data-content="mixed"]
|
|
267
|
-
> :is(
|
|
305
|
+
> :is(
|
|
306
|
+
button,
|
|
307
|
+
wa-button:not(:where(.kui-icon-button)),
|
|
308
|
+
.kui-toolbar-action-link
|
|
309
|
+
) {
|
|
268
310
|
min-width: max-content;
|
|
269
311
|
}
|
|
270
312
|
.kui-toolbar-control-group[data-content="mixed"] > button {
|
|
@@ -272,14 +314,14 @@
|
|
|
272
314
|
gap: var(--kui-space-xs);
|
|
273
315
|
}
|
|
274
316
|
.kui-toolbar-control-group[data-content="mixed"]
|
|
275
|
-
wa-button:not(:where(.kui-popup-menu >
|
|
317
|
+
wa-button:not(:where(.kui-popup-menu > *, .kui-icon-button)) {
|
|
276
318
|
line-height: normal;
|
|
277
319
|
}
|
|
278
320
|
/* Toolbar controls never wrap. Web Awesome's label part is a plain block, so a
|
|
279
321
|
slotted icon (a block SVG) and its text would otherwise stack vertically —
|
|
280
322
|
lay them out on one row the way native mixed buttons already are. */
|
|
281
323
|
.kui-toolbar-control-group
|
|
282
|
-
wa-button:not(:where(.kui-popup-menu >
|
|
324
|
+
wa-button:not(:where(.kui-popup-menu > *, .kui-icon-button))::part(label) {
|
|
283
325
|
display: inline-flex;
|
|
284
326
|
align-items: center;
|
|
285
327
|
gap: var(--kui-space-xs);
|
|
@@ -335,11 +377,32 @@
|
|
|
335
377
|
background: transparent;
|
|
336
378
|
}
|
|
337
379
|
|
|
380
|
+
/* `selectedChrome="none"`: a pressed control paints like its unpressed
|
|
381
|
+
neighbors, for an icon-state toggle whose glyph already shows the state.
|
|
382
|
+
One button opts out alone with `data-selected-chrome="none"`. After the
|
|
383
|
+
tone and appearance rules above, so it wins over their selected fills. */
|
|
384
|
+
.kui-toolbar-control-group[data-selected-chrome="none"],
|
|
385
|
+
.kui-toolbar-control-group
|
|
386
|
+
> :is(
|
|
387
|
+
button,
|
|
388
|
+
wa-button:not(:where(.kui-icon-button))
|
|
389
|
+
)[data-selected-chrome="none"] {
|
|
390
|
+
--kui-toolbar-control-selected-shadow: none;
|
|
391
|
+
--kui-toolbar-control-selected-border: transparent;
|
|
392
|
+
--kui-toolbar-control-selected-background: transparent;
|
|
393
|
+
--kui-toolbar-control-selected-color: var(--kui-toolbar-control-color);
|
|
394
|
+
}
|
|
395
|
+
|
|
338
396
|
/* The group lays out its own native and raw Web Awesome children. A composed
|
|
339
397
|
PopupMenu (`wa-dropdown.kui-popup-menu`) or Select sizes itself in the
|
|
340
398
|
group's context from its own stylesheet (popup-menu.css, select.css); the
|
|
341
399
|
group names those children by class only to key its own state on them. */
|
|
342
|
-
.kui-toolbar-control-group
|
|
400
|
+
.kui-toolbar-control-group
|
|
401
|
+
> :is(
|
|
402
|
+
button,
|
|
403
|
+
wa-button:not(:where(.kui-icon-button)),
|
|
404
|
+
.kui-toolbar-action-link
|
|
405
|
+
),
|
|
343
406
|
.kui-toolbar-control-group > wa-dropdown:not(.kui-popup-menu) {
|
|
344
407
|
flex: 0 0 auto;
|
|
345
408
|
}
|
|
@@ -366,12 +429,15 @@
|
|
|
366
429
|
place-items: center;
|
|
367
430
|
}
|
|
368
431
|
|
|
369
|
-
|
|
432
|
+
/* A native button that is disabled, or kept focusable with aria-disabled,
|
|
433
|
+
dims and drops hover chrome. */
|
|
434
|
+
.kui-toolbar-control-group > button:is(:disabled, [aria-disabled="true"]) {
|
|
370
435
|
opacity: 0.5;
|
|
371
436
|
cursor: not-allowed;
|
|
372
437
|
}
|
|
373
438
|
|
|
374
|
-
.kui-toolbar-control-group
|
|
439
|
+
.kui-toolbar-control-group
|
|
440
|
+
> button:not(:disabled, [aria-disabled="true"]):hover {
|
|
375
441
|
border-color: var(--kui-toolbar-control-border);
|
|
376
442
|
background: var(--kui-toolbar-control-hover-background);
|
|
377
443
|
}
|
|
@@ -429,7 +495,9 @@
|
|
|
429
495
|
}
|
|
430
496
|
|
|
431
497
|
.kui-toolbar-control-group > button svg,
|
|
432
|
-
.kui-toolbar-control-group
|
|
498
|
+
.kui-toolbar-control-group
|
|
499
|
+
wa-button:not(:where(.kui-popup-menu > *, .kui-icon-button))
|
|
500
|
+
> svg,
|
|
433
501
|
.kui-toolbar-control-group > .kui-toolbar-action-link svg {
|
|
434
502
|
display: block;
|
|
435
503
|
width: 1rem;
|
|
@@ -441,40 +509,44 @@
|
|
|
441
509
|
buttons: a composed PopupMenu's trigger (`.kui-popup-menu > wa-button`) is
|
|
442
510
|
excluded inside a zero-specificity `:where()` and takes the same metrics
|
|
443
511
|
from popup-menu.css. */
|
|
444
|
-
.kui-toolbar-control-group
|
|
512
|
+
.kui-toolbar-control-group
|
|
513
|
+
wa-button:not(:where(.kui-popup-menu > *, .kui-icon-button)) {
|
|
445
514
|
--wa-form-control-height: 2.5rem;
|
|
446
515
|
}
|
|
447
516
|
.kui-toolbar-control-group[data-size="compact"]
|
|
448
|
-
wa-button:not(:where(.kui-popup-menu >
|
|
517
|
+
wa-button:not(:where(.kui-popup-menu > *, .kui-icon-button)) {
|
|
449
518
|
--wa-form-control-height: 2rem;
|
|
450
519
|
}
|
|
451
520
|
|
|
452
|
-
.kui-toolbar-control-group > wa-button,
|
|
521
|
+
.kui-toolbar-control-group > wa-button:not(:where(.kui-icon-button)),
|
|
453
522
|
.kui-toolbar-control-group > wa-dropdown:not(.kui-popup-menu),
|
|
454
|
-
.kui-toolbar-control-group > wa-dropdown:not(.kui-popup-menu) > wa-button,
|
|
455
523
|
.kui-toolbar-control-group
|
|
456
524
|
> wa-dropdown:not(.kui-popup-menu)
|
|
457
|
-
> wa-button
|
|
525
|
+
> wa-button:not(:where(.kui-icon-button)),
|
|
526
|
+
.kui-toolbar-control-group
|
|
527
|
+
> wa-dropdown:not(.kui-popup-menu)
|
|
528
|
+
> wa-button:not(:where(.kui-icon-button))::part(base) {
|
|
458
529
|
min-width: 2.5rem;
|
|
459
530
|
height: 2.5rem;
|
|
460
531
|
}
|
|
461
532
|
.kui-toolbar-control-group[data-size="compact"] > button,
|
|
462
533
|
.kui-toolbar-control-group[data-size="compact"] > .kui-toolbar-action-link,
|
|
463
|
-
.kui-toolbar-control-group[data-size="compact"]
|
|
534
|
+
.kui-toolbar-control-group[data-size="compact"]
|
|
535
|
+
> wa-button:not(:where(.kui-icon-button)),
|
|
464
536
|
.kui-toolbar-control-group[data-size="compact"]
|
|
465
537
|
> wa-dropdown:not(.kui-popup-menu),
|
|
466
538
|
.kui-toolbar-control-group[data-size="compact"]
|
|
467
539
|
> wa-dropdown:not(.kui-popup-menu)
|
|
468
|
-
> wa-button,
|
|
540
|
+
> wa-button:not(:where(.kui-icon-button)),
|
|
469
541
|
.kui-toolbar-control-group[data-size="compact"]
|
|
470
542
|
> wa-dropdown:not(.kui-popup-menu)
|
|
471
|
-
> wa-button::part(base),
|
|
543
|
+
> wa-button:not(:where(.kui-icon-button))::part(base),
|
|
472
544
|
.kui-toolbar-control-group[data-size="compact"][data-nested-dropdown="true"]
|
|
473
545
|
wa-dropdown:not(.kui-popup-menu)
|
|
474
|
-
wa-button,
|
|
546
|
+
wa-button:not(:where(.kui-icon-button)),
|
|
475
547
|
.kui-toolbar-control-group[data-size="compact"][data-nested-dropdown="true"]
|
|
476
548
|
wa-dropdown:not(.kui-popup-menu)
|
|
477
|
-
wa-button::part(base) {
|
|
549
|
+
wa-button:not(:where(.kui-icon-button))::part(base) {
|
|
478
550
|
min-width: 2rem;
|
|
479
551
|
height: 2rem;
|
|
480
552
|
min-height: 2rem;
|
|
@@ -523,7 +595,7 @@
|
|
|
523
595
|
.kui-toolbar-control-group[data-size="compact"][data-content="mixed"]
|
|
524
596
|
> wa-dropdown:not(.kui-popup-menu),
|
|
525
597
|
.kui-toolbar-control-group[data-size="compact"][data-content="mixed"]
|
|
526
|
-
> wa-button {
|
|
598
|
+
> wa-button:not(:where(.kui-icon-button)) {
|
|
527
599
|
margin: -2px;
|
|
528
600
|
}
|
|
529
601
|
|
|
@@ -533,25 +605,26 @@
|
|
|
533
605
|
the separator and the caret beyond the group border. */
|
|
534
606
|
.kui-toolbar-control-group[data-content="mixed"][data-nested-dropdown="true"]
|
|
535
607
|
> wa-dropdown:not(.kui-popup-menu)
|
|
536
|
-
> wa-button,
|
|
608
|
+
> wa-button:not(:where(.kui-icon-button)),
|
|
537
609
|
.kui-toolbar-control-group[data-content="mixed"][data-nested-dropdown="true"]
|
|
538
610
|
> wa-dropdown:not(.kui-popup-menu)
|
|
539
|
-
> wa-button::part(base) {
|
|
611
|
+
> wa-button:not(:where(.kui-icon-button))::part(base) {
|
|
540
612
|
min-width: max-content;
|
|
541
613
|
}
|
|
542
614
|
.kui-toolbar-control-group[data-content="mixed"][data-nested-dropdown="true"]
|
|
543
615
|
> wa-dropdown:not(.kui-popup-menu)
|
|
544
|
-
> wa-button::part(base) {
|
|
616
|
+
> wa-button:not(:where(.kui-icon-button))::part(base) {
|
|
545
617
|
width: max-content;
|
|
546
618
|
}
|
|
547
619
|
|
|
548
620
|
.kui-toolbar-control-group[data-single="true"]
|
|
549
621
|
> wa-dropdown:not(.kui-popup-menu)
|
|
550
|
-
> wa-button::part(base) {
|
|
622
|
+
> wa-button:not(:where(.kui-icon-button))::part(base) {
|
|
551
623
|
width: max-content;
|
|
552
624
|
}
|
|
553
625
|
|
|
554
|
-
.kui-toolbar-control-group
|
|
626
|
+
.kui-toolbar-control-group
|
|
627
|
+
wa-button:not(:where(.kui-popup-menu > *, .kui-icon-button)) {
|
|
555
628
|
display: inline-flex;
|
|
556
629
|
line-height: 0;
|
|
557
630
|
align-items: center;
|
|
@@ -560,7 +633,7 @@
|
|
|
560
633
|
}
|
|
561
634
|
|
|
562
635
|
.kui-toolbar-control-group
|
|
563
|
-
wa-button:not(:where(.kui-popup-menu >
|
|
636
|
+
wa-button:not(:where(.kui-popup-menu > *, .kui-icon-button))::part(base) {
|
|
564
637
|
/* Match min-width to the 40px height so an icon-only button's highlight is at
|
|
565
638
|
least a circle, not a vertical oval — the host is 40px wide but the base
|
|
566
639
|
part was sizing to its ~32px content. Text/caret buttons grow past it. */
|
|
@@ -575,15 +648,18 @@
|
|
|
575
648
|
}
|
|
576
649
|
|
|
577
650
|
.kui-toolbar-control-group
|
|
578
|
-
wa-button:not(
|
|
651
|
+
wa-button:not(
|
|
652
|
+
:where(.kui-popup-menu > *, .kui-icon-button),
|
|
653
|
+
[disabled]
|
|
654
|
+
):hover::part(base) {
|
|
579
655
|
border-color: var(--kui-toolbar-control-border);
|
|
580
656
|
background-color: var(--kui-toolbar-control-hover-background);
|
|
581
657
|
}
|
|
582
658
|
|
|
583
659
|
.kui-toolbar-control-group[data-single="true"]:has(
|
|
584
660
|
> :is(
|
|
585
|
-
button:not(:disabled),
|
|
586
|
-
wa-button,
|
|
661
|
+
button:not(:disabled, [aria-disabled="true"]),
|
|
662
|
+
wa-button:not([disabled]),
|
|
587
663
|
.kui-popup-menu,
|
|
588
664
|
wa-dropdown:not(.kui-popup-menu),
|
|
589
665
|
.kui-select,
|
|
@@ -594,9 +670,16 @@
|
|
|
594
670
|
}
|
|
595
671
|
|
|
596
672
|
.kui-toolbar-control-group[data-single="true"]
|
|
597
|
-
> :is(
|
|
673
|
+
> :is(
|
|
674
|
+
button,
|
|
675
|
+
wa-button:not(:where(.kui-icon-button)),
|
|
676
|
+
.kui-toolbar-action-link
|
|
677
|
+
):hover,
|
|
598
678
|
.kui-toolbar-control-group[data-single="true"]
|
|
599
|
-
wa-button:not(
|
|
679
|
+
wa-button:not(
|
|
680
|
+
:where(.kui-popup-menu > *, .kui-icon-button),
|
|
681
|
+
[disabled]
|
|
682
|
+
):hover::part(base) {
|
|
600
683
|
border-color: transparent;
|
|
601
684
|
background: transparent;
|
|
602
685
|
}
|
|
@@ -607,8 +690,8 @@
|
|
|
607
690
|
Done action). */
|
|
608
691
|
.kui-toolbar-control-group:not([data-single="true"]):has(
|
|
609
692
|
> :is(
|
|
610
|
-
button:not(:disabled),
|
|
611
|
-
wa-button,
|
|
693
|
+
button:not(:disabled, [aria-disabled="true"]),
|
|
694
|
+
wa-button:not([disabled]),
|
|
612
695
|
.kui-select,
|
|
613
696
|
.kui-toolbar-action-link
|
|
614
697
|
):nth-child(1 of :where(:not([data-toolbar-visibility-state]))):where(
|
|
@@ -619,17 +702,25 @@
|
|
|
619
702
|
}
|
|
620
703
|
|
|
621
704
|
.kui-toolbar-control-group:not([data-single="true"]):has(
|
|
622
|
-
> :is(
|
|
623
|
-
|
|
624
|
-
|
|
705
|
+
> :is(
|
|
706
|
+
button,
|
|
707
|
+
wa-button:not(:where(.kui-icon-button)),
|
|
708
|
+
.kui-toolbar-action-link
|
|
709
|
+
):nth-child(1 of :where(:not([data-toolbar-visibility-state]))):where(
|
|
710
|
+
:nth-last-child(1 of :not([data-toolbar-visibility-state]))
|
|
711
|
+
)
|
|
625
712
|
)
|
|
626
|
-
> :is(
|
|
713
|
+
> :is(
|
|
714
|
+
button,
|
|
715
|
+
wa-button:not(:where(.kui-icon-button)),
|
|
716
|
+
.kui-toolbar-action-link
|
|
717
|
+
):hover,
|
|
627
718
|
.kui-toolbar-control-group:not([data-single="true"]):has(
|
|
628
|
-
> :is(button, wa-button):nth-child(
|
|
719
|
+
> :is(button, wa-button:not(:where(.kui-icon-button))):nth-child(
|
|
629
720
|
1 of :where(:not([data-toolbar-visibility-state]))
|
|
630
721
|
):where(:nth-last-child(1 of :not([data-toolbar-visibility-state])))
|
|
631
722
|
)
|
|
632
|
-
> wa-button:hover::part(base) {
|
|
723
|
+
> wa-button:not(:where(.kui-icon-button)):hover::part(base) {
|
|
633
724
|
border-color: transparent;
|
|
634
725
|
background: transparent;
|
|
635
726
|
}
|
|
@@ -651,18 +742,22 @@
|
|
|
651
742
|
and stays inside the group's border instead of overflowing it as an oversized
|
|
652
743
|
square (KF-5BDDQ9). The selected text color rides on the host and inherits in. */
|
|
653
744
|
.kui-toolbar-control-group[data-single="false"]
|
|
654
|
-
> wa-button[aria-pressed="true"] {
|
|
745
|
+
> wa-button:not(:where(.kui-icon-button))[aria-pressed="true"] {
|
|
655
746
|
color: var(--kui-toolbar-control-selected-color);
|
|
656
747
|
}
|
|
657
748
|
.kui-toolbar-control-group[data-single="false"]
|
|
658
|
-
> wa-button[aria-pressed="true"]::part(base) {
|
|
749
|
+
> wa-button:not(:where(.kui-icon-button))[aria-pressed="true"]::part(base) {
|
|
659
750
|
border-color: var(--kui-toolbar-control-selected-border);
|
|
660
751
|
background: var(--kui-toolbar-control-selected-background);
|
|
661
752
|
box-shadow: var(--kui-toolbar-control-selected-shadow);
|
|
662
753
|
}
|
|
663
754
|
|
|
664
755
|
.kui-toolbar-control-group
|
|
665
|
-
> :is(
|
|
756
|
+
> :is(
|
|
757
|
+
button,
|
|
758
|
+
wa-button:not(:where(.kui-icon-button)),
|
|
759
|
+
.kui-toolbar-action-link
|
|
760
|
+
):focus-visible {
|
|
666
761
|
outline: var(--kui-focus-ring);
|
|
667
762
|
outline-offset: 1px;
|
|
668
763
|
}
|
|
@@ -743,12 +838,13 @@
|
|
|
743
838
|
}
|
|
744
839
|
|
|
745
840
|
.kui-toolbar-control-group[data-button-appearance="push"][data-single="true"]
|
|
746
|
-
> :is(button, wa-button)[aria-pressed="true"] {
|
|
841
|
+
> :is(button, wa-button:not(:where(.kui-icon-button)))[aria-pressed="true"] {
|
|
747
842
|
color: var(--kui-toolbar-control-pressed-color);
|
|
748
843
|
}
|
|
749
844
|
|
|
750
845
|
@media (prefers-reduced-motion: reduce) {
|
|
751
|
-
.kui-toolbar-control-group[data-content="search"]
|
|
846
|
+
.kui-toolbar-control-group[data-content="search"],
|
|
847
|
+
.kui-toolbar-control-group[data-content="search"][data-sizing="grow"] {
|
|
752
848
|
transition-duration: 0s;
|
|
753
849
|
}
|
|
754
850
|
|
|
@@ -785,18 +881,18 @@
|
|
|
785
881
|
.kui-toolbar-control-group[data-content="avatar"]:is(
|
|
786
882
|
[data-single="true"],
|
|
787
883
|
:has(
|
|
788
|
-
> :is(button, wa-button):nth-child(
|
|
884
|
+
> :is(button, wa-button:not(:where(.kui-icon-button))):nth-child(
|
|
789
885
|
1 of :where(:not([data-toolbar-visibility-state]))
|
|
790
886
|
):where(:nth-last-child(1 of :not([data-toolbar-visibility-state])))
|
|
791
887
|
)
|
|
792
888
|
)
|
|
793
|
-
> :is(button, wa-button) {
|
|
889
|
+
> :is(button, wa-button:not(:where(.kui-icon-button))) {
|
|
794
890
|
color: transparent;
|
|
795
891
|
}
|
|
796
892
|
|
|
797
893
|
.kui-toolbar-control-group[data-content="avatar"][data-single="false"]:not(
|
|
798
894
|
:has(
|
|
799
|
-
> :is(button, wa-button):nth-child(
|
|
895
|
+
> :is(button, wa-button:not(:where(.kui-icon-button))):nth-child(
|
|
800
896
|
1 of :where(:not([data-toolbar-visibility-state]))
|
|
801
897
|
):where(:nth-last-child(1 of :not([data-toolbar-visibility-state])))
|
|
802
898
|
)
|
|
@@ -804,12 +900,12 @@
|
|
|
804
900
|
> button[aria-pressed="true"],
|
|
805
901
|
.kui-toolbar-control-group[data-content="avatar"][data-single="false"]:not(
|
|
806
902
|
:has(
|
|
807
|
-
> :is(button, wa-button):nth-child(
|
|
903
|
+
> :is(button, wa-button:not(:where(.kui-icon-button))):nth-child(
|
|
808
904
|
1 of :where(:not([data-toolbar-visibility-state]))
|
|
809
905
|
):where(:nth-last-child(1 of :not([data-toolbar-visibility-state])))
|
|
810
906
|
)
|
|
811
907
|
)
|
|
812
|
-
> wa-button[aria-pressed="true"]::part(base) {
|
|
908
|
+
> wa-button:not(:where(.kui-icon-button))[aria-pressed="true"]::part(base) {
|
|
813
909
|
color: transparent;
|
|
814
910
|
background-image: var(--kui-toolbar-avatar-image);
|
|
815
911
|
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;
|