@optimum-intelligence/opti-ui 0.7.1 → 0.7.3

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 (56) hide show
  1. package/CHANGELOG.md +49 -0
  2. package/dist/components/app-shell/AppShell.d.ts +12 -3
  3. package/dist/components/app-shell/AppShell.js +45 -26
  4. package/dist/components/app-shell/AppShell.js.map +1 -1
  5. package/dist/components/combobox/Combobox.d.ts +11 -2
  6. package/dist/components/combobox/Combobox.js +155 -118
  7. package/dist/components/combobox/Combobox.js.map +1 -1
  8. package/dist/components/data-table/DataTable.d.ts +25 -4
  9. package/dist/components/data-table/DataTable.js +238 -90
  10. package/dist/components/data-table/DataTable.js.map +1 -1
  11. package/dist/components/data-table/DataTableContent.d.ts +6 -1
  12. package/dist/components/data-table/DataTableContent.js +306 -409
  13. package/dist/components/data-table/DataTableContent.js.map +1 -1
  14. package/dist/components/data-table/DataTableFilters.d.ts +6 -1
  15. package/dist/components/data-table/DataTableFilters.js +65 -45
  16. package/dist/components/data-table/DataTableFilters.js.map +1 -1
  17. package/dist/components/data-table/DataTableRow.js +2 -0
  18. package/dist/components/data-table/DataTableRow.js.map +1 -1
  19. package/dist/components/data-table/types.d.ts +14 -1
  20. package/dist/components/data-table/useDataTable.js +2 -0
  21. package/dist/components/data-table/useDataTable.js.map +1 -1
  22. package/dist/components/drawer/Drawer.d.ts +7 -4
  23. package/dist/components/drawer/Drawer.js +2 -1
  24. package/dist/components/drawer/Drawer.js.map +1 -1
  25. package/dist/components/map/Map.d.ts +30 -6
  26. package/dist/components/map/Map.js +387 -271
  27. package/dist/components/map/Map.js.map +1 -1
  28. package/dist/components/stat-card/StatCard.d.ts +2 -2
  29. package/dist/components/stat-card/StatCard.js +1 -1
  30. package/dist/components/stat-card/StatCard.js.map +1 -1
  31. package/dist/components/stepper/Stepper.d.ts +7 -1
  32. package/dist/components/stepper/Stepper.js +46 -27
  33. package/dist/components/stepper/Stepper.js.map +1 -1
  34. package/dist/components/table/Table.d.ts +1 -1
  35. package/dist/components/table/Table.js +3 -1
  36. package/dist/components/table/Table.js.map +1 -1
  37. package/dist/components/tabs/Tabs.d.ts +4 -1
  38. package/dist/components/tabs/Tabs.js +33 -23
  39. package/dist/components/tabs/Tabs.js.map +1 -1
  40. package/dist/components/toggle/Toggle.d.ts +1 -1
  41. package/dist/components/toggle/Toggle.js.map +1 -1
  42. package/dist/components.json +109 -30
  43. package/dist/icons/index.d.ts +8 -0
  44. package/dist/icons/index.js +11 -1
  45. package/dist/icons/index.js.map +1 -1
  46. package/dist/index.js +2 -2
  47. package/dist/llms-full.txt +55 -20
  48. package/dist/llms.txt +8 -8
  49. package/dist/opti-ui.css +394 -29
  50. package/dist/utils/media.d.ts +4 -0
  51. package/dist/utils/media.js +34 -0
  52. package/dist/utils/media.js.map +1 -0
  53. package/dist/utils/scroll-fade.d.ts +9 -0
  54. package/dist/utils/scroll-fade.js +45 -0
  55. package/dist/utils/scroll-fade.js.map +1 -0
  56. package/package.json +1 -1
package/dist/opti-ui.css CHANGED
@@ -1,3 +1,4 @@
1
+ @charset "UTF-8";
1
2
  @layer maplibre, oui.tokens, oui.base, oui.components;
