@wordpress/ui 0.9.1-next.v.202603102151.0 → 0.10.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 (529) hide show
  1. package/CHANGELOG.md +42 -1
  2. package/CONTRIBUTING.md +31 -0
  3. package/README.md +106 -0
  4. package/build/alert-dialog/context.cjs +34 -0
  5. package/build/alert-dialog/context.cjs.map +7 -0
  6. package/build/alert-dialog/index.cjs +37 -0
  7. package/build/alert-dialog/index.cjs.map +7 -0
  8. package/build/alert-dialog/popup.cjs +93 -0
  9. package/build/alert-dialog/popup.cjs.map +7 -0
  10. package/build/alert-dialog/root.cjs +52 -0
  11. package/build/alert-dialog/root.cjs.map +7 -0
  12. package/build/alert-dialog/trigger.cjs +48 -0
  13. package/build/alert-dialog/trigger.cjs.map +7 -0
  14. package/build/alert-dialog/types.cjs +19 -0
  15. package/build/alert-dialog/types.cjs.map +7 -0
  16. package/build/badge/badge.cjs +3 -3
  17. package/build/badge/badge.cjs.map +2 -2
  18. package/build/button/button.cjs +9 -9
  19. package/build/button/button.cjs.map +2 -2
  20. package/build/card/content.cjs +3 -3
  21. package/build/card/content.cjs.map +2 -2
  22. package/build/card/full-bleed.cjs +3 -3
  23. package/build/card/full-bleed.cjs.map +2 -2
  24. package/build/card/header.cjs +3 -3
  25. package/build/card/header.cjs.map +2 -2
  26. package/build/card/root.cjs +5 -5
  27. package/build/card/root.cjs.map +2 -2
  28. package/build/card/title.cjs +26 -13
  29. package/build/card/title.cjs.map +3 -3
  30. package/build/collapsible/index.cjs +37 -0
  31. package/build/collapsible/index.cjs.map +7 -0
  32. package/build/collapsible/panel.cjs +38 -0
  33. package/build/collapsible/panel.cjs.map +7 -0
  34. package/build/collapsible/root.cjs +38 -0
  35. package/build/collapsible/root.cjs.map +7 -0
  36. package/build/collapsible/trigger.cjs +38 -0
  37. package/build/collapsible/trigger.cjs.map +7 -0
  38. package/build/collapsible/types.cjs +19 -0
  39. package/build/collapsible/types.cjs.map +7 -0
  40. package/build/collapsible-card/content.cjs +26 -5
  41. package/build/collapsible-card/content.cjs.map +4 -4
  42. package/build/collapsible-card/context.cjs +35 -0
  43. package/build/collapsible-card/context.cjs.map +7 -0
  44. package/build/collapsible-card/header-description.cjs +52 -0
  45. package/build/collapsible-card/header-description.cjs.map +7 -0
  46. package/build/collapsible-card/header.cjs +57 -38
  47. package/build/collapsible-card/header.cjs.map +3 -3
  48. package/build/collapsible-card/index.cjs +3 -0
  49. package/build/collapsible-card/index.cjs.map +2 -2
  50. package/build/collapsible-card/root.cjs +4 -4
  51. package/build/collapsible-card/root.cjs.map +2 -2
  52. package/build/collapsible-card/types.cjs.map +1 -1
  53. package/build/dialog/action.cjs +4 -2
  54. package/build/dialog/action.cjs.map +2 -2
  55. package/build/dialog/close-icon.cjs +2 -1
  56. package/build/dialog/close-icon.cjs.map +2 -2
  57. package/build/dialog/footer.cjs +3 -3
  58. package/build/dialog/footer.cjs.map +2 -2
  59. package/build/dialog/header.cjs +3 -3
  60. package/build/dialog/header.cjs.map +2 -2
  61. package/build/dialog/popup.cjs +22 -5
  62. package/build/dialog/popup.cjs.map +2 -2
  63. package/build/dialog/title.cjs +3 -3
  64. package/build/dialog/title.cjs.map +2 -2
  65. package/build/dialog/types.cjs.map +1 -1
  66. package/build/empty-state/actions.cjs +66 -0
  67. package/build/empty-state/actions.cjs.map +7 -0
  68. package/build/empty-state/description.cjs +66 -0
  69. package/build/empty-state/description.cjs.map +7 -0
  70. package/build/empty-state/icon.cjs +69 -0
  71. package/build/empty-state/icon.cjs.map +7 -0
  72. package/build/empty-state/index.cjs +46 -0
  73. package/build/empty-state/index.cjs.map +7 -0
  74. package/build/empty-state/root.cjs +66 -0
  75. package/build/empty-state/root.cjs.map +7 -0
  76. package/build/empty-state/title.cjs +68 -0
  77. package/build/empty-state/title.cjs.map +7 -0
  78. package/build/empty-state/types.cjs +19 -0
  79. package/build/empty-state/types.cjs.map +7 -0
  80. package/build/empty-state/visual.cjs +66 -0
  81. package/build/empty-state/visual.cjs.map +7 -0
  82. package/build/form/index.cjs +27 -0
  83. package/build/form/index.cjs.map +7 -0
  84. package/build/form/input-control/index.cjs +31 -0
  85. package/build/form/input-control/index.cjs.map +7 -0
  86. package/build/form/input-control/input-control.cjs +50 -0
  87. package/build/form/input-control/input-control.cjs.map +7 -0
  88. package/build/form/input-control/types.cjs +19 -0
  89. package/build/form/input-control/types.cjs.map +7 -0
  90. package/build/form/primitives/field/description.cjs +2 -2
  91. package/build/form/primitives/field/description.cjs.map +1 -1
  92. package/build/form/primitives/field/details.cjs +2 -2
  93. package/build/form/primitives/field/details.cjs.map +1 -1
  94. package/build/form/primitives/field/label.cjs +2 -2
  95. package/build/form/primitives/field/label.cjs.map +1 -1
  96. package/build/form/primitives/field/root.cjs +4 -4
  97. package/build/form/primitives/field/root.cjs.map +2 -2
  98. package/build/form/primitives/fieldset/description.cjs +2 -2
  99. package/build/form/primitives/fieldset/description.cjs.map +1 -1
  100. package/build/form/primitives/fieldset/details.cjs +2 -2
  101. package/build/form/primitives/fieldset/details.cjs.map +1 -1
  102. package/build/form/primitives/fieldset/legend.cjs +2 -2
  103. package/build/form/primitives/fieldset/legend.cjs.map +1 -1
  104. package/build/form/primitives/fieldset/root.cjs +2 -2
  105. package/build/form/primitives/fieldset/root.cjs.map +1 -1
  106. package/build/form/primitives/input/input.cjs +6 -6
  107. package/build/form/primitives/input/input.cjs.map +2 -2
  108. package/build/form/primitives/input-layout/input-layout.cjs +4 -4
  109. package/build/form/primitives/input-layout/input-layout.cjs.map +1 -1
  110. package/build/form/primitives/input-layout/slot.cjs +5 -4
  111. package/build/form/primitives/input-layout/slot.cjs.map +2 -2
  112. package/build/form/primitives/select/item.cjs +5 -5
  113. package/build/form/primitives/select/item.cjs.map +2 -2
  114. package/build/form/primitives/select/popup.cjs +7 -7
  115. package/build/form/primitives/select/popup.cjs.map +2 -2
  116. package/build/form/primitives/select/trigger.cjs +7 -7
  117. package/build/form/primitives/select/trigger.cjs.map +2 -2
  118. package/build/form/primitives/textarea/textarea.cjs +3 -3
  119. package/build/form/primitives/textarea/textarea.cjs.map +2 -2
  120. package/build/form/types.cjs +19 -0
  121. package/build/form/types.cjs.map +7 -0
  122. package/build/icon-button/icon-button.cjs +2 -2
  123. package/build/icon-button/icon-button.cjs.map +1 -1
  124. package/build/index.cjs +11 -2
  125. package/build/index.cjs.map +2 -2
  126. package/build/link/link.cjs +8 -8
  127. package/build/link/link.cjs.map +2 -2
  128. package/build/notice/action-button.cjs +2 -2
  129. package/build/notice/action-button.cjs.map +1 -1
  130. package/build/notice/action-link.cjs +2 -2
  131. package/build/notice/action-link.cjs.map +1 -1
  132. package/build/notice/actions.cjs +2 -2
  133. package/build/notice/actions.cjs.map +1 -1
  134. package/build/notice/close-icon.cjs +2 -2
  135. package/build/notice/close-icon.cjs.map +1 -1
  136. package/build/notice/description.cjs +2 -2
  137. package/build/notice/description.cjs.map +1 -1
  138. package/build/notice/index.cjs.map +1 -1
  139. package/build/notice/root.cjs +4 -4
  140. package/build/notice/root.cjs.map +1 -1
  141. package/build/notice/title.cjs +2 -2
  142. package/build/notice/title.cjs.map +1 -1
  143. package/build/stack/stack.cjs +2 -2
  144. package/build/stack/stack.cjs.map +1 -1
  145. package/build/tabs/context.cjs +121 -0
  146. package/build/tabs/context.cjs.map +7 -0
  147. package/build/tabs/list.cjs +3 -3
  148. package/build/tabs/list.cjs.map +2 -2
  149. package/build/tabs/panel.cjs +5 -3
  150. package/build/tabs/panel.cjs.map +2 -2
  151. package/build/tabs/root.cjs +2 -1
  152. package/build/tabs/root.cjs.map +2 -2
  153. package/build/tabs/tab.cjs +5 -3
  154. package/build/tabs/tab.cjs.map +2 -2
  155. package/build/text/text.cjs +2 -2
  156. package/build/text/text.cjs.map +1 -1
  157. package/build/tooltip/popup.cjs +4 -4
  158. package/build/tooltip/popup.cjs.map +1 -1
  159. package/build/tooltip/root.cjs.map +2 -2
  160. package/build/utils/use-deprioritized-initial-focus.cjs +64 -0
  161. package/build/utils/use-deprioritized-initial-focus.cjs.map +7 -0
  162. package/build/visually-hidden/visually-hidden.cjs +2 -2
  163. package/build/visually-hidden/visually-hidden.cjs.map +1 -1
  164. package/build-module/alert-dialog/context.mjs +9 -0
  165. package/build-module/alert-dialog/context.mjs.map +7 -0
  166. package/build-module/alert-dialog/index.mjs +10 -0
  167. package/build-module/alert-dialog/index.mjs.map +7 -0
  168. package/build-module/alert-dialog/popup.mjs +58 -0
  169. package/build-module/alert-dialog/popup.mjs.map +7 -0
  170. package/build-module/alert-dialog/root.mjs +27 -0
  171. package/build-module/alert-dialog/root.mjs.map +7 -0
  172. package/build-module/alert-dialog/trigger.mjs +13 -0
  173. package/build-module/alert-dialog/trigger.mjs.map +7 -0
  174. package/build-module/alert-dialog/types.mjs +1 -0
  175. package/build-module/alert-dialog/types.mjs.map +7 -0
  176. package/build-module/badge/badge.mjs +3 -3
  177. package/build-module/badge/badge.mjs.map +2 -2
  178. package/build-module/button/button.mjs +9 -9
  179. package/build-module/button/button.mjs.map +2 -2
  180. package/build-module/card/content.mjs +3 -3
  181. package/build-module/card/content.mjs.map +2 -2
  182. package/build-module/card/full-bleed.mjs +3 -3
  183. package/build-module/card/full-bleed.mjs.map +2 -2
  184. package/build-module/card/header.mjs +3 -3
  185. package/build-module/card/header.mjs.map +2 -2
  186. package/build-module/card/root.mjs +5 -5
  187. package/build-module/card/root.mjs.map +2 -2
  188. package/build-module/card/title.mjs +16 -13
  189. package/build-module/card/title.mjs.map +2 -2
  190. package/build-module/collapsible/index.mjs +10 -0
  191. package/build-module/collapsible/index.mjs.map +7 -0
  192. package/build-module/collapsible/panel.mjs +13 -0
  193. package/build-module/collapsible/panel.mjs.map +7 -0
  194. package/build-module/collapsible/root.mjs +13 -0
  195. package/build-module/collapsible/root.mjs.map +7 -0
  196. package/build-module/collapsible/trigger.mjs +13 -0
  197. package/build-module/collapsible/trigger.mjs.map +7 -0
  198. package/build-module/collapsible/types.mjs +1 -0
  199. package/build-module/collapsible/types.mjs.map +7 -0
  200. package/build-module/collapsible-card/content.mjs +25 -4
  201. package/build-module/collapsible-card/content.mjs.map +3 -3
  202. package/build-module/collapsible-card/context.mjs +10 -0
  203. package/build-module/collapsible-card/context.mjs.map +7 -0
  204. package/build-module/collapsible-card/header-description.mjs +27 -0
  205. package/build-module/collapsible-card/header-description.mjs.map +7 -0
  206. package/build-module/collapsible-card/header.mjs +59 -40
  207. package/build-module/collapsible-card/header.mjs.map +3 -3
  208. package/build-module/collapsible-card/index.mjs +2 -0
  209. package/build-module/collapsible-card/index.mjs.map +2 -2
  210. package/build-module/collapsible-card/root.mjs +3 -3
  211. package/build-module/collapsible-card/root.mjs.map +2 -2
  212. package/build-module/dialog/action.mjs +4 -2
  213. package/build-module/dialog/action.mjs.map +2 -2
  214. package/build-module/dialog/close-icon.mjs +2 -1
  215. package/build-module/dialog/close-icon.mjs.map +2 -2
  216. package/build-module/dialog/footer.mjs +3 -3
  217. package/build-module/dialog/footer.mjs.map +2 -2
  218. package/build-module/dialog/header.mjs +3 -3
  219. package/build-module/dialog/header.mjs.map +2 -2
  220. package/build-module/dialog/popup.mjs +22 -5
  221. package/build-module/dialog/popup.mjs.map +2 -2
  222. package/build-module/dialog/title.mjs +3 -3
  223. package/build-module/dialog/title.mjs.map +2 -2
  224. package/build-module/empty-state/actions.mjs +31 -0
  225. package/build-module/empty-state/actions.mjs.map +7 -0
  226. package/build-module/empty-state/description.mjs +31 -0
  227. package/build-module/empty-state/description.mjs.map +7 -0
  228. package/build-module/empty-state/icon.mjs +34 -0
  229. package/build-module/empty-state/icon.mjs.map +7 -0
  230. package/build-module/empty-state/index.mjs +16 -0
  231. package/build-module/empty-state/index.mjs.map +7 -0
  232. package/build-module/empty-state/root.mjs +31 -0
  233. package/build-module/empty-state/root.mjs.map +7 -0
  234. package/build-module/empty-state/title.mjs +33 -0
  235. package/build-module/empty-state/title.mjs.map +7 -0
  236. package/build-module/empty-state/types.mjs +1 -0
  237. package/build-module/empty-state/types.mjs.map +7 -0
  238. package/build-module/empty-state/visual.mjs +31 -0
  239. package/build-module/empty-state/visual.mjs.map +7 -0
  240. package/build-module/form/index.mjs +4 -0
  241. package/build-module/form/index.mjs.map +7 -0
  242. package/build-module/form/input-control/index.mjs +6 -0
  243. package/build-module/form/input-control/index.mjs.map +7 -0
  244. package/build-module/form/input-control/input-control.mjs +25 -0
  245. package/build-module/form/input-control/input-control.mjs.map +7 -0
  246. package/build-module/form/input-control/types.mjs +1 -0
  247. package/build-module/form/input-control/types.mjs.map +7 -0
  248. package/build-module/form/primitives/field/description.mjs +2 -2
  249. package/build-module/form/primitives/field/description.mjs.map +1 -1
  250. package/build-module/form/primitives/field/details.mjs +2 -2
  251. package/build-module/form/primitives/field/details.mjs.map +1 -1
  252. package/build-module/form/primitives/field/label.mjs +2 -2
  253. package/build-module/form/primitives/field/label.mjs.map +1 -1
  254. package/build-module/form/primitives/field/root.mjs +4 -4
  255. package/build-module/form/primitives/field/root.mjs.map +2 -2
  256. package/build-module/form/primitives/fieldset/description.mjs +2 -2
  257. package/build-module/form/primitives/fieldset/description.mjs.map +1 -1
  258. package/build-module/form/primitives/fieldset/details.mjs +2 -2
  259. package/build-module/form/primitives/fieldset/details.mjs.map +1 -1
  260. package/build-module/form/primitives/fieldset/legend.mjs +2 -2
  261. package/build-module/form/primitives/fieldset/legend.mjs.map +1 -1
  262. package/build-module/form/primitives/fieldset/root.mjs +2 -2
  263. package/build-module/form/primitives/fieldset/root.mjs.map +1 -1
  264. package/build-module/form/primitives/input/input.mjs +6 -6
  265. package/build-module/form/primitives/input/input.mjs.map +2 -2
  266. package/build-module/form/primitives/input-layout/input-layout.mjs +4 -4
  267. package/build-module/form/primitives/input-layout/input-layout.mjs.map +1 -1
  268. package/build-module/form/primitives/input-layout/slot.mjs +5 -4
  269. package/build-module/form/primitives/input-layout/slot.mjs.map +2 -2
  270. package/build-module/form/primitives/select/item.mjs +5 -5
  271. package/build-module/form/primitives/select/item.mjs.map +2 -2
  272. package/build-module/form/primitives/select/popup.mjs +7 -7
  273. package/build-module/form/primitives/select/popup.mjs.map +2 -2
  274. package/build-module/form/primitives/select/trigger.mjs +7 -7
  275. package/build-module/form/primitives/select/trigger.mjs.map +2 -2
  276. package/build-module/form/primitives/textarea/textarea.mjs +3 -3
  277. package/build-module/form/primitives/textarea/textarea.mjs.map +2 -2
  278. package/build-module/form/types.mjs +1 -0
  279. package/build-module/form/types.mjs.map +7 -0
  280. package/build-module/icon-button/icon-button.mjs +2 -2
  281. package/build-module/icon-button/icon-button.mjs.map +1 -1
  282. package/build-module/index.mjs +7 -1
  283. package/build-module/index.mjs.map +2 -2
  284. package/build-module/link/link.mjs +8 -8
  285. package/build-module/link/link.mjs.map +2 -2
  286. package/build-module/notice/action-button.mjs +2 -2
  287. package/build-module/notice/action-button.mjs.map +1 -1
  288. package/build-module/notice/action-link.mjs +2 -2
  289. package/build-module/notice/action-link.mjs.map +1 -1
  290. package/build-module/notice/actions.mjs +2 -2
  291. package/build-module/notice/actions.mjs.map +1 -1
  292. package/build-module/notice/close-icon.mjs +2 -2
  293. package/build-module/notice/close-icon.mjs.map +1 -1
  294. package/build-module/notice/description.mjs +2 -2
  295. package/build-module/notice/description.mjs.map +1 -1
  296. package/build-module/notice/index.mjs.map +1 -1
  297. package/build-module/notice/root.mjs +4 -4
  298. package/build-module/notice/root.mjs.map +1 -1
  299. package/build-module/notice/title.mjs +2 -2
  300. package/build-module/notice/title.mjs.map +1 -1
  301. package/build-module/stack/stack.mjs +2 -2
  302. package/build-module/stack/stack.mjs.map +1 -1
  303. package/build-module/tabs/context.mjs +101 -0
  304. package/build-module/tabs/context.mjs.map +7 -0
  305. package/build-module/tabs/list.mjs +3 -3
  306. package/build-module/tabs/list.mjs.map +2 -2
  307. package/build-module/tabs/panel.mjs +5 -3
  308. package/build-module/tabs/panel.mjs.map +2 -2
  309. package/build-module/tabs/root.mjs +2 -1
  310. package/build-module/tabs/root.mjs.map +2 -2
  311. package/build-module/tabs/tab.mjs +5 -3
  312. package/build-module/tabs/tab.mjs.map +2 -2
  313. package/build-module/text/text.mjs +2 -2
  314. package/build-module/text/text.mjs.map +1 -1
  315. package/build-module/tooltip/popup.mjs +4 -4
  316. package/build-module/tooltip/popup.mjs.map +1 -1
  317. package/build-module/tooltip/root.mjs.map +2 -2
  318. package/build-module/utils/use-deprioritized-initial-focus.mjs +39 -0
  319. package/build-module/utils/use-deprioritized-initial-focus.mjs.map +7 -0
  320. package/build-module/visually-hidden/visually-hidden.mjs +2 -2
  321. package/build-module/visually-hidden/visually-hidden.mjs.map +1 -1
  322. package/build-types/alert-dialog/context.d.ts +8 -0
  323. package/build-types/alert-dialog/context.d.ts.map +1 -0
  324. package/build-types/alert-dialog/index.d.ts +4 -0
  325. package/build-types/alert-dialog/index.d.ts.map +1 -0
  326. package/build-types/alert-dialog/popup.d.ts +4 -0
  327. package/build-types/alert-dialog/popup.d.ts.map +1 -0
  328. package/build-types/alert-dialog/root.d.ts +24 -0
  329. package/build-types/alert-dialog/root.d.ts.map +1 -0
  330. package/build-types/alert-dialog/stories/index.story.d.ts +44 -0
  331. package/build-types/alert-dialog/stories/index.story.d.ts.map +1 -0
  332. package/build-types/alert-dialog/test/index.test.d.ts +2 -0
  333. package/build-types/alert-dialog/test/index.test.d.ts.map +1 -0
  334. package/build-types/alert-dialog/trigger.d.ts +6 -0
  335. package/build-types/alert-dialog/trigger.d.ts.map +1 -0
  336. package/build-types/alert-dialog/types.d.ts +70 -0
  337. package/build-types/alert-dialog/types.d.ts.map +1 -0
  338. package/build-types/card/title.d.ts.map +1 -1
  339. package/build-types/collapsible/index.d.ts +5 -0
  340. package/build-types/collapsible/index.d.ts.map +1 -0
  341. package/build-types/collapsible/panel.d.ts +16 -0
  342. package/build-types/collapsible/panel.d.ts.map +1 -0
  343. package/build-types/collapsible/root.d.ts +15 -0
  344. package/build-types/collapsible/root.d.ts.map +1 -0
  345. package/build-types/collapsible/stories/index.story.d.ts +18 -0
  346. package/build-types/collapsible/stories/index.story.d.ts.map +1 -0
  347. package/build-types/collapsible/test/index.test.d.ts +2 -0
  348. package/build-types/collapsible/test/index.test.d.ts.map +1 -0
  349. package/build-types/collapsible/trigger.d.ts +15 -0
  350. package/build-types/collapsible/trigger.d.ts.map +1 -0
  351. package/build-types/collapsible/types.d.ts +22 -0
  352. package/build-types/collapsible/types.d.ts.map +1 -0
  353. package/build-types/collapsible-card/content.d.ts.map +1 -1
  354. package/build-types/collapsible-card/context.d.ts +4 -0
  355. package/build-types/collapsible-card/context.d.ts.map +1 -0
  356. package/build-types/collapsible-card/header-description.d.ts +15 -0
  357. package/build-types/collapsible-card/header-description.d.ts.map +1 -0
  358. package/build-types/collapsible-card/header.d.ts.map +1 -1
  359. package/build-types/collapsible-card/index.d.ts +2 -1
  360. package/build-types/collapsible-card/index.d.ts.map +1 -1
  361. package/build-types/collapsible-card/stories/index.story.d.ts +10 -0
  362. package/build-types/collapsible-card/stories/index.story.d.ts.map +1 -1
  363. package/build-types/collapsible-card/types.d.ts +21 -0
  364. package/build-types/collapsible-card/types.d.ts.map +1 -1
  365. package/build-types/dialog/action.d.ts.map +1 -1
  366. package/build-types/dialog/close-icon.d.ts.map +1 -1
  367. package/build-types/dialog/popup.d.ts.map +1 -1
  368. package/build-types/dialog/stories/index.story.d.ts +0 -6
  369. package/build-types/dialog/stories/index.story.d.ts.map +1 -1
  370. package/build-types/dialog/types.d.ts +5 -5
  371. package/build-types/dialog/types.d.ts.map +1 -1
  372. package/build-types/empty-state/actions.d.ts +7 -0
  373. package/build-types/empty-state/actions.d.ts.map +1 -0
  374. package/build-types/empty-state/description.d.ts +7 -0
  375. package/build-types/empty-state/description.d.ts.map +1 -0
  376. package/build-types/empty-state/icon.d.ts +7 -0
  377. package/build-types/empty-state/icon.d.ts.map +1 -0
  378. package/build-types/empty-state/index.d.ts +8 -0
  379. package/build-types/empty-state/index.d.ts.map +1 -0
  380. package/build-types/empty-state/root.d.ts +6 -0
  381. package/build-types/empty-state/root.d.ts.map +1 -0
  382. package/build-types/empty-state/stories/index.story.d.ts +8 -0
  383. package/build-types/empty-state/stories/index.story.d.ts.map +1 -0
  384. package/build-types/empty-state/test/actions.test.d.ts +2 -0
  385. package/build-types/empty-state/test/actions.test.d.ts.map +1 -0
  386. package/build-types/empty-state/test/description.test.d.ts +2 -0
  387. package/build-types/empty-state/test/description.test.d.ts.map +1 -0
  388. package/build-types/empty-state/test/icon.test.d.ts +2 -0
  389. package/build-types/empty-state/test/icon.test.d.ts.map +1 -0
  390. package/build-types/empty-state/test/root.test.d.ts +2 -0
  391. package/build-types/empty-state/test/root.test.d.ts.map +1 -0
  392. package/build-types/empty-state/test/title.test.d.ts +2 -0
  393. package/build-types/empty-state/test/title.test.d.ts.map +1 -0
  394. package/build-types/empty-state/test/visual.test.d.ts +2 -0
  395. package/build-types/empty-state/test/visual.test.d.ts.map +1 -0
  396. package/build-types/empty-state/title.d.ts +6 -0
  397. package/build-types/empty-state/title.d.ts.map +1 -0
  398. package/build-types/empty-state/types.d.ts +40 -0
  399. package/build-types/empty-state/types.d.ts.map +1 -0
  400. package/build-types/empty-state/visual.d.ts +7 -0
  401. package/build-types/empty-state/visual.d.ts.map +1 -0
  402. package/build-types/form/index.d.ts +3 -0
  403. package/build-types/form/index.d.ts.map +1 -0
  404. package/build-types/form/input-control/index.d.ts +2 -0
  405. package/build-types/form/input-control/index.d.ts.map +1 -0
  406. package/build-types/form/input-control/input-control.d.ts +6 -0
  407. package/build-types/form/input-control/input-control.d.ts.map +1 -0
  408. package/build-types/form/input-control/stories/index.story.d.ts +16 -0
  409. package/build-types/form/input-control/stories/index.story.d.ts.map +1 -0
  410. package/build-types/form/input-control/test/index.test.d.ts +2 -0
  411. package/build-types/form/input-control/test/index.test.d.ts.map +1 -0
  412. package/build-types/form/input-control/types.d.ts +4 -0
  413. package/build-types/form/input-control/types.d.ts.map +1 -0
  414. package/build-types/form/primitives/field/stories/index.story.d.ts.map +1 -1
  415. package/build-types/form/primitives/fieldset/stories/index.story.d.ts.map +1 -1
  416. package/build-types/form/primitives/input/stories/index.story.d.ts +2 -0
  417. package/build-types/form/primitives/input/stories/index.story.d.ts.map +1 -1
  418. package/build-types/form/primitives/input-layout/slot.d.ts.map +1 -1
  419. package/build-types/form/primitives/input-layout/stories/index.story.d.ts +5 -0
  420. package/build-types/form/primitives/input-layout/stories/index.story.d.ts.map +1 -1
  421. package/build-types/form/stories/shared.d.ts +3 -0
  422. package/build-types/form/stories/shared.d.ts.map +1 -0
  423. package/build-types/form/types.d.ts +30 -0
  424. package/build-types/form/types.d.ts.map +1 -0
  425. package/build-types/index.d.ts +4 -1
  426. package/build-types/index.d.ts.map +1 -1
  427. package/build-types/notice/index.d.ts +0 -1
  428. package/build-types/notice/index.d.ts.map +1 -1
  429. package/build-types/tabs/context.d.ts +26 -0
  430. package/build-types/tabs/context.d.ts.map +1 -0
  431. package/build-types/tabs/panel.d.ts.map +1 -1
  432. package/build-types/tabs/root.d.ts.map +1 -1
  433. package/build-types/tabs/tab.d.ts.map +1 -1
  434. package/build-types/tooltip/root.d.ts +12 -0
  435. package/build-types/tooltip/root.d.ts.map +1 -1
  436. package/build-types/tooltip/stories/index.story.d.ts.map +1 -1
  437. package/build-types/utils/test/use-deprioritized-initial-focus.test.d.ts +2 -0
  438. package/build-types/utils/test/use-deprioritized-initial-focus.test.d.ts.map +1 -0
  439. package/build-types/utils/use-deprioritized-initial-focus.d.ts +35 -0
  440. package/build-types/utils/use-deprioritized-initial-focus.d.ts.map +1 -0
  441. package/package.json +17 -16
  442. package/src/alert-dialog/context.tsx +14 -0
  443. package/src/alert-dialog/index.ts +3 -0
  444. package/src/alert-dialog/popup.tsx +58 -0
  445. package/src/alert-dialog/root.tsx +48 -0
  446. package/src/alert-dialog/stories/index.story.tsx +254 -0
  447. package/src/alert-dialog/style.module.css +10 -0
  448. package/src/alert-dialog/test/index.test.tsx +537 -0
  449. package/src/alert-dialog/trigger.tsx +15 -0
  450. package/src/alert-dialog/types.ts +83 -0
  451. package/src/badge/style.module.css +5 -2
  452. package/src/button/style.module.css +2 -0
  453. package/src/card/stories/index.story.tsx +1 -1
  454. package/src/card/style.module.css +5 -7
  455. package/src/card/title.tsx +12 -11
  456. package/src/collapsible/index.ts +5 -0
  457. package/src/collapsible/panel.tsx +16 -0
  458. package/src/collapsible/root.tsx +15 -0
  459. package/src/collapsible/stories/index.story.tsx +108 -0
  460. package/src/collapsible/test/index.test.tsx +228 -0
  461. package/src/collapsible/trigger.tsx +15 -0
  462. package/src/collapsible/types.ts +24 -0
  463. package/src/collapsible-card/content.tsx +17 -4
  464. package/src/collapsible-card/context.ts +7 -0
  465. package/src/collapsible-card/header-description.tsx +43 -0
  466. package/src/collapsible-card/header.tsx +50 -45
  467. package/src/collapsible-card/index.ts +2 -1
  468. package/src/collapsible-card/root.tsx +1 -1
  469. package/src/collapsible-card/stories/index.story.tsx +99 -1
  470. package/src/collapsible-card/style.module.css +49 -4
  471. package/src/collapsible-card/test/index.test.tsx +107 -40
  472. package/src/collapsible-card/types.ts +22 -0
  473. package/src/dialog/action.tsx +8 -2
  474. package/src/dialog/close-icon.tsx +1 -0
  475. package/src/dialog/popup.tsx +21 -2
  476. package/src/dialog/stories/index.story.tsx +0 -28
  477. package/src/dialog/style.module.css +5 -5
  478. package/src/dialog/test/index.test.tsx +117 -0
  479. package/src/dialog/types.ts +11 -5
  480. package/src/empty-state/actions.tsx +24 -0
  481. package/src/empty-state/description.tsx +27 -0
  482. package/src/empty-state/icon.tsx +24 -0
  483. package/src/empty-state/index.ts +8 -0
  484. package/src/empty-state/root.tsx +23 -0
  485. package/src/empty-state/stories/index.story.tsx +64 -0
  486. package/src/empty-state/style.module.css +53 -0
  487. package/src/empty-state/test/actions.test.tsx +18 -0
  488. package/src/empty-state/test/description.test.tsx +13 -0
  489. package/src/empty-state/test/icon.test.tsx +13 -0
  490. package/src/empty-state/test/root.test.tsx +13 -0
  491. package/src/empty-state/test/title.test.tsx +13 -0
  492. package/src/empty-state/test/visual.test.tsx +17 -0
  493. package/src/empty-state/title.tsx +23 -0
  494. package/src/empty-state/types.ts +45 -0
  495. package/src/empty-state/visual.tsx +24 -0
  496. package/src/form/index.ts +3 -0
  497. package/src/form/input-control/index.ts +1 -0
  498. package/src/form/input-control/input-control.tsx +33 -0
  499. package/src/form/input-control/stories/index.story.tsx +163 -0
  500. package/src/form/input-control/test/index.test.tsx +53 -0
  501. package/src/form/input-control/types.ts +5 -0
  502. package/src/form/primitives/field/root.tsx +2 -2
  503. package/src/form/primitives/field/stories/index.story.tsx +2 -7
  504. package/src/form/primitives/fieldset/stories/index.story.tsx +2 -7
  505. package/src/form/primitives/input/stories/index.story.tsx +7 -0
  506. package/src/form/primitives/input-layout/slot.tsx +6 -2
  507. package/src/form/primitives/input-layout/stories/index.story.tsx +22 -1
  508. package/src/form/primitives/stories/overview.mdx +15 -0
  509. package/src/form/primitives/textarea/textarea.tsx +1 -1
  510. package/src/form/stories/shared.tsx +19 -0
  511. package/src/form/types.ts +34 -0
  512. package/src/index.ts +4 -1
  513. package/src/notice/index.ts +0 -2
  514. package/src/notice/style.module.css +1 -1
  515. package/src/tabs/context.tsx +170 -0
  516. package/src/tabs/panel.tsx +3 -0
  517. package/src/tabs/root.tsx +6 -1
  518. package/src/tabs/style.module.css +1 -1
  519. package/src/tabs/tab.tsx +3 -0
  520. package/src/tabs/test/index.test.tsx +162 -0
  521. package/src/tooltip/root.tsx +12 -0
  522. package/src/tooltip/stories/index.story.tsx +20 -15
  523. package/src/utils/css/focus.module.css +4 -2
  524. package/src/utils/css/item-popup.module.css +1 -0
  525. package/src/utils/css/select-trigger.module.css +1 -0
  526. package/src/utils/test/use-deprioritized-initial-focus.test.tsx +230 -0
  527. package/src/utils/use-deprioritized-initial-focus.ts +83 -0
  528. package/AGENTS.md +0 -9
  529. package/CLAUDE.md +0 -1
