@wordpress/components 19.2.1-next.33ec3857e2.0 → 19.2.1

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 (368) hide show
  1. package/CHANGELOG.md +6 -29
  2. package/build/angle-picker-control/index.js +0 -2
  3. package/build/angle-picker-control/index.js.map +1 -1
  4. package/build/button/index.native.js +3 -13
  5. package/build/button/index.native.js.map +1 -1
  6. package/build/checkbox-control/index.js +1 -1
  7. package/build/checkbox-control/index.js.map +1 -1
  8. package/build/clipboard-button/index.js +2 -1
  9. package/build/clipboard-button/index.js.map +1 -1
  10. package/build/color-palette/index.js +1 -13
  11. package/build/color-palette/index.js.map +1 -1
  12. package/build/color-picker/color-display.js +2 -4
  13. package/build/color-picker/color-display.js.map +1 -1
  14. package/build/color-picker/hex-input.js +1 -3
  15. package/build/color-picker/hex-input.js.map +1 -1
  16. package/build/color-picker/input-with-slider.js +1 -3
  17. package/build/color-picker/input-with-slider.js.map +1 -1
  18. package/build/custom-gradient-picker/index.js +0 -1
  19. package/build/custom-gradient-picker/index.js.map +1 -1
  20. package/build/date-time/date.js +86 -63
  21. package/build/date-time/date.js.map +1 -1
  22. package/build/divider/component.js +7 -8
  23. package/build/divider/component.js.map +1 -1
  24. package/build/divider/styles.js +13 -38
  25. package/build/divider/styles.js.map +1 -1
  26. package/build/drop-zone/index.js +6 -14
  27. package/build/drop-zone/index.js.map +1 -1
  28. package/build/drop-zone/provider.js +0 -1
  29. package/build/drop-zone/provider.js.map +1 -1
  30. package/build/flyout/styles.js +2 -2
  31. package/build/flyout/styles.js.map +1 -1
  32. package/build/focusable-iframe/index.js +0 -1
  33. package/build/focusable-iframe/index.js.map +1 -1
  34. package/build/higher-order/with-focus-outside/index.js +0 -2
  35. package/build/higher-order/with-focus-outside/index.js.map +1 -1
  36. package/build/index.js +0 -8
  37. package/build/index.js.map +1 -1
  38. package/build/input-control/styles/input-control-styles.js +32 -44
  39. package/build/input-control/styles/input-control-styles.js.map +1 -1
  40. package/build/mobile/bottom-sheet/link-suggestion-item-cell.native.js +3 -10
  41. package/build/mobile/bottom-sheet/link-suggestion-item-cell.native.js.map +1 -1
  42. package/build/mobile/color-settings/index.native.js +2 -4
  43. package/build/mobile/color-settings/index.native.js.map +1 -1
  44. package/build/mobile/color-settings/palette.screen.native.js +6 -7
  45. package/build/mobile/color-settings/palette.screen.native.js.map +1 -1
  46. package/build/mobile/global-styles-context/utils.native.js +1 -1
  47. package/build/mobile/global-styles-context/utils.native.js.map +1 -1
  48. package/build/mobile/gridicons/index.native.js +1 -3
  49. package/build/mobile/gridicons/index.native.js.map +1 -1
  50. package/build/mobile/link-picker/index.native.js +4 -45
  51. package/build/mobile/link-picker/index.native.js.map +1 -1
  52. package/build/mobile/link-settings/index.native.js +0 -10
  53. package/build/mobile/link-settings/index.native.js.map +1 -1
  54. package/build/modal/aria-helper.js +0 -2
  55. package/build/modal/aria-helper.js.map +1 -1
  56. package/build/modal/index.js +8 -17
  57. package/build/modal/index.js.map +1 -1
  58. package/build/palette-edit/index.js +31 -27
  59. package/build/palette-edit/index.js.map +1 -1
  60. package/build/select-control/styles/select-control-styles.js +9 -33
  61. package/build/select-control/styles/select-control-styles.js.map +1 -1
  62. package/build/style-provider/index.js +0 -2
  63. package/build/style-provider/index.js.map +1 -1
  64. package/build/toggle-group-control/toggle-group-control/component.js +2 -7
  65. package/build/toggle-group-control/toggle-group-control/component.js.map +1 -1
  66. package/build/toggle-group-control/toggle-group-control/toggle-group-control-backdrop.js +14 -25
  67. package/build/toggle-group-control/toggle-group-control/toggle-group-control-backdrop.js.map +1 -1
  68. package/build/tools-panel/styles.js +10 -12
  69. package/build/tools-panel/styles.js.map +1 -1
  70. package/build/tools-panel/tools-panel/component.js +8 -6
  71. package/build/tools-panel/tools-panel/component.js.map +1 -1
  72. package/build/tools-panel/tools-panel-item/hook.js +8 -6
  73. package/build/tools-panel/tools-panel-item/hook.js.map +1 -1
  74. package/build/unit-control/styles/unit-control-styles.js +41 -23
  75. package/build/unit-control/styles/unit-control-styles.js.map +1 -1
  76. package/build/z-stack/component.js.map +1 -1
  77. package/build/z-stack/styles.js +8 -10
  78. package/build/z-stack/styles.js.map +1 -1
  79. package/build-module/angle-picker-control/index.js +0 -2
  80. package/build-module/angle-picker-control/index.js.map +1 -1
  81. package/build-module/button/index.native.js +3 -13
  82. package/build-module/button/index.native.js.map +1 -1
  83. package/build-module/checkbox-control/index.js +1 -1
  84. package/build-module/checkbox-control/index.js.map +1 -1
  85. package/build-module/clipboard-button/index.js +2 -1
  86. package/build-module/clipboard-button/index.js.map +1 -1
  87. package/build-module/color-palette/index.js +2 -14
  88. package/build-module/color-palette/index.js.map +1 -1
  89. package/build-module/color-picker/color-display.js +2 -3
  90. package/build-module/color-picker/color-display.js.map +1 -1
  91. package/build-module/color-picker/hex-input.js +1 -2
  92. package/build-module/color-picker/hex-input.js.map +1 -1
  93. package/build-module/color-picker/input-with-slider.js +1 -2
  94. package/build-module/color-picker/input-with-slider.js.map +1 -1
  95. package/build-module/custom-gradient-picker/index.js +0 -1
  96. package/build-module/custom-gradient-picker/index.js.map +1 -1
  97. package/build-module/date-time/date.js +87 -63
  98. package/build-module/date-time/date.js.map +1 -1
  99. package/build-module/divider/component.js +7 -8
  100. package/build-module/divider/component.js.map +1 -1
  101. package/build-module/divider/styles.js +13 -37
  102. package/build-module/divider/styles.js.map +1 -1
  103. package/build-module/drop-zone/index.js +6 -14
  104. package/build-module/drop-zone/index.js.map +1 -1
  105. package/build-module/drop-zone/provider.js +0 -1
  106. package/build-module/drop-zone/provider.js.map +1 -1
  107. package/build-module/flyout/styles.js +2 -2
  108. package/build-module/flyout/styles.js.map +1 -1
  109. package/build-module/focusable-iframe/index.js +0 -1
  110. package/build-module/focusable-iframe/index.js.map +1 -1
  111. package/build-module/higher-order/with-focus-outside/index.js +0 -1
  112. package/build-module/higher-order/with-focus-outside/index.js.map +1 -1
  113. package/build-module/index.js +0 -1
  114. package/build-module/index.js.map +1 -1
  115. package/build-module/input-control/styles/input-control-styles.js +32 -44
  116. package/build-module/input-control/styles/input-control-styles.js.map +1 -1
  117. package/build-module/mobile/bottom-sheet/link-suggestion-item-cell.native.js +4 -10
  118. package/build-module/mobile/bottom-sheet/link-suggestion-item-cell.native.js.map +1 -1
  119. package/build-module/mobile/color-settings/index.native.js +2 -4
  120. package/build-module/mobile/color-settings/index.native.js.map +1 -1
  121. package/build-module/mobile/color-settings/palette.screen.native.js +6 -7
  122. package/build-module/mobile/color-settings/palette.screen.native.js.map +1 -1
  123. package/build-module/mobile/global-styles-context/utils.native.js +1 -1
  124. package/build-module/mobile/global-styles-context/utils.native.js.map +1 -1
  125. package/build-module/mobile/gridicons/index.native.js +0 -1
  126. package/build-module/mobile/gridicons/index.native.js.map +1 -1
  127. package/build-module/mobile/link-picker/index.native.js +8 -50
  128. package/build-module/mobile/link-picker/index.native.js.map +1 -1
  129. package/build-module/mobile/link-settings/index.native.js +0 -10
  130. package/build-module/mobile/link-settings/index.native.js.map +1 -1
  131. package/build-module/modal/aria-helper.js +0 -2
  132. package/build-module/modal/aria-helper.js.map +1 -1
  133. package/build-module/modal/index.js +8 -15
  134. package/build-module/modal/index.js.map +1 -1
  135. package/build-module/palette-edit/index.js +30 -27
  136. package/build-module/palette-edit/index.js.map +1 -1
  137. package/build-module/select-control/styles/select-control-styles.js +9 -33
  138. package/build-module/select-control/styles/select-control-styles.js.map +1 -1
  139. package/build-module/style-provider/index.js +0 -1
  140. package/build-module/style-provider/index.js.map +1 -1
  141. package/build-module/toggle-group-control/toggle-group-control/component.js +3 -8
  142. package/build-module/toggle-group-control/toggle-group-control/component.js.map +1 -1
  143. package/build-module/toggle-group-control/toggle-group-control/toggle-group-control-backdrop.js +14 -25
  144. package/build-module/toggle-group-control/toggle-group-control/toggle-group-control-backdrop.js.map +1 -1
  145. package/build-module/tools-panel/styles.js +11 -12
  146. package/build-module/tools-panel/styles.js.map +1 -1
  147. package/build-module/tools-panel/tools-panel/component.js +8 -5
  148. package/build-module/tools-panel/tools-panel/component.js.map +1 -1
  149. package/build-module/tools-panel/tools-panel-item/hook.js +8 -6
  150. package/build-module/tools-panel/tools-panel-item/hook.js.map +1 -1
  151. package/build-module/unit-control/styles/unit-control-styles.js +41 -23
  152. package/build-module/unit-control/styles/unit-control-styles.js.map +1 -1
  153. package/build-module/z-stack/component.js.map +1 -1
  154. package/build-module/z-stack/styles.js +8 -13
  155. package/build-module/z-stack/styles.js.map +1 -1
  156. package/build-style/style-rtl.css +11 -23
  157. package/build-style/style.css +11 -23
  158. package/build-types/base-field/hook.d.ts +16 -16
  159. package/build-types/card/card/hook.d.ts +16 -16
  160. package/build-types/card/card-body/hook.d.ts +16 -16
  161. package/build-types/card/card-divider/hook.d.ts +18 -18
  162. package/build-types/card/card-footer/hook.d.ts +17 -17
  163. package/build-types/card/card-header/hook.d.ts +16 -16
  164. package/build-types/card/card-media/hook.d.ts +16 -16
  165. package/build-types/divider/component.d.ts +7 -8
  166. package/build-types/divider/component.d.ts.map +1 -1
  167. package/build-types/divider/styles.d.ts +2 -2
  168. package/build-types/divider/styles.d.ts.map +1 -1
  169. package/build-types/divider/types.d.ts +5 -5
  170. package/build-types/divider/types.d.ts.map +1 -1
  171. package/build-types/elevation/hook.d.ts +15 -15
  172. package/build-types/flex/flex/hook.d.ts +16 -16
  173. package/build-types/flex/flex-block/hook.d.ts +16 -16
  174. package/build-types/flex/flex-item/hook.d.ts +16 -16
  175. package/build-types/flyout/flyout/hook.d.ts +17 -17
  176. package/build-types/flyout/styles.d.ts +9 -7
  177. package/build-types/flyout/styles.d.ts.map +1 -1
  178. package/build-types/grid/hook.d.ts +16 -16
  179. package/build-types/h-stack/hook.d.ts +16 -16
  180. package/build-types/heading/hook.d.ts +16 -16
  181. package/build-types/input-control/index.d.ts +1 -1
  182. package/build-types/input-control/index.d.ts.map +1 -1
  183. package/build-types/input-control/input-field.d.ts +1 -1
  184. package/build-types/input-control/input-field.d.ts.map +1 -1
  185. package/build-types/input-control/styles/input-control-styles.d.ts +2 -1
  186. package/build-types/input-control/styles/input-control-styles.d.ts.map +1 -1
  187. package/build-types/input-control/types.d.ts +1 -2
  188. package/build-types/input-control/types.d.ts.map +1 -1
  189. package/build-types/item-group/item/hook.d.ts +16 -16
  190. package/build-types/item-group/item-group/hook.d.ts +16 -16
  191. package/build-types/number-control/styles/number-control-styles.d.ts +1 -1
  192. package/build-types/scrollable/hook.d.ts +16 -16
  193. package/build-types/select-control/styles/select-control-styles.d.ts.map +1 -1
  194. package/build-types/select-control/types.d.ts +1 -1
  195. package/build-types/select-control/types.d.ts.map +1 -1
  196. package/build-types/spacer/hook.d.ts +16 -16
  197. package/build-types/surface/hook.d.ts +16 -16
  198. package/build-types/text/hook.d.ts +16 -16
  199. package/build-types/toggle-group-control/toggle-group-control/component.d.ts.map +1 -1
  200. package/build-types/toggle-group-control/toggle-group-control/toggle-group-control-backdrop.d.ts.map +1 -1
  201. package/build-types/tools-panel/styles.d.ts.map +1 -1
  202. package/build-types/tools-panel/tools-panel/component.d.ts.map +1 -1
  203. package/build-types/tools-panel/tools-panel/hook.d.ts +16 -16
  204. package/build-types/tools-panel/tools-panel-header/hook.d.ts +16 -16
  205. package/build-types/tools-panel/tools-panel-item/hook.d.ts +16 -16
  206. package/build-types/tools-panel/tools-panel-item/hook.d.ts.map +1 -1
  207. package/build-types/truncate/hook.d.ts +16 -16
  208. package/build-types/ui/control-group/hook.d.ts +18 -18
  209. package/build-types/ui/control-label/hook.d.ts +16 -16
  210. package/build-types/ui/form-group/form-group.d.ts +4 -4
  211. package/build-types/ui/form-group/use-form-group.d.ts +55 -55
  212. package/build-types/unit-control/index.d.ts +1 -1
  213. package/build-types/unit-control/index.d.ts.map +1 -1
  214. package/build-types/unit-control/styles/unit-control-styles.d.ts +0 -1
  215. package/build-types/unit-control/styles/unit-control-styles.d.ts.map +1 -1
  216. package/build-types/unit-control/types.d.ts +2 -2
  217. package/build-types/unit-control/types.d.ts.map +1 -1
  218. package/build-types/v-stack/hook.d.ts +16 -16
  219. package/build-types/z-stack/component.d.ts +1 -1
  220. package/build-types/z-stack/styles.d.ts.map +1 -1
  221. package/package.json +23 -21
  222. package/src/alignment-matrix-control/stories/index.js +1 -1
  223. package/src/angle-picker-control/index.js +0 -2
  224. package/src/base-control/stories/index.js +1 -1
  225. package/src/button/index.native.js +1 -15
  226. package/src/button/stories/index.js +1 -1
  227. package/src/button/style.scss +0 -14
  228. package/src/card/card/README.md +3 -3
  229. package/src/card/stories/index.js +1 -1
  230. package/src/card/test/__snapshots__/index.js.snap +6 -6
  231. package/src/checkbox-control/index.js +1 -1
  232. package/src/checkbox-control/stories/index.js +1 -1
  233. package/src/clipboard-button/index.js +2 -1
  234. package/src/color-indicator/stories/index.js +1 -1
  235. package/src/color-indicator/style.scss +8 -5
  236. package/src/color-palette/index.js +5 -13
  237. package/src/color-palette/stories/index.js +1 -1
  238. package/src/color-palette/test/__snapshots__/index.js.snap +0 -1
  239. package/src/color-picker/color-display.tsx +2 -3
  240. package/src/color-picker/hex-input.tsx +1 -2
  241. package/src/color-picker/input-with-slider.tsx +1 -2
  242. package/src/color-picker/stories/index.js +1 -1
  243. package/src/combobox-control/README.md +2 -2
  244. package/src/custom-gradient-picker/index.js +0 -1
  245. package/src/custom-gradient-picker/style.scss +4 -0
  246. package/src/date-time/README.md +0 -7
  247. package/src/date-time/date.js +84 -67
  248. package/src/date-time/stories/index.js +1 -1
  249. package/src/date-time/stories/time.js +1 -1
  250. package/src/date-time/test/date.js +29 -3
  251. package/src/dimension-control/README.md +1 -1
  252. package/src/divider/README.md +5 -33
  253. package/src/divider/component.tsx +7 -8
  254. package/src/divider/stories/index.js +17 -43
  255. package/src/divider/styles.ts +16 -53
  256. package/src/divider/test/__snapshots__/index.js.snap +11 -11
  257. package/src/divider/test/index.js +4 -4
  258. package/src/divider/types.ts +5 -5
  259. package/src/drop-zone/index.js +6 -14
  260. package/src/drop-zone/provider.js +0 -1
  261. package/src/dropdown-menu/stories/index.js +1 -1
  262. package/src/duotone-picker/README.md +1 -1
  263. package/src/elevation/stories/index.js +1 -1
  264. package/src/external-link/stories/index.js +1 -1
  265. package/src/flyout/styles.ts +2 -4
  266. package/src/focusable-iframe/index.js +0 -1
  267. package/src/font-size-picker/stories/index.js +1 -1
  268. package/src/form-token-field/stories/index.js +1 -1
  269. package/src/gradient-picker/stories/index.js +1 -1
  270. package/src/grid/stories/index.js +1 -1
  271. package/src/guide/stories/index.js +1 -1
  272. package/src/higher-order/with-focus-outside/index.js +0 -2
  273. package/src/icon/stories/index.js +1 -1
  274. package/src/index.js +0 -1
  275. package/src/input-control/stories/index.js +1 -2
  276. package/src/input-control/styles/input-control-styles.tsx +6 -16
  277. package/src/input-control/types.ts +1 -3
  278. package/src/item-group/stories/index.js +2 -84
  279. package/src/menu-item/README.md +2 -2
  280. package/src/mobile/bottom-sheet/link-suggestion-item-cell.native.js +2 -6
  281. package/src/mobile/color-settings/index.native.js +0 -2
  282. package/src/mobile/color-settings/palette.screen.native.js +5 -8
  283. package/src/mobile/color-settings/style.native.scss +1 -1
  284. package/src/mobile/global-styles-context/utils.native.js +1 -1
  285. package/src/mobile/gridicons/index.native.js +3 -3
  286. package/src/mobile/inserter-button/style.native.scss +0 -1
  287. package/src/mobile/link-picker/index.native.js +7 -41
  288. package/src/mobile/link-settings/index.native.js +0 -11
  289. package/src/modal/README.md +0 -10
  290. package/src/modal/aria-helper.js +0 -2
  291. package/src/modal/index.js +55 -72
  292. package/src/modal/stories/index.js +1 -6
  293. package/src/modal/style.scss +0 -9
  294. package/src/modal/test/index.js +0 -11
  295. package/src/navigation/README.md +9 -0
  296. package/src/notice/stories/index.js +1 -1
  297. package/src/number-control/stories/index.js +1 -1
  298. package/src/palette-edit/index.js +106 -73
  299. package/src/panel/stories/index.js +1 -1
  300. package/src/placeholder/stories/index.js +1 -1
  301. package/src/popover/stories/index.js +1 -1
  302. package/src/query-controls/README.md +6 -138
  303. package/src/radio-group/README.md +1 -4
  304. package/src/range-control/stories/index.js +1 -1
  305. package/src/resizable-box/stories/index.js +1 -1
  306. package/src/scrollable/stories/index.js +1 -1
  307. package/src/search-control/stories/index.js +1 -1
  308. package/src/select-control/stories/index.js +1 -2
  309. package/src/select-control/styles/select-control-styles.ts +2 -25
  310. package/src/select-control/types.ts +1 -1
  311. package/src/slot-fill/stories/index.js +1 -1
  312. package/src/snackbar/stories/index.js +1 -1
  313. package/src/spacer/stories/index.js +1 -1
  314. package/src/style-provider/index.js +0 -2
  315. package/src/surface/stories/index.js +1 -1
  316. package/src/tab-panel/stories/index.js +1 -1
  317. package/src/text-control/stories/index.js +1 -1
  318. package/src/text-highlight/stories/index.js +1 -1
  319. package/src/textarea-control/stories/index.js +1 -1
  320. package/src/tip/stories/index.js +1 -1
  321. package/src/toggle-control/stories/index.js +1 -1
  322. package/src/toggle-group-control/stories/index.js +1 -1
  323. package/src/toggle-group-control/toggle-group-control/component.tsx +2 -7
  324. package/src/toggle-group-control/toggle-group-control/toggle-group-control-backdrop.tsx +9 -24
  325. package/src/toolbar-button/stories/index.js +1 -1
  326. package/src/tools-panel/stories/index.js +0 -54
  327. package/src/tools-panel/styles.ts +1 -41
  328. package/src/tools-panel/test/index.js +137 -19
  329. package/src/tools-panel/tools-panel/README.md +3 -11
  330. package/src/tools-panel/tools-panel/component.tsx +5 -2
  331. package/src/tools-panel/tools-panel-item/hook.ts +14 -6
  332. package/src/tooltip/stories/index.js +1 -1
  333. package/src/tree-select/stories/index.js +1 -1
  334. package/src/truncate/stories/index.js +1 -1
  335. package/src/unit-control/stories/index.js +1 -19
  336. package/src/unit-control/styles/unit-control-styles.ts +46 -33
  337. package/src/unit-control/types.ts +2 -5
  338. package/src/z-stack/README.md +1 -1
  339. package/src/z-stack/component.tsx +1 -1
  340. package/src/z-stack/stories/index.js +1 -1
  341. package/src/z-stack/styles.ts +2 -7
  342. package/tsconfig.json +2 -6
  343. package/tsconfig.tsbuildinfo +1 -1
  344. package/build/confirm-dialog/component.js +0 -103
  345. package/build/confirm-dialog/component.js.map +0 -1
  346. package/build/confirm-dialog/index.js +0 -16
  347. package/build/confirm-dialog/index.js.map +0 -1
  348. package/build/confirm-dialog/types.js +0 -6
  349. package/build/confirm-dialog/types.js.map +0 -1
  350. package/build/date-time/utils.js +0 -32
  351. package/build/date-time/utils.js.map +0 -1
  352. package/build-module/confirm-dialog/component.js +0 -84
  353. package/build-module/confirm-dialog/component.js.map +0 -1
  354. package/build-module/confirm-dialog/index.js +0 -6
  355. package/build-module/confirm-dialog/index.js.map +0 -1
  356. package/build-module/confirm-dialog/types.js +0 -2
  357. package/build-module/confirm-dialog/types.js.map +0 -1
  358. package/build-module/date-time/utils.js +0 -20
  359. package/build-module/date-time/utils.js.map +0 -1
  360. package/src/confirm-dialog/README.md +0 -128
  361. package/src/confirm-dialog/component.tsx +0 -114
  362. package/src/confirm-dialog/index.tsx +0 -6
  363. package/src/confirm-dialog/stories/index.js +0 -120
  364. package/src/confirm-dialog/test/index.js +0 -302
  365. package/src/confirm-dialog/types.ts +0 -26
  366. package/src/date-time/test/utils.js +0 -32
  367. package/src/date-time/utils.js +0 -18
  368. package/src/mobile/link-settings/test/edit.native.js +0 -432
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/components/src/mobile/link-settings/index.native.js"],"names":["NEW_TAB_REL","LinkSettings","isVisible","onClose","setAttributes","onEmptyURL","options","withBottomSheet","actions","editorSidebarOpened","showIcon","onLinkCellPressed","urlValue","url","label","linkTarget","rel","urlInputValue","setUrlInputValue","labelInputValue","setLabelInputValue","linkRelInputValue","setLinkRelInputValue","onCloseSettingsSheetConsumed","prevEditorSidebarOpenedRef","onHandleClosingBottomSheet","BottomSheetContext","onCloseSettingsSheet","current","prevEditorSidebarOpened","isSettingSheetOpen","autoFill","getURLFromClipboard","onSetAttributes","onChangeURL","value","onChangeLabel","newURL","onChangeOpenInNewTab","newLinkTarget","undefined","updatedRel","onChangeLinkRel","clipboardText","Clipboard","getString","getSettings","valueMask","link","placeholder","Platform","OS","autoFocus","linkLabel","openInNewTab","external","linkRel","LinkRelIcon","styles","linkSettingsPanel","footer","separatorType","select","isEditorSidebarOpened"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport { Platform, Clipboard } from 'react-native';\n/**\n * WordPress dependencies\n */\nimport { compose } from '@wordpress/compose';\nimport { withSelect } from '@wordpress/data';\nimport { isURL, prependHTTP } from '@wordpress/url';\nimport {\n\tuseEffect,\n\tuseState,\n\tuseRef,\n\tuseContext,\n\tuseCallback,\n} from '@wordpress/element';\nimport { link, external } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport BottomSheet from '../bottom-sheet';\nimport { BottomSheetContext } from '../bottom-sheet/bottom-sheet-context';\nimport PanelBody from '../../panel/body';\nimport TextControl from '../../text-control';\nimport ToggleControl from '../../toggle-control';\nimport FooterMessageControl from '../../footer-message-control';\nimport PanelActions from '../../panel/actions';\nimport LinkRelIcon from './link-rel';\n\nimport styles from './style.scss';\n\nconst NEW_TAB_REL = 'noreferrer noopener';\n\nfunction LinkSettings( {\n\t// Control link settings `BottomSheet` visibility\n\tisVisible,\n\t// Callback that is called on closing bottom sheet\n\tonClose,\n\t// Function called to set attributes\n\tsetAttributes,\n\t// Callback that is called when url input field is empty\n\tonEmptyURL,\n\t// Object of available options along with specific, customizable properties.\n\t// Available options keys:\n\t//\t* url - uses `TextControl` component to set `attributes.url`\n\t//\t* linkLabel - uses `TextControl` component to set `attributes.label`\n\t//\t* openInNewTab - uses `ToggleControl` component to set `attributes.linkTarget` and `attributes.rel`\n\t//\t* linkRel - uses `TextControl` component to set `attributes.rel`\n\t//\t* footer - uses `FooterMessageControl` component to display message, e.g. about missing functionality\n\t// Available properties:\n\t//\t* label - control component label, e.g. `Button Link URL`\n\t//\t* placeholder - control component placeholder, e.g. `Add URL`\n\t//\t* autoFocus (url only) - whether url input should be focused on sheet opening\n\t//\t* autoFill (url only) - whether url input should be filled with url from clipboard\n\t// Example:\n\t//\tconst options = {\n\t//\t\turl: {\n\t//\t\t\tlabel: __( 'Button Link URL' ),\n\t//\t\t\tplaceholder: __( 'Add URL' ),\n\t//\t\t\tautoFocus: true,\n\t//\t\t\tautoFill: true,\n\t//\t\t}\n\t//\t}\n\toptions,\n\t// Specifies whether settings should be wrapped into `BottomSheet`\n\twithBottomSheet,\n\t// Defines buttons which will be displayed below the all options.\n\t// It's an array of objects with following properties:\n\t//\t* label - button title\n\t//\t* onPress - callback that is called on pressing button\n\t// Example:\n\t// \tconst actions = [\n\t//\t\t{\n\t//\t\t\tlabel: __( 'Remove link' ),\n\t//\t\t\tonPress: () => setAttributes({ url: '' }),\n\t//\t\t},\n\t//\t];\n\tactions,\n\t// Specifies whether general `BottomSheet` is opened\n\teditorSidebarOpened,\n\t// Specifies whether icon should be displayed next to the label\n\tshowIcon,\n\tonLinkCellPressed,\n\turlValue,\n\t// Attributes properties\n\turl,\n\tlabel = '',\n\tlinkTarget,\n\trel = '',\n} ) {\n\tconst [ urlInputValue, setUrlInputValue ] = useState( '' );\n\tconst [ labelInputValue, setLabelInputValue ] = useState( '' );\n\tconst [ linkRelInputValue, setLinkRelInputValue ] = useState( '' );\n\tconst onCloseSettingsSheetConsumed = useRef( false );\n\tconst prevEditorSidebarOpenedRef = useRef();\n\n\tconst { onHandleClosingBottomSheet } = useContext( BottomSheetContext );\n\tuseEffect( () => {\n\t\tif ( onHandleClosingBottomSheet ) {\n\t\t\tonHandleClosingBottomSheet( onCloseSettingsSheet );\n\t\t}\n\t}, [ urlInputValue, labelInputValue, linkRelInputValue ] );\n\n\tuseEffect( () => {\n\t\tprevEditorSidebarOpenedRef.current = editorSidebarOpened;\n\t} );\n\tconst prevEditorSidebarOpened = prevEditorSidebarOpenedRef.current;\n\n\tuseEffect( () => {\n\t\tif ( url !== urlInputValue ) {\n\t\t\tsetUrlInputValue( url || '' );\n\t\t}\n\t}, [ url ] );\n\n\tuseEffect( () => {\n\t\tsetLabelInputValue( label || '' );\n\t}, [ label ] );\n\n\tuseEffect( () => {\n\t\tsetLinkRelInputValue( rel || '' );\n\t}, [ rel ] );\n\n\tuseEffect( () => {\n\t\tconst isSettingSheetOpen = isVisible || editorSidebarOpened;\n\t\tif ( isSettingSheetOpen ) {\n\t\t\tonCloseSettingsSheetConsumed.current = false;\n\t\t}\n\n\t\tif ( options.url.autoFill && isSettingSheetOpen && ! url ) {\n\t\t\tgetURLFromClipboard();\n\t\t}\n\n\t\tif ( prevEditorSidebarOpened && ! editorSidebarOpened ) {\n\t\t\tonSetAttributes();\n\t\t}\n\t}, [ editorSidebarOpened, isVisible ] );\n\n\tuseEffect( () => {\n\t\tif ( ! urlValue && onEmptyURL ) {\n\t\t\tonEmptyURL();\n\t\t}\n\n\t\tif ( prependHTTP( urlValue ) !== url ) {\n\t\t\tsetAttributes( {\n\t\t\t\turl: prependHTTP( urlValue ),\n\t\t\t} );\n\t\t}\n\t}, [ urlValue ] );\n\n\tconst onChangeURL = useCallback(\n\t\t( value ) => {\n\t\t\tif ( ! value && onEmptyURL ) {\n\t\t\t\tonEmptyURL();\n\t\t\t}\n\t\t\tsetUrlInputValue( value );\n\t\t},\n\t\t[ onEmptyURL ]\n\t);\n\n\tconst onChangeLabel = useCallback( ( value ) => {\n\t\tsetLabelInputValue( value );\n\t}, [] );\n\n\tconst onSetAttributes = useCallback( () => {\n\t\tconst newURL = prependHTTP( urlInputValue );\n\t\tif (\n\t\t\turl !== newURL ||\n\t\t\tlabelInputValue !== label ||\n\t\t\tlinkRelInputValue !== rel\n\t\t) {\n\t\t\tsetAttributes( {\n\t\t\t\turl: newURL,\n\t\t\t\tlabel: labelInputValue,\n\t\t\t\trel: linkRelInputValue,\n\t\t\t} );\n\t\t}\n\t}, [ urlInputValue, labelInputValue, linkRelInputValue, setAttributes ] );\n\n\tconst onCloseSettingsSheet = useCallback( () => {\n\t\tif ( onCloseSettingsSheetConsumed.current ) {\n\t\t\treturn;\n\t\t}\n\n\t\tonCloseSettingsSheetConsumed.current = true;\n\n\t\tonSetAttributes();\n\n\t\tif ( onClose ) {\n\t\t\tonClose();\n\t\t}\n\t}, [ onClose, onSetAttributes ] );\n\n\tconst onChangeOpenInNewTab = useCallback(\n\t\t( value ) => {\n\t\t\tconst newLinkTarget = value ? '_blank' : undefined;\n\n\t\t\tlet updatedRel = linkRelInputValue;\n\t\t\tif ( newLinkTarget && ! linkRelInputValue ) {\n\t\t\t\tupdatedRel = NEW_TAB_REL;\n\t\t\t} else if ( ! newLinkTarget && linkRelInputValue === NEW_TAB_REL ) {\n\t\t\t\tupdatedRel = undefined;\n\t\t\t}\n\n\t\t\tsetAttributes( {\n\t\t\t\tlinkTarget: newLinkTarget,\n\t\t\t\trel: updatedRel,\n\t\t\t} );\n\t\t},\n\t\t[ linkRelInputValue ]\n\t);\n\n\tconst onChangeLinkRel = useCallback( ( value ) => {\n\t\tsetLinkRelInputValue( value );\n\t}, [] );\n\n\tasync function getURLFromClipboard() {\n\t\tconst clipboardText = await Clipboard.getString();\n\n\t\tif ( ! clipboardText ) {\n\t\t\treturn;\n\t\t}\n\t\t// Check if pasted text is URL\n\t\tif ( ! isURL( clipboardText ) ) {\n\t\t\treturn;\n\t\t}\n\n\t\tsetAttributes( { url: clipboardText } );\n\t}\n\n\tfunction getSettings() {\n\t\treturn (\n\t\t\t<>\n\t\t\t\t{ options.url &&\n\t\t\t\t\t( onLinkCellPressed ? (\n\t\t\t\t\t\t<BottomSheet.LinkCell\n\t\t\t\t\t\t\tshowIcon={ showIcon }\n\t\t\t\t\t\t\tvalue={ url }\n\t\t\t\t\t\t\tvalueMask={ options.url.valueMask }\n\t\t\t\t\t\t\tonPress={ onLinkCellPressed }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) : (\n\t\t\t\t\t\t<TextControl\n\t\t\t\t\t\t\ticon={ showIcon && link }\n\t\t\t\t\t\t\tlabel={ options.url.label }\n\t\t\t\t\t\t\tvalue={ urlInputValue }\n\t\t\t\t\t\t\tvaluePlaceholder={ options.url.placeholder }\n\t\t\t\t\t\t\tonChange={ onChangeURL }\n\t\t\t\t\t\t\tonSubmit={ onCloseSettingsSheet }\n\t\t\t\t\t\t\tautoCapitalize=\"none\"\n\t\t\t\t\t\t\tautoCorrect={ false }\n\t\t\t\t\t\t\t// eslint-disable-next-line jsx-a11y/no-autofocus\n\t\t\t\t\t\t\tautoFocus={\n\t\t\t\t\t\t\t\tPlatform.OS === 'ios' && options.url.autoFocus\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tkeyboardType=\"url\"\n\t\t\t\t\t\t/>\n\t\t\t\t\t) ) }\n\t\t\t\t{ options.linkLabel && (\n\t\t\t\t\t<TextControl\n\t\t\t\t\t\tlabel={ options.linkLabel.label }\n\t\t\t\t\t\tvalue={ labelInputValue }\n\t\t\t\t\t\tvaluePlaceholder={ options.linkLabel.placeholder }\n\t\t\t\t\t\tonChange={ onChangeLabel }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t\t{ !! urlInputValue && (\n\t\t\t\t\t<>\n\t\t\t\t\t\t{ options.openInNewTab && (\n\t\t\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t\t\ticon={ showIcon && external }\n\t\t\t\t\t\t\t\tlabel={ options.openInNewTab.label }\n\t\t\t\t\t\t\t\tchecked={ linkTarget === '_blank' }\n\t\t\t\t\t\t\t\tonChange={ onChangeOpenInNewTab }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t) }\n\t\t\t\t\t\t{ options.linkRel && (\n\t\t\t\t\t\t\t<TextControl\n\t\t\t\t\t\t\t\ticon={ showIcon && LinkRelIcon }\n\t\t\t\t\t\t\t\tlabel={ options.linkRel.label }\n\t\t\t\t\t\t\t\tvalue={ linkRelInputValue }\n\t\t\t\t\t\t\t\tvaluePlaceholder={ options.linkRel.placeholder }\n\t\t\t\t\t\t\t\tonChange={ onChangeLinkRel }\n\t\t\t\t\t\t\t\tonSubmit={ onCloseSettingsSheet }\n\t\t\t\t\t\t\t\tautoCapitalize=\"none\"\n\t\t\t\t\t\t\t\tautoCorrect={ false }\n\t\t\t\t\t\t\t\tkeyboardType=\"default\"\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\tif ( ! withBottomSheet ) {\n\t\treturn getSettings();\n\t}\n\n\treturn (\n\t\t<>\n\t\t\t<PanelBody style={ styles.linkSettingsPanel }>\n\t\t\t\t{ getSettings() }\n\t\t\t</PanelBody>\n\t\t\t{ options.footer && (\n\t\t\t\t<PanelBody style={ styles.linkSettingsPanel }>\n\t\t\t\t\t<FooterMessageControl\n\t\t\t\t\t\tlabel={ options.footer.label }\n\t\t\t\t\t\tseparatorType={ options.footer.separatorType }\n\t\t\t\t\t/>\n\t\t\t\t</PanelBody>\n\t\t\t) }\n\t\t\t{ actions && <PanelActions actions={ actions } /> }\n\t\t</>\n\t);\n}\n\nexport default compose( [\n\twithSelect( ( select ) => {\n\t\tconst { isEditorSidebarOpened } = select( 'core/edit-post' );\n\t\treturn {\n\t\t\teditorSidebarOpened: isEditorSidebarOpened(),\n\t\t};\n\t} ),\n] )( LinkSettings );\n"]}
1
+ {"version":3,"sources":["@wordpress/components/src/mobile/link-settings/index.native.js"],"names":["NEW_TAB_REL","LinkSettings","isVisible","onClose","setAttributes","onEmptyURL","options","withBottomSheet","actions","editorSidebarOpened","showIcon","onLinkCellPressed","urlValue","url","label","linkTarget","rel","urlInputValue","setUrlInputValue","labelInputValue","setLabelInputValue","linkRelInputValue","setLinkRelInputValue","prevEditorSidebarOpenedRef","onHandleClosingBottomSheet","BottomSheetContext","onCloseSettingsSheet","current","prevEditorSidebarOpened","isSettingSheetOpen","autoFill","getURLFromClipboard","onSetAttributes","onChangeURL","value","onChangeLabel","newURL","onChangeOpenInNewTab","newLinkTarget","undefined","updatedRel","onChangeLinkRel","clipboardText","Clipboard","getString","getSettings","valueMask","link","placeholder","Platform","OS","autoFocus","linkLabel","openInNewTab","external","linkRel","LinkRelIcon","styles","linkSettingsPanel","footer","separatorType","select","isEditorSidebarOpened"],"mappings":";;;;;;;;;AAUA;;AAPA;;AAIA;;AACA;;AACA;;AAQA;;AAKA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AAEA;;AA/BA;AACA;AACA;;AAEA;AACA;AACA;;AAaA;AACA;AACA;AAYA,MAAMA,WAAW,GAAG,qBAApB;;AAEA,SAASC,YAAT,OAwDI;AAAA,MAxDmB;AACtB;AACAC,IAAAA,SAFsB;AAGtB;AACAC,IAAAA,OAJsB;AAKtB;AACAC,IAAAA,aANsB;AAOtB;AACAC,IAAAA,UARsB;AAStB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACAC,IAAAA,OA9BsB;AA+BtB;AACAC,IAAAA,eAhCsB;AAiCtB;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACAC,IAAAA,OA5CsB;AA6CtB;AACAC,IAAAA,mBA9CsB;AA+CtB;AACAC,IAAAA,QAhDsB;AAiDtBC,IAAAA,iBAjDsB;AAkDtBC,IAAAA,QAlDsB;AAmDtB;AACAC,IAAAA,GApDsB;AAqDtBC,IAAAA,KAAK,GAAG,EArDc;AAsDtBC,IAAAA,UAtDsB;AAuDtBC,IAAAA,GAAG,GAAG;AAvDgB,GAwDnB;AACH,QAAM,CAAEC,aAAF,EAAiBC,gBAAjB,IAAsC,uBAAU,EAAV,CAA5C;AACA,QAAM,CAAEC,eAAF,EAAmBC,kBAAnB,IAA0C,uBAAU,EAAV,CAAhD;AACA,QAAM,CAAEC,iBAAF,EAAqBC,oBAArB,IAA8C,uBAAU,EAAV,CAApD;AACA,QAAMC,0BAA0B,GAAG,sBAAnC;AAEA,QAAM;AAAEC,IAAAA;AAAF,MAAiC,yBAAYC,sCAAZ,CAAvC;AACA,0BAAW,MAAM;AAChB,QAAKD,0BAAL,EAAkC;AACjCA,MAAAA,0BAA0B,CAAEE,oBAAF,CAA1B;AACA;AACD,GAJD,EAIG,CAAET,aAAF,EAAiBE,eAAjB,EAAkCE,iBAAlC,CAJH;AAMA,0BAAW,MAAM;AAChBE,IAAAA,0BAA0B,CAACI,OAA3B,GAAqClB,mBAArC;AACA,GAFD;AAGA,QAAMmB,uBAAuB,GAAGL,0BAA0B,CAACI,OAA3D;AAEA,0BAAW,MAAM;AAChB,QAAKd,GAAG,KAAKI,aAAb,EAA6B;AAC5BC,MAAAA,gBAAgB,CAAEL,GAAG,IAAI,EAAT,CAAhB;AACA;AACD,GAJD,EAIG,CAAEA,GAAF,CAJH;AAMA,0BAAW,MAAM;AAChBO,IAAAA,kBAAkB,CAAEN,KAAK,IAAI,EAAX,CAAlB;AACA,GAFD,EAEG,CAAEA,KAAF,CAFH;AAIA,0BAAW,MAAM;AAChBQ,IAAAA,oBAAoB,CAAEN,GAAG,IAAI,EAAT,CAApB;AACA,GAFD,EAEG,CAAEA,GAAF,CAFH;AAIA,0BAAW,MAAM;AAChB,UAAMa,kBAAkB,GAAG3B,SAAS,IAAIO,mBAAxC;;AACA,QAAKH,OAAO,CAACO,GAAR,CAAYiB,QAAZ,IAAwBD,kBAAxB,IAA8C,CAAEhB,GAArD,EAA2D;AAC1DkB,MAAAA,mBAAmB;AACnB;;AAED,QAAKH,uBAAuB,IAAI,CAAEnB,mBAAlC,EAAwD;AACvDuB,MAAAA,eAAe;AACf;AACD,GATD,EASG,CAAEvB,mBAAF,EAAuBP,SAAvB,CATH;AAWA,0BAAW,MAAM;AAChB,QAAK,CAAEU,QAAF,IAAcP,UAAnB,EAAgC;AAC/BA,MAAAA,UAAU;AACV;;AAED,QAAK,sBAAaO,QAAb,MAA4BC,GAAjC,EAAuC;AACtCT,MAAAA,aAAa,CAAE;AACdS,QAAAA,GAAG,EAAE,sBAAaD,QAAb;AADS,OAAF,CAAb;AAGA;AACD,GAVD,EAUG,CAAEA,QAAF,CAVH;AAYA,QAAMqB,WAAW,GAAG,0BACjBC,KAAF,IAAa;AACZ,QAAK,CAAEA,KAAF,IAAW7B,UAAhB,EAA6B;AAC5BA,MAAAA,UAAU;AACV;;AACDa,IAAAA,gBAAgB,CAAEgB,KAAF,CAAhB;AACA,GANkB,EAOnB,CAAE7B,UAAF,CAPmB,CAApB;AAUA,QAAM8B,aAAa,GAAG,0BAAeD,KAAF,IAAa;AAC/Cd,IAAAA,kBAAkB,CAAEc,KAAF,CAAlB;AACA,GAFqB,EAEnB,EAFmB,CAAtB;AAIA,QAAMF,eAAe,GAAG,0BAAa,MAAM;AAC1C,UAAMI,MAAM,GAAG,sBAAanB,aAAb,CAAf;;AACA,QACCJ,GAAG,KAAKuB,MAAR,IACAjB,eAAe,KAAKL,KADpB,IAEAO,iBAAiB,KAAKL,GAHvB,EAIE;AACDZ,MAAAA,aAAa,CAAE;AACdS,QAAAA,GAAG,EAAEuB,MADS;AAEdtB,QAAAA,KAAK,EAAEK,eAFO;AAGdH,QAAAA,GAAG,EAAEK;AAHS,OAAF,CAAb;AAKA;AACD,GAbuB,EAarB,CAAEJ,aAAF,EAAiBE,eAAjB,EAAkCE,iBAAlC,EAAqDjB,aAArD,CAbqB,CAAxB;AAeA,QAAMsB,oBAAoB,GAAG,0BAAa,MAAM;AAC/CM,IAAAA,eAAe;;AAEf,QAAK7B,OAAL,EAAe;AACdA,MAAAA,OAAO;AACP;AACD,GAN4B,EAM1B,CAAEA,OAAF,EAAW6B,eAAX,CAN0B,CAA7B;AAQA,QAAMK,oBAAoB,GAAG,0BAC1BH,KAAF,IAAa;AACZ,UAAMI,aAAa,GAAGJ,KAAK,GAAG,QAAH,GAAcK,SAAzC;AAEA,QAAIC,UAAU,GAAGnB,iBAAjB;;AACA,QAAKiB,aAAa,IAAI,CAAEjB,iBAAxB,EAA4C;AAC3CmB,MAAAA,UAAU,GAAGxC,WAAb;AACA,KAFD,MAEO,IAAK,CAAEsC,aAAF,IAAmBjB,iBAAiB,KAAKrB,WAA9C,EAA4D;AAClEwC,MAAAA,UAAU,GAAGD,SAAb;AACA;;AAEDnC,IAAAA,aAAa,CAAE;AACdW,MAAAA,UAAU,EAAEuB,aADE;AAEdtB,MAAAA,GAAG,EAAEwB;AAFS,KAAF,CAAb;AAIA,GAf2B,EAgB5B,CAAEnB,iBAAF,CAhB4B,CAA7B;AAmBA,QAAMoB,eAAe,GAAG,0BAAeP,KAAF,IAAa;AACjDZ,IAAAA,oBAAoB,CAAEY,KAAF,CAApB;AACA,GAFuB,EAErB,EAFqB,CAAxB;;AAIA,iBAAeH,mBAAf,GAAqC;AACpC,UAAMW,aAAa,GAAG,MAAMC,uBAAUC,SAAV,EAA5B;;AAEA,QAAK,CAAEF,aAAP,EAAuB;AACtB;AACA,KALmC,CAMpC;;;AACA,QAAK,CAAE,gBAAOA,aAAP,CAAP,EAAgC;AAC/B;AACA;;AAEDtC,IAAAA,aAAa,CAAE;AAAES,MAAAA,GAAG,EAAE6B;AAAP,KAAF,CAAb;AACA;;AAED,WAASG,WAAT,GAAuB;AACtB,WACC,qDACGvC,OAAO,CAACO,GAAR,KACCF,iBAAiB,GAClB,4BAAC,oBAAD,CAAa,QAAb;AACC,MAAA,QAAQ,EAAGD,QADZ;AAEC,MAAA,KAAK,EAAGG,GAFT;AAGC,MAAA,SAAS,EAAGP,OAAO,CAACO,GAAR,CAAYiC,SAHzB;AAIC,MAAA,OAAO,EAAGnC;AAJX,MADkB,GAQlB,4BAAC,oBAAD;AACC,MAAA,IAAI,EAAGD,QAAQ,IAAIqC,WADpB;AAEC,MAAA,KAAK,EAAGzC,OAAO,CAACO,GAAR,CAAYC,KAFrB;AAGC,MAAA,KAAK,EAAGG,aAHT;AAIC,MAAA,gBAAgB,EAAGX,OAAO,CAACO,GAAR,CAAYmC,WAJhC;AAKC,MAAA,QAAQ,EAAGf,WALZ;AAMC,MAAA,QAAQ,EAAGP,oBANZ;AAOC,MAAA,cAAc,EAAC,MAPhB;AAQC,MAAA,WAAW,EAAG,KARf,CASC;AATD;AAUC,MAAA,SAAS,EACRuB,sBAASC,EAAT,KAAgB,KAAhB,IAAyB5C,OAAO,CAACO,GAAR,CAAYsC,SAXvC;AAaC,MAAA,YAAY,EAAC;AAbd,MATA,CADH,EA0BG7C,OAAO,CAAC8C,SAAR,IACD,4BAAC,oBAAD;AACC,MAAA,KAAK,EAAG9C,OAAO,CAAC8C,SAAR,CAAkBtC,KAD3B;AAEC,MAAA,KAAK,EAAGK,eAFT;AAGC,MAAA,gBAAgB,EAAGb,OAAO,CAAC8C,SAAR,CAAkBJ,WAHtC;AAIC,MAAA,QAAQ,EAAGb;AAJZ,MA3BF,EAkCG,CAAC,CAAElB,aAAH,IACD,qDACGX,OAAO,CAAC+C,YAAR,IACD,4BAAC,sBAAD;AACC,MAAA,IAAI,EAAG3C,QAAQ,IAAI4C,eADpB;AAEC,MAAA,KAAK,EAAGhD,OAAO,CAAC+C,YAAR,CAAqBvC,KAF9B;AAGC,MAAA,OAAO,EAAGC,UAAU,KAAK,QAH1B;AAIC,MAAA,QAAQ,EAAGsB;AAJZ,MAFF,EASG/B,OAAO,CAACiD,OAAR,IACD,4BAAC,oBAAD;AACC,MAAA,IAAI,EAAG7C,QAAQ,IAAI8C,gBADpB;AAEC,MAAA,KAAK,EAAGlD,OAAO,CAACiD,OAAR,CAAgBzC,KAFzB;AAGC,MAAA,KAAK,EAAGO,iBAHT;AAIC,MAAA,gBAAgB,EAAGf,OAAO,CAACiD,OAAR,CAAgBP,WAJpC;AAKC,MAAA,QAAQ,EAAGP,eALZ;AAMC,MAAA,QAAQ,EAAGf,oBANZ;AAOC,MAAA,cAAc,EAAC,MAPhB;AAQC,MAAA,WAAW,EAAG,KARf;AASC,MAAA,YAAY,EAAC;AATd,MAVF,CAnCF,CADD;AA8DA;;AAED,MAAK,CAAEnB,eAAP,EAAyB;AACxB,WAAOsC,WAAW,EAAlB;AACA;;AAED,SACC,qDACC,4BAAC,aAAD;AAAW,IAAA,KAAK,EAAGY,eAAOC;AAA1B,KACGb,WAAW,EADd,CADD,EAIGvC,OAAO,CAACqD,MAAR,IACD,4BAAC,aAAD;AAAW,IAAA,KAAK,EAAGF,eAAOC;AAA1B,KACC,4BAAC,6BAAD;AACC,IAAA,KAAK,EAAGpD,OAAO,CAACqD,MAAR,CAAe7C,KADxB;AAEC,IAAA,aAAa,EAAGR,OAAO,CAACqD,MAAR,CAAeC;AAFhC,IADD,CALF,EAYGpD,OAAO,IAAI,4BAAC,gBAAD;AAAc,IAAA,OAAO,EAAGA;AAAxB,IAZd,CADD;AAgBA;;eAEc,sBAAS,CACvB,sBAAcqD,MAAF,IAAc;AACzB,QAAM;AAAEC,IAAAA;AAAF,MAA4BD,MAAM,CAAE,gBAAF,CAAxC;AACA,SAAO;AACNpD,IAAAA,mBAAmB,EAAEqD,qBAAqB;AADpC,GAAP;AAGA,CALD,CADuB,CAAT,EAOV7D,YAPU,C","sourcesContent":["/**\n * External dependencies\n */\nimport { Platform, Clipboard } from 'react-native';\n/**\n * WordPress dependencies\n */\nimport { compose } from '@wordpress/compose';\nimport { withSelect } from '@wordpress/data';\nimport { isURL, prependHTTP } from '@wordpress/url';\nimport {\n\tuseEffect,\n\tuseState,\n\tuseRef,\n\tuseContext,\n\tuseCallback,\n} from '@wordpress/element';\nimport { link, external } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport BottomSheet from '../bottom-sheet';\nimport { BottomSheetContext } from '../bottom-sheet/bottom-sheet-context';\nimport PanelBody from '../../panel/body';\nimport TextControl from '../../text-control';\nimport ToggleControl from '../../toggle-control';\nimport FooterMessageControl from '../../footer-message-control';\nimport PanelActions from '../../panel/actions';\nimport LinkRelIcon from './link-rel';\n\nimport styles from './style.scss';\n\nconst NEW_TAB_REL = 'noreferrer noopener';\n\nfunction LinkSettings( {\n\t// Control link settings `BottomSheet` visibility\n\tisVisible,\n\t// Callback that is called on closing bottom sheet\n\tonClose,\n\t// Function called to set attributes\n\tsetAttributes,\n\t// Callback that is called when url input field is empty\n\tonEmptyURL,\n\t// Object of available options along with specific, customizable properties.\n\t// Available options keys:\n\t//\t* url - uses `TextControl` component to set `attributes.url`\n\t//\t* linkLabel - uses `TextControl` component to set `attributes.label`\n\t//\t* openInNewTab - uses `ToggleControl` component to set `attributes.linkTarget` and `attributes.rel`\n\t//\t* linkRel - uses `TextControl` component to set `attributes.rel`\n\t//\t* footer - uses `FooterMessageControl` component to display message, e.g. about missing functionality\n\t// Available properties:\n\t//\t* label - control component label, e.g. `Button Link URL`\n\t//\t* placeholder - control component placeholder, e.g. `Add URL`\n\t//\t* autoFocus (url only) - whether url input should be focused on sheet opening\n\t//\t* autoFill (url only) - whether url input should be filled with url from clipboard\n\t// Example:\n\t//\tconst options = {\n\t//\t\turl: {\n\t//\t\t\tlabel: __( 'Button Link URL' ),\n\t//\t\t\tplaceholder: __( 'Add URL' ),\n\t//\t\t\tautoFocus: true,\n\t//\t\t\tautoFill: true,\n\t//\t\t}\n\t//\t}\n\toptions,\n\t// Specifies whether settings should be wrapped into `BottomSheet`\n\twithBottomSheet,\n\t// Defines buttons which will be displayed below the all options.\n\t// It's an array of objects with following properties:\n\t//\t* label - button title\n\t//\t* onPress - callback that is called on pressing button\n\t// Example:\n\t// \tconst actions = [\n\t//\t\t{\n\t//\t\t\tlabel: __( 'Remove link' ),\n\t//\t\t\tonPress: () => setAttributes({ url: '' }),\n\t//\t\t},\n\t//\t];\n\tactions,\n\t// Specifies whether general `BottomSheet` is opened\n\teditorSidebarOpened,\n\t// Specifies whether icon should be displayed next to the label\n\tshowIcon,\n\tonLinkCellPressed,\n\turlValue,\n\t// Attributes properties\n\turl,\n\tlabel = '',\n\tlinkTarget,\n\trel = '',\n} ) {\n\tconst [ urlInputValue, setUrlInputValue ] = useState( '' );\n\tconst [ labelInputValue, setLabelInputValue ] = useState( '' );\n\tconst [ linkRelInputValue, setLinkRelInputValue ] = useState( '' );\n\tconst prevEditorSidebarOpenedRef = useRef();\n\n\tconst { onHandleClosingBottomSheet } = useContext( BottomSheetContext );\n\tuseEffect( () => {\n\t\tif ( onHandleClosingBottomSheet ) {\n\t\t\tonHandleClosingBottomSheet( onCloseSettingsSheet );\n\t\t}\n\t}, [ urlInputValue, labelInputValue, linkRelInputValue ] );\n\n\tuseEffect( () => {\n\t\tprevEditorSidebarOpenedRef.current = editorSidebarOpened;\n\t} );\n\tconst prevEditorSidebarOpened = prevEditorSidebarOpenedRef.current;\n\n\tuseEffect( () => {\n\t\tif ( url !== urlInputValue ) {\n\t\t\tsetUrlInputValue( url || '' );\n\t\t}\n\t}, [ url ] );\n\n\tuseEffect( () => {\n\t\tsetLabelInputValue( label || '' );\n\t}, [ label ] );\n\n\tuseEffect( () => {\n\t\tsetLinkRelInputValue( rel || '' );\n\t}, [ rel ] );\n\n\tuseEffect( () => {\n\t\tconst isSettingSheetOpen = isVisible || editorSidebarOpened;\n\t\tif ( options.url.autoFill && isSettingSheetOpen && ! url ) {\n\t\t\tgetURLFromClipboard();\n\t\t}\n\n\t\tif ( prevEditorSidebarOpened && ! editorSidebarOpened ) {\n\t\t\tonSetAttributes();\n\t\t}\n\t}, [ editorSidebarOpened, isVisible ] );\n\n\tuseEffect( () => {\n\t\tif ( ! urlValue && onEmptyURL ) {\n\t\t\tonEmptyURL();\n\t\t}\n\n\t\tif ( prependHTTP( urlValue ) !== url ) {\n\t\t\tsetAttributes( {\n\t\t\t\turl: prependHTTP( urlValue ),\n\t\t\t} );\n\t\t}\n\t}, [ urlValue ] );\n\n\tconst onChangeURL = useCallback(\n\t\t( value ) => {\n\t\t\tif ( ! value && onEmptyURL ) {\n\t\t\t\tonEmptyURL();\n\t\t\t}\n\t\t\tsetUrlInputValue( value );\n\t\t},\n\t\t[ onEmptyURL ]\n\t);\n\n\tconst onChangeLabel = useCallback( ( value ) => {\n\t\tsetLabelInputValue( value );\n\t}, [] );\n\n\tconst onSetAttributes = useCallback( () => {\n\t\tconst newURL = prependHTTP( urlInputValue );\n\t\tif (\n\t\t\turl !== newURL ||\n\t\t\tlabelInputValue !== label ||\n\t\t\tlinkRelInputValue !== rel\n\t\t) {\n\t\t\tsetAttributes( {\n\t\t\t\turl: newURL,\n\t\t\t\tlabel: labelInputValue,\n\t\t\t\trel: linkRelInputValue,\n\t\t\t} );\n\t\t}\n\t}, [ urlInputValue, labelInputValue, linkRelInputValue, setAttributes ] );\n\n\tconst onCloseSettingsSheet = useCallback( () => {\n\t\tonSetAttributes();\n\n\t\tif ( onClose ) {\n\t\t\tonClose();\n\t\t}\n\t}, [ onClose, onSetAttributes ] );\n\n\tconst onChangeOpenInNewTab = useCallback(\n\t\t( value ) => {\n\t\t\tconst newLinkTarget = value ? '_blank' : undefined;\n\n\t\t\tlet updatedRel = linkRelInputValue;\n\t\t\tif ( newLinkTarget && ! linkRelInputValue ) {\n\t\t\t\tupdatedRel = NEW_TAB_REL;\n\t\t\t} else if ( ! newLinkTarget && linkRelInputValue === NEW_TAB_REL ) {\n\t\t\t\tupdatedRel = undefined;\n\t\t\t}\n\n\t\t\tsetAttributes( {\n\t\t\t\tlinkTarget: newLinkTarget,\n\t\t\t\trel: updatedRel,\n\t\t\t} );\n\t\t},\n\t\t[ linkRelInputValue ]\n\t);\n\n\tconst onChangeLinkRel = useCallback( ( value ) => {\n\t\tsetLinkRelInputValue( value );\n\t}, [] );\n\n\tasync function getURLFromClipboard() {\n\t\tconst clipboardText = await Clipboard.getString();\n\n\t\tif ( ! clipboardText ) {\n\t\t\treturn;\n\t\t}\n\t\t// Check if pasted text is URL\n\t\tif ( ! isURL( clipboardText ) ) {\n\t\t\treturn;\n\t\t}\n\n\t\tsetAttributes( { url: clipboardText } );\n\t}\n\n\tfunction getSettings() {\n\t\treturn (\n\t\t\t<>\n\t\t\t\t{ options.url &&\n\t\t\t\t\t( onLinkCellPressed ? (\n\t\t\t\t\t\t<BottomSheet.LinkCell\n\t\t\t\t\t\t\tshowIcon={ showIcon }\n\t\t\t\t\t\t\tvalue={ url }\n\t\t\t\t\t\t\tvalueMask={ options.url.valueMask }\n\t\t\t\t\t\t\tonPress={ onLinkCellPressed }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) : (\n\t\t\t\t\t\t<TextControl\n\t\t\t\t\t\t\ticon={ showIcon && link }\n\t\t\t\t\t\t\tlabel={ options.url.label }\n\t\t\t\t\t\t\tvalue={ urlInputValue }\n\t\t\t\t\t\t\tvaluePlaceholder={ options.url.placeholder }\n\t\t\t\t\t\t\tonChange={ onChangeURL }\n\t\t\t\t\t\t\tonSubmit={ onCloseSettingsSheet }\n\t\t\t\t\t\t\tautoCapitalize=\"none\"\n\t\t\t\t\t\t\tautoCorrect={ false }\n\t\t\t\t\t\t\t// eslint-disable-next-line jsx-a11y/no-autofocus\n\t\t\t\t\t\t\tautoFocus={\n\t\t\t\t\t\t\t\tPlatform.OS === 'ios' && options.url.autoFocus\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tkeyboardType=\"url\"\n\t\t\t\t\t\t/>\n\t\t\t\t\t) ) }\n\t\t\t\t{ options.linkLabel && (\n\t\t\t\t\t<TextControl\n\t\t\t\t\t\tlabel={ options.linkLabel.label }\n\t\t\t\t\t\tvalue={ labelInputValue }\n\t\t\t\t\t\tvaluePlaceholder={ options.linkLabel.placeholder }\n\t\t\t\t\t\tonChange={ onChangeLabel }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t\t{ !! urlInputValue && (\n\t\t\t\t\t<>\n\t\t\t\t\t\t{ options.openInNewTab && (\n\t\t\t\t\t\t\t<ToggleControl\n\t\t\t\t\t\t\t\ticon={ showIcon && external }\n\t\t\t\t\t\t\t\tlabel={ options.openInNewTab.label }\n\t\t\t\t\t\t\t\tchecked={ linkTarget === '_blank' }\n\t\t\t\t\t\t\t\tonChange={ onChangeOpenInNewTab }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t) }\n\t\t\t\t\t\t{ options.linkRel && (\n\t\t\t\t\t\t\t<TextControl\n\t\t\t\t\t\t\t\ticon={ showIcon && LinkRelIcon }\n\t\t\t\t\t\t\t\tlabel={ options.linkRel.label }\n\t\t\t\t\t\t\t\tvalue={ linkRelInputValue }\n\t\t\t\t\t\t\t\tvaluePlaceholder={ options.linkRel.placeholder }\n\t\t\t\t\t\t\t\tonChange={ onChangeLinkRel }\n\t\t\t\t\t\t\t\tonSubmit={ onCloseSettingsSheet }\n\t\t\t\t\t\t\t\tautoCapitalize=\"none\"\n\t\t\t\t\t\t\t\tautoCorrect={ false }\n\t\t\t\t\t\t\t\tkeyboardType=\"default\"\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\tif ( ! withBottomSheet ) {\n\t\treturn getSettings();\n\t}\n\n\treturn (\n\t\t<>\n\t\t\t<PanelBody style={ styles.linkSettingsPanel }>\n\t\t\t\t{ getSettings() }\n\t\t\t</PanelBody>\n\t\t\t{ options.footer && (\n\t\t\t\t<PanelBody style={ styles.linkSettingsPanel }>\n\t\t\t\t\t<FooterMessageControl\n\t\t\t\t\t\tlabel={ options.footer.label }\n\t\t\t\t\t\tseparatorType={ options.footer.separatorType }\n\t\t\t\t\t/>\n\t\t\t\t</PanelBody>\n\t\t\t) }\n\t\t\t{ actions && <PanelActions actions={ actions } /> }\n\t\t</>\n\t);\n}\n\nexport default compose( [\n\twithSelect( ( select ) => {\n\t\tconst { isEditorSidebarOpened } = select( 'core/edit-post' );\n\t\treturn {\n\t\t\teditorSidebarOpened: isEditorSidebarOpened(),\n\t\t};\n\t} ),\n] )( LinkSettings );\n"]}
@@ -9,8 +9,6 @@ exports.showApp = showApp;
9
9
 
