@wordpress/components 25.13.0 → 25.15.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 (656) hide show
  1. package/CHANGELOG.md +88 -1
  2. package/CONTRIBUTING.md +57 -115
  3. package/LICENSE.md +1 -1
  4. package/build/base-control/index.js +17 -13
  5. package/build/base-control/index.js.map +1 -1
  6. package/build/border-box-control/border-box-control-linked-button/component.js +1 -1
  7. package/build/border-box-control/border-box-control-linked-button/component.js.map +1 -1
  8. package/build/border-control/border-control-dropdown/component.js +4 -2
  9. package/build/border-control/border-control-dropdown/component.js.map +1 -1
  10. package/build/border-control/border-control-dropdown/hook.js +3 -2
  11. package/build/border-control/border-control-dropdown/hook.js.map +1 -1
  12. package/build/border-control/border-control-style-picker/component.js +1 -1
  13. package/build/border-control/border-control-style-picker/component.js.map +1 -1
  14. package/build/border-control/styles.js +17 -17
  15. package/build/border-control/styles.js.map +1 -1
  16. package/build/box-control/index.js +1 -1
  17. package/build/box-control/index.js.map +1 -1
  18. package/build/box-control/linked-button.js +1 -1
  19. package/build/box-control/linked-button.js.map +1 -1
  20. package/build/button/index.js +1 -1
  21. package/build/button/index.js.map +1 -1
  22. package/build/checkbox-control/index.js +1 -1
  23. package/build/checkbox-control/index.js.map +1 -1
  24. package/build/checkbox-control/types.js.map +1 -1
  25. package/build/color-picker/color-copy-button.js +1 -1
  26. package/build/color-picker/color-copy-button.js.map +1 -1
  27. package/build/context/wordpress-component.js.map +1 -1
  28. package/build/custom-select-control-v2/index.js +11 -10
  29. package/build/custom-select-control-v2/index.js.map +1 -1
  30. package/build/date-time/date/styles.js +8 -8
  31. package/build/date-time/date/styles.js.map +1 -1
  32. package/build/date-time/time/timezone.js +11 -2
  33. package/build/date-time/time/timezone.js.map +1 -1
  34. package/build/dimension-control/index.js +2 -0
  35. package/build/dimension-control/index.js.map +1 -1
  36. package/build/dimension-control/types.js.map +1 -1
  37. package/build/dropdown-menu-v2/index.js +205 -159
  38. package/build/dropdown-menu-v2/index.js.map +1 -1
  39. package/build/dropdown-menu-v2/styles.js +86 -77
  40. package/build/dropdown-menu-v2/styles.js.map +1 -1
  41. package/build/dropdown-menu-v2/types.js.map +1 -1
  42. package/build/duotone-picker/duotone-picker.js +4 -3
  43. package/build/duotone-picker/duotone-picker.js.map +1 -1
  44. package/build/focal-point-picker/controls.js +5 -1
  45. package/build/focal-point-picker/controls.js.map +1 -1
  46. package/build/focal-point-picker/index.js +2 -0
  47. package/build/focal-point-picker/index.js.map +1 -1
  48. package/build/focal-point-picker/styles/focal-point-picker-style.js +15 -15
  49. package/build/focal-point-picker/styles/focal-point-picker-style.js.map +1 -1
  50. package/build/focal-point-picker/types.js.map +1 -1
  51. package/build/font-size-picker/font-size-picker-select.js +2 -0
  52. package/build/font-size-picker/font-size-picker-select.js.map +1 -1
  53. package/build/font-size-picker/font-size-picker-toggle-group.js +2 -0
  54. package/build/font-size-picker/font-size-picker-toggle-group.js.map +1 -1
  55. package/build/font-size-picker/index.js +10 -3
  56. package/build/font-size-picker/index.js.map +1 -1
  57. package/build/font-size-picker/index.native.js +6 -3
  58. package/build/font-size-picker/index.native.js.map +1 -1
  59. package/build/font-size-picker/types.js.map +1 -1
  60. package/build/form-token-field/index.js +10 -5
  61. package/build/form-token-field/index.js.map +1 -1
  62. package/build/form-token-field/token.js +1 -0
  63. package/build/form-token-field/token.js.map +1 -1
  64. package/build/gradient-picker/index.js +3 -2
  65. package/build/gradient-picker/index.js.map +1 -1
  66. package/build/index.native.js +20 -19
  67. package/build/index.native.js.map +1 -1
  68. package/build/input-control/styles/input-control-styles.js +32 -29
  69. package/build/input-control/styles/input-control-styles.js.map +1 -1
  70. package/build/input-control/types.js.map +1 -1
  71. package/build/lock-unlock.js +18 -0
  72. package/build/lock-unlock.js.map +1 -0
  73. package/build/mobile/bottom-sheet/index.native.js +8 -0
  74. package/build/mobile/bottom-sheet/index.native.js.map +1 -1
  75. package/build/mobile/global-styles-context/utils.native.js +39 -13
  76. package/build/mobile/global-styles-context/utils.native.js.map +1 -1
  77. package/build/mobile/image/constants.js +12 -0
  78. package/build/mobile/image/constants.js.map +1 -0
  79. package/build/mobile/image/index.native.js +26 -18
  80. package/build/mobile/image/index.native.js.map +1 -1
  81. package/build/mobile/keyboard-aware-flat-list/index.android.js +40 -8
  82. package/build/mobile/keyboard-aware-flat-list/index.android.js.map +1 -1
  83. package/build/mobile/keyboard-aware-flat-list/index.ios.js +44 -68
  84. package/build/mobile/keyboard-aware-flat-list/index.ios.js.map +1 -1
  85. package/build/mobile/keyboard-aware-flat-list/use-scroll-to-element.native.js +39 -0
  86. package/build/mobile/keyboard-aware-flat-list/use-scroll-to-element.native.js.map +1 -0
  87. package/build/mobile/keyboard-aware-flat-list/{use-scroll-to-text-input.native.js → use-scroll-to-section.native.js} +22 -29
  88. package/build/mobile/keyboard-aware-flat-list/use-scroll-to-section.native.js.map +1 -0
  89. package/build/mobile/keyboard-aware-flat-list/use-scroll.native.js +93 -0
  90. package/build/mobile/keyboard-aware-flat-list/use-scroll.native.js.map +1 -0
  91. package/build/mobile/utils/get-px-from-css-unit.native.js +302 -0
  92. package/build/mobile/utils/get-px-from-css-unit.native.js.map +1 -0
  93. package/build/modal/index.js +18 -13
  94. package/build/modal/index.js.map +1 -1
  95. package/build/navigation/menu/menu-title.js +1 -1
  96. package/build/navigation/menu/menu-title.js.map +1 -1
  97. package/build/navigator/navigator-provider/component.js +13 -15
  98. package/build/navigator/navigator-provider/component.js.map +1 -1
  99. package/build/navigator/navigator-screen/component.js +23 -63
  100. package/build/navigator/navigator-screen/component.js.map +1 -1
  101. package/build/navigator/styles.js +52 -0
  102. package/build/navigator/styles.js.map +1 -0
  103. package/build/number-control/index.js +4 -8
  104. package/build/number-control/index.js.map +1 -1
  105. package/build/number-control/types.js.map +1 -1
  106. package/build/palette-edit/index.js +15 -34
  107. package/build/palette-edit/index.js.map +1 -1
  108. package/build/private-apis.js +11 -26
  109. package/build/private-apis.js.map +1 -1
  110. package/build/private-apis.native.js +21 -0
  111. package/build/private-apis.native.js.map +1 -0
  112. package/build/query-controls/author-select.js +3 -1
  113. package/build/query-controls/author-select.js.map +1 -1
  114. package/build/query-controls/category-select.js +3 -1
  115. package/build/query-controls/category-select.js.map +1 -1
  116. package/build/query-controls/index.js +6 -1
  117. package/build/query-controls/index.js.map +1 -1
  118. package/build/query-controls/types.js.map +1 -1
  119. package/build/radio-control/index.js +1 -0
  120. package/build/radio-control/index.js.map +1 -1
  121. package/build/range-control/index.js +1 -1
  122. package/build/range-control/index.js.map +1 -1
  123. package/build/select-control/styles/select-control-styles.js +15 -25
  124. package/build/select-control/styles/select-control-styles.js.map +1 -1
  125. package/build/slot-fill/index.js +3 -2
  126. package/build/slot-fill/index.js.map +1 -1
  127. package/build/slot-fill/types.js.map +1 -1
  128. package/build/snackbar/types.js.map +1 -1
  129. package/build/tabs/index.js +18 -1
  130. package/build/tabs/index.js.map +1 -1
  131. package/build/tabs/styles.js +3 -3
  132. package/build/tabs/styles.js.map +1 -1
  133. package/build/tabs/tab.js +2 -2
  134. package/build/tabs/tab.js.map +1 -1
  135. package/build/tabs/tabpanel.js +11 -8
  136. package/build/tabs/tabpanel.js.map +1 -1
  137. package/build/tabs/types.js.map +1 -1
  138. package/build/toggle-group-control/toggle-group-control/component.js +4 -4
  139. package/build/toggle-group-control/toggle-group-control/component.js.map +1 -1
  140. package/build/toggle-group-control/toggle-group-control/styles.js +29 -15
  141. package/build/toggle-group-control/toggle-group-control/styles.js.map +1 -1
  142. package/build/toggle-group-control/toggle-group-control/utils.js +17 -17
  143. package/build/toggle-group-control/toggle-group-control/utils.js.map +1 -1
  144. package/build/toggle-group-control/toggle-group-control-option-base/styles.js +9 -9
  145. package/build/toggle-group-control/toggle-group-control-option-base/styles.js.map +1 -1
  146. package/build/tools-panel/tools-panel/component.js +3 -1
  147. package/build/tools-panel/tools-panel/component.js.map +1 -1
  148. package/build/tools-panel/tools-panel-header/component.js +9 -8
  149. package/build/tools-panel/tools-panel-header/component.js.map +1 -1
  150. package/build/tools-panel/tools-panel-item/hook.js +11 -11
  151. package/build/tools-panel/tools-panel-item/hook.js.map +1 -1
  152. package/build/tools-panel/types.js.map +1 -1
  153. package/build/tooltip/index.js +1 -1
  154. package/build/tooltip/index.js.map +1 -1
  155. package/build/truncate/hook.js +10 -4
  156. package/build/truncate/hook.js.map +1 -1
  157. package/build/truncate/types.js.map +1 -1
  158. package/build/unit-control/index.js +1 -1
  159. package/build/unit-control/index.js.map +1 -1
  160. package/build/utils/strings.js +34 -3
  161. package/build/utils/strings.js.map +1 -1
  162. package/build-module/base-control/index.js +16 -12
  163. package/build-module/base-control/index.js.map +1 -1
  164. package/build-module/border-box-control/border-box-control-linked-button/component.js +1 -1
  165. package/build-module/border-box-control/border-box-control-linked-button/component.js.map +1 -1
  166. package/build-module/border-control/border-control-dropdown/component.js +4 -2
  167. package/build-module/border-control/border-control-dropdown/component.js.map +1 -1
  168. package/build-module/border-control/border-control-dropdown/hook.js +3 -2
  169. package/build-module/border-control/border-control-dropdown/hook.js.map +1 -1
  170. package/build-module/border-control/border-control-style-picker/component.js +1 -1
  171. package/build-module/border-control/border-control-style-picker/component.js.map +1 -1
  172. package/build-module/border-control/styles.js +17 -17
  173. package/build-module/border-control/styles.js.map +1 -1
  174. package/build-module/box-control/index.js +1 -1
  175. package/build-module/box-control/index.js.map +1 -1
  176. package/build-module/box-control/linked-button.js +1 -1
  177. package/build-module/box-control/linked-button.js.map +1 -1
  178. package/build-module/button/index.js +1 -1
  179. package/build-module/button/index.js.map +1 -1
  180. package/build-module/checkbox-control/index.js +1 -1
  181. package/build-module/checkbox-control/index.js.map +1 -1
  182. package/build-module/checkbox-control/types.js.map +1 -1
  183. package/build-module/color-picker/color-copy-button.js +1 -1
  184. package/build-module/color-picker/color-copy-button.js.map +1 -1
  185. package/build-module/context/wordpress-component.js.map +1 -1
  186. package/build-module/custom-select-control-v2/index.js +11 -10
  187. package/build-module/custom-select-control-v2/index.js.map +1 -1
  188. package/build-module/date-time/date/styles.js +8 -8
  189. package/build-module/date-time/date/styles.js.map +1 -1
  190. package/build-module/date-time/time/timezone.js +11 -2
  191. package/build-module/date-time/time/timezone.js.map +1 -1
  192. package/build-module/dimension-control/index.js +2 -0
  193. package/build-module/dimension-control/index.js.map +1 -1
  194. package/build-module/dimension-control/types.js.map +1 -1
  195. package/build-module/dropdown-menu-v2/index.js +201 -154
  196. package/build-module/dropdown-menu-v2/index.js.map +1 -1
  197. package/build-module/dropdown-menu-v2/styles.js +68 -61
  198. package/build-module/dropdown-menu-v2/styles.js.map +1 -1
  199. package/build-module/dropdown-menu-v2/types.js.map +1 -1
  200. package/build-module/duotone-picker/duotone-picker.js +4 -3
  201. package/build-module/duotone-picker/duotone-picker.js.map +1 -1
  202. package/build-module/focal-point-picker/controls.js +5 -1
  203. package/build-module/focal-point-picker/controls.js.map +1 -1
  204. package/build-module/focal-point-picker/index.js +2 -0
  205. package/build-module/focal-point-picker/index.js.map +1 -1
  206. package/build-module/focal-point-picker/styles/focal-point-picker-style.js +15 -15
  207. package/build-module/focal-point-picker/styles/focal-point-picker-style.js.map +1 -1
  208. package/build-module/focal-point-picker/types.js.map +1 -1
  209. package/build-module/font-size-picker/font-size-picker-select.js +2 -0
  210. package/build-module/font-size-picker/font-size-picker-select.js.map +1 -1
  211. package/build-module/font-size-picker/font-size-picker-toggle-group.js +2 -0
  212. package/build-module/font-size-picker/font-size-picker-toggle-group.js.map +1 -1
  213. package/build-module/font-size-picker/index.js +10 -3
  214. package/build-module/font-size-picker/index.js.map +1 -1
  215. package/build-module/font-size-picker/index.native.js +5 -2
  216. package/build-module/font-size-picker/index.native.js.map +1 -1
  217. package/build-module/font-size-picker/types.js.map +1 -1
  218. package/build-module/form-token-field/index.js +10 -5
  219. package/build-module/form-token-field/index.js.map +1 -1
  220. package/build-module/form-token-field/token.js +1 -0
  221. package/build-module/form-token-field/token.js.map +1 -1
  222. package/build-module/gradient-picker/index.js +3 -2
  223. package/build-module/gradient-picker/index.js.map +1 -1
  224. package/build-module/index.native.js +6 -3
  225. package/build-module/index.native.js.map +1 -1
  226. package/build-module/input-control/styles/input-control-styles.js +31 -29
  227. package/build-module/input-control/styles/input-control-styles.js.map +1 -1
  228. package/build-module/input-control/types.js.map +1 -1
  229. package/build-module/lock-unlock.js +9 -0
  230. package/build-module/lock-unlock.js.map +1 -0
  231. package/build-module/mobile/bottom-sheet/index.native.js +9 -1
  232. package/build-module/mobile/bottom-sheet/index.native.js.map +1 -1
  233. package/build-module/mobile/global-styles-context/utils.native.js +38 -13
  234. package/build-module/mobile/global-styles-context/utils.native.js.map +1 -1
  235. package/build-module/mobile/image/constants.js +5 -0
  236. package/build-module/mobile/image/constants.js.map +1 -0
  237. package/build-module/mobile/image/index.native.js +25 -16
  238. package/build-module/mobile/image/index.native.js.map +1 -1
  239. package/build-module/mobile/keyboard-aware-flat-list/index.android.js +40 -6
  240. package/build-module/mobile/keyboard-aware-flat-list/index.android.js.map +1 -1
  241. package/build-module/mobile/keyboard-aware-flat-list/index.ios.js +46 -68
  242. package/build-module/mobile/keyboard-aware-flat-list/index.ios.js.map +1 -1
  243. package/build-module/mobile/keyboard-aware-flat-list/use-scroll-to-element.native.js +33 -0
  244. package/build-module/mobile/keyboard-aware-flat-list/use-scroll-to-element.native.js.map +1 -0
  245. package/build-module/mobile/keyboard-aware-flat-list/{use-scroll-to-text-input.native.js → use-scroll-to-section.native.js} +21 -27
  246. package/build-module/mobile/keyboard-aware-flat-list/use-scroll-to-section.native.js.map +1 -0
  247. package/build-module/mobile/keyboard-aware-flat-list/use-scroll.native.js +86 -0
  248. package/build-module/mobile/keyboard-aware-flat-list/use-scroll.native.js.map +1 -0
  249. package/build-module/mobile/utils/get-px-from-css-unit.native.js +294 -0
  250. package/build-module/mobile/utils/get-px-from-css-unit.native.js.map +1 -0
  251. package/build-module/modal/index.js +18 -13
  252. package/build-module/modal/index.js.map +1 -1
  253. package/build-module/navigation/menu/menu-title.js +1 -1
  254. package/build-module/navigation/menu/menu-title.js.map +1 -1
  255. package/build-module/navigator/navigator-provider/component.js +3 -16
  256. package/build-module/navigator/navigator-provider/component.js.map +1 -1
  257. package/build-module/navigator/navigator-screen/component.js +16 -70
  258. package/build-module/navigator/navigator-screen/component.js.map +1 -1
  259. package/build-module/navigator/styles.js +47 -0
  260. package/build-module/navigator/styles.js.map +1 -0
  261. package/build-module/number-control/index.js +4 -8
  262. package/build-module/number-control/index.js.map +1 -1
  263. package/build-module/number-control/types.js.map +1 -1
  264. package/build-module/palette-edit/index.js +14 -33
  265. package/build-module/palette-edit/index.js.map +1 -1
  266. package/build-module/private-apis.js +10 -23
  267. package/build-module/private-apis.js.map +1 -1
  268. package/build-module/private-apis.native.js +14 -0
  269. package/build-module/private-apis.native.js.map +1 -0
  270. package/build-module/query-controls/author-select.js +3 -1
  271. package/build-module/query-controls/author-select.js.map +1 -1
  272. package/build-module/query-controls/category-select.js +3 -1
  273. package/build-module/query-controls/category-select.js.map +1 -1
  274. package/build-module/query-controls/index.js +6 -1
  275. package/build-module/query-controls/index.js.map +1 -1
  276. package/build-module/query-controls/types.js.map +1 -1
  277. package/build-module/radio-control/index.js +1 -0
  278. package/build-module/radio-control/index.js.map +1 -1
  279. package/build-module/range-control/index.js +1 -1
  280. package/build-module/range-control/index.js.map +1 -1
  281. package/build-module/select-control/styles/select-control-styles.js +15 -25
  282. package/build-module/select-control/styles/select-control-styles.js.map +1 -1
  283. package/build-module/slot-fill/index.js +3 -2
  284. package/build-module/slot-fill/index.js.map +1 -1
  285. package/build-module/slot-fill/types.js.map +1 -1
  286. package/build-module/snackbar/types.js.map +1 -1
  287. package/build-module/tabs/index.js +18 -1
  288. package/build-module/tabs/index.js.map +1 -1
  289. package/build-module/tabs/styles.js +3 -3
  290. package/build-module/tabs/styles.js.map +1 -1
  291. package/build-module/tabs/tab.js +2 -2
  292. package/build-module/tabs/tab.js.map +1 -1
  293. package/build-module/tabs/tabpanel.js +11 -8
  294. package/build-module/tabs/tabpanel.js.map +1 -1
  295. package/build-module/tabs/types.js.map +1 -1
  296. package/build-module/toggle-group-control/toggle-group-control/component.js +4 -4
  297. package/build-module/toggle-group-control/toggle-group-control/component.js.map +1 -1
  298. package/build-module/toggle-group-control/toggle-group-control/styles.js +29 -15
  299. package/build-module/toggle-group-control/toggle-group-control/styles.js.map +1 -1
  300. package/build-module/toggle-group-control/toggle-group-control/utils.js +17 -17
  301. package/build-module/toggle-group-control/toggle-group-control/utils.js.map +1 -1
  302. package/build-module/toggle-group-control/toggle-group-control-option-base/styles.js +9 -9
  303. package/build-module/toggle-group-control/toggle-group-control-option-base/styles.js.map +1 -1
  304. package/build-module/tools-panel/tools-panel/component.js +3 -1
  305. package/build-module/tools-panel/tools-panel/component.js.map +1 -1
  306. package/build-module/tools-panel/tools-panel-header/component.js +9 -8
  307. package/build-module/tools-panel/tools-panel-header/component.js.map +1 -1
  308. package/build-module/tools-panel/tools-panel-item/hook.js +11 -11
  309. package/build-module/tools-panel/tools-panel-item/hook.js.map +1 -1
  310. package/build-module/tools-panel/types.js.map +1 -1
  311. package/build-module/tooltip/index.js +1 -1
  312. package/build-module/tooltip/index.js.map +1 -1
  313. package/build-module/truncate/hook.js +10 -4
  314. package/build-module/truncate/hook.js.map +1 -1
  315. package/build-module/truncate/types.js.map +1 -1
  316. package/build-module/unit-control/index.js +1 -1
  317. package/build-module/unit-control/index.js.map +1 -1
  318. package/build-module/utils/strings.js +32 -2
  319. package/build-module/utils/strings.js.map +1 -1
  320. package/build-style/style-rtl.css +30 -6
  321. package/build-style/style.css +30 -6
  322. package/build-types/base-control/index.d.ts +3 -27
  323. package/build-types/base-control/index.d.ts.map +1 -1
  324. package/build-types/base-control/stories/index.story.d.ts +4 -1
  325. package/build-types/base-control/stories/index.story.d.ts.map +1 -1
  326. package/build-types/border-control/border-control-dropdown/component.d.ts.map +1 -1
  327. package/build-types/border-control/border-control-dropdown/hook.d.ts +1 -0
  328. package/build-types/border-control/border-control-dropdown/hook.d.ts.map +1 -1
  329. package/build-types/border-control/styles.d.ts +1 -1
  330. package/build-types/border-control/styles.d.ts.map +1 -1
  331. package/build-types/checkbox-control/index.d.ts.map +1 -1
  332. package/build-types/checkbox-control/types.d.ts +3 -2
  333. package/build-types/checkbox-control/types.d.ts.map +1 -1
  334. package/build-types/color-picker/component.d.ts +1 -1
  335. package/build-types/color-picker/stories/index.story.d.ts +1 -1
  336. package/build-types/color-picker/stories/index.story.d.ts.map +1 -1
  337. package/build-types/composite/test/index.d.ts.map +1 -0
  338. package/build-types/context/wordpress-component.d.ts +3 -3
  339. package/build-types/context/wordpress-component.d.ts.map +1 -1
  340. package/build-types/custom-select-control-v2/index.d.ts +3 -2
  341. package/build-types/custom-select-control-v2/index.d.ts.map +1 -1
  342. package/build-types/custom-select-control-v2/stories/index.story.d.ts +4 -3
  343. package/build-types/custom-select-control-v2/stories/index.story.d.ts.map +1 -1
  344. package/build-types/date-time/time/timezone.d.ts.map +1 -1
  345. package/build-types/dimension-control/index.d.ts.map +1 -1
  346. package/build-types/dimension-control/types.d.ts +6 -0
  347. package/build-types/dimension-control/types.d.ts.map +1 -1
  348. package/build-types/dropdown/index.d.ts +1 -1
  349. package/build-types/dropdown/index.d.ts.map +1 -1
  350. package/build-types/dropdown/stories/index.story.d.ts +3 -3
  351. package/build-types/dropdown/stories/index.story.d.ts.map +1 -1
  352. package/build-types/dropdown-menu/index.d.ts +1 -1
  353. package/build-types/dropdown-menu/index.d.ts.map +1 -1
  354. package/build-types/dropdown-menu/stories/index.story.d.ts +2 -2
  355. package/build-types/dropdown-menu/stories/index.story.d.ts.map +1 -1
  356. package/build-types/dropdown-menu-v2/index.d.ts +18 -15
  357. package/build-types/dropdown-menu-v2/index.d.ts.map +1 -1
  358. package/build-types/dropdown-menu-v2/stories/index.story.d.ts +7 -2
  359. package/build-types/dropdown-menu-v2/stories/index.story.d.ts.map +1 -1
  360. package/build-types/dropdown-menu-v2/styles.d.ts +77 -23
  361. package/build-types/dropdown-menu-v2/styles.d.ts.map +1 -1
  362. package/build-types/dropdown-menu-v2/types.d.ts +89 -173
  363. package/build-types/dropdown-menu-v2/types.d.ts.map +1 -1
  364. package/build-types/duotone-picker/duotone-picker.d.ts.map +1 -1
  365. package/build-types/focal-point-picker/controls.d.ts +1 -1
  366. package/build-types/focal-point-picker/controls.d.ts.map +1 -1
  367. package/build-types/focal-point-picker/index.d.ts +1 -1
  368. package/build-types/focal-point-picker/index.d.ts.map +1 -1
  369. package/build-types/focal-point-picker/stories/index.story.d.ts +8 -4
  370. package/build-types/focal-point-picker/stories/index.story.d.ts.map +1 -1
  371. package/build-types/focal-point-picker/types.d.ts +7 -0
  372. package/build-types/focal-point-picker/types.d.ts.map +1 -1
  373. package/build-types/font-size-picker/font-size-picker-select.d.ts.map +1 -1
  374. package/build-types/font-size-picker/font-size-picker-toggle-group.d.ts.map +1 -1
  375. package/build-types/font-size-picker/index.d.ts.map +1 -1
  376. package/build-types/font-size-picker/types.d.ts +8 -1
  377. package/build-types/font-size-picker/types.d.ts.map +1 -1
  378. package/build-types/form-token-field/index.d.ts.map +1 -1
  379. package/build-types/form-token-field/token.d.ts.map +1 -1
  380. package/build-types/input-control/styles/input-control-styles.d.ts +11 -0
  381. package/build-types/input-control/styles/input-control-styles.d.ts.map +1 -1
  382. package/build-types/input-control/types.d.ts +1 -1
  383. package/build-types/input-control/types.d.ts.map +1 -1
  384. package/build-types/lock-unlock.d.ts +3 -0
  385. package/build-types/lock-unlock.d.ts.map +1 -0
  386. package/build-types/mobile/image/constants.d.ts +5 -0
  387. package/build-types/mobile/image/constants.d.ts.map +1 -0
  388. package/build-types/modal/index.d.ts.map +1 -1
  389. package/build-types/navigator/navigator-provider/component.d.ts.map +1 -1
  390. package/build-types/navigator/navigator-screen/component.d.ts +1 -7
  391. package/build-types/navigator/navigator-screen/component.d.ts.map +1 -1
  392. package/build-types/navigator/styles.d.ts +9 -0
  393. package/build-types/navigator/styles.d.ts.map +1 -0
  394. package/build-types/number-control/index.d.ts.map +1 -1
  395. package/build-types/number-control/types.d.ts +1 -1
  396. package/build-types/palette-edit/index.d.ts +2 -2
  397. package/build-types/palette-edit/index.d.ts.map +1 -1
  398. package/build-types/popover/index.d.ts +1 -1
  399. package/build-types/popover/index.d.ts.map +1 -1
  400. package/build-types/popover/stories/e2e/index.story.d.ts +1 -1
  401. package/build-types/private-apis.d.ts +0 -1
  402. package/build-types/private-apis.d.ts.map +1 -1
  403. package/build-types/query-controls/author-select.d.ts +1 -1
  404. package/build-types/query-controls/author-select.d.ts.map +1 -1
  405. package/build-types/query-controls/category-select.d.ts +1 -1
  406. package/build-types/query-controls/category-select.d.ts.map +1 -1
  407. package/build-types/query-controls/index.d.ts +1 -1
  408. package/build-types/query-controls/index.d.ts.map +1 -1
  409. package/build-types/query-controls/types.d.ts +9 -0
  410. package/build-types/query-controls/types.d.ts.map +1 -1
  411. package/build-types/radio-control/index.d.ts.map +1 -1
  412. package/build-types/select-control/styles/select-control-styles.d.ts.map +1 -1
  413. package/build-types/slot-fill/index.d.ts +1 -1
  414. package/build-types/slot-fill/index.d.ts.map +1 -1
  415. package/build-types/slot-fill/types.d.ts +4 -0
  416. package/build-types/slot-fill/types.d.ts.map +1 -1
  417. package/build-types/snackbar/index.d.ts +2 -2
  418. package/build-types/snackbar/stories/index.story.d.ts +0 -3
  419. package/build-types/snackbar/stories/index.story.d.ts.map +1 -1
  420. package/build-types/snackbar/types.d.ts +1 -1
  421. package/build-types/snackbar/types.d.ts.map +1 -1
  422. package/build-types/tabs/index.d.ts +2 -2
  423. package/build-types/tabs/index.d.ts.map +1 -1
  424. package/build-types/tabs/styles.d.ts.map +1 -1
  425. package/build-types/tabs/tab.d.ts +2 -1
  426. package/build-types/tabs/tab.d.ts.map +1 -1
  427. package/build-types/tabs/tabpanel.d.ts +3 -2
  428. package/build-types/tabs/tabpanel.d.ts.map +1 -1
  429. package/build-types/tabs/types.d.ts +8 -3
  430. package/build-types/tabs/types.d.ts.map +1 -1
  431. package/build-types/toggle-group-control/toggle-group-control/component.d.ts.map +1 -1
  432. package/build-types/toggle-group-control/toggle-group-control/styles.d.ts +2 -2
  433. package/build-types/toggle-group-control/toggle-group-control/styles.d.ts.map +1 -1
  434. package/build-types/toggle-group-control/toggle-group-control/utils.d.ts.map +1 -1
  435. package/build-types/toggle-group-control/toggle-group-control-option-base/component.d.ts +1 -1
  436. package/build-types/toggle-group-control/toggle-group-control-option-base/component.d.ts.map +1 -1
  437. package/build-types/toggle-group-control/toggle-group-control-option-base/styles.d.ts.map +1 -1
  438. package/build-types/tools-panel/tools-panel/component.d.ts.map +1 -1
  439. package/build-types/tools-panel/tools-panel/hook.d.ts +1 -0
  440. package/build-types/tools-panel/tools-panel/hook.d.ts.map +1 -1
  441. package/build-types/tools-panel/tools-panel-header/component.d.ts.map +1 -1
  442. package/build-types/tools-panel/tools-panel-header/hook.d.ts +1 -0
  443. package/build-types/tools-panel/tools-panel-header/hook.d.ts.map +1 -1
  444. package/build-types/tools-panel/tools-panel-item/hook.d.ts.map +1 -1
  445. package/build-types/tools-panel/types.d.ts +9 -0
  446. package/build-types/tools-panel/types.d.ts.map +1 -1
  447. package/build-types/truncate/hook.d.ts +1 -1
  448. package/build-types/truncate/hook.d.ts.map +1 -1
  449. package/build-types/truncate/types.d.ts +4 -0
  450. package/build-types/truncate/types.d.ts.map +1 -1
  451. package/build-types/utils/strings.d.ts +14 -2
  452. package/build-types/utils/strings.d.ts.map +1 -1
  453. package/package.json +20 -21
  454. package/src/alignment-matrix-control/test/index.tsx +10 -16
  455. package/src/base-control/index.tsx +21 -16
  456. package/src/border-box-control/border-box-control-linked-button/component.tsx +1 -1
  457. package/src/border-control/border-control-dropdown/component.tsx +3 -1
  458. package/src/border-control/border-control-dropdown/hook.ts +3 -2
  459. package/src/border-control/border-control-style-picker/component.tsx +1 -1
  460. package/src/border-control/styles.ts +2 -9
  461. package/src/box-control/index.tsx +1 -1
  462. package/src/box-control/linked-button.tsx +1 -1
  463. package/src/button/README.md +32 -6
  464. package/src/button/index.tsx +1 -1
  465. package/src/button-group/README.md +0 -6
  466. package/src/card/card/README.md +1 -1
  467. package/src/checkbox-control/README.md +3 -10
  468. package/src/checkbox-control/index.tsx +8 -6
  469. package/src/checkbox-control/test/__snapshots__/index.tsx.snap +3 -8
  470. package/src/checkbox-control/test/index.tsx +7 -0
  471. package/src/checkbox-control/types.ts +3 -2
  472. package/src/color-picker/color-copy-button.tsx +1 -1
  473. package/src/combobox-control/README.md +0 -6
  474. package/src/composite/test/index.tsx +576 -0
  475. package/src/context/wordpress-component.ts +11 -6
  476. package/src/custom-select-control/README.md +0 -6
  477. package/src/custom-select-control/test/index.js +367 -35
  478. package/src/custom-select-control-v2/index.tsx +13 -12
  479. package/src/date-time/date/styles.ts +3 -3
  480. package/src/date-time/time/timezone.tsx +15 -3
  481. package/src/dimension-control/index.tsx +2 -0
  482. package/src/dimension-control/test/__snapshots__/index.test.js.snap +2 -2
  483. package/src/dimension-control/types.ts +6 -0
  484. package/src/dropdown-menu/README.md +0 -5
  485. package/src/dropdown-menu-v2/README.md +75 -136
  486. package/src/dropdown-menu-v2/index.tsx +321 -231
  487. package/src/dropdown-menu-v2/stories/index.story.tsx +522 -126
  488. package/src/dropdown-menu-v2/styles.ts +226 -151
  489. package/src/dropdown-menu-v2/test/index.tsx +480 -188
  490. package/src/dropdown-menu-v2/types.ts +98 -184
  491. package/src/duotone-picker/duotone-picker.tsx +7 -3
  492. package/src/focal-point-picker/controls.tsx +4 -0
  493. package/src/focal-point-picker/index.tsx +2 -0
  494. package/src/focal-point-picker/styles/focal-point-picker-style.ts +1 -1
  495. package/src/focal-point-picker/types.ts +7 -0
  496. package/src/font-size-picker/font-size-picker-select.tsx +2 -0
  497. package/src/font-size-picker/font-size-picker-toggle-group.tsx +9 -1
  498. package/src/font-size-picker/index.native.js +8 -2
  499. package/src/font-size-picker/index.tsx +15 -5
  500. package/src/font-size-picker/types.ts +8 -1
  501. package/src/form-toggle/README.md +0 -6
  502. package/src/form-toggle/style.scss +4 -2
  503. package/src/form-token-field/index.tsx +11 -7
  504. package/src/form-token-field/test/index.tsx +97 -0
  505. package/src/form-token-field/token.tsx +1 -0
  506. package/src/gradient-picker/index.tsx +2 -2
  507. package/src/index.native.js +6 -3
  508. package/src/input-control/styles/input-control-styles.tsx +10 -8
  509. package/src/input-control/types.ts +1 -1
  510. package/src/lock-unlock.js +10 -0
  511. package/src/menu-group/README.md +0 -8
  512. package/src/menu-items-choice/README.md +0 -7
  513. package/src/mobile/bottom-sheet/index.native.js +15 -1
  514. package/src/mobile/global-styles-context/test/fixtures/theme.native.js +0 -20
  515. package/src/mobile/global-styles-context/test/utils.native.js +22 -0
  516. package/src/mobile/global-styles-context/utils.native.js +42 -19
  517. package/src/mobile/image/constants.js +1 -0
  518. package/src/mobile/image/index.native.js +55 -18
  519. package/src/mobile/image/style.native.scss +35 -9
  520. package/src/mobile/keyboard-aware-flat-list/index.android.js +50 -5
  521. package/src/mobile/keyboard-aware-flat-list/index.ios.js +65 -91
  522. package/src/mobile/keyboard-aware-flat-list/test/{use-scroll-to-text-input.native.js → use-scroll-to-section.native.js} +27 -25
  523. package/src/mobile/keyboard-aware-flat-list/test/use-scroll.native.js +71 -0
  524. package/src/mobile/keyboard-aware-flat-list/use-scroll-to-element.native.js +41 -0
  525. package/src/mobile/keyboard-aware-flat-list/{use-scroll-to-text-input.native.js → use-scroll-to-section.native.js} +22 -27
  526. package/src/mobile/keyboard-aware-flat-list/use-scroll.native.js +100 -0
  527. package/src/mobile/link-settings/style.native.scss +0 -17
  528. package/src/mobile/utils/get-px-from-css-unit.native.js +329 -0
  529. package/src/mobile/utils/test/get-px-from-css-unit.native.js +172 -0
  530. package/src/modal/README.md +0 -6
  531. package/src/modal/index.tsx +18 -16
  532. package/src/modal/test/index.tsx +90 -1
  533. package/src/navigation/menu/menu-title.tsx +1 -1
  534. package/src/navigator/navigator-provider/component.tsx +3 -4
  535. package/src/navigator/navigator-screen/component.tsx +15 -93
  536. package/src/navigator/styles.ts +71 -0
  537. package/src/navigator/test/index.tsx +0 -64
  538. package/src/notice/README.md +0 -6
  539. package/src/number-control/README.md +2 -2
  540. package/src/number-control/index.tsx +4 -8
  541. package/src/number-control/types.ts +1 -1
  542. package/src/palette-edit/index.tsx +14 -43
  543. package/src/palette-edit/style.scss +2 -2
  544. package/src/panel/README.md +0 -6
  545. package/src/private-apis.native.js +13 -0
  546. package/src/private-apis.ts +12 -37
  547. package/src/query-controls/author-select.tsx +2 -0
  548. package/src/query-controls/category-select.tsx +2 -0
  549. package/src/query-controls/index.tsx +6 -1
  550. package/src/query-controls/types.ts +9 -0
  551. package/src/radio-control/README.md +0 -6
  552. package/src/radio-control/index.tsx +4 -1
  553. package/src/radio-control/style.scss +29 -2
  554. package/src/radio-group/README.md +0 -6
  555. package/src/range-control/README.md +1 -9
  556. package/src/range-control/index.tsx +1 -1
  557. package/src/search-control/README.md +1 -5
  558. package/src/select-control/README.md +0 -6
  559. package/src/select-control/styles/select-control-styles.ts +10 -28
  560. package/src/slot-fill/index.tsx +5 -2
  561. package/src/slot-fill/types.ts +5 -0
  562. package/src/snackbar/README.md +0 -6
  563. package/src/snackbar/stories/index.story.tsx +7 -5
  564. package/src/snackbar/style.scss +4 -3
  565. package/src/snackbar/types.ts +2 -1
  566. package/src/spacer/README.md +0 -2
  567. package/src/spinner/README.md +2 -0
  568. package/src/tab-panel/README.md +0 -5
  569. package/src/tab-panel/test/index.tsx +39 -56
  570. package/src/tabs/README.md +4 -4
  571. package/src/tabs/index.tsx +22 -1
  572. package/src/tabs/stories/index.story.tsx +48 -48
  573. package/src/tabs/styles.ts +7 -1
  574. package/src/tabs/tab.tsx +3 -3
  575. package/src/tabs/tabpanel.tsx +13 -8
  576. package/src/tabs/test/index.tsx +236 -106
  577. package/src/tabs/types.ts +8 -3
  578. package/src/text-control/README.md +0 -6
  579. package/src/textarea-control/README.md +0 -6
  580. package/src/toggle-group-control/test/__snapshots__/index.tsx.snap +12 -16
  581. package/src/toggle-group-control/test/index.tsx +107 -41
  582. package/src/toggle-group-control/toggle-group-control/component.tsx +5 -4
  583. package/src/toggle-group-control/toggle-group-control/styles.ts +13 -19
  584. package/src/toggle-group-control/toggle-group-control/utils.ts +15 -20
  585. package/src/toggle-group-control/toggle-group-control-option/README.md +1 -1
  586. package/src/toggle-group-control/toggle-group-control-option-base/README.md +1 -1
  587. package/src/toggle-group-control/toggle-group-control-option-base/styles.ts +3 -2
  588. package/src/toggle-group-control/toggle-group-control-option-icon/README.md +1 -1
  589. package/src/toolbar/toolbar/README.md +0 -6
  590. package/src/tools-panel/test/index.tsx +12 -20
  591. package/src/tools-panel/tools-panel/README.md +7 -0
  592. package/src/tools-panel/tools-panel/component.tsx +2 -0
  593. package/src/tools-panel/tools-panel-header/README.md +7 -0
  594. package/src/tools-panel/tools-panel-header/component.tsx +20 -13
  595. package/src/tools-panel/tools-panel-item/hook.ts +10 -21
  596. package/src/tools-panel/types.ts +9 -0
  597. package/src/tooltip/index.tsx +1 -1
  598. package/src/tooltip/test/index.tsx +360 -256
  599. package/src/tree-grid/README.md +0 -4
  600. package/src/truncate/README.md +8 -0
  601. package/src/truncate/hook.ts +17 -10
  602. package/src/truncate/test/index.tsx +54 -27
  603. package/src/truncate/types.ts +4 -0
  604. package/src/unit-control/index.tsx +1 -1
  605. package/src/utils/strings.ts +30 -2
  606. package/src/utils/test/strings.js +96 -1
  607. package/tsconfig.tsbuildinfo +1 -1
  608. package/build/dropdown-menu-v2-ariakit/index.js +0 -256
  609. package/build/dropdown-menu-v2-ariakit/index.js.map +0 -1
  610. package/build/dropdown-menu-v2-ariakit/styles.js +0 -180
  611. package/build/dropdown-menu-v2-ariakit/styles.js.map +0 -1
  612. package/build/dropdown-menu-v2-ariakit/types.js +0 -6
  613. package/build/dropdown-menu-v2-ariakit/types.js.map +0 -1
  614. package/build/mobile/inserter-button/index.native.js +0 -98
  615. package/build/mobile/inserter-button/index.native.js.map +0 -1
  616. package/build/mobile/inserter-button/sparkles.js +0 -23
  617. package/build/mobile/inserter-button/sparkles.js.map +0 -1
  618. package/build/mobile/keyboard-aware-flat-list/use-scroll-to-text-input.native.js.map +0 -1
  619. package/build/mobile/link-settings/image-link-destinations-screen.native.js +0 -119
  620. package/build/mobile/link-settings/image-link-destinations-screen.native.js.map +0 -1
  621. package/build-module/dropdown-menu-v2-ariakit/index.js +0 -237
  622. package/build-module/dropdown-menu-v2-ariakit/index.js.map +0 -1
  623. package/build-module/dropdown-menu-v2-ariakit/styles.js +0 -165
  624. package/build-module/dropdown-menu-v2-ariakit/styles.js.map +0 -1
  625. package/build-module/dropdown-menu-v2-ariakit/types.js +0 -2
  626. package/build-module/dropdown-menu-v2-ariakit/types.js.map +0 -1
  627. package/build-module/mobile/inserter-button/index.native.js +0 -89
  628. package/build-module/mobile/inserter-button/index.native.js.map +0 -1
  629. package/build-module/mobile/inserter-button/sparkles.js +0 -15
  630. package/build-module/mobile/inserter-button/sparkles.js.map +0 -1
  631. package/build-module/mobile/keyboard-aware-flat-list/use-scroll-to-text-input.native.js.map +0 -1
  632. package/build-module/mobile/link-settings/image-link-destinations-screen.native.js +0 -110
  633. package/build-module/mobile/link-settings/image-link-destinations-screen.native.js.map +0 -1
  634. package/build-types/dropdown-menu-v2-ariakit/index.d.ts +0 -20
  635. package/build-types/dropdown-menu-v2-ariakit/index.d.ts.map +0 -1
  636. package/build-types/dropdown-menu-v2-ariakit/stories/index.story.d.ts +0 -16
  637. package/build-types/dropdown-menu-v2-ariakit/stories/index.story.d.ts.map +0 -1
  638. package/build-types/dropdown-menu-v2-ariakit/styles.d.ts +0 -96
  639. package/build-types/dropdown-menu-v2-ariakit/styles.d.ts.map +0 -1
  640. package/build-types/dropdown-menu-v2-ariakit/test/index.d.ts.map +0 -1
  641. package/build-types/dropdown-menu-v2-ariakit/types.d.ts +0 -168
  642. package/build-types/dropdown-menu-v2-ariakit/types.d.ts.map +0 -1
  643. package/build-types/mobile/inserter-button/sparkles.d.ts +0 -3
  644. package/build-types/mobile/inserter-button/sparkles.d.ts.map +0 -1
  645. package/src/dropdown-menu-v2-ariakit/README.md +0 -331
  646. package/src/dropdown-menu-v2-ariakit/index.tsx +0 -383
  647. package/src/dropdown-menu-v2-ariakit/stories/index.story.tsx +0 -617
  648. package/src/dropdown-menu-v2-ariakit/styles.ts +0 -333
  649. package/src/dropdown-menu-v2-ariakit/test/index.tsx +0 -1108
  650. package/src/dropdown-menu-v2-ariakit/types.ts +0 -179
  651. package/src/mobile/inserter-button/README.md +0 -62
  652. package/src/mobile/inserter-button/index.native.js +0 -116
  653. package/src/mobile/inserter-button/sparkles.js +0 -15
  654. package/src/mobile/inserter-button/style.native.scss +0 -72
  655. package/src/mobile/link-settings/image-link-destinations-screen.native.js +0 -152
  656. /package/build-types/{dropdown-menu-v2-ariakit → composite}/test/index.d.ts +0 -0