@@ -0,0 +1,38 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: true });
9
+ };
10
+ var __copyProps = (to, from, except, desc) => {
11
+ if (from && typeof from === "object" || typeof from === "function") {
12
+ for (let key of __getOwnPropNames(from))
13
+ if (!__hasOwnProp.call(to, key) && key !== except)
14
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
+ }
16
+ return to;
17
+ };
18
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+
20
+ // packages/ui/src/collapsible/root.tsx
21
+ var root_exports = {};
22
+ __export(root_exports, {
23
+ Root: () => Root
24
+ });
25
+ module.exports = __toCommonJS(root_exports);
26
+ var import_collapsible = require("@base-ui/react/collapsible");
27
+ var import_element = require("@wordpress/element");
28
+ var import_jsx_runtime = require("react/jsx-runtime");
29
+ var Root = (0, import_element.forwardRef)(
30
+ function CollapsibleRoot(props, forwardedRef) {
31
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_collapsible.Collapsible.Root, { ref: forwardedRef, ...props });
32
+ }
33
+ );
34
+ // Annotate the CommonJS export names for ESM import in node:
35
+ 0 && (module.exports = {
36
+ Root
37
+ });
38
+ //# sourceMappingURL=root.cjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/collapsible/root.tsx"],
4
+ "sourcesContent": ["import { Collapsible as _Collapsible } from '@base-ui/react/collapsible';\nimport { forwardRef } from '@wordpress/element';\nimport type { RootProps } from './types';\n\n/**\n * Groups all parts of the collapsible.\n *\n * `Collapsible` is a collection of React components that combine to render\n * a collapsible panel controlled by a button.\n */\nexport const Root = forwardRef< HTMLDivElement, RootProps >(\n\tfunction CollapsibleRoot( props, forwardedRef ) {\n\t\treturn <_Collapsible.Root ref={ forwardedRef } { ...props } />;\n\t}\n);\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,yBAA4C;AAC5C,qBAA2B;AAWlB;AAFF,IAAM,WAAO;AAAA,EACnB,SAAS,gBAAiB,OAAO,cAAe;AAC/C,WAAO,4CAAC,mBAAAA,YAAa,MAAb,EAAkB,KAAM,cAAiB,GAAG,OAAQ;AAAA,EAC7D;AACD;",
6
+ "names": ["_Collapsible"]
7
+ }
@@ -0,0 +1,38 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: true });
9
+ };
10
+ var __copyProps = (to, from, except, desc) => {
11
+ if (from && typeof from === "object" || typeof from === "function") {
12
+ for (let key of __getOwnPropNames(from))
13
+ if (!__hasOwnProp.call(to, key) && key !== except)
14
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
+ }
16
+ return to;
17
+ };
18
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+
20
+ // packages/ui/src/collapsible/trigger.tsx
21
+ var trigger_exports = {};
22
+ __export(trigger_exports, {
23
+ Trigger: () => Trigger
24
+ });
25
+ module.exports = __toCommonJS(trigger_exports);
26
+ var import_collapsible = require("@base-ui/react/collapsible");
27
+ var import_element = require("@wordpress/element");
28
+ var import_jsx_runtime = require("react/jsx-runtime");
29
+ var Trigger = (0, import_element.forwardRef)(
30
+ function CollapsibleTrigger(props, forwardedRef) {
31
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_collapsible.Collapsible.Trigger, { ref: forwardedRef, ...props });
32
+ }
33
+ );
34
+ // Annotate the CommonJS export names for ESM import in node:
35
+ 0 && (module.exports = {
36
+ Trigger
37
+ });
38
+ //# sourceMappingURL=trigger.cjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/collapsible/trigger.tsx"],
4
+ "sourcesContent": ["import { Collapsible as _Collapsible } from '@base-ui/react/collapsible';\nimport { forwardRef } from '@wordpress/element';\nimport type { TriggerProps } from './types';\n\n/**\n * A button that opens and closes the collapsible panel.\n *\n * `Collapsible` is a collection of React components that combine to render\n * a collapsible panel controlled by a button.\n */\nexport const Trigger = forwardRef< HTMLButtonElement, TriggerProps >(\n\tfunction CollapsibleTrigger( props, forwardedRef ) {\n\t\treturn <_Collapsible.Trigger ref={ forwardedRef } { ...props } />;\n\t}\n);\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,yBAA4C;AAC5C,qBAA2B;AAWlB;AAFF,IAAM,cAAU;AAAA,EACtB,SAAS,mBAAoB,OAAO,cAAe;AAClD,WAAO,4CAAC,mBAAAA,YAAa,SAAb,EAAqB,KAAM,cAAiB,GAAG,OAAQ;AAAA,EAChE;AACD;",
6
+ "names": ["_Collapsible"]
7
+ }
@@ -0,0 +1,19 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __copyProps = (to, from, except, desc) => {
7
+ if (from && typeof from === "object" || typeof from === "function") {
8
+ for (let key of __getOwnPropNames(from))
9
+ if (!__hasOwnProp.call(to, key) && key !== except)
10
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
11
+ }
12
+ return to;
13
+ };
14
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
15
+
16
+ // packages/ui/src/collapsible/types.ts
17
+ var types_exports = {};
18
+ module.exports = __toCommonJS(types_exports);
19
+ //# sourceMappingURL=types.cjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/collapsible/types.ts"],
4
+ "sourcesContent": ["import type { ReactNode } from 'react';\nimport type { Collapsible as _Collapsible } from '@base-ui/react/collapsible';\nimport type { ComponentProps } from '../utils/types';\n\nexport type RootProps = ComponentProps< typeof _Collapsible.Root > & {\n\t/**\n\t * The content to be rendered inside the component.\n\t */\n\tchildren?: ReactNode;\n};\n\nexport type TriggerProps = ComponentProps< typeof _Collapsible.Trigger > & {\n\t/**\n\t * The content to be rendered inside the component.\n\t */\n\tchildren?: ReactNode;\n};\n\nexport type PanelProps = ComponentProps< typeof _Collapsible.Panel > & {\n\t/**\n\t * The content to be rendered inside the component.\n\t */\n\tchildren?: ReactNode;\n};\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;AAAA;AAAA;",
6
+ "names": []
7
+ }
@@ -33,18 +33,39 @@ __export(content_exports, {
33
33
  Content: () => Content2
34
34
  });
