@react-spectrum/s2 1.1.0 → 1.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (427) hide show
  1. package/dist/Accordion.cjs +2 -2
  2. package/dist/Accordion.css +2 -2
  3. package/dist/Accordion.mjs +2 -2
  4. package/dist/ActionBar.cjs +59 -59
  5. package/dist/ActionBar.css +58 -58
  6. package/dist/ActionBar.mjs +59 -59
  7. package/dist/ActionButton.cjs +233 -233
  8. package/dist/ActionButton.css +160 -160
  9. package/dist/ActionButton.mjs +233 -233
  10. package/dist/ActionButtonGroup.cjs +15 -15
  11. package/dist/ActionButtonGroup.css +9 -9
  12. package/dist/ActionButtonGroup.mjs +15 -15
  13. package/dist/Add.cjs +10 -10
  14. package/dist/Add.css +6 -6
  15. package/dist/Add.mjs +10 -10
  16. package/dist/AlertDialog.cjs +3 -3
  17. package/dist/AlertDialog.css +3 -3
  18. package/dist/AlertDialog.mjs +3 -3
  19. package/dist/Asterisk.cjs +6 -6
  20. package/dist/Asterisk.css +4 -4
  21. package/dist/Asterisk.mjs +6 -6
  22. package/dist/Avatar.cjs +16 -16
  23. package/dist/Avatar.css +16 -16
  24. package/dist/Avatar.mjs +16 -16
  25. package/dist/AvatarGroup.cjs +120 -120
  26. package/dist/AvatarGroup.css +31 -31
  27. package/dist/AvatarGroup.mjs +120 -120
  28. package/dist/Badge.cjs +196 -196
  29. package/dist/Badge.css +125 -125
  30. package/dist/Badge.mjs +196 -196
  31. package/dist/Breadcrumbs.cjs +234 -234
  32. package/dist/Breadcrumbs.css +100 -100
  33. package/dist/Breadcrumbs.mjs +234 -234
  34. package/dist/Button.cjs +332 -332
  35. package/dist/Button.css +174 -174
  36. package/dist/Button.mjs +332 -332
  37. package/dist/ButtonGroup.cjs +20 -20
  38. package/dist/ButtonGroup.css +15 -15
  39. package/dist/ButtonGroup.mjs +20 -20
  40. package/dist/Calendar.cjs +168 -168
  41. package/dist/Calendar.css +134 -134
  42. package/dist/Calendar.mjs +168 -168
  43. package/dist/Card.cjs +309 -309
  44. package/dist/Card.css +206 -206
  45. package/dist/Card.mjs +309 -309
  46. package/dist/CardView.cjs +17 -17
  47. package/dist/CardView.css +17 -17
  48. package/dist/CardView.mjs +17 -17
  49. package/dist/CenterBaseline.cjs +1 -1
  50. package/dist/CenterBaseline.css +2 -2
  51. package/dist/CenterBaseline.mjs +1 -1
  52. package/dist/Checkbox.cjs +161 -161
  53. package/dist/Checkbox.css +92 -92
  54. package/dist/Checkbox.mjs +161 -161
  55. package/dist/CheckboxGroup.cjs +43 -43
  56. package/dist/CheckboxGroup.css +37 -37
  57. package/dist/CheckboxGroup.mjs +43 -43
  58. package/dist/Checkmark.cjs +12 -12
  59. package/dist/Checkmark.css +8 -8
  60. package/dist/Checkmark.mjs +12 -12
  61. package/dist/Chevron.cjs +12 -12
  62. package/dist/Chevron.css +10 -10
  63. package/dist/Chevron.mjs +12 -12
  64. package/dist/ClearButton.cjs +30 -30
  65. package/dist/ClearButton.css +30 -30
  66. package/dist/ClearButton.mjs +30 -30
  67. package/dist/CloseButton.cjs +55 -55
  68. package/dist/CloseButton.css +47 -47
  69. package/dist/CloseButton.mjs +55 -55
  70. package/dist/ColorArea.cjs +16 -16
  71. package/dist/ColorArea.css +16 -16
  72. package/dist/ColorArea.mjs +16 -16
  73. package/dist/ColorField.cjs +31 -31
  74. package/dist/ColorField.css +27 -27
  75. package/dist/ColorField.mjs +31 -31
  76. package/dist/ColorHandle.cjs +27 -27
  77. package/dist/ColorHandle.css +42 -42
  78. package/dist/ColorHandle.mjs +27 -27
  79. package/dist/ColorSlider.cjs +108 -108
  80. package/dist/ColorSlider.css +52 -52
  81. package/dist/ColorSlider.mjs +108 -108
  82. package/dist/ColorSwatch.cjs +29 -29
  83. package/dist/ColorSwatch.css +29 -29
  84. package/dist/ColorSwatch.mjs +29 -29
  85. package/dist/ColorSwatchPicker.cjs +29 -29
  86. package/dist/ColorSwatchPicker.css +48 -48
  87. package/dist/ColorSwatchPicker.mjs +29 -29
  88. package/dist/ColorWheel.cjs +26 -26
  89. package/dist/ColorWheel.css +17 -17
  90. package/dist/ColorWheel.mjs +26 -26
  91. package/dist/ComboBox.cjs +381 -381
  92. package/dist/ComboBox.cjs.map +1 -1
  93. package/dist/ComboBox.css +187 -187
  94. package/dist/ComboBox.css.map +1 -1
  95. package/dist/ComboBox.mjs +381 -381
  96. package/dist/ComboBox.mjs.map +1 -1
  97. package/dist/ContextualHelp.cjs +70 -41
  98. package/dist/ContextualHelp.cjs.map +1 -1
  99. package/dist/ContextualHelp.css +71 -71
  100. package/dist/ContextualHelp.css.map +1 -1
  101. package/dist/ContextualHelp.mjs +74 -46
  102. package/dist/ContextualHelp.mjs.map +1 -1
  103. package/dist/Cross.cjs +14 -14
  104. package/dist/Cross.css +10 -10
  105. package/dist/Cross.mjs +14 -14
  106. package/dist/CustomDialog.cjs +25 -25
  107. package/dist/CustomDialog.css +25 -25
  108. package/dist/CustomDialog.mjs +25 -25
  109. package/dist/Dash.cjs +10 -10
  110. package/dist/Dash.css +6 -6
  111. package/dist/Dash.mjs +10 -10
  112. package/dist/DateField.cjs +73 -73
  113. package/dist/DateField.css +77 -77
  114. package/dist/DateField.mjs +73 -73
  115. package/dist/DatePicker.cjs +172 -172
  116. package/dist/DatePicker.css +128 -128
  117. package/dist/DatePicker.mjs +172 -172
  118. package/dist/DateRangePicker.cjs +55 -55
  119. package/dist/DateRangePicker.css +59 -59
  120. package/dist/DateRangePicker.mjs +55 -55
  121. package/dist/Dialog.cjs +17 -17
  122. package/dist/Dialog.css +70 -70
  123. package/dist/Dialog.mjs +17 -17
  124. package/dist/Disclosure.cjs +119 -119
  125. package/dist/Disclosure.css +112 -112
  126. package/dist/Disclosure.mjs +119 -119
  127. package/dist/Divider.cjs +25 -25
  128. package/dist/Divider.css +25 -25
  129. package/dist/Divider.mjs +25 -25
  130. package/dist/DropZone.cjs +61 -61
  131. package/dist/DropZone.css +57 -57
  132. package/dist/DropZone.mjs +61 -61
  133. package/dist/Field.cjs +351 -351
  134. package/dist/Field.cjs.map +1 -1
  135. package/dist/Field.css +147 -147
  136. package/dist/Field.css.map +1 -1
  137. package/dist/Field.mjs +351 -351
  138. package/dist/Field.mjs.map +1 -1
  139. package/dist/Form.cjs +9 -9
  140. package/dist/Form.css +9 -9
  141. package/dist/Form.mjs +9 -9
  142. package/dist/FullscreenDialog.cjs +5 -5
  143. package/dist/FullscreenDialog.css +78 -78
  144. package/dist/FullscreenDialog.mjs +5 -5
  145. package/dist/IllustratedMessage.cjs +228 -228
  146. package/dist/IllustratedMessage.css +72 -72
  147. package/dist/IllustratedMessage.mjs +228 -228
  148. package/dist/Image.cjs +14 -14
  149. package/dist/Image.css +14 -14
  150. package/dist/Image.mjs +14 -14
  151. package/dist/InlineAlert.cjs +100 -100
  152. package/dist/InlineAlert.css +76 -76
  153. package/dist/InlineAlert.mjs +100 -100
  154. package/dist/Link.cjs +49 -49
  155. package/dist/Link.css +41 -41
  156. package/dist/Link.mjs +49 -49
  157. package/dist/LinkOut.cjs +8 -8
  158. package/dist/LinkOut.css +8 -8
  159. package/dist/LinkOut.mjs +8 -8
  160. package/dist/ListView.cjs +777 -0
  161. package/dist/ListView.cjs.map +1 -0
  162. package/dist/ListView.css +740 -0
  163. package/dist/ListView.css.map +1 -0
  164. package/dist/ListView.mjs +770 -0
  165. package/dist/ListView.mjs.map +1 -0
  166. package/dist/Menu.cjs +529 -437
  167. package/dist/Menu.cjs.map +1 -1
  168. package/dist/Menu.css +234 -190
  169. package/dist/Menu.css.map +1 -1
  170. package/dist/Menu.mjs +530 -439
  171. package/dist/Menu.mjs.map +1 -1
  172. package/dist/Meter.cjs +153 -153
  173. package/dist/Meter.css +91 -91
  174. package/dist/Meter.mjs +153 -153
  175. package/dist/Modal.cjs +66 -66
  176. package/dist/Modal.css +54 -54
  177. package/dist/Modal.mjs +66 -66
  178. package/dist/NotificationBadge.cjs +56 -56
  179. package/dist/NotificationBadge.css +49 -49
  180. package/dist/NotificationBadge.mjs +56 -56
  181. package/dist/NumberField.cjs +114 -114
  182. package/dist/NumberField.css +99 -99
  183. package/dist/NumberField.mjs +114 -114
  184. package/dist/Picker.cjs +336 -284
  185. package/dist/Picker.cjs.map +1 -1
  186. package/dist/Picker.css +173 -173
  187. package/dist/Picker.css.map +1 -1
  188. package/dist/Picker.mjs +338 -286
  189. package/dist/Picker.mjs.map +1 -1
  190. package/dist/Popover.cjs +87 -87
  191. package/dist/Popover.css +70 -70
  192. package/dist/Popover.mjs +87 -87
  193. package/dist/ProgressBar.cjs +163 -163
  194. package/dist/ProgressBar.css +99 -99
  195. package/dist/ProgressBar.mjs +163 -163
  196. package/dist/ProgressCircle.cjs +31 -31
  197. package/dist/ProgressCircle.css +24 -24
  198. package/dist/ProgressCircle.mjs +31 -31
  199. package/dist/Provider.cjs +11 -11
  200. package/dist/Provider.css +10 -10
  201. package/dist/Provider.mjs +11 -11
  202. package/dist/Radio.cjs +145 -145
  203. package/dist/Radio.css +78 -78
  204. package/dist/Radio.mjs +145 -145
  205. package/dist/RadioGroup.cjs +41 -41
  206. package/dist/RadioGroup.css +37 -37
  207. package/dist/RadioGroup.mjs +41 -41
  208. package/dist/RangeCalendar.cjs +7 -7
  209. package/dist/RangeCalendar.css +10 -10
  210. package/dist/RangeCalendar.mjs +7 -7
  211. package/dist/SearchField.cjs +41 -41
  212. package/dist/SearchField.css +45 -45
  213. package/dist/SearchField.mjs +41 -41
  214. package/dist/SegmentedControl.cjs +178 -178
  215. package/dist/SegmentedControl.css +123 -123
  216. package/dist/SegmentedControl.mjs +178 -178
  217. package/dist/SelectBoxGroup.cjs +142 -142
  218. package/dist/SelectBoxGroup.css +120 -120
  219. package/dist/SelectBoxGroup.mjs +142 -142
  220. package/dist/Slider.cjs +294 -294
  221. package/dist/Slider.css +154 -154
  222. package/dist/Slider.mjs +294 -294
  223. package/dist/StatusLight.cjs +115 -115
  224. package/dist/StatusLight.css +59 -59
  225. package/dist/StatusLight.mjs +115 -115
  226. package/dist/Switch.cjs +154 -154
  227. package/dist/Switch.css +74 -74
  228. package/dist/Switch.mjs +154 -154
  229. package/dist/TableView.cjs +444 -420
  230. package/dist/TableView.cjs.map +1 -1
  231. package/dist/TableView.css +232 -204
  232. package/dist/TableView.css.map +1 -1
  233. package/dist/TableView.mjs +446 -422
  234. package/dist/TableView.mjs.map +1 -1
  235. package/dist/Tabs.cjs +123 -123
  236. package/dist/Tabs.css +105 -105
  237. package/dist/Tabs.mjs +123 -123
  238. package/dist/TabsPicker.cjs +127 -127
  239. package/dist/TabsPicker.css +108 -108
  240. package/dist/TabsPicker.mjs +127 -127
  241. package/dist/TagGroup.cjs +203 -203
  242. package/dist/TagGroup.css +146 -146
  243. package/dist/TagGroup.mjs +203 -203
  244. package/dist/TextField.cjs +58 -58
  245. package/dist/TextField.css +54 -54
  246. package/dist/TextField.mjs +58 -58
  247. package/dist/TimeField.cjs +51 -51
  248. package/dist/TimeField.css +47 -47
  249. package/dist/TimeField.mjs +51 -51
  250. package/dist/Toast.cjs +121 -121
  251. package/dist/Toast.cjs.map +1 -1
  252. package/dist/Toast.css +110 -110
  253. package/dist/Toast.css.map +1 -1
  254. package/dist/Toast.mjs +122 -122
  255. package/dist/Toast.mjs.map +1 -1
  256. package/dist/ToggleButton.cjs +3 -3
  257. package/dist/ToggleButton.css +12 -12
  258. package/dist/ToggleButton.mjs +3 -3
  259. package/dist/Tooltip.cjs +78 -78
  260. package/dist/Tooltip.css +65 -65
  261. package/dist/Tooltip.mjs +78 -78
  262. package/dist/TreeView.cjs +179 -145
  263. package/dist/TreeView.cjs.map +1 -1
  264. package/dist/TreeView.css +140 -128
  265. package/dist/TreeView.css.map +1 -1
  266. package/dist/TreeView.mjs +179 -145
  267. package/dist/TreeView.mjs.map +1 -1
  268. package/dist/ar-AE.cjs +1 -0
  269. package/dist/ar-AE.cjs.map +1 -1
  270. package/dist/ar-AE.mjs +1 -0
  271. package/dist/ar-AE.mjs.map +1 -1
  272. package/dist/bg-BG.cjs +1 -0
  273. package/dist/bg-BG.cjs.map +1 -1
  274. package/dist/bg-BG.mjs +1 -0
  275. package/dist/bg-BG.mjs.map +1 -1
  276. package/dist/cs-CZ.cjs +1 -0
  277. package/dist/cs-CZ.cjs.map +1 -1
  278. package/dist/cs-CZ.mjs +1 -0
  279. package/dist/cs-CZ.mjs.map +1 -1
  280. package/dist/da-DK.cjs +1 -0
  281. package/dist/da-DK.cjs.map +1 -1
  282. package/dist/da-DK.mjs +1 -0
  283. package/dist/da-DK.mjs.map +1 -1
  284. package/dist/de-DE.cjs +1 -0
  285. package/dist/de-DE.cjs.map +1 -1
  286. package/dist/de-DE.mjs +1 -0
  287. package/dist/de-DE.mjs.map +1 -1
  288. package/dist/el-GR.cjs +1 -0
  289. package/dist/el-GR.cjs.map +1 -1
  290. package/dist/el-GR.mjs +1 -0
  291. package/dist/el-GR.mjs.map +1 -1
  292. package/dist/en-US.cjs +1 -0
  293. package/dist/en-US.cjs.map +1 -1
  294. package/dist/en-US.mjs +1 -0
  295. package/dist/en-US.mjs.map +1 -1
  296. package/dist/es-ES.cjs +1 -0
  297. package/dist/es-ES.cjs.map +1 -1
  298. package/dist/es-ES.mjs +1 -0
  299. package/dist/es-ES.mjs.map +1 -1
  300. package/dist/et-EE.cjs +1 -0
  301. package/dist/et-EE.cjs.map +1 -1
  302. package/dist/et-EE.mjs +1 -0
  303. package/dist/et-EE.mjs.map +1 -1
  304. package/dist/fi-FI.cjs +1 -0
  305. package/dist/fi-FI.cjs.map +1 -1
  306. package/dist/fi-FI.mjs +1 -0
  307. package/dist/fi-FI.mjs.map +1 -1
  308. package/dist/fr-FR.cjs +1 -0
  309. package/dist/fr-FR.cjs.map +1 -1
  310. package/dist/fr-FR.mjs +1 -0
  311. package/dist/fr-FR.mjs.map +1 -1
  312. package/dist/he-IL.cjs +1 -0
  313. package/dist/he-IL.cjs.map +1 -1
  314. package/dist/he-IL.mjs +1 -0
  315. package/dist/he-IL.mjs.map +1 -1
  316. package/dist/hr-HR.cjs +1 -0
  317. package/dist/hr-HR.cjs.map +1 -1
  318. package/dist/hr-HR.mjs +1 -0
  319. package/dist/hr-HR.mjs.map +1 -1
  320. package/dist/hu-HU.cjs +1 -0
  321. package/dist/hu-HU.cjs.map +1 -1
  322. package/dist/hu-HU.mjs +1 -0
  323. package/dist/hu-HU.mjs.map +1 -1
  324. package/dist/it-IT.cjs +1 -0
  325. package/dist/it-IT.cjs.map +1 -1
  326. package/dist/it-IT.mjs +1 -0
  327. package/dist/it-IT.mjs.map +1 -1
  328. package/dist/ja-JP.cjs +1 -0
  329. package/dist/ja-JP.cjs.map +1 -1
  330. package/dist/ja-JP.mjs +1 -0
  331. package/dist/ja-JP.mjs.map +1 -1
  332. package/dist/ko-KR.cjs +1 -0
  333. package/dist/ko-KR.cjs.map +1 -1
  334. package/dist/ko-KR.mjs +1 -0
  335. package/dist/ko-KR.mjs.map +1 -1
  336. package/dist/lt-LT.cjs +1 -0
  337. package/dist/lt-LT.cjs.map +1 -1
  338. package/dist/lt-LT.mjs +1 -0
  339. package/dist/lt-LT.mjs.map +1 -1
  340. package/dist/lv-LV.cjs +1 -0
  341. package/dist/lv-LV.cjs.map +1 -1
  342. package/dist/lv-LV.mjs +1 -0
  343. package/dist/lv-LV.mjs.map +1 -1
  344. package/dist/main.cjs +7 -0
  345. package/dist/main.cjs.map +1 -1
  346. package/dist/module.mjs +5 -3
  347. package/dist/module.mjs.map +1 -1
  348. package/dist/nb-NO.cjs +1 -0
  349. package/dist/nb-NO.cjs.map +1 -1
  350. package/dist/nb-NO.mjs +1 -0
  351. package/dist/nb-NO.mjs.map +1 -1
  352. package/dist/nl-NL.cjs +1 -0
  353. package/dist/nl-NL.cjs.map +1 -1
  354. package/dist/nl-NL.mjs +1 -0
  355. package/dist/nl-NL.mjs.map +1 -1
  356. package/dist/pl-PL.cjs +1 -0
  357. package/dist/pl-PL.cjs.map +1 -1
  358. package/dist/pl-PL.mjs +1 -0
  359. package/dist/pl-PL.mjs.map +1 -1
  360. package/dist/pt-BR.cjs +1 -0
  361. package/dist/pt-BR.cjs.map +1 -1
  362. package/dist/pt-BR.mjs +1 -0
  363. package/dist/pt-BR.mjs.map +1 -1
  364. package/dist/pt-PT.cjs +1 -0
  365. package/dist/pt-PT.cjs.map +1 -1
  366. package/dist/pt-PT.mjs +1 -0
  367. package/dist/pt-PT.mjs.map +1 -1
  368. package/dist/ro-RO.cjs +1 -0
  369. package/dist/ro-RO.cjs.map +1 -1
  370. package/dist/ro-RO.mjs +1 -0
  371. package/dist/ro-RO.mjs.map +1 -1
  372. package/dist/ru-RU.cjs +1 -0
  373. package/dist/ru-RU.cjs.map +1 -1
  374. package/dist/ru-RU.mjs +1 -0
  375. package/dist/ru-RU.mjs.map +1 -1
  376. package/dist/sk-SK.cjs +1 -0
  377. package/dist/sk-SK.cjs.map +1 -1
  378. package/dist/sk-SK.mjs +1 -0
  379. package/dist/sk-SK.mjs.map +1 -1
  380. package/dist/sl-SI.cjs +1 -0
  381. package/dist/sl-SI.cjs.map +1 -1
  382. package/dist/sl-SI.mjs +1 -0
  383. package/dist/sl-SI.mjs.map +1 -1
  384. package/dist/sr-SP.cjs +1 -0
  385. package/dist/sr-SP.cjs.map +1 -1
  386. package/dist/sr-SP.mjs +1 -0
  387. package/dist/sr-SP.mjs.map +1 -1
  388. package/dist/sv-SE.cjs +1 -0
  389. package/dist/sv-SE.cjs.map +1 -1
  390. package/dist/sv-SE.mjs +1 -0
  391. package/dist/sv-SE.mjs.map +1 -1
  392. package/dist/tr-TR.cjs +1 -0
  393. package/dist/tr-TR.cjs.map +1 -1
  394. package/dist/tr-TR.mjs +1 -0
  395. package/dist/tr-TR.mjs.map +1 -1
  396. package/dist/types.d.ts +77 -6
  397. package/dist/types.d.ts.map +1 -1
  398. package/dist/uk-UA.cjs +1 -0
  399. package/dist/uk-UA.cjs.map +1 -1
  400. package/dist/uk-UA.mjs +1 -0
  401. package/dist/uk-UA.mjs.map +1 -1
  402. package/dist/zh-CN.cjs +1 -0
  403. package/dist/zh-CN.cjs.map +1 -1
  404. package/dist/zh-CN.mjs +1 -0
  405. package/dist/zh-CN.mjs.map +1 -1
  406. package/dist/zh-TW.cjs +1 -0
  407. package/dist/zh-TW.cjs.map +1 -1
  408. package/dist/zh-TW.mjs +1 -0
  409. package/dist/zh-TW.mjs.map +1 -1
  410. package/icons/Icon.cjs +10 -10
  411. package/icons/Icon.css +9 -9
  412. package/icons/Icon.mjs +10 -10
  413. package/icons/Skeleton.cjs +2 -2
  414. package/icons/Skeleton.css +6 -6
  415. package/icons/Skeleton.mjs +2 -2
  416. package/package.json +21 -21
  417. package/src/ComboBox.tsx +4 -3
  418. package/src/ContextualHelp.tsx +81 -43
  419. package/src/Field.tsx +3 -3
  420. package/src/ListView.tsx +782 -0
  421. package/src/Menu.tsx +100 -16
  422. package/src/Picker.tsx +72 -11
  423. package/src/TableView.tsx +30 -12
  424. package/src/Toast.tsx +2 -2
  425. package/src/TreeView.tsx +43 -6
  426. package/src/index.ts +6 -3
  427. package/style/__tests__/style-macro.test.js +69 -69