@@ -1 +1 @@
1
- {"version":3,"names":["Button","COLORS","CONFIG","HStack","Heading","space","Wrapper","_styled","process","env","NODE_ENV","target","label","name","styles","map","toString","_EMOTION_STRINGIFIED_CSS_ERROR__","Navigator","NavigatorHeading","fontSize","fontWeight","fontWeightHeading","Calendar","DayOfWeek","gray","fontLineHeightBase","DayButton","shouldForwardProp","prop","includes","props","column","disabled","isSelected","theme","accent","white","isToday","hasEvents"],"sources":["@wordpress/components/src/date-time/date/styles.ts"],"sourcesContent":["/**\n * External dependencies\n */\nimport styled from '@emotion/styled';\n\n/**\n * Internal dependencies\n */\nimport Button from '../../button';\nimport { COLORS, CONFIG } from '../../utils';\nimport { HStack } from '../../h-stack';\nimport { Heading } from '../../heading';\nimport { space } from '../../utils/space';\n\nexport const Wrapper = styled.div`\n\tbox-sizing: border-box;\n`;\n\nexport const Navigator = styled( HStack )`\n\tmargin-bottom: ${ space( 4 ) };\n`;\n\nexport const NavigatorHeading = styled( Heading )`\n\tfont-size: ${ CONFIG.fontSize };\n\tfont-weight: ${ CONFIG.fontWeight };\n\n\tstrong {\n\t\tfont-weight: ${ CONFIG.fontWeightHeading };\n\t}\n`;\n\nexport const Calendar = styled.div`\n\tcolumn-gap: ${ space( 2 ) };\n\tdisplay: grid;\n\tgrid-template-columns: 0.5fr repeat( 5, 1fr ) 0.5fr;\n\tjustify-items: center;\n\trow-gap: ${ space( 2 ) };\n`;\n\nexport const DayOfWeek = styled.div`\n\tcolor: ${ COLORS.gray[ 700 ] };\n\tfont-size: ${ CONFIG.fontSize };\n\tline-height: ${ CONFIG.fontLineHeightBase };\n\n\t&:nth-of-type( 1 ) {\n\t\tjustify-self: start;\n\t}\n\n\t&:nth-of-type( 7 ) {\n\t\tjustify-self: end;\n\t}\n`;\n\nexport const DayButton = styled( Button, {\n\tshouldForwardProp: ( prop: string ) =>\n\t\t! [ 'column', 'isSelected', 'isToday', 'hasEvents' ].includes( prop ),\n} )< {\n\tcolumn: number;\n\tisSelected: boolean;\n\tisToday: boolean;\n\thasEvents: boolean;\n} >`\n\tgrid-column: ${ ( props ) => props.column };\n\tposition: relative;\n\tjustify-content: center;\n\n\t${ ( props ) =>\n\t\tprops.column === 1 &&\n\t\t`\n\t\tjustify-self: start;\n\t\t` }\n\n\t${ ( props ) =>\n\t\tprops.column === 7 &&\n\t\t`\n\t\tjustify-self: end;\n\t\t` }\n\n\t${ ( props ) =>\n\t\tprops.disabled &&\n\t\t`\n\t\tpointer-events: none;\n\t\t` }\n\n\t&&& {\n\t\tborder-radius: 100%;\n\t\theight: ${ space( 7 ) };\n\t\twidth: ${ space( 7 ) };\n\n\t\t${ ( props ) =>\n\t\t\tprops.isSelected &&\n\t\t\t`\n\t\t\tbackground: ${ COLORS.theme.accent };\n\t\t\tcolor: ${ COLORS.white };\n\t\t\t` }\n\n\t\t${ ( props ) =>\n\t\t\t! props.isSelected &&\n\t\t\tprops.isToday &&\n\t\t\t`\n\t\t\tbackground: ${ COLORS.gray[ 200 ] };\n\t\t\t` }\n\t}\n\n\t${ ( props ) =>\n\t\tprops.hasEvents &&\n\t\t`\n\t\t::before {\n\t\t\tbackground: ${ props.isSelected ? COLORS.white : COLORS.theme.accent };\n\t\t\tborder-radius: 2px;\n\t\t\tbottom: 0;\n\t\t\tcontent: \" \";\n\t\t\theight: 4px;\n\t\t\tleft: 50%;\n\t\t\tmargin-left: -2px;\n\t\t\tposition: absolute;\n\t\t\twidth: 4px;\n\t\t}\n\t\t` }\n`;\n"],"mappings":"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"}
1
+ {"version":3,"names":["Button","COLORS","CONFIG","HStack","Heading","space","Wrapper","_styled","process","env","NODE_ENV","target","label","name","styles","map","toString","_EMOTION_STRINGIFIED_CSS_ERROR__","Navigator","NavigatorHeading","fontSize","fontWeight","fontWeightHeading","Calendar","DayOfWeek","gray","fontLineHeightBase","DayButton","shouldForwardProp","prop","includes","props","column","disabled","isSelected","theme","accent","white","isToday","hasEvents"],"sources":["@wordpress/components/src/date-time/date/styles.ts"],"sourcesContent":["/**\n * External dependencies\n */\nimport styled from '@emotion/styled';\n\n/**\n * Internal dependencies\n */\nimport Button from '../../button';\nimport { COLORS, CONFIG } from '../../utils';\nimport { HStack } from '../../h-stack';\nimport { Heading } from '../../heading';\nimport { space } from '../../utils/space';\n\nexport const Wrapper = styled.div`\n\tbox-sizing: border-box;\n`;\n\nexport const Navigator = styled( HStack )`\n\tmargin-bottom: ${ space( 4 ) };\n`;\n\nexport const NavigatorHeading = styled( Heading )`\n\tfont-size: ${ CONFIG.fontSize };\n\tfont-weight: ${ CONFIG.fontWeight };\n\n\tstrong {\n\t\tfont-weight: ${ CONFIG.fontWeightHeading };\n\t}\n`;\n\nexport const Calendar = styled.div`\n\tcolumn-gap: ${ space( 2 ) };\n\tdisplay: grid;\n\tgrid-template-columns: 0.5fr repeat( 5, 1fr ) 0.5fr;\n\tjustify-items: center;\n\trow-gap: ${ space( 2 ) };\n`;\n\nexport const DayOfWeek = styled.div`\n\tcolor: ${ COLORS.gray[ 700 ] };\n\tfont-size: ${ CONFIG.fontSize };\n\tline-height: ${ CONFIG.fontLineHeightBase };\n\n\t&:nth-of-type( 1 ) {\n\t\tjustify-self: start;\n\t}\n\n\t&:nth-of-type( 7 ) {\n\t\tjustify-self: end;\n\t}\n`;\n\nexport const DayButton = styled( Button, {\n\tshouldForwardProp: ( prop: string ) =>\n\t\t! [ 'column', 'isSelected', 'isToday', 'hasEvents' ].includes( prop ),\n} )< {\n\tcolumn: number;\n\tisSelected: boolean;\n\tisToday: boolean;\n\thasEvents: boolean;\n} >`\n\tgrid-column: ${ ( props ) => props.column };\n\tposition: relative;\n\tjustify-content: center;\n\n\t${ ( props ) =>\n\t\tprops.column === 1 &&\n\t\t`\n\t\tjustify-self: start;\n\t\t` }\n\n\t${ ( props ) =>\n\t\tprops.column === 7 &&\n\t\t`\n\t\tjustify-self: end;\n\t\t` }\n\n\t${ ( props ) =>\n\t\tprops.disabled &&\n\t\t`\n\t\tpointer-events: none;\n\t\t` }\n\n\t&&& {\n\t\tborder-radius: 100%;\n\t\theight: ${ space( 8 ) };\n\t\twidth: ${ space( 8 ) };\n\n\t\t${ ( props ) =>\n\t\t\tprops.isSelected &&\n\t\t\t`\n\t\t\tbackground: ${ COLORS.theme.accent };\n\t\t\tcolor: ${ COLORS.white };\n\t\t\t` }\n\n\t\t${ ( props ) =>\n\t\t\t! props.isSelected &&\n\t\t\tprops.isToday &&\n\t\t\t`\n\t\t\tbackground: ${ COLORS.gray[ 200 ] };\n\t\t\t` }\n\t}\n\n\t${ ( props ) =>\n\t\tprops.hasEvents &&\n\t\t`\n\t\t::before {\n\t\t\tbackground: ${ props.isSelected ? COLORS.white : COLORS.theme.accent };\n\t\t\tborder-radius: 2px;\n\t\t\tbottom: 2px;\n\t\t\tcontent: \" \";\n\t\t\theight: 4px;\n\t\t\tleft: 50%;\n\t\t\tmargin-left: -2px;\n\t\t\tposition: absolute;\n\t\t\twidth: 4px;\n\t\t}\n\t\t` }\n`;\n"],"mappings":";;AAAA;AACA;AACA;;AAGA;AACA;AACA;AACA,OAAOA,MAAM,MAAM,cAAc;AACjC,SAASC,MAAM,EAAEC,MAAM,QAAQ,aAAa;AAC5C,SAASC,MAAM,QAAQ,eAAe;AACtC,SAASC,OAAO,QAAQ,eAAe;AACvC,SAASC,KAAK,QAAQ,mBAAmB;AAEzC,OAAO,MAAMC,OAAO,GAAAC,OAAA,QAAAC,OAAA,CAAAC,GAAA,CAAAC,QAAA;EAAAC,MAAA;AAAA;EAAAA,MAAA;EAAAC,KAAA;AAAA,GAAAJ,OAAA,CAAAC,GAAA,CAAAC,QAAA;EAAAG,IAAA;EAAAC,MAAA;AAAA;EAAAD,IAAA;EAAAC,MAAA;EAAAC,GAAA;EAAAC,QAAA,EAAAC;AAAA,EAEnB;AAED,OAAO,MAAMC,SAAS,GAAG,aAAAX,OAAA,CAAQJ,MAAM,EAAAK,OAAA,CAAAC,GAAA,CAAAC,QAAA;EAAAC,MAAA;AAAA;EAAAA,MAAA;EAAAC,KAAA;AAAA,CAAC,CAAC,mBACtBP,KAAK,CAAE,CAAE,CAAC,SAAAG,OAAA,CAAAC,GAAA,CAAAC,QAAA,ooHAC5B;AAED,OAAO,MAAMS,gBAAgB,GAAG,aAAAZ,OAAA,CAAQH,OAAO,EAAAI,OAAA,CAAAC,GAAA,CAAAC,QAAA;EAAAC,MAAA;AAAA;EAAAA,MAAA;EAAAC,KAAA;AAAA,CAAC,CAAC,eAClCV,MAAM,CAACkB,QAAQ,mBACblB,MAAM,CAACmB,UAAU,0BAGhBnB,MAAM,CAACoB,iBAAiB,UAAAd,OAAA,CAAAC,GAAA,CAAAC,QAAA,ooHAEzC;AAED,OAAO,MAAMa,QAAQ,GAAAhB,OAAA,QAAAC,OAAA,CAAAC,GAAA,CAAAC,QAAA;EAAAC,MAAA;AAAA;EAAAA,MAAA;EAAAC,KAAA;AAAA,kBACLP,KAAK,CAAE,CAAE,CAAC,oGAIbA,KAAK,CAAE,CAAE,CAAC,SAAAG,OAAA,CAAAC,GAAA,CAAAC,QAAA,ooHACtB;AAED,OAAO,MAAMc,SAAS,GAAAjB,OAAA,QAAAC,OAAA,CAAAC,GAAA,CAAAC,QAAA;EAAAC,MAAA;AAAA;EAAAA,MAAA;EAAAC,KAAA;AAAA,aACXX,MAAM,CAACwB,IAAI,CAAE,GAAG,CAAE,iBACdvB,MAAM,CAACkB,QAAQ,mBACblB,MAAM,CAACwB,kBAAkB,qFAAAlB,OAAA,CAAAC,GAAA,CAAAC,QAAA,ooHASzC;AAED,OAAO,MAAMiB,SAAS,GAAG,aAAApB,OAAA,CAAQP,MAAM,EAAAQ,OAAA,CAAAC,GAAA,CAAAC,QAAA;EACtCkB,iBAAiB,EAAIC,IAAY,IAChC,CAAE,CAAE,QAAQ,EAAE,YAAY,EAAE,SAAS,EAAE,WAAW,CAAE,CAACC,QAAQ,CAAED,IAAK,CAAC;EAAAlB,MAAA;AAAA;EADtEiB,iBAAiB,EAAIC,IAAY,IAChC,CAAE,CAAE,QAAQ,EAAE,YAAY,EAAE,SAAS,EAAE,WAAW,CAAE,CAACC,QAAQ,CAAED,IAAK,CAAC;EAAAlB,MAAA;EAAAC,KAAA;AAAA,CACrE,CAAC,iBAMgBmB,KAAK,IAAMA,KAAK,CAACC,MAAM,gDAIpCD,KAAK,IACTA,KAAK,CAACC,MAAM,KAAK,CAAC,IACjB;AACH;AACA,GAAG,OAEGD,KAAK,IACTA,KAAK,CAACC,MAAM,KAAK,CAAC,IACjB;AACH;AACA,GAAG,OAEGD,KAAK,IACTA,KAAK,CAACE,QAAQ,IACb;AACH;AACA,GAAG,qCAIU5B,KAAK,CAAE,CAAE,CAAC,aACXA,KAAK,CAAE,CAAE,CAAC,OAEf0B,KAAK,IACTA,KAAK,CAACG,UAAU,IACf;AACJ,iBAAkBjC,MAAM,CAACkC,KAAK,CAACC,MAAQ;AACvC,YAAanC,MAAM,CAACoC,KAAO;AAC3B,IAAI,OAEGN,KAAK,IACT,CAAEA,KAAK,CAACG,UAAU,IAClBH,KAAK,CAACO,OAAO,IACZ;AACJ,iBAAkBrC,MAAM,CAACwB,IAAI,CAAE,GAAG,CAAI;AACtC,IAAI,QAGEM,KAAK,IACTA,KAAK,CAACQ,SAAS,IACd;AACH;AACA,iBAAkBR,KAAK,CAACG,UAAU,GAAGjC,MAAM,CAACoC,KAAK,GAAGpC,MAAM,CAACkC,KAAK,CAACC,MAAQ;AACzE;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,GAAG,SAAA5B,OAAA,CAAAC,GAAA,CAAAC,QAAA,ooHACF"}
@@ -30,8 +30,17 @@ const TimeZone = () => {
30
30
  }
