@wordpress/components 19.10.0 → 19.13.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 (1279) hide show
  1. package/CHANGELOG.md +97 -6
  2. package/CONTRIBUTING.md +94 -12
  3. package/README.md +1 -1
  4. package/build/alignment-matrix-control/index.js +8 -5
  5. package/build/alignment-matrix-control/index.js.map +1 -1
  6. package/build/angle-picker-control/index.js +2 -2
  7. package/build/angle-picker-control/index.js.map +1 -1
  8. package/build/autocomplete/autocompleter-ui.js +1 -1
  9. package/build/autocomplete/autocompleter-ui.js.map +1 -1
  10. package/build/autocomplete/autocompleter-ui.native.js +2 -2
  11. package/build/autocomplete/autocompleter-ui.native.js.map +1 -1
  12. package/build/autocomplete/index.js +12 -10
  13. package/build/autocomplete/index.js.map +1 -1
  14. package/build/border-box-control/border-box-control/component.js +22 -7
  15. package/build/border-box-control/border-box-control/component.js.map +1 -1
  16. package/build/border-box-control/border-box-control/hook.js +2 -2
  17. package/build/border-box-control/border-box-control/hook.js.map +1 -1
  18. package/build/border-box-control/border-box-control-linked-button/component.js.map +1 -1
  19. package/build/border-box-control/border-box-control-linked-button/hook.js +3 -2
  20. package/build/border-box-control/border-box-control-linked-button/hook.js.map +1 -1
  21. package/build/border-box-control/border-box-control-split-controls/component.js +23 -8
  22. package/build/border-box-control/border-box-control-split-controls/component.js.map +1 -1
  23. package/build/border-box-control/border-box-control-split-controls/hook.js +13 -4
  24. package/build/border-box-control/border-box-control-split-controls/hook.js.map +1 -1
  25. package/build/border-box-control/border-box-control-visualizer/hook.js +7 -2
  26. package/build/border-box-control/border-box-control-visualizer/hook.js.map +1 -1
  27. package/build/border-box-control/styles.js +25 -19
  28. package/build/border-box-control/styles.js.map +1 -1
  29. package/build/border-box-control/utils.js.map +1 -1
  30. package/build/border-control/border-control/component.js +5 -3
  31. package/build/border-control/border-control/component.js.map +1 -1
  32. package/build/border-control/border-control/hook.js +8 -5
  33. package/build/border-control/border-control/hook.js.map +1 -1
  34. package/build/border-control/border-control-dropdown/component.js +6 -2
  35. package/build/border-control/border-control-dropdown/component.js.map +1 -1
  36. package/build/border-control/border-control-dropdown/hook.js +5 -5
  37. package/build/border-control/border-control-dropdown/hook.js.map +1 -1
  38. package/build/border-control/styles.js +58 -29
  39. package/build/border-control/styles.js.map +1 -1
  40. package/build/box-control/all-input-control.js +6 -10
  41. package/build/box-control/all-input-control.js.map +1 -1
  42. package/build/box-control/axial-input-controls.js.map +1 -1
  43. package/build/box-control/index.js +3 -7
  44. package/build/box-control/index.js.map +1 -1
  45. package/build/box-control/input-controls.js +6 -10
  46. package/build/box-control/input-controls.js.map +1 -1
  47. package/build/box-control/unit-control.js +4 -4
  48. package/build/box-control/unit-control.js.map +1 -1
  49. package/build/button/index.native.js +16 -4
  50. package/build/button/index.native.js.map +1 -1
  51. package/build/button-group/index.js +24 -7
  52. package/build/button-group/index.js.map +1 -1
  53. package/build/{flyout → button-group}/types.js +0 -0
  54. package/build/button-group/types.js.map +1 -0
  55. package/build/checkbox-control/index.js +34 -7
  56. package/build/checkbox-control/index.js.map +1 -1
  57. package/build/checkbox-control/types.js +6 -0
  58. package/build/checkbox-control/types.js.map +1 -0
  59. package/build/color-palette/index.js +14 -14
  60. package/build/color-palette/index.js.map +1 -1
  61. package/build/color-palette/index.native.js +4 -1
  62. package/build/color-palette/index.native.js.map +1 -1
  63. package/build/color-picker/color-copy-button.js +87 -0
  64. package/build/color-picker/color-copy-button.js.map +1 -0
  65. package/build/color-picker/component.js +5 -15
  66. package/build/color-picker/component.js.map +1 -1
  67. package/build/color-picker/hex-input.js +18 -1
  68. package/build/color-picker/hex-input.js.map +1 -1
  69. package/build/color-picker/index.native.js.map +1 -1
  70. package/build/color-picker/styles.js +11 -11
  71. package/build/color-picker/styles.js.map +1 -1
  72. package/build/combobox-control/index.js +4 -2
  73. package/build/combobox-control/index.js.map +1 -1
  74. package/build/confirm-dialog/component.js.map +1 -1
  75. package/build/custom-gradient-bar/constants.js +1 -3
  76. package/build/custom-gradient-bar/constants.js.map +1 -1
  77. package/build/custom-gradient-bar/control-points.js +15 -8
  78. package/build/custom-gradient-bar/control-points.js.map +1 -1
  79. package/build/custom-gradient-bar/index.js +5 -5
  80. package/build/custom-gradient-bar/index.js.map +1 -1
  81. package/build/custom-gradient-bar/utils.js +5 -7
  82. package/build/custom-gradient-bar/utils.js.map +1 -1
  83. package/build/custom-gradient-picker/utils.js +1 -1
  84. package/build/custom-gradient-picker/utils.js.map +1 -1
  85. package/build/custom-select-control/index.js.map +1 -1
  86. package/build/date-time/{date.js → date/index.js} +84 -21
  87. package/build/date-time/date/index.js.map +1 -0
  88. package/build/date-time/date/styles.js +70 -0
  89. package/build/date-time/date/styles.js.map +1 -0
  90. package/build/date-time/{utils.js → date/utils.js} +6 -4
  91. package/build/date-time/date/utils.js.map +1 -0
  92. package/build/date-time/date-time/index.js +175 -0
  93. package/build/date-time/date-time/index.js.map +1 -0
  94. package/build/date-time/date-time/styles.js +32 -0
  95. package/build/date-time/date-time/styles.js.map +1 -0
  96. package/build/date-time/index.js +2 -84
  97. package/build/date-time/index.js.map +1 -1
  98. package/build/date-time/time/index.js +322 -0
  99. package/build/date-time/time/index.js.map +1 -0
  100. package/build/date-time/time/styles.js +139 -0
  101. package/build/date-time/time/styles.js.map +1 -0
  102. package/build/date-time/{timezone.js → time/timezone.js} +8 -5
  103. package/build/date-time/time/timezone.js.map +1 -0
  104. package/build/date-time/types.js +6 -0
  105. package/build/date-time/types.js.map +1 -0
  106. package/build/dimension-control/index.js +1 -3
  107. package/build/dimension-control/index.js.map +1 -1
  108. package/build/disabled/index.js +1 -1
  109. package/build/disabled/index.js.map +1 -1
  110. package/build/divider/styles.js +5 -5
  111. package/build/divider/styles.js.map +1 -1
  112. package/build/draggable/index.js.map +1 -1
  113. package/build/draggable/index.native.js +233 -0
  114. package/build/draggable/index.native.js.map +1 -0
  115. package/build/drop-zone/provider.js.map +1 -1
  116. package/build/dropdown/index.js +11 -6
  117. package/build/dropdown/index.js.map +1 -1
  118. package/build/dropdown-menu/index.js +13 -2
  119. package/build/dropdown-menu/index.js.map +1 -1
  120. package/build/dropdown-menu/index.native.js +13 -2
  121. package/build/dropdown-menu/index.native.js.map +1 -1
  122. package/build/external-link/index.js +20 -8
  123. package/build/external-link/index.js.map +1 -1
  124. package/build/external-link/styles/external-link-styles.js +3 -3
  125. package/build/external-link/styles/external-link-styles.js.map +1 -1
  126. package/build/external-link/types.js +6 -0
  127. package/build/external-link/types.js.map +1 -0
  128. package/build/flex/flex/hook.js +9 -5
  129. package/build/flex/flex/hook.js.map +1 -1
  130. package/build/focal-point-picker/controls.js +3 -7
  131. package/build/focal-point-picker/controls.js.map +1 -1
  132. package/build/focal-point-picker/index.js.map +1 -1
  133. package/build/focal-point-picker/index.native.js +3 -3
  134. package/build/focal-point-picker/index.native.js.map +1 -1
  135. package/build/focal-point-picker/media.js +4 -8
  136. package/build/focal-point-picker/media.js.map +1 -1
  137. package/build/font-size-picker/index.js +1 -1
  138. package/build/font-size-picker/index.js.map +1 -1
  139. package/build/form-toggle/index.js +6 -4
  140. package/build/form-toggle/index.js.map +1 -1
  141. package/build/form-token-field/index.js +328 -359
  142. package/build/form-token-field/index.js.map +1 -1
  143. package/build/form-token-field/suggestions-list.js +26 -20
  144. package/build/form-token-field/suggestions-list.js.map +1 -1
  145. package/build/form-token-field/token-input.js +39 -53
  146. package/build/form-token-field/token-input.js.map +1 -1
  147. package/build/form-token-field/token.js +3 -3
  148. package/build/form-token-field/token.js.map +1 -1
  149. package/build/form-token-field/types.js +6 -0
  150. package/build/form-token-field/types.js.map +1 -0
  151. package/build/gradient-picker/index.js.map +1 -1
  152. package/build/heading/hook.js.map +1 -1
  153. package/build/higher-order/navigate-regions/index.js.map +1 -1
  154. package/build/higher-order/with-focus-return/index.js.map +1 -1
  155. package/build/higher-order/with-spoken-messages/index.js.map +1 -1
  156. package/build/icon/index.js.map +1 -1
  157. package/build/index.js +0 -8
  158. package/build/index.js.map +1 -1
  159. package/build/index.native.js +16 -0
  160. package/build/index.native.js.map +1 -1
  161. package/build/input-control/index.js +14 -9
  162. package/build/input-control/index.js.map +1 -1
  163. package/build/input-control/input-field.js +11 -36
  164. package/build/input-control/input-field.js.map +1 -1
  165. package/build/input-control/reducer/reducer.js +36 -24
  166. package/build/input-control/reducer/reducer.js.map +1 -1
  167. package/build/input-control/reducer/state.js +0 -1
  168. package/build/input-control/reducer/state.js.map +1 -1
  169. package/build/input-control/utils.js +46 -1
  170. package/build/input-control/utils.js.map +1 -1
  171. package/build/menu-items-choice/index.js +3 -7
  172. package/build/menu-items-choice/index.js.map +1 -1
  173. package/build/mobile/bottom-sheet/bottom-sheet-context.native.js.map +1 -1
  174. package/build/mobile/bottom-sheet/bottom-sheet-navigation/navigation-screen.native.js +1 -1
  175. package/build/mobile/bottom-sheet/bottom-sheet-navigation/navigation-screen.native.js.map +1 -1
  176. package/build/mobile/bottom-sheet/cell.native.js.map +1 -1
  177. package/build/mobile/bottom-sheet/cycle-picker-cell.native.js +1 -7
  178. package/build/mobile/bottom-sheet/cycle-picker-cell.native.js.map +1 -1
  179. package/build/mobile/bottom-sheet/index.native.js +1 -1
  180. package/build/mobile/bottom-sheet/index.native.js.map +1 -1
  181. package/build/mobile/bottom-sheet/picker-cell.native.js.map +1 -1
  182. package/build/mobile/bottom-sheet/stepper-cell/index.native.js.map +1 -1
  183. package/build/mobile/bottom-sheet-select-control/index.native.js +3 -2
  184. package/build/mobile/bottom-sheet-select-control/index.native.js.map +1 -1
  185. package/build/mobile/color-settings/index.native.js.map +1 -1
  186. package/build/mobile/global-styles-context/index.native.js.map +1 -1
  187. package/build/mobile/gradient/index.native.js.map +1 -1
  188. package/build/mobile/html-text-input/index.native.js +19 -8
  189. package/build/mobile/html-text-input/index.native.js.map +1 -1
  190. package/build/mobile/inserter-button/index.native.js.map +1 -1
  191. package/build/mobile/keyboard-aware-flat-list/index.android.js +28 -5
  192. package/build/mobile/keyboard-aware-flat-list/index.android.js.map +1 -1
  193. package/build/mobile/keyboard-aware-flat-list/index.ios.js +47 -24
  194. package/build/mobile/keyboard-aware-flat-list/index.ios.js.map +1 -1
  195. package/build/mobile/link-settings/image-link-destinations-screen.native.js.map +1 -1
  196. package/build/mobile/media-edit/index.native.js.map +1 -1
  197. package/build/mobile/segmented-control/index.native.js +1 -1
  198. package/build/mobile/segmented-control/index.native.js.map +1 -1
  199. package/build/modal/index.js +1 -1
  200. package/build/modal/index.js.map +1 -1
  201. package/build/navigable-container/container.js +4 -2
  202. package/build/navigable-container/container.js.map +1 -1
  203. package/build/navigation/context.js +12 -16
  204. package/build/navigation/context.js.map +1 -1
  205. package/build/navigation/index.js +3 -3
  206. package/build/navigation/index.js.map +1 -1
  207. package/build/navigation/item/index.js +3 -3
  208. package/build/navigation/item/index.js.map +1 -1
  209. package/build/navigator/navigator-back-button/hook.js.map +1 -1
  210. package/build/navigator/navigator-button/hook.js.map +1 -1
  211. package/build/navigator/navigator-provider/component.js +1 -1
  212. package/build/navigator/navigator-provider/component.js.map +1 -1
  213. package/build/navigator/navigator-screen/component.js +1 -1
  214. package/build/navigator/navigator-screen/component.js.map +1 -1
  215. package/build/notice/index.js +5 -5
  216. package/build/notice/index.js.map +1 -1
  217. package/build/notice/list.js +4 -2
  218. package/build/notice/list.js.map +1 -1
  219. package/build/palette-edit/index.js +38 -7
  220. package/build/palette-edit/index.js.map +1 -1
  221. package/build/panel/body.js +3 -3
  222. package/build/panel/body.js.map +1 -1
  223. package/build/placeholder/index.js +26 -12
  224. package/build/placeholder/index.js.map +1 -1
  225. package/build/popover/index.js +228 -275
  226. package/build/popover/index.js.map +1 -1
  227. package/build/radio-control/index.js +43 -7
  228. package/build/radio-control/index.js.map +1 -1
  229. package/build/radio-control/types.js +6 -0
  230. package/build/radio-control/types.js.map +1 -0
  231. package/build/range-control/index.js +8 -6
  232. package/build/range-control/index.js.map +1 -1
  233. package/build/range-control/input-range.js +6 -10
  234. package/build/range-control/input-range.js.map +1 -1
  235. package/build/range-control/utils.js +7 -5
  236. package/build/range-control/utils.js.map +1 -1
  237. package/build/resizable-box/resize-tooltip/index.js +3 -3
  238. package/build/resizable-box/resize-tooltip/index.js.map +1 -1
  239. package/build/resizable-box/resize-tooltip/utils.js +8 -14
  240. package/build/resizable-box/resize-tooltip/utils.js.map +1 -1
  241. package/build/responsive-wrapper/index.js.map +1 -1
  242. package/build/sandbox/index.native.js +1 -1
  243. package/build/sandbox/index.native.js.map +1 -1
  244. package/build/search-control/index.js +4 -6
  245. package/build/search-control/index.js.map +1 -1
  246. package/build/select-control/index.js +8 -4
  247. package/build/select-control/index.js.map +1 -1
  248. package/build/select-control/styles/select-control-styles.js +14 -11
  249. package/build/select-control/styles/select-control-styles.js.map +1 -1
  250. package/build/slot-fill/fill.js +1 -7
  251. package/build/slot-fill/fill.js.map +1 -1
  252. package/build/slot-fill/slot.js +14 -3
  253. package/build/slot-fill/slot.js.map +1 -1
  254. package/build/snackbar/index.js +7 -7
  255. package/build/snackbar/index.js.map +1 -1
  256. package/build/snackbar/list.js +3 -1
  257. package/build/snackbar/list.js.map +1 -1
  258. package/build/spacer/hook.js +11 -3
  259. package/build/spacer/hook.js.map +1 -1
  260. package/build/surface/component.js +7 -7
  261. package/build/surface/component.js.map +1 -1
  262. package/build/surface/hook.js +8 -11
  263. package/build/surface/hook.js.map +1 -1
  264. package/build/surface/index.js.map +1 -1
  265. package/build/surface/styles.js +8 -48
  266. package/build/surface/styles.js.map +1 -1
  267. package/build/tab-panel/index.js +3 -1
  268. package/build/tab-panel/index.js.map +1 -1
  269. package/build/text/hook.js +4 -4
  270. package/build/text/hook.js.map +1 -1
  271. package/build/text/utils.js.map +1 -1
  272. package/build/textarea-control/index.js +40 -6
  273. package/build/textarea-control/index.js.map +1 -1
  274. package/build/textarea-control/styles/textarea-control-styles.js +3 -3
  275. package/build/textarea-control/styles/textarea-control-styles.js.map +1 -1
  276. package/build/textarea-control/types.js +6 -0
  277. package/build/textarea-control/types.js.map +1 -0
  278. package/build/toggle-control/index.js +1 -3
  279. package/build/toggle-control/index.js.map +1 -1
  280. package/build/toggle-control/index.native.js +1 -7
  281. package/build/toggle-control/index.native.js.map +1 -1
  282. package/build/toggle-group-control/toggle-group-control/component.js +1 -3
  283. package/build/toggle-group-control/toggle-group-control/component.js.map +1 -1
  284. package/build/toggle-group-control/toggle-group-control/toggle-group-control-backdrop.js.map +1 -1
  285. package/build/toolbar/index.js.map +1 -1
  286. package/build/tools-panel/tools-panel/hook.js.map +1 -1
  287. package/build/tools-panel/tools-panel-header/hook.js.map +1 -1
  288. package/build/tooltip/index.js +3 -2
  289. package/build/tooltip/index.js.map +1 -1
  290. package/build/tree-grid/roving-tab-index-item.js.map +1 -1
  291. package/build/tree-select/index.js +57 -4
  292. package/build/tree-select/index.js.map +1 -1
  293. package/build/tree-select/types.js +6 -0
  294. package/build/tree-select/types.js.map +1 -0
  295. package/build/ui/form-group/form-group-content.js.map +1 -1
  296. package/build/unit-control/index.js.map +1 -1
  297. package/build/utils/hooks/index.js +0 -8
  298. package/build/utils/hooks/index.js.map +1 -1
  299. package/build/utils/unit-values.js.map +1 -1
  300. package/build/utils/values.js.map +1 -1
  301. package/build/z-stack/component.js +22 -3
  302. package/build/z-stack/component.js.map +1 -1
  303. package/build/z-stack/types.js +6 -0
  304. package/build/z-stack/types.js.map +1 -0
  305. package/build-module/alignment-matrix-control/index.js +7 -3
  306. package/build-module/alignment-matrix-control/index.js.map +1 -1
  307. package/build-module/angle-picker-control/index.js +1 -1
  308. package/build-module/angle-picker-control/index.js.map +1 -1
  309. package/build-module/autocomplete/autocompleter-ui.js +1 -1
  310. package/build-module/autocomplete/autocompleter-ui.js.map +1 -1
  311. package/build-module/autocomplete/autocompleter-ui.native.js +2 -2
  312. package/build-module/autocomplete/autocompleter-ui.native.js.map +1 -1
  313. package/build-module/autocomplete/index.js +13 -11
  314. package/build-module/autocomplete/index.js.map +1 -1
  315. package/build-module/border-box-control/border-box-control/component.js +22 -7
  316. package/build-module/border-box-control/border-box-control/component.js.map +1 -1
  317. package/build-module/border-box-control/border-box-control/hook.js +2 -2
  318. package/build-module/border-box-control/border-box-control/hook.js.map +1 -1
  319. package/build-module/border-box-control/border-box-control-linked-button/component.js.map +1 -1
  320. package/build-module/border-box-control/border-box-control-linked-button/hook.js +3 -2
  321. package/build-module/border-box-control/border-box-control-linked-button/hook.js.map +1 -1
  322. package/build-module/border-box-control/border-box-control-split-controls/component.js +23 -8
  323. package/build-module/border-box-control/border-box-control-split-controls/component.js.map +1 -1
  324. package/build-module/border-box-control/border-box-control-split-controls/hook.js +11 -4
  325. package/build-module/border-box-control/border-box-control-split-controls/hook.js.map +1 -1
  326. package/build-module/border-box-control/border-box-control-visualizer/hook.js +5 -2
  327. package/build-module/border-box-control/border-box-control-visualizer/hook.js.map +1 -1
  328. package/build-module/border-box-control/styles.js +15 -16
  329. package/build-module/border-box-control/styles.js.map +1 -1
  330. package/build-module/border-box-control/utils.js.map +1 -1
  331. package/build-module/border-control/border-control/component.js +5 -3
  332. package/build-module/border-control/border-control/component.js.map +1 -1
  333. package/build-module/border-control/border-control/hook.js +8 -5
  334. package/build-module/border-control/border-control/hook.js.map +1 -1
  335. package/build-module/border-control/border-control-dropdown/component.js +6 -2
  336. package/build-module/border-control/border-control-dropdown/component.js.map +1 -1
  337. package/build-module/border-control/border-control-dropdown/hook.js +5 -5
  338. package/build-module/border-control/border-control-dropdown/hook.js.map +1 -1
  339. package/build-module/border-control/styles.js +56 -29
  340. package/build-module/border-control/styles.js.map +1 -1
  341. package/build-module/box-control/all-input-control.js +3 -5
  342. package/build-module/box-control/all-input-control.js.map +1 -1
  343. package/build-module/box-control/axial-input-controls.js.map +1 -1
  344. package/build-module/box-control/index.js +2 -5
  345. package/build-module/box-control/index.js.map +1 -1
  346. package/build-module/box-control/input-controls.js +3 -5
  347. package/build-module/box-control/input-controls.js.map +1 -1
  348. package/build-module/box-control/unit-control.js +3 -1
  349. package/build-module/box-control/unit-control.js.map +1 -1
  350. package/build-module/button/index.native.js +17 -5
  351. package/build-module/button/index.native.js.map +1 -1
  352. package/build-module/button-group/index.js +27 -7
  353. package/build-module/button-group/index.js.map +1 -1
  354. package/build-module/{flyout → button-group}/types.js +0 -0
  355. package/build-module/{flyout → button-group}/types.js.map +0 -0
  356. package/build-module/checkbox-control/index.js +31 -7
  357. package/build-module/checkbox-control/index.js.map +1 -1
  358. package/build-module/checkbox-control/types.js +2 -0
  359. package/{build/flyout → build-module/checkbox-control}/types.js.map +0 -0
  360. package/build-module/color-palette/index.js +12 -16
  361. package/build-module/color-palette/index.js.map +1 -1
  362. package/build-module/color-palette/index.native.js +4 -1
  363. package/build-module/color-palette/index.native.js.map +1 -1
  364. package/build-module/color-picker/color-copy-button.js +73 -0
  365. package/build-module/color-picker/color-copy-button.js.map +1 -0
  366. package/build-module/color-picker/component.js +6 -15
  367. package/build-module/color-picker/component.js.map +1 -1
  368. package/build-module/color-picker/hex-input.js +18 -1
  369. package/build-module/color-picker/hex-input.js.map +1 -1
  370. package/build-module/color-picker/index.native.js.map +1 -1
  371. package/build-module/color-picker/styles.js +9 -9
  372. package/build-module/color-picker/styles.js.map +1 -1
  373. package/build-module/combobox-control/index.js +5 -2
  374. package/build-module/combobox-control/index.js.map +1 -1
  375. package/build-module/confirm-dialog/component.js.map +1 -1
  376. package/build-module/custom-gradient-bar/constants.js +0 -1
  377. package/build-module/custom-gradient-bar/constants.js.map +1 -1
  378. package/build-module/custom-gradient-bar/control-points.js +16 -9
  379. package/build-module/custom-gradient-bar/control-points.js.map +1 -1
  380. package/build-module/custom-gradient-bar/index.js +6 -6
  381. package/build-module/custom-gradient-bar/index.js.map +1 -1
  382. package/build-module/custom-gradient-bar/utils.js +6 -8
  383. package/build-module/custom-gradient-bar/utils.js.map +1 -1
  384. package/build-module/custom-gradient-picker/utils.js +1 -1
  385. package/build-module/custom-gradient-picker/utils.js.map +1 -1
  386. package/build-module/custom-select-control/index.js.map +1 -1
  387. package/build-module/date-time/{date.js → date/index.js} +81 -23
  388. package/build-module/date-time/date/index.js.map +1 -0
  389. package/build-module/date-time/date/styles.js +61 -0
  390. package/build-module/date-time/date/styles.js.map +1 -0
  391. package/build-module/date-time/date/utils.js +22 -0
  392. package/build-module/date-time/date/utils.js.map +1 -0
  393. package/build-module/date-time/date-time/index.js +145 -0
  394. package/build-module/date-time/date-time/index.js.map +1 -0
  395. package/build-module/date-time/date-time/styles.js +22 -0
  396. package/build-module/date-time/date-time/styles.js.map +1 -0
  397. package/build-module/date-time/index.js +2 -82
  398. package/build-module/date-time/index.js.map +1 -1
  399. package/build-module/date-time/time/index.js +302 -0
  400. package/build-module/date-time/time/index.js.map +1 -0
  401. package/build-module/date-time/time/styles.js +118 -0
  402. package/build-module/date-time/time/styles.js.map +1 -0
  403. package/build-module/date-time/{timezone.js → time/timezone.js} +7 -5
  404. package/build-module/date-time/time/timezone.js.map +1 -0
  405. package/build-module/date-time/types.js +2 -0
  406. package/build-module/date-time/types.js.map +1 -0
  407. package/build-module/dimension-control/index.js +1 -2
  408. package/build-module/dimension-control/index.js.map +1 -1
  409. package/build-module/disabled/index.js +1 -1
  410. package/build-module/disabled/index.js.map +1 -1
  411. package/build-module/divider/styles.js +5 -5
  412. package/build-module/divider/styles.js.map +1 -1
  413. package/build-module/draggable/index.js.map +1 -1
  414. package/build-module/draggable/index.native.js +216 -0
  415. package/build-module/draggable/index.native.js.map +1 -0
  416. package/build-module/drop-zone/provider.js.map +1 -1
  417. package/build-module/dropdown/index.js +11 -6
  418. package/build-module/dropdown/index.js.map +1 -1
  419. package/build-module/dropdown-menu/index.js +12 -1
  420. package/build-module/dropdown-menu/index.js.map +1 -1
  421. package/build-module/dropdown-menu/index.native.js +12 -1
  422. package/build-module/dropdown-menu/index.native.js.map +1 -1
  423. package/build-module/external-link/index.js +22 -7
  424. package/build-module/external-link/index.js.map +1 -1
  425. package/build-module/external-link/styles/external-link-styles.js +3 -3
  426. package/build-module/external-link/styles/external-link-styles.js.map +1 -1
  427. package/build-module/external-link/types.js +2 -0
  428. package/build-module/external-link/types.js.map +1 -0
  429. package/build-module/flex/flex/hook.js +7 -5
  430. package/build-module/flex/flex/hook.js.map +1 -1
  431. package/build-module/focal-point-picker/controls.js +3 -5
  432. package/build-module/focal-point-picker/controls.js.map +1 -1
  433. package/build-module/focal-point-picker/index.js.map +1 -1
  434. package/build-module/focal-point-picker/index.native.js +3 -3
  435. package/build-module/focal-point-picker/index.native.js.map +1 -1
  436. package/build-module/focal-point-picker/media.js +3 -5
  437. package/build-module/focal-point-picker/media.js.map +1 -1
  438. package/build-module/font-size-picker/index.js +1 -1
  439. package/build-module/font-size-picker/index.js.map +1 -1
  440. package/build-module/form-toggle/index.js +1 -1
  441. package/build-module/form-toggle/index.js.map +1 -1
  442. package/build-module/form-token-field/index.js +329 -361
  443. package/build-module/form-token-field/index.js.map +1 -1
  444. package/build-module/form-token-field/suggestions-list.js +32 -23
  445. package/build-module/form-token-field/suggestions-list.js.map +1 -1
  446. package/build-module/form-token-field/token-input.js +43 -58
  447. package/build-module/form-token-field/token-input.js.map +1 -1
  448. package/build-module/form-token-field/token.js +3 -1
  449. package/build-module/form-token-field/token.js.map +1 -1
  450. package/build-module/form-token-field/types.js +2 -0
  451. package/build-module/form-token-field/types.js.map +1 -0
  452. package/build-module/gradient-picker/index.js.map +1 -1
  453. package/build-module/heading/hook.js.map +1 -1
  454. package/build-module/higher-order/navigate-regions/index.js.map +1 -1
  455. package/build-module/higher-order/with-focus-return/index.js.map +1 -1
  456. package/build-module/higher-order/with-spoken-messages/index.js.map +1 -1
  457. package/build-module/icon/index.js.map +1 -1
  458. package/build-module/index.js +0 -1
  459. package/build-module/index.js.map +1 -1
  460. package/build-module/index.native.js +2 -1
  461. package/build-module/index.native.js.map +1 -1
  462. package/build-module/input-control/index.js +10 -5
  463. package/build-module/input-control/index.js.map +1 -1
  464. package/build-module/input-control/input-field.js +3 -26
  465. package/build-module/input-control/input-field.js.map +1 -1
  466. package/build-module/input-control/reducer/reducer.js +38 -26
  467. package/build-module/input-control/reducer/reducer.js.map +1 -1
  468. package/build-module/input-control/reducer/state.js +0 -1
  469. package/build-module/input-control/reducer/state.js.map +1 -1
  470. package/build-module/input-control/utils.js +49 -3
  471. package/build-module/input-control/utils.js.map +1 -1
  472. package/build-module/menu-items-choice/index.js +3 -5
  473. package/build-module/menu-items-choice/index.js.map +1 -1
  474. package/build-module/mobile/bottom-sheet/bottom-sheet-context.native.js.map +1 -1
  475. package/build-module/mobile/bottom-sheet/bottom-sheet-navigation/navigation-screen.native.js +1 -1
  476. package/build-module/mobile/bottom-sheet/bottom-sheet-navigation/navigation-screen.native.js.map +1 -1
  477. package/build-module/mobile/bottom-sheet/cell.native.js.map +1 -1
  478. package/build-module/mobile/bottom-sheet/cycle-picker-cell.native.js +1 -6
  479. package/build-module/mobile/bottom-sheet/cycle-picker-cell.native.js.map +1 -1
  480. package/build-module/mobile/bottom-sheet/index.native.js +1 -1
  481. package/build-module/mobile/bottom-sheet/index.native.js.map +1 -1
  482. package/build-module/mobile/bottom-sheet/picker-cell.native.js.map +1 -1
  483. package/build-module/mobile/bottom-sheet/stepper-cell/index.native.js.map +1 -1
  484. package/build-module/mobile/bottom-sheet-select-control/index.native.js +3 -2
  485. package/build-module/mobile/bottom-sheet-select-control/index.native.js.map +1 -1
  486. package/build-module/mobile/color-settings/index.native.js.map +1 -1
  487. package/build-module/mobile/global-styles-context/index.native.js.map +1 -1
  488. package/build-module/mobile/gradient/index.native.js.map +1 -1
  489. package/build-module/mobile/html-text-input/index.native.js +20 -9
  490. package/build-module/mobile/html-text-input/index.native.js.map +1 -1
  491. package/build-module/mobile/inserter-button/index.native.js.map +1 -1
  492. package/build-module/mobile/keyboard-aware-flat-list/index.android.js +21 -5
  493. package/build-module/mobile/keyboard-aware-flat-list/index.android.js.map +1 -1
  494. package/build-module/mobile/keyboard-aware-flat-list/index.ios.js +42 -25
  495. package/build-module/mobile/keyboard-aware-flat-list/index.ios.js.map +1 -1
  496. package/build-module/mobile/link-settings/image-link-destinations-screen.native.js.map +1 -1
  497. package/build-module/mobile/media-edit/index.native.js.map +1 -1
  498. package/build-module/mobile/segmented-control/index.native.js +2 -2
  499. package/build-module/mobile/segmented-control/index.native.js.map +1 -1
  500. package/build-module/modal/index.js +1 -1
  501. package/build-module/modal/index.js.map +1 -1
  502. package/build-module/navigable-container/container.js +5 -2
  503. package/build-module/navigable-container/container.js.map +1 -1
  504. package/build-module/navigation/context.js +3 -5
  505. package/build-module/navigation/context.js.map +1 -1
  506. package/build-module/navigation/index.js +3 -1
  507. package/build-module/navigation/index.js.map +1 -1
  508. package/build-module/navigation/item/index.js +3 -1
  509. package/build-module/navigation/item/index.js.map +1 -1
  510. package/build-module/navigator/navigator-back-button/hook.js.map +1 -1
  511. package/build-module/navigator/navigator-button/hook.js.map +1 -1
  512. package/build-module/navigator/navigator-provider/component.js +1 -1
  513. package/build-module/navigator/navigator-provider/component.js.map +1 -1
  514. package/build-module/navigator/navigator-screen/component.js +1 -1
  515. package/build-module/navigator/navigator-screen/component.js.map +1 -1
  516. package/build-module/notice/index.js +2 -1
  517. package/build-module/notice/index.js.map +1 -1
  518. package/build-module/notice/list.js +4 -1
  519. package/build-module/notice/list.js.map +1 -1
  520. package/build-module/palette-edit/index.js +37 -7
  521. package/build-module/palette-edit/index.js.map +1 -1
  522. package/build-module/panel/body.js +3 -1
  523. package/build-module/panel/body.js.map +1 -1
  524. package/build-module/placeholder/index.js +24 -11
  525. package/build-module/placeholder/index.js.map +1 -1
  526. package/build-module/popover/index.js +230 -277
  527. package/build-module/popover/index.js.map +1 -1
  528. package/build-module/radio-control/index.js +40 -7
  529. package/build-module/radio-control/index.js.map +1 -1
  530. package/build-module/radio-control/types.js +2 -0
  531. package/build-module/radio-control/types.js.map +1 -0
  532. package/build-module/range-control/index.js +4 -2
  533. package/build-module/range-control/index.js.map +1 -1
  534. package/build-module/range-control/input-range.js +2 -5
  535. package/build-module/range-control/input-range.js.map +1 -1
  536. package/build-module/range-control/utils.js +4 -1
  537. package/build-module/range-control/utils.js.map +1 -1
  538. package/build-module/resizable-box/resize-tooltip/index.js +2 -1
  539. package/build-module/resizable-box/resize-tooltip/index.js.map +1 -1
  540. package/build-module/resizable-box/resize-tooltip/utils.js +7 -10
  541. package/build-module/resizable-box/resize-tooltip/utils.js.map +1 -1
  542. package/build-module/responsive-wrapper/index.js.map +1 -1
  543. package/build-module/sandbox/index.native.js +1 -1
  544. package/build-module/sandbox/index.native.js.map +1 -1
  545. package/build-module/search-control/index.js +6 -7
  546. package/build-module/search-control/index.js.map +1 -1
  547. package/build-module/select-control/index.js +6 -2
  548. package/build-module/select-control/index.js.map +1 -1
  549. package/build-module/select-control/styles/select-control-styles.js +14 -11
  550. package/build-module/select-control/styles/select-control-styles.js.map +1 -1
  551. package/build-module/slot-fill/fill.js +1 -6
  552. package/build-module/slot-fill/fill.js.map +1 -1
  553. package/build-module/slot-fill/slot.js +12 -2
  554. package/build-module/slot-fill/slot.js.map +1 -1
  555. package/build-module/snackbar/index.js +3 -1
  556. package/build-module/snackbar/index.js.map +1 -1
  557. package/build-module/snackbar/list.js +4 -1
  558. package/build-module/snackbar/list.js.map +1 -1
  559. package/build-module/spacer/hook.js +10 -2
  560. package/build-module/spacer/hook.js.map +1 -1
  561. package/build-module/surface/component.js +7 -7
  562. package/build-module/surface/component.js.map +1 -1
  563. package/build-module/surface/hook.js +8 -11
  564. package/build-module/surface/hook.js.map +1 -1
  565. package/build-module/surface/index.js.map +1 -1
  566. package/build-module/surface/styles.js +8 -48
  567. package/build-module/surface/styles.js.map +1 -1
  568. package/build-module/tab-panel/index.js +3 -1
  569. package/build-module/tab-panel/index.js.map +1 -1
  570. package/build-module/text/hook.js +4 -4
  571. package/build-module/text/hook.js.map +1 -1
  572. package/build-module/text/utils.js.map +1 -1
  573. package/build-module/textarea-control/index.js +36 -5
  574. package/build-module/textarea-control/index.js.map +1 -1
  575. package/build-module/textarea-control/styles/textarea-control-styles.js +3 -3
  576. package/build-module/textarea-control/styles/textarea-control-styles.js.map +1 -1
  577. package/build-module/textarea-control/types.js +2 -0
  578. package/build-module/textarea-control/types.js.map +1 -0
  579. package/build-module/toggle-control/index.js +1 -2
  580. package/build-module/toggle-control/index.js.map +1 -1
  581. package/build-module/toggle-control/index.native.js +1 -6
  582. package/build-module/toggle-control/index.native.js.map +1 -1
  583. package/build-module/toggle-group-control/toggle-group-control/component.js +2 -3
  584. package/build-module/toggle-group-control/toggle-group-control/component.js.map +1 -1
  585. package/build-module/toggle-group-control/toggle-group-control/toggle-group-control-backdrop.js.map +1 -1
  586. package/build-module/toolbar/index.js.map +1 -1
  587. package/build-module/tools-panel/tools-panel/hook.js.map +1 -1
  588. package/build-module/tools-panel/tools-panel-header/hook.js.map +1 -1
  589. package/build-module/tooltip/index.js +3 -2
  590. package/build-module/tooltip/index.js.map +1 -1
  591. package/build-module/tree-grid/roving-tab-index-item.js.map +1 -1
  592. package/build-module/tree-select/index.js +53 -3
  593. package/build-module/tree-select/index.js.map +1 -1
  594. package/build-module/tree-select/types.js +2 -0
  595. package/build-module/tree-select/types.js.map +1 -0
  596. package/build-module/ui/form-group/form-group-content.js.map +1 -1
  597. package/build-module/unit-control/index.js.map +1 -1
  598. package/build-module/utils/hooks/index.js +0 -1
  599. package/build-module/utils/hooks/index.js.map +1 -1
  600. package/build-module/utils/unit-values.js.map +1 -1
  601. package/build-module/utils/values.js.map +1 -1
  602. package/build-module/z-stack/component.js +21 -2
  603. package/build-module/z-stack/component.js.map +1 -1
  604. package/build-module/z-stack/types.js +2 -0
  605. package/build-module/z-stack/types.js.map +1 -0
  606. package/build-style/style-rtl.css +75 -360
  607. package/build-style/style.css +71 -364
  608. package/build-types/base-control/stories/index.d.ts.map +1 -1
  609. package/build-types/base-field/hook.d.ts +0 -1
  610. package/build-types/base-field/hook.d.ts.map +1 -1
  611. package/build-types/border-box-control/border-box-control/component.d.ts.map +1 -1
  612. package/build-types/border-box-control/border-box-control/hook.d.ts +3 -2
  613. package/build-types/border-box-control/border-box-control/hook.d.ts.map +1 -1
  614. package/build-types/border-box-control/border-box-control-linked-button/component.d.ts.map +1 -1
  615. package/build-types/border-box-control/border-box-control-linked-button/hook.d.ts +0 -1
  616. package/build-types/border-box-control/border-box-control-linked-button/hook.d.ts.map +1 -1
  617. package/build-types/border-box-control/border-box-control-split-controls/component.d.ts.map +1 -1
  618. package/build-types/border-box-control/border-box-control-split-controls/hook.d.ts +4 -2
  619. package/build-types/border-box-control/border-box-control-split-controls/hook.d.ts.map +1 -1
  620. package/build-types/border-box-control/border-box-control-visualizer/hook.d.ts +0 -1
  621. package/build-types/border-box-control/border-box-control-visualizer/hook.d.ts.map +1 -1
  622. package/build-types/border-box-control/styles.d.ts +4 -3
  623. package/build-types/border-box-control/styles.d.ts.map +1 -1
  624. package/build-types/border-box-control/types.d.ts +40 -13
  625. package/build-types/border-box-control/types.d.ts.map +1 -1
  626. package/build-types/border-box-control/utils.d.ts.map +1 -1
  627. package/build-types/border-control/border-control/component.d.ts.map +1 -1
  628. package/build-types/border-control/border-control/hook.d.ts +2 -2
  629. package/build-types/border-control/border-control/hook.d.ts.map +1 -1
  630. package/build-types/border-control/border-control-dropdown/component.d.ts.map +1 -1
  631. package/build-types/border-control/border-control-dropdown/hook.d.ts +1 -1
  632. package/build-types/border-control/border-control-dropdown/hook.d.ts.map +1 -1
  633. package/build-types/border-control/border-control-style-picker/hook.d.ts +0 -1
  634. package/build-types/border-control/border-control-style-picker/hook.d.ts.map +1 -1
  635. package/build-types/border-control/styles.d.ts +2 -1
  636. package/build-types/border-control/styles.d.ts.map +1 -1
  637. package/build-types/border-control/types.d.ts +18 -6
  638. package/build-types/border-control/types.d.ts.map +1 -1
  639. package/build-types/button-group/index.d.ts +25 -0
  640. package/build-types/button-group/index.d.ts.map +1 -0
  641. package/build-types/button-group/stories/index.d.ts +12 -0
  642. package/build-types/button-group/stories/index.d.ts.map +1 -0
  643. package/build-types/button-group/types.d.ts +11 -0
  644. package/build-types/button-group/types.d.ts.map +1 -0
  645. package/build-types/card/card/hook.d.ts +0 -1
  646. package/build-types/card/card/hook.d.ts.map +1 -1
  647. package/build-types/card/card-body/hook.d.ts +0 -1
  648. package/build-types/card/card-body/hook.d.ts.map +1 -1
  649. package/build-types/card/card-divider/hook.d.ts +0 -1
  650. package/build-types/card/card-divider/hook.d.ts.map +1 -1
  651. package/build-types/card/card-footer/hook.d.ts +0 -1
  652. package/build-types/card/card-footer/hook.d.ts.map +1 -1
  653. package/build-types/card/card-header/hook.d.ts +0 -1
  654. package/build-types/card/card-header/hook.d.ts.map +1 -1
  655. package/build-types/card/card-media/hook.d.ts +0 -1
  656. package/build-types/card/card-media/hook.d.ts.map +1 -1
  657. package/build-types/card/types.d.ts +1 -1
  658. package/build-types/card/types.d.ts.map +1 -1
  659. package/build-types/checkbox-control/index.d.ts +26 -0
  660. package/build-types/checkbox-control/index.d.ts.map +1 -0
  661. package/build-types/checkbox-control/stories/index.d.ts +13 -0
  662. package/build-types/checkbox-control/stories/index.d.ts.map +1 -0
  663. package/build-types/checkbox-control/test/index.d.ts +2 -0
  664. package/build-types/checkbox-control/test/index.d.ts.map +1 -0
  665. package/build-types/checkbox-control/types.d.ts +35 -0
  666. package/build-types/checkbox-control/types.d.ts.map +1 -0
  667. package/build-types/color-palette/index.d.ts +1 -0
  668. package/build-types/color-palette/index.d.ts.map +1 -1
  669. package/build-types/color-palette/test/utils.d.ts +2 -0
  670. package/build-types/color-palette/test/utils.d.ts.map +1 -0
  671. package/build-types/color-picker/color-copy-button.d.ts +4 -0
  672. package/build-types/color-picker/color-copy-button.d.ts.map +1 -0
  673. package/build-types/color-picker/component.d.ts.map +1 -1
  674. package/build-types/color-picker/hex-input.d.ts.map +1 -1
  675. package/build-types/color-picker/styles.d.ts +8 -8
  676. package/build-types/color-picker/styles.d.ts.map +1 -1
  677. package/build-types/color-picker/types.d.ts +8 -0
  678. package/build-types/color-picker/types.d.ts.map +1 -1
  679. package/build-types/confirm-dialog/component.d.ts.map +1 -1
  680. package/build-types/date-time/date/index.d.ts +25 -0
  681. package/build-types/date-time/date/index.d.ts.map +1 -0
  682. package/build-types/date-time/date/styles.d.ts +23 -0
  683. package/build-types/date-time/date/styles.d.ts.map +1 -0
  684. package/build-types/date-time/date/test/index.d.ts +2 -0
  685. package/build-types/date-time/date/test/index.d.ts.map +1 -0
  686. package/build-types/date-time/date/test/utils.d.ts +2 -0
  687. package/build-types/date-time/date/test/utils.d.ts.map +1 -0
  688. package/build-types/date-time/date/utils.d.ts +15 -0
  689. package/build-types/date-time/date/utils.d.ts.map +1 -0
  690. package/build-types/date-time/date-time/index.d.ts +33 -0
  691. package/build-types/date-time/date-time/index.d.ts.map +1 -0
  692. package/build-types/date-time/date-time/styles.d.ts +6 -0
  693. package/build-types/date-time/date-time/styles.d.ts.map +1 -0
  694. package/build-types/date-time/index.d.ts +9 -0
  695. package/build-types/date-time/index.d.ts.map +1 -0
  696. package/build-types/date-time/stories/date-time.d.ts +14 -0
  697. package/build-types/date-time/stories/date-time.d.ts.map +1 -0
  698. package/build-types/date-time/stories/date.d.ts +14 -0
  699. package/build-types/date-time/stories/date.d.ts.map +1 -0
  700. package/build-types/date-time/stories/time.d.ts +12 -0
  701. package/build-types/date-time/stories/time.d.ts.map +1 -0
  702. package/build-types/date-time/stories/utils.d.ts +3 -0
  703. package/build-types/date-time/stories/utils.d.ts.map +1 -0
  704. package/build-types/date-time/time/index.d.ts +25 -0
  705. package/build-types/date-time/time/index.d.ts.map +1 -0
  706. package/build-types/date-time/time/styles.d.ts +111 -0
  707. package/build-types/date-time/time/styles.d.ts.map +1 -0
  708. package/build-types/date-time/time/test/index.d.ts +2 -0
  709. package/build-types/date-time/time/test/index.d.ts.map +1 -0
  710. package/build-types/date-time/time/timezone.d.ts +8 -0
  711. package/build-types/date-time/time/timezone.d.ts.map +1 -0
  712. package/build-types/date-time/types.d.ts +90 -0
  713. package/build-types/date-time/types.d.ts.map +1 -0
  714. package/build-types/divider/styles.d.ts.map +1 -1
  715. package/build-types/dropdown/index.d.ts.map +1 -1
  716. package/build-types/dropdown-menu/index.d.ts.map +1 -1
  717. package/build-types/elevation/hook.d.ts +0 -1
  718. package/build-types/elevation/hook.d.ts.map +1 -1
  719. package/build-types/external-link/index.d.ts +17 -0
  720. package/build-types/external-link/index.d.ts.map +1 -0
  721. package/build-types/external-link/stories/index.d.ts +12 -0
  722. package/build-types/external-link/stories/index.d.ts.map +1 -0
  723. package/build-types/external-link/styles/external-link-styles.d.ts +10 -0
  724. package/build-types/external-link/styles/external-link-styles.d.ts.map +1 -0
  725. package/build-types/external-link/types.d.ts +15 -0
  726. package/build-types/external-link/types.d.ts.map +1 -0
  727. package/build-types/flex/flex/hook.d.ts +0 -1
  728. package/build-types/flex/flex/hook.d.ts.map +1 -1
  729. package/build-types/flex/flex-block/hook.d.ts +0 -1
  730. package/build-types/flex/flex-block/hook.d.ts.map +1 -1
  731. package/build-types/flex/flex-item/hook.d.ts +0 -1
  732. package/build-types/flex/flex-item/hook.d.ts.map +1 -1
  733. package/build-types/form-token-field/index.d.ts +15 -0
  734. package/build-types/form-token-field/index.d.ts.map +1 -0
  735. package/build-types/form-token-field/stories/index.d.ts +13 -0
  736. package/build-types/form-token-field/stories/index.d.ts.map +1 -0
  737. package/build-types/form-token-field/suggestions-list.d.ts +10 -0
  738. package/build-types/form-token-field/suggestions-list.d.ts.map +1 -0
  739. package/build-types/form-token-field/test/lib/fixtures.d.ts +26 -0
  740. package/build-types/form-token-field/test/lib/fixtures.d.ts.map +1 -0
  741. package/build-types/form-token-field/test/lib/token-field-wrapper.d.ts +18 -0
  742. package/build-types/form-token-field/test/lib/token-field-wrapper.d.ts.map +1 -0
  743. package/build-types/form-token-field/token-input.d.ts +12 -0
  744. package/build-types/form-token-field/token-input.d.ts.map +1 -0
  745. package/build-types/form-token-field/token.d.ts +4 -0
  746. package/build-types/form-token-field/token.d.ts.map +1 -0
  747. package/build-types/form-token-field/types.d.ts +176 -0
  748. package/build-types/form-token-field/types.d.ts.map +1 -0
  749. package/build-types/grid/hook.d.ts +0 -1
  750. package/build-types/grid/hook.d.ts.map +1 -1
  751. package/build-types/h-stack/hook.d.ts +0 -1
  752. package/build-types/h-stack/hook.d.ts.map +1 -1
  753. package/build-types/heading/hook.d.ts +0 -1
  754. package/build-types/heading/hook.d.ts.map +1 -1
  755. package/build-types/higher-order/with-focus-outside/index.d.ts +1 -1
  756. package/build-types/input-control/index.d.ts +1 -1
  757. package/build-types/input-control/index.d.ts.map +1 -1
  758. package/build-types/input-control/input-field.d.ts +1 -1
  759. package/build-types/input-control/input-field.d.ts.map +1 -1
  760. package/build-types/input-control/reducer/reducer.d.ts +5 -3
  761. package/build-types/input-control/reducer/reducer.d.ts.map +1 -1
  762. package/build-types/input-control/reducer/state.d.ts +2 -2
  763. package/build-types/input-control/reducer/state.d.ts.map +1 -1
  764. package/build-types/input-control/stories/index.d.ts +5 -5
  765. package/build-types/input-control/stories/index.d.ts.map +1 -1
  766. package/build-types/input-control/utils.d.ts +17 -0
  767. package/build-types/input-control/utils.d.ts.map +1 -1
  768. package/build-types/item-group/item/hook.d.ts +0 -1
  769. package/build-types/item-group/item/hook.d.ts.map +1 -1
  770. package/build-types/item-group/item-group/hook.d.ts +0 -1
  771. package/build-types/item-group/item-group/hook.d.ts.map +1 -1
  772. package/build-types/navigator/navigator-back-button/hook.d.ts +0 -1
  773. package/build-types/navigator/navigator-back-button/hook.d.ts.map +1 -1
  774. package/build-types/navigator/navigator-button/hook.d.ts +0 -1
  775. package/build-types/navigator/navigator-button/hook.d.ts.map +1 -1
  776. package/build-types/navigator/navigator-provider/component.d.ts.map +1 -1
  777. package/build-types/number-control/styles/number-control-styles.d.ts +1 -1
  778. package/build-types/popover/index.d.ts +6 -7
  779. package/build-types/popover/index.d.ts.map +1 -1
  780. package/build-types/radio-control/index.d.ts +31 -0
  781. package/build-types/radio-control/index.d.ts.map +1 -0
  782. package/build-types/radio-control/stories/index.d.ts +12 -0
  783. package/build-types/radio-control/stories/index.d.ts.map +1 -0
  784. package/build-types/radio-control/types.d.ts +29 -0
  785. package/build-types/radio-control/types.d.ts.map +1 -0
  786. package/build-types/range-control/index.d.ts +5 -5
  787. package/build-types/range-control/index.d.ts.map +1 -1
  788. package/build-types/range-control/input-range.d.ts +4 -4
  789. package/build-types/range-control/input-range.d.ts.map +1 -1
  790. package/build-types/range-control/utils.d.ts.map +1 -1
  791. package/build-types/resizable-box/index.d.ts +1 -1
  792. package/build-types/resizable-box/resize-tooltip/index.d.ts +1 -1
  793. package/build-types/resizable-box/resize-tooltip/index.d.ts.map +1 -1
  794. package/build-types/resizable-box/resize-tooltip/utils.d.ts.map +1 -1
  795. package/build-types/scrollable/hook.d.ts +0 -1
  796. package/build-types/scrollable/hook.d.ts.map +1 -1
  797. package/build-types/select-control/index.d.ts +1 -1
  798. package/build-types/select-control/index.d.ts.map +1 -1
  799. package/build-types/select-control/stories/index.d.ts +3 -3
  800. package/build-types/select-control/stories/index.d.ts.map +1 -1
  801. package/build-types/select-control/styles/select-control-styles.d.ts.map +1 -1
  802. package/build-types/select-control/types.d.ts +1 -1
  803. package/build-types/select-control/types.d.ts.map +1 -1
  804. package/build-types/slot-fill/fill.d.ts.map +1 -1
  805. package/build-types/slot-fill/slot.d.ts.map +1 -1
  806. package/build-types/spacer/hook.d.ts +0 -1
  807. package/build-types/spacer/hook.d.ts.map +1 -1
  808. package/build-types/surface/component.d.ts +3 -2
  809. package/build-types/surface/component.d.ts.map +1 -1
  810. package/build-types/surface/hook.d.ts +4 -5
  811. package/build-types/surface/hook.d.ts.map +1 -1
  812. package/build-types/surface/index.d.ts +2 -2
  813. package/build-types/surface/index.d.ts.map +1 -1
  814. package/build-types/surface/stories/index.d.ts +12 -0
  815. package/build-types/surface/stories/index.d.ts.map +1 -0
  816. package/build-types/surface/styles.d.ts +10 -21
  817. package/build-types/surface/styles.d.ts.map +1 -1
  818. package/build-types/surface/test/index.d.ts +2 -0
  819. package/build-types/{flyout/flyout → surface/test}/index.d.ts.map +1 -1
  820. package/build-types/surface/types.d.ts +1 -1
  821. package/build-types/surface/types.d.ts.map +1 -1
  822. package/build-types/text/hook.d.ts +0 -1
  823. package/build-types/text/hook.d.ts.map +1 -1
  824. package/build-types/text/utils.d.ts.map +1 -1
  825. package/build-types/text-control/index.d.ts +1 -1
  826. package/build-types/text-control/index.d.ts.map +1 -1
  827. package/build-types/text-control/stories/index.d.ts.map +1 -1
  828. package/build-types/textarea-control/index.d.ts +29 -0
  829. package/build-types/textarea-control/index.d.ts.map +1 -0
  830. package/build-types/textarea-control/stories/index.d.ts +12 -0
  831. package/build-types/textarea-control/stories/index.d.ts.map +1 -0
  832. package/build-types/textarea-control/styles/textarea-control-styles.d.ts +6 -0
  833. package/build-types/textarea-control/styles/textarea-control-styles.d.ts.map +1 -0
  834. package/build-types/textarea-control/types.d.ts +26 -0
  835. package/build-types/textarea-control/types.d.ts.map +1 -0
  836. package/build-types/toggle-group-control/toggle-group-control/component.d.ts.map +1 -1
  837. package/build-types/toggle-group-control/toggle-group-control/toggle-group-control-backdrop.d.ts.map +1 -1
  838. package/build-types/tools-panel/tools-panel/hook.d.ts +0 -1
  839. package/build-types/tools-panel/tools-panel/hook.d.ts.map +1 -1
  840. package/build-types/tools-panel/tools-panel-header/hook.d.ts +0 -1
  841. package/build-types/tools-panel/tools-panel-header/hook.d.ts.map +1 -1
  842. package/build-types/tools-panel/tools-panel-item/hook.d.ts +0 -1
  843. package/build-types/tools-panel/tools-panel-item/hook.d.ts.map +1 -1
  844. package/build-types/tooltip/index.d.ts.map +1 -1
  845. package/build-types/tree-select/index.d.ts +53 -0
  846. package/build-types/tree-select/index.d.ts.map +1 -0
  847. package/build-types/tree-select/stories/index.d.ts +12 -0
  848. package/build-types/tree-select/stories/index.d.ts.map +1 -0
  849. package/build-types/tree-select/types.d.ts +30 -0
  850. package/build-types/tree-select/types.d.ts.map +1 -0
  851. package/build-types/truncate/hook.d.ts +0 -1
  852. package/build-types/truncate/hook.d.ts.map +1 -1
  853. package/build-types/ui/context/wordpress-component.d.ts.map +1 -1
  854. package/build-types/ui/control-group/hook.d.ts +0 -1
  855. package/build-types/ui/control-group/hook.d.ts.map +1 -1
  856. package/build-types/ui/control-label/hook.d.ts +0 -1
  857. package/build-types/ui/control-label/hook.d.ts.map +1 -1
  858. package/build-types/ui/form-group/use-form-group.d.ts +0 -2
  859. package/build-types/ui/form-group/use-form-group.d.ts.map +1 -1
  860. package/build-types/unit-control/index.d.ts +1 -1
  861. package/build-types/unit-control/index.d.ts.map +1 -1
  862. package/build-types/unit-control/stories/index.d.ts.map +1 -1
  863. package/build-types/utils/hooks/index.d.ts +0 -1
  864. package/build-types/utils/unit-values.d.ts.map +1 -1
  865. package/build-types/utils/values.d.ts.map +1 -1
  866. package/build-types/v-stack/hook.d.ts +0 -1
  867. package/build-types/v-stack/hook.d.ts.map +1 -1
  868. package/build-types/z-stack/component.d.ts +18 -28
  869. package/build-types/z-stack/component.d.ts.map +1 -1
  870. package/build-types/z-stack/stories/index.d.ts +6 -0
  871. package/build-types/z-stack/stories/index.d.ts.map +1 -0
  872. package/build-types/z-stack/types.d.ts +33 -0
  873. package/build-types/z-stack/types.d.ts.map +1 -0
  874. package/package.json +20 -20
  875. package/src/alignment-matrix-control/index.js +6 -3
  876. package/src/angle-picker-control/index.js +1 -1
  877. package/src/autocomplete/autocompleter-ui.js +1 -1
  878. package/src/autocomplete/autocompleter-ui.native.js +2 -2
  879. package/src/autocomplete/index.js +21 -9
  880. package/src/autocomplete/style.scss +1 -1
  881. package/src/base-control/stories/index.tsx +2 -3
  882. package/src/border-box-control/border-box-control/README.md +10 -14
  883. package/src/border-box-control/border-box-control/component.tsx +21 -4
  884. package/src/border-box-control/border-box-control/hook.ts +2 -2
  885. package/src/border-box-control/border-box-control-linked-button/component.tsx +2 -5
  886. package/src/border-box-control/border-box-control-linked-button/hook.ts +10 -6
  887. package/src/border-box-control/border-box-control-split-controls/component.tsx +26 -7
  888. package/src/border-box-control/border-box-control-split-controls/hook.ts +18 -4
  889. package/src/border-box-control/border-box-control-visualizer/hook.ts +14 -6
  890. package/src/border-box-control/stories/index.js +1 -0
  891. package/src/border-box-control/styles.ts +20 -9
  892. package/src/border-box-control/types.ts +40 -14
  893. package/src/border-box-control/utils.ts +5 -2
  894. package/src/border-control/border-control/README.md +0 -7
  895. package/src/border-control/border-control/component.tsx +4 -2
  896. package/src/border-control/border-control/hook.ts +15 -7
  897. package/src/border-control/border-control-dropdown/component.tsx +18 -11
  898. package/src/border-control/border-control-dropdown/hook.ts +7 -5
  899. package/src/border-control/stories/index.js +1 -0
  900. package/src/border-control/styles.ts +82 -22
  901. package/src/border-control/types.ts +18 -6
  902. package/src/box-control/all-input-control.js +2 -4
  903. package/src/box-control/axial-input-controls.js +4 -6
  904. package/src/box-control/index.js +2 -5
  905. package/src/box-control/input-controls.js +33 -36
  906. package/src/box-control/test/index.js +120 -109
  907. package/src/box-control/unit-control.js +2 -1
  908. package/src/button/index.native.js +34 -20
  909. package/src/button-group/index.tsx +47 -0
  910. package/src/button-group/stories/index.tsx +41 -0
  911. package/src/button-group/types.ts +11 -0
  912. package/src/card/stories/index.js +10 -5
  913. package/src/card/types.ts +1 -1
  914. package/src/checkbox-control/README.md +10 -8
  915. package/src/checkbox-control/{index.js → index.tsx} +51 -17
  916. package/src/checkbox-control/stories/{index.js → index.tsx} +48 -27
  917. package/src/checkbox-control/test/__snapshots__/index.tsx.snap +42 -0
  918. package/src/checkbox-control/test/index.tsx +110 -0
  919. package/src/checkbox-control/types.ts +36 -0
  920. package/src/circular-option-picker/style.scss +1 -0
  921. package/src/color-palette/index.js +17 -17
  922. package/src/color-palette/index.native.js +3 -0
  923. package/src/color-palette/stories/index.js +25 -1
  924. package/src/color-palette/style.scss +3 -18
  925. package/src/color-palette/test/utils.ts +24 -0
  926. package/src/color-picker/color-copy-button.tsx +76 -0
  927. package/src/color-picker/component.tsx +18 -38
  928. package/src/color-picker/hex-input.tsx +16 -0
  929. package/src/color-picker/index.native.js +7 -4
  930. package/src/color-picker/styles.ts +5 -1
  931. package/src/color-picker/types.ts +9 -0
  932. package/src/combobox-control/index.js +4 -2
  933. package/src/confirm-dialog/component.tsx +7 -8
  934. package/src/custom-gradient-bar/constants.js +2 -2
  935. package/src/custom-gradient-bar/control-points.js +20 -16
  936. package/src/custom-gradient-bar/index.js +11 -11
  937. package/src/custom-gradient-bar/test/utils.js +79 -0
  938. package/src/custom-gradient-bar/utils.js +6 -18
  939. package/src/custom-gradient-picker/style.scss +1 -3
  940. package/src/custom-gradient-picker/utils.js +5 -4
  941. package/src/custom-select-control/index.js +2 -1
  942. package/src/custom-select-control/stories/index.js +1 -2
  943. package/src/date-time/README.md +29 -10
  944. package/src/date-time/{datepicker.scss → date/datepicker.scss} +0 -0
  945. package/src/date-time/{date.js → date/index.tsx} +77 -25
  946. package/src/date-time/date/style.scss +85 -0
  947. package/src/date-time/date/styles.ts +55 -0
  948. package/src/date-time/{test/date.js → date/test/index.tsx} +5 -4
  949. package/src/date-time/{test/utils.js → date/test/utils.ts} +1 -1
  950. package/src/date-time/date/utils.ts +20 -0
  951. package/src/date-time/date-time/index.tsx +215 -0
  952. package/src/date-time/date-time/styles.ts +8 -0
  953. package/src/date-time/index.ts +9 -0
  954. package/src/date-time/stories/date-time.tsx +73 -0
  955. package/src/date-time/stories/date.tsx +72 -0
  956. package/src/date-time/stories/time.tsx +51 -0
  957. package/src/date-time/stories/utils.ts +9 -0
  958. package/src/date-time/style.scss +1 -262
  959. package/src/date-time/time/index.tsx +356 -0
  960. package/src/date-time/time/styles.ts +119 -0
  961. package/src/date-time/{test/time.js → time/test/index.tsx} +119 -57
  962. package/src/date-time/{timezone.js → time/timezone.tsx} +9 -5
  963. package/src/date-time/types.ts +104 -0
  964. package/src/dimension-control/index.js +1 -2
  965. package/src/disabled/index.js +1 -1
  966. package/src/divider/styles.ts +2 -3
  967. package/src/draggable/index.js +3 -3
  968. package/src/draggable/index.native.js +234 -0
  969. package/src/draggable/style.native.scss +3 -0
  970. package/src/draggable/test/index.native.js +130 -0
  971. package/src/drop-zone/provider.js +1 -2
  972. package/src/dropdown/index.js +14 -5
  973. package/src/dropdown/style.scss +1 -1
  974. package/src/dropdown-menu/index.js +11 -1
  975. package/src/dropdown-menu/index.native.js +11 -1
  976. package/src/external-link/README.md +18 -0
  977. package/src/external-link/{index.js → index.tsx} +26 -6
  978. package/src/external-link/stories/index.tsx +36 -0
  979. package/src/external-link/styles/{external-link-styles.js → external-link-styles.ts} +0 -0
  980. package/src/external-link/types.ts +15 -0
  981. package/src/flex/flex/hook.js +4 -1
  982. package/src/focal-point-picker/controls.js +1 -5
  983. package/src/focal-point-picker/index.js +2 -8
  984. package/src/focal-point-picker/index.native.js +3 -3
  985. package/src/focal-point-picker/media.js +2 -5
  986. package/src/font-size-picker/index.js +3 -1
  987. package/src/form-file-upload/test/index.js +8 -4
  988. package/src/form-toggle/index.js +2 -1
  989. package/src/form-toggle/test/index.js +1 -2
  990. package/src/form-token-field/index.tsx +694 -0
  991. package/src/form-token-field/stories/index.tsx +103 -0
  992. package/src/form-token-field/style.scss +2 -1
  993. package/src/form-token-field/{suggestions-list.js → suggestions-list.tsx} +45 -29
  994. package/src/form-token-field/test/index.js +64 -31
  995. package/src/form-token-field/test/lib/{token-field-wrapper.js → token-field-wrapper.tsx} +24 -9
  996. package/src/form-token-field/token-input.tsx +76 -0
  997. package/src/form-token-field/{token.js → token.tsx} +4 -2
  998. package/src/form-token-field/types.ts +178 -0
  999. package/src/gradient-picker/index.js +4 -3
  1000. package/src/heading/hook.ts +5 -4
  1001. package/src/higher-order/navigate-regions/index.js +7 -5
  1002. package/src/higher-order/with-filters/test/index.js +43 -36
  1003. package/src/higher-order/with-focus-return/index.js +14 -13
  1004. package/src/higher-order/with-spoken-messages/index.js +8 -7
  1005. package/src/higher-order/with-spoken-messages/test/index.js +1 -1
  1006. package/src/icon/index.tsx +2 -2
  1007. package/src/index.js +0 -1
  1008. package/src/index.native.js +1 -0
  1009. package/src/input-control/index.tsx +10 -3
  1010. package/src/input-control/input-field.tsx +12 -31
  1011. package/src/input-control/reducer/reducer.ts +63 -47
  1012. package/src/input-control/reducer/state.ts +2 -3
  1013. package/src/input-control/utils.ts +56 -2
  1014. package/src/item-group/stories/index.js +24 -19
  1015. package/src/menu-item/test/index.js +2 -1
  1016. package/src/menu-items-choice/index.js +2 -5
  1017. package/src/mobile/bottom-sheet/bottom-sheet-context.native.js +2 -4
  1018. package/src/mobile/bottom-sheet/bottom-sheet-navigation/navigation-screen.native.js +1 -1
  1019. package/src/mobile/bottom-sheet/bottom-sheet-navigation/test/navigation-container.native.js +1 -1
  1020. package/src/mobile/bottom-sheet/cell.native.js +2 -3
  1021. package/src/mobile/bottom-sheet/cycle-picker-cell.native.js +3 -5
  1022. package/src/mobile/bottom-sheet/index.native.js +15 -18
  1023. package/src/mobile/bottom-sheet/picker-cell.native.js +2 -7
  1024. package/src/mobile/bottom-sheet/stepper-cell/index.native.js +4 -6
  1025. package/src/mobile/bottom-sheet-select-control/index.native.js +7 -2
  1026. package/src/mobile/color-settings/index.native.js +2 -4
  1027. package/src/mobile/global-styles-context/index.native.js +8 -7
  1028. package/src/mobile/gradient/index.native.js +12 -9
  1029. package/src/mobile/gradient/test/index.native.js +1 -3
  1030. package/src/mobile/html-text-input/index.native.js +47 -32
  1031. package/src/mobile/html-text-input/style.android.scss +1 -15
  1032. package/src/mobile/html-text-input/style.ios.scss +1 -15
  1033. package/src/mobile/html-text-input/{style-common.native.scss → style.scss} +16 -0
  1034. package/src/mobile/inserter-button/index.native.js +2 -6
  1035. package/src/mobile/keyboard-aware-flat-list/index.android.js +15 -5
  1036. package/src/mobile/keyboard-aware-flat-list/index.ios.js +75 -46
  1037. package/src/mobile/link-settings/image-link-destinations-screen.native.js +6 -2
  1038. package/src/mobile/media-edit/index.native.js +2 -3
  1039. package/src/mobile/segmented-control/index.native.js +4 -5
  1040. package/src/mobile/utils/test/index.native.js +3 -12
  1041. package/src/modal/index.js +1 -1
  1042. package/src/navigable-container/container.js +3 -2
  1043. package/src/navigable-container/test/menu.js +1 -2
  1044. package/src/navigable-container/test/tabbable.js +1 -2
  1045. package/src/navigation/context.js +2 -5
  1046. package/src/navigation/index.js +2 -1
  1047. package/src/navigation/item/index.js +2 -1
  1048. package/src/navigation/stories/controlled-state.js +1 -1
  1049. package/src/navigation/stories/more-examples.js +2 -3
  1050. package/src/navigation/test/index.js +252 -52
  1051. package/src/navigator/navigator-back-button/hook.ts +14 -12
  1052. package/src/navigator/navigator-button/hook.ts +14 -13
  1053. package/src/navigator/navigator-provider/component.tsx +2 -6
  1054. package/src/navigator/navigator-screen/component.tsx +3 -3
  1055. package/src/navigator/stories/index.js +16 -10
  1056. package/src/notice/index.js +2 -1
  1057. package/src/notice/list.js +3 -1
  1058. package/src/palette-edit/index.js +37 -9
  1059. package/src/palette-edit/style.scss +0 -7
  1060. package/src/palette-edit/test/index.js +63 -0
  1061. package/src/panel/README.md +1 -1
  1062. package/src/panel/body.js +2 -1
  1063. package/src/placeholder/README.md +7 -6
  1064. package/src/placeholder/index.js +27 -10
  1065. package/src/placeholder/style.scss +23 -0
  1066. package/src/placeholder/test/index.js +7 -0
  1067. package/src/popover/README.md +7 -9
  1068. package/src/popover/index.js +256 -370
  1069. package/src/popover/style.scss +20 -190
  1070. package/src/popover/test/__snapshots__/index.js.snap +6 -18
  1071. package/src/query-controls/README.md +1 -1
  1072. package/src/radio-control/README.md +17 -23
  1073. package/src/radio-control/index.tsx +107 -0
  1074. package/src/radio-control/stories/index.tsx +72 -0
  1075. package/src/radio-control/types.ts +32 -0
  1076. package/src/range-control/index.js +4 -2
  1077. package/src/range-control/input-range.js +2 -5
  1078. package/src/range-control/utils.js +3 -1
  1079. package/src/resizable-box/resize-tooltip/index.tsx +2 -1
  1080. package/src/resizable-box/resize-tooltip/utils.ts +5 -10
  1081. package/src/responsive-wrapper/index.js +2 -4
  1082. package/src/sandbox/index.native.js +1 -1
  1083. package/src/sandbox/test/index.js +4 -6
  1084. package/src/search-control/index.js +6 -7
  1085. package/src/select-control/README.md +11 -0
  1086. package/src/select-control/index.tsx +9 -2
  1087. package/src/select-control/stories/index.tsx +3 -4
  1088. package/src/select-control/styles/select-control-styles.ts +6 -3
  1089. package/src/select-control/types.ts +1 -1
  1090. package/src/slot-fill/README.md +1 -1
  1091. package/src/slot-fill/fill.js +1 -5
  1092. package/src/slot-fill/slot.js +12 -2
  1093. package/src/snackbar/index.js +1 -1
  1094. package/src/snackbar/list.js +2 -1
  1095. package/src/spacer/hook.ts +13 -13
  1096. package/src/surface/README.md +15 -15
  1097. package/src/surface/{component.js → component.tsx} +13 -7
  1098. package/src/surface/{hook.js → hook.ts} +13 -12
  1099. package/src/surface/{index.js → index.ts} +0 -0
  1100. package/src/surface/stories/index.tsx +40 -0
  1101. package/src/surface/{styles.js → styles.ts} +15 -44
  1102. package/src/surface/test/__snapshots__/{index.js.snap → index.tsx.snap} +0 -0
  1103. package/src/surface/test/{index.js → index.tsx} +2 -1
  1104. package/src/surface/types.ts +1 -1
  1105. package/src/tab-panel/index.js +3 -1
  1106. package/src/tab-panel/style.scss +1 -1
  1107. package/src/text/hook.js +4 -1
  1108. package/src/text/utils.js +2 -3
  1109. package/src/text-control/stories/index.tsx +4 -6
  1110. package/src/textarea-control/README.md +14 -20
  1111. package/src/textarea-control/index.tsx +86 -0
  1112. package/src/textarea-control/stories/index.tsx +58 -0
  1113. package/src/textarea-control/styles/{textarea-control-styles.js → textarea-control-styles.ts} +0 -0
  1114. package/src/textarea-control/types.ts +30 -0
  1115. package/src/toggle-control/index.js +1 -2
  1116. package/src/toggle-control/index.native.js +2 -6
  1117. package/src/toggle-group-control/test/__snapshots__/index.js.snap +4 -10
  1118. package/src/toggle-group-control/toggle-group-control/component.tsx +7 -3
  1119. package/src/toggle-group-control/toggle-group-control/toggle-group-control-backdrop.tsx +2 -4
  1120. package/src/toolbar/index.js +1 -2
  1121. package/src/tools-panel/tools-panel/hook.ts +2 -4
  1122. package/src/tools-panel/tools-panel-header/hook.ts +2 -5
  1123. package/src/tooltip/index.js +9 -2
  1124. package/src/tooltip/style.scss +2 -4
  1125. package/src/tooltip/test/index.native.js +1 -1
  1126. package/src/tree-grid/roving-tab-index-item.js +2 -4
  1127. package/src/tree-grid/test/index.js +2 -3
  1128. package/src/tree-select/README.md +2 -2
  1129. package/src/tree-select/index.tsx +99 -0
  1130. package/src/tree-select/stories/index.tsx +80 -0
  1131. package/src/tree-select/types.ts +35 -0
  1132. package/src/ui/context/wordpress-component.ts +4 -5
  1133. package/src/ui/form-group/form-group-content.js +4 -4
  1134. package/src/unit-control/index.tsx +7 -9
  1135. package/src/unit-control/stories/index.tsx +8 -12
  1136. package/src/unit-control/test/index.tsx +88 -11
  1137. package/src/utils/hooks/index.js +0 -1
  1138. package/src/utils/hooks/stories/use-cx.js +8 -7
  1139. package/src/utils/hooks/test/use-controlled-state.js +2 -1
  1140. package/src/utils/unit-values.ts +2 -1
  1141. package/src/utils/values.js +2 -3
  1142. package/src/z-stack/README.md +14 -3
  1143. package/src/z-stack/component.tsx +24 -29
  1144. package/src/z-stack/stories/index.tsx +76 -0
  1145. package/src/z-stack/types.ts +33 -0
  1146. package/tsconfig.json +12 -2
  1147. package/tsconfig.tsbuildinfo +1 -1
  1148. package/build/color-picker/color-display.js +0 -184
  1149. package/build/color-picker/color-display.js.map +0 -1
  1150. package/build/date-time/date.js.map +0 -1
  1151. package/build/date-time/time.js +0 -287
  1152. package/build/date-time/time.js.map +0 -1
  1153. package/build/date-time/timezone.js.map +0 -1
  1154. package/build/date-time/utils.js.map +0 -1
  1155. package/build/flyout/context.js +0 -23
  1156. package/build/flyout/context.js.map +0 -1
  1157. package/build/flyout/flyout/component.js +0 -106
  1158. package/build/flyout/flyout/component.js.map +0 -1
  1159. package/build/flyout/flyout/hook.js +0 -53
  1160. package/build/flyout/flyout/hook.js.map +0 -1
  1161. package/build/flyout/flyout/index.js +0 -24
  1162. package/build/flyout/flyout/index.js.map +0 -1
  1163. package/build/flyout/flyout-content/component.js +0 -65
  1164. package/build/flyout/flyout-content/component.js.map +0 -1
  1165. package/build/flyout/flyout-content/index.js +0 -16
  1166. package/build/flyout/flyout-content/index.js.map +0 -1
  1167. package/build/flyout/index.js +0 -16
  1168. package/build/flyout/index.js.map +0 -1
  1169. package/build/flyout/styles.js +0 -46
  1170. package/build/flyout/styles.js.map +0 -1
  1171. package/build/flyout/utils.js +0 -36
  1172. package/build/flyout/utils.js.map +0 -1
  1173. package/build/mobile/html-text-input/container.android.js +0 -41
  1174. package/build/mobile/html-text-input/container.android.js.map +0 -1
  1175. package/build/mobile/html-text-input/container.ios.js +0 -60
  1176. package/build/mobile/html-text-input/container.ios.js.map +0 -1
  1177. package/build/popover/utils.js +0 -322
  1178. package/build/popover/utils.js.map +0 -1
  1179. package/build/utils/hooks/use-combined-ref.js +0 -32
  1180. package/build/utils/hooks/use-combined-ref.js.map +0 -1
  1181. package/build-module/color-picker/color-display.js +0 -170
  1182. package/build-module/color-picker/color-display.js.map +0 -1
  1183. package/build-module/date-time/date.js.map +0 -1
  1184. package/build-module/date-time/time.js +0 -269
  1185. package/build-module/date-time/time.js.map +0 -1
  1186. package/build-module/date-time/timezone.js.map +0 -1
  1187. package/build-module/date-time/utils.js +0 -20
  1188. package/build-module/date-time/utils.js.map +0 -1
  1189. package/build-module/flyout/context.js +0 -11
  1190. package/build-module/flyout/context.js.map +0 -1
  1191. package/build-module/flyout/flyout/component.js +0 -89
  1192. package/build-module/flyout/flyout/component.js.map +0 -1
  1193. package/build-module/flyout/flyout/hook.js +0 -44
  1194. package/build-module/flyout/flyout/hook.js.map +0 -1
  1195. package/build-module/flyout/flyout/index.js +0 -3
  1196. package/build-module/flyout/flyout/index.js.map +0 -1
  1197. package/build-module/flyout/flyout-content/component.js +0 -51
  1198. package/build-module/flyout/flyout-content/component.js.map +0 -1
  1199. package/build-module/flyout/flyout-content/index.js +0 -2
  1200. package/build-module/flyout/flyout-content/index.js.map +0 -1
  1201. package/build-module/flyout/index.js +0 -2
  1202. package/build-module/flyout/index.js.map +0 -1
  1203. package/build-module/flyout/styles.js +0 -27
  1204. package/build-module/flyout/styles.js.map +0 -1
  1205. package/build-module/flyout/utils.js +0 -25
  1206. package/build-module/flyout/utils.js.map +0 -1
  1207. package/build-module/mobile/html-text-input/container.android.js +0 -29
  1208. package/build-module/mobile/html-text-input/container.android.js.map +0 -1
  1209. package/build-module/mobile/html-text-input/container.ios.js +0 -48
  1210. package/build-module/mobile/html-text-input/container.ios.js.map +0 -1
  1211. package/build-module/popover/utils.js +0 -308
  1212. package/build-module/popover/utils.js.map +0 -1
  1213. package/build-module/utils/hooks/use-combined-ref.js +0 -28
  1214. package/build-module/utils/hooks/use-combined-ref.js.map +0 -1
  1215. package/build-types/color-picker/color-display.d.ts +0 -14
  1216. package/build-types/color-picker/color-display.d.ts.map +0 -1
  1217. package/build-types/flyout/context.d.ts +0 -6
  1218. package/build-types/flyout/context.d.ts.map +0 -1
  1219. package/build-types/flyout/flyout/component.d.ts +0 -21
  1220. package/build-types/flyout/flyout/component.d.ts.map +0 -1
  1221. package/build-types/flyout/flyout/hook.d.ts +0 -270
  1222. package/build-types/flyout/flyout/hook.d.ts.map +0 -1
  1223. package/build-types/flyout/flyout/index.d.ts +0 -3
  1224. package/build-types/flyout/flyout-content/component.d.ts +0 -3
  1225. package/build-types/flyout/flyout-content/component.d.ts.map +0 -1
  1226. package/build-types/flyout/flyout-content/index.d.ts +0 -2
  1227. package/build-types/flyout/flyout-content/index.d.ts.map +0 -1
  1228. package/build-types/flyout/index.d.ts +0 -2
  1229. package/build-types/flyout/index.d.ts.map +0 -1
  1230. package/build-types/flyout/styles.d.ts +0 -22
  1231. package/build-types/flyout/styles.d.ts.map +0 -1
  1232. package/build-types/flyout/types.d.ts +0 -80
  1233. package/build-types/flyout/types.d.ts.map +0 -1
  1234. package/build-types/flyout/utils.d.ts +0 -8
  1235. package/build-types/flyout/utils.d.ts.map +0 -1
  1236. package/build-types/popover/utils.d.ts +0 -70
  1237. package/build-types/popover/utils.d.ts.map +0 -1
  1238. package/build-types/utils/hooks/use-combined-ref.d.ts +0 -8
  1239. package/build-types/utils/hooks/use-combined-ref.d.ts.map +0 -1
  1240. package/src/button-group/index.js +0 -17
  1241. package/src/button-group/stories/index.js +0 -21
  1242. package/src/color-picker/color-display.tsx +0 -169
  1243. package/src/date-time/index.js +0 -170
  1244. package/src/date-time/stories/date.js +0 -17
  1245. package/src/date-time/stories/index.js +0 -91
  1246. package/src/date-time/stories/time.js +0 -32
  1247. package/src/date-time/time.js +0 -310
  1248. package/src/date-time/utils.js +0 -18
  1249. package/src/external-link/stories/index.js +0 -23
  1250. package/src/flyout/context.js +0 -10
  1251. package/src/flyout/flyout/README.md +0 -98
  1252. package/src/flyout/flyout/component.js +0 -111
  1253. package/src/flyout/flyout/hook.js +0 -45
  1254. package/src/flyout/flyout/index.js +0 -2
  1255. package/src/flyout/flyout-content/component.js +0 -53
  1256. package/src/flyout/flyout-content/index.js +0 -1
  1257. package/src/flyout/index.js +0 -1
  1258. package/src/flyout/stories/index.js +0 -24
  1259. package/src/flyout/styles.ts +0 -41
  1260. package/src/flyout/test/__snapshots__/index.js.snap +0 -186
  1261. package/src/flyout/test/index.js +0 -103
  1262. package/src/flyout/types.ts +0 -84
  1263. package/src/flyout/utils.js +0 -23
  1264. package/src/form-token-field/index.js +0 -725
  1265. package/src/form-token-field/stories/index.js +0 -102
  1266. package/src/form-token-field/token-input.js +0 -81
  1267. package/src/mobile/html-text-input/container.android.js +0 -23
  1268. package/src/mobile/html-text-input/container.ios.js +0 -50
  1269. package/src/popover/test/utils.js +0 -304
  1270. package/src/popover/utils.js +0 -396
  1271. package/src/radio-control/index.js +0 -69
  1272. package/src/radio-control/stories/index.js +0 -41
  1273. package/src/surface/stories/index.js +0 -46
  1274. package/src/textarea-control/index.js +0 -45
  1275. package/src/textarea-control/stories/index.js +0 -48
  1276. package/src/tree-select/index.js +0 -48
  1277. package/src/tree-select/stories/index.js +0 -80
  1278. package/src/utils/hooks/use-combined-ref.ts +0 -28
  1279. package/src/z-stack/stories/index.js +0 -70
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/components/src/draggable/index.js"],"names":["useEffect","useRef","throttle","dragImageClass","cloneWrapperClass","clonePadding","bodyClass","Draggable","children","onDragStart","onDragOver","onDragEnd","cloneClassname","elementId","transferData","__experimentalTransferDataType","transferDataType","__experimentalDragComponent","dragComponent","dragComponentRef","cleanup","end","event","preventDefault","current","start","ownerDocument","target","dataTransfer","setData","JSON","stringify","cloneWrapper","createElement","style","top","left","dragImage","setDragImage","classList","add","body","appendChild","x","y","clientX","clientY","transform","clonedDragComponent","innerHTML","element","getElementById","elementRect","getBoundingClientRect","elementWrapper","parentNode","elementTopOffset","parseInt","elementLeftOffset","width","clone","cloneNode","id","Array","from","querySelectorAll","forEach","child","removeChild","cursorLeft","cursorTop","over","e","nextX","nextY","throttledDragOver","addEventListener","persist","timerId","setTimeout","remove","removeEventListener","clearTimeout","onDraggableStart","onDraggableEnd","display"],"mappings":"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","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useEffect, useRef } from '@wordpress/element';\n\n/**\n * External dependencies\n */\nimport { throttle } from 'lodash';\n\nconst dragImageClass = 'components-draggable__invisible-drag-image';\nconst cloneWrapperClass = 'components-draggable__clone';\nconst clonePadding = 0;\nconst bodyClass = 'is-dragging-components-draggable';\n\n/**\n * @typedef RenderProp\n * @property {(event: import('react').DragEvent) => void} onDraggableStart `onDragStart` handler.\n * @property {(event: import('react').DragEvent) => void} onDraggableEnd `onDragEnd` handler.\n */\n\n/**\n * @typedef Props\n * @property {(props: RenderProp) => JSX.Element | null} children Children.\n * @property {(event: import('react').DragEvent) => void} [onDragStart] Callback when dragging starts.\n * @property {(event: import('react').DragEvent) => void} [onDragOver] Callback when dragging happens over the document.\n * @property {(event: import('react').DragEvent) => void} [onDragEnd] Callback when dragging ends.\n * @property {string} [cloneClassname] Classname for the cloned element.\n * @property {string} [elementId] ID for the element.\n * @property {any} [transferData] Transfer data for the drag event.\n * @property {string} [__experimentalTransferDataType] The transfer data type to set.\n * @property {import('react').ReactNode} __experimentalDragComponent Component to show when dragging.\n */\n\n/**\n * @param {Props} props\n * @return {JSX.Element} A draggable component.\n */\nexport default function Draggable( {\n\tchildren,\n\tonDragStart,\n\tonDragOver,\n\tonDragEnd,\n\tcloneClassname,\n\telementId,\n\ttransferData,\n\t__experimentalTransferDataType: transferDataType = 'text',\n\t__experimentalDragComponent: dragComponent,\n} ) {\n\t/** @type {import('react').MutableRefObject<HTMLDivElement | null>} */\n\tconst dragComponentRef = useRef( null );\n\tconst cleanup = useRef( () => {} );\n\n\t/**\n\t * Removes the element clone, resets cursor, and removes drag listener.\n\t *\n\t * @param {import('react').DragEvent} event The non-custom DragEvent.\n\t */\n\tfunction end( event ) {\n\t\tevent.preventDefault();\n\t\tcleanup.current();\n\n\t\tif ( onDragEnd ) {\n\t\t\tonDragEnd( event );\n\t\t}\n\t}\n\n\t/**\n\t * This method does a couple of things:\n\t *\n\t * - Clones the current element and spawns clone over original element.\n\t * - Adds a fake temporary drag image to avoid browser defaults.\n\t * - Sets transfer data.\n\t * - Adds dragover listener.\n\t *\n\t * @param {import('react').DragEvent} event The non-custom DragEvent.\n\t */\n\tfunction start( event ) {\n\t\t// @ts-ignore We know that ownerDocument does exist on an Element\n\t\tconst { ownerDocument } = event.target;\n\n\t\tevent.dataTransfer.setData(\n\t\t\ttransferDataType,\n\t\t\tJSON.stringify( transferData )\n\t\t);\n\n\t\tconst cloneWrapper = ownerDocument.createElement( 'div' );\n\t\t// Reset position to 0,0. Natural stacking order will position this lower, even with a transform otherwise.\n\t\tcloneWrapper.style.top = 0;\n\t\tcloneWrapper.style.left = 0;\n\n\t\tconst dragImage = ownerDocument.createElement( 'div' );\n\n\t\t// Set a fake drag image to avoid browser defaults. Remove from DOM\n\t\t// right after. event.dataTransfer.setDragImage is not supported yet in\n\t\t// IE, we need to check for its existence first.\n\t\tif ( 'function' === typeof event.dataTransfer.setDragImage ) {\n\t\t\tdragImage.classList.add( dragImageClass );\n\t\t\townerDocument.body.appendChild( dragImage );\n\t\t\tevent.dataTransfer.setDragImage( dragImage, 0, 0 );\n\t\t}\n\n\t\tcloneWrapper.classList.add( cloneWrapperClass );\n\n\t\tif ( cloneClassname ) {\n\t\t\tcloneWrapper.classList.add( cloneClassname );\n\t\t}\n\n\t\tlet x = 0;\n\t\tlet y = 0;\n\t\t// If a dragComponent is defined, the following logic will clone the\n\t\t// HTML node and inject it into the cloneWrapper.\n\t\tif ( dragComponentRef.current ) {\n\t\t\t// Position dragComponent at the same position as the cursor.\n\t\t\tx = event.clientX;\n\t\t\ty = event.clientY;\n\t\t\tcloneWrapper.style.transform = `translate( ${ x }px, ${ y }px )`;\n\n\t\t\tconst clonedDragComponent = ownerDocument.createElement( 'div' );\n\t\t\tclonedDragComponent.innerHTML = dragComponentRef.current.innerHTML;\n\t\t\tcloneWrapper.appendChild( clonedDragComponent );\n\n\t\t\t// Inject the cloneWrapper into the DOM.\n\t\t\townerDocument.body.appendChild( cloneWrapper );\n\t\t} else {\n\t\t\tconst element = ownerDocument.getElementById( elementId );\n\n\t\t\t// Prepare element clone and append to element wrapper.\n\t\t\tconst elementRect = element.getBoundingClientRect();\n\t\t\tconst elementWrapper = element.parentNode;\n\t\t\tconst elementTopOffset = parseInt( elementRect.top, 10 );\n\t\t\tconst elementLeftOffset = parseInt( elementRect.left, 10 );\n\n\t\t\tcloneWrapper.style.width = `${\n\t\t\t\telementRect.width + clonePadding * 2\n\t\t\t}px`;\n\n\t\t\tconst clone = element.cloneNode( true );\n\t\t\tclone.id = `clone-${ elementId }`;\n\n\t\t\t// Position clone right over the original element (20px padding).\n\t\t\tx = elementLeftOffset - clonePadding;\n\t\t\ty = elementTopOffset - clonePadding;\n\t\t\tcloneWrapper.style.transform = `translate( ${ x }px, ${ y }px )`;\n\n\t\t\t// Hack: Remove iFrames as it's causing the embeds drag clone to freeze.\n\t\t\tArray.from(\n\t\t\t\tclone.querySelectorAll( 'iframe' )\n\t\t\t).forEach( ( child ) => child.parentNode.removeChild( child ) );\n\n\t\t\tcloneWrapper.appendChild( clone );\n\n\t\t\t// Inject the cloneWrapper into the DOM.\n\t\t\telementWrapper.appendChild( cloneWrapper );\n\t\t}\n\n\t\t// Mark the current cursor coordinates.\n\t\tlet cursorLeft = event.clientX;\n\t\tlet cursorTop = event.clientY;\n\n\t\t/**\n\t\t * @param {import('react').DragEvent<Element>} e\n\t\t */\n\t\tfunction over( e ) {\n\t\t\t// Skip doing any work if mouse has not moved.\n\t\t\tif ( cursorLeft === e.clientX && cursorTop === e.clientY ) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tconst nextX = x + e.clientX - cursorLeft;\n\t\t\tconst nextY = y + e.clientY - cursorTop;\n\t\t\tcloneWrapper.style.transform = `translate( ${ nextX }px, ${ nextY }px )`;\n\t\t\tcursorLeft = e.clientX;\n\t\t\tcursorTop = e.clientY;\n\t\t\tx = nextX;\n\t\t\ty = nextY;\n\t\t\tif ( onDragOver ) {\n\t\t\t\tonDragOver( e );\n\t\t\t}\n\t\t}\n\n\t\t// Aim for 60fps (16 ms per frame) for now. We can potentially use requestAnimationFrame (raf) instead,\n\t\t// note that browsers may throttle raf below 60fps in certain conditions.\n\t\tconst throttledDragOver = throttle( over, 16 );\n\n\t\townerDocument.addEventListener( 'dragover', throttledDragOver );\n\n\t\t// Update cursor to 'grabbing', document wide.\n\t\townerDocument.body.classList.add( bodyClass );\n\n\t\t// Allow the Synthetic Event to be accessed from asynchronous code.\n\t\t// https://reactjs.org/docs/events.html#event-pooling\n\t\tevent.persist();\n\n\t\t/** @type {number | undefined} */\n\t\tlet timerId;\n\n\t\tif ( onDragStart ) {\n\t\t\ttimerId = setTimeout( () => onDragStart( event ) );\n\t\t}\n\n\t\tcleanup.current = () => {\n\t\t\t// Remove drag clone.\n\t\t\tif ( cloneWrapper && cloneWrapper.parentNode ) {\n\t\t\t\tcloneWrapper.parentNode.removeChild( cloneWrapper );\n\t\t\t}\n\n\t\t\tif ( dragImage && dragImage.parentNode ) {\n\t\t\t\tdragImage.parentNode.removeChild( dragImage );\n\t\t\t}\n\n\t\t\t// Reset cursor.\n\t\t\townerDocument.body.classList.remove( bodyClass );\n\n\t\t\townerDocument.removeEventListener( 'dragover', throttledDragOver );\n\n\t\t\tclearTimeout( timerId );\n\t\t};\n\t}\n\n\tuseEffect(\n\t\t() => () => {\n\t\t\tcleanup.current();\n\t\t},\n\t\t[]\n\t);\n\n\treturn (\n\t\t<>\n\t\t\t{ children( {\n\t\t\t\tonDraggableStart: start,\n\t\t\t\tonDraggableEnd: end,\n\t\t\t} ) }\n\t\t\t{ dragComponent && (\n\t\t\t\t<div\n\t\t\t\t\tclassName=\"components-draggable-drag-component-root\"\n\t\t\t\t\tstyle={ { display: 'none' } }\n\t\t\t\t\tref={ dragComponentRef }\n\t\t\t\t>\n\t\t\t\t\t{ dragComponent }\n\t\t\t\t</div>\n\t\t\t) }\n\t\t</>\n\t);\n}\n"]}
1
+ {"version":3,"sources":["@wordpress/components/src/draggable/index.js"],"names":["useEffect","useRef","throttle","dragImageClass","cloneWrapperClass","clonePadding","bodyClass","Draggable","children","onDragStart","onDragOver","onDragEnd","cloneClassname","elementId","transferData","__experimentalTransferDataType","transferDataType","__experimentalDragComponent","dragComponent","dragComponentRef","cleanup","end","event","preventDefault","current","start","ownerDocument","target","dataTransfer","setData","JSON","stringify","cloneWrapper","createElement","style","top","left","dragImage","setDragImage","classList","add","body","appendChild","x","y","clientX","clientY","transform","clonedDragComponent","innerHTML","element","getElementById","elementRect","getBoundingClientRect","elementWrapper","parentNode","elementTopOffset","parseInt","elementLeftOffset","width","clone","cloneNode","id","Array","from","querySelectorAll","forEach","child","removeChild","cursorLeft","cursorTop","over","e","nextX","nextY","throttledDragOver","addEventListener","persist","timerId","setTimeout","remove","removeEventListener","clearTimeout","onDraggableStart","onDraggableEnd","display"],"mappings":"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","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useEffect, useRef } from '@wordpress/element';\n\n/**\n * External dependencies\n */\nimport { throttle } from 'lodash';\n\nconst dragImageClass = 'components-draggable__invisible-drag-image';\nconst cloneWrapperClass = 'components-draggable__clone';\nconst clonePadding = 0;\nconst bodyClass = 'is-dragging-components-draggable';\n\n/**\n * @typedef RenderProp\n * @property {(event: import('react').DragEvent) => void} onDraggableStart `onDragStart` handler.\n * @property {(event: import('react').DragEvent) => void} onDraggableEnd `onDragEnd` handler.\n */\n\n/**\n * @typedef Props\n * @property {(props: RenderProp) => JSX.Element | null} children Children.\n * @property {(event: import('react').DragEvent) => void} [onDragStart] Callback when dragging starts.\n * @property {(event: import('react').DragEvent) => void} [onDragOver] Callback when dragging happens over the document.\n * @property {(event: import('react').DragEvent) => void} [onDragEnd] Callback when dragging ends.\n * @property {string} [cloneClassname] Classname for the cloned element.\n * @property {string} [elementId] ID for the element.\n * @property {any} [transferData] Transfer data for the drag event.\n * @property {string} [__experimentalTransferDataType] The transfer data type to set.\n * @property {import('react').ReactNode} __experimentalDragComponent Component to show when dragging.\n */\n\n/**\n * @param {Props} props\n * @return {JSX.Element} A draggable component.\n */\nexport default function Draggable( {\n\tchildren,\n\tonDragStart,\n\tonDragOver,\n\tonDragEnd,\n\tcloneClassname,\n\telementId,\n\ttransferData,\n\t__experimentalTransferDataType: transferDataType = 'text',\n\t__experimentalDragComponent: dragComponent,\n} ) {\n\t/** @type {import('react').MutableRefObject<HTMLDivElement | null>} */\n\tconst dragComponentRef = useRef( null );\n\tconst cleanup = useRef( () => {} );\n\n\t/**\n\t * Removes the element clone, resets cursor, and removes drag listener.\n\t *\n\t * @param {import('react').DragEvent} event The non-custom DragEvent.\n\t */\n\tfunction end( event ) {\n\t\tevent.preventDefault();\n\t\tcleanup.current();\n\n\t\tif ( onDragEnd ) {\n\t\t\tonDragEnd( event );\n\t\t}\n\t}\n\n\t/**\n\t * This method does a couple of things:\n\t *\n\t * - Clones the current element and spawns clone over original element.\n\t * - Adds a fake temporary drag image to avoid browser defaults.\n\t * - Sets transfer data.\n\t * - Adds dragover listener.\n\t *\n\t * @param {import('react').DragEvent} event The non-custom DragEvent.\n\t */\n\tfunction start( event ) {\n\t\t// @ts-ignore We know that ownerDocument does exist on an Element\n\t\tconst { ownerDocument } = event.target;\n\n\t\tevent.dataTransfer.setData(\n\t\t\ttransferDataType,\n\t\t\tJSON.stringify( transferData )\n\t\t);\n\n\t\tconst cloneWrapper = ownerDocument.createElement( 'div' );\n\t\t// Reset position to 0,0. Natural stacking order will position this lower, even with a transform otherwise.\n\t\tcloneWrapper.style.top = 0;\n\t\tcloneWrapper.style.left = 0;\n\n\t\tconst dragImage = ownerDocument.createElement( 'div' );\n\n\t\t// Set a fake drag image to avoid browser defaults. Remove from DOM\n\t\t// right after. event.dataTransfer.setDragImage is not supported yet in\n\t\t// IE, we need to check for its existence first.\n\t\tif ( 'function' === typeof event.dataTransfer.setDragImage ) {\n\t\t\tdragImage.classList.add( dragImageClass );\n\t\t\townerDocument.body.appendChild( dragImage );\n\t\t\tevent.dataTransfer.setDragImage( dragImage, 0, 0 );\n\t\t}\n\n\t\tcloneWrapper.classList.add( cloneWrapperClass );\n\n\t\tif ( cloneClassname ) {\n\t\t\tcloneWrapper.classList.add( cloneClassname );\n\t\t}\n\n\t\tlet x = 0;\n\t\tlet y = 0;\n\t\t// If a dragComponent is defined, the following logic will clone the\n\t\t// HTML node and inject it into the cloneWrapper.\n\t\tif ( dragComponentRef.current ) {\n\t\t\t// Position dragComponent at the same position as the cursor.\n\t\t\tx = event.clientX;\n\t\t\ty = event.clientY;\n\t\t\tcloneWrapper.style.transform = `translate( ${ x }px, ${ y }px )`;\n\n\t\t\tconst clonedDragComponent = ownerDocument.createElement( 'div' );\n\t\t\tclonedDragComponent.innerHTML = dragComponentRef.current.innerHTML;\n\t\t\tcloneWrapper.appendChild( clonedDragComponent );\n\n\t\t\t// Inject the cloneWrapper into the DOM.\n\t\t\townerDocument.body.appendChild( cloneWrapper );\n\t\t} else {\n\t\t\tconst element = ownerDocument.getElementById( elementId );\n\n\t\t\t// Prepare element clone and append to element wrapper.\n\t\t\tconst elementRect = element.getBoundingClientRect();\n\t\t\tconst elementWrapper = element.parentNode;\n\t\t\tconst elementTopOffset = parseInt( elementRect.top, 10 );\n\t\t\tconst elementLeftOffset = parseInt( elementRect.left, 10 );\n\n\t\t\tcloneWrapper.style.width = `${\n\t\t\t\telementRect.width + clonePadding * 2\n\t\t\t}px`;\n\n\t\t\tconst clone = element.cloneNode( true );\n\t\t\tclone.id = `clone-${ elementId }`;\n\n\t\t\t// Position clone right over the original element (20px padding).\n\t\t\tx = elementLeftOffset - clonePadding;\n\t\t\ty = elementTopOffset - clonePadding;\n\t\t\tcloneWrapper.style.transform = `translate( ${ x }px, ${ y }px )`;\n\n\t\t\t// Hack: Remove iFrames as it's causing the embeds drag clone to freeze.\n\t\t\tArray.from( clone.querySelectorAll( 'iframe' ) ).forEach(\n\t\t\t\t( child ) => child.parentNode.removeChild( child )\n\t\t\t);\n\n\t\t\tcloneWrapper.appendChild( clone );\n\n\t\t\t// Inject the cloneWrapper into the DOM.\n\t\t\telementWrapper.appendChild( cloneWrapper );\n\t\t}\n\n\t\t// Mark the current cursor coordinates.\n\t\tlet cursorLeft = event.clientX;\n\t\tlet cursorTop = event.clientY;\n\n\t\t/**\n\t\t * @param {import('react').DragEvent<Element>} e\n\t\t */\n\t\tfunction over( e ) {\n\t\t\t// Skip doing any work if mouse has not moved.\n\t\t\tif ( cursorLeft === e.clientX && cursorTop === e.clientY ) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\tconst nextX = x + e.clientX - cursorLeft;\n\t\t\tconst nextY = y + e.clientY - cursorTop;\n\t\t\tcloneWrapper.style.transform = `translate( ${ nextX }px, ${ nextY }px )`;\n\t\t\tcursorLeft = e.clientX;\n\t\t\tcursorTop = e.clientY;\n\t\t\tx = nextX;\n\t\t\ty = nextY;\n\t\t\tif ( onDragOver ) {\n\t\t\t\tonDragOver( e );\n\t\t\t}\n\t\t}\n\n\t\t// Aim for 60fps (16 ms per frame) for now. We can potentially use requestAnimationFrame (raf) instead,\n\t\t// note that browsers may throttle raf below 60fps in certain conditions.\n\t\tconst throttledDragOver = throttle( over, 16 );\n\n\t\townerDocument.addEventListener( 'dragover', throttledDragOver );\n\n\t\t// Update cursor to 'grabbing', document wide.\n\t\townerDocument.body.classList.add( bodyClass );\n\n\t\t// Allow the Synthetic Event to be accessed from asynchronous code.\n\t\t// https://reactjs.org/docs/events.html#event-pooling\n\t\tevent.persist();\n\n\t\t/** @type {number | undefined} */\n\t\tlet timerId;\n\n\t\tif ( onDragStart ) {\n\t\t\ttimerId = setTimeout( () => onDragStart( event ) );\n\t\t}\n\n\t\tcleanup.current = () => {\n\t\t\t// Remove drag clone.\n\t\t\tif ( cloneWrapper && cloneWrapper.parentNode ) {\n\t\t\t\tcloneWrapper.parentNode.removeChild( cloneWrapper );\n\t\t\t}\n\n\t\t\tif ( dragImage && dragImage.parentNode ) {\n\t\t\t\tdragImage.parentNode.removeChild( dragImage );\n\t\t\t}\n\n\t\t\t// Reset cursor.\n\t\t\townerDocument.body.classList.remove( bodyClass );\n\n\t\t\townerDocument.removeEventListener( 'dragover', throttledDragOver );\n\n\t\t\tclearTimeout( timerId );\n\t\t};\n\t}\n\n\tuseEffect(\n\t\t() => () => {\n\t\t\tcleanup.current();\n\t\t},\n\t\t[]\n\t);\n\n\treturn (\n\t\t<>\n\t\t\t{ children( {\n\t\t\t\tonDraggableStart: start,\n\t\t\t\tonDraggableEnd: end,\n\t\t\t} ) }\n\t\t\t{ dragComponent && (\n\t\t\t\t<div\n\t\t\t\t\tclassName=\"components-draggable-drag-component-root\"\n\t\t\t\t\tstyle={ { display: 'none' } }\n\t\t\t\t\tref={ dragComponentRef }\n\t\t\t\t>\n\t\t\t\t\t{ dragComponent }\n\t\t\t\t</div>\n\t\t\t) }\n\t\t</>\n\t);\n}\n"]}
@@ -0,0 +1,216 @@
1
+ import { createElement } from "@wordpress/element";
2
+
3
+ /**
4
+ * External dependencies
5
+ */
6
+ import { Gesture, GestureDetector, LongPressGestureHandler } from 'react-native-gesture-handler';
7
+ import Animated, { useSharedValue, runOnJS, useAnimatedReaction, useAnimatedGestureHandler } from 'react-native-reanimated';
8
+ /**
9
+ * WordPress dependencies
10
+ */
11
+
12
+ import { createContext, useContext, useRef, useMemo } from '@wordpress/element';
13
+ /**
14
+ * Internal dependencies
15
+ */
16
+
17
+ import styles from './style.scss';
18
+ const Context = createContext({});
19
+ const {
20
+ Provider
21
+ } = Context;
22
+ /**
23
+ * Draggable component.
24
+ *
25
+ * @param {Object} props Component props.
26
+ * @param {JSX.Element} props.children Children to be rendered.
27
+ * @param {Function} [props.onDragEnd] Callback when dragging ends.
28
+ * @param {Function} [props.onDragOver] Callback when dragging happens over an element.
29
+ * @param {Function} [props.onDragStart] Callback when dragging starts.
30
+ * @param {string} [props.testID] Id used for querying the pan gesture in tests.
31
+ *
32
+ * @return {JSX.Element} The component to be rendered.
33
+ */
34
+
35
+ const Draggable = _ref => {
36
+ let {
37
+ children,
38
+ onDragEnd,
39
+ onDragOver,
40
+ onDragStart,
41
+ testID
42
+ } = _ref;
43
+ const isDragging = useSharedValue(false);
44
+ const isPanActive = useSharedValue(false);
45
+ const draggingId = useSharedValue('');
46
+ const panGestureRef = useRef();
47
+ const currentFirstTouchId = useSharedValue(null);
48
+ const initialPosition = {
49
+ x: useSharedValue(0),
50
+ y: useSharedValue(0)
51
+ };
52
+ const lastPosition = {
53
+ x: useSharedValue(0),
54
+ y: useSharedValue(0)
55
+ };
56
+ useAnimatedReaction(() => isDragging.value, (result, previous) => {
57
+ if (result === previous || previous === null) {
58
+ return;
59
+ }
60
+
61
+ if (result) {
62
+ if (onDragStart) {
63
+ onDragStart({
64
+ x: initialPosition.x.value,
65
+ y: initialPosition.y.value,
66
+ id: draggingId.value
67
+ });
68
+ }
69
+ } else if (onDragEnd) {
70
+ onDragEnd({
71
+ x: lastPosition.x.value,
72
+ y: lastPosition.y.value,
73
+ id: draggingId.value
74
+ });
75
+ }
76
+ });
77
+
78
+ function getFirstTouchEvent(event) {
79
+ 'worklet';
80
+
81
+ return event.allTouches.find(touch => touch.id === currentFirstTouchId.value);
82
+ }
83
+
84
+ const panGesture = Gesture.Pan().manualActivation(true).onTouchesDown(event => {
85
+ if (!currentFirstTouchId.value) {
86
+ const firstEvent = event.allTouches[0];
87
+ const {
88
+ x = 0,
89
+ y = 0
90
+ } = firstEvent;
91
+ currentFirstTouchId.value = firstEvent.id;
92
+ initialPosition.x.value = x;
93
+ initialPosition.y.value = y;
94
+ }
95
+ }).onTouchesMove((event, state) => {
96
+ if (!isPanActive.value && isDragging.value) {
97
+ isPanActive.value = true;
98
+ state.activate();
99
+ }
100
+
101
+ if (isPanActive.value && isDragging.value) {
102
+ const firstEvent = getFirstTouchEvent(event);
103
+
104
+ if (!firstEvent) {
105
+ state.end();
106
+ return;
107
+ }
108
+
109
+ lastPosition.x.value = firstEvent.x;
110
+ lastPosition.y.value = firstEvent.y;
111
+
112
+ if (onDragOver) {
113
+ onDragOver(firstEvent);
114
+ }
115
+ }
116
+ }).onTouchesCancelled((_event, state) => {
117
+ state.end();
118
+ }).onEnd(() => {
119
+ currentFirstTouchId.value = null;
120
+ isPanActive.value = false;
121
+ isDragging.value = false;
122
+ }).withRef(panGestureRef).shouldCancelWhenOutside(false).withTestId(testID);
123
+ const providerValue = useMemo(() => {
124
+ return {
125
+ panGestureRef,
126
+ isDragging,
127
+ isPanActive,
128
+ draggingId
129
+ };
130
+ }, [// `isDragging`, `isPanActive` and `draggingId` are created using the
131
+ // `useSharedValue` hook provided by the `react-native-reanimated`, which in
132
+ // theory should guarantee that the value of these variables remains stable.
133
+ // ESLint can't pick this up, and that's why they have to be specified as
134
+ // dependencies for this hook call.
135
+ isDragging, isPanActive, draggingId]);
136
+ return createElement(GestureDetector, {
137
+ gesture: panGesture
138
+ }, createElement(Animated.View, {
139
+ style: styles.draggable__container
140
+ }, createElement(Provider, {
141
+ value: providerValue
142
+ }, children)));
143
+ };
144
+ /**
145
+ * Draggable trigger component.
146
+ *
147
+ * This component acts as the trigger for the dragging functionality.
148
+ *
149
+ * @param {Object} props Component props.
150
+ * @param {JSX.Element} props.children Children to be rendered.
151
+ * @param {*} props.id Identifier passed within the event callbacks.
152
+ * @param {boolean} [props.enabled] Enables the long-press gesture.
153
+ * @param {number} [props.maxDistance] Maximum distance, that defines how far the finger is allowed to travel during a long press gesture.
154
+ * @param {number} [props.minDuration] Minimum time, that a finger must remain pressed on the corresponding view.
155
+ * @param {Function} [props.onLongPress] Callback when long-press gesture is triggered over an element.
156
+ * @param {Function} [props.onLongPressEnd] Callback when long-press gesture ends.
157
+ * @param {string} [props.testID] Id used for querying the long-press gesture handler in tests.
158
+ *
159
+ * @return {JSX.Element} The component to be rendered.
160
+ */
161
+
162
+
163
+ const DraggableTrigger = _ref2 => {
164
+ let {
165
+ children,
166
+ enabled = true,
167
+ id,
168
+ maxDistance = 1000,
169
+ minDuration = 500,
170
+ onLongPress,
171
+ onLongPressEnd,
172
+ testID
173
+ } = _ref2;
174
+ const {
175
+ panGestureRef,
176
+ isDragging,
177
+ isPanActive,
178
+ draggingId
179
+ } = useContext(Context);
180
+ const gestureHandler = useAnimatedGestureHandler({
181
+ onActive: () => {
182
+ if (isDragging.value) {
183
+ return;
184
+ }
185
+
186
+ draggingId.value = id;
187
+ isDragging.value = true;
188
+
189
+ if (onLongPress) {
190
+ runOnJS(onLongPress)(id);
191
+ }
192
+ },
193
+ onEnd: () => {
194
+ if (!isPanActive.value) {
195
+ isDragging.value = false;
196
+ }
197
+
198
+ if (onLongPressEnd) {
199
+ runOnJS(onLongPressEnd)(id);
200
+ }
201
+ }
202
+ });
203
+ return createElement(LongPressGestureHandler, {
204
+ enabled: enabled,
205
+ minDurationMs: minDuration,
206
+ maxDist: maxDistance,
207
+ simultaneousHandlers: panGestureRef,
208
+ shouldCancelWhenOutside: false,
209
+ onGestureEvent: gestureHandler,
210
+ testID: testID
211
+ }, children);
212
+ };
213
+
214
+ export { DraggableTrigger };
215
+ export default Draggable;
216
+ //# sourceMappingURL=index.native.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["@wordpress/components/src/draggable/index.native.js"],"names":["Gesture","GestureDetector","LongPressGestureHandler","Animated","useSharedValue","runOnJS","useAnimatedReaction","useAnimatedGestureHandler","createContext","useContext","useRef","useMemo","styles","Context","Provider","Draggable","children","onDragEnd","onDragOver","onDragStart","testID","isDragging","isPanActive","draggingId","panGestureRef","currentFirstTouchId","initialPosition","x","y","lastPosition","value","result","previous","id","getFirstTouchEvent","event","allTouches","find","touch","panGesture","Pan","manualActivation","onTouchesDown","firstEvent","onTouchesMove","state","activate","end","onTouchesCancelled","_event","onEnd","withRef","shouldCancelWhenOutside","withTestId","providerValue","draggable__container","DraggableTrigger","enabled","maxDistance","minDuration","onLongPress","onLongPressEnd","gestureHandler","onActive"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport {\n\tGesture,\n\tGestureDetector,\n\tLongPressGestureHandler,\n} from 'react-native-gesture-handler';\nimport Animated, {\n\tuseSharedValue,\n\trunOnJS,\n\tuseAnimatedReaction,\n\tuseAnimatedGestureHandler,\n} from 'react-native-reanimated';\n\n/**\n * WordPress dependencies\n */\nimport { createContext, useContext, useRef, useMemo } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport styles from './style.scss';\n\nconst Context = createContext( {} );\nconst { Provider } = Context;\n\n/**\n * Draggable component.\n *\n * @param {Object} props Component props.\n * @param {JSX.Element} props.children Children to be rendered.\n * @param {Function} [props.onDragEnd] Callback when dragging ends.\n * @param {Function} [props.onDragOver] Callback when dragging happens over an element.\n * @param {Function} [props.onDragStart] Callback when dragging starts.\n * @param {string} [props.testID] Id used for querying the pan gesture in tests.\n *\n * @return {JSX.Element} The component to be rendered.\n */\nconst Draggable = ( {\n\tchildren,\n\tonDragEnd,\n\tonDragOver,\n\tonDragStart,\n\ttestID,\n} ) => {\n\tconst isDragging = useSharedValue( false );\n\tconst isPanActive = useSharedValue( false );\n\tconst draggingId = useSharedValue( '' );\n\tconst panGestureRef = useRef();\n\tconst currentFirstTouchId = useSharedValue( null );\n\n\tconst initialPosition = {\n\t\tx: useSharedValue( 0 ),\n\t\ty: useSharedValue( 0 ),\n\t};\n\tconst lastPosition = {\n\t\tx: useSharedValue( 0 ),\n\t\ty: useSharedValue( 0 ),\n\t};\n\n\tuseAnimatedReaction(\n\t\t() => isDragging.value,\n\t\t( result, previous ) => {\n\t\t\tif ( result === previous || previous === null ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tif ( result ) {\n\t\t\t\tif ( onDragStart ) {\n\t\t\t\t\tonDragStart( {\n\t\t\t\t\t\tx: initialPosition.x.value,\n\t\t\t\t\t\ty: initialPosition.y.value,\n\t\t\t\t\t\tid: draggingId.value,\n\t\t\t\t\t} );\n\t\t\t\t}\n\t\t\t} else if ( onDragEnd ) {\n\t\t\t\tonDragEnd( {\n\t\t\t\t\tx: lastPosition.x.value,\n\t\t\t\t\ty: lastPosition.y.value,\n\t\t\t\t\tid: draggingId.value,\n\t\t\t\t} );\n\t\t\t}\n\t\t}\n\t);\n\n\tfunction getFirstTouchEvent( event ) {\n\t\t'worklet';\n\n\t\treturn event.allTouches.find(\n\t\t\t( touch ) => touch.id === currentFirstTouchId.value\n\t\t);\n\t}\n\n\tconst panGesture = Gesture.Pan()\n\t\t.manualActivation( true )\n\t\t.onTouchesDown( ( event ) => {\n\t\t\tif ( ! currentFirstTouchId.value ) {\n\t\t\t\tconst firstEvent = event.allTouches[ 0 ];\n\t\t\t\tconst { x = 0, y = 0 } = firstEvent;\n\n\t\t\t\tcurrentFirstTouchId.value = firstEvent.id;\n\n\t\t\t\tinitialPosition.x.value = x;\n\t\t\t\tinitialPosition.y.value = y;\n\t\t\t}\n\t\t} )\n\t\t.onTouchesMove( ( event, state ) => {\n\t\t\tif ( ! isPanActive.value && isDragging.value ) {\n\t\t\t\tisPanActive.value = true;\n\t\t\t\tstate.activate();\n\t\t\t}\n\n\t\t\tif ( isPanActive.value && isDragging.value ) {\n\t\t\t\tconst firstEvent = getFirstTouchEvent( event );\n\n\t\t\t\tif ( ! firstEvent ) {\n\t\t\t\t\tstate.end();\n\t\t\t\t\treturn;\n\t\t\t\t}\n\n\t\t\t\tlastPosition.x.value = firstEvent.x;\n\t\t\t\tlastPosition.y.value = firstEvent.y;\n\n\t\t\t\tif ( onDragOver ) {\n\t\t\t\t\tonDragOver( firstEvent );\n\t\t\t\t}\n\t\t\t}\n\t\t} )\n\t\t.onTouchesCancelled( ( _event, state ) => {\n\t\t\tstate.end();\n\t\t} )\n\t\t.onEnd( () => {\n\t\t\tcurrentFirstTouchId.value = null;\n\t\t\tisPanActive.value = false;\n\t\t\tisDragging.value = false;\n\t\t} )\n\t\t.withRef( panGestureRef )\n\t\t.shouldCancelWhenOutside( false )\n\t\t.withTestId( testID );\n\n\tconst providerValue = useMemo( () => {\n\t\treturn { panGestureRef, isDragging, isPanActive, draggingId };\n\t}, [\n\t\t// `isDragging`, `isPanActive` and `draggingId` are created using the\n\t\t// `useSharedValue` hook provided by the `react-native-reanimated`, which in\n\t\t// theory should guarantee that the value of these variables remains stable.\n\t\t// ESLint can't pick this up, and that's why they have to be specified as\n\t\t// dependencies for this hook call.\n\t\tisDragging,\n\t\tisPanActive,\n\t\tdraggingId,\n\t] );\n\n\treturn (\n\t\t<GestureDetector gesture={ panGesture }>\n\t\t\t<Animated.View style={ styles.draggable__container }>\n\t\t\t\t<Provider value={ providerValue }>{ children }</Provider>\n\t\t\t</Animated.View>\n\t\t</GestureDetector>\n\t);\n};\n\n/**\n * Draggable trigger component.\n *\n * This component acts as the trigger for the dragging functionality.\n *\n * @param {Object} props Component props.\n * @param {JSX.Element} props.children Children to be rendered.\n * @param {*} props.id Identifier passed within the event callbacks.\n * @param {boolean} [props.enabled] Enables the long-press gesture.\n * @param {number} [props.maxDistance] Maximum distance, that defines how far the finger is allowed to travel during a long press gesture.\n * @param {number} [props.minDuration] Minimum time, that a finger must remain pressed on the corresponding view.\n * @param {Function} [props.onLongPress] Callback when long-press gesture is triggered over an element.\n * @param {Function} [props.onLongPressEnd] Callback when long-press gesture ends.\n * @param {string} [props.testID] Id used for querying the long-press gesture handler in tests.\n *\n * @return {JSX.Element} The component to be rendered.\n */\nconst DraggableTrigger = ( {\n\tchildren,\n\tenabled = true,\n\tid,\n\tmaxDistance = 1000,\n\tminDuration = 500,\n\tonLongPress,\n\tonLongPressEnd,\n\ttestID,\n} ) => {\n\tconst { panGestureRef, isDragging, isPanActive, draggingId } =\n\t\tuseContext( Context );\n\n\tconst gestureHandler = useAnimatedGestureHandler( {\n\t\tonActive: () => {\n\t\t\tif ( isDragging.value ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tdraggingId.value = id;\n\t\t\tisDragging.value = true;\n\t\t\tif ( onLongPress ) {\n\t\t\t\trunOnJS( onLongPress )( id );\n\t\t\t}\n\t\t},\n\t\tonEnd: () => {\n\t\t\tif ( ! isPanActive.value ) {\n\t\t\t\tisDragging.value = false;\n\t\t\t}\n\n\t\t\tif ( onLongPressEnd ) {\n\t\t\t\trunOnJS( onLongPressEnd )( id );\n\t\t\t}\n\t\t},\n\t} );\n\n\treturn (\n\t\t<LongPressGestureHandler\n\t\t\tenabled={ enabled }\n\t\t\tminDurationMs={ minDuration }\n\t\t\tmaxDist={ maxDistance }\n\t\t\tsimultaneousHandlers={ panGestureRef }\n\t\t\tshouldCancelWhenOutside={ false }\n\t\t\tonGestureEvent={ gestureHandler }\n\t\t\ttestID={ testID }\n\t\t>\n\t\t\t{ children }\n\t\t</LongPressGestureHandler>\n\t);\n};\n\nexport { DraggableTrigger };\nexport default Draggable;\n"]}
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/components/src/drop-zone/provider.js"],"names":["deprecated","DropZoneProvider","children","since","hint"],"mappings":"AAAA;AACA;AACA;AACA,OAAOA,UAAP,MAAuB,uBAAvB;AAEA,eAAe,SAASC,gBAAT,OAA0C;AAAA,MAAf;AAAEC,IAAAA;AAAF,GAAe;AACxDF,EAAAA,UAAU,CAAE,gCAAF,EAAoC;AAC7CG,IAAAA,KAAK,EAAE,KADsC;AAE7CC,IAAAA,IAAI,EACH;AAH4C,GAApC,CAAV;AAKA,SAAOF,QAAP;AACA","sourcesContent":["/**\n * WordPress dependencies\n */\nimport deprecated from '@wordpress/deprecated';\n\nexport default function DropZoneProvider( { children } ) {\n\tdeprecated( 'wp.components.DropZoneProvider', {\n\t\tsince: '5.8',\n\t\thint:\n\t\t\t'wp.component.DropZone no longer needs a provider. wp.components.DropZoneProvider is safe to remove from your code.',\n\t} );\n\treturn children;\n}\n"]}
1
+ {"version":3,"sources":["@wordpress/components/src/drop-zone/provider.js"],"names":["deprecated","DropZoneProvider","children","since","hint"],"mappings":"AAAA;AACA;AACA;AACA,OAAOA,UAAP,MAAuB,uBAAvB;AAEA,eAAe,SAASC,gBAAT,OAA0C;AAAA,MAAf;AAAEC,IAAAA;AAAF,GAAe;AACxDF,EAAAA,UAAU,CAAE,gCAAF,EAAoC;AAC7CG,IAAAA,KAAK,EAAE,KADsC;AAE7CC,IAAAA,IAAI,EAAE;AAFuC,GAApC,CAAV;AAIA,SAAOF,QAAP;AACA","sourcesContent":["/**\n * WordPress dependencies\n */\nimport deprecated from '@wordpress/deprecated';\n\nexport default function DropZoneProvider( { children } ) {\n\tdeprecated( 'wp.components.DropZoneProvider', {\n\t\tsince: '5.8',\n\t\thint: 'wp.component.DropZone no longer needs a provider. wp.components.DropZoneProvider is safe to remove from your code.',\n\t} );\n\treturn children;\n}\n"]}
@@ -29,17 +29,17 @@ function useObservableState(initialState, onStateChange) {
29
29
  }
30
30
 
31
31
  export default function Dropdown(props) {
32
- var _popoverProps$anchorR;
32
+ var _containerRef$current;
33
33
 
34
34
  const {
35
35
  renderContent,
36
36
  renderToggle,
37
- position = 'bottom right',
38
37
  className,
39
38
  contentClassName,
40
39
  expandOnMobile,
41
40
  headerTitle,
42
41
  focusOnMount,
42
+ position,
43
43
  popoverProps,
44
44
  onClose,
45
45
  onToggle
@@ -47,10 +47,10 @@ export default function Dropdown(props) {
47
47
  const containerRef = useRef();
48
48
  const [isOpen, setIsOpen] = useObservableState(false, onToggle);
49
49
  useEffect(() => () => {
50
- if (onToggle) {
50
+ if (onToggle && isOpen) {
51
51
  onToggle(false);
52
52
  }
53
- }, []);
53
+ }, [onToggle, isOpen]);
54
54
 
55
55
  function toggle() {
56
56
  setIsOpen(!isOpen);
@@ -87,6 +87,7 @@ export default function Dropdown(props) {
87
87
  onToggle: toggle,
88
88
  onClose: close
89
89
  };
90
+ const hasAnchorRef = !!(popoverProps !== null && popoverProps !== void 0 && popoverProps.anchorRef) || !!(popoverProps !== null && popoverProps !== void 0 && popoverProps.getAnchorRect) || !!(popoverProps !== null && popoverProps !== void 0 && popoverProps.anchorRect);
90
91
  return createElement("div", {
91
92
  className: classnames('components-dropdown', className),
92
93
  ref: containerRef // Some UAs focus the closest focusable parent when the toggle is
@@ -100,9 +101,13 @@ export default function Dropdown(props) {
100
101
  onFocusOutside: closeIfFocusOutside,
101
102
  expandOnMobile: expandOnMobile,
102
103
  headerTitle: headerTitle,
103
- focusOnMount: focusOnMount
104
+ focusOnMount: focusOnMount // This value is used to ensure that the dropdowns
105
+ // align with the editor header by default.
106
+ ,
107
+ offset: 13,
108
+ anchorRef: !hasAnchorRef ? containerRef === null || containerRef === void 0 ? void 0 : (_containerRef$current = containerRef.current) === null || _containerRef$current === void 0 ? void 0 : _containerRef$current.firstChild // Anchor to the rendered toggle.
109
+ : undefined
104
110
  }, popoverProps, {
105
- anchorRef: (_popoverProps$anchorR = popoverProps === null || popoverProps === void 0 ? void 0 : popoverProps.anchorRef) !== null && _popoverProps$anchorR !== void 0 ? _popoverProps$anchorR : containerRef.current,
106
111
  className: classnames('components-dropdown__content', popoverProps ? popoverProps.className : undefined, contentClassName)
107
112
  }), renderContent(args)));
108
113
  }
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/components/src/dropdown/index.js"],"names":["classnames","useRef","useEffect","useState","Popover","useObservableState","initialState","onStateChange","state","setState","value","Dropdown","props","renderContent","renderToggle","position","className","contentClassName","expandOnMobile","headerTitle","focusOnMount","popoverProps","onClose","onToggle","containerRef","isOpen","setIsOpen","toggle","closeIfFocusOutside","ownerDocument","current","dialog","activeElement","closest","contains","close","args","anchorRef","undefined"],"mappings":"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","sourcesContent":["// @ts-nocheck\n/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { useRef, useEffect, useState } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport Popover from '../popover';\n\nfunction useObservableState( initialState, onStateChange ) {\n\tconst [ state, setState ] = useState( initialState );\n\treturn [\n\t\tstate,\n\t\t( value ) => {\n\t\t\tsetState( value );\n\t\t\tif ( onStateChange ) {\n\t\t\t\tonStateChange( value );\n\t\t\t}\n\t\t},\n\t];\n}\n\nexport default function Dropdown( props ) {\n\tconst {\n\t\trenderContent,\n\t\trenderToggle,\n\t\tposition = 'bottom right',\n\t\tclassName,\n\t\tcontentClassName,\n\t\texpandOnMobile,\n\t\theaderTitle,\n\t\tfocusOnMount,\n\t\tpopoverProps,\n\t\tonClose,\n\t\tonToggle,\n\t} = props;\n\tconst containerRef = useRef();\n\tconst [ isOpen, setIsOpen ] = useObservableState( false, onToggle );\n\n\tuseEffect(\n\t\t() => () => {\n\t\t\tif ( onToggle ) {\n\t\t\t\tonToggle( false );\n\t\t\t}\n\t\t},\n\t\t[]\n\t);\n\n\tfunction toggle() {\n\t\tsetIsOpen( ! isOpen );\n\t}\n\n\t/**\n\t * Closes the popover when focus leaves it unless the toggle was pressed or\n\t * focus has moved to a separate dialog. The former is to let the toggle\n\t * handle closing the popover and the latter is to preserve presence in\n\t * case a dialog has opened, allowing focus to return when it's dismissed.\n\t */\n\tfunction closeIfFocusOutside() {\n\t\tconst { ownerDocument } = containerRef.current;\n\t\tconst dialog = ownerDocument.activeElement.closest( '[role=\"dialog\"]' );\n\t\tif (\n\t\t\t! containerRef.current.contains( ownerDocument.activeElement ) &&\n\t\t\t( ! dialog || dialog.contains( containerRef.current ) )\n\t\t) {\n\t\t\tclose();\n\t\t}\n\t}\n\n\tfunction close() {\n\t\tif ( onClose ) {\n\t\t\tonClose();\n\t\t}\n\t\tsetIsOpen( false );\n\t}\n\n\tconst args = { isOpen, onToggle: toggle, onClose: close };\n\n\treturn (\n\t\t<div\n\t\t\tclassName={ classnames( 'components-dropdown', className ) }\n\t\t\tref={ containerRef }\n\t\t\t// Some UAs focus the closest focusable parent when the toggle is\n\t\t\t// clicked. Making this div focusable ensures such UAs will focus\n\t\t\t// it and `closeIfFocusOutside` can tell if the toggle was clicked.\n\t\t\ttabIndex=\"-1\"\n\t\t>\n\t\t\t{ renderToggle( args ) }\n\t\t\t{ isOpen && (\n\t\t\t\t<Popover\n\t\t\t\t\tposition={ position }\n\t\t\t\t\tonClose={ close }\n\t\t\t\t\tonFocusOutside={ closeIfFocusOutside }\n\t\t\t\t\texpandOnMobile={ expandOnMobile }\n\t\t\t\t\theaderTitle={ headerTitle }\n\t\t\t\t\tfocusOnMount={ focusOnMount }\n\t\t\t\t\t{ ...popoverProps }\n\t\t\t\t\tanchorRef={\n\t\t\t\t\t\tpopoverProps?.anchorRef ?? containerRef.current\n\t\t\t\t\t}\n\t\t\t\t\tclassName={ classnames(\n\t\t\t\t\t\t'components-dropdown__content',\n\t\t\t\t\t\tpopoverProps ? popoverProps.className : undefined,\n\t\t\t\t\t\tcontentClassName\n\t\t\t\t\t) }\n\t\t\t\t>\n\t\t\t\t\t{ renderContent( args ) }\n\t\t\t\t</Popover>\n\t\t\t) }\n\t\t</div>\n\t);\n}\n"]}
1
+ {"version":3,"sources":["@wordpress/components/src/dropdown/index.js"],"names":["classnames","useRef","useEffect","useState","Popover","useObservableState","initialState","onStateChange","state","setState","value","Dropdown","props","renderContent","renderToggle","className","contentClassName","expandOnMobile","headerTitle","focusOnMount","position","popoverProps","onClose","onToggle","containerRef","isOpen","setIsOpen","toggle","closeIfFocusOutside","ownerDocument","current","dialog","activeElement","closest","contains","close","args","hasAnchorRef","anchorRef","getAnchorRect","anchorRect","firstChild","undefined"],"mappings":"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","sourcesContent":["// @ts-nocheck\n/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { useRef, useEffect, useState } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport Popover from '../popover';\n\nfunction useObservableState( initialState, onStateChange ) {\n\tconst [ state, setState ] = useState( initialState );\n\treturn [\n\t\tstate,\n\t\t( value ) => {\n\t\t\tsetState( value );\n\t\t\tif ( onStateChange ) {\n\t\t\t\tonStateChange( value );\n\t\t\t}\n\t\t},\n\t];\n}\n\nexport default function Dropdown( props ) {\n\tconst {\n\t\trenderContent,\n\t\trenderToggle,\n\t\tclassName,\n\t\tcontentClassName,\n\t\texpandOnMobile,\n\t\theaderTitle,\n\t\tfocusOnMount,\n\t\tposition,\n\t\tpopoverProps,\n\t\tonClose,\n\t\tonToggle,\n\t} = props;\n\tconst containerRef = useRef();\n\tconst [ isOpen, setIsOpen ] = useObservableState( false, onToggle );\n\n\tuseEffect(\n\t\t() => () => {\n\t\t\tif ( onToggle && isOpen ) {\n\t\t\t\tonToggle( false );\n\t\t\t}\n\t\t},\n\t\t[ onToggle, isOpen ]\n\t);\n\n\tfunction toggle() {\n\t\tsetIsOpen( ! isOpen );\n\t}\n\n\t/**\n\t * Closes the popover when focus leaves it unless the toggle was pressed or\n\t * focus has moved to a separate dialog. The former is to let the toggle\n\t * handle closing the popover and the latter is to preserve presence in\n\t * case a dialog has opened, allowing focus to return when it's dismissed.\n\t */\n\tfunction closeIfFocusOutside() {\n\t\tconst { ownerDocument } = containerRef.current;\n\t\tconst dialog = ownerDocument.activeElement.closest( '[role=\"dialog\"]' );\n\t\tif (\n\t\t\t! containerRef.current.contains( ownerDocument.activeElement ) &&\n\t\t\t( ! dialog || dialog.contains( containerRef.current ) )\n\t\t) {\n\t\t\tclose();\n\t\t}\n\t}\n\n\tfunction close() {\n\t\tif ( onClose ) {\n\t\t\tonClose();\n\t\t}\n\t\tsetIsOpen( false );\n\t}\n\n\tconst args = { isOpen, onToggle: toggle, onClose: close };\n\tconst hasAnchorRef =\n\t\t!! popoverProps?.anchorRef ||\n\t\t!! popoverProps?.getAnchorRect ||\n\t\t!! popoverProps?.anchorRect;\n\n\treturn (\n\t\t<div\n\t\t\tclassName={ classnames( 'components-dropdown', className ) }\n\t\t\tref={ containerRef }\n\t\t\t// Some UAs focus the closest focusable parent when the toggle is\n\t\t\t// clicked. Making this div focusable ensures such UAs will focus\n\t\t\t// it and `closeIfFocusOutside` can tell if the toggle was clicked.\n\t\t\ttabIndex=\"-1\"\n\t\t>\n\t\t\t{ renderToggle( args ) }\n\t\t\t{ isOpen && (\n\t\t\t\t<Popover\n\t\t\t\t\tposition={ position }\n\t\t\t\t\tonClose={ close }\n\t\t\t\t\tonFocusOutside={ closeIfFocusOutside }\n\t\t\t\t\texpandOnMobile={ expandOnMobile }\n\t\t\t\t\theaderTitle={ headerTitle }\n\t\t\t\t\tfocusOnMount={ focusOnMount }\n\t\t\t\t\t// This value is used to ensure that the dropdowns\n\t\t\t\t\t// align with the editor header by default.\n\t\t\t\t\toffset={ 13 }\n\t\t\t\t\tanchorRef={\n\t\t\t\t\t\t! hasAnchorRef\n\t\t\t\t\t\t\t? containerRef?.current?.firstChild // Anchor to the rendered toggle.\n\t\t\t\t\t\t\t: undefined\n\t\t\t\t\t}\n\t\t\t\t\t{ ...popoverProps }\n\t\t\t\t\tclassName={ classnames(\n\t\t\t\t\t\t'components-dropdown__content',\n\t\t\t\t\t\tpopoverProps ? popoverProps.className : undefined,\n\t\t\t\t\t\tcontentClassName\n\t\t\t\t\t) }\n\t\t\t\t>\n\t\t\t\t\t{ renderContent( args ) }\n\t\t\t\t</Popover>\n\t\t\t) }\n\t\t</div>\n\t);\n}\n"]}
@@ -6,7 +6,7 @@ import { createElement } from "@wordpress/element";
6
6
  * External dependencies
7
7
  */
8
8
  import classnames from 'classnames';
9
- import { flatMap, isEmpty, isFunction } from 'lodash';
9
+ import { flatMap, isEmpty } from 'lodash';
10
10
  /**
11
11
  * WordPress dependencies
12
12
  */
@@ -34,6 +34,17 @@ function mergeProps() {
34
34
 
35
35
  return mergedProps;
36
36
  }
37
+ /**
38
+ * Whether the argument is a function.
39
+ *
40
+ * @param {*} maybeFunc The argument to check.
41
+ * @return {boolean} True if the argument is a function, false otherwise.
42
+ */
43
+
44
+
45
+ function isFunction(maybeFunc) {
46
+ return typeof maybeFunc === 'function';
47
+ }
37
48
 
38
49
  function DropdownMenu(dropdownMenuProps) {
39
50
  const {
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/components/src/dropdown-menu/index.js"],"names":["classnames","flatMap","isEmpty","isFunction","DOWN","menu","Button","Dropdown","NavigableMenu","mergeProps","defaultProps","props","mergedProps","className","DropdownMenu","dropdownMenuProps","children","controls","icon","label","popoverProps","toggleProps","menuProps","disableOpenOnArrowDown","text","noIcons","controlSets","Array","isArray","mergedPopoverProps","isOpen","onToggle","openOnArrowDown","event","keyCode","preventDefault","mergedToggleProps","onClick","onKeyDown","showTooltip","mergedMenuProps","controlSet","indexOfSet","map","control","indexOfControl","join","stopPropagation","onClose","isActive","title","role","undefined","isDisabled"],"mappings":"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","sourcesContent":["// @ts-nocheck\n/**\n * External dependencies\n */\nimport classnames from 'classnames';\nimport { flatMap, isEmpty, isFunction } from 'lodash';\n\n/**\n * WordPress dependencies\n */\nimport { DOWN } from '@wordpress/keycodes';\nimport { menu } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport Button from '../button';\nimport Dropdown from '../dropdown';\nimport { NavigableMenu } from '../navigable-container';\n\nfunction mergeProps( defaultProps = {}, props = {} ) {\n\tconst mergedProps = {\n\t\t...defaultProps,\n\t\t...props,\n\t};\n\n\tif ( props.className && defaultProps.className ) {\n\t\tmergedProps.className = classnames(\n\t\t\tprops.className,\n\t\t\tdefaultProps.className\n\t\t);\n\t}\n\n\treturn mergedProps;\n}\n\nfunction DropdownMenu( dropdownMenuProps ) {\n\tconst {\n\t\tchildren,\n\t\tclassName,\n\t\tcontrols,\n\t\ticon = menu,\n\t\tlabel,\n\t\tpopoverProps,\n\t\ttoggleProps,\n\t\tmenuProps,\n\t\tdisableOpenOnArrowDown = false,\n\t\ttext,\n\t\tnoIcons,\n\t} = dropdownMenuProps;\n\n\tif ( isEmpty( controls ) && ! isFunction( children ) ) {\n\t\treturn null;\n\t}\n\n\t// Normalize controls to nested array of objects (sets of controls)\n\tlet controlSets;\n\tif ( ! isEmpty( controls ) ) {\n\t\tcontrolSets = controls;\n\t\tif ( ! Array.isArray( controlSets[ 0 ] ) ) {\n\t\t\tcontrolSets = [ controlSets ];\n\t\t}\n\t}\n\tconst mergedPopoverProps = mergeProps(\n\t\t{\n\t\t\tclassName: 'components-dropdown-menu__popover',\n\t\t},\n\t\tpopoverProps\n\t);\n\n\treturn (\n\t\t<Dropdown\n\t\t\tclassName={ classnames( 'components-dropdown-menu', className ) }\n\t\t\tpopoverProps={ mergedPopoverProps }\n\t\t\trenderToggle={ ( { isOpen, onToggle } ) => {\n\t\t\t\tconst openOnArrowDown = ( event ) => {\n\t\t\t\t\tif ( disableOpenOnArrowDown ) {\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\n\t\t\t\t\tif ( ! isOpen && event.keyCode === DOWN ) {\n\t\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\t\tonToggle();\n\t\t\t\t\t}\n\t\t\t\t};\n\t\t\t\tconst mergedToggleProps = mergeProps(\n\t\t\t\t\t{\n\t\t\t\t\t\tclassName: classnames(\n\t\t\t\t\t\t\t'components-dropdown-menu__toggle',\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t'is-opened': isOpen,\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t),\n\t\t\t\t\t},\n\t\t\t\t\ttoggleProps\n\t\t\t\t);\n\n\t\t\t\treturn (\n\t\t\t\t\t<Button\n\t\t\t\t\t\t{ ...mergedToggleProps }\n\t\t\t\t\t\ticon={ icon }\n\t\t\t\t\t\tonClick={ ( event ) => {\n\t\t\t\t\t\t\tonToggle( event );\n\t\t\t\t\t\t\tif ( mergedToggleProps.onClick ) {\n\t\t\t\t\t\t\t\tmergedToggleProps.onClick( event );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} }\n\t\t\t\t\t\tonKeyDown={ ( event ) => {\n\t\t\t\t\t\t\topenOnArrowDown( event );\n\t\t\t\t\t\t\tif ( mergedToggleProps.onKeyDown ) {\n\t\t\t\t\t\t\t\tmergedToggleProps.onKeyDown( event );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} }\n\t\t\t\t\t\taria-haspopup=\"true\"\n\t\t\t\t\t\taria-expanded={ isOpen }\n\t\t\t\t\t\tlabel={ label }\n\t\t\t\t\t\ttext={ text }\n\t\t\t\t\t\tshowTooltip={ toggleProps?.showTooltip ?? true }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ mergedToggleProps.children }\n\t\t\t\t\t</Button>\n\t\t\t\t);\n\t\t\t} }\n\t\t\trenderContent={ ( props ) => {\n\t\t\t\tconst mergedMenuProps = mergeProps(\n\t\t\t\t\t{\n\t\t\t\t\t\t'aria-label': label,\n\t\t\t\t\t\tclassName: classnames(\n\t\t\t\t\t\t\t'components-dropdown-menu__menu',\n\t\t\t\t\t\t\t{ 'no-icons': noIcons }\n\t\t\t\t\t\t),\n\t\t\t\t\t},\n\t\t\t\t\tmenuProps\n\t\t\t\t);\n\n\t\t\t\treturn (\n\t\t\t\t\t<NavigableMenu { ...mergedMenuProps } role=\"menu\">\n\t\t\t\t\t\t{ isFunction( children ) ? children( props ) : null }\n\t\t\t\t\t\t{ flatMap( controlSets, ( controlSet, indexOfSet ) =>\n\t\t\t\t\t\t\tcontrolSet.map( ( control, indexOfControl ) => (\n\t\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t\tkey={ [\n\t\t\t\t\t\t\t\t\t\tindexOfSet,\n\t\t\t\t\t\t\t\t\t\tindexOfControl,\n\t\t\t\t\t\t\t\t\t].join() }\n\t\t\t\t\t\t\t\t\tonClick={ ( event ) => {\n\t\t\t\t\t\t\t\t\t\tevent.stopPropagation();\n\t\t\t\t\t\t\t\t\t\tprops.onClose();\n\t\t\t\t\t\t\t\t\t\tif ( control.onClick ) {\n\t\t\t\t\t\t\t\t\t\t\tcontrol.onClick();\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\tclassName={ classnames(\n\t\t\t\t\t\t\t\t\t\t'components-dropdown-menu__menu-item',\n\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t'has-separator':\n\t\t\t\t\t\t\t\t\t\t\t\tindexOfSet > 0 &&\n\t\t\t\t\t\t\t\t\t\t\t\tindexOfControl === 0,\n\t\t\t\t\t\t\t\t\t\t\t'is-active': control.isActive,\n\t\t\t\t\t\t\t\t\t\t\t'is-icon-only': ! control.title,\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\ticon={ control.icon }\n\t\t\t\t\t\t\t\t\tlabel={ control.label }\n\t\t\t\t\t\t\t\t\taria-checked={\n\t\t\t\t\t\t\t\t\t\tcontrol.role === 'menuitemcheckbox' ||\n\t\t\t\t\t\t\t\t\t\tcontrol.role === 'menuitemradio'\n\t\t\t\t\t\t\t\t\t\t\t? control.isActive\n\t\t\t\t\t\t\t\t\t\t\t: undefined\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\trole={\n\t\t\t\t\t\t\t\t\t\tcontrol.role === 'menuitemcheckbox' ||\n\t\t\t\t\t\t\t\t\t\tcontrol.role === 'menuitemradio'\n\t\t\t\t\t\t\t\t\t\t\t? control.role\n\t\t\t\t\t\t\t\t\t\t\t: 'menuitem'\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tdisabled={ control.isDisabled }\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t{ control.title }\n\t\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t\t) )\n\t\t\t\t\t\t) }\n\t\t\t\t\t</NavigableMenu>\n\t\t\t\t);\n\t\t\t} }\n\t\t/>\n\t);\n}\n\nexport default DropdownMenu;\n"]}
1
+ {"version":3,"sources":["@wordpress/components/src/dropdown-menu/index.js"],"names":["classnames","flatMap","isEmpty","DOWN","menu","Button","Dropdown","NavigableMenu","mergeProps","defaultProps","props","mergedProps","className","isFunction","maybeFunc","DropdownMenu","dropdownMenuProps","children","controls","icon","label","popoverProps","toggleProps","menuProps","disableOpenOnArrowDown","text","noIcons","controlSets","Array","isArray","mergedPopoverProps","isOpen","onToggle","openOnArrowDown","event","keyCode","preventDefault","mergedToggleProps","onClick","onKeyDown","showTooltip","mergedMenuProps","controlSet","indexOfSet","map","control","indexOfControl","join","stopPropagation","onClose","isActive","title","role","undefined","isDisabled"],"mappings":"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","sourcesContent":["// @ts-nocheck\n/**\n * External dependencies\n */\nimport classnames from 'classnames';\nimport { flatMap, isEmpty } from 'lodash';\n\n/**\n * WordPress dependencies\n */\nimport { DOWN } from '@wordpress/keycodes';\nimport { menu } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport Button from '../button';\nimport Dropdown from '../dropdown';\nimport { NavigableMenu } from '../navigable-container';\n\nfunction mergeProps( defaultProps = {}, props = {} ) {\n\tconst mergedProps = {\n\t\t...defaultProps,\n\t\t...props,\n\t};\n\n\tif ( props.className && defaultProps.className ) {\n\t\tmergedProps.className = classnames(\n\t\t\tprops.className,\n\t\t\tdefaultProps.className\n\t\t);\n\t}\n\n\treturn mergedProps;\n}\n\n/**\n * Whether the argument is a function.\n *\n * @param {*} maybeFunc The argument to check.\n * @return {boolean} True if the argument is a function, false otherwise.\n */\nfunction isFunction( maybeFunc ) {\n\treturn typeof maybeFunc === 'function';\n}\n\nfunction DropdownMenu( dropdownMenuProps ) {\n\tconst {\n\t\tchildren,\n\t\tclassName,\n\t\tcontrols,\n\t\ticon = menu,\n\t\tlabel,\n\t\tpopoverProps,\n\t\ttoggleProps,\n\t\tmenuProps,\n\t\tdisableOpenOnArrowDown = false,\n\t\ttext,\n\t\tnoIcons,\n\t} = dropdownMenuProps;\n\n\tif ( isEmpty( controls ) && ! isFunction( children ) ) {\n\t\treturn null;\n\t}\n\n\t// Normalize controls to nested array of objects (sets of controls)\n\tlet controlSets;\n\tif ( ! isEmpty( controls ) ) {\n\t\tcontrolSets = controls;\n\t\tif ( ! Array.isArray( controlSets[ 0 ] ) ) {\n\t\t\tcontrolSets = [ controlSets ];\n\t\t}\n\t}\n\tconst mergedPopoverProps = mergeProps(\n\t\t{\n\t\t\tclassName: 'components-dropdown-menu__popover',\n\t\t},\n\t\tpopoverProps\n\t);\n\n\treturn (\n\t\t<Dropdown\n\t\t\tclassName={ classnames( 'components-dropdown-menu', className ) }\n\t\t\tpopoverProps={ mergedPopoverProps }\n\t\t\trenderToggle={ ( { isOpen, onToggle } ) => {\n\t\t\t\tconst openOnArrowDown = ( event ) => {\n\t\t\t\t\tif ( disableOpenOnArrowDown ) {\n\t\t\t\t\t\treturn;\n\t\t\t\t\t}\n\n\t\t\t\t\tif ( ! isOpen && event.keyCode === DOWN ) {\n\t\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\t\tonToggle();\n\t\t\t\t\t}\n\t\t\t\t};\n\t\t\t\tconst mergedToggleProps = mergeProps(\n\t\t\t\t\t{\n\t\t\t\t\t\tclassName: classnames(\n\t\t\t\t\t\t\t'components-dropdown-menu__toggle',\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t'is-opened': isOpen,\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t),\n\t\t\t\t\t},\n\t\t\t\t\ttoggleProps\n\t\t\t\t);\n\n\t\t\t\treturn (\n\t\t\t\t\t<Button\n\t\t\t\t\t\t{ ...mergedToggleProps }\n\t\t\t\t\t\ticon={ icon }\n\t\t\t\t\t\tonClick={ ( event ) => {\n\t\t\t\t\t\t\tonToggle( event );\n\t\t\t\t\t\t\tif ( mergedToggleProps.onClick ) {\n\t\t\t\t\t\t\t\tmergedToggleProps.onClick( event );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} }\n\t\t\t\t\t\tonKeyDown={ ( event ) => {\n\t\t\t\t\t\t\topenOnArrowDown( event );\n\t\t\t\t\t\t\tif ( mergedToggleProps.onKeyDown ) {\n\t\t\t\t\t\t\t\tmergedToggleProps.onKeyDown( event );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} }\n\t\t\t\t\t\taria-haspopup=\"true\"\n\t\t\t\t\t\taria-expanded={ isOpen }\n\t\t\t\t\t\tlabel={ label }\n\t\t\t\t\t\ttext={ text }\n\t\t\t\t\t\tshowTooltip={ toggleProps?.showTooltip ?? true }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ mergedToggleProps.children }\n\t\t\t\t\t</Button>\n\t\t\t\t);\n\t\t\t} }\n\t\t\trenderContent={ ( props ) => {\n\t\t\t\tconst mergedMenuProps = mergeProps(\n\t\t\t\t\t{\n\t\t\t\t\t\t'aria-label': label,\n\t\t\t\t\t\tclassName: classnames(\n\t\t\t\t\t\t\t'components-dropdown-menu__menu',\n\t\t\t\t\t\t\t{ 'no-icons': noIcons }\n\t\t\t\t\t\t),\n\t\t\t\t\t},\n\t\t\t\t\tmenuProps\n\t\t\t\t);\n\n\t\t\t\treturn (\n\t\t\t\t\t<NavigableMenu { ...mergedMenuProps } role=\"menu\">\n\t\t\t\t\t\t{ isFunction( children ) ? children( props ) : null }\n\t\t\t\t\t\t{ flatMap( controlSets, ( controlSet, indexOfSet ) =>\n\t\t\t\t\t\t\tcontrolSet.map( ( control, indexOfControl ) => (\n\t\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t\tkey={ [\n\t\t\t\t\t\t\t\t\t\tindexOfSet,\n\t\t\t\t\t\t\t\t\t\tindexOfControl,\n\t\t\t\t\t\t\t\t\t].join() }\n\t\t\t\t\t\t\t\t\tonClick={ ( event ) => {\n\t\t\t\t\t\t\t\t\t\tevent.stopPropagation();\n\t\t\t\t\t\t\t\t\t\tprops.onClose();\n\t\t\t\t\t\t\t\t\t\tif ( control.onClick ) {\n\t\t\t\t\t\t\t\t\t\t\tcontrol.onClick();\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\tclassName={ classnames(\n\t\t\t\t\t\t\t\t\t\t'components-dropdown-menu__menu-item',\n\t\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t\t'has-separator':\n\t\t\t\t\t\t\t\t\t\t\t\tindexOfSet > 0 &&\n\t\t\t\t\t\t\t\t\t\t\t\tindexOfControl === 0,\n\t\t\t\t\t\t\t\t\t\t\t'is-active': control.isActive,\n\t\t\t\t\t\t\t\t\t\t\t'is-icon-only': ! control.title,\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\ticon={ control.icon }\n\t\t\t\t\t\t\t\t\tlabel={ control.label }\n\t\t\t\t\t\t\t\t\taria-checked={\n\t\t\t\t\t\t\t\t\t\tcontrol.role === 'menuitemcheckbox' ||\n\t\t\t\t\t\t\t\t\t\tcontrol.role === 'menuitemradio'\n\t\t\t\t\t\t\t\t\t\t\t? control.isActive\n\t\t\t\t\t\t\t\t\t\t\t: undefined\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\trole={\n\t\t\t\t\t\t\t\t\t\tcontrol.role === 'menuitemcheckbox' ||\n\t\t\t\t\t\t\t\t\t\tcontrol.role === 'menuitemradio'\n\t\t\t\t\t\t\t\t\t\t\t? control.role\n\t\t\t\t\t\t\t\t\t\t\t: 'menuitem'\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\tdisabled={ control.isDisabled }\n\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t{ control.title }\n\t\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t\t) )\n\t\t\t\t\t\t) }\n\t\t\t\t\t</NavigableMenu>\n\t\t\t\t);\n\t\t\t} }\n\t\t/>\n\t);\n}\n\nexport default DropdownMenu;\n"]}
@@ -5,7 +5,7 @@ import { createElement } from "@wordpress/element";
5
5
  * External dependencies
6
6
  */
7
7
  import classnames from 'classnames';
8
- import { flatMap, isEmpty, isFunction } from 'lodash';
8
+ import { flatMap, isEmpty } from 'lodash';
9
9
  import { Platform } from 'react-native';
10
10
  /**
11
11
  * WordPress dependencies
@@ -35,6 +35,17 @@ function mergeProps() {
35
35
 
36
36
  return mergedProps;
37
37
  }
38
+ /**
39
+ * Whether the argument is a function.
40
+ *
41
+ * @param {*} maybeFunc The argument to check.
42
+ * @return {boolean} True if the argument is a function, false otherwise.
43
+ */
44
+
45
+
46
+ function isFunction(maybeFunc) {
47
+ return typeof maybeFunc === 'function';
48
+ }
38
49
 
39
50
  function DropdownMenu(_ref) {
40
51
  let {
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/components/src/dropdown-menu/index.native.js"],"names":["classnames","flatMap","isEmpty","isFunction","Platform","DOWN","BottomSheet","PanelBody","withPreferredColorScheme","menu","Button","Dropdown","mergeProps","defaultProps","props","mergedProps","className","DropdownMenu","children","controls","icon","label","popoverProps","toggleProps","controlSets","Array","isArray","mergedPopoverProps","isOpen","onToggle","openOnArrowDown","event","keyCode","preventDefault","mergedToggleProps","onClick","onKeyDown","onClose","paddingLeft","paddingRight","controlSet","indexOfSet","map","control","indexOfControl","join","title","isActive","OS"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\nimport { flatMap, isEmpty, isFunction } from 'lodash';\nimport { Platform } from 'react-native';\n/**\n * WordPress dependencies\n */\nimport { DOWN } from '@wordpress/keycodes';\nimport { BottomSheet, PanelBody } from '@wordpress/components';\nimport { withPreferredColorScheme } from '@wordpress/compose';\nimport { menu } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport Button from '../button';\nimport Dropdown from '../dropdown';\n\nfunction mergeProps( defaultProps = {}, props = {} ) {\n\tconst mergedProps = {\n\t\t...defaultProps,\n\t\t...props,\n\t};\n\n\tif ( props.className && defaultProps.className ) {\n\t\tmergedProps.className = classnames(\n\t\t\tprops.className,\n\t\t\tdefaultProps.className\n\t\t);\n\t}\n\n\treturn mergedProps;\n}\n\nfunction DropdownMenu( {\n\tchildren,\n\tclassName,\n\tcontrols,\n\ticon = menu,\n\tlabel,\n\tpopoverProps,\n\ttoggleProps,\n} ) {\n\tif ( isEmpty( controls ) && ! isFunction( children ) ) {\n\t\treturn null;\n\t}\n\n\t// Normalize controls to nested array of objects (sets of controls)\n\tlet controlSets;\n\tif ( ! isEmpty( controls ) ) {\n\t\tcontrolSets = controls;\n\t\tif ( ! Array.isArray( controlSets[ 0 ] ) ) {\n\t\t\tcontrolSets = [ controlSets ];\n\t\t}\n\t}\n\tconst mergedPopoverProps = mergeProps(\n\t\t{\n\t\t\tclassName: 'components-dropdown-menu__popover',\n\t\t},\n\t\tpopoverProps\n\t);\n\n\treturn (\n\t\t<Dropdown\n\t\t\tclassName={ classnames( 'components-dropdown-menu', className ) }\n\t\t\tpopoverProps={ mergedPopoverProps }\n\t\t\trenderToggle={ ( { isOpen, onToggle } ) => {\n\t\t\t\tconst openOnArrowDown = ( event ) => {\n\t\t\t\t\tif ( ! isOpen && event.keyCode === DOWN ) {\n\t\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\t\tonToggle();\n\t\t\t\t\t}\n\t\t\t\t};\n\t\t\t\tconst mergedToggleProps = mergeProps(\n\t\t\t\t\t{\n\t\t\t\t\t\tclassName: classnames(\n\t\t\t\t\t\t\t'components-dropdown-menu__toggle',\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t'is-opened': isOpen,\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t),\n\t\t\t\t\t},\n\t\t\t\t\ttoggleProps\n\t\t\t\t);\n\n\t\t\t\treturn (\n\t\t\t\t\t<Button\n\t\t\t\t\t\t{ ...mergedToggleProps }\n\t\t\t\t\t\ticon={ icon }\n\t\t\t\t\t\tonClick={ ( event ) => {\n\t\t\t\t\t\t\tonToggle( event );\n\t\t\t\t\t\t\tif ( mergedToggleProps.onClick ) {\n\t\t\t\t\t\t\t\tmergedToggleProps.onClick( event );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} }\n\t\t\t\t\t\tonKeyDown={ ( event ) => {\n\t\t\t\t\t\t\topenOnArrowDown( event );\n\t\t\t\t\t\t\tif ( mergedToggleProps.onKeyDown ) {\n\t\t\t\t\t\t\t\tmergedToggleProps.onKeyDown( event );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} }\n\t\t\t\t\t\taria-haspopup=\"true\"\n\t\t\t\t\t\taria-expanded={ isOpen }\n\t\t\t\t\t\tlabel={ label }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ mergedToggleProps.children }\n\t\t\t\t\t</Button>\n\t\t\t\t);\n\t\t\t} }\n\t\t\trenderContent={ ( { isOpen, onClose, ...props } ) => {\n\t\t\t\treturn (\n\t\t\t\t\t<BottomSheet\n\t\t\t\t\t\thideHeader={ true }\n\t\t\t\t\t\tisVisible={ isOpen }\n\t\t\t\t\t\tonClose={ onClose }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ isFunction( children ) ? children( props ) : null }\n\t\t\t\t\t\t<PanelBody\n\t\t\t\t\t\t\ttitle={ label }\n\t\t\t\t\t\t\tstyle={ { paddingLeft: 0, paddingRight: 0 } }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ flatMap(\n\t\t\t\t\t\t\t\tcontrolSets,\n\t\t\t\t\t\t\t\t( controlSet, indexOfSet ) =>\n\t\t\t\t\t\t\t\t\tcontrolSet.map(\n\t\t\t\t\t\t\t\t\t\t( control, indexOfControl ) => (\n\t\t\t\t\t\t\t\t\t\t\t<BottomSheet.Cell\n\t\t\t\t\t\t\t\t\t\t\t\tkey={ [\n\t\t\t\t\t\t\t\t\t\t\t\t\tindexOfSet,\n\t\t\t\t\t\t\t\t\t\t\t\t\tindexOfControl,\n\t\t\t\t\t\t\t\t\t\t\t\t].join() }\n\t\t\t\t\t\t\t\t\t\t\t\tlabel={ control.title }\n\t\t\t\t\t\t\t\t\t\t\t\tonPress={ () => {\n\t\t\t\t\t\t\t\t\t\t\t\t\tonClose();\n\t\t\t\t\t\t\t\t\t\t\t\t\tif ( control.onClick ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tcontrol.onClick();\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\t\t\t\t\teditable={ false }\n\t\t\t\t\t\t\t\t\t\t\t\ticon={ control.icon }\n\t\t\t\t\t\t\t\t\t\t\t\tleftAlign={ true }\n\t\t\t\t\t\t\t\t\t\t\t\tisSelected={ control.isActive }\n\t\t\t\t\t\t\t\t\t\t\t\tseparatorType={\n\t\t\t\t\t\t\t\t\t\t\t\t\tPlatform.OS === 'android'\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t? 'none'\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t: 'leftMargin'\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t/>\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) }\n\t\t\t\t\t\t</PanelBody>\n\t\t\t\t\t</BottomSheet>\n\t\t\t\t);\n\t\t\t} }\n\t\t/>\n\t);\n}\n\nexport default withPreferredColorScheme( DropdownMenu );\n"]}
1
+ {"version":3,"sources":["@wordpress/components/src/dropdown-menu/index.native.js"],"names":["classnames","flatMap","isEmpty","Platform","DOWN","BottomSheet","PanelBody","withPreferredColorScheme","menu","Button","Dropdown","mergeProps","defaultProps","props","mergedProps","className","isFunction","maybeFunc","DropdownMenu","children","controls","icon","label","popoverProps","toggleProps","controlSets","Array","isArray","mergedPopoverProps","isOpen","onToggle","openOnArrowDown","event","keyCode","preventDefault","mergedToggleProps","onClick","onKeyDown","onClose","paddingLeft","paddingRight","controlSet","indexOfSet","map","control","indexOfControl","join","title","isActive","OS"],"mappings":";;;AAAA;AACA;AACA;AACA,OAAOA,UAAP,MAAuB,YAAvB;AACA,SAASC,OAAT,EAAkBC,OAAlB,QAAiC,QAAjC;AACA,SAASC,QAAT,QAAyB,cAAzB;AACA;AACA;AACA;;AACA,SAASC,IAAT,QAAqB,qBAArB;AACA,SAASC,WAAT,EAAsBC,SAAtB,QAAuC,uBAAvC;AACA,SAASC,wBAAT,QAAyC,oBAAzC;AACA,SAASC,IAAT,QAAqB,kBAArB;AAEA;AACA;AACA;;AACA,OAAOC,MAAP,MAAmB,WAAnB;AACA,OAAOC,QAAP,MAAqB,aAArB;;AAEA,SAASC,UAAT,GAAqD;AAAA,MAAhCC,YAAgC,uEAAjB,EAAiB;AAAA,MAAbC,KAAa,uEAAL,EAAK;AACpD,QAAMC,WAAW,GAAG,EACnB,GAAGF,YADgB;AAEnB,OAAGC;AAFgB,GAApB;;AAKA,MAAKA,KAAK,CAACE,SAAN,IAAmBH,YAAY,CAACG,SAArC,EAAiD;AAChDD,IAAAA,WAAW,CAACC,SAAZ,GAAwBf,UAAU,CACjCa,KAAK,CAACE,SAD2B,EAEjCH,YAAY,CAACG,SAFoB,CAAlC;AAIA;;AAED,SAAOD,WAAP;AACA;AAED;AACA;AACA;AACA;AACA;AACA;;;AACA,SAASE,UAAT,CAAqBC,SAArB,EAAiC;AAChC,SAAO,OAAOA,SAAP,KAAqB,UAA5B;AACA;;AAED,SAASC,YAAT,OAQI;AAAA,MARmB;AACtBC,IAAAA,QADsB;AAEtBJ,IAAAA,SAFsB;AAGtBK,IAAAA,QAHsB;AAItBC,IAAAA,IAAI,GAAGb,IAJe;AAKtBc,IAAAA,KALsB;AAMtBC,IAAAA,YANsB;AAOtBC,IAAAA;AAPsB,GAQnB;;AACH,MAAKtB,OAAO,CAAEkB,QAAF,CAAP,IAAuB,CAAEJ,UAAU,CAAEG,QAAF,CAAxC,EAAuD;AACtD,WAAO,IAAP;AACA,GAHE,CAKH;;;AACA,MAAIM,WAAJ;;AACA,MAAK,CAAEvB,OAAO,CAAEkB,QAAF,CAAd,EAA6B;AAC5BK,IAAAA,WAAW,GAAGL,QAAd;;AACA,QAAK,CAAEM,KAAK,CAACC,OAAN,CAAeF,WAAW,CAAE,CAAF,CAA1B,CAAP,EAA2C;AAC1CA,MAAAA,WAAW,GAAG,CAAEA,WAAF,CAAd;AACA;AACD;;AACD,QAAMG,kBAAkB,GAAGjB,UAAU,CACpC;AACCI,IAAAA,SAAS,EAAE;AADZ,GADoC,EAIpCQ,YAJoC,CAArC;AAOA,SACC,cAAC,QAAD;AACC,IAAA,SAAS,EAAGvB,UAAU,CAAE,0BAAF,EAA8Be,SAA9B,CADvB;AAEC,IAAA,YAAY,EAAGa,kBAFhB;AAGC,IAAA,YAAY,EAAG,SAA4B;AAAA,UAA1B;AAAEC,QAAAA,MAAF;AAAUC,QAAAA;AAAV,OAA0B;;AAC1C,YAAMC,eAAe,GAAKC,KAAF,IAAa;AACpC,YAAK,CAAEH,MAAF,IAAYG,KAAK,CAACC,OAAN,KAAkB7B,IAAnC,EAA0C;AACzC4B,UAAAA,KAAK,CAACE,cAAN;AACAJ,UAAAA,QAAQ;AACR;AACD,OALD;;AAMA,YAAMK,iBAAiB,GAAGxB,UAAU,CACnC;AACCI,QAAAA,SAAS,EAAEf,UAAU,CACpB,kCADoB,EAEpB;AACC,uBAAa6B;AADd,SAFoB;AADtB,OADmC,EASnCL,WATmC,CAApC;AAYA,aACC,cAAC,MAAD,eACMW,iBADN;AAEC,QAAA,IAAI,EAAGd,IAFR;AAGC,QAAA,OAAO,EAAKW,KAAF,IAAa;AACtBF,UAAAA,QAAQ,CAAEE,KAAF,CAAR;;AACA,cAAKG,iBAAiB,CAACC,OAAvB,EAAiC;AAChCD,YAAAA,iBAAiB,CAACC,OAAlB,CAA2BJ,KAA3B;AACA;AACD,SARF;AASC,QAAA,SAAS,EAAKA,KAAF,IAAa;AACxBD,UAAAA,eAAe,CAAEC,KAAF,CAAf;;AACA,cAAKG,iBAAiB,CAACE,SAAvB,EAAmC;AAClCF,YAAAA,iBAAiB,CAACE,SAAlB,CAA6BL,KAA7B;AACA;AACD,SAdF;AAeC,yBAAc,MAff;AAgBC,yBAAgBH,MAhBjB;AAiBC,QAAA,KAAK,EAAGP;AAjBT,UAmBGa,iBAAiB,CAAChB,QAnBrB,CADD;AAuBA,KA7CF;AA8CC,IAAA,aAAa,EAAG,SAAqC;AAAA,UAAnC;AAAEU,QAAAA,MAAF;AAAUS,QAAAA,OAAV;AAAmB,WAAGzB;AAAtB,OAAmC;AACpD,aACC,cAAC,WAAD;AACC,QAAA,UAAU,EAAG,IADd;AAEC,QAAA,SAAS,EAAGgB,MAFb;AAGC,QAAA,OAAO,EAAGS;AAHX,SAKGtB,UAAU,CAAEG,QAAF,CAAV,GAAyBA,QAAQ,CAAEN,KAAF,CAAjC,GAA6C,IALhD,EAMC,cAAC,SAAD;AACC,QAAA,KAAK,EAAGS,KADT;AAEC,QAAA,KAAK,EAAG;AAAEiB,UAAAA,WAAW,EAAE,CAAf;AAAkBC,UAAAA,YAAY,EAAE;AAAhC;AAFT,SAIGvC,OAAO,CACRwB,WADQ,EAER,CAAEgB,UAAF,EAAcC,UAAd,KACCD,UAAU,CAACE,GAAX,CACC,CAAEC,OAAF,EAAWC,cAAX,KACC,cAAC,WAAD,CAAa,IAAb;AACC,QAAA,GAAG,EAAG,CACLH,UADK,EAELG,cAFK,EAGJC,IAHI,EADP;AAKC,QAAA,KAAK,EAAGF,OAAO,CAACG,KALjB;AAMC,QAAA,OAAO,EAAG,MAAM;AACfT,UAAAA,OAAO;;AACP,cAAKM,OAAO,CAACR,OAAb,EAAuB;AACtBQ,YAAAA,OAAO,CAACR,OAAR;AACA;AACD,SAXF;AAYC,QAAA,QAAQ,EAAG,KAZZ;AAaC,QAAA,IAAI,EAAGQ,OAAO,CAACvB,IAbhB;AAcC,QAAA,SAAS,EAAG,IAdb;AAeC,QAAA,UAAU,EAAGuB,OAAO,CAACI,QAftB;AAgBC,QAAA,aAAa,EACZ7C,QAAQ,CAAC8C,EAAT,KAAgB,SAAhB,GACG,MADH,GAEG;AAnBL,QAFF,CAHO,CAJV,CAND,CADD;AA4CA;AA3FF,IADD;AA+FA;;AAED,eAAe1C,wBAAwB,CAAEW,YAAF,CAAvC","sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\nimport { flatMap, isEmpty } from 'lodash';\nimport { Platform } from 'react-native';\n/**\n * WordPress dependencies\n */\nimport { DOWN } from '@wordpress/keycodes';\nimport { BottomSheet, PanelBody } from '@wordpress/components';\nimport { withPreferredColorScheme } from '@wordpress/compose';\nimport { menu } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport Button from '../button';\nimport Dropdown from '../dropdown';\n\nfunction mergeProps( defaultProps = {}, props = {} ) {\n\tconst mergedProps = {\n\t\t...defaultProps,\n\t\t...props,\n\t};\n\n\tif ( props.className && defaultProps.className ) {\n\t\tmergedProps.className = classnames(\n\t\t\tprops.className,\n\t\t\tdefaultProps.className\n\t\t);\n\t}\n\n\treturn mergedProps;\n}\n\n/**\n * Whether the argument is a function.\n *\n * @param {*} maybeFunc The argument to check.\n * @return {boolean} True if the argument is a function, false otherwise.\n */\nfunction isFunction( maybeFunc ) {\n\treturn typeof maybeFunc === 'function';\n}\n\nfunction DropdownMenu( {\n\tchildren,\n\tclassName,\n\tcontrols,\n\ticon = menu,\n\tlabel,\n\tpopoverProps,\n\ttoggleProps,\n} ) {\n\tif ( isEmpty( controls ) && ! isFunction( children ) ) {\n\t\treturn null;\n\t}\n\n\t// Normalize controls to nested array of objects (sets of controls)\n\tlet controlSets;\n\tif ( ! isEmpty( controls ) ) {\n\t\tcontrolSets = controls;\n\t\tif ( ! Array.isArray( controlSets[ 0 ] ) ) {\n\t\t\tcontrolSets = [ controlSets ];\n\t\t}\n\t}\n\tconst mergedPopoverProps = mergeProps(\n\t\t{\n\t\t\tclassName: 'components-dropdown-menu__popover',\n\t\t},\n\t\tpopoverProps\n\t);\n\n\treturn (\n\t\t<Dropdown\n\t\t\tclassName={ classnames( 'components-dropdown-menu', className ) }\n\t\t\tpopoverProps={ mergedPopoverProps }\n\t\t\trenderToggle={ ( { isOpen, onToggle } ) => {\n\t\t\t\tconst openOnArrowDown = ( event ) => {\n\t\t\t\t\tif ( ! isOpen && event.keyCode === DOWN ) {\n\t\t\t\t\t\tevent.preventDefault();\n\t\t\t\t\t\tonToggle();\n\t\t\t\t\t}\n\t\t\t\t};\n\t\t\t\tconst mergedToggleProps = mergeProps(\n\t\t\t\t\t{\n\t\t\t\t\t\tclassName: classnames(\n\t\t\t\t\t\t\t'components-dropdown-menu__toggle',\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t'is-opened': isOpen,\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t),\n\t\t\t\t\t},\n\t\t\t\t\ttoggleProps\n\t\t\t\t);\n\n\t\t\t\treturn (\n\t\t\t\t\t<Button\n\t\t\t\t\t\t{ ...mergedToggleProps }\n\t\t\t\t\t\ticon={ icon }\n\t\t\t\t\t\tonClick={ ( event ) => {\n\t\t\t\t\t\t\tonToggle( event );\n\t\t\t\t\t\t\tif ( mergedToggleProps.onClick ) {\n\t\t\t\t\t\t\t\tmergedToggleProps.onClick( event );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} }\n\t\t\t\t\t\tonKeyDown={ ( event ) => {\n\t\t\t\t\t\t\topenOnArrowDown( event );\n\t\t\t\t\t\t\tif ( mergedToggleProps.onKeyDown ) {\n\t\t\t\t\t\t\t\tmergedToggleProps.onKeyDown( event );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} }\n\t\t\t\t\t\taria-haspopup=\"true\"\n\t\t\t\t\t\taria-expanded={ isOpen }\n\t\t\t\t\t\tlabel={ label }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ mergedToggleProps.children }\n\t\t\t\t\t</Button>\n\t\t\t\t);\n\t\t\t} }\n\t\t\trenderContent={ ( { isOpen, onClose, ...props } ) => {\n\t\t\t\treturn (\n\t\t\t\t\t<BottomSheet\n\t\t\t\t\t\thideHeader={ true }\n\t\t\t\t\t\tisVisible={ isOpen }\n\t\t\t\t\t\tonClose={ onClose }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ isFunction( children ) ? children( props ) : null }\n\t\t\t\t\t\t<PanelBody\n\t\t\t\t\t\t\ttitle={ label }\n\t\t\t\t\t\t\tstyle={ { paddingLeft: 0, paddingRight: 0 } }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ flatMap(\n\t\t\t\t\t\t\t\tcontrolSets,\n\t\t\t\t\t\t\t\t( controlSet, indexOfSet ) =>\n\t\t\t\t\t\t\t\t\tcontrolSet.map(\n\t\t\t\t\t\t\t\t\t\t( control, indexOfControl ) => (\n\t\t\t\t\t\t\t\t\t\t\t<BottomSheet.Cell\n\t\t\t\t\t\t\t\t\t\t\t\tkey={ [\n\t\t\t\t\t\t\t\t\t\t\t\t\tindexOfSet,\n\t\t\t\t\t\t\t\t\t\t\t\t\tindexOfControl,\n\t\t\t\t\t\t\t\t\t\t\t\t].join() }\n\t\t\t\t\t\t\t\t\t\t\t\tlabel={ control.title }\n\t\t\t\t\t\t\t\t\t\t\t\tonPress={ () => {\n\t\t\t\t\t\t\t\t\t\t\t\t\tonClose();\n\t\t\t\t\t\t\t\t\t\t\t\t\tif ( control.onClick ) {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tcontrol.onClick();\n\t\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\t\t\t\t\teditable={ false }\n\t\t\t\t\t\t\t\t\t\t\t\ticon={ control.icon }\n\t\t\t\t\t\t\t\t\t\t\t\tleftAlign={ true }\n\t\t\t\t\t\t\t\t\t\t\t\tisSelected={ control.isActive }\n\t\t\t\t\t\t\t\t\t\t\t\tseparatorType={\n\t\t\t\t\t\t\t\t\t\t\t\t\tPlatform.OS === 'android'\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t? 'none'\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t: 'leftMargin'\n\t\t\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\t\t/>\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) }\n\t\t\t\t\t\t</PanelBody>\n\t\t\t\t\t</BottomSheet>\n\t\t\t\t);\n\t\t\t} }\n\t\t/>\n\t);\n}\n\nexport default withPreferredColorScheme( DropdownMenu );\n"]}
@@ -6,10 +6,10 @@ import { createElement } from "@wordpress/element";
6
6
  */
7
7
  import classnames from 'classnames';
8
8
  import { compact, uniq } from 'lodash';
9
+
9
10
  /**
10
11
  * WordPress dependencies
11
12
  */
12
-
13
13
  import { __ } from '@wordpress/i18n';
14
14
  import { forwardRef } from '@wordpress/element';
15
15
  import { external } from '@wordpress/icons';
@@ -19,15 +19,16 @@ import { external } from '@wordpress/icons';
19
19
 
20
20
  import { VisuallyHidden } from '../visually-hidden';
21
21
  import { StyledIcon } from './styles/external-link-styles';
22
- export function ExternalLink(_ref, ref) {
23
- let {
22
+
23
+ function UnforwardedExternalLink(props, ref) {
24
+ const {
24
25
  href,
25
26
  children,
26
27
  className,
27
28
  rel = '',
28
29
  ...additionalProps
29
- } = _ref;
30
- rel = uniq(compact([...rel.split(' '), 'external', 'noreferrer', 'noopener'])).join(' ');
30
+ } = props;
31
+ const optimizedRel = uniq(compact([...rel.split(' '), 'external', 'noreferrer', 'noopener'])).join(' ');
31
32
  const classes = classnames('components-external-link', className);
32
33
  return (
33
34
  /* eslint-disable react/jsx-no-target-blank */
@@ -35,7 +36,7 @@ export function ExternalLink(_ref, ref) {
35
36
  className: classes,
36
37
  href: href,
37
38
  target: "_blank",
38
- rel: rel,
39
+ rel: optimizedRel,
39
40
  ref: ref
40
41
  }), children, createElement(VisuallyHidden, {
41
42
  as: "span"
@@ -49,5 +50,19 @@ export function ExternalLink(_ref, ref) {
49
50
 
50
51
  );
51
52
  }
52
- export default forwardRef(ExternalLink);
53
+ /**
54
+ * Link to an external resource.
55
+ *
56
+ * ```jsx
57
+ * import { ExternalLink } from '@wordpress/components';
58
+ *
59
+ * const MyExternalLink = () => (
60
+ * <ExternalLink href="https://wordpress.org">WordPress.org</ExternalLink>
61
+ * );
62
+ * ```
63
+ */
64
+
65
+
66
+ export const ExternalLink = forwardRef(UnforwardedExternalLink);
67
+ export default ExternalLink;
53
68
  //# sourceMappingURL=index.js.map