35
35
  module.exports = __toCommonJS(content_exports);
36
- var import_collapsible = require("@base-ui/react/collapsible");
37
36
  var import_element = require("@wordpress/element");
37
+ var import_clsx = __toESM(require("clsx"));
38
38
  var Card = __toESM(require("../card/index.cjs"));
39
+ var Collapsible = __toESM(require("../collapsible/index.cjs"));
40
+
41
+ // packages/ui/src/collapsible-card/style.module.css
42
+ if (typeof document !== "undefined" && process.env.NODE_ENV !== "test" && !document.head.querySelector("style[data-wp-hash='23250ec980']")) {
43
+ const style = document.createElement("style");
44
+ style.setAttribute("data-wp-hash", "23250ec980");
45
+ style.appendChild(document.createTextNode("@layer wp-ui-utilities, wp-ui-components, wp-ui-compositions, wp-ui-overrides;@layer wp-ui-components{.cab17c7a373cb60d__header-content{flex:1;min-width:0}.dd89d27c4f15912d__header-trigger-positioner{align-self:center;flex-shrink:0;max-height:0;overflow:visible}.bcfab5f2448bafef__header-trigger-wrapper{border-radius:var(--wpds-border-radius-sm,2px);display:flex;translate:0 -50%}._3106f8d2b0330faa__header-trigger{@media not (prefers-reduced-motion){transition:rotate .15s ease-out}}._5d2dfcb4085c6d0f__header[data-panel-open] ._3106f8d2b0330faa__header-trigger{rotate:180deg}._5d2dfcb4085c6d0f__header[data-disabled] ._3106f8d2b0330faa__header-trigger{color:var(--wpds-color-fg-interactive-neutral-disabled,#8a8a8a)}.e34cf37ccd0d81e0__content{height:var(--collapsible-panel-height);margin-block-start:var(--wp-ui-card-header-content-margin);overflow:hidden;&[hidden]:not([hidden=until-found]){display:none}&[data-ending-style],&[data-starting-style]{height:0}@media not (prefers-reduced-motion){transition:all .15s ease-out}}}@layer wp-ui-compositions{._41bfdbf7b6c087c2__content-inner{padding-block-start:0}._5d2dfcb4085c6d0f__header{align-items:stretch;display:flex;flex-direction:row;gap:var(--wpds-dimension-gap-sm,8px);outline:none;&:not([data-disabled]){cursor:var(--wpds-cursor-control,pointer)}}}"));
46
+ document.head.appendChild(style);
47
+ }
48
+ var style_default = { "header-content": "cab17c7a373cb60d__header-content", "header-trigger-positioner": "dd89d27c4f15912d__header-trigger-positioner", "header-trigger-wrapper": "bcfab5f2448bafef__header-trigger-wrapper", "header-trigger": "_3106f8d2b0330faa__header-trigger", "header": "_5d2dfcb4085c6d0f__header", "content": "e34cf37ccd0d81e0__content", "content-inner": "_41bfdbf7b6c087c2__content-inner" };
49
+
50
+ // packages/ui/src/collapsible-card/content.tsx
39
51
  var import_jsx_runtime = require("react/jsx-runtime");
