@godxjp/ui 22.0.0 → 23.0.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.
Files changed (83) hide show
  1. package/README.md +4 -4
  2. package/dist/components/data-display/scroll-area.d.ts +24 -4
  3. package/dist/components/data-display/scroll-area.js +34 -72
  4. package/dist/components/data-entry/cascader.js +8 -6
  5. package/dist/components/data-entry/checkbox.js +2 -0
  6. package/dist/components/data-entry/choice-hit-target.d.ts +24 -0
  7. package/dist/components/data-entry/choice-hit-target.js +12 -0
  8. package/dist/components/data-entry/control-surface.d.ts +8 -0
  9. package/dist/components/data-entry/control-surface.js +10 -1
  10. package/dist/components/data-entry/form-field.js +3 -2
  11. package/dist/components/data-entry/radio.js +3 -2
  12. package/dist/components/data-entry/search-select.js +225 -95
  13. package/dist/components/data-entry/select.d.ts +76 -14
  14. package/dist/components/data-entry/select.js +495 -163
  15. package/dist/components/data-entry/slider.d.ts +3 -11
  16. package/dist/components/data-entry/slider.js +582 -93
  17. package/dist/components/data-entry/switch.js +2 -0
  18. package/dist/components/navigation/dropdown-menu.d.ts +11 -3
  19. package/dist/components/navigation/dropdown-menu.js +190 -15
  20. package/dist/components/navigation/index.d.ts +0 -3
  21. package/dist/components/navigation/index.js +0 -78
  22. package/dist/components/ui/index.d.ts +0 -3
  23. package/dist/components/ui/index.js +0 -3
  24. package/dist/components/ui/input-otp.d.ts +1 -1
  25. package/dist/components/ui/segmented.js +3 -1
  26. package/dist/components/ui/tag-input.js +3 -5
  27. package/dist/lib/select-options.d.ts +21 -0
  28. package/dist/lib/select-options.js +46 -0
  29. package/dist/props/components/data-display.prop.d.ts +9 -6
  30. package/dist/props/components/data-entry.prop.d.ts +323 -30
  31. package/dist/props/components/index.d.ts +1 -1
  32. package/dist/props/components/navigation.prop.d.ts +17 -0
  33. package/dist/props/registry.d.ts +63 -0
  34. package/dist/props/registry.js +69 -0
  35. package/dist/styles/control.css +205 -23
  36. package/dist/styles/data-display-layout.css +18 -10
  37. package/dist/styles/focus-ring.css +2 -2
  38. package/dist/styles/fonts.css +88 -4
  39. package/dist/styles/navigation-layout.css +11 -236
  40. package/dist/styles/shell-layout.css +144 -139
  41. package/dist/styles/table-layout.css +7 -3
  42. package/dist/tokens/components/control.css +4 -0
  43. package/dist/tokens/components/data-display.css +0 -5
  44. package/dist/tokens/components/navigation.css +3 -5
  45. package/dist/tokens/components/scroll-area.css +7 -0
  46. package/docs/CUSTOMER-THEMING.md +7 -1
  47. package/docs/FRAME-COVERAGE-REPORT.md +4 -7
  48. package/docs/data-display/data-table/index.tsx +27 -1
  49. package/docs/data-display/popover.tsx +4 -6
  50. package/docs/data-display/scroll-area.tsx +51 -45
  51. package/docs/data-entry/date-picker.tsx +2 -3
  52. package/docs/data-entry/input-otp.tsx +5 -2
  53. package/docs/data-entry/segmented.tsx +40 -1
  54. package/docs/data-entry/select-matrix.tsx +1 -2
  55. package/docs/data-entry/select.tsx +108 -3
  56. package/docs/data-entry/slider.tsx +125 -47
  57. package/docs/feedback/dialog.tsx +1 -2
  58. package/docs/feedback/sheet.tsx +1 -2
  59. package/docs/layout/app-shell-states.tsx +143 -0
  60. package/docs/navigation/dropdown-menu.tsx +75 -4
  61. package/docs/roadmap/parity-audit-data-entry.md +44 -33
  62. package/docs/roadmap/parity-audit-layout-navigation-general.md +304 -310
  63. package/docs/roadmap/parity-backlog.md +2 -3
  64. package/package.json +20 -44
  65. package/scripts/ui-audit.mjs +1 -1
  66. package/scripts/visual-audit-rules.mjs +0 -7
  67. package/scripts/visual-audit.mjs +6 -27
  68. package/dist/components/navigation/context-menu.d.ts +0 -21
  69. package/dist/components/navigation/context-menu.js +0 -149
  70. package/dist/components/navigation/menubar.d.ts +0 -28
  71. package/dist/components/navigation/menubar.js +0 -136
  72. package/dist/components/navigation/navigation-menu.d.ts +0 -10
  73. package/dist/components/navigation/navigation-menu.js +0 -91
  74. package/dist/components/ui/context-menu.d.ts +0 -1
  75. package/dist/components/ui/context-menu.js +0 -2
  76. package/dist/components/ui/menubar.d.ts +0 -1
  77. package/dist/components/ui/menubar.js +0 -2
  78. package/dist/components/ui/navigation-menu.d.ts +0 -1
  79. package/dist/components/ui/navigation-menu.js +0 -2
  80. package/docs/FRAME-A11Y-CI.md +0 -349
  81. package/docs/navigation/context-menu.tsx +0 -128
  82. package/docs/navigation/menubar.tsx +0 -141
  83. package/docs/navigation/navigation-menu.tsx +0 -158
