@wordpress/components 37.0.0 → 38.0.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 (483) hide show
  1. package/AGENTS.md +2 -2
  2. package/CHANGELOG.md +46 -0
  3. package/build/autocomplete/index.cjs +3 -1
  4. package/build/autocomplete/index.cjs.map +2 -2
  5. package/build/color-picker/component.cjs +14 -5
  6. package/build/color-picker/component.cjs.map +2 -2
  7. package/build/color-picker/picker.cjs +95 -23
  8. package/build/color-picker/picker.cjs.map +2 -2
  9. package/build/confirm-dialog/component.cjs +86 -4
  10. package/build/confirm-dialog/component.cjs.map +3 -3
  11. package/build/content-editable-control/index.cjs +19 -9
  12. package/build/content-editable-control/index.cjs.map +3 -3
  13. package/build/custom-select-control/index.cjs +1 -2
  14. package/build/custom-select-control/index.cjs.map +2 -2
  15. package/build/disabled/index.cjs +87 -4
  16. package/build/disabled/index.cjs.map +4 -4
  17. package/build/form-token-field/index.cjs +87 -2
  18. package/build/form-token-field/index.cjs.map +3 -3
  19. package/build/gradient-picker/index.cjs +26 -20
  20. package/build/gradient-picker/index.cjs.map +2 -2
  21. package/build/input-control/index.cjs +0 -1
  22. package/build/input-control/index.cjs.map +2 -2
  23. package/build/input-control/styles/input-control-styles.cjs +23 -31
  24. package/build/input-control/styles/input-control-styles.cjs.map +2 -2
  25. package/build/private-apis.cjs +0 -2
  26. package/build/private-apis.cjs.map +3 -3
  27. package/build/range-control/index.cjs +0 -1
  28. package/build/range-control/index.cjs.map +2 -2
  29. package/build/sandbox/index.cjs +23 -4
  30. package/build/sandbox/index.cjs.map +3 -3
  31. package/build/search-control/index.cjs +93 -10
  32. package/build/search-control/index.cjs.map +4 -4
  33. package/build/select-control/index.cjs +0 -1
  34. package/build/select-control/index.cjs.map +2 -2
  35. package/build/select-control/styles/select-control-styles.cjs +9 -16
  36. package/build/select-control/styles/select-control-styles.cjs.map +2 -2
  37. package/build/slot-fill/fill.cjs.map +2 -2
  38. package/build/toggle-group-control/toggle-group-control/component.cjs +91 -8
  39. package/build/toggle-group-control/toggle-group-control/component.cjs.map +4 -4
  40. package/build/toggle-group-control/toggle-group-control-option-base/component.cjs +98 -17
  41. package/build/toggle-group-control/toggle-group-control-option-base/component.cjs.map +4 -4
  42. package/build/tools-panel/tools-panel/component.cjs +6 -0
  43. package/build/tools-panel/tools-panel/component.cjs.map +2 -2
  44. package/build/tools-panel/tools-panel/hook.cjs +87 -11
  45. package/build/tools-panel/tools-panel/hook.cjs.map +4 -4
  46. package/build/tools-panel/tools-panel-header/component.cjs +87 -2
  47. package/build/tools-panel/tools-panel-header/component.cjs.map +3 -3
  48. package/build/tools-panel/tools-panel-header/hook.cjs +90 -20
  49. package/build/tools-panel/tools-panel-header/hook.cjs.map +4 -4
  50. package/build/tools-panel/tools-panel-item/hook.cjs +88 -9
  51. package/build/tools-panel/tools-panel-item/hook.cjs.map +4 -4
  52. package/build/validated-form-controls/control-with-error.cjs +3 -0
  53. package/build/validated-form-controls/control-with-error.cjs.map +2 -2
  54. package/build-module/autocomplete/index.mjs +3 -1
  55. package/build-module/autocomplete/index.mjs.map +2 -2
  56. package/build-module/color-picker/component.mjs +14 -5
  57. package/build-module/color-picker/component.mjs.map +2 -2
  58. package/build-module/color-picker/picker.mjs +96 -24
  59. package/build-module/color-picker/picker.mjs.map +2 -2
  60. package/build-module/confirm-dialog/component.mjs +86 -4
  61. package/build-module/confirm-dialog/component.mjs.map +3 -3
  62. package/build-module/content-editable-control/index.mjs +21 -11
  63. package/build-module/content-editable-control/index.mjs.map +2 -2
  64. package/build-module/custom-select-control/index.mjs +1 -2
  65. package/build-module/custom-select-control/index.mjs.map +2 -2
  66. package/build-module/disabled/index.mjs +87 -4
  67. package/build-module/disabled/index.mjs.map +3 -3
  68. package/build-module/form-token-field/index.mjs +88 -3
  69. package/build-module/form-token-field/index.mjs.map +3 -3
  70. package/build-module/gradient-picker/index.mjs +26 -20
  71. package/build-module/gradient-picker/index.mjs.map +2 -2
  72. package/build-module/input-control/index.mjs +0 -1
  73. package/build-module/input-control/index.mjs.map +2 -2
  74. package/build-module/input-control/styles/input-control-styles.mjs +23 -31
  75. package/build-module/input-control/styles/input-control-styles.mjs.map +2 -2
  76. package/build-module/private-apis.mjs +0 -2
  77. package/build-module/private-apis.mjs.map +2 -2
  78. package/build-module/range-control/index.mjs +0 -1
  79. package/build-module/range-control/index.mjs.map +2 -2
  80. package/build-module/sandbox/index.mjs +13 -4
  81. package/build-module/sandbox/index.mjs.map +2 -2
  82. package/build-module/search-control/index.mjs +93 -10
  83. package/build-module/search-control/index.mjs.map +3 -3
  84. package/build-module/select-control/index.mjs +0 -1
  85. package/build-module/select-control/index.mjs.map +2 -2
  86. package/build-module/select-control/styles/select-control-styles.mjs +9 -16
  87. package/build-module/select-control/styles/select-control-styles.mjs.map +2 -2
  88. package/build-module/slot-fill/fill.mjs.map +2 -2
  89. package/build-module/toggle-group-control/toggle-group-control/component.mjs +92 -9
  90. package/build-module/toggle-group-control/toggle-group-control/component.mjs.map +3 -3
  91. package/build-module/toggle-group-control/toggle-group-control-option-base/component.mjs +99 -18
  92. package/build-module/toggle-group-control/toggle-group-control-option-base/component.mjs.map +3 -3
  93. package/build-module/tools-panel/tools-panel/component.mjs +6 -0
  94. package/build-module/tools-panel/tools-panel/component.mjs.map +2 -2
  95. package/build-module/tools-panel/tools-panel/hook.mjs +87 -11
  96. package/build-module/tools-panel/tools-panel/hook.mjs.map +3 -3
  97. package/build-module/tools-panel/tools-panel-header/component.mjs +87 -2
  98. package/build-module/tools-panel/tools-panel-header/component.mjs.map +3 -3
  99. package/build-module/tools-panel/tools-panel-header/hook.mjs +90 -20
  100. package/build-module/tools-panel/tools-panel-header/hook.mjs.map +3 -3
  101. package/build-module/tools-panel/tools-panel-item/hook.mjs +89 -10
  102. package/build-module/tools-panel/tools-panel-item/hook.mjs.map +3 -3
  103. package/build-module/validated-form-controls/control-with-error.mjs +3 -0
  104. package/build-module/validated-form-controls/control-with-error.mjs.map +2 -2
  105. package/build-style/style-rtl.css +20 -24
  106. package/build-style/style.css +20 -24
  107. package/build-types/autocomplete/index.d.ts +7 -3
  108. package/build-types/autocomplete/index.d.ts.map +1 -1
  109. package/build-types/border-box-control/border-box-control/component.d.ts +1 -3
  110. package/build-types/border-box-control/border-box-control/component.d.ts.map +1 -1
  111. package/build-types/border-box-control/stories/index.story.d.ts +1 -3
  112. package/build-types/border-box-control/stories/index.story.d.ts.map +1 -1
  113. package/build-types/border-box-control/types.d.ts +1 -15
  114. package/build-types/border-box-control/types.d.ts.map +1 -1
  115. package/build-types/box-control/input-control.d.ts +3 -0
  116. package/build-types/box-control/input-control.d.ts.map +1 -0
  117. package/build-types/box-control/styles/box-control-styles.d.ts +4 -8
  118. package/build-types/box-control/styles/box-control-styles.d.ts.map +1 -1
  119. package/build-types/box-control/types.d.ts +1 -8
  120. package/build-types/box-control/types.d.ts.map +1 -1
  121. package/build-types/card/context.d.ts +3 -0
  122. package/build-types/card/context.d.ts.map +1 -0
  123. package/build-types/color-picker/component.d.ts.map +1 -1
  124. package/build-types/color-picker/picker.d.ts +17 -1
  125. package/build-types/color-picker/picker.d.ts.map +1 -1
  126. package/build-types/color-picker/styles.d.ts +4 -8
  127. package/build-types/color-picker/styles.d.ts.map +1 -1
  128. package/build-types/color-picker/types.d.ts +2 -0
  129. package/build-types/color-picker/types.d.ts.map +1 -1
  130. package/build-types/confirm-dialog/component.d.ts.map +1 -1
  131. package/build-types/content-editable-control/index.d.ts.map +1 -1
  132. package/build-types/context/wordpress-component.d.ts +2 -1
  133. package/build-types/context/wordpress-component.d.ts.map +1 -1
  134. package/build-types/custom-select-control/index.d.ts.map +1 -1
  135. package/build-types/custom-select-control/types.d.ts +1 -8
  136. package/build-types/custom-select-control/types.d.ts.map +1 -1
  137. package/build-types/date-time/date/index.d.ts +23 -0
  138. package/build-types/date-time/date/index.d.ts.map +1 -0
  139. package/build-types/date-time/date/styles.d.ts +45 -0
  140. package/build-types/date-time/date/styles.d.ts.map +1 -0
  141. package/build-types/date-time/date/test/index.d.ts +2 -0
  142. package/build-types/date-time/date/test/index.d.ts.map +1 -0
  143. package/build-types/date-time/date/test/use-lilius.d.ts +2 -0
  144. package/build-types/date-time/date/test/use-lilius.d.ts.map +1 -0
  145. package/build-types/date-time/date/use-lilius/index.d.ts +169 -0
  146. package/build-types/date-time/date/use-lilius/index.d.ts.map +1 -0
  147. package/build-types/date-time/time/index.d.ts +27 -0
  148. package/build-types/date-time/time/index.d.ts.map +1 -0
  149. package/build-types/date-time/time/styles.d.ts +93 -0
  150. package/build-types/date-time/time/styles.d.ts.map +1 -0
  151. package/build-types/date-time/time/test/index.d.ts +2 -0
  152. package/build-types/date-time/time/test/index.d.ts.map +1 -0
  153. package/build-types/date-time/time/time-input/index.d.ts +4 -0
  154. package/build-types/date-time/time/time-input/index.d.ts.map +1 -0
  155. package/build-types/date-time/time/time-input/test/index.d.ts +2 -0
  156. package/build-types/date-time/time/time-input/test/index.d.ts.map +1 -0
  157. package/build-types/date-time/time/timezone.d.ts +7 -0
  158. package/build-types/date-time/time/timezone.d.ts.map +1 -0
  159. package/build-types/date-time/time-picker/styles.d.ts +8 -16
  160. package/build-types/date-time/time-picker/styles.d.ts.map +1 -1
  161. package/build-types/disabled/index.d.ts.map +1 -1
  162. package/build-types/divider/styles.d.ts +10 -0
  163. package/build-types/divider/styles.d.ts.map +1 -0
  164. package/build-types/flex/styles.d.ts +17 -0
  165. package/build-types/flex/styles.d.ts.map +1 -0
  166. package/build-types/focal-point-picker/styles/focal-point-picker-style.d.ts +2 -4
  167. package/build-types/focal-point-picker/styles/focal-point-picker-style.d.ts.map +1 -1
  168. package/build-types/font-size-picker/index.d.ts +12 -2
  169. package/build-types/font-size-picker/index.d.ts.map +1 -1
  170. package/build-types/font-size-picker/stories/e2e/index.story.d.ts +12 -1
  171. package/build-types/font-size-picker/stories/e2e/index.story.d.ts.map +1 -1
  172. package/build-types/font-size-picker/types.d.ts +2 -15
  173. package/build-types/font-size-picker/types.d.ts.map +1 -1
  174. package/build-types/form-token-field/index.d.ts.map +1 -1
  175. package/build-types/gradient-picker/index.d.ts.map +1 -1
  176. package/build-types/gradient-picker/stories/index.story.d.ts +1 -0
  177. package/build-types/gradient-picker/stories/index.story.d.ts.map +1 -1
  178. package/build-types/gradient-picker/test/index.d.ts +2 -0
  179. package/build-types/gradient-picker/test/index.d.ts.map +1 -0
  180. package/build-types/gradient-picker/types.d.ts +19 -4
  181. package/build-types/gradient-picker/types.d.ts.map +1 -1
  182. package/build-types/input-control/index.d.ts.map +1 -1
  183. package/build-types/input-control/styles/input-control-styles.d.ts +0 -6
  184. package/build-types/input-control/styles/input-control-styles.d.ts.map +1 -1
  185. package/build-types/input-control/types.d.ts +1 -8
  186. package/build-types/input-control/types.d.ts.map +1 -1
  187. package/build-types/mobile/image/constants.d.ts +5 -0
  188. package/build-types/mobile/image/constants.d.ts.map +1 -0
  189. package/build-types/navigation/back-button/index.d.ts +7 -0
  190. package/build-types/navigation/back-button/index.d.ts.map +1 -0
  191. package/build-types/navigation/constants.d.ts +3 -0
  192. package/build-types/navigation/constants.d.ts.map +1 -0
  193. package/build-types/navigation/context.d.ts +4 -0
  194. package/build-types/navigation/context.d.ts.map +1 -0
  195. package/build-types/navigation/group/context.d.ts +7 -0
  196. package/build-types/navigation/group/context.d.ts.map +1 -0
  197. package/build-types/navigation/group/index.d.ts +7 -0
  198. package/build-types/navigation/group/index.d.ts.map +1 -0
  199. package/build-types/navigation/index.d.ts +46 -0
  200. package/build-types/navigation/index.d.ts.map +1 -0
  201. package/build-types/navigation/item/base-content.d.ts +3 -0
  202. package/build-types/navigation/item/base-content.d.ts.map +1 -0
  203. package/build-types/navigation/item/base.d.ts +3 -0
  204. package/build-types/navigation/item/base.d.ts.map +1 -0
  205. package/build-types/navigation/item/index.d.ts +7 -0
  206. package/build-types/navigation/item/index.d.ts.map +1 -0
  207. package/build-types/navigation/item/use-navigation-tree-item.d.ts +3 -0
  208. package/build-types/navigation/item/use-navigation-tree-item.d.ts.map +1 -0
  209. package/build-types/navigation/menu/context.d.ts +7 -0
  210. package/build-types/navigation/menu/context.d.ts.map +1 -0
  211. package/build-types/navigation/menu/index.d.ts +7 -0
  212. package/build-types/navigation/menu/index.d.ts.map +1 -0
  213. package/build-types/navigation/menu/menu-title-search.d.ts +3 -0
  214. package/build-types/navigation/menu/menu-title-search.d.ts.map +1 -0
  215. package/build-types/navigation/menu/menu-title.d.ts +3 -0
  216. package/build-types/navigation/menu/menu-title.d.ts.map +1 -0
  217. package/build-types/navigation/menu/search-no-results-found.d.ts +3 -0
  218. package/build-types/navigation/menu/search-no-results-found.d.ts.map +1 -0
  219. package/build-types/navigation/menu/use-navigation-tree-menu.d.ts +3 -0
  220. package/build-types/navigation/menu/use-navigation-tree-menu.d.ts.map +1 -0
  221. package/build-types/navigation/stories/index.story.d.ts +23 -0
  222. package/build-types/navigation/stories/index.story.d.ts.map +1 -0
  223. package/build-types/navigation/stories/utils/controlled-state.d.ts +7 -0
  224. package/build-types/navigation/stories/utils/controlled-state.d.ts.map +1 -0
  225. package/build-types/navigation/stories/utils/default.d.ts +10 -0
  226. package/build-types/navigation/stories/utils/default.d.ts.map +1 -0
  227. package/build-types/navigation/stories/utils/group.d.ts +10 -0
  228. package/build-types/navigation/stories/utils/group.d.ts.map +1 -0
  229. package/build-types/navigation/stories/utils/hide-if-empty.d.ts +10 -0
  230. package/build-types/navigation/stories/utils/hide-if-empty.d.ts.map +1 -0
  231. package/build-types/navigation/stories/utils/more-examples.d.ts +10 -0
  232. package/build-types/navigation/stories/utils/more-examples.d.ts.map +1 -0
  233. package/build-types/navigation/stories/utils/search.d.ts +10 -0
  234. package/build-types/navigation/stories/utils/search.d.ts.map +1 -0
  235. package/build-types/navigation/styles/navigation-styles.d.ts +55 -0
  236. package/build-types/navigation/styles/navigation-styles.d.ts.map +1 -0
  237. package/build-types/navigation/test/index.d.ts +2 -0
  238. package/build-types/navigation/test/index.d.ts.map +1 -0
  239. package/build-types/navigation/types.d.ts +266 -0
  240. package/build-types/navigation/types.d.ts.map +1 -0
  241. package/build-types/navigation/use-create-navigation-tree.d.ts +15 -0
  242. package/build-types/navigation/use-create-navigation-tree.d.ts.map +1 -0
  243. package/build-types/navigation/use-navigation-tree-nodes.d.ts +10 -0
  244. package/build-types/navigation/use-navigation-tree-nodes.d.ts.map +1 -0
  245. package/build-types/navigation/utils.d.ts +3 -0
  246. package/build-types/navigation/utils.d.ts.map +1 -0
  247. package/build-types/number-control/index.d.ts +2 -4
  248. package/build-types/number-control/index.d.ts.map +1 -1
  249. package/build-types/number-control/stories/index.story.d.ts +2 -4
  250. package/build-types/number-control/stories/index.story.d.ts.map +1 -1
  251. package/build-types/number-control/types.d.ts +1 -15
  252. package/build-types/number-control/types.d.ts.map +1 -1
  253. package/build-types/private-apis.d.ts.map +1 -1
  254. package/build-types/range-control/index.d.ts +2 -4
  255. package/build-types/range-control/index.d.ts.map +1 -1
  256. package/build-types/range-control/styles/range-control-styles.d.ts +2 -4
  257. package/build-types/range-control/styles/range-control-styles.d.ts.map +1 -1
  258. package/build-types/range-control/types.d.ts +2 -16
  259. package/build-types/range-control/types.d.ts.map +1 -1
  260. package/build-types/sandbox/index.d.ts.map +1 -1
  261. package/build-types/sandbox/types.d.ts +11 -0
  262. package/build-types/sandbox/types.d.ts.map +1 -1
  263. package/build-types/search-control/index.d.ts.map +1 -1
  264. package/build-types/search-control/types.d.ts +1 -1
  265. package/build-types/search-control/types.d.ts.map +1 -1
  266. package/build-types/select-control/index.d.ts.map +1 -1
  267. package/build-types/select-control/styles/select-control-styles.d.ts.map +1 -1
  268. package/build-types/select-control/types.d.ts +0 -7
  269. package/build-types/select-control/types.d.ts.map +1 -1
  270. package/build-types/slot-fill/fill.d.ts.map +1 -1
  271. package/build-types/slot-fill/stories/index.story.d.ts +1 -6
  272. package/build-types/slot-fill/stories/index.story.d.ts.map +1 -1
  273. package/build-types/surface/styles.d.ts +11 -0
  274. package/build-types/surface/styles.d.ts.map +1 -0
  275. package/build-types/theme/styles.d.ts +10 -0
  276. package/build-types/theme/styles.d.ts.map +1 -0
  277. package/build-types/toggle-group-control/toggle-group-control/component.d.ts +0 -1
  278. package/build-types/toggle-group-control/toggle-group-control/component.d.ts.map +1 -1
  279. package/build-types/toggle-group-control/toggle-group-control-option-base/component.d.ts.map +1 -1
  280. package/build-types/toggle-group-control/types.d.ts +0 -7
  281. package/build-types/toggle-group-control/types.d.ts.map +1 -1
  282. package/build-types/tools-panel/tools-panel/component.d.ts.map +1 -1
  283. package/build-types/tools-panel/tools-panel/hook.d.ts.map +1 -1
  284. package/build-types/tools-panel/tools-panel-header/component.d.ts.map +1 -1
  285. package/build-types/tools-panel/tools-panel-header/hook.d.ts.map +1 -1
  286. package/build-types/tools-panel/tools-panel-item/hook.d.ts.map +1 -1
  287. package/build-types/tree-select/types.d.ts +1 -8
  288. package/build-types/tree-select/types.d.ts.map +1 -1
  289. package/build-types/truncate/styles.d.ts +2 -0
  290. package/build-types/truncate/styles.d.ts.map +1 -0
  291. package/build-types/unit-control/index.d.ts +2 -4
  292. package/build-types/unit-control/index.d.ts.map +1 -1
  293. package/build-types/unit-control/styles/unit-control-styles.d.ts +2 -4
  294. package/build-types/unit-control/styles/unit-control-styles.d.ts.map +1 -1
  295. package/build-types/unit-control/types.d.ts +1 -15
  296. package/build-types/unit-control/types.d.ts.map +1 -1
  297. package/build-types/utils/deprecated-36px-size.d.ts +7 -0
  298. package/build-types/utils/deprecated-36px-size.d.ts.map +1 -0
  299. package/build-types/validated-form-controls/components/number-control.d.ts +2 -4
  300. package/build-types/validated-form-controls/components/number-control.d.ts.map +1 -1
  301. package/build-types/validated-form-controls/components/range-control.d.ts +2 -4
  302. package/build-types/validated-form-controls/components/range-control.d.ts.map +1 -1
  303. package/build-types/validated-form-controls/components/stories/overview.story.d.ts +5 -0
  304. package/build-types/validated-form-controls/components/stories/overview.story.d.ts.map +1 -1
  305. package/build-types/validated-form-controls/components/toggle-group-control.d.ts +1 -2
  306. package/build-types/validated-form-controls/components/toggle-group-control.d.ts.map +1 -1
  307. package/build-types/validated-form-controls/control-with-error.d.ts.map +1 -1
  308. package/build-types/visually-hidden/test/index.d.ts +2 -0
  309. package/build-types/visually-hidden/test/index.d.ts.map +1 -0
  310. package/package.json +27 -27
  311. package/src/autocomplete/index.tsx +16 -3
  312. package/src/base-control/README.md +2 -2
  313. package/src/border-box-control/types.ts +4 -15
  314. package/src/box-control/types.ts +4 -8
  315. package/src/card/test/__snapshots__/index.tsx.snap +1 -1
  316. package/src/checkbox-control/test/__snapshots__/index.tsx.snap +1 -1
  317. package/src/color-indicator/test/__snapshots__/index.tsx.snap +1 -1
  318. package/src/color-picker/component.tsx +23 -19
  319. package/src/color-picker/picker.tsx +144 -21
  320. package/src/color-picker/test/index.tsx +502 -0
  321. package/src/color-picker/types.ts +2 -0
  322. package/src/combobox-control/style.scss +2 -2
  323. package/src/confirm-dialog/component.tsx +2 -4
  324. package/src/confirm-dialog/style.module.scss +7 -0
  325. package/src/confirm-dialog/test/index.tsx +5 -0
  326. package/src/content-editable-control/index.tsx +24 -5
  327. package/src/content-editable-control/style.module.scss +1 -1
  328. package/src/content-editable-control/test/index.tsx +20 -8
  329. package/src/context/test/__snapshots__/context-system-provider.js.snap +1 -1
  330. package/src/context/wordpress-component.ts +7 -2
  331. package/src/custom-gradient-picker/test/index.tsx +111 -1
  332. package/src/custom-select-control/index.tsx +1 -2
  333. package/src/custom-select-control/test/__snapshots__/index.tsx.snap +6 -0
  334. package/src/custom-select-control/test/index.tsx +23 -0
  335. package/src/custom-select-control/types.ts +1 -8
  336. package/src/disabled/index.tsx +7 -5
  337. package/src/disabled/style.module.scss +15 -0
  338. package/src/disabled/test/index.tsx +6 -4
  339. package/src/elevation/test/__snapshots__/index.tsx.snap +1 -1
  340. package/src/external-link/style.scss +6 -12
  341. package/src/flex/test/__snapshots__/index.tsx.snap +1 -1
  342. package/src/font-size-picker/types.ts +6 -15
  343. package/src/form-toggle/test/__snapshots__/index.tsx.snap +1 -1
  344. package/src/form-token-field/index.tsx +5 -4
  345. package/src/form-token-field/style.module.scss +6 -0
  346. package/src/form-token-field/style.scss +2 -2
  347. package/src/gradient-picker/README.md +21 -3
  348. package/src/gradient-picker/index.tsx +43 -28
  349. package/src/gradient-picker/stories/index.story.tsx +41 -5
  350. package/src/gradient-picker/test/index.tsx +148 -0
  351. package/src/gradient-picker/types.ts +24 -4
  352. package/src/h-stack/test/__snapshots__/index.tsx.snap +1 -1
  353. package/src/heading/test/__snapshots__/index.tsx.snap +1 -1
  354. package/src/higher-order/with-filters/test/__snapshots__/index.tsx.snap +1 -1
  355. package/src/input-control/index.tsx +0 -1
  356. package/src/input-control/styles/input-control-styles.tsx +0 -8
  357. package/src/input-control/test/__snapshots__/index.js.snap +11 -0
  358. package/src/input-control/test/index.js +28 -0
  359. package/src/input-control/types.ts +1 -8
  360. package/src/item-group/test/__snapshots__/index.js.snap +1 -1
  361. package/src/menu/README.md +2 -2
  362. package/src/menu-item/test/__snapshots__/index.js.snap +1 -1
  363. package/src/modal/test/index.tsx +42 -0
  364. package/src/notice/test/__snapshots__/index.tsx.snap +1 -1
  365. package/src/number-control/types.ts +1 -22
  366. package/src/panel/test/__snapshots__/body.tsx.snap +1 -1
  367. package/src/panel/test/__snapshots__/header.tsx.snap +1 -1
  368. package/src/panel/test/__snapshots__/index.tsx.snap +1 -1
  369. package/src/panel/test/__snapshots__/row.tsx.snap +1 -1
  370. package/src/private-apis.ts +0 -2
  371. package/src/range-control/index.tsx +0 -1
  372. package/src/range-control/types.ts +2 -15
  373. package/src/sandbox/index.tsx +22 -2
  374. package/src/sandbox/test/index.tsx +21 -0
  375. package/src/sandbox/types.ts +11 -0
  376. package/src/scrollable/test/__snapshots__/index.tsx.snap +1 -1
  377. package/src/search-control/index.tsx +23 -20
  378. package/src/search-control/style.module.scss +16 -0
  379. package/src/search-control/test/index.tsx +8 -0
  380. package/src/search-control/types.ts +1 -1
  381. package/src/select-control/index.tsx +0 -1
  382. package/src/select-control/styles/select-control-styles.ts +0 -7
  383. package/src/select-control/test/__snapshots__/select-control.tsx.snap +11 -0
  384. package/src/select-control/test/select-control.tsx +37 -0
  385. package/src/select-control/types.ts +0 -7
  386. package/src/shortcut/test/__snapshots__/index.tsx.snap +1 -1
  387. package/src/slot-fill/fill.tsx +3 -9
  388. package/src/slot-fill/stories/index.story.tsx +52 -10
  389. package/src/slot-fill/test/__snapshots__/slot.js.snap +1 -1
  390. package/src/slot-fill/test/slot.js +53 -11
  391. package/src/spacer/test/__snapshots__/index.tsx.snap +1 -1
  392. package/src/text/test/__snapshots__/index.tsx.snap +1 -1
  393. package/src/text-control/style.scss +1 -1
  394. package/src/toggle-group-control/test/__snapshots__/index.tsx.snap +29 -707
  395. package/src/toggle-group-control/test/index.tsx +33 -3
  396. package/src/toggle-group-control/toggle-group-control/component.tsx +11 -16
  397. package/src/toggle-group-control/toggle-group-control/style.module.scss +63 -0
  398. package/src/toggle-group-control/toggle-group-control-option-base/component.tsx +22 -24
  399. package/src/toggle-group-control/toggle-group-control-option-base/style.module.scss +88 -0
  400. package/src/toggle-group-control/types.ts +0 -7
  401. package/src/tools-panel/style.module.scss +117 -0
  402. package/src/tools-panel/test/index.tsx +105 -39
  403. package/src/tools-panel/tools-panel/component.tsx +12 -1
  404. package/src/tools-panel/tools-panel/hook.ts +13 -15
  405. package/src/tools-panel/tools-panel-header/component.tsx +6 -2
  406. package/src/tools-panel/tools-panel-header/hook.ts +7 -25
  407. package/src/tools-panel/tools-panel-item/hook.ts +16 -34
  408. package/src/tooltip/test/index.tsx +1 -1
  409. package/src/tree-grid/test/__snapshots__/cell.tsx.snap +1 -1
  410. package/src/tree-grid/test/__snapshots__/index.tsx.snap +1 -1
  411. package/src/tree-grid/test/__snapshots__/roving-tab-index-item.tsx.snap +1 -1
  412. package/src/tree-grid/test/__snapshots__/roving-tab-index.tsx.snap +1 -1
  413. package/src/tree-grid/test/__snapshots__/row.tsx.snap +1 -1
  414. package/src/tree-select/README.md +1 -1
  415. package/src/tree-select/types.ts +1 -8
  416. package/src/unit-control/types.ts +1 -18
  417. package/src/utils/theme-variables.scss +1 -0
  418. package/src/v-stack/test/__snapshots__/index.tsx.snap +1 -1
  419. package/src/validated-form-controls/components/stories/overview.story.tsx +51 -0
  420. package/src/validated-form-controls/control-with-error.tsx +9 -0
  421. package/src/validated-form-controls/style.scss +3 -3
  422. package/src/validated-form-controls/test/control-with-error.tsx +42 -0
  423. package/src/view/test/__snapshots__/index.js.snap +1 -1
  424. package/build/confirm-dialog/styles.cjs +0 -42
  425. package/build/confirm-dialog/styles.cjs.map +0 -7
  426. package/build/disabled/styles/disabled-styles.cjs +0 -42
  427. package/build/disabled/styles/disabled-styles.cjs.map +0 -7
  428. package/build/form-token-field/styles.cjs +0 -49
  429. package/build/form-token-field/styles.cjs.map +0 -7
  430. package/build/search-control/styles.cjs +0 -74
  431. package/build/search-control/styles.cjs.map +0 -7
  432. package/build/theme/color-algorithms.cjs +0 -131
  433. package/build/theme/color-algorithms.cjs.map +0 -7
  434. package/build/theme/index.cjs +0 -160
  435. package/build/theme/index.cjs.map +0 -7
  436. package/build/theme/types.cjs +0 -19
  437. package/build/theme/types.cjs.map +0 -7
  438. package/build/toggle-group-control/toggle-group-control/styles.cjs +0 -53
  439. package/build/toggle-group-control/toggle-group-control/styles.cjs.map +0 -7
  440. package/build/toggle-group-control/toggle-group-control-option-base/styles.cjs +0 -94
  441. package/build/toggle-group-control/toggle-group-control-option-base/styles.cjs.map +0 -7
  442. package/build/tools-panel/styles.cjs +0 -129
  443. package/build/tools-panel/styles.cjs.map +0 -7
  444. package/build/utils/use-deprecated-props.cjs +0 -41
  445. package/build/utils/use-deprecated-props.cjs.map +0 -7
  446. package/build-module/confirm-dialog/styles.mjs +0 -17
  447. package/build-module/confirm-dialog/styles.mjs.map +0 -7
  448. package/build-module/disabled/styles/disabled-styles.mjs +0 -17
  449. package/build-module/disabled/styles/disabled-styles.mjs.map +0 -7
  450. package/build-module/form-token-field/styles.mjs +0 -14
  451. package/build-module/form-token-field/styles.mjs.map +0 -7
  452. package/build-module/search-control/styles.mjs +0 -38
  453. package/build-module/search-control/styles.mjs.map +0 -7
  454. package/build-module/theme/color-algorithms.mjs +0 -94
  455. package/build-module/theme/color-algorithms.mjs.map +0 -7
  456. package/build-module/theme/index.mjs +0 -129
  457. package/build-module/theme/index.mjs.map +0 -7
  458. package/build-module/theme/types.mjs +0 -1
  459. package/build-module/theme/types.mjs.map +0 -7
  460. package/build-module/toggle-group-control/toggle-group-control/styles.mjs +0 -27
  461. package/build-module/toggle-group-control/toggle-group-control/styles.mjs.map +0 -7
  462. package/build-module/toggle-group-control/toggle-group-control-option-base/styles.mjs +0 -56
  463. package/build-module/toggle-group-control/toggle-group-control-option-base/styles.mjs.map +0 -7
  464. package/build-module/tools-panel/styles.mjs +0 -84
  465. package/build-module/tools-panel/styles.mjs.map +0 -7
  466. package/build-module/utils/use-deprecated-props.mjs +0 -16
  467. package/build-module/utils/use-deprecated-props.mjs.map +0 -7
  468. package/src/confirm-dialog/styles.ts +0 -18
  469. package/src/disabled/styles/disabled-styles.tsx +0 -23
  470. package/src/form-token-field/styles.ts +0 -15
  471. package/src/search-control/styles.ts +0 -27
  472. package/src/theme/README.md +0 -47
  473. package/src/theme/color-algorithms.ts +0 -142
  474. package/src/theme/index.tsx +0 -80
  475. package/src/theme/stories/index.story.tsx +0 -127
  476. package/src/theme/style.module.scss +0 -4
  477. package/src/theme/test/color-algorithms.ts +0 -100
  478. package/src/theme/test/index.tsx +0 -151
  479. package/src/theme/types.ts +0 -61
  480. package/src/toggle-group-control/toggle-group-control/styles.ts +0 -84
  481. package/src/toggle-group-control/toggle-group-control-option-base/styles.ts +0 -109
  482. package/src/tools-panel/styles.ts +0 -176
  483. package/src/utils/use-deprecated-props.ts +0 -14
