sherick-ui 2.3.0 → 2.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (87) hide show
  1. package/README.md +2 -0
  2. package/dist/cjs/components/Checkbox.cjs +3 -1
  3. package/dist/cjs/components/Checkbox.cjs.map +1 -1
  4. package/dist/cjs/components/Combobox.cjs +1 -1
  5. package/dist/cjs/components/Combobox.cjs.map +1 -1
  6. package/dist/cjs/components/Command.cjs +1 -1
  7. package/dist/cjs/components/Command.cjs.map +1 -1
  8. package/dist/cjs/components/DatePicker.cjs +1 -1
  9. package/dist/cjs/components/DatePicker.cjs.map +1 -1
  10. package/dist/cjs/components/DateRangePicker.cjs +1 -1
  11. package/dist/cjs/components/DateRangePicker.cjs.map +1 -1
  12. package/dist/cjs/components/DateTimePicker.cjs +176 -0
  13. package/dist/cjs/components/DateTimePicker.cjs.map +1 -0
  14. package/dist/cjs/components/FileUpload.cjs +1 -1
  15. package/dist/cjs/components/FileUpload.cjs.map +1 -1
  16. package/dist/cjs/components/Input.cjs +1 -1
  17. package/dist/cjs/components/Input.cjs.map +1 -1
  18. package/dist/cjs/components/NumberField.cjs +2 -2
  19. package/dist/cjs/components/NumberField.cjs.map +1 -1
  20. package/dist/cjs/components/RadioGroup.cjs +1 -1
  21. package/dist/cjs/components/RadioGroup.cjs.map +1 -1
  22. package/dist/cjs/components/Search.cjs +4 -1
  23. package/dist/cjs/components/Search.cjs.map +1 -1
  24. package/dist/cjs/components/Select.cjs +1 -1
  25. package/dist/cjs/components/Select.cjs.map +1 -1
  26. package/dist/cjs/components/Textarea.cjs +1 -1
  27. package/dist/cjs/components/Textarea.cjs.map +1 -1
  28. package/dist/cjs/components/date-family.cjs +64 -2
  29. package/dist/cjs/components/date-family.cjs.map +1 -1
  30. package/dist/cjs/components/date-field.cjs +16 -6
  31. package/dist/cjs/components/date-field.cjs.map +1 -1
  32. package/dist/cjs/components/time-panel.cjs +125 -0
  33. package/dist/cjs/components/time-panel.cjs.map +1 -0
  34. package/dist/cjs/components/ui.common.cjs +97 -43
  35. package/dist/cjs/components/ui.common.cjs.map +1 -1
  36. package/dist/cjs/components/ui.motion.cjs +6 -1
  37. package/dist/cjs/components/ui.motion.cjs.map +1 -1
  38. package/dist/cjs/dev.cjs +2 -0
  39. package/dist/cjs/dev.cjs.map +1 -1
  40. package/dist/cjs/index.cjs +2 -0
  41. package/dist/cjs/index.cjs.map +1 -1
  42. package/dist/esm/components/Checkbox.js +3 -1
  43. package/dist/esm/components/Checkbox.js.map +1 -1
  44. package/dist/esm/components/Combobox.js +2 -2
  45. package/dist/esm/components/Combobox.js.map +1 -1
  46. package/dist/esm/components/Command.js +2 -2
  47. package/dist/esm/components/Command.js.map +1 -1
  48. package/dist/esm/components/DatePicker.js +2 -2
  49. package/dist/esm/components/DatePicker.js.map +1 -1
  50. package/dist/esm/components/DateRangePicker.js +2 -2
  51. package/dist/esm/components/DateRangePicker.js.map +1 -1
  52. package/dist/esm/components/DateTimePicker.js +172 -0
  53. package/dist/esm/components/DateTimePicker.js.map +1 -0
  54. package/dist/esm/components/FileUpload.js +2 -2
  55. package/dist/esm/components/FileUpload.js.map +1 -1
  56. package/dist/esm/components/Input.js +2 -2
  57. package/dist/esm/components/Input.js.map +1 -1
  58. package/dist/esm/components/NumberField.js +3 -3
  59. package/dist/esm/components/NumberField.js.map +1 -1
  60. package/dist/esm/components/RadioGroup.js +2 -2
  61. package/dist/esm/components/RadioGroup.js.map +1 -1
  62. package/dist/esm/components/Search.js +5 -2
  63. package/dist/esm/components/Search.js.map +1 -1
  64. package/dist/esm/components/Select.js +2 -2
  65. package/dist/esm/components/Select.js.map +1 -1
  66. package/dist/esm/components/Textarea.js +2 -2
  67. package/dist/esm/components/Textarea.js.map +1 -1
  68. package/dist/esm/components/date-family.js +58 -3
  69. package/dist/esm/components/date-family.js.map +1 -1
  70. package/dist/esm/components/date-field.js +17 -8
  71. package/dist/esm/components/date-field.js.map +1 -1
  72. package/dist/esm/components/time-panel.js +122 -0
  73. package/dist/esm/components/time-panel.js.map +1 -0
  74. package/dist/esm/components/ui.common.js +98 -45
  75. package/dist/esm/components/ui.common.js.map +1 -1
  76. package/dist/esm/components/ui.motion.js +6 -2
  77. package/dist/esm/components/ui.motion.js.map +1 -1
  78. package/dist/esm/dev.js +2 -2
  79. package/dist/esm/index.js +1 -0
  80. package/dist/esm/index.js.map +1 -1
  81. package/dist/styles.css +249 -49
  82. package/dist/theme.css +7 -3
  83. package/dist/types/dev.d.cts +34 -21
  84. package/dist/types/dev.d.ts +34 -21
  85. package/dist/types/index.d.cts +75 -2
  86. package/dist/types/index.d.ts +75 -2
  87. package/package.json +1 -1
package/dist/styles.css CHANGED
@@ -11,6 +11,7 @@
11
11
  --sui-ink: 0.245 0.018 260;