package/dist/Menu.mjs.map CHANGED
@@ -1 +1 @@
1
- {"mappings":"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","sources":["packages/@react-spectrum/s2/src/Menu.tsx"],"sourcesContent":["/*\n * Copyright 2024 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {\n Menu as AriaMenu,\n MenuItem as AriaMenuItem,\n MenuItemProps as AriaMenuItemProps,\n MenuProps as AriaMenuProps,\n MenuSection as AriaMenuSection,\n MenuSectionProps as AriaMenuSectionProps,\n MenuTrigger as AriaMenuTrigger,\n MenuTriggerProps as AriaMenuTriggerProps,\n SubmenuTrigger as AriaSubmenuTrigger,\n SubmenuTriggerProps as AriaSubmenuTriggerProps,\n ContextValue,\n DEFAULT_SLOT,\n MenuItemRenderProps,\n Provider,\n Separator,\n SeparatorProps\n} from 'react-aria-components';\nimport {baseColor, focusRing, fontRelative, size, space, style} from '../style' with {type: 'macro'};\nimport {box, iconStyles} from './Checkbox';\nimport {centerBaseline} from './CenterBaseline';\nimport {centerPadding, control, controlFont, controlSize, getAllowedOverrides, StyleProps} from './style-utils' with {type: 'macro'};\nimport CheckmarkIcon from '../ui-icons/Checkmark';\nimport ChevronRightIcon from '../ui-icons/Chevron';\nimport {createContext, forwardRef, JSX, ReactNode, useContext, useRef, useState} from 'react';\nimport {divider} from './Divider';\nimport {DOMRef, DOMRefValue, GlobalDOMAttributes, PressEvent} from '@react-types/shared';\nimport {edgeToText} from '../style/spectrum-theme' with {type: 'macro'};\nimport {forwardRefType} from './types';\nimport {HeaderContext, HeadingContext, KeyboardContext, Text, TextContext} from './Content';\nimport {IconContext} from './Icon'; // chevron right removed??\nimport {ImageContext} from './Image';\nimport {InPopoverContext, Popover, PopoverContext} from './Popover';\nimport LinkOutIcon from '../ui-icons/LinkOut';\nimport {mergeStyles} from '../style/runtime';\nimport {Placement, useLocale} from 'react-aria';\nimport {PressResponder} from '@react-aria/interactions';\nimport {pressScale} from './pressScale';\nimport {useGlobalListeners} from '@react-aria/utils';\nimport {useSpectrumContextProps} from './useSpectrumContextProps';\n// viewbox on LinkOut is super weird just because i copied the icon from designs...\n// need to strip id's from icons\n\nexport interface MenuTriggerProps extends AriaMenuTriggerProps {\n /**\n * Alignment of the menu relative to the trigger.\n *\n * @default 'start'\n */\n align?: 'start' | 'end',\n /**\n * Where the Menu opens relative to its trigger.\n *\n * @default 'bottom'\n */\n direction?: 'bottom' | 'top' | 'left' | 'right' | 'start' | 'end',\n /**\n * Whether the menu should automatically flip direction when space is limited.\n *\n * @default true\n */\n shouldFlip?: boolean\n}\n\nexport interface MenuProps<T> extends Omit<AriaMenuProps<T>, 'children' | 'style' | 'className' | 'render' | 'dependencies' | 'renderEmptyState' | keyof GlobalDOMAttributes>, StyleProps {\n /**\n * The size of the Menu.\n *\n * @default 'M'\n */\n size?: 'S' | 'M' | 'L' | 'XL',\n /**\n * The contents of the collection.\n */\n children: ReactNode | ((item: T) => ReactNode),\n /** Hides the default link out icons on menu items that open links in a new tab. */\n hideLinkOutIcon?: boolean\n}\n\nexport const MenuContext = createContext<ContextValue<Partial<MenuProps<any>>, DOMRefValue<HTMLDivElement>>>(null);\n\nconst menuItemGrid = {\n size: {\n S: [edgeToText(24), 'auto', 'auto', 'minmax(0, 1fr)', 'auto', 'auto', 'auto', edgeToText(24)],\n M: [edgeToText(32), 'auto', 'auto', 'minmax(0, 1fr)', 'auto', 'auto', 'auto', edgeToText(32)],\n L: [edgeToText(40), 'auto', 'auto', 'minmax(0, 1fr)', 'auto', 'auto', 'auto', edgeToText(40)],\n XL: [edgeToText(48), 'auto', 'auto', 'minmax(0, 1fr)', 'auto', 'auto', 'auto', edgeToText(48)]\n }\n} as const;\n\nexport let menu = style({\n outlineStyle: 'none',\n display: 'grid',\n gridTemplateColumns: menuItemGrid,\n boxSizing: 'border-box',\n maxHeight: 'inherit',\n width: 'full',\n overflow: {\n isPopover: 'auto'\n },\n maxWidth: {\n isPopover: 320\n },\n padding: {\n isPopover: 8\n },\n fontFamily: 'sans',\n fontSize: controlFont(),\n gridAutoRows: 'min-content'\n}, getAllowedOverrides());\n\nexport let section = style({\n gridColumnStart: 1,\n gridColumnEnd: -1,\n alignItems: 'center',\n display: 'grid',\n gridTemplateAreas: [\n '. checkmark icon label value keyboard descriptor .',\n '. . . description . . . .'\n ],\n gridTemplateColumns: menuItemGrid\n});\n\nexport let sectionHeader = style<{size?: 'S' | 'M' | 'L' | 'XL'}>({\n color: 'neutral',\n gridColumnStart: 2,\n gridColumnEnd: -2,\n boxSizing: 'border-box',\n minHeight: controlSize(),\n paddingY: centerPadding()\n});\n\nexport let sectionHeading = style({\n font: 'ui',\n fontWeight: 'bold',\n margin: 0\n});\n\nexport let menuitem = style<Omit<MenuItemRenderProps, 'hasSubmenu' | 'isOpen'> & {isFocused: boolean, size: 'S' | 'M' | 'L' | 'XL', isLink?: boolean, hasSubmenu?: boolean, isOpen?: boolean}>({\n ...focusRing(),\n ...control({shape: 'default', wrap: true, icon: true}),\n columnGap: 0,\n paddingX: 0,\n paddingBottom: '--labelPadding',\n backgroundColor: { // TODO: revisit color when I have access to dev mode again\n default: {\n default: 'transparent',\n isFocused: {\n default: baseColor('gray-100').isFocusVisible,\n forcedColors: 'Highlight'\n }\n }\n },\n color: {\n default: baseColor('neutral'),\n forcedColors: {\n default: 'ButtonText',\n isFocused: 'HighlightText'\n },\n isDisabled: {\n default: 'disabled',\n forcedColors: 'GrayText'\n }\n },\n position: 'relative',\n // each menu item should take up the entire width, the subgrid will handle within the item\n gridColumnStart: 1,\n gridColumnEnd: -1,\n display: 'grid',\n gridTemplateAreas: [\n '. checkmark icon label value keyboard descriptor .',\n '. . . description . . . .'\n ],\n gridTemplateColumns: 'subgrid',\n gridTemplateRows: {\n // min-content prevents second row from 'auto'ing to a size larger then 0 when empty\n default: 'auto minmax(0, min-content)',\n ':has([slot=description])': 'auto auto'\n },\n rowGap: {\n ':has([slot=description])': space(1)\n },\n height: 'min',\n textDecoration: 'none',\n cursor: {\n default: 'default',\n isLink: 'pointer'\n },\n transition: 'default',\n forcedColorAdjust: 'none'\n}, getAllowedOverrides());\n\nexport let checkmark = style<{isSelected: boolean, isFocused: boolean, size: 'S' | 'M' | 'L' | 'XL'}>({\n visibility: {\n default: 'hidden',\n isSelected: 'visible'\n },\n gridArea: 'checkmark',\n color: baseColor('accent'),\n '--iconPrimary': {\n type: 'fill',\n value: {\n default: 'currentColor',\n forcedColors: {\n default: 'Highlight',\n isFocused: 'HighlightText'\n }\n }\n },\n marginEnd: 'text-to-control',\n aspectRatio: 'square'\n});\n\nexport let checkbox = style({\n gridArea: 'checkmark',\n marginEnd: 'text-to-control'\n});\n\nexport let icon = style({\n display: 'block',\n size: fontRelative(20),\n // too small default icon size is wrong, it's like the icons are 1 tshirt size bigger than the rest of the component? check again after typography changes\n // reminder, size of WF is applied via font size\n marginEnd: 'text-to-visual',\n '--iconPrimary': {\n type: 'fill',\n value: 'currentColor'\n }\n});\n\nexport let iconCenterWrapper = style({\n display: 'flex',\n gridArea: 'icon'\n});\n\nlet image = style({\n gridArea: 'icon',\n gridRowEnd: 'span 2',\n marginEnd: 'text-to-visual',\n marginTop: fontRelative(6), // made up, need feedback\n alignSelf: 'center',\n borderRadius: 'sm',\n size: {\n default: 40,\n size: {\n S: 32,\n M: 40,\n L: 44,\n XL: 48 // TODO: feedback, Why is it 50x50, that's on 12.25 so doesn't fit the grid at all\n }\n },\n aspectRatio: 'square',\n objectFit: 'contain'\n});\n\nexport let label = style<{size: string}>({\n gridArea: 'label',\n font: controlFont(),\n color: 'inherit',\n fontWeight: 'medium',\n // TODO: token values for padding not defined yet, revisit\n marginTop: '--labelPadding'\n});\n\nexport let description = style({\n gridArea: 'description',\n font: {\n default: 'ui-sm',\n size: {\n S: 'ui-xs',\n M: 'ui-sm',\n L: 'ui',\n XL: 'ui-lg'\n }\n },\n color: {\n default: baseColor('neutral-subdued'),\n // Ideally this would use the same token as hover, but we don't have access to that here.\n // TODO: should we always consider isHovered and isFocused to be the same thing?\n isFocused: 'gray-800',\n isDisabled: 'disabled'\n },\n transition: 'default'\n});\n\nlet value = style({\n gridArea: 'value',\n marginStart: 8\n});\n\nlet keyboard = style<{size: 'S' | 'M' | 'L' | 'XL', isDisabled: boolean}>({\n gridArea: 'keyboard',\n marginStart: 8,\n font: 'ui',\n textAlign: 'end',\n color: {\n default: 'gray-600',\n isDisabled: 'disabled',\n forcedColors: {\n isDisabled: 'GrayText'\n }\n },\n unicodeBidi: 'plaintext'\n});\n\nlet descriptor = style({\n gridArea: 'descriptor',\n marginStart: 8,\n '--iconPrimary': {\n type: 'fill',\n value: 'currentColor'\n }\n});\n\nlet InternalMenuContext = createContext<{size: 'S' | 'M' | 'L' | 'XL', isSubmenu: boolean, hideLinkOutIcon: boolean}>({\n size: 'M',\n isSubmenu: false,\n hideLinkOutIcon: false\n});\n\nlet InternalMenuTriggerContext = createContext<Omit<MenuTriggerProps, 'children'> | null>(null);\n\nlet wrappingDiv = style({\n display: 'flex',\n size: 'full'\n});\n\n/**\n * Menus display a list of actions or options that a user can choose.\n */\nexport const Menu = /*#__PURE__*/ (forwardRef as forwardRefType)(function Menu<T extends object>(props: MenuProps<T>, ref: DOMRef<HTMLDivElement>) {\n [props, ref] = useSpectrumContextProps(props, ref, MenuContext);\n let {isSubmenu, size: ctxSize} = useContext(InternalMenuContext);\n let {\n children,\n size = ctxSize,\n UNSAFE_style,\n UNSAFE_className,\n styles,\n hideLinkOutIcon = false\n } = props;\n let ctx = useContext(InternalMenuTriggerContext);\n let inPopover = useContext(InPopoverContext);\n\n let isPopover = (ctx || isSubmenu) && !inPopover;\n let content = (\n <InternalMenuContext.Provider value={{size, isSubmenu: true, hideLinkOutIcon}}>\n <Provider\n values={[\n [HeaderContext, {styles: sectionHeader({size})}],\n [HeadingContext, {\n // @ts-ignore\n role: 'presentation',\n styles: sectionHeading\n }],\n [TextContext, {\n slots: {\n 'description': {styles: description({size})}\n }\n }],\n [InPopoverContext, false]\n ]}>\n <AriaMenu\n {...props}\n className={menu({size, isPopover}, isPopover ? null : styles)}>\n {children}\n </AriaMenu>\n </Provider>\n </InternalMenuContext.Provider>\n );\n\n if (isPopover) {\n return (\n <Popover\n ref={ref}\n padding=\"none\"\n hideArrow>\n <div\n style={UNSAFE_style}\n className={(UNSAFE_className || '') + wrappingDiv}>\n {content}\n </div>\n </Popover>\n );\n }\n\n return content;\n});\n\nexport function Divider(props: SeparatorProps): ReactNode {\n return (\n <Separator\n {...props}\n className={mergeStyles(\n divider({\n size: 'M',\n orientation: 'horizontal',\n isStaticColor: false\n }), style({\n display: {\n default: 'grid',\n ':last-child': 'none'\n },\n gridColumnStart: 2,\n gridColumnEnd: -2,\n marginY: size(5) // height of the menu separator is 12px, and the divider is 2px\n })\n )} />\n );\n}\n\nexport interface MenuSectionProps<T extends object> extends Omit<AriaMenuSectionProps<T>, 'style' | 'className' | 'render' | keyof GlobalDOMAttributes> {}\n\nexport function MenuSection<T extends object>(props: MenuSectionProps<T>): ReactNode {\n // remember, context doesn't work if it's around Section nor inside\n let {size} = useContext(InternalMenuContext);\n return (\n <>\n <AriaMenuSection\n {...props}\n className={section({size})}>\n {props.children}\n </AriaMenuSection>\n <Divider />\n </>\n );\n}\n\nexport interface MenuItemProps extends Omit<AriaMenuItemProps, 'children' | 'style' | 'className' | 'render' | 'onClick' | keyof GlobalDOMAttributes>, StyleProps {\n /**\n * The contents of the item.\n */\n children: ReactNode\n}\n\nconst checkmarkIconSize = {\n S: 'XS',\n M: 'M',\n L: 'L',\n XL: 'XL'\n} as const;\n\nconst linkIconSize = {\n S: 'M',\n M: 'L',\n L: 'XL',\n XL: 'XL'\n} as const;\n\nexport function MenuItem(props: MenuItemProps): ReactNode {\n let ref = useRef(null);\n let isLink = props.href != null;\n let isLinkOut = isLink && props.target === '_blank';\n let {size, hideLinkOutIcon} = useContext(InternalMenuContext);\n let textValue = props.textValue || (typeof props.children === 'string' ? props.children : undefined);\n let {direction} = useLocale();\n return (\n <AriaMenuItem\n {...props}\n textValue={textValue}\n ref={ref}\n style={pressScale(ref, props.UNSAFE_style)}\n className={renderProps => (props.UNSAFE_className || '') + menuitem({...renderProps, isFocused: (renderProps.hasSubmenu && renderProps.isOpen) || renderProps.isFocused, size, isLink}, props.styles)}>\n {(renderProps) => {\n let {children} = props;\n let checkboxRenderProps = {...renderProps, size, isFocused: false, isFocusVisible: false, isIndeterminate: false, isReadOnly: false, isInvalid: false, isRequired: false};\n return (\n <>\n <Provider\n values={[\n [IconContext, {\n slots: {\n icon: {render: centerBaseline({slot: 'icon', styles: iconCenterWrapper}), styles: icon},\n descriptor: {render: centerBaseline({slot: 'descriptor', styles: descriptor})} // TODO: remove once we have default?\n }\n }],\n [TextContext, {\n slots: {\n [DEFAULT_SLOT]: {styles: label({size})},\n label: {styles: label({size})},\n description: {styles: description({...renderProps, size})},\n value: {styles: value}\n }\n }],\n [KeyboardContext, {styles: keyboard({size, isDisabled: renderProps.isDisabled})}],\n [ImageContext, {styles: image({size})}]\n ]}>\n {renderProps.selectionMode === 'single' && !renderProps.hasSubmenu && <CheckmarkIcon size={checkmarkIconSize[size]} className={checkmark({...renderProps, size})} />}\n {renderProps.selectionMode === 'multiple' && !renderProps.hasSubmenu && (\n <div className={mergeStyles(checkbox, box(checkboxRenderProps))}>\n <CheckmarkIcon size={size} className={iconStyles} />\n </div>\n )}\n {typeof children === 'string' ? <Text slot=\"label\">{children}</Text> : children}\n {isLinkOut && !hideLinkOutIcon && (\n <div slot=\"descriptor\" className={descriptor}>\n <LinkOutIcon\n size={linkIconSize[size]}\n className={style({\n scaleX: {\n direction: {\n rtl: -1\n }\n }\n })({direction})} />\n </div>\n )}\n {renderProps.hasSubmenu && (\n <div slot=\"descriptor\" className={descriptor}>\n <ChevronRightIcon\n size={size}\n className={style({\n scaleX: {\n direction: {\n rtl: -1\n }\n }\n })({direction})} />\n </div>\n )}\n </Provider>\n </>\n );\n }}\n </AriaMenuItem>\n );\n}\n\n/**\n * The MenuTrigger serves as a wrapper around a Menu and its associated trigger,\n * linking the Menu's open state with the trigger's press state.\n */\nfunction MenuTrigger(props: MenuTriggerProps): ReactNode {\n // RAC sets isPressed via PressResponder when the menu is open.\n // We don't want press scaling to appear to get \"stuck\", so override this.\n // For mouse interactions, menus open on press start. When the popover underlay appears\n // it covers the trigger button, causing onPressEnd to fire immediately and no press scaling\n // to occur. We override this by listening for pointerup on the document ourselves.\n let [isPressed, setPressed] = useState(false);\n let {addGlobalListener} = useGlobalListeners();\n let onPressStart = (e: PressEvent) => {\n if (e.pointerType !== 'mouse') {\n return;\n }\n setPressed(true);\n addGlobalListener(document, 'pointerup', () => {\n setPressed(false);\n }, {once: true, capture: true});\n };\n\n let {align = 'start', direction = 'bottom', shouldFlip} = props;\n let placement: Placement;\n switch (direction) {\n case 'left':\n case 'right':\n case 'start':\n case 'end':\n placement = `${direction} ${align === 'end' ? 'bottom' : 'top'}` as Placement;\n break;\n case 'bottom':\n case 'top':\n default:\n placement = `${direction} ${align}` as Placement;\n }\n\n return (\n <InternalMenuTriggerContext.Provider\n value={{\n align: props.align,\n direction: props.direction,\n shouldFlip: props.shouldFlip\n }}>\n <PopoverContext.Provider value={{hideArrow: true, offset: 8, crossOffset: 0, placement, shouldFlip}}>\n <InPopoverContext.Provider value={false}>\n <AriaMenuTrigger {...props}>\n <PressResponder onPressStart={onPressStart} isPressed={isPressed}>\n {props.children}\n </PressResponder>\n </AriaMenuTrigger>\n </InPopoverContext.Provider>\n </PopoverContext.Provider>\n </InternalMenuTriggerContext.Provider>\n );\n}\n\nexport interface SubmenuTriggerProps extends Omit<AriaSubmenuTriggerProps, 'delay'> {}\n\nfunction SubmenuTrigger(props: SubmenuTriggerProps): JSX.Element {\n // For submenus, the offset from the edge of the popover should be 10px.\n // Subtract 8px for the padding around the parent menu.\n // Offset by padding + border so that the first item in a submenu lines up with the parent menu item.\n return (\n <AriaSubmenuTrigger {...props}>\n {props.children[0]}\n <PopoverContext.Provider value={{hideArrow: true, offset: -2, crossOffset: -8, placement: 'end top'}}>\n {props.children[1]}\n </PopoverContext.Provider>\n </AriaSubmenuTrigger>\n );\n}\n\nexport {MenuTrigger, SubmenuTrigger};\n\n// This is purely so that storybook generates the types for both Menu and MenuTrigger\ninterface ICombined<T extends object> extends MenuProps<T>, Omit<MenuTriggerProps, 'children'> {}\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nexport function CombinedMenu<T extends object>(props: ICombined<T>): ReactNode {\n return <div />;\n}\n"],"names":[],"version":3,"file":"Menu.mjs.map"}
1
+ {"mappings":"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","sources":["packages/@react-spectrum/s2/src/Menu.tsx"],"sourcesContent":["/*\n * Copyright 2024 Adobe. All rights reserved.\n * This file is licensed to you under the Apache License, Version 2.0 (the \"License\");\n * you may not use this file except in compliance with the License. You may obtain a copy\n * of the License at http://www.apache.org/licenses/LICENSE-2.0\n *\n * Unless required by applicable law or agreed to in writing, software distributed under\n * the License is distributed on an \"AS IS\" BASIS, WITHOUT WARRANTIES OR REPRESENTATIONS\n * OF ANY KIND, either express or implied. See the License for the specific language\n * governing permissions and limitations under the License.\n */\n\nimport {\n Menu as AriaMenu,\n MenuItem as AriaMenuItem,\n MenuItemProps as AriaMenuItemProps,\n MenuProps as AriaMenuProps,\n MenuSection as AriaMenuSection,\n MenuSectionProps as AriaMenuSectionProps,\n MenuTrigger as AriaMenuTrigger,\n MenuTriggerProps as AriaMenuTriggerProps,\n SubmenuTrigger as AriaSubmenuTrigger,\n SubmenuTriggerProps as AriaSubmenuTriggerProps,\n ContextValue,\n DEFAULT_SLOT,\n MenuItemRenderProps,\n Provider,\n Separator,\n SeparatorProps\n} from 'react-aria-components';\nimport {baseColor, focusRing, fontRelative, size, space, style} from '../style' with {type: 'macro'};\nimport {box, iconStyles} from './Checkbox';\nimport {centerBaseline} from './CenterBaseline';\nimport {centerPadding, control, controlFont, controlSize, getAllowedOverrides, StyleProps} from './style-utils' with {type: 'macro'};\nimport CheckmarkIcon from '../ui-icons/Checkmark';\nimport ChevronRightIcon from '../ui-icons/Chevron';\nimport {createContext, forwardRef, JSX, ReactElement, ReactNode, useContext, useRef, useState} from 'react';\nimport {divider} from './Divider';\nimport {DOMRef, DOMRefValue, GlobalDOMAttributes, PressEvent} from '@react-types/shared';\nimport {edgeToText} from '../style/spectrum-theme' with {type: 'macro'};\nimport {forwardRefType} from './types';\nimport {HeaderContext, HeadingContext, KeyboardContext, Text, TextContext} from './Content';\nimport {IconContext} from './Icon';\nimport {ImageContext} from './Image'; // chevron right removed??\nimport InfoCircleIcon from '../s2wf-icons/S2_Icon_InfoCircle_20_N.svg';\nimport {InPopoverContext, Popover, PopoverContext} from './Popover';\n// @ts-ignore\nimport intlMessages from '../intl/*.json';\nimport LinkOutIcon from '../ui-icons/LinkOut';\nimport {mergeStyles} from '../style/runtime';\nimport {Placement, useLocale} from 'react-aria';\nimport {PressResponder} from '@react-aria/interactions';\nimport {pressScale} from './pressScale';\nimport {useGlobalListeners, useId} from '@react-aria/utils';\nimport {useLocalizedStringFormatter} from '@react-aria/i18n';\nimport {useSpectrumContextProps} from './useSpectrumContextProps';\n// viewbox on LinkOut is super weird just because i copied the icon from designs...\n// need to strip id's from icons\n\nexport interface MenuTriggerProps extends AriaMenuTriggerProps {\n /**\n * Alignment of the menu relative to the trigger.\n *\n * @default 'start'\n */\n align?: 'start' | 'end',\n /**\n * Where the Menu opens relative to its trigger.\n *\n * @default 'bottom'\n */\n direction?: 'bottom' | 'top' | 'left' | 'right' | 'start' | 'end',\n /**\n * Whether the menu should automatically flip direction when space is limited.\n *\n * @default true\n */\n shouldFlip?: boolean\n}\n\nexport interface MenuProps<T> extends Omit<AriaMenuProps<T>, 'children' | 'style' | 'className' | 'render' | 'dependencies' | 'renderEmptyState' | keyof GlobalDOMAttributes>, StyleProps {\n /**\n * The size of the Menu.\n *\n * @default 'M'\n */\n size?: 'S' | 'M' | 'L' | 'XL',\n /**\n * The contents of the collection.\n */\n children: ReactNode | ((item: T) => ReactNode),\n /** Hides the default link out icons on menu items that open links in a new tab. */\n hideLinkOutIcon?: boolean\n}\n\nexport const MenuContext = createContext<ContextValue<Partial<MenuProps<any>>, DOMRefValue<HTMLDivElement>>>(null);\n\nconst menuItemGrid = {\n size: {\n S: [edgeToText(24), 'auto', 'auto', 'minmax(0, 1fr)', 'auto', 'auto', 'auto', edgeToText(24)],\n M: [edgeToText(32), 'auto', 'auto', 'minmax(0, 1fr)', 'auto', 'auto', 'auto', edgeToText(32)],\n L: [edgeToText(40), 'auto', 'auto', 'minmax(0, 1fr)', 'auto', 'auto', 'auto', edgeToText(40)],\n XL: [edgeToText(48), 'auto', 'auto', 'minmax(0, 1fr)', 'auto', 'auto', 'auto', edgeToText(48)]\n }\n} as const;\n\nexport let menu = style({\n outlineStyle: 'none',\n display: 'grid',\n gridTemplateColumns: menuItemGrid,\n boxSizing: 'border-box',\n maxHeight: 'inherit',\n width: 'full',\n overflow: {\n isPopover: 'auto'\n },\n maxWidth: {\n isPopover: 320\n },\n padding: {\n isPopover: 8\n },\n fontFamily: 'sans',\n fontSize: controlFont(),\n gridAutoRows: 'min-content'\n}, getAllowedOverrides());\n\nexport let section = style({\n gridColumnStart: 1,\n gridColumnEnd: -1,\n alignItems: 'center',\n display: 'grid',\n gridTemplateAreas: [\n '. checkmark icon label value keyboard descriptor .',\n '. . . description . . . .'\n ],\n gridTemplateColumns: menuItemGrid\n});\n\nexport let sectionHeader = style<{size?: 'S' | 'M' | 'L' | 'XL'}>({\n color: 'neutral',\n gridColumnStart: 2,\n gridColumnEnd: -2,\n boxSizing: 'border-box',\n minHeight: controlSize(),\n paddingY: centerPadding()\n});\n\nexport let sectionHeading = style({\n font: 'ui',\n fontWeight: 'bold',\n margin: 0\n});\n\nexport let menuitem = style<Omit<MenuItemRenderProps, 'hasSubmenu' | 'isOpen'> & {isFocused: boolean, size: 'S' | 'M' | 'L' | 'XL', isLink?: boolean, hasSubmenu?: boolean, isOpen?: boolean}>({\n ...focusRing(),\n ...control({shape: 'default', wrap: true, icon: true}),\n columnGap: 0,\n paddingX: 0,\n paddingBottom: '--labelPadding',\n backgroundColor: { // TODO: revisit color when I have access to dev mode again\n default: {\n default: 'transparent',\n isFocused: {\n default: baseColor('gray-100').isFocusVisible,\n forcedColors: 'Highlight'\n }\n }\n },\n color: {\n default: baseColor('neutral'),\n forcedColors: {\n default: 'ButtonText',\n isFocused: 'HighlightText'\n },\n isDisabled: {\n default: 'disabled',\n forcedColors: 'GrayText'\n }\n },\n position: 'relative',\n // each menu item should take up the entire width, the subgrid will handle within the item\n gridColumnStart: 1,\n gridColumnEnd: -1,\n display: 'grid',\n gridTemplateAreas: [\n '. checkmark icon label value keyboard descriptor .',\n '. . . description . . . .'\n ],\n gridTemplateColumns: 'subgrid',\n gridTemplateRows: {\n // min-content prevents second row from 'auto'ing to a size larger then 0 when empty\n default: 'auto minmax(0, min-content)',\n ':has([slot=description])': 'auto auto'\n },\n rowGap: {\n ':has([slot=description])': space(1)\n },\n height: 'min',\n textDecoration: 'none',\n cursor: {\n default: 'default',\n isLink: 'pointer'\n },\n transition: 'default',\n forcedColorAdjust: 'none'\n}, getAllowedOverrides());\n\nexport let checkmark = style<{isSelected: boolean, isFocused: boolean, size: 'S' | 'M' | 'L' | 'XL'}>({\n visibility: {\n default: 'hidden',\n isSelected: 'visible'\n },\n gridArea: 'checkmark',\n color: baseColor('accent'),\n '--iconPrimary': {\n type: 'fill',\n value: {\n default: 'currentColor',\n forcedColors: {\n default: 'Highlight',\n isFocused: 'HighlightText'\n }\n }\n },\n marginEnd: 'text-to-control',\n aspectRatio: 'square'\n});\n\nexport let checkbox = style({\n gridArea: 'checkmark',\n marginEnd: 'text-to-control'\n});\n\nexport let icon = style({\n display: 'block',\n size: fontRelative(20),\n // too small default icon size is wrong, it's like the icons are 1 tshirt size bigger than the rest of the component? check again after typography changes\n // reminder, size of WF is applied via font size\n marginEnd: 'text-to-visual',\n '--iconPrimary': {\n type: 'fill',\n value: 'currentColor'\n }\n});\n\nexport let iconCenterWrapper = style({\n display: 'flex',\n gridArea: 'icon'\n});\n\nlet image = style({\n gridArea: 'icon',\n gridRowEnd: 'span 2',\n marginEnd: 'text-to-visual',\n marginTop: fontRelative(6), // made up, need feedback\n alignSelf: 'center',\n borderRadius: 'sm',\n size: {\n default: 40,\n size: {\n S: 32,\n M: 40,\n L: 44,\n XL: 48 // TODO: feedback, Why is it 50x50, that's on 12.25 so doesn't fit the grid at all\n }\n },\n aspectRatio: 'square',\n objectFit: 'contain'\n});\n\nexport let label = style<{size: string}>({\n gridArea: 'label',\n font: controlFont(),\n color: 'inherit',\n fontWeight: 'medium',\n // TODO: token values for padding not defined yet, revisit\n marginTop: '--labelPadding'\n});\n\nexport let description = style({\n gridArea: 'description',\n font: {\n default: 'ui-sm',\n size: {\n S: 'ui-xs',\n M: 'ui-sm',\n L: 'ui',\n XL: 'ui-lg'\n }\n },\n color: {\n default: baseColor('neutral-subdued'),\n // Ideally this would use the same token as hover, but we don't have access to that here.\n // TODO: should we always consider isHovered and isFocused to be the same thing?\n isFocused: 'gray-800',\n isDisabled: 'disabled'\n },\n transition: 'default'\n});\n\nlet value = style({\n gridArea: 'value',\n marginStart: 8\n});\n\nlet keyboard = style<{size: 'S' | 'M' | 'L' | 'XL', isDisabled: boolean}>({\n gridArea: 'keyboard',\n marginStart: 8,\n font: 'ui',\n textAlign: 'end',\n color: {\n default: 'gray-600',\n isDisabled: 'disabled',\n forcedColors: {\n isDisabled: 'GrayText'\n }\n },\n unicodeBidi: 'plaintext'\n});\n\nlet descriptor = style({\n gridArea: 'descriptor',\n placeSelf: 'end',\n marginStart: 8,\n '--iconPrimary': {\n type: 'fill',\n value: 'currentColor'\n }\n});\n\nlet descriptorIcon = style<{size: 'S' | 'M' | 'L' | 'XL'}>({\n marginEnd: 0,\n display: 'block',\n size: {\n size: {\n S: 16,\n M: 20,\n L: 24,\n XL: 26\n }\n }\n});\n\nlet InternalMenuContext = createContext<{size: 'S' | 'M' | 'L' | 'XL', isSubmenu: boolean, hideLinkOutIcon: boolean}>({\n size: 'M',\n isSubmenu: false,\n hideLinkOutIcon: false\n});\n\nlet InternalMenuTriggerContext = createContext<Omit<MenuTriggerProps, 'children'> | null>(null);\nlet UnavailableContext = createContext(false);\n\nlet wrappingDiv = style({\n display: 'flex',\n size: 'full'\n});\n\n/**\n * Menus display a list of actions or options that a user can choose.\n */\nexport const Menu = /*#__PURE__*/ (forwardRef as forwardRefType)(function Menu<T extends object>(props: MenuProps<T>, ref: DOMRef<HTMLDivElement>) {\n [props, ref] = useSpectrumContextProps(props, ref, MenuContext);\n let {isSubmenu, size: ctxSize} = useContext(InternalMenuContext);\n let {\n children,\n size = ctxSize,\n UNSAFE_style,\n UNSAFE_className,\n styles,\n hideLinkOutIcon = false\n } = props;\n let ctx = useContext(InternalMenuTriggerContext);\n let inPopover = useContext(InPopoverContext);\n\n let isPopover = (ctx || isSubmenu) && !inPopover;\n let content = (\n <InternalMenuContext.Provider value={{size, isSubmenu: true, hideLinkOutIcon}}>\n <Provider\n values={[\n [HeaderContext, {styles: sectionHeader({size})}],\n [HeadingContext, {\n // @ts-ignore\n role: 'presentation',\n styles: sectionHeading\n }],\n [TextContext, {\n slots: {\n 'description': {styles: description({size})}\n }\n }],\n [InPopoverContext, false]\n ]}>\n <AriaMenu\n {...props}\n className={menu({size, isPopover}, isPopover ? null : styles)}>\n {children}\n </AriaMenu>\n </Provider>\n </InternalMenuContext.Provider>\n );\n\n if (isPopover) {\n return (\n <Popover\n ref={ref}\n padding=\"none\"\n hideArrow>\n <div\n style={UNSAFE_style}\n className={(UNSAFE_className || '') + wrappingDiv}>\n {content}\n </div>\n </Popover>\n );\n }\n\n return content;\n});\n\nexport function Divider(props: SeparatorProps): ReactNode {\n return (\n <Separator\n {...props}\n className={mergeStyles(\n divider({\n size: 'M',\n orientation: 'horizontal',\n isStaticColor: false\n }), style({\n display: {\n default: 'grid',\n ':last-child': 'none'\n },\n gridColumnStart: 2,\n gridColumnEnd: -2,\n marginY: size(5) // height of the menu separator is 12px, and the divider is 2px\n })\n )} />\n );\n}\n\nexport interface MenuSectionProps<T extends object> extends Omit<AriaMenuSectionProps<T>, 'style' | 'className' | 'render' | keyof GlobalDOMAttributes> {}\n\nexport function MenuSection<T extends object>(props: MenuSectionProps<T>): ReactNode {\n // remember, context doesn't work if it's around Section nor inside\n let {size} = useContext(InternalMenuContext);\n return (\n <>\n <AriaMenuSection\n {...props}\n className={section({size})}>\n {props.children}\n </AriaMenuSection>\n <Divider />\n </>\n );\n}\n\nexport interface MenuItemProps extends Omit<AriaMenuItemProps, 'children' | 'style' | 'className' | 'render' | 'onClick' | keyof GlobalDOMAttributes>, StyleProps {\n /**\n * The contents of the item.\n */\n children: ReactNode\n}\n\nconst checkmarkIconSize = {\n S: 'XS',\n M: 'M',\n L: 'L',\n XL: 'XL'\n} as const;\n\nconst linkIconSize = {\n S: 'M',\n M: 'L',\n L: 'XL',\n XL: 'XL'\n} as const;\n\ninterface UnavailableIconWrapperProps {\n direction: 'ltr' | 'rtl',\n size: 'S' | 'M' | 'L' | 'XL',\n id?: string\n}\n\nfunction UnavailableIconWrapper(props: UnavailableIconWrapperProps) {\n let {direction, size, id} = props;\n let stringFormatter = useLocalizedStringFormatter(intlMessages, '@react-spectrum/s2');\n\n return (\n <div slot=\"descriptor\" className={mergeStyles(descriptor, style({marginBottom: fontRelative(-1)}))} id={id}>\n <Provider values={[[IconContext, {slots: {icon: {styles: descriptorIcon({size})}}}]]}>\n <InfoCircleIcon\n aria-label={stringFormatter.format('menu.unavailable')}\n className={style({\n scaleX: {\n direction: {\n rtl: -1\n }\n }\n })({direction})} />\n </Provider>\n </div>\n );\n}\n\nexport function MenuItem(props: MenuItemProps): ReactNode {\n let ref = useRef(null);\n let isLink = props.href != null;\n let isLinkOut = isLink && props.target === '_blank';\n let {size, hideLinkOutIcon} = useContext(InternalMenuContext);\n let textValue = props.textValue || (typeof props.children === 'string' ? props.children : undefined);\n let {direction} = useLocale();\n let isUnavailable = useContext(UnavailableContext);\n let infoIconId = useId();\n\n return (\n <AriaMenuItem\n {...props}\n aria-describedby={isUnavailable ? infoIconId : undefined}\n textValue={textValue}\n ref={ref}\n style={pressScale(ref, props.UNSAFE_style)}\n className={renderProps => (props.UNSAFE_className || '') + menuitem({...renderProps, isFocused: (renderProps.hasSubmenu && renderProps.isOpen) || renderProps.isFocused, size, isLink}, props.styles)}>\n {(renderProps) => {\n let {children} = props;\n let checkboxRenderProps = {...renderProps, size, isFocused: false, isFocusVisible: false, isIndeterminate: false, isReadOnly: false, isInvalid: false, isRequired: false};\n return (\n <>\n <Provider\n values={[\n [IconContext, {\n slots: {\n icon: {render: centerBaseline({slot: 'icon', styles: iconCenterWrapper}), styles: icon},\n descriptor: {render: centerBaseline({slot: 'descriptor', styles: descriptor})} // TODO: remove once we have default?\n }\n }],\n [TextContext, {\n slots: {\n [DEFAULT_SLOT]: {styles: label({size})},\n label: {styles: label({size})},\n description: {styles: description({...renderProps, size})},\n value: {styles: value}\n }\n }],\n [KeyboardContext, {styles: keyboard({size, isDisabled: renderProps.isDisabled})}],\n [ImageContext, {styles: image({size})}]\n ]}>\n {renderProps.selectionMode === 'single' && !renderProps.hasSubmenu && <CheckmarkIcon size={checkmarkIconSize[size]} className={checkmark({...renderProps, size})} />}\n {renderProps.selectionMode === 'multiple' && !renderProps.hasSubmenu && (\n <div className={mergeStyles(checkbox, box(checkboxRenderProps))}>\n <CheckmarkIcon size={size} className={iconStyles} />\n </div>\n )}\n {typeof children === 'string' ? <Text slot=\"label\">{children}</Text> : children}\n {isLinkOut && !hideLinkOutIcon && (\n <div slot=\"descriptor\" className={descriptor}>\n <LinkOutIcon\n size={linkIconSize[size]}\n className={style({\n scaleX: {\n direction: {\n rtl: -1\n }\n }\n })({direction})} />\n </div>\n )}\n {renderProps.hasSubmenu && (\n isUnavailable\n ? <UnavailableIconWrapper direction={direction} size={size} id={infoIconId} />\n : (\n <div slot=\"descriptor\" className={descriptor}>\n <ChevronRightIcon\n size={size}\n className={style({\n scaleX: {\n direction: {\n rtl: -1\n }\n }\n })({direction})} />\n </div>\n )\n )}\n </Provider>\n </>\n );\n }}\n </AriaMenuItem>\n );\n}\n\n/**\n * The MenuTrigger serves as a wrapper around a Menu and its associated trigger,\n * linking the Menu's open state with the trigger's press state.\n */\nfunction MenuTrigger(props: MenuTriggerProps): ReactNode {\n // RAC sets isPressed via PressResponder when the menu is open.\n // We don't want press scaling to appear to get \"stuck\", so override this.\n // For mouse interactions, menus open on press start. When the popover underlay appears\n // it covers the trigger button, causing onPressEnd to fire immediately and no press scaling\n // to occur. We override this by listening for pointerup on the document ourselves.\n let [isPressed, setPressed] = useState(false);\n let {addGlobalListener} = useGlobalListeners();\n let onPressStart = (e: PressEvent) => {\n if (e.pointerType !== 'mouse') {\n return;\n }\n setPressed(true);\n addGlobalListener(document, 'pointerup', () => {\n setPressed(false);\n }, {once: true, capture: true});\n };\n\n let {align = 'start', direction = 'bottom', shouldFlip} = props;\n let placement: Placement;\n switch (direction) {\n case 'left':\n case 'right':\n case 'start':\n case 'end':\n placement = `${direction} ${align === 'end' ? 'bottom' : 'top'}` as Placement;\n break;\n case 'bottom':\n case 'top':\n default:\n placement = `${direction} ${align}` as Placement;\n }\n\n return (\n <InternalMenuTriggerContext.Provider\n value={{\n align: props.align,\n direction: props.direction,\n shouldFlip: props.shouldFlip\n }}>\n <PopoverContext.Provider value={{hideArrow: true, offset: 8, crossOffset: 0, placement, shouldFlip}}>\n <InPopoverContext.Provider value={false}>\n <AriaMenuTrigger {...props}>\n <PressResponder onPressStart={onPressStart} isPressed={isPressed}>\n {props.children}\n </PressResponder>\n </AriaMenuTrigger>\n </InPopoverContext.Provider>\n </PopoverContext.Provider>\n </InternalMenuTriggerContext.Provider>\n );\n}\n\nexport interface SubmenuTriggerProps extends Omit<AriaSubmenuTriggerProps, 'delay'> {}\n\nfunction SubmenuTrigger(props: SubmenuTriggerProps): JSX.Element {\n // For submenus, the offset from the edge of the popover should be 10px.\n // Subtract 8px for the padding around the parent menu.\n // Offset by padding + border so that the first item in a submenu lines up with the parent menu item.\n return (\n <AriaSubmenuTrigger {...props}>\n {props.children[0]}\n <PopoverContext.Provider value={{hideArrow: true, offset: -2, crossOffset: -8, placement: 'end top'}}>\n {props.children[1]}\n </PopoverContext.Provider>\n </AriaSubmenuTrigger>\n );\n}\n\nexport interface UnavailableMenuItemTriggerProps {\n /**\n * The contents of the UnavailableMenuItemTrigger. The first child should be a MenuItem and the second child be a ContextualHelpPopover.\n */\n children: ReactElement[],\n /**\n * Whether the menu item is currently unavailable.\n * @default false\n */\n isUnavailable?: boolean\n}\n\nfunction UnavailableMenuItemTrigger(props: UnavailableMenuItemTriggerProps): JSX.Element {\n let {isUnavailable = false, children} = props;\n if (isUnavailable) {\n return (\n <UnavailableContext.Provider value={isUnavailable}>\n <AriaSubmenuTrigger>\n {children[0]}\n <PopoverContext.Provider value={{hideArrow: true, offset: -2, crossOffset: -8, placement: 'end top'}}>\n {children[1]}\n </PopoverContext.Provider>\n </AriaSubmenuTrigger>\n </UnavailableContext.Provider>\n );\n }\n\n return children[0] as JSX.Element;\n}\n\nexport {MenuTrigger, SubmenuTrigger, UnavailableMenuItemTrigger};\n\n// This is purely so that storybook generates the types for both Menu and MenuTrigger\ninterface ICombined<T extends object> extends MenuProps<T>, Omit<MenuTriggerProps, 'children'> {}\n// eslint-disable-next-line @typescript-eslint/no-unused-vars\nexport function CombinedMenu<T extends object>(props: ICombined<T>): ReactNode {\n return <div />;\n}\n"],"names":[],"version":3,"file":"Menu.mjs.map"}
package/dist/Meter.cjs CHANGED
@@ -46,195 +46,195 @@ const $f53cdf036c04454a$var$wrapper = function anonymous(props, overrides) {
46
46
  if (p[1] === "L") maxWidth = true;
47
47
  rules += p[0];
48
48
  }
