@kerfjs/ui 5.0.0-beta.7 → 5.0.0-beta.71
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 +3905 -446
- package/ai/component-catalog.schema.json +94 -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 +129 -0
- package/ai/component-composition.json +7140 -0
- package/ai/component-composition.schema.json +408 -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 +401 -0
- package/analyzer/index.d.mts +53 -0
- package/analyzer/index.mjs +2307 -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-SLWCCHNP.js +491 -0
- package/dist/chunk-SLWCCHNP.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-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 +224 -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 +343 -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 +667 -56
- package/docs/component-integration.md +75 -0
- package/docs/component-selection.md +540 -95
- 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 +384 -0
- package/docs/ui-doctor.md +153 -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 +94 -0
- package/doctor/eslint-diagnostics.d.mts +24 -0
- package/doctor/eslint-diagnostics.mjs +24 -0
- package/doctor/index.d.mts +122 -0
- package/doctor/index.mjs +1364 -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
|
@@ -1,28 +1,68 @@
|
|
|
1
1
|
.kui-workbench {
|
|
2
|
+
position: relative;
|
|
3
|
+
/* The rail and drawer overlays and the restore controls stack within the
|
|
4
|
+
Workbench, never against the page around it. */
|
|
5
|
+
isolation: isolate;
|
|
2
6
|
display: flex;
|
|
3
7
|
min-width: 0;
|
|
4
8
|
min-height: 0;
|
|
5
9
|
height: 100%;
|
|
6
10
|
overflow: hidden;
|
|
7
11
|
background: var(--kui-color-surface);
|
|
12
|
+
/* Safe areas: every track paints through the unsafe area it reaches (a rail
|
|
13
|
+
or drawer grows by that inset), and each region's content compensates only
|
|
14
|
+
for the edges the region still touches. An expanded inline rail takes its
|
|
15
|
+
edge away from the center; collapsing it hands the edge back. See pane.css
|
|
16
|
+
for the `--kui-edge-inset-*` edge context. */
|
|
17
|
+
--_kui-workbench-safe-block-start: var(
|
|
18
|
+
--kui-edge-inset-block-start,
|
|
19
|
+
var(--kui-safe-area-block-start, env(safe-area-inset-top, 0px))
|
|
20
|
+
);
|
|
21
|
+
--_kui-workbench-safe-block-end: var(
|
|
22
|
+
--kui-edge-inset-block-end,
|
|
23
|
+
var(--kui-safe-area-block-end, env(safe-area-inset-bottom, 0px))
|
|
24
|
+
);
|
|
25
|
+
--_kui-workbench-safe-inline-start: var(
|
|
26
|
+
--kui-edge-inset-inline-start,
|
|
27
|
+
var(--kui-safe-area-inline-start, env(safe-area-inset-left, 0px))
|
|
28
|
+
);
|
|
29
|
+
--_kui-workbench-safe-inline-end: var(
|
|
30
|
+
--kui-edge-inset-inline-end,
|
|
31
|
+
var(--kui-safe-area-inline-end, env(safe-area-inset-right, 0px))
|
|
32
|
+
);
|
|
8
33
|
}
|
|
9
34
|
|
|
10
35
|
/* Side rails. Collapsing snaps the flex track to zero (one reflow) while the
|
|
11
36
|
fixed-width content slides out via transform (composited, clipped) — never a
|
|
12
37
|
per-frame width animation. See docs/18 / the KF-7QKJRK catalog sidebar. */
|
|
13
38
|
.kui-workbench__rail {
|
|
14
|
-
|
|
39
|
+
--kui-edge-inset-block-start: var(--_kui-workbench-safe-block-start);
|
|
40
|
+
--kui-edge-inset-block-end: var(--_kui-workbench-safe-block-end);
|
|
41
|
+
--_kui-workbench-rail-extent: calc(
|
|
42
|
+
var(--kui-workbench-rail-width, 17.5rem) +
|
|
43
|
+
var(--_kui-workbench-rail-safe-inset)
|
|
44
|
+
);
|
|
45
|
+
/* The size is the whole track, separator border included, in or out of
|
|
46
|
+
flow and whatever box model the app defaults to. */
|
|
47
|
+
box-sizing: border-box;
|
|
48
|
+
flex: 0 0 var(--_kui-workbench-rail-extent);
|
|
15
49
|
min-width: 0;
|
|
16
50
|
overflow: hidden;
|
|
17
51
|
background: var(--kui-color-surface);
|
|
18
52
|
}
|
|
19
53
|
|
|
20
54
|
.kui-workbench__rail--left {
|
|
21
|
-
|
|
55
|
+
--_kui-workbench-rail-safe-inset: var(--_kui-workbench-safe-inline-start);
|
|
56
|
+
--kui-edge-inset-inline-start: var(--_kui-workbench-safe-inline-start);
|
|
57
|
+
--kui-edge-inset-inline-end: 0px;
|
|
58
|
+
border-inline-end: 1px solid var(--kui-color-neutral-border-normal);
|
|
22
59
|
}
|
|
23
60
|
|
|
24
61
|
.kui-workbench__rail--right {
|
|
25
|
-
|
|
62
|
+
--_kui-workbench-rail-safe-inset: var(--_kui-workbench-safe-inline-end);
|
|
63
|
+
--kui-edge-inset-inline-start: 0px;
|
|
64
|
+
--kui-edge-inset-inline-end: var(--_kui-workbench-safe-inline-end);
|
|
65
|
+
border-inline-start: 1px solid var(--kui-color-neutral-border-normal);
|
|
26
66
|
}
|
|
27
67
|
|
|
28
68
|
.kui-workbench__rail[data-collapsed="true"] {
|
|
@@ -30,7 +70,19 @@
|
|
|
30
70
|
border-inline: 0;
|
|
31
71
|
}
|
|
32
72
|
|
|
73
|
+
.kui-workbench__rail[data-separator="hidden"],
|
|
74
|
+
.kui-workbench__drawer[data-separator="hidden"] {
|
|
75
|
+
border-color: transparent;
|
|
76
|
+
}
|
|
77
|
+
|
|
78
|
+
/* The center is the overlay drawer's containing block, so a drawer that
|
|
79
|
+
leaves the flow still covers exactly the work-area column it docks under. */
|
|
33
80
|
.kui-workbench__center {
|
|
81
|
+
position: relative;
|
|
82
|
+
--kui-edge-inset-block-start: var(--_kui-workbench-safe-block-start);
|
|
83
|
+
--kui-edge-inset-block-end: var(--_kui-workbench-safe-block-end);
|
|
84
|
+
--kui-edge-inset-inline-start: var(--_kui-workbench-safe-inline-start);
|
|
85
|
+
--kui-edge-inset-inline-end: var(--_kui-workbench-safe-inline-end);
|
|
34
86
|
display: flex;
|
|
35
87
|
flex: 1;
|
|
36
88
|
min-width: 0;
|
|
@@ -39,18 +91,143 @@
|
|
|
39
91
|
flex-direction: column;
|
|
40
92
|
}
|
|
41
93
|
|
|
94
|
+
.kui-workbench[data-left-inline-expanded="true"] > .kui-workbench__center {
|
|
95
|
+
--kui-edge-inset-inline-start: 0px;
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
.kui-workbench[data-right-inline-expanded="true"] > .kui-workbench__center {
|
|
99
|
+
--kui-edge-inset-inline-end: 0px;
|
|
100
|
+
}
|
|
101
|
+
|
|
42
102
|
.kui-workbench__main {
|
|
43
103
|
flex: 1;
|
|
44
104
|
min-height: 0;
|
|
45
105
|
overflow: auto;
|
|
46
106
|
}
|
|
47
107
|
|
|
108
|
+
/* When no Pane chrome is composed, the Workbench region owns its scroll.
|
|
109
|
+
A resizable auto-overflow panel instead scrolls its content box so its
|
|
110
|
+
separator handle remains fixed. Paint only that owner. */
|
|
111
|
+
.kui-workbench__main[data-appearance="sunken"],
|
|
112
|
+
:is(.kui-workbench__rail, .kui-workbench__drawer)[data-appearance="sunken"] {
|
|
113
|
+
background: var(
|
|
114
|
+
--kui-sunken-panel-background,
|
|
115
|
+
var(--kui-color-surface-lowered)
|
|
116
|
+
);
|
|
117
|
+
}
|
|
118
|
+
|
|
119
|
+
:is(
|
|
120
|
+
.kui-workbench__rail,
|
|
121
|
+
.kui-workbench__drawer
|
|
122
|
+
)[data-appearance="sunken"][data-resizable="true"][data-content-overflow="auto"] {
|
|
123
|
+
background: transparent;
|
|
124
|
+
}
|
|
125
|
+
|
|
126
|
+
:is(
|
|
127
|
+
.kui-workbench__rail,
|
|
128
|
+
.kui-workbench__drawer
|
|
129
|
+
)[data-appearance="sunken"][data-resizable="true"][data-content-overflow="auto"]
|
|
130
|
+
> .kui-workbench__panel-content {
|
|
131
|
+
background: var(
|
|
132
|
+
--kui-sunken-panel-background,
|
|
133
|
+
var(--kui-color-surface-lowered)
|
|
134
|
+
);
|
|
135
|
+
}
|
|
136
|
+
|
|
137
|
+
.kui-workbench__main[data-drawer-inline-expanded="true"] {
|
|
138
|
+
--_kui-workbench-content-edge-block-end: 0px;
|
|
139
|
+
}
|
|
140
|
+
|
|
141
|
+
/* The main area and each panel's content are the consumers: they pad for the
|
|
142
|
+
edges their region still touches, the main area inside its scroller so
|
|
143
|
+
content scrolls under an unsafe edge but can always be scrolled clear. A
|
|
144
|
+
region whose only child is a Pane or layout lets that child own the insets. */
|
|
145
|
+
.kui-workbench__center,
|
|
146
|
+
.kui-workbench__rail,
|
|
147
|
+
.kui-workbench__drawer {
|
|
148
|
+
--_kui-workbench-content-edge-block-start: var(--kui-edge-inset-block-start);
|
|
149
|
+
--_kui-workbench-content-edge-block-end: var(--kui-edge-inset-block-end);
|
|
150
|
+
--_kui-workbench-content-edge-inline-start: var(
|
|
151
|
+
--kui-edge-inset-inline-start
|
|
152
|
+
);
|
|
153
|
+
--_kui-workbench-content-edge-inline-end: var(--kui-edge-inset-inline-end);
|
|
154
|
+
}
|
|
155
|
+
|
|
156
|
+
.kui-workbench__main,
|
|
157
|
+
.kui-workbench__panel-content {
|
|
158
|
+
/* Clear the public context at the region, so arbitrary app children inherit
|
|
159
|
+
zero without a selector whose subject is every child in the document. */
|
|
160
|
+
--kui-edge-inset-block-start: 0px;
|
|
161
|
+
--kui-edge-inset-block-end: 0px;
|
|
162
|
+
--kui-edge-inset-inline-start: 0px;
|
|
163
|
+
--kui-edge-inset-inline-end: 0px;
|
|
164
|
+
}
|
|
165
|
+
|
|
166
|
+
.kui-workbench__main:not(
|
|
167
|
+
:has(
|
|
168
|
+
> :is(
|
|
169
|
+
[data-component="pane"],
|
|
170
|
+
[data-component="nav-stack"],
|
|
171
|
+
[data-component="split-view"],
|
|
172
|
+
[data-component="workbench"],
|
|
173
|
+
[data-component="tab-scaffold"]
|
|
174
|
+
):only-child
|
|
175
|
+
)
|
|
176
|
+
),
|
|
177
|
+
.kui-workbench__panel-content:not(
|
|
178
|
+
:has(
|
|
179
|
+
> :is(
|
|
180
|
+
[data-component="pane"],
|
|
181
|
+
[data-component="nav-stack"],
|
|
182
|
+
[data-component="split-view"],
|
|
183
|
+
[data-component="workbench"],
|
|
184
|
+
[data-component="tab-scaffold"]
|
|
185
|
+
):only-child
|
|
186
|
+
)
|
|
187
|
+
) {
|
|
188
|
+
padding-block: var(--_kui-workbench-content-edge-block-start)
|
|
189
|
+
var(--_kui-workbench-content-edge-block-end);
|
|
190
|
+
padding-inline: var(--_kui-workbench-content-edge-inline-start)
|
|
191
|
+
var(--_kui-workbench-content-edge-inline-end);
|
|
192
|
+
scroll-padding-block: var(--_kui-workbench-content-edge-block-start)
|
|
193
|
+
var(--_kui-workbench-content-edge-block-end);
|
|
194
|
+
}
|
|
195
|
+
|
|
196
|
+
/* A nested Workbench owns its safe-area insets. Other sole layout children
|
|
197
|
+
restore this context from their own stylesheets. */
|
|
198
|
+
:is(.kui-workbench__main, .kui-workbench__panel-content)
|
|
199
|
+
> [data-component="workbench"]:only-child {
|
|
200
|
+
--kui-edge-inset-block-start: var(--_kui-workbench-content-edge-block-start);
|
|
201
|
+
--kui-edge-inset-block-end: var(--_kui-workbench-content-edge-block-end);
|
|
202
|
+
--kui-edge-inset-inline-start: var(
|
|
203
|
+
--_kui-workbench-content-edge-inline-start
|
|
204
|
+
);
|
|
205
|
+
--kui-edge-inset-inline-end: var(--_kui-workbench-content-edge-inline-end);
|
|
206
|
+
}
|
|
207
|
+
|
|
208
|
+
/* A region whose only child is a Pane or layout lets it fill the region, so a
|
|
209
|
+
composed toolbar's footer (or the app's own) sits at the region's bottom
|
|
210
|
+
edge rather than under short content. Each of those components fills the
|
|
211
|
+
region from its own stylesheet (pane.css, nav-stack.css, split-view.css,
|
|
212
|
+
tab-scaffold.css); a nested Workbench fills it here. */
|
|
213
|
+
:is(.kui-workbench__main, .kui-workbench__panel-content)
|
|
214
|
+
> [data-component="workbench"]:only-child {
|
|
215
|
+
height: 100%;
|
|
216
|
+
}
|
|
217
|
+
|
|
48
218
|
/* Bottom drawer — the vertical analogue of a rail. */
|
|
49
219
|
.kui-workbench__drawer {
|
|
50
|
-
|
|
220
|
+
--kui-edge-inset-block-start: 0px;
|
|
221
|
+
--_kui-workbench-drawer-extent: calc(
|
|
222
|
+
var(--kui-workbench-drawer-height, 13.75rem) +
|
|
223
|
+
var(--_kui-workbench-safe-block-end)
|
|
224
|
+
);
|
|
225
|
+
box-sizing: border-box;
|
|
226
|
+
position: relative;
|
|
227
|
+
flex: 0 0 var(--_kui-workbench-drawer-extent);
|
|
51
228
|
min-height: 0;
|
|
52
229
|
overflow: hidden;
|
|
53
|
-
border-block-start: 1px solid var(--kui-color-border);
|
|
230
|
+
border-block-start: 1px solid var(--kui-color-neutral-border-normal);
|
|
54
231
|
background: var(--kui-color-surface);
|
|
55
232
|
}
|
|
56
233
|
|
|
@@ -59,20 +236,57 @@
|
|
|
59
236
|
border-block-start: 0;
|
|
60
237
|
}
|
|
61
238
|
|
|
239
|
+
.kui-workbench__rail[data-content-overflow="auto"],
|
|
240
|
+
.kui-workbench__drawer[data-content-overflow="auto"] {
|
|
241
|
+
overflow: auto;
|
|
242
|
+
}
|
|
243
|
+
|
|
244
|
+
.kui-workbench__rail[data-content-overflow="visible"],
|
|
245
|
+
.kui-workbench__drawer[data-content-overflow="visible"] {
|
|
246
|
+
z-index: var(--kui-workbench-popup-z, 5);
|
|
247
|
+
overflow: visible;
|
|
248
|
+
}
|
|
249
|
+
|
|
250
|
+
.kui-workbench__rail:has(wa-dropdown[open]),
|
|
251
|
+
.kui-workbench__drawer:has(wa-dropdown[open]) {
|
|
252
|
+
z-index: var(--kui-workbench-popup-z, 5);
|
|
253
|
+
}
|
|
254
|
+
|
|
62
255
|
/* The fixed-size sliding content. The rail/drawer keeps a definite size on its
|
|
63
256
|
content so the transform reads as a slide, not a squeeze. */
|
|
64
257
|
.kui-workbench__rail .kui-workbench__panel-content {
|
|
65
|
-
width: var(--
|
|
258
|
+
width: var(--_kui-workbench-rail-extent);
|
|
66
259
|
height: 100%;
|
|
67
260
|
transition: transform 200ms ease;
|
|
68
261
|
}
|
|
69
262
|
|
|
70
263
|
.kui-workbench__drawer .kui-workbench__panel-content {
|
|
264
|
+
position: absolute;
|
|
265
|
+
inset-inline: 0;
|
|
266
|
+
inset-block-end: 0;
|
|
71
267
|
width: 100%;
|
|
72
|
-
height: var(--
|
|
268
|
+
height: var(--_kui-workbench-drawer-extent);
|
|
73
269
|
transition: transform 200ms ease;
|
|
74
270
|
}
|
|
75
271
|
|
|
272
|
+
.kui-workbench__rail[data-collapse-motion="none"] .kui-workbench__panel-content,
|
|
273
|
+
.kui-workbench__drawer[data-collapse-motion="none"]
|
|
274
|
+
.kui-workbench__panel-content {
|
|
275
|
+
transition: none;
|
|
276
|
+
}
|
|
277
|
+
|
|
278
|
+
:is(.kui-workbench__rail, .kui-workbench__drawer)[data-resizing="true"]
|
|
279
|
+
> .kui-workbench__panel-content {
|
|
280
|
+
transition: none;
|
|
281
|
+
}
|
|
282
|
+
|
|
283
|
+
.kui-workbench__rail[data-collapse-motion="fade-slide"][data-collapsed="true"]
|
|
284
|
+
.kui-workbench__panel-content,
|
|
285
|
+
.kui-workbench__drawer[data-collapse-motion="fade-slide"][data-collapsed="true"]
|
|
286
|
+
.kui-workbench__panel-content {
|
|
287
|
+
opacity: 0;
|
|
288
|
+
}
|
|
289
|
+
|
|
76
290
|
.kui-workbench__rail--left[data-collapsed="true"]
|
|
77
291
|
.kui-workbench__panel-content {
|
|
78
292
|
transform: translateX(-100%);
|
|
@@ -87,8 +301,767 @@
|
|
|
87
301
|
transform: translateY(100%);
|
|
88
302
|
}
|
|
89
303
|
|
|
304
|
+
/* Opt-in resizable panels. The size lives in the resize wiring's track
|
|
305
|
+
property, which the wiring updates live during a drag, so the rail width or
|
|
306
|
+
drawer height follows it; collapsing leaves it alone, so the panel expands
|
|
307
|
+
back to the size it had. These rules precede the presentation rules below,
|
|
308
|
+
which must keep winning for overlay and hidden panels. */
|
|
309
|
+
.kui-workbench__rail[data-resizable="true"] {
|
|
310
|
+
--kui-workbench-rail-width: var(--kui-resizable-region-size);
|
|
311
|
+
position: relative;
|
|
312
|
+
}
|
|
313
|
+
|
|
314
|
+
.kui-workbench__drawer[data-resizable="true"] {
|
|
315
|
+
--kui-workbench-drawer-height: var(--kui-resizable-region-size);
|
|
316
|
+
}
|
|
317
|
+
|
|
318
|
+
/* The work area keeps a minimum width beside the rails (the Workbench's
|
|
319
|
+
`mainMinSize`) and a minimum height above the drawer (`mainMinHeight`),
|
|
320
|
+
never larger than the Workbench itself. Inline panels, fixed or resizable,
|
|
321
|
+
give way instead: when the container narrows the rails shrink in proportion
|
|
322
|
+
to their sizes, when it gets shorter the drawer shrinks, and their content
|
|
323
|
+
follows the shown size. The wiring stops a resize where the work area would
|
|
324
|
+
drop below the minimum. */
|
|
325
|
+
.kui-workbench[data-main-min-size] > .kui-workbench__center {
|
|
326
|
+
min-width: min(var(--_kui-workbench-main-min-width), 100%);
|
|
327
|
+
}
|
|
328
|
+
|
|
329
|
+
.kui-workbench[data-main-min-height]
|
|
330
|
+
> .kui-workbench__center
|
|
331
|
+
> .kui-workbench__main {
|
|
332
|
+
min-height: min(var(--_kui-workbench-main-min-height), 100%);
|
|
333
|
+
}
|
|
334
|
+
|
|
335
|
+
.kui-workbench__rail[data-presentation="inline"]:not([data-collapsed="true"]),
|
|
336
|
+
.kui-workbench__drawer[data-presentation="inline"]:not(
|
|
337
|
+
[data-collapsed="true"]
|
|
338
|
+
) {
|
|
339
|
+
flex-shrink: 1;
|
|
340
|
+
}
|
|
341
|
+
|
|
342
|
+
/* Low specificity, so a responsive overlay (below) restores the fixed size. */
|
|
343
|
+
.kui-workbench__rail:where(
|
|
344
|
+
[data-presentation="inline"]:not([data-collapsed="true"])
|
|
345
|
+
)
|
|
346
|
+
> .kui-workbench__panel-content {
|
|
347
|
+
width: 100%;
|
|
348
|
+
}
|
|
349
|
+
|
|
350
|
+
.kui-workbench__drawer:where(
|
|
351
|
+
[data-presentation="inline"]:not([data-collapsed="true"])
|
|
352
|
+
)
|
|
353
|
+
> .kui-workbench__panel-content {
|
|
354
|
+
height: 100%;
|
|
355
|
+
}
|
|
356
|
+
|
|
357
|
+
/* The panel clips its sliding content, so a scrolling panel scrolls its
|
|
358
|
+
content box instead of itself: the separator handle is a child of the panel
|
|
359
|
+
and must not scroll away with the content. */
|
|
360
|
+
.kui-workbench__rail[data-resizable="true"][data-content-overflow="auto"],
|
|
361
|
+
.kui-workbench__drawer[data-resizable="true"][data-content-overflow="auto"] {
|
|
362
|
+
overflow: hidden;
|
|
363
|
+
}
|
|
364
|
+
|
|
365
|
+
.kui-workbench__rail[data-resizable="true"][data-content-overflow="auto"]
|
|
366
|
+
> .kui-workbench__panel-content,
|
|
367
|
+
.kui-workbench__drawer[data-resizable="true"][data-content-overflow="auto"]
|
|
368
|
+
> .kui-workbench__panel-content {
|
|
369
|
+
overflow: auto;
|
|
370
|
+
}
|
|
371
|
+
|
|
372
|
+
/* The separator handle: the 20px hit target and dormant grip a
|
|
373
|
+
ResizableRegion handle has. The panel's own border stays the visible
|
|
374
|
+
separator line. By default the target sits wholly inside the panel, at its
|
|
375
|
+
inner edge, because the panel clips its sliding content. */
|
|
376
|
+
.kui-workbench__handle {
|
|
377
|
+
position: absolute;
|
|
378
|
+
z-index: 3;
|
|
379
|
+
display: grid;
|
|
380
|
+
color: var(--kui-color-neutral-on-quiet);
|
|
381
|
+
place-items: center;
|
|
382
|
+
touch-action: none;
|
|
383
|
+
}
|
|
384
|
+
|
|
385
|
+
.kui-workbench__rail > .kui-workbench__handle {
|
|
386
|
+
inset-block: 0;
|
|
387
|
+
width: 20px;
|
|
388
|
+
cursor: col-resize;
|
|
389
|
+
}
|
|
390
|
+
|
|
391
|
+
.kui-workbench__rail--left > .kui-workbench__handle {
|
|
392
|
+
inset-inline-end: 0;
|
|
393
|
+
}
|
|
394
|
+
|
|
395
|
+
.kui-workbench__rail--right > .kui-workbench__handle {
|
|
396
|
+
inset-inline-start: 0;
|
|
397
|
+
}
|
|
398
|
+
|
|
399
|
+
.kui-workbench__drawer > .kui-workbench__handle {
|
|
400
|
+
inset-inline: 0;
|
|
401
|
+
inset-block-start: 0;
|
|
402
|
+
height: 20px;
|
|
403
|
+
cursor: row-resize;
|
|
404
|
+
}
|
|
405
|
+
|
|
406
|
+
.kui-workbench__rail[data-collapsed="true"] > .kui-workbench__handle,
|
|
407
|
+
.kui-workbench__drawer[data-collapsed="true"] > .kui-workbench__handle,
|
|
408
|
+
.kui-workbench__rail:not([data-presentation="inline"]) > .kui-workbench__handle,
|
|
409
|
+
.kui-workbench__drawer:not([data-presentation="inline"])
|
|
410
|
+
> .kui-workbench__handle {
|
|
411
|
+
display: none;
|
|
412
|
+
}
|
|
413
|
+
|
|
414
|
+
/* An expanded panel lets exactly the handle's outer half through its clip, so
|
|
415
|
+
the hit target straddles the separator like a ResizableRegion handle does
|
|
416
|
+
and the grip is drawn centered on the separator line. Collapsing drops the
|
|
417
|
+
extension again before the content slides out. Engines that can extend a
|
|
418
|
+
clip past the panel's edge do it with `overflow-clip-margin`; the rest
|
|
419
|
+
(WebKit) clip with a `clip-path` that reaches past the panel's edges. That
|
|
420
|
+
also makes the panel a stacking context, so the panel stacks at the
|
|
421
|
+
handle's own level to keep the handle's outer half above the work area
|
|
422
|
+
beside it. The clip and the stacking level sit at low specificity, so a
|
|
423
|
+
responsive overlay presentation (below) replaces both. */
|
|
424
|
+
@supports not (overflow-clip-margin: 10px) {
|
|
425
|
+
.kui-workbench__rail[data-resizable="true"][data-presentation="inline"]:not(
|
|
426
|
+
[data-collapsed="true"],
|
|
427
|
+
[data-content-overflow="visible"]
|
|
428
|
+
),
|
|
429
|
+
.kui-workbench__drawer[data-resizable="true"][data-presentation="inline"]:not(
|
|
430
|
+
[data-collapsed="true"],
|
|
431
|
+
[data-content-overflow="visible"]
|
|
432
|
+
) {
|
|
433
|
+
overflow: visible;
|
|
434
|
+
}
|
|
435
|
+
|
|
436
|
+
.kui-workbench__rail:where(
|
|
437
|
+
[data-resizable="true"][data-presentation="inline"]:not(
|
|
438
|
+
[data-collapsed="true"],
|
|
439
|
+
[data-content-overflow="visible"]
|
|
440
|
+
)
|
|
441
|
+
) {
|
|
442
|
+
z-index: 3;
|
|
443
|
+
clip-path: inset(0 -10px);
|
|
444
|
+
}
|
|
445
|
+
|
|
446
|
+
.kui-workbench__drawer:where(
|
|
447
|
+
[data-resizable="true"][data-presentation="inline"]:not(
|
|
448
|
+
[data-collapsed="true"],
|
|
449
|
+
[data-content-overflow="visible"]
|
|
450
|
+
)
|
|
451
|
+
) {
|
|
452
|
+
z-index: 3;
|
|
453
|
+
clip-path: inset(-10px 0 0);
|
|
454
|
+
}
|
|
455
|
+
|
|
456
|
+
.kui-workbench__rail--left[data-resizable="true"][data-presentation="inline"]
|
|
457
|
+
> .kui-workbench__handle {
|
|
458
|
+
inset-inline-end: -10px;
|
|
459
|
+
}
|
|
460
|
+
|
|
461
|
+
.kui-workbench__rail--right[data-resizable="true"][data-presentation="inline"]
|
|
462
|
+
> .kui-workbench__handle {
|
|
463
|
+
inset-inline-start: -10px;
|
|
464
|
+
}
|
|
465
|
+
|
|
466
|
+
.kui-workbench__drawer[data-resizable="true"][data-presentation="inline"]
|
|
467
|
+
> .kui-workbench__handle {
|
|
468
|
+
inset-block-start: -10px;
|
|
469
|
+
}
|
|
470
|
+
}
|
|
471
|
+
|
|
472
|
+
@supports (overflow-clip-margin: 10px) {
|
|
473
|
+
.kui-workbench__rail[data-resizable="true"]:not(
|
|
474
|
+
[data-collapsed="true"],
|
|
475
|
+
[data-content-overflow="visible"]
|
|
476
|
+
),
|
|
477
|
+
.kui-workbench__drawer[data-resizable="true"]:not(
|
|
478
|
+
[data-collapsed="true"],
|
|
479
|
+
[data-content-overflow="visible"]
|
|
480
|
+
) {
|
|
481
|
+
overflow: clip;
|
|
482
|
+
overflow-clip-margin: 10px;
|
|
483
|
+
}
|
|
484
|
+
|
|
485
|
+
.kui-workbench__rail--left[data-resizable="true"] > .kui-workbench__handle {
|
|
486
|
+
inset-inline-end: -10px;
|
|
487
|
+
}
|
|
488
|
+
|
|
489
|
+
.kui-workbench__rail--right[data-resizable="true"] > .kui-workbench__handle {
|
|
490
|
+
inset-inline-start: -10px;
|
|
491
|
+
}
|
|
492
|
+
|
|
493
|
+
.kui-workbench__drawer[data-resizable="true"] > .kui-workbench__handle {
|
|
494
|
+
inset-block-start: -10px;
|
|
495
|
+
}
|
|
496
|
+
}
|
|
497
|
+
|
|
498
|
+
.kui-workbench__handle:hover,
|
|
499
|
+
.kui-workbench__handle:focus-visible {
|
|
500
|
+
color: var(--kui-color-text-link);
|
|
501
|
+
}
|
|
502
|
+
|
|
503
|
+
/* The ring stays wholly inside the handle's box, as a ResizableRegion
|
|
504
|
+
handle's does. */
|
|
505
|
+
.kui-workbench__handle:focus-visible {
|
|
506
|
+
border-radius: var(--kui-radius-s);
|
|
507
|
+
outline: var(--kui-focus-ring);
|
|
508
|
+
outline-offset: -3px;
|
|
509
|
+
}
|
|
510
|
+
|
|
511
|
+
.kui-workbench__handle-icon {
|
|
512
|
+
position: relative;
|
|
513
|
+
display: grid;
|
|
514
|
+
width: 0.9rem;
|
|
515
|
+
height: 0.9rem;
|
|
516
|
+
opacity: 0;
|
|
517
|
+
pointer-events: none;
|
|
518
|
+
place-items: center;
|
|
519
|
+
}
|
|
520
|
+
|
|
521
|
+
.kui-workbench__handle-icon > svg {
|
|
522
|
+
width: 100%;
|
|
523
|
+
height: 100%;
|
|
524
|
+
}
|
|
525
|
+
|
|
526
|
+
.kui-workbench__handle:hover .kui-workbench__handle-icon,
|
|
527
|
+
.kui-workbench__handle:focus-visible .kui-workbench__handle-icon {
|
|
528
|
+
opacity: 1;
|
|
529
|
+
}
|
|
530
|
+
|
|
531
|
+
/* Overlay stacking order: both rails stack above the bottom drawer, one below
|
|
532
|
+
the overlay z-index, as inline rails span the Workbench's full height beside
|
|
533
|
+
the drawer's column; the right rail stacks above the left (document order).
|
|
534
|
+
Restore controls stack below every overlay (see .kui-workbench__restore). */
|
|
535
|
+
.kui-workbench__rail[data-presentation="overlay"],
|
|
536
|
+
.kui-workbench__drawer[data-presentation="overlay"] {
|
|
537
|
+
position: absolute;
|
|
538
|
+
z-index: var(--kui-workbench-overlay-z, 41);
|
|
539
|
+
box-shadow: var(--kui-shadow-l);
|
|
540
|
+
}
|
|
541
|
+
|
|
542
|
+
/* An out-of-flow rail sizes to its content plus its border, so it takes its
|
|
543
|
+
extent explicitly, as its in-flow flex basis does, border included. Each
|
|
544
|
+
overlay maximum caps only the panel's own axis: a rail spans the
|
|
545
|
+
Workbench's full height and a drawer its full width. */
|
|
546
|
+
.kui-workbench__rail[data-presentation="overlay"] {
|
|
547
|
+
width: var(--_kui-workbench-rail-extent);
|
|
548
|
+
max-width: var(--kui-workbench-overlay-max-width, 85vw);
|
|
549
|
+
inset-block: 0;
|
|
550
|
+
}
|
|
551
|
+
|
|
552
|
+
.kui-workbench__rail--left[data-presentation="overlay"] {
|
|
553
|
+
inset-inline-start: 0;
|
|
554
|
+
}
|
|
555
|
+
|
|
556
|
+
.kui-workbench__rail--right[data-presentation="overlay"] {
|
|
557
|
+
inset-inline-end: 0;
|
|
558
|
+
}
|
|
559
|
+
|
|
560
|
+
/* The drawer's content is absolutely positioned against its bottom edge, so
|
|
561
|
+
an out-of-flow drawer has no content height of its own: it takes its extent
|
|
562
|
+
explicitly, as the in-flow track does through its flex basis. */
|
|
563
|
+
.kui-workbench__drawer[data-presentation="overlay"] {
|
|
564
|
+
z-index: calc(var(--kui-workbench-overlay-z, 41) - 1);
|
|
565
|
+
height: var(--_kui-workbench-drawer-extent);
|
|
566
|
+
max-height: var(--kui-workbench-overlay-max-height, 85vh);
|
|
567
|
+
inset-inline: 0;
|
|
568
|
+
inset-block-end: 0;
|
|
569
|
+
}
|
|
570
|
+
|
|
571
|
+
/* Optional shared backdrop sits over work-area controls and restores, below
|
|
572
|
+
the overlay drawer and rails. It is last in document order so an equal-z
|
|
573
|
+
restore control cannot receive the outside press. */
|
|
574
|
+
.kui-workbench__backdrop {
|
|
575
|
+
position: absolute;
|
|
576
|
+
z-index: calc(var(--kui-workbench-overlay-z, 41) - 2);
|
|
577
|
+
display: none;
|
|
578
|
+
inset: 0;
|
|
579
|
+
background: var(--kui-color-scrim, rgb(0 0 0 / 32%));
|
|
580
|
+
}
|
|
581
|
+
|
|
582
|
+
.kui-workbench[data-overlay-backdrop="true"]:is(
|
|
583
|
+
[data-rail-overlay-expanded="true"],
|
|
584
|
+
[data-drawer-overlay-expanded="true"]
|
|
585
|
+
)
|
|
586
|
+
> .kui-workbench__backdrop {
|
|
587
|
+
display: block;
|
|
588
|
+
}
|
|
589
|
+
|
|
590
|
+
/* A collapsed overlay keeps its box for the slide-out, so it drops its surface
|
|
591
|
+
and shadow; the sliding content carries the surface instead. */
|
|
592
|
+
.kui-workbench__rail[data-presentation="overlay"][data-collapsed="true"],
|
|
593
|
+
.kui-workbench__drawer[data-presentation="overlay"][data-collapsed="true"] {
|
|
594
|
+
background: transparent;
|
|
595
|
+
box-shadow: none;
|
|
596
|
+
pointer-events: none;
|
|
597
|
+
}
|
|
598
|
+
|
|
599
|
+
/* Overlay content fills the rail inside its separator border, so it is
|
|
600
|
+
clamped with the rail and carries the surface through the slide-out. */
|
|
601
|
+
.kui-workbench__rail[data-presentation="overlay"]
|
|
602
|
+
> .kui-workbench__panel-content {
|
|
603
|
+
width: 100%;
|
|
604
|
+
background: var(--kui-color-surface);
|
|
605
|
+
}
|
|
606
|
+
|
|
607
|
+
/* The overlay content fills the drawer box below its separator border, so it
|
|
608
|
+
is clamped with the box and carries the surface through the slide-out. */
|
|
609
|
+
.kui-workbench__drawer[data-presentation="overlay"]
|
|
610
|
+
> .kui-workbench__panel-content {
|
|
611
|
+
height: 100%;
|
|
612
|
+
background: var(--kui-color-surface);
|
|
613
|
+
}
|
|
614
|
+
|
|
615
|
+
.kui-workbench__rail[data-presentation="hidden"],
|
|
616
|
+
.kui-workbench__drawer[data-presentation="hidden"] {
|
|
617
|
+
display: none;
|
|
618
|
+
}
|
|
619
|
+
|
|
620
|
+
/* Responsive overlay panels. A rail or the drawer with `responsiveOverlayAt`
|
|
621
|
+
presents as an overlay — out of flow, over the work area, without a
|
|
622
|
+
separator — below the Workbench's own container breakpoint (`narrow`: 704px
|
|
623
|
+
or less, `compact`: 448px or less, as `ResizableRegion`'s
|
|
624
|
+
`responsiveFillAt`), and inline above it. The Workbench becomes a named
|
|
625
|
+
inline-size container only when a panel opts in. The work area keeps its
|
|
626
|
+
safe-area inset under an overlay panel. */
|
|
627
|
+
.kui-workbench[data-responsive-overlay="true"] {
|
|
628
|
+
container: kui-workbench / inline-size;
|
|
629
|
+
}
|
|
630
|
+
|
|
631
|
+
/* A numeric pixel threshold is measured by wireWorkbench and marked on the
|
|
632
|
+
panel. Keep its overlay geometry and covered work area in step with that
|
|
633
|
+
single mark, including when the app changes the threshold at render time. */
|
|
634
|
+
.kui-workbench__rail[data-responsive-overlay-active="true"] {
|
|
635
|
+
position: absolute;
|
|
636
|
+
z-index: var(--kui-workbench-overlay-z, 41);
|
|
637
|
+
width: var(--_kui-workbench-rail-extent);
|
|
638
|
+
max-width: var(--kui-workbench-overlay-max-width, 85vw);
|
|
639
|
+
inset-block: 0;
|
|
640
|
+
box-shadow: var(--kui-shadow-l);
|
|
641
|
+
clip-path: none;
|
|
642
|
+
}
|
|
643
|
+
|
|
644
|
+
.kui-workbench__rail--left[data-responsive-overlay-active="true"] {
|
|
645
|
+
inset-inline-start: 0;
|
|
646
|
+
}
|
|
647
|
+
|
|
648
|
+
.kui-workbench__rail--right[data-responsive-overlay-active="true"] {
|
|
649
|
+
inset-inline-end: 0;
|
|
650
|
+
}
|
|
651
|
+
|
|
652
|
+
.kui-workbench__rail[data-responsive-overlay-active="true"][data-collapsed="true"],
|
|
653
|
+
.kui-workbench__drawer[data-responsive-overlay-active="true"][data-collapsed="true"] {
|
|
654
|
+
background: transparent;
|
|
655
|
+
box-shadow: none;
|
|
656
|
+
pointer-events: none;
|
|
657
|
+
}
|
|
658
|
+
|
|
659
|
+
.kui-workbench__rail[data-responsive-overlay-active="true"]
|
|
660
|
+
> .kui-workbench__panel-content {
|
|
661
|
+
width: 100%;
|
|
662
|
+
background: var(--kui-color-surface);
|
|
663
|
+
}
|
|
664
|
+
|
|
665
|
+
.kui-workbench__rail[data-responsive-overlay-active="true"]
|
|
666
|
+
> .kui-workbench__handle,
|
|
667
|
+
.kui-workbench__drawer[data-responsive-overlay-active="true"]
|
|
668
|
+
> .kui-workbench__handle {
|
|
669
|
+
display: none;
|
|
670
|
+
}
|
|
671
|
+
|
|
672
|
+
.kui-workbench[data-numeric-overlays~="left"] > .kui-workbench__center {
|
|
673
|
+
--kui-edge-inset-inline-start: var(--_kui-workbench-safe-inline-start);
|
|
674
|
+
}
|
|
675
|
+
|
|
676
|
+
.kui-workbench[data-numeric-overlays~="right"] > .kui-workbench__center {
|
|
677
|
+
--kui-edge-inset-inline-end: var(--_kui-workbench-safe-inline-end);
|
|
678
|
+
}
|
|
679
|
+
|
|
680
|
+
.kui-workbench__drawer[data-responsive-overlay-active="true"] {
|
|
681
|
+
position: absolute;
|
|
682
|
+
anchor-name: none;
|
|
683
|
+
z-index: calc(var(--kui-workbench-overlay-z, 41) - 1);
|
|
684
|
+
height: var(--_kui-workbench-drawer-extent);
|
|
685
|
+
max-height: var(--kui-workbench-overlay-max-height, 85vh);
|
|
686
|
+
inset-inline: 0;
|
|
687
|
+
inset-block-end: 0;
|
|
688
|
+
box-shadow: var(--kui-shadow-l);
|
|
689
|
+
clip-path: none;
|
|
690
|
+
}
|
|
691
|
+
|
|
692
|
+
.kui-workbench__drawer[data-responsive-overlay-active="true"]
|
|
693
|
+
> .kui-workbench__panel-content {
|
|
694
|
+
height: 100%;
|
|
695
|
+
background: var(--kui-color-surface);
|
|
696
|
+
}
|
|
697
|
+
|
|
698
|
+
.kui-workbench[data-numeric-overlays~="drawer"]
|
|
699
|
+
> .kui-workbench__center
|
|
700
|
+
> .kui-workbench__main {
|
|
701
|
+
--_kui-workbench-content-edge-block-end: var(--_kui-workbench-safe-block-end);
|
|
702
|
+
}
|
|
703
|
+
|
|
704
|
+
.kui-workbench[data-overlay-backdrop="true"][data-numeric-overlays~="open"]
|
|
705
|
+
> .kui-workbench__backdrop {
|
|
706
|
+
display: block;
|
|
707
|
+
}
|
|
708
|
+
|
|
709
|
+
@container kui-workbench (max-width: 44rem) {
|
|
710
|
+
.kui-workbench[data-overlay-backdrop="true"]:is(
|
|
711
|
+
[data-left-responsive-expanded="narrow"],
|
|
712
|
+
[data-right-responsive-expanded="narrow"],
|
|
713
|
+
[data-drawer-responsive-expanded="narrow"]
|
|
714
|
+
)
|
|
715
|
+
> .kui-workbench__backdrop {
|
|
716
|
+
display: block;
|
|
717
|
+
}
|
|
718
|
+
|
|
719
|
+
.kui-workbench__rail[data-responsive-overlay-at="narrow"] {
|
|
720
|
+
position: absolute;
|
|
721
|
+
z-index: var(--kui-workbench-overlay-z, 41);
|
|
722
|
+
width: var(--_kui-workbench-rail-extent);
|
|
723
|
+
max-width: var(--kui-workbench-overlay-max-width, 85vw);
|
|
724
|
+
inset-block: 0;
|
|
725
|
+
box-shadow: var(--kui-shadow-l);
|
|
726
|
+
clip-path: none;
|
|
727
|
+
}
|
|
728
|
+
|
|
729
|
+
.kui-workbench__rail--left[data-responsive-overlay-at="narrow"] {
|
|
730
|
+
inset-inline-start: 0;
|
|
731
|
+
}
|
|
732
|
+
|
|
733
|
+
.kui-workbench__rail--right[data-responsive-overlay-at="narrow"] {
|
|
734
|
+
inset-inline-end: 0;
|
|
735
|
+
}
|
|
736
|
+
|
|
737
|
+
.kui-workbench__rail[data-responsive-overlay-at="narrow"][data-collapsed="true"] {
|
|
738
|
+
background: transparent;
|
|
739
|
+
box-shadow: none;
|
|
740
|
+
pointer-events: none;
|
|
741
|
+
}
|
|
742
|
+
|
|
743
|
+
.kui-workbench__rail[data-responsive-overlay-at="narrow"]
|
|
744
|
+
> .kui-workbench__panel-content {
|
|
745
|
+
width: 100%;
|
|
746
|
+
background: var(--kui-color-surface);
|
|
747
|
+
}
|
|
748
|
+
|
|
749
|
+
.kui-workbench__rail[data-responsive-overlay-at="narrow"]
|
|
750
|
+
> .kui-workbench__handle {
|
|
751
|
+
display: none;
|
|
752
|
+
}
|
|
753
|
+
|
|
754
|
+
.kui-workbench[data-left-responsive-inline="narrow"]
|
|
755
|
+
> .kui-workbench__center {
|
|
756
|
+
--kui-edge-inset-inline-start: var(--_kui-workbench-safe-inline-start);
|
|
757
|
+
}
|
|
758
|
+
|
|
759
|
+
.kui-workbench[data-right-responsive-inline="narrow"]
|
|
760
|
+
> .kui-workbench__center {
|
|
761
|
+
--kui-edge-inset-inline-end: var(--_kui-workbench-safe-inline-end);
|
|
762
|
+
}
|
|
763
|
+
|
|
764
|
+
.kui-workbench__drawer[data-responsive-overlay-at="narrow"] {
|
|
765
|
+
position: absolute;
|
|
766
|
+
anchor-name: none;
|
|
767
|
+
z-index: calc(var(--kui-workbench-overlay-z, 41) - 1);
|
|
768
|
+
height: var(--_kui-workbench-drawer-extent);
|
|
769
|
+
max-height: var(--kui-workbench-overlay-max-height, 85vh);
|
|
770
|
+
inset-inline: 0;
|
|
771
|
+
inset-block-end: 0;
|
|
772
|
+
box-shadow: var(--kui-shadow-l);
|
|
773
|
+
clip-path: none;
|
|
774
|
+
}
|
|
775
|
+
|
|
776
|
+
.kui-workbench__drawer[data-responsive-overlay-at="narrow"][data-collapsed="true"] {
|
|
777
|
+
background: transparent;
|
|
778
|
+
box-shadow: none;
|
|
779
|
+
pointer-events: none;
|
|
780
|
+
}
|
|
781
|
+
|
|
782
|
+
.kui-workbench__drawer[data-responsive-overlay-at="narrow"]
|
|
783
|
+
> .kui-workbench__panel-content {
|
|
784
|
+
height: 100%;
|
|
785
|
+
background: var(--kui-color-surface);
|
|
786
|
+
}
|
|
787
|
+
|
|
788
|
+
.kui-workbench__drawer[data-responsive-overlay-at="narrow"]
|
|
789
|
+
> .kui-workbench__handle {
|
|
790
|
+
display: none;
|
|
791
|
+
}
|
|
792
|
+
|
|
793
|
+
.kui-workbench__main[data-drawer-responsive-inline="narrow"] {
|
|
794
|
+
--_kui-workbench-content-edge-block-end: var(
|
|
795
|
+
--_kui-workbench-safe-block-end
|
|
796
|
+
);
|
|
797
|
+
}
|
|
798
|
+
}
|
|
799
|
+
|
|
800
|
+
@container kui-workbench (max-width: 28rem) {
|
|
801
|
+
.kui-workbench[data-overlay-backdrop="true"]:is(
|
|
802
|
+
[data-left-responsive-expanded="compact"],
|
|
803
|
+
[data-right-responsive-expanded="compact"],
|
|
804
|
+
[data-drawer-responsive-expanded="compact"]
|
|
805
|
+
)
|
|
806
|
+
> .kui-workbench__backdrop {
|
|
807
|
+
display: block;
|
|
808
|
+
}
|
|
809
|
+
|
|
810
|
+
.kui-workbench__rail[data-responsive-overlay-at="compact"] {
|
|
811
|
+
position: absolute;
|
|
812
|
+
z-index: var(--kui-workbench-overlay-z, 41);
|
|
813
|
+
width: var(--_kui-workbench-rail-extent);
|
|
814
|
+
max-width: var(--kui-workbench-overlay-max-width, 85vw);
|
|
815
|
+
inset-block: 0;
|
|
816
|
+
box-shadow: var(--kui-shadow-l);
|
|
817
|
+
clip-path: none;
|
|
818
|
+
}
|
|
819
|
+
|
|
820
|
+
.kui-workbench__rail--left[data-responsive-overlay-at="compact"] {
|
|
821
|
+
inset-inline-start: 0;
|
|
822
|
+
}
|
|
823
|
+
|
|
824
|
+
.kui-workbench__rail--right[data-responsive-overlay-at="compact"] {
|
|
825
|
+
inset-inline-end: 0;
|
|
826
|
+
}
|
|
827
|
+
|
|
828
|
+
.kui-workbench__rail[data-responsive-overlay-at="compact"][data-collapsed="true"] {
|
|
829
|
+
background: transparent;
|
|
830
|
+
box-shadow: none;
|
|
831
|
+
pointer-events: none;
|
|
832
|
+
}
|
|
833
|
+
|
|
834
|
+
.kui-workbench__rail[data-responsive-overlay-at="compact"]
|
|
835
|
+
> .kui-workbench__panel-content {
|
|
836
|
+
width: 100%;
|
|
837
|
+
background: var(--kui-color-surface);
|
|
838
|
+
}
|
|
839
|
+
|
|
840
|
+
.kui-workbench__rail[data-responsive-overlay-at="compact"]
|
|
841
|
+
> .kui-workbench__handle {
|
|
842
|
+
display: none;
|
|
843
|
+
}
|
|
844
|
+
|
|
845
|
+
.kui-workbench[data-left-responsive-inline="compact"]
|
|
846
|
+
> .kui-workbench__center {
|
|
847
|
+
--kui-edge-inset-inline-start: var(--_kui-workbench-safe-inline-start);
|
|
848
|
+
}
|
|
849
|
+
|
|
850
|
+
.kui-workbench[data-right-responsive-inline="compact"]
|
|
851
|
+
> .kui-workbench__center {
|
|
852
|
+
--kui-edge-inset-inline-end: var(--_kui-workbench-safe-inline-end);
|
|
853
|
+
}
|
|
854
|
+
|
|
855
|
+
.kui-workbench__drawer[data-responsive-overlay-at="compact"] {
|
|
856
|
+
position: absolute;
|
|
857
|
+
anchor-name: none;
|
|
858
|
+
z-index: calc(var(--kui-workbench-overlay-z, 41) - 1);
|
|
859
|
+
height: var(--_kui-workbench-drawer-extent);
|
|
860
|
+
max-height: var(--kui-workbench-overlay-max-height, 85vh);
|
|
861
|
+
inset-inline: 0;
|
|
862
|
+
inset-block-end: 0;
|
|
863
|
+
box-shadow: var(--kui-shadow-l);
|
|
864
|
+
clip-path: none;
|
|
865
|
+
}
|
|
866
|
+
|
|
867
|
+
.kui-workbench__drawer[data-responsive-overlay-at="compact"][data-collapsed="true"] {
|
|
868
|
+
background: transparent;
|
|
869
|
+
box-shadow: none;
|
|
870
|
+
pointer-events: none;
|
|
871
|
+
}
|
|
872
|
+
|
|
873
|
+
.kui-workbench__drawer[data-responsive-overlay-at="compact"]
|
|
874
|
+
> .kui-workbench__panel-content {
|
|
875
|
+
height: 100%;
|
|
876
|
+
background: var(--kui-color-surface);
|
|
877
|
+
}
|
|
878
|
+
|
|
879
|
+
.kui-workbench__drawer[data-responsive-overlay-at="compact"]
|
|
880
|
+
> .kui-workbench__handle {
|
|
881
|
+
display: none;
|
|
882
|
+
}
|
|
883
|
+
|
|
884
|
+
.kui-workbench__main[data-drawer-responsive-inline="compact"] {
|
|
885
|
+
--_kui-workbench-content-edge-block-end: var(
|
|
886
|
+
--_kui-workbench-safe-block-end
|
|
887
|
+
);
|
|
888
|
+
}
|
|
889
|
+
}
|
|
890
|
+
|
|
891
|
+
/* Release the panel and its sliding/scrolling content while a PopupMenu or
|
|
892
|
+
Web Awesome dropdown is open. This comes after resize clipping and keeps
|
|
893
|
+
the popup in place through wa-show/wa-after-hide without a prop change. */
|
|
894
|
+
.kui-workbench__rail:not([data-collapsed="true"]):has(wa-dropdown[open]),
|
|
895
|
+
.kui-workbench__drawer:not([data-collapsed="true"]):has(wa-dropdown[open]) {
|
|
896
|
+
overflow: visible;
|
|
897
|
+
clip-path: none;
|
|
898
|
+
}
|
|
899
|
+
.kui-workbench__rail:not([data-collapsed="true"]):has(wa-dropdown[open])
|
|
900
|
+
> .kui-workbench__panel-content,
|
|
901
|
+
.kui-workbench__drawer:not([data-collapsed="true"]):has(wa-dropdown[open])
|
|
902
|
+
> .kui-workbench__panel-content {
|
|
903
|
+
overflow: visible;
|
|
904
|
+
}
|
|
905
|
+
|
|
906
|
+
/* A collapsed panel's restore control floats in a corner of the Workbench
|
|
907
|
+
itself, never of the viewport, so an embedded Workbench cannot float it over
|
|
908
|
+
page chrome outside it. It is inset from the corner plus the unsafe area of
|
|
909
|
+
each edge that corner reaches. The drawer's control sits in the work-area
|
|
910
|
+
column it restores (the center is its containing block), inset from the
|
|
911
|
+
edges that column still reaches, so it never lands on an expanded rail.
|
|
912
|
+
It belongs to the layer beneath the overlays, two below the overlay
|
|
913
|
+
z-index: an open overlay covers it as it covers the rest of the work area,
|
|
914
|
+
so no other panel's control floats over the overlay's content. A collapsed
|
|
915
|
+
overlay drops its pointer events, so the control stays usable beneath it. */
|
|
916
|
+
.kui-workbench__restore {
|
|
917
|
+
--_kui-workbench-restore-inset: var(
|
|
918
|
+
--kui-workbench-restore-inset,
|
|
919
|
+
1rem
|
|
920
|
+
);
|
|
921
|
+
position: absolute;
|
|
922
|
+
/* Hidden while an open rail overlay covers the work area (see below). */
|
|
923
|
+
visibility: var(
|
|
924
|
+
--_kui-workbench-covered,
|
|
925
|
+
var(
|
|
926
|
+
--_kui-collapsible-panel-covered,
|
|
927
|
+
var(--_kui-resizable-region-covered, inherit)
|
|
928
|
+
)
|
|
929
|
+
);
|
|
930
|
+
z-index: var(
|
|
931
|
+
--kui-workbench-restore-z,
|
|
932
|
+
calc(var(--kui-workbench-overlay-z, 41) - 2)
|
|
933
|
+
);
|
|
934
|
+
inset-block-end: calc(
|
|
935
|
+
var(--_kui-workbench-restore-inset) + var(--_kui-workbench-safe-block-end)
|
|
936
|
+
);
|
|
937
|
+
}
|
|
938
|
+
|
|
939
|
+
.kui-workbench__restore[data-position="bottom-start"] {
|
|
940
|
+
inset-inline-start: calc(
|
|
941
|
+
var(--_kui-workbench-restore-inset) +
|
|
942
|
+
var(--_kui-workbench-safe-inline-start)
|
|
943
|
+
);
|
|
944
|
+
}
|
|
945
|
+
|
|
946
|
+
.kui-workbench__restore[data-position="bottom-end"] {
|
|
947
|
+
inset-inline-end: calc(
|
|
948
|
+
var(--_kui-workbench-restore-inset) + var(--_kui-workbench-safe-inline-end)
|
|
949
|
+
);
|
|
950
|
+
}
|
|
951
|
+
|
|
952
|
+
/* An expanded inline bottom drawer owns the bottom of the work-area column,
|
|
953
|
+
which reaches the Workbench's bottom corners once a rail collapses, so a
|
|
954
|
+
collapsed rail's control floats the restore inset above the drawer's top
|
|
955
|
+
edge instead of over it — the standalone CollapsiblePanel rule, scoped to
|
|
956
|
+
this Workbench so a nested Workbench or an enclosing layout never sees its
|
|
957
|
+
drawer. The drawer publishes that edge only while it is expanded and in
|
|
958
|
+
flow: an overlay drawer, static or responsive (see the container queries
|
|
959
|
+
above), covers the control as every open overlay does. Without anchor
|
|
960
|
+
positioning the control keeps the Workbench corner. */
|
|
961
|
+
.kui-workbench {
|
|
962
|
+
anchor-scope: --kui-restore-drawer;
|
|
963
|
+
}
|
|
964
|
+
|
|
965
|
+
.kui-workbench__drawer:where(
|
|
966
|
+
[data-presentation="inline"]:not([data-collapsed="true"])
|
|
967
|
+
) {
|
|
968
|
+
anchor-name: --kui-restore-drawer;
|
|
969
|
+
}
|
|
970
|
+
|
|
971
|
+
.kui-workbench > .kui-workbench__restore {
|
|
972
|
+
position-visibility: always;
|
|
973
|
+
inset-block-end: calc(
|
|
974
|
+
var(--_kui-workbench-restore-inset) +
|
|
975
|
+
anchor(--kui-restore-drawer top, var(--_kui-workbench-safe-block-end))
|
|
976
|
+
);
|
|
977
|
+
}
|
|
978
|
+
|
|
979
|
+
.kui-workbench__center > .kui-workbench__restore {
|
|
980
|
+
inset-block-end: calc(
|
|
981
|
+
var(--_kui-workbench-restore-inset) + var(--kui-edge-inset-block-end)
|
|
982
|
+
);
|
|
983
|
+
}
|
|
984
|
+
|
|
985
|
+
.kui-workbench__center > .kui-workbench__restore[data-position="bottom-start"] {
|
|
986
|
+
inset-inline-start: calc(
|
|
987
|
+
var(--_kui-workbench-restore-inset) + var(--kui-edge-inset-inline-start)
|
|
988
|
+
);
|
|
989
|
+
}
|
|
990
|
+
|
|
991
|
+
.kui-workbench__center > .kui-workbench__restore[data-position="bottom-end"] {
|
|
992
|
+
inset-inline-end: calc(
|
|
993
|
+
var(--_kui-workbench-restore-inset) + var(--kui-edge-inset-inline-end)
|
|
994
|
+
);
|
|
995
|
+
}
|
|
996
|
+
|
|
997
|
+
/* An open rail overlay — static or a responsive one whose breakpoint applies —
|
|
998
|
+
covers the work area, so the work area's floating controls (a
|
|
999
|
+
FloatingToolbar in main, the drawer's restore corner, the other rail's
|
|
1000
|
+
restore corner) are hidden, not merely stacked beneath it: they never paint
|
|
1001
|
+
over the overlay whatever stacking context an app puts them in, and hidden
|
|
1002
|
+
they leave the tab order and the accessibility tree. They come back as the
|
|
1003
|
+
overlay closes. The Workbench's own covered context,
|
|
1004
|
+
`--_kui-workbench-covered`, is set on the rail's siblings only (never on
|
|
1005
|
+
the open rail), so the overlay's own floating controls stay; FloatingToolbar
|
|
1006
|
+
and the layouts' restore corners read it. A direct child
|
|
1007
|
+
resolves the Workbench's own container query, never a nested one's. */
|
|
1008
|
+
.kui-workbench[data-rail-overlay-expanded="true"]
|
|
1009
|
+
> :is(.kui-workbench__center, .kui-workbench__restore) {
|
|
1010
|
+
--_kui-workbench-covered: hidden;
|
|
1011
|
+
}
|
|
1012
|
+
|
|
1013
|
+
.kui-workbench[data-numeric-overlays~="rail-open"]
|
|
1014
|
+
> :is(.kui-workbench__center, .kui-workbench__restore) {
|
|
1015
|
+
--_kui-workbench-covered: hidden;
|
|
1016
|
+
}
|
|
1017
|
+
|
|
1018
|
+
@container kui-workbench (max-width: 44rem) {
|
|
1019
|
+
.kui-workbench:is(
|
|
1020
|
+
[data-left-responsive-expanded="narrow"],
|
|
1021
|
+
[data-right-responsive-expanded="narrow"]
|
|
1022
|
+
)
|
|
1023
|
+
> :is(.kui-workbench__center, .kui-workbench__restore) {
|
|
1024
|
+
--_kui-workbench-covered: hidden;
|
|
1025
|
+
}
|
|
1026
|
+
}
|
|
1027
|
+
|
|
1028
|
+
@container kui-workbench (max-width: 28rem) {
|
|
1029
|
+
.kui-workbench:is(
|
|
1030
|
+
[data-left-responsive-expanded="compact"],
|
|
1031
|
+
[data-right-responsive-expanded="compact"]
|
|
1032
|
+
)
|
|
1033
|
+
> :is(.kui-workbench__center, .kui-workbench__restore) {
|
|
1034
|
+
--_kui-workbench-covered: hidden;
|
|
1035
|
+
}
|
|
1036
|
+
}
|
|
1037
|
+
|
|
90
1038
|
@media (prefers-reduced-motion: reduce) {
|
|
91
1039
|
.kui-workbench__panel-content {
|
|
92
1040
|
transition: none;
|
|
93
1041
|
}
|
|
94
1042
|
}
|
|
1043
|
+
|
|
1044
|
+
/* On a compact (phone-sized) Workbench an overlay rail fills the Workbench
|
|
1045
|
+
less a dismiss margin on the side away from its edge, so a press beside it
|
|
1046
|
+
closes it (the wiring's outside press); `compactOverlay: "full"` fills the
|
|
1047
|
+
Workbench. The rail's resize and configured size stop applying there. */
|
|
1048
|
+
@container kui-workbench (max-width: 28rem) {
|
|
1049
|
+
.kui-workbench__rail:is(
|
|
1050
|
+
[data-responsive-overlay-at="narrow"],
|
|
1051
|
+
[data-responsive-overlay-at="compact"],
|
|
1052
|
+
[data-responsive-overlay-active="true"]
|
|
1053
|
+
) {
|
|
1054
|
+
width: calc(
|
|
1055
|
+
100% - var(--kui-workbench-overlay-dismiss-margin, 2.75rem)
|
|
1056
|
+
);
|
|
1057
|
+
max-width: none;
|
|
1058
|
+
}
|
|
1059
|
+
|
|
1060
|
+
.kui-workbench__rail:is(
|
|
1061
|
+
[data-responsive-overlay-at="narrow"],
|
|
1062
|
+
[data-responsive-overlay-at="compact"],
|
|
1063
|
+
[data-responsive-overlay-active="true"]
|
|
1064
|
+
)[data-compact-overlay="full"] {
|
|
1065
|
+
width: 100%;
|
|
1066
|
+
}
|
|
1067
|
+
}
|