@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
@@ -1 +1 @@
1
- {"mappings":"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","sources":["packages/@react-spectrum/s2/src/Picker.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 ListBoxSection as AriaListBoxSection,\n PopoverProps as AriaPopoverProps,\n Select as AriaSelect,\n SelectProps as AriaSelectProps,\n SelectRenderProps as AriaSelectRenderProps,\n Button,\n ButtonRenderProps,\n Collection,\n ContextValue,\n DEFAULT_SLOT,\n ListBox,\n ListBoxItem,\n ListBoxItemProps,\n ListBoxLoadMoreItem,\n ListBoxProps,\n ListLayout,\n Provider,\n SectionProps,\n SelectValue,\n Virtualizer\n} from 'react-aria-components';\nimport {AsyncLoadable, FocusableRef, FocusableRefValue, GlobalDOMAttributes, HelpTextProps, LoadingState, PressEvent, RefObject, SpectrumLabelableProps} from '@react-types/shared';\nimport {AvatarContext} from './Avatar';\nimport {baseColor, focusRing, style} from '../style' with {type: 'macro'};\nimport {box, iconStyles as checkboxIconStyles} from './Checkbox';\nimport {centerBaseline} from './CenterBaseline';\nimport {\n checkbox,\n checkmark,\n description,\n icon,\n iconCenterWrapper,\n label,\n sectionHeading\n} from './Menu';\nimport CheckmarkIcon from '../ui-icons/Checkmark';\nimport ChevronIcon from '../ui-icons/Chevron';\nimport {control, controlBorderRadius, controlFont, field, fieldInput, getAllowedOverrides, StyleProps} from './style-utils' with {type: 'macro'};\nimport {createHideableComponent} from '@react-aria/collections';\nimport {\n Divider,\n listbox,\n listboxHeader,\n listboxItem,\n LOADER_ROW_HEIGHTS\n} from './ComboBox';\nimport {edgeToText} from '../style/spectrum-theme' with {type: 'macro'};\nimport {\n FieldErrorIcon,\n FieldLabel,\n HelpText\n} from './Field';\nimport {FormContext, useFormProps} from './Form';\nimport {forwardRefType} from './types';\nimport {HeaderContext, HeadingContext, Text, TextContext} from './Content';\nimport {IconContext} from './Icon';\n// @ts-ignore\nimport intlMessages from '../intl/*.json';\nimport {mergeStyles} from '../style/runtime';\nimport {Placement} from 'react-aria';\nimport {Popover} from './Popover';\nimport {PressResponder} from '@react-aria/interactions';\nimport {pressScale} from './pressScale';\nimport {ProgressCircle} from './ProgressCircle';\nimport {raw} from '../style/style-macro' with {type: 'macro'};\nimport React, {createContext, forwardRef, ReactNode, useContext, useMemo, useRef, useState} from 'react';\nimport {useFocusableRef} from '@react-spectrum/utils';\nimport {useGlobalListeners, useSlotId} from '@react-aria/utils';\nimport {useLocale, useLocalizedStringFormatter} from '@react-aria/i18n';\nimport {useScale} from './utils';\nimport {useSpectrumContextProps} from './useSpectrumContextProps';\n\nexport interface PickerStyleProps {\n /**\n * The size of the Picker.\n *\n * @default 'M'\n */\n size?: 'S' | 'M' | 'L' | 'XL',\n /**\n * Whether the picker should be displayed with a quiet style.\n */\n isQuiet?: boolean\n}\n\ntype SelectionMode = 'single' | 'multiple';\nexport interface PickerProps<T extends object, M extends SelectionMode = 'single'> extends\n Omit<AriaSelectProps<T, M>, 'children' | 'style' | 'className' | 'render' | 'allowsEmptyCollection' | keyof GlobalDOMAttributes>,\n PickerStyleProps,\n StyleProps,\n SpectrumLabelableProps,\n HelpTextProps,\n Pick<ListBoxProps<T>, 'items' | 'dependencies'>,\n Pick<AriaPopoverProps, 'shouldFlip'>,\n Pick<AsyncLoadable, 'onLoadMore'> {\n /** The contents of the collection. */\n children: ReactNode | ((item: T) => ReactNode),\n /**\n * Direction the menu will render relative to the Picker.\n *\n * @default 'bottom'\n */\n direction?: 'bottom' | 'top',\n /**\n * Alignment of the menu relative to the input target.\n *\n * @default 'start'\n */\n align?: 'start' | 'end',\n /** Width of the menu. By default, matches width of the trigger. Note that the minimum width of the dropdown is always equal to the trigger's width. */\n menuWidth?: number,\n /** The current loading state of the Picker. */\n loadingState?: LoadingState\n}\n\ninterface PickerButtonProps extends PickerStyleProps, ButtonRenderProps {}\n\nexport const PickerContext = createContext<ContextValue<Partial<PickerProps<any>>, FocusableRefValue<HTMLButtonElement>>>(null);\n\nconst inputButton = style<PickerButtonProps | AriaSelectRenderProps>({\n ...focusRing(),\n ...control({shape: 'default', icon: true}),\n ...fieldInput(),\n outlineStyle: {\n default: 'none',\n isFocusVisible: 'solid',\n isQuiet: 'none'\n },\n position: 'relative',\n textAlign: 'start',\n borderStyle: {\n default: 'none',\n forcedColors: 'solid'\n },\n borderColor: {\n forcedColors: {\n default: 'ButtonText',\n isDisabled: 'GrayText'\n }\n },\n transition: 'default',\n paddingX: {\n default: 'edge-to-text',\n isQuiet: 0\n },\n backgroundColor: {\n default: baseColor('gray-100'),\n isOpen: 'gray-200',\n isDisabled: 'disabled',\n isQuiet: 'transparent'\n },\n color: {\n default: baseColor('neutral'),\n isDisabled: 'disabled'\n },\n maxWidth: {\n isQuiet: 'max'\n },\n disableTapHighlight: true\n});\n\nconst quietFocusLine = style({\n width: 'full',\n // Use pixels since we are emulating a border.\n height: '[2px]',\n position: 'absolute',\n bottom: 0,\n borderRadius: 'full',\n backgroundColor: {\n default: 'blue-800',\n forcedColors: 'Highlight'\n }\n});\n\nexport let menu = style({\n outlineStyle: 'none',\n display: 'grid',\n width: 'full',\n gridTemplateColumns: {\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 },\n boxSizing: 'border-box',\n maxHeight: 'inherit',\n overflow: 'auto',\n padding: 8,\n fontFamily: 'sans',\n fontSize: controlFont(),\n gridAutoRows: 'min-content'\n});\n\nconst invalidBorder = style({\n ...controlBorderRadius(),\n position: 'absolute',\n top: 0,\n left: 0,\n bottom: 0,\n right: 0,\n pointerEvents: 'none',\n borderStyle: 'solid',\n borderWidth: 2,\n borderColor: baseColor('negative'),\n transition: 'default'\n});\n\nconst valueStyles = style({\n flexGrow: {\n default: 1,\n isQuiet: 0\n },\n truncate: true,\n display: 'flex',\n alignItems: 'center'\n});\n\nconst iconStyles = style({\n flexShrink: 0,\n rotate: 90,\n '--iconPrimary': {\n type: 'fill',\n value: 'currentColor'\n },\n color: {\n isLoading: 'disabled'\n }\n});\n\nconst avatar = style({\n gridArea: 'icon',\n marginEnd: 'text-to-visual'\n});\n\nconst loadingWrapperStyles = style({\n gridColumnStart: '1',\n gridColumnEnd: '-1',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n marginY: 8\n});\n\nconst progressCircleStyles = style({\n size: {\n size: {\n S: 16,\n M: 20,\n L: 22,\n XL: 26\n }\n }\n});\n\nlet InternalPickerContext = createContext<{size: 'S' | 'M' | 'L' | 'XL'}>({size: 'M'});\nlet InsideSelectValueContext = createContext(false);\n\n/**\n * Pickers allow users to choose a single option from a collapsible list of options when space is limited.\n */\nexport const Picker = /*#__PURE__*/ (forwardRef as forwardRefType)(function Picker<T extends object, M extends SelectionMode = 'single'>(props: PickerProps<T, M>, ref: FocusableRef<HTMLButtonElement>) {\n let stringFormatter = useLocalizedStringFormatter(intlMessages, '@react-spectrum/s2');\n [props, ref] = useSpectrumContextProps(props, ref, PickerContext);\n let domRef = useFocusableRef(ref);\n let formContext = useContext(FormContext);\n props = useFormProps(props);\n let {\n direction = 'bottom',\n align = 'start',\n shouldFlip = true,\n menuWidth,\n label,\n description: descriptionMessage,\n errorMessage,\n children,\n items,\n size = 'M',\n labelPosition = 'top',\n labelAlign = 'start',\n necessityIndicator,\n UNSAFE_className = '',\n UNSAFE_style,\n placeholder = stringFormatter.format('picker.placeholder'),\n isQuiet,\n loadingState,\n onLoadMore,\n ...pickerProps\n } = props;\n\n // Better way to encode this into a style? need to account for flipping\n let menuOffset: number;\n if (size === 'S') {\n menuOffset = 6;\n } else if (size === 'M') {\n menuOffset = 6;\n } else if (size === 'L') {\n menuOffset = 7;\n } else {\n menuOffset = 8;\n }\n\n let renderer;\n let showButtonSpinner = useMemo(() => loadingState === 'loading', [loadingState]);\n let spinnerId = useSlotId([showButtonSpinner]);\n\n let listBoxLoadingCircle = (\n <ListBoxLoadMoreItem\n className={loadingWrapperStyles}\n isLoading={loadingState === 'loadingMore'}\n onLoadMore={onLoadMore}>\n <PickerProgressCircle size={size} aria-label={stringFormatter.format('table.loadingMore')} />\n </ListBoxLoadMoreItem>\n );\n\n if (typeof children === 'function' && items) {\n renderer = (\n <>\n <Collection items={items} dependencies={props.dependencies}>\n {children}\n </Collection>\n {listBoxLoadingCircle}\n </>\n );\n } else {\n renderer = (\n <>\n {children}\n {listBoxLoadingCircle}\n </>\n );\n }\n let scale = useScale();\n let {direction: dir} = useLocale();\n let RTLFlipOffset = dir === 'rtl' ? -1 : 1;\n\n return (\n <AriaSelect\n {...pickerProps}\n aria-describedby={spinnerId}\n placeholder={placeholder}\n style={UNSAFE_style}\n className={UNSAFE_className + style(field(), getAllowedOverrides())({\n isInForm: !!formContext,\n labelPosition,\n size\n }, props.styles)}>\n {({isDisabled, isOpen, isFocusVisible, isInvalid, isRequired}) => (\n <>\n <InternalPickerContext.Provider value={{size}}>\n <FieldLabel\n includeNecessityIndicatorInAccessibilityName\n isDisabled={isDisabled}\n isRequired={isRequired}\n size={size}\n labelPosition={labelPosition}\n labelAlign={labelAlign}\n isQuiet={isQuiet}\n necessityIndicator={necessityIndicator}\n contextualHelp={props.contextualHelp}>\n {label}\n </FieldLabel>\n <PickerButton\n loadingState={loadingState}\n isOpen={isOpen}\n isQuiet={isQuiet}\n isFocusVisible={isFocusVisible}\n size={size}\n isInvalid={isInvalid}\n isDisabled={isDisabled}\n buttonRef={domRef}\n loadingCircle={\n <PickerProgressCircle\n id={spinnerId}\n size={size}\n aria-label={stringFormatter.format('table.loading')} />\n } />\n <HelpText\n size={size}\n isDisabled={isDisabled}\n isInvalid={isInvalid}\n description={descriptionMessage}>\n {errorMessage}\n </HelpText>\n <Virtualizer\n layout={ListLayout}\n layoutOptions={{\n estimatedRowHeight: 32,\n estimatedHeadingHeight: 50,\n padding: 8,\n loaderHeight: LOADER_ROW_HEIGHTS[size][scale]}}>\n <Popover\n hideArrow\n padding=\"none\"\n offset={menuOffset}\n crossOffset={isQuiet ? RTLFlipOffset * -12 : undefined}\n placement={`${direction} ${align}` as Placement}\n shouldFlip={shouldFlip}\n UNSAFE_style={{\n width: menuWidth && !isQuiet ? `${menuWidth}px` : undefined\n }}\n styles={style({\n minWidth: {\n default: '--trigger-width',\n isQuiet: 192\n },\n width: {\n default: '--trigger-width',\n isQuiet: '[calc(var(--trigger-width) - 24)]'\n }\n })(props)}>\n <div\n className={style({\n display: 'flex',\n size: 'full'\n })}>\n <Provider\n values={[\n [HeaderContext, {styles: listboxHeader({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 ]}>\n <ListBox\n dependencies={props.dependencies}\n items={items}\n className={listbox({size})}>\n {renderer}\n </ListBox>\n </Provider>\n </div>\n </Popover>\n </Virtualizer>\n </InternalPickerContext.Provider>\n </>\n )}\n </AriaSelect>\n );\n});\n\nfunction PickerProgressCircle(props) {\n let {\n id,\n size,\n 'aria-label': ariaLabel\n } = props;\n return (\n <ProgressCircle\n id={id}\n isIndeterminate\n size=\"S\"\n aria-label={ariaLabel}\n styles={progressCircleStyles({size})} />\n );\n}\n\nconst avatarSize = {\n S: 16,\n M: 20,\n L: 22,\n XL: 26\n} as const;\n\ninterface PickerButtonInnerProps<T extends object> extends PickerStyleProps, Omit<AriaSelectRenderProps, 'isRequired' | 'isFocused'>, Pick<PickerProps<T>, 'loadingState'> {\n loadingCircle: ReactNode,\n buttonRef: RefObject<HTMLButtonElement | null>\n}\n\n// Needs to be hidable component or otherwise the PressResponder throws a warning when rendered in the fake DOM and tries to register\nconst PickerButton = createHideableComponent(function PickerButton<T extends object>(props: PickerButtonInnerProps<T>) {\n let {\n isOpen,\n isQuiet,\n isFocusVisible,\n size,\n isInvalid,\n isDisabled,\n loadingState,\n loadingCircle,\n buttonRef\n } = props;\n let stringFormatter = useLocalizedStringFormatter(intlMessages, '@react-spectrum/s2');\n\n // For mouse interactions, pickers 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 return (\n <PressResponder onPressStart={onPressStart} isPressed={isPressed}>\n <Button\n ref={buttonRef}\n style={renderProps => pressScale(buttonRef)(renderProps)}\n // Prevent press scale from sticking while Picker is open.\n // @ts-ignore\n isPressed={false}\n className={renderProps => inputButton({\n ...renderProps,\n size: size,\n isOpen,\n isQuiet\n })}>\n {(renderProps) => (\n <>\n <SelectValue className={valueStyles({isQuiet}) + ' ' + raw('&> :not([slot=icon], [slot=avatar], [slot=label], [data-slot=label]) {display: none;}')}>\n {({selectedItems, defaultChildren}) => {\n return (\n <Provider\n values={[\n [IconContext, {\n slots: {\n icon: {\n render: centerBaseline({slot: 'icon', styles: iconCenterWrapper}),\n styles: icon\n }\n }\n }],\n [AvatarContext, {\n slots: {\n avatar: {\n size: avatarSize[size ?? 'M'],\n styles: avatar\n }\n }\n }],\n [TextContext, {\n slots: {\n description: {},\n [DEFAULT_SLOT]: {\n styles: style({\n display: 'block',\n flexGrow: 1,\n truncate: true\n }),\n // @ts-ignore\n 'data-slot': 'label'\n },\n label: {\n styles: style({\n display: 'block',\n flexGrow: 1,\n truncate: true\n }),\n // @ts-ignore not technically necessary, but good for consistency\n 'data-slot': 'label'\n }\n }\n }],\n [InsideSelectValueContext, true]\n ]}>\n {selectedItems.length <= 1\n ? defaultChildren\n : <Text slot=\"label\">{stringFormatter.format('picker.selectedCount', {count: selectedItems.length})}</Text>\n }\n </Provider>\n );\n }}\n </SelectValue>\n {isInvalid && <FieldErrorIcon isDisabled={isDisabled} />}\n {loadingState === 'loading' && !isOpen && loadingCircle}\n <ChevronIcon\n size={size}\n className={iconStyles({isLoading: loadingState === 'loading'})} />\n {isFocusVisible && isQuiet && <span className={quietFocusLine} /> }\n {isInvalid && !isDisabled && !isQuiet &&\n // @ts-ignore known limitation detecting functions from the theme\n <div className={invalidBorder({...renderProps, size})} />\n }\n </>\n )}\n </Button>\n </PressResponder>\n );\n});\n\nexport interface PickerItemProps extends Omit<ListBoxItemProps, 'children' | 'style' | 'className' | 'render' | 'onClick' | keyof GlobalDOMAttributes>, StyleProps {\n children: ReactNode\n}\n\nconst checkmarkIconSize = {\n S: 'XS',\n M: 'M',\n L: 'L',\n XL: 'XL'\n} as const;\n\nexport function PickerItem(props: PickerItemProps): ReactNode {\n let ref = useRef(null);\n let isLink = props.href != null;\n let {size} = useContext(InternalPickerContext);\n return (\n <ListBoxItem\n {...props}\n ref={ref}\n textValue={props.textValue || (typeof props.children === 'string' ? props.children as string : undefined)}\n style={pressScale(ref, props.UNSAFE_style)}\n className={renderProps => (props.UNSAFE_className || '') + listboxItem({...renderProps, 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 <DefaultProvider\n context={IconContext}\n value={{slots: {\n icon: {render: centerBaseline({slot: 'icon', styles: iconCenterWrapper}), styles: icon}\n }}}>\n <DefaultProvider\n context={AvatarContext}\n value={{slots: {\n avatar: {size: avatarSize[size], styles: avatar}\n }}}>\n <DefaultProvider\n context={TextContext}\n value={{\n slots: {\n [DEFAULT_SLOT]: {styles: label({size})},\n label: {styles: label({size})},\n description: {styles: description({...renderProps, size})}\n }\n }}>\n {renderProps.selectionMode === 'single' && !isLink && <CheckmarkIcon size={checkmarkIconSize[size]} className={checkmark({...renderProps, size})} />}\n {renderProps.selectionMode === 'multiple' && !isLink && (\n <div className={mergeStyles(checkbox, box(checkboxRenderProps))}>\n <CheckmarkIcon size={size} className={checkboxIconStyles} />\n </div>\n )}\n {typeof children === 'string' ? <Text slot=\"label\">{children}</Text> : children}\n </DefaultProvider>\n </DefaultProvider>\n </DefaultProvider>\n );\n }}\n </ListBoxItem>\n );\n}\n\n// A Context.Provider that only sets a value if not inside SelectValue.\nfunction DefaultProvider({context, value, children}: {context: React.Context<any>, value: any, children: any}) {\n let inSelectValue = useContext(InsideSelectValueContext);\n if (inSelectValue) {\n return children;\n }\n\n return <context.Provider value={value}>{children}</context.Provider>;\n}\n\nexport interface PickerSectionProps<T extends object> extends Omit<SectionProps<T>, 'style' | 'className' | 'render' | keyof GlobalDOMAttributes>, StyleProps {}\nexport function PickerSection<T extends object>(props: PickerSectionProps<T>): ReactNode {\n let {size} = useContext(InternalPickerContext);\n return (\n <>\n <AriaListBoxSection\n {...props}>\n {props.children}\n </AriaListBoxSection>\n <Divider size={size} />\n </>\n );\n}\n"],"names":[],"version":3,"file":"Picker.mjs.map"}
1
+ {"mappings":"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","sources":["packages/@react-spectrum/s2/src/Picker.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 ListBoxSection as AriaListBoxSection,\n PopoverProps as AriaPopoverProps,\n Select as AriaSelect,\n SelectProps as AriaSelectProps,\n SelectRenderProps as AriaSelectRenderProps,\n Button,\n ButtonRenderProps,\n Collection,\n ContextValue,\n DEFAULT_SLOT,\n ListBox,\n ListBoxItem,\n ListBoxItemProps,\n ListBoxLoadMoreItem,\n ListBoxProps,\n ListLayout,\n Provider,\n SectionProps,\n SelectStateContext,\n SelectValue,\n Virtualizer\n} from 'react-aria-components';\nimport {AsyncLoadable, FocusableRef, FocusableRefValue, GlobalDOMAttributes, HelpTextProps, LoadingState, PressEvent, RefObject, SpectrumLabelableProps} from '@react-types/shared';\nimport {AvatarContext} from './Avatar';\nimport {baseColor, focusRing, style} from '../style' with {type: 'macro'};\nimport {box, iconStyles as checkboxIconStyles} from './Checkbox';\nimport {centerBaseline} from './CenterBaseline';\nimport {\n checkbox,\n checkmark,\n description,\n icon,\n iconCenterWrapper,\n label,\n sectionHeading\n} from './Menu';\nimport CheckmarkIcon from '../ui-icons/Checkmark';\nimport ChevronIcon from '../ui-icons/Chevron';\nimport {control, controlBorderRadius, controlFont, field, fieldInput, getAllowedOverrides, StyleProps} from './style-utils' with {type: 'macro'};\nimport {createHideableComponent} from '@react-aria/collections';\nimport {createShadowTreeWalker, getOwnerDocument, isFocusable, useGlobalListeners, useSlotId} from '@react-aria/utils';\nimport {\n Divider,\n listbox,\n listboxHeader,\n listboxItem,\n LOADER_ROW_HEIGHTS\n} from './ComboBox';\nimport {edgeToText} from '../style/spectrum-theme' with {type: 'macro'};\nimport {\n FieldErrorIcon,\n FieldLabel,\n HelpText\n} from './Field';\nimport {FormContext, useFormProps} from './Form';\nimport {forwardRefType} from './types';\nimport {HeaderContext, HeadingContext, Text, TextContext} from './Content';\nimport {IconContext} from './Icon';\n// @ts-ignore\nimport intlMessages from '../intl/*.json';\nimport {mergeStyles} from '../style/runtime';\nimport {Placement} from 'react-aria';\nimport {Popover} from './Popover';\nimport {PressResponder} from '@react-aria/interactions';\nimport {pressScale} from './pressScale';\nimport {ProgressCircle} from './ProgressCircle';\nimport {raw} from '../style/style-macro' with {type: 'macro'};\nimport React, {createContext, forwardRef, ReactNode, useContext, useEffect, useMemo, useRef, useState} from 'react';\nimport {useFocusableRef} from '@react-spectrum/utils';\nimport {useLocale, useLocalizedStringFormatter} from '@react-aria/i18n';\nimport {useScale} from './utils';\nimport {useSpectrumContextProps} from './useSpectrumContextProps';\n\nexport interface PickerStyleProps {\n /**\n * The size of the Picker.\n *\n * @default 'M'\n */\n size?: 'S' | 'M' | 'L' | 'XL',\n /**\n * Whether the picker should be displayed with a quiet style.\n */\n isQuiet?: boolean\n}\n\ntype SelectionMode = 'single' | 'multiple';\nexport interface PickerProps<T extends object, M extends SelectionMode = 'single'> extends\n Omit<AriaSelectProps<T, M>, 'children' | 'style' | 'className' | 'render' | 'allowsEmptyCollection' | keyof GlobalDOMAttributes>,\n PickerStyleProps,\n StyleProps,\n SpectrumLabelableProps,\n HelpTextProps,\n Pick<ListBoxProps<T>, 'items' | 'dependencies'>,\n Pick<AriaPopoverProps, 'shouldFlip'>,\n Pick<AsyncLoadable, 'onLoadMore'> {\n /** The contents of the collection. */\n children: ReactNode | ((item: T) => ReactNode),\n /**\n * Direction the menu will render relative to the Picker.\n *\n * @default 'bottom'\n */\n direction?: 'bottom' | 'top',\n /**\n * Alignment of the menu relative to the input target.\n *\n * @default 'start'\n */\n align?: 'start' | 'end',\n /** Width of the menu. By default, matches width of the trigger. Note that the minimum width of the dropdown is always equal to the trigger's width. */\n menuWidth?: number,\n /** The current loading state of the Picker. */\n loadingState?: LoadingState,\n /**\n * Custom renderer for the picker value. Allows one to provide a custom element to render selected items.\n *\n * @note The returned ReactNode should not have interactable elements as it will break accessibility.\n */\n renderValue?: (selectedItems: T[]) => ReactNode\n}\n\ninterface PickerButtonProps extends PickerStyleProps, ButtonRenderProps {}\n\nexport const PickerContext = createContext<ContextValue<Partial<PickerProps<any>>, FocusableRefValue<HTMLButtonElement>>>(null);\n\nconst inputButton = style<PickerButtonProps | AriaSelectRenderProps>({\n ...focusRing(),\n ...control({shape: 'default', icon: true}),\n ...fieldInput(),\n outlineStyle: {\n default: 'none',\n isFocusVisible: 'solid',\n isQuiet: 'none'\n },\n position: 'relative',\n textAlign: 'start',\n borderStyle: {\n default: 'none',\n forcedColors: 'solid'\n },\n borderColor: {\n forcedColors: {\n default: 'ButtonText',\n isDisabled: 'GrayText'\n }\n },\n transition: 'default',\n paddingX: {\n default: 'edge-to-text',\n isQuiet: 0\n },\n backgroundColor: {\n default: baseColor('gray-100'),\n isOpen: 'gray-200',\n isDisabled: 'disabled',\n isQuiet: 'transparent'\n },\n color: {\n default: baseColor('neutral'),\n isDisabled: 'disabled'\n },\n maxWidth: {\n isQuiet: 'max'\n },\n disableTapHighlight: true\n});\n\nconst quietFocusLine = style({\n width: 'full',\n // Use pixels since we are emulating a border.\n height: '[2px]',\n position: 'absolute',\n bottom: 0,\n borderRadius: 'full',\n backgroundColor: {\n default: 'blue-800',\n forcedColors: 'Highlight'\n }\n});\n\nexport let menu = style({\n outlineStyle: 'none',\n display: 'grid',\n width: 'full',\n gridTemplateColumns: {\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 },\n boxSizing: 'border-box',\n maxHeight: 'inherit',\n overflow: 'auto',\n padding: 8,\n fontFamily: 'sans',\n fontSize: controlFont(),\n gridAutoRows: 'min-content'\n});\n\nconst invalidBorder = style({\n ...controlBorderRadius(),\n position: 'absolute',\n top: 0,\n left: 0,\n bottom: 0,\n right: 0,\n pointerEvents: 'none',\n borderStyle: 'solid',\n borderWidth: 2,\n borderColor: baseColor('negative'),\n transition: 'default'\n});\n\nconst valueStyles = style({\n flexGrow: {\n default: 1,\n isQuiet: 0\n },\n truncate: true,\n display: 'flex',\n alignItems: 'center',\n height: '100%'\n});\n\nconst iconStyles = style({\n flexShrink: 0,\n rotate: 90,\n '--iconPrimary': {\n type: 'fill',\n value: 'currentColor'\n },\n color: {\n isLoading: 'disabled'\n }\n});\n\nconst avatar = style({\n gridArea: 'icon',\n marginEnd: 'text-to-visual'\n});\n\nconst loadingWrapperStyles = style({\n gridColumnStart: '1',\n gridColumnEnd: '-1',\n display: 'flex',\n alignItems: 'center',\n justifyContent: 'center',\n marginY: 8\n});\n\nconst progressCircleStyles = style({\n size: {\n size: {\n S: 16,\n M: 20,\n L: 22,\n XL: 26\n }\n }\n});\n\nlet InternalPickerContext = createContext<{size: 'S' | 'M' | 'L' | 'XL'}>({size: 'M'});\nlet InsideSelectValueContext = createContext(false);\n\n/**\n * Pickers allow users to choose a single option from a collapsible list of options when space is limited.\n */\nexport const Picker = /*#__PURE__*/ (forwardRef as forwardRefType)(function Picker<T extends object, M extends SelectionMode = 'single'>(props: PickerProps<T, M>, ref: FocusableRef<HTMLButtonElement>) {\n let stringFormatter = useLocalizedStringFormatter(intlMessages, '@react-spectrum/s2');\n [props, ref] = useSpectrumContextProps(props, ref, PickerContext);\n let domRef = useFocusableRef(ref);\n let formContext = useContext(FormContext);\n props = useFormProps(props);\n let {\n direction = 'bottom',\n align = 'start',\n shouldFlip = true,\n menuWidth,\n label,\n description: descriptionMessage,\n errorMessage,\n children,\n items,\n size = 'M',\n labelPosition = 'top',\n labelAlign = 'start',\n necessityIndicator,\n UNSAFE_className = '',\n UNSAFE_style,\n placeholder = stringFormatter.format('picker.placeholder'),\n isQuiet,\n loadingState,\n renderValue,\n onLoadMore,\n ...pickerProps\n } = props;\n\n // Better way to encode this into a style? need to account for flipping\n let menuOffset: number;\n if (size === 'S') {\n menuOffset = 6;\n } else if (size === 'M') {\n menuOffset = 6;\n } else if (size === 'L') {\n menuOffset = 7;\n } else {\n menuOffset = 8;\n }\n\n let renderer;\n let showButtonSpinner = useMemo(() => loadingState === 'loading', [loadingState]);\n let spinnerId = useSlotId([showButtonSpinner]);\n\n let listBoxLoadingCircle = (\n <ListBoxLoadMoreItem\n className={loadingWrapperStyles}\n isLoading={loadingState === 'loadingMore'}\n onLoadMore={onLoadMore}>\n <PickerProgressCircle size={size} aria-label={stringFormatter.format('table.loadingMore')} />\n </ListBoxLoadMoreItem>\n );\n\n if (typeof children === 'function' && items) {\n renderer = (\n <>\n <Collection items={items} dependencies={props.dependencies}>\n {children}\n </Collection>\n {listBoxLoadingCircle}\n </>\n );\n } else {\n renderer = (\n <>\n {children}\n {listBoxLoadingCircle}\n </>\n );\n }\n let scale = useScale();\n let {direction: dir} = useLocale();\n let RTLFlipOffset = dir === 'rtl' ? -1 : 1;\n\n return (\n <AriaSelect\n {...pickerProps}\n aria-describedby={spinnerId}\n placeholder={placeholder}\n style={UNSAFE_style}\n className={UNSAFE_className + style(field(), getAllowedOverrides())({\n isInForm: !!formContext,\n labelPosition,\n size\n }, props.styles)}>\n {({isDisabled, isOpen, isFocusVisible, isInvalid, isRequired}) => (\n <>\n <InternalPickerContext.Provider value={{size}}>\n <FieldLabel\n includeNecessityIndicatorInAccessibilityName\n isDisabled={isDisabled}\n isRequired={isRequired}\n size={size}\n labelPosition={labelPosition}\n labelAlign={labelAlign}\n isQuiet={isQuiet}\n necessityIndicator={necessityIndicator}\n contextualHelp={props.contextualHelp}>\n {label}\n </FieldLabel>\n <PickerButton\n loadingState={loadingState}\n renderValue={renderValue}\n isOpen={isOpen}\n isQuiet={isQuiet}\n isFocusVisible={isFocusVisible}\n size={size}\n isInvalid={isInvalid}\n isDisabled={isDisabled}\n buttonRef={domRef}\n loadingCircle={\n <PickerProgressCircle\n id={spinnerId}\n size={size}\n aria-label={stringFormatter.format('table.loading')} />\n } />\n <HelpText\n size={size}\n isDisabled={isDisabled}\n isInvalid={isInvalid}\n description={descriptionMessage}>\n {errorMessage}\n </HelpText>\n <Virtualizer\n layout={ListLayout}\n layoutOptions={{\n estimatedRowHeight: 32,\n estimatedHeadingHeight: 50,\n padding: 8,\n loaderHeight: LOADER_ROW_HEIGHTS[size][scale]}}>\n <Popover\n hideArrow\n padding=\"none\"\n offset={menuOffset}\n crossOffset={isQuiet ? RTLFlipOffset * -12 : undefined}\n placement={`${direction} ${align}` as Placement}\n shouldFlip={shouldFlip}\n UNSAFE_style={{\n width: menuWidth && !isQuiet ? `${menuWidth}px` : undefined\n }}\n styles={style({\n minWidth: {\n default: '--trigger-width',\n isQuiet: 192\n },\n width: {\n default: '--trigger-width',\n isQuiet: '[calc(var(--trigger-width) - 24)]'\n }\n })(props)}>\n <div\n className={style({\n display: 'flex',\n size: 'full'\n })}>\n <Provider\n values={[\n [HeaderContext, {styles: listboxHeader({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 ]}>\n <ListBox\n dependencies={props.dependencies}\n items={items}\n className={listbox({size})}>\n {renderer}\n </ListBox>\n </Provider>\n </div>\n </Popover>\n </Virtualizer>\n </InternalPickerContext.Provider>\n </>\n )}\n </AriaSelect>\n );\n});\n\nfunction PickerProgressCircle(props) {\n let {\n id,\n size,\n 'aria-label': ariaLabel\n } = props;\n return (\n <ProgressCircle\n id={id}\n isIndeterminate\n size=\"S\"\n aria-label={ariaLabel}\n styles={progressCircleStyles({size})} />\n );\n}\n\nconst avatarSize = {\n S: 16,\n M: 20,\n L: 22,\n XL: 26\n} as const;\n\n// https://w3c.github.io/aria/#widget_roles\nlet INTERACTIVE_ARIA_ROLES = new Set([\n 'application', 'button', 'checkbox', 'combobox', 'gridcell', 'link', 'menuitem',\n 'menuitemcheckbox', 'menuitemradio', 'option', 'radio', 'searchbox', 'separator',\n 'slider', 'spinbutton', 'switch', 'tab', 'textbox', 'treeitem'\n]);\n\ninterface PickerButtonInnerProps<T extends object> extends PickerStyleProps, Omit<AriaSelectRenderProps, 'isRequired' | 'isFocused'>, Pick<PickerProps<T>, 'loadingState' | 'renderValue'> {\n loadingCircle: ReactNode,\n buttonRef: RefObject<HTMLButtonElement | null>\n}\n\n// Needs to be hidable component or otherwise the PressResponder throws a warning when rendered in the fake DOM and tries to register\nconst PickerButton = createHideableComponent(function PickerButton<T extends object>(props: PickerButtonInnerProps<T>) {\n let {\n isOpen,\n isQuiet,\n isFocusVisible,\n size,\n isInvalid,\n isDisabled,\n loadingState,\n loadingCircle,\n buttonRef,\n renderValue\n } = props;\n let stringFormatter = useLocalizedStringFormatter(intlMessages, '@react-spectrum/s2');\n let renderValueRef = useRef(null);\n\n let state = useContext(SelectStateContext)!;\n useEffect(() => {\n if (process.env.NODE_ENV === 'production' || !renderValue) {\n return;\n }\n\n if (!renderValueRef.current) {\n return;\n }\n\n let doc = getOwnerDocument(renderValueRef.current);\n let walker = createShadowTreeWalker(\n doc,\n renderValueRef.current,\n NodeFilter.SHOW_ELEMENT,\n {\n acceptNode(node: Element) {\n let role = node.getAttribute('role');\n let interactive = isFocusable(node) || (role != null && INTERACTIVE_ARIA_ROLES.has(role));\n return interactive ? NodeFilter.FILTER_ACCEPT : NodeFilter.FILTER_SKIP;\n }\n }\n );\n let next = walker.nextNode();\n if (next) {\n console.warn('Picker\\'s value should not have interactive children for accessibility.');\n }\n }, [state.selectedItems, renderValue]);\n\n // For mouse interactions, pickers 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 return (\n <PressResponder onPressStart={onPressStart} isPressed={isPressed}>\n <Button\n ref={buttonRef}\n style={renderProps => pressScale(buttonRef)(renderProps)}\n // Prevent press scale from sticking while Picker is open.\n // @ts-ignore\n isPressed={false}\n className={renderProps => inputButton({\n ...renderProps,\n size: size,\n isOpen,\n isQuiet\n })}>\n {(renderProps) => (\n <>\n <SelectValue\n className={\n valueStyles({isQuiet}) +\n (renderValue ? '' : ' ' + raw('&> :not([slot=icon], [slot=avatar], [slot=label], [data-slot=label]) {display: none;}'))\n }>\n {({selectedItems, defaultChildren}) => {\n const selectedValues = selectedItems.filter((item): item is T => item != null);\n const defaultRenderedValue = selectedItems.length <= 1\n ? defaultChildren\n : <Text slot=\"label\">{stringFormatter.format('picker.selectedCount', {count: selectedItems.length})}</Text>;\n const renderedValue = selectedItems.length > 0 && renderValue\n ? renderValue(selectedValues)\n : defaultRenderedValue;\n\n return (\n <Provider\n values={[\n [IconContext, {\n slots: {\n icon: {\n render: centerBaseline({slot: 'icon', styles: iconCenterWrapper}),\n styles: icon\n }\n }\n }],\n [AvatarContext, {\n slots: {\n avatar: {\n size: avatarSize[size ?? 'M'],\n styles: avatar\n }\n }\n }],\n [TextContext, {\n slots: {\n description: {},\n [DEFAULT_SLOT]: {\n styles: style({\n display: 'block',\n flexGrow: 1,\n truncate: true\n }),\n // @ts-ignore\n 'data-slot': 'label'\n },\n label: {\n styles: style({\n display: 'block',\n flexGrow: 1,\n truncate: true\n }),\n // @ts-ignore not technically necessary, but good for consistency\n 'data-slot': 'label'\n }\n }\n }],\n [InsideSelectValueContext, true]\n ]}>\n {renderValue ? (\n <div ref={renderValueRef} style={{display: 'contents'}}>\n {renderedValue}\n </div>\n ) : renderedValue}\n </Provider>\n );\n }}\n </SelectValue>\n {isInvalid && <FieldErrorIcon isDisabled={isDisabled} />}\n {loadingState === 'loading' && !isOpen && loadingCircle}\n <ChevronIcon\n size={size}\n className={iconStyles({isLoading: loadingState === 'loading'})} />\n {isFocusVisible && isQuiet && <span className={quietFocusLine} /> }\n {isInvalid && !isDisabled && !isQuiet &&\n // @ts-ignore known limitation detecting functions from the theme\n <div className={invalidBorder({...renderProps, size})} />\n }\n </>\n )}\n </Button>\n </PressResponder>\n );\n});\n\nexport interface PickerItemProps extends Omit<ListBoxItemProps, 'children' | 'style' | 'className' | 'render' | 'onClick' | keyof GlobalDOMAttributes>, StyleProps {\n children: ReactNode\n}\n\nconst checkmarkIconSize = {\n S: 'XS',\n M: 'M',\n L: 'L',\n XL: 'XL'\n} as const;\n\nexport function PickerItem(props: PickerItemProps): ReactNode {\n let ref = useRef(null);\n let isLink = props.href != null;\n let {size} = useContext(InternalPickerContext);\n return (\n <ListBoxItem\n {...props}\n ref={ref}\n textValue={props.textValue || (typeof props.children === 'string' ? props.children as string : undefined)}\n style={pressScale(ref, props.UNSAFE_style)}\n className={renderProps => (props.UNSAFE_className || '') + listboxItem({...renderProps, 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 <DefaultProvider\n context={IconContext}\n value={{slots: {\n icon: {render: centerBaseline({slot: 'icon', styles: iconCenterWrapper}), styles: icon}\n }}}>\n <DefaultProvider\n context={AvatarContext}\n value={{slots: {\n avatar: {size: avatarSize[size], styles: avatar}\n }}}>\n <DefaultProvider\n context={TextContext}\n value={{\n slots: {\n [DEFAULT_SLOT]: {styles: label({size})},\n label: {styles: label({size})},\n description: {styles: description({...renderProps, size})}\n }\n }}>\n {renderProps.selectionMode === 'single' && !isLink && <CheckmarkIcon size={checkmarkIconSize[size]} className={checkmark({...renderProps, size})} />}\n {renderProps.selectionMode === 'multiple' && !isLink && (\n <div className={mergeStyles(checkbox, box(checkboxRenderProps))}>\n <CheckmarkIcon size={size} className={checkboxIconStyles} />\n </div>\n )}\n {typeof children === 'string' ? <Text slot=\"label\">{children}</Text> : children}\n </DefaultProvider>\n </DefaultProvider>\n </DefaultProvider>\n );\n }}\n </ListBoxItem>\n );\n}\n\n// A Context.Provider that only sets a value if not inside SelectValue.\nfunction DefaultProvider({context, value, children}: {context: React.Context<any>, value: any, children: any}) {\n let inSelectValue = useContext(InsideSelectValueContext);\n if (inSelectValue) {\n return children;\n }\n\n return <context.Provider value={value}>{children}</context.Provider>;\n}\n\nexport interface PickerSectionProps<T extends object> extends Omit<SectionProps<T>, 'style' | 'className' | 'render' | keyof GlobalDOMAttributes>, StyleProps {}\nexport function PickerSection<T extends object>(props: PickerSectionProps<T>): ReactNode {\n let {size} = useContext(InternalPickerContext);\n return (\n <>\n <AriaListBoxSection\n {...props}>\n {props.children}\n </AriaListBoxSection>\n <Divider size={size} />\n </>\n );\n}\n"],"names":[],"version":3,"file":"Picker.mjs.map"}
package/dist/Popover.cjs CHANGED
@@ -44,105 +44,105 @@ let $493371ef39bf7a55$var$popover = function anonymous(props, overrides) {
44
44
  if (p[1] === "L") maxWidth = true;
45
45
  rules += p[0];
46
46
  }
