@wordpress/components 19.12.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 (717) hide show
  1. package/CHANGELOG.md +37 -0
  2. package/CONTRIBUTING.md +94 -12
  3. package/build/alignment-matrix-control/index.js +3 -3
  4. package/build/alignment-matrix-control/index.js.map +1 -1
  5. package/build/angle-picker-control/index.js +2 -2
  6. package/build/angle-picker-control/index.js.map +1 -1
  7. package/build/border-box-control/border-box-control-linked-button/component.js.map +1 -1
  8. package/build/border-box-control/utils.js.map +1 -1
  9. package/build/border-control/border-control/hook.js.map +1 -1
  10. package/build/box-control/all-input-control.js +6 -10
  11. package/build/box-control/all-input-control.js.map +1 -1
  12. package/build/box-control/axial-input-controls.js.map +1 -1
  13. package/build/box-control/index.js +3 -7
  14. package/build/box-control/index.js.map +1 -1
  15. package/build/box-control/input-controls.js +6 -10
  16. package/build/box-control/input-controls.js.map +1 -1
  17. package/build/box-control/unit-control.js +4 -4
  18. package/build/box-control/unit-control.js.map +1 -1
  19. package/build/button/index.native.js +1 -3
  20. package/build/button/index.native.js.map +1 -1
  21. package/build/checkbox-control/index.js.map +1 -1
  22. package/build/color-picker/index.native.js.map +1 -1
  23. package/build/combobox-control/index.js +4 -2
  24. package/build/combobox-control/index.js.map +1 -1
  25. package/build/confirm-dialog/component.js.map +1 -1
  26. package/build/custom-gradient-bar/constants.js +1 -3
  27. package/build/custom-gradient-bar/constants.js.map +1 -1
  28. package/build/custom-gradient-bar/control-points.js +15 -8
  29. package/build/custom-gradient-bar/control-points.js.map +1 -1
  30. package/build/custom-gradient-bar/index.js +5 -5
  31. package/build/custom-gradient-bar/index.js.map +1 -1
  32. package/build/custom-gradient-bar/utils.js +5 -7
  33. package/build/custom-gradient-bar/utils.js.map +1 -1
  34. package/build/custom-gradient-picker/utils.js.map +1 -1
  35. package/build/custom-select-control/index.js.map +1 -1
  36. package/build/date-time/date/index.js +4 -4
  37. package/build/date-time/date/index.js.map +1 -1
  38. package/build/date-time/date-time/index.js +3 -3
  39. package/build/date-time/date-time/index.js.map +1 -1
  40. package/build/dimension-control/index.js +1 -3
  41. package/build/dimension-control/index.js.map +1 -1
  42. package/build/divider/styles.js +5 -5
  43. package/build/divider/styles.js.map +1 -1
  44. package/build/draggable/index.js.map +1 -1
  45. package/build/draggable/index.native.js +6 -1
  46. package/build/draggable/index.native.js.map +1 -1
  47. package/build/drop-zone/provider.js.map +1 -1
  48. package/build/dropdown/index.js +2 -2
  49. package/build/dropdown/index.js.map +1 -1
  50. package/build/dropdown-menu/index.js +13 -2
  51. package/build/dropdown-menu/index.js.map +1 -1
  52. package/build/dropdown-menu/index.native.js +13 -2
  53. package/build/dropdown-menu/index.native.js.map +1 -1
  54. package/build/external-link/index.js +20 -8
  55. package/build/external-link/index.js.map +1 -1
  56. package/build/external-link/styles/external-link-styles.js +3 -3
  57. package/build/external-link/styles/external-link-styles.js.map +1 -1
  58. package/build/external-link/types.js +6 -0
  59. package/build/external-link/types.js.map +1 -0
  60. package/build/flex/flex/hook.js +9 -5
  61. package/build/flex/flex/hook.js.map +1 -1
  62. package/build/focal-point-picker/controls.js +3 -7
  63. package/build/focal-point-picker/controls.js.map +1 -1
  64. package/build/focal-point-picker/index.js.map +1 -1
  65. package/build/focal-point-picker/media.js +4 -8
  66. package/build/focal-point-picker/media.js.map +1 -1
  67. package/build/font-size-picker/index.js +1 -1
  68. package/build/font-size-picker/index.js.map +1 -1
  69. package/build/form-toggle/index.js +6 -4
  70. package/build/form-toggle/index.js.map +1 -1
  71. package/build/form-token-field/index.js +328 -359
  72. package/build/form-token-field/index.js.map +1 -1
  73. package/build/form-token-field/suggestions-list.js +26 -20
  74. package/build/form-token-field/suggestions-list.js.map +1 -1
  75. package/build/form-token-field/token-input.js +39 -53
  76. package/build/form-token-field/token-input.js.map +1 -1
  77. package/build/form-token-field/token.js +3 -3
  78. package/build/form-token-field/token.js.map +1 -1
  79. package/build/form-token-field/types.js +6 -0
  80. package/build/form-token-field/types.js.map +1 -0
  81. package/build/gradient-picker/index.js.map +1 -1
  82. package/build/heading/hook.js.map +1 -1
  83. package/build/higher-order/navigate-regions/index.js.map +1 -1
  84. package/build/higher-order/with-focus-return/index.js.map +1 -1
  85. package/build/higher-order/with-spoken-messages/index.js.map +1 -1
  86. package/build/icon/index.js.map +1 -1
  87. package/build/input-control/index.js +5 -5
  88. package/build/input-control/index.js.map +1 -1
  89. package/build/input-control/input-field.js +10 -10
  90. package/build/input-control/input-field.js.map +1 -1
  91. package/build/input-control/reducer/reducer.js.map +1 -1
  92. package/build/input-control/utils.js +1 -1
  93. package/build/input-control/utils.js.map +1 -1
  94. package/build/menu-items-choice/index.js +3 -7
  95. package/build/menu-items-choice/index.js.map +1 -1
  96. package/build/mobile/bottom-sheet/bottom-sheet-context.native.js.map +1 -1
  97. package/build/mobile/bottom-sheet/cell.native.js.map +1 -1
  98. package/build/mobile/bottom-sheet/cycle-picker-cell.native.js +1 -7
  99. package/build/mobile/bottom-sheet/cycle-picker-cell.native.js.map +1 -1
  100. package/build/mobile/bottom-sheet/index.native.js.map +1 -1
  101. package/build/mobile/bottom-sheet/picker-cell.native.js.map +1 -1
  102. package/build/mobile/bottom-sheet/stepper-cell/index.native.js.map +1 -1
  103. package/build/mobile/color-settings/index.native.js.map +1 -1
  104. package/build/mobile/global-styles-context/index.native.js.map +1 -1
  105. package/build/mobile/gradient/index.native.js.map +1 -1
  106. package/build/mobile/html-text-input/index.native.js.map +1 -1
  107. package/build/mobile/inserter-button/index.native.js.map +1 -1
  108. package/build/mobile/link-settings/image-link-destinations-screen.native.js.map +1 -1
  109. package/build/mobile/media-edit/index.native.js.map +1 -1
  110. package/build/mobile/segmented-control/index.native.js +1 -1
  111. package/build/mobile/segmented-control/index.native.js.map +1 -1
  112. package/build/modal/index.js +1 -1
  113. package/build/modal/index.js.map +1 -1
  114. package/build/navigable-container/container.js +4 -2
  115. package/build/navigable-container/container.js.map +1 -1
  116. package/build/navigation/context.js +12 -16
  117. package/build/navigation/context.js.map +1 -1
  118. package/build/navigation/index.js +3 -3
  119. package/build/navigation/index.js.map +1 -1
  120. package/build/navigation/item/index.js +3 -3
  121. package/build/navigation/item/index.js.map +1 -1
  122. package/build/navigator/navigator-back-button/hook.js.map +1 -1
  123. package/build/navigator/navigator-button/hook.js.map +1 -1
  124. package/build/navigator/navigator-provider/component.js +1 -1
  125. package/build/navigator/navigator-provider/component.js.map +1 -1
  126. package/build/navigator/navigator-screen/component.js +1 -1
  127. package/build/navigator/navigator-screen/component.js.map +1 -1
  128. package/build/notice/index.js +5 -5
  129. package/build/notice/index.js.map +1 -1
  130. package/build/notice/list.js +4 -2
  131. package/build/notice/list.js.map +1 -1
  132. package/build/panel/body.js +3 -3
  133. package/build/panel/body.js.map +1 -1
  134. package/build/placeholder/index.js +26 -12
  135. package/build/placeholder/index.js.map +1 -1
  136. package/build/radio-control/index.js +43 -7
  137. package/build/radio-control/index.js.map +1 -1
  138. package/build/radio-control/types.js +6 -0
  139. package/build/radio-control/types.js.map +1 -0
  140. package/build/range-control/index.js +8 -6
  141. package/build/range-control/index.js.map +1 -1
  142. package/build/range-control/input-range.js +6 -10
  143. package/build/range-control/input-range.js.map +1 -1
  144. package/build/range-control/utils.js +7 -5
  145. package/build/range-control/utils.js.map +1 -1
  146. package/build/resizable-box/resize-tooltip/index.js +3 -3
  147. package/build/resizable-box/resize-tooltip/index.js.map +1 -1
  148. package/build/resizable-box/resize-tooltip/utils.js +4 -7
  149. package/build/resizable-box/resize-tooltip/utils.js.map +1 -1
  150. package/build/responsive-wrapper/index.js.map +1 -1
  151. package/build/select-control/index.js +5 -3
  152. package/build/select-control/index.js.map +1 -1
  153. package/build/slot-fill/fill.js +1 -7
  154. package/build/slot-fill/fill.js.map +1 -1
  155. package/build/slot-fill/slot.js +14 -3
  156. package/build/slot-fill/slot.js.map +1 -1
  157. package/build/snackbar/index.js +7 -7
  158. package/build/snackbar/index.js.map +1 -1
  159. package/build/snackbar/list.js +3 -1
  160. package/build/snackbar/list.js.map +1 -1
  161. package/build/tab-panel/index.js +3 -1
  162. package/build/tab-panel/index.js.map +1 -1
  163. package/build/text/hook.js +4 -4
  164. package/build/text/hook.js.map +1 -1
  165. package/build/text/utils.js.map +1 -1
  166. package/build/toggle-control/index.js +1 -3
  167. package/build/toggle-control/index.js.map +1 -1
  168. package/build/toggle-control/index.native.js +1 -7
  169. package/build/toggle-control/index.native.js.map +1 -1
  170. package/build/toggle-group-control/toggle-group-control/toggle-group-control-backdrop.js.map +1 -1
  171. package/build/toolbar/index.js.map +1 -1
  172. package/build/tools-panel/tools-panel/hook.js.map +1 -1
  173. package/build/tools-panel/tools-panel-header/hook.js.map +1 -1
  174. package/build/tooltip/index.js +2 -1
  175. package/build/tooltip/index.js.map +1 -1
  176. package/build/tree-grid/roving-tab-index-item.js.map +1 -1
  177. package/build/tree-select/index.js +57 -4
  178. package/build/tree-select/index.js.map +1 -1
  179. package/build/tree-select/types.js +6 -0
  180. package/build/tree-select/types.js.map +1 -0
  181. package/build/ui/form-group/form-group-content.js.map +1 -1
  182. package/build/unit-control/index.js.map +1 -1
  183. package/build/utils/unit-values.js.map +1 -1
  184. package/build/utils/values.js.map +1 -1
  185. package/build/z-stack/component.js +22 -3
  186. package/build/z-stack/component.js.map +1 -1
  187. package/build/z-stack/types.js +6 -0
  188. package/build/z-stack/types.js.map +1 -0
  189. package/build-module/alignment-matrix-control/index.js +2 -1
  190. package/build-module/alignment-matrix-control/index.js.map +1 -1
  191. package/build-module/angle-picker-control/index.js +1 -1
  192. package/build-module/angle-picker-control/index.js.map +1 -1
  193. package/build-module/border-box-control/border-box-control-linked-button/component.js.map +1 -1
  194. package/build-module/border-box-control/utils.js.map +1 -1
  195. package/build-module/border-control/border-control/hook.js.map +1 -1
  196. package/build-module/box-control/all-input-control.js +3 -5
  197. package/build-module/box-control/all-input-control.js.map +1 -1
  198. package/build-module/box-control/axial-input-controls.js.map +1 -1
  199. package/build-module/box-control/index.js +2 -5
  200. package/build-module/box-control/index.js.map +1 -1
  201. package/build-module/box-control/input-controls.js +3 -5
  202. package/build-module/box-control/input-controls.js.map +1 -1
  203. package/build-module/box-control/unit-control.js +3 -1
  204. package/build-module/box-control/unit-control.js.map +1 -1
  205. package/build-module/button/index.native.js +1 -2
  206. package/build-module/button/index.native.js.map +1 -1
  207. package/build-module/checkbox-control/index.js.map +1 -1
  208. package/build-module/color-picker/index.native.js.map +1 -1
  209. package/build-module/combobox-control/index.js +5 -2
  210. package/build-module/combobox-control/index.js.map +1 -1
  211. package/build-module/confirm-dialog/component.js.map +1 -1
  212. package/build-module/custom-gradient-bar/constants.js +0 -1
  213. package/build-module/custom-gradient-bar/constants.js.map +1 -1
  214. package/build-module/custom-gradient-bar/control-points.js +16 -9
  215. package/build-module/custom-gradient-bar/control-points.js.map +1 -1
  216. package/build-module/custom-gradient-bar/index.js +6 -6
  217. package/build-module/custom-gradient-bar/index.js.map +1 -1
  218. package/build-module/custom-gradient-bar/utils.js +6 -8
  219. package/build-module/custom-gradient-bar/utils.js.map +1 -1
  220. package/build-module/custom-gradient-picker/utils.js.map +1 -1
  221. package/build-module/custom-select-control/index.js.map +1 -1
  222. package/build-module/date-time/date/index.js +4 -3
  223. package/build-module/date-time/date/index.js.map +1 -1
  224. package/build-module/date-time/date-time/index.js +2 -1
  225. package/build-module/date-time/date-time/index.js.map +1 -1
  226. package/build-module/dimension-control/index.js +1 -2
  227. package/build-module/dimension-control/index.js.map +1 -1
  228. package/build-module/divider/styles.js +5 -5
  229. package/build-module/divider/styles.js.map +1 -1
  230. package/build-module/draggable/index.js.map +1 -1
  231. package/build-module/draggable/index.native.js +6 -1
  232. package/build-module/draggable/index.native.js.map +1 -1
  233. package/build-module/drop-zone/provider.js.map +1 -1
  234. package/build-module/dropdown/index.js +2 -2
  235. package/build-module/dropdown/index.js.map +1 -1
  236. package/build-module/dropdown-menu/index.js +12 -1
  237. package/build-module/dropdown-menu/index.js.map +1 -1
  238. package/build-module/dropdown-menu/index.native.js +12 -1
  239. package/build-module/dropdown-menu/index.native.js.map +1 -1
  240. package/build-module/external-link/index.js +22 -7
  241. package/build-module/external-link/index.js.map +1 -1
  242. package/build-module/external-link/styles/external-link-styles.js +3 -3
  243. package/build-module/external-link/styles/external-link-styles.js.map +1 -1
  244. package/build-module/external-link/types.js +2 -0
  245. package/build-module/external-link/types.js.map +1 -0
  246. package/build-module/flex/flex/hook.js +7 -5
  247. package/build-module/flex/flex/hook.js.map +1 -1
  248. package/build-module/focal-point-picker/controls.js +3 -5
  249. package/build-module/focal-point-picker/controls.js.map +1 -1
  250. package/build-module/focal-point-picker/index.js.map +1 -1
  251. package/build-module/focal-point-picker/media.js +3 -5
  252. package/build-module/focal-point-picker/media.js.map +1 -1
  253. package/build-module/font-size-picker/index.js +1 -1
  254. package/build-module/font-size-picker/index.js.map +1 -1
  255. package/build-module/form-toggle/index.js +1 -1
  256. package/build-module/form-toggle/index.js.map +1 -1
  257. package/build-module/form-token-field/index.js +329 -361
  258. package/build-module/form-token-field/index.js.map +1 -1
  259. package/build-module/form-token-field/suggestions-list.js +32 -23
  260. package/build-module/form-token-field/suggestions-list.js.map +1 -1
  261. package/build-module/form-token-field/token-input.js +43 -58
  262. package/build-module/form-token-field/token-input.js.map +1 -1
  263. package/build-module/form-token-field/token.js +3 -1
  264. package/build-module/form-token-field/token.js.map +1 -1
  265. package/build-module/form-token-field/types.js +2 -0
  266. package/build-module/form-token-field/types.js.map +1 -0
  267. package/build-module/gradient-picker/index.js.map +1 -1
  268. package/build-module/heading/hook.js.map +1 -1
  269. package/build-module/higher-order/navigate-regions/index.js.map +1 -1
  270. package/build-module/higher-order/with-focus-return/index.js.map +1 -1
  271. package/build-module/higher-order/with-spoken-messages/index.js.map +1 -1
  272. package/build-module/icon/index.js.map +1 -1
  273. package/build-module/input-control/index.js +2 -1
  274. package/build-module/input-control/index.js.map +1 -1
  275. package/build-module/input-control/input-field.js +2 -1
  276. package/build-module/input-control/input-field.js.map +1 -1
  277. package/build-module/input-control/reducer/reducer.js.map +1 -1
  278. package/build-module/input-control/utils.js +1 -1
  279. package/build-module/input-control/utils.js.map +1 -1
  280. package/build-module/menu-items-choice/index.js +3 -5
  281. package/build-module/menu-items-choice/index.js.map +1 -1
  282. package/build-module/mobile/bottom-sheet/bottom-sheet-context.native.js.map +1 -1
  283. package/build-module/mobile/bottom-sheet/cell.native.js.map +1 -1
  284. package/build-module/mobile/bottom-sheet/cycle-picker-cell.native.js +1 -6
  285. package/build-module/mobile/bottom-sheet/cycle-picker-cell.native.js.map +1 -1
  286. package/build-module/mobile/bottom-sheet/index.native.js.map +1 -1
  287. package/build-module/mobile/bottom-sheet/picker-cell.native.js.map +1 -1
  288. package/build-module/mobile/bottom-sheet/stepper-cell/index.native.js.map +1 -1
  289. package/build-module/mobile/color-settings/index.native.js.map +1 -1
  290. package/build-module/mobile/global-styles-context/index.native.js.map +1 -1
  291. package/build-module/mobile/gradient/index.native.js.map +1 -1
  292. package/build-module/mobile/html-text-input/index.native.js.map +1 -1
  293. package/build-module/mobile/inserter-button/index.native.js.map +1 -1
  294. package/build-module/mobile/link-settings/image-link-destinations-screen.native.js.map +1 -1
  295. package/build-module/mobile/media-edit/index.native.js.map +1 -1
  296. package/build-module/mobile/segmented-control/index.native.js +2 -2
  297. package/build-module/mobile/segmented-control/index.native.js.map +1 -1
  298. package/build-module/modal/index.js +1 -1
  299. package/build-module/modal/index.js.map +1 -1
  300. package/build-module/navigable-container/container.js +5 -2
  301. package/build-module/navigable-container/container.js.map +1 -1
  302. package/build-module/navigation/context.js +3 -5
  303. package/build-module/navigation/context.js.map +1 -1
  304. package/build-module/navigation/index.js +3 -1
  305. package/build-module/navigation/index.js.map +1 -1
  306. package/build-module/navigation/item/index.js +3 -1
  307. package/build-module/navigation/item/index.js.map +1 -1
  308. package/build-module/navigator/navigator-back-button/hook.js.map +1 -1
  309. package/build-module/navigator/navigator-button/hook.js.map +1 -1
  310. package/build-module/navigator/navigator-provider/component.js +1 -1
  311. package/build-module/navigator/navigator-provider/component.js.map +1 -1
  312. package/build-module/navigator/navigator-screen/component.js +1 -1
  313. package/build-module/navigator/navigator-screen/component.js.map +1 -1
  314. package/build-module/notice/index.js +2 -1
  315. package/build-module/notice/index.js.map +1 -1
  316. package/build-module/notice/list.js +4 -1
  317. package/build-module/notice/list.js.map +1 -1
  318. package/build-module/panel/body.js +3 -1
  319. package/build-module/panel/body.js.map +1 -1
  320. package/build-module/placeholder/index.js +24 -11
  321. package/build-module/placeholder/index.js.map +1 -1
  322. package/build-module/radio-control/index.js +40 -7
  323. package/build-module/radio-control/index.js.map +1 -1
  324. package/build-module/radio-control/types.js +2 -0
  325. package/build-module/radio-control/types.js.map +1 -0
  326. package/build-module/range-control/index.js +4 -2
  327. package/build-module/range-control/index.js.map +1 -1
  328. package/build-module/range-control/input-range.js +2 -5
  329. package/build-module/range-control/input-range.js.map +1 -1
  330. package/build-module/range-control/utils.js +4 -1
  331. package/build-module/range-control/utils.js.map +1 -1
  332. package/build-module/resizable-box/resize-tooltip/index.js +2 -1
  333. package/build-module/resizable-box/resize-tooltip/index.js.map +1 -1
  334. package/build-module/resizable-box/resize-tooltip/utils.js +3 -5
  335. package/build-module/resizable-box/resize-tooltip/utils.js.map +1 -1
  336. package/build-module/responsive-wrapper/index.js.map +1 -1
  337. package/build-module/select-control/index.js +3 -1
  338. package/build-module/select-control/index.js.map +1 -1
  339. package/build-module/slot-fill/fill.js +1 -6
  340. package/build-module/slot-fill/fill.js.map +1 -1
  341. package/build-module/slot-fill/slot.js +12 -2
  342. package/build-module/slot-fill/slot.js.map +1 -1
  343. package/build-module/snackbar/index.js +3 -1
  344. package/build-module/snackbar/index.js.map +1 -1
  345. package/build-module/snackbar/list.js +4 -1
  346. package/build-module/snackbar/list.js.map +1 -1
  347. package/build-module/tab-panel/index.js +3 -1
  348. package/build-module/tab-panel/index.js.map +1 -1
  349. package/build-module/text/hook.js +4 -4
  350. package/build-module/text/hook.js.map +1 -1
  351. package/build-module/text/utils.js.map +1 -1
  352. package/build-module/toggle-control/index.js +1 -2
  353. package/build-module/toggle-control/index.js.map +1 -1
  354. package/build-module/toggle-control/index.native.js +1 -6
  355. package/build-module/toggle-control/index.native.js.map +1 -1
  356. package/build-module/toggle-group-control/toggle-group-control/toggle-group-control-backdrop.js.map +1 -1
  357. package/build-module/toolbar/index.js.map +1 -1
  358. package/build-module/tools-panel/tools-panel/hook.js.map +1 -1
  359. package/build-module/tools-panel/tools-panel-header/hook.js.map +1 -1
  360. package/build-module/tooltip/index.js +2 -1
  361. package/build-module/tooltip/index.js.map +1 -1
  362. package/build-module/tree-grid/roving-tab-index-item.js.map +1 -1
  363. package/build-module/tree-select/index.js +53 -3
  364. package/build-module/tree-select/index.js.map +1 -1
  365. package/build-module/tree-select/types.js +2 -0
  366. package/build-module/tree-select/types.js.map +1 -0
  367. package/build-module/ui/form-group/form-group-content.js.map +1 -1
  368. package/build-module/unit-control/index.js.map +1 -1
  369. package/build-module/utils/unit-values.js.map +1 -1
  370. package/build-module/utils/values.js.map +1 -1
  371. package/build-module/z-stack/component.js +21 -2
  372. package/build-module/z-stack/component.js.map +1 -1
  373. package/build-module/z-stack/types.js +2 -0
  374. package/build-module/z-stack/types.js.map +1 -0
  375. package/build-style/style-rtl.css +32 -3
  376. package/build-style/style.css +32 -4
  377. package/build-types/base-control/stories/index.d.ts.map +1 -1
  378. package/build-types/base-field/hook.d.ts +0 -1
  379. package/build-types/base-field/hook.d.ts.map +1 -1
  380. package/build-types/border-box-control/border-box-control/hook.d.ts +0 -1
  381. package/build-types/border-box-control/border-box-control/hook.d.ts.map +1 -1
  382. package/build-types/border-box-control/border-box-control-linked-button/component.d.ts.map +1 -1
  383. package/build-types/border-box-control/border-box-control-linked-button/hook.d.ts +0 -1
  384. package/build-types/border-box-control/border-box-control-linked-button/hook.d.ts.map +1 -1
  385. package/build-types/border-box-control/border-box-control-split-controls/hook.d.ts +0 -1
  386. package/build-types/border-box-control/border-box-control-split-controls/hook.d.ts.map +1 -1
  387. package/build-types/border-box-control/border-box-control-visualizer/hook.d.ts +0 -1
  388. package/build-types/border-box-control/border-box-control-visualizer/hook.d.ts.map +1 -1
  389. package/build-types/border-box-control/utils.d.ts.map +1 -1
  390. package/build-types/border-control/border-control/hook.d.ts +0 -1
  391. package/build-types/border-control/border-control/hook.d.ts.map +1 -1
  392. package/build-types/border-control/border-control-dropdown/hook.d.ts +0 -1
  393. package/build-types/border-control/border-control-dropdown/hook.d.ts.map +1 -1
  394. package/build-types/border-control/border-control-style-picker/hook.d.ts +0 -1
  395. package/build-types/border-control/border-control-style-picker/hook.d.ts.map +1 -1
  396. package/build-types/button-group/index.d.ts +1 -1
  397. package/build-types/button-group/index.d.ts.map +1 -1
  398. package/build-types/card/card/hook.d.ts +0 -1
  399. package/build-types/card/card/hook.d.ts.map +1 -1
  400. package/build-types/card/card-body/hook.d.ts +0 -1
  401. package/build-types/card/card-body/hook.d.ts.map +1 -1
  402. package/build-types/card/card-divider/hook.d.ts +0 -1
  403. package/build-types/card/card-divider/hook.d.ts.map +1 -1
  404. package/build-types/card/card-footer/hook.d.ts +0 -1
  405. package/build-types/card/card-footer/hook.d.ts.map +1 -1
  406. package/build-types/card/card-header/hook.d.ts +0 -1
  407. package/build-types/card/card-header/hook.d.ts.map +1 -1
  408. package/build-types/card/card-media/hook.d.ts +0 -1
  409. package/build-types/card/card-media/hook.d.ts.map +1 -1
  410. package/build-types/checkbox-control/index.d.ts.map +1 -1
  411. package/build-types/checkbox-control/stories/index.d.ts.map +1 -1
  412. package/build-types/color-picker/styles.d.ts +7 -7
  413. package/build-types/confirm-dialog/component.d.ts.map +1 -1
  414. package/build-types/date-time/date/index.d.ts.map +1 -1
  415. package/build-types/date-time/date-time/index.d.ts.map +1 -1
  416. package/build-types/date-time/stories/date-time.d.ts.map +1 -1
  417. package/build-types/date-time/stories/date.d.ts.map +1 -1
  418. package/build-types/date-time/time/styles.d.ts +1 -1
  419. package/build-types/divider/styles.d.ts.map +1 -1
  420. package/build-types/dropdown-menu/index.d.ts.map +1 -1
  421. package/build-types/elevation/hook.d.ts +0 -1
  422. package/build-types/elevation/hook.d.ts.map +1 -1
  423. package/build-types/external-link/index.d.ts +17 -0
  424. package/build-types/external-link/index.d.ts.map +1 -0
  425. package/build-types/external-link/stories/index.d.ts +12 -0
  426. package/build-types/external-link/stories/index.d.ts.map +1 -0
  427. package/build-types/external-link/styles/external-link-styles.d.ts +10 -0
  428. package/build-types/external-link/styles/external-link-styles.d.ts.map +1 -0
  429. package/build-types/external-link/types.d.ts +15 -0
  430. package/build-types/external-link/types.d.ts.map +1 -0
  431. package/build-types/flex/flex/hook.d.ts +0 -1
  432. package/build-types/flex/flex/hook.d.ts.map +1 -1
  433. package/build-types/flex/flex-block/hook.d.ts +0 -1
  434. package/build-types/flex/flex-block/hook.d.ts.map +1 -1
  435. package/build-types/flex/flex-item/hook.d.ts +0 -1
  436. package/build-types/flex/flex-item/hook.d.ts.map +1 -1
  437. package/build-types/form-token-field/index.d.ts +15 -0
  438. package/build-types/form-token-field/index.d.ts.map +1 -0
  439. package/build-types/form-token-field/stories/index.d.ts +13 -0
  440. package/build-types/form-token-field/stories/index.d.ts.map +1 -0
  441. package/build-types/form-token-field/suggestions-list.d.ts +10 -0
  442. package/build-types/form-token-field/suggestions-list.d.ts.map +1 -0
  443. package/build-types/form-token-field/test/lib/fixtures.d.ts +26 -0
  444. package/build-types/form-token-field/test/lib/fixtures.d.ts.map +1 -0
  445. package/build-types/form-token-field/test/lib/token-field-wrapper.d.ts +18 -0
  446. package/build-types/form-token-field/test/lib/token-field-wrapper.d.ts.map +1 -0
  447. package/build-types/form-token-field/token-input.d.ts +12 -0
  448. package/build-types/form-token-field/token-input.d.ts.map +1 -0
  449. package/build-types/form-token-field/token.d.ts +4 -0
  450. package/build-types/form-token-field/token.d.ts.map +1 -0
  451. package/build-types/form-token-field/types.d.ts +176 -0
  452. package/build-types/form-token-field/types.d.ts.map +1 -0
  453. package/build-types/grid/hook.d.ts +0 -1
  454. package/build-types/grid/hook.d.ts.map +1 -1
  455. package/build-types/h-stack/hook.d.ts +0 -1
  456. package/build-types/h-stack/hook.d.ts.map +1 -1
  457. package/build-types/heading/hook.d.ts +0 -1
  458. package/build-types/heading/hook.d.ts.map +1 -1
  459. package/build-types/higher-order/with-focus-outside/index.d.ts +1 -1
  460. package/build-types/input-control/index.d.ts +1 -1
  461. package/build-types/input-control/index.d.ts.map +1 -1
  462. package/build-types/input-control/input-field.d.ts +1 -1
  463. package/build-types/input-control/input-field.d.ts.map +1 -1
  464. package/build-types/input-control/reducer/reducer.d.ts.map +1 -1
  465. package/build-types/input-control/stories/index.d.ts +5 -5
  466. package/build-types/input-control/stories/index.d.ts.map +1 -1
  467. package/build-types/item-group/item/hook.d.ts +0 -1
  468. package/build-types/item-group/item/hook.d.ts.map +1 -1
  469. package/build-types/item-group/item-group/hook.d.ts +0 -1
  470. package/build-types/item-group/item-group/hook.d.ts.map +1 -1
  471. package/build-types/navigator/navigator-back-button/hook.d.ts +0 -1
  472. package/build-types/navigator/navigator-back-button/hook.d.ts.map +1 -1
  473. package/build-types/navigator/navigator-button/hook.d.ts +0 -1
  474. package/build-types/navigator/navigator-button/hook.d.ts.map +1 -1
  475. package/build-types/navigator/navigator-provider/component.d.ts.map +1 -1
  476. package/build-types/number-control/styles/number-control-styles.d.ts +1 -1
  477. package/build-types/radio-control/index.d.ts +31 -0
  478. package/build-types/radio-control/index.d.ts.map +1 -0
  479. package/build-types/radio-control/stories/index.d.ts +12 -0
  480. package/build-types/radio-control/stories/index.d.ts.map +1 -0
  481. package/build-types/radio-control/types.d.ts +29 -0
  482. package/build-types/radio-control/types.d.ts.map +1 -0
  483. package/build-types/range-control/index.d.ts +5 -5
  484. package/build-types/range-control/index.d.ts.map +1 -1
  485. package/build-types/range-control/input-range.d.ts +4 -4
  486. package/build-types/range-control/input-range.d.ts.map +1 -1
  487. package/build-types/range-control/utils.d.ts.map +1 -1
  488. package/build-types/resizable-box/resize-tooltip/index.d.ts.map +1 -1
  489. package/build-types/resizable-box/resize-tooltip/utils.d.ts.map +1 -1
  490. package/build-types/scrollable/hook.d.ts +0 -1
  491. package/build-types/scrollable/hook.d.ts.map +1 -1
  492. package/build-types/select-control/index.d.ts +1 -1
  493. package/build-types/select-control/index.d.ts.map +1 -1
  494. package/build-types/select-control/stories/index.d.ts +3 -3
  495. package/build-types/select-control/stories/index.d.ts.map +1 -1
  496. package/build-types/slot-fill/fill.d.ts.map +1 -1
  497. package/build-types/slot-fill/slot.d.ts.map +1 -1
  498. package/build-types/spacer/hook.d.ts +0 -1
  499. package/build-types/spacer/hook.d.ts.map +1 -1
  500. package/build-types/surface/hook.d.ts +0 -1
  501. package/build-types/surface/hook.d.ts.map +1 -1
  502. package/build-types/text/hook.d.ts +0 -1
  503. package/build-types/text/hook.d.ts.map +1 -1
  504. package/build-types/text/utils.d.ts.map +1 -1
  505. package/build-types/text-control/index.d.ts +1 -1
  506. package/build-types/text-control/index.d.ts.map +1 -1
  507. package/build-types/text-control/stories/index.d.ts.map +1 -1
  508. package/build-types/toggle-group-control/toggle-group-control/toggle-group-control-backdrop.d.ts.map +1 -1
  509. package/build-types/tools-panel/tools-panel/hook.d.ts +0 -1
  510. package/build-types/tools-panel/tools-panel/hook.d.ts.map +1 -1
  511. package/build-types/tools-panel/tools-panel-header/hook.d.ts +0 -1
  512. package/build-types/tools-panel/tools-panel-header/hook.d.ts.map +1 -1
  513. package/build-types/tools-panel/tools-panel-item/hook.d.ts +0 -1
  514. package/build-types/tools-panel/tools-panel-item/hook.d.ts.map +1 -1
  515. package/build-types/tooltip/index.d.ts.map +1 -1
  516. package/build-types/tree-select/index.d.ts +53 -0
  517. package/build-types/tree-select/index.d.ts.map +1 -0
  518. package/build-types/tree-select/stories/index.d.ts +12 -0
  519. package/build-types/tree-select/stories/index.d.ts.map +1 -0
  520. package/build-types/tree-select/types.d.ts +30 -0
  521. package/build-types/tree-select/types.d.ts.map +1 -0
  522. package/build-types/truncate/hook.d.ts +0 -1
  523. package/build-types/truncate/hook.d.ts.map +1 -1
  524. package/build-types/ui/context/wordpress-component.d.ts.map +1 -1
  525. package/build-types/ui/control-group/hook.d.ts +0 -1
  526. package/build-types/ui/control-group/hook.d.ts.map +1 -1
  527. package/build-types/ui/control-label/hook.d.ts +0 -1
  528. package/build-types/ui/control-label/hook.d.ts.map +1 -1
  529. package/build-types/ui/form-group/use-form-group.d.ts +0 -2
  530. package/build-types/ui/form-group/use-form-group.d.ts.map +1 -1
  531. package/build-types/unit-control/index.d.ts +1 -1
  532. package/build-types/unit-control/index.d.ts.map +1 -1
  533. package/build-types/unit-control/stories/index.d.ts.map +1 -1
  534. package/build-types/utils/unit-values.d.ts.map +1 -1
  535. package/build-types/utils/values.d.ts.map +1 -1
  536. package/build-types/v-stack/hook.d.ts +0 -1
  537. package/build-types/v-stack/hook.d.ts.map +1 -1
  538. package/build-types/z-stack/component.d.ts +18 -28
  539. package/build-types/z-stack/component.d.ts.map +1 -1
  540. package/build-types/z-stack/stories/index.d.ts +6 -0
  541. package/build-types/z-stack/stories/index.d.ts.map +1 -0
  542. package/build-types/z-stack/types.d.ts +33 -0
  543. package/build-types/z-stack/types.d.ts.map +1 -0
  544. package/package.json +17 -17
  545. package/src/alignment-matrix-control/index.js +2 -1
  546. package/src/angle-picker-control/index.js +1 -1
  547. package/src/base-control/stories/index.tsx +2 -3
  548. package/src/border-box-control/border-box-control-linked-button/component.tsx +2 -5
  549. package/src/border-box-control/utils.ts +5 -2
  550. package/src/border-control/border-control/hook.ts +2 -3
  551. package/src/box-control/all-input-control.js +2 -4
  552. package/src/box-control/axial-input-controls.js +4 -6
  553. package/src/box-control/index.js +2 -5
  554. package/src/box-control/input-controls.js +33 -36
  555. package/src/box-control/unit-control.js +2 -1
  556. package/src/button/index.native.js +1 -2
  557. package/src/card/stories/index.js +10 -5
  558. package/src/checkbox-control/index.tsx +2 -3
  559. package/src/checkbox-control/stories/index.tsx +2 -3
  560. package/src/checkbox-control/test/index.tsx +2 -1
  561. package/src/color-picker/index.native.js +7 -4
  562. package/src/combobox-control/index.js +4 -2
  563. package/src/confirm-dialog/component.tsx +7 -8
  564. package/src/custom-gradient-bar/constants.js +2 -2
  565. package/src/custom-gradient-bar/control-points.js +20 -16
  566. package/src/custom-gradient-bar/index.js +11 -11
  567. package/src/custom-gradient-bar/test/utils.js +79 -0
  568. package/src/custom-gradient-bar/utils.js +6 -18
  569. package/src/custom-gradient-picker/style.scss +1 -3
  570. package/src/custom-gradient-picker/utils.js +4 -3
  571. package/src/custom-select-control/index.js +2 -1
  572. package/src/custom-select-control/stories/index.js +1 -2
  573. package/src/date-time/date/index.tsx +2 -2
  574. package/src/date-time/date/style.scss +10 -0
  575. package/src/date-time/date/test/index.tsx +1 -1
  576. package/src/date-time/date-time/index.tsx +6 -8
  577. package/src/date-time/stories/date-time.tsx +4 -6
  578. package/src/date-time/stories/date.tsx +2 -3
  579. package/src/date-time/time/test/index.tsx +12 -12
  580. package/src/dimension-control/index.js +1 -2
  581. package/src/divider/styles.ts +2 -3
  582. package/src/draggable/index.js +3 -3
  583. package/src/draggable/index.native.js +12 -4
  584. package/src/drop-zone/provider.js +1 -2
  585. package/src/dropdown/index.js +2 -2
  586. package/src/dropdown-menu/index.js +11 -1
  587. package/src/dropdown-menu/index.native.js +11 -1
  588. package/src/external-link/README.md +18 -0
  589. package/src/external-link/{index.js → index.tsx} +26 -6
  590. package/src/external-link/stories/index.tsx +36 -0
  591. package/src/external-link/styles/{external-link-styles.js → external-link-styles.ts} +0 -0
  592. package/src/external-link/types.ts +15 -0
  593. package/src/flex/flex/hook.js +4 -1
  594. package/src/focal-point-picker/controls.js +1 -5
  595. package/src/focal-point-picker/index.js +2 -8
  596. package/src/focal-point-picker/media.js +2 -5
  597. package/src/font-size-picker/index.js +3 -1
  598. package/src/form-toggle/index.js +2 -1
  599. package/src/form-toggle/test/index.js +1 -2
  600. package/src/form-token-field/index.tsx +694 -0
  601. package/src/form-token-field/stories/index.tsx +103 -0
  602. package/src/form-token-field/style.scss +2 -1
  603. package/src/form-token-field/{suggestions-list.js → suggestions-list.tsx} +45 -29
  604. package/src/form-token-field/test/index.js +64 -31
  605. package/src/form-token-field/test/lib/{token-field-wrapper.js → token-field-wrapper.tsx} +24 -9
  606. package/src/form-token-field/token-input.tsx +76 -0
  607. package/src/form-token-field/{token.js → token.tsx} +4 -2
  608. package/src/form-token-field/types.ts +178 -0
  609. package/src/gradient-picker/index.js +4 -3
  610. package/src/heading/hook.ts +5 -4
  611. package/src/higher-order/navigate-regions/index.js +7 -5
  612. package/src/higher-order/with-filters/test/index.js +43 -36
  613. package/src/higher-order/with-focus-return/index.js +14 -13
  614. package/src/higher-order/with-spoken-messages/index.js +8 -7
  615. package/src/higher-order/with-spoken-messages/test/index.js +1 -1
  616. package/src/icon/index.tsx +2 -2
  617. package/src/input-control/index.tsx +2 -1
  618. package/src/input-control/input-field.tsx +2 -1
  619. package/src/input-control/reducer/reducer.ts +23 -21
  620. package/src/input-control/utils.ts +1 -1
  621. package/src/item-group/stories/index.js +2 -1
  622. package/src/menu-item/test/index.js +2 -1
  623. package/src/menu-items-choice/index.js +2 -5
  624. package/src/mobile/bottom-sheet/bottom-sheet-context.native.js +2 -4
  625. package/src/mobile/bottom-sheet/cell.native.js +2 -3
  626. package/src/mobile/bottom-sheet/cycle-picker-cell.native.js +3 -5
  627. package/src/mobile/bottom-sheet/index.native.js +14 -17
  628. package/src/mobile/bottom-sheet/picker-cell.native.js +2 -7
  629. package/src/mobile/bottom-sheet/stepper-cell/index.native.js +4 -6
  630. package/src/mobile/color-settings/index.native.js +2 -4
  631. package/src/mobile/global-styles-context/index.native.js +8 -7
  632. package/src/mobile/gradient/index.native.js +12 -9
  633. package/src/mobile/gradient/test/index.native.js +1 -3
  634. package/src/mobile/html-text-input/index.native.js +2 -3
  635. package/src/mobile/inserter-button/index.native.js +2 -6
  636. package/src/mobile/link-settings/image-link-destinations-screen.native.js +6 -2
  637. package/src/mobile/media-edit/index.native.js +2 -3
  638. package/src/mobile/segmented-control/index.native.js +4 -5
  639. package/src/mobile/utils/test/index.native.js +3 -12
  640. package/src/modal/index.js +1 -1
  641. package/src/navigable-container/container.js +3 -2
  642. package/src/navigable-container/test/menu.js +1 -2
  643. package/src/navigable-container/test/tabbable.js +1 -2
  644. package/src/navigation/context.js +2 -5
  645. package/src/navigation/index.js +2 -1
  646. package/src/navigation/item/index.js +2 -1
  647. package/src/navigation/stories/controlled-state.js +1 -1
  648. package/src/navigation/stories/more-examples.js +2 -3
  649. package/src/navigation/test/index.js +252 -52
  650. package/src/navigator/navigator-back-button/hook.ts +14 -12
  651. package/src/navigator/navigator-button/hook.ts +14 -13
  652. package/src/navigator/navigator-provider/component.tsx +2 -6
  653. package/src/navigator/navigator-screen/component.tsx +3 -3
  654. package/src/notice/index.js +2 -1
  655. package/src/notice/list.js +3 -1
  656. package/src/panel/body.js +2 -1
  657. package/src/placeholder/README.md +7 -6
  658. package/src/placeholder/index.js +27 -10
  659. package/src/placeholder/style.scss +23 -0
  660. package/src/radio-control/README.md +17 -23
  661. package/src/radio-control/index.tsx +107 -0
  662. package/src/radio-control/stories/index.tsx +72 -0
  663. package/src/radio-control/types.ts +32 -0
  664. package/src/range-control/index.js +4 -2
  665. package/src/range-control/input-range.js +2 -5
  666. package/src/range-control/utils.js +3 -1
  667. package/src/resizable-box/resize-tooltip/index.tsx +2 -1
  668. package/src/resizable-box/resize-tooltip/utils.ts +1 -5
  669. package/src/responsive-wrapper/index.js +2 -4
  670. package/src/sandbox/test/index.js +4 -6
  671. package/src/select-control/index.tsx +3 -1
  672. package/src/select-control/stories/index.tsx +3 -4
  673. package/src/slot-fill/fill.js +1 -5
  674. package/src/slot-fill/slot.js +12 -2
  675. package/src/snackbar/index.js +1 -1
  676. package/src/snackbar/list.js +2 -1
  677. package/src/tab-panel/index.js +3 -1
  678. package/src/text/hook.js +4 -1
  679. package/src/text/utils.js +2 -3
  680. package/src/text-control/stories/index.tsx +4 -6
  681. package/src/toggle-control/index.js +1 -2
  682. package/src/toggle-control/index.native.js +2 -6
  683. package/src/toggle-group-control/toggle-group-control/toggle-group-control-backdrop.tsx +2 -4
  684. package/src/toolbar/index.js +1 -2
  685. package/src/tools-panel/tools-panel/hook.ts +2 -4
  686. package/src/tools-panel/tools-panel-header/hook.ts +2 -5
  687. package/src/tooltip/index.js +1 -0
  688. package/src/tree-grid/roving-tab-index-item.js +2 -4
  689. package/src/tree-grid/test/index.js +2 -3
  690. package/src/tree-select/README.md +2 -2
  691. package/src/tree-select/index.tsx +99 -0
  692. package/src/tree-select/stories/index.tsx +80 -0
  693. package/src/tree-select/types.ts +35 -0
  694. package/src/ui/context/wordpress-component.ts +4 -5
  695. package/src/ui/form-group/form-group-content.js +4 -4
  696. package/src/unit-control/index.tsx +7 -9
  697. package/src/unit-control/stories/index.tsx +8 -12
  698. package/src/unit-control/test/index.tsx +4 -7
  699. package/src/utils/hooks/stories/use-cx.js +8 -7
  700. package/src/utils/hooks/test/use-controlled-state.js +2 -1
  701. package/src/utils/unit-values.ts +2 -1
  702. package/src/utils/values.js +2 -3
  703. package/src/z-stack/README.md +14 -3
  704. package/src/z-stack/component.tsx +24 -29
  705. package/src/z-stack/stories/index.tsx +76 -0
  706. package/src/z-stack/types.ts +33 -0
  707. package/tsconfig.json +5 -0
  708. package/tsconfig.tsbuildinfo +1 -1
  709. package/src/external-link/stories/index.js +0 -23
  710. package/src/form-token-field/index.js +0 -725
  711. package/src/form-token-field/stories/index.js +0 -102
  712. package/src/form-token-field/token-input.js +0 -81
  713. package/src/radio-control/index.js +0 -69
  714. package/src/radio-control/stories/index.js +0 -41
  715. package/src/tree-select/index.js +0 -48
  716. package/src/tree-select/stories/index.js +0 -80
  717. package/src/z-stack/stories/index.js +0 -70
