@botiverse/raft-ui 0.50.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 +32 -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 -17053
  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 -1222
  581. package/dist/wip.mjs +43 -3079
  582. package/package.json +8 -1
  583. package/dist/inbox-item-B4nNvpp1.d.mts +0 -1784
  584. package/dist/inbox-item-DHJOrxB8.mjs +0 -7454
  585. package/dist/style.css +0 -1395
@@ -0,0 +1,83 @@
1
+ import { ComponentPropsWithoutRef, CompositionEventHandler, FocusEventHandler, FormEventHandler, KeyboardEventHandler, PointerEvent, RefObject } from "react";
2
+ //#region src/components/composer/use-composer-suggestions.d.ts
3
+ export interface ComposerSuggestionTriggerMatch {
4
+ /** The trigger marker that opened the list, e.g. "@" or "#". */
5
+ marker: string;
6
+ /** The query typed after the marker, excluding the marker. */
7
+ query: string;
8
+ /** Caret index in the value where the marker begins. */
9
+ start: number;
10
+ }
11
+ export interface UseComposerSuggestionsParams<TItem extends object> {
12
+ /** Controlled value of the composer input. */
13
+ value: string;
14
+ /** Called when typing or an inserted suggestion changes the value. */
15
+ onValueChange: (value: string) => void;
16
+ /** Detect an active trigger in the text before the caret; return null when inactive. */
17
+ detectTrigger: (textBeforeCaret: string) => ComposerSuggestionTriggerMatch | null;
18
+ /** Items offered for the active trigger. An empty list closes the popup. */
19
+ getItems: (match: ComposerSuggestionTriggerMatch) => readonly TItem[];
20
+ /** Text inserted in place of the trigger token when an item is chosen, e.g. "@handle ". */
21
+ getItemText: (item: TItem) => string;
22
+ /** Optional predicate marking an item as non-selectable. */
23
+ isItemDisabled?: (item: TItem) => boolean;
24
+ }
25
+ export type ComposerSuggestionsInputProps = Omit<ComponentPropsWithoutRef<"textarea">, "aria-activedescendant" | "aria-autocomplete" | "aria-controls" | "role" | "value">;
26
+ export type ComposerSuggestionsListProps = Omit<ComponentPropsWithoutRef<"div">, "aria-label" | "aria-labelledby" | "id" | "role"> & ({
27
+ "aria-label": string;
28
+ "aria-labelledby"?: never;
29
+ } | {
30
+ "aria-label"?: never;
31
+ "aria-labelledby": string;
32
+ });
33
+ export type ComposerSuggestionsOptionProps = Omit<ComponentPropsWithoutRef<"div">, "aria-disabled" | "aria-selected" | "data-disabled" | "data-composer-suggestion-index" | "data-highlighted" | "id" | "role">;
34
+ interface ComposerSuggestionsInputInternalProps {
35
+ "aria-activedescendant": string | undefined;
36
+ "aria-autocomplete": "list";
37
+ "aria-controls": string | undefined;
38
+ ref: RefObject<HTMLTextAreaElement | null>;
39
+ value: string;
40
+ onBlur: FocusEventHandler<HTMLTextAreaElement>;
41
+ onChange: FormEventHandler<HTMLTextAreaElement>;
42
+ onCompositionEnd: CompositionEventHandler<HTMLTextAreaElement>;
43
+ onCompositionStart: () => void;
44
+ onKeyDown: KeyboardEventHandler<HTMLTextAreaElement>;
45
+ onSelect: FormEventHandler<HTMLTextAreaElement>;
46
+ }
47
+ interface ComposerSuggestionsListInternalProps {
48
+ id: string;
49
+ ref: RefObject<HTMLDivElement | null>;
50
+ role: "listbox";
51
+ }
52
+ interface ComposerSuggestionsOptionInternalProps {
53
+ "aria-disabled": boolean;
54
+ "aria-selected": boolean;
55
+ "data-disabled": boolean;
56
+ "data-composer-suggestion-index": number;
57
+ "data-highlighted": boolean;
58
+ id: string;
59
+ onClick: () => void;
60
+ onPointerDown: (event: PointerEvent<HTMLDivElement>) => void;
61
+ role: "option";
62
+ }
63
+ /**
64
+ * Headless behavior for an inline trigger-driven suggestion popup (@mention, #channel)
65
+ * layered over a composer textarea. Owns open state, highlighted option, keyboard
66
+ * navigation, IME guarding, and caret-preserving insertion. The consumer supplies
67
+ * trigger detection, item data, insertion text, and textarea/listbox option semantics.
68
+ */
69
+ export declare function useComposerSuggestions<TItem extends object>({ value, onValueChange, detectTrigger, getItems, getItemText, isItemDisabled }: UseComposerSuggestionsParams<TItem>): {
70
+ open: boolean;
71
+ items: readonly TItem[];
72
+ highlightedIndex: number;
73
+ activeItem: TItem | undefined;
74
+ inputRef: RefObject<HTMLTextAreaElement | null>;
75
+ listRef: RefObject<HTMLDivElement | null>;
76
+ getInputProps: (props?: ComposerSuggestionsInputProps) => ComposerSuggestionsInputInternalProps & ComposerSuggestionsInputProps;
77
+ getListProps: (props: ComposerSuggestionsListProps) => ComposerSuggestionsListInternalProps & ComposerSuggestionsListProps;
78
+ getOptionProps: (item: TItem, index: number, props?: ComposerSuggestionsOptionProps) => ComposerSuggestionsOptionInternalProps & ComposerSuggestionsOptionProps;
79
+ select: (item: TItem) => void;
80
+ insert: (text: string) => void;
81
+ clear: () => void;
82
+ };
83
+ //#endregion
@@ -0,0 +1,207 @@
1
+ import { useEffect, useId, useRef, useState } from "react";
2
+ import { mergeProps } from "@base-ui/react/merge-props";
3
+ //#region src/components/composer/use-composer-suggestions.ts
4
+ function findNextEnabledIndex(items, current, direction, isItemDisabled) {
5
+ if (items.length === 0) return -1;
6
+ const start = current >= 0 ? current : direction === 1 ? -1 : 0;
7
+ for (let offset = 1; offset <= items.length; offset += 1) {
8
+ const index = (start + direction * offset + items.length) % items.length;
9
+ if (!isItemDisabled(items[index])) return index;
10
+ }
11
+ return -1;
12
+ }
13
+ function normalizeHighlightedIndex(items, highlightedIndex, isItemDisabled) {
14
+ const highlightedItem = items[highlightedIndex];
15
+ if (highlightedItem !== void 0 && !isItemDisabled(highlightedItem)) return highlightedIndex;
16
+ return findNextEnabledIndex(items, -1, 1, isItemDisabled);
17
+ }
18
+ /**
19
+ * Headless behavior for an inline trigger-driven suggestion popup (@mention, #channel)
20
+ * layered over a composer textarea. Owns open state, highlighted option, keyboard
21
+ * navigation, IME guarding, and caret-preserving insertion. The consumer supplies
22
+ * trigger detection, item data, insertion text, and textarea/listbox option semantics.
23
+ */
24
+ function useComposerSuggestions({ value, onValueChange, detectTrigger, getItems, getItemText, isItemDisabled = () => false }) {
25
+ const listId = `composer-suggestions-${useId()}`;
26
+ const inputRef = useRef(null);
27
+ const listRef = useRef(null);
28
+ const composingRef = useRef(false);
29
+ const frameRef = useRef(null);
30
+ const caretRef = useRef(value.length);
31
+ const [interaction, setInteraction] = useState(() => {
32
+ const initialMatch = detectTrigger(value);
33
+ return {
34
+ highlightedIndex: initialMatch ? findNextEnabledIndex(getItems(initialMatch), -1, 1, isItemDisabled) : -1,
35
+ match: initialMatch,
36
+ value
37
+ };
38
+ });
39
+ const match = interaction.value === value ? interaction.match : null;
40
+ const items = match ? getItems(match) : [];
41
+ const highlightedIndex = normalizeHighlightedIndex(items, interaction.highlightedIndex, isItemDisabled);
42
+ const hasActiveItem = highlightedIndex >= 0 && highlightedIndex < items.length;
43
+ const activeItem = hasActiveItem ? items[highlightedIndex] : void 0;
44
+ const open = Boolean(match && items.length > 0);
45
+ const syncTrigger = (nextValue, caret) => {
46
+ const nextMatch = detectTrigger(nextValue.slice(0, caret));
47
+ setInteraction({
48
+ highlightedIndex: nextMatch ? findNextEnabledIndex(getItems(nextMatch), -1, 1, isItemDisabled) : -1,
49
+ match: nextMatch,
50
+ value: nextValue
51
+ });
52
+ };
53
+ const commit = (nextValue, caret) => {
54
+ onValueChange(nextValue);
55
+ setInteraction({
56
+ highlightedIndex: -1,
57
+ match: null,
58
+ value: nextValue
59
+ });
60
+ caretRef.current = caret;
61
+ if (frameRef.current !== null) cancelAnimationFrame(frameRef.current);
62
+ frameRef.current = requestAnimationFrame(() => {
63
+ inputRef.current?.focus({ preventScroll: true });
64
+ inputRef.current?.setSelectionRange(caret, caret);
65
+ frameRef.current = null;
66
+ });
67
+ };
68
+ const select = (item) => {
69
+ if (!match || isItemDisabled(item)) return;
70
+ const caret = interaction.value === value ? caretRef.current : value.length;
71
+ const insertion = getItemText(item);
72
+ const nextValue = `${value.slice(0, match.start)}${insertion}${value.slice(caret)}`;
73
+ commit(nextValue, match.start + insertion.length);
74
+ };
75
+ const insert = (text) => {
76
+ const caret = interaction.value === value ? caretRef.current : value.length;
77
+ const nextValue = `${value.slice(0, caret)}${text}${value.slice(caret)}`;
78
+ commit(nextValue, caret + text.length);
79
+ };
80
+ const clear = () => {
81
+ onValueChange("");
82
+ setInteraction({
83
+ highlightedIndex: -1,
84
+ match: null,
85
+ value: ""
86
+ });
87
+ caretRef.current = 0;
88
+ };
89
+ const handleChange = (event) => {
90
+ caretRef.current = event.currentTarget.selectionStart ?? 0;
91
+ onValueChange(event.currentTarget.value);
92
+ syncTrigger(event.currentTarget.value, caretRef.current);
93
+ };
94
+ const handleSelect = (event) => {
95
+ caretRef.current = event.currentTarget.selectionStart ?? 0;
96
+ syncTrigger(event.currentTarget.value, caretRef.current);
97
+ };
98
+ const handleCompositionEnd = (event) => {
99
+ composingRef.current = false;
100
+ caretRef.current = event.currentTarget.selectionStart ?? 0;
101
+ syncTrigger(event.currentTarget.value, caretRef.current);
102
+ };
103
+ const handleBlur = (event) => {
104
+ const nextTarget = event.relatedTarget;
105
+ if (nextTarget instanceof Node && listRef.current?.contains(nextTarget)) return;
106
+ setInteraction({
107
+ highlightedIndex: -1,
108
+ match: null,
109
+ value
110
+ });
111
+ };
112
+ const handleKeyDown = (event) => {
113
+ if (composingRef.current || event.nativeEvent.isComposing || event.keyCode === 229) return;
114
+ if (event.key === "Escape" && open) {
115
+ event.preventDefault();
116
+ setInteraction({
117
+ highlightedIndex: -1,
118
+ match: null,
119
+ value
120
+ });
121
+ return;
122
+ }
123
+ if (!open) return;
124
+ if (event.key === "Enter" && !event.shiftKey && !hasActiveItem) {
125
+ event.preventDefault();
126
+ return;
127
+ }
128
+ if (event.key === "ArrowDown" || event.key === "ArrowUp") {
129
+ event.preventDefault();
130
+ setInteraction({
131
+ highlightedIndex: findNextEnabledIndex(items, highlightedIndex, event.key === "ArrowDown" ? 1 : -1, isItemDisabled),
132
+ match,
133
+ value
134
+ });
135
+ return;
136
+ }
137
+ if ((event.key === "Tab" || event.key === "Enter" && !event.shiftKey) && hasActiveItem && activeItem !== void 0 && !isItemDisabled(activeItem)) {
138
+ event.preventDefault();
139
+ select(activeItem);
140
+ }
141
+ };
142
+ useEffect(() => {
143
+ if (!open || highlightedIndex < 0) return;
144
+ const list = listRef.current;
145
+ const option = list?.querySelector(`[data-composer-suggestion-index="${highlightedIndex}"]`);
146
+ if (!list || !option) return;
147
+ const listRect = list.getBoundingClientRect();
148
+ const optionRect = option.getBoundingClientRect();
149
+ if (optionRect.top < listRect.top || optionRect.bottom > listRect.bottom) option.scrollIntoView({ block: "nearest" });
150
+ }, [highlightedIndex, open]);
151
+ useEffect(() => () => {
152
+ if (frameRef.current !== null) cancelAnimationFrame(frameRef.current);
153
+ }, []);
154
+ const getInputProps = (props = {}) => mergeProps(props, {
155
+ "aria-activedescendant": open && highlightedIndex >= 0 ? `${listId}-option-${highlightedIndex}` : void 0,
156
+ "aria-autocomplete": "list",
157
+ "aria-controls": open ? listId : void 0,
158
+ ref: inputRef,
159
+ value,
160
+ onBlur: handleBlur,
161
+ onChange: handleChange,
162
+ onCompositionEnd: handleCompositionEnd,
163
+ onCompositionStart: () => {
164
+ composingRef.current = true;
165
+ },
166
+ onKeyDown: handleKeyDown,
167
+ onSelect: handleSelect
168
+ });
169
+ const getListProps = (props) => mergeProps(props, {
170
+ id: listId,
171
+ ref: listRef,
172
+ role: "listbox"
173
+ });
174
+ const getOptionProps = (item, index, props = {}) => {
175
+ const highlighted = index === highlightedIndex;
176
+ const internalProps = {
177
+ "aria-disabled": isItemDisabled(item),
178
+ "aria-selected": highlighted,
179
+ "data-disabled": isItemDisabled(item),
180
+ "data-composer-suggestion-index": index,
181
+ "data-highlighted": highlighted,
182
+ id: `${listId}-option-${index}`,
183
+ role: "option",
184
+ onClick: () => select(item),
185
+ onPointerDown: (event) => {
186
+ event.preventDefault();
187
+ }
188
+ };
189
+ return mergeProps(props, internalProps);
190
+ };
191
+ return {
192
+ open,
193
+ items,
194
+ highlightedIndex,
195
+ activeItem,
196
+ inputRef,
197
+ listRef,
198
+ getInputProps,
199
+ getListProps,
200
+ getOptionProps,
201
+ select,
202
+ insert,
203
+ clear
204
+ };
205
+ }
206
+ //#endregion
207
+ export { useComposerSuggestions };
@@ -0,0 +1,53 @@
1
+ import { StyledProps } from "../../lib/styled-props.mjs";
2
+ import { KbdProps } from "../kbd/kbd.mjs";
3
+ import "../kbd/index.mjs";
4
+ import { ComponentPropsWithRef } from "react";
5
+ import { ContextMenu } from "@base-ui/react";
6
+ //#region src/components/context-menu/context-menu.d.ts
7
+ export type ContextMenuProps = ContextMenu.Root.Props;
8
+ declare function ContextMenu$1(props: ContextMenuProps): import("react").JSX.Element;
9
+ export type ContextMenuSubmenuProps = ContextMenu.SubmenuRoot.Props;
10
+ export declare function ContextMenuSubmenu(props: ContextMenuSubmenuProps): import("react").JSX.Element;
11
+ export type ContextMenuTriggerProps = StyledProps<ContextMenu.Trigger.Props>;
12
+ export declare function ContextMenuTrigger({ className, ...props }: ContextMenuTriggerProps): import("react").JSX.Element;
13
+ export type ContextMenuPortalProps = ContextMenu.Portal.Props;
14
+ export declare function ContextMenuPortal(props: ContextMenuPortalProps): import("react").JSX.Element;
15
+ export type ContextMenuContentProps = StyledProps<ContextMenu.Popup.Props> & Partial<Pick<ContextMenu.Positioner.Props, "align" | "alignOffset" | "anchor" | "arrowPadding" | "collisionAvoidance" | "collisionBoundary" | "disableAnchorTracking" | "positionMethod" | "side" | "sideOffset" | "sticky">> & {
16
+ /**
17
+ * Additional space to maintain from the edge of the collision boundary: 8px
18
+ * from the window's edge, and 8px from a frame inset where a shell keeps one.
19
+ * A value you pass is kept as it is.
20
+ * @default 8
21
+ */
22
+ collisionPadding?: ContextMenu.Positioner.Props["collisionPadding"];
23
+ portalProps?: ContextMenuPortalProps;
24
+ };
25
+ export declare function ContextMenuContent({ align, alignOffset, anchor, arrowPadding, collisionAvoidance, collisionBoundary, collisionPadding, disableAnchorTracking, positionMethod, side, sideOffset, sticky, portalProps, className, ...props }: ContextMenuContentProps): import("react").JSX.Element;
26
+ export type ContextMenuPopupProps = ComponentPropsWithRef<"div">;
27
+ export declare function ContextMenuPopup({ className, ...props }: ContextMenuPopupProps): import("react").JSX.Element;
28
+ export type ContextMenuItemProps = StyledProps<ContextMenu.Item.Props>;
29
+ export declare function ContextMenuItem({ className, ...props }: ContextMenuItemProps): import("react").JSX.Element;
30
+ export type ContextMenuItemLabelProps = StyledProps<ComponentPropsWithRef<"span">>;
31
+ export declare function ContextMenuItemLabel({ className, ...props }: ContextMenuItemLabelProps): import("react").JSX.Element;
32
+ export type ContextMenuFooterProps = StyledProps<ComponentPropsWithRef<"div">>;
33
+ export declare function ContextMenuFooter({ className, ...props }: ContextMenuFooterProps): import("react").JSX.Element;
34
+ export type ContextMenuSubmenuTriggerProps = StyledProps<ContextMenu.SubmenuTrigger.Props>;
35
+ export declare function ContextMenuSubmenuTrigger({ children, className, ...props }: ContextMenuSubmenuTriggerProps): import("react").JSX.Element;
36
+ export type ContextMenuLabelProps = StyledProps<ComponentPropsWithRef<"div">>;
37
+ export declare function ContextMenuLabel({ className, ...props }: ContextMenuLabelProps): import("react").JSX.Element;
38
+ export type ContextMenuShortcutProps = KbdProps;
39
+ export declare function ContextMenuShortcut({ className, ...props }: ContextMenuShortcutProps): import("react").JSX.Element;
40
+ export type ContextMenuSeparatorProps = StyledProps<ContextMenu.Separator.Props>;
41
+ export declare function ContextMenuSeparator({ className, ...props }: ContextMenuSeparatorProps): import("react").JSX.Element;
42
+ export type ContextMenuRadioGroupProps = StyledProps<ContextMenu.RadioGroup.Props>;
43
+ export declare function ContextMenuRadioGroup({ ...props }: ContextMenuRadioGroupProps): import("react").JSX.Element;
44
+ export type ContextMenuRadioItemProps = StyledProps<ContextMenu.RadioItem.Props>;
45
+ export declare function ContextMenuRadioItem({ className, children, closeOnClick, ...props }: ContextMenuRadioItemProps): import("react").JSX.Element;
46
+ export type ContextMenuRadioItemIndicatorProps = StyledProps<ContextMenu.RadioItemIndicator.Props>;
47
+ export declare function ContextMenuRadioItemIndicator({ className, ...props }: ContextMenuRadioItemIndicatorProps): import("react").JSX.Element;
48
+ export type ContextMenuCheckboxItemProps = StyledProps<ContextMenu.CheckboxItem.Props>;
49
+ export declare function ContextMenuCheckboxItem({ className, children, ...props }: ContextMenuCheckboxItemProps): import("react").JSX.Element;
50
+ export type ContextMenuCheckboxItemIndicatorProps = StyledProps<ContextMenu.CheckboxItemIndicator.Props>;
51
+ export declare function ContextMenuCheckboxItemIndicator({ className, ...props }: ContextMenuCheckboxItemIndicatorProps): import("react").JSX.Element;
52
+ //#endregion
53
+ export { ContextMenu$1 as ContextMenu };
@@ -0,0 +1,275 @@
1
+ import { tv } from "../../lib/tv.mjs";
2
+ import { useThemeScopeProps } from "../../lib/theme/theme-scope.mjs";
3
+ import { usePopupCollisionPadding } from "../../lib/frame-insets.mjs";
4
+ import { Kbd } from "../kbd/kbd.mjs";
5
+ import { jsx, jsxs } from "react/jsx-runtime";
6
+ import { ContextMenu } from "@base-ui/react";
7
+ //#region src/components/context-menu/context-menu.tsx
8
+ const contextMenu = tv({ slots: {
9
+ trigger: ["select-none"],
10
+ positioner: ["isolate z-50 outline-none"],
11
+ content: [
12
+ "flex flex-col max-h-(--available-height) overflow-hidden",
13
+ "outline-none",
14
+ "min-w-60 gap-0 rounded-container bg-layer-popover p-1 text-foreground",
15
+ "shadow-float ring-1 ring-line-seam"
16
+ ],
17
+ item: [
18
+ "flex w-full cursor-default select-none items-center",
19
+ "text-left outline-none transition-colors",
20
+ "min-h-option gap-2.5 rounded-chip px-2.5 py-option-inset",
21
+ "font-sans text-callout font-medium text-foreground",
22
+ "hover:bg-brand-soft data-highlighted:bg-brand-soft",
23
+ "data-checked:font-bold",
24
+ "data-disabled:pointer-events-none data-disabled:text-foreground-disabled",
25
+ "[&_svg]:pointer-events-none [&_svg]:shrink-0 [&>svg:not([class*='size-'])]:size-4",
26
+ "[&>svg]:text-foreground-muted data-disabled:[&>svg]:text-foreground-disabled"
27
+ ],
28
+ radioItem: [
29
+ "flex w-full cursor-default select-none items-center",
30
+ "text-left outline-none transition-colors",
31
+ "min-h-option gap-2.5 rounded-chip px-2.5 py-option-inset",
32
+ "font-sans text-callout font-medium text-foreground",
33
+ "hover:bg-brand-soft data-highlighted:bg-brand-soft",
34
+ "data-checked:font-bold",
35
+ "data-disabled:pointer-events-none data-disabled:text-foreground-disabled",
36
+ "[&_svg]:pointer-events-none [&_svg]:shrink-0 [&>svg:not([class*='size-'])]:size-4",
37
+ "[&>svg]:text-foreground-muted data-disabled:[&>svg]:text-foreground-disabled"
38
+ ],
39
+ submenuTrigger: [
40
+ "flex w-full cursor-default select-none items-center",
41
+ "text-left outline-none transition-colors",
42
+ "min-h-option gap-2.5 rounded-chip px-2.5 py-option-inset",
43
+ "font-sans text-callout font-medium text-foreground",
44
+ "hover:bg-brand-soft data-highlighted:bg-brand-soft data-popup-open:bg-brand-soft",
45
+ "data-disabled:pointer-events-none data-disabled:text-foreground-disabled",
46
+ "[&_svg]:pointer-events-none [&_svg]:shrink-0 [&>svg:not([class*='size-'])]:size-4",
47
+ "[&>svg]:text-foreground-muted data-disabled:[&>svg]:text-foreground-disabled"
48
+ ],
49
+ itemLabel: ["min-w-0 flex-1 truncate text-left"],
50
+ footer: ["px-3 py-2 text-xs text-foreground-muted tabular-nums"],
51
+ label: ["px-2.5 pt-2 pb-1", "font-sans text-caption font-bold text-foreground-hint"],
52
+ shortcut: [
53
+ "ml-auto",
54
+ "h-auto min-w-0 rounded-none bg-transparent p-0 shadow-none ring-0",
55
+ "font-mono text-mono-meta font-normal text-foreground-hint"
56
+ ],
57
+ separator: ["-mx-1 my-1 h-px border-0 bg-line-hairline"],
58
+ indicator: ["pointer-events-none ml-auto flex shrink-0 items-center justify-center", "size-4 text-foreground [&_svg]:size-4"]
59
+ } });
60
+ function ContextMenu$1(props) {
61
+ return /* @__PURE__ */ jsx(ContextMenu.Root, {
62
+ "data-slot": "context-menu",
63
+ ...props
64
+ });
65
+ }
66
+ function ContextMenuSubmenu(props) {
67
+ return /* @__PURE__ */ jsx(ContextMenu.SubmenuRoot, {
68
+ "data-slot": "context-menu-submenu",
69
+ ...props
70
+ });
71
+ }
72
+ function ContextMenuTrigger({ className, ...props }) {
73
+ const { trigger } = contextMenu();
74
+ return /* @__PURE__ */ jsx(ContextMenu.Trigger, {
75
+ "data-slot": "context-menu-trigger",
76
+ className: trigger({ className }),
77
+ ...props
78
+ });
79
+ }
80
+ function ContextMenuPortal(props) {
81
+ return /* @__PURE__ */ jsx(ContextMenu.Portal, {
82
+ "data-slot": "context-menu-portal",
83
+ ...useThemeScopeProps(props)
84
+ });
85
+ }
86
+ function ContextMenuFramePositioner({ collisionPadding, container, ...props }) {
87
+ const padding = usePopupCollisionPadding(collisionPadding, 8, container);
88
+ return /* @__PURE__ */ jsx(ContextMenu.Positioner, {
89
+ collisionPadding: padding,
90
+ ...props
91
+ });
92
+ }
93
+ const CONTENT_COLLISION_AVOIDANCE = {
94
+ side: "shift",
95
+ align: "shift",
96
+ fallbackAxisSide: "none"
97
+ };
98
+ function ContextMenuContent({ align = "start", alignOffset = 0, anchor, arrowPadding, collisionAvoidance = CONTENT_COLLISION_AVOIDANCE, collisionBoundary, collisionPadding, disableAnchorTracking, positionMethod = "fixed", side = "right", sideOffset = 0, sticky, portalProps, className, ...props }) {
99
+ const { positioner, content } = contextMenu();
100
+ return /* @__PURE__ */ jsx(ContextMenuPortal, {
101
+ ...portalProps,
102
+ children: /* @__PURE__ */ jsx(ContextMenuFramePositioner, {
103
+ align,
104
+ alignOffset,
105
+ anchor,
106
+ arrowPadding,
107
+ collisionAvoidance,
108
+ collisionBoundary,
109
+ collisionPadding,
110
+ container: portalProps?.container,
111
+ disableAnchorTracking,
112
+ positionMethod,
113
+ side,
114
+ sideOffset,
115
+ sticky,
116
+ className: positioner(),
117
+ children: /* @__PURE__ */ jsx(ContextMenu.Popup, {
118
+ "data-slot": "context-menu-content",
119
+ className: content({ className }),
120
+ ...props
121
+ })
122
+ })
123
+ });
124
+ }
125
+ function ContextMenuPopup({ className, ...props }) {
126
+ const { content } = contextMenu();
127
+ return /* @__PURE__ */ jsx("div", {
128
+ "data-slot": "context-menu-content",
129
+ className: content({ className }),
130
+ ...props
131
+ });
132
+ }
133
+ function ContextMenuItem({ className, ...props }) {
134
+ const { item } = contextMenu();
135
+ return /* @__PURE__ */ jsx(ContextMenu.Item, {
136
+ "data-slot": "context-menu-item",
137
+ className: item({ className }),
138
+ ...props
139
+ });
140
+ }
141
+ function ContextMenuItemLabel({ className, ...props }) {
142
+ const { itemLabel } = contextMenu();
143
+ return /* @__PURE__ */ jsx("span", {
144
+ "data-slot": "context-menu-item-label",
145
+ className: itemLabel({ className }),
146
+ ...props
147
+ });
148
+ }
149
+ function ContextMenuFooter({ className, ...props }) {
150
+ const { footer } = contextMenu();
151
+ return /* @__PURE__ */ jsx("div", {
152
+ "data-slot": "context-menu-footer",
153
+ className: footer({ className }),
154
+ ...props
155
+ });
156
+ }
157
+ function ContextMenuSubmenuTrigger({ children, className, ...props }) {
158
+ const { submenuTrigger, indicator } = contextMenu();
159
+ return /* @__PURE__ */ jsxs(ContextMenu.SubmenuTrigger, {
160
+ "data-slot": "context-menu-submenu-trigger",
161
+ className: submenuTrigger({ className }),
162
+ ...props,
163
+ children: [children, /* @__PURE__ */ jsx("span", {
164
+ className: indicator(),
165
+ "data-slot": "context-menu-submenu-trigger-indicator",
166
+ "aria-hidden": "true",
167
+ children: /* @__PURE__ */ jsx(ContextMenuSubmenuChevronIcon, {})
168
+ })]
169
+ });
170
+ }
171
+ function ContextMenuLabel({ className, ...props }) {
172
+ const { label } = contextMenu();
173
+ return /* @__PURE__ */ jsx("div", {
174
+ "data-slot": "context-menu-label",
175
+ className: label({ className }),
176
+ ...props
177
+ });
178
+ }
179
+ function ContextMenuShortcut({ className, ...props }) {
180
+ const { shortcut } = contextMenu();
181
+ return /* @__PURE__ */ jsx(Kbd, {
182
+ "data-slot": "context-menu-shortcut",
183
+ className: shortcut({ className }),
184
+ ...props
185
+ });
186
+ }
187
+ function ContextMenuSeparator({ className, ...props }) {
188
+ const { separator } = contextMenu();
189
+ return /* @__PURE__ */ jsx(ContextMenu.Separator, {
190
+ "data-slot": "context-menu-separator",
191
+ className: separator({ className }),
192
+ ...props
193
+ });
194
+ }
195
+ function ContextMenuSubmenuChevronIcon() {
196
+ return /* @__PURE__ */ jsx("svg", {
197
+ width: "12",
198
+ height: "12",
199
+ viewBox: "0 0 12 12",
200
+ "aria-hidden": true,
201
+ className: "size-3 shrink-0",
202
+ children: /* @__PURE__ */ jsx("g", {
203
+ fill: "none",
204
+ strokeLinecap: "round",
205
+ strokeLinejoin: "round",
206
+ strokeWidth: "1",
207
+ stroke: "currentColor",
208
+ children: /* @__PURE__ */ jsx("path", { d: "M4.25 2.5L7.75 6l-3.5 3.5" })
209
+ })
210
+ });
211
+ }
212
+ function ContextMenuCheckIcon() {
213
+ return /* @__PURE__ */ jsx("svg", {
214
+ width: "12",
215
+ height: "12",
216
+ viewBox: "0 0 12 12",
217
+ "aria-hidden": true,
218
+ className: "size-3 shrink-0",
219
+ children: /* @__PURE__ */ jsx("g", {
220
+ fill: "none",
221
+ strokeLinecap: "round",
222
+ strokeLinejoin: "round",
223
+ strokeWidth: "1",
224
+ stroke: "currentColor",
225
+ children: /* @__PURE__ */ jsx("path", { d: "M1.75 6.41L4.4 9.25L10.25 2.99" })
226
+ })
227
+ });
228
+ }
229
+ function ContextMenuRadioGroup({ ...props }) {
230
+ return /* @__PURE__ */ jsx(ContextMenu.RadioGroup, {
231
+ "data-slot": "context-menu-radio-group",
232
+ ...props
233
+ });
234
+ }
235
+ function ContextMenuRadioItem({ className, children, closeOnClick = true, ...props }) {
236
+ const { radioItem, indicator } = contextMenu();
237
+ return /* @__PURE__ */ jsxs(ContextMenu.RadioItem, {
238
+ "data-slot": "context-menu-radio-item",
239
+ className: radioItem({ className }),
240
+ closeOnClick,
241
+ ...props,
242
+ children: [children, /* @__PURE__ */ jsx("span", {
243
+ className: indicator(),
244
+ children: /* @__PURE__ */ jsx(ContextMenu.RadioItemIndicator, { children: /* @__PURE__ */ jsx(ContextMenuCheckIcon, {}) })
245
+ })]
246
+ });
247
+ }
248
+ function ContextMenuRadioItemIndicator({ className, ...props }) {
249
+ return /* @__PURE__ */ jsx(ContextMenu.RadioItemIndicator, {
250
+ "data-slot": "context-menu-radio-item-indicator",
251
+ className,
252
+ ...props
253
+ });
254
+ }
255
+ function ContextMenuCheckboxItem({ className, children, ...props }) {
256
+ const { item, indicator } = contextMenu();
257
+ return /* @__PURE__ */ jsxs(ContextMenu.CheckboxItem, {
258
+ "data-slot": "context-menu-checkbox-item",
259
+ className: item({ className }),
260
+ ...props,
261
+ children: [children, /* @__PURE__ */ jsx("span", {
262
+ className: indicator(),
263
+ children: /* @__PURE__ */ jsx(ContextMenu.CheckboxItemIndicator, { children: /* @__PURE__ */ jsx(ContextMenuCheckIcon, {}) })
264
+ })]
265
+ });
266
+ }
267
+ function ContextMenuCheckboxItemIndicator({ className, ...props }) {
268
+ return /* @__PURE__ */ jsx(ContextMenu.CheckboxItemIndicator, {
269
+ "data-slot": "context-menu-checkbox-item-indicator",
270
+ className,
271
+ ...props
272
+ });
273
+ }
274
+ //#endregion
275
+ export { ContextMenu$1 as ContextMenu, ContextMenuCheckboxItem, ContextMenuCheckboxItemIndicator, ContextMenuContent, ContextMenuFooter, ContextMenuItem, ContextMenuItemLabel, ContextMenuLabel, ContextMenuPopup, ContextMenuPortal, ContextMenuRadioGroup, ContextMenuRadioItem, ContextMenuRadioItemIndicator, ContextMenuSeparator, ContextMenuShortcut, ContextMenuSubmenu, ContextMenuSubmenuTrigger, ContextMenuTrigger };
@@ -0,0 +1,2 @@
1
+ import { ContextMenu, ContextMenuCheckboxItem, ContextMenuCheckboxItemIndicator, ContextMenuCheckboxItemIndicatorProps, ContextMenuCheckboxItemProps, ContextMenuContent, ContextMenuContentProps, ContextMenuFooter, ContextMenuFooterProps, ContextMenuItem, ContextMenuItemLabel, ContextMenuItemLabelProps, ContextMenuItemProps, ContextMenuLabel, ContextMenuLabelProps, ContextMenuPopup, ContextMenuPopupProps, ContextMenuPortal, ContextMenuPortalProps, ContextMenuProps, ContextMenuRadioGroup, ContextMenuRadioGroupProps, ContextMenuRadioItem, ContextMenuRadioItemIndicator, ContextMenuRadioItemIndicatorProps, ContextMenuRadioItemProps, ContextMenuSeparator, ContextMenuSeparatorProps, ContextMenuShortcut, ContextMenuShortcutProps, ContextMenuSubmenu, ContextMenuSubmenuProps, ContextMenuSubmenuTrigger, ContextMenuSubmenuTriggerProps, ContextMenuTrigger, ContextMenuTriggerProps } from "./context-menu.mjs";
2
+ export { ContextMenu, ContextMenuCheckboxItem, ContextMenuCheckboxItemIndicator, type ContextMenuCheckboxItemIndicatorProps, type ContextMenuCheckboxItemProps, ContextMenuContent, type ContextMenuContentProps, ContextMenuFooter, type ContextMenuFooterProps, ContextMenuItem, ContextMenuItemLabel, type ContextMenuItemLabelProps, type ContextMenuItemProps, ContextMenuLabel, type ContextMenuLabelProps, ContextMenuPopup, type ContextMenuPopupProps, ContextMenuPortal, type ContextMenuPortalProps, type ContextMenuProps, ContextMenuRadioGroup, type ContextMenuRadioGroupProps, ContextMenuRadioItem, ContextMenuRadioItemIndicator, type ContextMenuRadioItemIndicatorProps, type ContextMenuRadioItemProps, ContextMenuSeparator, type ContextMenuSeparatorProps, ContextMenuShortcut, type ContextMenuShortcutProps, ContextMenuSubmenu, type ContextMenuSubmenuProps, ContextMenuSubmenuTrigger, type ContextMenuSubmenuTriggerProps, ContextMenuTrigger, type ContextMenuTriggerProps };
@@ -0,0 +1,9 @@
1
+ import { useRender } from "@base-ui/react/use-render";
2
+ //#region src/components/conversation-panel/conversation-panel-empty-state.d.ts
3
+ export type ConversationPanelEmptyStateProps = useRender.ComponentProps<"div">;
4
+ export declare function ConversationPanelEmptyState({ className, render, ...props }: ConversationPanelEmptyStateProps): import("react").ReactElement<unknown, string | import("react").JSXElementConstructor<any>>;
5
+ export type ConversationPanelEmptyStateBrandProps = useRender.ComponentProps<"div">;
6
+ export declare function ConversationPanelEmptyStateBrand({ className, render, ...props }: ConversationPanelEmptyStateBrandProps): import("react").ReactElement<unknown, string | import("react").JSXElementConstructor<any>>;
7
+ export type ConversationPanelEmptyStateBrandMarkProps = useRender.ComponentProps<"div">;
8
+ export declare function ConversationPanelEmptyStateBrandMark({ className, render, ...props }: ConversationPanelEmptyStateBrandMarkProps): import("react").ReactElement<unknown, string | import("react").JSXElementConstructor<any>>;
9
+ //#endregion