prime-ui-kit 0.9.1 → 0.9.2

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 (107) hide show
  1. package/README.md +22 -8
  2. package/dist/chunks/{chunk-KCQFOORX.js → chunk-IQELQNMR.js} +1 -1
  3. package/dist/chunks/{chunk-DB2Y3XXA.js → chunk-LXGRKN34.js} +2323 -1500
  4. package/dist/chunks/{chunk-NHOWNIAR.js → chunk-ZEFCDEEQ.js} +790 -536
  5. package/dist/color-picker.js +2 -2
  6. package/dist/components/data-table/DataTable.d.ts +6 -1
  7. package/dist/components/data-table/types.d.ts +5 -0
  8. package/dist/components/dnd/Dnd.d.ts +1 -1
  9. package/dist/components/dnd/dragSession.d.ts +9 -0
  10. package/dist/components/dnd/useDropTarget.d.ts +5 -0
  11. package/dist/components/dnd/useFlipList.d.ts +3 -3
  12. package/dist/components/drawer/Drawer.d.ts +8 -5
  13. package/dist/components/dropdown/Dropdown.d.ts +17 -0
  14. package/dist/components/index.d.ts +5 -1
  15. package/dist/components/kanban/Kanban.d.ts +129 -0
  16. package/dist/components/modal/Modal.d.ts +5 -2
  17. package/dist/components/page-toolbar/PageToolbar.d.ts +53 -0
  18. package/dist/components/segmented-control/SegmentedControl.d.ts +5 -2
  19. package/dist/components/tabs/Tabs.d.ts +5 -2
  20. package/dist/hooks/useEdgeOverflow.d.ts +12 -0
  21. package/dist/hooks/useMediaQuery.d.ts +7 -0
  22. package/dist/hooks/useSwipeDismiss.d.ts +34 -0
  23. package/dist/index.css +2271 -1163
  24. package/dist/index.js +10 -2
  25. package/dist/internal/overlay/FloatingPanel.d.ts +3 -1
  26. package/dist/internal/overlay/useFloatingLayer.d.ts +11 -1
  27. package/dist/internal/touchTarget.d.ts +4 -0
  28. package/dist/layout/app-header/AppHeader.d.ts +110 -0
  29. package/dist/layout/app-shell/AppShell.d.ts +14 -9
  30. package/dist/layout/bottom-nav/BottomNav.d.ts +80 -0
  31. package/dist/layout/index.d.ts +5 -1
  32. package/dist/tokens/primitives.d.ts +4 -0
  33. package/dist/tokens/semantic.d.ts +56 -0
  34. package/dist/tokens/themes/dark.d.ts +4 -0
  35. package/package.json +3 -2
  36. package/src/components/accordion/COMPONENT.md +1 -1
  37. package/src/components/badge/COMPONENT.md +2 -2
  38. package/src/components/banner/COMPONENT.md +1 -1
  39. package/src/components/checkbox/examples/examples.module.css +4 -2
  40. package/src/components/crossfade/COMPONENT.md +1 -1
  41. package/src/components/data-table/COMPONENT.md +19 -6
  42. package/src/components/data-table/examples/columns-visibility.tsx +167 -0
  43. package/src/components/digit-input/COMPONENT.md +10 -10
  44. package/src/components/digit-input/examples/examples.module.css +8 -0
  45. package/src/components/digit-input/examples/in-form.tsx +2 -5
  46. package/src/components/digit-input/examples/sizes.tsx +1 -1
  47. package/src/components/divider/COMPONENT.md +1 -1
  48. package/src/components/dnd/COMPONENT.md +3 -3
  49. package/src/components/drawer/COMPONENT.md +17 -9
  50. package/src/components/drawer/examples/date-sheet.tsx +41 -0
  51. package/src/components/drawer/examples/examples.module.css +5 -0
  52. package/src/components/drawer/examples/placement.tsx +4 -2
  53. package/src/components/dropdown/COMPONENT.md +19 -5
  54. package/src/components/dropdown/examples/checkbox-items.tsx +48 -0
  55. package/src/components/empty-page/COMPONENT.md +1 -1
  56. package/src/components/kanban/COMPONENT.md +181 -0
  57. package/src/components/kanban/examples/controlled.tsx +78 -0
  58. package/src/components/kanban/examples/examples.module.css +31 -0
  59. package/src/components/kanban/examples/limits.tsx +58 -0
  60. package/src/components/kanban/examples/narrow.tsx +76 -0
  61. package/src/components/kanban/examples/overview.tsx +130 -0
  62. package/src/components/kanban/examples/states.tsx +75 -0
  63. package/src/components/kanban/examples/structure.tsx +76 -0
  64. package/src/components/login-form/COMPONENT.md +1 -1
  65. package/src/components/modal/COMPONENT.md +9 -6
  66. package/src/components/notification/COMPONENT.md +2 -2
  67. package/src/components/page-content/COMPONENT.md +1 -1
  68. package/src/components/page-toolbar/COMPONENT.md +142 -0
  69. package/src/components/page-toolbar/examples/examples.module.css +16 -0
  70. package/src/components/page-toolbar/examples/narrow.tsx +103 -0
  71. package/src/components/page-toolbar/examples/overview.tsx +113 -0
  72. package/src/components/page-toolbar/examples/save-changes.tsx +40 -0
  73. package/src/components/page-toolbar/examples/without-search.tsx +60 -0
  74. package/src/components/popover/COMPONENT.md +4 -3
  75. package/src/components/progress-bar/COMPONENT.md +1 -1
  76. package/src/components/progress-circle/COMPONENT.md +1 -1
  77. package/src/components/scroll-container/COMPONENT.md +1 -1
  78. package/src/components/segmented-control/COMPONENT.md +8 -8
  79. package/src/components/segmented-control/examples/full-width.tsx +1 -1
  80. package/src/components/select/COMPONENT.md +2 -1
  81. package/src/components/skeleton/COMPONENT.md +1 -1
  82. package/src/components/smart-filter/COMPONENT.md +2 -0
  83. package/src/components/spinner/COMPONENT.md +1 -1
  84. package/src/components/tabs/COMPONENT.md +11 -8
  85. package/src/components/tabs/examples/closable.tsx +1 -1
  86. package/src/layout/app-header/COMPONENT.md +178 -0
  87. package/src/layout/app-header/examples/breadcrumbs.tsx +36 -0
  88. package/src/layout/app-header/examples/examples.module.css +47 -0
  89. package/src/layout/app-header/examples/in-app-shell.tsx +70 -0
  90. package/src/layout/app-header/examples/narrow.tsx +29 -0
  91. package/src/layout/app-header/examples/overview.tsx +36 -0
  92. package/src/layout/app-shell/COMPONENT.md +27 -21
  93. package/src/layout/app-shell/examples/examples.module.css +15 -0
  94. package/src/layout/app-shell/examples/footer.tsx +59 -0
  95. package/src/layout/app-shell/examples/overview.tsx +19 -8
  96. package/src/layout/bottom-nav/COMPONENT.md +153 -0
  97. package/src/layout/bottom-nav/examples/examples.module.css +39 -0
  98. package/src/layout/bottom-nav/examples/floating.tsx +89 -0
  99. package/src/layout/bottom-nav/examples/icon-only.tsx +41 -0
  100. package/src/layout/bottom-nav/examples/in-app-shell.tsx +64 -0
  101. package/src/layout/bottom-nav/examples/overview.tsx +44 -0
  102. package/src/layout/bottom-nav/examples/router.tsx +31 -0
  103. package/src/layout/bottom-nav/examples/structure.tsx +47 -0
  104. package/src/layout/sidebar/COMPONENT.md +11 -10
  105. package/src/styles/theme-dark.css +3 -0
  106. package/src/styles/theme-light.css +24 -0
  107. package/src/styles/tokens.css +2 -0
package/dist/index.css CHANGED
@@ -95,6 +95,7 @@
95
95
  "Segoe UI",
96
96
  Roboto,
97
97
  sans-serif;
98
+ --prime-ref-font-line-height-12: 0.75rem;
98
99
  --prime-ref-font-line-height-16: 1rem;
99
100
  --prime-ref-font-line-height-20: 1.25rem;
100
101
  --prime-ref-font-line-height-24: 1.5rem;
@@ -104,6 +105,7 @@
104
105
  --prime-ref-font-line-height-44: 2.75rem;
105
106
  --prime-ref-font-line-height-56: 3.5rem;
106
107
  --prime-ref-font-line-height-68: 4.25rem;
108
+ --prime-ref-font-size-10: 0.625rem;
107
109
  --prime-ref-font-size-12: 0.75rem;
108
110
  --prime-ref-font-size-13: 0.8125rem;
109
111
  --prime-ref-font-size-14: 0.875rem;
@@ -197,6 +199,19 @@
197
199
  --prime-badge-xs-radius: var(--prime-ref-radius-4);
198
200
  --prime-badge-xs-text-size: var(--prime-ref-font-size-12);
199
201
  --prime-border-width: 1px;
202
+ --prime-bottom-nav-blur: 0.5rem;
203
+ --prime-bottom-nav-floating-inset: var(--prime-ref-space-3);
204
+ --prime-bottom-nav-floating-item-size: 2.75rem;
205
+ --prime-bottom-nav-floating-padding: var(--prime-ref-space-1);
206
+ --prime-bottom-nav-height: 3.25rem;
207
+ --prime-bottom-nav-icon-only-height: var(--prime-ref-space-12);
208
+ --prime-bottom-nav-icon-size: var(--prime-ref-icon-20);
209
+ --prime-bottom-nav-indicator-height: var(--prime-ref-space-5);
210
+ --prime-bottom-nav-indicator-width: var(--prime-ref-space-7);
211
+ --prime-bottom-nav-item-gap: var(--prime-ref-space-1);
212
+ --prime-bottom-nav-label-line-height: var(--prime-ref-font-line-height-12);
213
+ --prime-bottom-nav-label-size: var(--prime-ref-font-size-10);
214
+ --prime-bottom-nav-padding-x: var(--prime-ref-space-2);
200
215
  --prime-card-gap: var(--prime-ref-space-4);
201
216
  --prime-card-padding-l: var(--prime-ref-space-6);
202
217
  --prime-card-padding-m: var(--prime-ref-space-5);
@@ -210,6 +225,9 @@
210
225
  --prime-color-accent-soft-hover: var(--prime-ref-color-cobalt-200);
211
226
  --prime-color-accent-text: var(--prime-ref-color-cobalt-700);
212
227
  --prime-color-bg-canvas: var(--prime-ref-color-gray-50);
228
+ --prime-color-bg-edge-shadow: rgba(17, 19, 24, 0.14);
229
+ --prime-color-bg-glass: color-mix(in srgb, var(--prime-ref-color-gray-0) 58%, transparent);
230
+ --prime-color-bg-glass-edge: rgba(255, 255, 255, 0.85);
213
231
  --prime-color-bg-inverse: var(--prime-ref-color-gray-925);
214
232
  --prime-color-bg-raised: var(--prime-ref-color-gray-0);
215
233
  --prime-color-bg-scrim: rgba(17, 19, 24, 0.44);
@@ -352,6 +370,8 @@
352
370
  --prime-control-s-radius: var(--prime-ref-radius-8);
353
371
  --prime-control-s-text-size: var(--prime-ref-font-size-13);
354
372
  --prime-control-s-track: 0.3125rem;
373
+ --prime-control-touch-target: 2.75rem;
374
+ --prime-control-touch-text-size: var(--prime-ref-font-size-16);
355
375
  --prime-control-xl-choice: var(--prime-ref-icon-24);
356
376
  --prime-control-xl-field-padding-x: var(--prime-ref-space-4);
357
377
  --prime-control-xl-gap: var(--prime-ref-space-3);
@@ -453,6 +473,12 @@
453
473
  --prime-shadow-overlay: 0 0 0 1px rgba(17, 19, 24, 0.04), 0 12px 32px -8px rgba(17, 19, 24, 0.18);
454
474
  --prime-shadow-raised: 0 1px 2px rgba(17, 19, 24, 0.04);
455
475
  --prime-shadow-thumb: 0 0 0 1px rgba(17, 19, 24, 0.08), 0 1px 3px rgba(17, 19, 24, 0.16);
476
+ --prime-sheet-handle-area: var(--prime-ref-space-5);
477
+ --prime-sheet-handle-height: var(--prime-ref-space-1);
478
+ --prime-sheet-handle-width: 2.25rem;
479
+ --prime-sheet-min-width: 35rem;
480
+ --prime-sheet-radius: var(--prime-ref-radius-16);
481
+ --prime-sheet-top-gap: var(--prime-ref-space-10);
456
482
  --prime-space-0: var(--prime-ref-space-0);
457
483
  --prime-space-1: var(--prime-ref-space-1);
458
484
  --prime-space-10: var(--prime-ref-space-10);
@@ -574,6 +600,9 @@
574
600
  --prime-color-accent-soft-hover: color-mix(in srgb, var(--prime-ref-color-cobalt-500) 28%, transparent);
575
601
  --prime-color-accent-text: var(--prime-ref-color-cobalt-400);
576
602
  --prime-color-bg-canvas: var(--prime-ref-color-gray-950);
603
+ --prime-color-bg-edge-shadow: rgba(0, 0, 0, 0.5);
604
+ --prime-color-bg-glass: color-mix(in srgb, var(--prime-ref-color-gray-875) 56%, transparent);
605
+ --prime-color-bg-glass-edge: rgba(255, 255, 255, 0.16);
577
606
  --prime-color-bg-inverse: var(--prime-ref-color-gray-100);
578
607
  --prime-color-bg-raised: var(--prime-ref-color-gray-875);
579
608
  --prime-color-bg-scrim: rgba(0, 0, 0, 0.6);
@@ -743,407 +772,541 @@ input::-moz-focus-inner {
743
772
  --prime-motion-press-scale-compact: 1;
744
773
  }
745
774
  }
