@kerfjs/ui 5.0.0-beta.23 → 5.0.0-beta.25
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 +45 -23
- package/ai/application-ui-diagnostic-ids-v1.json +3 -0
- package/ai/application-ui-profile.defaults.json +1 -1
- package/ai/compile-time-contracts-v1.json +5 -12
- package/ai/component-catalog-v2-overrides.json +12 -49
- package/ai/component-catalog-v2.d.ts +1 -0
- package/ai/component-catalog-v2.json +458 -123
- package/ai/component-catalog-v2.schema.json +2 -1
- package/ai/component-catalog.json +658 -195
- package/ai/public-api-signatures-v1.md +160 -80
- package/ai/skill.md +22 -22
- package/ai/webawesome-jsx-signatures-v1.md +2 -1
- package/analyzer/cli.mjs +5 -2
- package/analyzer/index.d.mts +1 -0
- package/analyzer/index.mjs +117 -10
- package/dist/app-tab.d.ts +10 -2
- package/dist/app-tab.js +1 -1
- package/dist/browser/list-action-row.js +1 -0
- package/dist/browser/list-item.js +1 -0
- package/dist/browser/list.js +3 -0
- package/dist/browser/surface-scaffold.js +3 -0
- package/dist/catalog.d.ts +8 -4
- package/dist/catalog.js +21 -11
- package/dist/catalog.js.map +1 -1
- package/dist/{chunk-ELSJX4W7.js → chunk-4EF2CMYS.js} +25 -6
- package/dist/chunk-4EF2CMYS.js.map +1 -0
- package/dist/{chunk-OHU6CI22.js → chunk-B3A3IVO5.js} +2 -2
- package/dist/{chunk-OHU6CI22.js.map → chunk-B3A3IVO5.js.map} +1 -1
- package/dist/{chunk-K57KRAOV.js → chunk-FRVS5RFM.js} +24 -6
- package/dist/chunk-FRVS5RFM.js.map +1 -0
- package/dist/{chunk-DSNIYOZ3.js → chunk-GWEAPEZI.js} +16 -3
- package/dist/chunk-GWEAPEZI.js.map +1 -0
- package/dist/chunk-HP2B2L26.js +102 -0
- package/dist/chunk-HP2B2L26.js.map +1 -0
- package/dist/{chunk-OZWU5ZPZ.js → chunk-IJBSZ4NX.js} +2 -2
- package/dist/{chunk-OZWU5ZPZ.js.map → chunk-IJBSZ4NX.js.map} +1 -1
- package/dist/chunk-J5BFYY7Q.js +35 -0
- package/dist/chunk-J5BFYY7Q.js.map +1 -0
- package/dist/{chunk-GP5DP5DL.js → chunk-JFGXQBIP.js} +85 -24
- package/dist/chunk-JFGXQBIP.js.map +1 -0
- package/dist/{chunk-QQFJMRIB.js → chunk-KWWR5VMS.js} +2 -2
- package/dist/{chunk-QQFJMRIB.js.map → chunk-KWWR5VMS.js.map} +1 -1
- package/dist/chunk-OBLTAKSX.js +43 -0
- package/dist/chunk-OBLTAKSX.js.map +1 -0
- package/dist/{chunk-PIDTEQ3U.js → chunk-OT6RPYAP.js} +17 -3
- package/dist/chunk-OT6RPYAP.js.map +1 -0
- package/dist/{chunk-W7YD6E4N.js → chunk-R7ZWUN64.js} +2 -2
- package/dist/{chunk-W7YD6E4N.js.map → chunk-R7ZWUN64.js.map} +1 -1
- package/dist/{chunk-PZQVSDLH.js → chunk-RKVQEH4J.js} +1 -1
- package/dist/chunk-RKVQEH4J.js.map +1 -0
- package/dist/{chunk-7L6EHUMV.js → chunk-SYDMYBPG.js} +3 -3
- package/dist/chunk-SYDMYBPG.js.map +1 -0
- package/dist/{chunk-W4CXQYSG.js → chunk-TB6DY7H5.js} +3 -1
- package/dist/chunk-TB6DY7H5.js.map +1 -0
- package/dist/{chunk-AASLYRGE.js → chunk-UKKSMZYT.js} +18 -7
- package/dist/chunk-UKKSMZYT.js.map +1 -0
- package/dist/{chunk-BBRXX6PF.js → chunk-VCE4MPVE.js} +26 -4
- package/dist/chunk-VCE4MPVE.js.map +1 -0
- package/dist/{chunk-VLYV65LK.js → chunk-W5L2JSBY.js} +5 -3
- package/dist/chunk-W5L2JSBY.js.map +1 -0
- package/dist/{chunk-5VTB2BKP.js → chunk-WNWD54GR.js} +16 -2
- package/dist/chunk-WNWD54GR.js.map +1 -0
- package/dist/{chunk-M7JBER5U.js → chunk-X2U3QJCJ.js} +8 -2
- package/dist/chunk-X2U3QJCJ.js.map +1 -0
- package/dist/{chunk-DPDBVKNA.js → chunk-YMKH5XTF.js} +5 -3
- package/dist/chunk-YMKH5XTF.js.map +1 -0
- package/dist/collapsible-panel.d.ts +9 -1
- package/dist/collapsible-panel.js +36 -15
- package/dist/collapsible-panel.js.map +1 -1
- package/dist/divider-sides-267FA7sY.d.ts +4 -0
- package/dist/index.d.ts +5 -3
- package/dist/index.js +20 -19
- package/dist/list-action-row.d.ts +11 -1
- package/dist/list-action-row.js +2 -1
- package/dist/list-header.d.ts +15 -2
- package/dist/list-header.js +1 -1
- package/dist/list-item.d.ts +12 -1
- package/dist/list-item.js +2 -1
- package/dist/list.d.ts +19 -0
- package/dist/list.js +3 -0
- package/dist/list.js.map +1 -0
- package/dist/nav-stack.js +1 -1
- package/dist/resizable-region.d.ts +19 -2
- package/dist/resizable-region.js +1 -1
- package/dist/segmented-control.js +1 -1
- package/dist/select.d.ts +12 -1
- package/dist/select.js +1 -1
- package/dist/skeleton.d.ts +1 -1
- package/dist/skeleton.js +1 -1
- package/dist/split-view.js +2 -2
- package/dist/state-banner.d.ts +4 -2
- package/dist/state-banner.js +1 -1
- package/dist/styles/app-tab.css +26 -0
- package/dist/styles/catalog.css +8 -2
- package/dist/styles/collapsible-panel.css +66 -4
- package/dist/styles/list-action-row.css +64 -0
- package/dist/styles/list-header.css +32 -0
- package/dist/styles/list-item.css +45 -6
- package/dist/styles/list.css +43 -0
- package/dist/styles/resizable-region.css +132 -0
- package/dist/styles/select.css +68 -0
- package/dist/styles/state-banner.css +32 -1
- package/dist/styles/styles.css +2 -1
- package/dist/styles/sunken-panel.css +4 -0
- package/dist/styles/surface-scaffold.css +51 -0
- package/dist/styles/tab-bar.css +24 -0
- package/dist/styles/toolbar-control-group.css +73 -1
- package/dist/styles/toolbar-text.css +1 -1
- package/dist/styles/toolbar.css +38 -2
- package/dist/styles/webawesome.css +12 -0
- package/dist/styles/workbench.css +89 -0
- package/dist/sunken-panel.d.ts +5 -2
- package/dist/sunken-panel.js +1 -1
- package/dist/surface-scaffold.d.ts +25 -0
- package/dist/surface-scaffold.js +3 -0
- package/dist/surface-scaffold.js.map +1 -0
- package/dist/tab-bar.d.ts +11 -2
- package/dist/tab-bar.js +1 -1
- package/dist/toolbar-control-group.d.ts +16 -2
- package/dist/toolbar-control-group.js +1 -1
- package/dist/toolbar-text.js +1 -1
- package/dist/toolbar.d.ts +5 -3
- package/dist/toolbar.js +1 -1
- package/dist/value-table.js +1 -1
- package/dist/webawesome.d.ts +1 -0
- package/dist/wire-catalog.d.ts +4 -2
- package/dist/wire-catalog.js +95 -36
- package/dist/wire-catalog.js.map +1 -1
- package/dist/wire-resizable-regions.js +1 -1
- package/dist/wire-sidebar.d.ts +6 -1
- package/dist/wire-sidebar.js +27 -8
- package/dist/wire-sidebar.js.map +1 -1
- package/dist/wire-tab-bars.js +1 -1
- package/dist/wire-token-search-fields.d.ts +1 -1
- package/dist/wire-token-search-fields.js +1 -1
- package/dist/workbench.d.ts +8 -0
- package/dist/workbench.js +42 -0
- package/dist/workbench.js.map +1 -1
- package/docs/accessibility.md +67 -15
- package/docs/catalog.md +17 -12
- package/docs/collapsible-panel.md +7 -0
- package/docs/component-contract.md +19 -9
- package/docs/component-selection.md +65 -31
- package/docs/design/templates/empty-state/filtered-dark.svg +1 -1
- package/docs/design/templates/empty-state/filtered.svg +1 -1
- package/docs/design/templates/empty-state/with-action-dark.svg +1 -1
- package/docs/design/templates/empty-state/with-action.svg +1 -1
- package/docs/design/templates/empty-state-dark.svg +1 -7
- package/docs/design/templates/empty-state.svg +1 -7
- 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 -1
- package/docs/design/templates/list-action-row/default.svg +1 -1
- package/docs/design/templates/list-action-row/selected-dark.svg +1 -1
- package/docs/design/templates/list-action-row/selected.svg +1 -1
- package/docs/design/templates/list-action-row-dark.svg +1 -7
- package/docs/design/templates/list-action-row.svg +1 -7
- package/docs/design/templates/list-dark.svg +1 -0
- package/docs/design/templates/list-header/action-dark.svg +1 -1
- package/docs/design/templates/list-header/action.svg +1 -1
- package/docs/design/templates/list-header/toggle-collapsed-dark.svg +1 -1
- package/docs/design/templates/list-header/toggle-collapsed.svg +1 -1
- package/docs/design/templates/list-header/toggle-expanded-dark.svg +1 -1
- package/docs/design/templates/list-header/toggle-expanded.svg +1 -1
- package/docs/design/templates/list-header-dark.svg +1 -11
- package/docs/design/templates/list-header.svg +1 -11
- package/docs/design/templates/list-item/default-dark.svg +1 -1
- package/docs/design/templates/list-item/default.svg +1 -1
- package/docs/design/templates/list-item/multiline-dark.svg +1 -1
- package/docs/design/templates/list-item/multiline.svg +1 -1
- package/docs/design/templates/list-item/selected-dark.svg +1 -1
- package/docs/design/templates/list-item/selected.svg +1 -1
- package/docs/design/templates/list-item/trailing-dark.svg +1 -1
- package/docs/design/templates/list-item/trailing.svg +1 -1
- package/docs/design/templates/list-item-dark.svg +1 -11
- package/docs/design/templates/list-item.svg +1 -11
- package/docs/design/templates/list.svg +1 -0
- package/docs/design/templates/segmented-control-dark.svg +1 -7
- package/docs/design/templates/segmented-control.svg +1 -7
- package/docs/design/templates/skeleton-dark.svg +1 -9
- package/docs/design/templates/skeleton.svg +1 -9
- package/docs/design/templates/state-banner/danger-dark.svg +1 -1
- package/docs/design/templates/state-banner/danger.svg +1 -1
- 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 -1
- package/docs/design/templates/state-banner/info.svg +1 -1
- package/docs/design/templates/state-banner/success-dark.svg +1 -1
- package/docs/design/templates/state-banner/success.svg +1 -1
- package/docs/design/templates/state-banner/warning-dark.svg +1 -1
- package/docs/design/templates/state-banner/warning.svg +1 -1
- package/docs/design/templates/state-banner-dark.svg +1 -11
- package/docs/design/templates/state-banner.svg +1 -11
- package/docs/design/templates/tab-bar/workspace-tabs-dark.svg +1 -1
- package/docs/design/templates/tab-bar/workspace-tabs.svg +1 -1
- package/docs/design/templates/tab-bar-dark.svg +1 -5
- package/docs/design/templates/tab-bar.svg +1 -5
- package/docs/design/templates/token-search-field/empty-dark.svg +1 -1
- package/docs/design/templates/token-search-field/empty.svg +1 -1
- package/docs/design/templates/token-search-field/tokens-dark.svg +1 -1
- package/docs/design/templates/token-search-field/tokens.svg +1 -1
- package/docs/design/templates/token-search-field-dark.svg +1 -7
- package/docs/design/templates/token-search-field.svg +1 -7
- package/docs/design/templates/toolbar/title-and-actions-dark.svg +1 -1
- package/docs/design/templates/toolbar/title-and-actions.svg +1 -1
- package/docs/design/templates/toolbar-control-group/borderless-single-dark.svg +1 -1
- package/docs/design/templates/toolbar-control-group/borderless-single.svg +1 -1
- package/docs/design/templates/toolbar-control-group/icon-buttons-dark.svg +1 -1
- package/docs/design/templates/toolbar-control-group/icon-buttons.svg +1 -1
- package/docs/design/templates/toolbar-control-group/push-buttons-dark.svg +1 -1
- package/docs/design/templates/toolbar-control-group/push-buttons.svg +1 -1
- package/docs/design/templates/toolbar-control-group/with-text-dark.svg +1 -1
- package/docs/design/templates/toolbar-control-group/with-text.svg +1 -1
- package/docs/design/templates/toolbar-control-group-dark.svg +1 -11
- package/docs/design/templates/toolbar-control-group.svg +1 -11
- package/docs/design/templates/toolbar-dark.svg +1 -5
- package/docs/design/templates/toolbar-text-dark.svg +1 -9
- package/docs/design/templates/toolbar-text.svg +1 -9
- package/docs/design/templates/toolbar.svg +1 -5
- package/docs/design/templates/value-table/details-dark.svg +1 -1
- package/docs/design/templates/value-table/details.svg +1 -1
- package/docs/design/templates/value-table-dark.svg +1 -5
- package/docs/design/templates/value-table.svg +1 -5
- package/docs/design/templates.md +29 -20
- package/docs/examples/component-catalog-extension-v2.json +3 -6
- package/docs/examples/component-catalog-extension.json +1 -1
- package/docs/layout.md +7 -9
- package/docs/recipes.md +8 -7
- package/docs/sunken-panel.md +11 -1
- package/docs/surface-scaffold.md +17 -0
- package/docs/type-contracts.md +11 -10
- package/docs/ui-analyzer.md +19 -1
- package/docs/ui-doctor.md +7 -5
- package/docs/ux-demo.md +6 -3
- package/docs/webawesome-theme.md +4 -1
- package/docs/workbench.md +49 -2
- package/doctor/eslint-diagnostics.d.mts +16 -0
- package/doctor/eslint-diagnostics.mjs +17 -0
- package/doctor/index.mjs +21 -3
- package/llms.txt +33 -11
- package/package.json +14 -8
- package/traversal-exclusions.mjs +7 -1
- package/ux-demo/recipes/app-shell.tsx +36 -23
- package/ux-demo/recipes/collapsible-sidebar.tsx +23 -17
- package/ux-demo/recipes/composer-form.tsx +15 -6
- package/ux-demo/recipes/list-detail-dialog.tsx +31 -15
- package/ux-demo/recipes/list-workspace-states.tsx +16 -7
- package/ux-demo/recipes/loading-inspector.tsx +39 -18
- package/ux-demo/recipes/navigation-sidebar.tsx +1 -1
- package/ux-demo/recipes/recipes.css +7 -2
- package/ux-demo/recipes/workspace-header.tsx +17 -7
- package/dist/browser/panel-header.js +0 -7
- package/dist/chunk-5VTB2BKP.js.map +0 -1
- package/dist/chunk-7L6EHUMV.js.map +0 -1
- package/dist/chunk-AASLYRGE.js.map +0 -1
- package/dist/chunk-BBRXX6PF.js.map +0 -1
- package/dist/chunk-DPDBVKNA.js.map +0 -1
- package/dist/chunk-DSNIYOZ3.js.map +0 -1
- package/dist/chunk-ELSJX4W7.js.map +0 -1
- package/dist/chunk-GP5DP5DL.js.map +0 -1
- package/dist/chunk-K57KRAOV.js.map +0 -1
- package/dist/chunk-M7JBER5U.js.map +0 -1
- package/dist/chunk-NENBUYX5.js +0 -79
- package/dist/chunk-NENBUYX5.js.map +0 -1
- package/dist/chunk-PIDTEQ3U.js.map +0 -1
- package/dist/chunk-PZQVSDLH.js.map +0 -1
- package/dist/chunk-RYRIFZCT.js +0 -58
- package/dist/chunk-RYRIFZCT.js.map +0 -1
- package/dist/chunk-VLYV65LK.js.map +0 -1
- package/dist/chunk-W4CXQYSG.js.map +0 -1
- package/dist/panel-header.d.ts +0 -42
- package/dist/panel-header.js +0 -7
- package/dist/panel-header.js.map +0 -1
- package/dist/styles/panel-header.css +0 -64
- package/docs/design/templates/panel-header/icon-actions-dark.svg +0 -1
- package/docs/design/templates/panel-header/icon-actions.svg +0 -1
- package/docs/design/templates/panel-header/icon-summary-actions-dark.svg +0 -1
- package/docs/design/templates/panel-header/icon-summary-actions.svg +0 -1
- package/docs/design/templates/panel-header/no-icon-dark.svg +0 -1
- package/docs/design/templates/panel-header/no-icon.svg +0 -1
- package/docs/design/templates/panel-header/page-heading-dark.svg +0 -1
- package/docs/design/templates/panel-header/page-heading.svg +0 -1
- package/docs/design/templates/panel-header/title-only-dark.svg +0 -1
- package/docs/design/templates/panel-header/title-only.svg +0 -1
- package/docs/design/templates/panel-header-dark.svg +0 -13
- package/docs/design/templates/panel-header.svg +0 -13
|
@@ -55,6 +55,58 @@
|
|
|
55
55
|
transparent
|
|
56
56
|
);
|
|
57
57
|
}
|
|
58
|
+
.kui-toolbar-control-group[data-size="compact"] {
|
|
59
|
+
--kui-toolbar-group-size: 2.125rem;
|
|
60
|
+
}
|
|
61
|
+
.kui-toolbar-control-group[data-density="tight"] {
|
|
62
|
+
--kui-layout-item-padding: 0.3125rem;
|
|
63
|
+
}
|
|
64
|
+
.kui-toolbar-control-group[data-content="text"] > :is(button, wa-button),
|
|
65
|
+
.kui-toolbar-control-group[data-content="mixed"] > :is(button, wa-button) {
|
|
66
|
+
min-width: max-content;
|
|
67
|
+
}
|
|
68
|
+
.kui-toolbar-control-group[data-content="mixed"] > button {
|
|
69
|
+
display: flex;
|
|
70
|
+
gap: var(--kui-space-xs);
|
|
71
|
+
}
|
|
72
|
+
.kui-toolbar-control-group[data-content="mixed"] {
|
|
73
|
+
gap: 0.5rem;
|
|
74
|
+
}
|
|
75
|
+
.kui-toolbar-control-group[data-content="mixed"] > wa-dropdown {
|
|
76
|
+
padding-inline-start: 0.375rem;
|
|
77
|
+
border-inline-start: 1px solid var(--kui-toolbar-control-border);
|
|
78
|
+
}
|
|
79
|
+
.kui-toolbar-control-group[data-content="avatar"] img {
|
|
80
|
+
width: 1.5rem;
|
|
81
|
+
height: 1.5rem;
|
|
82
|
+
border-radius: var(--kui-radius-pill);
|
|
83
|
+
object-fit: cover;
|
|
84
|
+
}
|
|
85
|
+
.kui-toolbar-control-group[data-content="avatar"][data-scrim="true"] {
|
|
86
|
+
--kui-toolbar-control-background: color-mix(
|
|
87
|
+
in srgb,
|
|
88
|
+
var(--kui-color-neutral-fill-loud) 64%,
|
|
89
|
+
transparent
|
|
90
|
+
);
|
|
91
|
+
--kui-toolbar-control-color: var(--kui-color-neutral-on-loud);
|
|
92
|
+
}
|
|
93
|
+
.kui-toolbar-control-group[data-selected-tone="neutral"] {
|
|
94
|
+
--kui-toolbar-control-selected-color: var(--kui-color-neutral-on-normal);
|
|
95
|
+
--kui-toolbar-control-selected-background: var(
|
|
96
|
+
--kui-color-neutral-fill-normal
|
|
97
|
+
);
|
|
98
|
+
}
|
|
99
|
+
.kui-toolbar-control-group[data-selected-chrome="filled"] {
|
|
100
|
+
--kui-toolbar-control-selected-shadow: none;
|
|
101
|
+
--kui-toolbar-control-selected-border: transparent;
|
|
102
|
+
--kui-toolbar-control-selected-background: var(--kui-color-brand-fill-normal);
|
|
103
|
+
--kui-toolbar-control-selected-color: var(--kui-color-brand-on-normal);
|
|
104
|
+
}
|
|
105
|
+
.kui-toolbar-control-group[data-selected-chrome="outline"] {
|
|
106
|
+
--kui-toolbar-control-selected-shadow: none;
|
|
107
|
+
--kui-toolbar-control-selected-background: transparent;
|
|
108
|
+
--kui-toolbar-control-selected-border: var(--kui-color-brand-border-normal);
|
|
109
|
+
}
|
|
58
110
|
|
|
59
111
|
.kui-toolbar-control-group[data-appearance="borderless"] {
|
|
60
112
|
/* A borderless group has no base fill to lift from, so the default
|
|
@@ -72,6 +124,9 @@
|
|
|
72
124
|
.kui-toolbar-control-group > :is(button, wa-button, wa-dropdown) {
|
|
73
125
|
flex: 0 0 auto;
|
|
74
126
|
}
|
|
127
|
+
.kui-toolbar-control-group > wa-dropdown {
|
|
128
|
+
display: inline-flex;
|
|
129
|
+
}
|
|
75
130
|
|
|
76
131
|
.kui-toolbar-control-group > button {
|
|
77
132
|
appearance: none;
|
|
@@ -111,6 +166,23 @@
|
|
|
111
166
|
min-width: 2.5rem;
|
|
112
167
|
height: 2.5rem;
|
|
113
168
|
}
|
|
169
|
+
.kui-toolbar-control-group[data-size="compact"] > button,
|
|
170
|
+
.kui-toolbar-control-group[data-size="compact"] > wa-button,
|
|
171
|
+
.kui-toolbar-control-group[data-size="compact"] > wa-dropdown,
|
|
172
|
+
.kui-toolbar-control-group[data-size="compact"] > wa-dropdown > wa-button,
|
|
173
|
+
.kui-toolbar-control-group[data-size="compact"]
|
|
174
|
+
> wa-dropdown
|
|
175
|
+
> wa-button::part(base),
|
|
176
|
+
.kui-toolbar-control-group[data-size="compact"][data-nested-dropdown="true"]
|
|
177
|
+
wa-dropdown
|
|
178
|
+
wa-button,
|
|
179
|
+
.kui-toolbar-control-group[data-size="compact"][data-nested-dropdown="true"]
|
|
180
|
+
wa-dropdown
|
|
181
|
+
wa-button::part(base) {
|
|
182
|
+
min-width: 2rem;
|
|
183
|
+
height: 2rem;
|
|
184
|
+
min-height: 2rem;
|
|
185
|
+
}
|
|
114
186
|
|
|
115
187
|
.kui-toolbar-control-group[data-single="true"] > wa-dropdown,
|
|
116
188
|
.kui-toolbar-control-group[data-single="true"] > wa-dropdown > wa-button,
|
|
@@ -161,7 +233,7 @@
|
|
|
161
233
|
|
|
162
234
|
/* A group holding exactly one control behaves like `single` even without the
|
|
163
235
|
flag: the whole group background changes on hover instead of highlighting an
|
|
164
|
-
inner layer inset from the border (KF-J9P1ZD — a
|
|
236
|
+
inner layer inset from the border (KF-J9P1ZD — a heading toolbar's lone Close/
|
|
165
237
|
Done action). */
|
|
166
238
|
.kui-toolbar-control-group:not([data-single="true"]):has(
|
|
167
239
|
> :is(button, wa-button):only-child
|
|
@@ -23,7 +23,7 @@
|
|
|
23
23
|
}
|
|
24
24
|
|
|
25
25
|
.kui-toolbar-text[data-size="xlarge"] {
|
|
26
|
-
/* Matches
|
|
26
|
+
/* Matches page/panel titles: the same responsive clamp so a heading toolbar
|
|
27
27
|
title reads at the page-title scale without a bespoke override. Height grows
|
|
28
28
|
to the larger text (the fixed 40px would clip its ascenders). */
|
|
29
29
|
height: auto;
|
package/dist/styles/toolbar.css
CHANGED
|
@@ -20,8 +20,44 @@
|
|
|
20
20
|
grid-template-columns: minmax(0, 1fr) auto;
|
|
21
21
|
}
|
|
22
22
|
|
|
23
|
-
.kui-toolbar
|
|
24
|
-
|
|
23
|
+
.kui-toolbar {
|
|
24
|
+
--_kui-toolbar-divider-top: transparent;
|
|
25
|
+
--_kui-toolbar-divider-right: transparent;
|
|
26
|
+
--_kui-toolbar-divider-bottom: transparent;
|
|
27
|
+
--_kui-toolbar-divider-left: transparent;
|
|
28
|
+
box-shadow:
|
|
29
|
+
inset 0 1px var(--_kui-toolbar-divider-top),
|
|
30
|
+
inset -1px 0 var(--_kui-toolbar-divider-right),
|
|
31
|
+
inset 0 -1px var(--_kui-toolbar-divider-bottom),
|
|
32
|
+
inset 1px 0 var(--_kui-toolbar-divider-left);
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
.kui-toolbar[divider-sides*="t"] {
|
|
36
|
+
--_kui-toolbar-divider-top: var(
|
|
37
|
+
--kui-toolbar-divider-color,
|
|
38
|
+
var(--kui-color-border)
|
|
39
|
+
);
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
.kui-toolbar[divider-sides*="r"] {
|
|
43
|
+
--_kui-toolbar-divider-right: var(
|
|
44
|
+
--kui-toolbar-divider-color,
|
|
45
|
+
var(--kui-color-border)
|
|
46
|
+
);
|
|
47
|
+
}
|
|
48
|
+
|
|
49
|
+
.kui-toolbar[divider-sides*="b"] {
|
|
50
|
+
--_kui-toolbar-divider-bottom: var(
|
|
51
|
+
--kui-toolbar-divider-color,
|
|
52
|
+
var(--kui-color-border)
|
|
53
|
+
);
|
|
54
|
+
}
|
|
55
|
+
|
|
56
|
+
.kui-toolbar[divider-sides*="l"] {
|
|
57
|
+
--_kui-toolbar-divider-left: var(
|
|
58
|
+
--kui-toolbar-divider-color,
|
|
59
|
+
var(--kui-color-border)
|
|
60
|
+
);
|
|
25
61
|
}
|
|
26
62
|
|
|
27
63
|
.kui-toolbar__leading,
|
|
@@ -290,6 +290,18 @@
|
|
|
290
290
|
padding: var(--kui-wa-surface-inset);
|
|
291
291
|
}
|
|
292
292
|
|
|
293
|
+
/* Dialog content follows the compact surface inset, while its action region
|
|
294
|
+
retains the roomier homogeneous-group step. Keep these independent of
|
|
295
|
+
Web Awesome's shared --spacing property so applications can tune the
|
|
296
|
+
header without accidentally moving body or footer content. */
|
|
297
|
+
wa-dialog::part(body) {
|
|
298
|
+
padding: var(--kui-wa-surface-inset);
|
|
299
|
+
}
|
|
300
|
+
|
|
301
|
+
wa-dialog::part(footer) {
|
|
302
|
+
padding: var(--kui-wa-container-inset);
|
|
303
|
+
}
|
|
304
|
+
|
|
293
305
|
wa-callout {
|
|
294
306
|
padding: var(--kui-wa-surface-inset) !important;
|
|
295
307
|
}
|
|
@@ -1,4 +1,5 @@
|
|
|
1
1
|
.kui-workbench {
|
|
2
|
+
position: relative;
|
|
2
3
|
display: flex;
|
|
3
4
|
min-width: 0;
|
|
4
5
|
min-height: 0;
|
|
@@ -30,6 +31,11 @@
|
|
|
30
31
|
border-inline: 0;
|
|
31
32
|
}
|
|
32
33
|
|
|
34
|
+
.kui-workbench__rail[data-separator="hidden"],
|
|
35
|
+
.kui-workbench__drawer[data-separator="hidden"] {
|
|
36
|
+
border-color: transparent;
|
|
37
|
+
}
|
|
38
|
+
|
|
33
39
|
.kui-workbench__center {
|
|
34
40
|
display: flex;
|
|
35
41
|
flex: 1;
|
|
@@ -59,6 +65,17 @@
|
|
|
59
65
|
border-block-start: 0;
|
|
60
66
|
}
|
|
61
67
|
|
|
68
|
+
.kui-workbench__rail[data-content-overflow="auto"],
|
|
69
|
+
.kui-workbench__drawer[data-content-overflow="auto"] {
|
|
70
|
+
overflow: auto;
|
|
71
|
+
}
|
|
72
|
+
|
|
73
|
+
.kui-workbench__rail[data-content-overflow="visible"],
|
|
74
|
+
.kui-workbench__drawer[data-content-overflow="visible"] {
|
|
75
|
+
z-index: var(--kui-workbench-popup-z, 5);
|
|
76
|
+
overflow: visible;
|
|
77
|
+
}
|
|
78
|
+
|
|
62
79
|
/* The fixed-size sliding content. The rail/drawer keeps a definite size on its
|
|
63
80
|
content so the transform reads as a slide, not a squeeze. */
|
|
64
81
|
.kui-workbench__rail .kui-workbench__panel-content {
|
|
@@ -73,6 +90,19 @@
|
|
|
73
90
|
transition: transform 200ms ease;
|
|
74
91
|
}
|
|
75
92
|
|
|
93
|
+
.kui-workbench__rail[data-collapse-motion="none"] .kui-workbench__panel-content,
|
|
94
|
+
.kui-workbench__drawer[data-collapse-motion="none"]
|
|
95
|
+
.kui-workbench__panel-content {
|
|
96
|
+
transition: none;
|
|
97
|
+
}
|
|
98
|
+
|
|
99
|
+
.kui-workbench__rail[data-collapse-motion="fade-slide"][data-collapsed="true"]
|
|
100
|
+
.kui-workbench__panel-content,
|
|
101
|
+
.kui-workbench__drawer[data-collapse-motion="fade-slide"][data-collapsed="true"]
|
|
102
|
+
.kui-workbench__panel-content {
|
|
103
|
+
opacity: 0;
|
|
104
|
+
}
|
|
105
|
+
|
|
76
106
|
.kui-workbench__rail--left[data-collapsed="true"]
|
|
77
107
|
.kui-workbench__panel-content {
|
|
78
108
|
transform: translateX(-100%);
|
|
@@ -87,6 +117,65 @@
|
|
|
87
117
|
transform: translateY(100%);
|
|
88
118
|
}
|
|
89
119
|
|
|
120
|
+
.kui-workbench__rail[data-presentation="overlay"],
|
|
121
|
+
.kui-workbench__drawer[data-presentation="overlay"] {
|
|
122
|
+
position: absolute;
|
|
123
|
+
z-index: var(--kui-workbench-overlay-z, 41);
|
|
124
|
+
max-width: var(--kui-workbench-overlay-max-width, 85vw);
|
|
125
|
+
max-height: var(--kui-workbench-overlay-max-height, 85vh);
|
|
126
|
+
box-shadow: var(--kui-shadow-l, 0 8px 32px rgb(0 0 0 / 24%));
|
|
127
|
+
}
|
|
128
|
+
|
|
129
|
+
.kui-workbench__rail[data-presentation="overlay"] {
|
|
130
|
+
inset-block: 0;
|
|
131
|
+
}
|
|
132
|
+
|
|
133
|
+
.kui-workbench__rail--left[data-presentation="overlay"] {
|
|
134
|
+
inset-inline-start: 0;
|
|
135
|
+
}
|
|
136
|
+
|
|
137
|
+
.kui-workbench__rail--right[data-presentation="overlay"] {
|
|
138
|
+
inset-inline-end: 0;
|
|
139
|
+
}
|
|
140
|
+
|
|
141
|
+
.kui-workbench__drawer[data-presentation="overlay"] {
|
|
142
|
+
inset-inline: 0;
|
|
143
|
+
inset-block-end: 0;
|
|
144
|
+
}
|
|
145
|
+
|
|
146
|
+
.kui-workbench__rail[data-presentation="overlay"][data-collapsed="true"],
|
|
147
|
+
.kui-workbench__drawer[data-presentation="overlay"][data-collapsed="true"] {
|
|
148
|
+
pointer-events: none;
|
|
149
|
+
}
|
|
150
|
+
|
|
151
|
+
.kui-workbench__rail[data-presentation="hidden"],
|
|
152
|
+
.kui-workbench__drawer[data-presentation="hidden"] {
|
|
153
|
+
display: none;
|
|
154
|
+
}
|
|
155
|
+
|
|
156
|
+
.kui-workbench__restore {
|
|
157
|
+
position: fixed;
|
|
158
|
+
z-index: var(--kui-workbench-restore-z, 42);
|
|
159
|
+
inset-block-end: calc(
|
|
160
|
+
var(--kui-workbench-restore-inset, 1rem) +
|
|
161
|
+
var(--kui-safe-area-block-end, env(safe-area-inset-bottom, 0px))
|
|
162
|
+
);
|
|
163
|
+
}
|
|
164
|
+
|
|
165
|
+
.kui-workbench__restore[data-position="bottom-start"] {
|
|
166
|
+
inset-inline-start: calc(
|
|
167
|
+
var(--kui-workbench-restore-inset, 1rem) +
|
|
168
|
+
var(--kui-safe-area-inline-start, env(safe-area-inset-left, 0px))
|
|
169
|
+
);
|
|
170
|
+
}
|
|
171
|
+
|
|
172
|
+
.kui-workbench__restore[data-position="bottom-end"] {
|
|
173
|
+
inset-inline-end: calc(
|
|
174
|
+
var(--kui-workbench-restore-inset, 1rem) +
|
|
175
|
+
var(--kui-safe-area-inline-end, env(safe-area-inset-right, 0px))
|
|
176
|
+
);
|
|
177
|
+
}
|
|
178
|
+
|
|
90
179
|
@media (prefers-reduced-motion: reduce) {
|
|
91
180
|
.kui-workbench__panel-content {
|
|
92
181
|
transition: none;
|
package/dist/sunken-panel.d.ts
CHANGED
|
@@ -1,9 +1,12 @@
|
|
|
1
1
|
import { SafeHtml } from 'kerfjs';
|
|
2
2
|
|
|
3
|
+
type SunkenPanelShape = 'rounded' | 'square';
|
|
3
4
|
interface SunkenPanelProps {
|
|
4
5
|
children?: SafeHtml | readonly SafeHtml[];
|
|
5
6
|
/** Optional accessible landmark name for a distinct application region. */
|
|
6
7
|
ariaLabel?: string;
|
|
8
|
+
/** Corner shape: a rounded rectangle (default) or square corners. */
|
|
9
|
+
shape?: SunkenPanelShape;
|
|
7
10
|
className?: string;
|
|
8
11
|
}
|
|
9
12
|
/**
|
|
@@ -11,6 +14,6 @@ interface SunkenPanelProps {
|
|
|
11
14
|
* stack. The panel owns its background and padding; children own their own
|
|
12
15
|
* borders and internal geometry.
|
|
13
16
|
*/
|
|
14
|
-
declare function SunkenPanel({ children, ariaLabel, className, }: SunkenPanelProps): SafeHtml;
|
|
17
|
+
declare function SunkenPanel({ children, ariaLabel, shape, className, }: SunkenPanelProps): SafeHtml;
|
|
15
18
|
|
|
16
|
-
export { SunkenPanel, type SunkenPanelProps };
|
|
19
|
+
export { SunkenPanel, type SunkenPanelProps, type SunkenPanelShape };
|
package/dist/sunken-panel.js
CHANGED
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { SafeHtml } from 'kerfjs';
|
|
2
|
+
|
|
3
|
+
type DialogSurfaceSize = 'small' | 'medium' | 'large';
|
|
4
|
+
type DialogSurfacePresentation = 'modal' | 'side-sheet' | 'fullscreen';
|
|
5
|
+
type SurfaceInset = 'none' | 'compact' | 'comfortable';
|
|
6
|
+
interface DialogSurfaceProps {
|
|
7
|
+
children: SafeHtml | readonly SafeHtml[];
|
|
8
|
+
size?: DialogSurfaceSize;
|
|
9
|
+
presentation?: DialogSurfacePresentation;
|
|
10
|
+
bodyInset?: SurfaceInset;
|
|
11
|
+
footerInset?: SurfaceInset;
|
|
12
|
+
className?: string;
|
|
13
|
+
}
|
|
14
|
+
/** Configure recurring Web Awesome dialog geometry without consumer ::part() CSS. */
|
|
15
|
+
declare function DialogSurface({ children, size, presentation, bodyInset, footerInset, className, }: DialogSurfaceProps): SafeHtml;
|
|
16
|
+
type PopupSurfaceInset = 'standard' | 'compact' | 'list-zero';
|
|
17
|
+
interface PopupSurfaceProps {
|
|
18
|
+
children: SafeHtml | readonly SafeHtml[];
|
|
19
|
+
inset?: PopupSurfaceInset;
|
|
20
|
+
className?: string;
|
|
21
|
+
}
|
|
22
|
+
/** Configure recurring Web Awesome dropdown-menu geometry without consumer ::part() CSS. */
|
|
23
|
+
declare function PopupSurface({ children, inset, className, }: PopupSurfaceProps): SafeHtml;
|
|
24
|
+
|
|
25
|
+
export { DialogSurface, type DialogSurfacePresentation, type DialogSurfaceProps, type DialogSurfaceSize, PopupSurface, type PopupSurfaceInset, type PopupSurfaceProps, type SurfaceInset };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"sources":[],"names":[],"mappings":"","file":"surface-scaffold.js"}
|
package/dist/tab-bar.d.ts
CHANGED
|
@@ -1,6 +1,9 @@
|
|
|
1
1
|
import { SafeHtml } from 'kerfjs';
|
|
2
2
|
|
|
3
3
|
type TabActivation = 'automatic' | 'manual';
|
|
4
|
+
type TabBarAllocation = 'intrinsic' | 'fill';
|
|
5
|
+
type TabBarPresentation = 'rail' | 'segmented' | 'inspector';
|
|
6
|
+
type TabBarTrailingPlacement = 'separate' | 'adjacent';
|
|
4
7
|
interface TabBarProps {
|
|
5
8
|
id: string;
|
|
6
9
|
label: string;
|
|
@@ -15,8 +18,14 @@ interface TabBarProps {
|
|
|
15
18
|
* selects with Enter / Space / click — use it when selecting a tab is a heavy action.
|
|
16
19
|
*/
|
|
17
20
|
activation?: TabActivation;
|
|
21
|
+
/** How available strip width is allocated across child AppTabs. */
|
|
22
|
+
allocation?: TabBarAllocation;
|
|
23
|
+
/** Named strip chrome for application rails, segmented tabs, or inspectors. */
|
|
24
|
+
presentation?: TabBarPresentation;
|
|
25
|
+
/** Keep a trailing action beside the final tab or at the far edge of the bar. */
|
|
26
|
+
trailingPlacement?: TabBarTrailingPlacement;
|
|
18
27
|
}
|
|
19
28
|
/** Render a controlled tab strip. The application owns selection, order, and persistence. */
|
|
20
|
-
declare function TabBar({ id, label, children, leading, trailing, className, activation, }: TabBarProps): SafeHtml;
|
|
29
|
+
declare function TabBar({ id, label, children, leading, trailing, className, activation, allocation, presentation, trailingPlacement, }: TabBarProps): SafeHtml;
|
|
21
30
|
|
|
22
|
-
export { type TabActivation, TabBar, type TabBarProps };
|
|
31
|
+
export { type TabActivation, TabBar, type TabBarAllocation, type TabBarPresentation, type TabBarProps, type TabBarTrailingPlacement };
|
package/dist/tab-bar.js
CHANGED
|
@@ -4,6 +4,11 @@ type ToolbarControlGroupAppearance = 'contained' | 'borderless';
|
|
|
4
4
|
type ToolbarControlGroupTone = 'default' | 'dark';
|
|
5
5
|
type ToolbarControlGroupButtonAppearance = 'plain' | 'push';
|
|
6
6
|
type ToolbarControlGroupShape = 'pill' | 'rounded';
|
|
7
|
+
type ToolbarControlGroupSize = 'default' | 'compact';
|
|
8
|
+
type ToolbarControlGroupDensity = 'comfortable' | 'tight';
|
|
9
|
+
type ToolbarControlGroupContent = 'icon' | 'text' | 'mixed' | 'avatar';
|
|
10
|
+
type ToolbarControlGroupSelectedChrome = 'raised' | 'filled' | 'outline';
|
|
11
|
+
type ToolbarControlGroupSelectedTone = 'brand' | 'neutral';
|
|
7
12
|
interface ToolbarControlGroupProps {
|
|
8
13
|
children: SafeHtml | SafeHtml[];
|
|
9
14
|
label?: string;
|
|
@@ -15,7 +20,16 @@ interface ToolbarControlGroupProps {
|
|
|
15
20
|
buttonAppearance?: ToolbarControlGroupButtonAppearance;
|
|
16
21
|
/** Corner shape: fully round `pill` (default) or a softer `rounded` rectangle. */
|
|
17
22
|
shape?: ToolbarControlGroupShape;
|
|
23
|
+
size?: ToolbarControlGroupSize;
|
|
24
|
+
density?: ToolbarControlGroupDensity;
|
|
25
|
+
content?: ToolbarControlGroupContent;
|
|
26
|
+
selectedChrome?: ToolbarControlGroupSelectedChrome;
|
|
27
|
+
selectedTone?: ToolbarControlGroupSelectedTone;
|
|
28
|
+
/** Size a nested Web Awesome dropdown trigger as part of this group. */
|
|
29
|
+
nestedDropdown?: boolean;
|
|
30
|
+
/** Add contrast behind photo-backed avatar content. */
|
|
31
|
+
scrim?: boolean;
|
|
18
32
|
}
|
|
19
|
-
declare function ToolbarControlGroup({ children, label, className, expanded, single, appearance, tone, buttonAppearance, shape, }: ToolbarControlGroupProps): SafeHtml;
|
|
33
|
+
declare function ToolbarControlGroup({ children, label, className, expanded, single, appearance, tone, buttonAppearance, shape, size, density, content, selectedChrome, selectedTone, nestedDropdown, scrim, }: ToolbarControlGroupProps): SafeHtml;
|
|
20
34
|
|
|
21
|
-
export { ToolbarControlGroup, type ToolbarControlGroupAppearance, type ToolbarControlGroupButtonAppearance, type ToolbarControlGroupProps, type ToolbarControlGroupShape, type ToolbarControlGroupTone };
|
|
35
|
+
export { ToolbarControlGroup, type ToolbarControlGroupAppearance, type ToolbarControlGroupButtonAppearance, type ToolbarControlGroupContent, type ToolbarControlGroupDensity, type ToolbarControlGroupProps, type ToolbarControlGroupSelectedChrome, type ToolbarControlGroupSelectedTone, type ToolbarControlGroupShape, type ToolbarControlGroupSize, type ToolbarControlGroupTone };
|
package/dist/toolbar-text.js
CHANGED
package/dist/toolbar.d.ts
CHANGED
|
@@ -1,13 +1,15 @@
|
|
|
1
1
|
import { SafeHtml } from 'kerfjs';
|
|
2
|
+
import { D as DividerSides } from './divider-sides-267FA7sY.js';
|
|
2
3
|
|
|
3
4
|
interface ToolbarProps {
|
|
4
5
|
leading?: SafeHtml;
|
|
5
6
|
center?: SafeHtml;
|
|
6
7
|
trailing?: SafeHtml;
|
|
7
8
|
label?: string;
|
|
8
|
-
divider
|
|
9
|
+
/** Physical divider edges in canonical top/right/bottom/left order. Defaults to bottom. */
|
|
10
|
+
dividerSides?: DividerSides;
|
|
9
11
|
className?: string;
|
|
10
12
|
}
|
|
11
|
-
declare function Toolbar({ leading, center, trailing, label,
|
|
13
|
+
declare function Toolbar({ leading, center, trailing, label, dividerSides, className, }: ToolbarProps): SafeHtml;
|
|
12
14
|
|
|
13
|
-
export { Toolbar, type ToolbarProps };
|
|
15
|
+
export { DividerSides, Toolbar, type ToolbarProps };
|
package/dist/toolbar.js
CHANGED
package/dist/value-table.js
CHANGED
package/dist/webawesome.d.ts
CHANGED
package/dist/wire-catalog.d.ts
CHANGED
|
@@ -39,8 +39,10 @@ interface CatalogRevealOptions {
|
|
|
39
39
|
declare function revealCatalogEntry(root: HTMLElement, id: string, { block, inline, behavior, media, }?: CatalogRevealOptions): () => void;
|
|
40
40
|
/**
|
|
41
41
|
* Keep a Catalog's opt-in geometry overlay synchronized with its preview.
|
|
42
|
-
*
|
|
43
|
-
*
|
|
42
|
+
* Specimens receive computed border highlights (or a dashed bound when they
|
|
43
|
+
* have no border and are transparent), while positive computed margins use
|
|
44
|
+
* devtools-style orange bands. CSS/stylesheet-only changes are observed too.
|
|
45
|
+
* Returns a disposer.
|
|
44
46
|
*/
|
|
45
47
|
declare function wireCatalogGeometryOverlay(root: HTMLElement): () => void;
|
|
46
48
|
/**
|