@wordpress/components 19.7.0 → 19.9.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 (504) hide show
  1. package/CHANGELOG.md +39 -1
  2. package/README.md +38 -0
  3. package/build/alignment-matrix-control/styles/alignment-matrix-control-styles.js +11 -11
  4. package/build/alignment-matrix-control/styles/alignment-matrix-control-styles.js.map +1 -1
  5. package/build/base-control/index.js +35 -31
  6. package/build/base-control/index.js.map +1 -1
  7. package/build/base-control/styles/base-control-styles.js +18 -18
  8. package/build/base-control/styles/base-control-styles.js.map +1 -1
  9. package/build/base-control/types.js +6 -0
  10. package/build/base-control/types.js.map +1 -0
  11. package/build/border-box-control/border-box-control/component.js +124 -0
  12. package/build/border-box-control/border-box-control/component.js.map +1 -0
  13. package/build/border-box-control/border-box-control/hook.js +113 -0
  14. package/build/border-box-control/border-box-control/hook.js.map +1 -0
  15. package/build/border-box-control/border-box-control/index.js +24 -0
  16. package/build/border-box-control/border-box-control/index.js.map +1 -0
  17. package/build/border-box-control/border-box-control-linked-button/component.js +59 -0
  18. package/build/border-box-control/border-box-control-linked-button/component.js.map +1 -0
  19. package/build/border-box-control/border-box-control-linked-button/hook.js +41 -0
  20. package/build/border-box-control/border-box-control-linked-button/hook.js.map +1 -0
  21. package/build/border-box-control/border-box-control-linked-button/index.js +16 -0
  22. package/build/border-box-control/border-box-control-linked-button/index.js.map +1 -0
  23. package/build/border-box-control/border-box-control-split-controls/component.js +93 -0
  24. package/build/border-box-control/border-box-control-split-controls/component.js.map +1 -0
  25. package/build/border-box-control/border-box-control-split-controls/hook.js +45 -0
  26. package/build/border-box-control/border-box-control-split-controls/hook.js.map +1 -0
  27. package/build/border-box-control/border-box-control-split-controls/index.js +16 -0
  28. package/build/border-box-control/border-box-control-split-controls/index.js.map +1 -0
  29. package/build/border-box-control/border-box-control-visualizer/component.js +40 -0
  30. package/build/border-box-control/border-box-control-visualizer/component.js.map +1 -0
  31. package/build/border-box-control/border-box-control-visualizer/hook.js +43 -0
  32. package/build/border-box-control/border-box-control-visualizer/hook.js.map +1 -0
  33. package/build/border-box-control/border-box-control-visualizer/index.js +16 -0
  34. package/build/border-box-control/border-box-control-visualizer/index.js.map +1 -0
  35. package/build/border-box-control/index.js +44 -0
  36. package/build/border-box-control/index.js.map +1 -0
  37. package/build/border-box-control/styles.js +76 -0
  38. package/build/border-box-control/styles.js.map +1 -0
  39. package/build/border-box-control/types.js +6 -0
  40. package/build/border-box-control/types.js.map +1 -0
  41. package/build/border-box-control/utils.js +161 -0
  42. package/build/border-box-control/utils.js.map +1 -0
  43. package/build/border-control/border-control/component.js +119 -0
  44. package/build/border-control/border-control/component.js.map +1 -0
  45. package/build/border-control/border-control/hook.js +130 -0
  46. package/build/border-control/border-control/hook.js.map +1 -0
  47. package/build/border-control/border-control/index.js +24 -0
  48. package/build/border-control/border-control/index.js.map +1 -0
  49. package/build/border-control/border-control-dropdown/component.js +196 -0
  50. package/build/border-control/border-control-dropdown/component.js.map +1 -0
  51. package/build/border-control/border-control-dropdown/hook.js +105 -0
  52. package/build/border-control/border-control-dropdown/hook.js.map +1 -0
  53. package/build/border-control/border-control-dropdown/index.js +16 -0
  54. package/build/border-control/border-control-dropdown/index.js.map +1 -0
  55. package/build/border-control/border-control-style-picker/component.js +101 -0
  56. package/build/border-control/border-control-style-picker/component.js.map +1 -0
  57. package/build/border-control/border-control-style-picker/hook.js +45 -0
  58. package/build/border-control/border-control-style-picker/hook.js.map +1 -0
  59. package/build/border-control/border-control-style-picker/index.js +16 -0
  60. package/build/border-control/border-control-style-picker/index.js.map +1 -0
  61. package/build/border-control/index.js +24 -0
  62. package/build/border-control/index.js.map +1 -0
  63. package/build/border-control/styles.js +125 -0
  64. package/build/border-control/styles.js.map +1 -0
  65. package/build/border-control/types.js +6 -0
  66. package/build/border-control/types.js.map +1 -0
  67. package/build/card/styles.js +22 -17
  68. package/build/card/styles.js.map +1 -1
  69. package/build/custom-select-control/index.js +4 -1
  70. package/build/custom-select-control/index.js.map +1 -1
  71. package/build/guide/index.js +14 -8
  72. package/build/guide/index.js.map +1 -1
  73. package/build/heading/hook.js +1 -1
  74. package/build/heading/hook.js.map +1 -1
  75. package/build/index.js +40 -0
  76. package/build/index.js.map +1 -1
  77. package/build/input-control/index.js +26 -4
  78. package/build/input-control/index.js.map +1 -1
  79. package/build/input-control/styles/input-control-styles.js +25 -25
  80. package/build/input-control/styles/input-control-styles.js.map +1 -1
  81. package/build/item-group/styles.js +14 -14
  82. package/build/item-group/styles.js.map +1 -1
  83. package/build/mobile/picker/index.android.js +0 -3
  84. package/build/mobile/picker/index.android.js.map +1 -1
  85. package/build/navigation/styles/navigation-styles.js +12 -12
  86. package/build/navigation/styles/navigation-styles.js.map +1 -1
  87. package/build/notice/index.native.js +44 -40
  88. package/build/notice/index.native.js.map +1 -1
  89. package/build/notice/list.native.js +27 -45
  90. package/build/notice/list.native.js.map +1 -1
  91. package/build/palette-edit/index.js +2 -1
  92. package/build/palette-edit/index.js.map +1 -1
  93. package/build/sandbox/index.js +2 -2
  94. package/build/sandbox/index.js.map +1 -1
  95. package/build/select-control/styles/select-control-styles.js +5 -5
  96. package/build/select-control/styles/select-control-styles.js.map +1 -1
  97. package/build/surface/styles.js +8 -8
  98. package/build/surface/styles.js.map +1 -1
  99. package/build/text/hook.js +5 -5
  100. package/build/text/hook.js.map +1 -1
  101. package/build/text/styles/text-mixins.native.js +1 -1
  102. package/build/text/styles/text-mixins.native.js.map +1 -1
  103. package/build/text/styles.js +7 -7
  104. package/build/text/styles.js.map +1 -1
  105. package/build/toggle-group-control/index.js +8 -0
  106. package/build/toggle-group-control/index.js.map +1 -1
  107. package/build/toggle-group-control/toggle-group-control/component.js +10 -1
  108. package/build/toggle-group-control/toggle-group-control/component.js.map +1 -1
  109. package/build/toggle-group-control/toggle-group-control/styles.js +14 -3
  110. package/build/toggle-group-control/toggle-group-control/styles.js.map +1 -1
  111. package/build/toggle-group-control/toggle-group-control/toggle-group-control-backdrop.js +90 -0
  112. package/build/toggle-group-control/toggle-group-control/toggle-group-control-backdrop.js.map +1 -0
  113. package/build/toggle-group-control/toggle-group-control-option/component.js +9 -87
  114. package/build/toggle-group-control/toggle-group-control-option/component.js.map +1 -1
  115. package/build/toggle-group-control/toggle-group-control-option-base/component.js +127 -0
  116. package/build/toggle-group-control/toggle-group-control-option-base/component.js.map +1 -0
  117. package/build/toggle-group-control/toggle-group-control-option-base/index.js +16 -0
  118. package/build/toggle-group-control/toggle-group-control-option-base/index.js.map +1 -0
  119. package/build/toggle-group-control/toggle-group-control-option-base/styles.js +66 -0
  120. package/build/toggle-group-control/toggle-group-control-option-base/styles.js.map +1 -0
  121. package/build/toggle-group-control/toggle-group-control-option-icon/component.js +55 -0
  122. package/build/toggle-group-control/toggle-group-control-option-icon/component.js.map +1 -0
  123. package/build/toggle-group-control/toggle-group-control-option-icon/index.js +16 -0
  124. package/build/toggle-group-control/toggle-group-control-option-icon/index.js.map +1 -0
  125. package/build/toolbar-dropdown-menu/index.js +1 -1
  126. package/build/toolbar-dropdown-menu/index.js.map +1 -1
  127. package/build/ui/spinner/component.js +1 -1
  128. package/build/ui/spinner/component.js.map +1 -1
  129. package/build/unit-control/index.js +7 -2
  130. package/build/unit-control/index.js.map +1 -1
  131. package/build/utils/colors-values.js +14 -27
  132. package/build/utils/colors-values.js.map +1 -1
  133. package/build/utils/config-values.js +9 -4
  134. package/build/utils/config-values.js.map +1 -1
  135. package/build-module/alignment-matrix-control/styles/alignment-matrix-control-styles.js +11 -11
  136. package/build-module/alignment-matrix-control/styles/alignment-matrix-control-styles.js.map +1 -1
  137. package/build-module/base-control/index.js +33 -34
  138. package/build-module/base-control/index.js.map +1 -1
  139. package/build-module/base-control/styles/base-control-styles.js +18 -18
  140. package/build-module/base-control/styles/base-control-styles.js.map +1 -1
  141. package/build-module/base-control/types.js +2 -0
  142. package/build-module/base-control/types.js.map +1 -0
  143. package/build-module/border-box-control/border-box-control/component.js +104 -0
  144. package/build-module/border-box-control/border-box-control/component.js.map +1 -0
  145. package/build-module/border-box-control/border-box-control/hook.js +97 -0
  146. package/build-module/border-box-control/border-box-control/hook.js.map +1 -0
  147. package/build-module/border-box-control/border-box-control/index.js +3 -0
  148. package/build-module/border-box-control/border-box-control/index.js.map +1 -0
  149. package/build-module/border-box-control/border-box-control-linked-button/component.js +42 -0
  150. package/build-module/border-box-control/border-box-control-linked-button/component.js.map +1 -0
  151. package/build-module/border-box-control/border-box-control-linked-button/hook.js +26 -0
  152. package/build-module/border-box-control/border-box-control-linked-button/hook.js.map +1 -0
  153. package/build-module/border-box-control/border-box-control-linked-button/index.js +2 -0
  154. package/build-module/border-box-control/border-box-control-linked-button/index.js.map +1 -0
  155. package/build-module/border-box-control/border-box-control-split-controls/component.js +77 -0
  156. package/build-module/border-box-control/border-box-control-split-controls/component.js.map +1 -0
  157. package/build-module/border-box-control/border-box-control-split-controls/hook.js +30 -0
  158. package/build-module/border-box-control/border-box-control-split-controls/hook.js.map +1 -0
  159. package/build-module/border-box-control/border-box-control-split-controls/index.js +2 -0
  160. package/build-module/border-box-control/border-box-control-split-controls/index.js.map +1 -0
  161. package/build-module/border-box-control/border-box-control-visualizer/component.js +27 -0
  162. package/build-module/border-box-control/border-box-control-visualizer/component.js.map +1 -0
  163. package/build-module/border-box-control/border-box-control-visualizer/hook.js +28 -0
  164. package/build-module/border-box-control/border-box-control-visualizer/hook.js.map +1 -0
  165. package/build-module/border-box-control/border-box-control-visualizer/index.js +2 -0
  166. package/build-module/border-box-control/border-box-control-visualizer/index.js.map +1 -0
  167. package/build-module/border-box-control/index.js +4 -0
  168. package/build-module/border-box-control/index.js.map +1 -0
  169. package/build-module/border-box-control/styles.js +66 -0
  170. package/build-module/border-box-control/styles.js.map +1 -0
  171. package/build-module/border-box-control/types.js +2 -0
  172. package/build-module/border-box-control/types.js.map +1 -0
  173. package/build-module/border-box-control/utils.js +127 -0
  174. package/build-module/border-box-control/utils.js.map +1 -0
  175. package/build-module/border-control/border-control/component.js +100 -0
  176. package/build-module/border-control/border-control/component.js.map +1 -0
  177. package/build-module/border-control/border-control/hook.js +115 -0
  178. package/build-module/border-control/border-control/hook.js.map +1 -0
  179. package/build-module/border-control/border-control/index.js +3 -0
  180. package/build-module/border-control/border-control/index.js.map +1 -0
  181. package/build-module/border-control/border-control-dropdown/component.js +174 -0
  182. package/build-module/border-control/border-control-dropdown/component.js.map +1 -0
  183. package/build-module/border-control/border-control-dropdown/hook.js +89 -0
  184. package/build-module/border-control/border-control-dropdown/hook.js.map +1 -0
  185. package/build-module/border-control/border-control-dropdown/index.js +2 -0
  186. package/build-module/border-control/border-control-dropdown/index.js.map +1 -0
  187. package/build-module/border-control/border-control-style-picker/component.js +81 -0
  188. package/build-module/border-control/border-control-style-picker/component.js.map +1 -0
  189. package/build-module/border-control/border-control-style-picker/hook.js +30 -0
  190. package/build-module/border-control/border-control-style-picker/hook.js.map +1 -0
  191. package/build-module/border-control/border-control-style-picker/index.js +2 -0
  192. package/build-module/border-control/border-control-style-picker/index.js.map +1 -0
  193. package/build-module/border-control/index.js +3 -0
  194. package/build-module/border-control/index.js.map +1 -0
  195. package/build-module/border-control/styles.js +90 -0
  196. package/build-module/border-control/styles.js.map +1 -0
  197. package/build-module/border-control/types.js +2 -0
  198. package/build-module/border-control/types.js.map +1 -0
  199. package/build-module/card/styles.js +23 -18
  200. package/build-module/card/styles.js.map +1 -1
  201. package/build-module/custom-select-control/index.js +4 -1
  202. package/build-module/custom-select-control/index.js.map +1 -1
  203. package/build-module/guide/index.js +14 -8
  204. package/build-module/guide/index.js.map +1 -1
  205. package/build-module/heading/hook.js +1 -1
  206. package/build-module/heading/hook.js.map +1 -1
  207. package/build-module/index.js +3 -1
  208. package/build-module/index.js.map +1 -1
  209. package/build-module/input-control/index.js +23 -3
  210. package/build-module/input-control/index.js.map +1 -1
  211. package/build-module/input-control/styles/input-control-styles.js +25 -25
  212. package/build-module/input-control/styles/input-control-styles.js.map +1 -1
  213. package/build-module/item-group/styles.js +14 -14
  214. package/build-module/item-group/styles.js.map +1 -1
  215. package/build-module/mobile/picker/index.android.js +0 -3
  216. package/build-module/mobile/picker/index.android.js.map +1 -1
  217. package/build-module/navigation/styles/navigation-styles.js +13 -13
  218. package/build-module/navigation/styles/navigation-styles.js.map +1 -1
  219. package/build-module/notice/index.native.js +45 -41
  220. package/build-module/notice/index.native.js.map +1 -1
  221. package/build-module/notice/list.native.js +28 -46
  222. package/build-module/notice/list.native.js.map +1 -1
  223. package/build-module/palette-edit/index.js +3 -2
  224. package/build-module/palette-edit/index.js.map +1 -1
  225. package/build-module/sandbox/index.js +2 -2
  226. package/build-module/sandbox/index.js.map +1 -1
  227. package/build-module/select-control/styles/select-control-styles.js +5 -5
  228. package/build-module/select-control/styles/select-control-styles.js.map +1 -1
  229. package/build-module/surface/styles.js +8 -8
  230. package/build-module/surface/styles.js.map +1 -1
  231. package/build-module/text/hook.js +5 -5
  232. package/build-module/text/hook.js.map +1 -1
  233. package/build-module/text/styles/text-mixins.native.js +2 -2
  234. package/build-module/text/styles/text-mixins.native.js.map +1 -1
  235. package/build-module/text/styles.js +7 -7
  236. package/build-module/text/styles.js.map +1 -1
  237. package/build-module/toggle-group-control/index.js +1 -0
  238. package/build-module/toggle-group-control/index.js.map +1 -1
  239. package/build-module/toggle-group-control/toggle-group-control/component.js +8 -1
  240. package/build-module/toggle-group-control/toggle-group-control/component.js.map +1 -1
  241. package/build-module/toggle-group-control/toggle-group-control/styles.js +11 -3
  242. package/build-module/toggle-group-control/toggle-group-control/styles.js.map +1 -1
  243. package/build-module/toggle-group-control/toggle-group-control/toggle-group-control-backdrop.js +86 -0
  244. package/build-module/toggle-group-control/toggle-group-control/toggle-group-control-backdrop.js.map +1 -0
  245. package/build-module/toggle-group-control/toggle-group-control-option/component.js +9 -76
  246. package/build-module/toggle-group-control/toggle-group-control-option/component.js.map +1 -1
  247. package/build-module/toggle-group-control/toggle-group-control-option-base/component.js +105 -0
  248. package/build-module/toggle-group-control/toggle-group-control-option-base/component.js.map +1 -0
  249. package/build-module/toggle-group-control/toggle-group-control-option-base/index.js +2 -0
  250. package/build-module/toggle-group-control/toggle-group-control-option-base/index.js.map +1 -0
  251. package/build-module/toggle-group-control/toggle-group-control-option-base/styles.js +55 -0
  252. package/build-module/toggle-group-control/toggle-group-control-option-base/styles.js.map +1 -0
  253. package/build-module/toggle-group-control/toggle-group-control-option-icon/component.js +50 -0
  254. package/build-module/toggle-group-control/toggle-group-control-option-icon/component.js.map +1 -0
  255. package/build-module/toggle-group-control/toggle-group-control-option-icon/index.js +2 -0
  256. package/build-module/toggle-group-control/toggle-group-control-option-icon/index.js.map +1 -0
  257. package/build-module/toolbar-dropdown-menu/index.js +1 -1
  258. package/build-module/toolbar-dropdown-menu/index.js.map +1 -1
  259. package/build-module/ui/spinner/component.js +1 -1
  260. package/build-module/ui/spinner/component.js.map +1 -1
  261. package/build-module/unit-control/index.js +7 -2
  262. package/build-module/unit-control/index.js.map +1 -1
  263. package/build-module/utils/colors-values.js +24 -26
  264. package/build-module/utils/colors-values.js.map +1 -1
  265. package/build-module/utils/config-values.js +8 -4
  266. package/build-module/utils/config-values.js.map +1 -1
  267. package/build-style/style-rtl.css +21 -4
  268. package/build-style/style.css +21 -4
  269. package/build-types/base-control/index.d.ts +35 -76
  270. package/build-types/base-control/index.d.ts.map +1 -1
  271. package/build-types/base-control/stories/index.d.ts +25 -0
  272. package/build-types/base-control/stories/index.d.ts.map +1 -0
  273. package/build-types/base-control/styles/base-control-styles.d.ts +6 -5
  274. package/build-types/base-control/styles/base-control-styles.d.ts.map +1 -1
  275. package/build-types/base-control/types.d.ts +41 -0
  276. package/build-types/base-control/types.d.ts.map +1 -0
  277. package/build-types/border-box-control/border-box-control/component.d.ts +4 -0
  278. package/build-types/border-box-control/border-box-control/component.d.ts.map +1 -0
  279. package/build-types/border-box-control/border-box-control/hook.d.ts +282 -0
  280. package/build-types/border-box-control/border-box-control/hook.d.ts.map +1 -0
  281. package/build-types/border-box-control/border-box-control/index.d.ts +3 -0
  282. package/build-types/border-box-control/border-box-control/index.d.ts.map +1 -0
  283. package/build-types/border-box-control/border-box-control-linked-button/component.d.ts +4 -0
  284. package/build-types/border-box-control/border-box-control-linked-button/component.d.ts.map +1 -0
  285. package/build-types/border-box-control/border-box-control-linked-button/hook.d.ts +266 -0
  286. package/build-types/border-box-control/border-box-control-linked-button/hook.d.ts.map +1 -0
  287. package/build-types/border-box-control/border-box-control-linked-button/index.d.ts +2 -0
  288. package/build-types/border-box-control/border-box-control-linked-button/index.d.ts.map +1 -0
  289. package/build-types/border-box-control/border-box-control-split-controls/component.d.ts +4 -0
  290. package/build-types/border-box-control/border-box-control-split-controls/component.d.ts.map +1 -0
  291. package/build-types/border-box-control/border-box-control-split-controls/hook.d.ts +274 -0
  292. package/build-types/border-box-control/border-box-control-split-controls/hook.d.ts.map +1 -0
  293. package/build-types/border-box-control/border-box-control-split-controls/index.d.ts +2 -0
  294. package/build-types/border-box-control/border-box-control-split-controls/index.d.ts.map +1 -0
  295. package/build-types/border-box-control/border-box-control-visualizer/component.d.ts +4 -0
  296. package/build-types/border-box-control/border-box-control-visualizer/component.d.ts.map +1 -0
  297. package/build-types/border-box-control/border-box-control-visualizer/hook.d.ts +266 -0
  298. package/build-types/border-box-control/border-box-control-visualizer/hook.d.ts.map +1 -0
  299. package/build-types/border-box-control/border-box-control-visualizer/index.d.ts +2 -0
  300. package/build-types/border-box-control/border-box-control-visualizer/index.d.ts.map +1 -0
  301. package/build-types/border-box-control/index.d.ts +4 -0
  302. package/build-types/border-box-control/index.d.ts.map +1 -0
  303. package/build-types/border-box-control/styles.d.ts +8 -0
  304. package/build-types/border-box-control/styles.d.ts.map +1 -0
  305. package/build-types/border-box-control/types.d.ts +91 -0
  306. package/build-types/border-box-control/types.d.ts.map +1 -0
  307. package/build-types/border-box-control/utils.d.ts +24 -0
  308. package/build-types/border-box-control/utils.d.ts.map +1 -0
  309. package/build-types/border-control/border-control/component.d.ts +4 -0
  310. package/build-types/border-control/border-control/component.d.ts.map +1 -0
  311. package/build-types/border-control/border-control/hook.d.ts +285 -0
  312. package/build-types/border-control/border-control/hook.d.ts.map +1 -0
  313. package/build-types/border-control/border-control/index.d.ts +3 -0
  314. package/build-types/border-control/border-control/index.d.ts.map +1 -0
  315. package/build-types/border-control/border-control-dropdown/component.d.ts +4 -0
  316. package/build-types/border-control/border-control-dropdown/component.d.ts.map +1 -0
  317. package/build-types/border-control/border-control-dropdown/hook.d.ts +280 -0
  318. package/build-types/border-control/border-control-dropdown/hook.d.ts.map +1 -0
  319. package/build-types/border-control/border-control-dropdown/index.d.ts +2 -0
  320. package/build-types/border-control/border-control-dropdown/index.d.ts.map +1 -0
  321. package/build-types/border-control/border-control-style-picker/component.d.ts +4 -0
  322. package/build-types/border-control/border-control-style-picker/component.d.ts.map +1 -0
  323. package/build-types/border-control/border-control-style-picker/hook.d.ts +269 -0
  324. package/build-types/border-control/border-control-style-picker/hook.d.ts.map +1 -0
  325. package/build-types/border-control/border-control-style-picker/index.d.ts +2 -0
  326. package/build-types/border-control/border-control-style-picker/index.d.ts.map +1 -0
  327. package/build-types/border-control/index.d.ts +3 -0
  328. package/build-types/border-control/index.d.ts.map +1 -0
  329. package/build-types/border-control/styles.d.ts +18 -0
  330. package/build-types/border-control/styles.d.ts.map +1 -0
  331. package/build-types/border-control/types.d.ts +163 -0
  332. package/build-types/border-control/types.d.ts.map +1 -0
  333. package/build-types/card/styles.d.ts.map +1 -1
  334. package/build-types/color-indicator/index.d.ts +7 -0
  335. package/build-types/color-indicator/index.d.ts.map +1 -0
  336. package/build-types/color-picker/styles.d.ts +1 -1
  337. package/build-types/input-control/index.d.ts +22 -3
  338. package/build-types/input-control/index.d.ts.map +1 -1
  339. package/build-types/input-control/input-field.d.ts +1 -1
  340. package/build-types/input-control/input-field.d.ts.map +1 -1
  341. package/build-types/input-control/stories/index.d.ts +17 -0
  342. package/build-types/input-control/stories/index.d.ts.map +1 -0
  343. package/build-types/input-control/styles/input-control-styles.d.ts.map +1 -1
  344. package/build-types/input-control/types.d.ts +73 -3
  345. package/build-types/input-control/types.d.ts.map +1 -1
  346. package/build-types/item-group/styles.d.ts.map +1 -1
  347. package/build-types/number-control/styles/number-control-styles.d.ts +1 -1
  348. package/build-types/text/test/index.d.ts +2 -0
  349. package/build-types/text/test/index.d.ts.map +1 -0
  350. package/build-types/toggle-group-control/index.d.ts +1 -0
  351. package/build-types/toggle-group-control/index.d.ts.map +1 -1
  352. package/build-types/toggle-group-control/toggle-group-control/component.d.ts.map +1 -1
  353. package/build-types/toggle-group-control/toggle-group-control/styles.d.ts +5 -0
  354. package/build-types/toggle-group-control/toggle-group-control/styles.d.ts.map +1 -1
  355. package/build-types/toggle-group-control/toggle-group-control/toggle-group-control-backdrop.d.ts +9 -0
  356. package/build-types/toggle-group-control/toggle-group-control/toggle-group-control-backdrop.d.ts.map +1 -0
  357. package/build-types/toggle-group-control/toggle-group-control-option/component.d.ts +6 -2
  358. package/build-types/toggle-group-control/toggle-group-control-option/component.d.ts.map +1 -1
  359. package/build-types/toggle-group-control/toggle-group-control-option-base/component.d.ts +25 -0
  360. package/build-types/toggle-group-control/toggle-group-control-option-base/component.d.ts.map +1 -0
  361. package/build-types/toggle-group-control/toggle-group-control-option-base/index.d.ts +2 -0
  362. package/build-types/toggle-group-control/toggle-group-control-option-base/index.d.ts.map +1 -0
  363. package/build-types/toggle-group-control/{toggle-group-control-option → toggle-group-control-option-base}/styles.d.ts +0 -0
  364. package/build-types/toggle-group-control/toggle-group-control-option-base/styles.d.ts.map +1 -0
  365. package/build-types/toggle-group-control/toggle-group-control-option-icon/component.d.ts +37 -0
  366. package/build-types/toggle-group-control/toggle-group-control-option-icon/component.d.ts.map +1 -0
  367. package/build-types/toggle-group-control/toggle-group-control-option-icon/index.d.ts +2 -0
  368. package/build-types/toggle-group-control/toggle-group-control-option-icon/index.d.ts.map +1 -0
  369. package/build-types/toggle-group-control/types.d.ts +24 -8
  370. package/build-types/toggle-group-control/types.d.ts.map +1 -1
  371. package/build-types/ui/form-group/form-group.d.ts +2 -2
  372. package/build-types/unit-control/index.d.ts +6 -2
  373. package/build-types/unit-control/index.d.ts.map +1 -1
  374. package/build-types/unit-control/types.d.ts +5 -1
  375. package/build-types/unit-control/types.d.ts.map +1 -1
  376. package/build-types/utils/colors-values.d.ts +68 -148
  377. package/build-types/utils/colors-values.d.ts.map +1 -1
  378. package/build-types/utils/config-values.d.ts +71 -71
  379. package/build-types/utils/config-values.d.ts.map +1 -1
  380. package/package.json +17 -17
  381. package/src/alignment-matrix-control/styles/alignment-matrix-control-styles.js +5 -3
  382. package/src/animate/README.md +1 -1
  383. package/src/base-control/README.md +11 -11
  384. package/src/base-control/index.tsx +124 -0
  385. package/src/base-control/stories/index.tsx +80 -0
  386. package/src/base-control/styles/{base-control-styles.js → base-control-styles.ts} +0 -0
  387. package/src/base-control/types.ts +42 -0
  388. package/src/border-box-control/border-box-control/README.md +178 -0
  389. package/src/border-box-control/border-box-control/component.tsx +123 -0
  390. package/src/border-box-control/border-box-control/hook.ts +119 -0
  391. package/src/border-box-control/border-box-control/index.ts +2 -0
  392. package/src/border-box-control/border-box-control-linked-button/component.tsx +50 -0
  393. package/src/border-box-control/border-box-control-linked-button/hook.ts +30 -0
  394. package/src/border-box-control/border-box-control-linked-button/index.ts +1 -0
  395. package/src/border-box-control/border-box-control-split-controls/component.tsx +90 -0
  396. package/src/border-box-control/border-box-control-split-controls/hook.ts +34 -0
  397. package/src/border-box-control/border-box-control-split-controls/index.ts +1 -0
  398. package/src/border-box-control/border-box-control-visualizer/component.tsx +28 -0
  399. package/src/border-box-control/border-box-control-visualizer/hook.ts +30 -0
  400. package/src/border-box-control/border-box-control-visualizer/index.ts +1 -0
  401. package/src/border-box-control/index.ts +3 -0
  402. package/src/border-box-control/stories/index.js +104 -0
  403. package/src/border-box-control/styles.ts +69 -0
  404. package/src/border-box-control/test/index.js +354 -0
  405. package/src/border-box-control/test/utils.js +305 -0
  406. package/src/border-box-control/types.ts +98 -0
  407. package/src/border-box-control/utils.ts +151 -0
  408. package/src/border-control/border-control/README.md +181 -0
  409. package/src/border-control/border-control/component.tsx +112 -0
  410. package/src/border-control/border-control/hook.ts +145 -0
  411. package/src/border-control/border-control/index.ts +2 -0
  412. package/src/border-control/border-control-dropdown/component.tsx +252 -0
  413. package/src/border-control/border-control-dropdown/hook.ts +98 -0
  414. package/src/border-control/border-control-dropdown/index.ts +1 -0
  415. package/src/border-control/border-control-style-picker/component.tsx +89 -0
  416. package/src/border-control/border-control-style-picker/hook.ts +34 -0
  417. package/src/border-control/border-control-style-picker/index.ts +1 -0
  418. package/src/border-control/index.ts +2 -0
  419. package/src/border-control/stories/index.js +118 -0
  420. package/src/border-control/styles.ts +190 -0
  421. package/src/border-control/test/index.js +436 -0
  422. package/src/border-control/types.ts +173 -0
  423. package/src/card/styles.js +11 -5
  424. package/src/card/test/__snapshots__/index.js.snap +83 -66
  425. package/src/card/test/index.js +7 -5
  426. package/src/color-palette/README.md +6 -0
  427. package/src/color-palette/stories/index.js +8 -1
  428. package/src/custom-select-control/index.js +7 -1
  429. package/src/custom-select-control/style.scss +5 -1
  430. package/src/disabled/README.md +7 -10
  431. package/src/flyout/test/__snapshots__/index.js.snap +7 -7
  432. package/src/form-toggle/README.md +1 -1
  433. package/src/guide/index.js +12 -13
  434. package/src/guide/style.scss +0 -4
  435. package/src/heading/hook.ts +1 -1
  436. package/src/heading/test/__snapshots__/index.js.snap +3 -3
  437. package/src/index.js +8 -0
  438. package/src/input-control/README.md +2 -2
  439. package/src/input-control/index.tsx +22 -3
  440. package/src/input-control/stories/index.tsx +63 -0
  441. package/src/input-control/styles/input-control-styles.tsx +1 -2
  442. package/src/input-control/types.ts +73 -2
  443. package/src/item-group/styles.ts +1 -0
  444. package/src/item-group/test/__snapshots__/index.js.snap +11 -10
  445. package/src/mobile/picker/index.android.js +0 -1
  446. package/src/navigation/styles/navigation-styles.js +5 -5
  447. package/src/notice/index.native.js +44 -54
  448. package/src/notice/list.native.js +27 -51
  449. package/src/notice/style.native.scss +1 -0
  450. package/src/palette-edit/index.js +8 -2
  451. package/src/query-controls/README.md +2 -2
  452. package/src/sandbox/index.js +2 -2
  453. package/src/select-control/styles/select-control-styles.ts +1 -1
  454. package/src/surface/styles.js +1 -1
  455. package/src/surface/test/__snapshots__/index.js.snap +11 -11
  456. package/src/text/hook.js +1 -1
  457. package/src/text/styles/text-mixins.native.js +2 -2
  458. package/src/text/styles.js +1 -1
  459. package/src/text/test/__snapshots__/{index.js.snap → index.tsx.snap} +16 -0
  460. package/src/text/test/{index.js → index.tsx} +12 -6
  461. package/src/toggle-group-control/index.ts +1 -0
  462. package/src/toggle-group-control/stories/index.js +37 -7
  463. package/src/toggle-group-control/test/__snapshots__/index.js.snap +269 -5
  464. package/src/toggle-group-control/test/index.js +43 -10
  465. package/src/toggle-group-control/toggle-group-control/component.tsx +10 -0
  466. package/src/toggle-group-control/toggle-group-control/styles.ts +14 -0
  467. package/src/toggle-group-control/toggle-group-control/toggle-group-control-backdrop.tsx +86 -0
  468. package/src/toggle-group-control/toggle-group-control-option/README.md +8 -5
  469. package/src/toggle-group-control/toggle-group-control-option/component.tsx +18 -94
  470. package/src/toggle-group-control/toggle-group-control-option-base/README.md +27 -0
  471. package/src/toggle-group-control/toggle-group-control-option-base/component.tsx +129 -0
  472. package/src/toggle-group-control/toggle-group-control-option-base/index.ts +1 -0
  473. package/src/toggle-group-control/{toggle-group-control-option → toggle-group-control-option-base}/styles.ts +4 -1
  474. package/src/toggle-group-control/toggle-group-control-option-icon/README.md +56 -0
  475. package/src/toggle-group-control/toggle-group-control-option-icon/component.tsx +56 -0
  476. package/src/toggle-group-control/toggle-group-control-option-icon/index.ts +1 -0
  477. package/src/toggle-group-control/types.ts +33 -8
  478. package/src/toolbar-dropdown-menu/index.js +1 -1
  479. package/src/toolbar-group/style.scss +20 -0
  480. package/src/tools-panel/test/__snapshots__/index.js.snap +9 -9
  481. package/src/ui/spinner/component.js +1 -1
  482. package/src/ui/spinner/test/__snapshots__/index.js.snap +3 -3
  483. package/src/unit-control/README.md +6 -0
  484. package/src/unit-control/index.tsx +6 -1
  485. package/src/unit-control/test/index.js +120 -0
  486. package/src/unit-control/types.ts +5 -1
  487. package/src/utils/colors-values.js +22 -25
  488. package/src/utils/config-values.js +9 -4
  489. package/tsconfig.json +11 -2
  490. package/tsconfig.tsbuildinfo +1 -1
  491. package/build/guide/finish-button.js +0 -44
  492. package/build/guide/finish-button.js.map +0 -1
  493. package/build/toggle-group-control/toggle-group-control-option/styles.js +0 -66
  494. package/build/toggle-group-control/toggle-group-control-option/styles.js.map +0 -1
  495. package/build-module/guide/finish-button.js +0 -34
  496. package/build-module/guide/finish-button.js.map +0 -1
  497. package/build-module/toggle-group-control/toggle-group-control-option/styles.js +0 -55
  498. package/build-module/toggle-group-control/toggle-group-control-option/styles.js.map +0 -1
  499. package/build-types/toggle-group-control/toggle-group-control-option/styles.d.ts.map +0 -1
  500. package/src/base-control/index.js +0 -118
  501. package/src/base-control/stories/index.js +0 -81
  502. package/src/guide/finish-button.js +0 -26
  503. package/src/guide/test/finish-button.js +0 -49
  504. package/src/input-control/stories/index.js +0 -71
