@oscarpalmer/oui 0.37.0 → 0.39.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 (183) hide show
  1. package/dist/css/a11y.css +1 -0
  2. package/dist/css/badge.css +12 -8
  3. package/dist/css/button.css +111 -14
  4. package/dist/css/color-picker.css +859 -0
  5. package/dist/css/color.css +86 -87
  6. package/dist/css/combobox.css +105 -4
  7. package/dist/css/content.css +8 -6
  8. package/dist/css/floatable.css +3 -3
  9. package/dist/css/form.css +106 -6
  10. package/dist/css/icon.css +99 -0
  11. package/dist/css/listbox.css +5 -0
  12. package/dist/css/message.css +6 -3
  13. package/dist/css/mixins/badge.mixins.css +2 -0
  14. package/dist/css/mixins/button.mixins.css +3 -0
  15. package/dist/css/mixins/message.mixins.css +1 -0
  16. package/dist/css/mixins/misc.mixins.css +2 -0
  17. package/dist/css/mixins/shadow.mixins.css +1 -0
  18. package/dist/css/reset.css +3 -3
  19. package/dist/css/splitter.css +1 -1
  20. package/dist/css/tabs.css +115 -23
  21. package/dist/css/typography.css +90 -0
  22. package/dist/js/color-picker/constants.color-picker.d.mts +2 -0
  23. package/dist/js/color-picker/constants.color-picker.mjs +59 -0
  24. package/dist/js/color-picker/dom.color-picker.d.mts +8 -0
  25. package/dist/js/color-picker/dom.color-picker.mjs +191 -0
  26. package/dist/js/color-picker/event.color-picker.d.mts +9 -0
  27. package/dist/js/color-picker/event.color-picker.mjs +2 -0
  28. package/dist/js/color-picker/form.color-picker.d.mts +5 -0
  29. package/dist/js/color-picker/form.color-picker.mjs +24 -0
  30. package/dist/js/color-picker/index.d.mts +2 -0
  31. package/dist/js/color-picker/index.mjs +303 -0
  32. package/dist/js/color-picker/misc.color-picker.d.mts +2 -0
  33. package/dist/js/color-picker/misc.color-picker.mjs +2 -0
  34. package/dist/js/color-picker/models.color-picker.d.mts +2 -0
  35. package/dist/js/color-picker/models.color-picker.mjs +24 -0
  36. package/dist/js/color-picker/output.color-picker.d.mts +8 -0
  37. package/dist/js/color-picker/output.color-picker.mjs +233 -0
  38. package/dist/js/color-picker/state.color-picker.d.mts +8 -0
  39. package/dist/js/color-picker/state.color-picker.mjs +2 -0
  40. package/dist/js/combobox/constants.combobox.d.mts +1 -1
  41. package/dist/js/combobox/dom.combobox.d.mts +12 -13
  42. package/dist/js/combobox/dom.combobox.mjs +12 -5
  43. package/dist/js/combobox/event.combobox.d.mts +20 -21
  44. package/dist/js/combobox/event.combobox.mjs +1 -1
  45. package/dist/js/combobox/index.d.mts +1 -1
  46. package/dist/js/combobox/index.mjs +56 -2
  47. package/dist/js/combobox/misc.combobox.d.mts +1 -1
  48. package/dist/js/combobox/misc.combobox.mjs +1 -1
  49. package/dist/js/combobox/models.combobox.d.mts +12 -13
  50. package/dist/js/combobox/state.combobox.d.mts +8 -9
  51. package/dist/js/combobox/state.combobox.mjs +1 -1
  52. package/dist/js/constants.color-picker-B-gFjL8m.d.mts +364 -0
  53. package/dist/js/constants.combobox-8EMRmv09.d.mts +18 -0
  54. package/dist/js/constants.listbox-DGnX32kv.d.mts +8 -0
  55. package/dist/js/dialog.d.mts +2 -2
  56. package/dist/js/dialog.mjs +1 -1
  57. package/dist/js/{draggable-a6w0J1OD.d.mts → draggable-B5-70SZm.d.mts} +5 -4
  58. package/dist/js/event.color-picker-BEpq0Adu.mjs +485 -0
  59. package/dist/js/floatable/floatable.embedded.d.mts +1 -1
  60. package/dist/js/floatable/floatable.embedded.mjs +11 -8
  61. package/dist/js/floatable/floatable.standalone.d.mts +1 -1
  62. package/dist/js/{floatable.embedded-Bct4U5Dm.d.mts → floatable.embedded-DQYkXt8X.d.mts} +1 -1
  63. package/dist/js/focus-trap/focus-trap.embedded.d.mts +1 -1
  64. package/dist/js/focus-trap/focus-trap.standalone.d.mts +1 -1
  65. package/dist/js/{focus-trap.embedded-DR8NpZfr.d.mts → focus-trap.embedded-CjyFQYow.d.mts} +2 -2
  66. package/dist/js/{index-EfkUSals.d.mts → index-C5D3-oiI.d.mts} +41 -3
  67. package/dist/js/index.d.mts +8 -7
  68. package/dist/js/index.mjs +6 -3
  69. package/dist/js/internal/attributable.d.mts +2 -3
  70. package/dist/js/internal/draggable.d.mts +1 -1
  71. package/dist/js/internal/draggable.mjs +1 -1
  72. package/dist/js/internal/listbox/listbox.constants.d.mts +7 -10
  73. package/dist/js/internal/listbox/listbox.constants.mjs +15 -16
  74. package/dist/js/internal/listbox/listbox.data.d.mts +9 -10
  75. package/dist/js/internal/listbox/listbox.data.mjs +1 -1
  76. package/dist/js/internal/listbox/listbox.dom.d.mts +19 -20
  77. package/dist/js/internal/listbox/listbox.dom.mjs +1 -1
  78. package/dist/js/internal/listbox/listbox.event.d.mts +3 -4
  79. package/dist/js/internal/listbox/listbox.event.mjs +4 -4
  80. package/dist/js/internal/listbox/listbox.form.d.mts +4 -5
  81. package/dist/js/internal/listbox/listbox.form.mjs +16 -15
  82. package/dist/js/internal/listbox/listbox.misc.d.mts +10 -11
  83. package/dist/js/internal/listbox/listbox.misc.mjs +1 -1
  84. package/dist/js/internal/listbox/listbox.model.d.mts +1 -1
  85. package/dist/js/internal/listbox/listbox.state.d.mts +5 -6
  86. package/dist/js/internal/listbox/listbox.state.mjs +3 -3
  87. package/dist/js/internal/misc.d.mts +4 -4
  88. package/dist/js/internal/misc.mjs +9 -1
  89. package/dist/js/internal/navigable.d.mts +9 -10
  90. package/dist/js/internal/navigable.mjs +1 -0
  91. package/dist/js/listbox/constants.listbox.d.mts +1 -1
  92. package/dist/js/listbox/event.listbox.d.mts +6 -7
  93. package/dist/js/listbox/event.listbox.mjs +1 -1
  94. package/dist/js/listbox/index.d.mts +43 -5
  95. package/dist/js/listbox/index.mjs +56 -2
  96. package/dist/js/listbox/misc.listbox.d.mts +1 -1
  97. package/dist/js/listbox/misc.listbox.mjs +1 -1
  98. package/dist/js/listbox/state.listbox.d.mts +7 -8
  99. package/dist/js/listbox/state.listbox.mjs +1 -1
  100. package/dist/js/{listbox.data-BWd0PCy7.mjs → listbox.data-DQ7-x2uY.mjs} +8 -7
  101. package/dist/js/{listbox.model-CRReGOmu.d.mts → listbox.model-BHPA7GM4.d.mts} +3 -3
  102. package/dist/js/menu.mjs +1 -1
  103. package/dist/js/{misc.listbox-BI-XsTOf.mjs → misc.listbox-DKB-j0UK.mjs} +4 -5
  104. package/dist/js/{misc.listbox-gnoJhrTr.d.mts → misc.listbox-mZMuYOxg.d.mts} +1 -1
  105. package/dist/js/movable/movable.embedded.d.mts +1 -1
  106. package/dist/js/movable/movable.standalone.d.mts +1 -1
  107. package/dist/js/popover.d.mts +2 -2
  108. package/dist/js/popover.mjs +1 -1
  109. package/dist/js/resizable/resizable.embedded.d.mts +1 -1
  110. package/dist/js/resizable/resizable.embedded.mjs +1 -1
  111. package/dist/js/resizable/resizable.standalone.d.mts +1 -1
  112. package/dist/js/{resizable.embedded-3qoR0Bjm.d.mts → resizable.embedded-dvhdfQgt.d.mts} +1 -1
  113. package/dist/js/sortable/sortable.embedded.d.mts +1 -1
  114. package/dist/js/sortable/sortable.standalone.d.mts +1 -1
  115. package/dist/js/splitter.d.mts +2 -3
  116. package/dist/js/splitter.mjs +2 -2
  117. package/dist/js/{state.combobox-4xq0FPCF.mjs → state.combobox-BWDFHwoi.mjs} +9 -9
  118. package/dist/js/tabs.d.mts +4 -5
  119. package/dist/js/tabs.mjs +4 -7
  120. package/dist/js/tooltip.d.mts +1 -1
  121. package/package.json +24 -22
  122. package/dist/js/constants.combobox-DmRAMC64.d.mts +0 -26
  123. package/dist/js/constants.listbox-DRsXUxd3.d.mts +0 -14
  124. package/src/css/a11y.scss +0 -13
  125. package/src/css/badge.scss +0 -62
  126. package/src/css/button.scss +0 -50
  127. package/src/css/color.scss +0 -115
  128. package/src/css/combobox.scss +0 -252
  129. package/src/css/content.scss +0 -180
  130. package/src/css/flex.scss +0 -107
  131. package/src/css/floatable.scss +0 -152
  132. package/src/css/form.scss +0 -573
  133. package/src/css/listbox.scss +0 -120
  134. package/src/css/message.scss +0 -73
  135. package/src/css/mixins.scss +0 -419
  136. package/src/css/reset.scss +0 -392
  137. package/src/css/splitter.scss +0 -89
  138. package/src/css/table.scss +0 -107
  139. package/src/css/tabs.scss +0 -85
  140. package/src/js/combobox/constants.combobox.ts +0 -83
  141. package/src/js/combobox/dom.combobox.ts +0 -407
  142. package/src/js/combobox/event.combobox.ts +0 -365
  143. package/src/js/combobox/index.ts +0 -320
  144. package/src/js/combobox/misc.combobox.ts +0 -104
  145. package/src/js/combobox/models.combobox.ts +0 -54
  146. package/src/js/combobox/state.combobox.ts +0 -246
  147. package/src/js/dialog.ts +0 -255
  148. package/src/js/floatable/floatable.embedded.ts +0 -332
  149. package/src/js/floatable/floatable.standalone.ts +0 -6
  150. package/src/js/focus-trap/focus-trap.embedded.ts +0 -411
  151. package/src/js/focus-trap/focus-trap.standalone.ts +0 -1
  152. package/src/js/index.ts +0 -15
  153. package/src/js/internal/attributable.ts +0 -73
  154. package/src/js/internal/draggable.ts +0 -657
  155. package/src/js/internal/listbox/listbox.constants.ts +0 -25
  156. package/src/js/internal/listbox/listbox.data.ts +0 -287
  157. package/src/js/internal/listbox/listbox.dom.ts +0 -445
  158. package/src/js/internal/listbox/listbox.event.ts +0 -129
  159. package/src/js/internal/listbox/listbox.form.ts +0 -115
  160. package/src/js/internal/listbox/listbox.misc.ts +0 -135
  161. package/src/js/internal/listbox/listbox.model.ts +0 -169
  162. package/src/js/internal/listbox/listbox.state.ts +0 -82
  163. package/src/js/internal/misc.ts +0 -27
  164. package/src/js/internal/navigable.ts +0 -315
  165. package/src/js/l10n.ts +0 -192
  166. package/src/js/listbox/constants.listbox.ts +0 -61
  167. package/src/js/listbox/event.listbox.ts +0 -106
  168. package/src/js/listbox/index.ts +0 -302
  169. package/src/js/listbox/misc.listbox.ts +0 -70
  170. package/src/js/listbox/state.listbox.ts +0 -196
  171. package/src/js/menu.ts +0 -348
  172. package/src/js/movable/movable.embedded.ts +0 -318
  173. package/src/js/movable/movable.standalone.ts +0 -2
  174. package/src/js/popover.ts +0 -229
  175. package/src/js/resizable/resizable.embedded.ts +0 -413
  176. package/src/js/resizable/resizable.standalone.ts +0 -5
  177. package/src/js/sortable/sortable.embedded.ts +0 -527
  178. package/src/js/sortable/sortable.standalone.ts +0 -2
  179. package/src/js/splitter.ts +0 -583
  180. package/src/js/tabs.ts +0 -447
  181. package/src/js/toolbar.ts +0 -63
  182. package/src/js/tooltip.ts +0 -367
  183. /package/dist/css/{mixins.css → mixins/input.mixins.css} +0 -0
