@kerfjs/ui 5.0.0-beta.7 → 5.0.0-beta.70
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 +501 -139
- package/ai/application-ui-diagnostic-ids-v1.json +109 -0
- package/ai/application-ui-profile-sync.cjs +548 -0
- package/ai/application-ui-profile.d.mts +1 -0
- package/ai/application-ui-profile.d.ts +106 -0
- package/ai/application-ui-profile.defaults.json +96 -0
- package/ai/application-ui-profile.mjs +653 -0
- package/ai/application-ui-profile.schema.json +140 -0
- package/ai/catalog-authoring.json +36 -0
- package/ai/catalog-authoring.schema.json +109 -0
- package/ai/compile-time-contracts-v1.json +149 -0
- package/ai/compile-time-contracts-v1.schema.json +52 -0
- package/ai/component-catalog-extension.schema.json +104 -0
- package/ai/component-catalog.json +3910 -464
- package/ai/component-catalog.schema.json +92 -1
- 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-composition-rules.json +524 -0
- package/ai/component-composition.d.ts +127 -0
- package/ai/component-composition.json +7128 -0
- package/ai/component-composition.schema.json +399 -0
- package/ai/components/README.md +171 -0
- package/ai/components/application-tabs.md +65 -0
- package/ai/components/badge.md +72 -0
- package/ai/components/chip.md +72 -0
- package/ai/components/collapsible-panel.md +102 -0
- package/ai/components/content-item.md +93 -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 +82 -0
- package/ai/components/foundation.md +65 -0
- package/ai/components/grid.md +98 -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 +94 -0
- package/ai/components/list.md +105 -0
- package/ai/components/loading-spinner.md +73 -0
- package/ai/components/lucide-icon.md +78 -0
- package/ai/components/nav-stack.md +104 -0
- package/ai/components/pane.md +101 -0
- package/ai/components/popup-menu.md +171 -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 +106 -0
- package/ai/components/row.md +96 -0
- package/ai/components/segmented-control.md +82 -0
- package/ai/components/select.md +113 -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 +94 -0
- package/ai/components/sunken-panel.md +79 -0
- package/ai/components/surface-scaffold.md +78 -0
- package/ai/components/tab-bar.md +113 -0
- package/ai/components/tab-scaffold.md +94 -0
- package/ai/components/tabs.md +95 -0
- package/ai/components/text.md +85 -0
- package/ai/components/token-search-field.md +106 -0
- package/ai/components/toolbar-control-group.md +102 -0
- package/ai/components/toolbar-text.md +79 -0
- package/ai/components/toolbar.md +97 -0
- package/ai/components/value-table.md +73 -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 +118 -0
- package/ai/public-api-signatures-v1.md +2748 -210
- package/ai/skill.md +286 -66
- package/ai/webawesome-jsx-signatures-v1.md +9 -2
- package/analyzer/cli.mjs +49 -0
- package/analyzer/component-ownership.d.mts +72 -0
- package/analyzer/component-ownership.mjs +286 -0
- package/analyzer/index.d.mts +52 -0
- package/analyzer/index.mjs +2038 -0
- package/analyzer/loud-pairs.d.mts +49 -0
- package/analyzer/loud-pairs.mjs +357 -0
- package/analyzer/report.schema.json +66 -0
- package/analyzer/selectors.d.mts +21 -0
- package/analyzer/selectors.mjs +212 -0
- package/catalog-projection-cli.mjs +96 -0
- package/catalog-projection.d.mts +55 -0
- package/catalog-projection.mjs +62 -0
- package/dist/app-tab.d.ts +39 -4
- package/dist/app-tab.js +2 -1
- package/dist/badge.d.ts +52 -0
- package/dist/badge.js +3 -0
- package/dist/badge.js.map +1 -0
- package/dist/browser/badge.js +3 -0
- package/dist/browser/catalog.js +26 -0
- package/dist/browser/chip.js +3 -0
- package/dist/browser/collapsible-panel.js +9 -0
- package/dist/browser/content-item.js +3 -0
- package/dist/browser/floating-toolbar.js +3 -0
- package/dist/browser/grid.js +3 -0
- package/dist/browser/list-action-row.js +5 -0
- package/dist/browser/{menu-header.js → list-header.js} +4 -2
- package/dist/browser/list-inset-control.js +3 -0
- package/dist/browser/list-inset-text.js +3 -0
- package/dist/browser/list-item.js +5 -0
- package/dist/browser/list.js +3 -0
- package/dist/browser/{panel-header.js → nav-stack.js} +5 -3
- package/dist/browser/pane.js +3 -0
- package/dist/browser/popup-menu.js +3 -0
- package/dist/browser/row.js +3 -0
- package/dist/browser/segmented-control.js +0 -1
- package/dist/browser/select.js +1 -0
- package/dist/browser/spacer.js +3 -0
- package/dist/browser/split-view.js +11 -0
- package/dist/browser/state-banner.js +1 -0
- package/dist/browser/sunken-panel.js +3 -0
- package/dist/browser/surface-scaffold.js +3 -0
- package/dist/browser/tab-scaffold.js +4 -0
- package/dist/browser/text.js +3 -0
- package/dist/browser/toolbar-control-group.js +1 -0
- package/dist/browser/workbench.js +14 -0
- package/dist/catalog-resources.d.ts +48 -0
- package/dist/catalog-resources.js +22 -0
- package/dist/catalog-resources.js.map +1 -0
- package/dist/catalog.d.ts +92 -0
- package/dist/catalog.js +503 -0
- package/dist/catalog.js.map +1 -0
- package/dist/chip.d.ts +35 -0
- package/dist/chip.js +3 -0
- package/dist/chip.js.map +1 -0
- package/dist/chunk-2G2ZJQYK.js +152 -0
- package/dist/chunk-2G2ZJQYK.js.map +1 -0
- package/dist/chunk-3BYFWTP3.js +108 -0
- package/dist/chunk-3BYFWTP3.js.map +1 -0
- package/dist/chunk-47CKKLBE.js +34 -0
- package/dist/chunk-47CKKLBE.js.map +1 -0
- package/dist/chunk-4SQK27MR.js +202 -0
- package/dist/chunk-4SQK27MR.js.map +1 -0
- package/dist/chunk-5I7QGQVT.js +24 -0
- package/dist/chunk-5I7QGQVT.js.map +1 -0
- package/dist/chunk-6DFDTWGG.js +288 -0
- package/dist/chunk-6DFDTWGG.js.map +1 -0
- package/dist/chunk-7OKX3EF6.js +135 -0
- package/dist/chunk-7OKX3EF6.js.map +1 -0
- package/dist/chunk-AHEG27M7.js +66 -0
- package/dist/chunk-AHEG27M7.js.map +1 -0
- package/dist/chunk-AYUHMAI6.js +48 -0
- package/dist/chunk-AYUHMAI6.js.map +1 -0
- package/dist/chunk-B2ZMR7NY.js +85 -0
- package/dist/chunk-B2ZMR7NY.js.map +1 -0
- package/dist/chunk-BFPBS5Y4.js +250 -0
- package/dist/chunk-BFPBS5Y4.js.map +1 -0
- package/dist/chunk-DB5ADJKF.js +775 -0
- package/dist/chunk-DB5ADJKF.js.map +1 -0
- package/dist/chunk-DC6CN2DS.js +123 -0
- package/dist/chunk-DC6CN2DS.js.map +1 -0
- package/dist/chunk-DG6G5EPF.js +35 -0
- package/dist/chunk-DG6G5EPF.js.map +1 -0
- package/dist/{chunk-56RJXPHG.js → chunk-G4S2QU6V.js} +7 -4
- package/dist/chunk-G4S2QU6V.js.map +1 -0
- package/dist/chunk-GLDWRCAM.js +49 -0
- package/dist/chunk-GLDWRCAM.js.map +1 -0
- package/dist/chunk-I3Q7KKYM.js +33 -0
- package/dist/chunk-I3Q7KKYM.js.map +1 -0
- package/dist/chunk-IA7TMD4Y.js +288 -0
- package/dist/chunk-IA7TMD4Y.js.map +1 -0
- package/dist/chunk-J3KGJ6P6.js +135 -0
- package/dist/chunk-J3KGJ6P6.js.map +1 -0
- package/dist/chunk-K47P7QZC.js +17 -0
- package/dist/chunk-K47P7QZC.js.map +1 -0
- package/dist/chunk-K67Y2JNF.js +222 -0
- package/dist/chunk-K67Y2JNF.js.map +1 -0
- package/dist/chunk-KCCEH7RF.js +492 -0
- package/dist/chunk-KCCEH7RF.js.map +1 -0
- package/dist/chunk-KLJKU6ZL.js +109 -0
- package/dist/chunk-KLJKU6ZL.js.map +1 -0
- package/dist/chunk-KVBRMEPM.js +44 -0
- package/dist/chunk-KVBRMEPM.js.map +1 -0
- package/dist/chunk-M6DEEBEF.js +156 -0
- package/dist/chunk-M6DEEBEF.js.map +1 -0
- package/dist/chunk-MEY33VWB.js +44 -0
- package/dist/chunk-MEY33VWB.js.map +1 -0
- package/dist/chunk-MP2GDBQZ.js +50 -0
- package/dist/chunk-MP2GDBQZ.js.map +1 -0
- package/dist/chunk-NC4CFOID.js +188 -0
- package/dist/chunk-NC4CFOID.js.map +1 -0
- package/dist/chunk-NCSWXG7G.js +80 -0
- package/dist/chunk-NCSWXG7G.js.map +1 -0
- package/dist/chunk-NN6GYOA2.js +47 -0
- package/dist/chunk-NN6GYOA2.js.map +1 -0
- package/dist/chunk-OXO2QJWV.js +55 -0
- package/dist/chunk-OXO2QJWV.js.map +1 -0
- package/dist/chunk-P7D3EMXM.js +52 -0
- package/dist/chunk-P7D3EMXM.js.map +1 -0
- package/dist/chunk-PSHUSWQH.js +18 -0
- package/dist/chunk-PSHUSWQH.js.map +1 -0
- package/dist/chunk-Q6YU3BT7.js +138 -0
- package/dist/chunk-Q6YU3BT7.js.map +1 -0
- package/dist/chunk-QJ5VFCW3.js +131 -0
- package/dist/chunk-QJ5VFCW3.js.map +1 -0
- package/dist/chunk-RGS4WX2M.js +44 -0
- package/dist/chunk-RGS4WX2M.js.map +1 -0
- package/dist/chunk-RNQNEENY.js +146 -0
- package/dist/chunk-RNQNEENY.js.map +1 -0
- package/dist/chunk-RVERAFFY.js +291 -0
- package/dist/chunk-RVERAFFY.js.map +1 -0
- package/dist/chunk-SMZGAPCU.js +70 -0
- package/dist/chunk-SMZGAPCU.js.map +1 -0
- package/dist/{chunk-7BR3DO2A.js → chunk-SRSJO5QE.js} +13 -4
- package/dist/chunk-SRSJO5QE.js.map +1 -0
- package/dist/chunk-T2E5WBCZ.js +482 -0
- package/dist/chunk-T2E5WBCZ.js.map +1 -0
- package/dist/chunk-TJK44RQC.js +452 -0
- package/dist/chunk-TJK44RQC.js.map +1 -0
- package/dist/chunk-UIDKY4UB.js +14 -0
- package/dist/chunk-UIDKY4UB.js.map +1 -0
- package/dist/chunk-V3DX3K65.js +43 -0
- package/dist/chunk-V3DX3K65.js.map +1 -0
- package/dist/chunk-VZOFZPSO.js +71 -0
- package/dist/chunk-VZOFZPSO.js.map +1 -0
- package/dist/chunk-W2AC6Q2A.js +83 -0
- package/dist/chunk-W2AC6Q2A.js.map +1 -0
- package/dist/chunk-WF75U3V4.js +33 -0
- package/dist/chunk-WF75U3V4.js.map +1 -0
- package/dist/chunk-WTSNV5RG.js +52 -0
- package/dist/chunk-WTSNV5RG.js.map +1 -0
- package/dist/{chunk-YGN7OMLT.js → chunk-X5QSICJ3.js} +8 -5
- package/dist/chunk-X5QSICJ3.js.map +1 -0
- package/dist/chunk-YDGNU2OD.js +61 -0
- package/dist/chunk-YDGNU2OD.js.map +1 -0
- package/dist/collapsible-panel.d.ts +133 -0
- package/dist/collapsible-panel.js +131 -0
- package/dist/collapsible-panel.js.map +1 -0
- package/dist/content-item.d.ts +81 -0
- package/dist/content-item.js +4 -0
- package/dist/content-item.js.map +1 -0
- package/dist/css-values.d.ts +107 -0
- package/dist/css-values.js +3 -0
- package/dist/css-values.js.map +1 -0
- package/dist/device-class.js +33 -5
- package/dist/device-class.js.map +1 -1
- package/dist/disclosure-arrow.d.ts +6 -1
- package/dist/disclosure-arrow.js +2 -1
- package/dist/empty-state.d.ts +5 -2
- package/dist/empty-state.js +2 -1
- package/dist/flex-alignment-4ms8ZbV8.d.ts +5 -0
- package/dist/floating-toolbar.d.ts +51 -0
- package/dist/floating-toolbar.js +3 -0
- package/dist/floating-toolbar.js.map +1 -0
- package/dist/grid.d.ts +50 -0
- package/dist/grid.js +5 -0
- package/dist/grid.js.map +1 -0
- 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 +34 -14
- package/dist/index.js +43 -23
- package/dist/{menu-action-row.d.ts → list-action-row.d.ts} +21 -9
- package/dist/list-action-row.js +8 -0
- package/dist/list-action-row.js.map +1 -0
- package/dist/list-header.d.ts +99 -0
- package/dist/list-header.js +10 -0
- package/dist/list-header.js.map +1 -0
- package/dist/list-inset-control.d.ts +22 -0
- package/dist/list-inset-control.js +3 -0
- package/dist/list-inset-control.js.map +1 -0
- package/dist/list-inset-text.d.ts +30 -0
- package/dist/list-inset-text.js +4 -0
- package/dist/list-inset-text.js.map +1 -0
- package/dist/list-item.d.ts +62 -0
- package/dist/list-item.js +8 -0
- package/dist/list-item.js.map +1 -0
- package/dist/list.d.ts +63 -0
- package/dist/list.js +6 -0
- package/dist/list.js.map +1 -0
- package/dist/loading-spinner.d.ts +9 -2
- package/dist/loading-spinner.js +2 -1
- package/dist/lucide-icon.d.ts +9 -2
- package/dist/lucide-icon.js +2 -1
- package/dist/nav-stack.d.ts +66 -10
- package/dist/nav-stack.js +6 -1
- package/dist/pane.d.ts +108 -0
- package/dist/pane.js +4 -0
- package/dist/pane.js.map +1 -0
- package/dist/panel-toolbar-DDKh4uKd.d.ts +72 -0
- package/dist/popup-menu-register.d.ts +9 -0
- package/dist/popup-menu-register.js +244 -0
- package/dist/popup-menu-register.js.map +1 -0
- package/dist/popup-menu.d.ts +100 -0
- package/dist/popup-menu.js +3 -0
- package/dist/popup-menu.js.map +1 -0
- package/dist/resizable-region.d.ts +32 -3
- package/dist/resizable-region.js +1 -1
- package/dist/row.d.ts +48 -0
- package/dist/row.js +6 -0
- package/dist/row.js.map +1 -0
- package/dist/segmented-control.d.ts +12 -9
- package/dist/segmented-control.js +1 -2
- package/dist/select-register.d.ts +5 -1
- package/dist/select-register.js +243 -2
- package/dist/select-register.js.map +1 -1
- package/dist/select.d.ts +102 -8
- package/dist/select.js +3 -1
- package/dist/semantic-content-BbzjvSu9.d.ts +14 -0
- package/dist/sides-BPSWde0A.d.ts +4 -0
- package/dist/skeleton.d.ts +14 -7
- package/dist/skeleton.js +2 -1
- package/dist/spacer.d.ts +18 -0
- package/dist/spacer.js +4 -0
- package/dist/spacer.js.map +1 -0
- package/dist/split-view.d.ts +39 -7
- package/dist/split-view.js +120 -10
- package/dist/split-view.js.map +1 -1
- package/dist/state-banner.d.ts +18 -6
- package/dist/state-banner.js +3 -1
- package/dist/styles/app-tab.css +221 -0
- package/dist/styles/badge.css +118 -0
- package/dist/styles/catalog/components/catalog-example-stack.css +9 -0
- package/dist/styles/catalog/components/catalog-example.css +168 -0
- package/dist/styles/catalog/components/catalog-stage.css +55 -0
- package/dist/styles/catalog/components/catalog.css +12 -0
- package/dist/styles/catalog.css +5 -0
- package/dist/styles/chip.css +132 -0
- package/dist/styles/collapsible-panel.css +575 -0
- package/dist/styles/content-item.css +75 -0
- package/dist/styles/document.css +23 -0
- package/dist/styles/floating-toolbar.css +119 -0
- package/dist/styles/foundation.css +178 -40
- package/dist/styles/grid.css +35 -0
- package/dist/styles/layout.css +3 -41
- package/dist/styles/list-action-row.css +258 -0
- package/dist/styles/list-header.css +229 -0
- package/dist/styles/list-inset-control.css +30 -0
- package/dist/styles/list-inset-text.css +29 -0
- package/dist/styles/list-item.css +255 -0
- package/dist/styles/list.css +133 -0
- package/dist/styles/loading-spinner.css +4 -0
- package/dist/styles/lucide-icon.css +5 -0
- package/dist/styles/nav-stack.css +172 -47
- package/dist/styles/pane.css +263 -0
- package/dist/styles/popup-menu.css +285 -0
- package/dist/styles/resizable-region.css +438 -4
- package/dist/styles/row.css +111 -0
- package/dist/styles/segmented-control.css +36 -9
- package/dist/styles/select.css +337 -21
- package/dist/styles/skeleton.css +64 -3
- package/dist/styles/spacer.css +11 -0
- package/dist/styles/split-view.css +114 -3
- package/dist/styles/state-banner.css +94 -19
- package/dist/styles/styles.css +13 -4
- package/dist/styles/sunken-panel.css +29 -0
- package/dist/styles/surface-scaffold.css +56 -0
- package/dist/styles/tab-bar.css +147 -9
- package/dist/styles/tab-scaffold.css +126 -3
- package/dist/styles/text.css +112 -0
- package/dist/styles/token-search-field.css +155 -55
- package/dist/styles/toolbar-control-group.css +608 -29
- package/dist/styles/toolbar-text.css +101 -8
- package/dist/styles/toolbar.css +334 -12
- package/dist/styles/value-table.css +34 -4
- package/dist/styles/webawesome.css +365 -10
- package/dist/styles/workbench.css +980 -7
- package/dist/sunken-panel.d.ts +27 -0
- package/dist/sunken-panel.js +3 -0
- package/dist/sunken-panel.js.map +1 -0
- package/dist/surface-scaffold.d.ts +30 -0
- package/dist/surface-scaffold.js +3 -0
- package/dist/surface-scaffold.js.map +1 -0
- package/dist/tab-bar.d.ts +39 -6
- package/dist/tab-bar.js +1 -1
- package/dist/tab-scaffold.d.ts +57 -7
- package/dist/tab-scaffold.js +83 -9
- package/dist/tab-scaffold.js.map +1 -1
- package/dist/text.d.ts +56 -0
- package/dist/text.js +3 -0
- package/dist/text.js.map +1 -0
- package/dist/token-search-field-CVGwDn2y.d.ts +154 -0
- package/dist/token-search-field.d.ts +3 -43
- package/dist/token-search-field.js +2 -1
- package/dist/token-search-model.d.ts +3 -0
- package/dist/token-search-model.js +3 -0
- package/dist/token-search-model.js.map +1 -0
- package/dist/toolbar-control-group.d.ts +77 -7
- package/dist/toolbar-control-group.js +3 -1
- package/dist/toolbar-text.d.ts +35 -4
- package/dist/toolbar-text.js +2 -1
- package/dist/toolbar.d.ts +59 -7
- package/dist/toolbar.js +1 -1
- package/dist/types-BuHELdXR.d.ts +117 -0
- package/dist/value-table.d.ts +11 -3
- package/dist/value-table.js +2 -1
- package/dist/webawesome.d.ts +8 -1
- package/dist/wire-catalog.d.ts +82 -0
- package/dist/wire-catalog.js +327 -0
- package/dist/wire-catalog.js.map +1 -0
- package/dist/wire-content-items.d.ts +11 -0
- package/dist/wire-content-items.js +114 -0
- package/dist/wire-content-items.js.map +1 -0
- package/dist/wire-nav-stack.d.ts +4 -1
- package/dist/wire-nav-stack.js +147 -7
- package/dist/wire-nav-stack.js.map +1 -1
- package/dist/wire-resizable-regions.d.ts +2 -1
- package/dist/wire-resizable-regions.js +2 -1
- package/dist/wire-scroll-dividers.d.ts +72 -0
- package/dist/wire-scroll-dividers.js +3 -0
- package/dist/wire-scroll-dividers.js.map +1 -0
- package/dist/wire-sidebar.d.ts +63 -0
- package/dist/wire-sidebar.js +231 -0
- package/dist/wire-sidebar.js.map +1 -0
- package/dist/wire-tab-bars.d.ts +19 -2
- package/dist/wire-tab-bars.js +1 -1
- package/dist/wire-tab-scaffold.js +9 -4
- package/dist/wire-tab-scaffold.js.map +1 -1
- package/dist/wire-token-search-fields.d.ts +65 -3
- package/dist/wire-token-search-fields.js +2 -1
- package/dist/wire-workbench.d.ts +116 -0
- package/dist/wire-workbench.js +6 -0
- package/dist/wire-workbench.js.map +1 -0
- package/dist/workbench.d.ts +244 -9
- package/dist/workbench.js +17 -15
- package/dist/workbench.js.map +1 -1
- package/docs/accessibility.md +476 -24
- package/docs/app-layouts.md +106 -8
- package/docs/apple-hig.md +1 -0
- package/docs/catalog.md +483 -0
- package/docs/collapsible-panel.md +371 -0
- package/docs/component-contract.md +658 -56
- package/docs/component-integration.md +75 -0
- package/docs/component-selection.md +529 -90
- package/docs/design/templates/empty-state/filtered-dark.svg +1 -0
- package/docs/design/templates/empty-state/filtered.svg +1 -0
- package/docs/design/templates/empty-state/with-action-dark.svg +1 -0
- package/docs/design/templates/empty-state/with-action.svg +1 -0
- package/docs/design/templates/empty-state-dark.svg +1 -0
- package/docs/design/templates/empty-state.svg +1 -0
- package/docs/design/templates/list/compact-dark.svg +1 -0
- package/docs/design/templates/list/compact.svg +1 -0
- package/docs/design/templates/list/stack-dark.svg +1 -0
- package/docs/design/templates/list/stack.svg +1 -0
- package/docs/design/templates/list-action-row/default-dark.svg +1 -0
- package/docs/design/templates/list-action-row/default.svg +1 -0
- package/docs/design/templates/list-action-row/selected-dark.svg +1 -0
- package/docs/design/templates/list-action-row/selected.svg +1 -0
- package/docs/design/templates/list-action-row-dark.svg +1 -0
- package/docs/design/templates/list-action-row.svg +1 -0
- package/docs/design/templates/list-dark.svg +1 -0
- package/docs/design/templates/list-header/action-dark.svg +1 -0
- package/docs/design/templates/list-header/action.svg +1 -0
- package/docs/design/templates/list-header/count-dark.svg +1 -0
- package/docs/design/templates/list-header/count.svg +1 -0
- package/docs/design/templates/list-header/inline-action-dark.svg +1 -0
- package/docs/design/templates/list-header/inline-action.svg +1 -0
- package/docs/design/templates/list-header/toggle-collapsed-dark.svg +1 -0
- package/docs/design/templates/list-header/toggle-collapsed.svg +1 -0
- package/docs/design/templates/list-header/toggle-expanded-dark.svg +1 -0
- package/docs/design/templates/list-header/toggle-expanded.svg +1 -0
- package/docs/design/templates/list-header-dark.svg +1 -0
- package/docs/design/templates/list-header.svg +1 -0
- package/docs/design/templates/list-item/default-dark.svg +1 -0
- package/docs/design/templates/list-item/default.svg +1 -0
- package/docs/design/templates/list-item/multiline-dark.svg +1 -0
- package/docs/design/templates/list-item/multiline.svg +1 -0
- package/docs/design/templates/list-item/selected-dark.svg +1 -0
- package/docs/design/templates/list-item/selected.svg +1 -0
- package/docs/design/templates/list-item/trailing-dark.svg +1 -0
- package/docs/design/templates/list-item/trailing.svg +1 -0
- package/docs/design/templates/list-item-dark.svg +1 -0
- package/docs/design/templates/list-item.svg +1 -0
- package/docs/design/templates/list.svg +1 -0
- package/docs/design/templates/segmented-control/equal-dark.svg +1 -0
- package/docs/design/templates/segmented-control/equal.svg +1 -0
- package/docs/design/templates/segmented-control/pill-small-dark.svg +1 -0
- package/docs/design/templates/segmented-control/pill-small.svg +1 -0
- package/docs/design/templates/segmented-control-dark.svg +1 -0
- package/docs/design/templates/segmented-control.svg +1 -0
- package/docs/design/templates/skeleton/avatar-dark.svg +1 -0
- package/docs/design/templates/skeleton/avatar.svg +1 -0
- package/docs/design/templates/skeleton/block-dark.svg +1 -0
- package/docs/design/templates/skeleton/block.svg +1 -0
- package/docs/design/templates/skeleton/lines-dark.svg +1 -0
- package/docs/design/templates/skeleton/lines.svg +1 -0
- package/docs/design/templates/skeleton-dark.svg +1 -0
- package/docs/design/templates/skeleton.svg +1 -0
- package/docs/design/templates/state-banner/danger-dark.svg +1 -0
- package/docs/design/templates/state-banner/danger.svg +1 -0
- package/docs/design/templates/state-banner/info-badge-dark.svg +1 -0
- package/docs/design/templates/state-banner/info-badge.svg +1 -0
- package/docs/design/templates/state-banner/info-dark.svg +1 -0
- package/docs/design/templates/state-banner/info.svg +1 -0
- package/docs/design/templates/state-banner/success-dark.svg +1 -0
- package/docs/design/templates/state-banner/success.svg +1 -0
- package/docs/design/templates/state-banner/warning-dark.svg +1 -0
- package/docs/design/templates/state-banner/warning.svg +1 -0
- package/docs/design/templates/state-banner-dark.svg +1 -0
- package/docs/design/templates/state-banner.svg +1 -0
- package/docs/design/templates/tab-bar/workspace-tabs-dark.svg +1 -0
- package/docs/design/templates/tab-bar/workspace-tabs.svg +1 -0
- package/docs/design/templates/tab-bar-dark.svg +1 -0
- package/docs/design/templates/tab-bar.svg +1 -0
- package/docs/design/templates/token-search-field/empty-dark.svg +1 -0
- package/docs/design/templates/token-search-field/empty.svg +1 -0
- package/docs/design/templates/token-search-field/tokens-dark.svg +1 -0
- package/docs/design/templates/token-search-field/tokens.svg +1 -0
- package/docs/design/templates/token-search-field-dark.svg +1 -0
- package/docs/design/templates/token-search-field.svg +1 -0
- package/docs/design/templates/toolbar/title-and-actions-dark.svg +1 -0
- package/docs/design/templates/toolbar/title-and-actions.svg +1 -0
- package/docs/design/templates/toolbar-control-group/borderless-single-dark.svg +1 -0
- package/docs/design/templates/toolbar-control-group/borderless-single.svg +1 -0
- package/docs/design/templates/toolbar-control-group/icon-buttons-dark.svg +1 -0
- package/docs/design/templates/toolbar-control-group/icon-buttons.svg +1 -0
- package/docs/design/templates/toolbar-control-group/push-buttons-dark.svg +1 -0
- package/docs/design/templates/toolbar-control-group/push-buttons.svg +1 -0
- package/docs/design/templates/toolbar-control-group/with-text-dark.svg +1 -0
- package/docs/design/templates/toolbar-control-group/with-text.svg +1 -0
- package/docs/design/templates/toolbar-control-group-dark.svg +1 -0
- package/docs/design/templates/toolbar-control-group.svg +1 -0
- package/docs/design/templates/toolbar-dark.svg +1 -0
- package/docs/design/templates/toolbar-text/default-dark.svg +1 -0
- package/docs/design/templates/toolbar-text/default.svg +1 -0
- package/docs/design/templates/toolbar-text/large-dark.svg +1 -0
- package/docs/design/templates/toolbar-text/large.svg +1 -0
- package/docs/design/templates/toolbar-text/small-dark.svg +1 -0
- package/docs/design/templates/toolbar-text/small.svg +1 -0
- package/docs/design/templates/toolbar-text-dark.svg +1 -0
- package/docs/design/templates/toolbar-text.svg +1 -0
- package/docs/design/templates/toolbar.svg +1 -0
- package/docs/design/templates/value-table/details-dark.svg +1 -0
- package/docs/design/templates/value-table/details.svg +1 -0
- package/docs/design/templates/value-table-dark.svg +1 -0
- package/docs/design/templates/value-table.svg +1 -0
- package/docs/design/templates.md +138 -0
- package/docs/design-philosophy.md +48 -20
- package/docs/device-class.md +10 -9
- package/docs/document-baseline.md +38 -0
- package/docs/examples/application-ui-profile.json +60 -0
- package/docs/examples/command-palette-adapter.tsx +69 -17
- package/docs/examples/component-catalog-extension.json +52 -0
- package/docs/examples/component-composition-extension.json +80 -0
- package/docs/layout.md +534 -59
- package/docs/nav-stack.md +138 -14
- package/docs/recipes.md +137 -54
- package/docs/split-view.md +74 -6
- package/docs/sunken-panel.md +87 -0
- package/docs/surface-scaffold.md +28 -0
- package/docs/tab-scaffold.md +99 -10
- package/docs/type-contracts.md +134 -0
- package/docs/ui-analyzer.md +347 -0
- package/docs/ui-doctor.md +128 -0
- package/docs/ui-evaluator.md +139 -0
- package/docs/ux-demo.md +41 -16
- package/docs/webawesome-theme.md +218 -16
- package/docs/workbench.md +608 -12
- package/doctor/cli.mjs +120 -0
- package/doctor/config.schema.json +72 -0
- package/doctor/eslint-diagnostics.d.mts +24 -0
- package/doctor/eslint-diagnostics.mjs +24 -0
- package/doctor/index.d.mts +121 -0
- package/doctor/index.mjs +1324 -0
- package/doctor/report.schema.json +118 -0
- package/evaluator/cli.mjs +89 -0
- package/evaluator/index.d.mts +90 -0
- package/evaluator/index.mjs +1203 -0
- package/evaluator/report.schema.json +152 -0
- package/llms.txt +445 -48
- package/package.json +249 -37
- package/scripts/component-catalog-extension-validation.mjs +28 -0
- package/traversal-exclusions.mjs +27 -0
- package/ux-demo/recipes/app-shell.tsx +205 -17
- package/ux-demo/recipes/collapsible-sidebar.tsx +260 -0
- package/ux-demo/recipes/compact-toolbar.tsx +135 -14
- package/ux-demo/recipes/composer-form.tsx +133 -21
- package/ux-demo/recipes/list-detail-dialog.tsx +282 -0
- package/ux-demo/recipes/list-workspace-states.tsx +183 -11
- package/ux-demo/recipes/loaders.ts +15 -5
- package/ux-demo/recipes/loading-inspector.tsx +204 -0
- package/ux-demo/recipes/mount-recipe.ts +28 -10
- package/ux-demo/recipes/navigation-sidebar.tsx +139 -13
- package/ux-demo/recipes/navigation-stack.tsx +79 -24
- package/ux-demo/recipes/types.ts +23 -2
- package/ux-demo/recipes/workspace-header.tsx +86 -5
- package/dist/browser/menu-action-row.js +0 -4
- package/dist/browser/menu-item.js +0 -4
- package/dist/chunk-2RJBFNB6.js +0 -172
- package/dist/chunk-2RJBFNB6.js.map +0 -1
- package/dist/chunk-2Z5TWHKQ.js +0 -34
- package/dist/chunk-2Z5TWHKQ.js.map +0 -1
- package/dist/chunk-3YD6ZNRA.js +0 -34
- package/dist/chunk-3YD6ZNRA.js.map +0 -1
- package/dist/chunk-55DATV3A.js +0 -10
- package/dist/chunk-55DATV3A.js.map +0 -1
- package/dist/chunk-56RJXPHG.js.map +0 -1
- package/dist/chunk-7BR3DO2A.js.map +0 -1
- package/dist/chunk-7LDCTU7D.js +0 -134
- package/dist/chunk-7LDCTU7D.js.map +0 -1
- package/dist/chunk-AQNKJRFH.js +0 -79
- package/dist/chunk-AQNKJRFH.js.map +0 -1
- package/dist/chunk-B24C4A6T.js +0 -22
- package/dist/chunk-B24C4A6T.js.map +0 -1
- package/dist/chunk-DAFFDO33.js +0 -14
- package/dist/chunk-DAFFDO33.js.map +0 -1
- package/dist/chunk-H6URQGJI.js +0 -42
- package/dist/chunk-H6URQGJI.js.map +0 -1
- package/dist/chunk-I7INRJO4.js +0 -17
- package/dist/chunk-I7INRJO4.js.map +0 -1
- package/dist/chunk-KJYXOTG3.js +0 -10
- package/dist/chunk-KJYXOTG3.js.map +0 -1
- package/dist/chunk-LC3YSAZC.js +0 -39
- package/dist/chunk-LC3YSAZC.js.map +0 -1
- package/dist/chunk-M5JRI6MN.js +0 -27
- package/dist/chunk-M5JRI6MN.js.map +0 -1
- package/dist/chunk-MBR3TYNL.js +0 -14
- package/dist/chunk-MBR3TYNL.js.map +0 -1
- package/dist/chunk-MFKMHK5W.js +0 -10
- package/dist/chunk-MFKMHK5W.js.map +0 -1
- package/dist/chunk-MQIZAD4A.js +0 -227
- package/dist/chunk-MQIZAD4A.js.map +0 -1
- package/dist/chunk-N3SUXLLS.js +0 -23
- package/dist/chunk-N3SUXLLS.js.map +0 -1
- package/dist/chunk-PONXLV5U.js +0 -19
- package/dist/chunk-PONXLV5U.js.map +0 -1
- package/dist/chunk-TZNCCM5H.js +0 -20
- package/dist/chunk-TZNCCM5H.js.map +0 -1
- package/dist/chunk-W2FK7ZNY.js +0 -26
- package/dist/chunk-W2FK7ZNY.js.map +0 -1
- package/dist/chunk-WVPYVDXY.js +0 -15
- package/dist/chunk-WVPYVDXY.js.map +0 -1
- package/dist/chunk-YGN7OMLT.js.map +0 -1
- package/dist/chunk-YKUUZPED.js +0 -24
- package/dist/chunk-YKUUZPED.js.map +0 -1
- package/dist/menu-action-row.js +0 -5
- package/dist/menu-action-row.js.map +0 -1
- package/dist/menu-header.d.ts +0 -43
- package/dist/menu-header.js +0 -7
- package/dist/menu-header.js.map +0 -1
- package/dist/menu-item.d.ts +0 -33
- package/dist/menu-item.js +0 -5
- package/dist/menu-item.js.map +0 -1
- package/dist/panel-header.d.ts +0 -28
- package/dist/panel-header.js +0 -7
- package/dist/panel-header.js.map +0 -1
- package/dist/styles/menu-action-row.css +0 -160
- package/dist/styles/menu-header.css +0 -160
- package/dist/styles/menu-item.css +0 -123
- package/dist/styles/panel-header.css +0 -64
- package/ux-demo/recipes/master-detail-dialog.tsx +0 -45
- package/ux-demo/recipes/recipes.css +0 -355
|
@@ -9,22 +9,61 @@
|
|
|
9
9
|
color: var(--kui-color-neutral-on-quiet);
|
|
10
10
|
font-weight: 650;
|
|
11
11
|
line-height: 1;
|
|
12
|
-
text-overflow: ellipsis;
|
|
13
|
-
white-space: nowrap;
|
|
14
12
|
align-items: center;
|
|
15
13
|
}
|
|
16
14
|
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
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
|
+
|
|
36
|
+
/* The text lives in a block child, not directly in the flex box, so
|
|
37
|
+
`text-overflow: ellipsis` actually applies (it is a no-op on a flex item). */
|
|
38
|
+
.kui-toolbar-text__text {
|
|
39
|
+
min-width: 0;
|
|
40
|
+
max-width: 100%;
|
|
41
|
+
overflow: hidden;
|
|
42
|
+
/* Keep the line box larger than the font's em square. Glyph ink can extend
|
|
43
|
+
below a 1em line box, so clipping for ellipsis must not also shave off
|
|
44
|
+
descenders such as g, j, p, q, and y. */
|
|
45
|
+
line-height: 1.2;
|
|
46
|
+
white-space: nowrap;
|
|
47
|
+
text-overflow: ellipsis;
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
.kui-toolbar-text:is([data-size="xlarge"], [data-size="xlarge-fixed"]) {
|
|
51
|
+
/* Both title sizes keep page/panel title color and geometry. Height grows to
|
|
52
|
+
their text instead of clipping ascenders in the default 40px box. */
|
|
21
53
|
height: auto;
|
|
22
54
|
min-height: 2.75rem;
|
|
23
55
|
color: var(--kui-color-text);
|
|
24
|
-
font-size: clamp(var(--kui-font-l), 2.3vw, var(--kui-font-2xl));
|
|
25
56
|
letter-spacing: -0.025em;
|
|
26
57
|
}
|
|
27
58
|
|
|
59
|
+
.kui-toolbar-text[data-size="xlarge"] {
|
|
60
|
+
font-size: clamp(var(--kui-font-l), 2.3vw, var(--kui-font-2xl));
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
.kui-toolbar-text[data-size="xlarge-fixed"] {
|
|
64
|
+
font-size: var(--kui-font-l);
|
|
65
|
+
}
|
|
66
|
+
|
|
28
67
|
.kui-toolbar-text[data-size="large"] {
|
|
29
68
|
font-size: var(--kui-font-m);
|
|
30
69
|
letter-spacing: -0.015em;
|
|
@@ -34,7 +73,61 @@
|
|
|
34
73
|
font-size: var(--kui-font-s);
|
|
35
74
|
}
|
|
36
75
|
|
|
76
|
+
/* Every size keeps the inherited UI sans stack: compact identity text is a
|
|
77
|
+
label, not code. (A monospace role here resolved through Web Awesome's
|
|
78
|
+
`ui-monospace, monospace` code stack; Chromium does not
|
|
79
|
+
recognize `ui-monospace`, so small labels fell back to generic monospace.) */
|
|
37
80
|
.kui-toolbar-text[data-size="small"] {
|
|
38
|
-
font-family: var(--kui-font-mono);
|
|
39
81
|
font-size: var(--kui-font-xs);
|
|
40
82
|
}
|
|
83
|
+
|
|
84
|
+
.kui-toolbar-text[data-size="xsmall"] {
|
|
85
|
+
font-size: var(--kui-font-2xs);
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
/* Single line, no ellipsis: hard-clip the overflow instead of showing …. */
|
|
89
|
+
.kui-toolbar-text[data-ellipsis="false"] .kui-toolbar-text__text {
|
|
90
|
+
text-overflow: clip;
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
/* Wrap onto multiple lines. The box grows to fit and switches from the centered
|
|
94
|
+
single-line row to a top-aligned block with readable leading; a min-height keeps
|
|
95
|
+
a one-line label at the toolbar row height. */
|
|
96
|
+
.kui-toolbar-text[data-wrap="true"] {
|
|
97
|
+
align-items: flex-start;
|
|
98
|
+
height: auto;
|
|
99
|
+
min-height: 2.5rem;
|
|
100
|
+
}
|
|
101
|
+
|
|
102
|
+
.kui-toolbar-text:is(
|
|
103
|
+
[data-size="xlarge"],
|
|
104
|
+
[data-size="xlarge-fixed"]
|
|
105
|
+
)[data-wrap="true"] {
|
|
106
|
+
min-height: 2.75rem;
|
|
107
|
+
}
|
|
108
|
+
|
|
109
|
+
.kui-toolbar-text[data-wrap="true"] .kui-toolbar-text__text {
|
|
110
|
+
white-space: normal;
|
|
111
|
+
line-height: 1.25;
|
|
112
|
+
}
|
|
113
|
+
|
|
114
|
+
/* Wrap capped to N lines with an ellipsis at the cut. `-webkit-line-clamp` needs
|
|
115
|
+
the box display and emits the … itself; the unprefixed `line-clamp` follows for
|
|
116
|
+
engines that ship it. */
|
|
117
|
+
.kui-toolbar-text[data-wrap="true"][data-max-lines] .kui-toolbar-text__text {
|
|
118
|
+
display: -webkit-box;
|
|
119
|
+
-webkit-box-orient: vertical;
|
|
120
|
+
-webkit-line-clamp: var(--kui-toolbar-text-max-lines);
|
|
121
|
+
line-clamp: var(--kui-toolbar-text-max-lines);
|
|
122
|
+
overflow: hidden;
|
|
123
|
+
}
|
|
124
|
+
|
|
125
|
+
/* Wrap capped to N lines without an ellipsis: clip at a max-height instead of
|
|
126
|
+
line-clamp (which always ellipsizes). */
|
|
127
|
+
.kui-toolbar-text[data-wrap="true"][data-max-lines][data-ellipsis="false"]
|
|
128
|
+
.kui-toolbar-text__text {
|
|
129
|
+
display: block;
|
|
130
|
+
-webkit-line-clamp: none;
|
|
131
|
+
line-clamp: none;
|
|
132
|
+
max-height: calc(var(--kui-toolbar-text-max-lines) * 1.25em);
|
|
133
|
+
}
|
package/dist/styles/toolbar.css
CHANGED
|
@@ -1,27 +1,169 @@
|
|
|
1
1
|
.kui-toolbar {
|
|
2
2
|
display: grid;
|
|
3
3
|
width: 100%;
|
|
4
|
-
min-height:
|
|
5
|
-
var(--kui-toolbar-group-size, calc(2px + 2.625rem)) +
|
|
6
|
-
(2 * var(--kui-toolbar-gap, 0.5rem))
|
|
7
|
-
);
|
|
8
|
-
padding: var(--kui-toolbar-gap, 0.5rem);
|
|
4
|
+
/* min-height and padding: see the safe-area rules below. */
|
|
9
5
|
box-sizing: border-box;
|
|
10
6
|
color: var(--kui-color-text);
|
|
11
7
|
background: transparent;
|
|
12
|
-
|
|
13
|
-
|
|
8
|
+
/* The center track's minimum is `auto`, not 0, so it resolves to the center
|
|
9
|
+
zone's own min-width (its content width, below): when the zones do not all
|
|
10
|
+
fit, the auto leading track is what shrinks and its title truncates, and
|
|
11
|
+
the center group never overflows its track onto the leading identity. */
|
|
12
|
+
grid-template-columns: auto 1fr auto;
|
|
13
|
+
align-items: start;
|
|
14
14
|
gap: var(--kui-toolbar-gap, 0.5rem);
|
|
15
15
|
container: kui-toolbar / inline-size;
|
|
16
16
|
font-family: var(--kui-font-sans);
|
|
17
17
|
}
|
|
18
18
|
|
|
19
|
+
/* Safe areas: a toolbar compensates only for the inline edges its owner hands
|
|
20
|
+
it through `--kui-edge-inset-inline-*` (a Pane header or footer does), so its
|
|
21
|
+
box and dividers keep reaching the edge while its zones clear the unsafe
|
|
22
|
+
area. Unset means none: a toolbar embedded in content never pads for the
|
|
23
|
+
device. An app bar or bottom bar at a screen edge claims its sides with
|
|
24
|
+
`safeAreaEdges`; each claimed side pads by the routed edge context, or the
|
|
25
|
+
full device inset when nothing routes it (the Pane rule), so the top bar of
|
|
26
|
+
a shell clears the status area. A Pane header or footer clears the context
|
|
27
|
+
for its children, so a claimed side there never double-insets. Its zones
|
|
28
|
+
then see a cleared context. */
|
|
29
|
+
.kui-toolbar {
|
|
30
|
+
--_kui-toolbar-safe-block-start: 0px;
|
|
31
|
+
--_kui-toolbar-safe-block-end: 0px;
|
|
32
|
+
--_kui-toolbar-safe-inline-start: var(--kui-edge-inset-inline-start, 0px);
|
|
33
|
+
--_kui-toolbar-safe-inline-end: var(--kui-edge-inset-inline-end, 0px);
|
|
34
|
+
/* The minimum height grows by any claimed block inset, so a toolbar a flex
|
|
35
|
+
column shrinks still keeps a whole control row clear of the unsafe area. */
|
|
36
|
+
min-height: calc(
|
|
37
|
+
var(--kui-toolbar-group-size, calc(2px + 2.625rem)) +
|
|
38
|
+
(2 * var(--kui-toolbar-inset, var(--kui-toolbar-gap, 0.5rem))) +
|
|
39
|
+
var(--_kui-toolbar-safe-block-start) + var(--_kui-toolbar-safe-block-end)
|
|
40
|
+
);
|
|
41
|
+
padding-block: calc(
|
|
42
|
+
var(--kui-toolbar-inset, var(--kui-toolbar-gap, 0.5rem)) +
|
|
43
|
+
var(--_kui-toolbar-safe-block-start)
|
|
44
|
+
)
|
|
45
|
+
calc(
|
|
46
|
+
var(--kui-toolbar-inset, var(--kui-toolbar-gap, 0.5rem)) +
|
|
47
|
+
var(--_kui-toolbar-safe-block-end)
|
|
48
|
+
);
|
|
49
|
+
padding-inline: calc(
|
|
50
|
+
var(--kui-toolbar-inset, var(--kui-toolbar-gap, 0.5rem)) +
|
|
51
|
+
var(--_kui-toolbar-safe-inline-start)
|
|
52
|
+
)
|
|
53
|
+
calc(
|
|
54
|
+
var(--kui-toolbar-inset, var(--kui-toolbar-gap, 0.5rem)) +
|
|
55
|
+
var(--_kui-toolbar-safe-inline-end)
|
|
56
|
+
);
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
.kui-toolbar[data-safe-area-block-start="true"] {
|
|
60
|
+
--_kui-toolbar-safe-block-start: var(
|
|
61
|
+
--kui-edge-inset-block-start,
|
|
62
|
+
var(--kui-safe-area-block-start, env(safe-area-inset-top, 0px))
|
|
63
|
+
);
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
.kui-toolbar[data-safe-area-block-end="true"] {
|
|
67
|
+
--_kui-toolbar-safe-block-end: var(
|
|
68
|
+
--kui-edge-inset-block-end,
|
|
69
|
+
var(--kui-safe-area-block-end, env(safe-area-inset-bottom, 0px))
|
|
70
|
+
);
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
.kui-toolbar[data-safe-area-inline-start="true"] {
|
|
74
|
+
--_kui-toolbar-safe-inline-start: var(
|
|
75
|
+
--kui-edge-inset-inline-start,
|
|
76
|
+
var(--kui-safe-area-inline-start, env(safe-area-inset-left, 0px))
|
|
77
|
+
);
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
.kui-toolbar[data-safe-area-inline-end="true"] {
|
|
81
|
+
--_kui-toolbar-safe-inline-end: var(
|
|
82
|
+
--kui-edge-inset-inline-end,
|
|
83
|
+
var(--kui-safe-area-inline-end, env(safe-area-inset-right, 0px))
|
|
84
|
+
);
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
.kui-toolbar > * {
|
|
88
|
+
--kui-edge-inset-block-start: 0px;
|
|
89
|
+
--kui-edge-inset-block-end: 0px;
|
|
90
|
+
--kui-edge-inset-inline-start: 0px;
|
|
91
|
+
--kui-edge-inset-inline-end: 0px;
|
|
92
|
+
}
|
|
93
|
+
|
|
19
94
|
.kui-toolbar[data-has-center="false"] {
|
|
20
95
|
grid-template-columns: minmax(0, 1fr) auto;
|
|
21
96
|
}
|
|
22
97
|
|
|
23
|
-
|
|
24
|
-
|
|
98
|
+
/* Equal side tracks center the middle zone on the toolbar's content box even
|
|
99
|
+
when one side has no controls. Side content still shrinks or wraps within
|
|
100
|
+
its own track, and responsive policies below may move a zone to a new row. */
|
|
101
|
+
.kui-toolbar[data-center-align="balanced"][data-has-center="true"] {
|
|
102
|
+
grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
|
|
103
|
+
}
|
|
104
|
+
|
|
105
|
+
.kui-toolbar[data-responsive="trailing-priority"][data-has-center="false"]:has(
|
|
106
|
+
> .kui-toolbar__trailing [data-expanded="true"]
|
|
107
|
+
) {
|
|
108
|
+
grid-template-columns:
|
|
109
|
+
minmax(0, 1fr)
|
|
110
|
+
minmax(0, var(--kui-token-search-expanded-width, 30rem));
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
.kui-toolbar {
|
|
114
|
+
--_kui-toolbar-divider-top: transparent;
|
|
115
|
+
--_kui-toolbar-divider-right: transparent;
|
|
116
|
+
--_kui-toolbar-divider-bottom: transparent;
|
|
117
|
+
--_kui-toolbar-divider-left: transparent;
|
|
118
|
+
box-shadow:
|
|
119
|
+
inset 0 1px var(--_kui-toolbar-divider-top),
|
|
120
|
+
inset -1px 0 var(--_kui-toolbar-divider-right),
|
|
121
|
+
inset 0 -1px var(--_kui-toolbar-divider-bottom),
|
|
122
|
+
inset 1px 0 var(--_kui-toolbar-divider-left);
|
|
123
|
+
}
|
|
124
|
+
|
|
125
|
+
.kui-toolbar:is([divider-sides*="t"], [data-scroll-divider*="t"]) {
|
|
126
|
+
--_kui-toolbar-divider-top: var(
|
|
127
|
+
--kui-toolbar-divider-color,
|
|
128
|
+
var(--kui-color-neutral-border-normal)
|
|
129
|
+
);
|
|
130
|
+
}
|
|
131
|
+
|
|
132
|
+
.kui-toolbar:is([divider-sides*="r"], [data-scroll-divider*="r"]) {
|
|
133
|
+
--_kui-toolbar-divider-right: var(
|
|
134
|
+
--kui-toolbar-divider-color,
|
|
135
|
+
var(--kui-color-neutral-border-normal)
|
|
136
|
+
);
|
|
137
|
+
}
|
|
138
|
+
|
|
139
|
+
.kui-toolbar:is([divider-sides*="b"], [data-scroll-divider*="b"]) {
|
|
140
|
+
--_kui-toolbar-divider-bottom: var(
|
|
141
|
+
--kui-toolbar-divider-color,
|
|
142
|
+
var(--kui-color-neutral-border-normal)
|
|
143
|
+
);
|
|
144
|
+
}
|
|
145
|
+
|
|
146
|
+
.kui-toolbar:is([divider-sides*="l"], [data-scroll-divider*="l"]) {
|
|
147
|
+
--_kui-toolbar-divider-left: var(
|
|
148
|
+
--kui-toolbar-divider-color,
|
|
149
|
+
var(--kui-color-neutral-border-normal)
|
|
150
|
+
);
|
|
151
|
+
}
|
|
152
|
+
|
|
153
|
+
/* The control band. Every zone reserves one group-height row at the top of
|
|
154
|
+
the toolbar, and each item is centered in that band by its own size, not by
|
|
155
|
+
its siblings: a group or title shorter than the band takes half the
|
|
156
|
+
difference as a top margin, and anything taller (a wrapped title, a
|
|
157
|
+
multi-line search, a second trailing row) starts at the band's top and grows
|
|
158
|
+
down. A growing item therefore never moves the other items or its own top.
|
|
159
|
+
Centering the zones in the toolbar row instead dropped every control to the
|
|
160
|
+
middle of a two-line title. The band is resolved here, on the toolbar, so a
|
|
161
|
+
compact group's own smaller group size never redefines it.
|
|
162
|
+
`--_kui-toolbar-band` is context the toolbar provides: a ToolbarControlGroup
|
|
163
|
+
and a ToolbarText each center themselves in it from their own stylesheets
|
|
164
|
+
(toolbar-control-group.css, toolbar-text.css). */
|
|
165
|
+
.kui-toolbar {
|
|
166
|
+
--_kui-toolbar-band: var(--kui-toolbar-group-size, calc(2px + 2.625rem));
|
|
25
167
|
}
|
|
26
168
|
|
|
27
169
|
.kui-toolbar__leading,
|
|
@@ -29,7 +171,10 @@
|
|
|
29
171
|
.kui-toolbar__trailing {
|
|
30
172
|
display: flex;
|
|
31
173
|
min-width: 0;
|
|
32
|
-
|
|
174
|
+
min-height: var(--_kui-toolbar-band);
|
|
175
|
+
padding-inline: var(--kui-toolbar-zone-padding-inline, 0px);
|
|
176
|
+
box-sizing: border-box;
|
|
177
|
+
align-items: flex-start;
|
|
33
178
|
gap: var(--kui-toolbar-gap, 0.5rem);
|
|
34
179
|
}
|
|
35
180
|
|
|
@@ -40,18 +185,137 @@
|
|
|
40
185
|
the 3- and 2-column layouts, and still stacks under the leading zone when a
|
|
41
186
|
consumer collapses the toolbar to a single column. */
|
|
42
187
|
.kui-toolbar__leading {
|
|
188
|
+
min-width: var(--kui-toolbar-leading-min-width, 0px);
|
|
189
|
+
padding-inline: var(
|
|
190
|
+
--kui-toolbar-leading-padding-inline,
|
|
191
|
+
var(--kui-toolbar-zone-padding-inline, 0px)
|
|
192
|
+
);
|
|
43
193
|
grid-column: 1;
|
|
44
|
-
|
|
194
|
+
/* Keep a shrinking title clipped while letting the 3px focus outline plus
|
|
195
|
+
its 1px offset paint past the zone edge. `hidden` cropped the ring of the
|
|
196
|
+
first control in this zone. */
|
|
197
|
+
overflow: clip;
|
|
198
|
+
overflow-clip-margin: 4px;
|
|
45
199
|
}
|
|
46
200
|
|
|
47
201
|
.kui-toolbar__center {
|
|
202
|
+
/* The center content never compresses below its own width (a group cannot
|
|
203
|
+
shrink or clip its controls). The track above takes this as its minimum, so
|
|
204
|
+
the leading identity gives way first, the way a platform toolbar truncates
|
|
205
|
+
its title before it overlaps the centered controls. */
|
|
206
|
+
min-width: min-content;
|
|
207
|
+
padding-inline: var(
|
|
208
|
+
--kui-toolbar-center-padding-inline,
|
|
209
|
+
var(--kui-toolbar-zone-padding-inline, 0px)
|
|
210
|
+
);
|
|
48
211
|
justify-content: center;
|
|
49
212
|
grid-column: 2;
|
|
50
213
|
}
|
|
51
214
|
|
|
215
|
+
.kui-toolbar[data-center-align="stretch"] > .kui-toolbar__center {
|
|
216
|
+
justify-content: flex-start;
|
|
217
|
+
}
|
|
218
|
+
|
|
219
|
+
.kui-toolbar[data-center-align="stretch"] > .kui-toolbar__center > * {
|
|
220
|
+
width: 100%;
|
|
221
|
+
flex-basis: 100%;
|
|
222
|
+
}
|
|
223
|
+
|
|
52
224
|
.kui-toolbar__trailing {
|
|
53
|
-
|
|
225
|
+
padding-inline: var(
|
|
226
|
+
--kui-toolbar-trailing-padding-inline,
|
|
227
|
+
var(--kui-toolbar-zone-padding-inline, 0px)
|
|
228
|
+
);
|
|
229
|
+
justify-content: var(--kui-toolbar-trailing-justify, flex-end);
|
|
230
|
+
justify-self: var(--kui-toolbar-trailing-justify-self, stretch);
|
|
54
231
|
grid-column: -2 / -1;
|
|
232
|
+
gap: var(--kui-toolbar-trailing-gap, var(--kui-toolbar-gap, 0.5rem));
|
|
233
|
+
/* Trailing actions never clip (KF-4EYES0): the zone wraps its groups, so its
|
|
234
|
+
track can shrink only to the widest single group. When one row cannot hold
|
|
235
|
+
every group, the next group moves to a new trailing-aligned row instead of
|
|
236
|
+
overflowing the toolbar. */
|
|
237
|
+
flex-wrap: wrap;
|
|
238
|
+
}
|
|
239
|
+
|
|
240
|
+
/* An expanded trailing search gets a complete second row while the leading
|
|
241
|
+
identity and optional center controls remain in the first. The query styles
|
|
242
|
+
descendants because a toolbar cannot query its own container width. */
|
|
243
|
+
@container kui-toolbar (max-width: 52rem) {
|
|
244
|
+
.kui-toolbar[data-responsive="trailing-priority"][data-responsive-at="narrow"][data-has-center="false"]:has(
|
|
245
|
+
> .kui-toolbar__trailing [data-expanded="true"]
|
|
246
|
+
)
|
|
247
|
+
> .kui-toolbar__leading {
|
|
248
|
+
grid-column: 1 / -1;
|
|
249
|
+
grid-row: 1;
|
|
250
|
+
}
|
|
251
|
+
|
|
252
|
+
.kui-toolbar[data-responsive="trailing-priority"][data-responsive-at="narrow"]:has(
|
|
253
|
+
> .kui-toolbar__trailing [data-expanded="true"]
|
|
254
|
+
)
|
|
255
|
+
> .kui-toolbar__trailing {
|
|
256
|
+
width: 100%;
|
|
257
|
+
grid-column: 1 / -1;
|
|
258
|
+
grid-row: 2;
|
|
259
|
+
justify-self: stretch;
|
|
260
|
+
}
|
|
261
|
+
|
|
262
|
+
.kui-toolbar[data-responsive="trailing-priority"][data-responsive-at="narrow"]
|
|
263
|
+
> .kui-toolbar__trailing
|
|
264
|
+
> [data-expanded="true"] {
|
|
265
|
+
width: 100%;
|
|
266
|
+
flex: 1 1 100%;
|
|
267
|
+
}
|
|
268
|
+
}
|
|
269
|
+
|
|
270
|
+
@container kui-toolbar (max-width: 44rem) {
|
|
271
|
+
.kui-toolbar[data-responsive="trailing-priority"][data-responsive-at="compact"][data-has-center="false"]:has(
|
|
272
|
+
> .kui-toolbar__trailing [data-expanded="true"]
|
|
273
|
+
)
|
|
274
|
+
> .kui-toolbar__leading {
|
|
275
|
+
grid-column: 1 / -1;
|
|
276
|
+
grid-row: 1;
|
|
277
|
+
}
|
|
278
|
+
|
|
279
|
+
.kui-toolbar[data-responsive="trailing-priority"][data-responsive-at="compact"]:has(
|
|
280
|
+
> .kui-toolbar__trailing [data-expanded="true"]
|
|
281
|
+
)
|
|
282
|
+
> .kui-toolbar__trailing {
|
|
283
|
+
width: 100%;
|
|
284
|
+
grid-column: 1 / -1;
|
|
285
|
+
grid-row: 2;
|
|
286
|
+
justify-self: stretch;
|
|
287
|
+
}
|
|
288
|
+
|
|
289
|
+
.kui-toolbar[data-responsive="trailing-priority"][data-responsive-at="compact"]
|
|
290
|
+
> .kui-toolbar__trailing
|
|
291
|
+
> [data-expanded="true"] {
|
|
292
|
+
width: 100%;
|
|
293
|
+
flex: 1 1 100%;
|
|
294
|
+
}
|
|
295
|
+
}
|
|
296
|
+
|
|
297
|
+
/* Content-driven wrap: one row while every zone fits at its natural width;
|
|
298
|
+
otherwise the trailing zone moves below the identity, still trailing-aligned,
|
|
299
|
+
instead of truncating the leading title or clipping an action. For panel,
|
|
300
|
+
inspector, and dialog headings whose identity must stay whole. */
|
|
301
|
+
.kui-toolbar[data-responsive="wrap"] {
|
|
302
|
+
display: flex;
|
|
303
|
+
flex-wrap: wrap;
|
|
304
|
+
}
|
|
305
|
+
|
|
306
|
+
.kui-toolbar[data-responsive="wrap"] > .kui-toolbar__leading {
|
|
307
|
+
max-width: 100%;
|
|
308
|
+
flex: 1 1 auto;
|
|
309
|
+
}
|
|
310
|
+
|
|
311
|
+
.kui-toolbar[data-responsive="wrap"] > .kui-toolbar__center {
|
|
312
|
+
flex: 1 1 auto;
|
|
313
|
+
}
|
|
314
|
+
|
|
315
|
+
.kui-toolbar[data-responsive="wrap"] > .kui-toolbar__trailing {
|
|
316
|
+
max-width: 100%;
|
|
317
|
+
flex: 0 1 auto;
|
|
318
|
+
margin-inline-start: auto;
|
|
55
319
|
}
|
|
56
320
|
|
|
57
321
|
.kui-toolbar[data-has-center="false"] .kui-toolbar__center,
|
|
@@ -59,3 +323,61 @@
|
|
|
59
323
|
.kui-toolbar__trailing:empty {
|
|
60
324
|
display: none;
|
|
61
325
|
}
|
|
326
|
+
|
|
327
|
+
/* Stacked topology. A container query only matches an ancestor container, so
|
|
328
|
+
these rules style the zones (whose query container is this toolbar) rather
|
|
329
|
+
than the toolbar's own grid template, which a self query can never reach.
|
|
330
|
+
Each zone spans every column track, one zone per row, so no empty track or
|
|
331
|
+
column gap narrows a stacked zone. Stacked control zones wrap at group
|
|
332
|
+
granularity (KF-4EYES0: a stacked trailing zone clipped its last action at
|
|
333
|
+
phone widths), so every group stays whole, reachable, and full size; the
|
|
334
|
+
leading identity keeps its single-line truncation. */
|
|
335
|
+
@container kui-toolbar (max-width: 52rem) {
|
|
336
|
+
.kui-toolbar[data-responsive="stack"][data-responsive-at="narrow"]
|
|
337
|
+
> :is(.kui-toolbar__leading, .kui-toolbar__center, .kui-toolbar__trailing) {
|
|
338
|
+
width: 100%;
|
|
339
|
+
grid-column: 1 / -1;
|
|
340
|
+
justify-content: flex-start;
|
|
341
|
+
}
|
|
342
|
+
|
|
343
|
+
.kui-toolbar[data-responsive="stack"][data-responsive-at="narrow"]
|
|
344
|
+
> :is(.kui-toolbar__center, .kui-toolbar__trailing) {
|
|
345
|
+
flex-wrap: wrap;
|
|
346
|
+
}
|
|
347
|
+
}
|
|
348
|
+
|
|
349
|
+
@container kui-toolbar (max-width: 44rem) {
|
|
350
|
+
.kui-toolbar[data-responsive="stack"][data-responsive-at="compact"]
|
|
351
|
+
> :is(.kui-toolbar__leading, .kui-toolbar__center, .kui-toolbar__trailing) {
|
|
352
|
+
width: 100%;
|
|
353
|
+
grid-column: 1 / -1;
|
|
354
|
+
justify-content: flex-start;
|
|
355
|
+
}
|
|
356
|
+
|
|
357
|
+
.kui-toolbar[data-responsive="stack"][data-responsive-at="compact"]
|
|
358
|
+
> :is(.kui-toolbar__center, .kui-toolbar__trailing) {
|
|
359
|
+
flex-wrap: wrap;
|
|
360
|
+
}
|
|
361
|
+
}
|
|
362
|
+
|
|
363
|
+
/* Center priority. As with the stacked topology, the toolbar cannot query its
|
|
364
|
+
own width, so these rules style the zones: while the center holds an expanded
|
|
365
|
+
control, the leading and trailing zones leave and the center spans every
|
|
366
|
+
column track (including the gaps the vacated tracks still own), taking the
|
|
367
|
+
whole row. */
|
|
368
|
+
@container kui-toolbar (max-width: 42rem) {
|
|
369
|
+
.kui-toolbar[data-responsive="center-priority"]:has(
|
|
370
|
+
> .kui-toolbar__center [data-expanded="true"]
|
|
371
|
+
)
|
|
372
|
+
> .kui-toolbar__center {
|
|
373
|
+
width: 100%;
|
|
374
|
+
grid-column: 1 / -1;
|
|
375
|
+
}
|
|
376
|
+
|
|
377
|
+
.kui-toolbar[data-responsive="center-priority"]:has(
|
|
378
|
+
> .kui-toolbar__center [data-expanded="true"]
|
|
379
|
+
)
|
|
380
|
+
> :is(.kui-toolbar__leading, .kui-toolbar__trailing) {
|
|
381
|
+
display: none;
|
|
382
|
+
}
|
|
383
|
+
}
|
|
@@ -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;
|
|
@@ -19,12 +19,32 @@
|
|
|
19
19
|
position: relative;
|
|
20
20
|
display: grid;
|
|
21
21
|
min-height: 2.55rem;
|
|
22
|
-
padding-block:
|
|
22
|
+
padding-block: var(
|
|
23
|
+
--kui-value-table-row-padding-block,
|
|
24
|
+
var(--_kui-value-table-density-padding-block, 0.5rem)
|
|
25
|
+
);
|
|
23
26
|
padding-inline: var(--_kui-value-table-inline-padding);
|
|
24
27
|
box-sizing: border-box;
|
|
25
|
-
|
|
28
|
+
/* Two content-sized tracks share the free space equally, and each stops
|
|
29
|
+
growing once its content fits. A short value keeps its whole width and a
|
|
30
|
+
long label takes the rest (ending a word that still does not fit in an
|
|
31
|
+
ellipsis); a short label keeps its width beside a long, wrapping value;
|
|
32
|
+
when both are long they split the row. A `1fr` value track would get
|
|
33
|
+
nothing until the label reached its full width, starving the value to 0px
|
|
34
|
+
beside a long single-word label. */
|
|
35
|
+
grid-template-columns: var(
|
|
36
|
+
--kui-value-table-row-columns,
|
|
37
|
+
minmax(0, auto) minmax(0, auto)
|
|
38
|
+
);
|
|
26
39
|
align-items: center;
|
|
27
|
-
gap: var(
|
|
40
|
+
gap: var(
|
|
41
|
+
--kui-value-table-row-gap,
|
|
42
|
+
var(--_kui-value-table-density-gap, var(--kui-layout-item-gap, 0.5rem))
|
|
43
|
+
);
|
|
44
|
+
}
|
|
45
|
+
.kui-value-table[data-density="compact"] .kui-value-table__row {
|
|
46
|
+
--_kui-value-table-density-padding-block: 0.25rem;
|
|
47
|
+
--_kui-value-table-density-gap: 0.25rem;
|
|
28
48
|
}
|
|
29
49
|
.kui-value-table__row[data-has-icon="true"] {
|
|
30
50
|
--_kui-value-table-separator-start: calc(
|
|
@@ -42,7 +62,12 @@
|
|
|
42
62
|
}
|
|
43
63
|
.kui-value-table__row dt {
|
|
44
64
|
display: flex;
|
|
65
|
+
/* The label hugs its content (up to its column) rather than stretching, so
|
|
66
|
+
its box does not change with the value's width — a placeholder row keeps
|
|
67
|
+
the live row's label geometry beside its skeleton value. */
|
|
68
|
+
max-width: 100%;
|
|
45
69
|
min-width: 0;
|
|
70
|
+
justify-self: start;
|
|
46
71
|
color: var(--kui-color-text-quiet);
|
|
47
72
|
align-items: center;
|
|
48
73
|
gap: var(--kui-layout-item-gap, 0.5rem);
|
|
@@ -60,6 +85,11 @@
|
|
|
60
85
|
}
|
|
61
86
|
.kui-value-table__label {
|
|
62
87
|
min-width: 0;
|
|
88
|
+
overflow: hidden;
|
|
89
|
+
/* A multi-word label wraps at spaces; a single word wider than the label
|
|
90
|
+
column (a long component or file name) ends in an ellipsis instead of
|
|
91
|
+
running under the value. */
|
|
92
|
+
text-overflow: ellipsis;
|
|
63
93
|
}
|
|
64
94
|
.kui-value-table__row dd {
|
|
65
95
|
display: flex;
|