ngx-view-builder 0.0.1 → 0.1.1

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.
@@ -0,0 +1,618 @@
1
+ .nvb-root {
2
+ --nvb-control-height: 40px;
3
+ --nvb-control-height-sm: 32px;
4
+ --nvb-control-padding-x: 12px;
5
+ --nvb-control-font-size: 14px;
6
+ --nvb-control-font-weight: 400;
7
+ --nvb-control-radius: var(--radius-md);
8
+ --nvb-input-height: 40px;
9
+ --nvb-input-padding-x: 12px;
10
+ --nvb-input-font-size: 14px;
11
+ --nvb-input-radius: var(--radius-md);
12
+ --nvb-input-border-width: 1px;
13
+ --nvb-input-border-color: var(--color-neutral-300);
14
+ --nvb-input-bg: var(--color-neutral-000);
15
+ --nvb-input-text-color: var(--color-neutral-800);
16
+ --nvb-input-placeholder-color: var(--color-neutral-500);
17
+ --nvb-input-focus-border-color: var(--color-primary-500);
18
+ --nvb-input-disabled-bg: var(--color-neutral-100);
19
+ --nvb-input-disabled-text-color: var(--color-neutral-500);
20
+ --nvb-input-error-border-color: var(--color-risk-500);
21
+ --nvb-input-error-focus-border-color: var(--color-risk-600);
22
+ --nvb-textarea-min-height: 120px;
23
+ --nvb-textarea-padding-x: 12px;
24
+ --nvb-textarea-padding-y: 12px;
25
+ --nvb-control-button-border-width: 1px;
26
+ --nvb-control-button-border-color: var(--color-neutral-300);
27
+ --nvb-control-button-bg: var(--color-neutral-000);
28
+ --nvb-control-button-text-color: var(--color-primary-700);
29
+ --nvb-control-button-hover-border-color: var(--color-primary-300);
30
+ --nvb-control-button-hover-bg: color-mix(
31
+ in oklab,
32
+ var(--color-primary-050) 40%,
33
+ var(--color-neutral-000)
34
+ );
35
+ --nvb-control-button-hover-text-color: var(--color-primary-800);
36
+ --nvb-checkbox-size: 18px;
37
+ --nvb-checkbox-border-width: 1.5px;
38
+ --nvb-checkbox-radius: var(--radius-sm);
39
+ --nvb-checkbox-border-color: var(--color-neutral-300);
40
+ --nvb-checkbox-bg: var(--color-neutral-000);
41
+ --nvb-checkbox-checked-bg: var(--color-primary-500);
42
+ --nvb-checkbox-checked-border-color: var(--color-primary-500);
43
+ --nvb-checkbox-check-color: var(--color-neutral-000);
44
+ --nvb-checkbox-disabled-bg: var(--color-neutral-100);
45
+ --nvb-checkbox-disabled-opacity: 0.5;
46
+ --nvb-radio-size: 18px;
47
+ --nvb-radio-border-width: 1.5px;
48
+ --nvb-radio-border-color: var(--color-neutral-300);
49
+ --nvb-radio-bg: var(--color-neutral-000);
50
+ --nvb-radio-checked-border-color: var(--color-primary-500);
51
+ --nvb-radio-dot-size: 8px;
52
+ --nvb-radio-dot-color: var(--color-primary-500);
53
+ --nvb-radio-disabled-bg: var(--color-neutral-100);
54
+ --nvb-radio-disabled-opacity: 0.5;
55
+ --nvb-focus-ring:
56
+ 0 0 0 1px var(--color-neutral-000),
57
+ 0 0 0 3px color-mix(in oklab, var(--color-primary-400) 55%, transparent);
58
+ --nvb-font-family: var(
59
+ --nvb-font-family-base,
60
+ 'Segoe UI Variable Text',
61
+ 'Segoe UI',
62
+ system-ui,
63
+ -apple-system,
64
+ BlinkMacSystemFont,
65
+ 'Helvetica Neue',
66
+ sans-serif
67
+ );
68
+
69
+ font-family: var(--nvb-font-family);
70
+ color: var(--color-text-800);
71
+ }
72
+
73
+ :where(
74
+ .nvb-root input[type='text'],
75
+ .nvb-root input[type='number'],
76
+ .nvb-root input[type='email'],
77
+ .nvb-root input[type='search'],
78
+ .nvb-root input[type='tel'],
79
+ .nvb-root input[type='url'],
80
+ .nvb-root input[type='password'],
81
+ .nvb-root input[type='date'],
82
+ .nvb-root input[type='datetime-local'],
83
+ .nvb-root input[type='month'],
84
+ .nvb-root input[type='time'],
85
+ .nvb-root input[type='week'],
86
+ .nvb-root select,
87
+ .nvb-root textarea
88
+ ) {
89
+ border: var(--nvb-input-border-width) solid var(--nvb-input-border-color);
90
+ border-radius: var(--nvb-input-radius);
91
+ background: var(--nvb-input-bg);
92
+ color: var(--nvb-input-text-color);
93
+ font-family: var(--nvb-font-family);
94
+ font-size: var(--nvb-input-font-size);
95
+ line-height: 20px;
96
+ box-shadow: none;
97
+ transition:
98
+ border-color 0.16s ease,
99
+ background-color 0.16s ease,
100
+ box-shadow 0.16s ease;
101
+ }
102
+
103
+ :where(
104
+ .nvb-root input[type='text'],
105
+ .nvb-root input[type='number'],
106
+ .nvb-root input[type='email'],
107
+ .nvb-root input[type='search'],
108
+ .nvb-root input[type='tel'],
109
+ .nvb-root input[type='url'],
110
+ .nvb-root input[type='password'],
111
+ .nvb-root input[type='date'],
112
+ .nvb-root input[type='datetime-local'],
113
+ .nvb-root input[type='month'],
114
+ .nvb-root input[type='time'],
115
+ .nvb-root input[type='week'],
116
+ .nvb-root select
117
+ ) {
118
+ min-height: var(--nvb-input-height);
119
+ padding: 0 var(--nvb-input-padding-x);
120
+ }
121
+
122
+ :where(.nvb-root textarea) {
123
+ min-height: var(--nvb-textarea-min-height);
124
+ padding: var(--nvb-textarea-padding-y) var(--nvb-textarea-padding-x);
125
+ resize: vertical;
126
+ }
127
+
128
+ :where(
129
+ .nvb-root input[type='text']:focus,
130
+ .nvb-root input[type='number']:focus,
131
+ .nvb-root input[type='email']:focus,
132
+ .nvb-root input[type='search']:focus,
133
+ .nvb-root input[type='tel']:focus,
134
+ .nvb-root input[type='url']:focus,
135
+ .nvb-root input[type='password']:focus,
136
+ .nvb-root input[type='date']:focus,
137
+ .nvb-root input[type='datetime-local']:focus,
138
+ .nvb-root input[type='month']:focus,
139
+ .nvb-root input[type='time']:focus,
140
+ .nvb-root input[type='week']:focus,
141
+ .nvb-root select:focus,
142
+ .nvb-root textarea:focus
143
+ ) {
144
+ border-color: var(--nvb-input-focus-border-color);
145
+ box-shadow: var(--nvb-focus-ring);
146
+ outline: 0;
147
+ }
148
+
149
+ :where(.nvb-root input::placeholder, .nvb-root textarea::placeholder) {
150
+ color: var(--nvb-input-placeholder-color);
151
+ opacity: 1;
152
+ }
153
+
154
+ :where(
155
+ .nvb-root input[type='text']:disabled,
156
+ .nvb-root input[type='number']:disabled,
157
+ .nvb-root input[type='email']:disabled,
158
+ .nvb-root input[type='search']:disabled,
159
+ .nvb-root input[type='tel']:disabled,
160
+ .nvb-root input[type='url']:disabled,
161
+ .nvb-root input[type='password']:disabled,
162
+ .nvb-root input[type='date']:disabled,
163
+ .nvb-root input[type='datetime-local']:disabled,
164
+ .nvb-root input[type='month']:disabled,
165
+ .nvb-root input[type='time']:disabled,
166
+ .nvb-root input[type='week']:disabled,
167
+ .nvb-root select:disabled,
168
+ .nvb-root textarea:disabled
169
+ ) {
170
+ background-color: var(--nvb-input-disabled-bg);
171
+ color: var(--nvb-input-disabled-text-color);
172
+ cursor: not-allowed;
173
+ }
174
+
175
+ .nvb-root [data-nvb-icon-rendered='true'] {
176
+ display: inline-flex;
177
+ align-items: center;
178
+ justify-content: center;
179
+ line-height: 1;
180
+ vertical-align: middle;
181
+ }
182
+
183
+ .nvb-root span[data-nvb-icon-rendered='true'] {
184
+ width: 1em;
185
+ height: 1em;
186
+ flex-shrink: 0;
187
+ }
188
+
189
+ .nvb-root [data-nvb-icon-rendered='true'] > svg {
190
+ width: 1em;
191
+ height: 1em;
192
+ display: block;
193
+ fill: currentColor;
194
+ }
195
+
196
+ .nvb-root .nvb-control__text-input,
197
+ .nvb-root .nvb-control__attribute-input,
198
+ .nvb-root .nvb-control__column-input {
199
+ display: block;
200
+ box-sizing: border-box;
201
+ width: 100%;
202
+ min-height: var(--nvb-input-height);
203
+ padding: 0 var(--nvb-input-padding-x);
204
+ font-size: var(--nvb-input-font-size);
205
+ line-height: 1.4;
206
+ color: var(--nvb-input-text-color);
207
+ border-radius: var(--nvb-input-radius);
208
+ outline: none;
209
+ font-family: var(--nvb-font-family);
210
+ box-shadow: none;
211
+ transition:
212
+ border-color 0.16s ease,
213
+ box-shadow 0.16s ease,
214
+ background-color 0.16s ease;
215
+ }
216
+
217
+ .nvb-root .nvb-control__text-input,
218
+ .nvb-root .nvb-control__attribute-input {
219
+ border: var(--nvb-input-border-width) solid var(--nvb-input-border-color);
220
+ background-color: var(--nvb-input-bg);
221
+ }
222
+
223
+ .nvb-root .nvb-control__column-input {
224
+ border: var(--nvb-input-border-width) solid transparent;
225
+ background-color: var(--nvb-input-bg);
226
+ }
227
+
228
+ .nvb-root .nvb-control__text-input:focus,
229
+ .nvb-root .nvb-control__attribute-input:focus,
230
+ .nvb-root .nvb-control__column-input:focus {
231
+ border-color: var(--nvb-input-focus-border-color);
232
+ box-shadow: var(--nvb-focus-ring);
233
+ }
234
+
235
+ .nvb-root .field--has-errors .nvb-control__text-input,
236
+ .nvb-root .field--has-errors .nvb-control__attribute-input,
237
+ .nvb-root .field--has-errors .nvb-control__column-input,
238
+ .nvb-root .field--has-errors input[type='text'],
239
+ .nvb-root .field--has-errors input[type='number'],
240
+ .nvb-root .field--has-errors input[type='email'],
241
+ .nvb-root .field--has-errors input[type='search'],
242
+ .nvb-root .field--has-errors input[type='tel'],
243
+ .nvb-root .field--has-errors input[type='url'],
244
+ .nvb-root .field--has-errors input[type='password'],
245
+ .nvb-root .field--has-errors select,
246
+ .nvb-root .field--has-errors textarea {
247
+ border-color: var(--nvb-input-error-border-color);
248
+ }
249
+
250
+ .nvb-root .field--has-errors .nvb-control__text-input:focus,
251
+ .nvb-root .field--has-errors .nvb-control__attribute-input:focus,
252
+ .nvb-root .field--has-errors .nvb-control__column-input:focus,
253
+ .nvb-root .field--has-errors input[type='text']:focus,
254
+ .nvb-root .field--has-errors input[type='number']:focus,
255
+ .nvb-root .field--has-errors input[type='email']:focus,
256
+ .nvb-root .field--has-errors input[type='search']:focus,
257
+ .nvb-root .field--has-errors input[type='tel']:focus,
258
+ .nvb-root .field--has-errors input[type='url']:focus,
259
+ .nvb-root .field--has-errors input[type='password']:focus,
260
+ .nvb-root .field--has-errors select:focus,
261
+ .nvb-root .field--has-errors textarea:focus {
262
+ border-color: var(--nvb-input-error-focus-border-color);
263
+ }
264
+
265
+ .nvb-root .field--has-errors .nvb-control__checkbox-input,
266
+ .nvb-root .field--has-errors .nvb-control__radio-input {
267
+ border-color: var(--nvb-input-error-border-color);
268
+ }
269
+
270
+ .nvb-root .nvb-control__column-input:disabled {
271
+ background-color: var(--nvb-input-disabled-bg);
272
+ color: var(--nvb-input-disabled-text-color);
273
+ cursor: not-allowed;
274
+ }
275
+
276
+ .nvb-root
277
+ :where(
278
+ .page,
279
+ .page__content,
280
+ .panel,
281
+ .panel__body,
282
+ .panel__content,
283
+ .row,
284
+ .row-content,
285
+ .column,
286
+ .field,
287
+ .field__content,
288
+ select-element,
289
+ multi-select-element,
290
+ autocomplete-element,
291
+ datepicker-element,
292
+ date-range-element,
293
+ phone-input-element,
294
+ nvb-select
295
+ ):has(
296
+ :where(
297
+ .select-container--open,
298
+ .multi-select-container--open,
299
+ .nvb-autocomplete--open,
300
+ .nvb-datepicker--open,
301
+ .nvb-date-range--open,
302
+ .nvb-select__control--open
303
+ )
304
+ ) {
305
+ position: relative;
306
+ z-index: var(--nvb-floating-overlay-container-z-index, 2147482990);
307
+ overflow: visible;
308
+ }
309
+
310
+ .nvb-root textarea.nvb-control__attribute-input,
311
+ .nvb-root textarea.nvb-control__text-input,
312
+ .nvb-root textarea.nvb-control__column-input {
313
+ min-height: var(--nvb-textarea-min-height);
314
+ padding: var(--nvb-textarea-padding-y) var(--nvb-textarea-padding-x);
315
+ line-height: 1.35;
316
+ }
317
+
318
+ .nvb-root .nvb-control__checkbox-input {
319
+ appearance: none;
320
+ -webkit-appearance: none;
321
+ -moz-appearance: none;
322
+ width: var(--nvb-checkbox-size);
323
+ min-width: var(--nvb-checkbox-size);
324
+ height: var(--nvb-checkbox-size);
325
+ min-height: var(--nvb-checkbox-size);
326
+ border: var(--nvb-checkbox-border-width) solid var(--nvb-checkbox-border-color);
327
+ border-radius: var(--nvb-checkbox-radius);
328
+ position: relative;
329
+ display: inline-block;
330
+ vertical-align: middle;
331
+ background-color: var(--nvb-checkbox-bg);
332
+ cursor: pointer;
333
+ margin: 0;
334
+ padding: 0;
335
+ transition:
336
+ border-color 0.14s ease,
337
+ background-color 0.14s ease,
338
+ box-shadow 0.14s ease;
339
+ }
340
+
341
+ .nvb-root .nvb-control__checkbox-input:hover {
342
+ border-color: var(--nvb-checkbox-checked-border-color);
343
+ }
344
+
345
+ .nvb-root .nvb-control__checkbox-input:focus-visible {
346
+ outline: 0;
347
+ box-shadow: var(--nvb-focus-ring);
348
+ }
349
+
350
+ .nvb-root .nvb-control__checkbox-input:checked {
351
+ background-color: var(--nvb-checkbox-checked-bg);
352
+ border-color: var(--nvb-checkbox-checked-border-color);
353
+ }
354
+
355
+ .nvb-root .nvb-control__checkbox-input:checked::after {
356
+ content: '';
357
+ position: absolute;
358
+ left: 50%;
359
+ top: 45%;
360
+ width: 5px;
361
+ height: 8px;
362
+ border: solid var(--nvb-checkbox-check-color);
363
+ border-width: 0 2px 2px 0;
364
+ transform: translate(-50%, -50%) rotate(45deg);
365
+ transform-origin: center;
366
+ }
367
+
368
+ .nvb-root .nvb-control__checkbox-input:disabled {
369
+ cursor: not-allowed;
370
+ opacity: var(--nvb-checkbox-disabled-opacity);
371
+ background-color: var(--nvb-checkbox-disabled-bg);
372
+ }
373
+
374
+ .nvb-root .nvb-control__radio-input {
375
+ appearance: none;
376
+ -webkit-appearance: none;
377
+ -moz-appearance: none;
378
+ width: var(--nvb-radio-size);
379
+ min-width: var(--nvb-radio-size);
380
+ height: var(--nvb-radio-size);
381
+ min-height: var(--nvb-radio-size);
382
+ border: var(--nvb-radio-border-width) solid var(--nvb-radio-border-color);
383
+ border-radius: 50%;
384
+ position: relative;
385
+ display: inline-block;
386
+ vertical-align: middle;
387
+ background-color: var(--nvb-radio-bg);
388
+ cursor: pointer;
389
+ margin: 0;
390
+ padding: 0;
391
+ transition:
392
+ border-color 0.14s ease,
393
+ background-color 0.14s ease,
394
+ box-shadow 0.14s ease;
395
+ }
396
+
397
+ .nvb-root .nvb-control__radio-input:hover {
398
+ border-color: var(--nvb-radio-checked-border-color);
399
+ }
400
+
401
+ .nvb-root .nvb-control__radio-input:focus-visible {
402
+ outline: 0;
403
+ box-shadow: var(--nvb-focus-ring);
404
+ }
405
+
406
+ .nvb-root .nvb-control__radio-input:checked {
407
+ border-color: var(--nvb-radio-checked-border-color);
408
+ }
409
+
410
+ .nvb-root .nvb-control__radio-input:checked::after {
411
+ content: '';
412
+ position: absolute;
413
+ left: 50%;
414
+ top: 50%;
415
+ transform: translate(-50%, -50%);
416
+ width: var(--nvb-radio-dot-size);
417
+ height: var(--nvb-radio-dot-size);
418
+ border-radius: 50%;
419
+ background-color: var(--nvb-radio-dot-color);
420
+ }
421
+
422
+ .nvb-root .nvb-control__radio-input:disabled {
423
+ cursor: not-allowed;
424
+ opacity: var(--nvb-radio-disabled-opacity);
425
+ background-color: var(--nvb-radio-disabled-bg);
426
+ }
427
+
428
+ .nvb-root input[type='number']::-webkit-inner-spin-button,
429
+ .nvb-root input[type='number']::-webkit-outer-spin-button {
430
+ -webkit-appearance: none;
431
+ margin: 0;
432
+ }
433
+
434
+ /* ── Select Button (ButtonGroup) ─────────────────────────────────────── */
435
+
436
+ .nvb-root .nvb-select-button--buttons {
437
+ display: inline-flex;
438
+ flex-wrap: nowrap;
439
+ align-items: stretch;
440
+ width: fit-content;
441
+ max-width: 100%;
442
+ }
443
+
444
+ .nvb-root .nvb-select-button--buttons.nvb-select-button--vertical {
445
+ flex-direction: column;
446
+ }
447
+
448
+ .nvb-root .nvb-select-button--buttons .nvb-select-button__option {
449
+ position: relative;
450
+ display: inline-flex;
451
+ align-items: center;
452
+ justify-content: center;
453
+ gap: 6px;
454
+ height: var(--nvb-control-height, 36px);
455
+ padding: 0 14px;
456
+ border: 1px solid var(--color-neutral-300);
457
+ border-radius: 0;
458
+ background: var(--color-neutral-000);
459
+ color: var(--color-neutral-800);
460
+ font-size: 14px;
461
+ font-weight: 500;
462
+ font-family: inherit;
463
+ line-height: 1;
464
+ white-space: nowrap;
465
+ cursor: pointer;
466
+ z-index: 0;
467
+ transition: background-color 0.12s ease, border-color 0.12s ease, color 0.12s ease;
468
+ }
469
+
470
+ .nvb-root .nvb-select-button--buttons.nvb-select-button--horizontal .nvb-select-button__option + .nvb-select-button__option {
471
+ margin-left: -1px;
472
+ }
473
+
474
+ .nvb-root .nvb-select-button--buttons.nvb-select-button--vertical .nvb-select-button__option + .nvb-select-button__option {
475
+ margin-top: -1px;
476
+ }
477
+
478
+ .nvb-root .nvb-select-button--buttons.nvb-select-button--horizontal .nvb-select-button__option:first-child { border-radius: 6px 0 0 6px; }
479
+ .nvb-root .nvb-select-button--buttons.nvb-select-button--horizontal .nvb-select-button__option:last-child { border-radius: 0 6px 6px 0; }
480
+ .nvb-root .nvb-select-button--buttons.nvb-select-button--horizontal .nvb-select-button__option:first-child:last-child { border-radius: 6px; }
481
+ .nvb-root .nvb-select-button--buttons.nvb-select-button--vertical .nvb-select-button__option:first-child { border-radius: 6px 6px 0 0; }
482
+ .nvb-root .nvb-select-button--buttons.nvb-select-button--vertical .nvb-select-button__option:last-child { border-radius: 0 0 6px 6px; }
483
+ .nvb-root .nvb-select-button--buttons.nvb-select-button--vertical .nvb-select-button__option:first-child:last-child { border-radius: 6px; }
484
+
485
+ .nvb-root .nvb-select-button--buttons .nvb-select-button__option:hover:not(:disabled) {
486
+ background: color-mix(in oklab, var(--color-neutral-100) 80%, var(--color-neutral-000));
487
+ border-color: var(--color-neutral-400);
488
+ z-index: 1;
489
+ }
490
+
491
+ .nvb-root .nvb-select-button--buttons .nvb-select-button__option:focus-visible {
492
+ outline: 0;
493
+ z-index: 2;
494
+ box-shadow: var(--nvb-focus-ring, 0 0 0 3px color-mix(in oklab, var(--color-primary-500) 18%, transparent));
495
+ }
496
+
497
+ .nvb-root .nvb-select-button--buttons .nvb-select-button__option--selected {
498
+ background: color-mix(in oklab, var(--color-primary-500) 10%, var(--color-neutral-000, white));
499
+ border-color: var(--color-primary-500);
500
+ color: var(--color-primary-700);
501
+ font-weight: 600;
502
+ z-index: 1;
503
+ }
504
+
505
+ .nvb-root .nvb-select-button--buttons .nvb-select-button__option--tone-neutral.nvb-select-button__option--selected {
506
+ background: color-mix(in oklab, var(--color-neutral-700) 10%, var(--color-neutral-000, white));
507
+ border-color: var(--color-neutral-500);
508
+ color: var(--color-neutral-900);
509
+ }
510
+
511
+ .nvb-root .nvb-select-button--buttons .nvb-select-button__option--tone-success.nvb-select-button__option--selected {
512
+ background: color-mix(in oklab, var(--color-success-500) 10%, var(--color-neutral-000, white));
513
+ border-color: var(--color-success-500);
514
+ color: var(--color-success-700);
515
+ }
516
+
517
+ .nvb-root .nvb-select-button--buttons .nvb-select-button__option--tone-warning.nvb-select-button__option--selected {
518
+ background: color-mix(in oklab, var(--color-warning-500) 12%, var(--color-neutral-000, white));
519
+ border-color: var(--color-warning-500);
520
+ color: var(--color-warning-800);
521
+ }
522
+
523
+ .nvb-root .nvb-select-button--buttons .nvb-select-button__option--tone-risk.nvb-select-button__option--selected {
524
+ background: color-mix(in oklab, var(--color-risk-500) 10%, var(--color-neutral-000, white));
525
+ border-color: var(--color-risk-500);
526
+ color: var(--color-risk-700);
527
+ }
528
+
529
+ .nvb-root .nvb-select-button--buttons .nvb-select-button__option:disabled,
530
+ .nvb-root .nvb-select-button--buttons .nvb-select-button__option--disabled {
531
+ opacity: 0.55;
532
+ cursor: not-allowed;
533
+ }
534
+
535
+ .nvb-root .nvb-select-button--buttons.nvb-select-button--size-small .nvb-select-button__option {
536
+ height: var(--nvb-control-height-sm, 28px);
537
+ padding: 0 10px;
538
+ font-size: 13px;
539
+ }
540
+
541
+ .nvb-root .nvb-select-button--buttons.nvb-select-button--size-large .nvb-select-button__option {
542
+ height: 44px;
543
+ padding: 0 18px;
544
+ font-size: 15px;
545
+ }
546
+
547
+ /* ── Segmented variant ───────────────────────────────────────────────── */
548
+
549
+ .nvb-root .nvb-select-button--segmented {
550
+ display: inline-flex;
551
+ flex-wrap: nowrap;
552
+ align-items: stretch;
553
+ gap: 2px;
554
+ width: fit-content;
555
+ max-width: 100%;
556
+ padding: 3px;
557
+ border-radius: 999px;
558
+ background: color-mix(in oklab, var(--color-neutral-100) 85%, var(--color-neutral-000));
559
+ border: 1px solid color-mix(in oklab, var(--color-neutral-300) 55%, transparent);
560
+ }
561
+
562
+ .nvb-root .nvb-select-button--segmented.nvb-select-button--vertical {
563
+ flex-direction: column;
564
+ border-radius: 14px;
565
+ }
566
+
567
+ .nvb-root .nvb-select-button--segmented .nvb-select-button__option {
568
+ position: relative;
569
+ display: inline-flex;
570
+ align-items: center;
571
+ justify-content: center;
572
+ gap: 6px;
573
+ min-height: var(--nvb-control-height, 36px);
574
+ padding: 0 16px;
575
+ border: 0;
576
+ border-radius: 999px;
577
+ background: transparent;
578
+ color: var(--color-neutral-600);
579
+ font-size: 14px;
580
+ font-weight: 500;
581
+ font-family: inherit;
582
+ cursor: pointer;
583
+ transition: background-color 0.12s ease, color 0.12s ease, box-shadow 0.12s ease;
584
+ }
585
+
586
+ .nvb-root .nvb-select-button--segmented.nvb-select-button--vertical .nvb-select-button__option {
587
+ border-radius: 11px;
588
+ }
589
+
590
+ .nvb-root .nvb-select-button--segmented .nvb-select-button__option:hover:not(:disabled) {
591
+ background: color-mix(in oklab, var(--color-neutral-000) 60%, transparent);
592
+ color: var(--color-neutral-800);
593
+ }
594
+
595
+ .nvb-root .nvb-select-button--segmented .nvb-select-button__option--selected {
596
+ background: var(--color-neutral-000, #ffffff);
597
+ color: var(--color-neutral-900);
598
+ font-weight: 600;
599
+ box-shadow: 0 1px 3px rgba(0, 0, 0, 0.12), 0 1px 2px rgba(0, 0, 0, 0.08);
600
+ }
601
+
602
+ .nvb-root .nvb-select-button--segmented .nvb-select-button__option:disabled,
603
+ .nvb-root .nvb-select-button--segmented .nvb-select-button__option--disabled {
604
+ opacity: 0.55;
605
+ cursor: not-allowed;
606
+ }
607
+
608
+ .nvb-root .nvb-select-button--segmented.nvb-select-button--size-small .nvb-select-button__option {
609
+ min-height: var(--nvb-control-height-sm, 28px);
610
+ padding: 0 12px;
611
+ font-size: 13px;
612
+ }
613
+
614
+ .nvb-root .nvb-select-button--segmented.nvb-select-button--size-large .nvb-select-button__option {
615
+ min-height: 44px;
616
+ padding: 0 20px;
617
+ font-size: 15px;
618
+ }