@@ -34,12 +34,96 @@ __export(component_exports, {
34
34
  default: () => component_default
35
35
  });
36
36
  module.exports = __toCommonJS(component_exports);
37
+ var import_clsx = __toESM(require("clsx"));
37
38
  var import_element = require("@wordpress/element");
38
39
  var import_compose = require("@wordpress/compose");
39
40
  var import_context = require("../../context/index.cjs");
40
- var import_hooks = require("../../utils/hooks/index.cjs");
41
41
  var import_base_control = __toESM(require("../../base-control/index.cjs"));
42
- var styles = __toESM(require("./styles.cjs"));
42
+
43
+ // packages/style-runtime/src/index.ts
44
+ var STYLE_HASH_ATTRIBUTE = "data-wp-hash";
45
+ function getRuntime() {
46
+ const globalScope = globalThis;
47
+ if (globalScope.__wpStyleRuntime) {
48
+ return globalScope.__wpStyleRuntime;
49
+ }
50
+ globalScope.__wpStyleRuntime = {
51
+ documents: /* @__PURE__ */ new Map(),
52
+ styles: /* @__PURE__ */ new Map(),
53
+ injectedStyles: /* @__PURE__ */ new WeakMap()
54
+ };
55
+ if (typeof document !== "undefined") {
56
+ registerDocument(document);
57
+ }
58
+ return globalScope.__wpStyleRuntime;
59
+ }
60
+ function documentContainsStyleHash(targetDocument, hash) {
61
+ if (!targetDocument.head) {
62
+ return false;
63
+ }
64
+ for (const style of targetDocument.head.querySelectorAll(`style[${STYLE_HASH_ATTRIBUTE}]`)) {
65
+ if (style.getAttribute(STYLE_HASH_ATTRIBUTE) === hash) {
66
+ return true;
67
+ }
68
+ }
69
+ return false;
70
+ }
71
+ function injectStyle(targetDocument, hash, css) {
72
+ if (!targetDocument.head) {
73
+ return;
74
+ }
75
+ const runtime = getRuntime();
76
+ let injectedStyles = runtime.injectedStyles.get(targetDocument);
77
+ if (!injectedStyles) {
78
+ injectedStyles = /* @__PURE__ */ new Set();
79
+ runtime.injectedStyles.set(targetDocument, injectedStyles);
80
+ }
81
+ if (injectedStyles.has(hash)) {
82
+ return;
83
+ }
84
+ if (documentContainsStyleHash(targetDocument, hash)) {
85
+ injectedStyles.add(hash);
86
+ return;
87
+ }
88
+ const style = targetDocument.createElement("style");
89
+ style.setAttribute(STYLE_HASH_ATTRIBUTE, hash);
90
+ style.appendChild(targetDocument.createTextNode(css));
91
+ targetDocument.head.appendChild(style);
92
+ injectedStyles.add(hash);
93
+ }
94
+ function registerDocument(targetDocument) {
95
+ const runtime = getRuntime();
96
+ runtime.documents.set(targetDocument, (runtime.documents.get(targetDocument) ?? 0) + 1);
97
+ for (const [hash, css] of runtime.styles) {
98
+ injectStyle(targetDocument, hash, css);
99
+ }
100
+ return () => {
101
+ const count = runtime.documents.get(targetDocument);
102
+ if (count === void 0) {
103
+ return;
104
+ }
105
+ if (count <= 1) {
106
+ runtime.documents.delete(targetDocument);
107
+ return;
108
+ }
109
+ runtime.documents.set(targetDocument, count - 1);
110
+ };
111
+ }
112
+ function registerStyle(hash, css) {
113
+ const runtime = getRuntime();
114
+ runtime.styles.set(hash, css);
115
+ for (const targetDocument of runtime.documents.keys()) {
116
+ injectStyle(targetDocument, hash, css);
117
+ }
118
+ }
119
+
120
+ // packages/components/src/toggle-group-control/toggle-group-control/style.module.scss
121
+ if (typeof process === "undefined" || process.env.NODE_ENV !== "test") {
122
+ registerStyle("ac15433bd4", '.f3fd102dd2f0e90e__toggle-group-control{background:var(--wp-components-color-background,var(--wpds-color-background-surface-neutral-strong,#fff));border:1px solid transparent;border-radius:var(--wpds-border-radius-sm,2px);display:inline-flex;height:40px;min-width:0;position:relative}@media not (prefers-reduced-motion){.f3fd102dd2f0e90e__toggle-group-control[data-indicator-animated]:before{transition-duration:.2s;transition-property:transform,border-radius;transition-timing-function:ease-out}}.f3fd102dd2f0e90e__toggle-group-control:before{background:var(--wp-components-color-gray-100,var(--wpds-color-background-surface-neutral,#fcfcfc));border:1px solid var(--wp-components-color-gray-700,var(--wpds-color-foreground-content-neutral-weak,#707070));border-radius:var(--wpds-border-radius-sm,2px);content:"";height:calc(var(--selected-height, 0)*1px + 2px);left:-2px;opacity:min(1,max(0,var(--selected-width,0),var(--selected-height,0)));outline:2px solid transparent;outline-offset:-3px;pointer-events:none;position:absolute;top:-1px;transform:translateX(calc(var(--selected-left, 0)*1px));width:calc(var(--selected-width, 0)*1px + 2px)}._1344586004ce6119__has-border{border-color:var(--wp-components-color-gray-300,var(--wpds-color-stroke-surface-neutral,#dbdbdb))}.aa98fad5b5d333be__has-enclosing-borders:hover{border-color:var(--wp-components-color-gray-400,var(--wpds-color-stroke-interactive-neutral,#8d8d8d))}.aa98fad5b5d333be__has-enclosing-borders:focus-within{--focus-color:var(--wpds-color-stroke-focus,var(--wp-admin-theme-color,#3858e9));outline:var(--wpds-border-width-focus,var(--wp-admin-border-width-focus,2px)) solid var(--focus-color);outline-color:var(--wp-components-color-accent,var(--wpds-color-stroke-focus,var(--wp-admin-theme-color,#3858e9)));outline-offset:var(--wpds-border-width-focus,var(--wp-admin-border-width-focus,2px));z-index:1}._4068eff8d72c19b3__is-block{display:flex;width:100%}');
123
+ }
124
+ var style_module_default = { "toggle-group-control": "f3fd102dd2f0e90e__toggle-group-control", "has-border": "_1344586004ce6119__has-border", "has-enclosing-borders": "aa98fad5b5d333be__has-enclosing-borders", "is-block": "_4068eff8d72c19b3__is-block" };
125
+
126
+ // packages/components/src/toggle-group-control/toggle-group-control/component.tsx
43
127
  var import_as_radio_group = require("./as-radio-group.cjs");
