@oscarpalmer/oui 0.37.0 → 0.38.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 (96) hide show
  1. package/dist/css/a11y.css +1 -0
  2. package/dist/css/badge.css +1 -0
  3. package/dist/css/button.css +5 -0
  4. package/dist/css/color-picker.css +377 -0
  5. package/dist/css/color.css +0 -1
  6. package/dist/css/combobox.css +7 -0
  7. package/dist/css/content.css +1 -0
  8. package/dist/css/floatable.css +2 -0
  9. package/dist/css/form.css +7 -0
  10. package/dist/css/listbox.css +2 -0
  11. package/dist/css/message.css +2 -0
  12. package/dist/css/mixins/badge.mixins.css +2 -0
  13. package/dist/css/mixins/button.mixins.css +2 -0
  14. package/dist/css/mixins/message.mixins.css +1 -0
  15. package/dist/css/mixins/misc.mixins.css +2 -0
  16. package/dist/css/mixins/shadow.mixins.css +1 -0
  17. package/dist/css/reset.css +2 -2
  18. package/dist/css/splitter.css +1 -1
  19. package/dist/css/tabs.css +21 -21
  20. package/dist/js/color-picker.d.mts +213 -0
  21. package/dist/js/color-picker.mjs +924 -0
  22. package/dist/js/combobox/dom.combobox.mjs +8 -4
  23. package/dist/js/combobox/event.combobox.mjs +1 -1
  24. package/dist/js/combobox/index.d.mts +1 -1
  25. package/dist/js/combobox/index.mjs +56 -2
  26. package/dist/js/combobox/misc.combobox.d.mts +1 -1
  27. package/dist/js/combobox/misc.combobox.mjs +1 -1
  28. package/dist/js/combobox/state.combobox.d.mts +1 -1
  29. package/dist/js/combobox/state.combobox.mjs +1 -1
  30. package/dist/js/dialog.mjs +2 -2
  31. package/dist/js/floatable/floatable.embedded.mjs +13 -10
  32. package/dist/js/focus-trap/focus-trap.embedded.mjs +3 -3
  33. package/dist/js/{index-EfkUSals.d.mts → index-DJdFlTLm.d.mts} +39 -1
  34. package/dist/js/index.d.mts +3 -2
  35. package/dist/js/index.mjs +4 -3
  36. package/dist/js/internal/draggable.mjs +4 -4
  37. package/dist/js/internal/listbox/listbox.data.mjs +1 -1
  38. package/dist/js/internal/listbox/listbox.dom.mjs +1 -1
  39. package/dist/js/internal/listbox/listbox.event.mjs +1 -1
  40. package/dist/js/internal/listbox/listbox.form.mjs +16 -15
  41. package/dist/js/internal/listbox/listbox.misc.mjs +1 -1
  42. package/dist/js/internal/listbox/listbox.state.mjs +3 -3
  43. package/dist/js/internal/navigable.mjs +4 -3
  44. package/dist/js/listbox/event.listbox.mjs +1 -1
  45. package/dist/js/listbox/index.d.mts +38 -0
  46. package/dist/js/listbox/index.mjs +56 -2
  47. package/dist/js/listbox/misc.listbox.mjs +1 -1
  48. package/dist/js/listbox/state.listbox.mjs +1 -1
  49. package/dist/js/{listbox.data-BWd0PCy7.mjs → listbox.data-C7CRa5Ya.mjs} +5 -4
  50. package/dist/js/menu.mjs +1 -1
  51. package/dist/js/{misc.listbox-BI-XsTOf.mjs → misc.listbox-Cyz2CRDy.mjs} +2 -3
  52. package/dist/js/movable/movable.embedded.mjs +2 -2
  53. package/dist/js/popover.mjs +2 -2
  54. package/dist/js/resizable/resizable.embedded.mjs +5 -5
  55. package/dist/js/sortable/sortable.embedded.mjs +4 -4
  56. package/dist/js/splitter.mjs +6 -6
  57. package/dist/js/{state.combobox-4xq0FPCF.mjs → state.combobox-Qm3FWzYW.mjs} +3 -3
  58. package/dist/js/tabs.mjs +4 -7
  59. package/dist/js/tooltip.mjs +3 -3
  60. package/package.json +7 -5
  61. package/src/css/a11y.scss +2 -2
  62. package/src/css/badge.scss +8 -8
  63. package/src/css/button.scss +8 -8
  64. package/src/css/color-picker.scss +344 -0
  65. package/src/css/color.scss +0 -2
  66. package/src/css/combobox.scss +12 -9
  67. package/src/css/content.scss +11 -10
  68. package/src/css/floatable.scss +6 -3
  69. package/src/css/form.scss +12 -10
  70. package/src/css/listbox.scss +4 -3
  71. package/src/css/message.scss +9 -8
  72. package/src/css/mixins/badge.mixins.scss +53 -0
  73. package/src/css/mixins/button.mixins.scss +112 -0
  74. package/src/css/mixins/input.mixins.scss +114 -0
  75. package/src/css/mixins/message.mixins.scss +41 -0
  76. package/src/css/mixins/misc.mixins.scss +48 -0
  77. package/src/css/mixins/shadow.mixins.scss +57 -0
  78. package/src/css/reset.scss +2 -2
  79. package/src/css/splitter.scss +1 -1
  80. package/src/css/tabs.scss +20 -31
  81. package/src/js/color-picker.ts +1653 -0
  82. package/src/js/combobox/dom.combobox.ts +4 -0
  83. package/src/js/combobox/index.ts +63 -1
  84. package/src/js/dialog.ts +1 -1
  85. package/src/js/floatable/floatable.embedded.ts +18 -14
  86. package/src/js/index.ts +1 -0
  87. package/src/js/internal/listbox/listbox.dom.ts +2 -1
  88. package/src/js/internal/listbox/listbox.form.ts +31 -21
  89. package/src/js/internal/listbox/listbox.state.ts +2 -2
  90. package/src/js/internal/navigable.ts +2 -0
  91. package/src/js/listbox/index.ts +62 -0
  92. package/src/js/listbox/state.listbox.ts +0 -2
  93. package/src/js/popover.ts +1 -1
  94. package/src/js/tabs.ts +4 -10
  95. package/src/css/mixins.scss +0 -419
  96. /package/dist/css/{mixins.css → mixins/input.mixins.css} +0 -0