47
- if (props.colorScheme === "dark") rules += ' _pa11';
48
- else if (props.colorScheme === "light") rules += ' _pb11';
49
- else if (props.colorScheme === "light dark") rules += ' _pc11';
50
- else rules += ' _pN79Hzc11';
51
- rules += ' -Ovbhqd-g_g11';
52
- rules += ' -Ovbhqd-lga11';
53
- rules += ' gEzkoQe11';
54
- rules += ' oc11';
55
- rules += ' nc11';
56
- rules += ' kc11';
57
- rules += ' jc11';
58
- if (props.isArrowShown) rules += ' _rgr5H3d11';
59
- if (props.isArrowShown) rules += ' _nd11';
60
- else rules += ' _nLeasBb11';
61
- rules += ' _Lf11';
62
- rules += ' _Mb11';
63
- rules += ' Oye39g11';
64
- rules += ' Ola11';
47
+ if (props.colorScheme === "dark") rules += ' _pa12';
48
+ else if (props.colorScheme === "light") rules += ' _pb12';
49
+ else if (props.colorScheme === "light dark") rules += ' _pc12';
50
+ else rules += ' _pN79Hzc12';
51
+ rules += ' -Ovbhqd-g_g12';
52
+ rules += ' -Ovbhqd-lga12';
53
+ rules += ' gEzkoQe12';
54
+ rules += ' oc12';
55
+ rules += ' nc12';
56
+ rules += ' kc12';
57
+ rules += ' jc12';
58
+ if (props.isArrowShown) rules += ' _rgr5H3d12';
59
+ if (props.isArrowShown) rules += ' _nd12';
60
+ else rules += ' _nLeasBb12';
61
+ rules += ' _Lf12';
62
+ rules += ' _Mb12';
63
+ rules += ' Oye39g12';
64
+ rules += ' Ola12';
65
65
  if (props.size === "L") {
66
- if (!width) rules += ' ZE11';
66
+ if (!width) rules += ' ZE12';
67
67
  } else if (props.size === "M") {
68
- if (!width) rules += ' ZB11';
68
+ if (!width) rules += ' ZB12';
69
69
  } else if (props.size === "S") {
70
- if (!width) rules += ' Zz11';
70
+ if (!width) rules += ' Zz12';
71
71
  }
