@wordpress/ui 0.11.0 → 0.12.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (660) hide show
  1. package/CHANGELOG.md +46 -0
  2. package/README.md +4 -4
  3. package/build/alert-dialog/index.cjs +3 -0
  4. package/build/alert-dialog/index.cjs.map +2 -2
  5. package/build/alert-dialog/popup.cjs +120 -55
  6. package/build/alert-dialog/popup.cjs.map +3 -3
  7. package/build/alert-dialog/portal.cjs +38 -0
  8. package/build/alert-dialog/portal.cjs.map +7 -0
  9. package/build/alert-dialog/types.cjs.map +1 -1
  10. package/build/collapsible-card/content.cjs +9 -5
  11. package/build/collapsible-card/content.cjs.map +2 -2
  12. package/build/collapsible-card/header.cjs +14 -4
  13. package/build/collapsible-card/header.cjs.map +3 -3
  14. package/build/dialog/content.cjs +85 -0
  15. package/build/dialog/content.cjs.map +7 -0
  16. package/build/dialog/context.cjs +12 -44
  17. package/build/dialog/context.cjs.map +2 -2
  18. package/build/dialog/description.cjs +59 -0
  19. package/build/dialog/description.cjs.map +7 -0
  20. package/build/dialog/footer.cjs +5 -4
  21. package/build/dialog/footer.cjs.map +2 -2
  22. package/build/dialog/header.cjs +5 -4
  23. package/build/dialog/header.cjs.map +2 -2
  24. package/build/dialog/index.cjs +9 -0
  25. package/build/dialog/index.cjs.map +2 -2
  26. package/build/dialog/popup.cjs +21 -9
  27. package/build/dialog/popup.cjs.map +2 -2
  28. package/build/dialog/portal.cjs +38 -0
  29. package/build/dialog/portal.cjs.map +7 -0
  30. package/build/dialog/root.cjs +3 -2
  31. package/build/dialog/root.cjs.map +2 -2
  32. package/build/dialog/title.cjs +9 -6
  33. package/build/dialog/title.cjs.map +2 -2
  34. package/build/dialog/types.cjs.map +1 -1
  35. package/build/drawer/action.cjs +48 -0
  36. package/build/drawer/action.cjs.map +7 -0
  37. package/build/drawer/close-icon.cjs +58 -0
  38. package/build/drawer/close-icon.cjs.map +7 -0
  39. package/build/drawer/content.cjs +86 -0
  40. package/build/drawer/content.cjs.map +7 -0
  41. package/build/drawer/context.cjs +44 -0
  42. package/build/drawer/context.cjs.map +7 -0
  43. package/build/drawer/description.cjs +47 -0
  44. package/build/drawer/description.cjs.map +7 -0
  45. package/build/drawer/footer.cjs +65 -0
  46. package/build/drawer/footer.cjs.map +7 -0
  47. package/build/drawer/header.cjs +65 -0
  48. package/build/drawer/header.cjs.map +7 -0
  49. package/build/drawer/index.cjs +61 -0
  50. package/build/drawer/index.cjs.map +7 -0
  51. package/build/drawer/popup.cjs +103 -0
  52. package/build/drawer/popup.cjs.map +7 -0
  53. package/build/drawer/portal.cjs +38 -0
  54. package/build/drawer/portal.cjs.map +7 -0
  55. package/build/drawer/root.cjs +49 -0
  56. package/build/drawer/root.cjs.map +7 -0
  57. package/build/drawer/title.cjs +70 -0
  58. package/build/drawer/title.cjs.map +7 -0
  59. package/build/drawer/trigger.cjs +38 -0
  60. package/build/drawer/trigger.cjs.map +7 -0
  61. package/build/drawer/types.cjs +19 -0
  62. package/build/drawer/types.cjs.map +7 -0
  63. package/build/form/primitives/autocomplete/clear.cjs +62 -0
  64. package/build/form/primitives/autocomplete/clear.cjs.map +7 -0
  65. package/build/form/primitives/autocomplete/collection.cjs +38 -0
  66. package/build/form/primitives/autocomplete/collection.cjs.map +7 -0
  67. package/build/form/primitives/autocomplete/empty.cjs +67 -0
  68. package/build/form/primitives/autocomplete/empty.cjs.map +7 -0
  69. package/build/form/primitives/autocomplete/index.cjs +64 -0
  70. package/build/form/primitives/autocomplete/index.cjs.map +7 -0
  71. package/build/form/primitives/autocomplete/input-group.cjs +36 -0
  72. package/build/form/primitives/autocomplete/input-group.cjs.map +7 -0
  73. package/build/form/primitives/autocomplete/input.cjs +47 -0
  74. package/build/form/primitives/autocomplete/input.cjs.map +7 -0
  75. package/build/form/primitives/autocomplete/item.cjs +81 -0
  76. package/build/form/primitives/autocomplete/item.cjs.map +7 -0
  77. package/build/form/primitives/autocomplete/list-body.cjs +57 -0
  78. package/build/form/primitives/autocomplete/list-body.cjs.map +7 -0
  79. package/build/form/primitives/autocomplete/list.cjs +67 -0
  80. package/build/form/primitives/autocomplete/list.cjs.map +7 -0
  81. package/build/form/primitives/autocomplete/popup.cjs +102 -0
  82. package/build/form/primitives/autocomplete/popup.cjs.map +7 -0
  83. package/build/form/primitives/autocomplete/portal.cjs +38 -0
  84. package/build/form/primitives/autocomplete/portal.cjs.map +7 -0
  85. package/build/form/primitives/autocomplete/root.cjs +35 -0
  86. package/build/form/primitives/autocomplete/root.cjs.map +7 -0
  87. package/build/form/primitives/autocomplete/types.cjs +19 -0
  88. package/build/form/primitives/autocomplete/types.cjs.map +7 -0
  89. package/build/form/primitives/autocomplete/value.cjs +35 -0
  90. package/build/form/primitives/autocomplete/value.cjs.map +7 -0
  91. package/build/form/primitives/index.cjs +3 -0
  92. package/build/form/primitives/index.cjs.map +2 -2
  93. package/build/form/primitives/select/index.cjs +3 -0
  94. package/build/form/primitives/select/index.cjs.map +2 -2
  95. package/build/form/primitives/select/item.cjs +4 -5
  96. package/build/form/primitives/select/item.cjs.map +2 -2
  97. package/build/form/primitives/select/popup.cjs +12 -11
  98. package/build/form/primitives/select/popup.cjs.map +2 -2
  99. package/build/form/primitives/select/portal.cjs +38 -0
  100. package/build/form/primitives/select/portal.cjs.map +7 -0
  101. package/build/form/primitives/select/types.cjs.map +1 -1
  102. package/build/index.cjs +3 -0
  103. package/build/index.cjs.map +2 -2
  104. package/build/link/link.cjs +8 -18
  105. package/build/link/link.cjs.map +2 -2
  106. package/build/link/types.cjs.map +1 -1
  107. package/build/notice/action-button.cjs +3 -3
  108. package/build/notice/action-button.cjs.map +2 -2
  109. package/build/notice/action-link.cjs +8 -7
  110. package/build/notice/action-link.cjs.map +2 -2
  111. package/build/notice/actions.cjs +3 -3
  112. package/build/notice/actions.cjs.map +2 -2
  113. package/build/notice/close-icon.cjs +3 -3
  114. package/build/notice/close-icon.cjs.map +2 -2
  115. package/build/notice/description.cjs +3 -3
  116. package/build/notice/description.cjs.map +2 -2
  117. package/build/notice/root.cjs +3 -3
  118. package/build/notice/root.cjs.map +2 -2
  119. package/build/notice/title.cjs +3 -3
  120. package/build/notice/title.cjs.map +2 -2
  121. package/build/popover/arrow.cjs +4 -4
  122. package/build/popover/arrow.cjs.map +2 -2
  123. package/build/popover/context.cjs +4 -44
  124. package/build/popover/context.cjs.map +2 -2
  125. package/build/popover/description.cjs +1 -24
  126. package/build/popover/description.cjs.map +4 -4
  127. package/build/popover/index.cjs +3 -0
  128. package/build/popover/index.cjs.map +2 -2
  129. package/build/popover/popup.cjs +15 -15
  130. package/build/popover/popup.cjs.map +2 -2
  131. package/build/popover/portal.cjs +38 -0
  132. package/build/popover/portal.cjs.map +7 -0
  133. package/build/popover/root.cjs.map +1 -1
  134. package/build/popover/title.cjs +18 -4
  135. package/build/popover/title.cjs.map +3 -3
  136. package/build/popover/types.cjs.map +1 -1
  137. package/build/tabs/context.cjs +9 -22
  138. package/build/tabs/context.cjs.map +2 -2
  139. package/build/tabs/list.cjs +4 -4
  140. package/build/tabs/list.cjs.map +2 -2
  141. package/build/tabs/panel.cjs +19 -6
  142. package/build/tabs/panel.cjs.map +3 -3
  143. package/build/tabs/tab.cjs +4 -4
  144. package/build/tabs/tab.cjs.map +2 -2
  145. package/build/text/text.cjs +2 -2
  146. package/build/text/text.cjs.map +2 -2
  147. package/build/tooltip/index.cjs +3 -0
  148. package/build/tooltip/index.cjs.map +2 -2
  149. package/build/tooltip/popup.cjs +11 -14
  150. package/build/tooltip/popup.cjs.map +3 -3
  151. package/build/tooltip/portal.cjs +38 -0
  152. package/build/tooltip/portal.cjs.map +7 -0
  153. package/build/tooltip/provider.cjs +2 -2
  154. package/build/tooltip/provider.cjs.map +3 -3
  155. package/build/tooltip/root.cjs.map +3 -3
  156. package/build/tooltip/trigger.cjs +2 -2
  157. package/build/tooltip/trigger.cjs.map +3 -3
  158. package/build/tooltip/types.cjs.map +1 -1
  159. package/build/utils/create-overlay-modal-context.cjs +48 -0
  160. package/build/utils/create-overlay-modal-context.cjs.map +7 -0
  161. package/build/utils/create-overlay-title-validation.cjs +93 -0
  162. package/build/utils/create-overlay-title-validation.cjs.map +7 -0
  163. package/build/utils/render-portal-with-children.cjs +37 -0
  164. package/build/utils/render-portal-with-children.cjs.map +7 -0
  165. package/build/utils/use-deprioritized-initial-focus.cjs +8 -8
  166. package/build/utils/use-deprioritized-initial-focus.cjs.map +2 -2
  167. package/build/utils/use-overlay-scroll-state-attributes.cjs +140 -0
  168. package/build/utils/use-overlay-scroll-state-attributes.cjs.map +7 -0
  169. package/build/utils/use-schedule-validation.cjs +59 -0
  170. package/build/utils/use-schedule-validation.cjs.map +7 -0
  171. package/build/visually-hidden/visually-hidden.cjs +5 -1
  172. package/build/visually-hidden/visually-hidden.cjs.map +2 -2
  173. package/build-module/alert-dialog/index.mjs +2 -0
  174. package/build-module/alert-dialog/index.mjs.map +2 -2
  175. package/build-module/alert-dialog/popup.mjs +124 -56
  176. package/build-module/alert-dialog/popup.mjs.map +3 -3
  177. package/build-module/alert-dialog/portal.mjs +13 -0
  178. package/build-module/alert-dialog/portal.mjs.map +7 -0
  179. package/build-module/collapsible-card/content.mjs +9 -5
  180. package/build-module/collapsible-card/content.mjs.map +2 -2
  181. package/build-module/collapsible-card/header.mjs +14 -4
  182. package/build-module/collapsible-card/header.mjs.map +3 -3
  183. package/build-module/dialog/content.mjs +50 -0
  184. package/build-module/dialog/content.mjs.map +7 -0
  185. package/build-module/dialog/context.mjs +10 -51
  186. package/build-module/dialog/context.mjs.map +2 -2
  187. package/build-module/dialog/description.mjs +34 -0
  188. package/build-module/dialog/description.mjs.map +7 -0
  189. package/build-module/dialog/footer.mjs +5 -4
  190. package/build-module/dialog/footer.mjs.map +2 -2
  191. package/build-module/dialog/header.mjs +5 -4
  192. package/build-module/dialog/header.mjs.map +2 -2
  193. package/build-module/dialog/index.mjs +6 -0
  194. package/build-module/dialog/index.mjs.map +2 -2
  195. package/build-module/dialog/popup.mjs +23 -11
  196. package/build-module/dialog/popup.mjs.map +2 -2
  197. package/build-module/dialog/portal.mjs +13 -0
  198. package/build-module/dialog/portal.mjs.map +7 -0
  199. package/build-module/dialog/root.mjs +3 -2
  200. package/build-module/dialog/root.mjs.map +2 -2
  201. package/build-module/dialog/title.mjs +10 -7
  202. package/build-module/dialog/title.mjs.map +2 -2
  203. package/build-module/drawer/action.mjs +23 -0
  204. package/build-module/drawer/action.mjs.map +7 -0
  205. package/build-module/drawer/close-icon.mjs +33 -0
  206. package/build-module/drawer/close-icon.mjs.map +7 -0
  207. package/build-module/drawer/content.mjs +51 -0
  208. package/build-module/drawer/content.mjs.map +7 -0
  209. package/build-module/drawer/context.mjs +16 -0
  210. package/build-module/drawer/context.mjs.map +7 -0
  211. package/build-module/drawer/description.mjs +22 -0
  212. package/build-module/drawer/description.mjs.map +7 -0
  213. package/build-module/drawer/footer.mjs +30 -0
  214. package/build-module/drawer/footer.mjs.map +7 -0
  215. package/build-module/drawer/header.mjs +30 -0
  216. package/build-module/drawer/header.mjs.map +7 -0
  217. package/build-module/drawer/index.mjs +26 -0
  218. package/build-module/drawer/index.mjs.map +7 -0
  219. package/build-module/drawer/popup.mjs +70 -0
  220. package/build-module/drawer/popup.mjs.map +7 -0
  221. package/build-module/drawer/portal.mjs +13 -0
  222. package/build-module/drawer/portal.mjs.map +7 -0
  223. package/build-module/drawer/root.mjs +24 -0
  224. package/build-module/drawer/root.mjs.map +7 -0
  225. package/build-module/drawer/title.mjs +45 -0
  226. package/build-module/drawer/title.mjs.map +7 -0
  227. package/build-module/drawer/trigger.mjs +13 -0
  228. package/build-module/drawer/trigger.mjs.map +7 -0
  229. package/build-module/drawer/types.mjs +1 -0
  230. package/build-module/form/primitives/autocomplete/clear.mjs +37 -0
  231. package/build-module/form/primitives/autocomplete/clear.mjs.map +7 -0
  232. package/build-module/form/primitives/autocomplete/collection.mjs +13 -0
  233. package/build-module/form/primitives/autocomplete/collection.mjs.map +7 -0
  234. package/build-module/form/primitives/autocomplete/empty.mjs +32 -0
  235. package/build-module/form/primitives/autocomplete/empty.mjs.map +7 -0
  236. package/build-module/form/primitives/autocomplete/index.mjs +28 -0
  237. package/build-module/form/primitives/autocomplete/index.mjs.map +7 -0
  238. package/build-module/form/primitives/autocomplete/input-group.mjs +11 -0
  239. package/build-module/form/primitives/autocomplete/input-group.mjs.map +7 -0
  240. package/build-module/form/primitives/autocomplete/input.mjs +22 -0
  241. package/build-module/form/primitives/autocomplete/input.mjs.map +7 -0
  242. package/build-module/form/primitives/autocomplete/item.mjs +46 -0
  243. package/build-module/form/primitives/autocomplete/item.mjs.map +7 -0
  244. package/build-module/form/primitives/autocomplete/list-body.mjs +32 -0
  245. package/build-module/form/primitives/autocomplete/list-body.mjs.map +7 -0
  246. package/build-module/form/primitives/autocomplete/list.mjs +32 -0
  247. package/build-module/form/primitives/autocomplete/list.mjs.map +7 -0
  248. package/build-module/form/primitives/autocomplete/popup.mjs +69 -0
  249. package/build-module/form/primitives/autocomplete/popup.mjs.map +7 -0
  250. package/build-module/form/primitives/autocomplete/portal.mjs +13 -0
  251. package/build-module/form/primitives/autocomplete/portal.mjs.map +7 -0
  252. package/build-module/form/primitives/autocomplete/root.mjs +10 -0
  253. package/build-module/form/primitives/autocomplete/root.mjs.map +7 -0
  254. package/build-module/form/primitives/autocomplete/types.mjs +1 -0
  255. package/build-module/form/primitives/autocomplete/value.mjs +10 -0
  256. package/build-module/form/primitives/autocomplete/value.mjs.map +7 -0
  257. package/build-module/form/primitives/index.mjs +2 -0
  258. package/build-module/form/primitives/index.mjs.map +2 -2
  259. package/build-module/form/primitives/select/index.mjs +2 -0
  260. package/build-module/form/primitives/select/index.mjs.map +2 -2
  261. package/build-module/form/primitives/select/item.mjs +4 -5
  262. package/build-module/form/primitives/select/item.mjs.map +2 -2
  263. package/build-module/form/primitives/select/popup.mjs +12 -11
  264. package/build-module/form/primitives/select/popup.mjs.map +2 -2
  265. package/build-module/form/primitives/select/portal.mjs +13 -0
  266. package/build-module/form/primitives/select/portal.mjs.map +7 -0
  267. package/build-module/index.mjs +2 -0
  268. package/build-module/index.mjs.map +2 -2
  269. package/build-module/link/link.mjs +8 -18
  270. package/build-module/link/link.mjs.map +2 -2
  271. package/build-module/notice/action-button.mjs +3 -3
  272. package/build-module/notice/action-button.mjs.map +2 -2
  273. package/build-module/notice/action-link.mjs +8 -7
  274. package/build-module/notice/action-link.mjs.map +2 -2
  275. package/build-module/notice/actions.mjs +3 -3
  276. package/build-module/notice/actions.mjs.map +2 -2
  277. package/build-module/notice/close-icon.mjs +3 -3
  278. package/build-module/notice/close-icon.mjs.map +2 -2
  279. package/build-module/notice/description.mjs +3 -3
  280. package/build-module/notice/description.mjs.map +2 -2
  281. package/build-module/notice/root.mjs +3 -3
  282. package/build-module/notice/root.mjs.map +2 -2
  283. package/build-module/notice/title.mjs +3 -3
  284. package/build-module/notice/title.mjs.map +2 -2
  285. package/build-module/popover/arrow.mjs +4 -4
  286. package/build-module/popover/arrow.mjs.map +2 -2
  287. package/build-module/popover/context.mjs +4 -51
  288. package/build-module/popover/context.mjs.map +2 -2
  289. package/build-module/popover/description.mjs +1 -14
  290. package/build-module/popover/description.mjs.map +3 -3
  291. package/build-module/popover/index.mjs +2 -0
  292. package/build-module/popover/index.mjs.map +2 -2
  293. package/build-module/popover/popup.mjs +16 -16
  294. package/build-module/popover/popup.mjs.map +2 -2
  295. package/build-module/popover/portal.mjs +13 -0
  296. package/build-module/popover/portal.mjs.map +7 -0
  297. package/build-module/popover/root.mjs.map +1 -1
  298. package/build-module/popover/title.mjs +19 -5
  299. package/build-module/popover/title.mjs.map +3 -3
  300. package/build-module/tabs/context.mjs +11 -24
  301. package/build-module/tabs/context.mjs.map +2 -2
  302. package/build-module/tabs/list.mjs +4 -4
  303. package/build-module/tabs/list.mjs.map +2 -2
  304. package/build-module/tabs/panel.mjs +19 -6
  305. package/build-module/tabs/panel.mjs.map +3 -3
  306. package/build-module/tabs/tab.mjs +4 -4
  307. package/build-module/tabs/tab.mjs.map +2 -2
  308. package/build-module/text/text.mjs +2 -2
  309. package/build-module/text/text.mjs.map +2 -2
  310. package/build-module/tooltip/index.mjs +2 -0
  311. package/build-module/tooltip/index.mjs.map +2 -2
  312. package/build-module/tooltip/popup.mjs +14 -17
  313. package/build-module/tooltip/popup.mjs.map +2 -2
  314. package/build-module/tooltip/portal.mjs +13 -0
  315. package/build-module/tooltip/portal.mjs.map +7 -0
  316. package/build-module/tooltip/provider.mjs +3 -3
  317. package/build-module/tooltip/provider.mjs.map +2 -2
  318. package/build-module/tooltip/root.mjs +2 -2
  319. package/build-module/tooltip/root.mjs.map +2 -2
  320. package/build-module/tooltip/trigger.mjs +3 -3
  321. package/build-module/tooltip/trigger.mjs.map +2 -2
  322. package/build-module/utils/create-overlay-modal-context.mjs +23 -0
  323. package/build-module/utils/create-overlay-modal-context.mjs.map +7 -0
  324. package/build-module/utils/create-overlay-title-validation.mjs +75 -0
  325. package/build-module/utils/create-overlay-title-validation.mjs.map +7 -0
  326. package/build-module/utils/render-portal-with-children.mjs +12 -0
  327. package/build-module/utils/render-portal-with-children.mjs.map +7 -0
  328. package/build-module/utils/use-deprioritized-initial-focus.mjs +9 -9
  329. package/build-module/utils/use-deprioritized-initial-focus.mjs.map +2 -2
  330. package/build-module/utils/use-overlay-scroll-state-attributes.mjs +114 -0
  331. package/build-module/utils/use-overlay-scroll-state-attributes.mjs.map +7 -0
  332. package/build-module/utils/use-schedule-validation.mjs +34 -0
  333. package/build-module/utils/use-schedule-validation.mjs.map +7 -0
  334. package/build-module/visually-hidden/visually-hidden.mjs +5 -1
  335. package/build-module/visually-hidden/visually-hidden.mjs.map +2 -2
  336. package/build-types/alert-dialog/index.d.ts +1 -0
  337. package/build-types/alert-dialog/index.d.ts.map +1 -1
  338. package/build-types/alert-dialog/popup.d.ts.map +1 -1
  339. package/build-types/alert-dialog/portal.d.ts +9 -0
  340. package/build-types/alert-dialog/portal.d.ts.map +1 -0
  341. package/build-types/alert-dialog/stories/index.story.d.ts +29 -1
  342. package/build-types/alert-dialog/stories/index.story.d.ts.map +1 -1
  343. package/build-types/alert-dialog/types.d.ts +25 -3
  344. package/build-types/alert-dialog/types.d.ts.map +1 -1
  345. package/build-types/badge/stories/index.story.d.ts.map +1 -1
  346. package/build-types/card/stories/index.story.d.ts.map +1 -1
  347. package/build-types/collapsible/stories/index.story.d.ts.map +1 -1
  348. package/build-types/collapsible-card/content.d.ts.map +1 -1
  349. package/build-types/collapsible-card/header.d.ts.map +1 -1
  350. package/build-types/collapsible-card/stories/index.story.d.ts.map +1 -1
  351. package/build-types/dialog/content.d.ts +17 -0
  352. package/build-types/dialog/content.d.ts.map +1 -0
  353. package/build-types/dialog/context.d.ts +11 -16
  354. package/build-types/dialog/context.d.ts.map +1 -1
  355. package/build-types/dialog/description.d.ts +9 -0
  356. package/build-types/dialog/description.d.ts.map +1 -0
  357. package/build-types/dialog/footer.d.ts +8 -1
  358. package/build-types/dialog/footer.d.ts.map +1 -1
  359. package/build-types/dialog/header.d.ts +8 -1
  360. package/build-types/dialog/header.d.ts.map +1 -1
  361. package/build-types/dialog/index.d.ts +4 -1
  362. package/build-types/dialog/index.d.ts.map +1 -1
  363. package/build-types/dialog/popup.d.ts +3 -0
  364. package/build-types/dialog/popup.d.ts.map +1 -1
  365. package/build-types/dialog/portal.d.ts +10 -0
  366. package/build-types/dialog/portal.d.ts.map +1 -0
  367. package/build-types/dialog/root.d.ts +14 -4
  368. package/build-types/dialog/root.d.ts.map +1 -1
  369. package/build-types/dialog/stories/index.story.d.ts +29 -6
  370. package/build-types/dialog/stories/index.story.d.ts.map +1 -1
  371. package/build-types/dialog/title.d.ts.map +1 -1
  372. package/build-types/dialog/types.d.ts +60 -7
  373. package/build-types/dialog/types.d.ts.map +1 -1
  374. package/build-types/drawer/action.d.ts +8 -0
  375. package/build-types/drawer/action.d.ts.map +1 -0
  376. package/build-types/drawer/close-icon.d.ts +8 -0
  377. package/build-types/drawer/close-icon.d.ts.map +1 -0
  378. package/build-types/drawer/content.d.ts +21 -0
  379. package/build-types/drawer/content.d.ts.map +1 -0
  380. package/build-types/drawer/context.d.ts +20 -0
  381. package/build-types/drawer/context.d.ts.map +1 -0
  382. package/build-types/drawer/description.d.ts +9 -0
  383. package/build-types/drawer/description.d.ts.map +1 -0
  384. package/build-types/drawer/footer.d.ts +15 -0
  385. package/build-types/drawer/footer.d.ts.map +1 -0
  386. package/build-types/drawer/header.d.ts +15 -0
  387. package/build-types/drawer/header.d.ts.map +1 -0
  388. package/build-types/drawer/index.d.ts +13 -0
  389. package/build-types/drawer/index.d.ts.map +1 -0
  390. package/build-types/drawer/popup.d.ts +16 -0
  391. package/build-types/drawer/popup.d.ts.map +1 -0
  392. package/build-types/drawer/portal.d.ts +10 -0
  393. package/build-types/drawer/portal.d.ts.map +1 -0
  394. package/build-types/drawer/root.d.ts +21 -0
  395. package/build-types/drawer/root.d.ts.map +1 -0
  396. package/build-types/drawer/stories/index.story.d.ts +63 -0
  397. package/build-types/drawer/stories/index.story.d.ts.map +1 -0
  398. package/build-types/drawer/test/index.test.d.ts +2 -0
  399. package/build-types/drawer/test/index.test.d.ts.map +1 -0
  400. package/build-types/drawer/title.d.ts +22 -0
  401. package/build-types/drawer/title.d.ts.map +1 -0
  402. package/build-types/drawer/trigger.d.ts +7 -0
  403. package/build-types/drawer/trigger.d.ts.map +1 -0
  404. package/build-types/drawer/types.d.ts +146 -0
  405. package/build-types/drawer/types.d.ts.map +1 -0
  406. package/build-types/empty-state/stories/index.story.d.ts +1 -1
  407. package/build-types/empty-state/stories/index.story.d.ts.map +1 -1
  408. package/build-types/form/input-control/stories/index.story.d.ts +1 -1
  409. package/build-types/form/input-control/stories/index.story.d.ts.map +1 -1
  410. package/build-types/form/primitives/autocomplete/clear.d.ts +13 -0
  411. package/build-types/form/primitives/autocomplete/clear.d.ts.map +1 -0
  412. package/build-types/form/primitives/autocomplete/collection.d.ts +3 -0
  413. package/build-types/form/primitives/autocomplete/collection.d.ts.map +1 -0
  414. package/build-types/form/primitives/autocomplete/empty.d.ts +10 -0
  415. package/build-types/form/primitives/autocomplete/empty.d.ts.map +1 -0
  416. package/build-types/form/primitives/autocomplete/index.d.ts +13 -0
  417. package/build-types/form/primitives/autocomplete/index.d.ts.map +1 -0
  418. package/build-types/form/primitives/autocomplete/input-group.d.ts +16 -0
  419. package/build-types/form/primitives/autocomplete/input-group.d.ts.map +1 -0
  420. package/build-types/form/primitives/autocomplete/input.d.ts +3 -0
  421. package/build-types/form/primitives/autocomplete/input.d.ts.map +1 -0
  422. package/build-types/form/primitives/autocomplete/item.d.ts +10 -0
  423. package/build-types/form/primitives/autocomplete/item.d.ts.map +1 -0
  424. package/build-types/form/primitives/autocomplete/list-body.d.ts +13 -0
  425. package/build-types/form/primitives/autocomplete/list-body.d.ts.map +1 -0
  426. package/build-types/form/primitives/autocomplete/list.d.ts +11 -0
  427. package/build-types/form/primitives/autocomplete/list.d.ts.map +1 -0
  428. package/build-types/form/primitives/autocomplete/popup.d.ts +11 -0
  429. package/build-types/form/primitives/autocomplete/popup.d.ts.map +1 -0
  430. package/build-types/form/primitives/autocomplete/portal.d.ts +8 -0
  431. package/build-types/form/primitives/autocomplete/portal.d.ts.map +1 -0
  432. package/build-types/form/primitives/autocomplete/root.d.ts +8 -0
  433. package/build-types/form/primitives/autocomplete/root.d.ts.map +1 -0
  434. package/build-types/form/primitives/autocomplete/stories/fixtures.d.ts +8 -0
  435. package/build-types/form/primitives/autocomplete/stories/fixtures.d.ts.map +1 -0
  436. package/build-types/form/primitives/autocomplete/stories/index.story.d.ts +41 -0
  437. package/build-types/form/primitives/autocomplete/stories/index.story.d.ts.map +1 -0
  438. package/build-types/form/primitives/autocomplete/test/index.test.d.ts +2 -0
  439. package/build-types/form/primitives/autocomplete/test/index.test.d.ts.map +1 -0
  440. package/build-types/form/primitives/autocomplete/types.d.ts +44 -0
  441. package/build-types/form/primitives/autocomplete/types.d.ts.map +1 -0
  442. package/build-types/form/primitives/autocomplete/value.d.ts +3 -0
  443. package/build-types/form/primitives/autocomplete/value.d.ts.map +1 -0
  444. package/build-types/form/primitives/field/stories/index.story.d.ts +1 -1
  445. package/build-types/form/primitives/field/stories/index.story.d.ts.map +1 -1
  446. package/build-types/form/primitives/fieldset/stories/index.story.d.ts +1 -1
  447. package/build-types/form/primitives/fieldset/stories/index.story.d.ts.map +1 -1
  448. package/build-types/form/primitives/index.d.ts +1 -0
  449. package/build-types/form/primitives/index.d.ts.map +1 -1
  450. package/build-types/form/primitives/input/stories/index.story.d.ts +1 -1
  451. package/build-types/form/primitives/input/stories/index.story.d.ts.map +1 -1
  452. package/build-types/form/primitives/input-layout/stories/index.story.d.ts +1 -1
  453. package/build-types/form/primitives/input-layout/stories/index.story.d.ts.map +1 -1
  454. package/build-types/form/primitives/select/index.d.ts +1 -0
  455. package/build-types/form/primitives/select/index.d.ts.map +1 -1
  456. package/build-types/form/primitives/select/item.d.ts.map +1 -1
  457. package/build-types/form/primitives/select/popup.d.ts +1 -2
  458. package/build-types/form/primitives/select/popup.d.ts.map +1 -1
  459. package/build-types/form/primitives/select/portal.d.ts +8 -0
  460. package/build-types/form/primitives/select/portal.d.ts.map +1 -0
  461. package/build-types/form/primitives/select/stories/index.story.d.ts +14 -6
  462. package/build-types/form/primitives/select/stories/index.story.d.ts.map +1 -1
  463. package/build-types/form/primitives/select/types.d.ts +7 -2
  464. package/build-types/form/primitives/select/types.d.ts.map +1 -1
  465. package/build-types/index.d.ts +1 -0
  466. package/build-types/index.d.ts.map +1 -1
  467. package/build-types/link/link.d.ts.map +1 -1
  468. package/build-types/link/stories/index.story.d.ts +2 -3
  469. package/build-types/link/stories/index.story.d.ts.map +1 -1
  470. package/build-types/link/types.d.ts +1 -2
  471. package/build-types/link/types.d.ts.map +1 -1
  472. package/build-types/notice/action-link.d.ts.map +1 -1
  473. package/build-types/popover/context.d.ts +6 -13
  474. package/build-types/popover/context.d.ts.map +1 -1
  475. package/build-types/popover/description.d.ts +0 -1
  476. package/build-types/popover/description.d.ts.map +1 -1
  477. package/build-types/popover/index.d.ts +2 -1
  478. package/build-types/popover/index.d.ts.map +1 -1
  479. package/build-types/popover/popup.d.ts +3 -2
  480. package/build-types/popover/popup.d.ts.map +1 -1
  481. package/build-types/popover/portal.d.ts +9 -0
  482. package/build-types/popover/portal.d.ts.map +1 -0
  483. package/build-types/popover/root.d.ts +2 -2
  484. package/build-types/popover/stories/index.story.d.ts +23 -15
  485. package/build-types/popover/stories/index.story.d.ts.map +1 -1
  486. package/build-types/popover/title.d.ts.map +1 -1
  487. package/build-types/popover/types.d.ts +8 -15
  488. package/build-types/popover/types.d.ts.map +1 -1
  489. package/build-types/stack/stories/index.story.d.ts.map +1 -1
  490. package/build-types/tabs/context.d.ts.map +1 -1
  491. package/build-types/tabs/panel.d.ts.map +1 -1
  492. package/build-types/tabs/stories/index.story.d.ts +1 -1
  493. package/build-types/tabs/stories/index.story.d.ts.map +1 -1
  494. package/build-types/text/stories/index.story.d.ts.map +1 -1
  495. package/build-types/tooltip/index.d.ts +2 -1
  496. package/build-types/tooltip/index.d.ts.map +1 -1
  497. package/build-types/tooltip/popup.d.ts.map +1 -1
  498. package/build-types/tooltip/portal.d.ts +8 -0
  499. package/build-types/tooltip/portal.d.ts.map +1 -0
  500. package/build-types/tooltip/provider.d.ts +1 -1
  501. package/build-types/tooltip/provider.d.ts.map +1 -1
  502. package/build-types/tooltip/stories/index.story.d.ts +18 -1
  503. package/build-types/tooltip/stories/index.story.d.ts.map +1 -1
  504. package/build-types/tooltip/stories/usage-guidelines.story.d.ts.map +1 -1
  505. package/build-types/tooltip/trigger.d.ts.map +1 -1
  506. package/build-types/tooltip/types.d.ts +11 -7
  507. package/build-types/tooltip/types.d.ts.map +1 -1
  508. package/build-types/utils/create-overlay-modal-context.d.ts +14 -0
  509. package/build-types/utils/create-overlay-modal-context.d.ts.map +1 -0
  510. package/build-types/utils/create-overlay-title-validation.d.ts +15 -0
  511. package/build-types/utils/create-overlay-title-validation.d.ts.map +1 -0
  512. package/build-types/utils/render-portal-with-children.d.ts +16 -0
  513. package/build-types/utils/render-portal-with-children.d.ts.map +1 -0
  514. package/build-types/utils/use-deprioritized-initial-focus.d.ts +9 -8
  515. package/build-types/utils/use-deprioritized-initial-focus.d.ts.map +1 -1
  516. package/build-types/utils/use-overlay-scroll-state-attributes.d.ts +85 -0
  517. package/build-types/utils/use-overlay-scroll-state-attributes.d.ts.map +1 -0
  518. package/build-types/utils/use-schedule-validation.d.ts +13 -0
  519. package/build-types/utils/use-schedule-validation.d.ts.map +1 -0
  520. package/build-types/visually-hidden/stories/index.story.d.ts.map +1 -1
  521. package/build-types/visually-hidden/visually-hidden.d.ts +4 -20
  522. package/build-types/visually-hidden/visually-hidden.d.ts.map +1 -1
  523. package/package.json +12 -12
  524. package/src/alert-dialog/index.ts +1 -0
  525. package/src/alert-dialog/popup.tsx +114 -45
  526. package/src/alert-dialog/portal.tsx +17 -0
  527. package/src/alert-dialog/stories/index.story.tsx +123 -3
  528. package/src/alert-dialog/style.module.css +13 -4
  529. package/src/alert-dialog/test/index.test.tsx +329 -3
  530. package/src/alert-dialog/types.ts +30 -3
  531. package/src/badge/stories/choosing-intent.story.tsx +1 -1
  532. package/src/badge/stories/index.story.tsx +1 -0
  533. package/src/card/stories/index.story.tsx +1 -0
  534. package/src/collapsible/stories/index.story.tsx +1 -0
  535. package/src/collapsible-card/content.tsx +12 -1
  536. package/src/collapsible-card/header.tsx +2 -0
  537. package/src/collapsible-card/stories/index.story.tsx +1 -0
  538. package/src/collapsible-card/style.module.css +16 -4
  539. package/src/dialog/content.tsx +47 -0
  540. package/src/dialog/context.tsx +14 -98
  541. package/src/dialog/description.tsx +27 -0
  542. package/src/dialog/footer.tsx +10 -2
  543. package/src/dialog/header.tsx +10 -2
  544. package/src/dialog/index.ts +16 -1
  545. package/src/dialog/popup.tsx +28 -8
  546. package/src/dialog/portal.tsx +18 -0
  547. package/src/dialog/root.tsx +22 -5
  548. package/src/dialog/stories/index.story.tsx +195 -51
  549. package/src/dialog/style.module.css +73 -23
  550. package/src/dialog/test/index.test.tsx +849 -149
  551. package/src/dialog/title.tsx +6 -4
  552. package/src/dialog/types.ts +64 -6
  553. package/src/drawer/action.tsx +28 -0
  554. package/src/drawer/close-icon.tsx +33 -0
  555. package/src/drawer/content.tsx +50 -0
  556. package/src/drawer/context.tsx +29 -0
  557. package/src/drawer/description.tsx +25 -0
  558. package/src/drawer/footer.tsx +34 -0
  559. package/src/drawer/header.tsx +34 -0
  560. package/src/drawer/index.ts +25 -0
  561. package/src/drawer/popup.tsx +100 -0
  562. package/src/drawer/portal.tsx +18 -0
  563. package/src/drawer/root.tsx +41 -0
  564. package/src/drawer/stories/index.story.tsx +543 -0
  565. package/src/drawer/style.module.css +324 -0
  566. package/src/drawer/test/index.test.tsx +1097 -0
  567. package/src/drawer/title.tsx +53 -0
  568. package/src/drawer/trigger.tsx +14 -0
  569. package/src/drawer/types.ts +174 -0
  570. package/src/empty-state/stories/index.story.tsx +2 -1
  571. package/src/form/input-control/stories/index.story.tsx +4 -1
  572. package/src/form/primitives/autocomplete/clear.tsx +35 -0
  573. package/src/form/primitives/autocomplete/collection.tsx +13 -0
  574. package/src/form/primitives/autocomplete/empty.tsx +17 -0
  575. package/src/form/primitives/autocomplete/index.ts +12 -0
  576. package/src/form/primitives/autocomplete/input-group.tsx +16 -0
  577. package/src/form/primitives/autocomplete/input.tsx +20 -0
  578. package/src/form/primitives/autocomplete/item.tsx +24 -0
  579. package/src/form/primitives/autocomplete/list-body.tsx +23 -0
  580. package/src/form/primitives/autocomplete/list.tsx +17 -0
  581. package/src/form/primitives/autocomplete/popup.tsx +42 -0
  582. package/src/form/primitives/autocomplete/portal.tsx +16 -0
  583. package/src/form/primitives/autocomplete/root.tsx +11 -0
  584. package/src/form/primitives/autocomplete/stories/fixtures.ts +35 -0
  585. package/src/form/primitives/autocomplete/stories/index.story.tsx +437 -0
  586. package/src/form/primitives/autocomplete/style.module.css +7 -0
  587. package/src/form/primitives/autocomplete/test/index.test.tsx +162 -0
  588. package/src/form/primitives/autocomplete/types.ts +74 -0
  589. package/src/form/primitives/autocomplete/value.tsx +6 -0
  590. package/src/form/primitives/field/stories/index.story.tsx +1 -1
  591. package/src/form/primitives/fieldset/stories/index.story.tsx +1 -1
  592. package/src/form/primitives/index.ts +1 -0
  593. package/src/form/primitives/input/stories/index.story.tsx +2 -1
  594. package/src/form/primitives/input-layout/stories/index.story.tsx +2 -1
  595. package/src/form/primitives/select/index.ts +1 -0
  596. package/src/form/primitives/select/item.tsx +0 -1
  597. package/src/form/primitives/select/popup.tsx +34 -37
  598. package/src/form/primitives/select/portal.tsx +16 -0
  599. package/src/form/primitives/select/stories/index.story.tsx +21 -7
  600. package/src/form/primitives/select/test/index.test.tsx +7 -3
  601. package/src/form/primitives/select/types.ts +9 -2
  602. package/src/index.ts +1 -0
  603. package/src/link/link.tsx +12 -26
  604. package/src/link/stories/index.story.tsx +6 -11
  605. package/src/link/style.module.css +5 -17
  606. package/src/link/test/index.test.tsx +31 -27
  607. package/src/link/types.ts +1 -2
  608. package/src/notice/action-link.tsx +7 -4
  609. package/src/notice/style.module.css +5 -5
  610. package/src/popover/context.tsx +6 -89
  611. package/src/popover/description.tsx +1 -5
  612. package/src/popover/index.ts +2 -1
  613. package/src/popover/popup.tsx +17 -15
  614. package/src/popover/portal.tsx +17 -0
  615. package/src/popover/root.tsx +2 -2
  616. package/src/popover/stories/index.story.tsx +56 -25
  617. package/src/popover/style.module.css +33 -4
  618. package/src/popover/test/index.test.tsx +189 -74
  619. package/src/popover/title.tsx +9 -5
  620. package/src/popover/types.ts +10 -15
  621. package/src/stack/stories/index.story.tsx +1 -0
  622. package/src/tabs/context.tsx +14 -34
  623. package/src/tabs/panel.tsx +7 -2
  624. package/src/tabs/stories/index.story.tsx +2 -1
  625. package/src/tabs/style.module.css +0 -17
  626. package/src/tabs/test/index.test.tsx +7 -3
  627. package/src/text/stories/index.story.tsx +1 -0
  628. package/src/text/text.tsx +2 -2
  629. package/src/tooltip/index.ts +2 -1
  630. package/src/tooltip/popup.tsx +24 -28
  631. package/src/tooltip/portal.tsx +16 -0
  632. package/src/tooltip/provider.tsx +3 -3
  633. package/src/tooltip/root.tsx +2 -2
  634. package/src/tooltip/stories/index.story.tsx +39 -1
  635. package/src/tooltip/stories/usage-guidelines.story.tsx +5 -1
  636. package/src/tooltip/style.module.css +12 -0
  637. package/src/tooltip/test/index.test.tsx +9 -3
  638. package/src/tooltip/trigger.tsx +3 -7
  639. package/src/tooltip/types.ts +13 -7
  640. package/src/utils/create-overlay-modal-context.tsx +34 -0
  641. package/src/utils/create-overlay-title-validation.tsx +116 -0
  642. package/src/utils/css/item-popup.module.css +9 -11
  643. package/src/utils/css/overlay-chrome.module.css +222 -0
  644. package/src/utils/render-portal-with-children.ts +27 -0
  645. package/src/utils/test/use-deprioritized-initial-focus.test.tsx +3 -3
  646. package/src/utils/use-deprioritized-initial-focus.ts +23 -17
  647. package/src/utils/use-overlay-scroll-state-attributes.ts +272 -0
  648. package/src/utils/use-schedule-validation.ts +45 -0
  649. package/src/visually-hidden/stories/index.story.tsx +1 -0
  650. package/src/visually-hidden/visually-hidden.tsx +9 -21
  651. package/build/types/css-modules.d.cjs +0 -2
  652. package/build/types/react.d.cjs +0 -5
  653. package/build/types/react.d.cjs.map +0 -7
  654. package/build-module/types/css-modules.d.mjs +0 -1
  655. package/build-module/types/react.d.mjs +0 -3
  656. package/build-module/types/react.d.mjs.map +0 -7
  657. package/src/types/css-modules.d.ts +0 -4
  658. package/src/types/react.d.ts +0 -7
  659. /package/build-module/{types/css-modules.d.mjs.map → drawer/types.mjs.map} +0 -0
  660. /package/{build/types/css-modules.d.cjs.map → build-module/form/primitives/autocomplete/types.mjs.map} +0 -0