package/dist/css/a11y.css CHANGED
@@ -1,5 +1,6 @@
1
1
  /*! https://github.com/oscarpalmer/oui */
2
2
 
3
+
3
4
  :where(.oui-vh) {
4
5
  position: absolute !important;
5
6
  }
@@ -1,5 +1,6 @@
1
1
  /*! https://github.com/oscarpalmer/oui */
2
2
 
3
+
3
4
  :where(.oui-pill, .oui-tag) {
4
5
  --oui-shadow-inset: color-mix(in oklab, var(--oui-absolute), transparent 50%);
5
6
  --oui-shadow-value: var(--oui-gray-6);
@@ -1,5 +1,6 @@
1
1
  /*! https://github.com/oscarpalmer/oui */
2
2
 
3
+
3
4
  :where(.oui-button) {
4
5
  --oui-background-percentage: 25%;
5
6
  --oui-background-value: var(--oui-gray-2);
@@ -41,6 +42,10 @@
41
42
  }
42
43
  :where(.oui-button):not([disabled], [aria-disabled=true i]):active {
43
44
  box-shadow: 0 0 0 1px var(--oui-shadow-value), inset 0 1px 2px 0 var(--oui-shadow-value), inset 0 2px 4px 0 var(--oui-shadow-value);
45
+ scale: 0.95;
46
+ }
47
+ :where(.oui-button):not([disabled], [aria-disabled=true i]):active[aria-pressed=true i], :where(.oui-button):not([disabled], [aria-disabled=true i]):active[aria-selected=true i] {
48
+ scale: 1;
44
49
  }
45
50
  :where(.oui-button)[disabled], :where(.oui-button)[aria-disabled=true i] {
46
51
  --oui-background-percentage: 80%;
@@ -0,0 +1,377 @@
1
+ @charset "UTF-8";
2
+ /*! https://github.com/oscarpalmer/oui */
3
+
4
+
5
+
6
+
7
+ :where(oui-color-picker) {
8
+ outline: none;
9
+ }
10
+
11
+ :where(oui-color-picker[inline] [oui-color-picker-content],
12
+ [oui-color-picker-content]:popover-open) {
13
+ display: flex !important;
14
+ flex-flow: column nowrap;
15
+ }
16
+
17
+ :where(oui-color-picker[inline] [oui-color-picker-content],
18
+ [oui-color-picker-hue],
19
+ [oui-color-picker-opacity]) {
20
+ margin: 1em 0 0;
21
+ }
22
+
23
+ :where([oui-color-picker-anchor]) {
24
+ display: flex;
25
+ flex-flow: row nowrap;
26
+ align-items: stretch;
27
+ }
28
+ :where([oui-color-picker-anchor] *) {
29
+ position: relative;
30
+ }
31
+ :where([oui-color-picker-anchor] *:focus) {
32
+ z-index: 1;
33
+ }
34
+ @media (hover: hover) {
35
+ :where([oui-color-picker-anchor] *:hover) {
36
+ z-index: 1;
37
+ }
38
+ }
39
+
40
+ :where([oui-color-picker-button]) {
41
+ --oui-background-percentage: 25%;
42
+ --oui-background-value: var(--oui-gray-2);
43
+ --oui-foreground-percentage: 0%;
44
+ --oui-foreground-value: var(--oui-gray-8);
45
+ --oui-outline-percentage: 100%;
46
+ --oui-outline-value: var(--oui-gray-6);
47
+ --oui-shadow-inset: color-mix(in oklab, var(--oui-absolute), transparent 75%);
48
+ --oui-shadow-percentage: 82.5%;
49
+ --oui-shadow-value: color-mix(
50
+ in oklab,
51
+ var(--oui-outline-value),
52
+ transparent var(--oui-shadow-percentage)
53
+ );
54
+ box-shadow: inset 0 1px 0 0 var(--oui-shadow-inset), 0 0 0 1px var(--oui-shadow-value), 0 1px 2px -0.5px var(--oui-shadow-value), 0 2px 4px -1px var(--oui-shadow-value), 0 4px 8px -2px var(--oui-shadow-value);
55
+ padding: 0.5em 0.75em;
56
+ display: inline-flex;
57
+ flex-flow: row wrap;
58
+ gap: 0.75em;
59
+ align-items: center;
60
+ border-radius: 0.25em;
61
+ background-color: color-mix(in oklab, var(--oui-background-value), transparent var(--oui-background-percentage));
62
+ outline: 4px solid color-mix(in oklab, var(--oui-outline-value), transparent var(--oui-outline-percentage));
63
+ border: none;
64
+ color: color-mix(in oklab, var(--oui-foreground-value), transparent var(--oui-foreground-percentage));
65
+ line-height: 1.25;
66
+ transition: 0.125s ease-in-out;
67
+ transition-property: background, outline, box-shadow, color;
68
+ }
69
+ :where([oui-color-picker-button]):focus-visible {
70
+ --oui-outline-percentage: 75%;
71
+ }
72
+ @media (hover: hover) {
73
+ :where([oui-color-picker-button]):not([disabled], [aria-disabled=true i]):hover {
74
+ --oui-background-percentage: 50%;
75
+ --oui-foreground-percentage: 25%;
76
+ --oui-shadow-percentage: 90%;
77
+ }
78
+ }
79
+ :where([oui-color-picker-button]):not([disabled], [aria-disabled=true i]):active {
80
+ box-shadow: 0 0 0 1px var(--oui-shadow-value), inset 0 1px 2px 0 var(--oui-shadow-value), inset 0 2px 4px 0 var(--oui-shadow-value);
81
+ scale: 0.95;
82
+ }
83
+ :where([oui-color-picker-button]):not([disabled], [aria-disabled=true i]):active[aria-pressed=true i], :where([oui-color-picker-button]):not([disabled], [aria-disabled=true i]):active[aria-selected=true i] {
84
+ scale: 1;
85
+ }
86
+ :where([oui-color-picker-button])[disabled], :where([oui-color-picker-button])[aria-disabled=true i] {
87
+ --oui-background-percentage: 80%;
88
+ --oui-foreground-percentage: 25%;
89
+ --oui-shadow-percentage: 92.5%;
90
+ font-style: italic;
91
+ }
92
+ :where([oui-color-picker-button]) {
93
+ box-shadow: inset 0 1px 0 0 transparent, 0 0 0 1px var(--oui-shadow-value), 0 1px 2px -0.5px var(--oui-shadow-value), 0 2px 4px -1px var(--oui-shadow-value);
94
+ --oui-background-value: var(--oui-color-picker-hex);
95
+ --oui-outline-value: var(--oui-gray-6);
96
+ width: 2.5em;
97
+ margin: 1px 0;
98
+ border: 2px solid var(--oui-absolute);
99
+ border-top-left-radius: 0;
100
+ border-bottom-left-radius: 0;
101
+ position: relative;
102
+ }
103
+ :where([oui-color-picker-button])::after {
104
+ display: none;
105
+ color: var(--oui-color-picker-foreground);
106
+ font-size: 8px;
107
+ position: absolute;
108
+ inset: 50% auto auto 50%;
109
+ transform: translate3d(-50%, -50%, 0);
110
+ }
111
+ :where([oui-color-picker-button])[aria-expanded=false i]::after {
112
+ content: "▶";
113
+ display: inline-flex;
114
+ }
115
+ :where([oui-color-picker-button])[aria-expanded=true i]::after {
116
+ content: "▼";
117
+ display: inline-flex;
118
+ }
119
+ :where([oui-color-picker-button]:active) {
120
+ scale: 1;
121
+ }
122
+
123
+ :where([oui-color-picker-content][popover]) {
124
+ --margin-bottom: 0.5em;
125
+ --margin-left: 0.5em;
126
+ --margin-right: 0.5em;
127
+ --margin-top: 0.5em;
128
+ inset-block: var(--margin-top) var(--margin-bottom);
129
+ inset-inline: var(--margin-left) var(--margin-right);
130
+ }
131
+ :where([oui-color-picker-content][popover])[oui-position$=bottom i] {
132
+ --margin-bottom: 0;
133
+ }
134
+ :where([oui-color-picker-content][popover])[oui-position$=end i] {
135
+ --margin-right: 0;
136
+ }
137
+ :where([oui-color-picker-content][popover])[oui-position$=start i] {
138
+ --margin-left: 0;
139
+ }
140
+ :where([oui-color-picker-content][popover])[oui-position$=top i] {
141
+ --margin-top: 0;
142
+ }
143
+ :where([oui-color-picker-content][popover]) {
144
+ box-shadow: inset 0 1px 0 0 transparent, 0 0 0 1px rgba(0, 0, 0, 0.05), 0 1px 2px -0.5px rgba(0, 0, 0, 0.05), 0 2px 4px -1px rgba(0, 0, 0, 0.05), 0 4px 8px -2px rgba(0, 0, 0, 0.05), 0 8px 16px -4px rgba(0, 0, 0, 0.05), 0 16px 32px -8px rgba(0, 0, 0, 0.05), 0 32px 64px -16px rgba(0, 0, 0, 0.05), 0 64px 128px -32px rgba(0, 0, 0, 0.05);
145
+ min-width: anchor-size(width);
146
+ border-radius: 0.25em;
147
+ }
148
+ :where([oui-color-picker-content][popover]:not(:has(> [oui-color-picker-opacity]))) {
149
+ border-radius: 0.25em 0.25em 0.75em 0.75em;
150
+ }
151
+ [oui-color-picker-content][popover] :where([oui-color-picker-content],
152
+ [oui-color-picker-hue],
153
+ [oui-color-picker-opacity],
154
+ [oui-color-picker-well]) {
155
+ margin: 1em 1em 0;
156
+ }
157
+ :where([oui-color-picker-content][popover] > :last-child) {
158
+ margin-bottom: 1em !important;
159
+ }
160
+
161
+ :where([oui-color-picker-hue], [oui-color-picker-opacity]) {
162
+ position: relative;
163
+ }
164
+
165
+ :where([oui-color-picker-hue-input], [oui-color-picker-opacity-input]) {
166
+ opacity: 0;
167
+ position: absolute;
168
+ inset: -0.25em -0.75em;
169
+ z-index: 1;
170
+ }
171
+
172
+ :where([oui-color-picker-hue-label], [oui-color-picker-opacity-label]) {
173
+ display: none;
174
+ }
175
+
176
+ :where([oui-color-picker-hue-knob]),
177
+ :where([oui-color-picker-hue-track]),
178
+ :where([oui-color-picker-opacity-knob]),
179
+ :where([oui-color-picker-opacity-track]),
180
+ :where([oui-color-picker-well-knob]) {
181
+ --oui-outline-percentage: 100%;
182
+ --oui-outline-value: var(--oui-blue-6);
183
+ outline: 4px solid color-mix(in oklab, var(--oui-outline-value), transparent var(--oui-outline-percentage));
184
+ transition: outline 0.125s ease-in-out;
185
+ }
186
+
187
+ :where([oui-color-picker-hue-knob]),
188
+ :where([oui-color-picker-opacity-knob]),
189
+ :where([oui-color-picker-well-knob]) {
190
+ box-shadow: inset 0 1px 0 0 transparent, 0 0 0 1px rgba(0, 0, 0, 0.0625), 0 1px 2px -0.5px rgba(0, 0, 0, 0.0625), 0 2px 4px -1px rgba(0, 0, 0, 0.0625), 0 4px 8px -2px rgba(0, 0, 0, 0.0625), 0 8px 16px -4px rgba(0, 0, 0, 0.0625), 0 16px 32px -8px rgba(0, 0, 0, 0.0625), 0 32px 64px -16px rgba(0, 0, 0, 0.0625), 0 64px 128px -32px rgba(0, 0, 0, 0.0625);
191
+ width: 1.5em;
192
+ height: 1.5em;
193
+ border: 0.3333em solid var(--oui-absolute);
194
+ border-radius: 1.5em;
195
+ position: absolute;
196
+ z-index: 1;
197
+ }
198
+
199
+ :where([oui-color-picker-hue-knob]),
200
+ :where([oui-color-picker-well-knob]) {
201
+ background-color: var(--oui-color-picker-hex);
202
+ }
203
+
204
+ :where([oui-color-picker-hue-knob]),
205
+ :where([oui-color-picker-opacity-knob]) {
206
+ transform: translate3d(-50%, -0.25em, 0);
207
+ }
208
+
209
+ :where([oui-color-picker-hue-knob]) {
210
+ inset: 0 0 0 calc(var(--oui-color-picker-hue) / 360 * 100%);
211
+ pointer-events: none;
212
+ }
213
+
214
+ :where([oui-color-picker-hue-track]),
215
+ :where([oui-color-picker-opacity-track]),
216
+ :where([oui-color-picker-well]) {
217
+ box-shadow: inset 0 0 0 1px rgba(0, 0, 0, 0.05), inset 0 1px 2px -0.5px rgba(0, 0, 0, 0.05), inset 0 2px 4px -1px rgba(0, 0, 0, 0.05), inset 0 4px 8px -2px rgba(0, 0, 0, 0.05);
218
+ }
219
+
220
+ :where([oui-color-picker-hue-track]),
221
+ :where([oui-color-picker-opacity-track]) {
222
+ height: 1em;
223
+ border: 1px solid transparent;
224
+ border-radius: 1em;
225
+ pointer-events: none;
226
+ }
227
+
228
+ :where([oui-color-picker-hue-track]) {
229
+ background-image: linear-gradient(to right, hsl(0, 100%, 50%) 0%, hsl(60, 100%, 50%) 16.6667%, hsl(120, 100%, 50%) 33.3333%, hsl(180, 100%, 50%) 50%, hsl(240, 100%, 50%) 66.6667%, hsl(300, 100%, 50%) 83.3333%, hsl(0, 100%, 50%) 100%);
230
+ }
231
+
232
+ :where([oui-color-picker-hue-input]:focus-visible + [oui-color-picker-hue-track], [oui-color-picker-hue-input]:focus-visible + [oui-color-picker-hue-track] [oui-color-picker-hue-knob], [oui-color-picker-hue-input]:focus-visible + [oui-color-picker-hue-track] [oui-color-picker-opacity-knob],
233
+ [oui-color-picker-opacity-input]:focus-visible + [oui-color-picker-opacity-track],
234
+ [oui-color-picker-opacity-input]:focus-visible + [oui-color-picker-opacity-track] [oui-color-picker-hue-knob],
235
+ [oui-color-picker-opacity-input]:focus-visible + [oui-color-picker-opacity-track] [oui-color-picker-opacity-knob]) {
236
+ --oui-outline-percentage: 75%;
237
+ }
238
+ :where([oui-color-picker-hue-input]:focus-visible + [oui-color-picker-hue-track],
239
+ [oui-color-picker-opacity-input]:focus-visible + [oui-color-picker-opacity-track]) {
240
+ border-color: var(--oui-absolute);
241
+ }
242
+
243
+ :where([oui-color-picker-input]) {
244
+ --oui-outline-percentage: 100%;
245
+ --oui-outline-value: var(--oui-blue-6);
246
+ outline: 4px solid color-mix(in oklab, var(--oui-outline-value), transparent var(--oui-outline-percentage));
247
+ outline-offset: 0;
248
+ --oui-background-percentage: 0%;
249
+ --oui-foreground-percentage: 0%;
250
+ align-content: center;
251
+ background-color: color-mix(in oklab, var(--oui-background-value), transparent var(--oui-background-percentage));
252
+ border: 1px solid var(--oui-border-value, var(--oui-gray-3));
253
+ box-shadow: inset 0 2px 4px -1px var(--oui-gray-3);
254
+ color: color-mix(in oklab, var(--oui-foreground-value, inherit), transparent var(--oui-foreground-percentage));
255
+ -webkit-text-fill-color: color-mix(in oklab, var(--oui-foreground-value, inherit), transparent var(--oui-foreground-percentage));
256
+ transition: 0.125s ease-in-out;
257
+ transition-property: background, outline, border, box-shadow, color;
258
+ }
259
+ :where([oui-color-picker-input]).oui-validate:not([disabled],
260
+ [readonly],
261
+ [aria-disabled=true i],
262
+ [aria-readonly=true i],
263
+ :focus-visible,
264
+ :focus-within):is(:user-invalid:not([aria-invalid=false i]), [aria-invalid=true i]) {
265
+ --oui-border-value: var(--oui-red-5);
266
+ --oui-foreground-value: var(--oui-red-9);
267
+ --oui-outline-percentage: 82.5%;
268
+ --oui-outline-value: var(--oui-red-6);
269
+ }
270
+ :where([oui-color-picker-input]).oui-validate:not([disabled],
271
+ [readonly],
272
+ [aria-disabled=true i],
273
+ [aria-readonly=true i],
274
+ :focus-visible,
275
+ :focus-within):is(:user-valid:not([aria-invalid=true i]), [aria-invalid=false i]) {
276
+ --oui-border-value: var(--oui-green-5);
277
+ --oui-foreground-value: var(--oui-green-9);
278
+ --oui-outline-percentage: 82.5%;
279
+ --oui-outline-value: var(--oui-green-6);
280
+ }
281
+ :where([oui-color-picker-input]):not([disabled], [readonly], [aria-disabled=true i], [aria-readonly=true i]):focus-visible, :where([oui-color-picker-input]):not([disabled], [readonly], [aria-disabled=true i], [aria-readonly=true i]):focus-within {
282
+ --oui-border-value: var(--oui-blue-5);
283
+ --oui-foreground-value: inherit;
284
+ --oui-outline-percentage: 75%;
285
+ --oui-outline-value: var(--oui-blue-6);
286
+ }
287
+ @media (hover: hover) {
288
+ :where([oui-color-picker-input]):not([disabled], [readonly], [aria-disabled=true i], [aria-readonly=true i]):hover {
289
+ --oui-border-value: var(--oui-blue-4);
290
+ --oui-foreground-percentage: 0%;
291
+ --oui-foreground-value: inherit;
292
+ --oui-outline-percentage: 90%;
293
+ --oui-outline-value: var(--oui-blue-6);
294
+ }
295
+ }
296
+ :where([oui-color-picker-input]):is([disabled], [readonly], [aria-disabled=true i], [aria-readonly=true i]) {
297
+ --oui-foreground-percentage: 25%;
298
+ font-style: italic;
299
+ }
300
+ :where([oui-color-picker-input]):is([disabled], [readonly], [aria-disabled=true i], [aria-readonly=true i]):focus-visible {
301
+ --oui-outline-percentage: 75%;
302
+ }
303
+ :where([oui-color-picker-input]):is([disabled], [aria-disabled=true i]) {
304
+ --oui-background-percentage: 50%;
305
+ }
306
+ :where([oui-color-picker-input]) {
307
+ --oui-background-value: var(--oui-absolute);
308
+ padding: 0.5em 0.75em;
309
+ border-radius: 0.25em;
310
+ font-family: monospace, monospace;
311
+ }
312
+ :where([oui-color-picker-input]:has(+ button)) {
313
+ border-radius: 0.25em 0 0 0.25em;
314
+ }
315
+ :where([oui-color-picker-input]:is([disabled], [aria-disabled=true i])) {
316
+ --oui-background-percentage: 50%;
317
+ }
318
+
319
+ :where([oui-color-picker-opacity-knob]) {
320
+ background-color: var(--oui-absolute);
321
+ background-image: linear-gradient(to right, color-mix(in oklab, var(--oui-color-picker-hex), transparent calc((100 - var(--oui-color-picker-alpha)) * 1%)) 0%, color-mix(in oklab, var(--oui-color-picker-hex), transparent calc((100 - var(--oui-color-picker-alpha)) * 1%)) 100%);
322
+ inset: 0 0 0 calc(var(--oui-color-picker-alpha) * 1%);
323
+ }
324
+
325
+ :where([oui-color-picker-opacity-track]) {
326
+ background-color: var(--oui-absolute);
327
+ background-image: linear-gradient(to right, transparent 0%, hsl(var(--oui-color-picker-hue), 100%, 50%) 100%);
328
+ position: relative;
329
+ }
330
+ :where([oui-color-picker-opacity-track])::after {
331
+ content: "";
332
+ background-image: linear-gradient(45deg, rgba(0, 0, 0, 0.1) 25%, transparent 25%), linear-gradient(135deg, rgba(0, 0, 0, 0.1) 25%, transparent 25%), linear-gradient(45deg, transparent 75%, rgba(0, 0, 0, 0.1) 75%), linear-gradient(135deg, transparent 75%, rgba(0, 0, 0, 0.1) 75%);
333
+ background-size: 0.5em 0.5em;
334
+ background-position: 0 0, 0.25em 0, 0.25em -0.25em, 0 0.25em;
335
+ border-radius: 1em;
336
+ position: absolute;
337
+ inset: 0;
338
+ }
339
+
340
+ :where([oui-color-picker-well]) {
341
+ --oui-outline-percentage: 100%;
342
+ --oui-outline-value: var(--oui-blue-6);
343
+ padding: 100% 0 0;
344
+ background-color: hsl(var(--oui-color-picker-hue), 100%, 50%);
345
+ background-image: linear-gradient(to bottom, hsl(0, 0%, 100%) 0%, hsla(0, 0%, 100%, 0) 50%, hsla(0, 0%, 0%, 0) 50%, hsl(0, 0%, 0%) 100%), linear-gradient(to right, hsl(0, 0%, 50%) 0%, hsla(0, 0%, 50%, 0) 100%);
346
+ outline: 4px solid color-mix(in oklab, var(--oui-outline-value), transparent var(--oui-outline-percentage));
347
+ outline-offset: 4px;
348
+ border-radius: 0.125em;
349
+ position: relative;
350
+ transition: outline 0.125s ease-in-out;
351
+ }
352
+ :where([oui-color-picker-well]:has(:focus-visible)) {
353
+ --oui-outline-percentage: 75%;
354
+ }
355
+ @media (hover: hover) {
356
+ :where([oui-color-picker-well]:hover) {
357
+ --oui-outline-percentage: 75%;
358
+ }
359
+ }
360
+
361
+ :where([oui-color-picker-well-knob]) {
362
+ --oui-outline-value: var(--oui-absolute);
363
+ outline-offset: 2px;
364
+ inset: calc((100 - var(--oui-color-picker-lightness)) * 1%) 0 0 calc(var(--oui-color-picker-saturation) * 1%);
365
+ transform: translate3d(-50%, -50%, 0);
366
+ cursor: move;
367
+ }
368
+ :where([oui-color-picker-well-knob]:focus-visible) {
369
+ --oui-outline-percentage: 33.3333%;
370
+ }
371
+ @media (hover: hover) {
372
+ :where([oui-color-picker-well-knob]:hover) {
373
+ --oui-outline-percentage: 33.3333%;
374
+ }
375
+ }
376
+
377
+
@@ -1,5 +1,4 @@
1
1
  /*! https://github.com/oscarpalmer/oui */
2
-
3
2
  :root {
4
3
  --oui-absolute: light-dark(white, black);
5
4
  --oui-blue-0: light-dark(oklch(99% 0.01 260deg), oklch(20% 0.08 250deg));
@@ -1,6 +1,9 @@
1
1
  @charset "UTF-8";
2
2
  /*! https://github.com/oscarpalmer/oui */
3
3
 
4
+
5
+
6
+
4
7
  :where([oui-combobox-anchor]) {
5
8
  --oui-outline-percentage: 100%;
6
9
  --oui-outline-value: var(--oui-blue-6);
@@ -350,6 +353,10 @@
350
353
  }
351
354
  :where([oui-combobox-selection-item]):not([disabled], [aria-disabled=true i]):active {
352
355
  box-shadow: 0 0 0 1px var(--oui-shadow-value), inset 0 1px 2px 0 var(--oui-shadow-value), inset 0 2px 4px 0 var(--oui-shadow-value);
356
+ scale: 0.95;
357
+ }
358
+ :where([oui-combobox-selection-item]):not([disabled], [aria-disabled=true i]):active[aria-pressed=true i], :where([oui-combobox-selection-item]):not([disabled], [aria-disabled=true i]):active[aria-selected=true i] {
359
+ scale: 1;
353
360
  }
354
361
  :where([oui-combobox-selection-item])[disabled], :where([oui-combobox-selection-item])[aria-disabled=true i] {
355
362
  --oui-background-percentage: 80%;
@@ -1,5 +1,6 @@
1
1
  /*! https://github.com/oscarpalmer/oui */
2
2
 
3
+
3
4
  :where(.oui-card) {
4
5
  box-shadow: inset 0 1px 0 0 transparent, 0 0 0 1px color-mix(in oklab, var(--oui-gray-6), transparent 92.5%), 0 1px 2px -0.5px color-mix(in oklab, var(--oui-gray-6), transparent 92.5%), 0 2px 4px -1px color-mix(in oklab, var(--oui-gray-6), transparent 92.5%);
5
6
  padding: 1em 1.25em;
@@ -1,3 +1,5 @@
1
+ /*! https://github.com/oscarpalmer/oui */
2
+
1
3
 
2
4
  :where([oui-dialog], [oui-popover], [oui-tooltip-content]),
3
5
  :where([oui-dialog])::backdrop {
package/dist/css/form.css CHANGED
@@ -1,6 +1,9 @@
1
1
  @charset "UTF-8";
2
2
  /*! https://github.com/oscarpalmer/oui */
3
3
 
4
+
5
+
6
+
4
7
  :where(.oui-fieldset) {
5
8
  padding: 1em;
6
9
  border: 1px solid var(--oui-gray-3);
@@ -160,6 +163,10 @@
160
163
  }
161
164
  :where(.oui-input:is([type=file i]))::file-selector-button:not([disabled], [aria-disabled=true i]):active {
162
165
  box-shadow: 0 0 0 1px var(--oui-shadow-value), inset 0 1px 2px 0 var(--oui-shadow-value), inset 0 2px 4px 0 var(--oui-shadow-value);
166
+ scale: 0.95;
167
+ }
168
+ :where(.oui-input:is([type=file i]))::file-selector-button:not([disabled], [aria-disabled=true i]):active[aria-pressed=true i], :where(.oui-input:is([type=file i]))::file-selector-button:not([disabled], [aria-disabled=true i]):active[aria-selected=true i] {
169
+ scale: 1;
163
170
  }
164
171
  :where(.oui-input:is([type=file i]))::file-selector-button[disabled], :where(.oui-input:is([type=file i]))::file-selector-button[aria-disabled=true i] {
165
172
  --oui-background-percentage: 80%;
@@ -1,6 +1,8 @@
1
1
  @charset "UTF-8";
2
2
  /*! https://github.com/oscarpalmer/oui */
3
3
 
4
+
5
+
4
6
  :where(oui-listbox, [oui-listbox-content]) {
5
7
  display: flex;
6
8
  flex-flow: column nowrap;
@@ -1,5 +1,7 @@
1
1
  /*! https://github.com/oscarpalmer/oui */
2
2
 
3
+
4
+
3
5
  :where(.oui-message) {
4
6
  --oui-background: var(--oui-gray-1);
5
7
  --oui-border: var(--oui-gray-2);
@@ -0,0 +1,2 @@
1
+
2
+
@@ -0,0 +1,2 @@
1
+
2
+
@@ -0,0 +1 @@
1
+
@@ -0,0 +1,2 @@
1
+
2
+
@@ -0,0 +1 @@
1
+
@@ -227,9 +227,9 @@ summary) {
227
227
  -webkit-appearance: none;
228
228
  -moz-appearance: none;
229
229
  appearance: none;
230
- padding-right: 1em;
230
+ padding-right: 1.5em;
231
231
  background-image: url("data:image/svg+xml;charset=utf-8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='4'%3E%3Cpath d='M4 0h6L7 4'/%3E%3C/svg%3E");
232
- background-position: right center/1em;
232
+ background-position: right 0.5em center;
233
233
  background-repeat: no-repeat;
234
234
  border-radius: 0;
235
235
  }
@@ -1,4 +1,4 @@
1
-
1
+ /*! https://github.com/oscarpalmer/oui */
2
2
  :where(oui-splitter) {
3
3
  display: flex;
4
4
  flex-flow: row nowrap;
package/dist/css/tabs.css CHANGED
@@ -1,8 +1,10 @@
1
+ /*! https://github.com/oscarpalmer/oui */
2
+
1
3
 
2
4
  :where(oui-tabs) {
3
5
  display: flex;
4
6
  }
5
- :where(oui-tabs[orientation=horizontal i]) {
7
+ :where(oui-tabs:not([orientation=horizontal i])) {
6
8
  flex-flow: column nowrap;
7
9
  }
8
10
  :where(oui-tabs[orientation=vertical i]) {
@@ -13,14 +15,9 @@
13
15
  padding: 1em;
14
16
  flex: 1;
15
17
  background-color: var(--oui-absolute);
16
- }
17
- :where(oui-tabs[orientation=horizontal i] > [oui-tabs-content]) {
18
- border-radius: 0 0 0.5em 0.5em;
19
- box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.125), inset 0 1px 2px -0.5px rgba(0, 0, 0, 0.05), inset 0 2px 4px -1px rgba(0, 0, 0, 0.05);
20
- }
21
- :where(oui-tabs[orientation=vertical i] > [oui-tabs-content]) {
22
- border-radius: 0 0.5em 0.5em 0;
23
- box-shadow: 0 0 0 1px rgba(0, 0, 0, 0.125), inset 1px 1px 2px -0.5px rgba(0, 0, 0, 0.05), inset 2px 2px 4px -1px rgba(0, 0, 0, 0.05);
18
+ border: 1px solid var(--oui-gray-3);
19
+ position: relative;
20
+ z-index: 0;
24
21
  }
25
22
 
26
23
  :where([oui-tabs-tab]) {
@@ -64,6 +61,10 @@
64
61
  }
65
62
  :where([oui-tabs-tab]):not([disabled], [aria-disabled=true i]):active {
66
63
  box-shadow: 0 0 0 1px var(--oui-shadow-value), inset 0 1px 2px 0 var(--oui-shadow-value), inset 0 2px 4px 0 var(--oui-shadow-value);
64
+ scale: 0.95;
65
+ }
66
+ :where([oui-tabs-tab]):not([disabled], [aria-disabled=true i]):active[aria-pressed=true i], :where([oui-tabs-tab]):not([disabled], [aria-disabled=true i]):active[aria-selected=true i] {
67
+ scale: 1;
67
68
  }
68
69
  :where([oui-tabs-tab])[disabled], :where([oui-tabs-tab])[aria-disabled=true i] {
69
70
  --oui-background-percentage: 80%;
@@ -72,10 +73,8 @@
72
73
  font-style: italic;
73
74
  }
74
75
  :where([oui-tabs-tab]) {
75
- --oui-background-value: var(--oui-blue-3);
76
- --oui-foreground-value: var(--oui-blue-8);
77
- --oui-outline-value: var(--oui-blue-6);
78
- font-size: 0.875rem;
76
+ font-size: 0.75rem;
77
+ flex-shrink: 0;
79
78
  align-self: flex-end;
80
79
  }
81
80
  :where([oui-tabs-tab][aria-selected=true i]) {
@@ -86,18 +85,19 @@
86
85
  :where([oui-tabs-tablist]) {
87
86
  display: flex;
88
87
  gap: 0.5em;
88
+ position: relative;
89
+ z-index: 0;
89
90
  }
90
- :where([oui-tabs-tablist][aria-orientation=horizontal i]) {
91
- flex-flow: row nowrap;
91
+ :where([oui-tabs-tablist]:focus-within) {
92
+ z-index: 1;
92
93
  }
93
- :where([oui-tabs-tablist][aria-orientation=horizontal i] > [oui-tabs-tab]) {
94
- border-radius: 0.25em 0.25em 0 0;
94
+ :where([oui-tabs-tablist][aria-orientation=horizontal i]) {
95
+ margin: 0 0 0.5em;
96
+ flex-flow: row wrap;
95
97
  }
96
98
  :where([oui-tabs-tablist][aria-orientation=vertical i]) {
97
- flex-flow: column nowrap;
98
- }
99
- :where([oui-tabs-tablist][aria-orientation=vertical i] > [oui-tabs-tab]) {
100
- border-radius: 0.25em 0 0 0.25em;
99
+ margin: 0 0.5em 0 0;
100
+ flex-flow: column wrap;
101
101
  }
102
102
 
103
103