@wordpress/components 25.9.1 → 25.11.1-next.f8d8eceb.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 (364) hide show
  1. package/CHANGELOG.md +48 -0
  2. package/build/alignment-matrix-control/cell.js +8 -5
  3. package/build/alignment-matrix-control/cell.js.map +1 -1
  4. package/build/alignment-matrix-control/index.js +27 -43
  5. package/build/alignment-matrix-control/index.js.map +1 -1
  6. package/build/alignment-matrix-control/utils.js +29 -9
  7. package/build/alignment-matrix-control/utils.js.map +1 -1
  8. package/build/autocomplete/index.js +104 -52
  9. package/build/autocomplete/index.js.map +1 -1
  10. package/build/circular-option-picker/circular-option-picker-option.js +20 -39
  11. package/build/circular-option-picker/circular-option-picker-option.js.map +1 -1
  12. package/build/circular-option-picker/circular-option-picker.js +11 -32
  13. package/build/circular-option-picker/circular-option-picker.js.map +1 -1
  14. package/build/circular-option-picker/types.js.map +1 -1
  15. package/build/color-palette/index.js +7 -2
  16. package/build/color-palette/index.js.map +1 -1
  17. package/build/color-picker/component.js +12 -2
  18. package/build/color-picker/component.js.map +1 -1
  19. package/build/color-picker/picker.js +77 -1
  20. package/build/color-picker/picker.js.map +1 -1
  21. package/build/color-picker/styles.js +8 -8
  22. package/build/color-picker/styles.js.map +1 -1
  23. package/build/color-picker/types.js.map +1 -1
  24. package/build/composite/v2.js +43 -0
  25. package/build/composite/v2.js.map +1 -0
  26. package/build/confirm-dialog/component.js +74 -8
  27. package/build/confirm-dialog/component.js.map +1 -1
  28. package/build/confirm-dialog/types.js.map +1 -1
  29. package/build/custom-gradient-picker/gradient-bar/control-points.js +13 -4
  30. package/build/custom-gradient-picker/gradient-bar/control-points.js.map +1 -1
  31. package/build/dropdown-menu-v2-ariakit/index.js +217 -0
  32. package/build/dropdown-menu-v2-ariakit/index.js.map +1 -0
  33. package/build/dropdown-menu-v2-ariakit/styles.js +157 -0
  34. package/build/dropdown-menu-v2-ariakit/styles.js.map +1 -0
  35. package/build/dropdown-menu-v2-ariakit/types.js +6 -0
  36. package/build/dropdown-menu-v2-ariakit/types.js.map +1 -0
  37. package/build/font-size-picker/utils.js +1 -1
  38. package/build/font-size-picker/utils.js.map +1 -1
  39. package/build/input-control/styles/input-control-styles.js +23 -23
  40. package/build/input-control/styles/input-control-styles.js.map +1 -1
  41. package/build/mobile/global-styles-context/utils.native.js +1 -1
  42. package/build/mobile/global-styles-context/utils.native.js.map +1 -1
  43. package/build/modal/index.js +45 -16
  44. package/build/modal/index.js.map +1 -1
  45. package/build/palette-edit/index.js +4 -0
  46. package/build/palette-edit/index.js.map +1 -1
  47. package/build/popover/index.js +34 -6
  48. package/build/popover/index.js.map +1 -1
  49. package/build/private-apis.js +18 -2
  50. package/build/private-apis.js.map +1 -1
  51. package/build/progress-bar/styles.js +5 -5
  52. package/build/progress-bar/styles.js.map +1 -1
  53. package/build/sandbox/index.js +1 -1
  54. package/build/sandbox/index.js.map +1 -1
  55. package/build/sandbox/index.native.js +1 -1
  56. package/build/sandbox/index.native.js.map +1 -1
  57. package/build/select-control/styles/select-control-styles.js +8 -8
  58. package/build/select-control/styles/select-control-styles.js.map +1 -1
  59. package/build/tabs/context.js +16 -0
  60. package/build/tabs/context.js.map +1 -0
  61. package/build/tabs/index.js +147 -0
  62. package/build/tabs/index.js.map +1 -0
  63. package/build/tabs/styles.js +38 -0
  64. package/build/tabs/styles.js.map +1 -0
  65. package/build/tabs/tab.js +46 -0
  66. package/build/tabs/tab.js.map +1 -0
  67. package/build/tabs/tablist.js +47 -0
  68. package/build/tabs/tablist.js.map +1 -0
  69. package/build/tabs/tabpanel.js +48 -0
  70. package/build/tabs/tabpanel.js.map +1 -0
  71. package/build/tabs/types.js +6 -0
  72. package/build/tabs/types.js.map +1 -0
  73. package/build/text/component.js +7 -6
  74. package/build/text/component.js.map +1 -1
  75. package/build/text/hook.js +6 -15
  76. package/build/text/hook.js.map +1 -1
  77. package/build/text/index.js.map +1 -1
  78. package/build/text/styles.js +7 -7
  79. package/build/text/styles.js.map +1 -1
  80. package/build/text/types.js.map +1 -1
  81. package/build/text/utils.js +17 -33
  82. package/build/text/utils.js.map +1 -1
  83. package/build/toggle-group-control/toggle-group-control-option-base/component.js +1 -0
  84. package/build/toggle-group-control/toggle-group-control-option-base/component.js.map +1 -1
  85. package/build/toolbar/toolbar/index.js +17 -10
  86. package/build/toolbar/toolbar/index.js.map +1 -1
  87. package/build/toolbar/toolbar/types.js.map +1 -1
  88. package/build/tools-panel/tools-panel-item/hook.js +2 -2
  89. package/build/tools-panel/tools-panel-item/hook.js.map +1 -1
  90. package/build/tools-panel/types.js.map +1 -1
  91. package/build/tooltip/index.js +2 -2
  92. package/build/tooltip/index.js.map +1 -1
  93. package/build/unit-control/utils.js +108 -0
  94. package/build/unit-control/utils.js.map +1 -1
  95. package/build/utils/unit-values.js +1 -1
  96. package/build/utils/unit-values.js.map +1 -1
  97. package/build-module/alignment-matrix-control/cell.js +7 -4
  98. package/build-module/alignment-matrix-control/cell.js.map +1 -1
  99. package/build-module/alignment-matrix-control/index.js +27 -43
  100. package/build-module/alignment-matrix-control/index.js.map +1 -1
  101. package/build-module/alignment-matrix-control/utils.js +29 -8
  102. package/build-module/alignment-matrix-control/utils.js.map +1 -1
  103. package/build-module/autocomplete/index.js +104 -52
  104. package/build-module/autocomplete/index.js.map +1 -1
  105. package/build-module/circular-option-picker/circular-option-picker-option.js +20 -39
  106. package/build-module/circular-option-picker/circular-option-picker-option.js.map +1 -1
  107. package/build-module/circular-option-picker/circular-option-picker.js +10 -31
  108. package/build-module/circular-option-picker/circular-option-picker.js.map +1 -1
  109. package/build-module/circular-option-picker/types.js.map +1 -1
  110. package/build-module/color-palette/index.js +7 -2
  111. package/build-module/color-palette/index.js.map +1 -1
  112. package/build-module/color-picker/component.js +13 -3
  113. package/build-module/color-picker/component.js.map +1 -1
  114. package/build-module/color-picker/picker.js +78 -2
  115. package/build-module/color-picker/picker.js.map +1 -1
  116. package/build-module/color-picker/styles.js +8 -8
  117. package/build-module/color-picker/styles.js.map +1 -1
  118. package/build-module/color-picker/types.js.map +1 -1
  119. package/build-module/composite/v2.js +15 -0
  120. package/build-module/composite/v2.js.map +1 -0
  121. package/build-module/confirm-dialog/component.js +72 -7
  122. package/build-module/confirm-dialog/component.js.map +1 -1
  123. package/build-module/confirm-dialog/types.js.map +1 -1
  124. package/build-module/custom-gradient-picker/gradient-bar/control-points.js +13 -4
  125. package/build-module/custom-gradient-picker/gradient-bar/control-points.js.map +1 -1
  126. package/build-module/dropdown-menu-v2-ariakit/index.js +199 -0
  127. package/build-module/dropdown-menu-v2-ariakit/index.js.map +1 -0
  128. package/build-module/dropdown-menu-v2-ariakit/styles.js +136 -0
  129. package/build-module/dropdown-menu-v2-ariakit/styles.js.map +1 -0
  130. package/build-module/dropdown-menu-v2-ariakit/types.js +2 -0
  131. package/build-module/dropdown-menu-v2-ariakit/types.js.map +1 -0
  132. package/build-module/font-size-picker/utils.js +1 -1
  133. package/build-module/font-size-picker/utils.js.map +1 -1
  134. package/build-module/input-control/styles/input-control-styles.js +23 -23
  135. package/build-module/input-control/styles/input-control-styles.js.map +1 -1
  136. package/build-module/mobile/global-styles-context/utils.native.js +2 -2
  137. package/build-module/mobile/global-styles-context/utils.native.js.map +1 -1
  138. package/build-module/modal/index.js +47 -18
  139. package/build-module/modal/index.js.map +1 -1
  140. package/build-module/palette-edit/index.js +4 -0
  141. package/build-module/palette-edit/index.js.map +1 -1
  142. package/build-module/popover/index.js +34 -6
  143. package/build-module/popover/index.js.map +1 -1
  144. package/build-module/private-apis.js +18 -2
  145. package/build-module/private-apis.js.map +1 -1
  146. package/build-module/progress-bar/styles.js +5 -5
  147. package/build-module/progress-bar/styles.js.map +1 -1
  148. package/build-module/sandbox/index.js +1 -1
  149. package/build-module/sandbox/index.js.map +1 -1
  150. package/build-module/sandbox/index.native.js +1 -1
  151. package/build-module/sandbox/index.native.js.map +1 -1
  152. package/build-module/select-control/styles/select-control-styles.js +8 -8
  153. package/build-module/select-control/styles/select-control-styles.js.map +1 -1
  154. package/build-module/tabs/context.js +12 -0
  155. package/build-module/tabs/context.js.map +1 -0
  156. package/build-module/tabs/index.js +142 -0
  157. package/build-module/tabs/index.js.map +1 -0
  158. package/build-module/tabs/styles.js +36 -0
  159. package/build-module/tabs/styles.js.map +1 -0
  160. package/build-module/tabs/tab.js +43 -0
  161. package/build-module/tabs/tab.js.map +1 -0
  162. package/build-module/tabs/tablist.js +41 -0
  163. package/build-module/tabs/tablist.js.map +1 -0
  164. package/build-module/tabs/tabpanel.js +43 -0
  165. package/build-module/tabs/tabpanel.js.map +1 -0
  166. package/build-module/tabs/types.js +2 -0
  167. package/build-module/tabs/types.js.map +1 -0
  168. package/build-module/text/component.js +6 -6
  169. package/build-module/text/component.js.map +1 -1
  170. package/build-module/text/hook.js +11 -19
  171. package/build-module/text/hook.js.map +1 -1
  172. package/build-module/text/index.js.map +1 -1
  173. package/build-module/text/styles.js +7 -7
  174. package/build-module/text/styles.js.map +1 -1
  175. package/build-module/text/types.js.map +1 -1
  176. package/build-module/text/utils.js +17 -10
  177. package/build-module/text/utils.js.map +1 -1
  178. package/build-module/toggle-group-control/toggle-group-control-option-base/component.js +1 -0
  179. package/build-module/toggle-group-control/toggle-group-control-option-base/component.js.map +1 -1
  180. package/build-module/toolbar/toolbar/index.js +18 -11
  181. package/build-module/toolbar/toolbar/index.js.map +1 -1
  182. package/build-module/toolbar/toolbar/types.js.map +1 -1
  183. package/build-module/tools-panel/tools-panel-item/hook.js +2 -2
  184. package/build-module/tools-panel/tools-panel-item/hook.js.map +1 -1
  185. package/build-module/tools-panel/types.js.map +1 -1
  186. package/build-module/tooltip/index.js +2 -2
  187. package/build-module/tooltip/index.js.map +1 -1
  188. package/build-module/unit-control/utils.js +108 -0
  189. package/build-module/unit-control/utils.js.map +1 -1
  190. package/build-module/utils/unit-values.js +1 -1
  191. package/build-module/utils/unit-values.js.map +1 -1
  192. package/build-style/style-rtl.css +17 -5
  193. package/build-style/style.css +17 -5
  194. package/build-types/alignment-matrix-control/cell.d.ts +1 -1
  195. package/build-types/alignment-matrix-control/cell.d.ts.map +1 -1
  196. package/build-types/alignment-matrix-control/index.d.ts.map +1 -1
  197. package/build-types/alignment-matrix-control/stories/index.story.d.ts.map +1 -1
  198. package/build-types/alignment-matrix-control/utils.d.ts +9 -9
  199. package/build-types/alignment-matrix-control/utils.d.ts.map +1 -1
  200. package/build-types/autocomplete/index.d.ts.map +1 -1
  201. package/build-types/circular-option-picker/circular-option-picker-option.d.ts.map +1 -1
  202. package/build-types/circular-option-picker/circular-option-picker.d.ts.map +1 -1
  203. package/build-types/circular-option-picker/types.d.ts +4 -6
  204. package/build-types/circular-option-picker/types.d.ts.map +1 -1
  205. package/build-types/color-palette/index.d.ts.map +1 -1
  206. package/build-types/color-picker/component.d.ts.map +1 -1
  207. package/build-types/color-picker/picker.d.ts +1 -1
  208. package/build-types/color-picker/picker.d.ts.map +1 -1
  209. package/build-types/color-picker/styles.d.ts.map +1 -1
  210. package/build-types/color-picker/types.d.ts +3 -0
  211. package/build-types/color-picker/types.d.ts.map +1 -1
  212. package/build-types/composite/v2.d.ts +12 -0
  213. package/build-types/composite/v2.d.ts.map +1 -0
  214. package/build-types/confirm-dialog/component.d.ts +70 -29
  215. package/build-types/confirm-dialog/component.d.ts.map +1 -1
  216. package/build-types/confirm-dialog/stories/index.story.d.ts +11 -0
  217. package/build-types/confirm-dialog/stories/index.story.d.ts.map +1 -0
  218. package/build-types/confirm-dialog/test/index.d.ts +2 -0
  219. package/build-types/confirm-dialog/test/index.d.ts.map +1 -0
  220. package/build-types/confirm-dialog/types.d.ts +32 -10
  221. package/build-types/confirm-dialog/types.d.ts.map +1 -1
  222. package/build-types/custom-gradient-picker/gradient-bar/control-points.d.ts.map +1 -1
  223. package/build-types/dropdown-menu-v2-ariakit/index.d.ts +11 -0
  224. package/build-types/dropdown-menu-v2-ariakit/index.d.ts.map +1 -0
  225. package/build-types/dropdown-menu-v2-ariakit/stories/index.story.d.ts +16 -0
  226. package/build-types/dropdown-menu-v2-ariakit/stories/index.story.d.ts.map +1 -0
  227. package/build-types/dropdown-menu-v2-ariakit/styles.d.ts +88 -0
  228. package/build-types/dropdown-menu-v2-ariakit/styles.d.ts.map +1 -0
  229. package/build-types/dropdown-menu-v2-ariakit/test/index.d.ts +2 -0
  230. package/build-types/dropdown-menu-v2-ariakit/test/index.d.ts.map +1 -0
  231. package/build-types/dropdown-menu-v2-ariakit/types.d.ts +174 -0
  232. package/build-types/dropdown-menu-v2-ariakit/types.d.ts.map +1 -0
  233. package/build-types/font-size-picker/utils.d.ts.map +1 -1
  234. package/build-types/heading/stories/index.story.d.ts.map +1 -1
  235. package/build-types/modal/index.d.ts.map +1 -1
  236. package/build-types/palette-edit/index.d.ts.map +1 -1
  237. package/build-types/popover/index.d.ts +1 -1
  238. package/build-types/popover/index.d.ts.map +1 -1
  239. package/build-types/popover/stories/e2e/index.story.d.ts +1 -1
  240. package/build-types/private-apis.d.ts.map +1 -1
  241. package/build-types/progress-bar/styles.d.ts.map +1 -1
  242. package/build-types/sandbox/index.d.ts.map +1 -1
  243. package/build-types/tabs/context.d.ts +8 -0
  244. package/build-types/tabs/context.d.ts.map +1 -0
  245. package/build-types/tabs/index.d.ts +13 -0
  246. package/build-types/tabs/index.d.ts.map +1 -0
  247. package/build-types/tabs/stories/index.story.d.ts +20 -0
  248. package/build-types/tabs/stories/index.story.d.ts.map +1 -0
  249. package/build-types/tabs/styles.d.ts +17 -0
  250. package/build-types/tabs/styles.d.ts.map +1 -0
  251. package/build-types/tabs/tab.d.ts +10 -0
  252. package/build-types/tabs/tab.d.ts.map +1 -0
  253. package/build-types/tabs/tablist.d.ts +7 -0
  254. package/build-types/tabs/tablist.d.ts.map +1 -0
  255. package/build-types/tabs/tabpanel.d.ts +7 -0
  256. package/build-types/tabs/tabpanel.d.ts.map +1 -0
  257. package/build-types/tabs/test/index.d.ts +2 -0
  258. package/build-types/tabs/test/index.d.ts.map +1 -0
  259. package/build-types/tabs/types.d.ts +134 -0
  260. package/build-types/tabs/types.d.ts.map +1 -0
  261. package/build-types/text/component.d.ts +4 -2
  262. package/build-types/text/component.d.ts.map +1 -1
  263. package/build-types/text/hook.d.ts +171 -165
  264. package/build-types/text/hook.d.ts.map +1 -1
  265. package/build-types/text/index.d.ts +2 -2
  266. package/build-types/text/index.d.ts.map +1 -1
  267. package/build-types/text/stories/index.story.d.ts +21 -0
  268. package/build-types/text/stories/index.story.d.ts.map +1 -0
  269. package/build-types/text/styles.d.ts +7 -7
  270. package/build-types/text/styles.d.ts.map +1 -1
  271. package/build-types/text/types.d.ts +1 -1
  272. package/build-types/text/types.d.ts.map +1 -1
  273. package/build-types/text/utils.d.ts +56 -61
  274. package/build-types/text/utils.d.ts.map +1 -1
  275. package/build-types/toggle-group-control/toggle-group-control-option-base/component.d.ts.map +1 -1
  276. package/build-types/toolbar/stories/index.story.d.ts +5 -0
  277. package/build-types/toolbar/stories/index.story.d.ts.map +1 -1
  278. package/build-types/toolbar/toolbar/index.d.ts.map +1 -1
  279. package/build-types/toolbar/toolbar/types.d.ts +10 -0
  280. package/build-types/toolbar/toolbar/types.d.ts.map +1 -1
  281. package/build-types/tools-panel/tools-panel-item/hook.d.ts.map +1 -1
  282. package/build-types/tools-panel/types.d.ts +2 -0
  283. package/build-types/tools-panel/types.d.ts.map +1 -1
  284. package/build-types/tooltip/index.d.ts.map +1 -1
  285. package/build-types/unit-control/utils.d.ts.map +1 -1
  286. package/package.json +21 -20
  287. package/src/alignment-matrix-control/cell.tsx +6 -2
  288. package/src/alignment-matrix-control/index.tsx +31 -54
  289. package/src/alignment-matrix-control/stories/index.story.tsx +3 -7
  290. package/src/alignment-matrix-control/test/index.tsx +117 -18
  291. package/src/alignment-matrix-control/utils.tsx +33 -9
  292. package/src/autocomplete/index.tsx +136 -77
  293. package/src/button/style.scss +1 -2
  294. package/src/circular-option-picker/circular-option-picker-option.tsx +24 -38
  295. package/src/circular-option-picker/circular-option-picker.tsx +11 -28
  296. package/src/circular-option-picker/types.ts +6 -5
  297. package/src/color-palette/index.tsx +6 -1
  298. package/src/color-picker/component.tsx +25 -3
  299. package/src/color-picker/picker.tsx +96 -2
  300. package/src/color-picker/styles.ts +0 -1
  301. package/src/color-picker/types.ts +3 -0
  302. package/src/composite/v2.ts +22 -0
  303. package/src/confirm-dialog/README.md +1 -1
  304. package/src/confirm-dialog/component.tsx +79 -13
  305. package/src/confirm-dialog/stories/{index.story.js → index.story.tsx} +26 -24
  306. package/src/confirm-dialog/test/{index.js → index.tsx} +3 -3
  307. package/src/confirm-dialog/types.ts +32 -12
  308. package/src/custom-gradient-picker/gradient-bar/control-points.tsx +32 -25
  309. package/src/dimension-control/test/__snapshots__/index.test.js.snap +8 -8
  310. package/src/dropdown-menu-v2-ariakit/README.md +324 -0
  311. package/src/dropdown-menu-v2-ariakit/index.tsx +318 -0
  312. package/src/dropdown-menu-v2-ariakit/stories/index.story.tsx +506 -0
  313. package/src/dropdown-menu-v2-ariakit/styles.ts +297 -0
  314. package/src/dropdown-menu-v2-ariakit/test/index.tsx +1139 -0
  315. package/src/dropdown-menu-v2-ariakit/types.ts +186 -0
  316. package/src/font-size-picker/utils.ts +2 -1
  317. package/src/heading/stories/index.story.tsx +2 -4
  318. package/src/input-control/styles/input-control-styles.tsx +2 -2
  319. package/src/mobile/global-styles-context/utils.native.js +2 -2
  320. package/src/modal/index.tsx +58 -22
  321. package/src/modal/test/index.tsx +29 -0
  322. package/src/notice/style.scss +0 -1
  323. package/src/palette-edit/index.tsx +4 -0
  324. package/src/popover/index.tsx +99 -57
  325. package/src/popover/style.scss +9 -0
  326. package/src/private-apis.ts +31 -1
  327. package/src/progress-bar/styles.ts +19 -4
  328. package/src/sandbox/index.native.js +1 -1
  329. package/src/sandbox/index.tsx +3 -1
  330. package/src/select-control/styles/select-control-styles.ts +2 -2
  331. package/src/tabs/README.md +242 -0
  332. package/src/tabs/context.ts +13 -0
  333. package/src/tabs/index.tsx +167 -0
  334. package/src/tabs/stories/index.story.tsx +352 -0
  335. package/src/tabs/styles.ts +103 -0
  336. package/src/tabs/tab.tsx +39 -0
  337. package/src/tabs/tablist.tsx +40 -0
  338. package/src/tabs/tabpanel.tsx +42 -0
  339. package/src/tabs/test/index.tsx +1133 -0
  340. package/src/tabs/types.ts +142 -0
  341. package/src/text/README.md +2 -2
  342. package/src/text/{component.js → component.tsx} +10 -6
  343. package/src/text/{hook.js → hook.ts} +12 -15
  344. package/src/text/stories/index.story.tsx +80 -0
  345. package/src/text/types.ts +1 -6
  346. package/src/text/{utils.js → utils.ts} +40 -14
  347. package/src/toggle-group-control/test/__snapshots__/index.tsx.snap +16 -0
  348. package/src/toggle-group-control/toggle-group-control-option-base/component.tsx +1 -0
  349. package/src/toolbar/stories/index.story.tsx +15 -0
  350. package/src/toolbar/test/index.tsx +8 -0
  351. package/src/toolbar/toolbar/README.md +9 -0
  352. package/src/toolbar/toolbar/index.tsx +21 -12
  353. package/src/toolbar/toolbar/style.scss +9 -0
  354. package/src/toolbar/toolbar/types.ts +10 -0
  355. package/src/tools-panel/tools-panel/README.md +3 -0
  356. package/src/tools-panel/tools-panel-item/hook.ts +4 -6
  357. package/src/tools-panel/types.ts +2 -0
  358. package/src/tooltip/index.tsx +2 -3
  359. package/src/unit-control/utils.ts +124 -0
  360. package/src/utils/unit-values.ts +1 -1
  361. package/tsconfig.tsbuildinfo +1 -1
  362. package/src/text/stories/index.story.js +0 -53
  363. /package/src/text/{index.js → index.ts} +0 -0
  364. /package/src/text/{styles.js → styles.ts} +0 -0
