@botiverse/raft-ui 0.51.0 → 0.52.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 (585) hide show
  1. package/CHANGELOG.md +20 -0
  2. package/dist/components/activity-inbox/activity-inbox-shell.d.mts +12 -0
  3. package/dist/components/activity-inbox/activity-inbox-shell.mjs +39 -0
  4. package/dist/components/activity-inbox/activity-inbox-shell.recipe.mjs +14 -0
  5. package/dist/components/activity-inbox/activity-inbox-sidebar.d.mts +6 -0
  6. package/dist/components/activity-inbox/activity-inbox-sidebar.mjs +22 -0
  7. package/dist/components/activity-inbox/activity-inbox-sidebar.recipe.mjs +22 -0
  8. package/dist/components/activity-inbox/activity-inbox-toolbar.d.mts +9 -0
  9. package/dist/components/activity-inbox/activity-inbox-toolbar.mjs +29 -0
  10. package/dist/components/activity-inbox/activity-inbox-toolbar.recipe.mjs +14 -0
  11. package/dist/components/activity-inbox/index.d.mts +4 -0
  12. package/dist/components/alert-dialog/alert-dialog.d.mts +41 -0
  13. package/dist/components/alert-dialog/alert-dialog.mjs +163 -0
  14. package/dist/components/alert-dialog/index.d.mts +2 -0
  15. package/dist/components/announcement-dialog/announcement-dialog.d.mts +18 -0
  16. package/dist/components/announcement-dialog/announcement-dialog.mjs +121 -0
  17. package/dist/components/announcement-dialog/index.d.mts +3 -0
  18. package/dist/components/app-rail/app-rail.d.mts +31 -0
  19. package/dist/components/app-rail/app-rail.mjs +126 -0
  20. package/dist/components/app-rail/app-rail.recipe.mjs +47 -0
  21. package/dist/components/app-rail/index.d.mts +2 -0
  22. package/dist/components/app-shell/app-shell.d.mts +27 -0
  23. package/dist/components/app-shell/app-shell.mjs +217 -0
  24. package/dist/components/app-shell/index.d.mts +2 -0
  25. package/dist/components/avatar/avatar.d.mts +169 -0
  26. package/dist/components/avatar/avatar.mjs +298 -0
  27. package/dist/components/avatar/index.d.mts +2 -0
  28. package/dist/components/badge/badge.d.mts +89 -0
  29. package/dist/components/badge/badge.mjs +203 -0
  30. package/dist/components/badge/index.d.mts +2 -0
  31. package/dist/components/banner/banner.d.mts +141 -0
  32. package/dist/components/banner/banner.mjs +228 -0
  33. package/dist/components/banner/index.d.mts +2 -0
  34. package/dist/components/button/button.d.mts +257 -0
  35. package/dist/components/button/button.mjs +177 -0
  36. package/dist/components/button/index.d.mts +2 -0
  37. package/dist/components/card/card.d.mts +21 -0
  38. package/dist/components/card/card.mjs +114 -0
  39. package/dist/components/card/card.recipe.d.mts +105 -0
  40. package/dist/components/card/card.recipe.mjs +67 -0
  41. package/dist/components/card/index.d.mts +2 -0
  42. package/dist/components/checkbox/checkbox-indicator.d.mts +92 -0
  43. package/dist/components/checkbox/checkbox-indicator.mjs +61 -0
  44. package/dist/components/checkbox/checkbox.d.mts +9 -0
  45. package/dist/components/checkbox/checkbox.mjs +40 -0
  46. package/dist/components/checkbox/index.d.mts +3 -0
  47. package/dist/components/choice-list/choice-list.d.mts +103 -0
  48. package/dist/components/choice-list/choice-list.mjs +301 -0
  49. package/dist/components/choice-list/choice-list.recipe.mjs +44 -0
  50. package/dist/components/choice-list/index.d.mts +2 -0
  51. package/dist/components/code-block/code-block.d.mts +30 -0
  52. package/dist/components/code-block/code-block.mjs +151 -0
  53. package/dist/components/code-block/code-block.recipe.mjs +47 -0
  54. package/dist/components/code-block/index.d.mts +2 -0
  55. package/dist/components/combobox/combobox.d.mts +69 -0
  56. package/dist/components/combobox/combobox.mjs +438 -0
  57. package/dist/components/combobox/index.d.mts +2 -0
  58. package/dist/components/combobox-select/combobox-select.d.mts +4 -0
  59. package/dist/components/combobox-select/combobox-select.list-side.mjs +16 -0
  60. package/dist/components/combobox-select/combobox-select.mjs +473 -0
  61. package/dist/components/combobox-select/combobox-select.options.mjs +21 -0
  62. package/dist/components/combobox-select/combobox-select.types.d.mts +83 -0
  63. package/dist/components/combobox-select/index.d.mts +3 -0
  64. package/dist/components/comment/comment-card.d.mts +40 -0
  65. package/dist/components/comment/comment-card.mjs +83 -0
  66. package/dist/components/comment/comment-entry.d.mts +24 -0
  67. package/dist/components/comment/comment-entry.mjs +75 -0
  68. package/dist/components/comment/comment-highlight.d.mts +18 -0
  69. package/dist/components/comment/comment-highlight.mjs +33 -0
  70. package/dist/components/comment/comment-margin-layout.d.mts +32 -0
  71. package/dist/components/comment/comment-margin-layout.mjs +44 -0
  72. package/dist/components/comment/comment-margin.d.mts +29 -0
  73. package/dist/components/comment/comment-margin.mjs +164 -0
  74. package/dist/components/comment/comment-marker.d.mts +16 -0
  75. package/dist/components/comment/comment-marker.mjs +24 -0
  76. package/dist/components/comment/comment.recipe.mjs +58 -0
  77. package/dist/components/comment/index.d.mts +8 -0
  78. package/dist/components/comment/use-comment-margin-fits.d.mts +16 -0
  79. package/dist/components/comment/use-comment-margin-fits.mjs +34 -0
  80. package/dist/components/composer/composer-attachment.recipe.mjs +85 -0
  81. package/dist/components/composer/composer-attachments-scroll-area.d.mts +5 -0
  82. package/dist/components/composer/composer-attachments-scroll-area.mjs +93 -0
  83. package/dist/components/composer/composer-attachments.d.mts +27 -0
  84. package/dist/components/composer/composer-attachments.mjs +147 -0
  85. package/dist/components/composer/composer-drop-overlay.d.mts +9 -0
  86. package/dist/components/composer/composer-drop-overlay.mjs +60 -0
  87. package/dist/components/composer/composer-drop-overlay.recipe.mjs +23 -0
  88. package/dist/components/composer/composer-root.d.mts +5 -0
  89. package/dist/components/composer/composer-root.mjs +18 -0
  90. package/dist/components/composer/composer-suggestion-list.d.mts +139 -0
  91. package/dist/components/composer/composer-suggestion-list.mjs +160 -0
  92. package/dist/components/composer/composer-toolbar-label.d.mts +5 -0
  93. package/dist/components/composer/composer-toolbar-label.mjs +24 -0
  94. package/dist/components/composer/composer.d.mts +20 -0
  95. package/dist/components/composer/composer.mjs +88 -0
  96. package/dist/components/composer/composer.recipe.mjs +29 -0
  97. package/dist/components/composer/index.d.mts +10 -0
  98. package/dist/components/composer/sortable-composer-attachments.d.mts +37 -0
  99. package/dist/components/composer/sortable-composer-attachments.mjs +247 -0
  100. package/dist/components/composer/use-composer-suggestions.d.mts +83 -0
  101. package/dist/components/composer/use-composer-suggestions.mjs +207 -0
  102. package/dist/components/context-menu/context-menu.d.mts +53 -0
  103. package/dist/components/context-menu/context-menu.mjs +275 -0
  104. package/dist/components/context-menu/index.d.mts +2 -0
  105. package/dist/components/conversation-panel/conversation-panel-empty-state.d.mts +9 -0
  106. package/dist/components/conversation-panel/conversation-panel-empty-state.mjs +57 -0
  107. package/dist/components/conversation-panel/conversation-panel.d.mts +20 -0
  108. package/dist/components/conversation-panel/conversation-panel.mjs +63 -0
  109. package/dist/components/conversation-panel/conversation-panel.recipe.mjs +15 -0
  110. package/dist/components/conversation-panel/index.d.mts +3 -0
  111. package/dist/components/copyable-code/copyable-code.d.mts +72 -0
  112. package/dist/components/copyable-code/copyable-code.mjs +153 -0
  113. package/dist/components/copyable-code/index.d.mts +2 -0
  114. package/dist/components/description-list/description-list.d.mts +59 -0
  115. package/dist/components/description-list/description-list.mjs +96 -0
  116. package/dist/components/description-list/index.d.mts +2 -0
  117. package/dist/components/dialog/dialog-sheet-context.mjs +58 -0
  118. package/dist/components/dialog/dialog-sheet.d.mts +31 -0
  119. package/dist/components/dialog/dialog-sheet.mjs +194 -0
  120. package/dist/components/dialog/dialog.d.mts +85 -0
  121. package/dist/components/dialog/dialog.mjs +371 -0
  122. package/dist/components/dialog/index.d.mts +3 -0
  123. package/dist/components/drag/drag-announcements.d.mts +72 -0
  124. package/dist/components/drag/drag-announcements.mjs +115 -0
  125. package/dist/components/drag/drag-lift.d.mts +100 -0
  126. package/dist/components/drag/drag-lift.mjs +276 -0
  127. package/dist/components/drag/drag-lists.d.mts +98 -0
  128. package/dist/components/drag/drag-lists.mjs +258 -0
  129. package/dist/components/drag/drag-sensors.d.mts +87 -0
  130. package/dist/components/drag/drag-sensors.mjs +169 -0
  131. package/dist/components/drag/drag.recipe.d.mts +7 -0
  132. package/dist/components/drag/drag.recipe.mjs +30 -0
  133. package/dist/components/drag/drop-placeholder.d.mts +41 -0
  134. package/dist/components/drag/drop-placeholder.mjs +161 -0
  135. package/dist/components/drag/index.d.mts +8 -0
  136. package/dist/components/drawer/drawer.d.mts +34 -0
  137. package/dist/components/drawer/drawer.mjs +202 -0
  138. package/dist/components/drawer/drawer.recipe.mjs +175 -0
  139. package/dist/components/drawer/index.d.mts +2 -0
  140. package/dist/components/dropdown-menu/dropdown-menu.d.mts +62 -0
  141. package/dist/components/dropdown-menu/dropdown-menu.mjs +319 -0
  142. package/dist/components/dropdown-menu/index.d.mts +2 -0
  143. package/dist/components/ellipsis/ellipsis.d.mts +55 -0
  144. package/dist/components/ellipsis/ellipsis.mjs +320 -0
  145. package/dist/components/ellipsis/index.d.mts +3 -0
  146. package/dist/components/empty-state/empty-state.d.mts +15 -0
  147. package/dist/components/empty-state/empty-state.mjs +102 -0
  148. package/dist/components/empty-state/index.d.mts +2 -0
  149. package/dist/components/field/field.d.mts +79 -0
  150. package/dist/components/field/field.mjs +100 -0
  151. package/dist/components/field/index.d.mts +2 -0
  152. package/dist/components/file-preview/file-preview.d.mts +17 -0
  153. package/dist/components/file-preview/file-preview.mjs +210 -0
  154. package/dist/components/file-preview/file-preview.recipe.d.mts +99 -0
  155. package/dist/components/file-preview/file-preview.recipe.mjs +39 -0
  156. package/dist/components/file-preview/index.d.mts +2 -0
  157. package/dist/components/files/files.d.mts +35 -0
  158. package/dist/components/files/files.mjs +69 -0
  159. package/dist/components/files/files.recipe.mjs +40 -0
  160. package/dist/components/files/index.d.mts +2 -0
  161. package/dist/components/filter-chip/filter-chip.d.mts +25 -0
  162. package/dist/components/filter-chip/filter-chip.mjs +59 -0
  163. package/dist/components/filter-chip/index.d.mts +2 -0
  164. package/dist/components/float-button/float-button.d.mts +36 -0
  165. package/dist/components/float-button/float-button.mjs +116 -0
  166. package/dist/components/float-button/float-button.position.d.mts +6 -0
  167. package/dist/components/float-button/float-button.position.mjs +41 -0
  168. package/dist/components/float-button/index.d.mts +3 -0
  169. package/dist/components/form-section/form-section.d.mts +16 -0
  170. package/dist/components/form-section/form-section.mjs +53 -0
  171. package/dist/components/form-section/index.d.mts +2 -0
  172. package/dist/components/icon-tile/icon-tile.d.mts +97 -0
  173. package/dist/components/icon-tile/icon-tile.mjs +49 -0
  174. package/dist/components/icon-tile/index.d.mts +2 -0
  175. package/dist/components/icons/action-icons.d.mts +34 -0
  176. package/dist/components/icons/action-icons.mjs +383 -0
  177. package/dist/components/icons/conversation-icons.d.mts +12 -0
  178. package/dist/components/icons/conversation-icons.mjs +147 -0
  179. package/dist/components/icons/index.d.mts +4 -0
  180. package/dist/components/icons/object-icons.d.mts +6 -0
  181. package/dist/components/icons/object-icons.mjs +27 -0
  182. package/dist/components/inbox-item/inbox-item-leading-badge.d.mts +13 -0
  183. package/dist/components/inbox-item/inbox-item-leading-badge.mjs +27 -0
  184. package/dist/components/inbox-item/inbox-item-skeleton.d.mts +46 -0
  185. package/dist/components/inbox-item/inbox-item-skeleton.mjs +89 -0
  186. package/dist/components/inbox-item/inbox-item-skeleton.recipe.mjs +20 -0
  187. package/dist/components/inbox-item/inbox-item.d.mts +71 -0
  188. package/dist/components/inbox-item/inbox-item.mjs +276 -0
  189. package/dist/components/inbox-item/inbox-item.recipe.mjs +137 -0
  190. package/dist/components/inbox-item/index.d.mts +2 -0
  191. package/dist/components/inline-code/index.d.mts +2 -0
  192. package/dist/components/inline-code/inline-code.d.mts +8 -0
  193. package/dist/components/inline-code/inline-code.mjs +30 -0
  194. package/dist/components/input/index.d.mts +2 -0
  195. package/dist/components/input/input.d.mts +16 -0
  196. package/dist/components/input/input.mjs +20 -0
  197. package/dist/components/input/input.recipe.mjs +12 -0
  198. package/dist/components/input-group/index.d.mts +2 -0
  199. package/dist/components/input-group/input-group.d.mts +93 -0
  200. package/dist/components/input-group/input-group.mjs +178 -0
  201. package/dist/components/kbd/index.d.mts +2 -0
  202. package/dist/components/kbd/kbd.d.mts +7 -0
  203. package/dist/components/kbd/kbd.mjs +34 -0
  204. package/dist/components/label/index.d.mts +2 -0
  205. package/dist/components/label/label.d.mts +60 -0
  206. package/dist/components/label/label.mjs +75 -0
  207. package/dist/components/legacy-task-panel/index.d.mts +2 -0
  208. package/dist/components/legacy-task-panel/legacy-task-panel.d.mts +57 -0
  209. package/dist/components/legacy-task-panel/legacy-task-panel.mjs +234 -0
  210. package/dist/components/legacy-task-panel/legacy-task-panel.recipe.mjs +30 -0
  211. package/dist/components/lightbox/index.d.mts +2 -0
  212. package/dist/components/lightbox/lightbox.d.mts +55 -0
  213. package/dist/components/lightbox/lightbox.mjs +336 -0
  214. package/dist/components/list-row/index.d.mts +2 -0
  215. package/dist/components/list-row/list-row-skeleton.d.mts +21 -0
  216. package/dist/components/list-row/list-row-skeleton.mjs +43 -0
  217. package/dist/components/list-row/list-row.d.mts +66 -0
  218. package/dist/components/list-row/list-row.mjs +167 -0
  219. package/dist/components/list-row/list-row.recipe.d.mts +126 -0
  220. package/dist/components/list-row/list-row.recipe.mjs +94 -0
  221. package/dist/components/live-agent-activity-bar/index.d.mts +2 -0
  222. package/dist/components/live-agent-activity-bar/live-agent-activity-bar.d.mts +25 -0
  223. package/dist/components/live-agent-activity-bar/live-agent-activity-bar.mjs +107 -0
  224. package/dist/components/logo/index.d.mts +2 -0
  225. package/dist/components/logo/raft-logo.d.mts +9 -0
  226. package/dist/components/logo/raft-logo.mjs +63 -0
  227. package/dist/components/markdown/index.d.mts +2 -0
  228. package/dist/components/markdown/markdown-parts.d.mts +54 -0
  229. package/dist/components/markdown/markdown-parts.mjs +153 -0
  230. package/dist/components/markdown/markdown.recipe.mjs +77 -0
  231. package/dist/components/message-action-card/index.d.mts +2 -0
  232. package/dist/components/message-action-card/message-action-card-content.recipe.mjs +50 -0
  233. package/dist/components/message-action-card/message-action-card.d.mts +95 -0
  234. package/dist/components/message-action-card/message-action-card.mjs +298 -0
  235. package/dist/components/message-action-card/message-action-card.recipe.mjs +47 -0
  236. package/dist/components/message-attachment/index.d.mts +5 -0
  237. package/dist/components/message-attachment/message-attachment.d.mts +27 -0
  238. package/dist/components/message-attachment/message-attachment.mjs +129 -0
  239. package/dist/components/message-attachment/message-attachment.recipe.mjs +36 -0
  240. package/dist/components/message-attachment/message-image-gallery-rows.d.mts +47 -0
  241. package/dist/components/message-attachment/message-image-gallery-rows.mjs +55 -0
  242. package/dist/components/message-attachment/message-image-gallery.d.mts +32 -0
  243. package/dist/components/message-attachment/message-image-gallery.mjs +105 -0
  244. package/dist/components/message-attachment/message-image-gallery.recipe.mjs +61 -0
  245. package/dist/components/message-attachment/message-video-preview.d.mts +19 -0
  246. package/dist/components/message-attachment/message-video-preview.mjs +92 -0
  247. package/dist/components/message-attachment/message-video-preview.recipe.mjs +33 -0
  248. package/dist/components/message-embed/index.d.mts +2 -0
  249. package/dist/components/message-embed/message-embed.d.mts +12 -0
  250. package/dist/components/message-embed/message-embed.mjs +42 -0
  251. package/dist/components/message-embed/message-embed.recipe.mjs +14 -0
  252. package/dist/components/message-forwarded-bundle/index.d.mts +2 -0
  253. package/dist/components/message-forwarded-bundle/message-forwarded-bundle.d.mts +92 -0
  254. package/dist/components/message-forwarded-bundle/message-forwarded-bundle.mjs +324 -0
  255. package/dist/components/message-forwarded-bundle/message-forwarded-bundle.recipe.mjs +81 -0
  256. package/dist/components/message-item/index.d.mts +13 -0
  257. package/dist/components/message-item/message-footer.d.mts +20 -0
  258. package/dist/components/message-item/message-footer.mjs +54 -0
  259. package/dist/components/message-item/message-footer.recipe.mjs +46 -0
  260. package/dist/components/message-item/message-item-content.d.mts +22 -0
  261. package/dist/components/message-item/message-item-content.mjs +81 -0
  262. package/dist/components/message-item/message-item-delegated.d.mts +38 -0
  263. package/dist/components/message-item/message-item-delegated.mjs +72 -0
  264. package/dist/components/message-item/message-item-gutter.d.mts +10 -0
  265. package/dist/components/message-item/message-item-gutter.mjs +41 -0
  266. package/dist/components/message-item/message-item-header.d.mts +29 -0
  267. package/dist/components/message-item/message-item-header.mjs +107 -0
  268. package/dist/components/message-item/message-item-label.mjs +113 -0
  269. package/dist/components/message-item/message-item-root.d.mts +25 -0
  270. package/dist/components/message-item/message-item-root.mjs +39 -0
  271. package/dist/components/message-item/message-item-toolbar.d.mts +9 -0
  272. package/dist/components/message-item/message-item-toolbar.mjs +131 -0
  273. package/dist/components/message-item/message-item.recipe.d.mts +101 -0
  274. package/dist/components/message-item/message-item.recipe.mjs +114 -0
  275. package/dist/components/message-item/message-multi-select.d.mts +15 -0
  276. package/dist/components/message-item/message-multi-select.mjs +49 -0
  277. package/dist/components/message-item/message-multi-select.recipe.mjs +23 -0
  278. package/dist/components/message-item/message-reaction.d.mts +39 -0
  279. package/dist/components/message-item/message-reaction.mjs +188 -0
  280. package/dist/components/message-item/message-reaction.recipe.mjs +76 -0
  281. package/dist/components/message-item/message-reference.d.mts +50 -0
  282. package/dist/components/message-item/message-reference.mjs +111 -0
  283. package/dist/components/message-item/message-reference.recipe.d.mts +6 -0
  284. package/dist/components/message-item/message-reference.recipe.mjs +63 -0
  285. package/dist/components/message-item/message-text-selection-toolbar.d.mts +24 -0
  286. package/dist/components/message-item/message-text-selection-toolbar.mjs +13 -0
  287. package/dist/components/message-list/index.d.mts +4 -0
  288. package/dist/components/message-list/message-list-jump.d.mts +21 -0
  289. package/dist/components/message-list/message-list-jump.mjs +73 -0
  290. package/dist/components/message-list/message-list-markers.d.mts +13 -0
  291. package/dist/components/message-list/message-list-markers.mjs +70 -0
  292. package/dist/components/message-list/message-list.d.mts +7 -0
  293. package/dist/components/message-list/message-list.mjs +52 -0
  294. package/dist/components/message-list/message-list.recipe.mjs +54 -0
  295. package/dist/components/message-quoted-preview/index.d.mts +2 -0
  296. package/dist/components/message-quoted-preview/message-quoted-preview.d.mts +40 -0
  297. package/dist/components/message-quoted-preview/message-quoted-preview.mjs +144 -0
  298. package/dist/components/message-quoted-preview/message-quoted-preview.recipe.mjs +38 -0
  299. package/dist/components/message-replies/index.d.mts +2 -0
  300. package/dist/components/message-replies/message-replies.d.mts +17 -0
  301. package/dist/components/message-replies/message-replies.mjs +79 -0
  302. package/dist/components/message-replies/message-replies.recipe.mjs +25 -0
  303. package/dist/components/message-translation/index.d.mts +2 -0
  304. package/dist/components/message-translation/message-translation.d.mts +20 -0
  305. package/dist/components/message-translation/message-translation.mjs +64 -0
  306. package/dist/components/message-translation/message-translation.recipe.mjs +27 -0
  307. package/dist/components/meter/index.d.mts +2 -0
  308. package/dist/components/meter/meter.d.mts +107 -0
  309. package/dist/components/meter/meter.mjs +118 -0
  310. package/dist/components/mobile-nav/index.d.mts +3 -0
  311. package/dist/components/mobile-nav/mobile-nav-server.d.mts +71 -0
  312. package/dist/components/mobile-nav/mobile-nav-server.mjs +287 -0
  313. package/dist/components/mobile-nav/mobile-nav.d.mts +12 -0
  314. package/dist/components/mobile-nav/mobile-nav.mjs +73 -0
  315. package/dist/components/mode-bar/index.d.mts +2 -0
  316. package/dist/components/mode-bar/mode-bar.d.mts +33 -0
  317. package/dist/components/mode-bar/mode-bar.mjs +115 -0
  318. package/dist/components/notification-center/index.d.mts +2 -0
  319. package/dist/components/notification-center/notification-center.d.mts +225 -0
  320. package/dist/components/notification-center/notification-center.mjs +340 -0
  321. package/dist/components/panel/index.d.mts +7 -0
  322. package/dist/components/panel/panel-action.d.mts +15 -0
  323. package/dist/components/panel/panel-action.mjs +23 -0
  324. package/dist/components/panel/panel-action.recipe.mjs +40 -0
  325. package/dist/components/panel/panel-header.d.mts +34 -0
  326. package/dist/components/panel/panel-header.mjs +135 -0
  327. package/dist/components/panel/panel-header.recipe.mjs +78 -0
  328. package/dist/components/panel/panel-notice.d.mts +16 -0
  329. package/dist/components/panel/panel-notice.mjs +77 -0
  330. package/dist/components/panel/panel-split-action.d.mts +34 -0
  331. package/dist/components/panel/panel-split-action.mjs +69 -0
  332. package/dist/components/panel/panel-split-action.recipe.mjs +53 -0
  333. package/dist/components/panel/panel-toggle-action.d.mts +6 -0
  334. package/dist/components/panel/panel-toggle-action.mjs +15 -0
  335. package/dist/components/panel/panel.d.mts +25 -0
  336. package/dist/components/panel/panel.mjs +96 -0
  337. package/dist/components/panel/panel.recipe.mjs +24 -0
  338. package/dist/components/picker-trigger-button/index.d.mts +2 -0
  339. package/dist/components/picker-trigger-button/picker-trigger-button.d.mts +7 -0
  340. package/dist/components/picker-trigger-button/picker-trigger-button.mjs +36 -0
  341. package/dist/components/popover/index.d.mts +2 -0
  342. package/dist/components/popover/popover.d.mts +41 -0
  343. package/dist/components/popover/popover.mjs +184 -0
  344. package/dist/components/preview-card/index.d.mts +2 -0
  345. package/dist/components/preview-card/preview-card.d.mts +43 -0
  346. package/dist/components/preview-card/preview-card.mjs +197 -0
  347. package/dist/components/profile-panel/index.d.mts +2 -0
  348. package/dist/components/profile-panel/profile-panel.d.mts +14 -0
  349. package/dist/components/profile-panel/profile-panel.mjs +46 -0
  350. package/dist/components/profile-panel/profile-panel.recipe.mjs +14 -0
  351. package/dist/components/progress/index.d.mts +2 -0
  352. package/dist/components/progress/progress.d.mts +119 -0
  353. package/dist/components/progress/progress.mjs +139 -0
  354. package/dist/components/pull-to-refresh/index.d.mts +4 -0
  355. package/dist/components/pull-to-refresh/pull-to-refresh-gesture.d.mts +30 -0
  356. package/dist/components/pull-to-refresh/pull-to-refresh-gesture.mjs +134 -0
  357. package/dist/components/pull-to-refresh/pull-to-refresh-indicator.d.mts +21 -0
  358. package/dist/components/pull-to-refresh/pull-to-refresh-indicator.mjs +153 -0
  359. package/dist/components/pull-to-refresh/pull-to-refresh-material-progress.mjs +150 -0
  360. package/dist/components/pull-to-refresh/use-pull-to-refresh.d.mts +55 -0
  361. package/dist/components/pull-to-refresh/use-pull-to-refresh.mjs +156 -0
  362. package/dist/components/radio-group/index.d.mts +2 -0
  363. package/dist/components/radio-group/radio-group.d.mts +14 -0
  364. package/dist/components/radio-group/radio-group.mjs +59 -0
  365. package/dist/components/resizable/index.d.mts +2 -0
  366. package/dist/components/resizable/resizable.d.mts +15 -0
  367. package/dist/components/resizable/resizable.mjs +39 -0
  368. package/dist/components/resizable/resizable.recipe.mjs +24 -0
  369. package/dist/components/scroll-area/index.d.mts +2 -0
  370. package/dist/components/scroll-area/scroll-area.d.mts +17 -0
  371. package/dist/components/scroll-area/scroll-area.mjs +55 -0
  372. package/dist/components/scroll-area/scroll-area.recipe.mjs +23 -0
  373. package/dist/components/search/index.d.mts +6 -0
  374. package/dist/components/search/search-entity.d.mts +24 -0
  375. package/dist/components/search/search-entity.mjs +106 -0
  376. package/dist/components/search/search-entity.recipe.mjs +41 -0
  377. package/dist/components/search/search-message.d.mts +25 -0
  378. package/dist/components/search/search-message.mjs +115 -0
  379. package/dist/components/search/search-message.recipe.mjs +32 -0
  380. package/dist/components/search/search-thread.d.mts +17 -0
  381. package/dist/components/search/search-thread.mjs +79 -0
  382. package/dist/components/search/search-thread.recipe.mjs +16 -0
  383. package/dist/components/search/search-trigger.d.mts +15 -0
  384. package/dist/components/search/search-trigger.mjs +59 -0
  385. package/dist/components/search/search.d.mts +23 -0
  386. package/dist/components/search/search.mjs +88 -0
  387. package/dist/components/search/search.recipe.mjs +22 -0
  388. package/dist/components/segmented-control/index.d.mts +2 -0
  389. package/dist/components/segmented-control/segmented-control.d.mts +38 -0
  390. package/dist/components/segmented-control/segmented-control.mjs +306 -0
  391. package/dist/components/select/index.d.mts +2 -0
  392. package/dist/components/select/select.d.mts +95 -0
  393. package/dist/components/select/select.mjs +483 -0
  394. package/dist/components/separator/index.d.mts +2 -0
  395. package/dist/components/separator/separator.d.mts +10 -0
  396. package/dist/components/separator/separator.mjs +49 -0
  397. package/dist/components/sidebar/index.d.mts +5 -0
  398. package/dist/components/sidebar/sidebar-item.d.mts +64 -0
  399. package/dist/components/sidebar/sidebar-item.mjs +201 -0
  400. package/dist/components/sidebar/sidebar-item.recipe.mjs +100 -0
  401. package/dist/components/sidebar/sidebar-menu.d.mts +13 -0
  402. package/dist/components/sidebar/sidebar-menu.mjs +67 -0
  403. package/dist/components/sidebar/sidebar-menu.recipe.mjs +22 -0
  404. package/dist/components/sidebar/sidebar-section.d.mts +41 -0
  405. package/dist/components/sidebar/sidebar-section.mjs +164 -0
  406. package/dist/components/sidebar/sidebar-section.recipe.mjs +45 -0
  407. package/dist/components/sidebar/sidebar.d.mts +17 -0
  408. package/dist/components/sidebar/sidebar.mjs +149 -0
  409. package/dist/components/sidebar/sidebar.recipe.mjs +37 -0
  410. package/dist/components/skeleton/index.d.mts +2 -0
  411. package/dist/components/skeleton/skeleton.d.mts +50 -0
  412. package/dist/components/skeleton/skeleton.mjs +29 -0
  413. package/dist/components/spinner/index.d.mts +2 -0
  414. package/dist/components/spinner/spinner.d.mts +77 -0
  415. package/dist/components/spinner/spinner.mjs +118 -0
  416. package/dist/components/status/index.d.mts +2 -0
  417. package/dist/components/status/status.d.mts +143 -0
  418. package/dist/components/status/status.mjs +56 -0
  419. package/dist/components/steps/index.d.mts +3 -0
  420. package/dist/components/steps/otter-indicator.d.mts +17 -0
  421. package/dist/components/steps/otter-indicator.mjs +331 -0
  422. package/dist/components/steps/steps.d.mts +50 -0
  423. package/dist/components/steps/steps.mjs +174 -0
  424. package/dist/components/switch/index.d.mts +2 -0
  425. package/dist/components/switch/switch.d.mts +9 -0
  426. package/dist/components/switch/switch.mjs +50 -0
  427. package/dist/components/system-message/index.d.mts +2 -0
  428. package/dist/components/system-message/system-message.d.mts +27 -0
  429. package/dist/components/system-message/system-message.mjs +113 -0
  430. package/dist/components/system-message/system-message.recipe.mjs +34 -0
  431. package/dist/components/table/index.d.mts +2 -0
  432. package/dist/components/table/table.d.mts +35 -0
  433. package/dist/components/table/table.mjs +102 -0
  434. package/dist/components/table/table.recipe.mjs +31 -0
  435. package/dist/components/tabs/index.d.mts +2 -0
  436. package/dist/components/tabs/tabs.d.mts +185 -0
  437. package/dist/components/tabs/tabs.mjs +528 -0
  438. package/dist/components/task-board/index.d.mts +2 -0
  439. package/dist/components/task-board/task-board-column.recipe.mjs +46 -0
  440. package/dist/components/task-board/task-board.d.mts +40 -0
  441. package/dist/components/task-board/task-board.mjs +155 -0
  442. package/dist/components/task-card/index.d.mts +2 -0
  443. package/dist/components/task-card/task-card-status.recipe.mjs +17 -0
  444. package/dist/components/task-card/task-card.d.mts +30 -0
  445. package/dist/components/task-card/task-card.mjs +141 -0
  446. package/dist/components/task-card/task-card.recipe.mjs +39 -0
  447. package/dist/components/task-dnd/index.d.mts +2 -0
  448. package/dist/components/task-dnd/task-dnd.d.mts +75 -0
  449. package/dist/components/task-dnd/task-dnd.mjs +341 -0
  450. package/dist/components/task-dnd/task-dnd.recipe.mjs +20 -0
  451. package/dist/components/task-list/index.d.mts +2 -0
  452. package/dist/components/task-list/task-list-section.recipe.mjs +37 -0
  453. package/dist/components/task-list/task-list.d.mts +34 -0
  454. package/dist/components/task-list/task-list.mjs +119 -0
  455. package/dist/components/tasks/index.d.mts +7 -0
  456. package/dist/components/tasks/task-chip.d.mts +14 -0
  457. package/dist/components/tasks/task-chip.mjs +81 -0
  458. package/dist/components/tasks/task-loading.d.mts +7 -0
  459. package/dist/components/tasks/task-loading.mjs +32 -0
  460. package/dist/components/tasks/task-loading.recipe.mjs +8 -0
  461. package/dist/components/tasks/task-status-badge.d.mts +24 -0
  462. package/dist/components/tasks/task-status-badge.mjs +24 -0
  463. package/dist/components/tasks/task-status-icon.d.mts +13 -0
  464. package/dist/components/tasks/task-status-icon.mjs +90 -0
  465. package/dist/components/tasks/task-status.recipe.d.mts +62 -0
  466. package/dist/components/tasks/task-status.recipe.mjs +33 -0
  467. package/dist/components/tasks/tasks-panel.d.mts +22 -0
  468. package/dist/components/tasks/tasks-panel.mjs +114 -0
  469. package/dist/components/tasks/tasks-panel.recipe.mjs +36 -0
  470. package/dist/components/text/index.d.mts +2 -0
  471. package/dist/components/text/text.d.mts +186 -0
  472. package/dist/components/text/text.mjs +114 -0
  473. package/dist/components/text-link/index.d.mts +2 -0
  474. package/dist/components/text-link/text-link.d.mts +36 -0
  475. package/dist/components/text-link/text-link.mjs +60 -0
  476. package/dist/components/text-selection-toolbar/index.d.mts +3 -0
  477. package/dist/components/text-selection-toolbar/text-selection-anchor.d.mts +22 -0
  478. package/dist/components/text-selection-toolbar/text-selection-anchor.mjs +106 -0
  479. package/dist/components/text-selection-toolbar/text-selection-toolbar.d.mts +20 -0
  480. package/dist/components/text-selection-toolbar/text-selection-toolbar.mjs +41 -0
  481. package/dist/components/text-selection-toolbar/text-selection-toolbar.recipe.mjs +19 -0
  482. package/dist/components/textarea/index.d.mts +2 -0
  483. package/dist/components/textarea/textarea.d.mts +16 -0
  484. package/dist/components/textarea/textarea.mjs +62 -0
  485. package/dist/components/thread-panel/index.d.mts +2 -0
  486. package/dist/components/thread-panel/thread-panel.d.mts +31 -0
  487. package/dist/components/thread-panel/thread-panel.mjs +162 -0
  488. package/dist/components/thread-panel/thread-panel.recipe.mjs +36 -0
  489. package/dist/components/timeline/index.d.mts +2 -0
  490. package/dist/components/timeline/timeline.d.mts +44 -0
  491. package/dist/components/timeline/timeline.mjs +81 -0
  492. package/dist/components/toast/index.d.mts +2 -0
  493. package/dist/components/toast/toast.d.mts +263 -0
  494. package/dist/components/toast/toast.mjs +556 -0
  495. package/dist/components/toggle-group/index.d.mts +2 -0
  496. package/dist/components/toggle-group/toggle-group.d.mts +15 -0
  497. package/dist/components/toggle-group/toggle-group.mjs +64 -0
  498. package/dist/components/tooltip/index.d.mts +2 -0
  499. package/dist/components/tooltip/tooltip.d.mts +18 -0
  500. package/dist/components/tooltip/tooltip.mjs +197 -0
  501. package/dist/components/virtual-list/ItemColumns.mjs +37 -0
  502. package/dist/components/virtual-list/VirtualList.d.mts +4 -0
  503. package/dist/components/virtual-list/VirtualList.mjs +1401 -0
  504. package/dist/components/virtual-list/VirtualListContext.mjs +5 -0
  505. package/dist/components/virtual-list/hooks/use-event-callback.mjs +10 -0
  506. package/dist/components/virtual-list/hooks/use-ios-momentum-compensation.mjs +148 -0
  507. package/dist/components/virtual-list/hooks/use-keyboard-scroll.mjs +42 -0
  508. package/dist/components/virtual-list/hooks/use-latest-ref.mjs +10 -0
  509. package/dist/components/virtual-list/hooks/use-layout-effect-with-previous.mjs +16 -0
  510. package/dist/components/virtual-list/hooks/use-memo-with-previous.mjs +22 -0
  511. package/dist/components/virtual-list/hooks/use-non-passive-wheel.mjs +23 -0
  512. package/dist/components/virtual-list/hooks/use-non-virtual-content-resize.mjs +28 -0
  513. package/dist/components/virtual-list/hooks/use-scroll-anchor.mjs +55 -0
  514. package/dist/components/virtual-list/index.d.mts +5 -0
  515. package/dist/components/virtual-list/public-types.d.mts +341 -0
  516. package/dist/components/virtual-list/resize-observer/ResizeObserverWrapper.d.mts +5 -0
  517. package/dist/components/virtual-list/resize-observer/ResizeObserverWrapper.mjs +70 -0
  518. package/dist/components/virtual-list/resize-observer/resize-observer-delegate.d.mts +6 -0
  519. package/dist/components/virtual-list/resize-observer/resize-observer-delegate.mjs +54 -0
  520. package/dist/components/virtual-list/utils/align.mjs +19 -0
  521. package/dist/components/virtual-list/utils/constants.mjs +30 -0
  522. package/dist/components/virtual-list/utils/fenwick-tree.mjs +66 -0
  523. package/dist/components/virtual-list/utils/items-anchor.mjs +49 -0
  524. package/dist/components/virtual-list/utils/measure.mjs +77 -0
  525. package/dist/components/virtual-list/utils/platform.mjs +39 -0
  526. package/dist/components/virtual-list/utils/range.mjs +103 -0
  527. package/dist/components/virtual-list/utils/size-cache.mjs +35 -0
  528. package/dist/components/workspace-button/index.d.mts +2 -0
  529. package/dist/components/workspace-button/workspace-button.d.mts +9 -0
  530. package/dist/components/workspace-button/workspace-button.mjs +28 -0
  531. package/dist/index.d.mts +239 -4864
  532. package/dist/index.mjs +142 -17054
  533. package/dist/lib/chip-remove.mjs +17 -0
  534. package/dist/lib/data-attributes.d.mts +5 -0
  535. package/dist/lib/decision-width.mjs +9 -0
  536. package/dist/lib/default-native-button.mjs +8 -0
  537. package/dist/lib/desktop-media.mjs +10 -0
  538. package/dist/lib/drag-escape.mjs +37 -0
  539. package/dist/lib/frame-insets.mjs +127 -0
  540. package/dist/lib/head-edges.mjs +44 -0
  541. package/dist/lib/hud-text-action.mjs +10 -0
  542. package/dist/lib/inline-chip.mjs +30 -0
  543. package/dist/lib/input-modality.d.mts +36 -0
  544. package/dist/lib/input-modality.mjs +186 -0
  545. package/dist/lib/list-cell.mjs +21 -0
  546. package/dist/lib/located.d.mts +25 -0
  547. package/dist/lib/located.mjs +28 -0
  548. package/dist/lib/overlay-depth.d.mts +42 -0
  549. package/dist/lib/overlay-depth.mjs +59 -0
  550. package/dist/lib/phone-media.mjs +24 -0
  551. package/dist/lib/presence.d.mts +16 -0
  552. package/dist/lib/presence.mjs +16 -0
  553. package/dist/lib/row-tone.d.mts +8 -0
  554. package/dist/lib/search-hit.mjs +18 -0
  555. package/dist/lib/stacked-actions.mjs +112 -0
  556. package/dist/lib/styled-props.d.mts +15 -0
  557. package/dist/lib/tap-activation.mjs +133 -0
  558. package/dist/lib/theme/theme-context.d.mts +10 -0
  559. package/dist/lib/theme/theme-context.mjs +9 -0
  560. package/dist/lib/theme/theme-provider.d.mts +23 -0
  561. package/dist/lib/theme/theme-provider.mjs +61 -0
  562. package/dist/lib/theme/theme-scope.mjs +19 -0
  563. package/dist/lib/theme/use-theme.d.mts +5 -0
  564. package/dist/lib/theme/use-theme.mjs +9 -0
  565. package/dist/lib/touch-drag.d.mts +55 -0
  566. package/dist/lib/touch-drag.mjs +151 -0
  567. package/dist/lib/truncation.d.mts +26 -0
  568. package/dist/lib/truncation.mjs +153 -0
  569. package/dist/lib/tv.d.mts +2 -0
  570. package/dist/lib/tv.mjs +14 -0
  571. package/dist/lib/use-copy-to-clipboard.mjs +58 -0
  572. package/dist/lib/use-merged-ref.mjs +60 -0
  573. package/dist/lib/use-mobile-viewport.mjs +17 -0
  574. package/dist/lib/use-overflow-title.mjs +49 -0
  575. package/dist/lib/use-scrollbar-size.d.mts +16 -0
  576. package/dist/lib/use-scrollbar-size.mjs +46 -0
  577. package/dist/lib/use-truncated.d.mts +20 -0
  578. package/dist/lib/use-truncated.mjs +34 -0
  579. package/dist/lib/without-children.d.mts +8 -0
  580. package/dist/wip.d.mts +61 -1190
  581. package/dist/wip.mjs +43 -2970
  582. package/package.json +8 -1
  583. package/dist/index-C3ymUW98.d.mts +0 -1816
  584. package/dist/mode-bar-tGnYByXp.mjs +0 -7564
  585. package/dist/style.css +0 -1395