@@ -0,0 +1,130 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.useBorderControl = useBorderControl;
7
+
8
+ var _element = require("@wordpress/element");
9
+
10
+ var styles = _interopRequireWildcard(require("../styles"));
11
+
12
+ var _utils = require("../../unit-control/utils");
13
+
14
+ var _context = require("../../ui/context");
15
+
16
+ var _useCx = require("../../utils/hooks/use-cx");
17
+
18
+ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
19
+
20
+ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
21
+
22
+ /**
23
+ * WordPress dependencies
24
+ */
25
+
26
+ /**
27
+ * Internal dependencies
28
+ */
29
+ const sanitizeBorder = border => {
30
+ const hasNoWidth = (border === null || border === void 0 ? void 0 : border.width) === undefined || border.width === '';
31
+ const hasNoColor = (border === null || border === void 0 ? void 0 : border.color) === undefined; // If width and color are undefined, unset any style selection as well.
32
+
33
+ if (hasNoWidth && hasNoColor) {
34
+ return undefined;
35
+ }
36
+
37
+ return border;
38
+ };
39
+
40
+ function useBorderControl(props) {
41
+ const {
42
+ className,
43
+ isCompact,
44
+ onChange,
45
+ shouldSanitizeBorder = true,
46
+ value: border,
47
+ width,
48
+ ...otherProps
49
+ } = (0, _context.useContextSystem)(props, 'BorderControl');
50
+ const [widthValue, originalWidthUnit] = (0, _utils.parseQuantityAndUnitFromRawValue)(border === null || border === void 0 ? void 0 : border.width);
51
+ const widthUnit = originalWidthUnit || 'px';
52
+ const hadPreviousZeroWidth = widthValue === 0;
53
+ const [colorSelection, setColorSelection] = (0, _element.useState)();
54
+ const [styleSelection, setStyleSelection] = (0, _element.useState)();
55
+ const onBorderChange = (0, _element.useCallback)(newBorder => {
56
+ if (shouldSanitizeBorder) {
57
+ return onChange(sanitizeBorder(newBorder));
58
+ }
59
+
60
+ onChange(newBorder);
61
+ }, [onChange, shouldSanitizeBorder, sanitizeBorder]);
62
+ const onWidthChange = (0, _element.useCallback)(newWidth => {
63
+ const newWidthValue = newWidth === '' ? undefined : newWidth;
64
+ const [parsedValue] = (0, _utils.parseQuantityAndUnitFromRawValue)(newWidth);
65
+ const hasZeroWidth = parsedValue === 0;
66
+ const updatedBorder = { ...border,
67
+ width: newWidthValue
68
+ }; // Setting the border width explicitly to zero will also set the
69
+ // border style to `none` and clear the border color.
70
+
71
+ if (hasZeroWidth && !hadPreviousZeroWidth) {
72
+ // Before clearing the color and style selections, keep track of
73
+ // the current selections so they can be restored when the width
74
+ // changes to a non-zero value.
75
+ setColorSelection(border === null || border === void 0 ? void 0 : border.color);
76
+ setStyleSelection(border === null || border === void 0 ? void 0 : border.style); // Clear the color and style border properties.
77
+
78
+ updatedBorder.color = undefined;
79
+ updatedBorder.style = 'none';
80
+ } // Selection has changed from zero border width to non-zero width.
81
+
82
+
83
+ if (!hasZeroWidth && hadPreviousZeroWidth) {
84
+ // Restore previous border color and style selections if width
85
+ // is now not zero.
86
+ if (updatedBorder.color === undefined) {
87
+ updatedBorder.color = colorSelection;
88
+ }
89
+
90
+ if (updatedBorder.style === 'none') {
91
+ updatedBorder.style = styleSelection;
92
+ }
93
+ }
94
+
95
+ onBorderChange(updatedBorder);
96
+ }, [border, hadPreviousZeroWidth, onBorderChange]);
97
+ const onSliderChange = (0, _element.useCallback)(value => {
98
+ onWidthChange(`${value}${widthUnit}`);
99
+ }, [onWidthChange, widthUnit]); // Generate class names.
100
+
101
+ const cx = (0, _useCx.useCx)();
102
+ const classes = (0, _element.useMemo)(() => {
103
+ return cx(styles.borderControl, className);
104
+ }, [className, cx]);
105
+ const innerWrapperClassName = (0, _element.useMemo)(() => {
106
+ const wrapperWidth = isCompact ? '90px' : width;
107
+ const widthStyle = !!wrapperWidth && styles.wrapperWidth(wrapperWidth);
108
+ return cx(styles.innerWrapper(), widthStyle);
109
+ }, [isCompact, width, cx]);
110
+ const widthControlClassName = (0, _element.useMemo)(() => {
111
+ return cx(styles.borderWidthControl());
112
+ }, [cx]);
113
+ const sliderClassName = (0, _element.useMemo)(() => {
114
+ return cx(styles.borderSlider());
115
+ }, [cx]);
116
+ return { ...otherProps,
117
+ className: classes,
118
+ innerWrapperClassName,
119
+ onBorderChange,
120
+ onSliderChange,
121
+ onWidthChange,
122
+ previousStyleSelection: styleSelection,
123
+ sliderClassName,
124
+ value: border,
125
+ widthControlClassName,
126
+ widthUnit,
127
+ widthValue
128
+ };
129
+ }
130
+ //# sourceMappingURL=hook.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["@wordpress/components/src/border-control/border-control/hook.ts"],"names":["sanitizeBorder","border","hasNoWidth","width","undefined","hasNoColor","color","useBorderControl","props","className","isCompact","onChange","shouldSanitizeBorder","value","otherProps","widthValue","originalWidthUnit","widthUnit","hadPreviousZeroWidth","colorSelection","setColorSelection","styleSelection","setStyleSelection","onBorderChange","newBorder","onWidthChange","newWidth","newWidthValue","parsedValue","hasZeroWidth","updatedBorder","style","onSliderChange","cx","classes","styles","borderControl","innerWrapperClassName","wrapperWidth","widthStyle","innerWrapper","widthControlClassName","borderWidthControl","sliderClassName","borderSlider","previousStyleSelection"],"mappings":"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","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useCallback, useMemo, useState } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport * as styles from '../styles';\nimport { parseQuantityAndUnitFromRawValue } from '../../unit-control/utils';\nimport { useContextSystem, WordPressComponentProps } from '../../ui/context';\nimport { useCx } from '../../utils/hooks/use-cx';\n\nimport type { Border, BorderControlProps } from '../types';\n\nconst sanitizeBorder = ( border?: Border ) => {\n\tconst hasNoWidth = border?.width === undefined || border.width === '';\n\tconst hasNoColor = border?.color === undefined;\n\n\t// If width and color are undefined, unset any style selection as well.\n\tif ( hasNoWidth && hasNoColor ) {\n\t\treturn undefined;\n\t}\n\n\treturn border;\n};\n\nexport function useBorderControl(\n\tprops: WordPressComponentProps< BorderControlProps, 'div' >\n) {\n\tconst {\n\t\tclassName,\n\t\tisCompact,\n\t\tonChange,\n\t\tshouldSanitizeBorder = true,\n\t\tvalue: border,\n\t\twidth,\n\t\t...otherProps\n\t} = useContextSystem( props, 'BorderControl' );\n\n\tconst [ widthValue, originalWidthUnit ] = parseQuantityAndUnitFromRawValue(\n\t\tborder?.width\n\t);\n\tconst widthUnit = originalWidthUnit || 'px';\n\tconst hadPreviousZeroWidth = widthValue === 0;\n\n\tconst [ colorSelection, setColorSelection ] = useState< string >();\n\tconst [ styleSelection, setStyleSelection ] = useState< string >();\n\n\tconst onBorderChange = useCallback(\n\t\t( newBorder?: Border ) => {\n\t\t\tif ( shouldSanitizeBorder ) {\n\t\t\t\treturn onChange( sanitizeBorder( newBorder ) );\n\t\t\t}\n\n\t\t\tonChange( newBorder );\n\t\t},\n\t\t[ onChange, shouldSanitizeBorder, sanitizeBorder ]\n\t);\n\n\tconst onWidthChange = useCallback(\n\t\t( newWidth?: string ) => {\n\t\t\tconst newWidthValue = newWidth === '' ? undefined : newWidth;\n\t\t\tconst [ parsedValue ] = parseQuantityAndUnitFromRawValue(\n\t\t\t\tnewWidth\n\t\t\t);\n\t\t\tconst hasZeroWidth = parsedValue === 0;\n\n\t\t\tconst updatedBorder = { ...border, width: newWidthValue };\n\n\t\t\t// Setting the border width explicitly to zero will also set the\n\t\t\t// border style to `none` and clear the border color.\n\t\t\tif ( hasZeroWidth && ! hadPreviousZeroWidth ) {\n\t\t\t\t// Before clearing the color and style selections, keep track of\n\t\t\t\t// the current selections so they can be restored when the width\n\t\t\t\t// changes to a non-zero value.\n\t\t\t\tsetColorSelection( border?.color );\n\t\t\t\tsetStyleSelection( border?.style );\n\n\t\t\t\t// Clear the color and style border properties.\n\t\t\t\tupdatedBorder.color = undefined;\n\t\t\t\tupdatedBorder.style = 'none';\n\t\t\t}\n\n\t\t\t// Selection has changed from zero border width to non-zero width.\n\t\t\tif ( ! hasZeroWidth && hadPreviousZeroWidth ) {\n\t\t\t\t// Restore previous border color and style selections if width\n\t\t\t\t// is now not zero.\n\t\t\t\tif ( updatedBorder.color === undefined ) {\n\t\t\t\t\tupdatedBorder.color = colorSelection;\n\t\t\t\t}\n\t\t\t\tif ( updatedBorder.style === 'none' ) {\n\t\t\t\t\tupdatedBorder.style = styleSelection;\n\t\t\t\t}\n\t\t\t}\n\n\t\t\tonBorderChange( updatedBorder );\n\t\t},\n\t\t[ border, hadPreviousZeroWidth, onBorderChange ]\n\t);\n\n\tconst onSliderChange = useCallback(\n\t\t( value: string ) => {\n\t\t\tonWidthChange( `${ value }${ widthUnit }` );\n\t\t},\n\t\t[ onWidthChange, widthUnit ]\n\t);\n\n\t// Generate class names.\n\tconst cx = useCx();\n\tconst classes = useMemo( () => {\n\t\treturn cx( styles.borderControl, className );\n\t}, [ className, cx ] );\n\n\tconst innerWrapperClassName = useMemo( () => {\n\t\tconst wrapperWidth = isCompact ? '90px' : width;\n\t\tconst widthStyle =\n\t\t\t!! wrapperWidth && styles.wrapperWidth( wrapperWidth );\n\n\t\treturn cx( styles.innerWrapper(), widthStyle );\n\t}, [ isCompact, width, cx ] );\n\n\tconst widthControlClassName = useMemo( () => {\n\t\treturn cx( styles.borderWidthControl() );\n\t}, [ cx ] );\n\n\tconst sliderClassName = useMemo( () => {\n\t\treturn cx( styles.borderSlider() );\n\t}, [ cx ] );\n\n\treturn {\n\t\t...otherProps,\n\t\tclassName: classes,\n\t\tinnerWrapperClassName,\n\t\tonBorderChange,\n\t\tonSliderChange,\n\t\tonWidthChange,\n\t\tpreviousStyleSelection: styleSelection,\n\t\tsliderClassName,\n\t\tvalue: border,\n\t\twidthControlClassName,\n\t\twidthUnit,\n\t\twidthValue,\n\t};\n}\n"]}
@@ -0,0 +1,24 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ Object.defineProperty(exports, "BorderControl", {
9
+ enumerable: true,
10
+ get: function () {
11
+ return _component.default;
12
+ }
13
+ });
14
+ Object.defineProperty(exports, "useBorderControl", {
15
+ enumerable: true,
16
+ get: function () {
17
+ return _hook.useBorderControl;
18
+ }
19
+ });
20
+
21
+ var _component = _interopRequireDefault(require("./component"));
22
+
23
+ var _hook = require("./hook");
24
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["@wordpress/components/src/border-control/border-control/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;;;;;;;AAAA;;AACA","sourcesContent":["export { default as BorderControl } from './component';\nexport { useBorderControl } from './hook';\n"]}
@@ -0,0 +1,196 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.default = void 0;
9
+
10
+ var _element = require("@wordpress/element");
11
+
12
+ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
13
+
14
+ var _i18n = require("@wordpress/i18n");
15
+
16
+ var _icons = require("@wordpress/icons");
17
+
18
+ var _borderControlStylePicker = _interopRequireDefault(require("../border-control-style-picker"));
19
+
20
+ var _button = _interopRequireDefault(require("../../button"));
21
+
22
+ var _colorIndicator = _interopRequireDefault(require("../../color-indicator"));
23
+
24
+ var _colorPalette = _interopRequireDefault(require("../../color-palette"));
25
+
26
+ var _dropdown = _interopRequireDefault(require("../../dropdown"));
27
+
28
+ var _hStack = require("../../h-stack");
29
+
30
+ var _vStack = require("../../v-stack");
31
+
32
+ var _context = require("../../ui/context");
33
+
34
+ var _hook = require("./hook");
35
+
36
+ var _baseControlStyles = require("../../base-control/styles/base-control-styles");
37
+
38
+ /**
39
+ * External dependencies
40
+ */
41
+
42
+ /**
43
+ * WordPress dependencies
44
+ */
45
+
46
+ /**
47
+ * Internal dependencies
48
+ */
49
+ const noop = () => undefined;
50
+
51
+ const getColorObject = (colorValue, colors, hasMultipleColorOrigins) => {
52
+ if (!colorValue || !colors) {
53
+ return;
54
+ }
55
+
56
+ if (hasMultipleColorOrigins) {
57
+ let matchedColor;
58
+ colors.some(origin => origin.colors.some(color => {
59
+ if (color.color === colorValue) {
60
+ matchedColor = color;
61
+ return true;
62
+ }
63
+
64
+ return false;
65
+ }));
66
+ return matchedColor;
67
+ }
68
+
69
+ return colors.find(color => color.color === colorValue);
70
+ };
71
+
72
+ const getToggleAriaLabel = (colorValue, colorObject, style, isStyleEnabled) => {
73
+ if (isStyleEnabled) {
74
+ if (colorObject) {
75
+ return style ? (0, _i18n.sprintf)( // translators: %1$s: The name of the color e.g. "vivid red". %2$s: The color's hex code e.g.: "#f00:". %3$s: The current border style selection e.g. "solid".
76
+ 'Border color and style picker. The currently selected color is called "%1$s" and has a value of "%2$s". The currently selected style is "%3$s".', colorObject.name, colorObject.color, style) : (0, _i18n.sprintf)( // translators: %1$s: The name of the color e.g. "vivid red". %2$s: The color's hex code e.g.: "#f00:".
77
+ 'Border color and style picker. The currently selected color is called "%1$s" and has a value of "%2$s".', colorObject.name, colorObject.color);
78
+ }
79
+
80
+ if (colorValue) {
81
+ return style ? (0, _i18n.sprintf)( // translators: %1$s: The color's hex code e.g.: "#f00:". %2$s: The current border style selection e.g. "solid".
82
+ 'Border color and style picker. The currently selected color has a value of "%1$s". The currently selected style is "%2$s".', colorValue, style) : (0, _i18n.sprintf)( // translators: %1$s: The color's hex code e.g.: "#f00:".
83
+ 'Border color and style picker. The currently selected color has a value of "%1$s".', colorValue);
84
+ }
85
+
86
+ return (0, _i18n.__)('Border color and style picker.');
87
+ }
88
+
89
+ if (colorObject) {
90
+ return (0, _i18n.sprintf)( // translators: %1$s: The name of the color e.g. "vivid red". %2$s: The color's hex code e.g.: "#f00:".
91
+ 'Border color picker. The currently selected color is called "%1$s" and has a value of "%2$s".', colorObject.name, colorObject.color);
92
+ }
93
+
94
+ if (colorValue) {
95
+ return (0, _i18n.sprintf)( // translators: %1$s: The color's hex code e.g.: "#f00:".
96
+ 'Border color picker. The currently selected color has a value of "%1$s".', colorValue);
97
+ }
98
+
99
+ return (0, _i18n.__)('Border color picker.');
100
+ };
101
+
102
+ const BorderControlDropdown = (props, forwardedRef) => {
103
+ const {
104
+ __experimentalHasMultipleOrigins,
105
+ __experimentalIsRenderedInSidebar,
106
+ border,
107
+ colors,
108
+ disableCustomColors,
109
+ enableAlpha,
110
+ indicatorClassName,
111
+ indicatorWrapperClassName,
112
+ onReset,
113
+ onColorChange,
114
+ onStyleChange,
115
+ popoverClassName,
116
+ popoverContentClassName,
117
+ popoverControlsClassName,
118
+ resetButtonClassName,
119
+ showDropdownHeader,
120
+ enableStyle = true,
121
+ ...otherProps
122
+ } = (0, _hook.useBorderControlDropdown)(props);
123
+ const {
124
+ color,
125
+ style
126
+ } = border || {};
127
+ const colorObject = getColorObject(color, colors, !!__experimentalHasMultipleOrigins);
128
+ const toggleAriaLabel = getToggleAriaLabel(color, colorObject, style, enableStyle);
129
+ const dropdownPosition = __experimentalIsRenderedInSidebar ? 'bottom left' : undefined;
130
+
131
+ const renderToggle = _ref => {
132
+ let {
133
+ onToggle = noop
134
+ } = _ref;
135
+ return (0, _element.createElement)(_button.default, {
136
+ onClick: onToggle,
137
+ variant: "tertiary",
138
+ "aria-label": toggleAriaLabel,
139
+ position: dropdownPosition
140
+ }, (0, _element.createElement)("span", {
141
+ className: indicatorWrapperClassName
142
+ }, (0, _element.createElement)(_colorIndicator.default, {
143
+ className: indicatorClassName,
144
+ colorValue: color
145
+ })));
146
+ };
147
+
148
+ const renderContent = _ref2 => {
149
+ let {
150
+ onClose
151
+ } = _ref2;
152
+ return (0, _element.createElement)(_element.Fragment, null, (0, _element.createElement)(_vStack.VStack, {
153
+ className: popoverControlsClassName,
154
+ spacing: 6
155
+ }, showDropdownHeader ? (0, _element.createElement)(_hStack.HStack, null, (0, _element.createElement)(_baseControlStyles.StyledLabel, null, (0, _i18n.__)('Border color')), (0, _element.createElement)(_button.default, {
156
+ isSmall: true,
157
+ label: (0, _i18n.__)('Close border color'),
158
+ icon: _icons.closeSmall,
159
+ onClick: onClose
160
+ })) : undefined, (0, _element.createElement)(_colorPalette.default, {
161
+ className: popoverContentClassName,
162
+ value: color,
163
+ onChange: onColorChange,
164
+ colors,
165
+ disableCustomColors,
166
+ __experimentalHasMultipleOrigins: __experimentalHasMultipleOrigins,
167
+ __experimentalIsRenderedInSidebar: __experimentalIsRenderedInSidebar,
168
+ clearable: false,
169
+ enableAlpha: enableAlpha
170
+ }), enableStyle && (0, _element.createElement)(_borderControlStylePicker.default, {
171
+ label: (0, _i18n.__)('Style'),
172
+ value: style,
173
+ onChange: onStyleChange
174
+ })), (0, _element.createElement)(_button.default, {
175
+ className: resetButtonClassName,
176
+ variant: "tertiary",
177
+ onClick: () => {
178
+ onReset();
179
+ onClose();
180
+ }
181
+ }, (0, _i18n.__)('Reset to default')));
182
+ };
183
+
184
+ return (0, _element.createElement)(_dropdown.default, (0, _extends2.default)({
185
+ renderToggle: renderToggle,
186
+ renderContent: renderContent,
187
+ contentClassName: popoverClassName
188
+ }, otherProps, {
189
+ ref: forwardedRef
190
+ }));
191
+ };
192
+
193
+ const ConnectedBorderControlDropdown = (0, _context.contextConnect)(BorderControlDropdown, 'BorderControlDropdown');
194
+ var _default = ConnectedBorderControlDropdown;
195
+ exports.default = _default;
196
+ //# sourceMappingURL=component.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["@wordpress/components/src/border-control/border-control-dropdown/component.tsx"],"names":["noop","undefined","getColorObject","colorValue","colors","hasMultipleColorOrigins","matchedColor","some","origin","color","find","getToggleAriaLabel","colorObject","style","isStyleEnabled","name","BorderControlDropdown","props","forwardedRef","__experimentalHasMultipleOrigins","__experimentalIsRenderedInSidebar","border","disableCustomColors","enableAlpha","indicatorClassName","indicatorWrapperClassName","onReset","onColorChange","onStyleChange","popoverClassName","popoverContentClassName","popoverControlsClassName","resetButtonClassName","showDropdownHeader","enableStyle","otherProps","toggleAriaLabel","dropdownPosition","renderToggle","onToggle","renderContent","onClose","closeSmall","ConnectedBorderControlDropdown"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport type { CSSProperties } from 'react';\n\n/**\n * WordPress dependencies\n */\nimport { __, sprintf } from '@wordpress/i18n';\nimport { closeSmall } from '@wordpress/icons';\n\n/**\n * Internal dependencies\n */\nimport BorderControlStylePicker from '../border-control-style-picker';\nimport Button from '../../button';\nimport ColorIndicator from '../../color-indicator';\nimport ColorPalette from '../../color-palette';\nimport Dropdown from '../../dropdown';\nimport { HStack } from '../../h-stack';\nimport { VStack } from '../../v-stack';\nimport { contextConnect, WordPressComponentProps } from '../../ui/context';\nimport { useBorderControlDropdown } from './hook';\nimport { StyledLabel } from '../../base-control/styles/base-control-styles';\n\nimport type {\n\tColor,\n\tColorOrigin,\n\tColors,\n\tDropdownProps,\n\tPopoverProps,\n} from '../types';\n\nconst noop = () => undefined;\nconst getColorObject = (\n\tcolorValue: CSSProperties[ 'borderColor' ],\n\tcolors: Colors | undefined,\n\thasMultipleColorOrigins: boolean\n) => {\n\tif ( ! colorValue || ! colors ) {\n\t\treturn;\n\t}\n\n\tif ( hasMultipleColorOrigins ) {\n\t\tlet matchedColor;\n\n\t\t( colors as ColorOrigin[] ).some( ( origin ) =>\n\t\t\torigin.colors.some( ( color ) => {\n\t\t\t\tif ( color.color === colorValue ) {\n\t\t\t\t\tmatchedColor = color;\n\t\t\t\t\treturn true;\n\t\t\t\t}\n\n\t\t\t\treturn false;\n\t\t\t} )\n\t\t);\n\n\t\treturn matchedColor;\n\t}\n\n\treturn ( colors as Color[] ).find(\n\t\t( color ) => color.color === colorValue\n\t);\n};\n\nconst getToggleAriaLabel = (\n\tcolorValue: CSSProperties[ 'borderColor' ],\n\tcolorObject: Color | undefined,\n\tstyle: CSSProperties[ 'borderStyle' ],\n\tisStyleEnabled: boolean\n) => {\n\tif ( isStyleEnabled ) {\n\t\tif ( colorObject ) {\n\t\t\treturn style\n\t\t\t\t? sprintf(\n\t\t\t\t\t\t// translators: %1$s: The name of the color e.g. \"vivid red\". %2$s: The color's hex code e.g.: \"#f00:\". %3$s: The current border style selection e.g. \"solid\".\n\t\t\t\t\t\t'Border color and style picker. The currently selected color is called \"%1$s\" and has a value of \"%2$s\". The currently selected style is \"%3$s\".',\n\t\t\t\t\t\tcolorObject.name,\n\t\t\t\t\t\tcolorObject.color,\n\t\t\t\t\t\tstyle\n\t\t\t\t )\n\t\t\t\t: sprintf(\n\t\t\t\t\t\t// translators: %1$s: The name of the color e.g. \"vivid red\". %2$s: The color's hex code e.g.: \"#f00:\".\n\t\t\t\t\t\t'Border color and style picker. The currently selected color is called \"%1$s\" and has a value of \"%2$s\".',\n\t\t\t\t\t\tcolorObject.name,\n\t\t\t\t\t\tcolorObject.color\n\t\t\t\t );\n\t\t}\n\n\t\tif ( colorValue ) {\n\t\t\treturn style\n\t\t\t\t? sprintf(\n\t\t\t\t\t\t// translators: %1$s: The color's hex code e.g.: \"#f00:\". %2$s: The current border style selection e.g. \"solid\".\n\t\t\t\t\t\t'Border color and style picker. The currently selected color has a value of \"%1$s\". The currently selected style is \"%2$s\".',\n\t\t\t\t\t\tcolorValue,\n\t\t\t\t\t\tstyle\n\t\t\t\t )\n\t\t\t\t: sprintf(\n\t\t\t\t\t\t// translators: %1$s: The color's hex code e.g.: \"#f00:\".\n\t\t\t\t\t\t'Border color and style picker. The currently selected color has a value of \"%1$s\".',\n\t\t\t\t\t\tcolorValue\n\t\t\t\t );\n\t\t}\n\n\t\treturn __( 'Border color and style picker.' );\n\t}\n\n\tif ( colorObject ) {\n\t\treturn sprintf(\n\t\t\t// translators: %1$s: The name of the color e.g. \"vivid red\". %2$s: The color's hex code e.g.: \"#f00:\".\n\t\t\t'Border color picker. The currently selected color is called \"%1$s\" and has a value of \"%2$s\".',\n\t\t\tcolorObject.name,\n\t\t\tcolorObject.color\n\t\t);\n\t}\n\n\tif ( colorValue ) {\n\t\treturn sprintf(\n\t\t\t// translators: %1$s: The color's hex code e.g.: \"#f00:\".\n\t\t\t'Border color picker. The currently selected color has a value of \"%1$s\".',\n\t\t\tcolorValue\n\t\t);\n\t}\n\n\treturn __( 'Border color picker.' );\n};\n\nconst BorderControlDropdown = (\n\tprops: WordPressComponentProps< DropdownProps, 'div' >,\n\tforwardedRef: React.ForwardedRef< any >\n) => {\n\tconst {\n\t\t__experimentalHasMultipleOrigins,\n\t\t__experimentalIsRenderedInSidebar,\n\t\tborder,\n\t\tcolors,\n\t\tdisableCustomColors,\n\t\tenableAlpha,\n\t\tindicatorClassName,\n\t\tindicatorWrapperClassName,\n\t\tonReset,\n\t\tonColorChange,\n\t\tonStyleChange,\n\t\tpopoverClassName,\n\t\tpopoverContentClassName,\n\t\tpopoverControlsClassName,\n\t\tresetButtonClassName,\n\t\tshowDropdownHeader,\n\t\tenableStyle = true,\n\t\t...otherProps\n\t} = useBorderControlDropdown( props );\n\n\tconst { color, style } = border || {};\n\tconst colorObject = getColorObject(\n\t\tcolor,\n\t\tcolors,\n\t\t!! __experimentalHasMultipleOrigins\n\t);\n\n\tconst toggleAriaLabel = getToggleAriaLabel(\n\t\tcolor,\n\t\tcolorObject,\n\t\tstyle,\n\t\tenableStyle\n\t);\n\n\tconst dropdownPosition = __experimentalIsRenderedInSidebar\n\t\t? 'bottom left'\n\t\t: undefined;\n\n\tconst renderToggle = ( { onToggle = noop } ) => (\n\t\t<Button\n\t\t\tonClick={ onToggle }\n\t\t\tvariant=\"tertiary\"\n\t\t\taria-label={ toggleAriaLabel }\n\t\t\tposition={ dropdownPosition }\n\t\t>\n\t\t\t<span className={ indicatorWrapperClassName }>\n\t\t\t\t<ColorIndicator\n\t\t\t\t\tclassName={ indicatorClassName }\n\t\t\t\t\tcolorValue={ color }\n\t\t\t\t/>\n\t\t\t</span>\n\t\t</Button>\n\t);\n\n\tconst renderContent = ( { onClose }: PopoverProps ) => (\n\t\t<>\n\t\t\t<VStack className={ popoverControlsClassName } spacing={ 6 }>\n\t\t\t\t{ showDropdownHeader ? (\n\t\t\t\t\t<HStack>\n\t\t\t\t\t\t<StyledLabel>{ __( 'Border color' ) }</StyledLabel>\n\t\t\t\t\t\t<Button\n\t\t\t\t\t\t\tisSmall\n\t\t\t\t\t\t\tlabel={ __( 'Close border color' ) }\n\t\t\t\t\t\t\ticon={ closeSmall }\n\t\t\t\t\t\t\tonClick={ onClose }\n\t\t\t\t\t\t/>\n\t\t\t\t\t</HStack>\n\t\t\t\t) : undefined }\n\t\t\t\t<ColorPalette\n\t\t\t\t\tclassName={ popoverContentClassName }\n\t\t\t\t\tvalue={ color }\n\t\t\t\t\tonChange={ onColorChange }\n\t\t\t\t\t{ ...{ colors, disableCustomColors } }\n\t\t\t\t\t__experimentalHasMultipleOrigins={\n\t\t\t\t\t\t__experimentalHasMultipleOrigins\n\t\t\t\t\t}\n\t\t\t\t\t__experimentalIsRenderedInSidebar={\n\t\t\t\t\t\t__experimentalIsRenderedInSidebar\n\t\t\t\t\t}\n\t\t\t\t\tclearable={ false }\n\t\t\t\t\tenableAlpha={ enableAlpha }\n\t\t\t\t/>\n\t\t\t\t{ enableStyle && (\n\t\t\t\t\t<BorderControlStylePicker\n\t\t\t\t\t\tlabel={ __( 'Style' ) }\n\t\t\t\t\t\tvalue={ style }\n\t\t\t\t\t\tonChange={ onStyleChange }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t</VStack>\n\t\t\t<Button\n\t\t\t\tclassName={ resetButtonClassName }\n\t\t\t\tvariant=\"tertiary\"\n\t\t\t\tonClick={ () => {\n\t\t\t\t\tonReset();\n\t\t\t\t\tonClose();\n\t\t\t\t} }\n\t\t\t>\n\t\t\t\t{ __( 'Reset to default' ) }\n\t\t\t</Button>\n\t\t</>\n\t);\n\n\treturn (\n\t\t<Dropdown\n\t\t\trenderToggle={ renderToggle }\n\t\t\trenderContent={ renderContent }\n\t\t\tcontentClassName={ popoverClassName }\n\t\t\t{ ...otherProps }\n\t\t\tref={ forwardedRef }\n\t\t/>\n\t);\n};\n\nconst ConnectedBorderControlDropdown = contextConnect(\n\tBorderControlDropdown,\n\t'BorderControlDropdown'\n);\n\nexport default ConnectedBorderControlDropdown;\n"]}
@@ -0,0 +1,105 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.useBorderControlDropdown = useBorderControlDropdown;
7
+
8
+ var _element = require("@wordpress/element");
9
+
10
+ var styles = _interopRequireWildcard(require("../styles"));
11
+
12
+ var _utils = require("../../unit-control/utils");
13
+
14
+ var _context = require("../../ui/context");
15
+
16
+ var _useCx = require("../../utils/hooks/use-cx");
17
+
18
+ function _getRequireWildcardCache(nodeInterop) { if (typeof WeakMap !== "function") return null; var cacheBabelInterop = new WeakMap(); var cacheNodeInterop = new WeakMap(); return (_getRequireWildcardCache = function (nodeInterop) { return nodeInterop ? cacheNodeInterop : cacheBabelInterop; })(nodeInterop); }
19
+
20
+ function _interopRequireWildcard(obj, nodeInterop) { if (!nodeInterop && obj && obj.__esModule) { return obj; } if (obj === null || typeof obj !== "object" && typeof obj !== "function") { return { default: obj }; } var cache = _getRequireWildcardCache(nodeInterop); if (cache && cache.has(obj)) { return cache.get(obj); } var newObj = {}; var hasPropertyDescriptor = Object.defineProperty && Object.getOwnPropertyDescriptor; for (var key in obj) { if (key !== "default" && Object.prototype.hasOwnProperty.call(obj, key)) { var desc = hasPropertyDescriptor ? Object.getOwnPropertyDescriptor(obj, key) : null; if (desc && (desc.get || desc.set)) { Object.defineProperty(newObj, key, desc); } else { newObj[key] = obj[key]; } } } newObj.default = obj; if (cache) { cache.set(obj, newObj); } return newObj; }
21
+
22
+ /**
23
+ * WordPress dependencies
24
+ */
25
+
26
+ /**
27
+ * Internal dependencies
28
+ */
29
+ function useBorderControlDropdown(props) {
30
+ const {
31
+ border,
32
+ className,
33
+ colors,
34
+ contentClassName,
35
+ onChange,
36
+ previousStyleSelection,
37
+ ...otherProps
38
+ } = (0, _context.useContextSystem)(props, 'BorderControlDropdown');
39
+ const [widthValue] = (0, _utils.parseQuantityAndUnitFromRawValue)(border === null || border === void 0 ? void 0 : border.width);
40
+ const hasZeroWidth = widthValue === 0;
41
+
42
+ const onColorChange = color => {
43
+ const style = (border === null || border === void 0 ? void 0 : border.style) === 'none' ? previousStyleSelection : border === null || border === void 0 ? void 0 : border.style;
44
+ const width = hasZeroWidth && !!color ? '1px' : border === null || border === void 0 ? void 0 : border.width;
45
+ onChange({
46
+ color,
47
+ style,
48
+ width
49
+ });
50
+ };
51
+
52
+ const onStyleChange = style => {
53
+ const width = hasZeroWidth && !!style ? '1px' : border === null || border === void 0 ? void 0 : border.width;
54
+ onChange({ ...border,
55
+ style,
56
+ width
57
+ });
58
+ };
59
+
60
+ const onReset = () => {
61
+ onChange({ ...border,
62
+ color: undefined,
63
+ style: undefined
64
+ });
65
+ }; // Generate class names.
66
+
67
+
68
+ const cx = (0, _useCx.useCx)();
69
+ const classes = (0, _element.useMemo)(() => {
70
+ return cx(styles.borderControlDropdown(), className);
71
+ }, [className, cx]);
72
+ const indicatorClassName = (0, _element.useMemo)(() => {
73
+ return cx(styles.borderColorIndicator);
74
+ }, [cx]);
75
+ const indicatorWrapperClassName = (0, _element.useMemo)(() => {
76
+ return cx(styles.colorIndicatorWrapper(border));
77
+ }, [border, cx]);
78
+ const popoverClassName = (0, _element.useMemo)(() => {
79
+ return cx(styles.borderControlPopover, contentClassName);
80
+ }, [cx, contentClassName]);
81
+ const popoverControlsClassName = (0, _element.useMemo)(() => {
82
+ return cx(styles.borderControlPopoverControls);
83
+ }, [cx]);
84
+ const popoverContentClassName = (0, _element.useMemo)(() => {
85
+ return cx(styles.borderControlPopoverContent);
86
+ }, [cx]);
87
+ const resetButtonClassName = (0, _element.useMemo)(() => {
88
+ return cx(styles.resetButton);
89
+ }, [cx]);
90
+ return { ...otherProps,
91
+ border,
92
+ className: classes,
93
+ colors,
94
+ indicatorClassName,
95
+ indicatorWrapperClassName,
96
+ onColorChange,
97
+ onStyleChange,
98
+ onReset,
99
+ popoverClassName,
100
+ popoverContentClassName,
101
+ popoverControlsClassName,
102
+ resetButtonClassName
103
+ };
104
+ }
105
+ //# sourceMappingURL=hook.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["@wordpress/components/src/border-control/border-control-dropdown/hook.ts"],"names":["useBorderControlDropdown","props","border","className","colors","contentClassName","onChange","previousStyleSelection","otherProps","widthValue","width","hasZeroWidth","onColorChange","color","style","onStyleChange","onReset","undefined","cx","classes","styles","borderControlDropdown","indicatorClassName","borderColorIndicator","indicatorWrapperClassName","colorIndicatorWrapper","popoverClassName","borderControlPopover","popoverControlsClassName","borderControlPopoverControls","popoverContentClassName","borderControlPopoverContent","resetButtonClassName","resetButton"],"mappings":"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","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { useMemo } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport * as styles from '../styles';\nimport { parseQuantityAndUnitFromRawValue } from '../../unit-control/utils';\nimport { useContextSystem, WordPressComponentProps } from '../../ui/context';\nimport { useCx } from '../../utils/hooks/use-cx';\n\nimport type { DropdownProps } from '../types';\n\nexport function useBorderControlDropdown(\n\tprops: WordPressComponentProps< DropdownProps, 'div' >\n) {\n\tconst {\n\t\tborder,\n\t\tclassName,\n\t\tcolors,\n\t\tcontentClassName,\n\t\tonChange,\n\t\tpreviousStyleSelection,\n\t\t...otherProps\n\t} = useContextSystem( props, 'BorderControlDropdown' );\n\n\tconst [ widthValue ] = parseQuantityAndUnitFromRawValue( border?.width );\n\tconst hasZeroWidth = widthValue === 0;\n\n\tconst onColorChange = ( color?: string ) => {\n\t\tconst style =\n\t\t\tborder?.style === 'none' ? previousStyleSelection : border?.style;\n\t\tconst width = hasZeroWidth && !! color ? '1px' : border?.width;\n\n\t\tonChange( { color, style, width } );\n\t};\n\n\tconst onStyleChange = ( style?: string ) => {\n\t\tconst width = hasZeroWidth && !! style ? '1px' : border?.width;\n\t\tonChange( { ...border, style, width } );\n\t};\n\n\tconst onReset = () => {\n\t\tonChange( {\n\t\t\t...border,\n\t\t\tcolor: undefined,\n\t\t\tstyle: undefined,\n\t\t} );\n\t};\n\n\t// Generate class names.\n\tconst cx = useCx();\n\tconst classes = useMemo( () => {\n\t\treturn cx( styles.borderControlDropdown(), className );\n\t}, [ className, cx ] );\n\n\tconst indicatorClassName = useMemo( () => {\n\t\treturn cx( styles.borderColorIndicator );\n\t}, [ cx ] );\n\n\tconst indicatorWrapperClassName = useMemo( () => {\n\t\treturn cx( styles.colorIndicatorWrapper( border ) );\n\t}, [ border, cx ] );\n\n\tconst popoverClassName = useMemo( () => {\n\t\treturn cx( styles.borderControlPopover, contentClassName );\n\t}, [ cx, contentClassName ] );\n\n\tconst popoverControlsClassName = useMemo( () => {\n\t\treturn cx( styles.borderControlPopoverControls );\n\t}, [ cx ] );\n\n\tconst popoverContentClassName = useMemo( () => {\n\t\treturn cx( styles.borderControlPopoverContent );\n\t}, [ cx ] );\n\n\tconst resetButtonClassName = useMemo( () => {\n\t\treturn cx( styles.resetButton );\n\t}, [ cx ] );\n\n\treturn {\n\t\t...otherProps,\n\t\tborder,\n\t\tclassName: classes,\n\t\tcolors,\n\t\tindicatorClassName,\n\t\tindicatorWrapperClassName,\n\t\tonColorChange,\n\t\tonStyleChange,\n\t\tonReset,\n\t\tpopoverClassName,\n\t\tpopoverContentClassName,\n\t\tpopoverControlsClassName,\n\t\tresetButtonClassName,\n\t};\n}\n"]}
@@ -0,0 +1,16 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ Object.defineProperty(exports, "default", {
9
+ enumerable: true,
10
+ get: function () {
11
+ return _component.default;
12
+ }
13
+ });
14
+
15
+ var _component = _interopRequireDefault(require("./component"));
16
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["@wordpress/components/src/border-control/border-control-dropdown/index.ts"],"names":[],"mappings":";;;;;;;;;;;;;;AAAA","sourcesContent":["export { default } from './component';\n"]}
@@ -0,0 +1,101 @@
1
+ "use strict";
2
+
3
+ var _interopRequireDefault = require("@babel/runtime/helpers/interopRequireDefault");
4
+
5
+ Object.defineProperty(exports, "__esModule", {
6
+ value: true
7
+ });
8
+ exports.default = void 0;
9
+
10
+ var _element = require("@wordpress/element");
11
+
12
+ var _extends2 = _interopRequireDefault(require("@babel/runtime/helpers/extends"));
13
+
14
+ var _icons = require("@wordpress/icons");
15
+
16
+ var _i18n = require("@wordpress/i18n");
17
+
18
+ var _button = _interopRequireDefault(require("../../button"));
19
+
20
+ var _baseControlStyles = require("../../base-control/styles/base-control-styles");
21
+
22
+ var _view = require("../../view");
23
+
24
+ var _flex = require("../../flex");
25
+
26
+ var _visuallyHidden = require("../../visually-hidden");
27
+
28
+ var _context = require("../../ui/context");
29
+
30
+ var _hook = require("./hook");
31
+
32
+ /**
33
+ * WordPress dependencies
34
+ */
35
+
36
+ /**
37
+ * Internal dependencies
38
+ */
39
+ const BORDER_STYLES = [{
40
+ label: (0, _i18n.__)('Solid'),
41
+ icon: _icons.lineSolid,
42
+ value: 'solid'
43
+ }, {
44
+ label: (0, _i18n.__)('Dashed'),
45
+ icon: _icons.lineDashed,
46
+ value: 'dashed'
47
+ }, {
48
+ label: (0, _i18n.__)('Dotted'),
49
+ icon: _icons.lineDotted,
50
+ value: 'dotted'
51
+ }];
52
+
53
+ const Label = props => {
54
+ const {
55
+ label,
56
+ hideLabelFromVision
57
+ } = props;
58
+
59
+ if (!label) {
60
+ return null;
61
+ }
62
+
63
+ return hideLabelFromVision ? (0, _element.createElement)(_visuallyHidden.VisuallyHidden, {
64
+ as: "label"
65
+ }, label) : (0, _element.createElement)(_baseControlStyles.StyledLabel, null, label);
66
+ };
67
+
68
+ const BorderControlStylePicker = (props, forwardedRef) => {
69
+ const {
70
+ buttonClassName,
71
+ hideLabelFromVision,
72
+ label,
73
+ onChange,
74
+ value,
75
+ ...otherProps
76
+ } = (0, _hook.useBorderControlStylePicker)(props);
77
+ return (0, _element.createElement)(_view.View, (0, _extends2.default)({}, otherProps, {
78
+ ref: forwardedRef
79
+ }), (0, _element.createElement)(Label, {
80
+ label: label,
81
+ hideLabelFromVision: hideLabelFromVision
82
+ }), (0, _element.createElement)(_flex.Flex, {
83
+ justify: "flex-start",
84
+ gap: 1
85
+ }, BORDER_STYLES.map(borderStyle => (0, _element.createElement)(_button.default, {
86
+ key: borderStyle.value,
87
+ className: buttonClassName,
88
+ icon: borderStyle.icon,
89
+ isSmall: true,
90
+ isPressed: borderStyle.value === value,
91
+ onClick: () => onChange(borderStyle.value === value ? undefined : borderStyle.value),
92
+ "aria-label": borderStyle.label,
93
+ label: borderStyle.label,
94
+ showTooltip: true
95
+ }))));
96
+ };
97
+
98
+ const ConnectedBorderControlStylePicker = (0, _context.contextConnect)(BorderControlStylePicker, 'BorderControlStylePicker');
99
+ var _default = ConnectedBorderControlStylePicker;
100
+ exports.default = _default;
101
+ //# sourceMappingURL=component.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["@wordpress/components/src/border-control/border-control-style-picker/component.tsx"],"names":["BORDER_STYLES","label","icon","lineSolid","value","lineDashed","lineDotted","Label","props","hideLabelFromVision","BorderControlStylePicker","forwardedRef","buttonClassName","onChange","otherProps","map","borderStyle","undefined","ConnectedBorderControlStylePicker"],"mappings":";;;;;;;;;;;;;AAGA;;AACA;;AAKA;;AACA;;AACA;;AACA;;AACA;;AACA;;AACA;;AAfA;AACA;AACA;;AAIA;AACA;AACA;AAWA,MAAMA,aAAa,GAAG,CACrB;AAAEC,EAAAA,KAAK,EAAE,cAAI,OAAJ,CAAT;AAAwBC,EAAAA,IAAI,EAAEC,gBAA9B;AAAyCC,EAAAA,KAAK,EAAE;AAAhD,CADqB,EAErB;AAAEH,EAAAA,KAAK,EAAE,cAAI,QAAJ,CAAT;AAAyBC,EAAAA,IAAI,EAAEG,iBAA/B;AAA2CD,EAAAA,KAAK,EAAE;AAAlD,CAFqB,EAGrB;AAAEH,EAAAA,KAAK,EAAE,cAAI,QAAJ,CAAT;AAAyBC,EAAAA,IAAI,EAAEI,iBAA/B;AAA2CF,EAAAA,KAAK,EAAE;AAAlD,CAHqB,CAAtB;;AAMA,MAAMG,KAAK,GAAKC,KAAF,IAAyB;AACtC,QAAM;AAAEP,IAAAA,KAAF;AAASQ,IAAAA;AAAT,MAAiCD,KAAvC;;AAEA,MAAK,CAAEP,KAAP,EAAe;AACd,WAAO,IAAP;AACA;;AAED,SAAOQ,mBAAmB,GACzB,4BAAC,8BAAD;AAAgB,IAAA,EAAE,EAAC;AAAnB,KAA6BR,KAA7B,CADyB,GAGzB,4BAAC,8BAAD,QAAeA,KAAf,CAHD;AAKA,CAZD;;AAcA,MAAMS,wBAAwB,GAAG,CAChCF,KADgC,EAEhCG,YAFgC,KAG5B;AACJ,QAAM;AACLC,IAAAA,eADK;AAELH,IAAAA,mBAFK;AAGLR,IAAAA,KAHK;AAILY,IAAAA,QAJK;AAKLT,IAAAA,KALK;AAML,OAAGU;AANE,MAOF,uCAA6BN,KAA7B,CAPJ;AASA,SACC,4BAAC,UAAD,6BAAWM,UAAX;AAAwB,IAAA,GAAG,EAAGH;AAA9B,MACC,4BAAC,KAAD;AACC,IAAA,KAAK,EAAGV,KADT;AAEC,IAAA,mBAAmB,EAAGQ;AAFvB,IADD,EAKC,4BAAC,UAAD;AAAM,IAAA,OAAO,EAAC,YAAd;AAA2B,IAAA,GAAG,EAAG;AAAjC,KACGT,aAAa,CAACe,GAAd,CAAqBC,WAAF,IACpB,4BAAC,eAAD;AACC,IAAA,GAAG,EAAGA,WAAW,CAACZ,KADnB;AAEC,IAAA,SAAS,EAAGQ,eAFb;AAGC,IAAA,IAAI,EAAGI,WAAW,CAACd,IAHpB;AAIC,IAAA,OAAO,MAJR;AAKC,IAAA,SAAS,EAAGc,WAAW,CAACZ,KAAZ,KAAsBA,KALnC;AAMC,IAAA,OAAO,EAAG,MACTS,QAAQ,CACPG,WAAW,CAACZ,KAAZ,KAAsBA,KAAtB,GACGa,SADH,GAEGD,WAAW,CAACZ,KAHR,CAPV;AAaC,kBAAaY,WAAW,CAACf,KAb1B;AAcC,IAAA,KAAK,EAAGe,WAAW,CAACf,KAdrB;AAeC,IAAA,WAAW,EAAG;AAff,IADC,CADH,CALD,CADD;AA6BA,CA1CD;;AA4CA,MAAMiB,iCAAiC,GAAG,6BACzCR,wBADyC,EAEzC,0BAFyC,CAA1C;eAKeQ,iC","sourcesContent":["/**\n * WordPress dependencies\n */\nimport { lineDashed, lineDotted, lineSolid } from '@wordpress/icons';\nimport { __ } from '@wordpress/i18n';\n\n/**\n * Internal dependencies\n */\nimport Button from '../../button';\nimport { StyledLabel } from '../../base-control/styles/base-control-styles';\nimport { View } from '../../view';\nimport { Flex } from '../../flex';\nimport { VisuallyHidden } from '../../visually-hidden';\nimport { contextConnect, WordPressComponentProps } from '../../ui/context';\nimport { useBorderControlStylePicker } from './hook';\n\nimport type { LabelProps, StylePickerProps } from '../types';\n\nconst BORDER_STYLES = [\n\t{ label: __( 'Solid' ), icon: lineSolid, value: 'solid' },\n\t{ label: __( 'Dashed' ), icon: lineDashed, value: 'dashed' },\n\t{ label: __( 'Dotted' ), icon: lineDotted, value: 'dotted' },\n];\n\nconst Label = ( props: LabelProps ) => {\n\tconst { label, hideLabelFromVision } = props;\n\n\tif ( ! label ) {\n\t\treturn null;\n\t}\n\n\treturn hideLabelFromVision ? (\n\t\t<VisuallyHidden as=\"label\">{ label }</VisuallyHidden>\n\t) : (\n\t\t<StyledLabel>{ label }</StyledLabel>\n\t);\n};\n\nconst BorderControlStylePicker = (\n\tprops: WordPressComponentProps< StylePickerProps, 'div' >,\n\tforwardedRef: React.ForwardedRef< any >\n) => {\n\tconst {\n\t\tbuttonClassName,\n\t\thideLabelFromVision,\n\t\tlabel,\n\t\tonChange,\n\t\tvalue,\n\t\t...otherProps\n\t} = useBorderControlStylePicker( props );\n\n\treturn (\n\t\t<View { ...otherProps } ref={ forwardedRef }>\n\t\t\t<Label\n\t\t\t\tlabel={ label }\n\t\t\t\thideLabelFromVision={ hideLabelFromVision }\n\t\t\t/>\n\t\t\t<Flex justify=\"flex-start\" gap={ 1 }>\n\t\t\t\t{ BORDER_STYLES.map( ( borderStyle ) => (\n\t\t\t\t\t<Button\n\t\t\t\t\t\tkey={ borderStyle.value }\n\t\t\t\t\t\tclassName={ buttonClassName }\n\t\t\t\t\t\ticon={ borderStyle.icon }\n\t\t\t\t\t\tisSmall\n\t\t\t\t\t\tisPressed={ borderStyle.value === value }\n\t\t\t\t\t\tonClick={ () =>\n\t\t\t\t\t\t\tonChange(\n\t\t\t\t\t\t\t\tborderStyle.value === value\n\t\t\t\t\t\t\t\t\t? undefined\n\t\t\t\t\t\t\t\t\t: borderStyle.value\n\t\t\t\t\t\t\t)\n\t\t\t\t\t\t}\n\t\t\t\t\t\taria-label={ borderStyle.label }\n\t\t\t\t\t\tlabel={ borderStyle.label }\n\t\t\t\t\t\tshowTooltip={ true }\n\t\t\t\t\t/>\n\t\t\t\t) ) }\n\t\t\t</Flex>\n\t\t</View>\n\t);\n};\n\nconst ConnectedBorderControlStylePicker = contextConnect(\n\tBorderControlStylePicker,\n\t'BorderControlStylePicker'\n);\n\nexport default ConnectedBorderControlStylePicker;\n"]}