12
12
  --sui-ink-muted: 0.480 0.018 260;
13
13
  --sui-detail: 0.600 0.016 258;
14
+ --sui-rim: 0.630 0.016 258;
14
15
  --sui-primary: 0.422 0.139 255;
15
16
  --sui-primary-strong: 0.402 0.143 257;
16
17
  --sui-primary-soft: 0.920 0.035 255;
@@ -41,7 +42,7 @@
41
42
  --sui-elevation-control: 0 1px 2px oklch(var(--sui-light-bottom) / 0.19), inset 0 1px 0 oklch(var(--sui-light-top) / 0.55);
42
43
  --sui-elevation-recessed: inset 0 1px 3px oklch(var(--sui-light-bottom) / 0.22), inset 0 -1px 0 oklch(var(--sui-light-top) / 0.50);
43
44
  --sui-elevation-recessed-top: inset 0 5px 8px -5px oklch(var(--sui-light-bottom) / 0.21);
44
- --sui-elevation-well: inset 0 3px 4px oklch(var(--sui-light-bottom) / 0.62), inset 0 -1px 0 oklch(var(--sui-light-top) / 0.50);
45
+ --sui-elevation-well: inset 0 2px 4px oklch(var(--sui-light-bottom) / 0.40), inset 0 -1px 0 oklch(var(--sui-light-top) / 0.50);
45
46
  --sui-glass-fill: 0.98;
46
47
  --sui-glass-blur: 28px;
47
48
  --sui-glass-saturation: 1.06;
@@ -78,6 +79,7 @@
78
79
  --sui-ink: 0.94 0.008 255;
79
80
  --sui-ink-muted: 0.76 0.014 255;
80
81
  --sui-detail: 0.600 0.014 256;
82
+ --sui-rim: 0.555 0.014 256;
81
83
  --sui-primary: 0.809 0.098 255;
82
84
  --sui-primary-strong: 0.734 0.139 257;
83
85
  --sui-primary-soft: 0.325 0.050 257;
@@ -108,7 +110,7 @@
108
110
  --sui-elevation-control: 0 1px 2px oklch(var(--sui-light-bottom) / 0.30), inset 0 1px 0 oklch(var(--sui-light-top) / 0.08);
109
111
  --sui-elevation-recessed: inset 0 1px 3px oklch(var(--sui-light-bottom) / 0.38), inset 0 -1px 0 oklch(var(--sui-light-top) / 0.06);
110
112
  --sui-elevation-recessed-top: inset 0 5px 8px -5px oklch(var(--sui-light-bottom) / 0.36);
111
- --sui-elevation-well: inset 0 1px 3px oklch(var(--sui-light-bottom) / 0.38), inset 0 -2px 3px oklch(var(--sui-light-top) / 0.40);
113
+ --sui-elevation-well: inset 0 2px 4px oklch(var(--sui-light-bottom) / 0.60), inset 0 -1px 0 oklch(var(--sui-light-top) / 0.06);
112
114
  --sui-glass-fill: 0.98;
113
115
  --sui-glass-blur: 32px;
114
116
  --sui-glass-saturation: 1.10;
@@ -146,6 +148,7 @@
146
148
  --sui-ink: 0.94 0.008 255;
147
149
  --sui-ink-muted: 0.76 0.014 255;
148
150
  --sui-detail: 0.600 0.014 256;
151
+ --sui-rim: 0.555 0.014 256;
149
152
  --sui-primary: 0.809 0.098 255;
150
153
  --sui-primary-strong: 0.734 0.139 257;
151
154
  --sui-primary-soft: 0.325 0.050 257;
@@ -176,7 +179,7 @@
176
179
  --sui-elevation-control: 0 1px 2px oklch(var(--sui-light-bottom) / 0.30), inset 0 1px 0 oklch(var(--sui-light-top) / 0.08);
177
180
  --sui-elevation-recessed: inset 0 1px 3px oklch(var(--sui-light-bottom) / 0.38), inset 0 -1px 0 oklch(var(--sui-light-top) / 0.06);
178
181
  --sui-elevation-recessed-top: inset 0 5px 8px -5px oklch(var(--sui-light-bottom) / 0.36);
179
- --sui-elevation-well: inset 0 1px 3px oklch(var(--sui-light-bottom) / 0.38), inset 0 -2px 3px oklch(var(--sui-light-top) / 0.40);
182
+ --sui-elevation-well: inset 0 2px 4px oklch(var(--sui-light-bottom) / 0.60), inset 0 -1px 0 oklch(var(--sui-light-top) / 0.06);
180
183
  --sui-glass-fill: 0.98;
181
184
  --sui-glass-blur: 32px;
182
185
  --sui-glass-saturation: 1.10;
@@ -206,6 +209,7 @@
206
209
 
207
210
  :root {
208
211
  --sui-font-mono: ui-monospace, "SF Mono", SFMono-Regular, "Cascadia Code", "JetBrains Mono", Menlo, Consolas, "Liberation Mono", monospace;
212
+ --sui-rim-dashed: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg'%3E%3Crect width='100%25' height='100%25' rx='16' fill='none' stroke='%23000' stroke-width='3' stroke-dasharray='7' stroke-linecap='round'/%3E%3C/svg%3E");
209
213
  --sui-duration-press: 150ms;
210
214
  --sui-duration-release: 200ms;
211
215
  --sui-duration-tactile: 80ms;
@@ -403,6 +407,10 @@
403
407
  margin-left: 1rem;
404
408
  margin-right: 1rem
405
409
  }
410
+ :where(.sui-scope).my-0\.5 {
411
+ margin-top: 0.125rem;
412
+ margin-bottom: 0.125rem
413
+ }
406
414
  :where(.sui-scope).my-1 {
407
415
  margin-top: 0.25rem;
408
416
  margin-bottom: 0.25rem
@@ -537,9 +545,9 @@
537
545
  width: 2.5rem;
538
546
  height: 2.5rem
539
547
  }
