@wordpress/ui 0.12.1-next.v.202604201441.0 → 0.13.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 (857) hide show
  1. package/CHANGELOG.md +59 -2
  2. package/CONTRIBUTING.md +34 -0
  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 +194 -59
  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/badge/badge.cjs +84 -5
  11. package/build/badge/badge.cjs.map +3 -3
  12. package/build/button/button.cjs +90 -20
  13. package/build/button/button.cjs.map +3 -3
  14. package/build/button/icon.cjs.map +2 -2
  15. package/build/button/index.cjs +1 -0
  16. package/build/button/index.cjs.map +3 -3
  17. package/build/button/types.cjs.map +1 -1
  18. package/build/card/content.cjs +84 -5
  19. package/build/card/content.cjs.map +3 -3
  20. package/build/card/full-bleed.cjs +84 -5
  21. package/build/card/full-bleed.cjs.map +3 -3
  22. package/build/card/header.cjs +84 -5
  23. package/build/card/header.cjs.map +3 -3
  24. package/build/card/root.cjs +86 -10
  25. package/build/card/root.cjs.map +3 -3
  26. package/build/collapsible-card/content.cjs +90 -7
  27. package/build/collapsible-card/content.cjs.map +3 -3
  28. package/build/collapsible-card/header.cjs +131 -52
  29. package/build/collapsible-card/header.cjs.map +3 -3
  30. package/build/dialog/content.cjs +161 -0
  31. package/build/dialog/content.cjs.map +7 -0
  32. package/build/dialog/context.cjs +12 -56
  33. package/build/dialog/context.cjs.map +2 -2
  34. package/build/dialog/description.cjs +138 -0
  35. package/build/dialog/description.cjs.map +7 -0
  36. package/build/dialog/footer.cjs +86 -6
  37. package/build/dialog/footer.cjs.map +3 -3
  38. package/build/dialog/header.cjs +86 -6
  39. package/build/dialog/header.cjs.map +3 -3
  40. package/build/dialog/index.cjs +9 -0
  41. package/build/dialog/index.cjs.map +2 -2
  42. package/build/dialog/popup.cjs +102 -11
  43. package/build/dialog/popup.cjs.map +3 -3
  44. package/build/dialog/portal.cjs +38 -0
  45. package/build/dialog/portal.cjs.map +7 -0
  46. package/build/dialog/root.cjs +3 -2
  47. package/build/dialog/root.cjs.map +2 -2
  48. package/build/dialog/title.cjs +85 -6
  49. package/build/dialog/title.cjs.map +3 -3
  50. package/build/dialog/types.cjs.map +1 -1
  51. package/build/drawer/action.cjs +48 -0
  52. package/build/drawer/action.cjs.map +7 -0
  53. package/build/drawer/close-icon.cjs +58 -0
  54. package/build/drawer/close-icon.cjs.map +7 -0
  55. package/build/drawer/content.cjs +170 -0
  56. package/build/drawer/content.cjs.map +7 -0
  57. package/build/drawer/context.cjs +44 -0
  58. package/build/drawer/context.cjs.map +7 -0
  59. package/build/drawer/description.cjs +47 -0
  60. package/build/drawer/description.cjs.map +7 -0
  61. package/build/drawer/footer.cjs +144 -0
  62. package/build/drawer/footer.cjs.map +7 -0
  63. package/build/drawer/header.cjs +144 -0
  64. package/build/drawer/header.cjs.map +7 -0
  65. package/build/drawer/index.cjs +61 -0
  66. package/build/drawer/index.cjs.map +7 -0
  67. package/build/drawer/popup.cjs +182 -0
  68. package/build/drawer/popup.cjs.map +7 -0
  69. package/build/drawer/portal.cjs +38 -0
  70. package/build/drawer/portal.cjs.map +7 -0
  71. package/build/drawer/root.cjs +49 -0
  72. package/build/drawer/root.cjs.map +7 -0
  73. package/build/drawer/title.cjs +149 -0
  74. package/build/drawer/title.cjs.map +7 -0
  75. package/build/drawer/trigger.cjs +38 -0
  76. package/build/drawer/trigger.cjs.map +7 -0
  77. package/build/drawer/types.cjs +19 -0
  78. package/build/drawer/types.cjs.map +7 -0
  79. package/build/empty-state/actions.cjs +84 -5
  80. package/build/empty-state/actions.cjs.map +3 -3
  81. package/build/empty-state/description.cjs +84 -5
  82. package/build/empty-state/description.cjs.map +3 -3
  83. package/build/empty-state/icon.cjs +84 -5
  84. package/build/empty-state/icon.cjs.map +3 -3
  85. package/build/empty-state/root.cjs +84 -5
  86. package/build/empty-state/root.cjs.map +3 -3
  87. package/build/empty-state/title.cjs +84 -5
  88. package/build/empty-state/title.cjs.map +3 -3
  89. package/build/empty-state/visual.cjs +84 -5
  90. package/build/empty-state/visual.cjs.map +3 -3
  91. package/build/form/index.cjs +3 -1
  92. package/build/form/index.cjs.map +2 -2
  93. package/build/form/primitives/autocomplete/clear.cjs +62 -0
  94. package/build/form/primitives/autocomplete/clear.cjs.map +7 -0
  95. package/build/form/primitives/autocomplete/collection.cjs +38 -0
  96. package/build/form/primitives/autocomplete/collection.cjs.map +7 -0
  97. package/build/form/primitives/autocomplete/empty.cjs +146 -0
  98. package/build/form/primitives/autocomplete/empty.cjs.map +7 -0
  99. package/build/form/primitives/autocomplete/index.cjs +64 -0
  100. package/build/form/primitives/autocomplete/index.cjs.map +7 -0
  101. package/build/form/primitives/autocomplete/input-group.cjs +36 -0
  102. package/build/form/primitives/autocomplete/input-group.cjs.map +7 -0
  103. package/build/form/primitives/autocomplete/input.cjs +47 -0
  104. package/build/form/primitives/autocomplete/input.cjs.map +7 -0
  105. package/build/form/primitives/autocomplete/item.cjs +157 -0
  106. package/build/form/primitives/autocomplete/item.cjs.map +7 -0
  107. package/build/form/primitives/autocomplete/list-body.cjs +136 -0
  108. package/build/form/primitives/autocomplete/list-body.cjs.map +7 -0
  109. package/build/form/primitives/autocomplete/list.cjs +146 -0
  110. package/build/form/primitives/autocomplete/list.cjs.map +7 -0
  111. package/build/form/primitives/autocomplete/popup.cjs +175 -0
  112. package/build/form/primitives/autocomplete/popup.cjs.map +7 -0
  113. package/build/form/primitives/autocomplete/portal.cjs +38 -0
  114. package/build/form/primitives/autocomplete/portal.cjs.map +7 -0
  115. package/build/form/primitives/autocomplete/root.cjs +35 -0
  116. package/build/form/primitives/autocomplete/root.cjs.map +7 -0
  117. package/build/form/primitives/autocomplete/types.cjs +19 -0
  118. package/build/form/primitives/autocomplete/types.cjs.map +7 -0
  119. package/build/form/primitives/autocomplete/value.cjs +35 -0
  120. package/build/form/primitives/autocomplete/value.cjs.map +7 -0
  121. package/build/form/primitives/field/description.cjs +86 -10
  122. package/build/form/primitives/field/description.cjs.map +3 -3
  123. package/build/form/primitives/field/details.cjs +84 -5
  124. package/build/form/primitives/field/details.cjs.map +3 -3
  125. package/build/form/primitives/field/label.cjs +84 -5
  126. package/build/form/primitives/field/label.cjs.map +3 -3
  127. package/build/form/primitives/field/root.cjs +84 -5
  128. package/build/form/primitives/field/root.cjs.map +3 -3
  129. package/build/form/primitives/fieldset/description.cjs +86 -10
  130. package/build/form/primitives/fieldset/description.cjs.map +3 -3
  131. package/build/form/primitives/fieldset/details.cjs +84 -5
  132. package/build/form/primitives/fieldset/details.cjs.map +3 -3
  133. package/build/form/primitives/fieldset/legend.cjs +84 -5
  134. package/build/form/primitives/fieldset/legend.cjs.map +3 -3
  135. package/build/form/primitives/fieldset/root.cjs +84 -5
  136. package/build/form/primitives/fieldset/root.cjs.map +3 -3
  137. package/build/form/primitives/index.cjs +3 -0
  138. package/build/form/primitives/index.cjs.map +2 -2
  139. package/build/form/primitives/input/input.cjs +88 -15
  140. package/build/form/primitives/input/input.cjs.map +3 -3
  141. package/build/form/primitives/input-layout/input-layout.cjs +88 -15
  142. package/build/form/primitives/input-layout/input-layout.cjs.map +3 -3
  143. package/build/form/primitives/input-layout/slot.cjs +84 -5
  144. package/build/form/primitives/input-layout/slot.cjs.map +3 -3
  145. package/build/form/primitives/select/index.cjs +3 -0
  146. package/build/form/primitives/select/index.cjs.map +2 -2
  147. package/build/form/primitives/select/item.cjs +88 -13
  148. package/build/form/primitives/select/item.cjs.map +3 -3
  149. package/build/form/primitives/select/popup.cjs +97 -23
  150. package/build/form/primitives/select/popup.cjs.map +3 -3
  151. package/build/form/primitives/select/portal.cjs +38 -0
  152. package/build/form/primitives/select/portal.cjs.map +7 -0
  153. package/build/form/primitives/select/root.cjs.map +2 -2
  154. package/build/form/primitives/select/trigger.cjs +98 -16
  155. package/build/form/primitives/select/trigger.cjs.map +3 -3
  156. package/build/form/primitives/select/types.cjs.map +1 -1
  157. package/build/form/primitives/textarea/textarea.cjs +86 -10
  158. package/build/form/primitives/textarea/textarea.cjs.map +3 -3
  159. package/build/form/select-control/context.cjs +37 -0
  160. package/build/form/select-control/context.cjs.map +7 -0
  161. package/build/form/select-control/index.cjs +39 -0
  162. package/build/form/select-control/index.cjs.map +7 -0
  163. package/build/form/select-control/item.cjs +41 -0
  164. package/build/form/select-control/item.cjs.map +7 -0
  165. package/build/form/select-control/select-control.cjs +75 -0
  166. package/build/form/select-control/select-control.cjs.map +7 -0
  167. package/build/form/select-control/types.cjs +19 -0
  168. package/build/form/select-control/types.cjs.map +7 -0
  169. package/build/form/types.cjs.map +1 -1
  170. package/build/icon-button/icon-button.cjs +86 -6
  171. package/build/icon-button/icon-button.cjs.map +3 -3
  172. package/build/icon-button/types.cjs.map +1 -1
  173. package/build/index.cjs +3 -0
  174. package/build/index.cjs.map +2 -2
  175. package/build/link/link.cjs +90 -20
  176. package/build/link/link.cjs.map +3 -3
  177. package/build/notice/action-button.cjs +84 -5
  178. package/build/notice/action-button.cjs.map +3 -3
  179. package/build/notice/action-link.cjs +84 -5
  180. package/build/notice/action-link.cjs.map +3 -3
  181. package/build/notice/actions.cjs +84 -5
  182. package/build/notice/actions.cjs.map +3 -3
  183. package/build/notice/close-icon.cjs +84 -5
  184. package/build/notice/close-icon.cjs.map +3 -3
  185. package/build/notice/description.cjs +84 -5
  186. package/build/notice/description.cjs.map +3 -3
  187. package/build/notice/root.cjs +86 -10
  188. package/build/notice/root.cjs.map +3 -3
  189. package/build/notice/title.cjs +84 -5
  190. package/build/notice/title.cjs.map +3 -3
  191. package/build/popover/arrow.cjs +85 -6
  192. package/build/popover/arrow.cjs.map +3 -3
  193. package/build/popover/context.cjs +4 -56
  194. package/build/popover/context.cjs.map +2 -2
  195. package/build/popover/description.cjs +1 -24
  196. package/build/popover/description.cjs.map +4 -4
  197. package/build/popover/index.cjs +3 -0
  198. package/build/popover/index.cjs.map +2 -2
  199. package/build/popover/popup.cjs +96 -23
  200. package/build/popover/popup.cjs.map +3 -3
  201. package/build/popover/portal.cjs +38 -0
  202. package/build/popover/portal.cjs.map +7 -0
  203. package/build/popover/root.cjs.map +1 -1
  204. package/build/popover/title.cjs +92 -2
  205. package/build/popover/title.cjs.map +3 -3
  206. package/build/popover/types.cjs.map +1 -1
  207. package/build/stack/stack.cjs +84 -5
  208. package/build/stack/stack.cjs.map +3 -3
  209. package/build/tabs/list.cjs +84 -5
  210. package/build/tabs/list.cjs.map +3 -3
  211. package/build/tabs/panel.cjs +86 -10
  212. package/build/tabs/panel.cjs.map +3 -3
  213. package/build/tabs/tab.cjs +84 -5
  214. package/build/tabs/tab.cjs.map +3 -3
  215. package/build/text/text.cjs +88 -12
  216. package/build/text/text.cjs.map +3 -3
  217. package/build/tooltip/index.cjs +6 -0
  218. package/build/tooltip/index.cjs.map +2 -2
  219. package/build/tooltip/popup.cjs +114 -46
  220. package/build/tooltip/popup.cjs.map +4 -4
  221. package/build/tooltip/portal.cjs +38 -0
  222. package/build/tooltip/portal.cjs.map +7 -0
  223. package/build/tooltip/positioner.cjs +159 -0
  224. package/build/tooltip/positioner.cjs.map +7 -0
  225. package/build/tooltip/provider.cjs +2 -2
  226. package/build/tooltip/provider.cjs.map +3 -3
  227. package/build/tooltip/root.cjs.map +3 -3
  228. package/build/tooltip/trigger.cjs +2 -2
  229. package/build/tooltip/trigger.cjs.map +3 -3
  230. package/build/tooltip/types.cjs.map +1 -1
  231. package/build/utils/create-overlay-modal-context.cjs +48 -0
  232. package/build/utils/create-overlay-modal-context.cjs.map +7 -0
  233. package/build/utils/create-overlay-title-validation.cjs +93 -0
  234. package/build/utils/create-overlay-title-validation.cjs.map +7 -0
  235. package/build/utils/render-slot-with-children.cjs +34 -0
  236. package/build/utils/render-slot-with-children.cjs.map +7 -0
  237. package/build/utils/use-deprioritized-initial-focus.cjs +8 -8
  238. package/build/utils/use-deprioritized-initial-focus.cjs.map +2 -2
  239. package/build/utils/use-overlay-scroll-state-attributes.cjs +140 -0
  240. package/build/utils/use-overlay-scroll-state-attributes.cjs.map +7 -0
  241. package/build/visually-hidden/visually-hidden.cjs +89 -6
  242. package/build/visually-hidden/visually-hidden.cjs.map +3 -3
  243. package/build-module/alert-dialog/index.mjs +2 -0
  244. package/build-module/alert-dialog/index.mjs.map +2 -2
  245. package/build-module/alert-dialog/popup.mjs +198 -60
  246. package/build-module/alert-dialog/popup.mjs.map +3 -3
  247. package/build-module/alert-dialog/portal.mjs +13 -0
  248. package/build-module/alert-dialog/portal.mjs.map +7 -0
  249. package/build-module/badge/badge.mjs +84 -5
  250. package/build-module/badge/badge.mjs.map +3 -3
  251. package/build-module/button/button.mjs +90 -20
  252. package/build-module/button/button.mjs.map +3 -3
  253. package/build-module/button/icon.mjs.map +2 -2
  254. package/build-module/button/index.mjs +3 -2
  255. package/build-module/button/index.mjs.map +2 -2
  256. package/build-module/card/content.mjs +84 -5
  257. package/build-module/card/content.mjs.map +3 -3
  258. package/build-module/card/full-bleed.mjs +84 -5
  259. package/build-module/card/full-bleed.mjs.map +3 -3
  260. package/build-module/card/header.mjs +84 -5
  261. package/build-module/card/header.mjs.map +3 -3
  262. package/build-module/card/root.mjs +86 -10
  263. package/build-module/card/root.mjs.map +3 -3
  264. package/build-module/collapsible-card/content.mjs +90 -7
  265. package/build-module/collapsible-card/content.mjs.map +3 -3
  266. package/build-module/collapsible-card/header.mjs +131 -52
  267. package/build-module/collapsible-card/header.mjs.map +3 -3
  268. package/build-module/dialog/content.mjs +126 -0
  269. package/build-module/dialog/content.mjs.map +7 -0
  270. package/build-module/dialog/context.mjs +10 -63
  271. package/build-module/dialog/context.mjs.map +2 -2
  272. package/build-module/dialog/description.mjs +113 -0
  273. package/build-module/dialog/description.mjs.map +7 -0
  274. package/build-module/dialog/footer.mjs +86 -6
  275. package/build-module/dialog/footer.mjs.map +3 -3
  276. package/build-module/dialog/header.mjs +86 -6
  277. package/build-module/dialog/header.mjs.map +3 -3
  278. package/build-module/dialog/index.mjs +6 -0
  279. package/build-module/dialog/index.mjs.map +2 -2
  280. package/build-module/dialog/popup.mjs +104 -13
  281. package/build-module/dialog/popup.mjs.map +3 -3
  282. package/build-module/dialog/portal.mjs +13 -0
  283. package/build-module/dialog/portal.mjs.map +7 -0
  284. package/build-module/dialog/root.mjs +3 -2
  285. package/build-module/dialog/root.mjs.map +2 -2
  286. package/build-module/dialog/title.mjs +85 -6
  287. package/build-module/dialog/title.mjs.map +3 -3
  288. package/build-module/drawer/action.mjs +23 -0
  289. package/build-module/drawer/action.mjs.map +7 -0
  290. package/build-module/drawer/close-icon.mjs +33 -0
  291. package/build-module/drawer/close-icon.mjs.map +7 -0
  292. package/build-module/drawer/content.mjs +135 -0
  293. package/build-module/drawer/content.mjs.map +7 -0
  294. package/build-module/drawer/context.mjs +16 -0
  295. package/build-module/drawer/context.mjs.map +7 -0
  296. package/build-module/drawer/description.mjs +22 -0
  297. package/build-module/drawer/description.mjs.map +7 -0
  298. package/build-module/drawer/footer.mjs +109 -0
  299. package/build-module/drawer/footer.mjs.map +7 -0
  300. package/build-module/drawer/header.mjs +109 -0
  301. package/build-module/drawer/header.mjs.map +7 -0
  302. package/build-module/drawer/index.mjs +26 -0
  303. package/build-module/drawer/index.mjs.map +7 -0
  304. package/build-module/drawer/popup.mjs +149 -0
  305. package/build-module/drawer/popup.mjs.map +7 -0
  306. package/build-module/drawer/portal.mjs +13 -0
  307. package/build-module/drawer/portal.mjs.map +7 -0
  308. package/build-module/drawer/root.mjs +24 -0
  309. package/build-module/drawer/root.mjs.map +7 -0
  310. package/build-module/drawer/title.mjs +124 -0
  311. package/build-module/drawer/title.mjs.map +7 -0
  312. package/build-module/drawer/trigger.mjs +13 -0
  313. package/build-module/drawer/trigger.mjs.map +7 -0
  314. package/build-module/drawer/types.mjs +1 -0
  315. package/build-module/drawer/types.mjs.map +7 -0
  316. package/build-module/empty-state/actions.mjs +84 -5
  317. package/build-module/empty-state/actions.mjs.map +3 -3
  318. package/build-module/empty-state/description.mjs +84 -5
  319. package/build-module/empty-state/description.mjs.map +3 -3
  320. package/build-module/empty-state/icon.mjs +84 -5
  321. package/build-module/empty-state/icon.mjs.map +3 -3
  322. package/build-module/empty-state/root.mjs +84 -5
  323. package/build-module/empty-state/root.mjs.map +3 -3
  324. package/build-module/empty-state/title.mjs +84 -5
  325. package/build-module/empty-state/title.mjs.map +3 -3
  326. package/build-module/empty-state/visual.mjs +84 -5
  327. package/build-module/empty-state/visual.mjs.map +3 -3
  328. package/build-module/form/index.mjs +1 -0
  329. package/build-module/form/index.mjs.map +2 -2
  330. package/build-module/form/primitives/autocomplete/clear.mjs +37 -0
  331. package/build-module/form/primitives/autocomplete/clear.mjs.map +7 -0
  332. package/build-module/form/primitives/autocomplete/collection.mjs +13 -0
  333. package/build-module/form/primitives/autocomplete/collection.mjs.map +7 -0
  334. package/build-module/form/primitives/autocomplete/empty.mjs +111 -0
  335. package/build-module/form/primitives/autocomplete/empty.mjs.map +7 -0
  336. package/build-module/form/primitives/autocomplete/index.mjs +28 -0
  337. package/build-module/form/primitives/autocomplete/index.mjs.map +7 -0
  338. package/build-module/form/primitives/autocomplete/input-group.mjs +11 -0
  339. package/build-module/form/primitives/autocomplete/input-group.mjs.map +7 -0
  340. package/build-module/form/primitives/autocomplete/input.mjs +22 -0
  341. package/build-module/form/primitives/autocomplete/input.mjs.map +7 -0
  342. package/build-module/form/primitives/autocomplete/item.mjs +122 -0
  343. package/build-module/form/primitives/autocomplete/item.mjs.map +7 -0
  344. package/build-module/form/primitives/autocomplete/list-body.mjs +111 -0
  345. package/build-module/form/primitives/autocomplete/list-body.mjs.map +7 -0
  346. package/build-module/form/primitives/autocomplete/list.mjs +111 -0
  347. package/build-module/form/primitives/autocomplete/list.mjs.map +7 -0
  348. package/build-module/form/primitives/autocomplete/popup.mjs +142 -0
  349. package/build-module/form/primitives/autocomplete/popup.mjs.map +7 -0
  350. package/build-module/form/primitives/autocomplete/portal.mjs +13 -0
  351. package/build-module/form/primitives/autocomplete/portal.mjs.map +7 -0
  352. package/build-module/form/primitives/autocomplete/root.mjs +10 -0
  353. package/build-module/form/primitives/autocomplete/root.mjs.map +7 -0
  354. package/build-module/form/primitives/autocomplete/types.mjs +1 -0
  355. package/build-module/form/primitives/autocomplete/types.mjs.map +7 -0
  356. package/build-module/form/primitives/autocomplete/value.mjs +10 -0
  357. package/build-module/form/primitives/autocomplete/value.mjs.map +7 -0
  358. package/build-module/form/primitives/field/description.mjs +86 -10
  359. package/build-module/form/primitives/field/description.mjs.map +3 -3
  360. package/build-module/form/primitives/field/details.mjs +84 -5
  361. package/build-module/form/primitives/field/details.mjs.map +3 -3
  362. package/build-module/form/primitives/field/label.mjs +84 -5
  363. package/build-module/form/primitives/field/label.mjs.map +3 -3
  364. package/build-module/form/primitives/field/root.mjs +84 -5
  365. package/build-module/form/primitives/field/root.mjs.map +3 -3
  366. package/build-module/form/primitives/fieldset/description.mjs +86 -10
  367. package/build-module/form/primitives/fieldset/description.mjs.map +3 -3
  368. package/build-module/form/primitives/fieldset/details.mjs +84 -5
  369. package/build-module/form/primitives/fieldset/details.mjs.map +3 -3
  370. package/build-module/form/primitives/fieldset/legend.mjs +84 -5
  371. package/build-module/form/primitives/fieldset/legend.mjs.map +3 -3
  372. package/build-module/form/primitives/fieldset/root.mjs +84 -5
  373. package/build-module/form/primitives/fieldset/root.mjs.map +3 -3
  374. package/build-module/form/primitives/index.mjs +2 -0
  375. package/build-module/form/primitives/index.mjs.map +2 -2
  376. package/build-module/form/primitives/input/input.mjs +88 -15
  377. package/build-module/form/primitives/input/input.mjs.map +3 -3
  378. package/build-module/form/primitives/input-layout/input-layout.mjs +88 -15
  379. package/build-module/form/primitives/input-layout/input-layout.mjs.map +3 -3
  380. package/build-module/form/primitives/input-layout/slot.mjs +84 -5
  381. package/build-module/form/primitives/input-layout/slot.mjs.map +3 -3
  382. package/build-module/form/primitives/select/index.mjs +2 -0
  383. package/build-module/form/primitives/select/index.mjs.map +2 -2
  384. package/build-module/form/primitives/select/item.mjs +88 -13
  385. package/build-module/form/primitives/select/item.mjs.map +3 -3
  386. package/build-module/form/primitives/select/popup.mjs +97 -23
  387. package/build-module/form/primitives/select/popup.mjs.map +3 -3
  388. package/build-module/form/primitives/select/portal.mjs +13 -0
  389. package/build-module/form/primitives/select/portal.mjs.map +7 -0
  390. package/build-module/form/primitives/select/root.mjs.map +2 -2
  391. package/build-module/form/primitives/select/trigger.mjs +98 -16
  392. package/build-module/form/primitives/select/trigger.mjs.map +3 -3
  393. package/build-module/form/primitives/textarea/textarea.mjs +86 -10
  394. package/build-module/form/primitives/textarea/textarea.mjs.map +3 -3
  395. package/build-module/form/select-control/context.mjs +11 -0
  396. package/build-module/form/select-control/context.mjs.map +7 -0
  397. package/build-module/form/select-control/index.mjs +14 -0
  398. package/build-module/form/select-control/index.mjs.map +7 -0
  399. package/build-module/form/select-control/item.mjs +16 -0
  400. package/build-module/form/select-control/item.mjs.map +7 -0
  401. package/build-module/form/select-control/select-control.mjs +50 -0
  402. package/build-module/form/select-control/select-control.mjs.map +7 -0
  403. package/build-module/form/select-control/types.mjs +1 -0
  404. package/build-module/form/select-control/types.mjs.map +7 -0
  405. package/build-module/icon-button/icon-button.mjs +86 -6
  406. package/build-module/icon-button/icon-button.mjs.map +3 -3
  407. package/build-module/index.mjs +2 -0
  408. package/build-module/index.mjs.map +2 -2
  409. package/build-module/link/link.mjs +90 -20
  410. package/build-module/link/link.mjs.map +3 -3
  411. package/build-module/notice/action-button.mjs +84 -5
  412. package/build-module/notice/action-button.mjs.map +3 -3
  413. package/build-module/notice/action-link.mjs +84 -5
  414. package/build-module/notice/action-link.mjs.map +3 -3
  415. package/build-module/notice/actions.mjs +84 -5
  416. package/build-module/notice/actions.mjs.map +3 -3
  417. package/build-module/notice/close-icon.mjs +84 -5
  418. package/build-module/notice/close-icon.mjs.map +3 -3
  419. package/build-module/notice/description.mjs +84 -5
  420. package/build-module/notice/description.mjs.map +3 -3
  421. package/build-module/notice/root.mjs +86 -10
  422. package/build-module/notice/root.mjs.map +3 -3
  423. package/build-module/notice/title.mjs +84 -5
  424. package/build-module/notice/title.mjs.map +3 -3
  425. package/build-module/popover/arrow.mjs +85 -6
  426. package/build-module/popover/arrow.mjs.map +3 -3
  427. package/build-module/popover/context.mjs +4 -63
  428. package/build-module/popover/context.mjs.map +2 -2
  429. package/build-module/popover/description.mjs +1 -14
  430. package/build-module/popover/description.mjs.map +3 -3
  431. package/build-module/popover/index.mjs +2 -0
  432. package/build-module/popover/index.mjs.map +2 -2
  433. package/build-module/popover/popup.mjs +97 -24
  434. package/build-module/popover/popup.mjs.map +3 -3
  435. package/build-module/popover/portal.mjs +13 -0
  436. package/build-module/popover/portal.mjs.map +7 -0
  437. package/build-module/popover/root.mjs.map +1 -1
  438. package/build-module/popover/title.mjs +92 -2
  439. package/build-module/popover/title.mjs.map +3 -3
  440. package/build-module/stack/stack.mjs +84 -5
  441. package/build-module/stack/stack.mjs.map +3 -3
  442. package/build-module/tabs/list.mjs +84 -5
  443. package/build-module/tabs/list.mjs.map +3 -3
  444. package/build-module/tabs/panel.mjs +86 -10
  445. package/build-module/tabs/panel.mjs.map +3 -3
  446. package/build-module/tabs/tab.mjs +84 -5
  447. package/build-module/tabs/tab.mjs.map +3 -3
  448. package/build-module/text/text.mjs +88 -12
  449. package/build-module/text/text.mjs.map +3 -3
  450. package/build-module/tooltip/index.mjs +4 -0
  451. package/build-module/tooltip/index.mjs.map +2 -2
  452. package/build-module/tooltip/popup.mjs +115 -47
  453. package/build-module/tooltip/popup.mjs.map +3 -3
  454. package/build-module/tooltip/portal.mjs +13 -0
  455. package/build-module/tooltip/portal.mjs.map +7 -0
  456. package/build-module/tooltip/positioner.mjs +124 -0
  457. package/build-module/tooltip/positioner.mjs.map +7 -0
  458. package/build-module/tooltip/provider.mjs +3 -3
  459. package/build-module/tooltip/provider.mjs.map +2 -2
  460. package/build-module/tooltip/root.mjs +2 -2
  461. package/build-module/tooltip/root.mjs.map +2 -2
  462. package/build-module/tooltip/trigger.mjs +3 -3
  463. package/build-module/tooltip/trigger.mjs.map +2 -2
  464. package/build-module/utils/create-overlay-modal-context.mjs +23 -0
  465. package/build-module/utils/create-overlay-modal-context.mjs.map +7 -0
  466. package/build-module/utils/create-overlay-title-validation.mjs +75 -0
  467. package/build-module/utils/create-overlay-title-validation.mjs.map +7 -0
  468. package/build-module/utils/render-slot-with-children.mjs +9 -0
  469. package/build-module/utils/render-slot-with-children.mjs.map +7 -0
  470. package/build-module/utils/use-deprioritized-initial-focus.mjs +9 -9
  471. package/build-module/utils/use-deprioritized-initial-focus.mjs.map +2 -2
  472. package/build-module/utils/use-overlay-scroll-state-attributes.mjs +114 -0
  473. package/build-module/utils/use-overlay-scroll-state-attributes.mjs.map +7 -0
  474. package/build-module/visually-hidden/visually-hidden.mjs +89 -6
  475. package/build-module/visually-hidden/visually-hidden.mjs.map +3 -3
  476. package/build-types/alert-dialog/index.d.ts +1 -0
  477. package/build-types/alert-dialog/index.d.ts.map +1 -1
  478. package/build-types/alert-dialog/popup.d.ts.map +1 -1
  479. package/build-types/alert-dialog/portal.d.ts +9 -0
  480. package/build-types/alert-dialog/portal.d.ts.map +1 -0
  481. package/build-types/alert-dialog/root.d.ts +1 -1
  482. package/build-types/alert-dialog/root.d.ts.map +1 -1
  483. package/build-types/alert-dialog/stories/index.story.d.ts +28 -0
  484. package/build-types/alert-dialog/stories/index.story.d.ts.map +1 -1
  485. package/build-types/alert-dialog/types.d.ts +25 -3
  486. package/build-types/alert-dialog/types.d.ts.map +1 -1
  487. package/build-types/badge/stories/choosing-intent.story.d.ts.map +1 -1
  488. package/build-types/badge/stories/index.story.d.ts.map +1 -1
  489. package/build-types/button/button.d.ts +3 -0
  490. package/build-types/button/button.d.ts.map +1 -1
  491. package/build-types/button/icon.d.ts +1 -8
  492. package/build-types/button/icon.d.ts.map +1 -1
  493. package/build-types/button/index.d.ts +6 -5
  494. package/build-types/button/index.d.ts.map +1 -1
  495. package/build-types/button/stories/index.story.d.ts.map +1 -1
  496. package/build-types/button/types.d.ts +7 -0
  497. package/build-types/button/types.d.ts.map +1 -1
  498. package/build-types/card/stories/index.story.d.ts.map +1 -1
  499. package/build-types/collapsible/panel.d.ts +1 -1
  500. package/build-types/collapsible/root.d.ts +1 -1
  501. package/build-types/collapsible/stories/index.story.d.ts.map +1 -1
  502. package/build-types/collapsible/trigger.d.ts +1 -1
  503. package/build-types/collapsible-card/content.d.ts.map +1 -1
  504. package/build-types/collapsible-card/header.d.ts +6 -0
  505. package/build-types/collapsible-card/header.d.ts.map +1 -1
  506. package/build-types/collapsible-card/stories/index.story.d.ts +8 -0
  507. package/build-types/collapsible-card/stories/index.story.d.ts.map +1 -1
  508. package/build-types/dialog/content.d.ts +17 -0
  509. package/build-types/dialog/content.d.ts.map +1 -0
  510. package/build-types/dialog/context.d.ts +11 -16
  511. package/build-types/dialog/context.d.ts.map +1 -1
  512. package/build-types/dialog/description.d.ts +9 -0
  513. package/build-types/dialog/description.d.ts.map +1 -0
  514. package/build-types/dialog/footer.d.ts +8 -1
  515. package/build-types/dialog/footer.d.ts.map +1 -1
  516. package/build-types/dialog/header.d.ts +8 -1
  517. package/build-types/dialog/header.d.ts.map +1 -1
  518. package/build-types/dialog/index.d.ts +4 -1
  519. package/build-types/dialog/index.d.ts.map +1 -1
  520. package/build-types/dialog/popup.d.ts +2 -0
  521. package/build-types/dialog/popup.d.ts.map +1 -1
  522. package/build-types/dialog/portal.d.ts +10 -0
  523. package/build-types/dialog/portal.d.ts.map +1 -0
  524. package/build-types/dialog/root.d.ts +14 -4
  525. package/build-types/dialog/root.d.ts.map +1 -1
  526. package/build-types/dialog/stories/index.story.d.ts +29 -6
  527. package/build-types/dialog/stories/index.story.d.ts.map +1 -1
  528. package/build-types/dialog/types.d.ts +60 -7
  529. package/build-types/dialog/types.d.ts.map +1 -1
  530. package/build-types/drawer/action.d.ts +8 -0
  531. package/build-types/drawer/action.d.ts.map +1 -0
  532. package/build-types/drawer/close-icon.d.ts +8 -0
  533. package/build-types/drawer/close-icon.d.ts.map +1 -0
  534. package/build-types/drawer/content.d.ts +24 -0
  535. package/build-types/drawer/content.d.ts.map +1 -0
  536. package/build-types/drawer/context.d.ts +20 -0
  537. package/build-types/drawer/context.d.ts.map +1 -0
  538. package/build-types/drawer/description.d.ts +9 -0
  539. package/build-types/drawer/description.d.ts.map +1 -0
  540. package/build-types/drawer/footer.d.ts +15 -0
  541. package/build-types/drawer/footer.d.ts.map +1 -0
  542. package/build-types/drawer/header.d.ts +15 -0
  543. package/build-types/drawer/header.d.ts.map +1 -0
  544. package/build-types/drawer/index.d.ts +13 -0
  545. package/build-types/drawer/index.d.ts.map +1 -0
  546. package/build-types/drawer/popup.d.ts +15 -0
  547. package/build-types/drawer/popup.d.ts.map +1 -0
  548. package/build-types/drawer/portal.d.ts +10 -0
  549. package/build-types/drawer/portal.d.ts.map +1 -0
  550. package/build-types/drawer/root.d.ts +21 -0
  551. package/build-types/drawer/root.d.ts.map +1 -0
  552. package/build-types/drawer/stories/index.story.d.ts +63 -0
  553. package/build-types/drawer/stories/index.story.d.ts.map +1 -0
  554. package/build-types/drawer/test/index.test.d.ts +2 -0
  555. package/build-types/drawer/test/index.test.d.ts.map +1 -0
  556. package/build-types/drawer/title.d.ts +22 -0
  557. package/build-types/drawer/title.d.ts.map +1 -0
  558. package/build-types/drawer/trigger.d.ts +7 -0
  559. package/build-types/drawer/trigger.d.ts.map +1 -0
  560. package/build-types/drawer/types.d.ts +146 -0
  561. package/build-types/drawer/types.d.ts.map +1 -0
  562. package/build-types/empty-state/stories/index.story.d.ts.map +1 -1
  563. package/build-types/form/index.d.ts +1 -0
  564. package/build-types/form/index.d.ts.map +1 -1
  565. package/build-types/form/input-control/stories/index.story.d.ts.map +1 -1
  566. package/build-types/form/primitives/autocomplete/clear.d.ts +13 -0
  567. package/build-types/form/primitives/autocomplete/clear.d.ts.map +1 -0
  568. package/build-types/form/primitives/autocomplete/collection.d.ts +3 -0
  569. package/build-types/form/primitives/autocomplete/collection.d.ts.map +1 -0
  570. package/build-types/form/primitives/autocomplete/empty.d.ts +10 -0
  571. package/build-types/form/primitives/autocomplete/empty.d.ts.map +1 -0
  572. package/build-types/form/primitives/autocomplete/index.d.ts +13 -0
  573. package/build-types/form/primitives/autocomplete/index.d.ts.map +1 -0
  574. package/build-types/form/primitives/autocomplete/input-group.d.ts +16 -0
  575. package/build-types/form/primitives/autocomplete/input-group.d.ts.map +1 -0
  576. package/build-types/form/primitives/autocomplete/input.d.ts +3 -0
  577. package/build-types/form/primitives/autocomplete/input.d.ts.map +1 -0
  578. package/build-types/form/primitives/autocomplete/item.d.ts +10 -0
  579. package/build-types/form/primitives/autocomplete/item.d.ts.map +1 -0
  580. package/build-types/form/primitives/autocomplete/list-body.d.ts +13 -0
  581. package/build-types/form/primitives/autocomplete/list-body.d.ts.map +1 -0
  582. package/build-types/form/primitives/autocomplete/list.d.ts +11 -0
  583. package/build-types/form/primitives/autocomplete/list.d.ts.map +1 -0
  584. package/build-types/form/primitives/autocomplete/popup.d.ts +11 -0
  585. package/build-types/form/primitives/autocomplete/popup.d.ts.map +1 -0
  586. package/build-types/form/primitives/autocomplete/portal.d.ts +8 -0
  587. package/build-types/form/primitives/autocomplete/portal.d.ts.map +1 -0
  588. package/build-types/form/primitives/autocomplete/root.d.ts +8 -0
  589. package/build-types/form/primitives/autocomplete/root.d.ts.map +1 -0
  590. package/build-types/form/primitives/autocomplete/stories/fixtures.d.ts +8 -0
  591. package/build-types/form/primitives/autocomplete/stories/fixtures.d.ts.map +1 -0
  592. package/build-types/form/primitives/autocomplete/stories/index.story.d.ts +41 -0
  593. package/build-types/form/primitives/autocomplete/stories/index.story.d.ts.map +1 -0
  594. package/build-types/form/primitives/autocomplete/test/index.test.d.ts +2 -0
  595. package/build-types/form/primitives/autocomplete/test/index.test.d.ts.map +1 -0
  596. package/build-types/form/primitives/autocomplete/types.d.ts +44 -0
  597. package/build-types/form/primitives/autocomplete/types.d.ts.map +1 -0
  598. package/build-types/form/primitives/autocomplete/value.d.ts +3 -0
  599. package/build-types/form/primitives/autocomplete/value.d.ts.map +1 -0
  600. package/build-types/form/primitives/field/control.d.ts +2 -2
  601. package/build-types/form/primitives/field/description.d.ts +1 -1
  602. package/build-types/form/primitives/field/details.d.ts +1 -1
  603. package/build-types/form/primitives/field/label.d.ts +3 -3
  604. package/build-types/form/primitives/field/root.d.ts +3 -3
  605. package/build-types/form/primitives/field/stories/index.story.d.ts.map +1 -1
  606. package/build-types/form/primitives/fieldset/description.d.ts +1 -1
  607. package/build-types/form/primitives/fieldset/details.d.ts +1 -1
  608. package/build-types/form/primitives/fieldset/legend.d.ts +1 -1
  609. package/build-types/form/primitives/fieldset/root.d.ts +1 -1
  610. package/build-types/form/primitives/fieldset/stories/index.story.d.ts.map +1 -1
  611. package/build-types/form/primitives/index.d.ts +1 -0
  612. package/build-types/form/primitives/index.d.ts.map +1 -1
  613. package/build-types/form/primitives/input/input.d.ts +5 -5
  614. package/build-types/form/primitives/input/stories/index.story.d.ts.map +1 -1
  615. package/build-types/form/primitives/input-layout/stories/index.story.d.ts.map +1 -1
  616. package/build-types/form/primitives/select/index.d.ts +1 -0
  617. package/build-types/form/primitives/select/index.d.ts.map +1 -1
  618. package/build-types/form/primitives/select/item.d.ts +3 -3
  619. package/build-types/form/primitives/select/item.d.ts.map +1 -1
  620. package/build-types/form/primitives/select/popup.d.ts +2 -3
  621. package/build-types/form/primitives/select/popup.d.ts.map +1 -1
  622. package/build-types/form/primitives/select/portal.d.ts +8 -0
  623. package/build-types/form/primitives/select/portal.d.ts.map +1 -0
  624. package/build-types/form/primitives/select/root.d.ts +12 -1
  625. package/build-types/form/primitives/select/root.d.ts.map +1 -1
  626. package/build-types/form/primitives/select/stories/index.story.d.ts +22 -11
  627. package/build-types/form/primitives/select/stories/index.story.d.ts.map +1 -1
  628. package/build-types/form/primitives/select/trigger.d.ts +5 -4
  629. package/build-types/form/primitives/select/trigger.d.ts.map +1 -1
  630. package/build-types/form/primitives/select/types.d.ts +19 -6
  631. package/build-types/form/primitives/select/types.d.ts.map +1 -1
  632. package/build-types/form/primitives/textarea/stories/index.story.d.ts.map +1 -1
  633. package/build-types/form/primitives/textarea/textarea.d.ts +2 -2
  634. package/build-types/form/select-control/context.d.ts +3 -0
  635. package/build-types/form/select-control/context.d.ts.map +1 -0
  636. package/build-types/form/select-control/index.d.ts +20 -0
  637. package/build-types/form/select-control/index.d.ts.map +1 -0
  638. package/build-types/form/select-control/item.d.ts +6 -0
  639. package/build-types/form/select-control/item.d.ts.map +1 -0
  640. package/build-types/form/select-control/select-control.d.ts +11 -0
  641. package/build-types/form/select-control/select-control.d.ts.map +1 -0
  642. package/build-types/form/select-control/stories/index.story.d.ts +40 -0
  643. package/build-types/form/select-control/stories/index.story.d.ts.map +1 -0
  644. package/build-types/form/select-control/test/index.test.d.ts +2 -0
  645. package/build-types/form/select-control/test/index.test.d.ts.map +1 -0
  646. package/build-types/form/select-control/types.d.ts +40 -0
  647. package/build-types/form/select-control/types.d.ts.map +1 -0
  648. package/build-types/form/types.d.ts +1 -1
  649. package/build-types/form/types.d.ts.map +1 -1
  650. package/build-types/icon/stories/index.story.d.ts.map +1 -1
  651. package/build-types/icon-button/icon-button.d.ts +2 -1
  652. package/build-types/icon-button/icon-button.d.ts.map +1 -1
  653. package/build-types/icon-button/stories/index.story.d.ts +5 -0
  654. package/build-types/icon-button/stories/index.story.d.ts.map +1 -1
  655. package/build-types/icon-button/types.d.ts +8 -0
  656. package/build-types/icon-button/types.d.ts.map +1 -1
  657. package/build-types/index.d.ts +1 -0
  658. package/build-types/index.d.ts.map +1 -1
  659. package/build-types/link/stories/index.story.d.ts +2 -3
  660. package/build-types/link/stories/index.story.d.ts.map +1 -1
  661. package/build-types/notice/stories/index.story.d.ts.map +1 -1
  662. package/build-types/popover/context.d.ts +6 -13
  663. package/build-types/popover/context.d.ts.map +1 -1
  664. package/build-types/popover/description.d.ts +0 -1
  665. package/build-types/popover/description.d.ts.map +1 -1
  666. package/build-types/popover/index.d.ts +2 -1
  667. package/build-types/popover/index.d.ts.map +1 -1
  668. package/build-types/popover/popup.d.ts +3 -2
  669. package/build-types/popover/popup.d.ts.map +1 -1
  670. package/build-types/popover/portal.d.ts +9 -0
  671. package/build-types/popover/portal.d.ts.map +1 -0
  672. package/build-types/popover/root.d.ts +2 -2
  673. package/build-types/popover/stories/index.story.d.ts +22 -14
  674. package/build-types/popover/stories/index.story.d.ts.map +1 -1
  675. package/build-types/popover/title.d.ts.map +1 -1
  676. package/build-types/popover/types.d.ts +8 -15
  677. package/build-types/popover/types.d.ts.map +1 -1
  678. package/build-types/stack/stories/index.story.d.ts.map +1 -1
  679. package/build-types/tabs/context.d.ts +1 -1
  680. package/build-types/tabs/context.d.ts.map +1 -1
  681. package/build-types/tabs/list.d.ts +2 -2
  682. package/build-types/tabs/panel.d.ts +1 -1
  683. package/build-types/tabs/root.d.ts +1 -1
  684. package/build-types/tabs/stories/index.story.d.ts.map +1 -1
  685. package/build-types/tabs/tab.d.ts +1 -1
  686. package/build-types/text/stories/index.story.d.ts.map +1 -1
  687. package/build-types/tooltip/index.d.ts +3 -1
  688. package/build-types/tooltip/index.d.ts.map +1 -1
  689. package/build-types/tooltip/popup.d.ts.map +1 -1
  690. package/build-types/tooltip/portal.d.ts +8 -0
  691. package/build-types/tooltip/portal.d.ts.map +1 -0
  692. package/build-types/tooltip/positioner.d.ts +9 -0
  693. package/build-types/tooltip/positioner.d.ts.map +1 -0
  694. package/build-types/tooltip/provider.d.ts +1 -1
  695. package/build-types/tooltip/provider.d.ts.map +1 -1
  696. package/build-types/tooltip/stories/index.story.d.ts +28 -2
  697. package/build-types/tooltip/stories/index.story.d.ts.map +1 -1
  698. package/build-types/tooltip/stories/usage-guidelines.story.d.ts.map +1 -1
  699. package/build-types/tooltip/trigger.d.ts.map +1 -1
  700. package/build-types/tooltip/types.d.ts +20 -7
  701. package/build-types/tooltip/types.d.ts.map +1 -1
  702. package/build-types/utils/create-overlay-modal-context.d.ts +14 -0
  703. package/build-types/utils/create-overlay-modal-context.d.ts.map +1 -0
  704. package/build-types/utils/create-overlay-title-validation.d.ts +15 -0
  705. package/build-types/utils/create-overlay-title-validation.d.ts.map +1 -0
  706. package/build-types/utils/render-slot-with-children.d.ts +24 -0
  707. package/build-types/utils/render-slot-with-children.d.ts.map +1 -0
  708. package/build-types/utils/use-deprioritized-initial-focus.d.ts +9 -8
  709. package/build-types/utils/use-deprioritized-initial-focus.d.ts.map +1 -1
  710. package/build-types/utils/use-overlay-scroll-state-attributes.d.ts +85 -0
  711. package/build-types/utils/use-overlay-scroll-state-attributes.d.ts.map +1 -0
  712. package/build-types/visually-hidden/stories/index.story.d.ts.map +1 -1
  713. package/build-types/visually-hidden/visually-hidden.d.ts +4 -20
  714. package/build-types/visually-hidden/visually-hidden.d.ts.map +1 -1
  715. package/package.json +14 -13
  716. package/src/alert-dialog/index.ts +1 -0
  717. package/src/alert-dialog/popup.tsx +114 -45
  718. package/src/alert-dialog/portal.tsx +17 -0
  719. package/src/alert-dialog/stories/index.story.tsx +129 -1
  720. package/src/alert-dialog/style.module.css +13 -4
  721. package/src/alert-dialog/test/index.test.tsx +329 -3
  722. package/src/alert-dialog/types.ts +30 -3
  723. package/src/badge/stories/index.story.tsx +6 -0
  724. package/src/button/button.tsx +3 -0
  725. package/src/button/icon.tsx +1 -8
  726. package/src/button/index.ts +5 -6
  727. package/src/button/stories/index.story.tsx +10 -0
  728. package/src/button/types.ts +8 -0
  729. package/src/card/stories/index.story.tsx +7 -0
  730. package/src/collapsible/stories/index.story.tsx +7 -0
  731. package/src/collapsible-card/content.tsx +12 -1
  732. package/src/collapsible-card/header.tsx +55 -42
  733. package/src/collapsible-card/stories/index.story.tsx +62 -0
  734. package/src/collapsible-card/style.module.css +36 -4
  735. package/src/collapsible-card/test/index.test.tsx +60 -1
  736. package/src/dialog/content.tsx +47 -0
  737. package/src/dialog/context.tsx +14 -111
  738. package/src/dialog/description.tsx +27 -0
  739. package/src/dialog/footer.tsx +10 -2
  740. package/src/dialog/header.tsx +10 -2
  741. package/src/dialog/index.ts +16 -1
  742. package/src/dialog/popup.tsx +27 -8
  743. package/src/dialog/portal.tsx +18 -0
  744. package/src/dialog/root.tsx +22 -5
  745. package/src/dialog/stories/index.story.tsx +200 -48
  746. package/src/dialog/style.module.css +76 -44
  747. package/src/dialog/test/index.test.tsx +632 -12
  748. package/src/dialog/types.ts +64 -6
  749. package/src/drawer/action.tsx +28 -0
  750. package/src/drawer/close-icon.tsx +33 -0
  751. package/src/drawer/content.tsx +65 -0
  752. package/src/drawer/context.tsx +29 -0
  753. package/src/drawer/description.tsx +25 -0
  754. package/src/drawer/footer.tsx +34 -0
  755. package/src/drawer/header.tsx +34 -0
  756. package/src/drawer/index.ts +25 -0
  757. package/src/drawer/popup.tsx +99 -0
  758. package/src/drawer/portal.tsx +18 -0
  759. package/src/drawer/root.tsx +41 -0
  760. package/src/drawer/stories/index.story.tsx +550 -0
  761. package/src/drawer/style.module.css +356 -0
  762. package/src/drawer/test/index.test.tsx +1153 -0
  763. package/src/drawer/title.tsx +53 -0
  764. package/src/drawer/trigger.tsx +14 -0
  765. package/src/drawer/types.ts +174 -0
  766. package/src/empty-state/stories/index.story.tsx +7 -0
  767. package/src/form/index.ts +1 -0
  768. package/src/form/input-control/stories/index.story.tsx +7 -0
  769. package/src/form/primitives/autocomplete/clear.tsx +35 -0
  770. package/src/form/primitives/autocomplete/collection.tsx +13 -0
  771. package/src/form/primitives/autocomplete/empty.tsx +17 -0
  772. package/src/form/primitives/autocomplete/index.ts +12 -0
  773. package/src/form/primitives/autocomplete/input-group.tsx +16 -0
  774. package/src/form/primitives/autocomplete/input.tsx +20 -0
  775. package/src/form/primitives/autocomplete/item.tsx +24 -0
  776. package/src/form/primitives/autocomplete/list-body.tsx +23 -0
  777. package/src/form/primitives/autocomplete/list.tsx +17 -0
  778. package/src/form/primitives/autocomplete/popup.tsx +42 -0
  779. package/src/form/primitives/autocomplete/portal.tsx +16 -0
  780. package/src/form/primitives/autocomplete/root.tsx +11 -0
  781. package/src/form/primitives/autocomplete/stories/fixtures.ts +35 -0
  782. package/src/form/primitives/autocomplete/stories/index.story.tsx +445 -0
  783. package/src/form/primitives/autocomplete/style.module.css +7 -0
  784. package/src/form/primitives/autocomplete/test/index.test.tsx +162 -0
  785. package/src/form/primitives/autocomplete/types.ts +74 -0
  786. package/src/form/primitives/autocomplete/value.tsx +6 -0
  787. package/src/form/primitives/field/stories/index.story.tsx +12 -5
  788. package/src/form/primitives/fieldset/stories/index.story.tsx +10 -3
  789. package/src/form/primitives/index.ts +1 -0
  790. package/src/form/primitives/input/stories/index.story.tsx +7 -0
  791. package/src/form/primitives/input-layout/stories/index.story.tsx +8 -1
  792. package/src/form/primitives/select/index.ts +1 -0
  793. package/src/form/primitives/select/item.tsx +1 -2
  794. package/src/form/primitives/select/popup.tsx +34 -37
  795. package/src/form/primitives/select/portal.tsx +16 -0
  796. package/src/form/primitives/select/root.tsx +13 -2
  797. package/src/form/primitives/select/stories/index.story.tsx +152 -67
  798. package/src/form/primitives/select/test/index.test.tsx +130 -8
  799. package/src/form/primitives/select/trigger.tsx +11 -8
  800. package/src/form/primitives/select/types.ts +22 -7
  801. package/src/form/primitives/textarea/stories/index.story.tsx +7 -0
  802. package/src/form/select-control/context.tsx +9 -0
  803. package/src/form/select-control/index.ts +14 -0
  804. package/src/form/select-control/item.tsx +13 -0
  805. package/src/form/select-control/select-control.tsx +65 -0
  806. package/src/form/select-control/stories/index.story.tsx +220 -0
  807. package/src/form/select-control/test/index.test.tsx +196 -0
  808. package/src/form/select-control/types.ts +50 -0
  809. package/src/form/types.ts +1 -1
  810. package/src/icon/stories/index.story.tsx +7 -0
  811. package/src/icon-button/icon-button.tsx +2 -1
  812. package/src/icon-button/stories/index.story.tsx +20 -0
  813. package/src/icon-button/types.ts +9 -0
  814. package/src/index.ts +1 -0
  815. package/src/link/stories/index.story.tsx +12 -11
  816. package/src/link/style.module.css +2 -1
  817. package/src/notice/stories/index.story.tsx +7 -0
  818. package/src/popover/context.tsx +6 -105
  819. package/src/popover/description.tsx +1 -5
  820. package/src/popover/index.ts +2 -1
  821. package/src/popover/popup.tsx +15 -16
  822. package/src/popover/portal.tsx +17 -0
  823. package/src/popover/root.tsx +2 -2
  824. package/src/popover/stories/index.story.tsx +61 -24
  825. package/src/popover/style.module.css +34 -27
  826. package/src/popover/test/index.test.tsx +46 -7
  827. package/src/popover/title.tsx +3 -2
  828. package/src/popover/types.ts +10 -15
  829. package/src/stack/stories/index.story.tsx +6 -0
  830. package/src/tabs/stories/index.story.tsx +15 -1
  831. package/src/text/stories/index.story.tsx +6 -0
  832. package/src/text/style.module.css +25 -0
  833. package/src/text/text.tsx +2 -2
  834. package/src/tooltip/index.ts +3 -1
  835. package/src/tooltip/popup.tsx +32 -44
  836. package/src/tooltip/portal.tsx +16 -0
  837. package/src/tooltip/positioner.tsx +36 -0
  838. package/src/tooltip/provider.tsx +3 -3
  839. package/src/tooltip/root.tsx +2 -2
  840. package/src/tooltip/stories/index.story.tsx +97 -9
  841. package/src/tooltip/stories/usage-guidelines.story.tsx +5 -0
  842. package/src/tooltip/style.module.css +12 -12
  843. package/src/tooltip/test/index.test.tsx +9 -3
  844. package/src/tooltip/trigger.tsx +3 -7
  845. package/src/tooltip/types.ts +26 -9
  846. package/src/utils/create-overlay-modal-context.tsx +34 -0
  847. package/src/utils/create-overlay-title-validation.tsx +116 -0
  848. package/src/utils/css/dropdown-motion.module.css +3 -3
  849. package/src/utils/css/item-popup.module.css +14 -24
  850. package/src/utils/css/overlay-chrome.module.css +239 -0
  851. package/src/utils/css/select-trigger.module.css +5 -2
  852. package/src/utils/render-slot-with-children.ts +31 -0
  853. package/src/utils/test/use-deprioritized-initial-focus.test.tsx +3 -3
  854. package/src/utils/use-deprioritized-initial-focus.ts +23 -17
  855. package/src/utils/use-overlay-scroll-state-attributes.ts +272 -0
  856. package/src/visually-hidden/stories/index.story.tsx +7 -0
  857. package/src/visually-hidden/visually-hidden.tsx +9 -21
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/button/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,IAAI,YAAY,EAAE,MAAM,UAAU,CAAC;AAClD,OAAO,EAAE,UAAU,EAAE,MAAM,QAAQ,CAAC;AAEpC;;;GAGG;AACH,eAAO,MAAM,MAAM,EAMZ,OAAO,YAAY,GAAG;IAC5B,IAAI,EAAE,OAAO,UAAU,CAAC;CACxB,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/button/index.ts"],"names":[],"mappings":"AAKA;;GAEG;AACH,eAAO,MAAM,MAAM;IAClB;;;OAGG;;CAED,CAAC"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.story.d.ts","sourceRoot":"","sources":["../../../src/button/stories/index.story.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAE5D,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAElC,QAAA,MAAM,IAAI,EAAE,IAAI,CAAE,OAAO,MAAM,CAQ9B,CAAC;AACF,eAAe,IAAI,CAAC;AAEpB,KAAK,KAAK,GAAG,QAAQ,CAAE,OAAO,MAAM,CAAE,CAAC;AAEvC,eAAO,MAAM,OAAO,EAAE,KAIrB,CAAC;AAEF,eAAO,MAAM,OAAO,EAAE,KAMrB,CAAC;AAEF,eAAO,MAAM,OAAO,EAAE,KAMrB,CAAC;AAEF,eAAO,MAAM,OAAO,EAAE,KAMrB,CAAC;AAEF,eAAO,MAAM,KAAK,EAAE,KAMnB,CAAC;AAEF,eAAO,MAAM,OAAO,EAAE,KAMrB,CAAC;AAEF,eAAO,MAAM,cAAc,EAAE,KAO5B,CAAC;AAEF,eAAO,MAAM,QAAQ,EAAE,KAMtB,CAAC;AAEF,eAAO,MAAM,mBAAmB,EAAE,KA6DjC,CAAC;AAEF,eAAO,MAAM,QAAQ,EAAE,KAWtB,CAAC;AAEF,eAAO,MAAM,OAAO,EAAE,KAOrB,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,OAAO,EAAE,KAQrB,CAAC"}
1
+ {"version":3,"file":"index.story.d.ts","sourceRoot":"","sources":["../../../src/button/stories/index.story.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAE5D,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAElC,QAAA,MAAM,IAAI,EAAE,IAAI,CAAE,OAAO,MAAM,CAkB9B,CAAC;eACa,IAAI;AAEnB,KAAK,KAAK,GAAG,QAAQ,CAAE,OAAO,MAAM,CAAE,CAAC;AAEvC,eAAO,MAAM,OAAO,EAAE,KAIrB,CAAC;AAEF,eAAO,MAAM,OAAO,EAAE,KAMrB,CAAC;AAEF,eAAO,MAAM,OAAO,EAAE,KAMrB,CAAC;AAEF,eAAO,MAAM,OAAO,EAAE,KAMrB,CAAC;AAEF,eAAO,MAAM,KAAK,EAAE,KAMnB,CAAC;AAEF,eAAO,MAAM,OAAO,EAAE,KAMrB,CAAC;AAEF,eAAO,MAAM,cAAc,EAAE,KAO5B,CAAC;AAEF,eAAO,MAAM,QAAQ,EAAE,KAMtB,CAAC;AAEF,eAAO,MAAM,mBAAmB,EAAE,KA6DjC,CAAC;AAEF,eAAO,MAAM,QAAQ,EAAE,KAWtB,CAAC;AAEF,eAAO,MAAM,OAAO,EAAE,KAOrB,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,OAAO,EAAE,KAQrB,CAAC"}
@@ -1,5 +1,6 @@
1
1
  import { type ReactNode, type HTMLAttributes } from 'react';
2
2
  import type { Button as _Button } from '@base-ui/react/button';
3
+ import { type IconProps } from '../icon/types';
3
4
  import type { ComponentProps } from '../utils/types';
4
5
  type _ButtonProps = ComponentProps<typeof _Button>;
5
6
  export interface ButtonProps extends Omit<_ButtonProps, 'disabled' | 'aria-pressed'> {
@@ -59,5 +60,11 @@ export interface ButtonProps extends Omit<_ButtonProps, 'disabled' | 'aria-press
59
60
  */
60
61
  loadingAnnouncement?: string;
61
62
  }
63
+ export interface ButtonIconProps extends IconProps {
64
+ /**
65
+ * The icon to display, from the `@wordpress/icons` package.
66
+ */
67
+ icon: IconProps['icon'];
68
+ }
62
69
  export {};
63
70
  //# sourceMappingURL=types.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/button/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,SAAS,EAAE,KAAK,cAAc,EAAE,MAAM,OAAO,CAAC;AAC5D,OAAO,KAAK,EAAE,MAAM,IAAI,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAC/D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAErD,KAAK,YAAY,GAAG,cAAc,CAAE,OAAO,OAAO,CAAE,CAAC;AAErD,MAAM,WAAW,WAChB,SAAQ,IAAI,CAAE,YAAY,EAAE,UAAU,GAAG,cAAc,CAAE;IACzD;;;;;OAKG;IACH,OAAO,CAAC,EAAE,OAAO,GAAG,SAAS,GAAG,SAAS,GAAG,UAAU,CAAC;IAEvD;;;;;;;OAOG;IACH,IAAI,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAE3B;;;;;;;;OAQG;IACH,IAAI,CAAC,EAAE,SAAS,GAAG,SAAS,GAAG,OAAO,CAAC;IAEvC;;OAEG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IAEnB;;;;OAIG;IACH,qBAAqB,CAAC,EAAE,YAAY,CAAE,uBAAuB,CAAE,CAAC;IAEhE;;;OAGG;IACH,cAAc,CAAC,EAAE,cAAc,CAAE,iBAAiB,CAAE,CAAE,cAAc,CAAE,CAAC;IAEvE;;OAEG;IACH,QAAQ,CAAC,EAAE,SAAS,CAAC;IAErB;;;;OAIG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAElB;;OAEG;IACH,mBAAmB,CAAC,EAAE,MAAM,CAAC;CAC7B"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/button/types.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,SAAS,EAAE,KAAK,cAAc,EAAE,MAAM,OAAO,CAAC;AAC5D,OAAO,KAAK,EAAE,MAAM,IAAI,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAC/D,OAAO,EAAE,KAAK,SAAS,EAAE,MAAM,eAAe,CAAC;AAC/C,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAErD,KAAK,YAAY,GAAG,cAAc,CAAE,OAAO,OAAO,CAAE,CAAC;AAErD,MAAM,WAAW,WAChB,SAAQ,IAAI,CAAE,YAAY,EAAE,UAAU,GAAG,cAAc,CAAE;IACzD;;;;;OAKG;IACH,OAAO,CAAC,EAAE,OAAO,GAAG,SAAS,GAAG,SAAS,GAAG,UAAU,CAAC;IAEvD;;;;;;;OAOG;IACH,IAAI,CAAC,EAAE,OAAO,GAAG,SAAS,CAAC;IAE3B;;;;;;;;OAQG;IACH,IAAI,CAAC,EAAE,SAAS,GAAG,SAAS,GAAG,OAAO,CAAC;IAEvC;;OAEG;IACH,QAAQ,CAAC,EAAE,OAAO,CAAC;IAEnB;;;;OAIG;IACH,qBAAqB,CAAC,EAAE,YAAY,CAAE,uBAAuB,CAAE,CAAC;IAEhE;;;OAGG;IACH,cAAc,CAAC,EAAE,cAAc,CAAE,iBAAiB,CAAE,CAAE,cAAc,CAAE,CAAC;IAEvE;;OAEG;IACH,QAAQ,CAAC,EAAE,SAAS,CAAC;IAErB;;;;OAIG;IACH,OAAO,CAAC,EAAE,OAAO,CAAC;IAElB;;OAEG;IACH,mBAAmB,CAAC,EAAE,MAAM,CAAC;CAC7B;AAED,MAAM,WAAW,eAAgB,SAAQ,SAAS;IACjD;;OAEG;IACH,IAAI,EAAE,SAAS,CAAE,MAAM,CAAE,CAAC;CAC1B"}
@@ -1 +1 @@
1
- {"version":3,"file":"index.story.d.ts","sourceRoot":"","sources":["../../../src/card/stories/index.story.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,KAAK,IAAI,MAAM,UAAU,CAAC;AAwBjC,QAAA,MAAM,IAAI,EAAE,IAAI,CAAE,OAAO,IAAI,CAAC,IAAI,CASjC,CAAC;AACF,eAAe,IAAI,CAAC;AAEpB,KAAK,KAAK,GAAG,QAAQ,CAAE,OAAO,IAAI,CAAC,IAAI,CAAE,CAAC;AAE1C,eAAO,MAAM,OAAO,EAAE,KAyBrB,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,aAAa,EAAE,KAsB3B,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,UAAU,EAAE,KAQxB,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,eAAe,EAAE,KAc7B,CAAC"}
1
+ {"version":3,"file":"index.story.d.ts","sourceRoot":"","sources":["../../../src/card/stories/index.story.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAC5D,OAAO,KAAK,IAAI,MAAM,UAAU,CAAC;AAwBjC,QAAA,MAAM,IAAI,EAAE,IAAI,CAAE,OAAO,IAAI,CAAC,IAAI,CAgBjC,CAAC;eACa,IAAI;AAEnB,KAAK,KAAK,GAAG,QAAQ,CAAE,OAAO,IAAI,CAAC,IAAI,CAAE,CAAC;AAE1C,eAAO,MAAM,OAAO,EAAE,KAyBrB,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,aAAa,EAAE,KAsB3B,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,UAAU,EAAE,KAQxB,CAAC;AAEF;;;;GAIG;AACH,eAAO,MAAM,eAAe,EAAE,KAc7B,CAAC"}
@@ -5,7 +5,7 @@
5
5
  * `Collapsible` is a collection of React components that combine to render
6
6
  * a collapsible panel controlled by a button.
7
7
  */
8
- export declare const Panel: import("react").ForwardRefExoticComponent<Omit<Omit<Omit<import("@base-ui/react").CollapsiblePanelProps, "ref"> & import("react").RefAttributes<HTMLDivElement>, "ref">, "style" | "className" | "children" | "render"> & {
8
+ export declare const Panel: import("react").ForwardRefExoticComponent<Omit<Omit<Omit<import("@base-ui/react").CollapsiblePanelProps, "ref"> & import("react").RefAttributes<HTMLDivElement>, "ref">, "children" | "className" | "render" | "style"> & {
9
9
  className?: string;
10
10
  style?: React.CSSProperties;
11
11
  render?: ((props: import("react").HTMLAttributes<any> & {
@@ -4,7 +4,7 @@
4
4
  * `Collapsible` is a collection of React components that combine to render
5
5
  * a collapsible panel controlled by a button.
6
6
  */
7
- export declare const Root: import("react").ForwardRefExoticComponent<Omit<Omit<Omit<import("@base-ui/react").CollapsibleRootProps, "ref"> & import("react").RefAttributes<HTMLDivElement>, "ref">, "style" | "className" | "children" | "render"> & {
7
+ export declare const Root: import("react").ForwardRefExoticComponent<Omit<Omit<Omit<import("@base-ui/react").CollapsibleRootProps, "ref"> & import("react").RefAttributes<HTMLDivElement>, "ref">, "children" | "className" | "render" | "style"> & {
8
8
  className?: string;
9
9
  style?: React.CSSProperties;
10
10
  render?: ((props: import("react").HTMLAttributes<any> & {
@@ -1 +1 @@
1
- {"version":3,"file":"index.story.d.ts","sourceRoot":"","sources":["../../../src/collapsible/stories/index.story.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAE5D,OAAO,KAAK,WAAW,MAAM,UAAU,CAAC;AAExC,QAAA,MAAM,IAAI,EAAE,IAAI,CAAE,OAAO,WAAW,CAAC,IAAI,CAOxC,CAAC;AACF,eAAe,IAAI,CAAC;AAEpB,KAAK,KAAK,GAAG,QAAQ,CAAE,OAAO,WAAW,CAAC,IAAI,CAAE,CAAC;AAEjD,eAAO,MAAM,OAAO,EAAE,KAWrB,CAAC;AAEF,eAAO,MAAM,WAAW,EAAE,KAazB,CAAC;AAEF,eAAO,MAAM,QAAQ,EAAE,KAYtB,CAAC;AAEF;;;;;;GAMG;AACH,eAAO,MAAM,gBAAgB,EAAE,KAsB9B,CAAC;AAEF,eAAO,MAAM,UAAU,EAAE,KAkBxB,CAAC"}
1
+ {"version":3,"file":"index.story.d.ts","sourceRoot":"","sources":["../../../src/collapsible/stories/index.story.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAE5D,OAAO,KAAK,WAAW,MAAM,UAAU,CAAC;AAExC,QAAA,MAAM,IAAI,EAAE,IAAI,CAAE,OAAO,WAAW,CAAC,IAAI,CAcxC,CAAC;eACa,IAAI;AAEnB,KAAK,KAAK,GAAG,QAAQ,CAAE,OAAO,WAAW,CAAC,IAAI,CAAE,CAAC;AAEjD,eAAO,MAAM,OAAO,EAAE,KAWrB,CAAC;AAEF,eAAO,MAAM,WAAW,EAAE,KAazB,CAAC;AAEF,eAAO,MAAM,QAAQ,EAAE,KAYtB,CAAC;AAEF;;;;;;GAMG;AACH,eAAO,MAAM,gBAAgB,EAAE,KAsB9B,CAAC;AAEF,eAAO,MAAM,UAAU,EAAE,KAkBxB,CAAC"}
@@ -4,7 +4,7 @@
4
4
  * `Collapsible` is a collection of React components that combine to render
5
5
  * a collapsible panel controlled by a button.
6
6
  */
7
- export declare const Trigger: import("react").ForwardRefExoticComponent<Omit<Omit<Omit<import("@base-ui/react").CollapsibleTriggerProps, "ref"> & import("react").RefAttributes<HTMLButtonElement>, "ref">, "style" | "className" | "children" | "render"> & {
7
+ export declare const Trigger: import("react").ForwardRefExoticComponent<Omit<Omit<Omit<import("@base-ui/react").CollapsibleTriggerProps, "ref"> & import("react").RefAttributes<HTMLButtonElement>, "ref">, "children" | "className" | "render" | "style"> & {
8
8
  className?: string;
9
9
  style?: React.CSSProperties;
10
10
  render?: ((props: import("react").HTMLAttributes<any> & {
@@ -1 +1 @@
1
- {"version":3,"file":"content.d.ts","sourceRoot":"","sources":["../../src/collapsible-card/content.tsx"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAE5C;;;GAGG;AACH,eAAO,MAAM,OAAO,yGAqBnB,CAAC"}
1
+ {"version":3,"file":"content.d.ts","sourceRoot":"","sources":["../../src/collapsible-card/content.tsx"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAE5C;;;GAGG;AACH,eAAO,MAAM,OAAO,yGAgCnB,CAAC"}
@@ -4,6 +4,12 @@ import type { HeaderProps } from './types';
4
4
  * toggle trigger — clicking anywhere on it expands or collapses the
5
5
  * card's content.
6
6
  *
7
+ * Defaults to a `<div>` wrapper around the trigger. Since the right heading
8
+ * level depends on the surrounding document outline, the consumer is
9
+ * expected to opt in to heading semantics. Pass `render` to wrap the
10
+ * trigger in a heading (e.g. `render={ <h2 /> }`), following the W3C APG
11
+ * accordion pattern (heading wraps button).
12
+ *
7
13
  * Avoid placing interactive elements (buttons, links, inputs) inside the
8
14
  * header, since the entire area is clickable and their events will bubble
9
15
  * to trigger the collapse toggle.
@@ -1 +1 @@
1
- {"version":3,"file":"header.d.ts","sourceRoot":"","sources":["../../src/collapsible-card/header.tsx"],"names":[],"mappings":"AAUA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAE3C;;;;;;;;GAQG;AACH,eAAO,MAAM,MAAM,wGAwDlB,CAAC"}
1
+ {"version":3,"file":"header.d.ts","sourceRoot":"","sources":["../../src/collapsible-card/header.tsx"],"names":[],"mappings":"AAWA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAE3C;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,MAAM,wGA8DlB,CAAC"}
@@ -20,6 +20,14 @@ export declare const Disabled: Story;
20
20
  * settings-panel or FAQ-style layout.
21
21
  */
22
22
  export declare const Stacked: Story;
23
+ /**
24
+ * `CollapsibleCard.Header` renders a `<div>` wrapper by default. Pass an
25
+ * `<h1>`–`<h6>` React element to the `render` prop to wrap the trigger in
26
+ * a heading and contribute to the document outline. The right level
27
+ * depends on the surrounding outline, so the consumer is expected to opt
28
+ * in.
29
+ */
30
+ export declare const WithHeadingElement: Story;
23
31
  /**
24
32
  * A collapsible card with a `HeaderDescription` that provides supplementary
25
33
  * information (e.g. status, summary) as an `aria-describedby` relationship.
@@ -1 +1 @@
1
- {"version":3,"file":"index.story.d.ts","sourceRoot":"","sources":["../../../src/collapsible-card/stories/index.story.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAE5D,OAAO,KAAK,eAAe,MAAM,UAAU,CAAC;AAyB5C,QAAA,MAAM,IAAI,EAAE,IAAI,CAAE,OAAO,eAAe,CAAC,IAAI,CAQ5C,CAAC;AACF,eAAe,IAAI,CAAC;AAEpB,KAAK,KAAK,GAAG,QAAQ,CAAE,OAAO,eAAe,CAAC,IAAI,CAAE,CAAC;AAErD;;GAEG;AACH,eAAO,MAAM,OAAO,EAAE,KAqBrB,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,eAAe,EAAE,KAkB7B,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,QAAQ,EAAE,KAetB,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,OAAO,EAAE,KA6CrB,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,qBAAqB,EAAE,KAuCnC,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,cAAc,EAAE,KA4C5B,CAAC"}
1
+ {"version":3,"file":"index.story.d.ts","sourceRoot":"","sources":["../../../src/collapsible-card/stories/index.story.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAE5D,OAAO,KAAK,eAAe,MAAM,UAAU,CAAC;AAyB5C,QAAA,MAAM,IAAI,EAAE,IAAI,CAAE,OAAO,eAAe,CAAC,IAAI,CAe5C,CAAC;eACa,IAAI;AAEnB,KAAK,KAAK,GAAG,QAAQ,CAAE,OAAO,eAAe,CAAC,IAAI,CAAE,CAAC;AAErD;;GAEG;AACH,eAAO,MAAM,OAAO,EAAE,KAqBrB,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,eAAe,EAAE,KAkB7B,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,QAAQ,EAAE,KAetB,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,OAAO,EAAE,KA6CrB,CAAC;AAEF;;;;;;GAMG;AACH,eAAO,MAAM,kBAAkB,EAAE,KA8ChC,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,qBAAqB,EAAE,KAuCnC,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,cAAc,EAAE,KA4C5B,CAAC"}
@@ -0,0 +1,17 @@
1
+ import type { ContentProps } from './types';
2
+ /**
3
+ * Renders the scrollable body of the dialog, sitting between `Dialog.Header`
4
+ * and `Dialog.Footer` as a flex sibling.
5
+ *
6
+ * **Required for scrolling** — `Dialog.Content` is the element that owns
7
+ * the popup's overflow. Without it, body content that exceeds the popup's
8
+ * max height clips instead of scrolling. Render it once per popup and wrap
9
+ * any freeform body content in it.
10
+ *
11
+ * Placing `Dialog.Header` or `Dialog.Footer` *inside* `Dialog.Content`
12
+ * makes them scroll with the body (the "non-sticky" opt-out) rather than
13
+ * staying pinned to the popup's edges.
14
+ */
15
+ declare const Content: import("react").ForwardRefExoticComponent<ContentProps & import("react").RefAttributes<HTMLDivElement>>;
16
+ export { Content };
17
+ //# sourceMappingURL=content.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"content.d.ts","sourceRoot":"","sources":["../../src/dialog/content.tsx"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAE5C;;;;;;;;;;;;GAYG;AACH,QAAA,MAAM,OAAO,yGAsBZ,CAAC;AAEF,OAAO,EAAE,OAAO,EAAE,CAAC"}
@@ -1,25 +1,20 @@
1
- type DialogValidationContextType = {
2
- registerTitle: (element: HTMLElement | null) => () => void;
3
- };
4
- /**
5
- * Development-only hook to access the dialog validation context.
6
- */
7
- declare function useDialogValidationContextDev(): DialogValidationContextType | null;
1
+ export declare const DialogModalProvider: ({ modal, children, }: {
2
+ modal: "trap-focus" | boolean | undefined;
3
+ children: React.ReactNode;
4
+ }) => import("react").JSX.Element;
5
+ export declare const useDialogModal: () => "trap-focus" | boolean | undefined;
8
6
  /**
9
7
  * Hook to access the dialog validation context.
10
8
  * Returns null in production or if not within a Dialog.Popup.
11
9
  */
12
- export declare const useDialogValidationContext: typeof useDialogValidationContextDev;
13
- /**
14
- * Development-only provider that tracks whether Dialog.Title is rendered.
15
- */
16
- declare function DialogValidationProviderDev({ children, }: {
17
- children: React.ReactNode;
18
- }): import("react").JSX.Element;
10
+ export declare const useDialogValidationContext: () => {
11
+ registerTitle: (element: HTMLElement | null) => () => void;
12
+ } | null;
19
13
  /**
20
14
  * Provider component that validates Dialog.Title presence in development mode.
21
15
  * In production, this component is a no-op and just renders children.
22
16
  */
23
- export declare const DialogValidationProvider: typeof DialogValidationProviderDev;
24
- export {};
17
+ export declare const DialogValidationProvider: ({ children, }: {
18
+ children: React.ReactNode;
19
+ }) => import("react").JSX.Element;
25
20
  //# sourceMappingURL=context.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../src/dialog/context.tsx"],"names":[],"mappings":"AAgBA,KAAK,2BAA2B,GAAG;IAClC,aAAa,EAAE,CAAE,OAAO,EAAE,WAAW,GAAG,IAAI,KAAM,MAAM,IAAI,CAAC;CAC7D,CAAC;AAOF;;GAEG;AACH,iBAAS,6BAA6B,uCAErC;AASD;;;GAGG;AACH,eAAO,MAAM,0BAA0B,sCAEN,CAAC;AAElC;;GAEG;AACH,iBAAS,2BAA2B,CAAE,EACrC,QAAQ,GACR,EAAE;IACF,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;CAC1B,+BAoDA;AAaD;;;GAGG;AACH,eAAO,MAAM,wBAAwB,oCAEN,CAAC"}
1
+ {"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../src/dialog/context.tsx"],"names":[],"mappings":"AASA,eAAO,MAAM,mBAAmB;;;iCAAuB,CAAC;AACxD,eAAO,MAAM,cAAc,0CAAuB,CAAC;AAMnD;;;GAGG;AACH,eAAO,MAAM,0BAA0B;;QACI,CAAC;AAE5C;;;GAGG;AACH,eAAO,MAAM,wBAAwB;;iCACI,CAAC"}
@@ -0,0 +1,9 @@
1
+ import type { DescriptionProps } from './types';
2
+ /**
3
+ * Renders an optional paragraph that describes the dialog content.
4
+ *
5
+ * The rendered element is linked to the popup via `aria-describedby`.
6
+ */
7
+ declare const Description: import("react").ForwardRefExoticComponent<DescriptionProps & import("react").RefAttributes<HTMLParagraphElement>>;
8
+ export { Description };
9
+ //# sourceMappingURL=description.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"description.d.ts","sourceRoot":"","sources":["../../src/dialog/description.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAEhD;;;;GAIG;AACH,QAAA,MAAM,WAAW,mHAahB,CAAC;AAEF,OAAO,EAAE,WAAW,EAAE,CAAC"}
@@ -2,7 +2,14 @@ import type { FooterProps } from './types';
2
2
  /**
3
3
  * Renders the footer section of the dialog, typically containing
4
4
  * action buttons.
5
+ *
6
+ * Defaults to a native `<footer>` element for richer semantics (contentinfo
7
+ * landmark navigation where screen readers expose landmarks nested in
8
+ * dialogs). Pass `render` to opt out of the default tag.
9
+ *
10
+ * The footer is pinned to the bottom of the popup by default. To let it
11
+ * scroll with the body instead, render it *inside* `Dialog.Content`.
5
12
  */
6
- declare const Footer: import("react").ForwardRefExoticComponent<FooterProps & import("react").RefAttributes<HTMLDivElement>>;
13
+ declare const Footer: import("react").ForwardRefExoticComponent<FooterProps & import("react").RefAttributes<HTMLElement>>;
7
14
  export { Footer };
8
15
  //# sourceMappingURL=footer.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"footer.d.ts","sourceRoot":"","sources":["../../src/dialog/footer.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAE3C;;;GAGG;AACH,QAAA,MAAM,MAAM,wGAaT,CAAC;AAEJ,OAAO,EAAE,MAAM,EAAE,CAAC"}
1
+ {"version":3,"file":"footer.d.ts","sourceRoot":"","sources":["../../src/dialog/footer.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAE3C;;;;;;;;;;GAUG;AACH,QAAA,MAAM,MAAM,qGAcT,CAAC;AAEJ,OAAO,EAAE,MAAM,EAAE,CAAC"}
@@ -2,7 +2,14 @@ import type { HeaderProps } from './types';
2
2
  /**
3
3
  * Renders the header section of the dialog, typically containing
4
4
  * the heading and close button.
5
+ *
6
+ * Defaults to a native `<header>` element for richer semantics (heading-level
7
+ * scanning, and banner landmark navigation where screen readers expose
8
+ * landmarks nested in dialogs). Pass `render` to opt out of the default tag.
9
+ *
10
+ * The header is pinned to the top of the popup by default. To let it scroll
11
+ * with the body instead, render it *inside* `Dialog.Content`.
5
12
  */
6
- declare const Header: import("react").ForwardRefExoticComponent<HeaderProps & import("react").RefAttributes<HTMLDivElement>>;
13
+ declare const Header: import("react").ForwardRefExoticComponent<HeaderProps & import("react").RefAttributes<HTMLElement>>;
7
14
  export { Header };
8
15
  //# sourceMappingURL=header.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"header.d.ts","sourceRoot":"","sources":["../../src/dialog/header.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAE3C;;;GAGG;AACH,QAAA,MAAM,MAAM,wGAaT,CAAC;AAEJ,OAAO,EAAE,MAAM,EAAE,CAAC"}
1
+ {"version":3,"file":"header.d.ts","sourceRoot":"","sources":["../../src/dialog/header.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAE3C;;;;;;;;;;GAUG;AACH,QAAA,MAAM,MAAM,qGAcT,CAAC;AAEJ,OAAO,EAAE,MAAM,EAAE,CAAC"}
@@ -1,10 +1,13 @@
1
1
  import { Action } from './action';
2
2
  import { CloseIcon } from './close-icon';
3
+ import { Content } from './content';
4
+ import { Description } from './description';
3
5
  import { Footer } from './footer';
4
6
  import { Header } from './header';
5
7
  import { Popup } from './popup';
8
+ import { Portal } from './portal';
6
9
  import { Root } from './root';
7
10
  import { Title } from './title';
8
11
  import { Trigger } from './trigger';
9
- export { Action, CloseIcon, Footer, Header, Popup, Root, Title, Trigger };
12
+ export { Action, CloseIcon, Content, Description, Footer, Header, Popup, Portal, Root, Title, Trigger, };
10
13
  //# sourceMappingURL=index.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/dialog/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAChC,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAC9B,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAChC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,EAAE,MAAM,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,OAAO,EAAE,CAAC"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/dialog/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,SAAS,EAAE,MAAM,cAAc,CAAC;AACzC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AACpC,OAAO,EAAE,WAAW,EAAE,MAAM,eAAe,CAAC;AAC5C,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAChC,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAC9B,OAAO,EAAE,KAAK,EAAE,MAAM,SAAS,CAAC;AAChC,OAAO,EAAE,OAAO,EAAE,MAAM,WAAW,CAAC;AAEpC,OAAO,EACN,MAAM,EACN,SAAS,EACT,OAAO,EACP,WAAW,EACX,MAAM,EACN,MAAM,EACN,KAAK,EACL,MAAM,EACN,IAAI,EACJ,KAAK,EACL,OAAO,GACP,CAAC"}
@@ -2,6 +2,8 @@ import type { PopupProps } from './types';
2
2
  /**
3
3
  * Renders the dialog popup element that contains the dialog content.
4
4
  * Uses a portal to render outside the DOM hierarchy.
5
+ *
6
+ * When `portal` is omitted, defaults to `Dialog.Portal`.
5
7
  */
6
8
  declare const Popup: import("react").ForwardRefExoticComponent<PopupProps & import("react").RefAttributes<HTMLDivElement>>;
7
9
  export { Popup };
@@ -1 +1 @@
1
- {"version":3,"file":"popup.d.ts","sourceRoot":"","sources":["../../src/dialog/popup.tsx"],"names":[],"mappings":"AAYA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAO1C;;;GAGG;AACH,QAAA,MAAM,KAAK,uGAwCR,CAAC;AAEJ,OAAO,EAAE,KAAK,EAAE,CAAC"}
1
+ {"version":3,"file":"popup.d.ts","sourceRoot":"","sources":["../../src/dialog/popup.tsx"],"names":[],"mappings":"AAeA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAO1C;;;;;GAKG;AACH,QAAA,MAAM,KAAK,uGAsDR,CAAC;AAEJ,OAAO,EAAE,KAAK,EAAE,CAAC"}
@@ -0,0 +1,10 @@
1
+ /**
2
+ * Root element that portals `Dialog` overlay content (`Backdrop`, inner
3
+ * `Popup`, etc.) outside the DOM hierarchy. Pass to `Dialog.Popup`'s
4
+ * `portal` prop to customize `container`, `className`, `style`, and other
5
+ * Base UI portal options. When `portal` is omitted, `Dialog.Popup` uses this
6
+ * component with default props.
7
+ */
8
+ declare const Portal: import("react").ForwardRefExoticComponent<Omit<Omit<import("@base-ui/react").DialogPortalProps, "ref"> & import("react").RefAttributes<HTMLDivElement>, "ref"> & import("react").RefAttributes<HTMLDivElement>>;
9
+ export { Portal };
10
+ //# sourceMappingURL=portal.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"portal.d.ts","sourceRoot":"","sources":["../../src/dialog/portal.tsx"],"names":[],"mappings":"AAIA;;;;;;GAMG;AACH,QAAA,MAAM,MAAM,iNAIX,CAAC;AAEF,OAAO,EAAE,MAAM,EAAE,CAAC"}
@@ -1,10 +1,20 @@
1
1
  import type { RootProps } from './types';
2
2
  /**
3
- * Groups the dialog trigger and popup.
3
+ * An ARIA-compliant dialog that opens on top of the entire page.
4
4
  *
5
- * `Dialog` is a collection of React components that combine to render
6
- * an ARIA-compliant dialog pattern.
5
+ * Every dialog must include a `Dialog.Title` component for accessibility it
6
+ * serves as both the visible heading and the accessible label for the dialog.
7
+ *
8
+ * Always include a visible close button, either `Dialog.CloseIcon` or a clear
9
+ * dismissing action button. If your dialog has a "Cancel" button in the footer,
10
+ * the close icon may be redundant and create confusion about what clicking "X"
11
+ * means.
12
+ *
13
+ * Use `Dialog.CloseIcon` for informational dialogs where dismissing is safe and
14
+ * expected. For dialogs requiring explicit user choice (especially destructive
15
+ * actions), omit the close icon and rely on footer action buttons like "Cancel"
16
+ * and "Confirm" instead.
7
17
  */
8
- declare function Root(props: RootProps): import("react").JSX.Element;
18
+ declare function Root({ modal, children, ...props }: RootProps): import("react").JSX.Element;
9
19
  export { Root };
10
20
  //# sourceMappingURL=root.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"root.d.ts","sourceRoot":"","sources":["../../src/dialog/root.tsx"],"names":[],"mappings":"AACA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAEzC;;;;;GAKG;AACH,iBAAS,IAAI,CAAE,KAAK,EAAE,SAAS,+BAE9B;AAED,OAAO,EAAE,IAAI,EAAE,CAAC"}
1
+ {"version":3,"file":"root.d.ts","sourceRoot":"","sources":["../../src/dialog/root.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAEzC;;;;;;;;;;;;;;;GAeG;AACH,iBAAS,IAAI,CAAE,EAAE,KAAY,EAAE,QAAQ,EAAE,GAAG,KAAK,EAAE,EAAE,SAAS,+BAQ7D;AAED,OAAO,EAAE,IAAI,EAAE,CAAC"}
@@ -10,15 +10,38 @@ type Story = StoryObj<typeof Dialog.Root>;
10
10
  export declare const _Default: Story;
11
11
  export declare const AllSizes: Story;
12
12
  /**
13
- * Popovers in Gutenberg are managed with explicit z-index values, which can create
14
- * situations where a dialog renders below another popover, when you want it to be rendered above.
13
+ * Popovers in Gutenberg are managed with explicit z-index values, which can
14
+ * create situations where a dialog renders below another popover when you
15
+ * want it above.
15
16
  *
16
- * The `--wp-ui-dialog-z-index` CSS variable controls the z-index of both the
17
- * backdrop and the popup. It can be overridden globally by setting the variable
18
- * on `:root` or `body`. (This story doesn't actually demonstrate the feature
19
- * because it requires a global CSS rule.)
17
+ * The `--wp-ui-dialog-z-index` CSS variable controls the z-index of the
18
+ * dialog's backdrop and popup. Override it either:
19
+ *
20
+ * - **Globally**, by setting the variable on `:root` or `body` (raises every
21
+ * dialog in the page), or
22
+ * - **Per instance**, by passing a `Dialog.Portal` with a `style` (or
23
+ * `className`) to `Dialog.Popup`'s `portal` prop. The variable cascades
24
+ * from the portal wrapper to everything rendered inside it.
25
+ *
26
+ * This story demonstrates the per-instance approach.
20
27
  */
21
28
  export declare const WithCustomZIndex: Story;
29
+ /**
30
+ * When dialog content overflows the available height, `Dialog.Content`
31
+ * scrolls while `Dialog.Header` and `Dialog.Footer` stay pinned to the
32
+ * popup's top and bottom edges. Separator lines appear only when there
33
+ * is off-screen content above the header or below the footer.
34
+ *
35
+ * To let the header or footer scroll with the body instead of staying
36
+ * pinned, render it *inside* `Dialog.Content` rather than as a sibling.
37
+ * The inline "Sticky header / Sticky footer" checkboxes toggle exactly
38
+ * that placement at runtime.
39
+ *
40
+ * Use the inline controls to change the popup `size` and the sticky
41
+ * placement. The same controls render both outside and inside the
42
+ * dialog and stay in sync.
43
+ */
44
+ export declare const Scrollable: Story;
22
45
  /**
23
46
  * A dialog with a visually hidden title. The title is still present in the
24
47
  * DOM for `aria-labelledby`, but is not visible to sighted users.
@@ -1 +1 @@
1
- {"version":3,"file":"index.story.d.ts","sourceRoot":"","sources":["../../../src/dialog/stories/index.story.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAI5D,OAAO,KAAK,MAAM,MAAM,UAAU,CAAC;AAEnC,QAAA,MAAM,IAAI,EAAE,IAAI,CAAE,OAAO,MAAM,CAAC,IAAI,CAqCnC,CAAC;AACF,eAAe,IAAI,CAAC;AAEpB,KAAK,KAAK,GAAG,QAAQ,CAAE,OAAO,MAAM,CAAC,IAAI,CAAE,CAAC;AAE5C;;;GAGG;AACH,eAAO,MAAM,QAAQ,EAAE,KAsBtB,CAAC;AAuEF,eAAO,MAAM,QAAQ,EAAE,KAItB,CAAC;AAEF;;;;;;;;GAQG;AACH,eAAO,MAAM,gBAAgB,EAAE,KAG9B,CAAC;AAEF;;;;;;GAMG;AACH,eAAO,MAAM,uBAAuB,EAAE,KAuBrC,CAAC"}
1
+ {"version":3,"file":"index.story.d.ts","sourceRoot":"","sources":["../../../src/dialog/stories/index.story.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,IAAI,EAAE,QAAQ,EAAE,MAAM,uBAAuB,CAAC;AAK5D,OAAO,KAAK,MAAM,MAAM,UAAU,CAAC;AAEnC,QAAA,MAAM,IAAI,EAAE,IAAI,CAAE,OAAO,MAAM,CAAC,IAAI,CA4BnC,CAAC;eACa,IAAI;AAEnB,KAAK,KAAK,GAAG,QAAQ,CAAE,OAAO,MAAM,CAAC,IAAI,CAAE,CAAC;AAE5C;;;GAGG;AACH,eAAO,MAAM,QAAQ,EAAE,KAwBtB,CAAC;AAoEF,eAAO,MAAM,QAAQ,EAAE,KAItB,CAAC;AAEF;;;;;;;;;;;;;;;GAeG;AACH,eAAO,MAAM,gBAAgB,EAAE,KA+B9B,CAAC;AAwGF;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,UAAU,EAAE,KAIxB,CAAC;AAEF;;;;;;GAMG;AACH,eAAO,MAAM,uBAAuB,EAAE,KA0BrC,CAAC"}
@@ -1,9 +1,10 @@
1
1
  import type { Dialog as _Dialog } from '@base-ui/react/dialog';
2
- import type { ReactNode } from 'react';
2
+ import type { ComponentPropsWithoutRef, ReactElement, ReactNode } from 'react';
3
3
  import type { Button } from '../button';
4
4
  import type { IconButton } from '../icon-button';
5
5
  import type { ComponentProps } from '../utils/types';
6
- export interface RootProps extends Pick<_Dialog.Root.Props, 'open' | 'onOpenChange' | 'defaultOpen' | 'modal' | 'disablePointerDismissal'> {
6
+ export type PortalProps = ComponentPropsWithoutRef<typeof _Dialog.Portal>;
7
+ export interface RootProps extends Pick<_Dialog.Root.Props, 'open' | 'onOpenChange' | 'onOpenChangeComplete' | 'defaultOpen' | 'modal' | 'disablePointerDismissal'> {
7
8
  /**
8
9
  * The content to be rendered inside the component.
9
10
  */
@@ -21,17 +22,28 @@ export interface PopupProps extends ComponentProps<'div'>, Pick<_Dialog.Popup.Pr
21
22
  */
22
23
  children?: ReactNode;
23
24
  /**
24
- * A parent element to render the portal into.
25
+ * Optional portal element, typically `<Dialog.Portal />` with custom
26
+ * `container`, `className`, or `style`. The popup and backdrop are
27
+ * rendered as this portal's children (do not pass `children` on the portal
28
+ * element; they would be ignored).
29
+ *
30
+ * When omitted, `Dialog.Popup` uses `Dialog.Portal` with default props,
31
+ * rendering the portal in the current document's `<body>`.
25
32
  */
26
- container?: _Dialog.Portal.Props['container'];
33
+ portal?: ReactElement<Omit<PortalProps, 'children'>>;
27
34
  /**
28
35
  * Renders the dialog at a preset width (excluding additional padding from
29
36
  * the viewport edges).
30
37
  *
38
+ * Height is not directly controlled by `size`: for every value except
39
+ * `'full'`, the dialog fits its content up to the viewport height
40
+ * (minus the viewport inset) and scrolls internally when it overflows.
41
+ * `'full'` stretches the dialog to the available viewport height.
42
+ *
31
43
  * - `'small'` — narrow max-width.
32
44
  * - `'medium'` — moderate max-width.
33
45
  * - `'large'` — wide max-width.
34
- * - `'stretch'` — no max-width, stretches to fill available space.
46
+ * - `'stretch'` — no max-width, stretches to fill available width.
35
47
  * - `'full'` — stretches to fill available width and height.
36
48
  *
37
49
  * @default 'medium'
@@ -44,18 +56,53 @@ export interface ActionProps extends ComponentProps<typeof Button> {
44
56
  */
45
57
  children?: ReactNode;
46
58
  }
47
- export interface FooterProps extends ComponentProps<'div'> {
59
+ export interface FooterProps extends ComponentProps<'footer'> {
48
60
  /**
49
61
  * The content to be rendered inside the component.
50
62
  */
51
63
  children?: ReactNode;
52
64
  }
53
- export interface HeaderProps extends ComponentProps<'div'> {
65
+ export interface HeaderProps extends ComponentProps<'header'> {
54
66
  /**
55
67
  * The content to be rendered inside the component.
56
68
  */
57
69
  children?: ReactNode;
58
70
  }
71
+ export interface ContentProps extends ComponentProps<'div'> {
72
+ /**
73
+ * The body content to be rendered inside the scroll container.
74
+ */
75
+ children?: ReactNode;
76
+ /**
77
+ * The scroll region automatically becomes a keyboard-reachable tab
78
+ * stop (`tabindex="0"`) whenever the body overflows, so keyboard
79
+ * users can arrow-scroll the region (WCAG 2.1.1). It becomes
80
+ * non-tabbable again as soon as the content no longer overflows.
81
+ *
82
+ * If you supply `tabIndex` explicitly, your value wins and is never
83
+ * overwritten — including `tabIndex={ -1 }` to opt out of the
84
+ * automatic tab stop entirely, and including overrides applied
85
+ * after the component had already managed the value.
86
+ *
87
+ * Two narrow edge cases:
88
+ * - If you later *remove* an explicit `tabIndex` at runtime, the
89
+ * component will resume managing it on the next overflow tick; it
90
+ * can't distinguish a previous explicit opt-out from an
91
+ * unconfigured state.
92
+ * - Passing `tabIndex={ 0 }` while the body overflows produces a
93
+ * value identical to the auto-managed one, so the component can
94
+ * no longer tell the two apart and may strip it on the next
95
+ * non-overflow tick. Pick a different value (or rely on the
96
+ * default behavior, which is already `0` while overflowing).
97
+ *
98
+ * Note: the scroll region is intentionally rendered without
99
+ * `role` / `aria-label`, so screen readers don't announce a
100
+ * generic "scrollable" landmark on top of the dialog's existing
101
+ * heading + body; the surrounding `Dialog.Title` and body content
102
+ * provide the context.
103
+ */
104
+ tabIndex?: number;
105
+ }
59
106
  export interface TitleProps extends ComponentProps<'h2'> {
60
107
  /**
61
108
  * The title content to be rendered. This serves as both the visible
@@ -66,6 +113,12 @@ export interface TitleProps extends ComponentProps<'h2'> {
66
113
  */
67
114
  children?: ReactNode;
68
115
  }
116
+ export interface DescriptionProps extends ComponentProps<'p'> {
117
+ /**
118
+ * The description content to be rendered inside the component.
119
+ */
120
+ children?: ReactNode;
121
+ }
69
122
  export interface CloseIconProps extends Omit<ComponentProps<typeof IconButton>, 'label' | 'icon' | 'loading' | 'loadingAnnouncement'> {
70
123
  /**
71
124
  * A label describing the button's action, shown as a tooltip and to
@@ -1 +1 @@
1
- {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/dialog/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,IAAI,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAC/D,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AACvC,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AACxC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AACjD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAErD,MAAM,WAAW,SAChB,SAAQ,IAAI,CACX,OAAO,CAAC,IAAI,CAAC,KAAK,EAChB,MAAM,GACN,cAAc,GACd,aAAa,GACb,OAAO,GACP,yBAAyB,CAC3B;IACD;;OAEG;IACH,QAAQ,CAAC,EAAE,SAAS,CAAC;CACrB;AAED,MAAM,WAAW,YAAa,SAAQ,cAAc,CAAE,QAAQ,CAAE;IAC/D;;OAEG;IACH,QAAQ,CAAC,EAAE,SAAS,CAAC;CACrB;AAED,MAAM,WAAW,UAChB,SAAQ,cAAc,CAAE,KAAK,CAAE,EAC9B,IAAI,CAAE,OAAO,CAAC,KAAK,CAAC,KAAK,EAAE,cAAc,GAAG,YAAY,CAAE;IAC3D;;OAEG;IACH,QAAQ,CAAC,EAAE,SAAS,CAAC;IAErB;;OAEG;IACH,SAAS,CAAC,EAAE,OAAO,CAAC,MAAM,CAAC,KAAK,CAAE,WAAW,CAAE,CAAC;IAEhD;;;;;;;;;;;OAWG;IACH,IAAI,CAAC,EAAE,OAAO,GAAG,QAAQ,GAAG,OAAO,GAAG,SAAS,GAAG,MAAM,CAAC;CACzD;AAED,MAAM,WAAW,WAAY,SAAQ,cAAc,CAAE,OAAO,MAAM,CAAE;IACnE;;OAEG;IACH,QAAQ,CAAC,EAAE,SAAS,CAAC;CACrB;AAED,MAAM,WAAW,WAAY,SAAQ,cAAc,CAAE,KAAK,CAAE;IAC3D;;OAEG;IACH,QAAQ,CAAC,EAAE,SAAS,CAAC;CACrB;AAED,MAAM,WAAW,WAAY,SAAQ,cAAc,CAAE,KAAK,CAAE;IAC3D;;OAEG;IACH,QAAQ,CAAC,EAAE,SAAS,CAAC;CACrB;AAED,MAAM,WAAW,UAAW,SAAQ,cAAc,CAAE,IAAI,CAAE;IACzD;;;;;;OAMG;IACH,QAAQ,CAAC,EAAE,SAAS,CAAC;CACrB;AAED,MAAM,WAAW,cAChB,SAAQ,IAAI,CACX,cAAc,CAAE,OAAO,UAAU,CAAE,EACnC,OAAO,GAAG,MAAM,GAAG,SAAS,GAAG,qBAAqB,CACpD;IACD;;;;;OAKG;IACH,KAAK,CAAC,EAAE,cAAc,CAAE,OAAO,UAAU,CAAE,CAAE,OAAO,CAAE,CAAC;IACvD;;;;OAIG;IACH,IAAI,CAAC,EAAE,cAAc,CAAE,OAAO,UAAU,CAAE,CAAE,MAAM,CAAE,CAAC;CACrD"}
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/dialog/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,MAAM,IAAI,OAAO,EAAE,MAAM,uBAAuB,CAAC;AAC/D,OAAO,KAAK,EAAE,wBAAwB,EAAE,YAAY,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAE/E,OAAO,KAAK,EAAE,MAAM,EAAE,MAAM,WAAW,CAAC;AACxC,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,gBAAgB,CAAC;AACjD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,gBAAgB,CAAC;AAErD,MAAM,MAAM,WAAW,GAAG,wBAAwB,CAAE,OAAO,OAAO,CAAC,MAAM,CAAE,CAAC;AAE5E,MAAM,WAAW,SAChB,SAAQ,IAAI,CACX,OAAO,CAAC,IAAI,CAAC,KAAK,EAChB,MAAM,GACN,cAAc,GACd,sBAAsB,GACtB,aAAa,GACb,OAAO,GACP,yBAAyB,CAC3B;IACD;;OAEG;IACH,QAAQ,CAAC,EAAE,SAAS,CAAC;CACrB;AAED,MAAM,WAAW,YAAa,SAAQ,cAAc,CAAE,QAAQ,CAAE;IAC/D;;OAEG;IACH,QAAQ,CAAC,EAAE,SAAS,CAAC;CACrB;AAED,MAAM,WAAW,UAChB,SAAQ,cAAc,CAAE,KAAK,CAAE,EAC9B,IAAI,CAAE,OAAO,CAAC,KAAK,CAAC,KAAK,EAAE,cAAc,GAAG,YAAY,CAAE;IAC3D;;OAEG;IACH,QAAQ,CAAC,EAAE,SAAS,CAAC;IAErB;;;;;;;;OAQG;IACH,MAAM,CAAC,EAAE,YAAY,CAAE,IAAI,CAAE,WAAW,EAAE,UAAU,CAAE,CAAE,CAAC;IAEzD;;;;;;;;;;;;;;;;OAgBG;IACH,IAAI,CAAC,EAAE,OAAO,GAAG,QAAQ,GAAG,OAAO,GAAG,SAAS,GAAG,MAAM,CAAC;CACzD;AAED,MAAM,WAAW,WAAY,SAAQ,cAAc,CAAE,OAAO,MAAM,CAAE;IACnE;;OAEG;IACH,QAAQ,CAAC,EAAE,SAAS,CAAC;CACrB;AAED,MAAM,WAAW,WAAY,SAAQ,cAAc,CAAE,QAAQ,CAAE;IAC9D;;OAEG;IACH,QAAQ,CAAC,EAAE,SAAS,CAAC;CACrB;AAED,MAAM,WAAW,WAAY,SAAQ,cAAc,CAAE,QAAQ,CAAE;IAC9D;;OAEG;IACH,QAAQ,CAAC,EAAE,SAAS,CAAC;CACrB;AAED,MAAM,WAAW,YAAa,SAAQ,cAAc,CAAE,KAAK,CAAE;IAC5D;;OAEG;IACH,QAAQ,CAAC,EAAE,SAAS,CAAC;IACrB;;;;;;;;;;;;;;;;;;;;;;;;;;;OA2BG;IACH,QAAQ,CAAC,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,UAAW,SAAQ,cAAc,CAAE,IAAI,CAAE;IACzD;;;;;;OAMG;IACH,QAAQ,CAAC,EAAE,SAAS,CAAC;CACrB;AAED,MAAM,WAAW,gBAAiB,SAAQ,cAAc,CAAE,GAAG,CAAE;IAC9D;;OAEG;IACH,QAAQ,CAAC,EAAE,SAAS,CAAC;CACrB;AAED,MAAM,WAAW,cAChB,SAAQ,IAAI,CACX,cAAc,CAAE,OAAO,UAAU,CAAE,EACnC,OAAO,GAAG,MAAM,GAAG,SAAS,GAAG,qBAAqB,CACpD;IACD;;;;;OAKG;IACH,KAAK,CAAC,EAAE,cAAc,CAAE,OAAO,UAAU,CAAE,CAAE,OAAO,CAAE,CAAC;IACvD;;;;OAIG;IACH,IAAI,CAAC,EAAE,cAAc,CAAE,OAAO,UAAU,CAAE,CAAE,MAAM,CAAE,CAAC;CACrD"}
@@ -0,0 +1,8 @@
1
+ import type { ActionProps } from './types';
2
+ /**
3
+ * Renders a button that closes the drawer when clicked.
4
+ * Accepts all Button component props for styling.
5
+ */
6
+ declare const Action: import("react").ForwardRefExoticComponent<ActionProps & import("react").RefAttributes<HTMLButtonElement>>;
7
+ export { Action };
8
+ //# sourceMappingURL=action.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"action.d.ts","sourceRoot":"","sources":["../../src/drawer/action.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,SAAS,CAAC;AAE3C;;;GAGG;AACH,QAAA,MAAM,MAAM,2GAgBX,CAAC;AAEF,OAAO,EAAE,MAAM,EAAE,CAAC"}
@@ -0,0 +1,8 @@
1
+ import type { CloseIconProps } from './types';
2
+ /**
3
+ * Renders an icon button that closes the drawer when clicked.
4
+ * Provides a default close icon and accessible label.
5
+ */
6
+ declare const CloseIcon: import("react").ForwardRefExoticComponent<CloseIconProps & import("react").RefAttributes<HTMLButtonElement>>;
7
+ export { CloseIcon };
8
+ //# sourceMappingURL=close-icon.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"close-icon.d.ts","sourceRoot":"","sources":["../../src/drawer/close-icon.tsx"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,SAAS,CAAC;AAE9C;;;GAGG;AACH,QAAA,MAAM,SAAS,8GAmBd,CAAC;AAEF,OAAO,EAAE,SAAS,EAAE,CAAC"}
@@ -0,0 +1,24 @@
1
+ import type { ContentProps } from './types';
2
+ /**
3
+ * Renders the scrollable body of the drawer, sitting between `Drawer.Header`
4
+ * and `Drawer.Footer` as a flex sibling.
5
+ *
6
+ * **Required for scrolling** — `Drawer.Content` is the element that owns
7
+ * the popup's overflow. Without it, body content that exceeds the popup's
8
+ * available space clips instead of scrolling, and swipe-to-dismiss on
9
+ * scrollable vertical drawers won't gate correctly at the scroll edge.
10
+ * Render it once per popup and wrap any freeform body content in it.
11
+ *
12
+ * Placing `Drawer.Header` or `Drawer.Footer` *inside* `Drawer.Content`
13
+ * makes them scroll with the body (the "non-sticky" opt-out) rather than
14
+ * staying pinned to the popup's edges.
15
+ *
16
+ * Mouse-drag swipe-to-dismiss is preserved in the popup-edge padding
17
+ * gutter and on the chrome regions; mouse drag over the body itself
18
+ * does not dismiss the drawer, so text selection inside the body keeps
19
+ * working normally. Touch swipe-to-dismiss engages from anywhere in
20
+ * the popup (gated by the scroll edge on vertical drawers).
21
+ */
22
+ declare const Content: import("react").ForwardRefExoticComponent<ContentProps & import("react").RefAttributes<HTMLDivElement>>;
23
+ export { Content };
24
+ //# sourceMappingURL=content.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"content.d.ts","sourceRoot":"","sources":["../../src/drawer/content.tsx"],"names":[],"mappings":"AAQA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAE5C;;;;;;;;;;;;;;;;;;;GAmBG;AACH,QAAA,MAAM,OAAO,yGAgCZ,CAAC;AAEF,OAAO,EAAE,OAAO,EAAE,CAAC"}
@@ -0,0 +1,20 @@
1
+ export declare const DrawerModalProvider: ({ modal, children, }: {
2
+ modal: "trap-focus" | boolean | undefined;
3
+ children: React.ReactNode;
4
+ }) => import("react").JSX.Element;
5
+ export declare const useDrawerModal: () => "trap-focus" | boolean | undefined;
6
+ /**
7
+ * Hook to access the drawer validation context.
8
+ * Returns null in production or if not within a Drawer.Popup.
9
+ */
10
+ export declare const useDrawerValidationContext: () => {
11
+ registerTitle: (element: HTMLElement | null) => () => void;
12
+ } | null;
13
+ /**
14
+ * Provider component that validates Drawer.Title presence in development mode.
15
+ * In production, this component is a no-op and just renders children.
16
+ */
17
+ export declare const DrawerValidationProvider: ({ children, }: {
18
+ children: React.ReactNode;
19
+ }) => import("react").JSX.Element;
20
+ //# sourceMappingURL=context.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"context.d.ts","sourceRoot":"","sources":["../../src/drawer/context.tsx"],"names":[],"mappings":"AASA,eAAO,MAAM,mBAAmB;;;iCAAuB,CAAC;AACxD,eAAO,MAAM,cAAc,0CAAuB,CAAC;AAMnD;;;GAGG;AACH,eAAO,MAAM,0BAA0B;;QACI,CAAC;AAE5C;;;GAGG;AACH,eAAO,MAAM,wBAAwB;;iCACI,CAAC"}