@oscarpalmer/oui 0.38.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 (187) hide show
  1. package/dist/css/badge.css +11 -8
  2. package/dist/css/button.css +106 -14
  3. package/dist/css/color-picker.css +555 -73
  4. package/dist/css/color.css +86 -86
  5. package/dist/css/combobox.css +98 -4
  6. package/dist/css/content.css +7 -6
  7. package/dist/css/floatable.css +1 -3
  8. package/dist/css/form.css +99 -6
  9. package/dist/css/icon.css +99 -0
  10. package/dist/css/listbox.css +3 -0
  11. package/dist/css/message.css +4 -3
  12. package/dist/css/mixins/button.mixins.css +1 -0
  13. package/dist/css/reset.css +1 -1
  14. package/dist/css/tabs.css +95 -3
  15. package/dist/css/typography.css +90 -0
  16. package/dist/js/color-picker/constants.color-picker.d.mts +2 -0
  17. package/dist/js/color-picker/constants.color-picker.mjs +59 -0
  18. package/dist/js/color-picker/dom.color-picker.d.mts +8 -0
  19. package/dist/js/color-picker/dom.color-picker.mjs +191 -0
  20. package/dist/js/color-picker/event.color-picker.d.mts +9 -0
  21. package/dist/js/color-picker/event.color-picker.mjs +2 -0
  22. package/dist/js/color-picker/form.color-picker.d.mts +5 -0
  23. package/dist/js/color-picker/form.color-picker.mjs +24 -0
  24. package/dist/js/color-picker/index.d.mts +2 -0
  25. package/dist/js/color-picker/index.mjs +303 -0
  26. package/dist/js/color-picker/misc.color-picker.d.mts +2 -0
  27. package/dist/js/color-picker/misc.color-picker.mjs +2 -0
  28. package/dist/js/color-picker/models.color-picker.d.mts +2 -0
  29. package/dist/js/color-picker/models.color-picker.mjs +24 -0
  30. package/dist/js/color-picker/output.color-picker.d.mts +8 -0
  31. package/dist/js/color-picker/output.color-picker.mjs +233 -0
  32. package/dist/js/color-picker/state.color-picker.d.mts +8 -0
  33. package/dist/js/color-picker/state.color-picker.mjs +2 -0
  34. package/dist/js/combobox/constants.combobox.d.mts +1 -1
  35. package/dist/js/combobox/dom.combobox.d.mts +12 -13
  36. package/dist/js/combobox/dom.combobox.mjs +5 -2
  37. package/dist/js/combobox/event.combobox.d.mts +20 -21
  38. package/dist/js/combobox/event.combobox.mjs +1 -1
  39. package/dist/js/combobox/index.d.mts +1 -1
  40. package/dist/js/combobox/index.mjs +2 -2
  41. package/dist/js/combobox/misc.combobox.d.mts +1 -1
  42. package/dist/js/combobox/misc.combobox.mjs +1 -1
  43. package/dist/js/combobox/models.combobox.d.mts +12 -13
  44. package/dist/js/combobox/state.combobox.d.mts +8 -9
  45. package/dist/js/combobox/state.combobox.mjs +1 -1
  46. package/dist/js/constants.color-picker-B-gFjL8m.d.mts +364 -0
  47. package/dist/js/constants.combobox-8EMRmv09.d.mts +18 -0
  48. package/dist/js/constants.listbox-DGnX32kv.d.mts +8 -0
  49. package/dist/js/dialog.d.mts +2 -2
  50. package/dist/js/dialog.mjs +1 -1
  51. package/dist/js/{draggable-a6w0J1OD.d.mts → draggable-B5-70SZm.d.mts} +5 -4
  52. package/dist/js/event.color-picker-BEpq0Adu.mjs +485 -0
  53. package/dist/js/floatable/floatable.embedded.d.mts +1 -1
  54. package/dist/js/floatable/floatable.embedded.mjs +2 -2
  55. package/dist/js/floatable/floatable.standalone.d.mts +1 -1
  56. package/dist/js/{floatable.embedded-Bct4U5Dm.d.mts → floatable.embedded-DQYkXt8X.d.mts} +1 -1
  57. package/dist/js/focus-trap/focus-trap.embedded.d.mts +1 -1
  58. package/dist/js/focus-trap/focus-trap.embedded.mjs +3 -3
  59. package/dist/js/focus-trap/focus-trap.standalone.d.mts +1 -1
  60. package/dist/js/{focus-trap.embedded-DR8NpZfr.d.mts → focus-trap.embedded-CjyFQYow.d.mts} +2 -2
  61. package/dist/js/{index-DJdFlTLm.d.mts → index-C5D3-oiI.d.mts} +2 -2
  62. package/dist/js/index.d.mts +7 -7
  63. package/dist/js/index.mjs +5 -3
  64. package/dist/js/internal/attributable.d.mts +2 -3
  65. package/dist/js/internal/draggable.d.mts +1 -1
  66. package/dist/js/internal/draggable.mjs +5 -5
  67. package/dist/js/internal/listbox/listbox.constants.d.mts +7 -10
  68. package/dist/js/internal/listbox/listbox.constants.mjs +15 -16
  69. package/dist/js/internal/listbox/listbox.data.d.mts +9 -10
  70. package/dist/js/internal/listbox/listbox.data.mjs +1 -1
  71. package/dist/js/internal/listbox/listbox.dom.d.mts +19 -20
  72. package/dist/js/internal/listbox/listbox.dom.mjs +1 -1
  73. package/dist/js/internal/listbox/listbox.event.d.mts +3 -4
  74. package/dist/js/internal/listbox/listbox.event.mjs +4 -4
  75. package/dist/js/internal/listbox/listbox.form.d.mts +4 -5
  76. package/dist/js/internal/listbox/listbox.misc.d.mts +10 -11
  77. package/dist/js/internal/listbox/listbox.misc.mjs +1 -1
  78. package/dist/js/internal/listbox/listbox.model.d.mts +1 -1
  79. package/dist/js/internal/listbox/listbox.state.d.mts +5 -6
  80. package/dist/js/internal/listbox/listbox.state.mjs +1 -1
  81. package/dist/js/internal/misc.d.mts +4 -4
  82. package/dist/js/internal/misc.mjs +9 -1
  83. package/dist/js/internal/navigable.d.mts +9 -10
  84. package/dist/js/internal/navigable.mjs +3 -3
  85. package/dist/js/listbox/constants.listbox.d.mts +1 -1
  86. package/dist/js/listbox/event.listbox.d.mts +6 -7
  87. package/dist/js/listbox/event.listbox.mjs +1 -1
  88. package/dist/js/listbox/index.d.mts +5 -5
  89. package/dist/js/listbox/index.mjs +2 -2
  90. package/dist/js/listbox/misc.listbox.d.mts +1 -1
  91. package/dist/js/listbox/misc.listbox.mjs +1 -1
  92. package/dist/js/listbox/state.listbox.d.mts +7 -8
  93. package/dist/js/listbox/state.listbox.mjs +1 -1
  94. package/dist/js/{listbox.data-C7CRa5Ya.mjs → listbox.data-DQ7-x2uY.mjs} +5 -5
  95. package/dist/js/{listbox.model-CRReGOmu.d.mts → listbox.model-BHPA7GM4.d.mts} +3 -3
  96. package/dist/js/menu.mjs +2 -2
  97. package/dist/js/{misc.listbox-Cyz2CRDy.mjs → misc.listbox-DKB-j0UK.mjs} +4 -4
  98. package/dist/js/{misc.listbox-gnoJhrTr.d.mts → misc.listbox-mZMuYOxg.d.mts} +1 -1
  99. package/dist/js/movable/movable.embedded.d.mts +1 -1
  100. package/dist/js/movable/movable.embedded.mjs +2 -2
  101. package/dist/js/movable/movable.standalone.d.mts +1 -1
  102. package/dist/js/popover.d.mts +2 -2
  103. package/dist/js/popover.mjs +1 -1
  104. package/dist/js/resizable/resizable.embedded.d.mts +1 -1
  105. package/dist/js/resizable/resizable.embedded.mjs +5 -5
  106. package/dist/js/resizable/resizable.standalone.d.mts +1 -1
  107. package/dist/js/{resizable.embedded-3qoR0Bjm.d.mts → resizable.embedded-dvhdfQgt.d.mts} +1 -1
  108. package/dist/js/sortable/sortable.embedded.d.mts +1 -1
  109. package/dist/js/sortable/sortable.embedded.mjs +4 -4
  110. package/dist/js/sortable/sortable.standalone.d.mts +1 -1
  111. package/dist/js/splitter.d.mts +2 -3
  112. package/dist/js/splitter.mjs +7 -7
  113. package/dist/js/{state.combobox-Qm3FWzYW.mjs → state.combobox-BWDFHwoi.mjs} +11 -11
  114. package/dist/js/tabs.d.mts +4 -5
  115. package/dist/js/tooltip.d.mts +1 -1
  116. package/dist/js/tooltip.mjs +3 -3
  117. package/package.json +24 -24
  118. package/dist/js/color-picker.d.mts +0 -213
  119. package/dist/js/color-picker.mjs +0 -924
  120. package/dist/js/constants.combobox-DmRAMC64.d.mts +0 -26
  121. package/dist/js/constants.listbox-DRsXUxd3.d.mts +0 -14
  122. package/src/css/a11y.scss +0 -13
  123. package/src/css/badge.scss +0 -62
  124. package/src/css/button.scss +0 -50
  125. package/src/css/color-picker.scss +0 -344
  126. package/src/css/color.scss +0 -113
  127. package/src/css/combobox.scss +0 -255
  128. package/src/css/content.scss +0 -181
  129. package/src/css/flex.scss +0 -107
  130. package/src/css/floatable.scss +0 -155
  131. package/src/css/form.scss +0 -575
  132. package/src/css/listbox.scss +0 -121
  133. package/src/css/message.scss +0 -74
  134. package/src/css/mixins/badge.mixins.scss +0 -53
  135. package/src/css/mixins/button.mixins.scss +0 -112
  136. package/src/css/mixins/input.mixins.scss +0 -114
  137. package/src/css/mixins/message.mixins.scss +0 -41
  138. package/src/css/mixins/misc.mixins.scss +0 -48
  139. package/src/css/mixins/shadow.mixins.scss +0 -57
  140. package/src/css/reset.scss +0 -392
  141. package/src/css/splitter.scss +0 -89
  142. package/src/css/table.scss +0 -107
  143. package/src/css/tabs.scss +0 -74
  144. package/src/js/color-picker.ts +0 -1653
  145. package/src/js/combobox/constants.combobox.ts +0 -83
  146. package/src/js/combobox/dom.combobox.ts +0 -411
  147. package/src/js/combobox/event.combobox.ts +0 -365
  148. package/src/js/combobox/index.ts +0 -382
  149. package/src/js/combobox/misc.combobox.ts +0 -104
  150. package/src/js/combobox/models.combobox.ts +0 -54
  151. package/src/js/combobox/state.combobox.ts +0 -246
  152. package/src/js/dialog.ts +0 -255
  153. package/src/js/floatable/floatable.embedded.ts +0 -336
  154. package/src/js/floatable/floatable.standalone.ts +0 -6
  155. package/src/js/focus-trap/focus-trap.embedded.ts +0 -411
  156. package/src/js/focus-trap/focus-trap.standalone.ts +0 -1
  157. package/src/js/index.ts +0 -16
  158. package/src/js/internal/attributable.ts +0 -73
  159. package/src/js/internal/draggable.ts +0 -657
  160. package/src/js/internal/listbox/listbox.constants.ts +0 -25
  161. package/src/js/internal/listbox/listbox.data.ts +0 -287
  162. package/src/js/internal/listbox/listbox.dom.ts +0 -446
  163. package/src/js/internal/listbox/listbox.event.ts +0 -129
  164. package/src/js/internal/listbox/listbox.form.ts +0 -125
  165. package/src/js/internal/listbox/listbox.misc.ts +0 -135
  166. package/src/js/internal/listbox/listbox.model.ts +0 -169
  167. package/src/js/internal/listbox/listbox.state.ts +0 -82
  168. package/src/js/internal/misc.ts +0 -27
  169. package/src/js/internal/navigable.ts +0 -317
  170. package/src/js/l10n.ts +0 -192
  171. package/src/js/listbox/constants.listbox.ts +0 -61
  172. package/src/js/listbox/event.listbox.ts +0 -106
  173. package/src/js/listbox/index.ts +0 -364
  174. package/src/js/listbox/misc.listbox.ts +0 -70
  175. package/src/js/listbox/state.listbox.ts +0 -194
  176. package/src/js/menu.ts +0 -348
  177. package/src/js/movable/movable.embedded.ts +0 -318
  178. package/src/js/movable/movable.standalone.ts +0 -2
  179. package/src/js/popover.ts +0 -229
  180. package/src/js/resizable/resizable.embedded.ts +0 -413
  181. package/src/js/resizable/resizable.standalone.ts +0 -5
  182. package/src/js/sortable/sortable.embedded.ts +0 -527
  183. package/src/js/sortable/sortable.standalone.ts +0 -2
  184. package/src/js/splitter.ts +0 -583
  185. package/src/js/tabs.ts +0 -441
  186. package/src/js/toolbar.ts +0 -63
  187. package/src/js/tooltip.ts +0 -367