49
- if (props.staticColor === "white") rules += ' -Ovbhqd-gcwrnr11';
50
- else if (props.staticColor === "black") rules += ' -Ovbhqd-g4hn3s11';
51
- if (!position) rules += ' _Pc11';
52
- rules += ' se11';
53
- if (props.labelPosition === "side") rules += ' DPlN5qb11';
54
- else if (props.labelPosition === "top") rules += ' Dxumf9b11';
55
- if (props.labelPosition === "side") rules += ' Cvv4gue11';
56
- else if (props.labelPosition === "top") rules += ' CC0Gyo11';
57
- rules += ' ea11';
58
- rules += ' _Bb11';
59
- if (!minWidth) rules += ' Nl11';
60
- if (!maxWidth) rules += ' Lk11';
61
- if (props.size === "XL") rules += ' -BhX7R-Fz11';
62
- else if (props.size === "L") rules += ' -BhX7R-Fv11';
63
- else if (props.size === "S") rules += ' -BhX7R-Fp11';
64
- else if (props.size === "XS") rules += ' -BhX7R-Fn11';
65
- else rules += ' -BhX7R-Fx11';
66
- rules += ' -dTMmze-Fe11';
67
- rules += ' -AJjOLd-UCwrhQe11';
68
- rules += ' qg11';
49
+ if (props.staticColor === "white") rules += ' -Ovbhqd-gcwrnr12';
50
+ else if (props.staticColor === "black") rules += ' -Ovbhqd-g4hn3s12';
51
+ if (!position) rules += ' _Pc12';
52
+ rules += ' se12';
53
+ if (props.labelPosition === "side") rules += ' DPlN5qb12';
54
+ else if (props.labelPosition === "top") rules += ' Dxumf9b12';
55
+ if (props.labelPosition === "side") rules += ' Cvv4gue12';
56
+ else if (props.labelPosition === "top") rules += ' CC0Gyo12';
57
+ rules += ' ea12';
58
+ rules += ' _Bb12';
59
+ if (!minWidth) rules += ' Nl12';
60
+ if (!maxWidth) rules += ' Lk12';
61
+ if (props.size === "XL") rules += ' -BhX7R-Fz12';
62
+ else if (props.size === "L") rules += ' -BhX7R-Fv12';
63
+ else if (props.size === "S") rules += ' -BhX7R-Fp12';
64
+ else if (props.size === "XS") rules += ' -BhX7R-Fn12';
65
+ else rules += ' -BhX7R-Fx12';
66
+ rules += ' -dTMmze-Fe12';
67
+ rules += ' -AJjOLd-UCwrhQe12';
68
+ rules += ' qg12';
69
69
  return rules;
