@kerfjs/ui 5.0.0-beta.55 → 5.0.0-beta.57
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 +74 -41
- package/ai/application-ui-diagnostic-ids-v1.json +9 -1
- package/ai/application-ui-profile-sync.cjs +1 -1
- package/ai/application-ui-profile.defaults.json +63 -8
- package/ai/application-ui-profile.mjs +1 -1
- package/ai/compile-time-contracts-v1.json +2 -2
- package/ai/component-catalog.json +407 -80
- package/ai/component-catalog.schema.json +2 -0
- package/ai/component-class-owners.cjs +83 -0
- package/ai/component-composition-extension.d.ts +7 -0
- package/ai/component-composition-extension.schema.json +7 -0
- package/ai/{component-catalog-v2-overrides.json → component-composition-rules.json} +2 -1
- package/ai/{component-catalog-v2.d.ts → component-composition.d.ts} +9 -5
- package/ai/{component-catalog-v2.json → component-composition.json} +302 -61
- package/ai/{component-catalog-v2.schema.json → component-composition.schema.json} +21 -5
- package/ai/components/README.md +170 -0
- package/ai/components/application-tabs.md +65 -0
- package/ai/components/badge.md +72 -0
- package/ai/components/collapsible-panel.md +102 -0
- package/ai/components/content-item.md +90 -0
- package/ai/components/disclosure-arrow.md +77 -0
- package/ai/components/document-baseline.md +75 -0
- package/ai/components/empty-state.md +80 -0
- package/ai/components/feedback.md +71 -0
- package/ai/components/floating-toolbar.md +80 -0
- package/ai/components/foundation.md +65 -0
- package/ai/components/grid.md +93 -0
- package/ai/components/headers.md +63 -0
- package/ai/components/layout.md +75 -0
- package/ai/components/list-action-row.md +91 -0
- package/ai/components/list-header.md +89 -0
- package/ai/components/list-inset-control.md +74 -0
- package/ai/components/list-inset-text.md +72 -0
- package/ai/components/list-item.md +88 -0
- package/ai/components/list.md +103 -0
- package/ai/components/loading-spinner.md +72 -0
- package/ai/components/lucide-icon.md +66 -0
- package/ai/components/nav-stack.md +103 -0
- package/ai/components/pane.md +100 -0
- package/ai/components/popup-menu.md +82 -0
- package/ai/components/recipe-app-shell.md +57 -0
- package/ai/components/recipe-collapsible-sidebar.md +57 -0
- package/ai/components/recipe-compact-toolbar.md +57 -0
- package/ai/components/recipe-composer-form.md +57 -0
- package/ai/components/recipe-list-detail-dialog.md +57 -0
- package/ai/components/recipe-list-workspace-states.md +57 -0
- package/ai/components/recipe-loading-inspector.md +57 -0
- package/ai/components/recipe-navigation-sidebar.md +57 -0
- package/ai/components/recipe-navigation-stack.md +57 -0
- package/ai/components/recipe-workspace-header.md +57 -0
- package/ai/components/resize.md +101 -0
- package/ai/components/row.md +96 -0
- package/ai/components/segmented-control.md +82 -0
- package/ai/components/select.md +107 -0
- package/ai/components/skeleton.md +84 -0
- package/ai/components/spacer.md +86 -0
- package/ai/components/split-view.md +102 -0
- package/ai/components/state-banner.md +92 -0
- package/ai/components/sunken-panel.md +79 -0
- package/ai/components/surface-scaffold.md +78 -0
- package/ai/components/tab-bar.md +112 -0
- package/ai/components/tab-scaffold.md +94 -0
- package/ai/components/tabs.md +90 -0
- package/ai/components/text.md +82 -0
- package/ai/components/token-search-field.md +101 -0
- package/ai/components/toolbar-control-group.md +100 -0
- package/ai/components/toolbar-text.md +76 -0
- package/ai/components/toolbar.md +95 -0
- package/ai/components/value-table.md +72 -0
- package/ai/components/wa-accordion-item.md +55 -0
- package/ai/components/wa-accordion.md +65 -0
- package/ai/components/wa-animated-image.md +55 -0
- package/ai/components/wa-animation.md +55 -0
- package/ai/components/wa-avatar.md +55 -0
- package/ai/components/wa-badge.md +55 -0
- package/ai/components/wa-breadcrumb-item.md +53 -0
- package/ai/components/wa-breadcrumb.md +55 -0
- package/ai/components/wa-button-group.md +59 -0
- package/ai/components/wa-button.md +55 -0
- package/ai/components/wa-callout.md +58 -0
- package/ai/components/wa-card.md +59 -0
- package/ai/components/wa-carousel-item.md +53 -0
- package/ai/components/wa-carousel.md +55 -0
- package/ai/components/wa-checkbox-group.md +55 -0
- package/ai/components/wa-checkbox.md +55 -0
- package/ai/components/wa-color-picker.md +55 -0
- package/ai/components/wa-comparison.md +55 -0
- package/ai/components/wa-copy-button.md +55 -0
- package/ai/components/wa-details.md +61 -0
- package/ai/components/wa-dialog.md +59 -0
- package/ai/components/wa-divider.md +53 -0
- package/ai/components/wa-drawer.md +55 -0
- package/ai/components/wa-dropdown-item.md +60 -0
- package/ai/components/wa-dropdown.md +60 -0
- package/ai/components/wa-format-bytes.md +53 -0
- package/ai/components/wa-format-date.md +53 -0
- package/ai/components/wa-format-number.md +53 -0
- package/ai/components/wa-icon.md +58 -0
- package/ai/components/wa-include.md +53 -0
- package/ai/components/wa-input.md +59 -0
- package/ai/components/wa-intersection-observer.md +53 -0
- package/ai/components/wa-known-date.md +53 -0
- package/ai/components/wa-markdown.md +53 -0
- package/ai/components/wa-mutation-observer.md +53 -0
- package/ai/components/wa-number-input.md +55 -0
- package/ai/components/wa-option.md +59 -0
- package/ai/components/wa-otp-input.md +53 -0
- package/ai/components/wa-page.md +53 -0
- package/ai/components/wa-pagination.md +55 -0
- package/ai/components/wa-popover.md +55 -0
- package/ai/components/wa-popup.md +53 -0
- package/ai/components/wa-progress-bar.md +53 -0
- package/ai/components/wa-progress-ring.md +53 -0
- package/ai/components/wa-qr-code.md +53 -0
- package/ai/components/wa-radio-group.md +59 -0
- package/ai/components/wa-radio.md +55 -0
- package/ai/components/wa-random-content.md +53 -0
- package/ai/components/wa-rating.md +55 -0
- package/ai/components/wa-relative-time.md +53 -0
- package/ai/components/wa-resize-observer.md +53 -0
- package/ai/components/wa-scroller.md +53 -0
- package/ai/components/wa-select.md +63 -0
- package/ai/components/wa-skeleton.md +53 -0
- package/ai/components/wa-slider.md +55 -0
- package/ai/components/wa-spinner.md +58 -0
- package/ai/components/wa-split-panel.md +58 -0
- package/ai/components/wa-switch.md +53 -0
- package/ai/components/wa-tab-group.md +69 -0
- package/ai/components/wa-tab-panel.md +60 -0
- package/ai/components/wa-tab.md +59 -0
- package/ai/components/wa-tag.md +59 -0
- package/ai/components/wa-textarea.md +53 -0
- package/ai/components/wa-time-input.md +55 -0
- package/ai/components/wa-toast-item.md +60 -0
- package/ai/components/wa-toast.md +60 -0
- package/ai/components/wa-tooltip.md +55 -0
- package/ai/components/wa-tree-item.md +55 -0
- package/ai/components/wa-tree.md +55 -0
- package/ai/components/wa-zoomable-frame.md +55 -0
- package/ai/components/workbench.md +114 -0
- package/ai/public-api-signatures-v1.md +572 -101
- package/ai/skill.md +107 -52
- package/ai/webawesome-jsx-signatures-v1.md +8 -2
- package/analyzer/component-ownership.d.mts +56 -0
- package/analyzer/component-ownership.mjs +184 -0
- package/analyzer/index.d.mts +3 -0
- package/analyzer/index.mjs +274 -20
- package/analyzer/selectors.d.mts +21 -0
- package/analyzer/selectors.mjs +212 -0
- package/dist/app-tab.js +1 -1
- package/dist/badge.d.ts +35 -7
- package/dist/badge.js +1 -1
- package/dist/browser/catalog.js +25 -0
- package/dist/browser/collapsible-panel.js +7 -0
- package/dist/browser/content-item.js +3 -0
- package/dist/browser/nav-stack.js +8 -0
- package/dist/browser/select.js +1 -0
- package/dist/browser/split-view.js +10 -0
- package/dist/browser/tab-scaffold.js +4 -0
- package/dist/browser/workbench.js +10 -0
- package/dist/catalog-resources.d.ts +12 -1
- package/dist/catalog.d.ts +14 -3
- package/dist/catalog.js +53 -43
- package/dist/catalog.js.map +1 -1
- package/dist/{chunk-WZ2GLEY4.js → chunk-2G2ZJQYK.js} +2 -14
- package/dist/chunk-2G2ZJQYK.js.map +1 -0
- package/dist/{chunk-R754MHXX.js → chunk-553ASUK6.js} +8 -8
- package/dist/chunk-553ASUK6.js.map +1 -0
- package/dist/{chunk-D7GWXIAS.js → chunk-5I7QGQVT.js} +1 -1
- package/dist/chunk-5I7QGQVT.js.map +1 -0
- package/dist/{chunk-RNRUVPJ3.js → chunk-63ZWBGE3.js} +3 -2
- package/dist/chunk-63ZWBGE3.js.map +1 -0
- package/dist/{chunk-44IG7PFV.js → chunk-6CINWX2E.js} +3 -3
- package/dist/{chunk-44IG7PFV.js.map → chunk-6CINWX2E.js.map} +1 -1
- package/dist/{chunk-MTM43SJO.js → chunk-6YFHCLHG.js} +2 -2
- package/dist/chunk-6YFHCLHG.js.map +1 -0
- package/dist/{chunk-C2FAYFDE.js → chunk-AGXQQFKZ.js} +2 -2
- package/dist/{chunk-C2FAYFDE.js.map → chunk-AGXQQFKZ.js.map} +1 -1
- package/dist/{chunk-ATHXW6RP.js → chunk-AHEG27M7.js} +2 -2
- package/dist/{chunk-ATHXW6RP.js.map → chunk-AHEG27M7.js.map} +1 -1
- package/dist/chunk-BFPBS5Y4.js +250 -0
- package/dist/chunk-BFPBS5Y4.js.map +1 -0
- package/dist/{chunk-5OLVUEND.js → chunk-DG6G5EPF.js} +4 -6
- package/dist/chunk-DG6G5EPF.js.map +1 -0
- package/dist/{chunk-LZXQVUGN.js → chunk-EVYKTVBQ.js} +5 -14
- package/dist/chunk-EVYKTVBQ.js.map +1 -0
- package/dist/{chunk-7GUQYHKA.js → chunk-EZVNC4J6.js} +7 -1
- package/dist/chunk-EZVNC4J6.js.map +1 -0
- package/dist/{chunk-RNZAKSME.js → chunk-F4QMLOXJ.js} +5 -4
- package/dist/chunk-F4QMLOXJ.js.map +1 -0
- package/dist/{chunk-EAX2GSS4.js → chunk-G2RKFVRB.js} +54 -20
- package/dist/chunk-G2RKFVRB.js.map +1 -0
- package/dist/chunk-JCV4GXWB.js +249 -0
- package/dist/chunk-JCV4GXWB.js.map +1 -0
- package/dist/chunk-K47P7QZC.js +17 -0
- package/dist/chunk-K47P7QZC.js.map +1 -0
- package/dist/{chunk-HMQ2ZDGG.js → chunk-KROD7KZK.js} +3 -2
- package/dist/chunk-KROD7KZK.js.map +1 -0
- package/dist/{chunk-5NDQABWK.js → chunk-M7QV3IHH.js} +3 -1
- package/dist/chunk-M7QV3IHH.js.map +1 -0
- package/dist/chunk-MA73TA6D.js +42 -0
- package/dist/chunk-MA73TA6D.js.map +1 -0
- package/dist/{chunk-ZMBU522F.js → chunk-MEY33VWB.js} +2 -2
- package/dist/{chunk-ZMBU522F.js.map → chunk-MEY33VWB.js.map} +1 -1
- package/dist/chunk-MP2GDBQZ.js +50 -0
- package/dist/chunk-MP2GDBQZ.js.map +1 -0
- package/dist/{chunk-3NBL3OUQ.js → chunk-NAPE7WUS.js} +2 -2
- package/dist/chunk-NAPE7WUS.js.map +1 -0
- package/dist/{chunk-BSKEH3UC.js → chunk-NBYTIVHS.js} +2 -2
- package/dist/{chunk-BSKEH3UC.js.map → chunk-NBYTIVHS.js.map} +1 -1
- package/dist/{chunk-T22EM4ET.js → chunk-OUK6QRDR.js} +71 -31
- package/dist/chunk-OUK6QRDR.js.map +1 -0
- package/dist/chunk-PWXNJS2B.js +115 -0
- package/dist/chunk-PWXNJS2B.js.map +1 -0
- package/dist/{chunk-GUIHMIT2.js → chunk-QOWG4ZCL.js} +5 -4
- package/dist/chunk-QOWG4ZCL.js.map +1 -0
- package/dist/{chunk-5I22LMCV.js → chunk-VZOFZPSO.js} +2 -2
- package/dist/chunk-VZOFZPSO.js.map +1 -0
- package/dist/{chunk-4BIMLITI.js → chunk-WLG6SSNT.js} +5 -3
- package/dist/chunk-WLG6SSNT.js.map +1 -0
- package/dist/{chunk-NE5JAOQS.js → chunk-WOUF7YXM.js} +3 -3
- package/dist/{chunk-NE5JAOQS.js.map → chunk-WOUF7YXM.js.map} +1 -1
- package/dist/{chunk-N7FHFNT6.js → chunk-XCO6YCYM.js} +34 -5
- package/dist/chunk-XCO6YCYM.js.map +1 -0
- package/dist/{chunk-TZ5IHWB2.js → chunk-XDKAYSVD.js} +5 -3
- package/dist/chunk-XDKAYSVD.js.map +1 -0
- package/dist/collapsible-panel.d.ts +14 -3
- package/dist/collapsible-panel.js +13 -16
- package/dist/collapsible-panel.js.map +1 -1
- package/dist/content-item.d.ts +46 -0
- package/dist/content-item.js +4 -0
- package/dist/content-item.js.map +1 -0
- package/dist/css-values.d.ts +5 -11
- package/dist/css-values.js +1 -1
- package/dist/disclosure-arrow.d.ts +4 -1
- package/dist/disclosure-arrow.js +1 -1
- package/dist/floating-toolbar.d.ts +17 -6
- package/dist/floating-toolbar.js +1 -1
- package/dist/grid.js +1 -1
- package/dist/help-tags-register.d.ts +13 -0
- package/dist/help-tags-register.js +9 -0
- package/dist/help-tags-register.js.map +1 -0
- package/dist/index.d.ts +7 -5
- package/dist/index.js +29 -26
- package/dist/list-action-row.js +2 -1
- package/dist/list-header.d.ts +14 -1
- package/dist/list-header.js +1 -1
- package/dist/list-inset-control.d.ts +1 -1
- package/dist/list-inset-control.js +1 -1
- package/dist/list-inset-text.d.ts +3 -10
- package/dist/list-inset-text.js +1 -1
- package/dist/list-item.js +2 -1
- package/dist/list.d.ts +10 -3
- package/dist/list.js +1 -1
- package/dist/nav-stack.d.ts +50 -5
- package/dist/nav-stack.js +4 -1
- package/dist/pane.d.ts +37 -2
- package/dist/pane.js +1 -1
- package/dist/{panel-toolbar-BFQxFITu.d.ts → panel-toolbar-BN4x0rth.d.ts} +13 -1
- package/dist/popup-menu-register.js +3 -2
- package/dist/popup-menu-register.js.map +1 -1
- package/dist/popup-menu.js +1 -1
- package/dist/row.d.ts +1 -1
- package/dist/row.js +1 -1
- package/dist/select-register.js +70 -3
- package/dist/select-register.js.map +1 -1
- package/dist/select.d.ts +46 -8
- package/dist/select.js +2 -1
- package/dist/{divider-sides-BzB6rphT.d.ts → sides-BPSWde0A.d.ts} +1 -3
- package/dist/skeleton.js +1 -1
- package/dist/spacer.js +1 -1
- package/dist/split-view.d.ts +31 -3
- package/dist/split-view.js +34 -5
- package/dist/split-view.js.map +1 -1
- package/dist/state-banner.js +1 -1
- package/dist/styles/app-tab.css +31 -0
- package/dist/styles/badge.css +32 -11
- package/dist/styles/catalog/components/catalog-example.css +1 -1
- package/dist/styles/catalog/components/catalog-stage.css +1 -1
- package/dist/styles/collapsible-panel.css +199 -42
- package/dist/styles/content-item.css +30 -0
- package/dist/styles/floating-toolbar.css +26 -2
- package/dist/styles/foundation.css +28 -19
- package/dist/styles/layout.css +1 -21
- package/dist/styles/list-action-row.css +13 -1
- package/dist/styles/list-header.css +0 -12
- package/dist/styles/list-inset-text.css +1 -2
- package/dist/styles/list-item.css +14 -1
- package/dist/styles/list.css +5 -5
- package/dist/styles/nav-stack.css +63 -71
- package/dist/styles/pane.css +83 -1
- package/dist/styles/popup-menu.css +229 -0
- package/dist/styles/resizable-region.css +70 -15
- package/dist/styles/select.css +60 -19
- package/dist/styles/skeleton.css +30 -3
- package/dist/styles/split-view.css +31 -32
- package/dist/styles/state-banner.css +0 -19
- package/dist/styles/surface-scaffold.css +8 -3
- package/dist/styles/tab-bar.css +79 -28
- package/dist/styles/tab-scaffold.css +60 -14
- package/dist/styles/text.css +17 -1
- package/dist/styles/token-search-field.css +4 -4
- package/dist/styles/toolbar-control-group.css +143 -69
- package/dist/styles/toolbar-text.css +21 -0
- package/dist/styles/toolbar.css +22 -37
- package/dist/styles/value-table.css +19 -2
- package/dist/styles/webawesome.css +3 -1
- package/dist/styles/workbench.css +145 -42
- package/dist/tab-scaffold.d.ts +46 -2
- package/dist/tab-scaffold.js +52 -16
- package/dist/tab-scaffold.js.map +1 -1
- package/dist/token-search-field.d.ts +4 -2
- package/dist/token-search-field.js +1 -1
- package/dist/toolbar-text.d.ts +7 -1
- package/dist/toolbar-text.js +1 -1
- package/dist/toolbar.d.ts +20 -5
- package/dist/toolbar.js +1 -1
- package/dist/{types-D6vzj-VT.d.ts → types-BuHELdXR.d.ts} +39 -6
- package/dist/value-table.js +1 -1
- package/dist/webawesome.d.ts +7 -1
- package/dist/wire-catalog.d.ts +15 -2
- package/dist/wire-catalog.js +12 -2
- package/dist/wire-catalog.js.map +1 -1
- package/dist/wire-scroll-dividers.d.ts +69 -0
- package/dist/wire-scroll-dividers.js +3 -0
- package/dist/wire-scroll-dividers.js.map +1 -0
- package/dist/wire-token-search-fields.js +1 -1
- package/dist/workbench.d.ts +60 -22
- package/dist/workbench.js +1 -1
- package/docs/accessibility.md +116 -7
- package/docs/app-layouts.md +18 -8
- package/docs/catalog.md +26 -7
- package/docs/collapsible-panel.md +32 -9
- package/docs/component-contract.md +182 -30
- package/docs/component-selection.md +59 -46
- package/docs/design/templates/empty-state/with-action-dark.svg +1 -1
- package/docs/design/templates/empty-state/with-action.svg +1 -1
- package/docs/design/templates/empty-state-dark.svg +1 -1
- package/docs/design/templates/empty-state.svg +1 -1
- package/docs/design/templates/list/compact-dark.svg +1 -1
- package/docs/design/templates/list/compact.svg +1 -1
- package/docs/design/templates/list/stack-dark.svg +1 -1
- package/docs/design/templates/list/stack.svg +1 -1
- package/docs/design/templates/list-action-row/default-dark.svg +1 -1
- package/docs/design/templates/list-action-row/default.svg +1 -1
- package/docs/design/templates/list-action-row/selected-dark.svg +1 -1
- package/docs/design/templates/list-action-row/selected.svg +1 -1
- 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/list-dark.svg +1 -1
- package/docs/design/templates/list-item/default-dark.svg +1 -1
- package/docs/design/templates/list-item/default.svg +1 -1
- package/docs/design/templates/list-item/selected-dark.svg +1 -1
- package/docs/design/templates/list-item/selected.svg +1 -1
- package/docs/design/templates/list-item/trailing-dark.svg +1 -1
- package/docs/design/templates/list-item/trailing.svg +1 -1
- package/docs/design/templates/list-item-dark.svg +1 -1
- package/docs/design/templates/list-item.svg +1 -1
- package/docs/design/templates/list.svg +1 -1
- package/docs/design/templates/tab-bar/workspace-tabs-dark.svg +1 -1
- package/docs/design/templates/tab-bar/workspace-tabs.svg +1 -1
- package/docs/design/templates/tab-bar-dark.svg +1 -1
- package/docs/design/templates/tab-bar.svg +1 -1
- package/docs/design/templates/value-table/details-dark.svg +1 -1
- package/docs/design/templates/value-table/details.svg +1 -1
- package/docs/design/templates/value-table-dark.svg +1 -1
- package/docs/design/templates/value-table.svg +1 -1
- package/docs/design-philosophy.md +31 -4
- package/docs/examples/application-ui-profile.json +4 -4
- package/docs/examples/command-palette-adapter.tsx +3 -2
- package/docs/examples/{component-catalog-extension-v2.json → component-composition-extension.json} +3 -3
- package/docs/layout.md +148 -29
- package/docs/nav-stack.md +77 -3
- package/docs/recipes.md +4 -3
- package/docs/split-view.md +54 -5
- package/docs/tab-scaffold.md +73 -2
- package/docs/type-contracts.md +21 -20
- package/docs/ui-analyzer.md +99 -5
- package/docs/ui-doctor.md +10 -0
- package/docs/ux-demo.md +2 -2
- package/docs/webawesome-theme.md +1 -2
- package/docs/workbench.md +57 -11
- package/doctor/index.mjs +6 -1
- package/llms.txt +117 -24
- package/package.json +29 -6
- package/ux-demo/recipes/collapsible-sidebar.tsx +3 -3
- package/ux-demo/recipes/composer-form.tsx +0 -1
- package/ux-demo/recipes/list-detail-dialog.tsx +0 -2
- package/ux-demo/recipes/list-workspace-states.tsx +0 -1
- package/ux-demo/recipes/loading-inspector.tsx +0 -1
- package/ux-demo/recipes/navigation-sidebar.tsx +3 -2
- package/ux-demo/recipes/navigation-stack.tsx +3 -2
- package/ux-demo/recipes/workspace-header.tsx +0 -1
- package/ai/component-catalog-extension-v2.d.ts +0 -7
- package/ai/component-catalog-extension-v2.schema.json +0 -7
- package/dist/chunk-3NBL3OUQ.js.map +0 -1
- package/dist/chunk-4BIMLITI.js.map +0 -1
- package/dist/chunk-5I22LMCV.js.map +0 -1
- package/dist/chunk-5NDQABWK.js.map +0 -1
- package/dist/chunk-5OLVUEND.js.map +0 -1
- package/dist/chunk-7GUQYHKA.js.map +0 -1
- package/dist/chunk-D7GWXIAS.js.map +0 -1
- package/dist/chunk-DQA5FMOX.js +0 -85
- package/dist/chunk-DQA5FMOX.js.map +0 -1
- package/dist/chunk-EAX2GSS4.js.map +0 -1
- package/dist/chunk-GUIHMIT2.js.map +0 -1
- package/dist/chunk-HMQ2ZDGG.js.map +0 -1
- package/dist/chunk-LZXQVUGN.js.map +0 -1
- package/dist/chunk-MTM43SJO.js.map +0 -1
- package/dist/chunk-N7FHFNT6.js.map +0 -1
- package/dist/chunk-R754MHXX.js.map +0 -1
- package/dist/chunk-RNRUVPJ3.js.map +0 -1
- package/dist/chunk-RNZAKSME.js.map +0 -1
- package/dist/chunk-T22EM4ET.js.map +0 -1
- package/dist/chunk-TZ5IHWB2.js.map +0 -1
- package/dist/chunk-WZ2GLEY4.js.map +0 -1
- package/dist/chunk-XD7DWYXG.js +0 -34
- package/dist/chunk-XD7DWYXG.js.map +0 -1
|
@@ -21,15 +21,17 @@
|
|
|
21
21
|
)
|
|
22
22
|
);
|
|
23
23
|
--kui-toolbar-item-radius: var(--kui-control-highlight-radius);
|
|
24
|
-
/*
|
|
25
|
-
|
|
26
|
-
group-owned focus ring stays concentric with the
|
|
27
|
-
group sizes to the child's width. A default slot is
|
|
28
|
-
2px inset; a compact slot is the full 32px padding
|
|
29
|
-
compact child also overlaps the 1px inline padding.
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
--_kui-toolbar-slot-
|
|
24
|
+
/* Context the group provides to a composed child (an icon-only Select, in
|
|
25
|
+
select.css): the control slot the child fills so it is inset evenly on
|
|
26
|
+
every side and the group-owned focus ring stays concentric with the
|
|
27
|
+
visible control. The group sizes to the child's width. A default slot is
|
|
28
|
+
40px tall inside the 2px inset; a compact slot is the full 32px padding
|
|
29
|
+
box, and a lone compact child also overlaps the 1px inline padding. The
|
|
30
|
+
values are named after the group that provides them; the child reads
|
|
31
|
+
them from its own stylesheet. */
|
|
32
|
+
--_kui-toolbar-control-group-slot-height: 2.5rem;
|
|
33
|
+
--_kui-toolbar-control-group-slot-overlap: 0px;
|
|
34
|
+
--_kui-toolbar-control-group-slot-radius: var(--kui-toolbar-item-radius);
|
|
33
35
|
display: inline-flex;
|
|
34
36
|
height: var(--kui-toolbar-group-size, calc(2px + 2.625rem));
|
|
35
37
|
min-width: var(--kui-toolbar-group-size, calc(2px + 2.625rem));
|
|
@@ -44,6 +46,23 @@
|
|
|
44
46
|
gap: 0;
|
|
45
47
|
}
|
|
46
48
|
|
|
49
|
+
/* In a Toolbar zone, a group shorter than the toolbar's control band (the
|
|
50
|
+
`--_kui-toolbar-band` the Toolbar provides) takes half the difference as a
|
|
51
|
+
top margin, so it centers in the band by its own size. */
|
|
52
|
+
:is(.kui-toolbar__leading, .kui-toolbar__center, .kui-toolbar__trailing)
|
|
53
|
+
> .kui-toolbar-control-group {
|
|
54
|
+
margin-block-start: max(
|
|
55
|
+
0px,
|
|
56
|
+
calc(
|
|
57
|
+
(
|
|
58
|
+
var(--_kui-toolbar-band) -
|
|
59
|
+
var(--kui-toolbar-group-size, calc(2px + 2.625rem))
|
|
60
|
+
) /
|
|
61
|
+
2
|
|
62
|
+
)
|
|
63
|
+
);
|
|
64
|
+
}
|
|
65
|
+
|
|
47
66
|
.kui-toolbar-control-group[data-visibility="compact-only"] {
|
|
48
67
|
display: none;
|
|
49
68
|
}
|
|
@@ -80,9 +99,9 @@
|
|
|
80
99
|
}
|
|
81
100
|
.kui-toolbar-control-group[data-size="compact"] {
|
|
82
101
|
--kui-toolbar-group-size: 2.125rem;
|
|
83
|
-
--_kui-toolbar-slot-height: 2rem;
|
|
84
|
-
--_kui-toolbar-slot-overlap: 1px;
|
|
85
|
-
--_kui-toolbar-slot-radius: max(
|
|
102
|
+
--_kui-toolbar-control-group-slot-height: 2rem;
|
|
103
|
+
--_kui-toolbar-control-group-slot-overlap: 1px;
|
|
104
|
+
--_kui-toolbar-control-group-slot-radius: max(
|
|
86
105
|
0px,
|
|
87
106
|
calc(var(--kui-toolbar-group-radius) - 1px)
|
|
88
107
|
);
|
|
@@ -121,13 +140,15 @@
|
|
|
121
140
|
display: flex;
|
|
122
141
|
gap: var(--kui-space-xs);
|
|
123
142
|
}
|
|
124
|
-
.kui-toolbar-control-group[data-content="mixed"]
|
|
143
|
+
.kui-toolbar-control-group[data-content="mixed"]
|
|
144
|
+
wa-button:not(:where(.kui-popup-menu > *)) {
|
|
125
145
|
line-height: normal;
|
|
126
146
|
}
|
|
127
147
|
/* Toolbar controls never wrap. Web Awesome's label part is a plain block, so a
|
|
128
148
|
slotted icon (a block SVG) and its text would otherwise stack vertically —
|
|
129
149
|
lay them out on one row the way native mixed buttons already are. */
|
|
130
|
-
.kui-toolbar-control-group
|
|
150
|
+
.kui-toolbar-control-group
|
|
151
|
+
wa-button:not(:where(.kui-popup-menu > *))::part(label) {
|
|
131
152
|
display: inline-flex;
|
|
132
153
|
align-items: center;
|
|
133
154
|
gap: var(--kui-space-xs);
|
|
@@ -183,11 +204,15 @@
|
|
|
183
204
|
background: transparent;
|
|
184
205
|
}
|
|
185
206
|
|
|
186
|
-
.
|
|
187
|
-
|
|
207
|
+
/* The group lays out its own native and raw Web Awesome children. A composed
|
|
208
|
+
PopupMenu (`wa-dropdown.kui-popup-menu`) or Select sizes itself in the
|
|
209
|
+
group's context from its own stylesheet (popup-menu.css, select.css); the
|
|
210
|
+
group names those children by class only to key its own state on them. */
|
|
211
|
+
.kui-toolbar-control-group > :is(button, wa-button, .kui-toolbar-action-link),
|
|
212
|
+
.kui-toolbar-control-group > wa-dropdown:not(.kui-popup-menu) {
|
|
188
213
|
flex: 0 0 auto;
|
|
189
214
|
}
|
|
190
|
-
.kui-toolbar-control-group > wa-dropdown {
|
|
215
|
+
.kui-toolbar-control-group > wa-dropdown:not(.kui-popup-menu) {
|
|
191
216
|
display: inline-flex;
|
|
192
217
|
}
|
|
193
218
|
|
|
@@ -268,7 +293,7 @@
|
|
|
268
293
|
}
|
|
269
294
|
|
|
270
295
|
.kui-toolbar-control-group > button svg,
|
|
271
|
-
.kui-toolbar-control-group wa-button > svg,
|
|
296
|
+
.kui-toolbar-control-group wa-button:not(:where(.kui-popup-menu > *)) > svg,
|
|
272
297
|
.kui-toolbar-control-group > .kui-toolbar-action-link svg {
|
|
273
298
|
display: block;
|
|
274
299
|
width: 1rem;
|
|
@@ -276,34 +301,43 @@
|
|
|
276
301
|
}
|
|
277
302
|
|
|
278
303
|
/* Nested Web Awesome buttons take the group's control height, not the theme's
|
|
279
|
-
44px standalone control height.
|
|
280
|
-
|
|
304
|
+
44px standalone control height. The group's `wa-button` rules style only raw
|
|
305
|
+
buttons: a composed PopupMenu's trigger (`.kui-popup-menu > wa-button`) is
|
|
306
|
+
excluded inside a zero-specificity `:where()` and takes the same metrics
|
|
307
|
+
from popup-menu.css. */
|
|
308
|
+
.kui-toolbar-control-group wa-button:not(:where(.kui-popup-menu > *)) {
|
|
281
309
|
--wa-form-control-height: 2.5rem;
|
|
282
310
|
}
|
|
283
|
-
.kui-toolbar-control-group[data-size="compact"]
|
|
311
|
+
.kui-toolbar-control-group[data-size="compact"]
|
|
312
|
+
wa-button:not(:where(.kui-popup-menu > *)) {
|
|
284
313
|
--wa-form-control-height: 2rem;
|
|
285
314
|
}
|
|
286
315
|
|
|
287
316
|
.kui-toolbar-control-group > wa-button,
|
|
288
|
-
.kui-toolbar-control-group > wa-dropdown,
|
|
289
|
-
.kui-toolbar-control-group > wa-dropdown > wa-button,
|
|
290
|
-
.kui-toolbar-control-group
|
|
317
|
+
.kui-toolbar-control-group > wa-dropdown:not(.kui-popup-menu),
|
|
318
|
+
.kui-toolbar-control-group > wa-dropdown:not(.kui-popup-menu) > wa-button,
|
|
319
|
+
.kui-toolbar-control-group
|
|
320
|
+
> wa-dropdown:not(.kui-popup-menu)
|
|
321
|
+
> wa-button::part(base) {
|
|
291
322
|
min-width: 2.5rem;
|
|
292
323
|
height: 2.5rem;
|
|
293
324
|
}
|
|
294
325
|
.kui-toolbar-control-group[data-size="compact"] > button,
|
|
295
326
|
.kui-toolbar-control-group[data-size="compact"] > .kui-toolbar-action-link,
|
|
296
327
|
.kui-toolbar-control-group[data-size="compact"] > wa-button,
|
|
297
|
-
.kui-toolbar-control-group[data-size="compact"] > wa-dropdown,
|
|
298
|
-
.kui-toolbar-control-group[data-size="compact"] > wa-dropdown > wa-button,
|
|
299
328
|
.kui-toolbar-control-group[data-size="compact"]
|
|
300
|
-
> wa-dropdown
|
|
329
|
+
> wa-dropdown:not(.kui-popup-menu),
|
|
330
|
+
.kui-toolbar-control-group[data-size="compact"]
|
|
331
|
+
> wa-dropdown:not(.kui-popup-menu)
|
|
332
|
+
> wa-button,
|
|
333
|
+
.kui-toolbar-control-group[data-size="compact"]
|
|
334
|
+
> wa-dropdown:not(.kui-popup-menu)
|
|
301
335
|
> wa-button::part(base),
|
|
302
336
|
.kui-toolbar-control-group[data-size="compact"][data-nested-dropdown="true"]
|
|
303
|
-
wa-dropdown
|
|
337
|
+
wa-dropdown:not(.kui-popup-menu)
|
|
304
338
|
wa-button,
|
|
305
339
|
.kui-toolbar-control-group[data-size="compact"][data-nested-dropdown="true"]
|
|
306
|
-
wa-dropdown
|
|
340
|
+
wa-dropdown:not(.kui-popup-menu)
|
|
307
341
|
wa-button::part(base) {
|
|
308
342
|
min-width: 2rem;
|
|
309
343
|
height: 2rem;
|
|
@@ -317,14 +351,20 @@
|
|
|
317
351
|
padding-inline: 0;
|
|
318
352
|
}
|
|
319
353
|
|
|
320
|
-
|
|
354
|
+
/* `standard` keeps each menu's own standard inset: a raw wa-dropdown takes the
|
|
355
|
+
8px surface inset, while a PopupMenu keeps the Select listbox inset it
|
|
356
|
+
shares (popup-menu.css). The explicit compact and list-zero choices apply to
|
|
357
|
+
every nested menu; a PopupMenu applies them to itself (popup-menu.css). */
|
|
358
|
+
.kui-toolbar-control-group[data-menu-inset="standard"]
|
|
359
|
+
wa-dropdown:not(.kui-popup-menu)::part(menu) {
|
|
321
360
|
padding: var(--kui-wa-surface-inset, 0.5rem);
|
|
322
361
|
}
|
|
323
|
-
.kui-toolbar-control-group[data-menu-inset="compact"]
|
|
362
|
+
.kui-toolbar-control-group[data-menu-inset="compact"]
|
|
363
|
+
wa-dropdown:not(.kui-popup-menu)::part(menu) {
|
|
324
364
|
padding: 0.25rem;
|
|
325
365
|
}
|
|
326
366
|
.kui-toolbar-control-group[data-menu-inset="list-zero"]
|
|
327
|
-
wa-dropdown::part(menu) {
|
|
367
|
+
wa-dropdown:not(.kui-popup-menu)::part(menu) {
|
|
328
368
|
padding: 0;
|
|
329
369
|
}
|
|
330
370
|
|
|
@@ -345,7 +385,7 @@
|
|
|
345
385
|
}
|
|
346
386
|
|
|
347
387
|
.kui-toolbar-control-group[data-size="compact"][data-content="mixed"]
|
|
348
|
-
> wa-dropdown,
|
|
388
|
+
> wa-dropdown:not(.kui-popup-menu),
|
|
349
389
|
.kui-toolbar-control-group[data-size="compact"][data-content="mixed"]
|
|
350
390
|
> wa-button {
|
|
351
391
|
margin: -2px;
|
|
@@ -356,26 +396,26 @@
|
|
|
356
396
|
the fixed 32px base centers both outside its host, painting the label across
|
|
357
397
|
the separator and the caret beyond the group border. */
|
|
358
398
|
.kui-toolbar-control-group[data-content="mixed"][data-nested-dropdown="true"]
|
|
359
|
-
> wa-dropdown
|
|
399
|
+
> wa-dropdown:not(.kui-popup-menu)
|
|
360
400
|
> wa-button,
|
|
361
401
|
.kui-toolbar-control-group[data-content="mixed"][data-nested-dropdown="true"]
|
|
362
|
-
> wa-dropdown
|
|
402
|
+
> wa-dropdown:not(.kui-popup-menu)
|
|
363
403
|
> wa-button::part(base) {
|
|
364
404
|
min-width: max-content;
|
|
365
405
|
}
|
|
366
406
|
.kui-toolbar-control-group[data-content="mixed"][data-nested-dropdown="true"]
|
|
367
|
-
> wa-dropdown
|
|
407
|
+
> wa-dropdown:not(.kui-popup-menu)
|
|
368
408
|
> wa-button::part(base) {
|
|
369
409
|
width: max-content;
|
|
370
410
|
}
|
|
371
411
|
|
|
372
412
|
.kui-toolbar-control-group[data-single="true"]
|
|
373
|
-
> wa-dropdown
|
|
413
|
+
> wa-dropdown:not(.kui-popup-menu)
|
|
374
414
|
> wa-button::part(base) {
|
|
375
415
|
width: max-content;
|
|
376
416
|
}
|
|
377
417
|
|
|
378
|
-
.kui-toolbar-control-group wa-button {
|
|
418
|
+
.kui-toolbar-control-group wa-button:not(:where(.kui-popup-menu > *)) {
|
|
379
419
|
display: inline-flex;
|
|
380
420
|
line-height: 0;
|
|
381
421
|
align-items: center;
|
|
@@ -383,7 +423,8 @@
|
|
|
383
423
|
--wa-color-fill-quiet: transparent;
|
|
384
424
|
}
|
|
385
425
|
|
|
386
|
-
.kui-toolbar-control-group
|
|
426
|
+
.kui-toolbar-control-group
|
|
427
|
+
wa-button:not(:where(.kui-popup-menu > *))::part(base) {
|
|
387
428
|
/* Match min-width to the 40px height so an icon-only button's highlight is at
|
|
388
429
|
least a circle, not a vertical oval — the host is 40px wide but the base
|
|
389
430
|
part was sizing to its ~32px content. Text/caret buttons grow past it. */
|
|
@@ -397,20 +438,29 @@
|
|
|
397
438
|
);
|
|
398
439
|
}
|
|
399
440
|
|
|
400
|
-
.kui-toolbar-control-group
|
|
441
|
+
.kui-toolbar-control-group
|
|
442
|
+
wa-button:not(:where(.kui-popup-menu > *)):hover::part(base) {
|
|
401
443
|
border-color: var(--kui-toolbar-control-border);
|
|
402
444
|
background-color: var(--kui-toolbar-control-hover-background);
|
|
403
445
|
}
|
|
404
446
|
|
|
405
447
|
.kui-toolbar-control-group[data-single="true"]:has(
|
|
406
|
-
> :is(
|
|
448
|
+
> :is(
|
|
449
|
+
button,
|
|
450
|
+
wa-button,
|
|
451
|
+
.kui-popup-menu,
|
|
452
|
+
wa-dropdown:not(.kui-popup-menu),
|
|
453
|
+
.kui-select,
|
|
454
|
+
.kui-toolbar-action-link
|
|
455
|
+
)
|
|
407
456
|
):hover {
|
|
408
457
|
background-color: var(--kui-toolbar-control-hover-background);
|
|
409
458
|
}
|
|
410
459
|
|
|
411
460
|
.kui-toolbar-control-group[data-single="true"]
|
|
412
461
|
> :is(button, wa-button, .kui-toolbar-action-link):hover,
|
|
413
|
-
.kui-toolbar-control-group[data-single="true"]
|
|
462
|
+
.kui-toolbar-control-group[data-single="true"]
|
|
463
|
+
wa-button:not(:where(.kui-popup-menu > *)):hover::part(base) {
|
|
414
464
|
border-color: transparent;
|
|
415
465
|
background: transparent;
|
|
416
466
|
}
|
|
@@ -420,7 +470,7 @@
|
|
|
420
470
|
inner layer inset from the border (KF-J9P1ZD — a heading toolbar's lone Close/
|
|
421
471
|
Done action). */
|
|
422
472
|
.kui-toolbar-control-group:not([data-single="true"]):has(
|
|
423
|
-
> :is(button, wa-button,
|
|
473
|
+
> :is(button, wa-button, .kui-select, .kui-toolbar-action-link):only-child
|
|
424
474
|
):hover {
|
|
425
475
|
background-color: var(--kui-toolbar-control-hover-background);
|
|
426
476
|
}
|
|
@@ -432,19 +482,13 @@
|
|
|
432
482
|
.kui-toolbar-control-group:not([data-single="true"]):has(
|
|
433
483
|
> :is(button, wa-button):only-child
|
|
434
484
|
)
|
|
435
|
-
wa-button:hover::part(base) {
|
|
485
|
+
> wa-button:hover::part(base) {
|
|
436
486
|
border-color: transparent;
|
|
437
487
|
background: transparent;
|
|
438
488
|
}
|
|
439
489
|
|
|
440
|
-
/* A toolbar Select beside other controls highlights its own pill on hover
|
|
441
|
-
|
|
442
|
-
group (above). */
|
|
443
|
-
.kui-toolbar-control-group:not([data-single="true"])
|
|
444
|
-
> wa-select:not(:only-child):hover::part(combobox) {
|
|
445
|
-
border-color: var(--kui-toolbar-control-border);
|
|
446
|
-
background: var(--kui-toolbar-control-hover-background);
|
|
447
|
-
}
|
|
490
|
+
/* A toolbar Select beside other controls highlights its own pill on hover
|
|
491
|
+
(select.css); a lone Select instead lifts the whole group (above). */
|
|
448
492
|
|
|
449
493
|
/* A plain <button> child paints its own box for the selected state. */
|
|
450
494
|
.kui-toolbar-control-group[data-single="false"] > button[aria-pressed="true"] {
|
|
@@ -476,37 +520,67 @@
|
|
|
476
520
|
outline-offset: 1px;
|
|
477
521
|
}
|
|
478
522
|
|
|
479
|
-
/* With per-control rings, a composed Select paints its own ring
|
|
480
|
-
was told the group owns it: nothing else would show focus. It matches the
|
|
481
|
-
sibling controls' ring and offset. */
|
|
482
|
-
.kui-toolbar-control-group[data-focus-ring="control"]
|
|
483
|
-
> wa-select:focus-within::part(combobox) {
|
|
484
|
-
outline: var(--kui-focus-ring);
|
|
485
|
-
outline-offset: 1px;
|
|
486
|
-
}
|
|
523
|
+
/* With per-control rings, a composed Select paints its own ring (select.css). */
|
|
487
524
|
|
|
488
|
-
.kui-toolbar-control-group[data-focus-ring="outline"]:focus-within
|
|
525
|
+
.kui-toolbar-control-group[data-focus-ring="outline"]:focus-within:not(
|
|
526
|
+
:where(
|
|
527
|
+
:has(
|
|
528
|
+
.kui-select[open],
|
|
529
|
+
.kui-popup-menu[open],
|
|
530
|
+
wa-dropdown:not(.kui-popup-menu)[open]
|
|
531
|
+
)
|
|
532
|
+
)
|
|
533
|
+
) {
|
|
489
534
|
outline: var(--kui-focus-ring);
|
|
490
535
|
outline-offset: 1px;
|
|
491
536
|
}
|
|
492
537
|
|
|
493
|
-
.kui-toolbar-control-group[data-focus-ring="halo"]:focus-within
|
|
538
|
+
.kui-toolbar-control-group[data-focus-ring="halo"]:focus-within:not(
|
|
539
|
+
:where(
|
|
540
|
+
:has(
|
|
541
|
+
.kui-select[open],
|
|
542
|
+
.kui-popup-menu[open],
|
|
543
|
+
wa-dropdown:not(.kui-popup-menu)[open]
|
|
544
|
+
)
|
|
545
|
+
)
|
|
546
|
+
) {
|
|
494
547
|
border-color: var(--kui-color-text-link);
|
|
495
548
|
box-shadow: 0 0 0 3px
|
|
496
549
|
color-mix(in srgb, var(--kui-color-text-link) 22%, transparent);
|
|
497
550
|
}
|
|
498
551
|
|
|
499
|
-
/*
|
|
500
|
-
|
|
501
|
-
|
|
502
|
-
|
|
503
|
-
|
|
504
|
-
|
|
552
|
+
/* A group-owned ring (outline or halo) is off while a Select listbox or a
|
|
553
|
+
PopupMenu inside the group is open: the open popup shows focus, as the
|
|
554
|
+
per-control Select and PopupMenu triggers already do, and the ring returns
|
|
555
|
+
when the popup closes with focus still in the group. The exclusion sits in
|
|
556
|
+
a forgiving :where(), so an engine without :has() keeps the ring.
|
|
557
|
+
|
|
558
|
+
Chromium and WebKit do not propagate :focus-within from a focused
|
|
559
|
+
light-DOM child through a host's popup shadow tree, so a focused light-DOM
|
|
560
|
+
descendant also owns the group ring. Kept as separate rules so an engine
|
|
561
|
+
without :has() keeps the :focus-within ring. */
|
|
562
|
+
.kui-toolbar-control-group[data-focus-ring="outline"]:has(:focus):not(
|
|
563
|
+
:where(
|
|
564
|
+
:has(
|
|
565
|
+
.kui-select[open],
|
|
566
|
+
.kui-popup-menu[open],
|
|
567
|
+
wa-dropdown:not(.kui-popup-menu)[open]
|
|
568
|
+
)
|
|
569
|
+
)
|
|
570
|
+
) {
|
|
505
571
|
outline: var(--kui-focus-ring);
|
|
506
572
|
outline-offset: 1px;
|
|
507
573
|
}
|
|
508
574
|
|
|
509
|
-
.kui-toolbar-control-group[data-focus-ring="halo"]:has(:focus)
|
|
575
|
+
.kui-toolbar-control-group[data-focus-ring="halo"]:has(:focus):not(
|
|
576
|
+
:where(
|
|
577
|
+
:has(
|
|
578
|
+
.kui-select[open],
|
|
579
|
+
.kui-popup-menu[open],
|
|
580
|
+
wa-dropdown:not(.kui-popup-menu)[open]
|
|
581
|
+
)
|
|
582
|
+
)
|
|
583
|
+
) {
|
|
510
584
|
border-color: var(--kui-color-text-link);
|
|
511
585
|
box-shadow: 0 0 0 3px
|
|
512
586
|
color-mix(in srgb, var(--kui-color-text-link) 22%, transparent);
|
|
@@ -12,6 +12,27 @@
|
|
|
12
12
|
align-items: center;
|
|
13
13
|
}
|
|
14
14
|
|
|
15
|
+
/* In a Toolbar zone, a title fills the toolbar's control band (the
|
|
16
|
+
`--_kui-toolbar-band` the Toolbar provides) and centers its first line in
|
|
17
|
+
it; further lines of a wrapped title continue below the band. These rules
|
|
18
|
+
precede the size and wrap rules below, which keep their own minimum
|
|
19
|
+
heights. */
|
|
20
|
+
:is(.kui-toolbar__leading, .kui-toolbar__center, .kui-toolbar__trailing)
|
|
21
|
+
> .kui-toolbar-text {
|
|
22
|
+
height: auto;
|
|
23
|
+
min-height: var(--_kui-toolbar-band);
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
:is(.kui-toolbar__leading, .kui-toolbar__center, .kui-toolbar__trailing)
|
|
27
|
+
> .kui-toolbar-text[data-wrap="true"] {
|
|
28
|
+
padding-block: max(0px, calc((var(--_kui-toolbar-band) - 1.25em) / 2));
|
|
29
|
+
}
|
|
30
|
+
|
|
31
|
+
/* A filling title grows into its row's free space and truncates there. */
|
|
32
|
+
.kui-toolbar-text[data-fill="true"] {
|
|
33
|
+
flex: 1 1 auto;
|
|
34
|
+
}
|
|
35
|
+
|
|
15
36
|
/* The text lives in a block child, not directly in the flex box, so
|
|
16
37
|
`text-overflow: ellipsis` actually applies (it is a no-op on a flex item). */
|
|
17
38
|
.kui-toolbar-text__text {
|
package/dist/styles/toolbar.css
CHANGED
|
@@ -5,7 +5,11 @@
|
|
|
5
5
|
box-sizing: border-box;
|
|
6
6
|
color: var(--kui-color-text);
|
|
7
7
|
background: transparent;
|
|
8
|
-
|
|
8
|
+
/* The center track's minimum is `auto`, not 0, so it resolves to the center
|
|
9
|
+
zone's own min-width (its content width, below): when the zones do not all
|
|
10
|
+
fit, the auto leading track is what shrinks and its title truncates, and
|
|
11
|
+
the center group never overflows its track onto the leading identity. */
|
|
12
|
+
grid-template-columns: auto 1fr auto;
|
|
9
13
|
align-items: start;
|
|
10
14
|
gap: var(--kui-toolbar-gap, 0.5rem);
|
|
11
15
|
container: kui-toolbar / inline-size;
|
|
@@ -100,31 +104,31 @@
|
|
|
100
104
|
inset 1px 0 var(--_kui-toolbar-divider-left);
|
|
101
105
|
}
|
|
102
106
|
|
|
103
|
-
.kui-toolbar[divider-sides*="t"] {
|
|
107
|
+
.kui-toolbar:is([divider-sides*="t"], [data-scroll-divider*="t"]) {
|
|
104
108
|
--_kui-toolbar-divider-top: var(
|
|
105
109
|
--kui-toolbar-divider-color,
|
|
106
|
-
var(--kui-color-border)
|
|
110
|
+
var(--kui-color-neutral-border-normal)
|
|
107
111
|
);
|
|
108
112
|
}
|
|
109
113
|
|
|
110
|
-
.kui-toolbar[divider-sides*="r"] {
|
|
114
|
+
.kui-toolbar:is([divider-sides*="r"], [data-scroll-divider*="r"]) {
|
|
111
115
|
--_kui-toolbar-divider-right: var(
|
|
112
116
|
--kui-toolbar-divider-color,
|
|
113
|
-
var(--kui-color-border)
|
|
117
|
+
var(--kui-color-neutral-border-normal)
|
|
114
118
|
);
|
|
115
119
|
}
|
|
116
120
|
|
|
117
|
-
.kui-toolbar[divider-sides*="b"] {
|
|
121
|
+
.kui-toolbar:is([divider-sides*="b"], [data-scroll-divider*="b"]) {
|
|
118
122
|
--_kui-toolbar-divider-bottom: var(
|
|
119
123
|
--kui-toolbar-divider-color,
|
|
120
|
-
var(--kui-color-border)
|
|
124
|
+
var(--kui-color-neutral-border-normal)
|
|
121
125
|
);
|
|
122
126
|
}
|
|
123
127
|
|
|
124
|
-
.kui-toolbar[divider-sides*="l"] {
|
|
128
|
+
.kui-toolbar:is([divider-sides*="l"], [data-scroll-divider*="l"]) {
|
|
125
129
|
--_kui-toolbar-divider-left: var(
|
|
126
130
|
--kui-toolbar-divider-color,
|
|
127
|
-
var(--kui-color-border)
|
|
131
|
+
var(--kui-color-neutral-border-normal)
|
|
128
132
|
);
|
|
129
133
|
}
|
|
130
134
|
|
|
@@ -136,7 +140,10 @@
|
|
|
136
140
|
down. A growing item therefore never moves the other items or its own top.
|
|
137
141
|
Centering the zones in the toolbar row instead dropped every control to the
|
|
138
142
|
middle of a two-line title. The band is resolved here, on the toolbar, so a
|
|
139
|
-
compact group's own smaller group size never redefines it.
|
|
143
|
+
compact group's own smaller group size never redefines it.
|
|
144
|
+
`--_kui-toolbar-band` is context the toolbar provides: a ToolbarControlGroup
|
|
145
|
+
and a ToolbarText each center themselves in it from their own stylesheets
|
|
146
|
+
(toolbar-control-group.css, toolbar-text.css). */
|
|
140
147
|
.kui-toolbar {
|
|
141
148
|
--_kui-toolbar-band: var(--kui-toolbar-group-size, calc(2px + 2.625rem));
|
|
142
149
|
}
|
|
@@ -151,33 +158,6 @@
|
|
|
151
158
|
gap: var(--kui-toolbar-gap, 0.5rem);
|
|
152
159
|
}
|
|
153
160
|
|
|
154
|
-
:is(.kui-toolbar__leading, .kui-toolbar__center, .kui-toolbar__trailing)
|
|
155
|
-
> [data-component="toolbar-control-group"] {
|
|
156
|
-
margin-block-start: max(
|
|
157
|
-
0px,
|
|
158
|
-
calc(
|
|
159
|
-
(
|
|
160
|
-
var(--_kui-toolbar-band) -
|
|
161
|
-
var(--kui-toolbar-group-size, calc(2px + 2.625rem))
|
|
162
|
-
) /
|
|
163
|
-
2
|
|
164
|
-
)
|
|
165
|
-
);
|
|
166
|
-
}
|
|
167
|
-
|
|
168
|
-
/* A title fills the band and centers its first line in it; further lines of a
|
|
169
|
-
wrapped title continue below the band. */
|
|
170
|
-
:is(.kui-toolbar__leading, .kui-toolbar__center, .kui-toolbar__trailing)
|
|
171
|
-
> [data-component="toolbar-text"] {
|
|
172
|
-
height: auto;
|
|
173
|
-
min-height: var(--_kui-toolbar-band);
|
|
174
|
-
}
|
|
175
|
-
|
|
176
|
-
:is(.kui-toolbar__leading, .kui-toolbar__center, .kui-toolbar__trailing)
|
|
177
|
-
> [data-component="toolbar-text"][data-wrap="true"] {
|
|
178
|
-
padding-block: max(0px, calc((var(--_kui-toolbar-band) - 1.25em) / 2));
|
|
179
|
-
}
|
|
180
|
-
|
|
181
161
|
/* Pin each zone to its column so a display:none (empty) leading or center zone
|
|
182
162
|
doesn't let the trailing zone auto-place into the first column — which left an
|
|
183
163
|
extra gap + empty track to the trailing zone's right (KF-5BEF2M). The trailing
|
|
@@ -190,6 +170,11 @@
|
|
|
190
170
|
}
|
|
191
171
|
|
|
192
172
|
.kui-toolbar__center {
|
|
173
|
+
/* The center content never compresses below its own width (a group cannot
|
|
174
|
+
shrink or clip its controls). The track above takes this as its minimum, so
|
|
175
|
+
the leading identity gives way first, the way a platform toolbar truncates
|
|
176
|
+
its title before it overlaps the centered controls. */
|
|
177
|
+
min-width: min-content;
|
|
193
178
|
justify-content: center;
|
|
194
179
|
grid-column: 2;
|
|
195
180
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
.kui-value-table {
|
|
2
2
|
--kui-value-table-background: var(--kui-color-surface-lowered);
|
|
3
|
-
--kui-value-table-border: var(--kui-color-border);
|
|
3
|
+
--kui-value-table-border: var(--kui-color-neutral-border-normal);
|
|
4
4
|
--_kui-value-table-icon-size: var(--kui-value-table-icon-size, 1.5rem);
|
|
5
5
|
display: grid;
|
|
6
6
|
margin-block: 0;
|
|
@@ -22,7 +22,14 @@
|
|
|
22
22
|
padding-block: 0.5rem;
|
|
23
23
|
padding-inline: var(--_kui-value-table-inline-padding);
|
|
24
24
|
box-sizing: border-box;
|
|
25
|
-
|
|
25
|
+
/* Two content-sized tracks share the free space equally, and each stops
|
|
26
|
+
growing once its content fits. A short value keeps its whole width and a
|
|
27
|
+
long label takes the rest (ending a word that still does not fit in an
|
|
28
|
+
ellipsis); a short label keeps its width beside a long, wrapping value;
|
|
29
|
+
when both are long they split the row. A `1fr` value track would get
|
|
30
|
+
nothing until the label reached its full width, starving the value to 0px
|
|
31
|
+
beside a long single-word label. */
|
|
32
|
+
grid-template-columns: minmax(0, auto) minmax(0, auto);
|
|
26
33
|
align-items: center;
|
|
27
34
|
gap: var(--kui-layout-item-gap, 0.5rem);
|
|
28
35
|
}
|
|
@@ -42,7 +49,12 @@
|
|
|
42
49
|
}
|
|
43
50
|
.kui-value-table__row dt {
|
|
44
51
|
display: flex;
|
|
52
|
+
/* The label hugs its content (up to its column) rather than stretching, so
|
|
53
|
+
its box does not change with the value's width — a placeholder row keeps
|
|
54
|
+
the live row's label geometry beside its skeleton value. */
|
|
55
|
+
max-width: 100%;
|
|
45
56
|
min-width: 0;
|
|
57
|
+
justify-self: start;
|
|
46
58
|
color: var(--kui-color-text-quiet);
|
|
47
59
|
align-items: center;
|
|
48
60
|
gap: var(--kui-layout-item-gap, 0.5rem);
|
|
@@ -60,6 +72,11 @@
|
|
|
60
72
|
}
|
|
61
73
|
.kui-value-table__label {
|
|
62
74
|
min-width: 0;
|
|
75
|
+
overflow: hidden;
|
|
76
|
+
/* A multi-word label wraps at spaces; a single word wider than the label
|
|
77
|
+
column (a long component or file name) ends in an ellipsis instead of
|
|
78
|
+
running under the value. */
|
|
79
|
+
text-overflow: ellipsis;
|
|
63
80
|
}
|
|
64
81
|
.kui-value-table__row dd {
|
|
65
82
|
display: flex;
|
|
@@ -499,7 +499,9 @@
|
|
|
499
499
|
padding-inline: var(--kui-wa-control-inset) !important;
|
|
500
500
|
}
|
|
501
501
|
|
|
502
|
-
|
|
502
|
+
/* A PopupMenu item owns the Select option geometry instead (popup-menu.css),
|
|
503
|
+
so a command menu and a value list draw identical rows. */
|
|
504
|
+
wa-dropdown-item:not([data-component="popup-menu"] > *) {
|
|
503
505
|
padding-inline: var(--kui-wa-control-inset) !important;
|
|
504
506
|
}
|
|
505
507
|
|