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

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