70
70
  };
71
71
  const $f53cdf036c04454a$var$valueStyles = function anonymous(props) {
72
72
  let rules = " ";
73
73
  if (props.size === "XL") {
74
- rules += ' uk11';
75
- rules += ' ucJ9TBTb11';
76
- rules += ' ud3Euai11';
77
- rules += ' uea11';
78
- rules += ' ugb11';
79
- rules += ' uhd11';
80
- rules += ' uje11';
81
- rules += ' u2NhKxcl11';
82
- rules += ' uic11';
74
+ rules += ' uk12';
75
+ rules += ' ucJ9TBTb12';
76
+ rules += ' ud3Euai12';
77
+ rules += ' uea12';
78
+ rules += ' ugb12';
79
+ rules += ' uhd12';
80
+ rules += ' uje12';
81
+ rules += ' u2NhKxcl12';
82
+ rules += ' uic12';
83
83
  } else if (props.size === "L") {
84
- rules += ' uk11';
85
- rules += ' ucJ9TBTb11';
86
- rules += ' ud3Euai11';
87
- rules += ' uea11';
88
- rules += ' ugb11';
89
- rules += ' uhd11';
90
- rules += ' uje11';
91
- rules += ' u2NhKxcl11';
92
- rules += ' uic11';
84
+ rules += ' uk12';
85
+ rules += ' ucJ9TBTb12';
86
+ rules += ' ud3Euai12';
87
+ rules += ' uea12';
88
+ rules += ' ugb12';
89
+ rules += ' uhd12';
90
+ rules += ' uje12';
91
+ rules += ' u2NhKxcl12';
92
+ rules += ' uic12';
93
93
  } else if (props.size === "S") {
94
- rules += ' uk11';
95
- rules += ' ucJ9TBTb11';
96
- rules += ' ud3Euai11';
97
- rules += ' uea11';
98
- rules += ' ugb11';
99
- rules += ' uhd11';
100
- rules += ' uje11';
101
- rules += ' u2NhKxcl11';
102
- rules += ' uic11';
94
+ rules += ' uk12';
95
+ rules += ' ucJ9TBTb12';
96
+ rules += ' ud3Euai12';
97
+ rules += ' uea12';
98
+ rules += ' ugb12';
99
+ rules += ' uhd12';
100
+ rules += ' uje12';
101
+ rules += ' u2NhKxcl12';
102
+ rules += ' uic12';
103
103
  } else if (props.size === "XS") {
104
- rules += ' uk11';
105
- rules += ' ucJ9TBTb11';
106
- rules += ' ud3Euai11';
107
- rules += ' uea11';
108
- rules += ' ugb11';
109
- rules += ' uhd11';
110
- rules += ' uje11';
111
- rules += ' u2NhKxcl11';
112
- rules += ' uic11';
104
+ rules += ' uk12';
105
+ rules += ' ucJ9TBTb12';
106
+ rules += ' ud3Euai12';
107
+ rules += ' uea12';
108
+ rules += ' ugb12';
109
+ rules += ' uhd12';
110
+ rules += ' uje12';
111
+ rules += ' u2NhKxcl12';
112
+ rules += ' uic12';
113
113
  } else {
114
- rules += ' uk11';
115
- rules += ' ucJ9TBTb11';
116
- rules += ' ud3Euai11';
117
- rules += ' uea11';
118
- rules += ' ugb11';
119
- rules += ' uhd11';
120
- rules += ' uje11';
121
- rules += ' u2NhKxcl11';
122
- rules += ' uic11';
114
+ rules += ' uk12';
115
+ rules += ' ucJ9TBTb12';
116
+ rules += ' ud3Euai12';
117
+ rules += ' uea12';
118
+ rules += ' ugb12';
119
+ rules += ' uhd12';
120
+ rules += ' uje12';
121
+ rules += ' u2NhKxcl12';
122
+ rules += ' uic12';
123
123
  }
124
124
  if (props.size === "XL") {
125
- rules += ' -_6BNtrc-e11';
126
- rules += ' vx11';
125
+ rules += ' -_6BNtrc-e12';
126
+ rules += ' vx12';
127
127
  } else if (props.size === "L") {
128
- rules += ' -_6BNtrc-d11';
129
- rules += ' vx11';
128
+ rules += ' -_6BNtrc-d12';
129
+ rules += ' vx12';
130
130
  } else if (props.size === "S") {
131
- rules += ' -_6BNtrc-b11';
132
- rules += ' vx11';
131
+ rules += ' -_6BNtrc-b12';
132
+ rules += ' vx12';
133
133
  } else if (props.size === "XS") {
134
- rules += ' -_6BNtrc-a11';
135
- rules += ' vx11';
134
+ rules += ' -_6BNtrc-a12';
135
+ rules += ' vx12';
136
136
  } else {
137
- rules += ' -_6BNtrc-c11';
138
- rules += ' vx11';
137
+ rules += ' -_6BNtrc-c12';
138
+ rules += ' vx12';
139
139
  }
140
140
  if (props.size === "XL") {
141
- rules += ' xb11';
142
- rules += ' _xa11';
141
+ rules += ' xb12';
142
+ rules += ' _xa12';
143
143
  } else if (props.size === "L") {
144
- rules += ' xb11';
145
- rules += ' _xa11';
144
+ rules += ' xb12';
145
+ rules += ' _xa12';
146
146
  } else if (props.size === "S") {
147
- rules += ' xb11';
148
- rules += ' _xa11';
147
+ rules += ' xb12';
148
+ rules += ' _xa12';
149
149
  } else if (props.size === "XS") {
150
- rules += ' xb11';
151
- rules += ' _xa11';
150
+ rules += ' xb12';
151
+ rules += ' _xa12';
152
152
  } else {
153
- rules += ' xb11';
154
- rules += ' _xa11';
153
+ rules += ' xb12';
154
+ rules += ' _xa12';
155
155
  }
156
156
  if (props.size === "XL") {
157
- rules += ' _Fd11';
158
- rules += ' _FnuYUweb11';
157
+ rules += ' _Fd12';
158
+ rules += ' _FnuYUweb12';
159
159
  } else if (props.size === "L") {
160
- rules += ' _Fd11';
161
- rules += ' _FnuYUweb11';
160
+ rules += ' _Fd12';
161
+ rules += ' _FnuYUweb12';
162
162
  } else if (props.size === "S") {
163
- rules += ' _Fd11';
164
- rules += ' _FnuYUweb11';
163
+ rules += ' _Fd12';
164
+ rules += ' _FnuYUweb12';
165
165
  } else if (props.size === "XS") {
166
- rules += ' _Fd11';
167
- rules += ' _FnuYUweb11';
166
+ rules += ' _Fd12';
167
+ rules += ' _FnuYUweb12';
168
168
  } else {
169
- rules += ' _Fd11';
170
- rules += ' _FnuYUweb11';
169
+ rules += ' _Fd12';
170
+ rules += ' _FnuYUweb12';
171
171
  }
172
- if (props.isStaticColor) rules += ' pl11';
173
- else if (props.isDisabled) rules += ' pp11';
174
- else rules += ' pv11';
175
- rules += ' plb11';
176
- rules += ' ri11';
177
- rules += ' z8bmXs11';
178
- rules += ' y8bmXs11';
179
- rules += ' B8bmXs11';
180
- rules += ' A8bmXs11';
172
+ if (props.isStaticColor) rules += ' pl12';
173
+ else if (props.isDisabled) rules += ' pp12';
174
+ else rules += ' pv12';
175
+ rules += ' plb12';
176
+ rules += ' ri12';
177
+ rules += ' z8bmXs12';
178
+ rules += ' y8bmXs12';
179
+ rules += ' B8bmXs12';
180
+ rules += ' A8bmXs12';
181
181
  return rules;
182
182
  };
