@wordpress/components 19.7.0 → 19.8.2

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 (420) hide show
  1. package/CHANGELOG.md +27 -1
  2. package/README.md +38 -0
  3. package/build/base-control/index.js +35 -31
  4. package/build/base-control/index.js.map +1 -1
  5. package/build/base-control/styles/base-control-styles.js +18 -18
  6. package/build/base-control/styles/base-control-styles.js.map +1 -1
  7. package/build/base-control/types.js +6 -0
  8. package/build/base-control/types.js.map +1 -0
  9. package/build/border-box-control/border-box-control/component.js +124 -0
  10. package/build/border-box-control/border-box-control/component.js.map +1 -0
  11. package/build/border-box-control/border-box-control/hook.js +113 -0
  12. package/build/border-box-control/border-box-control/hook.js.map +1 -0
  13. package/build/border-box-control/border-box-control/index.js +24 -0
  14. package/build/border-box-control/border-box-control/index.js.map +1 -0
  15. package/build/border-box-control/border-box-control-linked-button/component.js +59 -0
  16. package/build/border-box-control/border-box-control-linked-button/component.js.map +1 -0
  17. package/build/border-box-control/border-box-control-linked-button/hook.js +41 -0
  18. package/build/border-box-control/border-box-control-linked-button/hook.js.map +1 -0
  19. package/build/border-box-control/border-box-control-linked-button/index.js +16 -0
  20. package/build/border-box-control/border-box-control-linked-button/index.js.map +1 -0
  21. package/build/border-box-control/border-box-control-split-controls/component.js +93 -0
  22. package/build/border-box-control/border-box-control-split-controls/component.js.map +1 -0
  23. package/build/border-box-control/border-box-control-split-controls/hook.js +45 -0
  24. package/build/border-box-control/border-box-control-split-controls/hook.js.map +1 -0
  25. package/build/border-box-control/border-box-control-split-controls/index.js +16 -0
  26. package/build/border-box-control/border-box-control-split-controls/index.js.map +1 -0
  27. package/build/border-box-control/border-box-control-visualizer/component.js +40 -0
  28. package/build/border-box-control/border-box-control-visualizer/component.js.map +1 -0
  29. package/build/border-box-control/border-box-control-visualizer/hook.js +43 -0
  30. package/build/border-box-control/border-box-control-visualizer/hook.js.map +1 -0
  31. package/build/border-box-control/border-box-control-visualizer/index.js +16 -0
  32. package/build/border-box-control/border-box-control-visualizer/index.js.map +1 -0
  33. package/build/border-box-control/index.js +44 -0
  34. package/build/border-box-control/index.js.map +1 -0
  35. package/build/border-box-control/styles.js +76 -0
  36. package/build/border-box-control/styles.js.map +1 -0
  37. package/build/border-box-control/types.js +6 -0
  38. package/build/border-box-control/types.js.map +1 -0
  39. package/build/border-box-control/utils.js +161 -0
  40. package/build/border-box-control/utils.js.map +1 -0
  41. package/build/border-control/border-control/component.js +119 -0
  42. package/build/border-control/border-control/component.js.map +1 -0
  43. package/build/border-control/border-control/hook.js +130 -0
  44. package/build/border-control/border-control/hook.js.map +1 -0
  45. package/build/border-control/border-control/index.js +24 -0
  46. package/build/border-control/border-control/index.js.map +1 -0
  47. package/build/border-control/border-control-dropdown/component.js +196 -0
  48. package/build/border-control/border-control-dropdown/component.js.map +1 -0
  49. package/build/border-control/border-control-dropdown/hook.js +105 -0
  50. package/build/border-control/border-control-dropdown/hook.js.map +1 -0
  51. package/build/border-control/border-control-dropdown/index.js +16 -0
  52. package/build/border-control/border-control-dropdown/index.js.map +1 -0
  53. package/build/border-control/border-control-style-picker/component.js +101 -0
  54. package/build/border-control/border-control-style-picker/component.js.map +1 -0
  55. package/build/border-control/border-control-style-picker/hook.js +45 -0
  56. package/build/border-control/border-control-style-picker/hook.js.map +1 -0
  57. package/build/border-control/border-control-style-picker/index.js +16 -0
  58. package/build/border-control/border-control-style-picker/index.js.map +1 -0
  59. package/build/border-control/index.js +24 -0
  60. package/build/border-control/index.js.map +1 -0
  61. package/build/border-control/styles.js +125 -0
  62. package/build/border-control/styles.js.map +1 -0
  63. package/build/border-control/types.js +6 -0
  64. package/build/border-control/types.js.map +1 -0
  65. package/build/card/styles.js +22 -17
  66. package/build/card/styles.js.map +1 -1
  67. package/build/custom-select-control/index.js +4 -1
  68. package/build/custom-select-control/index.js.map +1 -1
  69. package/build/guide/index.js +14 -8
  70. package/build/guide/index.js.map +1 -1
  71. package/build/index.js +40 -0
  72. package/build/index.js.map +1 -1
  73. package/build/item-group/styles.js +14 -14
  74. package/build/item-group/styles.js.map +1 -1
  75. package/build/mobile/picker/index.android.js +0 -3
  76. package/build/mobile/picker/index.android.js.map +1 -1
  77. package/build/palette-edit/index.js +2 -1
  78. package/build/palette-edit/index.js.map +1 -1
  79. package/build/surface/styles.js +8 -8
  80. package/build/surface/styles.js.map +1 -1
  81. package/build/toggle-group-control/index.js +8 -0
  82. package/build/toggle-group-control/index.js.map +1 -1
  83. package/build/toggle-group-control/toggle-group-control/component.js +10 -1
  84. package/build/toggle-group-control/toggle-group-control/component.js.map +1 -1
  85. package/build/toggle-group-control/toggle-group-control/styles.js +14 -3
  86. package/build/toggle-group-control/toggle-group-control/styles.js.map +1 -1
  87. package/build/toggle-group-control/toggle-group-control/toggle-group-control-backdrop.js +90 -0
  88. package/build/toggle-group-control/toggle-group-control/toggle-group-control-backdrop.js.map +1 -0
  89. package/build/toggle-group-control/toggle-group-control-option/component.js +9 -87
  90. package/build/toggle-group-control/toggle-group-control-option/component.js.map +1 -1
  91. package/build/toggle-group-control/toggle-group-control-option-base/component.js +127 -0
  92. package/build/toggle-group-control/toggle-group-control-option-base/component.js.map +1 -0
  93. package/build/toggle-group-control/toggle-group-control-option-base/index.js +16 -0
  94. package/build/toggle-group-control/toggle-group-control-option-base/index.js.map +1 -0
  95. package/build/toggle-group-control/toggle-group-control-option-base/styles.js +66 -0
  96. package/build/toggle-group-control/toggle-group-control-option-base/styles.js.map +1 -0
  97. package/build/toggle-group-control/toggle-group-control-option-icon/component.js +55 -0
  98. package/build/toggle-group-control/toggle-group-control-option-icon/component.js.map +1 -0
  99. package/build/toggle-group-control/toggle-group-control-option-icon/index.js +16 -0
  100. package/build/toggle-group-control/toggle-group-control-option-icon/index.js.map +1 -0
  101. package/build/toolbar-dropdown-menu/index.js +1 -1
  102. package/build/toolbar-dropdown-menu/index.js.map +1 -1
  103. package/build/unit-control/index.js +7 -2
  104. package/build/unit-control/index.js.map +1 -1
  105. package/build/utils/colors-values.js +5 -3
  106. package/build/utils/colors-values.js.map +1 -1
  107. package/build/utils/config-values.js +9 -4
  108. package/build/utils/config-values.js.map +1 -1
  109. package/build-module/base-control/index.js +33 -34
  110. package/build-module/base-control/index.js.map +1 -1
  111. package/build-module/base-control/styles/base-control-styles.js +18 -18
  112. package/build-module/base-control/styles/base-control-styles.js.map +1 -1
  113. package/build-module/base-control/types.js +2 -0
  114. package/build-module/base-control/types.js.map +1 -0
  115. package/build-module/border-box-control/border-box-control/component.js +104 -0
  116. package/build-module/border-box-control/border-box-control/component.js.map +1 -0
  117. package/build-module/border-box-control/border-box-control/hook.js +97 -0
  118. package/build-module/border-box-control/border-box-control/hook.js.map +1 -0
  119. package/build-module/border-box-control/border-box-control/index.js +3 -0
  120. package/build-module/border-box-control/border-box-control/index.js.map +1 -0
  121. package/build-module/border-box-control/border-box-control-linked-button/component.js +42 -0
  122. package/build-module/border-box-control/border-box-control-linked-button/component.js.map +1 -0
  123. package/build-module/border-box-control/border-box-control-linked-button/hook.js +26 -0
  124. package/build-module/border-box-control/border-box-control-linked-button/hook.js.map +1 -0
  125. package/build-module/border-box-control/border-box-control-linked-button/index.js +2 -0
  126. package/build-module/border-box-control/border-box-control-linked-button/index.js.map +1 -0
  127. package/build-module/border-box-control/border-box-control-split-controls/component.js +77 -0
  128. package/build-module/border-box-control/border-box-control-split-controls/component.js.map +1 -0
  129. package/build-module/border-box-control/border-box-control-split-controls/hook.js +30 -0
  130. package/build-module/border-box-control/border-box-control-split-controls/hook.js.map +1 -0
  131. package/build-module/border-box-control/border-box-control-split-controls/index.js +2 -0
  132. package/build-module/border-box-control/border-box-control-split-controls/index.js.map +1 -0
  133. package/build-module/border-box-control/border-box-control-visualizer/component.js +27 -0
  134. package/build-module/border-box-control/border-box-control-visualizer/component.js.map +1 -0
  135. package/build-module/border-box-control/border-box-control-visualizer/hook.js +28 -0
  136. package/build-module/border-box-control/border-box-control-visualizer/hook.js.map +1 -0
  137. package/build-module/border-box-control/border-box-control-visualizer/index.js +2 -0
  138. package/build-module/border-box-control/border-box-control-visualizer/index.js.map +1 -0
  139. package/build-module/border-box-control/index.js +4 -0
  140. package/build-module/border-box-control/index.js.map +1 -0
  141. package/build-module/border-box-control/styles.js +66 -0
  142. package/build-module/border-box-control/styles.js.map +1 -0
  143. package/build-module/border-box-control/types.js +2 -0
  144. package/build-module/border-box-control/types.js.map +1 -0
  145. package/build-module/border-box-control/utils.js +127 -0
  146. package/build-module/border-box-control/utils.js.map +1 -0
  147. package/build-module/border-control/border-control/component.js +100 -0
  148. package/build-module/border-control/border-control/component.js.map +1 -0
  149. package/build-module/border-control/border-control/hook.js +115 -0
  150. package/build-module/border-control/border-control/hook.js.map +1 -0
  151. package/build-module/border-control/border-control/index.js +3 -0
  152. package/build-module/border-control/border-control/index.js.map +1 -0
  153. package/build-module/border-control/border-control-dropdown/component.js +174 -0
  154. package/build-module/border-control/border-control-dropdown/component.js.map +1 -0
  155. package/build-module/border-control/border-control-dropdown/hook.js +89 -0
  156. package/build-module/border-control/border-control-dropdown/hook.js.map +1 -0
  157. package/build-module/border-control/border-control-dropdown/index.js +2 -0
  158. package/build-module/border-control/border-control-dropdown/index.js.map +1 -0
  159. package/build-module/border-control/border-control-style-picker/component.js +81 -0
  160. package/build-module/border-control/border-control-style-picker/component.js.map +1 -0
  161. package/build-module/border-control/border-control-style-picker/hook.js +30 -0
  162. package/build-module/border-control/border-control-style-picker/hook.js.map +1 -0
  163. package/build-module/border-control/border-control-style-picker/index.js +2 -0
  164. package/build-module/border-control/border-control-style-picker/index.js.map +1 -0
  165. package/build-module/border-control/index.js +3 -0
  166. package/build-module/border-control/index.js.map +1 -0
  167. package/build-module/border-control/styles.js +90 -0
  168. package/build-module/border-control/styles.js.map +1 -0
  169. package/build-module/border-control/types.js +2 -0
  170. package/build-module/border-control/types.js.map +1 -0
  171. package/build-module/card/styles.js +23 -18
  172. package/build-module/card/styles.js.map +1 -1
  173. package/build-module/custom-select-control/index.js +4 -1
  174. package/build-module/custom-select-control/index.js.map +1 -1
  175. package/build-module/guide/index.js +14 -8
  176. package/build-module/guide/index.js.map +1 -1
  177. package/build-module/index.js +3 -1
  178. package/build-module/index.js.map +1 -1
  179. package/build-module/item-group/styles.js +14 -14
  180. package/build-module/item-group/styles.js.map +1 -1
  181. package/build-module/mobile/picker/index.android.js +0 -3
  182. package/build-module/mobile/picker/index.android.js.map +1 -1
  183. package/build-module/palette-edit/index.js +3 -2
  184. package/build-module/palette-edit/index.js.map +1 -1
  185. package/build-module/surface/styles.js +8 -8
  186. package/build-module/surface/styles.js.map +1 -1
  187. package/build-module/toggle-group-control/index.js +1 -0
  188. package/build-module/toggle-group-control/index.js.map +1 -1
  189. package/build-module/toggle-group-control/toggle-group-control/component.js +8 -1
  190. package/build-module/toggle-group-control/toggle-group-control/component.js.map +1 -1
  191. package/build-module/toggle-group-control/toggle-group-control/styles.js +11 -3
  192. package/build-module/toggle-group-control/toggle-group-control/styles.js.map +1 -1
  193. package/build-module/toggle-group-control/toggle-group-control/toggle-group-control-backdrop.js +86 -0
  194. package/build-module/toggle-group-control/toggle-group-control/toggle-group-control-backdrop.js.map +1 -0
  195. package/build-module/toggle-group-control/toggle-group-control-option/component.js +9 -76
  196. package/build-module/toggle-group-control/toggle-group-control-option/component.js.map +1 -1
  197. package/build-module/toggle-group-control/toggle-group-control-option-base/component.js +105 -0
  198. package/build-module/toggle-group-control/toggle-group-control-option-base/component.js.map +1 -0
  199. package/build-module/toggle-group-control/toggle-group-control-option-base/index.js +2 -0
  200. package/build-module/toggle-group-control/toggle-group-control-option-base/index.js.map +1 -0
  201. package/build-module/toggle-group-control/toggle-group-control-option-base/styles.js +55 -0
  202. package/build-module/toggle-group-control/toggle-group-control-option-base/styles.js.map +1 -0
  203. package/build-module/toggle-group-control/toggle-group-control-option-icon/component.js +50 -0
  204. package/build-module/toggle-group-control/toggle-group-control-option-icon/component.js.map +1 -0
  205. package/build-module/toggle-group-control/toggle-group-control-option-icon/index.js +2 -0
  206. package/build-module/toggle-group-control/toggle-group-control-option-icon/index.js.map +1 -0
  207. package/build-module/toolbar-dropdown-menu/index.js +1 -1
  208. package/build-module/toolbar-dropdown-menu/index.js.map +1 -1
  209. package/build-module/unit-control/index.js +7 -2
  210. package/build-module/unit-control/index.js.map +1 -1
  211. package/build-module/utils/colors-values.js +5 -3
  212. package/build-module/utils/colors-values.js.map +1 -1
  213. package/build-module/utils/config-values.js +8 -4
  214. package/build-module/utils/config-values.js.map +1 -1
  215. package/build-style/style-rtl.css +4 -4
  216. package/build-style/style.css +4 -4
  217. package/build-types/base-control/index.d.ts +35 -76
  218. package/build-types/base-control/index.d.ts.map +1 -1
  219. package/build-types/base-control/stories/index.d.ts +25 -0
  220. package/build-types/base-control/stories/index.d.ts.map +1 -0
  221. package/build-types/base-control/styles/base-control-styles.d.ts +6 -5
  222. package/build-types/base-control/styles/base-control-styles.d.ts.map +1 -1
  223. package/build-types/base-control/types.d.ts +41 -0
  224. package/build-types/base-control/types.d.ts.map +1 -0
  225. package/build-types/border-box-control/border-box-control/component.d.ts +4 -0
  226. package/build-types/border-box-control/border-box-control/component.d.ts.map +1 -0
  227. package/build-types/border-box-control/border-box-control/hook.d.ts +282 -0
  228. package/build-types/border-box-control/border-box-control/hook.d.ts.map +1 -0
  229. package/build-types/border-box-control/border-box-control/index.d.ts +3 -0
  230. package/build-types/border-box-control/border-box-control/index.d.ts.map +1 -0
  231. package/build-types/border-box-control/border-box-control-linked-button/component.d.ts +4 -0
  232. package/build-types/border-box-control/border-box-control-linked-button/component.d.ts.map +1 -0
  233. package/build-types/border-box-control/border-box-control-linked-button/hook.d.ts +266 -0
  234. package/build-types/border-box-control/border-box-control-linked-button/hook.d.ts.map +1 -0
  235. package/build-types/border-box-control/border-box-control-linked-button/index.d.ts +2 -0
  236. package/build-types/border-box-control/border-box-control-linked-button/index.d.ts.map +1 -0
  237. package/build-types/border-box-control/border-box-control-split-controls/component.d.ts +4 -0
  238. package/build-types/border-box-control/border-box-control-split-controls/component.d.ts.map +1 -0
  239. package/build-types/border-box-control/border-box-control-split-controls/hook.d.ts +274 -0
  240. package/build-types/border-box-control/border-box-control-split-controls/hook.d.ts.map +1 -0
  241. package/build-types/border-box-control/border-box-control-split-controls/index.d.ts +2 -0
  242. package/build-types/border-box-control/border-box-control-split-controls/index.d.ts.map +1 -0
  243. package/build-types/border-box-control/border-box-control-visualizer/component.d.ts +4 -0
  244. package/build-types/border-box-control/border-box-control-visualizer/component.d.ts.map +1 -0
  245. package/build-types/border-box-control/border-box-control-visualizer/hook.d.ts +266 -0
  246. package/build-types/border-box-control/border-box-control-visualizer/hook.d.ts.map +1 -0
  247. package/build-types/border-box-control/border-box-control-visualizer/index.d.ts +2 -0
  248. package/build-types/border-box-control/border-box-control-visualizer/index.d.ts.map +1 -0
  249. package/build-types/border-box-control/index.d.ts +4 -0
  250. package/build-types/border-box-control/index.d.ts.map +1 -0
  251. package/build-types/border-box-control/styles.d.ts +8 -0
  252. package/build-types/border-box-control/styles.d.ts.map +1 -0
  253. package/build-types/border-box-control/types.d.ts +91 -0
  254. package/build-types/border-box-control/types.d.ts.map +1 -0
  255. package/build-types/border-box-control/utils.d.ts +24 -0
  256. package/build-types/border-box-control/utils.d.ts.map +1 -0
  257. package/build-types/border-control/border-control/component.d.ts +4 -0
  258. package/build-types/border-control/border-control/component.d.ts.map +1 -0
  259. package/build-types/border-control/border-control/hook.d.ts +285 -0
  260. package/build-types/border-control/border-control/hook.d.ts.map +1 -0
  261. package/build-types/border-control/border-control/index.d.ts +3 -0
  262. package/build-types/border-control/border-control/index.d.ts.map +1 -0
  263. package/build-types/border-control/border-control-dropdown/component.d.ts +4 -0
  264. package/build-types/border-control/border-control-dropdown/component.d.ts.map +1 -0
  265. package/build-types/border-control/border-control-dropdown/hook.d.ts +280 -0
  266. package/build-types/border-control/border-control-dropdown/hook.d.ts.map +1 -0
  267. package/build-types/border-control/border-control-dropdown/index.d.ts +2 -0
  268. package/build-types/border-control/border-control-dropdown/index.d.ts.map +1 -0
  269. package/build-types/border-control/border-control-style-picker/component.d.ts +4 -0
  270. package/build-types/border-control/border-control-style-picker/component.d.ts.map +1 -0
  271. package/build-types/border-control/border-control-style-picker/hook.d.ts +269 -0
  272. package/build-types/border-control/border-control-style-picker/hook.d.ts.map +1 -0
  273. package/build-types/border-control/border-control-style-picker/index.d.ts +2 -0
  274. package/build-types/border-control/border-control-style-picker/index.d.ts.map +1 -0
  275. package/build-types/border-control/index.d.ts +3 -0
  276. package/build-types/border-control/index.d.ts.map +1 -0
  277. package/build-types/border-control/styles.d.ts +18 -0
  278. package/build-types/border-control/styles.d.ts.map +1 -0
  279. package/build-types/border-control/types.d.ts +163 -0
  280. package/build-types/border-control/types.d.ts.map +1 -0
  281. package/build-types/card/styles.d.ts.map +1 -1
  282. package/build-types/color-indicator/index.d.ts +7 -0
  283. package/build-types/color-indicator/index.d.ts.map +1 -0
  284. package/build-types/input-control/stories/index.d.ts +17 -0
  285. package/build-types/input-control/stories/index.d.ts.map +1 -0
  286. package/build-types/item-group/styles.d.ts.map +1 -1
  287. package/build-types/text/test/index.d.ts +2 -0
  288. package/build-types/text/test/index.d.ts.map +1 -0
  289. package/build-types/toggle-group-control/index.d.ts +1 -0
  290. package/build-types/toggle-group-control/index.d.ts.map +1 -1
  291. package/build-types/toggle-group-control/toggle-group-control/component.d.ts.map +1 -1
  292. package/build-types/toggle-group-control/toggle-group-control/styles.d.ts +5 -0
  293. package/build-types/toggle-group-control/toggle-group-control/styles.d.ts.map +1 -1
  294. package/build-types/toggle-group-control/toggle-group-control/toggle-group-control-backdrop.d.ts +9 -0
  295. package/build-types/toggle-group-control/toggle-group-control/toggle-group-control-backdrop.d.ts.map +1 -0
  296. package/build-types/toggle-group-control/toggle-group-control-option/component.d.ts +6 -2
  297. package/build-types/toggle-group-control/toggle-group-control-option/component.d.ts.map +1 -1
  298. package/build-types/toggle-group-control/toggle-group-control-option/styles.d.ts +4 -0
  299. package/build-types/toggle-group-control/toggle-group-control-option/styles.d.ts.map +1 -1
  300. package/build-types/toggle-group-control/toggle-group-control-option-base/component.d.ts +25 -0
  301. package/build-types/toggle-group-control/toggle-group-control-option-base/component.d.ts.map +1 -0
  302. package/build-types/toggle-group-control/toggle-group-control-option-base/index.d.ts +2 -0
  303. package/build-types/toggle-group-control/toggle-group-control-option-base/index.d.ts.map +1 -0
  304. package/build-types/toggle-group-control/toggle-group-control-option-base/styles.d.ts +15 -0
  305. package/build-types/toggle-group-control/toggle-group-control-option-base/styles.d.ts.map +1 -0
  306. package/build-types/toggle-group-control/toggle-group-control-option-icon/component.d.ts +37 -0
  307. package/build-types/toggle-group-control/toggle-group-control-option-icon/component.d.ts.map +1 -0
  308. package/build-types/toggle-group-control/toggle-group-control-option-icon/index.d.ts +2 -0
  309. package/build-types/toggle-group-control/toggle-group-control-option-icon/index.d.ts.map +1 -0
  310. package/build-types/toggle-group-control/types.d.ts +24 -8
  311. package/build-types/toggle-group-control/types.d.ts.map +1 -1
  312. package/build-types/ui/form-group/form-group.d.ts +2 -2
  313. package/build-types/unit-control/index.d.ts +6 -2
  314. package/build-types/unit-control/index.d.ts.map +1 -1
  315. package/build-types/unit-control/types.d.ts +5 -1
  316. package/build-types/unit-control/types.d.ts.map +1 -1
  317. package/build-types/utils/colors-values.d.ts +78 -18
  318. package/build-types/utils/colors-values.d.ts.map +1 -1
  319. package/build-types/utils/config-values.d.ts +71 -71
  320. package/build-types/utils/config-values.d.ts.map +1 -1
  321. package/package.json +17 -17
  322. package/src/animate/README.md +1 -1
  323. package/src/base-control/README.md +11 -11
  324. package/src/base-control/index.tsx +124 -0
  325. package/src/base-control/stories/index.tsx +80 -0
  326. package/src/base-control/styles/{base-control-styles.js → base-control-styles.ts} +0 -0
  327. package/src/base-control/types.ts +42 -0
  328. package/src/border-box-control/border-box-control/README.md +178 -0
  329. package/src/border-box-control/border-box-control/component.tsx +123 -0
  330. package/src/border-box-control/border-box-control/hook.ts +119 -0
  331. package/src/border-box-control/border-box-control/index.ts +2 -0
  332. package/src/border-box-control/border-box-control-linked-button/component.tsx +50 -0
  333. package/src/border-box-control/border-box-control-linked-button/hook.ts +30 -0
  334. package/src/border-box-control/border-box-control-linked-button/index.ts +1 -0
  335. package/src/border-box-control/border-box-control-split-controls/component.tsx +90 -0
  336. package/src/border-box-control/border-box-control-split-controls/hook.ts +34 -0
  337. package/src/border-box-control/border-box-control-split-controls/index.ts +1 -0
  338. package/src/border-box-control/border-box-control-visualizer/component.tsx +28 -0
  339. package/src/border-box-control/border-box-control-visualizer/hook.ts +30 -0
  340. package/src/border-box-control/border-box-control-visualizer/index.ts +1 -0
  341. package/src/border-box-control/index.ts +3 -0
  342. package/src/border-box-control/stories/index.js +104 -0
  343. package/src/border-box-control/styles.ts +69 -0
  344. package/src/border-box-control/test/index.js +354 -0
  345. package/src/border-box-control/test/utils.js +305 -0
  346. package/src/border-box-control/types.ts +98 -0
  347. package/src/border-box-control/utils.ts +151 -0
  348. package/src/border-control/border-control/README.md +181 -0
  349. package/src/border-control/border-control/component.tsx +112 -0
  350. package/src/border-control/border-control/hook.ts +145 -0
  351. package/src/border-control/border-control/index.ts +2 -0
  352. package/src/border-control/border-control-dropdown/component.tsx +252 -0
  353. package/src/border-control/border-control-dropdown/hook.ts +98 -0
  354. package/src/border-control/border-control-dropdown/index.ts +1 -0
  355. package/src/border-control/border-control-style-picker/component.tsx +89 -0
  356. package/src/border-control/border-control-style-picker/hook.ts +34 -0
  357. package/src/border-control/border-control-style-picker/index.ts +1 -0
  358. package/src/border-control/index.ts +2 -0
  359. package/src/border-control/stories/index.js +118 -0
  360. package/src/border-control/styles.ts +190 -0
  361. package/src/border-control/test/index.js +436 -0
  362. package/src/border-control/types.ts +173 -0
  363. package/src/card/styles.js +11 -5
  364. package/src/card/test/__snapshots__/index.js.snap +83 -66
  365. package/src/card/test/index.js +7 -5
  366. package/src/color-palette/README.md +6 -0
  367. package/src/color-palette/stories/index.js +8 -1
  368. package/src/custom-select-control/index.js +7 -1
  369. package/src/custom-select-control/style.scss +5 -1
  370. package/src/disabled/README.md +7 -10
  371. package/src/flyout/test/__snapshots__/index.js.snap +7 -7
  372. package/src/form-toggle/README.md +1 -1
  373. package/src/guide/index.js +12 -13
  374. package/src/guide/style.scss +0 -4
  375. package/src/index.js +8 -0
  376. package/src/item-group/styles.ts +1 -0
  377. package/src/item-group/test/__snapshots__/index.js.snap +11 -10
  378. package/src/mobile/picker/index.android.js +0 -1
  379. package/src/palette-edit/index.js +8 -2
  380. package/src/surface/styles.js +1 -1
  381. package/src/surface/test/__snapshots__/index.js.snap +11 -11
  382. package/src/toggle-group-control/index.ts +1 -0
  383. package/src/toggle-group-control/stories/index.js +37 -7
  384. package/src/toggle-group-control/test/__snapshots__/index.js.snap +269 -5
  385. package/src/toggle-group-control/test/index.js +43 -10
  386. package/src/toggle-group-control/toggle-group-control/component.tsx +10 -0
  387. package/src/toggle-group-control/toggle-group-control/styles.ts +14 -0
  388. package/src/toggle-group-control/toggle-group-control/toggle-group-control-backdrop.tsx +86 -0
  389. package/src/toggle-group-control/toggle-group-control-option/README.md +8 -5
  390. package/src/toggle-group-control/toggle-group-control-option/component.tsx +18 -94
  391. package/src/toggle-group-control/toggle-group-control-option-base/README.md +27 -0
  392. package/src/toggle-group-control/toggle-group-control-option-base/component.tsx +129 -0
  393. package/src/toggle-group-control/toggle-group-control-option-base/index.ts +1 -0
  394. package/src/toggle-group-control/{toggle-group-control-option → toggle-group-control-option-base}/styles.ts +4 -1
  395. package/src/toggle-group-control/toggle-group-control-option-icon/README.md +56 -0
  396. package/src/toggle-group-control/toggle-group-control-option-icon/component.tsx +56 -0
  397. package/src/toggle-group-control/toggle-group-control-option-icon/index.ts +1 -0
  398. package/src/toggle-group-control/types.ts +33 -8
  399. package/src/toolbar-dropdown-menu/index.js +1 -1
  400. package/src/tools-panel/test/__snapshots__/index.js.snap +8 -8
  401. package/src/unit-control/README.md +6 -0
  402. package/src/unit-control/index.tsx +6 -1
  403. package/src/unit-control/test/index.js +120 -0
  404. package/src/unit-control/types.ts +5 -1
  405. package/src/utils/colors-values.js +4 -3
  406. package/src/utils/config-values.js +9 -4
  407. package/tsconfig.json +3 -0
  408. package/tsconfig.tsbuildinfo +1 -1
  409. package/build/guide/finish-button.js +0 -44
  410. package/build/guide/finish-button.js.map +0 -1
  411. package/build/toggle-group-control/toggle-group-control-option/styles.js +0 -66
  412. package/build/toggle-group-control/toggle-group-control-option/styles.js.map +0 -1
  413. package/build-module/guide/finish-button.js +0 -34
  414. package/build-module/guide/finish-button.js.map +0 -1
  415. package/build-module/toggle-group-control/toggle-group-control-option/styles.js +0 -55
  416. package/build-module/toggle-group-control/toggle-group-control-option/styles.js.map +0 -1
  417. package/src/base-control/index.js +0 -118
  418. package/src/base-control/stories/index.js +0 -81
  419. package/src/guide/finish-button.js +0 -26
  420. package/src/guide/test/finish-button.js +0 -49
