@wordpress/components 19.13.0 → 19.14.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (398) hide show
  1. package/CHANGELOG.md +38 -1
  2. package/build/alignment-matrix-control/utils.js +1 -7
  3. package/build/alignment-matrix-control/utils.js.map +1 -1
  4. package/build/autocomplete/autocompleter-ui.js +4 -2
  5. package/build/autocomplete/autocompleter-ui.js.map +1 -1
  6. package/build/autocomplete/autocompleter-ui.native.js +9 -3
  7. package/build/autocomplete/autocompleter-ui.native.js.map +1 -1
  8. package/build/autocomplete/index.js +4 -2
  9. package/build/autocomplete/index.js.map +1 -1
  10. package/build/border-box-control/border-box-control/component.js +2 -1
  11. package/build/border-box-control/border-box-control/component.js.map +1 -1
  12. package/build/border-box-control/border-box-control-split-controls/component.js +2 -1
  13. package/build/border-box-control/border-box-control-split-controls/component.js.map +1 -1
  14. package/build/border-control/border-control/component.js +40 -4
  15. package/build/border-control/border-control/component.js.map +1 -1
  16. package/build/box-control/utils.js +3 -3
  17. package/build/box-control/utils.js.map +1 -1
  18. package/build/color-indicator/index.js +27 -10
  19. package/build/color-indicator/index.js.map +1 -1
  20. package/build/color-indicator/types.js +6 -0
  21. package/build/color-indicator/types.js.map +1 -0
  22. package/build/color-palette/index.js +2 -1
  23. package/build/color-palette/index.js.map +1 -1
  24. package/build/color-picker/component.js +6 -9
  25. package/build/color-picker/component.js.map +1 -1
  26. package/build/color-picker/input-with-slider.js +1 -2
  27. package/build/color-picker/input-with-slider.js.map +1 -1
  28. package/build/color-picker/styles.js +34 -16
  29. package/build/color-picker/styles.js.map +1 -1
  30. package/build/custom-gradient-picker/index.js +8 -8
  31. package/build/custom-gradient-picker/index.js.map +1 -1
  32. package/build/custom-gradient-picker/index.native.js +8 -9
  33. package/build/custom-gradient-picker/index.native.js.map +1 -1
  34. package/build/custom-gradient-picker/serializer.js +4 -7
  35. package/build/custom-gradient-picker/serializer.js.map +1 -1
  36. package/build/date-time/date/index.js +3 -1
  37. package/build/date-time/date/index.js.map +1 -1
  38. package/build/date-time/date-time/index.js +3 -1
  39. package/build/date-time/date-time/index.js.map +1 -1
  40. package/build/duotone-picker/duotone-picker.js +42 -29
  41. package/build/duotone-picker/duotone-picker.js.map +1 -1
  42. package/build/elevation/hook.js +13 -13
  43. package/build/elevation/hook.js.map +1 -1
  44. package/build/focal-point-picker/index.native.js +4 -4
  45. package/build/focal-point-picker/index.native.js.map +1 -1
  46. package/build/form-toggle/index.js +28 -5
  47. package/build/form-toggle/index.js.map +1 -1
  48. package/build/form-toggle/types.js +6 -0
  49. package/build/form-toggle/types.js.map +1 -0
  50. package/build/h-stack/utils.js +3 -3
  51. package/build/h-stack/utils.js.map +1 -1
  52. package/build/heading/component.js +0 -1
  53. package/build/heading/component.js.map +1 -1
  54. package/build/heading/hook.js.map +1 -1
  55. package/build/heading/types.js +6 -0
  56. package/build/heading/types.js.map +1 -0
  57. package/build/mobile/bottom-sheet/keyboard-avoiding-view.native.js +0 -1
  58. package/build/mobile/bottom-sheet/keyboard-avoiding-view.native.js.map +1 -1
  59. package/build/mobile/link-picker/index.native.js +4 -4
  60. package/build/mobile/link-picker/index.native.js.map +1 -1
  61. package/build/mobile/segmented-control/index.native.js +2 -4
  62. package/build/mobile/segmented-control/index.native.js.map +1 -1
  63. package/build/navigation/group/index.js +4 -7
  64. package/build/navigation/group/index.js.map +1 -1
  65. package/build/navigation/item/base.js +3 -3
  66. package/build/navigation/item/base.js.map +1 -1
  67. package/build/navigation/item/use-navigation-tree-item.js +2 -1
  68. package/build/navigation/item/use-navigation-tree-item.js.map +1 -1
  69. package/build/navigation/menu/menu-title-search.js +1 -7
  70. package/build/navigation/menu/menu-title-search.js.map +1 -1
  71. package/build/navigation/menu/search-no-results-found.js +1 -7
  72. package/build/navigation/menu/search-no-results-found.js.map +1 -1
  73. package/build/navigation/use-navigation-tree-nodes.js +18 -10
  74. package/build/navigation/use-navigation-tree-nodes.js.map +1 -1
  75. package/build/navigation/utils.js +4 -2
  76. package/build/navigation/utils.js.map +1 -1
  77. package/build/range-control/index.js +3 -3
  78. package/build/range-control/index.js.map +1 -1
  79. package/build/range-control/utils.js +3 -7
  80. package/build/range-control/utils.js.map +1 -1
  81. package/build/spacer/component.js +5 -5
  82. package/build/spacer/component.js.map +1 -1
  83. package/build/spinner/index.js +26 -13
  84. package/build/spinner/index.js.map +1 -1
  85. package/build/spinner/styles.js +10 -10
  86. package/build/spinner/styles.js.map +1 -1
  87. package/build/truncate/component.js +7 -8
  88. package/build/truncate/component.js.map +1 -1
  89. package/build/truncate/hook.js +3 -10
  90. package/build/truncate/hook.js.map +1 -1
  91. package/build/truncate/index.js.map +1 -1
  92. package/build/truncate/styles.js +1 -1
  93. package/build/truncate/styles.js.map +1 -1
  94. package/build/truncate/utils.js +3 -16
  95. package/build/truncate/utils.js.map +1 -1
  96. package/build/utils/math.js +17 -7
  97. package/build/utils/math.js.map +1 -1
  98. package/build/v-stack/component.js +9 -9
  99. package/build/v-stack/component.js.map +1 -1
  100. package/build/v-stack/hook.js +0 -5
  101. package/build/v-stack/hook.js.map +1 -1
  102. package/build/v-stack/index.js.map +1 -1
  103. package/build-module/alignment-matrix-control/utils.js +1 -6
  104. package/build-module/alignment-matrix-control/utils.js.map +1 -1
  105. package/build-module/autocomplete/autocompleter-ui.js +4 -2
  106. package/build-module/autocomplete/autocompleter-ui.js.map +1 -1
  107. package/build-module/autocomplete/autocompleter-ui.native.js +9 -3
  108. package/build-module/autocomplete/autocompleter-ui.native.js.map +1 -1
  109. package/build-module/autocomplete/index.js +4 -2
  110. package/build-module/autocomplete/index.js.map +1 -1
  111. package/build-module/border-box-control/border-box-control/component.js +2 -1
  112. package/build-module/border-box-control/border-box-control/component.js.map +1 -1
  113. package/build-module/border-box-control/border-box-control-split-controls/component.js +2 -1
  114. package/build-module/border-box-control/border-box-control-split-controls/component.js.map +1 -1
  115. package/build-module/border-control/border-control/component.js +38 -3
  116. package/build-module/border-control/border-control/component.js.map +1 -1
  117. package/build-module/box-control/utils.js +4 -4
  118. package/build-module/box-control/utils.js.map +1 -1
  119. package/build-module/color-indicator/index.js +29 -8
  120. package/build-module/color-indicator/index.js.map +1 -1
  121. package/build-module/color-indicator/types.js +2 -0
  122. package/build-module/color-indicator/types.js.map +1 -0
  123. package/build-module/color-palette/index.js +2 -1
  124. package/build-module/color-palette/index.js.map +1 -1
  125. package/build-module/color-picker/component.js +7 -8
  126. package/build-module/color-picker/component.js.map +1 -1
  127. package/build-module/color-picker/input-with-slider.js +1 -2
  128. package/build-module/color-picker/input-with-slider.js.map +1 -1
  129. package/build-module/color-picker/styles.js +28 -14
  130. package/build-module/color-picker/styles.js.map +1 -1
  131. package/build-module/custom-gradient-picker/index.js +8 -7
  132. package/build-module/custom-gradient-picker/index.js.map +1 -1
  133. package/build-module/custom-gradient-picker/index.native.js +8 -8
  134. package/build-module/custom-gradient-picker/index.native.js.map +1 -1
  135. package/build-module/custom-gradient-picker/serializer.js +4 -6
  136. package/build-module/custom-gradient-picker/serializer.js.map +1 -1
  137. package/build-module/date-time/date/index.js +3 -1
  138. package/build-module/date-time/date/index.js.map +1 -1
  139. package/build-module/date-time/date-time/index.js +3 -1
  140. package/build-module/date-time/date-time/index.js.map +1 -1
  141. package/build-module/duotone-picker/duotone-picker.js +42 -29
  142. package/build-module/duotone-picker/duotone-picker.js.map +1 -1
  143. package/build-module/elevation/hook.js +12 -12
  144. package/build-module/elevation/hook.js.map +1 -1
  145. package/build-module/focal-point-picker/index.native.js +1 -1
  146. package/build-module/focal-point-picker/index.native.js.map +1 -1
  147. package/build-module/form-toggle/index.js +30 -6
  148. package/build-module/form-toggle/index.js.map +1 -1
  149. package/build-module/form-toggle/types.js +2 -0
  150. package/build-module/form-toggle/types.js.map +1 -0
  151. package/build-module/h-stack/utils.js +3 -3
  152. package/build-module/h-stack/utils.js.map +1 -1
  153. package/build-module/heading/component.js +0 -1
  154. package/build-module/heading/component.js.map +1 -1
  155. package/build-module/heading/hook.js.map +1 -1
  156. package/build-module/heading/types.js +2 -0
  157. package/build-module/heading/types.js.map +1 -0
  158. package/build-module/mobile/bottom-sheet/keyboard-avoiding-view.native.js +0 -1
  159. package/build-module/mobile/bottom-sheet/keyboard-avoiding-view.native.js.map +1 -1
  160. package/build-module/mobile/link-picker/index.native.js +4 -3
  161. package/build-module/mobile/link-picker/index.native.js.map +1 -1
  162. package/build-module/mobile/segmented-control/index.native.js +2 -3
  163. package/build-module/mobile/segmented-control/index.native.js.map +1 -1
  164. package/build-module/navigation/group/index.js +3 -6
  165. package/build-module/navigation/group/index.js.map +1 -1
  166. package/build-module/navigation/item/base.js +2 -2
  167. package/build-module/navigation/item/base.js.map +1 -1
  168. package/build-module/navigation/item/use-navigation-tree-item.js +2 -1
  169. package/build-module/navigation/item/use-navigation-tree-item.js.map +1 -1
  170. package/build-module/navigation/menu/menu-title-search.js +1 -6
  171. package/build-module/navigation/menu/menu-title-search.js.map +1 -1
  172. package/build-module/navigation/menu/search-no-results-found.js +1 -6
  173. package/build-module/navigation/menu/search-no-results-found.js.map +1 -1
  174. package/build-module/navigation/use-navigation-tree-nodes.js +18 -9
  175. package/build-module/navigation/use-navigation-tree-nodes.js.map +1 -1
  176. package/build-module/navigation/utils.js +2 -2
  177. package/build-module/navigation/utils.js.map +1 -1
  178. package/build-module/range-control/index.js +1 -1
  179. package/build-module/range-control/index.js.map +1 -1
  180. package/build-module/range-control/utils.js +1 -5
  181. package/build-module/range-control/utils.js.map +1 -1
  182. package/build-module/spacer/component.js +3 -4
  183. package/build-module/spacer/component.js.map +1 -1
  184. package/build-module/spinner/index.js +22 -13
  185. package/build-module/spinner/index.js.map +1 -1
  186. package/build-module/spinner/styles.js +10 -10
  187. package/build-module/spinner/styles.js.map +1 -1
  188. package/build-module/truncate/component.js +7 -8
  189. package/build-module/truncate/component.js.map +1 -1
  190. package/build-module/truncate/hook.js +3 -10
  191. package/build-module/truncate/hook.js.map +1 -1
  192. package/build-module/truncate/index.js.map +1 -1
  193. package/build-module/truncate/styles.js +1 -1
  194. package/build-module/truncate/styles.js.map +1 -1
  195. package/build-module/truncate/utils.js +3 -16
  196. package/build-module/truncate/utils.js.map +1 -1
  197. package/build-module/utils/math.js +15 -6
  198. package/build-module/utils/math.js.map +1 -1
  199. package/build-module/v-stack/component.js +9 -9
  200. package/build-module/v-stack/component.js.map +1 -1
  201. package/build-module/v-stack/hook.js +0 -5
  202. package/build-module/v-stack/hook.js.map +1 -1
  203. package/build-module/v-stack/index.js.map +1 -1
  204. package/build-style/style-rtl.css +16 -0
  205. package/build-style/style.css +16 -0
  206. package/build-types/border-box-control/border-box-control/component.d.ts.map +1 -1
  207. package/build-types/border-box-control/border-box-control-split-controls/component.d.ts.map +1 -1
  208. package/build-types/border-control/border-control/component.d.ts +36 -2
  209. package/build-types/border-control/border-control/component.d.ts.map +1 -1
  210. package/build-types/border-control/stories/index.d.ts +33 -0
  211. package/build-types/border-control/stories/index.d.ts.map +1 -0
  212. package/build-types/color-indicator/index.d.ts +16 -5
  213. package/build-types/color-indicator/index.d.ts.map +1 -1
  214. package/build-types/color-indicator/stories/index.d.ts +12 -0
  215. package/build-types/color-indicator/stories/index.d.ts.map +1 -0
  216. package/build-types/color-indicator/test/index.d.ts +2 -0
  217. package/build-types/color-indicator/test/index.d.ts.map +1 -0
  218. package/build-types/color-indicator/types.d.ts +12 -0
  219. package/build-types/color-indicator/types.d.ts.map +1 -0
  220. package/build-types/color-palette/index.d.ts.map +1 -1
  221. package/build-types/color-palette/styles.d.ts +4 -2
  222. package/build-types/color-palette/styles.d.ts.map +1 -1
  223. package/build-types/color-picker/component.d.ts.map +1 -1
  224. package/build-types/color-picker/styles.d.ts +17 -0
  225. package/build-types/color-picker/styles.d.ts.map +1 -1
  226. package/build-types/date-time/date/index.d.ts +1 -1
  227. package/build-types/date-time/date/index.d.ts.map +1 -1
  228. package/build-types/date-time/date-time/index.d.ts.map +1 -1
  229. package/build-types/date-time/types.d.ts +6 -0
  230. package/build-types/date-time/types.d.ts.map +1 -1
  231. package/build-types/form-toggle/index.d.ts +29 -0
  232. package/build-types/form-toggle/index.d.ts.map +1 -0
  233. package/build-types/form-toggle/stories/index.d.ts +12 -0
  234. package/build-types/form-toggle/stories/index.d.ts.map +1 -0
  235. package/build-types/form-toggle/test/index.d.ts +2 -0
  236. package/build-types/form-toggle/test/index.d.ts.map +1 -0
  237. package/build-types/form-toggle/types.d.ts +22 -0
  238. package/build-types/form-toggle/types.d.ts.map +1 -0
  239. package/build-types/form-token-field/test/lib/token-field-wrapper.d.ts +3 -0
  240. package/build-types/form-token-field/test/lib/token-field-wrapper.d.ts.map +1 -1
  241. package/build-types/heading/component.d.ts +1 -2
  242. package/build-types/heading/component.d.ts.map +1 -1
  243. package/build-types/heading/hook.d.ts +1 -28
  244. package/build-types/heading/hook.d.ts.map +1 -1
  245. package/build-types/heading/stories/index.d.ts.map +1 -1
  246. package/build-types/heading/test/index.d.ts +2 -0
  247. package/build-types/heading/test/index.d.ts.map +1 -0
  248. package/build-types/heading/types.d.ts +16 -0
  249. package/build-types/heading/types.d.ts.map +1 -0
  250. package/build-types/range-control/utils.d.ts.map +1 -1
  251. package/build-types/spacer/component.d.ts +2 -3
  252. package/build-types/spacer/component.d.ts.map +1 -1
  253. package/build-types/spacer/stories/index.d.ts +12 -0
  254. package/build-types/spacer/stories/index.d.ts.map +1 -0
  255. package/build-types/spinner/index.d.ts +16 -15
  256. package/build-types/spinner/index.d.ts.map +1 -1
  257. package/build-types/spinner/stories/index.d.ts +13 -0
  258. package/build-types/spinner/stories/index.d.ts.map +1 -0
  259. package/build-types/spinner/styles.d.ts +4 -3
  260. package/build-types/spinner/styles.d.ts.map +1 -1
  261. package/build-types/text/types.d.ts +1 -1
  262. package/build-types/text/types.d.ts.map +1 -1
  263. package/build-types/truncate/component.d.ts +3 -3
  264. package/build-types/truncate/component.d.ts.map +1 -1
  265. package/build-types/truncate/hook.d.ts +5 -2
  266. package/build-types/truncate/hook.d.ts.map +1 -1
  267. package/build-types/truncate/index.d.ts +2 -2
  268. package/build-types/truncate/index.d.ts.map +1 -1
  269. package/build-types/truncate/stories/index.d.ts +13 -0
  270. package/build-types/truncate/stories/index.d.ts.map +1 -0
  271. package/build-types/truncate/styles.d.ts +1 -1
  272. package/build-types/truncate/styles.d.ts.map +1 -1
  273. package/build-types/truncate/test/index.d.ts +2 -0
  274. package/build-types/truncate/test/index.d.ts.map +1 -0
  275. package/build-types/truncate/types.d.ts +22 -11
  276. package/build-types/truncate/types.d.ts.map +1 -1
  277. package/build-types/truncate/utils.d.ts +17 -28
  278. package/build-types/truncate/utils.d.ts.map +1 -1
  279. package/build-types/ui/form-group/use-form-group.d.ts +2 -2
  280. package/build-types/utils/math.d.ts +10 -0
  281. package/build-types/utils/math.d.ts.map +1 -1
  282. package/build-types/v-stack/component.d.ts +5 -4
  283. package/build-types/v-stack/component.d.ts.map +1 -1
  284. package/build-types/v-stack/hook.d.ts +5 -3
  285. package/build-types/v-stack/hook.d.ts.map +1 -1
  286. package/build-types/v-stack/index.d.ts +2 -2
  287. package/build-types/v-stack/index.d.ts.map +1 -1
  288. package/build-types/v-stack/stories/index.d.ts +9 -0
  289. package/build-types/v-stack/stories/index.d.ts.map +1 -0
  290. package/build-types/v-stack/test/index.d.ts +2 -0
  291. package/build-types/v-stack/test/index.d.ts.map +1 -0
  292. package/build-types/v-stack/types.d.ts +21 -1
  293. package/build-types/v-stack/types.d.ts.map +1 -1
  294. package/package.json +18 -17
  295. package/src/alignment-matrix-control/utils.js +1 -6
  296. package/src/autocomplete/autocompleter-ui.js +4 -1
  297. package/src/autocomplete/autocompleter-ui.native.js +8 -2
  298. package/src/autocomplete/index.js +4 -8
  299. package/src/border-box-control/border-box-control/component.tsx +1 -0
  300. package/src/border-box-control/border-box-control-split-controls/component.tsx +1 -0
  301. package/src/border-control/border-control/component.tsx +41 -4
  302. package/src/border-control/stories/index.tsx +150 -0
  303. package/src/box-control/utils.js +4 -4
  304. package/src/color-indicator/README.md +7 -9
  305. package/src/color-indicator/index.tsx +47 -0
  306. package/src/color-indicator/stories/index.tsx +37 -0
  307. package/src/color-indicator/test/__snapshots__/index.tsx.snap +11 -0
  308. package/src/color-indicator/test/{index.js → index.tsx} +4 -4
  309. package/src/color-indicator/types.ts +12 -0
  310. package/src/color-palette/index.js +5 -1
  311. package/src/color-picker/component.tsx +12 -11
  312. package/src/color-picker/input-with-slider.tsx +2 -2
  313. package/src/color-picker/styles.ts +20 -1
  314. package/src/custom-gradient-picker/index.js +4 -11
  315. package/src/custom-gradient-picker/index.native.js +3 -11
  316. package/src/custom-gradient-picker/serializer.js +5 -11
  317. package/src/date-time/README.md +7 -0
  318. package/src/date-time/date/index.tsx +2 -0
  319. package/src/date-time/date-time/index.tsx +2 -0
  320. package/src/date-time/types.ts +7 -0
  321. package/src/dimension-control/README.md +5 -2
  322. package/src/dimension-control/test/index.test.js +7 -7
  323. package/src/duotone-picker/duotone-picker.js +58 -37
  324. package/src/duotone-picker/style.scss +19 -0
  325. package/src/elevation/hook.js +8 -8
  326. package/src/flex/flex/README.md +5 -10
  327. package/src/flex/flex-item/README.md +1 -1
  328. package/src/focal-point-picker/index.native.js +1 -1
  329. package/src/form-toggle/README.md +10 -11
  330. package/src/form-toggle/index.tsx +71 -0
  331. package/src/form-toggle/stories/index.tsx +52 -0
  332. package/src/form-toggle/test/__snapshots__/index.tsx.snap +54 -0
  333. package/src/form-toggle/test/index.tsx +102 -0
  334. package/src/form-toggle/types.ts +22 -0
  335. package/src/form-token-field/test/index.js +6 -9
  336. package/src/form-token-field/test/lib/token-field-wrapper.tsx +2 -2
  337. package/src/h-stack/utils.js +3 -3
  338. package/src/heading/README.md +4 -3
  339. package/src/heading/component.tsx +2 -2
  340. package/src/heading/hook.ts +1 -42
  341. package/src/heading/stories/index.tsx +5 -1
  342. package/src/heading/test/__snapshots__/{index.js.snap → index.tsx.snap} +0 -0
  343. package/src/heading/test/index.tsx +68 -0
  344. package/src/heading/types.ts +29 -0
  345. package/src/input-control/test/index.js +106 -31
  346. package/src/mobile/bottom-sheet/keyboard-avoiding-view.native.js +2 -7
  347. package/src/mobile/link-picker/index.native.js +2 -3
  348. package/src/mobile/segmented-control/index.native.js +6 -5
  349. package/src/navigation/group/index.js +8 -3
  350. package/src/navigation/item/base.js +3 -2
  351. package/src/navigation/item/use-navigation-tree-item.js +2 -0
  352. package/src/navigation/menu/menu-title-search.js +3 -6
  353. package/src/navigation/menu/search-no-results-found.js +3 -6
  354. package/src/navigation/use-navigation-tree-nodes.js +11 -10
  355. package/src/navigation/utils.js +2 -2
  356. package/src/number-control/stories/index.js +24 -24
  357. package/src/range-control/index.js +1 -1
  358. package/src/range-control/utils.js +1 -4
  359. package/src/slot-fill/test/slot.js +2 -3
  360. package/src/spacer/component.tsx +3 -4
  361. package/src/spacer/stories/index.tsx +70 -0
  362. package/src/spinner/{index.js → index.tsx} +23 -9
  363. package/src/spinner/stories/index.tsx +32 -0
  364. package/src/spinner/{styles.js → styles.ts} +0 -0
  365. package/src/style.scss +1 -0
  366. package/src/text/types.ts +1 -1
  367. package/src/truncate/README.md +16 -12
  368. package/src/truncate/{component.js → component.tsx} +13 -9
  369. package/src/truncate/{hook.js → hook.ts} +8 -10
  370. package/src/truncate/{index.js → index.ts} +0 -0
  371. package/src/truncate/stories/index.tsx +49 -0
  372. package/src/truncate/{styles.js → styles.ts} +0 -0
  373. package/src/truncate/test/{index.js → index.tsx} +4 -4
  374. package/src/truncate/types.ts +28 -10
  375. package/src/truncate/{utils.js → utils.ts} +19 -19
  376. package/src/utils/math.js +14 -5
  377. package/src/utils/test/math.js +22 -1
  378. package/src/v-stack/README.md +6 -18
  379. package/src/v-stack/{component.js → component.tsx} +15 -10
  380. package/src/v-stack/{hook.js → hook.ts} +5 -6
  381. package/src/v-stack/{index.js → index.ts} +0 -0
  382. package/src/v-stack/stories/index.tsx +41 -0
  383. package/src/v-stack/test/__snapshots__/{index.js.snap → index.tsx.snap} +0 -0
  384. package/src/v-stack/test/{index.js → index.tsx} +0 -0
  385. package/src/v-stack/types.ts +21 -1
  386. package/tsconfig.json +1 -0
  387. package/tsconfig.tsbuildinfo +1 -1
  388. package/src/border-control/stories/index.js +0 -119
  389. package/src/color-indicator/index.js +0 -16
  390. package/src/color-indicator/stories/index.js +0 -22
  391. package/src/color-indicator/test/__snapshots__/index.js.snap +0 -13
  392. package/src/form-toggle/index.js +0 -38
  393. package/src/form-toggle/stories/index.js +0 -28
  394. package/src/form-toggle/test/index.js +0 -74
  395. package/src/heading/test/index.js +0 -67
  396. package/src/spacer/stories/index.js +0 -59
  397. package/src/spinner/stories/index.js +0 -43
  398. package/src/truncate/stories/index.js +0 -38
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/components/src/color-picker/styles.ts"],"names":["NumberControlWrapper","NumberControl","InputControlContainer","SelectControl","InnerSelectControl","BackdropUI","RangeControl","InnerRangeControl","StyledField","inputHeightStyle","Input","interactiveHueStyles","AuxiliaryColorArtefactWrapper","ColorfulWrapper","CONFIG","borderWidthFocus","CopyButton","Button","ColorHexInputControl","InputControl"],"mappings":";;;;;;;;;;;AAQA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AAKA;;AACA;;;;AAEO,MAAMA,oBAAoB,GAAG,iCAAQC,sBAAR;AAAA;AAAA;AAAA;AAAA;AAAA,EAAH,CAC7BC,6BAD6B,aAErB,kBAAO,EAAP,CAFqB,kvIAA1B;;AAMA,MAAMC,aAAa,GAAG,iCAAQC,sBAAR;AAAA;AAAA;AAAA;AAAA;AAAA,EAAH,iBACT,kBAAO,CAAC,CAAR,CADS,iBAGtBC,8BAHsB,+vIAAnB;;AAQA,MAAMC,YAAY,GAAG,iCAAQC,qBAAR;AAAA;AAAA;AAAA;AAAA;AAAA,EAAH,YAGrBC,8BAHqB,kwIAAlB,C,CAQP;AACA;AACA;;;AACA,MAAMC,gBAAgB,GAAI;AAC1B,MAAOC,yBAAO;AACd;AACA,EAHA,C,CAKA;;AACA,MAAMC,oBAAoB,GAAI;AAC9B;AACA,uBAAwB,kBAAO,CAAP,CAAY;AACpC,gBAAiB,kBAAO,CAAP,CAAY;AAC7B,EAJA;AAMO,MAAMC,6BAA6B;AAAA;AAAA;AAAA;AAAA;AAAA,eAC7B,kBAAO,CAAP,CAD6B,OACb,kBAAO,CAAP,CADa,ivIAAnC;;AAIA,MAAMC,eAAe;AAAA;AAAA;AAAA;AAAA;AAAA,oMAeR,kBAAO,CAAP,CAfQ,gIAwBR,kBAAO,CAAP,CAxBQ,mMAsCCC,sBAAOC,gBAtCR,aAyCxBJ,oBAzCwB,OA2CxBH,8BA3CwB,wBA+CxBC,gBA/CwB,ivIAArB;;AAkDA,MAAMO,UAAU,GAAG,iCAAQC,eAAR;AAAA;AAAA;AAAA;AAAA;AAAA,EAAH,qBAEP,kBAAO,CAAP,CAFO,ixIAAhB;;AAWA,MAAMC,oBAAoB,GAAG,iCAAQC,qBAAR;AAAA;AAAA;AAAA;AAAA;AAAA,EAAH;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAA1B","sourcesContent":["/**\n * External dependencies\n */\nimport styled from '@emotion/styled';\n\n/**\n * Internal dependencies\n */\nimport NumberControl from '../number-control';\nimport InnerSelectControl from '../select-control';\nimport InnerRangeControl from '../range-control';\nimport { StyledField } from '../base-control/styles/base-control-styles';\nimport { space } from '../ui/utils/space';\nimport Button from '../button';\nimport {\n\tBackdropUI,\n\tContainer as InputControlContainer,\n\tInput,\n} from '../input-control/styles/input-control-styles';\nimport InputControl from '../input-control';\nimport CONFIG from '../utils/config-values';\n\nexport const NumberControlWrapper = styled( NumberControl )`\n\t${ InputControlContainer } {\n\t\twidth: ${ space( 24 ) };\n\t}\n`;\n\nexport const SelectControl = styled( InnerSelectControl )`\n\tmargin-left: ${ space( -2 ) };\n\twidth: 5em;\n\t${ BackdropUI } {\n\t\tdisplay: none;\n\t}\n`;\n\nexport const RangeControl = styled( InnerRangeControl )`\n\tflex: 1;\n\n\t${ StyledField } {\n\t\tmargin-bottom: 0;\n\t}\n`;\n\n// All inputs should be the same height so this should be changed at the component level.\n// That involves changing heights of multiple input types probably buttons too etc.\n// So until that is done we are already using the new height on the color picker so it matches the mockups.\nconst inputHeightStyle = `\n&&& ${ Input } {\n\theight: 40px;\n}`;\n\n// Make the Hue circle picker not go out of the bar.\nconst interactiveHueStyles = `\n.react-colorful__interactive {\n\twidth: calc( 100% - ${ space( 2 ) } );\n\tmargin-left: ${ space( 1 ) };\n}`;\n\nexport const AuxiliaryColorArtefactWrapper = styled.div`\n\tpadding: ${ space( 2 ) } ${ space( 4 ) };\n`;\n\nexport const ColorfulWrapper = styled.div`\n\twidth: 216px;\n\n\t.react-colorful {\n\t\tdisplay: flex;\n\t\tflex-direction: column;\n\t\talign-items: center;\n\t\twidth: 216px;\n\t\theight: auto;\n\t}\n\n\t.react-colorful__saturation {\n\t\twidth: 100%;\n\t\tborder-radius: 0;\n\t\theight: 216px;\n\t\tmargin-bottom: ${ space( 4 ) };\n\t\tborder-bottom: none;\n\t}\n\n\t.react-colorful__hue,\n\t.react-colorful__alpha {\n\t\twidth: 184px;\n\t\theight: 16px;\n\t\tborder-radius: 16px;\n\t\tmargin-bottom: ${ space( 2 ) };\n\t}\n\n\t.react-colorful__pointer {\n\t\theight: 16px;\n\t\twidth: 16px;\n\t\tborder: none;\n\t\tbox-shadow: 0 0 2px 0 rgba( 0, 0, 0, 0.25 );\n\n\t\t// Shown instead of box-shadow to Windows high contrast mode.\n\t\toutline: 2px solid transparent;\n\t}\n\n\t.react-colorful__pointer-fill {\n\t\tbox-shadow: inset 0 0 0 ${ CONFIG.borderWidthFocus } #fff;\n\t}\n\n\t${ interactiveHueStyles }\n\n\t${ StyledField } {\n\t\tmargin-bottom: 0;\n\t}\n\n\t${ inputHeightStyle }\n`;\n\nexport const CopyButton = styled( Button )`\n\t&&&&& {\n\t\tmin-width: ${ space( 6 ) };\n\t\tpadding: 0;\n\n\t\t> svg {\n\t\t\tmargin-right: 0;\n\t\t}\n\t}\n`;\n\nexport const ColorHexInputControl = styled( InputControl )`\n\twidth: 8em;\n`;\n"]}
1
+ {"version":3,"sources":["@wordpress/components/src/color-picker/styles.ts"],"names":["NumberControlWrapper","NumberControl","InputControlContainer","SelectControl","InnerSelectControl","BackdropUI","RangeControl","InnerRangeControl","StyledField","inputHeightStyle","Input","interactiveHueStyles","AuxiliaryColorArtefactWrapper","AuxiliaryColorArtefactHStackHeader","HStack","ColorInputWrapper","Flex","ColorfulWrapper","CONFIG","borderWidthFocus","CopyButton","Button","ColorHexInputControl","InputControl"],"mappings":";;;;;;;;;;;AAQA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AAKA;;AACA;;;;AAEO,MAAMA,oBAAoB,GAAG,iCAAQC,sBAAR;AAAA;AAAA;AAAA;AAAA;AAAA,EAAH,CAC7BC,6BAD6B,aAErB,kBAAO,EAAP,CAFqB,k6JAA1B;;AAMA,MAAMC,aAAa,GAAG,iCAAQC,sBAAR;AAAA;AAAA;AAAA;AAAA;AAAA,EAAH,iBACT,kBAAO,CAAC,CAAR,CADS,iBAGtBC,8BAHsB,+6JAAnB;;AAQA,MAAMC,YAAY,GAAG,iCAAQC,qBAAR;AAAA;AAAA;AAAA;AAAA;AAAA,EAAH,yBAEP,kBAAO,CAAP,CAFO,OAIrBC,8BAJqB,k7JAAlB,C,CASP;AACA;AACA;;;AACA,MAAMC,gBAAgB,GAAI;AAC1B,MAAOC,yBAAO;AACd;AACA,EAHA,C,CAKA;;AACA,MAAMC,oBAAoB,GAAI;AAC9B;AACA,uBAAwB,kBAAO,CAAP,CAAY;AACpC,gBAAiB,kBAAO,CAAP,CAAY;AAC7B,EAJA;AAMO,MAAMC,6BAA6B;AAAA;AAAA;AAAA;AAAA;AAAA,mBACzB,kBAAO,CAAP,CADyB,i9JAAnC;;AAOA,MAAMC,kCAAkC,GAAG,iCAAQC,cAAR;AAAA;AAAA;AAAA;AAAA;AAAA,EAAH,kBAC7B,kBAAO,CAAP,CAD6B,qBAE5B,kBAAO,CAAP,CAF4B,i6JAAxC;;AAKA,MAAMC,iBAAiB,GAAG,iCAAQC,UAAR;AAAA;AAAA;AAAA;AAAA;AAAA,EAAH,iBACb,kBAAO,CAAP,CADa,oBAEZ,kBAAO,CAAP,CAFY,qBAGX,kBAAO,CAAP,CAHW,sBAIV,kBAAO,CAAP,CAJU,i6JAAvB;;AAOA,MAAMC,eAAe;AAAA;AAAA;AAAA;AAAA;AAAA,oNAgBR,kBAAO,CAAP,CAhBQ,gIAyBR,kBAAO,CAAP,CAzBQ,mMAuCCC,sBAAOC,gBAvCR,aA0CxBR,oBA1CwB,OA4CxBH,8BA5CwB,wBAgDxBC,gBAhDwB,i6JAArB;;AAmDA,MAAMW,UAAU,GAAG,iCAAQC,eAAR;AAAA;AAAA;AAAA;AAAA;AAAA,EAAH,qBAEP,kBAAO,CAAP,CAFO,i8JAAhB;;AAWA,MAAMC,oBAAoB,GAAG,iCAAQC,qBAAR;AAAA;AAAA;AAAA;AAAA;AAAA,EAAH;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,EAA1B","sourcesContent":["/**\n * External dependencies\n */\nimport styled from '@emotion/styled';\n\n/**\n * Internal dependencies\n */\nimport NumberControl from '../number-control';\nimport InnerSelectControl from '../select-control';\nimport InnerRangeControl from '../range-control';\nimport { StyledField } from '../base-control/styles/base-control-styles';\nimport { space } from '../ui/utils/space';\nimport Button from '../button';\nimport { Flex } from '../flex';\nimport { HStack } from '../h-stack';\nimport {\n\tBackdropUI,\n\tContainer as InputControlContainer,\n\tInput,\n} from '../input-control/styles/input-control-styles';\nimport InputControl from '../input-control';\nimport CONFIG from '../utils/config-values';\n\nexport const NumberControlWrapper = styled( NumberControl )`\n\t${ InputControlContainer } {\n\t\twidth: ${ space( 24 ) };\n\t}\n`;\n\nexport const SelectControl = styled( InnerSelectControl )`\n\tmargin-left: ${ space( -2 ) };\n\twidth: 5em;\n\t${ BackdropUI } {\n\t\tdisplay: none;\n\t}\n`;\n\nexport const RangeControl = styled( InnerRangeControl )`\n\tflex: 1;\n\tmargin-right: ${ space( 2 ) };\n\n\t${ StyledField } {\n\t\tmargin-bottom: 0;\n\t}\n`;\n\n// All inputs should be the same height so this should be changed at the component level.\n// That involves changing heights of multiple input types probably buttons too etc.\n// So until that is done we are already using the new height on the color picker so it matches the mockups.\nconst inputHeightStyle = `\n&&& ${ Input } {\n\theight: 40px;\n}`;\n\n// Make the Hue circle picker not go out of the bar.\nconst interactiveHueStyles = `\n.react-colorful__interactive {\n\twidth: calc( 100% - ${ space( 2 ) } );\n\tmargin-left: ${ space( 1 ) };\n}`;\n\nexport const AuxiliaryColorArtefactWrapper = styled.div`\n\tpadding-top: ${ space( 2 ) };\n\tpadding-right: 0;\n\tpadding-left: 0;\n\tpadding-bottom: 0;\n`;\n\nexport const AuxiliaryColorArtefactHStackHeader = styled( HStack )`\n\tpadding-left: ${ space( 4 ) };\n\tpadding-right: ${ space( 4 ) };\n`;\n\nexport const ColorInputWrapper = styled( Flex )`\n\tpadding-top: ${ space( 4 ) };\n\tpadding-left: ${ space( 4 ) };\n\tpadding-right: ${ space( 3 ) };\n\tpadding-bottom: ${ space( 5 ) };\n`;\n\nexport const ColorfulWrapper = styled.div`\n\twidth: 216px;\n\n\t.react-colorful {\n\t\tdisplay: flex;\n\t\tflex-direction: column;\n\t\talign-items: center;\n\t\twidth: 216px;\n\t\theight: auto;\n\t\toverflow: hidden;\n\t}\n\n\t.react-colorful__saturation {\n\t\twidth: 100%;\n\t\tborder-radius: 0;\n\t\theight: 216px;\n\t\tmargin-bottom: ${ space( 4 ) };\n\t\tborder-bottom: none;\n\t}\n\n\t.react-colorful__hue,\n\t.react-colorful__alpha {\n\t\twidth: 184px;\n\t\theight: 16px;\n\t\tborder-radius: 16px;\n\t\tmargin-bottom: ${ space( 2 ) };\n\t}\n\n\t.react-colorful__pointer {\n\t\theight: 16px;\n\t\twidth: 16px;\n\t\tborder: none;\n\t\tbox-shadow: 0 0 2px 0 rgba( 0, 0, 0, 0.25 );\n\n\t\t// Shown instead of box-shadow to Windows high contrast mode.\n\t\toutline: 2px solid transparent;\n\t}\n\n\t.react-colorful__pointer-fill {\n\t\tbox-shadow: inset 0 0 0 ${ CONFIG.borderWidthFocus } #fff;\n\t}\n\n\t${ interactiveHueStyles }\n\n\t${ StyledField } {\n\t\tmargin-bottom: 0;\n\t}\n\n\t${ inputHeightStyle }\n`;\n\nexport const CopyButton = styled( Button )`\n\t&&&&& {\n\t\tmin-width: ${ space( 6 ) };\n\t\tpadding: 0;\n\n\t\t> svg {\n\t\t\tmargin-right: 0;\n\t\t}\n\t}\n`;\n\nexport const ColorHexInputControl = styled( InputControl )`\n\twidth: 8em;\n`;\n"]}
@@ -9,8 +9,6 @@ exports.default = CustomGradientPicker;
9
9
 
