@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,114 @@
1
+ import { tv } from "../../lib/tv.mjs";
2
+ import { mergeProps } from "@base-ui/react/merge-props";
3
+ import { useRender } from "@base-ui/react/use-render";
4
+ //#region src/components/text/text.tsx
5
+ const textColorVariants = {
6
+ default: ["text-foreground"],
7
+ primary: ["text-brand-strong"],
8
+ information: ["text-info-strong"],
9
+ muted: ["text-foreground-muted"],
10
+ placeholder: ["text-foreground-hint"],
11
+ accent: ["text-attention-700"],
12
+ success: ["text-success"],
13
+ warning: ["text-warning"],
14
+ danger: ["text-danger"]
15
+ };
16
+ const heading = tv({
17
+ base: ["m-0 font-heading font-medium text-foreground"],
18
+ variants: {
19
+ level: {
20
+ 1: ["text-[56px] tracking-[-0.01em] leading-16"],
21
+ 2: ["text-5xl tracking-[-0.01em] leading-14"],
22
+ 3: ["text-[40px] tracking-[-0.01em] leading-12"],
23
+ 4: ["text-[32px] tracking-[-0.005em] leading-10"],
24
+ 5: ["text-2xl leading-8"],
25
+ 6: ["text-xl leading-7"]
26
+ },
27
+ variant: textColorVariants
28
+ },
29
+ defaultVariants: { level: 1 }
30
+ });
31
+ const sans = tv({
32
+ base: ["m-0 font-sans font-normal"],
33
+ variants: {
34
+ size: {
35
+ large: ["text-lg leading-7 text-foreground"],
36
+ body: ["text-base leading-6 text-foreground"],
37
+ small: ["text-sm leading-5 text-foreground-muted"],
38
+ caption: ["text-xs leading-4 text-foreground-muted"],
39
+ group: ["text-footnote font-bold text-foreground-hint"]
40
+ },
41
+ variant: textColorVariants
42
+ },
43
+ defaultVariants: { size: "body" }
44
+ });
45
+ const mono = tv({
46
+ base: ["m-0 font-mono font-normal"],
47
+ variants: {
48
+ size: {
49
+ code: ["text-sm leading-5 text-foreground"],
50
+ meta: ["text-xs leading-4 text-foreground-muted"],
51
+ tabular: ["text-sm tabular-nums leading-5 text-foreground"]
52
+ },
53
+ variant: textColorVariants
54
+ },
55
+ defaultVariants: { size: "code" }
56
+ });
57
+ function TextHeading({ level = 1, variant, className, render, ...props }) {
58
+ const defaultProps = { className: heading({
59
+ level,
60
+ variant,
61
+ className
62
+ }) };
63
+ return useRender({
64
+ defaultTagName: `h${level}`,
65
+ render,
66
+ props: mergeProps(defaultProps, props),
67
+ state: {
68
+ slot: "text-heading",
69
+ level,
70
+ variant
71
+ }
72
+ });
73
+ }
74
+ function TextSans({ size = "body", variant, className, render, ...props }) {
75
+ const defaultProps = { className: sans({
76
+ size,
77
+ variant,
78
+ className
79
+ }) };
80
+ return useRender({
81
+ defaultTagName: "p",
82
+ render,
83
+ props: mergeProps(defaultProps, props),
84
+ state: {
85
+ slot: "text-sans",
86
+ size,
87
+ variant
88
+ }
89
+ });
90
+ }
91
+ function TextMono({ size = "code", variant, className, render, ...props }) {
92
+ const defaultProps = { className: mono({
93
+ size,
94
+ variant,
95
+ className
96
+ }) };
97
+ return useRender({
98
+ defaultTagName: "p",
99
+ render,
100
+ props: mergeProps(defaultProps, props),
101
+ state: {
102
+ slot: "text-mono",
103
+ size,
104
+ variant
105
+ }
106
+ });
107
+ }
108
+ const Text = {
109
+ Heading: TextHeading,
110
+ Sans: TextSans,
111
+ Mono: TextMono
112
+ };
113
+ //#endregion
114
+ export { Text, TextHeading, TextMono, TextSans };
@@ -0,0 +1,2 @@
1
+ import { TextLink, TextLinkExternalIcon, TextLinkExternalIconProps, TextLinkProps, textLinkVariants } from "./text-link.mjs";
2
+ export { TextLink, TextLinkExternalIcon, type TextLinkExternalIconProps, type TextLinkProps, textLinkVariants };
@@ -0,0 +1,36 @@
1
+ import { VariantProps } from "../../lib/tv.mjs";
2
+ import { useRender } from "@base-ui/react/use-render";
3
+ //#region src/components/text-link/text-link.d.ts
4
+ export declare const textLinkVariants: import("tailwind-variants/lite").TVReturnType<{
5
+ variant: {
6
+ muted: string[];
7
+ strong: string[];
8
+ };
9
+ }, undefined, string[], {
10
+ variant: {
11
+ muted: string[];
12
+ strong: string[];
13
+ };
14
+ }, undefined, import("tailwind-variants/lite").TVReturnTypeLike<{
15
+ variant: {
16
+ muted: string[];
17
+ strong: string[];
18
+ };
19
+ }, undefined>>;
20
+ export type TextLinkProps = useRender.ComponentProps<"button"> & VariantProps<typeof textLinkVariants>;
21
+ export declare function TextLink({ variant, className, render, ...props }: TextLinkProps): import("react").ReactElement<unknown, string | import("react").JSXElementConstructor<any>>;
22
+ export type TextLinkExternalIconProps = {
23
+ /** Read by a screen reader after the link text, such as "(opens in a new tab)". Product copy, so the caller passes it. */
24
+ label?: string;
25
+ className?: string;
26
+ };
27
+ /**
28
+ * The ↗ after a link that leaves Raft (design/patterns/navigation.md#links-that-leave-raft):
29
+ * 0.857em (12px at 14px text, as the icons in a reference chip), 2px after the
30
+ * text, centred on the letters' cap height at every text size (0.7em/2 above
31
+ * the baseline; design/foundations/alignment.md#a-mark-that-leads-text). It
32
+ * sits in an inline-flex box, so the link's underline stops at the text and
33
+ * never runs under the arrow.
34
+ */
35
+ export declare function TextLinkExternalIcon({ label, className }: TextLinkExternalIconProps): import("react").JSX.Element;
36
+ //#endregion
@@ -0,0 +1,60 @@
1
+ import { cn } from "../../cn.mjs";
2
+ import { tv } from "../../lib/tv.mjs";
3
+ import { ArrowUpRight } from "lucide-react";
4
+ import { jsx, jsxs } 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/text-link/text-link.tsx
8
+ const textLinkVariants = tv({
9
+ base: [
10
+ "rounded-[2px]",
11
+ "decoration-[1.5px] underline-offset-[3px] not-disabled:hover:underline",
12
+ "outline-none focus-visible:shadow-focus",
13
+ "disabled:cursor-not-allowed disabled:text-foreground-disabled"
14
+ ],
15
+ variants: { variant: {
16
+ muted: ["font-medium text-foreground-muted", "hover:text-foreground"],
17
+ strong: ["font-semibold text-foreground"]
18
+ } },
19
+ defaultVariants: { variant: "muted" }
20
+ });
21
+ function TextLink({ variant, className, render, ...props }) {
22
+ const defaultProps = {
23
+ className: textLinkVariants({
24
+ variant,
25
+ className
26
+ }),
27
+ ...render ? {} : { type: "button" }
28
+ };
29
+ return useRender({
30
+ defaultTagName: "button",
31
+ render,
32
+ props: mergeProps(defaultProps, props),
33
+ state: { slot: "text-link" }
34
+ });
35
+ }
36
+ /**
37
+ * The ↗ after a link that leaves Raft (design/patterns/navigation.md#links-that-leave-raft):
38
+ * 0.857em (12px at 14px text, as the icons in a reference chip), 2px after the
39
+ * text, centred on the letters' cap height at every text size (0.7em/2 above
40
+ * the baseline; design/foundations/alignment.md#a-mark-that-leads-text). It
41
+ * sits in an inline-flex box, so the link's underline stops at the text and
42
+ * never runs under the arrow.
43
+ */
44
+ function TextLinkExternalIcon({ label, className }) {
45
+ return /* @__PURE__ */ jsxs("span", {
46
+ "data-slot": "text-link-external-icon",
47
+ className: cn("ml-0.5 inline-flex align-[calc(0.7em/2-0.857em/2)]", className),
48
+ children: [/* @__PURE__ */ jsx(ArrowUpRight, {
49
+ "aria-hidden": "true",
50
+ focusable: "false",
51
+ className: "size-[0.857em]",
52
+ strokeWidth: 2
53
+ }), label ? /* @__PURE__ */ jsxs("span", {
54
+ className: "sr-only",
55
+ children: [" ", label]
56
+ }) : null]
57
+ });
58
+ }
59
+ //#endregion
60
+ export { TextLink, TextLinkExternalIcon, textLinkVariants };
@@ -0,0 +1,3 @@
1
+ import { TextSelectionToolbar, TextSelectionToolbarButton, TextSelectionToolbarButtonProps, TextSelectionToolbarProps, TextSelectionToolbarSeparator, TextSelectionToolbarSeparatorProps } from "./text-selection-toolbar.mjs";
2
+ import { TextSelectionAnchor, createTextSelectionAnchor, getTextSelectionFocusRect } from "./text-selection-anchor.mjs";
3
+ export { type TextSelectionAnchor, TextSelectionToolbar, TextSelectionToolbarButton, type TextSelectionToolbarButtonProps, type TextSelectionToolbarProps, TextSelectionToolbarSeparator, type TextSelectionToolbarSeparatorProps, createTextSelectionAnchor, getTextSelectionFocusRect };
@@ -0,0 +1,22 @@
1
+ //#region src/components/text-selection-toolbar/text-selection-anchor.d.ts
2
+ export type TextSelectionAnchor = {
3
+ contextElement?: Element;
4
+ getBoundingClientRect: () => DOMRect;
5
+ getClientRects: () => DOMRect[];
6
+ };
7
+ /**
8
+ * The box of the line the selection's focus end is on: the text of the range
9
+ * on that line, not the whole range's bounding box (a whole-line or
10
+ * multi-block selection spans the row, and its center is nowhere near where
11
+ * the person let go). Element boxes are skipped, so a triple-click that ends
12
+ * at the start of the next block still lands on the last selected line.
13
+ */
14
+ export declare function getTextSelectionFocusRect(range: Range, backward?: boolean): DOMRect;
15
+ /**
16
+ * A positioning anchor for the toolbar over selected text: it measures the
17
+ * line the selection's focus end is on, each time it is read, so the toolbar
18
+ * follows the text when it scrolls. Pass it to `PopoverContent`'s `anchor`.
19
+ * Returns `null` when nothing is selected.
20
+ */
21
+ export declare function createTextSelectionAnchor(selection: Selection, contextElement?: Element): TextSelectionAnchor | null;
22
+ //#endregion
@@ -0,0 +1,106 @@
1
+ //#region src/components/text-selection-toolbar/text-selection-anchor.ts
2
+ const TEXT_NODE = 3;
3
+ const SHOW_TEXT = 4;
4
+ function toDOMRect({ top, right, bottom, left }) {
5
+ return {
6
+ x: left,
7
+ y: top,
8
+ top,
9
+ right,
10
+ bottom,
11
+ left,
12
+ width: right - left,
13
+ height: bottom - top,
14
+ toJSON() {
15
+ return {
16
+ x: left,
17
+ y: top,
18
+ top,
19
+ right,
20
+ bottom,
21
+ left,
22
+ width: right - left,
23
+ height: bottom - top
24
+ };
25
+ }
26
+ };
27
+ }
28
+ function textRects(range) {
29
+ const ownerDocument = range.startContainer.ownerDocument;
30
+ const root = range.commonAncestorContainer;
31
+ if (!ownerDocument) return [];
32
+ const rects = [];
33
+ const collect = (node) => {
34
+ const part = ownerDocument.createRange();
35
+ part.selectNodeContents(node);
36
+ if (node === range.startContainer) part.setStart(node, range.startOffset);
37
+ if (node === range.endContainer) part.setEnd(node, range.endOffset);
38
+ for (const rect of Array.from(part.getClientRects())) if (rect.width > 0 && rect.height > 0) rects.push(rect);
39
+ };
40
+ if (root.nodeType === TEXT_NODE) {
41
+ collect(root);
42
+ return rects;
43
+ }
44
+ const walker = ownerDocument.createTreeWalker(root, SHOW_TEXT);
45
+ for (let node = walker.nextNode(); node; node = walker.nextNode()) if (range.intersectsNode(node)) collect(node);
46
+ return rects;
47
+ }
48
+ function sameLine(a, b) {
49
+ return Math.min(a.bottom, b.bottom) - Math.max(a.top, b.top) > Math.min(a.bottom - a.top, b.bottom - b.top) / 2;
50
+ }
51
+ /**
52
+ * The box of the line the selection's focus end is on: the text of the range
53
+ * on that line, not the whole range's bounding box (a whole-line or
54
+ * multi-block selection spans the row, and its center is nowhere near where
55
+ * the person let go). Element boxes are skipped, so a triple-click that ends
56
+ * at the start of the next block still lands on the last selected line.
57
+ */
58
+ function getTextSelectionFocusRect(range, backward = false) {
59
+ const rects = textRects(range);
60
+ const focus = backward ? rects[0] : rects[rects.length - 1];
61
+ if (!focus) return range.getBoundingClientRect();
62
+ const line = {
63
+ top: focus.top,
64
+ right: focus.right,
65
+ bottom: focus.bottom,
66
+ left: focus.left
67
+ };
68
+ for (const rect of rects) {
69
+ if (!sameLine(rect, focus)) continue;
70
+ line.top = Math.min(line.top, rect.top);
71
+ line.right = Math.max(line.right, rect.right);
72
+ line.bottom = Math.max(line.bottom, rect.bottom);
73
+ line.left = Math.min(line.left, rect.left);
74
+ }
75
+ return toDOMRect(line);
76
+ }
77
+ function isBackward(selection) {
78
+ const direction = selection.direction;
79
+ if (direction) return direction === "backward";
80
+ const { anchorNode, anchorOffset, focusNode, focusOffset } = selection;
81
+ if (!anchorNode || !focusNode || !anchorNode.ownerDocument) return false;
82
+ if (anchorNode === focusNode) return focusOffset < anchorOffset;
83
+ const probe = anchorNode.ownerDocument.createRange();
84
+ probe.setStart(anchorNode, anchorOffset);
85
+ probe.setEnd(focusNode, focusOffset);
86
+ return probe.collapsed;
87
+ }
88
+ /**
89
+ * A positioning anchor for the toolbar over selected text: it measures the
90
+ * line the selection's focus end is on, each time it is read, so the toolbar
91
+ * follows the text when it scrolls. Pass it to `PopoverContent`'s `anchor`.
92
+ * Returns `null` when nothing is selected.
93
+ */
94
+ function createTextSelectionAnchor(selection, contextElement) {
95
+ if (selection.isCollapsed || selection.rangeCount === 0) return null;
96
+ const range = selection.getRangeAt(0).cloneRange();
97
+ const backward = isBackward(selection);
98
+ const getBoundingClientRect = () => getTextSelectionFocusRect(range, backward);
99
+ return {
100
+ contextElement,
101
+ getBoundingClientRect,
102
+ getClientRects: () => [getBoundingClientRect()]
103
+ };
104
+ }
105
+ //#endregion
106
+ export { createTextSelectionAnchor, getTextSelectionFocusRect };
@@ -0,0 +1,20 @@
1
+ import { StyledProps } from "../../lib/styled-props.mjs";
2
+ import { Toolbar } from "@base-ui/react/toolbar";
3
+ //#region src/components/text-selection-toolbar/text-selection-toolbar.d.ts
4
+ export type TextSelectionToolbarProps = StyledProps<Toolbar.Root.Props>;
5
+ /**
6
+ * The toolbar that floats over selected text, with actions such as Quote,
7
+ * Copy and Comment: in a message, in an Artifact, anywhere text can be
8
+ * selected. Place it with `createTextSelectionAnchor` in a Popover.
9
+ */
10
+ export declare function TextSelectionToolbar({ className, ...props }: TextSelectionToolbarProps): import("react").JSX.Element;
11
+ export type TextSelectionToolbarButtonProps = StyledProps<Toolbar.Button.Props>;
12
+ /**
13
+ * One action on the selected text: a 28px button with a 16px icon and a
14
+ * Title Case label that never wraps.
15
+ */
16
+ export declare function TextSelectionToolbarButton({ className, ...props }: TextSelectionToolbarButtonProps): import("react").JSX.Element;
17
+ export type TextSelectionToolbarSeparatorProps = StyledProps<Toolbar.Separator.Props>;
18
+ /** A 20px line between groups of actions in the toolbar. */
19
+ export declare function TextSelectionToolbarSeparator({ className, ...props }: TextSelectionToolbarSeparatorProps): import("react").JSX.Element;
20
+ //#endregion
@@ -0,0 +1,41 @@
1
+ import { textSelectionToolbar } from "./text-selection-toolbar.recipe.mjs";
2
+ import { jsx } from "react/jsx-runtime";
3
+ import { Toolbar } from "@base-ui/react/toolbar";
4
+ //#region src/components/text-selection-toolbar/text-selection-toolbar.tsx
5
+ /**
6
+ * The toolbar that floats over selected text, with actions such as Quote,
7
+ * Copy and Comment: in a message, in an Artifact, anywhere text can be
8
+ * selected. Place it with `createTextSelectionAnchor` in a Popover.
9
+ */
10
+ function TextSelectionToolbar({ className, ...props }) {
11
+ const { toolbar } = textSelectionToolbar();
12
+ return /* @__PURE__ */ jsx(Toolbar.Root, {
13
+ "data-slot": "text-selection-toolbar",
14
+ className: toolbar({ className }),
15
+ ...props
16
+ });
17
+ }
18
+ /**
19
+ * One action on the selected text: a 28px button with a 16px icon and a
20
+ * Title Case label that never wraps.
21
+ */
22
+ function TextSelectionToolbarButton({ className, ...props }) {
23
+ const { button } = textSelectionToolbar();
24
+ return /* @__PURE__ */ jsx(Toolbar.Button, {
25
+ "data-slot": "text-selection-toolbar-button",
26
+ type: "button",
27
+ className: button({ className }),
28
+ ...props
29
+ });
30
+ }
31
+ /** A 20px line between groups of actions in the toolbar. */
32
+ function TextSelectionToolbarSeparator({ className, ...props }) {
33
+ const { separator } = textSelectionToolbar();
34
+ return /* @__PURE__ */ jsx(Toolbar.Separator, {
35
+ "data-slot": "text-selection-toolbar-separator",
36
+ className: separator({ className }),
37
+ ...props
38
+ });
39
+ }
40
+ //#endregion
41
+ export { TextSelectionToolbar, TextSelectionToolbarButton, TextSelectionToolbarSeparator };
@@ -0,0 +1,19 @@
1
+ import { tv } from "../../lib/tv.mjs";
2
+ //#region src/components/text-selection-toolbar/text-selection-toolbar.recipe.ts
3
+ const textSelectionToolbar = tv({ slots: {
4
+ toolbar: [
5
+ "flex min-w-0 items-center select-none",
6
+ "gap-1 overflow-visible rounded-container p-1 text-control font-bold",
7
+ "bg-layer-popover ring-1 ring-line-seam ring-inset shadow-float"
8
+ ],
9
+ button: [
10
+ "flex shrink-0 items-center gap-1.5 outline-none transition-colors",
11
+ "h-7 rounded-chip px-2.5 whitespace-nowrap text-foreground",
12
+ "hover:bg-fill-medium active:bg-fill-medium",
13
+ "focus-visible:shadow-focus",
14
+ "[&_svg]:size-4 [&_svg]:shrink-0 [&_svg]:text-foreground-muted"
15
+ ],
16
+ separator: ["w-px shrink-0", "h-5 bg-line-hairline"]
17
+ } });
18
+ //#endregion
19
+ export { textSelectionToolbar };
@@ -0,0 +1,2 @@
1
+ import { Textarea, TextareaCounter, TextareaCounterProps, TextareaGroup, TextareaGroupProps, TextareaProps } from "./textarea.mjs";
2
+ export { Textarea, TextareaCounter, type TextareaCounterProps, TextareaGroup, type TextareaGroupProps, type TextareaProps };
@@ -0,0 +1,16 @@
1
+ import { DataAttributes } from "../../lib/data-attributes.mjs";
2
+ import { WithoutChildren } from "../../lib/without-children.mjs";
3
+ import { ComponentPropsWithRef } from "react";
4
+ //#region src/components/textarea/textarea.d.ts
5
+ export type TextareaProps = WithoutChildren<ComponentPropsWithRef<"textarea">> & DataAttributes;
6
+ export type TextareaGroupProps = ComponentPropsWithRef<"div">;
7
+ export declare function TextareaGroup({ className, ...props }: TextareaGroupProps): import("react").JSX.Element;
8
+ export declare function Textarea({ className, "data-invalid": dataInvalid, ...props }: TextareaProps): import("react").JSX.Element;
9
+ export interface TextareaCounterProps extends WithoutChildren<ComponentPropsWithRef<"span">> {
10
+ value?: string;
11
+ count?: number;
12
+ limit: number;
13
+ getLength?: (value: string) => number;
14
+ }
15
+ export declare function TextareaCounter({ value, count, limit, getLength, className, ...props }: TextareaCounterProps): import("react").JSX.Element;
16
+ //#endregion
@@ -0,0 +1,62 @@
1
+ import { tv } from "../../lib/tv.mjs";
2
+ import { jsx, jsxs } from "react/jsx-runtime";
3
+ //#region src/components/textarea/textarea.tsx
4
+ const textarea = tv({ slots: { root: [
5
+ "block w-full min-h-[calc(var(--field-line-height)*3+--spacing(6))] resize-y pl-3 pr-(--ta-pr,0.75rem)",
6
+ "scroll-pb-(--ta-scroll-pb,0)",
7
+ "font-heading text-field font-field outline-none",
8
+ "py-2.5",
9
+ "rounded-control border-[1.5px] border-line-field bg-layer-card",
10
+ "text-foreground placeholder:text-foreground-hint",
11
+ "shadow-none transition-shadow duration-90 ease-out focus-visible:shadow-focus",
12
+ "data-invalid:border-danger-strong",
13
+ "disabled:cursor-not-allowed disabled:resize-none disabled:border-line-hairline disabled:bg-fill-muted disabled:text-foreground-disabled disabled:placeholder:text-foreground-disabled"
14
+ ] } });
15
+ const textareaGroup = tv({ slots: { root: ["w-full", "flex flex-col items-end gap-1.5"] } });
16
+ const textareaCounter = tv({
17
+ slots: { root: [
18
+ "font-mono tabular-nums",
19
+ "text-mono-meta text-foreground-hint",
20
+ "group-data-[invalid]/field:font-bold group-data-invalid/field:text-danger-strong"
21
+ ] },
22
+ variants: { overLimit: {
23
+ true: { root: ["font-bold text-danger-strong"] },
24
+ false: { root: "" }
25
+ } },
26
+ defaultVariants: { overLimit: false }
27
+ });
28
+ function TextareaGroup({ className, ...props }) {
29
+ const { root } = textareaGroup();
30
+ return /* @__PURE__ */ jsx("div", {
31
+ "data-slot": "textarea-group",
32
+ className: root({ className }),
33
+ ...props
34
+ });
35
+ }
36
+ function Textarea({ className, "data-invalid": dataInvalid, ...props }) {
37
+ const { root } = textarea();
38
+ return /* @__PURE__ */ jsx("textarea", {
39
+ "data-slot": "textarea",
40
+ className: root({ className }),
41
+ ...props,
42
+ "data-invalid": dataInvalid || void 0,
43
+ "aria-invalid": dataInvalid ? "true" : void 0
44
+ });
45
+ }
46
+ function TextareaCounter({ value, count, limit, getLength, className, ...props }) {
47
+ const text = value ?? "";
48
+ const length = count ?? getLength?.(text) ?? text.length;
49
+ const { root } = textareaCounter({ overLimit: length > limit });
50
+ return /* @__PURE__ */ jsxs("span", {
51
+ "data-slot": "textarea-counter",
52
+ className: root({ className }),
53
+ ...props,
54
+ children: [
55
+ length,
56
+ "/",
57
+ limit
58
+ ]
59
+ });
60
+ }
61
+ //#endregion
62
+ export { Textarea, TextareaCounter, TextareaGroup };
@@ -0,0 +1,2 @@
1
+ import { ThreadPanelActions, ThreadPanelActionsProps, ThreadPanelBody, ThreadPanelBodyProps, ThreadPanelContent, ThreadPanelContentProps, ThreadPanelFooter, ThreadPanelFooterProps, ThreadPanelHeader, ThreadPanelHeaderProps, ThreadPanelOriginalMessage, ThreadPanelOriginalMessageProps, ThreadPanelReplyCount, ThreadPanelReplyCountProps, ThreadPanelReplySummary, ThreadPanelReplySummaryProps, ThreadPanelRoot, ThreadPanelRootProps, ThreadPanelSearch, ThreadPanelSearchCount, ThreadPanelSearchCountProps, ThreadPanelSearchProps, ThreadPanelSearchTrailing, ThreadPanelSearchTrailingProps, ThreadPanelTitle, ThreadPanelTitleMeta, ThreadPanelTitleMetaProps, ThreadPanelTitleProps } from "./thread-panel.mjs";
2
+ export { ThreadPanelActions, type ThreadPanelActionsProps, ThreadPanelBody, type ThreadPanelBodyProps, ThreadPanelContent, type ThreadPanelContentProps, ThreadPanelFooter, type ThreadPanelFooterProps, ThreadPanelHeader, type ThreadPanelHeaderProps, ThreadPanelOriginalMessage, type ThreadPanelOriginalMessageProps, ThreadPanelReplyCount, type ThreadPanelReplyCountProps, ThreadPanelReplySummary, type ThreadPanelReplySummaryProps, ThreadPanelRoot, type ThreadPanelRootProps, ThreadPanelSearch, ThreadPanelSearchCount, type ThreadPanelSearchCountProps, type ThreadPanelSearchProps, ThreadPanelSearchTrailing, type ThreadPanelSearchTrailingProps, ThreadPanelTitle, ThreadPanelTitleMeta, type ThreadPanelTitleMetaProps, type ThreadPanelTitleProps };
@@ -0,0 +1,31 @@
1
+ import { useRender } from "@base-ui/react/use-render";
2
+ //#region src/components/thread-panel/thread-panel.d.ts
3
+ export type ThreadPanelRootProps = useRender.ComponentProps<"section">;
4
+ export declare function ThreadPanelRoot({ className, render, ...props }: ThreadPanelRootProps): import("react").JSX.Element;
5
+ export type ThreadPanelHeaderProps = useRender.ComponentProps<"div">;
6
+ export declare function ThreadPanelHeader({ className, render, ...props }: ThreadPanelHeaderProps): import("react").JSX.Element;
7
+ export type ThreadPanelContentProps = useRender.ComponentProps<"div">;
8
+ export declare function ThreadPanelContent({ className, render, ...props }: ThreadPanelContentProps): import("react").ReactElement<unknown, string | import("react").JSXElementConstructor<any>>;
9
+ export type ThreadPanelTitleProps = useRender.ComponentProps<"h2">;
10
+ export declare function ThreadPanelTitle({ className, render, ...props }: ThreadPanelTitleProps): import("react").ReactElement<unknown, string | import("react").JSXElementConstructor<any>>;
11
+ export type ThreadPanelTitleMetaProps = useRender.ComponentProps<"span">;
12
+ export declare function ThreadPanelTitleMeta({ className, render, ...props }: ThreadPanelTitleMetaProps): import("react").ReactElement<unknown, string | import("react").JSXElementConstructor<any>>;
13
+ export type ThreadPanelActionsProps = useRender.ComponentProps<"div">;
14
+ export declare function ThreadPanelActions({ className, render, ...props }: ThreadPanelActionsProps): import("react").ReactElement<unknown, string | import("react").JSXElementConstructor<any>>;
15
+ export type ThreadPanelBodyProps = useRender.ComponentProps<"div">;
16
+ export declare function ThreadPanelBody({ className, render, ...props }: ThreadPanelBodyProps): import("react").JSX.Element;
17
+ export type ThreadPanelOriginalMessageProps = Omit<useRender.ComponentProps<"div">, "render">;
18
+ export declare function ThreadPanelOriginalMessage({ className, ...props }: ThreadPanelOriginalMessageProps): import("react").JSX.Element;
19
+ export type ThreadPanelReplySummaryProps = useRender.ComponentProps<"div">;
20
+ export declare function ThreadPanelReplySummary({ className, render, ...props }: ThreadPanelReplySummaryProps): import("react").ReactElement<unknown, string | import("react").JSXElementConstructor<any>>;
21
+ export type ThreadPanelReplyCountProps = useRender.ComponentProps<"div">;
22
+ export declare function ThreadPanelReplyCount({ className, render, ...props }: ThreadPanelReplyCountProps): import("react").ReactElement<unknown, string | import("react").JSXElementConstructor<any>>;
23
+ export type ThreadPanelFooterProps = useRender.ComponentProps<"div">;
24
+ export declare function ThreadPanelFooter({ className, render, ...props }: ThreadPanelFooterProps): import("react").JSX.Element;
25
+ export type ThreadPanelSearchProps = useRender.ComponentProps<"div">;
26
+ export declare function ThreadPanelSearch({ className, render, ...props }: ThreadPanelSearchProps): import("react").ReactElement<unknown, string | import("react").JSXElementConstructor<any>>;
27
+ export type ThreadPanelSearchTrailingProps = useRender.ComponentProps<"div">;
28
+ export declare function ThreadPanelSearchTrailing({ className, render, ...props }: ThreadPanelSearchTrailingProps): import("react").ReactElement<unknown, string | import("react").JSXElementConstructor<any>>;
29
+ export type ThreadPanelSearchCountProps = useRender.ComponentProps<"div">;
30
+ export declare function ThreadPanelSearchCount({ className, render, ...props }: ThreadPanelSearchCountProps): import("react").ReactElement<unknown, string | import("react").JSXElementConstructor<any>>;
31
+ //#endregion