noph-ui 0.50.0 → 0.51.0
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/dist/app-bar/AppBar.svelte +64 -22
- package/dist/button/Button.svelte +4 -12
- package/dist/button/IconButton.svelte +3 -38
- package/dist/button/SegmentedButton.svelte +3 -4
- package/dist/button/SplitButton.svelte +1 -1
- package/dist/carousel/Carousel.svelte +5 -1
- package/dist/chip/SuggestionChip.svelte +2 -2
- package/dist/date-picker/DatePickerDialog.svelte +1 -0
- package/dist/date-picker/DateRangePicker.svelte +2 -5
- package/dist/dialog/Dialog.svelte +2 -3
- package/dist/fab/ExtendedFab.svelte +1 -5
- package/dist/fab/Fab.svelte +1 -6
- package/dist/fab/FabMenu.svelte +5 -5
- package/dist/list/Item.svelte +3 -0
- package/dist/navigation-bar/NavigationBarItem.svelte +3 -4
- package/dist/navigation-drawer/NavigationDrawerItem.svelte +0 -1
- package/dist/navigation-rail/NavigationRailItem.svelte +1 -1
- package/dist/progress/CircularProgress.svelte +9 -3
- package/dist/progress/LinearProgress.svelte +1 -1
- package/dist/radio/Radio.svelte +1 -1
- package/dist/select/NativeSelect.svelte +2 -0
- package/dist/select/Select.svelte +35 -16
- package/dist/sheet/Sheet.svelte +15 -3
- package/dist/slider/Slider.svelte +3 -2
- package/dist/snackbar/Snackbar.svelte +6 -3
- package/dist/switch/Switch.svelte +11 -6
- package/dist/tabs/Tab.svelte +1 -1
- package/dist/themes/defaultTheme.css +1 -0
- package/dist/time-picker/PeriodSelector.svelte +2 -5
- package/dist/time-picker/TimePickerPanel.svelte +3 -1
- package/dist/toolbar/Toolbar.svelte +7 -7
- package/dist/tooltip/RichTooltip.svelte +1 -1
- package/package.json +1 -1
|
@@ -36,7 +36,7 @@
|
|
|
36
36
|
'np-app-bar',
|
|
37
37
|
`np-app-bar-${variant}`,
|
|
38
38
|
collapses && 'np-app-bar-collapsible',
|
|
39
|
-
|
|
39
|
+
scroller === 'nearest' && 'np-app-bar-scroller-nearest',
|
|
40
40
|
attributes.class,
|
|
41
41
|
]}
|
|
42
42
|
>
|
|
@@ -75,6 +75,11 @@
|
|
|
75
75
|
background-color: var(--np-app-bar-container-color, var(--np-color-surface));
|
|
76
76
|
color: var(--np-color-on-surface);
|
|
77
77
|
--np-icon-button-icon-color: var(--np-color-on-surface-variant);
|
|
78
|
+
--_timeline: scroll(root block);
|
|
79
|
+
--_fill-range: 0 var(--np-app-bar-fill-distance, 0.5rem);
|
|
80
|
+
}
|
|
81
|
+
.np-app-bar-scroller-nearest {
|
|
82
|
+
--_timeline: scroll(nearest block);
|
|
78
83
|
}
|
|
79
84
|
|
|
80
85
|
.np-app-bar:has(:global(.np-search-expanded)) {
|
|
@@ -110,21 +115,18 @@
|
|
|
110
115
|
}
|
|
111
116
|
|
|
112
117
|
.np-app-bar-subtitle {
|
|
113
|
-
font-size:
|
|
114
|
-
line-height:
|
|
118
|
+
font-size: var(--_subtitle-size);
|
|
119
|
+
line-height: var(--_subtitle-line-height);
|
|
115
120
|
font-weight: 500;
|
|
116
121
|
color: var(--np-app-bar-subtitle-color, var(--np-color-on-surface-variant));
|
|
117
122
|
overflow: hidden;
|
|
118
123
|
text-overflow: ellipsis;
|
|
119
124
|
white-space: nowrap;
|
|
120
125
|
}
|
|
121
|
-
.np-app-bar-titles-inline .np-app-bar-headline {
|
|
122
|
-
font-size: 1.375rem;
|
|
123
|
-
}
|
|
124
126
|
|
|
125
127
|
.np-app-bar-headline {
|
|
126
128
|
font-size: var(--_headline-size);
|
|
127
|
-
line-height:
|
|
129
|
+
line-height: var(--_headline-line-height);
|
|
128
130
|
font-weight: 400;
|
|
129
131
|
color: var(--np-app-bar-headline-color, var(--np-color-on-surface));
|
|
130
132
|
overflow: hidden;
|
|
@@ -132,10 +134,22 @@
|
|
|
132
134
|
white-space: nowrap;
|
|
133
135
|
min-width: 0;
|
|
134
136
|
}
|
|
137
|
+
.np-app-bar-second-row .np-app-bar-headline {
|
|
138
|
+
display: -webkit-box;
|
|
139
|
+
-webkit-box-orient: vertical;
|
|
140
|
+
-webkit-line-clamp: 2;
|
|
141
|
+
line-clamp: 2;
|
|
142
|
+
white-space: normal;
|
|
143
|
+
overflow-wrap: anywhere;
|
|
144
|
+
}
|
|
135
145
|
|
|
136
146
|
.np-app-bar-small,
|
|
137
|
-
.np-app-bar-search
|
|
147
|
+
.np-app-bar-search,
|
|
148
|
+
.np-app-bar-inline {
|
|
138
149
|
--_headline-size: 1.375rem;
|
|
150
|
+
--_headline-line-height: 1.75rem;
|
|
151
|
+
--_subtitle-size: 0.75rem;
|
|
152
|
+
--_subtitle-line-height: 1rem;
|
|
139
153
|
}
|
|
140
154
|
|
|
141
155
|
.np-app-bar-search-field {
|
|
@@ -145,17 +159,26 @@
|
|
|
145
159
|
align-items: center;
|
|
146
160
|
padding-inline: 0.25rem;
|
|
147
161
|
}
|
|
162
|
+
.np-app-bar-search-field :global(.np-search:not(.np-search-expanded) .np-search-bar) {
|
|
163
|
+
background-color: var(--np-search-container-color, var(--np-color-surface-container));
|
|
164
|
+
}
|
|
148
165
|
.np-app-bar-small .np-app-bar-titles {
|
|
149
166
|
padding-inline-start: 0.75rem;
|
|
150
167
|
flex: 1;
|
|
151
168
|
}
|
|
152
169
|
|
|
153
170
|
.np-app-bar-medium {
|
|
154
|
-
--_headline-size: 1.
|
|
171
|
+
--_headline-size: 1.75rem;
|
|
172
|
+
--_headline-line-height: 2.25rem;
|
|
173
|
+
--_subtitle-size: 0.875rem;
|
|
174
|
+
--_subtitle-line-height: 1.25rem;
|
|
155
175
|
--_second-row-height: 3rem;
|
|
156
176
|
}
|
|
157
177
|
.np-app-bar-large {
|
|
158
|
-
--_headline-size:
|
|
178
|
+
--_headline-size: 2.25rem;
|
|
179
|
+
--_headline-line-height: 2.75rem;
|
|
180
|
+
--_subtitle-size: 1rem;
|
|
181
|
+
--_subtitle-line-height: 1.5rem;
|
|
159
182
|
--_second-row-height: 5.5rem;
|
|
160
183
|
}
|
|
161
184
|
|
|
@@ -170,18 +193,15 @@
|
|
|
170
193
|
padding-block-end: 1rem;
|
|
171
194
|
overflow: hidden;
|
|
172
195
|
}
|
|
196
|
+
.np-app-bar-medium .np-app-bar-second-row {
|
|
197
|
+
padding-block-end: 0.75rem;
|
|
198
|
+
}
|
|
173
199
|
|
|
174
200
|
.np-app-bar-inline {
|
|
175
|
-
font-size: 1.375rem;
|
|
176
|
-
line-height: 1.2;
|
|
177
|
-
font-weight: 400;
|
|
178
|
-
color: var(--np-app-bar-headline-color, var(--np-color-on-surface));
|
|
179
201
|
padding-inline-start: 0.75rem;
|
|
180
202
|
flex: 1;
|
|
181
203
|
min-width: 0;
|
|
182
204
|
overflow: hidden;
|
|
183
|
-
text-overflow: ellipsis;
|
|
184
|
-
white-space: nowrap;
|
|
185
205
|
opacity: 0;
|
|
186
206
|
}
|
|
187
207
|
|
|
@@ -189,23 +209,45 @@
|
|
|
189
209
|
:global(html:has(.np-app-bar-collapsible)) {
|
|
190
210
|
overflow-anchor: none;
|
|
191
211
|
}
|
|
192
|
-
:global(:has(.np-app-bar-scroller-nearest)) {
|
|
212
|
+
:global(:has(.np-app-bar-collapsible.np-app-bar-scroller-nearest)) {
|
|
193
213
|
overflow-anchor: none;
|
|
194
214
|
}
|
|
195
215
|
|
|
216
|
+
.np-app-bar {
|
|
217
|
+
animation: np-app-bar-fill linear both;
|
|
218
|
+
animation-timeline: var(--_timeline);
|
|
219
|
+
animation-range: var(--_fill-range);
|
|
220
|
+
}
|
|
221
|
+
.np-app-bar-search-field :global(.np-search:not(.np-search-expanded) .np-search-bar) {
|
|
222
|
+
animation: np-app-bar-search-fill linear both;
|
|
223
|
+
animation-timeline: var(--_timeline);
|
|
224
|
+
animation-range: var(--_fill-range);
|
|
225
|
+
}
|
|
226
|
+
|
|
196
227
|
.np-app-bar-collapsible .np-app-bar-second-row {
|
|
197
228
|
animation: np-app-bar-collapse linear both;
|
|
198
|
-
animation-timeline:
|
|
229
|
+
animation-timeline: var(--_timeline);
|
|
199
230
|
animation-range: 0 var(--_second-row-height);
|
|
200
231
|
}
|
|
201
232
|
.np-app-bar-collapsible .np-app-bar-inline {
|
|
202
233
|
animation: np-app-bar-reveal linear both;
|
|
203
|
-
animation-timeline:
|
|
234
|
+
animation-timeline: var(--_timeline);
|
|
204
235
|
animation-range: 0 var(--_second-row-height);
|
|
205
236
|
}
|
|
206
|
-
|
|
207
|
-
|
|
208
|
-
|
|
237
|
+
}
|
|
238
|
+
|
|
239
|
+
@keyframes np-app-bar-fill {
|
|
240
|
+
to {
|
|
241
|
+
background-color: var(
|
|
242
|
+
--np-app-bar-scrolled-container-color,
|
|
243
|
+
var(--np-color-surface-container)
|
|
244
|
+
);
|
|
245
|
+
}
|
|
246
|
+
}
|
|
247
|
+
|
|
248
|
+
@keyframes np-app-bar-search-fill {
|
|
249
|
+
to {
|
|
250
|
+
background-color: var(--np-search-container-color, var(--np-color-surface-container-highest));
|
|
209
251
|
}
|
|
210
252
|
}
|
|
211
253
|
|
|
@@ -149,6 +149,9 @@
|
|
|
149
149
|
opacity: 0;
|
|
150
150
|
}
|
|
151
151
|
.np-button {
|
|
152
|
+
/* State layers take the content color of each variant and state. */
|
|
153
|
+
--np-ripple-hover-color: currentColor;
|
|
154
|
+
--np-ripple-pressed-color: currentColor;
|
|
152
155
|
box-sizing: border-box;
|
|
153
156
|
font: inherit;
|
|
154
157
|
background-color: transparent;
|
|
@@ -279,14 +282,9 @@
|
|
|
279
282
|
}
|
|
280
283
|
}
|
|
281
284
|
.text {
|
|
282
|
-
--np-ripple-hover-color: var(--np-text-button-label-text-color, var(--np-color-primary));
|
|
283
|
-
--np-ripple-pressed-color: var(--np-text-button-label-text-color, var(--np-color-primary));
|
|
284
285
|
color: var(--np-text-button-label-text-color, var(--np-color-primary));
|
|
285
286
|
}
|
|
286
287
|
.filled {
|
|
287
|
-
--np-ripple-hover-opacity: 0.12;
|
|
288
|
-
--np-ripple-hover-color: var(--np-color-surface);
|
|
289
|
-
--np-ripple-pressed-color: var(--np-color-surface);
|
|
290
288
|
color: var(--np-filled-button-label-text-color, var(--np-color-on-primary));
|
|
291
289
|
background-color: var(--np-filled-button-container-color, var(--np-color-primary));
|
|
292
290
|
}
|
|
@@ -312,8 +310,6 @@
|
|
|
312
310
|
}
|
|
313
311
|
|
|
314
312
|
.tonal {
|
|
315
|
-
--np-ripple-hover-color: var(--np-tonal-button-label-text-color, var(--np-color-primary));
|
|
316
|
-
--np-ripple-pressed-color: var(--np-tonal-button-label-text-color, var(--np-color-primary));
|
|
317
313
|
color: var(--np-tonal-button-label-text-color, var(--np-color-on-secondary-container));
|
|
318
314
|
background-color: var(--np-tonal-button-container-color, var(--np-color-secondary-container));
|
|
319
315
|
}
|
|
@@ -336,8 +332,6 @@
|
|
|
336
332
|
}
|
|
337
333
|
|
|
338
334
|
.elevated {
|
|
339
|
-
--np-ripple-hover-color: var(--np-elevated-button-label-text-color, var(--np-color-primary));
|
|
340
|
-
--np-ripple-pressed-color: var(--np-elevated-button-label-text-color, var(--np-color-primary));
|
|
341
335
|
color: var(--np-elevated-button-label-text-color, var(--np-color-primary));
|
|
342
336
|
background-color: var(
|
|
343
337
|
--np-elevated-button-container-color,
|
|
@@ -364,9 +358,7 @@
|
|
|
364
358
|
--np-outlined-button-outline-color,
|
|
365
359
|
var(--np-color-outline-variant)
|
|
366
360
|
);
|
|
367
|
-
|
|
368
|
-
--np-ripple-pressed-color: var(--np-outlined-button-label-text-color, var(--np-color-primary));
|
|
369
|
-
color: var(--np-outlined-button-label-text-color, var(--np-color-primary));
|
|
361
|
+
color: var(--np-outlined-button-label-text-color, var(--np-color-on-surface-variant));
|
|
370
362
|
}
|
|
371
363
|
|
|
372
364
|
.outlined:not(.selected)::after,
|
|
@@ -123,6 +123,9 @@
|
|
|
123
123
|
|
|
124
124
|
<style>
|
|
125
125
|
.np-icon-button {
|
|
126
|
+
/* State layers take the content color of each variant and state. */
|
|
127
|
+
--np-ripple-hover-color: currentColor;
|
|
128
|
+
--np-ripple-pressed-color: currentColor;
|
|
126
129
|
font: inherit;
|
|
127
130
|
box-sizing: border-box;
|
|
128
131
|
-webkit-tap-highlight-color: transparent;
|
|
@@ -281,30 +284,16 @@
|
|
|
281
284
|
}
|
|
282
285
|
}
|
|
283
286
|
.text {
|
|
284
|
-
--np-ripple-hover-color: var(--np-icon-button-icon-color, var(--np-color-on-surface-variant));
|
|
285
|
-
--np-ripple-pressed-color: var(--np-icon-button-icon-color, var(--np-color-on-surface-variant));
|
|
286
287
|
color: var(--np-icon-button-icon-color, var(--np-color-on-surface-variant));
|
|
287
288
|
}
|
|
288
289
|
.text.selected {
|
|
289
|
-
--np-ripple-hover-color: var(--np-color-primary);
|
|
290
|
-
--np-ripple-pressed-color: var(--np-color-primary);
|
|
291
290
|
color: var(--np-color-primary);
|
|
292
291
|
}
|
|
293
292
|
.filled {
|
|
294
|
-
--np-ripple-hover-color: var(--np-filled-icon-button-icon-color, var(--np-color-on-primary));
|
|
295
|
-
--np-ripple-pressed-color: var(--np-filled-icon-button-icon-color, var(--np-color-on-primary));
|
|
296
293
|
color: var(--np-filled-icon-button-icon-color, var(--np-color-on-primary));
|
|
297
294
|
background-color: var(--np-filled-icon-button-container-color, var(--np-color-primary));
|
|
298
295
|
}
|
|
299
296
|
.filled.toggle {
|
|
300
|
-
--np-ripple-hover-color: var(
|
|
301
|
-
--np-filled-icon-button-unselected-icon-color,
|
|
302
|
-
var(--np-color-on-surface-variant)
|
|
303
|
-
);
|
|
304
|
-
--np-ripple-pressed-color: var(
|
|
305
|
-
--np-filled-icon-button-unselected-icon-color,
|
|
306
|
-
var(--np-color-on-surface-variant)
|
|
307
|
-
);
|
|
308
297
|
color: var(--np-filled-icon-button-unselected-icon-color, var(--np-color-on-surface-variant));
|
|
309
298
|
background-color: var(
|
|
310
299
|
--np-filled-icon-button-unselected-container-color,
|
|
@@ -312,14 +301,6 @@
|
|
|
312
301
|
);
|
|
313
302
|
}
|
|
314
303
|
.filled.selected {
|
|
315
|
-
--np-ripple-hover-color: var(
|
|
316
|
-
--np-filled-icon-button-selected-icon-color,
|
|
317
|
-
var(--np-color-on-primary)
|
|
318
|
-
);
|
|
319
|
-
--np-ripple-pressed-color: var(
|
|
320
|
-
--np-filled-icon-button-selected-icon-color,
|
|
321
|
-
var(--np-color-on-primary)
|
|
322
|
-
);
|
|
323
304
|
color: var(--np-filled-icon-button-selected-icon-color, var(--np-color-on-primary));
|
|
324
305
|
background-color: var(
|
|
325
306
|
--np-filled-icon-button-selected-container-color,
|
|
@@ -328,14 +309,6 @@
|
|
|
328
309
|
}
|
|
329
310
|
|
|
330
311
|
.tonal {
|
|
331
|
-
--np-ripple-hover-color: var(
|
|
332
|
-
--np-tonal-icon-button-icon-color,
|
|
333
|
-
var(--np-color-on-secondary-container)
|
|
334
|
-
);
|
|
335
|
-
--np-ripple-pressed-color: var(
|
|
336
|
-
--np-tonal-icon-button-icon-color,
|
|
337
|
-
var(--np-color-on-secondary-container)
|
|
338
|
-
);
|
|
339
312
|
color: var(--np-tonal-icon-button-icon-color, var(--np-color-on-secondary-container));
|
|
340
313
|
background-color: var(
|
|
341
314
|
--np-tonal-icon-button-container-color,
|
|
@@ -343,14 +316,10 @@
|
|
|
343
316
|
);
|
|
344
317
|
}
|
|
345
318
|
.tonal.toggle {
|
|
346
|
-
--np-ripple-hover-color: var(--np-color-on-secondary-container);
|
|
347
|
-
--np-ripple-pressed-color: var(--np-color-on-secondary-container);
|
|
348
319
|
color: var(--np-color-on-secondary-container);
|
|
349
320
|
background-color: var(--np-color-secondary-container);
|
|
350
321
|
}
|
|
351
322
|
.tonal.selected {
|
|
352
|
-
--np-ripple-hover-color: var(--np-color-on-secondary);
|
|
353
|
-
--np-ripple-pressed-color: var(--np-color-on-secondary);
|
|
354
323
|
color: var(--np-color-on-secondary);
|
|
355
324
|
background-color: var(--np-color-secondary);
|
|
356
325
|
}
|
|
@@ -360,8 +329,6 @@
|
|
|
360
329
|
--np-outlined-icon-button-outline-color,
|
|
361
330
|
var(--np-color-outline-variant)
|
|
362
331
|
);
|
|
363
|
-
--np-ripple-hover-color: var(--np-color-on-surface-variant);
|
|
364
|
-
--np-ripple-pressed-color: var(--np-color-on-surface-variant);
|
|
365
332
|
color: var(--np-color-on-surface-variant);
|
|
366
333
|
}
|
|
367
334
|
|
|
@@ -376,8 +343,6 @@
|
|
|
376
343
|
}
|
|
377
344
|
|
|
378
345
|
.outlined.selected {
|
|
379
|
-
--np-ripple-hover-color: var(--np-color-on-surface-variant);
|
|
380
|
-
--np-ripple-pressed-color: var(--np-color-on-surface-variant);
|
|
381
346
|
color: var(--np-color-inverse-on-surface);
|
|
382
347
|
background-color: var(--np-color-inverse-surface);
|
|
383
348
|
}
|
|
@@ -90,8 +90,9 @@
|
|
|
90
90
|
|
|
91
91
|
<style>
|
|
92
92
|
.np-segmented-buttons {
|
|
93
|
-
|
|
94
|
-
--np-ripple-
|
|
93
|
+
/* State layers take the content color of each variant and state. */
|
|
94
|
+
--np-ripple-hover-color: currentColor;
|
|
95
|
+
--np-ripple-pressed-color: currentColor;
|
|
95
96
|
display: grid;
|
|
96
97
|
color: var(--np-color-on-surface);
|
|
97
98
|
border: 1px solid var(--np-color-outline);
|
|
@@ -100,8 +101,6 @@
|
|
|
100
101
|
}
|
|
101
102
|
|
|
102
103
|
.np-segmented-buttons.np-error {
|
|
103
|
-
--np-ripple-hover-color: var(--np-color-error);
|
|
104
|
-
--np-ripple-pressed-color: var(--np-color-error);
|
|
105
104
|
border-color: var(--np-color-error);
|
|
106
105
|
color: var(--np-color-error);
|
|
107
106
|
}
|
|
@@ -49,7 +49,7 @@
|
|
|
49
49
|
aria-label={menuLabel}
|
|
50
50
|
start={caret}
|
|
51
51
|
/>
|
|
52
|
-
<Menu id={menuId} anchor={trigger} bind:open coverAnchor={false}>
|
|
52
|
+
<Menu id={menuId} anchor={trigger} bind:open coverAnchor={false} style="--np-menu-margin: 4px">
|
|
53
53
|
{@render menu?.(menuId)}
|
|
54
54
|
</Menu>
|
|
55
55
|
</ButtonGroup>
|
|
@@ -195,6 +195,10 @@
|
|
|
195
195
|
padding-block: var(--_cross);
|
|
196
196
|
}
|
|
197
197
|
|
|
198
|
+
.np-carousel-uncontained.np-carousel-horizontal .np-carousel-track {
|
|
199
|
+
padding-inline-end: 0;
|
|
200
|
+
}
|
|
201
|
+
|
|
198
202
|
.np-carousel-vertical .np-carousel-track {
|
|
199
203
|
flex-direction: column;
|
|
200
204
|
padding-block: var(--_pad);
|
|
@@ -208,7 +212,7 @@
|
|
|
208
212
|
|
|
209
213
|
.np-carousel-full-screen {
|
|
210
214
|
--np-carousel-padding: 0px;
|
|
211
|
-
--_gap:
|
|
215
|
+
--_gap: var(--np-carousel-item-spacing, 1rem);
|
|
212
216
|
--_cross: 0px;
|
|
213
217
|
--np-carousel-item-container-shape: 0px;
|
|
214
218
|
--np-carousel-snap-stop: always;
|
|
@@ -12,8 +12,8 @@
|
|
|
12
12
|
</script>
|
|
13
13
|
|
|
14
14
|
<Button
|
|
15
|
-
--np-elevated-button-label-text-color="var(--np-suggestion-chip-label-text-color, var(--np-color-on-surface))"
|
|
16
|
-
--np-outlined-button-label-text-color="var(--np-suggestion-chip-label-text-color, var(--np-color-on-surface))"
|
|
15
|
+
--np-elevated-button-label-text-color="var(--np-suggestion-chip-label-text-color, var(--np-color-on-surface-variant))"
|
|
16
|
+
--np-outlined-button-label-text-color="var(--np-suggestion-chip-label-text-color, var(--np-color-on-surface-variant))"
|
|
17
17
|
--np-outlined-button-outline-color="var(--np-suggestion-chip-outline-color, var(--np-color-outline-variant))"
|
|
18
18
|
--np-button-padding="1rem"
|
|
19
19
|
--np-button-shape="0.5rem"
|
|
@@ -297,7 +297,7 @@
|
|
|
297
297
|
--np-dialog-elevation: none;
|
|
298
298
|
--np-dialog-container-color: var(
|
|
299
299
|
--np-date-range-picker-container-color,
|
|
300
|
-
var(--np-color-surface)
|
|
300
|
+
var(--np-color-surface-container-high)
|
|
301
301
|
);
|
|
302
302
|
--np-dialog-container-shape: var(
|
|
303
303
|
--np-date-range-picker-container-shape,
|
|
@@ -368,6 +368,7 @@
|
|
|
368
368
|
|
|
369
369
|
.np-date-range-picker-headline {
|
|
370
370
|
margin: 0;
|
|
371
|
+
color: var(--np-color-on-surface);
|
|
371
372
|
display: flex;
|
|
372
373
|
gap: 0.5rem;
|
|
373
374
|
font-size: 1.375rem;
|
|
@@ -419,10 +420,6 @@
|
|
|
419
420
|
--np-dialog-inset: 2rem 1rem;
|
|
420
421
|
--np-dialog-max-height: calc(100dvh - 3rem);
|
|
421
422
|
--np-dialog-elevation: var(--np-elevation-3);
|
|
422
|
-
--np-dialog-container-color: var(
|
|
423
|
-
--np-date-range-picker-container-color,
|
|
424
|
-
var(--np-color-surface-container-high)
|
|
425
|
-
);
|
|
426
423
|
--np-dialog-container-shape: var(
|
|
427
424
|
--np-date-range-picker-container-shape,
|
|
428
425
|
var(--np-shape-corner-extra-large)
|
|
@@ -40,14 +40,12 @@
|
|
|
40
40
|
<dialog
|
|
41
41
|
bind:this={element}
|
|
42
42
|
{...attributes}
|
|
43
|
-
tabindex="-1"
|
|
44
43
|
closedby="any"
|
|
45
44
|
aria-labelledby={ariaLabelledby ?? (headline ? `${uid}-dialog-headline` : undefined)}
|
|
46
45
|
aria-describedby={supportingText ? `${uid}-dialog-supporting-text` : undefined}
|
|
47
46
|
class={['np-dialog-container', !quick && 'np-animate', attributes.class]}
|
|
48
47
|
ontoggle={(event) => {
|
|
49
48
|
open = event.newState === 'open'
|
|
50
|
-
if (event.newState === 'open') element?.focus()
|
|
51
49
|
ontoggle?.(event)
|
|
52
50
|
}}
|
|
53
51
|
onclick={(event) => {
|
|
@@ -114,7 +112,7 @@
|
|
|
114
112
|
|
|
115
113
|
.np-dialog {
|
|
116
114
|
border: 0;
|
|
117
|
-
background-color: var(--np-dialog-container-color, var(--np-color-surface));
|
|
115
|
+
background-color: var(--np-dialog-container-color, var(--np-color-surface-container-high));
|
|
118
116
|
color: var(--np-color-on-surface);
|
|
119
117
|
padding: var(--np-dialog-padding, 1.5rem);
|
|
120
118
|
border-radius: var(--np-dialog-container-shape, var(--np-shape-corner-extra-large));
|
|
@@ -129,6 +127,7 @@
|
|
|
129
127
|
|
|
130
128
|
.np-dialog-scroller {
|
|
131
129
|
overflow-y: auto;
|
|
130
|
+
overscroll-behavior: contain;
|
|
132
131
|
display: flex;
|
|
133
132
|
flex: 1 1 0%;
|
|
134
133
|
flex-direction: column;
|
|
@@ -228,11 +228,7 @@
|
|
|
228
228
|
|
|
229
229
|
@media (hover: hover) {
|
|
230
230
|
.np-extended-fab:not(:disabled):hover {
|
|
231
|
-
|
|
232
|
-
in srgb,
|
|
233
|
-
var(--np-fab-icon-color, var(--_icon-color)) 8%,
|
|
234
|
-
var(--np-fab-container-color, var(--_container-color))
|
|
235
|
-
);
|
|
231
|
+
box-shadow: var(--np-fab-elevation, var(--np-elevation-4));
|
|
236
232
|
}
|
|
237
233
|
.np-fab-lowered:not(:disabled):hover {
|
|
238
234
|
box-shadow: var(--np-fab-elevation, var(--np-elevation-2));
|
package/dist/fab/Fab.svelte
CHANGED
|
@@ -184,12 +184,7 @@
|
|
|
184
184
|
|
|
185
185
|
@media (hover: hover) {
|
|
186
186
|
.np-fab:not(:disabled):hover {
|
|
187
|
-
box-shadow: var(--np-fab-elevation, var(--np-elevation-
|
|
188
|
-
background-color: color-mix(
|
|
189
|
-
in srgb,
|
|
190
|
-
var(--np-fab-icon-color, var(--_icon-color)) 8%,
|
|
191
|
-
var(--np-fab-container-color, var(--_container-color))
|
|
192
|
-
);
|
|
187
|
+
box-shadow: var(--np-fab-elevation, var(--np-elevation-4));
|
|
193
188
|
}
|
|
194
189
|
.np-fab-lowered:not(:disabled):hover {
|
|
195
190
|
box-shadow: var(--np-fab-elevation, var(--np-elevation-2));
|
package/dist/fab/FabMenu.svelte
CHANGED
|
@@ -158,7 +158,7 @@
|
|
|
158
158
|
background: none;
|
|
159
159
|
flex-direction: column;
|
|
160
160
|
align-items: flex-end;
|
|
161
|
-
gap: 0.
|
|
161
|
+
gap: 0.25rem;
|
|
162
162
|
overflow: visible;
|
|
163
163
|
}
|
|
164
164
|
|
|
@@ -168,22 +168,22 @@
|
|
|
168
168
|
|
|
169
169
|
.np-fab-menu-block-start .np-fab-menu-list {
|
|
170
170
|
position-area: block-start;
|
|
171
|
-
margin-block-end: 0.
|
|
171
|
+
margin-block-end: 0.5rem;
|
|
172
172
|
flex-direction: column-reverse;
|
|
173
173
|
}
|
|
174
174
|
.np-fab-menu-block-end .np-fab-menu-list {
|
|
175
175
|
position-area: block-end;
|
|
176
|
-
margin-block-start: 0.
|
|
176
|
+
margin-block-start: 0.5rem;
|
|
177
177
|
}
|
|
178
178
|
.np-fab-menu-inline-start .np-fab-menu-list {
|
|
179
179
|
position-area: inline-start;
|
|
180
|
-
margin-inline-end: 0.
|
|
180
|
+
margin-inline-end: 0.5rem;
|
|
181
181
|
flex-direction: row-reverse;
|
|
182
182
|
align-items: center;
|
|
183
183
|
}
|
|
184
184
|
.np-fab-menu-inline-end .np-fab-menu-list {
|
|
185
185
|
position-area: inline-end;
|
|
186
|
-
margin-inline-start: 0.
|
|
186
|
+
margin-inline-start: 0.5rem;
|
|
187
187
|
flex-direction: row;
|
|
188
188
|
align-items: center;
|
|
189
189
|
}
|
package/dist/list/Item.svelte
CHANGED
|
@@ -133,13 +133,12 @@
|
|
|
133
133
|
font-weight: var(--np-navigation-bar-item-font-weight, 500);
|
|
134
134
|
color: var(--np-color-on-surface-variant);
|
|
135
135
|
max-width: 100%;
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
white-space: nowrap;
|
|
136
|
+
text-align: center;
|
|
137
|
+
overflow-wrap: anywhere;
|
|
139
138
|
}
|
|
140
139
|
.np-navigation-bar-item-selected .np-navigation-bar-item-label {
|
|
141
140
|
font-weight: var(--np-navigation-bar-item-selected-font-weight, 500);
|
|
142
|
-
color: var(--np-color-
|
|
141
|
+
color: var(--np-color-secondary);
|
|
143
142
|
}
|
|
144
143
|
|
|
145
144
|
.np-navigation-bar-item-label-selected .np-navigation-bar-item-label {
|
|
@@ -133,7 +133,7 @@
|
|
|
133
133
|
|
|
134
134
|
.np-navigation-action-selected .np-navigation-action-label {
|
|
135
135
|
font-weight: var(--np-navigation-rail-item-selected-font-weight, 500);
|
|
136
|
-
color: var(--np-color-
|
|
136
|
+
color: var(--np-color-secondary);
|
|
137
137
|
}
|
|
138
138
|
.np-touch {
|
|
139
139
|
height: 56px;
|
|
@@ -119,6 +119,7 @@
|
|
|
119
119
|
|
|
120
120
|
<style>
|
|
121
121
|
.np-container {
|
|
122
|
+
--_stroke: var(--np-circular-progress-active-indicator-width, 8.3333);
|
|
122
123
|
all: unset;
|
|
123
124
|
display: inline-flex;
|
|
124
125
|
vertical-align: middle;
|
|
@@ -155,7 +156,7 @@
|
|
|
155
156
|
}
|
|
156
157
|
circle,
|
|
157
158
|
.wave {
|
|
158
|
-
stroke-width: calc(var(--
|
|
159
|
+
stroke-width: calc(var(--_stroke) * 1%);
|
|
159
160
|
stroke-dasharray: 100;
|
|
160
161
|
fill: transparent;
|
|
161
162
|
}
|
|
@@ -163,16 +164,21 @@
|
|
|
163
164
|
circle {
|
|
164
165
|
cx: 50%;
|
|
165
166
|
cy: 50%;
|
|
166
|
-
r: calc(50% * (1 - var(--
|
|
167
|
+
r: calc(50% * (1 - var(--_stroke) / 100));
|
|
167
168
|
transform-box: view-box;
|
|
168
169
|
transform-origin: 50% 50%;
|
|
169
170
|
}
|
|
170
171
|
|
|
171
172
|
.progress {
|
|
172
|
-
--_stroke: var(--np-circular-progress-active-indicator-width, 8.3333);
|
|
173
173
|
--_gap: calc((0.1 + var(--_stroke) / 100) / (3.14159265 * (1 - var(--_stroke) / 100)) * 100);
|
|
174
174
|
}
|
|
175
175
|
|
|
176
|
+
/* The flat ring is drawn 40dp wide inside the 48dp box, so the width is scaled to stay a
|
|
177
|
+
percentage of the full indicator size. */
|
|
178
|
+
.progress:not(.wavy) {
|
|
179
|
+
--_stroke: calc(var(--np-circular-progress-active-indicator-width, 8.3333) * 1.2);
|
|
180
|
+
}
|
|
181
|
+
|
|
176
182
|
.wavy .track {
|
|
177
183
|
r: calc(50% * (1 - var(--_stroke) / 100 - 0.0666667));
|
|
178
184
|
}
|
|
@@ -217,7 +217,7 @@
|
|
|
217
217
|
border-radius: var(--np-linear-progress-track-shape, var(--np-shape-corner-full));
|
|
218
218
|
display: flex;
|
|
219
219
|
position: relative;
|
|
220
|
-
min-width:
|
|
220
|
+
min-width: 40px;
|
|
221
221
|
height: var(--np-linear-progress-track-height, 0.25rem);
|
|
222
222
|
content-visibility: auto;
|
|
223
223
|
contain: strict;
|
package/dist/radio/Radio.svelte
CHANGED
|
@@ -26,7 +26,7 @@
|
|
|
26
26
|
{#if !attributes.disabled}
|
|
27
27
|
<Ripple forElement={inputEl} class="np-radio-ripple" />
|
|
28
28
|
{/if}
|
|
29
|
-
<svg class="np-radio-icon" viewBox="0 0 20 20">
|
|
29
|
+
<svg aria-hidden="true" class="np-radio-icon" viewBox="0 0 20 20">
|
|
30
30
|
<mask id="{uid}-mask">
|
|
31
31
|
<rect width="100%" height="100%" fill="white" />
|
|
32
32
|
<circle cx="10" cy="10" r="8" fill="black" />
|
|
@@ -18,6 +18,7 @@
|
|
|
18
18
|
element = $bindable(),
|
|
19
19
|
'aria-describedby': ariaDescribedby,
|
|
20
20
|
'aria-errormessage': ariaErrormessage,
|
|
21
|
+
'aria-invalid': ariaInvalid,
|
|
21
22
|
...attributes
|
|
22
23
|
}: NativeSelectProps = $props()
|
|
23
24
|
const uid = $props.id()
|
|
@@ -78,6 +79,7 @@
|
|
|
78
79
|
id={selectId}
|
|
79
80
|
bind:value
|
|
80
81
|
{...attributes}
|
|
82
|
+
aria-invalid={errorText ? 'true' : ariaInvalid}
|
|
81
83
|
aria-errormessage={[errorText && `supporting-text-${uid}`, ariaErrormessage]
|
|
82
84
|
.filter(Boolean)
|
|
83
85
|
.join(' ') || undefined}
|
|
@@ -32,10 +32,16 @@
|
|
|
32
32
|
multiple,
|
|
33
33
|
virtualThreshold = 300,
|
|
34
34
|
clampMenuWidth = false,
|
|
35
|
+
'aria-invalid': ariaInvalid,
|
|
36
|
+
'aria-describedby': ariaDescribedby,
|
|
37
|
+
'aria-errormessage': ariaErrormessage,
|
|
35
38
|
...attributes
|
|
36
39
|
}: SelectProps = $props()
|
|
37
40
|
|
|
38
41
|
const uid = $props.id()
|
|
42
|
+
const supportingTextId = `supporting-text-${uid}`
|
|
43
|
+
const ids = (...values: (string | undefined | null | false)[]) =>
|
|
44
|
+
values.filter(Boolean).join(' ') || undefined
|
|
39
45
|
$effect(() => {
|
|
40
46
|
if (value === undefined) {
|
|
41
47
|
if (multiple) {
|
|
@@ -59,6 +65,11 @@
|
|
|
59
65
|
let widthProp = $derived(clampMenuWidth || useVirtualList ? 'width' : 'min-width')
|
|
60
66
|
|
|
61
67
|
let errorText = $derived(issues?.map((i) => i.message).join(', '))
|
|
68
|
+
let ariaProps = $derived({
|
|
69
|
+
'aria-invalid': errorText ? ('true' as const) : ariaInvalid,
|
|
70
|
+
'aria-errormessage': ids(errorText && supportingTextId, ariaErrormessage),
|
|
71
|
+
'aria-describedby': ids(supportingText && !errorText && supportingTextId, ariaDescribedby),
|
|
72
|
+
})
|
|
62
73
|
let selectElement = $state<HTMLSelectElement>()
|
|
63
74
|
let menuElement = $state<HTMLDivElement>()
|
|
64
75
|
let anchorElement = $state<HTMLDivElement>()
|
|
@@ -309,6 +320,7 @@
|
|
|
309
320
|
aria-label={attributes['aria-label'] || label}
|
|
310
321
|
aria-disabled={disabled}
|
|
311
322
|
aria-activedescendant={activeDescendantId}
|
|
323
|
+
{...ariaProps}
|
|
312
324
|
data-testid={attributes['data-testid']}
|
|
313
325
|
bind:this={field}
|
|
314
326
|
autofocus={disabled ? false : autofocus}
|
|
@@ -408,7 +420,6 @@
|
|
|
408
420
|
{#if multiple}
|
|
409
421
|
<select
|
|
410
422
|
tabindex="-1"
|
|
411
|
-
aria-invalid={attributes['aria-invalid']}
|
|
412
423
|
{disabled}
|
|
413
424
|
{required}
|
|
414
425
|
{name}
|
|
@@ -429,7 +440,6 @@
|
|
|
429
440
|
{:else}
|
|
430
441
|
<select
|
|
431
442
|
tabindex="-1"
|
|
432
|
-
aria-invalid={attributes['aria-invalid']}
|
|
433
443
|
{disabled}
|
|
434
444
|
{required}
|
|
435
445
|
{name}
|
|
@@ -464,7 +474,7 @@
|
|
|
464
474
|
</div>
|
|
465
475
|
</div>
|
|
466
476
|
{#if supportingText || errorText}
|
|
467
|
-
<div class="supporting-text" role={errorText ? 'alert' : undefined}>
|
|
477
|
+
<div id={supportingTextId} class="supporting-text" role={errorText ? 'alert' : undefined}>
|
|
468
478
|
<span>
|
|
469
479
|
{errorText ?? supportingText}
|
|
470
480
|
</span>
|
|
@@ -580,10 +590,10 @@
|
|
|
580
590
|
border-bottom-color: var(--np-color-primary);
|
|
581
591
|
border-bottom-width: 3px;
|
|
582
592
|
}
|
|
583
|
-
.field:
|
|
593
|
+
.field:is([aria-invalid='true'], :has(select:user-invalid)) .active-indicator::before {
|
|
584
594
|
border-bottom-color: var(--np-color-error);
|
|
585
595
|
}
|
|
586
|
-
.field:
|
|
596
|
+
.field:is([aria-invalid='true'], :has(select:user-invalid)) .active-indicator::after {
|
|
587
597
|
border-bottom-color: var(--np-color-error);
|
|
588
598
|
}
|
|
589
599
|
.disabled .active-indicator::before {
|
|
@@ -681,7 +691,7 @@
|
|
|
681
691
|
justify-content: space-between;
|
|
682
692
|
padding: 0.25rem 1rem 0;
|
|
683
693
|
}
|
|
684
|
-
.field:
|
|
694
|
+
.field:is([aria-invalid='true'], :has(select:user-invalid)) .supporting-text {
|
|
685
695
|
color: var(--np-color-error);
|
|
686
696
|
}
|
|
687
697
|
.disabled .supporting-text {
|
|
@@ -810,8 +820,7 @@
|
|
|
810
820
|
margin-inline-start: 1rem;
|
|
811
821
|
margin-inline-end: 0.75rem;
|
|
812
822
|
}
|
|
813
|
-
.field:
|
|
814
|
-
.field:has(select:is(:user-invalid, [aria-invalid='true'])) .end {
|
|
823
|
+
.field:is([aria-invalid='true'], :has(select:user-invalid)) .end {
|
|
815
824
|
color: var(--np-color-error);
|
|
816
825
|
}
|
|
817
826
|
.disabled .start,
|
|
@@ -928,15 +937,13 @@
|
|
|
928
937
|
.field:focus .label {
|
|
929
938
|
color: var(--np-color-primary);
|
|
930
939
|
}
|
|
931
|
-
.field:
|
|
932
|
-
.field:
|
|
933
|
-
.field:
|
|
940
|
+
.field:is([aria-invalid='true'], :has(select:user-invalid)) .label,
|
|
941
|
+
.field:is([aria-invalid='true'], :has(select:user-invalid)).menu-open .label,
|
|
942
|
+
.field:is([aria-invalid='true'], :has(select:user-invalid)):focus .label {
|
|
934
943
|
color: var(--np-color-error);
|
|
935
944
|
}
|
|
936
945
|
.disabled .label {
|
|
937
946
|
color: var(--np-color-on-surface);
|
|
938
|
-
}
|
|
939
|
-
.disabled {
|
|
940
947
|
opacity: 0.38;
|
|
941
948
|
}
|
|
942
949
|
.resizable:not(.disabled) .np-container {
|
|
@@ -1079,16 +1086,28 @@
|
|
|
1079
1086
|
z-index: 1;
|
|
1080
1087
|
}
|
|
1081
1088
|
|
|
1089
|
+
.field:not(.disabled, .menu-open, :focus):hover .np-outline {
|
|
1090
|
+
border-color: var(--np-color-on-surface);
|
|
1091
|
+
color: var(--np-color-on-surface);
|
|
1092
|
+
}
|
|
1082
1093
|
.field.menu-open .np-outline,
|
|
1083
1094
|
.field:focus .np-outline {
|
|
1084
1095
|
border-color: var(--np-color-primary);
|
|
1085
1096
|
color: var(--np-color-primary);
|
|
1086
1097
|
}
|
|
1087
|
-
.field:
|
|
1088
|
-
.field:
|
|
1089
|
-
.field:
|
|
1098
|
+
.field:is([aria-invalid='true'], :has(select:user-invalid)) .np-outline,
|
|
1099
|
+
.field:is([aria-invalid='true'], :has(select:user-invalid)).menu-open .np-outline,
|
|
1100
|
+
.field:is([aria-invalid='true'], :has(select:user-invalid)):focus .np-outline {
|
|
1090
1101
|
border-color: var(--np-color-error);
|
|
1091
1102
|
}
|
|
1103
|
+
.field:is([aria-invalid='true'], :has(select:user-invalid)):not(
|
|
1104
|
+
.disabled,
|
|
1105
|
+
.menu-open,
|
|
1106
|
+
:focus
|
|
1107
|
+
):hover
|
|
1108
|
+
.np-outline {
|
|
1109
|
+
border-color: var(--np-color-on-error-container);
|
|
1110
|
+
}
|
|
1092
1111
|
.disabled .np-outline {
|
|
1093
1112
|
border-color: var(--np-color-on-surface);
|
|
1094
1113
|
color: var(--np-color-on-surface);
|
package/dist/sheet/Sheet.svelte
CHANGED
|
@@ -108,6 +108,8 @@
|
|
|
108
108
|
max-height: var(--np-sheet-size, 50dvh);
|
|
109
109
|
}
|
|
110
110
|
.np-sheet-bottom {
|
|
111
|
+
max-width: var(--np-sheet-max-width, 40rem);
|
|
112
|
+
margin-inline: auto;
|
|
111
113
|
inset-block-end: 0;
|
|
112
114
|
inset-block-start: auto;
|
|
113
115
|
border-start-start-radius: var(--np-sheet-shape, var(--np-shape-corner-extra-large));
|
|
@@ -139,21 +141,26 @@
|
|
|
139
141
|
border-start-start-radius: var(--np-sheet-shape, var(--np-shape-corner-large));
|
|
140
142
|
border-end-start-radius: var(--np-sheet-shape, var(--np-shape-corner-large));
|
|
141
143
|
}
|
|
144
|
+
.np-sheet-start:not(.np-sheet-modal),
|
|
145
|
+
.np-sheet-end:not(.np-sheet-modal) {
|
|
146
|
+
background-color: var(--np-sheet-container-color, var(--np-color-surface));
|
|
147
|
+
border-radius: var(--np-sheet-shape, 0);
|
|
148
|
+
}
|
|
142
149
|
|
|
143
150
|
.np-sheet-handle {
|
|
144
151
|
flex: none;
|
|
145
152
|
width: 2rem;
|
|
146
153
|
height: 0.25rem;
|
|
147
|
-
margin:
|
|
154
|
+
margin: 1.375rem auto;
|
|
148
155
|
border-radius: var(--np-shape-corner-full);
|
|
149
|
-
background-color: var(--np-sheet-handle-color, var(--np-color-
|
|
156
|
+
background-color: var(--np-sheet-handle-color, var(--np-color-on-surface-variant));
|
|
150
157
|
}
|
|
151
158
|
|
|
152
159
|
.np-sheet-header {
|
|
153
160
|
flex: none;
|
|
154
161
|
display: flex;
|
|
155
162
|
align-items: center;
|
|
156
|
-
gap: 0.
|
|
163
|
+
gap: 0.75rem;
|
|
157
164
|
padding: 1rem 1.5rem 0;
|
|
158
165
|
}
|
|
159
166
|
.np-sheet-headline {
|
|
@@ -163,6 +170,10 @@
|
|
|
163
170
|
line-height: 2rem;
|
|
164
171
|
font-weight: 400;
|
|
165
172
|
}
|
|
173
|
+
.np-sheet-start .np-sheet-headline,
|
|
174
|
+
.np-sheet-end .np-sheet-headline {
|
|
175
|
+
color: var(--np-color-on-surface-variant);
|
|
176
|
+
}
|
|
166
177
|
.np-sheet-action {
|
|
167
178
|
flex: none;
|
|
168
179
|
display: flex;
|
|
@@ -171,6 +182,7 @@
|
|
|
171
182
|
.np-sheet-content {
|
|
172
183
|
flex: 1;
|
|
173
184
|
min-height: 0;
|
|
185
|
+
overflow-x: hidden;
|
|
174
186
|
overflow-y: auto;
|
|
175
187
|
overscroll-behavior: contain;
|
|
176
188
|
padding: 1rem 1.5rem 1.5rem;
|
|
@@ -391,6 +391,7 @@
|
|
|
391
391
|
}
|
|
392
392
|
.np-slider.np-size-m {
|
|
393
393
|
--_size-track-height: 2.5rem;
|
|
394
|
+
--_size-handle-height: 3.25rem;
|
|
394
395
|
--_size-corner: 0.75rem;
|
|
395
396
|
}
|
|
396
397
|
.np-slider.np-size-l {
|
|
@@ -614,9 +615,9 @@
|
|
|
614
615
|
flex: none;
|
|
615
616
|
writing-mode: horizontal-tb;
|
|
616
617
|
direction: ltr;
|
|
617
|
-
min-inline-size:
|
|
618
|
+
min-inline-size: 3rem;
|
|
618
619
|
box-sizing: border-box;
|
|
619
|
-
padding: 0.
|
|
620
|
+
padding: 0.75rem 1rem;
|
|
620
621
|
border-radius: var(--np-shape-corner-full);
|
|
621
622
|
background: var(--np-slider-label-container-color, var(--np-color-inverse-surface));
|
|
622
623
|
color: var(--np-slider-label-text-color, var(--np-color-inverse-on-surface));
|
|
@@ -48,7 +48,7 @@
|
|
|
48
48
|
{popover}
|
|
49
49
|
class={['np-snackbar', attributes.class]}
|
|
50
50
|
bind:this={element}
|
|
51
|
-
role="
|
|
51
|
+
role="status"
|
|
52
52
|
aria-labelledby="np-snackbar-label-{uid}"
|
|
53
53
|
onpointerenter={() => (hovered = true)}
|
|
54
54
|
onpointerleave={() => (hovered = false)}
|
|
@@ -103,9 +103,12 @@
|
|
|
103
103
|
padding: 0.875rem 1rem;
|
|
104
104
|
}
|
|
105
105
|
.np-snackbar-label {
|
|
106
|
+
display: -webkit-box;
|
|
107
|
+
-webkit-box-orient: vertical;
|
|
108
|
+
-webkit-line-clamp: 2;
|
|
109
|
+
line-clamp: 2;
|
|
106
110
|
overflow: hidden;
|
|
107
|
-
|
|
108
|
-
text-wrap: nowrap;
|
|
111
|
+
overflow-wrap: anywhere;
|
|
109
112
|
}
|
|
110
113
|
.np-snackbar-inner {
|
|
111
114
|
display: flex;
|
|
@@ -30,7 +30,7 @@
|
|
|
30
30
|
<div class="np-track"></div>
|
|
31
31
|
<div class={['np-handle', icons === 'both' && 'both-icons']}>
|
|
32
32
|
{#if icons}
|
|
33
|
-
<svg class="np-switch-icon np-icon-selected" viewBox="0 0 24 24">
|
|
33
|
+
<svg aria-hidden="true" class="np-switch-icon np-icon-selected" viewBox="0 0 24 24">
|
|
34
34
|
<path
|
|
35
35
|
d="M20 6L9 17l-5-5"
|
|
36
36
|
fill="none"
|
|
@@ -42,7 +42,7 @@
|
|
|
42
42
|
</svg>
|
|
43
43
|
{/if}
|
|
44
44
|
{#if icons === 'both'}
|
|
45
|
-
<svg class="np-switch-icon np-icon-unselected" viewBox="0 0 24 24">
|
|
45
|
+
<svg aria-hidden="true" class="np-switch-icon np-icon-unselected" viewBox="0 0 24 24">
|
|
46
46
|
<path
|
|
47
47
|
fill="currentColor"
|
|
48
48
|
d="M19 6.41L17.59 5 12 10.59 6.41 5 5 6.41 10.59 12 5 17.59 6.41 19 12 13.41 17.59 19 19 17.59 13.41 12z"
|
|
@@ -75,6 +75,7 @@
|
|
|
75
75
|
|
|
76
76
|
<style>
|
|
77
77
|
.np-switch {
|
|
78
|
+
--_travel: 1.25rem;
|
|
78
79
|
position: relative;
|
|
79
80
|
width: 3.25rem;
|
|
80
81
|
height: 2rem;
|
|
@@ -104,6 +105,10 @@
|
|
|
104
105
|
outline-offset: -0.125rem;
|
|
105
106
|
}
|
|
106
107
|
|
|
108
|
+
.np-switch:dir(rtl) {
|
|
109
|
+
--_travel: -1.25rem;
|
|
110
|
+
}
|
|
111
|
+
|
|
107
112
|
.np-handle {
|
|
108
113
|
position: absolute;
|
|
109
114
|
color: var(--np-color-surface-container-highest);
|
|
@@ -132,7 +137,7 @@
|
|
|
132
137
|
}
|
|
133
138
|
|
|
134
139
|
.np-switch:has(input:checked) .np-state-layer {
|
|
135
|
-
transform: translateX(
|
|
140
|
+
transform: translateX(var(--_travel));
|
|
136
141
|
}
|
|
137
142
|
|
|
138
143
|
.np-switch input {
|
|
@@ -160,11 +165,11 @@
|
|
|
160
165
|
}
|
|
161
166
|
|
|
162
167
|
.np-switch:not(.np-disabled):has(input:checked:active) .np-handle {
|
|
163
|
-
transform: translateX(
|
|
168
|
+
transform: translateX(var(--_travel)) scale(1.75);
|
|
164
169
|
}
|
|
165
170
|
|
|
166
171
|
.np-switch:has(input:checked) .np-handle {
|
|
167
|
-
transform: translateX(
|
|
172
|
+
transform: translateX(var(--_travel)) scale(1.5);
|
|
168
173
|
color: var(--np-switch-selected-icon-color, var(--np-color-primary));
|
|
169
174
|
background-color: var(--np-switch-selected-handle-color, var(--np-color-on-primary));
|
|
170
175
|
}
|
|
@@ -196,7 +201,7 @@
|
|
|
196
201
|
}
|
|
197
202
|
|
|
198
203
|
.np-error:has(input:checked) .np-switch-icon {
|
|
199
|
-
|
|
204
|
+
color: var(--np-color-error);
|
|
200
205
|
}
|
|
201
206
|
|
|
202
207
|
.np-error {
|
package/dist/tabs/Tab.svelte
CHANGED
|
@@ -57,6 +57,7 @@
|
|
|
57
57
|
--np-elevation-1: rgba(0, 0, 0, 0.3) 0px 1px 2px 0px, rgba(0, 0, 0, 0.15) 0px 1px 3px 1px;
|
|
58
58
|
--np-elevation-2: rgba(0, 0, 0, 0.3) 0px 1px 2px 0px, rgba(0, 0, 0, 0.15) 0px 2px 6px 2px;
|
|
59
59
|
--np-elevation-3: rgba(0, 0, 0, 0.3) 0px 1px 3px 0px, rgba(0, 0, 0, 0.15) 0px 4px 8px 3px;
|
|
60
|
+
--np-elevation-4: rgba(0, 0, 0, 0.3) 0px 2px 3px 0px, rgba(0, 0, 0, 0.15) 0px 6px 10px 4px;
|
|
60
61
|
|
|
61
62
|
/* Motion: Expressive spatial */
|
|
62
63
|
--np-motion-expressive-fast-spatial: 350ms cubic-bezier(0.42, 1.67, 0.21, 0.9);
|
|
@@ -60,7 +60,7 @@
|
|
|
60
60
|
.np-period-selector.vertical {
|
|
61
61
|
flex-direction: column;
|
|
62
62
|
width: 3.25rem;
|
|
63
|
-
height: 5rem;
|
|
63
|
+
height: var(--np-time-picker-period-selector-height, 5rem);
|
|
64
64
|
flex: none;
|
|
65
65
|
}
|
|
66
66
|
|
|
@@ -100,10 +100,7 @@
|
|
|
100
100
|
font-size: 1rem;
|
|
101
101
|
line-height: 1.5rem;
|
|
102
102
|
font-weight: 500;
|
|
103
|
-
color: var(
|
|
104
|
-
--np-time-picker-period-selector-unselected-label-color,
|
|
105
|
-
var(--np-color-on-surface-variant)
|
|
106
|
-
);
|
|
103
|
+
color: var(--np-time-picker-period-selector-unselected-label-color, var(--np-color-on-surface));
|
|
107
104
|
}
|
|
108
105
|
|
|
109
106
|
.np-period-option.selected {
|
|
@@ -40,6 +40,8 @@
|
|
|
40
40
|
|
|
41
41
|
// A 24-hour dial has no period selector, so its fields take the room that frees up.
|
|
42
42
|
let fieldWidth = $derived(!hour12 && !horizontal ? '7.125rem' : '6rem')
|
|
43
|
+
// The period selector matches the 72dp input fields in input mode.
|
|
44
|
+
let periodHeight = $derived(mode === 'input' ? '4.5rem' : '5rem')
|
|
43
45
|
|
|
44
46
|
// Bounds can put a whole half of the day out of reach, and then that half cannot be chosen.
|
|
45
47
|
let amReachable = $derived([...Array(12).keys()].some((hour) => state.hourReachable(hour)))
|
|
@@ -54,7 +56,7 @@
|
|
|
54
56
|
<div
|
|
55
57
|
{...attributes}
|
|
56
58
|
class={['np-time-picker', horizontal && 'np-horizontal', attributes.class]}
|
|
57
|
-
style="--np-time-picker-time-selector-container-width: {fieldWidth}"
|
|
59
|
+
style="--np-time-picker-time-selector-container-width: {fieldWidth}; --np-time-picker-period-selector-height: {periodHeight}"
|
|
58
60
|
>
|
|
59
61
|
{#if headline}
|
|
60
62
|
<div id={headlineId} class="np-time-picker-headline">{headline}</div>
|
|
@@ -46,7 +46,9 @@
|
|
|
46
46
|
.np-toolbar {
|
|
47
47
|
display: flex;
|
|
48
48
|
align-items: center;
|
|
49
|
+
justify-content: center;
|
|
49
50
|
box-sizing: border-box;
|
|
51
|
+
min-height: 4rem;
|
|
50
52
|
gap: var(--np-toolbar-gap, 0.25rem);
|
|
51
53
|
color: var(--np-toolbar-color, var(--np-color-on-surface));
|
|
52
54
|
--np-icon-button-icon-color: var(--np-toolbar-color, var(--np-color-on-surface-variant));
|
|
@@ -54,6 +56,8 @@
|
|
|
54
56
|
|
|
55
57
|
.np-toolbar-vertical {
|
|
56
58
|
flex-direction: column;
|
|
59
|
+
min-height: 0;
|
|
60
|
+
min-width: 4rem;
|
|
57
61
|
--np-tooltip-position-area: inline-end;
|
|
58
62
|
--np-tooltip-justify-self: auto;
|
|
59
63
|
--np-tooltip-align-self: anchor-center;
|
|
@@ -68,17 +72,13 @@
|
|
|
68
72
|
|
|
69
73
|
.np-toolbar-docked {
|
|
70
74
|
width: 100%;
|
|
71
|
-
|
|
72
|
-
justify-content: center;
|
|
73
|
-
padding-inline: 0.5rem;
|
|
75
|
+
padding-inline: 1rem;
|
|
74
76
|
background-color: var(--np-toolbar-container-color, var(--np-color-surface-container));
|
|
75
77
|
padding-block-end: max(0px, env(safe-area-inset-bottom));
|
|
76
78
|
}
|
|
77
79
|
.np-toolbar-docked.np-toolbar-vertical {
|
|
78
80
|
width: auto;
|
|
79
81
|
height: 100%;
|
|
80
|
-
min-height: 0;
|
|
81
|
-
min-width: 4rem;
|
|
82
82
|
padding-block: 0.5rem;
|
|
83
83
|
padding-inline: 0;
|
|
84
84
|
}
|
|
@@ -106,10 +106,10 @@
|
|
|
106
106
|
margin-block: auto;
|
|
107
107
|
}
|
|
108
108
|
.np-toolbar-start {
|
|
109
|
-
inset-inline-start: var(--np-toolbar-inset,
|
|
109
|
+
inset-inline-start: var(--np-toolbar-inset, 1.5rem);
|
|
110
110
|
}
|
|
111
111
|
.np-toolbar-end {
|
|
112
|
-
inset-inline-end: var(--np-toolbar-inset,
|
|
112
|
+
inset-inline-end: var(--np-toolbar-inset, 1.5rem);
|
|
113
113
|
margin-inline-start: auto;
|
|
114
114
|
}
|
|
115
115
|
|