2
3
  @layer oui.tokens {
3
4
  :root {
@@ -67,6 +68,13 @@
67
68
  --oui-z-toast: 120;
68
69
  --oui-z-tooltip: 130;
69
70
  }
71
+ @media (pointer: coarse) {
72
+ :root {
73
+ --oui-control-height-sm: 2.5rem;
74
+ --oui-control-height-md: 2.75rem;
75
+ --oui-control-height-lg: 3rem;
76
+ }
77
+ }
70
78
  :root,
71
79
  .oui-theme,
72
80
  [data-oui-theme] {
@@ -711,6 +719,12 @@
711
719
  box-shadow: none;
712
720
  color: var(--_fg);
713
721
  }
722
+ .oui-navbar[data-collapsed] .oui-toggle-group[data-variant=segmented] {
723
+ align-self: center;
724
+ }
725
+ .oui-navbar[data-collapsed] .oui-toggle-group[data-variant=segmented] > .oui-toggle:not([data-pressed]) {
726
+ display: none;
727
+ }
714
728
  .oui-navbar[data-collapsed] .oui-navbar__toggle svg,
715
729
  .oui-navbar[data-peek] .oui-navbar__toggle svg {
716
730
  transform: rotate(180deg);
@@ -939,6 +953,13 @@
939
953
  outline: 2px solid var(--oui-color-on-inverse);
940
954
  outline-offset: -2px;
941
955
  }
956
+ @media (pointer: coarse) {
957
+ .oui-app-shell__menu-button,
958
+ .oui-app-shell__drawer-close {
959
+ width: 2.75rem;
960
+ height: 2.75rem;
961
+ }
962
+ }
942
963
  .oui-app-shell__drawer-close {
943
964
  position: absolute;
944
965
  top: 1.35rem;
@@ -1018,9 +1039,13 @@
1018
1039
  gap: var(--oui-space-4);
1019
1040
  }
1020
1041
  .oui-grid {
1042
+ --_cols: 3;
1043
+ --_half: 2;
1044
+ --_gap: var(--oui-space-6);
1045
+ --_min: var(--oui-grid-min-item-width, 12rem);
1021
1046
  display: grid;
1022
- grid-template-columns: repeat(var(--_cols, 3), minmax(0, 1fr));
1023
- gap: var(--_gap, var(--oui-space-6));
1047
+ grid-template-columns: repeat(auto-fill, minmax(max(min(var(--_min), 100%), (100% - (var(--_cols) - 1) * var(--_gap)) / var(--_cols), min((100% - (var(--_half) - 1) * var(--_gap)) / var(--_half), (var(--_cols) * var(--_min) + (var(--_cols) - 1) * var(--_gap) - 100%) * 1000)), 1fr));
1048
+ gap: var(--_gap);
1024
1049
  min-width: 0;
1025
1050
  }
1026
1051
  .oui-grid > * {
@@ -1028,21 +1053,35 @@
1028
1053
  }
1029
1054
  .oui-grid[data-columns="1"] {
1030
1055
  --_cols: 1;
1056
+ --_half: 1;
1031
1057
  }
1032
1058
  .oui-grid[data-columns="2"] {
1033
1059
  --_cols: 2;
1060
+ --_half: 1;
1034
1061
  }
1035
1062
  .oui-grid[data-columns="3"] {
1036
1063
  --_cols: 3;
1064
+ --_half: 2;
1037
1065
  }
1038
1066
  .oui-grid[data-columns="4"] {
1039
1067
  --_cols: 4;
1068
+ --_half: 2;
1040
1069
  }
1041
1070
  .oui-grid[data-columns="5"] {
1042
1071
  --_cols: 5;
1072
+ --_half: 3;
1043
1073
  }
1044
1074
  .oui-grid[data-columns="6"] {
1045
1075
  --_cols: 6;
1076
+ --_half: 3;
1077
+ }
1078
+ .oui-grid[data-columns="4"], .oui-grid[data-columns="5"], .oui-grid[data-columns="6"] {
1079
+ --_min: var(--oui-grid-min-item-width, 11rem);
1080
+ }
1081
+ @media (max-width: 640px) {
1082
+ .oui-grid[data-columns="4"], .oui-grid[data-columns="5"], .oui-grid[data-columns="6"] {
1083
+ --_min: var(--oui-grid-min-item-width, 9rem);
1084
+ }
1046
1085
  }
1047
1086
  .oui-grid[data-gap=sm] {
1048
1087
  --_gap: var(--oui-space-4);
@@ -1050,16 +1089,6 @@
1050
1089
  .oui-grid[data-gap=lg] {
1051
1090
  --_gap: var(--oui-space-10);
1052
1091
  }
1053
- @media (max-width: 1200px) {
1054
- .oui-grid[data-columns="4"], .oui-grid[data-columns="5"], .oui-grid[data-columns="6"] {
1055
- --_cols: 2;
1056
- }
1057
- }
1058
- @media (max-width: 900px) {
1059
- .oui-grid:not([data-columns="1"]) {
1060
- --_cols: 1;
1061
- }
1062
- }
1063
1092
  }
1064
1093
  @layer oui.components {
1065
1094
  .oui-avatar {
@@ -1799,12 +1828,14 @@
1799
1828
  }
1800
1829
  .oui-card__header {
1801
1830
  display: flex;
1831
+ flex-wrap: wrap;
1802
1832
  align-items: flex-start;
1803
1833
  justify-content: space-between;
1804
- gap: 0.75rem;
1834
+ gap: 0.5rem 0.75rem;
1805
1835
  min-width: 0;
1806
1836
  }
1807
1837
  .oui-card__header > :not(.oui-card__actions) {
1838
+ flex: 1 1 12rem;
1808
1839
  min-width: 0;
1809
1840
  }
1810
1841
  .oui-card__title {
@@ -1823,7 +1854,7 @@
1823
1854
  }
1824
1855
  .oui-card__actions {
1825
1856
  display: flex;
1826
- flex-shrink: 0;
1857
+ flex-wrap: wrap;
1827
1858
  align-items: center;
1828
1859
  gap: 0.15rem;
1829
1860
  margin: -0.35rem -0.35rem 0 auto;
@@ -2230,10 +2261,15 @@
2230
2261
  gap: 0.25rem;
2231
2262
  min-width: 0;
2232
2263
  }
2264
+ .oui-combobox__chips[data-collapse] {
2265
+ flex-wrap: nowrap;
2266
+ }
2233
2267
  .oui-combobox__chip {
2234
2268
  display: inline-flex;
2235
2269
  align-items: center;
2236
2270
  gap: 0.2rem;
2271
+ min-width: 0;
2272
+ max-width: 100%;
2237
2273
  height: 1.5rem;
2238
2274
  padding: 0 0.2rem 0 0.6rem;
2239
2275
  border-radius: var(--oui-radius-sm);
@@ -2247,6 +2283,15 @@
2247
2283
  .oui-combobox__chip:focus-within, .oui-combobox__chip[data-highlighted] {
2248
2284
  background: var(--oui-color-accent-strong);
2249
2285
  }
2286
+ .oui-combobox__chip[data-overflow] {
2287
+ flex-shrink: 0;
2288
+ padding-right: 0.6rem;
2289
+ }
2290
+ .oui-combobox__chip-label {
2291
+ overflow: hidden;
2292
+ text-overflow: ellipsis;
2293
+ white-space: nowrap;
2294
+ }
2250
2295
  .oui-combobox__chip-remove {
2251
2296
  display: inline-flex;
2252
2297
  align-items: center;
@@ -2589,6 +2634,35 @@
2589
2634
  flex: 1 1 14rem;
2590
2635
  max-width: 22rem;
2591
2636
  }
2637
+ .oui-data-table__toolbar[data-layout=narrow] {
2638
+ flex-direction: column;
2639
+ align-items: stretch;
2640
+ gap: var(--oui-space-4);
2641
+ }
2642
+ .oui-data-table__toolbar[data-layout=narrow] .oui-data-table__actions {
2643
+ flex-wrap: nowrap;
2644
+ justify-content: space-between;
2645
+ margin-left: 0;
2646
+ }
2647
+ .oui-data-table__toolbar[data-layout=narrow] .oui-data-table__summary {
2648
+ margin-right: auto;
2649
+ }
2650
+ .oui-data-table__toolbar-row {
2651
+ display: flex;
2652
+ align-items: center;
2653
+ gap: var(--oui-space-4);
2654
+ }
2655
+ .oui-data-table__toolbar-row > .oui-input-group {
2656
+ flex: 1;
2657
+ min-width: 0;
2658
+ }
2659
+ .oui-data-table__toolbar-row > :only-child {
2660
+ margin-left: auto;
2661
+ }
2662
+ .oui-data-table__sheet-trigger[data-active] {
2663
+ --_border: var(--oui-color-accent);
2664
+ --_bg: var(--oui-color-accent-subtle);
2665
+ }
2592
2666
  .oui-data-table__filters {
2593
2667
  display: flex;
2594
2668
  flex-wrap: wrap;
@@ -2596,31 +2670,71 @@
2596
2670
  gap: 0.5rem;
2597
2671
  min-width: 0;
2598
2672
  }
2599
- .oui-data-table .oui-data-table__filter {
2673
+ .oui-data-table__filters[data-stacked] {
2674
+ flex-direction: column;
2675
+ align-items: stretch;
2676
+ gap: var(--oui-space-8);
2677
+ }
2678
+ .oui-data-table__filters[data-stacked] > .oui-data-table__filter,
2679
+ .oui-data-table__filters[data-stacked] .oui-data-table__filter-field > .oui-data-table__filter {
2680
+ width: 100%;
2681
+ }
2682
+ .oui-data-table__filters[data-stacked] .oui-select__trigger.oui-data-table__filter {
2683
+ justify-content: flex-start;
2684
+ }
2685
+ .oui-data-table__filters[data-stacked] .oui-select__trigger.oui-data-table__filter .oui-select__icon {
2686
+ margin-left: auto;
2687
+ }
2688
+ .oui-data-table__filter-field {
2689
+ display: grid;
2690
+ gap: var(--oui-space-3);
2691
+ }
2692
+ .oui-data-table__filter-heading {
2693
+ color: var(--oui-color-text-muted);
2694
+ font-size: var(--oui-font-size-2xs);
2695
+ font-weight: var(--oui-font-weight-bold);
2696
+ letter-spacing: 0.08em;
2697
+ text-transform: uppercase;
2698
+ }
2699
+ .oui-data-table__sheet .oui-drawer__footer {
2700
+ flex-wrap: nowrap;
2701
+ }
2702
+ .oui-data-table__sheet-done {
2703
+ flex: 1;
2704
+ }
2705
+ .oui-data-table__sheet-extra {
2706
+ display: flex;
2707
+ flex-wrap: wrap;
2708
+ gap: var(--oui-space-4);
2709
+ margin-top: var(--oui-space-10);
2710
+ padding-top: var(--oui-space-8);
2711
+ border-top: 1px solid var(--oui-color-border-subtle);
2712
+ }
2713
+ :is(.oui-data-table, .oui-data-table__sheet) .oui-data-table__filter {
2600
2714
  width: auto;
2601
2715
  min-width: 0;
2602
2716
  font-size: var(--oui-font-size-sm);
2603
2717
  font-weight: var(--oui-font-weight-medium);
2604
2718
  }
2605
- .oui-data-table .oui-data-table__filter.oui-toggle {
2719
+ :is(.oui-data-table, .oui-data-table__sheet) .oui-data-table__filter.oui-toggle {
2606
2720
  border-width: var(--oui-control-border-width);
2607
2721
  }
2608
- .oui-data-table .oui-data-table__filter.oui-select__trigger {
2722
+ :is(.oui-data-table, .oui-data-table__sheet) .oui-data-table__filter.oui-select__trigger {
2609
2723
  gap: 0.4rem;
2610
2724
  }
2611
- .oui-data-table .oui-data-table__filter .oui-date-picker__trigger {
2725
+ :is(.oui-data-table, .oui-data-table__sheet) .oui-data-table__filter .oui-date-picker__trigger {
2612
2726
  font-size: inherit;
2613
2727
  }
2614
- .oui-data-table .oui-data-table__filter .oui-date-picker__trigger[data-placeholder] .oui-date-picker__value {
2728
+ :is(.oui-data-table, .oui-data-table__sheet) .oui-data-table__filter .oui-date-picker__trigger[data-placeholder] .oui-date-picker__value {
2615
2729
  color: var(--oui-color-text-muted);
2616
2730
  }
2617
- .oui-data-table .oui-data-table__filter[data-active],
2618
- .oui-data-table .oui-data-table__filter .oui-date-picker__trigger:not([data-placeholder]) {
2731
+ :is(.oui-data-table, .oui-data-table__sheet) .oui-data-table__filter[data-active],
2732
+ :is(.oui-data-table, .oui-data-table__sheet) .oui-data-table__filter .oui-date-picker__trigger:not([data-placeholder]) {
2619
2733
  border-color: var(--oui-color-accent);
2620
2734
  background: var(--oui-color-accent-subtle);
2621
2735
  color: var(--oui-color-text-strong);
2622
2736
  }
2623
- .oui-data-table .oui-data-table__chips > .oui-toggle:has(> .oui-badge) {
2737
+ :is(.oui-data-table, .oui-data-table__sheet) .oui-data-table__chips > .oui-toggle:has(> .oui-badge) {
2624
2738
  height: auto;
2625
2739
  min-width: 0;
2626
2740
  padding: 0;
@@ -2628,18 +2742,18 @@
2628
2742
  border-radius: var(--oui-radius-pill);
2629
2743
  background: transparent;
2630
2744
  }
2631
- .oui-data-table .oui-data-table__chips > .oui-toggle:has(> .oui-badge) > .oui-badge {
2745
+ :is(.oui-data-table, .oui-data-table__sheet) .oui-data-table__chips > .oui-toggle:has(> .oui-badge) > .oui-badge {
2632
2746
  transition: border-color var(--oui-duration-fast) var(--oui-ease);
2633
2747
  }
2634
2748
  @media (hover: hover) {
2635
- .oui-data-table .oui-data-table__chips > .oui-toggle:has(> .oui-badge):hover:not([data-disabled], [data-pressed]) {
2749
+ :is(.oui-data-table, .oui-data-table__sheet) .oui-data-table__chips > .oui-toggle:has(> .oui-badge):hover:not([data-disabled], [data-pressed]) {
2636
2750
  border-color: transparent;
2637
2751
  }
2638
- .oui-data-table .oui-data-table__chips > .oui-toggle:has(> .oui-badge):hover:not([data-disabled], [data-pressed]) > .oui-badge {
2752
+ :is(.oui-data-table, .oui-data-table__sheet) .oui-data-table__chips > .oui-toggle:has(> .oui-badge):hover:not([data-disabled], [data-pressed]) > .oui-badge {
2639
2753
  border-color: var(--_tone-border);
2640
2754
  }
2641
2755
  }
2642
- .oui-data-table .oui-data-table__chips > .oui-toggle:has(> .oui-badge)[data-pressed] > .oui-badge {
2756
+ :is(.oui-data-table, .oui-data-table__sheet) .oui-data-table__chips > .oui-toggle:has(> .oui-badge)[data-pressed] > .oui-badge {
2643
2757
  border-color: var(--_tone);
2644
2758
  box-shadow: inset 0 0 0 0.5px var(--_tone);
2645
2759
  }
@@ -2695,6 +2809,59 @@
2695
2809
  .oui-data-table .oui-table__cell[data-muted] {
2696
2810
  color: var(--oui-color-text-muted);
2697
2811
  }
2812
+ .oui-data-table .oui-table :is(.oui-table__cell, .oui-table__head)[data-nowrap] {
2813
+ overflow-wrap: normal;
2814
+ white-space: nowrap;
2815
+ }
2816
+ .oui-data-table .oui-table[data-sticky-column] {
2817
+ --_check-width: 2.25rem;
2818
+ }
2819
+ .oui-data-table .oui-table[data-sticky-column] .oui-table__row {
2820
+ --_tint: transparent;
2821
+ }
2822
+ .oui-data-table .oui-table[data-sticky-column] .oui-table__row > :first-child,
2823
+ .oui-data-table .oui-table[data-sticky-column] .oui-table__row > .oui-data-table__check + * {
2824
+ position: sticky;
2825
+ left: 0;
2826
+ z-index: 1;
2827
+ background-color: var(--oui-color-surface);
2828
+ background-image: linear-gradient(var(--_tint), var(--_tint));
2829
+ }
2830
+ .oui-data-table .oui-table[data-sticky-column] .oui-table__row > .oui-data-table__check + * {
2831
+ left: var(--_check-width);
2832
+ }
2833
+ .oui-data-table .oui-table[data-sticky-column] .oui-table__header .oui-table__row > :is(:first-child, .oui-data-table__check + *) {
2834
+ z-index: 2;
2835
+ }
2836
+ .oui-data-table .oui-table[data-sticky-column][data-striped] .oui-table__body .oui-table__row:nth-child(even) {
2837
+ --_tint: var(--oui-color-surface-muted);
2838
+ }
2839
+ .oui-data-table .oui-table[data-sticky-column][data-hoverable] .oui-table__body .oui-table__row:hover {
2840
+ --_tint: var(--oui-color-surface-hover);
2841
+ }
2842
+ .oui-data-table .oui-table[data-sticky-column] .oui-table__row[data-tone]:not([data-selected], :hover) {
2843
+ --_tint: var(--_tone-subtle);
2844
+ }
2845
+ .oui-data-table .oui-table[data-sticky-column] .oui-table__row[data-clickable]:hover,
2846
+ .oui-data-table .oui-table[data-sticky-column] .oui-table__row:is([data-selected], [data-editing]) {
2847
+ --_tint: var(--oui-color-accent-subtle);
2848
+ }
2849
+ .oui-data-table .oui-table-wrap:has(> .oui-table[data-sticky-column])[data-fade-start] {
2850
+ mask-image: none;
2851
+ }
2852
+ .oui-data-table .oui-table-wrap:has(> .oui-table[data-sticky-column])[data-fade-start] .oui-table__row > :is(:first-child:not(.oui-data-table__check), .oui-data-table__check + *)::after {
2853
+ content: "";
2854
+ position: absolute;
2855
+ top: 0;
2856
+ right: -0.5rem;
2857
+ bottom: 0;
2858
+ width: 0.5rem;
2859
+ background: linear-gradient(to right, color-mix(in srgb, var(--oui-color-text-strong) 12%, transparent), transparent);
2860
+ pointer-events: none;
2861
+ }
2862
+ .oui-data-table .oui-table-wrap:has(> .oui-table[data-sticky-column])[data-fade-start][data-fade-end] {
2863
+ mask-image: linear-gradient(to left, transparent, #000 var(--_fade));
2864
+ }
2698
2865
  .oui-data-table .oui-table__row[data-tone] {
2699
2866
  --_tone: var(--oui-color-accent);
2700
2867
  --_tone-subtle: var(--oui-color-accent-subtle);
@@ -3067,6 +3234,11 @@
3067
3234
  overflow-wrap: anywhere;
3068
3235
  white-space: pre-wrap;
3069
3236
  }
3237
+ @media (max-width: 640px) {
3238
+ .oui-description-list[data-layout=grid] {
3239
+ column-gap: var(--oui-space-8);
3240
+ }
3241
+ }
3070
3242
  @media (max-width: 440px) {
3071
3243
  .oui-description-list[data-layout=rows] > .oui-description-list__item {
3072
3244
  grid-template-columns: 1fr;
@@ -3340,10 +3512,34 @@
3340
3512
  .oui-drawer[data-side=left][data-starting-style], .oui-drawer[data-side=left][data-ending-style] {
3341
3513
  transform: translateX(-100%);
3342
3514
  }
3515
+ .oui-drawer[data-side=bottom] {
3516
+ top: auto;
3517
+ right: 0;
3518
+ left: 0;
3519
+ width: 100%;
3520
+ height: auto;
3521
+ max-height: 85dvh;
3522
+ border-top-width: 1px;
3523
+ border-radius: var(--oui-radius-card) var(--oui-radius-card) 0 0;
3524
+ }
3525
+ .oui-drawer[data-side=bottom][data-starting-style], .oui-drawer[data-side=bottom][data-ending-style] {
3526
+ transform: translateY(100%);
3527
+ }
3528
+ .oui-drawer[data-side=bottom] .oui-drawer__body {
3529
+ flex: 0 1 auto;
3530
+ }
3531
+ .oui-drawer[data-side=bottom] > .oui-drawer__body:last-child {
3532
+ padding-bottom: calc(var(--oui-drawer-padding, var(--_padding)) + env(safe-area-inset-bottom, 0px));
3533
+ }
3534
+ .oui-drawer[data-side=bottom] > .oui-drawer__footer {
3535
+ padding-bottom: calc(var(--oui-space-6) + env(safe-area-inset-bottom, 0px));
3536
+ }
3343
3537
  @media (max-width: 640px) {
3344
3538
  .oui-drawer {
3345
3539
  --_padding: var(--oui-space-8);
3346
- border-radius: 0 !important;
3540
+ }
3541
+ .oui-drawer:not([data-side=bottom]) {
3542
+ border-radius: 0;
3347
3543
  }
3348
3544
  }
3349
3545
  .oui-drawer__header {
@@ -4142,7 +4338,17 @@
4142
4338
  gap: var(--oui-space-4);
4143
4339
  max-width: calc(100% - 2 * var(--oui-space-6));
4144
4340
  max-height: calc(100% - 2 * var(--oui-space-6));
4145
- overflow: auto;
4341
+ min-height: 0;
4342
+ pointer-events: none;
4343
+ }
4344
+ .oui-map__overlay > * {
4345
+ flex-shrink: 0;
4346
+ max-width: 100%;
4347
+ pointer-events: auto;
4348
+ }
4349
+ .oui-map__overlay > .oui-map-legend {
4350
+ flex-shrink: 1;
4351
+ min-height: 0;
4146
4352
  }
4147
4353
  .oui-map__overlay[data-position^=top] {
4148
4354
  top: var(--oui-space-6);
@@ -4189,6 +4395,33 @@
4189
4395
  color: var(--oui-color-text);
4190
4396
  font-size: var(--oui-font-size-sm);
4191
4397
  }
4398
+ .oui-map-legend[data-size=sm] {
4399
+ --oui-map-legend-max-height: 10rem;
4400
+ gap: 0;
4401
+ min-width: 8rem;
4402
+ padding: var(--oui-space-2);
4403
+ font-size: var(--oui-font-size-xs);
4404
+ }
4405
+ .oui-map-legend[data-size=sm] .oui-map-legend__list {
4406
+ gap: 0;
4407
+ }
4408
+ .oui-map-legend[data-size=sm] .oui-map-legend__entry {
4409
+ gap: var(--oui-space-3);
4410
+ padding: 0.15rem var(--oui-space-2);
4411
+ }
4412
+ .oui-map-legend[data-size=sm] .oui-map-legend__swatch {
4413
+ width: 0.5rem;
4414
+ height: 0.5rem;
4415
+ border-radius: 2px;
4416
+ }
4417
+ .oui-map-legend[data-size=sm] .oui-map-legend__count {
4418
+ font-size: var(--oui-font-size-2xs);
4419
+ }
4420
+ .oui-map-legend[data-size=sm] .oui-map-legend__visibility {
4421
+ width: 1.35rem;
4422
+ height: 1.35rem;
4423
+ font-size: 0.8rem;
4424
+ }
4192
4425
  .oui-map-legend__toggle-all {
4193
4426
  box-sizing: border-box;
4194
4427
  margin: 0;
@@ -4218,9 +4451,15 @@
4218
4451
  display: flex;
4219
4452
  flex-direction: column;
4220
4453
  gap: var(--oui-space-1);
4454
+ min-height: 0;
4455
+ max-height: var(--oui-map-legend-max-height, none);
4221
4456
  margin: 0;
4222
4457
  padding: 0;
4458
+ overflow-y: auto;
4459
+ overscroll-behavior: contain;
4223
4460
  list-style: none;
4461
+ scrollbar-width: thin;
4462
+ scrollbar-color: var(--oui-color-border-hover) transparent;
4224
4463
  }
4225
4464
  .oui-map-legend__item {
4226
4465
  display: flex;
@@ -4316,6 +4555,10 @@
4316
4555
  color: var(--oui-color-text);
4317
4556
  }
4318
4557
  }
4558
+ .oui-map .oui-map__layer-switch {
4559
+ --_border: var(--oui-color-border);
4560
+ box-shadow: var(--oui-shadow-raised);
4561
+ }
4319
4562
  }
4320
4563
  @layer oui.components {
4321
4564
  .oui-menu__positioner {
@@ -5454,6 +5697,23 @@
5454
5697
  display: grid;
5455
5698
  gap: 0.6rem;
5456
5699
  }
5700
+ @media (max-width: 640px) {
5701
+ .oui-stat {
5702
+ gap: 0.35rem;
5703
+ }
5704
+ .oui-stat__label {
5705
+ font-size: var(--oui-font-size-xs);
5706
+ }
5707
+ .oui-stat__icon {
5708
+ display: none;
5709
+ }
5710
+ .oui-stat__value {
5711
+ font-size: var(--oui-stat-value-size, 1.35rem);
5712
+ }
5713
+ .oui-stat__footer {
5714
+ font-size: var(--oui-font-size-xs);
5715
+ }
5716
+ }
5457
5717
  }
5458
5718
  @layer oui.components {
5459
5719
  .oui-stepper {
@@ -5586,15 +5846,76 @@
5586
5846
  font-size: var(--oui-font-size-xs);
5587
5847
  line-height: 1.4;
5588
5848
  }
5849
+ .oui-stepper__count {
5850
+ display: none;
5851
+ }
5589
5852
  @media (max-width: 640px) {
5590
- .oui-stepper[data-orientation=horizontal] .oui-stepper__step:not([data-status=current]) .oui-stepper__text {
5853
+ .oui-stepper[data-orientation=horizontal] {
5854
+ position: relative;
5855
+ gap: 0.25rem;
5856
+ padding-top: calc(1.3em + 0.5rem);
5857
+ }
5858
+ .oui-stepper[data-orientation=horizontal] > .oui-stepper__step {
5859
+ flex: 1;
5860
+ position: static;
5861
+ gap: 0;
5862
+ }
5863
+ .oui-stepper[data-orientation=horizontal] > .oui-stepper__step::after {
5864
+ display: none;
5865
+ }
5866
+ .oui-stepper[data-orientation=horizontal] .oui-stepper__marker {
5867
+ width: 100%;
5868
+ height: 4px;
5869
+ border: 0;
5870
+ border-radius: 2px;
5871
+ background: var(--_line);
5872
+ box-shadow: none;
5873
+ font-size: 0;
5874
+ }
5875
+ .oui-stepper[data-orientation=horizontal] .oui-stepper__marker svg {
5876
+ display: none;
5877
+ }
5878
+ .oui-stepper[data-orientation=horizontal] [data-status=complete] > .oui-stepper__marker,
5879
+ .oui-stepper[data-orientation=horizontal] [data-status=current] > .oui-stepper__marker {
5880
+ background: var(--oui-color-accent);
5881
+ }
5882
+ .oui-stepper[data-orientation=horizontal] [data-status=error] > .oui-stepper__marker {
5883
+ background: var(--oui-color-danger);
5884
+ }
5885
+ .oui-stepper[data-orientation=horizontal] .oui-stepper__text {
5591
5886
  position: absolute;
5887
+ top: 0;
5888
+ right: 0;
5889
+ left: 0;
5890
+ display: flex;
5891
+ align-items: baseline;
5892
+ gap: 0.4rem;
5893
+ min-width: 0;
5894
+ }
5895
+ .oui-stepper[data-orientation=horizontal] .oui-stepper__step:not([data-status=current]) .oui-stepper__text {
5592
5896
  width: 1px;
5593
5897
  height: 1px;
5594
5898
  overflow: hidden;
5595
5899
  clip-path: inset(50%);
5596
5900
  white-space: nowrap;
5597
5901
  }
5902
+ .oui-stepper[data-orientation=horizontal] .oui-stepper__count {
5903
+ display: inline;
5904
+ flex-shrink: 0;
5905
+ color: var(--oui-color-text-muted);
5906
+ font-weight: var(--oui-font-weight-semibold);
5907
+ font-variant-numeric: tabular-nums;
5908
+ }
5909
+ .oui-stepper[data-orientation=horizontal] .oui-stepper__count::after {
5910
+ content: " ·";
5911
+ }
5912
+ .oui-stepper[data-orientation=horizontal] .oui-stepper__label {
5913
+ overflow: hidden;
5914
+ text-overflow: ellipsis;
5915
+ }
5916
+ .oui-stepper[data-orientation=horizontal] .oui-stepper__description {
5917
+ display: none;
5918
+ }
5598
5919
  }
5599
5920
  }
5600
5921
  @layer oui.components {
@@ -5603,6 +5924,16 @@
5603
5924
  min-width: 0;
5604
5925
  overflow-x: auto;
5605
5926
  overscroll-behavior-x: contain;
5927
+ --_fade: 2rem;
5928
+ }
5929
+ .oui-table-wrap[data-fade-start] {
5930
+ mask-image: linear-gradient(to right, transparent, #000 var(--_fade));
5931
+ }
5932
+ .oui-table-wrap[data-fade-end] {
5933
+ mask-image: linear-gradient(to left, transparent, #000 var(--_fade));
5934
+ }
5935
+ .oui-table-wrap[data-fade-start][data-fade-end] {
5936
+ mask-image: linear-gradient(to right, transparent, #000 var(--_fade), #000 calc(100% - var(--_fade)), transparent);
5606
5937
  }
5607
5938
  .oui-table {
5608
5939
  box-sizing: border-box;
@@ -5725,6 +6056,16 @@
5725
6056
  .oui-table__sort:hover svg, .oui-table__sort[data-active] svg {
5726
6057
  opacity: 1;
5727
6058
  }
6059
+ @media (pointer: coarse) {
6060
+ .oui-table__sort {
6061
+ position: relative;
6062
+ }
6063
+ .oui-table__sort::before {
6064
+ content: "";
6065
+ position: absolute;
6066
+ inset: -0.75rem -0.5rem;
6067
+ }
6068
+ }
5728
6069
  }
5729
6070
  @layer oui.components {
5730
6071
  .oui-tabs {
@@ -5747,8 +6088,23 @@
5747
6088
  display: flex;
5748
6089
  align-items: center;
5749
6090
  gap: 0.25rem;
6091
+ max-width: 100%;
5750
6092
  overflow-x: auto;
6093
+ overscroll-behavior-x: contain;
5751
6094
  scrollbar-width: none;
6095
+ --_fade: 1.5rem;
6096
+ }
6097
+ .oui-tabs__list[data-fade-start] {
6098
+ mask-image: linear-gradient(to right, transparent, #000 var(--_fade));
6099
+ }
6100
+ .oui-tabs__list[data-fade-end] {
6101
+ mask-image: linear-gradient(to left, transparent, #000 var(--_fade));
6102
+ }
6103
+ .oui-tabs__list[data-fade-start][data-fade-end] {
6104
+ mask-image: linear-gradient(to right, transparent, #000 var(--_fade), #000 calc(100% - var(--_fade)), transparent);
6105
+ }
6106
+ .oui-tabs__list::-webkit-scrollbar {
6107
+ display: none;
5752
6108
  }
5753
6109
  .oui-tabs__list[data-orientation=vertical] {
5754
6110
  flex-direction: column;
@@ -5803,6 +6159,11 @@
5803
6159
  padding: 0 0.7rem;
5804
6160
  font-size: var(--oui-font-size-sm);
5805
6161
  }
6162
+ @media (pointer: coarse) {
6163
+ [data-size=sm] > .oui-tabs__tab {
6164
+ height: 2.5rem;
6165
+ }
6166
+ }
5806
6167
  .oui-tabs__indicator {
5807
6168
  position: absolute;
5808
6169
  z-index: -1;
@@ -6316,6 +6677,10 @@
6316
6677
  display: inline-flex;
6317
6678
  align-items: center;
6318
6679
  gap: 0.4rem;
6680
+ max-width: 100%;
6681
+ }
6682
+ .oui-toggle-group[data-variant=outline] {
6683
+ flex-wrap: wrap;
6319
6684
  }
6320
6685
  .oui-toggle-group[data-full-width] {
6321
6686
  display: flex;
@@ -0,0 +1,4 @@
1
+ /** The library's one layout breakpoint: phones get their own layout at and below 640px. */
2
+ export declare const NARROW_SCREEN = "(max-width: 640px)";
3
+ /** Whether a media query matches, following changes. `false` during server rendering. */
4
+ export declare function useMediaQuery(query: string): boolean;
@@ -0,0 +1,34 @@
1
+ "use client";
2
+ import { c } from "react/compiler-runtime";
3
+ import * as React from "react";
4
+ //#region src/utils/media.ts
5
+ /** The library's one layout breakpoint: phones get their own layout at and below 640px. */
6
+ var NARROW_SCREEN = "(max-width: 640px)";
7
+ /** Whether a media query matches, following changes. `false` during server rendering. */
8
+ function useMediaQuery(query) {
9
+ const $ = c(3);
10
+ let t0;
11
+ let t1;
12
+ if ($[0] !== query) {
13
+ t0 = (notify) => {
14
+ const list = window.matchMedia(query);
15
+ list.addEventListener("change", notify);
16
+ return () => list.removeEventListener("change", notify);
17
+ };
18
+ t1 = () => window.matchMedia(query).matches;
19
+ $[0] = query;
20
+ $[1] = t0;
21
+ $[2] = t1;
22
+ } else {
23
+ t0 = $[1];
24
+ t1 = $[2];
25
+ }
26
+ return React.useSyncExternalStore(t0, t1, _temp);
27
+ }
28
+ function _temp() {
29
+ return false;
30
+ }
31
+ //#endregion
32
+ export { NARROW_SCREEN, useMediaQuery };
33
+
34
+ //# sourceMappingURL=media.js.map