183
183
  const $f53cdf036c04454a$var$trackStyles = function anonymous(props) {
184
184
  let rules = " ";
185
- rules += ' zMY0fn11';
186
- rules += ' yMY0fn11';
187
- rules += ' BMY0fn11';
188
- rules += ' AMY0fn11';
189
- if (props.size === "XL") rules += ' Nl11';
190
- else if (props.size === "L") rules += ' Nj11';
191
- else if (props.size === "S") rules += ' Nf11';
192
- else if (props.size === "XS") rules += ' Ne11';
193
- else rules += ' Nk11';
194
- if (props.isQuiet) rules += ' _qd11';
195
- else rules += ' _qtb11';
196
- if (props.size === "XL") rules += ' -Anxdcc-Zt11';
197
- else if (props.size === "L") rules += ' -Anxdcc-ZStdtne11';
198
- else if (props.size === "S") rules += ' -Anxdcc-Zr11';
199
- else rules += ' -Anxdcc-Z3fn9H11';
200
- rules += ' __v6TNLWb11';
201
- rules += ' _Nc11';
202
- rules += ' Pc11';
203
- rules += ' og11';
204
- rules += ' ng11';
205
- rules += ' kg11';
206
- rules += ' jg11';
207
- if (props.isStaticColor) rules += ' gh11';
208
- else rules += ' gE11';
209
- rules += ' glb11';
210
- rules += ' _Ma11';
211
- rules += ' _Mlb11';
212
- rules += ' _Le11';
213
- rules += ' _Llf11';
214
- rules += ' Oj11';
215
- rules += ' Olb11';
216
- rules += ' _9c11';
217
- if (props.size === "XL") rules += ' Fj11';
218
- else if (props.size === "L") rules += ' Fi11';
219
- else if (props.size === "M") rules += ' Fg11';
220
- else if (props.size === "S") rules += ' Fe11';
221
- else rules += ' Fg11';
185
+ rules += ' zMY0fn12';
186
+ rules += ' yMY0fn12';
187
+ rules += ' BMY0fn12';
188
+ rules += ' AMY0fn12';
189
+ if (props.size === "XL") rules += ' Nl12';
190
+ else if (props.size === "L") rules += ' Nj12';
191
+ else if (props.size === "S") rules += ' Nf12';
192
+ else if (props.size === "XS") rules += ' Ne12';
193
+ else rules += ' Nk12';
194
+ if (props.isQuiet) rules += ' _qd12';
195
+ else rules += ' _qtb12';
196
+ if (props.size === "XL") rules += ' -Anxdcc-Zt12';
197
+ else if (props.size === "L") rules += ' -Anxdcc-ZStdtne12';
198
+ else if (props.size === "S") rules += ' -Anxdcc-Zr12';
199
+ else rules += ' -Anxdcc-Z3fn9H12';
200
+ rules += ' __v6TNLWb12';
201
+ rules += ' _Nc12';
202
+ rules += ' Pc12';
203
+ rules += ' og12';
204
+ rules += ' ng12';
205
+ rules += ' kg12';
206
+ rules += ' jg12';
207
+ if (props.isStaticColor) rules += ' gh12';
208
+ else rules += ' gE12';
209
+ rules += ' glb12';
210
+ rules += ' _Ma12';
211
+ rules += ' _Mlb12';
212
+ rules += ' _Le12';
213
+ rules += ' _Llf12';
214
+ rules += ' Oj12';
215
+ rules += ' Olb12';
216
+ rules += ' _9c12';
217
+ if (props.size === "XL") rules += ' Fj12';
218
+ else if (props.size === "L") rules += ' Fi12';
219
+ else if (props.size === "M") rules += ' Fg12';
220
+ else if (props.size === "S") rules += ' Fe12';
221
+ else rules += ' Fg12';
222
222
  return rules;
223
223
  };