@@ -233,30 +233,6 @@
233
233
  text-align: center;
234
234
  }
235
235
 
236
- .ui-context-menu-content {
237
- z-index: var(--overlay-z-index);
238
- min-width: var(--menu-content-min-width);
239
- overflow: hidden;
240
- border-radius: var(--radius-md);
241
- border: 1px solid hsl(var(--border));
242
- background: hsl(var(--popover));
243
- color: hsl(var(--popover-foreground));
244
- padding: var(--space-1);
245
- box-shadow: var(--shadow-md), var(--shadow-glow);
246
- }
247
-
248
- .ui-context-menu-item,
249
- .ui-context-menu-label,
250
- .ui-context-menu-sub-trigger,
251
- .ui-context-menu-checkbox-item,
252
- .ui-context-menu-radio-item,
253
- .ui-context-menu-shortcut,
254
- .ui-menubar-item,
255
- .ui-menubar-label,
256
- .ui-menubar-trigger,
257
- .ui-menubar-sub-trigger,
258
- .ui-menubar-checkbox-item,
259
- .ui-menubar-radio-item,
260
236
  .ui-dropdown-menu-item,
261
237
  .ui-dropdown-menu-label,
262
238
  .ui-dropdown-menu-sub-trigger,
@@ -272,12 +248,6 @@
272
248
  font-size: var(--menu-item-font-size);
273
249
  }
274
250
 
275
- .ui-context-menu-item > svg,
276
- .ui-context-menu-checkbox-item > svg,
277
- .ui-context-menu-radio-item > svg,
278
- .ui-menubar-item > svg,
279
- .ui-menubar-checkbox-item > svg,
280
- .ui-menubar-radio-item > svg,
281
251
  .ui-dropdown-menu-item > svg,
282
252
  .ui-dropdown-menu-checkbox-item > svg,
283
253
  .ui-dropdown-menu-radio-item > svg {
@@ -292,19 +262,10 @@
292
262
  padding-inline-start: var(--menu-item-inset-space-inline-start);
293
263
  }
294
264
 
295
- .ui-context-menu-item,
296
- .ui-context-menu-checkbox-item,
297
- .ui-context-menu-radio-item,
298
- .ui-context-menu-sub-trigger,
299
- .ui-menubar-item,
300
- .ui-menubar-checkbox-item,
301
- .ui-menubar-radio-item,
302
- .ui-menubar-sub-trigger,
303
265
  .ui-dropdown-menu-item,
304
266
  .ui-dropdown-menu-checkbox-item,
305
267
  .ui-dropdown-menu-radio-item,