@@ -24,19 +24,26 @@ var _context = require("../../context");
24
24
  * Internal dependencies
25
25
  */
26
26
 
27
- const CONTEXT_SYSTEM_VALUE = {
28
- DropdownMenu: {
29
- variant: 'toolbar'
30
- },
31
- Dropdown: {
32
- variant: 'toolbar'
33
- }
34
- };
35
27
  function UnforwardedToolbar({
36
28
  className,
37
29
  label,
30
+ variant,
38
31
  ...props
39
32
  }, ref) {
33
+ const isVariantDefined = variant !== undefined;
34
+ const contextSystemValue = (0, _element.useMemo)(() => {
35
+ if (isVariantDefined) {
36
+ return {};
37
+ }
38
+ return {
39
+ DropdownMenu: {
40
+ variant: 'toolbar'
41
+ },
42
+ Dropdown: {
43
+ variant: 'toolbar'
44
+ }
45
+ };
46
+ }, [isVariantDefined]);
40
47
  if (!label) {
41
48
  (0, _deprecated.default)('Using Toolbar without label prop', {
42
49
  since: '5.6',
@@ -55,9 +62,9 @@ function UnforwardedToolbar({
55
62
  });
56
63
  }
57
64
  // `ToolbarGroup` already uses components-toolbar for compatibility reasons.
58
- const finalClassName = (0, _classnames.default)('components-accessible-toolbar', className);
65
+ const finalClassName = (0, _classnames.default)('components-accessible-toolbar', className, variant && `is-${variant}`);
59
66
  return (0, _react.createElement)(_context.ContextSystemProvider, {
60
- value: CONTEXT_SYSTEM_VALUE
67
+ value: contextSystemValue
61
68
  }, (0, _react.createElement)(_toolbarContainer.default, {
62
69
  className: finalClassName,
63
70
  label: label,
@@ -1 +1 @@
1
- {"version":3,"names":["_classnames","_interopRequireDefault","require","_element","_deprecated","_toolbarGroup","_toolbarContainer","_context","CONTEXT_SYSTEM_VALUE","DropdownMenu","variant","Dropdown","UnforwardedToolbar","className","label","props","ref","deprecated","since","alternative","link","title","_title","restProps","_react","createElement","default","isCollapsed","finalClassName","classnames","ContextSystemProvider","value","Toolbar","forwardRef","exports","_default"],"sources":["@wordpress/components/src/toolbar/toolbar/index.tsx"],"sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\nimport type { ForwardedRef } from 'react';\n\n/**\n * WordPress dependencies\n */\nimport { forwardRef } from '@wordpress/element';\nimport deprecated from '@wordpress/deprecated';\n\n/**\n * Internal dependencies\n */\nimport ToolbarGroup from '../toolbar-group';\nimport ToolbarContainer from './toolbar-container';\nimport type { ToolbarProps } from './types';\nimport type { WordPressComponentProps } from '../../context';\nimport { ContextSystemProvider } from '../../context';\n\nconst CONTEXT_SYSTEM_VALUE = {\n\tDropdownMenu: {\n\t\tvariant: 'toolbar',\n\t},\n\tDropdown: {\n\t\tvariant: 'toolbar',\n\t},\n};\n\nfunction UnforwardedToolbar(\n\t{\n\t\tclassName,\n\t\tlabel,\n\t\t...props\n\t}: WordPressComponentProps< ToolbarProps, 'div', false >,\n\tref: ForwardedRef< any >\n) {\n\tif ( ! label ) {\n\t\tdeprecated( 'Using Toolbar without label prop', {\n\t\t\tsince: '5.6',\n\t\t\talternative: 'ToolbarGroup component',\n\t\t\tlink: 'https://developer.wordpress.org/block-editor/components/toolbar/',\n\t\t} );\n\t\t// Extracting title from `props` because `ToolbarGroup` doesn't accept it.\n\t\tconst { title: _title, ...restProps } = props;\n\t\treturn (\n\t\t\t<ToolbarGroup\n\t\t\t\tisCollapsed={ false }\n\t\t\t\t{ ...restProps }\n\t\t\t\tclassName={ className }\n\t\t\t/>\n\t\t);\n\t}\n\t// `ToolbarGroup` already uses components-toolbar for compatibility reasons.\n\tconst finalClassName = classnames(\n\t\t'components-accessible-toolbar',\n\t\tclassName\n\t);\n\treturn (\n\t\t<ContextSystemProvider value={ CONTEXT_SYSTEM_VALUE }>\n\t\t\t<ToolbarContainer\n\t\t\t\tclassName={ finalClassName }\n\t\t\t\tlabel={ label }\n\t\t\t\tref={ ref }\n\t\t\t\t{ ...props }\n\t\t\t/>\n\t\t</ContextSystemProvider>\n\t);\n}\n\n/**\n * Renders a toolbar.\n *\n * To add controls, simply pass `ToolbarButton` components as children.\n *\n * ```jsx\n * import { Toolbar, ToolbarButton } from '@wordpress/components';\n * import { formatBold, formatItalic, link } from '@wordpress/icons';\n *\n * function MyToolbar() {\n * return (\n * <Toolbar label=\"Options\">\n * <ToolbarButton icon={ formatBold } label=\"Bold\" />\n * <ToolbarButton icon={ formatItalic } label=\"Italic\" />\n * <ToolbarButton icon={ link } label=\"Link\" />\n * </Toolbar>\n * );\n * }\n * ```\n */\nexport const Toolbar = forwardRef( UnforwardedToolbar );\nexport default Toolbar;\n"],"mappings":";;;;;;;;AAGA,IAAAA,WAAA,GAAAC,sBAAA,CAAAC,OAAA;AAMA,IAAAC,QAAA,GAAAD,OAAA;AACA,IAAAE,WAAA,GAAAH,sBAAA,CAAAC,OAAA;AAKA,IAAAG,aAAA,GAAAJ,sBAAA,CAAAC,OAAA;AACA,IAAAI,iBAAA,GAAAL,sBAAA,CAAAC,OAAA;AAGA,IAAAK,QAAA,GAAAL,OAAA;AAnBA;AACA;AACA;;AAIA;AACA;AACA;;AAIA;AACA;AACA;;AAOA,MAAMM,oBAAoB,GAAG;EAC5BC,YAAY,EAAE;IACbC,OAAO,EAAE;EACV,CAAC;EACDC,QAAQ,EAAE;IACTD,OAAO,EAAE;EACV;AACD,CAAC;AAED,SAASE,kBAAkBA,CAC1B;EACCC,SAAS;EACTC,KAAK;EACL,GAAGC;AACmD,CAAC,EACxDC,GAAwB,EACvB;EACD,IAAK,CAAEF,KAAK,EAAG;IACd,IAAAG,mBAAU,EAAE,kCAAkC,EAAE;MAC/CC,KAAK,EAAE,KAAK;MACZC,WAAW,EAAE,wBAAwB;MACrCC,IAAI,EAAE;IACP,CAAE,CAAC;IACH;IACA,MAAM;MAAEC,KAAK,EAAEC,MAAM;MAAE,GAAGC;IAAU,CAAC,GAAGR,KAAK;IAC7C,OACC,IAAAS,MAAA,CAAAC,aAAA,EAACpB,aAAA,CAAAqB,OAAY;MACZC,WAAW,EAAG,KAAO;MAAA,GAChBJ,SAAS;MACdV,SAAS,EAAGA;IAAW,CACvB,CAAC;EAEJ;EACA;EACA,MAAMe,cAAc,GAAG,IAAAC,mBAAU,EAChC,+BAA+B,EAC/BhB,SACD,CAAC;EACD,OACC,IAAAW,MAAA,CAAAC,aAAA,EAAClB,QAAA,CAAAuB,qBAAqB;IAACC,KAAK,EAAGvB;EAAsB,GACpD,IAAAgB,MAAA,CAAAC,aAAA,EAACnB,iBAAA,CAAAoB,OAAgB;IAChBb,SAAS,EAAGe,cAAgB;IAC5Bd,KAAK,EAAGA,KAAO;IACfE,GAAG,EAAGA,GAAK;IAAA,GACND;EAAK,CACV,CACqB,CAAC;AAE1B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,MAAMiB,OAAO,GAAG,IAAAC,mBAAU,EAAErB,kBAAmB,CAAC;AAACsB,OAAA,CAAAF,OAAA,GAAAA,OAAA;AAAA,IAAAG,QAAA,GACzCH,OAAO;AAAAE,OAAA,CAAAR,OAAA,GAAAS,QAAA"}
1
+ {"version":3,"names":["_classnames","_interopRequireDefault","require","_element","_deprecated","_toolbarGroup","_toolbarContainer","_context","UnforwardedToolbar","className","label","variant","props","ref","isVariantDefined","undefined","contextSystemValue","useMemo","DropdownMenu","Dropdown","deprecated","since","alternative","link","title","_title","restProps","_react","createElement","default","isCollapsed","finalClassName","classnames","ContextSystemProvider","value","Toolbar","forwardRef","exports","_default"],"sources":["@wordpress/components/src/toolbar/toolbar/index.tsx"],"sourcesContent":["/**\n * External dependencies\n */\nimport classnames from 'classnames';\nimport type { ForwardedRef } from 'react';\n\n/**\n * WordPress dependencies\n */\nimport { forwardRef, useMemo } from '@wordpress/element';\nimport deprecated from '@wordpress/deprecated';\n\n/**\n * Internal dependencies\n */\nimport ToolbarGroup from '../toolbar-group';\nimport ToolbarContainer from './toolbar-container';\nimport type { ToolbarProps } from './types';\nimport type { WordPressComponentProps } from '../../context';\nimport { ContextSystemProvider } from '../../context';\n\nfunction UnforwardedToolbar(\n\t{\n\t\tclassName,\n\t\tlabel,\n\t\tvariant,\n\t\t...props\n\t}: WordPressComponentProps< ToolbarProps, 'div', false >,\n\tref: ForwardedRef< any >\n) {\n\tconst isVariantDefined = variant !== undefined;\n\tconst contextSystemValue = useMemo( () => {\n\t\tif ( isVariantDefined ) {\n\t\t\treturn {};\n\t\t}\n\t\treturn {\n\t\t\tDropdownMenu: {\n\t\t\t\tvariant: 'toolbar',\n\t\t\t},\n\t\t\tDropdown: {\n\t\t\t\tvariant: 'toolbar',\n\t\t\t},\n\t\t};\n\t}, [ isVariantDefined ] );\n\n\tif ( ! label ) {\n\t\tdeprecated( 'Using Toolbar without label prop', {\n\t\t\tsince: '5.6',\n\t\t\talternative: 'ToolbarGroup component',\n\t\t\tlink: 'https://developer.wordpress.org/block-editor/components/toolbar/',\n\t\t} );\n\t\t// Extracting title from `props` because `ToolbarGroup` doesn't accept it.\n\t\tconst { title: _title, ...restProps } = props;\n\t\treturn (\n\t\t\t<ToolbarGroup\n\t\t\t\tisCollapsed={ false }\n\t\t\t\t{ ...restProps }\n\t\t\t\tclassName={ className }\n\t\t\t/>\n\t\t);\n\t}\n\t// `ToolbarGroup` already uses components-toolbar for compatibility reasons.\n\tconst finalClassName = classnames(\n\t\t'components-accessible-toolbar',\n\t\tclassName,\n\t\tvariant && `is-${ variant }`\n\t);\n\n\treturn (\n\t\t<ContextSystemProvider value={ contextSystemValue }>\n\t\t\t<ToolbarContainer\n\t\t\t\tclassName={ finalClassName }\n\t\t\t\tlabel={ label }\n\t\t\t\tref={ ref }\n\t\t\t\t{ ...props }\n\t\t\t/>\n\t\t</ContextSystemProvider>\n\t);\n}\n\n/**\n * Renders a toolbar.\n *\n * To add controls, simply pass `ToolbarButton` components as children.\n *\n * ```jsx\n * import { Toolbar, ToolbarButton } from '@wordpress/components';\n * import { formatBold, formatItalic, link } from '@wordpress/icons';\n *\n * function MyToolbar() {\n * return (\n * <Toolbar label=\"Options\">\n * <ToolbarButton icon={ formatBold } label=\"Bold\" />\n * <ToolbarButton icon={ formatItalic } label=\"Italic\" />\n * <ToolbarButton icon={ link } label=\"Link\" />\n * </Toolbar>\n * );\n * }\n * ```\n */\nexport const Toolbar = forwardRef( UnforwardedToolbar );\nexport default Toolbar;\n"],"mappings":";;;;;;;;AAGA,IAAAA,WAAA,GAAAC,sBAAA,CAAAC,OAAA;AAMA,IAAAC,QAAA,GAAAD,OAAA;AACA,IAAAE,WAAA,GAAAH,sBAAA,CAAAC,OAAA;AAKA,IAAAG,aAAA,GAAAJ,sBAAA,CAAAC,OAAA;AACA,IAAAI,iBAAA,GAAAL,sBAAA,CAAAC,OAAA;AAGA,IAAAK,QAAA,GAAAL,OAAA;AAnBA;AACA;AACA;;AAIA;AACA;AACA;;AAIA;AACA;AACA;;AAOA,SAASM,kBAAkBA,CAC1B;EACCC,SAAS;EACTC,KAAK;EACLC,OAAO;EACP,GAAGC;AACmD,CAAC,EACxDC,GAAwB,EACvB;EACD,MAAMC,gBAAgB,GAAGH,OAAO,KAAKI,SAAS;EAC9C,MAAMC,kBAAkB,GAAG,IAAAC,gBAAO,EAAE,MAAM;IACzC,IAAKH,gBAAgB,EAAG;MACvB,OAAO,CAAC,CAAC;IACV;IACA,OAAO;MACNI,YAAY,EAAE;QACbP,OAAO,EAAE;MACV,CAAC;MACDQ,QAAQ,EAAE;QACTR,OAAO,EAAE;MACV;IACD,CAAC;EACF,CAAC,EAAE,CAAEG,gBAAgB,CAAG,CAAC;EAEzB,IAAK,CAAEJ,KAAK,EAAG;IACd,IAAAU,mBAAU,EAAE,kCAAkC,EAAE;MAC/CC,KAAK,EAAE,KAAK;MACZC,WAAW,EAAE,wBAAwB;MACrCC,IAAI,EAAE;IACP,CAAE,CAAC;IACH;IACA,MAAM;MAAEC,KAAK,EAAEC,MAAM;MAAE,GAAGC;IAAU,CAAC,GAAGd,KAAK;IAC7C,OACC,IAAAe,MAAA,CAAAC,aAAA,EAACvB,aAAA,CAAAwB,OAAY;MACZC,WAAW,EAAG,KAAO;MAAA,GAChBJ,SAAS;MACdjB,SAAS,EAAGA;IAAW,CACvB,CAAC;EAEJ;EACA;EACA,MAAMsB,cAAc,GAAG,IAAAC,mBAAU,EAChC,+BAA+B,EAC/BvB,SAAS,EACTE,OAAO,IAAK,MAAMA,OAAS,EAC5B,CAAC;EAED,OACC,IAAAgB,MAAA,CAAAC,aAAA,EAACrB,QAAA,CAAA0B,qBAAqB;IAACC,KAAK,EAAGlB;EAAoB,GAClD,IAAAW,MAAA,CAAAC,aAAA,EAACtB,iBAAA,CAAAuB,OAAgB;IAChBpB,SAAS,EAAGsB,cAAgB;IAC5BrB,KAAK,EAAGA,KAAO;IACfG,GAAG,EAAGA,GAAK;IAAA,GACND;EAAK,CACV,CACqB,CAAC;AAE1B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,MAAMuB,OAAO,GAAG,IAAAC,mBAAU,EAAE5B,kBAAmB,CAAC;AAAC6B,OAAA,CAAAF,OAAA,GAAAA,OAAA;AAAA,IAAAG,QAAA,GACzCH,OAAO;AAAAE,OAAA,CAAAR,OAAA,GAAAS,QAAA"}
@@ -1 +1 @@
1
- {"version":3,"names":[],"sources":["@wordpress/components/src/toolbar/toolbar/types.ts"],"sourcesContent":["/**\n * External dependencies\n */\nimport type { ReactNode } from 'react';\n\nexport type ToolbarProps = {\n\t/**\n\t * Children to be rendered inside the toolbar.\n\t */\n\tchildren?: ReactNode;\n\t/**\n\t * An accessible label for the toolbar.\n\t */\n\tlabel: string;\n};\n"],"mappings":""}
1
+ {"version":3,"names":[],"sources":["@wordpress/components/src/toolbar/toolbar/types.ts"],"sourcesContent":["/**\n * External dependencies\n */\nimport type { ReactNode } from 'react';\n\nexport type ToolbarProps = {\n\t/**\n\t * Children to be rendered inside the toolbar.\n\t */\n\tchildren?: ReactNode;\n\t/**\n\t * An accessible label for the toolbar.\n\t */\n\tlabel: string;\n\t/**\n\t * Specifies the toolbar's style.\n\t *\n\t * Leave undefined for the default style. Or `'unstyled'` which\n\t * removes the border from the toolbar, but keeps the default\n\t * popover style.\n\t *\n\t * @default undefined\n\t */\n\tvariant?: 'unstyled' | undefined;\n};\n"],"mappings":""}
@@ -129,10 +129,10 @@ function useToolsPanelItem(props) {
129
129
  const isShown = isShownByDefault ? menuItems?.[menuGroup]?.[label] !== undefined : isMenuItemChecked;
130
130
  const cx = (0, _useCx.useCx)();
131
131
  const classes = (0, _element.useMemo)(() => {
132
- const placeholderStyle = shouldRenderPlaceholder && !isShown && styles.ToolsPanelItemPlaceholder;
132
+ const shouldApplyPlaceholderStyles = shouldRenderPlaceholder && !isShown;
133
133
  const firstItemStyle = firstDisplayedItem === label && __experimentalFirstVisibleItemClass;
134
134
  const lastItemStyle = lastDisplayedItem === label && __experimentalLastVisibleItemClass;
135
- return cx(styles.ToolsPanelItem, placeholderStyle, className, firstItemStyle, lastItemStyle);
135
+ return cx(styles.ToolsPanelItem, shouldApplyPlaceholderStyles && styles.ToolsPanelItemPlaceholder, !shouldApplyPlaceholderStyles && className, firstItemStyle, lastItemStyle);
136
136
  }, [isShown, shouldRenderPlaceholder, className, cx, firstDisplayedItem, lastDisplayedItem, __experimentalFirstVisibleItemClass, __experimentalLastVisibleItemClass, label]);
137
137
  return {
138
138
  ...otherProps,
@@ -1 +1 @@
1
- {"version":3,"names":["_compose","require","_element","styles","_interopRequireWildcard","_context","_context2","_useCx","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","obj","__esModule","default","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","noop","useToolsPanelItem","props","className","hasValue","isShownByDefault","label","panelId","resetAllFilter","onDeselect","onSelect","otherProps","useContextSystem","currentPanelId","menuItems","registerResetAllFilter","deregisterResetAllFilter","registerPanelItem","deregisterPanelItem","flagItemCustomization","isResetting","shouldRenderPlaceholderItems","shouldRenderPlaceholder","firstDisplayedItem","lastDisplayedItem","__experimentalFirstVisibleItemClass","__experimentalLastVisibleItemClass","useToolsPanelContext","hasValueCallback","useCallback","resetAllFilterCallback","previousPanelId","usePrevious","hasMatchingPanel","useEffect","menuGroup","isMenuItemChecked","wasMenuItemChecked","isRegistered","undefined","isValueSet","wasValueSet","newValueSet","isShown","cx","useCx","classes","useMemo","placeholderStyle","ToolsPanelItemPlaceholder","firstItemStyle","lastItemStyle","ToolsPanelItem"],"sources":["@wordpress/components/src/tools-panel/tools-panel-item/hook.ts"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { usePrevious } from '@wordpress/compose';\nimport { useCallback, useEffect, useMemo } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport * as styles from '../styles';\nimport { useToolsPanelContext } from '../context';\nimport type { WordPressComponentProps } from '../../context';\nimport { useContextSystem } from '../../context';\nimport { useCx } from '../../utils/hooks/use-cx';\nimport type { ToolsPanelItemProps } from '../types';\n\nconst noop = () => {};\n\nexport function useToolsPanelItem(\n\tprops: WordPressComponentProps< ToolsPanelItemProps, 'div' >\n) {\n\tconst {\n\t\tclassName,\n\t\thasValue,\n\t\tisShownByDefault = false,\n\t\tlabel,\n\t\tpanelId,\n\t\tresetAllFilter = noop,\n\t\tonDeselect,\n\t\tonSelect,\n\t\t...otherProps\n\t} = useContextSystem( props, 'ToolsPanelItem' );\n\n\tconst {\n\t\tpanelId: currentPanelId,\n\t\tmenuItems,\n\t\tregisterResetAllFilter,\n\t\tderegisterResetAllFilter,\n\t\tregisterPanelItem,\n\t\tderegisterPanelItem,\n\t\tflagItemCustomization,\n\t\tisResetting,\n\t\tshouldRenderPlaceholderItems: shouldRenderPlaceholder,\n\t\tfirstDisplayedItem,\n\t\tlastDisplayedItem,\n\t\t__experimentalFirstVisibleItemClass,\n\t\t__experimentalLastVisibleItemClass,\n\t} = useToolsPanelContext();\n\n\tconst hasValueCallback = useCallback( hasValue, [ panelId, hasValue ] );\n\tconst resetAllFilterCallback = useCallback( resetAllFilter, [\n\t\tpanelId,\n\t\tresetAllFilter,\n\t] );\n\tconst previousPanelId = usePrevious( currentPanelId );\n\n\tconst hasMatchingPanel =\n\t\tcurrentPanelId === panelId || currentPanelId === null;\n\n\t// Registering the panel item allows the panel to include it in its\n\t// automatically generated menu and determine its initial checked status.\n\tuseEffect( () => {\n\t\tif ( hasMatchingPanel && previousPanelId !== null ) {\n\t\t\tregisterPanelItem( {\n\t\t\t\thasValue: hasValueCallback,\n\t\t\t\tisShownByDefault,\n\t\t\t\tlabel,\n\t\t\t\tpanelId,\n\t\t\t} );\n\t\t}\n\n\t\treturn () => {\n\t\t\tif (\n\t\t\t\t( previousPanelId === null && !! currentPanelId ) ||\n\t\t\t\tcurrentPanelId === panelId\n\t\t\t) {\n\t\t\t\tderegisterPanelItem( label );\n\t\t\t}\n\t\t};\n\t}, [\n\t\tcurrentPanelId,\n\t\thasMatchingPanel,\n\t\tisShownByDefault,\n\t\tlabel,\n\t\thasValueCallback,\n\t\tpanelId,\n\t\tpreviousPanelId,\n\t\tregisterPanelItem,\n\t\tderegisterPanelItem,\n\t] );\n\n\tuseEffect( () => {\n\t\tif ( hasMatchingPanel ) {\n\t\t\tregisterResetAllFilter( resetAllFilterCallback );\n\t\t}\n\t\treturn () => {\n\t\t\tif ( hasMatchingPanel ) {\n\t\t\t\tderegisterResetAllFilter( resetAllFilterCallback );\n\t\t\t}\n\t\t};\n\t}, [\n\t\tregisterResetAllFilter,\n\t\tderegisterResetAllFilter,\n\t\tresetAllFilterCallback,\n\t\thasMatchingPanel,\n\t] );\n\n\t// Note: `label` is used as a key when building menu item state in\n\t// `ToolsPanel`.\n\tconst menuGroup = isShownByDefault ? 'default' : 'optional';\n\tconst isMenuItemChecked = menuItems?.[ menuGroup ]?.[ label ];\n\tconst wasMenuItemChecked = usePrevious( isMenuItemChecked );\n\tconst isRegistered = menuItems?.[ menuGroup ]?.[ label ] !== undefined;\n\n\tconst isValueSet = hasValue();\n\tconst wasValueSet = usePrevious( isValueSet );\n\tconst newValueSet = isValueSet && ! wasValueSet;\n\n\t// Notify the panel when an item's value has been set.\n\t//\n\t// 1. For default controls, this is so \"reset\" appears beside its menu item.\n\t// 2. For optional controls, when the panel ID is `null`, it allows the\n\t// panel to ensure the item is toggled on for display in the menu, given the\n\t// value has been set external to the control.\n\tuseEffect( () => {\n\t\tif ( ! newValueSet ) {\n\t\t\treturn;\n\t\t}\n\n\t\tif ( isShownByDefault || currentPanelId === null ) {\n\t\t\tflagItemCustomization( label, menuGroup );\n\t\t}\n\t}, [\n\t\tcurrentPanelId,\n\t\tnewValueSet,\n\t\tisShownByDefault,\n\t\tmenuGroup,\n\t\tlabel,\n\t\tflagItemCustomization,\n\t] );\n\n\t// Determine if the panel item's corresponding menu is being toggled and\n\t// trigger appropriate callback if it is.\n\tuseEffect( () => {\n\t\t// We check whether this item is currently registered as items rendered\n\t\t// via fills can persist through the parent panel being remounted.\n\t\t// See: https://github.com/WordPress/gutenberg/pull/45673\n\t\tif ( ! isRegistered || isResetting || ! hasMatchingPanel ) {\n\t\t\treturn;\n\t\t}\n\n\t\tif ( isMenuItemChecked && ! isValueSet && ! wasMenuItemChecked ) {\n\t\t\tonSelect?.();\n\t\t}\n\n\t\tif ( ! isMenuItemChecked && wasMenuItemChecked ) {\n\t\t\tonDeselect?.();\n\t\t}\n\t}, [\n\t\thasMatchingPanel,\n\t\tisMenuItemChecked,\n\t\tisRegistered,\n\t\tisResetting,\n\t\tisValueSet,\n\t\twasMenuItemChecked,\n\t\tonSelect,\n\t\tonDeselect,\n\t] );\n\n\t// The item is shown if it is a default control regardless of whether it\n\t// has a value. Optional items are shown when they are checked or have\n\t// a value.\n\tconst isShown = isShownByDefault\n\t\t? menuItems?.[ menuGroup ]?.[ label ] !== undefined\n\t\t: isMenuItemChecked;\n\n\tconst cx = useCx();\n\tconst classes = useMemo( () => {\n\t\tconst placeholderStyle =\n\t\t\tshouldRenderPlaceholder &&\n\t\t\t! isShown &&\n\t\t\tstyles.ToolsPanelItemPlaceholder;\n\t\tconst firstItemStyle =\n\t\t\tfirstDisplayedItem === label && __experimentalFirstVisibleItemClass;\n\t\tconst lastItemStyle =\n\t\t\tlastDisplayedItem === label && __experimentalLastVisibleItemClass;\n\t\treturn cx(\n\t\t\tstyles.ToolsPanelItem,\n\t\t\tplaceholderStyle,\n\t\t\tclassName,\n\t\t\tfirstItemStyle,\n\t\t\tlastItemStyle\n\t\t);\n\t}, [\n\t\tisShown,\n\t\tshouldRenderPlaceholder,\n\t\tclassName,\n\t\tcx,\n\t\tfirstDisplayedItem,\n\t\tlastDisplayedItem,\n\t\t__experimentalFirstVisibleItemClass,\n\t\t__experimentalLastVisibleItemClass,\n\t\tlabel,\n\t] );\n\n\treturn {\n\t\t...otherProps,\n\t\tisShown,\n\t\tshouldRenderPlaceholder,\n\t\tclassName: classes,\n\t};\n}\n"],"mappings":"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"}
1
+ {"version":3,"names":["_compose","require","_element","styles","_interopRequireWildcard","_context","_context2","_useCx","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","obj","__esModule","default","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","noop","useToolsPanelItem","props","className","hasValue","isShownByDefault","label","panelId","resetAllFilter","onDeselect","onSelect","otherProps","useContextSystem","currentPanelId","menuItems","registerResetAllFilter","deregisterResetAllFilter","registerPanelItem","deregisterPanelItem","flagItemCustomization","isResetting","shouldRenderPlaceholderItems","shouldRenderPlaceholder","firstDisplayedItem","lastDisplayedItem","__experimentalFirstVisibleItemClass","__experimentalLastVisibleItemClass","useToolsPanelContext","hasValueCallback","useCallback","resetAllFilterCallback","previousPanelId","usePrevious","hasMatchingPanel","useEffect","menuGroup","isMenuItemChecked","wasMenuItemChecked","isRegistered","undefined","isValueSet","wasValueSet","newValueSet","isShown","cx","useCx","classes","useMemo","shouldApplyPlaceholderStyles","firstItemStyle","lastItemStyle","ToolsPanelItem","ToolsPanelItemPlaceholder"],"sources":["@wordpress/components/src/tools-panel/tools-panel-item/hook.ts"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { usePrevious } from '@wordpress/compose';\nimport { useCallback, useEffect, useMemo } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport * as styles from '../styles';\nimport { useToolsPanelContext } from '../context';\nimport type { WordPressComponentProps } from '../../context';\nimport { useContextSystem } from '../../context';\nimport { useCx } from '../../utils/hooks/use-cx';\nimport type { ToolsPanelItemProps } from '../types';\n\nconst noop = () => {};\n\nexport function useToolsPanelItem(\n\tprops: WordPressComponentProps< ToolsPanelItemProps, 'div' >\n) {\n\tconst {\n\t\tclassName,\n\t\thasValue,\n\t\tisShownByDefault = false,\n\t\tlabel,\n\t\tpanelId,\n\t\tresetAllFilter = noop,\n\t\tonDeselect,\n\t\tonSelect,\n\t\t...otherProps\n\t} = useContextSystem( props, 'ToolsPanelItem' );\n\n\tconst {\n\t\tpanelId: currentPanelId,\n\t\tmenuItems,\n\t\tregisterResetAllFilter,\n\t\tderegisterResetAllFilter,\n\t\tregisterPanelItem,\n\t\tderegisterPanelItem,\n\t\tflagItemCustomization,\n\t\tisResetting,\n\t\tshouldRenderPlaceholderItems: shouldRenderPlaceholder,\n\t\tfirstDisplayedItem,\n\t\tlastDisplayedItem,\n\t\t__experimentalFirstVisibleItemClass,\n\t\t__experimentalLastVisibleItemClass,\n\t} = useToolsPanelContext();\n\n\tconst hasValueCallback = useCallback( hasValue, [ panelId, hasValue ] );\n\tconst resetAllFilterCallback = useCallback( resetAllFilter, [\n\t\tpanelId,\n\t\tresetAllFilter,\n\t] );\n\tconst previousPanelId = usePrevious( currentPanelId );\n\n\tconst hasMatchingPanel =\n\t\tcurrentPanelId === panelId || currentPanelId === null;\n\n\t// Registering the panel item allows the panel to include it in its\n\t// automatically generated menu and determine its initial checked status.\n\tuseEffect( () => {\n\t\tif ( hasMatchingPanel && previousPanelId !== null ) {\n\t\t\tregisterPanelItem( {\n\t\t\t\thasValue: hasValueCallback,\n\t\t\t\tisShownByDefault,\n\t\t\t\tlabel,\n\t\t\t\tpanelId,\n\t\t\t} );\n\t\t}\n\n\t\treturn () => {\n\t\t\tif (\n\t\t\t\t( previousPanelId === null && !! currentPanelId ) ||\n\t\t\t\tcurrentPanelId === panelId\n\t\t\t) {\n\t\t\t\tderegisterPanelItem( label );\n\t\t\t}\n\t\t};\n\t}, [\n\t\tcurrentPanelId,\n\t\thasMatchingPanel,\n\t\tisShownByDefault,\n\t\tlabel,\n\t\thasValueCallback,\n\t\tpanelId,\n\t\tpreviousPanelId,\n\t\tregisterPanelItem,\n\t\tderegisterPanelItem,\n\t] );\n\n\tuseEffect( () => {\n\t\tif ( hasMatchingPanel ) {\n\t\t\tregisterResetAllFilter( resetAllFilterCallback );\n\t\t}\n\t\treturn () => {\n\t\t\tif ( hasMatchingPanel ) {\n\t\t\t\tderegisterResetAllFilter( resetAllFilterCallback );\n\t\t\t}\n\t\t};\n\t}, [\n\t\tregisterResetAllFilter,\n\t\tderegisterResetAllFilter,\n\t\tresetAllFilterCallback,\n\t\thasMatchingPanel,\n\t] );\n\n\t// Note: `label` is used as a key when building menu item state in\n\t// `ToolsPanel`.\n\tconst menuGroup = isShownByDefault ? 'default' : 'optional';\n\tconst isMenuItemChecked = menuItems?.[ menuGroup ]?.[ label ];\n\tconst wasMenuItemChecked = usePrevious( isMenuItemChecked );\n\tconst isRegistered = menuItems?.[ menuGroup ]?.[ label ] !== undefined;\n\n\tconst isValueSet = hasValue();\n\tconst wasValueSet = usePrevious( isValueSet );\n\tconst newValueSet = isValueSet && ! wasValueSet;\n\n\t// Notify the panel when an item's value has been set.\n\t//\n\t// 1. For default controls, this is so \"reset\" appears beside its menu item.\n\t// 2. For optional controls, when the panel ID is `null`, it allows the\n\t// panel to ensure the item is toggled on for display in the menu, given the\n\t// value has been set external to the control.\n\tuseEffect( () => {\n\t\tif ( ! newValueSet ) {\n\t\t\treturn;\n\t\t}\n\n\t\tif ( isShownByDefault || currentPanelId === null ) {\n\t\t\tflagItemCustomization( label, menuGroup );\n\t\t}\n\t}, [\n\t\tcurrentPanelId,\n\t\tnewValueSet,\n\t\tisShownByDefault,\n\t\tmenuGroup,\n\t\tlabel,\n\t\tflagItemCustomization,\n\t] );\n\n\t// Determine if the panel item's corresponding menu is being toggled and\n\t// trigger appropriate callback if it is.\n\tuseEffect( () => {\n\t\t// We check whether this item is currently registered as items rendered\n\t\t// via fills can persist through the parent panel being remounted.\n\t\t// See: https://github.com/WordPress/gutenberg/pull/45673\n\t\tif ( ! isRegistered || isResetting || ! hasMatchingPanel ) {\n\t\t\treturn;\n\t\t}\n\n\t\tif ( isMenuItemChecked && ! isValueSet && ! wasMenuItemChecked ) {\n\t\t\tonSelect?.();\n\t\t}\n\n\t\tif ( ! isMenuItemChecked && wasMenuItemChecked ) {\n\t\t\tonDeselect?.();\n\t\t}\n\t}, [\n\t\thasMatchingPanel,\n\t\tisMenuItemChecked,\n\t\tisRegistered,\n\t\tisResetting,\n\t\tisValueSet,\n\t\twasMenuItemChecked,\n\t\tonSelect,\n\t\tonDeselect,\n\t] );\n\n\t// The item is shown if it is a default control regardless of whether it\n\t// has a value. Optional items are shown when they are checked or have\n\t// a value.\n\tconst isShown = isShownByDefault\n\t\t? menuItems?.[ menuGroup ]?.[ label ] !== undefined\n\t\t: isMenuItemChecked;\n\n\tconst cx = useCx();\n\tconst classes = useMemo( () => {\n\t\tconst shouldApplyPlaceholderStyles =\n\t\t\tshouldRenderPlaceholder && ! isShown;\n\t\tconst firstItemStyle =\n\t\t\tfirstDisplayedItem === label && __experimentalFirstVisibleItemClass;\n\t\tconst lastItemStyle =\n\t\t\tlastDisplayedItem === label && __experimentalLastVisibleItemClass;\n\t\treturn cx(\n\t\t\tstyles.ToolsPanelItem,\n\t\t\tshouldApplyPlaceholderStyles && styles.ToolsPanelItemPlaceholder,\n\t\t\t! shouldApplyPlaceholderStyles && className,\n\t\t\tfirstItemStyle,\n\t\t\tlastItemStyle\n\t\t);\n\t}, [\n\t\tisShown,\n\t\tshouldRenderPlaceholder,\n\t\tclassName,\n\t\tcx,\n\t\tfirstDisplayedItem,\n\t\tlastDisplayedItem,\n\t\t__experimentalFirstVisibleItemClass,\n\t\t__experimentalLastVisibleItemClass,\n\t\tlabel,\n\t] );\n\n\treturn {\n\t\t...otherProps,\n\t\tisShown,\n\t\tshouldRenderPlaceholder,\n\t\tclassName: classes,\n\t};\n}\n"],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"names":[],"sources":["@wordpress/components/src/tools-panel/types.ts"],"sourcesContent":["/**\n * External dependencies\n */\nimport type { ReactNode } from 'react';\n\n/**\n * Internal dependencies\n */\nimport type { HeadingSize } from '../heading/types';\n\nexport type ResetAllFilter = ( attributes?: any ) => any;\ntype ResetAll = ( filters?: ResetAllFilter[] ) => void;\n\nexport type ToolsPanelProps = {\n\t/**\n\t * The child elements.\n\t */\n\tchildren: ReactNode;\n\t/**\n\t * Flags that the items in this ToolsPanel will be contained within an inner\n\t * wrapper element allowing the panel to lay them out accordingly.\n\t *\n\t * @default false\n\t */\n\thasInnerWrapper?: boolean;\n\t/**\n\t * The heading level of the panel's header.\n\t *\n\t * @default 2\n\t */\n\theadingLevel?: HeadingSize;\n\t/**\n\t * Text to be displayed within the panel's header and as the `aria-label`\n\t * for the panel's dropdown menu.\n\t */\n\tlabel: string;\n\t/**\n\t * If a `panelId` is set, it is passed through the `ToolsPanelContext` and\n\t * used to restrict panel items. When a `panelId` is set, items can only\n\t * register themselves if the `panelId` is explicitly `null` or the item's\n\t * `panelId` matches exactly.\n\t */\n\tpanelId?: string | null;\n\t/**\n\t * A function to call when the `Reset all` menu option is selected. As an\n\t * argument, it receives an array containing the `resetAllFilter` callbacks\n\t * of all the valid registered `ToolsPanelItems`.\n\t */\n\tresetAll: ResetAll;\n\t/**\n\t * Advises the `ToolsPanel` that its child `ToolsPanelItem`s should render\n\t * placeholder content instead of null when they are toggled off and hidden.\n\t *\n\t * @default false\n\t */\n\tshouldRenderPlaceholderItems?: boolean;\n\t/**\n\t * Experimental prop allowing for a custom CSS class to be applied to the\n\t * first visible `ToolsPanelItem` within the `ToolsPanel`.\n\t */\n\t__experimentalFirstVisibleItemClass?: string;\n\t/**\n\t * Experimental prop allowing for a custom CSS class to be applied to the\n\t * last visible `ToolsPanelItem` within the `ToolsPanel`.\n\t */\n\t__experimentalLastVisibleItemClass?: string;\n};\n\nexport type ToolsPanelHeaderProps = {\n\t/**\n\t * The heading level of the panel's header.\n\t *\n\t * @default 2\n\t */\n\theadingLevel?: HeadingSize;\n\t/**\n\t * Text to be displayed within the panel header. It is also passed along as\n\t * the `label` for the panel header's `DropdownMenu`.\n\t */\n\tlabel: string;\n\t/**\n\t * The `resetAll` prop provides the callback to execute when the \"Reset all\"\n\t * menu item is selected. Its purpose is to facilitate resetting any control\n\t * values for items contained within this header's panel.\n\t */\n\tresetAll: ResetAll;\n\t/**\n\t * This is executed when an individual control's menu item is toggled. It\n\t * will update the panel's menu item state and call the panel item's\n\t * `onSelect` or `onDeselect` callbacks as appropriate.\n\t */\n\ttoggleItem: ( label: string ) => void;\n};\n\nexport type ToolsPanelItem = {\n\t/**\n\t * This is called when building the `ToolsPanel` menu to determine the\n\t * item's initial checked state.\n\t */\n\thasValue: () => boolean;\n\t/**\n\t * This prop identifies the current item as being displayed by default. This\n\t * means it will show regardless of whether it has a value set or is toggled\n\t * on in the panel's menu.\n\t *\n\t * @default false\n\t */\n\tisShownByDefault?: boolean;\n\t/**\n\t * The supplied label is dual purpose. It is used as:\n\t * 1. the human-readable label for the panel's dropdown menu\n\t * 2. a key to locate the corresponding item in the panel's menu context to\n\t * determine if the panel item should be displayed.\n\t * A panel item's `label` should be unique among all items within a single\n\t * panel.\n\t */\n\tlabel: string;\n\t/**\n\t * Panel items will ensure they are only registering with their intended panel\n\t * by comparing the `panelId` props set on both the item and the panel itself,\n\t * or if the `panelId` is explicitly `null`. This allows items to be injected\n\t * from a shared source.\n\t */\n\tpanelId?: string | null;\n};\n\nexport type ToolsPanelItemProps = ToolsPanelItem & {\n\t/**\n\t * The child elements.\n\t */\n\tchildren?: ReactNode;\n\t/**\n\t * Called when this item is deselected in the `ToolsPanel` menu. This is\n\t * normally used to reset the panel item control's value.\n\t */\n\tonDeselect?: () => void;\n\t/**\n\t * A callback to take action when this item is selected in the `ToolsPanel`\n\t * menu.\n\t */\n\tonSelect?: () => void;\n\n\t/**\n\t * A `ToolsPanel` will collect each item's `resetAllFilter` and pass an\n\t * array of these functions through to the panel's `resetAll` callback. They\n\t * can then be iterated over to perform additional tasks.\n\t *\n\t * @default noop\n\t */\n\tresetAllFilter?: ResetAllFilter;\n};\n\nexport type ToolsPanelMenuItemKey = 'default' | 'optional';\n\nexport type ToolsPanelMenuItems = {\n\t[ menuItemKey in ToolsPanelMenuItemKey ]: { [ key: string ]: boolean };\n};\n\nexport type ToolsPanelContext = {\n\tpanelId?: string | null;\n\tmenuItems: ToolsPanelMenuItems;\n\thasMenuItems: boolean;\n\tregisterPanelItem: ( item: ToolsPanelItem ) => void;\n\tderegisterPanelItem: ( label: string ) => void;\n\tregisterResetAllFilter: ( filter: ResetAllFilter ) => void;\n\tderegisterResetAllFilter: ( filter: ResetAllFilter ) => void;\n\tflagItemCustomization: (\n\t\tlabel: string,\n\t\tgroup?: ToolsPanelMenuItemKey\n\t) => void;\n\tisResetting: boolean;\n\tshouldRenderPlaceholderItems: boolean;\n\tareAllOptionalControlsHidden: boolean;\n\tfirstDisplayedItem?: string;\n\tlastDisplayedItem?: string;\n\t__experimentalFirstVisibleItemClass?: string;\n\t__experimentalLastVisibleItemClass?: string;\n};\n\nexport type ToolsPanelControlsGroupProps = {\n\titemClassName?: string;\n\titems: [ string, boolean ][];\n\ttoggleItem: ( label: string ) => void;\n};\n\nexport type ToolsPanelMenuItemsConfig = {\n\tpanelItems: ToolsPanelItem[];\n\tshouldReset: boolean;\n\tcurrentMenuItems?: ToolsPanelMenuItems;\n\tmenuItemOrder: string[];\n};\n"],"mappings":""}
1
+ {"version":3,"names":[],"sources":["@wordpress/components/src/tools-panel/types.ts"],"sourcesContent":["/**\n * External dependencies\n */\nimport type { ReactNode } from 'react';\n\n/**\n * Internal dependencies\n */\nimport type { HeadingSize } from '../heading/types';\n\nexport type ResetAllFilter = ( attributes?: any ) => any;\ntype ResetAll = ( filters?: ResetAllFilter[] ) => void;\n\nexport type ToolsPanelProps = {\n\t/**\n\t * The child elements.\n\t */\n\tchildren: ReactNode;\n\t/**\n\t * Flags that the items in this ToolsPanel will be contained within an inner\n\t * wrapper element allowing the panel to lay them out accordingly.\n\t *\n\t * @default false\n\t */\n\thasInnerWrapper?: boolean;\n\t/**\n\t * The heading level of the panel's header.\n\t *\n\t * @default 2\n\t */\n\theadingLevel?: HeadingSize;\n\t/**\n\t * Text to be displayed within the panel's header and as the `aria-label`\n\t * for the panel's dropdown menu.\n\t */\n\tlabel: string;\n\t/**\n\t * If a `panelId` is set, it is passed through the `ToolsPanelContext` and\n\t * used to restrict panel items. When a `panelId` is set, items can only\n\t * register themselves if the `panelId` is explicitly `null` or the item's\n\t * `panelId` matches exactly.\n\t */\n\tpanelId?: string | null;\n\t/**\n\t * A function to call when the `Reset all` menu option is selected. As an\n\t * argument, it receives an array containing the `resetAllFilter` callbacks\n\t * of all the valid registered `ToolsPanelItems`.\n\t */\n\tresetAll: ResetAll;\n\t/**\n\t * Advises the `ToolsPanel` that its child `ToolsPanelItem`s should render\n\t * placeholder content instead of null when they are toggled off and hidden.\n\t * Note that placeholder items won't apply the `className` that would be\n\t * normally applied to a visible `ToolsPanelItem` via the `className` prop.\n\t *\n\t * @default false\n\t */\n\tshouldRenderPlaceholderItems?: boolean;\n\t/**\n\t * Experimental prop allowing for a custom CSS class to be applied to the\n\t * first visible `ToolsPanelItem` within the `ToolsPanel`.\n\t */\n\t__experimentalFirstVisibleItemClass?: string;\n\t/**\n\t * Experimental prop allowing for a custom CSS class to be applied to the\n\t * last visible `ToolsPanelItem` within the `ToolsPanel`.\n\t */\n\t__experimentalLastVisibleItemClass?: string;\n};\n\nexport type ToolsPanelHeaderProps = {\n\t/**\n\t * The heading level of the panel's header.\n\t *\n\t * @default 2\n\t */\n\theadingLevel?: HeadingSize;\n\t/**\n\t * Text to be displayed within the panel header. It is also passed along as\n\t * the `label` for the panel header's `DropdownMenu`.\n\t */\n\tlabel: string;\n\t/**\n\t * The `resetAll` prop provides the callback to execute when the \"Reset all\"\n\t * menu item is selected. Its purpose is to facilitate resetting any control\n\t * values for items contained within this header's panel.\n\t */\n\tresetAll: ResetAll;\n\t/**\n\t * This is executed when an individual control's menu item is toggled. It\n\t * will update the panel's menu item state and call the panel item's\n\t * `onSelect` or `onDeselect` callbacks as appropriate.\n\t */\n\ttoggleItem: ( label: string ) => void;\n};\n\nexport type ToolsPanelItem = {\n\t/**\n\t * This is called when building the `ToolsPanel` menu to determine the\n\t * item's initial checked state.\n\t */\n\thasValue: () => boolean;\n\t/**\n\t * This prop identifies the current item as being displayed by default. This\n\t * means it will show regardless of whether it has a value set or is toggled\n\t * on in the panel's menu.\n\t *\n\t * @default false\n\t */\n\tisShownByDefault?: boolean;\n\t/**\n\t * The supplied label is dual purpose. It is used as:\n\t * 1. the human-readable label for the panel's dropdown menu\n\t * 2. a key to locate the corresponding item in the panel's menu context to\n\t * determine if the panel item should be displayed.\n\t * A panel item's `label` should be unique among all items within a single\n\t * panel.\n\t */\n\tlabel: string;\n\t/**\n\t * Panel items will ensure they are only registering with their intended panel\n\t * by comparing the `panelId` props set on both the item and the panel itself,\n\t * or if the `panelId` is explicitly `null`. This allows items to be injected\n\t * from a shared source.\n\t */\n\tpanelId?: string | null;\n};\n\nexport type ToolsPanelItemProps = ToolsPanelItem & {\n\t/**\n\t * The child elements.\n\t */\n\tchildren?: ReactNode;\n\t/**\n\t * Called when this item is deselected in the `ToolsPanel` menu. This is\n\t * normally used to reset the panel item control's value.\n\t */\n\tonDeselect?: () => void;\n\t/**\n\t * A callback to take action when this item is selected in the `ToolsPanel`\n\t * menu.\n\t */\n\tonSelect?: () => void;\n\n\t/**\n\t * A `ToolsPanel` will collect each item's `resetAllFilter` and pass an\n\t * array of these functions through to the panel's `resetAll` callback. They\n\t * can then be iterated over to perform additional tasks.\n\t *\n\t * @default noop\n\t */\n\tresetAllFilter?: ResetAllFilter;\n};\n\nexport type ToolsPanelMenuItemKey = 'default' | 'optional';\n\nexport type ToolsPanelMenuItems = {\n\t[ menuItemKey in ToolsPanelMenuItemKey ]: { [ key: string ]: boolean };\n};\n\nexport type ToolsPanelContext = {\n\tpanelId?: string | null;\n\tmenuItems: ToolsPanelMenuItems;\n\thasMenuItems: boolean;\n\tregisterPanelItem: ( item: ToolsPanelItem ) => void;\n\tderegisterPanelItem: ( label: string ) => void;\n\tregisterResetAllFilter: ( filter: ResetAllFilter ) => void;\n\tderegisterResetAllFilter: ( filter: ResetAllFilter ) => void;\n\tflagItemCustomization: (\n\t\tlabel: string,\n\t\tgroup?: ToolsPanelMenuItemKey\n\t) => void;\n\tisResetting: boolean;\n\tshouldRenderPlaceholderItems: boolean;\n\tareAllOptionalControlsHidden: boolean;\n\tfirstDisplayedItem?: string;\n\tlastDisplayedItem?: string;\n\t__experimentalFirstVisibleItemClass?: string;\n\t__experimentalLastVisibleItemClass?: string;\n};\n\nexport type ToolsPanelControlsGroupProps = {\n\titemClassName?: string;\n\titems: [ string, boolean ][];\n\ttoggleItem: ( label: string ) => void;\n};\n\nexport type ToolsPanelMenuItemsConfig = {\n\tpanelItems: ToolsPanelItem[];\n\tshouldReset: boolean;\n\tcurrentMenuItems?: ToolsPanelMenuItems;\n\tmenuItemOrder: string[];\n};\n"],"mappings":""}
@@ -68,12 +68,12 @@ function Tooltip(props) {
68
68
  placement: computedPlacement,
69
69
  timeout: delay
70
70
  });
71
- const isTooltipOpen = tooltipStore.useState('open');
72
71
  return (0, _react.createElement)(_react.Fragment, null, (0, _react.createElement)(Ariakit.TooltipAnchor, {
73
72
  onClick: hideOnClick ? tooltipStore.hide : undefined,
74
73
  store: tooltipStore,
75
74
  render: isOnlyChild ? children : undefined
76
- }, isOnlyChild ? undefined : children), isOnlyChild && (text || shortcut) && isTooltipOpen && (0, _react.createElement)(Ariakit.Tooltip, {
75
+ }, isOnlyChild ? undefined : children), isOnlyChild && (text || shortcut) && (0, _react.createElement)(Ariakit.Tooltip, {
76
+ unmountOnHide: true,
77
77
  className: "components-tooltip",
78
78
  gutter: 4,
79
79
  id: describedById,
@@ -1 +1 @@
1
- {"version":3,"names":["Ariakit","_interopRequireWildcard","require","_compose","_element","_deprecated","_interopRequireDefault","_shortcut","_utils","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","obj","__esModule","default","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","TOOLTIP_DELAY","exports","Tooltip","props","children","delay","hideOnClick","placement","position","shortcut","text","baseId","useInstanceId","describedById","undefined","isOnlyChild","Children","count","process","env","NODE_ENV","console","error","computedPlacement","positionToPlacement","deprecated","since","alternative","tooltipStore","useTooltipStore","timeout","isTooltipOpen","useState","_react","createElement","Fragment","TooltipAnchor","onClick","hide","store","render","className","gutter","id","overflowPadding","_default"],"sources":["@wordpress/components/src/tooltip/index.tsx"],"sourcesContent":["/**\n * External dependencies\n */\n// eslint-disable-next-line no-restricted-imports\nimport * as Ariakit from '@ariakit/react';\n\n/**\n * WordPress dependencies\n */\nimport { useInstanceId } from '@wordpress/compose';\nimport { Children } from '@wordpress/element';\nimport deprecated from '@wordpress/deprecated';\n\n/**\n * Internal dependencies\n */\nimport type { TooltipProps } from './types';\nimport Shortcut from '../shortcut';\nimport { positionToPlacement } from '../popover/utils';\n\n/**\n * Time over anchor to wait before showing tooltip\n */\nexport const TOOLTIP_DELAY = 700;\n\nfunction Tooltip( props: TooltipProps ) {\n\tconst {\n\t\tchildren,\n\t\tdelay = TOOLTIP_DELAY,\n\t\thideOnClick = true,\n\t\tplacement,\n\t\tposition,\n\t\tshortcut,\n\t\ttext,\n\t} = props;\n\n\tconst baseId = useInstanceId( Tooltip, 'tooltip' );\n\tconst describedById = text || shortcut ? baseId : undefined;\n\n\tconst isOnlyChild = Children.count( children ) === 1;\n\t// console error if more than one child element is added\n\tif ( ! isOnlyChild ) {\n\t\tif ( 'development' === process.env.NODE_ENV ) {\n\t\t\t// eslint-disable-next-line no-console\n\t\t\tconsole.error(\n\t\t\t\t'Tooltip should be called with only a single child element.'\n\t\t\t);\n\t\t}\n\t}\n\n\t// Compute tooltip's placement:\n\t// - give priority to `placement` prop, if defined\n\t// - otherwise, compute it from the legacy `position` prop (if defined)\n\t// - finally, fallback to the default placement: 'bottom'\n\tlet computedPlacement;\n\tif ( placement !== undefined ) {\n\t\tcomputedPlacement = placement;\n\t} else if ( position !== undefined ) {\n\t\tcomputedPlacement = positionToPlacement( position );\n\t\tdeprecated( '`position` prop in wp.components.tooltip', {\n\t\t\tsince: '6.4',\n\t\t\talternative: '`placement` prop',\n\t\t} );\n\t}\n\tcomputedPlacement = computedPlacement || 'bottom';\n\n\tconst tooltipStore = Ariakit.useTooltipStore( {\n\t\tplacement: computedPlacement,\n\t\ttimeout: delay,\n\t} );\n\n\tconst isTooltipOpen = tooltipStore.useState( 'open' );\n\n\treturn (\n\t\t<>\n\t\t\t<Ariakit.TooltipAnchor\n\t\t\t\tonClick={ hideOnClick ? tooltipStore.hide : undefined }\n\t\t\t\tstore={ tooltipStore }\n\t\t\t\trender={ isOnlyChild ? children : undefined }\n\t\t\t>\n\t\t\t\t{ isOnlyChild ? undefined : children }\n\t\t\t</Ariakit.TooltipAnchor>\n\t\t\t{ isOnlyChild && ( text || shortcut ) && isTooltipOpen && (\n\t\t\t\t<Ariakit.Tooltip\n\t\t\t\t\tclassName=\"components-tooltip\"\n\t\t\t\t\tgutter={ 4 }\n\t\t\t\t\tid={ describedById }\n\t\t\t\t\toverflowPadding={ 0.5 }\n\t\t\t\t\tstore={ tooltipStore }\n\t\t\t\t>\n\t\t\t\t\t{ text }\n\t\t\t\t\t{ shortcut && (\n\t\t\t\t\t\t<Shortcut\n\t\t\t\t\t\t\tclassName={\n\t\t\t\t\t\t\t\ttext ? 'components-tooltip__shortcut' : ''\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tshortcut={ shortcut }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t</Ariakit.Tooltip>\n\t\t\t) }\n\t\t</>\n\t);\n}\n\nexport default Tooltip;\n"],"mappings":"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"}
1
+ {"version":3,"names":["Ariakit","_interopRequireWildcard","require","_compose","_element","_deprecated","_interopRequireDefault","_shortcut","_utils","_getRequireWildcardCache","nodeInterop","WeakMap","cacheBabelInterop","cacheNodeInterop","obj","__esModule","default","cache","has","get","newObj","hasPropertyDescriptor","Object","defineProperty","getOwnPropertyDescriptor","key","prototype","hasOwnProperty","call","desc","set","TOOLTIP_DELAY","exports","Tooltip","props","children","delay","hideOnClick","placement","position","shortcut","text","baseId","useInstanceId","describedById","undefined","isOnlyChild","Children","count","process","env","NODE_ENV","console","error","computedPlacement","positionToPlacement","deprecated","since","alternative","tooltipStore","useTooltipStore","timeout","_react","createElement","Fragment","TooltipAnchor","onClick","hide","store","render","unmountOnHide","className","gutter","id","overflowPadding","_default"],"sources":["@wordpress/components/src/tooltip/index.tsx"],"sourcesContent":["/**\n * External dependencies\n */\n// eslint-disable-next-line no-restricted-imports\nimport * as Ariakit from '@ariakit/react';\n\n/**\n * WordPress dependencies\n */\nimport { useInstanceId } from '@wordpress/compose';\nimport { Children } from '@wordpress/element';\nimport deprecated from '@wordpress/deprecated';\n\n/**\n * Internal dependencies\n */\nimport type { TooltipProps } from './types';\nimport Shortcut from '../shortcut';\nimport { positionToPlacement } from '../popover/utils';\n\n/**\n * Time over anchor to wait before showing tooltip\n */\nexport const TOOLTIP_DELAY = 700;\n\nfunction Tooltip( props: TooltipProps ) {\n\tconst {\n\t\tchildren,\n\t\tdelay = TOOLTIP_DELAY,\n\t\thideOnClick = true,\n\t\tplacement,\n\t\tposition,\n\t\tshortcut,\n\t\ttext,\n\t} = props;\n\n\tconst baseId = useInstanceId( Tooltip, 'tooltip' );\n\tconst describedById = text || shortcut ? baseId : undefined;\n\n\tconst isOnlyChild = Children.count( children ) === 1;\n\t// console error if more than one child element is added\n\tif ( ! isOnlyChild ) {\n\t\tif ( 'development' === process.env.NODE_ENV ) {\n\t\t\t// eslint-disable-next-line no-console\n\t\t\tconsole.error(\n\t\t\t\t'Tooltip should be called with only a single child element.'\n\t\t\t);\n\t\t}\n\t}\n\n\t// Compute tooltip's placement:\n\t// - give priority to `placement` prop, if defined\n\t// - otherwise, compute it from the legacy `position` prop (if defined)\n\t// - finally, fallback to the default placement: 'bottom'\n\tlet computedPlacement;\n\tif ( placement !== undefined ) {\n\t\tcomputedPlacement = placement;\n\t} else if ( position !== undefined ) {\n\t\tcomputedPlacement = positionToPlacement( position );\n\t\tdeprecated( '`position` prop in wp.components.tooltip', {\n\t\t\tsince: '6.4',\n\t\t\talternative: '`placement` prop',\n\t\t} );\n\t}\n\tcomputedPlacement = computedPlacement || 'bottom';\n\n\tconst tooltipStore = Ariakit.useTooltipStore( {\n\t\tplacement: computedPlacement,\n\t\ttimeout: delay,\n\t} );\n\n\treturn (\n\t\t<>\n\t\t\t<Ariakit.TooltipAnchor\n\t\t\t\tonClick={ hideOnClick ? tooltipStore.hide : undefined }\n\t\t\t\tstore={ tooltipStore }\n\t\t\t\trender={ isOnlyChild ? children : undefined }\n\t\t\t>\n\t\t\t\t{ isOnlyChild ? undefined : children }\n\t\t\t</Ariakit.TooltipAnchor>\n\t\t\t{ isOnlyChild && ( text || shortcut ) && (\n\t\t\t\t<Ariakit.Tooltip\n\t\t\t\t\tunmountOnHide\n\t\t\t\t\tclassName=\"components-tooltip\"\n\t\t\t\t\tgutter={ 4 }\n\t\t\t\t\tid={ describedById }\n\t\t\t\t\toverflowPadding={ 0.5 }\n\t\t\t\t\tstore={ tooltipStore }\n\t\t\t\t>\n\t\t\t\t\t{ text }\n\t\t\t\t\t{ shortcut && (\n\t\t\t\t\t\t<Shortcut\n\t\t\t\t\t\t\tclassName={\n\t\t\t\t\t\t\t\ttext ? 'components-tooltip__shortcut' : ''\n\t\t\t\t\t\t\t}\n\t\t\t\t\t\t\tshortcut={ shortcut }\n\t\t\t\t\t\t/>\n\t\t\t\t\t) }\n\t\t\t\t</Ariakit.Tooltip>\n\t\t\t) }\n\t\t</>\n\t);\n}\n\nexport default Tooltip;\n"],"mappings":";;;;;;;;AAIA,IAAAA,OAAA,GAAAC,uBAAA,CAAAC,OAAA;AAKA,IAAAC,QAAA,GAAAD,OAAA;AACA,IAAAE,QAAA,GAAAF,OAAA;AACA,IAAAG,WAAA,GAAAC,sBAAA,CAAAJ,OAAA;AAMA,IAAAK,SAAA,GAAAD,sBAAA,CAAAJ,OAAA;AACA,IAAAM,MAAA,GAAAN,OAAA;AAAuD,SAAAO,yBAAAC,WAAA,eAAAC,OAAA,kCAAAC,iBAAA,OAAAD,OAAA,QAAAE,gBAAA,OAAAF,OAAA,YAAAF,wBAAA,YAAAA,CAAAC,WAAA,WAAAA,WAAA,GAAAG,gBAAA,GAAAD,iBAAA,KAAAF,WAAA;AAAA,SAAAT,wBAAAa,GAAA,EAAAJ,WAAA,SAAAA,WAAA,IAAAI,GAAA,IAAAA,GAAA,CAAAC,UAAA,WAAAD,GAAA,QAAAA,GAAA,oBAAAA,GAAA,wBAAAA,GAAA,4BAAAE,OAAA,EAAAF,GAAA,UAAAG,KAAA,GAAAR,wBAAA,CAAAC,WAAA,OAAAO,KAAA,IAAAA,KAAA,CAAAC,GAAA,CAAAJ,GAAA,YAAAG,KAAA,CAAAE,GAAA,CAAAL,GAAA,SAAAM,MAAA,WAAAC,qBAAA,GAAAC,MAAA,CAAAC,cAAA,IAAAD,MAAA,CAAAE,wBAAA,WAAAC,GAAA,IAAAX,GAAA,QAAAW,GAAA,kBAAAH,MAAA,CAAAI,SAAA,CAAAC,cAAA,CAAAC,IAAA,CAAAd,GAAA,EAAAW,GAAA,SAAAI,IAAA,GAAAR,qBAAA,GAAAC,MAAA,CAAAE,wBAAA,CAAAV,GAAA,EAAAW,GAAA,cAAAI,IAAA,KAAAA,IAAA,CAAAV,GAAA,IAAAU,IAAA,CAAAC,GAAA,KAAAR,MAAA,CAAAC,cAAA,CAAAH,MAAA,EAAAK,GAAA,EAAAI,IAAA,YAAAT,MAAA,CAAAK,GAAA,IAAAX,GAAA,CAAAW,GAAA,SAAAL,MAAA,CAAAJ,OAAA,GAAAF,GAAA,MAAAG,KAAA,IAAAA,KAAA,CAAAa,GAAA,CAAAhB,GAAA,EAAAM,MAAA,YAAAA,MAAA;AAlBvD;AACA;AACA;AACA;;AAGA;AACA;AACA;;AAYA;AACA;AACA;AACO,MAAMW,aAAa,GAAG,GAAG;AAACC,OAAA,CAAAD,aAAA,GAAAA,aAAA;AAEjC,SAASE,OAAOA,CAAEC,KAAmB,EAAG;EACvC,MAAM;IACLC,QAAQ;IACRC,KAAK,GAAGL,aAAa;IACrBM,WAAW,GAAG,IAAI;IAClBC,SAAS;IACTC,QAAQ;IACRC,QAAQ;IACRC;EACD,CAAC,GAAGP,KAAK;EAET,MAAMQ,MAAM,GAAG,IAAAC,sBAAa,EAAEV,OAAO,EAAE,SAAU,CAAC;EAClD,MAAMW,aAAa,GAAGH,IAAI,IAAID,QAAQ,GAAGE,MAAM,GAAGG,SAAS;EAE3D,MAAMC,WAAW,GAAGC,iBAAQ,CAACC,KAAK,CAAEb,QAAS,CAAC,KAAK,CAAC;EACpD;EACA,IAAK,CAAEW,WAAW,EAAG;IACpB,IAAK,aAAa,KAAKG,OAAO,CAACC,GAAG,CAACC,QAAQ,EAAG;MAC7C;MACAC,OAAO,CAACC,KAAK,CACZ,4DACD,CAAC;IACF;EACD;;EAEA;EACA;EACA;EACA;EACA,IAAIC,iBAAiB;EACrB,IAAKhB,SAAS,KAAKO,SAAS,EAAG;IAC9BS,iBAAiB,GAAGhB,SAAS;EAC9B,CAAC,MAAM,IAAKC,QAAQ,KAAKM,SAAS,EAAG;IACpCS,iBAAiB,GAAG,IAAAC,0BAAmB,EAAEhB,QAAS,CAAC;IACnD,IAAAiB,mBAAU,EAAE,0CAA0C,EAAE;MACvDC,KAAK,EAAE,KAAK;MACZC,WAAW,EAAE;IACd,CAAE,CAAC;EACJ;EACAJ,iBAAiB,GAAGA,iBAAiB,IAAI,QAAQ;EAEjD,MAAMK,YAAY,GAAG3D,OAAO,CAAC4D,eAAe,CAAE;IAC7CtB,SAAS,EAAEgB,iBAAiB;IAC5BO,OAAO,EAAEzB;EACV,CAAE,CAAC;EAEH,OACC,IAAA0B,MAAA,CAAAC,aAAA,EAAAD,MAAA,CAAAE,QAAA,QACC,IAAAF,MAAA,CAAAC,aAAA,EAAC/D,OAAO,CAACiE,aAAa;IACrBC,OAAO,EAAG7B,WAAW,GAAGsB,YAAY,CAACQ,IAAI,GAAGtB,SAAW;IACvDuB,KAAK,EAAGT,YAAc;IACtBU,MAAM,EAAGvB,WAAW,GAAGX,QAAQ,GAAGU;EAAW,GAE3CC,WAAW,GAAGD,SAAS,GAAGV,QACN,CAAC,EACtBW,WAAW,KAAML,IAAI,IAAID,QAAQ,CAAE,IACpC,IAAAsB,MAAA,CAAAC,aAAA,EAAC/D,OAAO,CAACiC,OAAO;IACfqC,aAAa;IACbC,SAAS,EAAC,oBAAoB;IAC9BC,MAAM,EAAG,CAAG;IACZC,EAAE,EAAG7B,aAAe;IACpB8B,eAAe,EAAG,GAAK;IACvBN,KAAK,EAAGT;EAAc,GAEpBlB,IAAI,EACJD,QAAQ,IACT,IAAAsB,MAAA,CAAAC,aAAA,EAACxD,SAAA,CAAAS,OAAQ;IACRuD,SAAS,EACR9B,IAAI,GAAG,8BAA8B,GAAG,EACxC;IACDD,QAAQ,EAAGA;EAAU,CACrB,CAEc,CAEjB,CAAC;AAEL;AAAC,IAAAmC,QAAA,GAEc1C,OAAO;AAAAD,OAAA,CAAAhB,OAAA,GAAA2D,QAAA"}
@@ -109,6 +109,114 @@ const allUnits = {
109
109
  label: isWeb ? 'pt' : (0, _i18n.__)('Points (pt)'),
110
110
  a11yLabel: (0, _i18n.__)('Points (pt)'),
111
111
  step: 1
112
+ },
113
+ svw: {
114
+ value: 'svw',
115
+ label: isWeb ? 'svw' : (0, _i18n.__)('Small viewport width (svw)'),
116
+ a11yLabel: (0, _i18n.__)('Small viewport width (svw)'),
117
+ step: 0.1
118
+ },
119
+ svh: {
120
+ value: 'svh',
121
+ label: isWeb ? 'svh' : (0, _i18n.__)('Small viewport height (svh)'),
122
+ a11yLabel: (0, _i18n.__)('Small viewport height (svh)'),
123
+ step: 0.1
124
+ },
125
+ svi: {
126
+ value: 'svi',
127
+ label: isWeb ? 'svi' : (0, _i18n.__)('Viewport smallest size in the inline direction (svi)'),
128
+ a11yLabel: (0, _i18n.__)('Small viewport width or height (svi)'),
129
+ step: 0.1
130
+ },
131
+ svb: {
132
+ value: 'svb',
133
+ label: isWeb ? 'svb' : (0, _i18n.__)('Viewport smallest size in the block direction (svb)'),
134
+ a11yLabel: (0, _i18n.__)('Small viewport width or height (svb)'),
135
+ step: 0.1
136
+ },
137
+ svmin: {
138
+ value: 'svmin',
139
+ label: isWeb ? 'svmin' : (0, _i18n.__)('Small viewport smallest dimension (svmin)'),
140
+ a11yLabel: (0, _i18n.__)('Small viewport smallest dimension (svmin)'),
141
+ step: 0.1
142
+ },
143
+ lvw: {
144
+ value: 'lvw',
145
+ label: isWeb ? 'lvw' : (0, _i18n.__)('Large viewport width (lvw)'),
146
+ a11yLabel: (0, _i18n.__)('Large viewport width (lvw)'),
147
+ step: 0.1
148
+ },
149
+ lvh: {
150
+ value: 'lvh',
151
+ label: isWeb ? 'lvh' : (0, _i18n.__)('Large viewport height (lvh)'),
152
+ a11yLabel: (0, _i18n.__)('Large viewport height (lvh)'),
153
+ step: 0.1
154
+ },
155
+ lvi: {
156
+ value: 'lvi',
157
+ label: isWeb ? 'lvi' : (0, _i18n.__)('Large viewport width or height (lvi)'),
158
+ a11yLabel: (0, _i18n.__)('Large viewport width or height (lvi)'),
159
+ step: 0.1
160
+ },
161
+ lvb: {
162
+ value: 'lvb',
163
+ label: isWeb ? 'lvb' : (0, _i18n.__)('Large viewport width or height (lvb)'),
164
+ a11yLabel: (0, _i18n.__)('Large viewport width or height (lvb)'),
165
+ step: 0.1
166
+ },
167
+ lvmin: {
168
+ value: 'lvmin',
169
+ label: isWeb ? 'lvmin' : (0, _i18n.__)('Large viewport smallest dimension (lvmin)'),
170
+ a11yLabel: (0, _i18n.__)('Large viewport smallest dimension (lvmin)'),
171
+ step: 0.1
172
+ },
173
+ dvw: {
174
+ value: 'dvw',
175
+ label: isWeb ? 'dvw' : (0, _i18n.__)('Dynamic viewport width (dvw)'),
176
+ a11yLabel: (0, _i18n.__)('Dynamic viewport width (dvw)'),
177
+ step: 0.1
178
+ },
179
+ dvh: {
180
+ value: 'dvh',
181
+ label: isWeb ? 'dvh' : (0, _i18n.__)('Dynamic viewport height (dvh)'),
182
+ a11yLabel: (0, _i18n.__)('Dynamic viewport height (dvh)'),
183
+ step: 0.1
184
+ },
185
+ dvi: {
186
+ value: 'dvi',
187
+ label: isWeb ? 'dvi' : (0, _i18n.__)('Dynamic viewport width or height (dvi)'),
188
+ a11yLabel: (0, _i18n.__)('Dynamic viewport width or height (dvi)'),
189
+ step: 0.1
190
+ },
191
+ dvb: {
192
+ value: 'dvb',
193
+ label: isWeb ? 'dvb' : (0, _i18n.__)('Dynamic viewport width or height (dvb)'),
194
+ a11yLabel: (0, _i18n.__)('Dynamic viewport width or height (dvb)'),
195
+ step: 0.1
196
+ },
197
+ dvmin: {
198
+ value: 'dvmin',
199
+ label: isWeb ? 'dvmin' : (0, _i18n.__)('Dynamic viewport smallest dimension (dvmin)'),
200
+ a11yLabel: (0, _i18n.__)('Dynamic viewport smallest dimension (dvmin)'),
201
+ step: 0.1
202
+ },
203
+ dvmax: {
204
+ value: 'dvmax',
205
+ label: isWeb ? 'dvmax' : (0, _i18n.__)('Dynamic viewport largest dimension (dvmax)'),
206
+ a11yLabel: (0, _i18n.__)('Dynamic viewport largest dimension (dvmax)'),
207
+ step: 0.1
208
+ },
209
+ svmax: {
210
+ value: 'svmax',
211
+ label: isWeb ? 'svmax' : (0, _i18n.__)('Small viewport largest dimension (svmax)'),
212
+ a11yLabel: (0, _i18n.__)('Small viewport largest dimension (svmax)'),
213
+ step: 0.1
214
+ },
215
+ lvmax: {
216
+ value: 'lvmax',
217
+ label: isWeb ? 'lvmax' : (0, _i18n.__)('Large viewport largest dimension (lvmax)'),
218
+ a11yLabel: (0, _i18n.__)('Large viewport largest dimension (lvmax)'),
219
+ step: 0.1
112
220
  }
113
221
  };
114
222
 
@@ -1 +1 @@
1
- {"version":3,"names":["_i18n","require","_element","isWeb","Platform","OS","allUnits","px","value","label","__","a11yLabel","step","em","_x","rem","vw","vh","vmin","vmax","ch","ex","cm","mm","in","pc","pt","ALL_CSS_UNITS","Object","values","exports","CSS_UNITS","DEFAULT_UNIT","getParsedQuantityAndUnit","rawValue","fallbackUnit","allowedUnits","initialValue","parseQuantityAndUnitFromRawValue","hasUnits","units","Array","isArray","length","trimmedValue","quantityToReturn","trim","parsedQuantity","parseFloat","isFinite","undefined","unitMatch","match","matchedUnit","toLowerCase","unitToReturn","find","item","getValidParsedQuantityAndUnit","fallbackQuantity","parsedUnit","getAccessibleLabelForUnit","unit","filterUnitsWithSettings","allowedUnitValues","availableUnits","filter","includes","useCustomUnits","defaultValues","customUnitsToReturn","forEach","i","parsedDefaultValue","default","getUnitsWithCurrentUnit","legacyUnit","unitsToReturn","currentUnit","some","unshift"],"sources":["@wordpress/components/src/unit-control/utils.ts"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __, _x } from '@wordpress/i18n';\nimport { Platform } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport type { WPUnitControlUnit } from './types';\n\nconst isWeb = Platform.OS === 'web';\n\nconst allUnits: Record< string, WPUnitControlUnit > = {\n\tpx: {\n\t\tvalue: 'px',\n\t\tlabel: isWeb ? 'px' : __( 'Pixels (px)' ),\n\t\ta11yLabel: __( 'Pixels (px)' ),\n\t\tstep: 1,\n\t},\n\t'%': {\n\t\tvalue: '%',\n\t\tlabel: isWeb ? '%' : __( 'Percentage (%)' ),\n\t\ta11yLabel: __( 'Percent (%)' ),\n\t\tstep: 0.1,\n\t},\n\tem: {\n\t\tvalue: 'em',\n\t\tlabel: isWeb ? 'em' : __( 'Relative to parent font size (em)' ),\n\t\ta11yLabel: _x( 'ems', 'Relative to parent font size (em)' ),\n\t\tstep: 0.01,\n\t},\n\trem: {\n\t\tvalue: 'rem',\n\t\tlabel: isWeb ? 'rem' : __( 'Relative to root font size (rem)' ),\n\t\ta11yLabel: _x( 'rems', 'Relative to root font size (rem)' ),\n\t\tstep: 0.01,\n\t},\n\tvw: {\n\t\tvalue: 'vw',\n\t\tlabel: isWeb ? 'vw' : __( 'Viewport width (vw)' ),\n\t\ta11yLabel: __( 'Viewport width (vw)' ),\n\t\tstep: 0.1,\n\t},\n\tvh: {\n\t\tvalue: 'vh',\n\t\tlabel: isWeb ? 'vh' : __( 'Viewport height (vh)' ),\n\t\ta11yLabel: __( 'Viewport height (vh)' ),\n\t\tstep: 0.1,\n\t},\n\tvmin: {\n\t\tvalue: 'vmin',\n\t\tlabel: isWeb ? 'vmin' : __( 'Viewport smallest dimension (vmin)' ),\n\t\ta11yLabel: __( 'Viewport smallest dimension (vmin)' ),\n\t\tstep: 0.1,\n\t},\n\tvmax: {\n\t\tvalue: 'vmax',\n\t\tlabel: isWeb ? 'vmax' : __( 'Viewport largest dimension (vmax)' ),\n\t\ta11yLabel: __( 'Viewport largest dimension (vmax)' ),\n\t\tstep: 0.1,\n\t},\n\tch: {\n\t\tvalue: 'ch',\n\t\tlabel: isWeb ? 'ch' : __( 'Width of the zero (0) character (ch)' ),\n\t\ta11yLabel: __( 'Width of the zero (0) character (ch)' ),\n\t\tstep: 0.01,\n\t},\n\tex: {\n\t\tvalue: 'ex',\n\t\tlabel: isWeb ? 'ex' : __( 'x-height of the font (ex)' ),\n\t\ta11yLabel: __( 'x-height of the font (ex)' ),\n\t\tstep: 0.01,\n\t},\n\tcm: {\n\t\tvalue: 'cm',\n\t\tlabel: isWeb ? 'cm' : __( 'Centimeters (cm)' ),\n\t\ta11yLabel: __( 'Centimeters (cm)' ),\n\t\tstep: 0.001,\n\t},\n\tmm: {\n\t\tvalue: 'mm',\n\t\tlabel: isWeb ? 'mm' : __( 'Millimeters (mm)' ),\n\t\ta11yLabel: __( 'Millimeters (mm)' ),\n\t\tstep: 0.1,\n\t},\n\tin: {\n\t\tvalue: 'in',\n\t\tlabel: isWeb ? 'in' : __( 'Inches (in)' ),\n\t\ta11yLabel: __( 'Inches (in)' ),\n\t\tstep: 0.001,\n\t},\n\tpc: {\n\t\tvalue: 'pc',\n\t\tlabel: isWeb ? 'pc' : __( 'Picas (pc)' ),\n\t\ta11yLabel: __( 'Picas (pc)' ),\n\t\tstep: 1,\n\t},\n\tpt: {\n\t\tvalue: 'pt',\n\t\tlabel: isWeb ? 'pt' : __( 'Points (pt)' ),\n\t\ta11yLabel: __( 'Points (pt)' ),\n\t\tstep: 1,\n\t},\n};\n\n/**\n * An array of all available CSS length units.\n */\nexport const ALL_CSS_UNITS = Object.values( allUnits );\n\n/**\n * Units of measurements. `a11yLabel` is used by screenreaders.\n */\nexport const CSS_UNITS = [\n\tallUnits.px,\n\tallUnits[ '%' ],\n\tallUnits.em,\n\tallUnits.rem,\n\tallUnits.vw,\n\tallUnits.vh,\n];\n\nexport const DEFAULT_UNIT = allUnits.px;\n\n/**\n * Handles legacy value + unit handling.\n * This component use to manage both incoming value and units separately.\n *\n * Moving forward, ideally the value should be a string that contains both\n * the value and unit, example: '10px'\n *\n * @param rawValue The raw value as a string (may or may not contain the unit)\n * @param fallbackUnit The unit used as a fallback, if not unit is detected in the `value`\n * @param allowedUnits Units to derive from.\n * @return The extracted quantity and unit. The quantity can be `undefined` in case the raw value\n * could not be parsed to a number correctly. The unit can be `undefined` in case the unit parse\n * from the raw value could not be matched against the list of allowed units.\n */\nexport function getParsedQuantityAndUnit(\n\trawValue?: string | number,\n\tfallbackUnit?: string,\n\tallowedUnits?: WPUnitControlUnit[]\n): [ number | undefined, string | undefined ] {\n\tconst initialValue = fallbackUnit\n\t\t? `${ rawValue ?? '' }${ fallbackUnit }`\n\t\t: rawValue;\n\n\treturn parseQuantityAndUnitFromRawValue( initialValue, allowedUnits );\n}\n\n/**\n * Checks if units are defined.\n *\n * @param units List of units.\n * @return Whether the list actually contains any units.\n */\nexport function hasUnits(\n\tunits?: WPUnitControlUnit[]\n): units is WPUnitControlUnit[] {\n\t// Although the `isArray` check shouldn't be necessary (given the signature of\n\t// this typed function), it's better to stay on the side of caution, since\n\t// this function may be called from un-typed environments.\n\treturn Array.isArray( units ) && !! units.length;\n}\n\n/**\n * Parses a quantity and unit from a raw string value, given a list of allowed\n * units and otherwise falling back to the default unit.\n *\n * @param rawValue The raw value as a string (may or may not contain the unit)\n * @param allowedUnits Units to derive from.\n * @return The extracted quantity and unit. The quantity can be `undefined` in case the raw value\n * could not be parsed to a number correctly. The unit can be `undefined` in case the unit parsed\n * from the raw value could not be matched against the list of allowed units.\n */\nexport function parseQuantityAndUnitFromRawValue(\n\trawValue?: string | number,\n\tallowedUnits: WPUnitControlUnit[] = ALL_CSS_UNITS\n): [ number | undefined, string | undefined ] {\n\tlet trimmedValue;\n\tlet quantityToReturn;\n\n\tif ( typeof rawValue !== 'undefined' || rawValue === null ) {\n\t\ttrimmedValue = `${ rawValue }`.trim();\n\t\tconst parsedQuantity = parseFloat( trimmedValue );\n\t\tquantityToReturn = ! isFinite( parsedQuantity )\n\t\t\t? undefined\n\t\t\t: parsedQuantity;\n\t}\n\n\tconst unitMatch = trimmedValue?.match( /[\\d.\\-\\+]*\\s*(.*)/ );\n\tconst matchedUnit = unitMatch?.[ 1 ]?.toLowerCase();\n\tlet unitToReturn: string | undefined;\n\tif ( hasUnits( allowedUnits ) ) {\n\t\tconst match = allowedUnits.find(\n\t\t\t( item ) => item.value === matchedUnit\n\t\t);\n\t\tunitToReturn = match?.value;\n\t} else {\n\t\tunitToReturn = DEFAULT_UNIT.value;\n\t}\n\n\treturn [ quantityToReturn, unitToReturn ];\n}\n\n/**\n * Parses quantity and unit from a raw value. Validates parsed value, using fallback\n * value if invalid.\n *\n * @param rawValue The next value.\n * @param allowedUnits Units to derive from.\n * @param fallbackQuantity The fallback quantity, used in case it's not possible to parse a valid quantity from the raw value.\n * @param fallbackUnit The fallback unit, used in case it's not possible to parse a valid unit from the raw value.\n * @return The extracted quantity and unit. The quantity can be `undefined` in case the raw value\n * could not be parsed to a number correctly, and the `fallbackQuantity` was also `undefined`. The\n * unit can be `undefined` only if the unit parsed from the raw value could not be matched against\n * the list of allowed units, the `fallbackQuantity` is also `undefined` and the list of\n * `allowedUnits` is passed empty.\n */\nexport function getValidParsedQuantityAndUnit(\n\trawValue: string | number,\n\tallowedUnits?: WPUnitControlUnit[],\n\tfallbackQuantity?: number,\n\tfallbackUnit?: string\n): [ number | undefined, string | undefined ] {\n\tconst [ parsedQuantity, parsedUnit ] = parseQuantityAndUnitFromRawValue(\n\t\trawValue,\n\t\tallowedUnits\n\t);\n\n\t// The parsed value from `parseQuantityAndUnitFromRawValue` should now be\n\t// either a real number or undefined. If undefined, use the fallback value.\n\tconst quantityToReturn = parsedQuantity ?? fallbackQuantity;\n\n\t// If no unit is parsed from the raw value, or if the fallback unit is not\n\t// defined, use the first value from the list of allowed units as fallback.\n\tlet unitToReturn = parsedUnit || fallbackUnit;\n\n\tif ( ! unitToReturn && hasUnits( allowedUnits ) ) {\n\t\tunitToReturn = allowedUnits[ 0 ].value;\n\t}\n\n\treturn [ quantityToReturn, unitToReturn ];\n}\n\n/**\n * Takes a unit value and finds the matching accessibility label for the\n * unit abbreviation.\n *\n * @param unit Unit value (example: `px`)\n * @return a11y label for the unit abbreviation\n */\nexport function getAccessibleLabelForUnit( unit: string ): string | undefined {\n\tconst match = ALL_CSS_UNITS.find( ( item ) => item.value === unit );\n\treturn match?.a11yLabel ? match?.a11yLabel : match?.value;\n}\n\n/**\n * Filters available units based on values defined a list of allowed unit values.\n *\n * @param allowedUnitValues Collection of allowed unit value strings.\n * @param availableUnits Collection of available unit objects.\n * @return Filtered units.\n */\nexport function filterUnitsWithSettings(\n\tallowedUnitValues: string[] = [],\n\tavailableUnits: WPUnitControlUnit[]\n): WPUnitControlUnit[] {\n\t// Although the `isArray` check shouldn't be necessary (given the signature of\n\t// this typed function), it's better to stay on the side of caution, since\n\t// this function may be called from un-typed environments.\n\treturn Array.isArray( availableUnits )\n\t\t? availableUnits.filter( ( unit ) =>\n\t\t\t\tallowedUnitValues.includes( unit.value )\n\t\t )\n\t\t: [];\n}\n\n/**\n * Custom hook to retrieve and consolidate units setting from add_theme_support().\n * TODO: ideally this hook shouldn't be needed\n * https://github.com/WordPress/gutenberg/pull/31822#discussion_r633280823\n *\n * @param args An object containing units, settingPath & defaultUnits.\n * @param args.units Collection of all potentially available units.\n * @param args.availableUnits Collection of unit value strings for filtering available units.\n * @param args.defaultValues Collection of default values for defined units. Example: `{ px: 350, em: 15 }`.\n *\n * @return Filtered list of units, with their default values updated following the `defaultValues`\n * argument's property.\n */\nexport const useCustomUnits = ( {\n\tunits = ALL_CSS_UNITS,\n\tavailableUnits = [],\n\tdefaultValues,\n}: {\n\tunits?: WPUnitControlUnit[];\n\tavailableUnits?: string[];\n\tdefaultValues?: Record< string, number >;\n} ): WPUnitControlUnit[] => {\n\tconst customUnitsToReturn = filterUnitsWithSettings(\n\t\tavailableUnits,\n\t\tunits\n\t);\n\n\tif ( defaultValues ) {\n\t\tcustomUnitsToReturn.forEach( ( unit, i ) => {\n\t\t\tif ( defaultValues[ unit.value ] ) {\n\t\t\t\tconst [ parsedDefaultValue ] = parseQuantityAndUnitFromRawValue(\n\t\t\t\t\tdefaultValues[ unit.value ]\n\t\t\t\t);\n\n\t\t\t\tcustomUnitsToReturn[ i ].default = parsedDefaultValue;\n\t\t\t}\n\t\t} );\n\t}\n\n\treturn customUnitsToReturn;\n};\n\n/**\n * Get available units with the unit for the currently selected value\n * prepended if it is not available in the list of units.\n *\n * This is useful to ensure that the current value's unit is always\n * accurately displayed in the UI, even if the intention is to hide\n * the availability of that unit.\n *\n * @param rawValue Selected value to parse.\n * @param legacyUnit Legacy unit value, if rawValue needs it appended.\n * @param units List of available units.\n *\n * @return A collection of units containing the unit for the current value.\n */\nexport function getUnitsWithCurrentUnit(\n\trawValue?: string | number,\n\tlegacyUnit?: string,\n\tunits: WPUnitControlUnit[] = ALL_CSS_UNITS\n): WPUnitControlUnit[] {\n\tconst unitsToReturn = Array.isArray( units ) ? [ ...units ] : [];\n\tconst [ , currentUnit ] = getParsedQuantityAndUnit(\n\t\trawValue,\n\t\tlegacyUnit,\n\t\tALL_CSS_UNITS\n\t);\n\n\tif (\n\t\tcurrentUnit &&\n\t\t! unitsToReturn.some( ( unit ) => unit.value === currentUnit )\n\t) {\n\t\tif ( allUnits[ currentUnit ] ) {\n\t\t\tunitsToReturn.unshift( allUnits[ currentUnit ] );\n\t\t}\n\t}\n\n\treturn unitsToReturn;\n}\n"],"mappings":"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"}
1
+ {"version":3,"names":["_i18n","require","_element","isWeb","Platform","OS","allUnits","px","value","label","__","a11yLabel","step","em","_x","rem","vw","vh","vmin","vmax","ch","ex","cm","mm","in","pc","pt","svw","svh","svi","svb","svmin","lvw","lvh","lvi","lvb","lvmin","dvw","dvh","dvi","dvb","dvmin","dvmax","svmax","lvmax","ALL_CSS_UNITS","Object","values","exports","CSS_UNITS","DEFAULT_UNIT","getParsedQuantityAndUnit","rawValue","fallbackUnit","allowedUnits","initialValue","parseQuantityAndUnitFromRawValue","hasUnits","units","Array","isArray","length","trimmedValue","quantityToReturn","trim","parsedQuantity","parseFloat","isFinite","undefined","unitMatch","match","matchedUnit","toLowerCase","unitToReturn","find","item","getValidParsedQuantityAndUnit","fallbackQuantity","parsedUnit","getAccessibleLabelForUnit","unit","filterUnitsWithSettings","allowedUnitValues","availableUnits","filter","includes","useCustomUnits","defaultValues","customUnitsToReturn","forEach","i","parsedDefaultValue","default","getUnitsWithCurrentUnit","legacyUnit","unitsToReturn","currentUnit","some","unshift"],"sources":["@wordpress/components/src/unit-control/utils.ts"],"sourcesContent":["/**\n * WordPress dependencies\n */\nimport { __, _x } from '@wordpress/i18n';\nimport { Platform } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\nimport type { WPUnitControlUnit } from './types';\n\nconst isWeb = Platform.OS === 'web';\n\nconst allUnits: Record< string, WPUnitControlUnit > = {\n\tpx: {\n\t\tvalue: 'px',\n\t\tlabel: isWeb ? 'px' : __( 'Pixels (px)' ),\n\t\ta11yLabel: __( 'Pixels (px)' ),\n\t\tstep: 1,\n\t},\n\t'%': {\n\t\tvalue: '%',\n\t\tlabel: isWeb ? '%' : __( 'Percentage (%)' ),\n\t\ta11yLabel: __( 'Percent (%)' ),\n\t\tstep: 0.1,\n\t},\n\tem: {\n\t\tvalue: 'em',\n\t\tlabel: isWeb ? 'em' : __( 'Relative to parent font size (em)' ),\n\t\ta11yLabel: _x( 'ems', 'Relative to parent font size (em)' ),\n\t\tstep: 0.01,\n\t},\n\trem: {\n\t\tvalue: 'rem',\n\t\tlabel: isWeb ? 'rem' : __( 'Relative to root font size (rem)' ),\n\t\ta11yLabel: _x( 'rems', 'Relative to root font size (rem)' ),\n\t\tstep: 0.01,\n\t},\n\tvw: {\n\t\tvalue: 'vw',\n\t\tlabel: isWeb ? 'vw' : __( 'Viewport width (vw)' ),\n\t\ta11yLabel: __( 'Viewport width (vw)' ),\n\t\tstep: 0.1,\n\t},\n\tvh: {\n\t\tvalue: 'vh',\n\t\tlabel: isWeb ? 'vh' : __( 'Viewport height (vh)' ),\n\t\ta11yLabel: __( 'Viewport height (vh)' ),\n\t\tstep: 0.1,\n\t},\n\tvmin: {\n\t\tvalue: 'vmin',\n\t\tlabel: isWeb ? 'vmin' : __( 'Viewport smallest dimension (vmin)' ),\n\t\ta11yLabel: __( 'Viewport smallest dimension (vmin)' ),\n\t\tstep: 0.1,\n\t},\n\tvmax: {\n\t\tvalue: 'vmax',\n\t\tlabel: isWeb ? 'vmax' : __( 'Viewport largest dimension (vmax)' ),\n\t\ta11yLabel: __( 'Viewport largest dimension (vmax)' ),\n\t\tstep: 0.1,\n\t},\n\tch: {\n\t\tvalue: 'ch',\n\t\tlabel: isWeb ? 'ch' : __( 'Width of the zero (0) character (ch)' ),\n\t\ta11yLabel: __( 'Width of the zero (0) character (ch)' ),\n\t\tstep: 0.01,\n\t},\n\tex: {\n\t\tvalue: 'ex',\n\t\tlabel: isWeb ? 'ex' : __( 'x-height of the font (ex)' ),\n\t\ta11yLabel: __( 'x-height of the font (ex)' ),\n\t\tstep: 0.01,\n\t},\n\tcm: {\n\t\tvalue: 'cm',\n\t\tlabel: isWeb ? 'cm' : __( 'Centimeters (cm)' ),\n\t\ta11yLabel: __( 'Centimeters (cm)' ),\n\t\tstep: 0.001,\n\t},\n\tmm: {\n\t\tvalue: 'mm',\n\t\tlabel: isWeb ? 'mm' : __( 'Millimeters (mm)' ),\n\t\ta11yLabel: __( 'Millimeters (mm)' ),\n\t\tstep: 0.1,\n\t},\n\tin: {\n\t\tvalue: 'in',\n\t\tlabel: isWeb ? 'in' : __( 'Inches (in)' ),\n\t\ta11yLabel: __( 'Inches (in)' ),\n\t\tstep: 0.001,\n\t},\n\tpc: {\n\t\tvalue: 'pc',\n\t\tlabel: isWeb ? 'pc' : __( 'Picas (pc)' ),\n\t\ta11yLabel: __( 'Picas (pc)' ),\n\t\tstep: 1,\n\t},\n\tpt: {\n\t\tvalue: 'pt',\n\t\tlabel: isWeb ? 'pt' : __( 'Points (pt)' ),\n\t\ta11yLabel: __( 'Points (pt)' ),\n\t\tstep: 1,\n\t},\n\tsvw: {\n\t\tvalue: 'svw',\n\t\tlabel: isWeb ? 'svw' : __( 'Small viewport width (svw)' ),\n\t\ta11yLabel: __( 'Small viewport width (svw)' ),\n\t\tstep: 0.1,\n\t},\n\tsvh: {\n\t\tvalue: 'svh',\n\t\tlabel: isWeb ? 'svh' : __( 'Small viewport height (svh)' ),\n\t\ta11yLabel: __( 'Small viewport height (svh)' ),\n\t\tstep: 0.1,\n\t},\n\tsvi: {\n\t\tvalue: 'svi',\n\t\tlabel: isWeb\n\t\t\t? 'svi'\n\t\t\t: __( 'Viewport smallest size in the inline direction (svi)' ),\n\t\ta11yLabel: __( 'Small viewport width or height (svi)' ),\n\t\tstep: 0.1,\n\t},\n\tsvb: {\n\t\tvalue: 'svb',\n\t\tlabel: isWeb\n\t\t\t? 'svb'\n\t\t\t: __( 'Viewport smallest size in the block direction (svb)' ),\n\t\ta11yLabel: __( 'Small viewport width or height (svb)' ),\n\t\tstep: 0.1,\n\t},\n\tsvmin: {\n\t\tvalue: 'svmin',\n\t\tlabel: isWeb\n\t\t\t? 'svmin'\n\t\t\t: __( 'Small viewport smallest dimension (svmin)' ),\n\t\ta11yLabel: __( 'Small viewport smallest dimension (svmin)' ),\n\t\tstep: 0.1,\n\t},\n\tlvw: {\n\t\tvalue: 'lvw',\n\t\tlabel: isWeb ? 'lvw' : __( 'Large viewport width (lvw)' ),\n\t\ta11yLabel: __( 'Large viewport width (lvw)' ),\n\t\tstep: 0.1,\n\t},\n\tlvh: {\n\t\tvalue: 'lvh',\n\t\tlabel: isWeb ? 'lvh' : __( 'Large viewport height (lvh)' ),\n\t\ta11yLabel: __( 'Large viewport height (lvh)' ),\n\t\tstep: 0.1,\n\t},\n\tlvi: {\n\t\tvalue: 'lvi',\n\t\tlabel: isWeb ? 'lvi' : __( 'Large viewport width or height (lvi)' ),\n\t\ta11yLabel: __( 'Large viewport width or height (lvi)' ),\n\t\tstep: 0.1,\n\t},\n\tlvb: {\n\t\tvalue: 'lvb',\n\t\tlabel: isWeb ? 'lvb' : __( 'Large viewport width or height (lvb)' ),\n\t\ta11yLabel: __( 'Large viewport width or height (lvb)' ),\n\t\tstep: 0.1,\n\t},\n\tlvmin: {\n\t\tvalue: 'lvmin',\n\t\tlabel: isWeb\n\t\t\t? 'lvmin'\n\t\t\t: __( 'Large viewport smallest dimension (lvmin)' ),\n\t\ta11yLabel: __( 'Large viewport smallest dimension (lvmin)' ),\n\t\tstep: 0.1,\n\t},\n\tdvw: {\n\t\tvalue: 'dvw',\n\t\tlabel: isWeb ? 'dvw' : __( 'Dynamic viewport width (dvw)' ),\n\t\ta11yLabel: __( 'Dynamic viewport width (dvw)' ),\n\t\tstep: 0.1,\n\t},\n\tdvh: {\n\t\tvalue: 'dvh',\n\t\tlabel: isWeb ? 'dvh' : __( 'Dynamic viewport height (dvh)' ),\n\t\ta11yLabel: __( 'Dynamic viewport height (dvh)' ),\n\t\tstep: 0.1,\n\t},\n\tdvi: {\n\t\tvalue: 'dvi',\n\t\tlabel: isWeb ? 'dvi' : __( 'Dynamic viewport width or height (dvi)' ),\n\t\ta11yLabel: __( 'Dynamic viewport width or height (dvi)' ),\n\t\tstep: 0.1,\n\t},\n\tdvb: {\n\t\tvalue: 'dvb',\n\t\tlabel: isWeb ? 'dvb' : __( 'Dynamic viewport width or height (dvb)' ),\n\t\ta11yLabel: __( 'Dynamic viewport width or height (dvb)' ),\n\t\tstep: 0.1,\n\t},\n\tdvmin: {\n\t\tvalue: 'dvmin',\n\t\tlabel: isWeb\n\t\t\t? 'dvmin'\n\t\t\t: __( 'Dynamic viewport smallest dimension (dvmin)' ),\n\t\ta11yLabel: __( 'Dynamic viewport smallest dimension (dvmin)' ),\n\t\tstep: 0.1,\n\t},\n\tdvmax: {\n\t\tvalue: 'dvmax',\n\t\tlabel: isWeb\n\t\t\t? 'dvmax'\n\t\t\t: __( 'Dynamic viewport largest dimension (dvmax)' ),\n\t\ta11yLabel: __( 'Dynamic viewport largest dimension (dvmax)' ),\n\t\tstep: 0.1,\n\t},\n\tsvmax: {\n\t\tvalue: 'svmax',\n\t\tlabel: isWeb\n\t\t\t? 'svmax'\n\t\t\t: __( 'Small viewport largest dimension (svmax)' ),\n\t\ta11yLabel: __( 'Small viewport largest dimension (svmax)' ),\n\t\tstep: 0.1,\n\t},\n\tlvmax: {\n\t\tvalue: 'lvmax',\n\t\tlabel: isWeb\n\t\t\t? 'lvmax'\n\t\t\t: __( 'Large viewport largest dimension (lvmax)' ),\n\t\ta11yLabel: __( 'Large viewport largest dimension (lvmax)' ),\n\t\tstep: 0.1,\n\t},\n};\n\n/**\n * An array of all available CSS length units.\n */\nexport const ALL_CSS_UNITS = Object.values( allUnits );\n\n/**\n * Units of measurements. `a11yLabel` is used by screenreaders.\n */\nexport const CSS_UNITS = [\n\tallUnits.px,\n\tallUnits[ '%' ],\n\tallUnits.em,\n\tallUnits.rem,\n\tallUnits.vw,\n\tallUnits.vh,\n];\n\nexport const DEFAULT_UNIT = allUnits.px;\n\n/**\n * Handles legacy value + unit handling.\n * This component use to manage both incoming value and units separately.\n *\n * Moving forward, ideally the value should be a string that contains both\n * the value and unit, example: '10px'\n *\n * @param rawValue The raw value as a string (may or may not contain the unit)\n * @param fallbackUnit The unit used as a fallback, if not unit is detected in the `value`\n * @param allowedUnits Units to derive from.\n * @return The extracted quantity and unit. The quantity can be `undefined` in case the raw value\n * could not be parsed to a number correctly. The unit can be `undefined` in case the unit parse\n * from the raw value could not be matched against the list of allowed units.\n */\nexport function getParsedQuantityAndUnit(\n\trawValue?: string | number,\n\tfallbackUnit?: string,\n\tallowedUnits?: WPUnitControlUnit[]\n): [ number | undefined, string | undefined ] {\n\tconst initialValue = fallbackUnit\n\t\t? `${ rawValue ?? '' }${ fallbackUnit }`\n\t\t: rawValue;\n\n\treturn parseQuantityAndUnitFromRawValue( initialValue, allowedUnits );\n}\n\n/**\n * Checks if units are defined.\n *\n * @param units List of units.\n * @return Whether the list actually contains any units.\n */\nexport function hasUnits(\n\tunits?: WPUnitControlUnit[]\n): units is WPUnitControlUnit[] {\n\t// Although the `isArray` check shouldn't be necessary (given the signature of\n\t// this typed function), it's better to stay on the side of caution, since\n\t// this function may be called from un-typed environments.\n\treturn Array.isArray( units ) && !! units.length;\n}\n\n/**\n * Parses a quantity and unit from a raw string value, given a list of allowed\n * units and otherwise falling back to the default unit.\n *\n * @param rawValue The raw value as a string (may or may not contain the unit)\n * @param allowedUnits Units to derive from.\n * @return The extracted quantity and unit. The quantity can be `undefined` in case the raw value\n * could not be parsed to a number correctly. The unit can be `undefined` in case the unit parsed\n * from the raw value could not be matched against the list of allowed units.\n */\nexport function parseQuantityAndUnitFromRawValue(\n\trawValue?: string | number,\n\tallowedUnits: WPUnitControlUnit[] = ALL_CSS_UNITS\n): [ number | undefined, string | undefined ] {\n\tlet trimmedValue;\n\tlet quantityToReturn;\n\n\tif ( typeof rawValue !== 'undefined' || rawValue === null ) {\n\t\ttrimmedValue = `${ rawValue }`.trim();\n\t\tconst parsedQuantity = parseFloat( trimmedValue );\n\t\tquantityToReturn = ! isFinite( parsedQuantity )\n\t\t\t? undefined\n\t\t\t: parsedQuantity;\n\t}\n\n\tconst unitMatch = trimmedValue?.match( /[\\d.\\-\\+]*\\s*(.*)/ );\n\tconst matchedUnit = unitMatch?.[ 1 ]?.toLowerCase();\n\tlet unitToReturn: string | undefined;\n\tif ( hasUnits( allowedUnits ) ) {\n\t\tconst match = allowedUnits.find(\n\t\t\t( item ) => item.value === matchedUnit\n\t\t);\n\t\tunitToReturn = match?.value;\n\t} else {\n\t\tunitToReturn = DEFAULT_UNIT.value;\n\t}\n\n\treturn [ quantityToReturn, unitToReturn ];\n}\n\n/**\n * Parses quantity and unit from a raw value. Validates parsed value, using fallback\n * value if invalid.\n *\n * @param rawValue The next value.\n * @param allowedUnits Units to derive from.\n * @param fallbackQuantity The fallback quantity, used in case it's not possible to parse a valid quantity from the raw value.\n * @param fallbackUnit The fallback unit, used in case it's not possible to parse a valid unit from the raw value.\n * @return The extracted quantity and unit. The quantity can be `undefined` in case the raw value\n * could not be parsed to a number correctly, and the `fallbackQuantity` was also `undefined`. The\n * unit can be `undefined` only if the unit parsed from the raw value could not be matched against\n * the list of allowed units, the `fallbackQuantity` is also `undefined` and the list of\n * `allowedUnits` is passed empty.\n */\nexport function getValidParsedQuantityAndUnit(\n\trawValue: string | number,\n\tallowedUnits?: WPUnitControlUnit[],\n\tfallbackQuantity?: number,\n\tfallbackUnit?: string\n): [ number | undefined, string | undefined ] {\n\tconst [ parsedQuantity, parsedUnit ] = parseQuantityAndUnitFromRawValue(\n\t\trawValue,\n\t\tallowedUnits\n\t);\n\n\t// The parsed value from `parseQuantityAndUnitFromRawValue` should now be\n\t// either a real number or undefined. If undefined, use the fallback value.\n\tconst quantityToReturn = parsedQuantity ?? fallbackQuantity;\n\n\t// If no unit is parsed from the raw value, or if the fallback unit is not\n\t// defined, use the first value from the list of allowed units as fallback.\n\tlet unitToReturn = parsedUnit || fallbackUnit;\n\n\tif ( ! unitToReturn && hasUnits( allowedUnits ) ) {\n\t\tunitToReturn = allowedUnits[ 0 ].value;\n\t}\n\n\treturn [ quantityToReturn, unitToReturn ];\n}\n\n/**\n * Takes a unit value and finds the matching accessibility label for the\n * unit abbreviation.\n *\n * @param unit Unit value (example: `px`)\n * @return a11y label for the unit abbreviation\n */\nexport function getAccessibleLabelForUnit( unit: string ): string | undefined {\n\tconst match = ALL_CSS_UNITS.find( ( item ) => item.value === unit );\n\treturn match?.a11yLabel ? match?.a11yLabel : match?.value;\n}\n\n/**\n * Filters available units based on values defined a list of allowed unit values.\n *\n * @param allowedUnitValues Collection of allowed unit value strings.\n * @param availableUnits Collection of available unit objects.\n * @return Filtered units.\n */\nexport function filterUnitsWithSettings(\n\tallowedUnitValues: string[] = [],\n\tavailableUnits: WPUnitControlUnit[]\n): WPUnitControlUnit[] {\n\t// Although the `isArray` check shouldn't be necessary (given the signature of\n\t// this typed function), it's better to stay on the side of caution, since\n\t// this function may be called from un-typed environments.\n\treturn Array.isArray( availableUnits )\n\t\t? availableUnits.filter( ( unit ) =>\n\t\t\t\tallowedUnitValues.includes( unit.value )\n\t\t )\n\t\t: [];\n}\n\n/**\n * Custom hook to retrieve and consolidate units setting from add_theme_support().\n * TODO: ideally this hook shouldn't be needed\n * https://github.com/WordPress/gutenberg/pull/31822#discussion_r633280823\n *\n * @param args An object containing units, settingPath & defaultUnits.\n * @param args.units Collection of all potentially available units.\n * @param args.availableUnits Collection of unit value strings for filtering available units.\n * @param args.defaultValues Collection of default values for defined units. Example: `{ px: 350, em: 15 }`.\n *\n * @return Filtered list of units, with their default values updated following the `defaultValues`\n * argument's property.\n */\nexport const useCustomUnits = ( {\n\tunits = ALL_CSS_UNITS,\n\tavailableUnits = [],\n\tdefaultValues,\n}: {\n\tunits?: WPUnitControlUnit[];\n\tavailableUnits?: string[];\n\tdefaultValues?: Record< string, number >;\n} ): WPUnitControlUnit[] => {\n\tconst customUnitsToReturn = filterUnitsWithSettings(\n\t\tavailableUnits,\n\t\tunits\n\t);\n\n\tif ( defaultValues ) {\n\t\tcustomUnitsToReturn.forEach( ( unit, i ) => {\n\t\t\tif ( defaultValues[ unit.value ] ) {\n\t\t\t\tconst [ parsedDefaultValue ] = parseQuantityAndUnitFromRawValue(\n\t\t\t\t\tdefaultValues[ unit.value ]\n\t\t\t\t);\n\n\t\t\t\tcustomUnitsToReturn[ i ].default = parsedDefaultValue;\n\t\t\t}\n\t\t} );\n\t}\n\n\treturn customUnitsToReturn;\n};\n\n/**\n * Get available units with the unit for the currently selected value\n * prepended if it is not available in the list of units.\n *\n * This is useful to ensure that the current value's unit is always\n * accurately displayed in the UI, even if the intention is to hide\n * the availability of that unit.\n *\n * @param rawValue Selected value to parse.\n * @param legacyUnit Legacy unit value, if rawValue needs it appended.\n * @param units List of available units.\n *\n * @return A collection of units containing the unit for the current value.\n */\nexport function getUnitsWithCurrentUnit(\n\trawValue?: string | number,\n\tlegacyUnit?: string,\n\tunits: WPUnitControlUnit[] = ALL_CSS_UNITS\n): WPUnitControlUnit[] {\n\tconst unitsToReturn = Array.isArray( units ) ? [ ...units ] : [];\n\tconst [ , currentUnit ] = getParsedQuantityAndUnit(\n\t\trawValue,\n\t\tlegacyUnit,\n\t\tALL_CSS_UNITS\n\t);\n\n\tif (\n\t\tcurrentUnit &&\n\t\t! unitsToReturn.some( ( unit ) => unit.value === currentUnit )\n\t) {\n\t\tif ( allUnits[ currentUnit ] ) {\n\t\t\tunitsToReturn.unshift( allUnits[ currentUnit ] );\n\t\t}\n\t}\n\n\treturn unitsToReturn;\n}\n"],"mappings":";;;;;;;;;;;;;;AAGA,IAAAA,KAAA,GAAAC,OAAA;AACA,IAAAC,QAAA,GAAAD,OAAA;AAJA;AACA;AACA;;AASA,MAAME,KAAK,GAAGC,iBAAQ,CAACC,EAAE,KAAK,KAAK;AAEnC,MAAMC,QAA6C,GAAG;EACrDC,EAAE,EAAE;IACHC,KAAK,EAAE,IAAI;IACXC,KAAK,EAAEN,KAAK,GAAG,IAAI,GAAG,IAAAO,QAAE,EAAE,aAAc,CAAC;IACzCC,SAAS,EAAE,IAAAD,QAAE,EAAE,aAAc,CAAC;IAC9BE,IAAI,EAAE;EACP,CAAC;EACD,GAAG,EAAE;IACJJ,KAAK,EAAE,GAAG;IACVC,KAAK,EAAEN,KAAK,GAAG,GAAG,GAAG,IAAAO,QAAE,EAAE,gBAAiB,CAAC;IAC3CC,SAAS,EAAE,IAAAD,QAAE,EAAE,aAAc,CAAC;IAC9BE,IAAI,EAAE;EACP,CAAC;EACDC,EAAE,EAAE;IACHL,KAAK,EAAE,IAAI;IACXC,KAAK,EAAEN,KAAK,GAAG,IAAI,GAAG,IAAAO,QAAE,EAAE,mCAAoC,CAAC;IAC/DC,SAAS,EAAE,IAAAG,QAAE,EAAE,KAAK,EAAE,mCAAoC,CAAC;IAC3DF,IAAI,EAAE;EACP,CAAC;EACDG,GAAG,EAAE;IACJP,KAAK,EAAE,KAAK;IACZC,KAAK,EAAEN,KAAK,GAAG,KAAK,GAAG,IAAAO,QAAE,EAAE,kCAAmC,CAAC;IAC/DC,SAAS,EAAE,IAAAG,QAAE,EAAE,MAAM,EAAE,kCAAmC,CAAC;IAC3DF,IAAI,EAAE;EACP,CAAC;EACDI,EAAE,EAAE;IACHR,KAAK,EAAE,IAAI;IACXC,KAAK,EAAEN,KAAK,GAAG,IAAI,GAAG,IAAAO,QAAE,EAAE,qBAAsB,CAAC;IACjDC,SAAS,EAAE,IAAAD,QAAE,EAAE,qBAAsB,CAAC;IACtCE,IAAI,EAAE;EACP,CAAC;EACDK,EAAE,EAAE;IACHT,KAAK,EAAE,IAAI;IACXC,KAAK,EAAEN,KAAK,GAAG,IAAI,GAAG,IAAAO,QAAE,EAAE,sBAAuB,CAAC;IAClDC,SAAS,EAAE,IAAAD,QAAE,EAAE,sBAAuB,CAAC;IACvCE,IAAI,EAAE;EACP,CAAC;EACDM,IAAI,EAAE;IACLV,KAAK,EAAE,MAAM;IACbC,KAAK,EAAEN,KAAK,GAAG,MAAM,GAAG,IAAAO,QAAE,EAAE,oCAAqC,CAAC;IAClEC,SAAS,EAAE,IAAAD,QAAE,EAAE,oCAAqC,CAAC;IACrDE,IAAI,EAAE;EACP,CAAC;EACDO,IAAI,EAAE;IACLX,KAAK,EAAE,MAAM;IACbC,KAAK,EAAEN,KAAK,GAAG,MAAM,GAAG,IAAAO,QAAE,EAAE,mCAAoC,CAAC;IACjEC,SAAS,EAAE,IAAAD,QAAE,EAAE,mCAAoC,CAAC;IACpDE,IAAI,EAAE;EACP,CAAC;EACDQ,EAAE,EAAE;IACHZ,KAAK,EAAE,IAAI;IACXC,KAAK,EAAEN,KAAK,GAAG,IAAI,GAAG,IAAAO,QAAE,EAAE,sCAAuC,CAAC;IAClEC,SAAS,EAAE,IAAAD,QAAE,EAAE,sCAAuC,CAAC;IACvDE,IAAI,EAAE;EACP,CAAC;EACDS,EAAE,EAAE;IACHb,KAAK,EAAE,IAAI;IACXC,KAAK,EAAEN,KAAK,GAAG,IAAI,GAAG,IAAAO,QAAE,EAAE,2BAA4B,CAAC;IACvDC,SAAS,EAAE,IAAAD,QAAE,EAAE,2BAA4B,CAAC;IAC5CE,IAAI,EAAE;EACP,CAAC;EACDU,EAAE,EAAE;IACHd,KAAK,EAAE,IAAI;IACXC,KAAK,EAAEN,KAAK,GAAG,IAAI,GAAG,IAAAO,QAAE,EAAE,kBAAmB,CAAC;IAC9CC,SAAS,EAAE,IAAAD,QAAE,EAAE,kBAAmB,CAAC;IACnCE,IAAI,EAAE;EACP,CAAC;EACDW,EAAE,EAAE;IACHf,KAAK,EAAE,IAAI;IACXC,KAAK,EAAEN,KAAK,GAAG,IAAI,GAAG,IAAAO,QAAE,EAAE,kBAAmB,CAAC;IAC9CC,SAAS,EAAE,IAAAD,QAAE,EAAE,kBAAmB,CAAC;IACnCE,IAAI,EAAE;EACP,CAAC;EACDY,EAAE,EAAE;IACHhB,KAAK,EAAE,IAAI;IACXC,KAAK,EAAEN,KAAK,GAAG,IAAI,GAAG,IAAAO,QAAE,EAAE,aAAc,CAAC;IACzCC,SAAS,EAAE,IAAAD,QAAE,EAAE,aAAc,CAAC;IAC9BE,IAAI,EAAE;EACP,CAAC;EACDa,EAAE,EAAE;IACHjB,KAAK,EAAE,IAAI;IACXC,KAAK,EAAEN,KAAK,GAAG,IAAI,GAAG,IAAAO,QAAE,EAAE,YAAa,CAAC;IACxCC,SAAS,EAAE,IAAAD,QAAE,EAAE,YAAa,CAAC;IAC7BE,IAAI,EAAE;EACP,CAAC;EACDc,EAAE,EAAE;IACHlB,KAAK,EAAE,IAAI;IACXC,KAAK,EAAEN,KAAK,GAAG,IAAI,GAAG,IAAAO,QAAE,EAAE,aAAc,CAAC;IACzCC,SAAS,EAAE,IAAAD,QAAE,EAAE,aAAc,CAAC;IAC9BE,IAAI,EAAE;EACP,CAAC;EACDe,GAAG,EAAE;IACJnB,KAAK,EAAE,KAAK;IACZC,KAAK,EAAEN,KAAK,GAAG,KAAK,GAAG,IAAAO,QAAE,EAAE,4BAA6B,CAAC;IACzDC,SAAS,EAAE,IAAAD,QAAE,EAAE,4BAA6B,CAAC;IAC7CE,IAAI,EAAE;EACP,CAAC;EACDgB,GAAG,EAAE;IACJpB,KAAK,EAAE,KAAK;IACZC,KAAK,EAAEN,KAAK,GAAG,KAAK,GAAG,IAAAO,QAAE,EAAE,6BAA8B,CAAC;IAC1DC,SAAS,EAAE,IAAAD,QAAE,EAAE,6BAA8B,CAAC;IAC9CE,IAAI,EAAE;EACP,CAAC;EACDiB,GAAG,EAAE;IACJrB,KAAK,EAAE,KAAK;IACZC,KAAK,EAAEN,KAAK,GACT,KAAK,GACL,IAAAO,QAAE,EAAE,sDAAuD,CAAC;IAC/DC,SAAS,EAAE,IAAAD,QAAE,EAAE,sCAAuC,CAAC;IACvDE,IAAI,EAAE;EACP,CAAC;EACDkB,GAAG,EAAE;IACJtB,KAAK,EAAE,KAAK;IACZC,KAAK,EAAEN,KAAK,GACT,KAAK,GACL,IAAAO,QAAE,EAAE,qDAAsD,CAAC;IAC9DC,SAAS,EAAE,IAAAD,QAAE,EAAE,sCAAuC,CAAC;IACvDE,IAAI,EAAE;EACP,CAAC;EACDmB,KAAK,EAAE;IACNvB,KAAK,EAAE,OAAO;IACdC,KAAK,EAAEN,KAAK,GACT,OAAO,GACP,IAAAO,QAAE,EAAE,2CAA4C,CAAC;IACpDC,SAAS,EAAE,IAAAD,QAAE,EAAE,2CAA4C,CAAC;IAC5DE,IAAI,EAAE;EACP,CAAC;EACDoB,GAAG,EAAE;IACJxB,KAAK,EAAE,KAAK;IACZC,KAAK,EAAEN,KAAK,GAAG,KAAK,GAAG,IAAAO,QAAE,EAAE,4BAA6B,CAAC;IACzDC,SAAS,EAAE,IAAAD,QAAE,EAAE,4BAA6B,CAAC;IAC7CE,IAAI,EAAE;EACP,CAAC;EACDqB,GAAG,EAAE;IACJzB,KAAK,EAAE,KAAK;IACZC,KAAK,EAAEN,KAAK,GAAG,KAAK,GAAG,IAAAO,QAAE,EAAE,6BAA8B,CAAC;IAC1DC,SAAS,EAAE,IAAAD,QAAE,EAAE,6BAA8B,CAAC;IAC9CE,IAAI,EAAE;EACP,CAAC;EACDsB,GAAG,EAAE;IACJ1B,KAAK,EAAE,KAAK;IACZC,KAAK,EAAEN,KAAK,GAAG,KAAK,GAAG,IAAAO,QAAE,EAAE,sCAAuC,CAAC;IACnEC,SAAS,EAAE,IAAAD,QAAE,EAAE,sCAAuC,CAAC;IACvDE,IAAI,EAAE;EACP,CAAC;EACDuB,GAAG,EAAE;IACJ3B,KAAK,EAAE,KAAK;IACZC,KAAK,EAAEN,KAAK,GAAG,KAAK,GAAG,IAAAO,QAAE,EAAE,sCAAuC,CAAC;IACnEC,SAAS,EAAE,IAAAD,QAAE,EAAE,sCAAuC,CAAC;IACvDE,IAAI,EAAE;EACP,CAAC;EACDwB,KAAK,EAAE;IACN5B,KAAK,EAAE,OAAO;IACdC,KAAK,EAAEN,KAAK,GACT,OAAO,GACP,IAAAO,QAAE,EAAE,2CAA4C,CAAC;IACpDC,SAAS,EAAE,IAAAD,QAAE,EAAE,2CAA4C,CAAC;IAC5DE,IAAI,EAAE;EACP,CAAC;EACDyB,GAAG,EAAE;IACJ7B,KAAK,EAAE,KAAK;IACZC,KAAK,EAAEN,KAAK,GAAG,KAAK,GAAG,IAAAO,QAAE,EAAE,8BAA+B,CAAC;IAC3DC,SAAS,EAAE,IAAAD,QAAE,EAAE,8BAA+B,CAAC;IAC/CE,IAAI,EAAE;EACP,CAAC;EACD0B,GAAG,EAAE;IACJ9B,KAAK,EAAE,KAAK;IACZC,KAAK,EAAEN,KAAK,GAAG,KAAK,GAAG,IAAAO,QAAE,EAAE,+BAAgC,CAAC;IAC5DC,SAAS,EAAE,IAAAD,QAAE,EAAE,+BAAgC,CAAC;IAChDE,IAAI,EAAE;EACP,CAAC;EACD2B,GAAG,EAAE;IACJ/B,KAAK,EAAE,KAAK;IACZC,KAAK,EAAEN,KAAK,GAAG,KAAK,GAAG,IAAAO,QAAE,EAAE,wCAAyC,CAAC;IACrEC,SAAS,EAAE,IAAAD,QAAE,EAAE,wCAAyC,CAAC;IACzDE,IAAI,EAAE;EACP,CAAC;EACD4B,GAAG,EAAE;IACJhC,KAAK,EAAE,KAAK;IACZC,KAAK,EAAEN,KAAK,GAAG,KAAK,GAAG,IAAAO,QAAE,EAAE,wCAAyC,CAAC;IACrEC,SAAS,EAAE,IAAAD,QAAE,EAAE,wCAAyC,CAAC;IACzDE,IAAI,EAAE;EACP,CAAC;EACD6B,KAAK,EAAE;IACNjC,KAAK,EAAE,OAAO;IACdC,KAAK,EAAEN,KAAK,GACT,OAAO,GACP,IAAAO,QAAE,EAAE,6CAA8C,CAAC;IACtDC,SAAS,EAAE,IAAAD,QAAE,EAAE,6CAA8C,CAAC;IAC9DE,IAAI,EAAE;EACP,CAAC;EACD8B,KAAK,EAAE;IACNlC,KAAK,EAAE,OAAO;IACdC,KAAK,EAAEN,KAAK,GACT,OAAO,GACP,IAAAO,QAAE,EAAE,4CAA6C,CAAC;IACrDC,SAAS,EAAE,IAAAD,QAAE,EAAE,4CAA6C,CAAC;IAC7DE,IAAI,EAAE;EACP,CAAC;EACD+B,KAAK,EAAE;IACNnC,KAAK,EAAE,OAAO;IACdC,KAAK,EAAEN,KAAK,GACT,OAAO,GACP,IAAAO,QAAE,EAAE,0CAA2C,CAAC;IACnDC,SAAS,EAAE,IAAAD,QAAE,EAAE,0CAA2C,CAAC;IAC3DE,IAAI,EAAE;EACP,CAAC;EACDgC,KAAK,EAAE;IACNpC,KAAK,EAAE,OAAO;IACdC,KAAK,EAAEN,KAAK,GACT,OAAO,GACP,IAAAO,QAAE,EAAE,0CAA2C,CAAC;IACnDC,SAAS,EAAE,IAAAD,QAAE,EAAE,0CAA2C,CAAC;IAC3DE,IAAI,EAAE;EACP;AACD,CAAC;;AAED;AACA;AACA;AACO,MAAMiC,aAAa,GAAGC,MAAM,CAACC,MAAM,CAAEzC,QAAS,CAAC;;AAEtD;AACA;AACA;AAFA0C,OAAA,CAAAH,aAAA,GAAAA,aAAA;AAGO,MAAMI,SAAS,GAAG,CACxB3C,QAAQ,CAACC,EAAE,EACXD,QAAQ,CAAE,GAAG,CAAE,EACfA,QAAQ,CAACO,EAAE,EACXP,QAAQ,CAACS,GAAG,EACZT,QAAQ,CAACU,EAAE,EACXV,QAAQ,CAACW,EAAE,CACX;AAAC+B,OAAA,CAAAC,SAAA,GAAAA,SAAA;AAEK,MAAMC,YAAY,GAAG5C,QAAQ,CAACC,EAAE;;AAEvC;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAbAyC,OAAA,CAAAE,YAAA,GAAAA,YAAA;AAcO,SAASC,wBAAwBA,CACvCC,QAA0B,EAC1BC,YAAqB,EACrBC,YAAkC,EACW;EAC7C,MAAMC,YAAY,GAAGF,YAAY,GAC7B,GAAGD,QAAQ,aAARA,QAAQ,cAARA,QAAQ,GAAI,EAAI,GAAGC,YAAc,EAAC,GACtCD,QAAQ;EAEX,OAAOI,gCAAgC,CAAED,YAAY,EAAED,YAAa,CAAC;AACtE;;AAEA;AACA;AACA;AACA;AACA;AACA;AACO,SAASG,QAAQA,CACvBC,KAA2B,EACI;EAC/B;EACA;EACA;EACA,OAAOC,KAAK,CAACC,OAAO,CAAEF,KAAM,CAAC,IAAI,CAAC,CAAEA,KAAK,CAACG,MAAM;AACjD;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAASL,gCAAgCA,CAC/CJ,QAA0B,EAC1BE,YAAiC,GAAGT,aAAa,EACJ;EAC7C,IAAIiB,YAAY;EAChB,IAAIC,gBAAgB;EAEpB,IAAK,OAAOX,QAAQ,KAAK,WAAW,IAAIA,QAAQ,KAAK,IAAI,EAAG;IAC3DU,YAAY,GAAI,GAAGV,QAAU,EAAC,CAACY,IAAI,CAAC,CAAC;IACrC,MAAMC,cAAc,GAAGC,UAAU,CAAEJ,YAAa,CAAC;IACjDC,gBAAgB,GAAG,CAAEI,QAAQ,CAAEF,cAAe,CAAC,GAC5CG,SAAS,GACTH,cAAc;EAClB;EAEA,MAAMI,SAAS,GAAGP,YAAY,EAAEQ,KAAK,CAAE,mBAAoB,CAAC;EAC5D,MAAMC,WAAW,GAAGF,SAAS,GAAI,CAAC,CAAE,EAAEG,WAAW,CAAC,CAAC;EACnD,IAAIC,YAAgC;EACpC,IAAKhB,QAAQ,CAAEH,YAAa,CAAC,EAAG;IAC/B,MAAMgB,KAAK,GAAGhB,YAAY,CAACoB,IAAI,CAC5BC,IAAI,IAAMA,IAAI,CAACnE,KAAK,KAAK+D,WAC5B,CAAC;IACDE,YAAY,GAAGH,KAAK,EAAE9D,KAAK;EAC5B,CAAC,MAAM;IACNiE,YAAY,GAAGvB,YAAY,CAAC1C,KAAK;EAClC;EAEA,OAAO,CAAEuD,gBAAgB,EAAEU,YAAY,CAAE;AAC1C;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAASG,6BAA6BA,CAC5CxB,QAAyB,EACzBE,YAAkC,EAClCuB,gBAAyB,EACzBxB,YAAqB,EACwB;EAC7C,MAAM,CAAEY,cAAc,EAAEa,UAAU,CAAE,GAAGtB,gCAAgC,CACtEJ,QAAQ,EACRE,YACD,CAAC;;EAED;EACA;EACA,MAAMS,gBAAgB,GAAGE,cAAc,aAAdA,cAAc,cAAdA,cAAc,GAAIY,gBAAgB;;EAE3D;EACA;EACA,IAAIJ,YAAY,GAAGK,UAAU,IAAIzB,YAAY;EAE7C,IAAK,CAAEoB,YAAY,IAAIhB,QAAQ,CAAEH,YAAa,CAAC,EAAG;IACjDmB,YAAY,GAAGnB,YAAY,CAAE,CAAC,CAAE,CAAC9C,KAAK;EACvC;EAEA,OAAO,CAAEuD,gBAAgB,EAAEU,YAAY,CAAE;AAC1C;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAASM,yBAAyBA,CAAEC,IAAY,EAAuB;EAC7E,MAAMV,KAAK,GAAGzB,aAAa,CAAC6B,IAAI,CAAIC,IAAI,IAAMA,IAAI,CAACnE,KAAK,KAAKwE,IAAK,CAAC;EACnE,OAAOV,KAAK,EAAE3D,SAAS,GAAG2D,KAAK,EAAE3D,SAAS,GAAG2D,KAAK,EAAE9D,KAAK;AAC1D;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAASyE,uBAAuBA,CACtCC,iBAA2B,GAAG,EAAE,EAChCC,cAAmC,EACb;EACtB;EACA;EACA;EACA,OAAOxB,KAAK,CAACC,OAAO,CAAEuB,cAAe,CAAC,GACnCA,cAAc,CAACC,MAAM,CAAIJ,IAAI,IAC7BE,iBAAiB,CAACG,QAAQ,CAAEL,IAAI,CAACxE,KAAM,CACvC,CAAC,GACD,EAAE;AACN;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,MAAM8E,cAAc,GAAGA,CAAE;EAC/B5B,KAAK,GAAGb,aAAa;EACrBsC,cAAc,GAAG,EAAE;EACnBI;AAKD,CAAC,KAA2B;EAC3B,MAAMC,mBAAmB,GAAGP,uBAAuB,CAClDE,cAAc,EACdzB,KACD,CAAC;EAED,IAAK6B,aAAa,EAAG;IACpBC,mBAAmB,CAACC,OAAO,CAAE,CAAET,IAAI,EAAEU,CAAC,KAAM;MAC3C,IAAKH,aAAa,CAAEP,IAAI,CAACxE,KAAK,CAAE,EAAG;QAClC,MAAM,CAAEmF,kBAAkB,CAAE,GAAGnC,gCAAgC,CAC9D+B,aAAa,CAAEP,IAAI,CAACxE,KAAK,CAC1B,CAAC;QAEDgF,mBAAmB,CAAEE,CAAC,CAAE,CAACE,OAAO,GAAGD,kBAAkB;MACtD;IACD,CAAE,CAAC;EACJ;EAEA,OAAOH,mBAAmB;AAC3B,CAAC;;AAED;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AAbAxC,OAAA,CAAAsC,cAAA,GAAAA,cAAA;AAcO,SAASO,uBAAuBA,CACtCzC,QAA0B,EAC1B0C,UAAmB,EACnBpC,KAA0B,GAAGb,aAAa,EACpB;EACtB,MAAMkD,aAAa,GAAGpC,KAAK,CAACC,OAAO,CAAEF,KAAM,CAAC,GAAG,CAAE,GAAGA,KAAK,CAAE,GAAG,EAAE;EAChE,MAAM,GAAIsC,WAAW,CAAE,GAAG7C,wBAAwB,CACjDC,QAAQ,EACR0C,UAAU,EACVjD,aACD,CAAC;EAED,IACCmD,WAAW,IACX,CAAED,aAAa,CAACE,IAAI,CAAIjB,IAAI,IAAMA,IAAI,CAACxE,KAAK,KAAKwF,WAAY,CAAC,EAC7D;IACD,IAAK1F,QAAQ,CAAE0F,WAAW,CAAE,EAAG;MAC9BD,aAAa,CAACG,OAAO,CAAE5F,QAAQ,CAAE0F,WAAW,CAAG,CAAC;IACjD;EACD;EAEA,OAAOD,aAAa;AACrB"}
@@ -5,7 +5,7 @@ Object.defineProperty(exports, "__esModule", {
5
5
  });
6
6
  exports.createCSSUnitValue = createCSSUnitValue;
7
7
  exports.parseCSSUnitValue = parseCSSUnitValue;
8
- const UNITED_VALUE_REGEX = /^([\d.\-+]*)\s*(fr|cm|mm|Q|in|pc|pt|px|em|ex|ch|rem|lh|vw|vh|vmin|vmax|%|cap|ic|rlh|vi|vb|deg|grad|rad|turn|s|ms|Hz|kHz|dpi|dpcm|dppx)?$/;
8
+ const UNITED_VALUE_REGEX = /^([\d.\-+]*)\s*(fr|cm|mm|Q|in|pc|pt|px|em|ex|ch|rem|lh|vw|vh|vmin|vmax|%|cap|ic|rlh|vi|vb|deg|grad|rad|turn|s|ms|Hz|kHz|dpi|dpcm|dppx|svw|lvw|dvw|svh|lvh|dvh|svi|lvi|dvi|svb|lvb|dvb|svmin|lvmin|dvmin|svmax|lvmax|dvmax)?$/;
9
9
 
10
10
  /**
11
11
  * Parses a number and unit from a value.
@@ -1 +1 @@
1
- {"version":3,"names":["UNITED_VALUE_REGEX","parseCSSUnitValue","toParse","value","trim","matched","match","undefined","num","unit","numParsed","parseFloat","Number","isNaN","createCSSUnitValue"],"sources":["@wordpress/components/src/utils/unit-values.ts"],"sourcesContent":["const UNITED_VALUE_REGEX =\n\t/^([\\d.\\-+]*)\\s*(fr|cm|mm|Q|in|pc|pt|px|em|ex|ch|rem|lh|vw|vh|vmin|vmax|%|cap|ic|rlh|vi|vb|deg|grad|rad|turn|s|ms|Hz|kHz|dpi|dpcm|dppx)?$/;\n\n/**\n * Parses a number and unit from a value.\n *\n * @param toParse Value to parse\n *\n * @return The extracted number and unit.\n */\nexport function parseCSSUnitValue(\n\ttoParse: string\n): [ number | undefined, string | undefined ] {\n\tconst value = toParse.trim();\n\n\tconst matched = value.match( UNITED_VALUE_REGEX );\n\tif ( ! matched ) {\n\t\treturn [ undefined, undefined ];\n\t}\n\tconst [ , num, unit ] = matched;\n\tlet numParsed: number | undefined = parseFloat( num );\n\tnumParsed = Number.isNaN( numParsed ) ? undefined : numParsed;\n\n\treturn [ numParsed, unit ];\n}\n\n/**\n * Combines a value and a unit into a unit value.\n *\n * @param value\n * @param unit\n *\n * @return The unit value.\n */\nexport function createCSSUnitValue(\n\tvalue: string | number,\n\tunit: string\n): string {\n\treturn `${ value }${ unit }`;\n}\n"],"mappings":";;;;;;;AAAA,MAAMA,kBAAkB,GACvB,0IAA0I;;AAE3I;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAASC,iBAAiBA,CAChCC,OAAe,EAC8B;EAC7C,MAAMC,KAAK,GAAGD,OAAO,CAACE,IAAI,CAAC,CAAC;EAE5B,MAAMC,OAAO,GAAGF,KAAK,CAACG,KAAK,CAAEN,kBAAmB,CAAC;EACjD,IAAK,CAAEK,OAAO,EAAG;IAChB,OAAO,CAAEE,SAAS,EAAEA,SAAS,CAAE;EAChC;EACA,MAAM,GAAIC,GAAG,EAAEC,IAAI,CAAE,GAAGJ,OAAO;EAC/B,IAAIK,SAA6B,GAAGC,UAAU,CAAEH,GAAI,CAAC;EACrDE,SAAS,GAAGE,MAAM,CAACC,KAAK,CAAEH,SAAU,CAAC,GAAGH,SAAS,GAAGG,SAAS;EAE7D,OAAO,CAAEA,SAAS,EAAED,IAAI,CAAE;AAC3B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAASK,kBAAkBA,CACjCX,KAAsB,EACtBM,IAAY,EACH;EACT,OAAQ,GAAGN,KAAO,GAAGM,IAAM,EAAC;AAC7B"}
1
+ {"version":3,"names":["UNITED_VALUE_REGEX","parseCSSUnitValue","toParse","value","trim","matched","match","undefined","num","unit","numParsed","parseFloat","Number","isNaN","createCSSUnitValue"],"sources":["@wordpress/components/src/utils/unit-values.ts"],"sourcesContent":["const UNITED_VALUE_REGEX =\n\t/^([\\d.\\-+]*)\\s*(fr|cm|mm|Q|in|pc|pt|px|em|ex|ch|rem|lh|vw|vh|vmin|vmax|%|cap|ic|rlh|vi|vb|deg|grad|rad|turn|s|ms|Hz|kHz|dpi|dpcm|dppx|svw|lvw|dvw|svh|lvh|dvh|svi|lvi|dvi|svb|lvb|dvb|svmin|lvmin|dvmin|svmax|lvmax|dvmax)?$/;\n\n/**\n * Parses a number and unit from a value.\n *\n * @param toParse Value to parse\n *\n * @return The extracted number and unit.\n */\nexport function parseCSSUnitValue(\n\ttoParse: string\n): [ number | undefined, string | undefined ] {\n\tconst value = toParse.trim();\n\n\tconst matched = value.match( UNITED_VALUE_REGEX );\n\tif ( ! matched ) {\n\t\treturn [ undefined, undefined ];\n\t}\n\tconst [ , num, unit ] = matched;\n\tlet numParsed: number | undefined = parseFloat( num );\n\tnumParsed = Number.isNaN( numParsed ) ? undefined : numParsed;\n\n\treturn [ numParsed, unit ];\n}\n\n/**\n * Combines a value and a unit into a unit value.\n *\n * @param value\n * @param unit\n *\n * @return The unit value.\n */\nexport function createCSSUnitValue(\n\tvalue: string | number,\n\tunit: string\n): string {\n\treturn `${ value }${ unit }`;\n}\n"],"mappings":";;;;;;;AAAA,MAAMA,kBAAkB,GACvB,8NAA8N;;AAE/N;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAASC,iBAAiBA,CAChCC,OAAe,EAC8B;EAC7C,MAAMC,KAAK,GAAGD,OAAO,CAACE,IAAI,CAAC,CAAC;EAE5B,MAAMC,OAAO,GAAGF,KAAK,CAACG,KAAK,CAAEN,kBAAmB,CAAC;EACjD,IAAK,CAAEK,OAAO,EAAG;IAChB,OAAO,CAAEE,SAAS,EAAEA,SAAS,CAAE;EAChC;EACA,MAAM,GAAIC,GAAG,EAAEC,IAAI,CAAE,GAAGJ,OAAO;EAC/B,IAAIK,SAA6B,GAAGC,UAAU,CAAEH,GAAI,CAAC;EACrDE,SAAS,GAAGE,MAAM,CAACC,KAAK,CAAEH,SAAU,CAAC,GAAGH,SAAS,GAAGG,SAAS;EAE7D,OAAO,CAAEA,SAAS,EAAED,IAAI,CAAE;AAC3B;;AAEA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACO,SAASK,kBAAkBA,CACjCX,KAAsB,EACtBM,IAAY,EACH;EACT,OAAQ,GAAGN,KAAO,GAAGM,IAAM,EAAC;AAC7B"}
@@ -2,7 +2,7 @@ import { createElement } from "react";
2
2
  /**
3
3
  * Internal dependencies
4
4
  */
5
- import { CompositeItem } from '../composite';
5
+ import { CompositeItem } from '../composite/v2';
6
6
  import Tooltip from '../tooltip';
7
7
  import { VisuallyHidden } from '../visually-hidden';
8
8
 
@@ -12,6 +12,7 @@ import { VisuallyHidden } from '../visually-hidden';
12
12
  import { ALIGNMENT_LABEL } from './utils';
13
13
  import { Cell as CellView, Point } from './styles/alignment-matrix-control-styles';
14
14
  export default function Cell({
15
+ id,
15
16
  isActive = false,
16
17
  value,
17
18
  ...props
@@ -20,9 +21,11 @@ export default function Cell({
20
21
  return createElement(Tooltip, {
21
22
  text: tooltipText
22
23
  }, createElement(CompositeItem, {
23
- as: CellView,
24
- role: "gridcell",
25
- ...props
24
+ id: id,
25
+ render: createElement(CellView, {
26
+ ...props,
27
+ role: "gridcell"
28
+ })
26
29
  }, createElement(VisuallyHidden, null, value), createElement(Point, {
27
30
  isActive: isActive,
28
31
  role: "presentation"
@@ -1 +1 @@
1
- {"version":3,"names":["CompositeItem","Tooltip","VisuallyHidden","ALIGNMENT_LABEL","Cell","CellView","Point","isActive","value","props","tooltipText","createElement","text","as","role"],"sources":["@wordpress/components/src/alignment-matrix-control/cell.tsx"],"sourcesContent":["/**\n * Internal dependencies\n */\nimport { CompositeItem } from '../composite';\nimport Tooltip from '../tooltip';\nimport { VisuallyHidden } from '../visually-hidden';\n\n/**\n * Internal dependencies\n */\nimport { ALIGNMENT_LABEL } from './utils';\nimport {\n\tCell as CellView,\n\tPoint,\n} from './styles/alignment-matrix-control-styles';\nimport type { AlignmentMatrixControlCellProps } from './types';\nimport type { WordPressComponentProps } from '../context';\n\nexport default function Cell( {\n\tisActive = false,\n\tvalue,\n\t...props\n}: WordPressComponentProps< AlignmentMatrixControlCellProps, 'span', false > ) {\n\tconst tooltipText = ALIGNMENT_LABEL[ value ];\n\n\treturn (\n\t\t<Tooltip text={ tooltipText }>\n\t\t\t<CompositeItem as={ CellView } role=\"gridcell\" { ...props }>\n\t\t\t\t{ /* VoiceOver needs a text content to be rendered within grid cell,\n\t\t\totherwise it'll announce the content as \"blank\". So we use a visually\n\t\t\thidden element instead of aria-label. */ }\n\t\t\t\t<VisuallyHidden>{ value }</VisuallyHidden>\n\t\t\t\t<Point isActive={ isActive } role=\"presentation\" />\n\t\t\t</CompositeItem>\n\t\t</Tooltip>\n\t);\n}\n"],"mappings":";AAAA;AACA;AACA;AACA,SAASA,aAAa,QAAQ,cAAc;AAC5C,OAAOC,OAAO,MAAM,YAAY;AAChC,SAASC,cAAc,QAAQ,oBAAoB;;AAEnD;AACA;AACA;AACA,SAASC,eAAe,QAAQ,SAAS;AACzC,SACCC,IAAI,IAAIC,QAAQ,EAChBC,KAAK,QACC,0CAA0C;AAIjD,eAAe,SAASF,IAAIA,CAAE;EAC7BG,QAAQ,GAAG,KAAK;EAChBC,KAAK;EACL,GAAGC;AACuE,CAAC,EAAG;EAC9E,MAAMC,WAAW,GAAGP,eAAe,CAAEK,KAAK,CAAE;EAE5C,OACCG,aAAA,CAACV,OAAO;IAACW,IAAI,EAAGF;EAAa,GAC5BC,aAAA,CAACX,aAAa;IAACa,EAAE,EAAGR,QAAU;IAACS,IAAI,EAAC,UAAU;IAAA,GAAML;EAAK,GAIxDE,aAAA,CAACT,cAAc,QAAGM,KAAuB,CAAC,EAC1CG,aAAA,CAACL,KAAK;IAACC,QAAQ,EAAGA,QAAU;IAACO,IAAI,EAAC;EAAc,CAAE,CACpC,CACP,CAAC;AAEZ"}
1
+ {"version":3,"names":["CompositeItem","Tooltip","VisuallyHidden","ALIGNMENT_LABEL","Cell","CellView","Point","id","isActive","value","props","tooltipText","createElement","text","render","role"],"sources":["@wordpress/components/src/alignment-matrix-control/cell.tsx"],"sourcesContent":["/**\n * Internal dependencies\n */\nimport { CompositeItem } from '../composite/v2';\nimport Tooltip from '../tooltip';\nimport { VisuallyHidden } from '../visually-hidden';\n\n/**\n * Internal dependencies\n */\nimport { ALIGNMENT_LABEL } from './utils';\nimport {\n\tCell as CellView,\n\tPoint,\n} from './styles/alignment-matrix-control-styles';\nimport type { AlignmentMatrixControlCellProps } from './types';\nimport type { WordPressComponentProps } from '../context';\n\nexport default function Cell( {\n\tid,\n\tisActive = false,\n\tvalue,\n\t...props\n}: WordPressComponentProps< AlignmentMatrixControlCellProps, 'span', false > ) {\n\tconst tooltipText = ALIGNMENT_LABEL[ value ];\n\n\treturn (\n\t\t<Tooltip text={ tooltipText }>\n\t\t\t<CompositeItem\n\t\t\t\tid={ id }\n\t\t\t\trender={ <CellView { ...props } role=\"gridcell\" /> }\n\t\t\t>\n\t\t\t\t{ /* VoiceOver needs a text content to be rendered within grid cell,\n\t\t\totherwise it'll announce the content as \"blank\". So we use a visually\n\t\t\thidden element instead of aria-label. */ }\n\t\t\t\t<VisuallyHidden>{ value }</VisuallyHidden>\n\t\t\t\t<Point isActive={ isActive } role=\"presentation\" />\n\t\t\t</CompositeItem>\n\t\t</Tooltip>\n\t);\n}\n"],"mappings":";AAAA;AACA;AACA;AACA,SAASA,aAAa,QAAQ,iBAAiB;AAC/C,OAAOC,OAAO,MAAM,YAAY;AAChC,SAASC,cAAc,QAAQ,oBAAoB;;AAEnD;AACA;AACA;AACA,SAASC,eAAe,QAAQ,SAAS;AACzC,SACCC,IAAI,IAAIC,QAAQ,EAChBC,KAAK,QACC,0CAA0C;AAIjD,eAAe,SAASF,IAAIA,CAAE;EAC7BG,EAAE;EACFC,QAAQ,GAAG,KAAK;EAChBC,KAAK;EACL,GAAGC;AACuE,CAAC,EAAG;EAC9E,MAAMC,WAAW,GAAGR,eAAe,CAAEM,KAAK,CAAE;EAE5C,OACCG,aAAA,CAACX,OAAO;IAACY,IAAI,EAAGF;EAAa,GAC5BC,aAAA,CAACZ,aAAa;IACbO,EAAE,EAAGA,EAAI;IACTO,MAAM,EAAGF,aAAA,CAACP,QAAQ;MAAA,GAAMK,KAAK;MAAGK,IAAI,EAAC;IAAU,CAAE;EAAG,GAKpDH,aAAA,CAACV,cAAc,QAAGO,KAAuB,CAAC,EAC1CG,aAAA,CAACN,KAAK;IAACE,QAAQ,EAAGA,QAAU;IAACO,IAAI,EAAC;EAAc,CAAE,CACpC,CACP,CAAC;AAEZ"}