10
10
  var _element = require("@wordpress/element");
11
11
 
12
- var _lodash = require("lodash");
13
-
14
12
  var _i18n = require("@wordpress/i18n");
15
13
 
16
14
  var _anglePickerControl = _interopRequireDefault(require("../angle-picker-control"));
@@ -29,10 +27,6 @@ var _constants = require("./constants");
29
27
 
30
28
  var _customGradientPickerStyles = require("./styles/custom-gradient-picker-styles");
31
29
 
32
- /**
33
- * External dependencies
34
- */
35
-
36
30
  /**
37
31
  * WordPress dependencies
38
32
  */
@@ -41,12 +35,14 @@ var _customGradientPickerStyles = require("./styles/custom-gradient-picker-style
41
35
  * Internal dependencies
42
36
  */
43
37
  const GradientAnglePicker = _ref => {
38
+ var _gradientAST$orientat, _gradientAST$orientat2;
39
+
44
40
  let {
45
41
  gradientAST,
46
42
  hasGradient,
47
43
  onChange
48
44
  } = _ref;
49
- const angle = (0, _lodash.get)(gradientAST, ['orientation', 'value'], _constants.DEFAULT_LINEAR_GRADIENT_ANGLE);
45
+ const angle = (_gradientAST$orientat = gradientAST === null || gradientAST === void 0 ? void 0 : (_gradientAST$orientat2 = gradientAST.orientation) === null || _gradientAST$orientat2 === void 0 ? void 0 : _gradientAST$orientat2.value) !== null && _gradientAST$orientat !== void 0 ? _gradientAST$orientat : _constants.DEFAULT_LINEAR_GRADIENT_ANGLE;
50
46
 
51
47
  const onAngleChange = newAngle => {
52
48
  onChange((0, _serializer.serializeGradient)({ ...gradientAST,
@@ -84,7 +80,11 @@ const GradientTypePicker = _ref2 => {
84
80
  };
85
81
 
86
82
  const onSetRadialGradient = () => {
87
- onChange((0, _serializer.serializeGradient)({ ...(0, _lodash.omit)(gradientAST, ['orientation']),
83
+ const {
84
+ orientation,
85
+ ...restGradientAST
86
+ } = gradientAST;
87
+ onChange((0, _serializer.serializeGradient)({ ...restGradientAST,
88
88
  type: 'radial-gradient'
89
89
  }));
90
90
  };
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/components/src/custom-gradient-picker/index.js"],"names":["GradientAnglePicker","gradientAST","hasGradient","onChange","angle","DEFAULT_LINEAR_GRADIENT_ANGLE","onAngleChange","newAngle","orientation","type","value","GradientTypePicker","onSetLinearGradient","HORIZONTAL_GRADIENT_ORIENTATION","onSetRadialGradient","handleOnChange","next","GRADIENT_OPTIONS","CustomGradientPicker","__experimentalIsRenderedInSidebar","background","DEFAULT_GRADIENT","controlPoints","colorStops","map","colorStop","color","position","parseInt","length","newControlPoints"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport { get, omit } from 'lodash';\n\n/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport AnglePickerControl from '../angle-picker-control';\nimport CustomGradientBar from '../custom-gradient-bar';\nimport { Flex } from '../flex';\nimport SelectControl from '../select-control';\nimport {\n\tgetGradientAstWithDefault,\n\tgetLinearGradientRepresentation,\n\tgetGradientAstWithControlPoints,\n\tgetStopCssColor,\n} from './utils';\nimport { serializeGradient } from './serializer';\nimport {\n\tDEFAULT_LINEAR_GRADIENT_ANGLE,\n\tHORIZONTAL_GRADIENT_ORIENTATION,\n\tGRADIENT_OPTIONS,\n\tDEFAULT_GRADIENT,\n} from './constants';\nimport {\n\tAccessoryWrapper,\n\tSelectWrapper,\n} from './styles/custom-gradient-picker-styles';\n\nconst GradientAnglePicker = ( { gradientAST, hasGradient, onChange } ) => {\n\tconst angle = get(\n\t\tgradientAST,\n\t\t[ 'orientation', 'value' ],\n\t\tDEFAULT_LINEAR_GRADIENT_ANGLE\n\t);\n\tconst onAngleChange = ( newAngle ) => {\n\t\tonChange(\n\t\t\tserializeGradient( {\n\t\t\t\t...gradientAST,\n\t\t\t\torientation: {\n\t\t\t\t\ttype: 'angular',\n\t\t\t\t\tvalue: newAngle,\n\t\t\t\t},\n\t\t\t} )\n\t\t);\n\t};\n\treturn (\n\t\t<AnglePickerControl\n\t\t\tonChange={ onAngleChange }\n\t\t\tlabelPosition=\"top\"\n\t\t\tvalue={ hasGradient ? angle : '' }\n\t\t/>\n\t);\n};\n\nconst GradientTypePicker = ( { gradientAST, hasGradient, onChange } ) => {\n\tconst { type } = gradientAST;\n\tconst onSetLinearGradient = () => {\n\t\tonChange(\n\t\t\tserializeGradient( {\n\t\t\t\t...gradientAST,\n\t\t\t\t...( gradientAST.orientation\n\t\t\t\t\t? {}\n\t\t\t\t\t: { orientation: HORIZONTAL_GRADIENT_ORIENTATION } ),\n\t\t\t\ttype: 'linear-gradient',\n\t\t\t} )\n\t\t);\n\t};\n\n\tconst onSetRadialGradient = () => {\n\t\tonChange(\n\t\t\tserializeGradient( {\n\t\t\t\t...omit( gradientAST, [ 'orientation' ] ),\n\t\t\t\ttype: 'radial-gradient',\n\t\t\t} )\n\t\t);\n\t};\n\n\tconst handleOnChange = ( next ) => {\n\t\tif ( next === 'linear-gradient' ) {\n\t\t\tonSetLinearGradient();\n\t\t}\n\t\tif ( next === 'radial-gradient' ) {\n\t\t\tonSetRadialGradient();\n\t\t}\n\t};\n\n\treturn (\n\t\t<SelectControl\n\t\t\tclassName=\"components-custom-gradient-picker__type-picker\"\n\t\t\tlabel={ __( 'Type' ) }\n\t\t\tlabelPosition=\"top\"\n\t\t\tonChange={ handleOnChange }\n\t\t\toptions={ GRADIENT_OPTIONS }\n\t\t\tsize=\"__unstable-large\"\n\t\t\tvalue={ hasGradient && type }\n\t\t/>\n\t);\n};\n\nexport default function CustomGradientPicker( {\n\tvalue,\n\tonChange,\n\t__experimentalIsRenderedInSidebar,\n} ) {\n\tconst gradientAST = getGradientAstWithDefault( value );\n\t// On radial gradients the bar should display a linear gradient.\n\t// On radial gradients the bar represents a slice of the gradient from the center until the outside.\n\t// On liner gradients the bar represents the color stops from left to right independently of the angle.\n\tconst background = getLinearGradientRepresentation( gradientAST );\n\tconst hasGradient = gradientAST.value !== DEFAULT_GRADIENT;\n\t// Control points color option may be hex from presets, custom colors will be rgb.\n\t// The position should always be a percentage.\n\tconst controlPoints = gradientAST.colorStops.map( ( colorStop ) => ( {\n\t\tcolor: getStopCssColor( colorStop ),\n\t\tposition: parseInt( colorStop.length.value ),\n\t} ) );\n\n\treturn (\n\t\t<div className=\"components-custom-gradient-picker\">\n\t\t\t<CustomGradientBar\n\t\t\t\t__experimentalIsRenderedInSidebar={\n\t\t\t\t\t__experimentalIsRenderedInSidebar\n\t\t\t\t}\n\t\t\t\tbackground={ background }\n\t\t\t\thasGradient={ hasGradient }\n\t\t\t\tvalue={ controlPoints }\n\t\t\t\tonChange={ ( newControlPoints ) => {\n\t\t\t\t\tonChange(\n\t\t\t\t\t\tserializeGradient(\n\t\t\t\t\t\t\tgetGradientAstWithControlPoints(\n\t\t\t\t\t\t\t\tgradientAST,\n\t\t\t\t\t\t\t\tnewControlPoints\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\t<Flex\n\t\t\t\tgap={ 3 }\n\t\t\t\tclassName=\"components-custom-gradient-picker__ui-line\"\n\t\t\t>\n\t\t\t\t<SelectWrapper>\n\t\t\t\t\t<GradientTypePicker\n\t\t\t\t\t\tgradientAST={ gradientAST }\n\t\t\t\t\t\thasGradient={ hasGradient }\n\t\t\t\t\t\tonChange={ onChange }\n\t\t\t\t\t/>\n\t\t\t\t</SelectWrapper>\n\t\t\t\t<AccessoryWrapper>\n\t\t\t\t\t{ gradientAST.type === 'linear-gradient' && (\n\t\t\t\t\t\t<GradientAnglePicker\n\t\t\t\t\t\t\tgradientAST={ gradientAST }\n\t\t\t\t\t\t\thasGradient={ hasGradient }\n\t\t\t\t\t\t\tonChange={ onChange }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t</AccessoryWrapper>\n\t\t\t</Flex>\n\t\t</div>\n\t);\n}\n"]}
1
+ {"version":3,"sources":["@wordpress/components/src/custom-gradient-picker/index.js"],"names":["GradientAnglePicker","gradientAST","hasGradient","onChange","angle","orientation","value","DEFAULT_LINEAR_GRADIENT_ANGLE","onAngleChange","newAngle","type","GradientTypePicker","onSetLinearGradient","HORIZONTAL_GRADIENT_ORIENTATION","onSetRadialGradient","restGradientAST","handleOnChange","next","GRADIENT_OPTIONS","CustomGradientPicker","__experimentalIsRenderedInSidebar","background","DEFAULT_GRADIENT","controlPoints","colorStops","map","colorStop","color","position","parseInt","length","newControlPoints"],"mappings":"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","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __ } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport AnglePickerControl from '../angle-picker-control';\nimport CustomGradientBar from '../custom-gradient-bar';\nimport { Flex } from '../flex';\nimport SelectControl from '../select-control';\nimport {\n\tgetGradientAstWithDefault,\n\tgetLinearGradientRepresentation,\n\tgetGradientAstWithControlPoints,\n\tgetStopCssColor,\n} from './utils';\nimport { serializeGradient } from './serializer';\nimport {\n\tDEFAULT_LINEAR_GRADIENT_ANGLE,\n\tHORIZONTAL_GRADIENT_ORIENTATION,\n\tGRADIENT_OPTIONS,\n\tDEFAULT_GRADIENT,\n} from './constants';\nimport {\n\tAccessoryWrapper,\n\tSelectWrapper,\n} from './styles/custom-gradient-picker-styles';\n\nconst GradientAnglePicker = ( { gradientAST, hasGradient, onChange } ) => {\n\tconst angle =\n\t\tgradientAST?.orientation?.value ?? DEFAULT_LINEAR_GRADIENT_ANGLE;\n\tconst onAngleChange = ( newAngle ) => {\n\t\tonChange(\n\t\t\tserializeGradient( {\n\t\t\t\t...gradientAST,\n\t\t\t\torientation: {\n\t\t\t\t\ttype: 'angular',\n\t\t\t\t\tvalue: newAngle,\n\t\t\t\t},\n\t\t\t} )\n\t\t);\n\t};\n\treturn (\n\t\t<AnglePickerControl\n\t\t\tonChange={ onAngleChange }\n\t\t\tlabelPosition=\"top\"\n\t\t\tvalue={ hasGradient ? angle : '' }\n\t\t/>\n\t);\n};\n\nconst GradientTypePicker = ( { gradientAST, hasGradient, onChange } ) => {\n\tconst { type } = gradientAST;\n\tconst onSetLinearGradient = () => {\n\t\tonChange(\n\t\t\tserializeGradient( {\n\t\t\t\t...gradientAST,\n\t\t\t\t...( gradientAST.orientation\n\t\t\t\t\t? {}\n\t\t\t\t\t: { orientation: HORIZONTAL_GRADIENT_ORIENTATION } ),\n\t\t\t\ttype: 'linear-gradient',\n\t\t\t} )\n\t\t);\n\t};\n\n\tconst onSetRadialGradient = () => {\n\t\tconst { orientation, ...restGradientAST } = gradientAST;\n\t\tonChange(\n\t\t\tserializeGradient( {\n\t\t\t\t...restGradientAST,\n\t\t\t\ttype: 'radial-gradient',\n\t\t\t} )\n\t\t);\n\t};\n\n\tconst handleOnChange = ( next ) => {\n\t\tif ( next === 'linear-gradient' ) {\n\t\t\tonSetLinearGradient();\n\t\t}\n\t\tif ( next === 'radial-gradient' ) {\n\t\t\tonSetRadialGradient();\n\t\t}\n\t};\n\n\treturn (\n\t\t<SelectControl\n\t\t\tclassName=\"components-custom-gradient-picker__type-picker\"\n\t\t\tlabel={ __( 'Type' ) }\n\t\t\tlabelPosition=\"top\"\n\t\t\tonChange={ handleOnChange }\n\t\t\toptions={ GRADIENT_OPTIONS }\n\t\t\tsize=\"__unstable-large\"\n\t\t\tvalue={ hasGradient && type }\n\t\t/>\n\t);\n};\n\nexport default function CustomGradientPicker( {\n\tvalue,\n\tonChange,\n\t__experimentalIsRenderedInSidebar,\n} ) {\n\tconst gradientAST = getGradientAstWithDefault( value );\n\t// On radial gradients the bar should display a linear gradient.\n\t// On radial gradients the bar represents a slice of the gradient from the center until the outside.\n\t// On liner gradients the bar represents the color stops from left to right independently of the angle.\n\tconst background = getLinearGradientRepresentation( gradientAST );\n\tconst hasGradient = gradientAST.value !== DEFAULT_GRADIENT;\n\t// Control points color option may be hex from presets, custom colors will be rgb.\n\t// The position should always be a percentage.\n\tconst controlPoints = gradientAST.colorStops.map( ( colorStop ) => ( {\n\t\tcolor: getStopCssColor( colorStop ),\n\t\tposition: parseInt( colorStop.length.value ),\n\t} ) );\n\n\treturn (\n\t\t<div className=\"components-custom-gradient-picker\">\n\t\t\t<CustomGradientBar\n\t\t\t\t__experimentalIsRenderedInSidebar={\n\t\t\t\t\t__experimentalIsRenderedInSidebar\n\t\t\t\t}\n\t\t\t\tbackground={ background }\n\t\t\t\thasGradient={ hasGradient }\n\t\t\t\tvalue={ controlPoints }\n\t\t\t\tonChange={ ( newControlPoints ) => {\n\t\t\t\t\tonChange(\n\t\t\t\t\t\tserializeGradient(\n\t\t\t\t\t\t\tgetGradientAstWithControlPoints(\n\t\t\t\t\t\t\t\tgradientAST,\n\t\t\t\t\t\t\t\tnewControlPoints\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\t<Flex\n\t\t\t\tgap={ 3 }\n\t\t\t\tclassName=\"components-custom-gradient-picker__ui-line\"\n\t\t\t>\n\t\t\t\t<SelectWrapper>\n\t\t\t\t\t<GradientTypePicker\n\t\t\t\t\t\tgradientAST={ gradientAST }\n\t\t\t\t\t\thasGradient={ hasGradient }\n\t\t\t\t\t\tonChange={ onChange }\n\t\t\t\t\t/>\n\t\t\t\t</SelectWrapper>\n\t\t\t\t<AccessoryWrapper>\n\t\t\t\t\t{ gradientAST.type === 'linear-gradient' && (\n\t\t\t\t\t\t<GradientAnglePicker\n\t\t\t\t\t\t\tgradientAST={ gradientAST }\n\t\t\t\t\t\t\thasGradient={ hasGradient }\n\t\t\t\t\t\t\tonChange={ onChange }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t</AccessoryWrapper>\n\t\t\t</Flex>\n\t\t</div>\n\t);\n}\n"]}
@@ -9,8 +9,6 @@ exports.default = void 0;
9
9
 
10
10
  var _element = require("@wordpress/element");
11
11
 
12
- var _lodash = require("lodash");
13
-
14
12
  var _components = require("@wordpress/components");
15
13
 
16
14
  var _i18n = require("@wordpress/i18n");
@@ -25,10 +23,6 @@ var _constants = require("./constants");
25
23
 
26
24
  var _style = _interopRequireDefault(require("./style.scss"));
27
25
 
28
- /**
29
- * External dependencies
30
- */
31
-
32
26
  /**
33
27
  * WordPress dependencies
34
28
  */
@@ -57,7 +51,10 @@ function CustomGradientPicker(_ref) {
57
51
  }
58
52
 
59
53
  function getGradientColor(type) {
60
- const orientation = (0, _lodash.get)(gradientAST, ['orientation']);
54
+ const {
55
+ orientation,
56
+ ...restGradientAST
57
+ } = gradientAST;
61
58
 
62
59
  if (orientation) {
63
60
  setGradientOrientation(orientation);
@@ -68,7 +65,7 @@ function CustomGradientPicker(_ref) {
68
65
  orientation: gradientOrientation
69
66
  }),
70
67
  type
71
- } : { ...(0, _lodash.omit)(gradientAST, ['orientation']),
68
+ } : { ...restGradientAST,
72
69
  type
73
70
  });
74
71
  }
@@ -94,7 +91,9 @@ function CustomGradientPicker(_ref) {
94
91
  }
95
92
 
96
93
  function getGradientAngle() {
97
- return (0, _lodash.get)(gradientAST, ['orientation', 'value'], _constants.DEFAULT_LINEAR_GRADIENT_ANGLE);
94
+ var _gradientAST$orientat, _gradientAST$orientat2;
95
+
96
+ return (_gradientAST$orientat = gradientAST === null || gradientAST === void 0 ? void 0 : (_gradientAST$orientat2 = gradientAST.orientation) === null || _gradientAST$orientat2 === void 0 ? void 0 : _gradientAST$orientat2.value) !== null && _gradientAST$orientat !== void 0 ? _gradientAST$orientat : _constants.DEFAULT_LINEAR_GRADIENT_ANGLE;
98
97
  }
99
98
 
100
99
  return (0, _element.createElement)(_element.Fragment, null, (0, _element.createElement)(_components.PanelBody, {
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/components/src/custom-gradient-picker/index.native.js"],"names":["CustomGradientPicker","setColor","currentValue","isGradientColor","gradientOrientation","setGradientOrientation","HORIZONTAL_GRADIENT_ORIENTATION","currentColor","setCurrentColor","getGradientType","gradients","gradientOptions","colorsUtils","gradientAST","gradientType","isLinearGradient","type","linear","getGradientColor","orientation","onGradientTypeChange","gradientColor","setGradientAngle","value","getGradientAngle","DEFAULT_LINEAR_GRADIENT_ANGLE","styles","angleControl"],"mappings":";;;;;;;;;AASA;;AANA;;AAIA;;AACA;;AAMA;;AACA;;AACA;;AACA;;AAIA;;AArBA;AACA;AACA;;AAEA;AACA;AACA;;AAKA;AACA;AACA;AAUA,SAASA,oBAAT,OAA6E;AAAA,MAA9C;AAAEC,IAAAA,QAAF;AAAYC,IAAAA,YAAZ;AAA0BC,IAAAA;AAA1B,GAA8C;AAC5E,QAAM,CAAEC,mBAAF,EAAuBC,sBAAvB,IAAkD,uBACvDC,0CADuD,CAAxD;AAIA,QAAM,CAAEC,YAAF,EAAgBC,eAAhB,IAAoC,uBAAUN,YAAV,CAA1C;AAEA,QAAM;AAAEO,IAAAA,eAAF;AAAmBC,IAAAA,SAAnB;AAA8BC,IAAAA;AAA9B,MAAkDC,kBAAxD;AACA,QAAMC,WAAW,GAAG,uCAA2BN,YAA3B,CAApB;AACA,QAAMO,YAAY,GAAGL,eAAe,CAAEF,YAAF,CAApC;;AAEA,WAASQ,gBAAT,CAA2BC,IAA3B,EAAkC;AACjC,WAAOA,IAAI,KAAKN,SAAS,CAACO,MAA1B;AACA;;AAED,WAASC,gBAAT,CAA2BF,IAA3B,EAAkC;AACjC,UAAMG,WAAW,GAAG,iBAAKN,WAAL,EAAkB,CAAE,aAAF,CAAlB,CAApB;;AAEA,QAAKM,WAAL,EAAmB;AAClBd,MAAAA,sBAAsB,CAAEc,WAAF,CAAtB;AACA;;AAED,WAAO,mCACNJ,gBAAgB,CAAEC,IAAF,CAAhB,GACG,EACA,GAAGH,WADH;AAEA,UAAKA,WAAW,CAACM,WAAZ,GACF,EADE,GAEF;AACAA,QAAAA,WAAW,EAAEf;AADb,OAFH,CAFA;AAOAY,MAAAA;AAPA,KADH,GAUG,EACA,GAAG,kBAAMH,WAAN,EAAmB,CAAE,aAAF,CAAnB,CADH;AAEAG,MAAAA;AAFA,KAXG,CAAP;AAgBA;;AAED,WAASI,oBAAT,CAA+BJ,IAA/B,EAAsC;AACrC,UAAMK,aAAa,GAAGH,gBAAgB,CAAEF,IAAF,CAAtC;AACAR,IAAAA,eAAe,CAAEa,aAAF,CAAf;AACApB,IAAAA,QAAQ,CAAEoB,aAAF,CAAR;AACA;;AAED,WAASC,gBAAT,CAA2BC,KAA3B,EAAmC;AAClC,UAAMF,aAAa,GAAG,mCAAmB,EACxC,GAAGR,WADqC;AAExCM,MAAAA,WAAW,EAAE;AACZH,QAAAA,IAAI,EAAE,SADM;AAEZO,QAAAA;AAFY;AAF2B,KAAnB,CAAtB;;AAQA,QAAKpB,eAAe,IAAIkB,aAAa,KAAKd,YAA1C,EAAyD;AACxDC,MAAAA,eAAe,CAAEa,aAAF,CAAf;AACApB,MAAAA,QAAQ,CAAEoB,aAAF,CAAR;AACA;AACD;;AAED,WAASG,gBAAT,GAA4B;AAC3B,WAAO,iBACNX,WADM,EAEN,CAAE,aAAF,EAAiB,OAAjB,CAFM,EAGNY,wCAHM,CAAP;AAKA;;AACD,SACC,qDACC,4BAAC,qBAAD;AAAW,IAAA,KAAK,EAAG,cAAI,eAAJ;AAAnB,KACC,4BAAC,wBAAD;AACC,IAAA,QAAQ,EAAGX,YADZ;AAEC,IAAA,OAAO,EAAGH,eAFX;AAGC,IAAA,QAAQ,EAAGS;AAHZ,IADD,CADD,EAQGL,gBAAgB,CAAED,YAAF,CAAhB,IACD,4BAAC,qBAAD;AAAW,IAAA,KAAK,EAAGY,eAAOC;AAA1B,KACC,4BAAC,wBAAD;AACC,IAAA,KAAK,EAAG,cAAI,OAAJ,CADT;AAEC,IAAA,YAAY,EAAG,CAFhB;AAGC,IAAA,YAAY,EAAG,GAHhB;AAIC,IAAA,KAAK,EAAGH,gBAAgB,EAJzB;AAKC,IAAA,QAAQ,EAAGF;AALZ,IADD,CATF,CADD;AAsBA;;eAEctB,oB","sourcesContent":["/**\n * External dependencies\n */\nimport { get, omit } from 'lodash';\n/**\n * WordPress dependencies\n */\nimport { PanelBody, RadioControl, RangeControl } from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport { useState } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport { colorsUtils } from '../mobile/color-settings/utils';\nimport { getGradientAstWithDefault } from './utils';\nimport { serializeGradient } from './serializer';\nimport {\n\tDEFAULT_LINEAR_GRADIENT_ANGLE,\n\tHORIZONTAL_GRADIENT_ORIENTATION,\n} from './constants';\nimport styles from './style.scss';\n\nfunction CustomGradientPicker( { setColor, currentValue, isGradientColor } ) {\n\tconst [ gradientOrientation, setGradientOrientation ] = useState(\n\t\tHORIZONTAL_GRADIENT_ORIENTATION\n\t);\n\n\tconst [ currentColor, setCurrentColor ] = useState( currentValue );\n\n\tconst { getGradientType, gradients, gradientOptions } = colorsUtils;\n\tconst gradientAST = getGradientAstWithDefault( currentColor );\n\tconst gradientType = getGradientType( currentColor );\n\n\tfunction isLinearGradient( type ) {\n\t\treturn type === gradients.linear;\n\t}\n\n\tfunction getGradientColor( type ) {\n\t\tconst orientation = get( gradientAST, [ 'orientation' ] );\n\n\t\tif ( orientation ) {\n\t\t\tsetGradientOrientation( orientation );\n\t\t}\n\n\t\treturn serializeGradient(\n\t\t\tisLinearGradient( type )\n\t\t\t\t? {\n\t\t\t\t\t\t...gradientAST,\n\t\t\t\t\t\t...( gradientAST.orientation\n\t\t\t\t\t\t\t? {}\n\t\t\t\t\t\t\t: {\n\t\t\t\t\t\t\t\t\torientation: gradientOrientation,\n\t\t\t\t\t\t\t } ),\n\t\t\t\t\t\ttype,\n\t\t\t\t }\n\t\t\t\t: {\n\t\t\t\t\t\t...omit( gradientAST, [ 'orientation' ] ),\n\t\t\t\t\t\ttype,\n\t\t\t\t }\n\t\t);\n\t}\n\n\tfunction onGradientTypeChange( type ) {\n\t\tconst gradientColor = getGradientColor( type );\n\t\tsetCurrentColor( gradientColor );\n\t\tsetColor( gradientColor );\n\t}\n\n\tfunction setGradientAngle( value ) {\n\t\tconst gradientColor = serializeGradient( {\n\t\t\t...gradientAST,\n\t\t\torientation: {\n\t\t\t\ttype: 'angular',\n\t\t\t\tvalue,\n\t\t\t},\n\t\t} );\n\n\t\tif ( isGradientColor && gradientColor !== currentColor ) {\n\t\t\tsetCurrentColor( gradientColor );\n\t\t\tsetColor( gradientColor );\n\t\t}\n\t}\n\n\tfunction getGradientAngle() {\n\t\treturn get(\n\t\t\tgradientAST,\n\t\t\t[ 'orientation', 'value' ],\n\t\t\tDEFAULT_LINEAR_GRADIENT_ANGLE\n\t\t);\n\t}\n\treturn (\n\t\t<>\n\t\t\t<PanelBody title={ __( 'Gradient Type' ) }>\n\t\t\t\t<RadioControl\n\t\t\t\t\tselected={ gradientType }\n\t\t\t\t\toptions={ gradientOptions }\n\t\t\t\t\tonChange={ onGradientTypeChange }\n\t\t\t\t/>\n\t\t\t</PanelBody>\n\t\t\t{ isLinearGradient( gradientType ) && (\n\t\t\t\t<PanelBody style={ styles.angleControl }>\n\t\t\t\t\t<RangeControl\n\t\t\t\t\t\tlabel={ __( 'Angle' ) }\n\t\t\t\t\t\tminimumValue={ 0 }\n\t\t\t\t\t\tmaximumValue={ 360 }\n\t\t\t\t\t\tvalue={ getGradientAngle() }\n\t\t\t\t\t\tonChange={ setGradientAngle }\n\t\t\t\t\t/>\n\t\t\t\t</PanelBody>\n\t\t\t) }\n\t\t</>\n\t);\n}\n\nexport default CustomGradientPicker;\n"]}
1
+ {"version":3,"sources":["@wordpress/components/src/custom-gradient-picker/index.native.js"],"names":["CustomGradientPicker","setColor","currentValue","isGradientColor","gradientOrientation","setGradientOrientation","HORIZONTAL_GRADIENT_ORIENTATION","currentColor","setCurrentColor","getGradientType","gradients","gradientOptions","colorsUtils","gradientAST","gradientType","isLinearGradient","type","linear","getGradientColor","orientation","restGradientAST","onGradientTypeChange","gradientColor","setGradientAngle","value","getGradientAngle","DEFAULT_LINEAR_GRADIENT_ANGLE","styles","angleControl"],"mappings":";;;;;;;;;AAKA;;AAFA;;AACA;;AAMA;;AACA;;AACA;;AACA;;AAIA;;AAjBA;AACA;AACA;;AAKA;AACA;AACA;AAUA,SAASA,oBAAT,OAA6E;AAAA,MAA9C;AAAEC,IAAAA,QAAF;AAAYC,IAAAA,YAAZ;AAA0BC,IAAAA;AAA1B,GAA8C;AAC5E,QAAM,CAAEC,mBAAF,EAAuBC,sBAAvB,IAAkD,uBACvDC,0CADuD,CAAxD;AAIA,QAAM,CAAEC,YAAF,EAAgBC,eAAhB,IAAoC,uBAAUN,YAAV,CAA1C;AAEA,QAAM;AAAEO,IAAAA,eAAF;AAAmBC,IAAAA,SAAnB;AAA8BC,IAAAA;AAA9B,MAAkDC,kBAAxD;AACA,QAAMC,WAAW,GAAG,uCAA2BN,YAA3B,CAApB;AACA,QAAMO,YAAY,GAAGL,eAAe,CAAEF,YAAF,CAApC;;AAEA,WAASQ,gBAAT,CAA2BC,IAA3B,EAAkC;AACjC,WAAOA,IAAI,KAAKN,SAAS,CAACO,MAA1B;AACA;;AAED,WAASC,gBAAT,CAA2BF,IAA3B,EAAkC;AACjC,UAAM;AAAEG,MAAAA,WAAF;AAAe,SAAGC;AAAlB,QAAsCP,WAA5C;;AAEA,QAAKM,WAAL,EAAmB;AAClBd,MAAAA,sBAAsB,CAAEc,WAAF,CAAtB;AACA;;AAED,WAAO,mCACNJ,gBAAgB,CAAEC,IAAF,CAAhB,GACG,EACA,GAAGH,WADH;AAEA,UAAKA,WAAW,CAACM,WAAZ,GACF,EADE,GAEF;AACAA,QAAAA,WAAW,EAAEf;AADb,OAFH,CAFA;AAOAY,MAAAA;AAPA,KADH,GAUG,EACA,GAAGI,eADH;AAEAJ,MAAAA;AAFA,KAXG,CAAP;AAgBA;;AAED,WAASK,oBAAT,CAA+BL,IAA/B,EAAsC;AACrC,UAAMM,aAAa,GAAGJ,gBAAgB,CAAEF,IAAF,CAAtC;AACAR,IAAAA,eAAe,CAAEc,aAAF,CAAf;AACArB,IAAAA,QAAQ,CAAEqB,aAAF,CAAR;AACA;;AAED,WAASC,gBAAT,CAA2BC,KAA3B,EAAmC;AAClC,UAAMF,aAAa,GAAG,mCAAmB,EACxC,GAAGT,WADqC;AAExCM,MAAAA,WAAW,EAAE;AACZH,QAAAA,IAAI,EAAE,SADM;AAEZQ,QAAAA;AAFY;AAF2B,KAAnB,CAAtB;;AAQA,QAAKrB,eAAe,IAAImB,aAAa,KAAKf,YAA1C,EAAyD;AACxDC,MAAAA,eAAe,CAAEc,aAAF,CAAf;AACArB,MAAAA,QAAQ,CAAEqB,aAAF,CAAR;AACA;AACD;;AAED,WAASG,gBAAT,GAA4B;AAAA;;AAC3B,oCAAOZ,WAAP,aAAOA,WAAP,iDAAOA,WAAW,CAAEM,WAApB,2DAAO,uBAA0BK,KAAjC,yEAA0CE,wCAA1C;AACA;;AACD,SACC,qDACC,4BAAC,qBAAD;AAAW,IAAA,KAAK,EAAG,cAAI,eAAJ;AAAnB,KACC,4BAAC,wBAAD;AACC,IAAA,QAAQ,EAAGZ,YADZ;AAEC,IAAA,OAAO,EAAGH,eAFX;AAGC,IAAA,QAAQ,EAAGU;AAHZ,IADD,CADD,EAQGN,gBAAgB,CAAED,YAAF,CAAhB,IACD,4BAAC,qBAAD;AAAW,IAAA,KAAK,EAAGa,eAAOC;AAA1B,KACC,4BAAC,wBAAD;AACC,IAAA,KAAK,EAAG,cAAI,OAAJ,CADT;AAEC,IAAA,YAAY,EAAG,CAFhB;AAGC,IAAA,YAAY,EAAG,GAHhB;AAIC,IAAA,KAAK,EAAGH,gBAAgB,EAJzB;AAKC,IAAA,QAAQ,EAAGF;AALZ,IADD,CATF,CADD;AAsBA;;eAEcvB,oB","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { PanelBody, RadioControl, RangeControl } from '@wordpress/components';\nimport { __ } from '@wordpress/i18n';\nimport { useState } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport { colorsUtils } from '../mobile/color-settings/utils';\nimport { getGradientAstWithDefault } from './utils';\nimport { serializeGradient } from './serializer';\nimport {\n\tDEFAULT_LINEAR_GRADIENT_ANGLE,\n\tHORIZONTAL_GRADIENT_ORIENTATION,\n} from './constants';\nimport styles from './style.scss';\n\nfunction CustomGradientPicker( { setColor, currentValue, isGradientColor } ) {\n\tconst [ gradientOrientation, setGradientOrientation ] = useState(\n\t\tHORIZONTAL_GRADIENT_ORIENTATION\n\t);\n\n\tconst [ currentColor, setCurrentColor ] = useState( currentValue );\n\n\tconst { getGradientType, gradients, gradientOptions } = colorsUtils;\n\tconst gradientAST = getGradientAstWithDefault( currentColor );\n\tconst gradientType = getGradientType( currentColor );\n\n\tfunction isLinearGradient( type ) {\n\t\treturn type === gradients.linear;\n\t}\n\n\tfunction getGradientColor( type ) {\n\t\tconst { orientation, ...restGradientAST } = gradientAST;\n\n\t\tif ( orientation ) {\n\t\t\tsetGradientOrientation( orientation );\n\t\t}\n\n\t\treturn serializeGradient(\n\t\t\tisLinearGradient( type )\n\t\t\t\t? {\n\t\t\t\t\t\t...gradientAST,\n\t\t\t\t\t\t...( gradientAST.orientation\n\t\t\t\t\t\t\t? {}\n\t\t\t\t\t\t\t: {\n\t\t\t\t\t\t\t\t\torientation: gradientOrientation,\n\t\t\t\t\t\t\t } ),\n\t\t\t\t\t\ttype,\n\t\t\t\t }\n\t\t\t\t: {\n\t\t\t\t\t\t...restGradientAST,\n\t\t\t\t\t\ttype,\n\t\t\t\t }\n\t\t);\n\t}\n\n\tfunction onGradientTypeChange( type ) {\n\t\tconst gradientColor = getGradientColor( type );\n\t\tsetCurrentColor( gradientColor );\n\t\tsetColor( gradientColor );\n\t}\n\n\tfunction setGradientAngle( value ) {\n\t\tconst gradientColor = serializeGradient( {\n\t\t\t...gradientAST,\n\t\t\torientation: {\n\t\t\t\ttype: 'angular',\n\t\t\t\tvalue,\n\t\t\t},\n\t\t} );\n\n\t\tif ( isGradientColor && gradientColor !== currentColor ) {\n\t\t\tsetCurrentColor( gradientColor );\n\t\t\tsetColor( gradientColor );\n\t\t}\n\t}\n\n\tfunction getGradientAngle() {\n\t\treturn gradientAST?.orientation?.value ?? DEFAULT_LINEAR_GRADIENT_ANGLE;\n\t}\n\treturn (\n\t\t<>\n\t\t\t<PanelBody title={ __( 'Gradient Type' ) }>\n\t\t\t\t<RadioControl\n\t\t\t\t\tselected={ gradientType }\n\t\t\t\t\toptions={ gradientOptions }\n\t\t\t\t\tonChange={ onGradientTypeChange }\n\t\t\t\t/>\n\t\t\t</PanelBody>\n\t\t\t{ isLinearGradient( gradientType ) && (\n\t\t\t\t<PanelBody style={ styles.angleControl }>\n\t\t\t\t\t<RangeControl\n\t\t\t\t\t\tlabel={ __( 'Angle' ) }\n\t\t\t\t\t\tminimumValue={ 0 }\n\t\t\t\t\t\tmaximumValue={ 360 }\n\t\t\t\t\t\tvalue={ getGradientAngle() }\n\t\t\t\t\t\tonChange={ setGradientAngle }\n\t\t\t\t\t/>\n\t\t\t\t</PanelBody>\n\t\t\t) }\n\t\t</>\n\t);\n}\n\nexport default CustomGradientPicker;\n"]}
@@ -9,11 +9,6 @@ exports.serializeGradientColorStop = serializeGradientColorStop;
9
9
  exports.serializeGradientOrientation = serializeGradientOrientation;
10
10
  exports.serializeGradientPosition = serializeGradientPosition;
11
11
 
12
- var _lodash = require("lodash");
13
-
14
- /**
15
- * External dependencies
16
- */
17
12
  function serializeGradientColor(_ref) {
18
13
  let {
19
14
  type,
@@ -71,8 +66,10 @@ function serializeGradient(_ref3) {
71
66
  } = _ref3;
72
67
  const serializedOrientation = serializeGradientOrientation(orientation);
73
68
  const serializedColorStops = colorStops.sort((colorStop1, colorStop2) => {
74
- return (0, _lodash.get)(colorStop1, ['length', 'value'], 0) - (0, _lodash.get)(colorStop2, ['length', 'value'], 0);
69
+ var _colorStop1$length$va, _colorStop1$length, _colorStop2$length$va, _colorStop2$length;
70
+
71
+ return ((_colorStop1$length$va = colorStop1 === null || colorStop1 === void 0 ? void 0 : (_colorStop1$length = colorStop1.length) === null || _colorStop1$length === void 0 ? void 0 : _colorStop1$length.value) !== null && _colorStop1$length$va !== void 0 ? _colorStop1$length$va : 0) - ((_colorStop2$length$va = colorStop2 === null || colorStop2 === void 0 ? void 0 : (_colorStop2$length = colorStop2.length) === null || _colorStop2$length === void 0 ? void 0 : _colorStop2$length.value) !== null && _colorStop2$length$va !== void 0 ? _colorStop2$length$va : 0);
75
72
  }).map(serializeGradientColorStop);
76
- return `${type}(${(0, _lodash.compact)([serializedOrientation, ...serializedColorStops]).join(',')})`;
73
+ return `${type}(${[serializedOrientation, ...serializedColorStops].filter(Boolean).join(',')})`;
77
74
  }
78
75
  //# sourceMappingURL=serializer.js.map
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/components/src/custom-gradient-picker/serializer.js"],"names":["serializeGradientColor","type","value","join","serializeGradientPosition","position","serializeGradientColorStop","length","serializeGradientOrientation","orientation","serializeGradient","colorStops","serializedOrientation","serializedColorStops","sort","colorStop1","colorStop2","map"],"mappings":";;;;;;;;;;;AAGA;;AAHA;AACA;AACA;AAGO,SAASA,sBAAT,OAAmD;AAAA,MAAlB;AAAEC,IAAAA,IAAF;AAAQC,IAAAA;AAAR,GAAkB;;AACzD,MAAKD,IAAI,KAAK,SAAd,EAA0B;AACzB,WAAOC,KAAP;AACA;;AACD,MAAKD,IAAI,KAAK,KAAd,EAAsB;AACrB,WAAQ,IAAIC,KAAO,EAAnB;AACA;;AACD,SAAQ,GAAGD,IAAM,IAAIC,KAAK,CAACC,IAAN,CAAY,GAAZ,CAAmB,GAAxC;AACA;;AAEM,SAASC,yBAAT,CAAoCC,QAApC,EAA+C;AACrD,MAAK,CAAEA,QAAP,EAAkB;AACjB,WAAO,EAAP;AACA;;AACD,QAAM;AAAEH,IAAAA,KAAF;AAASD,IAAAA;AAAT,MAAkBI,QAAxB;AACA,SAAQ,GAAGH,KAAO,GAAGD,IAAM,EAA3B;AACA;;AAEM,SAASK,0BAAT,QAA+D;AAAA,MAA1B;AAAEL,IAAAA,IAAF;AAAQC,IAAAA,KAAR;AAAeK,IAAAA;AAAf,GAA0B;AACrE,SAAQ,GAAGP,sBAAsB,CAAE;AAClCC,IAAAA,IADkC;AAElCC,IAAAA;AAFkC,GAAF,CAG5B,IAAIE,yBAAyB,CAAEG,MAAF,CAAY,EAH9C;AAIA;;AAEM,SAASC,4BAAT,CAAuCC,WAAvC,EAAqD;AAC3D,MAAK,CAAEA,WAAF,IAAiBA,WAAW,CAACR,IAAZ,KAAqB,SAA3C,EAAuD;AACtD;AACA;;AACD,SAAQ,GAAGQ,WAAW,CAACP,KAAO,KAA9B;AACA;;AAEM,SAASQ,iBAAT,QAAgE;AAAA,MAApC;AAAET,IAAAA,IAAF;AAAQQ,IAAAA,WAAR;AAAqBE,IAAAA;AAArB,GAAoC;AACtE,QAAMC,qBAAqB,GAAGJ,4BAA4B,CAAEC,WAAF,CAA1D;AACA,QAAMI,oBAAoB,GAAGF,UAAU,CACrCG,IAD2B,CACrB,CAAEC,UAAF,EAAcC,UAAd,KAA8B;AACpC,WACC,iBAAKD,UAAL,EAAiB,CAAE,QAAF,EAAY,OAAZ,CAAjB,EAAwC,CAAxC,IACA,iBAAKC,UAAL,EAAiB,CAAE,QAAF,EAAY,OAAZ,CAAjB,EAAwC,CAAxC,CAFD;AAIA,GAN2B,EAO3BC,GAP2B,CAOtBX,0BAPsB,CAA7B;AAQA,SAAQ,GAAGL,IAAM,IAAI,qBAAS,CAC7BW,qBAD6B,EAE7B,GAAGC,oBAF0B,CAAT,EAGjBV,IAHiB,CAGX,GAHW,CAGJ,GAHjB;AAIA","sourcesContent":["/**\n * External dependencies\n */\nimport { compact, get } from 'lodash';\n\nexport function serializeGradientColor( { type, value } ) {\n\tif ( type === 'literal' ) {\n\t\treturn value;\n\t}\n\tif ( type === 'hex' ) {\n\t\treturn `#${ value }`;\n\t}\n\treturn `${ type }(${ value.join( ',' ) })`;\n}\n\nexport function serializeGradientPosition( position ) {\n\tif ( ! position ) {\n\t\treturn '';\n\t}\n\tconst { value, type } = position;\n\treturn `${ value }${ type }`;\n}\n\nexport function serializeGradientColorStop( { type, value, length } ) {\n\treturn `${ serializeGradientColor( {\n\t\ttype,\n\t\tvalue,\n\t} ) } ${ serializeGradientPosition( length ) }`;\n}\n\nexport function serializeGradientOrientation( orientation ) {\n\tif ( ! orientation || orientation.type !== 'angular' ) {\n\t\treturn;\n\t}\n\treturn `${ orientation.value }deg`;\n}\n\nexport function serializeGradient( { type, orientation, colorStops } ) {\n\tconst serializedOrientation = serializeGradientOrientation( orientation );\n\tconst serializedColorStops = colorStops\n\t\t.sort( ( colorStop1, colorStop2 ) => {\n\t\t\treturn (\n\t\t\t\tget( colorStop1, [ 'length', 'value' ], 0 ) -\n\t\t\t\tget( colorStop2, [ 'length', 'value' ], 0 )\n\t\t\t);\n\t\t} )\n\t\t.map( serializeGradientColorStop );\n\treturn `${ type }(${ compact( [\n\t\tserializedOrientation,\n\t\t...serializedColorStops,\n\t] ).join( ',' ) })`;\n}\n"]}
1
+ {"version":3,"sources":["@wordpress/components/src/custom-gradient-picker/serializer.js"],"names":["serializeGradientColor","type","value","join","serializeGradientPosition","position","serializeGradientColorStop","length","serializeGradientOrientation","orientation","serializeGradient","colorStops","serializedOrientation","serializedColorStops","sort","colorStop1","colorStop2","map","filter","Boolean"],"mappings":";;;;;;;;;;;AAAO,SAASA,sBAAT,OAAmD;AAAA,MAAlB;AAAEC,IAAAA,IAAF;AAAQC,IAAAA;AAAR,GAAkB;;AACzD,MAAKD,IAAI,KAAK,SAAd,EAA0B;AACzB,WAAOC,KAAP;AACA;;AACD,MAAKD,IAAI,KAAK,KAAd,EAAsB;AACrB,WAAQ,IAAIC,KAAO,EAAnB;AACA;;AACD,SAAQ,GAAGD,IAAM,IAAIC,KAAK,CAACC,IAAN,CAAY,GAAZ,CAAmB,GAAxC;AACA;;AAEM,SAASC,yBAAT,CAAoCC,QAApC,EAA+C;AACrD,MAAK,CAAEA,QAAP,EAAkB;AACjB,WAAO,EAAP;AACA;;AACD,QAAM;AAAEH,IAAAA,KAAF;AAASD,IAAAA;AAAT,MAAkBI,QAAxB;AACA,SAAQ,GAAGH,KAAO,GAAGD,IAAM,EAA3B;AACA;;AAEM,SAASK,0BAAT,QAA+D;AAAA,MAA1B;AAAEL,IAAAA,IAAF;AAAQC,IAAAA,KAAR;AAAeK,IAAAA;AAAf,GAA0B;AACrE,SAAQ,GAAGP,sBAAsB,CAAE;AAClCC,IAAAA,IADkC;AAElCC,IAAAA;AAFkC,GAAF,CAG5B,IAAIE,yBAAyB,CAAEG,MAAF,CAAY,EAH9C;AAIA;;AAEM,SAASC,4BAAT,CAAuCC,WAAvC,EAAqD;AAC3D,MAAK,CAAEA,WAAF,IAAiBA,WAAW,CAACR,IAAZ,KAAqB,SAA3C,EAAuD;AACtD;AACA;;AACD,SAAQ,GAAGQ,WAAW,CAACP,KAAO,KAA9B;AACA;;AAEM,SAASQ,iBAAT,QAAgE;AAAA,MAApC;AAAET,IAAAA,IAAF;AAAQQ,IAAAA,WAAR;AAAqBE,IAAAA;AAArB,GAAoC;AACtE,QAAMC,qBAAqB,GAAGJ,4BAA4B,CAAEC,WAAF,CAA1D;AACA,QAAMI,oBAAoB,GAAGF,UAAU,CACrCG,IAD2B,CACrB,CAAEC,UAAF,EAAcC,UAAd,KAA8B;AAAA;;AACpC,WACC,0BAAED,UAAF,aAAEA,UAAF,6CAAEA,UAAU,CAAER,MAAd,uDAAE,mBAAoBL,KAAtB,yEAA+B,CAA/B,8BACEc,UADF,aACEA,UADF,6CACEA,UAAU,CAAET,MADd,uDACE,mBAAoBL,KADtB,yEAC+B,CAD/B,CADD;AAIA,GAN2B,EAO3Be,GAP2B,CAOtBX,0BAPsB,CAA7B;AAQA,SAAQ,GAAGL,IAAM,IAAI,CAAEW,qBAAF,EAAyB,GAAGC,oBAA5B,EACnBK,MADmB,CACXC,OADW,EAEnBhB,IAFmB,CAEb,GAFa,CAEN,GAFf;AAGA","sourcesContent":["export function serializeGradientColor( { type, value } ) {\n\tif ( type === 'literal' ) {\n\t\treturn value;\n\t}\n\tif ( type === 'hex' ) {\n\t\treturn `#${ value }`;\n\t}\n\treturn `${ type }(${ value.join( ',' ) })`;\n}\n\nexport function serializeGradientPosition( position ) {\n\tif ( ! position ) {\n\t\treturn '';\n\t}\n\tconst { value, type } = position;\n\treturn `${ value }${ type }`;\n}\n\nexport function serializeGradientColorStop( { type, value, length } ) {\n\treturn `${ serializeGradientColor( {\n\t\ttype,\n\t\tvalue,\n\t} ) } ${ serializeGradientPosition( length ) }`;\n}\n\nexport function serializeGradientOrientation( orientation ) {\n\tif ( ! orientation || orientation.type !== 'angular' ) {\n\t\treturn;\n\t}\n\treturn `${ orientation.value }deg`;\n}\n\nexport function serializeGradient( { type, orientation, colorStops } ) {\n\tconst serializedOrientation = serializeGradientOrientation( orientation );\n\tconst serializedColorStops = colorStops\n\t\t.sort( ( colorStop1, colorStop2 ) => {\n\t\t\treturn (\n\t\t\t\t( colorStop1?.length?.value ?? 0 ) -\n\t\t\t\t( colorStop2?.length?.value ?? 0 )\n\t\t\t);\n\t\t} )\n\t\t.map( serializeGradientColorStop );\n\treturn `${ type }(${ [ serializedOrientation, ...serializedColorStops ]\n\t\t.filter( Boolean )\n\t\t.join( ',' ) })`;\n}\n"]}
@@ -117,7 +117,8 @@ function DatePicker(_ref2) {
117
117
  onChange,
118
118
  events,
119
119
  isInvalidDate,
120
- onMonthPreviewed
120
+ onMonthPreviewed,
121
+ startOfWeek = 0
121
122
  } = _ref2;
122
123
  const nodeRef = (0, _element.useRef)(null);
123
124
 
@@ -207,6 +208,7 @@ function DatePicker(_ref2) {
207
208
  isOutsideRange: date => {
208
209
  return !!isInvalidDate && isInvalidDate(date.toDate());
209
210
  },
211
+ firstDayOfWeek: startOfWeek,
210
212
  onPrevMonthClick: onMonthPreviewedHandler,
211
213
  onNextMonthClick: onMonthPreviewedHandler,
212
214
  renderDayContents: day => (0, _element.createElement)(DatePickerDay, {
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/components/src/date-time/date/index.tsx"],"names":["TIMEZONELESS_FORMAT","ARIAL_LABEL_TIME_FORMAT","noop","DatePickerDay","day","events","ref","current","parentNode","Element","dayAriaLabel","format","length","setAttribute","dayWithEventsDescription","DatePicker","currentDate","onChange","isInvalidDate","onMonthPreviewed","nodeRef","onMonthPreviewedHandler","newMonthDate","toISOString","keepFocusInside","ownerDocument","activeElement","contains","focusRegion","querySelector","HTMLElement","focus","onChangeMoment","newDate","momentDate","momentTime","hours","minutes","seconds","set","getEventsPerDay","filter","eventDay","isSame","date","toDate","month","ariaLabel","props","arrowLeft","arrowRight"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport moment from 'moment';\nimport type { Moment } from 'moment';\n// Needed to initialise the default datepicker styles.\n// See: https://github.com/airbnb/react-dates#initialize\nimport 'react-dates/initialize';\n// `react-dates` doesn't tree-shake correctly, so we import from the individual\n// component here.\nimport DayPickerSingleDateController from 'react-dates/lib/components/DayPickerSingleDateController';\n\n/**\n * WordPress dependencies\n */\nimport { useEffect, useRef } from '@wordpress/element';\nimport { isRTL, _n, sprintf } from '@wordpress/i18n';\nimport { arrowLeft, arrowRight } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport { getMomentDate } from './utils';\nimport type { DatePickerDayProps, DatePickerProps } from '../types';\nimport { Day, NavPrevButton, NavNextButton } from './styles';\n\nconst TIMEZONELESS_FORMAT = 'YYYY-MM-DDTHH:mm:ss';\nconst ARIAL_LABEL_TIME_FORMAT = 'dddd, LL';\nconst noop = () => {};\n\nfunction DatePickerDay( { day, events = [] }: DatePickerDayProps ) {\n\tconst ref = useRef< HTMLDivElement >( null );\n\n\t/*\n\t * a11y hack to make the `There is/are n events` string\n\t * available speaking for readers,\n\t * re-defining the aria-label attribute.\n\t * This attribute is handled by the react-dates component.\n\t */\n\tuseEffect( () => {\n\t\t// Bail when no parent node.\n\t\tif ( ! ( ref?.current?.parentNode instanceof Element ) ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst { parentNode } = ref.current;\n\t\tconst dayAriaLabel = moment( day ).format( ARIAL_LABEL_TIME_FORMAT );\n\n\t\tif ( ! events.length ) {\n\t\t\t// Set aria-label without event description.\n\t\t\tparentNode.setAttribute( 'aria-label', dayAriaLabel );\n\t\t\treturn;\n\t\t}\n\n\t\tconst dayWithEventsDescription = sprintf(\n\t\t\t// translators: 1: Calendar day format, 2: Calendar event number.\n\t\t\t_n(\n\t\t\t\t'%1$s. There is %2$d event.',\n\t\t\t\t'%1$s. There are %2$d events.',\n\t\t\t\tevents.length\n\t\t\t),\n\t\t\tdayAriaLabel,\n\t\t\tevents.length\n\t\t);\n\n\t\tparentNode.setAttribute( 'aria-label', dayWithEventsDescription );\n\t}, [ day, events.length ] );\n\n\treturn (\n\t\t<Day\n\t\t\tref={ ref }\n\t\t\tclassName=\"components-datetime__date__day\" // Unused, for backwards compatibility.\n\t\t\thasEvents={ !! events?.length }\n\t\t\talignment=\"center\"\n\t\t>\n\t\t\t{ day.format( 'D' ) }\n\t\t</Day>\n\t);\n}\n\n/**\n * DatePicker is a React component that renders a calendar for date selection.\n *\n * ```jsx\n * import { DatePicker } from '@wordpress/components';\n * import { useState } from '@wordpress/element';\n *\n * const MyDatePicker = () => {\n * const [ date, setDate ] = useState( new Date() );\n *\n * return (\n * <DatePicker\n * currentDate={ date }\n * onChange={ ( newDate ) => setDate( newDate ) }\n * />\n * );\n * };\n * ```\n */\nexport function DatePicker( {\n\tcurrentDate,\n\tonChange,\n\tevents,\n\tisInvalidDate,\n\tonMonthPreviewed,\n}: DatePickerProps ) {\n\tconst nodeRef = useRef< HTMLDivElement >( null );\n\n\tconst onMonthPreviewedHandler = ( newMonthDate: Moment ) => {\n\t\tonMonthPreviewed?.( newMonthDate.toISOString() );\n\t\tkeepFocusInside();\n\t};\n\n\t/*\n\t * Todo: We should remove this function ASAP.\n\t * It is kept because focus is lost when we click on the previous and next month buttons.\n\t * This focus loss closes the date picker popover.\n\t * Ideally we should add an upstream commit on react-dates to fix this issue.\n\t */\n\tconst keepFocusInside = () => {\n\t\tif ( ! nodeRef.current ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst { ownerDocument } = nodeRef.current;\n\t\tconst { activeElement } = ownerDocument;\n\n\t\t// If focus was lost.\n\t\tif (\n\t\t\t! activeElement ||\n\t\t\t! nodeRef.current.contains( ownerDocument.activeElement )\n\t\t) {\n\t\t\t// Retrieve the focus region div.\n\t\t\tconst focusRegion = nodeRef.current.querySelector(\n\t\t\t\t'.DayPicker_focusRegion'\n\t\t\t);\n\t\t\tif ( ! ( focusRegion instanceof HTMLElement ) ) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\t// Keep the focus on focus region.\n\t\t\tfocusRegion.focus();\n\t\t}\n\t};\n\n\tconst onChangeMoment = ( newDate: Moment | null ) => {\n\t\tif ( ! newDate ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// If currentDate is null, use now as momentTime to designate hours, minutes, seconds.\n\t\tconst momentDate = currentDate ? moment( currentDate ) : moment();\n\t\tconst momentTime = {\n\t\t\thours: momentDate.hours(),\n\t\t\tminutes: momentDate.minutes(),\n\t\t\tseconds: 0,\n\t\t};\n\n\t\tonChange?.( newDate.set( momentTime ).format( TIMEZONELESS_FORMAT ) );\n\n\t\t// Keep focus on the date picker.\n\t\tkeepFocusInside();\n\t};\n\n\tconst getEventsPerDay = ( day: Moment ) => {\n\t\tif ( ! events?.length ) {\n\t\t\treturn [];\n\t\t}\n\n\t\treturn events.filter( ( eventDay ) =>\n\t\t\tday.isSame( eventDay.date, 'day' )\n\t\t);\n\t};\n\n\tconst momentDate = getMomentDate( currentDate );\n\n\treturn (\n\t\t<div className=\"components-datetime__date\" ref={ nodeRef }>\n\t\t\t<DayPickerSingleDateController\n\t\t\t\tdate={ momentDate }\n\t\t\t\tinitialVisibleMonth={ null }\n\t\t\t\tdaySize={ 30 }\n\t\t\t\thorizontalMonthPadding={ 0 }\n\t\t\t\tfocused\n\t\t\t\thideKeyboardShortcutsPanel\n\t\t\t\t// This is a hack to force the calendar to update on month or year change\n\t\t\t\t// https://github.com/airbnb/react-dates/issues/240#issuecomment-361776665\n\t\t\t\tkey={ `datepicker-controller-${\n\t\t\t\t\tmomentDate ? momentDate.format( 'MM-YYYY' ) : 'null'\n\t\t\t\t}` }\n\t\t\t\tnoBorder\n\t\t\t\tnumberOfMonths={ 1 }\n\t\t\t\tonDateChange={ onChangeMoment }\n\t\t\t\ttransitionDuration={ 0 }\n\t\t\t\tweekDayFormat=\"ddd\"\n\t\t\t\tdayAriaLabelFormat={ ARIAL_LABEL_TIME_FORMAT }\n\t\t\t\tisRTL={ isRTL() }\n\t\t\t\tisOutsideRange={ ( date ) => {\n\t\t\t\t\treturn !! isInvalidDate && isInvalidDate( date.toDate() );\n\t\t\t\t} }\n\t\t\t\tonPrevMonthClick={ onMonthPreviewedHandler }\n\t\t\t\tonNextMonthClick={ onMonthPreviewedHandler }\n\t\t\t\trenderDayContents={ ( day ) => (\n\t\t\t\t\t<DatePickerDay\n\t\t\t\t\t\tday={ day }\n\t\t\t\t\t\tevents={ getEventsPerDay( day ) }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t\trenderMonthElement={ ( { month } ) => (\n\t\t\t\t\t<>\n\t\t\t\t\t\t<strong>{ month.format( 'MMMM' ) }</strong>{ ' ' }\n\t\t\t\t\t\t{ month.format( 'YYYY' ) }\n\t\t\t\t\t</>\n\t\t\t\t) }\n\t\t\t\trenderNavPrevButton={ ( { ariaLabel, ...props } ) => (\n\t\t\t\t\t<NavPrevButton\n\t\t\t\t\t\ticon={ arrowLeft }\n\t\t\t\t\t\tvariant=\"tertiary\"\n\t\t\t\t\t\taria-label={ ariaLabel }\n\t\t\t\t\t\t{ ...props }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t\trenderNavNextButton={ ( { ariaLabel, ...props } ) => (\n\t\t\t\t\t<NavNextButton\n\t\t\t\t\t\ticon={ arrowRight }\n\t\t\t\t\t\tvariant=\"tertiary\"\n\t\t\t\t\t\taria-label={ ariaLabel }\n\t\t\t\t\t\t{ ...props }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t\tonFocusChange={ noop }\n\t\t\t/>\n\t\t</div>\n\t);\n}\n\nexport default DatePicker;\n"]}
1
+ {"version":3,"sources":["@wordpress/components/src/date-time/date/index.tsx"],"names":["TIMEZONELESS_FORMAT","ARIAL_LABEL_TIME_FORMAT","noop","DatePickerDay","day","events","ref","current","parentNode","Element","dayAriaLabel","format","length","setAttribute","dayWithEventsDescription","DatePicker","currentDate","onChange","isInvalidDate","onMonthPreviewed","startOfWeek","nodeRef","onMonthPreviewedHandler","newMonthDate","toISOString","keepFocusInside","ownerDocument","activeElement","contains","focusRegion","querySelector","HTMLElement","focus","onChangeMoment","newDate","momentDate","momentTime","hours","minutes","seconds","set","getEventsPerDay","filter","eventDay","isSame","date","toDate","month","ariaLabel","props","arrowLeft","arrowRight"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport moment from 'moment';\nimport type { Moment } from 'moment';\n// Needed to initialise the default datepicker styles.\n// See: https://github.com/airbnb/react-dates#initialize\nimport 'react-dates/initialize';\n// `react-dates` doesn't tree-shake correctly, so we import from the individual\n// component here.\nimport DayPickerSingleDateController from 'react-dates/lib/components/DayPickerSingleDateController';\n\n/**\n * WordPress dependencies\n */\nimport { useEffect, useRef } from '@wordpress/element';\nimport { isRTL, _n, sprintf } from '@wordpress/i18n';\nimport { arrowLeft, arrowRight } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport { getMomentDate } from './utils';\nimport type { DatePickerDayProps, DatePickerProps } from '../types';\nimport { Day, NavPrevButton, NavNextButton } from './styles';\n\nconst TIMEZONELESS_FORMAT = 'YYYY-MM-DDTHH:mm:ss';\nconst ARIAL_LABEL_TIME_FORMAT = 'dddd, LL';\nconst noop = () => {};\n\nfunction DatePickerDay( { day, events = [] }: DatePickerDayProps ) {\n\tconst ref = useRef< HTMLDivElement >( null );\n\n\t/*\n\t * a11y hack to make the `There is/are n events` string\n\t * available speaking for readers,\n\t * re-defining the aria-label attribute.\n\t * This attribute is handled by the react-dates component.\n\t */\n\tuseEffect( () => {\n\t\t// Bail when no parent node.\n\t\tif ( ! ( ref?.current?.parentNode instanceof Element ) ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst { parentNode } = ref.current;\n\t\tconst dayAriaLabel = moment( day ).format( ARIAL_LABEL_TIME_FORMAT );\n\n\t\tif ( ! events.length ) {\n\t\t\t// Set aria-label without event description.\n\t\t\tparentNode.setAttribute( 'aria-label', dayAriaLabel );\n\t\t\treturn;\n\t\t}\n\n\t\tconst dayWithEventsDescription = sprintf(\n\t\t\t// translators: 1: Calendar day format, 2: Calendar event number.\n\t\t\t_n(\n\t\t\t\t'%1$s. There is %2$d event.',\n\t\t\t\t'%1$s. There are %2$d events.',\n\t\t\t\tevents.length\n\t\t\t),\n\t\t\tdayAriaLabel,\n\t\t\tevents.length\n\t\t);\n\n\t\tparentNode.setAttribute( 'aria-label', dayWithEventsDescription );\n\t}, [ day, events.length ] );\n\n\treturn (\n\t\t<Day\n\t\t\tref={ ref }\n\t\t\tclassName=\"components-datetime__date__day\" // Unused, for backwards compatibility.\n\t\t\thasEvents={ !! events?.length }\n\t\t\talignment=\"center\"\n\t\t>\n\t\t\t{ day.format( 'D' ) }\n\t\t</Day>\n\t);\n}\n\n/**\n * DatePicker is a React component that renders a calendar for date selection.\n *\n * ```jsx\n * import { DatePicker } from '@wordpress/components';\n * import { useState } from '@wordpress/element';\n *\n * const MyDatePicker = () => {\n * const [ date, setDate ] = useState( new Date() );\n *\n * return (\n * <DatePicker\n * currentDate={ date }\n * onChange={ ( newDate ) => setDate( newDate ) }\n * />\n * );\n * };\n * ```\n */\nexport function DatePicker( {\n\tcurrentDate,\n\tonChange,\n\tevents,\n\tisInvalidDate,\n\tonMonthPreviewed,\n\tstartOfWeek = 0,\n}: DatePickerProps ) {\n\tconst nodeRef = useRef< HTMLDivElement >( null );\n\n\tconst onMonthPreviewedHandler = ( newMonthDate: Moment ) => {\n\t\tonMonthPreviewed?.( newMonthDate.toISOString() );\n\t\tkeepFocusInside();\n\t};\n\n\t/*\n\t * Todo: We should remove this function ASAP.\n\t * It is kept because focus is lost when we click on the previous and next month buttons.\n\t * This focus loss closes the date picker popover.\n\t * Ideally we should add an upstream commit on react-dates to fix this issue.\n\t */\n\tconst keepFocusInside = () => {\n\t\tif ( ! nodeRef.current ) {\n\t\t\treturn;\n\t\t}\n\n\t\tconst { ownerDocument } = nodeRef.current;\n\t\tconst { activeElement } = ownerDocument;\n\n\t\t// If focus was lost.\n\t\tif (\n\t\t\t! activeElement ||\n\t\t\t! nodeRef.current.contains( ownerDocument.activeElement )\n\t\t) {\n\t\t\t// Retrieve the focus region div.\n\t\t\tconst focusRegion = nodeRef.current.querySelector(\n\t\t\t\t'.DayPicker_focusRegion'\n\t\t\t);\n\t\t\tif ( ! ( focusRegion instanceof HTMLElement ) ) {\n\t\t\t\treturn;\n\t\t\t}\n\t\t\t// Keep the focus on focus region.\n\t\t\tfocusRegion.focus();\n\t\t}\n\t};\n\n\tconst onChangeMoment = ( newDate: Moment | null ) => {\n\t\tif ( ! newDate ) {\n\t\t\treturn;\n\t\t}\n\n\t\t// If currentDate is null, use now as momentTime to designate hours, minutes, seconds.\n\t\tconst momentDate = currentDate ? moment( currentDate ) : moment();\n\t\tconst momentTime = {\n\t\t\thours: momentDate.hours(),\n\t\t\tminutes: momentDate.minutes(),\n\t\t\tseconds: 0,\n\t\t};\n\n\t\tonChange?.( newDate.set( momentTime ).format( TIMEZONELESS_FORMAT ) );\n\n\t\t// Keep focus on the date picker.\n\t\tkeepFocusInside();\n\t};\n\n\tconst getEventsPerDay = ( day: Moment ) => {\n\t\tif ( ! events?.length ) {\n\t\t\treturn [];\n\t\t}\n\n\t\treturn events.filter( ( eventDay ) =>\n\t\t\tday.isSame( eventDay.date, 'day' )\n\t\t);\n\t};\n\n\tconst momentDate = getMomentDate( currentDate );\n\n\treturn (\n\t\t<div className=\"components-datetime__date\" ref={ nodeRef }>\n\t\t\t<DayPickerSingleDateController\n\t\t\t\tdate={ momentDate }\n\t\t\t\tinitialVisibleMonth={ null }\n\t\t\t\tdaySize={ 30 }\n\t\t\t\thorizontalMonthPadding={ 0 }\n\t\t\t\tfocused\n\t\t\t\thideKeyboardShortcutsPanel\n\t\t\t\t// This is a hack to force the calendar to update on month or year change\n\t\t\t\t// https://github.com/airbnb/react-dates/issues/240#issuecomment-361776665\n\t\t\t\tkey={ `datepicker-controller-${\n\t\t\t\t\tmomentDate ? momentDate.format( 'MM-YYYY' ) : 'null'\n\t\t\t\t}` }\n\t\t\t\tnoBorder\n\t\t\t\tnumberOfMonths={ 1 }\n\t\t\t\tonDateChange={ onChangeMoment }\n\t\t\t\ttransitionDuration={ 0 }\n\t\t\t\tweekDayFormat=\"ddd\"\n\t\t\t\tdayAriaLabelFormat={ ARIAL_LABEL_TIME_FORMAT }\n\t\t\t\tisRTL={ isRTL() }\n\t\t\t\tisOutsideRange={ ( date ) => {\n\t\t\t\t\treturn !! isInvalidDate && isInvalidDate( date.toDate() );\n\t\t\t\t} }\n\t\t\t\tfirstDayOfWeek={ startOfWeek }\n\t\t\t\tonPrevMonthClick={ onMonthPreviewedHandler }\n\t\t\t\tonNextMonthClick={ onMonthPreviewedHandler }\n\t\t\t\trenderDayContents={ ( day ) => (\n\t\t\t\t\t<DatePickerDay\n\t\t\t\t\t\tday={ day }\n\t\t\t\t\t\tevents={ getEventsPerDay( day ) }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t\trenderMonthElement={ ( { month } ) => (\n\t\t\t\t\t<>\n\t\t\t\t\t\t<strong>{ month.format( 'MMMM' ) }</strong>{ ' ' }\n\t\t\t\t\t\t{ month.format( 'YYYY' ) }\n\t\t\t\t\t</>\n\t\t\t\t) }\n\t\t\t\trenderNavPrevButton={ ( { ariaLabel, ...props } ) => (\n\t\t\t\t\t<NavPrevButton\n\t\t\t\t\t\ticon={ arrowLeft }\n\t\t\t\t\t\tvariant=\"tertiary\"\n\t\t\t\t\t\taria-label={ ariaLabel }\n\t\t\t\t\t\t{ ...props }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t\trenderNavNextButton={ ( { ariaLabel, ...props } ) => (\n\t\t\t\t\t<NavNextButton\n\t\t\t\t\t\ticon={ arrowRight }\n\t\t\t\t\t\tvariant=\"tertiary\"\n\t\t\t\t\t\taria-label={ ariaLabel }\n\t\t\t\t\t\t{ ...props }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t\tonFocusChange={ noop }\n\t\t\t/>\n\t\t</div>\n\t);\n}\n\nexport default DatePicker;\n"]}
@@ -61,6 +61,7 @@ function UnforwardedDateTimePicker(_ref, ref) {
61
61
  onMonthPreviewed = noop,
62
62
  onChange,
63
63
  events,
64
+ startOfWeek,
64
65
  __nextRemoveHelpButton = false,
65
66
  __nextRemoveResetButton = false
66
67
  } = _ref;
@@ -101,7 +102,8 @@ function UnforwardedDateTimePicker(_ref, ref) {
101
102
  onChange: onChange,
102
103
  isInvalidDate: isInvalidDate,
103
104
  events: events,
104
- onMonthPreviewed: onMonthPreviewed
105
+ onMonthPreviewed: onMonthPreviewed,
106
+ startOfWeek: startOfWeek
105
107
  })), calendarHelpIsVisible && (0, _element.createElement)(_styles.CalendarHelp, {
106
108
  className: "components-datetime__calendar-help" // Unused, for backwards compatibility.
107
109
 
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/components/src/date-time/date-time/index.tsx"],"names":["noop","UnforwardedDateTimePicker","ref","currentDate","is12Hour","isInvalidDate","onMonthPreviewed","onChange","events","__nextRemoveHelpButton","__nextRemoveResetButton","since","version","hint","calendarHelpIsVisible","setCalendarHelpIsVisible","onClickDescriptionToggle","DateTimePicker"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport type { ForwardedRef } from 'react';\n\n/**\n * WordPress dependencies\n */\nimport { useState, forwardRef } from '@wordpress/element';\nimport { __, _x } from '@wordpress/i18n';\nimport deprecated from '@wordpress/deprecated';\n\n/**\n * Internal dependencies\n */\nimport Button from '../../button';\nimport { default as DatePicker } from '../date';\nimport { default as TimePicker } from '../time';\nimport type { DateTimePickerProps } from '../types';\nimport { CalendarHelp } from './styles';\nimport { HStack } from '../../h-stack';\nimport { Heading } from '../../heading';\nimport { Spacer } from '../../spacer';\n\nexport { DatePicker, TimePicker };\n\nconst noop = () => {};\n\nfunction UnforwardedDateTimePicker(\n\t{\n\t\tcurrentDate,\n\t\tis12Hour,\n\t\tisInvalidDate,\n\t\tonMonthPreviewed = noop,\n\t\tonChange,\n\t\tevents,\n\t\t__nextRemoveHelpButton = false,\n\t\t__nextRemoveResetButton = false,\n\t}: DateTimePickerProps,\n\tref: ForwardedRef< any >\n) {\n\tif ( ! __nextRemoveHelpButton ) {\n\t\tdeprecated( 'Help button in wp.components.DateTimePicker', {\n\t\t\tsince: '13.4',\n\t\t\tversion: '14.6', // Six months of plugin releases.\n\t\t\thint: 'Set the `__nextRemoveHelpButton` prop to `true` to remove this warning and opt in to the new behaviour, which will become the default in a future version.',\n\t\t} );\n\t}\n\tif ( ! __nextRemoveResetButton ) {\n\t\tdeprecated( 'Reset button in wp.components.DateTimePicker', {\n\t\t\tsince: '13.4',\n\t\t\tversion: '14.6', // Six months of plugin releases.\n\t\t\thint: 'Set the `__nextRemoveResetButton` prop to `true` to remove this warning and opt in to the new behaviour, which will become the default in a future version.',\n\t\t} );\n\t}\n\n\tconst [ calendarHelpIsVisible, setCalendarHelpIsVisible ] =\n\t\tuseState( false );\n\n\tfunction onClickDescriptionToggle() {\n\t\tsetCalendarHelpIsVisible( ! calendarHelpIsVisible );\n\t}\n\n\treturn (\n\t\t<div ref={ ref } className=\"components-datetime\">\n\t\t\t{ ! calendarHelpIsVisible && (\n\t\t\t\t<>\n\t\t\t\t\t<TimePicker\n\t\t\t\t\t\tcurrentTime={ currentDate }\n\t\t\t\t\t\tonChange={ onChange }\n\t\t\t\t\t\tis12Hour={ is12Hour }\n\t\t\t\t\t/>\n\t\t\t\t\t<DatePicker\n\t\t\t\t\t\tcurrentDate={ currentDate }\n\t\t\t\t\t\tonChange={ onChange }\n\t\t\t\t\t\tisInvalidDate={ isInvalidDate }\n\t\t\t\t\t\tevents={ events }\n\t\t\t\t\t\tonMonthPreviewed={ onMonthPreviewed }\n\t\t\t\t\t/>\n\t\t\t\t</>\n\t\t\t) }\n\t\t\t{ calendarHelpIsVisible && (\n\t\t\t\t<CalendarHelp\n\t\t\t\t\tclassName=\"components-datetime__calendar-help\" // Unused, for backwards compatibility.\n\t\t\t\t>\n\t\t\t\t\t<Heading level={ 4 }>{ __( 'Click to Select' ) }</Heading>\n\t\t\t\t\t<ul>\n\t\t\t\t\t\t<li>\n\t\t\t\t\t\t\t{ __(\n\t\t\t\t\t\t\t\t'Click the right or left arrows to select other months in the past or the future.'\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t</li>\n\t\t\t\t\t\t<li>{ __( 'Click the desired day to select it.' ) }</li>\n\t\t\t\t\t</ul>\n\t\t\t\t\t<Heading level={ 4 }>\n\t\t\t\t\t\t{ __( 'Navigating with a keyboard' ) }\n\t\t\t\t\t</Heading>\n\t\t\t\t\t<ul>\n\t\t\t\t\t\t<li>\n\t\t\t\t\t\t\t<abbr\n\t\t\t\t\t\t\t\taria-label={ _x( 'Enter', 'keyboard button' ) }\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t↵\n\t\t\t\t\t\t\t</abbr>\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t' ' /* JSX removes whitespace, but a space is required for screen readers. */\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t<span>{ __( 'Select the date in focus.' ) }</span>\n\t\t\t\t\t\t</li>\n\t\t\t\t\t\t<li>\n\t\t\t\t\t\t\t<abbr aria-label={ __( 'Left and Right Arrows' ) }>\n\t\t\t\t\t\t\t\t←/→\n\t\t\t\t\t\t\t</abbr>\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t' ' /* JSX removes whitespace, but a space is required for screen readers. */\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t{ __(\n\t\t\t\t\t\t\t\t'Move backward (left) or forward (right) by one day.'\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t</li>\n\t\t\t\t\t\t<li>\n\t\t\t\t\t\t\t<abbr aria-label={ __( 'Up and Down Arrows' ) }>\n\t\t\t\t\t\t\t\t↑/↓\n\t\t\t\t\t\t\t</abbr>\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t' ' /* JSX removes whitespace, but a space is required for screen readers. */\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t{ __(\n\t\t\t\t\t\t\t\t'Move backward (up) or forward (down) by one week.'\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t</li>\n\t\t\t\t\t\t<li>\n\t\t\t\t\t\t\t<abbr aria-label={ __( 'Page Up and Page Down' ) }>\n\t\t\t\t\t\t\t\t{ __( 'PgUp/PgDn' ) }\n\t\t\t\t\t\t\t</abbr>\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t' ' /* JSX removes whitespace, but a space is required for screen readers. */\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t{ __(\n\t\t\t\t\t\t\t\t'Move backward (PgUp) or forward (PgDn) by one month.'\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t</li>\n\t\t\t\t\t\t<li>\n\t\t\t\t\t\t\t<abbr aria-label={ __( 'Home and End' ) }>\n\t\t\t\t\t\t\t\t{ /* Translators: Home/End reffer to the 'Home' and 'End' buttons on the keyboard.*/ }\n\t\t\t\t\t\t\t\t{ __( 'Home/End' ) }\n\t\t\t\t\t\t\t</abbr>\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t' ' /* JSX removes whitespace, but a space is required for screen readers. */\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t{ __(\n\t\t\t\t\t\t\t\t'Go to the first (Home) or last (End) day of a week.'\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t</li>\n\t\t\t\t\t</ul>\n\t\t\t\t</CalendarHelp>\n\t\t\t) }\n\t\t\t{ ( ! __nextRemoveResetButton || ! __nextRemoveHelpButton ) && (\n\t\t\t\t<HStack\n\t\t\t\t\tclassName=\"components-datetime__buttons\" // Unused, for backwards compatibility.\n\t\t\t\t>\n\t\t\t\t\t{ ! __nextRemoveResetButton &&\n\t\t\t\t\t\t! calendarHelpIsVisible &&\n\t\t\t\t\t\tcurrentDate && (\n\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\tclassName=\"components-datetime__date-reset-button\" // Unused, for backwards compatibility.\n\t\t\t\t\t\t\t\tvariant=\"link\"\n\t\t\t\t\t\t\t\tonClick={ () => onChange?.( null ) }\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{ __( 'Reset' ) }\n\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t) }\n\t\t\t\t\t<Spacer />\n\t\t\t\t\t{ ! __nextRemoveHelpButton && (\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\tclassName=\"components-datetime__date-help-toggle\" // Unused, for backwards compatibility.\n\t\t\t\t\t\t\tvariant=\"link\"\n\t\t\t\t\t\t\tonClick={ onClickDescriptionToggle }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ calendarHelpIsVisible\n\t\t\t\t\t\t\t\t? __( 'Close' )\n\t\t\t\t\t\t\t\t: __( 'Calendar Help' ) }\n\t\t\t\t\t\t</Button>\n\t\t\t\t\t) }\n\t\t\t\t</HStack>\n\t\t\t) }\n\t\t</div>\n\t);\n}\n\n/**\n * DateTimePicker is a React component that renders a calendar and clock for\n * date and time selection. The calendar and clock components can be accessed\n * individually using the `DatePicker` and `TimePicker` components respectively.\n *\n * ```jsx\n * import { DateTimePicker } from '@wordpress/components';\n * import { useState } from '@wordpress/element';\n *\n * const MyDateTimePicker = () => {\n * const [ date, setDate ] = useState( new Date() );\n *\n * return (\n * <DateTimePicker\n * currentDate={ date }\n * onChange={ ( newDate ) => setDate( newDate ) }\n * is12Hour\n * />\n * );\n * };\n * ```\n */\nexport const DateTimePicker = forwardRef( UnforwardedDateTimePicker );\n\nexport default DateTimePicker;\n"]}
1
+ {"version":3,"sources":["@wordpress/components/src/date-time/date-time/index.tsx"],"names":["noop","UnforwardedDateTimePicker","ref","currentDate","is12Hour","isInvalidDate","onMonthPreviewed","onChange","events","startOfWeek","__nextRemoveHelpButton","__nextRemoveResetButton","since","version","hint","calendarHelpIsVisible","setCalendarHelpIsVisible","onClickDescriptionToggle","DateTimePicker"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport type { ForwardedRef } from 'react';\n\n/**\n * WordPress dependencies\n */\nimport { useState, forwardRef } from '@wordpress/element';\nimport { __, _x } from '@wordpress/i18n';\nimport deprecated from '@wordpress/deprecated';\n\n/**\n * Internal dependencies\n */\nimport Button from '../../button';\nimport { default as DatePicker } from '../date';\nimport { default as TimePicker } from '../time';\nimport type { DateTimePickerProps } from '../types';\nimport { CalendarHelp } from './styles';\nimport { HStack } from '../../h-stack';\nimport { Heading } from '../../heading';\nimport { Spacer } from '../../spacer';\n\nexport { DatePicker, TimePicker };\n\nconst noop = () => {};\n\nfunction UnforwardedDateTimePicker(\n\t{\n\t\tcurrentDate,\n\t\tis12Hour,\n\t\tisInvalidDate,\n\t\tonMonthPreviewed = noop,\n\t\tonChange,\n\t\tevents,\n\t\tstartOfWeek,\n\t\t__nextRemoveHelpButton = false,\n\t\t__nextRemoveResetButton = false,\n\t}: DateTimePickerProps,\n\tref: ForwardedRef< any >\n) {\n\tif ( ! __nextRemoveHelpButton ) {\n\t\tdeprecated( 'Help button in wp.components.DateTimePicker', {\n\t\t\tsince: '13.4',\n\t\t\tversion: '14.6', // Six months of plugin releases.\n\t\t\thint: 'Set the `__nextRemoveHelpButton` prop to `true` to remove this warning and opt in to the new behaviour, which will become the default in a future version.',\n\t\t} );\n\t}\n\tif ( ! __nextRemoveResetButton ) {\n\t\tdeprecated( 'Reset button in wp.components.DateTimePicker', {\n\t\t\tsince: '13.4',\n\t\t\tversion: '14.6', // Six months of plugin releases.\n\t\t\thint: 'Set the `__nextRemoveResetButton` prop to `true` to remove this warning and opt in to the new behaviour, which will become the default in a future version.',\n\t\t} );\n\t}\n\n\tconst [ calendarHelpIsVisible, setCalendarHelpIsVisible ] =\n\t\tuseState( false );\n\n\tfunction onClickDescriptionToggle() {\n\t\tsetCalendarHelpIsVisible( ! calendarHelpIsVisible );\n\t}\n\n\treturn (\n\t\t<div ref={ ref } className=\"components-datetime\">\n\t\t\t{ ! calendarHelpIsVisible && (\n\t\t\t\t<>\n\t\t\t\t\t<TimePicker\n\t\t\t\t\t\tcurrentTime={ currentDate }\n\t\t\t\t\t\tonChange={ onChange }\n\t\t\t\t\t\tis12Hour={ is12Hour }\n\t\t\t\t\t/>\n\t\t\t\t\t<DatePicker\n\t\t\t\t\t\tcurrentDate={ currentDate }\n\t\t\t\t\t\tonChange={ onChange }\n\t\t\t\t\t\tisInvalidDate={ isInvalidDate }\n\t\t\t\t\t\tevents={ events }\n\t\t\t\t\t\tonMonthPreviewed={ onMonthPreviewed }\n\t\t\t\t\t\tstartOfWeek={ startOfWeek }\n\t\t\t\t\t/>\n\t\t\t\t</>\n\t\t\t) }\n\t\t\t{ calendarHelpIsVisible && (\n\t\t\t\t<CalendarHelp\n\t\t\t\t\tclassName=\"components-datetime__calendar-help\" // Unused, for backwards compatibility.\n\t\t\t\t>\n\t\t\t\t\t<Heading level={ 4 }>{ __( 'Click to Select' ) }</Heading>\n\t\t\t\t\t<ul>\n\t\t\t\t\t\t<li>\n\t\t\t\t\t\t\t{ __(\n\t\t\t\t\t\t\t\t'Click the right or left arrows to select other months in the past or the future.'\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t</li>\n\t\t\t\t\t\t<li>{ __( 'Click the desired day to select it.' ) }</li>\n\t\t\t\t\t</ul>\n\t\t\t\t\t<Heading level={ 4 }>\n\t\t\t\t\t\t{ __( 'Navigating with a keyboard' ) }\n\t\t\t\t\t</Heading>\n\t\t\t\t\t<ul>\n\t\t\t\t\t\t<li>\n\t\t\t\t\t\t\t<abbr\n\t\t\t\t\t\t\t\taria-label={ _x( 'Enter', 'keyboard button' ) }\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t↵\n\t\t\t\t\t\t\t</abbr>\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t' ' /* JSX removes whitespace, but a space is required for screen readers. */\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t<span>{ __( 'Select the date in focus.' ) }</span>\n\t\t\t\t\t\t</li>\n\t\t\t\t\t\t<li>\n\t\t\t\t\t\t\t<abbr aria-label={ __( 'Left and Right Arrows' ) }>\n\t\t\t\t\t\t\t\t←/→\n\t\t\t\t\t\t\t</abbr>\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t' ' /* JSX removes whitespace, but a space is required for screen readers. */\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t{ __(\n\t\t\t\t\t\t\t\t'Move backward (left) or forward (right) by one day.'\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t</li>\n\t\t\t\t\t\t<li>\n\t\t\t\t\t\t\t<abbr aria-label={ __( 'Up and Down Arrows' ) }>\n\t\t\t\t\t\t\t\t↑/↓\n\t\t\t\t\t\t\t</abbr>\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t' ' /* JSX removes whitespace, but a space is required for screen readers. */\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t{ __(\n\t\t\t\t\t\t\t\t'Move backward (up) or forward (down) by one week.'\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t</li>\n\t\t\t\t\t\t<li>\n\t\t\t\t\t\t\t<abbr aria-label={ __( 'Page Up and Page Down' ) }>\n\t\t\t\t\t\t\t\t{ __( 'PgUp/PgDn' ) }\n\t\t\t\t\t\t\t</abbr>\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t' ' /* JSX removes whitespace, but a space is required for screen readers. */\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t{ __(\n\t\t\t\t\t\t\t\t'Move backward (PgUp) or forward (PgDn) by one month.'\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t</li>\n\t\t\t\t\t\t<li>\n\t\t\t\t\t\t\t<abbr aria-label={ __( 'Home and End' ) }>\n\t\t\t\t\t\t\t\t{ /* Translators: Home/End reffer to the 'Home' and 'End' buttons on the keyboard.*/ }\n\t\t\t\t\t\t\t\t{ __( 'Home/End' ) }\n\t\t\t\t\t\t\t</abbr>\n\t\t\t\t\t\t\t{\n\t\t\t\t\t\t\t\t' ' /* JSX removes whitespace, but a space is required for screen readers. */\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\t{ __(\n\t\t\t\t\t\t\t\t'Go to the first (Home) or last (End) day of a week.'\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t</li>\n\t\t\t\t\t</ul>\n\t\t\t\t</CalendarHelp>\n\t\t\t) }\n\t\t\t{ ( ! __nextRemoveResetButton || ! __nextRemoveHelpButton ) && (\n\t\t\t\t<HStack\n\t\t\t\t\tclassName=\"components-datetime__buttons\" // Unused, for backwards compatibility.\n\t\t\t\t>\n\t\t\t\t\t{ ! __nextRemoveResetButton &&\n\t\t\t\t\t\t! calendarHelpIsVisible &&\n\t\t\t\t\t\tcurrentDate && (\n\t\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\t\tclassName=\"components-datetime__date-reset-button\" // Unused, for backwards compatibility.\n\t\t\t\t\t\t\t\tvariant=\"link\"\n\t\t\t\t\t\t\t\tonClick={ () => onChange?.( null ) }\n\t\t\t\t\t\t\t>\n\t\t\t\t\t\t\t\t{ __( 'Reset' ) }\n\t\t\t\t\t\t\t</Button>\n\t\t\t\t\t\t) }\n\t\t\t\t\t<Spacer />\n\t\t\t\t\t{ ! __nextRemoveHelpButton && (\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\tclassName=\"components-datetime__date-help-toggle\" // Unused, for backwards compatibility.\n\t\t\t\t\t\t\tvariant=\"link\"\n\t\t\t\t\t\t\tonClick={ onClickDescriptionToggle }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t{ calendarHelpIsVisible\n\t\t\t\t\t\t\t\t? __( 'Close' )\n\t\t\t\t\t\t\t\t: __( 'Calendar Help' ) }\n\t\t\t\t\t\t</Button>\n\t\t\t\t\t) }\n\t\t\t\t</HStack>\n\t\t\t) }\n\t\t</div>\n\t);\n}\n\n/**\n * DateTimePicker is a React component that renders a calendar and clock for\n * date and time selection. The calendar and clock components can be accessed\n * individually using the `DatePicker` and `TimePicker` components respectively.\n *\n * ```jsx\n * import { DateTimePicker } from '@wordpress/components';\n * import { useState } from '@wordpress/element';\n *\n * const MyDateTimePicker = () => {\n * const [ date, setDate ] = useState( new Date() );\n *\n * return (\n * <DateTimePicker\n * currentDate={ date }\n * onChange={ ( newDate ) => setDate( newDate ) }\n * is12Hour\n * />\n * );\n * };\n * ```\n */\nexport const DateTimePicker = forwardRef( UnforwardedDateTimePicker );\n\nexport default DateTimePicker;\n"]}
@@ -35,6 +35,7 @@ var _utils = require("./utils");
35
35
  function DuotonePicker(_ref) {
36
36
  let {
37
37
  clearable = true,
38
+ unsetable = true,
38
39
  colorPalette,
39
40
  duotonePalette,
40
41
  disableCustomColors,
@@ -43,44 +44,56 @@ function DuotonePicker(_ref) {
43
44
  onChange
44
45
  } = _ref;
45
46
  const [defaultDark, defaultLight] = (0, _element.useMemo)(() => (0, _utils.getDefaultColors)(colorPalette), [colorPalette]);
47
+ const isUnset = value === 'unset';
48
+ const unsetOption = (0, _element.createElement)(_circularOptionPicker.default.Option, {
49
+ key: "unset",
50
+ value: "unset",
51
+ isSelected: isUnset,
52
+ tooltipText: (0, _i18n.__)('Unset'),
53
+ className: "components-duotone-picker__color-indicator",
54
+ onClick: () => {
55
+ onChange(isUnset ? undefined : 'unset');
56
+ }
57
+ });
58
+ const options = duotonePalette.map(_ref2 => {
59
+ let {
60
+ colors,
61
+ slug,
62
+ name
63
+ } = _ref2;
64
+ const style = {
65
+ background: (0, _utils.getGradientFromCSSColors)(colors, '135deg'),
66
+ color: 'transparent'
67
+ };
68
+ const tooltipText = name !== null && name !== void 0 ? name : (0, _i18n.sprintf)( // translators: %s: duotone code e.g: "dark-grayscale" or "7f7f7f-ffffff".
69
+ (0, _i18n.__)('Duotone code: %s'), slug);
70
+ const label = name ? (0, _i18n.sprintf)( // translators: %s: The name of the option e.g: "Dark grayscale".
71
+ (0, _i18n.__)('Duotone: %s'), name) : tooltipText;
72
+ const isSelected = (0, _lodash.isEqual)(colors, value);
73
+ return (0, _element.createElement)(_circularOptionPicker.default.Option, {
74
+ key: slug,
75
+ value: colors,
76
+ isSelected: isSelected,
77
+ "aria-label": label,
78
+ tooltipText: tooltipText,
79
+ style: style,
80
+ onClick: () => {
81
+ onChange(isSelected ? undefined : colors);
82
+ }
83
+ });
84
+ });
46
85
  return (0, _element.createElement)(_circularOptionPicker.default, {
47
- options: duotonePalette.map(_ref2 => {
48
- let {
49
- colors,
50
- slug,
51
- name
52
- } = _ref2;
53
- const style = {
54
- background: (0, _utils.getGradientFromCSSColors)(colors, '135deg'),
55
- color: 'transparent'
56
- };
57
- const tooltipText = name !== null && name !== void 0 ? name : (0, _i18n.sprintf)( // translators: %s: duotone code e.g: "dark-grayscale" or "7f7f7f-ffffff".
58
- (0, _i18n.__)('Duotone code: %s'), slug);
59
- const label = name ? (0, _i18n.sprintf)( // translators: %s: The name of the option e.g: "Dark grayscale".
60
- (0, _i18n.__)('Duotone: %s'), name) : tooltipText;
61
- const isSelected = (0, _lodash.isEqual)(colors, value);
62
- return (0, _element.createElement)(_circularOptionPicker.default.Option, {
63
- key: slug,
64
- value: colors,
65
- isSelected: isSelected,
66
- "aria-label": label,
67
- tooltipText: tooltipText,
68
- style: style,
69
- onClick: () => {
70
- onChange(isSelected ? undefined : colors);
71
- }
72
- });
73
- }),
86
+ options: unsetable ? [unsetOption, ...options] : options,
74
87
  actions: !!clearable && (0, _element.createElement)(_circularOptionPicker.default.ButtonAction, {
75
88
  onClick: () => onChange(undefined)
76
89
  }, (0, _i18n.__)('Clear'))
77
90
  }, !disableCustomColors && !disableCustomDuotone && (0, _element.createElement)(_customDuotoneBar.default, {
78
- value: value,
91
+ value: isUnset ? undefined : value,
79
92
  onChange: onChange
80
93
  }), !disableCustomDuotone && (0, _element.createElement)(_colorListPicker.default, {
81
94
  labels: [(0, _i18n.__)('Shadows'), (0, _i18n.__)('Highlights')],
82
95
  colors: colorPalette,
83
- value: value,
96
+ value: isUnset ? undefined : value,
84
97
  disableCustomColors: disableCustomColors,
85
98
  enableAlpha: true,
86
99
  onChange: newColors => {
@@ -1 +1 @@
1
- {"version":3,"sources":["@wordpress/components/src/duotone-picker/duotone-picker.js"],"names":["DuotonePicker","clearable","colorPalette","duotonePalette","disableCustomColors","disableCustomDuotone","value","onChange","defaultDark","defaultLight","map","colors","slug","name","style","background","color","tooltipText","label","isSelected","undefined","newColors","newValue","length"],"mappings":";;;;;;;;;AAQA;;AALA;;AAMA;;AAKA;;AACA;;AAEA;;AACA;;AAlBA;AACA;AACA;;AAGA;AACA;AACA;;AAIA;AACA;AACA;AAOA,SAASA,aAAT,OAQI;AAAA,MARoB;AACvBC,IAAAA,SAAS,GAAG,IADW;AAEvBC,IAAAA,YAFuB;AAGvBC,IAAAA,cAHuB;AAIvBC,IAAAA,mBAJuB;AAKvBC,IAAAA,oBALuB;AAMvBC,IAAAA,KANuB;AAOvBC,IAAAA;AAPuB,GAQpB;AACH,QAAM,CAAEC,WAAF,EAAeC,YAAf,IAAgC,sBACrC,MAAM,6BAAkBP,YAAlB,CAD+B,EAErC,CAAEA,YAAF,CAFqC,CAAtC;AAKA,SACC,4BAAC,6BAAD;AACC,IAAA,OAAO,EAAGC,cAAc,CAACO,GAAf,CAAoB,SAA8B;AAAA,UAA5B;AAAEC,QAAAA,MAAF;AAAUC,QAAAA,IAAV;AAAgBC,QAAAA;AAAhB,OAA4B;AAC3D,YAAMC,KAAK,GAAG;AACbC,QAAAA,UAAU,EAAE,qCAA0BJ,MAA1B,EAAkC,QAAlC,CADC;AAEbK,QAAAA,KAAK,EAAE;AAFM,OAAd;AAIA,YAAMC,WAAW,GAChBJ,IADgB,aAChBA,IADgB,cAChBA,IADgB,GAEhB,oBACC;AACA,oBAAI,kBAAJ,CAFD,EAGCD,IAHD,CAFD;AAOA,YAAMM,KAAK,GAAGL,IAAI,GACf,oBACA;AACA,oBAAI,aAAJ,CAFA,EAGAA,IAHA,CADe,GAMfI,WANH;AAOA,YAAME,UAAU,GAAG,qBAASR,MAAT,EAAiBL,KAAjB,CAAnB;AAEA,aACC,4BAAC,6BAAD,CAAsB,MAAtB;AACC,QAAA,GAAG,EAAGM,IADP;AAEC,QAAA,KAAK,EAAGD,MAFT;AAGC,QAAA,UAAU,EAAGQ,UAHd;AAIC,sBAAaD,KAJd;AAKC,QAAA,WAAW,EAAGD,WALf;AAMC,QAAA,KAAK,EAAGH,KANT;AAOC,QAAA,OAAO,EAAG,MAAM;AACfP,UAAAA,QAAQ,CAAEY,UAAU,GAAGC,SAAH,GAAeT,MAA3B,CAAR;AACA;AATF,QADD;AAaA,KAlCS,CADX;AAoCC,IAAA,OAAO,EACN,CAAC,CAAEV,SAAH,IACC,4BAAC,6BAAD,CAAsB,YAAtB;AACC,MAAA,OAAO,EAAG,MAAMM,QAAQ,CAAEa,SAAF;AADzB,OAGG,cAAI,OAAJ,CAHH;AAtCH,KA8CG,CAAEhB,mBAAF,IAAyB,CAAEC,oBAA3B,IACD,4BAAC,yBAAD;AAAkB,IAAA,KAAK,EAAGC,KAA1B;AAAkC,IAAA,QAAQ,EAAGC;AAA7C,IA/CF,EAiDG,CAAEF,oBAAF,IACD,4BAAC,wBAAD;AACC,IAAA,MAAM,EAAG,CAAE,cAAI,SAAJ,CAAF,EAAmB,cAAI,YAAJ,CAAnB,CADV;AAEC,IAAA,MAAM,EAAGH,YAFV;AAGC,IAAA,KAAK,EAAGI,KAHT;AAIC,IAAA,mBAAmB,EAAGF,mBAJvB;AAKC,IAAA,WAAW,MALZ;AAMC,IAAA,QAAQ,EAAKiB,SAAF,IAAiB;AAC3B,UAAK,CAAEA,SAAS,CAAE,CAAF,CAAhB,EAAwB;AACvBA,QAAAA,SAAS,CAAE,CAAF,CAAT,GAAiBb,WAAjB;AACA;;AACD,UAAK,CAAEa,SAAS,CAAE,CAAF,CAAhB,EAAwB;AACvBA,QAAAA,SAAS,CAAE,CAAF,CAAT,GAAiBZ,YAAjB;AACA;;AACD,YAAMa,QAAQ,GACbD,SAAS,CAACE,MAAV,IAAoB,CAApB,GAAwBF,SAAxB,GAAoCD,SADrC;AAEAb,MAAAA,QAAQ,CAAEe,QAAF,CAAR;AACA;AAhBF,IAlDF,CADD;AAwEA;;eAEctB,a","sourcesContent":["/**\n * External dependencies\n */\nimport { isEqual } from 'lodash';\n\n/**\n * WordPress dependencies\n */\nimport { useMemo } from '@wordpress/element';\nimport { __, sprintf } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport ColorListPicker from '../color-list-picker';\nimport CircularOptionPicker from '../circular-option-picker';\n\nimport CustomDuotoneBar from './custom-duotone-bar';\nimport { getDefaultColors, getGradientFromCSSColors } from './utils';\n\nfunction DuotonePicker( {\n\tclearable = true,\n\tcolorPalette,\n\tduotonePalette,\n\tdisableCustomColors,\n\tdisableCustomDuotone,\n\tvalue,\n\tonChange,\n} ) {\n\tconst [ defaultDark, defaultLight ] = useMemo(\n\t\t() => getDefaultColors( colorPalette ),\n\t\t[ colorPalette ]\n\t);\n\n\treturn (\n\t\t<CircularOptionPicker\n\t\t\toptions={ duotonePalette.map( ( { colors, slug, name } ) => {\n\t\t\t\tconst style = {\n\t\t\t\t\tbackground: getGradientFromCSSColors( colors, '135deg' ),\n\t\t\t\t\tcolor: 'transparent',\n\t\t\t\t};\n\t\t\t\tconst tooltipText =\n\t\t\t\t\tname ??\n\t\t\t\t\tsprintf(\n\t\t\t\t\t\t// translators: %s: duotone code e.g: \"dark-grayscale\" or \"7f7f7f-ffffff\".\n\t\t\t\t\t\t__( 'Duotone code: %s' ),\n\t\t\t\t\t\tslug\n\t\t\t\t\t);\n\t\t\t\tconst label = name\n\t\t\t\t\t? sprintf(\n\t\t\t\t\t\t\t// translators: %s: The name of the option e.g: \"Dark grayscale\".\n\t\t\t\t\t\t\t__( 'Duotone: %s' ),\n\t\t\t\t\t\t\tname\n\t\t\t\t\t )\n\t\t\t\t\t: tooltipText;\n\t\t\t\tconst isSelected = isEqual( colors, value );\n\n\t\t\t\treturn (\n\t\t\t\t\t<CircularOptionPicker.Option\n\t\t\t\t\t\tkey={ slug }\n\t\t\t\t\t\tvalue={ colors }\n\t\t\t\t\t\tisSelected={ isSelected }\n\t\t\t\t\t\taria-label={ label }\n\t\t\t\t\t\ttooltipText={ tooltipText }\n\t\t\t\t\t\tstyle={ style }\n\t\t\t\t\t\tonClick={ () => {\n\t\t\t\t\t\t\tonChange( isSelected ? undefined : colors );\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\tactions={\n\t\t\t\t!! clearable && (\n\t\t\t\t\t<CircularOptionPicker.ButtonAction\n\t\t\t\t\t\tonClick={ () => onChange( undefined ) }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ __( 'Clear' ) }\n\t\t\t\t\t</CircularOptionPicker.ButtonAction>\n\t\t\t\t)\n\t\t\t}\n\t\t>\n\t\t\t{ ! disableCustomColors && ! disableCustomDuotone && (\n\t\t\t\t<CustomDuotoneBar value={ value } onChange={ onChange } />\n\t\t\t) }\n\t\t\t{ ! disableCustomDuotone && (\n\t\t\t\t<ColorListPicker\n\t\t\t\t\tlabels={ [ __( 'Shadows' ), __( 'Highlights' ) ] }\n\t\t\t\t\tcolors={ colorPalette }\n\t\t\t\t\tvalue={ value }\n\t\t\t\t\tdisableCustomColors={ disableCustomColors }\n\t\t\t\t\tenableAlpha\n\t\t\t\t\tonChange={ ( newColors ) => {\n\t\t\t\t\t\tif ( ! newColors[ 0 ] ) {\n\t\t\t\t\t\t\tnewColors[ 0 ] = defaultDark;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif ( ! newColors[ 1 ] ) {\n\t\t\t\t\t\t\tnewColors[ 1 ] = defaultLight;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tconst newValue =\n\t\t\t\t\t\t\tnewColors.length >= 2 ? newColors : undefined;\n\t\t\t\t\t\tonChange( newValue );\n\t\t\t\t\t} }\n\t\t\t\t/>\n\t\t\t) }\n\t\t</CircularOptionPicker>\n\t);\n}\n\nexport default DuotonePicker;\n"]}
1
+ {"version":3,"sources":["@wordpress/components/src/duotone-picker/duotone-picker.js"],"names":["DuotonePicker","clearable","unsetable","colorPalette","duotonePalette","disableCustomColors","disableCustomDuotone","value","onChange","defaultDark","defaultLight","isUnset","unsetOption","undefined","options","map","colors","slug","name","style","background","color","tooltipText","label","isSelected","newColors","newValue","length"],"mappings":";;;;;;;;;AAQA;;AALA;;AAMA;;AAKA;;AACA;;AAEA;;AACA;;AAlBA;AACA;AACA;;AAGA;AACA;AACA;;AAIA;AACA;AACA;AAOA,SAASA,aAAT,OASI;AAAA,MAToB;AACvBC,IAAAA,SAAS,GAAG,IADW;AAEvBC,IAAAA,SAAS,GAAG,IAFW;AAGvBC,IAAAA,YAHuB;AAIvBC,IAAAA,cAJuB;AAKvBC,IAAAA,mBALuB;AAMvBC,IAAAA,oBANuB;AAOvBC,IAAAA,KAPuB;AAQvBC,IAAAA;AARuB,GASpB;AACH,QAAM,CAAEC,WAAF,EAAeC,YAAf,IAAgC,sBACrC,MAAM,6BAAkBP,YAAlB,CAD+B,EAErC,CAAEA,YAAF,CAFqC,CAAtC;AAKA,QAAMQ,OAAO,GAAGJ,KAAK,KAAK,OAA1B;AAEA,QAAMK,WAAW,GAChB,4BAAC,6BAAD,CAAsB,MAAtB;AACC,IAAA,GAAG,EAAC,OADL;AAEC,IAAA,KAAK,EAAC,OAFP;AAGC,IAAA,UAAU,EAAGD,OAHd;AAIC,IAAA,WAAW,EAAG,cAAI,OAAJ,CAJf;AAKC,IAAA,SAAS,EAAC,4CALX;AAMC,IAAA,OAAO,EAAG,MAAM;AACfH,MAAAA,QAAQ,CAAEG,OAAO,GAAGE,SAAH,GAAe,OAAxB,CAAR;AACA;AARF,IADD;AAaA,QAAMC,OAAO,GAAGV,cAAc,CAACW,GAAf,CAAoB,SAA8B;AAAA,QAA5B;AAAEC,MAAAA,MAAF;AAAUC,MAAAA,IAAV;AAAgBC,MAAAA;AAAhB,KAA4B;AACjE,UAAMC,KAAK,GAAG;AACbC,MAAAA,UAAU,EAAE,qCAA0BJ,MAA1B,EAAkC,QAAlC,CADC;AAEbK,MAAAA,KAAK,EAAE;AAFM,KAAd;AAIA,UAAMC,WAAW,GAChBJ,IADgB,aAChBA,IADgB,cAChBA,IADgB,GAEhB,oBACC;AACA,kBAAI,kBAAJ,CAFD,EAGCD,IAHD,CAFD;AAOA,UAAMM,KAAK,GAAGL,IAAI,GACf,oBACA;AACA,kBAAI,aAAJ,CAFA,EAGAA,IAHA,CADe,GAMfI,WANH;AAOA,UAAME,UAAU,GAAG,qBAASR,MAAT,EAAiBT,KAAjB,CAAnB;AAEA,WACC,4BAAC,6BAAD,CAAsB,MAAtB;AACC,MAAA,GAAG,EAAGU,IADP;AAEC,MAAA,KAAK,EAAGD,MAFT;AAGC,MAAA,UAAU,EAAGQ,UAHd;AAIC,oBAAaD,KAJd;AAKC,MAAA,WAAW,EAAGD,WALf;AAMC,MAAA,KAAK,EAAGH,KANT;AAOC,MAAA,OAAO,EAAG,MAAM;AACfX,QAAAA,QAAQ,CAAEgB,UAAU,GAAGX,SAAH,GAAeG,MAA3B,CAAR;AACA;AATF,MADD;AAaA,GAlCe,CAAhB;AAoCA,SACC,4BAAC,6BAAD;AACC,IAAA,OAAO,EAAGd,SAAS,GAAG,CAAEU,WAAF,EAAe,GAAGE,OAAlB,CAAH,GAAiCA,OADrD;AAEC,IAAA,OAAO,EACN,CAAC,CAAEb,SAAH,IACC,4BAAC,6BAAD,CAAsB,YAAtB;AACC,MAAA,OAAO,EAAG,MAAMO,QAAQ,CAAEK,SAAF;AADzB,OAGG,cAAI,OAAJ,CAHH;AAJH,KAYG,CAAER,mBAAF,IAAyB,CAAEC,oBAA3B,IACD,4BAAC,yBAAD;AACC,IAAA,KAAK,EAAGK,OAAO,GAAGE,SAAH,GAAeN,KAD/B;AAEC,IAAA,QAAQ,EAAGC;AAFZ,IAbF,EAkBG,CAAEF,oBAAF,IACD,4BAAC,wBAAD;AACC,IAAA,MAAM,EAAG,CAAE,cAAI,SAAJ,CAAF,EAAmB,cAAI,YAAJ,CAAnB,CADV;AAEC,IAAA,MAAM,EAAGH,YAFV;AAGC,IAAA,KAAK,EAAGQ,OAAO,GAAGE,SAAH,GAAeN,KAH/B;AAIC,IAAA,mBAAmB,EAAGF,mBAJvB;AAKC,IAAA,WAAW,MALZ;AAMC,IAAA,QAAQ,EAAKoB,SAAF,IAAiB;AAC3B,UAAK,CAAEA,SAAS,CAAE,CAAF,CAAhB,EAAwB;AACvBA,QAAAA,SAAS,CAAE,CAAF,CAAT,GAAiBhB,WAAjB;AACA;;AACD,UAAK,CAAEgB,SAAS,CAAE,CAAF,CAAhB,EAAwB;AACvBA,QAAAA,SAAS,CAAE,CAAF,CAAT,GAAiBf,YAAjB;AACA;;AACD,YAAMgB,QAAQ,GACbD,SAAS,CAACE,MAAV,IAAoB,CAApB,GAAwBF,SAAxB,GAAoCZ,SADrC;AAEAL,MAAAA,QAAQ,CAAEkB,QAAF,CAAR;AACA;AAhBF,IAnBF,CADD;AAyCA;;eAEc1B,a","sourcesContent":["/**\n * External dependencies\n */\nimport { isEqual } from 'lodash';\n\n/**\n * WordPress dependencies\n */\nimport { useMemo } from '@wordpress/element';\nimport { __, sprintf } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport ColorListPicker from '../color-list-picker';\nimport CircularOptionPicker from '../circular-option-picker';\n\nimport CustomDuotoneBar from './custom-duotone-bar';\nimport { getDefaultColors, getGradientFromCSSColors } from './utils';\n\nfunction DuotonePicker( {\n\tclearable = true,\n\tunsetable = true,\n\tcolorPalette,\n\tduotonePalette,\n\tdisableCustomColors,\n\tdisableCustomDuotone,\n\tvalue,\n\tonChange,\n} ) {\n\tconst [ defaultDark, defaultLight ] = useMemo(\n\t\t() => getDefaultColors( colorPalette ),\n\t\t[ colorPalette ]\n\t);\n\n\tconst isUnset = value === 'unset';\n\n\tconst unsetOption = (\n\t\t<CircularOptionPicker.Option\n\t\t\tkey=\"unset\"\n\t\t\tvalue=\"unset\"\n\t\t\tisSelected={ isUnset }\n\t\t\ttooltipText={ __( 'Unset' ) }\n\t\t\tclassName=\"components-duotone-picker__color-indicator\"\n\t\t\tonClick={ () => {\n\t\t\t\tonChange( isUnset ? undefined : 'unset' );\n\t\t\t} }\n\t\t/>\n\t);\n\n\tconst options = duotonePalette.map( ( { colors, slug, name } ) => {\n\t\tconst style = {\n\t\t\tbackground: getGradientFromCSSColors( colors, '135deg' ),\n\t\t\tcolor: 'transparent',\n\t\t};\n\t\tconst tooltipText =\n\t\t\tname ??\n\t\t\tsprintf(\n\t\t\t\t// translators: %s: duotone code e.g: \"dark-grayscale\" or \"7f7f7f-ffffff\".\n\t\t\t\t__( 'Duotone code: %s' ),\n\t\t\t\tslug\n\t\t\t);\n\t\tconst label = name\n\t\t\t? sprintf(\n\t\t\t\t\t// translators: %s: The name of the option e.g: \"Dark grayscale\".\n\t\t\t\t\t__( 'Duotone: %s' ),\n\t\t\t\t\tname\n\t\t\t )\n\t\t\t: tooltipText;\n\t\tconst isSelected = isEqual( colors, value );\n\n\t\treturn (\n\t\t\t<CircularOptionPicker.Option\n\t\t\t\tkey={ slug }\n\t\t\t\tvalue={ colors }\n\t\t\t\tisSelected={ isSelected }\n\t\t\t\taria-label={ label }\n\t\t\t\ttooltipText={ tooltipText }\n\t\t\t\tstyle={ style }\n\t\t\t\tonClick={ () => {\n\t\t\t\t\tonChange( isSelected ? undefined : colors );\n\t\t\t\t} }\n\t\t\t/>\n\t\t);\n\t} );\n\n\treturn (\n\t\t<CircularOptionPicker\n\t\t\toptions={ unsetable ? [ unsetOption, ...options ] : options }\n\t\t\tactions={\n\t\t\t\t!! clearable && (\n\t\t\t\t\t<CircularOptionPicker.ButtonAction\n\t\t\t\t\t\tonClick={ () => onChange( undefined ) }\n\t\t\t\t\t>\n\t\t\t\t\t\t{ __( 'Clear' ) }\n\t\t\t\t\t</CircularOptionPicker.ButtonAction>\n\t\t\t\t)\n\t\t\t}\n\t\t>\n\t\t\t{ ! disableCustomColors && ! disableCustomDuotone && (\n\t\t\t\t<CustomDuotoneBar\n\t\t\t\t\tvalue={ isUnset ? undefined : value }\n\t\t\t\t\tonChange={ onChange }\n\t\t\t\t/>\n\t\t\t) }\n\t\t\t{ ! disableCustomDuotone && (\n\t\t\t\t<ColorListPicker\n\t\t\t\t\tlabels={ [ __( 'Shadows' ), __( 'Highlights' ) ] }\n\t\t\t\t\tcolors={ colorPalette }\n\t\t\t\t\tvalue={ isUnset ? undefined : value }\n\t\t\t\t\tdisableCustomColors={ disableCustomColors }\n\t\t\t\t\tenableAlpha\n\t\t\t\t\tonChange={ ( newColors ) => {\n\t\t\t\t\t\tif ( ! newColors[ 0 ] ) {\n\t\t\t\t\t\t\tnewColors[ 0 ] = defaultDark;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tif ( ! newColors[ 1 ] ) {\n\t\t\t\t\t\t\tnewColors[ 1 ] = defaultLight;\n\t\t\t\t\t\t}\n\t\t\t\t\t\tconst newValue =\n\t\t\t\t\t\t\tnewColors.length >= 2 ? newColors : undefined;\n\t\t\t\t\t\tonChange( newValue );\n\t\t\t\t\t} }\n\t\t\t\t/>\n\t\t\t) }\n\t\t</CircularOptionPicker>\n\t);\n}\n\nexport default DuotonePicker;\n"]}