@@ -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,9 @@ 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`. Portal merging is
7
+ * handled by `renderPortalWithChildren` (shared with other overlay `Popup`s).
5
8
  */
6
9
  declare const Popup: import("react").ForwardRefExoticComponent<PopupProps & import("react").RefAttributes<HTMLDivElement>>;
7
10
  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;;;;;;GAMG;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").AlertDialogPortalProps, "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,sNAIX,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,CAoBnC,CAAC;AACF,eAAe,IAAI,CAAC;AAEpB,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 +1 @@
1
- {"version":3,"file":"title.d.ts","sourceRoot":"","sources":["../../src/dialog/title.tsx"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAE1C;;;;;;;;;;;;;;;;;GAiBG;AACH,QAAA,MAAM,KAAK,2GAsBV,CAAC;AAEF,OAAO,EAAE,KAAK,EAAE,CAAC"}
1
+ {"version":3,"file":"title.d.ts","sourceRoot":"","sources":["../../src/dialog/title.tsx"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAE1C;;;;;;;;;;;;;;;;;GAiBG;AACH,QAAA,MAAM,KAAK,2GAwBV,CAAC;AAEF,OAAO,EAAE,KAAK,EAAE,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,21 @@
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 Base UI's
9
+ * swipe-dismiss-on-scroll-edge logic will not engage on up/down drawers.
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
+ * Renders Base UI's `_Drawer.Content` so swipe-dismiss wiring remains
17
+ * wired automatically.
18
+ */
19
+ declare const Content: import("react").ForwardRefExoticComponent<ContentProps & import("react").RefAttributes<HTMLDivElement>>;
20
+ export { Content };
21
+ //# sourceMappingURL=content.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"content.d.ts","sourceRoot":"","sources":["../../src/drawer/content.tsx"],"names":[],"mappings":"AAOA,OAAO,KAAK,EAAE,YAAY,EAAE,MAAM,SAAS,CAAC;AAE5C;;;;;;;;;;;;;;;;GAgBG;AACH,QAAA,MAAM,OAAO,yGAqBZ,CAAC;AAEF,OAAO,EAAE,OAAO,EAAE,CAAC"}
@@ -0,0 +1,20 @@
1
+ export declare const DrawerModalProvider: ({ modal, children, }: {
2
+ modal: boolean | "trap-focus" | undefined;
3
+ children: React.ReactNode;
4
+ }) => import("react").JSX.Element;
5
+ export declare const useDrawerModal: () => boolean | "trap-focus" | 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"}
@@ -0,0 +1,9 @@
1
+ import type { DescriptionProps } from './types';
2
+ /**
3
+ * Renders an optional paragraph that describes the drawer 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/drawer/description.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EAAE,gBAAgB,EAAE,MAAM,SAAS,CAAC;AAEhD;;;;GAIG;AACH,QAAA,MAAM,WAAW,mHAYhB,CAAC;AAEF,OAAO,EAAE,WAAW,EAAE,CAAC"}
@@ -0,0 +1,15 @@
1
+ import type { FooterProps } from './types';
2
+ /**
3
+ * Renders the footer section of the drawer, typically containing
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* `Drawer.Content`.
12
+ */
13
+ declare const Footer: import("react").ForwardRefExoticComponent<FooterProps & import("react").RefAttributes<HTMLElement>>;
14
+ export { Footer };
15
+ //# sourceMappingURL=footer.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"footer.d.ts","sourceRoot":"","sources":["../../src/drawer/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"}
@@ -0,0 +1,15 @@
1
+ import type { HeaderProps } from './types';
2
+ /**
3
+ * Renders the header section of the drawer, typically containing
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* `Drawer.Content`.
12
+ */
13
+ declare const Header: import("react").ForwardRefExoticComponent<HeaderProps & import("react").RefAttributes<HTMLElement>>;
14
+ export { Header };
15
+ //# sourceMappingURL=header.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"header.d.ts","sourceRoot":"","sources":["../../src/drawer/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"}
@@ -0,0 +1,13 @@
1
+ import { Action } from './action';
2
+ import { CloseIcon } from './close-icon';
3
+ import { Content } from './content';
4
+ import { Description } from './description';
5
+ import { Footer } from './footer';
6
+ import { Header } from './header';
7
+ import { Popup } from './popup';
8
+ import { Portal } from './portal';
9
+ import { Root } from './root';
10
+ import { Title } from './title';
11
+ import { Trigger } from './trigger';
12
+ export { Action, CloseIcon, Content, Description, Footer, Header, Popup, Portal, Root, Title, Trigger, };
13
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/drawer/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"}
@@ -0,0 +1,16 @@
1
+ import type { PopupProps } from './types';
2
+ /**
3
+ * Renders the drawer popup element that contains the drawer content.
4
+ * Uses a portal to render outside the DOM hierarchy.
5
+ *
6
+ * When `portal` is omitted, defaults to `Drawer.Portal`. Portal merging is
7
+ * handled by `renderPortalWithChildren` (shared with other overlay `Popup`s).
8
+ *
9
+ * The popup is a flex column; scroll ownership lives on `Drawer.Content`,
10
+ * which children are expected to render. Without it, long body content will
11
+ * clip instead of scrolling and Base UI's swipe-dismiss-on-scroll-edge
12
+ * logic on up/down drawers cannot engage.
13
+ */
14
+ declare const Popup: import("react").ForwardRefExoticComponent<PopupProps & import("react").RefAttributes<HTMLDivElement>>;
15
+ export { Popup };
16
+ //# sourceMappingURL=popup.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"popup.d.ts","sourceRoot":"","sources":["../../src/drawer/popup.tsx"],"names":[],"mappings":"AAeA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAO1C;;;;;;;;;;;GAWG;AACH,QAAA,MAAM,KAAK,uGA+DR,CAAC;AAEJ,OAAO,EAAE,KAAK,EAAE,CAAC"}
@@ -0,0 +1,10 @@
1
+ /**
2
+ * Root element that portals `Drawer` overlay content (`Backdrop`, `Viewport`
3
+ * with the inner `Popup`, etc.) outside the DOM hierarchy. Pass to
4
+ * `Drawer.Popup`'s `portal` prop to customize `container`, `className`,
5
+ * `style`, and other Base UI portal options. When `portal` is omitted,
6
+ * `Drawer.Popup` uses this component with default props.
7
+ */
8
+ declare const Portal: import("react").ForwardRefExoticComponent<Omit<import("@base-ui/react").DrawerPortalProps & 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/drawer/portal.tsx"],"names":[],"mappings":"AAIA;;;;;;GAMG;AACH,QAAA,MAAM,MAAM,oMAIX,CAAC;AAEF,OAAO,EAAE,MAAM,EAAE,CAAC"}
@@ -0,0 +1,21 @@
1
+ import type { RootProps } from './types';
2
+ /**
3
+ * An ARIA-compliant drawer that slides in from a viewport edge, with
4
+ * swipe-to-dismiss gestures.
5
+ *
6
+ * Every drawer must include a `Drawer.Title` component for accessibility — it
7
+ * serves as both the visible heading and the accessible label for the drawer.
8
+ *
9
+ * Always include a visible close affordance, either `Drawer.CloseIcon` or a
10
+ * clear dismissing action button. If your drawer has a "Cancel" button in the
11
+ * footer, the close icon may be redundant and create confusion about what
12
+ * clicking "X" means.
13
+ *
14
+ * Use `Drawer.CloseIcon` for informational drawers where dismissing is safe
15
+ * and expected. For drawers requiring explicit user choice (especially
16
+ * destructive actions), omit the close icon and rely on footer action buttons
17
+ * like "Cancel" and "Confirm" instead.
18
+ */
19
+ declare function Root({ modal, swipeDirection, children, ...props }: RootProps): import("react").JSX.Element;
20
+ export { Root };
21
+ //# sourceMappingURL=root.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"root.d.ts","sourceRoot":"","sources":["../../src/drawer/root.tsx"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AAEzC;;;;;;;;;;;;;;;;GAgBG;AACH,iBAAS,IAAI,CAAE,EACd,KAAY,EACZ,cAAuB,EACvB,QAAQ,EACR,GAAG,KAAK,EACR,EAAE,SAAS,+BAYX;AAED,OAAO,EAAE,IAAI,EAAE,CAAC"}
@@ -0,0 +1,63 @@
1
+ import type { Meta, StoryObj } from '@storybook/react-vite';
2
+ import * as Drawer from '../index';
3
+ declare const meta: Meta<typeof Drawer.Root>;
4
+ export default meta;
5
+ type Story = StoryObj<typeof Drawer.Root>;
6
+ /**
7
+ * A basic drawer sliding in from the left edge. Use the controls to
8
+ * experiment with `swipeDirection` and `modal`.
9
+ */
10
+ export declare const _Default: Story;
11
+ /**
12
+ * Four drawers, one for each swipe direction. Each trigger opens a
13
+ * drawer from the corresponding edge.
14
+ */
15
+ export declare const AllSides: Story;
16
+ /**
17
+ * A controlled drawer where the open state is managed externally.
18
+ */
19
+ export declare const Controlled: Story;
20
+ /**
21
+ * A non-modal drawer that does not trap focus or lock page scroll.
22
+ * Users can interact with content behind the drawer while it is open.
23
+ */
24
+ export declare const NonModal: Story;
25
+ /**
26
+ * Popovers in Gutenberg are managed with explicit z-index values, which can
27
+ * create situations where a drawer renders below another popover when you
28
+ * want it above.
29
+ *
30
+ * The `--wp-ui-drawer-z-index` CSS variable controls the z-index of the
31
+ * drawer's backdrop, viewport, and popup. Override it either:
32
+ *
33
+ * - **Globally**, by setting the variable on `:root` or `body` (raises every
34
+ * drawer in the page), or
35
+ * - **Per instance**, by passing a `Drawer.Portal` with a `style` (or
36
+ * `className`) to `Drawer.Popup`'s `portal` prop. The variable cascades
37
+ * from the portal wrapper to everything rendered inside it.
38
+ *
39
+ * This story demonstrates the per-instance approach.
40
+ */
41
+ export declare const WithCustomZIndex: Story;
42
+ /**
43
+ * Interactive playground to test the `size` prop across all swipe
44
+ * directions. Size controls the width (left/right) or height (up/down).
45
+ */
46
+ export declare const SizePlayground: Story;
47
+ /**
48
+ * When drawer content overflows the available space, `Drawer.Content`
49
+ * scrolls while `Drawer.Header` and `Drawer.Footer` stay pinned to the
50
+ * popup's edges. Separator lines appear only when there is off-screen
51
+ * content above the header or below the footer.
52
+ *
53
+ * To let the header or footer scroll with the body instead of staying
54
+ * pinned, render it *inside* `Drawer.Content` rather than as a sibling.
55
+ * The inline "Sticky header / Sticky footer" checkboxes toggle exactly
56
+ * that placement at runtime.
57
+ *
58
+ * Use the inline controls to change the popup `size`, `swipeDirection`,
59
+ * and sticky placement. The same controls render both outside and inside
60
+ * the drawer and stay in sync.
61
+ */
62
+ export declare const Scrollable: Story;
63
+ //# sourceMappingURL=index.story.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.story.d.ts","sourceRoot":"","sources":["../../../src/drawer/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,CAqBnC,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;AASF;;;GAGG;AACH,eAAO,MAAM,QAAQ,EAAE,KA0CtB,CAAC;AAEF;;GAEG;AACH,eAAO,MAAM,UAAU,EAAE,KAqCxB,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,QAAQ,EAAE,KA4BtB,CAAC;AAyEF;;;;;;;;;;;;;;;GAeG;AACH,eAAO,MAAM,gBAAgB,EAAE,KAgC9B,CAAC;AAEF;;;GAGG;AACH,eAAO,MAAM,cAAc,EAAE,KA+D5B,CAAC;AA+EF;;;;;;;;;;;;;;GAcG;AACH,eAAO,MAAM,UAAU,EAAE,KAqExB,CAAC"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=index.test.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.test.d.ts","sourceRoot":"","sources":["../../../src/drawer/test/index.test.tsx"],"names":[],"mappings":""}
@@ -0,0 +1,22 @@
1
+ import type { TitleProps } from './types';
2
+ /**
3
+ * Renders the drawer title. This component is required for accessibility
4
+ * and serves as both the visible heading and the accessible label for
5
+ * the drawer.
6
+ *
7
+ * **Required** — every drawer must include a `Drawer.Title`, even if
8
+ * visually hidden. The rendered element is linked to the popup via
9
+ * `aria-labelledby`. Renders an `<h2>` by default.
10
+ *
11
+ * To visually hide the title while keeping it accessible, wrap it with
12
+ * `VisuallyHidden` using the `render` prop:
13
+ *
14
+ * ```jsx
15
+ * <VisuallyHidden render={ <Drawer.Title /> }>
16
+ * Accessible title text
17
+ * </VisuallyHidden>
18
+ * ```
19
+ */
20
+ declare const Title: import("react").ForwardRefExoticComponent<TitleProps & import("react").RefAttributes<HTMLHeadingElement>>;
21
+ export { Title };
22
+ //# sourceMappingURL=title.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"title.d.ts","sourceRoot":"","sources":["../../src/drawer/title.tsx"],"names":[],"mappings":"AAMA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,SAAS,CAAC;AAE1C;;;;;;;;;;;;;;;;;GAiBG;AACH,QAAA,MAAM,KAAK,2GAwBV,CAAC;AAEF,OAAO,EAAE,KAAK,EAAE,CAAC"}