@react-spectrum/s2 3.0.0-nightly-63d4359d6-250428 → 3.0.0-nightly-1dd65ffc5-250430

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 (365) hide show
  1. package/dist/Accordion.cjs +4 -5
  2. package/dist/Accordion.cjs.map +1 -1
  3. package/dist/Accordion.css +2 -4
  4. package/dist/Accordion.css.map +1 -1
  5. package/dist/Accordion.mjs +4 -5
  6. package/dist/Accordion.mjs.map +1 -1
  7. package/dist/ActionBar.cjs +72 -63
  8. package/dist/ActionBar.cjs.map +1 -1
  9. package/dist/ActionBar.css +70 -63
  10. package/dist/ActionBar.css.map +1 -1
  11. package/dist/ActionBar.mjs +72 -63
  12. package/dist/ActionBar.mjs.map +1 -1
  13. package/dist/ActionButton.cjs +161 -160
  14. package/dist/ActionButton.cjs.map +1 -1
  15. package/dist/ActionButton.css +174 -168
  16. package/dist/ActionButton.css.map +1 -1
  17. package/dist/ActionButton.mjs +161 -160
  18. package/dist/ActionButton.mjs.map +1 -1
  19. package/dist/ActionButtonGroup.cjs +17 -18
  20. package/dist/ActionButtonGroup.cjs.map +1 -1
  21. package/dist/ActionButtonGroup.css +9 -11
  22. package/dist/ActionButtonGroup.css.map +1 -1
  23. package/dist/ActionButtonGroup.mjs +17 -18
  24. package/dist/ActionButtonGroup.mjs.map +1 -1
  25. package/dist/AlertDialog.cjs +4 -4
  26. package/dist/AlertDialog.css +3 -5
  27. package/dist/AlertDialog.css.map +1 -1
  28. package/dist/AlertDialog.mjs +4 -4
  29. package/dist/Avatar.cjs +21 -21
  30. package/dist/Avatar.css +14 -16
  31. package/dist/Avatar.css.map +1 -1
  32. package/dist/Avatar.mjs +21 -21
  33. package/dist/AvatarGroup.cjs +131 -110
  34. package/dist/AvatarGroup.cjs.map +1 -1
  35. package/dist/AvatarGroup.css +43 -49
  36. package/dist/AvatarGroup.css.map +1 -1
  37. package/dist/AvatarGroup.mjs +131 -110
  38. package/dist/AvatarGroup.mjs.map +1 -1
  39. package/dist/Badge.cjs +150 -149
  40. package/dist/Badge.cjs.map +1 -1
  41. package/dist/Badge.css +140 -134
  42. package/dist/Badge.css.map +1 -1
  43. package/dist/Badge.mjs +150 -149
  44. package/dist/Badge.mjs.map +1 -1
  45. package/dist/Breadcrumbs.cjs +169 -154
  46. package/dist/Breadcrumbs.cjs.map +1 -1
  47. package/dist/Breadcrumbs.css +119 -105
  48. package/dist/Breadcrumbs.css.map +1 -1
  49. package/dist/Breadcrumbs.mjs +169 -154
  50. package/dist/Breadcrumbs.mjs.map +1 -1
  51. package/dist/Button.cjs +321 -275
  52. package/dist/Button.cjs.map +1 -1
  53. package/dist/Button.css +245 -215
  54. package/dist/Button.css.map +1 -1
  55. package/dist/Button.mjs +321 -275
  56. package/dist/Button.mjs.map +1 -1
  57. package/dist/ButtonGroup.cjs +27 -25
  58. package/dist/ButtonGroup.cjs.map +1 -1
  59. package/dist/ButtonGroup.css +15 -17
  60. package/dist/ButtonGroup.css.map +1 -1
  61. package/dist/ButtonGroup.mjs +27 -25
  62. package/dist/ButtonGroup.mjs.map +1 -1
  63. package/dist/Card.cjs +316 -299
  64. package/dist/Card.cjs.map +1 -1
  65. package/dist/Card.css +242 -215
  66. package/dist/Card.css.map +1 -1
  67. package/dist/Card.mjs +316 -299
  68. package/dist/Card.mjs.map +1 -1
  69. package/dist/CardView.cjs +29 -30
  70. package/dist/CardView.cjs.map +1 -1
  71. package/dist/CardView.css +19 -19
  72. package/dist/CardView.mjs +29 -30
  73. package/dist/CardView.mjs.map +1 -1
  74. package/dist/CenterBaseline.cjs +2 -2
  75. package/dist/CenterBaseline.css +3 -5
  76. package/dist/CenterBaseline.css.map +1 -1
  77. package/dist/CenterBaseline.mjs +2 -2
  78. package/dist/Checkbox.cjs +114 -112
  79. package/dist/Checkbox.cjs.map +1 -1
  80. package/dist/Checkbox.css +99 -93
  81. package/dist/Checkbox.css.map +1 -1
  82. package/dist/Checkbox.mjs +114 -112
  83. package/dist/Checkbox.mjs.map +1 -1
  84. package/dist/CheckboxGroup.cjs +54 -54
  85. package/dist/CheckboxGroup.css +42 -42
  86. package/dist/CheckboxGroup.mjs +54 -54
  87. package/dist/ClearButton.cjs +19 -19
  88. package/dist/ClearButton.css +19 -21
  89. package/dist/ClearButton.css.map +1 -1
  90. package/dist/ClearButton.mjs +19 -19
  91. package/dist/CloseButton.cjs +64 -62
  92. package/dist/CloseButton.cjs.map +1 -1
  93. package/dist/CloseButton.css +48 -48
  94. package/dist/CloseButton.mjs +64 -62
  95. package/dist/CloseButton.mjs.map +1 -1
  96. package/dist/ColorArea.cjs +28 -28
  97. package/dist/ColorArea.css +17 -17
  98. package/dist/ColorArea.mjs +28 -28
  99. package/dist/ColorField.cjs +41 -41
  100. package/dist/ColorField.css +33 -33
  101. package/dist/ColorField.mjs +41 -41
  102. package/dist/ColorHandle.cjs +29 -29
  103. package/dist/ColorHandle.css +45 -45
  104. package/dist/ColorHandle.mjs +29 -29
  105. package/dist/ColorSlider.cjs +68 -64
  106. package/dist/ColorSlider.cjs.map +1 -1
  107. package/dist/ColorSlider.css +64 -58
  108. package/dist/ColorSlider.css.map +1 -1
  109. package/dist/ColorSlider.mjs +68 -64
  110. package/dist/ColorSlider.mjs.map +1 -1
  111. package/dist/ColorSwatch.cjs +44 -38
  112. package/dist/ColorSwatch.cjs.map +1 -1
  113. package/dist/ColorSwatch.css +29 -31
  114. package/dist/ColorSwatch.css.map +1 -1
  115. package/dist/ColorSwatch.mjs +44 -38
  116. package/dist/ColorSwatch.mjs.map +1 -1
  117. package/dist/ColorSwatchPicker.cjs +31 -32
  118. package/dist/ColorSwatchPicker.cjs.map +1 -1
  119. package/dist/ColorSwatchPicker.css +48 -48
  120. package/dist/ColorSwatchPicker.css.map +1 -1
  121. package/dist/ColorSwatchPicker.mjs +31 -32
  122. package/dist/ColorSwatchPicker.mjs.map +1 -1
  123. package/dist/ColorWheel.cjs +28 -28
  124. package/dist/ColorWheel.css +18 -18
  125. package/dist/ColorWheel.mjs +28 -28
  126. package/dist/ComboBox.cjs +108 -108
  127. package/dist/ComboBox.css +101 -101
  128. package/dist/ComboBox.mjs +108 -108
  129. package/dist/ContextualHelp.cjs +5 -5
  130. package/dist/ContextualHelp.css +58 -44
  131. package/dist/ContextualHelp.css.map +1 -1
  132. package/dist/ContextualHelp.mjs +5 -5
  133. package/dist/CustomDialog.cjs +38 -38
  134. package/dist/CustomDialog.css +26 -26
  135. package/dist/CustomDialog.mjs +38 -38
  136. package/dist/Dialog.cjs +18 -18
  137. package/dist/Dialog.css +86 -72
  138. package/dist/Dialog.css.map +1 -1
  139. package/dist/Dialog.mjs +18 -18
  140. package/dist/Disclosure.cjs +139 -133
  141. package/dist/Disclosure.cjs.map +1 -1
  142. package/dist/Disclosure.css +144 -120
  143. package/dist/Disclosure.css.map +1 -1
  144. package/dist/Disclosure.mjs +139 -133
  145. package/dist/Disclosure.mjs.map +1 -1
  146. package/dist/Divider.cjs +47 -47
  147. package/dist/Divider.css +26 -26
  148. package/dist/Divider.mjs +47 -47
  149. package/dist/DropZone.cjs +68 -64
  150. package/dist/DropZone.cjs.map +1 -1
  151. package/dist/DropZone.css +66 -60
  152. package/dist/DropZone.css.map +1 -1
  153. package/dist/DropZone.mjs +68 -64
  154. package/dist/DropZone.mjs.map +1 -1
  155. package/dist/Field.cjs +192 -186
  156. package/dist/Field.cjs.map +1 -1
  157. package/dist/Field.css +167 -159
  158. package/dist/Field.css.map +1 -1
  159. package/dist/Field.mjs +192 -186
  160. package/dist/Field.mjs.map +1 -1
  161. package/dist/Form.cjs +11 -12
  162. package/dist/Form.cjs.map +1 -1
  163. package/dist/Form.css +9 -11
  164. package/dist/Form.css.map +1 -1
  165. package/dist/Form.mjs +11 -12
  166. package/dist/Form.mjs.map +1 -1
  167. package/dist/FullscreenDialog.cjs +5 -5
  168. package/dist/FullscreenDialog.css +94 -80
  169. package/dist/FullscreenDialog.css.map +1 -1
  170. package/dist/FullscreenDialog.mjs +5 -5
  171. package/dist/IllustratedMessage.cjs +185 -160
  172. package/dist/IllustratedMessage.cjs.map +1 -1
  173. package/dist/IllustratedMessage.css +93 -91
  174. package/dist/IllustratedMessage.css.map +1 -1
  175. package/dist/IllustratedMessage.mjs +185 -160
  176. package/dist/IllustratedMessage.mjs.map +1 -1
  177. package/dist/Image.cjs +14 -14
  178. package/dist/Image.css +14 -16
  179. package/dist/Image.css.map +1 -1
  180. package/dist/Image.mjs +14 -14
  181. package/dist/InlineAlert.cjs +130 -122
  182. package/dist/InlineAlert.cjs.map +1 -1
  183. package/dist/InlineAlert.css +109 -95
  184. package/dist/InlineAlert.css.map +1 -1
  185. package/dist/InlineAlert.mjs +130 -122
  186. package/dist/InlineAlert.mjs.map +1 -1
  187. package/dist/Link.cjs +57 -47
  188. package/dist/Link.cjs.map +1 -1
  189. package/dist/Link.css +52 -44
  190. package/dist/Link.css.map +1 -1
  191. package/dist/Link.mjs +57 -47
  192. package/dist/Link.mjs.map +1 -1
  193. package/dist/Menu.cjs +353 -325
  194. package/dist/Menu.cjs.map +1 -1
  195. package/dist/Menu.css +189 -189
  196. package/dist/Menu.css.map +1 -1
  197. package/dist/Menu.mjs +353 -325
  198. package/dist/Menu.mjs.map +1 -1
  199. package/dist/Meter.cjs +116 -114
  200. package/dist/Meter.cjs.map +1 -1
  201. package/dist/Meter.css +106 -104
  202. package/dist/Meter.css.map +1 -1
  203. package/dist/Meter.mjs +116 -114
  204. package/dist/Meter.mjs.map +1 -1
  205. package/dist/Modal.cjs +62 -59
  206. package/dist/Modal.cjs.map +1 -1
  207. package/dist/Modal.css +52 -51
  208. package/dist/Modal.css.map +1 -1
  209. package/dist/Modal.mjs +62 -59
  210. package/dist/Modal.mjs.map +1 -1
  211. package/dist/NotificationBadge.cjs +66 -62
  212. package/dist/NotificationBadge.cjs.map +1 -1
  213. package/dist/NotificationBadge.css +78 -72
  214. package/dist/NotificationBadge.css.map +1 -1
  215. package/dist/NotificationBadge.mjs +66 -62
  216. package/dist/NotificationBadge.mjs.map +1 -1
  217. package/dist/NumberField.cjs +133 -133
  218. package/dist/NumberField.css +120 -120
  219. package/dist/NumberField.mjs +133 -133
  220. package/dist/Picker.cjs +209 -207
  221. package/dist/Picker.cjs.map +1 -1
  222. package/dist/Picker.css +179 -173
  223. package/dist/Picker.css.map +1 -1
  224. package/dist/Picker.mjs +209 -207
  225. package/dist/Picker.mjs.map +1 -1
  226. package/dist/Popover.cjs +124 -93
  227. package/dist/Popover.cjs.map +1 -1
  228. package/dist/Popover.css +67 -83
  229. package/dist/Popover.css.map +1 -1
  230. package/dist/Popover.mjs +124 -93
  231. package/dist/Popover.mjs.map +1 -1
  232. package/dist/ProgressBar.cjs +132 -130
  233. package/dist/ProgressBar.cjs.map +1 -1
  234. package/dist/ProgressBar.css +119 -117
  235. package/dist/ProgressBar.css.map +1 -1
  236. package/dist/ProgressBar.mjs +132 -130
  237. package/dist/ProgressBar.mjs.map +1 -1
  238. package/dist/ProgressCircle.cjs +32 -32
  239. package/dist/ProgressCircle.css +20 -20
  240. package/dist/ProgressCircle.css.map +1 -1
  241. package/dist/ProgressCircle.mjs +32 -32
  242. package/dist/Provider.cjs +11 -11
  243. package/dist/Provider.css +9 -11
  244. package/dist/Provider.css.map +1 -1
  245. package/dist/Provider.mjs +11 -11
  246. package/dist/Radio.cjs +101 -99
  247. package/dist/Radio.cjs.map +1 -1
  248. package/dist/Radio.css +101 -95
  249. package/dist/Radio.css.map +1 -1
  250. package/dist/Radio.mjs +101 -99
  251. package/dist/Radio.mjs.map +1 -1
  252. package/dist/RadioGroup.cjs +52 -52
  253. package/dist/RadioGroup.css +42 -42
  254. package/dist/RadioGroup.mjs +52 -52
  255. package/dist/SearchField.cjs +52 -52
  256. package/dist/SearchField.css +54 -54
  257. package/dist/SearchField.mjs +52 -52
  258. package/dist/SegmentedControl.cjs +123 -119
  259. package/dist/SegmentedControl.cjs.map +1 -1
  260. package/dist/SegmentedControl.css +110 -104
  261. package/dist/SegmentedControl.css.map +1 -1
  262. package/dist/SegmentedControl.mjs +123 -119
  263. package/dist/SegmentedControl.mjs.map +1 -1
  264. package/dist/Slider.cjs +251 -248
  265. package/dist/Slider.cjs.map +1 -1
  266. package/dist/Slider.css +166 -157
  267. package/dist/Slider.css.map +1 -1
  268. package/dist/Slider.mjs +251 -248
  269. package/dist/Slider.mjs.map +1 -1
  270. package/dist/StatusLight.cjs +74 -70
  271. package/dist/StatusLight.cjs.map +1 -1
  272. package/dist/StatusLight.css +70 -64
  273. package/dist/StatusLight.css.map +1 -1
  274. package/dist/StatusLight.mjs +74 -70
  275. package/dist/StatusLight.mjs.map +1 -1
  276. package/dist/Switch.cjs +110 -108
  277. package/dist/Switch.cjs.map +1 -1
  278. package/dist/Switch.css +86 -80
  279. package/dist/Switch.css.map +1 -1
  280. package/dist/Switch.mjs +110 -108
  281. package/dist/Switch.mjs.map +1 -1
  282. package/dist/TableView.cjs +334 -329
  283. package/dist/TableView.cjs.map +1 -1
  284. package/dist/TableView.css +193 -193
  285. package/dist/TableView.css.map +1 -1
  286. package/dist/TableView.mjs +334 -329
  287. package/dist/TableView.mjs.map +1 -1
  288. package/dist/Tabs.cjs +153 -149
  289. package/dist/Tabs.cjs.map +1 -1
  290. package/dist/Tabs.css +102 -96
  291. package/dist/Tabs.css.map +1 -1
  292. package/dist/Tabs.mjs +153 -149
  293. package/dist/Tabs.mjs.map +1 -1
  294. package/dist/TabsPicker.cjs +131 -129
  295. package/dist/TabsPicker.cjs.map +1 -1
  296. package/dist/TabsPicker.css +132 -126
  297. package/dist/TabsPicker.css.map +1 -1
  298. package/dist/TabsPicker.mjs +131 -129
  299. package/dist/TabsPicker.mjs.map +1 -1
  300. package/dist/TagGroup.cjs +197 -193
  301. package/dist/TagGroup.cjs.map +1 -1
  302. package/dist/TagGroup.css +164 -158
  303. package/dist/TagGroup.css.map +1 -1
  304. package/dist/TagGroup.mjs +197 -193
  305. package/dist/TagGroup.mjs.map +1 -1
  306. package/dist/TextField.cjs +67 -65
  307. package/dist/TextField.cjs.map +1 -1
  308. package/dist/TextField.css +71 -65
  309. package/dist/TextField.css.map +1 -1
  310. package/dist/TextField.mjs +67 -65
  311. package/dist/TextField.mjs.map +1 -1
  312. package/dist/Toast.cjs +138 -136
  313. package/dist/Toast.cjs.map +1 -1
  314. package/dist/Toast.css +117 -111
  315. package/dist/Toast.css.map +1 -1
  316. package/dist/Toast.mjs +138 -136
  317. package/dist/Toast.mjs.map +1 -1
  318. package/dist/ToggleButton.cjs +3 -3
  319. package/dist/ToggleButton.css +12 -14
  320. package/dist/ToggleButton.css.map +1 -1
  321. package/dist/ToggleButton.mjs +3 -3
  322. package/dist/Tooltip.cjs +99 -72
  323. package/dist/Tooltip.cjs.map +1 -1
  324. package/dist/Tooltip.css +87 -87
  325. package/dist/Tooltip.css.map +1 -1
  326. package/dist/Tooltip.mjs +99 -72
  327. package/dist/Tooltip.mjs.map +1 -1
  328. package/dist/TreeView.cjs +169 -157
  329. package/dist/TreeView.cjs.map +1 -1
  330. package/dist/TreeView.css +155 -153
  331. package/dist/TreeView.css.map +1 -1
  332. package/dist/TreeView.mjs +169 -157
  333. package/dist/TreeView.mjs.map +1 -1
  334. package/dist/types.d.ts +1 -1
  335. package/dist/types.d.ts.map +1 -1
  336. package/icons/Skeleton.cjs +3 -3
  337. package/icons/Skeleton.cjs.map +1 -1
  338. package/icons/Skeleton.css +8 -10
  339. package/icons/Skeleton.css.map +1 -1
  340. package/icons/Skeleton.mjs +3 -3
  341. package/icons/Skeleton.mjs.map +1 -1
  342. package/package.json +22 -22
  343. package/src/Card.tsx +3 -3
  344. package/src/Disclosure.tsx +3 -3
  345. package/src/TableView.tsx +1 -4
  346. package/src/style-utils.ts +0 -2
  347. package/style/__tests__/style-macro.test.js +323 -27
  348. package/style/dist/properties.cjs +4 -0
  349. package/style/dist/properties.cjs.map +1 -0
  350. package/style/dist/properties.mjs +6 -0
  351. package/style/dist/properties.mjs.map +1 -0
  352. package/style/dist/spectrum-theme.cjs +123 -124
  353. package/style/dist/spectrum-theme.cjs.map +1 -1
  354. package/style/dist/spectrum-theme.mjs +124 -125
  355. package/style/dist/spectrum-theme.mjs.map +1 -1
  356. package/style/dist/style-macro.cjs +244 -263
  357. package/style/dist/style-macro.cjs.map +1 -1
  358. package/style/dist/style-macro.mjs +240 -259
  359. package/style/dist/style-macro.mjs.map +1 -1
  360. package/style/dist/types.d.ts +84 -80
  361. package/style/dist/types.d.ts.map +1 -1
  362. package/style/properties.json +2422 -0
  363. package/style/spectrum-theme.ts +101 -110
  364. package/style/style-macro.ts +319 -220
  365. package/style/types.ts +8 -4
