@wordpress/ui 0.11.0 → 0.12.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 (660) hide show
  1. package/CHANGELOG.md +46 -0
  2. package/README.md +4 -4
  3. package/build/alert-dialog/index.cjs +3 -0
  4. package/build/alert-dialog/index.cjs.map +2 -2
  5. package/build/alert-dialog/popup.cjs +120 -55
  6. package/build/alert-dialog/popup.cjs.map +3 -3
  7. package/build/alert-dialog/portal.cjs +38 -0
  8. package/build/alert-dialog/portal.cjs.map +7 -0
  9. package/build/alert-dialog/types.cjs.map +1 -1
  10. package/build/collapsible-card/content.cjs +9 -5
  11. package/build/collapsible-card/content.cjs.map +2 -2
  12. package/build/collapsible-card/header.cjs +14 -4
  13. package/build/collapsible-card/header.cjs.map +3 -3
  14. package/build/dialog/content.cjs +85 -0
  15. package/build/dialog/content.cjs.map +7 -0
  16. package/build/dialog/context.cjs +12 -44
  17. package/build/dialog/context.cjs.map +2 -2
  18. package/build/dialog/description.cjs +59 -0
  19. package/build/dialog/description.cjs.map +7 -0
  20. package/build/dialog/footer.cjs +5 -4
  21. package/build/dialog/footer.cjs.map +2 -2
  22. package/build/dialog/header.cjs +5 -4
  23. package/build/dialog/header.cjs.map +2 -2
  24. package/build/dialog/index.cjs +9 -0
  25. package/build/dialog/index.cjs.map +2 -2
  26. package/build/dialog/popup.cjs +21 -9
  27. package/build/dialog/popup.cjs.map +2 -2
  28. package/build/dialog/portal.cjs +38 -0
  29. package/build/dialog/portal.cjs.map +7 -0
  30. package/build/dialog/root.cjs +3 -2
  31. package/build/dialog/root.cjs.map +2 -2
  32. package/build/dialog/title.cjs +9 -6
  33. package/build/dialog/title.cjs.map +2 -2
  34. package/build/dialog/types.cjs.map +1 -1
  35. package/build/drawer/action.cjs +48 -0
  36. package/build/drawer/action.cjs.map +7 -0
  37. package/build/drawer/close-icon.cjs +58 -0
  38. package/build/drawer/close-icon.cjs.map +7 -0
  39. package/build/drawer/content.cjs +86 -0
  40. package/build/drawer/content.cjs.map +7 -0
  41. package/build/drawer/context.cjs +44 -0
  42. package/build/drawer/context.cjs.map +7 -0
  43. package/build/drawer/description.cjs +47 -0
  44. package/build/drawer/description.cjs.map +7 -0
  45. package/build/drawer/footer.cjs +65 -0
  46. package/build/drawer/footer.cjs.map +7 -0
  47. package/build/drawer/header.cjs +65 -0
  48. package/build/drawer/header.cjs.map +7 -0
  49. package/build/drawer/index.cjs +61 -0
  50. package/build/drawer/index.cjs.map +7 -0
  51. package/build/drawer/popup.cjs +103 -0
  52. package/build/drawer/popup.cjs.map +7 -0
  53. package/build/drawer/portal.cjs +38 -0
  54. package/build/drawer/portal.cjs.map +7 -0
  55. package/build/drawer/root.cjs +49 -0
  56. package/build/drawer/root.cjs.map +7 -0
  57. package/build/drawer/title.cjs +70 -0
  58. package/build/drawer/title.cjs.map +7 -0
  59. package/build/drawer/trigger.cjs +38 -0
  60. package/build/drawer/trigger.cjs.map +7 -0
  61. package/build/drawer/types.cjs +19 -0
  62. package/build/drawer/types.cjs.map +7 -0
  63. package/build/form/primitives/autocomplete/clear.cjs +62 -0
  64. package/build/form/primitives/autocomplete/clear.cjs.map +7 -0
  65. package/build/form/primitives/autocomplete/collection.cjs +38 -0
  66. package/build/form/primitives/autocomplete/collection.cjs.map +7 -0
  67. package/build/form/primitives/autocomplete/empty.cjs +67 -0
  68. package/build/form/primitives/autocomplete/empty.cjs.map +7 -0
  69. package/build/form/primitives/autocomplete/index.cjs +64 -0
  70. package/build/form/primitives/autocomplete/index.cjs.map +7 -0
  71. package/build/form/primitives/autocomplete/input-group.cjs +36 -0
  72. package/build/form/primitives/autocomplete/input-group.cjs.map +7 -0
  73. package/build/form/primitives/autocomplete/input.cjs +47 -0
  74. package/build/form/primitives/autocomplete/input.cjs.map +7 -0
  75. package/build/form/primitives/autocomplete/item.cjs +81 -0
  76. package/build/form/primitives/autocomplete/item.cjs.map +7 -0
  77. package/build/form/primitives/autocomplete/list-body.cjs +57 -0
  78. package/build/form/primitives/autocomplete/list-body.cjs.map +7 -0
  79. package/build/form/primitives/autocomplete/list.cjs +67 -0
  80. package/build/form/primitives/autocomplete/list.cjs.map +7 -0
  81. package/build/form/primitives/autocomplete/popup.cjs +102 -0
  82. package/build/form/primitives/autocomplete/popup.cjs.map +7 -0
  83. package/build/form/primitives/autocomplete/portal.cjs +38 -0
  84. package/build/form/primitives/autocomplete/portal.cjs.map +7 -0
  85. package/build/form/primitives/autocomplete/root.cjs +35 -0
  86. package/build/form/primitives/autocomplete/root.cjs.map +7 -0
  87. package/build/form/primitives/autocomplete/types.cjs +19 -0
  88. package/build/form/primitives/autocomplete/types.cjs.map +7 -0
  89. package/build/form/primitives/autocomplete/value.cjs +35 -0
  90. package/build/form/primitives/autocomplete/value.cjs.map +7 -0
  91. package/build/form/primitives/index.cjs +3 -0
  92. package/build/form/primitives/index.cjs.map +2 -2
  93. package/build/form/primitives/select/index.cjs +3 -0
  94. package/build/form/primitives/select/index.cjs.map +2 -2
  95. package/build/form/primitives/select/item.cjs +4 -5
  96. package/build/form/primitives/select/item.cjs.map +2 -2
  97. package/build/form/primitives/select/popup.cjs +12 -11
  98. package/build/form/primitives/select/popup.cjs.map +2 -2
  99. package/build/form/primitives/select/portal.cjs +38 -0
  100. package/build/form/primitives/select/portal.cjs.map +7 -0
  101. package/build/form/primitives/select/types.cjs.map +1 -1
  102. package/build/index.cjs +3 -0
  103. package/build/index.cjs.map +2 -2
  104. package/build/link/link.cjs +8 -18
  105. package/build/link/link.cjs.map +2 -2
  106. package/build/link/types.cjs.map +1 -1
  107. package/build/notice/action-button.cjs +3 -3
  108. package/build/notice/action-button.cjs.map +2 -2
  109. package/build/notice/action-link.cjs +8 -7
  110. package/build/notice/action-link.cjs.map +2 -2
  111. package/build/notice/actions.cjs +3 -3
  112. package/build/notice/actions.cjs.map +2 -2
  113. package/build/notice/close-icon.cjs +3 -3
  114. package/build/notice/close-icon.cjs.map +2 -2
  115. package/build/notice/description.cjs +3 -3
  116. package/build/notice/description.cjs.map +2 -2
  117. package/build/notice/root.cjs +3 -3
  118. package/build/notice/root.cjs.map +2 -2
  119. package/build/notice/title.cjs +3 -3
  120. package/build/notice/title.cjs.map +2 -2
  121. package/build/popover/arrow.cjs +4 -4
  122. package/build/popover/arrow.cjs.map +2 -2
  123. package/build/popover/context.cjs +4 -44
  124. package/build/popover/context.cjs.map +2 -2
  125. package/build/popover/description.cjs +1 -24
  126. package/build/popover/description.cjs.map +4 -4
  127. package/build/popover/index.cjs +3 -0
  128. package/build/popover/index.cjs.map +2 -2
  129. package/build/popover/popup.cjs +15 -15
  130. package/build/popover/popup.cjs.map +2 -2
  131. package/build/popover/portal.cjs +38 -0
  132. package/build/popover/portal.cjs.map +7 -0
  133. package/build/popover/root.cjs.map +1 -1
  134. package/build/popover/title.cjs +18 -4
  135. package/build/popover/title.cjs.map +3 -3
  136. package/build/popover/types.cjs.map +1 -1
  137. package/build/tabs/context.cjs +9 -22
  138. package/build/tabs/context.cjs.map +2 -2
  139. package/build/tabs/list.cjs +4 -4
  140. package/build/tabs/list.cjs.map +2 -2
  141. package/build/tabs/panel.cjs +19 -6
  142. package/build/tabs/panel.cjs.map +3 -3
  143. package/build/tabs/tab.cjs +4 -4
  144. package/build/tabs/tab.cjs.map +2 -2
  145. package/build/text/text.cjs +2 -2
  146. package/build/text/text.cjs.map +2 -2
  147. package/build/tooltip/index.cjs +3 -0
  148. package/build/tooltip/index.cjs.map +2 -2
  149. package/build/tooltip/popup.cjs +11 -14
  150. package/build/tooltip/popup.cjs.map +3 -3
  151. package/build/tooltip/portal.cjs +38 -0
  152. package/build/tooltip/portal.cjs.map +7 -0
  153. package/build/tooltip/provider.cjs +2 -2
  154. package/build/tooltip/provider.cjs.map +3 -3
  155. package/build/tooltip/root.cjs.map +3 -3
  156. package/build/tooltip/trigger.cjs +2 -2
  157. package/build/tooltip/trigger.cjs.map +3 -3
  158. package/build/tooltip/types.cjs.map +1 -1
  159. package/build/utils/create-overlay-modal-context.cjs +48 -0
  160. package/build/utils/create-overlay-modal-context.cjs.map +7 -0
  161. package/build/utils/create-overlay-title-validation.cjs +93 -0
  162. package/build/utils/create-overlay-title-validation.cjs.map +7 -0
  163. package/build/utils/render-portal-with-children.cjs +37 -0
  164. package/build/utils/render-portal-with-children.cjs.map +7 -0
  165. package/build/utils/use-deprioritized-initial-focus.cjs +8 -8
  166. package/build/utils/use-deprioritized-initial-focus.cjs.map +2 -2
  167. package/build/utils/use-overlay-scroll-state-attributes.cjs +140 -0
  168. package/build/utils/use-overlay-scroll-state-attributes.cjs.map +7 -0
  169. package/build/utils/use-schedule-validation.cjs +59 -0
  170. package/build/utils/use-schedule-validation.cjs.map +7 -0
  171. package/build/visually-hidden/visually-hidden.cjs +5 -1
  172. package/build/visually-hidden/visually-hidden.cjs.map +2 -2
  173. package/build-module/alert-dialog/index.mjs +2 -0
  174. package/build-module/alert-dialog/index.mjs.map +2 -2
  175. package/build-module/alert-dialog/popup.mjs +124 -56
  176. package/build-module/alert-dialog/popup.mjs.map +3 -3
  177. package/build-module/alert-dialog/portal.mjs +13 -0
  178. package/build-module/alert-dialog/portal.mjs.map +7 -0
  179. package/build-module/collapsible-card/content.mjs +9 -5
  180. package/build-module/collapsible-card/content.mjs.map +2 -2
  181. package/build-module/collapsible-card/header.mjs +14 -4
  182. package/build-module/collapsible-card/header.mjs.map +3 -3
  183. package/build-module/dialog/content.mjs +50 -0
  184. package/build-module/dialog/content.mjs.map +7 -0
  185. package/build-module/dialog/context.mjs +10 -51
  186. package/build-module/dialog/context.mjs.map +2 -2
  187. package/build-module/dialog/description.mjs +34 -0
  188. package/build-module/dialog/description.mjs.map +7 -0
  189. package/build-module/dialog/footer.mjs +5 -4
  190. package/build-module/dialog/footer.mjs.map +2 -2
  191. package/build-module/dialog/header.mjs +5 -4
  192. package/build-module/dialog/header.mjs.map +2 -2
  193. package/build-module/dialog/index.mjs +6 -0
  194. package/build-module/dialog/index.mjs.map +2 -2
  195. package/build-module/dialog/popup.mjs +23 -11
  196. package/build-module/dialog/popup.mjs.map +2 -2
  197. package/build-module/dialog/portal.mjs +13 -0
  198. package/build-module/dialog/portal.mjs.map +7 -0
  199. package/build-module/dialog/root.mjs +3 -2
  200. package/build-module/dialog/root.mjs.map +2 -2
  201. package/build-module/dialog/title.mjs +10 -7
  202. package/build-module/dialog/title.mjs.map +2 -2
  203. package/build-module/drawer/action.mjs +23 -0
  204. package/build-module/drawer/action.mjs.map +7 -0
  205. package/build-module/drawer/close-icon.mjs +33 -0
  206. package/build-module/drawer/close-icon.mjs.map +7 -0
  207. package/build-module/drawer/content.mjs +51 -0
  208. package/build-module/drawer/content.mjs.map +7 -0
  209. package/build-module/drawer/context.mjs +16 -0
  210. package/build-module/drawer/context.mjs.map +7 -0
  211. package/build-module/drawer/description.mjs +22 -0
  212. package/build-module/drawer/description.mjs.map +7 -0
  213. package/build-module/drawer/footer.mjs +30 -0
  214. package/build-module/drawer/footer.mjs.map +7 -0
  215. package/build-module/drawer/header.mjs +30 -0
  216. package/build-module/drawer/header.mjs.map +7 -0
  217. package/build-module/drawer/index.mjs +26 -0
  218. package/build-module/drawer/index.mjs.map +7 -0
  219. package/build-module/drawer/popup.mjs +70 -0
  220. package/build-module/drawer/popup.mjs.map +7 -0
  221. package/build-module/drawer/portal.mjs +13 -0
  222. package/build-module/drawer/portal.mjs.map +7 -0
  223. package/build-module/drawer/root.mjs +24 -0
  224. package/build-module/drawer/root.mjs.map +7 -0
  225. package/build-module/drawer/title.mjs +45 -0
  226. package/build-module/drawer/title.mjs.map +7 -0
  227. package/build-module/drawer/trigger.mjs +13 -0
  228. package/build-module/drawer/trigger.mjs.map +7 -0
  229. package/build-module/drawer/types.mjs +1 -0
  230. package/build-module/form/primitives/autocomplete/clear.mjs +37 -0
  231. package/build-module/form/primitives/autocomplete/clear.mjs.map +7 -0
  232. package/build-module/form/primitives/autocomplete/collection.mjs +13 -0
  233. package/build-module/form/primitives/autocomplete/collection.mjs.map +7 -0
  234. package/build-module/form/primitives/autocomplete/empty.mjs +32 -0
  235. package/build-module/form/primitives/autocomplete/empty.mjs.map +7 -0
  236. package/build-module/form/primitives/autocomplete/index.mjs +28 -0
  237. package/build-module/form/primitives/autocomplete/index.mjs.map +7 -0
  238. package/build-module/form/primitives/autocomplete/input-group.mjs +11 -0
  239. package/build-module/form/primitives/autocomplete/input-group.mjs.map +7 -0
  240. package/build-module/form/primitives/autocomplete/input.mjs +22 -0
  241. package/build-module/form/primitives/autocomplete/input.mjs.map +7 -0
  242. package/build-module/form/primitives/autocomplete/item.mjs +46 -0
  243. package/build-module/form/primitives/autocomplete/item.mjs.map +7 -0
  244. package/build-module/form/primitives/autocomplete/list-body.mjs +32 -0
  245. package/build-module/form/primitives/autocomplete/list-body.mjs.map +7 -0
  246. package/build-module/form/primitives/autocomplete/list.mjs +32 -0
  247. package/build-module/form/primitives/autocomplete/list.mjs.map +7 -0
  248. package/build-module/form/primitives/autocomplete/popup.mjs +69 -0
  249. package/build-module/form/primitives/autocomplete/popup.mjs.map +7 -0
  250. package/build-module/form/primitives/autocomplete/portal.mjs +13 -0
  251. package/build-module/form/primitives/autocomplete/portal.mjs.map +7 -0
  252. package/build-module/form/primitives/autocomplete/root.mjs +10 -0
  253. package/build-module/form/primitives/autocomplete/root.mjs.map +7 -0
  254. package/build-module/form/primitives/autocomplete/types.mjs +1 -0
  255. package/build-module/form/primitives/autocomplete/value.mjs +10 -0
  256. package/build-module/form/primitives/autocomplete/value.mjs.map +7 -0
  257. package/build-module/form/primitives/index.mjs +2 -0
  258. package/build-module/form/primitives/index.mjs.map +2 -2
  259. package/build-module/form/primitives/select/index.mjs +2 -0
  260. package/build-module/form/primitives/select/index.mjs.map +2 -2
  261. package/build-module/form/primitives/select/item.mjs +4 -5
  262. package/build-module/form/primitives/select/item.mjs.map +2 -2
  263. package/build-module/form/primitives/select/popup.mjs +12 -11
  264. package/build-module/form/primitives/select/popup.mjs.map +2 -2
  265. package/build-module/form/primitives/select/portal.mjs +13 -0
  266. package/build-module/form/primitives/select/portal.mjs.map +7 -0
  267. package/build-module/index.mjs +2 -0
  268. package/build-module/index.mjs.map +2 -2
  269. package/build-module/link/link.mjs +8 -18
  270. package/build-module/link/link.mjs.map +2 -2
  271. package/build-module/notice/action-button.mjs +3 -3
  272. package/build-module/notice/action-button.mjs.map +2 -2
  273. package/build-module/notice/action-link.mjs +8 -7
  274. package/build-module/notice/action-link.mjs.map +2 -2
  275. package/build-module/notice/actions.mjs +3 -3
  276. package/build-module/notice/actions.mjs.map +2 -2
  277. package/build-module/notice/close-icon.mjs +3 -3
  278. package/build-module/notice/close-icon.mjs.map +2 -2
  279. package/build-module/notice/description.mjs +3 -3
  280. package/build-module/notice/description.mjs.map +2 -2
  281. package/build-module/notice/root.mjs +3 -3
  282. package/build-module/notice/root.mjs.map +2 -2
  283. package/build-module/notice/title.mjs +3 -3
  284. package/build-module/notice/title.mjs.map +2 -2
  285. package/build-module/popover/arrow.mjs +4 -4
  286. package/build-module/popover/arrow.mjs.map +2 -2
  287. package/build-module/popover/context.mjs +4 -51
  288. package/build-module/popover/context.mjs.map +2 -2
  289. package/build-module/popover/description.mjs +1 -14
  290. package/build-module/popover/description.mjs.map +3 -3
  291. package/build-module/popover/index.mjs +2 -0
  292. package/build-module/popover/index.mjs.map +2 -2
  293. package/build-module/popover/popup.mjs +16 -16
  294. package/build-module/popover/popup.mjs.map +2 -2
  295. package/build-module/popover/portal.mjs +13 -0
  296. package/build-module/popover/portal.mjs.map +7 -0
  297. package/build-module/popover/root.mjs.map +1 -1
  298. package/build-module/popover/title.mjs +19 -5
  299. package/build-module/popover/title.mjs.map +3 -3
  300. package/build-module/tabs/context.mjs +11 -24
  301. package/build-module/tabs/context.mjs.map +2 -2
  302. package/build-module/tabs/list.mjs +4 -4
  303. package/build-module/tabs/list.mjs.map +2 -2
  304. package/build-module/tabs/panel.mjs +19 -6
  305. package/build-module/tabs/panel.mjs.map +3 -3
  306. package/build-module/tabs/tab.mjs +4 -4
  307. package/build-module/tabs/tab.mjs.map +2 -2
  308. package/build-module/text/text.mjs +2 -2
  309. package/build-module/text/text.mjs.map +2 -2
  310. package/build-module/tooltip/index.mjs +2 -0
  311. package/build-module/tooltip/index.mjs.map +2 -2
  312. package/build-module/tooltip/popup.mjs +14 -17
  313. package/build-module/tooltip/popup.mjs.map +2 -2
  314. package/build-module/tooltip/portal.mjs +13 -0
  315. package/build-module/tooltip/portal.mjs.map +7 -0
  316. package/build-module/tooltip/provider.mjs +3 -3
  317. package/build-module/tooltip/provider.mjs.map +2 -2
  318. package/build-module/tooltip/root.mjs +2 -2
  319. package/build-module/tooltip/root.mjs.map +2 -2
  320. package/build-module/tooltip/trigger.mjs +3 -3
  321. package/build-module/tooltip/trigger.mjs.map +2 -2
  322. package/build-module/utils/create-overlay-modal-context.mjs +23 -0
  323. package/build-module/utils/create-overlay-modal-context.mjs.map +7 -0
  324. package/build-module/utils/create-overlay-title-validation.mjs +75 -0
  325. package/build-module/utils/create-overlay-title-validation.mjs.map +7 -0
  326. package/build-module/utils/render-portal-with-children.mjs +12 -0
  327. package/build-module/utils/render-portal-with-children.mjs.map +7 -0
  328. package/build-module/utils/use-deprioritized-initial-focus.mjs +9 -9
  329. package/build-module/utils/use-deprioritized-initial-focus.mjs.map +2 -2
  330. package/build-module/utils/use-overlay-scroll-state-attributes.mjs +114 -0
  331. package/build-module/utils/use-overlay-scroll-state-attributes.mjs.map +7 -0
  332. package/build-module/utils/use-schedule-validation.mjs +34 -0
  333. package/build-module/utils/use-schedule-validation.mjs.map +7 -0
  334. package/build-module/visually-hidden/visually-hidden.mjs +5 -1
  335. package/build-module/visually-hidden/visually-hidden.mjs.map +2 -2
  336. package/build-types/alert-dialog/index.d.ts +1 -0
  337. package/build-types/alert-dialog/index.d.ts.map +1 -1
  338. package/build-types/alert-dialog/popup.d.ts.map +1 -1
  339. package/build-types/alert-dialog/portal.d.ts +9 -0
  340. package/build-types/alert-dialog/portal.d.ts.map +1 -0
  341. package/build-types/alert-dialog/stories/index.story.d.ts +29 -1
  342. package/build-types/alert-dialog/stories/index.story.d.ts.map +1 -1
  343. package/build-types/alert-dialog/types.d.ts +25 -3
  344. package/build-types/alert-dialog/types.d.ts.map +1 -1
  345. package/build-types/badge/stories/index.story.d.ts.map +1 -1
  346. package/build-types/card/stories/index.story.d.ts.map +1 -1
  347. package/build-types/collapsible/stories/index.story.d.ts.map +1 -1
  348. package/build-types/collapsible-card/content.d.ts.map +1 -1
  349. package/build-types/collapsible-card/header.d.ts.map +1 -1
  350. package/build-types/collapsible-card/stories/index.story.d.ts.map +1 -1
  351. package/build-types/dialog/content.d.ts +17 -0
  352. package/build-types/dialog/content.d.ts.map +1 -0
  353. package/build-types/dialog/context.d.ts +11 -16
  354. package/build-types/dialog/context.d.ts.map +1 -1
  355. package/build-types/dialog/description.d.ts +9 -0
  356. package/build-types/dialog/description.d.ts.map +1 -0
  357. package/build-types/dialog/footer.d.ts +8 -1
  358. package/build-types/dialog/footer.d.ts.map +1 -1
  359. package/build-types/dialog/header.d.ts +8 -1
  360. package/build-types/dialog/header.d.ts.map +1 -1
  361. package/build-types/dialog/index.d.ts +4 -1
  362. package/build-types/dialog/index.d.ts.map +1 -1
  363. package/build-types/dialog/popup.d.ts +3 -0
  364. package/build-types/dialog/popup.d.ts.map +1 -1
  365. package/build-types/dialog/portal.d.ts +10 -0
  366. package/build-types/dialog/portal.d.ts.map +1 -0
  367. package/build-types/dialog/root.d.ts +14 -4
  368. package/build-types/dialog/root.d.ts.map +1 -1
  369. package/build-types/dialog/stories/index.story.d.ts +29 -6
  370. package/build-types/dialog/stories/index.story.d.ts.map +1 -1
  371. package/build-types/dialog/title.d.ts.map +1 -1
  372. package/build-types/dialog/types.d.ts +60 -7
  373. package/build-types/dialog/types.d.ts.map +1 -1
  374. package/build-types/drawer/action.d.ts +8 -0
  375. package/build-types/drawer/action.d.ts.map +1 -0
  376. package/build-types/drawer/close-icon.d.ts +8 -0
  377. package/build-types/drawer/close-icon.d.ts.map +1 -0
  378. package/build-types/drawer/content.d.ts +21 -0
  379. package/build-types/drawer/content.d.ts.map +1 -0
  380. package/build-types/drawer/context.d.ts +20 -0
  381. package/build-types/drawer/context.d.ts.map +1 -0
  382. package/build-types/drawer/description.d.ts +9 -0
  383. package/build-types/drawer/description.d.ts.map +1 -0
  384. package/build-types/drawer/footer.d.ts +15 -0
  385. package/build-types/drawer/footer.d.ts.map +1 -0
  386. package/build-types/drawer/header.d.ts +15 -0
  387. package/build-types/drawer/header.d.ts.map +1 -0
  388. package/build-types/drawer/index.d.ts +13 -0
  389. package/build-types/drawer/index.d.ts.map +1 -0
  390. package/build-types/drawer/popup.d.ts +16 -0
  391. package/build-types/drawer/popup.d.ts.map +1 -0
  392. package/build-types/drawer/portal.d.ts +10 -0
  393. package/build-types/drawer/portal.d.ts.map +1 -0
  394. package/build-types/drawer/root.d.ts +21 -0
  395. package/build-types/drawer/root.d.ts.map +1 -0
  396. package/build-types/drawer/stories/index.story.d.ts +63 -0
  397. package/build-types/drawer/stories/index.story.d.ts.map +1 -0
  398. package/build-types/drawer/test/index.test.d.ts +2 -0
  399. package/build-types/drawer/test/index.test.d.ts.map +1 -0
  400. package/build-types/drawer/title.d.ts +22 -0
  401. package/build-types/drawer/title.d.ts.map +1 -0
  402. package/build-types/drawer/trigger.d.ts +7 -0
  403. package/build-types/drawer/trigger.d.ts.map +1 -0
  404. package/build-types/drawer/types.d.ts +146 -0
  405. package/build-types/drawer/types.d.ts.map +1 -0
  406. package/build-types/empty-state/stories/index.story.d.ts +1 -1
  407. package/build-types/empty-state/stories/index.story.d.ts.map +1 -1
  408. package/build-types/form/input-control/stories/index.story.d.ts +1 -1
  409. package/build-types/form/input-control/stories/index.story.d.ts.map +1 -1
  410. package/build-types/form/primitives/autocomplete/clear.d.ts +13 -0
  411. package/build-types/form/primitives/autocomplete/clear.d.ts.map +1 -0
  412. package/build-types/form/primitives/autocomplete/collection.d.ts +3 -0
  413. package/build-types/form/primitives/autocomplete/collection.d.ts.map +1 -0
  414. package/build-types/form/primitives/autocomplete/empty.d.ts +10 -0
  415. package/build-types/form/primitives/autocomplete/empty.d.ts.map +1 -0
  416. package/build-types/form/primitives/autocomplete/index.d.ts +13 -0
  417. package/build-types/form/primitives/autocomplete/index.d.ts.map +1 -0
  418. package/build-types/form/primitives/autocomplete/input-group.d.ts +16 -0
  419. package/build-types/form/primitives/autocomplete/input-group.d.ts.map +1 -0
  420. package/build-types/form/primitives/autocomplete/input.d.ts +3 -0
  421. package/build-types/form/primitives/autocomplete/input.d.ts.map +1 -0
  422. package/build-types/form/primitives/autocomplete/item.d.ts +10 -0
  423. package/build-types/form/primitives/autocomplete/item.d.ts.map +1 -0
  424. package/build-types/form/primitives/autocomplete/list-body.d.ts +13 -0
  425. package/build-types/form/primitives/autocomplete/list-body.d.ts.map +1 -0
  426. package/build-types/form/primitives/autocomplete/list.d.ts +11 -0
  427. package/build-types/form/primitives/autocomplete/list.d.ts.map +1 -0
  428. package/build-types/form/primitives/autocomplete/popup.d.ts +11 -0
  429. package/build-types/form/primitives/autocomplete/popup.d.ts.map +1 -0
  430. package/build-types/form/primitives/autocomplete/portal.d.ts +8 -0
  431. package/build-types/form/primitives/autocomplete/portal.d.ts.map +1 -0
  432. package/build-types/form/primitives/autocomplete/root.d.ts +8 -0
  433. package/build-types/form/primitives/autocomplete/root.d.ts.map +1 -0
  434. package/build-types/form/primitives/autocomplete/stories/fixtures.d.ts +8 -0
  435. package/build-types/form/primitives/autocomplete/stories/fixtures.d.ts.map +1 -0
  436. package/build-types/form/primitives/autocomplete/stories/index.story.d.ts +41 -0
  437. package/build-types/form/primitives/autocomplete/stories/index.story.d.ts.map +1 -0
  438. package/build-types/form/primitives/autocomplete/test/index.test.d.ts +2 -0
  439. package/build-types/form/primitives/autocomplete/test/index.test.d.ts.map +1 -0
  440. package/build-types/form/primitives/autocomplete/types.d.ts +44 -0
  441. package/build-types/form/primitives/autocomplete/types.d.ts.map +1 -0
  442. package/build-types/form/primitives/autocomplete/value.d.ts +3 -0
  443. package/build-types/form/primitives/autocomplete/value.d.ts.map +1 -0
  444. package/build-types/form/primitives/field/stories/index.story.d.ts +1 -1
  445. package/build-types/form/primitives/field/stories/index.story.d.ts.map +1 -1
  446. package/build-types/form/primitives/fieldset/stories/index.story.d.ts +1 -1
  447. package/build-types/form/primitives/fieldset/stories/index.story.d.ts.map +1 -1
  448. package/build-types/form/primitives/index.d.ts +1 -0
  449. package/build-types/form/primitives/index.d.ts.map +1 -1
  450. package/build-types/form/primitives/input/stories/index.story.d.ts +1 -1
  451. package/build-types/form/primitives/input/stories/index.story.d.ts.map +1 -1
  452. package/build-types/form/primitives/input-layout/stories/index.story.d.ts +1 -1
  453. package/build-types/form/primitives/input-layout/stories/index.story.d.ts.map +1 -1
  454. package/build-types/form/primitives/select/index.d.ts +1 -0
  455. package/build-types/form/primitives/select/index.d.ts.map +1 -1
  456. package/build-types/form/primitives/select/item.d.ts.map +1 -1
  457. package/build-types/form/primitives/select/popup.d.ts +1 -2
  458. package/build-types/form/primitives/select/popup.d.ts.map +1 -1
  459. package/build-types/form/primitives/select/portal.d.ts +8 -0
  460. package/build-types/form/primitives/select/portal.d.ts.map +1 -0
  461. package/build-types/form/primitives/select/stories/index.story.d.ts +14 -6
  462. package/build-types/form/primitives/select/stories/index.story.d.ts.map +1 -1
  463. package/build-types/form/primitives/select/types.d.ts +7 -2
  464. package/build-types/form/primitives/select/types.d.ts.map +1 -1
  465. package/build-types/index.d.ts +1 -0
  466. package/build-types/index.d.ts.map +1 -1
  467. package/build-types/link/link.d.ts.map +1 -1
  468. package/build-types/link/stories/index.story.d.ts +2 -3
  469. package/build-types/link/stories/index.story.d.ts.map +1 -1
  470. package/build-types/link/types.d.ts +1 -2
  471. package/build-types/link/types.d.ts.map +1 -1
  472. package/build-types/notice/action-link.d.ts.map +1 -1
  473. package/build-types/popover/context.d.ts +6 -13
  474. package/build-types/popover/context.d.ts.map +1 -1
  475. package/build-types/popover/description.d.ts +0 -1
  476. package/build-types/popover/description.d.ts.map +1 -1
  477. package/build-types/popover/index.d.ts +2 -1
  478. package/build-types/popover/index.d.ts.map +1 -1
  479. package/build-types/popover/popup.d.ts +3 -2
  480. package/build-types/popover/popup.d.ts.map +1 -1
  481. package/build-types/popover/portal.d.ts +9 -0
  482. package/build-types/popover/portal.d.ts.map +1 -0
  483. package/build-types/popover/root.d.ts +2 -2
  484. package/build-types/popover/stories/index.story.d.ts +23 -15
  485. package/build-types/popover/stories/index.story.d.ts.map +1 -1
  486. package/build-types/popover/title.d.ts.map +1 -1
  487. package/build-types/popover/types.d.ts +8 -15
  488. package/build-types/popover/types.d.ts.map +1 -1
  489. package/build-types/stack/stories/index.story.d.ts.map +1 -1
  490. package/build-types/tabs/context.d.ts.map +1 -1
  491. package/build-types/tabs/panel.d.ts.map +1 -1
  492. package/build-types/tabs/stories/index.story.d.ts +1 -1
  493. package/build-types/tabs/stories/index.story.d.ts.map +1 -1
  494. package/build-types/text/stories/index.story.d.ts.map +1 -1
  495. package/build-types/tooltip/index.d.ts +2 -1
  496. package/build-types/tooltip/index.d.ts.map +1 -1
  497. package/build-types/tooltip/popup.d.ts.map +1 -1
  498. package/build-types/tooltip/portal.d.ts +8 -0
  499. package/build-types/tooltip/portal.d.ts.map +1 -0
  500. package/build-types/tooltip/provider.d.ts +1 -1
  501. package/build-types/tooltip/provider.d.ts.map +1 -1
  502. package/build-types/tooltip/stories/index.story.d.ts +18 -1
  503. package/build-types/tooltip/stories/index.story.d.ts.map +1 -1
  504. package/build-types/tooltip/stories/usage-guidelines.story.d.ts.map +1 -1
  505. package/build-types/tooltip/trigger.d.ts.map +1 -1
  506. package/build-types/tooltip/types.d.ts +11 -7
  507. package/build-types/tooltip/types.d.ts.map +1 -1
  508. package/build-types/utils/create-overlay-modal-context.d.ts +14 -0
  509. package/build-types/utils/create-overlay-modal-context.d.ts.map +1 -0
  510. package/build-types/utils/create-overlay-title-validation.d.ts +15 -0
  511. package/build-types/utils/create-overlay-title-validation.d.ts.map +1 -0
  512. package/build-types/utils/render-portal-with-children.d.ts +16 -0
  513. package/build-types/utils/render-portal-with-children.d.ts.map +1 -0
  514. package/build-types/utils/use-deprioritized-initial-focus.d.ts +9 -8
  515. package/build-types/utils/use-deprioritized-initial-focus.d.ts.map +1 -1
  516. package/build-types/utils/use-overlay-scroll-state-attributes.d.ts +85 -0
  517. package/build-types/utils/use-overlay-scroll-state-attributes.d.ts.map +1 -0
  518. package/build-types/utils/use-schedule-validation.d.ts +13 -0
  519. package/build-types/utils/use-schedule-validation.d.ts.map +1 -0
  520. package/build-types/visually-hidden/stories/index.story.d.ts.map +1 -1
  521. package/build-types/visually-hidden/visually-hidden.d.ts +4 -20
  522. package/build-types/visually-hidden/visually-hidden.d.ts.map +1 -1
  523. package/package.json +12 -12
  524. package/src/alert-dialog/index.ts +1 -0
  525. package/src/alert-dialog/popup.tsx +114 -45
  526. package/src/alert-dialog/portal.tsx +17 -0
  527. package/src/alert-dialog/stories/index.story.tsx +123 -3
  528. package/src/alert-dialog/style.module.css +13 -4
  529. package/src/alert-dialog/test/index.test.tsx +329 -3
  530. package/src/alert-dialog/types.ts +30 -3
  531. package/src/badge/stories/choosing-intent.story.tsx +1 -1
  532. package/src/badge/stories/index.story.tsx +1 -0
  533. package/src/card/stories/index.story.tsx +1 -0
  534. package/src/collapsible/stories/index.story.tsx +1 -0
  535. package/src/collapsible-card/content.tsx +12 -1
  536. package/src/collapsible-card/header.tsx +2 -0
  537. package/src/collapsible-card/stories/index.story.tsx +1 -0
  538. package/src/collapsible-card/style.module.css +16 -4
  539. package/src/dialog/content.tsx +47 -0
  540. package/src/dialog/context.tsx +14 -98
  541. package/src/dialog/description.tsx +27 -0
  542. package/src/dialog/footer.tsx +10 -2
  543. package/src/dialog/header.tsx +10 -2
  544. package/src/dialog/index.ts +16 -1
  545. package/src/dialog/popup.tsx +28 -8
  546. package/src/dialog/portal.tsx +18 -0
  547. package/src/dialog/root.tsx +22 -5
  548. package/src/dialog/stories/index.story.tsx +195 -51
  549. package/src/dialog/style.module.css +73 -23
  550. package/src/dialog/test/index.test.tsx +849 -149
  551. package/src/dialog/title.tsx +6 -4
  552. package/src/dialog/types.ts +64 -6
  553. package/src/drawer/action.tsx +28 -0
  554. package/src/drawer/close-icon.tsx +33 -0
  555. package/src/drawer/content.tsx +50 -0
  556. package/src/drawer/context.tsx +29 -0
  557. package/src/drawer/description.tsx +25 -0
  558. package/src/drawer/footer.tsx +34 -0
  559. package/src/drawer/header.tsx +34 -0
  560. package/src/drawer/index.ts +25 -0
  561. package/src/drawer/popup.tsx +100 -0
  562. package/src/drawer/portal.tsx +18 -0
  563. package/src/drawer/root.tsx +41 -0
  564. package/src/drawer/stories/index.story.tsx +543 -0
  565. package/src/drawer/style.module.css +324 -0
  566. package/src/drawer/test/index.test.tsx +1097 -0
  567. package/src/drawer/title.tsx +53 -0
  568. package/src/drawer/trigger.tsx +14 -0
  569. package/src/drawer/types.ts +174 -0
  570. package/src/empty-state/stories/index.story.tsx +2 -1
  571. package/src/form/input-control/stories/index.story.tsx +4 -1
  572. package/src/form/primitives/autocomplete/clear.tsx +35 -0
  573. package/src/form/primitives/autocomplete/collection.tsx +13 -0
  574. package/src/form/primitives/autocomplete/empty.tsx +17 -0
  575. package/src/form/primitives/autocomplete/index.ts +12 -0
  576. package/src/form/primitives/autocomplete/input-group.tsx +16 -0
  577. package/src/form/primitives/autocomplete/input.tsx +20 -0
  578. package/src/form/primitives/autocomplete/item.tsx +24 -0
  579. package/src/form/primitives/autocomplete/list-body.tsx +23 -0
  580. package/src/form/primitives/autocomplete/list.tsx +17 -0
  581. package/src/form/primitives/autocomplete/popup.tsx +42 -0
  582. package/src/form/primitives/autocomplete/portal.tsx +16 -0
  583. package/src/form/primitives/autocomplete/root.tsx +11 -0
  584. package/src/form/primitives/autocomplete/stories/fixtures.ts +35 -0
  585. package/src/form/primitives/autocomplete/stories/index.story.tsx +437 -0
  586. package/src/form/primitives/autocomplete/style.module.css +7 -0
  587. package/src/form/primitives/autocomplete/test/index.test.tsx +162 -0
  588. package/src/form/primitives/autocomplete/types.ts +74 -0
  589. package/src/form/primitives/autocomplete/value.tsx +6 -0
  590. package/src/form/primitives/field/stories/index.story.tsx +1 -1
  591. package/src/form/primitives/fieldset/stories/index.story.tsx +1 -1
  592. package/src/form/primitives/index.ts +1 -0
  593. package/src/form/primitives/input/stories/index.story.tsx +2 -1
  594. package/src/form/primitives/input-layout/stories/index.story.tsx +2 -1
  595. package/src/form/primitives/select/index.ts +1 -0
  596. package/src/form/primitives/select/item.tsx +0 -1
  597. package/src/form/primitives/select/popup.tsx +34 -37
  598. package/src/form/primitives/select/portal.tsx +16 -0
  599. package/src/form/primitives/select/stories/index.story.tsx +21 -7
  600. package/src/form/primitives/select/test/index.test.tsx +7 -3
  601. package/src/form/primitives/select/types.ts +9 -2
  602. package/src/index.ts +1 -0
  603. package/src/link/link.tsx +12 -26
  604. package/src/link/stories/index.story.tsx +6 -11
  605. package/src/link/style.module.css +5 -17
  606. package/src/link/test/index.test.tsx +31 -27
  607. package/src/link/types.ts +1 -2
  608. package/src/notice/action-link.tsx +7 -4
  609. package/src/notice/style.module.css +5 -5
  610. package/src/popover/context.tsx +6 -89
  611. package/src/popover/description.tsx +1 -5
  612. package/src/popover/index.ts +2 -1
  613. package/src/popover/popup.tsx +17 -15
  614. package/src/popover/portal.tsx +17 -0
  615. package/src/popover/root.tsx +2 -2
  616. package/src/popover/stories/index.story.tsx +56 -25
  617. package/src/popover/style.module.css +33 -4
  618. package/src/popover/test/index.test.tsx +189 -74
  619. package/src/popover/title.tsx +9 -5
  620. package/src/popover/types.ts +10 -15
  621. package/src/stack/stories/index.story.tsx +1 -0
  622. package/src/tabs/context.tsx +14 -34
  623. package/src/tabs/panel.tsx +7 -2
  624. package/src/tabs/stories/index.story.tsx +2 -1
  625. package/src/tabs/style.module.css +0 -17
  626. package/src/tabs/test/index.test.tsx +7 -3
  627. package/src/text/stories/index.story.tsx +1 -0
  628. package/src/text/text.tsx +2 -2
  629. package/src/tooltip/index.ts +2 -1
  630. package/src/tooltip/popup.tsx +24 -28
  631. package/src/tooltip/portal.tsx +16 -0
  632. package/src/tooltip/provider.tsx +3 -3
  633. package/src/tooltip/root.tsx +2 -2
  634. package/src/tooltip/stories/index.story.tsx +39 -1
  635. package/src/tooltip/stories/usage-guidelines.story.tsx +5 -1
  636. package/src/tooltip/style.module.css +12 -0
  637. package/src/tooltip/test/index.test.tsx +9 -3
  638. package/src/tooltip/trigger.tsx +3 -7
  639. package/src/tooltip/types.ts +13 -7
  640. package/src/utils/create-overlay-modal-context.tsx +34 -0
  641. package/src/utils/create-overlay-title-validation.tsx +116 -0
  642. package/src/utils/css/item-popup.module.css +9 -11
  643. package/src/utils/css/overlay-chrome.module.css +222 -0
  644. package/src/utils/render-portal-with-children.ts +27 -0
  645. package/src/utils/test/use-deprioritized-initial-focus.test.tsx +3 -3
  646. package/src/utils/use-deprioritized-initial-focus.ts +23 -17
  647. package/src/utils/use-overlay-scroll-state-attributes.ts +272 -0
  648. package/src/utils/use-schedule-validation.ts +45 -0
  649. package/src/visually-hidden/stories/index.story.tsx +1 -0
  650. package/src/visually-hidden/visually-hidden.tsx +9 -21
  651. package/build/types/css-modules.d.cjs +0 -2
  652. package/build/types/react.d.cjs +0 -5
  653. package/build/types/react.d.cjs.map +0 -7
  654. package/build-module/types/css-modules.d.mjs +0 -1
  655. package/build-module/types/react.d.mjs +0 -3
  656. package/build-module/types/react.d.mjs.map +0 -7
  657. package/src/types/css-modules.d.ts +0 -4
  658. package/src/types/react.d.ts +0 -7
  659. /package/build-module/{types/css-modules.d.mjs.map → drawer/types.mjs.map} +0 -0
  660. /package/{build/types/css-modules.d.cjs.map → build-module/form/primitives/autocomplete/types.mjs.map} +0 -0
