@botiverse/raft-ui 0.51.0 → 0.52.1

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 +26 -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,83 @@
1
+ import { comment } from "./comment.recipe.mjs";
2
+ import { mergeProps } from "@base-ui/react/merge-props";
3
+ import { useRender } from "@base-ui/react/use-render";
4
+ //#region src/components/comment/comment-card.tsx
5
+ /**
6
+ * The card of one discussion: its comments, a line such as "2 replies", and
7
+ * the reply box when it is open. A `div`; which parts it holds (collapsed or
8
+ * open) is the caller's choice. To open it with a click, add
9
+ * `CommentCardTrigger`.
10
+ */
11
+ function CommentCard({ className, render, active = false, ...props }) {
12
+ const { card } = comment();
13
+ const defaultProps = {
14
+ "data-slot": "comment-card",
15
+ "data-active": active ? "" : void 0,
16
+ "aria-current": active ? "true" : void 0,
17
+ className: card({ className })
18
+ };
19
+ return useRender({
20
+ defaultTagName: "div",
21
+ render,
22
+ props: mergeProps(defaultProps, props)
23
+ });
24
+ }
25
+ /**
26
+ * A button laid over the whole card, for a collapsed card that opens when it
27
+ * is clicked or chosen with the keyboard. It has no text of its own: give it
28
+ * an `aria-label` ("Comment from Martin").
29
+ */
30
+ function CommentCardTrigger({ className, render, ...props }) {
31
+ const { cardTrigger } = comment();
32
+ const defaultProps = {
33
+ "data-slot": "comment-card-trigger",
34
+ type: "button",
35
+ className: cardTrigger({ className })
36
+ };
37
+ return useRender({
38
+ defaultTagName: "button",
39
+ render,
40
+ props: mergeProps(defaultProps, props)
41
+ });
42
+ }
43
+ /**
44
+ * A short line about the discussion, in the caller's words: how many replies
45
+ * it has, that it is about the whole document, or that the passage it was on
46
+ * can no longer be found. When choosing it does something (makes this the
47
+ * discussion being read), render it as a button,
48
+ * `render={<button type="button" />}`: it then underlines on hover, as
49
+ * clickable text, and takes the focus ring.
50
+ */
51
+ function CommentCardMeta({ className, render, ...props }) {
52
+ const { cardMeta } = comment();
53
+ const defaultProps = {
54
+ "data-slot": "comment-card-meta",
55
+ className: cardMeta({ className })
56
+ };
57
+ return useRender({
58
+ defaultTagName: "div",
59
+ render,
60
+ props: mergeProps(defaultProps, props)
61
+ });
62
+ }
63
+ /**
64
+ * The passage the discussion is about, in the caller's words (usually the
65
+ * quoted text). Hidden on screen, where the card's place beside the
66
+ * highlighted passage says it; give it an `id` and point the
67
+ * `aria-describedby` of `CommentCardTrigger` or `CommentMarker` at it, so a
68
+ * screen reader says which passage a card is about.
69
+ */
70
+ function CommentCardQuote({ className, render, ...props }) {
71
+ const { cardQuote } = comment();
72
+ const defaultProps = {
73
+ "data-slot": "comment-card-quote",
74
+ className: cardQuote({ className })
75
+ };
76
+ return useRender({
77
+ defaultTagName: "span",
78
+ render,
79
+ props: mergeProps(defaultProps, props)
80
+ });
81
+ }
82
+ //#endregion
83
+ export { CommentCard, CommentCardMeta, CommentCardQuote, CommentCardTrigger };
@@ -0,0 +1,24 @@
1
+ import { useRender } from "@base-ui/react/use-render";
2
+ //#region src/components/comment/comment-entry.d.ts
3
+ export type CommentEntryProps = useRender.ComponentProps<"div">;
4
+ /** One comment in a discussion: its header, then its text. */
5
+ export declare function CommentEntry({ className, render, ...props }: CommentEntryProps): import("react").ReactElement<unknown, string | import("react").JSXElementConstructor<any>>;
6
+ export type CommentEntryHeaderProps = useRender.ComponentProps<"div">;
7
+ /** One line: the author's `Avatar` (`size="xs"`), `CommentEntryAuthor`, then `CommentEntryTime`. */
8
+ export declare function CommentEntryHeader({ className, render, ...props }: CommentEntryHeaderProps): import("react").ReactElement<unknown, string | import("react").JSXElementConstructor<any>>;
9
+ export type CommentEntryAuthorProps = useRender.ComponentProps<"span">;
10
+ /** Who wrote the comment, in bold. It truncates; the time after it doesn't. */
11
+ export declare function CommentEntryAuthor({ className, render, ...props }: CommentEntryAuthorProps): import("react").ReactElement<unknown, string | import("react").JSXElementConstructor<any>>;
12
+ export type CommentEntryTimeProps = useRender.ComponentProps<"time">;
13
+ /**
14
+ * When the comment was written, right after the author. A `<time>`: pass the
15
+ * moment in `dateTime` (ISO 8601).
16
+ */
17
+ export declare function CommentEntryTime({ className, render, ...props }: CommentEntryTimeProps): import("react").ReactElement<unknown, string | import("react").JSXElementConstructor<any>>;
18
+ export type CommentEntryBodyProps = useRender.ComponentProps<"div"> & {
19
+ /** Cuts the text to 2 lines, for a collapsed card. */
20
+ clamp?: boolean;
21
+ };
22
+ /** What the comment says. */
23
+ export declare function CommentEntryBody({ className, render, clamp, ...props }: CommentEntryBodyProps): import("react").ReactElement<unknown, string | import("react").JSXElementConstructor<any>>;
24
+ //#endregion
@@ -0,0 +1,75 @@
1
+ import { comment } from "./comment.recipe.mjs";
2
+ import { mergeProps } from "@base-ui/react/merge-props";
3
+ import { useRender } from "@base-ui/react/use-render";
4
+ //#region src/components/comment/comment-entry.tsx
5
+ /** One comment in a discussion: its header, then its text. */
6
+ function CommentEntry({ className, render, ...props }) {
7
+ const { entry } = comment();
8
+ const defaultProps = {
9
+ "data-slot": "comment-entry",
10
+ className: entry({ className })
11
+ };
12
+ return useRender({
13
+ defaultTagName: "div",
14
+ render,
15
+ props: mergeProps(defaultProps, props)
16
+ });
17
+ }
18
+ /** One line: the author's `Avatar` (`size="xs"`), `CommentEntryAuthor`, then `CommentEntryTime`. */
19
+ function CommentEntryHeader({ className, render, ...props }) {
20
+ const { entryHeader } = comment();
21
+ const defaultProps = {
22
+ "data-slot": "comment-entry-header",
23
+ className: entryHeader({ className })
24
+ };
25
+ return useRender({
26
+ defaultTagName: "div",
27
+ render,
28
+ props: mergeProps(defaultProps, props)
29
+ });
30
+ }
31
+ /** Who wrote the comment, in bold. It truncates; the time after it doesn't. */
32
+ function CommentEntryAuthor({ className, render, ...props }) {
33
+ const { entryAuthor } = comment();
34
+ const defaultProps = {
35
+ "data-slot": "comment-entry-author",
36
+ className: entryAuthor({ className })
37
+ };
38
+ return useRender({
39
+ defaultTagName: "span",
40
+ render,
41
+ props: mergeProps(defaultProps, props)
42
+ });
43
+ }
44
+ /**
45
+ * When the comment was written, right after the author. A `<time>`: pass the
46
+ * moment in `dateTime` (ISO 8601).
47
+ */
48
+ function CommentEntryTime({ className, render, ...props }) {
49
+ const { entryTime } = comment();
50
+ const defaultProps = {
51
+ "data-slot": "comment-entry-time",
52
+ className: entryTime({ className })
53
+ };
54
+ return useRender({
55
+ defaultTagName: "time",
56
+ render,
57
+ props: mergeProps(defaultProps, props)
58
+ });
59
+ }
60
+ /** What the comment says. */
61
+ function CommentEntryBody({ className, render, clamp = false, ...props }) {
62
+ const { entryBody } = comment({ clamp });
63
+ const defaultProps = {
64
+ "data-slot": "comment-entry-body",
65
+ "data-clamp": clamp ? "" : void 0,
66
+ className: entryBody({ className })
67
+ };
68
+ return useRender({
69
+ defaultTagName: "div",
70
+ render,
71
+ props: mergeProps(defaultProps, props)
72
+ });
73
+ }
74
+ //#endregion
75
+ export { CommentEntry, CommentEntryAuthor, CommentEntryBody, CommentEntryHeader, CommentEntryTime };
@@ -0,0 +1,18 @@
1
+ //#region src/components/comment/comment-highlight.d.ts
2
+ /** The highlight of every passage that has comments (`::highlight(raft-comment)` in styles.css). */
3
+ export declare const COMMENT_HIGHLIGHT = "raft-comment";
4
+ /** The highlight of the passage of the open discussion (`::highlight(raft-comment-active)`). */
5
+ export declare const COMMENT_HIGHLIGHT_ACTIVE = "raft-comment-active";
6
+ /**
7
+ * Highlights the passages comments are on with the CSS Custom Highlight API,
8
+ * so the document's DOM is never changed: no `<mark>` is wrapped around its
9
+ * text. Register the ranges of every anchored comment under
10
+ * `COMMENT_HIGHLIGHT`, and the open discussion's under
11
+ * `COMMENT_HIGHLIGHT_ACTIVE`, which paints over it. Passing no ranges clears
12
+ * the name. Returns a function that clears it.
13
+ *
14
+ * Where the browser has no `CSS.highlights`, it does nothing: the passages are
15
+ * not highlighted, and the cards still say where they belong.
16
+ */
17
+ export declare function setCommentHighlights(name: string, ranges: Iterable<Range>): () => void;
18
+ //#endregion
@@ -0,0 +1,33 @@
1
+ //#region src/components/comment/comment-highlight.ts
2
+ /** The highlight of every passage that has comments (`::highlight(raft-comment)` in styles.css). */
3
+ const COMMENT_HIGHLIGHT = "raft-comment";
4
+ /** The highlight of the passage of the open discussion (`::highlight(raft-comment-active)`). */
5
+ const COMMENT_HIGHLIGHT_ACTIVE = "raft-comment-active";
6
+ /**
7
+ * Highlights the passages comments are on with the CSS Custom Highlight API,
8
+ * so the document's DOM is never changed: no `<mark>` is wrapped around its
9
+ * text. Register the ranges of every anchored comment under
10
+ * `COMMENT_HIGHLIGHT`, and the open discussion's under
11
+ * `COMMENT_HIGHLIGHT_ACTIVE`, which paints over it. Passing no ranges clears
12
+ * the name. Returns a function that clears it.
13
+ *
14
+ * Where the browser has no `CSS.highlights`, it does nothing: the passages are
15
+ * not highlighted, and the cards still say where they belong.
16
+ */
17
+ function setCommentHighlights(name, ranges) {
18
+ const registry = typeof CSS === "undefined" ? void 0 : CSS.highlights;
19
+ if (!registry || typeof Highlight === "undefined") return () => {};
20
+ const list = [...ranges];
21
+ if (list.length === 0) {
22
+ registry.delete(name);
23
+ return () => {};
24
+ }
25
+ const highlight = new Highlight(...list);
26
+ if (name === "raft-comment-active") highlight.priority = 1;
27
+ registry.set(name, highlight);
28
+ return () => {
29
+ if (registry.get(name) === highlight) registry.delete(name);
30
+ };
31
+ }
32
+ //#endregion
33
+ export { COMMENT_HIGHLIGHT, COMMENT_HIGHLIGHT_ACTIVE, setCommentHighlights };
@@ -0,0 +1,32 @@
1
+ //#region src/components/comment/comment-margin-layout.d.ts
2
+ /** One card in the margin: where its anchor is and how tall the card is, in px. */
3
+ export type CommentMarginLayoutItem = {
4
+ id: string;
5
+ /** The y of the card's anchor, measured from the top of the margin. */
6
+ top: number;
7
+ /** The card's rendered height. */
8
+ height: number;
9
+ };
10
+ export type CommentMarginLayoutOptions = {
11
+ /** Space between two cards that would otherwise touch, in px. Default 8. */
12
+ gap?: number;
13
+ /** The card pinned to its anchor; the others make room around it. */
14
+ activeId?: string | null;
15
+ };
16
+ export type CommentMarginLayout = {
17
+ /** The resolved top of each card, by id. */
18
+ tops: Record<string, number>;
19
+ /** The bottom of the lowest card: the height the margin needs. */
20
+ height: number;
21
+ };
22
+ /**
23
+ * Places the cards of a comment margin the way Google Docs does. Cards keep
24
+ * document order (by their anchor's top; equal tops keep the order given) and
25
+ * never overlap: each sits at its anchor, or `gap` below the card before it.
26
+ * The active card is pinned to its anchor instead, the cards above it are
27
+ * pushed up to make room and the cards below it pushed down. Nothing goes
28
+ * above 0: when the cards above the active one don't fit between 0 and its
29
+ * anchor, they stack from 0 and the active card follows them.
30
+ */
31
+ export declare function resolveCommentMarginLayout(items: readonly CommentMarginLayoutItem[], { gap, activeId }?: CommentMarginLayoutOptions): CommentMarginLayout;
32
+ //#endregion
@@ -0,0 +1,44 @@
1
+ //#region src/components/comment/comment-margin-layout.ts
2
+ /**
3
+ * Places the cards of a comment margin the way Google Docs does. Cards keep
4
+ * document order (by their anchor's top; equal tops keep the order given) and
5
+ * never overlap: each sits at its anchor, or `gap` below the card before it.
6
+ * The active card is pinned to its anchor instead, the cards above it are
7
+ * pushed up to make room and the cards below it pushed down. Nothing goes
8
+ * above 0: when the cards above the active one don't fit between 0 and its
9
+ * anchor, they stack from 0 and the active card follows them.
10
+ */
11
+ function resolveCommentMarginLayout(items, { gap = 8, activeId = null } = {}) {
12
+ const order = items.map((item, index) => ({
13
+ item,
14
+ index
15
+ })).sort((a, b) => a.item.top - b.item.top || a.index - b.index).map(({ item }) => item);
16
+ const tops = order.map((item) => item.top);
17
+ const stackDown = (from, floor) => {
18
+ let next = floor;
19
+ for (let i = from; i < order.length; i += 1) {
20
+ tops[i] = Math.max(order[i].top, next);
21
+ next = tops[i] + order[i].height + gap;
22
+ }
23
+ };
24
+ const pinned = activeId == null ? -1 : order.findIndex((item) => item.id === activeId);
25
+ if (pinned < 0) stackDown(0, 0);
26
+ else {
27
+ tops[pinned] = Math.max(order[pinned].top, 0);
28
+ for (let i = pinned - 1; i >= 0; i -= 1) tops[i] = Math.min(order[i].top, tops[i + 1] - gap - order[i].height);
29
+ if (pinned > 0 && tops[0] < 0) stackDown(0, 0);
30
+ else stackDown(pinned + 1, tops[pinned] + order[pinned].height + gap);
31
+ }
32
+ const result = {};
33
+ let height = 0;
34
+ order.forEach((item, i) => {
35
+ result[item.id] = tops[i];
36
+ height = Math.max(height, tops[i] + item.height);
37
+ });
38
+ return {
39
+ tops: result,
40
+ height
41
+ };
42
+ }
43
+ //#endregion
44
+ export { resolveCommentMarginLayout };
@@ -0,0 +1,29 @@
1
+ import { useRender } from "@base-ui/react/use-render";
2
+ //#region src/components/comment/comment-margin.d.ts
3
+ export type CommentMarginProps = useRender.ComponentProps<"div"> & {
4
+ /** Space between two cards that would otherwise touch, in px. Default 8. */
5
+ gap?: number;
6
+ };
7
+ /**
8
+ * The column beside a document that holds its comment cards, each level with
9
+ * the passage it is about. It measures its `CommentMarginItem`s with one
10
+ * `ResizeObserver`, resolves their collisions with
11
+ * `resolveCommentMarginLayout`, and takes the height the lowest card needs.
12
+ * Place it beside the document so that its top is the top the items' `top`
13
+ * is measured from.
14
+ */
15
+ export declare function CommentMargin({ className, render, style, gap, ...props }: CommentMarginProps): import("react").JSX.Element;
16
+ export type CommentMarginItemProps = useRender.ComponentProps<"div"> & {
17
+ /** Where the card's anchor is: its y, in px, from the top of the margin. */
18
+ top: number;
19
+ /** Pins this card to its anchor and moves the others around it. */
20
+ active?: boolean;
21
+ };
22
+ /**
23
+ * One card's place in a `CommentMargin`. It sits at `top`, or lower when the
24
+ * card above it is in the way; the active one stays at `top` and the others
25
+ * make room. Items with the same `top` keep the order they were first
26
+ * rendered in. The resolved top is `data-top`, applied as a `translateY`.
27
+ */
28
+ export declare function CommentMarginItem({ className, render, style, top, active, ...props }: CommentMarginItemProps): import("react").ReactElement<unknown, string | import("react").JSXElementConstructor<any>>;
29
+ //#endregion
@@ -0,0 +1,164 @@
1
+ import { comment } from "./comment.recipe.mjs";
2
+ import { resolveCommentMarginLayout } from "./comment-margin-layout.mjs";
3
+ import { createContext, use, useCallback, useEffect, useId, useLayoutEffect, useMemo, useRef, useState } from "react";
4
+ import { jsx } from "react/jsx-runtime";
5
+ import { mergeProps } from "@base-ui/react/merge-props";
6
+ import { useRender } from "@base-ui/react/use-render";
7
+ //#region src/components/comment/comment-margin.tsx
8
+ const CommentMarginContext = createContext(null);
9
+ function useCommentMargin() {
10
+ const context = use(CommentMarginContext);
11
+ if (!context) throw new Error("CommentMarginItem must be used within CommentMargin.");
12
+ return context;
13
+ }
14
+ const heightOf = (element) => element.getBoundingClientRect().height;
15
+ /**
16
+ * The column beside a document that holds its comment cards, each level with
17
+ * the passage it is about. It measures its `CommentMarginItem`s with one
18
+ * `ResizeObserver`, resolves their collisions with
19
+ * `resolveCommentMarginLayout`, and takes the height the lowest card needs.
20
+ * Place it beside the document so that its top is the top the items' `top`
21
+ * is measured from.
22
+ */
23
+ function CommentMargin({ className, render, style, gap = 8, ...props }) {
24
+ const { margin } = comment();
25
+ const [entries, setEntries] = useState(() => /* @__PURE__ */ new Map());
26
+ const [animate, setAnimate] = useState(false);
27
+ const observer = useRef(null);
28
+ const observed = useRef(/* @__PURE__ */ new Map());
29
+ const patch = useCallback((id, next) => {
30
+ setEntries((current) => {
31
+ const previous = current.get(id);
32
+ if (next === null) {
33
+ if (!previous) return current;
34
+ const without = new Map(current);
35
+ without.delete(id);
36
+ return without;
37
+ }
38
+ if (!previous && next.top === void 0) return current;
39
+ const merged = {
40
+ top: 0,
41
+ height: 0,
42
+ active: false,
43
+ ...previous,
44
+ ...next
45
+ };
46
+ if (previous && previous.top === merged.top && previous.height === merged.height && previous.active === merged.active) return current;
47
+ const updated = new Map(current);
48
+ updated.set(id, merged);
49
+ return updated;
50
+ });
51
+ }, []);
52
+ const place = useCallback((id, placement) => patch(id, placement), [patch]);
53
+ const observe = useCallback((id, element) => {
54
+ observer.current ??= new ResizeObserver((records) => {
55
+ for (const record of records) {
56
+ const target = observed.current.get(record.target);
57
+ if (target) patch(target, { height: heightOf(record.target) });
58
+ }
59
+ });
60
+ observed.current.set(element, id);
61
+ patch(id, { height: heightOf(element) });
62
+ observer.current.observe(element);
63
+ return () => {
64
+ observer.current?.unobserve(element);
65
+ observed.current.delete(element);
66
+ };
67
+ }, [patch]);
68
+ useEffect(() => () => observer.current?.disconnect(), []);
69
+ const layout = useMemo(() => {
70
+ const items = [...entries].map(([id, { top, height }]) => ({
71
+ id,
72
+ top,
73
+ height
74
+ }));
75
+ const activeId = [...entries].find(([, entry]) => entry.active)?.[0];
76
+ return resolveCommentMarginLayout(items, {
77
+ gap,
78
+ activeId
79
+ });
80
+ }, [entries, gap]);
81
+ const measured = entries.size > 0;
82
+ useEffect(() => {
83
+ if (!measured) return;
84
+ const frame = requestAnimationFrame(() => setAnimate(true));
85
+ return () => cancelAnimationFrame(frame);
86
+ }, [measured]);
87
+ const context = useMemo(() => ({
88
+ tops: layout.tops,
89
+ animate,
90
+ place,
91
+ observe
92
+ }), [
93
+ layout.tops,
94
+ animate,
95
+ place,
96
+ observe
97
+ ]);
98
+ const defaultProps = {
99
+ "data-slot": "comment-margin",
100
+ className: margin({ className }),
101
+ style: {
102
+ minHeight: layout.height,
103
+ ...style
104
+ }
105
+ };
106
+ const element = useRender({
107
+ defaultTagName: "div",
108
+ render,
109
+ props: mergeProps(defaultProps, props)
110
+ });
111
+ return /* @__PURE__ */ jsx(CommentMarginContext, {
112
+ value: context,
113
+ children: element
114
+ });
115
+ }
116
+ /**
117
+ * One card's place in a `CommentMargin`. It sits at `top`, or lower when the
118
+ * card above it is in the way; the active one stays at `top` and the others
119
+ * make room. Items with the same `top` keep the order they were first
120
+ * rendered in. The resolved top is `data-top`, applied as a `translateY`.
121
+ */
122
+ function CommentMarginItem({ className, render, style, top, active = false, ...props }) {
123
+ const { marginItem } = comment();
124
+ const { tops, animate, place, observe } = useCommentMargin();
125
+ const id = useId();
126
+ const [element, setElement] = useState(null);
127
+ useLayoutEffect(() => {
128
+ place(id, {
129
+ top,
130
+ active
131
+ });
132
+ }, [
133
+ place,
134
+ id,
135
+ top,
136
+ active
137
+ ]);
138
+ useLayoutEffect(() => element ? observe(id, element) : void 0, [
139
+ observe,
140
+ id,
141
+ element
142
+ ]);
143
+ useLayoutEffect(() => () => place(id, null), [place, id]);
144
+ const resolved = tops[id] ?? Math.max(top, 0);
145
+ const defaultProps = {
146
+ "data-slot": "comment-margin-item",
147
+ "data-top": String(resolved),
148
+ "data-active": active ? "" : void 0,
149
+ "data-animate": animate ? "" : void 0,
150
+ className: marginItem({ className }),
151
+ style: {
152
+ ...style,
153
+ transform: `translateY(${resolved}px)`
154
+ }
155
+ };
156
+ return useRender({
157
+ defaultTagName: "div",
158
+ render,
159
+ ref: setElement,
160
+ props: mergeProps(defaultProps, props)
161
+ });
162
+ }
163
+ //#endregion
164
+ export { CommentMargin, CommentMarginItem };
@@ -0,0 +1,16 @@
1
+ import { StyledProps } from "../../lib/styled-props.mjs";
2
+ import { DataAttributes } from "../../lib/data-attributes.mjs";
3
+ import { Button } from "@base-ui/react/button";
4
+ //#region src/components/comment/comment-marker.d.ts
5
+ export type CommentMarkerProps = StyledProps<Button.Props> & DataAttributes & {
6
+ /** The marker of the discussion that is open. */
7
+ active?: boolean;
8
+ };
9
+ /**
10
+ * Where there is no room for a margin: a small button beside a passage that
11
+ * has comments, with the authors' avatars (an `AvatarGroup` of up to 3
12
+ * `size="2xs"` avatars) and the count. It opens the discussion, in a bottom
13
+ * sheet. Give it an `aria-label` that starts with the count ("2 comments").
14
+ */
15
+ export declare function CommentMarker({ className, render, nativeButton, active, ...props }: CommentMarkerProps): import("react").JSX.Element;
16
+ //#endregion
@@ -0,0 +1,24 @@
1
+ import { defaultNativeButton } from "../../lib/default-native-button.mjs";
2
+ import { comment } from "./comment.recipe.mjs";
3
+ import { jsx } from "react/jsx-runtime";
4
+ import { Button } from "@base-ui/react/button";
5
+ //#region src/components/comment/comment-marker.tsx
6
+ /**
7
+ * Where there is no room for a margin: a small button beside a passage that
8
+ * has comments, with the authors' avatars (an `AvatarGroup` of up to 3
9
+ * `size="2xs"` avatars) and the count. It opens the discussion, in a bottom
10
+ * sheet. Give it an `aria-label` that starts with the count ("2 comments").
11
+ */
12
+ function CommentMarker({ className, render, nativeButton, active = false, ...props }) {
13
+ const { marker } = comment();
14
+ return /* @__PURE__ */ jsx(Button, {
15
+ ...props,
16
+ render,
17
+ nativeButton: nativeButton ?? defaultNativeButton(render),
18
+ "data-slot": "comment-marker",
19
+ "data-active": active ? "" : void 0,
20
+ className: marker({ className })
21
+ });
22
+ }
23
+ //#endregion
24
+ export { CommentMarker };
@@ -0,0 +1,58 @@
1
+ import { tv } from "../../lib/tv.mjs";
2
+ //#region src/components/comment/comment.recipe.ts
3
+ const comment = tv({
4
+ slots: {
5
+ margin: ["relative min-w-0"],
6
+ marginItem: [
7
+ "absolute inset-x-0 top-0",
8
+ "data-animate:transition-transform data-animate:duration-150 data-animate:ease-out",
9
+ "motion-reduce:transition-none",
10
+ "data-active:z-10"
11
+ ],
12
+ card: [
13
+ "relative flex min-w-0 flex-col gap-2",
14
+ "rounded-container border border-line-hairline p-3",
15
+ "bg-layer-card text-foreground shadow-none outline-none",
16
+ "data-active:border-[1.5px] data-active:border-line-strong data-active:p-[11.5px] data-active:shadow-float"
17
+ ],
18
+ cardTrigger: [
19
+ "absolute -inset-px z-10 cursor-pointer",
20
+ "rounded-container border-0 bg-transparent p-0",
21
+ "hover:bg-fill-subtle active:bg-fill-medium",
22
+ "outline-none focus-visible:shadow-focus"
23
+ ],
24
+ cardQuote: ["sr-only"],
25
+ cardMeta: [
26
+ "flex min-w-0 items-center gap-1",
27
+ "font-sans text-caption text-foreground-hint",
28
+ "[&_svg]:size-3.5 [&_svg]:shrink-0",
29
+ "[button&]:enabled:cursor-pointer [button&]:border-0 [button&]:bg-transparent [button&]:p-0 [button&]:text-start",
30
+ "[button&]:decoration-[1.5px] [button&]:underline-offset-[3px] [button&]:enabled:hover:underline",
31
+ "[button&]:rounded-chip [button&]:outline-none [button&]:focus-visible:shadow-focus"
32
+ ],
33
+ entry: ["flex min-w-0 flex-col gap-1", "[[data-slot=comment-entry]+&]:mt-1"],
34
+ entryHeader: ["flex min-w-0 items-center gap-1.5", "*:data-[slot=avatar]:me-0.5"],
35
+ entryAuthor: ["min-w-0 truncate", "text-subhead font-bold text-foreground"],
36
+ entryTime: ["shrink-0 whitespace-nowrap", "font-mono text-mono-meta tabular-nums text-foreground-hint"],
37
+ entryBody: [
38
+ "wrap-break-word select-text",
39
+ "text-callout text-foreground",
40
+ "selection:bg-selection"
41
+ ],
42
+ marker: [
43
+ "relative inline-flex h-6 shrink-0 items-center gap-1 align-top whitespace-nowrap",
44
+ "rounded-chip border border-line-hairline py-0 ps-[3px] pe-1.5",
45
+ "font-mono text-mono-meta font-bold tabular-nums text-foreground",
46
+ "bg-layer-card [--avatar-group-surface:var(--layer-card)]",
47
+ "cursor-pointer hover:overlay-medium active:overlay-medium",
48
+ "data-active:border-[1.5px] data-active:border-line-strong data-active:bg-brand-soft data-active:ps-[2.5px] data-active:pe-[5.5px]",
49
+ "data-popup-open:border-[1.5px] data-popup-open:border-line-strong data-popup-open:bg-brand-soft data-popup-open:ps-[2.5px] data-popup-open:pe-[5.5px]",
50
+ "data-active:[--avatar-group-surface:var(--brand-soft)] data-popup-open:[--avatar-group-surface:var(--brand-soft)]",
51
+ "outline-none focus-visible:shadow-focus",
52
+ "after:absolute after:-inset-x-1 after:-inset-y-2.5"
53
+ ]
54
+ },
55
+ variants: { clamp: { true: { entryBody: ["line-clamp-2"] } } }
56
+ });
57
+ //#endregion
58
+ export { comment };
@@ -0,0 +1,8 @@
1
+ import { CommentCard, CommentCardMeta, CommentCardMetaProps, CommentCardProps, CommentCardQuote, CommentCardQuoteProps, CommentCardTrigger, CommentCardTriggerProps } from "./comment-card.mjs";
2
+ import { CommentEntry, CommentEntryAuthor, CommentEntryAuthorProps, CommentEntryBody, CommentEntryBodyProps, CommentEntryHeader, CommentEntryHeaderProps, CommentEntryProps, CommentEntryTime, CommentEntryTimeProps } from "./comment-entry.mjs";
3
+ import { COMMENT_HIGHLIGHT, COMMENT_HIGHLIGHT_ACTIVE, setCommentHighlights } from "./comment-highlight.mjs";
4
+ import { CommentMargin, CommentMarginItem, CommentMarginItemProps, CommentMarginProps } from "./comment-margin.mjs";
5
+ import { CommentMarginLayout, CommentMarginLayoutItem, CommentMarginLayoutOptions, resolveCommentMarginLayout } from "./comment-margin-layout.mjs";
6
+ import { CommentMarker, CommentMarkerProps } from "./comment-marker.mjs";
7
+ import { UseCommentMarginFitsOptions, useCommentMarginFits } from "./use-comment-margin-fits.mjs";
8
+ export { COMMENT_HIGHLIGHT, COMMENT_HIGHLIGHT_ACTIVE, CommentCard, CommentCardMeta, type CommentCardMetaProps, type CommentCardProps, CommentCardQuote, type CommentCardQuoteProps, CommentCardTrigger, type CommentCardTriggerProps, CommentEntry, CommentEntryAuthor, type CommentEntryAuthorProps, CommentEntryBody, type CommentEntryBodyProps, CommentEntryHeader, type CommentEntryHeaderProps, type CommentEntryProps, CommentEntryTime, type CommentEntryTimeProps, CommentMargin, CommentMarginItem, type CommentMarginItemProps, type CommentMarginLayout, type CommentMarginLayoutItem, type CommentMarginLayoutOptions, type CommentMarginProps, CommentMarker, type CommentMarkerProps, type UseCommentMarginFitsOptions, resolveCommentMarginLayout, setCommentHighlights, useCommentMarginFits };
@@ -0,0 +1,16 @@
1
+ //#region src/components/comment/use-comment-margin-fits.d.ts
2
+ export type UseCommentMarginFitsOptions = {
3
+ /** The narrowest the viewer may be for the margin to show, in px. Default 784. */
4
+ minWidth?: number;
5
+ };
6
+ /**
7
+ * Whether a viewer has room for a comment margin beside its document: true
8
+ * only on a desktop (from 768px with a mouse or a trackpad, the query the
9
+ * desktop metrics use) and while `element`, the viewer that holds the
10
+ * document and the margin, is at least `minWidth` wide. Otherwise show
11
+ * `CommentMarker`s and open discussions in a bottom sheet. Cards and markers
12
+ * are different trees, so this is measured in JavaScript (a
13
+ * `ResizeObserver` on the element), not decided by a container query.
14
+ */
15
+ export declare function useCommentMarginFits(element: Element | null, { minWidth }?: UseCommentMarginFitsOptions): boolean;
16
+ //#endregion