746
- /* src/components/scroll-container/ScrollContainer.module.css */
747
- .ScrollContainer_root {
748
- box-sizing: border-box;
749
- min-width: 0;
750
- min-height: 0;
751
- scrollbar-width: thin;
752
- scrollbar-color: var(--prime-color-fill-strong) transparent;
753
- }
754
- .ScrollContainer_root::-webkit-scrollbar {
755
- width: var(--prime-space-2);
756
- height: var(--prime-space-2);
757
- }
758
- .ScrollContainer_root::-webkit-scrollbar-track {
759
- background: transparent;
775
+ /* src/internal/fieldSurface.module.css */
776
+ :where(.fieldSurface_surface) {
777
+ background: var(--prime-color-field-bg);
778
+ box-shadow: inset 0 0 0 var(--prime-border-width) var(--prime-color-border-control);
779
+ color: var(--prime-color-text-primary);
780
+ transition: background-color var(--prime-motion-duration-fast) var(--prime-motion-easing-standard), box-shadow var(--prime-motion-duration-fast) var(--prime-motion-easing-standard);
760
781
  }
761
- .ScrollContainer_root::-webkit-scrollbar-thumb {
762
- border: calc(var(--prime-space-1) / 2) solid transparent;
763
- border-radius: var(--prime-radius-full);
764
- background: var(--prime-color-fill-strong);
765
- background-clip: padding-box;
782
+ @media (hover: hover) {
783
+ .fieldSurface_surface:hover:not(:where(:focus-visible, :has(:is(input, textarea):focus-visible), :disabled, [data-disabled=true], :has(:is(input, textarea):disabled), [data-readonly=true], :has(> input:read-only))) {
784
+ background: var(--prime-color-field-bg-hover);
785
+ }
766
786
  }
767
- .ScrollContainer_root::-webkit-scrollbar-thumb:hover {
768
- background-color: var(--prime-color-fill-strong-hover);
787
+ .fieldSurface_surface:is(:focus-visible, :has(:is(input, textarea):focus-visible)) {
788
+ background: var(--prime-color-field-bg-focus);
769
789
  }
770
- .ScrollContainer_root::-webkit-scrollbar-corner {
771
- background: transparent;
790
+ .fieldSurface_surface:is(:focus-visible, :has(:is(input, textarea):focus-visible)):not(:where([data-focus-ring=false], [data-focus-ring=false] *)) {
791
+ outline: var(--prime-focus-width) solid var(--prime-color-focus-ring);
792
+ outline-offset: var(--prime-focus-offset-inset);
772
793
  }
773
- .ScrollContainer_vertical {
774
- overflow-x: hidden;
775
- overflow-y: auto;
794
+ .fieldSurface_surface:is([data-invalid=true], [aria-invalid=true], :has(> :is(input, textarea)[aria-invalid=true])) {
795
+ box-shadow: inset 0 0 0 var(--prime-border-width) var(--prime-color-danger-border);
796
+ outline-color: var(--prime-color-danger-border);
776
797
  }
777
- .ScrollContainer_horizontal {
778
- overflow-x: auto;
779
- overflow-y: hidden;
798
+ .fieldSurface_surface:is(:disabled, [data-disabled=true], :has(:is(input, textarea):disabled)) {
799
+ background: var(--prime-color-field-bg-disabled);
800
+ box-shadow: none;
801
+ color: var(--prime-color-text-disabled);
802
+ cursor: not-allowed;
780
803
  }
781
- .ScrollContainer_both {
782
- overflow: auto;
804
+
805
+ /* src/internal/fieldTier.module.css */
806
+ .fieldTier_tier {
807
+ --field-h: var(--prime-control-m-height);
808
+ --field-px: var(--prime-control-m-field-padding-x);
809
+ --field-gap: var(--prime-control-m-gap);
810
+ --field-icon: var(--prime-control-m-icon);
811
+ --field-radius: var(--prime-control-m-radius);
812
+ --field-text: var(--prime-control-m-text-size);
813
+ --field-lh: var(--prime-control-m-line-height);
814
+ --field-button-px: var(--prime-control-m-padding-x);
815
+ --field-input-text: var(--field-text);
816
+ --field-input-lh: var(--field-lh);
783
817
  }
784
- .ScrollContainer_overscrollContain {
785
- overscroll-behavior: contain;
818
+ @media (pointer: coarse), (max-width: 639px) {
819
+ .fieldTier_tier {
820
+ --field-input-text: max(var(--field-text), var(--prime-control-touch-text-size));
821
+ --field-input-lh: max(var(--field-lh), var(--prime-control-m-line-height));
822
+ }
786
823
  }
787
- .ScrollContainer_overscrollNone {
788
- overscroll-behavior: none;
824
+ .fieldTier_tier[data-size=xs] {
825
+ --field-h: var(--prime-control-xs-height);
826
+ --field-px: var(--prime-control-xs-field-padding-x);
827
+ --field-gap: var(--prime-control-xs-gap);
828
+ --field-icon: var(--prime-control-xs-icon);
829
+ --field-radius: var(--prime-control-xs-radius);
830
+ --field-text: var(--prime-control-xs-text-size);
831
+ --field-lh: var(--prime-control-xs-line-height);
832
+ --field-button-px: var(--prime-control-xs-padding-x);
789
833
  }
790
- .ScrollContainer_scrollbarHidden {
791
- scrollbar-width: none;
834
+ .fieldTier_tier[data-size=s] {
835
+ --field-h: var(--prime-control-s-height);
836
+ --field-px: var(--prime-control-s-field-padding-x);
837
+ --field-gap: var(--prime-control-s-gap);
838
+ --field-icon: var(--prime-control-s-icon);
839
+ --field-radius: var(--prime-control-s-radius);
840
+ --field-text: var(--prime-control-s-text-size);
841
+ --field-lh: var(--prime-control-s-line-height);
842
+ --field-button-px: var(--prime-control-s-padding-x);
792
843
  }
793
- .ScrollContainer_scrollbarHidden::-webkit-scrollbar {
794
- display: none;
844
+ .fieldTier_tier[data-size=l] {
845
+ --field-h: var(--prime-control-l-height);
846
+ --field-px: var(--prime-control-l-field-padding-x);
847
+ --field-gap: var(--prime-control-l-gap);
848
+ --field-icon: var(--prime-control-l-icon);
849
+ --field-radius: var(--prime-control-l-radius);
850
+ --field-text: var(--prime-control-l-text-size);
851
+ --field-lh: var(--prime-control-l-line-height);
852
+ --field-button-px: var(--prime-control-l-padding-x);
795
853
  }
796
- .ScrollContainer_root[data-fade] {
797
- --fade-start: 0px;
798
- --fade-end: 0px;
799
- --fade-dir: to bottom;
854
+ .fieldTier_tier[data-size=xl] {
855
+ --field-h: var(--prime-control-xl-height);
856
+ --field-px: var(--prime-control-xl-field-padding-x);
857
+ --field-gap: var(--prime-control-xl-gap);
858
+ --field-icon: var(--prime-control-xl-icon);
859
+ --field-radius: var(--prime-control-xl-radius);
860
+ --field-text: var(--prime-control-xl-text-size);
861
+ --field-lh: var(--prime-control-xl-line-height);
862
+ --field-button-px: var(--prime-control-xl-padding-x);
800
863
  }
801
- .ScrollContainer_root[data-fade=horizontal] {
802
- --fade-dir: to right;
864
+
865
+ /* src/internal/fieldTrigger.module.css */
866
+ :where(.fieldTrigger_trigger) {
867
+ --prime-icon-size: var(--field-icon);
868
+ position: relative;
869
+ box-sizing: border-box;
870
+ display: flex;
871
+ align-items: center;
872
+ gap: var(--field-px);
873
+ min-width: 0;
874
+ height: var(--field-h);
875
+ margin: 0;
876
+ padding-block: 0;
877
+ padding-inline: var(--field-px);
878
+ border: 0;
879
+ border-radius: var(--field-radius);
880
+ font-family: var(--prime-font-family-sans);
881
+ font-size: var(--field-text);
882
+ font-weight: var(--prime-font-weight-regular);
883
+ line-height: var(--field-lh);
884
+ text-align: start;
885
+ cursor: pointer;
886
+ outline: none;
803
887
  }
804
- .ScrollContainer_root[data-fade=horizontal]:dir(rtl) {
805
- --fade-dir: to left;
888
+ .fieldTrigger_trigger {
889
+ transition:
890
+ background-color var(--prime-motion-duration-fast) var(--prime-motion-easing-standard),
891
+ box-shadow var(--prime-motion-duration-fast) var(--prime-motion-easing-standard),
892
+ transform var(--prime-motion-duration-fast) var(--prime-motion-easing-standard);
806
893
  }
807
- .ScrollContainer_root[data-fade][data-overflow-start=true] {
808
- --fade-start: var(--prime-space-8);
894
+ .fieldTrigger_trigger:active:not(:disabled) {
895
+ transform: scale(var(--prime-motion-press-scale));
809
896
  }
810
- .ScrollContainer_root[data-fade][data-overflow-end=true] {
811
- --fade-end: var(--prime-space-8);
897
+ .fieldTrigger_trigger[data-state=open]:not(:disabled) {
898
+ background: var(--prime-color-field-bg-focus);
812
899
  }
813
- .ScrollContainer_root[data-fade]:is([data-overflow-start=true], [data-overflow-end=true]) {
814
- mask-image:
815
- linear-gradient(
816
- var(--fade-dir),
817
- transparent,
818
- var(--prime-color-text-primary) var(--fade-start),
819
- var(--prime-color-text-primary) calc(100% - var(--fade-end)),
820
- transparent);
900
+
901
+ /* src/internal/touchTarget.module.css */
902
+ @media (pointer: coarse) {
903
+ :where(.touchTarget_target, .touchTarget_targetBlock) {
904
+ position: relative;
905
+ }
906
+ .touchTarget_target::after,
907
+ .touchTarget_targetBlock::after {
908
+ content: "";
909
+ position: absolute;
910
+ inset: min(0px, calc((100% - var(--prime-control-touch-target)) / 2));
911
+ }
912
+ .touchTarget_targetBlock::after {
913
+ inset-inline: 0;
914
+ }
821
915
  }
822
916
 
823
- /* src/layout/app-shell/AppShell.module.css */
824
- .AppShell_root {
825
- --shell-gutter: var(--prime-layout-gutter-s);
826
- --shell-top: var(--prime-space-6);
827
- box-sizing: border-box;
828
- display: grid;
829
- grid-template-columns: auto minmax(0, 1fr);
830
- width: 100%;
831
- min-width: 0;
832
- min-height: 100dvh;
833
- background: var(--prime-color-bg-canvas);
834
- color: var(--prime-color-text-primary);
917
+ /* src/internal/iconBox.module.css */
918
+ .iconBox_box {
919
+ flex: 0 0 auto;
920
+ width: var(--icon-box);
921
+ height: var(--icon-box);
835
922
  }
836
- .AppShell_root:not(:has(> .AppShell_nav)) {
837
- grid-template-columns: minmax(0, 1fr);
923
+ .iconBox_xs {
924
+ --icon-box: var(--prime-icon-xs);
838
925
  }
839
- .AppShell_root[data-fill-viewport=true] {
840
- height: 100dvh;
841
- min-height: 0;
842
- overflow: hidden;
926
+ .iconBox_s {
927
+ --icon-box: var(--prime-icon-s);
843
928
  }
844
- @media (min-width: 640px) {
845
- .AppShell_root {
846
- --shell-gutter: var(--prime-layout-gutter-m);
847
- }
929
+ .iconBox_m {
930
+ --icon-box: var(--prime-icon-m);
848
931
  }
849
- @media (min-width: 1024px) {
850
- .AppShell_root {
851
- --shell-gutter: var(--prime-layout-gutter-l);
852
- --shell-top: var(--prime-space-10);
853
- }
932
+ .iconBox_l {
933
+ --icon-box: var(--prime-icon-l);
854
934
  }
855
- .AppShell_nav {
856
- position: sticky;
857
- top: 0;
858
- box-sizing: border-box;
859
- display: flex;
860
- height: 100dvh;
861
- min-width: 0;
935
+ .iconBox_xl {
936
+ --icon-box: var(--prime-icon-xl);
862
937
  }
863
- .AppShell_root[data-fill-viewport=true] > .AppShell_nav {
864
- position: static;
865
- height: 100%;
866
- min-height: 0;
938
+ .iconBox_inherit.iconBox_xs {
939
+ --icon-box: var(--prime-icon-size, var(--prime-control-xs-icon));
867
940
  }
868
- .AppShell_panel {
869
- --prime-color-field-bg: var(--prime-color-field-bg-surface);
870
- --prime-color-card-bg: var(--prime-color-bg-sunken);
871
- --prime-card-shadow: none;
872
- box-sizing: border-box;
873
- display: flex;
874
- flex-direction: column;
875
- min-width: 0;
876
- min-height: 0;
877
- overflow: clip;
878
- background: var(--prime-color-bg-surface);
879
- color: var(--prime-color-text-primary);
941
+ .iconBox_inherit.iconBox_s {
942
+ --icon-box: var(--prime-icon-size, var(--prime-control-s-icon));
880
943
  }
881
- .AppShell_header {
882
- position: sticky;
883
- top: 0;
884
- z-index: var(--prime-z-sticky);
885
- box-sizing: border-box;
886
- display: flex;
887
- flex: none;
888
- align-items: center;
889
- gap: var(--prime-space-3);
890
- min-width: 0;
891
- min-height: calc(var(--prime-control-m-height) + 2 * var(--prime-space-3));
892
- padding-block: var(--prime-space-3);
893
- padding-inline: var(--shell-gutter);
894
- background: var(--prime-color-bg-surface);
944
+ .iconBox_inherit.iconBox_m {
945
+ --icon-box: var(--prime-icon-size, var(--prime-control-m-icon));
895
946
  }
896
- .AppShell_main {
897
- box-sizing: border-box;
898
- display: flex;
899
- flex: 1 1 auto;
900
- flex-direction: column;
901
- min-width: 0;
902
- min-height: 0;
903
- margin: 0;
904
- padding-block: var(--shell-top) var(--prime-space-16);
905
- padding-inline: var(--shell-gutter);
947
+ .iconBox_inherit.iconBox_l {
948
+ --icon-box: var(--prime-icon-size, var(--prime-control-l-icon));
906
949
  }
907
- .AppShell_main[data-content-width=contained] {
908
- padding-inline: max(var(--shell-gutter), calc((100% - var(--prime-layout-content-max-width)) / 2));
950
+ .iconBox_inherit.iconBox_xl {
951
+ --icon-box: var(--prime-icon-size, var(--prime-control-xl-icon));
909
952
  }
910
953
 
911
- /* src/internal/palette.module.css */
912
- .palette_hue {
913
- --hue-soft: var(--prime-color-palette-gray-soft);
914
- --hue-text: var(--prime-color-palette-gray-text);
915
- --hue-solid: var(--prime-color-palette-gray-solid);
916
- --hue-solid-fg: var(--prime-color-palette-gray-solid-fg);
954
+ /* src/internal/textTone.module.css */
955
+ .textTone_tone[data-tone=secondary] {
956
+ color: var(--prime-color-text-secondary);
917
957
  }
918
- .palette_hue[data-color=red] {
919
- --hue-soft: var(--prime-color-palette-red-soft);
920
- --hue-text: var(--prime-color-palette-red-text);
921
- --hue-solid: var(--prime-color-palette-red-solid);
922
- --hue-solid-fg: var(--prime-color-palette-red-solid-fg);
958
+ .textTone_tone[data-tone=muted] {
959
+ color: var(--prime-color-text-muted);
923
960
  }
924
- .palette_hue[data-color=blue] {
925
- --hue-soft: var(--prime-color-palette-blue-soft);
926
- --hue-text: var(--prime-color-palette-blue-text);
927
- --hue-solid: var(--prime-color-palette-blue-solid);
928
- --hue-solid-fg: var(--prime-color-palette-blue-solid-fg);
961
+ .textTone_tone[data-tone=accent] {
962
+ color: var(--prime-color-accent-text);
929
963
  }
930
- .palette_hue[data-color=green] {
931
- --hue-soft: var(--prime-color-palette-green-soft);
932
- --hue-text: var(--prime-color-palette-green-text);
933
- --hue-solid: var(--prime-color-palette-green-solid);
934
- --hue-solid-fg: var(--prime-color-palette-green-solid-fg);
964
+ .textTone_tone[data-tone=success] {
965
+ color: var(--prime-color-success-text);
935
966
  }
936
- .palette_hue[data-color=orange] {
937
- --hue-soft: var(--prime-color-palette-orange-soft);
938
- --hue-text: var(--prime-color-palette-orange-text);
939
- --hue-solid: var(--prime-color-palette-orange-solid);
940
- --hue-solid-fg: var(--prime-color-palette-orange-solid-fg);
967
+ .textTone_tone[data-tone=warning] {
968
+ color: var(--prime-color-warning-text);
941
969
  }
942
- .palette_hue[data-color=yellow] {
943
- --hue-soft: var(--prime-color-palette-yellow-soft);
944
- --hue-text: var(--prime-color-palette-yellow-text);
945
- --hue-solid: var(--prime-color-palette-yellow-solid);
946
- --hue-solid-fg: var(--prime-color-palette-yellow-solid-fg);
970
+ .textTone_tone[data-tone=danger] {
971
+ color: var(--prime-color-danger-text);
947
972
  }
948
- .palette_hue[data-color=purple] {
949
- --hue-soft: var(--prime-color-palette-purple-soft);
950
- --hue-text: var(--prime-color-palette-purple-text);
951
- --hue-solid: var(--prime-color-palette-purple-solid);
952
- --hue-solid-fg: var(--prime-color-palette-purple-solid-fg);
973
+
974
+ /* src/internal/VisuallyHidden.module.css */
975
+ .VisuallyHidden_root {
976
+ position: absolute;
977
+ top: 0;
978
+ inset-inline-start: 0;
979
+ width: var(--prime-border-width);
980
+ height: var(--prime-border-width);
981
+ padding: 0;
982
+ margin: calc(-1 * var(--prime-border-width));
983
+ overflow: hidden;
984
+ clip-path: inset(50%);
985
+ white-space: nowrap;
986
+ border: 0;
953
987
  }
954
- .palette_hue[data-color=sky] {
955
- --hue-soft: var(--prime-color-palette-sky-soft);
956
- --hue-text: var(--prime-color-palette-sky-text);
957
- --hue-solid: var(--prime-color-palette-sky-solid);
958
- --hue-solid-fg: var(--prime-color-palette-sky-solid-fg);
988
+
989
+ /* src/components/spinner/Spinner.module.css */
990
+ .Spinner_root {
991
+ position: relative;
992
+ display: inline-flex;
993
+ align-items: center;
994
+ justify-content: center;
995
+ color: inherit;
996
+ vertical-align: middle;
959
997
  }
960
- .palette_hue[data-color=pink] {
961
- --hue-soft: var(--prime-color-palette-pink-soft);
962
- --hue-text: var(--prime-color-palette-pink-text);
963
- --hue-solid: var(--prime-color-palette-pink-solid);
964
- --hue-solid-fg: var(--prime-color-palette-pink-solid-fg);
998
+ .Spinner_ring {
999
+ box-sizing: border-box;
1000
+ width: 100%;
1001
+ height: 100%;
1002
+ border: calc(var(--prime-border-width) * 2) solid currentColor;
1003
+ border-inline-end-color: transparent;
1004
+ border-radius: var(--prime-radius-full);
1005
+ animation: Spinner_primeSpinnerTurn calc(var(--prime-motion-duration-slow) * 3) linear infinite;
965
1006
  }
966
- .palette_hue[data-color=teal] {
967
- --hue-soft: var(--prime-color-palette-teal-soft);
968
- --hue-text: var(--prime-color-palette-teal-text);
969
- --hue-solid: var(--prime-color-palette-teal-solid);
970
- --hue-solid-fg: var(--prime-color-palette-teal-solid-fg);
1007
+ @keyframes Spinner_primeSpinnerTurn {
1008
+ to {
1009
+ transform: rotate(360deg);
1010
+ }
971
1011
  }
972
1012
 
973
- /* src/components/avatar/Avatar.module.css */
974
- .Avatar_root,
975
- .Avatar_overflow {
976
- --avatar-size: var(--avatar-slot-size, var(--prime-avatar-m));
1013
+ /* src/components/button/Button.module.css */
1014
+ .Button_root {
1015
+ --prime-icon-size: var(--field-icon);
1016
+ --btn-px-icon: max(calc(var(--field-button-px) - var(--prime-space-1)), var(--prime-space-2));
1017
+ --btn-bg: transparent;
1018
+ --btn-bg-hover: var(--prime-color-fill-subtle);
1019
+ --btn-bg-active: var(--btn-bg-hover);
1020
+ --btn-fg: var(--prime-color-text-primary);
1021
+ --btn-line: transparent;
977
1022
  position: relative;
978
1023
  box-sizing: border-box;
979
1024
  display: inline-flex;
980
- flex-shrink: 0;
981
1025
  align-items: center;
982
1026
  justify-content: center;
983
- width: var(--avatar-size);
984
- height: var(--avatar-size);
985
- border-radius: var(--prime-radius-full);
986
- font-size: calc(var(--avatar-size) * 0.4);
987
- line-height: 1;
1027
+ gap: var(--field-gap);
1028
+ height: var(--field-h);
1029
+ min-width: var(--field-h);
1030
+ max-width: 100%;
1031
+ padding-block: 0;
1032
+ padding-inline: var(--field-button-px);
1033
+ margin: 0;
1034
+ border: 0;
1035
+ border-radius: var(--field-radius);
1036
+ background: var(--btn-bg);
1037
+ box-shadow: inset 0 0 0 var(--prime-border-width) var(--btn-line);
1038
+ color: var(--btn-fg);
1039
+ font-family: inherit;
1040
+ font-size: var(--field-text);
1041
+ line-height: var(--field-lh);
988
1042
  font-weight: var(--prime-font-weight-medium);
1043
+ white-space: nowrap;
1044
+ text-decoration: none;
989
1045
  vertical-align: middle;
1046
+ cursor: pointer;
990
1047
  user-select: none;
1048
+ transition:
1049
+ background-color var(--prime-motion-duration-fast) var(--prime-motion-easing-standard),
1050
+ color var(--prime-motion-duration-fast) var(--prime-motion-easing-standard),
1051
+ box-shadow var(--prime-motion-duration-fast) var(--prime-motion-easing-standard),
1052
+ transform var(--prime-motion-duration-fast) var(--prime-motion-easing-standard);
991
1053
  }
992
- .Avatar_root {
993
- background: var(--hue-soft);
994
- color: var(--hue-text);
995
- }
996
- :is(.Avatar_root, .Avatar_overflow)[data-size=xs] {
997
- --avatar-size: var(--avatar-slot-size, var(--prime-avatar-xs));
998
- }
999
- :is(.Avatar_root, .Avatar_overflow)[data-size=s] {
1000
- --avatar-size: var(--avatar-slot-size, var(--prime-avatar-s));
1001
- }
1002
- :is(.Avatar_root, .Avatar_overflow)[data-size=l] {
1003
- --avatar-size: var(--avatar-slot-size, var(--prime-avatar-l));
1054
+ .Button_root[data-leading-icon=true] {
1055
+ padding-inline-start: var(--btn-px-icon);
1004
1056
  }
1005
- :is(.Avatar_root, .Avatar_overflow)[data-size=xl] {
1006
- --avatar-size: var(--avatar-slot-size, var(--prime-avatar-xl));
1057
+ .Button_root[data-trailing-icon=true] {
1058
+ padding-inline-end: var(--btn-px-icon);
1007
1059
  }
1008
- :is(.Avatar_root, .Avatar_overflow)[data-size="2xl"] {
1009
- --avatar-size: var(--avatar-slot-size, var(--prime-avatar-2xl));
1060
+ .Button_root[data-icon-only=true] {
1061
+ width: var(--field-h);
1062
+ padding-inline: 0;
1010
1063
  }
1011
- .Avatar_image {
1012
- position: absolute;
1013
- inset: 0;
1014
- z-index: 1;
1015
- border-radius: inherit;
1064
+ .Button_root[data-full-width=true] {
1065
+ display: flex;
1016
1066
  width: 100%;
1017
- height: 100%;
1018
- object-fit: cover;
1019
- transition: opacity var(--prime-motion-duration-base) var(--prime-motion-easing-enter);
1067
+ min-width: 0;
1020
1068
  }
1021
- .Avatar_image[data-status=loading] {
1022
- opacity: 0;
1069
+ .Button_root[data-tone=accent][data-variant=solid] {
1070
+ --btn-bg: var(--prime-color-accent-default);
1071
+ --btn-bg-hover: var(--prime-color-accent-hover);
1072
+ --btn-fg: var(--prime-color-accent-fg);
1023
1073
  }
1024
- .Avatar_image[data-status=error] {
1025
- display: none;
1074
+ .Button_root[data-tone=accent][data-variant=soft] {
1075
+ --btn-bg: var(--prime-color-accent-soft);
1076
+ --btn-bg-hover: var(--prime-color-accent-soft-hover);
1077
+ --btn-fg: var(--prime-color-accent-text);
1026
1078
  }
1027
- .Avatar_fallback {
1028
- position: absolute;
1029
- inset: 0;
1030
- z-index: 0;
1031
- border-radius: inherit;
1032
- display: flex;
1033
- align-items: center;
1034
- justify-content: center;
1035
- overflow: hidden;
1036
- text-align: center;
1079
+ .Button_root[data-tone=accent][data-variant=outline] {
1080
+ --btn-line: var(--prime-color-border-default);
1081
+ --btn-fg: var(--prime-color-accent-text);
1037
1082
  }
1038
- .Avatar_fallback > svg {
1039
- width: 50%;
1040
- height: 50%;
1083
+ .Button_root[data-tone=accent][data-variant=ghost] {
1084
+ --btn-bg-active: var(--prime-color-fill-subtle-active);
1085
+ --btn-fg: var(--prime-color-accent-text);
1041
1086
  }
1042
- .Avatar_status {
1043
- position: absolute;
1044
- inset-block-end: 0;
1045
- inset-inline-end: 0;
1046
- z-index: 2;
1047
- box-sizing: border-box;
1048
- width: calc(var(--avatar-size) * 0.3);
1049
- height: calc(var(--avatar-size) * 0.3);
1050
- border-radius: var(--prime-radius-full);
1051
- background: var(--prime-color-success-default);
1052
- box-shadow: 0 0 0 calc(2 * var(--prime-border-width)) var(--avatar-ring, var(--prime-color-bg-canvas));
1087
+ .Button_root[data-tone=neutral][data-variant=solid] {
1088
+ --btn-bg: var(--prime-color-fill-muted);
1089
+ --btn-bg-hover: var(--prime-color-fill-muted-hover);
1053
1090
  }
1054
- .Avatar_status[data-status=offline] {
1055
- background: var(--prime-color-palette-gray-solid);
1091
+ .Button_root[data-tone=neutral][data-variant=soft] {
1092
+ --btn-bg: var(--prime-color-fill-subtle);
1093
+ --btn-bg-hover: var(--prime-color-fill-subtle-active);
1056
1094
  }
1057
- .Avatar_status[data-status=away] {
1058
- background: var(--prime-color-warning-default);
1095
+ .Button_root[data-tone=neutral][data-variant=outline] {
1096
+ --btn-line: var(--prime-color-border-default);
1059
1097
  }
1060
- .Avatar_status[data-status=busy] {
1061
- background: var(--prime-color-danger-default);
1098
+ .Button_root[data-tone=neutral][data-variant=ghost] {
1099
+ --btn-bg-active: var(--prime-color-fill-subtle-active);
1100
+ --btn-fg: var(--prime-color-text-secondary);
1062
1101
  }
1063
- .Avatar_group {
1064
- display: inline-flex;
1065
- flex-direction: row;
1066
- align-items: center;
1067
- isolation: isolate;
1102
+ @media (hover: hover) {
1103
+ .Button_root[data-tone=neutral][data-variant=ghost]:hover:not([data-disabled=true], [data-loading=true]) {
1104
+ --btn-fg: var(--prime-color-text-primary);
1105
+ }
1068
1106
  }
1069
- .Avatar_group > * {
1070
- box-shadow: 0 0 0 calc(2 * var(--prime-border-width)) var(--avatar-ring, var(--prime-color-bg-canvas));
1107
+ .Button_root[data-tone=danger][data-variant=solid] {
1108
+ --btn-bg: var(--prime-color-danger-default);
1109
+ --btn-bg-hover: var(--prime-color-danger-hover);
1110
+ --btn-fg: var(--prime-color-danger-fg);
1071
1111
  }
1072
- .Avatar_group > .Avatar_root {
1073
- background: linear-gradient(var(--hue-soft), var(--hue-soft)), var(--avatar-ring, var(--prime-color-bg-canvas));
1112
+ .Button_root[data-tone=danger][data-variant=soft] {
1113
+ --btn-bg: var(--prime-color-danger-soft);
1114
+ --btn-bg-hover: color-mix( in srgb, var(--prime-color-danger-soft) 88%, var(--prime-color-danger-default) );
1115
+ --btn-fg: var(--prime-color-danger-text);
1074
1116
  }
1075
- .Avatar_group > * + * {
1076
- margin-inline-start: calc(var(--avatar-size) * -0.25);
1117
+ .Button_root[data-tone=danger][data-variant=outline] {
1118
+ --btn-line: var(--prime-color-border-default);
1119
+ --btn-bg-hover: var(--prime-color-danger-soft);
1120
+ --btn-fg: var(--prime-color-danger-text);
1077
1121
  }
1078
- .Avatar_overflow {
1079
- background: linear-gradient(var(--prime-color-fill-muted), var(--prime-color-fill-muted)), var(--avatar-ring, var(--prime-color-bg-canvas));
1080
- color: var(--prime-color-text-secondary);
1081
- font-variant-numeric: tabular-nums;
1082
- font-size: calc(var(--avatar-size) * 0.36);
1122
+ .Button_root[data-tone=danger][data-variant=ghost] {
1123
+ --btn-bg-hover: var(--prime-color-danger-soft);
1124
+ --btn-fg: var(--prime-color-danger-text);
1083
1125
  }
1084
-
1085
- /* src/internal/iconBox.module.css */
1086
- .iconBox_box {
1087
- flex: 0 0 auto;
1088
- width: var(--icon-box);
1089
- height: var(--icon-box);
1126
+ .Button_root[data-tone=inherit] {
1127
+ --btn-fg: currentColor;
1128
+ --btn-bg-hover: color-mix(in srgb, currentColor 12%, transparent);
1129
+ --btn-bg-active: color-mix(in srgb, currentColor 18%, transparent);
1090
1130
  }
1091
- .iconBox_xs {
1092
- --icon-box: var(--prime-icon-xs);
1131
+ .Button_root[data-tone=inherit][data-variant=soft] {
1132
+ --btn-bg: color-mix(in srgb, currentColor 12%, transparent);
1133
+ --btn-bg-hover: color-mix(in srgb, currentColor 18%, transparent);
1134
+ --btn-bg-active: color-mix(in srgb, currentColor 24%, transparent);
1093
1135
  }
1094
- .iconBox_s {
1095
- --icon-box: var(--prime-icon-s);
1136
+ .Button_root[data-tone=inherit][data-variant=outline] {
1137
+ --btn-line: color-mix(in srgb, currentColor 32%, transparent);
1096
1138
  }
1097
- .iconBox_m {
1098
- --icon-box: var(--prime-icon-m);
1139
+ @media (hover: hover) {
1140
+ .Button_root:hover:not([data-disabled=true], [data-loading=true]) {
1141
+ background-color: var(--btn-bg-hover);
1142
+ }
1099
1143
  }
1100
- .iconBox_l {
1101
- --icon-box: var(--prime-icon-l);
1144
+ .Button_root:active:not([data-disabled=true], [data-loading=true]) {
1145
+ background-color: var(--btn-bg-active);
1146
+ transform: scale(var(--prime-motion-press-scale));
1102
1147
  }
1103
- .iconBox_xl {
1104
- --icon-box: var(--prime-icon-xl);
1148
+ .Button_root:focus-visible {
1149
+ outline: var(--prime-focus-width) solid var(--prime-color-focus-ring);
1150
+ outline-offset: var(--prime-focus-offset);
1105
1151
  }
1106
- .iconBox_inherit.iconBox_xs {
1107
- --icon-box: var(--prime-icon-size, var(--prime-control-xs-icon));
1152
+ .Button_root[data-tone=inherit]:focus-visible {
1153
+ outline-color: currentColor;
1108
1154
  }
1109
- .iconBox_inherit.iconBox_s {
1110
- --icon-box: var(--prime-icon-size, var(--prime-control-s-icon));
1155
+ .Button_root[aria-current=page]:is([data-variant=ghost], [data-variant=soft]):not([data-tone=accent][data-variant=soft]) {
1156
+ --btn-bg: var(--prime-color-fill-subtle-active);
1157
+ --btn-fg: var(--prime-color-text-primary);
1111
1158
  }
1112
- .iconBox_inherit.iconBox_m {
1113
- --icon-box: var(--prime-icon-size, var(--prime-control-m-icon));
1159
+ .Button_root[data-variant][data-disabled=true] {
1160
+ --btn-bg: var(--prime-color-fill-muted);
1161
+ --btn-fg: var(--prime-color-text-disabled);
1162
+ --btn-line: transparent;
1163
+ background-image: none;
1164
+ box-shadow: none;
1165
+ cursor: not-allowed;
1114
1166
  }
1115
- .iconBox_inherit.iconBox_l {
1116
- --icon-box: var(--prime-icon-size, var(--prime-control-l-icon));
1167
+ .Button_root[data-variant=ghost][data-disabled=true] {
1168
+ --btn-bg: transparent;
1117
1169
  }
1118
- .iconBox_inherit.iconBox_xl {
1119
- --icon-box: var(--prime-icon-size, var(--prime-control-xl-icon));
1170
+ .Button_root[data-tone=inherit][data-disabled=true] {
1171
+ --btn-bg: transparent;
1172
+ --btn-fg: color-mix(in srgb, currentColor 48%, transparent);
1120
1173
  }
1121
-
1122
- /* src/internal/textTone.module.css */
1123
- .textTone_tone[data-tone=secondary] {
1124
- color: var(--prime-color-text-secondary);
1174
+ .Button_root[data-tone=inherit][data-variant=soft][data-disabled=true] {
1175
+ --btn-bg: color-mix(in srgb, currentColor 12%, transparent);
1125
1176
  }
1126
- .textTone_tone[data-tone=muted] {
1127
- color: var(--prime-color-text-muted);
1177
+ .Button_root[aria-disabled=true] {
1178
+ pointer-events: none;
1128
1179
  }
1129
- .textTone_tone[data-tone=accent] {
1130
- color: var(--prime-color-accent-text);
1180
+ .Button_icon {
1181
+ display: inline-flex;
1182
+ flex-shrink: 0;
1183
+ align-items: center;
1184
+ justify-content: center;
1185
+ width: var(--prime-icon-size);
1186
+ height: var(--prime-icon-size);
1131
1187
  }
1132
- .textTone_tone[data-tone=success] {
1133
- color: var(--prime-color-success-text);
1188
+ .Button_icon > svg {
1189
+ display: block;
1190
+ width: 100%;
1191
+ height: 100%;
1134
1192
  }
1135
- .textTone_tone[data-tone=warning] {
1136
- color: var(--prime-color-warning-text);
1193
+ .Button_root > .Button_spinner {
1194
+ order: -1;
1195
+ color: var(--btn-fg);
1137
1196
  }
1138
- .textTone_tone[data-tone=danger] {
1139
- color: var(--prime-color-danger-text);
1197
+ .Button_root[data-loading=true] {
1198
+ cursor: progress;
1199
+ }
1200
+ .Button_root[data-loading=true]:is([data-leading-icon=true], [data-icon-only=true]) > .Button_icon:not(.Button_icon ~ .Button_icon) {
1201
+ display: none;
1202
+ }
1203
+ .Button_root[data-loading-overlay=true] {
1204
+ color: transparent;
1205
+ }
1206
+ .Button_root[data-tone=inherit][data-loading-overlay=true] {
1207
+ color: var(--btn-fg);
1208
+ -webkit-text-fill-color: transparent;
1209
+ }
1210
+ .Button_root[data-tone=inherit][data-loading-overlay=true] > :not(.Button_spinner) {
1211
+ visibility: hidden;
1212
+ }
1213
+ .Button_root[data-loading-overlay=true] > .Button_spinner {
1214
+ position: absolute;
1215
+ inset: 0;
1216
+ margin: auto;
1140
1217
  }
1141
1218
 
1142
- /* src/icons/Icon.module.css */
1143
- .Icon_root {
1219
+ /* src/components/divider/Divider.module.css */
1220
+ .Divider_root {
1221
+ --divider-gap: var(--prime-control-m-gap);
1222
+ --divider-icon: var(--prime-control-m-icon);
1223
+ --divider-text: var(--prime-control-m-label-size);
1224
+ --divider-lh: var(--prime-control-m-label-line-height);
1225
+ --divider-tracking: normal;
1226
+ box-sizing: border-box;
1227
+ display: flex;
1228
+ align-items: center;
1229
+ gap: var(--divider-gap);
1230
+ color: var(--prime-color-text-muted);
1231
+ font-size: var(--divider-text);
1232
+ line-height: var(--divider-lh);
1233
+ letter-spacing: var(--divider-tracking);
1234
+ }
1235
+ .Divider_root[data-size=xs] {
1236
+ --divider-gap: var(--prime-control-xs-gap);
1237
+ --divider-icon: var(--prime-control-xs-icon);
1238
+ --divider-text: var(--prime-control-xs-label-size);
1239
+ --divider-lh: var(--prime-control-xs-label-line-height);
1240
+ --divider-tracking: var(--prime-text-caption-tracking);
1241
+ }
1242
+ .Divider_root[data-size=s] {
1243
+ --divider-gap: var(--prime-control-s-gap);
1244
+ --divider-icon: var(--prime-control-s-icon);
1245
+ --divider-text: var(--prime-control-s-label-size);
1246
+ --divider-lh: var(--prime-control-s-label-line-height);
1247
+ --divider-tracking: var(--prime-text-caption-tracking);
1248
+ }
1249
+ .Divider_root[data-size=l] {
1250
+ --divider-gap: var(--prime-control-l-gap);
1251
+ --divider-icon: var(--prime-control-l-icon);
1252
+ --divider-text: var(--prime-control-l-label-size);
1253
+ --divider-lh: var(--prime-control-l-label-line-height);
1254
+ }
1255
+ .Divider_root[data-size=xl] {
1256
+ --divider-gap: var(--prime-control-xl-gap);
1257
+ --divider-icon: var(--prime-control-xl-icon);
1258
+ --divider-text: var(--prime-control-xl-text-size);
1259
+ --divider-lh: var(--prime-control-xl-line-height);
1260
+ }
1261
+ .Divider_root:not([data-orientation=vertical]) {
1262
+ width: 100%;
1263
+ min-width: 0;
1264
+ }
1265
+ .Divider_root::before,
1266
+ .Divider_root::after {
1267
+ content: "";
1268
+ flex: 1 1 0;
1269
+ height: var(--prime-border-width);
1270
+ background: var(--prime-color-border-subtle);
1271
+ }
1272
+ .Divider_root[data-align=start]::before {
1273
+ display: none;
1274
+ }
1275
+ .Divider_root[data-align=end]::after {
1276
+ display: none;
1277
+ }
1278
+ .Divider_root:not(:empty):not([data-orientation=vertical])::before,
1279
+ .Divider_root:not(:empty):not([data-orientation=vertical])::after {
1280
+ min-width: var(--prime-space-6);
1281
+ }
1282
+ .Divider_root:empty {
1283
+ gap: 0;
1284
+ }
1285
+ .Divider_root:empty::after {
1286
+ display: none;
1287
+ }
1288
+ .Divider_content {
1289
+ --prime-icon-size: var(--divider-icon);
1144
1290
  display: inline-flex;
1145
1291
  align-items: center;
1146
- justify-content: center;
1292
+ gap: var(--divider-gap);
1293
+ min-width: 0;
1294
+ font-weight: var(--prime-font-weight-medium);
1295
+ overflow-wrap: anywhere;
1296
+ }
1297
+ .Divider_root[data-orientation=vertical] {
1298
+ flex-direction: column;
1299
+ align-self: stretch;
1300
+ width: var(--prime-border-width);
1301
+ height: auto;
1302
+ }
1303
+ .Divider_root[data-orientation=vertical]::before,
1304
+ .Divider_root[data-orientation=vertical]::after {
1305
+ width: var(--prime-border-width);
1306
+ height: auto;
1307
+ }
1308
+ .Divider_root[data-orientation=vertical]:not(:empty) {
1309
+ width: auto;
1147
1310
  }
1148
1311
 
1149
1312
  /* src/internal/chipTier.module.css */
@@ -1188,609 +1351,964 @@ input::-moz-focus-inner {
1188
1351
  --prime-icon-size: var(--prime-badge-xl-icon);
1189
1352
  }
1190
1353
 
1191
- /* src/components/badge/Badge.module.css */
1192
- .Badge_root {
1193
- --badge-lh: var(--prime-text-caption-line-height);
1194
- --badge-dot: calc(var(--prime-space-1) + 2 * var(--prime-border-width));
1195
- --badge-pad-start: var(--chip-px);
1196
- --badge-pad-end: var(--chip-px);
1197
- --badge-seg: calc(var(--prime-icon-size) + var(--chip-px) + var(--chip-gap));
1198
- position: relative;
1354
+ /* src/components/kbd/Kbd.module.css */
1355
+ .Kbd_root {
1199
1356
  box-sizing: border-box;
1200
1357
  display: inline-flex;
1358
+ flex-shrink: 0;
1201
1359
  align-items: center;
1360
+ justify-content: center;
1202
1361
  gap: var(--chip-gap);
1203
1362
  height: var(--chip-h);
1204
- width: fit-content;
1205
1363
  min-width: var(--chip-h);
1206
- max-width: 100%;
1207
- padding-inline: var(--badge-pad-start) var(--badge-pad-end);
1364
+ padding-inline: var(--chip-px);
1208
1365
  border-radius: var(--chip-radius);
1366
+ background: var(--prime-color-fill-subtle-active);
1367
+ color: var(--prime-color-text-secondary);
1368
+ font-family: var(--prime-font-family-mono);
1209
1369
  font-size: var(--chip-text);
1210
- line-height: var(--badge-lh);
1370
+ line-height: 1;
1211
1371
  font-weight: var(--prime-font-weight-medium);
1212
1372
  font-variant-numeric: tabular-nums;
1213
1373
  white-space: nowrap;
1214
1374
  vertical-align: middle;
1215
- overflow: hidden;
1216
1375
  }
1217
- .Badge_root[data-tier=l] {
1218
- --badge-lh: var(--prime-text-body-s-line-height);
1219
- --badge-dot: var(--prime-space-2);
1220
- }
1221
- .Badge_root[data-tier=xl] {
1222
- --badge-lh: var(--prime-text-body-m-line-height);
1223
- --badge-dot: var(--prime-space-2);
1376
+ .Kbd_root > * {
1377
+ font-size: inherit;
1378
+ line-height: inherit;
1224
1379
  }
1225
- .Badge_root[data-icon-start=true] {
1226
- --badge-pad-start: 0px;
1380
+ .Kbd_root :where(svg) {
1381
+ flex-shrink: 0;
1382
+ width: var(--prime-icon-size);
1383
+ height: var(--prime-icon-size);
1227
1384
  }
1228
- .Badge_root[data-icon-end=true] {
1229
- --badge-pad-end: 0px;
1230
- }
1231
- .Badge_root[data-icon-only=true] {
1385
+
1386
+ /* src/icons/Icon.module.css */
1387
+ .Icon_root {
1388
+ display: inline-flex;
1389
+ align-items: center;
1232
1390
  justify-content: center;
1233
- width: var(--chip-h);
1234
- padding-inline: 0;
1235
- }
1236
- .Badge_root[data-variant=solid] {
1237
- background: var(--hue-solid);
1238
- color: var(--hue-solid-fg);
1239
- }
1240
- .Badge_root[data-variant=soft] {
1241
- background: var(--hue-soft);
1242
- color: var(--hue-text);
1243
1391
  }
1244
- .Badge_root[data-variant=outline] {
1245
- background: transparent;
1246
- box-shadow: inset 0 0 0 var(--prime-border-width) color-mix(in srgb, var(--hue-text) 32%, transparent);
1247
- color: var(--hue-text);
1392
+
1393
+ /* src/layout/app-header/AppHeader.module.css */
1394
+ .AppHeader_root {
1395
+ container: AppHeader_prime-app-header / inline-size;
1396
+ position: sticky;
1397
+ top: 0;
1398
+ z-index: var(--prime-z-sticky);
1399
+ box-sizing: border-box;
1400
+ flex: none;
1401
+ min-width: 0;
1402
+ padding-block: max(var(--prime-space-3), env(safe-area-inset-top, 0px)) var(--prime-space-3);
1403
+ padding-inline: var(--shell-gutter, var(--prime-space-4));
1404
+ background: var(--prime-color-bg-surface);
1405
+ color: var(--prime-color-text-primary);
1248
1406
  }
1249
- .Badge_root[data-disabled=true] {
1250
- background: var(--prime-color-fill-muted);
1251
- box-shadow: none;
1252
- color: var(--prime-color-text-disabled);
1407
+ @media (max-height: 479px) {
1408
+ .AppHeader_root {
1409
+ position: static;
1410
+ }
1253
1411
  }
1254
- .Badge_dot {
1255
- --dot-size: calc(var(--prime-space-1) + 2 * var(--prime-border-width));
1256
- display: inline-flex;
1257
- flex-shrink: 0;
1412
+ .AppHeader_row {
1413
+ display: flex;
1258
1414
  align-items: center;
1259
- justify-content: center;
1260
- width: var(--badge-dot, var(--dot-size));
1261
- height: var(--badge-dot, var(--dot-size));
1262
- border-radius: var(--prime-radius-full);
1415
+ gap: var(--prime-space-3);
1416
+ min-width: 0;
1417
+ min-height: calc(var(--prime-control-m-height) + var(--prime-space-2));
1263
1418
  }
1264
- .Badge_dot:is([data-size=l], [data-size=xl]) {
1265
- --dot-size: var(--prime-space-2);
1419
+ .AppHeader_start {
1420
+ display: flex;
1421
+ flex: 1 1 auto;
1422
+ align-items: center;
1423
+ gap: var(--prime-space-2);
1424
+ min-width: 0;
1266
1425
  }
1267
- .Badge_dot::before {
1268
- content: "";
1426
+ .AppHeader_actions {
1427
+ display: flex;
1269
1428
  flex: none;
1270
- width: var(--badge-dot, var(--dot-size));
1271
- height: var(--badge-dot, var(--dot-size));
1272
- border-radius: var(--prime-radius-full);
1273
- background: currentColor;
1429
+ align-items: center;
1430
+ gap: var(--prime-space-2);
1274
1431
  }
1275
- .Badge_icon {
1432
+ .AppHeader_title {
1433
+ display: flex;
1434
+ align-items: center;
1435
+ gap: var(--prime-space-2);
1436
+ min-width: 0;
1437
+ }
1438
+ .AppHeader_icon {
1439
+ --prime-icon-size: var(--prime-control-m-icon);
1276
1440
  display: inline-flex;
1277
- flex-shrink: 0;
1441
+ flex: none;
1278
1442
  align-items: center;
1279
1443
  justify-content: center;
1280
- width: var(--prime-icon-size);
1281
- height: var(--prime-icon-size);
1444
+ width: var(--prime-control-m-height);
1445
+ height: var(--prime-control-m-height);
1446
+ border-radius: var(--prime-control-m-radius);
1447
+ background: var(--prime-color-fill-subtle);
1448
+ color: var(--prime-color-text-secondary);
1282
1449
  }
1283
- .Badge_icon > * {
1450
+ .AppHeader_icon > svg {
1284
1451
  width: var(--prime-icon-size);
1285
1452
  height: var(--prime-icon-size);
1286
1453
  }
1287
- .Badge_icon[data-edge] {
1288
- align-self: stretch;
1289
- width: var(--badge-seg);
1290
- height: auto;
1291
- }
1292
- .Badge_dot[data-edge] {
1293
- align-self: stretch;
1294
- width: calc(var(--badge-dot) + var(--chip-px) + var(--chip-gap));
1295
- height: auto;
1296
- }
1297
- .Badge_icon[data-edge=start],
1298
- .Badge_dot[data-edge=start] {
1299
- margin-inline-end: calc(-1 * var(--chip-gap));
1300
- }
1301
- .Badge_icon[data-edge=end],
1302
- .Badge_dot[data-edge=end] {
1303
- margin-inline-start: calc(-1 * var(--chip-gap));
1454
+ .AppHeader_separator[data-orientation=vertical] {
1455
+ align-self: center;
1456
+ height: var(--prime-space-5);
1457
+ margin-inline: var(--prime-space-2);
1304
1458
  }
1305
- .Badge_body {
1306
- display: inline-flex;
1307
- align-self: stretch;
1308
- align-items: center;
1309
- gap: var(--chip-gap);
1459
+ .AppHeader_titleText {
1460
+ display: flex;
1461
+ flex-direction: column;
1310
1462
  min-width: 0;
1311
- overflow: hidden;
1312
- }
1313
- .Badge_root[data-text-only=true] {
1314
- display: inline-block;
1315
- line-height: var(--chip-h);
1316
- text-overflow: ellipsis;
1317
1463
  }
1318
- .Badge_text {
1319
- min-width: 0;
1464
+ .AppHeader_titleName,
1465
+ .AppHeader_description {
1320
1466
  overflow: hidden;
1467
+ white-space: nowrap;
1321
1468
  text-overflow: ellipsis;
1322
1469
  }
1323
- .Badge_root[data-icon-only=true] > .Badge_body {
1324
- justify-content: center;
1470
+ .AppHeader_titleName {
1325
1471
  }
1326
- .Badge_root[data-removable=true] {
1327
- --badge-pad-end: 0px;
1472
+ .AppHeader_description {
1473
+ color: var(--prime-color-text-muted);
1328
1474
  }
1329
- .Badge_remove,
1330
- .Badge_action {
1331
- box-sizing: border-box;
1332
- display: inline-flex;
1475
+ .AppHeader_search {
1476
+ display: flex;
1477
+ flex: 0 1 calc(var(--prime-space-24) * 3);
1333
1478
  align-items: center;
1334
- justify-content: center;
1335
- width: var(--badge-seg);
1336
- padding: 0;
1479
+ gap: var(--field-gap);
1480
+ min-width: 0;
1481
+ height: var(--field-h);
1337
1482
  margin: 0;
1483
+ padding-inline: var(--field-px);
1338
1484
  border: 0;
1339
- background: transparent;
1340
- color: color-mix(in srgb, currentColor 72%, transparent);
1485
+ border-radius: var(--field-radius);
1486
+ color: var(--prime-color-text-placeholder);
1341
1487
  font: inherit;
1488
+ font-size: var(--field-text);
1489
+ line-height: var(--field-lh);
1490
+ text-align: start;
1342
1491
  cursor: pointer;
1343
- appearance: none;
1344
- transition:
1345
- background-color var(--prime-motion-duration-fast) var(--prime-motion-easing-standard),
1346
- color var(--prime-motion-duration-fast) var(--prime-motion-easing-standard),
1347
- opacity var(--prime-motion-duration-fast) var(--prime-motion-easing-standard),
1348
- transform var(--prime-motion-duration-fast) var(--prime-motion-easing-standard);
1349
1492
  }
1350
- .Badge_remove {
1351
- flex: 0 0 auto;
1352
- align-self: stretch;
1493
+ .AppHeader_searchIcon {
1494
+ --prime-icon-size: var(--field-icon);
1495
+ flex: none;
1353
1496
  }
1354
- .Badge_remove:hover:not(:disabled),
1355
- .Badge_action:hover:not(:disabled) {
1356
- background: var(--prime-color-fill-subtle-active);
1357
- color: inherit;
1497
+ .AppHeader_searchText {
1498
+ flex: 1 1 auto;
1499
+ min-width: 0;
1500
+ overflow: hidden;
1501
+ white-space: nowrap;
1502
+ text-overflow: ellipsis;
1358
1503
  }
1359
- .Badge_remove:focus-visible,
1360
- .Badge_action:focus-visible {
1361
- outline: var(--prime-focus-width) solid var(--prime-color-focus-ring);
1362
- outline-offset: var(--prime-focus-offset-inset);
1363
- color: inherit;
1504
+ .AppHeader_searchKbd {
1505
+ flex: none;
1364
1506
  }
1365
- .Badge_remove:disabled,
1366
- .Badge_action:disabled {
1367
- color: var(--prime-color-text-disabled);
1368
- cursor: not-allowed;
1507
+ @media (min-width: 768px) {
1508
+ .AppHeader_menuButton[data-show=narrow] {
1509
+ display: none;
1510
+ }
1369
1511
  }
1370
- .Badge_remove > *,
1371
- .Badge_action > * {
1372
- display: block;
1373
- flex: none;
1374
- width: var(--prime-icon-size);
1375
- height: var(--prime-icon-size);
1512
+ @container AppHeader_prime-app-header (max-width: 35.99rem) {
1513
+ .AppHeader_description,
1514
+ .AppHeader_icon {
1515
+ display: none;
1516
+ }
1517
+ .AppHeader_search {
1518
+ flex: none;
1519
+ justify-content: center;
1520
+ width: var(--field-h);
1521
+ padding-inline: 0;
1522
+ }
1523
+ .AppHeader_searchText {
1524
+ position: absolute;
1525
+ width: var(--prime-border-width);
1526
+ height: var(--prime-border-width);
1527
+ overflow: hidden;
1528
+ clip-path: inset(50%);
1529
+ }
1530
+ .AppHeader_searchKbd {
1531
+ display: none;
1532
+ }
1376
1533
  }
1377
- .Badge_root[data-pressable=true] {
1378
- padding-inline: 0;
1534
+
1535
+ /* src/components/scroll-container/ScrollContainer.module.css */
1536
+ .ScrollContainer_root {
1537
+ box-sizing: border-box;
1538
+ min-width: 0;
1539
+ min-height: 0;
1540
+ scrollbar-width: thin;
1541
+ scrollbar-color: var(--prime-color-fill-strong) transparent;
1379
1542
  }
1380
- .Badge_root[data-pressable=true] > .Badge_body {
1381
- margin: 0;
1382
- padding-block: 0;
1383
- padding-inline: var(--badge-pad-start) var(--badge-pad-end);
1384
- border: 0;
1385
- border-radius: inherit;
1386
- background: transparent;
1387
- color: inherit;
1388
- font: inherit;
1389
- cursor: pointer;
1390
- appearance: none;
1391
- transition: padding var(--prime-motion-duration-fast) var(--prime-motion-easing-standard);
1543
+ .ScrollContainer_root::-webkit-scrollbar {
1544
+ width: var(--prime-space-2);
1545
+ height: var(--prime-space-2);
1392
1546
  }
1393
- .Badge_root[data-pressable=true]:hover:not([data-disabled=true]) {
1394
- background-image: linear-gradient(var(--prime-color-fill-subtle), var(--prime-color-fill-subtle));
1547
+ .ScrollContainer_root::-webkit-scrollbar-track {
1548
+ background: transparent;
1395
1549
  }
1396
- .Badge_root[data-pressable=true] > .Badge_body:focus-visible {
1397
- outline: var(--prime-focus-width) solid var(--prime-color-focus-ring);
1398
- outline-offset: var(--prime-focus-offset-inset);
1550
+ .ScrollContainer_root::-webkit-scrollbar-thumb {
1551
+ border: calc(var(--prime-space-1) / 2) solid transparent;
1552
+ border-radius: var(--prime-radius-full);
1553
+ background: var(--prime-color-fill-strong);
1554
+ background-clip: padding-box;
1399
1555
  }
1400
- .Badge_root[data-pressable=true] > .Badge_body:disabled {
1401
- cursor: not-allowed;
1556
+ @media (hover: hover) {
1557
+ .ScrollContainer_root::-webkit-scrollbar-thumb:hover {
1558
+ background-color: var(--prime-color-fill-strong-hover);
1559
+ }
1402
1560
  }
1403
- .Badge_root[data-action] {
1404
- --badge-action-room: calc(var(--badge-seg) + var(--chip-gap));
1405
- --badge-pad-start: calc((var(--chip-px) + var(--badge-action-room)) / 2);
1406
- --badge-pad-end: calc((var(--chip-px) + var(--badge-action-room)) / 2);
1407
- transition: padding var(--prime-motion-duration-fast) var(--prime-motion-easing-standard);
1561
+ .ScrollContainer_root::-webkit-scrollbar-corner {
1562
+ background: transparent;
1408
1563
  }
1409
- .Badge_root[data-action=persistent],
1410
- .Badge_root[data-action=reveal]:hover,
1411
- .Badge_root[data-action=reveal]:focus-within {
1412
- --badge-pad-start: var(--chip-px);
1413
- --badge-pad-end: var(--badge-action-room);
1564
+ .ScrollContainer_vertical {
1565
+ overflow-x: hidden;
1566
+ overflow-y: auto;
1414
1567
  }
1415
- .Badge_root[data-action][data-icon-start=true] {
1416
- --badge-pad-start: calc((var(--badge-action-room) - var(--chip-px)) / 2);
1417
- --badge-pad-end: calc((var(--badge-action-room) + var(--chip-px)) / 2);
1568
+ .ScrollContainer_horizontal {
1569
+ overflow-x: auto;
1570
+ overflow-y: hidden;
1418
1571
  }
1419
- .Badge_root[data-action=persistent][data-icon-start=true],
1420
- .Badge_root[data-action=reveal][data-icon-start=true]:hover,
1421
- .Badge_root[data-action=reveal][data-icon-start=true]:focus-within {
1422
- --badge-pad-start: 0px;
1423
- --badge-pad-end: var(--badge-action-room);
1572
+ .ScrollContainer_both {
1573
+ overflow: auto;
1424
1574
  }
1425
- .Badge_action {
1426
- position: absolute;
1427
- inset-block: 0;
1428
- inset-inline-end: 0;
1429
- opacity: 0;
1430
- pointer-events: none;
1431
- transform: translateX(var(--prime-space-1));
1575
+ .ScrollContainer_overscrollContain {
1576
+ overscroll-behavior: contain;
1432
1577
  }
1433
- .Badge_root[data-action=persistent] .Badge_action,
1434
- .Badge_root[data-action=reveal]:hover .Badge_action,
1435
- .Badge_root[data-action=reveal]:focus-within .Badge_action {
1436
- opacity: 1;
1437
- pointer-events: auto;
1438
- transform: none;
1578
+ .ScrollContainer_overscrollNone {
1579
+ overscroll-behavior: none;
1439
1580
  }
1440
-
1441
- /* src/internal/fieldSurface.module.css */
1442
- :where(.fieldSurface_surface) {
1443
- background: var(--prime-color-field-bg);
1444
- box-shadow: inset 0 0 0 var(--prime-border-width) var(--prime-color-border-control);
1445
- color: var(--prime-color-text-primary);
1446
- transition: background-color var(--prime-motion-duration-fast) var(--prime-motion-easing-standard), box-shadow var(--prime-motion-duration-fast) var(--prime-motion-easing-standard);
1581
+ .ScrollContainer_scrollbarHidden {
1582
+ scrollbar-width: none;
1447
1583
  }
1448
- .fieldSurface_surface:hover:not(:where(:focus-visible, :has(:is(input, textarea):focus-visible), :disabled, [data-disabled=true], :has(:is(input, textarea):disabled), [data-readonly=true], :has(> input:read-only))) {
1449
- background: var(--prime-color-field-bg-hover);
1584
+ .ScrollContainer_scrollbarHidden::-webkit-scrollbar {
1585
+ display: none;
1450
1586
  }
1451
- .fieldSurface_surface:is(:focus-visible, :has(:is(input, textarea):focus-visible)) {
1452
- background: var(--prime-color-field-bg-focus);
1587
+ .ScrollContainer_root[data-fade] {
1588
+ --fade-start: 0px;
1589
+ --fade-end: 0px;
1590
+ --fade-dir: to bottom;
1453
1591
  }
1454
- .fieldSurface_surface:is(:focus-visible, :has(:is(input, textarea):focus-visible)):not(:where([data-focus-ring=false], [data-focus-ring=false] *)) {
1455
- outline: var(--prime-focus-width) solid var(--prime-color-focus-ring);
1456
- outline-offset: var(--prime-focus-offset-inset);
1592
+ .ScrollContainer_root[data-fade=horizontal] {
1593
+ --fade-dir: to right;
1457
1594
  }
1458
- .fieldSurface_surface:is([data-invalid=true], [aria-invalid=true], :has(> :is(input, textarea)[aria-invalid=true])) {
1459
- box-shadow: inset 0 0 0 var(--prime-border-width) var(--prime-color-danger-border);
1460
- outline-color: var(--prime-color-danger-border);
1595
+ .ScrollContainer_root[data-fade=horizontal]:dir(rtl) {
1596
+ --fade-dir: to left;
1461
1597
  }
1462
- .fieldSurface_surface:is(:disabled, [data-disabled=true], :has(:is(input, textarea):disabled)) {
1463
- background: var(--prime-color-field-bg-disabled);
1464
- box-shadow: none;
1465
- color: var(--prime-color-text-disabled);
1466
- cursor: not-allowed;
1598
+ .ScrollContainer_root[data-fade][data-overflow-start=true] {
1599
+ --fade-start: var(--prime-space-8);
1600
+ }
1601
+ .ScrollContainer_root[data-fade][data-overflow-end=true] {
1602
+ --fade-end: var(--prime-space-8);
1603
+ }
1604
+ .ScrollContainer_root[data-fade]:is([data-overflow-start=true], [data-overflow-end=true]) {
1605
+ mask-image:
1606
+ linear-gradient(
1607
+ var(--fade-dir),
1608
+ transparent,
1609
+ var(--prime-color-text-primary) var(--fade-start),
1610
+ var(--prime-color-text-primary) calc(100% - var(--fade-end)),
1611
+ transparent);
1467
1612
  }
1468
1613
 
1469
- /* src/internal/fieldTier.module.css */
1470
- .fieldTier_tier {
1471
- --field-h: var(--prime-control-m-height);
1472
- --field-px: var(--prime-control-m-field-padding-x);
1473
- --field-gap: var(--prime-control-m-gap);
1474
- --field-icon: var(--prime-control-m-icon);
1475
- --field-radius: var(--prime-control-m-radius);
1476
- --field-text: var(--prime-control-m-text-size);
1477
- --field-lh: var(--prime-control-m-line-height);
1478
- --field-button-px: var(--prime-control-m-padding-x);
1614
+ /* src/layout/app-shell/AppShell.module.css */
1615
+ .AppShell_root {
1616
+ --shell-gutter: var(--prime-layout-gutter-s);
1617
+ --shell-top: var(--prime-space-6);
1618
+ box-sizing: border-box;
1619
+ display: grid;
1620
+ grid-template-columns: auto minmax(0, 1fr);
1621
+ width: 100%;
1622
+ min-width: 0;
1623
+ min-height: 100dvh;
1624
+ background: var(--prime-color-bg-canvas);
1625
+ color: var(--prime-color-text-primary);
1479
1626
  }
1480
- .fieldTier_tier[data-size=xs] {
1481
- --field-h: var(--prime-control-xs-height);
1482
- --field-px: var(--prime-control-xs-field-padding-x);
1483
- --field-gap: var(--prime-control-xs-gap);
1484
- --field-icon: var(--prime-control-xs-icon);
1485
- --field-radius: var(--prime-control-xs-radius);
1486
- --field-text: var(--prime-control-xs-text-size);
1487
- --field-lh: var(--prime-control-xs-line-height);
1488
- --field-button-px: var(--prime-control-xs-padding-x);
1627
+ .AppShell_root:not(:has(> .AppShell_nav)) {
1628
+ grid-template-columns: minmax(0, 1fr);
1489
1629
  }
1490
- .fieldTier_tier[data-size=s] {
1491
- --field-h: var(--prime-control-s-height);
1492
- --field-px: var(--prime-control-s-field-padding-x);
1493
- --field-gap: var(--prime-control-s-gap);
1494
- --field-icon: var(--prime-control-s-icon);
1495
- --field-radius: var(--prime-control-s-radius);
1496
- --field-text: var(--prime-control-s-text-size);
1497
- --field-lh: var(--prime-control-s-line-height);
1498
- --field-button-px: var(--prime-control-s-padding-x);
1630
+ .AppShell_root[data-fill-viewport=true] {
1631
+ height: 100dvh;
1632
+ min-height: 0;
1633
+ overflow: hidden;
1499
1634
  }
1500
- .fieldTier_tier[data-size=l] {
1501
- --field-h: var(--prime-control-l-height);
1502
- --field-px: var(--prime-control-l-field-padding-x);
1503
- --field-gap: var(--prime-control-l-gap);
1504
- --field-icon: var(--prime-control-l-icon);
1505
- --field-radius: var(--prime-control-l-radius);
1506
- --field-text: var(--prime-control-l-text-size);
1507
- --field-lh: var(--prime-control-l-line-height);
1508
- --field-button-px: var(--prime-control-l-padding-x);
1635
+ @media (min-width: 640px) {
1636
+ .AppShell_root {
1637
+ --shell-gutter: var(--prime-layout-gutter-m);
1638
+ }
1509
1639
  }
1510
- .fieldTier_tier[data-size=xl] {
1511
- --field-h: var(--prime-control-xl-height);
1512
- --field-px: var(--prime-control-xl-field-padding-x);
1513
- --field-gap: var(--prime-control-xl-gap);
1514
- --field-icon: var(--prime-control-xl-icon);
1515
- --field-radius: var(--prime-control-xl-radius);
1516
- --field-text: var(--prime-control-xl-text-size);
1517
- --field-lh: var(--prime-control-xl-line-height);
1518
- --field-button-px: var(--prime-control-xl-padding-x);
1640
+ @media (min-width: 1024px) {
1641
+ .AppShell_root {
1642
+ --shell-gutter: var(--prime-layout-gutter-l);
1643
+ --shell-top: var(--prime-space-10);
1644
+ }
1519
1645
  }
1520
-
1521
- /* src/internal/fieldTrigger.module.css */
1522
- :where(.fieldTrigger_trigger) {
1523
- --prime-icon-size: var(--field-icon);
1646
+ .AppShell_nav {
1647
+ position: sticky;
1648
+ top: 0;
1649
+ z-index: var(--prime-z-sticky);
1650
+ box-sizing: border-box;
1651
+ display: flex;
1652
+ height: 100dvh;
1653
+ min-width: 0;
1654
+ }
1655
+ .AppShell_root[data-fill-viewport=true] > .AppShell_nav {
1524
1656
  position: relative;
1657
+ height: 100%;
1658
+ min-height: 0;
1659
+ }
1660
+ .AppShell_panel {
1661
+ --prime-color-field-bg: var(--prime-color-field-bg-surface);
1662
+ --prime-color-card-bg: var(--prime-color-bg-sunken);
1663
+ --prime-card-shadow: none;
1664
+ isolation: isolate;
1525
1665
  box-sizing: border-box;
1526
1666
  display: flex;
1527
- align-items: center;
1528
- gap: var(--field-px);
1667
+ flex-direction: column;
1529
1668
  min-width: 0;
1530
- height: var(--field-h);
1669
+ min-height: 0;
1670
+ overflow: clip;
1671
+ background: var(--prime-color-bg-surface);
1672
+ color: var(--prime-color-text-primary);
1673
+ }
1674
+ .AppShell_footer {
1675
+ container: AppShell_prime-shell-footer / inline-size;
1676
+ position: sticky;
1677
+ bottom: 0;
1678
+ z-index: var(--prime-z-sticky);
1679
+ flex: none;
1680
+ min-width: 0;
1681
+ }
1682
+ .AppShell_main {
1683
+ box-sizing: border-box;
1684
+ display: flex;
1685
+ flex: 1 1 auto;
1686
+ flex-direction: column;
1687
+ min-width: 0;
1688
+ min-height: 0;
1531
1689
  margin: 0;
1532
- padding-block: 0;
1533
- padding-inline: var(--field-px);
1534
- border: 0;
1535
- border-radius: var(--field-radius);
1536
- font-family: var(--prime-font-family-sans);
1537
- font-size: var(--field-text);
1538
- font-weight: var(--prime-font-weight-regular);
1539
- line-height: var(--field-lh);
1540
- text-align: start;
1541
- cursor: pointer;
1542
- outline: none;
1690
+ padding-block: var(--shell-top) var(--prime-space-16);
1691
+ padding-inline: var(--shell-gutter);
1543
1692
  }
1544
- .fieldTrigger_trigger {
1545
- transition:
1546
- background-color var(--prime-motion-duration-fast) var(--prime-motion-easing-standard),
1547
- box-shadow var(--prime-motion-duration-fast) var(--prime-motion-easing-standard),
1548
- transform var(--prime-motion-duration-fast) var(--prime-motion-easing-standard);
1693
+ .AppShell_main > * {
1694
+ --shell-gutter: initial;
1549
1695
  }
1550
- .fieldTrigger_trigger:active:not(:disabled) {
1551
- transform: scale(var(--prime-motion-press-scale));
1696
+ .AppShell_main[data-content-width=contained] {
1697
+ padding-inline: max(var(--shell-gutter), calc((100% - var(--prime-layout-content-max-width)) / 2));
1552
1698
  }
1553
- .fieldTrigger_trigger[data-state=open]:not(:disabled) {
1554
- background: var(--prime-color-field-bg-focus);
1699
+ .AppShell_footer:has(> [data-floating=true]) {
1700
+ height: 0;
1701
+ }
1702
+ .AppShell_panel:has(> .AppShell_footer > [data-floating=true]) > .AppShell_main {
1703
+ padding-block-end: calc(var(--prime-space-16) + var(--prime-bottom-nav-floating-item-size) + var(--prime-bottom-nav-floating-padding) * 2 + env(safe-area-inset-bottom, 0px));
1555
1704
  }
1556
1705
 
1557
- /* src/internal/VisuallyHidden.module.css */
1558
- .VisuallyHidden_root {
1559
- position: absolute;
1560
- width: var(--prime-border-width);
1561
- height: var(--prime-border-width);
1562
- padding: 0;
1563
- margin: calc(-1 * var(--prime-border-width));
1564
- overflow: hidden;
1565
- clip-path: inset(50%);
1566
- white-space: nowrap;
1567
- border: 0;
1706
+ /* src/internal/palette.module.css */
1707
+ .palette_hue {
1708
+ --hue-soft: var(--prime-color-palette-gray-soft);
1709
+ --hue-text: var(--prime-color-palette-gray-text);
1710
+ --hue-solid: var(--prime-color-palette-gray-solid);
1711
+ --hue-solid-fg: var(--prime-color-palette-gray-solid-fg);
1712
+ }
1713
+ .palette_hue[data-color=red] {
1714
+ --hue-soft: var(--prime-color-palette-red-soft);
1715
+ --hue-text: var(--prime-color-palette-red-text);
1716
+ --hue-solid: var(--prime-color-palette-red-solid);
1717
+ --hue-solid-fg: var(--prime-color-palette-red-solid-fg);
1718
+ }
1719
+ .palette_hue[data-color=blue] {
1720
+ --hue-soft: var(--prime-color-palette-blue-soft);
1721
+ --hue-text: var(--prime-color-palette-blue-text);
1722
+ --hue-solid: var(--prime-color-palette-blue-solid);
1723
+ --hue-solid-fg: var(--prime-color-palette-blue-solid-fg);
1724
+ }
1725
+ .palette_hue[data-color=green] {
1726
+ --hue-soft: var(--prime-color-palette-green-soft);
1727
+ --hue-text: var(--prime-color-palette-green-text);
1728
+ --hue-solid: var(--prime-color-palette-green-solid);
1729
+ --hue-solid-fg: var(--prime-color-palette-green-solid-fg);
1730
+ }
1731
+ .palette_hue[data-color=orange] {
1732
+ --hue-soft: var(--prime-color-palette-orange-soft);
1733
+ --hue-text: var(--prime-color-palette-orange-text);
1734
+ --hue-solid: var(--prime-color-palette-orange-solid);
1735
+ --hue-solid-fg: var(--prime-color-palette-orange-solid-fg);
1736
+ }
1737
+ .palette_hue[data-color=yellow] {
1738
+ --hue-soft: var(--prime-color-palette-yellow-soft);
1739
+ --hue-text: var(--prime-color-palette-yellow-text);
1740
+ --hue-solid: var(--prime-color-palette-yellow-solid);
1741
+ --hue-solid-fg: var(--prime-color-palette-yellow-solid-fg);
1742
+ }
1743
+ .palette_hue[data-color=purple] {
1744
+ --hue-soft: var(--prime-color-palette-purple-soft);
1745
+ --hue-text: var(--prime-color-palette-purple-text);
1746
+ --hue-solid: var(--prime-color-palette-purple-solid);
1747
+ --hue-solid-fg: var(--prime-color-palette-purple-solid-fg);
1748
+ }
1749
+ .palette_hue[data-color=sky] {
1750
+ --hue-soft: var(--prime-color-palette-sky-soft);
1751
+ --hue-text: var(--prime-color-palette-sky-text);
1752
+ --hue-solid: var(--prime-color-palette-sky-solid);
1753
+ --hue-solid-fg: var(--prime-color-palette-sky-solid-fg);
1754
+ }
1755
+ .palette_hue[data-color=pink] {
1756
+ --hue-soft: var(--prime-color-palette-pink-soft);
1757
+ --hue-text: var(--prime-color-palette-pink-text);
1758
+ --hue-solid: var(--prime-color-palette-pink-solid);
1759
+ --hue-solid-fg: var(--prime-color-palette-pink-solid-fg);
1760
+ }
1761
+ .palette_hue[data-color=teal] {
1762
+ --hue-soft: var(--prime-color-palette-teal-soft);
1763
+ --hue-text: var(--prime-color-palette-teal-text);
1764
+ --hue-solid: var(--prime-color-palette-teal-solid);
1765
+ --hue-solid-fg: var(--prime-color-palette-teal-solid-fg);
1568
1766
  }
1569
1767
 
1570
- /* src/components/spinner/Spinner.module.css */
1571
- .Spinner_root {
1768
+ /* src/components/badge/Badge.module.css */
1769
+ .Badge_root {
1770
+ --badge-lh: var(--prime-text-caption-line-height);
1771
+ --badge-dot: calc(var(--prime-space-1) + 2 * var(--prime-border-width));
1772
+ --badge-pad-start: var(--chip-px);
1773
+ --badge-pad-end: var(--chip-px);
1774
+ --badge-seg: calc(var(--prime-icon-size) + var(--chip-px) + var(--chip-gap));
1572
1775
  position: relative;
1776
+ box-sizing: border-box;
1573
1777
  display: inline-flex;
1574
1778
  align-items: center;
1575
- justify-content: center;
1576
- color: inherit;
1779
+ gap: var(--chip-gap);
1780
+ height: var(--chip-h);
1781
+ width: fit-content;
1782
+ min-width: var(--chip-h);
1783
+ max-width: 100%;
1784
+ padding-inline: var(--badge-pad-start) var(--badge-pad-end);
1785
+ border-radius: var(--chip-radius);
1786
+ font-size: var(--chip-text);
1787
+ line-height: var(--badge-lh);
1788
+ font-weight: var(--prime-font-weight-medium);
1789
+ font-variant-numeric: tabular-nums;
1790
+ white-space: nowrap;
1577
1791
  vertical-align: middle;
1792
+ overflow: hidden;
1578
1793
  }
1579
- .Spinner_ring {
1580
- box-sizing: border-box;
1581
- width: 100%;
1582
- height: 100%;
1583
- border: calc(var(--prime-border-width) * 2) solid currentColor;
1584
- border-inline-end-color: transparent;
1794
+ .Badge_root[data-tier=l] {
1795
+ --badge-lh: var(--prime-text-body-s-line-height);
1796
+ --badge-dot: var(--prime-space-2);
1797
+ }
1798
+ .Badge_root[data-tier=xl] {
1799
+ --badge-lh: var(--prime-text-body-m-line-height);
1800
+ --badge-dot: var(--prime-space-2);
1801
+ }
1802
+ .Badge_root[data-icon-start=true] {
1803
+ --badge-pad-start: 0px;
1804
+ }
1805
+ .Badge_root[data-icon-end=true] {
1806
+ --badge-pad-end: 0px;
1807
+ }
1808
+ .Badge_root[data-icon-only=true] {
1809
+ justify-content: center;
1810
+ width: var(--chip-h);
1811
+ padding-inline: 0;
1812
+ }
1813
+ .Badge_root[data-variant=solid] {
1814
+ background: var(--hue-solid);
1815
+ color: var(--hue-solid-fg);
1816
+ }
1817
+ .Badge_root[data-variant=soft] {
1818
+ background: var(--hue-soft);
1819
+ color: var(--hue-text);
1820
+ }
1821
+ .Badge_root[data-variant=outline] {
1822
+ background: transparent;
1823
+ box-shadow: inset 0 0 0 var(--prime-border-width) color-mix(in srgb, var(--hue-text) 32%, transparent);
1824
+ color: var(--hue-text);
1825
+ }
1826
+ .Badge_root[data-disabled=true] {
1827
+ background: var(--prime-color-fill-muted);
1828
+ box-shadow: none;
1829
+ color: var(--prime-color-text-disabled);
1830
+ }
1831
+ .Badge_dot {
1832
+ --dot-size: calc(var(--prime-space-1) + 2 * var(--prime-border-width));
1833
+ display: inline-flex;
1834
+ flex-shrink: 0;
1835
+ align-items: center;
1836
+ justify-content: center;
1837
+ width: var(--badge-dot, var(--dot-size));
1838
+ height: var(--badge-dot, var(--dot-size));
1585
1839
  border-radius: var(--prime-radius-full);
1586
- animation: Spinner_primeSpinnerTurn calc(var(--prime-motion-duration-slow) * 3) linear infinite;
1587
1840
  }
1588
- @keyframes Spinner_primeSpinnerTurn {
1589
- to {
1590
- transform: rotate(360deg);
1591
- }
1841
+ .Badge_dot:is([data-size=l], [data-size=xl]) {
1842
+ --dot-size: var(--prime-space-2);
1843
+ }
1844
+ .Badge_dot::before {
1845
+ content: "";
1846
+ flex: none;
1847
+ width: var(--badge-dot, var(--dot-size));
1848
+ height: var(--badge-dot, var(--dot-size));
1849
+ border-radius: var(--prime-radius-full);
1850
+ background: currentColor;
1851
+ }
1852
+ .Badge_icon {
1853
+ display: inline-flex;
1854
+ flex-shrink: 0;
1855
+ align-items: center;
1856
+ justify-content: center;
1857
+ width: var(--prime-icon-size);
1858
+ height: var(--prime-icon-size);
1859
+ }
1860
+ .Badge_icon > * {
1861
+ width: var(--prime-icon-size);
1862
+ height: var(--prime-icon-size);
1863
+ }
1864
+ .Badge_icon[data-edge] {
1865
+ align-self: stretch;
1866
+ width: var(--badge-seg);
1867
+ height: auto;
1868
+ }
1869
+ .Badge_dot[data-edge] {
1870
+ align-self: stretch;
1871
+ width: calc(var(--badge-dot) + var(--chip-px) + var(--chip-gap));
1872
+ height: auto;
1873
+ }
1874
+ .Badge_icon[data-edge=start],
1875
+ .Badge_dot[data-edge=start] {
1876
+ margin-inline-end: calc(-1 * var(--chip-gap));
1877
+ }
1878
+ .Badge_icon[data-edge=end],
1879
+ .Badge_dot[data-edge=end] {
1880
+ margin-inline-start: calc(-1 * var(--chip-gap));
1881
+ }
1882
+ .Badge_body {
1883
+ display: inline-flex;
1884
+ align-self: stretch;
1885
+ align-items: center;
1886
+ gap: var(--chip-gap);
1887
+ min-width: 0;
1888
+ overflow: hidden;
1889
+ }
1890
+ .Badge_root[data-text-only=true] {
1891
+ display: inline-block;
1892
+ line-height: var(--chip-h);
1893
+ text-overflow: ellipsis;
1894
+ }
1895
+ .Badge_text {
1896
+ min-width: 0;
1897
+ overflow: hidden;
1898
+ text-overflow: ellipsis;
1899
+ }
1900
+ .Badge_root[data-icon-only=true] > .Badge_body {
1901
+ justify-content: center;
1592
1902
  }
1593
-
1594
- /* src/components/button/Button.module.css */
1595
- .Button_root {
1596
- --prime-icon-size: var(--field-icon);
1597
- --btn-px-icon: max(calc(var(--field-button-px) - var(--prime-space-1)), var(--prime-space-2));
1598
- --btn-bg: transparent;
1599
- --btn-bg-hover: var(--prime-color-fill-subtle);
1600
- --btn-bg-active: var(--btn-bg-hover);
1601
- --btn-fg: var(--prime-color-text-primary);
1602
- --btn-line: transparent;
1603
- position: relative;
1903
+ .Badge_root[data-removable=true] {
1904
+ --badge-pad-end: 0px;
1905
+ }
1906
+ .Badge_remove,
1907
+ .Badge_action {
1604
1908
  box-sizing: border-box;
1605
1909
  display: inline-flex;
1606
1910
  align-items: center;
1607
1911
  justify-content: center;
1608
- gap: var(--field-gap);
1609
- height: var(--field-h);
1610
- min-width: var(--field-h);
1611
- max-width: 100%;
1612
- padding-block: 0;
1613
- padding-inline: var(--field-button-px);
1912
+ width: var(--badge-seg);
1913
+ padding: 0;
1614
1914
  margin: 0;
1615
1915
  border: 0;
1616
- border-radius: var(--field-radius);
1617
- background: var(--btn-bg);
1618
- box-shadow: inset 0 0 0 var(--prime-border-width) var(--btn-line);
1619
- color: var(--btn-fg);
1620
- font-family: inherit;
1621
- font-size: var(--field-text);
1622
- line-height: var(--field-lh);
1623
- font-weight: var(--prime-font-weight-medium);
1624
- white-space: nowrap;
1625
- text-decoration: none;
1626
- vertical-align: middle;
1916
+ border-start-end-radius: inherit;
1917
+ border-end-end-radius: inherit;
1918
+ background: transparent;
1919
+ color: color-mix(in srgb, currentColor 72%, transparent);
1920
+ font: inherit;
1627
1921
  cursor: pointer;
1628
- user-select: none;
1922
+ appearance: none;
1629
1923
  transition:
1630
1924
  background-color var(--prime-motion-duration-fast) var(--prime-motion-easing-standard),
1631
1925
  color var(--prime-motion-duration-fast) var(--prime-motion-easing-standard),
1632
- box-shadow var(--prime-motion-duration-fast) var(--prime-motion-easing-standard),
1926
+ opacity var(--prime-motion-duration-fast) var(--prime-motion-easing-standard),
1633
1927
  transform var(--prime-motion-duration-fast) var(--prime-motion-easing-standard);
1634
1928
  }
1635
- .Button_root[data-leading-icon=true] {
1636
- padding-inline-start: var(--btn-px-icon);
1929
+ .Badge_remove {
1930
+ flex: 0 0 auto;
1931
+ align-self: stretch;
1637
1932
  }
1638
- .Button_root[data-trailing-icon=true] {
1639
- padding-inline-end: var(--btn-px-icon);
1933
+ @media (pointer: coarse) {
1934
+ .Badge_root:has(> .Badge_remove, > .Badge_action) {
1935
+ overflow: visible;
1936
+ }
1640
1937
  }
1641
- .Button_root[data-icon-only=true] {
1642
- width: var(--field-h);
1938
+ @media (hover: hover) {
1939
+ .Badge_remove:hover:not(:disabled),
1940
+ .Badge_action:hover:not(:disabled) {
1941
+ background: var(--prime-color-fill-subtle-active);
1942
+ color: inherit;
1943
+ }
1944
+ }
1945
+ .Badge_remove:focus-visible,
1946
+ .Badge_action:focus-visible {
1947
+ outline: var(--prime-focus-width) solid var(--prime-color-focus-ring);
1948
+ outline-offset: var(--prime-focus-offset-inset);
1949
+ color: inherit;
1950
+ }
1951
+ .Badge_remove:disabled,
1952
+ .Badge_action:disabled {
1953
+ color: var(--prime-color-text-disabled);
1954
+ cursor: not-allowed;
1955
+ }
1956
+ .Badge_remove > *,
1957
+ .Badge_action > * {
1958
+ display: block;
1959
+ flex: none;
1960
+ width: var(--prime-icon-size);
1961
+ height: var(--prime-icon-size);
1962
+ }
1963
+ .Badge_root[data-pressable=true] {
1643
1964
  padding-inline: 0;
1644
1965
  }
1645
- .Button_root[data-full-width=true] {
1646
- display: flex;
1647
- width: 100%;
1648
- min-width: 0;
1966
+ .Badge_root[data-pressable=true] > .Badge_body {
1967
+ margin: 0;
1968
+ padding-block: 0;
1969
+ padding-inline: var(--badge-pad-start) var(--badge-pad-end);
1970
+ border: 0;
1971
+ border-radius: inherit;
1972
+ background: transparent;
1973
+ color: inherit;
1974
+ font: inherit;
1975
+ cursor: pointer;
1976
+ appearance: none;
1977
+ transition: padding var(--prime-motion-duration-fast) var(--prime-motion-easing-standard);
1649
1978
  }
1650
- .Button_root[data-tone=accent][data-variant=solid] {
1651
- --btn-bg: var(--prime-color-accent-default);
1652
- --btn-bg-hover: var(--prime-color-accent-hover);
1653
- --btn-fg: var(--prime-color-accent-fg);
1979
+ @media (hover: hover) {
1980
+ .Badge_root[data-pressable=true]:hover:not([data-disabled=true]) {
1981
+ background-image: linear-gradient(var(--prime-color-fill-subtle), var(--prime-color-fill-subtle));
1982
+ }
1654
1983
  }
1655
- .Button_root[data-tone=accent][data-variant=soft] {
1656
- --btn-bg: var(--prime-color-accent-soft);
1657
- --btn-bg-hover: var(--prime-color-accent-soft-hover);
1658
- --btn-fg: var(--prime-color-accent-text);
1984
+ .Badge_root[data-pressable=true] > .Badge_body:focus-visible {
1985
+ outline: var(--prime-focus-width) solid var(--prime-color-focus-ring);
1986
+ outline-offset: var(--prime-focus-offset-inset);
1659
1987
  }
1660
- .Button_root[data-tone=accent][data-variant=outline] {
1661
- --btn-line: var(--prime-color-border-default);
1662
- --btn-fg: var(--prime-color-accent-text);
1988
+ .Badge_root[data-pressable=true] > .Badge_body:disabled {
1989
+ cursor: not-allowed;
1663
1990
  }
1664
- .Button_root[data-tone=accent][data-variant=ghost] {
1665
- --btn-bg-active: var(--prime-color-fill-subtle-active);
1666
- --btn-fg: var(--prime-color-accent-text);
1991
+ .Badge_root[data-action] {
1992
+ --badge-action-room: calc(var(--badge-seg) + var(--chip-gap));
1993
+ --badge-pad-start: calc((var(--chip-px) + var(--badge-action-room)) / 2);
1994
+ --badge-pad-end: calc((var(--chip-px) + var(--badge-action-room)) / 2);
1995
+ transition: padding var(--prime-motion-duration-fast) var(--prime-motion-easing-standard);
1667
1996
  }
1668
- .Button_root[data-tone=neutral][data-variant=solid] {
1669
- --btn-bg: var(--prime-color-fill-muted);
1670
- --btn-bg-hover: var(--prime-color-fill-muted-hover);
1997
+ .Badge_root[data-action=persistent],
1998
+ .Badge_root[data-action=reveal]:focus-within {
1999
+ --badge-pad-start: var(--chip-px);
2000
+ --badge-pad-end: var(--badge-action-room);
1671
2001
  }
1672
- .Button_root[data-tone=neutral][data-variant=soft] {
1673
- --btn-bg: var(--prime-color-fill-subtle);
1674
- --btn-bg-hover: var(--prime-color-fill-subtle-active);
2002
+ @media (hover: hover) {
2003
+ .Badge_root[data-action=reveal]:hover {
2004
+ --badge-pad-start: var(--chip-px);
2005
+ --badge-pad-end: var(--badge-action-room);
2006
+ }
1675
2007
  }
1676
- .Button_root[data-tone=neutral][data-variant=outline] {
1677
- --btn-line: var(--prime-color-border-default);
2008
+ .Badge_root[data-action][data-icon-start=true] {
2009
+ --badge-pad-start: calc((var(--badge-action-room) - var(--chip-px)) / 2);
2010
+ --badge-pad-end: calc((var(--badge-action-room) + var(--chip-px)) / 2);
1678
2011
  }
1679
- .Button_root[data-tone=neutral][data-variant=ghost] {
1680
- --btn-bg-active: var(--prime-color-fill-subtle-active);
1681
- --btn-fg: var(--prime-color-text-secondary);
2012
+ .Badge_root[data-action=persistent][data-icon-start=true],
2013
+ .Badge_root[data-action=reveal][data-icon-start=true]:focus-within {
2014
+ --badge-pad-start: 0px;
2015
+ --badge-pad-end: var(--badge-action-room);
1682
2016
  }
1683
- .Button_root[data-tone=neutral][data-variant=ghost]:hover:not([data-disabled=true], [data-loading=true]) {
1684
- --btn-fg: var(--prime-color-text-primary);
2017
+ @media (hover: hover) {
2018
+ .Badge_root[data-action=reveal][data-icon-start=true]:hover {
2019
+ --badge-pad-start: 0px;
2020
+ --badge-pad-end: var(--badge-action-room);
2021
+ }
1685
2022
  }
1686
- .Button_root[data-tone=danger][data-variant=solid] {
1687
- --btn-bg: var(--prime-color-danger-default);
1688
- --btn-bg-hover: var(--prime-color-danger-hover);
1689
- --btn-fg: var(--prime-color-danger-fg);
2023
+ .Badge_action {
2024
+ position: absolute;
2025
+ inset-block: 0;
2026
+ inset-inline-end: 0;
2027
+ opacity: 0;
2028
+ pointer-events: none;
2029
+ transform: translateX(var(--prime-space-1));
1690
2030
  }
1691
- .Button_root[data-tone=danger][data-variant=soft] {
1692
- --btn-bg: var(--prime-color-danger-soft);
1693
- --btn-bg-hover: color-mix( in srgb, var(--prime-color-danger-soft) 88%, var(--prime-color-danger-default) );
1694
- --btn-fg: var(--prime-color-danger-text);
2031
+ .Badge_root[data-action=persistent] .Badge_action,
2032
+ .Badge_root[data-action=reveal]:focus-within .Badge_action {
2033
+ opacity: 1;
2034
+ pointer-events: auto;
2035
+ transform: none;
1695
2036
  }
1696
- .Button_root[data-tone=danger][data-variant=outline] {
1697
- --btn-line: var(--prime-color-border-default);
1698
- --btn-bg-hover: var(--prime-color-danger-soft);
1699
- --btn-fg: var(--prime-color-danger-text);
2037
+ @media (hover: hover) {
2038
+ .Badge_root[data-action=reveal]:hover .Badge_action {
2039
+ opacity: 1;
2040
+ pointer-events: auto;
2041
+ transform: none;
2042
+ }
1700
2043
  }
1701
- .Button_root[data-tone=danger][data-variant=ghost] {
1702
- --btn-bg-hover: var(--prime-color-danger-soft);
1703
- --btn-fg: var(--prime-color-danger-text);
2044
+ @media (hover: none) {
2045
+ .Badge_root[data-action=reveal] {
2046
+ --badge-pad-start: var(--chip-px);
2047
+ --badge-pad-end: var(--badge-action-room);
2048
+ }
2049
+ .Badge_root[data-action=reveal][data-icon-start=true] {
2050
+ --badge-pad-start: 0px;
2051
+ }
2052
+ .Badge_root[data-action=reveal] .Badge_action {
2053
+ opacity: 1;
2054
+ pointer-events: auto;
2055
+ transform: none;
2056
+ }
2057
+ }
2058
+
2059
+ /* src/layout/bottom-nav/BottomNav.module.css */
2060
+ .BottomNav_root {
2061
+ box-sizing: border-box;
2062
+ display: grid;
2063
+ grid-auto-columns: minmax(0, 1fr);
2064
+ grid-auto-flow: column;
2065
+ align-items: stretch;
2066
+ width: 100%;
2067
+ min-height: var(--prime-bottom-nav-height);
2068
+ padding-inline: var(--prime-bottom-nav-padding-x);
2069
+ padding-block-end: env(safe-area-inset-bottom, 0px);
2070
+ background: var(--prime-color-bg-surface);
2071
+ box-shadow: inset 0 var(--prime-border-width) 0 var(--prime-color-border-faint);
2072
+ }
2073
+ .BottomNav_root[data-icon-only=true] {
2074
+ min-height: var(--prime-bottom-nav-icon-only-height);
2075
+ }
2076
+ .BottomNav_root[data-floating=true] {
2077
+ position: absolute;
2078
+ inset-inline: var(--prime-bottom-nav-floating-inset);
2079
+ bottom: calc(var(--prime-bottom-nav-floating-inset) + env(safe-area-inset-bottom, 0px));
2080
+ grid-auto-rows: var(--prime-bottom-nav-floating-item-size);
2081
+ width: auto;
2082
+ min-height: 0;
2083
+ padding: var(--prime-bottom-nav-floating-padding);
2084
+ border-radius: var(--prime-radius-full);
2085
+ background: var(--prime-color-bg-glass);
2086
+ box-shadow:
2087
+ inset 0 var(--prime-border-width) 0 var(--prime-color-bg-glass-edge),
2088
+ inset 0 0 0 var(--prime-border-width) color-mix(in srgb, var(--prime-color-text-primary) 6%, transparent),
2089
+ var(--prime-shadow-overlay);
2090
+ -webkit-backdrop-filter: blur(var(--prime-bottom-nav-blur)) saturate(180%);
2091
+ backdrop-filter: blur(var(--prime-bottom-nav-blur)) saturate(180%);
2092
+ }
2093
+ .BottomNav_root[data-floating=true][data-icon-only=true] {
2094
+ inset-inline: 0;
2095
+ grid-auto-columns: var(--prime-bottom-nav-floating-item-size);
2096
+ justify-content: center;
2097
+ width: fit-content;
2098
+ margin-inline: auto;
2099
+ }
2100
+ .BottomNav_root[data-floating=true] .BottomNav_item {
2101
+ isolation: isolate;
2102
+ padding: 0;
2103
+ border-radius: var(--prime-radius-full);
2104
+ }
2105
+ .BottomNav_root[data-floating=true] .BottomNav_item::before {
2106
+ content: "";
2107
+ position: absolute;
2108
+ inset: 0;
2109
+ z-index: -1;
2110
+ border-radius: inherit;
2111
+ background: color-mix(in srgb, var(--prime-color-text-primary) 8%, transparent);
2112
+ box-shadow: inset 0 var(--prime-border-width) 0 color-mix(in srgb, var(--prime-color-bg-glass-edge) 60%, transparent);
2113
+ opacity: 0;
2114
+ transform: scale(0.92);
2115
+ transition: opacity var(--prime-motion-duration-fast) var(--prime-motion-easing-enter), transform var(--prime-motion-duration-fast) var(--prime-motion-easing-enter);
2116
+ }
2117
+ .BottomNav_root[data-floating=true] .BottomNav_item[aria-current=page]::before {
2118
+ opacity: 1;
2119
+ transform: none;
2120
+ }
2121
+ @media (prefers-reduced-transparency: reduce) {
2122
+ .BottomNav_root[data-floating=true] {
2123
+ background: var(--prime-color-bg-raised);
2124
+ -webkit-backdrop-filter: none;
2125
+ backdrop-filter: none;
2126
+ }
2127
+ }
2128
+ @container BottomNav_prime-shell-footer (min-width: 640px) {
2129
+ .BottomNav_root {
2130
+ display: none;
2131
+ }
2132
+ }
2133
+ .BottomNav_item {
2134
+ position: relative;
2135
+ box-sizing: border-box;
2136
+ display: flex;
2137
+ flex-direction: column-reverse;
2138
+ align-items: center;
2139
+ justify-content: center;
2140
+ gap: var(--prime-bottom-nav-item-gap);
2141
+ min-width: 0;
2142
+ margin: 0;
2143
+ padding: var(--prime-space-1) 0;
2144
+ border: 0;
2145
+ border-radius: var(--prime-radius-l);
2146
+ background: none;
2147
+ color: var(--prime-color-text-muted);
2148
+ font: inherit;
2149
+ text-decoration: none;
2150
+ cursor: pointer;
2151
+ outline: none;
2152
+ -webkit-tap-highlight-color: transparent;
2153
+ transition: color var(--prime-motion-duration-fast) var(--prime-motion-easing-standard);
2154
+ }
2155
+ .BottomNav_indicator {
2156
+ position: relative;
2157
+ display: grid;
2158
+ flex: none;
2159
+ place-items: center;
2160
+ width: var(--prime-bottom-nav-indicator-width);
2161
+ height: var(--prime-bottom-nav-indicator-height);
2162
+ }
2163
+ .BottomNav_icon {
2164
+ --prime-icon-size: var(--prime-bottom-nav-icon-size);
2165
+ display: inline-flex;
2166
+ align-items: center;
2167
+ justify-content: center;
2168
+ width: var(--prime-bottom-nav-icon-size);
2169
+ height: var(--prime-bottom-nav-icon-size);
2170
+ }
2171
+ .BottomNav_icon > svg {
2172
+ width: 100%;
2173
+ height: 100%;
2174
+ }
2175
+ .BottomNav_label {
2176
+ max-width: 100%;
2177
+ overflow: hidden;
2178
+ font-size: var(--prime-bottom-nav-label-size);
2179
+ font-weight: var(--prime-font-weight-medium);
2180
+ line-height: var(--prime-bottom-nav-label-line-height);
2181
+ white-space: nowrap;
2182
+ text-overflow: ellipsis;
1704
2183
  }
1705
- .Button_root[data-tone=inherit] {
1706
- --btn-fg: currentColor;
1707
- --btn-bg-hover: color-mix(in srgb, currentColor 12%, transparent);
1708
- --btn-bg-active: color-mix(in srgb, currentColor 18%, transparent);
2184
+ .BottomNav_count {
2185
+ position: absolute;
2186
+ inset-block-start: calc(-1 * var(--prime-space-1));
2187
+ inset-inline-start: calc(50% + var(--prime-space-1));
2188
+ pointer-events: none;
1709
2189
  }
1710
- .Button_root[data-tone=inherit][data-variant=soft] {
1711
- --btn-bg: color-mix(in srgb, currentColor 12%, transparent);
1712
- --btn-bg-hover: color-mix(in srgb, currentColor 18%, transparent);
1713
- --btn-bg-active: color-mix(in srgb, currentColor 24%, transparent);
2190
+ .BottomNav_item[aria-current=page] {
2191
+ color: var(--prime-color-text-primary);
1714
2192
  }
1715
- .Button_root[data-tone=inherit][data-variant=outline] {
1716
- --btn-line: color-mix(in srgb, currentColor 32%, transparent);
2193
+ .BottomNav_item:focus-visible {
2194
+ outline: var(--prime-focus-width) solid var(--prime-color-focus-ring);
2195
+ outline-offset: var(--prime-focus-offset-inset);
1717
2196
  }
1718
- .Button_root:hover:not([data-disabled=true], [data-loading=true]) {
1719
- background-color: var(--btn-bg-hover);
2197
+ .BottomNav_item[data-disabled=true] {
2198
+ color: var(--prime-color-text-disabled);
2199
+ cursor: not-allowed;
1720
2200
  }
1721
- .Button_root:active:not([data-disabled=true], [data-loading=true]) {
1722
- background-color: var(--btn-bg-active);
1723
- transform: scale(var(--prime-motion-press-scale));
2201
+
2202
+ /* src/components/avatar/Avatar.module.css */
2203
+ .Avatar_root,
2204
+ .Avatar_overflow {
2205
+ --avatar-size: var(--avatar-slot-size, var(--prime-avatar-m));
2206
+ position: relative;
2207
+ box-sizing: border-box;
2208
+ display: inline-flex;
2209
+ flex-shrink: 0;
2210
+ align-items: center;
2211
+ justify-content: center;
2212
+ width: var(--avatar-size);
2213
+ height: var(--avatar-size);
2214
+ border-radius: var(--prime-radius-full);
2215
+ font-size: calc(var(--avatar-size) * 0.4);
2216
+ line-height: 1;
2217
+ font-weight: var(--prime-font-weight-medium);
2218
+ vertical-align: middle;
2219
+ user-select: none;
1724
2220
  }
1725
- .Button_root:focus-visible {
1726
- outline: var(--prime-focus-width) solid var(--prime-color-focus-ring);
1727
- outline-offset: var(--prime-focus-offset);
2221
+ .Avatar_root {
2222
+ background: var(--hue-soft);
2223
+ color: var(--hue-text);
1728
2224
  }
1729
- .Button_root[data-tone=inherit]:focus-visible {
1730
- outline-color: currentColor;
2225
+ :is(.Avatar_root, .Avatar_overflow)[data-size=xs] {
2226
+ --avatar-size: var(--avatar-slot-size, var(--prime-avatar-xs));
1731
2227
  }
1732
- .Button_root[aria-current=page]:is([data-variant=ghost], [data-variant=soft]):not([data-tone=accent][data-variant=soft]) {
1733
- --btn-bg: var(--prime-color-fill-subtle-active);
1734
- --btn-fg: var(--prime-color-text-primary);
2228
+ :is(.Avatar_root, .Avatar_overflow)[data-size=s] {
2229
+ --avatar-size: var(--avatar-slot-size, var(--prime-avatar-s));
1735
2230
  }
1736
- .Button_root[data-variant][data-disabled=true] {
1737
- --btn-bg: var(--prime-color-fill-muted);
1738
- --btn-fg: var(--prime-color-text-disabled);
1739
- --btn-line: transparent;
1740
- background-image: none;
1741
- box-shadow: none;
1742
- cursor: not-allowed;
2231
+ :is(.Avatar_root, .Avatar_overflow)[data-size=l] {
2232
+ --avatar-size: var(--avatar-slot-size, var(--prime-avatar-l));
1743
2233
  }
1744
- .Button_root[data-variant=ghost][data-disabled=true] {
1745
- --btn-bg: transparent;
2234
+ :is(.Avatar_root, .Avatar_overflow)[data-size=xl] {
2235
+ --avatar-size: var(--avatar-slot-size, var(--prime-avatar-xl));
1746
2236
  }
1747
- .Button_root[data-tone=inherit][data-disabled=true] {
1748
- --btn-bg: transparent;
1749
- --btn-fg: color-mix(in srgb, currentColor 48%, transparent);
2237
+ :is(.Avatar_root, .Avatar_overflow)[data-size="2xl"] {
2238
+ --avatar-size: var(--avatar-slot-size, var(--prime-avatar-2xl));
1750
2239
  }
1751
- .Button_root[data-tone=inherit][data-variant=soft][data-disabled=true] {
1752
- --btn-bg: color-mix(in srgb, currentColor 12%, transparent);
2240
+ .Avatar_image {
2241
+ position: absolute;
2242
+ inset: 0;
2243
+ z-index: 1;
2244
+ border-radius: inherit;
2245
+ width: 100%;
2246
+ height: 100%;
2247
+ object-fit: cover;
2248
+ transition: opacity var(--prime-motion-duration-base) var(--prime-motion-easing-enter);
1753
2249
  }
1754
- .Button_root[aria-disabled=true] {
1755
- pointer-events: none;
2250
+ .Avatar_image[data-status=loading] {
2251
+ opacity: 0;
1756
2252
  }
1757
- .Button_icon {
1758
- display: inline-flex;
1759
- flex-shrink: 0;
2253
+ .Avatar_image[data-status=error] {
2254
+ display: none;
2255
+ }
2256
+ .Avatar_fallback {
2257
+ position: absolute;
2258
+ inset: 0;
2259
+ z-index: 0;
2260
+ border-radius: inherit;
2261
+ display: flex;
1760
2262
  align-items: center;
1761
2263
  justify-content: center;
1762
- width: var(--prime-icon-size);
1763
- height: var(--prime-icon-size);
2264
+ overflow: hidden;
2265
+ text-align: center;
1764
2266
  }
1765
- .Button_icon > svg {
1766
- display: block;
1767
- width: 100%;
1768
- height: 100%;
2267
+ .Avatar_fallback > svg {
2268
+ width: 50%;
2269
+ height: 50%;
1769
2270
  }
1770
- .Button_root > .Button_spinner {
1771
- order: -1;
1772
- color: var(--btn-fg);
2271
+ .Avatar_status {
2272
+ position: absolute;
2273
+ inset-block-end: 0;
2274
+ inset-inline-end: 0;
2275
+ z-index: 2;
2276
+ box-sizing: border-box;
2277
+ width: calc(var(--avatar-size) * 0.3);
2278
+ height: calc(var(--avatar-size) * 0.3);
2279
+ border-radius: var(--prime-radius-full);
2280
+ background: var(--prime-color-success-default);
2281
+ box-shadow: 0 0 0 calc(2 * var(--prime-border-width)) var(--avatar-ring, var(--prime-color-bg-canvas));
1773
2282
  }
1774
- .Button_root[data-loading=true] {
1775
- cursor: progress;
2283
+ .Avatar_status[data-status=offline] {
2284
+ background: var(--prime-color-palette-gray-solid);
1776
2285
  }
1777
- .Button_root[data-loading=true]:is([data-leading-icon=true], [data-icon-only=true]) > .Button_icon:not(.Button_icon ~ .Button_icon) {
1778
- display: none;
2286
+ .Avatar_status[data-status=away] {
2287
+ background: var(--prime-color-warning-default);
1779
2288
  }
1780
- .Button_root[data-loading-overlay=true] {
1781
- color: transparent;
2289
+ .Avatar_status[data-status=busy] {
2290
+ background: var(--prime-color-danger-default);
1782
2291
  }
1783
- .Button_root[data-tone=inherit][data-loading-overlay=true] {
1784
- color: var(--btn-fg);
1785
- -webkit-text-fill-color: transparent;
2292
+ .Avatar_group {
2293
+ display: inline-flex;
2294
+ flex-direction: row;
2295
+ align-items: center;
2296
+ isolation: isolate;
1786
2297
  }
1787
- .Button_root[data-tone=inherit][data-loading-overlay=true] > :not(.Button_spinner) {
1788
- visibility: hidden;
2298
+ .Avatar_group > * {
2299
+ box-shadow: 0 0 0 calc(2 * var(--prime-border-width)) var(--avatar-ring, var(--prime-color-bg-canvas));
1789
2300
  }
1790
- .Button_root[data-loading-overlay=true] > .Button_spinner {
1791
- position: absolute;
1792
- inset: 0;
1793
- margin: auto;
2301
+ .Avatar_group > .Avatar_root {
2302
+ background: linear-gradient(var(--hue-soft), var(--hue-soft)), var(--avatar-ring, var(--prime-color-bg-canvas));
2303
+ }
2304
+ .Avatar_group > * + * {
2305
+ margin-inline-start: calc(var(--avatar-size) * -0.25);
2306
+ }
2307
+ .Avatar_overflow {
2308
+ background: linear-gradient(var(--prime-color-fill-muted), var(--prime-color-fill-muted)), var(--avatar-ring, var(--prime-color-bg-canvas));
2309
+ color: var(--prime-color-text-secondary);
2310
+ font-variant-numeric: tabular-nums;
2311
+ font-size: calc(var(--avatar-size) * 0.36);
1794
2312
  }
1795
2313
 
1796
2314
  /* src/internal/floatingSurface.module.css */
@@ -1816,10 +2334,46 @@ input::-moz-focus-inner {
1816
2334
  .floatingSurface_layer {
1817
2335
  z-index: var(--prime-z-overlay);
1818
2336
  }
2337
+ .floatingSurface_scrim {
2338
+ position: fixed;
2339
+ inset: 0;
2340
+ background: var(--prime-color-bg-scrim);
2341
+ }
2342
+ .floatingSurface_sheet {
2343
+ --prime-color-field-bg: var(--prime-color-field-bg-surface);
2344
+ --float-max-h: calc(100dvh - var(--prime-sheet-top-gap) - var(--prime-sheet-handle-area));
2345
+ --prime-panel-max-height: var(--float-max-h);
2346
+ position: fixed;
2347
+ right: 0;
2348
+ bottom: 0;
2349
+ left: 0;
2350
+ box-sizing: border-box;
2351
+ display: flex;
2352
+ flex-direction: column;
2353
+ max-height: calc(100dvh - var(--prime-sheet-top-gap));
2354
+ padding-block-end: max(var(--prime-space-2), env(safe-area-inset-bottom, 0px));
2355
+ border-start-start-radius: var(--prime-sheet-radius);
2356
+ border-start-end-radius: var(--prime-sheet-radius);
2357
+ background: var(--prime-color-bg-raised);
2358
+ box-shadow: 0 var(--prime-space-6) 0 0 var(--prime-color-bg-raised), var(--prime-shadow-modal);
2359
+ color: var(--prime-color-text-primary);
2360
+ font-family: var(--prime-font-family-sans);
2361
+ outline: none;
2362
+ }
2363
+ .floatingSurface_sheetContent.floatingSurface_sheetContent {
2364
+ position: static;
2365
+ flex: 1 1 auto;
2366
+ align-self: stretch;
2367
+ width: auto;
2368
+ min-width: 0;
2369
+ max-width: none;
2370
+ min-height: 0;
2371
+ }
1819
2372
 
1820
2373
  /* src/internal/overlayMotion.module.css */
1821
2374
  [data-state=closed].overlayMotion_dialog,
1822
2375
  [data-state=closed].overlayMotion_drawer,
2376
+ [data-state=closed].overlayMotion_sheet,
1823
2377
  [data-state=closed].overlayMotion_floating {
1824
2378
  pointer-events: none;
1825
2379
  }
@@ -1855,6 +2409,18 @@ input::-moz-focus-inner {
1855
2409
  .overlayMotion_drawer[data-state=closed] {
1856
2410
  animation: overlayMotion_overlayDrawerOut var(--prime-motion-duration-base) var(--prime-motion-easing-exit) both;
1857
2411
  }
2412
+ .overlayMotion_drawer[data-side=bottom][data-state=open] {
2413
+ animation: overlayMotion_overlaySheetIn var(--prime-motion-duration-slow) var(--prime-motion-easing-enter) both;
2414
+ }
2415
+ .overlayMotion_drawer[data-side=bottom][data-state=closed] {
2416
+ animation: overlayMotion_overlaySheetOut var(--prime-motion-duration-base) var(--prime-motion-easing-exit) both;
2417
+ }
2418
+ .overlayMotion_sheet[data-state=open] {
2419
+ animation: overlayMotion_overlaySheetIn var(--prime-motion-duration-slow) var(--prime-motion-easing-enter) both;
2420
+ }
2421
+ .overlayMotion_sheet[data-state=closed] {
2422
+ animation: overlayMotion_overlaySheetOut var(--prime-motion-duration-base) var(--prime-motion-easing-exit) both;
2423
+ }
1858
2424
  .overlayMotion_floating {
1859
2425
  --overlay-shift: 0 calc(-1 * var(--prime-space-1));
1860
2426
  transform-origin: top center;
@@ -1934,6 +2500,48 @@ input::-moz-focus-inner {
1934
2500
  }
1935
2501
  }
1936
2502
 
2503
+ /* src/internal/sheet.module.css */
2504
+ .sheet_handle {
2505
+ display: flex;
2506
+ flex: none;
2507
+ align-items: center;
2508
+ justify-content: center;
2509
+ height: var(--prime-sheet-handle-area);
2510
+ touch-action: none;
2511
+ cursor: grab;
2512
+ }
2513
+ .sheet_handle::before {
2514
+ content: "";
2515
+ width: var(--prime-sheet-handle-width);
2516
+ height: var(--prime-sheet-handle-height);
2517
+ border-radius: var(--prime-radius-full);
2518
+ background: var(--prime-color-fill-strong);
2519
+ }
2520
+ .sheet_swipeY,
2521
+ .sheet_swipeX {
2522
+ transition: transform var(--prime-motion-duration-base) var(--prime-motion-easing-emphasized);
2523
+ }
2524
+ .sheet_swipeY {
2525
+ transform: translate3d(0, var(--swipe-offset, 0px), 0);
2526
+ }
2527
+ .sheet_swipeX {
2528
+ transform: translate3d(var(--swipe-offset, 0px), 0, 0);
2529
+ }
2530
+ .sheet_swipeY[data-swiping],
2531
+ .sheet_swipeX[data-swiping] {
2532
+ transition: none;
2533
+ cursor: grabbing;
2534
+ user-select: none;
2535
+ }
2536
+ .sheet_swipeY.sheet_swipeY[data-swipe-dismissed],
2537
+ .sheet_swipeX.sheet_swipeX[data-swipe-dismissed] {
2538
+ animation: none;
2539
+ }
2540
+ .sheet_handle + header {
2541
+ padding-block-start: var(--prime-space-1);
2542
+ touch-action: none;
2543
+ }
2544
+
1937
2545
  /* src/components/popover/Popover.module.css */
1938
2546
  .Popover_content {
1939
2547
  --po-pad: var(--prime-panel-content-padding);
@@ -2022,7 +2630,7 @@ input::-moz-focus-inner {
2022
2630
  gap: var(--prime-space-2);
2023
2631
  padding-block-start: var(--prime-space-1);
2024
2632
  }
2025
- @media (max-width: 479px) {
2633
+ @media (max-width: 639px) {
2026
2634
  .Popover_actions {
2027
2635
  flex-direction: column;
2028
2636
  align-items: stretch;
@@ -2312,15 +2920,28 @@ input::-moz-focus-inner {
2312
2920
  inset-inline-end: calc(100% - var(--sb-rail-box));
2313
2921
  }
2314
2922
  .Sidebar_root[data-panel-mode=compact]:not([data-off-canvas]) .Sidebar_brand,
2315
- .Sidebar_root[data-panel-mode=compact]:not([data-off-canvas]) :is(.Sidebar_item, .Sidebar_account):is(:hover, :active, :focus-visible, [aria-current=page], [data-state=active], [aria-expanded=true], [data-active-path]) {
2923
+ .Sidebar_root[data-panel-mode=compact]:not([data-off-canvas]) :is(.Sidebar_item, .Sidebar_account):is(:active, :focus-visible, [aria-current=page], [data-state=active], [aria-expanded=true], [data-active-path]) {
2316
2924
  clip-path: inset(calc(-1 * var(--prime-space-1)) calc(100% - var(--sb-rail-box)) calc(-1 * var(--prime-space-1)) calc(-1 * var(--prime-space-1)));
2317
2925
  }
2318
- .Sidebar_root:not([data-off-canvas]) :is(.Sidebar_item, .Sidebar_account, .Sidebar_brand):is(:hover, :active, :focus-visible, [aria-current=page], [data-state=active], [aria-expanded=true], [data-active-path])::before {
2926
+ @media (hover: hover) {
2927
+ .Sidebar_root[data-panel-mode=compact]:not([data-off-canvas]) :is(.Sidebar_item, .Sidebar_account):hover {
2928
+ clip-path: inset(calc(-1 * var(--prime-space-1)) calc(100% - var(--sb-rail-box)) calc(-1 * var(--prime-space-1)) calc(-1 * var(--prime-space-1)));
2929
+ }
2930
+ }
2931
+ .Sidebar_root:not([data-off-canvas]) :is(.Sidebar_item, .Sidebar_account, .Sidebar_brand):is(:active, :focus-visible, [aria-current=page], [data-state=active], [aria-expanded=true], [data-active-path])::before {
2319
2932
  transition:
2320
2933
  inset-inline-end var(--sb-duration) var(--sb-ease),
2321
2934
  background-color var(--prime-motion-duration-xfast) var(--sb-ease),
2322
2935
  box-shadow var(--prime-motion-duration-fast) var(--sb-ease);
2323
2936
  }
2937
+ @media (hover: hover) {
2938
+ .Sidebar_root:not([data-off-canvas]) :is(.Sidebar_item, .Sidebar_account, .Sidebar_brand):hover::before {
2939
+ transition:
2940
+ inset-inline-end var(--sb-duration) var(--sb-ease),
2941
+ background-color var(--prime-motion-duration-xfast) var(--sb-ease),
2942
+ box-shadow var(--prime-motion-duration-fast) var(--sb-ease);
2943
+ }
2944
+ }
2324
2945
  .Sidebar_label,
2325
2946
  .Sidebar_groupText,
2326
2947
  .Sidebar_brandName,
@@ -2434,16 +3055,11 @@ input::-moz-focus-inner {
2434
3055
  cursor: pointer;
2435
3056
  transition: background-color var(--prime-motion-duration-xfast) var(--sb-ease), color var(--prime-motion-duration-xfast) var(--sb-ease);
2436
3057
  }
2437
- .Sidebar_groupTrigger:hover {
2438
- background-color: var(--prime-color-fill-subtle);
2439
- color: var(--prime-color-text-secondary);
2440
- }
2441
- .Sidebar_root[data-panel-mode=compact]:not([data-off-canvas]) .Sidebar_groupTrigger {
2442
- cursor: default;
2443
- }
2444
- .Sidebar_root[data-panel-mode=compact]:not([data-off-canvas]) .Sidebar_groupTrigger:hover {
2445
- background-color: transparent;
2446
- color: var(--prime-color-text-muted);
3058
+ @media (hover: hover) {
3059
+ .Sidebar_groupTrigger:hover {
3060
+ background-color: var(--prime-color-fill-subtle);
3061
+ color: var(--prime-color-text-secondary);
3062
+ }
2447
3063
  }
2448
3064
  .Sidebar_groupTrigger:focus-visible {
2449
3065
  outline: var(--prime-focus-width) solid var(--prime-color-focus-ring);
@@ -2457,8 +3073,10 @@ input::-moz-focus-inner {
2457
3073
  stroke: currentcolor;
2458
3074
  transition: rotate var(--prime-motion-duration-base) var(--sb-ease), stroke var(--sb-duration) var(--sb-ease);
2459
3075
  }
2460
- .Sidebar_groupTrigger:hover .Sidebar_groupChevron {
2461
- color: var(--prime-color-text-secondary);
3076
+ @media (hover: hover) {
3077
+ .Sidebar_groupTrigger:hover .Sidebar_groupChevron {
3078
+ color: var(--prime-color-text-secondary);
3079
+ }
2462
3080
  }
2463
3081
  .Sidebar_groupTrigger[aria-expanded=true] .Sidebar_groupChevron {
2464
3082
  rotate: 180deg;
@@ -2550,6 +3168,19 @@ input::-moz-focus-inner {
2550
3168
  .Sidebar_root:not([data-ready]) :is(.Sidebar_disclosure, .Sidebar_disclosureClip > *, .Sidebar_chevron, .Sidebar_groupChevron) {
2551
3169
  transition: none;
2552
3170
  }
3171
+ .Sidebar_groupBody {
3172
+ display: grid;
3173
+ min-width: 0;
3174
+ }
3175
+ .Sidebar_groupBody > .Sidebar_disclosure {
3176
+ grid-area: 1 / 1;
3177
+ }
3178
+ .Sidebar_groupBody[data-swap] > .Sidebar_groupRail {
3179
+ transition: grid-template-rows 0s linear var(--sb-duration), visibility 0s linear var(--sb-duration);
3180
+ }
3181
+ .Sidebar_groupBody[data-swap] > .Sidebar_groupRail[data-state=open] {
3182
+ transition: grid-template-rows 0s, visibility 0s;
3183
+ }
2553
3184
  .Sidebar_item {
2554
3185
  position: relative;
2555
3186
  box-sizing: border-box;
@@ -2581,11 +3212,16 @@ input::-moz-focus-inner {
2581
3212
  transform var(--prime-motion-duration-fast) var(--sb-ease),
2582
3213
  clip-path var(--sb-duration) var(--sb-ease);
2583
3214
  }
2584
- .Sidebar_item:hover,
2585
3215
  .Sidebar_flyout .Sidebar_item:focus-visible {
2586
3216
  --sb-fill: var(--prime-color-fill-subtle);
2587
3217
  color: var(--prime-color-text-primary);
2588
3218
  }
3219
+ @media (hover: hover) {
3220
+ .Sidebar_item:hover {
3221
+ --sb-fill: var(--prime-color-fill-subtle);
3222
+ color: var(--prime-color-text-primary);
3223
+ }
3224
+ }
2589
3225
  .Sidebar_item:active:not([data-disabled=true], :disabled) {
2590
3226
  --sb-fill: var(--prime-color-fill-subtle-active);
2591
3227
  transform: scale(var(--prime-motion-press-scale));
@@ -2620,7 +3256,11 @@ input::-moz-focus-inner {
2620
3256
  width: 100%;
2621
3257
  height: 100%;
2622
3258
  }
2623
- .Sidebar_item:hover .Sidebar_icon,
3259
+ @media (hover: hover) {
3260
+ .Sidebar_item:hover .Sidebar_icon {
3261
+ color: var(--prime-color-text-primary);
3262
+ }
3263
+ }
2624
3264
  .Sidebar_item[data-state=active] .Sidebar_icon,
2625
3265
  .Sidebar_item[aria-current=page] .Sidebar_icon,
2626
3266
  .Sidebar_item[data-active-path] .Sidebar_icon {
@@ -2697,8 +3337,10 @@ input::-moz-focus-inner {
2697
3337
  rotate var(--prime-motion-duration-base) var(--sb-ease),
2698
3338
  color var(--prime-motion-duration-xfast) var(--sb-ease);
2699
3339
  }
2700
- .Sidebar_item:hover .Sidebar_chevron {
2701
- color: var(--prime-color-text-secondary);
3340
+ @media (hover: hover) {
3341
+ .Sidebar_item:hover .Sidebar_chevron {
3342
+ color: var(--prime-color-text-secondary);
3343
+ }
2702
3344
  }
2703
3345
  .Sidebar_item[aria-expanded=true] .Sidebar_chevron {
2704
3346
  rotate: 180deg;
@@ -2719,15 +3361,31 @@ input::-moz-focus-inner {
2719
3361
  pointer-events: none;
2720
3362
  transition: opacity var(--prime-motion-duration-fast) var(--sb-ease);
2721
3363
  }
2722
- .Sidebar_row:hover > .Sidebar_action,
2723
3364
  .Sidebar_row:focus-within > .Sidebar_action {
2724
3365
  opacity: 1;
2725
3366
  pointer-events: auto;
2726
3367
  }
2727
- .Sidebar_row:hover .Sidebar_trail,
2728
3368
  .Sidebar_row:focus-within .Sidebar_trail {
2729
3369
  translate: calc(-1 * var(--sb-action-shift)) 0;
2730
3370
  }
3371
+ @media (hover: hover) {
3372
+ .Sidebar_row:hover > .Sidebar_action {
3373
+ opacity: 1;
3374
+ pointer-events: auto;
3375
+ }
3376
+ .Sidebar_row:hover .Sidebar_trail {
3377
+ translate: calc(-1 * var(--sb-action-shift)) 0;
3378
+ }
3379
+ }
3380
+ @media (hover: none) {
3381
+ .Sidebar_row > .Sidebar_action {
3382
+ opacity: 1;
3383
+ pointer-events: auto;
3384
+ }
3385
+ .Sidebar_row .Sidebar_trail {
3386
+ translate: calc(-1 * var(--sb-action-shift)) 0;
3387
+ }
3388
+ }
2731
3389
  .Sidebar_subList {
2732
3390
  --sub-gap: var(--prime-space-1);
2733
3391
  --sub-line-x: calc(var(--sb-item-pad) + var(--sb-icon) / 2 - var(--prime-border-width) / 2);
@@ -2824,10 +3482,14 @@ input::-moz-focus-inner {
2824
3482
  isolation: isolate;
2825
3483
  transition: transform var(--prime-motion-duration-fast) var(--sb-ease), clip-path var(--sb-duration) var(--sb-ease);
2826
3484
  }
2827
- .Sidebar_account:hover,
2828
3485
  .Sidebar_account[aria-expanded=true] {
2829
3486
  --sb-fill: var(--prime-color-fill-subtle);
2830
3487
  }
3488
+ @media (hover: hover) {
3489
+ .Sidebar_account:hover {
3490
+ --sb-fill: var(--prime-color-fill-subtle);
3491
+ }
3492
+ }
2831
3493
  .Sidebar_account:active {
2832
3494
  --sb-fill: var(--prime-color-fill-subtle-active);
2833
3495
  transform: scale(var(--prime-motion-press-scale));
@@ -2855,10 +3517,14 @@ input::-moz-focus-inner {
2855
3517
  font-weight: var(--prime-font-weight-medium);
2856
3518
  transition: color var(--prime-motion-duration-xfast) var(--sb-ease), -webkit-text-fill-color var(--sb-duration) var(--sb-ease);
2857
3519
  }
2858
- .Sidebar_account:hover .Sidebar_accountName,
2859
3520
  .Sidebar_account[aria-expanded=true] .Sidebar_accountName {
2860
3521
  color: var(--prime-color-text-primary);
2861
3522
  }
3523
+ @media (hover: hover) {
3524
+ .Sidebar_account:hover .Sidebar_accountName {
3525
+ color: var(--prime-color-text-primary);
3526
+ }
3527
+ }
2862
3528
  .Sidebar_accountChevron {
2863
3529
  flex: none;
2864
3530
  width: var(--sb-icon);
@@ -2895,10 +3561,14 @@ input::-moz-focus-inner {
2895
3561
  background-color var(--prime-motion-duration-fast) var(--sb-ease),
2896
3562
  color var(--prime-motion-duration-fast) var(--sb-ease);
2897
3563
  }
2898
- .Sidebar_root .Sidebar_headerToggle:hover,
2899
3564
  .Sidebar_root .Sidebar_headerToggle:focus-visible {
2900
3565
  color: var(--prime-color-text-primary);
2901
3566
  }
3567
+ @media (hover: hover) {
3568
+ .Sidebar_root .Sidebar_headerToggle:hover {
3569
+ color: var(--prime-color-text-primary);
3570
+ }
3571
+ }
2902
3572
  .Sidebar_headerToggleIcon {
2903
3573
  transition: rotate var(--sb-duration) var(--sb-ease);
2904
3574
  }
@@ -2908,8 +3578,10 @@ input::-moz-focus-inner {
2908
3578
  translate: calc(var(--sb-compact) - var(--sb-toggle) / 2) 0;
2909
3579
  scale: var(--sb-edge-scale);
2910
3580
  }
2911
- .Sidebar_root[data-mode=compact]:not([data-off-canvas]):hover .Sidebar_headerToggle {
2912
- color: var(--prime-color-text-primary);
3581
+ @media (hover: hover) {
3582
+ .Sidebar_root[data-mode=compact]:not([data-off-canvas]):hover .Sidebar_headerToggle {
3583
+ color: var(--prime-color-text-primary);
3584
+ }
2913
3585
  }
2914
3586
  .Sidebar_root[data-panel-mode=compact]:not([data-off-canvas]) .Sidebar_headerToggleIcon {
2915
3587
  rotate: 180deg;
@@ -3099,8 +3771,10 @@ input::-moz-focus-inner {
3099
3771
  cursor: pointer;
3100
3772
  transition: background-color var(--prime-motion-duration-fast) var(--prime-motion-easing-standard);
3101
3773
  }
3102
- .Accordion_trigger:hover:not(:disabled) {
3103
- background: var(--prime-color-fill-subtle);
3774
+ @media (hover: hover) {
3775
+ .Accordion_trigger:hover:not(:disabled) {
3776
+ background: var(--prime-color-fill-subtle);
3777
+ }
3104
3778
  }
3105
3779
  .Accordion_trigger:active:not(:disabled) {
3106
3780
  background: var(--prime-color-fill-subtle-active);
@@ -3135,10 +3809,14 @@ input::-moz-focus-inner {
3135
3809
  color: var(--prime-color-text-muted);
3136
3810
  transition: color var(--prime-motion-duration-fast) var(--prime-motion-easing-standard), transform var(--prime-motion-duration-base) var(--prime-motion-easing-standard);
3137
3811
  }
3138
- .Accordion_trigger:hover:not(:disabled) .Accordion_chevron,
3139
3812
  .Accordion_trigger[data-state=open] .Accordion_chevron {
3140
3813
  color: var(--prime-color-text-secondary);
3141
3814
  }
3815
+ @media (hover: hover) {
3816
+ .Accordion_trigger:hover:not(:disabled) .Accordion_chevron {
3817
+ color: var(--prime-color-text-secondary);
3818
+ }
3819
+ }
3142
3820
  .Accordion_trigger[data-state=open] .Accordion_chevron {
3143
3821
  transform: rotate(180deg);
3144
3822
  }
@@ -3465,9 +4143,11 @@ button.LinkButton_root {
3465
4143
  --link-gap: var(--prime-space-2);
3466
4144
  --prime-icon-size: var(--prime-control-xl-icon);
3467
4145
  }
3468
- .LinkButton_root:hover:not([data-disabled=true]) {
3469
- color: var(--link-fg-hover);
3470
- text-decoration-color: currentColor;
4146
+ @media (hover: hover) {
4147
+ .LinkButton_root:hover:not([data-disabled=true]) {
4148
+ color: var(--link-fg-hover);
4149
+ text-decoration-color: currentColor;
4150
+ }
3471
4151
  }
3472
4152
  .LinkButton_root:focus-visible {
3473
4153
  outline: var(--prime-focus-width) solid var(--prime-color-focus-ring);
@@ -3547,11 +4227,16 @@ button.LinkButton_root {
3547
4227
  .Breadcrumb_item > .Breadcrumb_link {
3548
4228
  color: var(--prime-color-text-muted);
3549
4229
  }
3550
- .Breadcrumb_item > a.Breadcrumb_link:hover,
3551
4230
  .Breadcrumb_item > a.Breadcrumb_link:focus-visible {
3552
4231
  color: var(--prime-color-text-primary);
3553
4232
  text-decoration-color: transparent;
3554
4233
  }
4234
+ @media (hover: hover) {
4235
+ .Breadcrumb_item > a.Breadcrumb_link:hover {
4236
+ color: var(--prime-color-text-primary);
4237
+ text-decoration-color: transparent;
4238
+ }
4239
+ }
3555
4240
  .Breadcrumb_current {
3556
4241
  color: var(--prime-color-text-primary);
3557
4242
  font-weight: var(--prime-font-weight-medium);
@@ -3564,9 +4249,6 @@ button.LinkButton_root {
3564
4249
  color: var(--prime-color-text-placeholder);
3565
4250
  user-select: none;
3566
4251
  }
3567
- .Breadcrumb_item:first-child > .Breadcrumb_separator {
3568
- display: none;
3569
- }
3570
4252
  .Breadcrumb_ellipsis {
3571
4253
  display: inline-flex;
3572
4254
  flex-shrink: 0;
@@ -3643,9 +4325,11 @@ button.LinkButton_root {
3643
4325
  width: var(--field-h);
3644
4326
  padding-inline: 0;
3645
4327
  }
3646
- .ButtonGroup_item:hover:not(:disabled) {
3647
- background: var(--prime-color-fill-muted-hover);
3648
- color: var(--prime-color-text-primary);
4328
+ @media (hover: hover) {
4329
+ .ButtonGroup_item:hover:not(:disabled) {
4330
+ background: var(--prime-color-fill-muted-hover);
4331
+ color: var(--prime-color-text-primary);
4332
+ }
3649
4333
  }
3650
4334
  .ButtonGroup_item:active:not(:disabled) {
3651
4335
  background: var(--prime-color-fill-strong);
@@ -3663,9 +4347,11 @@ button.LinkButton_root {
3663
4347
  background: var(--prime-color-accent-soft);
3664
4348
  color: var(--prime-color-accent-text);
3665
4349
  }
3666
- .ButtonGroup_item[data-state=active]:hover:not(:disabled) {
3667
- background: var(--prime-color-accent-soft-hover);
3668
- color: var(--prime-color-accent-text);
4350
+ @media (hover: hover) {
4351
+ .ButtonGroup_item[data-state=active]:hover:not(:disabled) {
4352
+ background: var(--prime-color-accent-soft-hover);
4353
+ color: var(--prime-color-accent-text);
4354
+ }
3669
4355
  }
3670
4356
  .ButtonGroup_item:disabled {
3671
4357
  background: var(--prime-color-fill-muted);
@@ -4211,8 +4897,10 @@ button.LinkButton_root {
4211
4897
  box-shadow var(--prime-motion-duration-fast) var(--prime-motion-easing-standard),
4212
4898
  transform var(--prime-motion-duration-fast) var(--prime-motion-easing-standard);
4213
4899
  }
4214
- .ChoiceField_field:not([data-disabled=true], [data-readonly=true]) .ChoiceField_row:hover .ChoiceField_visual {
4215
- background: var(--prime-color-fill-strong-hover);
4900
+ @media (hover: hover) {
4901
+ .ChoiceField_field:not([data-disabled=true], [data-readonly=true]) .ChoiceField_row:hover .ChoiceField_visual {
4902
+ background: var(--prime-color-fill-strong-hover);
4903
+ }
4216
4904
  }
4217
4905
  .ChoiceField_field:not([data-disabled=true], [data-readonly=true]) .ChoiceField_row:active .ChoiceField_visual {
4218
4906
  transform: scale(var(--prime-motion-press-scale-compact));
@@ -4220,8 +4908,10 @@ button.LinkButton_root {
4220
4908
  :is(.ChoiceField_field:is([data-state=checked], [data-state=indeterminate]) .ChoiceField_visual, .ChoiceField_visual:is([data-state=checked], [data-state=indeterminate])) {
4221
4909
  background: var(--prime-color-accent-default);
4222
4910
  }
4223
- .ChoiceField_field:is([data-state=checked], [data-state=indeterminate]):not([data-disabled=true], [data-readonly=true]) .ChoiceField_row:hover .ChoiceField_visual {
4224
- background: var(--prime-color-accent-hover);
4911
+ @media (hover: hover) {
4912
+ .ChoiceField_field:is([data-state=checked], [data-state=indeterminate]):not([data-disabled=true], [data-readonly=true]) .ChoiceField_row:hover .ChoiceField_visual {
4913
+ background: var(--prime-color-accent-hover);
4914
+ }
4225
4915
  }
4226
4916
  .ChoiceField_input:focus-visible + .ChoiceField_visual {
4227
4917
  outline: var(--prime-focus-width) solid var(--prime-color-focus-ring);
@@ -4651,10 +5341,14 @@ button.LinkButton_root {
4651
5341
  pointer-events: none;
4652
5342
  transition: box-shadow var(--prime-motion-duration-fast) var(--prime-motion-easing-standard);
4653
5343
  }
4654
- .ColorPresets_trigger:hover:not(:disabled)::after,
4655
5344
  .ColorPresets_trigger[data-state=open]::after {
4656
5345
  box-shadow: inset 0 0 0 var(--prime-border-width) var(--prime-color-fill-strong);
4657
5346
  }
5347
+ @media (hover: hover) {
5348
+ .ColorPresets_trigger:hover:not(:disabled)::after {
5349
+ box-shadow: inset 0 0 0 var(--prime-border-width) var(--prime-color-fill-strong);
5350
+ }
5351
+ }
4658
5352
  .ColorPresets_trigger:active:not(:disabled) {
4659
5353
  transform: scale(var(--prime-motion-press-scale));
4660
5354
  }
@@ -4877,38 +5571,6 @@ button.LinkButton_root {
4877
5571
  padding-top: var(--prime-space-2);
4878
5572
  }
4879
5573
 
4880
- /* src/components/kbd/Kbd.module.css */
4881
- .Kbd_root {
4882
- box-sizing: border-box;
4883
- display: inline-flex;
4884
- flex-shrink: 0;
4885
- align-items: center;
4886
- justify-content: center;
4887
- gap: var(--chip-gap);
4888
- height: var(--chip-h);
4889
- min-width: var(--chip-h);
4890
- padding-inline: var(--chip-px);
4891
- border-radius: var(--chip-radius);
4892
- background: var(--prime-color-fill-subtle-active);
4893
- color: var(--prime-color-text-secondary);
4894
- font-family: var(--prime-font-family-mono);
4895
- font-size: var(--chip-text);
4896
- line-height: 1;
4897
- font-weight: var(--prime-font-weight-medium);
4898
- font-variant-numeric: tabular-nums;
4899
- white-space: nowrap;
4900
- vertical-align: middle;
4901
- }
4902
- .Kbd_root > * {
4903
- font-size: inherit;
4904
- line-height: inherit;
4905
- }
4906
- .Kbd_root :where(svg) {
4907
- flex-shrink: 0;
4908
- width: var(--prime-icon-size);
4909
- height: var(--prime-icon-size);
4910
- }
4911
-
4912
5574
  /* src/components/modal/DialogParts.module.css */
4913
5575
  .DialogParts_shell {
4914
5576
  --dialog-hairline: linear-gradient( var(--prime-color-border-faint), var(--prime-color-border-faint) );
@@ -5057,6 +5719,17 @@ button.LinkButton_root {
5057
5719
  justify-content: flex-end;
5058
5720
  gap: var(--prime-space-2);
5059
5721
  }
5722
+ @media (max-width: 639px) {
5723
+ .DialogParts_footer[data-layout] {
5724
+ display: flex;
5725
+ flex-direction: column;
5726
+ align-items: stretch;
5727
+ gap: var(--prime-space-2);
5728
+ }
5729
+ .DialogParts_footer[data-layout] > * {
5730
+ width: 100%;
5731
+ }
5732
+ }
5060
5733
  @container DialogParts_prime-dialog (max-width: 359px) {
5061
5734
  .DialogParts_footer[data-layout] {
5062
5735
  display: flex;
@@ -5117,9 +5790,13 @@ button.LinkButton_root {
5117
5790
  }
5118
5791
  .Modal_content {
5119
5792
  width: 100%;
5120
- max-height: calc(100dvh - var(--prime-modal-viewport-padding));
5793
+ max-height: calc(100dvh - var(--prime-sheet-top-gap));
5794
+ padding-block-end: env(safe-area-inset-bottom, 0px);
5795
+ border-start-start-radius: var(--prime-sheet-radius);
5796
+ border-start-end-radius: var(--prime-sheet-radius);
5121
5797
  border-end-start-radius: 0;
5122
5798
  border-end-end-radius: 0;
5799
+ box-shadow: 0 var(--prime-space-6) 0 0 var(--prime-color-bg-raised), var(--prime-shadow-modal);
5123
5800
  }
5124
5801
  }
5125
5802
 
@@ -5131,7 +5808,8 @@ button.LinkButton_root {
5131
5808
 
5132
5809
  /* src/internal/menu.module.css */
5133
5810
  .menu_tier {
5134
- --menu-item-h: var(--prime-control-m-item-height);
5811
+ --menu-item-h: var(--menu-tier-item-h);
5812
+ --menu-tier-item-h: var(--prime-control-m-item-height);
5135
5813
  --menu-text: var(--prime-control-m-text-size);
5136
5814
  --menu-lh: var(--prime-control-m-line-height);
5137
5815
  --menu-icon: var(--prime-control-m-icon);
@@ -5140,7 +5818,7 @@ button.LinkButton_root {
5140
5818
  --menu-desc-lh: var(--prime-text-body-s-line-height);
5141
5819
  }
5142
5820
  .menu_tier[data-size=xs] {
5143
- --menu-item-h: var(--prime-control-xs-item-height);
5821
+ --menu-tier-item-h: var(--prime-control-xs-item-height);
5144
5822
  --menu-text: var(--prime-control-xs-text-size);
5145
5823
  --menu-lh: var(--prime-control-xs-line-height);
5146
5824
  --menu-icon: var(--prime-control-xs-icon);
@@ -5149,7 +5827,7 @@ button.LinkButton_root {
5149
5827
  --menu-desc-lh: var(--prime-text-caption-line-height);
5150
5828
  }
5151
5829
  .menu_tier[data-size=s] {
5152
- --menu-item-h: var(--prime-control-s-item-height);
5830
+ --menu-tier-item-h: var(--prime-control-s-item-height);
5153
5831
  --menu-text: var(--prime-control-s-text-size);
5154
5832
  --menu-lh: var(--prime-control-s-line-height);
5155
5833
  --menu-icon: var(--prime-control-s-icon);
@@ -5158,19 +5836,24 @@ button.LinkButton_root {
5158
5836
  --menu-desc-lh: var(--prime-text-caption-line-height);
5159
5837
  }
5160
5838
  .menu_tier[data-size=l] {
5161
- --menu-item-h: var(--prime-control-l-item-height);
5839
+ --menu-tier-item-h: var(--prime-control-l-item-height);
5162
5840
  --menu-text: var(--prime-control-l-text-size);
5163
5841
  --menu-lh: var(--prime-control-l-line-height);
5164
5842
  --menu-icon: var(--prime-control-l-icon);
5165
5843
  --menu-gap: var(--prime-control-l-gap);
5166
5844
  }
5167
5845
  .menu_tier[data-size=xl] {
5168
- --menu-item-h: var(--prime-control-xl-item-height);
5846
+ --menu-tier-item-h: var(--prime-control-xl-item-height);
5169
5847
  --menu-text: var(--prime-control-xl-text-size);
5170
5848
  --menu-lh: var(--prime-control-xl-line-height);
5171
5849
  --menu-icon: var(--prime-control-xl-icon);
5172
5850
  --menu-gap: var(--prime-control-xl-gap);
5173
5851
  }
5852
+ @media (pointer: coarse) {
5853
+ .menu_tier {
5854
+ --menu-item-h: max(var(--menu-tier-item-h), var(--prime-control-touch-target));
5855
+ }
5856
+ }
5174
5857
  .menu_menu {
5175
5858
  max-height: min(var(--prime-panel-max-height), var(--float-max-h, var(--prime-panel-max-height)));
5176
5859
  padding: var(--prime-panel-padding);
@@ -5238,6 +5921,20 @@ button.LinkButton_root {
5238
5921
  .menu_shortcut {
5239
5922
  margin-inline-start: auto;
5240
5923
  }
5924
+ .menu_check {
5925
+ --prime-icon-size: var(--menu-icon);
5926
+ display: inline-flex;
5927
+ flex-shrink: 0;
5928
+ align-items: center;
5929
+ justify-content: center;
5930
+ width: var(--menu-icon);
5931
+ height: var(--menu-icon);
5932
+ margin-inline-start: auto;
5933
+ color: var(--prime-color-accent-text);
5934
+ }
5935
+ .menu_item[data-disabled=true] .menu_check {
5936
+ color: var(--prime-color-text-disabled);
5937
+ }
5241
5938
  .menu_group {
5242
5939
  display: flex;
5243
5940
  flex-direction: column;
@@ -5287,6 +5984,11 @@ button.LinkButton_root {
5287
5984
  outline: none;
5288
5985
  appearance: none;
5289
5986
  }
5987
+ @media (pointer: coarse), (max-width: 639px) {
5988
+ .menu_searchInput {
5989
+ font-size: max(1em, var(--prime-control-touch-text-size));
5990
+ }
5991
+ }
5290
5992
  .menu_searchInput::-webkit-search-cancel-button {
5291
5993
  appearance: none;
5292
5994
  }
@@ -5484,6 +6186,9 @@ button.LinkButton_root {
5484
6186
  --dt-z-sticky-first-column: 1;
5485
6187
  --dt-z-sticky-header: 2;
5486
6188
  --dt-z-sticky-corner: 3;
6189
+ --dt-edge-depth: var(--prime-space-4);
6190
+ --dt-edge-shadow: var(--prime-color-bg-edge-shadow);
6191
+ --dt-edge-dir: to right;
5487
6192
  --prime-color-field-bg: var(--prime-color-field-bg-surface);
5488
6193
  container-type: inline-size;
5489
6194
  display: flex;
@@ -5576,11 +6281,55 @@ button.LinkButton_root {
5576
6281
  .DataTable_toolbar > * {
5577
6282
  min-width: 0;
5578
6283
  }
6284
+ .DataTable_root:dir(rtl) {
6285
+ --dt-edge-dir: to left;
6286
+ }
6287
+ .DataTable_frame {
6288
+ position: relative;
6289
+ display: flex;
6290
+ flex-direction: column;
6291
+ min-height: 0;
6292
+ isolation: isolate;
6293
+ }
5579
6294
  .DataTable_viewport {
5580
6295
  width: 100%;
5581
6296
  padding: 0;
5582
6297
  isolation: isolate;
5583
6298
  }
6299
+ .DataTable_frame::before,
6300
+ .DataTable_frame::after {
6301
+ content: "";
6302
+ position: absolute;
6303
+ inset-block: 0;
6304
+ z-index: 1;
6305
+ width: var(--dt-edge-depth);
6306
+ pointer-events: none;
6307
+ opacity: 0;
6308
+ transition: opacity var(--prime-motion-duration-fast) var(--prime-motion-easing-standard);
6309
+ }
6310
+ .DataTable_frame::before {
6311
+ inset-inline-start: 0;
6312
+ background:
6313
+ linear-gradient(
6314
+ var(--dt-edge-dir),
6315
+ var(--dt-edge-shadow),
6316
+ transparent);
6317
+ }
6318
+ .DataTable_frame::after {
6319
+ inset-inline-end: 0;
6320
+ background:
6321
+ linear-gradient(
6322
+ var(--dt-edge-dir),
6323
+ transparent,
6324
+ var(--dt-edge-shadow));
6325
+ }
6326
+ .DataTable_root[data-overflow-start=true] .DataTable_frame::before,
6327
+ .DataTable_root[data-overflow-end=true] .DataTable_frame::after {
6328
+ opacity: 1;
6329
+ }
6330
+ .DataTable_root[data-sticky-first-column=true] .DataTable_frame::before {
6331
+ display: none;
6332
+ }
5584
6333
  .DataTable_table {
5585
6334
  width: max-content;
5586
6335
  border-collapse: separate;
@@ -5659,8 +6408,10 @@ button.LinkButton_root {
5659
6408
  .DataTable_headCell[data-align=center] .DataTable_sortButton {
5660
6409
  justify-content: center;
5661
6410
  }
5662
- .DataTable_sortButton:hover {
5663
- color: var(--prime-color-text-primary);
6411
+ @media (hover: hover) {
6412
+ .DataTable_sortButton:hover {
6413
+ color: var(--prime-color-text-primary);
6414
+ }
5664
6415
  }
5665
6416
  .DataTable_sortButton:focus-visible {
5666
6417
  outline: none;
@@ -5674,10 +6425,14 @@ button.LinkButton_root {
5674
6425
  color: var(--prime-color-text-disabled);
5675
6426
  transition: color var(--prime-motion-duration-fast) var(--prime-motion-easing-standard);
5676
6427
  }
5677
- .DataTable_sortButton:hover .DataTable_sortIcon,
5678
6428
  .DataTable_sortButton:focus-visible .DataTable_sortIcon {
5679
6429
  color: var(--prime-color-text-muted);
5680
6430
  }
6431
+ @media (hover: hover) {
6432
+ .DataTable_sortButton:hover .DataTable_sortIcon {
6433
+ color: var(--prime-color-text-muted);
6434
+ }
6435
+ }
5681
6436
  .DataTable_headCell[data-sorted=true] .DataTable_sortIcon {
5682
6437
  color: var(--prime-color-text-secondary);
5683
6438
  }
@@ -5763,8 +6518,10 @@ button.LinkButton_root {
5763
6518
  .DataTable_root[data-striped=true] .DataTable_row[data-stripe=alt] {
5764
6519
  --dt-cell-bg: var(--dt-step);
5765
6520
  }
5766
- .DataTable_root[data-highlight-row=true] .DataTable_row:hover {
5767
- --dt-wash: var(--prime-color-fill-subtle);
6521
+ @media (hover: hover) {
6522
+ .DataTable_root[data-highlight-row=true] .DataTable_row:hover {
6523
+ --dt-wash: var(--prime-color-fill-subtle);
6524
+ }
5768
6525
  }
5769
6526
  .DataTable_root[data-highlight-column=true] .DataTable_cell[data-column-hovered=true],
5770
6527
  .DataTable_root[data-highlight-column=true] .DataTable_headCell[data-column-hovered=true] {
@@ -5816,8 +6573,10 @@ button.LinkButton_root {
5816
6573
  --dt-cell-bg: var(--prime-color-accent-soft);
5817
6574
  --dt-wash: transparent;
5818
6575
  }
5819
- .DataTable_root[data-highlight-row=true] .DataTable_row[aria-selected=true]:hover {
5820
- --dt-cell-bg: var(--prime-color-accent-soft-hover);
6576
+ @media (hover: hover) {
6577
+ .DataTable_root[data-highlight-row=true] .DataTable_row[aria-selected=true]:hover {
6578
+ --dt-cell-bg: var(--prime-color-accent-soft-hover);
6579
+ }
5821
6580
  }
5822
6581
  .DataTable_row[data-clickable=true] {
5823
6582
  cursor: pointer;
@@ -5827,10 +6586,31 @@ button.LinkButton_root {
5827
6586
  }
5828
6587
  .DataTable_firstColumnSticky {
5829
6588
  position: sticky;
5830
- left: var(--dt-lead, 0);
6589
+ inset-inline-start: var(--dt-lead, 0);
5831
6590
  z-index: var(--dt-z-sticky-first-column);
5832
6591
  box-shadow: inset calc(-1 * var(--prime-border-width)) 0 0 var(--dt-divider-color);
5833
6592
  }
6593
+ .DataTable_root:dir(rtl) .DataTable_firstColumnSticky {
6594
+ box-shadow: inset var(--prime-border-width) 0 0 var(--dt-divider-color);
6595
+ }
6596
+ .DataTable_firstColumnSticky::after {
6597
+ content: "";
6598
+ position: absolute;
6599
+ inset-block: 0;
6600
+ inset-inline-start: 100%;
6601
+ width: var(--dt-edge-depth);
6602
+ pointer-events: none;
6603
+ opacity: 0;
6604
+ background:
6605
+ linear-gradient(
6606
+ var(--dt-edge-dir),
6607
+ var(--dt-edge-shadow),
6608
+ transparent);
6609
+ transition: opacity var(--prime-motion-duration-fast) var(--prime-motion-easing-standard);
6610
+ }
6611
+ .DataTable_root[data-overflow-start=true] .DataTable_firstColumnSticky::after {
6612
+ opacity: 1;
6613
+ }
5834
6614
  .DataTable_firstColumnSticky + .DataTable_cell,
5835
6615
  .DataTable_firstColumnSticky + .DataTable_headCell {
5836
6616
  border-inline-start-width: 0;
@@ -5840,11 +6620,11 @@ button.LinkButton_root {
5840
6620
  }
5841
6621
  .DataTable_stickyLead {
5842
6622
  position: sticky;
5843
- left: 0;
6623
+ inset-inline-start: 0;
5844
6624
  z-index: var(--dt-z-sticky-first-column);
5845
6625
  }
5846
6626
  .DataTable_root[data-selectable=true] .DataTable_toggleCell.DataTable_stickyLead {
5847
- left: var(--dt-select-w);
6627
+ inset-inline-start: var(--dt-select-w);
5848
6628
  }
5849
6629
  .DataTable_headCell.DataTable_stickyLead {
5850
6630
  z-index: var(--dt-z-sticky-header);
@@ -5925,6 +6705,11 @@ button.LinkButton_root {
5925
6705
  flex: 1 1 0%;
5926
6706
  min-width: 0;
5927
6707
  }
6708
+ @media (max-height: 479px) {
6709
+ .DataTable_root[data-sticky-header=true] .DataTable_headCell {
6710
+ top: auto;
6711
+ }
6712
+ }
5928
6713
  @container (max-width: 30rem) {
5929
6714
  .DataTable_toolbar {
5930
6715
  flex-direction: column;
@@ -6364,11 +7149,13 @@ button.LinkButton_root {
6364
7149
  cursor: pointer;
6365
7150
  transition: background-color var(--prime-motion-duration-xfast) var(--prime-motion-easing-standard), color var(--prime-motion-duration-xfast) var(--prime-motion-easing-standard);
6366
7151
  }
6367
- .Datepicker_day:hover:not(:disabled):not([data-edge=true]) {
6368
- background: var(--prime-color-fill-subtle);
6369
- }
6370
- .Datepicker_cell[data-band] .Datepicker_day:hover:not(:disabled):not([data-edge=true]) {
6371
- background: var(--prime-color-accent-soft-hover);
7152
+ @media (hover: hover) {
7153
+ .Datepicker_day:hover:not(:disabled):not([data-edge=true]) {
7154
+ background: var(--prime-color-fill-subtle);
7155
+ }
7156
+ .Datepicker_cell[data-band] .Datepicker_day:hover:not(:disabled):not([data-edge=true]) {
7157
+ background: var(--prime-color-accent-soft-hover);
7158
+ }
6372
7159
  }
6373
7160
  .Datepicker_day:active:not(:disabled):not([data-edge=true]) {
6374
7161
  background: var(--prime-color-fill-subtle-active);
@@ -6396,8 +7183,10 @@ button.LinkButton_root {
6396
7183
  color: var(--prime-color-accent-fg);
6397
7184
  font-weight: var(--prime-font-weight-medium);
6398
7185
  }
6399
- .Datepicker_day[data-edge=true]:hover {
6400
- background: var(--prime-color-accent-hover);
7186
+ @media (hover: hover) {
7187
+ .Datepicker_day[data-edge=true]:hover {
7188
+ background: var(--prime-color-accent-hover);
7189
+ }
6401
7190
  }
6402
7191
  .Datepicker_outsideDay {
6403
7192
  color: var(--prime-color-text-disabled);
@@ -6474,6 +7263,12 @@ button.LinkButton_root {
6474
7263
  text-align: center;
6475
7264
  outline: none;
6476
7265
  }
7266
+ @media (pointer: coarse), (max-width: 639px) {
7267
+ .Datepicker_fieldTime {
7268
+ width: max(calc(var(--dp-field-h) * 1.75), calc(5ch + 2 * var(--prime-space-2)));
7269
+ font-size: max(1em, var(--prime-control-touch-text-size));
7270
+ }
7271
+ }
6477
7272
  .Datepicker_field:has(.Datepicker_fieldTime:focus-visible) {
6478
7273
  background: var(--prime-color-field-bg-focus);
6479
7274
  outline: var(--prime-focus-width) solid var(--prime-color-focus-ring);
@@ -6537,11 +7332,14 @@ button.LinkButton_root {
6537
7332
  width: 100%;
6538
7333
  }
6539
7334
  .DigitInput_root {
6540
- --digit-cell-text: var(--prime-text-body-l-size);
6541
- --digit-cell-line-height: var(--prime-text-body-l-line-height);
7335
+ --digit-cell: var(--prime-control-xl-height);
7336
+ --digit-radius: var(--prime-control-xl-radius);
7337
+ --digit-gap: var(--prime-space-3);
7338
+ --digit-cell-text: var(--prime-text-heading-s-size);
7339
+ --digit-cell-line-height: var(--prime-text-heading-s-line-height);
6542
7340
  display: flex;
6543
7341
  flex-wrap: wrap;
6544
- gap: var(--field-gap);
7342
+ gap: var(--digit-gap);
6545
7343
  min-width: 0;
6546
7344
  min-inline-size: 0;
6547
7345
  margin: 0;
@@ -6553,151 +7351,74 @@ button.LinkButton_root {
6553
7351
  flex-wrap: nowrap;
6554
7352
  }
6555
7353
  .DigitInput_root[data-size=xs] {
6556
- --digit-cell-text: var(--prime-control-xs-text-size);
6557
- --digit-cell-line-height: var(--prime-control-xs-line-height);
6558
- }
6559
- .DigitInput_root[data-size=s] {
6560
- --digit-cell-text: var(--prime-text-body-m-size);
6561
- --digit-cell-line-height: var(--prime-text-body-m-line-height);
6562
- }
6563
- .DigitInput_root[data-size=l] {
6564
- --digit-cell-text: var(--prime-text-title-l-size);
6565
- --digit-cell-line-height: var(--prime-text-title-l-line-height);
6566
- }
6567
- .DigitInput_root[data-size=xl] {
6568
- --digit-cell-text: var(--prime-text-heading-s-size);
6569
- --digit-cell-line-height: var(--prime-text-heading-s-line-height);
6570
- }
6571
- .DigitInput_cell {
6572
- -webkit-appearance: none;
6573
- appearance: none;
6574
- box-sizing: border-box;
6575
- flex: 0 0 auto;
6576
- width: var(--field-h);
6577
- height: var(--field-h);
6578
- min-width: 0;
6579
- margin: 0;
6580
- padding: 0;
6581
- border: 0;
6582
- border-radius: var(--field-radius);
6583
- caret-color: var(--prime-color-accent-default);
6584
- font: inherit;
6585
- font-size: var(--digit-cell-text);
6586
- line-height: var(--digit-cell-line-height);
6587
- font-weight: var(--prime-font-weight-semibold);
6588
- font-variant-numeric: tabular-nums;
6589
- text-align: center;
6590
- outline: none;
6591
- transition:
6592
- background-color var(--prime-motion-duration-fast) var(--prime-motion-easing-standard),
6593
- box-shadow var(--prime-motion-duration-fast) var(--prime-motion-easing-standard),
6594
- color var(--prime-motion-duration-fast) var(--prime-motion-easing-standard);
6595
- }
6596
- .DigitInput_root[data-full-width=true] .DigitInput_cell {
6597
- flex: 1 1 0;
6598
- width: auto;
6599
- }
6600
- .DigitInput_cell[data-group-start=true] {
6601
- margin-inline-start: var(--field-gap);
6602
- }
6603
- .DigitInput_root[data-invalid=true] .DigitInput_cell {
6604
- color: var(--prime-color-danger-text);
6605
- }
6606
- .DigitInput_cell:disabled {
6607
- -webkit-text-fill-color: var(--prime-color-text-disabled);
6608
- }
6609
-
6610
- /* src/components/divider/Divider.module.css */
6611
- .Divider_root {
6612
- --divider-gap: var(--prime-control-m-gap);
6613
- --divider-icon: var(--prime-control-m-icon);
6614
- --divider-text: var(--prime-control-m-label-size);
6615
- --divider-lh: var(--prime-control-m-label-line-height);
6616
- --divider-tracking: normal;
6617
- box-sizing: border-box;
6618
- display: flex;
6619
- align-items: center;
6620
- gap: var(--divider-gap);
6621
- color: var(--prime-color-text-muted);
6622
- font-size: var(--divider-text);
6623
- line-height: var(--divider-lh);
6624
- letter-spacing: var(--divider-tracking);
6625
- }
6626
- .Divider_root[data-size=xs] {
6627
- --divider-gap: var(--prime-control-xs-gap);
6628
- --divider-icon: var(--prime-control-xs-icon);
6629
- --divider-text: var(--prime-control-xs-label-size);
6630
- --divider-lh: var(--prime-control-xs-label-line-height);
6631
- --divider-tracking: var(--prime-text-caption-tracking);
6632
- }
6633
- .Divider_root[data-size=s] {
6634
- --divider-gap: var(--prime-control-s-gap);
6635
- --divider-icon: var(--prime-control-s-icon);
6636
- --divider-text: var(--prime-control-s-label-size);
6637
- --divider-lh: var(--prime-control-s-label-line-height);
6638
- --divider-tracking: var(--prime-text-caption-tracking);
6639
- }
6640
- .Divider_root[data-size=l] {
6641
- --divider-gap: var(--prime-control-l-gap);
6642
- --divider-icon: var(--prime-control-l-icon);
6643
- --divider-text: var(--prime-control-l-label-size);
6644
- --divider-lh: var(--prime-control-l-label-line-height);
6645
- }
6646
- .Divider_root[data-size=xl] {
6647
- --divider-gap: var(--prime-control-xl-gap);
6648
- --divider-icon: var(--prime-control-xl-icon);
6649
- --divider-text: var(--prime-control-xl-text-size);
6650
- --divider-lh: var(--prime-control-xl-line-height);
6651
- }
6652
- .Divider_root:not([data-orientation=vertical]) {
6653
- width: 100%;
6654
- min-width: 0;
6655
- }
6656
- .Divider_root::before,
6657
- .Divider_root::after {
6658
- content: "";
6659
- flex: 1 1 0;
6660
- height: var(--prime-border-width);
6661
- background: var(--prime-color-border-subtle);
6662
- }
6663
- .Divider_root[data-align=start]::before {
6664
- display: none;
6665
- }
6666
- .Divider_root[data-align=end]::after {
6667
- display: none;
7354
+ --digit-cell: var(--prime-control-m-height);
7355
+ --digit-radius: var(--prime-control-m-radius);
7356
+ --digit-gap: var(--prime-space-2);
7357
+ --digit-cell-text: var(--prime-text-body-l-size);
7358
+ --digit-cell-line-height: var(--prime-text-body-l-line-height);
6668
7359
  }
6669
- .Divider_root:not(:empty):not([data-orientation=vertical])::before,
6670
- .Divider_root:not(:empty):not([data-orientation=vertical])::after {
6671
- min-width: var(--prime-space-6);
7360
+ .DigitInput_root[data-size=s] {
7361
+ --digit-cell: var(--prime-control-l-height);
7362
+ --digit-radius: var(--prime-control-l-radius);
7363
+ --digit-gap: var(--prime-space-2);
7364
+ --digit-cell-text: var(--prime-text-title-l-size);
7365
+ --digit-cell-line-height: var(--prime-text-title-l-line-height);
6672
7366
  }
6673
- .Divider_root:empty {
6674
- gap: 0;
7367
+ .DigitInput_root[data-size=l] {
7368
+ --digit-cell: var(--prime-space-14);
7369
+ --digit-radius: var(--prime-radius-l);
7370
+ --digit-gap: var(--prime-space-3);
7371
+ --digit-cell-text: var(--prime-text-heading-m-size);
7372
+ --digit-cell-line-height: var(--prime-text-heading-m-line-height);
6675
7373
  }
6676
- .Divider_root:empty::after {
6677
- display: none;
7374
+ .DigitInput_root[data-size=xl] {
7375
+ --digit-cell: var(--prime-space-16);
7376
+ --digit-radius: var(--prime-radius-xl);
7377
+ --digit-gap: var(--prime-space-4);
7378
+ --digit-cell-text: var(--prime-text-heading-l-size);
7379
+ --digit-cell-line-height: var(--prime-text-heading-l-line-height);
6678
7380
  }
6679
- .Divider_content {
6680
- --prime-icon-size: var(--divider-icon);
6681
- display: inline-flex;
6682
- align-items: center;
6683
- gap: var(--divider-gap);
7381
+ .DigitInput_cell {
7382
+ -webkit-appearance: none;
7383
+ appearance: none;
7384
+ box-sizing: border-box;
7385
+ flex: 0 0 auto;
7386
+ width: var(--digit-cell);
7387
+ height: var(--digit-cell);
6684
7388
  min-width: 0;
6685
- font-weight: var(--prime-font-weight-medium);
6686
- overflow-wrap: anywhere;
6687
- }
6688
- .Divider_root[data-orientation=vertical] {
6689
- flex-direction: column;
6690
- align-self: stretch;
6691
- width: var(--prime-border-width);
6692
- height: auto;
7389
+ margin: 0;
7390
+ padding: 0;
7391
+ border: 0;
7392
+ border-radius: var(--digit-radius);
7393
+ caret-color: var(--prime-color-accent-default);
7394
+ font: inherit;
7395
+ font-size: var(--digit-cell-text);
7396
+ line-height: var(--digit-cell-line-height);
7397
+ font-weight: var(--prime-font-weight-semibold);
7398
+ font-variant-numeric: tabular-nums;
7399
+ text-align: center;
7400
+ outline: none;
7401
+ transition:
7402
+ background-color var(--prime-motion-duration-fast) var(--prime-motion-easing-standard),
7403
+ box-shadow var(--prime-motion-duration-fast) var(--prime-motion-easing-standard),
7404
+ color var(--prime-motion-duration-fast) var(--prime-motion-easing-standard);
6693
7405
  }
6694
- .Divider_root[data-orientation=vertical]::before,
6695
- .Divider_root[data-orientation=vertical]::after {
6696
- width: var(--prime-border-width);
6697
- height: auto;
7406
+ .DigitInput_root[data-full-width=true] {
7407
+ justify-content: center;
6698
7408
  }
6699
- .Divider_root[data-orientation=vertical]:not(:empty) {
7409
+ .DigitInput_root[data-full-width=true] .DigitInput_cell {
7410
+ flex: 1 1 0;
6700
7411
  width: auto;
7412
+ max-width: calc(var(--digit-cell) * 1.5);
7413
+ }
7414
+ .DigitInput_cell[data-group-start=true] {
7415
+ margin-inline-start: var(--digit-gap);
7416
+ }
7417
+ .DigitInput_root[data-invalid=true] .DigitInput_cell {
7418
+ color: var(--prime-color-danger-text);
7419
+ }
7420
+ .DigitInput_cell:disabled {
7421
+ -webkit-text-fill-color: var(--prime-color-text-disabled);
6701
7422
  }
6702
7423
 
6703
7424
  /* src/components/dnd/Dnd.module.css */
@@ -6763,7 +7484,6 @@ html[data-dnd-active] * {
6763
7484
  outline-offset: var(--prime-focus-offset);
6764
7485
  }
6765
7486
  .Dnd_placeholder {
6766
- --enter-shift: 0;
6767
7487
  flex: none;
6768
7488
  box-sizing: border-box;
6769
7489
  width: var(--dnd-gap-width, 100%);
@@ -6839,7 +7559,14 @@ li.Dnd_placeholder {
6839
7559
  position: fixed;
6840
7560
  inset: 0;
6841
7561
  z-index: var(--prime-z-overlay);
6842
- background: var(--prime-color-bg-scrim);
7562
+ background: color-mix(in srgb, var(--prime-color-bg-scrim) calc((1 - var(--swipe-progress, 0)) * 100%), transparent);
7563
+ transition: background-color var(--prime-motion-duration-base) var(--prime-motion-easing-emphasized);
7564
+ }
7565
+ .Drawer_overlay:has(+ .Drawer_panel[data-swiping]) {
7566
+ transition: none;
7567
+ }
7568
+ .Drawer_overlay:has(+ .Drawer_panel[data-swipe-dismissed]) {
7569
+ animation: none;
6843
7570
  }
6844
7571
  .Drawer_panel {
6845
7572
  --drawer-width: var(--prime-drawer-width-m);
@@ -6882,10 +7609,31 @@ li.Dnd_placeholder {
6882
7609
  border-start-end-radius: var(--prime-modal-radius);
6883
7610
  border-end-end-radius: var(--prime-modal-radius);
6884
7611
  }
7612
+ .Drawer_panel[data-side=left],
7613
+ .Drawer_panel[data-side=right] {
7614
+ touch-action: pan-y;
7615
+ }
7616
+ .Drawer_panel[data-side=right] {
7617
+ box-shadow: var(--prime-space-6) 0 0 0 var(--prime-color-bg-raised), var(--prime-shadow-modal);
7618
+ }
7619
+ .Drawer_panel[data-side=left] {
7620
+ box-shadow: calc(-1 * var(--prime-space-6)) 0 0 0 var(--prime-color-bg-raised), var(--prime-shadow-modal);
7621
+ }
7622
+ .Drawer_panel[data-side=bottom] {
7623
+ width: min(100vw, max(var(--drawer-width), var(--prime-sheet-min-width)));
7624
+ top: auto;
7625
+ right: 0;
7626
+ left: 0;
7627
+ max-height: calc(100dvh - var(--prime-sheet-top-gap));
7628
+ margin-inline: auto;
7629
+ padding-block-end: env(safe-area-inset-bottom, 0px);
7630
+ border-start-start-radius: var(--prime-sheet-radius);
7631
+ border-start-end-radius: var(--prime-sheet-radius);
7632
+ box-shadow: 0 var(--prime-space-6) 0 0 var(--prime-color-bg-raised), var(--prime-shadow-modal);
7633
+ }
6885
7634
  @media (max-width: 639px) {
6886
7635
  .Drawer_panel {
6887
7636
  width: 100vw;
6888
- border-radius: 0;
6889
7637
  }
6890
7638
  .Drawer_panel[data-side=left],
6891
7639
  .Drawer_panel[data-side=right] {
@@ -6897,12 +7645,20 @@ li.Dnd_placeholder {
6897
7645
  .Dropdown_item {
6898
7646
  white-space: nowrap;
6899
7647
  }
6900
- .Dropdown_item:is(:hover, :focus-visible):not([data-disabled=true]) {
7648
+ .Dropdown_item:focus-visible:not([data-disabled=true]) {
6901
7649
  background: var(--prime-color-fill-subtle);
6902
7650
  }
6903
- .Dropdown_item[data-tone=danger]:is(:hover, :focus-visible):not([data-disabled=true]) {
7651
+ .Dropdown_item[data-tone=danger]:focus-visible:not([data-disabled=true]) {
6904
7652
  background: var(--prime-color-danger-soft);
6905
7653
  }
7654
+ @media (hover: hover) {
7655
+ .Dropdown_item:hover:not([data-disabled=true]) {
7656
+ background: var(--prime-color-fill-subtle);
7657
+ }
7658
+ .Dropdown_item[data-tone=danger]:hover:not([data-disabled=true]) {
7659
+ background: var(--prime-color-danger-soft);
7660
+ }
7661
+ }
6906
7662
  .Dropdown_item[data-disabled=true] .Dropdown_shortcut {
6907
7663
  color: var(--prime-color-text-disabled);
6908
7664
  }
@@ -6959,7 +7715,6 @@ li.Dnd_placeholder {
6959
7715
  --seg-two-line-pad-y: var(--prime-space-2);
6960
7716
  --seg-desc-size: var(--prime-control-m-hint-size);
6961
7717
  --seg-desc-line-height: var(--prime-control-m-hint-line-height);
6962
- --seg-ring: color-mix(in srgb, var(--prime-color-text-primary) 7%, transparent);
6963
7718
  --seg-thumb-ring: color-mix(in srgb, var(--prime-color-text-primary) 10%, transparent);
6964
7719
  position: relative;
6965
7720
  box-sizing: border-box;
@@ -6971,7 +7726,7 @@ li.Dnd_placeholder {
6971
7726
  padding: var(--seg-pad);
6972
7727
  border-radius: var(--seg-radius);
6973
7728
  background: var(--prime-color-fill-muted);
6974
- box-shadow: inset 0 0 0 var(--prime-border-width) var(--seg-ring);
7729
+ box-shadow: inset 0 0 0 var(--prime-border-width) var(--prime-color-border-control);
6975
7730
  font-family: var(--prime-font-family-sans);
6976
7731
  }
6977
7732
  .SegmentedControl_root[data-size=xs] {
@@ -7079,10 +7834,6 @@ li.Dnd_placeholder {
7079
7834
  overflow: clip;
7080
7835
  }
7081
7836
  .SegmentedControl_root[data-full-width=true] .SegmentedControl_list {
7082
- flex: 1 1 auto;
7083
- min-width: 0;
7084
- }
7085
- .SegmentedControl_root[data-full-width=true] .SegmentedControl_list:has(> [data-two-line=true]) {
7086
7837
  flex: 1 0 auto;
7087
7838
  }
7088
7839
  .SegmentedControl_item {
@@ -7116,6 +7867,9 @@ li.Dnd_placeholder {
7116
7867
  .SegmentedControl_root[data-full-width=true] .SegmentedControl_item {
7117
7868
  flex: 1 1 0;
7118
7869
  }
7870
+ .SegmentedControl_root[data-full-width=true] .SegmentedControl_item:not([data-icon-only=true], [data-two-line=true]) {
7871
+ min-width: max-content;
7872
+ }
7119
7873
  .SegmentedControl_item[data-icon-only=true] {
7120
7874
  width: var(--seg-height);
7121
7875
  min-width: var(--seg-height);
@@ -7136,8 +7890,10 @@ li.Dnd_placeholder {
7136
7890
  .SegmentedControl_root[data-full-width=true] .SegmentedControl_item[data-two-line=true] {
7137
7891
  flex: 1 0 auto;
7138
7892
  }
7139
- .SegmentedControl_item[aria-checked=false]:not([data-disabled=true]):hover {
7140
- color: var(--prime-color-text-primary);
7893
+ @media (hover: hover) {
7894
+ .SegmentedControl_item[aria-checked=false]:not([data-disabled=true]):hover {
7895
+ color: var(--prime-color-text-primary);
7896
+ }
7141
7897
  }
7142
7898
  .SegmentedControl_item[aria-checked=true] {
7143
7899
  color: var(--prime-color-text-primary);
@@ -7151,9 +7907,6 @@ li.Dnd_placeholder {
7151
7907
  cursor: not-allowed;
7152
7908
  }
7153
7909
  .SegmentedControl_label {
7154
- min-width: 0;
7155
- overflow: hidden;
7156
- text-overflow: ellipsis;
7157
7910
  white-space: nowrap;
7158
7911
  }
7159
7912
  .SegmentedControl_icon {
@@ -7756,9 +8509,11 @@ li.Dnd_placeholder {
7756
8509
  --fu-line: var(--prime-color-accent-default);
7757
8510
  --fu-line-hover: var(--prime-color-accent-default);
7758
8511
  }
7759
- .FileUpload_root:hover:not([data-disabled=true]) {
7760
- border-color: var(--fu-line-hover);
7761
- background: var(--prime-color-field-bg-hover);
8512
+ @media (hover: hover) {
8513
+ .FileUpload_root:hover:not([data-disabled=true]) {
8514
+ border-color: var(--fu-line-hover);
8515
+ background: var(--prime-color-field-bg-hover);
8516
+ }
7762
8517
  }
7763
8518
  .FileUpload_root[data-state=active]:not([data-disabled=true]) {
7764
8519
  background: var(--prime-color-accent-soft);
@@ -7896,7 +8651,7 @@ li.Dnd_placeholder {
7896
8651
  background: var(--prime-color-danger-soft);
7897
8652
  box-shadow: inset 0 0 0 var(--prime-border-width) var(--prime-color-danger-border);
7898
8653
  }
7899
- .FileUpload_item .FileUpload_formatBadge {
8654
+ .FileUpload_item .FileUpload_formatBadge[aria-hidden] {
7900
8655
  grid-area: badge;
7901
8656
  justify-content: center;
7902
8657
  width: var(--fu-item-badge);
@@ -7904,6 +8659,8 @@ li.Dnd_placeholder {
7904
8659
  padding-inline: 0;
7905
8660
  border-radius: var(--fu-item-badge-radius);
7906
8661
  font-weight: var(--prime-font-weight-semibold);
8662
+ line-height: var(--fu-item-badge);
8663
+ text-align: center;
7907
8664
  }
7908
8665
  .FileUpload_itemName {
7909
8666
  grid-area: name;
@@ -7980,8 +8737,8 @@ li.Dnd_placeholder {
7980
8737
  outline: none;
7981
8738
  box-shadow: none;
7982
8739
  font: inherit;
7983
- font-size: var(--field-text);
7984
- line-height: var(--field-lh);
8740
+ font-size: var(--field-input-text);
8741
+ line-height: var(--field-input-lh);
7985
8742
  text-overflow: ellipsis;
7986
8743
  }
7987
8744
  .Input_field:focus,
@@ -8023,100 +8780,319 @@ li.Dnd_placeholder {
8023
8780
  height: var(--field-icon);
8024
8781
  color: var(--prime-color-text-muted);
8025
8782
  pointer-events: none;
8026
- transition: color var(--prime-motion-duration-fast) var(--prime-motion-easing-standard);
8783
+ transition: color var(--prime-motion-duration-fast) var(--prime-motion-easing-standard);
8784
+ }
8785
+ .Input_icon > svg {
8786
+ display: block;
8787
+ width: 100%;
8788
+ height: 100%;
8789
+ }
8790
+ .Input_icon[data-side=start] {
8791
+ order: -1;
8792
+ padding-inline-end: var(--input-icon-space);
8793
+ }
8794
+ .Input_icon[data-side=end] {
8795
+ order: 3;
8796
+ padding-inline-start: var(--input-icon-space);
8797
+ }
8798
+ .Input_wrapper:has(input:focus-visible) .Input_icon {
8799
+ color: var(--prime-color-text-secondary);
8800
+ }
8801
+ .Input_wrapper:has(input:disabled) :is(.Input_icon, .Input_inlineAffix, .Input_affix) {
8802
+ color: var(--prime-color-text-disabled);
8803
+ }
8804
+ .Input_affix {
8805
+ display: flex;
8806
+ align-items: center;
8807
+ align-self: stretch;
8808
+ flex-shrink: 0;
8809
+ padding-inline: var(--field-px);
8810
+ background: var(--prime-color-fill-subtle);
8811
+ color: var(--prime-color-text-muted);
8812
+ font-size: var(--field-input-text);
8813
+ line-height: var(--field-input-lh);
8814
+ white-space: nowrap;
8815
+ }
8816
+ .Input_affix[data-side=start] {
8817
+ order: -1;
8818
+ }
8819
+ .Input_affix[data-side=end] {
8820
+ order: 5;
8821
+ }
8822
+ .Input_inlineAffix {
8823
+ flex-shrink: 0;
8824
+ color: var(--prime-color-text-muted);
8825
+ font-size: var(--field-input-text);
8826
+ line-height: var(--field-input-lh);
8827
+ white-space: nowrap;
8828
+ }
8829
+ .Input_inlineAffix[data-side=start] {
8830
+ order: -1;
8831
+ }
8832
+ .Input_inlineAffix[data-side=end] {
8833
+ order: 1;
8834
+ }
8835
+ .Input_wrapper:has(> .Input_action) {
8836
+ padding-inline-end: 0;
8837
+ }
8838
+ .Input_action {
8839
+ order: 4;
8840
+ flex-shrink: 0;
8841
+ display: inline-flex;
8842
+ align-self: stretch;
8843
+ align-items: center;
8844
+ justify-content: center;
8845
+ box-sizing: border-box;
8846
+ width: calc(var(--field-icon) + 2 * var(--field-px));
8847
+ margin: 0;
8848
+ padding: 0;
8849
+ border: 0;
8850
+ border-radius: 0;
8851
+ background: transparent;
8852
+ color: var(--prime-color-text-muted);
8853
+ cursor: pointer;
8854
+ transition: background-color var(--prime-motion-duration-fast) var(--prime-motion-easing-standard), color var(--prime-motion-duration-fast) var(--prime-motion-easing-standard);
8855
+ }
8856
+ .Input_action > svg {
8857
+ display: block;
8858
+ width: calc(var(--field-icon) - var(--prime-space-1));
8859
+ height: calc(var(--field-icon) - var(--prime-space-1));
8860
+ }
8861
+ @media (hover: hover) {
8862
+ .Input_action:hover {
8863
+ background: var(--prime-color-fill-subtle);
8864
+ color: var(--prime-color-text-primary);
8865
+ }
8866
+ }
8867
+ .Input_action:active {
8868
+ background: var(--prime-color-fill-subtle-active);
8869
+ }
8870
+ .Input_action:focus-visible {
8871
+ outline: var(--prime-focus-width) solid var(--prime-color-focus-ring);
8872
+ outline-offset: var(--prime-focus-offset-inset);
8873
+ }
8874
+ .Input_action:disabled,
8875
+ .Input_wrapper:has(input:disabled) .Input_action {
8876
+ color: var(--prime-color-text-disabled);
8877
+ background: transparent;
8878
+ cursor: not-allowed;
8879
+ }
8880
+
8881
+ /* src/components/kanban/Kanban.module.css */
8882
+ .Kanban_root {
8883
+ --kanban-column-width: calc(var(--prime-space-24) * 3);
8884
+ --kanban-gap: var(--prime-space-3);
8885
+ container-type: inline-size;
8886
+ display: flex;
8887
+ flex-direction: column;
8888
+ box-sizing: border-box;
8889
+ inline-size: 100%;
8890
+ min-width: 0;
8891
+ min-height: 0;
8892
+ font-family: var(--prime-font-family-sans);
8893
+ color: var(--prime-color-text-primary);
8894
+ }
8895
+ .Kanban_scroller {
8896
+ display: flex;
8897
+ flex: 1 1 auto;
8898
+ align-items: stretch;
8899
+ gap: var(--kanban-gap);
8900
+ min-height: 0;
8901
+ padding-block-end: var(--prime-space-2);
8902
+ }
8903
+ .Kanban_column {
8904
+ position: relative;
8905
+ display: flex;
8906
+ flex: none;
8907
+ flex-direction: column;
8908
+ box-sizing: border-box;
8909
+ inline-size: var(--kanban-column-width);
8910
+ max-block-size: 100%;
8911
+ min-height: 0;
8912
+ padding-block-start: var(--prime-space-2);
8913
+ border-radius: var(--prime-radius-l);
8914
+ background: var(--prime-color-fill-faint);
8915
+ scroll-snap-align: start;
8916
+ }
8917
+ @container (width < 40rem) {
8918
+ .Kanban_scroller {
8919
+ scroll-snap-type: x mandatory;
8920
+ }
8921
+ .Kanban_column {
8922
+ inline-size: 85cqi;
8923
+ }
8924
+ }
8925
+ html[data-dnd-active] .Kanban_scroller {
8926
+ scroll-snap-type: none;
8927
+ }
8928
+ .Kanban_header {
8929
+ display: flex;
8930
+ align-items: center;
8931
+ gap: var(--prime-space-2);
8932
+ min-block-size: var(--prime-control-s-height);
8933
+ padding-inline: var(--prime-space-4) var(--prime-space-2);
8934
+ }
8935
+ .Kanban_title {
8936
+ min-width: 0;
8937
+ margin: 0;
8938
+ overflow: hidden;
8939
+ font-size: var(--prime-text-title-s-size);
8940
+ font-weight: var(--prime-text-title-s-weight);
8941
+ line-height: var(--prime-text-title-s-line-height);
8942
+ letter-spacing: var(--prime-text-title-s-tracking);
8943
+ text-overflow: ellipsis;
8944
+ white-space: nowrap;
8945
+ }
8946
+ .Kanban_actions {
8947
+ display: flex;
8948
+ flex: none;
8949
+ align-items: center;
8950
+ gap: var(--prime-space-1);
8951
+ margin-inline-start: auto;
8952
+ }
8953
+ .Kanban_body {
8954
+ display: grid;
8955
+ flex: 1 1 auto;
8956
+ grid-template-rows: 1fr;
8957
+ min-height: 0;
8958
+ padding: var(--prime-space-2);
8959
+ }
8960
+ .Kanban_swap {
8961
+ display: grid;
8962
+ }
8963
+ .Kanban_drop {
8964
+ position: relative;
8965
+ display: flex;
8966
+ flex-direction: column;
8967
+ min-block-size: 100%;
8968
+ }
8969
+ .Kanban_list {
8970
+ display: flex;
8971
+ flex: 1 0 auto;
8972
+ flex-direction: column;
8973
+ gap: var(--prime-space-2);
8974
+ min-block-size: var(--prime-space-20);
8975
+ margin: 0;
8976
+ padding: 0;
8977
+ list-style: none;
8978
+ }
8979
+ .Kanban_empty {
8980
+ position: absolute;
8981
+ inset-block-start: 0;
8982
+ inset-inline: 0;
8983
+ block-size: var(--prime-space-20);
8984
+ display: grid;
8985
+ place-content: center;
8986
+ border-radius: var(--prime-radius-m);
8987
+ background: var(--prime-color-fill-faint);
8988
+ pointer-events: none;
8989
+ transition: opacity var(--prime-motion-duration-fast) var(--prime-motion-easing-standard);
8027
8990
  }
8028
- .Input_icon > svg {
8029
- display: block;
8030
- width: 100%;
8031
- height: 100%;
8991
+ .Kanban_list[data-dnd-over] + .Kanban_empty {
8992
+ opacity: 0;
8032
8993
  }
8033
- .Input_icon[data-side=start] {
8034
- order: -1;
8035
- padding-inline-end: var(--input-icon-space);
8994
+ .Kanban_item {
8995
+ position: relative;
8996
+ isolation: isolate;
8997
+ display: flex;
8998
+ flex-direction: column;
8999
+ gap: var(--prime-space-2);
9000
+ box-sizing: border-box;
9001
+ min-width: 0;
9002
+ padding: var(--prime-space-3);
9003
+ border-radius: var(--prime-radius-m);
9004
+ background: var(--prime-color-bg-raised);
9005
+ box-shadow: var(--prime-card-shadow);
9006
+ list-style: none;
8036
9007
  }
8037
- .Input_icon[data-side=end] {
8038
- order: 3;
8039
- padding-inline-start: var(--input-icon-space);
9008
+ .Kanban_item::after {
9009
+ content: "";
9010
+ position: absolute;
9011
+ inset: 0;
9012
+ z-index: -1;
9013
+ border-radius: inherit;
9014
+ background: var(--prime-color-fill-subtle);
9015
+ opacity: 0;
9016
+ pointer-events: none;
9017
+ transition: opacity var(--prime-motion-duration-fast) var(--prime-motion-easing-standard);
8040
9018
  }
8041
- .Input_wrapper:has(input:focus-visible) .Input_icon {
9019
+ @media (hover: hover) {
9020
+ .Kanban_item:not([data-disabled]):hover::after {
9021
+ opacity: 1;
9022
+ }
9023
+ }
9024
+ .Kanban_item[data-disabled] {
8042
9025
  color: var(--prime-color-text-secondary);
8043
9026
  }
8044
- .Input_wrapper:has(input:disabled) :is(.Input_icon, .Input_inlineAffix, .Input_affix) {
8045
- color: var(--prime-color-text-disabled);
9027
+ .Kanban_itemTitle {
9028
+ display: -webkit-box;
9029
+ overflow: hidden;
9030
+ font-size: var(--prime-text-body-m-size);
9031
+ font-weight: var(--prime-font-weight-medium);
9032
+ line-height: var(--prime-text-body-m-line-height);
9033
+ letter-spacing: var(--prime-text-body-m-tracking);
9034
+ overflow-wrap: anywhere;
9035
+ -webkit-box-orient: vertical;
9036
+ -webkit-line-clamp: 3;
9037
+ line-clamp: 3;
8046
9038
  }
8047
- .Input_affix {
8048
- display: flex;
8049
- align-items: center;
8050
- align-self: stretch;
8051
- flex-shrink: 0;
8052
- padding-inline: var(--field-px);
8053
- background: var(--prime-color-fill-subtle);
9039
+ .Kanban_itemDescription {
9040
+ overflow: hidden;
9041
+ font-size: var(--prime-text-caption-size);
9042
+ font-weight: var(--prime-text-caption-weight);
9043
+ line-height: var(--prime-text-caption-line-height);
9044
+ letter-spacing: var(--prime-text-caption-tracking);
8054
9045
  color: var(--prime-color-text-muted);
8055
- font-size: var(--field-text);
8056
- line-height: var(--field-lh);
9046
+ font-variant-numeric: tabular-nums;
9047
+ text-overflow: ellipsis;
8057
9048
  white-space: nowrap;
8058
9049
  }
8059
- .Input_affix[data-side=start] {
8060
- order: -1;
8061
- }
8062
- .Input_affix[data-side=end] {
8063
- order: 5;
9050
+ .Kanban_itemTitle + .Kanban_itemDescription {
9051
+ margin-block-start: calc(var(--prime-space-1) - var(--prime-space-2));
8064
9052
  }
8065
- .Input_inlineAffix {
8066
- flex-shrink: 0;
8067
- color: var(--prime-color-text-muted);
8068
- font-size: var(--field-text);
8069
- line-height: var(--field-lh);
8070
- white-space: nowrap;
9053
+ .Kanban_itemBadges {
9054
+ display: flex;
9055
+ flex-wrap: wrap;
9056
+ gap: var(--prime-space-1);
9057
+ min-width: 0;
8071
9058
  }
8072
- .Input_inlineAffix[data-side=start] {
8073
- order: -1;
9059
+ .Kanban_footer {
9060
+ display: flex;
9061
+ align-items: center;
9062
+ gap: var(--prime-space-3);
9063
+ min-width: 0;
9064
+ min-block-size: var(--prime-control-xs-height);
8074
9065
  }
8075
- .Input_inlineAffix[data-side=end] {
8076
- order: 1;
9066
+ .Kanban_footer > * {
9067
+ min-width: 0;
8077
9068
  }
8078
- .Input_wrapper:has(> .Input_action) {
8079
- padding-inline-end: 0;
9069
+ .Kanban_footer > :last-child:not(.Kanban_count):not(:first-child) {
9070
+ margin-inline-start: auto;
8080
9071
  }
8081
- .Input_action {
8082
- order: 4;
8083
- flex-shrink: 0;
9072
+ .Kanban_count {
9073
+ --prime-icon-size: var(--prime-icon-xs);
8084
9074
  display: inline-flex;
8085
- align-self: stretch;
8086
9075
  align-items: center;
8087
- justify-content: center;
8088
- box-sizing: border-box;
8089
- width: calc(var(--field-icon) + 2 * var(--field-px));
8090
- margin: 0;
8091
- padding: 0;
8092
- border: 0;
8093
- border-radius: 0;
8094
- background: transparent;
9076
+ gap: var(--prime-space-1);
9077
+ font-size: var(--prime-text-caption-size);
9078
+ line-height: var(--prime-text-caption-line-height);
8095
9079
  color: var(--prime-color-text-muted);
8096
- cursor: pointer;
8097
- transition: background-color var(--prime-motion-duration-fast) var(--prime-motion-easing-standard), color var(--prime-motion-duration-fast) var(--prime-motion-easing-standard);
8098
- }
8099
- .Input_action > svg {
8100
- display: block;
8101
- width: calc(var(--field-icon) - var(--prime-space-1));
8102
- height: calc(var(--field-icon) - var(--prime-space-1));
8103
- }
8104
- .Input_action:hover {
8105
- background: var(--prime-color-fill-subtle);
8106
- color: var(--prime-color-text-primary);
9080
+ font-variant-numeric: tabular-nums;
8107
9081
  }
8108
- .Input_action:active {
8109
- background: var(--prime-color-fill-subtle-active);
9082
+ .Kanban_skeleton {
9083
+ pointer-events: none;
8110
9084
  }
8111
- .Input_action:focus-visible {
8112
- outline: var(--prime-focus-width) solid var(--prime-color-focus-ring);
8113
- outline-offset: var(--prime-focus-offset-inset);
9085
+ .Kanban_skeletonBadge {
9086
+ inline-size: var(--prime-space-16);
9087
+ block-size: var(--prime-badge-s-height);
9088
+ min-block-size: 0;
9089
+ border-radius: var(--prime-badge-s-radius);
8114
9090
  }
8115
- .Input_action:disabled,
8116
- .Input_wrapper:has(input:disabled) .Input_action {
8117
- color: var(--prime-color-text-disabled);
8118
- background: transparent;
8119
- cursor: not-allowed;
9091
+ @media (prefers-reduced-motion: reduce) {
9092
+ .Kanban_empty,
9093
+ .Kanban_item::after {
9094
+ transition: none;
9095
+ }
8120
9096
  }
8121
9097
 
8122
9098
  /* src/components/typography/Typography.module.css */
@@ -8315,9 +9291,9 @@ li.Dnd_placeholder {
8315
9291
  border: 0;
8316
9292
  border-radius: var(--field-radius);
8317
9293
  font-family: var(--prime-font-family-sans);
8318
- font-size: var(--field-text);
9294
+ font-size: var(--field-input-text);
8319
9295
  font-weight: var(--prime-font-weight-regular);
8320
- line-height: var(--field-lh);
9296
+ line-height: var(--field-input-lh);
8321
9297
  cursor: pointer;
8322
9298
  outline: none;
8323
9299
  appearance: none;
@@ -8347,32 +9323,36 @@ li.Dnd_placeholder {
8347
9323
  }
8348
9324
  .Notification_zone {
8349
9325
  --ntf-edge: var(--prime-space-5);
9326
+ --ntf-safe-top: env(safe-area-inset-top, 0px);
9327
+ --ntf-safe-right: env(safe-area-inset-right, 0px);
9328
+ --ntf-safe-bottom: env(safe-area-inset-bottom, 0px);
9329
+ --ntf-safe-left: env(safe-area-inset-left, 0px);
8350
9330
  position: absolute;
8351
9331
  display: flex;
8352
9332
  flex-direction: column;
8353
9333
  align-items: flex-start;
8354
9334
  gap: var(--prime-space-3);
8355
- width: min(100vw - 2 * var(--ntf-edge), calc(var(--prime-space-24) * 4));
9335
+ width: min(100vw - 2 * var(--ntf-edge) - var(--ntf-safe-left) - var(--ntf-safe-right), calc(var(--prime-space-24) * 4));
8356
9336
  pointer-events: none;
8357
9337
  }
8358
9338
  .Notification_top {
8359
- top: var(--ntf-edge);
9339
+ top: calc(var(--ntf-edge) + var(--ntf-safe-top));
8360
9340
  }
8361
9341
  .Notification_bottom {
8362
- bottom: var(--ntf-edge);
9342
+ bottom: calc(var(--ntf-edge) + var(--ntf-safe-bottom));
8363
9343
  flex-direction: column-reverse;
8364
9344
  }
8365
9345
  .Notification_left {
8366
- left: var(--ntf-edge);
9346
+ left: calc(var(--ntf-edge) + var(--ntf-safe-left));
8367
9347
  }
8368
9348
  .Notification_center {
8369
- left: 50%;
9349
+ left: calc(50% + (var(--ntf-safe-left) - var(--ntf-safe-right)) / 2);
8370
9350
  transform: translateX(-50%);
8371
9351
  }
8372
9352
  .Notification_right {
8373
- right: var(--ntf-edge);
9353
+ right: calc(var(--ntf-edge) + var(--ntf-safe-right));
8374
9354
  }
8375
- @media (max-width: 640px) {
9355
+ @media (max-width: 639px) {
8376
9356
  .Notification_zone {
8377
9357
  --ntf-edge: var(--prime-space-3);
8378
9358
  }
@@ -8753,6 +9733,97 @@ li.Dnd_placeholder {
8753
9733
  min-width: 0;
8754
9734
  }
8755
9735
 
9736
+ /* src/components/page-toolbar/PageToolbar.module.css */
9737
+ .PageToolbar_root {
9738
+ container-type: inline-size;
9739
+ display: flex;
9740
+ flex-direction: column;
9741
+ gap: var(--prime-space-3);
9742
+ min-width: 0;
9743
+ }
9744
+ .PageToolbar_bar {
9745
+ display: flex;
9746
+ flex-wrap: wrap;
9747
+ align-items: center;
9748
+ gap: var(--prime-space-3);
9749
+ min-width: 0;
9750
+ }
9751
+ .PageToolbar_sections,
9752
+ .PageToolbar_tools,
9753
+ .PageToolbar_view,
9754
+ .PageToolbar_actions {
9755
+ display: flex;
9756
+ align-items: center;
9757
+ gap: var(--prime-space-2);
9758
+ min-width: 0;
9759
+ }
9760
+ .PageToolbar_sections {
9761
+ order: 1;
9762
+ flex: 1 1 0;
9763
+ }
9764
+ .PageToolbar_sections > * {
9765
+ flex: 1 1 auto;
9766
+ min-width: 0;
9767
+ }
9768
+ .PageToolbar_actions {
9769
+ order: 2;
9770
+ flex: none;
9771
+ margin-inline-start: auto;
9772
+ }
9773
+ .PageToolbar_break {
9774
+ order: 3;
9775
+ flex-basis: 100%;
9776
+ height: 0;
9777
+ }
9778
+ .PageToolbar_tools {
9779
+ order: 4;
9780
+ flex: 999 1 calc(var(--prime-space-24) * 3);
9781
+ }
9782
+ .PageToolbar_tools > * {
9783
+ flex: 1 1 auto;
9784
+ min-width: 0;
9785
+ }
9786
+ .PageToolbar_view {
9787
+ order: 5;
9788
+ flex: 1 0 auto;
9789
+ }
9790
+ .PageToolbar_view > * {
9791
+ flex: 1 1 0;
9792
+ min-width: max-content;
9793
+ }
9794
+ .PageToolbar_chips {
9795
+ min-width: 0;
9796
+ }
9797
+ .PageToolbar_chips:empty {
9798
+ display: none;
9799
+ }
9800
+ .PageToolbar_bar:not(:has(> .PageToolbar_sections, > .PageToolbar_actions)) > .PageToolbar_break,
9801
+ .PageToolbar_bar:not(:has(> .PageToolbar_tools, > .PageToolbar_view)) > .PageToolbar_break {
9802
+ display: none;
9803
+ }
9804
+ @container (min-width: 56rem) {
9805
+ .PageToolbar_bar {
9806
+ flex-wrap: nowrap;
9807
+ }
9808
+ .PageToolbar_break {
9809
+ display: none;
9810
+ }
9811
+ .PageToolbar_sections {
9812
+ flex: 0 1 auto;
9813
+ }
9814
+ .PageToolbar_tools {
9815
+ order: 2;
9816
+ min-width: calc(var(--prime-space-24) * 3);
9817
+ }
9818
+ .PageToolbar_view {
9819
+ order: 3;
9820
+ flex: none;
9821
+ }
9822
+ .PageToolbar_actions {
9823
+ order: 4;
9824
+ }
9825
+ }
9826
+
8756
9827
  /* src/components/progress-circle/ProgressCircle.module.css */
8757
9828
  .ProgressCircle_root {
8758
9829
  --pc-size: var(--prime-space-12);
@@ -8986,9 +10057,11 @@ li.Dnd_placeholder {
8986
10057
  cursor: pointer;
8987
10058
  transition: background-color var(--prime-motion-duration-fast) var(--prime-motion-easing-standard), color var(--prime-motion-duration-fast) var(--prime-motion-easing-standard);
8988
10059
  }
8989
- .Select_clear:hover {
8990
- background: var(--prime-color-fill-subtle);
8991
- color: var(--prime-color-text-primary);
10060
+ @media (hover: hover) {
10061
+ .Select_clear:hover {
10062
+ background: var(--prime-color-fill-subtle);
10063
+ color: var(--prime-color-text-primary);
10064
+ }
8992
10065
  }
8993
10066
  .Select_content {
8994
10067
  overflow: hidden;
@@ -9081,16 +10154,6 @@ li.Dnd_placeholder {
9081
10154
  :is(.Select_trigger:disabled, .Select_item[data-disabled=true]) :is(.Select_itemDescription, .Select_itemMeta) {
9082
10155
  color: var(--prime-color-text-disabled);
9083
10156
  }
9084
- .Select_check {
9085
- display: inline-flex;
9086
- flex-shrink: 0;
9087
- align-items: center;
9088
- justify-content: center;
9089
- width: var(--menu-icon);
9090
- height: var(--menu-icon);
9091
- color: var(--prime-color-accent-text);
9092
- --prime-icon-size: var(--menu-icon);
9093
- }
9094
10157
 
9095
10158
  /* src/components/thumbnail/Thumbnail.module.css */
9096
10159
  .Thumbnail_root {
@@ -9395,12 +10458,16 @@ li.Dnd_placeholder {
9395
10458
  }
9396
10459
  .SmartFilter_toolbar {
9397
10460
  display: flex;
10461
+ flex-wrap: wrap;
9398
10462
  align-items: center;
9399
10463
  gap: var(--prime-space-2);
9400
10464
  min-width: 0;
9401
10465
  }
10466
+ .SmartFilter_filterButton {
10467
+ flex: none;
10468
+ }
9402
10469
  .SmartFilter_search {
9403
- flex: 1;
10470
+ flex: 1 1 calc(var(--prime-space-24) * 1.5);
9404
10471
  min-width: 0;
9405
10472
  }
9406
10473
  .SmartFilter_queryRow {
@@ -9584,8 +10651,10 @@ li.Dnd_placeholder {
9584
10651
  gap: var(--st-gap);
9585
10652
  padding: var(--prime-space-1);
9586
10653
  }
9587
- .Stepper_root[data-orientation=horizontal] .Stepper_step:hover:not(:disabled) {
9588
- color: var(--prime-color-text-primary);
10654
+ @media (hover: hover) {
10655
+ .Stepper_root[data-orientation=horizontal] .Stepper_step:hover:not(:disabled) {
10656
+ color: var(--prime-color-text-primary);
10657
+ }
9589
10658
  }
9590
10659
  .Stepper_root[data-orientation=vertical] .Stepper_step {
9591
10660
  display: grid;
@@ -9598,8 +10667,10 @@ li.Dnd_placeholder {
9598
10667
  .Stepper_step:active:not(:disabled) {
9599
10668
  transform: scale(var(--prime-motion-press-scale));
9600
10669
  }
9601
- .Stepper_root[data-orientation=vertical] .Stepper_step:hover:not(:disabled) {
9602
- background: var(--prime-color-fill-subtle);
10670
+ @media (hover: hover) {
10671
+ .Stepper_root[data-orientation=vertical] .Stepper_step:hover:not(:disabled) {
10672
+ background: var(--prime-color-fill-subtle);
10673
+ }
9603
10674
  }
9604
10675
  .Stepper_root[data-orientation=vertical] .Stepper_step:active:not(:disabled) {
9605
10676
  background: var(--prime-color-fill-subtle-active);
@@ -9903,15 +10974,17 @@ li.Dnd_placeholder {
9903
10974
  z-index: 1;
9904
10975
  pointer-events: none;
9905
10976
  opacity: 0;
10977
+ }
10978
+ .Tabs_indicator[data-visible=true] {
10979
+ opacity: 1;
10980
+ }
10981
+ .Tabs_indicator[data-animate=true] {
9906
10982
  transition:
9907
10983
  transform var(--prime-motion-duration-base) var(--prime-motion-easing-emphasized),
9908
10984
  width var(--prime-motion-duration-base) var(--prime-motion-easing-emphasized),
9909
10985
  height var(--prime-motion-duration-base) var(--prime-motion-easing-emphasized),
9910
10986
  opacity var(--prime-motion-duration-fast) var(--prime-motion-easing-standard);
9911
10987
  }
9912
- .Tabs_indicator[data-visible=true] {
9913
- opacity: 1;
9914
- }
9915
10988
  .Tabs_indicatorFolder {
9916
10989
  border-radius: var(--tabs-folder-radius) var(--tabs-folder-radius) 0 0;
9917
10990
  background: var(--prime-color-bg-surface);
@@ -9991,12 +11064,16 @@ li.Dnd_placeholder {
9991
11064
  }
9992
11065
  .Tabs_root[data-orientation=horizontal] .Tabs_item {
9993
11066
  flex: 0 1 auto;
9994
- min-width: var(--tabs-item-min);
11067
+ min-width: max-content;
9995
11068
  max-width: var(--tabs-item-max);
9996
11069
  border-radius: var(--tabs-folder-radius) var(--tabs-folder-radius) 0 0;
9997
11070
  }
11071
+ .Tabs_root[data-orientation=horizontal] .Tabs_tab {
11072
+ min-width: var(--tabs-item-min);
11073
+ max-width: var(--tabs-item-max);
11074
+ }
9998
11075
  .Tabs_root[data-orientation=horizontal][data-full-width=true] .Tabs_item {
9999
- flex: 1 1 auto;
11076
+ flex: 1 1 0;
10000
11077
  }
10001
11078
  .Tabs_root[data-orientation=horizontal] .Tabs_tab {
10002
11079
  height: var(--tabs-item-height);
@@ -10051,9 +11128,11 @@ li.Dnd_placeholder {
10051
11128
  opacity: 0;
10052
11129
  transition: opacity var(--prime-motion-duration-fast) var(--prime-motion-easing-standard);
10053
11130
  }
10054
- .Tabs_root[data-orientation=horizontal] .Tabs_item:hover:not([data-disabled=true], [data-state=active])::before {
10055
- opacity: 1;
10056
- transition-duration: var(--prime-motion-duration-xfast);
11131
+ @media (hover: hover) {
11132
+ .Tabs_root[data-orientation=horizontal] .Tabs_item:hover:not([data-disabled=true], [data-state=active])::before {
11133
+ opacity: 1;
11134
+ transition-duration: var(--prime-motion-duration-xfast);
11135
+ }
10057
11136
  }
10058
11137
  .Tabs_root[data-orientation=horizontal] .Tabs_tab::after {
10059
11138
  z-index: 2;
@@ -10065,11 +11144,13 @@ li.Dnd_placeholder {
10065
11144
  outline: var(--prime-focus-width) solid var(--prime-color-focus-ring);
10066
11145
  outline-offset: var(--prime-focus-offset-inset);
10067
11146
  }
10068
- .Tabs_item:hover:not([data-disabled=true]) .Tabs_tab {
10069
- color: var(--prime-color-text-primary);
10070
- }
10071
- .Tabs_root[data-orientation=vertical] .Tabs_tab:hover:not([data-disabled=true], [aria-selected=true]) {
10072
- background: var(--prime-color-fill-subtle);
11147
+ @media (hover: hover) {
11148
+ .Tabs_item:hover:not([data-disabled=true]) .Tabs_tab {
11149
+ color: var(--prime-color-text-primary);
11150
+ }
11151
+ .Tabs_root[data-orientation=vertical] .Tabs_tab:hover:not([data-disabled=true], [aria-selected=true]) {
11152
+ background: var(--prime-color-fill-subtle);
11153
+ }
10073
11154
  }
10074
11155
  .Tabs_tab[aria-selected=true] {
10075
11156
  color: var(--prime-color-text-primary);
@@ -10096,9 +11177,14 @@ li.Dnd_placeholder {
10096
11177
  transform: translateY(-50%);
10097
11178
  transition: opacity var(--prime-motion-duration-fast) var(--prime-motion-easing-standard);
10098
11179
  }
10099
- .Tabs_item:is([data-state=active], :hover, :focus-within) .Tabs_remove {
11180
+ .Tabs_item:is([data-state=active], :focus-within) .Tabs_remove {
10100
11181
  opacity: 1;
10101
11182
  }
11183
+ @media (hover: hover) {
11184
+ .Tabs_item:hover .Tabs_remove {
11185
+ opacity: 1;
11186
+ }
11187
+ }
10102
11188
  @media (hover: none) {
10103
11189
  .Tabs_remove {
10104
11190
  opacity: 1;
@@ -10120,10 +11206,14 @@ li.Dnd_placeholder {
10120
11206
  width: 100%;
10121
11207
  height: 100%;
10122
11208
  }
10123
- .Tabs_item:hover:not([data-disabled=true]) .Tabs_icon,
10124
11209
  .Tabs_tab[aria-selected=true] .Tabs_icon {
10125
11210
  color: inherit;
10126
11211
  }
11212
+ @media (hover: hover) {
11213
+ .Tabs_item:hover:not([data-disabled=true]) .Tabs_icon {
11214
+ color: inherit;
11215
+ }
11216
+ }
10127
11217
  .Tabs_tab[aria-selected=true] .Tabs_icon:first-child {
10128
11218
  color: var(--prime-color-accent-text);
10129
11219
  }
@@ -10182,7 +11272,8 @@ li.Dnd_placeholder {
10182
11272
  height: var(--tabs-item-height);
10183
11273
  padding-block: 0;
10184
11274
  }
10185
- .Tabs_list[data-collapse=icon] .Tabs_item {
11275
+ .Tabs_root .Tabs_list[data-collapse=icon] .Tabs_item,
11276
+ .Tabs_root .Tabs_list[data-collapse=icon] .Tabs_tab {
10186
11277
  min-width: var(--tabs-item-height);
10187
11278
  }
10188
11279
  .Tabs_list[data-collapse=icon] .Tabs_tab {
@@ -10253,7 +11344,6 @@ li.Dnd_placeholder {
10253
11344
  }
10254
11345
  }
10255
11346
  @media (prefers-reduced-motion: reduce) {
10256
- .Tabs_indicator,
10257
11347
  .Tabs_content,
10258
11348
  .Tabs_remove {
10259
11349
  transition: none;
@@ -10324,6 +11414,8 @@ li.Dnd_placeholder {
10324
11414
  background: transparent;
10325
11415
  color: inherit;
10326
11416
  font: inherit;
11417
+ font-size: var(--field-input-text);
11418
+ line-height: var(--field-input-lh);
10327
11419
  outline: none;
10328
11420
  }
10329
11421
  .TagSelect_input[data-collapsed=true] {
@@ -10489,8 +11581,10 @@ li.Dnd_placeholder {
10489
11581
  .TagSelect_colorRow {
10490
11582
  justify-content: space-between;
10491
11583
  }
10492
- .TagSelect_colorRow:hover {
10493
- background: var(--prime-color-fill-subtle);
11584
+ @media (hover: hover) {
11585
+ .TagSelect_colorRow:hover {
11586
+ background: var(--prime-color-fill-subtle);
11587
+ }
10494
11588
  }
10495
11589
  .TagSelect_colorRow:focus-visible {
10496
11590
  outline: var(--prime-focus-width) solid var(--prime-color-focus-ring);
@@ -10507,8 +11601,8 @@ li.Dnd_placeholder {
10507
11601
 
10508
11602
  /* src/components/textarea/Textarea.module.css */
10509
11603
  .Textarea_root {
10510
- --textarea-padding-y: calc((var(--field-h) - var(--field-lh)) / 2);
10511
- --textarea-inner-min-height: calc(var(--field-lh) * 3);
11604
+ --textarea-padding-y: calc((var(--field-h) - var(--field-input-lh)) / 2);
11605
+ --textarea-inner-min-height: calc(var(--field-input-lh) * 3);
10512
11606
  width: 100%;
10513
11607
  }
10514
11608
  .Textarea_control {
@@ -10538,9 +11632,9 @@ li.Dnd_placeholder {
10538
11632
  padding: 0;
10539
11633
  border: 0;
10540
11634
  font-family: inherit;
10541
- font-size: var(--field-text);
11635
+ font-size: var(--field-input-text);
10542
11636
  font-weight: inherit;
10543
- line-height: var(--field-lh);
11637
+ line-height: var(--field-input-lh);
10544
11638
  letter-spacing: inherit;
10545
11639
  white-space: pre-wrap;
10546
11640
  overflow-wrap: anywhere;
@@ -10561,8 +11655,8 @@ li.Dnd_placeholder {
10561
11655
  box-shadow: none;
10562
11656
  resize: vertical;
10563
11657
  font: inherit;
10564
- font-size: var(--field-text);
10565
- line-height: var(--field-lh);
11658
+ font-size: var(--field-input-text);
11659
+ line-height: var(--field-input-lh);
10566
11660
  white-space: pre-wrap;
10567
11661
  overflow-wrap: anywhere;
10568
11662
  }
@@ -10733,8 +11827,8 @@ li.Dnd_placeholder {
10733
11827
  top: calc(50% + var(--tl-dot) / 2);
10734
11828
  bottom: 0;
10735
11829
  }
10736
- .Timeline_item:first-child::before,
10737
- .Timeline_item:last-child::after {
11830
+ .Timeline_item[data-first]::before,
11831
+ .Timeline_item[data-last]::after {
10738
11832
  display: none;
10739
11833
  }
10740
11834
  .Timeline_gapItem {
@@ -10794,13 +11888,22 @@ li.Dnd_placeholder {
10794
11888
  .Timeline_row[data-tone=info] {
10795
11889
  --tl-dot-color: var(--prime-color-info-default);
10796
11890
  }
10797
- .Timeline_row:is(:hover, :focus-visible) {
11891
+ .Timeline_row:focus-visible {
10798
11892
  --tl-title-color: var(--prime-color-accent-text);
10799
11893
  background: var(--prime-color-fill-subtle-active);
10800
11894
  }
10801
- .Timeline_row:is(:hover, :focus-visible):not([data-tone]) {
11895
+ .Timeline_row:focus-visible:not([data-tone]) {
10802
11896
  --tl-dot-color: var(--prime-color-accent-default);
10803
11897
  }
11898
+ @media (hover: hover) {
11899
+ .Timeline_row:hover {
11900
+ --tl-title-color: var(--prime-color-accent-text);
11901
+ background: var(--prime-color-fill-subtle-active);
11902
+ }
11903
+ .Timeline_row:hover:not([data-tone]) {
11904
+ --tl-dot-color: var(--prime-color-accent-default);
11905
+ }
11906
+ }
10804
11907
  .Timeline_row[data-interactive=true] {
10805
11908
  cursor: pointer;
10806
11909
  }
@@ -11105,6 +12208,11 @@ li.Dnd_placeholder {
11105
12208
  text-align: end;
11106
12209
  outline: none;
11107
12210
  }
12211
+ @media (pointer: coarse), (max-width: 639px) {
12212
+ .ColorPicker_channelInput {
12213
+ font-size: max(1em, var(--prime-control-touch-text-size));
12214
+ }
12215
+ }
11108
12216
  .ColorPicker_channelCellHex {
11109
12217
  padding-inline: var(--prime-control-s-field-padding-x);
11110
12218
  }