72
- if (!maxWidth) rules += ' LEmL1Zb11';
73
- rules += ' _oa11';
74
- rules += ' sd11';
75
- if (props.isExiting) rules += ' _Ia11';
76
- else if (props.isEntering) rules += ' _Ia11';
72
+ if (!maxWidth) rules += ' LEmL1Zb12';
73
+ rules += ' _oa12';
74
+ rules += ' sd12';
75
+ if (props.isExiting) rules += ' _Ia12';
76
+ else if (props.isEntering) rules += ' _Ia12';
77
77
  if (props.isSubmenu) {
78
- rules += ' -_8PloMd-s11';
79
- rules += ' __Ya11';
78
+ rules += ' -_8PloMd-s12';
79
+ rules += ' __Ya12';
80
80
  } else if (props.placement === "bottom") {
81
81
  if (props.isExiting) {
82
- rules += ' -_8PloMd-l11';
83
- rules += ' __Ya11';
82
+ rules += ' -_8PloMd-l12';
83
+ rules += ' __Ya12';
84
84
  } else if (props.isEntering) {
85
- rules += ' -_8PloMd-l11';
86
- rules += ' __Ya11';
85
+ rules += ' -_8PloMd-l12';
86
+ rules += ' __Ya12';
87
87
  }
88
88
  } else if (props.placement === "top") {
89
89
  if (props.isExiting) {
90
- rules += ' -_8PloMd-F11';
91
- rules += ' __Ya11';
90
+ rules += ' -_8PloMd-F12';
91
+ rules += ' __Ya12';
92
92
  } else if (props.isEntering) {
93
- rules += ' -_8PloMd-F11';
94
- rules += ' __Ya11';
93
+ rules += ' -_8PloMd-F12';
94
+ rules += ' __Ya12';
95
95
  }
96
96
  }