306
- .ui-dropdown-menu-sub-trigger,
307
- .ui-navigation-menu-link {
268
+ .ui-dropdown-menu-sub-trigger {
308
269
  cursor: pointer;
309
270
  outline: none;
310
271
  user-select: none;
@@ -313,50 +274,25 @@
313
274
  color 150ms ease;
314
275
  }
315
276
 
316
- .ui-context-menu-item:hover,
317
- .ui-context-menu-sub-trigger:hover,
318
- .ui-menubar-item:hover,
319
- .ui-menubar-sub-trigger:hover,
320
277
  .ui-dropdown-menu-item:hover,
321
- .ui-dropdown-menu-sub-trigger:hover,
322
- .ui-navigation-menu-link:hover,
323
- .ui-navigation-menu-item:hover {
324
- background: var(--menubar-item-hover-background, hsl(var(--accent)));
325
- color: var(--menubar-item-hover-foreground, hsl(var(--accent-foreground)));
326
- }
327
-
328
- .ui-context-menu-item[data-state="open"],
329
- .ui-context-menu-item[data-state="checked"],
330
- .ui-context-menu-item[data-highlighted],
331
- .ui-menubar-item[data-state="open"],
332
- .ui-menubar-item[data-state="active"],
333
- .ui-menubar-item[data-state="checked"],
334
- .ui-menubar-sub-trigger[data-state="open"],
278
+ .ui-dropdown-menu-sub-trigger:hover {
279
+ background: var(--menu-item-hover-background, hsl(var(--accent)));
280
+ color: var(--menu-item-hover-foreground, hsl(var(--accent-foreground)));
281
+ }
282
+
335
283
  .ui-dropdown-menu-item[data-state="open"],
336
284
  .ui-dropdown-menu-item[data-highlighted],
337
285
  .ui-dropdown-menu-checkbox-item[data-highlighted],
338
286
  .ui-dropdown-menu-radio-item[data-highlighted],
339
- .ui-dropdown-menu-sub-trigger[data-state="open"],
340
- .ui-navigation-menu-link[data-highlighted],
341
- .ui-navigation-menu-item[data-focus-visible] {
342
- background: var(--menubar-item-hover-background, hsl(var(--accent)));
343
- color: var(--menubar-item-hover-foreground, hsl(var(--accent-foreground)));
287
+ .ui-dropdown-menu-sub-trigger[data-state="open"] {
288
+ background: var(--menu-item-hover-background, hsl(var(--accent)));
289
+ color: var(--menu-item-hover-foreground, hsl(var(--accent-foreground)));
344
290
  }
345
291
 
346
- .ui-context-menu-item[data-variant="destructive"],
347
- .ui-menubar-item[data-variant="destructive"],
348
292
  .ui-dropdown-menu-item[data-variant="destructive"] {
349
293
  color: hsl(var(--destructive));
350
294
  }
351
295
 
352
- .ui-context-menu-item[data-variant="destructive"][data-state="focused"],
353
- .ui-menubar-item[data-variant="destructive"][data-state="focused"] {
354
- background: hsl(var(--destructive));
355
- color: hsl(var(--destructive-foreground));
356
- }
357
-
358
- .ui-context-menu-separator,
359
- .ui-menubar-separator,
360
296
  .ui-dropdown-menu-separator,
361
297
  .ui-select-separator {
362
298
  margin-block: var(--menu-separator-space-block);
@@ -365,8 +301,6 @@
365
301
  background: hsl(var(--border));
366
302
  }
367
303
 
368
- .ui-context-menu-label,
369
- .ui-menubar-label,
370
304
  .ui-dropdown-menu-label {
371
305
  height: auto;
372
306
  min-height: var(--menu-item-height);
@@ -374,19 +308,14 @@
374
308
  font-weight: var(--font-weight-medium);
375
309
  }
376
310
 
377
- .ui-context-menu-shortcut,
378
- .ui-menubar-shortcut,
379
311
  .ui-dropdown-menu-shortcut {
380
312
  margin-inline-start: auto;
381
313
  text-align: end;
382
314
  color: hsl(var(--muted-foreground));
383
- font-size: var(--menubar-shortcut-font-size);
315
+ font-size: var(--menu-shortcut-font-size);
384
316
  }
385
317
 
386
- .ui-context-menu-item-indicator,
387
- .ui-menubar-item-indicator,
388
- .ui-dropdown-menu-item-indicator,
389
- .ui-navigation-menu-item-indicator {
318
+ .ui-dropdown-menu-item-indicator {
390
319
  display: inline-flex;
391
320
  width: 1rem;
392
321
  height: 1rem;
@@ -394,160 +323,6 @@
394
323
  justify-content: center;
395
324
  color: hsl(var(--accent-foreground));
396
325
  }
397
-
398
- .ui-context-menu-check,
399
- .ui-menubar-check {
400
- width: 1rem;
401
- height: 1rem;
402
- }
403
-
404
- .ui-context-menu-dot,
405
- .ui-menubar-dot {
406
- width: 0.5rem;
407
- height: 0.5rem;
408
- border-radius: var(--radius-pill);
409
- background: currentColor;
410
- }
411
-
412
- .ui-context-menu-sub-content,
413
- .ui-context-menu-sub-trigger,
414
- .ui-menubar-sub-content,
415
- .ui-menubar-sub-trigger {
416
- position: relative;
417
- }
418
-
419
- .ui-context-menu-sub-content,
420
- .ui-menubar-sub-content {
421
- min-width: 10rem;
422
- overflow: hidden;
423
- border-radius: var(--radius-md);
424
- border: 1px solid hsl(var(--border));
425
- background: hsl(var(--popover));
426
- color: hsl(var(--popover-foreground));
427
- padding: var(--space-1);
428
- box-shadow: var(--shadow-md), var(--shadow-glow);
429
- }
430
-
431
- .ui-context-menu-sub-trigger-icon,
432
- .ui-menubar-sub-trigger-icon {
433
- width: var(--menu-icon-size);
434
- height: var(--menu-icon-size);
435
- margin-inline-start: auto;
436
- opacity: 0.75;
437
- }
438
-
439
- .ui-menubar {
440
- display: flex;
441
- min-height: var(--control-height);
442
- align-items: center;
443
- gap: var(--space-1);
444
- border-radius: var(--radius-md);
445
- }
446
-
447
- .ui-menubar-trigger {
448
- height: var(--control-height);
449
- padding: 0 var(--space-3);
450
- border-radius: var(--radius-md);
451
- }
452
-
453
- .ui-menubar-content {
454
- min-width: 10rem;
455
- overflow: hidden;
456
- border-radius: var(--radius-md);
457
- border: 1px solid hsl(var(--border));
458
- background: hsl(var(--popover));
459
- color: hsl(var(--popover-foreground));
460
- padding: var(--space-1);
461
- box-shadow: var(--shadow-md), var(--shadow-glow);
462
- }
463
-
464
- .ui-menubar-trigger[data-state="open"],
465
- .ui-menubar-sub-trigger[data-state="open"] {
466
- background: var(--menubar-item-hover-background, hsl(var(--accent)));
467
- color: var(--menubar-item-hover-foreground, hsl(var(--accent-foreground)));
468
- }
469
-
470
- .ui-navigation-menu {
471
- position: relative;
472
- width: max-content;
473
- }
474
-
475
- .ui-navigation-menu-list {
476
- display: flex;
477
- align-items: center;
478
- gap: var(--space-1);
479
- }
480
-
481
- .ui-navigation-menu-item,
482
- .ui-navigation-menu-trigger {
483
- position: relative;
484
- cursor: pointer;
485
- border-radius: var(--radius-md);
486
- padding-inline: var(--space-2);
487
- padding-block: var(--space-2);
488
- height: var(--control-height);
489
- font-size: var(--font-size-base);
490
- display: inline-flex;
491
- align-items: center;
492
- gap: var(--space-1);
493
- outline: none;
494
- }
495
-
496
- .ui-navigation-menu-trigger-icon {
497
- width: var(--navigation-menu-trigger-icon-size);
498
- height: var(--navigation-menu-trigger-icon-size);
499
- margin-inline-start: var(--space-2);
500
- opacity: 0.7;
501
- }
502
-
503
- .ui-navigation-menu-content {
504
- position: absolute;
505
- top: 100%;
506
- inset-inline-start: 0;
507
- min-width: 14rem;
508
- z-index: 50;
509
- overflow: hidden;
510
- border: 1px solid hsl(var(--border));
511
- border-radius: var(--radius-md);
512
- background: hsl(var(--popover));
513
- color: hsl(var(--popover-foreground));
514
- padding: var(--space-1);
515
- box-shadow: var(--shadow-md), var(--shadow-glow);
516
- }
517
-
518
- .ui-navigation-menu-link {
519
- width: 100%;
520
- cursor: pointer;
521
- }
522
-
523
- .ui-navigation-menu-viewport {
524
- position: absolute;
525
- inset-inline-start: 0;
526
- top: 100%;
527
- width: 100%;
528
- overflow: hidden;
529
- border-radius: var(--radius-md);
530
- border: 1px solid hsl(var(--border));
531
- background: hsl(var(--popover));
532
- color: hsl(var(--popover-foreground));
533
- }
534
-
535
- .ui-navigation-menu-indicator {
536
- position: absolute;
537
- top: 100%;
538
- z-index: 50;
539
- display: flex;
540
- align-items: center;
541
- justify-content: center;
542
- height: 0.75rem;
543
- overflow: hidden;
544
- }
545
-
546
- .ui-navigation-menu-item-indicator {
547
- width: 100%;
548
- transition: transform 200ms ease;
549
- transform-origin: center;
550
- }
551
326
  }
552
327
 
553
328
  @layer components {
@@ -17,116 +17,118 @@
17
17
  background: hsl(var(--background));
18
18
  }
19
19
 
20
- .app-root[data-collapsed="true"] {
21
- grid-template-columns: var(--app-shell-sidebar-collapsed-width) minmax(0, 1fr);
22
- }
20
+ @media (width > 56.25rem) {
21
+ .app-root[data-collapsed="true"] {
22
+ grid-template-columns: var(--app-shell-sidebar-collapsed-width) minmax(0, 1fr);
23
+ }
23
24
 
24
- .app-root[data-topbar-span="full"] {
25
- grid-template-areas:
26
- "topbar topbar"
27
- "sidebar main"
28
- "sidebar footer";
29
- }
25
+ .app-root[data-topbar-span="full"] {
26
+ grid-template-areas:
27
+ "topbar topbar"
28
+ "sidebar main"
29
+ "sidebar footer";
30
+ }
30
31
 
31
- .app-root[data-nav-rail][data-nav-rail-position="start"] {
32
- grid-template-areas:
33
- "navrail sidebar topbar"
34
- "navrail sidebar main"
35
- "navrail sidebar footer";
36
- grid-template-columns:
37
- var(--app-shell-nav-rail-width)
38
- var(--app-shell-sidebar-width)
39
- minmax(0, 1fr);
40
- }
32
+ .app-root[data-nav-rail][data-nav-rail-position="start"] {
33
+ grid-template-areas:
34
+ "navrail sidebar topbar"
35
+ "navrail sidebar main"
36
+ "navrail sidebar footer";
37
+ grid-template-columns:
38
+ var(--app-shell-nav-rail-width)
39
+ var(--app-shell-sidebar-width)
40
+ minmax(0, 1fr);
41
+ }
41
42
 
42
- .app-root[data-nav-rail][data-nav-rail-position="start"][data-topbar-span="full"] {
43
- grid-template-areas:
44
- "topbar topbar topbar"
45
- "navrail sidebar main"
46
- "navrail sidebar footer";
47
- }
43
+ .app-root[data-nav-rail][data-nav-rail-position="start"][data-topbar-span="full"] {
44
+ grid-template-areas:
45
+ "topbar topbar topbar"
46
+ "navrail sidebar main"
47
+ "navrail sidebar footer";
48
+ }
48
49
 
49
- .app-root[data-nav-rail][data-nav-rail-position="end"] {
50
- grid-template-areas:
51
- "sidebar topbar navrail"
52
- "sidebar main navrail"
53
- "sidebar footer navrail";
54
- grid-template-columns:
55
- var(--app-shell-sidebar-width)
56
- minmax(0, 1fr)
57
- var(--app-shell-nav-rail-width);
58
- }
50
+ .app-root[data-nav-rail][data-nav-rail-position="end"] {
51
+ grid-template-areas:
52
+ "sidebar topbar navrail"
53
+ "sidebar main navrail"
54
+ "sidebar footer navrail";
55
+ grid-template-columns:
56
+ var(--app-shell-sidebar-width)
57
+ minmax(0, 1fr)
58
+ var(--app-shell-nav-rail-width);
59
+ }
59
60
 
60
- .app-root[data-nav-rail][data-nav-rail-position="end"][data-topbar-span="full"] {
61
- grid-template-areas:
62
- "topbar topbar topbar"
63
- "sidebar main navrail"
64
- "sidebar footer navrail";
65
- }
61
+ .app-root[data-nav-rail][data-nav-rail-position="end"][data-topbar-span="full"] {
62
+ grid-template-areas:
63
+ "topbar topbar topbar"
64
+ "sidebar main navrail"
65
+ "sidebar footer navrail";
66
+ }
66
67
 
67
- .app-root[data-nav-rail][data-nav-rail-position="top"] {
68
- grid-template-areas:
69
- "navrail navrail"
70
- "sidebar topbar"
71
- "sidebar main"
72
- "sidebar footer";
73
- grid-template-columns: var(--app-shell-sidebar-width) minmax(0, 1fr);
74
- grid-template-rows:
75
- var(--app-shell-nav-rail-height)
76
- var(--app-shell-bar-height)
77
- minmax(0, 1fr)
78
- auto;
79
- }
68
+ .app-root[data-nav-rail][data-nav-rail-position="top"] {
69
+ grid-template-areas:
70
+ "navrail navrail"
71
+ "sidebar topbar"
72
+ "sidebar main"
73
+ "sidebar footer";
74
+ grid-template-columns: var(--app-shell-sidebar-width) minmax(0, 1fr);
75
+ grid-template-rows:
76
+ var(--app-shell-nav-rail-height)
77
+ var(--app-shell-bar-height)
78
+ minmax(0, 1fr)
79
+ auto;
80
+ }
80
81
 
81
- .app-root[data-nav-rail][data-nav-rail-position="top"][data-topbar-span="full"] {
82
- grid-template-areas:
83
- "navrail navrail"
84
- "topbar topbar"
85
- "sidebar main"
86
- "sidebar footer";
87
- }
82
+ .app-root[data-nav-rail][data-nav-rail-position="top"][data-topbar-span="full"] {
83
+ grid-template-areas:
84
+ "navrail navrail"
85
+ "topbar topbar"
86
+ "sidebar main"
87
+ "sidebar footer";
88
+ }
88
89
 
89
- .app-root[data-nav-rail][data-nav-rail-position="bottom"] {
90
- grid-template-areas:
91
- "sidebar topbar"
92
- "sidebar main"
93
- "sidebar footer"
94
- "navrail navrail";
95
- grid-template-columns: var(--app-shell-sidebar-width) minmax(0, 1fr);
96
- grid-template-rows:
97
- var(--app-shell-bar-height)
98
- minmax(0, 1fr)
99
- auto
100
- var(--app-shell-nav-rail-height);
101
- }
90
+ .app-root[data-nav-rail][data-nav-rail-position="bottom"] {
91
+ grid-template-areas:
92
+ "sidebar topbar"
93
+ "sidebar main"
94
+ "sidebar footer"
95
+ "navrail navrail";
96
+ grid-template-columns: var(--app-shell-sidebar-width) minmax(0, 1fr);
97
+ grid-template-rows:
98
+ var(--app-shell-bar-height)
99
+ minmax(0, 1fr)
100
+ auto
101
+ var(--app-shell-nav-rail-height);
102
+ }
102
103
 
103
- .app-root[data-nav-rail][data-nav-rail-position="bottom"][data-topbar-span="full"] {
104
- grid-template-areas:
105
- "topbar topbar"
106
- "sidebar main"
107
- "sidebar footer"
108
- "navrail navrail";
109
- }
104
+ .app-root[data-nav-rail][data-nav-rail-position="bottom"][data-topbar-span="full"] {
105
+ grid-template-areas:
106
+ "topbar topbar"
107
+ "sidebar main"
108
+ "sidebar footer"
109
+ "navrail navrail";
110
+ }
110
111
 
111
- .app-root[data-nav-rail][data-nav-rail-position="start"][data-collapsed="true"] {
112
- grid-template-columns:
113
- var(--app-shell-nav-rail-width)
114
- var(--app-shell-sidebar-collapsed-width)
115
- minmax(0, 1fr);
116
- }
112
+ .app-root[data-nav-rail][data-nav-rail-position="start"][data-collapsed="true"] {
113
+ grid-template-columns:
114
+ var(--app-shell-nav-rail-width)
115
+ var(--app-shell-sidebar-collapsed-width)
116
+ minmax(0, 1fr);
117
+ }
117
118
 
118
- .app-root[data-nav-rail][data-nav-rail-position="end"][data-collapsed="true"] {
119
- grid-template-columns:
120
- var(--app-shell-sidebar-collapsed-width)
121
- minmax(0, 1fr)
122
- var(--app-shell-nav-rail-width);
123
- }
119
+ .app-root[data-nav-rail][data-nav-rail-position="end"][data-collapsed="true"] {
120
+ grid-template-columns:
121
+ var(--app-shell-sidebar-collapsed-width)
122
+ minmax(0, 1fr)
123
+ var(--app-shell-nav-rail-width);
124
+ }
124
125
 
125
- .app-root[data-nav-rail]:is(
126
- [data-nav-rail-position="top"],
127
- [data-nav-rail-position="bottom"]
128
- )[data-collapsed="true"] {
129
- grid-template-columns: var(--app-shell-sidebar-collapsed-width) minmax(0, 1fr);
126
+ .app-root[data-nav-rail]:is(
127
+ [data-nav-rail-position="top"],
128
+ [data-nav-rail-position="bottom"]
129
+ )[data-collapsed="true"] {
130
+ grid-template-columns: var(--app-shell-sidebar-collapsed-width) minmax(0, 1fr);
131
+ }
130
132
  }
131
133
 
132
134
  .app-root[data-topbar="none"] {
@@ -817,51 +819,54 @@
817
819
  font-size: var(--font-size-base);
818
820
  }
819
821
 
820
- .app-root:where([data-sidebar="none"])[data-nav-rail][data-nav-rail-position="start"] {
821
- grid-template-columns: var(--app-shell-nav-rail-width) minmax(0, 1fr);
822
- grid-template-areas: "navrail topbar" "navrail main" "navrail footer";
823
- }
824
- .app-root:where([data-sidebar="none"])[data-nav-rail][data-nav-rail-position="start"][data-topbar-span="full"] {
825
- grid-template-areas: "topbar topbar" "navrail main" "navrail footer";
826
- }
827
- .app-root:where([data-sidebar="none"])[data-nav-rail][data-nav-rail-position="end"] {
828
- grid-template-columns: minmax(0, 1fr) var(--app-shell-nav-rail-width);
829
- grid-template-areas: "topbar navrail" "main navrail" "footer navrail";
830
- }
831
- .app-root:where([data-sidebar="none"])[data-nav-rail][data-nav-rail-position="end"][data-topbar-span="full"] {
832
- grid-template-areas: "topbar topbar" "main navrail" "footer navrail";
833
- }
822
+ @media (width > 56.25rem) {
823
+ .app-root:where([data-sidebar="none"])[data-nav-rail][data-nav-rail-position="start"] {
824
+ grid-template-columns: var(--app-shell-nav-rail-width) minmax(0, 1fr);
825
+ grid-template-areas: "navrail topbar" "navrail main" "navrail footer";
826
+ }
827
+ .app-root:where([data-sidebar="none"])[data-nav-rail][data-nav-rail-position="start"][data-topbar-span="full"] {
828
+ grid-template-areas: "topbar topbar" "navrail main" "navrail footer";
829
+ }
830
+ .app-root:where([data-sidebar="none"])[data-nav-rail][data-nav-rail-position="end"] {
831
+ grid-template-columns: minmax(0, 1fr) var(--app-shell-nav-rail-width);
832
+ grid-template-areas: "topbar navrail" "main navrail" "footer navrail";
833
+ }
834
+ .app-root:where([data-sidebar="none"])[data-nav-rail][data-nav-rail-position="end"][data-topbar-span="full"] {
835
+ grid-template-areas: "topbar topbar" "main navrail" "footer navrail";
836
+ }
834
837
 
835
- .app-root:where([data-sidebar="none"])[data-nav-rail][data-nav-rail-position="top"] {
836
- grid-template-columns: minmax(0, 1fr);
837
- grid-template-areas: "navrail" "topbar" "main" "footer";
838
- grid-template-rows:
839
- var(--app-shell-nav-rail-height)
840
- var(--app-shell-bar-height)
841
- minmax(0, 1fr)
842
- auto;
843
- }
844
- .app-root:where([data-sidebar="none"])[data-nav-rail][data-nav-rail-position="top"][data-topbar-span="full"] {
845
- grid-template-areas: "navrail" "topbar" "main" "footer";
846
- }
847
- .app-root:where([data-sidebar="none"])[data-nav-rail]:is(
848
- [data-nav-rail-position="bottom"]
849
- ) {
850
- grid-template-columns: minmax(0, 1fr);
851
- grid-template-areas: "topbar" "main" "footer" "navrail";
852
- grid-template-rows:
853
- var(--app-shell-bar-height)
854
- minmax(0, 1fr)
855
- auto
856
- var(--app-shell-nav-rail-height);
838
+ .app-root:where([data-sidebar="none"])[data-nav-rail][data-nav-rail-position="top"] {
839
+ grid-template-columns: minmax(0, 1fr);
840
+ grid-template-areas: "navrail" "topbar" "main" "footer";
841
+ grid-template-rows:
842
+ var(--app-shell-nav-rail-height)
843
+ var(--app-shell-bar-height)
844
+ minmax(0, 1fr)
845
+ auto;
846
+ }
847
+ .app-root:where([data-sidebar="none"])[data-nav-rail][data-nav-rail-position="top"][data-topbar-span="full"] {
848
+ grid-template-areas: "navrail" "topbar" "main" "footer";
849
+ }
850
+ .app-root:where([data-sidebar="none"])[data-nav-rail]:is(
851
+ [data-nav-rail-position="bottom"]
852
+ ) {
853
+ grid-template-columns: minmax(0, 1fr);
854
+ grid-template-areas: "topbar" "main" "footer" "navrail";
855
+ grid-template-rows:
856
+ var(--app-shell-bar-height)
857
+ minmax(0, 1fr)
858
+ auto
859
+ var(--app-shell-nav-rail-height);
860
+ }
861
+
862
+ .app-root:where([data-sidebar="none"])[data-nav-rail][data-nav-rail-position="bottom"][data-topbar-span="full"] {
863
+ grid-template-areas: "topbar" "main" "footer" "navrail";
864
+ }
857
865
  }
858
866
 
859
867
  @media (width <= 56.25rem) {
860
- .app-root,
861
- .app-root[data-collapsed="true"],
862
- .app-root[data-nav-rail],
863
- .app-root[data-nav-rail][data-collapsed="true"],
864
- .app-root[data-nav-rail][data-topbar-span="full"] {
868
+
869
+ .app-root {
865
870
  grid-template-areas:
866
871
  "topbar"
867
872
  "main"
@@ -188,7 +188,7 @@
188
188
 
189
189
  overflow: clip;
190
190
 
191
- min-inline-size: var(--table-surface-min-inline-size);
191
+ min-inline-size: min-content;
192
192
  border: 1px solid hsl(var(--border));
193
193
  border-radius: var(--radius-md);
194
194
  }
@@ -197,6 +197,10 @@
197
197
  min-inline-size: 0;
198
198
  }
199
199
 
200
+ .ui-data-table-surface:not([data-preset]) > * > [data-slot="table"] {
201
+ min-inline-size: var(--table-surface-min-inline-size);
202
+ }
203
+
200
204
  .ui-data-table-surface[data-striped] tbody tr:nth-child(even):not([data-state="selected"]) {
201
205
  background-color: var(--table-row-striped-background, hsl(var(--muted) / 0.4));
202
206
  }
@@ -286,7 +290,7 @@
286
290
  inset-inline-end: 0;
287
291
  }
288
292
 
289
- .ui-data-table-surface {
293
+ .ui-data-table-surface:not([data-preset]) > * > [data-slot="table"] {
290
294
  min-inline-size: 0;
291
295
  }
292
296
  }
@@ -356,7 +360,7 @@
356
360
  max-block-size: var(--table-scroll-block-size, none);
357
361
  }
358
362
 
359
- .ui-data-table-scroll[data-scroll-x] :is(.ui-data-table-surface, [data-slot="table"]) {
363
+ .ui-data-table-scroll[data-scroll-x] [data-slot="table"] {
360
364
  min-inline-size: var(--table-scroll-inline-size, auto);
361
365
  }
362
366
 
@@ -105,6 +105,8 @@
105
105
  --slider-track-height: 0.375rem;
106
106
  --slider-thumb-size: 1rem;
107
107
 
108
+ --slider-vertical-min-block-size: 10rem;
109
+
108
110
  --otp-slot-size: initial;
109
111
 
110
112
  --otp-slot-inline-size: initial;
@@ -198,6 +200,8 @@
198
200
  --search-select-panel-inline-size: auto;
199
201
  --search-select-panel-viewport-inset: var(--space-6);
200
202
  --search-select-list-space-inset: var(--space-1);
203
+
204
+ --search-select-list-max-height: none;
201
205
  --search-select-footer-space-inset: var(--space-1);
202
206
  --search-select-option-space-gap: var(--space-2);
203
207
  --search-select-option-font-size: var(--font-size-sm);