@@ -1,3 +1,5 @@
1
+ import $cXXcU$propertiesmjs2 from "./properties.mjs";
2
+
1
3
  /*
2
4
  * Copyright 2024 Adobe. All rights reserved.
3
5
  * This file is licensed to you under the Apache License, Version 2.0 (the "License");
@@ -8,114 +10,83 @@
8
10
  * the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS
9
11
  * OF ANY KIND, either express or implied. See the License for the specific language
10
12
  * governing permissions and limitations under the License.
11
- */ let $1d6343f16443be39$var$defaultArbitraryProperty = (value, property)=>({
12
- [property]: value
13
- });
14
- function $1d6343f16443be39$export$e33e260cb0fb20f7(fn = $1d6343f16443be39$var$defaultArbitraryProperty) {
15
- return (value, property)=>{
16
- let selector = Array.isArray(value) ? $1d6343f16443be39$var$generateArbitraryValueSelector(value.map((v)=>JSON.stringify(v)).join('')) : $1d6343f16443be39$var$generateArbitraryValueSelector(JSON.stringify(value));
17
- return {
18
- default: [
19
- fn(value, property),
20
- selector
21
- ]
22
- };
23
- };
24
- }
25
- function $1d6343f16443be39$var$recursiveValues(obj) {
26
- return Object.values(obj).flatMap((v)=>typeof v === 'object' ? $1d6343f16443be39$var$recursiveValues(v) : [
27
- v
28
- ]);
29
- }
30
- function $1d6343f16443be39$export$40f4ff17b27355ab(fn, values) {
31
- let valueMap = $1d6343f16443be39$var$createValueLookup(Array.isArray(values) ? values : $1d6343f16443be39$var$recursiveValues(values));
32
- return (value, property)=>{
33
- let v = $1d6343f16443be39$export$22a8270399010c94(value);
34
- if (v) return {
35
- default: [
36
- fn(v[0], property),
37
- v[1]
38
- ]
39
- };
40
- let val = Array.isArray(values) ? value : values[String(value)];
41
- return $1d6343f16443be39$var$mapConditionalValue(val, (value)=>{
42
- return [
43
- fn(value, property),
44
- valueMap.get(value)
45
- ];
46
- });
47
- };
48
- }
49
- function $1d6343f16443be39$export$7fdf8c7af26ba416(name, values) {
50
- return $1d6343f16443be39$export$40f4ff17b27355ab((value, property)=>({
51
- [property.startsWith('--') ? property : name]: value
52
- }), values);
53
- }
54
- function $1d6343f16443be39$export$fa08b74e8bc1d2a7(values, fn) {
55
- let valueMap = $1d6343f16443be39$var$createValueLookup(Array.isArray(values) ? values : $1d6343f16443be39$var$recursiveValues(values));
56
- return (value, property)=>{
57
- let v = $1d6343f16443be39$export$22a8270399010c94(value);
58
- if (v) return {
59
- default: [
60
- {
61
- [property]: v[0]
62
- },
63
- v[1]
64
- ]
65
- };
66
- let val = values[String(value)];
67
- if (val != null) return $1d6343f16443be39$var$mapConditionalValue(val, (value)=>{
68
- return [
13
+ */
14
+ class $1d6343f16443be39$export$d03475ad9df06cd2 {
15
+ constructor(property, toCSS){
16
+ this.property = property;
17
+ this.toCSS = toCSS || ((value)=>String(value));
18
+ }
19
+ get cssProperties() {
20
+ return [
21
+ this.property
22
+ ];
23
+ }
24
+ toCSSValue(value) {
25
+ return this.toCSS(value);
26
+ }
27
+ toCSSProperties(customProperty, value) {
28
+ return $1d6343f16443be39$var$mapConditionalValue(value, (value)=>[
69
29
  {
70
- [property]: value
71
- },
72
- valueMap.get(value)
73
- ];
74
- });
75
- if (typeof value === 'number') {
76
- let cssValue = value === 0 ? '0px' : fn(value);
77
- return {
78
- default: [
79
- {
80
- [property]: cssValue
81
- },
82
- $1d6343f16443be39$var$generateName(value + valueMap.size)
83
- ]
84
- };
30
+ [customProperty || this.property]: String(value)
31
+ }
32
+ ]);
33
+ }
34
+ }
35
+ class $1d6343f16443be39$export$965169194d2485f7 extends $1d6343f16443be39$export$d03475ad9df06cd2 {
36
+ constructor(property, mapping){
37
+ super(property);
38
+ this.mapping = mapping;
39
+ }
40
+ toCSSValue(value) {
41
+ if (Array.isArray(this.mapping)) {
42
+ if (!this.mapping.includes(String(value))) throw new Error('Invalid style value: ' + value);
43
+ return value;
44
+ } else {
45
+ let res = this.mapping[String(value)];
46
+ if (res == null) throw new Error('Invalid style value: ' + value);
47
+ return res;
85
48
  }
86
- throw new Error('Invalid sizing value: ' + value);
87
- };
49
+ }
88
50
  }
89
- function $1d6343f16443be39$export$852145629bb0d58b(colors, property) {
90
- let valueMap = $1d6343f16443be39$var$createValueLookup(Object.values(colors).flatMap((v)=>typeof v === 'object' ? Object.values(v) : [
91
- v
92
- ]));
93
- return (value, key)=>{
94
- let v = $1d6343f16443be39$export$22a8270399010c94(value);
95
- if (v) return {
96
- default: [
97
- {
98
- [property || key]: v[0]
99
- },
100
- v[1]
101
- ]
102
- };
51
+ class $1d6343f16443be39$export$40ae678e65d951f2 extends $1d6343f16443be39$export$965169194d2485f7 {
52
+ toCSSValue(value) {
103
53
  let [color, opacity] = value.split('/');
104
- let c = colors[color];
105
- return $1d6343f16443be39$var$mapConditionalValue(c, (value)=>{
106
- let css = opacity ? `rgb(from ${value} r g b / ${opacity}%)` : value;
107
- let selector = valueMap.get(value) + (opacity ? opacity.replace('.', '-') : '');
108
- return [
109
- {
110
- [property || key]: css
111
- },
112
- selector
113
- ];
54
+ return $1d6343f16443be39$var$mapConditionalValue(this.mapping[color], (value)=>{
55
+ return opacity ? `rgb(from ${value} r g b / ${opacity}%)` : value;
114
56
  });
115
- };
57
+ }
58
+ }
59
+ class $1d6343f16443be39$export$8c6b4dc3755476bb extends $1d6343f16443be39$export$965169194d2485f7 {
60
+ constructor(property, mapping, numberToCSS){
61
+ super(property, mapping);
62
+ this.numberToCSS = numberToCSS;
63
+ }
64
+ toCSSValue(value) {
65
+ if (typeof value === 'number') return value === 0 ? '0px' : this.numberToCSS(value);
66
+ return super.toCSSValue(value);
67
+ }
68
+ }
69
+ class $1d6343f16443be39$export$1b6028cfca42adca {
70
+ constructor(properties, expand, mapping){
71
+ this.cssProperties = properties;
72
+ this.expand = expand;
73
+ this.mapping = mapping || null;
74
+ }
75
+ toCSSValue(value) {
76
+ if (!this.mapping) return value;
77
+ let res = this.mapping[String(value)];
78
+ if (res == null) throw new Error('Invalid style value: ' + value);
79
+ return res;
80
+ }
81
+ toCSSProperties(customProperty, value) {
82
+ if (customProperty) throw new Error('Style properties that expand into multiple CSS properties cannot be set as CSS variables.');
83
+ return $1d6343f16443be39$var$mapConditionalValue(value, (value)=>[
84
+ this.expand(value)
85
+ ]);
86
+ }
116
87
  }
117
88
  function $1d6343f16443be39$var$mapConditionalValue(value, fn) {
118
- if (typeof value === 'object') {
89
+ if (typeof value === 'object' && !Array.isArray(value)) {
119
90
  let res = {};
120
91
  for(let condition in value)res[condition] = $1d6343f16443be39$var$mapConditionalValue(value[condition], fn);
121
92
  return res;
@@ -134,37 +105,28 @@ function $1d6343f16443be39$var$mapConditionalShorthand(value, fn) {
134
105
  return res;
135
106
  } else return fn(value);
136
107
  }
137
- function $1d6343f16443be39$var$createValueLookup(values, atStart = false) {
138
- let map = new Map();
139
- for (let value of values)if (!map.has(value)) map.set(value, $1d6343f16443be39$var$generateName(map.size, atStart));
140
- return map;
141
- }
142
108
  function $1d6343f16443be39$export$22a8270399010c94(value) {
143
- if (typeof value === 'string' && value.startsWith('--')) return [
144
- `var(${value})`,
145
- $1d6343f16443be39$var$generateArbitraryValueSelector(value)
146
- ];
147
- else if (typeof value === 'string' && value[0] === '[' && value[value.length - 1] === ']') {
148
- let s = $1d6343f16443be39$var$generateArbitraryValueSelector(value.slice(1, -1));
149
- return [
150
- value.slice(1, -1),
151
- s
152
- ];
153
- }
109
+ if (typeof value === 'string' && value.startsWith('--')) return `var(${value})`;
110
+ else if (typeof value === 'string' && value[0] === '[' && value[value.length - 1] === ']') return value.slice(1, -1);
111
+ }
112
+ function $1d6343f16443be39$var$shortCSSPropertyName(property) {
113
+ return $cXXcU$propertiesmjs1.properties[property] ?? $1d6343f16443be39$var$generateArbitraryValueSelector(property, true);
114
+ }
115
+ function $1d6343f16443be39$var$classNamePrefix(property, cssProperty) {
116
+ let className = $cXXcU$propertiesmjs1.properties[cssProperty];
117
+ if (className && property === '--' + className) return '-' + className + '_-';
118
+ if (className && !property.startsWith('--')) return className;
119
+ return '-' + $1d6343f16443be39$var$generateArbitraryValueSelector(property, true) + '-';
154
120
  }
155
121
  function $1d6343f16443be39$export$25d302a5b900a763(theme) {
156
- let themePropertyMap = $1d6343f16443be39$var$createValueLookup(Object.keys(theme.properties), true);
157
- let themeConditionMap = $1d6343f16443be39$var$createValueLookup(Object.keys(theme.conditions), true);
158
- let propertyFunctions = new Map(Object.entries(theme.properties).map(([k, v])=>{
159
- if (typeof v === 'function') return [
122
+ let properties = new Map(Object.entries(theme.properties).map(([k, v])=>{
123
+ if (!Array.isArray(v) && v.cssProperties) return [
160
124
  k,
161
125
  v
162
126
  ];
163
127
  return [
164
128
  k,
165
- $1d6343f16443be39$export$40f4ff17b27355ab((value, p)=>({
166
- [p]: value
167
- }), v)
129
+ new $1d6343f16443be39$export$965169194d2485f7(k, v)
168
130
  ];
169
131
  }));
170
132
  let dependencies = new Set();
@@ -180,10 +142,10 @@ function $1d6343f16443be39$export$25d302a5b900a763(theme) {
180
142
  let rules = new Map();
181
143
  let values = new Map();
182
144
  dependencies.clear();
183
- let usedPriorities = 1;
145
+ let usedPriorities = 0;
184
146
  let setRules = (key, value)=>{
185
147
  usedPriorities = Math.max(usedPriorities, value[0]);
186
- rules.set(key, value[1]);
148
+ rules.set(key, new $1d6343f16443be39$var$GroupRule(value[1]));
187
149
  };
188
150
  hasConditions = false;
189
151
  for(let key in style){
@@ -217,17 +179,14 @@ function $1d6343f16443be39$export$25d302a5b900a763(theme) {
217
179
  let value = values.get(dep);
218
180
  if (value != null) {
219
181
  if (!(dep in theme.properties)) throw new Error(`Unknown dependency ${dep}`);
220
- let name = `--${themePropertyMap.get(dep)}`;
182
+ let prop = properties.get(dep);
183
+ let name = `--${$1d6343f16443be39$var$shortCSSPropertyName(prop.cssProperties[0])}`;
221
184
  // Could potentially use @property to prevent the var from inheriting in children.
222
185
  setRules(name, compileValue(name, dep, value));
223
186
  setRules(dep, compileValue(dep, dep, name));
224
187
  }
225
188
  }
226
189
  dependencies.clear();
227
- // Prevent all global styles from leaking into this element.
228
- // The :not(#a#b) raises the specificity of the selector by 2 ids,
229
- // which can never occur on a real element, and will win over other
230
- // selectors such as class and element selectors.
231
190
  let css = '';
232
191
  // Declare layers for each priority ahead of time so the order is always correct.
233
192
  css += '@layer ';
@@ -242,43 +201,52 @@ function $1d6343f16443be39$export$25d302a5b900a763(theme) {
242
201
  // Also generate a variable for each overridable property that overlaps with the style definition. If those are defined,
243
202
  // the defaults from the style definition are omitted.
244
203
  let allowedOverridesSet = new Set();
245
- let js = 'let rules = " .";\n';
204
+ let js = 'let rules = " ";\n';
246
205
  if (allowedOverrides?.length) {
247
- for (let property of allowedOverrides)if (themePropertyMap.has(property)) allowedOverridesSet.add(themePropertyMap.get(property));
248
- js += `let matches = (overrides || '').match(/(?:^|\\s)(?:${[
249
- ...allowedOverridesSet
250
- ].join('|')})[^\\s]+/g) || [];\n`;
251
- js += 'rules += matches.join(\'\');\n';
206
+ for (let property of allowedOverrides){
207
+ let shorthand = theme.shorthands[property];
208
+ let props = Array.isArray(shorthand) ? shorthand : [
209
+ property
210
+ ];
211
+ for (let property of props){
212
+ let prop = properties.get(property);
213
+ if (!prop) throw new Error(`Invalid property ${property} in allowedOverrides`);
214
+ for (let property of prop.cssProperties)allowedOverridesSet.add(property);
215
+ }
216
+ }
252
217
  let loop = '';
253
218
  for (let property of rules.keys()){
254
- let themeProperty = themePropertyMap.get(property);
255
- if (themeProperty && allowedOverridesSet.has(themeProperty)) {
256
- js += `let $${themeProperty} = false;\n`;
257
- loop += ` if (/^\\s*${themeProperty}/.test(p)) $${themeProperty} = true;\n`;
219
+ let prop = properties.get(property);
220
+ if (prop) {
221
+ for (let property of prop.cssProperties)if (property && allowedOverridesSet.has(property)) {
222
+ let selector = $1d6343f16443be39$var$classNamePrefix(property, property);
223
+ let p = property.replace('--', '__');
224
+ js += `let ${p} = false;\n`;
225
+ loop += ` if (p[1] === ${JSON.stringify(selector)}) ${p} = true;\n`;
226
+ }
258
227
  }
259
228
  }
229
+ let regex = `/(?:^|\\s)(${[
230
+ ...allowedOverridesSet
231
+ ].map((p)=>$1d6343f16443be39$var$classNamePrefix(p, p)).join('|')})[^\\s]+/g`;
260
232
  if (loop) {
233
+ js += `let matches = (overrides || '').matchAll(${regex});\n`;
261
234
  js += 'for (let p of matches) {\n';
262
235
  js += loop;
236
+ js += ' rules += p[0];\n';
263
237
  js += '}\n';
264
- }
238
+ } else js += `rules += ((overrides || '').match(${regex}) || []).join('')\n`;
265
239
  }
266
240
  // Generate JS and CSS for each rule.
267
241
  let isStatic = !(hasConditions || allowedOverrides);
268
242
  let className = '';
269
243
  let rulesByLayer = new Map();
270
- for (let [property, propertyRules] of rules){
271
- if (isStatic) className += $1d6343f16443be39$var$getStaticClassName(propertyRules);
272
- else {
273
- let themeProperty = themePropertyMap.get(property);
274
- let allowsOverrides = themeProperty && allowedOverridesSet.has(themeProperty);
275
- if (allowsOverrides) // Omit the value if an override was passed in.
276
- js += `if (!$${themeProperty}) {\n`;
277
- js += $1d6343f16443be39$var$printJS(propertyRules) + '\n';
278
- if (allowsOverrides) js += '}\n';
279
- }
280
- for (let rule of propertyRules)$1d6343f16443be39$var$printRule(rule, rulesByLayer);
281
- }
244
+ let rootRule = new $1d6343f16443be39$var$GroupRule([
245
+ ...rules.values()
246
+ ]);
247
+ if (isStatic) className += rootRule.getStaticClassName();
248
+ else js += rootRule.toJS(allowedOverridesSet) + '\n';
249
+ rootRule.toCSS(rulesByLayer);
282
250
  for (let [layer, rules] of rulesByLayer){
283
251
  css += `@layer ${$1d6343f16443be39$var$layerName(layer)} {\n`;
284
252
  css += rules.join('\n\n');
@@ -320,12 +288,7 @@ function $1d6343f16443be39$export$25d302a5b900a763(theme) {
320
288
  // The @layer order in the generated CSS will ensure that it overrides classes applied by runtime conditions.
321
289
  let isCSSCondition = condition in theme.conditions || /^[@:]/.test(condition);
322
290
  if (!wasCSSCondition && isCSSCondition && rules.length) rules = [
323
- {
324
- prelude: '',
325
- condition: '',
326
- layer: '',
327
- body: rules
328
- }
291
+ new $1d6343f16443be39$var$GroupRule(rules)
329
292
  ];
330
293
  wasCSSCondition = isCSSCondition;
331
294
  // Increment the current priority whenever we see a new CSS condition.
@@ -357,83 +320,62 @@ function $1d6343f16443be39$export$25d302a5b900a763(theme) {
357
320
  }
358
321
  function compileCondition(conditions, condition, priority, rules) {
359
322
  if (condition === 'default' || conditions.has(condition)) return [
360
- {
361
- prelude: '',
362
- condition: '',
363
- layer: '',
364
- body: rules
365
- }
323
+ new $1d6343f16443be39$var$GroupRule(rules)
366
324
  ];
367
325
  if (condition in theme.conditions || /^[@:]/.test(condition)) {
368
326
  // Conditions starting with : are CSS pseudo classes. Nest them inside the parent rule.
369
327
  let prelude = theme.conditions[condition] || condition;
370
- if (prelude.startsWith(':')) return [
371
- {
372
- prelude: '',
373
- layer: $1d6343f16443be39$var$generateName(priority, true),
374
- body: rules.map((rule)=>$1d6343f16443be39$var$nestRule(rule, prelude)),
375
- condition: ''
376
- }
377
- ];
328
+ if (prelude.startsWith(':')) {
329
+ for (let rule of rules)rule.addPseudo(prelude);
330
+ return [
331
+ new $1d6343f16443be39$var$GroupRule(rules, $1d6343f16443be39$var$generateName(priority, true))
332
+ ];
333
+ }
378
334
  // Otherwise, wrap the rule in the condition (e.g. @media).
335
+ // Top level layer is based on the priority of the rule, not the condition.
336
+ // Also group in a sub-layer based on the condition so that lightningcss can more effectively deduplicate rules.
337
+ let layer = `${$1d6343f16443be39$var$generateName(priority, true)}.${$cXXcU$propertiesmjs.conditions[theme.conditions[condition] || condition] || $1d6343f16443be39$var$generateArbitraryValueSelector(condition, true)}`;
379
338
  return [
380
- {
381
- // Top level layer is based on the priority of the rule, not the condition.
382
- // Also group in a sub-layer based on the condition so that lightningcss can more effectively deduplicate rules.
383
- layer: `${$1d6343f16443be39$var$generateName(priority, true)}.${themeConditionMap.get(condition) || $1d6343f16443be39$var$generateArbitraryValueSelector(condition, true)}`,
384
- prelude: prelude,
385
- body: rules,
386
- condition: ''
387
- }
339
+ new $1d6343f16443be39$var$AtRule(rules, prelude, layer)
388
340
  ];
389
341
  }
390
342
  hasConditions = true;
391
343
  return [
392
- {
393
- prelude: '',
394
- layer: '',
395
- condition: condition,
396
- body: rules
397
- }
344
+ new $1d6343f16443be39$var$ConditionalRule(rules, condition)
398
345
  ];
399
346
  }
400
347
  function compileRule(property, themeProperty, value, priority, conditions, skipConditions) {
401
- // Generate selector. This consists of three parts:
402
- // 1. Property. For custom properties we use a hash. For theme properties, we use the index within the theme.
403
- // 2. Conditions. This uses the index within the theme.
404
- // 3. Value. The index in the theme, or a hash for arbitrary values.
405
- let prelude = '.';
406
- if (property.startsWith('--')) // Include both custom property name and theme property in case the same var is reused between multiple theme properties.
407
- prelude += $1d6343f16443be39$var$generateArbitraryValueSelector(property, true) + '_' + themePropertyMap.get(themeProperty) + '-';
408
- else prelude += themePropertyMap.get(themeProperty);
409
- let propertyFunction = propertyFunctions.get(themeProperty);
348
+ let propertyFunction = properties.get(themeProperty);
410
349
  if (propertyFunction) {
411
350
  // Expand value to conditional CSS values, and then to rules.
412
- let res = propertyFunction(value, property);
413
- return conditionalToRules(res, priority, conditions, skipConditions, (value, priority, conditions)=>{
414
- let [obj, p] = value;
415
- let body = '';
351
+ let arbitrary = $1d6343f16443be39$export$22a8270399010c94(value);
352
+ let cssValue = arbitrary ? arbitrary : propertyFunction.toCSSValue(value);
353
+ let cssProperties = propertyFunction.toCSSProperties(property.startsWith('--') ? property : null, cssValue);
354
+ return conditionalToRules(cssProperties, priority, conditions, skipConditions, (value, priority, conditions)=>{
355
+ let [obj] = value;
356
+ let rules = [];
416
357
  for(let key in obj){
417
358
  let k = key;
418
359
  let value = obj[k];
419
360
  if (value === undefined) continue;
420
361
  if (typeof value === 'string') // Replace self() references with variables and track the dependencies.
421
362
  value = value.replace(/self\(([a-zA-Z]+)/g, (_, v)=>{
363
+ let prop = properties.get(v);
364
+ if (!prop) throw new Error(`self(${v}) is invalid. ${v} is not a known property.`);
365
+ let cssProperties = prop.cssProperties;
366
+ if (cssProperties.length !== 1) throw new Error(`self(${v}) is not supported. ${v} expands to multiple CSS properties.`);
422
367
  dependencies.add(v);
423
- return `var(--${themePropertyMap.get(v)}`;
368
+ return `var(--${$1d6343f16443be39$var$shortCSSPropertyName(cssProperties[0])}`;
424
369
  });
425
- body += `${$1d6343f16443be39$var$kebab(key)}: ${value};`;
370
+ // Generate selector. This consists of three parts: property, conditions, value.
371
+ let cssProperty = key;
372
+ if (property.startsWith('--')) cssProperty = propertyFunction.cssProperties[0];
373
+ let className = $1d6343f16443be39$var$classNamePrefix(key, cssProperty);
374
+ if (conditions.size > 0) for (let condition of conditions)className += $cXXcU$propertiesmjs.conditions[theme.conditions[condition] || condition] || $1d6343f16443be39$var$generateArbitraryValueSelector(condition);
375
+ if (cssProperty !== key) className += $1d6343f16443be39$var$shortCSSPropertyName(cssProperty);
376
+ className += $cXXcU$propertiesmjs2.values[cssProperty]?.[String(value)] ?? $1d6343f16443be39$var$generateArbitraryValueSelector(String(value));
377
+ rules.push(new $1d6343f16443be39$var$StyleRule(className, key, String(value)));
426
378
  }
427
- let selector = prelude;
428
- if (conditions.size > 0) for (let condition of conditions)selector += themeConditionMap.get(condition) || $1d6343f16443be39$var$generateArbitraryValueSelector(condition);
429
- let rules = [
430
- {
431
- condition: '',
432
- layer: '',
433
- prelude: selector + p,
434
- body: body
435
- }
436
- ];
437
379
  return [
438
380
  0,
439
381
  rules
@@ -442,25 +384,6 @@ function $1d6343f16443be39$export$25d302a5b900a763(theme) {
442
384
  } else throw new Error('Unknown property ' + themeProperty);
443
385
  }
444
386
  }
445
- function $1d6343f16443be39$var$nestRule(rule, prelude) {
446
- if (Array.isArray(rule.body)) return {
447
- prelude: rule.prelude,
448
- layer: rule.layer,
449
- body: rule.body.map((r)=>$1d6343f16443be39$var$nestRule(r, prelude)),
450
- condition: rule.condition
451
- };
452
- else return {
453
- prelude: rule.prelude,
454
- layer: rule.layer,
455
- body: [
456
- {
457
- ...rule,
458
- prelude: '&' + prelude
459
- }
460
- ],
461
- condition: ''
462
- };
463
- }
464
387
  function $1d6343f16443be39$var$kebab(property) {
465
388
  if (property.startsWith('--')) return property;
466
389
  return property.replace(/([a-z])([A-Z])/g, (_, a, b)=>`${a}-${b.toLowerCase()}`);
@@ -480,9 +403,19 @@ function $1d6343f16443be39$var$generateName(index, atStart = false) {
480
403
  }
481
404
  // For arbitrary values, we use a hash of the string to generate the class name.
482
405
  function $1d6343f16443be39$var$generateArbitraryValueSelector(v, atStart = false) {
483
- let c = $1d6343f16443be39$var$hash(v).toString(36);
406
+ let c = $1d6343f16443be39$var$toBase62($1d6343f16443be39$var$hash(v));
484
407
  if (atStart && /^[0-9]/.test(c)) c = `_${c}`;
485
- return `-${c}`;
408
+ return c;
409
+ }
410
+ function $1d6343f16443be39$var$toBase62(value) {
411
+ if (value === 0) return $1d6343f16443be39$var$generateName(value);
412
+ let res = '';
413
+ while(value){
414
+ let remainder = value % 62;
415
+ res += $1d6343f16443be39$var$generateName(remainder);
416
+ value = Math.floor((value - remainder) / 62);
417
+ }
418
+ return res;
486
419
  }
487
420
  // djb2 hash function.
488
421
  // http://www.cse.yorku.ca/~oz/hash.html
@@ -496,46 +429,94 @@ function $1d6343f16443be39$var$layerName(name) {
496
429
  // the unsafe overrides layer always comes after.
497
430
  return `_.${name}`;
498
431
  }
499
- function $1d6343f16443be39$var$printRule(rule, rulesByLayer, preludes = [], layer = 'a') {
500
- if (rule.prelude) preludes.push(rule.prelude);
501
- if (typeof rule.body === 'string') {
432
+ /** A CSS style rule. */ class $1d6343f16443be39$var$StyleRule {
433
+ constructor(className, property, value){
434
+ this.className = className;
435
+ this.pseudos = '';
436
+ this.property = property;
437
+ this.value = value;
438
+ }
439
+ addPseudo(prelude) {
440
+ this.pseudos += prelude;
441
+ }
442
+ getStaticClassName() {
443
+ return ' ' + this.className;
444
+ }
445
+ toCSS(rulesByLayer, preludes = [], layer = 'a') {
446
+ let prelude = `.${this.className}${this.pseudos}`;
447
+ preludes.push(prelude);
502
448
  // Nest rule in our stack of preludes (e.g. media queries/selectors).
503
449
  let content = ' ';
504
450
  preludes.forEach((p, i)=>{
505
451
  content += `${p} {\n${' '.repeat((i + 2) * 2)}`;
506
452
  });
507
- content += rule.body + '\n';
453
+ content += `${$1d6343f16443be39$var$kebab(this.property)}: ${this.value};\n`;
508
454
  preludes.map((_, i)=>{
509
455
  content += `${' '.repeat((preludes.length - i) * 2)}}\n`;
510
456
  });
511
457
  // Group rule into the appropriate layer.
512
- let rules = rulesByLayer.get(rule.layer || layer);
458
+ let rules = rulesByLayer.get(layer);
513
459
  if (!rules) {
514
460
  rules = [];
515
- rulesByLayer.set(rule.layer || layer, rules);
461
+ rulesByLayer.set(layer, rules);
516
462
  }
517
463
  rules.push(content);
518
- } else for (let b of rule.body)$1d6343f16443be39$var$printRule(b, rulesByLayer, preludes, rule.layer || layer);
519
- if (rule.prelude) preludes.pop();
464
+ preludes.pop();
465
+ }
466
+ toJS(allowedOverridesSet, indent = '') {
467
+ let res = '';
468
+ if (allowedOverridesSet.has(this.property)) res += `${indent}if (!${this.property.replace('--', '__')}) `;
469
+ res += `${indent}rules += ' ${this.className}';`;
470
+ return res;
471
+ }
520
472
  }
521
- function $1d6343f16443be39$var$printJS(rules, indent = '') {
522
- rules = rules.slice().reverse();
523
- let conditional = rules.filter((rule)=>rule.condition).map((rule, i)=>{
524
- return `${i > 0 ? ' else ' : ''}if (props.${rule.condition}) {\n${indent} ${$1d6343f16443be39$var$printRuleChildren(rule, indent + ' ')}\n${indent}}`;
525
- });
526
- let elseCases = rules.filter((rule)=>!rule.condition).map((rule)=>$1d6343f16443be39$var$printRuleChildren(rule, indent + ' '));
527
- if (conditional.length && elseCases.length) return `${conditional.join('')} else {\n${indent} ${elseCases.join('\n' + indent + ' ')}\n${indent}}`;
528
- if (conditional.length) return conditional.join('');
529
- return elseCases.join('\n' + indent);
473
+ /** Base class for rules that contain other rules. */ class $1d6343f16443be39$var$GroupRule {
474
+ constructor(rules, layer){
475
+ this.rules = rules;
476
+ this.layer = layer ?? null;
477
+ }
478
+ addPseudo(prelude) {
479
+ for (let rule of this.rules)rule.addPseudo(prelude);
480
+ }
481
+ getStaticClassName() {
482
+ return this.rules.map((rule)=>rule.getStaticClassName()).join('');
483
+ }
484
+ toCSS(rulesByLayer, preludes, layer) {
485
+ for (let rule of this.rules)rule.toCSS(rulesByLayer, preludes, this.layer || layer);
486
+ }
487
+ toJS(allowedOverridesSet, indent = '') {
488
+ let rules = this.rules.slice();
489
+ let conditional = rules.filter((rule)=>rule instanceof $1d6343f16443be39$var$ConditionalRule).reverse().map((rule, i)=>{
490
+ return `${i > 0 ? ' else ' : ''}${rule.toJS(allowedOverridesSet, indent)}`;
491
+ });
492
+ let elseCases = rules.filter((rule)=>!(rule instanceof $1d6343f16443be39$var$ConditionalRule)).map((rule)=>rule.toJS(allowedOverridesSet, indent));
493
+ if (conditional.length && elseCases.length) return `${conditional.join('')} else {\n${indent} ${elseCases.join('\n' + indent + ' ')}\n${indent}}`;
494
+ if (conditional.length) return conditional.join('');
495
+ return elseCases.join('\n' + indent);
496
+ }
530
497
  }
531
- function $1d6343f16443be39$var$printRuleChildren(rule, indent = '') {
532
- let res = '';
533
- if (rule.prelude.startsWith('.')) res += `rules += ' ${rule.prelude.slice(1)}';`;
534
- if (Array.isArray(rule.body)) res += $1d6343f16443be39$var$printJS(rule.body, indent);
535
- return res;
498
+ /** A rule that applies conditionally in CSS (e.g. @media). */ class $1d6343f16443be39$var$AtRule extends $1d6343f16443be39$var$GroupRule {
499
+ constructor(rules, prelude, layer){
500
+ super(rules, layer);
501
+ this.prelude = prelude;
502
+ }
503
+ toCSS(rulesByLayer, preludes = [], layer) {
504
+ preludes.push(this.prelude);
505
+ super.toCSS(rulesByLayer, preludes, layer);
506
+ preludes?.pop();
507
+ }
536
508
  }
537
- function $1d6343f16443be39$var$getStaticClassName(rules) {
538
- return rules.map((rule)=>(rule.prelude.startsWith('.') ? ' ' + rule.prelude.slice(1) : '') + (Array.isArray(rule.body) ? $1d6343f16443be39$var$getStaticClassName(rule.body) : '')).join('');
509
+ /** A rule that applies conditionally at runtime. */ class $1d6343f16443be39$var$ConditionalRule extends $1d6343f16443be39$var$GroupRule {
510
+ constructor(rules, condition){
511
+ super(rules);
512
+ this.condition = condition;
513
+ }
514
+ getStaticClassName() {
515
+ throw new Error('Conditional rules cannot be compiled to a static class name. This is a bug.');
516
+ }
517
+ toJS(allowedOverridesSet, indent = '') {
518
+ return `${indent}if (props.${this.condition}) {\n${super.toJS(allowedOverridesSet, indent + ' ')}\n${indent}}`;
519
+ }
539
520
  }
540
521
  function $1d6343f16443be39$export$1776c186c69df29e(css, layer = '_.a') {
541
522
  // Check if `this` is undefined, which means style was not called as a macro but as a normal function.
@@ -577,5 +558,5 @@ function $1d6343f16443be39$export$d25ddfdf17c3ad3e(css) {
577
558
  }
578
559
 
579
560
 
580
- export {$1d6343f16443be39$export$e33e260cb0fb20f7 as createArbitraryProperty, $1d6343f16443be39$export$40f4ff17b27355ab as createMappedProperty, $1d6343f16443be39$export$22a8270399010c94 as parseArbitraryValue, $1d6343f16443be39$export$7fdf8c7af26ba416 as createRenamedProperty, $1d6343f16443be39$export$fa08b74e8bc1d2a7 as createSizingProperty, $1d6343f16443be39$export$852145629bb0d58b as createColorProperty, $1d6343f16443be39$export$25d302a5b900a763 as createTheme, $1d6343f16443be39$export$1776c186c69df29e as raw, $1d6343f16443be39$export$d25ddfdf17c3ad3e as keyframes};
561
+ export {$1d6343f16443be39$export$d03475ad9df06cd2 as ArbitraryProperty, $1d6343f16443be39$export$965169194d2485f7 as MappedProperty, $1d6343f16443be39$export$40ae678e65d951f2 as ColorProperty, $1d6343f16443be39$export$8c6b4dc3755476bb as SizingProperty, $1d6343f16443be39$export$1b6028cfca42adca as ExpandedProperty, $1d6343f16443be39$export$22a8270399010c94 as parseArbitraryValue, $1d6343f16443be39$export$25d302a5b900a763 as createTheme, $1d6343f16443be39$export$1776c186c69df29e as raw, $1d6343f16443be39$export$d25ddfdf17c3ad3e as keyframes};
581
562
  //# sourceMappingURL=style-macro.mjs.map