@@ -0,0 +1,194 @@
1
+ import { cn } from "../../cn.mjs";
2
+ import { Button } from "../button/button.mjs";
3
+ import { DialogSheetContext, dialogSheet, useDialogSheet } from "./dialog-sheet-context.mjs";
4
+ import { DialogContent } from "./dialog.mjs";
5
+ import { useMobileViewport } from "../../lib/use-mobile-viewport.mjs";
6
+ import { useCallback, useEffect, useLayoutEffect, useMemo, useRef, useState } from "react";
7
+ import { Fragment as Fragment$1, jsx, jsxs } from "react/jsx-runtime";
8
+ import { createPortal } from "react-dom";
9
+ //#region src/components/dialog/dialog-sheet.tsx
10
+ /**
11
+ * DialogContent for a dialog with several fields, a long list or steps. On a
12
+ * desktop and a tablet it is DialogContent, the same DOM and classes. Below
13
+ * 768px it is a sheet: docked to the bottom, 90% of the screen tall, sliding
14
+ * up over its scrim; `DialogHeader` becomes a pushed page's head (× at the
15
+ * start, the title, the `DialogCommit` button at the end), `DialogFooter` is
16
+ * hidden (× is Cancel) and `DialogBody` scrolls on the phone's 16px margin
17
+ * above the home indicator. Base UI keeps Esc, focus and close.
18
+ */
19
+ function DialogSheetContent({ className, overlay, style, ref, children, ...props }) {
20
+ const phone = useMobileViewport();
21
+ const [commitSlot, setCommitSlot] = useState(null);
22
+ const [bodyEndSlot, setBodyEndSlot] = useState(null);
23
+ const [popup, setPopup] = useState(null);
24
+ const keyboardBox = useSheetKeyboardBox(phone);
25
+ useRevealNewProblems(phone ? popup : null);
26
+ const state = useMemo(() => ({
27
+ sheet: phone,
28
+ commitSlot: phone ? commitSlot : null,
29
+ setCommitSlot,
30
+ bodyEndSlot: phone ? bodyEndSlot : null,
31
+ setBodyEndSlot
32
+ }), [
33
+ phone,
34
+ commitSlot,
35
+ bodyEndSlot
36
+ ]);
37
+ const setRef = useCallback((element) => {
38
+ setPopup(element);
39
+ assignRef(ref, element);
40
+ }, [ref]);
41
+ const sheet = dialogSheet();
42
+ const sheetOverlay = useMemo(() => overlay === false ? false : {
43
+ ...typeof overlay === "object" ? overlay : null,
44
+ className: cn(dialogSheet().overlay(), typeof overlay === "object" ? overlay.className : ""),
45
+ children: /* @__PURE__ */ jsx("span", {
46
+ "aria-hidden": true,
47
+ className: "absolute inset-0"
48
+ })
49
+ }, [overlay]);
50
+ const sheetStyle = useMemo(() => keyboardBox ? {
51
+ ...style,
52
+ ...keyboardBox
53
+ } : style, [style, keyboardBox]);
54
+ return /* @__PURE__ */ jsx(DialogContent, {
55
+ ...props,
56
+ ref: setRef,
57
+ overlay: phone ? sheetOverlay : overlay,
58
+ className: phone ? cn(className, sheet.content()) : className,
59
+ style: phone ? sheetStyle : style,
60
+ "data-sheet": phone ? "" : void 0,
61
+ children: /* @__PURE__ */ jsx(DialogSheetContext.Provider, {
62
+ value: state,
63
+ children
64
+ })
65
+ });
66
+ }
67
+ function assignRef(ref, value) {
68
+ if (typeof ref === "function") ref(value);
69
+ else if (ref) ref.current = value;
70
+ }
71
+ /**
72
+ * The dialog's one commit button: a `Button`, written where it goes on a
73
+ * desktop (the end of `DialogFooter`). In a `DialogSheetContent` below 768px
74
+ * it is drawn at the end of the sheet's head instead, the same button (color,
75
+ * words, disabled and loading state) at `size="md"`. In a flow of steps, write
76
+ * each step's button as one (Next, then the last step's action).
77
+ *
78
+ * A submit button stays its form's default button in the head: it is tied to
79
+ * the form it was written in by the form's `id` (the `form` attribute), so a
80
+ * click and Enter in a field submit, and neither does while it is disabled.
81
+ * Give that form an `id`, or pass `form`. Without one a click still submits
82
+ * the form, but Enter in a field doesn't.
83
+ */
84
+ function DialogCommit({ size, form, onClick, ...props }) {
85
+ const { commitSlot } = useDialogSheet();
86
+ const anchorRef = useRef(null);
87
+ const [writtenIn, setWrittenIn] = useState(null);
88
+ useLayoutEffect(() => {
89
+ if (!commitSlot || form) return;
90
+ const found = anchorRef.current?.closest("form") ?? null;
91
+ setWrittenIn(found);
92
+ if (process.env.NODE_ENV === "production" || props.type !== "submit" || found?.id) return;
93
+ console.warn(found ? "raft-ui: a submit DialogCommit is drawn in a phone sheet's head, outside its form, and the form has no id, so Enter in a field doesn't submit it (a click still does). Give the form an id, or pass `form` to DialogCommit." : "raft-ui: a submit DialogCommit in a phone sheet isn't inside a form and has no `form`, so it submits nothing. Pass `form` with the form's id.");
94
+ }, [
95
+ commitSlot,
96
+ form,
97
+ props.type
98
+ ]);
99
+ const handleClick = useCallback((event) => {
100
+ onClick?.(event);
101
+ if (!event.defaultPrevented && props.type === "submit" && writtenIn && !writtenIn.id) {
102
+ event.preventDefault();
103
+ writtenIn.requestSubmit();
104
+ }
105
+ }, [
106
+ onClick,
107
+ props.type,
108
+ writtenIn
109
+ ]);
110
+ if (!commitSlot) return /* @__PURE__ */ jsx(Button, {
111
+ size,
112
+ form,
113
+ onClick,
114
+ ...props
115
+ });
116
+ const linkedForm = form ?? (writtenIn?.id || void 0);
117
+ return /* @__PURE__ */ jsxs(Fragment$1, { children: [/* @__PURE__ */ jsx("span", {
118
+ ref: anchorRef,
119
+ hidden: true
120
+ }), createPortal(/* @__PURE__ */ jsx(Button, {
121
+ size: "md",
122
+ form: linkedForm,
123
+ onClick: handleClick,
124
+ ...props
125
+ }), commitSlot)] });
126
+ }
127
+ /**
128
+ * The sheet's box while the on-screen keyboard is up: docked to the top of the
129
+ * keyboard, as tall as the visual viewport allows up to its usual 90% of the
130
+ * window. With the keyboard up the visual viewport is shorter than that, so
131
+ * the sheet fills it: the head stays in view and the body scrolls above the
132
+ * keyboard. `undefined` otherwise (the CSS box).
133
+ */
134
+ function useSheetKeyboardBox(active) {
135
+ const [box, setBox] = useState(void 0);
136
+ useEffect(() => {
137
+ const viewport = typeof window === "undefined" ? void 0 : window.visualViewport;
138
+ if (!active || !viewport) return;
139
+ const update = () => {
140
+ const focused = document.activeElement;
141
+ const keyboardUp = (focused instanceof HTMLInputElement || focused instanceof HTMLTextAreaElement || focused instanceof HTMLElement && focused.isContentEditable) && window.innerHeight - viewport.height > 100;
142
+ const height = Math.round(Math.min(viewport.height, window.innerHeight * .9));
143
+ const top = Math.round(Math.max(viewport.offsetTop, 0) + viewport.height - height);
144
+ setBox((previous) => {
145
+ if (!keyboardUp) return void 0;
146
+ return previous?.top === `${top}px` && previous?.height === `${height}px` ? previous : {
147
+ top: `${top}px`,
148
+ bottom: "auto",
149
+ height: `${height}px`
150
+ };
151
+ });
152
+ };
153
+ viewport.addEventListener("resize", update);
154
+ viewport.addEventListener("scroll", update, { passive: true });
155
+ document.addEventListener("focusin", update);
156
+ document.addEventListener("focusout", update);
157
+ return () => {
158
+ viewport.removeEventListener("resize", update);
159
+ viewport.removeEventListener("scroll", update);
160
+ document.removeEventListener("focusin", update);
161
+ document.removeEventListener("focusout", update);
162
+ };
163
+ }, [active]);
164
+ return active ? box : void 0;
165
+ }
166
+ /**
167
+ * The commit is at the top of a sheet, so an error a failed commit adds near
168
+ * the bottom of a long form would appear out of sight. A problem added after
169
+ * the sheet opens (an alert, or a warning or destructive Banner) is scrolled
170
+ * into view.
171
+ */
172
+ const PROBLEM_SELECTOR = "[role=alert], [data-slot=banner][data-status=warning], [data-slot=banner][data-status=destructive]";
173
+ function useRevealNewProblems(popup) {
174
+ useEffect(() => {
175
+ if (!popup || typeof MutationObserver === "undefined") return;
176
+ const observer = new MutationObserver((records) => {
177
+ for (const record of records) for (const node of record.addedNodes) {
178
+ if (!(node instanceof Element)) continue;
179
+ const problem = node.matches(PROBLEM_SELECTOR) ? node : node.querySelector(PROBLEM_SELECTOR);
180
+ if (problem) {
181
+ problem.scrollIntoView?.({ block: "nearest" });
182
+ return;
183
+ }
184
+ }
185
+ });
186
+ observer.observe(popup, {
187
+ childList: true,
188
+ subtree: true
189
+ });
190
+ return () => observer.disconnect();
191
+ }, [popup]);
192
+ }
193
+ //#endregion
194
+ export { DialogCommit, DialogSheetContent };
@@ -0,0 +1,85 @@
1
+ import { StyledProps } from "../../lib/styled-props.mjs";
2
+ import { ButtonProps } from "../button/button.mjs";
3
+ import "../button/index.mjs";
4
+ import { PanelActionProps } from "../panel/panel-action.mjs";
5
+ import { Dialog } from "@base-ui/react/dialog";
6
+ import { ComponentPropsWithRef, ReactNode } from "react";
7
+ import { useRender } from "@base-ui/react/use-render";
8
+ //#region src/components/dialog/dialog.d.ts
9
+ export type DialogProps = Dialog.Root.Props;
10
+ declare function Dialog$1({ children, ...props }: DialogProps): import("react").JSX.Element;
11
+ export type DialogTriggerProps = Dialog.Trigger.Props;
12
+ export declare function DialogTrigger(props: DialogTriggerProps): import("react").JSX.Element;
13
+ export type DialogPortalProps = Dialog.Portal.Props;
14
+ export declare function DialogPortal(props: DialogPortalProps): import("react").JSX.Element;
15
+ export type DialogOverlayProps = StyledProps<Dialog.Backdrop.Props> & {
16
+ layer?: 0 | 1;
17
+ };
18
+ export declare function DialogOverlay({ className, layer, ...props }: DialogOverlayProps): import("react").JSX.Element;
19
+ export type DialogContentProps = StyledProps<Dialog.Popup.Props> & {
20
+ portalProps?: DialogPortalProps;
21
+ overlay?: false | DialogOverlayProps;
22
+ size?: "sm" | "md" | "lg" | "wide";
23
+ layer?: 0 | 1;
24
+ };
25
+ export declare function DialogContent({ className, children, portalProps, overlay, size, layer, ...props }: DialogContentProps): import("react").JSX.Element;
26
+ export type DialogCloseProps = Dialog.Close.Props & Pick<ButtonProps, "variant" | "size"> & {
27
+ className?: string;
28
+ children?: ReactNode;
29
+ };
30
+ export declare function DialogClose({ className, variant, size, children, render, "aria-label": ariaLabel, ...props }: DialogCloseProps): import("react").JSX.Element;
31
+ export type DialogSheetBackProps = PanelActionProps;
32
+ /**
33
+ * Back, in a later step of a flow drawn as a phone sheet: it takes the head's
34
+ * start in place of × (stdrc, 2026-10-22). The sheet is a stack of steps, and
35
+ * Back undoes one, as on a pushed page; Esc still closes. Put it in
36
+ * `DialogHeader` beside the `DialogClose`, from the second step on; it draws
37
+ * nothing outside a sheet, where Back stays in the footer. Its icon is
38
+ * `arrow-left`, as every Back (Alignment, "The ends of a header").
39
+ */
40
+ export declare function DialogSheetBack({ className, children, "aria-label": ariaLabel, ...props }: DialogSheetBackProps): import("react").JSX.Element | null;
41
+ export type DialogHeaderProps = ComponentPropsWithRef<"div"> & {
42
+ /** A pinned bar of a scrolling (`size="wide"`) dialog. */
43
+ bar?: boolean;
44
+ };
45
+ export declare function DialogHeader({ className, bar, children, ...props }: DialogHeaderProps): import("react").JSX.Element;
46
+ export type DialogBodyProps = ComponentPropsWithRef<"div"> & {
47
+ /** A pinned bar of a scrolling (`size="wide"`) dialog. */
48
+ bar?: boolean;
49
+ };
50
+ export declare function DialogBody({ className, bar, children, ...props }: DialogBodyProps): import("react").JSX.Element;
51
+ export type DialogFooterProps = ComponentPropsWithRef<"div"> & {
52
+ /** A pinned bar of a scrolling (`size="wide"`) dialog. */
53
+ bar?: boolean;
54
+ };
55
+ export declare function DialogFooter({ className, bar, hidden, children, ref, ...props }: DialogFooterProps): import("react").JSX.Element;
56
+ export type DialogFooterNoteProps = ComponentPropsWithRef<"p">;
57
+ /**
58
+ * One short line at the start of `DialogFooter` that says what the commit
59
+ * button will do ("You'll be billed $8 per member each month"). Muted footnote
60
+ * text, start-aligned and never cut. Only in a `lg` or `wide` dialog, and at
61
+ * most 40 characters: on a desktop it is one line beside the buttons and never
62
+ * wraps; on a phone it goes above the buttons when they don't fit beside it,
63
+ * and may wrap to 2 lines. In a phone sheet, which has no footer, it moves
64
+ * to the end of the body. Longer copy belongs in the body. A footer holds a note or a `TextLink`,
65
+ * never both.
66
+ */
67
+ export declare function DialogFooterNote({ className, children, ...props }: DialogFooterNoteProps): import("react").JSX.Element | null;
68
+ export type DialogTitleProps = StyledProps<Dialog.Title.Props>;
69
+ export declare function DialogTitle({ className, ...props }: DialogTitleProps): import("react").JSX.Element;
70
+ export type DialogDescriptionProps = StyledProps<Dialog.Description.Props>;
71
+ export declare function DialogDescription({ className, ...props }: DialogDescriptionProps): import("react").JSX.Element;
72
+ export type DialogSurfaceProps = useRender.ComponentProps<"div">;
73
+ /**
74
+ * The dialog's frame — the popover layer, the dialog radius, the seam ring
75
+ * and the float shadow — for a centred modal whose lifecycle the app owns
76
+ * (its own backdrop, Escape and focus handling). It neither positions nor
77
+ * animates itself: the host centres it, and a centred modal has no motion.
78
+ * DialogContent draws the same frame for a Base UI dialog.
79
+ */
80
+ export declare function DialogSurface({ className, render, children, ...props }: DialogSurfaceProps): import("react").ReactElement<unknown, string | import("react").JSXElementConstructor<any>>;
81
+ export type DialogNavProps = useRender.ComponentProps<"nav">;
82
+ /** The section list of a wide (`size="wide"`) dialog, inside a `bar` body. */
83
+ export declare function DialogNav({ className, render, ...props }: DialogNavProps): import("react").ReactElement<unknown, string | import("react").JSXElementConstructor<any>>;
84
+ //#endregion
85
+ export { Dialog$1 as Dialog };
@@ -0,0 +1,371 @@
1
+ import { cn } from "../../cn.mjs";
2
+ import { decisionWidth } from "../../lib/decision-width.mjs";
3
+ import { headEdgePull } from "../../lib/head-edges.mjs";
4
+ import { stackedActions, useStackedActions } from "../../lib/stacked-actions.mjs";
5
+ import { tv } from "../../lib/tv.mjs";
6
+ import { useThemeScopeProps } from "../../lib/theme/theme-scope.mjs";
7
+ import { useParentOverlayKind, withOverlayLayer } from "../../lib/overlay-depth.mjs";
8
+ import { Button } from "../button/button.mjs";
9
+ import { DialogSheetHeadContext, DialogSheetReset, dialogSheet, useDialogSheet, useInDialogSheetHead } from "./dialog-sheet-context.mjs";
10
+ import { TextLink } from "../text-link/text-link.mjs";
11
+ import { PanelAction } from "../panel/panel-action.mjs";
12
+ import { Dialog } from "@base-ui/react/dialog";
13
+ import { ArrowLeft, X } from "lucide-react";
14
+ import { Children, createContext, isValidElement, useContext, useEffect } from "react";
15
+ import { Fragment as Fragment$1, jsx, jsxs } from "react/jsx-runtime";
16
+ import { mergeProps } from "@base-ui/react/merge-props";
17
+ import { useRender } from "@base-ui/react/use-render";
18
+ import { createPortal } from "react-dom";
19
+ //#region src/components/dialog/dialog.tsx
20
+ const dialog = tv({
21
+ slots: {
22
+ overlay: ["fixed inset-0 z-50 bg-layer-backdrop"],
23
+ content: [
24
+ "fixed top-1/2 left-1/2 z-50 flex w-[calc(100%-2rem)] -translate-1/2 flex-col",
25
+ "max-h-[calc(100dvh-2rem)] outline-none",
26
+ "overflow-clip rounded-dialog bg-layer-popover text-foreground",
27
+ "shadow-float ring-1 ring-line-seam"
28
+ ],
29
+ header: [
30
+ "grid shrink-0 grid-cols-[minmax(0,1fr)_max-content] items-center min-w-0",
31
+ "gap-2 px-5 pt-5",
32
+ headEdgePull
33
+ ],
34
+ body: [
35
+ "min-w-0 flex-1 overflow-y-auto",
36
+ "px-5 pt-1.5 pb-5 first:pt-5",
37
+ "font-sans text-subhead text-foreground-muted"
38
+ ],
39
+ footer: [
40
+ "flex shrink-0 items-center justify-end",
41
+ ...stackedActions,
42
+ "gap-2 px-5 pb-5 first:pt-5 [[data-slot=dialog-header]+&]:pt-5",
43
+ "*:data-[slot=text-link]:text-footnote"
44
+ ],
45
+ footerNote: ["m-0 md:me-2 md:flex-1", "text-start font-sans text-footnote text-pretty text-foreground-muted md:whitespace-nowrap"],
46
+ footerActions: [
47
+ "ms-auto flex shrink-0 items-center justify-end gap-2",
48
+ ...stackedActions,
49
+ "data-stacked:ms-0 data-stacked:w-full"
50
+ ],
51
+ title: ["m-0 min-w-0 text-foreground", "font-sans text-headline font-bold"],
52
+ description: ["m-0", "font-sans text-subhead text-foreground-muted"]
53
+ },
54
+ variants: {
55
+ size: {
56
+ sm: { content: [decisionWidth] },
57
+ md: { content: ["max-w-md"] },
58
+ lg: { content: ["max-w-160"] },
59
+ wide: { content: ["max-w-4xl h-[min(760px,calc(100dvh-2rem))]"] }
60
+ },
61
+ bar: {
62
+ false: {},
63
+ true: {
64
+ header: ["flex h-14 shrink-0 items-center gap-2 border-b px-5 py-0", "border-line-seam pt-0 [&>[data-slot=dialog-close]]:my-0"],
65
+ body: ["flex min-h-0 flex-1 overflow-hidden p-0", "px-0 pt-0 pb-0 first:pt-0 text-foreground"],
66
+ footer: ["shrink-0 border-t px-5 py-3", "border-line-seam pt-3 pb-3 first:pt-3 [[data-slot=dialog-header]+&]:pt-3"]
67
+ }
68
+ },
69
+ layer: {
70
+ 0: {
71
+ overlay: [],
72
+ content: []
73
+ },
74
+ 1: {
75
+ overlay: ["z-60"],
76
+ content: ["z-60"]
77
+ }
78
+ },
79
+ nested: {
80
+ false: {},
81
+ true: { overlay: ["bg-layer-backdrop-nested"] }
82
+ },
83
+ start: {
84
+ false: {},
85
+ true: { footer: ["flex-wrap justify-between"] }
86
+ }
87
+ },
88
+ defaultVariants: {
89
+ size: "md",
90
+ bar: false
91
+ }
92
+ });
93
+ function Dialog$1({ children, ...props }) {
94
+ return /* @__PURE__ */ jsx(Dialog.Root, {
95
+ "data-slot": "dialog",
96
+ ...props,
97
+ children: withOverlayLayer("dialog", props.modal !== false, children)
98
+ });
99
+ }
100
+ function DialogTrigger(props) {
101
+ return /* @__PURE__ */ jsx(Dialog.Trigger, {
102
+ "data-slot": "dialog-trigger",
103
+ ...props
104
+ });
105
+ }
106
+ function DialogPortal(props) {
107
+ return /* @__PURE__ */ jsx(Dialog.Portal, {
108
+ "data-slot": "dialog-portal",
109
+ ...useThemeScopeProps(props)
110
+ });
111
+ }
112
+ function DialogOverlay({ className, layer, ...props }) {
113
+ const nested = useParentOverlayKind() != null;
114
+ const { overlay } = dialog({
115
+ layer,
116
+ nested
117
+ });
118
+ return /* @__PURE__ */ jsx(Dialog.Backdrop, {
119
+ "data-slot": "dialog-overlay",
120
+ "data-nested": nested ? "" : void 0,
121
+ forceRender: true,
122
+ className: overlay({ className }),
123
+ ...props
124
+ });
125
+ }
126
+ const DialogSizeContext = createContext(void 0);
127
+ function DialogContent({ className, children, portalProps, overlay, size, layer, ...props }) {
128
+ const { content } = dialog({
129
+ size,
130
+ layer
131
+ });
132
+ const overlayProps = typeof overlay === "object" ? overlay : {};
133
+ return /* @__PURE__ */ jsxs(DialogPortal, {
134
+ ...portalProps,
135
+ children: [overlay === false ? null : /* @__PURE__ */ jsx(DialogOverlay, {
136
+ layer,
137
+ ...overlayProps
138
+ }), /* @__PURE__ */ jsx(Dialog.Popup, {
139
+ "data-slot": "dialog-content",
140
+ className: content({ className }),
141
+ ...props,
142
+ children: /* @__PURE__ */ jsx(DialogSizeContext.Provider, {
143
+ value: size ?? (/(^|\s)max-w-/.test(className ?? "") ? void 0 : "md"),
144
+ children: /* @__PURE__ */ jsx(DialogSheetReset, { children })
145
+ })
146
+ })]
147
+ });
148
+ }
149
+ function DialogClose({ className, variant, size, children, render, "aria-label": ariaLabel, ...props }) {
150
+ const inSheetHead = useInDialogSheetHead();
151
+ if (render) return /* @__PURE__ */ jsx(Dialog.Close, {
152
+ "data-slot": "dialog-close",
153
+ render,
154
+ "aria-label": ariaLabel,
155
+ ...props,
156
+ children
157
+ });
158
+ if (inSheetHead) return /* @__PURE__ */ jsx(Dialog.Close, {
159
+ "data-slot": "dialog-close",
160
+ render: /* @__PURE__ */ jsx(PanelAction, {
161
+ "aria-label": ariaLabel ?? "Close",
162
+ className
163
+ }),
164
+ ...props,
165
+ children: children ?? /* @__PURE__ */ jsx(X, {})
166
+ });
167
+ return /* @__PURE__ */ jsx(Dialog.Close, {
168
+ "data-slot": "dialog-close",
169
+ render: /* @__PURE__ */ jsx(Button, {
170
+ variant: variant ?? "ghost",
171
+ size: size ?? "icon-md",
172
+ "aria-label": ariaLabel ?? "Close",
173
+ className: cn("-my-1.5", className)
174
+ }),
175
+ ...props,
176
+ children: children ?? /* @__PURE__ */ jsx(X, { className: "size-4.5" })
177
+ });
178
+ }
179
+ /**
180
+ * Back, in a later step of a flow drawn as a phone sheet: it takes the head's
181
+ * start in place of × (stdrc, 2026-10-22). The sheet is a stack of steps, and
182
+ * Back undoes one, as on a pushed page; Esc still closes. Put it in
183
+ * `DialogHeader` beside the `DialogClose`, from the second step on; it draws
184
+ * nothing outside a sheet, where Back stays in the footer. Its icon is
185
+ * `arrow-left`, as every Back (Alignment, "The ends of a header").
186
+ */
187
+ function DialogSheetBack({ className, children, "aria-label": ariaLabel, ...props }) {
188
+ if (!useInDialogSheetHead()) return null;
189
+ return /* @__PURE__ */ jsx(PanelAction, {
190
+ activateOnTouchEnd: true,
191
+ "data-slot": "dialog-sheet-back",
192
+ "aria-label": ariaLabel ?? "Back",
193
+ className,
194
+ ...props,
195
+ children: children ?? /* @__PURE__ */ jsx(ArrowLeft, {})
196
+ });
197
+ }
198
+ function DialogHeader({ className, bar = false, children, ...props }) {
199
+ const { sheet, setCommitSlot } = useDialogSheet();
200
+ const items = sheet ? Children.toArray(children) : [];
201
+ const backs = items.filter((item) => isValidElement(item) && item.type === DialogSheetBack);
202
+ const closes = items.filter((item) => isValidElement(item) && item.type === DialogClose);
203
+ const missingLeading = sheet && backs.length === 0 && closes.length === 0;
204
+ useEffect(() => {
205
+ if (process.env.NODE_ENV === "production" || !missingLeading) return;
206
+ console.warn("raft-ui: a DialogHeader drawn as a phone sheet has no DialogClose (or DialogSheetBack) as a direct child, so the sheet has no × at the start of its head. Put DialogClose directly in DialogHeader, not inside a Tooltip, a Fragment or a component of your own.");
207
+ }, [missingLeading]);
208
+ if (sheet) {
209
+ const rest = items.filter((item) => !backs.includes(item) && !closes.includes(item));
210
+ const head = dialogSheet();
211
+ return /* @__PURE__ */ jsxs("div", {
212
+ "data-slot": "dialog-header",
213
+ "data-sheet": "",
214
+ className: dialog({ bar: false }).header({ className: cn(head.header(), className) }),
215
+ ...props,
216
+ children: [/* @__PURE__ */ jsxs(DialogSheetHeadContext.Provider, {
217
+ value: true,
218
+ children: [backs.length > 0 ? backs : closes, rest]
219
+ }), /* @__PURE__ */ jsx("div", {
220
+ ref: setCommitSlot,
221
+ "data-slot": "dialog-commit-slot",
222
+ className: head.commitSlot()
223
+ })]
224
+ });
225
+ }
226
+ const { header } = dialog({ bar });
227
+ return /* @__PURE__ */ jsx("div", {
228
+ "data-slot": "dialog-header",
229
+ className: header({ className }),
230
+ ...props,
231
+ children
232
+ });
233
+ }
234
+ function DialogBody({ className, bar = false, children, ...props }) {
235
+ const { sheet, setBodyEndSlot } = useDialogSheet();
236
+ const { body } = dialog({ bar });
237
+ const sheetBody = sheet ? cn(bar && dialogSheet().barBody(), dialogSheet().body()) : void 0;
238
+ return /* @__PURE__ */ jsxs("div", {
239
+ "data-slot": "dialog-body",
240
+ className: body({ className: sheetBody ? cn(sheetBody, className) : className }),
241
+ ...props,
242
+ children: [children, sheet ? /* @__PURE__ */ jsx("div", {
243
+ ref: setBodyEndSlot,
244
+ "data-slot": "dialog-sheet-body-end",
245
+ className: dialogSheet().bodyEnd()
246
+ }) : null]
247
+ });
248
+ }
249
+ function DialogFooter({ className, bar = false, hidden, children, ref, ...props }) {
250
+ const { sheet, bodyEndSlot } = useDialogSheet();
251
+ const items = Children.toArray(children);
252
+ const start = items.find((item) => isValidElement(item) && item.type === DialogFooterNote && hasNoteContent(item.props.children)) ?? (isValidElement(items[0]) && items[0].type === TextLink ? items[0] : void 0);
253
+ const [stacked, rowRef] = useStackedActions(start == null ? ref : void 0, start != null);
254
+ const { footer, footerActions } = dialog({
255
+ bar,
256
+ start: start != null
257
+ });
258
+ const stackedProps = stacked ? { "data-stacked": "" } : {};
259
+ if (start == null) return /* @__PURE__ */ jsx("div", {
260
+ "data-slot": "dialog-footer",
261
+ ref: rowRef,
262
+ className: footer({ className }),
263
+ hidden: sheet || hidden,
264
+ ...stackedProps,
265
+ ...props,
266
+ children
267
+ });
268
+ return /* @__PURE__ */ jsxs(Fragment$1, { children: [sheet && bodyEndSlot ? createPortal(start, bodyEndSlot) : null, /* @__PURE__ */ jsxs("div", {
269
+ "data-slot": "dialog-footer",
270
+ ref,
271
+ className: footer({ className }),
272
+ hidden: sheet || hidden,
273
+ ...props,
274
+ children: [sheet ? null : start, /* @__PURE__ */ jsx("div", {
275
+ "data-slot": "dialog-footer-actions",
276
+ ref: rowRef,
277
+ className: footerActions(),
278
+ ...stackedProps,
279
+ children: items.filter((item) => item !== start)
280
+ })]
281
+ })] });
282
+ }
283
+ /**
284
+ * Whether a note has anything to show: not only null, false or "", but also
285
+ * whitespace and an empty array (`{items.map(...)}` of nothing). Numbers,
286
+ * 0 included, and elements count.
287
+ */
288
+ function hasNoteContent(children) {
289
+ return Children.toArray(children).some((child) => typeof child !== "string" || child.trim() !== "");
290
+ }
291
+ /**
292
+ * One short line at the start of `DialogFooter` that says what the commit
293
+ * button will do ("You'll be billed $8 per member each month"). Muted footnote
294
+ * text, start-aligned and never cut. Only in a `lg` or `wide` dialog, and at
295
+ * most 40 characters: on a desktop it is one line beside the buttons and never
296
+ * wraps; on a phone it goes above the buttons when they don't fit beside it,
297
+ * and may wrap to 2 lines. In a phone sheet, which has no footer, it moves
298
+ * to the end of the body. Longer copy belongs in the body. A footer holds a note or a `TextLink`,
299
+ * never both.
300
+ */
301
+ function DialogFooterNote({ className, children, ...props }) {
302
+ const { footerNote } = dialog();
303
+ const size = useContext(DialogSizeContext);
304
+ useEffect(() => {
305
+ if (process.env.NODE_ENV === "production") return;
306
+ if (size === "sm" || size === "md") console.warn(`raft-ui: a DialogFooterNote is in a size="${size}" dialog. A footer note fits beside the buttons only in a size="lg" or size="wide" dialog; put the sentence in DialogBody instead.`);
307
+ }, [size]);
308
+ if (!hasNoteContent(children)) return null;
309
+ return /* @__PURE__ */ jsx("p", {
310
+ "data-slot": "dialog-footer-note",
311
+ className: footerNote({ className }),
312
+ ...props,
313
+ children
314
+ });
315
+ }
316
+ function DialogTitle({ className, ...props }) {
317
+ const inSheetHead = useInDialogSheetHead();
318
+ const { title } = dialog();
319
+ const classes = inSheetHead ? cn(dialogSheet().title(), className) : className;
320
+ return /* @__PURE__ */ jsx(Dialog.Title, {
321
+ "data-slot": "dialog-title",
322
+ className: title({ className: classes }),
323
+ ...props
324
+ });
325
+ }
326
+ function DialogDescription({ className, ...props }) {
327
+ const { description } = dialog();
328
+ return /* @__PURE__ */ jsx(Dialog.Description, {
329
+ "data-slot": "dialog-description",
330
+ className: description({ className }),
331
+ ...props
332
+ });
333
+ }
334
+ const dialogSurface = tv({ slots: { root: [
335
+ "flex min-w-0 flex-col outline-none",
336
+ "overflow-clip rounded-dialog bg-layer-popover text-foreground",
337
+ "shadow-float ring-1 ring-line-seam"
338
+ ] } });
339
+ /**
340
+ * The dialog's frame — the popover layer, the dialog radius, the seam ring
341
+ * and the float shadow — for a centred modal whose lifecycle the app owns
342
+ * (its own backdrop, Escape and focus handling). It neither positions nor
343
+ * animates itself: the host centres it, and a centred modal has no motion.
344
+ * DialogContent draws the same frame for a Base UI dialog.
345
+ */
346
+ function DialogSurface({ className, render, children, ...props }) {
347
+ const { root } = dialogSurface();
348
+ return useRender({
349
+ defaultTagName: "div",
350
+ render,
351
+ props: mergeProps({
352
+ "data-slot": "dialog-surface",
353
+ className: root({ className })
354
+ }, props, { children: /* @__PURE__ */ jsx(DialogSheetReset, { children }) })
355
+ });
356
+ }
357
+ const dialogNav = tv({ slots: { root: ["flex shrink-0 flex-col overflow-y-auto", "w-52 gap-0.5 border-r border-line-seam py-2 max-md:hidden"] } });
358
+ /** The section list of a wide (`size="wide"`) dialog, inside a `bar` body. */
359
+ function DialogNav({ className, render, ...props }) {
360
+ const { root } = dialogNav();
361
+ return useRender({
362
+ defaultTagName: "nav",
363
+ render,
364
+ props: mergeProps({
365
+ "data-slot": "dialog-nav",
366
+ className: root({ className })
367
+ }, props)
368
+ });
369
+ }
370
+ //#endregion
371
+ export { Dialog$1 as Dialog, DialogBody, DialogClose, DialogContent, DialogDescription, DialogFooter, DialogFooterNote, DialogHeader, DialogNav, DialogOverlay, DialogPortal, DialogSheetBack, DialogSurface, DialogTitle, DialogTrigger };
@@ -0,0 +1,3 @@
1
+ import { Dialog, DialogBody, DialogBodyProps, DialogClose, DialogCloseProps, DialogContent, DialogContentProps, DialogDescription, DialogDescriptionProps, DialogFooter, DialogFooterNote, DialogFooterNoteProps, DialogFooterProps, DialogHeader, DialogHeaderProps, DialogNav, DialogNavProps, DialogOverlay, DialogOverlayProps, DialogPortal, DialogPortalProps, DialogProps, DialogSheetBack, DialogSheetBackProps, DialogSurface, DialogSurfaceProps, DialogTitle, DialogTitleProps, DialogTrigger, DialogTriggerProps } from "./dialog.mjs";
2
+ import { DialogCommit, DialogCommitProps, DialogSheetContent, DialogSheetContentProps } from "./dialog-sheet.mjs";
3
+ export { Dialog, DialogBody, type DialogBodyProps, DialogClose, type DialogCloseProps, DialogCommit, type DialogCommitProps, DialogContent, type DialogContentProps, DialogDescription, type DialogDescriptionProps, DialogFooter, DialogFooterNote, type DialogFooterNoteProps, type DialogFooterProps, DialogHeader, type DialogHeaderProps, DialogNav, type DialogNavProps, DialogOverlay, type DialogOverlayProps, DialogPortal, type DialogPortalProps, type DialogProps, DialogSheetBack, type DialogSheetBackProps, DialogSheetContent, type DialogSheetContentProps, DialogSurface, type DialogSurfaceProps, DialogTitle, type DialogTitleProps, DialogTrigger, type DialogTriggerProps };