@@ -51,16 +51,18 @@ var resets_default = { "box-sizing": "_336cd3e4e743482f__box-sizing" };
51
51
 
52
52
  // packages/ui/src/popover/popup.tsx
53
53
  var import_use_deprioritized_initial_focus = require("../utils/use-deprioritized-initial-focus.cjs");
54
+ var import_render_portal_with_children = require("../utils/render-portal-with-children.cjs");
54
55
  var import_context = require("./context.cjs");
56
+ var import_portal = require("./portal.cjs");
55
57
 
56
58
  // packages/ui/src/popover/style.module.css
57
- if (typeof document !== "undefined" && process.env.NODE_ENV !== "test" && !document.head.querySelector("style[data-wp-hash='65854cdb1e']")) {
59
+ if (typeof document !== "undefined" && process.env.NODE_ENV !== "test" && !document.head.querySelector("style[data-wp-hash='cc851ac208']")) {
58
60
  const style = document.createElement("style");
59
- style.setAttribute("data-wp-hash", "65854cdb1e");
60
- style.appendChild(document.createTextNode('@layer wp-ui-utilities, wp-ui-components, wp-ui-compositions, wp-ui-overrides;@layer wp-ui-components{._10450722b9676f78__positioner{z-index:var(--wp-ui-popover-z-index,initial)}._84e8f597bcf683b8__popup{background-color:var(--wpds-color-bg-surface-neutral-strong,#fff);border:var(--wpds-border-width-xs,1px) solid var(--wpds-color-stroke-surface-neutral-weak,#e4e4e4);border-radius:var(--wpds-border-radius-md,4px);box-shadow:var(--wpds-elevation-md,0 2px 3px 0 #0000000d,0 4px 5px 0 #0000000a,0 12px 12px 0 #00000008,0 16px 16px 0 #00000005);color:var(--wpds-color-fg-content-neutral,#1e1e1e);font-family:var(--wpds-typography-font-family-body,-apple-system,system-ui,"Segoe UI","Roboto","Oxygen-Sans","Ubuntu","Cantarell","Helvetica Neue",sans-serif);font-size:var(--wpds-typography-font-size-md,13px);line-height:var(--wpds-typography-line-height-md,24px);outline:0;padding:var(--wpds-dimension-padding-lg,16px)}.ca05d3eb89321fcd__arrow{display:flex;&[data-side=top]{bottom:-8px;rotate:180deg}&[data-side=bottom]{rotate:0deg;top:-8px}&[data-side=left]{inset-inline-end:-13px;rotate:90deg}&[data-side=right]{inset-inline-start:-13px;rotate:-90deg}}._12d8edd9eb946b5f__arrow-fill{fill:var(--wpds-color-bg-surface-neutral-strong,#fff)}._6ddab482bd929dad__arrow-stroke{fill:var(--wpds-color-stroke-surface-neutral-weak,#e4e4e4)}._42cb9ed02a2f0782__description{color:var(--wpds-color-fg-content-neutral-weak,#707070)}.e4d544aa033f05c6__backdrop{background-color:#00000026;inset:0;position:fixed;z-index:var(--wp-ui-popover-z-index,initial)}}'));
61
+ style.setAttribute("data-wp-hash", "cc851ac208");
62
+ style.appendChild(document.createTextNode('@layer wp-ui-utilities, wp-ui-components, wp-ui-compositions, wp-ui-overrides;@layer wp-ui-components{._10450722b9676f78__positioner{z-index:var(--wp-ui-popover-z-index,initial)}._84e8f597bcf683b8__popup{background-color:var(--wpds-color-bg-surface-neutral-strong,#fff);border:var(--wpds-border-width-xs,1px) solid var(--wpds-color-stroke-surface-neutral,#dbdbdb);border-radius:var(--wpds-border-radius-md,4px);box-shadow:var(--wpds-elevation-md,0 2px 3px 0 #0000000d,0 4px 5px 0 #0000000a,0 12px 12px 0 #00000008,0 16px 16px 0 #00000005);color:var(--wpds-color-fg-content-neutral,#1e1e1e);font-family:var(--wpds-typography-font-family-body,-apple-system,system-ui,"Segoe UI","Roboto","Oxygen-Sans","Ubuntu","Cantarell","Helvetica Neue",sans-serif);font-size:var(--wpds-typography-font-size-md,13px);line-height:var(--wpds-typography-line-height-md,24px);outline:0;padding:var(--wpds-dimension-padding-lg,16px)}.e4d544aa033f05c6__backdrop~* ._84e8f597bcf683b8__popup{border-color:#0000}@media (forced-colors:active){._84e8f597bcf683b8__popup,.e4d544aa033f05c6__backdrop~* ._84e8f597bcf683b8__popup{border-color:CanvasText}}.ca05d3eb89321fcd__arrow{display:flex;&[data-side=top]{bottom:-8px;rotate:180deg}&[data-side=bottom]{rotate:0deg;top:-8px}&[data-side=left]{inset-inline-end:-13px;rotate:90deg}&[data-side=right]{inset-inline-start:-13px;rotate:-90deg}}._12d8edd9eb946b5f__arrow-fill{fill:var(--wpds-color-bg-surface-neutral-strong,#fff)}._6ddab482bd929dad__arrow-stroke{fill:var(--wpds-color-stroke-surface-neutral,#dbdbdb)}._6d7e4729cd96960e__title{--_gcd-heading-color:var(--wpds-color-fg-content-neutral,#1e1e1e);color:var(--wpds-color-fg-content-neutral,#1e1e1e)}.e4d544aa033f05c6__backdrop{background-color:#00000026;inset:0;position:fixed;z-index:var(--wp-ui-popover-z-index,initial)}}'));
61
63
  document.head.appendChild(style);
62
64
  }
63
- var style_default = { "positioner": "_10450722b9676f78__positioner", "popup": "_84e8f597bcf683b8__popup", "arrow": "ca05d3eb89321fcd__arrow", "arrow-fill": "_12d8edd9eb946b5f__arrow-fill", "arrow-stroke": "_6ddab482bd929dad__arrow-stroke", "description": "_42cb9ed02a2f0782__description", "backdrop": "e4d544aa033f05c6__backdrop" };
65
+ var style_default = { "positioner": "_10450722b9676f78__positioner", "popup": "_84e8f597bcf683b8__popup", "backdrop": "e4d544aa033f05c6__backdrop", "arrow": "ca05d3eb89321fcd__arrow", "arrow-fill": "_12d8edd9eb946b5f__arrow-fill", "arrow-stroke": "_6ddab482bd929dad__arrow-stroke", "title": "_6d7e4729cd96960e__title" };
64
66
 
65
67
  // packages/ui/src/popover/popup.tsx
66
68
  var import_jsx_runtime = require("react/jsx-runtime");
@@ -78,19 +80,18 @@ var Popup = (0, import_element.forwardRef)(function PopoverPopup({
78
80
  collisionAvoidance,
79
81
  collisionBoundary,
80
82
  collisionPadding,
81
- container,
83
+ portal,
82
84
  finalFocus,
83
85
  initialFocus,
84
86
  side = "bottom",
85
87
  sideOffset = 8,
86
88
  sticky,
87
- style,
88
89
  variant = "default",
89
90
  ...props
90
91
  }, ref) {
91
92
  const { resolvedInitialFocus, popupRef } = (0, import_use_deprioritized_initial_focus.useDeprioritizedInitialFocus)({
92
93
  initialFocus,
93
- deprioritizedAttribute: CLOSE_ATTR
94
+ deprioritizedAttributes: [CLOSE_ATTR]
94
95
  });
95
96
  const mergedPopupRef = (0, import_compose.useMergeRefs)([ref, popupRef]);
96
97
  const backdropElement = backdrop ? /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_popover.Popover.Backdrop, { className: style_default.backdrop }) : null;
@@ -107,29 +108,28 @@ var Popup = (0, import_element.forwardRef)(function PopoverPopup({
107
108
  side,
108
109
  sideOffset,
109
110
  sticky,
110
- style,
111
- className: (0, import_clsx.default)(
112
- resets_default["box-sizing"],
113
- style_default.positioner,
114
- className
115
- ),
111
+ className: (0, import_clsx.default)(resets_default["box-sizing"], style_default.positioner),
116
112
  children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(ThemeProvider, { children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
117
113
  import_popover.Popover.Popup,
118
114
  {
119
115
  ref: mergedPopupRef,
120
116
  initialFocus: resolvedInitialFocus,
121
117
  finalFocus,
122
- className: (0, import_clsx.default)(variant !== "unstyled" && style_default.popup),
118
+ className: (0, import_clsx.default)(
119
+ variant !== "unstyled" && style_default.popup,
120
+ className
121
+ ),
123
122
  ...props,
124
123
  children: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_context.PopoverValidationProvider, { children })
125
124
  }
126
125
  ) })
127
126
  }
128
127
  );
129
- return /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_popover.Popover.Portal, { container, children: [
128
+ const portalChildren = /* @__PURE__ */ (0, import_jsx_runtime.jsxs)(import_jsx_runtime.Fragment, { children: [
130
129
  backdropElement,
131
130
  positioner
132
131
  ] });
132
+ return (0, import_render_portal_with_children.renderPortalWithChildren)(portal, /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_portal.Portal, {}), portalChildren);
133
133
  });