@@ -0,0 +1,859 @@
1
+ /*! https://github.com/oscarpalmer/oui */
2
+
3
+
4
+
5
+
6
+ :where(oui-color-picker) {
7
+ display: flex;
8
+ flex-flow: column nowrap;
9
+ gap: 1em;
10
+ outline: none;
11
+ }
12
+
13
+ :where(oui-color-picker[inline] [oui-color-picker-content],
14
+ [oui-color-picker-content]:popover-open) {
15
+ display: flex !important;
16
+ flex-flow: column nowrap;
17
+ }
18
+
19
+ :where([oui-color-picker-anchor]) {
20
+ display: flex;
21
+ flex-flow: row nowrap;
22
+ align-items: stretch;
23
+ }
24
+ :where([oui-color-picker-anchor] > [oui-color-picker-copy]) {
25
+ margin: 0 0 0 1em;
26
+ }
27
+ :where([oui-color-picker-anchor] *) {
28
+ position: relative;
29
+ }
30
+ :where([oui-color-picker-anchor] *:focus) {
31
+ z-index: 1;
32
+ }
33
+ @media (hover: hover) {
34
+ :where([oui-color-picker-anchor] *:hover) {
35
+ z-index: 1;
36
+ }
37
+ }
38
+
39
+ :where([oui-color-picker-content]) {
40
+ flex-flow: column nowrap;
41
+ gap: 1em;
42
+ }
43
+ :where([oui-color-picker-content][popover]) {
44
+ --margin-bottom: 0.5em;
45
+ --margin-left: 0.5em;
46
+ --margin-right: 0.5em;
47
+ --margin-top: 0.5em;
48
+ inset-block: var(--margin-top) var(--margin-bottom);
49
+ inset-inline: var(--margin-left) var(--margin-right);
50
+ }
51
+ :where([oui-color-picker-content][popover])[oui-position$=bottom i] {
52
+ --margin-bottom: 0;
53
+ }
54
+ :where([oui-color-picker-content][popover])[oui-position$=end i] {
55
+ --margin-right: 0;
56
+ }
57
+ :where([oui-color-picker-content][popover])[oui-position$=start i] {
58
+ --margin-left: 0;
59
+ }
60
+ :where([oui-color-picker-content][popover])[oui-position$=top i] {
61
+ --margin-top: 0;
62
+ }
63
+ :where([oui-color-picker-content][popover]) {
64
+ box-shadow: inset 0 1px 0 0 transparent, 0 0 0 1px light-dark(rgba(0, 0, 0, 0.05), rgba(0, 0, 0, 0.25)), 0 1px 2px -0.5px light-dark(rgba(0, 0, 0, 0.05), rgba(0, 0, 0, 0.25)), 0 2px 4px -1px light-dark(rgba(0, 0, 0, 0.05), rgba(0, 0, 0, 0.25)), 0 4px 8px -2px light-dark(rgba(0, 0, 0, 0.05), rgba(0, 0, 0, 0.25)), 0 8px 16px -4px light-dark(rgba(0, 0, 0, 0.05), rgba(0, 0, 0, 0.25)), 0 16px 32px -8px light-dark(rgba(0, 0, 0, 0.05), rgba(0, 0, 0, 0.25)), 0 32px 64px -16px light-dark(rgba(0, 0, 0, 0.05), rgba(0, 0, 0, 0.25)), 0 64px 128px -32px light-dark(rgba(0, 0, 0, 0.05), rgba(0, 0, 0, 0.25));
65
+ padding: 1em;
66
+ min-width: anchor-size(width);
67
+ border-radius: 0.25em;
68
+ }
69
+ :where([oui-color-picker-content][popover]:not(:has(> [oui-color-picker-opacity]))) {
70
+ border-radius: 0.25em 0.25em 0.75em 0.75em;
71
+ }
72
+
73
+ :where([oui-color-picker-copy]) {
74
+ --oui-background-percentage: 50%;
75
+ --oui-background-value: var(--oui-gray-2);
76
+ --oui-foreground-percentage: 0%;
77
+ --oui-foreground-value: var(--oui-gray-8);
78
+ --oui-outline-percentage: 100%;
79
+ --oui-outline-value: var(--oui-gray-5);
80
+ --oui-shadow-inset: color-mix(in oklab, var(--oui-absolute), transparent 75%);
81
+ --oui-shadow-percentage: 82.5%;
82
+ --oui-shadow-value: color-mix(
83
+ in oklab,
84
+ var(--oui-outline-value),
85
+ transparent var(--oui-shadow-percentage)
86
+ );
87
+ 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);
88
+ padding: 0.5em 0.75em;
89
+ display: inline-flex;
90
+ flex-flow: row wrap;
91
+ gap: 0.75em;
92
+ align-items: center;
93
+ border-radius: 0.25em;
94
+ background-color: color-mix(in oklab, var(--oui-background-value), transparent var(--oui-background-percentage));
95
+ outline: 4px solid color-mix(in oklab, var(--oui-outline-value), transparent var(--oui-outline-percentage));
96
+ border: none;
97
+ color: color-mix(in oklab, var(--oui-foreground-value), transparent var(--oui-foreground-percentage));
98
+ line-height: 1.25;
99
+ position: relative;
100
+ transition: 0.125s ease-in-out;
101
+ transition-property: background, outline, box-shadow, color;
102
+ }
103
+ :where([oui-color-picker-copy])::after {
104
+ content: "";
105
+ width: 1em;
106
+ height: 1em;
107
+ display: inline-flex;
108
+ opacity: 0;
109
+ background-color: color-mix(in oklab, var(--oui-foreground-value), transparent var(--oui-foreground-percentage));
110
+ -webkit-mask-image: url("");
111
+ mask-image: url("");
112
+ -webkit-mask-position: center;
113
+ mask-position: center;
114
+ -webkit-mask-repeat: no-repeat;
115
+ mask-repeat: no-repeat;
116
+ -webkit-mask-size: 1em 1em;
117
+ mask-size: 1em 1em;
118
+ pointer-events: none;
119
+ transition: 0.125s ease-in-out;
120
+ transition-property: background-color, color, opacity, -webkit-mask-image;
121
+ transition-property: background-color, color, mask-image, opacity;
122
+ transition-property: background-color, color, mask-image, opacity, -webkit-mask-image;
123
+ position: absolute;
124
+ inset: 50% auto auto 50%;
125
+ transform: translate3d(-50%, -50%, 0);
126
+ }
127
+ :where([oui-color-picker-copy]):has(.oui-icon:is(:first-child))::after {
128
+ inset: auto;
129
+ transform: none;
130
+ }
131
+ :where([oui-color-picker-copy]):has(.oui-icon:is(:last-child))::after {
132
+ inset: auto 0.75em auto auto;
133
+ transform: none;
134
+ }
135
+ :where([oui-color-picker-copy]):focus-visible {
136
+ --oui-outline-percentage: 75%;
137
+ }
138
+ @media (hover: hover) {
139
+ :where([oui-color-picker-copy]):not([disabled], [aria-disabled=true i]):hover {
140
+ --oui-background-percentage: 50%;
141
+ --oui-foreground-percentage: 25%;
142
+ --oui-shadow-percentage: 90%;
143
+ }
144
+ }
145
+ :where([oui-color-picker-copy]):not([disabled], [aria-disabled=true i])[aria-busy=true i]:not(:has(.oui-icon:is(:first-child, :last-child))), :where([oui-color-picker-copy]):not([disabled], [aria-disabled=true i])[data-state=busy i]:not(:has(.oui-icon:is(:first-child, :last-child))), :where([oui-color-picker-copy]):not([disabled], [aria-disabled=true i])[data-state=error i]:not(:has(.oui-icon:is(:first-child, :last-child))), :where([oui-color-picker-copy]):not([disabled], [aria-disabled=true i])[data-state=loading i]:not(:has(.oui-icon:is(:first-child, :last-child))), :where([oui-color-picker-copy]):not([disabled], [aria-disabled=true i])[data-state=success i]:not(:has(.oui-icon:is(:first-child, :last-child))) {
146
+ color: transparent;
147
+ }
148
+ :where([oui-color-picker-copy]):not([disabled], [aria-disabled=true i])[aria-busy=true i]::after, :where([oui-color-picker-copy]):not([disabled], [aria-disabled=true i])[data-state=busy i]::after, :where([oui-color-picker-copy]):not([disabled], [aria-disabled=true i])[data-state=error i]::after, :where([oui-color-picker-copy]):not([disabled], [aria-disabled=true i])[data-state=loading i]::after, :where([oui-color-picker-copy]):not([disabled], [aria-disabled=true i])[data-state=success i]::after {
149
+ opacity: 1;
150
+ }
151
+ :where([oui-color-picker-copy]):not([disabled], [aria-disabled=true i])[aria-busy=true i] .oui-icon, :where([oui-color-picker-copy]):not([disabled], [aria-disabled=true i])[data-state=busy i] .oui-icon, :where([oui-color-picker-copy]):not([disabled], [aria-disabled=true i])[data-state=error i] .oui-icon, :where([oui-color-picker-copy]):not([disabled], [aria-disabled=true i])[data-state=loading i] .oui-icon, :where([oui-color-picker-copy]):not([disabled], [aria-disabled=true i])[data-state=success i] .oui-icon {
152
+ opacity: 0;
153
+ }
154
+ :where([oui-color-picker-copy]):not([disabled], [aria-disabled=true i])[aria-busy=true i], :where([oui-color-picker-copy]):not([disabled], [aria-disabled=true i])[data-state=busy i], :where([oui-color-picker-copy]):not([disabled], [aria-disabled=true i])[data-state=loading i] {
155
+ --oui-background-value: var(--oui-blue-2);
156
+ --oui-foreground-value: var(--oui-blue-8);
157
+ --oui-outline-value: var(--oui-blue-5);
158
+ }
159
+ :where([oui-color-picker-copy]):not([disabled], [aria-disabled=true i])[aria-busy=true i]::after, :where([oui-color-picker-copy]):not([disabled], [aria-disabled=true i])[data-state=busy i]::after, :where([oui-color-picker-copy]):not([disabled], [aria-disabled=true i])[data-state=loading i]::after {
160
+ -webkit-mask-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiIGNsYXNzPSJpY29uIGljb24tdGFibGVyIGljb25zLXRhYmxlci1vdXRsaW5lIGljb24tdGFibGVyLWxvYWRlci0yIj48cGF0aCBzdHJva2U9Im5vbmUiIGQ9Ik0wIDBoMjR2MjRIMHoiIGZpbGw9Im5vbmUiIC8+PHBhdGggZD0iTTEyIDNhOSA5IDAgMSAwIDkgOSIgLz48L3N2Zz4=");
161
+ mask-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiIGNsYXNzPSJpY29uIGljb24tdGFibGVyIGljb25zLXRhYmxlci1vdXRsaW5lIGljb24tdGFibGVyLWxvYWRlci0yIj48cGF0aCBzdHJva2U9Im5vbmUiIGQ9Ik0wIDBoMjR2MjRIMHoiIGZpbGw9Im5vbmUiIC8+PHBhdGggZD0iTTEyIDNhOSA5IDAgMSAwIDkgOSIgLz48L3N2Zz4=");
162
+ transform-origin: center;
163
+ animation: oui-button-icon-centered 1s linear infinite;
164
+ }
165
+ @keyframes oui-button-icon-centered {
166
+ to {
167
+ transform: translate3d(-50%, -50%, 0) rotate3d(0, 0, 1, 360deg);
168
+ }
169
+ }
170
+ :where([oui-color-picker-copy]):not([disabled], [aria-disabled=true i])[aria-busy=true i]:has(.oui-icon:is(:first-child, :last-child))::after, :where([oui-color-picker-copy]):not([disabled], [aria-disabled=true i])[data-state=busy i]:has(.oui-icon:is(:first-child, :last-child))::after, :where([oui-color-picker-copy]):not([disabled], [aria-disabled=true i])[data-state=loading i]:has(.oui-icon:is(:first-child, :last-child))::after {
171
+ animation: oui-button-icon-offset 1s linear infinite;
172
+ }
173
+ @keyframes oui-button-icon-offset {
174
+ to {
175
+ transform: rotate3d(0, 0, 1, 360deg);
176
+ }
177
+ }
178
+ :where([oui-color-picker-copy]):not([disabled], [aria-disabled=true i])[data-state=error i] {
179
+ --oui-background-value: var(--oui-red-2);
180
+ --oui-foreground-value: var(--oui-red-8);
181
+ --oui-outline-value: var(--oui-red-5);
182
+ }
183
+ :where([oui-color-picker-copy]):not([disabled], [aria-disabled=true i])[data-state=error i]::after {
184
+ -webkit-mask-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiIGNsYXNzPSJpY29uIGljb24tdGFibGVyIGljb25zLXRhYmxlci1vdXRsaW5lIGljb24tdGFibGVyLXgiPjxwYXRoIHN0cm9rZT0ibm9uZSIgZD0iTTAgMGgyNHYyNEgweiIgZmlsbD0ibm9uZSIgLz48cGF0aCBkPSJNMTggNmwtMTIgMTIiIC8+PHBhdGggZD0iTTYgNmwxMiAxMiIgLz48L3N2Zz4=");
185
+ mask-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiIGNsYXNzPSJpY29uIGljb24tdGFibGVyIGljb25zLXRhYmxlci1vdXRsaW5lIGljb24tdGFibGVyLXgiPjxwYXRoIHN0cm9rZT0ibm9uZSIgZD0iTTAgMGgyNHYyNEgweiIgZmlsbD0ibm9uZSIgLz48cGF0aCBkPSJNMTggNmwtMTIgMTIiIC8+PHBhdGggZD0iTTYgNmwxMiAxMiIgLz48L3N2Zz4=");
186
+ }
187
+ :where([oui-color-picker-copy]):not([disabled], [aria-disabled=true i])[data-state=success i] {
188
+ --oui-background-value: var(--oui-green-2);
189
+ --oui-foreground-value: var(--oui-green-8);
190
+ --oui-outline-value: var(--oui-green-5);
191
+ }
192
+ :where([oui-color-picker-copy]):not([disabled], [aria-disabled=true i])[data-state=success i]::after {
193
+ -webkit-mask-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiIGNsYXNzPSJpY29uIGljb24tdGFibGVyIGljb25zLXRhYmxlci1vdXRsaW5lIGljb24tdGFibGVyLWNoZWNrIj48cGF0aCBzdHJva2U9Im5vbmUiIGQ9Ik0wIDBoMjR2MjRIMHoiIGZpbGw9Im5vbmUiIC8+PHBhdGggZD0iTTUgMTJsNSA1bDEwIC0xMCIgLz48L3N2Zz4=");
194
+ mask-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiIGNsYXNzPSJpY29uIGljb24tdGFibGVyIGljb25zLXRhYmxlci1vdXRsaW5lIGljb24tdGFibGVyLWNoZWNrIj48cGF0aCBzdHJva2U9Im5vbmUiIGQ9Ik0wIDBoMjR2MjRIMHoiIGZpbGw9Im5vbmUiIC8+PHBhdGggZD0iTTUgMTJsNSA1bDEwIC0xMCIgLz48L3N2Zz4=");
195
+ }
196
+ :where([oui-color-picker-copy]):not([disabled], [aria-disabled=true i]):active {
197
+ 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);
198
+ scale: 0.95;
199
+ }
200
+ :where([oui-color-picker-copy]):not([disabled], [aria-disabled=true i]):active[aria-pressed=true i], :where([oui-color-picker-copy]):not([disabled], [aria-disabled=true i]):active[aria-selected=true i] {
201
+ scale: 1;
202
+ }
203
+ :where([oui-color-picker-copy])[disabled], :where([oui-color-picker-copy])[aria-disabled=true i] {
204
+ --oui-background-percentage: 80%;
205
+ --oui-foreground-percentage: 25%;
206
+ --oui-shadow-percentage: 92.5%;
207
+ font-style: italic;
208
+ }
209
+ :where([oui-color-picker-copy]) .oui-icon {
210
+ width: 1em;
211
+ height: 1em;
212
+ }
213
+ :where([oui-color-picker-copy]) .oui-icon:is(:first-child, :last-child) {
214
+ transition: opacity 0.125s ease-in-out;
215
+ }
216
+ :where([oui-color-picker-copy]) {
217
+ width: 2.5em;
218
+ height: 2em;
219
+ align-self: center;
220
+ color: transparent;
221
+ font-size: 0.75em;
222
+ }
223
+ :where([oui-color-picker-copy])::before {
224
+ content: "";
225
+ width: 1em;
226
+ height: 1em;
227
+ display: inline-flex;
228
+ opacity: 1;
229
+ background-color: color-mix(in oklab, var(--oui-foreground-value), transparent var(--oui-foreground-percentage));
230
+ -webkit-mask-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiIGNsYXNzPSJpY29uIGljb24tdGFibGVyIGljb25zLXRhYmxlci1vdXRsaW5lIGljb24tdGFibGVyLWNvcHkiPjxwYXRoIHN0cm9rZT0ibm9uZSIgZD0iTTAgMGgyNHYyNEgweiIgZmlsbD0ibm9uZSIgLz48cGF0aCBkPSJNNyA5LjY2N2EyLjY2NyAyLjY2NyAwIDAgMSAyLjY2NyAtMi42NjdoOC42NjZhMi42NjcgMi42NjcgMCAwIDEgMi42NjcgMi42Njd2OC42NjZhMi42NjcgMi42NjcgMCAwIDEgLTIuNjY3IDIuNjY3aC04LjY2NmEyLjY2NyAyLjY2NyAwIDAgMSAtMi42NjcgLTIuNjY3bDAgLTguNjY2IiAvPjxwYXRoIGQ9Ik00LjAxMiAxNi43MzdhMi4wMDUgMi4wMDUgMCAwIDEgLTEuMDEyIC0xLjczN3YtMTBjMCAtMS4xIC45IC0yIDIgLTJoMTBjLjc1IDAgMS4xNTggLjM4NSAxLjUgMSIgLz48L3N2Zz4=");
231
+ mask-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiIGNsYXNzPSJpY29uIGljb24tdGFibGVyIGljb25zLXRhYmxlci1vdXRsaW5lIGljb24tdGFibGVyLWNvcHkiPjxwYXRoIHN0cm9rZT0ibm9uZSIgZD0iTTAgMGgyNHYyNEgweiIgZmlsbD0ibm9uZSIgLz48cGF0aCBkPSJNNyA5LjY2N2EyLjY2NyAyLjY2NyAwIDAgMSAyLjY2NyAtMi42NjdoOC42NjZhMi42NjcgMi42NjcgMCAwIDEgMi42NjcgMi42Njd2OC42NjZhMi42NjcgMi42NjcgMCAwIDEgLTIuNjY3IDIuNjY3aC04LjY2NmEyLjY2NyAyLjY2NyAwIDAgMSAtMi42NjcgLTIuNjY3bDAgLTguNjY2IiAvPjxwYXRoIGQ9Ik00LjAxMiAxNi43MzdhMi4wMDUgMi4wMDUgMCAwIDEgLTEuMDEyIC0xLjczN3YtMTBjMCAtMS4xIC45IC0yIDIgLTJoMTBjLjc1IDAgMS4xNTggLjM4NSAxLjUgMSIgLz48L3N2Zz4=");
232
+ -webkit-mask-position: center;
233
+ mask-position: center;
234
+ -webkit-mask-repeat: no-repeat;
235
+ mask-repeat: no-repeat;
236
+ -webkit-mask-size: 1em 1em;
237
+ mask-size: 1em 1em;
238
+ pointer-events: none;
239
+ transition: 0.125s ease-in-out;
240
+ transition-property: background-color, color, opacity, -webkit-mask-image;
241
+ transition-property: background-color, color, mask-image, opacity;
242
+ transition-property: background-color, color, mask-image, opacity, -webkit-mask-image;
243
+ }
244
+
245
+ :where([oui-color-picker-copy-error], [oui-color-picker-copy-success]) {
246
+ color: transparent;
247
+ }
248
+ :where([oui-color-picker-copy-error], [oui-color-picker-copy-success])::before {
249
+ opacity: 0;
250
+ }
251
+ :where([oui-color-picker-copy-error], [oui-color-picker-copy-success])::after {
252
+ opacity: 1;
253
+ }
254
+
255
+ :where([oui-color-picker-copy-error]) {
256
+ --oui-background-value: var(--oui-red-2);
257
+ --oui-foreground-value: var(--oui-red-8);
258
+ --oui-outline-value: var(--oui-red-5);
259
+ }
260
+ :where([oui-color-picker-copy-error])::after {
261
+ -webkit-mask-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiIGNsYXNzPSJpY29uIGljb24tdGFibGVyIGljb25zLXRhYmxlci1vdXRsaW5lIGljb24tdGFibGVyLXgiPjxwYXRoIHN0cm9rZT0ibm9uZSIgZD0iTTAgMGgyNHYyNEgweiIgZmlsbD0ibm9uZSIgLz48cGF0aCBkPSJNMTggNmwtMTIgMTIiIC8+PHBhdGggZD0iTTYgNmwxMiAxMiIgLz48L3N2Zz4=");
262
+ mask-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiIGNsYXNzPSJpY29uIGljb24tdGFibGVyIGljb25zLXRhYmxlci1vdXRsaW5lIGljb24tdGFibGVyLXgiPjxwYXRoIHN0cm9rZT0ibm9uZSIgZD0iTTAgMGgyNHYyNEgweiIgZmlsbD0ibm9uZSIgLz48cGF0aCBkPSJNMTggNmwtMTIgMTIiIC8+PHBhdGggZD0iTTYgNmwxMiAxMiIgLz48L3N2Zz4=");
263
+ }
264
+
265
+ :where([oui-color-picker-copy-success]) {
266
+ --oui-background-value: var(--oui-green-2);
267
+ --oui-foreground-value: var(--oui-green-8);
268
+ --oui-outline-value: var(--oui-green-5);
269
+ }
270
+ :where([oui-color-picker-copy-success])::after {
271
+ -webkit-mask-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiIGNsYXNzPSJpY29uIGljb24tdGFibGVyIGljb25zLXRhYmxlci1vdXRsaW5lIGljb24tdGFibGVyLWNoZWNrIj48cGF0aCBzdHJva2U9Im5vbmUiIGQ9Ik0wIDBoMjR2MjRIMHoiIGZpbGw9Im5vbmUiIC8+PHBhdGggZD0iTTUgMTJsNSA1bDEwIC0xMCIgLz48L3N2Zz4=");
272
+ mask-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiIGNsYXNzPSJpY29uIGljb24tdGFibGVyIGljb25zLXRhYmxlci1vdXRsaW5lIGljb24tdGFibGVyLWNoZWNrIj48cGF0aCBzdHJva2U9Im5vbmUiIGQ9Ik0wIDBoMjR2MjRIMHoiIGZpbGw9Im5vbmUiIC8+PHBhdGggZD0iTTUgMTJsNSA1bDEwIC0xMCIgLz48L3N2Zz4=");
273
+ }
274
+
275
+ :where([oui-color-picker-hue], [oui-color-picker-opacity]) {
276
+ position: relative;
277
+ }
278
+
279
+ :where([oui-color-picker-hue-input], [oui-color-picker-opacity-input]) {
280
+ opacity: 0;
281
+ position: absolute;
282
+ inset: -0.25em -0.75em;
283
+ z-index: 1;
284
+ }
285
+
286
+ :where([oui-color-picker-hue-label],
287
+ [oui-color-picker-opacity-label],
288
+ [oui-color-picker-output-input-label],
289
+ [oui-color-picker-output-format-label]) {
290
+ width: 1px !important;
291
+ height: 1px !important;
292
+ padding: 0 !important;
293
+ clip-path: inset(50%) !important;
294
+ overflow: hidden !important;
295
+ border: 0 !important;
296
+ white-space: nowrap !important;
297
+ position: absolute;
298
+ }
299
+
300
+ :where([oui-color-picker-hue-knob]),
301
+ :where([oui-color-picker-hue-track]),
302
+ :where([oui-color-picker-opacity-knob]),
303
+ :where([oui-color-picker-opacity-track]),
304
+ :where([oui-color-picker-well-knob]) {
305
+ --oui-outline-percentage: 100%;
306
+ --oui-outline-value: var(--oui-blue-6);
307
+ outline: 4px solid color-mix(in oklab, var(--oui-outline-value), transparent var(--oui-outline-percentage));
308
+ transition: outline 0.125s ease-in-out;
309
+ }
310
+
311
+ :where([oui-color-picker-hue-knob]),
312
+ :where([oui-color-picker-opacity-knob]),
313
+ :where([oui-color-picker-well-knob]) {
314
+ 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);
315
+ width: 1.5em;
316
+ height: 1.5em;
317
+ border: 0.3333em solid var(--oui-absolute);
318
+ border-radius: 1.5em;
319
+ position: absolute;
320
+ z-index: 1;
321
+ }
322
+
323
+ :where([oui-color-picker-hue-knob]),
324
+ :where([oui-color-picker-well-knob]) {
325
+ background-color: var(--oui-color-picker-hex);
326
+ }
327
+
328
+ :where([oui-color-picker-hue-knob]),
329
+ :where([oui-color-picker-opacity-knob]) {
330
+ transform: translate3d(-50%, -0.25em, 0);
331
+ }
332
+
333
+ :where([oui-color-picker-hue-knob]) {
334
+ inset: 0 0 0 calc(var(--oui-color-picker-hue) / 360 * 100%);
335
+ pointer-events: none;
336
+ }
337
+
338
+ :where([oui-color-picker-hue-track]),
339
+ :where([oui-color-picker-opacity-track]),
340
+ :where([oui-color-picker-well]) {
341
+ 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);
342
+ }
343
+
344
+ :where([oui-color-picker-hue-track]),
345
+ :where([oui-color-picker-opacity-track]) {
346
+ height: 1em;
347
+ border: 1px solid transparent;
348
+ border-radius: 1em;
349
+ pointer-events: none;
350
+ }
351
+
352
+ :where([oui-color-picker-hue-track]) {
353
+ 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%);
354
+ }
355
+
356
+ :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],
357
+ [oui-color-picker-opacity-input]:focus-visible + [oui-color-picker-opacity-track],
358
+ [oui-color-picker-opacity-input]:focus-visible + [oui-color-picker-opacity-track] [oui-color-picker-hue-knob],
359
+ [oui-color-picker-opacity-input]:focus-visible + [oui-color-picker-opacity-track] [oui-color-picker-opacity-knob]) {
360
+ --oui-outline-percentage: 75%;
361
+ }
362
+ :where([oui-color-picker-hue-input]:focus-visible + [oui-color-picker-hue-track],
363
+ [oui-color-picker-opacity-input]:focus-visible + [oui-color-picker-opacity-track]) {
364
+ border-color: var(--oui-absolute);
365
+ }
366
+
367
+ :where([oui-color-picker-input]) {
368
+ --oui-outline-percentage: 100%;
369
+ --oui-outline-value: var(--oui-blue-6);
370
+ outline: 4px solid color-mix(in oklab, var(--oui-outline-value), transparent var(--oui-outline-percentage));
371
+ outline-offset: 0;
372
+ --oui-background-percentage: 0%;
373
+ --oui-foreground-percentage: 0%;
374
+ align-content: center;
375
+ background-color: color-mix(in oklab, var(--oui-background-value), transparent var(--oui-background-percentage));
376
+ border: 1px solid var(--oui-border-value, var(--oui-gray-3));
377
+ box-shadow: inset 0 2px 4px -1px var(--oui-gray-3);
378
+ color: color-mix(in oklab, var(--oui-foreground-value, inherit), transparent var(--oui-foreground-percentage));
379
+ -webkit-text-fill-color: color-mix(in oklab, var(--oui-foreground-value, inherit), transparent var(--oui-foreground-percentage));
380
+ transition: 0.125s ease-in-out;
381
+ transition-property: background, outline, border, box-shadow, color;
382
+ }
383
+ :where([oui-color-picker-input]).oui-validate:not([disabled],
384
+ [readonly],
385
+ [aria-disabled=true i],
386
+ [aria-readonly=true i],
387
+ :focus-visible,
388
+ :focus-within):is(:user-invalid:not([aria-invalid=false i]), [aria-invalid=true i]) {
389
+ --oui-border-value: var(--oui-red-5);
390
+ --oui-foreground-value: var(--oui-red-9);
391
+ --oui-outline-percentage: 82.5%;
392
+ --oui-outline-value: var(--oui-red-6);
393
+ }
394
+ :where([oui-color-picker-input]).oui-validate:not([disabled],
395
+ [readonly],
396
+ [aria-disabled=true i],
397
+ [aria-readonly=true i],
398
+ :focus-visible,
399
+ :focus-within):is(:user-valid:not([aria-invalid=true i]), [aria-invalid=false i]) {
400
+ --oui-border-value: var(--oui-green-5);
401
+ --oui-foreground-value: var(--oui-green-9);
402
+ --oui-outline-percentage: 82.5%;
403
+ --oui-outline-value: var(--oui-green-6);
404
+ }
405
+ :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 {
406
+ --oui-border-value: var(--oui-blue-5);
407
+ --oui-foreground-value: inherit;
408
+ --oui-outline-percentage: 75%;
409
+ --oui-outline-value: var(--oui-blue-6);
410
+ }
411
+ @media (hover: hover) {
412
+ :where([oui-color-picker-input]):not([disabled], [readonly], [aria-disabled=true i], [aria-readonly=true i]):hover {
413
+ --oui-border-value: var(--oui-blue-4);
414
+ --oui-foreground-percentage: 0%;
415
+ --oui-foreground-value: inherit;
416
+ --oui-outline-percentage: 90%;
417
+ --oui-outline-value: var(--oui-blue-6);
418
+ }
419
+ }
420
+ :where([oui-color-picker-input]):is([disabled], [readonly], [aria-disabled=true i], [aria-readonly=true i]) {
421
+ --oui-foreground-percentage: 25%;
422
+ font-style: italic;
423
+ }
424
+ :where([oui-color-picker-input]):is([disabled], [readonly], [aria-disabled=true i], [aria-readonly=true i]):focus-visible {
425
+ --oui-outline-percentage: 75%;
426
+ }
427
+ :where([oui-color-picker-input]):is([disabled], [aria-disabled=true i]) {
428
+ --oui-background-percentage: 50%;
429
+ }
430
+ :where([oui-color-picker-input]) {
431
+ --oui-background-value: var(--oui-absolute);
432
+ width: 100%;
433
+ padding: 0.5em 0.75em;
434
+ border-radius: 0.25em;
435
+ font-family: monospace, monospace;
436
+ }
437
+ :where([oui-color-picker-input]:has(+ [oui-color-picker-toggle])) {
438
+ border-radius: 0.25em 0 0 0.25em;
439
+ }
440
+ :where([oui-color-picker-input]:is([disabled], [aria-disabled=true i])) {
441
+ --oui-background-percentage: 50%;
442
+ }
443
+
444
+ :where([oui-color-picker-opacity-knob]) {
445
+ background-color: var(--oui-absolute);
446
+ 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%);
447
+ inset: 0 0 0 calc(var(--oui-color-picker-alpha) * 1%);
448
+ }
449
+
450
+ :where([oui-color-picker-opacity-track]) {
451
+ background-color: var(--oui-absolute);
452
+ background-image: linear-gradient(to right, transparent 0%, hsl(var(--oui-color-picker-hue), 100%, 50%) 100%);
453
+ position: relative;
454
+ }
455
+ :where([oui-color-picker-opacity-track])::after {
456
+ content: "";
457
+ 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%);
458
+ background-size: 0.5em 0.5em;
459
+ background-position: 0 0, 0.25em 0, 0.25em -0.25em, 0 0.25em;
460
+ border-radius: 1em;
461
+ position: absolute;
462
+ inset: 0;
463
+ }
464
+
465
+ :where([oui-color-picker-output]) {
466
+ padding: 1em 0 0;
467
+ display: flex;
468
+ flex-flow: column nowrap;
469
+ gap: 1em;
470
+ border-top: 1px solid var(--oui-gray-3);
471
+ }
472
+ :where([oui-color-picker-content][popover] [oui-color-picker-output]) {
473
+ padding: 1em 1em 0;
474
+ margin: 0 -1em;
475
+ }
476
+
477
+ :where([oui-color-picker-output-format]) {
478
+ display: flex;
479
+ flex-flow: row nowrap;
480
+ align-items: stretch;
481
+ justify-content: flex-end;
482
+ gap: 0.5em;
483
+ }
484
+
485
+ :where([oui-color-picker-output-format-value]) {
486
+ --oui-outline-percentage: 100%;
487
+ --oui-outline-value: var(--oui-blue-6);
488
+ outline: 4px solid color-mix(in oklab, var(--oui-outline-value), transparent var(--oui-outline-percentage));
489
+ outline-offset: 0;
490
+ --oui-background-percentage: 0%;
491
+ --oui-foreground-percentage: 0%;
492
+ align-content: center;
493
+ background-color: color-mix(in oklab, var(--oui-background-value), transparent var(--oui-background-percentage));
494
+ border: 1px solid var(--oui-border-value, var(--oui-gray-3));
495
+ box-shadow: inset 0 2px 4px -1px var(--oui-gray-3);
496
+ color: color-mix(in oklab, var(--oui-foreground-value, inherit), transparent var(--oui-foreground-percentage));
497
+ -webkit-text-fill-color: color-mix(in oklab, var(--oui-foreground-value, inherit), transparent var(--oui-foreground-percentage));
498
+ transition: 0.125s ease-in-out;
499
+ transition-property: background, outline, border, box-shadow, color;
500
+ }
501
+ :where([oui-color-picker-output-format-value]).oui-validate:not([disabled],
502
+ [readonly],
503
+ [aria-disabled=true i],
504
+ [aria-readonly=true i],
505
+ :focus-visible,
506
+ :focus-within):is(:user-invalid:not([aria-invalid=false i]), [aria-invalid=true i]) {
507
+ --oui-border-value: var(--oui-red-5);
508
+ --oui-foreground-value: var(--oui-red-9);
509
+ --oui-outline-percentage: 82.5%;
510
+ --oui-outline-value: var(--oui-red-6);
511
+ }
512
+ :where([oui-color-picker-output-format-value]).oui-validate:not([disabled],
513
+ [readonly],
514
+ [aria-disabled=true i],
515
+ [aria-readonly=true i],
516
+ :focus-visible,
517
+ :focus-within):is(:user-valid:not([aria-invalid=true i]), [aria-invalid=false i]) {
518
+ --oui-border-value: var(--oui-green-5);
519
+ --oui-foreground-value: var(--oui-green-9);
520
+ --oui-outline-percentage: 82.5%;
521
+ --oui-outline-value: var(--oui-green-6);
522
+ }
523
+ :where([oui-color-picker-output-format-value]):not([disabled], [readonly], [aria-disabled=true i], [aria-readonly=true i]):focus-visible, :where([oui-color-picker-output-format-value]):not([disabled], [readonly], [aria-disabled=true i], [aria-readonly=true i]):focus-within {
524
+ --oui-border-value: var(--oui-blue-5);
525
+ --oui-foreground-value: inherit;
526
+ --oui-outline-percentage: 75%;
527
+ --oui-outline-value: var(--oui-blue-6);
528
+ }
529
+ @media (hover: hover) {
530
+ :where([oui-color-picker-output-format-value]):not([disabled], [readonly], [aria-disabled=true i], [aria-readonly=true i]):hover {
531
+ --oui-border-value: var(--oui-blue-4);
532
+ --oui-foreground-percentage: 0%;
533
+ --oui-foreground-value: inherit;
534
+ --oui-outline-percentage: 90%;
535
+ --oui-outline-value: var(--oui-blue-6);
536
+ }
537
+ }
538
+ :where([oui-color-picker-output-format-value]):is([disabled], [readonly], [aria-disabled=true i], [aria-readonly=true i]) {
539
+ --oui-foreground-percentage: 25%;
540
+ font-style: italic;
541
+ }
542
+ :where([oui-color-picker-output-format-value]):is([disabled], [readonly], [aria-disabled=true i], [aria-readonly=true i]):focus-visible {
543
+ --oui-outline-percentage: 75%;
544
+ }
545
+ :where([oui-color-picker-output-format-value]):is([disabled], [aria-disabled=true i]) {
546
+ --oui-background-percentage: 50%;
547
+ }
548
+ :where([oui-color-picker-output-format-value]) {
549
+ padding-right: 2em;
550
+ background-color: var(--oui-absolute);
551
+ background-position: right 0.5em center;
552
+ border-radius: 0.25em;
553
+ }
554
+
555
+ :where([oui-color-picker-output-input]) {
556
+ --oui-outline-percentage: 100%;
557
+ --oui-outline-value: var(--oui-blue-6);
558
+ outline: 4px solid color-mix(in oklab, var(--oui-outline-value), transparent var(--oui-outline-percentage));
559
+ outline-offset: 0;
560
+ --oui-background-percentage: 0%;
561
+ --oui-foreground-percentage: 0%;
562
+ align-content: center;
563
+ background-color: color-mix(in oklab, var(--oui-background-value), transparent var(--oui-background-percentage));
564
+ border: 1px solid var(--oui-border-value, var(--oui-gray-3));
565
+ box-shadow: inset 0 2px 4px -1px var(--oui-gray-3);
566
+ color: color-mix(in oklab, var(--oui-foreground-value, inherit), transparent var(--oui-foreground-percentage));
567
+ -webkit-text-fill-color: color-mix(in oklab, var(--oui-foreground-value, inherit), transparent var(--oui-foreground-percentage));
568
+ transition: 0.125s ease-in-out;
569
+ transition-property: background, outline, border, box-shadow, color;
570
+ }
571
+ :where([oui-color-picker-output-input]).oui-validate:not([disabled],
572
+ [readonly],
573
+ [aria-disabled=true i],
574
+ [aria-readonly=true i],
575
+ :focus-visible,
576
+ :focus-within):is(:user-invalid:not([aria-invalid=false i]), [aria-invalid=true i]) {
577
+ --oui-border-value: var(--oui-red-5);
578
+ --oui-foreground-value: var(--oui-red-9);
579
+ --oui-outline-percentage: 82.5%;
580
+ --oui-outline-value: var(--oui-red-6);
581
+ }
582
+ :where([oui-color-picker-output-input]).oui-validate:not([disabled],
583
+ [readonly],
584
+ [aria-disabled=true i],
585
+ [aria-readonly=true i],
586
+ :focus-visible,
587
+ :focus-within):is(:user-valid:not([aria-invalid=true i]), [aria-invalid=false i]) {
588
+ --oui-border-value: var(--oui-green-5);
589
+ --oui-foreground-value: var(--oui-green-9);
590
+ --oui-outline-percentage: 82.5%;
591
+ --oui-outline-value: var(--oui-green-6);
592
+ }
593
+ :where([oui-color-picker-output-input]):not([disabled], [readonly], [aria-disabled=true i], [aria-readonly=true i]):focus-visible, :where([oui-color-picker-output-input]):not([disabled], [readonly], [aria-disabled=true i], [aria-readonly=true i]):focus-within {
594
+ --oui-border-value: var(--oui-blue-5);
595
+ --oui-foreground-value: inherit;
596
+ --oui-outline-percentage: 75%;
597
+ --oui-outline-value: var(--oui-blue-6);
598
+ }
599
+ @media (hover: hover) {
600
+ :where([oui-color-picker-output-input]):not([disabled], [readonly], [aria-disabled=true i], [aria-readonly=true i]):hover {
601
+ --oui-border-value: var(--oui-blue-4);
602
+ --oui-foreground-percentage: 0%;
603
+ --oui-foreground-value: inherit;
604
+ --oui-outline-percentage: 90%;
605
+ --oui-outline-value: var(--oui-blue-6);
606
+ }
607
+ }
608
+ :where([oui-color-picker-output-input]):is([disabled], [readonly], [aria-disabled=true i], [aria-readonly=true i]) {
609
+ --oui-foreground-percentage: 25%;
610
+ font-style: italic;
611
+ }
612
+ :where([oui-color-picker-output-input]):is([disabled], [readonly], [aria-disabled=true i], [aria-readonly=true i]):focus-visible {
613
+ --oui-outline-percentage: 75%;
614
+ }
615
+ :where([oui-color-picker-output-input]):is([disabled], [aria-disabled=true i]) {
616
+ --oui-background-percentage: 50%;
617
+ }
618
+ :where([oui-color-picker-output-input]) {
619
+ width: 4em;
620
+ background-color: var(--oui-absolute);
621
+ border-radius: 0.25em;
622
+ font-family: monospace, monospace;
623
+ }
624
+
625
+ :where([oui-color-picker-output-item]) {
626
+ display: flex;
627
+ flex-flow: row wrap;
628
+ gap: 1em;
629
+ }
630
+ :where([oui-color-picker-output-item] [oui-color-picker-output-input]) {
631
+ width: auto;
632
+ flex: 1;
633
+ }
634
+ :where([oui-color-picker-output-item]:only-child)::before {
635
+ font-size: 0.875rem;
636
+ font-weight: bold;
637
+ align-self: flex-start;
638
+ cursor: pointer;
639
+ transition: color 0.125s ease-in-out;
640
+ }
641
+ @media (hover: hover) {
642
+ :where(:where([oui-color-picker-output-item]:only-child)::before:hover) {
643
+ color: var(--oui-blue-8);
644
+ }
645
+ }
646
+ :where([oui-color-picker-output-item]:only-child)::before {
647
+ content: attr(aria-label);
648
+ align-self: center;
649
+ cursor: default;
650
+ }
651
+
652
+ :where([oui-color-picker-toggle]) {
653
+ --oui-background-percentage: 50%;
654
+ --oui-background-value: var(--oui-gray-2);
655
+ --oui-foreground-percentage: 0%;
656
+ --oui-foreground-value: var(--oui-gray-8);
657
+ --oui-outline-percentage: 100%;
658
+ --oui-outline-value: var(--oui-gray-5);
659
+ --oui-shadow-inset: color-mix(in oklab, var(--oui-absolute), transparent 75%);
660
+ --oui-shadow-percentage: 82.5%;
661
+ --oui-shadow-value: color-mix(
662
+ in oklab,
663
+ var(--oui-outline-value),
664
+ transparent var(--oui-shadow-percentage)
665
+ );
666
+ 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);
667
+ padding: 0.5em 0.75em;
668
+ display: inline-flex;
669
+ flex-flow: row wrap;
670
+ gap: 0.75em;
671
+ align-items: center;
672
+ border-radius: 0.25em;
673
+ background-color: color-mix(in oklab, var(--oui-background-value), transparent var(--oui-background-percentage));
674
+ outline: 4px solid color-mix(in oklab, var(--oui-outline-value), transparent var(--oui-outline-percentage));
675
+ border: none;
676
+ color: color-mix(in oklab, var(--oui-foreground-value), transparent var(--oui-foreground-percentage));
677
+ line-height: 1.25;
678
+ position: relative;
679
+ transition: 0.125s ease-in-out;
680
+ transition-property: background, outline, box-shadow, color;
681
+ }
682
+ :where([oui-color-picker-toggle])::after {
683
+ content: "";
684
+ width: 1em;
685
+ height: 1em;
686
+ display: inline-flex;
687
+ opacity: 0;
688
+ background-color: color-mix(in oklab, var(--oui-foreground-value), transparent var(--oui-foreground-percentage));
689
+ -webkit-mask-image: url("");
690
+ mask-image: url("");
691
+ -webkit-mask-position: center;
692
+ mask-position: center;
693
+ -webkit-mask-repeat: no-repeat;
694
+ mask-repeat: no-repeat;
695
+ -webkit-mask-size: 1em 1em;
696
+ mask-size: 1em 1em;
697
+ pointer-events: none;
698
+ transition: 0.125s ease-in-out;
699
+ transition-property: background-color, color, opacity, -webkit-mask-image;
700
+ transition-property: background-color, color, mask-image, opacity;
701
+ transition-property: background-color, color, mask-image, opacity, -webkit-mask-image;
702
+ position: absolute;
703
+ inset: 50% auto auto 50%;
704
+ transform: translate3d(-50%, -50%, 0);
705
+ }
706
+ :where([oui-color-picker-toggle]):has(.oui-icon:is(:first-child))::after {
707
+ inset: auto;
708
+ transform: none;
709
+ }
710
+ :where([oui-color-picker-toggle]):has(.oui-icon:is(:last-child))::after {
711
+ inset: auto 0.75em auto auto;
712
+ transform: none;
713
+ }
714
+ :where([oui-color-picker-toggle]):focus-visible {
715
+ --oui-outline-percentage: 75%;
716
+ }
717
+ @media (hover: hover) {
718
+ :where([oui-color-picker-toggle]):not([disabled], [aria-disabled=true i]):hover {
719
+ --oui-background-percentage: 50%;
720
+ --oui-foreground-percentage: 25%;
721
+ --oui-shadow-percentage: 90%;
722
+ }
723
+ }
724
+ :where([oui-color-picker-toggle]):not([disabled], [aria-disabled=true i])[aria-busy=true i]:not(:has(.oui-icon:is(:first-child, :last-child))), :where([oui-color-picker-toggle]):not([disabled], [aria-disabled=true i])[data-state=busy i]:not(:has(.oui-icon:is(:first-child, :last-child))), :where([oui-color-picker-toggle]):not([disabled], [aria-disabled=true i])[data-state=error i]:not(:has(.oui-icon:is(:first-child, :last-child))), :where([oui-color-picker-toggle]):not([disabled], [aria-disabled=true i])[data-state=loading i]:not(:has(.oui-icon:is(:first-child, :last-child))), :where([oui-color-picker-toggle]):not([disabled], [aria-disabled=true i])[data-state=success i]:not(:has(.oui-icon:is(:first-child, :last-child))) {
725
+ color: transparent;
726
+ }
727
+ :where([oui-color-picker-toggle]):not([disabled], [aria-disabled=true i])[aria-busy=true i]::after, :where([oui-color-picker-toggle]):not([disabled], [aria-disabled=true i])[data-state=busy i]::after, :where([oui-color-picker-toggle]):not([disabled], [aria-disabled=true i])[data-state=error i]::after, :where([oui-color-picker-toggle]):not([disabled], [aria-disabled=true i])[data-state=loading i]::after, :where([oui-color-picker-toggle]):not([disabled], [aria-disabled=true i])[data-state=success i]::after {
728
+ opacity: 1;
729
+ }
730
+ :where([oui-color-picker-toggle]):not([disabled], [aria-disabled=true i])[aria-busy=true i] .oui-icon, :where([oui-color-picker-toggle]):not([disabled], [aria-disabled=true i])[data-state=busy i] .oui-icon, :where([oui-color-picker-toggle]):not([disabled], [aria-disabled=true i])[data-state=error i] .oui-icon, :where([oui-color-picker-toggle]):not([disabled], [aria-disabled=true i])[data-state=loading i] .oui-icon, :where([oui-color-picker-toggle]):not([disabled], [aria-disabled=true i])[data-state=success i] .oui-icon {
731
+ opacity: 0;
732
+ }
733
+ :where([oui-color-picker-toggle]):not([disabled], [aria-disabled=true i])[aria-busy=true i], :where([oui-color-picker-toggle]):not([disabled], [aria-disabled=true i])[data-state=busy i], :where([oui-color-picker-toggle]):not([disabled], [aria-disabled=true i])[data-state=loading i] {
734
+ --oui-background-value: var(--oui-blue-2);
735
+ --oui-foreground-value: var(--oui-blue-8);
736
+ --oui-outline-value: var(--oui-blue-5);
737
+ }
738
+ :where([oui-color-picker-toggle]):not([disabled], [aria-disabled=true i])[aria-busy=true i]::after, :where([oui-color-picker-toggle]):not([disabled], [aria-disabled=true i])[data-state=busy i]::after, :where([oui-color-picker-toggle]):not([disabled], [aria-disabled=true i])[data-state=loading i]::after {
739
+ -webkit-mask-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiIGNsYXNzPSJpY29uIGljb24tdGFibGVyIGljb25zLXRhYmxlci1vdXRsaW5lIGljb24tdGFibGVyLWxvYWRlci0yIj48cGF0aCBzdHJva2U9Im5vbmUiIGQ9Ik0wIDBoMjR2MjRIMHoiIGZpbGw9Im5vbmUiIC8+PHBhdGggZD0iTTEyIDNhOSA5IDAgMSAwIDkgOSIgLz48L3N2Zz4=");
740
+ mask-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiIGNsYXNzPSJpY29uIGljb24tdGFibGVyIGljb25zLXRhYmxlci1vdXRsaW5lIGljb24tdGFibGVyLWxvYWRlci0yIj48cGF0aCBzdHJva2U9Im5vbmUiIGQ9Ik0wIDBoMjR2MjRIMHoiIGZpbGw9Im5vbmUiIC8+PHBhdGggZD0iTTEyIDNhOSA5IDAgMSAwIDkgOSIgLz48L3N2Zz4=");
741
+ transform-origin: center;
742
+ animation: oui-button-icon-centered 1s linear infinite;
743
+ }
744
+ @keyframes oui-button-icon-centered {
745
+ to {
746
+ transform: translate3d(-50%, -50%, 0) rotate3d(0, 0, 1, 360deg);
747
+ }
748
+ }
749
+ :where([oui-color-picker-toggle]):not([disabled], [aria-disabled=true i])[aria-busy=true i]:has(.oui-icon:is(:first-child, :last-child))::after, :where([oui-color-picker-toggle]):not([disabled], [aria-disabled=true i])[data-state=busy i]:has(.oui-icon:is(:first-child, :last-child))::after, :where([oui-color-picker-toggle]):not([disabled], [aria-disabled=true i])[data-state=loading i]:has(.oui-icon:is(:first-child, :last-child))::after {
750
+ animation: oui-button-icon-offset 1s linear infinite;
751
+ }
752
+ @keyframes oui-button-icon-offset {
753
+ to {
754
+ transform: rotate3d(0, 0, 1, 360deg);
755
+ }
756
+ }
757
+ :where([oui-color-picker-toggle]):not([disabled], [aria-disabled=true i])[data-state=error i] {
758
+ --oui-background-value: var(--oui-red-2);
759
+ --oui-foreground-value: var(--oui-red-8);
760
+ --oui-outline-value: var(--oui-red-5);
761
+ }
762
+ :where([oui-color-picker-toggle]):not([disabled], [aria-disabled=true i])[data-state=error i]::after {
763
+ -webkit-mask-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiIGNsYXNzPSJpY29uIGljb24tdGFibGVyIGljb25zLXRhYmxlci1vdXRsaW5lIGljb24tdGFibGVyLXgiPjxwYXRoIHN0cm9rZT0ibm9uZSIgZD0iTTAgMGgyNHYyNEgweiIgZmlsbD0ibm9uZSIgLz48cGF0aCBkPSJNMTggNmwtMTIgMTIiIC8+PHBhdGggZD0iTTYgNmwxMiAxMiIgLz48L3N2Zz4=");
764
+ mask-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiIGNsYXNzPSJpY29uIGljb24tdGFibGVyIGljb25zLXRhYmxlci1vdXRsaW5lIGljb24tdGFibGVyLXgiPjxwYXRoIHN0cm9rZT0ibm9uZSIgZD0iTTAgMGgyNHYyNEgweiIgZmlsbD0ibm9uZSIgLz48cGF0aCBkPSJNMTggNmwtMTIgMTIiIC8+PHBhdGggZD0iTTYgNmwxMiAxMiIgLz48L3N2Zz4=");
765
+ }
766
+ :where([oui-color-picker-toggle]):not([disabled], [aria-disabled=true i])[data-state=success i] {
767
+ --oui-background-value: var(--oui-green-2);
768
+ --oui-foreground-value: var(--oui-green-8);
769
+ --oui-outline-value: var(--oui-green-5);
770
+ }
771
+ :where([oui-color-picker-toggle]):not([disabled], [aria-disabled=true i])[data-state=success i]::after {
772
+ -webkit-mask-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiIGNsYXNzPSJpY29uIGljb24tdGFibGVyIGljb25zLXRhYmxlci1vdXRsaW5lIGljb24tdGFibGVyLWNoZWNrIj48cGF0aCBzdHJva2U9Im5vbmUiIGQ9Ik0wIDBoMjR2MjRIMHoiIGZpbGw9Im5vbmUiIC8+PHBhdGggZD0iTTUgMTJsNSA1bDEwIC0xMCIgLz48L3N2Zz4=");
773
+ mask-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiIGNsYXNzPSJpY29uIGljb24tdGFibGVyIGljb25zLXRhYmxlci1vdXRsaW5lIGljb24tdGFibGVyLWNoZWNrIj48cGF0aCBzdHJva2U9Im5vbmUiIGQ9Ik0wIDBoMjR2MjRIMHoiIGZpbGw9Im5vbmUiIC8+PHBhdGggZD0iTTUgMTJsNSA1bDEwIC0xMCIgLz48L3N2Zz4=");
774
+ }
775
+ :where([oui-color-picker-toggle]):not([disabled], [aria-disabled=true i]):active {
776
+ 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);
777
+ scale: 0.95;
778
+ }
779
+ :where([oui-color-picker-toggle]):not([disabled], [aria-disabled=true i]):active[aria-pressed=true i], :where([oui-color-picker-toggle]):not([disabled], [aria-disabled=true i]):active[aria-selected=true i] {
780
+ scale: 1;
781
+ }
782
+ :where([oui-color-picker-toggle])[disabled], :where([oui-color-picker-toggle])[aria-disabled=true i] {
783
+ --oui-background-percentage: 80%;
784
+ --oui-foreground-percentage: 25%;
785
+ --oui-shadow-percentage: 92.5%;
786
+ font-style: italic;
787
+ }
788
+ :where([oui-color-picker-toggle]) .oui-icon {
789
+ width: 1em;
790
+ height: 1em;
791
+ }
792
+ :where([oui-color-picker-toggle]) .oui-icon:is(:first-child, :last-child) {
793
+ transition: opacity 0.125s ease-in-out;
794
+ }
795
+ :where([oui-color-picker-toggle]) {
796
+ 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);
797
+ --oui-background-value: var(--oui-color-picker-hex);
798
+ --oui-outline-value: var(--oui-gray-6);
799
+ width: 2.5em;
800
+ margin: 1px 0;
801
+ border: 1px solid var(--oui-absolute);
802
+ border-top-left-radius: 0;
803
+ border-bottom-left-radius: 0;
804
+ position: relative;
805
+ }
806
+ :where([oui-color-picker-toggle])::after {
807
+ opacity: 1;
808
+ background-color: var(--oui-color-picker-foreground);
809
+ }
810
+ :where([oui-color-picker-toggle])[aria-expanded=false i]::after {
811
+ -webkit-mask-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiIGNsYXNzPSJpY29uIGljb24tdGFibGVyIGljb25zLXRhYmxlci1vdXRsaW5lIGljb24tdGFibGVyLWNoZXZyb24tcmlnaHQiPjxwYXRoIHN0cm9rZT0ibm9uZSIgZD0iTTAgMGgyNHYyNEgweiIgZmlsbD0ibm9uZSIgLz48cGF0aCBkPSJNOSA2bDYgNmwtNiA2IiAvPjwvc3ZnPg==");
812
+ mask-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiIGNsYXNzPSJpY29uIGljb24tdGFibGVyIGljb25zLXRhYmxlci1vdXRsaW5lIGljb24tdGFibGVyLWNoZXZyb24tcmlnaHQiPjxwYXRoIHN0cm9rZT0ibm9uZSIgZD0iTTAgMGgyNHYyNEgweiIgZmlsbD0ibm9uZSIgLz48cGF0aCBkPSJNOSA2bDYgNmwtNiA2IiAvPjwvc3ZnPg==");
813
+ }
814
+ :where([oui-color-picker-toggle])[aria-expanded=true i]::after {
815
+ -webkit-mask-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiIGNsYXNzPSJpY29uIGljb24tdGFibGVyIGljb25zLXRhYmxlci1vdXRsaW5lIGljb24tdGFibGVyLWNoZXZyb24tZG93biI+PHBhdGggc3Ryb2tlPSJub25lIiBkPSJNMCAwaDI0djI0SDB6IiBmaWxsPSJub25lIiAvPjxwYXRoIGQ9Ik02IDlsNiA2bDYgLTYiIC8+PC9zdmc+");
816
+ mask-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiIGNsYXNzPSJpY29uIGljb24tdGFibGVyIGljb25zLXRhYmxlci1vdXRsaW5lIGljb24tdGFibGVyLWNoZXZyb24tZG93biI+PHBhdGggc3Ryb2tlPSJub25lIiBkPSJNMCAwaDI0djI0SDB6IiBmaWxsPSJub25lIiAvPjxwYXRoIGQ9Ik02IDlsNiA2bDYgLTYiIC8+PC9zdmc+");
817
+ }
818
+ :where([oui-color-picker-toggle]:active) {
819
+ scale: 1;
820
+ }
821
+
822
+ :where([oui-color-picker-well]) {
823
+ --oui-outline-percentage: 100%;
824
+ --oui-outline-value: var(--oui-blue-6);
825
+ padding: 100% 0 0;
826
+ background-color: hsl(var(--oui-color-picker-hue), 100%, 50%);
827
+ 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%);
828
+ outline: 4px solid color-mix(in oklab, var(--oui-outline-value), transparent var(--oui-outline-percentage));
829
+ outline-offset: 4px;
830
+ border-radius: 0.125em;
831
+ position: relative;
832
+ transition: outline 0.125s ease-in-out;
833
+ }
834
+ :where([oui-color-picker-well]:has(:focus-visible)) {
835
+ --oui-outline-percentage: 75%;
836
+ }
837
+ @media (hover: hover) {
838
+ :where([oui-color-picker-well]:hover) {
839
+ --oui-outline-percentage: 75%;
840
+ }
841
+ }
842
+
843
+ :where([oui-color-picker-well-knob]) {
844
+ --oui-outline-value: var(--oui-absolute);
845
+ outline-offset: 2px;
846
+ inset: calc((100 - var(--oui-color-picker-lightness)) * 1%) 0 0 calc(var(--oui-color-picker-saturation) * 1%);
847
+ transform: translate3d(-50%, -50%, 0);
848
+ cursor: move;
849
+ }
850
+ :where([oui-color-picker-well-knob]:focus-visible) {
851
+ --oui-outline-percentage: 33.3333%;
852
+ }
853
+ @media (hover: hover) {
854
+ :where([oui-color-picker-well-knob]:hover) {
855
+ --oui-outline-percentage: 33.3333%;
856
+ }
857
+ }
858
+
859
+