@@ -5,7 +5,8 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
5
5
  Object.defineProperty(exports, "__esModule", {
6
6
  value: true
7
7
  });
8
- exports.default = TreeSelect;
8
+ exports.TreeSelect = TreeSelect;
9
+ exports.default = void 0;
9
10
 
10
11
  var _element = require("@wordpress/element");
11
12
 
@@ -13,7 +14,7 @@ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends")
13
14
 
14
15
  var _lodash = require("lodash");
15
16
 
16
- var _ = require("../");
17
+ var _selectControl = require("../select-control");
17
18
 
18
19
  /**
19
20
  * External dependencies
@@ -33,6 +34,55 @@ function getSelectOptions(tree) {
33
34
  label: (0, _lodash.repeat)('\u00A0', level * 3) + (0, _lodash.unescape)(treeNode.name)
34
35
  }, ...getSelectOptions(treeNode.children || [], level + 1)]);
35
36
  }
37
+ /**
38
+ * TreeSelect component is used to generate select input fields.
39
+ *
40
+ * @example
41
+ * ```jsx
42
+ * import { TreeSelect } from '@wordpress/components';
43
+ * import { useState } from '@wordpress/element';
44
+ *
45
+ * const MyTreeSelect = () => {
46
+ * const [ page, setPage ] = useState( 'p21' );
47
+ *
48
+ * return (
49
+ * <TreeSelect
50
+ * label="Parent page"
51
+ * noOptionLabel="No parent page"
52
+ * onChange={ ( newPage ) => setPage( newPage ) }
53
+ * selectedId={ page }
54
+ * tree={ [
55
+ * {
56
+ * name: 'Page 1',
57
+ * id: 'p1',
58
+ * children: [
59
+ * { name: 'Descend 1 of page 1', id: 'p11' },
60
+ * { name: 'Descend 2 of page 1', id: 'p12' },
61
+ * ],
62
+ * },
63
+ * {
64
+ * name: 'Page 2',
65
+ * id: 'p2',
66
+ * children: [
67
+ * {
68
+ * name: 'Descend 1 of page 2',
69
+ * id: 'p21',
70
+ * children: [
71
+ * {
72
+ * name: 'Descend 1 of Descend 1 of page 2',
73
+ * id: 'p211',
74
+ * },
75
+ * ],
76
+ * },
77
+ * ],
78
+ * },
79
+ * ] }
80
+ * />
81
+ * );
82
+ * }
83
+ * ```
84
+ */
85
+
36
86
 
