@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
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,14 +1,15 @@
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
- --oui-shadow-value: var(--oui-gray-6);
6
+ --oui-shadow-value: var(--oui-gray-5);
6
7
  --oui-shadow-mixed: color-mix(in oklab, var(--oui-shadow-value), transparent 87.5%);
7
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);
8
9
  display: inline-flex;
9
10
  flex-flow: row nowrap;
10
11
  gap: 0.5em;
11
- 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%);
12
13
  color: var(--oui-foreground, var(--oui-gray-8));
13
14
  text-shadow: 0 1px 0 var(--oui-absolute);
14
15
  line-height: 1.25;
@@ -24,6 +25,9 @@
24
25
  :where(.oui-pill--small, .oui-tag--small) {
25
26
  font-size: 0.875em;
26
27
  }
28
+ :where(.oui-pill--small) {
29
+ padding: 0.3333em 0.875em;
30
+ }
27
31
  :where(.oui-pill--tiny, .oui-tag--tiny) {
28
32
  color: color-mix(in oklab, var(--oui-foreground, var(--oui-gray-8)), transparent 12.5%);
29
33
  font-size: 0.75em;
@@ -40,32 +44,32 @@
40
44
  :where(.oui-pill--blue, .oui-tag--blue) {
41
45
  --oui-background: var(--oui-blue-1);
42
46
  --oui-foreground: var(--oui-blue-8);
43
- --oui-shadow-value: var(--oui-blue-6);
47
+ --oui-shadow-value: var(--oui-blue-5);
44
48
  }
45
49
  :where(.oui-pill--green, .oui-tag--green) {
46
50
  --oui-background: var(--oui-green-1);
47
51
  --oui-foreground: var(--oui-green-8);
48
- --oui-shadow-value: var(--oui-green-6);
52
+ --oui-shadow-value: var(--oui-green-5);
49
53
  }
50
54
  :where(.oui-pill--orange, .oui-tag--orange) {
51
55
  --oui-background: var(--oui-orange-1);
52
56
  --oui-foreground: var(--oui-orange-8);
53
- --oui-shadow-value: var(--oui-orange-6);
57
+ --oui-shadow-value: var(--oui-orange-5);
54
58
  }
55
59
  :where(.oui-pill--purple, .oui-tag--purple) {
56
60
  --oui-background: var(--oui-purple-1);
57
61
  --oui-foreground: var(--oui-purple-8);
58
- --oui-shadow-value: var(--oui-purple-6);
62
+ --oui-shadow-value: var(--oui-purple-5);
59
63
  }
60
64
  :where(.oui-pill--red, .oui-tag--red) {
61
65
  --oui-background: var(--oui-red-1);
62
66
  --oui-foreground: var(--oui-red-8);
63
- --oui-shadow-value: var(--oui-red-6);
67
+ --oui-shadow-value: var(--oui-red-5);
64
68
  }
65
69
  :where(.oui-pill--yellow, .oui-tag--yellow) {
66
70
  --oui-background: var(--oui-yellow-1);
67
71
  --oui-foreground: var(--oui-yellow-8);
68
- --oui-shadow-value: var(--oui-yellow-6);
72
+ --oui-shadow-value: var(--oui-yellow-5);
69
73
  }
70
74
 
71
75
 
@@ -1,12 +1,14 @@
1
1
  /*! https://github.com/oscarpalmer/oui */
2
2
 
3
+
4
+
3
5
  :where(.oui-button) {
4
- --oui-background-percentage: 25%;
6
+ --oui-background-percentage: 50%;
5
7
  --oui-background-value: var(--oui-gray-2);
6
8
  --oui-foreground-percentage: 0%;
7
9
  --oui-foreground-value: var(--oui-gray-8);
8
10
  --oui-outline-percentage: 100%;
9
- --oui-outline-value: var(--oui-gray-6);
11
+ --oui-outline-value: var(--oui-gray-5);
10
12
  --oui-shadow-inset: color-mix(in oklab, var(--oui-absolute), transparent 75%);
11
13
  --oui-shadow-percentage: 82.5%;
12
14
  --oui-shadow-value: color-mix(
@@ -26,9 +28,42 @@
26
28
  border: none;
27
29
  color: color-mix(in oklab, var(--oui-foreground-value), transparent var(--oui-foreground-percentage));
28
30
  line-height: 1.25;
31
+ position: relative;
29
32
  transition: 0.125s ease-in-out;
30
33
  transition-property: background, outline, box-shadow, color;
31
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
+ }
32
67
  :where(.oui-button):focus-visible {
33
68
  --oui-outline-percentage: 75%;
34
69
  }
@@ -39,8 +74,63 @@
39
74
  --oui-shadow-percentage: 90%;
40
75
  }
41
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
+ }
42
128
  :where(.oui-button):not([disabled], [aria-disabled=true i]):active {
43
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);
130
+ scale: 0.95;
131
+ }
132
+ :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] {
133
+ scale: 1;
44
134
  }
45
135
  :where(.oui-button)[disabled], :where(.oui-button)[aria-disabled=true i] {
46
136
  --oui-background-percentage: 80%;
@@ -48,35 +138,42 @@
48
138
  --oui-shadow-percentage: 92.5%;
49
139
  font-style: italic;
50
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
+ }
51
148
  :where(.oui-button--blue) {
52
- --oui-background-value: var(--oui-blue-3);
149
+ --oui-background-value: var(--oui-blue-2);
53
150
  --oui-foreground-value: var(--oui-blue-8);
54
- --oui-outline-value: var(--oui-blue-6);
151
+ --oui-outline-value: var(--oui-blue-5);
55
152
  }
56
153
  :where(.oui-button--green) {
57
- --oui-background-value: var(--oui-green-3);
154
+ --oui-background-value: var(--oui-green-2);
58
155
  --oui-foreground-value: var(--oui-green-8);
59
- --oui-outline-value: var(--oui-green-6);
156
+ --oui-outline-value: var(--oui-green-5);
60
157
  }
61
158
  :where(.oui-button--orange) {
62
- --oui-background-value: var(--oui-orange-3);
159
+ --oui-background-value: var(--oui-orange-2);
63
160
  --oui-foreground-value: var(--oui-orange-8);
64
- --oui-outline-value: var(--oui-orange-6);
161
+ --oui-outline-value: var(--oui-orange-5);
65
162
  }
66
163
  :where(.oui-button--purple) {
67
- --oui-background-value: var(--oui-purple-3);
164
+ --oui-background-value: var(--oui-purple-2);
68
165
  --oui-foreground-value: var(--oui-purple-8);
69
- --oui-outline-value: var(--oui-purple-6);
166
+ --oui-outline-value: var(--oui-purple-5);
70
167
  }
71
168
  :where(.oui-button--red) {
72
- --oui-background-value: var(--oui-red-3);
169
+ --oui-background-value: var(--oui-red-2);
73
170
  --oui-foreground-value: var(--oui-red-8);
74
- --oui-outline-value: var(--oui-red-6);
171
+ --oui-outline-value: var(--oui-red-5);
75
172
  }
76
173
  :where(.oui-button--yellow) {
77
- --oui-background-value: var(--oui-yellow-3);
174
+ --oui-background-value: var(--oui-yellow-2);
78
175
  --oui-foreground-value: var(--oui-yellow-8);
79
- --oui-outline-value: var(--oui-yellow-6);
176
+ --oui-outline-value: var(--oui-yellow-5);
80
177
  }
81
178
  :where(.oui-button--rounded) {
82
179
  padding: 0.5em 1em;