@@ -3,13 +3,13 @@
3
3
 
4
4
  :where(.oui-pill, .oui-tag) {
5
5
  --oui-shadow-inset: color-mix(in oklab, var(--oui-absolute), transparent 50%);
6
- --oui-shadow-value: var(--oui-gray-6);
6
+ --oui-shadow-value: var(--oui-gray-5);
7
7
  --oui-shadow-mixed: color-mix(in oklab, var(--oui-shadow-value), transparent 87.5%);
8
8
  box-shadow: inset 0 1px 0 0 var(--oui-shadow-inset), 0 0 0 1px var(--oui-shadow-mixed), 0 1px 2px -0.5px var(--oui-shadow-mixed), 0 2px 4px -1px var(--oui-shadow-mixed);
9
9
  display: inline-flex;
10
10
  flex-flow: row nowrap;
11
11
  gap: 0.5em;
12
- background-color: color-mix(in oklab, var(--oui-background, var(--oui-gray-1)), transparent 25%);
12
+ background-color: color-mix(in oklab, var(--oui-background, var(--oui-gray-1)), transparent 62.5%);
13
13
  color: var(--oui-foreground, var(--oui-gray-8));
14
14
  text-shadow: 0 1px 0 var(--oui-absolute);
15
15
  line-height: 1.25;
@@ -25,6 +25,9 @@
25
25
  :where(.oui-pill--small, .oui-tag--small) {
26
26
  font-size: 0.875em;
27
27
  }
28
+ :where(.oui-pill--small) {
29
+ padding: 0.3333em 0.875em;
30
+ }
28
31
  :where(.oui-pill--tiny, .oui-tag--tiny) {
29
32
  color: color-mix(in oklab, var(--oui-foreground, var(--oui-gray-8)), transparent 12.5%);
30
33
  font-size: 0.75em;
@@ -41,32 +44,32 @@
41
44
  :where(.oui-pill--blue, .oui-tag--blue) {
42
45
  --oui-background: var(--oui-blue-1);
43
46
  --oui-foreground: var(--oui-blue-8);
44
- --oui-shadow-value: var(--oui-blue-6);
47
+ --oui-shadow-value: var(--oui-blue-5);
45
48
  }
46
49
  :where(.oui-pill--green, .oui-tag--green) {
47
50
  --oui-background: var(--oui-green-1);
48
51
  --oui-foreground: var(--oui-green-8);
49
- --oui-shadow-value: var(--oui-green-6);
52
+ --oui-shadow-value: var(--oui-green-5);
50
53
  }
51
54
  :where(.oui-pill--orange, .oui-tag--orange) {
52
55
  --oui-background: var(--oui-orange-1);
53
56
  --oui-foreground: var(--oui-orange-8);
54
- --oui-shadow-value: var(--oui-orange-6);
57
+ --oui-shadow-value: var(--oui-orange-5);
55
58
  }
56
59
  :where(.oui-pill--purple, .oui-tag--purple) {
57
60
  --oui-background: var(--oui-purple-1);
58
61
  --oui-foreground: var(--oui-purple-8);
59
- --oui-shadow-value: var(--oui-purple-6);
62
+ --oui-shadow-value: var(--oui-purple-5);
60
63
  }
61
64
  :where(.oui-pill--red, .oui-tag--red) {
62
65
  --oui-background: var(--oui-red-1);
63
66
  --oui-foreground: var(--oui-red-8);
64
- --oui-shadow-value: var(--oui-red-6);
67
+ --oui-shadow-value: var(--oui-red-5);
65
68
  }
66
69
  :where(.oui-pill--yellow, .oui-tag--yellow) {
67
70
  --oui-background: var(--oui-yellow-1);
68
71
  --oui-foreground: var(--oui-yellow-8);
69
- --oui-shadow-value: var(--oui-yellow-6);
72
+ --oui-shadow-value: var(--oui-yellow-5);
70
73
  }
71
74
 
72
75
 
@@ -1,13 +1,14 @@
1
1
  /*! https://github.com/oscarpalmer/oui */
2
2
 
3
3
 
4
+
4
5
  :where(.oui-button) {
5
- --oui-background-percentage: 25%;
6
+ --oui-background-percentage: 50%;
6
7
  --oui-background-value: var(--oui-gray-2);
7
8
  --oui-foreground-percentage: 0%;
8
9
  --oui-foreground-value: var(--oui-gray-8);
9
10
  --oui-outline-percentage: 100%;
10
- --oui-outline-value: var(--oui-gray-6);
11
+ --oui-outline-value: var(--oui-gray-5);
11
12
  --oui-shadow-inset: color-mix(in oklab, var(--oui-absolute), transparent 75%);
12
13
  --oui-shadow-percentage: 82.5%;
13
14
  --oui-shadow-value: color-mix(
@@ -27,9 +28,42 @@
27
28
  border: none;
28
29
  color: color-mix(in oklab, var(--oui-foreground-value), transparent var(--oui-foreground-percentage));
29
30
  line-height: 1.25;
31
+ position: relative;
30
32
  transition: 0.125s ease-in-out;
31
33
  transition-property: background, outline, box-shadow, color;
32
34
  }
35
+ :where(.oui-button)::after {
36
+ content: "";
37
+ width: 1em;
38
+ height: 1em;
39
+ display: inline-flex;
40
+ opacity: 0;
41
+ background-color: color-mix(in oklab, var(--oui-foreground-value), transparent var(--oui-foreground-percentage));
42
+ -webkit-mask-image: url("");
43
+ mask-image: url("");
44
+ -webkit-mask-position: center;
45
+ mask-position: center;
46
+ -webkit-mask-repeat: no-repeat;
47
+ mask-repeat: no-repeat;
48
+ -webkit-mask-size: 1em 1em;
49
+ mask-size: 1em 1em;
50
+ pointer-events: none;
51
+ transition: 0.125s ease-in-out;
52
+ transition-property: background-color, color, opacity, -webkit-mask-image;
53
+ transition-property: background-color, color, mask-image, opacity;
54
+ transition-property: background-color, color, mask-image, opacity, -webkit-mask-image;
55
+ position: absolute;
56
+ inset: 50% auto auto 50%;
57
+ transform: translate3d(-50%, -50%, 0);
58
+ }
59
+ :where(.oui-button):has(.oui-icon:is(:first-child))::after {
60
+ inset: auto;
61
+ transform: none;
62
+ }
63
+ :where(.oui-button):has(.oui-icon:is(:last-child))::after {
64
+ inset: auto 0.75em auto auto;
65
+ transform: none;
66
+ }
33
67
  :where(.oui-button):focus-visible {
34
68
  --oui-outline-percentage: 75%;
35
69
  }
@@ -40,6 +74,57 @@
40
74
  --oui-shadow-percentage: 90%;
41
75
  }
42
76
  }
77
+ :where(.oui-button):not([disabled], [aria-disabled=true i])[aria-busy=true i]:not(:has(.oui-icon:is(:first-child, :last-child))), :where(.oui-button):not([disabled], [aria-disabled=true i])[data-state=busy i]:not(:has(.oui-icon:is(:first-child, :last-child))), :where(.oui-button):not([disabled], [aria-disabled=true i])[data-state=error i]:not(:has(.oui-icon:is(:first-child, :last-child))), :where(.oui-button):not([disabled], [aria-disabled=true i])[data-state=loading i]:not(:has(.oui-icon:is(:first-child, :last-child))), :where(.oui-button):not([disabled], [aria-disabled=true i])[data-state=success i]:not(:has(.oui-icon:is(:first-child, :last-child))) {
78
+ color: transparent;
79
+ }
80
+ :where(.oui-button):not([disabled], [aria-disabled=true i])[aria-busy=true i]::after, :where(.oui-button):not([disabled], [aria-disabled=true i])[data-state=busy i]::after, :where(.oui-button):not([disabled], [aria-disabled=true i])[data-state=error i]::after, :where(.oui-button):not([disabled], [aria-disabled=true i])[data-state=loading i]::after, :where(.oui-button):not([disabled], [aria-disabled=true i])[data-state=success i]::after {
81
+ opacity: 1;
82
+ }
83
+ :where(.oui-button):not([disabled], [aria-disabled=true i])[aria-busy=true i] .oui-icon, :where(.oui-button):not([disabled], [aria-disabled=true i])[data-state=busy i] .oui-icon, :where(.oui-button):not([disabled], [aria-disabled=true i])[data-state=error i] .oui-icon, :where(.oui-button):not([disabled], [aria-disabled=true i])[data-state=loading i] .oui-icon, :where(.oui-button):not([disabled], [aria-disabled=true i])[data-state=success i] .oui-icon {
84
+ opacity: 0;
85
+ }
86
+ :where(.oui-button):not([disabled], [aria-disabled=true i])[aria-busy=true i], :where(.oui-button):not([disabled], [aria-disabled=true i])[data-state=busy i], :where(.oui-button):not([disabled], [aria-disabled=true i])[data-state=loading i] {
87
+ --oui-background-value: var(--oui-blue-2);
88
+ --oui-foreground-value: var(--oui-blue-8);
89
+ --oui-outline-value: var(--oui-blue-5);
90
+ }
91
+ :where(.oui-button):not([disabled], [aria-disabled=true i])[aria-busy=true i]::after, :where(.oui-button):not([disabled], [aria-disabled=true i])[data-state=busy i]::after, :where(.oui-button):not([disabled], [aria-disabled=true i])[data-state=loading i]::after {
92
+ -webkit-mask-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiIGNsYXNzPSJpY29uIGljb24tdGFibGVyIGljb25zLXRhYmxlci1vdXRsaW5lIGljb24tdGFibGVyLWxvYWRlci0yIj48cGF0aCBzdHJva2U9Im5vbmUiIGQ9Ik0wIDBoMjR2MjRIMHoiIGZpbGw9Im5vbmUiIC8+PHBhdGggZD0iTTEyIDNhOSA5IDAgMSAwIDkgOSIgLz48L3N2Zz4=");
93
+ mask-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiIGNsYXNzPSJpY29uIGljb24tdGFibGVyIGljb25zLXRhYmxlci1vdXRsaW5lIGljb24tdGFibGVyLWxvYWRlci0yIj48cGF0aCBzdHJva2U9Im5vbmUiIGQ9Ik0wIDBoMjR2MjRIMHoiIGZpbGw9Im5vbmUiIC8+PHBhdGggZD0iTTEyIDNhOSA5IDAgMSAwIDkgOSIgLz48L3N2Zz4=");
94
+ transform-origin: center;
95
+ animation: oui-button-icon-centered 1s linear infinite;
96
+ }
97
+ @keyframes oui-button-icon-centered {
98
+ to {
99
+ transform: translate3d(-50%, -50%, 0) rotate3d(0, 0, 1, 360deg);
100
+ }
101
+ }
102
+ :where(.oui-button):not([disabled], [aria-disabled=true i])[aria-busy=true i]:has(.oui-icon:is(:first-child, :last-child))::after, :where(.oui-button):not([disabled], [aria-disabled=true i])[data-state=busy i]:has(.oui-icon:is(:first-child, :last-child))::after, :where(.oui-button):not([disabled], [aria-disabled=true i])[data-state=loading i]:has(.oui-icon:is(:first-child, :last-child))::after {
103
+ animation: oui-button-icon-offset 1s linear infinite;
104
+ }
105
+ @keyframes oui-button-icon-offset {
106
+ to {
107
+ transform: rotate3d(0, 0, 1, 360deg);
108
+ }
109
+ }
110
+ :where(.oui-button):not([disabled], [aria-disabled=true i])[data-state=error i] {
111
+ --oui-background-value: var(--oui-red-2);
112
+ --oui-foreground-value: var(--oui-red-8);
113
+ --oui-outline-value: var(--oui-red-5);
114
+ }
115
+ :where(.oui-button):not([disabled], [aria-disabled=true i])[data-state=error i]::after {
116
+ -webkit-mask-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiIGNsYXNzPSJpY29uIGljb24tdGFibGVyIGljb25zLXRhYmxlci1vdXRsaW5lIGljb24tdGFibGVyLXgiPjxwYXRoIHN0cm9rZT0ibm9uZSIgZD0iTTAgMGgyNHYyNEgweiIgZmlsbD0ibm9uZSIgLz48cGF0aCBkPSJNMTggNmwtMTIgMTIiIC8+PHBhdGggZD0iTTYgNmwxMiAxMiIgLz48L3N2Zz4=");
117
+ mask-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiIGNsYXNzPSJpY29uIGljb24tdGFibGVyIGljb25zLXRhYmxlci1vdXRsaW5lIGljb24tdGFibGVyLXgiPjxwYXRoIHN0cm9rZT0ibm9uZSIgZD0iTTAgMGgyNHYyNEgweiIgZmlsbD0ibm9uZSIgLz48cGF0aCBkPSJNMTggNmwtMTIgMTIiIC8+PHBhdGggZD0iTTYgNmwxMiAxMiIgLz48L3N2Zz4=");
118
+ }
119
+ :where(.oui-button):not([disabled], [aria-disabled=true i])[data-state=success i] {
120
+ --oui-background-value: var(--oui-green-2);
121
+ --oui-foreground-value: var(--oui-green-8);
122
+ --oui-outline-value: var(--oui-green-5);
123
+ }
124
+ :where(.oui-button):not([disabled], [aria-disabled=true i])[data-state=success i]::after {
125
+ -webkit-mask-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiIGNsYXNzPSJpY29uIGljb24tdGFibGVyIGljb25zLXRhYmxlci1vdXRsaW5lIGljb24tdGFibGVyLWNoZWNrIj48cGF0aCBzdHJva2U9Im5vbmUiIGQ9Ik0wIDBoMjR2MjRIMHoiIGZpbGw9Im5vbmUiIC8+PHBhdGggZD0iTTUgMTJsNSA1bDEwIC0xMCIgLz48L3N2Zz4=");
126
+ mask-image: url("data:image/svg+xml;base64,PHN2ZyB4bWxucz0iaHR0cDovL3d3dy53My5vcmcvMjAwMC9zdmciIHdpZHRoPSIyNCIgaGVpZ2h0PSIyNCIgdmlld0JveD0iMCAwIDI0IDI0IiBmaWxsPSJub25lIiBzdHJva2U9ImN1cnJlbnRDb2xvciIgc3Ryb2tlLXdpZHRoPSIyIiBzdHJva2UtbGluZWNhcD0icm91bmQiIHN0cm9rZS1saW5lam9pbj0icm91bmQiIGNsYXNzPSJpY29uIGljb24tdGFibGVyIGljb25zLXRhYmxlci1vdXRsaW5lIGljb24tdGFibGVyLWNoZWNrIj48cGF0aCBzdHJva2U9Im5vbmUiIGQ9Ik0wIDBoMjR2MjRIMHoiIGZpbGw9Im5vbmUiIC8+PHBhdGggZD0iTTUgMTJsNSA1bDEwIC0xMCIgLz48L3N2Zz4=");
127
+ }
43
128
  :where(.oui-button):not([disabled], [aria-disabled=true i]):active {
44
129
  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
130
  scale: 0.95;
@@ -53,35 +138,42 @@
53
138
  --oui-shadow-percentage: 92.5%;
54
139
  font-style: italic;
55
140
  }
141
+ :where(.oui-button) .oui-icon {
142
+ width: 1em;
143
+ height: 1em;
144
+ }
145
+ :where(.oui-button) .oui-icon:is(:first-child, :last-child) {
146
+ transition: opacity 0.125s ease-in-out;
147
+ }
56
148
  :where(.oui-button--blue) {
57
- --oui-background-value: var(--oui-blue-3);
149
+ --oui-background-value: var(--oui-blue-2);
58
150
  --oui-foreground-value: var(--oui-blue-8);
59
- --oui-outline-value: var(--oui-blue-6);
151
+ --oui-outline-value: var(--oui-blue-5);
60
152
  }
61
153
  :where(.oui-button--green) {
62
- --oui-background-value: var(--oui-green-3);
154
+ --oui-background-value: var(--oui-green-2);
63
155
  --oui-foreground-value: var(--oui-green-8);
64
- --oui-outline-value: var(--oui-green-6);
156
+ --oui-outline-value: var(--oui-green-5);
65
157
  }
66
158
  :where(.oui-button--orange) {
67
- --oui-background-value: var(--oui-orange-3);
159
+ --oui-background-value: var(--oui-orange-2);
68
160
  --oui-foreground-value: var(--oui-orange-8);
69
- --oui-outline-value: var(--oui-orange-6);
161
+ --oui-outline-value: var(--oui-orange-5);
70
162
  }
71
163
  :where(.oui-button--purple) {
72
- --oui-background-value: var(--oui-purple-3);
164
+ --oui-background-value: var(--oui-purple-2);
73
165
  --oui-foreground-value: var(--oui-purple-8);
74
- --oui-outline-value: var(--oui-purple-6);
166
+ --oui-outline-value: var(--oui-purple-5);
75
167
  }
76
168
  :where(.oui-button--red) {
77
- --oui-background-value: var(--oui-red-3);
169
+ --oui-background-value: var(--oui-red-2);
78
170
  --oui-foreground-value: var(--oui-red-8);
79
- --oui-outline-value: var(--oui-red-6);
171
+ --oui-outline-value: var(--oui-red-5);
80
172
  }
81
173
  :where(.oui-button--yellow) {
82
- --oui-background-value: var(--oui-yellow-3);
174
+ --oui-background-value: var(--oui-yellow-2);
83
175
  --oui-foreground-value: var(--oui-yellow-8);
84
- --oui-outline-value: var(--oui-yellow-6);
176
+ --oui-outline-value: var(--oui-yellow-5);
85
177
  }
86
178
  :where(.oui-button--rounded) {
87
179
  padding: 0.5em 1em;