44
128
  var import_as_button_group = require("./as-button-group.cjs");
45
129
  var import_element_rect = require("../../utils/element-rect.cjs");
@@ -51,7 +135,6 @@ function UnconnectedToggleGroupControl(props, forwardedRef) {
51
135
  __nextHasNoMarginBottom: _,
52
136
  size: _size,
53
137
  __next40pxDefaultSize: _next40pxDefaultSize,
54
- __shouldNotWarnDeprecated36pxSize: _shouldNotWarnDeprecated36pxSize,
55
138
  className,
56
139
  isAdaptiveWidth = false,
57
140
  isBlock = false,
@@ -84,11 +167,11 @@ function UnconnectedToggleGroupControl(props, forwardedRef) {
84
167
  transitionEndFilter: (event) => event.pseudoElement === "::before",
85
168
  roundRect: false
86
169
  });
87
- const cx = (0, import_hooks.useCx)();
88
- const classes = (0, import_element.useMemo)(() => cx(styles.toggleGroupControl({
89
- isBlock,
90
- isDeselectable
91
- }), className), [className, cx, isBlock, isDeselectable]);
170
+ const classes = (0, import_clsx.default)(style_module_default["toggle-group-control"], {
171
+ [style_module_default["is-block"]]: isBlock,
172
+ [style_module_default["has-border"]]: isBlock && !isDeselectable,
173
+ [style_module_default["has-enclosing-borders"]]: !isDeselectable
174
+ }, className);
92
175
  const MainControl = isDeselectable ? import_as_button_group.ToggleGroupControlAsButtonGroup : import_as_radio_group.ToggleGroupControlAsRadioGroup;