540
- :where(.sui-scope).size-2\.5 {
541
- width: 0.625rem;
542
- height: 0.625rem
548
+ :where(.sui-scope).size-2 {
549
+ width: 0.5rem;
550
+ height: 0.5rem
543
551
  }
544
552
  :where(.sui-scope).size-3\.5 {
545
553
  width: 0.875rem;
@@ -575,6 +583,9 @@
575
583
  :where(.sui-scope).h-1\.5 {
576
584
  height: 0.375rem
577
585
  }
586
+ :where(.sui-scope).h-10 {
587
+ height: 2.5rem
588
+ }
578
589
  :where(.sui-scope).h-11 {
579
590
  height: 2.75rem
580
591
  }
@@ -584,6 +595,9 @@
584
595
  :where(.sui-scope).h-32 {
585
596
  height: 8rem
586
597
  }
598
+ :where(.sui-scope).h-48 {
599
+ height: 12rem
600
+ }
587
601
  :where(.sui-scope).h-5 {
588
602
  height: 1.25rem
589
603
  }
@@ -746,6 +760,9 @@
746
760
  :where(.sui-scope).max-w-\[min\(28rem\2c 90vw\)\] {
747
761
  max-width: min(28rem, 90vw)
748
762
  }
763
+ :where(.sui-scope).max-w-\[min\(34rem\2c var\(--available-width\)\)\] {
764
+ max-width: min(34rem, var(--available-width))
765
+ }
749
766
  :where(.sui-scope).max-w-\[var\(--available-width\)\] {
750
767
  max-width: var(--available-width)
751
768
  }
@@ -857,6 +874,10 @@
857
874
  :where(.sui-scope).resize-y {
858
875
  resize: vertical
859
876
  }
877
+ :where(.sui-scope).scroll-py-11 {
878
+ scroll-padding-top: 2.75rem;
879
+ scroll-padding-bottom: 2.75rem
880
+ }
860
881
  :where(.sui-scope).list-decimal {
861
882
  list-style-type: decimal
862
883
  }
@@ -992,8 +1013,8 @@
992
1013
  :where(.sui-scope).rounded {
993
1014
  border-radius: 0.25rem
994
1015
  }
995
- :where(.sui-scope).rounded-\[0\.625rem\] {
996
- border-radius: 0.625rem
1016
+ :where(.sui-scope).rounded-\[0\.375rem\] {
1017
+ border-radius: 0.375rem
997
1018
  }
998
1019
  :where(.sui-scope).rounded-\[0\.75rem\] {
999
1020
  border-radius: 0.75rem
@@ -1035,6 +1056,9 @@
1035
1056
  :where(.sui-scope).border-0 {
1036
1057
  border-width: 0px
1037
1058
  }
1059
+ :where(.sui-scope).border-\[1\.5px\] {
1060
+ border-width: 1.5px
1061
+ }
1038
1062
  :where(.sui-scope).border-b {
1039
1063
  border-bottom-width: 1px
1040
1064
  }
@@ -1050,6 +1074,10 @@
1050
1074
  :where(.sui-scope).border-t {
1051
1075
  border-top-width: 1px
1052
1076
  }
1077
+ :where(.sui-scope).border-sherick-danger {
1078
+ --tw-border-opacity: 1;
1079
+ border-color: oklch(var(--sui-danger) / var(--tw-border-opacity, 1))
1080
+ }
1053
1081
  :where(.sui-scope).border-sherick-detail {
1054
1082
  --tw-border-opacity: 1;
1055
1083
  border-color: oklch(var(--sui-detail) / var(--tw-border-opacity, 1))
@@ -1063,9 +1091,17 @@
1063
1091
  :where(.sui-scope).border-sherick-edge\/\[0\.10\] {
1064
1092
  border-color: oklch(var(--sui-edge) / 0.10)
1065
1093
  }
1094
+ :where(.sui-scope).border-sherick-ink-muted {
1095
+ --tw-border-opacity: 1;
1096
+ border-color: oklch(var(--sui-ink-muted) / var(--tw-border-opacity, 1))
1097
+ }
1066
1098
  :where(.sui-scope).border-sherick-primary\/\[0\.45\] {
1067
1099
  border-color: oklch(var(--sui-primary) / 0.45)
1068
1100
  }
1101
+ :where(.sui-scope).border-sherick-rim {
1102
+ --tw-border-opacity: 1;
1103
+ border-color: oklch(var(--sui-rim) / var(--tw-border-opacity, 1))
1104
+ }
1069
1105
  :where(.sui-scope).border-e-transparent {
1070
1106
  border-inline-end-color: transparent
1071
1107
  }
@@ -1079,6 +1115,9 @@
1079
1115
  :where(.sui-scope).bg-sherick-canvas\/\[0\.28\] {
1080
1116
  background-color: oklch(var(--sui-canvas) / 0.28)
1081
1117
  }
1118
+ :where(.sui-scope).bg-sherick-canvas\/\[0\.7\] {
1119
+ background-color: oklch(var(--sui-canvas) / 0.7)
1120
+ }
1082
1121
  :where(.sui-scope).bg-sherick-danger {
1083
1122
  --tw-bg-opacity: 1;
1084
1123
  background-color: oklch(var(--sui-danger) / var(--tw-bg-opacity, 1))
@@ -1091,12 +1130,6 @@
1091
1130
  --tw-bg-opacity: 1;
1092
1131
  background-color: oklch(var(--sui-danger-soft) / var(--tw-bg-opacity, 1))
1093
1132
  }
1094
- :where(.sui-scope).bg-sherick-danger\/\[0\.075\] {
1095
- background-color: oklch(var(--sui-danger) / 0.075)
1096
- }
1097
- :where(.sui-scope).bg-sherick-danger\/\[0\.13\] {
1098
- background-color: oklch(var(--sui-danger) / 0.13)
1099
- }
1100
1133
  :where(.sui-scope).bg-sherick-detail {
1101
1134
  --tw-bg-opacity: 1;
1102
1135
  background-color: oklch(var(--sui-detail) / var(--tw-bg-opacity, 1))
@@ -1152,18 +1185,12 @@
1152
1185
  :where(.sui-scope).bg-sherick-surface-high\/\[0\.56\] {
1153
1186
  background-color: oklch(var(--sui-surface-high) / 0.56)
1154
1187
  }
1155
- :where(.sui-scope).bg-sherick-surface-high\/\[0\.66\] {
1156
- background-color: oklch(var(--sui-surface-high) / 0.66)
1157
- }
1158
1188
  :where(.sui-scope).bg-sherick-surface-high\/\[0\.72\] {
1159
1189
  background-color: oklch(var(--sui-surface-high) / 0.72)
1160
1190
  }
1161
1191
  :where(.sui-scope).bg-sherick-surface-high\/\[0\.82\] {
1162
1192
  background-color: oklch(var(--sui-surface-high) / 0.82)
1163
1193
  }
1164
- :where(.sui-scope).bg-sherick-surface-high\/\[0\.9\] {
1165
- background-color: oklch(var(--sui-surface-high) / 0.9)
1166
- }
1167
1194
  :where(.sui-scope).bg-sherick-surface-overlay\/\[var\(--sui-overlay-fill\)\] {
1168
1195
  background-color: oklch(var(--sui-surface-overlay) / var(--sui-overlay-fill))
1169
1196
  }
@@ -1302,6 +1329,10 @@
1302
1329
  padding-top: 0.5rem;
1303
1330
  padding-bottom: 0.5rem
1304
1331
  }
1332
+ :where(.sui-scope).py-2\.5 {
1333
+ padding-top: 0.625rem;
1334
+ padding-bottom: 0.625rem
1335
+ }
1305
1336
  :where(.sui-scope).py-3 {
1306
1337
  padding-top: 0.75rem;
1307
1338
  padding-bottom: 0.75rem
@@ -1663,8 +1694,8 @@
1663
1694
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
1664
1695
  transition-duration: 150ms
1665
1696
  }
1666
- :where(.sui-scope).transition-\[background-color\2c color\2c box-shadow\2c opacity\] {
1667
- transition-property: background-color,color,box-shadow,opacity;
1697
+ :where(.sui-scope).transition-\[background-color\2c border-color\2c color\2c box-shadow\2c opacity\] {
1698
+ transition-property: background-color,border-color,color,box-shadow,opacity;
1668
1699
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
1669
1700
  transition-duration: 150ms
1670
1701
  }
@@ -1821,6 +1852,9 @@
1821
1852
  :where(.sui-scope).\[overflow-wrap\:normal\] {
1822
1853
  overflow-wrap: normal
1823
1854
  }
1855
+ :where(.sui-scope).\[scrollbar-width\:thin\] {
1856
+ scrollbar-width: thin
1857
+ }
1824
1858
  :where(.sui-scope).\[transform-origin\:var\(--transform-origin\)\] {
1825
1859
  transform-origin: var(--transform-origin)
1826
1860
  }
@@ -1897,6 +1931,10 @@
1897
1931
  --tw-content: '';
1898
1932
  content: var(--tw-content)
1899
1933
  }
1934
+ :where(.sui-scope).after\:pointer-events-none::after {
1935
+ content: var(--tw-content);
1936
+ pointer-events: none
1937
+ }
1900
1938
  :where(.sui-scope).after\:pointer-events-auto::after {
1901
1939
  content: var(--tw-content);
1902
1940
  pointer-events: auto
@@ -1905,14 +1943,66 @@
1905
1943
  content: var(--tw-content);
1906
1944
  position: absolute
1907
1945
  }
1946
+ :where(.sui-scope).after\:inset-0::after {
1947
+ content: var(--tw-content);
1948
+ inset: 0px
1949
+ }
1908
1950
  :where(.sui-scope).after\:inset-\[min\(0px\2c calc\(\(100\%-2\.75rem\)\/2\)\)\]::after {
1909
1951
  content: var(--tw-content);
1910
1952
  inset: min(0px, calc((100% - 2.75rem) / 2))
1911
1953
  }
1954
+ :where(.sui-scope).after\:box-border::after {
1955
+ content: var(--tw-content);
1956
+ box-sizing: border-box
1957
+ }
1958
+ :where(.sui-scope).after\:rounded-\[inherit\]::after {
1959
+ content: var(--tw-content);
1960
+ border-radius: inherit
1961
+ }
1962
+ :where(.sui-scope).after\:border-\[1\.5px\]::after {
1963
+ content: var(--tw-content);
1964
+ border-width: 1.5px
1965
+ }
1966
+ :where(.sui-scope).after\:border-sherick-rim::after {
1967
+ content: var(--tw-content);
1968
+ --tw-border-opacity: 1;
1969
+ border-color: oklch(var(--sui-rim) / var(--tw-border-opacity, 1))
1970
+ }
1971
+ :where(.sui-scope).after\:bg-sherick-rim::after {
1972
+ content: var(--tw-content);
1973
+ --tw-bg-opacity: 1;
1974
+ background-color: oklch(var(--sui-rim) / var(--tw-bg-opacity, 1))
1975
+ }
1976
+ :where(.sui-scope).after\:transition-\[background-color\2c border-color\2c opacity\]::after {
1977
+ content: var(--tw-content);
1978
+ transition-property: background-color,border-color,opacity;
1979
+ transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
1980
+ transition-duration: 150ms
1981
+ }
1982
+ :where(.sui-scope).after\:duration-press::after {
1983
+ content: var(--tw-content);
1984
+ transition-duration: var(--sui-duration-press)
1985
+ }
1986
+ :where(.sui-scope).after\:ease-press::after {
1987
+ content: var(--tw-content);
1988
+ transition-timing-function: var(--sui-ease-press)
1989
+ }
1912
1990
  :where(.sui-scope).after\:content-\[\'\'\]::after {
1913
1991
  --tw-content: '';
1914
1992
  content: var(--tw-content)
1915
1993
  }
1994
+ :where(.sui-scope).after\:\[mask-image\:var\(--sui-rim-dashed\)\]::after {
1995
+ content: var(--tw-content);
1996
+ mask-image: var(--sui-rim-dashed)
1997
+ }
1998
+ :where(.sui-scope).after\:\[mask-repeat\:no-repeat\]::after {
1999
+ content: var(--tw-content);
2000
+ mask-repeat: no-repeat
2001
+ }
2002
+ :where(.sui-scope).after\:\[mask-size\:100\%_100\%\]::after {
2003
+ content: var(--tw-content);
2004
+ mask-size: 100% 100%
2005
+ }
1916
2006
  :where(.sui-scope).first\:start-1:first-child {
1917
2007
  inset-inline-start: 0.25rem
1918
2008
  }
@@ -1925,15 +2015,16 @@
1925
2015
  :where(.sui-scope).last\:border-b-0:last-child {
1926
2016
  border-bottom-width: 0px
1927
2017
  }
1928
- :where(.sui-scope).hover\:bg-sherick-danger\/\[0\.10\]:hover {
1929
- background-color: oklch(var(--sui-danger) / 0.10)
2018
+ :where(.sui-scope).hover\:border-sherick-ink-muted:hover {
2019
+ --tw-border-opacity: 1;
2020
+ border-color: oklch(var(--sui-ink-muted) / var(--tw-border-opacity, 1))
2021
+ }
2022
+ :where(.sui-scope).hover\:bg-sherick-canvas\/\[0\.85\]:hover {
2023
+ background-color: oklch(var(--sui-canvas) / 0.85)
1930
2024
  }
1931
2025
  :where(.sui-scope).hover\:bg-sherick-ink\/\[0\.05\]:hover {
1932
2026
  background-color: oklch(var(--sui-ink) / 0.05)
1933
2027
  }
1934
- :where(.sui-scope).hover\:bg-sherick-surface-high\/\[0\.82\]:hover {
1935
- background-color: oklch(var(--sui-surface-high) / 0.82)
1936
- }
1937
2028
  :where(.sui-scope).hover\:text-sherick-ink:hover {
1938
2029
  --tw-text-opacity: 1;
1939
2030
  color: oklch(var(--sui-ink) / var(--tw-text-opacity, 1))
@@ -1941,11 +2032,18 @@
1941
2032
  :where(.sui-scope).hover\:decoration-sherick-primary:hover {
1942
2033
  text-decoration-color: oklch(var(--sui-primary) / 1)
1943
2034
  }
1944
- :where(.sui-scope).focus\:bg-sherick-danger\/\[0\.13\]:focus {
1945
- background-color: oklch(var(--sui-danger) / 0.13)
2035
+ :where(.sui-scope).hover\:after\:bg-sherick-ink-muted:hover::after {
2036
+ content: var(--tw-content);
2037
+ --tw-bg-opacity: 1;
2038
+ background-color: oklch(var(--sui-ink-muted) / var(--tw-bg-opacity, 1))
1946
2039
  }
1947
- :where(.sui-scope).focus\:bg-sherick-surface-high\/\[0\.9\]:focus {
1948
- background-color: oklch(var(--sui-surface-high) / 0.9)
2040
+ :where(.sui-scope).focus\:border-sherick-ink-muted:focus {
2041
+ --tw-border-opacity: 1;
2042
+ border-color: oklch(var(--sui-ink-muted) / var(--tw-border-opacity, 1))
2043
+ }
2044
+ :where(.sui-scope).focus\:bg-sherick-canvas:focus {
2045
+ --tw-bg-opacity: 1;
2046
+ background-color: oklch(var(--sui-canvas) / var(--tw-bg-opacity, 1))
1949
2047
  }
1950
2048
  :where(.sui-scope).focus\:outline-none:focus {
1951
2049
  outline: 2px solid transparent;
@@ -2050,6 +2148,20 @@
2050
2148
  content: var(--tw-content);
2051
2149
  transition-timing-function: var(--sui-ease-press)
2052
2150
  }
2151
+ :where(.sui-scope).group:not([data-disabled]):not([data-readonly]):not(:disabled):active :where(.sui-scope).group-\[\:not\(\[data-disabled\]\)\:not\(\[data-readonly\]\)\:not\(\:disabled\)\:active\]\:shadow-sherick-well {
2152
+ --tw-shadow: var(--sui-elevation-well);
2153
+ --tw-shadow-colored: var(--sui-elevation-well);
2154
+ box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow)
2155
+ }
2156
+ :where(.sui-scope).group:not([data-disabled]):not([data-readonly]):not(:disabled):hover :where(.sui-scope).group-\[\:not\(\[data-disabled\]\)\:not\(\[data-readonly\]\)\:not\(\:disabled\)\:hover\]\:before\:opacity-\[0\.09\]::before {
2157
+ content: var(--tw-content);
2158
+ opacity: 0.09
2159
+ }
2160
+ :where(.sui-scope).group:not([data-disabled]):not([data-readonly]):not(:disabled):hover :where(.sui-scope).group-\[\:not\(\[data-disabled\]\)\:not\(\[data-readonly\]\)\:not\(\:disabled\)\:hover\]\:after\:border-sherick-ink-muted::after {
2161
+ content: var(--tw-content);
2162
+ --tw-border-opacity: 1;
2163
+ border-color: oklch(var(--sui-ink-muted) / var(--tw-border-opacity, 1))
2164
+ }
2053
2165
  :where(.sui-scope).group:not([data-disabled]) :where(.sui-scope).group-\[\:not\(\[data-disabled\]\)\]\:hover\:scale-110:hover {
2054
2166
  --tw-scale-x: 1.1;
2055
2167
  --tw-scale-y: 1.1;
@@ -2135,16 +2247,14 @@
2135
2247
  :where(.sui-scope).data-\[orientation\=vertical\]\:items-stretch[data-orientation="vertical"] {
2136
2248
  align-items: stretch
2137
2249
  }
2250
+ :where(.sui-scope).data-\[invalid\]\:border-sherick-danger[data-invalid] {
2251
+ --tw-border-opacity: 1;
2252
+ border-color: oklch(var(--sui-danger) / var(--tw-border-opacity, 1))
2253
+ }
2138
2254
  :where(.sui-scope).data-\[dragging\]\:bg-sherick-primary-strong[data-dragging] {
2139
2255
  --tw-bg-opacity: 1;
2140
2256
  background-color: oklch(var(--sui-primary-strong) / var(--tw-bg-opacity, 1))
2141
2257
  }
2142
- :where(.sui-scope).data-\[invalid\]\:bg-sherick-danger\/\[0\.075\][data-invalid] {
2143
- background-color: oklch(var(--sui-danger) / 0.075)
2144
- }
2145
- :where(.sui-scope).data-\[invalid\]\:bg-sherick-danger\/\[0\.13\][data-invalid] {
2146
- background-color: oklch(var(--sui-danger) / 0.13)
2147
- }
2148
2258
  :where(.sui-scope).data-\[dragging\]\:text-sherick-on-primary[data-dragging] {
2149
2259
  --tw-text-opacity: 1;
2150
2260
  color: oklch(var(--sui-on-primary) / var(--tw-text-opacity, 1))
@@ -2281,8 +2391,14 @@
2281
2391
  content: var(--tw-content);
2282
2392
  opacity: 0.05
2283
2393
  }
2284
- :where(.sui-scope).data-\[invalid\]\:hover\:bg-sherick-danger\/\[0\.10\]:hover[data-invalid] {
2285
- background-color: oklch(var(--sui-danger) / 0.10)
2394
+ :where(.sui-scope).data-\[dragging\]\:after\:bg-sherick-primary[data-dragging]::after {
2395
+ content: var(--tw-content);
2396
+ --tw-bg-opacity: 1;
2397
+ background-color: oklch(var(--sui-primary) / var(--tw-bg-opacity, 1))
2398
+ }
2399
+ :where(.sui-scope).data-\[invalid\]\:hover\:border-sherick-danger:hover[data-invalid] {
2400
+ --tw-border-opacity: 1;
2401
+ border-color: oklch(var(--sui-danger) / var(--tw-border-opacity, 1))
2286
2402
  }
2287
2403
  :where(.sui-scope).group[data-checked] :where(.sui-scope).group-data-\[checked\]\:h-6 {
2288
2404
  height: 1.5rem
@@ -2353,6 +2469,24 @@
2353
2469
  :where(.sui-scope).group\/field[data-disabled] :where(.sui-scope).group-data-\[disabled\]\/field\:opacity-100 {
2354
2470
  opacity: 1
2355
2471
  }
2472
+ :where(.sui-scope).group[data-checked] :where(.sui-scope).group-data-\[checked\]\:shadow-sherick-flat {
2473
+ --tw-shadow: var(--sui-elevation-flat);
2474
+ --tw-shadow-colored: var(--sui-elevation-flat);
2475
+ box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow)
2476
+ }
2477
+ :where(.sui-scope).group[data-indeterminate] :where(.sui-scope).group-data-\[indeterminate\]\:shadow-sherick-flat {
2478
+ --tw-shadow: var(--sui-elevation-flat);
2479
+ --tw-shadow-colored: var(--sui-elevation-flat);
2480
+ box-shadow: var(--tw-ring-offset-shadow, 0 0 #0000), var(--tw-ring-shadow, 0 0 #0000), var(--tw-shadow)
2481
+ }
2482
+ :where(.sui-scope).group[data-checked] :where(.sui-scope).group-data-\[checked\]\:after\:opacity-0::after {
2483
+ content: var(--tw-content);
2484
+ opacity: 0
2485
+ }
2486
+ :where(.sui-scope).group[data-indeterminate] :where(.sui-scope).group-data-\[indeterminate\]\:after\:opacity-0::after {
2487
+ content: var(--tw-content);
2488
+ opacity: 0
2489
+ }
2356
2490
  @media (prefers-reduced-motion: reduce) {
2357
2491
  :where(.sui-scope).motion-reduce\:transform-none {
2358
2492
  transform: none
@@ -2372,6 +2506,10 @@
2372
2506
  content: var(--tw-content);
2373
2507
  transition-property: none
2374
2508
  }
2509
+ :where(.sui-scope).motion-reduce\:after\:transition-none::after {
2510
+ content: var(--tw-content);
2511
+ transition-property: none
2512
+ }
2375
2513
  :where(.sui-scope).group:active :where(.sui-scope).motion-reduce\:group-active\:scale-100 {
2376
2514
  --tw-scale-x: 1;
2377
2515
  --tw-scale-y: 1;
@@ -2395,9 +2533,45 @@
2395
2533
  }
2396
2534
  }
2397
2535
  @media (min-width: 640px) {
2536
+ :where(.sui-scope).sm\:ms-3 {
2537
+ margin-inline-start: 0.75rem
2538
+ }
2539
+ :where(.sui-scope).sm\:mt-0 {
2540
+ margin-top: 0px
2541
+ }
2542
+ :where(.sui-scope).sm\:grid {
2543
+ display: grid
2544
+ }
2545
+ :where(.sui-scope).sm\:h-0 {
2546
+ height: 0px
2547
+ }
2548
+ :where(.sui-scope).sm\:h-auto {
2549
+ height: auto
2550
+ }
2551
+ :where(.sui-scope).sm\:min-h-full {
2552
+ min-height: 100%
2553
+ }
2554
+ :where(.sui-scope).sm\:w-14 {
2555
+ width: 3.5rem
2556
+ }
2398
2557
  :where(.sui-scope).sm\:w-\[22\.5rem\] {
2399
2558
  width: 22.5rem
2400
2559
  }
2560
+ :where(.sui-scope).sm\:flex-1 {
2561
+ flex: 1 1 0%
2562
+ }
2563
+ :where(.sui-scope).sm\:flex-none {
2564
+ flex: none
2565
+ }
2566
+ :where(.sui-scope).sm\:grid-cols-\[auto_auto\] {
2567
+ grid-template-columns: auto auto
2568
+ }
2569
+ :where(.sui-scope).sm\:border-s {
2570
+ border-inline-start-width: 1px
2571
+ }
2572
+ :where(.sui-scope).sm\:border-t-0 {
2573
+ border-top-width: 0px
2574
+ }
2401
2575
  :where(.sui-scope).sm\:p-8 {
2402
2576
  padding: 2rem
2403
2577
  }
@@ -2405,9 +2579,15 @@
2405
2579
  padding-left: 1.75rem;
2406
2580
  padding-right: 1.75rem
2407
2581
  }
2582
+ :where(.sui-scope).sm\:ps-3 {
2583
+ padding-inline-start: 0.75rem
2584
+ }
2408
2585
  :where(.sui-scope).sm\:ps-7 {
2409
2586
  padding-inline-start: 1.75rem
2410
2587
  }
2588
+ :where(.sui-scope).sm\:pt-0 {
2589
+ padding-top: 0px
2590
+ }
2411
2591
  }
2412
2592
  :where(.sui-scope).rtl\:-scale-x-100:where([dir="rtl"], [dir="rtl"] *) {
2413
2593
  --tw-scale-x: -1;
@@ -2425,11 +2605,17 @@
2425
2605
  outline-style: none
2426
2606
  }
2427
2607
  }
2428
- :where(.sui-scope).\[\&\&\]\:focus-within\:bg-sherick-surface-high\/\[0\.9\]:focus-within.\[\&\&\]\:focus-within\:bg-sherick-surface-high\/\[0\.9\]:focus-within {
2429
- background-color: oklch(var(--sui-surface-high) / 0.9)
2608
+ :where(.sui-scope).\[\&\&\]\:focus-within\:border-sherick-ink-muted:focus-within.\[\&\&\]\:focus-within\:border-sherick-ink-muted:focus-within {
2609
+ --tw-border-opacity: 1;
2610
+ border-color: oklch(var(--sui-ink-muted) / var(--tw-border-opacity, 1))
2430
2611
  }
2431
- :where(.sui-scope).\[\&\&\]\:data-\[invalid\]\:focus-within\:bg-sherick-danger\/\[0\.13\]:focus-within[data-invalid].\[\&\&\]\:data-\[invalid\]\:focus-within\:bg-sherick-danger\/\[0\.13\]:focus-within[data-invalid] {
2432
- background-color: oklch(var(--sui-danger) / 0.13)
2612
+ :where(.sui-scope).\[\&\&\]\:focus-within\:bg-sherick-canvas:focus-within.\[\&\&\]\:focus-within\:bg-sherick-canvas:focus-within {
2613
+ --tw-bg-opacity: 1;
2614
+ background-color: oklch(var(--sui-canvas) / var(--tw-bg-opacity, 1))
2615
+ }
2616
+ :where(.sui-scope).\[\&\&\]\:data-\[invalid\]\:focus-within\:border-sherick-danger:focus-within[data-invalid].\[\&\&\]\:data-\[invalid\]\:focus-within\:border-sherick-danger:focus-within[data-invalid] {
2617
+ --tw-border-opacity: 1;
2618
+ border-color: oklch(var(--sui-danger) / var(--tw-border-opacity, 1))
2433
2619
  }
2434
2620
  :where(.sui-scope).\[\&\:has\(\+div\:not\(\[data-open\]\)\:hover\)\]\:opacity-0:has(+div:not([data-open]):hover) {
2435
2621
  opacity: 0
@@ -2604,13 +2790,12 @@ div:not([data-open]):hover+:where(.sui-scope).\[div\:not\(\[data-open\]\)\:hover
2604
2790
  outline-offset: -2px;
2605
2791
  }
2606
2792
 
2607
- /* A *resting* mark is identified by the depth of its well, which forced colors flattens, so an
2608
- unchecked box and an unselected radio need a boundary of their own. It is CanvasText rather
2609
- than Highlight: this is component identity, not selection. */
2610
- :where(.sui-scope)[role="checkbox"][aria-checked="false"]:not(:focus-visible),
2793
+ /* A *resting* mark keeps its own rim, a real border that forced colors repaints in a system
2794
+ colour, so an unchecked box and an unselected radio need no extra boundary — and a radio's
2795
+ transparent utility outline, which forced colors would make opaque, must not become a second
2796
+ ring around that rim. */
2611
2797
  :where(.sui-scope)[role="radio"][aria-checked="false"]:not(:focus-visible) {
2612
- outline: 1px solid CanvasText;
2613
- outline-offset: -2px;
2798
+ outline: none;
2614
2799
  }
2615
2800
 
2616
2801
  /* A slider conveys its value through the fill of its groove and the depth of its handle, and
@@ -2620,6 +2805,21 @@ div:not([data-open]):hover+:where(.sui-scope).\[div\:not\(\[data-open\]\)\:hover
2620
2805
  border: 1px solid CanvasText;
2621
2806
  }
2622
2807
 
2808
+ /* A drop target's dashes are a masked fill, and forced colors would flatten that fill into the
2809
+ page. They keep a system colour, so the target still shows its boundary. */
2810
+ :where(.sui-scope)[data-sui-drop-target]::after {
2811
+ forced-color-adjust: none;
2812
+ background-color: CanvasText;
2813
+ }
2814
+
2815
+ /* A selected radio's thumb is a fill, and forced colors flattens it into its socket. It keeps a
2816
+ system colour of its own, so selection is a shape and not only the colour of the outline
2817
+ around the control. */
2818
+ :where(.sui-scope)[role="radio"][aria-checked="true"] :where(.sui-scope)[data-sui-radio-dot] {
2819
+ forced-color-adjust: none;
2820
+ background-color: Highlight;
2821
+ }
2822
+
2623
2823
  /* A progress bar says how far along the work is through the fill of its track alone, and
2624
2824
  forced colors flattens the fill into the track. The indicator carries a Sherick-owned marker
2625
2825
  for the same reason the slider thumb does: a primitive's own attributes are not component
package/dist/theme.css CHANGED
@@ -11,6 +11,7 @@
11
11
  --sui-ink: 0.245 0.018 260;
12
12
  --sui-ink-muted: 0.480 0.018 260;
13
13
  --sui-detail: 0.600 0.016 258;
14
+ --sui-rim: 0.630 0.016 258;
14
15
  --sui-primary: 0.422 0.139 255;
15
16
  --sui-primary-strong: 0.402 0.143 257;
16
17
  --sui-primary-soft: 0.920 0.035 255;
@@ -41,7 +42,7 @@
41
42
  --sui-elevation-control: 0 1px 2px oklch(var(--sui-light-bottom) / 0.19), inset 0 1px 0 oklch(var(--sui-light-top) / 0.55);
42
43
  --sui-elevation-recessed: inset 0 1px 3px oklch(var(--sui-light-bottom) / 0.22), inset 0 -1px 0 oklch(var(--sui-light-top) / 0.50);
43
44
  --sui-elevation-recessed-top: inset 0 5px 8px -5px oklch(var(--sui-light-bottom) / 0.21);
44
- --sui-elevation-well: inset 0 3px 4px oklch(var(--sui-light-bottom) / 0.62), inset 0 -1px 0 oklch(var(--sui-light-top) / 0.50);
45
+ --sui-elevation-well: inset 0 2px 4px oklch(var(--sui-light-bottom) / 0.40), inset 0 -1px 0 oklch(var(--sui-light-top) / 0.50);
45
46
  --sui-glass-fill: 0.98;
46
47
  --sui-glass-blur: 28px;
47
48
  --sui-glass-saturation: 1.06;
@@ -78,6 +79,7 @@
78
79
  --sui-ink: 0.94 0.008 255;
79
80
  --sui-ink-muted: 0.76 0.014 255;
80
81
  --sui-detail: 0.600 0.014 256;
82
+ --sui-rim: 0.555 0.014 256;
81
83
  --sui-primary: 0.809 0.098 255;
82
84
  --sui-primary-strong: 0.734 0.139 257;
83
85
  --sui-primary-soft: 0.325 0.050 257;
@@ -108,7 +110,7 @@
108
110
  --sui-elevation-control: 0 1px 2px oklch(var(--sui-light-bottom) / 0.30), inset 0 1px 0 oklch(var(--sui-light-top) / 0.08);
109
111
  --sui-elevation-recessed: inset 0 1px 3px oklch(var(--sui-light-bottom) / 0.38), inset 0 -1px 0 oklch(var(--sui-light-top) / 0.06);
110
112
  --sui-elevation-recessed-top: inset 0 5px 8px -5px oklch(var(--sui-light-bottom) / 0.36);
111
- --sui-elevation-well: inset 0 1px 3px oklch(var(--sui-light-bottom) / 0.38), inset 0 -2px 3px oklch(var(--sui-light-top) / 0.40);
113
+ --sui-elevation-well: inset 0 2px 4px oklch(var(--sui-light-bottom) / 0.60), inset 0 -1px 0 oklch(var(--sui-light-top) / 0.06);
112
114
  --sui-glass-fill: 0.98;
113
115
  --sui-glass-blur: 32px;
114
116
  --sui-glass-saturation: 1.10;
@@ -146,6 +148,7 @@
146
148
  --sui-ink: 0.94 0.008 255;
147
149
  --sui-ink-muted: 0.76 0.014 255;
148
150
  --sui-detail: 0.600 0.014 256;
151
+ --sui-rim: 0.555 0.014 256;
149
152
  --sui-primary: 0.809 0.098 255;
150
153
  --sui-primary-strong: 0.734 0.139 257;
151
154
  --sui-primary-soft: 0.325 0.050 257;
@@ -176,7 +179,7 @@
176
179
  --sui-elevation-control: 0 1px 2px oklch(var(--sui-light-bottom) / 0.30), inset 0 1px 0 oklch(var(--sui-light-top) / 0.08);
177
180
  --sui-elevation-recessed: inset 0 1px 3px oklch(var(--sui-light-bottom) / 0.38), inset 0 -1px 0 oklch(var(--sui-light-top) / 0.06);
178
181
  --sui-elevation-recessed-top: inset 0 5px 8px -5px oklch(var(--sui-light-bottom) / 0.36);
179
- --sui-elevation-well: inset 0 1px 3px oklch(var(--sui-light-bottom) / 0.38), inset 0 -2px 3px oklch(var(--sui-light-top) / 0.40);
182
+ --sui-elevation-well: inset 0 2px 4px oklch(var(--sui-light-bottom) / 0.60), inset 0 -1px 0 oklch(var(--sui-light-top) / 0.06);
180
183
  --sui-glass-fill: 0.98;
181
184
  --sui-glass-blur: 32px;
182
185
  --sui-glass-saturation: 1.10;
@@ -206,6 +209,7 @@
206
209
 
207
210
  :root {
208
211
  --sui-font-mono: ui-monospace, "SF Mono", SFMono-Regular, "Cascadia Code", "JetBrains Mono", Menlo, Consolas, "Liberation Mono", monospace;
212
+ --sui-rim-dashed: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg'%3E%3Crect width='100%25' height='100%25' rx='16' fill='none' stroke='%23000' stroke-width='3' stroke-dasharray='7' stroke-linecap='round'/%3E%3C/svg%3E");
209
213
  --sui-duration-press: 150ms;
210
214
  --sui-duration-release: 200ms;
211
215
  --sui-duration-tactile: 80ms;