@kerfjs/ui 5.0.0-beta.61 → 5.0.0-beta.63
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 +4 -0
- package/ai/component-catalog-extension.schema.json +13 -0
- package/ai/component-catalog.json +20 -7
- package/ai/component-composition.json +17 -3
- package/ai/components/list-item.md +1 -1
- package/ai/components/pane.md +3 -2
- package/ai/components/select.md +1 -0
- package/ai/components/toolbar-text.md +2 -1
- package/ai/components/workbench.md +3 -2
- package/ai/public-api-signatures-v1.md +162 -48
- package/ai/skill.md +11 -5
- package/ai/webawesome-jsx-signatures-v1.md +1 -1
- package/analyzer/index.mjs +3 -2
- package/catalog-projection-cli.mjs +96 -0
- package/catalog-projection.d.mts +55 -0
- package/catalog-projection.mjs +62 -0
- package/dist/browser/catalog.js +1 -1
- package/dist/browser/collapsible-panel.js +2 -0
- package/dist/browser/nav-stack.js +1 -0
- package/dist/browser/split-view.js +1 -0
- package/dist/browser/toolbar-control-group.js +1 -0
- package/dist/browser/workbench.js +1 -0
- package/dist/catalog-resources.d.ts +1 -1
- package/dist/catalog.d.ts +1 -1
- package/dist/catalog.js +11 -10
- package/dist/catalog.js.map +1 -1
- package/dist/chip.d.ts +9 -3
- package/dist/chip.js +1 -1
- package/dist/{chunk-EZVNC4J6.js → chunk-3BYFWTP3.js} +7 -3
- package/dist/chunk-3BYFWTP3.js.map +1 -0
- package/dist/{chunk-5Q3N6EV7.js → chunk-5IJ6UGNZ.js} +3 -3
- package/dist/{chunk-5Q3N6EV7.js.map → chunk-5IJ6UGNZ.js.map} +1 -1
- package/dist/chunk-7AKGPBCC.js +76 -0
- package/dist/chunk-7AKGPBCC.js.map +1 -0
- package/dist/{chunk-KROD7KZK.js → chunk-AUVG54KC.js} +2 -2
- package/dist/{chunk-KROD7KZK.js.map → chunk-AUVG54KC.js.map} +1 -1
- package/dist/{chunk-AUKT3KMG.js → chunk-CQHN45XR.js} +17 -2
- package/dist/chunk-CQHN45XR.js.map +1 -0
- package/dist/{chunk-SWVW56CV.js → chunk-EN4LDR5Y.js} +2 -2
- package/dist/{chunk-SWVW56CV.js.map → chunk-EN4LDR5Y.js.map} +1 -1
- package/dist/{chunk-TEYARRAK.js → chunk-F7OCOBTG.js} +5 -2
- package/dist/chunk-F7OCOBTG.js.map +1 -0
- package/dist/{chunk-5PESG2VP.js → chunk-HXCMWANP.js} +6 -5
- package/dist/chunk-HXCMWANP.js.map +1 -0
- package/dist/{chunk-NYL63PSD.js → chunk-IA4D5XNT.js} +61 -10
- package/dist/chunk-IA4D5XNT.js.map +1 -0
- package/dist/{chunk-F4QMLOXJ.js → chunk-IAOAZUOO.js} +2 -2
- package/dist/{chunk-F4QMLOXJ.js.map → chunk-IAOAZUOO.js.map} +1 -1
- package/dist/{chunk-Y74NWGQW.js → chunk-KFYANKJI.js} +66 -22
- package/dist/chunk-KFYANKJI.js.map +1 -0
- package/dist/chunk-MOSIE4Z2.js +51 -0
- package/dist/chunk-MOSIE4Z2.js.map +1 -0
- package/dist/{chunk-7JUBXOIV.js → chunk-NXWE5S57.js} +25 -6
- package/dist/chunk-NXWE5S57.js.map +1 -0
- package/dist/{chunk-NNMLEDMD.js → chunk-OBAFAH5B.js} +36 -8
- package/dist/chunk-OBAFAH5B.js.map +1 -0
- package/dist/{chunk-A3CKOW2R.js → chunk-R75GGNWY.js} +123 -20
- package/dist/chunk-R75GGNWY.js.map +1 -0
- package/dist/chunk-RGS4WX2M.js +44 -0
- package/dist/chunk-RGS4WX2M.js.map +1 -0
- package/dist/{chunk-N3GKMPDW.js → chunk-RKTTF3L4.js} +3 -1
- package/dist/chunk-RKTTF3L4.js.map +1 -0
- package/dist/{chunk-RRB26JRJ.js → chunk-RTJNJTG3.js} +2 -2
- package/dist/{chunk-RRB26JRJ.js.map → chunk-RTJNJTG3.js.map} +1 -1
- package/dist/{chunk-EAC4CDY7.js → chunk-SMZGAPCU.js} +15 -2
- package/dist/chunk-SMZGAPCU.js.map +1 -0
- package/dist/{chunk-C4OYOKWX.js → chunk-UA6JW52D.js} +36 -2
- package/dist/chunk-UA6JW52D.js.map +1 -0
- package/dist/{chunk-3SXMEK3B.js → chunk-V3DX3K65.js} +1 -1
- package/dist/chunk-V3DX3K65.js.map +1 -0
- package/dist/{chunk-6ZXOQEAN.js → chunk-WF75U3V4.js} +7 -1
- package/dist/chunk-WF75U3V4.js.map +1 -0
- package/dist/{chunk-VCBTX62E.js → chunk-ZRWXFDDS.js} +2 -2
- package/dist/chunk-ZRWXFDDS.js.map +1 -0
- package/dist/collapsible-panel.d.ts +18 -7
- package/dist/collapsible-panel.js +19 -3
- package/dist/collapsible-panel.js.map +1 -1
- package/dist/content-item.d.ts +36 -5
- package/dist/content-item.js +1 -1
- package/dist/disclosure-arrow.js +2 -1
- package/dist/index.d.ts +3 -3
- package/dist/index.js +22 -22
- package/dist/list-action-row.js +1 -1
- package/dist/list-header.js +1 -1
- package/dist/list-item.js +1 -1
- package/dist/lucide-icon.d.ts +5 -2
- package/dist/lucide-icon.js +2 -1
- package/dist/nav-stack.d.ts +3 -1
- package/dist/nav-stack.js +2 -1
- package/dist/pane.d.ts +10 -4
- package/dist/pane.js +1 -1
- package/dist/{panel-toolbar-DqwtBxQL.d.ts → panel-toolbar-DDKh4uKd.d.ts} +11 -2
- package/dist/popup-menu-register.js +38 -1
- package/dist/popup-menu-register.js.map +1 -1
- package/dist/popup-menu.d.ts +2 -2
- package/dist/popup-menu.js +1 -1
- package/dist/select.d.ts +2 -0
- package/dist/select.js +1 -1
- package/dist/split-view.d.ts +1 -1
- package/dist/split-view.js +2 -1
- package/dist/split-view.js.map +1 -1
- package/dist/styles/app-tab.css +84 -0
- package/dist/styles/chip.css +14 -0
- package/dist/styles/content-item.css +36 -0
- package/dist/styles/list-action-row.css +4 -3
- package/dist/styles/list-header.css +4 -3
- package/dist/styles/list-item.css +21 -11
- package/dist/styles/lucide-icon.css +5 -0
- package/dist/styles/nav-stack.css +13 -0
- package/dist/styles/pane.css +36 -2
- package/dist/styles/popup-menu.css +15 -10
- package/dist/styles/resizable-region.css +9 -0
- package/dist/styles/select.css +26 -0
- package/dist/styles/split-view.css +6 -0
- package/dist/styles/sunken-panel.css +7 -0
- package/dist/styles/tab-bar.css +3 -0
- package/dist/styles/tab-scaffold.css +13 -0
- package/dist/styles/text.css +29 -0
- package/dist/styles/token-search-field.css +29 -6
- package/dist/styles/toolbar-control-group.css +35 -0
- package/dist/styles/toolbar-text.css +15 -6
- package/dist/styles/toolbar.css +7 -0
- package/dist/styles/workbench.css +260 -90
- package/dist/sunken-panel.d.ts +6 -1
- package/dist/sunken-panel.js +1 -1
- package/dist/tab-bar.d.ts +6 -2
- package/dist/tab-bar.js +1 -1
- package/dist/tab-scaffold.d.ts +3 -0
- package/dist/tab-scaffold.js +1 -0
- package/dist/tab-scaffold.js.map +1 -1
- package/dist/text.d.ts +14 -3
- package/dist/text.js +1 -1
- package/dist/token-search-field.js +2 -1
- package/dist/toolbar-control-group.d.ts +5 -1
- package/dist/toolbar-control-group.js +2 -1
- package/dist/toolbar-text.d.ts +1 -1
- package/dist/toolbar-text.js +1 -1
- package/dist/toolbar.d.ts +7 -4
- package/dist/toolbar.js +1 -1
- package/dist/wire-catalog.js +1 -1
- package/dist/wire-content-items.d.ts +9 -0
- package/dist/wire-content-items.js +62 -0
- package/dist/wire-content-items.js.map +1 -0
- package/dist/wire-tab-bars.js +1 -1
- package/dist/wire-token-search-fields.js +2 -1
- package/dist/wire-workbench.d.ts +7 -0
- package/dist/wire-workbench.js +1 -1
- package/dist/workbench.d.ts +24 -8
- package/dist/workbench.js +2 -1
- package/docs/accessibility.md +21 -5
- package/docs/catalog.md +36 -0
- package/docs/collapsible-panel.md +12 -4
- package/docs/component-contract.md +10 -4
- package/docs/component-selection.md +65 -15
- 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-dark.svg +1 -1
- package/docs/design/templates/toolbar.svg +1 -1
- package/docs/examples/component-catalog-extension.json +6 -0
- package/docs/layout.md +61 -3
- package/docs/nav-stack.md +5 -0
- package/docs/split-view.md +5 -0
- package/docs/sunken-panel.md +30 -1
- package/docs/tab-scaffold.md +5 -0
- package/docs/ui-analyzer.md +4 -0
- package/docs/webawesome-theme.md +36 -6
- package/docs/workbench.md +60 -14
- package/llms.txt +12 -4
- package/package.json +16 -2
- package/scripts/component-catalog-extension-validation.mjs +28 -0
- package/dist/chunk-3SXMEK3B.js.map +0 -1
- package/dist/chunk-4R777DUZ.js +0 -34
- package/dist/chunk-4R777DUZ.js.map +0 -1
- package/dist/chunk-5PESG2VP.js.map +0 -1
- package/dist/chunk-6ZXOQEAN.js.map +0 -1
- package/dist/chunk-7JUBXOIV.js.map +0 -1
- package/dist/chunk-A3CKOW2R.js.map +0 -1
- package/dist/chunk-AUKT3KMG.js.map +0 -1
- package/dist/chunk-C4OYOKWX.js.map +0 -1
- package/dist/chunk-EAC4CDY7.js.map +0 -1
- package/dist/chunk-EZVNC4J6.js.map +0 -1
- package/dist/chunk-MA73TA6D.js +0 -42
- package/dist/chunk-MA73TA6D.js.map +0 -1
- package/dist/chunk-MERWRTBG.js +0 -45
- package/dist/chunk-MERWRTBG.js.map +0 -1
- package/dist/chunk-N3GKMPDW.js.map +0 -1
- package/dist/chunk-NNMLEDMD.js.map +0 -1
- package/dist/chunk-NYL63PSD.js.map +0 -1
- package/dist/chunk-TEYARRAK.js.map +0 -1
- package/dist/chunk-VCBTX62E.js.map +0 -1
- package/dist/chunk-Y74NWGQW.js.map +0 -1
|
@@ -1,9 +1,4 @@
|
|
|
1
1
|
.kui-list-item {
|
|
2
|
-
--kui-list-group-divider-color: var(--kui-color-neutral-border-quiet);
|
|
3
|
-
--kui-list-item-color: var(--kui-color-neutral-on-normal);
|
|
4
|
-
--kui-list-item-hover-background: var(--kui-color-neutral-fill-quiet);
|
|
5
|
-
--kui-list-item-selected-color: var(--kui-color-neutral-on-normal);
|
|
6
|
-
--kui-list-item-selected-background: var(--kui-color-brand-fill-normal);
|
|
7
2
|
display: grid;
|
|
8
3
|
width: calc(100% - (2 * var(--kui-layout-inline-margin, 0.5rem)));
|
|
9
4
|
min-height: var(--kui-list-item-min-height, 2.75rem);
|
|
@@ -24,7 +19,7 @@
|
|
|
24
19
|
--kui-list-item-radius,
|
|
25
20
|
var(--kui-layout-rounded-radius, calc(1px + 0.6875rem))
|
|
26
21
|
);
|
|
27
|
-
color: var(--kui-list-item-color);
|
|
22
|
+
color: var(--kui-list-item-color, var(--kui-color-neutral-on-normal));
|
|
28
23
|
background: var(--kui-list-item-background, transparent);
|
|
29
24
|
cursor: pointer;
|
|
30
25
|
grid-template-columns: var(--kui-list-item-columns, minmax(0, 1fr) auto);
|
|
@@ -55,14 +50,20 @@
|
|
|
55
50
|
|
|
56
51
|
.kui-list-item[data-divider="before"],
|
|
57
52
|
.kui-list-item[data-divider="both"] {
|
|
58
|
-
border-block-start-color: var(
|
|
53
|
+
border-block-start-color: var(
|
|
54
|
+
--kui-list-group-divider-color,
|
|
55
|
+
var(--kui-color-neutral-border-quiet)
|
|
56
|
+
);
|
|
59
57
|
border-start-start-radius: 0;
|
|
60
58
|
border-start-end-radius: 0;
|
|
61
59
|
}
|
|
62
60
|
|
|
63
61
|
.kui-list-item[data-divider="after"],
|
|
64
62
|
.kui-list-item[data-divider="both"] {
|
|
65
|
-
border-block-end-color: var(
|
|
63
|
+
border-block-end-color: var(
|
|
64
|
+
--kui-list-group-divider-color,
|
|
65
|
+
var(--kui-color-neutral-border-quiet)
|
|
66
|
+
);
|
|
66
67
|
border-end-start-radius: 0;
|
|
67
68
|
border-end-end-radius: 0;
|
|
68
69
|
}
|
|
@@ -99,7 +100,10 @@
|
|
|
99
100
|
--kui-list-item-hover-border,
|
|
100
101
|
var(--kui-color-neutral-border-normal)
|
|
101
102
|
);
|
|
102
|
-
background: var(
|
|
103
|
+
background: var(
|
|
104
|
+
--kui-list-item-hover-background,
|
|
105
|
+
var(--kui-color-neutral-fill-quiet)
|
|
106
|
+
);
|
|
103
107
|
}
|
|
104
108
|
|
|
105
109
|
/* A placeholder is disabled to stay inert, but it is loading, not unavailable:
|
|
@@ -124,8 +128,14 @@
|
|
|
124
128
|
--kui-list-item-selected-border,
|
|
125
129
|
var(--kui-color-brand-border-quiet)
|
|
126
130
|
);
|
|
127
|
-
color: var(
|
|
128
|
-
|
|
131
|
+
color: var(
|
|
132
|
+
--kui-list-item-selected-color,
|
|
133
|
+
var(--kui-color-neutral-on-normal)
|
|
134
|
+
);
|
|
135
|
+
background: var(
|
|
136
|
+
--kui-list-item-selected-background,
|
|
137
|
+
var(--kui-color-brand-fill-normal)
|
|
138
|
+
);
|
|
129
139
|
font-weight: 650;
|
|
130
140
|
}
|
|
131
141
|
|
|
@@ -100,6 +100,13 @@
|
|
|
100
100
|
inset: 0;
|
|
101
101
|
}
|
|
102
102
|
|
|
103
|
+
.kui-nav-stack__view[data-appearance="sunken"] {
|
|
104
|
+
background: var(
|
|
105
|
+
--kui-sunken-panel-background,
|
|
106
|
+
var(--kui-color-surface-lowered)
|
|
107
|
+
);
|
|
108
|
+
}
|
|
109
|
+
|
|
103
110
|
/* Each view is its region's scroll owner: block insets become padding inside
|
|
104
111
|
the scroller so content scrolls under an unsafe edge but can always be
|
|
105
112
|
scrolled clear. A view whose only child is a Pane or layout lets that child
|
|
@@ -217,4 +224,10 @@
|
|
|
217
224
|
:is([data-workbench-main], [data-workbench-panel-content])
|
|
218
225
|
> [data-component="nav-stack"]:only-child {
|
|
219
226
|
height: 100%;
|
|
227
|
+
--kui-edge-inset-block-start: var(--_kui-workbench-content-edge-block-start);
|
|
228
|
+
--kui-edge-inset-block-end: var(--_kui-workbench-content-edge-block-end);
|
|
229
|
+
--kui-edge-inset-inline-start: var(
|
|
230
|
+
--_kui-workbench-content-edge-inline-start
|
|
231
|
+
);
|
|
232
|
+
--kui-edge-inset-inline-end: var(--_kui-workbench-content-edge-inline-end);
|
|
220
233
|
}
|
package/dist/styles/pane.css
CHANGED
|
@@ -22,6 +22,33 @@
|
|
|
22
22
|
grid-template-rows: auto minmax(0, 1fr) auto;
|
|
23
23
|
}
|
|
24
24
|
|
|
25
|
+
/* Paint the active scroll owner once, so alpha lowered colors do not stack.
|
|
26
|
+
Fixed chrome leaves the content slot scrolling; auto chrome lets the Pane
|
|
27
|
+
root scroll in its short mode, while its content remains transparent. */
|
|
28
|
+
.kui-pane[data-appearance="sunken"] > .kui-pane__content {
|
|
29
|
+
background: var(
|
|
30
|
+
--kui-sunken-panel-background,
|
|
31
|
+
var(--kui-color-surface-lowered)
|
|
32
|
+
);
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
.kui-pane[data-appearance="sunken"][data-chrome-placement="auto"] {
|
|
36
|
+
background: var(
|
|
37
|
+
--kui-sunken-panel-background,
|
|
38
|
+
var(--kui-color-surface-lowered)
|
|
39
|
+
);
|
|
40
|
+
}
|
|
41
|
+
|
|
42
|
+
.kui-pane[data-appearance="sunken"][data-chrome-placement="auto"]
|
|
43
|
+
> .kui-pane__content {
|
|
44
|
+
background: transparent;
|
|
45
|
+
}
|
|
46
|
+
|
|
47
|
+
.kui-pane[data-appearance="sunken"][data-chrome-placement="auto"]
|
|
48
|
+
> :is(.kui-pane__header, .kui-pane__footer) {
|
|
49
|
+
background: var(--kui-pane-chrome-background, var(--kui-color-surface));
|
|
50
|
+
}
|
|
51
|
+
|
|
25
52
|
/* Safe areas. The pane root never pads, so its background and separators paint
|
|
26
53
|
through an unsafe area; its slots compensate on the edges the pane still
|
|
27
54
|
touches. The inherited `--kui-edge-inset-*` context says how far each edge
|
|
@@ -149,9 +176,10 @@
|
|
|
149
176
|
|
|
150
177
|
/* Chrome dividers: one line under the header and one over the footer, where
|
|
151
178
|
the pinned chrome meets the scrolling content, whatever the chrome holds.
|
|
152
|
-
`chromeDividers="scroll"` (the default, no attribute) draws each only while
|
|
179
|
+
`chromeDividers="scroll"` (the plain-pane default, no attribute) draws each only while
|
|
153
180
|
`wireScrollDividers` reports content scrolled away beneath it through
|
|
154
|
-
`data-scroll-divider` on the slot;
|
|
181
|
+
`data-scroll-divider` on the slot; a sunken pane defaults to `always`, which
|
|
182
|
+
draws both; `none` draws neither. The
|
|
155
183
|
line is an inset shadow inside the slot, so showing or hiding it never
|
|
156
184
|
moves the chrome or the content. */
|
|
157
185
|
.kui-pane > :is(.kui-pane__header, .kui-pane__toolbar, .kui-pane__footer) {
|
|
@@ -217,6 +245,12 @@
|
|
|
217
245
|
:is([data-workbench-main], [data-workbench-panel-content])
|
|
218
246
|
> [data-component="pane"]:only-child {
|
|
219
247
|
height: 100%;
|
|
248
|
+
--kui-edge-inset-block-start: var(--_kui-workbench-content-edge-block-start);
|
|
249
|
+
--kui-edge-inset-block-end: var(--_kui-workbench-content-edge-block-end);
|
|
250
|
+
--kui-edge-inset-inline-start: var(
|
|
251
|
+
--_kui-workbench-content-edge-inline-start
|
|
252
|
+
);
|
|
253
|
+
--kui-edge-inset-inline-end: var(--_kui-workbench-content-edge-inline-end);
|
|
220
254
|
}
|
|
221
255
|
|
|
222
256
|
/* As the only child of a NavStack view or a TabScaffold scene, a Pane fills
|
|
@@ -11,10 +11,9 @@
|
|
|
11
11
|
clip-path: inset(50%);
|
|
12
12
|
}
|
|
13
13
|
|
|
14
|
-
/*
|
|
15
|
-
|
|
16
|
-
|
|
17
|
-
(select.css reads the same values). */
|
|
14
|
+
/* PopupMenu shares the Select's caret motion, surface inset, row rhythm,
|
|
15
|
+
current-row fill, and group titles from the popup-choice contract in
|
|
16
|
+
foundation.css. Only checkbox items reserve a check column. */
|
|
18
17
|
|
|
19
18
|
/* The trigger caret turns to face the open menu, like the Select's. */
|
|
20
19
|
.kui-popup-menu > wa-button::part(caret) {
|
|
@@ -34,14 +33,20 @@
|
|
|
34
33
|
}
|
|
35
34
|
|
|
36
35
|
.kui-popup-menu wa-dropdown-item {
|
|
37
|
-
/*
|
|
38
|
-
|
|
36
|
+
/* A plain command starts at the checkbox glyph's leading edge. The glyph
|
|
37
|
+
sits half a smaller-font em beyond the row's base inset; its label starts
|
|
38
|
+
after the full check column below. */
|
|
39
39
|
padding: var(--_kui-popup-row-padding-block)
|
|
40
40
|
var(--_kui-popup-row-padding-inline-end) var(--_kui-popup-row-padding-block)
|
|
41
|
-
calc(
|
|
42
|
-
|
|
43
|
-
|
|
44
|
-
|
|
41
|
+
calc(var(--_kui-popup-row-padding-inline-start) + 0.4375em);
|
|
42
|
+
}
|
|
43
|
+
.kui-popup-menu wa-dropdown-item[type="checkbox"] {
|
|
44
|
+
/* Web Awesome marks every sibling checkbox-adjacent; reserve this column
|
|
45
|
+
only on items whose checked state was explicitly supplied. */
|
|
46
|
+
padding-inline-start: calc(
|
|
47
|
+
var(--_kui-popup-row-padding-inline-start) +
|
|
48
|
+
var(--_kui-popup-row-check-width)
|
|
49
|
+
);
|
|
45
50
|
}
|
|
46
51
|
.kui-popup-menu wa-dropdown-item::part(label) {
|
|
47
52
|
padding-block: var(--_kui-popup-row-label-padding-block);
|
|
@@ -73,6 +73,15 @@
|
|
|
73
73
|
> .kui-resizable-region__content {
|
|
74
74
|
overflow: visible;
|
|
75
75
|
}
|
|
76
|
+
/* An open Web Awesome dropdown (including PopupMenu) releases both clipping
|
|
77
|
+
ancestors without rerendering the region during the dropdown lifecycle. */
|
|
78
|
+
.kui-resizable-region:has(wa-dropdown[open]) {
|
|
79
|
+
z-index: var(--kui-resizable-region-popup-z, 5);
|
|
80
|
+
overflow: visible;
|
|
81
|
+
}
|
|
82
|
+
.kui-resizable-region:has(wa-dropdown[open]) > .kui-resizable-region__content {
|
|
83
|
+
overflow: visible;
|
|
84
|
+
}
|
|
76
85
|
.kui-resizable-region[data-separator="hidden"] {
|
|
77
86
|
--kui-resizable-region-separator-color: transparent;
|
|
78
87
|
}
|
package/dist/styles/select.css
CHANGED
|
@@ -108,6 +108,21 @@
|
|
|
108
108
|
margin-inline-start: 0.75rem;
|
|
109
109
|
transform: scale(0.875);
|
|
110
110
|
}
|
|
111
|
+
.kui-select[data-caret="false"]::part(expand-icon) {
|
|
112
|
+
display: none;
|
|
113
|
+
}
|
|
114
|
+
.kui-select[data-selected-presentation="icon-only"][data-caret="false"]::part(
|
|
115
|
+
combobox
|
|
116
|
+
) {
|
|
117
|
+
width: var(
|
|
118
|
+
--_kui-toolbar-control-group-slot-height,
|
|
119
|
+
var(--_kui-select-height)
|
|
120
|
+
);
|
|
121
|
+
justify-content: center;
|
|
122
|
+
}
|
|
123
|
+
.kui-select[data-caret="false"] .kui-select__placeholder-chevron {
|
|
124
|
+
display: none;
|
|
125
|
+
}
|
|
111
126
|
.kui-select[data-selected-presentation="icon-only"]::part(display-input) {
|
|
112
127
|
position: absolute;
|
|
113
128
|
width: 1px;
|
|
@@ -207,6 +222,17 @@
|
|
|
207
222
|
min-width: 0;
|
|
208
223
|
flex: 1 1 auto;
|
|
209
224
|
}
|
|
225
|
+
/* A label can use the free start-slot width to truncate, but a caret-free
|
|
226
|
+
icon must keep its intrinsic width so the combobox can center the glyph. */
|
|
227
|
+
.kui-select--custom-selected[data-selected-presentation="icon-only"][data-caret="false"]::part(
|
|
228
|
+
start
|
|
229
|
+
) {
|
|
230
|
+
flex: 0 0 auto;
|
|
231
|
+
}
|
|
232
|
+
.kui-select--custom-selected[data-selected-presentation="icon-only"][data-caret="false"]
|
|
233
|
+
.kui-select__custom-selected {
|
|
234
|
+
margin-inline-end: 0 !important;
|
|
235
|
+
}
|
|
210
236
|
.kui-select--custom-selected::part(display-input) {
|
|
211
237
|
position: absolute;
|
|
212
238
|
width: 1px;
|
|
@@ -137,4 +137,10 @@
|
|
|
137
137
|
:is([data-workbench-main], [data-workbench-panel-content])
|
|
138
138
|
> [data-component="split-view"]:only-child {
|
|
139
139
|
height: 100%;
|
|
140
|
+
--kui-edge-inset-block-start: var(--_kui-workbench-content-edge-block-start);
|
|
141
|
+
--kui-edge-inset-block-end: var(--_kui-workbench-content-edge-block-end);
|
|
142
|
+
--kui-edge-inset-inline-start: var(
|
|
143
|
+
--_kui-workbench-content-edge-inline-start
|
|
144
|
+
);
|
|
145
|
+
--kui-edge-inset-inline-end: var(--_kui-workbench-content-edge-inline-end);
|
|
140
146
|
}
|
|
@@ -1,9 +1,12 @@
|
|
|
1
1
|
.kui-sunken-panel {
|
|
2
|
+
/* Reset the private value on each panel so nested panels do not inherit it. */
|
|
3
|
+
--_kui-sunken-panel-flex: 0 1 auto;
|
|
2
4
|
display: flex;
|
|
3
5
|
min-width: 0;
|
|
4
6
|
min-height: 0;
|
|
5
7
|
padding: var(--kui-sunken-panel-padding, 0.5rem);
|
|
6
8
|
box-sizing: border-box;
|
|
9
|
+
flex: var(--_kui-sunken-panel-flex, initial);
|
|
7
10
|
border-radius: var(
|
|
8
11
|
--kui-sunken-panel-radius,
|
|
9
12
|
var(--kui-layout-rounded-radius, calc(1px + 0.6875rem))
|
|
@@ -17,6 +20,10 @@
|
|
|
17
20
|
gap: var(--kui-sunken-panel-gap, 0.5rem);
|
|
18
21
|
}
|
|
19
22
|
|
|
23
|
+
.kui-sunken-panel[data-fill="true"] {
|
|
24
|
+
height: 100%;
|
|
25
|
+
}
|
|
26
|
+
|
|
20
27
|
.kui-sunken-panel[data-shape="square"] {
|
|
21
28
|
border-radius: 0;
|
|
22
29
|
}
|
package/dist/styles/tab-bar.css
CHANGED
|
@@ -45,6 +45,9 @@
|
|
|
45
45
|
scroll-padding-inline: var(--kui-tab-bar-strip-scroll-padding-inline, 0);
|
|
46
46
|
overscroll-behavior-inline: contain;
|
|
47
47
|
}
|
|
48
|
+
.kui-tab-bar[data-icon-only-at] .kui-tab-bar__tabs {
|
|
49
|
+
container: kui-tab-bar-tabs / inline-size;
|
|
50
|
+
}
|
|
48
51
|
.kui-tab-bar[data-presentation="segmented"],
|
|
49
52
|
.kui-tab-bar[data-presentation="inspector"] {
|
|
50
53
|
--kui-tab-bar-background: var(--kui-color-neutral-fill-quiet);
|
|
@@ -46,6 +46,13 @@
|
|
|
46
46
|
inset: 0;
|
|
47
47
|
}
|
|
48
48
|
|
|
49
|
+
.kui-tab-scaffold__scene[data-appearance="sunken"] {
|
|
50
|
+
background: var(
|
|
51
|
+
--kui-sunken-panel-background,
|
|
52
|
+
var(--kui-color-surface-lowered)
|
|
53
|
+
);
|
|
54
|
+
}
|
|
55
|
+
|
|
49
56
|
/* A scene is its region's scroll owner, so its top inset is padding inside
|
|
50
57
|
the scroller. A scene whose only child is a Pane or layout (usually a
|
|
51
58
|
NavStack) lets that child own the insets instead. */
|
|
@@ -191,4 +198,10 @@
|
|
|
191
198
|
:is([data-workbench-main], [data-workbench-panel-content])
|
|
192
199
|
> [data-component="tab-scaffold"]:only-child {
|
|
193
200
|
height: 100%;
|
|
201
|
+
--kui-edge-inset-block-start: var(--_kui-workbench-content-edge-block-start);
|
|
202
|
+
--kui-edge-inset-block-end: var(--_kui-workbench-content-edge-block-end);
|
|
203
|
+
--kui-edge-inset-inline-start: var(
|
|
204
|
+
--_kui-workbench-content-edge-inline-start
|
|
205
|
+
);
|
|
206
|
+
--kui-edge-inset-inline-end: var(--_kui-workbench-content-edge-inline-end);
|
|
194
207
|
}
|
package/dist/styles/text.css
CHANGED
|
@@ -3,6 +3,35 @@
|
|
|
3
3
|
box-sizing: border-box;
|
|
4
4
|
border: 1px solid transparent;
|
|
5
5
|
margin: 0;
|
|
6
|
+
white-space: normal;
|
|
7
|
+
overflow-wrap: normal;
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
.kui-text[data-wrap="anywhere"] {
|
|
11
|
+
overflow-wrap: anywhere;
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
.kui-text[data-wrap="nowrap"] {
|
|
15
|
+
white-space: nowrap;
|
|
16
|
+
}
|
|
17
|
+
|
|
18
|
+
.kui-text[data-wrap="truncate"] {
|
|
19
|
+
min-width: 0;
|
|
20
|
+
overflow: hidden;
|
|
21
|
+
text-overflow: ellipsis;
|
|
22
|
+
white-space: nowrap;
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
span.kui-text[data-wrap="truncate"] {
|
|
26
|
+
display: inline-block;
|
|
27
|
+
max-width: 100%;
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
.kui-text__clamp {
|
|
31
|
+
display: -webkit-box;
|
|
32
|
+
overflow: hidden;
|
|
33
|
+
-webkit-box-orient: vertical;
|
|
34
|
+
-webkit-line-clamp: var(--_kui-text-max-lines);
|
|
6
35
|
}
|
|
7
36
|
|
|
8
37
|
.kui-text[data-tone="quiet"] {
|
|
@@ -6,6 +6,7 @@
|
|
|
6
6
|
--kui-token-search-line-size: 2.125rem;
|
|
7
7
|
|
|
8
8
|
display: grid;
|
|
9
|
+
position: relative;
|
|
9
10
|
width: 100%;
|
|
10
11
|
min-width: 0;
|
|
11
12
|
min-height: 2.75rem;
|
|
@@ -139,6 +140,7 @@
|
|
|
139
140
|
|
|
140
141
|
.kui-token-search__clear {
|
|
141
142
|
grid-column: 3;
|
|
143
|
+
border-radius: var(--kui-radius-pill);
|
|
142
144
|
}
|
|
143
145
|
|
|
144
146
|
.kui-token-search__trailing {
|
|
@@ -147,13 +149,24 @@
|
|
|
147
149
|
|
|
148
150
|
.kui-token-search__suggestions {
|
|
149
151
|
display: grid;
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
152
|
+
position: absolute;
|
|
153
|
+
z-index: 20;
|
|
154
|
+
inset-block-start: calc(100% + 0.25rem);
|
|
155
|
+
inset-inline-start: 0;
|
|
156
|
+
width: min(max(100%, 15rem), calc(100vw - 1rem));
|
|
157
|
+
max-height: 15rem;
|
|
158
|
+
padding: var(--_kui-popup-inset);
|
|
159
|
+
box-sizing: border-box;
|
|
160
|
+
border: 1px solid var(--kui-color-neutral-border-normal);
|
|
154
161
|
border-radius: var(--kui-radius-pill);
|
|
155
|
-
background: var(--kui-
|
|
156
|
-
|
|
162
|
+
background: var(--kui-color-surface-raised);
|
|
163
|
+
box-shadow: var(--kui-shadow-m);
|
|
164
|
+
gap: var(--_kui-popup-row-gap);
|
|
165
|
+
overflow-y: auto;
|
|
166
|
+
}
|
|
167
|
+
|
|
168
|
+
.kui-token-search__suggestions:has(> :nth-child(2)) {
|
|
169
|
+
border-radius: var(--kui-layout-rounded-radius, calc(1px + 0.6875rem));
|
|
157
170
|
}
|
|
158
171
|
|
|
159
172
|
.kui-token-search__suggestion {
|
|
@@ -200,6 +213,12 @@
|
|
|
200
213
|
border-color 0.2s ease;
|
|
201
214
|
}
|
|
202
215
|
|
|
216
|
+
.kui-token-search[data-collapsible="true"][data-expanded="true"]:has(
|
|
217
|
+
.kui-token-search__suggestions
|
|
218
|
+
) {
|
|
219
|
+
overflow: visible;
|
|
220
|
+
}
|
|
221
|
+
|
|
203
222
|
.kui-token-search[data-collapsible="true"][data-expanded="false"] {
|
|
204
223
|
width: 2.75rem;
|
|
205
224
|
min-width: 2.75rem;
|
|
@@ -256,6 +275,10 @@
|
|
|
256
275
|
box-shadow: none;
|
|
257
276
|
}
|
|
258
277
|
|
|
278
|
+
.kui-token-search[data-presentation="toolbar-group"] .kui-token-search__clear {
|
|
279
|
+
border-radius: var(--kui-control-highlight-radius);
|
|
280
|
+
}
|
|
281
|
+
|
|
259
282
|
.kui-token-search[data-presentation="toolbar-group"][data-collapsible="true"]:focus-within {
|
|
260
283
|
border-color: var(--kui-color-focus);
|
|
261
284
|
background: var(--kui-token-search-background);
|
|
@@ -33,6 +33,7 @@
|
|
|
33
33
|
--_kui-toolbar-control-group-slot-overlap: 0px;
|
|
34
34
|
--_kui-toolbar-control-group-slot-radius: var(--kui-toolbar-item-radius);
|
|
35
35
|
display: inline-flex;
|
|
36
|
+
position: relative;
|
|
36
37
|
height: var(--kui-toolbar-group-size, calc(2px + 2.625rem));
|
|
37
38
|
min-width: var(--kui-toolbar-group-size, calc(2px + 2.625rem));
|
|
38
39
|
padding: 1px;
|
|
@@ -46,6 +47,34 @@
|
|
|
46
47
|
gap: 0;
|
|
47
48
|
}
|
|
48
49
|
|
|
50
|
+
.kui-toolbar-control-group[data-busy="true"] > svg,
|
|
51
|
+
.kui-toolbar-control-group[data-busy="true"]
|
|
52
|
+
> :not(.kui-toolbar-control-group__busy-spinner)
|
|
53
|
+
svg {
|
|
54
|
+
visibility: hidden;
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
.kui-toolbar-control-group__busy-spinner {
|
|
58
|
+
position: absolute;
|
|
59
|
+
inset-block-start: 50%;
|
|
60
|
+
inset-inline-start: 50%;
|
|
61
|
+
display: grid;
|
|
62
|
+
width: 1rem;
|
|
63
|
+
height: 1rem;
|
|
64
|
+
transform: translate(-50%, -50%);
|
|
65
|
+
place-items: center;
|
|
66
|
+
pointer-events: none;
|
|
67
|
+
}
|
|
68
|
+
|
|
69
|
+
.kui-toolbar-control-group__busy-status {
|
|
70
|
+
position: absolute;
|
|
71
|
+
width: 1px;
|
|
72
|
+
height: 1px;
|
|
73
|
+
overflow: hidden;
|
|
74
|
+
clip-path: inset(50%);
|
|
75
|
+
white-space: nowrap;
|
|
76
|
+
}
|
|
77
|
+
|
|
49
78
|
/* In a Toolbar zone, a group shorter than the toolbar's control band (the
|
|
50
79
|
`--_kui-toolbar-band` the Toolbar provides) takes half the difference as a
|
|
51
80
|
top margin, so it centers in the band by its own size. */
|
|
@@ -126,6 +155,12 @@
|
|
|
126
155
|
background-color 0.2s ease,
|
|
127
156
|
border-color 0.2s ease;
|
|
128
157
|
}
|
|
158
|
+
|
|
159
|
+
.kui-toolbar-control-group[data-content="search"]:has(
|
|
160
|
+
.kui-token-search__suggestions
|
|
161
|
+
) {
|
|
162
|
+
overflow: visible;
|
|
163
|
+
}
|
|
129
164
|
.kui-toolbar-control-group[data-content="search"][data-expanded="false"] {
|
|
130
165
|
width: var(--kui-toolbar-group-size, calc(2px + 2.625rem));
|
|
131
166
|
flex: 0 0 auto;
|
|
@@ -47,17 +47,23 @@
|
|
|
47
47
|
text-overflow: ellipsis;
|
|
48
48
|
}
|
|
49
49
|
|
|
50
|
-
.kui-toolbar-text[data-size="xlarge"] {
|
|
51
|
-
/*
|
|
52
|
-
|
|
53
|
-
to the larger text (the fixed 40px would clip its ascenders). */
|
|
50
|
+
.kui-toolbar-text:is([data-size="xlarge"], [data-size="xlarge-fixed"]) {
|
|
51
|
+
/* Both title sizes keep page/panel title color and geometry. Height grows to
|
|
52
|
+
their text instead of clipping ascenders in the default 40px box. */
|
|
54
53
|
height: auto;
|
|
55
54
|
min-height: 2.75rem;
|
|
56
55
|
color: var(--kui-color-text);
|
|
57
|
-
font-size: clamp(var(--kui-font-l), 2.3vw, var(--kui-font-2xl));
|
|
58
56
|
letter-spacing: -0.025em;
|
|
59
57
|
}
|
|
60
58
|
|
|
59
|
+
.kui-toolbar-text[data-size="xlarge"] {
|
|
60
|
+
font-size: clamp(var(--kui-font-l), 2.3vw, var(--kui-font-2xl));
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
.kui-toolbar-text[data-size="xlarge-fixed"] {
|
|
64
|
+
font-size: var(--kui-font-l);
|
|
65
|
+
}
|
|
66
|
+
|
|
61
67
|
.kui-toolbar-text[data-size="large"] {
|
|
62
68
|
font-size: var(--kui-font-m);
|
|
63
69
|
letter-spacing: -0.015em;
|
|
@@ -93,7 +99,10 @@
|
|
|
93
99
|
min-height: 2.5rem;
|
|
94
100
|
}
|
|
95
101
|
|
|
96
|
-
.kui-toolbar-text
|
|
102
|
+
.kui-toolbar-text:is(
|
|
103
|
+
[data-size="xlarge"],
|
|
104
|
+
[data-size="xlarge-fixed"]
|
|
105
|
+
)[data-wrap="true"] {
|
|
97
106
|
min-height: 2.75rem;
|
|
98
107
|
}
|
|
99
108
|
|
package/dist/styles/toolbar.css
CHANGED
|
@@ -95,6 +95,13 @@
|
|
|
95
95
|
grid-template-columns: minmax(0, 1fr) auto;
|
|
96
96
|
}
|
|
97
97
|
|
|
98
|
+
/* Equal side tracks center the middle zone on the toolbar's content box even
|
|
99
|
+
when one side has no controls. Side content still shrinks or wraps within
|
|
100
|
+
its own track, and responsive policies below may move a zone to a new row. */
|
|
101
|
+
.kui-toolbar[data-center-align="balanced"][data-has-center="true"] {
|
|
102
|
+
grid-template-columns: minmax(0, 1fr) auto minmax(0, 1fr);
|
|
103
|
+
}
|
|
104
|
+
|
|
98
105
|
.kui-toolbar[data-responsive="trailing-priority"][data-has-center="false"]:has(
|
|
99
106
|
> .kui-toolbar__trailing [data-expanded="true"]
|
|
100
107
|
) {
|