40
52
  var Content2 = (0, import_element.forwardRef)(
41
- function CollapsibleCardContent({ render, ...restProps }, ref) {
53
+ function CollapsibleCardContent({ className, render, children, hiddenUntilFound = true, ...restProps }, ref) {
42
54
  return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
43
- import_collapsible.Collapsible.Panel,
55
+ Collapsible.Panel,
44
56
  {
45
57
  ref,
46
- render: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Card.Content, { render }),
47
- ...restProps
58
+ className: (0, import_clsx.default)(style_default.content, className),
59
+ hiddenUntilFound,
60
+ ...restProps,
61
+ children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
62
+ Card.Content,
63
+ {
64
+ className: style_default["content-inner"],
65
+ render,
66
+ children
67
+ }
68
+ )
48
69
  }
49
70
  );
50
71
  }
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
- "sources": ["../../src/collapsible-card/content.tsx"],
4
- "sourcesContent": ["import { Collapsible } from '@base-ui/react/collapsible';\nimport { forwardRef } from '@wordpress/element';\nimport * as Card from '../card';\nimport type { ContentProps } from './types';\n\n/**\n * The collapsible content area of the card. Hidden when collapsed,\n * visible when expanded.\n */\nexport const Content = forwardRef< HTMLDivElement, ContentProps >(\n\tfunction CollapsibleCardContent( { render, ...restProps }, ref ) {\n\t\treturn (\n\t\t\t<Collapsible.Panel\n\t\t\t\tref={ ref }\n\t\t\t\trender={ <Card.Content render={ render } /> }\n\t\t\t\t{ ...restProps }\n\t\t\t/>\n\t\t);\n\t}\n);\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA,iBAAAA;AAAA;AAAA;AAAA,yBAA4B;AAC5B,qBAA2B;AAC3B,WAAsB;AAYT;AALN,IAAMA,eAAU;AAAA,EACtB,SAAS,uBAAwB,EAAE,QAAQ,GAAG,UAAU,GAAG,KAAM;AAChE,WACC;AAAA,MAAC,+BAAY;AAAA,MAAZ;AAAA,QACA;AAAA,QACA,QAAS,4CAAM,cAAL,EAAa,QAAkB;AAAA,QACvC,GAAG;AAAA;AAAA,IACN;AAAA,EAEF;AACD;",
6
- "names": ["Content"]
3
+ "sources": ["../../src/collapsible-card/content.tsx", "../../src/collapsible-card/style.module.css"],
4
+ "sourcesContent": ["import { forwardRef } from '@wordpress/element';\nimport clsx from 'clsx';\nimport * as Card from '../card';\nimport * as Collapsible from '../collapsible';\nimport styles from './style.module.css';\nimport type { ContentProps } from './types';\n\n/**\n * The collapsible content area of the card. Hidden when collapsed,\n * visible when expanded.\n */\nexport const Content = forwardRef< HTMLDivElement, ContentProps >(\n\tfunction CollapsibleCardContent(\n\t\t{ className, render, children, hiddenUntilFound = true, ...restProps },\n\t\tref\n\t) {\n\t\treturn (\n\t\t\t<Collapsible.Panel\n\t\t\t\tref={ ref }\n\t\t\t\tclassName={ clsx( styles.content, className ) }\n\t\t\t\thiddenUntilFound={ hiddenUntilFound }\n\t\t\t\t{ ...restProps }\n\t\t\t>\n\t\t\t\t<Card.Content\n\t\t\t\t\tclassName={ styles[ 'content-inner' ] }\n\t\t\t\t\trender={ render }\n\t\t\t\t>\n\t\t\t\t\t{ children }\n\t\t\t\t</Card.Content>\n\t\t\t</Collapsible.Panel>\n\t\t);\n\t}\n);\n", "if (typeof document !== 'undefined' && process.env.NODE_ENV !== 'test' && !document.head.querySelector(\"style[data-wp-hash='23250ec980']\")) {\n\tconst style = document.createElement(\"style\");\n\tstyle.setAttribute(\"data-wp-hash\", \"23250ec980\");\n\tstyle.appendChild(document.createTextNode(\"@layer wp-ui-utilities, wp-ui-components, wp-ui-compositions, wp-ui-overrides;@layer wp-ui-components{.cab17c7a373cb60d__header-content{flex:1;min-width:0}.dd89d27c4f15912d__header-trigger-positioner{align-self:center;flex-shrink:0;max-height:0;overflow:visible}.bcfab5f2448bafef__header-trigger-wrapper{border-radius:var(--wpds-border-radius-sm,2px);display:flex;translate:0 -50%}._3106f8d2b0330faa__header-trigger{@media not (prefers-reduced-motion){transition:rotate .15s ease-out}}._5d2dfcb4085c6d0f__header[data-panel-open] ._3106f8d2b0330faa__header-trigger{rotate:180deg}._5d2dfcb4085c6d0f__header[data-disabled] ._3106f8d2b0330faa__header-trigger{color:var(--wpds-color-fg-interactive-neutral-disabled,#8a8a8a)}.e34cf37ccd0d81e0__content{height:var(--collapsible-panel-height);margin-block-start:var(--wp-ui-card-header-content-margin);overflow:hidden;&[hidden]:not([hidden=until-found]){display:none}&[data-ending-style],&[data-starting-style]{height:0}@media not (prefers-reduced-motion){transition:all .15s ease-out}}}@layer wp-ui-compositions{._41bfdbf7b6c087c2__content-inner{padding-block-start:0}._5d2dfcb4085c6d0f__header{align-items:stretch;display:flex;flex-direction:row;gap:var(--wpds-dimension-gap-sm,8px);outline:none;&:not([data-disabled]){cursor:var(--wpds-cursor-control,pointer)}}}\"));\n\tdocument.head.appendChild(style);\n}\nexport default {\"header-content\":\"cab17c7a373cb60d__header-content\",\"header-trigger-positioner\":\"dd89d27c4f15912d__header-trigger-positioner\",\"header-trigger-wrapper\":\"bcfab5f2448bafef__header-trigger-wrapper\",\"header-trigger\":\"_3106f8d2b0330faa__header-trigger\",\"header\":\"_5d2dfcb4085c6d0f__header\",\"content\":\"e34cf37ccd0d81e0__content\",\"content-inner\":\"_41bfdbf7b6c087c2__content-inner\"};\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA,iBAAAA;AAAA;AAAA;AAAA,qBAA2B;AAC3B,kBAAiB;AACjB,WAAsB;AACtB,kBAA6B;;;ACH7B,IAAI,OAAO,aAAa,eAAe,QAAQ,IAAI,aAAa,UAAU,CAAC,SAAS,KAAK,cAAc,kCAAkC,GAAG;AAC3I,QAAM,QAAQ,SAAS,cAAc,OAAO;AAC5C,QAAM,aAAa,gBAAgB,YAAY;AAC/C,QAAM,YAAY,SAAS,eAAe,6xCAA6xC,CAAC;AACx0C,WAAS,KAAK,YAAY,KAAK;AAChC;AACA,IAAO,gBAAQ,EAAC,kBAAiB,oCAAmC,6BAA4B,+CAA8C,0BAAyB,4CAA2C,kBAAiB,qCAAoC,UAAS,6BAA4B,WAAU,6BAA4B,iBAAgB,mCAAkC;;;ADiBhY;AAZG,IAAMC,eAAU;AAAA,EACtB,SAAS,uBACR,EAAE,WAAW,QAAQ,UAAU,mBAAmB,MAAM,GAAG,UAAU,GACrE,KACC;AACD,WACC;AAAA,MAAa;AAAA,MAAZ;AAAA,QACA;AAAA,QACA,eAAY,YAAAC,SAAM,cAAO,SAAS,SAAU;AAAA,QAC5C;AAAA,QACE,GAAG;AAAA,QAEL;AAAA,UAAM;AAAA,UAAL;AAAA,YACA,WAAY,cAAQ,eAAgB;AAAA,YACpC;AAAA,YAEE;AAAA;AAAA,QACH;AAAA;AAAA,IACD;AAAA,EAEF;AACD;",
6
+ "names": ["Content", "Content", "clsx"]
7
7
  }
@@ -0,0 +1,35 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: true });
9
+ };
10
+ var __copyProps = (to, from, except, desc) => {
11
+ if (from && typeof from === "object" || typeof from === "function") {
12
+ for (let key of __getOwnPropNames(from))
13
+ if (!__hasOwnProp.call(to, key) && key !== except)
14
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
+ }
16
+ return to;
17
+ };
18
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+
20
+ // packages/ui/src/collapsible-card/context.ts
21
+ var context_exports = {};
22
+ __export(context_exports, {
23
+ HeaderDescriptionIdContext: () => HeaderDescriptionIdContext
24
+ });
25
+ module.exports = __toCommonJS(context_exports);
26
+ var import_element = require("@wordpress/element");
27
+ var HeaderDescriptionIdContext = (0, import_element.createContext)({
28
+ setDescriptionId: () => {
29
+ }
30
+ });
31
+ // Annotate the CommonJS export names for ESM import in node:
32
+ 0 && (module.exports = {
33
+ HeaderDescriptionIdContext
34
+ });
35
+ //# sourceMappingURL=context.cjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/collapsible-card/context.ts"],
4
+ "sourcesContent": ["import { createContext } from '@wordpress/element';\n\nexport const HeaderDescriptionIdContext = createContext< {\n\tsetDescriptionId: ( id: string | undefined ) => void;\n} >( {\n\tsetDescriptionId: () => {},\n} );\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,qBAA8B;AAEvB,IAAM,iCAA6B,8BAErC;AAAA,EACJ,kBAAkB,MAAM;AAAA,EAAC;AAC1B,CAAE;",
6
+ "names": []
7
+ }
@@ -0,0 +1,52 @@
1
+ "use strict";
2
+ var __defProp = Object.defineProperty;
3
+ var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
4
+ var __getOwnPropNames = Object.getOwnPropertyNames;
5
+ var __hasOwnProp = Object.prototype.hasOwnProperty;
6
+ var __export = (target, all) => {
7
+ for (var name in all)
8
+ __defProp(target, name, { get: all[name], enumerable: true });
9
+ };
10
+ var __copyProps = (to, from, except, desc) => {
11
+ if (from && typeof from === "object" || typeof from === "function") {
12
+ for (let key of __getOwnPropNames(from))
13
+ if (!__hasOwnProp.call(to, key) && key !== except)
14
+ __defProp(to, key, { get: () => from[key], enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable });
15
+ }
16
+ return to;
17
+ };
18
+ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: true }), mod);
19
+
20
+ // packages/ui/src/collapsible-card/header-description.tsx
21
+ var header_description_exports = {};
22
+ __export(header_description_exports, {
23
+ HeaderDescription: () => HeaderDescription
24
+ });
25
+ module.exports = __toCommonJS(header_description_exports);
26
+ var import_element = require("@wordpress/element");
27
+ var import_context = require("./context.cjs");
28
+ var import_jsx_runtime = require("react/jsx-runtime");
29
+ var HeaderDescription = (0, import_element.forwardRef)(function CollapsibleCardHeaderDescription({ children, className, ...restProps }, ref) {
30
+ const descriptionId = (0, import_element.useId)();
31
+ const { setDescriptionId } = (0, import_element.useContext)(import_context.HeaderDescriptionIdContext);
32
+ (0, import_element.useEffect)(() => {
33
+ setDescriptionId(descriptionId);
34
+ return () => setDescriptionId(void 0);
35
+ }, [descriptionId, setDescriptionId]);
36
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
37
+ "div",
38
+ {
39
+ ref,
40
+ id: descriptionId,
41
+ "aria-hidden": "true",
42
+ className,
43
+ ...restProps,
44
+ children
45
+ }
46
+ );
47
+ });
48
+ // Annotate the CommonJS export names for ESM import in node:
49
+ 0 && (module.exports = {
50
+ HeaderDescription
51
+ });
52
+ //# sourceMappingURL=header-description.cjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/collapsible-card/header-description.tsx"],
4
+ "sourcesContent": ["import { forwardRef, useContext, useEffect, useId } from '@wordpress/element';\nimport { HeaderDescriptionIdContext } from './context';\nimport type { HeaderDescriptionProps } from './types';\n\n/**\n * Secondary content placed in the collapsible card header that describes\n * the trigger button via `aria-describedby`. Use it for supplementary\n * information such as status badges or summary values.\n *\n * The content is visually rendered but marked `aria-hidden` so that\n * assistive technologies consume it only through the `aria-describedby`\n * relationship on the trigger, avoiding double announcements.\n *\n * Avoid interactive elements (buttons, links, inputs) inside this\n * component \u2014 the entire header is the toggle trigger.\n */\nexport const HeaderDescription = forwardRef<\n\tHTMLDivElement,\n\tHeaderDescriptionProps\n>( function CollapsibleCardHeaderDescription(\n\t{ children, className, ...restProps },\n\tref\n) {\n\tconst descriptionId = useId();\n\tconst { setDescriptionId } = useContext( HeaderDescriptionIdContext );\n\n\tuseEffect( () => {\n\t\tsetDescriptionId( descriptionId );\n\t\treturn () => setDescriptionId( undefined );\n\t}, [ descriptionId, setDescriptionId ] );\n\n\treturn (\n\t\t<div\n\t\t\tref={ ref }\n\t\t\tid={ descriptionId }\n\t\t\taria-hidden=\"true\"\n\t\t\tclassName={ className }\n\t\t\t{ ...restProps }\n\t\t>\n\t\t\t{ children }\n\t\t</div>\n\t);\n} );\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,qBAAyD;AACzD,qBAA2C;AA+BzC;AAhBK,IAAM,wBAAoB,2BAG9B,SAAS,iCACX,EAAE,UAAU,WAAW,GAAG,UAAU,GACpC,KACC;AACD,QAAM,oBAAgB,sBAAM;AAC5B,QAAM,EAAE,iBAAiB,QAAI,2BAAY,yCAA2B;AAEpE,gCAAW,MAAM;AAChB,qBAAkB,aAAc;AAChC,WAAO,MAAM,iBAAkB,MAAU;AAAA,EAC1C,GAAG,CAAE,eAAe,gBAAiB,CAAE;AAEvC,SACC;AAAA,IAAC;AAAA;AAAA,MACA;AAAA,MACA,IAAK;AAAA,MACL,eAAY;AAAA,MACZ;AAAA,MACE,GAAG;AAAA,MAEH;AAAA;AAAA,EACH;AAEF,CAAE;",
6
+ "names": []
7
+ }
@@ -33,68 +33,87 @@ __export(header_exports, {
33
33
  Header: () => Header2
34
34
  });