97
97
  if (props.isSubmenu) {
98
- rules += ' -_7PloMd-s11';
99
- rules += ' __Ya11';
98
+ rules += ' -_7PloMd-s12';
99
+ rules += ' __Ya12';
100
100
  } else if (props.placement === "right") {
101
101
  if (props.isExiting) {
102
- rules += ' -_7PloMd-m11';
103
- rules += ' __Ya11';
102
+ rules += ' -_7PloMd-m12';
103
+ rules += ' __Ya12';
104
104
  } else if (props.isEntering) {
105
- rules += ' -_7PloMd-m11';
106
- rules += ' __Ya11';
105
+ rules += ' -_7PloMd-m12';
106
+ rules += ' __Ya12';
107
107
  }
108
108
  } else if (props.placement === "left") {
109
109
  if (props.isExiting) {
110
- rules += ' -_7PloMd-G11';
111
- rules += ' __Ya11';
110
+ rules += ' -_7PloMd-G12';
111
+ rules += ' __Ya12';
112
112
  } else if (props.isEntering) {
113
- rules += ' -_7PloMd-G11';
114
- rules += ' __Ya11';
113
+ rules += ' -_7PloMd-G12';
114
+ rules += ' __Ya12';
115
115
  }
116
116
  }
117
- rules += ' YmenWad11';
118
- rules += ' Xc11';
119
- if (props.isExiting) rules += ' _2c11';
120
- rules += ' _Bb11';
121
- if (props.isExiting) rules += ' _Ob11';
117
+ rules += ' YmenWad12';
118
+ rules += ' Xc12';
119
+ if (props.isExiting) rules += ' _2c12';
120
+ rules += ' _Bb12';
121
+ if (props.isExiting) rules += ' _Ob12';
122
122
  return rules;
