@kerfjs/ui 5.0.0-beta.3 → 5.0.0-beta.30
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 +320 -107
- package/ai/application-ui-diagnostic-ids-v1.json +100 -0
- package/ai/application-ui-profile-sync.cjs +529 -0
- package/ai/application-ui-profile.d.mts +1 -0
- package/ai/application-ui-profile.d.ts +102 -0
- package/ai/application-ui-profile.defaults.json +41 -0
- package/ai/application-ui-profile.mjs +626 -0
- package/ai/application-ui-profile.schema.json +130 -0
- package/ai/catalog-authoring.json +25 -0
- package/ai/catalog-authoring.schema.json +61 -0
- package/ai/compile-time-contracts-v1.json +131 -0
- package/ai/compile-time-contracts-v1.schema.json +51 -0
- package/ai/component-catalog-extension-v2.d.ts +7 -0
- package/ai/component-catalog-extension-v2.schema.json +7 -0
- package/ai/component-catalog-extension.schema.json +79 -0
- package/ai/component-catalog-v2-overrides.json +486 -0
- package/ai/component-catalog-v2.d.ts +90 -0
- package/ai/component-catalog-v2.json +5455 -0
- package/ai/component-catalog-v2.schema.json +298 -0
- package/ai/component-catalog.json +2437 -419
- package/ai/component-catalog.schema.json +39 -0
- package/ai/public-api-signatures-v1.md +1442 -124
- package/ai/skill.md +131 -54
- package/ai/webawesome-jsx-signatures-v1.md +2 -1
- package/analyzer/cli.mjs +49 -0
- package/analyzer/index.d.mts +46 -0
- package/analyzer/index.mjs +1086 -0
- package/analyzer/report.schema.json +66 -0
- package/dist/app-tab.d.ts +15 -4
- package/dist/app-tab.js +3 -1
- package/dist/browser/app-tab.js +1 -0
- package/dist/browser/floating-toolbar.js +3 -0
- package/dist/browser/list-action-row.js +5 -0
- package/dist/browser/{menu-header.js → list-header.js} +3 -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/pane.js +3 -0
- package/dist/browser/segmented-control.js +1 -0
- package/dist/browser/select.js +1 -0
- package/dist/browser/skeleton.js +3 -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/toolbar-text.js +1 -0
- package/dist/browser/value-table.js +1 -0
- package/dist/catalog-resources.d.ts +35 -0
- package/dist/catalog-resources.js +22 -0
- package/dist/catalog-resources.js.map +1 -0
- package/dist/catalog.d.ts +151 -0
- package/dist/catalog.js +379 -0
- package/dist/catalog.js.map +1 -0
- package/dist/chunk-6NDBE2OK.js +32 -0
- package/dist/chunk-6NDBE2OK.js.map +1 -0
- package/dist/chunk-6WTETUZ6.js +21 -0
- package/dist/chunk-6WTETUZ6.js.map +1 -0
- package/dist/chunk-AQFWBG23.js +83 -0
- package/dist/chunk-AQFWBG23.js.map +1 -0
- package/dist/chunk-B6JYRX3P.js +51 -0
- package/dist/chunk-B6JYRX3P.js.map +1 -0
- package/dist/chunk-CAB6NQ2T.js +102 -0
- package/dist/chunk-CAB6NQ2T.js.map +1 -0
- package/dist/chunk-CK6P5AUK.js +136 -0
- package/dist/chunk-CK6P5AUK.js.map +1 -0
- package/dist/chunk-DAO2VFTT.js +129 -0
- package/dist/chunk-DAO2VFTT.js.map +1 -0
- package/dist/chunk-DYBPI5O2.js +25 -0
- package/dist/chunk-DYBPI5O2.js.map +1 -0
- package/dist/{chunk-TRNBHPNW.js → chunk-E34TE2ZI.js} +12 -8
- package/dist/chunk-E34TE2ZI.js.map +1 -0
- package/dist/chunk-I45QO2IZ.js +88 -0
- package/dist/chunk-I45QO2IZ.js.map +1 -0
- package/dist/chunk-I4V3UDSA.js +79 -0
- package/dist/chunk-I4V3UDSA.js.map +1 -0
- package/dist/chunk-KFUUFNTS.js +15 -0
- package/dist/chunk-KFUUFNTS.js.map +1 -0
- package/dist/chunk-MFR2IIFG.js +20 -0
- package/dist/chunk-MFR2IIFG.js.map +1 -0
- package/dist/chunk-OC275HHS.js +128 -0
- package/dist/chunk-OC275HHS.js.map +1 -0
- package/dist/chunk-OL4TC3U2.js +156 -0
- package/dist/chunk-OL4TC3U2.js.map +1 -0
- package/dist/chunk-OMSRSL3B.js +120 -0
- package/dist/chunk-OMSRSL3B.js.map +1 -0
- package/dist/chunk-RL6COPKF.js +44 -0
- package/dist/chunk-RL6COPKF.js.map +1 -0
- package/dist/chunk-SOK5EUF7.js +25 -0
- package/dist/chunk-SOK5EUF7.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-T7DOWS6T.js +61 -0
- package/dist/chunk-T7DOWS6T.js.map +1 -0
- package/dist/chunk-TIGSG6BX.js +218 -0
- package/dist/chunk-TIGSG6BX.js.map +1 -0
- package/dist/chunk-UDHHKZWO.js +41 -0
- package/dist/chunk-UDHHKZWO.js.map +1 -0
- package/dist/{chunk-MQIZAD4A.js → chunk-UKKSMZYT.js} +76 -22
- package/dist/chunk-UKKSMZYT.js.map +1 -0
- package/dist/chunk-V6GQKOX2.js +39 -0
- package/dist/chunk-V6GQKOX2.js.map +1 -0
- package/dist/chunk-V6HCTCVD.js +46 -0
- package/dist/chunk-V6HCTCVD.js.map +1 -0
- package/dist/chunk-VDUJZF5G.js +515 -0
- package/dist/chunk-VDUJZF5G.js.map +1 -0
- package/dist/chunk-VXFGMDA7.js +31 -0
- package/dist/chunk-VXFGMDA7.js.map +1 -0
- package/dist/chunk-WN52USHV.js +115 -0
- package/dist/chunk-WN52USHV.js.map +1 -0
- package/dist/chunk-WSXUPSID.js +43 -0
- package/dist/chunk-WSXUPSID.js.map +1 -0
- package/dist/{chunk-56RJXPHG.js → chunk-Y6LYKFXY.js} +1 -1
- package/dist/{chunk-56RJXPHG.js.map → chunk-Y6LYKFXY.js.map} +1 -1
- package/dist/chunk-ZPWZIVI6.js +47 -0
- package/dist/chunk-ZPWZIVI6.js.map +1 -0
- package/dist/collapsible-panel.d.ts +77 -0
- package/dist/collapsible-panel.js +84 -0
- package/dist/collapsible-panel.js.map +1 -0
- package/dist/css-values.d.ts +75 -0
- package/dist/css-values.js +3 -0
- package/dist/css-values.js.map +1 -0
- package/dist/device-class.d.ts +62 -0
- package/dist/device-class.js +103 -0
- package/dist/device-class.js.map +1 -0
- package/dist/disclosure-arrow.js +1 -1
- package/dist/divider-sides-267FA7sY.d.ts +4 -0
- package/dist/empty-state.d.ts +3 -2
- package/dist/empty-state.js +1 -1
- package/dist/floating-toolbar.d.ts +29 -0
- package/dist/floating-toolbar.js +3 -0
- package/dist/floating-toolbar.js.map +1 -0
- package/dist/index.d.ts +23 -14
- package/dist/index.js +30 -23
- package/dist/{menu-action-row.d.ts → list-action-row.d.ts} +19 -8
- package/dist/list-action-row.js +7 -0
- package/dist/list-action-row.js.map +1 -0
- package/dist/list-header.d.ts +77 -0
- package/dist/list-header.js +8 -0
- package/dist/list-header.js.map +1 -0
- package/dist/list-inset-control.d.ts +17 -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 +26 -0
- package/dist/list-inset-text.js +3 -0
- package/dist/list-inset-text.js.map +1 -0
- package/dist/list-item.d.ts +45 -0
- package/dist/list-item.js +7 -0
- package/dist/list-item.js.map +1 -0
- package/dist/list.d.ts +21 -0
- package/dist/list.js +4 -0
- package/dist/list.js.map +1 -0
- package/dist/loading-spinner.js +1 -1
- package/dist/nav-stack.d.ts +41 -0
- package/dist/nav-stack.js +6 -0
- package/dist/nav-stack.js.map +1 -0
- package/dist/pane.d.ts +50 -0
- package/dist/pane.js +4 -0
- package/dist/pane.js.map +1 -0
- package/dist/resizable-region.d.ts +21 -3
- package/dist/resizable-region.js +1 -1
- package/dist/segmented-control.d.ts +11 -8
- package/dist/segmented-control.js +3 -1
- package/dist/select-register.d.ts +5 -1
- package/dist/select-register.js +3 -0
- package/dist/select-register.js.map +1 -1
- package/dist/select.d.ts +34 -8
- package/dist/select.js +3 -1
- package/dist/semantic-content-BbzjvSu9.d.ts +14 -0
- package/dist/skeleton.d.ts +25 -0
- package/dist/skeleton.js +4 -0
- package/dist/skeleton.js.map +1 -0
- package/dist/split-view.d.ts +43 -0
- package/dist/split-view.js +82 -0
- package/dist/split-view.js.map +1 -0
- package/dist/state-banner.d.ts +11 -5
- package/dist/state-banner.js +3 -1
- package/dist/styles/app-tab.css +26 -0
- package/dist/styles/catalog.css +582 -0
- package/dist/styles/collapsible-panel.css +212 -0
- package/dist/styles/floating-toolbar.css +38 -0
- package/dist/styles/foundation.css +80 -0
- package/dist/styles/layout.css +2 -20
- package/dist/styles/list-action-row.css +224 -0
- package/dist/styles/list-header.css +198 -0
- package/dist/styles/list-inset-control.css +7 -0
- package/dist/styles/list-inset-text.css +14 -0
- package/dist/styles/list-item.css +171 -0
- package/dist/styles/list.css +43 -0
- package/dist/styles/nav-stack.css +141 -0
- package/dist/styles/pane.css +62 -0
- package/dist/styles/resizable-region.css +158 -0
- package/dist/styles/segmented-control.css +10 -7
- package/dist/styles/select.css +115 -2
- package/dist/styles/skeleton.css +31 -0
- package/dist/styles/split-view.css +35 -0
- package/dist/styles/state-banner.css +49 -10
- package/dist/styles/styles.css +7 -5
- package/dist/styles/sunken-panel.css +22 -0
- package/dist/styles/surface-scaffold.css +51 -0
- package/dist/styles/tab-bar.css +24 -0
- package/dist/styles/tab-scaffold.css +85 -0
- package/dist/styles/token-search-field.css +14 -2
- package/dist/styles/toolbar-control-group.css +224 -6
- package/dist/styles/toolbar-text.css +65 -2
- package/dist/styles/toolbar.css +47 -2
- package/dist/styles/webawesome.css +165 -0
- package/dist/styles/workbench.css +187 -0
- package/dist/sunken-panel.d.ts +20 -0
- package/dist/sunken-panel.js +3 -0
- package/dist/sunken-panel.js.map +1 -0
- package/dist/surface-scaffold.d.ts +26 -0
- package/dist/surface-scaffold.js +3 -0
- package/dist/surface-scaffold.js.map +1 -0
- package/dist/tab-bar.d.ts +24 -6
- package/dist/tab-bar.js +1 -1
- package/dist/tab-scaffold.d.ts +31 -0
- package/dist/tab-scaffold.js +51 -0
- package/dist/tab-scaffold.js.map +1 -0
- package/dist/token-search-field.d.ts +30 -13
- package/dist/token-search-field.js +1 -1
- package/dist/toolbar-control-group.d.ts +33 -7
- package/dist/toolbar-control-group.js +1 -1
- package/dist/toolbar-text.d.ts +31 -4
- package/dist/toolbar-text.js +3 -1
- package/dist/toolbar.d.ts +10 -7
- package/dist/toolbar.js +1 -1
- package/dist/value-table.d.ts +7 -3
- package/dist/value-table.js +3 -1
- package/dist/webawesome.d.ts +1 -0
- package/dist/wire-catalog.d.ts +57 -0
- package/dist/wire-catalog.js +302 -0
- package/dist/wire-catalog.js.map +1 -0
- package/dist/wire-nav-stack.d.ts +18 -0
- package/dist/wire-nav-stack.js +228 -0
- package/dist/wire-nav-stack.js.map +1 -0
- package/dist/wire-resizable-regions.d.ts +1 -1
- package/dist/wire-resizable-regions.js +1 -1
- package/dist/wire-sidebar.d.ts +48 -0
- package/dist/wire-sidebar.js +147 -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.d.ts +11 -0
- package/dist/wire-tab-scaffold.js +21 -0
- package/dist/wire-tab-scaffold.js.map +1 -0
- package/dist/wire-token-search-fields.d.ts +104 -4
- package/dist/wire-token-search-fields.js +1 -1
- package/dist/workbench.d.ts +44 -0
- package/dist/workbench.js +106 -0
- package/dist/workbench.js.map +1 -0
- package/docs/accessibility.md +137 -20
- package/docs/app-layouts.md +61 -0
- package/docs/catalog.md +364 -0
- package/docs/collapsible-panel.md +142 -0
- package/docs/component-contract.md +253 -26
- package/docs/component-selection.md +213 -57
- 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/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 +128 -0
- package/docs/design-philosophy.md +33 -11
- package/docs/device-class.md +54 -0
- package/docs/examples/application-ui-profile.json +60 -0
- package/docs/examples/command-palette-adapter.tsx +67 -17
- package/docs/examples/component-catalog-extension-v2.json +80 -0
- package/docs/examples/component-catalog-extension.json +45 -0
- package/docs/layout.md +98 -37
- package/docs/nav-stack.md +77 -0
- package/docs/recipes.md +75 -19
- package/docs/split-view.md +55 -0
- package/docs/sunken-panel.md +53 -0
- package/docs/surface-scaffold.md +25 -0
- package/docs/tab-scaffold.md +52 -0
- package/docs/type-contracts.md +127 -0
- package/docs/ui-analyzer.md +118 -0
- package/docs/ui-doctor.md +91 -0
- package/docs/ui-evaluator.md +122 -0
- package/docs/ux-demo.md +24 -13
- package/docs/webawesome-theme.md +82 -8
- package/docs/workbench.md +123 -0
- package/doctor/cli.mjs +115 -0
- package/doctor/config.schema.json +68 -0
- package/doctor/eslint-diagnostics.d.mts +24 -0
- package/doctor/eslint-diagnostics.mjs +24 -0
- package/doctor/index.d.mts +116 -0
- package/doctor/index.mjs +1272 -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 +1138 -0
- package/evaluator/report.schema.json +152 -0
- package/llms.txt +253 -43
- package/package.json +180 -37
- package/traversal-exclusions.mjs +27 -0
- package/ux-demo/recipes/app-shell.tsx +222 -13
- package/ux-demo/recipes/collapsible-sidebar.tsx +229 -0
- package/ux-demo/recipes/compact-toolbar.tsx +115 -12
- package/ux-demo/recipes/composer-form.tsx +119 -18
- package/ux-demo/recipes/list-detail-dialog.tsx +197 -0
- package/ux-demo/recipes/list-workspace-states.tsx +175 -9
- package/ux-demo/recipes/loaders.ts +13 -4
- package/ux-demo/recipes/loading-inspector.tsx +186 -0
- package/ux-demo/recipes/mount-recipe.ts +31 -5
- package/ux-demo/recipes/navigation-sidebar.tsx +122 -11
- package/ux-demo/recipes/navigation-stack.tsx +118 -0
- package/ux-demo/recipes/recipes.css +143 -18
- package/ux-demo/recipes/types.ts +9 -1
- package/ux-demo/recipes/workspace-header.tsx +68 -3
- package/dist/browser/dialog-header.js +0 -5
- package/dist/browser/menu-action-row.js +0 -3
- package/dist/browser/menu-item.js +0 -3
- package/dist/browser/page-header.js +0 -3
- package/dist/chunk-2PES33HS.js +0 -13
- package/dist/chunk-2PES33HS.js.map +0 -1
- package/dist/chunk-55DATV3A.js +0 -10
- package/dist/chunk-55DATV3A.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-CTQKI2XL.js +0 -28
- package/dist/chunk-CTQKI2XL.js.map +0 -1
- package/dist/chunk-DAFFDO33.js +0 -14
- package/dist/chunk-DAFFDO33.js.map +0 -1
- package/dist/chunk-EGHL5S4P.js +0 -33
- package/dist/chunk-EGHL5S4P.js.map +0 -1
- package/dist/chunk-GY5WH7TO.js +0 -10
- package/dist/chunk-GY5WH7TO.js.map +0 -1
- package/dist/chunk-H5AGGVU5.js +0 -75
- package/dist/chunk-H5AGGVU5.js.map +0 -1
- package/dist/chunk-K3G72I6D.js +0 -24
- package/dist/chunk-K3G72I6D.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.map +0 -1
- package/dist/chunk-NPPD2A6O.js +0 -40
- package/dist/chunk-NPPD2A6O.js.map +0 -1
- package/dist/chunk-R6JHHBKQ.js +0 -19
- package/dist/chunk-R6JHHBKQ.js.map +0 -1
- package/dist/chunk-S3TPM2LP.js +0 -23
- package/dist/chunk-S3TPM2LP.js.map +0 -1
- package/dist/chunk-TRNBHPNW.js.map +0 -1
- package/dist/chunk-VHW5YNIB.js +0 -17
- package/dist/chunk-VHW5YNIB.js.map +0 -1
- package/dist/chunk-WVPYVDXY.js +0 -15
- package/dist/chunk-WVPYVDXY.js.map +0 -1
- package/dist/chunk-XZXRLY5Q.js +0 -33
- package/dist/chunk-XZXRLY5Q.js.map +0 -1
- package/dist/dialog-header.d.ts +0 -15
- package/dist/dialog-header.js +0 -5
- package/dist/dialog-header.js.map +0 -1
- package/dist/menu-action-row.js +0 -4
- package/dist/menu-action-row.js.map +0 -1
- package/dist/menu-header.d.ts +0 -41
- package/dist/menu-header.js +0 -6
- package/dist/menu-header.js.map +0 -1
- package/dist/menu-item.d.ts +0 -31
- package/dist/menu-item.js +0 -4
- package/dist/menu-item.js.map +0 -1
- package/dist/page-header.d.ts +0 -9
- package/dist/page-header.js +0 -3
- package/dist/page-header.js.map +0 -1
- package/dist/styles/dialog-header.css +0 -87
- package/dist/styles/menu-action-row.css +0 -154
- package/dist/styles/menu-header.css +0 -143
- package/dist/styles/menu-item.css +0 -118
- package/dist/styles/page-header.css +0 -26
- package/ux-demo/recipes/master-detail-dialog.tsx +0 -45
|
@@ -0,0 +1,212 @@
|
|
|
1
|
+
/* A standalone collapsible rail / drawer. Collapsing snaps the panel's own size
|
|
2
|
+
to zero (one reflow, no per-frame width/height animation) while the fixed-size
|
|
3
|
+
content slides out via transform (composited, clipped by overflow). The same
|
|
4
|
+
technique as Workbench and the catalog sidebar (docs/18). */
|
|
5
|
+
.kui-collapsible-panel {
|
|
6
|
+
overflow: hidden;
|
|
7
|
+
background: var(--kui-color-surface);
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
.kui-collapsible-panel--left,
|
|
11
|
+
.kui-collapsible-panel--right {
|
|
12
|
+
width: var(--kui-collapsible-panel-width, 17.5rem);
|
|
13
|
+
min-width: 0;
|
|
14
|
+
height: 100%;
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
.kui-collapsible-panel--left {
|
|
18
|
+
border-inline-end: 1px solid var(--kui-color-border);
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
.kui-collapsible-panel--right {
|
|
22
|
+
border-inline-start: 1px solid var(--kui-color-border);
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
.kui-collapsible-panel--bottom {
|
|
26
|
+
position: relative;
|
|
27
|
+
width: 100%;
|
|
28
|
+
height: var(--kui-collapsible-panel-height, 13.75rem);
|
|
29
|
+
min-height: 0;
|
|
30
|
+
border-block-start: 1px solid var(--kui-color-border);
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
.kui-collapsible-panel[data-collapsed="true"] {
|
|
34
|
+
border: 0;
|
|
35
|
+
}
|
|
36
|
+
|
|
37
|
+
.kui-collapsible-panel[data-separator="hidden"] {
|
|
38
|
+
border-color: transparent;
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
.kui-collapsible-panel[data-content-overflow="auto"] {
|
|
42
|
+
overflow: auto;
|
|
43
|
+
}
|
|
44
|
+
|
|
45
|
+
.kui-collapsible-panel[data-content-overflow="visible"] {
|
|
46
|
+
z-index: var(--kui-collapsible-panel-popup-z, 5);
|
|
47
|
+
overflow: visible;
|
|
48
|
+
}
|
|
49
|
+
|
|
50
|
+
.kui-collapsible-panel--left[data-collapsed="true"],
|
|
51
|
+
.kui-collapsible-panel--right[data-collapsed="true"] {
|
|
52
|
+
width: 0;
|
|
53
|
+
}
|
|
54
|
+
|
|
55
|
+
.kui-collapsible-panel--bottom[data-collapsed="true"] {
|
|
56
|
+
height: 0;
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
/* The fixed-size sliding content keeps a definite size so the transform reads
|
|
60
|
+
as a slide, not a squeeze. */
|
|
61
|
+
.kui-collapsible-panel__content {
|
|
62
|
+
height: 100%;
|
|
63
|
+
transition: transform 200ms ease;
|
|
64
|
+
}
|
|
65
|
+
|
|
66
|
+
.kui-collapsible-panel--left .kui-collapsible-panel__content,
|
|
67
|
+
.kui-collapsible-panel--right .kui-collapsible-panel__content {
|
|
68
|
+
width: var(--kui-collapsible-panel-width, 17.5rem);
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
.kui-collapsible-panel--bottom .kui-collapsible-panel__content {
|
|
72
|
+
position: absolute;
|
|
73
|
+
inset-inline: 0;
|
|
74
|
+
inset-block-end: 0;
|
|
75
|
+
width: 100%;
|
|
76
|
+
height: var(--kui-collapsible-panel-height, 13.75rem);
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
.kui-collapsible-panel[data-collapse-motion="none"]
|
|
80
|
+
.kui-collapsible-panel__content {
|
|
81
|
+
transition: none;
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
.kui-collapsible-panel[data-collapse-motion="fade-slide"][data-collapsed="true"]
|
|
85
|
+
.kui-collapsible-panel__content {
|
|
86
|
+
opacity: 0;
|
|
87
|
+
}
|
|
88
|
+
|
|
89
|
+
.kui-collapsible-panel--left[data-collapsed="true"]
|
|
90
|
+
.kui-collapsible-panel__content {
|
|
91
|
+
transform: translateX(-100%);
|
|
92
|
+
}
|
|
93
|
+
|
|
94
|
+
.kui-collapsible-panel--right[data-collapsed="true"]
|
|
95
|
+
.kui-collapsible-panel__content {
|
|
96
|
+
transform: translateX(100%);
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
.kui-collapsible-panel--bottom[data-collapsed="true"]
|
|
100
|
+
.kui-collapsible-panel__content {
|
|
101
|
+
transform: translateY(100%);
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
/* Compact presentation: wireSidebar marks the host so the panel floats over the
|
|
105
|
+
content as an overlay with a dismissable backdrop instead of taking layout
|
|
106
|
+
space. The panel is fixed to its edge and slides in from off-screen. */
|
|
107
|
+
[data-collapsible-overlay="true"] .kui-collapsible-panel,
|
|
108
|
+
.kui-collapsible-panel[data-presentation="overlay"] {
|
|
109
|
+
position: fixed;
|
|
110
|
+
z-index: var(--kui-collapsible-panel-overlay-z, 40);
|
|
111
|
+
box-shadow: var(--kui-shadow-l, 0 8px 32px rgb(0 0 0 / 24%));
|
|
112
|
+
}
|
|
113
|
+
|
|
114
|
+
[data-collapsible-overlay="true"] .kui-collapsible-panel--left,
|
|
115
|
+
.kui-collapsible-panel--left[data-presentation="overlay"] {
|
|
116
|
+
inset-block: 0;
|
|
117
|
+
inset-inline-start: 0;
|
|
118
|
+
}
|
|
119
|
+
|
|
120
|
+
[data-collapsible-overlay="true"] .kui-collapsible-panel--right,
|
|
121
|
+
.kui-collapsible-panel--right[data-presentation="overlay"] {
|
|
122
|
+
inset-block: 0;
|
|
123
|
+
inset-inline-end: 0;
|
|
124
|
+
}
|
|
125
|
+
|
|
126
|
+
[data-collapsible-overlay="true"] .kui-collapsible-panel--bottom,
|
|
127
|
+
.kui-collapsible-panel--bottom[data-presentation="overlay"] {
|
|
128
|
+
inset-inline: 0;
|
|
129
|
+
inset-block-end: 0;
|
|
130
|
+
}
|
|
131
|
+
|
|
132
|
+
.kui-collapsible-panel[data-presentation="overlay"][data-collapsed="true"] {
|
|
133
|
+
pointer-events: none;
|
|
134
|
+
}
|
|
135
|
+
|
|
136
|
+
.kui-collapsible-panel[data-presentation="hidden"] {
|
|
137
|
+
display: none;
|
|
138
|
+
}
|
|
139
|
+
|
|
140
|
+
[data-collapsible-responsive="hidden"] .kui-collapsible-panel {
|
|
141
|
+
display: none;
|
|
142
|
+
}
|
|
143
|
+
|
|
144
|
+
.kui-collapsible-panel__restore {
|
|
145
|
+
position: fixed;
|
|
146
|
+
z-index: var(--kui-collapsible-panel-restore-z, 42);
|
|
147
|
+
inset-block-end: calc(
|
|
148
|
+
var(--kui-collapsible-panel-restore-inset, 1rem) +
|
|
149
|
+
var(--kui-safe-area-block-end, env(safe-area-inset-bottom, 0px))
|
|
150
|
+
);
|
|
151
|
+
}
|
|
152
|
+
|
|
153
|
+
.kui-collapsible-panel__restore[data-position="bottom-start"] {
|
|
154
|
+
inset-inline-start: calc(
|
|
155
|
+
var(--kui-collapsible-panel-restore-inset, 1rem) +
|
|
156
|
+
var(--kui-safe-area-inline-start, env(safe-area-inset-left, 0px))
|
|
157
|
+
);
|
|
158
|
+
}
|
|
159
|
+
|
|
160
|
+
.kui-collapsible-panel__restore[data-position="bottom-end"] {
|
|
161
|
+
inset-inline-end: calc(
|
|
162
|
+
var(--kui-collapsible-panel-restore-inset, 1rem) +
|
|
163
|
+
var(--kui-safe-area-inline-end, env(safe-area-inset-right, 0px))
|
|
164
|
+
);
|
|
165
|
+
}
|
|
166
|
+
|
|
167
|
+
.kui-collapsible-panel__backdrop {
|
|
168
|
+
position: fixed;
|
|
169
|
+
inset: 0;
|
|
170
|
+
z-index: var(--kui-collapsible-panel-backdrop-z, 39);
|
|
171
|
+
border: 0;
|
|
172
|
+
padding: 0;
|
|
173
|
+
background: var(--kui-color-scrim, rgb(0 0 0 / 32%));
|
|
174
|
+
cursor: pointer;
|
|
175
|
+
}
|
|
176
|
+
|
|
177
|
+
/* The standard toggle affordance: a plain icon button carrying the per-side
|
|
178
|
+
collapse/expand glyph. */
|
|
179
|
+
.kui-collapsible-panel__toggle {
|
|
180
|
+
display: grid;
|
|
181
|
+
width: 2.5rem;
|
|
182
|
+
height: 2.5rem;
|
|
183
|
+
padding: 0;
|
|
184
|
+
border: 1px solid transparent;
|
|
185
|
+
border-radius: var(--kui-layout-rounded-radius, calc(1px + 0.6875rem));
|
|
186
|
+
color: inherit;
|
|
187
|
+
background: transparent;
|
|
188
|
+
cursor: pointer;
|
|
189
|
+
place-items: center;
|
|
190
|
+
}
|
|
191
|
+
|
|
192
|
+
.kui-collapsible-panel__toggle:hover {
|
|
193
|
+
border-color: var(--kui-color-border);
|
|
194
|
+
background: var(--kui-color-neutral-fill-normal);
|
|
195
|
+
}
|
|
196
|
+
|
|
197
|
+
.kui-collapsible-panel__toggle:focus-visible {
|
|
198
|
+
outline: var(--kui-focus-ring);
|
|
199
|
+
outline-offset: 1px;
|
|
200
|
+
}
|
|
201
|
+
|
|
202
|
+
.kui-collapsible-panel__toggle svg {
|
|
203
|
+
display: block;
|
|
204
|
+
width: 1.125rem;
|
|
205
|
+
height: 1.125rem;
|
|
206
|
+
}
|
|
207
|
+
|
|
208
|
+
@media (prefers-reduced-motion: reduce) {
|
|
209
|
+
.kui-collapsible-panel__content {
|
|
210
|
+
transition: none;
|
|
211
|
+
}
|
|
212
|
+
}
|
|
@@ -0,0 +1,38 @@
|
|
|
1
|
+
.kui-floating-toolbar {
|
|
2
|
+
/* Inset from the container edges: a top toolbar sits 8px in, so this floats an
|
|
3
|
+
extra 8px past that (--kui-space-m = 16px). Override the token to reposition. */
|
|
4
|
+
--kui-floating-toolbar-inset: var(--kui-space-m, 1rem);
|
|
5
|
+
|
|
6
|
+
/* Floats above the main content of its nearest positioned ancestor. z-index
|
|
7
|
+
stays low so it never covers dialogs/overlays (it is not top-layer). Forced
|
|
8
|
+
dark so the controls read as one distinct floating layer over any theme. */
|
|
9
|
+
position: absolute;
|
|
10
|
+
z-index: 4;
|
|
11
|
+
display: flex;
|
|
12
|
+
color-scheme: dark;
|
|
13
|
+
align-items: center;
|
|
14
|
+
gap: var(--kui-space-xs, 0.5rem);
|
|
15
|
+
}
|
|
16
|
+
|
|
17
|
+
.kui-floating-toolbar[data-position^="bottom"] {
|
|
18
|
+
inset-block-end: var(--kui-floating-toolbar-inset);
|
|
19
|
+
}
|
|
20
|
+
|
|
21
|
+
.kui-floating-toolbar[data-position^="top"] {
|
|
22
|
+
inset-block-start: var(--kui-floating-toolbar-inset);
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
.kui-floating-toolbar[data-position$="-end"] {
|
|
26
|
+
inset-inline-end: var(--kui-floating-toolbar-inset);
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
.kui-floating-toolbar[data-position$="-start"] {
|
|
30
|
+
inset-inline-start: var(--kui-floating-toolbar-inset);
|
|
31
|
+
}
|
|
32
|
+
|
|
33
|
+
/* The centered edges span from the middle rather than an inline edge. */
|
|
34
|
+
.kui-floating-toolbar[data-position="bottom"],
|
|
35
|
+
.kui-floating-toolbar[data-position="top"] {
|
|
36
|
+
inset-inline-start: 50%;
|
|
37
|
+
transform: translateX(-50%);
|
|
38
|
+
}
|
|
@@ -24,12 +24,33 @@
|
|
|
24
24
|
--kui-font-l: var(--wa-font-size-l, 20px);
|
|
25
25
|
--kui-font-2xl: var(--wa-font-size-2xl, 32px);
|
|
26
26
|
--kui-font-weight-semibold: var(--wa-font-weight-semibold, 650);
|
|
27
|
+
/* Official spacing scale (see docs/layout.md "Spacing scale"). Five canonical
|
|
28
|
+
steps, each expressing one relationship — pick by how connected the elements
|
|
29
|
+
are, not by eye:
|
|
30
|
+
0px --kui-space-none no separation (elements read as one unit)
|
|
31
|
+
4px --kui-space-2xs very minor — connected, but readability/aesthetics
|
|
32
|
+
demand a hair of air
|
|
33
|
+
8px --kui-space-xs standard — between elements within a group
|
|
34
|
+
16px --kui-space-m minor — between homogeneous groups
|
|
35
|
+
24px --kui-space-l major — between heterogeneous groups
|
|
36
|
+
--kui-space-s (12px) and --kui-space-xl (32px) are off the canonical rhythm;
|
|
37
|
+
reach for them only as deliberate exceptions, not as default steps. All
|
|
38
|
+
scalable values are remify-authored against the fixed 16px baseline. */
|
|
39
|
+
--kui-space-none: 0;
|
|
27
40
|
--kui-space-2xs: var(--wa-space-2xs, 0.25rem);
|
|
28
41
|
--kui-space-xs: var(--wa-space-xs, 0.5rem);
|
|
29
42
|
--kui-space-s: var(--wa-space-s, 0.75rem);
|
|
30
43
|
--kui-space-m: var(--wa-space-m, 1rem);
|
|
31
44
|
--kui-space-l: var(--wa-space-l, 1.5rem);
|
|
32
45
|
--kui-space-xl: var(--wa-space-xl, 2rem);
|
|
46
|
+
/* Device-class breakpoints, mirrored from @kerfjs/ui/device-class's
|
|
47
|
+
DEFAULT_BREAKPOINTS so CSS media queries and the reactive deviceClass()
|
|
48
|
+
signal read the same minimum widths. Authored as literal px (a media-query
|
|
49
|
+
boundary is a physical width, not a scalable length). */
|
|
50
|
+
--kui-bp-mobile: 360px;
|
|
51
|
+
--kui-bp-tablet: 720px;
|
|
52
|
+
--kui-bp-desktop: 1024px;
|
|
53
|
+
--kui-bp-xl-desktop: 1440px;
|
|
33
54
|
--kui-layout-inline-margin: var(--kui-space-xs);
|
|
34
55
|
--kui-layout-item-border-width: 1px;
|
|
35
56
|
--kui-layout-item-padding: var(--kui-space-xs);
|
|
@@ -37,6 +58,7 @@
|
|
|
37
58
|
--kui-layout-content-gap: var(--kui-space-l);
|
|
38
59
|
--kui-layout-control-gap: var(--kui-space-xs);
|
|
39
60
|
--kui-layout-metadata-gap: var(--kui-space-2xs);
|
|
61
|
+
--kui-layout-highlight-inset: 2px;
|
|
40
62
|
--kui-layout-rounded-radius: calc(1px + 0.6875rem);
|
|
41
63
|
--kui-layout-pill-radius: calc(1px + 1.3125rem);
|
|
42
64
|
--kui-toolbar-group-inner-size: 2.625rem;
|
|
@@ -157,6 +179,42 @@
|
|
|
157
179
|
var(--kui-color-brand-on-quiet)
|
|
158
180
|
);
|
|
159
181
|
--kui-color-brand-on-loud: var(--wa-color-brand-on-loud, #fff);
|
|
182
|
+
/* Brand accent text placed directly ON a brand fill (quiet or normal), such as
|
|
183
|
+
the info StateBanner and Select's current option. Darker than brand-on-quiet
|
|
184
|
+
so it clears WCAG AA (>=4.5:1): brand-on-quiet (#1e6ef4) resolves to only
|
|
185
|
+
3.77:1 over brand-fill-normal (#d6ecff) and 4.15:1 over brand-fill-quiet
|
|
186
|
+
(#ebf6ff), while #1a5dcf (same hue) clears ~4.9:1 and ~5.2:1 there. The dark
|
|
187
|
+
value matches brand-on-quiet, which already passes over the dark fills. */
|
|
188
|
+
--kui-color-brand-on-fill: light-dark(#1a5dcf, #8acbff);
|
|
189
|
+
|
|
190
|
+
/* Pop is attractive emphasis without status meaning: use it for featured,
|
|
191
|
+
novel, or celebratory content, never as a success/danger substitute. */
|
|
192
|
+
--kui-color-pop-fill-loud: light-dark(#af34d4, #da8fff);
|
|
193
|
+
--kui-color-pop-fill-quiet: color-mix(
|
|
194
|
+
in srgb,
|
|
195
|
+
var(--kui-color-pop-fill-loud) 10%,
|
|
196
|
+
var(--kui-color-surface)
|
|
197
|
+
);
|
|
198
|
+
--kui-color-pop-fill-normal: color-mix(
|
|
199
|
+
in srgb,
|
|
200
|
+
var(--kui-color-pop-fill-loud) 18%,
|
|
201
|
+
var(--kui-color-surface)
|
|
202
|
+
);
|
|
203
|
+
--kui-color-pop-border-quiet: color-mix(
|
|
204
|
+
in srgb,
|
|
205
|
+
var(--kui-color-pop-fill-loud) 36%,
|
|
206
|
+
var(--kui-color-surface)
|
|
207
|
+
);
|
|
208
|
+
--kui-color-pop-border-normal: color-mix(
|
|
209
|
+
in srgb,
|
|
210
|
+
var(--kui-color-pop-fill-loud) 58%,
|
|
211
|
+
var(--kui-color-surface)
|
|
212
|
+
);
|
|
213
|
+
--kui-color-pop-border-loud: var(--kui-color-pop-fill-loud);
|
|
214
|
+
--kui-color-pop-on-quiet: light-dark(#792498, #e8a5ff);
|
|
215
|
+
--kui-color-pop-on-normal: var(--kui-color-pop-on-quiet);
|
|
216
|
+
--kui-color-pop-on-loud: light-dark(#fff, #241126);
|
|
217
|
+
--kui-color-pop-on-fill: var(--kui-color-pop-on-quiet);
|
|
160
218
|
|
|
161
219
|
--kui-color-success-fill-loud: var(--wa-color-success-fill-loud, #34c759);
|
|
162
220
|
--kui-color-success-fill-quiet: var(
|
|
@@ -202,6 +260,10 @@
|
|
|
202
260
|
--kui-color-success-on-quiet: var(--wa-color-success-on-quiet, #008932);
|
|
203
261
|
--kui-color-success-on-normal: var(--wa-color-success-on-normal, #006d28);
|
|
204
262
|
--kui-color-success-on-loud: var(--wa-color-success-on-loud, #fff);
|
|
263
|
+
/* Success text placed ON a success fill (e.g. the success StateBanner). Darker
|
|
264
|
+
than success-on-quiet so it clears WCAG AA (>=4.5:1) over success-fill-quiet
|
|
265
|
+
(#e3f7e8), where #008932 reached only 4.05:1. Dark matches success-on-quiet. */
|
|
266
|
+
--kui-color-success-on-fill: light-dark(#00792c, #63e685);
|
|
205
267
|
|
|
206
268
|
--kui-color-warning-fill-loud: var(--wa-color-warning-fill-loud, #ffcc00);
|
|
207
269
|
--kui-color-warning-fill-quiet: var(
|
|
@@ -247,6 +309,10 @@
|
|
|
247
309
|
--kui-color-warning-on-quiet: var(--wa-color-warning-on-quiet, #a16a00);
|
|
248
310
|
--kui-color-warning-on-normal: var(--wa-color-warning-on-normal, #5f3f00);
|
|
249
311
|
--kui-color-warning-on-loud: var(--wa-color-warning-on-loud, #1d1d1f);
|
|
312
|
+
/* Warning text placed ON a warning fill (e.g. the warning StateBanner). Darker
|
|
313
|
+
than warning-on-quiet so it clears WCAG AA (>=4.5:1) over warning-fill-quiet
|
|
314
|
+
(#fffae8), where #a16a00 reached only 4.39:1. Dark matches warning-on-quiet. */
|
|
315
|
+
--kui-color-warning-on-fill: light-dark(#8f5e00, #ffd84a);
|
|
250
316
|
|
|
251
317
|
--kui-color-danger-fill-loud: var(--wa-color-danger-fill-loud, #ff383c);
|
|
252
318
|
--kui-color-danger-fill-quiet: var(
|
|
@@ -301,6 +367,8 @@
|
|
|
301
367
|
--kui-color-border-quiet: var(--kui-color-neutral-border-quiet);
|
|
302
368
|
--kui-color-accent: var(--kui-color-brand-fill-normal);
|
|
303
369
|
--kui-color-accent-text: var(--kui-color-brand-on-quiet);
|
|
370
|
+
--kui-color-pop: var(--kui-color-pop-fill-quiet);
|
|
371
|
+
--kui-color-pop-text: var(--kui-color-pop-on-fill);
|
|
304
372
|
--kui-color-success: var(--kui-color-success-fill-quiet);
|
|
305
373
|
--kui-color-success-text: var(--kui-color-success-on-quiet);
|
|
306
374
|
--kui-color-warning: var(--kui-color-warning-fill-quiet);
|
|
@@ -320,6 +388,18 @@
|
|
|
320
388
|
|
|
321
389
|
@media (prefers-contrast: more) {
|
|
322
390
|
:root {
|
|
391
|
+
--kui-color-pop-fill-quiet: Canvas;
|
|
392
|
+
--kui-color-pop-fill-normal: Canvas;
|
|
393
|
+
--kui-color-pop-fill-loud: Highlight;
|
|
394
|
+
--kui-color-pop-border-quiet: currentColor;
|
|
395
|
+
--kui-color-pop-border-normal: currentColor;
|
|
396
|
+
--kui-color-pop-border-loud: currentColor;
|
|
397
|
+
--kui-color-pop-on-quiet: currentColor;
|
|
398
|
+
--kui-color-pop-on-normal: currentColor;
|
|
399
|
+
--kui-color-pop-on-loud: HighlightText;
|
|
400
|
+
--kui-color-pop-on-fill: currentColor;
|
|
401
|
+
--kui-color-pop: Canvas;
|
|
402
|
+
--kui-color-pop-text: currentColor;
|
|
323
403
|
--kui-color-border: currentColor;
|
|
324
404
|
--kui-focus-ring: 3px solid currentColor;
|
|
325
405
|
}
|
package/dist/styles/layout.css
CHANGED
|
@@ -1,24 +1,6 @@
|
|
|
1
|
-
|
|
2
|
-
.kui-pane {
|
|
3
|
-
display: grid;
|
|
4
|
-
min-width: 0;
|
|
5
|
-
min-height: 0;
|
|
6
|
-
padding: 0;
|
|
7
|
-
grid-template-rows: auto minmax(0, 1fr) auto;
|
|
8
|
-
}
|
|
9
|
-
|
|
10
|
-
.kui-pane__toolbar,
|
|
11
|
-
.kui-pane__footer {
|
|
12
|
-
min-width: 0;
|
|
13
|
-
}
|
|
1
|
+
@import "./pane.css";
|
|
14
2
|
|
|
15
|
-
.
|
|
16
|
-
min-width: 0;
|
|
17
|
-
min-height: 0;
|
|
18
|
-
padding: 0;
|
|
19
|
-
overflow: auto;
|
|
20
|
-
overscroll-behavior: contain;
|
|
21
|
-
}
|
|
3
|
+
/* Shared application content geometry for Pane children and standalone stacks. */
|
|
22
4
|
|
|
23
5
|
.kui-content {
|
|
24
6
|
display: flex;
|
|
@@ -0,0 +1,224 @@
|
|
|
1
|
+
.kui-list-action-row {
|
|
2
|
+
--kui-list-group-divider-color: var(--kui-color-neutral-border-quiet);
|
|
3
|
+
--kui-list-action-row-color: var(--kui-color-neutral-on-normal);
|
|
4
|
+
--kui-list-action-row-border: transparent;
|
|
5
|
+
--kui-list-action-row-background: transparent;
|
|
6
|
+
--kui-list-action-row-hover-border: var(--kui-color-neutral-border-normal);
|
|
7
|
+
--kui-list-action-row-hover-background: var(--kui-color-neutral-fill-quiet);
|
|
8
|
+
--kui-list-action-row-selected-color: var(--kui-color-neutral-on-normal);
|
|
9
|
+
--kui-list-action-row-selected-border: var(--kui-color-brand-border-quiet);
|
|
10
|
+
--kui-list-action-row-selected-background: var(--kui-color-brand-fill-normal);
|
|
11
|
+
--kui-list-action-row-trailing-hover-background: var(
|
|
12
|
+
--kui-color-neutral-fill-normal
|
|
13
|
+
);
|
|
14
|
+
display: flex;
|
|
15
|
+
width: calc(100% - (2 * var(--kui-layout-inline-margin, 0.5rem)));
|
|
16
|
+
min-height: 2.75rem;
|
|
17
|
+
margin-inline: var(--kui-layout-inline-margin, 0.5rem);
|
|
18
|
+
border-radius: var(--kui-layout-rounded-radius, calc(1px + 0.6875rem));
|
|
19
|
+
color: var(--kui-list-action-row-color);
|
|
20
|
+
background: var(--kui-list-action-row-background);
|
|
21
|
+
box-shadow: inset 0 0 0 1px var(--kui-list-action-row-border);
|
|
22
|
+
align-items: stretch;
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
.kui-list-action-row[data-density="compact"] {
|
|
26
|
+
min-height: 2.25rem;
|
|
27
|
+
}
|
|
28
|
+
|
|
29
|
+
.kui-list-action-row[data-density="compact"]
|
|
30
|
+
:is(.kui-list-action-row__primary, .kui-list-action-row__trailing-action) {
|
|
31
|
+
min-height: 2.25rem;
|
|
32
|
+
}
|
|
33
|
+
|
|
34
|
+
.kui-list-action-row[data-divider="before"],
|
|
35
|
+
.kui-list-action-row[data-divider="both"] {
|
|
36
|
+
border-block-start: 1px solid var(--kui-list-group-divider-color);
|
|
37
|
+
border-start-start-radius: 0;
|
|
38
|
+
border-start-end-radius: 0;
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
.kui-list-action-row[data-divider="after"],
|
|
42
|
+
.kui-list-action-row[data-divider="both"] {
|
|
43
|
+
border-block-end: 1px solid var(--kui-list-group-divider-color);
|
|
44
|
+
border-end-start-radius: 0;
|
|
45
|
+
border-end-end-radius: 0;
|
|
46
|
+
}
|
|
47
|
+
|
|
48
|
+
.kui-list-action-row:has(.kui-list-action-row__primary:hover) {
|
|
49
|
+
--kui-list-action-row-border: var(--kui-list-action-row-hover-border);
|
|
50
|
+
--kui-list-action-row-background: var(--kui-list-action-row-hover-background);
|
|
51
|
+
}
|
|
52
|
+
|
|
53
|
+
.kui-list-action-row[data-selected="true"],
|
|
54
|
+
.kui-list-action-row[data-pressed="true"] {
|
|
55
|
+
--kui-list-action-row-border: var(--kui-list-action-row-selected-border);
|
|
56
|
+
--kui-list-action-row-background: var(
|
|
57
|
+
--kui-list-action-row-selected-background
|
|
58
|
+
);
|
|
59
|
+
color: var(--kui-list-action-row-selected-color);
|
|
60
|
+
font-weight: 650;
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
.kui-list-action-row:has(.kui-list-action-row__primary:focus-visible) {
|
|
64
|
+
outline: var(--kui-focus-ring);
|
|
65
|
+
outline-offset: 1px;
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
.kui-list-action-row__primary,
|
|
69
|
+
.kui-list-action-row__trailing-action {
|
|
70
|
+
height: auto !important;
|
|
71
|
+
min-height: 2.75rem;
|
|
72
|
+
padding: 0;
|
|
73
|
+
border: 0;
|
|
74
|
+
appearance: none;
|
|
75
|
+
color: inherit;
|
|
76
|
+
background: transparent;
|
|
77
|
+
cursor: pointer;
|
|
78
|
+
font: inherit;
|
|
79
|
+
}
|
|
80
|
+
|
|
81
|
+
.kui-list-action-row__primary {
|
|
82
|
+
position: relative;
|
|
83
|
+
display: block;
|
|
84
|
+
flex: 1 1 auto;
|
|
85
|
+
min-width: 2.75rem;
|
|
86
|
+
padding: var(--kui-layout-item-padding, 0.5rem);
|
|
87
|
+
padding-inline-start: calc(1px + var(--kui-layout-item-padding, 0.5rem));
|
|
88
|
+
text-align: start;
|
|
89
|
+
}
|
|
90
|
+
|
|
91
|
+
.kui-list-action-row__primary:focus-visible {
|
|
92
|
+
outline: none;
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
.kui-list-action-row__primary:disabled,
|
|
96
|
+
.kui-list-action-row__trailing-action:disabled {
|
|
97
|
+
cursor: not-allowed;
|
|
98
|
+
opacity: 0.58;
|
|
99
|
+
}
|
|
100
|
+
|
|
101
|
+
.kui-list-action-row__icon {
|
|
102
|
+
position: absolute;
|
|
103
|
+
inset-block-start: 50%;
|
|
104
|
+
inset-inline-start: calc(1px + var(--kui-layout-item-padding, 0.5rem));
|
|
105
|
+
display: grid;
|
|
106
|
+
width: 1.5rem;
|
|
107
|
+
height: 1.5rem;
|
|
108
|
+
color: currentColor;
|
|
109
|
+
transform: translateY(-50%);
|
|
110
|
+
place-items: center;
|
|
111
|
+
}
|
|
112
|
+
|
|
113
|
+
.kui-list-action-row__icon svg {
|
|
114
|
+
display: block;
|
|
115
|
+
width: 1.5rem;
|
|
116
|
+
height: 1.5rem;
|
|
117
|
+
}
|
|
118
|
+
|
|
119
|
+
.kui-list-action-row__label {
|
|
120
|
+
display: grid;
|
|
121
|
+
min-width: 0;
|
|
122
|
+
min-height: calc(
|
|
123
|
+
2.75rem - (2 * var(--kui-layout-item-padding, 0.5rem))
|
|
124
|
+
);
|
|
125
|
+
overflow: hidden;
|
|
126
|
+
text-overflow: ellipsis;
|
|
127
|
+
white-space: nowrap;
|
|
128
|
+
align-items: center;
|
|
129
|
+
}
|
|
130
|
+
|
|
131
|
+
.kui-list-action-row__primary-label,
|
|
132
|
+
.kui-list-action-row__description,
|
|
133
|
+
.kui-list-action-row__status {
|
|
134
|
+
min-width: 0;
|
|
135
|
+
}
|
|
136
|
+
|
|
137
|
+
.kui-list-action-row__description,
|
|
138
|
+
.kui-list-action-row__status {
|
|
139
|
+
color: var(--kui-color-neutral-on-quiet);
|
|
140
|
+
font-size: var(--kui-font-xs);
|
|
141
|
+
font-weight: 400;
|
|
142
|
+
line-height: 1.3;
|
|
143
|
+
}
|
|
144
|
+
|
|
145
|
+
.kui-list-action-row__status {
|
|
146
|
+
display: inline-flex;
|
|
147
|
+
align-items: center;
|
|
148
|
+
gap: 0.25rem;
|
|
149
|
+
}
|
|
150
|
+
|
|
151
|
+
.kui-list-action-row[data-has-icon="true"] .kui-list-action-row__label {
|
|
152
|
+
margin-inline-start: calc(
|
|
153
|
+
1.5rem + var(--kui-layout-item-gap, 0.5rem)
|
|
154
|
+
);
|
|
155
|
+
}
|
|
156
|
+
|
|
157
|
+
.kui-list-action-row[data-multiline="true"] .kui-list-action-row__label {
|
|
158
|
+
display: block;
|
|
159
|
+
overflow: visible;
|
|
160
|
+
overflow-wrap: anywhere;
|
|
161
|
+
white-space: normal;
|
|
162
|
+
}
|
|
163
|
+
|
|
164
|
+
.kui-list-action-row[data-multiline="true"] .kui-list-action-row__icon {
|
|
165
|
+
inset-block-start: calc(
|
|
166
|
+
var(--kui-layout-item-padding, 0.5rem) + (1lh / 2)
|
|
167
|
+
);
|
|
168
|
+
}
|
|
169
|
+
|
|
170
|
+
.kui-list-action-row__trailing-action {
|
|
171
|
+
display: grid;
|
|
172
|
+
width: 2.75rem;
|
|
173
|
+
min-width: 2.75rem;
|
|
174
|
+
border-radius: var(--kui-radius-pill);
|
|
175
|
+
place-items: center;
|
|
176
|
+
}
|
|
177
|
+
|
|
178
|
+
.kui-list-action-row[data-trailing-visibility="interaction"]
|
|
179
|
+
.kui-list-action-row__trailing-action {
|
|
180
|
+
opacity: 0;
|
|
181
|
+
}
|
|
182
|
+
|
|
183
|
+
.kui-list-action-row[data-trailing-visibility="interaction"]:is(
|
|
184
|
+
:hover,
|
|
185
|
+
:focus-within
|
|
186
|
+
)
|
|
187
|
+
.kui-list-action-row__trailing-action {
|
|
188
|
+
opacity: 1;
|
|
189
|
+
}
|
|
190
|
+
|
|
191
|
+
@media (hover: none) {
|
|
192
|
+
.kui-list-action-row[data-trailing-visibility="interaction"]
|
|
193
|
+
.kui-list-action-row__trailing-action {
|
|
194
|
+
opacity: 1;
|
|
195
|
+
}
|
|
196
|
+
}
|
|
197
|
+
|
|
198
|
+
.kui-list-action-row__trailing-action:hover:not(:disabled) {
|
|
199
|
+
background: var(--kui-list-action-row-trailing-hover-background);
|
|
200
|
+
}
|
|
201
|
+
|
|
202
|
+
.kui-list-action-row__trailing-action:focus-visible {
|
|
203
|
+
outline: var(--kui-focus-ring);
|
|
204
|
+
outline-offset: -2px;
|
|
205
|
+
}
|
|
206
|
+
|
|
207
|
+
.kui-list-action-row__trailing-action > svg {
|
|
208
|
+
width: 1rem;
|
|
209
|
+
height: 1rem;
|
|
210
|
+
}
|
|
211
|
+
|
|
212
|
+
@media (forced-colors: active) {
|
|
213
|
+
.kui-list-action-row {
|
|
214
|
+
--kui-list-action-row-border: ButtonText;
|
|
215
|
+
outline: 1px solid ButtonText;
|
|
216
|
+
outline-offset: -1px;
|
|
217
|
+
}
|
|
218
|
+
|
|
219
|
+
.kui-list-action-row[data-selected="true"],
|
|
220
|
+
.kui-list-action-row[data-pressed="true"] {
|
|
221
|
+
--kui-list-action-row-selected-color: HighlightText;
|
|
222
|
+
--kui-list-action-row-selected-background: Highlight;
|
|
223
|
+
}
|
|
224
|
+
}
|