35
35
  module.exports = __toCommonJS(header_exports);
36
- var import_collapsible = require("@base-ui/react/collapsible");
37
36
  var import_clsx = __toESM(require("clsx"));
38
37
  var import_element = require("@wordpress/element");
39
- var import_i18n = require("@wordpress/i18n");
40
38
  var import_icons = require("@wordpress/icons");
41
39
  var Card = __toESM(require("../card/index.cjs"));
42
- var import_icon_button = require("../icon-button/index.cjs");
40
+ var Collapsible = __toESM(require("../collapsible/index.cjs"));
41
+ var import_icon = require("../icon/index.cjs");
43
42
 
44
43
  // packages/ui/src/collapsible-card/style.module.css
45
- if (typeof document !== "undefined" && process.env.NODE_ENV !== "test" && !document.head.querySelector("style[data-wp-hash='369efd7a16']")) {
44
+ if (typeof document !== "undefined" && process.env.NODE_ENV !== "test" && !document.head.querySelector("style[data-wp-hash='23250ec980']")) {
46
45
  const style = document.createElement("style");
47
- style.setAttribute("data-wp-hash", "369efd7a16");
48
- style.appendChild(document.createTextNode("@layer wp-ui-utilities, wp-ui-components, wp-ui-compositions, wp-ui-overrides;@layer wp-ui-components{.cab17c7a373cb60d__header-content{flex:1;min-width:0}.bcfab5f2448bafef__header-trigger-wrapper{align-self:center;flex-shrink:0;max-height:0;overflow:visible}._3106f8d2b0330faa__header-trigger{transform:translateY(-50%)}}@layer wp-ui-compositions{._5d2dfcb4085c6d0f__header{align-items:stretch;display:flex;flex-direction:row;gap:var(--wpds-dimension-gap-sm,8px);&:has(._3106f8d2b0330faa__header-trigger:not([data-disabled])){cursor:var(--wpds-cursor-control,default)}}}"));
46
+ style.setAttribute("data-wp-hash", "23250ec980");
47
+ style.appendChild(document.createTextNode("@layer wp-ui-utilities, wp-ui-components, wp-ui-compositions, wp-ui-overrides;@layer wp-ui-components{.cab17c7a373cb60d__header-content{flex:1;min-width:0}.dd89d27c4f15912d__header-trigger-positioner{align-self:center;flex-shrink:0;max-height:0;overflow:visible}.bcfab5f2448bafef__header-trigger-wrapper{border-radius:var(--wpds-border-radius-sm,2px);display:flex;translate:0 -50%}._3106f8d2b0330faa__header-trigger{@media not (prefers-reduced-motion){transition:rotate .15s ease-out}}._5d2dfcb4085c6d0f__header[data-panel-open] ._3106f8d2b0330faa__header-trigger{rotate:180deg}._5d2dfcb4085c6d0f__header[data-disabled] ._3106f8d2b0330faa__header-trigger{color:var(--wpds-color-fg-interactive-neutral-disabled,#8a8a8a)}.e34cf37ccd0d81e0__content{height:var(--collapsible-panel-height);margin-block-start:var(--wp-ui-card-header-content-margin);overflow:hidden;&[hidden]:not([hidden=until-found]){display:none}&[data-ending-style],&[data-starting-style]{height:0}@media not (prefers-reduced-motion){transition:all .15s ease-out}}}@layer wp-ui-compositions{._41bfdbf7b6c087c2__content-inner{padding-block-start:0}._5d2dfcb4085c6d0f__header{align-items:stretch;display:flex;flex-direction:row;gap:var(--wpds-dimension-gap-sm,8px);outline:none;&:not([data-disabled]){cursor:var(--wpds-cursor-control,pointer)}}}"));
49
48
  document.head.appendChild(style);
50
49
  }
51
- var style_default = { "header-content": "cab17c7a373cb60d__header-content", "header-trigger-wrapper": "bcfab5f2448bafef__header-trigger-wrapper", "header-trigger": "_3106f8d2b0330faa__header-trigger", "header": "_5d2dfcb4085c6d0f__header" };
50
+ var style_default = { "header-content": "cab17c7a373cb60d__header-content", "header-trigger-positioner": "dd89d27c4f15912d__header-trigger-positioner", "header-trigger-wrapper": "bcfab5f2448bafef__header-trigger-wrapper", "header-trigger": "_3106f8d2b0330faa__header-trigger", "header": "_5d2dfcb4085c6d0f__header", "content": "e34cf37ccd0d81e0__content", "content-inner": "_41bfdbf7b6c087c2__content-inner" };
51
+
52
+ // packages/ui/src/utils/css/focus.module.css
53
+ if (typeof document !== "undefined" && process.env.NODE_ENV !== "test" && !document.head.querySelector("style[data-wp-hash='4acd2b57a1']")) {
54
+ const style = document.createElement("style");
55
+ style.setAttribute("data-wp-hash", "4acd2b57a1");
56
+ style.appendChild(document.createTextNode("@layer wp-ui-utilities, wp-ui-components, wp-ui-compositions, wp-ui-overrides;@layer wp-ui-utilities{._08e8a2e44959f892__outset-ring--focus,._970d04df7376df67__outset-ring--focus-within-except-active,.c5cb3ee4bddaa8e4__outset-ring--focus-within-visible,.cd83dfc2126a0846__outset-ring--focus-within,.d0541bc9dd9dc7b6__outset-ring--focus-visible,.e25b2bdd7aa21721__outset-ring--focus-except-active,.ecadb9e080e2dfa5__outset-ring--focus-parent-visible{@media not (prefers-reduced-motion){transition:outline .1s ease-out}outline-color:#0000;outline-offset:1px;outline-style:solid;outline-width:0}._08e8a2e44959f892__outset-ring--focus:focus,._970d04df7376df67__outset-ring--focus-within-except-active:focus-within:not(:has(:active)),.c5cb3ee4bddaa8e4__outset-ring--focus-within-visible:focus-within:has(:focus-visible),.cd83dfc2126a0846__outset-ring--focus-within:focus-within,.d0541bc9dd9dc7b6__outset-ring--focus-visible:focus-visible,.e25b2bdd7aa21721__outset-ring--focus-except-active:focus:not(:active),:focus-visible .ecadb9e080e2dfa5__outset-ring--focus-parent-visible{outline-color:var(--wpds-color-stroke-focus-brand,var(--wp-admin-theme-color,#3858e9));outline-width:var(--wpds-border-width-focus,var(--wp-admin-border-width-focus,2px))}}"));
57
+ document.head.appendChild(style);
58
+ }
59
+ var focus_default = { "outset-ring--focus": "_08e8a2e44959f892__outset-ring--focus", "outset-ring--focus-except-active": "e25b2bdd7aa21721__outset-ring--focus-except-active", "outset-ring--focus-visible": "d0541bc9dd9dc7b6__outset-ring--focus-visible", "outset-ring--focus-within": "cd83dfc2126a0846__outset-ring--focus-within", "outset-ring--focus-within-except-active": "_970d04df7376df67__outset-ring--focus-within-except-active", "outset-ring--focus-within-visible": "c5cb3ee4bddaa8e4__outset-ring--focus-within-visible", "outset-ring--focus-parent-visible": "ecadb9e080e2dfa5__outset-ring--focus-parent-visible" };
52
60
 
53
61
  // packages/ui/src/collapsible-card/header.tsx
62
+ var import_context = require("./context.cjs");
54
63
  var import_jsx_runtime = require("react/jsx-runtime");
55
64
  var Header2 = (0, import_element.forwardRef)(
56
- function CollapsibleCardHeader({ children, className, onClick, ...restProps }, ref) {
57
- const triggerRef = (0, import_element.useRef)(null);
58
- const handleHeaderClick = (0, import_element.useCallback)(
59
- (event) => {
60
- const trigger = triggerRef.current;
61
- if (trigger && event.target instanceof Node && !trigger.contains(event.target)) {
62
- trigger.click();
63
- }
64
- onClick?.(event);
65
- },
66
- [onClick]
65
+ function CollapsibleCardHeader({ children, className, render, ...restProps }, ref) {
66
+ const [descriptionId, setDescriptionId] = (0, import_element.useState)();
67
+ const contextValue = (0, import_element.useMemo)(
68
+ () => ({ setDescriptionId }),
69
+ [setDescriptionId]
67
70
  );
68
- return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(
69
- Card.Header,
71
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_context.HeaderDescriptionIdContext.Provider, { value: contextValue, children: /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(
72
+ Collapsible.Trigger,
70
73
  {
71
- ref,
72
74
  className: (0, import_clsx.default)(style_default.header, className),
73
- onClick: handleHeaderClick,
74
- ...restProps,
75
+ render: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
76
+ Card.Header,
77
+ {
78
+ ref,
79
+ render,
80
+ ...restProps
81
+ }
82
+ ),
83
+ nativeButton: false,
84
+ "aria-describedby": descriptionId,
75
85
  children: [
76
86
  /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { className: style_default["header-content"], children }),
77
- /* @__PURE__ */ (0, import_jsx_runtime.jsx)("div", { className: style_default["header-trigger-wrapper"], children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
78
- import_collapsible.Collapsible.Trigger,
87
+ /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
88
+ "div",
79
89
  {
80
- ref: triggerRef,
81
- render: (props, state) => /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
82
- import_icon_button.IconButton,
90
+ className: (0, import_clsx.default)(
91
+ style_default["header-trigger-positioner"]
92
+ ),
93
+ children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
94
+ "div",
83
95
  {
84
- ...props,
85
- label: (0, import_i18n.__)("Expand or collapse card"),
86
- icon: state.open ? import_icons.chevronUp : import_icons.chevronDown,
87
- variant: "minimal",
88
- tone: "neutral",
89
- size: "compact"
96
+ className: (0, import_clsx.default)(
97
+ style_default["header-trigger-wrapper"],
98
+ // While the interactive trigger element is the whole header,
99
+ // the focus ring will be displayed only on the icon to visually
100
+ // emulate it being the button.
101
+ focus_default["outset-ring--focus-parent-visible"]
102
+ ),
103
+ children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
104
+ import_icon.Icon,
105
+ {
106
+ icon: import_icons.chevronDown,
107
+ className: style_default["header-trigger"]
108
+ }
109
+ )
90
110
  }
91
- ),
92
- className: style_default["header-trigger"]
111
+ )
93
112
  }
94
- ) })
113
+ )
95
114
  ]
96
115
  }
97
- );
116
+ ) });
98
117
  }