123
123
  };
124
124
  // TODO: animations and real Popover Arrow
125
125
  let $493371ef39bf7a55$var$arrow = function anonymous(props) {
126
126
  let rules = " ";
127
- rules += ' sb11';
128
- rules += ' tEzkoQe11';
129
- rules += ' Zl11';
130
- rules += ' Fh11';
131
- if (props.placement === "right") rules += ' _Sd11';
132
- else if (props.placement === "left") rules += ' _Sa11';
133
- else if (props.placement === "bottom") rules += ' _Sc11';
134
- else if (props.placement === "top") rules += ' _Sb11';
135
- else rules += ' _Sc11';
127
+ rules += ' sb12';
128
+ rules += ' tEzkoQe12';
129
+ rules += ' Zl12';
130
+ rules += ' Fh12';
131
+ if (props.placement === "right") rules += ' _Sd12';
132
+ else if (props.placement === "left") rules += ' _Sa12';
133
+ else if (props.placement === "bottom") rules += ' _Sc12';
134
+ else if (props.placement === "top") rules += ' _Sb12';
135
+ else rules += ' _Sc12';
136
136
  if (props.placement === "right") {
137
- rules += ' -_7PloMd-y11';
138
- rules += ' __Ya11';
137
+ rules += ' -_7PloMd-y12';
138
+ rules += ' __Ya12';
139
139
  } else if (props.placement === "left") {
140
- rules += ' -_7PloMd-e11';
141
- rules += ' __Ya11';
140
+ rules += ' -_7PloMd-e12';
141
+ rules += ' __Ya12';
142
142
  }
143
- rules += ' _Vb11';
144
- rules += ' Vye39g11';
145
- rules += ' Vlb11';
143
+ rules += ' _Vb12';
144
+ rules += ' Vye39g12';
145
+ rules += ' Vlb12';
146
146
  return rules;
147
147
  };