224
224
  const $f53cdf036c04454a$var$fillStyles = function anonymous(props) {
225
225
  let rules = " ";
226
- rules += ' Fb11';
227
- rules += ' _je11';
228
- rules += ' og11';
229
- rules += ' ng11';
230
- rules += ' kg11';
231
- rules += ' jg11';
232
- if (props.isStaticColor) rules += ' gj11';
233
- else if (props.variant === "negative") rules += ' gFLVMS11';
234
- else if (props.variant === "notice") rules += ' g9VrKkd11';
235
- else if (props.variant === "positive") rules += ' gp17Jm11';
236
- else rules += ' gG1ze4d11';
237
- rules += ' glc11';
226
+ rules += ' Fb12';
227
+ rules += ' _je12';
228
+ rules += ' og12';
229
+ rules += ' ng12';
230
+ rules += ' kg12';
231
+ rules += ' jg12';
232
+ if (props.isStaticColor) rules += ' gj12';
233
+ else if (props.variant === "negative") rules += ' gFLVMS12';
234
+ else if (props.variant === "notice") rules += ' g9VrKkd12';
235
+ else if (props.variant === "positive") rules += ' gp17Jm12';
236
+ else rules += ' gG1ze4d12';
237
+ rules += ' glc12';
238
238
  return rules;
239
239
  };
240
240
  const $f53cdf036c04454a$export$62e3ae2a4090b879 = /*#__PURE__*/ (0, $aQdtU$react.forwardRef)(function Meter(props, ref) {