@threadlabs/looma 0.17.2 → 0.17.4
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/components/ui-button/ui-button.html +5 -0
- package/components/ui-checkbox/ui-checkbox.html +5 -5
- package/components/ui-icon-button/ui-icon-button.html +7 -7
- package/components/ui-input-group/ui-input-group.html +1 -1
- package/components/ui-search-result-row/ui-search-result-row.html +2 -6
- package/components/ui-search-shell/ui-search-shell.html +2 -11
- package/components/ui-spinner/ui-spinner.html +5 -11
- package/components/ui-tooltip/ui-tooltip.html +2 -2
- package/dist/index.js +1 -1
- package/package.json +1 -1
- package/styles/ui-button.css +7 -0
- package/styles/ui-checkbox.css +6 -6
- package/styles/ui-icon-button.css +7 -7
- package/styles/ui-input-group.css +1 -1
- package/styles/ui-search-result-row.css +2 -6
- package/styles/ui-search-shell.css +2 -13
- package/styles/ui-spinner.css +5 -11
- package/styles/ui-tooltip.css +2 -2
- package/vue/UiButton.vue +5 -0
- package/vue/UiCheckbox.vue +5 -5
- package/vue/UiIconButton.vue +10 -7
- package/vue/UiInputGroup.vue +1 -1
- package/vue/UiSearchResultRow.vue +2 -6
- package/vue/UiSearchShell.vue +2 -13
- package/vue/UiSpinner.vue +5 -11
- package/vue/UiTooltip.vue +2 -2
- package/vue/chunks/UiButton.js +1 -1
- package/vue/chunks/UiCheckbox.js +1 -1
- package/vue/chunks/UiIconButton.js +1 -1
- package/vue/chunks/UiInputGroup.js +1 -1
- package/vue/chunks/UiSearchResultRow.js +1 -1
- package/vue/chunks/UiSearchShell.js +1 -1
- package/vue/chunks/UiSpinner.js +1 -1
- package/vue/chunks/UiTooltip.js +1 -1
- package/vue/components.css +207 -218
package/package.json
CHANGED
package/styles/ui-button.css
CHANGED
|
@@ -131,6 +131,11 @@
|
|
|
131
131
|
margin: 0;
|
|
132
132
|
}
|
|
133
133
|
|
|
134
|
+
/* An anchor keeps the boxed button look even when an app styles ordinary links. */
|
|
135
|
+
:scope:is(a) {
|
|
136
|
+
text-decoration: none;
|
|
137
|
+
}
|
|
138
|
+
|
|
134
139
|
.spinner-wrap {
|
|
135
140
|
display: inline-flex;
|
|
136
141
|
flex: none;
|
|
@@ -363,6 +368,8 @@
|
|
|
363
368
|
@scope ([data-component~="ui-button"]) to ([data-component]) {
|
|
364
369
|
/* This component's hooks style the element they are set on, and never a nested one. */
|
|
365
370
|
|
|
371
|
+
/* An anchor keeps the boxed button look even when an app styles ordinary links. */
|
|
372
|
+
|
|
366
373
|
@supports (text-box-trim: trim-both) {
|
|
367
374
|
}
|
|
368
375
|
|
package/styles/ui-checkbox.css
CHANGED
|
@@ -14,15 +14,15 @@
|
|
|
14
14
|
@keyframes ui-checkbox-check {
|
|
15
15
|
from {
|
|
16
16
|
opacity: 0;
|
|
17
|
-
transform:
|
|
17
|
+
transform: translateY(-0.09rem) rotate(45deg) scale(0.55);
|
|
18
18
|
}
|
|
19
19
|
65% {
|
|
20
20
|
opacity: 1;
|
|
21
|
-
transform:
|
|
21
|
+
transform: translateY(-0.09rem) rotate(45deg) scale(1.12);
|
|
22
22
|
}
|
|
23
23
|
to {
|
|
24
24
|
opacity: 1;
|
|
25
|
-
transform:
|
|
25
|
+
transform: translateY(-0.09rem) rotate(45deg) scale(1);
|
|
26
26
|
}
|
|
27
27
|
}
|
|
28
28
|
@scope ([data-component~="ui-checkbox"]) to ([data-component], [data-slotted]) {
|
|
@@ -97,7 +97,7 @@
|
|
|
97
97
|
box-shadow: var(--ui-control-inset);
|
|
98
98
|
}
|
|
99
99
|
|
|
100
|
-
/* Centre the tick's box
|
|
100
|
+
/* Centre the tick's box and lift it slightly for the rotated check shape. */
|
|
101
101
|
input:checked::after {
|
|
102
102
|
inset: 0;
|
|
103
103
|
margin: auto;
|
|
@@ -109,7 +109,7 @@
|
|
|
109
109
|
border-color: var(--ui-text-on-accent);
|
|
110
110
|
border-width: 0 0.125rem 0.125rem 0;
|
|
111
111
|
opacity: 1;
|
|
112
|
-
transform:
|
|
112
|
+
transform: translateY(-0.09rem) rotate(45deg);
|
|
113
113
|
animation: ui-checkbox-check 180ms var(--ui-motion-ease-out, cubic-bezier(0.16, 1, 0.3, 1)) both;
|
|
114
114
|
}
|
|
115
115
|
|
|
@@ -197,7 +197,7 @@
|
|
|
197
197
|
|
|
198
198
|
/* The label, and under it an optional line saying what the choice means. */
|
|
199
199
|
|
|
200
|
-
/* Centre the tick's box
|
|
200
|
+
/* Centre the tick's box and lift it slightly for the rotated check shape. */
|
|
201
201
|
|
|
202
202
|
@media (prefers-reduced-motion: reduce) {
|
|
203
203
|
}
|
|
@@ -117,7 +117,7 @@
|
|
|
117
117
|
@media (hover: hover) and (pointer: fine) {
|
|
118
118
|
:scope[data-ui-icon-button-state~="anticipatory"]:not(:scope[data-ui-icon-button-state~="variant=solid"], :scope[data-ui-icon-button-state~="loading"], :scope[data-ui-icon-button-state~="pending"], :disabled, [data-ui-proximity="near"], :hover, :focus-visible) {
|
|
119
119
|
border-color: transparent;
|
|
120
|
-
background: transparent;
|
|
120
|
+
background-color: transparent;
|
|
121
121
|
box-shadow: none;
|
|
122
122
|
}
|
|
123
123
|
|
|
@@ -145,7 +145,7 @@
|
|
|
145
145
|
margin: 0;
|
|
146
146
|
border: 1px solid transparent;
|
|
147
147
|
border-radius: var(--ui-icon-button-radius, var(--ui-action-radius, var(--ui-radius-md)));
|
|
148
|
-
background: var(--ui-icon-button-surface, transparent);
|
|
148
|
+
background-color: var(--ui-icon-button-surface, transparent);
|
|
149
149
|
color: inherit;
|
|
150
150
|
display: inline-flex;
|
|
151
151
|
align-items: center;
|
|
@@ -217,14 +217,14 @@
|
|
|
217
217
|
|
|
218
218
|
:scope[data-ui-icon-button-state~="variant=outline"] {
|
|
219
219
|
border-color: var(--ui-icon-button-border, var(--ui-control-border, var(--ui-border-strong)));
|
|
220
|
-
background: var(--ui-icon-button-outline-surface, var(--ui-surface-default));
|
|
220
|
+
background-color: var(--ui-icon-button-outline-surface, var(--ui-surface-default));
|
|
221
221
|
background-image: var(--ui-raised-highlight);
|
|
222
222
|
color: var(--ui-icon-button-outline-text, var(--ui-text-primary));
|
|
223
223
|
box-shadow: var(--ui-raised);
|
|
224
224
|
}
|
|
225
225
|
|
|
226
226
|
:scope[data-ui-icon-button-state~="variant=solid"] {
|
|
227
|
-
background: var(--ui-icon-button-solid-surface, var(--ui-accent-solid));
|
|
227
|
+
background-color: var(--ui-icon-button-solid-surface, var(--ui-accent-solid));
|
|
228
228
|
background-image: var(--ui-raised-highlight);
|
|
229
229
|
color: var(--ui-icon-button-solid-text, var(--ui-text-on-accent));
|
|
230
230
|
box-shadow: var(
|
|
@@ -235,7 +235,7 @@
|
|
|
235
235
|
|
|
236
236
|
:scope:hover:enabled:not([aria-disabled="true"]) {
|
|
237
237
|
/* Derived from the text colour so the ghost hover shows on any background. */
|
|
238
|
-
background: var(--ui-icon-button-hover-surface, color-mix(in srgb, currentColor 8%, transparent));
|
|
238
|
+
background-color: var(--ui-icon-button-hover-surface, color-mix(in srgb, currentColor 8%, transparent));
|
|
239
239
|
color: var(--ui-icon-button-hover-text, var(--ui-text-primary));
|
|
240
240
|
}
|
|
241
241
|
|
|
@@ -244,7 +244,7 @@
|
|
|
244
244
|
}
|
|
245
245
|
|
|
246
246
|
:scope[data-ui-icon-button-state~="variant=solid"]:hover:enabled:not([aria-disabled="true"]) {
|
|
247
|
-
background: var(--ui-icon-button-solid-hover-surface, var(--ui-accent-hover));
|
|
247
|
+
background-color: var(--ui-icon-button-solid-hover-surface, var(--ui-accent-hover));
|
|
248
248
|
}
|
|
249
249
|
|
|
250
250
|
:scope:active:enabled:not([aria-disabled="true"]) {
|
|
@@ -279,7 +279,7 @@
|
|
|
279
279
|
/* Disabled is a flat neutral control, independent of the active variant's tone. */
|
|
280
280
|
:scope:disabled {
|
|
281
281
|
border-color: var(--ui-disabled-border);
|
|
282
|
-
background: var(--ui-disabled-surface);
|
|
282
|
+
background-color: var(--ui-disabled-surface);
|
|
283
283
|
color: var(--ui-disabled-text);
|
|
284
284
|
filter: var(--ui-icon-button-disabled-filter, var(--ui-disabled-filter));
|
|
285
285
|
opacity: var(--ui-icon-button-disabled-opacity, 1);
|
|
@@ -119,7 +119,7 @@
|
|
|
119
119
|
flex: none;
|
|
120
120
|
align-items: center;
|
|
121
121
|
padding-inline: var(--ui-space-2);
|
|
122
|
-
color: var(--ui-text-
|
|
122
|
+
color: var(--ui-text-muted);
|
|
123
123
|
font-family: var(--ui-font-family-mono);
|
|
124
124
|
font-size: var(--ui-font-size-sm);
|
|
125
125
|
white-space: nowrap;
|
|
@@ -45,18 +45,14 @@
|
|
|
45
45
|
align-items: flex-start;
|
|
46
46
|
gap: var(--ui-search-result-row-gap, var(--ui-space-3));
|
|
47
47
|
background: var(--ui-search-result-row-surface, transparent);
|
|
48
|
-
border:
|
|
49
|
-
border-
|
|
48
|
+
border: 1px solid var(--ui-search-result-row-border, transparent);
|
|
49
|
+
border-radius: var(--ui-radius-md);
|
|
50
50
|
color: inherit;
|
|
51
51
|
cursor: pointer;
|
|
52
52
|
text-align: left;
|
|
53
53
|
transition: background-color var(--ui-motion-fast) var(--ui-motion-ease);
|
|
54
54
|
}
|
|
55
55
|
|
|
56
|
-
:scope:last-child {
|
|
57
|
-
border-block-end: none;
|
|
58
|
-
}
|
|
59
|
-
|
|
60
56
|
:scope:hover:enabled {
|
|
61
57
|
background: var(--ui-search-result-row-hover-surface, color-mix(in srgb, var(--ui-surface) 85%, black 3%));
|
|
62
58
|
}
|
|
@@ -96,14 +96,6 @@
|
|
|
96
96
|
|
|
97
97
|
.search {
|
|
98
98
|
padding: var(--ui-space-3);
|
|
99
|
-
border-block-end: 1px solid var(--ui-border-divider);
|
|
100
|
-
transition: border-color var(--ui-motion-fast) var(--ui-motion-ease), box-shadow var(--ui-motion-fast) var(--ui-motion-ease);
|
|
101
|
-
}
|
|
102
|
-
|
|
103
|
-
/* The search region shows where typing goes, whatever the author put in it. */
|
|
104
|
-
.search:focus-within {
|
|
105
|
-
border-block-end-color: var(--_ui-search-shell-focus-color, var(--ui-control-focus));
|
|
106
|
-
box-shadow: inset 0 -1px 0 var(--_ui-search-shell-focus-color, var(--ui-control-focus));
|
|
107
99
|
}
|
|
108
100
|
|
|
109
101
|
.status,
|
|
@@ -115,7 +107,7 @@
|
|
|
115
107
|
}
|
|
116
108
|
|
|
117
109
|
.status {
|
|
118
|
-
|
|
110
|
+
padding-block-start: 0;
|
|
119
111
|
}
|
|
120
112
|
|
|
121
113
|
/* Laid out like the dialog's action row: actions right-aligned, spaced as buttons, no fill. */
|
|
@@ -126,7 +118,6 @@
|
|
|
126
118
|
justify-content: flex-end;
|
|
127
119
|
gap: var(--ui-space-2);
|
|
128
120
|
padding: var(--ui-space-3) var(--ui-space-4);
|
|
129
|
-
border-block-start: 1px solid var(--ui-border-divider);
|
|
130
121
|
}
|
|
131
122
|
|
|
132
123
|
.status:empty,
|
|
@@ -180,8 +171,6 @@
|
|
|
180
171
|
@scope ([data-component~="ui-search-shell"]) to ([data-component]) {
|
|
181
172
|
/* This component's hooks style the element they are set on, and never a nested one. */
|
|
182
173
|
|
|
183
|
-
/* The search region shows where typing goes, whatever the author put in it. */
|
|
184
|
-
|
|
185
174
|
:where([data-slotted], [data-slotted] *):is(input[slot="search"]) {
|
|
186
175
|
box-sizing: border-box;
|
|
187
176
|
inline-size: 100%;
|
|
@@ -196,7 +185,7 @@
|
|
|
196
185
|
}
|
|
197
186
|
|
|
198
187
|
:where([data-slotted], [data-slotted] *):is(input[slot="search"]:focus-visible) {
|
|
199
|
-
border-color: var(--ui-control-focus);
|
|
188
|
+
border-color: var(--_ui-search-shell-focus-color, var(--ui-control-focus));
|
|
200
189
|
outline: 2px solid var(--ui-focus-ring);
|
|
201
190
|
outline-offset: 2px;
|
|
202
191
|
}
|
package/styles/ui-spinner.css
CHANGED
|
@@ -18,22 +18,16 @@
|
|
|
18
18
|
flex: none;
|
|
19
19
|
align-items: center;
|
|
20
20
|
justify-content: center;
|
|
21
|
+
box-sizing: border-box;
|
|
21
22
|
inline-size: 1em;
|
|
22
23
|
block-size: 1em;
|
|
23
|
-
color: currentColor;
|
|
24
|
-
font-size: var(--ui-font-size-lg);
|
|
25
|
-
line-height: 1;
|
|
26
|
-
}
|
|
27
|
-
|
|
28
|
-
.ring {
|
|
29
|
-
display: block;
|
|
30
|
-
box-sizing: border-box;
|
|
31
|
-
inline-size: 100%;
|
|
32
|
-
block-size: 100%;
|
|
33
24
|
border: 2px solid transparent;
|
|
34
25
|
border-block-start-color: currentColor;
|
|
35
26
|
border-inline-end-color: color-mix(in srgb, currentColor 52%, transparent);
|
|
36
27
|
border-radius: 50%;
|
|
28
|
+
color: currentColor;
|
|
29
|
+
font-size: var(--ui-font-size-lg);
|
|
30
|
+
line-height: 1;
|
|
37
31
|
animation: ui-spinner-chase 1s linear infinite;
|
|
38
32
|
}
|
|
39
33
|
|
|
@@ -42,7 +36,7 @@
|
|
|
42
36
|
}
|
|
43
37
|
|
|
44
38
|
@media (prefers-reduced-motion: reduce) {
|
|
45
|
-
|
|
39
|
+
:scope {
|
|
46
40
|
animation: none;
|
|
47
41
|
}
|
|
48
42
|
}
|
package/styles/ui-tooltip.css
CHANGED
|
@@ -147,14 +147,14 @@
|
|
|
147
147
|
inset-inline-start: auto;
|
|
148
148
|
inset-inline-end: calc(var(--_ui-tooltip-arrow-size, 0.625rem) / -2 - 0.5px);
|
|
149
149
|
border-inline-end-width: 1px;
|
|
150
|
-
border-block-
|
|
150
|
+
border-block-start-width: 1px;
|
|
151
151
|
}
|
|
152
152
|
|
|
153
153
|
:scope[data-ui-actual-placement="right"] .surface::after {
|
|
154
154
|
inset-inline-start: calc(var(--_ui-tooltip-arrow-size, 0.625rem) / -2 - 0.5px);
|
|
155
155
|
inset-inline-end: auto;
|
|
156
156
|
border-inline-start-width: 1px;
|
|
157
|
-
border-block-
|
|
157
|
+
border-block-end-width: 1px;
|
|
158
158
|
}
|
|
159
159
|
|
|
160
160
|
:scope[data-ui-actual-placement="left"][data-ui-actual-align="start"] .surface::after,
|
package/vue/UiButton.vue
CHANGED
|
@@ -241,6 +241,11 @@ function attribute(value: unknown): any {
|
|
|
241
241
|
margin: 0;
|
|
242
242
|
}
|
|
243
243
|
|
|
244
|
+
/* An anchor keeps the boxed button look even when an app styles ordinary links. */
|
|
245
|
+
[data-component~="ui-button"]:is(a) {
|
|
246
|
+
text-decoration: none;
|
|
247
|
+
}
|
|
248
|
+
|
|
244
249
|
.spinner-wrap {
|
|
245
250
|
display: inline-flex;
|
|
246
251
|
flex: none;
|
package/vue/UiCheckbox.vue
CHANGED
|
@@ -188,7 +188,7 @@ input:indeterminate {
|
|
|
188
188
|
box-shadow: var(--ui-control-inset);
|
|
189
189
|
}
|
|
190
190
|
|
|
191
|
-
/* Centre the tick's box
|
|
191
|
+
/* Centre the tick's box and lift it slightly for the rotated check shape. */
|
|
192
192
|
input:checked::after {
|
|
193
193
|
inset: 0;
|
|
194
194
|
margin: auto;
|
|
@@ -200,7 +200,7 @@ input:checked::after {
|
|
|
200
200
|
border-color: var(--ui-text-on-accent);
|
|
201
201
|
border-width: 0 0.125rem 0.125rem 0;
|
|
202
202
|
opacity: 1;
|
|
203
|
-
transform:
|
|
203
|
+
transform: translateY(-0.09rem) rotate(45deg);
|
|
204
204
|
animation: ui-checkbox-check 180ms var(--ui-motion-ease-out, cubic-bezier(0.16, 1, 0.3, 1)) both;
|
|
205
205
|
}
|
|
206
206
|
|
|
@@ -216,15 +216,15 @@ input:indeterminate::after {
|
|
|
216
216
|
@keyframes ui-checkbox-check {
|
|
217
217
|
from {
|
|
218
218
|
opacity: 0;
|
|
219
|
-
transform:
|
|
219
|
+
transform: translateY(-0.09rem) rotate(45deg) scale(0.55);
|
|
220
220
|
}
|
|
221
221
|
65% {
|
|
222
222
|
opacity: 1;
|
|
223
|
-
transform:
|
|
223
|
+
transform: translateY(-0.09rem) rotate(45deg) scale(1.12);
|
|
224
224
|
}
|
|
225
225
|
to {
|
|
226
226
|
opacity: 1;
|
|
227
|
-
transform:
|
|
227
|
+
transform: translateY(-0.09rem) rotate(45deg) scale(1);
|
|
228
228
|
}
|
|
229
229
|
}
|
|
230
230
|
|
package/vue/UiIconButton.vue
CHANGED
|
@@ -204,7 +204,7 @@ function attribute(value: unknown): any {
|
|
|
204
204
|
@media (hover: hover) and (pointer: fine) {
|
|
205
205
|
[data-component~="ui-icon-button"][data-ui-icon-button-state~="anticipatory"]:not([data-component~="ui-icon-button"][data-ui-icon-button-state~="variant=solid"], [data-component~="ui-icon-button"][data-ui-icon-button-state~="loading"], [data-component~="ui-icon-button"][data-ui-icon-button-state~="pending"], :disabled, [data-ui-proximity="near"], :hover, :focus-visible) {
|
|
206
206
|
border-color: transparent;
|
|
207
|
-
background: transparent;
|
|
207
|
+
background-color: transparent;
|
|
208
208
|
box-shadow: none;
|
|
209
209
|
}
|
|
210
210
|
|
|
@@ -232,7 +232,7 @@ function attribute(value: unknown): any {
|
|
|
232
232
|
margin: 0;
|
|
233
233
|
border: 1px solid transparent;
|
|
234
234
|
border-radius: var(--ui-icon-button-radius, var(--ui-action-radius, var(--ui-radius-md)));
|
|
235
|
-
background: var(--ui-icon-button-surface, transparent);
|
|
235
|
+
background-color: var(--ui-icon-button-surface, transparent);
|
|
236
236
|
color: inherit;
|
|
237
237
|
display: inline-flex;
|
|
238
238
|
align-items: center;
|
|
@@ -304,14 +304,14 @@ html[data-ui-input-modality="touch"] [data-component~="ui-icon-button"]::after {
|
|
|
304
304
|
|
|
305
305
|
[data-component~="ui-icon-button"][data-ui-icon-button-state~="variant=outline"] {
|
|
306
306
|
border-color: var(--ui-icon-button-border, var(--ui-control-border, var(--ui-border-strong)));
|
|
307
|
-
background: var(--ui-icon-button-outline-surface, var(--ui-surface-default));
|
|
307
|
+
background-color: var(--ui-icon-button-outline-surface, var(--ui-surface-default));
|
|
308
308
|
background-image: var(--ui-raised-highlight);
|
|
309
309
|
color: var(--ui-icon-button-outline-text, var(--ui-text-primary));
|
|
310
310
|
box-shadow: var(--ui-raised);
|
|
311
311
|
}
|
|
312
312
|
|
|
313
313
|
[data-component~="ui-icon-button"][data-ui-icon-button-state~="variant=solid"] {
|
|
314
|
-
background: var(--ui-icon-button-solid-surface, var(--ui-accent-solid));
|
|
314
|
+
background-color: var(--ui-icon-button-solid-surface, var(--ui-accent-solid));
|
|
315
315
|
background-image: var(--ui-raised-highlight);
|
|
316
316
|
color: var(--ui-icon-button-solid-text, var(--ui-text-on-accent));
|
|
317
317
|
box-shadow: var(
|
|
@@ -322,7 +322,10 @@ html[data-ui-input-modality="touch"] [data-component~="ui-icon-button"]::after {
|
|
|
322
322
|
|
|
323
323
|
[data-component~="ui-icon-button"]:hover:enabled:not([aria-disabled="true"]) {
|
|
324
324
|
/* Derived from the text colour so the ghost hover shows on any background. */
|
|
325
|
-
background: var(
|
|
325
|
+
background-color: var(
|
|
326
|
+
--ui-icon-button-hover-surface,
|
|
327
|
+
color-mix(in srgb, currentColor 8%, transparent)
|
|
328
|
+
);
|
|
326
329
|
color: var(--ui-icon-button-hover-text, var(--ui-text-primary));
|
|
327
330
|
}
|
|
328
331
|
|
|
@@ -334,7 +337,7 @@ html[data-ui-input-modality="touch"] [data-component~="ui-icon-button"]::after {
|
|
|
334
337
|
}
|
|
335
338
|
|
|
336
339
|
[data-component~="ui-icon-button"][data-ui-icon-button-state~="variant=solid"]:hover:enabled:not([aria-disabled="true"]) {
|
|
337
|
-
background: var(--ui-icon-button-solid-hover-surface, var(--ui-accent-hover));
|
|
340
|
+
background-color: var(--ui-icon-button-solid-hover-surface, var(--ui-accent-hover));
|
|
338
341
|
}
|
|
339
342
|
|
|
340
343
|
[data-component~="ui-icon-button"]:active:enabled:not([aria-disabled="true"]) {
|
|
@@ -370,7 +373,7 @@ html[data-ui-input-modality="touch"] [data-component~="ui-icon-button"]::after {
|
|
|
370
373
|
/* Disabled is a flat neutral control, independent of the active variant's tone. */
|
|
371
374
|
[data-component~="ui-icon-button"]:disabled {
|
|
372
375
|
border-color: var(--ui-disabled-border);
|
|
373
|
-
background: var(--ui-disabled-surface);
|
|
376
|
+
background-color: var(--ui-disabled-surface);
|
|
374
377
|
color: var(--ui-disabled-text);
|
|
375
378
|
filter: var(--ui-icon-button-disabled-filter, var(--ui-disabled-filter));
|
|
376
379
|
opacity: var(--ui-icon-button-disabled-opacity, 1);
|
package/vue/UiInputGroup.vue
CHANGED
|
@@ -176,7 +176,7 @@ useComponentHost(controllerModule.default, {
|
|
|
176
176
|
flex: none;
|
|
177
177
|
align-items: center;
|
|
178
178
|
padding-inline: var(--ui-space-2);
|
|
179
|
-
color: var(--ui-text-
|
|
179
|
+
color: var(--ui-text-muted);
|
|
180
180
|
font-family: var(--ui-font-family-mono);
|
|
181
181
|
font-size: var(--ui-font-size-sm);
|
|
182
182
|
white-space: nowrap;
|
|
@@ -86,18 +86,14 @@ const hostState = computed(() =>
|
|
|
86
86
|
align-items: flex-start;
|
|
87
87
|
gap: var(--ui-search-result-row-gap, var(--ui-space-3));
|
|
88
88
|
background: var(--ui-search-result-row-surface, transparent);
|
|
89
|
-
border:
|
|
90
|
-
border-
|
|
89
|
+
border: 1px solid var(--ui-search-result-row-border, transparent);
|
|
90
|
+
border-radius: var(--ui-radius-md);
|
|
91
91
|
color: inherit;
|
|
92
92
|
cursor: pointer;
|
|
93
93
|
text-align: left;
|
|
94
94
|
transition: background-color var(--ui-motion-fast) var(--ui-motion-ease);
|
|
95
95
|
}
|
|
96
96
|
|
|
97
|
-
[data-component~="ui-search-result-row"]:last-child {
|
|
98
|
-
border-block-end: none;
|
|
99
|
-
}
|
|
100
|
-
|
|
101
97
|
[data-component~="ui-search-result-row"]:hover:enabled {
|
|
102
98
|
background: var(
|
|
103
99
|
--ui-search-result-row-hover-surface,
|
package/vue/UiSearchShell.vue
CHANGED
|
@@ -180,16 +180,6 @@ dialog::backdrop {
|
|
|
180
180
|
|
|
181
181
|
.search {
|
|
182
182
|
padding: var(--ui-space-3);
|
|
183
|
-
border-block-end: 1px solid var(--ui-border-divider);
|
|
184
|
-
transition:
|
|
185
|
-
border-color var(--ui-motion-fast) var(--ui-motion-ease),
|
|
186
|
-
box-shadow var(--ui-motion-fast) var(--ui-motion-ease);
|
|
187
|
-
}
|
|
188
|
-
|
|
189
|
-
/* The search region shows where typing goes, whatever the author put in it. */
|
|
190
|
-
.search:focus-within {
|
|
191
|
-
border-block-end-color: var(--_ui-search-shell-focus-color, var(--ui-control-focus));
|
|
192
|
-
box-shadow: inset 0 -1px 0 var(--_ui-search-shell-focus-color, var(--ui-control-focus));
|
|
193
183
|
}
|
|
194
184
|
|
|
195
185
|
:slotted(input[slot="search"]) {
|
|
@@ -206,7 +196,7 @@ dialog::backdrop {
|
|
|
206
196
|
}
|
|
207
197
|
|
|
208
198
|
:slotted(input[slot="search"]:focus-visible) {
|
|
209
|
-
border-color: var(--ui-control-focus);
|
|
199
|
+
border-color: var(--_ui-search-shell-focus-color, var(--ui-control-focus));
|
|
210
200
|
outline: 2px solid var(--ui-focus-ring);
|
|
211
201
|
outline-offset: 2px;
|
|
212
202
|
}
|
|
@@ -220,7 +210,7 @@ dialog::backdrop {
|
|
|
220
210
|
}
|
|
221
211
|
|
|
222
212
|
.status {
|
|
223
|
-
|
|
213
|
+
padding-block-start: 0;
|
|
224
214
|
}
|
|
225
215
|
|
|
226
216
|
/* Laid out like the dialog's action row: actions right-aligned, spaced as buttons, no fill. */
|
|
@@ -231,7 +221,6 @@ dialog::backdrop {
|
|
|
231
221
|
justify-content: flex-end;
|
|
232
222
|
gap: var(--ui-space-2);
|
|
233
223
|
padding: var(--ui-space-3) var(--ui-space-4);
|
|
234
|
-
border-block-start: 1px solid var(--ui-border-divider);
|
|
235
224
|
}
|
|
236
225
|
|
|
237
226
|
.status:empty,
|
package/vue/UiSpinner.vue
CHANGED
|
@@ -60,22 +60,16 @@ function attribute(value: unknown): any {
|
|
|
60
60
|
flex: none;
|
|
61
61
|
align-items: center;
|
|
62
62
|
justify-content: center;
|
|
63
|
+
box-sizing: border-box;
|
|
63
64
|
inline-size: 1em;
|
|
64
65
|
block-size: 1em;
|
|
65
|
-
color: currentColor;
|
|
66
|
-
font-size: var(--ui-font-size-lg);
|
|
67
|
-
line-height: 1;
|
|
68
|
-
}
|
|
69
|
-
|
|
70
|
-
.ring {
|
|
71
|
-
display: block;
|
|
72
|
-
box-sizing: border-box;
|
|
73
|
-
inline-size: 100%;
|
|
74
|
-
block-size: 100%;
|
|
75
66
|
border: 2px solid transparent;
|
|
76
67
|
border-block-start-color: currentColor;
|
|
77
68
|
border-inline-end-color: color-mix(in srgb, currentColor 52%, transparent);
|
|
78
69
|
border-radius: 50%;
|
|
70
|
+
color: currentColor;
|
|
71
|
+
font-size: var(--ui-font-size-lg);
|
|
72
|
+
line-height: 1;
|
|
79
73
|
animation: ui-spinner-chase 1s linear infinite;
|
|
80
74
|
}
|
|
81
75
|
|
|
@@ -96,7 +90,7 @@ function attribute(value: unknown): any {
|
|
|
96
90
|
}
|
|
97
91
|
|
|
98
92
|
@media (prefers-reduced-motion: reduce) {
|
|
99
|
-
|
|
93
|
+
[data-component~="ui-spinner"] {
|
|
100
94
|
animation: none;
|
|
101
95
|
}
|
|
102
96
|
}
|
package/vue/UiTooltip.vue
CHANGED
|
@@ -256,14 +256,14 @@ useComponentHost(controllerModule.default, {
|
|
|
256
256
|
inset-inline-start: auto;
|
|
257
257
|
inset-inline-end: calc(var(--_ui-tooltip-arrow-size, 0.625rem) / -2 - 0.5px);
|
|
258
258
|
border-inline-end-width: 1px;
|
|
259
|
-
border-block-
|
|
259
|
+
border-block-start-width: 1px;
|
|
260
260
|
}
|
|
261
261
|
|
|
262
262
|
[data-component~="ui-tooltip"][data-ui-actual-placement="right"] .surface::after {
|
|
263
263
|
inset-inline-start: calc(var(--_ui-tooltip-arrow-size, 0.625rem) / -2 - 0.5px);
|
|
264
264
|
inset-inline-end: auto;
|
|
265
265
|
border-inline-start-width: 1px;
|
|
266
|
-
border-block-
|
|
266
|
+
border-block-end-width: 1px;
|
|
267
267
|
}
|
|
268
268
|
|
|
269
269
|
[data-component~="ui-tooltip"][data-ui-actual-placement="left"][data-ui-actual-align="start"]
|
package/vue/chunks/UiButton.js
CHANGED
|
@@ -139,6 +139,6 @@ var UiButton_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__PUR
|
|
|
139
139
|
}), [__props.loading || __props.pending ? (openBlock(), createElementBlock("span", _hoisted_4, [createVNode(UiSpinner_default, { size: "sm" })])) : createCommentVNode("v-if", true), renderSlot(_ctx.$slots, "default", {}, void 0, true)], 16, _hoisted_3));
|
|
140
140
|
};
|
|
141
141
|
}
|
|
142
|
-
}), [["__scopeId", "data-v-
|
|
142
|
+
}), [["__scopeId", "data-v-a89a1895"]]);
|
|
143
143
|
//#endregion
|
|
144
144
|
export { UiButton_default as t };
|
package/vue/chunks/UiCheckbox.js
CHANGED
|
@@ -105,6 +105,6 @@ var UiCheckbox_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__P
|
|
|
105
105
|
}, null, 40, _hoisted_2), createElementVNode("span", _hoisted_3, [createElementVNode("span", _hoisted_4, [renderSlot(_ctx.$slots, "default", {}, void 0, true)]), createElementVNode("span", _hoisted_5, [renderSlot(_ctx.$slots, "description", {}, void 0, true)], 512)])], 16, _hoisted_1);
|
|
106
106
|
};
|
|
107
107
|
}
|
|
108
|
-
}), [["__scopeId", "data-v-
|
|
108
|
+
}), [["__scopeId", "data-v-9a218638"]]);
|
|
109
109
|
//#endregion
|
|
110
110
|
export { UiCheckbox_default as t };
|
|
@@ -95,6 +95,6 @@ var UiIconButton_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @_
|
|
|
95
95
|
})) : createCommentVNode("v-if", true), createElementVNode("span", _hoisted_2, [renderSlot(_ctx.$slots, "default")])], 16, _hoisted_1);
|
|
96
96
|
};
|
|
97
97
|
}
|
|
98
|
-
}), [["__scopeId", "data-v-
|
|
98
|
+
}), [["__scopeId", "data-v-ae1ec9d2"]]);
|
|
99
99
|
//#endregion
|
|
100
100
|
export { UiIconButton_default as t };
|
|
@@ -50,6 +50,6 @@ var UiSearchResultRow_default = /*#__PURE__*/ _plugin_vue_export_helper_default(
|
|
|
50
50
|
], 16, _hoisted_1);
|
|
51
51
|
};
|
|
52
52
|
}
|
|
53
|
-
}), [["__scopeId", "data-v-
|
|
53
|
+
}), [["__scopeId", "data-v-5fd17258"]]);
|
|
54
54
|
//#endregion
|
|
55
55
|
export { UiSearchResultRow_default as t };
|
|
@@ -67,6 +67,6 @@ var UiSearchShell_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @
|
|
|
67
67
|
])], 8, _hoisted_1)], 16);
|
|
68
68
|
};
|
|
69
69
|
}
|
|
70
|
-
}), [["__scopeId", "data-v-
|
|
70
|
+
}), [["__scopeId", "data-v-b1cde00b"]]);
|
|
71
71
|
//#endregion
|
|
72
72
|
export { UiSearchShell_default as t };
|
package/vue/chunks/UiSpinner.js
CHANGED
|
@@ -61,6 +61,6 @@ var UiSpinner_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__PU
|
|
|
61
61
|
}), null, 16, _hoisted_1);
|
|
62
62
|
};
|
|
63
63
|
}
|
|
64
|
-
}), [["__scopeId", "data-v-
|
|
64
|
+
}), [["__scopeId", "data-v-f5f5cd89"]]);
|
|
65
65
|
//#endregion
|
|
66
66
|
export { UiSpinner_default as t };
|
package/vue/chunks/UiTooltip.js
CHANGED
|
@@ -68,6 +68,6 @@ var UiTooltip_default = /*#__PURE__*/ _plugin_vue_export_helper_default(/* @__PU
|
|
|
68
68
|
}), [createElementVNode("div", _hoisted_2, [renderSlot(_ctx.$slots, "default", {}, void 0, true)])], 16, _hoisted_1);
|
|
69
69
|
};
|
|
70
70
|
}
|
|
71
|
-
}), [["__scopeId", "data-v-
|
|
71
|
+
}), [["__scopeId", "data-v-0e272bf3"]]);
|
|
72
72
|
//#endregion
|
|
73
73
|
export { UiTooltip_default as t };
|