148
148
  const $493371ef39bf7a55$export$9b9a0cd73afb7ca4 = /*#__PURE__*/ (0, $16fRD$react.createContext)(null);
@@ -238,26 +238,26 @@ const $493371ef39bf7a55$var$innerDivStyle = function anonymous(props, overrides)
238
238
  if (p[1] === "K") maxHeight = true;
239
239
  rules += p[0];
240
240
  }
241
- if (props.padding === "none") rules += ' Td11';
242
- else if (props.padding === "default") rules += ' Tt11';
243
- if (props.padding === "none") rules += ' Qd11';
244
- else if (props.padding === "default") rules += ' Qt11';
245
- if (props.padding === "none") rules += ' Sd11';
246
- else if (props.padding === "default") rules += ' St11';
247
- if (props.padding === "none") rules += ' Rd11';
248
- else if (props.padding === "default") rules += ' Rt11';
249
- rules += ' _oa11';
250
- rules += ' _Le11';
251
- rules += ' oi11';
252
- rules += ' ni11';
253
- rules += ' ki11';
254
- rules += ' ji11';
255
- rules += ' _Na11';
256
- rules += ' Pa11';
257
- if (!position) rules += ' _Pc11';
258
- if (!width) rules += ' Za11';
259
- if (!maxWidth) rules += ' L40ub4c11';
260
- if (!maxHeight) rules += ' K40ub4c11';
241
+ if (props.padding === "none") rules += ' Td12';
242
+ else if (props.padding === "default") rules += ' Tt12';
243
+ if (props.padding === "none") rules += ' Qd12';
244
+ else if (props.padding === "default") rules += ' Qt12';
245
+ if (props.padding === "none") rules += ' Sd12';
246
+ else if (props.padding === "default") rules += ' St12';
247
+ if (props.padding === "none") rules += ' Rd12';
248
+ else if (props.padding === "default") rules += ' Rt12';
249
+ rules += ' _oa12';
250
+ rules += ' _Le12';
251
+ rules += ' oi12';
252
+ rules += ' ni12';
253
+ rules += ' ki12';
254
+ rules += ' ji12';
255
+ rules += ' _Na12';
256
+ rules += ' Pa12';
257
+ if (!position) rules += ' _Pc12';
258
+ if (!width) rules += ' Za12';
259
+ if (!maxWidth) rules += ' L40ub4c12';
260
+ if (!maxHeight) rules += ' K40ub4c12';
261
261
  return rules;
262
262
  };
263
263
  const $493371ef39bf7a55$export$5b6b19405a83ff9d = /*#__PURE__*/ (0, $16fRD$react.forwardRef)(function Popover(props, ref) {