10
10
  var _lodash = require("lodash");
11
11
 
12
- //@ts-nocheck
13
-
14
12
  /**
15
13
  * External dependencies
16
14
  */
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/components/src/modal/aria-helper.js"],"names":["LIVE_REGION_ARIA_ROLES","Set","hiddenElements","isHidden","hideApp","unhiddenElement","elements","document","body","children","element","elementShouldBeHidden","setAttribute","push","role","getAttribute","tagName","hasAttribute","has","showApp","removeAttribute"],"mappings":";;;;;;;;;AAKA;;AALA;;AAEA;AACA;AACA;AAGA,MAAMA,sBAAsB,GAAG,IAAIC,GAAJ,CAAS,CACvC,OADuC,EAEvC,QAFuC,EAGvC,KAHuC,EAIvC,SAJuC,EAKvC,OALuC,CAAT,CAA/B;AAQA,IAAIC,cAAc,GAAG,EAArB;AAAA,IACCC,QAAQ,GAAG,KADZ;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACO,SAASC,OAAT,CAAkBC,eAAlB,EAAoC;AAC1C,MAAKF,QAAL,EAAgB;AACf;AACA;;AACD,QAAMG,QAAQ,GAAGC,QAAQ,CAACC,IAAT,CAAcC,QAA/B;AACA,uBAASH,QAAT,EAAqBI,OAAF,IAAe;AACjC,QAAKA,OAAO,KAAKL,eAAjB,EAAmC;AAClC;AACA;;AACD,QAAKM,qBAAqB,CAAED,OAAF,CAA1B,EAAwC;AACvCA,MAAAA,OAAO,CAACE,YAAR,CAAsB,aAAtB,EAAqC,MAArC;AACAV,MAAAA,cAAc,CAACW,IAAf,CAAqBH,OAArB;AACA;AACD,GARD;AASAP,EAAAA,QAAQ,GAAG,IAAX;AACA;AAED;AACA;AACA;AACA;AACA;AACA;AACA;;;AACO,SAASQ,qBAAT,CAAgCD,OAAhC,EAA0C;AAChD,QAAMI,IAAI,GAAGJ,OAAO,CAACK,YAAR,CAAsB,MAAtB,CAAb;AACA,SAAO,EACNL,OAAO,CAACM,OAAR,KAAoB,QAApB,IACAN,OAAO,CAACO,YAAR,CAAsB,aAAtB,CADA,IAEAP,OAAO,CAACO,YAAR,CAAsB,WAAtB,CAFA,IAGAjB,sBAAsB,CAACkB,GAAvB,CAA4BJ,IAA5B,CAJM,CAAP;AAMA;AAED;AACA;AACA;AACA;;;AACO,SAASK,OAAT,GAAmB;AACzB,MAAK,CAAEhB,QAAP,EAAkB;AACjB;AACA;;AACD,uBAASD,cAAT,EAA2BQ,OAAF,IAAe;AACvCA,IAAAA,OAAO,CAACU,eAAR,CAAyB,aAAzB;AACA,GAFD;AAGAlB,EAAAA,cAAc,GAAG,EAAjB;AACAC,EAAAA,QAAQ,GAAG,KAAX;AACA","sourcesContent":["//@ts-nocheck\n\n/**\n * External dependencies\n */\nimport { forEach } from 'lodash';\n\nconst LIVE_REGION_ARIA_ROLES = new Set( [\n\t'alert',\n\t'status',\n\t'log',\n\t'marquee',\n\t'timer',\n] );\n\nlet hiddenElements = [],\n\tisHidden = false;\n\n/**\n * Hides all elements in the body element from screen-readers except\n * the provided element and elements that should not be hidden from\n * screen-readers.\n *\n * The reason we do this is because `aria-modal=\"true\"` currently is bugged\n * in Safari, and support is spotty in other browsers overall. In the future\n * we should consider removing these helper functions in favor of\n * `aria-modal=\"true\"`.\n *\n * @param {Element} unhiddenElement The element that should not be hidden.\n */\nexport function hideApp( unhiddenElement ) {\n\tif ( isHidden ) {\n\t\treturn;\n\t}\n\tconst elements = document.body.children;\n\tforEach( elements, ( element ) => {\n\t\tif ( element === unhiddenElement ) {\n\t\t\treturn;\n\t\t}\n\t\tif ( elementShouldBeHidden( element ) ) {\n\t\t\telement.setAttribute( 'aria-hidden', 'true' );\n\t\t\thiddenElements.push( element );\n\t\t}\n\t} );\n\tisHidden = true;\n}\n\n/**\n * Determines if the passed element should not be hidden from screen readers.\n *\n * @param {HTMLElement} element The element that should be checked.\n *\n * @return {boolean} Whether the element should not be hidden from screen-readers.\n */\nexport function elementShouldBeHidden( element ) {\n\tconst role = element.getAttribute( 'role' );\n\treturn ! (\n\t\telement.tagName === 'SCRIPT' ||\n\t\telement.hasAttribute( 'aria-hidden' ) ||\n\t\telement.hasAttribute( 'aria-live' ) ||\n\t\tLIVE_REGION_ARIA_ROLES.has( role )\n\t);\n}\n\n/**\n * Makes all elements in the body that have been hidden by `hideApp`\n * visible again to screen-readers.\n */\nexport function showApp() {\n\tif ( ! isHidden ) {\n\t\treturn;\n\t}\n\tforEach( hiddenElements, ( element ) => {\n\t\telement.removeAttribute( 'aria-hidden' );\n\t} );\n\thiddenElements = [];\n\tisHidden = false;\n}\n"]}
1
+ {"version":3,"sources":["@wordpress/components/src/modal/aria-helper.js"],"names":["LIVE_REGION_ARIA_ROLES","Set","hiddenElements","isHidden","hideApp","unhiddenElement","elements","document","body","children","element","elementShouldBeHidden","setAttribute","push","role","getAttribute","tagName","hasAttribute","has","showApp","removeAttribute"],"mappings":";;;;;;;;;AAGA;;AAHA;AACA;AACA;AAGA,MAAMA,sBAAsB,GAAG,IAAIC,GAAJ,CAAS,CACvC,OADuC,EAEvC,QAFuC,EAGvC,KAHuC,EAIvC,SAJuC,EAKvC,OALuC,CAAT,CAA/B;AAQA,IAAIC,cAAc,GAAG,EAArB;AAAA,IACCC,QAAQ,GAAG,KADZ;AAGA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;;AACO,SAASC,OAAT,CAAkBC,eAAlB,EAAoC;AAC1C,MAAKF,QAAL,EAAgB;AACf;AACA;;AACD,QAAMG,QAAQ,GAAGC,QAAQ,CAACC,IAAT,CAAcC,QAA/B;AACA,uBAASH,QAAT,EAAqBI,OAAF,IAAe;AACjC,QAAKA,OAAO,KAAKL,eAAjB,EAAmC;AAClC;AACA;;AACD,QAAKM,qBAAqB,CAAED,OAAF,CAA1B,EAAwC;AACvCA,MAAAA,OAAO,CAACE,YAAR,CAAsB,aAAtB,EAAqC,MAArC;AACAV,MAAAA,cAAc,CAACW,IAAf,CAAqBH,OAArB;AACA;AACD,GARD;AASAP,EAAAA,QAAQ,GAAG,IAAX;AACA;AAED;AACA;AACA;AACA;AACA;AACA;AACA;;;AACO,SAASQ,qBAAT,CAAgCD,OAAhC,EAA0C;AAChD,QAAMI,IAAI,GAAGJ,OAAO,CAACK,YAAR,CAAsB,MAAtB,CAAb;AACA,SAAO,EACNL,OAAO,CAACM,OAAR,KAAoB,QAApB,IACAN,OAAO,CAACO,YAAR,CAAsB,aAAtB,CADA,IAEAP,OAAO,CAACO,YAAR,CAAsB,WAAtB,CAFA,IAGAjB,sBAAsB,CAACkB,GAAvB,CAA4BJ,IAA5B,CAJM,CAAP;AAMA;AAED;AACA;AACA;AACA;;;AACO,SAASK,OAAT,GAAmB;AACzB,MAAK,CAAEhB,QAAP,EAAkB;AACjB;AACA;;AACD,uBAASD,cAAT,EAA2BQ,OAAF,IAAe;AACvCA,IAAAA,OAAO,CAACU,eAAR,CAAyB,aAAzB;AACA,GAFD;AAGAlB,EAAAA,cAAc,GAAG,EAAjB;AACAC,EAAAA,QAAQ,GAAG,KAAX;AACA","sourcesContent":["/**\n * External dependencies\n */\nimport { forEach } from 'lodash';\n\nconst LIVE_REGION_ARIA_ROLES = new Set( [\n\t'alert',\n\t'status',\n\t'log',\n\t'marquee',\n\t'timer',\n] );\n\nlet hiddenElements = [],\n\tisHidden = false;\n\n/**\n * Hides all elements in the body element from screen-readers except\n * the provided element and elements that should not be hidden from\n * screen-readers.\n *\n * The reason we do this is because `aria-modal=\"true\"` currently is bugged\n * in Safari, and support is spotty in other browsers overall. In the future\n * we should consider removing these helper functions in favor of\n * `aria-modal=\"true\"`.\n *\n * @param {Element} unhiddenElement The element that should not be hidden.\n */\nexport function hideApp( unhiddenElement ) {\n\tif ( isHidden ) {\n\t\treturn;\n\t}\n\tconst elements = document.body.children;\n\tforEach( elements, ( element ) => {\n\t\tif ( element === unhiddenElement ) {\n\t\t\treturn;\n\t\t}\n\t\tif ( elementShouldBeHidden( element ) ) {\n\t\t\telement.setAttribute( 'aria-hidden', 'true' );\n\t\t\thiddenElements.push( element );\n\t\t}\n\t} );\n\tisHidden = true;\n}\n\n/**\n * Determines if the passed element should not be hidden from screen readers.\n *\n * @param {HTMLElement} element The element that should be checked.\n *\n * @return {boolean} Whether the element should not be hidden from screen-readers.\n */\nexport function elementShouldBeHidden( element ) {\n\tconst role = element.getAttribute( 'role' );\n\treturn ! (\n\t\telement.tagName === 'SCRIPT' ||\n\t\telement.hasAttribute( 'aria-hidden' ) ||\n\t\telement.hasAttribute( 'aria-live' ) ||\n\t\tLIVE_REGION_ARIA_ROLES.has( role )\n\t);\n}\n\n/**\n * Makes all elements in the body that have been hidden by `hideApp`\n * visible again to screen-readers.\n */\nexport function showApp() {\n\tif ( ! isHidden ) {\n\t\treturn;\n\t}\n\tforEach( hiddenElements, ( element ) => {\n\t\telement.removeAttribute( 'aria-hidden' );\n\t} );\n\thiddenElements = [];\n\tisHidden = false;\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 = Modal;
9
9
 
10
10
  var _element = require("@wordpress/element");
11
11
 
@@ -33,8 +33,6 @@ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "functio
33
33
 
34
34
  function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
35
35
 
36
- //@ts-nocheck
37
-
38
36
  /**
39
37
  * External dependencies
40
38
  */
@@ -49,8 +47,8 @@ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj &&
49
47
  // Used to count the number of open modals.
50
48
  let openModalCount = 0;
51
49
 
52
- function Modal(props, forwardedRef) {
53
- const {
50
+ function Modal(_ref) {
51
+ let {
54
52
  bodyOpenClassName = 'modal-open',
55
53
  role = 'dialog',
56
54
  title = null,
@@ -75,9 +73,8 @@ function Modal(props, forwardedRef) {
75
73
  className,
76
74
  contentLabel,
77
75
  onKeyDown,
78
- isFullScreen = false,
79
- __experimentalHideHeader = false
80
- } = props;
76
+ isFullScreen = false
77
+ } = _ref;
81
78
  const ref = (0, _element.useRef)();
82
79
  const instanceId = (0, _compose.useInstanceId)(Modal);
83
80
  const headingId = title ? `components-modal-header-${instanceId}` : aria.labelledby;
@@ -122,7 +119,7 @@ function Modal(props, forwardedRef) {
122
119
 
123
120
  return (0, _element.createPortal)( // eslint-disable-next-line jsx-a11y/no-static-element-interactions
124
121
  (0, _element.createElement)("div", {
125
- ref: (0, _compose.useMergeRefs)([ref, forwardedRef]),
122
+ ref: ref,
126
123
  className: (0, _classnames.default)('components-modal__screen-overlay', overlayClassName),
127
124
  onKeyDown: handleEscapeKeyDown
128
125
  }, (0, _element.createElement)(_styleProvider.default, {
@@ -141,11 +138,9 @@ function Modal(props, forwardedRef) {
141
138
  }, shouldCloseOnClickOutside ? focusOutsideProps : {}, {
142
139
  onKeyDown: onKeyDown
143
140
  }), (0, _element.createElement)("div", {
144
- className: (0, _classnames.default)('components-modal__content', {
145
- 'hide-header': __experimentalHideHeader
146
- }),
141
+ className: 'components-modal__content',
147
142
  role: "document"
148
- }, !__experimentalHideHeader && (0, _element.createElement)("div", {
143
+ }, (0, _element.createElement)("div", {
149
144
  className: "components-modal__header"
150
145
  }, (0, _element.createElement)("div", {
151
146
  className: "components-modal__header-heading-container"
@@ -161,8 +156,4 @@ function Modal(props, forwardedRef) {
161
156
  label: closeButtonLabel || (0, _i18n.__)('Close dialog')
162
157
  })), children)))), document.body);
163
158
  }
164
-
165
- var _default = (0, _element.forwardRef)(Modal);
166
-
167
- exports.default = _default;
168
159
  //# sourceMappingURL=index.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/components/src/modal/index.js"],"names":["openModalCount","Modal","props","forwardedRef","bodyOpenClassName","role","title","focusOnMount","shouldCloseOnEsc","shouldCloseOnClickOutside","isDismissable","isDismissible","aria","labelledby","describedby","onRequestClose","icon","closeButtonLabel","children","style","overlayClassName","className","contentLabel","onKeyDown","isFullScreen","__experimentalHideHeader","ref","instanceId","headingId","focusOnMountRef","constrainedTabbingRef","focusReturnRef","focusOutsideProps","ariaHelper","hideApp","current","document","body","classList","add","remove","showApp","since","alternative","handleEscapeKeyDown","event","keyCode","ESCAPE","defaultPrevented","preventDefault","closeSmall"],"mappings":"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","sourcesContent":["//@ts-nocheck\n\n/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport {\n\tcreatePortal,\n\tuseEffect,\n\tuseRef,\n\tforwardRef,\n} from '@wordpress/element';\nimport {\n\tuseInstanceId,\n\tuseFocusReturn,\n\tuseFocusOnMount,\n\t__experimentalUseFocusOutside as useFocusOutside,\n\tuseConstrainedTabbing,\n\tuseMergeRefs,\n} from '@wordpress/compose';\nimport deprecated from '@wordpress/deprecated';\nimport { ESCAPE } from '@wordpress/keycodes';\nimport { __ } from '@wordpress/i18n';\nimport { closeSmall } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport * as ariaHelper from './aria-helper';\nimport Button from '../button';\nimport StyleProvider from '../style-provider';\n\n// Used to count the number of open modals.\nlet openModalCount = 0;\n\nfunction Modal( props, forwardedRef ) {\n\tconst {\n\t\tbodyOpenClassName = 'modal-open',\n\t\trole = 'dialog',\n\t\ttitle = null,\n\t\tfocusOnMount = true,\n\t\tshouldCloseOnEsc = true,\n\t\tshouldCloseOnClickOutside = true,\n\t\tisDismissable, // Deprecated\n\t\tisDismissible = isDismissable || true,\n\t\t/* accessibility */\n\t\taria = {\n\t\t\tlabelledby: null,\n\t\t\tdescribedby: null,\n\t\t},\n\t\tonRequestClose,\n\t\ticon,\n\t\tcloseButtonLabel,\n\t\tchildren,\n\t\tstyle,\n\t\toverlayClassName,\n\t\tclassName,\n\t\tcontentLabel,\n\t\tonKeyDown,\n\t\tisFullScreen = false,\n\t\t__experimentalHideHeader = false,\n\t} = props;\n\n\tconst ref = useRef();\n\tconst instanceId = useInstanceId( Modal );\n\tconst headingId = title\n\t\t? `components-modal-header-${ instanceId }`\n\t\t: aria.labelledby;\n\tconst focusOnMountRef = useFocusOnMount( focusOnMount );\n\tconst constrainedTabbingRef = useConstrainedTabbing();\n\tconst focusReturnRef = useFocusReturn();\n\tconst focusOutsideProps = useFocusOutside( onRequestClose );\n\n\tuseEffect( () => {\n\t\topenModalCount++;\n\n\t\tif ( openModalCount === 1 ) {\n\t\t\tariaHelper.hideApp( ref.current );\n\t\t\tdocument.body.classList.add( bodyOpenClassName );\n\t\t}\n\n\t\treturn () => {\n\t\t\topenModalCount--;\n\n\t\t\tif ( openModalCount === 0 ) {\n\t\t\t\tdocument.body.classList.remove( bodyOpenClassName );\n\t\t\t\tariaHelper.showApp();\n\t\t\t}\n\t\t};\n\t}, [] );\n\n\tif ( isDismissable ) {\n\t\tdeprecated( 'isDismissable prop of the Modal component', {\n\t\t\tsince: '5.4',\n\t\t\talternative: 'isDismissible prop (renamed) of the Modal component',\n\t\t} );\n\t}\n\n\tfunction handleEscapeKeyDown( event ) {\n\t\tif (\n\t\t\tshouldCloseOnEsc &&\n\t\t\tevent.keyCode === ESCAPE &&\n\t\t\t! event.defaultPrevented\n\t\t) {\n\t\t\tevent.preventDefault();\n\t\t\tif ( onRequestClose ) {\n\t\t\t\tonRequestClose( event );\n\t\t\t}\n\t\t}\n\t}\n\n\treturn createPortal(\n\t\t// eslint-disable-next-line jsx-a11y/no-static-element-interactions\n\t\t<div\n\t\t\tref={ useMergeRefs( [ ref, forwardedRef ] ) }\n\t\t\tclassName={ classnames(\n\t\t\t\t'components-modal__screen-overlay',\n\t\t\t\toverlayClassName\n\t\t\t) }\n\t\t\tonKeyDown={ handleEscapeKeyDown }\n\t\t>\n\t\t\t<StyleProvider document={ document }>\n\t\t\t\t<div\n\t\t\t\t\tclassName={ classnames(\n\t\t\t\t\t\t'components-modal__frame',\n\t\t\t\t\t\tclassName,\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t'is-full-screen': isFullScreen,\n\t\t\t\t\t\t}\n\t\t\t\t\t) }\n\t\t\t\t\tstyle={ style }\n\t\t\t\t\tref={ useMergeRefs( [\n\t\t\t\t\t\tconstrainedTabbingRef,\n\t\t\t\t\t\tfocusReturnRef,\n\t\t\t\t\t\tfocusOnMountRef,\n\t\t\t\t\t] ) }\n\t\t\t\t\trole={ role }\n\t\t\t\t\taria-label={ contentLabel }\n\t\t\t\t\taria-labelledby={ contentLabel ? null : headingId }\n\t\t\t\t\taria-describedby={ aria.describedby }\n\t\t\t\t\ttabIndex=\"-1\"\n\t\t\t\t\t{ ...( shouldCloseOnClickOutside\n\t\t\t\t\t\t? focusOutsideProps\n\t\t\t\t\t\t: {} ) }\n\t\t\t\t\tonKeyDown={ onKeyDown }\n\t\t\t\t>\n\t\t\t\t\t<div\n\t\t\t\t\t\tclassName={ classnames( 'components-modal__content', {\n\t\t\t\t\t\t\t'hide-header': __experimentalHideHeader,\n\t\t\t\t\t\t} ) }\n\t\t\t\t\t\trole=\"document\"\n\t\t\t\t\t>\n\t\t\t\t\t\t{ ! __experimentalHideHeader && (\n\t\t\t\t\t\t\t<div className=\"components-modal__header\">\n\t\t\t\t\t\t\t\t<div className=\"components-modal__header-heading-container\">\n\t\t\t\t\t\t\t\t\t{ icon && (\n\t\t\t\t\t\t\t\t\t\t<span\n\t\t\t\t\t\t\t\t\t\t\tclassName=\"components-modal__icon-container\"\n\t\t\t\t\t\t\t\t\t\t\taria-hidden\n\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t{ icon }\n\t\t\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t{ title && (\n\t\t\t\t\t\t\t\t\t\t<h1\n\t\t\t\t\t\t\t\t\t\t\tid={ headingId }\n\t\t\t\t\t\t\t\t\t\t\tclassName=\"components-modal__header-heading\"\n\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t{ title }\n\t\t\t\t\t\t\t\t\t\t</h1>\n\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t\t{ isDismissible && (\n\t\t\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t\t\tonClick={ onRequestClose }\n\t\t\t\t\t\t\t\t\t\ticon={ closeSmall }\n\t\t\t\t\t\t\t\t\t\tlabel={\n\t\t\t\t\t\t\t\t\t\t\tcloseButtonLabel ||\n\t\t\t\t\t\t\t\t\t\t\t__( 'Close dialog' )\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t) }\n\t\t\t\t\t\t{ children }\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t</StyleProvider>\n\t\t</div>,\n\t\tdocument.body\n\t);\n}\n\nexport default forwardRef( Modal );\n"]}
1
+ {"version":3,"sources":["@wordpress/components/src/modal/index.js"],"names":["openModalCount","Modal","bodyOpenClassName","role","title","focusOnMount","shouldCloseOnEsc","shouldCloseOnClickOutside","isDismissable","isDismissible","aria","labelledby","describedby","onRequestClose","icon","closeButtonLabel","children","style","overlayClassName","className","contentLabel","onKeyDown","isFullScreen","ref","instanceId","headingId","focusOnMountRef","constrainedTabbingRef","focusReturnRef","focusOutsideProps","ariaHelper","hideApp","current","document","body","classList","add","remove","showApp","since","alternative","handleEscapeKeyDown","event","keyCode","ESCAPE","defaultPrevented","preventDefault","closeSmall"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\n\n/**\n * WordPress dependencies\n */\nimport { createPortal, useEffect, useRef } from '@wordpress/element';\nimport {\n\tuseInstanceId,\n\tuseFocusReturn,\n\tuseFocusOnMount,\n\t__experimentalUseFocusOutside as useFocusOutside,\n\tuseConstrainedTabbing,\n\tuseMergeRefs,\n} from '@wordpress/compose';\nimport deprecated from '@wordpress/deprecated';\nimport { ESCAPE } from '@wordpress/keycodes';\nimport { __ } from '@wordpress/i18n';\nimport { closeSmall } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport * as ariaHelper from './aria-helper';\nimport Button from '../button';\nimport StyleProvider from '../style-provider';\n\n// Used to count the number of open modals.\nlet openModalCount = 0;\n\nexport default function Modal( {\n\tbodyOpenClassName = 'modal-open',\n\trole = 'dialog',\n\ttitle = null,\n\tfocusOnMount = true,\n\tshouldCloseOnEsc = true,\n\tshouldCloseOnClickOutside = true,\n\tisDismissable, // Deprecated\n\tisDismissible = isDismissable || true,\n\t/* accessibility */\n\taria = {\n\t\tlabelledby: null,\n\t\tdescribedby: null,\n\t},\n\tonRequestClose,\n\ticon,\n\tcloseButtonLabel,\n\tchildren,\n\tstyle,\n\toverlayClassName,\n\tclassName,\n\tcontentLabel,\n\tonKeyDown,\n\tisFullScreen = false,\n} ) {\n\tconst ref = useRef();\n\tconst instanceId = useInstanceId( Modal );\n\tconst headingId = title\n\t\t? `components-modal-header-${ instanceId }`\n\t\t: aria.labelledby;\n\tconst focusOnMountRef = useFocusOnMount( focusOnMount );\n\tconst constrainedTabbingRef = useConstrainedTabbing();\n\tconst focusReturnRef = useFocusReturn();\n\tconst focusOutsideProps = useFocusOutside( onRequestClose );\n\n\tuseEffect( () => {\n\t\topenModalCount++;\n\n\t\tif ( openModalCount === 1 ) {\n\t\t\tariaHelper.hideApp( ref.current );\n\t\t\tdocument.body.classList.add( bodyOpenClassName );\n\t\t}\n\n\t\treturn () => {\n\t\t\topenModalCount--;\n\n\t\t\tif ( openModalCount === 0 ) {\n\t\t\t\tdocument.body.classList.remove( bodyOpenClassName );\n\t\t\t\tariaHelper.showApp();\n\t\t\t}\n\t\t};\n\t}, [] );\n\n\tif ( isDismissable ) {\n\t\tdeprecated( 'isDismissable prop of the Modal component', {\n\t\t\tsince: '5.4',\n\t\t\talternative: 'isDismissible prop (renamed) of the Modal component',\n\t\t} );\n\t}\n\n\tfunction handleEscapeKeyDown( event ) {\n\t\tif (\n\t\t\tshouldCloseOnEsc &&\n\t\t\tevent.keyCode === ESCAPE &&\n\t\t\t! event.defaultPrevented\n\t\t) {\n\t\t\tevent.preventDefault();\n\t\t\tif ( onRequestClose ) {\n\t\t\t\tonRequestClose( event );\n\t\t\t}\n\t\t}\n\t}\n\n\treturn createPortal(\n\t\t// eslint-disable-next-line jsx-a11y/no-static-element-interactions\n\t\t<div\n\t\t\tref={ ref }\n\t\t\tclassName={ classnames(\n\t\t\t\t'components-modal__screen-overlay',\n\t\t\t\toverlayClassName\n\t\t\t) }\n\t\t\tonKeyDown={ handleEscapeKeyDown }\n\t\t>\n\t\t\t<StyleProvider document={ document }>\n\t\t\t\t<div\n\t\t\t\t\tclassName={ classnames(\n\t\t\t\t\t\t'components-modal__frame',\n\t\t\t\t\t\tclassName,\n\t\t\t\t\t\t{\n\t\t\t\t\t\t\t'is-full-screen': isFullScreen,\n\t\t\t\t\t\t}\n\t\t\t\t\t) }\n\t\t\t\t\tstyle={ style }\n\t\t\t\t\tref={ useMergeRefs( [\n\t\t\t\t\t\tconstrainedTabbingRef,\n\t\t\t\t\t\tfocusReturnRef,\n\t\t\t\t\t\tfocusOnMountRef,\n\t\t\t\t\t] ) }\n\t\t\t\t\trole={ role }\n\t\t\t\t\taria-label={ contentLabel }\n\t\t\t\t\taria-labelledby={ contentLabel ? null : headingId }\n\t\t\t\t\taria-describedby={ aria.describedby }\n\t\t\t\t\ttabIndex=\"-1\"\n\t\t\t\t\t{ ...( shouldCloseOnClickOutside\n\t\t\t\t\t\t? focusOutsideProps\n\t\t\t\t\t\t: {} ) }\n\t\t\t\t\tonKeyDown={ onKeyDown }\n\t\t\t\t>\n\t\t\t\t\t<div\n\t\t\t\t\t\tclassName={ 'components-modal__content' }\n\t\t\t\t\t\trole=\"document\"\n\t\t\t\t\t>\n\t\t\t\t\t\t<div className=\"components-modal__header\">\n\t\t\t\t\t\t\t<div className=\"components-modal__header-heading-container\">\n\t\t\t\t\t\t\t\t{ icon && (\n\t\t\t\t\t\t\t\t\t<span\n\t\t\t\t\t\t\t\t\t\tclassName=\"components-modal__icon-container\"\n\t\t\t\t\t\t\t\t\t\taria-hidden\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t{ icon }\n\t\t\t\t\t\t\t\t\t</span>\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t{ title && (\n\t\t\t\t\t\t\t\t\t<h1\n\t\t\t\t\t\t\t\t\t\tid={ headingId }\n\t\t\t\t\t\t\t\t\t\tclassName=\"components-modal__header-heading\"\n\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t{ title }\n\t\t\t\t\t\t\t\t\t</h1>\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t</div>\n\t\t\t\t\t\t\t{ isDismissible && (\n\t\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t\tonClick={ onRequestClose }\n\t\t\t\t\t\t\t\t\ticon={ closeSmall }\n\t\t\t\t\t\t\t\t\tlabel={\n\t\t\t\t\t\t\t\t\t\tcloseButtonLabel || __( 'Close dialog' )\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t</div>\n\t\t\t\t\t\t{ children }\n\t\t\t\t\t</div>\n\t\t\t\t</div>\n\t\t\t</StyleProvider>\n\t\t</div>,\n\t\tdocument.body\n\t);\n}\n"]}
@@ -58,6 +58,8 @@ var _customGradientPicker = _interopRequireDefault(require("../custom-gradient-p
58
58
  /**
59
59
  * Internal dependencies
60
60
  */
61
+ const DEFAULT_COLOR = '#000';
62
+
61
63
  function NameInput(_ref) {
62
64
  let {
63
65
  value,
@@ -72,6 +74,12 @@ function NameInput(_ref) {
72
74
  });
73
75
  }
74
76
 
77
+ function getNameForPosition(position) {
78
+ return (0, _i18n.sprintf)(
79
+ /* translators: %s: is a temporary id for a custom color */
80
+ (0, _i18n.__)('Color %s '), position + 1);
81
+ }
82
+
75
83
  function Option(_ref2) {
76
84
  let {
77
85
  canOnlyChangeValues,
@@ -125,7 +133,16 @@ function Option(_ref2) {
125
133
  })));
126
134
  }
127
135
 
128
- function PaletteEditListView(_ref3) {
136
+ function isTemporaryElement(slugPrefix, _ref3, index) {
137
+ let {
138
+ slug,
139
+ color,
140
+ gradient
141
+ } = _ref3;
142
+ return slug === slugPrefix + (0, _lodash.kebabCase)(getNameForPosition(index)) && (!!color && color === DEFAULT_COLOR || !!gradient && gradient === _constants.DEFAULT_GRADIENT);
143
+ }
144
+
145
+ function PaletteEditListView(_ref4) {
129
146
  let {
130
147
  elements,
131
148
  onChange,
@@ -134,7 +151,7 @@ function PaletteEditListView(_ref3) {
134
151
  canOnlyChangeValues,
135
152
  slugPrefix,
136
153
  isGradient
137
- } = _ref3;
154
+ } = _ref4;
138
155
  // When unmounting the component if there are empty elements (the user did not complete the insertion) clean them.
139
156
  const elementsReference = (0, _element.useRef)();
140
157
  (0, _element.useEffect)(() => {
@@ -142,18 +159,8 @@ function PaletteEditListView(_ref3) {
142
159
  }, [elements]);
143
160
  (0, _element.useEffect)(() => {
144
161
  return () => {
145
- if (elementsReference.current.some(_ref4 => {
146
- let {
147
- slug
148
- } = _ref4;
149
- return !slug;
150
- })) {
151
- const newElements = elementsReference.current.filter(_ref5 => {
152
- let {
153
- slug
154
- } = _ref5;
155
- return slug;
156
- });
162
+ if (elementsReference.current.some((element, index) => isTemporaryElement(slugPrefix, element, index))) {
163
+ const newElements = elementsReference.current.filter((element, index) => !isTemporaryElement(slugPrefix, element, index));
157
164
  onChange(newElements.length ? newElements : undefined);
158
165
  }
159
166
  };
@@ -205,7 +212,7 @@ function PaletteEditListView(_ref3) {
205
212
 
206
213
  const EMPTY_ARRAY = [];
207
214
 
208
- function PaletteEdit(_ref6) {
215
+ function PaletteEdit(_ref5) {
209
216
  let {
210
217
  gradients,
211
218
  colors = EMPTY_ARRAY,
@@ -215,7 +222,7 @@ function PaletteEdit(_ref6) {
215
222
  canOnlyChangeValues,
216
223
  canReset,
217
224
  slugPrefix = ''
218
- } = _ref6;
225
+ } = _ref5;
219
226
  const isGradient = !!gradients;
220
227
  const elements = isGradient ? gradients : colors;
221
228
  const [isEditing, setIsEditing] = (0, _element.useState)(false);
@@ -235,41 +242,38 @@ function PaletteEdit(_ref6) {
235
242
  icon: _icons.plus,
236
243
  label: isGradient ? (0, _i18n.__)('Add gradient') : (0, _i18n.__)('Add color'),
237
244
  onClick: () => {
238
- const tempOptionName = (0, _i18n.sprintf)(
239
- /* translators: %s: is a temporary id for a custom color */
240
- (0, _i18n.__)('Color %s '), elementsLength + 1);
245
+ const tempOptionName = getNameForPosition(elementsLength);
241
246
  onChange([...elements, { ...(isGradient ? {
242
247
  gradient: _constants.DEFAULT_GRADIENT
243
248
  } : {
244
- color: '#000'
249
+ color: DEFAULT_COLOR
245
250
  }),
246
251
  name: tempOptionName,
247
- slug: ''
252
+ slug: slugPrefix + (0, _lodash.kebabCase)(tempOptionName)
248
253
  }]);
249
254
  setIsEditing(true);
250
255
  setEditingElement(elements.length);
251
256
  }
252
- }), hasElements && (canReset || !canOnlyChangeValues) && (0, _element.createElement)(_dropdownMenu.default, {
257
+ }), hasElements && (!isEditing || !canOnlyChangeValues || canReset) && (0, _element.createElement)(_dropdownMenu.default, {
253
258
  icon: _icons.moreVertical,
254
259
  label: isGradient ? (0, _i18n.__)('Gradient options') : (0, _i18n.__)('Color options'),
255
260
  toggleProps: {
256
261
  isSmall: true
257
262
  }
258
- }, _ref7 => {
263
+ }, _ref6 => {
259
264
  let {
260
265
  onClose
261
- } = _ref7;
266
+ } = _ref6;
262
267
  return (0, _element.createElement)(_element.Fragment, null, (0, _element.createElement)(_navigableContainer.NavigableMenu, {
263
268
  role: "menu"
264
- }, (0, _element.createElement)(_button.default, {
269
+ }, !isEditing && (0, _element.createElement)(_button.default, {
265
270
  variant: "tertiary",
266
- disabled: isEditing,
267
271
  onClick: () => {
268
272
  setIsEditing(true);
269
273
  onClose();
270
274
  },
271
275
  className: "components-palette-edit__menu-button"
272
- }, (0, _i18n.__)('Edit custom colors')), !canOnlyChangeValues && (0, _element.createElement)(_button.default, {
276
+ }, isGradient ? (0, _i18n.__)('Edit gradients') : (0, _i18n.__)('Edit colors')), !canOnlyChangeValues && (0, _element.createElement)(_button.default, {
273
277
  variant: "tertiary",
274
278
  onClick: () => {
275
279
  setEditingElement(null);
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/components/src/palette-edit/index.js"],"names":["NameInput","value","onChange","label","Option","canOnlyChangeValues","element","isEditing","onStartEditing","onRemove","onStopEditing","slugPrefix","isGradient","focusOutsideProps","gradient","color","background","name","nextName","slug","lineSolid","newColor","newGradient","PaletteEditListView","elements","editingElement","setEditingElement","elementsReference","current","some","newElements","filter","length","undefined","map","index","newElement","currentElement","currentIndex","_currentElement","EMPTY_ARRAY","PaletteEdit","gradients","colors","paletteLabel","emptyMessage","canReset","setIsEditing","isAdding","elementsLength","hasElements","plus","tempOptionName","DEFAULT_GRADIENT","moreVertical","isSmall","onClose"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport { kebabCase } from 'lodash';\n\n/**\n * WordPress dependencies\n */\nimport { useState, useRef, useEffect } from '@wordpress/element';\nimport { __, sprintf } from '@wordpress/i18n';\nimport { lineSolid, moreVertical, plus } from '@wordpress/icons';\nimport { __experimentalUseFocusOutside as useFocusOutside } from '@wordpress/compose';\n\n/**\n * Internal dependencies\n */\nimport Button from '../button';\nimport { ColorPicker } from '../color-picker';\nimport { FlexItem } from '../flex';\nimport { HStack } from '../h-stack';\nimport { ItemGroup } from '../item-group';\nimport { VStack } from '../v-stack';\nimport GradientPicker from '../gradient-picker';\nimport ColorPalette from '../color-palette';\nimport DropdownMenu from '../dropdown-menu';\nimport Popover from '../popover';\nimport {\n\tPaletteActionsContainer,\n\tPaletteEditStyles,\n\tPaletteHeading,\n\tPaletteHStackHeader,\n\tIndicatorStyled,\n\tPaletteItem,\n\tNameContainer,\n\tNameInputControl,\n\tDoneButton,\n\tRemoveButton,\n} from './styles';\nimport { NavigableMenu } from '../navigable-container';\nimport { DEFAULT_GRADIENT } from '../custom-gradient-picker/constants';\nimport CustomGradientPicker from '../custom-gradient-picker';\n\nfunction NameInput( { value, onChange, label } ) {\n\treturn (\n\t\t<NameInputControl\n\t\t\tlabel={ label }\n\t\t\thideLabelFromVision\n\t\t\tvalue={ value }\n\t\t\tonChange={ onChange }\n\t\t/>\n\t);\n}\n\nfunction Option( {\n\tcanOnlyChangeValues,\n\telement,\n\tonChange,\n\tisEditing,\n\tonStartEditing,\n\tonRemove,\n\tonStopEditing,\n\tslugPrefix,\n\tisGradient,\n} ) {\n\tconst focusOutsideProps = useFocusOutside( onStopEditing );\n\tconst value = isGradient ? element.gradient : element.color;\n\n\treturn (\n\t\t<PaletteItem\n\t\t\tas=\"div\"\n\t\t\tonClick={ onStartEditing }\n\t\t\t{ ...( isEditing ? focusOutsideProps : {} ) }\n\t\t>\n\t\t\t<HStack justify=\"flex-start\">\n\t\t\t\t<FlexItem>\n\t\t\t\t\t<IndicatorStyled\n\t\t\t\t\t\tstyle={ { background: value, color: 'transparent' } }\n\t\t\t\t\t/>\n\t\t\t\t</FlexItem>\n\t\t\t\t<FlexItem>\n\t\t\t\t\t{ isEditing && ! canOnlyChangeValues ? (\n\t\t\t\t\t\t<NameInput\n\t\t\t\t\t\t\tlabel={\n\t\t\t\t\t\t\t\tisGradient\n\t\t\t\t\t\t\t\t\t? __( 'Gradient name' )\n\t\t\t\t\t\t\t\t\t: __( 'Color name' )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tvalue={ element.name }\n\t\t\t\t\t\t\tonChange={ ( nextName ) =>\n\t\t\t\t\t\t\t\tonChange( {\n\t\t\t\t\t\t\t\t\t...element,\n\t\t\t\t\t\t\t\t\tname: nextName,\n\t\t\t\t\t\t\t\t\tslug: slugPrefix + kebabCase( nextName ),\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\t\t<NameContainer>{ element.name }</NameContainer>\n\t\t\t\t\t) }\n\t\t\t\t</FlexItem>\n\t\t\t\t{ isEditing && ! canOnlyChangeValues && (\n\t\t\t\t\t<FlexItem>\n\t\t\t\t\t\t<RemoveButton\n\t\t\t\t\t\t\tisSmall\n\t\t\t\t\t\t\ticon={ lineSolid }\n\t\t\t\t\t\t\tlabel={ __( 'Remove color' ) }\n\t\t\t\t\t\t\tonClick={ onRemove }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</FlexItem>\n\t\t\t\t) }\n\t\t\t</HStack>\n\t\t\t{ isEditing && (\n\t\t\t\t<Popover\n\t\t\t\t\tposition=\"bottom left\"\n\t\t\t\t\tclassName=\"components-palette-edit__popover\"\n\t\t\t\t>\n\t\t\t\t\t{ ! isGradient && (\n\t\t\t\t\t\t<ColorPicker\n\t\t\t\t\t\t\tcolor={ value }\n\t\t\t\t\t\t\tonChange={ ( newColor ) =>\n\t\t\t\t\t\t\t\tonChange( {\n\t\t\t\t\t\t\t\t\t...element,\n\t\t\t\t\t\t\t\t\tcolor: newColor,\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\t{ isGradient && (\n\t\t\t\t\t\t<CustomGradientPicker\n\t\t\t\t\t\t\t__experimentalIsRenderedInSidebar\n\t\t\t\t\t\t\tvalue={ value }\n\t\t\t\t\t\t\tonChange={ ( newGradient ) =>\n\t\t\t\t\t\t\t\tonChange( {\n\t\t\t\t\t\t\t\t\t...element,\n\t\t\t\t\t\t\t\t\tgradient: newGradient,\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</Popover>\n\t\t\t) }\n\t\t</PaletteItem>\n\t);\n}\n\nfunction PaletteEditListView( {\n\telements,\n\tonChange,\n\teditingElement,\n\tsetEditingElement,\n\tcanOnlyChangeValues,\n\tslugPrefix,\n\tisGradient,\n} ) {\n\t// When unmounting the component if there are empty elements (the user did not complete the insertion) clean them.\n\tconst elementsReference = useRef();\n\tuseEffect( () => {\n\t\telementsReference.current = elements;\n\t}, [ elements ] );\n\tuseEffect( () => {\n\t\treturn () => {\n\t\t\tif ( elementsReference.current.some( ( { slug } ) => ! slug ) ) {\n\t\t\t\tconst newElements = elementsReference.current.filter(\n\t\t\t\t\t( { slug } ) => slug\n\t\t\t\t);\n\t\t\t\tonChange( newElements.length ? newElements : undefined );\n\t\t\t}\n\t\t};\n\t}, [] );\n\treturn (\n\t\t<VStack spacing={ 3 }>\n\t\t\t<ItemGroup isBordered isSeparated>\n\t\t\t\t{ elements.map( ( element, index ) => (\n\t\t\t\t\t<Option\n\t\t\t\t\t\tisGradient={ isGradient }\n\t\t\t\t\t\tcanOnlyChangeValues={ canOnlyChangeValues }\n\t\t\t\t\t\tkey={ index }\n\t\t\t\t\t\telement={ element }\n\t\t\t\t\t\tonStartEditing={ () => {\n\t\t\t\t\t\t\tif ( editingElement !== index ) {\n\t\t\t\t\t\t\t\tsetEditingElement( index );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} }\n\t\t\t\t\t\tonChange={ ( newElement ) => {\n\t\t\t\t\t\t\tonChange(\n\t\t\t\t\t\t\t\telements.map(\n\t\t\t\t\t\t\t\t\t( currentElement, currentIndex ) => {\n\t\t\t\t\t\t\t\t\t\tif ( currentIndex === index ) {\n\t\t\t\t\t\t\t\t\t\t\treturn newElement;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\treturn currentElement;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t} }\n\t\t\t\t\t\tonRemove={ () => {\n\t\t\t\t\t\t\tsetEditingElement( null );\n\t\t\t\t\t\t\tconst newElements = elements.filter(\n\t\t\t\t\t\t\t\t( _currentElement, currentIndex ) => {\n\t\t\t\t\t\t\t\t\tif ( currentIndex === index ) {\n\t\t\t\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\tonChange(\n\t\t\t\t\t\t\t\tnewElements.length ? newElements : undefined\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t} }\n\t\t\t\t\t\tisEditing={ index === editingElement }\n\t\t\t\t\t\tonStopEditing={ () => {\n\t\t\t\t\t\t\tif ( index === editingElement ) {\n\t\t\t\t\t\t\t\tsetEditingElement( null );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} }\n\t\t\t\t\t\tslugPrefix={ slugPrefix }\n\t\t\t\t\t/>\n\t\t\t\t) ) }\n\t\t\t</ItemGroup>\n\t\t</VStack>\n\t);\n}\n\nconst EMPTY_ARRAY = [];\n\nexport default function PaletteEdit( {\n\tgradients,\n\tcolors = EMPTY_ARRAY,\n\tonChange,\n\tpaletteLabel,\n\temptyMessage,\n\tcanOnlyChangeValues,\n\tcanReset,\n\tslugPrefix = '',\n} ) {\n\tconst isGradient = !! gradients;\n\tconst elements = isGradient ? gradients : colors;\n\tconst [ isEditing, setIsEditing ] = useState( false );\n\tconst [ editingElement, setEditingElement ] = useState( null );\n\tconst isAdding =\n\t\tisEditing &&\n\t\teditingElement &&\n\t\telements[ editingElement ] &&\n\t\t! elements[ editingElement ].slug;\n\tconst elementsLength = elements.length;\n\tconst hasElements = elementsLength > 0;\n\n\treturn (\n\t\t<PaletteEditStyles>\n\t\t\t<PaletteHStackHeader>\n\t\t\t\t<PaletteHeading>{ paletteLabel }</PaletteHeading>\n\t\t\t\t<PaletteActionsContainer>\n\t\t\t\t\t{ isEditing && (\n\t\t\t\t\t\t<DoneButton\n\t\t\t\t\t\t\tisSmall\n\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\tsetIsEditing( false );\n\t\t\t\t\t\t\t\tsetEditingElement( null );\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ __( 'Done' ) }\n\t\t\t\t\t\t</DoneButton>\n\t\t\t\t\t) }\n\t\t\t\t\t{ ! canOnlyChangeValues && (\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\tisSmall\n\t\t\t\t\t\t\tisPressed={ isAdding }\n\t\t\t\t\t\t\ticon={ plus }\n\t\t\t\t\t\t\tlabel={\n\t\t\t\t\t\t\t\tisGradient\n\t\t\t\t\t\t\t\t\t? __( 'Add gradient' )\n\t\t\t\t\t\t\t\t\t: __( 'Add color' )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\tconst tempOptionName = sprintf(\n\t\t\t\t\t\t\t\t\t/* translators: %s: is a temporary id for a custom color */\n\t\t\t\t\t\t\t\t\t__( 'Color %s ' ),\n\t\t\t\t\t\t\t\t\telementsLength + 1\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\tonChange( [\n\t\t\t\t\t\t\t\t\t...elements,\n\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t...( isGradient\n\t\t\t\t\t\t\t\t\t\t\t? { gradient: DEFAULT_GRADIENT }\n\t\t\t\t\t\t\t\t\t\t\t: { color: '#000' } ),\n\t\t\t\t\t\t\t\t\t\tname: tempOptionName,\n\t\t\t\t\t\t\t\t\t\tslug: '',\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t] );\n\t\t\t\t\t\t\t\tsetIsEditing( true );\n\t\t\t\t\t\t\t\tsetEditingElement( elements.length );\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\n\t\t\t\t\t{ hasElements && ( canReset || ! canOnlyChangeValues ) && (\n\t\t\t\t\t\t<DropdownMenu\n\t\t\t\t\t\t\ticon={ moreVertical }\n\t\t\t\t\t\t\tlabel={\n\t\t\t\t\t\t\t\tisGradient\n\t\t\t\t\t\t\t\t\t? __( 'Gradient options' )\n\t\t\t\t\t\t\t\t\t: __( 'Color options' )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\ttoggleProps={ {\n\t\t\t\t\t\t\t\tisSmall: true,\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ ( { onClose } ) => (\n\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t<NavigableMenu role=\"menu\">\n\t\t\t\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t\t\t\tvariant=\"tertiary\"\n\t\t\t\t\t\t\t\t\t\t\tdisabled={ isEditing }\n\t\t\t\t\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\t\t\t\t\tsetIsEditing( true );\n\t\t\t\t\t\t\t\t\t\t\t\tonClose();\n\t\t\t\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\t\t\t\tclassName=\"components-palette-edit__menu-button\"\n\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t{ __( 'Edit custom colors' ) }\n\t\t\t\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t\t\t\t\t{ ! canOnlyChangeValues && (\n\t\t\t\t\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t\t\t\t\tvariant=\"tertiary\"\n\t\t\t\t\t\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\t\t\t\t\t\tsetEditingElement( null );\n\t\t\t\t\t\t\t\t\t\t\t\t\tsetIsEditing( false );\n\t\t\t\t\t\t\t\t\t\t\t\t\tonChange();\n\t\t\t\t\t\t\t\t\t\t\t\t\tonClose();\n\t\t\t\t\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\t\t\t\t\tclassName=\"components-palette-edit__menu-button\"\n\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t{ isGradient\n\t\t\t\t\t\t\t\t\t\t\t\t\t? __(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t'Remove all gradients'\n\t\t\t\t\t\t\t\t\t\t\t\t\t )\n\t\t\t\t\t\t\t\t\t\t\t\t\t: __(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t'Remove all colors'\n\t\t\t\t\t\t\t\t\t\t\t\t\t ) }\n\t\t\t\t\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t\t{ canReset && (\n\t\t\t\t\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t\t\t\t\tvariant=\"tertiary\"\n\t\t\t\t\t\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\t\t\t\t\t\tsetEditingElement( null );\n\t\t\t\t\t\t\t\t\t\t\t\t\tonChange();\n\t\t\t\t\t\t\t\t\t\t\t\t\tonClose();\n\t\t\t\t\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t{ isGradient\n\t\t\t\t\t\t\t\t\t\t\t\t\t? __( 'Reset gradient' )\n\t\t\t\t\t\t\t\t\t\t\t\t\t: __( 'Reset colors' ) }\n\t\t\t\t\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t</NavigableMenu>\n\t\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t</DropdownMenu>\n\t\t\t\t\t) }\n\t\t\t\t</PaletteActionsContainer>\n\t\t\t</PaletteHStackHeader>\n\t\t\t{ hasElements && (\n\t\t\t\t<>\n\t\t\t\t\t{ isEditing && (\n\t\t\t\t\t\t<PaletteEditListView\n\t\t\t\t\t\t\tcanOnlyChangeValues={ canOnlyChangeValues }\n\t\t\t\t\t\t\telements={ elements }\n\t\t\t\t\t\t\tonChange={ onChange }\n\t\t\t\t\t\t\teditingElement={ editingElement }\n\t\t\t\t\t\t\tsetEditingElement={ setEditingElement }\n\t\t\t\t\t\t\tslugPrefix={ slugPrefix }\n\t\t\t\t\t\t\tisGradient={ isGradient }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t\t{ ! isEditing &&\n\t\t\t\t\t\t( isGradient ? (\n\t\t\t\t\t\t\t<GradientPicker\n\t\t\t\t\t\t\t\tgradients={ gradients }\n\t\t\t\t\t\t\t\tonChange={ () => {} }\n\t\t\t\t\t\t\t\tclearable={ false }\n\t\t\t\t\t\t\t\tdisableCustomGradients={ true }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t<ColorPalette\n\t\t\t\t\t\t\t\tcolors={ colors }\n\t\t\t\t\t\t\t\tonChange={ () => {} }\n\t\t\t\t\t\t\t\tclearable={ false }\n\t\t\t\t\t\t\t\tdisableCustomColors={ true }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t) ) }\n\t\t\t\t</>\n\t\t\t) }\n\t\t\t{ ! hasElements && emptyMessage }\n\t\t</PaletteEditStyles>\n\t);\n}\n"]}
1
+ {"version":3,"sources":["@wordpress/components/src/palette-edit/index.js"],"names":["DEFAULT_COLOR","NameInput","value","onChange","label","getNameForPosition","position","Option","canOnlyChangeValues","element","isEditing","onStartEditing","onRemove","onStopEditing","slugPrefix","isGradient","focusOutsideProps","gradient","color","background","name","nextName","slug","lineSolid","newColor","newGradient","isTemporaryElement","index","DEFAULT_GRADIENT","PaletteEditListView","elements","editingElement","setEditingElement","elementsReference","current","some","newElements","filter","length","undefined","map","newElement","currentElement","currentIndex","_currentElement","EMPTY_ARRAY","PaletteEdit","gradients","colors","paletteLabel","emptyMessage","canReset","setIsEditing","isAdding","elementsLength","hasElements","plus","tempOptionName","moreVertical","isSmall","onClose"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport { kebabCase } from 'lodash';\n\n/**\n * WordPress dependencies\n */\nimport { useState, useRef, useEffect } from '@wordpress/element';\nimport { __, sprintf } from '@wordpress/i18n';\nimport { lineSolid, moreVertical, plus } from '@wordpress/icons';\nimport { __experimentalUseFocusOutside as useFocusOutside } from '@wordpress/compose';\n\n/**\n * Internal dependencies\n */\nimport Button from '../button';\nimport { ColorPicker } from '../color-picker';\nimport { FlexItem } from '../flex';\nimport { HStack } from '../h-stack';\nimport { ItemGroup } from '../item-group';\nimport { VStack } from '../v-stack';\nimport GradientPicker from '../gradient-picker';\nimport ColorPalette from '../color-palette';\nimport DropdownMenu from '../dropdown-menu';\nimport Popover from '../popover';\nimport {\n\tPaletteActionsContainer,\n\tPaletteEditStyles,\n\tPaletteHeading,\n\tPaletteHStackHeader,\n\tIndicatorStyled,\n\tPaletteItem,\n\tNameContainer,\n\tNameInputControl,\n\tDoneButton,\n\tRemoveButton,\n} from './styles';\nimport { NavigableMenu } from '../navigable-container';\nimport { DEFAULT_GRADIENT } from '../custom-gradient-picker/constants';\nimport CustomGradientPicker from '../custom-gradient-picker';\n\nconst DEFAULT_COLOR = '#000';\n\nfunction NameInput( { value, onChange, label } ) {\n\treturn (\n\t\t<NameInputControl\n\t\t\tlabel={ label }\n\t\t\thideLabelFromVision\n\t\t\tvalue={ value }\n\t\t\tonChange={ onChange }\n\t\t/>\n\t);\n}\n\nfunction getNameForPosition( position ) {\n\treturn sprintf(\n\t\t/* translators: %s: is a temporary id for a custom color */\n\t\t__( 'Color %s ' ),\n\t\tposition + 1\n\t);\n}\n\nfunction Option( {\n\tcanOnlyChangeValues,\n\telement,\n\tonChange,\n\tisEditing,\n\tonStartEditing,\n\tonRemove,\n\tonStopEditing,\n\tslugPrefix,\n\tisGradient,\n} ) {\n\tconst focusOutsideProps = useFocusOutside( onStopEditing );\n\tconst value = isGradient ? element.gradient : element.color;\n\n\treturn (\n\t\t<PaletteItem\n\t\t\tas=\"div\"\n\t\t\tonClick={ onStartEditing }\n\t\t\t{ ...( isEditing ? focusOutsideProps : {} ) }\n\t\t>\n\t\t\t<HStack justify=\"flex-start\">\n\t\t\t\t<FlexItem>\n\t\t\t\t\t<IndicatorStyled\n\t\t\t\t\t\tstyle={ { background: value, color: 'transparent' } }\n\t\t\t\t\t/>\n\t\t\t\t</FlexItem>\n\t\t\t\t<FlexItem>\n\t\t\t\t\t{ isEditing && ! canOnlyChangeValues ? (\n\t\t\t\t\t\t<NameInput\n\t\t\t\t\t\t\tlabel={\n\t\t\t\t\t\t\t\tisGradient\n\t\t\t\t\t\t\t\t\t? __( 'Gradient name' )\n\t\t\t\t\t\t\t\t\t: __( 'Color name' )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tvalue={ element.name }\n\t\t\t\t\t\t\tonChange={ ( nextName ) =>\n\t\t\t\t\t\t\t\tonChange( {\n\t\t\t\t\t\t\t\t\t...element,\n\t\t\t\t\t\t\t\t\tname: nextName,\n\t\t\t\t\t\t\t\t\tslug: slugPrefix + kebabCase( nextName ),\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\t\t<NameContainer>{ element.name }</NameContainer>\n\t\t\t\t\t) }\n\t\t\t\t</FlexItem>\n\t\t\t\t{ isEditing && ! canOnlyChangeValues && (\n\t\t\t\t\t<FlexItem>\n\t\t\t\t\t\t<RemoveButton\n\t\t\t\t\t\t\tisSmall\n\t\t\t\t\t\t\ticon={ lineSolid }\n\t\t\t\t\t\t\tlabel={ __( 'Remove color' ) }\n\t\t\t\t\t\t\tonClick={ onRemove }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</FlexItem>\n\t\t\t\t) }\n\t\t\t</HStack>\n\t\t\t{ isEditing && (\n\t\t\t\t<Popover\n\t\t\t\t\tposition=\"bottom left\"\n\t\t\t\t\tclassName=\"components-palette-edit__popover\"\n\t\t\t\t>\n\t\t\t\t\t{ ! isGradient && (\n\t\t\t\t\t\t<ColorPicker\n\t\t\t\t\t\t\tcolor={ value }\n\t\t\t\t\t\t\tonChange={ ( newColor ) =>\n\t\t\t\t\t\t\t\tonChange( {\n\t\t\t\t\t\t\t\t\t...element,\n\t\t\t\t\t\t\t\t\tcolor: newColor,\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\t{ isGradient && (\n\t\t\t\t\t\t<CustomGradientPicker\n\t\t\t\t\t\t\t__experimentalIsRenderedInSidebar\n\t\t\t\t\t\t\tvalue={ value }\n\t\t\t\t\t\t\tonChange={ ( newGradient ) =>\n\t\t\t\t\t\t\t\tonChange( {\n\t\t\t\t\t\t\t\t\t...element,\n\t\t\t\t\t\t\t\t\tgradient: newGradient,\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</Popover>\n\t\t\t) }\n\t\t</PaletteItem>\n\t);\n}\n\nfunction isTemporaryElement( slugPrefix, { slug, color, gradient }, index ) {\n\treturn (\n\t\tslug === slugPrefix + kebabCase( getNameForPosition( index ) ) &&\n\t\t( ( !! color && color === DEFAULT_COLOR ) ||\n\t\t\t( !! gradient && gradient === DEFAULT_GRADIENT ) )\n\t);\n}\n\nfunction PaletteEditListView( {\n\telements,\n\tonChange,\n\teditingElement,\n\tsetEditingElement,\n\tcanOnlyChangeValues,\n\tslugPrefix,\n\tisGradient,\n} ) {\n\t// When unmounting the component if there are empty elements (the user did not complete the insertion) clean them.\n\tconst elementsReference = useRef();\n\tuseEffect( () => {\n\t\telementsReference.current = elements;\n\t}, [ elements ] );\n\tuseEffect( () => {\n\t\treturn () => {\n\t\t\tif (\n\t\t\t\telementsReference.current.some( ( element, index ) =>\n\t\t\t\t\tisTemporaryElement( slugPrefix, element, index )\n\t\t\t\t)\n\t\t\t) {\n\t\t\t\tconst newElements = elementsReference.current.filter(\n\t\t\t\t\t( element, index ) =>\n\t\t\t\t\t\t! isTemporaryElement( slugPrefix, element, index )\n\t\t\t\t);\n\t\t\t\tonChange( newElements.length ? newElements : undefined );\n\t\t\t}\n\t\t};\n\t}, [] );\n\treturn (\n\t\t<VStack spacing={ 3 }>\n\t\t\t<ItemGroup isBordered isSeparated>\n\t\t\t\t{ elements.map( ( element, index ) => (\n\t\t\t\t\t<Option\n\t\t\t\t\t\tisGradient={ isGradient }\n\t\t\t\t\t\tcanOnlyChangeValues={ canOnlyChangeValues }\n\t\t\t\t\t\tkey={ index }\n\t\t\t\t\t\telement={ element }\n\t\t\t\t\t\tonStartEditing={ () => {\n\t\t\t\t\t\t\tif ( editingElement !== index ) {\n\t\t\t\t\t\t\t\tsetEditingElement( index );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} }\n\t\t\t\t\t\tonChange={ ( newElement ) => {\n\t\t\t\t\t\t\tonChange(\n\t\t\t\t\t\t\t\telements.map(\n\t\t\t\t\t\t\t\t\t( currentElement, currentIndex ) => {\n\t\t\t\t\t\t\t\t\t\tif ( currentIndex === index ) {\n\t\t\t\t\t\t\t\t\t\t\treturn newElement;\n\t\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\t\treturn currentElement;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t)\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t} }\n\t\t\t\t\t\tonRemove={ () => {\n\t\t\t\t\t\t\tsetEditingElement( null );\n\t\t\t\t\t\t\tconst newElements = elements.filter(\n\t\t\t\t\t\t\t\t( _currentElement, currentIndex ) => {\n\t\t\t\t\t\t\t\t\tif ( currentIndex === index ) {\n\t\t\t\t\t\t\t\t\t\treturn false;\n\t\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\t\treturn true;\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\tonChange(\n\t\t\t\t\t\t\t\tnewElements.length ? newElements : undefined\n\t\t\t\t\t\t\t);\n\t\t\t\t\t\t} }\n\t\t\t\t\t\tisEditing={ index === editingElement }\n\t\t\t\t\t\tonStopEditing={ () => {\n\t\t\t\t\t\t\tif ( index === editingElement ) {\n\t\t\t\t\t\t\t\tsetEditingElement( null );\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t} }\n\t\t\t\t\t\tslugPrefix={ slugPrefix }\n\t\t\t\t\t/>\n\t\t\t\t) ) }\n\t\t\t</ItemGroup>\n\t\t</VStack>\n\t);\n}\n\nconst EMPTY_ARRAY = [];\n\nexport default function PaletteEdit( {\n\tgradients,\n\tcolors = EMPTY_ARRAY,\n\tonChange,\n\tpaletteLabel,\n\temptyMessage,\n\tcanOnlyChangeValues,\n\tcanReset,\n\tslugPrefix = '',\n} ) {\n\tconst isGradient = !! gradients;\n\tconst elements = isGradient ? gradients : colors;\n\tconst [ isEditing, setIsEditing ] = useState( false );\n\tconst [ editingElement, setEditingElement ] = useState( null );\n\tconst isAdding =\n\t\tisEditing &&\n\t\teditingElement &&\n\t\telements[ editingElement ] &&\n\t\t! elements[ editingElement ].slug;\n\tconst elementsLength = elements.length;\n\tconst hasElements = elementsLength > 0;\n\n\treturn (\n\t\t<PaletteEditStyles>\n\t\t\t<PaletteHStackHeader>\n\t\t\t\t<PaletteHeading>{ paletteLabel }</PaletteHeading>\n\t\t\t\t<PaletteActionsContainer>\n\t\t\t\t\t{ isEditing && (\n\t\t\t\t\t\t<DoneButton\n\t\t\t\t\t\t\tisSmall\n\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\tsetIsEditing( false );\n\t\t\t\t\t\t\t\tsetEditingElement( null );\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ __( 'Done' ) }\n\t\t\t\t\t\t</DoneButton>\n\t\t\t\t\t) }\n\t\t\t\t\t{ ! canOnlyChangeValues && (\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\tisSmall\n\t\t\t\t\t\t\tisPressed={ isAdding }\n\t\t\t\t\t\t\ticon={ plus }\n\t\t\t\t\t\t\tlabel={\n\t\t\t\t\t\t\t\tisGradient\n\t\t\t\t\t\t\t\t\t? __( 'Add gradient' )\n\t\t\t\t\t\t\t\t\t: __( 'Add color' )\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\tconst tempOptionName = getNameForPosition(\n\t\t\t\t\t\t\t\t\telementsLength\n\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\tonChange( [\n\t\t\t\t\t\t\t\t\t...elements,\n\t\t\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t\t\t...( isGradient\n\t\t\t\t\t\t\t\t\t\t\t? { gradient: DEFAULT_GRADIENT }\n\t\t\t\t\t\t\t\t\t\t\t: { color: DEFAULT_COLOR } ),\n\t\t\t\t\t\t\t\t\t\tname: tempOptionName,\n\t\t\t\t\t\t\t\t\t\tslug:\n\t\t\t\t\t\t\t\t\t\t\tslugPrefix +\n\t\t\t\t\t\t\t\t\t\t\tkebabCase( tempOptionName ),\n\t\t\t\t\t\t\t\t\t},\n\t\t\t\t\t\t\t\t] );\n\t\t\t\t\t\t\t\tsetIsEditing( true );\n\t\t\t\t\t\t\t\tsetEditingElement( elements.length );\n\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\n\t\t\t\t\t{ hasElements &&\n\t\t\t\t\t\t( ! isEditing ||\n\t\t\t\t\t\t\t! canOnlyChangeValues ||\n\t\t\t\t\t\t\tcanReset ) && (\n\t\t\t\t\t\t\t<DropdownMenu\n\t\t\t\t\t\t\t\ticon={ moreVertical }\n\t\t\t\t\t\t\t\tlabel={\n\t\t\t\t\t\t\t\t\tisGradient\n\t\t\t\t\t\t\t\t\t\t? __( 'Gradient options' )\n\t\t\t\t\t\t\t\t\t\t: __( 'Color options' )\n\t\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t\ttoggleProps={ {\n\t\t\t\t\t\t\t\t\tisSmall: true,\n\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{ ( { onClose } ) => (\n\t\t\t\t\t\t\t\t\t<>\n\t\t\t\t\t\t\t\t\t\t<NavigableMenu role=\"menu\">\n\t\t\t\t\t\t\t\t\t\t\t{ ! isEditing && (\n\t\t\t\t\t\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t\t\t\t\t\tvariant=\"tertiary\"\n\t\t\t\t\t\t\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tsetIsEditing( true );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tonClose();\n\t\t\t\t\t\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\t\t\t\t\t\tclassName=\"components-palette-edit__menu-button\"\n\t\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t\t{ isGradient\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t? __( 'Edit gradients' )\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t: __( 'Edit colors' ) }\n\t\t\t\t\t\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t\t\t{ ! canOnlyChangeValues && (\n\t\t\t\t\t\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t\t\t\t\t\tvariant=\"tertiary\"\n\t\t\t\t\t\t\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tsetEditingElement(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tnull\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tsetIsEditing( false );\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tonChange();\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tonClose();\n\t\t\t\t\t\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\t\t\t\t\t\tclassName=\"components-palette-edit__menu-button\"\n\t\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t\t{ isGradient\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t? __(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t'Remove all gradients'\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t )\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t: __(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t\t'Remove all colors'\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t ) }\n\t\t\t\t\t\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t\t\t{ canReset && (\n\t\t\t\t\t\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\t\t\t\t\t\tvariant=\"tertiary\"\n\t\t\t\t\t\t\t\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tsetEditingElement(\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t\tnull\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t);\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tonChange();\n\t\t\t\t\t\t\t\t\t\t\t\t\t\tonClose();\n\t\t\t\t\t\t\t\t\t\t\t\t\t} }\n\t\t\t\t\t\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t\t\t\t\t\t{ isGradient\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t? __( 'Reset gradient' )\n\t\t\t\t\t\t\t\t\t\t\t\t\t\t: __( 'Reset colors' ) }\n\t\t\t\t\t\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t\t\t\t</NavigableMenu>\n\t\t\t\t\t\t\t\t\t</>\n\t\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t\t</DropdownMenu>\n\t\t\t\t\t\t) }\n\t\t\t\t</PaletteActionsContainer>\n\t\t\t</PaletteHStackHeader>\n\t\t\t{ hasElements && (\n\t\t\t\t<>\n\t\t\t\t\t{ isEditing && (\n\t\t\t\t\t\t<PaletteEditListView\n\t\t\t\t\t\t\tcanOnlyChangeValues={ canOnlyChangeValues }\n\t\t\t\t\t\t\telements={ elements }\n\t\t\t\t\t\t\tonChange={ onChange }\n\t\t\t\t\t\t\teditingElement={ editingElement }\n\t\t\t\t\t\t\tsetEditingElement={ setEditingElement }\n\t\t\t\t\t\t\tslugPrefix={ slugPrefix }\n\t\t\t\t\t\t\tisGradient={ isGradient }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t\t{ ! isEditing &&\n\t\t\t\t\t\t( isGradient ? (\n\t\t\t\t\t\t\t<GradientPicker\n\t\t\t\t\t\t\t\tgradients={ gradients }\n\t\t\t\t\t\t\t\tonChange={ () => {} }\n\t\t\t\t\t\t\t\tclearable={ false }\n\t\t\t\t\t\t\t\tdisableCustomGradients={ true }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t) : (\n\t\t\t\t\t\t\t<ColorPalette\n\t\t\t\t\t\t\t\tcolors={ colors }\n\t\t\t\t\t\t\t\tonChange={ () => {} }\n\t\t\t\t\t\t\t\tclearable={ false }\n\t\t\t\t\t\t\t\tdisableCustomColors={ true }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t) ) }\n\t\t\t\t</>\n\t\t\t) }\n\t\t\t{ ! hasElements && emptyMessage }\n\t\t</PaletteEditStyles>\n\t);\n}\n"]}