37
87
  function TreeSelect(_ref) {
38
88
  let {
@@ -40,7 +90,7 @@ function TreeSelect(_ref) {
40
90
  noOptionLabel,
41
91
  onChange,
42
92
  selectedId,
43
- tree,
93
+ tree = [],
44
94
  ...props
45
95
  } = _ref;
46
96
  const options = (0, _element.useMemo)(() => {
@@ -49,11 +99,14 @@ function TreeSelect(_ref) {
49
99
  label: noOptionLabel
50
100
  }, ...getSelectOptions(tree)]);
51
101
  }, [noOptionLabel, tree]);
52
- return (0, _element.createElement)(_.SelectControl, (0, _extends2.default)({
102
+ return (0, _element.createElement)(_selectControl.SelectControl, (0, _extends2.default)({
53
103
  label,
54
104
  options,
55
105
  onChange,
56
106
  value: selectedId
57
107
  }, props));
58
108
  }
109
+
110
+ var _default = TreeSelect;
111
+ exports.default = _default;
59
112
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/components/src/tree-select/index.js"],"names":["getSelectOptions","tree","level","treeNode","value","id","label","name","children","TreeSelect","noOptionLabel","onChange","selectedId","props","options"],"mappings":";;;;;;;;;AAQA;;;;AALA;;AASA;;AAZA;AACA;AACA;;AAGA;AACA;AACA;;AAEA;AACA;AACA;AAGA,SAASA,gBAAT,CAA2BC,IAA3B,EAA6C;AAAA,MAAZC,KAAY,uEAAJ,CAAI;AAC5C,SAAO,qBAASD,IAAT,EAAiBE,QAAF,IAAgB,CACrC;AACCC,IAAAA,KAAK,EAAED,QAAQ,CAACE,EADjB;AAECC,IAAAA,KAAK,EACJ,oBAAQ,QAAR,EAAkBJ,KAAK,GAAG,CAA1B,IAAgC,sBAAgBC,QAAQ,CAACI,IAAzB;AAHlC,GADqC,EAMrC,GAAGP,gBAAgB,CAAEG,QAAQ,CAACK,QAAT,IAAqB,EAAvB,EAA2BN,KAAK,GAAG,CAAnC,CANkB,CAA/B,CAAP;AAQA;;AAEc,SAASO,UAAT,OAOX;AAAA,MAPgC;AACnCH,IAAAA,KADmC;AAEnCI,IAAAA,aAFmC;AAGnCC,IAAAA,QAHmC;AAInCC,IAAAA,UAJmC;AAKnCX,IAAAA,IALmC;AAMnC,OAAGY;AANgC,GAOhC;AACH,QAAMC,OAAO,GAAG,sBAAS,MAAM;AAC9B,WAAO,qBAAS,CACfJ,aAAa,IAAI;AAAEN,MAAAA,KAAK,EAAE,EAAT;AAAaE,MAAAA,KAAK,EAAEI;AAApB,KADF,EAEf,GAAGV,gBAAgB,CAAEC,IAAF,CAFJ,CAAT,CAAP;AAIA,GALe,EAKb,CAAES,aAAF,EAAiBT,IAAjB,CALa,CAAhB;AAOA,SACC,4BAAC,eAAD;AACQK,IAAAA,KADR;AACeQ,IAAAA,OADf;AACwBH,IAAAA,QADxB;AAEC,IAAA,KAAK,EAAGC;AAFT,KAGMC,KAHN,EADD;AAOA","sourcesContent":["/**\n * External dependencies\n */\nimport { unescape as unescapeString, repeat, flatMap, compact } from 'lodash';\n\n/**\n * WordPress dependencies\n */\nimport { useMemo } from '@wordpress/element';\n/**\n * Internal dependencies\n */\nimport { SelectControl } from '../';\n\nfunction getSelectOptions( tree, level = 0 ) {\n\treturn flatMap( tree, ( treeNode ) => [\n\t\t{\n\t\t\tvalue: treeNode.id,\n\t\t\tlabel:\n\t\t\t\trepeat( '\\u00A0', level * 3 ) + unescapeString( treeNode.name ),\n\t\t},\n\t\t...getSelectOptions( treeNode.children || [], level + 1 ),\n\t] );\n}\n\nexport default function TreeSelect( {\n\tlabel,\n\tnoOptionLabel,\n\tonChange,\n\tselectedId,\n\ttree,\n\t...props\n} ) {\n\tconst options = useMemo( () => {\n\t\treturn compact( [\n\t\t\tnoOptionLabel && { value: '', label: noOptionLabel },\n\t\t\t...getSelectOptions( tree ),\n\t\t] );\n\t}, [ noOptionLabel, tree ] );\n\n\treturn (\n\t\t<SelectControl\n\t\t\t{ ...{ label, options, onChange } }\n\t\t\tvalue={ selectedId }\n\t\t\t{ ...props }\n\t\t/>\n\t);\n}\n"]}
1
+ {"version":3,"sources":["@wordpress/components/src/tree-select/index.tsx"],"names":["getSelectOptions","tree","level","treeNode","value","id","label","name","children","TreeSelect","noOptionLabel","onChange","selectedId","props","options"],"mappings":";;;;;;;;;;AAQA;;;;AALA;;AASA;;AAZA;AACA;AACA;;AAGA;AACA;AACA;;AAEA;AACA;AACA;AAIA,SAASA,gBAAT,CAA2BC,IAA3B,EAAoE;AAAA,MAA3BC,KAA2B,uEAAnB,CAAmB;AACnE,SAAO,qBAASD,IAAT,EAAiBE,QAAF,IAAgB,CACrC;AACCC,IAAAA,KAAK,EAAED,QAAQ,CAACE,EADjB;AAECC,IAAAA,KAAK,EACJ,oBAAQ,QAAR,EAAkBJ,KAAK,GAAG,CAA1B,IAAgC,sBAAgBC,QAAQ,CAACI,IAAzB;AAHlC,GADqC,EAMrC,GAAGP,gBAAgB,CAAEG,QAAQ,CAACK,QAAT,IAAqB,EAAvB,EAA2BN,KAAK,GAAG,CAAnC,CANkB,CAA/B,CAAP;AAQA;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACO,SAASO,UAAT,OAOc;AAAA,MAPO;AAC3BH,IAAAA,KAD2B;AAE3BI,IAAAA,aAF2B;AAG3BC,IAAAA,QAH2B;AAI3BC,IAAAA,UAJ2B;AAK3BX,IAAAA,IAAI,GAAG,EALoB;AAM3B,OAAGY;AANwB,GAOP;AACpB,QAAMC,OAAO,GAAG,sBAAS,MAAM;AAC9B,WAAO,qBAAS,CACfJ,aAAa,IAAI;AAAEN,MAAAA,KAAK,EAAE,EAAT;AAAaE,MAAAA,KAAK,EAAEI;AAApB,KADF,EAEf,GAAGV,gBAAgB,CAAEC,IAAF,CAFJ,CAAT,CAAP;AAIA,GALe,EAKb,CAAES,aAAF,EAAiBT,IAAjB,CALa,CAAhB;AAOA,SACC,4BAAC,4BAAD;AACQK,IAAAA,KADR;AACeQ,IAAAA,OADf;AACwBH,IAAAA,QADxB;AAEC,IAAA,KAAK,EAAGC;AAFT,KAGMC,KAHN,EADD;AAOA;;eAEcJ,U","sourcesContent":["/**\n * External dependencies\n */\nimport { unescape as unescapeString, repeat, flatMap, compact } from 'lodash';\n\n/**\n * WordPress dependencies\n */\nimport { useMemo } from '@wordpress/element';\n/**\n * Internal dependencies\n */\nimport { SelectControl } from '../select-control';\nimport type { TreeSelectProps, Tree, SelectOptions } from './types';\n\nfunction getSelectOptions( tree: Tree[], level = 0 ): SelectOptions {\n\treturn flatMap( tree, ( treeNode ) => [\n\t\t{\n\t\t\tvalue: treeNode.id,\n\t\t\tlabel:\n\t\t\t\trepeat( '\\u00A0', level * 3 ) + unescapeString( treeNode.name ),\n\t\t},\n\t\t...getSelectOptions( treeNode.children || [], level + 1 ),\n\t] );\n}\n\n/**\n * TreeSelect component is used to generate select input fields.\n *\n * @example\n * ```jsx\n * import { TreeSelect } from '@wordpress/components';\n * import { useState } from '@wordpress/element';\n *\n * const MyTreeSelect = () => {\n * \tconst [ page, setPage ] = useState( 'p21' );\n *\n * \treturn (\n * \t\t<TreeSelect\n * \t\t\tlabel=\"Parent page\"\n * \t\t\tnoOptionLabel=\"No parent page\"\n * \t\t\tonChange={ ( newPage ) => setPage( newPage ) }\n * \t\t\tselectedId={ page }\n * \t\t\ttree={ [\n * \t\t\t\t{\n * \t\t\t\t\tname: 'Page 1',\n * \t\t\t\t\tid: 'p1',\n * \t\t\t\t\tchildren: [\n * \t\t\t\t\t\t{ name: 'Descend 1 of page 1', id: 'p11' },\n * \t\t\t\t\t\t{ name: 'Descend 2 of page 1', id: 'p12' },\n * \t\t\t\t\t],\n * \t\t\t\t},\n * \t\t\t\t{\n * \t\t\t\t\tname: 'Page 2',\n * \t\t\t\t\tid: 'p2',\n * \t\t\t\t\tchildren: [\n * \t\t\t\t\t\t{\n * \t\t\t\t\t\t\tname: 'Descend 1 of page 2',\n * \t\t\t\t\t\t\tid: 'p21',\n * \t\t\t\t\t\t\tchildren: [\n * \t\t\t\t\t\t\t\t{\n * \t\t\t\t\t\t\t\t\tname: 'Descend 1 of Descend 1 of page 2',\n * \t\t\t\t\t\t\t\t\tid: 'p211',\n * \t\t\t\t\t\t\t\t},\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},\n * \t\t\t] }\n * \t\t/>\n * \t);\n * }\n * ```\n */\nexport function TreeSelect( {\n\tlabel,\n\tnoOptionLabel,\n\tonChange,\n\tselectedId,\n\ttree = [],\n\t...props\n}: TreeSelectProps ) {\n\tconst options = useMemo( () => {\n\t\treturn compact( [\n\t\t\tnoOptionLabel && { value: '', label: noOptionLabel },\n\t\t\t...getSelectOptions( tree ),\n\t\t] );\n\t}, [ noOptionLabel, tree ] );\n\n\treturn (\n\t\t<SelectControl\n\t\t\t{ ...{ label, options, onChange } }\n\t\t\tvalue={ selectedId }\n\t\t\t{ ...props }\n\t\t/>\n\t);\n}\n\nexport default TreeSelect;\n"]}
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"names":[],"mappings":"","sourcesContent":[]}
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/components/src/ui/form-group/form-group-content.js"],"names":["FormGroupContent","alignLabel","children","help","horizontal","id","label","labelHidden","spacing","truncate","props","contextProps","content"],"mappings":";;;;;;;;;AAGA;;;;AAKA;;AACA;;AACA;;AACA;;AAXA;AACA;AACA;;AAGA;AACA;AACA;;AAMA;AACA;AACA;AACA,SAASA,gBAAT,OAWI;AAAA,MAXuB;AAC1BC,IAAAA,UAD0B;AAE1BC,IAAAA,QAF0B;AAG1BC,IAAAA,IAH0B;AAI1BC,IAAAA,UAAU,GAAG,KAJa;AAK1BC,IAAAA,EAL0B;AAM1BC,IAAAA,KAN0B;AAO1BC,IAAAA,WAP0B;AAQ1BC,IAAAA,OAAO,GAAG,CARgB;AAS1BC,IAAAA,QAT0B;AAU1B,OAAGC;AAVuB,GAWvB;AACH,QAAMC,YAAY,GAAG,sBAAS,OAAQ;AAAEN,IAAAA,EAAF;AAAMD,IAAAA;AAAN,GAAR,CAAT,EAAuC,CAC3DC,EAD2D,EAE3DD,UAF2D,CAAvC,CAArB;AAKA,QAAMQ,OAAO,GAAGT,IAAI,GACnB,4BAAC,cAAD;AAAQ,IAAA,QAAQ,EAAG,KAAnB;AAA2B,IAAA,OAAO,EAAGK;AAArC,KACGN,QADH,EAEC,4BAAC,sBAAD,QAAiBC,IAAjB,CAFD,CADmB,GAMnBD,QAND;AASA,SACC,4BAAC,kCAAD,CAAkB,QAAlB;AAA2B,IAAA,KAAK,EAAGS;AAAnC,KACC,4BAAC,uBAAD;AACC,IAAA,KAAK,EAAGV,UADT;AAEC,IAAA,EAAE,EAAGI,EAFN;AAGC,IAAA,WAAW,EAAGE,WAHf;AAIC,IAAA,QAAQ,EAAGE;AAJZ,KAKMC,KALN,GAOGJ,KAPH,CADD,EAUGM,OAVH,CADD;AAcA;;eAEc,mBAAMZ,gBAAN,C","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useMemo, memo } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport { VStack } from '../../v-stack';\nimport { FormGroupContext } from './form-group-context';\nimport FormGroupHelp from './form-group-help';\nimport FormGroupLabel from './form-group-label';\n\n/**\n * @param {import('../context').WordPressComponentProps<import('./types').FormGroupContentProps, 'label', false>} props\n */\nfunction FormGroupContent( {\n\talignLabel,\n\tchildren,\n\thelp,\n\thorizontal = false,\n\tid,\n\tlabel,\n\tlabelHidden,\n\tspacing = 2,\n\ttruncate,\n\t...props\n} ) {\n\tconst contextProps = useMemo( () => ( { id, horizontal } ), [\n\t\tid,\n\t\thorizontal,\n\t] );\n\n\tconst content = help ? (\n\t\t<VStack expanded={ false } spacing={ spacing }>\n\t\t\t{ children }\n\t\t\t<FormGroupHelp>{ help }</FormGroupHelp>\n\t\t</VStack>\n\t) : (\n\t\tchildren\n\t);\n\n\treturn (\n\t\t<FormGroupContext.Provider value={ contextProps }>\n\t\t\t<FormGroupLabel\n\t\t\t\talign={ alignLabel }\n\t\t\t\tid={ id }\n\t\t\t\tlabelHidden={ labelHidden }\n\t\t\t\ttruncate={ truncate }\n\t\t\t\t{ ...props }\n\t\t\t>\n\t\t\t\t{ label }\n\t\t\t</FormGroupLabel>\n\t\t\t{ content }\n\t\t</FormGroupContext.Provider>\n\t);\n}\n\nexport default memo( FormGroupContent );\n"]}
1
+ {"version":3,"sources":["@wordpress/components/src/ui/form-group/form-group-content.js"],"names":["FormGroupContent","alignLabel","children","help","horizontal","id","label","labelHidden","spacing","truncate","props","contextProps","content"],"mappings":";;;;;;;;;AAGA;;;;AAKA;;AACA;;AACA;;AACA;;AAXA;AACA;AACA;;AAGA;AACA;AACA;;AAMA;AACA;AACA;AACA,SAASA,gBAAT,OAWI;AAAA,MAXuB;AAC1BC,IAAAA,UAD0B;AAE1BC,IAAAA,QAF0B;AAG1BC,IAAAA,IAH0B;AAI1BC,IAAAA,UAAU,GAAG,KAJa;AAK1BC,IAAAA,EAL0B;AAM1BC,IAAAA,KAN0B;AAO1BC,IAAAA,WAP0B;AAQ1BC,IAAAA,OAAO,GAAG,CARgB;AAS1BC,IAAAA,QAT0B;AAU1B,OAAGC;AAVuB,GAWvB;AACH,QAAMC,YAAY,GAAG,sBACpB,OAAQ;AAAEN,IAAAA,EAAF;AAAMD,IAAAA;AAAN,GAAR,CADoB,EAEpB,CAAEC,EAAF,EAAMD,UAAN,CAFoB,CAArB;AAKA,QAAMQ,OAAO,GAAGT,IAAI,GACnB,4BAAC,cAAD;AAAQ,IAAA,QAAQ,EAAG,KAAnB;AAA2B,IAAA,OAAO,EAAGK;AAArC,KACGN,QADH,EAEC,4BAAC,sBAAD,QAAiBC,IAAjB,CAFD,CADmB,GAMnBD,QAND;AASA,SACC,4BAAC,kCAAD,CAAkB,QAAlB;AAA2B,IAAA,KAAK,EAAGS;AAAnC,KACC,4BAAC,uBAAD;AACC,IAAA,KAAK,EAAGV,UADT;AAEC,IAAA,EAAE,EAAGI,EAFN;AAGC,IAAA,WAAW,EAAGE,WAHf;AAIC,IAAA,QAAQ,EAAGE;AAJZ,KAKMC,KALN,GAOGJ,KAPH,CADD,EAUGM,OAVH,CADD;AAcA;;eAEc,mBAAMZ,gBAAN,C","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useMemo, memo } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport { VStack } from '../../v-stack';\nimport { FormGroupContext } from './form-group-context';\nimport FormGroupHelp from './form-group-help';\nimport FormGroupLabel from './form-group-label';\n\n/**\n * @param {import('../context').WordPressComponentProps<import('./types').FormGroupContentProps, 'label', false>} props\n */\nfunction FormGroupContent( {\n\talignLabel,\n\tchildren,\n\thelp,\n\thorizontal = false,\n\tid,\n\tlabel,\n\tlabelHidden,\n\tspacing = 2,\n\ttruncate,\n\t...props\n} ) {\n\tconst contextProps = useMemo(\n\t\t() => ( { id, horizontal } ),\n\t\t[ id, horizontal ]\n\t);\n\n\tconst content = help ? (\n\t\t<VStack expanded={ false } spacing={ spacing }>\n\t\t\t{ children }\n\t\t\t<FormGroupHelp>{ help }</FormGroupHelp>\n\t\t</VStack>\n\t) : (\n\t\tchildren\n\t);\n\n\treturn (\n\t\t<FormGroupContext.Provider value={ contextProps }>\n\t\t\t<FormGroupLabel\n\t\t\t\talign={ alignLabel }\n\t\t\t\tid={ id }\n\t\t\t\tlabelHidden={ labelHidden }\n\t\t\t\ttruncate={ truncate }\n\t\t\t\t{ ...props }\n\t\t\t>\n\t\t\t\t{ label }\n\t\t\t</FormGroupLabel>\n\t\t\t{ content }\n\t\t</FormGroupContext.Provider>\n\t);\n}\n\nexport default memo( FormGroupContent );\n"]}
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/components/src/unit-control/index.tsx"],"names":["UnforwardedUnitControl","unitControlProps","forwardedRef","__unstableStateReducer","stateReducerProp","autoComplete","className","disabled","disableUnits","isPressEnterToChange","isResetValueOnUnitChange","isUnitSelectTabbable","label","onChange","onChangeProp","onUnitChange","size","style","unit","unitProp","units","unitsProp","CSS_UNITS","value","valueProp","onBlur","onBlurProp","props","since","hint","version","nonNullValueProp","undefined","parsedQuantity","parsedUnit","setUnit","length","initial","fallback","refParsedQuantity","classes","handleOnQuantityChange","nextQuantityValue","changeProps","onChangeValue","join","handleOnUnitChange","nextUnitValue","data","nextValue","default","mayUpdateUnit","event","isNaN","Number","currentTarget","current","validParsedQuantity","validParsedUnit","Array","isArray","find","option","handleOnBlur","handleOnKeyDown","key","unitControlStateReducer","state","action","nextState","type","inputControlActionTypes","COMMIT","toString","stateReducer","baseState","inputSuffix","step","activeUnit","UnitControl"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport type {\n\tFocusEventHandler,\n\tKeyboardEvent,\n\tForwardedRef,\n\tSyntheticEvent,\n\tChangeEvent,\n\tPointerEvent,\n} from 'react';\nimport { omit } from 'lodash';\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport deprecated from '@wordpress/deprecated';\nimport { forwardRef, useMemo, useRef, useEffect } from '@wordpress/element';\nimport { __ } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport type { WordPressComponentProps } from '../ui/context';\nimport * as inputControlActionTypes from '../input-control/reducer/actions';\nimport { Root, ValueInput } from './styles/unit-control-styles';\nimport UnitSelectControl from './unit-select-control';\nimport {\n\tCSS_UNITS,\n\tgetParsedQuantityAndUnit,\n\tgetUnitsWithCurrentUnit,\n\tgetValidParsedQuantityAndUnit,\n} from './utils';\nimport { useControlledState } from '../utils/hooks';\nimport type { UnitControlProps, UnitControlOnChangeCallback } from './types';\nimport type { StateReducer } from '../input-control/reducer/state';\n\nfunction UnforwardedUnitControl(\n\tunitControlProps: WordPressComponentProps<\n\t\tUnitControlProps,\n\t\t'input',\n\t\tfalse\n\t>,\n\tforwardedRef: ForwardedRef< any >\n) {\n\tconst {\n\t\t__unstableStateReducer: stateReducerProp,\n\t\tautoComplete = 'off',\n\t\tclassName,\n\t\tdisabled = false,\n\t\tdisableUnits = false,\n\t\tisPressEnterToChange = false,\n\t\tisResetValueOnUnitChange = false,\n\t\tisUnitSelectTabbable = true,\n\t\tlabel,\n\t\tonChange: onChangeProp,\n\t\tonUnitChange,\n\t\tsize = 'default',\n\t\tstyle,\n\t\tunit: unitProp,\n\t\tunits: unitsProp = CSS_UNITS,\n\t\tvalue: valueProp,\n\t\tonBlur: onBlurProp,\n\t\t...props\n\t} = unitControlProps;\n\n\tif ( 'unit' in unitControlProps ) {\n\t\tdeprecated( 'UnitControl unit prop', {\n\t\t\tsince: '5.6',\n\t\t\thint: 'The unit should be provided within the `value` prop.',\n\t\t\tversion: '6.2',\n\t\t} );\n\t}\n\n\t// The `value` prop, in theory, should not be `null`, but the following line\n\t// ensures it fallback to `undefined` in case a consumer of `UnitControl`\n\t// still passes `null` as a `value`.\n\tconst nonNullValueProp = valueProp ?? undefined;\n\tconst units = useMemo(\n\t\t() => getUnitsWithCurrentUnit( nonNullValueProp, unitProp, unitsProp ),\n\t\t[ nonNullValueProp, unitProp, unitsProp ]\n\t);\n\tconst [ parsedQuantity, parsedUnit ] = getParsedQuantityAndUnit(\n\t\tnonNullValueProp,\n\t\tunitProp,\n\t\tunits\n\t);\n\n\tconst [ unit, setUnit ] = useControlledState< string | undefined >(\n\t\tunits.length === 1 ? units[ 0 ].value : unitProp,\n\t\t{\n\t\t\tinitial: parsedUnit,\n\t\t\tfallback: '',\n\t\t}\n\t);\n\n\tuseEffect( () => {\n\t\tif ( parsedUnit !== undefined ) {\n\t\t\tsetUnit( parsedUnit );\n\t\t}\n\t}, [ parsedUnit ] );\n\n\t// Stores parsed value for hand-off in state reducer.\n\tconst refParsedQuantity = useRef< number | undefined >( undefined );\n\n\tconst classes = classnames( 'components-unit-control', className );\n\n\tconst handleOnQuantityChange = (\n\t\tnextQuantityValue: number | string | undefined,\n\t\tchangeProps: {\n\t\t\tevent:\n\t\t\t\t| ChangeEvent< HTMLInputElement >\n\t\t\t\t| PointerEvent< HTMLInputElement >;\n\t\t}\n\t) => {\n\t\tif (\n\t\t\tnextQuantityValue === '' ||\n\t\t\ttypeof nextQuantityValue === 'undefined' ||\n\t\t\tnextQuantityValue === null\n\t\t) {\n\t\t\tonChangeProp?.( '', changeProps );\n\t\t\treturn;\n\t\t}\n\n\t\t/*\n\t\t * Customizing the onChange callback.\n\t\t * This allows as to broadcast a combined value+unit to onChange.\n\t\t */\n\t\tconst onChangeValue = getValidParsedQuantityAndUnit(\n\t\t\tnextQuantityValue,\n\t\t\tunits,\n\t\t\tparsedQuantity,\n\t\t\tunit\n\t\t).join( '' );\n\n\t\tonChangeProp?.( onChangeValue, changeProps );\n\t};\n\n\tconst handleOnUnitChange: UnitControlOnChangeCallback = (\n\t\tnextUnitValue,\n\t\tchangeProps\n\t) => {\n\t\tconst { data } = changeProps;\n\n\t\tlet nextValue = `${ parsedQuantity ?? '' }${ nextUnitValue }`;\n\n\t\tif ( isResetValueOnUnitChange && data?.default !== undefined ) {\n\t\t\tnextValue = `${ data.default }${ nextUnitValue }`;\n\t\t}\n\n\t\tonChangeProp?.( nextValue, changeProps );\n\t\tonUnitChange?.( nextUnitValue, changeProps );\n\n\t\tsetUnit( nextUnitValue );\n\t};\n\n\tconst mayUpdateUnit = ( event: SyntheticEvent< HTMLInputElement > ) => {\n\t\tif ( ! isNaN( Number( event.currentTarget.value ) ) ) {\n\t\t\trefParsedQuantity.current = undefined;\n\t\t\treturn;\n\t\t}\n\t\tconst [\n\t\t\tvalidParsedQuantity,\n\t\t\tvalidParsedUnit,\n\t\t] = getValidParsedQuantityAndUnit(\n\t\t\tevent.currentTarget.value,\n\t\t\tunits,\n\t\t\tparsedQuantity,\n\t\t\tunit\n\t\t);\n\n\t\trefParsedQuantity.current = validParsedQuantity;\n\n\t\tif ( isPressEnterToChange && validParsedUnit !== unit ) {\n\t\t\tconst data = Array.isArray( units )\n\t\t\t\t? units.find( ( option ) => option.value === validParsedUnit )\n\t\t\t\t: undefined;\n\t\t\tconst changeProps = { event, data };\n\n\t\t\t// The `onChange` callback already gets called, no need to call it explicitely.\n\t\t\tonUnitChange?.( validParsedUnit, changeProps );\n\n\t\t\tsetUnit( validParsedUnit );\n\t\t}\n\t};\n\n\tconst handleOnBlur: FocusEventHandler< HTMLInputElement > = ( event ) => {\n\t\tmayUpdateUnit( event );\n\t\tonBlurProp?.( event );\n\t};\n\n\tconst handleOnKeyDown = ( event: KeyboardEvent< HTMLInputElement > ) => {\n\t\tconst { key } = event;\n\t\tif ( key === 'Enter' ) {\n\t\t\tmayUpdateUnit( event );\n\t\t}\n\t};\n\n\t/**\n\t * \"Middleware\" function that intercepts updates from InputControl.\n\t * This allows us to tap into actions to transform the (next) state for\n\t * InputControl.\n\t *\n\t * @param state State from InputControl\n\t * @param action Action triggering state change\n\t * @return The updated state to apply to InputControl\n\t */\n\tconst unitControlStateReducer: StateReducer = ( state, action ) => {\n\t\tconst nextState = { ...state };\n\n\t\t/*\n\t\t * On commits (when pressing ENTER and on blur if\n\t\t * isPressEnterToChange is true), if a parse has been performed\n\t\t * then use that result to update the state.\n\t\t */\n\t\tif ( action.type === inputControlActionTypes.COMMIT ) {\n\t\t\tif ( refParsedQuantity.current !== undefined ) {\n\t\t\t\tnextState.value = (\n\t\t\t\t\trefParsedQuantity.current ?? ''\n\t\t\t\t).toString();\n\t\t\t\trefParsedQuantity.current = undefined;\n\t\t\t}\n\t\t}\n\n\t\treturn nextState;\n\t};\n\n\tlet stateReducer: StateReducer = unitControlStateReducer;\n\tif ( stateReducerProp ) {\n\t\tstateReducer = ( state, action ) => {\n\t\t\tconst baseState = unitControlStateReducer( state, action );\n\t\t\treturn stateReducerProp( baseState, action );\n\t\t};\n\t}\n\n\tconst inputSuffix = ! disableUnits ? (\n\t\t<UnitSelectControl\n\t\t\taria-label={ __( 'Select unit' ) }\n\t\t\tdisabled={ disabled }\n\t\t\tisUnitSelectTabbable={ isUnitSelectTabbable }\n\t\t\tonChange={ handleOnUnitChange }\n\t\t\tsize={ size }\n\t\t\tunit={ unit }\n\t\t\tunits={ units }\n\t\t\tonBlur={ onBlurProp }\n\t\t/>\n\t) : null;\n\n\tlet step = props.step;\n\n\t/*\n\t * If no step prop has been passed, lookup the active unit and\n\t * try to get step from `units`, or default to a value of `1`\n\t */\n\tif ( ! step && units ) {\n\t\tconst activeUnit = units.find( ( option ) => option.value === unit );\n\t\tstep = activeUnit?.step ?? 1;\n\t}\n\n\treturn (\n\t\t<Root className=\"components-unit-control-wrapper\" style={ style }>\n\t\t\t<ValueInput\n\t\t\t\taria-label={ label }\n\t\t\t\ttype={ isPressEnterToChange ? 'text' : 'number' }\n\t\t\t\t{ ...omit( props, [ 'children' ] ) }\n\t\t\t\tautoComplete={ autoComplete }\n\t\t\t\tclassName={ classes }\n\t\t\t\tdisabled={ disabled }\n\t\t\t\tdisableUnits={ disableUnits }\n\t\t\t\tisPressEnterToChange={ isPressEnterToChange }\n\t\t\t\tlabel={ label }\n\t\t\t\tonBlur={ handleOnBlur }\n\t\t\t\tonKeyDown={ handleOnKeyDown }\n\t\t\t\tonChange={ handleOnQuantityChange }\n\t\t\t\tref={ forwardedRef }\n\t\t\t\tsize={ size }\n\t\t\t\tsuffix={ inputSuffix }\n\t\t\t\tvalue={ parsedQuantity ?? '' }\n\t\t\t\tstep={ step }\n\t\t\t\t__unstableStateReducer={ stateReducer }\n\t\t\t/>\n\t\t</Root>\n\t);\n}\n\n/**\n * `UnitControl` allows the user to set a numeric quantity as well as a unit (e.g. `px`).\n *\n *\n * @example\n * ```jsx\n * import { __experimentalUnitControl as UnitControl } from '@wordpress/components';\n * import { useState } from '@wordpress/element';\n *\n * const Example = () => {\n * const [ value, setValue ] = useState( '10px' );\n *\n * return <UnitControl onChange={ setValue } value={ value } />;\n * };\n * ```\n */\nexport const UnitControl = forwardRef( UnforwardedUnitControl );\n\nexport { parseQuantityAndUnitFromRawValue, useCustomUnits } from './utils';\nexport default UnitControl;\n"]}
1
+ {"version":3,"sources":["@wordpress/components/src/unit-control/index.tsx"],"names":["UnforwardedUnitControl","unitControlProps","forwardedRef","__unstableStateReducer","stateReducerProp","autoComplete","className","disabled","disableUnits","isPressEnterToChange","isResetValueOnUnitChange","isUnitSelectTabbable","label","onChange","onChangeProp","onUnitChange","size","style","unit","unitProp","units","unitsProp","CSS_UNITS","value","valueProp","onBlur","onBlurProp","props","since","hint","version","nonNullValueProp","undefined","parsedQuantity","parsedUnit","setUnit","length","initial","fallback","refParsedQuantity","classes","handleOnQuantityChange","nextQuantityValue","changeProps","onChangeValue","join","handleOnUnitChange","nextUnitValue","data","nextValue","default","mayUpdateUnit","event","isNaN","Number","currentTarget","current","validParsedQuantity","validParsedUnit","Array","isArray","find","option","handleOnBlur","handleOnKeyDown","key","unitControlStateReducer","state","action","nextState","type","inputControlActionTypes","COMMIT","toString","stateReducer","baseState","inputSuffix","step","activeUnit","UnitControl"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport type {\n\tFocusEventHandler,\n\tKeyboardEvent,\n\tForwardedRef,\n\tSyntheticEvent,\n\tChangeEvent,\n\tPointerEvent,\n} from 'react';\nimport { omit } from 'lodash';\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport deprecated from '@wordpress/deprecated';\nimport { forwardRef, useMemo, useRef, useEffect } from '@wordpress/element';\nimport { __ } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport type { WordPressComponentProps } from '../ui/context';\nimport * as inputControlActionTypes from '../input-control/reducer/actions';\nimport { Root, ValueInput } from './styles/unit-control-styles';\nimport UnitSelectControl from './unit-select-control';\nimport {\n\tCSS_UNITS,\n\tgetParsedQuantityAndUnit,\n\tgetUnitsWithCurrentUnit,\n\tgetValidParsedQuantityAndUnit,\n} from './utils';\nimport { useControlledState } from '../utils/hooks';\nimport type { UnitControlProps, UnitControlOnChangeCallback } from './types';\nimport type { StateReducer } from '../input-control/reducer/state';\n\nfunction UnforwardedUnitControl(\n\tunitControlProps: WordPressComponentProps<\n\t\tUnitControlProps,\n\t\t'input',\n\t\tfalse\n\t>,\n\tforwardedRef: ForwardedRef< any >\n) {\n\tconst {\n\t\t__unstableStateReducer: stateReducerProp,\n\t\tautoComplete = 'off',\n\t\tclassName,\n\t\tdisabled = false,\n\t\tdisableUnits = false,\n\t\tisPressEnterToChange = false,\n\t\tisResetValueOnUnitChange = false,\n\t\tisUnitSelectTabbable = true,\n\t\tlabel,\n\t\tonChange: onChangeProp,\n\t\tonUnitChange,\n\t\tsize = 'default',\n\t\tstyle,\n\t\tunit: unitProp,\n\t\tunits: unitsProp = CSS_UNITS,\n\t\tvalue: valueProp,\n\t\tonBlur: onBlurProp,\n\t\t...props\n\t} = unitControlProps;\n\n\tif ( 'unit' in unitControlProps ) {\n\t\tdeprecated( 'UnitControl unit prop', {\n\t\t\tsince: '5.6',\n\t\t\thint: 'The unit should be provided within the `value` prop.',\n\t\t\tversion: '6.2',\n\t\t} );\n\t}\n\n\t// The `value` prop, in theory, should not be `null`, but the following line\n\t// ensures it fallback to `undefined` in case a consumer of `UnitControl`\n\t// still passes `null` as a `value`.\n\tconst nonNullValueProp = valueProp ?? undefined;\n\tconst units = useMemo(\n\t\t() => getUnitsWithCurrentUnit( nonNullValueProp, unitProp, unitsProp ),\n\t\t[ nonNullValueProp, unitProp, unitsProp ]\n\t);\n\tconst [ parsedQuantity, parsedUnit ] = getParsedQuantityAndUnit(\n\t\tnonNullValueProp,\n\t\tunitProp,\n\t\tunits\n\t);\n\n\tconst [ unit, setUnit ] = useControlledState< string | undefined >(\n\t\tunits.length === 1 ? units[ 0 ].value : unitProp,\n\t\t{\n\t\t\tinitial: parsedUnit,\n\t\t\tfallback: '',\n\t\t}\n\t);\n\n\tuseEffect( () => {\n\t\tif ( parsedUnit !== undefined ) {\n\t\t\tsetUnit( parsedUnit );\n\t\t}\n\t}, [ parsedUnit ] );\n\n\t// Stores parsed value for hand-off in state reducer.\n\tconst refParsedQuantity = useRef< number | undefined >( undefined );\n\n\tconst classes = classnames( 'components-unit-control', className );\n\n\tconst handleOnQuantityChange = (\n\t\tnextQuantityValue: number | string | undefined,\n\t\tchangeProps: {\n\t\t\tevent:\n\t\t\t\t| ChangeEvent< HTMLInputElement >\n\t\t\t\t| PointerEvent< HTMLInputElement >;\n\t\t}\n\t) => {\n\t\tif (\n\t\t\tnextQuantityValue === '' ||\n\t\t\ttypeof nextQuantityValue === 'undefined' ||\n\t\t\tnextQuantityValue === null\n\t\t) {\n\t\t\tonChangeProp?.( '', changeProps );\n\t\t\treturn;\n\t\t}\n\n\t\t/*\n\t\t * Customizing the onChange callback.\n\t\t * This allows as to broadcast a combined value+unit to onChange.\n\t\t */\n\t\tconst onChangeValue = getValidParsedQuantityAndUnit(\n\t\t\tnextQuantityValue,\n\t\t\tunits,\n\t\t\tparsedQuantity,\n\t\t\tunit\n\t\t).join( '' );\n\n\t\tonChangeProp?.( onChangeValue, changeProps );\n\t};\n\n\tconst handleOnUnitChange: UnitControlOnChangeCallback = (\n\t\tnextUnitValue,\n\t\tchangeProps\n\t) => {\n\t\tconst { data } = changeProps;\n\n\t\tlet nextValue = `${ parsedQuantity ?? '' }${ nextUnitValue }`;\n\n\t\tif ( isResetValueOnUnitChange && data?.default !== undefined ) {\n\t\t\tnextValue = `${ data.default }${ nextUnitValue }`;\n\t\t}\n\n\t\tonChangeProp?.( nextValue, changeProps );\n\t\tonUnitChange?.( nextUnitValue, changeProps );\n\n\t\tsetUnit( nextUnitValue );\n\t};\n\n\tconst mayUpdateUnit = ( event: SyntheticEvent< HTMLInputElement > ) => {\n\t\tif ( ! isNaN( Number( event.currentTarget.value ) ) ) {\n\t\t\trefParsedQuantity.current = undefined;\n\t\t\treturn;\n\t\t}\n\t\tconst [ validParsedQuantity, validParsedUnit ] =\n\t\t\tgetValidParsedQuantityAndUnit(\n\t\t\t\tevent.currentTarget.value,\n\t\t\t\tunits,\n\t\t\t\tparsedQuantity,\n\t\t\t\tunit\n\t\t\t);\n\n\t\trefParsedQuantity.current = validParsedQuantity;\n\n\t\tif ( isPressEnterToChange && validParsedUnit !== unit ) {\n\t\t\tconst data = Array.isArray( units )\n\t\t\t\t? units.find( ( option ) => option.value === validParsedUnit )\n\t\t\t\t: undefined;\n\t\t\tconst changeProps = { event, data };\n\n\t\t\t// The `onChange` callback already gets called, no need to call it explicitely.\n\t\t\tonUnitChange?.( validParsedUnit, changeProps );\n\n\t\t\tsetUnit( validParsedUnit );\n\t\t}\n\t};\n\n\tconst handleOnBlur: FocusEventHandler< HTMLInputElement > = ( event ) => {\n\t\tmayUpdateUnit( event );\n\t\tonBlurProp?.( event );\n\t};\n\n\tconst handleOnKeyDown = ( event: KeyboardEvent< HTMLInputElement > ) => {\n\t\tconst { key } = event;\n\t\tif ( key === 'Enter' ) {\n\t\t\tmayUpdateUnit( event );\n\t\t}\n\t};\n\n\t/**\n\t * \"Middleware\" function that intercepts updates from InputControl.\n\t * This allows us to tap into actions to transform the (next) state for\n\t * InputControl.\n\t *\n\t * @param state State from InputControl\n\t * @param action Action triggering state change\n\t * @return The updated state to apply to InputControl\n\t */\n\tconst unitControlStateReducer: StateReducer = ( state, action ) => {\n\t\tconst nextState = { ...state };\n\n\t\t/*\n\t\t * On commits (when pressing ENTER and on blur if\n\t\t * isPressEnterToChange is true), if a parse has been performed\n\t\t * then use that result to update the state.\n\t\t */\n\t\tif ( action.type === inputControlActionTypes.COMMIT ) {\n\t\t\tif ( refParsedQuantity.current !== undefined ) {\n\t\t\t\tnextState.value = (\n\t\t\t\t\trefParsedQuantity.current ?? ''\n\t\t\t\t).toString();\n\t\t\t\trefParsedQuantity.current = undefined;\n\t\t\t}\n\t\t}\n\n\t\treturn nextState;\n\t};\n\n\tlet stateReducer: StateReducer = unitControlStateReducer;\n\tif ( stateReducerProp ) {\n\t\tstateReducer = ( state, action ) => {\n\t\t\tconst baseState = unitControlStateReducer( state, action );\n\t\t\treturn stateReducerProp( baseState, action );\n\t\t};\n\t}\n\n\tconst inputSuffix = ! disableUnits ? (\n\t\t<UnitSelectControl\n\t\t\taria-label={ __( 'Select unit' ) }\n\t\t\tdisabled={ disabled }\n\t\t\tisUnitSelectTabbable={ isUnitSelectTabbable }\n\t\t\tonChange={ handleOnUnitChange }\n\t\t\tsize={ size }\n\t\t\tunit={ unit }\n\t\t\tunits={ units }\n\t\t\tonBlur={ onBlurProp }\n\t\t/>\n\t) : null;\n\n\tlet step = props.step;\n\n\t/*\n\t * If no step prop has been passed, lookup the active unit and\n\t * try to get step from `units`, or default to a value of `1`\n\t */\n\tif ( ! step && units ) {\n\t\tconst activeUnit = units.find( ( option ) => option.value === unit );\n\t\tstep = activeUnit?.step ?? 1;\n\t}\n\n\treturn (\n\t\t<Root className=\"components-unit-control-wrapper\" style={ style }>\n\t\t\t<ValueInput\n\t\t\t\taria-label={ label }\n\t\t\t\ttype={ isPressEnterToChange ? 'text' : 'number' }\n\t\t\t\t{ ...omit( props, [ 'children' ] ) }\n\t\t\t\tautoComplete={ autoComplete }\n\t\t\t\tclassName={ classes }\n\t\t\t\tdisabled={ disabled }\n\t\t\t\tdisableUnits={ disableUnits }\n\t\t\t\tisPressEnterToChange={ isPressEnterToChange }\n\t\t\t\tlabel={ label }\n\t\t\t\tonBlur={ handleOnBlur }\n\t\t\t\tonKeyDown={ handleOnKeyDown }\n\t\t\t\tonChange={ handleOnQuantityChange }\n\t\t\t\tref={ forwardedRef }\n\t\t\t\tsize={ size }\n\t\t\t\tsuffix={ inputSuffix }\n\t\t\t\tvalue={ parsedQuantity ?? '' }\n\t\t\t\tstep={ step }\n\t\t\t\t__unstableStateReducer={ stateReducer }\n\t\t\t/>\n\t\t</Root>\n\t);\n}\n\n/**\n * `UnitControl` allows the user to set a numeric quantity as well as a unit (e.g. `px`).\n *\n *\n * @example\n * ```jsx\n * import { __experimentalUnitControl as UnitControl } from '@wordpress/components';\n * import { useState } from '@wordpress/element';\n *\n * const Example = () => {\n * const [ value, setValue ] = useState( '10px' );\n *\n * return <UnitControl onChange={ setValue } value={ value } />;\n * };\n * ```\n */\nexport const UnitControl = forwardRef( UnforwardedUnitControl );\n\nexport { parseQuantityAndUnitFromRawValue, useCustomUnits } from './utils';\nexport default UnitControl;\n"]}
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/components/src/utils/unit-values.ts"],"names":["UNITED_VALUE_REGEX","parseCSSUnitValue","toParse","value","trim","matched","match","undefined","num","unit","numParsed","parseFloat","Number","isNaN","createCSSUnitValue"],"mappings":";;;;;;;AAAA,MAAMA,kBAAkB,GAAG,0IAA3B;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;;AACO,SAASC,iBAAT,CACNC,OADM,EAEuC;AAC7C,QAAMC,KAAK,GAAGD,OAAO,CAACE,IAAR,EAAd;AAEA,QAAMC,OAAO,GAAGF,KAAK,CAACG,KAAN,CAAaN,kBAAb,CAAhB;;AACA,MAAK,CAAEK,OAAP,EAAiB;AAChB,WAAO,CAAEE,SAAF,EAAaA,SAAb,CAAP;AACA;;AACD,QAAM,GAAIC,GAAJ,EAASC,IAAT,IAAkBJ,OAAxB;AACA,MAAIK,SAA6B,GAAGC,UAAU,CAAEH,GAAF,CAA9C;AACAE,EAAAA,SAAS,GAAGE,MAAM,CAACC,KAAP,CAAcH,SAAd,IAA4BH,SAA5B,GAAwCG,SAApD;AAEA,SAAO,CAAEA,SAAF,EAAaD,IAAb,CAAP;AACA;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACO,SAASK,kBAAT,CACNX,KADM,EAENM,IAFM,EAGG;AACT,SAAQ,GAAGN,KAAO,GAAGM,IAAM,EAA3B;AACA","sourcesContent":["const UNITED_VALUE_REGEX = /^([\\d.\\-+]*)\\s*(fr|cm|mm|Q|in|pc|pt|px|em|ex|ch|rem|lh|vw|vh|vmin|vmax|%|cap|ic|rlh|vi|vb|deg|grad|rad|turn|s|ms|Hz|kHz|dpi|dpcm|dppx)?$/;\n\n/**\n * Parses a number and unit from a value.\n *\n * @param toParse Value to parse\n *\n * @return The extracted number and unit.\n */\nexport function parseCSSUnitValue(\n\ttoParse: string\n): [ number | undefined, string | undefined ] {\n\tconst value = toParse.trim();\n\n\tconst matched = value.match( UNITED_VALUE_REGEX );\n\tif ( ! matched ) {\n\t\treturn [ undefined, undefined ];\n\t}\n\tconst [ , num, unit ] = matched;\n\tlet numParsed: number | undefined = parseFloat( num );\n\tnumParsed = Number.isNaN( numParsed ) ? undefined : numParsed;\n\n\treturn [ numParsed, unit ];\n}\n\n/**\n * Combines a value and a unit into a unit value.\n *\n * @param value\n * @param unit\n *\n * @return The unit value.\n */\nexport function createCSSUnitValue(\n\tvalue: string | number,\n\tunit: string\n): string {\n\treturn `${ value }${ unit }`;\n}\n"]}
1
+ {"version":3,"sources":["@wordpress/components/src/utils/unit-values.ts"],"names":["UNITED_VALUE_REGEX","parseCSSUnitValue","toParse","value","trim","matched","match","undefined","num","unit","numParsed","parseFloat","Number","isNaN","createCSSUnitValue"],"mappings":";;;;;;;AAAA,MAAMA,kBAAkB,GACvB,0IADD;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;;AACO,SAASC,iBAAT,CACNC,OADM,EAEuC;AAC7C,QAAMC,KAAK,GAAGD,OAAO,CAACE,IAAR,EAAd;AAEA,QAAMC,OAAO,GAAGF,KAAK,CAACG,KAAN,CAAaN,kBAAb,CAAhB;;AACA,MAAK,CAAEK,OAAP,EAAiB;AAChB,WAAO,CAAEE,SAAF,EAAaA,SAAb,CAAP;AACA;;AACD,QAAM,GAAIC,GAAJ,EAASC,IAAT,IAAkBJ,OAAxB;AACA,MAAIK,SAA6B,GAAGC,UAAU,CAAEH,GAAF,CAA9C;AACAE,EAAAA,SAAS,GAAGE,MAAM,CAACC,KAAP,CAAcH,SAAd,IAA4BH,SAA5B,GAAwCG,SAApD;AAEA,SAAO,CAAEA,SAAF,EAAaD,IAAb,CAAP;AACA;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACO,SAASK,kBAAT,CACNX,KADM,EAENM,IAFM,EAGG;AACT,SAAQ,GAAGN,KAAO,GAAGM,IAAM,EAA3B;AACA","sourcesContent":["const UNITED_VALUE_REGEX =\n\t/^([\\d.\\-+]*)\\s*(fr|cm|mm|Q|in|pc|pt|px|em|ex|ch|rem|lh|vw|vh|vmin|vmax|%|cap|ic|rlh|vi|vb|deg|grad|rad|turn|s|ms|Hz|kHz|dpi|dpcm|dppx)?$/;\n\n/**\n * Parses a number and unit from a value.\n *\n * @param toParse Value to parse\n *\n * @return The extracted number and unit.\n */\nexport function parseCSSUnitValue(\n\ttoParse: string\n): [ number | undefined, string | undefined ] {\n\tconst value = toParse.trim();\n\n\tconst matched = value.match( UNITED_VALUE_REGEX );\n\tif ( ! matched ) {\n\t\treturn [ undefined, undefined ];\n\t}\n\tconst [ , num, unit ] = matched;\n\tlet numParsed: number | undefined = parseFloat( num );\n\tnumParsed = Number.isNaN( numParsed ) ? undefined : numParsed;\n\n\treturn [ numParsed, unit ];\n}\n\n/**\n * Combines a value and a unit into a unit value.\n *\n * @param value\n * @param unit\n *\n * @return The unit value.\n */\nexport function createCSSUnitValue(\n\tvalue: string | number,\n\tunit: string\n): string {\n\treturn `${ value }${ unit }`;\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/components/src/utils/values.js"],"names":["isValueDefined","value","undefined","isValueEmpty","isEmptyString","getDefinedValue","values","fallbackValue","find","getDelimiterAndDecimalRegex","locale","formatted","Intl","NumberFormat","format","delimiter","decimal","length","RegExp","INTERNATIONAL_THOUSANDS_DELIMITER","ARABIC_NUMERAL_LOCALES","EASTERN_ARABIC_NUMBERS","isValueNumeric","window","navigator","language","some","l","startsWith","test","replace","d","indexOf","delimiterRegexp","decimalRegexp","valueToCheck","isNaN","parseFloat","isFinite"],"mappings":";;;;;;;;;;AAAA;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAASA,cAAT,CAAyBC,KAAzB,EAAiC;AACvC,SAAOA,KAAK,KAAKC,SAAV,IAAuBD,KAAK,KAAK,IAAxC;AACA;AACD;;AAEA;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACO,SAASE,YAAT,CAAuBF,KAAvB,EAA+B;AACrC,QAAMG,aAAa,GAAGH,KAAK,KAAK,EAAhC;AAEA,SAAO,CAAED,cAAc,CAAEC,KAAF,CAAhB,IAA6BG,aAApC;AACA;AACD;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACO,SAASC,eAAT,GAAuD;AAAA;;AAAA,MAA7BC,MAA6B,uEAApB,EAAoB;AAAA,MAAhBC,aAAgB;AAC7D,yBAAOD,MAAM,CAACE,IAAP,CAAaR,cAAb,CAAP,uDAAwCO,aAAxC;AACA;AAED;AACA;AACA;AACA;;;AACA,MAAME,2BAA2B,GAAKC,MAAF,IAAc;AACjD,QAAMC,SAAS,GAAGC,IAAI,CAACC,YAAL,CAAmBH,MAAnB,EAA4BI,MAA5B,CAAoC,MAApC,CAAlB;AACA,QAAMC,SAAS,GAAGJ,SAAS,CAAE,CAAF,CAA3B;AACA,QAAMK,OAAO,GAAGL,SAAS,CAAEA,SAAS,CAACM,MAAV,GAAmB,CAArB,CAAzB;AACA,SAAO,CACN,IAAIC,MAAJ,CAAa,KAAKH,SAAW,EAA7B,EAAgC,GAAhC,CADM,EAEN,IAAIG,MAAJ,CAAa,KAAKF,OAAS,EAA3B,EAA8B,GAA9B,CAFM,CAAP;AAIA,CARD,C,CAUA;;;AACA,MAAMG,iCAAiC,GAAG,IAA1C;AAEA,MAAMC,sBAAsB,GAAG,CAAE,IAAF,EAAQ,IAAR,EAAc,IAAd,EAAoB,KAApB,EAA2B,IAA3B,CAA/B;AAEA,MAAMC,sBAAsB,GAAG,gBAA/B;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACO,SAASC,cAAT,CAAyBrB,KAAzB,EAAqE;AAAA,MAArCS,MAAqC,uEAA5Ba,MAAM,CAACC,SAAP,CAAiBC,QAAW;;AAC3E,MAAKL,sBAAsB,CAACM,IAAvB,CAA+BC,CAAF,IAASjB,MAAM,CAACkB,UAAP,CAAmBD,CAAnB,CAAtC,CAAL,EAAsE;AACrEjB,IAAAA,MAAM,GAAG,OAAT;;AACA,QAAKW,sBAAsB,CAACQ,IAAvB,CAA6B5B,KAA7B,CAAL,EAA4C;AAC3CA,MAAAA,KAAK,GAAGA,KAAK,CACX6B,OADM,CACG,QADH,EACa;AAAE;AAAsBC,MAAAA,CAAxB,KACnB,aAAaC,OAAb,CAAsBD,CAAtB,CAFM,EAIND,OAJM,CAIG,QAJH,EAIa;AAAE;AAAsBC,MAAAA,CAAxB,KACnB,aAAaC,OAAb,CAAsBD,CAAtB,CALM,EAOND,OAPM,CAOG,IAPH,EAOS,GAPT,EAQNA,OARM,CAQG,IARH,EAQS,GART,CAAR;AASA;AACD;;AAED,QAAM,CAAEG,eAAF,EAAmBC,aAAnB,IAAqCzB,2BAA2B,CACrEC,MADqE,CAAtE;AAGA,QAAMyB,YAAY,GACjB,OAAOlC,KAAP,KAAiB,QAAjB,GACGA,KAAK,CACJ6B,OADD,CACUG,eADV,EAC2B,EAD3B,EAECH,OAFD,CAEUI,aAFV,EAEyB,GAFzB,EAGCJ,OAHD,CAGUX,iCAHV,EAG6C,EAH7C,CADH,GAKGlB,KANJ;AAOA,SAAO,CAAEmC,KAAK,CAAEC,UAAU,CAAEF,YAAF,CAAZ,CAAP,IAAyCG,QAAQ,CAAEH,YAAF,CAAxD;AACA","sourcesContent":["/* eslint-disable jsdoc/valid-types */\n/**\n * Determines if a value is null or undefined.\n *\n * @template T\n *\n * @param {T | null | undefined} value The value to check.\n * @return {value is T} Whether value is not null or undefined.\n */\nexport function isValueDefined( value ) {\n\treturn value !== undefined && value !== null;\n}\n/* eslint-enable jsdoc/valid-types */\n\n/* eslint-disable jsdoc/valid-types */\n/**\n * Determines if a value is empty, null, or undefined.\n *\n * @template T\n *\n * @param {T | \"\" | null | undefined} value The value to check.\n * @return {value is T} Whether value is empty.\n */\nexport function isValueEmpty( value ) {\n\tconst isEmptyString = value === '';\n\n\treturn ! isValueDefined( value ) || isEmptyString;\n}\n/* eslint-enable jsdoc/valid-types */\n\n/**\n * Get the first defined/non-null value from an array.\n *\n * @template T\n *\n * @param {Array<T | null | undefined>} values Values to derive from.\n * @param {T} fallbackValue Fallback value if there are no defined values.\n * @return {T} A defined value or the fallback value.\n */\nexport function getDefinedValue( values = [], fallbackValue ) {\n\treturn values.find( isValueDefined ) ?? fallbackValue;\n}\n\n/**\n * @param {string} [locale]\n * @return {[RegExp, RegExp]} The delimiter and decimal regexp\n */\nconst getDelimiterAndDecimalRegex = ( locale ) => {\n\tconst formatted = Intl.NumberFormat( locale ).format( 1000.1 );\n\tconst delimiter = formatted[ 1 ];\n\tconst decimal = formatted[ formatted.length - 2 ];\n\treturn [\n\t\tnew RegExp( `\\\\${ delimiter }`, 'g' ),\n\t\tnew RegExp( `\\\\${ decimal }`, 'g' ),\n\t];\n};\n\n// https://en.wikipedia.org/wiki/Decimal_separator#Current_standards\nconst INTERNATIONAL_THOUSANDS_DELIMITER = / /g;\n\nconst ARABIC_NUMERAL_LOCALES = [ 'ar', 'fa', 'ur', 'ckb', 'ps' ];\n\nconst EASTERN_ARABIC_NUMBERS = /([۰-۹]|[٠-٩])/g;\n\n/**\n * Checks to see if a value is a numeric value (`number` or `string`).\n *\n * Intentionally ignores whether the thousands delimiters are only\n * in the thousands marks.\n *\n * @param {any} value\n * @param {string} [locale]\n * @return {boolean} Whether value is numeric.\n */\nexport function isValueNumeric( value, locale = window.navigator.language ) {\n\tif ( ARABIC_NUMERAL_LOCALES.some( ( l ) => locale.startsWith( l ) ) ) {\n\t\tlocale = 'en-GB';\n\t\tif ( EASTERN_ARABIC_NUMBERS.test( value ) ) {\n\t\t\tvalue = value\n\t\t\t\t.replace( /[٠-٩]/g, ( /** @type {string} */ d ) =>\n\t\t\t\t\t'٠١٢٣٤٥٦٧٨٩'.indexOf( d )\n\t\t\t\t)\n\t\t\t\t.replace( /[۰-۹]/g, ( /** @type {string} */ d ) =>\n\t\t\t\t\t'۰۱۲۳۴۵۶۷۸۹'.indexOf( d )\n\t\t\t\t)\n\t\t\t\t.replace( /٬/g, ',' )\n\t\t\t\t.replace( /٫/g, '.' );\n\t\t}\n\t}\n\n\tconst [ delimiterRegexp, decimalRegexp ] = getDelimiterAndDecimalRegex(\n\t\tlocale\n\t);\n\tconst valueToCheck =\n\t\ttypeof value === 'string'\n\t\t\t? value\n\t\t\t\t\t.replace( delimiterRegexp, '' )\n\t\t\t\t\t.replace( decimalRegexp, '.' )\n\t\t\t\t\t.replace( INTERNATIONAL_THOUSANDS_DELIMITER, '' )\n\t\t\t: value;\n\treturn ! isNaN( parseFloat( valueToCheck ) ) && isFinite( valueToCheck );\n}\n"]}
1
+ {"version":3,"sources":["@wordpress/components/src/utils/values.js"],"names":["isValueDefined","value","undefined","isValueEmpty","isEmptyString","getDefinedValue","values","fallbackValue","find","getDelimiterAndDecimalRegex","locale","formatted","Intl","NumberFormat","format","delimiter","decimal","length","RegExp","INTERNATIONAL_THOUSANDS_DELIMITER","ARABIC_NUMERAL_LOCALES","EASTERN_ARABIC_NUMBERS","isValueNumeric","window","navigator","language","some","l","startsWith","test","replace","d","indexOf","delimiterRegexp","decimalRegexp","valueToCheck","isNaN","parseFloat","isFinite"],"mappings":";;;;;;;;;;AAAA;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAASA,cAAT,CAAyBC,KAAzB,EAAiC;AACvC,SAAOA,KAAK,KAAKC,SAAV,IAAuBD,KAAK,KAAK,IAAxC;AACA;AACD;;AAEA;;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACO,SAASE,YAAT,CAAuBF,KAAvB,EAA+B;AACrC,QAAMG,aAAa,GAAGH,KAAK,KAAK,EAAhC;AAEA,SAAO,CAAED,cAAc,CAAEC,KAAF,CAAhB,IAA6BG,aAApC;AACA;AACD;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACO,SAASC,eAAT,GAAuD;AAAA;;AAAA,MAA7BC,MAA6B,uEAApB,EAAoB;AAAA,MAAhBC,aAAgB;AAC7D,yBAAOD,MAAM,CAACE,IAAP,CAAaR,cAAb,CAAP,uDAAwCO,aAAxC;AACA;AAED;AACA;AACA;AACA;;;AACA,MAAME,2BAA2B,GAAKC,MAAF,IAAc;AACjD,QAAMC,SAAS,GAAGC,IAAI,CAACC,YAAL,CAAmBH,MAAnB,EAA4BI,MAA5B,CAAoC,MAApC,CAAlB;AACA,QAAMC,SAAS,GAAGJ,SAAS,CAAE,CAAF,CAA3B;AACA,QAAMK,OAAO,GAAGL,SAAS,CAAEA,SAAS,CAACM,MAAV,GAAmB,CAArB,CAAzB;AACA,SAAO,CACN,IAAIC,MAAJ,CAAa,KAAKH,SAAW,EAA7B,EAAgC,GAAhC,CADM,EAEN,IAAIG,MAAJ,CAAa,KAAKF,OAAS,EAA3B,EAA8B,GAA9B,CAFM,CAAP;AAIA,CARD,C,CAUA;;;AACA,MAAMG,iCAAiC,GAAG,IAA1C;AAEA,MAAMC,sBAAsB,GAAG,CAAE,IAAF,EAAQ,IAAR,EAAc,IAAd,EAAoB,KAApB,EAA2B,IAA3B,CAA/B;AAEA,MAAMC,sBAAsB,GAAG,gBAA/B;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACO,SAASC,cAAT,CAAyBrB,KAAzB,EAAqE;AAAA,MAArCS,MAAqC,uEAA5Ba,MAAM,CAACC,SAAP,CAAiBC,QAAW;;AAC3E,MAAKL,sBAAsB,CAACM,IAAvB,CAA+BC,CAAF,IAASjB,MAAM,CAACkB,UAAP,CAAmBD,CAAnB,CAAtC,CAAL,EAAsE;AACrEjB,IAAAA,MAAM,GAAG,OAAT;;AACA,QAAKW,sBAAsB,CAACQ,IAAvB,CAA6B5B,KAA7B,CAAL,EAA4C;AAC3CA,MAAAA,KAAK,GAAGA,KAAK,CACX6B,OADM,CACG,QADH,EACa;AAAE;AAAsBC,MAAAA,CAAxB,KACnB,aAAaC,OAAb,CAAsBD,CAAtB,CAFM,EAIND,OAJM,CAIG,QAJH,EAIa;AAAE;AAAsBC,MAAAA,CAAxB,KACnB,aAAaC,OAAb,CAAsBD,CAAtB,CALM,EAOND,OAPM,CAOG,IAPH,EAOS,GAPT,EAQNA,OARM,CAQG,IARH,EAQS,GART,CAAR;AASA;AACD;;AAED,QAAM,CAAEG,eAAF,EAAmBC,aAAnB,IACLzB,2BAA2B,CAAEC,MAAF,CAD5B;AAEA,QAAMyB,YAAY,GACjB,OAAOlC,KAAP,KAAiB,QAAjB,GACGA,KAAK,CACJ6B,OADD,CACUG,eADV,EAC2B,EAD3B,EAECH,OAFD,CAEUI,aAFV,EAEyB,GAFzB,EAGCJ,OAHD,CAGUX,iCAHV,EAG6C,EAH7C,CADH,GAKGlB,KANJ;AAOA,SAAO,CAAEmC,KAAK,CAAEC,UAAU,CAAEF,YAAF,CAAZ,CAAP,IAAyCG,QAAQ,CAAEH,YAAF,CAAxD;AACA","sourcesContent":["/* eslint-disable jsdoc/valid-types */\n/**\n * Determines if a value is null or undefined.\n *\n * @template T\n *\n * @param {T | null | undefined} value The value to check.\n * @return {value is T} Whether value is not null or undefined.\n */\nexport function isValueDefined( value ) {\n\treturn value !== undefined && value !== null;\n}\n/* eslint-enable jsdoc/valid-types */\n\n/* eslint-disable jsdoc/valid-types */\n/**\n * Determines if a value is empty, null, or undefined.\n *\n * @template T\n *\n * @param {T | \"\" | null | undefined} value The value to check.\n * @return {value is T} Whether value is empty.\n */\nexport function isValueEmpty( value ) {\n\tconst isEmptyString = value === '';\n\n\treturn ! isValueDefined( value ) || isEmptyString;\n}\n/* eslint-enable jsdoc/valid-types */\n\n/**\n * Get the first defined/non-null value from an array.\n *\n * @template T\n *\n * @param {Array<T | null | undefined>} values Values to derive from.\n * @param {T} fallbackValue Fallback value if there are no defined values.\n * @return {T} A defined value or the fallback value.\n */\nexport function getDefinedValue( values = [], fallbackValue ) {\n\treturn values.find( isValueDefined ) ?? fallbackValue;\n}\n\n/**\n * @param {string} [locale]\n * @return {[RegExp, RegExp]} The delimiter and decimal regexp\n */\nconst getDelimiterAndDecimalRegex = ( locale ) => {\n\tconst formatted = Intl.NumberFormat( locale ).format( 1000.1 );\n\tconst delimiter = formatted[ 1 ];\n\tconst decimal = formatted[ formatted.length - 2 ];\n\treturn [\n\t\tnew RegExp( `\\\\${ delimiter }`, 'g' ),\n\t\tnew RegExp( `\\\\${ decimal }`, 'g' ),\n\t];\n};\n\n// https://en.wikipedia.org/wiki/Decimal_separator#Current_standards\nconst INTERNATIONAL_THOUSANDS_DELIMITER = / /g;\n\nconst ARABIC_NUMERAL_LOCALES = [ 'ar', 'fa', 'ur', 'ckb', 'ps' ];\n\nconst EASTERN_ARABIC_NUMBERS = /([۰-۹]|[٠-٩])/g;\n\n/**\n * Checks to see if a value is a numeric value (`number` or `string`).\n *\n * Intentionally ignores whether the thousands delimiters are only\n * in the thousands marks.\n *\n * @param {any} value\n * @param {string} [locale]\n * @return {boolean} Whether value is numeric.\n */\nexport function isValueNumeric( value, locale = window.navigator.language ) {\n\tif ( ARABIC_NUMERAL_LOCALES.some( ( l ) => locale.startsWith( l ) ) ) {\n\t\tlocale = 'en-GB';\n\t\tif ( EASTERN_ARABIC_NUMBERS.test( value ) ) {\n\t\t\tvalue = value\n\t\t\t\t.replace( /[٠-٩]/g, ( /** @type {string} */ d ) =>\n\t\t\t\t\t'٠١٢٣٤٥٦٧٨٩'.indexOf( d )\n\t\t\t\t)\n\t\t\t\t.replace( /[۰-۹]/g, ( /** @type {string} */ d ) =>\n\t\t\t\t\t'۰۱۲۳۴۵۶۷۸۹'.indexOf( d )\n\t\t\t\t)\n\t\t\t\t.replace( /٬/g, ',' )\n\t\t\t\t.replace( /٫/g, '.' );\n\t\t}\n\t}\n\n\tconst [ delimiterRegexp, decimalRegexp ] =\n\t\tgetDelimiterAndDecimalRegex( locale );\n\tconst valueToCheck =\n\t\ttypeof value === 'string'\n\t\t\t? value\n\t\t\t\t\t.replace( delimiterRegexp, '' )\n\t\t\t\t\t.replace( decimalRegexp, '.' )\n\t\t\t\t\t.replace( INTERNATIONAL_THOUSANDS_DELIMITER, '' )\n\t\t\t: value;\n\treturn ! isNaN( parseFloat( valueToCheck ) ) && isFinite( valueToCheck );\n}\n"]}
@@ -5,7 +5,7 @@ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefau
5
5
  Object.defineProperty(exports, "__esModule", {
6
6
  value: true
7
7
  });
8
- exports.default = void 0;
8
+ exports.default = exports.ZStack = void 0;
9
9
 
10
10
  var _element = require("@wordpress/element");
11
11
 
@@ -28,7 +28,7 @@ var _styles = require("./styles");
28
28
  /**
29
29
  * Internal dependencies
30
30
  */
31
- function ZStack(props, forwardedRef) {
31
+ function UnconnectedZStack(props, forwardedRef) {
32
32
  const {
33
33
  children,
34
34
  className,
@@ -55,8 +55,27 @@ function ZStack(props, forwardedRef) {
55
55
  ref: forwardedRef
56
56
  }), clonedChildren);
57
57
  }
58
+ /**
59
+ * `ZStack` allows you to stack things along the Z-axis.
60
+ *
61
+ * ```jsx
62
+ * import { __experimentalZStack as ZStack } from '@wordpress/components';
63
+ *
64
+ * function Example() {
65
+ * return (
66
+ * <ZStack offset={ 20 } isLayered>
67
+ * <ExampleImage />
68
+ * <ExampleImage />
69
+ * <ExampleImage />
70
+ * </ZStack>
71
+ * );
72
+ * }
73
+ * ```
74
+ */
58
75
 
59
- var _default = (0, _context.contextConnect)(ZStack, 'ZStack');
60
76
 
77
+ const ZStack = (0, _context.contextConnect)(UnconnectedZStack, 'ZStack');
78
+ exports.ZStack = ZStack;
79
+ var _default = ZStack;
61
80
  exports.default = _default;
62
81
  //# sourceMappingURL=component.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/components/src/z-stack/component.tsx"],"names":["ZStack","props","forwardedRef","children","className","isLayered","isReversed","offset","otherProps","validChildren","childrenLastIndex","length","clonedChildren","map","child","index","zIndex","offsetAmount","key"],"mappings":";;;;;;;;;AAQA;;;;AAKA;;AACA;;AAEA;;AAhBA;AACA;AACA;;AAGA;AACA;AACA;;AAGA;AACA;AACA;AA+BA,SAASA,MAAT,CACCC,KADD,EAECC,YAFD,EAGE;AACD,QAAM;AACLC,IAAAA,QADK;AAELC,IAAAA,SAFK;AAGLC,IAAAA,SAAS,GAAG,IAHP;AAILC,IAAAA,UAAU,GAAG,KAJR;AAKLC,IAAAA,MAAM,GAAG,CALJ;AAML,OAAGC;AANE,MAOF,+BAAkBP,KAAlB,EAAyB,QAAzB,CAPJ;AASA,QAAMQ,aAAa,GAAG,wCAAkBN,QAAlB,CAAtB;AACA,QAAMO,iBAAiB,GAAGD,aAAa,CAACE,MAAd,GAAuB,CAAjD;AAEA,QAAMC,cAAc,GAAGH,aAAa,CAACI,GAAd,CAAmB,CAAEC,KAAF,EAASC,KAAT,KAAoB;AAC7D,UAAMC,MAAM,GAAGV,UAAU,GAAGI,iBAAiB,GAAGK,KAAvB,GAA+BA,KAAxD;AACA,UAAME,YAAY,GAAGV,MAAM,GAAGQ,KAA9B;AAEA,UAAMG,GAAG,GAAG,6BAAgBJ,KAAhB,IAA0BA,KAAK,CAACI,GAAhC,GAAsCH,KAAlD;AAEA,WACC,4BAAC,uBAAD;AACC,MAAA,SAAS,EAAGV,SADb;AAEC,MAAA,YAAY,EAAGY,YAFhB;AAGC,MAAA,MAAM,EAAGD,MAHV;AAIC,MAAA,GAAG,EAAGE;AAJP,OAMGJ,KANH,CADD;AAUA,GAhBsB,CAAvB;AAkBA,SACC,4BAAC,kBAAD,6BACMN,UADN;AAEC,IAAA,SAAS,EAAGJ,SAFb;AAGC,IAAA,GAAG,EAAGF;AAHP,MAKGU,cALH,CADD;AASA;;eAEc,6BAAgBZ,MAAhB,EAAwB,QAAxB,C","sourcesContent":["/**\n * External dependencies\n */\nimport type { ForwardedRef, ReactNode } from 'react';\n\n/**\n * WordPress dependencies\n */\nimport { isValidElement } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport { getValidChildren } from '../ui/utils/get-valid-children';\nimport { contextConnect, useContextSystem } from '../ui/context';\nimport type { WordPressComponentProps } from '../ui/context';\nimport { ZStackView, ZStackChildView } from './styles';\n\nexport interface ZStackProps {\n\t/**\n\t * Layers children elements on top of each other (first: highest z-index, last: lowest z-index).\n\t *\n\t * @default true\n\t */\n\tisLayered?: boolean;\n\t/**\n\t * Reverse the layer ordering (first: lowest z-index, last: highest z-index).\n\t *\n\t * @default false\n\t */\n\tisReversed?: boolean;\n\t/**\n\t * The amount of offset between each child element. The amount of space between each child element. Defaults to `0`. Its value is automatically inverted (i.e. from positive to negative, and viceversa) when switching from LTR to RTL.\n\t *\n\t * @default 0\n\t */\n\toffset?: number;\n\t/**\n\t * Child elements.\n\t */\n\tchildren: ReactNode;\n}\n\nfunction ZStack(\n\tprops: WordPressComponentProps< ZStackProps, 'div' >,\n\tforwardedRef: ForwardedRef< any >\n) {\n\tconst {\n\t\tchildren,\n\t\tclassName,\n\t\tisLayered = true,\n\t\tisReversed = false,\n\t\toffset = 0,\n\t\t...otherProps\n\t} = useContextSystem( props, 'ZStack' );\n\n\tconst validChildren = getValidChildren( children );\n\tconst childrenLastIndex = validChildren.length - 1;\n\n\tconst clonedChildren = validChildren.map( ( child, index ) => {\n\t\tconst zIndex = isReversed ? childrenLastIndex - index : index;\n\t\tconst offsetAmount = offset * index;\n\n\t\tconst key = isValidElement( child ) ? child.key : index;\n\n\t\treturn (\n\t\t\t<ZStackChildView\n\t\t\t\tisLayered={ isLayered }\n\t\t\t\toffsetAmount={ offsetAmount }\n\t\t\t\tzIndex={ zIndex }\n\t\t\t\tkey={ key }\n\t\t\t>\n\t\t\t\t{ child }\n\t\t\t</ZStackChildView>\n\t\t);\n\t} );\n\n\treturn (\n\t\t<ZStackView\n\t\t\t{ ...otherProps }\n\t\t\tclassName={ className }\n\t\t\tref={ forwardedRef }\n\t\t>\n\t\t\t{ clonedChildren }\n\t\t</ZStackView>\n\t);\n}\n\nexport default contextConnect( ZStack, 'ZStack' );\n"]}
1
+ {"version":3,"sources":["@wordpress/components/src/z-stack/component.tsx"],"names":["UnconnectedZStack","props","forwardedRef","children","className","isLayered","isReversed","offset","otherProps","validChildren","childrenLastIndex","length","clonedChildren","map","child","index","zIndex","offsetAmount","key","ZStack"],"mappings":";;;;;;;;;AAQA;;;;AAKA;;AACA;;AACA;;AAfA;AACA;AACA;;AAGA;AACA;AACA;;AAGA;AACA;AACA;AAOA,SAASA,iBAAT,CACCC,KADD,EAECC,YAFD,EAGE;AACD,QAAM;AACLC,IAAAA,QADK;AAELC,IAAAA,SAFK;AAGLC,IAAAA,SAAS,GAAG,IAHP;AAILC,IAAAA,UAAU,GAAG,KAJR;AAKLC,IAAAA,MAAM,GAAG,CALJ;AAML,OAAGC;AANE,MAOF,+BAAkBP,KAAlB,EAAyB,QAAzB,CAPJ;AASA,QAAMQ,aAAa,GAAG,wCAAkBN,QAAlB,CAAtB;AACA,QAAMO,iBAAiB,GAAGD,aAAa,CAACE,MAAd,GAAuB,CAAjD;AAEA,QAAMC,cAAc,GAAGH,aAAa,CAACI,GAAd,CAAmB,CAAEC,KAAF,EAASC,KAAT,KAAoB;AAC7D,UAAMC,MAAM,GAAGV,UAAU,GAAGI,iBAAiB,GAAGK,KAAvB,GAA+BA,KAAxD;AACA,UAAME,YAAY,GAAGV,MAAM,GAAGQ,KAA9B;AAEA,UAAMG,GAAG,GAAG,6BAAgBJ,KAAhB,IAA0BA,KAAK,CAACI,GAAhC,GAAsCH,KAAlD;AAEA,WACC,4BAAC,uBAAD;AACC,MAAA,SAAS,EAAGV,SADb;AAEC,MAAA,YAAY,EAAGY,YAFhB;AAGC,MAAA,MAAM,EAAGD,MAHV;AAIC,MAAA,GAAG,EAAGE;AAJP,OAMGJ,KANH,CADD;AAUA,GAhBsB,CAAvB;AAkBA,SACC,4BAAC,kBAAD,6BACMN,UADN;AAEC,IAAA,SAAS,EAAGJ,SAFb;AAGC,IAAA,GAAG,EAAGF;AAHP,MAKGU,cALH,CADD;AASA;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;;AACO,MAAMO,MAAM,GAAG,6BAAgBnB,iBAAhB,EAAmC,QAAnC,CAAf;;eAEQmB,M","sourcesContent":["/**\n * External dependencies\n */\nimport type { ForwardedRef } from 'react';\n\n/**\n * WordPress dependencies\n */\nimport { isValidElement } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport { getValidChildren } from '../ui/utils/get-valid-children';\nimport { contextConnect, useContextSystem } from '../ui/context';\nimport { ZStackView, ZStackChildView } from './styles';\nimport type { ZStackProps } from './types';\nimport type { WordPressComponentProps } from '../ui/context';\n\nfunction UnconnectedZStack(\n\tprops: WordPressComponentProps< ZStackProps, 'div' >,\n\tforwardedRef: ForwardedRef< any >\n) {\n\tconst {\n\t\tchildren,\n\t\tclassName,\n\t\tisLayered = true,\n\t\tisReversed = false,\n\t\toffset = 0,\n\t\t...otherProps\n\t} = useContextSystem( props, 'ZStack' );\n\n\tconst validChildren = getValidChildren( children );\n\tconst childrenLastIndex = validChildren.length - 1;\n\n\tconst clonedChildren = validChildren.map( ( child, index ) => {\n\t\tconst zIndex = isReversed ? childrenLastIndex - index : index;\n\t\tconst offsetAmount = offset * index;\n\n\t\tconst key = isValidElement( child ) ? child.key : index;\n\n\t\treturn (\n\t\t\t<ZStackChildView\n\t\t\t\tisLayered={ isLayered }\n\t\t\t\toffsetAmount={ offsetAmount }\n\t\t\t\tzIndex={ zIndex }\n\t\t\t\tkey={ key }\n\t\t\t>\n\t\t\t\t{ child }\n\t\t\t</ZStackChildView>\n\t\t);\n\t} );\n\n\treturn (\n\t\t<ZStackView\n\t\t\t{ ...otherProps }\n\t\t\tclassName={ className }\n\t\t\tref={ forwardedRef }\n\t\t>\n\t\t\t{ clonedChildren }\n\t\t</ZStackView>\n\t);\n}\n\n/**\n * `ZStack` allows you to stack things along the Z-axis.\n *\n * ```jsx\n * import { __experimentalZStack as ZStack } from '@wordpress/components';\n *\n * function Example() {\n * return (\n * <ZStack offset={ 20 } isLayered>\n * <ExampleImage />\n * <ExampleImage />\n * <ExampleImage />\n * </ZStack>\n * );\n * }\n * ```\n */\nexport const ZStack = contextConnect( UnconnectedZStack, 'ZStack' );\n\nexport default ZStack;\n"]}
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"names":[],"mappings":"","sourcesContent":[]}
@@ -4,7 +4,6 @@ import { createElement } from "@wordpress/element";
4
4
  /**
5
5
  * External dependencies
6
6
  */
7
- import { noop } from 'lodash';
8
7
  import classnames from 'classnames';
9
8
  /**
10
9
  * WordPress dependencies
@@ -23,6 +22,8 @@ import { Root, Row } from './styles/alignment-matrix-control-styles';
23
22
  import AlignmentMatrixControlIcon from './icon';
24
23
  import { GRID, getItemId } from './utils';
25
24
 
25
+ const noop = () => {};
26
+
26
27
  function useBaseId(id) {
27
28
  const instanceId = useInstanceId(AlignmentMatrixControl, 'alignment-matrix-control');
28
29
  return id || instanceId;
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/components/src/alignment-matrix-control/index.js"],"names":["noop","classnames","__","isRTL","useInstanceId","useState","useEffect","Cell","Composite","CompositeGroup","useCompositeState","Root","Row","AlignmentMatrixControlIcon","GRID","getItemId","useBaseId","id","instanceId","AlignmentMatrixControl","className","label","defaultValue","value","onChange","width","props","immutableDefaultValue","baseId","initialCurrentId","composite","currentId","rtl","handleOnChange","nextValue","setCurrentId","classes","map","cells","index","cell","cellId","isActive","Icon"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport { noop } from 'lodash';\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { __, isRTL } from '@wordpress/i18n';\nimport { useInstanceId } from '@wordpress/compose';\nimport { useState, useEffect } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport Cell from './cell';\nimport { Composite, CompositeGroup, useCompositeState } from '../composite';\nimport { Root, Row } from './styles/alignment-matrix-control-styles';\nimport AlignmentMatrixControlIcon from './icon';\nimport { GRID, getItemId } from './utils';\n\nfunction useBaseId( id ) {\n\tconst instanceId = useInstanceId(\n\t\tAlignmentMatrixControl,\n\t\t'alignment-matrix-control'\n\t);\n\n\treturn id || instanceId;\n}\n\nexport default function AlignmentMatrixControl( {\n\tclassName,\n\tid,\n\tlabel = __( 'Alignment Matrix Control' ),\n\tdefaultValue = 'center center',\n\tvalue,\n\tonChange = noop,\n\twidth = 92,\n\t...props\n} ) {\n\tconst [ immutableDefaultValue ] = useState( value ?? defaultValue );\n\tconst baseId = useBaseId( id );\n\tconst initialCurrentId = getItemId( baseId, immutableDefaultValue );\n\n\tconst composite = useCompositeState( {\n\t\tbaseId,\n\t\tcurrentId: initialCurrentId,\n\t\trtl: isRTL(),\n\t} );\n\n\tconst handleOnChange = ( nextValue ) => {\n\t\tonChange( nextValue );\n\t};\n\n\tconst { setCurrentId } = composite;\n\n\tuseEffect( () => {\n\t\tif ( typeof value !== 'undefined' ) {\n\t\t\tsetCurrentId( getItemId( baseId, value ) );\n\t\t}\n\t}, [ value, setCurrentId, baseId ] );\n\n\tconst classes = classnames(\n\t\t'component-alignment-matrix-control',\n\t\tclassName\n\t);\n\n\treturn (\n\t\t<Composite\n\t\t\t{ ...props }\n\t\t\t{ ...composite }\n\t\t\taria-label={ label }\n\t\t\tas={ Root }\n\t\t\tclassName={ classes }\n\t\t\trole=\"grid\"\n\t\t\twidth={ width }\n\t\t>\n\t\t\t{ GRID.map( ( cells, index ) => (\n\t\t\t\t<CompositeGroup\n\t\t\t\t\t{ ...composite }\n\t\t\t\t\tas={ Row }\n\t\t\t\t\trole=\"row\"\n\t\t\t\t\tkey={ index }\n\t\t\t\t>\n\t\t\t\t\t{ cells.map( ( cell ) => {\n\t\t\t\t\t\tconst cellId = getItemId( baseId, cell );\n\t\t\t\t\t\tconst isActive = composite.currentId === cellId;\n\n\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t<Cell\n\t\t\t\t\t\t\t\t{ ...composite }\n\t\t\t\t\t\t\t\tid={ cellId }\n\t\t\t\t\t\t\t\tisActive={ isActive }\n\t\t\t\t\t\t\t\tkey={ cell }\n\t\t\t\t\t\t\t\tvalue={ cell }\n\t\t\t\t\t\t\t\tonFocus={ () => handleOnChange( cell ) }\n\t\t\t\t\t\t\t\ttabIndex={ isActive ? 0 : -1 }\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</CompositeGroup>\n\t\t\t) ) }\n\t\t</Composite>\n\t);\n}\n\nAlignmentMatrixControl.Icon = AlignmentMatrixControlIcon;\n"]}
1
+ {"version":3,"sources":["@wordpress/components/src/alignment-matrix-control/index.js"],"names":["classnames","__","isRTL","useInstanceId","useState","useEffect","Cell","Composite","CompositeGroup","useCompositeState","Root","Row","AlignmentMatrixControlIcon","GRID","getItemId","noop","useBaseId","id","instanceId","AlignmentMatrixControl","className","label","defaultValue","value","onChange","width","props","immutableDefaultValue","baseId","initialCurrentId","composite","currentId","rtl","handleOnChange","nextValue","setCurrentId","classes","map","cells","index","cell","cellId","isActive","Icon"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { __, isRTL } from '@wordpress/i18n';\nimport { useInstanceId } from '@wordpress/compose';\nimport { useState, useEffect } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport Cell from './cell';\nimport { Composite, CompositeGroup, useCompositeState } from '../composite';\nimport { Root, Row } from './styles/alignment-matrix-control-styles';\nimport AlignmentMatrixControlIcon from './icon';\nimport { GRID, getItemId } from './utils';\n\nconst noop = () => {};\n\nfunction useBaseId( id ) {\n\tconst instanceId = useInstanceId(\n\t\tAlignmentMatrixControl,\n\t\t'alignment-matrix-control'\n\t);\n\n\treturn id || instanceId;\n}\n\nexport default function AlignmentMatrixControl( {\n\tclassName,\n\tid,\n\tlabel = __( 'Alignment Matrix Control' ),\n\tdefaultValue = 'center center',\n\tvalue,\n\tonChange = noop,\n\twidth = 92,\n\t...props\n} ) {\n\tconst [ immutableDefaultValue ] = useState( value ?? defaultValue );\n\tconst baseId = useBaseId( id );\n\tconst initialCurrentId = getItemId( baseId, immutableDefaultValue );\n\n\tconst composite = useCompositeState( {\n\t\tbaseId,\n\t\tcurrentId: initialCurrentId,\n\t\trtl: isRTL(),\n\t} );\n\n\tconst handleOnChange = ( nextValue ) => {\n\t\tonChange( nextValue );\n\t};\n\n\tconst { setCurrentId } = composite;\n\n\tuseEffect( () => {\n\t\tif ( typeof value !== 'undefined' ) {\n\t\t\tsetCurrentId( getItemId( baseId, value ) );\n\t\t}\n\t}, [ value, setCurrentId, baseId ] );\n\n\tconst classes = classnames(\n\t\t'component-alignment-matrix-control',\n\t\tclassName\n\t);\n\n\treturn (\n\t\t<Composite\n\t\t\t{ ...props }\n\t\t\t{ ...composite }\n\t\t\taria-label={ label }\n\t\t\tas={ Root }\n\t\t\tclassName={ classes }\n\t\t\trole=\"grid\"\n\t\t\twidth={ width }\n\t\t>\n\t\t\t{ GRID.map( ( cells, index ) => (\n\t\t\t\t<CompositeGroup\n\t\t\t\t\t{ ...composite }\n\t\t\t\t\tas={ Row }\n\t\t\t\t\trole=\"row\"\n\t\t\t\t\tkey={ index }\n\t\t\t\t>\n\t\t\t\t\t{ cells.map( ( cell ) => {\n\t\t\t\t\t\tconst cellId = getItemId( baseId, cell );\n\t\t\t\t\t\tconst isActive = composite.currentId === cellId;\n\n\t\t\t\t\t\treturn (\n\t\t\t\t\t\t\t<Cell\n\t\t\t\t\t\t\t\t{ ...composite }\n\t\t\t\t\t\t\t\tid={ cellId }\n\t\t\t\t\t\t\t\tisActive={ isActive }\n\t\t\t\t\t\t\t\tkey={ cell }\n\t\t\t\t\t\t\t\tvalue={ cell }\n\t\t\t\t\t\t\t\tonFocus={ () => handleOnChange( cell ) }\n\t\t\t\t\t\t\t\ttabIndex={ isActive ? 0 : -1 }\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</CompositeGroup>\n\t\t\t) ) }\n\t\t</Composite>\n\t);\n}\n\nAlignmentMatrixControl.Icon = AlignmentMatrixControlIcon;\n"]}
@@ -14,7 +14,7 @@ import { __ } from '@wordpress/i18n';
14
14
  */
15
15
 
16
16
  import { FlexBlock, FlexItem } from '../flex';
17
- import NumberControl from '../input-control';
17
+ import NumberControl from '../number-control';
18
18
  import AngleCircle from './angle-circle';
19
19
  import { Root } from './styles/angle-picker-control-styles';
20
20
  import { space } from '../ui/utils/space';
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/components/src/angle-picker-control/index.js"],"names":["classnames","__","FlexBlock","FlexItem","NumberControl","AngleCircle","Root","space","Text","Spacer","AnglePickerControl","className","label","onChange","value","handleOnNumberChange","unprocessedValue","inputValue","parseInt","classes","color","marginLeft","marginBottom","marginTop"],"mappings":";;AAAA;AACA;AACA;AACA,OAAOA,UAAP,MAAuB,YAAvB;AAEA;AACA;AACA;;AACA,SAASC,EAAT,QAAmB,iBAAnB;AAEA;AACA;AACA;;AACA,SAASC,SAAT,EAAoBC,QAApB,QAAoC,SAApC;AACA,OAAOC,aAAP,MAA0B,kBAA1B;AACA,OAAOC,WAAP,MAAwB,gBAAxB;AACA,SAASC,IAAT,QAAqB,sCAArB;AACA,SAASC,KAAT,QAAsB,mBAAtB;AACA,SAASC,IAAT,QAAqB,SAArB;AACA,SAASC,MAAT,QAAuB,WAAvB;AAEA,eAAe,SAASC,kBAAT,OAKX;AAAA,MALwC;AAC3CC,IAAAA,SAD2C;AAE3CC,IAAAA,KAAK,GAAGX,EAAE,CAAE,OAAF,CAFiC;AAG3CY,IAAAA,QAH2C;AAI3CC,IAAAA;AAJ2C,GAKxC;;AACH,QAAMC,oBAAoB,GAAKC,gBAAF,IAAwB;AACpD,UAAMC,UAAU,GACfD,gBAAgB,KAAK,EAArB,GAA0BE,QAAQ,CAAEF,gBAAF,EAAoB,EAApB,CAAlC,GAA6D,CAD9D;AAEAH,IAAAA,QAAQ,CAAEI,UAAF,CAAR;AACA,GAJD;;AAMA,QAAME,OAAO,GAAGnB,UAAU,CAAE,iCAAF,EAAqCW,SAArC,CAA1B;AAEA,SACC,cAAC,IAAD;AAAM,IAAA,SAAS,EAAGQ;AAAlB,KACC,cAAC,SAAD,QACC,cAAC,aAAD;AACC,IAAA,KAAK,EAAGP,KADT;AAEC,IAAA,SAAS,EAAC,8CAFX;AAGC,IAAA,GAAG,EAAG,GAHP;AAIC,IAAA,GAAG,EAAG,CAJP;AAKC,IAAA,QAAQ,EAAGG,oBALZ;AAMC,IAAA,IAAI,EAAC,kBANN;AAOC,IAAA,IAAI,EAAC,GAPN;AAQC,IAAA,KAAK,EAAGD,KART;AASC,IAAA,cAAc,MATf;AAUC,IAAA,MAAM,EACL,cAAC,MAAD;AACC,MAAA,EAAE,EAAGN,IADN;AAEC,MAAA,YAAY,EAAG,CAFhB;AAGC,MAAA,WAAW,EAAGD,KAAK,CAAE,CAAF,CAHpB;AAIC,MAAA,KAAK,EAAG;AACPa,QAAAA,KAAK,EAAE;AADA;AAJT;AAXF,IADD,CADD,EA0BC,cAAC,QAAD;AACC,IAAA,KAAK,EAAG;AACPC,MAAAA,UAAU,EAAEd,KAAK,CAAE,CAAF,CADV;AAEPe,MAAAA,YAAY,EAAEf,KAAK,CAAE,CAAF,CAFZ;AAGPgB,MAAAA,SAAS,EAAE;AAHJ;AADT,KAOC,cAAC,WAAD;AACC,mBAAY,MADb;AAEC,IAAA,KAAK,EAAGT,KAFT;AAGC,IAAA,QAAQ,EAAGD;AAHZ,IAPD,CA1BD,CADD;AA0CA","sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport { FlexBlock, FlexItem } from '../flex';\nimport NumberControl from '../input-control';\nimport AngleCircle from './angle-circle';\nimport { Root } from './styles/angle-picker-control-styles';\nimport { space } from '../ui/utils/space';\nimport { Text } from '../text';\nimport { Spacer } from '../spacer';\n\nexport default function AnglePickerControl( {\n\tclassName,\n\tlabel = __( 'Angle' ),\n\tonChange,\n\tvalue,\n} ) {\n\tconst handleOnNumberChange = ( unprocessedValue ) => {\n\t\tconst inputValue =\n\t\t\tunprocessedValue !== '' ? parseInt( unprocessedValue, 10 ) : 0;\n\t\tonChange( inputValue );\n\t};\n\n\tconst classes = classnames( 'components-angle-picker-control', className );\n\n\treturn (\n\t\t<Root className={ classes }>\n\t\t\t<FlexBlock>\n\t\t\t\t<NumberControl\n\t\t\t\t\tlabel={ label }\n\t\t\t\t\tclassName=\"components-angle-picker-control__input-field\"\n\t\t\t\t\tmax={ 360 }\n\t\t\t\t\tmin={ 0 }\n\t\t\t\t\tonChange={ handleOnNumberChange }\n\t\t\t\t\tsize=\"__unstable-large\"\n\t\t\t\t\tstep=\"1\"\n\t\t\t\t\tvalue={ value }\n\t\t\t\t\thideHTMLArrows\n\t\t\t\t\tsuffix={\n\t\t\t\t\t\t<Spacer\n\t\t\t\t\t\t\tas={ Text }\n\t\t\t\t\t\t\tmarginBottom={ 0 }\n\t\t\t\t\t\t\tmarginRight={ space( 3 ) }\n\t\t\t\t\t\t\tstyle={ {\n\t\t\t\t\t\t\t\tcolor: 'var( --wp-admin-theme-color )',\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t°\n\t\t\t\t\t\t</Spacer>\n\t\t\t\t\t}\n\t\t\t\t/>\n\t\t\t</FlexBlock>\n\t\t\t<FlexItem\n\t\t\t\tstyle={ {\n\t\t\t\t\tmarginLeft: space( 4 ),\n\t\t\t\t\tmarginBottom: space( 1 ),\n\t\t\t\t\tmarginTop: 'auto',\n\t\t\t\t} }\n\t\t\t>\n\t\t\t\t<AngleCircle\n\t\t\t\t\taria-hidden=\"true\"\n\t\t\t\t\tvalue={ value }\n\t\t\t\t\tonChange={ onChange }\n\t\t\t\t/>\n\t\t\t</FlexItem>\n\t\t</Root>\n\t);\n}\n"]}
1
+ {"version":3,"sources":["@wordpress/components/src/angle-picker-control/index.js"],"names":["classnames","__","FlexBlock","FlexItem","NumberControl","AngleCircle","Root","space","Text","Spacer","AnglePickerControl","className","label","onChange","value","handleOnNumberChange","unprocessedValue","inputValue","parseInt","classes","color","marginLeft","marginBottom","marginTop"],"mappings":";;AAAA;AACA;AACA;AACA,OAAOA,UAAP,MAAuB,YAAvB;AAEA;AACA;AACA;;AACA,SAASC,EAAT,QAAmB,iBAAnB;AAEA;AACA;AACA;;AACA,SAASC,SAAT,EAAoBC,QAApB,QAAoC,SAApC;AACA,OAAOC,aAAP,MAA0B,mBAA1B;AACA,OAAOC,WAAP,MAAwB,gBAAxB;AACA,SAASC,IAAT,QAAqB,sCAArB;AACA,SAASC,KAAT,QAAsB,mBAAtB;AACA,SAASC,IAAT,QAAqB,SAArB;AACA,SAASC,MAAT,QAAuB,WAAvB;AAEA,eAAe,SAASC,kBAAT,OAKX;AAAA,MALwC;AAC3CC,IAAAA,SAD2C;AAE3CC,IAAAA,KAAK,GAAGX,EAAE,CAAE,OAAF,CAFiC;AAG3CY,IAAAA,QAH2C;AAI3CC,IAAAA;AAJ2C,GAKxC;;AACH,QAAMC,oBAAoB,GAAKC,gBAAF,IAAwB;AACpD,UAAMC,UAAU,GACfD,gBAAgB,KAAK,EAArB,GAA0BE,QAAQ,CAAEF,gBAAF,EAAoB,EAApB,CAAlC,GAA6D,CAD9D;AAEAH,IAAAA,QAAQ,CAAEI,UAAF,CAAR;AACA,GAJD;;AAMA,QAAME,OAAO,GAAGnB,UAAU,CAAE,iCAAF,EAAqCW,SAArC,CAA1B;AAEA,SACC,cAAC,IAAD;AAAM,IAAA,SAAS,EAAGQ;AAAlB,KACC,cAAC,SAAD,QACC,cAAC,aAAD;AACC,IAAA,KAAK,EAAGP,KADT;AAEC,IAAA,SAAS,EAAC,8CAFX;AAGC,IAAA,GAAG,EAAG,GAHP;AAIC,IAAA,GAAG,EAAG,CAJP;AAKC,IAAA,QAAQ,EAAGG,oBALZ;AAMC,IAAA,IAAI,EAAC,kBANN;AAOC,IAAA,IAAI,EAAC,GAPN;AAQC,IAAA,KAAK,EAAGD,KART;AASC,IAAA,cAAc,MATf;AAUC,IAAA,MAAM,EACL,cAAC,MAAD;AACC,MAAA,EAAE,EAAGN,IADN;AAEC,MAAA,YAAY,EAAG,CAFhB;AAGC,MAAA,WAAW,EAAGD,KAAK,CAAE,CAAF,CAHpB;AAIC,MAAA,KAAK,EAAG;AACPa,QAAAA,KAAK,EAAE;AADA;AAJT;AAXF,IADD,CADD,EA0BC,cAAC,QAAD;AACC,IAAA,KAAK,EAAG;AACPC,MAAAA,UAAU,EAAEd,KAAK,CAAE,CAAF,CADV;AAEPe,MAAAA,YAAY,EAAEf,KAAK,CAAE,CAAF,CAFZ;AAGPgB,MAAAA,SAAS,EAAE;AAHJ;AADT,KAOC,cAAC,WAAD;AACC,mBAAY,MADb;AAEC,IAAA,KAAK,EAAGT,KAFT;AAGC,IAAA,QAAQ,EAAGD;AAHZ,IAPD,CA1BD,CADD;AA0CA","sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport { FlexBlock, FlexItem } from '../flex';\nimport NumberControl from '../number-control';\nimport AngleCircle from './angle-circle';\nimport { Root } from './styles/angle-picker-control-styles';\nimport { space } from '../ui/utils/space';\nimport { Text } from '../text';\nimport { Spacer } from '../spacer';\n\nexport default function AnglePickerControl( {\n\tclassName,\n\tlabel = __( 'Angle' ),\n\tonChange,\n\tvalue,\n} ) {\n\tconst handleOnNumberChange = ( unprocessedValue ) => {\n\t\tconst inputValue =\n\t\t\tunprocessedValue !== '' ? parseInt( unprocessedValue, 10 ) : 0;\n\t\tonChange( inputValue );\n\t};\n\n\tconst classes = classnames( 'components-angle-picker-control', className );\n\n\treturn (\n\t\t<Root className={ classes }>\n\t\t\t<FlexBlock>\n\t\t\t\t<NumberControl\n\t\t\t\t\tlabel={ label }\n\t\t\t\t\tclassName=\"components-angle-picker-control__input-field\"\n\t\t\t\t\tmax={ 360 }\n\t\t\t\t\tmin={ 0 }\n\t\t\t\t\tonChange={ handleOnNumberChange }\n\t\t\t\t\tsize=\"__unstable-large\"\n\t\t\t\t\tstep=\"1\"\n\t\t\t\t\tvalue={ value }\n\t\t\t\t\thideHTMLArrows\n\t\t\t\t\tsuffix={\n\t\t\t\t\t\t<Spacer\n\t\t\t\t\t\t\tas={ Text }\n\t\t\t\t\t\t\tmarginBottom={ 0 }\n\t\t\t\t\t\t\tmarginRight={ space( 3 ) }\n\t\t\t\t\t\t\tstyle={ {\n\t\t\t\t\t\t\t\tcolor: 'var( --wp-admin-theme-color )',\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t°\n\t\t\t\t\t\t</Spacer>\n\t\t\t\t\t}\n\t\t\t\t/>\n\t\t\t</FlexBlock>\n\t\t\t<FlexItem\n\t\t\t\tstyle={ {\n\t\t\t\t\tmarginLeft: space( 4 ),\n\t\t\t\t\tmarginBottom: space( 1 ),\n\t\t\t\t\tmarginTop: 'auto',\n\t\t\t\t} }\n\t\t\t>\n\t\t\t\t<AngleCircle\n\t\t\t\t\taria-hidden=\"true\"\n\t\t\t\t\tvalue={ value }\n\t\t\t\t\tonChange={ onChange }\n\t\t\t\t/>\n\t\t\t</FlexItem>\n\t\t</Root>\n\t);\n}\n"]}
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/components/src/border-box-control/border-box-control-linked-button/component.tsx"],"names":["link","linkOff","__","Button","Tooltip","View","contextConnect","useBorderBoxControlLinkedButton","BorderBoxControlLinkedButton","props","forwardedRef","className","isLinked","buttonProps","label","ConnectedBorderBoxControlLinkedButton"],"mappings":";;;AAAA;AACA;AACA;AACA,SAASA,IAAT,EAAeC,OAAf,QAA8B,kBAA9B;AACA,SAASC,EAAT,QAAmB,iBAAnB;AAEA;AACA;AACA;;AACA,OAAOC,MAAP,MAAmB,cAAnB;AACA,OAAOC,OAAP,MAAoB,eAApB;AACA,SAASC,IAAT,QAAqB,YAArB;AACA,SAASC,cAAT,QAAwD,kBAAxD;AACA,SAASC,+BAAT,QAAgD,QAAhD;;AAIA,MAAMC,4BAA4B,GAAG,CACpCC,KADoC,EAEpCC,YAFoC,KAGhC;AACJ,QAAM;AACLC,IAAAA,SADK;AAELC,IAAAA,QAFK;AAGL,OAAGC;AAHE,MAIFN,+BAA+B,CAAEE,KAAF,CAJnC;AAKA,QAAMK,KAAK,GAAGF,QAAQ,GAAGV,EAAE,CAAE,cAAF,CAAL,GAA0BA,EAAE,CAAE,YAAF,CAAlD;AAEA,SACC,cAAC,OAAD;AAAS,IAAA,IAAI,EAAGY;AAAhB,KACC,cAAC,IAAD;AAAM,IAAA,SAAS,EAAGH;AAAlB,KACC,cAAC,MAAD,eACME,WADN;AAEC,IAAA,OAAO,EAAGD,QAAQ,GAAG,SAAH,GAAe,WAFlC;AAGC,IAAA,OAAO,MAHR;AAIC,IAAA,IAAI,EAAGA,QAAQ,GAAGZ,IAAH,GAAUC,OAJ1B;AAKC,IAAA,QAAQ,EAAG,EALZ;AAMC,kBAAaa,KANd;AAOC,IAAA,GAAG,EAAGJ;AAPP,KADD,CADD,CADD;AAeA,CA1BD;;AA4BA,MAAMK,qCAAqC,GAAGT,cAAc,CAC3DE,4BAD2D,EAE3D,8BAF2D,CAA5D;AAIA,eAAeO,qCAAf","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { link, linkOff } from '@wordpress/icons';\nimport { __ } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport Button from '../../button';\nimport Tooltip from '../../tooltip';\nimport { View } from '../../view';\nimport { contextConnect, WordPressComponentProps } from '../../ui/context';\nimport { useBorderBoxControlLinkedButton } from './hook';\n\nimport type { LinkedButtonProps } from '../types';\n\nconst BorderBoxControlLinkedButton = (\n\tprops: WordPressComponentProps< LinkedButtonProps, 'div' >,\n\tforwardedRef: React.ForwardedRef< any >\n) => {\n\tconst {\n\t\tclassName,\n\t\tisLinked,\n\t\t...buttonProps\n\t} = useBorderBoxControlLinkedButton( props );\n\tconst label = isLinked ? __( 'Unlink sides' ) : __( 'Link sides' );\n\n\treturn (\n\t\t<Tooltip text={ label }>\n\t\t\t<View className={ className }>\n\t\t\t\t<Button\n\t\t\t\t\t{ ...buttonProps }\n\t\t\t\t\tvariant={ isLinked ? 'primary' : 'secondary' }\n\t\t\t\t\tisSmall\n\t\t\t\t\ticon={ isLinked ? link : linkOff }\n\t\t\t\t\ticonSize={ 16 }\n\t\t\t\t\taria-label={ label }\n\t\t\t\t\tref={ forwardedRef }\n\t\t\t\t/>\n\t\t\t</View>\n\t\t</Tooltip>\n\t);\n};\n\nconst ConnectedBorderBoxControlLinkedButton = contextConnect(\n\tBorderBoxControlLinkedButton,\n\t'BorderBoxControlLinkedButton'\n);\nexport default ConnectedBorderBoxControlLinkedButton;\n"]}
1
+ {"version":3,"sources":["@wordpress/components/src/border-box-control/border-box-control-linked-button/component.tsx"],"names":["link","linkOff","__","Button","Tooltip","View","contextConnect","useBorderBoxControlLinkedButton","BorderBoxControlLinkedButton","props","forwardedRef","className","isLinked","buttonProps","label","ConnectedBorderBoxControlLinkedButton"],"mappings":";;;AAAA;AACA;AACA;AACA,SAASA,IAAT,EAAeC,OAAf,QAA8B,kBAA9B;AACA,SAASC,EAAT,QAAmB,iBAAnB;AAEA;AACA;AACA;;AACA,OAAOC,MAAP,MAAmB,cAAnB;AACA,OAAOC,OAAP,MAAoB,eAApB;AACA,SAASC,IAAT,QAAqB,YAArB;AACA,SAASC,cAAT,QAAwD,kBAAxD;AACA,SAASC,+BAAT,QAAgD,QAAhD;;AAIA,MAAMC,4BAA4B,GAAG,CACpCC,KADoC,EAEpCC,YAFoC,KAGhC;AACJ,QAAM;AAAEC,IAAAA,SAAF;AAAaC,IAAAA,QAAb;AAAuB,OAAGC;AAA1B,MACLN,+BAA+B,CAAEE,KAAF,CADhC;AAEA,QAAMK,KAAK,GAAGF,QAAQ,GAAGV,EAAE,CAAE,cAAF,CAAL,GAA0BA,EAAE,CAAE,YAAF,CAAlD;AAEA,SACC,cAAC,OAAD;AAAS,IAAA,IAAI,EAAGY;AAAhB,KACC,cAAC,IAAD;AAAM,IAAA,SAAS,EAAGH;AAAlB,KACC,cAAC,MAAD,eACME,WADN;AAEC,IAAA,OAAO,EAAGD,QAAQ,GAAG,SAAH,GAAe,WAFlC;AAGC,IAAA,OAAO,MAHR;AAIC,IAAA,IAAI,EAAGA,QAAQ,GAAGZ,IAAH,GAAUC,OAJ1B;AAKC,IAAA,QAAQ,EAAG,EALZ;AAMC,kBAAaa,KANd;AAOC,IAAA,GAAG,EAAGJ;AAPP,KADD,CADD,CADD;AAeA,CAvBD;;AAyBA,MAAMK,qCAAqC,GAAGT,cAAc,CAC3DE,4BAD2D,EAE3D,8BAF2D,CAA5D;AAIA,eAAeO,qCAAf","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { link, linkOff } from '@wordpress/icons';\nimport { __ } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport Button from '../../button';\nimport Tooltip from '../../tooltip';\nimport { View } from '../../view';\nimport { contextConnect, WordPressComponentProps } from '../../ui/context';\nimport { useBorderBoxControlLinkedButton } from './hook';\n\nimport type { LinkedButtonProps } from '../types';\n\nconst BorderBoxControlLinkedButton = (\n\tprops: WordPressComponentProps< LinkedButtonProps, 'div' >,\n\tforwardedRef: React.ForwardedRef< any >\n) => {\n\tconst { className, isLinked, ...buttonProps } =\n\t\tuseBorderBoxControlLinkedButton( props );\n\tconst label = isLinked ? __( 'Unlink sides' ) : __( 'Link sides' );\n\n\treturn (\n\t\t<Tooltip text={ label }>\n\t\t\t<View className={ className }>\n\t\t\t\t<Button\n\t\t\t\t\t{ ...buttonProps }\n\t\t\t\t\tvariant={ isLinked ? 'primary' : 'secondary' }\n\t\t\t\t\tisSmall\n\t\t\t\t\ticon={ isLinked ? link : linkOff }\n\t\t\t\t\ticonSize={ 16 }\n\t\t\t\t\taria-label={ label }\n\t\t\t\t\tref={ forwardedRef }\n\t\t\t\t/>\n\t\t\t</View>\n\t\t</Tooltip>\n\t);\n};\n\nconst ConnectedBorderBoxControlLinkedButton = contextConnect(\n\tBorderBoxControlLinkedButton,\n\t'BorderBoxControlLinkedButton'\n);\nexport default ConnectedBorderBoxControlLinkedButton;\n"]}
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/components/src/border-box-control/utils.ts"],"names":["sides","borderProps","isEmptyBorder","border","some","prop","undefined","isDefinedBorder","hasSplitBorders","allSidesEmpty","every","side","isCompleteBorder","Object","keys","indexOf","hasMixedBorders","borders","shorthandBorders","map","getShorthandBorderStyle","getSplitBorders","top","right","bottom","left","getBorderDiff","original","updated","diff","color","style","width","getCommonBorder","colors","styles","widths","forEach","push","allColorsMatch","value","allStylesMatch","allWidthsMatch","fallbackBorder","fallbackColor","fallbackStyle","fallbackWidth","hasVisibleBorder","borderStyle","filter","Boolean","join"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport type { CSSProperties } from 'react';\n\n/**\n * Internal dependencies\n */\nimport type { Border } from '../border-control/types';\nimport type { AnyBorder, Borders, BorderProp, BorderSide } from './types';\n\nconst sides: BorderSide[] = [ 'top', 'right', 'bottom', 'left' ];\nconst borderProps: BorderProp[] = [ 'color', 'style', 'width' ];\n\nexport const isEmptyBorder = ( border?: Border ) => {\n\tif ( ! border ) {\n\t\treturn true;\n\t}\n\treturn ! borderProps.some( ( prop ) => border[ prop ] !== undefined );\n};\n\nexport const isDefinedBorder = ( border: AnyBorder ) => {\n\t// No border, no worries :)\n\tif ( ! border ) {\n\t\treturn false;\n\t}\n\n\t// If we have individual borders per side within the border object we\n\t// need to check whether any of those side borders have been set.\n\tif ( hasSplitBorders( border ) ) {\n\t\tconst allSidesEmpty = sides.every( ( side ) =>\n\t\t\tisEmptyBorder( ( border as Borders )[ side ] )\n\t\t);\n\n\t\treturn ! allSidesEmpty;\n\t}\n\n\t// If we have a top-level border only, check if that is empty. e.g.\n\t// { color: undefined, style: undefined, width: undefined }\n\t// Border radius can still be set within the border object as it is\n\t// handled separately.\n\treturn ! isEmptyBorder( border as Border );\n};\n\nexport const isCompleteBorder = ( border?: Border ) => {\n\tif ( ! border ) {\n\t\treturn false;\n\t}\n\n\treturn borderProps.every( ( prop ) => border[ prop ] !== undefined );\n};\n\nexport const hasSplitBorders = ( border: AnyBorder = {} ) => {\n\treturn Object.keys( border ).some(\n\t\t( side ) => sides.indexOf( side as BorderSide ) !== -1\n\t);\n};\n\nexport const hasMixedBorders = ( borders: AnyBorder ) => {\n\tif ( ! hasSplitBorders( borders ) ) {\n\t\treturn false;\n\t}\n\n\tconst shorthandBorders = sides.map( ( side: BorderSide ) =>\n\t\tgetShorthandBorderStyle( ( borders as Borders )?.[ side ] )\n\t);\n\n\treturn ! shorthandBorders.every(\n\t\t( border ) => border === shorthandBorders[ 0 ]\n\t);\n};\n\nexport const getSplitBorders = ( border?: Border ) => {\n\tif ( ! border || isEmptyBorder( border ) ) {\n\t\treturn undefined;\n\t}\n\n\treturn {\n\t\ttop: border,\n\t\tright: border,\n\t\tbottom: border,\n\t\tleft: border,\n\t};\n};\n\nexport const getBorderDiff = ( original: Border, updated: Border ) => {\n\tconst diff: Border = {};\n\n\tif ( original.color !== updated.color ) {\n\t\tdiff.color = updated.color;\n\t}\n\n\tif ( original.style !== updated.style ) {\n\t\tdiff.style = updated.style;\n\t}\n\n\tif ( original.width !== updated.width ) {\n\t\tdiff.width = updated.width;\n\t}\n\n\treturn diff;\n};\n\nexport const getCommonBorder = ( borders?: Borders ) => {\n\tif ( ! borders ) {\n\t\treturn undefined;\n\t}\n\n\tconst colors: ( CSSProperties[ 'borderColor' ] | undefined )[] = [];\n\tconst styles: ( CSSProperties[ 'borderStyle' ] | undefined )[] = [];\n\tconst widths: ( CSSProperties[ 'borderWidth' ] | undefined )[] = [];\n\n\tsides.forEach( ( side ) => {\n\t\tcolors.push( borders[ side ]?.color );\n\t\tstyles.push( borders[ side ]?.style );\n\t\twidths.push( borders[ side ]?.width );\n\t} );\n\n\tconst allColorsMatch = colors.every( ( value ) => value === colors[ 0 ] );\n\tconst allStylesMatch = styles.every( ( value ) => value === styles[ 0 ] );\n\tconst allWidthsMatch = widths.every( ( value ) => value === widths[ 0 ] );\n\n\treturn {\n\t\tcolor: allColorsMatch ? colors[ 0 ] : undefined,\n\t\tstyle: allStylesMatch ? styles[ 0 ] : undefined,\n\t\twidth: allWidthsMatch ? widths[ 0 ] : undefined,\n\t};\n};\n\nexport const getShorthandBorderStyle = (\n\tborder?: Border,\n\tfallbackBorder?: Border\n) => {\n\tif ( isEmptyBorder( border ) ) {\n\t\treturn fallbackBorder;\n\t}\n\n\tconst { color: fallbackColor, style: fallbackStyle, width: fallbackWidth } =\n\t\tfallbackBorder || {};\n\n\tconst {\n\t\tcolor = fallbackColor,\n\t\tstyle = fallbackStyle,\n\t\twidth = fallbackWidth,\n\t} = border as Border;\n\n\tconst hasVisibleBorder = ( !! width && width !== '0' ) || !! color;\n\tconst borderStyle = hasVisibleBorder ? style || 'solid' : style;\n\n\treturn [ width, borderStyle, color ].filter( Boolean ).join( ' ' );\n};\n"]}
1
+ {"version":3,"sources":["@wordpress/components/src/border-box-control/utils.ts"],"names":["sides","borderProps","isEmptyBorder","border","some","prop","undefined","isDefinedBorder","hasSplitBorders","allSidesEmpty","every","side","isCompleteBorder","Object","keys","indexOf","hasMixedBorders","borders","shorthandBorders","map","getShorthandBorderStyle","getSplitBorders","top","right","bottom","left","getBorderDiff","original","updated","diff","color","style","width","getCommonBorder","colors","styles","widths","forEach","push","allColorsMatch","value","allStylesMatch","allWidthsMatch","fallbackBorder","fallbackColor","fallbackStyle","fallbackWidth","hasVisibleBorder","borderStyle","filter","Boolean","join"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport type { CSSProperties } from 'react';\n\n/**\n * Internal dependencies\n */\nimport type { Border } from '../border-control/types';\nimport type { AnyBorder, Borders, BorderProp, BorderSide } from './types';\n\nconst sides: BorderSide[] = [ 'top', 'right', 'bottom', 'left' ];\nconst borderProps: BorderProp[] = [ 'color', 'style', 'width' ];\n\nexport const isEmptyBorder = ( border?: Border ) => {\n\tif ( ! border ) {\n\t\treturn true;\n\t}\n\treturn ! borderProps.some( ( prop ) => border[ prop ] !== undefined );\n};\n\nexport const isDefinedBorder = ( border: AnyBorder ) => {\n\t// No border, no worries :)\n\tif ( ! border ) {\n\t\treturn false;\n\t}\n\n\t// If we have individual borders per side within the border object we\n\t// need to check whether any of those side borders have been set.\n\tif ( hasSplitBorders( border ) ) {\n\t\tconst allSidesEmpty = sides.every( ( side ) =>\n\t\t\tisEmptyBorder( ( border as Borders )[ side ] )\n\t\t);\n\n\t\treturn ! allSidesEmpty;\n\t}\n\n\t// If we have a top-level border only, check if that is empty. e.g.\n\t// { color: undefined, style: undefined, width: undefined }\n\t// Border radius can still be set within the border object as it is\n\t// handled separately.\n\treturn ! isEmptyBorder( border as Border );\n};\n\nexport const isCompleteBorder = ( border?: Border ) => {\n\tif ( ! border ) {\n\t\treturn false;\n\t}\n\n\treturn borderProps.every( ( prop ) => border[ prop ] !== undefined );\n};\n\nexport const hasSplitBorders = ( border: AnyBorder = {} ) => {\n\treturn Object.keys( border ).some(\n\t\t( side ) => sides.indexOf( side as BorderSide ) !== -1\n\t);\n};\n\nexport const hasMixedBorders = ( borders: AnyBorder ) => {\n\tif ( ! hasSplitBorders( borders ) ) {\n\t\treturn false;\n\t}\n\n\tconst shorthandBorders = sides.map( ( side: BorderSide ) =>\n\t\tgetShorthandBorderStyle( ( borders as Borders )?.[ side ] )\n\t);\n\n\treturn ! shorthandBorders.every(\n\t\t( border ) => border === shorthandBorders[ 0 ]\n\t);\n};\n\nexport const getSplitBorders = ( border?: Border ) => {\n\tif ( ! border || isEmptyBorder( border ) ) {\n\t\treturn undefined;\n\t}\n\n\treturn {\n\t\ttop: border,\n\t\tright: border,\n\t\tbottom: border,\n\t\tleft: border,\n\t};\n};\n\nexport const getBorderDiff = ( original: Border, updated: Border ) => {\n\tconst diff: Border = {};\n\n\tif ( original.color !== updated.color ) {\n\t\tdiff.color = updated.color;\n\t}\n\n\tif ( original.style !== updated.style ) {\n\t\tdiff.style = updated.style;\n\t}\n\n\tif ( original.width !== updated.width ) {\n\t\tdiff.width = updated.width;\n\t}\n\n\treturn diff;\n};\n\nexport const getCommonBorder = ( borders?: Borders ) => {\n\tif ( ! borders ) {\n\t\treturn undefined;\n\t}\n\n\tconst colors: ( CSSProperties[ 'borderColor' ] | undefined )[] = [];\n\tconst styles: ( CSSProperties[ 'borderStyle' ] | undefined )[] = [];\n\tconst widths: ( CSSProperties[ 'borderWidth' ] | undefined )[] = [];\n\n\tsides.forEach( ( side ) => {\n\t\tcolors.push( borders[ side ]?.color );\n\t\tstyles.push( borders[ side ]?.style );\n\t\twidths.push( borders[ side ]?.width );\n\t} );\n\n\tconst allColorsMatch = colors.every( ( value ) => value === colors[ 0 ] );\n\tconst allStylesMatch = styles.every( ( value ) => value === styles[ 0 ] );\n\tconst allWidthsMatch = widths.every( ( value ) => value === widths[ 0 ] );\n\n\treturn {\n\t\tcolor: allColorsMatch ? colors[ 0 ] : undefined,\n\t\tstyle: allStylesMatch ? styles[ 0 ] : undefined,\n\t\twidth: allWidthsMatch ? widths[ 0 ] : undefined,\n\t};\n};\n\nexport const getShorthandBorderStyle = (\n\tborder?: Border,\n\tfallbackBorder?: Border\n) => {\n\tif ( isEmptyBorder( border ) ) {\n\t\treturn fallbackBorder;\n\t}\n\n\tconst {\n\t\tcolor: fallbackColor,\n\t\tstyle: fallbackStyle,\n\t\twidth: fallbackWidth,\n\t} = fallbackBorder || {};\n\n\tconst {\n\t\tcolor = fallbackColor,\n\t\tstyle = fallbackStyle,\n\t\twidth = fallbackWidth,\n\t} = border as Border;\n\n\tconst hasVisibleBorder = ( !! width && width !== '0' ) || !! color;\n\tconst borderStyle = hasVisibleBorder ? style || 'solid' : style;\n\n\treturn [ width, borderStyle, color ].filter( Boolean ).join( ' ' );\n};\n"]}
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/components/src/border-control/border-control/hook.ts"],"names":["useCallback","useMemo","useState","styles","parseQuantityAndUnitFromRawValue","useContextSystem","useCx","sanitizeBorder","border","hasNoWidth","width","undefined","hasNoColor","color","useBorderControl","props","className","isCompact","onChange","shouldSanitizeBorder","value","__next36pxDefaultSize","otherProps","widthValue","originalWidthUnit","widthUnit","hadPreviousZeroWidth","colorSelection","setColorSelection","styleSelection","setStyleSelection","onBorderChange","newBorder","onWidthChange","newWidth","newWidthValue","parsedValue","hasZeroWidth","updatedBorder","style","onSliderChange","cx","classes","borderControl","innerWrapperClassName","wrapperWidth","widthStyle","heightStyle","wrapperHeight","innerWrapper","widthControlClassName","borderWidthControl","sliderClassName","borderSlider","previousStyleSelection"],"mappings":"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","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useCallback, useMemo, useState } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport * as styles from '../styles';\nimport { parseQuantityAndUnitFromRawValue } from '../../unit-control/utils';\nimport { useContextSystem, WordPressComponentProps } from '../../ui/context';\nimport { useCx } from '../../utils/hooks/use-cx';\n\nimport type { Border, BorderControlProps } from '../types';\n\nconst sanitizeBorder = ( border?: Border ) => {\n\tconst hasNoWidth = border?.width === undefined || border.width === '';\n\tconst hasNoColor = border?.color === undefined;\n\n\t// If width and color are undefined, unset any style selection as well.\n\tif ( hasNoWidth && hasNoColor ) {\n\t\treturn undefined;\n\t}\n\n\treturn border;\n};\n\nexport function useBorderControl(\n\tprops: WordPressComponentProps< BorderControlProps, 'div' >\n) {\n\tconst {\n\t\tclassName,\n\t\tisCompact,\n\t\tonChange,\n\t\tshouldSanitizeBorder = true,\n\t\tvalue: border,\n\t\twidth,\n\t\t__next36pxDefaultSize = false,\n\t\t...otherProps\n\t} = useContextSystem( props, 'BorderControl' );\n\n\tconst [ widthValue, originalWidthUnit ] = parseQuantityAndUnitFromRawValue(\n\t\tborder?.width\n\t);\n\tconst widthUnit = originalWidthUnit || 'px';\n\tconst hadPreviousZeroWidth = widthValue === 0;\n\n\tconst [ colorSelection, setColorSelection ] = useState< string >();\n\tconst [ styleSelection, setStyleSelection ] = useState< string >();\n\n\tconst onBorderChange = useCallback(\n\t\t( newBorder?: Border ) => {\n\t\t\tif ( shouldSanitizeBorder ) {\n\t\t\t\treturn onChange( sanitizeBorder( newBorder ) );\n\t\t\t}\n\n\t\t\tonChange( newBorder );\n\t\t},\n\t\t[ onChange, shouldSanitizeBorder ]\n\t);\n\n\tconst onWidthChange = useCallback(\n\t\t( newWidth?: string ) => {\n\t\t\tconst newWidthValue = newWidth === '' ? undefined : newWidth;\n\t\t\tconst [ parsedValue ] = parseQuantityAndUnitFromRawValue(\n\t\t\t\tnewWidth\n\t\t\t);\n\t\t\tconst hasZeroWidth = parsedValue === 0;\n\n\t\t\tconst updatedBorder = { ...border, width: newWidthValue };\n\n\t\t\t// Setting the border width explicitly to zero will also set the\n\t\t\t// border style to `none` and clear the border color.\n\t\t\tif ( hasZeroWidth && ! hadPreviousZeroWidth ) {\n\t\t\t\t// Before clearing the color and style selections, keep track of\n\t\t\t\t// the current selections so they can be restored when the width\n\t\t\t\t// changes to a non-zero value.\n\t\t\t\tsetColorSelection( border?.color );\n\t\t\t\tsetStyleSelection( border?.style );\n\n\t\t\t\t// Clear the color and style border properties.\n\t\t\t\tupdatedBorder.color = undefined;\n\t\t\t\tupdatedBorder.style = 'none';\n\t\t\t}\n\n\t\t\t// Selection has changed from zero border width to non-zero width.\n\t\t\tif ( ! hasZeroWidth && hadPreviousZeroWidth ) {\n\t\t\t\t// Restore previous border color and style selections if width\n\t\t\t\t// is now not zero.\n\t\t\t\tif ( updatedBorder.color === undefined ) {\n\t\t\t\t\tupdatedBorder.color = colorSelection;\n\t\t\t\t}\n\t\t\t\tif ( updatedBorder.style === 'none' ) {\n\t\t\t\t\tupdatedBorder.style = styleSelection;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tonBorderChange( updatedBorder );\n\t\t},\n\t\t[\n\t\t\tborder,\n\t\t\thadPreviousZeroWidth,\n\t\t\tcolorSelection,\n\t\t\tstyleSelection,\n\t\t\tonBorderChange,\n\t\t]\n\t);\n\n\tconst onSliderChange = useCallback(\n\t\t( value: string ) => {\n\t\t\tonWidthChange( `${ value }${ widthUnit }` );\n\t\t},\n\t\t[ onWidthChange, widthUnit ]\n\t);\n\n\t// Generate class names.\n\tconst cx = useCx();\n\tconst classes = useMemo( () => {\n\t\treturn cx( styles.borderControl, className );\n\t}, [ className, cx ] );\n\n\tconst innerWrapperClassName = useMemo( () => {\n\t\tconst wrapperWidth = isCompact ? '90px' : width;\n\t\tconst widthStyle =\n\t\t\t!! wrapperWidth && styles.wrapperWidth( wrapperWidth );\n\t\tconst heightStyle = styles.wrapperHeight( __next36pxDefaultSize );\n\n\t\treturn cx( styles.innerWrapper(), widthStyle, heightStyle );\n\t}, [ isCompact, width, cx, __next36pxDefaultSize ] );\n\n\tconst widthControlClassName = useMemo( () => {\n\t\treturn cx( styles.borderWidthControl() );\n\t}, [ cx ] );\n\n\tconst sliderClassName = useMemo( () => {\n\t\treturn cx( styles.borderSlider() );\n\t}, [ cx ] );\n\n\treturn {\n\t\t...otherProps,\n\t\tclassName: classes,\n\t\tinnerWrapperClassName,\n\t\tonBorderChange,\n\t\tonSliderChange,\n\t\tonWidthChange,\n\t\tpreviousStyleSelection: styleSelection,\n\t\tsliderClassName,\n\t\tvalue: border,\n\t\twidthControlClassName,\n\t\twidthUnit,\n\t\twidthValue,\n\t\t__next36pxDefaultSize,\n\t};\n}\n"]}
1
+ {"version":3,"sources":["@wordpress/components/src/border-control/border-control/hook.ts"],"names":["useCallback","useMemo","useState","styles","parseQuantityAndUnitFromRawValue","useContextSystem","useCx","sanitizeBorder","border","hasNoWidth","width","undefined","hasNoColor","color","useBorderControl","props","className","isCompact","onChange","shouldSanitizeBorder","value","__next36pxDefaultSize","otherProps","widthValue","originalWidthUnit","widthUnit","hadPreviousZeroWidth","colorSelection","setColorSelection","styleSelection","setStyleSelection","onBorderChange","newBorder","onWidthChange","newWidth","newWidthValue","parsedValue","hasZeroWidth","updatedBorder","style","onSliderChange","cx","classes","borderControl","innerWrapperClassName","wrapperWidth","widthStyle","heightStyle","wrapperHeight","innerWrapper","widthControlClassName","borderWidthControl","sliderClassName","borderSlider","previousStyleSelection"],"mappings":"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","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useCallback, useMemo, useState } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport * as styles from '../styles';\nimport { parseQuantityAndUnitFromRawValue } from '../../unit-control/utils';\nimport { useContextSystem, WordPressComponentProps } from '../../ui/context';\nimport { useCx } from '../../utils/hooks/use-cx';\n\nimport type { Border, BorderControlProps } from '../types';\n\nconst sanitizeBorder = ( border?: Border ) => {\n\tconst hasNoWidth = border?.width === undefined || border.width === '';\n\tconst hasNoColor = border?.color === undefined;\n\n\t// If width and color are undefined, unset any style selection as well.\n\tif ( hasNoWidth && hasNoColor ) {\n\t\treturn undefined;\n\t}\n\n\treturn border;\n};\n\nexport function useBorderControl(\n\tprops: WordPressComponentProps< BorderControlProps, 'div' >\n) {\n\tconst {\n\t\tclassName,\n\t\tisCompact,\n\t\tonChange,\n\t\tshouldSanitizeBorder = true,\n\t\tvalue: border,\n\t\twidth,\n\t\t__next36pxDefaultSize = false,\n\t\t...otherProps\n\t} = useContextSystem( props, 'BorderControl' );\n\n\tconst [ widthValue, originalWidthUnit ] = parseQuantityAndUnitFromRawValue(\n\t\tborder?.width\n\t);\n\tconst widthUnit = originalWidthUnit || 'px';\n\tconst hadPreviousZeroWidth = widthValue === 0;\n\n\tconst [ colorSelection, setColorSelection ] = useState< string >();\n\tconst [ styleSelection, setStyleSelection ] = useState< string >();\n\n\tconst onBorderChange = useCallback(\n\t\t( newBorder?: Border ) => {\n\t\t\tif ( shouldSanitizeBorder ) {\n\t\t\t\treturn onChange( sanitizeBorder( newBorder ) );\n\t\t\t}\n\n\t\t\tonChange( newBorder );\n\t\t},\n\t\t[ onChange, shouldSanitizeBorder ]\n\t);\n\n\tconst onWidthChange = useCallback(\n\t\t( newWidth?: string ) => {\n\t\t\tconst newWidthValue = newWidth === '' ? undefined : newWidth;\n\t\t\tconst [ parsedValue ] =\n\t\t\t\tparseQuantityAndUnitFromRawValue( newWidth );\n\t\t\tconst hasZeroWidth = parsedValue === 0;\n\n\t\t\tconst updatedBorder = { ...border, width: newWidthValue };\n\n\t\t\t// Setting the border width explicitly to zero will also set the\n\t\t\t// border style to `none` and clear the border color.\n\t\t\tif ( hasZeroWidth && ! hadPreviousZeroWidth ) {\n\t\t\t\t// Before clearing the color and style selections, keep track of\n\t\t\t\t// the current selections so they can be restored when the width\n\t\t\t\t// changes to a non-zero value.\n\t\t\t\tsetColorSelection( border?.color );\n\t\t\t\tsetStyleSelection( border?.style );\n\n\t\t\t\t// Clear the color and style border properties.\n\t\t\t\tupdatedBorder.color = undefined;\n\t\t\t\tupdatedBorder.style = 'none';\n\t\t\t}\n\n\t\t\t// Selection has changed from zero border width to non-zero width.\n\t\t\tif ( ! hasZeroWidth && hadPreviousZeroWidth ) {\n\t\t\t\t// Restore previous border color and style selections if width\n\t\t\t\t// is now not zero.\n\t\t\t\tif ( updatedBorder.color === undefined ) {\n\t\t\t\t\tupdatedBorder.color = colorSelection;\n\t\t\t\t}\n\t\t\t\tif ( updatedBorder.style === 'none' ) {\n\t\t\t\t\tupdatedBorder.style = styleSelection;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tonBorderChange( updatedBorder );\n\t\t},\n\t\t[\n\t\t\tborder,\n\t\t\thadPreviousZeroWidth,\n\t\t\tcolorSelection,\n\t\t\tstyleSelection,\n\t\t\tonBorderChange,\n\t\t]\n\t);\n\n\tconst onSliderChange = useCallback(\n\t\t( value: string ) => {\n\t\t\tonWidthChange( `${ value }${ widthUnit }` );\n\t\t},\n\t\t[ onWidthChange, widthUnit ]\n\t);\n\n\t// Generate class names.\n\tconst cx = useCx();\n\tconst classes = useMemo( () => {\n\t\treturn cx( styles.borderControl, className );\n\t}, [ className, cx ] );\n\n\tconst innerWrapperClassName = useMemo( () => {\n\t\tconst wrapperWidth = isCompact ? '90px' : width;\n\t\tconst widthStyle =\n\t\t\t!! wrapperWidth && styles.wrapperWidth( wrapperWidth );\n\t\tconst heightStyle = styles.wrapperHeight( __next36pxDefaultSize );\n\n\t\treturn cx( styles.innerWrapper(), widthStyle, heightStyle );\n\t}, [ isCompact, width, cx, __next36pxDefaultSize ] );\n\n\tconst widthControlClassName = useMemo( () => {\n\t\treturn cx( styles.borderWidthControl() );\n\t}, [ cx ] );\n\n\tconst sliderClassName = useMemo( () => {\n\t\treturn cx( styles.borderSlider() );\n\t}, [ cx ] );\n\n\treturn {\n\t\t...otherProps,\n\t\tclassName: classes,\n\t\tinnerWrapperClassName,\n\t\tonBorderChange,\n\t\tonSliderChange,\n\t\tonWidthChange,\n\t\tpreviousStyleSelection: styleSelection,\n\t\tsliderClassName,\n\t\tvalue: border,\n\t\twidthControlClassName,\n\t\twidthUnit,\n\t\twidthValue,\n\t\t__next36pxDefaultSize,\n\t};\n}\n"]}
@@ -1,16 +1,14 @@
1
1
  import _extends from "@babel/runtime/helpers/esm/extends";
2
2
  import { createElement } from "@wordpress/element";
3
3
 
4
- /**
5
- * External dependencies
6
- */
7
- import { noop } from 'lodash';
8
4
  /**
9
5
  * Internal dependencies
10
6
  */
11
-
12
7
  import UnitControl from './unit-control';
13
8
  import { ALL_SIDES, LABELS, getAllValue, isValuesMixed, isValuesDefined } from './utils';
9
+
10
+ const noop = () => {};
11
+
14
12
  export default function AllInputControl(_ref) {
15
13
  let {
16
14
  onChange = noop,