134
134
  // Annotate the CommonJS export names for ESM import in node:
135
135
  0 && (module.exports = {
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/popover/popup.tsx", "../../src/utils/css/resets.module.css", "../../src/popover/style.module.css"],
4
- "sourcesContent": ["import { Popover as _Popover } from '@base-ui/react/popover';\nimport clsx from 'clsx';\nimport { forwardRef } from '@wordpress/element';\nimport { useMergeRefs } from '@wordpress/compose';\nimport {\n\ttype ThemeProvider as ThemeProviderType,\n\tprivateApis as themePrivateApis,\n} from '@wordpress/theme';\nimport { unlock } from '../lock-unlock';\nimport resetStyles from '../utils/css/resets.module.css';\nimport { useDeprioritizedInitialFocus } from '../utils/use-deprioritized-initial-focus';\nimport { PopoverValidationProvider } from './context';\nimport styles from './style.module.css';\nimport type { PopupProps } from './types';\n\nconst ThemeProvider: typeof ThemeProviderType =\n\tunlock( themePrivateApis ).ThemeProvider;\n\nconst CLOSE_ATTR = 'data-wp-ui-popover-close';\n\n/**\n * Renders the floating popup container for the popover content.\n *\n * Handles portal rendering, positioning relative to the anchor, collision\n * avoidance, focus management, and optional backdrop. Supply a `container`\n * element for cross-document scenarios such as iframes.\n */\nconst Popup = forwardRef< HTMLDivElement, PopupProps >( function PopoverPopup(\n\t{\n\t\talign = 'center',\n\t\talignOffset,\n\t\tanchor,\n\t\t// Matches the popup's border-radius (--wpds-border-radius-md).\n\t\tarrowPadding = 8,\n\t\tbackdrop = false,\n\t\tchildren,\n\t\tclassName,\n\t\tcollisionAvoidance,\n\t\tcollisionBoundary,\n\t\tcollisionPadding,\n\t\tcontainer,\n\t\tfinalFocus,\n\t\tinitialFocus,\n\t\tside = 'bottom',\n\t\tsideOffset = 8,\n\t\tsticky,\n\t\tstyle,\n\t\tvariant = 'default',\n\t\t...props\n\t},\n\tref\n) {\n\tconst { resolvedInitialFocus, popupRef } = useDeprioritizedInitialFocus( {\n\t\tinitialFocus,\n\t\tdeprioritizedAttribute: CLOSE_ATTR,\n\t} );\n\tconst mergedPopupRef = useMergeRefs( [ ref, popupRef ] );\n\n\tconst backdropElement = backdrop ? (\n\t\t<_Popover.Backdrop className={ styles.backdrop } />\n\t) : null;\n\n\tconst positioner = (\n\t\t<_Popover.Positioner\n\t\t\talign={ align }\n\t\t\talignOffset={ alignOffset }\n\t\t\tanchor={ anchor }\n\t\t\tarrowPadding={ arrowPadding }\n\t\t\tcollisionAvoidance={ collisionAvoidance }\n\t\t\tcollisionBoundary={ collisionBoundary }\n\t\t\tcollisionPadding={ collisionPadding }\n\t\t\tside={ side }\n\t\t\tsideOffset={ sideOffset }\n\t\t\tsticky={ sticky }\n\t\t\tstyle={ style }\n\t\t\tclassName={ clsx(\n\t\t\t\tresetStyles[ 'box-sizing' ],\n\t\t\t\tstyles.positioner,\n\t\t\t\tclassName\n\t\t\t) }\n\t\t>\n\t\t\t<ThemeProvider>\n\t\t\t\t<_Popover.Popup\n\t\t\t\t\tref={ mergedPopupRef }\n\t\t\t\t\tinitialFocus={ resolvedInitialFocus }\n\t\t\t\t\tfinalFocus={ finalFocus }\n\t\t\t\t\tclassName={ clsx( variant !== 'unstyled' && styles.popup ) }\n\t\t\t\t\t{ ...props }\n\t\t\t\t>\n\t\t\t\t\t<PopoverValidationProvider>\n\t\t\t\t\t\t{ children }\n\t\t\t\t\t</PopoverValidationProvider>\n\t\t\t\t</_Popover.Popup>\n\t\t\t</ThemeProvider>\n\t\t</_Popover.Positioner>\n\t);\n\n\treturn (\n\t\t<_Popover.Portal container={ container }>\n\t\t\t{ backdropElement }\n\t\t\t{ positioner }\n\t\t</_Popover.Portal>\n\t);\n} );\n\nexport { Popup };\n", "if (typeof document !== 'undefined' && process.env.NODE_ENV !== 'test' && !document.head.querySelector(\"style[data-wp-hash='e3ae230cea']\")) {\n\tconst style = document.createElement(\"style\");\n\tstyle.setAttribute(\"data-wp-hash\", \"e3ae230cea\");\n\tstyle.appendChild(document.createTextNode(\"@layer wp-ui-utilities, wp-ui-components, wp-ui-compositions, wp-ui-overrides;@layer wp-ui-utilities{._336cd3e4e743482f__box-sizing{box-sizing:border-box;*,:after,:before{box-sizing:inherit}}}\"));\n\tdocument.head.appendChild(style);\n}\nexport default {\"box-sizing\":\"_336cd3e4e743482f__box-sizing\"};\n", "if (typeof document !== 'undefined' && process.env.NODE_ENV !== 'test' && !document.head.querySelector(\"style[data-wp-hash='65854cdb1e']\")) {\n\tconst style = document.createElement(\"style\");\n\tstyle.setAttribute(\"data-wp-hash\", \"65854cdb1e\");\n\tstyle.appendChild(document.createTextNode(\"@layer wp-ui-utilities, wp-ui-components, wp-ui-compositions, wp-ui-overrides;@layer wp-ui-components{._10450722b9676f78__positioner{z-index:var(--wp-ui-popover-z-index,initial)}._84e8f597bcf683b8__popup{background-color:var(--wpds-color-bg-surface-neutral-strong,#fff);border:var(--wpds-border-width-xs,1px) solid var(--wpds-color-stroke-surface-neutral-weak,#e4e4e4);border-radius:var(--wpds-border-radius-md,4px);box-shadow:var(--wpds-elevation-md,0 2px 3px 0 #0000000d,0 4px 5px 0 #0000000a,0 12px 12px 0 #00000008,0 16px 16px 0 #00000005);color:var(--wpds-color-fg-content-neutral,#1e1e1e);font-family:var(--wpds-typography-font-family-body,-apple-system,system-ui,\\\"Segoe UI\\\",\\\"Roboto\\\",\\\"Oxygen-Sans\\\",\\\"Ubuntu\\\",\\\"Cantarell\\\",\\\"Helvetica Neue\\\",sans-serif);font-size:var(--wpds-typography-font-size-md,13px);line-height:var(--wpds-typography-line-height-md,24px);outline:0;padding:var(--wpds-dimension-padding-lg,16px)}.ca05d3eb89321fcd__arrow{display:flex;&[data-side=top]{bottom:-8px;rotate:180deg}&[data-side=bottom]{rotate:0deg;top:-8px}&[data-side=left]{inset-inline-end:-13px;rotate:90deg}&[data-side=right]{inset-inline-start:-13px;rotate:-90deg}}._12d8edd9eb946b5f__arrow-fill{fill:var(--wpds-color-bg-surface-neutral-strong,#fff)}._6ddab482bd929dad__arrow-stroke{fill:var(--wpds-color-stroke-surface-neutral-weak,#e4e4e4)}._42cb9ed02a2f0782__description{color:var(--wpds-color-fg-content-neutral-weak,#707070)}.e4d544aa033f05c6__backdrop{background-color:#00000026;inset:0;position:fixed;z-index:var(--wp-ui-popover-z-index,initial)}}\"));\n\tdocument.head.appendChild(style);\n}\nexport default {\"positioner\":\"_10450722b9676f78__positioner\",\"popup\":\"_84e8f597bcf683b8__popup\",\"arrow\":\"ca05d3eb89321fcd__arrow\",\"arrow-fill\":\"_12d8edd9eb946b5f__arrow-fill\",\"arrow-stroke\":\"_6ddab482bd929dad__arrow-stroke\",\"description\":\"_42cb9ed02a2f0782__description\",\"backdrop\":\"e4d544aa033f05c6__backdrop\"};\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,qBAAoC;AACpC,kBAAiB;AACjB,qBAA2B;AAC3B,qBAA6B;AAC7B,mBAGO;AACP,yBAAuB;;;ACRvB,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,kMAAkM,CAAC;AAC7O,WAAS,KAAK,YAAY,KAAK;AAChC;AACA,IAAO,iBAAQ,EAAC,cAAa,gCAA+B;;;ADI5D,6CAA6C;AAC7C,qBAA0C;;;AEX1C,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,sgDAAkhD,CAAC;AAC7jD,WAAS,KAAK,YAAY,KAAK;AAChC;AACA,IAAO,gBAAQ,EAAC,cAAa,iCAAgC,SAAQ,4BAA2B,SAAQ,2BAA0B,cAAa,iCAAgC,gBAAe,mCAAkC,eAAc,kCAAiC,YAAW,6BAA4B;;;AFqDpT;AA5CF,IAAM,oBACL,2BAAQ,aAAAA,WAAiB,EAAE;AAE5B,IAAM,aAAa;AASnB,IAAM,YAAQ,2BAA0C,SAAS,aAChE;AAAA,EACC,QAAQ;AAAA,EACR;AAAA,EACA;AAAA;AAAA,EAEA,eAAe;AAAA,EACf,WAAW;AAAA,EACX;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,OAAO;AAAA,EACP,aAAa;AAAA,EACb;AAAA,EACA;AAAA,EACA,UAAU;AAAA,EACV,GAAG;AACJ,GACA,KACC;AACD,QAAM,EAAE,sBAAsB,SAAS,QAAI,qEAA8B;AAAA,IACxE;AAAA,IACA,wBAAwB;AAAA,EACzB,CAAE;AACF,QAAM,qBAAiB,6BAAc,CAAE,KAAK,QAAS,CAAE;AAEvD,QAAM,kBAAkB,WACvB,4CAAC,eAAAC,QAAS,UAAT,EAAkB,WAAY,cAAO,UAAW,IAC9C;AAEJ,QAAM,aACL;AAAA,IAAC,eAAAA,QAAS;AAAA,IAAT;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA,eAAY,YAAAC;AAAA,QACX,eAAa,YAAa;AAAA,QAC1B,cAAO;AAAA,QACP;AAAA,MACD;AAAA,MAEA,sDAAC,iBACA;AAAA,QAAC,eAAAD,QAAS;AAAA,QAAT;AAAA,UACA,KAAM;AAAA,UACN,cAAe;AAAA,UACf;AAAA,UACA,eAAY,YAAAC,SAAM,YAAY,cAAc,cAAO,KAAM;AAAA,UACvD,GAAG;AAAA,UAEL,sDAAC,4CACE,UACH;AAAA;AAAA,MACD,GACD;AAAA;AAAA,EACD;AAGD,SACC,6CAAC,eAAAD,QAAS,QAAT,EAAgB,WACd;AAAA;AAAA,IACA;AAAA,KACH;AAEF,CAAE;",
4
+ "sourcesContent": ["import { Popover as _Popover } from '@base-ui/react/popover';\nimport clsx from 'clsx';\nimport { forwardRef } from '@wordpress/element';\nimport { useMergeRefs } from '@wordpress/compose';\nimport {\n\ttype ThemeProvider as ThemeProviderType,\n\tprivateApis as themePrivateApis,\n} from '@wordpress/theme';\nimport { unlock } from '../lock-unlock';\nimport resetStyles from '../utils/css/resets.module.css';\nimport { useDeprioritizedInitialFocus } from '../utils/use-deprioritized-initial-focus';\nimport { renderPortalWithChildren } from '../utils/render-portal-with-children';\nimport { PopoverValidationProvider } from './context';\nimport { Portal } from './portal';\nimport styles from './style.module.css';\nimport type { PopupProps } from './types';\n\nconst ThemeProvider: typeof ThemeProviderType =\n\tunlock( themePrivateApis ).ThemeProvider;\n\nconst CLOSE_ATTR = 'data-wp-ui-popover-close';\n\n/**\n * Renders the floating popup container for the popover content.\n *\n * Handles portal rendering, positioning relative to the anchor, collision\n * avoidance, focus management, and optional backdrop. Use\n * `portal={ <Popover.Portal container={ ... } /> }` for cross-document\n * scenarios such as iframes.\n */\nconst Popup = forwardRef< HTMLDivElement, PopupProps >( function PopoverPopup(\n\t{\n\t\talign = 'center',\n\t\talignOffset,\n\t\tanchor,\n\t\t// Matches the popup's border-radius (--wpds-border-radius-md).\n\t\tarrowPadding = 8,\n\t\tbackdrop = false,\n\t\tchildren,\n\t\tclassName,\n\t\tcollisionAvoidance,\n\t\tcollisionBoundary,\n\t\tcollisionPadding,\n\t\tportal,\n\t\tfinalFocus,\n\t\tinitialFocus,\n\t\tside = 'bottom',\n\t\tsideOffset = 8,\n\t\tsticky,\n\t\tvariant = 'default',\n\t\t...props\n\t},\n\tref\n) {\n\tconst { resolvedInitialFocus, popupRef } = useDeprioritizedInitialFocus( {\n\t\tinitialFocus,\n\t\tdeprioritizedAttributes: [ CLOSE_ATTR ],\n\t} );\n\tconst mergedPopupRef = useMergeRefs( [ ref, popupRef ] );\n\n\tconst backdropElement = backdrop ? (\n\t\t<_Popover.Backdrop className={ styles.backdrop } />\n\t) : null;\n\n\tconst positioner = (\n\t\t<_Popover.Positioner\n\t\t\talign={ align }\n\t\t\talignOffset={ alignOffset }\n\t\t\tanchor={ anchor }\n\t\t\tarrowPadding={ arrowPadding }\n\t\t\tcollisionAvoidance={ collisionAvoidance }\n\t\t\tcollisionBoundary={ collisionBoundary }\n\t\t\tcollisionPadding={ collisionPadding }\n\t\t\tside={ side }\n\t\t\tsideOffset={ sideOffset }\n\t\t\tsticky={ sticky }\n\t\t\tclassName={ clsx( resetStyles[ 'box-sizing' ], styles.positioner ) }\n\t\t>\n\t\t\t<ThemeProvider>\n\t\t\t\t<_Popover.Popup\n\t\t\t\t\tref={ mergedPopupRef }\n\t\t\t\t\tinitialFocus={ resolvedInitialFocus }\n\t\t\t\t\tfinalFocus={ finalFocus }\n\t\t\t\t\tclassName={ clsx(\n\t\t\t\t\t\tvariant !== 'unstyled' && styles.popup,\n\t\t\t\t\t\tclassName\n\t\t\t\t\t) }\n\t\t\t\t\t{ ...props }\n\t\t\t\t>\n\t\t\t\t\t<PopoverValidationProvider>\n\t\t\t\t\t\t{ children }\n\t\t\t\t\t</PopoverValidationProvider>\n\t\t\t\t</_Popover.Popup>\n\t\t\t</ThemeProvider>\n\t\t</_Popover.Positioner>\n\t);\n\n\tconst portalChildren = (\n\t\t<>\n\t\t\t{ backdropElement }\n\t\t\t{ positioner }\n\t\t</>\n\t);\n\n\treturn renderPortalWithChildren( portal, <Portal />, portalChildren );\n} );\n\nexport { Popup };\n", "if (typeof document !== 'undefined' && process.env.NODE_ENV !== 'test' && !document.head.querySelector(\"style[data-wp-hash='e3ae230cea']\")) {\n\tconst style = document.createElement(\"style\");\n\tstyle.setAttribute(\"data-wp-hash\", \"e3ae230cea\");\n\tstyle.appendChild(document.createTextNode(\"@layer wp-ui-utilities, wp-ui-components, wp-ui-compositions, wp-ui-overrides;@layer wp-ui-utilities{._336cd3e4e743482f__box-sizing{box-sizing:border-box;*,:after,:before{box-sizing:inherit}}}\"));\n\tdocument.head.appendChild(style);\n}\nexport default {\"box-sizing\":\"_336cd3e4e743482f__box-sizing\"};\n", "if (typeof document !== 'undefined' && process.env.NODE_ENV !== 'test' && !document.head.querySelector(\"style[data-wp-hash='cc851ac208']\")) {\n\tconst style = document.createElement(\"style\");\n\tstyle.setAttribute(\"data-wp-hash\", \"cc851ac208\");\n\tstyle.appendChild(document.createTextNode(\"@layer wp-ui-utilities, wp-ui-components, wp-ui-compositions, wp-ui-overrides;@layer wp-ui-components{._10450722b9676f78__positioner{z-index:var(--wp-ui-popover-z-index,initial)}._84e8f597bcf683b8__popup{background-color:var(--wpds-color-bg-surface-neutral-strong,#fff);border:var(--wpds-border-width-xs,1px) solid var(--wpds-color-stroke-surface-neutral,#dbdbdb);border-radius:var(--wpds-border-radius-md,4px);box-shadow:var(--wpds-elevation-md,0 2px 3px 0 #0000000d,0 4px 5px 0 #0000000a,0 12px 12px 0 #00000008,0 16px 16px 0 #00000005);color:var(--wpds-color-fg-content-neutral,#1e1e1e);font-family:var(--wpds-typography-font-family-body,-apple-system,system-ui,\\\"Segoe UI\\\",\\\"Roboto\\\",\\\"Oxygen-Sans\\\",\\\"Ubuntu\\\",\\\"Cantarell\\\",\\\"Helvetica Neue\\\",sans-serif);font-size:var(--wpds-typography-font-size-md,13px);line-height:var(--wpds-typography-line-height-md,24px);outline:0;padding:var(--wpds-dimension-padding-lg,16px)}.e4d544aa033f05c6__backdrop~* ._84e8f597bcf683b8__popup{border-color:#0000}@media (forced-colors:active){._84e8f597bcf683b8__popup,.e4d544aa033f05c6__backdrop~* ._84e8f597bcf683b8__popup{border-color:CanvasText}}.ca05d3eb89321fcd__arrow{display:flex;&[data-side=top]{bottom:-8px;rotate:180deg}&[data-side=bottom]{rotate:0deg;top:-8px}&[data-side=left]{inset-inline-end:-13px;rotate:90deg}&[data-side=right]{inset-inline-start:-13px;rotate:-90deg}}._12d8edd9eb946b5f__arrow-fill{fill:var(--wpds-color-bg-surface-neutral-strong,#fff)}._6ddab482bd929dad__arrow-stroke{fill:var(--wpds-color-stroke-surface-neutral,#dbdbdb)}._6d7e4729cd96960e__title{--_gcd-heading-color:var(--wpds-color-fg-content-neutral,#1e1e1e);color:var(--wpds-color-fg-content-neutral,#1e1e1e)}.e4d544aa033f05c6__backdrop{background-color:#00000026;inset:0;position:fixed;z-index:var(--wp-ui-popover-z-index,initial)}}\"));\n\tdocument.head.appendChild(style);\n}\nexport default {\"positioner\":\"_10450722b9676f78__positioner\",\"popup\":\"_84e8f597bcf683b8__popup\",\"backdrop\":\"e4d544aa033f05c6__backdrop\",\"arrow\":\"ca05d3eb89321fcd__arrow\",\"arrow-fill\":\"_12d8edd9eb946b5f__arrow-fill\",\"arrow-stroke\":\"_6ddab482bd929dad__arrow-stroke\",\"title\":\"_6d7e4729cd96960e__title\"};\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,qBAAoC;AACpC,kBAAiB;AACjB,qBAA2B;AAC3B,qBAA6B;AAC7B,mBAGO;AACP,yBAAuB;;;ACRvB,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,kMAAkM,CAAC;AAC7O,WAAS,KAAK,YAAY,KAAK;AAChC;AACA,IAAO,iBAAQ,EAAC,cAAa,gCAA+B;;;ADI5D,6CAA6C;AAC7C,yCAAyC;AACzC,qBAA0C;AAC1C,oBAAuB;;;AEbvB,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,uwDAAmxD,CAAC;AAC9zD,WAAS,KAAK,YAAY,KAAK;AAChC;AACA,IAAO,gBAAQ,EAAC,cAAa,iCAAgC,SAAQ,4BAA2B,YAAW,8BAA6B,SAAQ,2BAA0B,cAAa,iCAAgC,gBAAe,mCAAkC,SAAQ,2BAA0B;;;AFuDxS;AA5CF,IAAM,oBACL,2BAAQ,aAAAA,WAAiB,EAAE;AAE5B,IAAM,aAAa;AAUnB,IAAM,YAAQ,2BAA0C,SAAS,aAChE;AAAA,EACC,QAAQ;AAAA,EACR;AAAA,EACA;AAAA;AAAA,EAEA,eAAe;AAAA,EACf,WAAW;AAAA,EACX;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA;AAAA,EACA,OAAO;AAAA,EACP,aAAa;AAAA,EACb;AAAA,EACA,UAAU;AAAA,EACV,GAAG;AACJ,GACA,KACC;AACD,QAAM,EAAE,sBAAsB,SAAS,QAAI,qEAA8B;AAAA,IACxE;AAAA,IACA,yBAAyB,CAAE,UAAW;AAAA,EACvC,CAAE;AACF,QAAM,qBAAiB,6BAAc,CAAE,KAAK,QAAS,CAAE;AAEvD,QAAM,kBAAkB,WACvB,4CAAC,eAAAC,QAAS,UAAT,EAAkB,WAAY,cAAO,UAAW,IAC9C;AAEJ,QAAM,aACL;AAAA,IAAC,eAAAA,QAAS;AAAA,IAAT;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA;AAAA,MACA,eAAY,YAAAC,SAAM,eAAa,YAAa,GAAG,cAAO,UAAW;AAAA,MAEjE,sDAAC,iBACA;AAAA,QAAC,eAAAD,QAAS;AAAA,QAAT;AAAA,UACA,KAAM;AAAA,UACN,cAAe;AAAA,UACf;AAAA,UACA,eAAY,YAAAC;AAAA,YACX,YAAY,cAAc,cAAO;AAAA,YACjC;AAAA,UACD;AAAA,UACE,GAAG;AAAA,UAEL,sDAAC,4CACE,UACH;AAAA;AAAA,MACD,GACD;AAAA;AAAA,EACD;AAGD,QAAM,iBACL,4EACG;AAAA;AAAA,IACA;AAAA,KACH;AAGD,aAAO,6DAA0B,QAAQ,4CAAC,wBAAO,GAAI,cAAe;AACrE,CAAE;",
6
6
  "names": ["themePrivateApis", "_Popover", "clsx"]
7
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/popover/portal.tsx
21
+ var portal_exports = {};
22
+ __export(portal_exports, {
23
+ Portal: () => Portal
24
+ });
25
+ module.exports = __toCommonJS(portal_exports);
26
+ var import_popover = require("@base-ui/react/popover");
27
+ var import_element = require("@wordpress/element");
28
+ var import_jsx_runtime = require("react/jsx-runtime");
29
+ var Portal = (0, import_element.forwardRef)(
30
+ function PopoverPortal(props, ref) {
31
+ return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_popover.Popover.Portal, { ref, ...props });
32
+ }
33
+ );
34
+ // Annotate the CommonJS export names for ESM import in node:
35
+ 0 && (module.exports = {
36
+ Portal
37
+ });
38
+ //# sourceMappingURL=portal.cjs.map
@@ -0,0 +1,7 @@
1
+ {
2
+ "version": 3,
3
+ "sources": ["../../src/popover/portal.tsx"],
4
+ "sourcesContent": ["import { Popover as _Popover } from '@base-ui/react/popover';\nimport { forwardRef } from '@wordpress/element';\nimport type { PortalProps } from './types';\n\n/**\n * Root element that portals `Popover` floating content. Pass to\n * `Popover.Popup`'s `portal` prop (for example `container` for\n * cross-document rendering). When `portal` is omitted, `Popover.Popup` uses\n * this component with default props.\n */\nconst Portal = forwardRef< HTMLDivElement, PortalProps >(\n\tfunction PopoverPortal( props, ref ) {\n\t\treturn <_Popover.Portal ref={ ref } { ...props } />;\n\t}\n);\n\nexport { Portal };\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,qBAAoC;AACpC,qBAA2B;AAWlB;AAFT,IAAM,aAAS;AAAA,EACd,SAAS,cAAe,OAAO,KAAM;AACpC,WAAO,4CAAC,eAAAA,QAAS,QAAT,EAAgB,KAAc,GAAG,OAAQ;AAAA,EAClD;AACD;",
6
+ "names": ["_Popover"]
7
+ }
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/popover/root.tsx"],
4
- "sourcesContent": ["import { Popover as _Popover } from '@base-ui/react/popover';\nimport type { RootProps } from './types';\n\n/**\n * An accessible popup anchored to a trigger element.\n *\n * Popover renders ARIA-compliant floating content that appears next to its\n * trigger. It can contain interactive content such as form controls, menus,\n * and rich descriptions.\n *\n * Compose the compound components to build a popover:\n *\n * - `Popover.Root` \u2014 provides open state and context to all sub-components.\n * - `Popover.Trigger` \u2014 the button that toggles the popup.\n * - `Popover.Popup` \u2014 the floating container (portal, positioning, collision\n * avoidance).\n * - `Popover.Arrow` \u2014 an optional arrow pointing toward the anchor.\n * - `Popover.Title` \u2014 **required** heading that labels the popover for\n * accessibility (can be visually hidden).\n * - `Popover.Description` \u2014 optional paragraph linked via `aria-describedby`.\n * - `Popover.Close` \u2014 a button that closes the popover when clicked.\n * **Required** when `modal` is `true` or `'trap-focus'` so that focus\n * can cycle correctly and the user can dismiss the popover.\n *\n * ```jsx\n * <Popover.Root>\n * <Popover.Trigger>Open</Popover.Trigger>\n * <Popover.Popup>\n * <Popover.Arrow />\n * <Popover.Title>Popover title</Popover.Title>\n * <Popover.Description>Popover description</Popover.Description>\n * <Popover.Close>Close</Popover.Close>\n * </Popover.Popup>\n * </Popover.Root>\n * ```\n */\nfunction Root( props: RootProps ) {\n\treturn <_Popover.Root { ...props } />;\n}\n\nexport { Root };\n"],
4
+ "sourcesContent": ["import { Popover as _Popover } from '@base-ui/react/popover';\nimport type { RootProps } from './types';\n\n/**\n * An accessible popup anchored to a trigger element.\n *\n * Popover renders ARIA-compliant floating content that appears next to its\n * trigger. It can contain interactive content such as form controls, menus,\n * and rich descriptions.\n *\n * Compose the compound components to build a popover:\n *\n * - `Popover.Root` \u2014 provides open state and context to all sub-components.\n * - `Popover.Trigger` \u2014 the button that toggles the popup.\n * - `Popover.Popup` \u2014 the floating container (positioning, collision\n * avoidance); portals by default or via `portal={ <Popover.Portal /> }`.\n * - `Popover.Arrow` \u2014 an optional arrow pointing toward the anchor.\n * - `Popover.Title` \u2014 **required** heading that labels the popover for\n * accessibility (can be visually hidden).\n * - `Popover.Description` \u2014 optional paragraph linked via `aria-describedby`.\n * - `Popover.Close` \u2014 a button that closes the popover when clicked.\n * **Required** when `modal` is `true` or `'trap-focus'` so that focus\n * can cycle correctly and the user can dismiss the popover.\n *\n * ```jsx\n * <Popover.Root>\n * <Popover.Trigger>Open</Popover.Trigger>\n * <Popover.Popup>\n * <Popover.Arrow />\n * <Popover.Title>Popover title</Popover.Title>\n * <Popover.Description>Popover description</Popover.Description>\n * <Popover.Close>Close</Popover.Close>\n * </Popover.Popup>\n * </Popover.Root>\n * ```\n */\nfunction Root( props: RootProps ) {\n\treturn <_Popover.Root { ...props } />;\n}\n\nexport { Root };\n"],
5
5
  "mappings": ";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,qBAAoC;AAqC5B;AADR,SAAS,KAAM,OAAmB;AACjC,SAAO,4CAAC,eAAAA,QAAS,MAAT,EAAgB,GAAG,OAAQ;AACpC;",
6
6
  "names": ["_Popover"]
7
7
  }
@@ -28,14 +28,28 @@ var import_compose = require("@wordpress/compose");
28
28
  var import_element = require("@wordpress/element");
29
29
  var import_text = require("../text/index.cjs");
30
30
  var import_context = require("./context.cjs");
31
+
32
+ // packages/ui/src/popover/style.module.css
33
+ if (typeof document !== "undefined" && process.env.NODE_ENV !== "test" && !document.head.querySelector("style[data-wp-hash='cc851ac208']")) {
34
+ const style = document.createElement("style");
35
+ style.setAttribute("data-wp-hash", "cc851ac208");
36
+ style.appendChild(document.createTextNode('@layer wp-ui-utilities, wp-ui-components, wp-ui-compositions, wp-ui-overrides;@layer wp-ui-components{._10450722b9676f78__positioner{z-index:var(--wp-ui-popover-z-index,initial)}._84e8f597bcf683b8__popup{background-color:var(--wpds-color-bg-surface-neutral-strong,#fff);border:var(--wpds-border-width-xs,1px) solid var(--wpds-color-stroke-surface-neutral,#dbdbdb);border-radius:var(--wpds-border-radius-md,4px);box-shadow:var(--wpds-elevation-md,0 2px 3px 0 #0000000d,0 4px 5px 0 #0000000a,0 12px 12px 0 #00000008,0 16px 16px 0 #00000005);color:var(--wpds-color-fg-content-neutral,#1e1e1e);font-family:var(--wpds-typography-font-family-body,-apple-system,system-ui,"Segoe UI","Roboto","Oxygen-Sans","Ubuntu","Cantarell","Helvetica Neue",sans-serif);font-size:var(--wpds-typography-font-size-md,13px);line-height:var(--wpds-typography-line-height-md,24px);outline:0;padding:var(--wpds-dimension-padding-lg,16px)}.e4d544aa033f05c6__backdrop~* ._84e8f597bcf683b8__popup{border-color:#0000}@media (forced-colors:active){._84e8f597bcf683b8__popup,.e4d544aa033f05c6__backdrop~* ._84e8f597bcf683b8__popup{border-color:CanvasText}}.ca05d3eb89321fcd__arrow{display:flex;&[data-side=top]{bottom:-8px;rotate:180deg}&[data-side=bottom]{rotate:0deg;top:-8px}&[data-side=left]{inset-inline-end:-13px;rotate:90deg}&[data-side=right]{inset-inline-start:-13px;rotate:-90deg}}._12d8edd9eb946b5f__arrow-fill{fill:var(--wpds-color-bg-surface-neutral-strong,#fff)}._6ddab482bd929dad__arrow-stroke{fill:var(--wpds-color-stroke-surface-neutral,#dbdbdb)}._6d7e4729cd96960e__title{--_gcd-heading-color:var(--wpds-color-fg-content-neutral,#1e1e1e);color:var(--wpds-color-fg-content-neutral,#1e1e1e)}.e4d544aa033f05c6__backdrop{background-color:#00000026;inset:0;position:fixed;z-index:var(--wp-ui-popover-z-index,initial)}}'));
37
+ document.head.appendChild(style);
38
+ }
39
+ var style_default = { "positioner": "_10450722b9676f78__positioner", "popup": "_84e8f597bcf683b8__popup", "backdrop": "e4d544aa033f05c6__backdrop", "arrow": "ca05d3eb89321fcd__arrow", "arrow-fill": "_12d8edd9eb946b5f__arrow-fill", "arrow-stroke": "_6ddab482bd929dad__arrow-stroke", "title": "_6d7e4729cd96960e__title" };
40
+
41
+ // packages/ui/src/popover/title.tsx
31
42
  var import_jsx_runtime = require("react/jsx-runtime");
32
43
  var Title = (0, import_element.forwardRef)(
33
- function PopoverTitle({ className, children, ...props }, forwardedRef) {
44
+ function PopoverTitle({ children, ...props }, forwardedRef) {
34
45
  const validationContext = (0, import_context.usePopoverValidationContext)();
35
46
  const internalRef = (0, import_element.useRef)(null);
36
47
  const mergedRef = (0, import_compose.useMergeRefs)([internalRef, forwardedRef]);
37
- (0, import_element.useLayoutEffect)(() => {
38
- validationContext?.registerTitle(internalRef.current);
48
+ (0, import_element.useEffect)(() => {
49
+ if (validationContext) {
50
+ return validationContext.registerTitle(internalRef.current);
51
+ }
52
+ return void 0;
39
53
  }, [validationContext]);
40
54
  return /* @__PURE__ */ (0, import_jsx_runtime.jsx)(
41
55
  import_text.Text,
@@ -43,7 +57,7 @@ var Title = (0, import_element.forwardRef)(
43
57
  ref: mergedRef,
44
58
  variant: "heading-xl",
45
59
  render: /* @__PURE__ */ (0, import_jsx_runtime.jsx)(import_popover.Popover.Title, { ...props }),
46
- className,
60
+ className: style_default.title,
47
61
  children
48
62
  }
49
63
  );
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
- "sources": ["../../src/popover/title.tsx"],
4
- "sourcesContent": ["import { Popover as _Popover } from '@base-ui/react/popover';\nimport { useMergeRefs } from '@wordpress/compose';\nimport { forwardRef, useLayoutEffect, useRef } from '@wordpress/element';\nimport { Text } from '../text';\nimport { usePopoverValidationContext } from './context';\nimport type { TitleProps } from './types';\n\n/**\n * Renders a heading that labels the popover for accessibility.\n *\n * **Required** \u2014 every popover must include a `Popover.Title`, even if\n * visually hidden. The rendered element is linked to the popup via\n * `aria-labelledby`. Uses the `heading-xl` text variant, matching Dialog.\n *\n * To visually hide the title while keeping it accessible, wrap it with\n * `VisuallyHidden` using the `render` prop:\n *\n * ```jsx\n * <VisuallyHidden render={ <Popover.Title /> }>\n * Accessible title text\n * </VisuallyHidden>\n * ```\n */\nconst Title = forwardRef< HTMLHeadingElement, TitleProps >(\n\tfunction PopoverTitle( { className, children, ...props }, forwardedRef ) {\n\t\tconst validationContext = usePopoverValidationContext();\n\t\tconst internalRef = useRef< HTMLHeadingElement >( null );\n\t\tconst mergedRef = useMergeRefs( [ internalRef, forwardedRef ] );\n\n\t\tuseLayoutEffect( () => {\n\t\t\tvalidationContext?.registerTitle( internalRef.current );\n\t\t}, [ validationContext ] );\n\n\t\treturn (\n\t\t\t<Text\n\t\t\t\tref={ mergedRef }\n\t\t\t\tvariant=\"heading-xl\"\n\t\t\t\trender={ <_Popover.Title { ...props } /> }\n\t\t\t\tclassName={ className }\n\t\t\t>\n\t\t\t\t{ children }\n\t\t\t</Text>\n\t\t);\n\t}\n);\n\nexport { Title };\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,qBAAoC;AACpC,qBAA6B;AAC7B,qBAAoD;AACpD,kBAAqB;AACrB,qBAA4C;AAiC/B;AAdb,IAAM,YAAQ;AAAA,EACb,SAAS,aAAc,EAAE,WAAW,UAAU,GAAG,MAAM,GAAG,cAAe;AACxE,UAAM,wBAAoB,4CAA4B;AACtD,UAAM,kBAAc,uBAA8B,IAAK;AACvD,UAAM,gBAAY,6BAAc,CAAE,aAAa,YAAa,CAAE;AAE9D,wCAAiB,MAAM;AACtB,yBAAmB,cAAe,YAAY,OAAQ;AAAA,IACvD,GAAG,CAAE,iBAAkB,CAAE;AAEzB,WACC;AAAA,MAAC;AAAA;AAAA,QACA,KAAM;AAAA,QACN,SAAQ;AAAA,QACR,QAAS,4CAAC,eAAAA,QAAS,OAAT,EAAiB,GAAG,OAAQ;AAAA,QACtC;AAAA,QAEE;AAAA;AAAA,IACH;AAAA,EAEF;AACD;",
3
+ "sources": ["../../src/popover/title.tsx", "../../src/popover/style.module.css"],
4
+ "sourcesContent": ["import { Popover as _Popover } from '@base-ui/react/popover';\nimport { useMergeRefs } from '@wordpress/compose';\nimport { forwardRef, useEffect, useRef } from '@wordpress/element';\nimport { Text } from '../text';\nimport { usePopoverValidationContext } from './context';\nimport styles from './style.module.css';\nimport type { TitleProps } from './types';\n\n/**\n * Renders a heading that labels the popover for accessibility.\n *\n * **Required** \u2014 every popover must include a `Popover.Title`, even if\n * visually hidden. The rendered element is linked to the popup via\n * `aria-labelledby`. Uses the `heading-xl` text variant, matching Dialog.\n *\n * To visually hide the title while keeping it accessible, wrap it with\n * `VisuallyHidden` using the `render` prop:\n *\n * ```jsx\n * <VisuallyHidden render={ <Popover.Title /> }>\n * Accessible title text\n * </VisuallyHidden>\n * ```\n */\nconst Title = forwardRef< HTMLHeadingElement, TitleProps >(\n\tfunction PopoverTitle( { children, ...props }, forwardedRef ) {\n\t\tconst validationContext = usePopoverValidationContext();\n\t\tconst internalRef = useRef< HTMLHeadingElement >( null );\n\t\tconst mergedRef = useMergeRefs( [ internalRef, forwardedRef ] );\n\n\t\tuseEffect( () => {\n\t\t\tif ( validationContext ) {\n\t\t\t\treturn validationContext.registerTitle( internalRef.current );\n\t\t\t}\n\t\t\treturn undefined;\n\t\t}, [ validationContext ] );\n\n\t\treturn (\n\t\t\t<Text\n\t\t\t\tref={ mergedRef }\n\t\t\t\tvariant=\"heading-xl\"\n\t\t\t\trender={ <_Popover.Title { ...props } /> }\n\t\t\t\tclassName={ styles.title }\n\t\t\t>\n\t\t\t\t{ children }\n\t\t\t</Text>\n\t\t);\n\t}\n);\n\nexport { Title };\n", "if (typeof document !== 'undefined' && process.env.NODE_ENV !== 'test' && !document.head.querySelector(\"style[data-wp-hash='cc851ac208']\")) {\n\tconst style = document.createElement(\"style\");\n\tstyle.setAttribute(\"data-wp-hash\", \"cc851ac208\");\n\tstyle.appendChild(document.createTextNode(\"@layer wp-ui-utilities, wp-ui-components, wp-ui-compositions, wp-ui-overrides;@layer wp-ui-components{._10450722b9676f78__positioner{z-index:var(--wp-ui-popover-z-index,initial)}._84e8f597bcf683b8__popup{background-color:var(--wpds-color-bg-surface-neutral-strong,#fff);border:var(--wpds-border-width-xs,1px) solid var(--wpds-color-stroke-surface-neutral,#dbdbdb);border-radius:var(--wpds-border-radius-md,4px);box-shadow:var(--wpds-elevation-md,0 2px 3px 0 #0000000d,0 4px 5px 0 #0000000a,0 12px 12px 0 #00000008,0 16px 16px 0 #00000005);color:var(--wpds-color-fg-content-neutral,#1e1e1e);font-family:var(--wpds-typography-font-family-body,-apple-system,system-ui,\\\"Segoe UI\\\",\\\"Roboto\\\",\\\"Oxygen-Sans\\\",\\\"Ubuntu\\\",\\\"Cantarell\\\",\\\"Helvetica Neue\\\",sans-serif);font-size:var(--wpds-typography-font-size-md,13px);line-height:var(--wpds-typography-line-height-md,24px);outline:0;padding:var(--wpds-dimension-padding-lg,16px)}.e4d544aa033f05c6__backdrop~* ._84e8f597bcf683b8__popup{border-color:#0000}@media (forced-colors:active){._84e8f597bcf683b8__popup,.e4d544aa033f05c6__backdrop~* ._84e8f597bcf683b8__popup{border-color:CanvasText}}.ca05d3eb89321fcd__arrow{display:flex;&[data-side=top]{bottom:-8px;rotate:180deg}&[data-side=bottom]{rotate:0deg;top:-8px}&[data-side=left]{inset-inline-end:-13px;rotate:90deg}&[data-side=right]{inset-inline-start:-13px;rotate:-90deg}}._12d8edd9eb946b5f__arrow-fill{fill:var(--wpds-color-bg-surface-neutral-strong,#fff)}._6ddab482bd929dad__arrow-stroke{fill:var(--wpds-color-stroke-surface-neutral,#dbdbdb)}._6d7e4729cd96960e__title{--_gcd-heading-color:var(--wpds-color-fg-content-neutral,#1e1e1e);color:var(--wpds-color-fg-content-neutral,#1e1e1e)}.e4d544aa033f05c6__backdrop{background-color:#00000026;inset:0;position:fixed;z-index:var(--wp-ui-popover-z-index,initial)}}\"));\n\tdocument.head.appendChild(style);\n}\nexport default {\"positioner\":\"_10450722b9676f78__positioner\",\"popup\":\"_84e8f597bcf683b8__popup\",\"backdrop\":\"e4d544aa033f05c6__backdrop\",\"arrow\":\"ca05d3eb89321fcd__arrow\",\"arrow-fill\":\"_12d8edd9eb946b5f__arrow-fill\",\"arrow-stroke\":\"_6ddab482bd929dad__arrow-stroke\",\"title\":\"_6d7e4729cd96960e__title\"};\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,qBAAoC;AACpC,qBAA6B;AAC7B,qBAA8C;AAC9C,kBAAqB;AACrB,qBAA4C;;;ACJ5C,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,uwDAAmxD,CAAC;AAC9zD,WAAS,KAAK,YAAY,KAAK;AAChC;AACA,IAAO,gBAAQ,EAAC,cAAa,iCAAgC,SAAQ,4BAA2B,YAAW,8BAA6B,SAAQ,2BAA0B,cAAa,iCAAgC,gBAAe,mCAAkC,SAAQ,2BAA0B;;;ADmC7R;AAjBb,IAAM,YAAQ;AAAA,EACb,SAAS,aAAc,EAAE,UAAU,GAAG,MAAM,GAAG,cAAe;AAC7D,UAAM,wBAAoB,4CAA4B;AACtD,UAAM,kBAAc,uBAA8B,IAAK;AACvD,UAAM,gBAAY,6BAAc,CAAE,aAAa,YAAa,CAAE;AAE9D,kCAAW,MAAM;AAChB,UAAK,mBAAoB;AACxB,eAAO,kBAAkB,cAAe,YAAY,OAAQ;AAAA,MAC7D;AACA,aAAO;AAAA,IACR,GAAG,CAAE,iBAAkB,CAAE;AAEzB,WACC;AAAA,MAAC;AAAA;AAAA,QACA,KAAM;AAAA,QACN,SAAQ;AAAA,QACR,QAAS,4CAAC,eAAAA,QAAS,OAAT,EAAiB,GAAG,OAAQ;AAAA,QACtC,WAAY,cAAO;AAAA,QAEjB;AAAA;AAAA,IACH;AAAA,EAEF;AACD;",
6
6
  "names": ["_Popover"]
7
7
  }
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/popover/types.ts"],
4
- "sourcesContent": ["import type { ReactNode } from 'react';\nimport type { Popover as _Popover } from '@base-ui/react/popover';\nimport type { ComponentProps } from '../utils/types';\n\nexport interface RootProps\n\textends Pick<\n\t\t_Popover.Root.Props,\n\t\t'open' | 'onOpenChange' | 'defaultOpen' | 'modal'\n\t> {\n\t/**\n\t * The popover sub-components (`Popover.Trigger`, `Popover.Popup`, etc.).\n\t */\n\tchildren?: ReactNode;\n}\n\nexport interface TriggerProps\n\textends ComponentProps< 'button' >,\n\t\tPick< _Popover.Trigger.Props, 'openOnHover' | 'delay' | 'closeDelay' > {\n\t/**\n\t * The content to be rendered inside the component.\n\t */\n\tchildren?: ReactNode;\n}\n\n/**\n * `Popover.Popup` maps to two Base UI elements internally: the\n * **Positioner** (outer, handles fixed positioning and z-index) and the\n * **Popup** (inner, holds content and visual styles).\n *\n * `style` and `className` are forwarded to the **Positioner** so that\n * z-index overrides (`--wp-ui-popover-z-index`) and Base UI CSS variables\n * (`--available-height`, `--available-width`) work correctly. All other\n * HTML attributes are forwarded to the inner **Popup** element.\n */\nexport interface PopupProps\n\textends ComponentProps< 'div' >,\n\t\tPick<\n\t\t\t_Popover.Positioner.Props,\n\t\t\t| 'align'\n\t\t\t| 'alignOffset'\n\t\t\t| 'anchor'\n\t\t\t| 'arrowPadding'\n\t\t\t| 'collisionAvoidance'\n\t\t\t| 'collisionBoundary'\n\t\t\t| 'collisionPadding'\n\t\t\t| 'side'\n\t\t\t| 'sideOffset'\n\t\t\t| 'sticky'\n\t\t>,\n\t\tPick< _Popover.Popup.Props, 'initialFocus' | 'finalFocus' > {\n\t/**\n\t * Whether to render a backdrop overlay behind the popover.\n\t *\n\t * Typically used with `modal` to signal that interaction with the rest\n\t * of the page is blocked. The backdrop is a semi-transparent dark overlay.\n\t *\n\t * @default false\n\t */\n\tbackdrop?: boolean;\n\n\t/**\n\t * The content to be rendered inside the component.\n\t */\n\tchildren?: ReactNode;\n\n\t/**\n\t * A parent element to render the portal into.\n\t *\n\t * Useful for cross-document rendering, such as rendering a popover\n\t * in a parent document when the trigger is inside an iframe.\n\t */\n\tcontainer?: _Popover.Portal.Props[ 'container' ];\n\n\t/**\n\t * The visual style variant of the popup.\n\t *\n\t * - `'default'` \u2014 standard surface styling with background, padding,\n\t * border radius, and shadow.\n\t * - `'unstyled'` \u2014 no visual treatment; useful as a blank positioning\n\t * container for fully custom content.\n\t *\n\t * @default 'default'\n\t */\n\tvariant?: 'default' | 'unstyled';\n}\n\nexport interface ArrowProps extends ComponentProps< 'div' > {\n\t/**\n\t * Custom arrow visuals to render inside the positioned container.\n\t */\n\tchildren?: ReactNode;\n}\n\nexport interface TitleProps extends ComponentProps< 'h2' > {\n\t/**\n\t * The title content to be rendered.\n\t */\n\tchildren?: ReactNode;\n}\n\nexport interface DescriptionProps extends ComponentProps< 'p' > {\n\t/**\n\t * The description content to be rendered.\n\t */\n\tchildren?: ReactNode;\n}\n\nexport interface CloseProps extends ComponentProps< 'button' > {\n\t/**\n\t * The content to be rendered inside the component.\n\t */\n\tchildren?: ReactNode;\n}\n"],
4
+ "sourcesContent": ["import type { ComponentPropsWithoutRef, ReactElement, ReactNode } from 'react';\nimport type { Popover as _Popover } from '@base-ui/react/popover';\n\nimport type { ComponentProps } from '../utils/types';\n\nexport type PortalProps = ComponentPropsWithoutRef< typeof _Popover.Portal >;\n\nexport interface RootProps\n\textends Pick<\n\t\t_Popover.Root.Props,\n\t\t'open' | 'onOpenChange' | 'defaultOpen' | 'modal'\n\t> {\n\t/**\n\t * The popover sub-components (`Popover.Trigger`, `Popover.Popup`, etc.).\n\t */\n\tchildren?: ReactNode;\n}\n\nexport interface TriggerProps\n\textends ComponentProps< 'button' >,\n\t\tPick< _Popover.Trigger.Props, 'openOnHover' | 'delay' | 'closeDelay' > {\n\t/**\n\t * The content to be rendered inside the component.\n\t */\n\tchildren?: ReactNode;\n}\n\nexport interface PopupProps\n\textends ComponentProps< 'div' >,\n\t\tPick<\n\t\t\t_Popover.Positioner.Props,\n\t\t\t| 'align'\n\t\t\t| 'alignOffset'\n\t\t\t| 'anchor'\n\t\t\t| 'arrowPadding'\n\t\t\t| 'collisionAvoidance'\n\t\t\t| 'collisionBoundary'\n\t\t\t| 'collisionPadding'\n\t\t\t| 'side'\n\t\t\t| 'sideOffset'\n\t\t\t| 'sticky'\n\t\t>,\n\t\tPick< _Popover.Popup.Props, 'initialFocus' | 'finalFocus' > {\n\t/**\n\t * Whether to render a backdrop overlay behind the popover.\n\t *\n\t * Typically used with `modal` to signal that interaction with the rest\n\t * of the page is blocked. The backdrop is a semi-transparent dark overlay.\n\t *\n\t * @default false\n\t */\n\tbackdrop?: boolean;\n\n\t/**\n\t * The content to be rendered inside the component.\n\t */\n\tchildren?: ReactNode;\n\n\t/**\n\t * Optional portal element, typically `<Popover.Portal />` with custom\n\t * `container` for cross-document rendering. Floating content is rendered\n\t * as this portal's children (do not pass `children` on the portal element;\n\t * they would be ignored).\n\t *\n\t * When omitted, `Popover.Popup` uses `Popover.Portal` with default props.\n\t */\n\tportal?: ReactElement< Omit< PortalProps, 'children' > >;\n\n\t/**\n\t * The visual style variant of the popup.\n\t *\n\t * - `'default'` \u2014 standard surface styling with background, padding,\n\t * border radius, and shadow.\n\t * - `'unstyled'` \u2014 no visual treatment; useful as a blank positioning\n\t * container for fully custom content.\n\t *\n\t * @default 'default'\n\t */\n\tvariant?: 'default' | 'unstyled';\n}\n\nexport interface ArrowProps extends ComponentProps< 'div' > {\n\t/**\n\t * Custom arrow visuals to render inside the positioned container.\n\t */\n\tchildren?: ReactNode;\n}\n\nexport interface TitleProps extends ComponentProps< 'h2' > {\n\t/**\n\t * The title content to be rendered.\n\t */\n\tchildren?: ReactNode;\n}\n\nexport interface DescriptionProps extends ComponentProps< 'p' > {\n\t/**\n\t * The description content to be rendered.\n\t */\n\tchildren?: ReactNode;\n}\n\nexport interface CloseProps extends ComponentProps< 'button' > {\n\t/**\n\t * The content to be rendered inside the component.\n\t */\n\tchildren?: ReactNode;\n}\n"],
5
5
  "mappings": ";;;;;;;;;;;;;;;;AAAA;AAAA;",
6
6
  "names": []
7
7
  }
@@ -26,6 +26,7 @@ __export(context_exports, {
26
26
  });
27
27
  module.exports = __toCommonJS(context_exports);
28
28
  var import_element = require("@wordpress/element");
29
+ var import_use_schedule_validation = require("../utils/use-schedule-validation.cjs");
29
30
  var import_jsx_runtime = require("react/jsx-runtime");
30
31
  var VALIDATION_ENABLED = process.env.NODE_ENV !== "production";
31
32
  var TabsValidationContext = VALIDATION_ENABLED ? (0, import_element.createContext)(null) : null;
@@ -58,22 +59,15 @@ function TabsValidationProviderDev({
58
59
  }) {
59
60
  const tabCountRef = (0, import_element.useRef)(0);
60
61
  const panelCountRef = (0, import_element.useRef)(0);
61
- const validationScheduledRef = (0, import_element.useRef)(null);
62
- const scheduleValidation = (0, import_element.useCallback)(() => {
63
- if (validationScheduledRef.current) {
64
- clearTimeout(validationScheduledRef.current);
62
+ const scheduleValidation = (0, import_use_schedule_validation.useScheduleValidation)(() => {
63
+ const tabCount = tabCountRef.current;
64
+ const panelCount = panelCountRef.current;
65
+ if (tabCount !== panelCount) {
66
+ throw new Error(
67
+ `Tabs: Tab/Panel count mismatch (${tabCount} Tabs, ${panelCount} Panels). Each Tab must be associated with exactly one Panel. Mismatched or missing associations can break screen reader navigation and violate WAI-ARIA Tabs pattern requirements.`
68
+ );
65
69
  }
66
- validationScheduledRef.current = setTimeout(() => {
67
- const tabCount = tabCountRef.current;
68
- const panelCount = panelCountRef.current;
69
- if (tabCount !== panelCount) {
70
- throw new Error(
71
- `Tabs: Tab/Panel count mismatch (${tabCount} Tabs, ${panelCount} Panels). Each Tab must be associated with exactly one Panel. Mismatched or missing associations can break screen reader navigation and violate WAI-ARIA Tabs pattern requirements.`
72
- );
73
- }
74
- validationScheduledRef.current = null;
75
- }, 0);
76
- }, []);
70
+ });
77
71
  const registerTab = (0, import_element.useCallback)(() => {
78
72
  tabCountRef.current += 1;
79
73
  scheduleValidation();
@@ -90,13 +84,6 @@ function TabsValidationProviderDev({
90
84
  scheduleValidation();
91
85
  };
92
86
  }, [scheduleValidation]);
93
- (0, import_element.useEffect)(() => {
94
- return () => {
95
- if (validationScheduledRef.current) {
96
- clearTimeout(validationScheduledRef.current);
97
- }
98
- };
99
- }, []);
100
87
  const contextValue = (0, import_element.useMemo)(
101
88
  () => ({
102
89
  registerTab,
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/tabs/context.tsx"],
4
- "sourcesContent": ["import {\n\tcreateContext,\n\tuseContext,\n\tuseCallback,\n\tuseMemo,\n\tuseRef,\n\tuseEffect,\n} from '@wordpress/element';\n\ntype TabsValidationContextType = {\n\tregisterTab: () => () => void;\n\tregisterPanel: () => () => void;\n};\n\n/**\n * Whether validation is enabled. This is a build-time constant that allows\n * bundlers to tree-shake all validation code in production builds.\n */\nconst VALIDATION_ENABLED = process.env.NODE_ENV !== 'production';\n\nconst TabsValidationContext = VALIDATION_ENABLED\n\t? createContext< TabsValidationContextType | null >( null )\n\t: ( null as unknown as React.Context< TabsValidationContextType | null > );\n\nfunction useRegisterTabDev() {\n\tconst context = useContext( TabsValidationContext );\n\n\tuseEffect( () => {\n\t\tif ( context ) {\n\t\t\treturn context.registerTab();\n\t\t}\n\t\treturn undefined;\n\t}, [ context ] );\n}\n\nfunction useRegisterTabProd() {\n\t// No-op in production.\n}\n\n/**\n * Hook that registers a Tab for count validation in development mode.\n */\nexport const useRegisterTab = VALIDATION_ENABLED\n\t? useRegisterTabDev\n\t: useRegisterTabProd;\n\nfunction useRegisterPanelDev() {\n\tconst context = useContext( TabsValidationContext );\n\n\tuseEffect( () => {\n\t\tif ( context ) {\n\t\t\treturn context.registerPanel();\n\t\t}\n\t\treturn undefined;\n\t}, [ context ] );\n}\n\nfunction useRegisterPanelProd() {\n\t// No-op in production.\n}\n\n/**\n * Hook that registers a Panel for count validation in development mode.\n */\nexport const useRegisterPanel = VALIDATION_ENABLED\n\t? useRegisterPanelDev\n\t: useRegisterPanelProd;\n\n/**\n * Development-only provider that tracks the number of registered tabs and\n * panels, and warns when the counts don't match.\n */\nfunction TabsValidationProviderDev( {\n\tchildren,\n}: {\n\tchildren: React.ReactNode;\n} ) {\n\tconst tabCountRef = useRef( 0 );\n\tconst panelCountRef = useRef( 0 );\n\tconst validationScheduledRef = useRef< ReturnType<\n\t\ttypeof setTimeout\n\t> | null >( null );\n\n\tconst scheduleValidation = useCallback( () => {\n\t\tif ( validationScheduledRef.current ) {\n\t\t\tclearTimeout( validationScheduledRef.current );\n\t\t}\n\n\t\t// Schedule validation for the next tick to allow all\n\t\t// registrations/unregistrations to complete.\n\t\tvalidationScheduledRef.current = setTimeout( () => {\n\t\t\tconst tabCount = tabCountRef.current;\n\t\t\tconst panelCount = panelCountRef.current;\n\n\t\t\tif ( tabCount !== panelCount ) {\n\t\t\t\tthrow new Error(\n\t\t\t\t\t`Tabs: Tab/Panel count mismatch (${ tabCount } Tabs, ${ panelCount } Panels). ` +\n\t\t\t\t\t\t`Each Tab must be associated with exactly one Panel. ` +\n\t\t\t\t\t\t`Mismatched or missing associations can break screen reader navigation ` +\n\t\t\t\t\t\t`and violate WAI-ARIA Tabs pattern requirements.`\n\t\t\t\t);\n\t\t\t}\n\n\t\t\tvalidationScheduledRef.current = null;\n\t\t}, 0 );\n\t}, [] );\n\n\tconst registerTab = useCallback( () => {\n\t\ttabCountRef.current += 1;\n\t\tscheduleValidation();\n\n\t\treturn () => {\n\t\t\ttabCountRef.current -= 1;\n\t\t\tscheduleValidation();\n\t\t};\n\t}, [ scheduleValidation ] );\n\n\tconst registerPanel = useCallback( () => {\n\t\tpanelCountRef.current += 1;\n\t\tscheduleValidation();\n\n\t\treturn () => {\n\t\t\tpanelCountRef.current -= 1;\n\t\t\tscheduleValidation();\n\t\t};\n\t}, [ scheduleValidation ] );\n\n\tuseEffect( () => {\n\t\treturn () => {\n\t\t\tif ( validationScheduledRef.current ) {\n\t\t\t\tclearTimeout( validationScheduledRef.current );\n\t\t\t}\n\t\t};\n\t}, [] );\n\n\tconst contextValue = useMemo(\n\t\t() => ( {\n\t\t\tregisterTab,\n\t\t\tregisterPanel,\n\t\t} ),\n\t\t[ registerTab, registerPanel ]\n\t);\n\n\treturn (\n\t\t<TabsValidationContext.Provider value={ contextValue }>\n\t\t\t{ children }\n\t\t</TabsValidationContext.Provider>\n\t);\n}\n\n/**\n * Production no-op provider that just renders children.\n */\nfunction TabsValidationProviderProd( {\n\tchildren,\n}: {\n\tchildren: React.ReactNode;\n} ) {\n\treturn <>{ children }</>;\n}\n\n/**\n * Provider component that validates the number of tabs matches the number\n * of panels in development mode.\n *\n * In production, this component is a no-op and just renders children.\n */\nexport const TabsValidationProvider = VALIDATION_ENABLED\n\t? TabsValidationProviderDev\n\t: TabsValidationProviderProd;\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,qBAOO;AAyIL;AA9HF,IAAM,qBAAqB,QAAQ,IAAI,aAAa;AAEpD,IAAM,wBAAwB,yBAC3B,8BAAmD,IAAK,IACtD;AAEL,SAAS,oBAAoB;AAC5B,QAAM,cAAU,2BAAY,qBAAsB;AAElD,gCAAW,MAAM;AAChB,QAAK,SAAU;AACd,aAAO,QAAQ,YAAY;AAAA,IAC5B;AACA,WAAO;AAAA,EACR,GAAG,CAAE,OAAQ,CAAE;AAChB;AAEA,SAAS,qBAAqB;AAE9B;AAKO,IAAM,iBAAiB,qBAC3B,oBACA;AAEH,SAAS,sBAAsB;AAC9B,QAAM,cAAU,2BAAY,qBAAsB;AAElD,gCAAW,MAAM;AAChB,QAAK,SAAU;AACd,aAAO,QAAQ,cAAc;AAAA,IAC9B;AACA,WAAO;AAAA,EACR,GAAG,CAAE,OAAQ,CAAE;AAChB;AAEA,SAAS,uBAAuB;AAEhC;AAKO,IAAM,mBAAmB,qBAC7B,sBACA;AAMH,SAAS,0BAA2B;AAAA,EACnC;AACD,GAEI;AACH,QAAM,kBAAc,uBAAQ,CAAE;AAC9B,QAAM,oBAAgB,uBAAQ,CAAE;AAChC,QAAM,6BAAyB,uBAEnB,IAAK;AAEjB,QAAM,yBAAqB,4BAAa,MAAM;AAC7C,QAAK,uBAAuB,SAAU;AACrC,mBAAc,uBAAuB,OAAQ;AAAA,IAC9C;AAIA,2BAAuB,UAAU,WAAY,MAAM;AAClD,YAAM,WAAW,YAAY;AAC7B,YAAM,aAAa,cAAc;AAEjC,UAAK,aAAa,YAAa;AAC9B,cAAM,IAAI;AAAA,UACT,mCAAoC,QAAS,UAAW,UAAW;AAAA,QAIpE;AAAA,MACD;AAEA,6BAAuB,UAAU;AAAA,IAClC,GAAG,CAAE;AAAA,EACN,GAAG,CAAC,CAAE;AAEN,QAAM,kBAAc,4BAAa,MAAM;AACtC,gBAAY,WAAW;AACvB,uBAAmB;AAEnB,WAAO,MAAM;AACZ,kBAAY,WAAW;AACvB,yBAAmB;AAAA,IACpB;AAAA,EACD,GAAG,CAAE,kBAAmB,CAAE;AAE1B,QAAM,oBAAgB,4BAAa,MAAM;AACxC,kBAAc,WAAW;AACzB,uBAAmB;AAEnB,WAAO,MAAM;AACZ,oBAAc,WAAW;AACzB,yBAAmB;AAAA,IACpB;AAAA,EACD,GAAG,CAAE,kBAAmB,CAAE;AAE1B,gCAAW,MAAM;AAChB,WAAO,MAAM;AACZ,UAAK,uBAAuB,SAAU;AACrC,qBAAc,uBAAuB,OAAQ;AAAA,MAC9C;AAAA,IACD;AAAA,EACD,GAAG,CAAC,CAAE;AAEN,QAAM,mBAAe;AAAA,IACpB,OAAQ;AAAA,MACP;AAAA,MACA;AAAA,IACD;AAAA,IACA,CAAE,aAAa,aAAc;AAAA,EAC9B;AAEA,SACC,4CAAC,sBAAsB,UAAtB,EAA+B,OAAQ,cACrC,UACH;AAEF;AAKA,SAAS,2BAA4B;AAAA,EACpC;AACD,GAEI;AACH,SAAO,2EAAI,UAAU;AACtB;AAQO,IAAM,yBAAyB,qBACnC,4BACA;",
4
+ "sourcesContent": ["import {\n\tcreateContext,\n\tuseContext,\n\tuseCallback,\n\tuseEffect,\n\tuseMemo,\n\tuseRef,\n} from '@wordpress/element';\nimport { useScheduleValidation } from '../utils/use-schedule-validation';\n\ntype TabsValidationContextType = {\n\tregisterTab: () => () => void;\n\tregisterPanel: () => () => void;\n};\n\n/**\n * Whether validation is enabled. This is a build-time constant that allows\n * bundlers to tree-shake all validation code in production builds.\n */\nconst VALIDATION_ENABLED = process.env.NODE_ENV !== 'production';\n\nconst TabsValidationContext = VALIDATION_ENABLED\n\t? createContext< TabsValidationContextType | null >( null )\n\t: ( null as unknown as React.Context< TabsValidationContextType | null > );\n\nfunction useRegisterTabDev() {\n\tconst context = useContext( TabsValidationContext );\n\n\tuseEffect( () => {\n\t\tif ( context ) {\n\t\t\treturn context.registerTab();\n\t\t}\n\t\treturn undefined;\n\t}, [ context ] );\n}\n\nfunction useRegisterTabProd() {\n\t// No-op in production.\n}\n\n/**\n * Hook that registers a Tab for count validation in development mode.\n */\nexport const useRegisterTab = VALIDATION_ENABLED\n\t? useRegisterTabDev\n\t: useRegisterTabProd;\n\nfunction useRegisterPanelDev() {\n\tconst context = useContext( TabsValidationContext );\n\n\tuseEffect( () => {\n\t\tif ( context ) {\n\t\t\treturn context.registerPanel();\n\t\t}\n\t\treturn undefined;\n\t}, [ context ] );\n}\n\nfunction useRegisterPanelProd() {\n\t// No-op in production.\n}\n\n/**\n * Hook that registers a Panel for count validation in development mode.\n */\nexport const useRegisterPanel = VALIDATION_ENABLED\n\t? useRegisterPanelDev\n\t: useRegisterPanelProd;\n\n/**\n * Development-only provider that tracks the number of registered tabs and\n * panels, and warns when the counts don't match.\n */\nfunction TabsValidationProviderDev( {\n\tchildren,\n}: {\n\tchildren: React.ReactNode;\n} ) {\n\tconst tabCountRef = useRef( 0 );\n\tconst panelCountRef = useRef( 0 );\n\n\tconst scheduleValidation = useScheduleValidation( () => {\n\t\tconst tabCount = tabCountRef.current;\n\t\tconst panelCount = panelCountRef.current;\n\n\t\tif ( tabCount !== panelCount ) {\n\t\t\tthrow new Error(\n\t\t\t\t`Tabs: Tab/Panel count mismatch (${ tabCount } Tabs, ${ panelCount } Panels). ` +\n\t\t\t\t\t`Each Tab must be associated with exactly one Panel. ` +\n\t\t\t\t\t`Mismatched or missing associations can break screen reader navigation ` +\n\t\t\t\t\t`and violate WAI-ARIA Tabs pattern requirements.`\n\t\t\t);\n\t\t}\n\t} );\n\n\tconst registerTab = useCallback( () => {\n\t\ttabCountRef.current += 1;\n\t\tscheduleValidation();\n\n\t\treturn () => {\n\t\t\ttabCountRef.current -= 1;\n\t\t\tscheduleValidation();\n\t\t};\n\t}, [ scheduleValidation ] );\n\n\tconst registerPanel = useCallback( () => {\n\t\tpanelCountRef.current += 1;\n\t\tscheduleValidation();\n\n\t\treturn () => {\n\t\t\tpanelCountRef.current -= 1;\n\t\t\tscheduleValidation();\n\t\t};\n\t}, [ scheduleValidation ] );\n\n\tconst contextValue = useMemo(\n\t\t() => ( {\n\t\t\tregisterTab,\n\t\t\tregisterPanel,\n\t\t} ),\n\t\t[ registerTab, registerPanel ]\n\t);\n\n\treturn (\n\t\t<TabsValidationContext.Provider value={ contextValue }>\n\t\t\t{ children }\n\t\t</TabsValidationContext.Provider>\n\t);\n}\n\n/**\n * Production no-op provider that just renders children.\n */\nfunction TabsValidationProviderProd( {\n\tchildren,\n}: {\n\tchildren: React.ReactNode;\n} ) {\n\treturn <>{ children }</>;\n}\n\n/**\n * Provider component that validates the number of tabs matches the number\n * of panels in development mode.\n *\n * In production, this component is a no-op and just renders children.\n */\nexport const TabsValidationProvider = VALIDATION_ENABLED\n\t? TabsValidationProviderDev\n\t: TabsValidationProviderProd;\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,qBAOO;AACP,qCAAsC;AAoHpC;AAzGF,IAAM,qBAAqB,QAAQ,IAAI,aAAa;AAEpD,IAAM,wBAAwB,yBAC3B,8BAAmD,IAAK,IACtD;AAEL,SAAS,oBAAoB;AAC5B,QAAM,cAAU,2BAAY,qBAAsB;AAElD,gCAAW,MAAM;AAChB,QAAK,SAAU;AACd,aAAO,QAAQ,YAAY;AAAA,IAC5B;AACA,WAAO;AAAA,EACR,GAAG,CAAE,OAAQ,CAAE;AAChB;AAEA,SAAS,qBAAqB;AAE9B;AAKO,IAAM,iBAAiB,qBAC3B,oBACA;AAEH,SAAS,sBAAsB;AAC9B,QAAM,cAAU,2BAAY,qBAAsB;AAElD,gCAAW,MAAM;AAChB,QAAK,SAAU;AACd,aAAO,QAAQ,cAAc;AAAA,IAC9B;AACA,WAAO;AAAA,EACR,GAAG,CAAE,OAAQ,CAAE;AAChB;AAEA,SAAS,uBAAuB;AAEhC;AAKO,IAAM,mBAAmB,qBAC7B,sBACA;AAMH,SAAS,0BAA2B;AAAA,EACnC;AACD,GAEI;AACH,QAAM,kBAAc,uBAAQ,CAAE;AAC9B,QAAM,oBAAgB,uBAAQ,CAAE;AAEhC,QAAM,yBAAqB,sDAAuB,MAAM;AACvD,UAAM,WAAW,YAAY;AAC7B,UAAM,aAAa,cAAc;AAEjC,QAAK,aAAa,YAAa;AAC9B,YAAM,IAAI;AAAA,QACT,mCAAoC,QAAS,UAAW,UAAW;AAAA,MAIpE;AAAA,IACD;AAAA,EACD,CAAE;AAEF,QAAM,kBAAc,4BAAa,MAAM;AACtC,gBAAY,WAAW;AACvB,uBAAmB;AAEnB,WAAO,MAAM;AACZ,kBAAY,WAAW;AACvB,yBAAmB;AAAA,IACpB;AAAA,EACD,GAAG,CAAE,kBAAmB,CAAE;AAE1B,QAAM,oBAAgB,4BAAa,MAAM;AACxC,kBAAc,WAAW;AACzB,uBAAmB;AAEnB,WAAO,MAAM;AACZ,oBAAc,WAAW;AACzB,yBAAmB;AAAA,IACpB;AAAA,EACD,GAAG,CAAE,kBAAmB,CAAE;AAE1B,QAAM,mBAAe;AAAA,IACpB,OAAQ;AAAA,MACP;AAAA,MACA;AAAA,IACD;AAAA,IACA,CAAE,aAAa,aAAc;AAAA,EAC9B;AAEA,SACC,4CAAC,sBAAsB,UAAtB,EAA+B,OAAQ,cACrC,UACH;AAEF;AAKA,SAAS,2BAA4B;AAAA,EACpC;AACD,GAEI;AACH,SAAO,2EAAI,UAAU;AACtB;AAQO,IAAM,yBAAyB,qBACnC,4BACA;",
6
6
  "names": []
7
7
  }
@@ -39,13 +39,13 @@ var import_tabs = require("@base-ui/react/tabs");
39
39
  var import_compose = require("@wordpress/compose");
40
40
 
41
41
  // packages/ui/src/tabs/style.module.css
42
- if (typeof document !== "undefined" && process.env.NODE_ENV !== "test" && !document.head.querySelector("style[data-wp-hash='8c9d1dfa2f']")) {
42
+ if (typeof document !== "undefined" && process.env.NODE_ENV !== "test" && !document.head.querySelector("style[data-wp-hash='b8cf8136a5']")) {
43
43
  const style = document.createElement("style");
44
- style.setAttribute("data-wp-hash", "8c9d1dfa2f");
45
- style.appendChild(document.createTextNode('@layer wp-ui-utilities, wp-ui-components, wp-ui-compositions, wp-ui-overrides;@layer wp-ui-components{._7313adbc8a112e90__tablist{--direction-factor:1;--direction-start:left;--direction-end:right;align-items:stretch;display:flex;overflow-inline:auto;overscroll-behavior-inline:none;position:relative;&:dir(rtl){--direction-factor:-1;--direction-start:right;--direction-end:left}&[data-orientation=horizontal]{--fade-width:4rem;--fade-gradient-base:#0000 0%,#000 var(--fade-width);--fade-gradient-composed:var(--fade-gradient-base),#000 60%,#0000 50%;width:fit-content;&._9f2ac729c68a735a__is-overflowing-first{mask-image:linear-gradient(to var(--direction-end),var(--fade-gradient-base))}&._81c799c1f3cdd261__is-overflowing-last{mask-image:linear-gradient(to var(--direction-start),var(--fade-gradient-base))}&._9f2ac729c68a735a__is-overflowing-first._81c799c1f3cdd261__is-overflowing-last{mask-image:linear-gradient(to right,var(--fade-gradient-composed)),linear-gradient(to left,var(--fade-gradient-composed))}&._59228b5227f38a99__is-minimal-variant{gap:1rem}}&[data-orientation=vertical]{flex-direction:column}}._1c37dcfaa1ad8cda__indicator{@media not (prefers-reduced-motion){transition-duration:.2s;transition-property:translate,width,height,border-radius,border-block;transition-timing-function:ease-out}outline:2px solid #0000;outline-offset:-1px;pointer-events:none;position:absolute;&[data-orientation=horizontal]{background-color:var(--wpds-color-stroke-interactive-neutral-strong,#6e6e6e);bottom:0;height:var(--wpds-border-width-focus,var(--wp-admin-border-width-focus,2px));left:0;translate:var(--active-tab-left) 0;width:var(--active-tab-width);z-index:1}&[data-orientation=vertical]{background-color:var(--wpds-color-bg-interactive-neutral-weak-active,#ededed);border-radius:var(--wpds-border-radius-sm,2px);height:var(--active-tab-height);left:50%;top:0;translate:-50% var(--active-tab-top);width:100%;z-index:0}._7313adbc8a112e90__tablist[data-select-on-move=true]:has(:focus-visible)\n &[data-orientation=vertical]{border:var(--wpds-border-width-focus,var(--wp-admin-border-width-focus,2px)) solid var(--wpds-color-stroke-focus-brand,var(--wp-admin-theme-color,#3858e9));box-sizing:border-box}}.a5fd8814f195aa5e__tab{align-items:center;background:#0000;border:none;border-radius:0;box-shadow:none;color:var(--wpds-color-fg-interactive-neutral,#1e1e1e);cursor:var(--wpds-cursor-control,pointer);display:flex;flex:1 0 auto;font-family:var(--wpds-typography-font-family-body,-apple-system,system-ui,"Segoe UI","Roboto","Oxygen-Sans","Ubuntu","Cantarell","Helvetica Neue",sans-serif);font-size:var(--wpds-typography-font-size-md,13px);font-weight:400;line-height:1.2;outline:none;padding:0;position:relative;white-space:nowrap;z-index:1;&[data-disabled]{color:var(--wpds-color-fg-interactive-neutral-disabled,#8d8d8d);cursor:default;@media (forced-colors:active){color:GrayText}}&:not([data-disabled]):is(:hover,:focus-visible){color:var(--wpds-color-fg-interactive-neutral-active,#1e1e1e)}&:after{border-radius:var(--wpds-border-radius-sm,2px);opacity:0;outline:var(--wpds-border-width-focus,var(--wp-admin-border-width-focus,2px)) solid var(--wpds-color-stroke-focus-brand,var(--wp-admin-theme-color,#3858e9));pointer-events:none;position:absolute;z-index:-1;@media not (prefers-reduced-motion){transition:opacity .1s linear}}&:focus-visible:after{opacity:1}[data-orientation=horizontal] &{height:48px;padding-inline:var(--wpds-dimension-padding-lg,16px);scroll-margin:24px;&:after{content:"";inset:var(--wpds-dimension-padding-md,12px)}}._59228b5227f38a99__is-minimal-variant[data-orientation=horizontal] &{padding-inline:0;&:after{inset-inline:round(up,var(--wpds-border-width-focus,var(--wp-admin-border-width-focus,2px)),1px)}}[data-orientation=vertical] &{min-height:40px;padding:var(--wpds-dimension-padding-sm,8px) var(--wpds-dimension-padding-md,12px)}[data-orientation=vertical][data-select-on-move=false] &:after{content:"";inset:var(--wpds-border-width-focus,var(--wp-admin-border-width-focus,2px))}}._5dfc77e6edd345d4__tab-children{align-items:center;display:flex;flex-grow:1;[data-orientation=horizontal] &{justify-content:center}[data-orientation=vertical] &{justify-content:start}}._4a20e969d15e5ac1__tab-chevron{flex-shrink:0;margin-inline-end:calc(var(--wpds-dimension-gap-xs, 4px)*-1);opacity:0;[data-orientation=horizontal] &{display:none}[role=tab]:is([aria-selected=true],:focus-visible,:hover) &{opacity:1}@media not (prefers-reduced-motion){[data-select-on-move=true]\n [role=tab]:is([aria-selected=true])\n &{transition:opacity .15s linear .15s}}&:dir(rtl){rotate:180deg}}._49f4bf715948892a__tabpanel{&:focus{box-shadow:none;outline:none}&:focus-visible{box-shadow:0 0 0 var(--wpds-border-width-focus,var(--wp-admin-border-width-focus,2px)) var(--wpds-color-stroke-focus-brand,var(--wp-admin-theme-color,#3858e9));outline:2px solid #0000;outline-offset:0}}}'));
44
+ style.setAttribute("data-wp-hash", "b8cf8136a5");
45
+ style.appendChild(document.createTextNode('@layer wp-ui-utilities, wp-ui-components, wp-ui-compositions, wp-ui-overrides;@layer wp-ui-components{._7313adbc8a112e90__tablist{--direction-factor:1;--direction-start:left;--direction-end:right;align-items:stretch;display:flex;overflow-inline:auto;overscroll-behavior-inline:none;position:relative;&:dir(rtl){--direction-factor:-1;--direction-start:right;--direction-end:left}&[data-orientation=horizontal]{--fade-width:4rem;--fade-gradient-base:#0000 0%,#000 var(--fade-width);--fade-gradient-composed:var(--fade-gradient-base),#000 60%,#0000 50%;width:fit-content;&._9f2ac729c68a735a__is-overflowing-first{mask-image:linear-gradient(to var(--direction-end),var(--fade-gradient-base))}&._81c799c1f3cdd261__is-overflowing-last{mask-image:linear-gradient(to var(--direction-start),var(--fade-gradient-base))}&._9f2ac729c68a735a__is-overflowing-first._81c799c1f3cdd261__is-overflowing-last{mask-image:linear-gradient(to right,var(--fade-gradient-composed)),linear-gradient(to left,var(--fade-gradient-composed))}&._59228b5227f38a99__is-minimal-variant{gap:1rem}}&[data-orientation=vertical]{flex-direction:column}}._1c37dcfaa1ad8cda__indicator{@media not (prefers-reduced-motion){transition-duration:.2s;transition-property:translate,width,height,border-radius,border-block;transition-timing-function:ease-out}outline:2px solid #0000;outline-offset:-1px;pointer-events:none;position:absolute;&[data-orientation=horizontal]{background-color:var(--wpds-color-stroke-interactive-neutral-strong,#6e6e6e);bottom:0;height:var(--wpds-border-width-focus,var(--wp-admin-border-width-focus,2px));left:0;translate:var(--active-tab-left) 0;width:var(--active-tab-width);z-index:1}&[data-orientation=vertical]{background-color:var(--wpds-color-bg-interactive-neutral-weak-active,#ededed);border-radius:var(--wpds-border-radius-sm,2px);height:var(--active-tab-height);left:50%;top:0;translate:-50% var(--active-tab-top);width:100%;z-index:0}._7313adbc8a112e90__tablist[data-select-on-move=true]:has(:focus-visible)\n &[data-orientation=vertical]{border:var(--wpds-border-width-focus,var(--wp-admin-border-width-focus,2px)) solid var(--wpds-color-stroke-focus-brand,var(--wp-admin-theme-color,#3858e9));box-sizing:border-box}}.a5fd8814f195aa5e__tab{align-items:center;background:#0000;border:none;border-radius:0;box-shadow:none;color:var(--wpds-color-fg-interactive-neutral,#1e1e1e);cursor:var(--wpds-cursor-control,pointer);display:flex;flex:1 0 auto;font-family:var(--wpds-typography-font-family-body,-apple-system,system-ui,"Segoe UI","Roboto","Oxygen-Sans","Ubuntu","Cantarell","Helvetica Neue",sans-serif);font-size:var(--wpds-typography-font-size-md,13px);font-weight:400;line-height:1.2;outline:none;padding:0;position:relative;white-space:nowrap;z-index:1;&[data-disabled]{color:var(--wpds-color-fg-interactive-neutral-disabled,#8d8d8d);cursor:default;@media (forced-colors:active){color:GrayText}}&:not([data-disabled]):is(:hover,:focus-visible){color:var(--wpds-color-fg-interactive-neutral-active,#1e1e1e)}&:after{border-radius:var(--wpds-border-radius-sm,2px);opacity:0;outline:var(--wpds-border-width-focus,var(--wp-admin-border-width-focus,2px)) solid var(--wpds-color-stroke-focus-brand,var(--wp-admin-theme-color,#3858e9));pointer-events:none;position:absolute;z-index:-1;@media not (prefers-reduced-motion){transition:opacity .1s linear}}&:focus-visible:after{opacity:1}[data-orientation=horizontal] &{height:48px;padding-inline:var(--wpds-dimension-padding-lg,16px);scroll-margin:24px;&:after{content:"";inset:var(--wpds-dimension-padding-md,12px)}}._59228b5227f38a99__is-minimal-variant[data-orientation=horizontal] &{padding-inline:0;&:after{inset-inline:round(up,var(--wpds-border-width-focus,var(--wp-admin-border-width-focus,2px)),1px)}}[data-orientation=vertical] &{min-height:40px;padding:var(--wpds-dimension-padding-sm,8px) var(--wpds-dimension-padding-md,12px)}[data-orientation=vertical][data-select-on-move=false] &:after{content:"";inset:var(--wpds-border-width-focus,var(--wp-admin-border-width-focus,2px))}}._5dfc77e6edd345d4__tab-children{align-items:center;display:flex;flex-grow:1;[data-orientation=horizontal] &{justify-content:center}[data-orientation=vertical] &{justify-content:start}}._4a20e969d15e5ac1__tab-chevron{flex-shrink:0;margin-inline-end:calc(var(--wpds-dimension-gap-xs, 4px)*-1);opacity:0;[data-orientation=horizontal] &{display:none}[role=tab]:is([aria-selected=true],:focus-visible,:hover) &{opacity:1}@media not (prefers-reduced-motion){[data-select-on-move=true]\n [role=tab]:is([aria-selected=true])\n &{transition:opacity .15s linear .15s}}&:dir(rtl){rotate:180deg}}}'));
46
46
  document.head.appendChild(style);
47
47
  }
48
- var style_default = { "tablist": "_7313adbc8a112e90__tablist", "is-overflowing-first": "_9f2ac729c68a735a__is-overflowing-first", "is-overflowing-last": "_81c799c1f3cdd261__is-overflowing-last", "is-minimal-variant": "_59228b5227f38a99__is-minimal-variant", "indicator": "_1c37dcfaa1ad8cda__indicator", "tab": "a5fd8814f195aa5e__tab", "tab-children": "_5dfc77e6edd345d4__tab-children", "tab-chevron": "_4a20e969d15e5ac1__tab-chevron", "tabpanel": "_49f4bf715948892a__tabpanel" };
48
+ var style_default = { "tablist": "_7313adbc8a112e90__tablist", "is-overflowing-first": "_9f2ac729c68a735a__is-overflowing-first", "is-overflowing-last": "_81c799c1f3cdd261__is-overflowing-last", "is-minimal-variant": "_59228b5227f38a99__is-minimal-variant", "indicator": "_1c37dcfaa1ad8cda__indicator", "tab": "a5fd8814f195aa5e__tab", "tab-children": "_5dfc77e6edd345d4__tab-children", "tab-chevron": "_4a20e969d15e5ac1__tab-chevron" };
49
49
 
50
50
  // packages/ui/src/tabs/list.tsx
51
51
  var import_jsx_runtime = require("react/jsx-runtime");
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "version": 3,
3
3
  "sources": ["../../src/tabs/list.tsx", "../../src/tabs/style.module.css"],
4
- "sourcesContent": ["import { forwardRef, useEffect, useState } from '@wordpress/element';\nimport clsx from 'clsx';\nimport { Tabs as _Tabs } from '@base-ui/react/tabs';\nimport { useMergeRefs } from '@wordpress/compose';\nimport styles from './style.module.css';\nimport type { TabListProps } from './types';\n\n// Account for sub-pixel rounding errors.\nconst SCROLL_EPSILON = 1;\n\n/**\n * Groups the individual tab buttons.\n *\n * `Tabs` is a collection of React components that combine to render\n * an [ARIA-compliant tabs pattern](https://www.w3.org/WAI/ARIA/apg/patterns/tabs/).\n */\nexport const List = forwardRef< HTMLDivElement, TabListProps >(\n\tfunction TabList(\n\t\t{\n\t\t\tchildren,\n\t\t\tvariant = 'default',\n\t\t\tclassName,\n\t\t\tactivateOnFocus,\n\t\t\t...otherProps\n\t\t},\n\t\tforwardedRef\n\t) {\n\t\tconst [ listEl, setListEl ] = useState< HTMLDivElement | null >( null );\n\t\tconst [ overflow, setOverflow ] = useState< {\n\t\t\tfirst: boolean;\n\t\t\tlast: boolean;\n\t\t\tisScrolling: boolean;\n\t\t} >( {\n\t\t\tfirst: false,\n\t\t\tlast: false,\n\t\t\tisScrolling: false,\n\t\t} );\n\n\t\t// Check if list is overflowing when it scrolls or resizes.\n\t\tuseEffect( () => {\n\t\t\tif ( ! listEl ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst measureOverflow = () => {\n\t\t\t\tconst { scrollWidth, clientWidth, scrollLeft } = listEl;\n\t\t\t\tconst maxScroll = Math.max( scrollWidth - clientWidth, 0 );\n\t\t\t\tconst direction =\n\t\t\t\t\tlistEl.dir ||\n\t\t\t\t\t( typeof window !== 'undefined'\n\t\t\t\t\t\t? window.getComputedStyle( listEl ).direction\n\t\t\t\t\t\t: 'ltr' );\n\n\t\t\t\tconst scrollFromStart =\n\t\t\t\t\tdirection === 'rtl' && scrollLeft < 0\n\t\t\t\t\t\t? // In RTL layouts, scrollLeft is typically 0 at the visual \"start\"\n\t\t\t\t\t\t // (right edge) and becomes negative toward the \"end\" (left edge).\n\t\t\t\t\t\t // Normalize value for correct first/last detection logic.\n\t\t\t\t\t\t -scrollLeft\n\t\t\t\t\t\t: scrollLeft;\n\n\t\t\t\t// Use SCROLL_EPSILON to handle subpixel rendering differences.\n\t\t\t\tsetOverflow( {\n\t\t\t\t\tfirst: scrollFromStart > SCROLL_EPSILON,\n\t\t\t\t\tlast: scrollFromStart < maxScroll - SCROLL_EPSILON,\n\t\t\t\t\tisScrolling: scrollWidth > clientWidth,\n\t\t\t\t} );\n\t\t\t};\n\n\t\t\tconst resizeObserver = new ResizeObserver( measureOverflow );\n\t\t\tresizeObserver.observe( listEl );\n\n\t\t\tlet scrollTick = false;\n\t\t\tconst throttleMeasureOverflowOnScroll = () => {\n\t\t\t\tif ( ! scrollTick ) {\n\t\t\t\t\trequestAnimationFrame( () => {\n\t\t\t\t\t\tmeasureOverflow();\n\t\t\t\t\t\tscrollTick = false;\n\t\t\t\t\t} );\n\t\t\t\t\tscrollTick = true;\n\t\t\t\t}\n\t\t\t};\n\t\t\tlistEl.addEventListener(\n\t\t\t\t'scroll',\n\t\t\t\tthrottleMeasureOverflowOnScroll,\n\t\t\t\t{ passive: true }\n\t\t\t);\n\n\t\t\t// Initial check.\n\t\t\tmeasureOverflow();\n\n\t\t\treturn () => {\n\t\t\t\tlistEl.removeEventListener(\n\t\t\t\t\t'scroll',\n\t\t\t\t\tthrottleMeasureOverflowOnScroll\n\t\t\t\t);\n\t\t\t\tresizeObserver.disconnect();\n\t\t\t};\n\t\t}, [ listEl ] );\n\n\t\tconst mergedListRef = useMergeRefs( [\n\t\t\tforwardedRef,\n\t\t\t( el: HTMLDivElement | null ) => setListEl( el ),\n\t\t] );\n\n\t\treturn (\n\t\t\t<_Tabs.List\n\t\t\t\tref={ mergedListRef }\n\t\t\t\tactivateOnFocus={ activateOnFocus }\n\t\t\t\tdata-select-on-move={ activateOnFocus ? 'true' : 'false' }\n\t\t\t\tclassName={ clsx(\n\t\t\t\t\tstyles.tablist,\n\t\t\t\t\toverflow.first && styles[ 'is-overflowing-first' ],\n\t\t\t\t\toverflow.last && styles[ 'is-overflowing-last' ],\n\t\t\t\t\tstyles[ `is-${ variant }-variant` ],\n\t\t\t\t\tclassName\n\t\t\t\t) }\n\t\t\t\t{ ...otherProps }\n\t\t\t\ttabIndex={\n\t\t\t\t\totherProps.tabIndex ??\n\t\t\t\t\t( overflow.isScrolling ? -1 : undefined )\n\t\t\t\t}\n\t\t\t>\n\t\t\t\t{ children }\n\t\t\t\t<_Tabs.Indicator className={ styles.indicator } />\n\t\t\t</_Tabs.List>\n\t\t);\n\t}\n);\n", "if (typeof document !== 'undefined' && process.env.NODE_ENV !== 'test' && !document.head.querySelector(\"style[data-wp-hash='8c9d1dfa2f']\")) {\n\tconst style = document.createElement(\"style\");\n\tstyle.setAttribute(\"data-wp-hash\", \"8c9d1dfa2f\");\n\tstyle.appendChild(document.createTextNode(\"@layer wp-ui-utilities, wp-ui-components, wp-ui-compositions, wp-ui-overrides;@layer wp-ui-components{._7313adbc8a112e90__tablist{--direction-factor:1;--direction-start:left;--direction-end:right;align-items:stretch;display:flex;overflow-inline:auto;overscroll-behavior-inline:none;position:relative;&:dir(rtl){--direction-factor:-1;--direction-start:right;--direction-end:left}&[data-orientation=horizontal]{--fade-width:4rem;--fade-gradient-base:#0000 0%,#000 var(--fade-width);--fade-gradient-composed:var(--fade-gradient-base),#000 60%,#0000 50%;width:fit-content;&._9f2ac729c68a735a__is-overflowing-first{mask-image:linear-gradient(to var(--direction-end),var(--fade-gradient-base))}&._81c799c1f3cdd261__is-overflowing-last{mask-image:linear-gradient(to var(--direction-start),var(--fade-gradient-base))}&._9f2ac729c68a735a__is-overflowing-first._81c799c1f3cdd261__is-overflowing-last{mask-image:linear-gradient(to right,var(--fade-gradient-composed)),linear-gradient(to left,var(--fade-gradient-composed))}&._59228b5227f38a99__is-minimal-variant{gap:1rem}}&[data-orientation=vertical]{flex-direction:column}}._1c37dcfaa1ad8cda__indicator{@media not (prefers-reduced-motion){transition-duration:.2s;transition-property:translate,width,height,border-radius,border-block;transition-timing-function:ease-out}outline:2px solid #0000;outline-offset:-1px;pointer-events:none;position:absolute;&[data-orientation=horizontal]{background-color:var(--wpds-color-stroke-interactive-neutral-strong,#6e6e6e);bottom:0;height:var(--wpds-border-width-focus,var(--wp-admin-border-width-focus,2px));left:0;translate:var(--active-tab-left) 0;width:var(--active-tab-width);z-index:1}&[data-orientation=vertical]{background-color:var(--wpds-color-bg-interactive-neutral-weak-active,#ededed);border-radius:var(--wpds-border-radius-sm,2px);height:var(--active-tab-height);left:50%;top:0;translate:-50% var(--active-tab-top);width:100%;z-index:0}._7313adbc8a112e90__tablist[data-select-on-move=true]:has(:focus-visible)\\n\\t\\t&[data-orientation=vertical]{border:var(--wpds-border-width-focus,var(--wp-admin-border-width-focus,2px)) solid var(--wpds-color-stroke-focus-brand,var(--wp-admin-theme-color,#3858e9));box-sizing:border-box}}.a5fd8814f195aa5e__tab{align-items:center;background:#0000;border:none;border-radius:0;box-shadow:none;color:var(--wpds-color-fg-interactive-neutral,#1e1e1e);cursor:var(--wpds-cursor-control,pointer);display:flex;flex:1 0 auto;font-family:var(--wpds-typography-font-family-body,-apple-system,system-ui,\\\"Segoe UI\\\",\\\"Roboto\\\",\\\"Oxygen-Sans\\\",\\\"Ubuntu\\\",\\\"Cantarell\\\",\\\"Helvetica Neue\\\",sans-serif);font-size:var(--wpds-typography-font-size-md,13px);font-weight:400;line-height:1.2;outline:none;padding:0;position:relative;white-space:nowrap;z-index:1;&[data-disabled]{color:var(--wpds-color-fg-interactive-neutral-disabled,#8d8d8d);cursor:default;@media (forced-colors:active){color:GrayText}}&:not([data-disabled]):is(:hover,:focus-visible){color:var(--wpds-color-fg-interactive-neutral-active,#1e1e1e)}&:after{border-radius:var(--wpds-border-radius-sm,2px);opacity:0;outline:var(--wpds-border-width-focus,var(--wp-admin-border-width-focus,2px)) solid var(--wpds-color-stroke-focus-brand,var(--wp-admin-theme-color,#3858e9));pointer-events:none;position:absolute;z-index:-1;@media not (prefers-reduced-motion){transition:opacity .1s linear}}&:focus-visible:after{opacity:1}[data-orientation=horizontal] &{height:48px;padding-inline:var(--wpds-dimension-padding-lg,16px);scroll-margin:24px;&:after{content:\\\"\\\";inset:var(--wpds-dimension-padding-md,12px)}}._59228b5227f38a99__is-minimal-variant[data-orientation=horizontal] &{padding-inline:0;&:after{inset-inline:round(up,var(--wpds-border-width-focus,var(--wp-admin-border-width-focus,2px)),1px)}}[data-orientation=vertical] &{min-height:40px;padding:var(--wpds-dimension-padding-sm,8px) var(--wpds-dimension-padding-md,12px)}[data-orientation=vertical][data-select-on-move=false] &:after{content:\\\"\\\";inset:var(--wpds-border-width-focus,var(--wp-admin-border-width-focus,2px))}}._5dfc77e6edd345d4__tab-children{align-items:center;display:flex;flex-grow:1;[data-orientation=horizontal] &{justify-content:center}[data-orientation=vertical] &{justify-content:start}}._4a20e969d15e5ac1__tab-chevron{flex-shrink:0;margin-inline-end:calc(var(--wpds-dimension-gap-xs, 4px)*-1);opacity:0;[data-orientation=horizontal] &{display:none}[role=tab]:is([aria-selected=true],:focus-visible,:hover) &{opacity:1}@media not (prefers-reduced-motion){[data-select-on-move=true]\\n\\t\\t\\t[role=tab]:is([aria-selected=true])\\n\\t\\t\\t&{transition:opacity .15s linear .15s}}&:dir(rtl){rotate:180deg}}._49f4bf715948892a__tabpanel{&:focus{box-shadow:none;outline:none}&:focus-visible{box-shadow:0 0 0 var(--wpds-border-width-focus,var(--wp-admin-border-width-focus,2px)) var(--wpds-color-stroke-focus-brand,var(--wp-admin-theme-color,#3858e9));outline:2px solid #0000;outline-offset:0}}}\"));\n\tdocument.head.appendChild(style);\n}\nexport default {\"tablist\":\"_7313adbc8a112e90__tablist\",\"is-overflowing-first\":\"_9f2ac729c68a735a__is-overflowing-first\",\"is-overflowing-last\":\"_81c799c1f3cdd261__is-overflowing-last\",\"is-minimal-variant\":\"_59228b5227f38a99__is-minimal-variant\",\"indicator\":\"_1c37dcfaa1ad8cda__indicator\",\"tab\":\"a5fd8814f195aa5e__tab\",\"tab-children\":\"_5dfc77e6edd345d4__tab-children\",\"tab-chevron\":\"_4a20e969d15e5ac1__tab-chevron\",\"tabpanel\":\"_49f4bf715948892a__tabpanel\"};\n"],
5
- "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,qBAAgD;AAChD,kBAAiB;AACjB,kBAA8B;AAC9B,qBAA6B;;;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,uyJAA+zJ,CAAC;AAC12J,WAAS,KAAK,YAAY,KAAK;AAChC;AACA,IAAO,gBAAQ,EAAC,WAAU,8BAA6B,wBAAuB,2CAA0C,uBAAsB,0CAAyC,sBAAqB,yCAAwC,aAAY,gCAA+B,OAAM,yBAAwB,gBAAe,mCAAkC,eAAc,kCAAiC,YAAW,8BAA6B;;;ADoGlc;AAlGH,IAAM,iBAAiB;AAQhB,IAAM,WAAO;AAAA,EACnB,SAAS,QACR;AAAA,IACC;AAAA,IACA,UAAU;AAAA,IACV;AAAA,IACA;AAAA,IACA,GAAG;AAAA,EACJ,GACA,cACC;AACD,UAAM,CAAE,QAAQ,SAAU,QAAI,yBAAmC,IAAK;AACtE,UAAM,CAAE,UAAU,WAAY,QAAI,yBAI7B;AAAA,MACJ,OAAO;AAAA,MACP,MAAM;AAAA,MACN,aAAa;AAAA,IACd,CAAE;AAGF,kCAAW,MAAM;AAChB,UAAK,CAAE,QAAS;AACf;AAAA,MACD;AAEA,YAAM,kBAAkB,MAAM;AAC7B,cAAM,EAAE,aAAa,aAAa,WAAW,IAAI;AACjD,cAAM,YAAY,KAAK,IAAK,cAAc,aAAa,CAAE;AACzD,cAAM,YACL,OAAO,QACL,OAAO,WAAW,cACjB,OAAO,iBAAkB,MAAO,EAAE,YAClC;AAEJ,cAAM,kBACL,cAAc,SAAS,aAAa;AAAA;AAAA;AAAA;AAAA,UAIjC,CAAC;AAAA,YACD;AAGJ,oBAAa;AAAA,UACZ,OAAO,kBAAkB;AAAA,UACzB,MAAM,kBAAkB,YAAY;AAAA,UACpC,aAAa,cAAc;AAAA,QAC5B,CAAE;AAAA,MACH;AAEA,YAAM,iBAAiB,IAAI,eAAgB,eAAgB;AAC3D,qBAAe,QAAS,MAAO;AAE/B,UAAI,aAAa;AACjB,YAAM,kCAAkC,MAAM;AAC7C,YAAK,CAAE,YAAa;AACnB,gCAAuB,MAAM;AAC5B,4BAAgB;AAChB,yBAAa;AAAA,UACd,CAAE;AACF,uBAAa;AAAA,QACd;AAAA,MACD;AACA,aAAO;AAAA,QACN;AAAA,QACA;AAAA,QACA,EAAE,SAAS,KAAK;AAAA,MACjB;AAGA,sBAAgB;AAEhB,aAAO,MAAM;AACZ,eAAO;AAAA,UACN;AAAA,UACA;AAAA,QACD;AACA,uBAAe,WAAW;AAAA,MAC3B;AAAA,IACD,GAAG,CAAE,MAAO,CAAE;AAEd,UAAM,oBAAgB,6BAAc;AAAA,MACnC;AAAA,MACA,CAAE,OAA+B,UAAW,EAAG;AAAA,IAChD,CAAE;AAEF,WACC;AAAA,MAAC,YAAAA,KAAM;AAAA,MAAN;AAAA,QACA,KAAM;AAAA,QACN;AAAA,QACA,uBAAsB,kBAAkB,SAAS;AAAA,QACjD,eAAY,YAAAC;AAAA,UACX,cAAO;AAAA,UACP,SAAS,SAAS,cAAQ,sBAAuB;AAAA,UACjD,SAAS,QAAQ,cAAQ,qBAAsB;AAAA,UAC/C,cAAQ,MAAO,OAAQ,UAAW;AAAA,UAClC;AAAA,QACD;AAAA,QACE,GAAG;AAAA,QACL,UACC,WAAW,aACT,SAAS,cAAc,KAAK;AAAA,QAG7B;AAAA;AAAA,UACF,4CAAC,YAAAD,KAAM,WAAN,EAAgB,WAAY,cAAO,WAAY;AAAA;AAAA;AAAA,IACjD;AAAA,EAEF;AACD;",
4
+ "sourcesContent": ["import { forwardRef, useEffect, useState } from '@wordpress/element';\nimport clsx from 'clsx';\nimport { Tabs as _Tabs } from '@base-ui/react/tabs';\nimport { useMergeRefs } from '@wordpress/compose';\nimport styles from './style.module.css';\nimport type { TabListProps } from './types';\n\n// Account for sub-pixel rounding errors.\nconst SCROLL_EPSILON = 1;\n\n/**\n * Groups the individual tab buttons.\n *\n * `Tabs` is a collection of React components that combine to render\n * an [ARIA-compliant tabs pattern](https://www.w3.org/WAI/ARIA/apg/patterns/tabs/).\n */\nexport const List = forwardRef< HTMLDivElement, TabListProps >(\n\tfunction TabList(\n\t\t{\n\t\t\tchildren,\n\t\t\tvariant = 'default',\n\t\t\tclassName,\n\t\t\tactivateOnFocus,\n\t\t\t...otherProps\n\t\t},\n\t\tforwardedRef\n\t) {\n\t\tconst [ listEl, setListEl ] = useState< HTMLDivElement | null >( null );\n\t\tconst [ overflow, setOverflow ] = useState< {\n\t\t\tfirst: boolean;\n\t\t\tlast: boolean;\n\t\t\tisScrolling: boolean;\n\t\t} >( {\n\t\t\tfirst: false,\n\t\t\tlast: false,\n\t\t\tisScrolling: false,\n\t\t} );\n\n\t\t// Check if list is overflowing when it scrolls or resizes.\n\t\tuseEffect( () => {\n\t\t\tif ( ! listEl ) {\n\t\t\t\treturn;\n\t\t\t}\n\n\t\t\tconst measureOverflow = () => {\n\t\t\t\tconst { scrollWidth, clientWidth, scrollLeft } = listEl;\n\t\t\t\tconst maxScroll = Math.max( scrollWidth - clientWidth, 0 );\n\t\t\t\tconst direction =\n\t\t\t\t\tlistEl.dir ||\n\t\t\t\t\t( typeof window !== 'undefined'\n\t\t\t\t\t\t? window.getComputedStyle( listEl ).direction\n\t\t\t\t\t\t: 'ltr' );\n\n\t\t\t\tconst scrollFromStart =\n\t\t\t\t\tdirection === 'rtl' && scrollLeft < 0\n\t\t\t\t\t\t? // In RTL layouts, scrollLeft is typically 0 at the visual \"start\"\n\t\t\t\t\t\t // (right edge) and becomes negative toward the \"end\" (left edge).\n\t\t\t\t\t\t // Normalize value for correct first/last detection logic.\n\t\t\t\t\t\t -scrollLeft\n\t\t\t\t\t\t: scrollLeft;\n\n\t\t\t\t// Use SCROLL_EPSILON to handle subpixel rendering differences.\n\t\t\t\tsetOverflow( {\n\t\t\t\t\tfirst: scrollFromStart > SCROLL_EPSILON,\n\t\t\t\t\tlast: scrollFromStart < maxScroll - SCROLL_EPSILON,\n\t\t\t\t\tisScrolling: scrollWidth > clientWidth,\n\t\t\t\t} );\n\t\t\t};\n\n\t\t\tconst resizeObserver = new ResizeObserver( measureOverflow );\n\t\t\tresizeObserver.observe( listEl );\n\n\t\t\tlet scrollTick = false;\n\t\t\tconst throttleMeasureOverflowOnScroll = () => {\n\t\t\t\tif ( ! scrollTick ) {\n\t\t\t\t\trequestAnimationFrame( () => {\n\t\t\t\t\t\tmeasureOverflow();\n\t\t\t\t\t\tscrollTick = false;\n\t\t\t\t\t} );\n\t\t\t\t\tscrollTick = true;\n\t\t\t\t}\n\t\t\t};\n\t\t\tlistEl.addEventListener(\n\t\t\t\t'scroll',\n\t\t\t\tthrottleMeasureOverflowOnScroll,\n\t\t\t\t{ passive: true }\n\t\t\t);\n\n\t\t\t// Initial check.\n\t\t\tmeasureOverflow();\n\n\t\t\treturn () => {\n\t\t\t\tlistEl.removeEventListener(\n\t\t\t\t\t'scroll',\n\t\t\t\t\tthrottleMeasureOverflowOnScroll\n\t\t\t\t);\n\t\t\t\tresizeObserver.disconnect();\n\t\t\t};\n\t\t}, [ listEl ] );\n\n\t\tconst mergedListRef = useMergeRefs( [\n\t\t\tforwardedRef,\n\t\t\t( el: HTMLDivElement | null ) => setListEl( el ),\n\t\t] );\n\n\t\treturn (\n\t\t\t<_Tabs.List\n\t\t\t\tref={ mergedListRef }\n\t\t\t\tactivateOnFocus={ activateOnFocus }\n\t\t\t\tdata-select-on-move={ activateOnFocus ? 'true' : 'false' }\n\t\t\t\tclassName={ clsx(\n\t\t\t\t\tstyles.tablist,\n\t\t\t\t\toverflow.first && styles[ 'is-overflowing-first' ],\n\t\t\t\t\toverflow.last && styles[ 'is-overflowing-last' ],\n\t\t\t\t\tstyles[ `is-${ variant }-variant` ],\n\t\t\t\t\tclassName\n\t\t\t\t) }\n\t\t\t\t{ ...otherProps }\n\t\t\t\ttabIndex={\n\t\t\t\t\totherProps.tabIndex ??\n\t\t\t\t\t( overflow.isScrolling ? -1 : undefined )\n\t\t\t\t}\n\t\t\t>\n\t\t\t\t{ children }\n\t\t\t\t<_Tabs.Indicator className={ styles.indicator } />\n\t\t\t</_Tabs.List>\n\t\t);\n\t}\n);\n", "if (typeof document !== 'undefined' && process.env.NODE_ENV !== 'test' && !document.head.querySelector(\"style[data-wp-hash='b8cf8136a5']\")) {\n\tconst style = document.createElement(\"style\");\n\tstyle.setAttribute(\"data-wp-hash\", \"b8cf8136a5\");\n\tstyle.appendChild(document.createTextNode(\"@layer wp-ui-utilities, wp-ui-components, wp-ui-compositions, wp-ui-overrides;@layer wp-ui-components{._7313adbc8a112e90__tablist{--direction-factor:1;--direction-start:left;--direction-end:right;align-items:stretch;display:flex;overflow-inline:auto;overscroll-behavior-inline:none;position:relative;&:dir(rtl){--direction-factor:-1;--direction-start:right;--direction-end:left}&[data-orientation=horizontal]{--fade-width:4rem;--fade-gradient-base:#0000 0%,#000 var(--fade-width);--fade-gradient-composed:var(--fade-gradient-base),#000 60%,#0000 50%;width:fit-content;&._9f2ac729c68a735a__is-overflowing-first{mask-image:linear-gradient(to var(--direction-end),var(--fade-gradient-base))}&._81c799c1f3cdd261__is-overflowing-last{mask-image:linear-gradient(to var(--direction-start),var(--fade-gradient-base))}&._9f2ac729c68a735a__is-overflowing-first._81c799c1f3cdd261__is-overflowing-last{mask-image:linear-gradient(to right,var(--fade-gradient-composed)),linear-gradient(to left,var(--fade-gradient-composed))}&._59228b5227f38a99__is-minimal-variant{gap:1rem}}&[data-orientation=vertical]{flex-direction:column}}._1c37dcfaa1ad8cda__indicator{@media not (prefers-reduced-motion){transition-duration:.2s;transition-property:translate,width,height,border-radius,border-block;transition-timing-function:ease-out}outline:2px solid #0000;outline-offset:-1px;pointer-events:none;position:absolute;&[data-orientation=horizontal]{background-color:var(--wpds-color-stroke-interactive-neutral-strong,#6e6e6e);bottom:0;height:var(--wpds-border-width-focus,var(--wp-admin-border-width-focus,2px));left:0;translate:var(--active-tab-left) 0;width:var(--active-tab-width);z-index:1}&[data-orientation=vertical]{background-color:var(--wpds-color-bg-interactive-neutral-weak-active,#ededed);border-radius:var(--wpds-border-radius-sm,2px);height:var(--active-tab-height);left:50%;top:0;translate:-50% var(--active-tab-top);width:100%;z-index:0}._7313adbc8a112e90__tablist[data-select-on-move=true]:has(:focus-visible)\\n\\t\\t&[data-orientation=vertical]{border:var(--wpds-border-width-focus,var(--wp-admin-border-width-focus,2px)) solid var(--wpds-color-stroke-focus-brand,var(--wp-admin-theme-color,#3858e9));box-sizing:border-box}}.a5fd8814f195aa5e__tab{align-items:center;background:#0000;border:none;border-radius:0;box-shadow:none;color:var(--wpds-color-fg-interactive-neutral,#1e1e1e);cursor:var(--wpds-cursor-control,pointer);display:flex;flex:1 0 auto;font-family:var(--wpds-typography-font-family-body,-apple-system,system-ui,\\\"Segoe UI\\\",\\\"Roboto\\\",\\\"Oxygen-Sans\\\",\\\"Ubuntu\\\",\\\"Cantarell\\\",\\\"Helvetica Neue\\\",sans-serif);font-size:var(--wpds-typography-font-size-md,13px);font-weight:400;line-height:1.2;outline:none;padding:0;position:relative;white-space:nowrap;z-index:1;&[data-disabled]{color:var(--wpds-color-fg-interactive-neutral-disabled,#8d8d8d);cursor:default;@media (forced-colors:active){color:GrayText}}&:not([data-disabled]):is(:hover,:focus-visible){color:var(--wpds-color-fg-interactive-neutral-active,#1e1e1e)}&:after{border-radius:var(--wpds-border-radius-sm,2px);opacity:0;outline:var(--wpds-border-width-focus,var(--wp-admin-border-width-focus,2px)) solid var(--wpds-color-stroke-focus-brand,var(--wp-admin-theme-color,#3858e9));pointer-events:none;position:absolute;z-index:-1;@media not (prefers-reduced-motion){transition:opacity .1s linear}}&:focus-visible:after{opacity:1}[data-orientation=horizontal] &{height:48px;padding-inline:var(--wpds-dimension-padding-lg,16px);scroll-margin:24px;&:after{content:\\\"\\\";inset:var(--wpds-dimension-padding-md,12px)}}._59228b5227f38a99__is-minimal-variant[data-orientation=horizontal] &{padding-inline:0;&:after{inset-inline:round(up,var(--wpds-border-width-focus,var(--wp-admin-border-width-focus,2px)),1px)}}[data-orientation=vertical] &{min-height:40px;padding:var(--wpds-dimension-padding-sm,8px) var(--wpds-dimension-padding-md,12px)}[data-orientation=vertical][data-select-on-move=false] &:after{content:\\\"\\\";inset:var(--wpds-border-width-focus,var(--wp-admin-border-width-focus,2px))}}._5dfc77e6edd345d4__tab-children{align-items:center;display:flex;flex-grow:1;[data-orientation=horizontal] &{justify-content:center}[data-orientation=vertical] &{justify-content:start}}._4a20e969d15e5ac1__tab-chevron{flex-shrink:0;margin-inline-end:calc(var(--wpds-dimension-gap-xs, 4px)*-1);opacity:0;[data-orientation=horizontal] &{display:none}[role=tab]:is([aria-selected=true],:focus-visible,:hover) &{opacity:1}@media not (prefers-reduced-motion){[data-select-on-move=true]\\n\\t\\t\\t[role=tab]:is([aria-selected=true])\\n\\t\\t\\t&{transition:opacity .15s linear .15s}}&:dir(rtl){rotate:180deg}}}\"));\n\tdocument.head.appendChild(style);\n}\nexport default {\"tablist\":\"_7313adbc8a112e90__tablist\",\"is-overflowing-first\":\"_9f2ac729c68a735a__is-overflowing-first\",\"is-overflowing-last\":\"_81c799c1f3cdd261__is-overflowing-last\",\"is-minimal-variant\":\"_59228b5227f38a99__is-minimal-variant\",\"indicator\":\"_1c37dcfaa1ad8cda__indicator\",\"tab\":\"a5fd8814f195aa5e__tab\",\"tab-children\":\"_5dfc77e6edd345d4__tab-children\",\"tab-chevron\":\"_4a20e969d15e5ac1__tab-chevron\"};\n"],
5
+ "mappings": ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,qBAAgD;AAChD,kBAAiB;AACjB,kBAA8B;AAC9B,qBAA6B;;;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,2gJAAmiJ,CAAC;AAC9kJ,WAAS,KAAK,YAAY,KAAK;AAChC;AACA,IAAO,gBAAQ,EAAC,WAAU,8BAA6B,wBAAuB,2CAA0C,uBAAsB,0CAAyC,sBAAqB,yCAAwC,aAAY,gCAA+B,OAAM,yBAAwB,gBAAe,mCAAkC,eAAc,iCAAgC;;;ADoGzZ;AAlGH,IAAM,iBAAiB;AAQhB,IAAM,WAAO;AAAA,EACnB,SAAS,QACR;AAAA,IACC;AAAA,IACA,UAAU;AAAA,IACV;AAAA,IACA;AAAA,IACA,GAAG;AAAA,EACJ,GACA,cACC;AACD,UAAM,CAAE,QAAQ,SAAU,QAAI,yBAAmC,IAAK;AACtE,UAAM,CAAE,UAAU,WAAY,QAAI,yBAI7B;AAAA,MACJ,OAAO;AAAA,MACP,MAAM;AAAA,MACN,aAAa;AAAA,IACd,CAAE;AAGF,kCAAW,MAAM;AAChB,UAAK,CAAE,QAAS;AACf;AAAA,MACD;AAEA,YAAM,kBAAkB,MAAM;AAC7B,cAAM,EAAE,aAAa,aAAa,WAAW,IAAI;AACjD,cAAM,YAAY,KAAK,IAAK,cAAc,aAAa,CAAE;AACzD,cAAM,YACL,OAAO,QACL,OAAO,WAAW,cACjB,OAAO,iBAAkB,MAAO,EAAE,YAClC;AAEJ,cAAM,kBACL,cAAc,SAAS,aAAa;AAAA;AAAA;AAAA;AAAA,UAIjC,CAAC;AAAA,YACD;AAGJ,oBAAa;AAAA,UACZ,OAAO,kBAAkB;AAAA,UACzB,MAAM,kBAAkB,YAAY;AAAA,UACpC,aAAa,cAAc;AAAA,QAC5B,CAAE;AAAA,MACH;AAEA,YAAM,iBAAiB,IAAI,eAAgB,eAAgB;AAC3D,qBAAe,QAAS,MAAO;AAE/B,UAAI,aAAa;AACjB,YAAM,kCAAkC,MAAM;AAC7C,YAAK,CAAE,YAAa;AACnB,gCAAuB,MAAM;AAC5B,4BAAgB;AAChB,yBAAa;AAAA,UACd,CAAE;AACF,uBAAa;AAAA,QACd;AAAA,MACD;AACA,aAAO;AAAA,QACN;AAAA,QACA;AAAA,QACA,EAAE,SAAS,KAAK;AAAA,MACjB;AAGA,sBAAgB;AAEhB,aAAO,MAAM;AACZ,eAAO;AAAA,UACN;AAAA,UACA;AAAA,QACD;AACA,uBAAe,WAAW;AAAA,MAC3B;AAAA,IACD,GAAG,CAAE,MAAO,CAAE;AAEd,UAAM,oBAAgB,6BAAc;AAAA,MACnC;AAAA,MACA,CAAE,OAA+B,UAAW,EAAG;AAAA,IAChD,CAAE;AAEF,WACC;AAAA,MAAC,YAAAA,KAAM;AAAA,MAAN;AAAA,QACA,KAAM;AAAA,QACN;AAAA,QACA,uBAAsB,kBAAkB,SAAS;AAAA,QACjD,eAAY,YAAAC;AAAA,UACX,cAAO;AAAA,UACP,SAAS,SAAS,cAAQ,sBAAuB;AAAA,UACjD,SAAS,QAAQ,cAAQ,qBAAsB;AAAA,UAC/C,cAAQ,MAAO,OAAQ,UAAW;AAAA,UAClC;AAAA,QACD;AAAA,QACE,GAAG;AAAA,QACL,UACC,WAAW,aACT,SAAS,cAAc,KAAK;AAAA,QAG7B;AAAA;AAAA,UACF,4CAAC,YAAAD,KAAM,WAAN,EAAgB,WAAY,cAAO,WAAY;AAAA;AAAA;AAAA,IACjD;AAAA,EAEF;AACD;",
6
6
  "names": ["_Tabs", "clsx"]
7
7
  }
@@ -38,14 +38,23 @@ var import_clsx = __toESM(require("clsx"));
38
38
  var import_tabs = require("@base-ui/react/tabs");
39
39
  var import_context = require("./context.cjs");
40
40
 
41
- // packages/ui/src/tabs/style.module.css
42
- if (typeof document !== "undefined" && process.env.NODE_ENV !== "test" && !document.head.querySelector("style[data-wp-hash='8c9d1dfa2f']")) {
41
+ // packages/ui/src/utils/css/global-css-defense.module.css
42
+ if (typeof document !== "undefined" && process.env.NODE_ENV !== "test" && !document.head.querySelector("style[data-wp-hash='1fb29d3a3c']")) {
43
43
  const style = document.createElement("style");
44
- style.setAttribute("data-wp-hash", "8c9d1dfa2f");
45
- style.appendChild(document.createTextNode('@layer wp-ui-utilities, wp-ui-components, wp-ui-compositions, wp-ui-overrides;@layer wp-ui-components{._7313adbc8a112e90__tablist{--direction-factor:1;--direction-start:left;--direction-end:right;align-items:stretch;display:flex;overflow-inline:auto;overscroll-behavior-inline:none;position:relative;&:dir(rtl){--direction-factor:-1;--direction-start:right;--direction-end:left}&[data-orientation=horizontal]{--fade-width:4rem;--fade-gradient-base:#0000 0%,#000 var(--fade-width);--fade-gradient-composed:var(--fade-gradient-base),#000 60%,#0000 50%;width:fit-content;&._9f2ac729c68a735a__is-overflowing-first{mask-image:linear-gradient(to var(--direction-end),var(--fade-gradient-base))}&._81c799c1f3cdd261__is-overflowing-last{mask-image:linear-gradient(to var(--direction-start),var(--fade-gradient-base))}&._9f2ac729c68a735a__is-overflowing-first._81c799c1f3cdd261__is-overflowing-last{mask-image:linear-gradient(to right,var(--fade-gradient-composed)),linear-gradient(to left,var(--fade-gradient-composed))}&._59228b5227f38a99__is-minimal-variant{gap:1rem}}&[data-orientation=vertical]{flex-direction:column}}._1c37dcfaa1ad8cda__indicator{@media not (prefers-reduced-motion){transition-duration:.2s;transition-property:translate,width,height,border-radius,border-block;transition-timing-function:ease-out}outline:2px solid #0000;outline-offset:-1px;pointer-events:none;position:absolute;&[data-orientation=horizontal]{background-color:var(--wpds-color-stroke-interactive-neutral-strong,#6e6e6e);bottom:0;height:var(--wpds-border-width-focus,var(--wp-admin-border-width-focus,2px));left:0;translate:var(--active-tab-left) 0;width:var(--active-tab-width);z-index:1}&[data-orientation=vertical]{background-color:var(--wpds-color-bg-interactive-neutral-weak-active,#ededed);border-radius:var(--wpds-border-radius-sm,2px);height:var(--active-tab-height);left:50%;top:0;translate:-50% var(--active-tab-top);width:100%;z-index:0}._7313adbc8a112e90__tablist[data-select-on-move=true]:has(:focus-visible)\n &[data-orientation=vertical]{border:var(--wpds-border-width-focus,var(--wp-admin-border-width-focus,2px)) solid var(--wpds-color-stroke-focus-brand,var(--wp-admin-theme-color,#3858e9));box-sizing:border-box}}.a5fd8814f195aa5e__tab{align-items:center;background:#0000;border:none;border-radius:0;box-shadow:none;color:var(--wpds-color-fg-interactive-neutral,#1e1e1e);cursor:var(--wpds-cursor-control,pointer);display:flex;flex:1 0 auto;font-family:var(--wpds-typography-font-family-body,-apple-system,system-ui,"Segoe UI","Roboto","Oxygen-Sans","Ubuntu","Cantarell","Helvetica Neue",sans-serif);font-size:var(--wpds-typography-font-size-md,13px);font-weight:400;line-height:1.2;outline:none;padding:0;position:relative;white-space:nowrap;z-index:1;&[data-disabled]{color:var(--wpds-color-fg-interactive-neutral-disabled,#8d8d8d);cursor:default;@media (forced-colors:active){color:GrayText}}&:not([data-disabled]):is(:hover,:focus-visible){color:var(--wpds-color-fg-interactive-neutral-active,#1e1e1e)}&:after{border-radius:var(--wpds-border-radius-sm,2px);opacity:0;outline:var(--wpds-border-width-focus,var(--wp-admin-border-width-focus,2px)) solid var(--wpds-color-stroke-focus-brand,var(--wp-admin-theme-color,#3858e9));pointer-events:none;position:absolute;z-index:-1;@media not (prefers-reduced-motion){transition:opacity .1s linear}}&:focus-visible:after{opacity:1}[data-orientation=horizontal] &{height:48px;padding-inline:var(--wpds-dimension-padding-lg,16px);scroll-margin:24px;&:after{content:"";inset:var(--wpds-dimension-padding-md,12px)}}._59228b5227f38a99__is-minimal-variant[data-orientation=horizontal] &{padding-inline:0;&:after{inset-inline:round(up,var(--wpds-border-width-focus,var(--wp-admin-border-width-focus,2px)),1px)}}[data-orientation=vertical] &{min-height:40px;padding:var(--wpds-dimension-padding-sm,8px) var(--wpds-dimension-padding-md,12px)}[data-orientation=vertical][data-select-on-move=false] &:after{content:"";inset:var(--wpds-border-width-focus,var(--wp-admin-border-width-focus,2px))}}._5dfc77e6edd345d4__tab-children{align-items:center;display:flex;flex-grow:1;[data-orientation=horizontal] &{justify-content:center}[data-orientation=vertical] &{justify-content:start}}._4a20e969d15e5ac1__tab-chevron{flex-shrink:0;margin-inline-end:calc(var(--wpds-dimension-gap-xs, 4px)*-1);opacity:0;[data-orientation=horizontal] &{display:none}[role=tab]:is([aria-selected=true],:focus-visible,:hover) &{opacity:1}@media not (prefers-reduced-motion){[data-select-on-move=true]\n [role=tab]:is([aria-selected=true])\n &{transition:opacity .15s linear .15s}}&:dir(rtl){rotate:180deg}}._49f4bf715948892a__tabpanel{&:focus{box-shadow:none;outline:none}&:focus-visible{box-shadow:0 0 0 var(--wpds-border-width-focus,var(--wp-admin-border-width-focus,2px)) var(--wpds-color-stroke-focus-brand,var(--wp-admin-theme-color,#3858e9));outline:2px solid #0000;outline-offset:0}}}'));
44
+ style.setAttribute("data-wp-hash", "1fb29d3a3c");
45
+ style.appendChild(document.createTextNode("._6defc79820e382c6__button{box-sizing:var(--_gcd-button-box-sizing,border-box);font-family:var(--_gcd-button-font-family,inherit);font-size:var(--_gcd-button-font-size,inherit);font-weight:var(--_gcd-button-font-weight,inherit)}.d2cff2e5dea83bd1__input{box-sizing:var(--_gcd-input-box-sizing,border-box);font-family:var(--_gcd-input-font-family,inherit);font-size:var(--_gcd-input-font-size,inherit);font-weight:var(--_gcd-input-font-weight,inherit);margin:var(--_gcd-input-margin,0);&:is(textarea,[type=text],[type=password],[type=color],[type=date],[type=datetime],[type=datetime-local],[type=email],[type=month],[type=number],[type=search],[type=tel],[type=time],[type=url],[type=week]){background-color:var(--_gcd-input-background-color,#0000);border:var(--_gcd-input-border,none);border-radius:var(--_gcd-input-border-radius,0);box-shadow:var(--_gcd-input-box-shadow,0 0 0 #0000);color:var(--_gcd-input-color,var(--wpds-color-fg-interactive-neutral,#1e1e1e));&:focus{border-color:var(--_gcd-input-border-color-focus,var(--wp-admin-theme-color));box-shadow:var(--_gcd-input-box-shadow-focus,none);outline:var(--_gcd-input-outline-focus,none)}&:disabled{background:var(--_gcd-input-background-disabled,#0000);border-color:var(--_gcd-input-border-color-disabled,#0000);box-shadow:var(--_gcd-input-box-shadow-disabled,none);color:var(--_gcd-input-color-disabled,var(--wpds-color-fg-interactive-neutral-disabled,#8d8d8d))}&::placeholder{color:var(--_gcd-input-placeholder-color,var(--wpds-color-fg-interactive-neutral-disabled,#8d8d8d))}}&:is(textarea,[type=text],[type=password],[type=date],[type=datetime],[type=datetime-local],[type=email],[type=month],[type=number],[type=search],[type=tel],[type=time],[type=url],[type=week]){line-height:var(--_gcd-input-line-height,inherit);min-height:var(--_gcd-input-min-height,auto);padding:var(--_gcd-input-padding,0)}}._547d86373d02e108__textarea{box-sizing:var(--_gcd-textarea-box-sizing,border-box);overflow:var(--_gcd-textarea-overflow,auto);resize:var(--_gcd-textarea-resize,block)}._8c15fd0ed9f28ba4__div{outline:var(--_gcd-div-outline,0 solid #0000)}p._43cec3e1eec1066d__p{font-size:var(--_gcd-p-font-size,13px);line-height:var(--_gcd-p-line-height,1.5);margin:var(--_gcd-p-margin,0)}:is(h1,h2,h3,h4,h5,h6).e97669c6d9a38497__heading{color:var(--_gcd-heading-color,var(--wpds-color-fg-content-neutral,#1e1e1e));font-size:var(--_gcd-heading-font-size,inherit);font-weight:var(--_gcd-heading-font-weight,var(--wpds-typography-font-weight-medium,499));margin:var(--_gcd-heading-margin,0)}._2c0831b0499dbd6e__a,._2c0831b0499dbd6e__a:is(:hover,:focus,:active){border-radius:var(--_gcd-a-border-radius,0);box-shadow:var(--_gcd-a-box-shadow,none);color:var(--_gcd-a-color,inherit);outline:var(--_gcd-a-outline,0 solid #0000);transition:var(--_gcd-a-transition,none)}"));
46
46
  document.head.appendChild(style);
47
47
  }
48
- var style_default = { "tablist": "_7313adbc8a112e90__tablist", "is-overflowing-first": "_9f2ac729c68a735a__is-overflowing-first", "is-overflowing-last": "_81c799c1f3cdd261__is-overflowing-last", "is-minimal-variant": "_59228b5227f38a99__is-minimal-variant", "indicator": "_1c37dcfaa1ad8cda__indicator", "tab": "a5fd8814f195aa5e__tab", "tab-children": "_5dfc77e6edd345d4__tab-children", "tab-chevron": "_4a20e969d15e5ac1__tab-chevron", "tabpanel": "_49f4bf715948892a__tabpanel" };
48
+ var global_css_defense_default = { "button": "_6defc79820e382c6__button", "input": "d2cff2e5dea83bd1__input", "textarea": "_547d86373d02e108__textarea", "div": "_8c15fd0ed9f28ba4__div", "p": "_43cec3e1eec1066d__p", "heading": "e97669c6d9a38497__heading", "a": "_2c0831b0499dbd6e__a" };
49
+
50
+ // packages/ui/src/utils/css/focus.module.css
51
+ if (typeof document !== "undefined" && process.env.NODE_ENV !== "test" && !document.head.querySelector("style[data-wp-hash='2a5ab8f3a7']")) {
52
+ const style = document.createElement("style");
53
+ style.setAttribute("data-wp-hash", "2a5ab8f3a7");
54
+ 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){--_gcd-a-transition:outline 0.1s ease-out;transition:outline .1s ease-out}outline:0 solid #0000;outline-offset:1px}._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{--_gcd-a-outline:var(--wpds-border-width-focus,var(--wp-admin-border-width-focus,2px)) solid var(--wpds-color-stroke-focus-brand,var(--wp-admin-theme-color,#3858e9));--_gcd-div-outline:var(--wpds-border-width-focus,var(--wp-admin-border-width-focus,2px)) solid var(--wpds-color-stroke-focus-brand,var(--wp-admin-theme-color,#3858e9));outline:var(--wpds-border-width-focus,var(--wp-admin-border-width-focus,2px)) solid var(--wpds-color-stroke-focus-brand,var(--wp-admin-theme-color,#3858e9))}}"));
55
+ document.head.appendChild(style);
56
+ }
57
+ 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" };
49
58
 
50
59
  // packages/ui/src/tabs/panel.tsx
51
60
  var import_jsx_runtime = require("react/jsx-runtime");
@@ -56,7 +65,11 @@ var Panel = (0, import_element.forwardRef)(
56
65
  import_tabs.Tabs.Panel,
57
66
  {
58
67
  ref: forwardedRef,
59
- className: (0, import_clsx.default)(style_default.tabpanel, className),
68
+ className: (0, import_clsx.default)(
69
+ global_css_defense_default.div,
70
+ focus_default["outset-ring--focus-visible"],
71
+ className
72
+ ),
60
73
  ...otherProps
61
74
  }
62
75
  );