@@ -0,0 +1,76 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.LinkedBorderControl = exports.CenteredBorderControl = exports.BorderBoxControlVisualizer = exports.BorderBoxControlSplitControls = exports.BorderBoxControlLinkedButton = exports.BorderBoxControl = void 0;
7
+
8
+ var _react = require("@emotion/react");
9
+
10
+ var _utils = require("../utils");
11
+
12
+ var _space = require("../ui/utils/space");
13
+
14
+ function _EMOTION_STRINGIFIED_CSS_ERROR__() { return "You have tried to stringify object returned from `css` function. It isn't supposed to be used directly (e.g. as value of the `className` prop), but rather handed to emotion so it can handle it (e.g. as value of `css` prop)."; }
15
+
16
+ const BorderBoxControl = /*#__PURE__*/(0, _react.css)(process.env.NODE_ENV === "production" ? "" : ";label:BorderBoxControl;", process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIkB3b3JkcHJlc3MvY29tcG9uZW50cy9zcmMvYm9yZGVyLWJveC1jb250cm9sL3N0eWxlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFjbUMiLCJmaWxlIjoiQHdvcmRwcmVzcy9jb21wb25lbnRzL3NyYy9ib3JkZXItYm94LWNvbnRyb2wvc3R5bGVzLnRzIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBFeHRlcm5hbCBkZXBlbmRlbmNpZXNcbiAqL1xuaW1wb3J0IHsgY3NzIH0gZnJvbSAnQGVtb3Rpb24vcmVhY3QnO1xuXG4vKipcbiAqIEludGVybmFsIGRlcGVuZGVuY2llc1xuICovXG5pbXBvcnQgeyBDT0xPUlMsIENPTkZJRywgcnRsIH0gZnJvbSAnLi4vdXRpbHMnO1xuaW1wb3J0IHsgc3BhY2UgfSBmcm9tICcuLi91aS91dGlscy9zcGFjZSc7XG5cbmltcG9ydCB0eXBlIHsgQm9yZGVyIH0gZnJvbSAnLi4vYm9yZGVyLWNvbnRyb2wvdHlwZXMnO1xuaW1wb3J0IHR5cGUgeyBCb3JkZXJzIH0gZnJvbSAnLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBCb3JkZXJCb3hDb250cm9sID0gY3NzYGA7XG5cbmV4cG9ydCBjb25zdCBMaW5rZWRCb3JkZXJDb250cm9sID0gY3NzYFxuXHRmbGV4OiAxO1xuYDtcblxuZXhwb3J0IGNvbnN0IEJvcmRlckJveENvbnRyb2xMaW5rZWRCdXR0b24gPSBjc3NgXG5cdGZsZXg6IDA7XG5cdGZsZXgtYmFzaXM6IDM2cHg7XG5cdG1hcmdpbi10b3A6IDdweDtcbmA7XG5cbmNvbnN0IEJvcmRlckJveFN0eWxlV2l0aEZhbGxiYWNrID0gKCBib3JkZXI/OiBCb3JkZXIgKSA9PiB7XG5cdGNvbnN0IHtcblx0XHRjb2xvciA9IENPTE9SUy5ncmF5WyAyMDAgXSxcblx0XHRzdHlsZSA9ICdzb2xpZCcsXG5cdFx0d2lkdGggPSBDT05GSUcuYm9yZGVyV2lkdGgsXG5cdH0gPSBib3JkZXIgfHwge307XG5cblx0Y29uc3QgY2xhbXBlZFdpZHRoID1cblx0XHR3aWR0aCAhPT0gQ09ORklHLmJvcmRlcldpZHRoID8gYGNsYW1wKDFweCwgJHsgd2lkdGggfSwgMTBweClgIDogd2lkdGg7XG5cdGNvbnN0IGhhc1Zpc2libGVCb3JkZXIgPSAoICEhIHdpZHRoICYmIHdpZHRoICE9PSAnMCcgKSB8fCAhISBjb2xvcjtcblx0Y29uc3QgYm9yZGVyU3R5bGUgPSBoYXNWaXNpYmxlQm9yZGVyID8gc3R5bGUgfHwgJ3NvbGlkJyA6IHN0eWxlO1xuXG5cdHJldHVybiBgJHsgY29sb3IgfSAkeyBib3JkZXJTdHlsZSB9ICR7IGNsYW1wZWRXaWR0aCB9YDtcbn07XG5cbmV4cG9ydCBjb25zdCBCb3JkZXJCb3hDb250cm9sVmlzdWFsaXplciA9ICggYm9yZGVycz86IEJvcmRlcnMgKSA9PiB7XG5cdHJldHVybiBjc3NgXG5cdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdHRvcDogMjBweDtcblx0XHRyaWdodDogMzBweDtcblx0XHRib3R0b206IDIwcHg7XG5cdFx0bGVmdDogMzBweDtcblx0XHRib3JkZXItdG9wOiAkeyBCb3JkZXJCb3hTdHlsZVdpdGhGYWxsYmFjayggYm9yZGVycz8udG9wICkgfTtcblx0XHRib3JkZXItYm90dG9tOiAkeyBCb3JkZXJCb3hTdHlsZVdpdGhGYWxsYmFjayggYm9yZGVycz8uYm90dG9tICkgfTtcblx0XHQkeyBydGwoIHtcblx0XHRcdGJvcmRlckxlZnQ6IEJvcmRlckJveFN0eWxlV2l0aEZhbGxiYWNrKCBib3JkZXJzPy5sZWZ0ICksXG5cdFx0fSApKCkgfVxuXHRcdCR7IHJ0bCgge1xuXHRcdFx0Ym9yZGVyUmlnaHQ6IEJvcmRlckJveFN0eWxlV2l0aEZhbGxiYWNrKCBib3JkZXJzPy5yaWdodCApLFxuXHRcdH0gKSgpIH1cblx0YDtcbn07XG5cbmV4cG9ydCBjb25zdCBCb3JkZXJCb3hDb250cm9sU3BsaXRDb250cm9scyA9IGNzc2Bcblx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHRmbGV4OiAxO1xuXHQkeyBydGwoIHsgbWFyZ2luUmlnaHQ6IHNwYWNlKCAzICkgfSwgeyBtYXJnaW5MZWZ0OiBzcGFjZSggMyApIH0gKSgpIH1cbmA7XG5cbmV4cG9ydCBjb25zdCBDZW50ZXJlZEJvcmRlckNvbnRyb2wgPSBjc3NgXG5cdGdyaWQtY29sdW1uOiBzcGFuIDI7XG5cdG1hcmdpbjogMCBhdXRvO1xuYDtcbiJdfQ== */");
17
+ exports.BorderBoxControl = BorderBoxControl;
18
+ const LinkedBorderControl = process.env.NODE_ENV === "production" ? {
19
+ name: "82a6rk",
20
+ styles: "flex:1"
21
+ } : {
22
+ name: "178dsw2-LinkedBorderControl",
23
+ styles: "flex:1;label:LinkedBorderControl;",
24
+ map: "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIkB3b3JkcHJlc3MvY29tcG9uZW50cy9zcmMvYm9yZGVyLWJveC1jb250cm9sL3N0eWxlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFnQnNDIiwiZmlsZSI6IkB3b3JkcHJlc3MvY29tcG9uZW50cy9zcmMvYm9yZGVyLWJveC1jb250cm9sL3N0eWxlcy50cyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogRXh0ZXJuYWwgZGVwZW5kZW5jaWVzXG4gKi9cbmltcG9ydCB7IGNzcyB9IGZyb20gJ0BlbW90aW9uL3JlYWN0JztcblxuLyoqXG4gKiBJbnRlcm5hbCBkZXBlbmRlbmNpZXNcbiAqL1xuaW1wb3J0IHsgQ09MT1JTLCBDT05GSUcsIHJ0bCB9IGZyb20gJy4uL3V0aWxzJztcbmltcG9ydCB7IHNwYWNlIH0gZnJvbSAnLi4vdWkvdXRpbHMvc3BhY2UnO1xuXG5pbXBvcnQgdHlwZSB7IEJvcmRlciB9IGZyb20gJy4uL2JvcmRlci1jb250cm9sL3R5cGVzJztcbmltcG9ydCB0eXBlIHsgQm9yZGVycyB9IGZyb20gJy4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgQm9yZGVyQm94Q29udHJvbCA9IGNzc2BgO1xuXG5leHBvcnQgY29uc3QgTGlua2VkQm9yZGVyQ29udHJvbCA9IGNzc2Bcblx0ZmxleDogMTtcbmA7XG5cbmV4cG9ydCBjb25zdCBCb3JkZXJCb3hDb250cm9sTGlua2VkQnV0dG9uID0gY3NzYFxuXHRmbGV4OiAwO1xuXHRmbGV4LWJhc2lzOiAzNnB4O1xuXHRtYXJnaW4tdG9wOiA3cHg7XG5gO1xuXG5jb25zdCBCb3JkZXJCb3hTdHlsZVdpdGhGYWxsYmFjayA9ICggYm9yZGVyPzogQm9yZGVyICkgPT4ge1xuXHRjb25zdCB7XG5cdFx0Y29sb3IgPSBDT0xPUlMuZ3JheVsgMjAwIF0sXG5cdFx0c3R5bGUgPSAnc29saWQnLFxuXHRcdHdpZHRoID0gQ09ORklHLmJvcmRlcldpZHRoLFxuXHR9ID0gYm9yZGVyIHx8IHt9O1xuXG5cdGNvbnN0IGNsYW1wZWRXaWR0aCA9XG5cdFx0d2lkdGggIT09IENPTkZJRy5ib3JkZXJXaWR0aCA/IGBjbGFtcCgxcHgsICR7IHdpZHRoIH0sIDEwcHgpYCA6IHdpZHRoO1xuXHRjb25zdCBoYXNWaXNpYmxlQm9yZGVyID0gKCAhISB3aWR0aCAmJiB3aWR0aCAhPT0gJzAnICkgfHwgISEgY29sb3I7XG5cdGNvbnN0IGJvcmRlclN0eWxlID0gaGFzVmlzaWJsZUJvcmRlciA/IHN0eWxlIHx8ICdzb2xpZCcgOiBzdHlsZTtcblxuXHRyZXR1cm4gYCR7IGNvbG9yIH0gJHsgYm9yZGVyU3R5bGUgfSAkeyBjbGFtcGVkV2lkdGggfWA7XG59O1xuXG5leHBvcnQgY29uc3QgQm9yZGVyQm94Q29udHJvbFZpc3VhbGl6ZXIgPSAoIGJvcmRlcnM/OiBCb3JkZXJzICkgPT4ge1xuXHRyZXR1cm4gY3NzYFxuXHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0XHR0b3A6IDIwcHg7XG5cdFx0cmlnaHQ6IDMwcHg7XG5cdFx0Ym90dG9tOiAyMHB4O1xuXHRcdGxlZnQ6IDMwcHg7XG5cdFx0Ym9yZGVyLXRvcDogJHsgQm9yZGVyQm94U3R5bGVXaXRoRmFsbGJhY2soIGJvcmRlcnM/LnRvcCApIH07XG5cdFx0Ym9yZGVyLWJvdHRvbTogJHsgQm9yZGVyQm94U3R5bGVXaXRoRmFsbGJhY2soIGJvcmRlcnM/LmJvdHRvbSApIH07XG5cdFx0JHsgcnRsKCB7XG5cdFx0XHRib3JkZXJMZWZ0OiBCb3JkZXJCb3hTdHlsZVdpdGhGYWxsYmFjayggYm9yZGVycz8ubGVmdCApLFxuXHRcdH0gKSgpIH1cblx0XHQkeyBydGwoIHtcblx0XHRcdGJvcmRlclJpZ2h0OiBCb3JkZXJCb3hTdHlsZVdpdGhGYWxsYmFjayggYm9yZGVycz8ucmlnaHQgKSxcblx0XHR9ICkoKSB9XG5cdGA7XG59O1xuXG5leHBvcnQgY29uc3QgQm9yZGVyQm94Q29udHJvbFNwbGl0Q29udHJvbHMgPSBjc3NgXG5cdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0ZmxleDogMTtcblx0JHsgcnRsKCB7IG1hcmdpblJpZ2h0OiBzcGFjZSggMyApIH0sIHsgbWFyZ2luTGVmdDogc3BhY2UoIDMgKSB9ICkoKSB9XG5gO1xuXG5leHBvcnQgY29uc3QgQ2VudGVyZWRCb3JkZXJDb250cm9sID0gY3NzYFxuXHRncmlkLWNvbHVtbjogc3BhbiAyO1xuXHRtYXJnaW46IDAgYXV0bztcbmA7XG4iXX0= */",
25
+ toString: _EMOTION_STRINGIFIED_CSS_ERROR__
26
+ };
27
+ exports.LinkedBorderControl = LinkedBorderControl;
28
+ const BorderBoxControlLinkedButton = process.env.NODE_ENV === "production" ? {
29
+ name: "3gg0za",
30
+ styles: "flex:0;flex-basis:36px;margin-top:7px"
31
+ } : {
32
+ name: "f5zp9n-BorderBoxControlLinkedButton",
33
+ styles: "flex:0;flex-basis:36px;margin-top:7px;label:BorderBoxControlLinkedButton;",
34
+ map: "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIkB3b3JkcHJlc3MvY29tcG9uZW50cy9zcmMvYm9yZGVyLWJveC1jb250cm9sL3N0eWxlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFvQitDIiwiZmlsZSI6IkB3b3JkcHJlc3MvY29tcG9uZW50cy9zcmMvYm9yZGVyLWJveC1jb250cm9sL3N0eWxlcy50cyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogRXh0ZXJuYWwgZGVwZW5kZW5jaWVzXG4gKi9cbmltcG9ydCB7IGNzcyB9IGZyb20gJ0BlbW90aW9uL3JlYWN0JztcblxuLyoqXG4gKiBJbnRlcm5hbCBkZXBlbmRlbmNpZXNcbiAqL1xuaW1wb3J0IHsgQ09MT1JTLCBDT05GSUcsIHJ0bCB9IGZyb20gJy4uL3V0aWxzJztcbmltcG9ydCB7IHNwYWNlIH0gZnJvbSAnLi4vdWkvdXRpbHMvc3BhY2UnO1xuXG5pbXBvcnQgdHlwZSB7IEJvcmRlciB9IGZyb20gJy4uL2JvcmRlci1jb250cm9sL3R5cGVzJztcbmltcG9ydCB0eXBlIHsgQm9yZGVycyB9IGZyb20gJy4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgQm9yZGVyQm94Q29udHJvbCA9IGNzc2BgO1xuXG5leHBvcnQgY29uc3QgTGlua2VkQm9yZGVyQ29udHJvbCA9IGNzc2Bcblx0ZmxleDogMTtcbmA7XG5cbmV4cG9ydCBjb25zdCBCb3JkZXJCb3hDb250cm9sTGlua2VkQnV0dG9uID0gY3NzYFxuXHRmbGV4OiAwO1xuXHRmbGV4LWJhc2lzOiAzNnB4O1xuXHRtYXJnaW4tdG9wOiA3cHg7XG5gO1xuXG5jb25zdCBCb3JkZXJCb3hTdHlsZVdpdGhGYWxsYmFjayA9ICggYm9yZGVyPzogQm9yZGVyICkgPT4ge1xuXHRjb25zdCB7XG5cdFx0Y29sb3IgPSBDT0xPUlMuZ3JheVsgMjAwIF0sXG5cdFx0c3R5bGUgPSAnc29saWQnLFxuXHRcdHdpZHRoID0gQ09ORklHLmJvcmRlcldpZHRoLFxuXHR9ID0gYm9yZGVyIHx8IHt9O1xuXG5cdGNvbnN0IGNsYW1wZWRXaWR0aCA9XG5cdFx0d2lkdGggIT09IENPTkZJRy5ib3JkZXJXaWR0aCA/IGBjbGFtcCgxcHgsICR7IHdpZHRoIH0sIDEwcHgpYCA6IHdpZHRoO1xuXHRjb25zdCBoYXNWaXNpYmxlQm9yZGVyID0gKCAhISB3aWR0aCAmJiB3aWR0aCAhPT0gJzAnICkgfHwgISEgY29sb3I7XG5cdGNvbnN0IGJvcmRlclN0eWxlID0gaGFzVmlzaWJsZUJvcmRlciA/IHN0eWxlIHx8ICdzb2xpZCcgOiBzdHlsZTtcblxuXHRyZXR1cm4gYCR7IGNvbG9yIH0gJHsgYm9yZGVyU3R5bGUgfSAkeyBjbGFtcGVkV2lkdGggfWA7XG59O1xuXG5leHBvcnQgY29uc3QgQm9yZGVyQm94Q29udHJvbFZpc3VhbGl6ZXIgPSAoIGJvcmRlcnM/OiBCb3JkZXJzICkgPT4ge1xuXHRyZXR1cm4gY3NzYFxuXHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0XHR0b3A6IDIwcHg7XG5cdFx0cmlnaHQ6IDMwcHg7XG5cdFx0Ym90dG9tOiAyMHB4O1xuXHRcdGxlZnQ6IDMwcHg7XG5cdFx0Ym9yZGVyLXRvcDogJHsgQm9yZGVyQm94U3R5bGVXaXRoRmFsbGJhY2soIGJvcmRlcnM/LnRvcCApIH07XG5cdFx0Ym9yZGVyLWJvdHRvbTogJHsgQm9yZGVyQm94U3R5bGVXaXRoRmFsbGJhY2soIGJvcmRlcnM/LmJvdHRvbSApIH07XG5cdFx0JHsgcnRsKCB7XG5cdFx0XHRib3JkZXJMZWZ0OiBCb3JkZXJCb3hTdHlsZVdpdGhGYWxsYmFjayggYm9yZGVycz8ubGVmdCApLFxuXHRcdH0gKSgpIH1cblx0XHQkeyBydGwoIHtcblx0XHRcdGJvcmRlclJpZ2h0OiBCb3JkZXJCb3hTdHlsZVdpdGhGYWxsYmFjayggYm9yZGVycz8ucmlnaHQgKSxcblx0XHR9ICkoKSB9XG5cdGA7XG59O1xuXG5leHBvcnQgY29uc3QgQm9yZGVyQm94Q29udHJvbFNwbGl0Q29udHJvbHMgPSBjc3NgXG5cdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0ZmxleDogMTtcblx0JHsgcnRsKCB7IG1hcmdpblJpZ2h0OiBzcGFjZSggMyApIH0sIHsgbWFyZ2luTGVmdDogc3BhY2UoIDMgKSB9ICkoKSB9XG5gO1xuXG5leHBvcnQgY29uc3QgQ2VudGVyZWRCb3JkZXJDb250cm9sID0gY3NzYFxuXHRncmlkLWNvbHVtbjogc3BhbiAyO1xuXHRtYXJnaW46IDAgYXV0bztcbmA7XG4iXX0= */",
35
+ toString: _EMOTION_STRINGIFIED_CSS_ERROR__
36
+ };
37
+ exports.BorderBoxControlLinkedButton = BorderBoxControlLinkedButton;
38
+
39
+ const BorderBoxStyleWithFallback = border => {
40
+ const {
41
+ color = _utils.COLORS.gray[200],
42
+ style = 'solid',
43
+ width = _utils.CONFIG.borderWidth
44
+ } = border || {};
45
+ const clampedWidth = width !== _utils.CONFIG.borderWidth ? `clamp(1px, ${width}, 10px)` : width;
46
+ const hasVisibleBorder = !!width && width !== '0' || !!color;
47
+ const borderStyle = hasVisibleBorder ? style || 'solid' : style;
48
+ return `${color} ${borderStyle} ${clampedWidth}`;
49
+ };
50
+
51
+ const BorderBoxControlVisualizer = borders => {
52
+ return /*#__PURE__*/(0, _react.css)("position:absolute;top:20px;right:30px;bottom:20px;left:30px;border-top:", BorderBoxStyleWithFallback(borders === null || borders === void 0 ? void 0 : borders.top), ";border-bottom:", BorderBoxStyleWithFallback(borders === null || borders === void 0 ? void 0 : borders.bottom), ";", (0, _utils.rtl)({
53
+ borderLeft: BorderBoxStyleWithFallback(borders === null || borders === void 0 ? void 0 : borders.left)
54
+ })(), " ", (0, _utils.rtl)({
55
+ borderRight: BorderBoxStyleWithFallback(borders === null || borders === void 0 ? void 0 : borders.right)
56
+ })(), ";" + (process.env.NODE_ENV === "production" ? "" : ";label:BorderBoxControlVisualizer;"), process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIkB3b3JkcHJlc3MvY29tcG9uZW50cy9zcmMvYm9yZGVyLWJveC1jb250cm9sL3N0eWxlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUEwQ1ciLCJmaWxlIjoiQHdvcmRwcmVzcy9jb21wb25lbnRzL3NyYy9ib3JkZXItYm94LWNvbnRyb2wvc3R5bGVzLnRzIiwic291cmNlc0NvbnRlbnQiOlsiLyoqXG4gKiBFeHRlcm5hbCBkZXBlbmRlbmNpZXNcbiAqL1xuaW1wb3J0IHsgY3NzIH0gZnJvbSAnQGVtb3Rpb24vcmVhY3QnO1xuXG4vKipcbiAqIEludGVybmFsIGRlcGVuZGVuY2llc1xuICovXG5pbXBvcnQgeyBDT0xPUlMsIENPTkZJRywgcnRsIH0gZnJvbSAnLi4vdXRpbHMnO1xuaW1wb3J0IHsgc3BhY2UgfSBmcm9tICcuLi91aS91dGlscy9zcGFjZSc7XG5cbmltcG9ydCB0eXBlIHsgQm9yZGVyIH0gZnJvbSAnLi4vYm9yZGVyLWNvbnRyb2wvdHlwZXMnO1xuaW1wb3J0IHR5cGUgeyBCb3JkZXJzIH0gZnJvbSAnLi90eXBlcyc7XG5cbmV4cG9ydCBjb25zdCBCb3JkZXJCb3hDb250cm9sID0gY3NzYGA7XG5cbmV4cG9ydCBjb25zdCBMaW5rZWRCb3JkZXJDb250cm9sID0gY3NzYFxuXHRmbGV4OiAxO1xuYDtcblxuZXhwb3J0IGNvbnN0IEJvcmRlckJveENvbnRyb2xMaW5rZWRCdXR0b24gPSBjc3NgXG5cdGZsZXg6IDA7XG5cdGZsZXgtYmFzaXM6IDM2cHg7XG5cdG1hcmdpbi10b3A6IDdweDtcbmA7XG5cbmNvbnN0IEJvcmRlckJveFN0eWxlV2l0aEZhbGxiYWNrID0gKCBib3JkZXI/OiBCb3JkZXIgKSA9PiB7XG5cdGNvbnN0IHtcblx0XHRjb2xvciA9IENPTE9SUy5ncmF5WyAyMDAgXSxcblx0XHRzdHlsZSA9ICdzb2xpZCcsXG5cdFx0d2lkdGggPSBDT05GSUcuYm9yZGVyV2lkdGgsXG5cdH0gPSBib3JkZXIgfHwge307XG5cblx0Y29uc3QgY2xhbXBlZFdpZHRoID1cblx0XHR3aWR0aCAhPT0gQ09ORklHLmJvcmRlcldpZHRoID8gYGNsYW1wKDFweCwgJHsgd2lkdGggfSwgMTBweClgIDogd2lkdGg7XG5cdGNvbnN0IGhhc1Zpc2libGVCb3JkZXIgPSAoICEhIHdpZHRoICYmIHdpZHRoICE9PSAnMCcgKSB8fCAhISBjb2xvcjtcblx0Y29uc3QgYm9yZGVyU3R5bGUgPSBoYXNWaXNpYmxlQm9yZGVyID8gc3R5bGUgfHwgJ3NvbGlkJyA6IHN0eWxlO1xuXG5cdHJldHVybiBgJHsgY29sb3IgfSAkeyBib3JkZXJTdHlsZSB9ICR7IGNsYW1wZWRXaWR0aCB9YDtcbn07XG5cbmV4cG9ydCBjb25zdCBCb3JkZXJCb3hDb250cm9sVmlzdWFsaXplciA9ICggYm9yZGVycz86IEJvcmRlcnMgKSA9PiB7XG5cdHJldHVybiBjc3NgXG5cdFx0cG9zaXRpb246IGFic29sdXRlO1xuXHRcdHRvcDogMjBweDtcblx0XHRyaWdodDogMzBweDtcblx0XHRib3R0b206IDIwcHg7XG5cdFx0bGVmdDogMzBweDtcblx0XHRib3JkZXItdG9wOiAkeyBCb3JkZXJCb3hTdHlsZVdpdGhGYWxsYmFjayggYm9yZGVycz8udG9wICkgfTtcblx0XHRib3JkZXItYm90dG9tOiAkeyBCb3JkZXJCb3hTdHlsZVdpdGhGYWxsYmFjayggYm9yZGVycz8uYm90dG9tICkgfTtcblx0XHQkeyBydGwoIHtcblx0XHRcdGJvcmRlckxlZnQ6IEJvcmRlckJveFN0eWxlV2l0aEZhbGxiYWNrKCBib3JkZXJzPy5sZWZ0ICksXG5cdFx0fSApKCkgfVxuXHRcdCR7IHJ0bCgge1xuXHRcdFx0Ym9yZGVyUmlnaHQ6IEJvcmRlckJveFN0eWxlV2l0aEZhbGxiYWNrKCBib3JkZXJzPy5yaWdodCApLFxuXHRcdH0gKSgpIH1cblx0YDtcbn07XG5cbmV4cG9ydCBjb25zdCBCb3JkZXJCb3hDb250cm9sU3BsaXRDb250cm9scyA9IGNzc2Bcblx0cG9zaXRpb246IHJlbGF0aXZlO1xuXHRmbGV4OiAxO1xuXHQkeyBydGwoIHsgbWFyZ2luUmlnaHQ6IHNwYWNlKCAzICkgfSwgeyBtYXJnaW5MZWZ0OiBzcGFjZSggMyApIH0gKSgpIH1cbmA7XG5cbmV4cG9ydCBjb25zdCBDZW50ZXJlZEJvcmRlckNvbnRyb2wgPSBjc3NgXG5cdGdyaWQtY29sdW1uOiBzcGFuIDI7XG5cdG1hcmdpbjogMCBhdXRvO1xuYDtcbiJdfQ== */");
57
+ };
58
+
59
+ exports.BorderBoxControlVisualizer = BorderBoxControlVisualizer;
60
+ const BorderBoxControlSplitControls = /*#__PURE__*/(0, _react.css)("position:relative;flex:1;", (0, _utils.rtl)({
61
+ marginRight: (0, _space.space)(3)
62
+ }, {
63
+ marginLeft: (0, _space.space)(3)
64
+ })(), ";" + (process.env.NODE_ENV === "production" ? "" : ";label:BorderBoxControlSplitControls;"), process.env.NODE_ENV === "production" ? "" : "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIkB3b3JkcHJlc3MvY29tcG9uZW50cy9zcmMvYm9yZGVyLWJveC1jb250cm9sL3N0eWxlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUEyRGdEIiwiZmlsZSI6IkB3b3JkcHJlc3MvY29tcG9uZW50cy9zcmMvYm9yZGVyLWJveC1jb250cm9sL3N0eWxlcy50cyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogRXh0ZXJuYWwgZGVwZW5kZW5jaWVzXG4gKi9cbmltcG9ydCB7IGNzcyB9IGZyb20gJ0BlbW90aW9uL3JlYWN0JztcblxuLyoqXG4gKiBJbnRlcm5hbCBkZXBlbmRlbmNpZXNcbiAqL1xuaW1wb3J0IHsgQ09MT1JTLCBDT05GSUcsIHJ0bCB9IGZyb20gJy4uL3V0aWxzJztcbmltcG9ydCB7IHNwYWNlIH0gZnJvbSAnLi4vdWkvdXRpbHMvc3BhY2UnO1xuXG5pbXBvcnQgdHlwZSB7IEJvcmRlciB9IGZyb20gJy4uL2JvcmRlci1jb250cm9sL3R5cGVzJztcbmltcG9ydCB0eXBlIHsgQm9yZGVycyB9IGZyb20gJy4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgQm9yZGVyQm94Q29udHJvbCA9IGNzc2BgO1xuXG5leHBvcnQgY29uc3QgTGlua2VkQm9yZGVyQ29udHJvbCA9IGNzc2Bcblx0ZmxleDogMTtcbmA7XG5cbmV4cG9ydCBjb25zdCBCb3JkZXJCb3hDb250cm9sTGlua2VkQnV0dG9uID0gY3NzYFxuXHRmbGV4OiAwO1xuXHRmbGV4LWJhc2lzOiAzNnB4O1xuXHRtYXJnaW4tdG9wOiA3cHg7XG5gO1xuXG5jb25zdCBCb3JkZXJCb3hTdHlsZVdpdGhGYWxsYmFjayA9ICggYm9yZGVyPzogQm9yZGVyICkgPT4ge1xuXHRjb25zdCB7XG5cdFx0Y29sb3IgPSBDT0xPUlMuZ3JheVsgMjAwIF0sXG5cdFx0c3R5bGUgPSAnc29saWQnLFxuXHRcdHdpZHRoID0gQ09ORklHLmJvcmRlcldpZHRoLFxuXHR9ID0gYm9yZGVyIHx8IHt9O1xuXG5cdGNvbnN0IGNsYW1wZWRXaWR0aCA9XG5cdFx0d2lkdGggIT09IENPTkZJRy5ib3JkZXJXaWR0aCA/IGBjbGFtcCgxcHgsICR7IHdpZHRoIH0sIDEwcHgpYCA6IHdpZHRoO1xuXHRjb25zdCBoYXNWaXNpYmxlQm9yZGVyID0gKCAhISB3aWR0aCAmJiB3aWR0aCAhPT0gJzAnICkgfHwgISEgY29sb3I7XG5cdGNvbnN0IGJvcmRlclN0eWxlID0gaGFzVmlzaWJsZUJvcmRlciA/IHN0eWxlIHx8ICdzb2xpZCcgOiBzdHlsZTtcblxuXHRyZXR1cm4gYCR7IGNvbG9yIH0gJHsgYm9yZGVyU3R5bGUgfSAkeyBjbGFtcGVkV2lkdGggfWA7XG59O1xuXG5leHBvcnQgY29uc3QgQm9yZGVyQm94Q29udHJvbFZpc3VhbGl6ZXIgPSAoIGJvcmRlcnM/OiBCb3JkZXJzICkgPT4ge1xuXHRyZXR1cm4gY3NzYFxuXHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0XHR0b3A6IDIwcHg7XG5cdFx0cmlnaHQ6IDMwcHg7XG5cdFx0Ym90dG9tOiAyMHB4O1xuXHRcdGxlZnQ6IDMwcHg7XG5cdFx0Ym9yZGVyLXRvcDogJHsgQm9yZGVyQm94U3R5bGVXaXRoRmFsbGJhY2soIGJvcmRlcnM/LnRvcCApIH07XG5cdFx0Ym9yZGVyLWJvdHRvbTogJHsgQm9yZGVyQm94U3R5bGVXaXRoRmFsbGJhY2soIGJvcmRlcnM/LmJvdHRvbSApIH07XG5cdFx0JHsgcnRsKCB7XG5cdFx0XHRib3JkZXJMZWZ0OiBCb3JkZXJCb3hTdHlsZVdpdGhGYWxsYmFjayggYm9yZGVycz8ubGVmdCApLFxuXHRcdH0gKSgpIH1cblx0XHQkeyBydGwoIHtcblx0XHRcdGJvcmRlclJpZ2h0OiBCb3JkZXJCb3hTdHlsZVdpdGhGYWxsYmFjayggYm9yZGVycz8ucmlnaHQgKSxcblx0XHR9ICkoKSB9XG5cdGA7XG59O1xuXG5leHBvcnQgY29uc3QgQm9yZGVyQm94Q29udHJvbFNwbGl0Q29udHJvbHMgPSBjc3NgXG5cdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0ZmxleDogMTtcblx0JHsgcnRsKCB7IG1hcmdpblJpZ2h0OiBzcGFjZSggMyApIH0sIHsgbWFyZ2luTGVmdDogc3BhY2UoIDMgKSB9ICkoKSB9XG5gO1xuXG5leHBvcnQgY29uc3QgQ2VudGVyZWRCb3JkZXJDb250cm9sID0gY3NzYFxuXHRncmlkLWNvbHVtbjogc3BhbiAyO1xuXHRtYXJnaW46IDAgYXV0bztcbmA7XG4iXX0= */");
65
+ exports.BorderBoxControlSplitControls = BorderBoxControlSplitControls;
66
+ const CenteredBorderControl = process.env.NODE_ENV === "production" ? {
67
+ name: "1nwbfnf",
68
+ styles: "grid-column:span 2;margin:0 auto"
69
+ } : {
70
+ name: "1mxp6dq-CenteredBorderControl",
71
+ styles: "grid-column:span 2;margin:0 auto;label:CenteredBorderControl;",
72
+ map: "/*# sourceMappingURL=data:application/json;charset=utf-8;base64,eyJ2ZXJzaW9uIjozLCJzb3VyY2VzIjpbIkB3b3JkcHJlc3MvY29tcG9uZW50cy9zcmMvYm9yZGVyLWJveC1jb250cm9sL3N0eWxlcy50cyJdLCJuYW1lcyI6W10sIm1hcHBpbmdzIjoiQUFpRXdDIiwiZmlsZSI6IkB3b3JkcHJlc3MvY29tcG9uZW50cy9zcmMvYm9yZGVyLWJveC1jb250cm9sL3N0eWxlcy50cyIsInNvdXJjZXNDb250ZW50IjpbIi8qKlxuICogRXh0ZXJuYWwgZGVwZW5kZW5jaWVzXG4gKi9cbmltcG9ydCB7IGNzcyB9IGZyb20gJ0BlbW90aW9uL3JlYWN0JztcblxuLyoqXG4gKiBJbnRlcm5hbCBkZXBlbmRlbmNpZXNcbiAqL1xuaW1wb3J0IHsgQ09MT1JTLCBDT05GSUcsIHJ0bCB9IGZyb20gJy4uL3V0aWxzJztcbmltcG9ydCB7IHNwYWNlIH0gZnJvbSAnLi4vdWkvdXRpbHMvc3BhY2UnO1xuXG5pbXBvcnQgdHlwZSB7IEJvcmRlciB9IGZyb20gJy4uL2JvcmRlci1jb250cm9sL3R5cGVzJztcbmltcG9ydCB0eXBlIHsgQm9yZGVycyB9IGZyb20gJy4vdHlwZXMnO1xuXG5leHBvcnQgY29uc3QgQm9yZGVyQm94Q29udHJvbCA9IGNzc2BgO1xuXG5leHBvcnQgY29uc3QgTGlua2VkQm9yZGVyQ29udHJvbCA9IGNzc2Bcblx0ZmxleDogMTtcbmA7XG5cbmV4cG9ydCBjb25zdCBCb3JkZXJCb3hDb250cm9sTGlua2VkQnV0dG9uID0gY3NzYFxuXHRmbGV4OiAwO1xuXHRmbGV4LWJhc2lzOiAzNnB4O1xuXHRtYXJnaW4tdG9wOiA3cHg7XG5gO1xuXG5jb25zdCBCb3JkZXJCb3hTdHlsZVdpdGhGYWxsYmFjayA9ICggYm9yZGVyPzogQm9yZGVyICkgPT4ge1xuXHRjb25zdCB7XG5cdFx0Y29sb3IgPSBDT0xPUlMuZ3JheVsgMjAwIF0sXG5cdFx0c3R5bGUgPSAnc29saWQnLFxuXHRcdHdpZHRoID0gQ09ORklHLmJvcmRlcldpZHRoLFxuXHR9ID0gYm9yZGVyIHx8IHt9O1xuXG5cdGNvbnN0IGNsYW1wZWRXaWR0aCA9XG5cdFx0d2lkdGggIT09IENPTkZJRy5ib3JkZXJXaWR0aCA/IGBjbGFtcCgxcHgsICR7IHdpZHRoIH0sIDEwcHgpYCA6IHdpZHRoO1xuXHRjb25zdCBoYXNWaXNpYmxlQm9yZGVyID0gKCAhISB3aWR0aCAmJiB3aWR0aCAhPT0gJzAnICkgfHwgISEgY29sb3I7XG5cdGNvbnN0IGJvcmRlclN0eWxlID0gaGFzVmlzaWJsZUJvcmRlciA/IHN0eWxlIHx8ICdzb2xpZCcgOiBzdHlsZTtcblxuXHRyZXR1cm4gYCR7IGNvbG9yIH0gJHsgYm9yZGVyU3R5bGUgfSAkeyBjbGFtcGVkV2lkdGggfWA7XG59O1xuXG5leHBvcnQgY29uc3QgQm9yZGVyQm94Q29udHJvbFZpc3VhbGl6ZXIgPSAoIGJvcmRlcnM/OiBCb3JkZXJzICkgPT4ge1xuXHRyZXR1cm4gY3NzYFxuXHRcdHBvc2l0aW9uOiBhYnNvbHV0ZTtcblx0XHR0b3A6IDIwcHg7XG5cdFx0cmlnaHQ6IDMwcHg7XG5cdFx0Ym90dG9tOiAyMHB4O1xuXHRcdGxlZnQ6IDMwcHg7XG5cdFx0Ym9yZGVyLXRvcDogJHsgQm9yZGVyQm94U3R5bGVXaXRoRmFsbGJhY2soIGJvcmRlcnM/LnRvcCApIH07XG5cdFx0Ym9yZGVyLWJvdHRvbTogJHsgQm9yZGVyQm94U3R5bGVXaXRoRmFsbGJhY2soIGJvcmRlcnM/LmJvdHRvbSApIH07XG5cdFx0JHsgcnRsKCB7XG5cdFx0XHRib3JkZXJMZWZ0OiBCb3JkZXJCb3hTdHlsZVdpdGhGYWxsYmFjayggYm9yZGVycz8ubGVmdCApLFxuXHRcdH0gKSgpIH1cblx0XHQkeyBydGwoIHtcblx0XHRcdGJvcmRlclJpZ2h0OiBCb3JkZXJCb3hTdHlsZVdpdGhGYWxsYmFjayggYm9yZGVycz8ucmlnaHQgKSxcblx0XHR9ICkoKSB9XG5cdGA7XG59O1xuXG5leHBvcnQgY29uc3QgQm9yZGVyQm94Q29udHJvbFNwbGl0Q29udHJvbHMgPSBjc3NgXG5cdHBvc2l0aW9uOiByZWxhdGl2ZTtcblx0ZmxleDogMTtcblx0JHsgcnRsKCB7IG1hcmdpblJpZ2h0OiBzcGFjZSggMyApIH0sIHsgbWFyZ2luTGVmdDogc3BhY2UoIDMgKSB9ICkoKSB9XG5gO1xuXG5leHBvcnQgY29uc3QgQ2VudGVyZWRCb3JkZXJDb250cm9sID0gY3NzYFxuXHRncmlkLWNvbHVtbjogc3BhbiAyO1xuXHRtYXJnaW46IDAgYXV0bztcbmA7XG4iXX0= */",
73
+ toString: _EMOTION_STRINGIFIED_CSS_ERROR__
74
+ };
75
+ exports.CenteredBorderControl = CenteredBorderControl;
76
+ //# sourceMappingURL=styles.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["@wordpress/components/src/border-box-control/styles.ts"],"names":["BorderBoxControl","css","LinkedBorderControl","BorderBoxControlLinkedButton","BorderBoxStyleWithFallback","border","color","COLORS","gray","style","width","CONFIG","borderWidth","clampedWidth","hasVisibleBorder","borderStyle","BorderBoxControlVisualizer","borders","top","bottom","borderLeft","left","borderRight","right","BorderBoxControlSplitControls","marginRight","marginLeft","CenteredBorderControl"],"mappings":";;;;;;;AAGA;;AAKA;;AACA;;;;AAKO,MAAMA,gBAAgB,oBAAGC,UAAH,0wFAAtB;;AAEA,MAAMC,mBAAmB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,CAAzB;;AAIA,MAAMC,4BAA4B;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,CAAlC;;;AAMP,MAAMC,0BAA0B,GAAKC,MAAF,IAAuB;AACzD,QAAM;AACLC,IAAAA,KAAK,GAAGC,cAAOC,IAAP,CAAa,GAAb,CADH;AAELC,IAAAA,KAAK,GAAG,OAFH;AAGLC,IAAAA,KAAK,GAAGC,cAAOC;AAHV,MAIFP,MAAM,IAAI,EAJd;AAMA,QAAMQ,YAAY,GACjBH,KAAK,KAAKC,cAAOC,WAAjB,GAAgC,cAAcF,KAAO,SAArD,GAAgEA,KADjE;AAEA,QAAMI,gBAAgB,GAAK,CAAC,CAAEJ,KAAH,IAAYA,KAAK,KAAK,GAAxB,IAAiC,CAAC,CAAEJ,KAA7D;AACA,QAAMS,WAAW,GAAGD,gBAAgB,GAAGL,KAAK,IAAI,OAAZ,GAAsBA,KAA1D;AAEA,SAAQ,GAAGH,KAAO,IAAIS,WAAa,IAAIF,YAAc,EAArD;AACA,CAbD;;AAeO,MAAMG,0BAA0B,GAAKC,OAAF,IAAyB;AAClE,0BAAOhB,UAAP,6EAMgBG,0BAA0B,CAAEa,OAAF,aAAEA,OAAF,uBAAEA,OAAO,CAAEC,GAAX,CAN1C,qBAOmBd,0BAA0B,CAAEa,OAAF,aAAEA,OAAF,uBAAEA,OAAO,CAAEE,MAAX,CAP7C,OAQI,gBAAK;AACPC,IAAAA,UAAU,EAAEhB,0BAA0B,CAAEa,OAAF,aAAEA,OAAF,uBAAEA,OAAO,CAAEI,IAAX;AAD/B,GAAL,GARJ,OAWI,gBAAK;AACPC,IAAAA,WAAW,EAAElB,0BAA0B,CAAEa,OAAF,aAAEA,OAAF,uBAAEA,OAAO,CAAEM,KAAX;AADhC,GAAL,GAXJ;AAeA,CAhBM;;;AAkBA,MAAMC,6BAA6B,oBAAGvB,UAAH,+BAGtC,gBAAK;AAAEwB,EAAAA,WAAW,EAAE,kBAAO,CAAP;AAAf,CAAL,EAAkC;AAAEC,EAAAA,UAAU,EAAE,kBAAO,CAAP;AAAd,CAAlC,GAHsC,+xFAAnC;;AAMA,MAAMC,qBAAqB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,CAA3B","sourcesContent":["/**\n * External dependencies\n */\nimport { css } from '@emotion/react';\n\n/**\n * Internal dependencies\n */\nimport { COLORS, CONFIG, rtl } from '../utils';\nimport { space } from '../ui/utils/space';\n\nimport type { Border } from '../border-control/types';\nimport type { Borders } from './types';\n\nexport const BorderBoxControl = css``;\n\nexport const LinkedBorderControl = css`\n\tflex: 1;\n`;\n\nexport const BorderBoxControlLinkedButton = css`\n\tflex: 0;\n\tflex-basis: 36px;\n\tmargin-top: 7px;\n`;\n\nconst BorderBoxStyleWithFallback = ( border?: Border ) => {\n\tconst {\n\t\tcolor = COLORS.gray[ 200 ],\n\t\tstyle = 'solid',\n\t\twidth = CONFIG.borderWidth,\n\t} = border || {};\n\n\tconst clampedWidth =\n\t\twidth !== CONFIG.borderWidth ? `clamp(1px, ${ width }, 10px)` : width;\n\tconst hasVisibleBorder = ( !! width && width !== '0' ) || !! color;\n\tconst borderStyle = hasVisibleBorder ? style || 'solid' : style;\n\n\treturn `${ color } ${ borderStyle } ${ clampedWidth }`;\n};\n\nexport const BorderBoxControlVisualizer = ( borders?: Borders ) => {\n\treturn css`\n\t\tposition: absolute;\n\t\ttop: 20px;\n\t\tright: 30px;\n\t\tbottom: 20px;\n\t\tleft: 30px;\n\t\tborder-top: ${ BorderBoxStyleWithFallback( borders?.top ) };\n\t\tborder-bottom: ${ BorderBoxStyleWithFallback( borders?.bottom ) };\n\t\t${ rtl( {\n\t\t\tborderLeft: BorderBoxStyleWithFallback( borders?.left ),\n\t\t} )() }\n\t\t${ rtl( {\n\t\t\tborderRight: BorderBoxStyleWithFallback( borders?.right ),\n\t\t} )() }\n\t`;\n};\n\nexport const BorderBoxControlSplitControls = css`\n\tposition: relative;\n\tflex: 1;\n\t${ rtl( { marginRight: space( 3 ) }, { marginLeft: space( 3 ) } )() }\n`;\n\nexport const CenteredBorderControl = css`\n\tgrid-column: span 2;\n\tmargin: 0 auto;\n`;\n"]}
@@ -0,0 +1,6 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ //# sourceMappingURL=types.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":[],"names":[],"mappings":"","sourcesContent":[]}
@@ -0,0 +1,161 @@
1
+ "use strict";
2
+
3
+ Object.defineProperty(exports, "__esModule", {
4
+ value: true
5
+ });
6
+ exports.isEmptyBorder = exports.isDefinedBorder = exports.isCompleteBorder = exports.hasSplitBorders = exports.hasMixedBorders = exports.getSplitBorders = exports.getShorthandBorderStyle = exports.getCommonBorder = exports.getBorderDiff = void 0;
7
+
8
+ /**
9
+ * External dependencies
10
+ */
11
+
12
+ /**
13
+ * Internal dependencies
14
+ */
15
+ const sides = ['top', 'right', 'bottom', 'left'];
16
+ const borderProps = ['color', 'style', 'width'];
17
+
18
+ const isEmptyBorder = border => {
19
+ if (!border) {
20
+ return true;
21
+ }
22
+
23
+ return !borderProps.some(prop => border[prop] !== undefined);
24
+ };
25
+
26
+ exports.isEmptyBorder = isEmptyBorder;
27
+
28
+ const isDefinedBorder = border => {
29
+ // No border, no worries :)
30
+ if (!border) {
31
+ return false;
32
+ } // If we have individual borders per side within the border object we
33
+ // need to check whether any of those side borders have been set.
34
+
35
+
36
+ if (hasSplitBorders(border)) {
37
+ const allSidesEmpty = sides.every(side => isEmptyBorder(border[side]));
38
+ return !allSidesEmpty;
39
+ } // If we have a top-level border only, check if that is empty. e.g.
40
+ // { color: undefined, style: undefined, width: undefined }
41
+ // Border radius can still be set within the border object as it is
42
+ // handled separately.
43
+
44
+
45
+ return !isEmptyBorder(border);
46
+ };
47
+
48
+ exports.isDefinedBorder = isDefinedBorder;
49
+
50
+ const isCompleteBorder = border => {
51
+ if (!border) {
52
+ return false;
53
+ }
54
+
55
+ return borderProps.every(prop => border[prop] !== undefined);
56
+ };
57
+
58
+ exports.isCompleteBorder = isCompleteBorder;
59
+
60
+ const hasSplitBorders = function () {
61
+ let border = arguments.length > 0 && arguments[0] !== undefined ? arguments[0] : {};
62
+ return Object.keys(border).some(side => sides.indexOf(side) !== -1);
63
+ };
64
+
65
+ exports.hasSplitBorders = hasSplitBorders;
66
+
67
+ const hasMixedBorders = borders => {
68
+ if (!hasSplitBorders(borders)) {
69
+ return false;
70
+ }
71
+
72
+ const shorthandBorders = sides.map(side => getShorthandBorderStyle(borders === null || borders === void 0 ? void 0 : borders[side]));
73
+ return !shorthandBorders.every(border => border === shorthandBorders[0]);
74
+ };
75
+
76
+ exports.hasMixedBorders = hasMixedBorders;
77
+
78
+ const getSplitBorders = border => {
79
+ if (!border || isEmptyBorder(border)) {
80
+ return undefined;
81
+ }
82
+
83
+ return {
84
+ top: border,
85
+ right: border,
86
+ bottom: border,
87
+ left: border
88
+ };
89
+ };
90
+
91
+ exports.getSplitBorders = getSplitBorders;
92
+
93
+ const getBorderDiff = (original, updated) => {
94
+ const diff = {};
95
+
96
+ if (original.color !== updated.color) {
97
+ diff.color = updated.color;
98
+ }
99
+
100
+ if (original.style !== updated.style) {
101
+ diff.style = updated.style;
102
+ }
103
+
104
+ if (original.width !== updated.width) {
105
+ diff.width = updated.width;
106
+ }
107
+
108
+ return diff;
109
+ };
110
+
111
+ exports.getBorderDiff = getBorderDiff;
112
+
113
+ const getCommonBorder = borders => {
114
+ if (!borders) {
115
+ return undefined;
116
+ }
117
+
118
+ const colors = [];
119
+ const styles = [];
120
+ const widths = [];
121
+ sides.forEach(side => {
122
+ var _borders$side, _borders$side2, _borders$side3;
123
+
124
+ colors.push((_borders$side = borders[side]) === null || _borders$side === void 0 ? void 0 : _borders$side.color);
125
+ styles.push((_borders$side2 = borders[side]) === null || _borders$side2 === void 0 ? void 0 : _borders$side2.style);
126
+ widths.push((_borders$side3 = borders[side]) === null || _borders$side3 === void 0 ? void 0 : _borders$side3.width);
127
+ });
128
+ const allColorsMatch = colors.every(value => value === colors[0]);
129
+ const allStylesMatch = styles.every(value => value === styles[0]);
130
+ const allWidthsMatch = widths.every(value => value === widths[0]);
131
+ return {
132
+ color: allColorsMatch ? colors[0] : undefined,
133
+ style: allStylesMatch ? styles[0] : undefined,
134
+ width: allWidthsMatch ? widths[0] : undefined
135
+ };
136
+ };
137
+
138
+ exports.getCommonBorder = getCommonBorder;
139
+
140
+ const getShorthandBorderStyle = (border, fallbackBorder) => {
141
+ if (isEmptyBorder(border)) {
142
+ return fallbackBorder;
143
+ }
144
+
145
+ const {
146
+ color: fallbackColor,
147
+ style: fallbackStyle,
148
+ width: fallbackWidth
149
+ } = fallbackBorder || {};
150
+ const {
151
+ color = fallbackColor,
152
+ style = fallbackStyle,
153
+ width = fallbackWidth
154
+ } = border;
155
+ const hasVisibleBorder = !!width && width !== '0' || !!color;
156
+ const borderStyle = hasVisibleBorder ? style || 'solid' : style;
157
+ return [width, borderStyle, color].filter(Boolean).join(' ');
158
+ };
159
+
160
+ exports.getShorthandBorderStyle = getShorthandBorderStyle;
161
+ //# sourceMappingURL=utils.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["@wordpress/components/src/border-box-control/utils.ts"],"names":["sides","borderProps","isEmptyBorder","border","some","prop","undefined","isDefinedBorder","hasSplitBorders","allSidesEmpty","every","side","isCompleteBorder","Object","keys","indexOf","hasMixedBorders","borders","shorthandBorders","map","getShorthandBorderStyle","getSplitBorders","top","right","bottom","left","getBorderDiff","original","updated","diff","color","style","width","getCommonBorder","colors","styles","widths","forEach","push","allColorsMatch","value","allStylesMatch","allWidthsMatch","fallbackBorder","fallbackColor","fallbackStyle","fallbackWidth","hasVisibleBorder","borderStyle","filter","Boolean","join"],"mappings":"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","sourcesContent":["/**\n * External dependencies\n */\nimport type { CSSProperties } from 'react';\n\n/**\n * Internal dependencies\n */\nimport type { Border } from '../border-control/types';\nimport type { AnyBorder, Borders, BorderProp, BorderSide } from './types';\n\nconst sides: BorderSide[] = [ 'top', 'right', 'bottom', 'left' ];\nconst borderProps: BorderProp[] = [ 'color', 'style', 'width' ];\n\nexport const isEmptyBorder = ( border?: Border ) => {\n\tif ( ! border ) {\n\t\treturn true;\n\t}\n\treturn ! borderProps.some( ( prop ) => border[ prop ] !== undefined );\n};\n\nexport const isDefinedBorder = ( border: AnyBorder ) => {\n\t// No border, no worries :)\n\tif ( ! border ) {\n\t\treturn false;\n\t}\n\n\t// If we have individual borders per side within the border object we\n\t// need to check whether any of those side borders have been set.\n\tif ( hasSplitBorders( border ) ) {\n\t\tconst allSidesEmpty = sides.every( ( side ) =>\n\t\t\tisEmptyBorder( ( border as Borders )[ side ] )\n\t\t);\n\n\t\treturn ! allSidesEmpty;\n\t}\n\n\t// If we have a top-level border only, check if that is empty. e.g.\n\t// { color: undefined, style: undefined, width: undefined }\n\t// Border radius can still be set within the border object as it is\n\t// handled separately.\n\treturn ! isEmptyBorder( border as Border );\n};\n\nexport const isCompleteBorder = ( border?: Border ) => {\n\tif ( ! border ) {\n\t\treturn false;\n\t}\n\n\treturn borderProps.every( ( prop ) => border[ prop ] !== undefined );\n};\n\nexport const hasSplitBorders = ( border: AnyBorder = {} ) => {\n\treturn Object.keys( border ).some(\n\t\t( side ) => sides.indexOf( side as BorderSide ) !== -1\n\t);\n};\n\nexport const hasMixedBorders = ( borders: AnyBorder ) => {\n\tif ( ! hasSplitBorders( borders ) ) {\n\t\treturn false;\n\t}\n\n\tconst shorthandBorders = sides.map( ( side: BorderSide ) =>\n\t\tgetShorthandBorderStyle( ( borders as Borders )?.[ side ] )\n\t);\n\n\treturn ! shorthandBorders.every(\n\t\t( border ) => border === shorthandBorders[ 0 ]\n\t);\n};\n\nexport const getSplitBorders = ( border?: Border ) => {\n\tif ( ! border || isEmptyBorder( border ) ) {\n\t\treturn undefined;\n\t}\n\n\treturn {\n\t\ttop: border,\n\t\tright: border,\n\t\tbottom: border,\n\t\tleft: border,\n\t};\n};\n\nexport const getBorderDiff = ( original: Border, updated: Border ) => {\n\tconst diff: Border = {};\n\n\tif ( original.color !== updated.color ) {\n\t\tdiff.color = updated.color;\n\t}\n\n\tif ( original.style !== updated.style ) {\n\t\tdiff.style = updated.style;\n\t}\n\n\tif ( original.width !== updated.width ) {\n\t\tdiff.width = updated.width;\n\t}\n\n\treturn diff;\n};\n\nexport const getCommonBorder = ( borders?: Borders ) => {\n\tif ( ! borders ) {\n\t\treturn undefined;\n\t}\n\n\tconst colors: ( CSSProperties[ 'borderColor' ] | undefined )[] = [];\n\tconst styles: ( CSSProperties[ 'borderStyle' ] | undefined )[] = [];\n\tconst widths: ( CSSProperties[ 'borderWidth' ] | undefined )[] = [];\n\n\tsides.forEach( ( side ) => {\n\t\tcolors.push( borders[ side ]?.color );\n\t\tstyles.push( borders[ side ]?.style );\n\t\twidths.push( borders[ side ]?.width );\n\t} );\n\n\tconst allColorsMatch = colors.every( ( value ) => value === colors[ 0 ] );\n\tconst allStylesMatch = styles.every( ( value ) => value === styles[ 0 ] );\n\tconst allWidthsMatch = widths.every( ( value ) => value === widths[ 0 ] );\n\n\treturn {\n\t\tcolor: allColorsMatch ? colors[ 0 ] : undefined,\n\t\tstyle: allStylesMatch ? styles[ 0 ] : undefined,\n\t\twidth: allWidthsMatch ? widths[ 0 ] : undefined,\n\t};\n};\n\nexport const getShorthandBorderStyle = (\n\tborder?: Border,\n\tfallbackBorder?: Border\n) => {\n\tif ( isEmptyBorder( border ) ) {\n\t\treturn fallbackBorder;\n\t}\n\n\tconst { color: fallbackColor, style: fallbackStyle, width: fallbackWidth } =\n\t\tfallbackBorder || {};\n\n\tconst {\n\t\tcolor = fallbackColor,\n\t\tstyle = fallbackStyle,\n\t\twidth = fallbackWidth,\n\t} = border as Border;\n\n\tconst hasVisibleBorder = ( !! width && width !== '0' ) || !! color;\n\tconst borderStyle = hasVisibleBorder ? style || 'solid' : style;\n\n\treturn [ width, borderStyle, color ].filter( Boolean ).join( ' ' );\n};\n"]}
@@ -0,0 +1,119 @@
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 _borderControlDropdown = _interopRequireDefault(require("../border-control-dropdown"));
15
+
16
+ var _unitControl = _interopRequireDefault(require("../../unit-control"));
17
+
18
+ var _rangeControl = _interopRequireDefault(require("../../range-control"));
19
+
20
+ var _hStack = require("../../h-stack");
21
+
22
+ var _baseControlStyles = require("../../base-control/styles/base-control-styles");
23
+
24
+ var _view = require("../../view");
25
+
26
+ var _visuallyHidden = require("../../visually-hidden");
27
+
28
+ var _context = require("../../ui/context");
29
+
30
+ var _hook = require("./hook");
31
+
32
+ /**
33
+ * Internal dependencies
34
+ */
35
+ const BorderLabel = props => {
36
+ const {
37
+ label,
38
+ hideLabelFromVision
39
+ } = props;
40
+
41
+ if (!label) {
42
+ return null;
43
+ }
44
+
45
+ return hideLabelFromVision ? (0, _element.createElement)(_visuallyHidden.VisuallyHidden, {
46
+ as: "label"
47
+ }, label) : (0, _element.createElement)(_baseControlStyles.StyledLabel, null, label);
48
+ };
49
+
50
+ const BorderControl = (props, forwardedRef) => {
51
+ const {
52
+ colors,
53
+ disableCustomColors,
54
+ enableAlpha,
55
+ enableStyle = true,
56
+ hideLabelFromVision,
57
+ innerWrapperClassName,
58
+ label,
59
+ onBorderChange,
60
+ onSliderChange,
61
+ onWidthChange,
62
+ placeholder,
63
+ popoverContentClassName,
64
+ previousStyleSelection,
65
+ showDropdownHeader,
66
+ sliderClassName,
67
+ value: border,
68
+ widthControlClassName,
69
+ widthUnit,
70
+ widthValue,
71
+ withSlider,
72
+ __experimentalHasMultipleOrigins,
73
+ __experimentalIsRenderedInSidebar,
74
+ ...otherProps
75
+ } = (0, _hook.useBorderControl)(props);
76
+ return (0, _element.createElement)(_view.View, (0, _extends2.default)({}, otherProps, {
77
+ ref: forwardedRef
78
+ }), (0, _element.createElement)(BorderLabel, {
79
+ label: label,
80
+ hideLabelFromVision: hideLabelFromVision
81
+ }), (0, _element.createElement)(_hStack.HStack, {
82
+ spacing: 3
83
+ }, (0, _element.createElement)(_hStack.HStack, {
84
+ className: innerWrapperClassName,
85
+ alignment: "stretch"
86
+ }, (0, _element.createElement)(_borderControlDropdown.default, {
87
+ border: border,
88
+ colors: colors,
89
+ contentClassName: popoverContentClassName,
90
+ disableCustomColors: disableCustomColors,
91
+ enableAlpha: enableAlpha,
92
+ enableStyle: enableStyle,
93
+ onChange: onBorderChange,
94
+ previousStyleSelection: previousStyleSelection,
95
+ showDropdownHeader: showDropdownHeader,
96
+ __experimentalHasMultipleOrigins: __experimentalHasMultipleOrigins,
97
+ __experimentalIsRenderedInSidebar: __experimentalIsRenderedInSidebar
98
+ }), (0, _element.createElement)(_unitControl.default, {
99
+ className: widthControlClassName,
100
+ min: 0,
101
+ onChange: onWidthChange,
102
+ value: (border === null || border === void 0 ? void 0 : border.width) || '',
103
+ placeholder: placeholder
104
+ })), withSlider && (0, _element.createElement)(_rangeControl.default, {
105
+ className: sliderClassName,
106
+ initialPosition: 0,
107
+ max: 100,
108
+ min: 0,
109
+ onChange: onSliderChange,
110
+ step: ['px', '%'].includes(widthUnit) ? 1 : 0.1,
111
+ value: widthValue || undefined,
112
+ withInputField: false
113
+ })));
114
+ };
115
+
116
+ const ConnectedBorderControl = (0, _context.contextConnect)(BorderControl, 'BorderControl');
117
+ var _default = ConnectedBorderControl;
118
+ exports.default = _default;
119
+ //# sourceMappingURL=component.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"sources":["@wordpress/components/src/border-control/border-control/component.tsx"],"names":["BorderLabel","props","label","hideLabelFromVision","BorderControl","forwardedRef","colors","disableCustomColors","enableAlpha","enableStyle","innerWrapperClassName","onBorderChange","onSliderChange","onWidthChange","placeholder","popoverContentClassName","previousStyleSelection","showDropdownHeader","sliderClassName","value","border","widthControlClassName","widthUnit","widthValue","withSlider","__experimentalHasMultipleOrigins","__experimentalIsRenderedInSidebar","otherProps","width","includes","undefined","ConnectedBorderControl"],"mappings":"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","sourcesContent":["/**\n * Internal dependencies\n */\nimport BorderControlDropdown from '../border-control-dropdown';\nimport UnitControl from '../../unit-control';\nimport RangeControl from '../../range-control';\nimport { HStack } from '../../h-stack';\nimport { StyledLabel } from '../../base-control/styles/base-control-styles';\nimport { View } from '../../view';\nimport { VisuallyHidden } from '../../visually-hidden';\nimport { contextConnect, WordPressComponentProps } from '../../ui/context';\nimport { useBorderControl } from './hook';\n\nimport type { BorderControlProps, LabelProps } from '../types';\n\nconst BorderLabel = ( 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 BorderControl = (\n\tprops: WordPressComponentProps< BorderControlProps, 'div' >,\n\tforwardedRef: React.ForwardedRef< any >\n) => {\n\tconst {\n\t\tcolors,\n\t\tdisableCustomColors,\n\t\tenableAlpha,\n\t\tenableStyle = true,\n\t\thideLabelFromVision,\n\t\tinnerWrapperClassName,\n\t\tlabel,\n\t\tonBorderChange,\n\t\tonSliderChange,\n\t\tonWidthChange,\n\t\tplaceholder,\n\t\tpopoverContentClassName,\n\t\tpreviousStyleSelection,\n\t\tshowDropdownHeader,\n\t\tsliderClassName,\n\t\tvalue: border,\n\t\twidthControlClassName,\n\t\twidthUnit,\n\t\twidthValue,\n\t\twithSlider,\n\t\t__experimentalHasMultipleOrigins,\n\t\t__experimentalIsRenderedInSidebar,\n\t\t...otherProps\n\t} = useBorderControl( props );\n\n\treturn (\n\t\t<View { ...otherProps } ref={ forwardedRef }>\n\t\t\t<BorderLabel\n\t\t\t\tlabel={ label }\n\t\t\t\thideLabelFromVision={ hideLabelFromVision }\n\t\t\t/>\n\t\t\t<HStack spacing={ 3 }>\n\t\t\t\t<HStack className={ innerWrapperClassName } alignment=\"stretch\">\n\t\t\t\t\t<BorderControlDropdown\n\t\t\t\t\t\tborder={ border }\n\t\t\t\t\t\tcolors={ colors }\n\t\t\t\t\t\tcontentClassName={ popoverContentClassName }\n\t\t\t\t\t\tdisableCustomColors={ disableCustomColors }\n\t\t\t\t\t\tenableAlpha={ enableAlpha }\n\t\t\t\t\t\tenableStyle={ enableStyle }\n\t\t\t\t\t\tonChange={ onBorderChange }\n\t\t\t\t\t\tpreviousStyleSelection={ previousStyleSelection }\n\t\t\t\t\t\tshowDropdownHeader={ showDropdownHeader }\n\t\t\t\t\t\t__experimentalHasMultipleOrigins={\n\t\t\t\t\t\t\t__experimentalHasMultipleOrigins\n\t\t\t\t\t\t}\n\t\t\t\t\t\t__experimentalIsRenderedInSidebar={\n\t\t\t\t\t\t\t__experimentalIsRenderedInSidebar\n\t\t\t\t\t\t}\n\t\t\t\t\t/>\n\t\t\t\t\t<UnitControl\n\t\t\t\t\t\tclassName={ widthControlClassName }\n\t\t\t\t\t\tmin={ 0 }\n\t\t\t\t\t\tonChange={ onWidthChange }\n\t\t\t\t\t\tvalue={ border?.width || '' }\n\t\t\t\t\t\tplaceholder={ placeholder }\n\t\t\t\t\t/>\n\t\t\t\t</HStack>\n\t\t\t\t{ withSlider && (\n\t\t\t\t\t<RangeControl\n\t\t\t\t\t\tclassName={ sliderClassName }\n\t\t\t\t\t\tinitialPosition={ 0 }\n\t\t\t\t\t\tmax={ 100 }\n\t\t\t\t\t\tmin={ 0 }\n\t\t\t\t\t\tonChange={ onSliderChange }\n\t\t\t\t\t\tstep={ [ 'px', '%' ].includes( widthUnit ) ? 1 : 0.1 }\n\t\t\t\t\t\tvalue={ widthValue || undefined }\n\t\t\t\t\t\twithInputField={ false }\n\t\t\t\t\t/>\n\t\t\t\t) }\n\t\t\t</HStack>\n\t\t</View>\n\t);\n};\n\nconst ConnectedBorderControl = contextConnect( BorderControl, 'BorderControl' );\n\nexport default ConnectedBorderControl;\n"]}
@@ -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"]}