99
118
  );
100
119
  // Annotate the CommonJS export names for ESM import in node:
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
- "sources": ["../../src/collapsible-card/header.tsx", "../../src/collapsible-card/style.module.css"],
4
- "sourcesContent": ["import { Collapsible } from '@base-ui/react/collapsible';\nimport clsx from 'clsx';\nimport type { MouseEvent } from 'react';\nimport { forwardRef, useCallback, useRef } from '@wordpress/element';\nimport { __ } from '@wordpress/i18n';\nimport { chevronDown, chevronUp } from '@wordpress/icons';\nimport * as Card from '../card';\nimport { IconButton } from '../icon-button';\nimport styles from './style.module.css';\nimport type { HeaderProps } from './types';\n\n/**\n * The header of a collapsible card. Always visible, and acts as the\n * toggle trigger \u2014 clicking anywhere on it expands or collapses the\n * card's content.\n *\n * Avoid placing interactive elements (buttons, links, inputs) inside the\n * header, since the entire area is clickable and their events will bubble\n * to trigger the collapse toggle.\n */\nexport const Header = forwardRef< HTMLDivElement, HeaderProps >(\n\tfunction CollapsibleCardHeader(\n\t\t{ children, className, onClick, ...restProps },\n\t\tref\n\t) {\n\t\tconst triggerRef = useRef< HTMLButtonElement >( null );\n\n\t\tconst handleHeaderClick = useCallback(\n\t\t\t( event: MouseEvent< HTMLDivElement > ) => {\n\t\t\t\tconst trigger = triggerRef.current;\n\t\t\t\tif (\n\t\t\t\t\ttrigger &&\n\t\t\t\t\tevent.target instanceof Node &&\n\t\t\t\t\t! trigger.contains( event.target )\n\t\t\t\t) {\n\t\t\t\t\ttrigger.click();\n\t\t\t\t}\n\n\t\t\t\tonClick?.( event );\n\t\t\t},\n\t\t\t[ onClick ]\n\t\t);\n\n\t\treturn (\n\t\t\t<Card.Header\n\t\t\t\tref={ ref }\n\t\t\t\tclassName={ clsx( styles.header, className ) }\n\t\t\t\tonClick={ handleHeaderClick }\n\t\t\t\t{ ...restProps }\n\t\t\t>\n\t\t\t\t<div className={ styles[ 'header-content' ] }>{ children }</div>\n\t\t\t\t<div className={ styles[ 'header-trigger-wrapper' ] }>\n\t\t\t\t\t<Collapsible.Trigger\n\t\t\t\t\t\tref={ triggerRef }\n\t\t\t\t\t\trender={ ( props, state ) => (\n\t\t\t\t\t\t\t<IconButton\n\t\t\t\t\t\t\t\t{ ...props }\n\t\t\t\t\t\t\t\tlabel={ __( 'Expand or collapse card' ) }\n\t\t\t\t\t\t\t\ticon={ state.open ? chevronUp : chevronDown }\n\t\t\t\t\t\t\t\tvariant=\"minimal\"\n\t\t\t\t\t\t\t\ttone=\"neutral\"\n\t\t\t\t\t\t\t\tsize=\"compact\"\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t) }\n\t\t\t\t\t\tclassName={ styles[ 'header-trigger' ] }\n\t\t\t\t\t/>\n\t\t\t\t</div>\n\t\t\t</Card.Header>\n\t\t);\n\t}\n);\n", "if (typeof document !== 'undefined' && process.env.NODE_ENV !== 'test' && !document.head.querySelector(\"style[data-wp-hash='369efd7a16']\")) {\n\tconst style = document.createElement(\"style\");\n\tstyle.setAttribute(\"data-wp-hash\", \"369efd7a16\");\n\tstyle.appendChild(document.createTextNode(\"@layer wp-ui-utilities, wp-ui-components, wp-ui-compositions, wp-ui-overrides;@layer wp-ui-components{.cab17c7a373cb60d__header-content{flex:1;min-width:0}.bcfab5f2448bafef__header-trigger-wrapper{align-self:center;flex-shrink:0;max-height:0;overflow:visible}._3106f8d2b0330faa__header-trigger{transform:translateY(-50%)}}@layer wp-ui-compositions{._5d2dfcb4085c6d0f__header{align-items:stretch;display:flex;flex-direction:row;gap:var(--wpds-dimension-gap-sm,8px);&:has(._3106f8d2b0330faa__header-trigger:not([data-disabled])){cursor:var(--wpds-cursor-control,default)}}}\"));\n\tdocument.head.appendChild(style);\n}\nexport default {\"header-content\":\"cab17c7a373cb60d__header-content\",\"header-trigger-wrapper\":\"bcfab5f2448bafef__header-trigger-wrapper\",\"header-trigger\":\"_3106f8d2b0330faa__header-trigger\",\"header\":\"_5d2dfcb4085c6d0f__header\"};\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA,gBAAAA;AAAA;AAAA;AAAA,yBAA4B;AAC5B,kBAAiB;AAEjB,qBAAgD;AAChD,kBAAmB;AACnB,mBAAuC;AACvC,WAAsB;AACtB,yBAA2B;;;ACP3B,IAAI,OAAO,aAAa,eAAe,QAAQ,IAAI,aAAa,UAAU,CAAC,SAAS,KAAK,cAAc,kCAAkC,GAAG;AAC3I,QAAM,QAAQ,SAAS,cAAc,OAAO;AAC5C,QAAM,aAAa,gBAAgB,YAAY;AAC/C,QAAM,YAAY,SAAS,eAAe,6jBAA6jB,CAAC;AACxmB,WAAS,KAAK,YAAY,KAAK;AAChC;AACA,IAAO,gBAAQ,EAAC,kBAAiB,oCAAmC,0BAAyB,4CAA2C,kBAAiB,qCAAoC,UAAS,4BAA2B;;;ADsC9N;AAxBI,IAAMC,cAAS;AAAA,EACrB,SAAS,sBACR,EAAE,UAAU,WAAW,SAAS,GAAG,UAAU,GAC7C,KACC;AACD,UAAM,iBAAa,uBAA6B,IAAK;AAErD,UAAM,wBAAoB;AAAA,MACzB,CAAE,UAAyC;AAC1C,cAAM,UAAU,WAAW;AAC3B,YACC,WACA,MAAM,kBAAkB,QACxB,CAAE,QAAQ,SAAU,MAAM,MAAO,GAChC;AACD,kBAAQ,MAAM;AAAA,QACf;AAEA,kBAAW,KAAM;AAAA,MAClB;AAAA,MACA,CAAE,OAAQ;AAAA,IACX;AAEA,WACC;AAAA,MAAM;AAAA,MAAL;AAAA,QACA;AAAA,QACA,eAAY,YAAAC,SAAM,cAAO,QAAQ,SAAU;AAAA,QAC3C,SAAU;AAAA,QACR,GAAG;AAAA,QAEL;AAAA,sDAAC,SAAI,WAAY,cAAQ,gBAAiB,GAAM,UAAU;AAAA,UAC1D,4CAAC,SAAI,WAAY,cAAQ,wBAAyB,GACjD;AAAA,YAAC,+BAAY;AAAA,YAAZ;AAAA,cACA,KAAM;AAAA,cACN,QAAS,CAAE,OAAO,UACjB;AAAA,gBAAC;AAAA;AAAA,kBACE,GAAG;AAAA,kBACL,WAAQ,gBAAI,yBAA0B;AAAA,kBACtC,MAAO,MAAM,OAAO,yBAAY;AAAA,kBAChC,SAAQ;AAAA,kBACR,MAAK;AAAA,kBACL,MAAK;AAAA;AAAA,cACN;AAAA,cAED,WAAY,cAAQ,gBAAiB;AAAA;AAAA,UACtC,GACD;AAAA;AAAA;AAAA,IACD;AAAA,EAEF;AACD;",
3
+ "sources": ["../../src/collapsible-card/header.tsx", "../../src/collapsible-card/style.module.css", "../../src/utils/css/focus.module.css"],
4
+ "sourcesContent": ["import clsx from 'clsx';\nimport { forwardRef, useMemo, useState } from '@wordpress/element';\nimport { chevronDown } from '@wordpress/icons';\nimport * as Card from '../card';\nimport * as Collapsible from '../collapsible';\nimport { Icon } from '../icon';\nimport styles from './style.module.css';\nimport focusStyles from '../utils/css/focus.module.css';\nimport { HeaderDescriptionIdContext } from './context';\nimport type { HeaderProps } from './types';\n\n/**\n * The header of a collapsible card. Always visible, and acts as the\n * toggle trigger \u2014 clicking anywhere on it expands or collapses the\n * card's content.\n *\n * Avoid placing interactive elements (buttons, links, inputs) inside the\n * header, since the entire area is clickable and their events will bubble\n * to trigger the collapse toggle.\n */\nexport const Header = forwardRef< HTMLDivElement, HeaderProps >(\n\tfunction CollapsibleCardHeader(\n\t\t{ children, className, render, ...restProps },\n\t\tref\n\t) {\n\t\tconst [ descriptionId, setDescriptionId ] = useState< string >();\n\n\t\tconst contextValue = useMemo(\n\t\t\t() => ( { setDescriptionId } ),\n\t\t\t[ setDescriptionId ]\n\t\t);\n\n\t\treturn (\n\t\t\t<HeaderDescriptionIdContext.Provider value={ contextValue }>\n\t\t\t\t<Collapsible.Trigger\n\t\t\t\t\tclassName={ clsx( styles.header, className ) }\n\t\t\t\t\trender={\n\t\t\t\t\t\t<Card.Header\n\t\t\t\t\t\t\tref={ ref }\n\t\t\t\t\t\t\trender={ render }\n\t\t\t\t\t\t\t{ ...restProps }\n\t\t\t\t\t\t/>\n\t\t\t\t\t}\n\t\t\t\t\tnativeButton={ false }\n\t\t\t\t\taria-describedby={ descriptionId }\n\t\t\t\t>\n\t\t\t\t\t<div className={ styles[ 'header-content' ] }>\n\t\t\t\t\t\t{ children }\n\t\t\t\t\t</div>\n\t\t\t\t\t<div\n\t\t\t\t\t\tclassName={ clsx(\n\t\t\t\t\t\t\tstyles[ 'header-trigger-positioner' ]\n\t\t\t\t\t\t) }\n\t\t\t\t\t>\n\t\t\t\t\t\t<div\n\t\t\t\t\t\t\tclassName={ clsx(\n\t\t\t\t\t\t\t\tstyles[ 'header-trigger-wrapper' ],\n\t\t\t\t\t\t\t\t// While the interactive trigger element is the whole header,\n\t\t\t\t\t\t\t\t// the focus ring will be displayed only on the icon to visually\n\t\t\t\t\t\t\t\t// emulate it being the button.\n\t\t\t\t\t\t\t\tfocusStyles[\n\t\t\t\t\t\t\t\t\t'outset-ring--focus-parent-visible'\n\t\t\t\t\t\t\t\t]\n\t\t\t\t\t\t\t) }\n\t\t\t\t\t\t>\n\t\t\t\t\t\t\t<Icon\n\t\t\t\t\t\t\t\ticon={ chevronDown }\n\t\t\t\t\t\t\t\tclassName={ styles[ 'header-trigger' ] }\n\t\t\t\t\t\t\t/>\n\t\t\t\t\t\t</div>\n\t\t\t\t\t</div>\n\t\t\t\t</Collapsible.Trigger>\n\t\t\t</HeaderDescriptionIdContext.Provider>\n\t\t);\n\t}\n);\n", "if (typeof document !== 'undefined' && process.env.NODE_ENV !== 'test' && !document.head.querySelector(\"style[data-wp-hash='23250ec980']\")) {\n\tconst style = document.createElement(\"style\");\n\tstyle.setAttribute(\"data-wp-hash\", \"23250ec980\");\n\tstyle.appendChild(document.createTextNode(\"@layer wp-ui-utilities, wp-ui-components, wp-ui-compositions, wp-ui-overrides;@layer wp-ui-components{.cab17c7a373cb60d__header-content{flex:1;min-width:0}.dd89d27c4f15912d__header-trigger-positioner{align-self:center;flex-shrink:0;max-height:0;overflow:visible}.bcfab5f2448bafef__header-trigger-wrapper{border-radius:var(--wpds-border-radius-sm,2px);display:flex;translate:0 -50%}._3106f8d2b0330faa__header-trigger{@media not (prefers-reduced-motion){transition:rotate .15s ease-out}}._5d2dfcb4085c6d0f__header[data-panel-open] ._3106f8d2b0330faa__header-trigger{rotate:180deg}._5d2dfcb4085c6d0f__header[data-disabled] ._3106f8d2b0330faa__header-trigger{color:var(--wpds-color-fg-interactive-neutral-disabled,#8a8a8a)}.e34cf37ccd0d81e0__content{height:var(--collapsible-panel-height);margin-block-start:var(--wp-ui-card-header-content-margin);overflow:hidden;&[hidden]:not([hidden=until-found]){display:none}&[data-ending-style],&[data-starting-style]{height:0}@media not (prefers-reduced-motion){transition:all .15s ease-out}}}@layer wp-ui-compositions{._41bfdbf7b6c087c2__content-inner{padding-block-start:0}._5d2dfcb4085c6d0f__header{align-items:stretch;display:flex;flex-direction:row;gap:var(--wpds-dimension-gap-sm,8px);outline:none;&:not([data-disabled]){cursor:var(--wpds-cursor-control,pointer)}}}\"));\n\tdocument.head.appendChild(style);\n}\nexport default {\"header-content\":\"cab17c7a373cb60d__header-content\",\"header-trigger-positioner\":\"dd89d27c4f15912d__header-trigger-positioner\",\"header-trigger-wrapper\":\"bcfab5f2448bafef__header-trigger-wrapper\",\"header-trigger\":\"_3106f8d2b0330faa__header-trigger\",\"header\":\"_5d2dfcb4085c6d0f__header\",\"content\":\"e34cf37ccd0d81e0__content\",\"content-inner\":\"_41bfdbf7b6c087c2__content-inner\"};\n", "if (typeof document !== 'undefined' && process.env.NODE_ENV !== 'test' && !document.head.querySelector(\"style[data-wp-hash='4acd2b57a1']\")) {\n\tconst style = document.createElement(\"style\");\n\tstyle.setAttribute(\"data-wp-hash\", \"4acd2b57a1\");\n\tstyle.appendChild(document.createTextNode(\"@layer wp-ui-utilities, wp-ui-components, wp-ui-compositions, wp-ui-overrides;@layer wp-ui-utilities{._08e8a2e44959f892__outset-ring--focus,._970d04df7376df67__outset-ring--focus-within-except-active,.c5cb3ee4bddaa8e4__outset-ring--focus-within-visible,.cd83dfc2126a0846__outset-ring--focus-within,.d0541bc9dd9dc7b6__outset-ring--focus-visible,.e25b2bdd7aa21721__outset-ring--focus-except-active,.ecadb9e080e2dfa5__outset-ring--focus-parent-visible{@media not (prefers-reduced-motion){transition:outline .1s ease-out}outline-color:#0000;outline-offset:1px;outline-style:solid;outline-width:0}._08e8a2e44959f892__outset-ring--focus:focus,._970d04df7376df67__outset-ring--focus-within-except-active:focus-within:not(:has(:active)),.c5cb3ee4bddaa8e4__outset-ring--focus-within-visible:focus-within:has(:focus-visible),.cd83dfc2126a0846__outset-ring--focus-within:focus-within,.d0541bc9dd9dc7b6__outset-ring--focus-visible:focus-visible,.e25b2bdd7aa21721__outset-ring--focus-except-active:focus:not(:active),:focus-visible .ecadb9e080e2dfa5__outset-ring--focus-parent-visible{outline-color:var(--wpds-color-stroke-focus-brand,var(--wp-admin-theme-color,#3858e9));outline-width:var(--wpds-border-width-focus,var(--wp-admin-border-width-focus,2px))}}\"));\n\tdocument.head.appendChild(style);\n}\nexport default {\"outset-ring--focus\":\"_08e8a2e44959f892__outset-ring--focus\",\"outset-ring--focus-except-active\":\"e25b2bdd7aa21721__outset-ring--focus-except-active\",\"outset-ring--focus-visible\":\"d0541bc9dd9dc7b6__outset-ring--focus-visible\",\"outset-ring--focus-within\":\"cd83dfc2126a0846__outset-ring--focus-within\",\"outset-ring--focus-within-except-active\":\"_970d04df7376df67__outset-ring--focus-within-except-active\",\"outset-ring--focus-within-visible\":\"c5cb3ee4bddaa8e4__outset-ring--focus-within-visible\",\"outset-ring--focus-parent-visible\":\"ecadb9e080e2dfa5__outset-ring--focus-parent-visible\"};\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA,gBAAAA;AAAA;AAAA;AAAA,kBAAiB;AACjB,qBAA8C;AAC9C,mBAA4B;AAC5B,WAAsB;AACtB,kBAA6B;AAC7B,kBAAqB;;;ACLrB,IAAI,OAAO,aAAa,eAAe,QAAQ,IAAI,aAAa,UAAU,CAAC,SAAS,KAAK,cAAc,kCAAkC,GAAG;AAC3I,QAAM,QAAQ,SAAS,cAAc,OAAO;AAC5C,QAAM,aAAa,gBAAgB,YAAY;AAC/C,QAAM,YAAY,SAAS,eAAe,6xCAA6xC,CAAC;AACx0C,WAAS,KAAK,YAAY,KAAK;AAChC;AACA,IAAO,gBAAQ,EAAC,kBAAiB,oCAAmC,6BAA4B,+CAA8C,0BAAyB,4CAA2C,kBAAiB,qCAAoC,UAAS,6BAA4B,WAAU,6BAA4B,iBAAgB,mCAAkC;;;ACNpY,IAAI,OAAO,aAAa,eAAe,QAAQ,IAAI,aAAa,UAAU,CAAC,SAAS,KAAK,cAAc,kCAAkC,GAAG;AAC3I,QAAM,QAAQ,SAAS,cAAc,OAAO;AAC5C,QAAM,aAAa,gBAAgB,YAAY;AAC/C,QAAM,YAAY,SAAS,eAAe,8tCAA8tC,CAAC;AACzwC,WAAS,KAAK,YAAY,KAAK;AAChC;AACA,IAAO,gBAAQ,EAAC,sBAAqB,yCAAwC,oCAAmC,sDAAqD,8BAA6B,gDAA+C,6BAA4B,+CAA8C,2CAA0C,8DAA6D,qCAAoC,uDAAsD,qCAAoC,sDAAqD;;;AFErlB,qBAA2C;AA0BvC;AAdG,IAAMC,cAAS;AAAA,EACrB,SAAS,sBACR,EAAE,UAAU,WAAW,QAAQ,GAAG,UAAU,GAC5C,KACC;AACD,UAAM,CAAE,eAAe,gBAAiB,QAAI,yBAAmB;AAE/D,UAAM,mBAAe;AAAA,MACpB,OAAQ,EAAE,iBAAiB;AAAA,MAC3B,CAAE,gBAAiB;AAAA,IACpB;AAEA,WACC,4CAAC,0CAA2B,UAA3B,EAAoC,OAAQ,cAC5C;AAAA,MAAa;AAAA,MAAZ;AAAA,QACA,eAAY,YAAAC,SAAM,cAAO,QAAQ,SAAU;AAAA,QAC3C,QACC;AAAA,UAAM;AAAA,UAAL;AAAA,YACA;AAAA,YACA;AAAA,YACE,GAAG;AAAA;AAAA,QACN;AAAA,QAED,cAAe;AAAA,QACf,oBAAmB;AAAA,QAEnB;AAAA,sDAAC,SAAI,WAAY,cAAQ,gBAAiB,GACvC,UACH;AAAA,UACA;AAAA,YAAC;AAAA;AAAA,cACA,eAAY,YAAAA;AAAA,gBACX,cAAQ,2BAA4B;AAAA,cACrC;AAAA,cAEA;AAAA,gBAAC;AAAA;AAAA,kBACA,eAAY,YAAAA;AAAA,oBACX,cAAQ,wBAAyB;AAAA;AAAA;AAAA;AAAA,oBAIjC,cACC,mCACD;AAAA,kBACD;AAAA,kBAEA;AAAA,oBAAC;AAAA;AAAA,sBACA,MAAO;AAAA,sBACP,WAAY,cAAQ,gBAAiB;AAAA;AAAA,kBACtC;AAAA;AAAA,cACD;AAAA;AAAA,UACD;AAAA;AAAA;AAAA,IACD,GACD;AAAA,EAEF;AACD;",
6
6
  "names": ["Header", "Header", "clsx"]
7
7
  }
@@ -22,16 +22,19 @@ var collapsible_card_exports = {};
22
22
  __export(collapsible_card_exports, {
23
23
  Content: () => import_content.Content,
24
24
  Header: () => import_header.Header,
25
+ HeaderDescription: () => import_header_description.HeaderDescription,
25
26
  Root: () => import_root.Root
26
27
  });
27
28
  module.exports = __toCommonJS(collapsible_card_exports);
28
29
  var import_root = require("./root.cjs");
29
30
  var import_header = require("./header.cjs");
31
+ var import_header_description = require("./header-description.cjs");
30
32
  var import_content = require("./content.cjs");
31
33
  // Annotate the CommonJS export names for ESM import in node:
32
34
  0 && (module.exports = {
33
35
  Content,
34
36
  Header,
37
+ HeaderDescription,
35
38
  Root
36
39
  });
37
40
  //# sourceMappingURL=index.cjs.map
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/collapsible-card/index.ts"],
4
- "sourcesContent": ["import { Root } from './root';\nimport { Header } from './header';\nimport { Content } from './content';\n\nexport { Root, Header, Content };\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,kBAAqB;AACrB,oBAAuB;AACvB,qBAAwB;",
4
+ "sourcesContent": ["import { Root } from './root';\nimport { Header } from './header';\nimport { HeaderDescription } from './header-description';\nimport { Content } from './content';\n\nexport { Root, Header, HeaderDescription, Content };\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,kBAAqB;AACrB,oBAAuB;AACvB,gCAAkC;AAClC,qBAAwB;",
6
6
  "names": []
7
7
  }
@@ -30,17 +30,17 @@ var __toCommonJS = (mod) => __copyProps(__defProp({}, "__esModule", { value: tru
30
30
  // packages/ui/src/collapsible-card/root.tsx
31
31
  var root_exports = {};
32
32
  __export(root_exports, {
33
- Root: () => Root2
33
+ Root: () => Root3
34
34
  });
35
35
  module.exports = __toCommonJS(root_exports);
36
- var import_collapsible = require("@base-ui/react/collapsible");
37
36
  var import_element = require("@wordpress/element");
38
37
  var Card = __toESM(require("../card/index.cjs"));
38
+ var Collapsible = __toESM(require("../collapsible/index.cjs"));
39
39
  var import_jsx_runtime = require("react/jsx-runtime");
40
- var Root2 = (0, import_element.forwardRef)(
40
+ var Root3 = (0, import_element.forwardRef)(
41
41
  function CollapsibleCardRoot({ render, ...restProps }, ref) {
42
42
  return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
43
- import_collapsible.Collapsible.Root,
43
+ Collapsible.Root,
44
44
  {
45
45
  ref,
46
46
  render: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(Card.Root, { render }),
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/collapsible-card/root.tsx"],
4
- "sourcesContent": ["import { Collapsible } from '@base-ui/react/collapsible';\nimport { forwardRef } from '@wordpress/element';\nimport * as Card from '../card';\nimport type { RootProps } from './types';\n\n/**\n * A card that can be expanded and collapsed. When collapsed, only the\n * header is visible.\n *\n * ```jsx\n * import { CollapsibleCard, Card } from '@wordpress/ui';\n *\n * function MyComponent() {\n * \treturn (\n * \t\t<CollapsibleCard.Root defaultOpen>\n * \t\t\t<CollapsibleCard.Header>\n * \t\t\t\t<Card.Title>Heading</Card.Title>\n * \t\t\t</CollapsibleCard.Header>\n * \t\t\t<CollapsibleCard.Content>\n * \t\t\t\t<p>Collapsible content here.</p>\n * \t\t\t</CollapsibleCard.Content>\n * \t\t</CollapsibleCard.Root>\n * \t);\n * }\n * ```\n */\nexport const Root = forwardRef< HTMLDivElement, RootProps >(\n\tfunction CollapsibleCardRoot( { render, ...restProps }, ref ) {\n\t\treturn (\n\t\t\t<Collapsible.Root\n\t\t\t\tref={ ref }\n\t\t\t\trender={ <Card.Root render={ render } /> }\n\t\t\t\t{ ...restProps }\n\t\t\t/>\n\t\t);\n\t}\n);\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA,cAAAA;AAAA;AAAA;AAAA,yBAA4B;AAC5B,qBAA2B;AAC3B,WAAsB;AA6BT;AALN,IAAMA,YAAO;AAAA,EACnB,SAAS,oBAAqB,EAAE,QAAQ,GAAG,UAAU,GAAG,KAAM;AAC7D,WACC;AAAA,MAAC,+BAAY;AAAA,MAAZ;AAAA,QACA;AAAA,QACA,QAAS,4CAAM,WAAL,EAAU,QAAkB;AAAA,QACpC,GAAG;AAAA;AAAA,IACN;AAAA,EAEF;AACD;",
4
+ "sourcesContent": ["import { forwardRef } from '@wordpress/element';\nimport * as Card from '../card';\nimport * as Collapsible from '../collapsible';\nimport type { RootProps } from './types';\n\n/**\n * A card that can be expanded and collapsed. When collapsed, only the\n * header is visible.\n *\n * ```jsx\n * import { CollapsibleCard, Card } from '@wordpress/ui';\n *\n * function MyComponent() {\n * \treturn (\n * \t\t<CollapsibleCard.Root defaultOpen>\n * \t\t\t<CollapsibleCard.Header>\n * \t\t\t\t<Card.Title>Heading</Card.Title>\n * \t\t\t</CollapsibleCard.Header>\n * \t\t\t<CollapsibleCard.Content>\n * \t\t\t\t<p>Collapsible content here.</p>\n * \t\t\t</CollapsibleCard.Content>\n * \t\t</CollapsibleCard.Root>\n * \t);\n * }\n * ```\n */\nexport const Root = forwardRef< HTMLDivElement, RootProps >(\n\tfunction CollapsibleCardRoot( { render, ...restProps }, ref ) {\n\t\treturn (\n\t\t\t<Collapsible.Root\n\t\t\t\tref={ ref }\n\t\t\t\trender={ <Card.Root render={ render } /> }\n\t\t\t\t{ ...restProps }\n\t\t\t/>\n\t\t);\n\t}\n);\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA,cAAAA;AAAA;AAAA;AAAA,qBAA2B;AAC3B,WAAsB;AACtB,kBAA6B;AA6BhB;AALN,IAAMA,YAAO;AAAA,EACnB,SAAS,oBAAqB,EAAE,QAAQ,GAAG,UAAU,GAAG,KAAM;AAC7D,WACC;AAAA,MAAa;AAAA,MAAZ;AAAA,QACA;AAAA,QACA,QAAS,4CAAM,WAAL,EAAU,QAAkB;AAAA,QACpC,GAAG;AAAA;AAAA,IACN;AAAA,EAEF;AACD;",
6
6
  "names": ["Root"]
7
7
  }
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/collapsible-card/types.ts"],
4
- "sourcesContent": ["import type { ReactNode } from 'react';\nimport type { ComponentProps } from '../utils/types';\n\nexport interface RootProps extends ComponentProps< 'div' > {\n\t/**\n\t * The content to be rendered inside the collapsible card.\n\t * Should include `CollapsibleCard.Header` and `CollapsibleCard.Content`.\n\t */\n\tchildren?: ReactNode;\n\t/**\n\t * Whether the collapsible panel is currently open (controlled).\n\t *\n\t * To render an uncontrolled collapsible card, use `defaultOpen` instead.\n\t */\n\topen?: boolean;\n\t/**\n\t * Whether the collapsible panel is initially open (uncontrolled).\n\t * @default false\n\t */\n\tdefaultOpen?: boolean;\n\t/**\n\t * Event handler called when the panel is opened or closed.\n\t */\n\tonOpenChange?: ( open: boolean ) => void;\n\t/**\n\t * Whether the component should ignore user interaction.\n\t * @default false\n\t */\n\tdisabled?: boolean;\n}\n\nexport interface HeaderProps extends ComponentProps< 'div' > {\n\t/**\n\t * The content to be rendered inside the header.\n\t */\n\tchildren?: ReactNode;\n}\n\nexport interface ContentProps extends ComponentProps< 'div' > {\n\t/**\n\t * The content to be rendered inside the collapsible content area.\n\t */\n\tchildren?: ReactNode;\n}\n"],
4
+ "sourcesContent": ["import type { ReactNode } from 'react';\nimport type { PanelProps } from '../collapsible/types';\nimport type { ComponentProps } from '../utils/types';\n\nexport interface RootProps extends ComponentProps< 'div' > {\n\t/**\n\t * The content to be rendered inside the collapsible card.\n\t * Should include `CollapsibleCard.Header` and `CollapsibleCard.Content`.\n\t */\n\tchildren?: ReactNode;\n\t/**\n\t * Whether the collapsible panel is currently open (controlled).\n\t *\n\t * To render an uncontrolled collapsible card, use `defaultOpen` instead.\n\t */\n\topen?: boolean;\n\t/**\n\t * Whether the collapsible panel is initially open (uncontrolled).\n\t * @default false\n\t */\n\tdefaultOpen?: boolean;\n\t/**\n\t * Event handler called when the panel is opened or closed.\n\t */\n\tonOpenChange?: ( open: boolean ) => void;\n\t/**\n\t * Whether the component should ignore user interaction.\n\t * @default false\n\t */\n\tdisabled?: boolean;\n}\n\nexport interface HeaderProps extends ComponentProps< 'div' > {\n\t/**\n\t * The content to be rendered inside the header.\n\t */\n\tchildren?: ReactNode;\n}\n\nexport interface HeaderDescriptionProps extends ComponentProps< 'div' > {\n\t/**\n\t * Secondary content that describes the header trigger via\n\t * `aria-describedby`. Rendered visually but marked `aria-hidden`\n\t * so assistive technologies consume it only through the description\n\t * relationship, avoiding double announcements.\n\t *\n\t * Avoid interactive elements \u2014 the entire header is the toggle trigger.\n\t */\n\tchildren?: ReactNode;\n}\n\nexport interface ContentProps extends ComponentProps< 'div' > {\n\t/**\n\t * The content to be rendered inside the collapsible content area.\n\t */\n\tchildren?: ReactNode;\n\t/**\n\t * Allows the browser\u2019s built-in page search to find and expand the panel contents.\n\t *\n\t * Overrides the `keepMounted` prop and uses `hidden=\"until-found\"`\n\t * to hide the element without removing it from the DOM.\n\t *\n\t * @default true\n\t */\n\thiddenUntilFound?: PanelProps[ 'hiddenUntilFound' ];\n}\n"],
5
5
  "mappings": ";;;;;;;;;;;;;;;;AAAA;AAAA;",
6
6
  "names": []
7
7
  }
@@ -28,12 +28,14 @@ var import_element = require("@wordpress/element");
28
28
  var import_button = require("../button/index.cjs");
29
29
  var import_jsx_runtime = require("react/jsx-runtime");
30
30
  var Action = (0, import_element.forwardRef)(
31
- function DialogAction({ render, ...props }, ref) {
31
+ function DialogAction({ render, disabled, loading, ...props }, ref) {
32
+ const resolvedDisabled = disabled ?? loading;
32
33
  return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
33
34
  import_dialog.Dialog.Close,
34
35
  {
35
36
  ref,
36
- render: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_button.Button, { render }),
37
+ render: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_button.Button, { render, loading }),
38
+ disabled: resolvedDisabled,
37
39
  ...props
38
40
  }
39
41
  );
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/dialog/action.tsx"],
4
- "sourcesContent": ["import { Dialog as _Dialog } from '@base-ui/react/dialog';\nimport { forwardRef } from '@wordpress/element';\nimport { Button } from '../button';\nimport type { ActionProps } from './types';\n\n/**\n * Renders a button that closes the dialog when clicked.\n * Accepts all Button component props for styling.\n */\nconst Action = forwardRef< HTMLButtonElement, ActionProps >(\n\tfunction DialogAction( { render, ...props }, ref ) {\n\t\treturn (\n\t\t\t<_Dialog.Close\n\t\t\t\tref={ ref }\n\t\t\t\trender={ <Button render={ render } /> }\n\t\t\t\t{ ...props }\n\t\t\t/>\n\t\t);\n\t}\n);\n\nexport { Action };\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,oBAAkC;AAClC,qBAA2B;AAC3B,oBAAuB;AAYV;AALb,IAAM,aAAS;AAAA,EACd,SAAS,aAAc,EAAE,QAAQ,GAAG,MAAM,GAAG,KAAM;AAClD,WACC;AAAA,MAAC,cAAAA,OAAQ;AAAA,MAAR;AAAA,QACA;AAAA,QACA,QAAS,4CAAC,wBAAO,QAAkB;AAAA,QACjC,GAAG;AAAA;AAAA,IACN;AAAA,EAEF;AACD;",
4
+ "sourcesContent": ["import { Dialog as _Dialog } from '@base-ui/react/dialog';\nimport { forwardRef } from '@wordpress/element';\nimport { Button } from '../button';\nimport type { ActionProps } from './types';\n\n/**\n * Renders a button that closes the dialog when clicked.\n * Accepts all Button component props for styling.\n */\nconst Action = forwardRef< HTMLButtonElement, ActionProps >(\n\tfunction DialogAction( { render, disabled, loading, ...props }, ref ) {\n\t\t// Resolve `disabled` the same way Button does so that\n\t\t// _Dialog.Close's internal useButton (which controls\n\t\t// aria-disabled) stays in sync with the rendered Button.\n\t\tconst resolvedDisabled = disabled ?? loading;\n\n\t\treturn (\n\t\t\t<_Dialog.Close\n\t\t\t\tref={ ref }\n\t\t\t\trender={ <Button render={ render } loading={ loading } /> }\n\t\t\t\tdisabled={ resolvedDisabled }\n\t\t\t\t{ ...props }\n\t\t\t/>\n\t\t);\n\t}\n);\n\nexport { Action };\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,oBAAkC;AAClC,qBAA2B;AAC3B,oBAAuB;AAiBV;AAVb,IAAM,aAAS;AAAA,EACd,SAAS,aAAc,EAAE,QAAQ,UAAU,SAAS,GAAG,MAAM,GAAG,KAAM;AAIrE,UAAM,mBAAmB,YAAY;AAErC,WACC;AAAA,MAAC,cAAAA,OAAQ;AAAA,MAAR;AAAA,QACA;AAAA,QACA,QAAS,4CAAC,wBAAO,QAAkB,SAAoB;AAAA,QACvD,UAAW;AAAA,QACT,GAAG;AAAA;AAAA,IACN;AAAA,EAEF;AACD;",
6
6
  "names": ["_Dialog"]
7
7
  }