93
176
  return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_base_control.default, {
94
177
  ...baseControlProps,
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
- "sources": ["../../../src/toggle-group-control/toggle-group-control/component.tsx"],
4
- "sourcesContent": ["/**\n * External dependencies\n */\n\n/**\n * WordPress dependencies\n */\nimport { useMemo, useState } from '@wordpress/element';\nimport { useMergeRefs } from '@wordpress/compose';\n\n/**\n * Internal dependencies\n */\n\nimport { contextConnect, useContextSystem } from '../../context';\nimport { useCx } from '../../utils/hooks';\nimport BaseControl, { useBaseControlProps } from '../../base-control';\nimport * as styles from './styles';\nimport { ToggleGroupControlAsRadioGroup } from './as-radio-group';\nimport { ToggleGroupControlAsButtonGroup } from './as-button-group';\nimport { useTrackElementOffsetRect } from '../../utils/element-rect';\nimport { useAnimatedOffsetRect } from '../../utils/hooks/use-animated-offset-rect';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nfunction UnconnectedToggleGroupControl(props, forwardedRef) {\n const {\n // Prevent passing legacy props to internal component.\n __nextHasNoMarginBottom: _,\n size: _size,\n __next40pxDefaultSize: _next40pxDefaultSize,\n __shouldNotWarnDeprecated36pxSize: _shouldNotWarnDeprecated36pxSize,\n className,\n isAdaptiveWidth = false,\n isBlock = false,\n isDeselectable = false,\n id,\n label,\n hideLabelFromVision = false,\n help,\n onChange,\n value,\n children,\n ...otherProps\n } = useContextSystem(props, 'ToggleGroupControl');\n const {\n baseControlProps,\n controlProps\n } = useBaseControlProps({\n id,\n help,\n label,\n hideLabelFromVision\n });\n const [selectedElement, setSelectedElement] = useState();\n const [controlElement, setControlElement] = useState();\n const refs = useMergeRefs([setControlElement, forwardedRef]);\n const selectedRect = useTrackElementOffsetRect(value !== null && value !== undefined ? selectedElement : undefined);\n useAnimatedOffsetRect(controlElement, selectedRect, {\n prefix: 'selected',\n dataAttribute: 'indicator-animated',\n transitionEndFilter: event => event.pseudoElement === '::before',\n roundRect: false\n });\n const cx = useCx();\n const classes = useMemo(() => cx(styles.toggleGroupControl({\n isBlock,\n isDeselectable\n }), className), [className, cx, isBlock, isDeselectable]);\n const MainControl = isDeselectable ? ToggleGroupControlAsButtonGroup : ToggleGroupControlAsRadioGroup;\n return /*#__PURE__*/_jsx(BaseControl, {\n ...baseControlProps,\n children: /*#__PURE__*/_jsx(MainControl, {\n ...otherProps,\n ...controlProps,\n setSelectedElement: setSelectedElement,\n className: classes,\n isAdaptiveWidth: isAdaptiveWidth\n // `label` is used for `aria-label` on the inner control.\n // This is separate from the visual label rendered by `BaseControl`.\n ,\n label: label,\n onChange: onChange,\n ref: refs,\n value: value,\n children: children\n })\n });\n}\n\n/**\n * `ToggleGroupControl` is a form component that lets users choose options\n * represented in horizontal segments. To render options for this control use\n * `ToggleGroupControlOption` component.\n *\n * This component is intended for selecting a single persistent value from a set of options,\n * similar to a how a radio button group would work. If you simply want a toggle to switch between views,\n * use a `TabPanel` instead.\n *\n * Only use this control when you know for sure the labels of items inside won't\n * wrap. For items with longer labels, you can consider a `SelectControl` or a\n * `CustomSelectControl` component instead.\n *\n * ```jsx\n * import {\n * __experimentalToggleGroupControl as ToggleGroupControl,\n * __experimentalToggleGroupControlOption as ToggleGroupControlOption,\n * } from '@wordpress/components';\n *\n * function Example() {\n * return (\n * <ToggleGroupControl\n * label=\"my label\"\n * value=\"vertical\"\n * isBlock\n * >\n * <ToggleGroupControlOption value=\"horizontal\" label=\"Horizontal\" />\n * <ToggleGroupControlOption value=\"vertical\" label=\"Vertical\" />\n * </ToggleGroupControl>\n * );\n * }\n * ```\n */\nexport const ToggleGroupControl = contextConnect(UnconnectedToggleGroupControl, 'ToggleGroupControl');\nexport default ToggleGroupControl;"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAOA,qBAAkC;AAClC,qBAA6B;AAM7B,qBAAiD;AACjD,mBAAsB;AACtB,0BAAiD;AACjD,aAAwB;AACxB,4BAA+C;AAC/C,6BAAgD;AAChD,0BAA0C;AAC1C,sCAAsC;AACtC,yBAA4B;AAC5B,SAAS,8BAA8B,OAAO,cAAc;AAC1D,QAAM;AAAA;AAAA,IAEJ,yBAAyB;AAAA,IACzB,MAAM;AAAA,IACN,uBAAuB;AAAA,IACvB,mCAAmC;AAAA,IACnC;AAAA,IACA,kBAAkB;AAAA,IAClB,UAAU;AAAA,IACV,iBAAiB;AAAA,IACjB;AAAA,IACA;AAAA,IACA,sBAAsB;AAAA,IACtB;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA,GAAG;AAAA,EACL,QAAI,iCAAiB,OAAO,oBAAoB;AAChD,QAAM;AAAA,IACJ;AAAA,IACA;AAAA,EACF,QAAI,yCAAoB;AAAA,IACtB;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,EACF,CAAC;AACD,QAAM,CAAC,iBAAiB,kBAAkB,QAAI,yBAAS;AACvD,QAAM,CAAC,gBAAgB,iBAAiB,QAAI,yBAAS;AACrD,QAAM,WAAO,6BAAa,CAAC,mBAAmB,YAAY,CAAC;AAC3D,QAAM,mBAAe,+CAA0B,UAAU,QAAQ,UAAU,SAAY,kBAAkB,MAAS;AAClH,6DAAsB,gBAAgB,cAAc;AAAA,IAClD,QAAQ;AAAA,IACR,eAAe;AAAA,IACf,qBAAqB,WAAS,MAAM,kBAAkB;AAAA,IACtD,WAAW;AAAA,EACb,CAAC;AACD,QAAM,SAAK,oBAAM;AACjB,QAAM,cAAU,wBAAQ,MAAM,GAAU,0BAAmB;AAAA,IACzD;AAAA,IACA;AAAA,EACF,CAAC,GAAG,SAAS,GAAG,CAAC,WAAW,IAAI,SAAS,cAAc,CAAC;AACxD,QAAM,cAAc,iBAAiB,yDAAkC;AACvE,SAAoB,uCAAAA,KAAK,oBAAAC,SAAa;AAAA,IACpC,GAAG;AAAA,IACH,UAAuB,uCAAAD,KAAK,aAAa;AAAA,MACvC,GAAG;AAAA,MACH,GAAG;AAAA,MACH;AAAA,MACA,WAAW;AAAA,MACX;AAAA,MAIA;AAAA,MACA;AAAA,MACA,KAAK;AAAA,MACL;AAAA,MACA;AAAA,IACF,CAAC;AAAA,EACH,CAAC;AACH;AAmCO,IAAM,yBAAqB,+BAAe,+BAA+B,oBAAoB;AACpG,IAAO,oBAAQ;",
6
- "names": ["_jsx", "BaseControl"]
3
+ "sources": ["../../../src/toggle-group-control/toggle-group-control/component.tsx", "../../../../style-runtime/src/index.ts", "../../../src/toggle-group-control/toggle-group-control/style.module.scss"],
4
+ "sourcesContent": ["/**\n * External dependencies\n */\nimport clsx from 'clsx';\n/**\n * WordPress dependencies\n */\nimport { useState } from '@wordpress/element';\nimport { useMergeRefs } from '@wordpress/compose';\n\n/**\n * Internal dependencies\n */\n\nimport { contextConnect, useContextSystem } from '../../context';\nimport BaseControl, { useBaseControlProps } from '../../base-control';\nimport styles from './style.module.scss';\nimport { ToggleGroupControlAsRadioGroup } from './as-radio-group';\nimport { ToggleGroupControlAsButtonGroup } from './as-button-group';\nimport { useTrackElementOffsetRect } from '../../utils/element-rect';\nimport { useAnimatedOffsetRect } from '../../utils/hooks/use-animated-offset-rect';\nimport { jsx as _jsx } from \"react/jsx-runtime\";\nfunction UnconnectedToggleGroupControl(props, forwardedRef) {\n const {\n // Prevent passing legacy props to internal component.\n __nextHasNoMarginBottom: _,\n size: _size,\n __next40pxDefaultSize: _next40pxDefaultSize,\n className,\n isAdaptiveWidth = false,\n isBlock = false,\n isDeselectable = false,\n id,\n label,\n hideLabelFromVision = false,\n help,\n onChange,\n value,\n children,\n ...otherProps\n } = useContextSystem(props, 'ToggleGroupControl');\n const {\n baseControlProps,\n controlProps\n } = useBaseControlProps({\n id,\n help,\n label,\n hideLabelFromVision\n });\n const [selectedElement, setSelectedElement] = useState();\n const [controlElement, setControlElement] = useState();\n const refs = useMergeRefs([setControlElement, forwardedRef]);\n const selectedRect = useTrackElementOffsetRect(value !== null && value !== undefined ? selectedElement : undefined);\n useAnimatedOffsetRect(controlElement, selectedRect, {\n prefix: 'selected',\n dataAttribute: 'indicator-animated',\n transitionEndFilter: event => event.pseudoElement === '::before',\n roundRect: false\n });\n const classes = clsx(styles['toggle-group-control'], {\n [styles['is-block']]: isBlock,\n [styles['has-border']]: isBlock && !isDeselectable,\n [styles['has-enclosing-borders']]: !isDeselectable\n }, className);\n const MainControl = isDeselectable ? ToggleGroupControlAsButtonGroup : ToggleGroupControlAsRadioGroup;\n return /*#__PURE__*/_jsx(BaseControl, {\n ...baseControlProps,\n children: /*#__PURE__*/_jsx(MainControl, {\n ...otherProps,\n ...controlProps,\n setSelectedElement: setSelectedElement,\n className: classes,\n isAdaptiveWidth: isAdaptiveWidth\n // `label` is used for `aria-label` on the inner control.\n // This is separate from the visual label rendered by `BaseControl`.\n ,\n label: label,\n onChange: onChange,\n ref: refs,\n value: value,\n children: children\n })\n });\n}\n\n/**\n * `ToggleGroupControl` is a form component that lets users choose options\n * represented in horizontal segments. To render options for this control use\n * `ToggleGroupControlOption` component.\n *\n * This component is intended for selecting a single persistent value from a set of options,\n * similar to a how a radio button group would work. If you simply want a toggle to switch between views,\n * use a `TabPanel` instead.\n *\n * Only use this control when you know for sure the labels of items inside won't\n * wrap. For items with longer labels, you can consider a `SelectControl` or a\n * `CustomSelectControl` component instead.\n *\n * ```jsx\n * import {\n * __experimentalToggleGroupControl as ToggleGroupControl,\n * __experimentalToggleGroupControlOption as ToggleGroupControlOption,\n * } from '@wordpress/components';\n *\n * function Example() {\n * return (\n * <ToggleGroupControl\n * label=\"my label\"\n * value=\"vertical\"\n * isBlock\n * >\n * <ToggleGroupControlOption value=\"horizontal\" label=\"Horizontal\" />\n * <ToggleGroupControlOption value=\"vertical\" label=\"Vertical\" />\n * </ToggleGroupControl>\n * );\n * }\n * ```\n */\nexport const ToggleGroupControl = contextConnect(UnconnectedToggleGroupControl, 'ToggleGroupControl');\nexport default ToggleGroupControl;", "const STYLE_HASH_ATTRIBUTE = 'data-wp-hash';\n\n/**\n * Returns the shared style runtime registry.\n *\n * The registry is stored on `globalThis` so separately bundled copies of this\n * package can coordinate through the same document and style maps.\n *\n * @return The shared runtime registry.\n */\nfunction getRuntime() {\n const globalScope = globalThis;\n if (globalScope.__wpStyleRuntime) {\n return globalScope.__wpStyleRuntime;\n }\n globalScope.__wpStyleRuntime = {\n documents: new Map(),\n styles: new Map(),\n injectedStyles: new WeakMap()\n };\n if (typeof document !== 'undefined') {\n registerDocument(document);\n }\n return globalScope.__wpStyleRuntime;\n}\n\n/**\n * Checks whether a document already contains a style tag for a hash.\n *\n * @param targetDocument Document to inspect.\n * @param hash Stable hash for the transformed CSS.\n *\n * @return Whether the style hash already exists in the document.\n */\nfunction documentContainsStyleHash(targetDocument, hash) {\n if (!targetDocument.head) {\n return false;\n }\n for (const style of targetDocument.head.querySelectorAll(`style[${STYLE_HASH_ATTRIBUTE}]`)) {\n if (style.getAttribute(STYLE_HASH_ATTRIBUTE) === hash) {\n return true;\n }\n }\n return false;\n}\n\n/**\n * Injects a registered style into a document, unless that document already\n * contains a style tag for the same hash.\n *\n * @param targetDocument Document to inject the style into.\n * @param hash Stable hash for the transformed CSS.\n * @param css CSS text to inject.\n */\nfunction injectStyle(targetDocument, hash, css) {\n if (!targetDocument.head) {\n return;\n }\n const runtime = getRuntime();\n let injectedStyles = runtime.injectedStyles.get(targetDocument);\n if (!injectedStyles) {\n injectedStyles = new Set();\n runtime.injectedStyles.set(targetDocument, injectedStyles);\n }\n if (injectedStyles.has(hash)) {\n return;\n }\n\n // Older generated CSS module output can still inject matching style tags\n // after this document's cache is created, so keep the DOM as the fallback\n // source of truth on cache misses.\n if (documentContainsStyleHash(targetDocument, hash)) {\n injectedStyles.add(hash);\n return;\n }\n const style = targetDocument.createElement('style');\n style.setAttribute(STYLE_HASH_ATTRIBUTE, hash);\n style.appendChild(targetDocument.createTextNode(css));\n targetDocument.head.appendChild(style);\n injectedStyles.add(hash);\n}\n\n/**\n * Registers a document as a style injection target.\n *\n * Existing registered styles are replayed into the document immediately.\n * Documents are reference-counted so multiple providers can safely register the\n * same document without one cleanup removing it while another registration is\n * still active.\n *\n * @param targetDocument Document to receive registered styles.\n * @return Cleanup function that unregisters this document registration.\n */\nexport function registerDocument(targetDocument) {\n const runtime = getRuntime();\n runtime.documents.set(targetDocument, (runtime.documents.get(targetDocument) ?? 0) + 1);\n for (const [hash, css] of runtime.styles) {\n injectStyle(targetDocument, hash, css);\n }\n return () => {\n const count = runtime.documents.get(targetDocument);\n if (count === undefined) {\n return;\n }\n if (count <= 1) {\n runtime.documents.delete(targetDocument);\n return;\n }\n runtime.documents.set(targetDocument, count - 1);\n };\n}\n\n/**\n * Registers a style and injects it into all registered documents.\n *\n * The hash is used as the deduplication key, so calling this repeatedly with\n * the same hash will not add duplicate style tags to a document.\n * Registered styles are retained for the lifetime of the page so they can be\n * replayed into documents that are registered later.\n *\n * @param hash Stable hash for the transformed CSS.\n * @param css CSS text to inject.\n */\nexport function registerStyle(hash, css) {\n const runtime = getRuntime();\n runtime.styles.set(hash, css);\n for (const targetDocument of runtime.documents.keys()) {\n injectStyle(targetDocument, hash, css);\n }\n}", "import { registerStyle } from '@wordpress/style-runtime';\nif (typeof process === 'undefined' || process.env.NODE_ENV !== 'test') {\n\tregisterStyle(\"ac15433bd4\", \".f3fd102dd2f0e90e__toggle-group-control{background:var(--wp-components-color-background,var(--wpds-color-background-surface-neutral-strong,#fff));border:1px solid transparent;border-radius:var(--wpds-border-radius-sm,2px);display:inline-flex;height:40px;min-width:0;position:relative}@media not (prefers-reduced-motion){.f3fd102dd2f0e90e__toggle-group-control[data-indicator-animated]:before{transition-duration:.2s;transition-property:transform,border-radius;transition-timing-function:ease-out}}.f3fd102dd2f0e90e__toggle-group-control:before{background:var(--wp-components-color-gray-100,var(--wpds-color-background-surface-neutral,#fcfcfc));border:1px solid var(--wp-components-color-gray-700,var(--wpds-color-foreground-content-neutral-weak,#707070));border-radius:var(--wpds-border-radius-sm,2px);content:\\\"\\\";height:calc(var(--selected-height, 0)*1px + 2px);left:-2px;opacity:min(1,max(0,var(--selected-width,0),var(--selected-height,0)));outline:2px solid transparent;outline-offset:-3px;pointer-events:none;position:absolute;top:-1px;transform:translateX(calc(var(--selected-left, 0)*1px));width:calc(var(--selected-width, 0)*1px + 2px)}._1344586004ce6119__has-border{border-color:var(--wp-components-color-gray-300,var(--wpds-color-stroke-surface-neutral,#dbdbdb))}.aa98fad5b5d333be__has-enclosing-borders:hover{border-color:var(--wp-components-color-gray-400,var(--wpds-color-stroke-interactive-neutral,#8d8d8d))}.aa98fad5b5d333be__has-enclosing-borders:focus-within{--focus-color:var(--wpds-color-stroke-focus,var(--wp-admin-theme-color,#3858e9));outline:var(--wpds-border-width-focus,var(--wp-admin-border-width-focus,2px)) solid var(--focus-color);outline-color:var(--wp-components-color-accent,var(--wpds-color-stroke-focus,var(--wp-admin-theme-color,#3858e9)));outline-offset:var(--wpds-border-width-focus,var(--wp-admin-border-width-focus,2px));z-index:1}._4068eff8d72c19b3__is-block{display:flex;width:100%}\");\n}\nexport default {\"toggle-group-control\":\"f3fd102dd2f0e90e__toggle-group-control\",\"has-border\":\"_1344586004ce6119__has-border\",\"has-enclosing-borders\":\"aa98fad5b5d333be__has-enclosing-borders\",\"is-block\":\"_4068eff8d72c19b3__is-block\"};\n"],
5
+ "mappings": "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",
6
+ "names": ["clsx", "_jsx", "BaseControl"]
7
7
  }
@@ -33,19 +33,99 @@ __export(component_exports, {
33
33
  default: () => component_default
34
34
  });
35
35
  module.exports = __toCommonJS(component_exports);
36
+ var import_clsx = __toESM(require("clsx"));
36
37
  var Ariakit = __toESM(require("@ariakit/react"));
37
38
  var import_compose = require("@wordpress/compose");
38
39
  var import_element = require("@wordpress/element");
39
40
  var import_context = require("../../context/index.cjs");
40
41
  var import_context2 = require("../context.cjs");
41
- var styles = __toESM(require("./styles.cjs"));
42
- var import_hooks = require("../../utils/hooks/index.cjs");
42
+
43
+ // packages/style-runtime/src/index.ts
44
+ var STYLE_HASH_ATTRIBUTE = "data-wp-hash";
45
+ function getRuntime() {
46
+ const globalScope = globalThis;
47
+ if (globalScope.__wpStyleRuntime) {
48
+ return globalScope.__wpStyleRuntime;
49
+ }
50
+ globalScope.__wpStyleRuntime = {
51
+ documents: /* @__PURE__ */ new Map(),
52
+ styles: /* @__PURE__ */ new Map(),
53
+ injectedStyles: /* @__PURE__ */ new WeakMap()
54
+ };
55
+ if (typeof document !== "undefined") {
56
+ registerDocument(document);
57
+ }
58
+ return globalScope.__wpStyleRuntime;
59
+ }
60
+ function documentContainsStyleHash(targetDocument, hash) {
61
+ if (!targetDocument.head) {
62
+ return false;
63
+ }
64
+ for (const style of targetDocument.head.querySelectorAll(`style[${STYLE_HASH_ATTRIBUTE}]`)) {
65
+ if (style.getAttribute(STYLE_HASH_ATTRIBUTE) === hash) {
66
+ return true;
67
+ }
68
+ }
69
+ return false;
70
+ }
71
+ function injectStyle(targetDocument, hash, css) {
72
+ if (!targetDocument.head) {
73
+ return;
74
+ }
75
+ const runtime = getRuntime();
76
+ let injectedStyles = runtime.injectedStyles.get(targetDocument);
77
+ if (!injectedStyles) {
78
+ injectedStyles = /* @__PURE__ */ new Set();
79
+ runtime.injectedStyles.set(targetDocument, injectedStyles);
80
+ }
81
+ if (injectedStyles.has(hash)) {
82
+ return;
83
+ }
84
+ if (documentContainsStyleHash(targetDocument, hash)) {
85
+ injectedStyles.add(hash);
86
+ return;
87
+ }
88
+ const style = targetDocument.createElement("style");
89
+ style.setAttribute(STYLE_HASH_ATTRIBUTE, hash);
90
+ style.appendChild(targetDocument.createTextNode(css));
91
+ targetDocument.head.appendChild(style);
92
+ injectedStyles.add(hash);
93
+ }
94
+ function registerDocument(targetDocument) {
95
+ const runtime = getRuntime();
96
+ runtime.documents.set(targetDocument, (runtime.documents.get(targetDocument) ?? 0) + 1);
97
+ for (const [hash, css] of runtime.styles) {
98
+ injectStyle(targetDocument, hash, css);
99
+ }
100
+ return () => {
101
+ const count = runtime.documents.get(targetDocument);
102
+ if (count === void 0) {
103
+ return;
104
+ }
105
+ if (count <= 1) {
106
+ runtime.documents.delete(targetDocument);
107
+ return;
108
+ }
109
+ runtime.documents.set(targetDocument, count - 1);
110
+ };
111
+ }
112
+ function registerStyle(hash, css) {
113
+ const runtime = getRuntime();
114
+ runtime.styles.set(hash, css);
115
+ for (const targetDocument of runtime.documents.keys()) {
116
+ injectStyle(targetDocument, hash, css);
117
+ }
118
+ }
119
+
120
+ // packages/components/src/toggle-group-control/toggle-group-control-option-base/style.module.scss
121
+ if (typeof process === "undefined" || process.env.NODE_ENV !== "test") {
122
+ registerStyle("a044fd0bb7", "._1dec843460a3c9d5__label{display:inline-flex;max-width:100%;min-width:0;position:relative}._50ddec5669c9d4a6__label-block{flex:1}._1563c8aa5e21d063__button{fill:currentColor;align-items:center;appearance:none;background:transparent;border:none;border-radius:var(--wpds-border-radius-xs,1px);color:var(--wp-components-color-gray-700,var(--wpds-color-foreground-content-neutral-weak,#707070));cursor:var(--wpds-cursor-control,pointer);display:flex;font-family:inherit;height:100%;justify-content:center;line-height:1;outline:none;padding:0 12px;position:relative;text-align:center}@media not (prefers-reduced-motion){._1563c8aa5e21d063__button{transition:color .16s linear,font-weight 60ms linear}}._1563c8aa5e21d063__button{user-select:none;width:100%;z-index:2}._1563c8aa5e21d063__button::-moz-focus-inner{border:0}._1563c8aa5e21d063__button[aria-disabled=true],._1563c8aa5e21d063__button[disabled]{cursor:default;opacity:.4}._1563c8aa5e21d063__button:hover:not([disabled]):not([aria-disabled=true]){color:var(--wp-components-color-foreground,var(--wpds-color-foreground-content-neutral,#1e1e1e))}.e1b6a1f76b7eb2bb__is-deselectable:focus{--focus-color:var(--wpds-color-stroke-focus,var(--wp-admin-theme-color,#3858e9));outline:var(--wpds-border-width-focus,var(--wp-admin-border-width-focus,2px)) solid var(--focus-color);outline-color:var(--wp-components-color-accent,var(--wpds-color-stroke-focus,var(--wp-admin-theme-color,#3858e9)));outline-offset:var(--wpds-border-width-focus,var(--wp-admin-border-width-focus,2px))}.e1b6a1f76b7eb2bb__is-deselectable:focus[aria-pressed=false]{background:var(--wp-components-color-background,var(--wpds-color-background-surface-neutral-strong,#fff));box-shadow:0 0 0 2px var(--wp-components-color-background,var(--wpds-color-background-surface-neutral-strong,#fff))}._407216dd3e301287__is-icon{aspect-ratio:1;height:38px;padding:0}._617c0f0a1c161590__is-pressed{color:var(--wp-components-color-foreground,var(--wpds-color-foreground-content-neutral,#1e1e1e));font-weight:var(--wpds-typography-font-weight-emphasis,600)}._2850882d974e5419__button-content{display:flex;font-size:var(--wpds-typography-font-size-md,13px);line-height:1}");
123
+ }
124
+ var style_module_default = { "label": "_1dec843460a3c9d5__label", "label-block": "_50ddec5669c9d4a6__label-block", "button": "_1563c8aa5e21d063__button", "is-deselectable": "e1b6a1f76b7eb2bb__is-deselectable", "is-icon": "_407216dd3e301287__is-icon", "is-pressed": "_617c0f0a1c161590__is-pressed", "button-content": "_2850882d974e5419__button-content" };
125
+
126
+ // packages/components/src/toggle-group-control/toggle-group-control-option-base/component.tsx
43
127
  var import_tooltip = __toESM(require("../../tooltip/index.cjs"));
44
128
  var import_jsx_runtime = require("react/jsx-runtime");
45
- var {
46
- ButtonContentView,
47
- LabelView
48
- } = styles;
49
129
  var WithToolTip = ({
50
130
  showTooltip,
51
131
  text,
@@ -83,13 +163,12 @@ function ToggleGroupControlOptionBase(props, forwardedRef) {
83
163
  ...otherButtonProps
84
164
  } = buttonProps;
85
165
  const isPressed = toggleGroupControlContext.value === value;
86
- const cx = (0, import_hooks.useCx)();
87
- const labelViewClasses = (0, import_element.useMemo)(() => cx(isBlock && styles.labelBlock), [cx, isBlock]);
88
- const itemClasses = (0, import_element.useMemo)(() => cx(styles.buttonView({
89
- isDeselectable,
90
- isIcon,
91
- isPressed
92
- }), className), [cx, isDeselectable, isIcon, isPressed, className]);
166
+ const labelClasses = (0, import_clsx.default)(style_module_default.label, isBlock && style_module_default["label-block"]);
167
+ const itemClasses = (0, import_clsx.default)(style_module_default.button, {
168
+ [style_module_default["is-deselectable"]]: isDeselectable,
169
+ [style_module_default["is-icon"]]: isIcon,
170
+ [style_module_default["is-pressed"]]: isPressed
171
+ }, className);
93
172
  const buttonOnClick = () => {
94
173
  if (isDeselectable && isPressed) {
95
174
  toggleGroupControlContext.setValue(void 0);
@@ -109,9 +188,9 @@ function ToggleGroupControlOptionBase(props, forwardedRef) {
109
188
  toggleGroupControlContext.setSelectedElement(labelRef.current);
110
189
  }
111
190
  }, [isPressed, toggleGroupControlContext]);
112
- return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(LabelView, {
191
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", {
113
192
  ref: labelRef,
114
- className: labelViewClasses,
193
+ className: labelClasses,
115
194
  children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(WithToolTip, {
116
195
  showTooltip,
117
196
  text: otherButtonProps["aria-label"],
@@ -121,7 +200,8 @@ function ToggleGroupControlOptionBase(props, forwardedRef) {
121
200
  "aria-pressed": isPressed,
122
201
  type: "button",
123
202
  onClick: buttonOnClick,
124
- children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(ButtonContentView, {
203
+ children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", {
204
+ className: style_module_default["button-content"],
125
205
  children
126
206
  })
127
207
  }) : /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Ariakit.Radio, {
@@ -137,7 +217,8 @@ function ToggleGroupControlOptionBase(props, forwardedRef) {
137
217
  ...commonProps
138
218
  }),
139
219
  value,
140
- children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(ButtonContentView, {
220
+ children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", {
221
+ className: style_module_default["button-content"],
141
222
  children
142
223
  })
143
224
  })
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
- "sources": ["../../../src/toggle-group-control/toggle-group-control-option-base/component.tsx"],
4
- "sourcesContent": ["/**\n * External dependencies\n */\n\nimport * as Ariakit from '@ariakit/react';\n\n/**\n * WordPress dependencies\n */\nimport { useInstanceId } from '@wordpress/compose';\nimport { useLayoutEffect, useMemo, useRef } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\n\nimport { contextConnect, useContextSystem } from '../../context';\nimport { useToggleGroupControlContext } from '../context';\nimport * as styles from './styles';\nimport { useCx } from '../../utils/hooks';\nimport Tooltip from '../../tooltip';\nimport { jsx as _jsx, Fragment as _Fragment } from \"react/jsx-runtime\";\nconst {\n ButtonContentView,\n LabelView\n} = styles;\nconst WithToolTip = ({\n showTooltip,\n text,\n children\n}) => {\n if (showTooltip && text) {\n return /*#__PURE__*/_jsx(Tooltip, {\n text: text,\n placement: \"top\",\n children: children\n });\n }\n return /*#__PURE__*/_jsx(_Fragment, {\n children: children\n });\n};\nfunction ToggleGroupControlOptionBase(props, forwardedRef) {\n const toggleGroupControlContext = useToggleGroupControlContext();\n const id = useInstanceId(ToggleGroupControlOptionBase, toggleGroupControlContext.baseId || 'toggle-group-control-option-base');\n const buttonProps = useContextSystem({\n ...props,\n id\n }, 'ToggleGroupControlOptionBase');\n const {\n isBlock = false,\n isDeselectable = false\n } = toggleGroupControlContext;\n const {\n className,\n isIcon = false,\n value,\n children,\n showTooltip = false,\n disabled,\n ...otherButtonProps\n } = buttonProps;\n const isPressed = toggleGroupControlContext.value === value;\n const cx = useCx();\n const labelViewClasses = useMemo(() => cx(isBlock && styles.labelBlock), [cx, isBlock]);\n const itemClasses = useMemo(() => cx(styles.buttonView({\n isDeselectable,\n isIcon,\n isPressed\n }), className), [cx, isDeselectable, isIcon, isPressed, className]);\n const buttonOnClick = () => {\n if (isDeselectable && isPressed) {\n toggleGroupControlContext.setValue(undefined);\n } else {\n toggleGroupControlContext.setValue(value);\n }\n };\n const commonProps = {\n ...otherButtonProps,\n className: itemClasses,\n 'data-value': value,\n ref: forwardedRef\n };\n const labelRef = useRef(null);\n useLayoutEffect(() => {\n if (isPressed && labelRef.current) {\n toggleGroupControlContext.setSelectedElement(labelRef.current);\n }\n }, [isPressed, toggleGroupControlContext]);\n return /*#__PURE__*/_jsx(LabelView, {\n ref: labelRef,\n className: labelViewClasses,\n children: /*#__PURE__*/_jsx(WithToolTip, {\n showTooltip: showTooltip,\n text: otherButtonProps['aria-label'],\n children: isDeselectable ? /*#__PURE__*/_jsx(\"button\", {\n ...commonProps,\n disabled: disabled,\n \"aria-pressed\": isPressed,\n type: \"button\",\n onClick: buttonOnClick,\n children: /*#__PURE__*/_jsx(ButtonContentView, {\n children: children\n })\n }) : /*#__PURE__*/_jsx(Ariakit.Radio, {\n disabled: disabled,\n onFocusVisible: () => {\n const selectedValueIsEmpty = toggleGroupControlContext.value === null || toggleGroupControlContext.value === '';\n\n // Conditions ensure that the first visible focus to a radio group\n // without a selected option will not automatically select the option.\n if (!selectedValueIsEmpty || toggleGroupControlContext.activeItemIsNotFirstItem?.()) {\n toggleGroupControlContext.setValue(value);\n }\n },\n render: /*#__PURE__*/_jsx(\"button\", {\n type: \"button\",\n ...commonProps\n }),\n value: value,\n children: /*#__PURE__*/_jsx(ButtonContentView, {\n children: children\n })\n })\n })\n });\n}\n\n/**\n * `ToggleGroupControlOptionBase` is a form component and is meant to be used as an internal,\n * generic component for any children of `ToggleGroupControl`.\n *\n * @example\n * ```jsx\n * import {\n * __experimentalToggleGroupControl as ToggleGroupControl,\n * __experimentalToggleGroupControlOptionBase as ToggleGroupControlOptionBase,\n * } from '@wordpress/components';\n *\n * function Example() {\n * return (\n * <ToggleGroupControl label=\"my label\" value=\"vertical\" isBlock>\n * <ToggleGroupControlOption value=\"horizontal\" label=\"Horizontal\" />\n * <ToggleGroupControlOption value=\"vertical\" label=\"Vertical\" />\n * </ToggleGroupControl>\n * );\n * }\n * ```\n */\nconst ConnectedToggleGroupControlOptionBase = contextConnect(ToggleGroupControlOptionBase, 'ToggleGroupControlOptionBase');\nexport default ConnectedToggleGroupControlOptionBase;"],
5
- "mappings": "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",
6
- "names": ["import_context", "_jsx", "Tooltip", "_Fragment"]
3
+ "sources": ["../../../src/toggle-group-control/toggle-group-control-option-base/component.tsx", "../../../../style-runtime/src/index.ts", "../../../src/toggle-group-control/toggle-group-control-option-base/style.module.scss"],
4
+ "sourcesContent": ["/**\n * External dependencies\n */\nimport clsx from 'clsx';\nimport * as Ariakit from '@ariakit/react';\n\n/**\n * WordPress dependencies\n */\nimport { useInstanceId } from '@wordpress/compose';\nimport { useLayoutEffect, useRef } from '@wordpress/element';\n\n/**\n * Internal dependencies\n */\n\nimport { contextConnect, useContextSystem } from '../../context';\nimport { useToggleGroupControlContext } from '../context';\nimport styles from './style.module.scss';\nimport Tooltip from '../../tooltip';\nimport { jsx as _jsx, Fragment as _Fragment } from \"react/jsx-runtime\";\nconst WithToolTip = ({\n showTooltip,\n text,\n children\n}) => {\n if (showTooltip && text) {\n return /*#__PURE__*/_jsx(Tooltip, {\n text: text,\n placement: \"top\",\n children: children\n });\n }\n return /*#__PURE__*/_jsx(_Fragment, {\n children: children\n });\n};\nfunction ToggleGroupControlOptionBase(props, forwardedRef) {\n const toggleGroupControlContext = useToggleGroupControlContext();\n const id = useInstanceId(ToggleGroupControlOptionBase, toggleGroupControlContext.baseId || 'toggle-group-control-option-base');\n const buttonProps = useContextSystem({\n ...props,\n id\n }, 'ToggleGroupControlOptionBase');\n const {\n isBlock = false,\n isDeselectable = false\n } = toggleGroupControlContext;\n const {\n className,\n isIcon = false,\n value,\n children,\n showTooltip = false,\n disabled,\n ...otherButtonProps\n } = buttonProps;\n const isPressed = toggleGroupControlContext.value === value;\n const labelClasses = clsx(styles.label, isBlock && styles['label-block']);\n const itemClasses = clsx(styles.button, {\n [styles['is-deselectable']]: isDeselectable,\n [styles['is-icon']]: isIcon,\n [styles['is-pressed']]: isPressed\n }, className);\n const buttonOnClick = () => {\n if (isDeselectable && isPressed) {\n toggleGroupControlContext.setValue(undefined);\n } else {\n toggleGroupControlContext.setValue(value);\n }\n };\n const commonProps = {\n ...otherButtonProps,\n className: itemClasses,\n 'data-value': value,\n ref: forwardedRef\n };\n const labelRef = useRef(null);\n useLayoutEffect(() => {\n if (isPressed && labelRef.current) {\n toggleGroupControlContext.setSelectedElement(labelRef.current);\n }\n }, [isPressed, toggleGroupControlContext]);\n return /*#__PURE__*/_jsx(\"div\", {\n ref: labelRef,\n className: labelClasses,\n children: /*#__PURE__*/_jsx(WithToolTip, {\n showTooltip: showTooltip,\n text: otherButtonProps['aria-label'],\n children: isDeselectable ? /*#__PURE__*/_jsx(\"button\", {\n ...commonProps,\n disabled: disabled,\n \"aria-pressed\": isPressed,\n type: \"button\",\n onClick: buttonOnClick,\n children: /*#__PURE__*/_jsx(\"div\", {\n className: styles['button-content'],\n children: children\n })\n }) : /*#__PURE__*/_jsx(Ariakit.Radio, {\n disabled: disabled,\n onFocusVisible: () => {\n const selectedValueIsEmpty = toggleGroupControlContext.value === null || toggleGroupControlContext.value === '';\n\n // Conditions ensure that the first visible focus to a radio group\n // without a selected option will not automatically select the option.\n if (!selectedValueIsEmpty || toggleGroupControlContext.activeItemIsNotFirstItem?.()) {\n toggleGroupControlContext.setValue(value);\n }\n },\n render: /*#__PURE__*/_jsx(\"button\", {\n type: \"button\",\n ...commonProps\n }),\n value: value,\n children: /*#__PURE__*/_jsx(\"div\", {\n className: styles['button-content'],\n children: children\n })\n })\n })\n });\n}\n\n/**\n * `ToggleGroupControlOptionBase` is a form component and is meant to be used as an internal,\n * generic component for any children of `ToggleGroupControl`.\n *\n * @example\n * ```jsx\n * import {\n * __experimentalToggleGroupControl as ToggleGroupControl,\n * __experimentalToggleGroupControlOptionBase as ToggleGroupControlOptionBase,\n * } from '@wordpress/components';\n *\n * function Example() {\n * return (\n * <ToggleGroupControl label=\"my label\" value=\"vertical\" isBlock>\n * <ToggleGroupControlOption value=\"horizontal\" label=\"Horizontal\" />\n * <ToggleGroupControlOption value=\"vertical\" label=\"Vertical\" />\n * </ToggleGroupControl>\n * );\n * }\n * ```\n */\nconst ConnectedToggleGroupControlOptionBase = contextConnect(ToggleGroupControlOptionBase, 'ToggleGroupControlOptionBase');\nexport default ConnectedToggleGroupControlOptionBase;", "const STYLE_HASH_ATTRIBUTE = 'data-wp-hash';\n\n/**\n * Returns the shared style runtime registry.\n *\n * The registry is stored on `globalThis` so separately bundled copies of this\n * package can coordinate through the same document and style maps.\n *\n * @return The shared runtime registry.\n */\nfunction getRuntime() {\n const globalScope = globalThis;\n if (globalScope.__wpStyleRuntime) {\n return globalScope.__wpStyleRuntime;\n }\n globalScope.__wpStyleRuntime = {\n documents: new Map(),\n styles: new Map(),\n injectedStyles: new WeakMap()\n };\n if (typeof document !== 'undefined') {\n registerDocument(document);\n }\n return globalScope.__wpStyleRuntime;\n}\n\n/**\n * Checks whether a document already contains a style tag for a hash.\n *\n * @param targetDocument Document to inspect.\n * @param hash Stable hash for the transformed CSS.\n *\n * @return Whether the style hash already exists in the document.\n */\nfunction documentContainsStyleHash(targetDocument, hash) {\n if (!targetDocument.head) {\n return false;\n }\n for (const style of targetDocument.head.querySelectorAll(`style[${STYLE_HASH_ATTRIBUTE}]`)) {\n if (style.getAttribute(STYLE_HASH_ATTRIBUTE) === hash) {\n return true;\n }\n }\n return false;\n}\n\n/**\n * Injects a registered style into a document, unless that document already\n * contains a style tag for the same hash.\n *\n * @param targetDocument Document to inject the style into.\n * @param hash Stable hash for the transformed CSS.\n * @param css CSS text to inject.\n */\nfunction injectStyle(targetDocument, hash, css) {\n if (!targetDocument.head) {\n return;\n }\n const runtime = getRuntime();\n let injectedStyles = runtime.injectedStyles.get(targetDocument);\n if (!injectedStyles) {\n injectedStyles = new Set();\n runtime.injectedStyles.set(targetDocument, injectedStyles);\n }\n if (injectedStyles.has(hash)) {\n return;\n }\n\n // Older generated CSS module output can still inject matching style tags\n // after this document's cache is created, so keep the DOM as the fallback\n // source of truth on cache misses.\n if (documentContainsStyleHash(targetDocument, hash)) {\n injectedStyles.add(hash);\n return;\n }\n const style = targetDocument.createElement('style');\n style.setAttribute(STYLE_HASH_ATTRIBUTE, hash);\n style.appendChild(targetDocument.createTextNode(css));\n targetDocument.head.appendChild(style);\n injectedStyles.add(hash);\n}\n\n/**\n * Registers a document as a style injection target.\n *\n * Existing registered styles are replayed into the document immediately.\n * Documents are reference-counted so multiple providers can safely register the\n * same document without one cleanup removing it while another registration is\n * still active.\n *\n * @param targetDocument Document to receive registered styles.\n * @return Cleanup function that unregisters this document registration.\n */\nexport function registerDocument(targetDocument) {\n const runtime = getRuntime();\n runtime.documents.set(targetDocument, (runtime.documents.get(targetDocument) ?? 0) + 1);\n for (const [hash, css] of runtime.styles) {\n injectStyle(targetDocument, hash, css);\n }\n return () => {\n const count = runtime.documents.get(targetDocument);\n if (count === undefined) {\n return;\n }\n if (count <= 1) {\n runtime.documents.delete(targetDocument);\n return;\n }\n runtime.documents.set(targetDocument, count - 1);\n };\n}\n\n/**\n * Registers a style and injects it into all registered documents.\n *\n * The hash is used as the deduplication key, so calling this repeatedly with\n * the same hash will not add duplicate style tags to a document.\n * Registered styles are retained for the lifetime of the page so they can be\n * replayed into documents that are registered later.\n *\n * @param hash Stable hash for the transformed CSS.\n * @param css CSS text to inject.\n */\nexport function registerStyle(hash, css) {\n const runtime = getRuntime();\n runtime.styles.set(hash, css);\n for (const targetDocument of runtime.documents.keys()) {\n injectStyle(targetDocument, hash, css);\n }\n}", "import { registerStyle } from '@wordpress/style-runtime';\nif (typeof process === 'undefined' || process.env.NODE_ENV !== 'test') {\n\tregisterStyle(\"a044fd0bb7\", \"._1dec843460a3c9d5__label{display:inline-flex;max-width:100%;min-width:0;position:relative}._50ddec5669c9d4a6__label-block{flex:1}._1563c8aa5e21d063__button{fill:currentColor;align-items:center;appearance:none;background:transparent;border:none;border-radius:var(--wpds-border-radius-xs,1px);color:var(--wp-components-color-gray-700,var(--wpds-color-foreground-content-neutral-weak,#707070));cursor:var(--wpds-cursor-control,pointer);display:flex;font-family:inherit;height:100%;justify-content:center;line-height:1;outline:none;padding:0 12px;position:relative;text-align:center}@media not (prefers-reduced-motion){._1563c8aa5e21d063__button{transition:color .16s linear,font-weight 60ms linear}}._1563c8aa5e21d063__button{user-select:none;width:100%;z-index:2}._1563c8aa5e21d063__button::-moz-focus-inner{border:0}._1563c8aa5e21d063__button[aria-disabled=true],._1563c8aa5e21d063__button[disabled]{cursor:default;opacity:.4}._1563c8aa5e21d063__button:hover:not([disabled]):not([aria-disabled=true]){color:var(--wp-components-color-foreground,var(--wpds-color-foreground-content-neutral,#1e1e1e))}.e1b6a1f76b7eb2bb__is-deselectable:focus{--focus-color:var(--wpds-color-stroke-focus,var(--wp-admin-theme-color,#3858e9));outline:var(--wpds-border-width-focus,var(--wp-admin-border-width-focus,2px)) solid var(--focus-color);outline-color:var(--wp-components-color-accent,var(--wpds-color-stroke-focus,var(--wp-admin-theme-color,#3858e9)));outline-offset:var(--wpds-border-width-focus,var(--wp-admin-border-width-focus,2px))}.e1b6a1f76b7eb2bb__is-deselectable:focus[aria-pressed=false]{background:var(--wp-components-color-background,var(--wpds-color-background-surface-neutral-strong,#fff));box-shadow:0 0 0 2px var(--wp-components-color-background,var(--wpds-color-background-surface-neutral-strong,#fff))}._407216dd3e301287__is-icon{aspect-ratio:1;height:38px;padding:0}._617c0f0a1c161590__is-pressed{color:var(--wp-components-color-foreground,var(--wpds-color-foreground-content-neutral,#1e1e1e));font-weight:var(--wpds-typography-font-weight-emphasis,600)}._2850882d974e5419__button-content{display:flex;font-size:var(--wpds-typography-font-size-md,13px);line-height:1}\");\n}\nexport default {\"label\":\"_1dec843460a3c9d5__label\",\"label-block\":\"_50ddec5669c9d4a6__label-block\",\"button\":\"_1563c8aa5e21d063__button\",\"is-deselectable\":\"e1b6a1f76b7eb2bb__is-deselectable\",\"is-icon\":\"_407216dd3e301287__is-icon\",\"is-pressed\":\"_617c0f0a1c161590__is-pressed\",\"button-content\":\"_2850882d974e5419__button-content\"};\n"],
5
+ "mappings": "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",
6
+ "names": ["import_context", "_jsx", "Tooltip", "_Fragment", "clsx"]
7
7
  }
@@ -39,7 +39,9 @@ var import_context = require("../context.cjs");
39
39
  var import_hook = require("./hook.cjs");
40
40
  var import_grid = require("../../grid/index.cjs");
41
41
  var import_context2 = require("../../context/index.cjs");
42
+ var import_space = require("../../utils/space.cjs");
42
43
  var import_jsx_runtime = require("react/jsx-runtime");
44
+ var TOOLS_PANEL_GAP = (0, import_space.space)(4);
43
45
  var UnconnectedToolsPanel = (props, forwardedRef) => {
44
46
  const {
45
47
  children,
@@ -54,6 +56,10 @@ var UnconnectedToolsPanel = (props, forwardedRef) => {
54
56
  return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_grid.Grid, {
55
57
  ...toolsPanelProps,
56
58
  columns: 2,
59
+ gap: 4,
60
+ columnGap: TOOLS_PANEL_GAP,
61
+ rowGap: TOOLS_PANEL_GAP,
62
+ templateColumns: "repeat( 2, minmax(0, 1fr) )",
57
63
  ref: forwardedRef,
58
64
  children: /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_context.ToolsPanelContext.Provider, {
59
65
  value: panelContext,
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../../src/tools-panel/tools-panel/component.tsx"],
4
- "sourcesContent": ["/**\n * External dependencies\n */\n\n/**\n * Internal dependencies\n */\nimport ToolsPanelHeader from '../tools-panel-header';\nimport { ToolsPanelContext } from '../context';\nimport { useToolsPanel } from './hook';\nimport { Grid } from '../../grid';\nimport { contextConnect } from '../../context';\nimport { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nconst UnconnectedToolsPanel = (props, forwardedRef) => {\n const {\n children,\n label,\n panelContext,\n resetAllItems,\n toggleItem,\n headingLevel,\n dropdownMenuProps,\n ...toolsPanelProps\n } = useToolsPanel(props);\n return /*#__PURE__*/_jsx(Grid, {\n ...toolsPanelProps,\n columns: 2,\n ref: forwardedRef,\n children: /*#__PURE__*/_jsxs(ToolsPanelContext.Provider, {\n value: panelContext,\n children: [/*#__PURE__*/_jsx(ToolsPanelHeader, {\n label: label,\n resetAll: resetAllItems,\n toggleItem: toggleItem,\n headingLevel: headingLevel,\n dropdownMenuProps: dropdownMenuProps\n }), children]\n })\n });\n};\n\n/**\n * The `ToolsPanel` is a container component that displays its children preceded\n * by a header. The header includes a dropdown menu which is automatically\n * generated from the panel's inner `ToolsPanelItems`.\n *\n * ```jsx\n * import { __ } from '@wordpress/i18n';\n * import {\n * __experimentalToolsPanel as ToolsPanel,\n * __experimentalToolsPanelItem as ToolsPanelItem,\n * __experimentalUnitControl as UnitControl\n * } from '@wordpress/components';\n *\n * function Example() {\n * const [ height, setHeight ] = useState();\n * const [ width, setWidth ] = useState();\n *\n * const resetAll = () => {\n * setHeight();\n * setWidth();\n * }\n *\n * return (\n * <ToolsPanel label={ __( 'Dimensions' ) } resetAll={ resetAll }>\n * <ToolsPanelItem\n * hasValue={ () => !! height }\n * label={ __( 'Height' ) }\n * onDeselect={ () => setHeight() }\n * >\n * <UnitControl\n * label={ __( 'Height' ) }\n * onChange={ setHeight }\n * value={ height }\n * />\n * </ToolsPanelItem>\n * <ToolsPanelItem\n * hasValue={ () => !! width }\n * label={ __( 'Width' ) }\n * onDeselect={ () => setWidth() }\n * >\n * <UnitControl\n * label={ __( 'Width' ) }\n * onChange={ setWidth }\n * value={ width }\n * />\n * </ToolsPanelItem>\n * </ToolsPanel>\n * );\n * }\n * ```\n */\nexport const ToolsPanel = contextConnect(UnconnectedToolsPanel, 'ToolsPanel');\nexport default ToolsPanel;"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAOA,gCAA6B;AAC7B,qBAAkC;AAClC,kBAA8B;AAC9B,kBAAqB;AACrB,IAAAA,kBAA+B;AAC/B,yBAA2C;AAC3C,IAAM,wBAAwB,CAAC,OAAO,iBAAiB;AACrD,QAAM;AAAA,IACJ;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA,GAAG;AAAA,EACL,QAAI,2BAAc,KAAK;AACvB,SAAoB,uCAAAC,KAAK,kBAAM;AAAA,IAC7B,GAAG;AAAA,IACH,SAAS;AAAA,IACT,KAAK;AAAA,IACL,UAAuB,uCAAAC,MAAM,iCAAkB,UAAU;AAAA,MACvD,OAAO;AAAA,MACP,UAAU,CAAc,uCAAAD,KAAK,0BAAAE,SAAkB;AAAA,QAC7C;AAAA,QACA,UAAU;AAAA,QACV;AAAA,QACA;AAAA,QACA;AAAA,MACF,CAAC,GAAG,QAAQ;AAAA,IACd,CAAC;AAAA,EACH,CAAC;AACH;AAqDO,IAAM,iBAAa,gCAAe,uBAAuB,YAAY;AAC5E,IAAO,oBAAQ;",
4
+ "sourcesContent": ["/**\n * External dependencies\n */\n\n/**\n * Internal dependencies\n */\nimport ToolsPanelHeader from '../tools-panel-header';\nimport { ToolsPanelContext } from '../context';\nimport { useToolsPanel } from './hook';\nimport { Grid } from '../../grid';\nimport { contextConnect } from '../../context';\nimport { space } from '../../utils/space';\nimport { jsx as _jsx, jsxs as _jsxs } from \"react/jsx-runtime\";\nconst TOOLS_PANEL_GAP = space(4);\nconst UnconnectedToolsPanel = (props, forwardedRef) => {\n const {\n children,\n label,\n panelContext,\n resetAllItems,\n toggleItem,\n headingLevel,\n dropdownMenuProps,\n ...toolsPanelProps\n } = useToolsPanel(props);\n return /*#__PURE__*/_jsx(Grid, {\n ...toolsPanelProps,\n columns: 2,\n gap: 4,\n columnGap: TOOLS_PANEL_GAP,\n rowGap: TOOLS_PANEL_GAP,\n templateColumns: \"repeat( 2, minmax(0, 1fr) )\",\n ref: forwardedRef,\n children: /*#__PURE__*/_jsxs(ToolsPanelContext.Provider, {\n value: panelContext,\n children: [/*#__PURE__*/_jsx(ToolsPanelHeader, {\n label: label,\n resetAll: resetAllItems,\n toggleItem: toggleItem,\n headingLevel: headingLevel,\n dropdownMenuProps: dropdownMenuProps\n }), children]\n })\n });\n};\n\n/**\n * The `ToolsPanel` is a container component that displays its children preceded\n * by a header. The header includes a dropdown menu which is automatically\n * generated from the panel's inner `ToolsPanelItems`.\n *\n * ```jsx\n * import { __ } from '@wordpress/i18n';\n * import {\n * __experimentalToolsPanel as ToolsPanel,\n * __experimentalToolsPanelItem as ToolsPanelItem,\n * __experimentalUnitControl as UnitControl\n * } from '@wordpress/components';\n *\n * function Example() {\n * const [ height, setHeight ] = useState();\n * const [ width, setWidth ] = useState();\n *\n * const resetAll = () => {\n * setHeight();\n * setWidth();\n * }\n *\n * return (\n * <ToolsPanel label={ __( 'Dimensions' ) } resetAll={ resetAll }>\n * <ToolsPanelItem\n * hasValue={ () => !! height }\n * label={ __( 'Height' ) }\n * onDeselect={ () => setHeight() }\n * >\n * <UnitControl\n * label={ __( 'Height' ) }\n * onChange={ setHeight }\n * value={ height }\n * />\n * </ToolsPanelItem>\n * <ToolsPanelItem\n * hasValue={ () => !! width }\n * label={ __( 'Width' ) }\n * onDeselect={ () => setWidth() }\n * >\n * <UnitControl\n * label={ __( 'Width' ) }\n * onChange={ setWidth }\n * value={ width }\n * />\n * </ToolsPanelItem>\n * </ToolsPanel>\n * );\n * }\n * ```\n */\nexport const ToolsPanel = contextConnect(UnconnectedToolsPanel, 'ToolsPanel');\nexport default ToolsPanel;"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAOA,gCAA6B;AAC7B,qBAAkC;AAClC,kBAA8B;AAC9B,kBAAqB;AACrB,IAAAA,kBAA+B;AAC/B,mBAAsB;AACtB,yBAA2C;AAC3C,IAAM,sBAAkB,oBAAM,CAAC;AAC/B,IAAM,wBAAwB,CAAC,OAAO,iBAAiB;AACrD,QAAM;AAAA,IACJ;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA;AAAA,IACA,GAAG;AAAA,EACL,QAAI,2BAAc,KAAK;AACvB,SAAoB,uCAAAC,KAAK,kBAAM;AAAA,IAC7B,GAAG;AAAA,IACH,SAAS;AAAA,IACT,KAAK;AAAA,IACL,WAAW;AAAA,IACX,QAAQ;AAAA,IACR,iBAAiB;AAAA,IACjB,KAAK;AAAA,IACL,UAAuB,uCAAAC,MAAM,iCAAkB,UAAU;AAAA,MACvD,OAAO;AAAA,MACP,UAAU,CAAc,uCAAAD,KAAK,0BAAAE,SAAkB;AAAA,QAC7C;AAAA,QACA,UAAU;AAAA,QACV;AAAA,QACA;AAAA,QACA;AAAA,MACF,CAAC,GAAG,QAAQ;AAAA,IACd,CAAC;AAAA,EACH,CAAC;AACH;AAqDO,IAAM,iBAAa,gCAAe,uBAAuB,YAAY;AAC5E,IAAO,oBAAQ;",
6
6
  "names": ["import_context", "_jsx", "_jsxs", "ToolsPanelHeader"]
7
7
  }
@@ -33,11 +33,94 @@ __export(hook_exports, {
33
33
  useToolsPanel: () => useToolsPanel
34
34
  });
35
35
  module.exports = __toCommonJS(hook_exports);
36
+ var import_clsx = __toESM(require("clsx"));
36
37
  var import_element = require("@wordpress/element");
37
- var styles = __toESM(require("../styles.cjs"));
38
+
39
+ // packages/style-runtime/src/index.ts
40
+ var STYLE_HASH_ATTRIBUTE = "data-wp-hash";
41
+ function getRuntime() {
42
+ const globalScope = globalThis;
43
+ if (globalScope.__wpStyleRuntime) {
44
+ return globalScope.__wpStyleRuntime;
45
+ }
46
+ globalScope.__wpStyleRuntime = {
47
+ documents: /* @__PURE__ */ new Map(),
48
+ styles: /* @__PURE__ */ new Map(),
49
+ injectedStyles: /* @__PURE__ */ new WeakMap()
50
+ };
51
+ if (typeof document !== "undefined") {
52
+ registerDocument(document);
53
+ }
54
+ return globalScope.__wpStyleRuntime;
55
+ }
56
+ function documentContainsStyleHash(targetDocument, hash) {
57
+ if (!targetDocument.head) {
58
+ return false;
59
+ }
60
+ for (const style of targetDocument.head.querySelectorAll(`style[${STYLE_HASH_ATTRIBUTE}]`)) {
61
+ if (style.getAttribute(STYLE_HASH_ATTRIBUTE) === hash) {
62
+ return true;
63
+ }
64
+ }
65
+ return false;
66
+ }
67
+ function injectStyle(targetDocument, hash, css) {
68
+ if (!targetDocument.head) {
69
+ return;
70
+ }
71
+ const runtime = getRuntime();
72
+ let injectedStyles = runtime.injectedStyles.get(targetDocument);
73
+ if (!injectedStyles) {
74
+ injectedStyles = /* @__PURE__ */ new Set();
75
+ runtime.injectedStyles.set(targetDocument, injectedStyles);
76
+ }
77
+ if (injectedStyles.has(hash)) {
78
+ return;
79
+ }
80
+ if (documentContainsStyleHash(targetDocument, hash)) {
81
+ injectedStyles.add(hash);
82
+ return;
83
+ }
84
+ const style = targetDocument.createElement("style");
85
+ style.setAttribute(STYLE_HASH_ATTRIBUTE, hash);
86
+ style.appendChild(targetDocument.createTextNode(css));
87
+ targetDocument.head.appendChild(style);
88
+ injectedStyles.add(hash);
89
+ }
90
+ function registerDocument(targetDocument) {
91
+ const runtime = getRuntime();
92
+ runtime.documents.set(targetDocument, (runtime.documents.get(targetDocument) ?? 0) + 1);
93
+ for (const [hash, css] of runtime.styles) {
94
+ injectStyle(targetDocument, hash, css);
95
+ }
96
+ return () => {
97
+ const count = runtime.documents.get(targetDocument);
98
+ if (count === void 0) {
99
+ return;
100
+ }
101
+ if (count <= 1) {
102
+ runtime.documents.delete(targetDocument);
103
+ return;
104
+ }
105
+ runtime.documents.set(targetDocument, count - 1);
106
+ };
107
+ }
108
+ function registerStyle(hash, css) {
109
+ const runtime = getRuntime();
110
+ runtime.styles.set(hash, css);
111
+ for (const targetDocument of runtime.documents.keys()) {
112
+ injectStyle(targetDocument, hash, css);
113
+ }
114
+ }
115
+
116
+ // packages/components/src/tools-panel/style.module.scss
117
+ if (typeof process === "undefined" || process.env.NODE_ENV !== "test") {
118
+ registerStyle("29b739f451", "._62d714739f4dc308__tools-panel{border-top:1px solid #ddd;margin-top:-1px;padding:16px}._40db7f4f897b683d__tools-panel-with-inner-wrapper>div:not(:first-of-type){column-gap:16px;display:grid;grid-column:1/-1;grid-template-columns:repeat(2,minmax(0,1fr));row-gap:16px}._95a15674966f30a3__tools-panel-hidden-inner-wrapper>div:not(:first-of-type){display:none}._322a049b9b7d8674__tools-panel-header{gap:8px;grid-column:1/-1}._322a049b9b7d8674__tools-panel-header .components-dropdown-menu{line-height:0;margin:-4px 0}._322a049b9b7d8674__tools-panel-header._322a049b9b7d8674__tools-panel-header._322a049b9b7d8674__tools-panel-header._322a049b9b7d8674__tools-panel-header .components-dropdown-menu__toggle{min-width:24px;padding:0}.b92a382d3b30104d__tools-panel-heading.b92a382d3b30104d__tools-panel-heading{font-size:inherit;line-height:normal;margin:0}._8005d68fffa9db91__tools-panel-item{grid-column:1/-1}._8005d68fffa9db91__tools-panel-item>div,._8005d68fffa9db91__tools-panel-item>fieldset{margin-bottom:0;max-width:100%;padding-bottom:0}._8005d68fffa9db91__tools-panel-item .components-base-control__help,._8005d68fffa9db91__tools-panel-item._8005d68fffa9db91__tools-panel-item .components-base-control,._8005d68fffa9db91__tools-panel-item._8005d68fffa9db91__tools-panel-item .components-base-control .components-base-control__field:last-child{margin-bottom:0}._4f55e1a6e373746e__tools-panel-item-placeholder{display:none}.d40032517bff9e12__dropdown-menu{min-width:200px}.f135b96aa96ca6bb__reset-label{color:var(--wp-components-color-accent-darker-10,var(--wp-admin-theme-color-darker-10,#2145e6));font-size:var(--wpds-typography-font-size-xs,11px);font-weight:var(--wpds-typography-font-weight-emphasis,600);line-height:1.4;margin-inline-start:12px;text-transform:uppercase}._69b138dfa5570d9c__default-controls-item{color:#1e1e1e}._69b138dfa5570d9c__default-controls-item._69b138dfa5570d9c__default-controls-item[aria-disabled=true]{color:#757575;opacity:1}._69b138dfa5570d9c__default-controls-item._69b138dfa5570d9c__default-controls-item[aria-disabled=true]:hover{color:#757575}._69b138dfa5570d9c__default-controls-item._69b138dfa5570d9c__default-controls-item[aria-disabled=true] .f135b96aa96ca6bb__reset-label{opacity:.3}");
119
+ }
120
+ var style_module_default = { "tools-panel": "_62d714739f4dc308__tools-panel", "tools-panel-with-inner-wrapper": "_40db7f4f897b683d__tools-panel-with-inner-wrapper", "tools-panel-hidden-inner-wrapper": "_95a15674966f30a3__tools-panel-hidden-inner-wrapper", "tools-panel-header": "_322a049b9b7d8674__tools-panel-header", "tools-panel-heading": "b92a382d3b30104d__tools-panel-heading", "tools-panel-item": "_8005d68fffa9db91__tools-panel-item", "tools-panel-item-placeholder": "_4f55e1a6e373746e__tools-panel-item-placeholder", "dropdown-menu": "d40032517bff9e12__dropdown-menu", "reset-label": "f135b96aa96ca6bb__reset-label", "default-controls-item": "_69b138dfa5570d9c__default-controls-item" };
121
+
122
+ // packages/components/src/tools-panel/tools-panel/hook.ts
38
123
  var import_context = require("../../context/index.cjs");
39
- var import_use_cx = require("../../utils/hooks/use-cx.cjs");
40
- var DEFAULT_COLUMNS = 2;
41
124
  function emptyMenuItems() {
42
125
  return {
43
126
  default: {},
@@ -257,14 +340,7 @@ function useToolsPanel(props) {
257
340
  const areAllOptionalControlsHidden = (0, import_element.useMemo)(() => {
258
341
  return isMenuItemTypeEmpty(menuItems.default) && !isMenuItemTypeEmpty(menuItems.optional) && Object.values(menuItems.optional).every((isSelected) => !isSelected);
259
342
  }, [menuItems]);
260
- const cx = (0, import_use_cx.useCx)();
261
- const classes = (0, import_element.useMemo)(() => {
262
- return cx(styles.getToolsPanelStyles({
263
- columns: DEFAULT_COLUMNS,
264
- hasInnerWrapper,
265
- areAllOptionalControlsHidden
266
- }), className);
267
- }, [areAllOptionalControlsHidden, className, cx, hasInnerWrapper]);
343
+ const classes = (0, import_clsx.default)(style_module_default["tools-panel"], hasInnerWrapper && style_module_default["tools-panel-with-inner-wrapper"], areAllOptionalControlsHidden && style_module_default["tools-panel-hidden-inner-wrapper"], className);
268
344
  const toggleItem = (0, import_element.useCallback)((label) => {
269
345
  panelDispatch({
270
346
  type: "TOGGLE_VALUE",