31
31
  const offsetSymbol = Number(timezone.offset) >= 0 ? '+' : '';
32
32
  const zoneAbbr = '' !== timezone.abbr && isNaN(Number(timezone.abbr)) ? timezone.abbr : `UTC${offsetSymbol}${timezone.offset}`;
33
- const timezoneDetail = 'UTC' === timezone.string ? __('Coordinated Universal Time') : `(${zoneAbbr}) ${timezone.string.replace('_', ' ')}`;
34
- return createElement(Tooltip, {
33
+
34
+ // Replace underscore with space in strings like `America/Costa_Rica`.
35
+ const prettyTimezoneString = timezone.string.replace('_', ' ');
36
+ const timezoneDetail = 'UTC' === timezone.string ? __('Coordinated Universal Time') : `(${zoneAbbr}) ${prettyTimezoneString}`;
37
+
38
+ // When the prettyTimezoneString is empty, there is no additional timezone
39
+ // detail information to show in a Tooltip.
40
+ const hasNoAdditionalTimezoneDetail = prettyTimezoneString.trim().length === 0;
41
+ return hasNoAdditionalTimezoneDetail ? createElement(StyledComponent, {
42
+ className: "components-datetime__timezone"
43
+ }, zoneAbbr) : createElement(Tooltip, {
35
44
  placement: "top",
36
45
  text: timezoneDetail
37
46
  }, createElement(StyledComponent, {
@@ -1 +1 @@
1
- {"version":3,"names":["__","getSettings","getDateSettings","Tooltip","TimeZone","StyledComponent","timezone","userTimezoneOffset","Date","getTimezoneOffset","Number","offset","offsetSymbol","zoneAbbr","abbr","isNaN","timezoneDetail","string","replace","createElement","placement","text","className"],"sources":["@wordpress/components/src/date-time/time/timezone.tsx"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { getSettings as getDateSettings } from '@wordpress/date';\n\n/**\n * Internal dependencies\n */\nimport Tooltip from '../../tooltip';\nimport { TimeZone as StyledComponent } from './styles';\n\n/**\n * Displays timezone information when user timezone is different from site\n * timezone.\n */\nconst TimeZone = () => {\n\tconst { timezone } = getDateSettings();\n\n\t// Convert timezone offset to hours.\n\tconst userTimezoneOffset = -1 * ( new Date().getTimezoneOffset() / 60 );\n\n\t// System timezone and user timezone match, nothing needed.\n\t// Compare as numbers because it comes over as string.\n\tif ( Number( timezone.offset ) === userTimezoneOffset ) {\n\t\treturn null;\n\t}\n\n\tconst offsetSymbol = Number( timezone.offset ) >= 0 ? '+' : '';\n\tconst zoneAbbr =\n\t\t'' !== timezone.abbr && isNaN( Number( timezone.abbr ) )\n\t\t\t? timezone.abbr\n\t\t\t: `UTC${ offsetSymbol }${ timezone.offset }`;\n\n\tconst timezoneDetail =\n\t\t'UTC' === timezone.string\n\t\t\t? __( 'Coordinated Universal Time' )\n\t\t\t: `(${ zoneAbbr }) ${ timezone.string.replace( '_', ' ' ) }`;\n\n\treturn (\n\t\t<Tooltip placement=\"top\" text={ timezoneDetail }>\n\t\t\t<StyledComponent className=\"components-datetime__timezone\">\n\t\t\t\t{ zoneAbbr }\n\t\t\t</StyledComponent>\n\t\t</Tooltip>\n\t);\n};\n\nexport default TimeZone;\n"],"mappings":";AAAA;AACA;AACA;AACA,SAASA,EAAE,QAAQ,iBAAiB;AACpC,SAASC,WAAW,IAAIC,eAAe,QAAQ,iBAAiB;;AAEhE;AACA;AACA;AACA,OAAOC,OAAO,MAAM,eAAe;AACnC,SAASC,QAAQ,IAAIC,eAAe,QAAQ,UAAU;;AAEtD;AACA;AACA;AACA;AACA,MAAMD,QAAQ,GAAGA,CAAA,KAAM;EACtB,MAAM;IAAEE;EAAS,CAAC,GAAGJ,eAAe,CAAC,CAAC;;EAEtC;EACA,MAAMK,kBAAkB,GAAG,CAAC,CAAC,IAAK,IAAIC,IAAI,CAAC,CAAC,CAACC,iBAAiB,CAAC,CAAC,GAAG,EAAE,CAAE;;EAEvE;EACA;EACA,IAAKC,MAAM,CAAEJ,QAAQ,CAACK,MAAO,CAAC,KAAKJ,kBAAkB,EAAG;IACvD,OAAO,IAAI;EACZ;EAEA,MAAMK,YAAY,GAAGF,MAAM,CAAEJ,QAAQ,CAACK,MAAO,CAAC,IAAI,CAAC,GAAG,GAAG,GAAG,EAAE;EAC9D,MAAME,QAAQ,GACb,EAAE,KAAKP,QAAQ,CAACQ,IAAI,IAAIC,KAAK,CAAEL,MAAM,CAAEJ,QAAQ,CAACQ,IAAK,CAAE,CAAC,GACrDR,QAAQ,CAACQ,IAAI,GACZ,MAAMF,YAAc,GAAGN,QAAQ,CAACK,MAAQ,EAAC;EAE9C,MAAMK,cAAc,GACnB,KAAK,KAAKV,QAAQ,CAACW,MAAM,GACtBjB,EAAE,CAAE,4BAA6B,CAAC,GACjC,IAAIa,QAAU,KAAKP,QAAQ,CAACW,MAAM,CAACC,OAAO,CAAE,GAAG,EAAE,GAAI,CAAG,EAAC;EAE9D,OACCC,aAAA,CAAChB,OAAO;IAACiB,SAAS,EAAC,KAAK;IAACC,IAAI,EAAGL;EAAgB,GAC/CG,aAAA,CAACd,eAAe;IAACiB,SAAS,EAAC;EAA+B,GACvDT,QACc,CACT,CAAC;AAEZ,CAAC;AAED,eAAeT,QAAQ"}
1
+ {"version":3,"names":["__","getSettings","getDateSettings","Tooltip","TimeZone","StyledComponent","timezone","userTimezoneOffset","Date","getTimezoneOffset","Number","offset","offsetSymbol","zoneAbbr","abbr","isNaN","prettyTimezoneString","string","replace","timezoneDetail","hasNoAdditionalTimezoneDetail","trim","length","createElement","className","placement","text"],"sources":["@wordpress/components/src/date-time/time/timezone.tsx"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\nimport { getSettings as getDateSettings } from '@wordpress/date';\n\n/**\n * Internal dependencies\n */\nimport Tooltip from '../../tooltip';\nimport { TimeZone as StyledComponent } from './styles';\n\n/**\n * Displays timezone information when user timezone is different from site\n * timezone.\n */\nconst TimeZone = () => {\n\tconst { timezone } = getDateSettings();\n\n\t// Convert timezone offset to hours.\n\tconst userTimezoneOffset = -1 * ( new Date().getTimezoneOffset() / 60 );\n\n\t// System timezone and user timezone match, nothing needed.\n\t// Compare as numbers because it comes over as string.\n\tif ( Number( timezone.offset ) === userTimezoneOffset ) {\n\t\treturn null;\n\t}\n\n\tconst offsetSymbol = Number( timezone.offset ) >= 0 ? '+' : '';\n\tconst zoneAbbr =\n\t\t'' !== timezone.abbr && isNaN( Number( timezone.abbr ) )\n\t\t\t? timezone.abbr\n\t\t\t: `UTC${ offsetSymbol }${ timezone.offset }`;\n\n\t// Replace underscore with space in strings like `America/Costa_Rica`.\n\tconst prettyTimezoneString = timezone.string.replace( '_', ' ' );\n\n\tconst timezoneDetail =\n\t\t'UTC' === timezone.string\n\t\t\t? __( 'Coordinated Universal Time' )\n\t\t\t: `(${ zoneAbbr }) ${ prettyTimezoneString }`;\n\n\t// When the prettyTimezoneString is empty, there is no additional timezone\n\t// detail information to show in a Tooltip.\n\tconst hasNoAdditionalTimezoneDetail =\n\t\tprettyTimezoneString.trim().length === 0;\n\n\treturn hasNoAdditionalTimezoneDetail ? (\n\t\t<StyledComponent className=\"components-datetime__timezone\">\n\t\t\t{ zoneAbbr }\n\t\t</StyledComponent>\n\t) : (\n\t\t<Tooltip placement=\"top\" text={ timezoneDetail }>\n\t\t\t<StyledComponent className=\"components-datetime__timezone\">\n\t\t\t\t{ zoneAbbr }\n\t\t\t</StyledComponent>\n\t\t</Tooltip>\n\t);\n};\n\nexport default TimeZone;\n"],"mappings":";AAAA;AACA;AACA;AACA,SAASA,EAAE,QAAQ,iBAAiB;AACpC,SAASC,WAAW,IAAIC,eAAe,QAAQ,iBAAiB;;AAEhE;AACA;AACA;AACA,OAAOC,OAAO,MAAM,eAAe;AACnC,SAASC,QAAQ,IAAIC,eAAe,QAAQ,UAAU;;AAEtD;AACA;AACA;AACA;AACA,MAAMD,QAAQ,GAAGA,CAAA,KAAM;EACtB,MAAM;IAAEE;EAAS,CAAC,GAAGJ,eAAe,CAAC,CAAC;;EAEtC;EACA,MAAMK,kBAAkB,GAAG,CAAC,CAAC,IAAK,IAAIC,IAAI,CAAC,CAAC,CAACC,iBAAiB,CAAC,CAAC,GAAG,EAAE,CAAE;;EAEvE;EACA;EACA,IAAKC,MAAM,CAAEJ,QAAQ,CAACK,MAAO,CAAC,KAAKJ,kBAAkB,EAAG;IACvD,OAAO,IAAI;EACZ;EAEA,MAAMK,YAAY,GAAGF,MAAM,CAAEJ,QAAQ,CAACK,MAAO,CAAC,IAAI,CAAC,GAAG,GAAG,GAAG,EAAE;EAC9D,MAAME,QAAQ,GACb,EAAE,KAAKP,QAAQ,CAACQ,IAAI,IAAIC,KAAK,CAAEL,MAAM,CAAEJ,QAAQ,CAACQ,IAAK,CAAE,CAAC,GACrDR,QAAQ,CAACQ,IAAI,GACZ,MAAMF,YAAc,GAAGN,QAAQ,CAACK,MAAQ,EAAC;;EAE9C;EACA,MAAMK,oBAAoB,GAAGV,QAAQ,CAACW,MAAM,CAACC,OAAO,CAAE,GAAG,EAAE,GAAI,CAAC;EAEhE,MAAMC,cAAc,GACnB,KAAK,KAAKb,QAAQ,CAACW,MAAM,GACtBjB,EAAE,CAAE,4BAA6B,CAAC,GACjC,IAAIa,QAAU,KAAKG,oBAAsB,EAAC;;EAE/C;EACA;EACA,MAAMI,6BAA6B,GAClCJ,oBAAoB,CAACK,IAAI,CAAC,CAAC,CAACC,MAAM,KAAK,CAAC;EAEzC,OAAOF,6BAA6B,GACnCG,aAAA,CAAClB,eAAe;IAACmB,SAAS,EAAC;EAA+B,GACvDX,QACc,CAAC,GAElBU,aAAA,CAACpB,OAAO;IAACsB,SAAS,EAAC,KAAK;IAACC,IAAI,EAAGP;EAAgB,GAC/CI,aAAA,CAAClB,eAAe;IAACmB,SAAS,EAAC;EAA+B,GACvDX,QACc,CACT,CACT;AACF,CAAC;AAED,eAAeT,QAAQ"}
@@ -40,6 +40,7 @@ import sizesTable, { findSizeBySlug } from './sizes';
40
40
  */
41
41
  export function DimensionControl(props) {
42
42
  const {
43
+ __next40pxDefaultSize = false,
43
44
  label,
44
45
  value,
45
46
  sizes = sizesTable,
@@ -72,6 +73,7 @@ export function DimensionControl(props) {
72
73
  icon: icon
73
74
  }), label);
74
75
  return createElement(SelectControl, {
76
+ __next40pxDefaultSize: __next40pxDefaultSize,
75
77
  className: classnames(className, 'block-editor-dimension-control'),
76
78
  label: selectLabel,
77
79
  hideLabelFromVision: false,
@@ -1 +1 @@
1
- {"version":3,"names":["classnames","__","Icon","SelectControl","sizesTable","findSizeBySlug","DimensionControl","props","label","value","sizes","icon","onChange","className","onChangeSpacingSize","val","theSize","slug","undefined","formatSizesAsOptions","theSizes","options","map","name","selectLabel","createElement","Fragment","hideLabelFromVision"],"sources":["@wordpress/components/src/dimension-control/index.tsx"],"sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport Icon from '../icon';\nimport SelectControl from '../select-control';\nimport sizesTable, { findSizeBySlug } from './sizes';\nimport type { DimensionControlProps, Size } from './types';\nimport type { SelectControlSingleSelectionProps } from '../select-control/types';\n\n/**\n * `DimensionControl` is a component designed to provide a UI to control spacing and/or dimensions.\n *\n * This feature is still experimental. “Experimental” means this is an early implementation subject to drastic and breaking changes.\n *\n * ```jsx\n * import { __experimentalDimensionControl as DimensionControl } from '@wordpress/components';\n * import { useState } from '@wordpress/element';\n *\n * export default function MyCustomDimensionControl() {\n * \tconst [ paddingSize, setPaddingSize ] = useState( '' );\n *\n * \treturn (\n * \t\t<DimensionControl\n * \t\t\tlabel={ 'Padding' }\n * \t\t\ticon={ 'desktop' }\n * \t\t\tonChange={ ( value ) => setPaddingSize( value ) }\n * \t\t\tvalue={ paddingSize }\n * \t\t/>\n * \t);\n * }\n * ```\n */\nexport function DimensionControl( props: DimensionControlProps ) {\n\tconst {\n\t\tlabel,\n\t\tvalue,\n\t\tsizes = sizesTable,\n\t\ticon,\n\t\tonChange,\n\t\tclassName = '',\n\t} = props;\n\n\tconst onChangeSpacingSize: SelectControlSingleSelectionProps[ 'onChange' ] =\n\t\t( val ) => {\n\t\t\tconst theSize = findSizeBySlug( sizes, val );\n\n\t\t\tif ( ! theSize || value === theSize.slug ) {\n\t\t\t\tonChange?.( undefined );\n\t\t\t} else if ( typeof onChange === 'function' ) {\n\t\t\t\tonChange( theSize.slug );\n\t\t\t}\n\t\t};\n\n\tconst formatSizesAsOptions = ( theSizes: Size[] ) => {\n\t\tconst options = theSizes.map( ( { name, slug } ) => ( {\n\t\t\tlabel: name,\n\t\t\tvalue: slug,\n\t\t} ) );\n\n\t\treturn [\n\t\t\t{\n\t\t\t\tlabel: __( 'Default' ),\n\t\t\t\tvalue: '',\n\t\t\t},\n\t\t\t...options,\n\t\t];\n\t};\n\n\tconst selectLabel = (\n\t\t<>\n\t\t\t{ icon && <Icon icon={ icon } /> }\n\t\t\t{ label }\n\t\t</>\n\t);\n\n\treturn (\n\t\t<SelectControl\n\t\t\tclassName={ classnames(\n\t\t\t\tclassName,\n\t\t\t\t'block-editor-dimension-control'\n\t\t\t) }\n\t\t\tlabel={ selectLabel }\n\t\t\thideLabelFromVision={ false }\n\t\t\tvalue={ value }\n\t\t\tonChange={ onChangeSpacingSize }\n\t\t\toptions={ formatSizesAsOptions( sizes ) }\n\t\t/>\n\t);\n}\n\nexport default DimensionControl;\n"],"mappings":";AAAA;AACA;AACA;AACA,OAAOA,UAAU,MAAM,YAAY;;AAEnC;AACA;AACA;AACA,SAASC,EAAE,QAAQ,iBAAiB;;AAEpC;AACA;AACA;AACA,OAAOC,IAAI,MAAM,SAAS;AAC1B,OAAOC,aAAa,MAAM,mBAAmB;AAC7C,OAAOC,UAAU,IAAIC,cAAc,QAAQ,SAAS;AAIpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,gBAAgBA,CAAEC,KAA4B,EAAG;EAChE,MAAM;IACLC,KAAK;IACLC,KAAK;IACLC,KAAK,GAAGN,UAAU;IAClBO,IAAI;IACJC,QAAQ;IACRC,SAAS,GAAG;EACb,CAAC,GAAGN,KAAK;EAET,MAAMO,mBAAoE,GACvEC,GAAG,IAAM;IACV,MAAMC,OAAO,GAAGX,cAAc,CAAEK,KAAK,EAAEK,GAAI,CAAC;IAE5C,IAAK,CAAEC,OAAO,IAAIP,KAAK,KAAKO,OAAO,CAACC,IAAI,EAAG;MAC1CL,QAAQ,GAAIM,SAAU,CAAC;IACxB,CAAC,MAAM,IAAK,OAAON,QAAQ,KAAK,UAAU,EAAG;MAC5CA,QAAQ,CAAEI,OAAO,CAACC,IAAK,CAAC;IACzB;EACD,CAAC;EAEF,MAAME,oBAAoB,GAAKC,QAAgB,IAAM;IACpD,MAAMC,OAAO,GAAGD,QAAQ,CAACE,GAAG,CAAE,CAAE;MAAEC,IAAI;MAAEN;IAAK,CAAC,MAAQ;MACrDT,KAAK,EAAEe,IAAI;MACXd,KAAK,EAAEQ;IACR,CAAC,CAAG,CAAC;IAEL,OAAO,CACN;MACCT,KAAK,EAAEP,EAAE,CAAE,SAAU,CAAC;MACtBQ,KAAK,EAAE;IACR,CAAC,EACD,GAAGY,OAAO,CACV;EACF,CAAC;EAED,MAAMG,WAAW,GAChBC,aAAA,CAAAC,QAAA,QACGf,IAAI,IAAIc,aAAA,CAACvB,IAAI;IAACS,IAAI,EAAGA;EAAM,CAAE,CAAC,EAC9BH,KACD,CACF;EAED,OACCiB,aAAA,CAACtB,aAAa;IACbU,SAAS,EAAGb,UAAU,CACrBa,SAAS,EACT,gCACD,CAAG;IACHL,KAAK,EAAGgB,WAAa;IACrBG,mBAAmB,EAAG,KAAO;IAC7BlB,KAAK,EAAGA,KAAO;IACfG,QAAQ,EAAGE,mBAAqB;IAChCO,OAAO,EAAGF,oBAAoB,CAAET,KAAM;EAAG,CACzC,CAAC;AAEJ;AAEA,eAAeJ,gBAAgB"}
1
+ {"version":3,"names":["classnames","__","Icon","SelectControl","sizesTable","findSizeBySlug","DimensionControl","props","__next40pxDefaultSize","label","value","sizes","icon","onChange","className","onChangeSpacingSize","val","theSize","slug","undefined","formatSizesAsOptions","theSizes","options","map","name","selectLabel","createElement","Fragment","hideLabelFromVision"],"sources":["@wordpress/components/src/dimension-control/index.tsx"],"sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport Icon from '../icon';\nimport SelectControl from '../select-control';\nimport sizesTable, { findSizeBySlug } from './sizes';\nimport type { DimensionControlProps, Size } from './types';\nimport type { SelectControlSingleSelectionProps } from '../select-control/types';\n\n/**\n * `DimensionControl` is a component designed to provide a UI to control spacing and/or dimensions.\n *\n * This feature is still experimental. “Experimental” means this is an early implementation subject to drastic and breaking changes.\n *\n * ```jsx\n * import { __experimentalDimensionControl as DimensionControl } from '@wordpress/components';\n * import { useState } from '@wordpress/element';\n *\n * export default function MyCustomDimensionControl() {\n * \tconst [ paddingSize, setPaddingSize ] = useState( '' );\n *\n * \treturn (\n * \t\t<DimensionControl\n * \t\t\tlabel={ 'Padding' }\n * \t\t\ticon={ 'desktop' }\n * \t\t\tonChange={ ( value ) => setPaddingSize( value ) }\n * \t\t\tvalue={ paddingSize }\n * \t\t/>\n * \t);\n * }\n * ```\n */\nexport function DimensionControl( props: DimensionControlProps ) {\n\tconst {\n\t\t__next40pxDefaultSize = false,\n\t\tlabel,\n\t\tvalue,\n\t\tsizes = sizesTable,\n\t\ticon,\n\t\tonChange,\n\t\tclassName = '',\n\t} = props;\n\n\tconst onChangeSpacingSize: SelectControlSingleSelectionProps[ 'onChange' ] =\n\t\t( val ) => {\n\t\t\tconst theSize = findSizeBySlug( sizes, val );\n\n\t\t\tif ( ! theSize || value === theSize.slug ) {\n\t\t\t\tonChange?.( undefined );\n\t\t\t} else if ( typeof onChange === 'function' ) {\n\t\t\t\tonChange( theSize.slug );\n\t\t\t}\n\t\t};\n\n\tconst formatSizesAsOptions = ( theSizes: Size[] ) => {\n\t\tconst options = theSizes.map( ( { name, slug } ) => ( {\n\t\t\tlabel: name,\n\t\t\tvalue: slug,\n\t\t} ) );\n\n\t\treturn [\n\t\t\t{\n\t\t\t\tlabel: __( 'Default' ),\n\t\t\t\tvalue: '',\n\t\t\t},\n\t\t\t...options,\n\t\t];\n\t};\n\n\tconst selectLabel = (\n\t\t<>\n\t\t\t{ icon && <Icon icon={ icon } /> }\n\t\t\t{ label }\n\t\t</>\n\t);\n\n\treturn (\n\t\t<SelectControl\n\t\t\t__next40pxDefaultSize={ __next40pxDefaultSize }\n\t\t\tclassName={ classnames(\n\t\t\t\tclassName,\n\t\t\t\t'block-editor-dimension-control'\n\t\t\t) }\n\t\t\tlabel={ selectLabel }\n\t\t\thideLabelFromVision={ false }\n\t\t\tvalue={ value }\n\t\t\tonChange={ onChangeSpacingSize }\n\t\t\toptions={ formatSizesAsOptions( sizes ) }\n\t\t/>\n\t);\n}\n\nexport default DimensionControl;\n"],"mappings":";AAAA;AACA;AACA;AACA,OAAOA,UAAU,MAAM,YAAY;;AAEnC;AACA;AACA;AACA,SAASC,EAAE,QAAQ,iBAAiB;;AAEpC;AACA;AACA;AACA,OAAOC,IAAI,MAAM,SAAS;AAC1B,OAAOC,aAAa,MAAM,mBAAmB;AAC7C,OAAOC,UAAU,IAAIC,cAAc,QAAQ,SAAS;AAIpD;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA,OAAO,SAASC,gBAAgBA,CAAEC,KAA4B,EAAG;EAChE,MAAM;IACLC,qBAAqB,GAAG,KAAK;IAC7BC,KAAK;IACLC,KAAK;IACLC,KAAK,GAAGP,UAAU;IAClBQ,IAAI;IACJC,QAAQ;IACRC,SAAS,GAAG;EACb,CAAC,GAAGP,KAAK;EAET,MAAMQ,mBAAoE,GACvEC,GAAG,IAAM;IACV,MAAMC,OAAO,GAAGZ,cAAc,CAAEM,KAAK,EAAEK,GAAI,CAAC;IAE5C,IAAK,CAAEC,OAAO,IAAIP,KAAK,KAAKO,OAAO,CAACC,IAAI,EAAG;MAC1CL,QAAQ,GAAIM,SAAU,CAAC;IACxB,CAAC,MAAM,IAAK,OAAON,QAAQ,KAAK,UAAU,EAAG;MAC5CA,QAAQ,CAAEI,OAAO,CAACC,IAAK,CAAC;IACzB;EACD,CAAC;EAEF,MAAME,oBAAoB,GAAKC,QAAgB,IAAM;IACpD,MAAMC,OAAO,GAAGD,QAAQ,CAACE,GAAG,CAAE,CAAE;MAAEC,IAAI;MAAEN;IAAK,CAAC,MAAQ;MACrDT,KAAK,EAAEe,IAAI;MACXd,KAAK,EAAEQ;IACR,CAAC,CAAG,CAAC;IAEL,OAAO,CACN;MACCT,KAAK,EAAER,EAAE,CAAE,SAAU,CAAC;MACtBS,KAAK,EAAE;IACR,CAAC,EACD,GAAGY,OAAO,CACV;EACF,CAAC;EAED,MAAMG,WAAW,GAChBC,aAAA,CAAAC,QAAA,QACGf,IAAI,IAAIc,aAAA,CAACxB,IAAI;IAACU,IAAI,EAAGA;EAAM,CAAE,CAAC,EAC9BH,KACD,CACF;EAED,OACCiB,aAAA,CAACvB,aAAa;IACbK,qBAAqB,EAAGA,qBAAuB;IAC/CM,SAAS,EAAGd,UAAU,CACrBc,SAAS,EACT,gCACD,CAAG;IACHL,KAAK,EAAGgB,WAAa;IACrBG,mBAAmB,EAAG,KAAO;IAC7BlB,KAAK,EAAGA,KAAO;IACfG,QAAQ,EAAGE,mBAAqB;IAChCO,OAAO,EAAGF,oBAAoB,CAAET,KAAM;EAAG,CACzC,CAAC;AAEJ;AAEA,eAAeL,gBAAgB"}
@@ -1 +1 @@
1
- {"version":3,"names":[],"sources":["@wordpress/components/src/dimension-control/types.ts"],"sourcesContent":["/**\n * Internal dependencies\n */\nimport type { IconType } from '../icon';\n\nexport type Size = {\n\t/**\n\t * Human-readable name of the size.\n\t */\n\tname: string;\n\t/**\n\t * Short unique identifying name of the size.\n\t */\n\tslug: string;\n};\n\nexport type DimensionControlProps = {\n\t/**\n\t * Label for the control.\n\t */\n\tlabel: string;\n\t/**\n\t * An array of sizes to choose from.\n\t *\n\t * @default DEFAULT_SIZES\n\t *\n\t * @see packages/components/src/dimension-control/sizes.ts\n\t */\n\tsizes?: Size[];\n\t/**\n\t * Optional icon rendered in front on the label.\n\t */\n\ticon?: IconType;\n\t/**\n\t * Used to externally control the current value of the control.\n\t */\n\tvalue?: string;\n\t/**\n\t * Function called with the control's internal state changes. The `value` property is equal to a given size slug.\n\t */\n\tonChange?: ( value?: string ) => void;\n\t/**\n\t * CSS class applied to `SelectControl`.\n\t *\n\t * @default ''\n\t */\n\tclassName?: string;\n};\n"],"mappings":""}
1
+ {"version":3,"names":[],"sources":["@wordpress/components/src/dimension-control/types.ts"],"sourcesContent":["/**\n * Internal dependencies\n */\nimport type { IconType } from '../icon';\n\nexport type Size = {\n\t/**\n\t * Human-readable name of the size.\n\t */\n\tname: string;\n\t/**\n\t * Short unique identifying name of the size.\n\t */\n\tslug: string;\n};\n\nexport type DimensionControlProps = {\n\t/**\n\t * Label for the control.\n\t */\n\tlabel: string;\n\t/**\n\t * An array of sizes to choose from.\n\t *\n\t * @default DEFAULT_SIZES\n\t *\n\t * @see packages/components/src/dimension-control/sizes.ts\n\t */\n\tsizes?: Size[];\n\t/**\n\t * Optional icon rendered in front on the label.\n\t */\n\ticon?: IconType;\n\t/**\n\t * Used to externally control the current value of the control.\n\t */\n\tvalue?: string;\n\t/**\n\t * Function called with the control's internal state changes. The `value` property is equal to a given size slug.\n\t */\n\tonChange?: ( value?: string ) => void;\n\t/**\n\t * CSS class applied to `SelectControl`.\n\t *\n\t * @default ''\n\t */\n\tclassName?: string;\n\t/**\n\t * Start opting into the larger default height that will become the default size in a future version.\n\t *\n\t * @default false\n\t */\n\t__next40pxDefaultSize?: boolean;\n};\n"],"mappings":""}
@@ -2,189 +2,236 @@ import { createElement, Fragment } from "react";
2
2
  /**
3
3
  * External dependencies
4
4
  */
5
- import * as DropdownMenuPrimitive from '@radix-ui/react-dropdown-menu';
5
+ // eslint-disable-next-line no-restricted-imports
6
+ import * as Ariakit from '@ariakit/react';
6
7
 
7
8
  /**
8
9
  * WordPress dependencies
9
10
  */
10
- import { forwardRef, createContext, useContext, useMemo } from '@wordpress/element';
11
+ import { forwardRef, createContext, useContext, useMemo, cloneElement, isValidElement, useCallback } from '@wordpress/element';
11
12
  import { isRTL } from '@wordpress/i18n';
12
- import { check, chevronRightSmall, lineSolid } from '@wordpress/icons';
13
+ import { check, chevronRightSmall } from '@wordpress/icons';
13
14
  import { SVG, Circle } from '@wordpress/primitives';
14
15
 
15
16
  /**
16
17
  * Internal dependencies
17
18
  */
18
- import { useContextSystem, contextConnectWithoutRef } from '../context';
19
- import { useSlot } from '../slot-fill';
19
+ import { useContextSystem, contextConnect } from '../context';
20
20
  import Icon from '../icon';
21
- import { SLOT_NAME as POPOVER_DEFAULT_SLOT_NAME } from '../popover';
22
- import * as DropdownMenuStyled from './styles';
23
- // Menu content's side padding + 4px
24
- const SUB_MENU_OFFSET_SIDE = 16;
25
- // Opposite amount of the top padding of the menu item
26
- const SUB_MENU_OFFSET_ALIGN = -8;
27
- const DropdownMenuPrivateContext = createContext({
28
- variant: undefined,
29
- portalContainer: null
30
- });
31
- const UnconnectedDropdownMenu = props => {
32
- const {
33
- // Root props
34
- defaultOpen,
35
- open,
36
- onOpenChange,
37
- modal = true,
38
- // Content positioning props
39
- side = 'bottom',
40
- sideOffset = 0,
41
- align = 'center',
42
- alignOffset = 0,
43
- // Render props
44
- children,
45
- trigger,
46
- // From internal components context
47
- variant
48
- } = useContextSystem(props, 'DropdownMenu');
49
-
50
- // Render the portal in the default slot used by the legacy Popover component.
51
- const slot = useSlot(POPOVER_DEFAULT_SLOT_NAME);
52
- const portalContainer = slot.ref?.current;
53
- const privateContextValue = useMemo(() => ({
54
- variant,
55
- portalContainer
56
- }), [variant, portalContainer]);
57
- return createElement(DropdownMenuPrimitive.Root, {
58
- defaultOpen: defaultOpen,
59
- open: open,
60
- onOpenChange: onOpenChange,
61
- modal: modal,
62
- dir: isRTL() ? 'rtl' : 'ltr'
63
- }, createElement(DropdownMenuPrimitive.Trigger, {
64
- asChild: true
65
- }, trigger), createElement(DropdownMenuPrimitive.Portal, {
66
- container: portalContainer
67
- }, createElement(DropdownMenuStyled.Content, {
68
- side: side,
69
- align: align,
70
- sideOffset: sideOffset,
71
- alignOffset: alignOffset,
72
- loop: true,
73
- variant: variant
74
- }, createElement(DropdownMenuPrivateContext.Provider, {
75
- value: privateContextValue
76
- }, children))));
77
- };
78
-
79
- /**
80
- * `DropdownMenu` displays a menu to the user (such as a set of actions
81
- * or functions) triggered by a button.
82
- */
83
- export const DropdownMenu = contextConnectWithoutRef(UnconnectedDropdownMenu, 'DropdownMenu');
84
- export const DropdownSubMenuTrigger = ({
85
- prefix,
86
- suffix = createElement(DropdownMenuStyled.SubmenuRtlChevronIcon, {
87
- icon: chevronRightSmall,
88
- size: 24
89
- }),
90
- children
91
- }) => {
92
- return createElement(Fragment, null, prefix && createElement(DropdownMenuStyled.ItemPrefixWrapper, null, prefix), children, suffix && createElement(DropdownMenuStyled.ItemSuffixWrapper, null, suffix));
93
- };
94
- export const DropdownSubMenu = ({
95
- // Sub props
96
- defaultOpen,
97
- open,
98
- onOpenChange,
99
- // Sub trigger props
100
- disabled,
101
- textValue,
102
- // Render props
103
- children,
104
- trigger
105
- }) => {
106
- const {
107
- variant,
108
- portalContainer
109
- } = useContext(DropdownMenuPrivateContext);
110
- return createElement(DropdownMenuPrimitive.Sub, {
111
- defaultOpen: defaultOpen,
112
- open: open,
113
- onOpenChange: onOpenChange
114
- }, createElement(DropdownMenuStyled.SubTrigger, {
115
- disabled: disabled,
116
- textValue: textValue
117
- }, trigger), createElement(DropdownMenuPrimitive.Portal, {
118
- container: portalContainer
119
- }, createElement(DropdownMenuStyled.SubContent, {
120
- loop: true,
121
- sideOffset: SUB_MENU_OFFSET_SIDE,
122
- alignOffset: SUB_MENU_OFFSET_ALIGN,
123
- variant: variant
124
- }, children)));
125
- };
126
- export const DropdownMenuLabel = props => createElement(DropdownMenuStyled.Label, {
127
- ...props
128
- });
129
- export const DropdownMenuGroup = props => createElement(DropdownMenuPrimitive.Group, {
130
- ...props
131
- });
132
- export const DropdownMenuItem = forwardRef(({
133
- children,
21
+ import * as Styled from './styles';
22
+ export const DropdownMenuContext = createContext(undefined);
23
+ export const DropdownMenuItem = forwardRef(function DropdownMenuItem({
134
24
  prefix,
135
25
  suffix,
26
+ children,
27
+ hideOnClick = true,
136
28
  ...props
137
- }, forwardedRef) => {
138
- return createElement(DropdownMenuStyled.Item, {
29
+ }, ref) {
30
+ const dropdownMenuContext = useContext(DropdownMenuContext);
31
+ return createElement(Styled.DropdownMenuItem, {
32
+ ref: ref,
139
33
  ...props,
140
- ref: forwardedRef
141
- }, prefix && createElement(DropdownMenuStyled.ItemPrefixWrapper, null, prefix), children, suffix && createElement(DropdownMenuStyled.ItemSuffixWrapper, null, suffix));
34
+ accessibleWhenDisabled: true,
35
+ hideOnClick: hideOnClick,
36
+ store: dropdownMenuContext?.store
37
+ }, createElement(Styled.ItemPrefixWrapper, null, prefix), createElement(Styled.DropdownMenuItemContentWrapper, null, createElement(Styled.DropdownMenuItemChildrenWrapper, null, children), suffix && createElement(Styled.ItemSuffixWrapper, null, suffix)));
142
38
  });
143
- export const DropdownMenuCheckboxItem = ({
144
- children,
145
- checked = false,
39
+ export const DropdownMenuCheckboxItem = forwardRef(function DropdownMenuCheckboxItem({
146
40
  suffix,
41
+ children,
42
+ hideOnClick = false,
147
43
  ...props
148
- }) => {
149
- return createElement(DropdownMenuStyled.CheckboxItem, {
44
+ }, ref) {
45
+ const dropdownMenuContext = useContext(DropdownMenuContext);
46
+ return createElement(Styled.DropdownMenuCheckboxItem, {
47
+ ref: ref,
150
48
  ...props,
151
- checked: checked
152
- }, createElement(DropdownMenuStyled.ItemPrefixWrapper, null, createElement(DropdownMenuStyled.ItemIndicator, null, (checked === 'indeterminate' || checked === true) && createElement(Icon, {
153
- icon: checked === 'indeterminate' ? lineSolid : check,
49
+ accessibleWhenDisabled: true,
50
+ hideOnClick: hideOnClick,
51
+ store: dropdownMenuContext?.store
52
+ }, createElement(Ariakit.MenuItemCheck, {
53
+ store: dropdownMenuContext?.store,
54
+ render: createElement(Styled.ItemPrefixWrapper, null)
55
+ // Override some ariakit inline styles
56
+ ,
57
+ style: {
58
+ width: 'auto',
59
+ height: 'auto'
60
+ }
61
+ }, createElement(Icon, {
62
+ icon: check,
154
63
  size: 24
155
- }))), children, suffix && createElement(DropdownMenuStyled.ItemSuffixWrapper, null, suffix));
156
- };
157
- export const DropdownMenuRadioGroup = props => createElement(DropdownMenuPrimitive.RadioGroup, {
158
- ...props
64
+ })), createElement(Styled.DropdownMenuItemContentWrapper, null, createElement(Styled.DropdownMenuItemChildrenWrapper, null, children), suffix && createElement(Styled.ItemSuffixWrapper, null, suffix)));
159
65
  });
160
- const radioDot = createElement(SVG, {
161
- viewBox: "0 0 24 24",
162
- xmlns: "http://www.w3.org/2000/svg"
66
+ const radioCheck = createElement(SVG, {
67
+ xmlns: "http://www.w3.org/2000/svg",
68
+ viewBox: "0 0 24 24"
163
69
  }, createElement(Circle, {
164
70
  cx: 12,
165
71
  cy: 12,
166
- r: 3,
167
- fill: "currentColor"
72
+ r: 3
168
73
  }));
169
- export const DropdownMenuRadioItem = ({
170
- children,
74
+ export const DropdownMenuRadioItem = forwardRef(function DropdownMenuRadioItem({
171
75
  suffix,
76
+ children,
77
+ hideOnClick = false,
172
78
  ...props
173
- }) => {
174
- return createElement(DropdownMenuStyled.RadioItem, {
175
- ...props
176
- }, createElement(DropdownMenuStyled.ItemPrefixWrapper, null, createElement(DropdownMenuStyled.ItemIndicator, null, createElement(Icon, {
177
- icon: radioDot,
178
- size: 22
179
- }))), children, suffix && createElement(DropdownMenuStyled.ItemSuffixWrapper, null, suffix));
180
- };
181
- export const DropdownMenuSeparator = props => {
79
+ }, ref) {
80
+ const dropdownMenuContext = useContext(DropdownMenuContext);
81
+ return createElement(Styled.DropdownMenuRadioItem, {
82
+ ref: ref,
83
+ ...props,
84
+ accessibleWhenDisabled: true,
85
+ hideOnClick: hideOnClick,
86
+ store: dropdownMenuContext?.store
87
+ }, createElement(Ariakit.MenuItemCheck, {
88
+ store: dropdownMenuContext?.store,
89
+ render: createElement(Styled.ItemPrefixWrapper, null)
90
+ // Override some ariakit inline styles
91
+ ,
92
+ style: {
93
+ width: 'auto',
94
+ height: 'auto'
95
+ }
96
+ }, createElement(Icon, {
97
+ icon: radioCheck,
98
+ size: 24
99
+ })), createElement(Styled.DropdownMenuItemContentWrapper, null, createElement(Styled.DropdownMenuItemChildrenWrapper, null, children), suffix && createElement(Styled.ItemSuffixWrapper, null, suffix)));
100
+ });
101
+ export const DropdownMenuGroup = forwardRef(function DropdownMenuGroup(props, ref) {
102
+ const dropdownMenuContext = useContext(DropdownMenuContext);
103
+ return createElement(Styled.DropdownMenuGroup, {
104
+ ref: ref,
105
+ ...props,
106
+ store: dropdownMenuContext?.store
107
+ });
108
+ });
109
+ const UnconnectedDropdownMenu = (props, ref) => {
110
+ var _props$placement;
182
111
  const {
112
+ // Store props
113
+ open,
114
+ defaultOpen = false,
115
+ onOpenChange,
116
+ placement,
117
+ // Menu trigger props
118
+ trigger,
119
+ // Menu props
120
+ gutter,
121
+ children,
122
+ shift,
123
+ modal = true,
124
+ // From internal components context
125
+ variant,
126
+ // Rest
127
+ ...otherProps
128
+ } = useContextSystem(props, 'DropdownMenu');
129
+ const parentContext = useContext(DropdownMenuContext);
130
+ const computedDirection = isRTL() ? 'rtl' : 'ltr';
131
+
132
+ // If an explicit value for the `placement` prop is not passed,
133
+ // apply a default placement of `bottom-start` for the root dropdown,
134
+ // and of `right-start` for nested dropdowns.
135
+ let computedPlacement = (_props$placement = props.placement) !== null && _props$placement !== void 0 ? _props$placement : parentContext?.store ? 'right-start' : 'bottom-start';
136
+ // Swap left/right in case of RTL direction
137
+ if (computedDirection === 'rtl') {
138
+ if (/right/.test(computedPlacement)) {
139
+ computedPlacement = computedPlacement.replace('right', 'left');
140
+ } else if (/left/.test(computedPlacement)) {
141
+ computedPlacement = computedPlacement.replace('left', 'right');
142
+ }
143
+ }
144
+ const dropdownMenuStore = Ariakit.useMenuStore({
145
+ parent: parentContext?.store,
146
+ open,
147
+ defaultOpen,
148
+ placement: computedPlacement,
149
+ focusLoop: true,
150
+ setOpen(willBeOpen) {
151
+ onOpenChange?.(willBeOpen);
152
+ },
153
+ rtl: computedDirection === 'rtl'
154
+ });
155
+ const contextValue = useMemo(() => ({
156
+ store: dropdownMenuStore,
183
157
  variant
184
- } = useContext(DropdownMenuPrivateContext);
185
- return createElement(DropdownMenuStyled.Separator, {
158
+ }), [dropdownMenuStore, variant]);
159
+
160
+ // Extract the side from the applied placement — useful for animations.
161
+ const appliedPlacementSide = dropdownMenuStore.useState('placement').split('-')[0];
162
+ if (dropdownMenuStore.parent && !(isValidElement(trigger) && DropdownMenuItem === trigger.type)) {
163
+ // eslint-disable-next-line no-console
164
+ console.warn('For nested DropdownMenus, the `trigger` should always be a `DropdownMenuItem`.');
165
+ }
166
+ const hideOnEscape = useCallback(event => {
167
+ // Pressing Escape can cause unexpected consequences (ie. exiting
168
+ // full screen mode on MacOs, close parent modals...).
169
+ event.preventDefault();
170
+ // Returning `true` causes the menu to hide.
171
+ return true;
172
+ }, []);
173
+ const wrapperProps = useMemo(() => ({
174
+ dir: computedDirection,
175
+ style: {
176
+ direction: computedDirection
177
+ }
178
+ }), [computedDirection]);
179
+ return createElement(Fragment, null, createElement(Ariakit.MenuButton, {
180
+ ref: ref,
181
+ store: dropdownMenuStore,
182
+ render: dropdownMenuStore.parent ? cloneElement(trigger, {
183
+ // Add submenu arrow, unless a `suffix` is explicitly specified
184
+ suffix: createElement(Fragment, null, trigger.props.suffix, createElement(Styled.SubmenuChevronIcon, {
185
+ "aria-hidden": "true",
186
+ icon: chevronRightSmall,
187
+ size: 24,
188
+ preserveAspectRatio: "xMidYMid slice"
189
+ }))
190
+ }) : trigger
191
+ }), createElement(Styled.DropdownMenu, {
192
+ ...otherProps,
193
+ modal: modal,
194
+ store: dropdownMenuStore
195
+ // Root menu has an 8px distance from its trigger,
196
+ // otherwise 0 (which causes the submenu to slightly overlap)
197
+ ,
198
+ gutter: gutter !== null && gutter !== void 0 ? gutter : dropdownMenuStore.parent ? 0 : 8
199
+ // Align nested menu by the same (but opposite) amount
200
+ // as the menu container's padding.
201
+ ,
202
+ shift: shift !== null && shift !== void 0 ? shift : dropdownMenuStore.parent ? -4 : 0,
203
+ hideOnHoverOutside: false,
204
+ "data-side": appliedPlacementSide,
205
+ variant: variant,
206
+ wrapperProps: wrapperProps,
207
+ hideOnEscape: hideOnEscape,
208
+ unmountOnHide: true
209
+ }, createElement(DropdownMenuContext.Provider, {
210
+ value: contextValue
211
+ }, children)));
212
+ };
213
+ export const DropdownMenu = contextConnect(UnconnectedDropdownMenu, 'DropdownMenu');
214
+ export const DropdownMenuSeparator = forwardRef(function DropdownMenuSeparator(props, ref) {
215
+ const dropdownMenuContext = useContext(DropdownMenuContext);
216
+ return createElement(Styled.DropdownMenuSeparator, {
217
+ ref: ref,
186
218
  ...props,
187
- variant: variant
219
+ store: dropdownMenuContext?.store,
220
+ variant: dropdownMenuContext?.variant
188
221
  });
189
- };
222
+ });
223
+ export const DropdownMenuItemLabel = forwardRef(function DropdownMenuItemLabel(props, ref) {
224
+ return createElement(Styled.DropdownMenuItemLabel, {
225
+ numberOfLines: 1,
226
+ ref: ref,
227
+ ...props
228
+ });
229
+ });
230
+ export const DropdownMenuItemHelpText = forwardRef(function DropdownMenuItemHelpText(props, ref) {
231
+ return createElement(Styled.DropdownMenuItemHelpText, {
232
+ numberOfLines: 2,
233
+ ref: ref,
234
+ ...props
235
+ });
236
+ });
190
237
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"names":["DropdownMenuPrimitive","forwardRef","createContext","useContext","useMemo","isRTL","check","chevronRightSmall","lineSolid","SVG","Circle","useContextSystem","contextConnectWithoutRef","useSlot","Icon","SLOT_NAME","POPOVER_DEFAULT_SLOT_NAME","DropdownMenuStyled","SUB_MENU_OFFSET_SIDE","SUB_MENU_OFFSET_ALIGN","DropdownMenuPrivateContext","variant","undefined","portalContainer","UnconnectedDropdownMenu","props","defaultOpen","open","onOpenChange","modal","side","sideOffset","align","alignOffset","children","trigger","slot","ref","current","privateContextValue","createElement","Root","dir","Trigger","asChild","Portal","container","Content","loop","Provider","value","DropdownMenu","DropdownSubMenuTrigger","prefix","suffix","SubmenuRtlChevronIcon","icon","size","Fragment","ItemPrefixWrapper","ItemSuffixWrapper","DropdownSubMenu","disabled","textValue","Sub","SubTrigger","SubContent","DropdownMenuLabel","Label","DropdownMenuGroup","Group","DropdownMenuItem","forwardedRef","Item","DropdownMenuCheckboxItem","checked","CheckboxItem","ItemIndicator","DropdownMenuRadioGroup","RadioGroup","radioDot","viewBox","xmlns","cx","cy","r","fill","DropdownMenuRadioItem","RadioItem","DropdownMenuSeparator","Separator"],"sources":["@wordpress/components/src/dropdown-menu-v2/index.tsx"],"sourcesContent":["/**\n * External dependencies\n */\nimport * as DropdownMenuPrimitive from '@radix-ui/react-dropdown-menu';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tforwardRef,\n\tcreateContext,\n\tuseContext,\n\tuseMemo,\n} from '@wordpress/element';\nimport { isRTL } from '@wordpress/i18n';\nimport { check, chevronRightSmall, lineSolid } from '@wordpress/icons';\nimport { SVG, Circle } from '@wordpress/primitives';\n\n/**\n * Internal dependencies\n */\nimport { useContextSystem, contextConnectWithoutRef } from '../context';\nimport { useSlot } from '../slot-fill';\nimport Icon from '../icon';\nimport { SLOT_NAME as POPOVER_DEFAULT_SLOT_NAME } from '../popover';\nimport * as DropdownMenuStyled from './styles';\nimport type {\n\tDropdownMenuProps,\n\tDropdownSubMenuProps,\n\tDropdownMenuItemProps,\n\tDropdownMenuLabelProps,\n\tDropdownMenuGroupProps,\n\tDropdownMenuCheckboxItemProps,\n\tDropdownMenuRadioGroupProps,\n\tDropdownMenuRadioItemProps,\n\tDropdownMenuSeparatorProps,\n\tDropdownSubMenuTriggerProps,\n\tDropdownMenuInternalContext,\n\tDropdownMenuPrivateContext as DropdownMenuPrivateContextType,\n} from './types';\n\n// Menu content's side padding + 4px\nconst SUB_MENU_OFFSET_SIDE = 16;\n// Opposite amount of the top padding of the menu item\nconst SUB_MENU_OFFSET_ALIGN = -8;\n\nconst DropdownMenuPrivateContext =\n\tcreateContext< DropdownMenuPrivateContextType >( {\n\t\tvariant: undefined,\n\t\tportalContainer: null,\n\t} );\n\nconst UnconnectedDropdownMenu = ( props: DropdownMenuProps ) => {\n\tconst {\n\t\t// Root props\n\t\tdefaultOpen,\n\t\topen,\n\t\tonOpenChange,\n\t\tmodal = true,\n\t\t// Content positioning props\n\t\tside = 'bottom',\n\t\tsideOffset = 0,\n\t\talign = 'center',\n\t\talignOffset = 0,\n\t\t// Render props\n\t\tchildren,\n\t\ttrigger,\n\n\t\t// From internal components context\n\t\tvariant,\n\t} = useContextSystem<\n\t\t// Adding `className` to the context type to avoid a TS error\n\t\tDropdownMenuProps & DropdownMenuInternalContext & { className?: string }\n\t>( props, 'DropdownMenu' );\n\n\t// Render the portal in the default slot used by the legacy Popover component.\n\tconst slot = useSlot( POPOVER_DEFAULT_SLOT_NAME );\n\tconst portalContainer = slot.ref?.current;\n\n\tconst privateContextValue = useMemo(\n\t\t() => ( {\n\t\t\tvariant,\n\t\t\tportalContainer,\n\t\t} ),\n\t\t[ variant, portalContainer ]\n\t);\n\n\treturn (\n\t\t<DropdownMenuPrimitive.Root\n\t\t\tdefaultOpen={ defaultOpen }\n\t\t\topen={ open }\n\t\t\tonOpenChange={ onOpenChange }\n\t\t\tmodal={ modal }\n\t\t\tdir={ isRTL() ? 'rtl' : 'ltr' }\n\t\t>\n\t\t\t<DropdownMenuPrimitive.Trigger asChild>\n\t\t\t\t{ trigger }\n\t\t\t</DropdownMenuPrimitive.Trigger>\n\t\t\t<DropdownMenuPrimitive.Portal container={ portalContainer }>\n\t\t\t\t<DropdownMenuStyled.Content\n\t\t\t\t\tside={ side }\n\t\t\t\t\talign={ align }\n\t\t\t\t\tsideOffset={ sideOffset }\n\t\t\t\t\talignOffset={ alignOffset }\n\t\t\t\t\tloop={ true }\n\t\t\t\t\tvariant={ variant }\n\t\t\t\t>\n\t\t\t\t\t<DropdownMenuPrivateContext.Provider\n\t\t\t\t\t\tvalue={ privateContextValue }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ children }\n\t\t\t\t\t</DropdownMenuPrivateContext.Provider>\n\t\t\t\t</DropdownMenuStyled.Content>\n\t\t\t</DropdownMenuPrimitive.Portal>\n\t\t</DropdownMenuPrimitive.Root>\n\t);\n};\n\n/**\n * `DropdownMenu` displays a menu to the user (such as a set of actions\n * or functions) triggered by a button.\n */\nexport const DropdownMenu = contextConnectWithoutRef(\n\tUnconnectedDropdownMenu,\n\t'DropdownMenu'\n);\n\nexport const DropdownSubMenuTrigger = ( {\n\tprefix,\n\tsuffix = (\n\t\t<DropdownMenuStyled.SubmenuRtlChevronIcon\n\t\t\ticon={ chevronRightSmall }\n\t\t\tsize={ 24 }\n\t\t/>\n\t),\n\tchildren,\n}: DropdownSubMenuTriggerProps ) => {\n\treturn (\n\t\t<>\n\t\t\t{ prefix && (\n\t\t\t\t<DropdownMenuStyled.ItemPrefixWrapper>\n\t\t\t\t\t{ prefix }\n\t\t\t\t</DropdownMenuStyled.ItemPrefixWrapper>\n\t\t\t) }\n\t\t\t{ children }\n\t\t\t{ suffix && (\n\t\t\t\t<DropdownMenuStyled.ItemSuffixWrapper>\n\t\t\t\t\t{ suffix }\n\t\t\t\t</DropdownMenuStyled.ItemSuffixWrapper>\n\t\t\t) }\n\t\t</>\n\t);\n};\n\nexport const DropdownSubMenu = ( {\n\t// Sub props\n\tdefaultOpen,\n\topen,\n\tonOpenChange,\n\t// Sub trigger props\n\tdisabled,\n\ttextValue,\n\t// Render props\n\tchildren,\n\ttrigger,\n}: DropdownSubMenuProps ) => {\n\tconst { variant, portalContainer } = useContext(\n\t\tDropdownMenuPrivateContext\n\t);\n\n\treturn (\n\t\t<DropdownMenuPrimitive.Sub\n\t\t\tdefaultOpen={ defaultOpen }\n\t\t\topen={ open }\n\t\t\tonOpenChange={ onOpenChange }\n\t\t>\n\t\t\t<DropdownMenuStyled.SubTrigger\n\t\t\t\tdisabled={ disabled }\n\t\t\t\ttextValue={ textValue }\n\t\t\t>\n\t\t\t\t{ trigger }\n\t\t\t</DropdownMenuStyled.SubTrigger>\n\t\t\t<DropdownMenuPrimitive.Portal container={ portalContainer }>\n\t\t\t\t<DropdownMenuStyled.SubContent\n\t\t\t\t\tloop\n\t\t\t\t\tsideOffset={ SUB_MENU_OFFSET_SIDE }\n\t\t\t\t\talignOffset={ SUB_MENU_OFFSET_ALIGN }\n\t\t\t\t\tvariant={ variant }\n\t\t\t\t>\n\t\t\t\t\t{ children }\n\t\t\t\t</DropdownMenuStyled.SubContent>\n\t\t\t</DropdownMenuPrimitive.Portal>\n\t\t</DropdownMenuPrimitive.Sub>\n\t);\n};\n\nexport const DropdownMenuLabel = ( props: DropdownMenuLabelProps ) => (\n\t<DropdownMenuStyled.Label { ...props } />\n);\n\nexport const DropdownMenuGroup = ( props: DropdownMenuGroupProps ) => (\n\t<DropdownMenuPrimitive.Group { ...props } />\n);\n\nexport const DropdownMenuItem = forwardRef(\n\t(\n\t\t{ children, prefix, suffix, ...props }: DropdownMenuItemProps,\n\t\tforwardedRef: React.ForwardedRef< any >\n\t) => {\n\t\treturn (\n\t\t\t<DropdownMenuStyled.Item { ...props } ref={ forwardedRef }>\n\t\t\t\t{ prefix && (\n\t\t\t\t\t<DropdownMenuStyled.ItemPrefixWrapper>\n\t\t\t\t\t\t{ prefix }\n\t\t\t\t\t</DropdownMenuStyled.ItemPrefixWrapper>\n\t\t\t\t) }\n\t\t\t\t{ children }\n\t\t\t\t{ suffix && (\n\t\t\t\t\t<DropdownMenuStyled.ItemSuffixWrapper>\n\t\t\t\t\t\t{ suffix }\n\t\t\t\t\t</DropdownMenuStyled.ItemSuffixWrapper>\n\t\t\t\t) }\n\t\t\t</DropdownMenuStyled.Item>\n\t\t);\n\t}\n);\n\nexport const DropdownMenuCheckboxItem = ( {\n\tchildren,\n\tchecked = false,\n\tsuffix,\n\t...props\n}: DropdownMenuCheckboxItemProps ) => {\n\treturn (\n\t\t<DropdownMenuStyled.CheckboxItem { ...props } checked={ checked }>\n\t\t\t<DropdownMenuStyled.ItemPrefixWrapper>\n\t\t\t\t<DropdownMenuStyled.ItemIndicator>\n\t\t\t\t\t{ ( checked === 'indeterminate' || checked === true ) && (\n\t\t\t\t\t\t<Icon\n\t\t\t\t\t\t\ticon={\n\t\t\t\t\t\t\t\tchecked === 'indeterminate' ? lineSolid : check\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tsize={ 24 }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t</DropdownMenuStyled.ItemIndicator>\n\t\t\t</DropdownMenuStyled.ItemPrefixWrapper>\n\t\t\t{ children }\n\t\t\t{ suffix && (\n\t\t\t\t<DropdownMenuStyled.ItemSuffixWrapper>\n\t\t\t\t\t{ suffix }\n\t\t\t\t</DropdownMenuStyled.ItemSuffixWrapper>\n\t\t\t) }\n\t\t</DropdownMenuStyled.CheckboxItem>\n\t);\n};\n\nexport const DropdownMenuRadioGroup = (\n\tprops: DropdownMenuRadioGroupProps\n) => <DropdownMenuPrimitive.RadioGroup { ...props } />;\n\nconst radioDot = (\n\t<SVG viewBox=\"0 0 24 24\" xmlns=\"http://www.w3.org/2000/svg\">\n\t\t<Circle cx={ 12 } cy={ 12 } r={ 3 } fill=\"currentColor\"></Circle>\n\t</SVG>\n);\n\nexport const DropdownMenuRadioItem = ( {\n\tchildren,\n\tsuffix,\n\t...props\n}: DropdownMenuRadioItemProps ) => {\n\treturn (\n\t\t<DropdownMenuStyled.RadioItem { ...props }>\n\t\t\t<DropdownMenuStyled.ItemPrefixWrapper>\n\t\t\t\t<DropdownMenuStyled.ItemIndicator>\n\t\t\t\t\t<Icon icon={ radioDot } size={ 22 } />\n\t\t\t\t</DropdownMenuStyled.ItemIndicator>\n\t\t\t</DropdownMenuStyled.ItemPrefixWrapper>\n\t\t\t{ children }\n\t\t\t{ suffix && (\n\t\t\t\t<DropdownMenuStyled.ItemSuffixWrapper>\n\t\t\t\t\t{ suffix }\n\t\t\t\t</DropdownMenuStyled.ItemSuffixWrapper>\n\t\t\t) }\n\t\t</DropdownMenuStyled.RadioItem>\n\t);\n};\n\nexport const DropdownMenuSeparator = ( props: DropdownMenuSeparatorProps ) => {\n\tconst { variant } = useContext( DropdownMenuPrivateContext );\n\treturn <DropdownMenuStyled.Separator { ...props } variant={ variant } />;\n};\n"],"mappings":"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"}
1
+ {"version":3,"names":["Ariakit","forwardRef","createContext","useContext","useMemo","cloneElement","isValidElement","useCallback","isRTL","check","chevronRightSmall","SVG","Circle","useContextSystem","contextConnect","Icon","Styled","DropdownMenuContext","undefined","DropdownMenuItem","prefix","suffix","children","hideOnClick","props","ref","dropdownMenuContext","createElement","accessibleWhenDisabled","store","ItemPrefixWrapper","DropdownMenuItemContentWrapper","DropdownMenuItemChildrenWrapper","ItemSuffixWrapper","DropdownMenuCheckboxItem","MenuItemCheck","render","style","width","height","icon","size","radioCheck","xmlns","viewBox","cx","cy","r","DropdownMenuRadioItem","DropdownMenuGroup","UnconnectedDropdownMenu","_props$placement","open","defaultOpen","onOpenChange","placement","trigger","gutter","shift","modal","variant","otherProps","parentContext","computedDirection","computedPlacement","test","replace","dropdownMenuStore","useMenuStore","parent","focusLoop","setOpen","willBeOpen","rtl","contextValue","appliedPlacementSide","useState","split","type","console","warn","hideOnEscape","event","preventDefault","wrapperProps","dir","direction","Fragment","MenuButton","SubmenuChevronIcon","preserveAspectRatio","DropdownMenu","hideOnHoverOutside","unmountOnHide","Provider","value","DropdownMenuSeparator","DropdownMenuItemLabel","numberOfLines","DropdownMenuItemHelpText"],"sources":["@wordpress/components/src/dropdown-menu-v2/index.tsx"],"sourcesContent":["/**\n * External dependencies\n */\n// eslint-disable-next-line no-restricted-imports\nimport * as Ariakit from '@ariakit/react';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tforwardRef,\n\tcreateContext,\n\tuseContext,\n\tuseMemo,\n\tcloneElement,\n\tisValidElement,\n\tuseCallback,\n} from '@wordpress/element';\nimport { isRTL } from '@wordpress/i18n';\nimport { check, chevronRightSmall } from '@wordpress/icons';\nimport { SVG, Circle } from '@wordpress/primitives';\n\n/**\n * Internal dependencies\n */\nimport { useContextSystem, contextConnect } from '../context';\nimport type { WordPressComponentProps } from '../context';\nimport Icon from '../icon';\nimport type {\n\tDropdownMenuContext as DropdownMenuContextType,\n\tDropdownMenuProps,\n\tDropdownMenuGroupProps,\n\tDropdownMenuItemProps,\n\tDropdownMenuCheckboxItemProps,\n\tDropdownMenuRadioItemProps,\n\tDropdownMenuSeparatorProps,\n} from './types';\nimport * as Styled from './styles';\n\nexport const DropdownMenuContext = createContext<\n\tDropdownMenuContextType | undefined\n>( undefined );\n\nexport const DropdownMenuItem = forwardRef<\n\tHTMLDivElement,\n\tWordPressComponentProps< DropdownMenuItemProps, 'div', false >\n>( function DropdownMenuItem(\n\t{ prefix, suffix, children, hideOnClick = true, ...props },\n\tref\n) {\n\tconst dropdownMenuContext = useContext( DropdownMenuContext );\n\n\treturn (\n\t\t<Styled.DropdownMenuItem\n\t\t\tref={ ref }\n\t\t\t{ ...props }\n\t\t\taccessibleWhenDisabled\n\t\t\thideOnClick={ hideOnClick }\n\t\t\tstore={ dropdownMenuContext?.store }\n\t\t>\n\t\t\t<Styled.ItemPrefixWrapper>{ prefix }</Styled.ItemPrefixWrapper>\n\n\t\t\t<Styled.DropdownMenuItemContentWrapper>\n\t\t\t\t<Styled.DropdownMenuItemChildrenWrapper>\n\t\t\t\t\t{ children }\n\t\t\t\t</Styled.DropdownMenuItemChildrenWrapper>\n\n\t\t\t\t{ suffix && (\n\t\t\t\t\t<Styled.ItemSuffixWrapper>\n\t\t\t\t\t\t{ suffix }\n\t\t\t\t\t</Styled.ItemSuffixWrapper>\n\t\t\t\t) }\n\t\t\t</Styled.DropdownMenuItemContentWrapper>\n\t\t</Styled.DropdownMenuItem>\n\t);\n} );\n\nexport const DropdownMenuCheckboxItem = forwardRef<\n\tHTMLDivElement,\n\tWordPressComponentProps< DropdownMenuCheckboxItemProps, 'div', false >\n>( function DropdownMenuCheckboxItem(\n\t{ suffix, children, hideOnClick = false, ...props },\n\tref\n) {\n\tconst dropdownMenuContext = useContext( DropdownMenuContext );\n\n\treturn (\n\t\t<Styled.DropdownMenuCheckboxItem\n\t\t\tref={ ref }\n\t\t\t{ ...props }\n\t\t\taccessibleWhenDisabled\n\t\t\thideOnClick={ hideOnClick }\n\t\t\tstore={ dropdownMenuContext?.store }\n\t\t>\n\t\t\t<Ariakit.MenuItemCheck\n\t\t\t\tstore={ dropdownMenuContext?.store }\n\t\t\t\trender={ <Styled.ItemPrefixWrapper /> }\n\t\t\t\t// Override some ariakit inline styles\n\t\t\t\tstyle={ { width: 'auto', height: 'auto' } }\n\t\t\t>\n\t\t\t\t<Icon icon={ check } size={ 24 } />\n\t\t\t</Ariakit.MenuItemCheck>\n\n\t\t\t<Styled.DropdownMenuItemContentWrapper>\n\t\t\t\t<Styled.DropdownMenuItemChildrenWrapper>\n\t\t\t\t\t{ children }\n\t\t\t\t</Styled.DropdownMenuItemChildrenWrapper>\n\n\t\t\t\t{ suffix && (\n\t\t\t\t\t<Styled.ItemSuffixWrapper>\n\t\t\t\t\t\t{ suffix }\n\t\t\t\t\t</Styled.ItemSuffixWrapper>\n\t\t\t\t) }\n\t\t\t</Styled.DropdownMenuItemContentWrapper>\n\t\t</Styled.DropdownMenuCheckboxItem>\n\t);\n} );\n\nconst radioCheck = (\n\t<SVG xmlns=\"http://www.w3.org/2000/svg\" viewBox=\"0 0 24 24\">\n\t\t<Circle cx={ 12 } cy={ 12 } r={ 3 }></Circle>\n\t</SVG>\n);\n\nexport const DropdownMenuRadioItem = forwardRef<\n\tHTMLDivElement,\n\tWordPressComponentProps< DropdownMenuRadioItemProps, 'div', false >\n>( function DropdownMenuRadioItem(\n\t{ suffix, children, hideOnClick = false, ...props },\n\tref\n) {\n\tconst dropdownMenuContext = useContext( DropdownMenuContext );\n\n\treturn (\n\t\t<Styled.DropdownMenuRadioItem\n\t\t\tref={ ref }\n\t\t\t{ ...props }\n\t\t\taccessibleWhenDisabled\n\t\t\thideOnClick={ hideOnClick }\n\t\t\tstore={ dropdownMenuContext?.store }\n\t\t>\n\t\t\t<Ariakit.MenuItemCheck\n\t\t\t\tstore={ dropdownMenuContext?.store }\n\t\t\t\trender={ <Styled.ItemPrefixWrapper /> }\n\t\t\t\t// Override some ariakit inline styles\n\t\t\t\tstyle={ { width: 'auto', height: 'auto' } }\n\t\t\t>\n\t\t\t\t<Icon icon={ radioCheck } size={ 24 } />\n\t\t\t</Ariakit.MenuItemCheck>\n\n\t\t\t<Styled.DropdownMenuItemContentWrapper>\n\t\t\t\t<Styled.DropdownMenuItemChildrenWrapper>\n\t\t\t\t\t{ children }\n\t\t\t\t</Styled.DropdownMenuItemChildrenWrapper>\n\n\t\t\t\t{ suffix && (\n\t\t\t\t\t<Styled.ItemSuffixWrapper>\n\t\t\t\t\t\t{ suffix }\n\t\t\t\t\t</Styled.ItemSuffixWrapper>\n\t\t\t\t) }\n\t\t\t</Styled.DropdownMenuItemContentWrapper>\n\t\t</Styled.DropdownMenuRadioItem>\n\t);\n} );\n\nexport const DropdownMenuGroup = forwardRef<\n\tHTMLDivElement,\n\tWordPressComponentProps< DropdownMenuGroupProps, 'div', false >\n>( function DropdownMenuGroup( props, ref ) {\n\tconst dropdownMenuContext = useContext( DropdownMenuContext );\n\treturn (\n\t\t<Styled.DropdownMenuGroup\n\t\t\tref={ ref }\n\t\t\t{ ...props }\n\t\t\tstore={ dropdownMenuContext?.store }\n\t\t/>\n\t);\n} );\n\nconst UnconnectedDropdownMenu = (\n\tprops: WordPressComponentProps< DropdownMenuProps, 'div', false >,\n\tref: React.ForwardedRef< HTMLDivElement >\n) => {\n\tconst {\n\t\t// Store props\n\t\topen,\n\t\tdefaultOpen = false,\n\t\tonOpenChange,\n\t\tplacement,\n\n\t\t// Menu trigger props\n\t\ttrigger,\n\n\t\t// Menu props\n\t\tgutter,\n\t\tchildren,\n\t\tshift,\n\t\tmodal = true,\n\n\t\t// From internal components context\n\t\tvariant,\n\n\t\t// Rest\n\t\t...otherProps\n\t} = useContextSystem<\n\t\ttypeof props & Pick< DropdownMenuContextType, 'variant' >\n\t>( props, 'DropdownMenu' );\n\n\tconst parentContext = useContext( DropdownMenuContext );\n\n\tconst computedDirection = isRTL() ? 'rtl' : 'ltr';\n\n\t// If an explicit value for the `placement` prop is not passed,\n\t// apply a default placement of `bottom-start` for the root dropdown,\n\t// and of `right-start` for nested dropdowns.\n\tlet computedPlacement =\n\t\tprops.placement ??\n\t\t( parentContext?.store ? 'right-start' : 'bottom-start' );\n\t// Swap left/right in case of RTL direction\n\tif ( computedDirection === 'rtl' ) {\n\t\tif ( /right/.test( computedPlacement ) ) {\n\t\t\tcomputedPlacement = computedPlacement.replace(\n\t\t\t\t'right',\n\t\t\t\t'left'\n\t\t\t) as typeof computedPlacement;\n\t\t} else if ( /left/.test( computedPlacement ) ) {\n\t\t\tcomputedPlacement = computedPlacement.replace(\n\t\t\t\t'left',\n\t\t\t\t'right'\n\t\t\t) as typeof computedPlacement;\n\t\t}\n\t}\n\n\tconst dropdownMenuStore = Ariakit.useMenuStore( {\n\t\tparent: parentContext?.store,\n\t\topen,\n\t\tdefaultOpen,\n\t\tplacement: computedPlacement,\n\t\tfocusLoop: true,\n\t\tsetOpen( willBeOpen ) {\n\t\t\tonOpenChange?.( willBeOpen );\n\t\t},\n\t\trtl: computedDirection === 'rtl',\n\t} );\n\n\tconst contextValue = useMemo(\n\t\t() => ( { store: dropdownMenuStore, variant } ),\n\t\t[ dropdownMenuStore, variant ]\n\t);\n\n\t// Extract the side from the applied placement — useful for animations.\n\tconst appliedPlacementSide = dropdownMenuStore\n\t\t.useState( 'placement' )\n\t\t.split( '-' )[ 0 ];\n\n\tif (\n\t\tdropdownMenuStore.parent &&\n\t\t! ( isValidElement( trigger ) && DropdownMenuItem === trigger.type )\n\t) {\n\t\t// eslint-disable-next-line no-console\n\t\tconsole.warn(\n\t\t\t'For nested DropdownMenus, the `trigger` should always be a `DropdownMenuItem`.'\n\t\t);\n\t}\n\n\tconst hideOnEscape = useCallback(\n\t\t( event: React.KeyboardEvent< Element > ) => {\n\t\t\t// Pressing Escape can cause unexpected consequences (ie. exiting\n\t\t\t// full screen mode on MacOs, close parent modals...).\n\t\t\tevent.preventDefault();\n\t\t\t// Returning `true` causes the menu to hide.\n\t\t\treturn true;\n\t\t},\n\t\t[]\n\t);\n\n\tconst wrapperProps = useMemo(\n\t\t() => ( {\n\t\t\tdir: computedDirection,\n\t\t\tstyle: {\n\t\t\t\tdirection:\n\t\t\t\t\tcomputedDirection as React.CSSProperties[ 'direction' ],\n\t\t\t},\n\t\t} ),\n\t\t[ computedDirection ]\n\t);\n\n\treturn (\n\t\t<>\n\t\t\t{ /* Menu trigger */ }\n\t\t\t<Ariakit.MenuButton\n\t\t\t\tref={ ref }\n\t\t\t\tstore={ dropdownMenuStore }\n\t\t\t\trender={\n\t\t\t\t\tdropdownMenuStore.parent\n\t\t\t\t\t\t? cloneElement( trigger, {\n\t\t\t\t\t\t\t\t// Add submenu arrow, unless a `suffix` is explicitly specified\n\t\t\t\t\t\t\t\tsuffix: (\n\t\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t\t{ trigger.props.suffix }\n\t\t\t\t\t\t\t\t\t\t<Styled.SubmenuChevronIcon\n\t\t\t\t\t\t\t\t\t\t\taria-hidden=\"true\"\n\t\t\t\t\t\t\t\t\t\t\ticon={ chevronRightSmall }\n\t\t\t\t\t\t\t\t\t\t\tsize={ 24 }\n\t\t\t\t\t\t\t\t\t\t\tpreserveAspectRatio=\"xMidYMid slice\"\n\t\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t\t\t),\n\t\t\t\t\t\t } )\n\t\t\t\t\t\t: trigger\n\t\t\t\t}\n\t\t\t/>\n\n\t\t\t{ /* Menu popover */ }\n\t\t\t<Styled.DropdownMenu\n\t\t\t\t{ ...otherProps }\n\t\t\t\tmodal={ modal }\n\t\t\t\tstore={ dropdownMenuStore }\n\t\t\t\t// Root menu has an 8px distance from its trigger,\n\t\t\t\t// otherwise 0 (which causes the submenu to slightly overlap)\n\t\t\t\tgutter={ gutter ?? ( dropdownMenuStore.parent ? 0 : 8 ) }\n\t\t\t\t// Align nested menu by the same (but opposite) amount\n\t\t\t\t// as the menu container's padding.\n\t\t\t\tshift={ shift ?? ( dropdownMenuStore.parent ? -4 : 0 ) }\n\t\t\t\thideOnHoverOutside={ false }\n\t\t\t\tdata-side={ appliedPlacementSide }\n\t\t\t\tvariant={ variant }\n\t\t\t\twrapperProps={ wrapperProps }\n\t\t\t\thideOnEscape={ hideOnEscape }\n\t\t\t\tunmountOnHide\n\t\t\t>\n\t\t\t\t<DropdownMenuContext.Provider value={ contextValue }>\n\t\t\t\t\t{ children }\n\t\t\t\t</DropdownMenuContext.Provider>\n\t\t\t</Styled.DropdownMenu>\n\t\t</>\n\t);\n};\nexport const DropdownMenu = contextConnect(\n\tUnconnectedDropdownMenu,\n\t'DropdownMenu'\n);\n\nexport const DropdownMenuSeparator = forwardRef<\n\tHTMLHRElement,\n\tWordPressComponentProps< DropdownMenuSeparatorProps, 'hr', false >\n>( function DropdownMenuSeparator( props, ref ) {\n\tconst dropdownMenuContext = useContext( DropdownMenuContext );\n\treturn (\n\t\t<Styled.DropdownMenuSeparator\n\t\t\tref={ ref }\n\t\t\t{ ...props }\n\t\t\tstore={ dropdownMenuContext?.store }\n\t\t\tvariant={ dropdownMenuContext?.variant }\n\t\t/>\n\t);\n} );\n\nexport const DropdownMenuItemLabel = forwardRef<\n\tHTMLSpanElement,\n\tWordPressComponentProps< { children: React.ReactNode }, 'span', true >\n>( function DropdownMenuItemLabel( props, ref ) {\n\treturn (\n\t\t<Styled.DropdownMenuItemLabel\n\t\t\tnumberOfLines={ 1 }\n\t\t\tref={ ref }\n\t\t\t{ ...props }\n\t\t/>\n\t);\n} );\n\nexport const DropdownMenuItemHelpText = forwardRef<\n\tHTMLSpanElement,\n\tWordPressComponentProps< { children: React.ReactNode }, 'span', true >\n>( function DropdownMenuItemHelpText( props, ref ) {\n\treturn (\n\t\t<Styled.DropdownMenuItemHelpText\n\t\t\tnumberOfLines={ 2 }\n\t\t\tref={ ref }\n\t\t\t{ ...props }\n\t\t/>\n\t);\n} );\n"],"mappings":"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"}