entasis 0.11.0 → 0.12.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (839) hide show
  1. package/README.md +1 -1
  2. package/dist/attachments/disclosurePanel.svelte.d.ts +84 -0
  3. package/dist/attachments/disclosurePanel.svelte.js +277 -0
  4. package/dist/attachments/portal.d.ts +17 -1
  5. package/dist/attachments/portal.js +39 -2
  6. package/dist/attachments/spinnerOverlay.svelte.js +12 -0
  7. package/dist/attachments/transitionSize.d.ts +6 -0
  8. package/dist/attachments/transitionSize.js +30 -0
  9. package/dist/components/AIAskUserQuestion/AIAskUserQuestion.svelte +131 -17
  10. package/dist/components/AIAskUserQuestion/AIAskUserQuestionFileStep.svelte +26 -6
  11. package/dist/components/AIAskUserQuestion/AIAskUserQuestionFileStep.svelte.d.ts +6 -0
  12. package/dist/components/AIAskUserQuestion/AIAskUserQuestionFooter.svelte +27 -53
  13. package/dist/components/AIAskUserQuestion/AIAskUserQuestionFooter.svelte.d.ts +3 -4
  14. package/dist/components/AIAskUserQuestion/AIAskUserQuestionHeader.svelte +19 -16
  15. package/dist/components/AIAskUserQuestion/AIAskUserQuestionStep.svelte +180 -21
  16. package/dist/components/AIAskUserQuestion/AIAskUserQuestionStep.svelte.d.ts +9 -1
  17. package/dist/components/AIAskUserQuestion/AIAskUserQuestionSummary.svelte +56 -0
  18. package/dist/components/AIAskUserQuestion/AIAskUserQuestionSummary.svelte.d.ts +4 -0
  19. package/dist/components/AIAskUserQuestion/aiAskUserQuestion.mcp.d.ts +1 -1
  20. package/dist/components/AIAskUserQuestion/aiAskUserQuestion.mcp.js +26 -8
  21. package/dist/components/AIAskUserQuestion/aiAskUserQuestion.props.d.ts +62 -5
  22. package/dist/components/AIAskUserQuestion/aiAskUserQuestion.theme.d.ts +42 -0
  23. package/dist/components/AIAskUserQuestion/aiAskUserQuestion.theme.js +53 -12
  24. package/dist/components/AIAskUserQuestion/aiAskUserQuestionAnswers.d.ts +17 -1
  25. package/dist/components/AIAskUserQuestion/aiAskUserQuestionAnswers.js +56 -8
  26. package/dist/components/AIAskUserQuestion/index.d.ts +3 -1
  27. package/dist/components/AIAskUserQuestion/index.js +2 -0
  28. package/dist/components/AIAskUserQuestion/schemas.d.ts +44 -0
  29. package/dist/components/AIAskUserQuestion/schemas.js +10 -3
  30. package/dist/components/AIChat/AIChat.svelte +10 -0
  31. package/dist/components/AIChat/AIChat.svelte.d.ts +2 -2
  32. package/dist/components/AIChat/AIChatComposerSurface.svelte +23 -5
  33. package/dist/components/AIChat/AIChatComposerSurface.svelte.d.ts +5 -0
  34. package/dist/components/AIChat/AIChatSkeleton.svelte +29 -37
  35. package/dist/components/AIChat/AIChatSurface.svelte +30 -2
  36. package/dist/components/AIChat/AIChatSurface.svelte.d.ts +1 -1
  37. package/dist/components/AIChat/AIChatThreadSurface.svelte +11 -1
  38. package/dist/components/AIChat/AIChatThreadSurface.svelte.d.ts +3 -1
  39. package/dist/components/AIChat/aiChat.mcp.d.ts +1 -1
  40. package/dist/components/AIChat/aiChat.mcp.js +31 -15
  41. package/dist/components/AIChat/aiChat.props.d.ts +36 -10
  42. package/dist/components/AIChat/aiChat.theme.d.ts +9 -0
  43. package/dist/components/AIChat/aiChat.theme.js +21 -4
  44. package/dist/components/AIChat/aiChatSkeleton.props.d.ts +5 -0
  45. package/dist/components/AIChat/index.d.ts +1 -1
  46. package/dist/components/AIComposer/AIComposer.svelte +102 -5
  47. package/dist/components/AIComposer/AIComposer.svelte.d.ts +1 -0
  48. package/dist/components/AIComposer/AIComposerFooter.svelte +54 -12
  49. package/dist/components/AIComposer/AIComposerFooter.svelte.d.ts +2 -0
  50. package/dist/components/AIComposer/AIComposerQueue.svelte +8 -3
  51. package/dist/components/AIComposer/aiComposer.editor.theme.js +13 -2
  52. package/dist/components/AIComposer/aiComposer.mcp.d.ts +1 -1
  53. package/dist/components/AIComposer/aiComposer.mcp.js +15 -7
  54. package/dist/components/AIComposer/aiComposer.props.d.ts +27 -7
  55. package/dist/components/AIComposer/aiComposer.theme.d.ts +42 -3
  56. package/dist/components/AIComposer/aiComposer.theme.js +37 -5
  57. package/dist/components/AIComposer/aiComposerFileController.svelte.d.ts +20 -0
  58. package/dist/components/AIComposer/aiComposerFileController.svelte.js +75 -9
  59. package/dist/components/AIComposer/aiComposerSourceAdapter.js +22 -4
  60. package/dist/components/AIComposer/aiComposerSubmitController.svelte.d.ts +12 -0
  61. package/dist/components/AIComposer/aiComposerSubmitController.svelte.js +16 -6
  62. package/dist/components/AIContext/AIContext.svelte +7 -3
  63. package/dist/components/AIContext/aiContext.mcp.d.ts +1 -1
  64. package/dist/components/AIContext/aiContext.mcp.js +1 -1
  65. package/dist/components/AIContext/aiContext.props.d.ts +4 -1
  66. package/dist/components/AIContext/aiContext.theme.d.ts +3 -0
  67. package/dist/components/AIContext/aiContext.theme.js +7 -2
  68. package/dist/components/AIConversation/AIConversation.svelte.d.ts +2 -2
  69. package/dist/components/AIFilePreview/aiFilePreview.theme.js +1 -1
  70. package/dist/components/AIMarker/AIMarker.svelte +2 -0
  71. package/dist/components/AIMarker/aiMarker.mcp.d.ts +1 -1
  72. package/dist/components/AIMarker/aiMarker.mcp.js +2 -0
  73. package/dist/components/AIMarker/aiMarker.props.d.ts +3 -0
  74. package/dist/components/AIMarker/aiMarker.theme.js +2 -2
  75. package/dist/components/AIMessage/AIMessage.svelte +38 -16
  76. package/dist/components/AIMessage/aiMessage.mcp.d.ts +1 -1
  77. package/dist/components/AIMessage/aiMessage.mcp.js +20 -6
  78. package/dist/components/AIMessage/aiMessage.props.d.ts +18 -2
  79. package/dist/components/AIMessage/aiMessage.theme.d.ts +51 -6
  80. package/dist/components/AIMessage/aiMessage.theme.js +91 -32
  81. package/dist/components/AIMessageActions/AIMessageActions.svelte +19 -9
  82. package/dist/components/AIMessageActions/aiMessageActions.mcp.d.ts +1 -1
  83. package/dist/components/AIMessageActions/aiMessageActions.mcp.js +11 -3
  84. package/dist/components/AIMessageActions/aiMessageActions.theme.js +36 -9
  85. package/dist/components/AIModelSelector/AIModelSelector.svelte +25 -10
  86. package/dist/components/AIModelSelector/aiModelSelector.mcp.d.ts +1 -1
  87. package/dist/components/AIModelSelector/aiModelSelector.mcp.js +1 -1
  88. package/dist/components/AIModelSelector/aiModelSelector.theme.d.ts +3 -0
  89. package/dist/components/AIModelSelector/aiModelSelector.theme.js +7 -3
  90. package/dist/components/AIReasoning/AIReasoning.svelte +135 -38
  91. package/dist/components/AIReasoning/aiReasoning.mcp.d.ts +1 -1
  92. package/dist/components/AIReasoning/aiReasoning.mcp.js +11 -5
  93. package/dist/components/AIReasoning/aiReasoning.props.d.ts +15 -4
  94. package/dist/components/AIReasoning/aiReasoning.theme.d.ts +45 -0
  95. package/dist/components/AIReasoning/aiReasoning.theme.js +47 -7
  96. package/dist/components/AISuggestion/AISuggestion.svelte +2 -1
  97. package/dist/components/AISuggestion/AISuggestions.svelte +2 -1
  98. package/dist/components/AISuggestion/aiSuggestion.mcp.d.ts +1 -1
  99. package/dist/components/AISuggestion/aiSuggestion.mcp.js +8 -1
  100. package/dist/components/AISuggestion/aiSuggestion.props.d.ts +4 -1
  101. package/dist/components/AISuggestion/aiSuggestion.theme.js +1 -1
  102. package/dist/components/AISuggestion/aiSuggestions.props.d.ts +7 -0
  103. package/dist/components/AIThread/AIThread.svelte +378 -95
  104. package/dist/components/AIThread/AIThreadAskUserQuestion.svelte +1 -0
  105. package/dist/components/AIThread/AIThreadItems.svelte +266 -64
  106. package/dist/components/AIThread/AIThreadItems.svelte.d.ts +7 -3
  107. package/dist/components/AIThread/AIThreadMarker.svelte +8 -1
  108. package/dist/components/AIThread/AIThreadMarker.svelte.d.ts +1 -0
  109. package/dist/components/AIThread/aiThread.mcp.d.ts +1 -1
  110. package/dist/components/AIThread/aiThread.mcp.js +34 -20
  111. package/dist/components/AIThread/aiThread.props.d.ts +73 -8
  112. package/dist/components/AIThread/aiThread.theme.d.ts +78 -0
  113. package/dist/components/AIThread/aiThread.theme.js +108 -9
  114. package/dist/components/AIThread/index.d.ts +1 -1
  115. package/dist/components/AIThread/threadAskUserQuestion.d.ts +4 -1
  116. package/dist/components/AIThread/threadAskUserQuestion.js +8 -4
  117. package/dist/components/AIThread/threadRenderItems.d.ts +74 -3
  118. package/dist/components/AIThread/threadRenderItems.js +265 -77
  119. package/dist/components/AIThread/threadScrollController.d.ts +0 -8
  120. package/dist/components/AIThread/threadScrollController.js +2 -39
  121. package/dist/components/AIThread/threadTools.d.ts +11 -0
  122. package/dist/components/AIThread/threadTools.js +79 -0
  123. package/dist/components/AIThreadToc/AIThreadToc.svelte +188 -18
  124. package/dist/components/AIThreadToc/AIThreadTocPreview.svelte +25 -2
  125. package/dist/components/AIThreadToc/AIThreadTocPreview.svelte.d.ts +3 -0
  126. package/dist/components/AIThreadToc/aiThreadToc.d.ts +4 -2
  127. package/dist/components/AIThreadToc/aiThreadToc.js +17 -5
  128. package/dist/components/AIThreadToc/aiThreadToc.mcp.d.ts +1 -1
  129. package/dist/components/AIThreadToc/aiThreadToc.mcp.js +13 -3
  130. package/dist/components/AIThreadToc/aiThreadToc.props.d.ts +11 -0
  131. package/dist/components/AIThreadToc/aiThreadToc.theme.d.ts +3 -0
  132. package/dist/components/AIThreadToc/aiThreadToc.theme.js +15 -6
  133. package/dist/components/AITool/AITool.svelte +56 -21
  134. package/dist/components/AITool/AIToolCallList.svelte +79 -29
  135. package/dist/components/AITool/AIToolCallList.svelte.d.ts +6 -2
  136. package/dist/components/AITool/AIToolStatusMark.svelte +52 -0
  137. package/dist/components/AITool/AIToolStatusMark.svelte.d.ts +14 -0
  138. package/dist/components/AITool/AIToolValueSection.svelte +126 -28
  139. package/dist/components/AITool/AIToolValueSection.svelte.d.ts +6 -2
  140. package/dist/components/AITool/AIToolValueTree.svelte +11 -16
  141. package/dist/components/AITool/AIToolValueTree.svelte.d.ts +2 -3
  142. package/dist/components/AITool/aiTool.mcp.d.ts +1 -1
  143. package/dist/components/AITool/aiTool.mcp.js +36 -8
  144. package/dist/components/AITool/aiTool.props.d.ts +52 -6
  145. package/dist/components/AITool/aiTool.theme.d.ts +117 -39
  146. package/dist/components/AITool/aiTool.theme.js +144 -140
  147. package/dist/components/AITool/aiToolClock.svelte.d.ts +18 -0
  148. package/dist/components/AITool/aiToolClock.svelte.js +62 -0
  149. package/dist/components/AITool/aiToolPrimitiveThemes.d.ts +0 -2
  150. package/dist/components/AITool/aiToolPrimitiveThemes.js +0 -10
  151. package/dist/components/AITool/index.d.ts +2 -1
  152. package/dist/components/AITool/index.js +1 -0
  153. package/dist/components/AITool/toolRendering.d.ts +33 -1
  154. package/dist/components/AITool/toolRendering.js +179 -15
  155. package/dist/components/AITool/toolValueTree.d.ts +14 -1
  156. package/dist/components/AITool/toolValueTree.js +126 -27
  157. package/dist/components/Accordion/Accordion.svelte +109 -109
  158. package/dist/components/Accordion/Accordion.svelte.d.ts +0 -1
  159. package/dist/components/Accordion/AccordionPanel.svelte +64 -0
  160. package/dist/components/Accordion/AccordionPanel.svelte.d.ts +20 -0
  161. package/dist/components/Accordion/accordion.attributes.d.ts +24 -0
  162. package/dist/components/Accordion/accordion.attributes.js +20 -0
  163. package/dist/components/Accordion/accordion.mcp.d.ts +1 -1
  164. package/dist/components/Accordion/accordion.mcp.js +78 -22
  165. package/dist/components/Accordion/accordion.props.d.ts +54 -10
  166. package/dist/components/Accordion/accordion.theme.d.ts +3 -0
  167. package/dist/components/Accordion/accordion.theme.js +4 -0
  168. package/dist/components/Accordion/index.d.ts +1 -0
  169. package/dist/components/Accordion/index.js +1 -0
  170. package/dist/components/AudioPlayer/audioPlayerVolumeControl.slider.theme.d.ts +31 -1
  171. package/dist/components/Avatar/Avatar.svelte +60 -10
  172. package/dist/components/Avatar/AvatarGroup.svelte +9 -0
  173. package/dist/components/Avatar/avatar.mcp.d.ts +1 -1
  174. package/dist/components/Avatar/avatar.mcp.js +13 -5
  175. package/dist/components/Avatar/avatar.props.d.ts +28 -1
  176. package/dist/components/Avatar/avatar.theme.js +3 -3
  177. package/dist/components/Avatar/index.d.ts +1 -1
  178. package/dist/components/Breadcrumbs/breadcrumbs.mcp.d.ts +1 -1
  179. package/dist/components/Breadcrumbs/breadcrumbs.mcp.js +1 -1
  180. package/dist/components/Button/Button.svelte +35 -15
  181. package/dist/components/Button/button.mcp.d.ts +1 -1
  182. package/dist/components/Button/button.mcp.js +8 -4
  183. package/dist/components/Button/button.props.d.ts +23 -8
  184. package/dist/components/Button/button.theme.d.ts +12 -0
  185. package/dist/components/Button/button.theme.js +17 -4
  186. package/dist/components/ButtonGroup/buttonGroup.mcp.d.ts +1 -1
  187. package/dist/components/ButtonGroup/buttonGroup.mcp.js +1 -1
  188. package/dist/components/ButtonGroup/buttonGroup.props.d.ts +4 -1
  189. package/dist/components/Collapsible/Collapsible.svelte +125 -19
  190. package/dist/components/Collapsible/collapsible.attributes.d.ts +21 -0
  191. package/dist/components/Collapsible/collapsible.attributes.js +17 -0
  192. package/dist/components/Collapsible/collapsible.mcp.d.ts +1 -1
  193. package/dist/components/Collapsible/collapsible.mcp.js +62 -12
  194. package/dist/components/Collapsible/collapsible.props.d.ts +39 -8
  195. package/dist/components/Collapsible/collapsible.theme.js +3 -1
  196. package/dist/components/Collapsible/index.d.ts +1 -0
  197. package/dist/components/Collapsible/index.js +1 -0
  198. package/dist/components/Command/Command.svelte +56 -14
  199. package/dist/components/Command/command.mcp.d.ts +1 -1
  200. package/dist/components/Command/command.mcp.js +12 -6
  201. package/dist/components/Command/command.props.d.ts +39 -6
  202. package/dist/components/Command/command.state.svelte.d.ts +40 -11
  203. package/dist/components/Command/command.state.svelte.js +75 -28
  204. package/dist/components/Command/command.theme.js +4 -3
  205. package/dist/components/Confirmation/Confirmation.svelte +72 -31
  206. package/dist/components/Confirmation/confirmation.mcp.d.ts +1 -1
  207. package/dist/components/Confirmation/confirmation.mcp.js +5 -4
  208. package/dist/components/ContextMenu/ContextMenu.svelte +126 -16
  209. package/dist/components/ContextMenu/contextMenu.mcp.d.ts +1 -1
  210. package/dist/components/ContextMenu/contextMenu.mcp.js +10 -7
  211. package/dist/components/ContextMenu/contextMenu.props.d.ts +13 -4
  212. package/dist/components/ContextMenu/contextMenu.theme.d.ts +3 -3
  213. package/dist/components/ContextMenu/contextMenu.theme.js +3 -2
  214. package/dist/components/DataTable/DataTable.svelte +4 -9
  215. package/dist/components/DataTable/DataTableEditor.svelte +5 -0
  216. package/dist/components/DataTable/DataTableFilter.svelte +1 -0
  217. package/dist/components/DataTable/DataTableToolbar.svelte +1 -0
  218. package/dist/components/DataTable/dataTable.mcp.d.ts +1 -1
  219. package/dist/components/DataTable/dataTable.mcp.js +4 -2
  220. package/dist/components/DataTable/dataTable.theme.d.ts +0 -3
  221. package/dist/components/DataTable/dataTable.theme.js +9 -6
  222. package/dist/components/Dialog/Dialog.svelte +120 -35
  223. package/dist/components/Dialog/Dialog.svelte.d.ts +1 -1
  224. package/dist/components/Dialog/DialogBackdrop.svelte +21 -1
  225. package/dist/components/Dialog/dialog.api.d.ts +65 -0
  226. package/dist/components/Dialog/dialog.api.js +1 -0
  227. package/dist/components/Dialog/dialog.attributes.d.ts +23 -0
  228. package/dist/components/Dialog/dialog.attributes.js +19 -0
  229. package/dist/components/Dialog/dialog.indent.d.ts +6 -0
  230. package/dist/components/Dialog/dialog.indent.js +16 -0
  231. package/dist/components/Dialog/dialog.mcp.d.ts +1 -1
  232. package/dist/components/Dialog/dialog.mcp.js +195 -22
  233. package/dist/components/Dialog/dialog.props.d.ts +102 -19
  234. package/dist/components/Dialog/dialog.snap.d.ts +40 -0
  235. package/dist/components/Dialog/dialog.snap.js +78 -0
  236. package/dist/components/Dialog/dialog.state.svelte.d.ts +122 -10
  237. package/dist/components/Dialog/dialog.state.svelte.js +525 -66
  238. package/dist/components/Dialog/dialog.theme.d.ts +48 -0
  239. package/dist/components/Dialog/dialog.theme.js +32 -9
  240. package/dist/components/Dialog/index.d.ts +4 -1
  241. package/dist/components/Dialog/index.js +1 -0
  242. package/dist/components/DocumentViewer/DocumentSearchControl.svelte +5 -3
  243. package/dist/components/DocumentViewer/documentOutput.js +2 -1
  244. package/dist/components/FloatingWindow/FloatingWindow.svelte +20 -32
  245. package/dist/components/FloatingWindow/FloatingWindow.svelte.d.ts +1 -1
  246. package/dist/components/FloatingWindow/floatingWindow.mcp.d.ts +1 -1
  247. package/dist/components/FloatingWindow/floatingWindow.mcp.js +3 -3
  248. package/dist/components/FloatingWindow/floatingWindow.props.d.ts +9 -4
  249. package/dist/components/FloatingWindow/floatingWindow.state.svelte.d.ts +8 -2
  250. package/dist/components/FloatingWindow/floatingWindow.state.svelte.js +18 -7
  251. package/dist/components/Form/Ask/Ask.svelte +9 -13
  252. package/dist/components/Form/Ask/ask.mcp.d.ts +1 -1
  253. package/dist/components/Form/Ask/ask.mcp.js +1 -1
  254. package/dist/components/Form/Ask/ask.props.d.ts +1 -1
  255. package/dist/components/Form/Autocomplete/Autocomplete.svelte +418 -0
  256. package/dist/components/Form/Autocomplete/Autocomplete.svelte.d.ts +4 -0
  257. package/dist/components/Form/Autocomplete/autocomplete.items.d.ts +30 -0
  258. package/dist/components/Form/Autocomplete/autocomplete.items.js +64 -0
  259. package/dist/components/Form/Autocomplete/autocomplete.mcp.d.ts +1 -0
  260. package/dist/components/Form/Autocomplete/autocomplete.mcp.js +134 -0
  261. package/dist/components/Form/Autocomplete/autocomplete.props.d.ts +146 -0
  262. package/dist/components/Form/Autocomplete/autocomplete.props.js +1 -0
  263. package/dist/components/Form/Autocomplete/autocomplete.theme.d.ts +213 -0
  264. package/dist/components/Form/Autocomplete/autocomplete.theme.js +119 -0
  265. package/dist/components/Form/Autocomplete/index.d.ts +3 -0
  266. package/dist/components/Form/Autocomplete/index.js +2 -0
  267. package/dist/components/Form/Calendar/CalendarInput.svelte +9 -0
  268. package/dist/components/Form/Calendar/CalendarMonthYearPicker.svelte +3 -0
  269. package/dist/components/Form/Calendar/CalendarPrimitive.svelte +5 -0
  270. package/dist/components/Form/Calendar/calendar.mcp.d.ts +1 -1
  271. package/dist/components/Form/Calendar/calendar.mcp.js +2 -1
  272. package/dist/components/Form/Calendar/calendarInput.props.d.ts +2 -0
  273. package/dist/components/Form/Calendar/useCalendar.svelte.d.ts +3 -0
  274. package/dist/components/Form/Calendar/useCalendar.svelte.js +3 -0
  275. package/dist/components/Form/Checkbox/Checkbox.svelte +17 -2
  276. package/dist/components/Form/Checkbox/checkbox.mcp.d.ts +1 -1
  277. package/dist/components/Form/Checkbox/checkbox.mcp.js +11 -1
  278. package/dist/components/Form/Checkbox/checkbox.props.d.ts +12 -1
  279. package/dist/components/Form/CheckboxesInput/CheckboxLine.svelte +69 -32
  280. package/dist/components/Form/CheckboxesInput/CheckboxLine.svelte.d.ts +10 -2
  281. package/dist/components/Form/CheckboxesInput/CheckboxesInput.svelte +123 -74
  282. package/dist/components/Form/CheckboxesInput/CheckboxesInput.svelte.d.ts +12 -12
  283. package/dist/components/Form/CheckboxesInput/checkboxesInput.mcp.d.ts +1 -1
  284. package/dist/components/Form/CheckboxesInput/checkboxesInput.mcp.js +11 -7
  285. package/dist/components/Form/CheckboxesInput/checkboxesInput.props.d.ts +25 -9
  286. package/dist/components/Form/CheckboxesInput/checkboxesInput.theme.d.ts +12 -0
  287. package/dist/components/Form/CheckboxesInput/checkboxesInput.theme.js +9 -4
  288. package/dist/components/Form/CheckboxesInput/choiceEnter.d.ts +11 -0
  289. package/dist/components/Form/CheckboxesInput/choiceEnter.js +27 -0
  290. package/dist/components/Form/ColorInput/ColorInput.svelte +12 -3
  291. package/dist/components/Form/ColorInput/colorInput.mcp.d.ts +1 -1
  292. package/dist/components/Form/ColorInput/colorInput.mcp.js +1 -0
  293. package/dist/components/Form/ColorPicker/ColorPicker.svelte +11 -2
  294. package/dist/components/Form/ColorPicker/ColorPickerInput.svelte +9 -0
  295. package/dist/components/Form/ColorPicker/colorPicker.mcp.d.ts +1 -1
  296. package/dist/components/Form/ColorPicker/colorPicker.mcp.js +1 -0
  297. package/dist/components/Form/ColorPicker/colorPicker.props.d.ts +2 -0
  298. package/dist/components/Form/ColorPicker/colorPicker.state.svelte.d.ts +4 -0
  299. package/dist/components/Form/ColorPicker/colorPicker.state.svelte.js +12 -8
  300. package/dist/components/Form/Combobox/Combobox.svelte +145 -185
  301. package/dist/components/Form/Combobox/Combobox.svelte.d.ts +1 -1
  302. package/dist/components/Form/Combobox/ComboboxPopup.svelte +128 -0
  303. package/dist/components/Form/Combobox/ComboboxPopup.svelte.d.ts +28 -0
  304. package/dist/components/Form/Combobox/combobox.attributes.d.ts +34 -0
  305. package/dist/components/Form/Combobox/combobox.attributes.js +25 -0
  306. package/dist/components/Form/Combobox/combobox.items.d.ts +28 -0
  307. package/dist/components/Form/Combobox/combobox.items.js +68 -0
  308. package/dist/components/Form/Combobox/combobox.mcp.d.ts +1 -1
  309. package/dist/components/Form/Combobox/combobox.mcp.js +104 -13
  310. package/dist/components/Form/Combobox/combobox.props.d.ts +113 -19
  311. package/dist/components/Form/Combobox/combobox.state.svelte.d.ts +137 -0
  312. package/dist/components/Form/Combobox/combobox.state.svelte.js +375 -0
  313. package/dist/components/Form/Combobox/combobox.theme.d.ts +63 -0
  314. package/dist/components/Form/Combobox/combobox.theme.js +37 -1
  315. package/dist/components/Form/Combobox/index.d.ts +2 -1
  316. package/dist/components/Form/Combobox/index.js +1 -0
  317. package/dist/components/Form/DateInput/DateInput.svelte +11 -3
  318. package/dist/components/Form/DateInput/dateInput.mcp.d.ts +1 -1
  319. package/dist/components/Form/DateInput/dateInput.mcp.js +5 -0
  320. package/dist/components/Form/DateSelector/DateSelector.svelte +5 -2
  321. package/dist/components/Form/DateSelector/DateSelectorInput.svelte +9 -0
  322. package/dist/components/Form/DateSelector/dateSelector.mcp.d.ts +1 -1
  323. package/dist/components/Form/DateSelector/dateSelector.mcp.js +2 -2
  324. package/dist/components/Form/DateSelector/dateSelector.props.d.ts +2 -0
  325. package/dist/components/Form/Field/Field.svelte +256 -30
  326. package/dist/components/Form/Field/Field.svelte.d.ts +9 -0
  327. package/dist/components/Form/Field/FieldGroup.svelte +29 -0
  328. package/dist/components/Form/Field/FieldGroup.svelte.d.ts +11 -0
  329. package/dist/components/Form/Field/FieldHiddenInputs.svelte +187 -0
  330. package/dist/components/Form/Field/FieldHiddenInputs.svelte.d.ts +26 -0
  331. package/dist/components/Form/Field/field.d.ts +64 -8
  332. package/dist/components/Form/Field/field.mcp.d.ts +1 -1
  333. package/dist/components/Form/Field/field.mcp.js +158 -18
  334. package/dist/components/Form/Field/field.messages.d.ts +47 -0
  335. package/dist/components/Form/Field/field.messages.js +64 -0
  336. package/dist/components/Form/Field/field.state.svelte.d.ts +109 -3
  337. package/dist/components/Form/Field/field.state.svelte.js +508 -16
  338. package/dist/components/Form/Field/field.theme.d.ts +46 -0
  339. package/dist/components/Form/Field/field.theme.js +33 -0
  340. package/dist/components/Form/Field/fieldHiddenInputs.props.d.ts +61 -0
  341. package/dist/components/Form/Field/fieldHiddenInputs.props.js +1 -0
  342. package/dist/components/Form/Field/fieldNativeForm.svelte.d.ts +14 -0
  343. package/dist/components/Form/Field/fieldNativeForm.svelte.js +113 -0
  344. package/dist/components/Form/Field/index.d.ts +5 -2
  345. package/dist/components/Form/Field/index.js +1 -0
  346. package/dist/components/Form/Field/schemas.js +7 -2
  347. package/dist/components/Form/File/FileInput.svelte +24 -3
  348. package/dist/components/Form/File/fileInput.mcp.d.ts +1 -1
  349. package/dist/components/Form/File/fileInput.mcp.js +1 -0
  350. package/dist/components/Form/Form/Form.svelte +47 -14
  351. package/dist/components/Form/Form/FormActions.svelte +3 -1
  352. package/dist/components/Form/Form/FormActions.svelte.d.ts +42 -2
  353. package/dist/components/Form/Form/FormFieldRenderer.svelte +40 -2
  354. package/dist/components/Form/Form/FormInputRenderer.svelte +7 -0
  355. package/dist/components/Form/Form/form.d.ts +35 -6
  356. package/dist/components/Form/Form/form.mcp.d.ts +1 -1
  357. package/dist/components/Form/Form/form.mcp.js +113 -13
  358. package/dist/components/Form/Form/form.props.d.ts +32 -1
  359. package/dist/components/Form/Form/form.registry.d.ts +2 -2
  360. package/dist/components/Form/Form/form.registry.js +1 -4
  361. package/dist/components/Form/Form/form.state.svelte.d.ts +1138 -413
  362. package/dist/components/Form/Form/form.state.svelte.js +319 -26
  363. package/dist/components/Form/Form/index.d.ts +3 -1
  364. package/dist/components/Form/Form/visibility.d.ts +3096 -1831
  365. package/dist/components/Form/KeyValueInput/KeyValueInput.svelte +22 -10
  366. package/dist/components/Form/KeyValueInput/keyValueInput.mcp.d.ts +1 -1
  367. package/dist/components/Form/KeyValueInput/keyValueInput.mcp.js +1 -0
  368. package/dist/components/Form/MultiStepForm/MultiStepForm.svelte +12 -5
  369. package/dist/components/Form/MultiStepForm/multiStepForm.mcp.d.ts +1 -1
  370. package/dist/components/Form/MultiStepForm/multiStepForm.mcp.js +5 -3
  371. package/dist/components/Form/MultiStepForm/multiStepForm.props.d.ts +5 -0
  372. package/dist/components/Form/MultiStepForm/multiStepForm.state.svelte.d.ts +1022 -408
  373. package/dist/components/Form/MultiStepForm/multiStepForm.state.svelte.js +48 -24
  374. package/dist/components/Form/NumberInput/NumberInput.svelte +365 -46
  375. package/dist/components/Form/NumberInput/index.d.ts +1 -1
  376. package/dist/components/Form/NumberInput/numberInput.mcp.d.ts +1 -1
  377. package/dist/components/Form/NumberInput/numberInput.mcp.js +55 -30
  378. package/dist/components/Form/NumberInput/numberInput.props.d.ts +64 -4
  379. package/dist/components/Form/PasswordInput/Password.svelte +28 -1
  380. package/dist/components/Form/PasswordInput/index.d.ts +1 -1
  381. package/dist/components/Form/PasswordInput/passwordInput.mcp.d.ts +1 -1
  382. package/dist/components/Form/PasswordInput/passwordInput.mcp.js +20 -2
  383. package/dist/components/Form/PasswordInput/passwordInput.props.d.ts +23 -0
  384. package/dist/components/Form/PhoneInput/PhoneInput.svelte +11 -4
  385. package/dist/components/Form/PhoneInput/PhoneInputCountryPicker.svelte +47 -21
  386. package/dist/components/Form/PhoneInput/phoneInput-cdn.js +2 -1
  387. package/dist/components/Form/PhoneInput/phoneInput.mcp.d.ts +1 -1
  388. package/dist/components/Form/PhoneInput/phoneInput.mcp.js +6 -2
  389. package/dist/components/Form/PhoneInput/phoneInputCountry.d.ts +9 -3
  390. package/dist/components/Form/PhoneInput/phoneInputCountry.js +34 -24
  391. package/dist/components/Form/PinInput/PinInput.svelte +44 -9
  392. package/dist/components/Form/PinInput/PinInputCells.svelte +22 -1
  393. package/dist/components/Form/PinInput/PinInputCells.svelte.d.ts +1 -0
  394. package/dist/components/Form/PinInput/index.d.ts +1 -1
  395. package/dist/components/Form/PinInput/pinInput.mcp.d.ts +1 -1
  396. package/dist/components/Form/PinInput/pinInput.mcp.js +29 -6
  397. package/dist/components/Form/PinInput/pinInput.props.d.ts +38 -4
  398. package/dist/components/Form/PinInput/pinInput.state.svelte.d.ts +41 -0
  399. package/dist/components/Form/PinInput/pinInput.state.svelte.js +227 -24
  400. package/dist/components/Form/PinInput/pinInput.theme.d.ts +39 -3
  401. package/dist/components/Form/PinInput/pinInput.theme.js +27 -1
  402. package/dist/components/Form/RadioInput/RadioInput.svelte +94 -32
  403. package/dist/components/Form/RadioInput/RadioInput.svelte.d.ts +12 -12
  404. package/dist/components/Form/RadioInput/radioInput.mcp.d.ts +1 -1
  405. package/dist/components/Form/RadioInput/radioInput.mcp.js +12 -9
  406. package/dist/components/Form/RadioInput/radioInput.props.d.ts +22 -6
  407. package/dist/components/Form/RadioInput/radioInput.theme.d.ts +12 -0
  408. package/dist/components/Form/RadioInput/radioInput.theme.js +10 -5
  409. package/dist/components/Form/RatingInput/RatingInput.svelte +13 -4
  410. package/dist/components/Form/RatingInput/ratingInput.mcp.d.ts +1 -1
  411. package/dist/components/Form/RatingInput/ratingInput.mcp.js +3 -3
  412. package/dist/components/Form/RatingInput/ratingInput.props.d.ts +1 -1
  413. package/dist/components/Form/Select/Select.svelte +186 -48
  414. package/dist/components/Form/Select/Select.svelte.d.ts +23 -2
  415. package/dist/components/Form/Select/SelectOptionRow.svelte +69 -0
  416. package/dist/components/Form/Select/SelectOptionRow.svelte.d.ts +18 -0
  417. package/dist/components/Form/Select/index.d.ts +2 -1
  418. package/dist/components/Form/Select/index.js +1 -0
  419. package/dist/components/Form/Select/select.align.d.ts +5 -0
  420. package/dist/components/Form/Select/select.align.js +19 -5
  421. package/dist/components/Form/Select/select.attributes.d.ts +36 -0
  422. package/dist/components/Form/Select/select.attributes.js +27 -0
  423. package/dist/components/Form/Select/select.mcp.d.ts +1 -1
  424. package/dist/components/Form/Select/select.mcp.js +103 -18
  425. package/dist/components/Form/Select/select.props.d.ts +87 -10
  426. package/dist/components/Form/Select/select.state.svelte.d.ts +108 -17
  427. package/dist/components/Form/Select/select.state.svelte.js +354 -59
  428. package/dist/components/Form/Select/select.theme.d.ts +21 -0
  429. package/dist/components/Form/Select/select.theme.js +22 -0
  430. package/dist/components/Form/Slider/Slider.svelte +54 -14
  431. package/dist/components/Form/Slider/SliderMarks.svelte +1 -1
  432. package/dist/components/Form/Slider/SliderThumb.svelte +49 -19
  433. package/dist/components/Form/Slider/SliderThumb.svelte.d.ts +8 -2
  434. package/dist/components/Form/Slider/SliderTrack.svelte +33 -12
  435. package/dist/components/Form/Slider/SliderTrack.svelte.d.ts +6 -2
  436. package/dist/components/Form/Slider/index.d.ts +1 -1
  437. package/dist/components/Form/Slider/slider.mcp.d.ts +1 -1
  438. package/dist/components/Form/Slider/slider.mcp.js +55 -11
  439. package/dist/components/Form/Slider/slider.props.d.ts +35 -2
  440. package/dist/components/Form/Slider/slider.state.svelte.d.ts +66 -5
  441. package/dist/components/Form/Slider/slider.state.svelte.js +273 -49
  442. package/dist/components/Form/Slider/slider.theme.d.ts +36 -0
  443. package/dist/components/Form/Slider/slider.theme.js +35 -17
  444. package/dist/components/Form/Switch/Switch.svelte +61 -38
  445. package/dist/components/Form/Switch/switch.mcp.d.ts +1 -1
  446. package/dist/components/Form/Switch/switch.mcp.js +25 -5
  447. package/dist/components/Form/Switch/switch.props.d.ts +14 -1
  448. package/dist/components/Form/Switch/switch.theme.d.ts +12 -0
  449. package/dist/components/Form/Switch/switch.theme.js +8 -3
  450. package/dist/components/Form/TagGroup/TagGroup.svelte +8 -0
  451. package/dist/components/Form/TagGroup/tagGroup.mcp.d.ts +1 -1
  452. package/dist/components/Form/TagGroup/tagGroup.mcp.js +1 -0
  453. package/dist/components/Form/TagsInput/TagsInput.svelte +277 -275
  454. package/dist/components/Form/TagsInput/TagsInput.svelte.d.ts +1 -1
  455. package/dist/components/Form/TagsInput/tagsInput.mcp.d.ts +1 -1
  456. package/dist/components/Form/TagsInput/tagsInput.mcp.js +31 -11
  457. package/dist/components/Form/TagsInput/tagsInput.props.d.ts +6 -26
  458. package/dist/components/Form/TagsInput/tagsInput.theme.d.ts +63 -0
  459. package/dist/components/Form/TagsInput/tagsInput.theme.js +37 -1
  460. package/dist/components/Form/TextArea/TextArea.svelte +8 -0
  461. package/dist/components/Form/TextArea/textArea.mcp.d.ts +1 -1
  462. package/dist/components/Form/TextArea/textArea.mcp.js +1 -0
  463. package/dist/components/Form/TextInput/TextInput.svelte +8 -1
  464. package/dist/components/Form/TextInput/textInput.mcp.d.ts +1 -1
  465. package/dist/components/Form/TextInput/textInput.mcp.js +5 -0
  466. package/dist/components/Form/TimeInput/TimeInput.svelte +9 -1
  467. package/dist/components/Form/TimeInput/timeInput.mcp.d.ts +1 -1
  468. package/dist/components/Form/TimeInput/timeInput.mcp.js +31 -0
  469. package/dist/components/Form/VoiceInput/VoiceInput.svelte +10 -2
  470. package/dist/components/Form/VoiceInput/voiceInput.mcp.d.ts +1 -1
  471. package/dist/components/Form/VoiceInput/voiceInput.mcp.js +1 -0
  472. package/dist/components/GanttChart/GanttDependencyControl.svelte +4 -4
  473. package/dist/components/HoverCard/HoverCard.svelte +100 -10
  474. package/dist/components/HoverCard/hoverCard.attributes.d.ts +33 -0
  475. package/dist/components/HoverCard/hoverCard.attributes.js +24 -0
  476. package/dist/components/HoverCard/hoverCard.mcp.d.ts +1 -1
  477. package/dist/components/HoverCard/hoverCard.mcp.js +61 -2
  478. package/dist/components/HoverCard/hoverCard.props.d.ts +19 -0
  479. package/dist/components/HoverCard/hoverCard.theme.d.ts +12 -0
  480. package/dist/components/HoverCard/hoverCard.theme.js +9 -2
  481. package/dist/components/HoverCard/index.d.ts +1 -0
  482. package/dist/components/HoverCard/index.js +1 -0
  483. package/dist/components/ImageGallery/imageGallery.state.svelte.d.ts +1 -1
  484. package/dist/components/ImageZoom/imageZoom.lightbox.js +40 -6
  485. package/dist/components/ImageZoom/imageZoom.mcp.d.ts +1 -1
  486. package/dist/components/ImageZoom/imageZoom.mcp.js +3 -3
  487. package/dist/components/ImageZoom/imageZoom.props.d.ts +10 -4
  488. package/dist/components/ImageZoom/imageZoom.state.svelte.d.ts +16 -4
  489. package/dist/components/ImageZoom/imageZoom.state.svelte.js +38 -9
  490. package/dist/components/Kanban/kanban.theme.js +7 -3
  491. package/dist/components/Layout/layoutSpacing.d.ts +2 -2
  492. package/dist/components/LinkPreview/LinkPreview.svelte +7 -1
  493. package/dist/components/LinkPreview/linkPreview.mcp.d.ts +1 -1
  494. package/dist/components/LinkPreview/linkPreview.mcp.js +4 -1
  495. package/dist/components/LinkPreview/linkPreview.props.d.ts +15 -0
  496. package/dist/components/LinkPreview/linkPreview.theme.d.ts +12 -0
  497. package/dist/components/LinkPreview/linkPreview.theme.js +9 -2
  498. package/dist/components/Map/maplibre-cdn.js +3 -2
  499. package/dist/components/Markdown/markdown.mcp.d.ts +1 -1
  500. package/dist/components/Markdown/markdown.mcp.js +2 -1
  501. package/dist/components/Markdown/markdown.theme.js +18 -9
  502. package/dist/components/MediaVolume/MediaVolumeControl.svelte +4 -3
  503. package/dist/components/Menu/Menu.svelte +3 -3
  504. package/dist/components/Menu/Menu.svelte.d.ts +1 -1
  505. package/dist/components/Menu/MenuCheckboxItem.svelte +87 -0
  506. package/dist/components/Menu/MenuCheckboxItem.svelte.d.ts +16 -0
  507. package/dist/components/Menu/MenuFloating.svelte +421 -74
  508. package/dist/components/Menu/MenuFloating.svelte.d.ts +1 -1
  509. package/dist/components/Menu/MenuMirroredIcon.svelte +9 -0
  510. package/dist/components/Menu/MenuMirroredIcon.svelte.d.ts +7 -0
  511. package/dist/components/Menu/MenuRadioGroup.svelte +102 -0
  512. package/dist/components/Menu/MenuRadioGroup.svelte.d.ts +18 -0
  513. package/dist/components/Menu/MenuSearchField.svelte +54 -0
  514. package/dist/components/Menu/MenuSearchField.svelte.d.ts +20 -0
  515. package/dist/components/Menu/MenuStacked.svelte +404 -158
  516. package/dist/components/Menu/MenuStacked.svelte.d.ts +1 -1
  517. package/dist/components/Menu/MenuStackedBackHeader.svelte +6 -1
  518. package/dist/components/Menu/index.d.ts +2 -1
  519. package/dist/components/Menu/index.js +1 -0
  520. package/dist/components/Menu/menu.attributes.d.ts +37 -0
  521. package/dist/components/Menu/menu.attributes.js +28 -0
  522. package/dist/components/Menu/menu.filter.svelte.d.ts +52 -0
  523. package/dist/components/Menu/menu.filter.svelte.js +143 -0
  524. package/dist/components/Menu/menu.mcp.d.ts +1 -1
  525. package/dist/components/Menu/menu.mcp.js +227 -17
  526. package/dist/components/Menu/menu.platform.d.ts +5 -0
  527. package/dist/components/Menu/menu.platform.js +11 -0
  528. package/dist/components/Menu/menu.props.d.ts +172 -9
  529. package/dist/components/Menu/menu.theme.d.ts +147 -0
  530. package/dist/components/Menu/menu.theme.js +101 -0
  531. package/dist/components/Menu/menuTree.d.ts +35 -1
  532. package/dist/components/Menu/menuTree.js +158 -1
  533. package/dist/components/MenuBar/menuBar.mcp.d.ts +1 -1
  534. package/dist/components/MenuBar/menuBar.mcp.js +4 -2
  535. package/dist/components/MenuBar/menuBar.state.svelte.js +28 -10
  536. package/dist/components/MenuOption/MenuOption.svelte +5 -1
  537. package/dist/components/MenuOption/menuOption.mcp.d.ts +1 -1
  538. package/dist/components/MenuOption/menuOption.mcp.js +8 -0
  539. package/dist/components/MenuOption/menuOption.props.d.ts +12 -0
  540. package/dist/components/MenuOption/menuOption.theme.d.ts +18 -0
  541. package/dist/components/MenuOption/menuOption.theme.js +24 -4
  542. package/dist/components/Mermaid/mermaid.mcp.d.ts +1 -1
  543. package/dist/components/Mermaid/mermaid.mcp.js +8 -8
  544. package/dist/components/Mermaid/mermaid.props.d.ts +3 -4
  545. package/dist/components/Mermaid/mermaid.state.svelte.d.ts +20 -19
  546. package/dist/components/Mermaid/mermaid.state.svelte.js +80 -243
  547. package/dist/components/Mermaid/mermaid.theme.js +26 -1
  548. package/dist/components/MetadataList/MetadataList.svelte.d.ts +1 -1
  549. package/dist/components/Meter/Meter.svelte +110 -24
  550. package/dist/components/Meter/Meter.svelte.d.ts +12 -12
  551. package/dist/components/Meter/meter.mcp.d.ts +1 -1
  552. package/dist/components/Meter/meter.mcp.js +23 -37
  553. package/dist/components/Meter/meter.props.d.ts +36 -44
  554. package/dist/components/NavigationMenu/NavigationMenu.svelte +181 -0
  555. package/dist/components/NavigationMenu/NavigationMenu.svelte.d.ts +25 -0
  556. package/dist/components/NavigationMenu/NavigationMenuContent.svelte +141 -0
  557. package/dist/components/NavigationMenu/NavigationMenuContent.svelte.d.ts +13 -0
  558. package/dist/components/NavigationMenu/NavigationMenuTrigger.svelte +75 -0
  559. package/dist/components/NavigationMenu/NavigationMenuTrigger.svelte.d.ts +13 -0
  560. package/dist/components/NavigationMenu/index.d.ts +4 -0
  561. package/dist/components/NavigationMenu/index.js +3 -0
  562. package/dist/components/NavigationMenu/navigationMenu.attributes.d.ts +24 -0
  563. package/dist/components/NavigationMenu/navigationMenu.attributes.js +21 -0
  564. package/dist/components/NavigationMenu/navigationMenu.mcp.d.ts +1 -0
  565. package/dist/components/NavigationMenu/navigationMenu.mcp.js +138 -0
  566. package/dist/components/NavigationMenu/navigationMenu.props.d.ts +129 -0
  567. package/dist/components/NavigationMenu/navigationMenu.props.js +1 -0
  568. package/dist/components/NavigationMenu/navigationMenu.state.svelte.d.ts +163 -0
  569. package/dist/components/NavigationMenu/navigationMenu.state.svelte.js +721 -0
  570. package/dist/components/NavigationMenu/navigationMenu.theme.d.ts +326 -0
  571. package/dist/components/NavigationMenu/navigationMenu.theme.js +239 -0
  572. package/dist/components/Overlay/Overlay.svelte +19 -30
  573. package/dist/components/Overlay/index.d.ts +1 -0
  574. package/dist/components/Overlay/index.js +1 -0
  575. package/dist/components/Overlay/overlay.attributes.d.ts +16 -0
  576. package/dist/components/Overlay/overlay.attributes.js +14 -0
  577. package/dist/components/Overlay/overlay.mcp.d.ts +1 -1
  578. package/dist/components/Overlay/overlay.mcp.js +21 -3
  579. package/dist/components/Overlay/overlay.props.d.ts +8 -4
  580. package/dist/components/Popover/Popover.svelte +163 -52
  581. package/dist/components/Popover/Popover.svelte.d.ts +23 -2
  582. package/dist/components/Popover/PopoverSession.svelte +12 -0
  583. package/dist/components/Popover/PopoverSession.svelte.d.ts +7 -0
  584. package/dist/components/Popover/index.d.ts +10 -2
  585. package/dist/components/Popover/index.js +4 -1
  586. package/dist/components/Popover/popover.api.d.ts +83 -0
  587. package/dist/components/Popover/popover.api.js +1 -0
  588. package/dist/components/Popover/popover.attributes.d.ts +32 -0
  589. package/dist/components/Popover/popover.attributes.js +28 -0
  590. package/dist/components/Popover/popover.claims.d.ts +19 -0
  591. package/dist/components/Popover/popover.claims.js +45 -0
  592. package/dist/components/Popover/popover.mcp.d.ts +1 -1
  593. package/dist/components/Popover/popover.mcp.js +163 -31
  594. package/dist/components/Popover/popover.position.d.ts +226 -0
  595. package/dist/components/Popover/popover.position.js +402 -0
  596. package/dist/components/Popover/popover.props.d.ts +179 -24
  597. package/dist/components/Popover/popover.state.svelte.d.ts +169 -37
  598. package/dist/components/Popover/popover.state.svelte.js +1034 -194
  599. package/dist/components/Popover/popover.theme.d.ts +15 -0
  600. package/dist/components/Popover/popover.theme.js +27 -2
  601. package/dist/components/PopupMenu/PopupMenu.svelte +193 -22
  602. package/dist/components/PopupMenu/PopupMenu.svelte.d.ts +2 -2
  603. package/dist/components/PopupMenu/popupMenu.context.d.ts +42 -0
  604. package/dist/components/PopupMenu/popupMenu.context.js +52 -0
  605. package/dist/components/PopupMenu/popupMenu.mcp.d.ts +1 -1
  606. package/dist/components/PopupMenu/popupMenu.mcp.js +46 -6
  607. package/dist/components/PopupMenu/popupMenu.props.d.ts +29 -2
  608. package/dist/components/Progress/Progress.svelte +160 -0
  609. package/dist/components/Progress/Progress.svelte.d.ts +4 -0
  610. package/dist/components/Progress/index.d.ts +3 -0
  611. package/dist/components/Progress/index.js +2 -0
  612. package/dist/components/Progress/progress.mcp.d.ts +1 -0
  613. package/dist/components/Progress/progress.mcp.js +101 -0
  614. package/dist/components/Progress/progress.props.d.ts +79 -0
  615. package/dist/components/Progress/progress.props.js +1 -0
  616. package/dist/components/Progress/progress.theme.d.ts +129 -0
  617. package/dist/components/Progress/progress.theme.js +83 -0
  618. package/dist/components/ProgressCircle/ProgressCircle.svelte +51 -6
  619. package/dist/components/ProgressCircle/progressCircle.mcp.d.ts +1 -1
  620. package/dist/components/ProgressCircle/progressCircle.mcp.js +18 -4
  621. package/dist/components/ProgressCircle/progressCircle.props.d.ts +32 -2
  622. package/dist/components/ProgressCircle/progressCircle.theme.d.ts +15 -3
  623. package/dist/components/ProgressCircle/progressCircle.theme.js +7 -2
  624. package/dist/components/RichTextInput/RichTextInput.svelte +19 -1
  625. package/dist/components/RichTextInput/RichTextInputChrome.svelte +5 -1
  626. package/dist/components/RichTextInput/RichTextInputChrome.svelte.d.ts +2 -0
  627. package/dist/components/RichTextInput/RichTextInputViewport.svelte +3 -1
  628. package/dist/components/RichTextInput/RichTextInputViewport.svelte.d.ts +1 -0
  629. package/dist/components/RichTextInput/richTextInput.mcp.d.ts +1 -1
  630. package/dist/components/RichTextInput/richTextInput.mcp.js +1 -0
  631. package/dist/components/RichTextInput/suggestions.js +2 -0
  632. package/dist/components/ScrollArea/ScrollArea.svelte +166 -27
  633. package/dist/components/ScrollArea/index.d.ts +2 -1
  634. package/dist/components/ScrollArea/index.js +1 -0
  635. package/dist/components/ScrollArea/scrollArea.attributes.d.ts +25 -0
  636. package/dist/components/ScrollArea/scrollArea.attributes.js +21 -0
  637. package/dist/components/ScrollArea/scrollArea.mcp.d.ts +1 -1
  638. package/dist/components/ScrollArea/scrollArea.mcp.js +47 -3
  639. package/dist/components/ScrollArea/scrollArea.props.d.ts +33 -6
  640. package/dist/components/ScrollArea/scrollArea.svelte.d.ts +56 -12
  641. package/dist/components/ScrollArea/scrollArea.svelte.js +281 -71
  642. package/dist/components/ScrollArea/scrollArea.theme.js +5 -2
  643. package/dist/components/SegmentedControl/SegmentedControl.svelte +4 -3
  644. package/dist/components/SegmentedControl/segmentedControl.mcp.d.ts +1 -1
  645. package/dist/components/SegmentedControl/segmentedControl.mcp.js +3 -2
  646. package/dist/components/SelectionMenu/SelectionMenu.svelte +4 -2
  647. package/dist/components/Sidebar/SidebarAction.svelte +13 -3
  648. package/dist/components/Sidebar/SidebarAction.svelte.d.ts +2 -1
  649. package/dist/components/Sidebar/SidebarActivityBar.svelte +14 -7
  650. package/dist/components/Sidebar/SidebarFlyout.svelte +97 -0
  651. package/dist/components/Sidebar/SidebarFlyout.svelte.d.ts +32 -0
  652. package/dist/components/Sidebar/SidebarGroup.svelte +39 -15
  653. package/dist/components/Sidebar/SidebarMenuButton.svelte +6 -3
  654. package/dist/components/Sidebar/SidebarMenuItem.svelte +134 -31
  655. package/dist/components/Sidebar/SidebarMenuSubItem.svelte +30 -14
  656. package/dist/components/Sidebar/SidebarTreeNode.svelte +41 -61
  657. package/dist/components/Sidebar/index.d.ts +1 -0
  658. package/dist/components/Sidebar/index.js +1 -0
  659. package/dist/components/Sidebar/sidebar-position.d.ts +37 -2
  660. package/dist/components/Sidebar/sidebar-position.js +31 -2
  661. package/dist/components/Sidebar/sidebar.attributes.d.ts +33 -0
  662. package/dist/components/Sidebar/sidebar.attributes.js +29 -0
  663. package/dist/components/Sidebar/sidebar.mcp.d.ts +1 -1
  664. package/dist/components/Sidebar/sidebar.mcp.js +45 -10
  665. package/dist/components/Sidebar/sidebar.props.d.ts +28 -7
  666. package/dist/components/Sidebar/sidebar.theme.d.ts +51 -21
  667. package/dist/components/Sidebar/sidebar.theme.js +113 -62
  668. package/dist/components/Sidebar/sidebar.views.svelte.js +11 -18
  669. package/dist/components/Stepper/Stepper.svelte +2 -0
  670. package/dist/components/Stepper/stepper.mcp.d.ts +1 -1
  671. package/dist/components/Stepper/stepper.mcp.js +1 -0
  672. package/dist/components/Stepper/stepper.props.d.ts +5 -0
  673. package/dist/components/Stepper/stepper.state.svelte.d.ts +2 -0
  674. package/dist/components/Stepper/stepper.state.svelte.js +31 -12
  675. package/dist/components/Tabbar/Tabbar.svelte +55 -16
  676. package/dist/components/Tabbar/index.d.ts +1 -1
  677. package/dist/components/Tabbar/tabbar.mcp.d.ts +1 -1
  678. package/dist/components/Tabbar/tabbar.mcp.js +26 -9
  679. package/dist/components/Tabbar/tabbar.props.d.ts +34 -5
  680. package/dist/components/Tabbar/tabbar.selection.svelte.d.ts +79 -0
  681. package/dist/components/Tabbar/tabbar.selection.svelte.js +99 -0
  682. package/dist/components/TableOfContents/tableOfContents.state.svelte.js +9 -7
  683. package/dist/components/Tabs/Tabs.svelte +73 -16
  684. package/dist/components/Tabs/index.d.ts +2 -1
  685. package/dist/components/Tabs/tabs.direction.svelte.d.ts +25 -0
  686. package/dist/components/Tabs/tabs.direction.svelte.js +40 -0
  687. package/dist/components/Tabs/tabs.mcp.d.ts +1 -1
  688. package/dist/components/Tabs/tabs.mcp.js +22 -4
  689. package/dist/components/Tabs/tabs.props.d.ts +39 -12
  690. package/dist/components/Tabs/tabs.theme.js +3 -1
  691. package/dist/components/Theme/Theme.svelte +44 -27
  692. package/dist/components/Theme/helper.d.ts +16 -2
  693. package/dist/components/Theme/helper.js +46 -4
  694. package/dist/components/Theme/theme.mcp.d.ts +1 -1
  695. package/dist/components/Theme/theme.mcp.js +103 -0
  696. package/dist/components/Theme/theme.props.d.ts +16 -0
  697. package/dist/components/Theme/theme.state.svelte.d.ts +14 -1
  698. package/dist/components/Theme/theme.state.svelte.js +18 -1
  699. package/dist/components/Toast/Toast.svelte +184 -39
  700. package/dist/components/Toast/Toaster.svelte +14 -10
  701. package/dist/components/Toast/index.d.ts +1 -0
  702. package/dist/components/Toast/toast.mcp.d.ts +1 -1
  703. package/dist/components/Toast/toast.mcp.js +47 -6
  704. package/dist/components/Toast/toast.state.svelte.d.ts +172 -6
  705. package/dist/components/Toast/toast.state.svelte.js +513 -68
  706. package/dist/components/Toast/toast.theme.js +1 -1
  707. package/dist/components/ToggleButton/ToggleButton.svelte +23 -1
  708. package/dist/components/ToggleButton/toggleButton.mcp.d.ts +1 -1
  709. package/dist/components/ToggleButton/toggleButton.mcp.js +3 -1
  710. package/dist/components/ToggleButton/toggleButton.props.d.ts +13 -1
  711. package/dist/components/ToggleButton/toggleButton.theme.d.ts +12 -0
  712. package/dist/components/ToggleButton/toggleButton.theme.js +15 -3
  713. package/dist/components/ToggleButtonGroup/ToggleButtonGroup.svelte +29 -9
  714. package/dist/components/ToggleButtonGroup/index.d.ts +1 -1
  715. package/dist/components/ToggleButtonGroup/toggleButtonGroup.mcp.d.ts +1 -1
  716. package/dist/components/ToggleButtonGroup/toggleButtonGroup.mcp.js +5 -2
  717. package/dist/components/ToggleButtonGroup/toggleButtonGroup.props.d.ts +19 -1
  718. package/dist/components/ToggleButtonGroup/toggleButtonGroup.theme.d.ts +12 -0
  719. package/dist/components/ToggleButtonGroup/toggleButtonGroup.theme.js +21 -2
  720. package/dist/components/ToggleMenu/ToggleMenu.svelte +57 -43
  721. package/dist/components/ToggleMenu/ToggleMenuGroup.svelte +1 -0
  722. package/dist/components/ToggleMenu/ToggleMenuMenu.svelte +9 -3
  723. package/dist/components/ToggleMenu/ToggleMenuRadioGroup.svelte +7 -2
  724. package/dist/components/ToggleMenu/toggleMenu.mcp.d.ts +1 -1
  725. package/dist/components/ToggleMenu/toggleMenu.mcp.js +3 -2
  726. package/dist/components/ToggleMenu/toggleMenu.props.d.ts +4 -1
  727. package/dist/components/Tooltip/Tooltip.svelte +4 -12
  728. package/dist/components/Tooltip/TooltipHost.svelte +136 -15
  729. package/dist/components/Tooltip/index.d.ts +1 -0
  730. package/dist/components/Tooltip/index.js +1 -0
  731. package/dist/components/Tooltip/tooltip.attachment.svelte.d.ts +5 -0
  732. package/dist/components/Tooltip/tooltip.attachment.svelte.js +215 -33
  733. package/dist/components/Tooltip/tooltip.attributes.d.ts +32 -0
  734. package/dist/components/Tooltip/tooltip.attributes.js +28 -0
  735. package/dist/components/Tooltip/tooltip.mcp.d.ts +1 -1
  736. package/dist/components/Tooltip/tooltip.mcp.js +111 -10
  737. package/dist/components/Tooltip/tooltip.props.d.ts +33 -2
  738. package/dist/components/Tooltip/tooltip.surface.d.ts +24 -0
  739. package/dist/components/Tooltip/tooltip.surface.js +42 -0
  740. package/dist/components/Tree/TreeContextMenuSurface.svelte +16 -3
  741. package/dist/components/Utils/BeforeHydratation.svelte +14 -3
  742. package/dist/components/Utils/BeforeHydratation.svelte.d.ts +2 -0
  743. package/dist/components/VideoPlayer/VideoPlayer.svelte.d.ts +1 -1
  744. package/dist/components/VideoPlayer/VideoPlayerSettings.svelte +2 -0
  745. package/dist/generated/componentAliases.d.ts +3 -0
  746. package/dist/generated/componentAliases.js +3 -0
  747. package/dist/generated/componentContract.d.ts +79 -34
  748. package/dist/generated/componentContract.js +225 -6
  749. package/dist/generated/componentMcpRegistry.js +6 -0
  750. package/dist/i18n/ar.js +107 -3
  751. package/dist/i18n/context.svelte.d.ts +6 -0
  752. package/dist/i18n/context.svelte.js +12 -0
  753. package/dist/i18n/de.js +101 -3
  754. package/dist/i18n/en.d.ts +91 -2
  755. package/dist/i18n/en.js +101 -3
  756. package/dist/i18n/es.js +101 -3
  757. package/dist/i18n/fr.js +101 -3
  758. package/dist/i18n/ja.js +101 -3
  759. package/dist/i18n/pt.js +101 -3
  760. package/dist/i18n/zh.js +101 -3
  761. package/dist/tailwind/geometry.js +7 -0
  762. package/dist/tailwind/global.js +31 -0
  763. package/dist/types/index.d.ts +1 -0
  764. package/dist/types/types.mcp.d.ts +1 -1
  765. package/dist/types/types.mcp.js +23 -0
  766. package/dist/utils/cspNonce.d.ts +16 -0
  767. package/dist/utils/cspNonce.js +39 -0
  768. package/dist/utils/cva/merge.d.ts +5 -1
  769. package/dist/utils/cva/merge.js +6 -4
  770. package/dist/utils/focus.d.ts +34 -0
  771. package/dist/utils/focus.js +93 -0
  772. package/dist/utils/focusHistory.d.ts +21 -0
  773. package/dist/utils/focusHistory.js +99 -0
  774. package/dist/utils/handlers.d.ts +7 -0
  775. package/dist/utils/handlers.js +14 -0
  776. package/dist/utils/hoverIntent.d.ts +42 -0
  777. package/dist/utils/hoverIntent.js +57 -0
  778. package/dist/utils/id.d.ts +7 -0
  779. package/dist/utils/id.js +15 -0
  780. package/dist/utils/layers.svelte.d.ts +32 -4
  781. package/dist/utils/layers.svelte.js +214 -21
  782. package/dist/utils/listFilter.d.ts +44 -0
  783. package/dist/utils/listFilter.js +130 -0
  784. package/dist/utils/match.d.ts +35 -0
  785. package/dist/utils/match.js +36 -0
  786. package/dist/utils/number.d.ts +126 -0
  787. package/dist/utils/number.js +401 -0
  788. package/dist/utils/openChange.d.ts +88 -0
  789. package/dist/utils/openChange.js +71 -0
  790. package/dist/utils/openLifecycle.svelte.d.ts +41 -0
  791. package/dist/utils/openLifecycle.svelte.js +134 -0
  792. package/dist/utils/pointerDrag.d.ts +10 -0
  793. package/dist/utils/pointerDrag.js +37 -2
  794. package/dist/utils/pragmaticDragAndDrop.d.ts +2 -1
  795. package/dist/utils/pragmaticDragAndDrop.js +8 -3
  796. package/dist/utils/range.d.ts +62 -0
  797. package/dist/utils/range.js +70 -0
  798. package/dist/utils/requestNativeSubmit.d.ts +17 -0
  799. package/dist/utils/requestNativeSubmit.js +47 -0
  800. package/dist/utils/safeArea.svelte.d.ts +10 -1
  801. package/dist/utils/safeArea.svelte.js +19 -11
  802. package/dist/utils/stateAttributes.d.ts +108 -0
  803. package/dist/utils/stateAttributes.js +78 -0
  804. package/dist/utils/swipeVelocity.d.ts +32 -0
  805. package/dist/utils/swipeVelocity.js +59 -0
  806. package/dist/utils/timer.svelte.d.ts +65 -2
  807. package/dist/utils/timer.svelte.js +159 -25
  808. package/dist/utils/trigger.d.ts +41 -0
  809. package/dist/utils/trigger.js +103 -0
  810. package/dist/utils/typeahead.d.ts +9 -0
  811. package/dist/utils/typeahead.js +21 -9
  812. package/dist/utils/useDndList.svelte.d.ts +1 -1
  813. package/dist/utils/useDndList.svelte.js +6 -23
  814. package/dist/utils/useFocusScope.svelte.d.ts +29 -0
  815. package/dist/utils/useFocusScope.svelte.js +189 -27
  816. package/dist/utils/useHoverAction.svelte.d.ts +44 -4
  817. package/dist/utils/useHoverAction.svelte.js +161 -51
  818. package/dist/utils/useKeyDown.svelte.d.ts +19 -2
  819. package/dist/utils/useKeyDown.svelte.js +19 -12
  820. package/dist/utils/useListNavigation.svelte.d.ts +94 -13
  821. package/dist/utils/useListNavigation.svelte.js +261 -35
  822. package/dist/utils/useLiveAnnouncer.svelte.d.ts +77 -2
  823. package/dist/utils/useLiveAnnouncer.svelte.js +119 -2
  824. package/dist/utils/useNavigation.svelte.d.ts +36 -3
  825. package/dist/utils/useNavigation.svelte.js +699 -332
  826. package/dist/utils/usePressAndHold.svelte.d.ts +38 -0
  827. package/dist/utils/usePressAndHold.svelte.js +191 -0
  828. package/dist/utils/useScrollLock.svelte.d.ts +20 -1
  829. package/dist/utils/useScrollLock.svelte.js +54 -13
  830. package/dist/utils/useSlidingIndicator.svelte.d.ts +2 -0
  831. package/dist/utils/useSlidingIndicator.svelte.js +27 -5
  832. package/dist/utils/useTabBridge.svelte.d.ts +20 -0
  833. package/dist/utils/useTabBridge.svelte.js +109 -0
  834. package/dist/utils/values.d.ts +15 -0
  835. package/dist/utils/values.js +49 -0
  836. package/package.json +31 -2
  837. package/dist/generated/componentMcpRegistry.d.ts +0 -142
  838. package/dist/utils/useDrag.svelte.d.ts +0 -11
  839. package/dist/utils/useDrag.svelte.js +0 -55
@@ -6,6 +6,7 @@
6
6
 
7
7
  let {
8
8
  ref = $bindable(),
9
+ size = 'normal',
9
10
  variant = 'default',
10
11
  icon,
11
12
  content,
@@ -22,6 +23,7 @@
22
23
  bind:this={ref}
23
24
  data-slot="ai-marker"
24
25
  data-variant={variant}
26
+ data-size={size}
25
27
  class={classes.root({ variant, className })}
26
28
  {...attachments}
27
29
  >
@@ -1 +1 @@
1
- export declare const aiMarkerDescription = "\n# AIMarker\n\nTranscript marker with default, separator, and bottom-border variants.\n\n```svelte\n<script>\n import { AIMarker } from './index.ts';\n import { fileTextIcon } from 'entasis/icons/fileText';\n</script>\n\n{#snippet icon()}{@render fileTextIcon({ size: 16 })}{/snippet}\n{#snippet content()}<span>Imported <strong>3 files</strong></span>{/snippet}\n\n<AIMarker variant=\"separator\" {icon} {content} aria-label=\"Imported files\" />\n```\n";
1
+ export declare const aiMarkerDescription = "\n# AIMarker\n\nTranscript marker with default, separator, and bottom-border variants.\n\n```svelte\n<script>\n import { AIMarker } from './index.ts';\n import { fileTextIcon } from 'entasis/icons/fileText';\n</script>\n\n{#snippet icon()}{@render fileTextIcon({ size: 16 })}{/snippet}\n{#snippet content()}<span>Imported <strong>3 files</strong></span>{/snippet}\n\n<AIMarker variant=\"separator\" {icon} {content} aria-label=\"Imported files\" />\n```\n\n`size` (`small`, `normal` or `large`, default `normal`) scales the marker text and icon with the AIMessage size scale; AIThread passes its `messageSize`.\n";
@@ -14,4 +14,6 @@ Transcript marker with default, separator, and bottom-border variants.
14
14
 
15
15
  <AIMarker variant="separator" {icon} {content} aria-label="Imported files" />
16
16
  \`\`\`
17
+
18
+ \`size\` (\`small\`, \`normal\` or \`large\`, default \`normal\`) scales the marker text and icon with the AIMessage size scale; AIThread passes its \`messageSize\`.
17
19
  `;
@@ -1,3 +1,4 @@
1
+ import type { Sizes } from '../../types/theme.js';
1
2
  import type { Slot } from '../Slot/slot.js';
2
3
  import type { WithAttachments } from '../../types/props.js';
3
4
  import type { HTMLAttributes } from 'svelte/elements';
@@ -6,6 +7,8 @@ export type AIMarkerVariant = 'default' | 'separator' | 'border';
6
7
  export type AIMarkerProps = WithAttachments<Omit<HTMLAttributes<HTMLDivElement>, 'children' | 'class' | 'content'> & {
7
8
  /** Bindable reference to the marker root. */
8
9
  ref?: HTMLDivElement | null;
10
+ /** Type and icon scale: `small`, `normal` (default) or `large`, matching AIMessage sizes. AIThread passes its `messageSize`. */
11
+ size?: Sizes;
9
12
  /** Marker layout and separator treatment. */
10
13
  variant?: AIMarkerVariant;
11
14
  /** Fallback marker label used when `content` is omitted. */
@@ -1,6 +1,6 @@
1
1
  import { cva, setComponentTheme, useComponentTheme } from '../../utils/cva/index.js';
2
2
  const defaultRoot = cva({
3
- base: 'group/ai-marker relative flex min-h-4 w-full items-center gap-md text-left text-sm text-neutral/70 [&_svg:not([class*=size-])]:size-4',
3
+ base: 'group/ai-marker-size group/ai-marker relative flex min-h-4 w-full items-center gap-md text-left text-sm data-[size=small]:text-xs data-[size=large]:text-base text-neutral/70 [&_svg:not([class*=size-])]:size-4',
4
4
  variants: {
5
5
  variant: {
6
6
  default: null,
@@ -12,7 +12,7 @@ const defaultRoot = cva({
12
12
  });
13
13
  const defaultRule = cva({ base: 'h-px min-w-0 flex-1 bg-neutral-muted' });
14
14
  const defaultIcon = cva({
15
- base: 'flex size-4 shrink-0 items-center justify-center [&_svg:not([class*=size-])]:size-4'
15
+ base: 'flex size-4 group-data-[size=small]/ai-marker-size:size-3.5 group-data-[size=large]/ai-marker-size:size-4.5 shrink-0 items-center justify-center [&_svg:not([class*=size-])]:size-4'
16
16
  });
17
17
  const defaultContent = cva({
18
18
  base: 'min-w-0 break-words [&_a]:underline [&_a]:underline-offset-3 [&_a:hover]:text-neutral',
@@ -3,6 +3,7 @@
3
3
  import Markdown from '../Markdown/Markdown.svelte';
4
4
  import type { MarkdownSize } from '../Markdown/markdown.props.js';
5
5
  import Slot from '../Slot/Slot.svelte';
6
+ import { useDefaultColor } from '../Theme/theme.state.svelte.js';
6
7
  import AIMessageActions from '../AIMessageActions/AIMessageActions.svelte';
7
8
  import type { AIThreadItem, AIThreadRole } from '../AIThread/aiThread.props.js';
8
9
  import type { AIMessageProps, AIMessageRenderPayload, AIMessageSize } from './aiMessage.props.js';
@@ -24,7 +25,10 @@
24
25
  content,
25
26
  files,
26
27
  size = 'normal',
27
- variant = 'bubble',
28
+ density = 'normal',
29
+ variant = 'minimal',
30
+ color,
31
+ streaming = false,
28
32
  markdown = true,
29
33
  streamdown,
30
34
  markdownProps,
@@ -59,6 +63,7 @@
59
63
  resolvedMarkdownProps?.allowedImagePrefixes ?? ['https://']
60
64
  );
61
65
  const resolvedActionVisibility = $derived(actionsVisibility ?? actionVisibility ?? 'always');
66
+ const resolvedColor = $derived(useDefaultColor(color));
62
67
  const resolvedCopyable = $derived(copyable ?? copyAction);
63
68
  const resolvedEditable = $derived(editable ?? editAction ?? resolvedRole === 'user');
64
69
  const resolvedRetryable = $derived(retryable ?? retryAction ?? resolvedRole === 'assistant');
@@ -88,6 +93,10 @@
88
93
  const markdownSize = $derived(resolveMarkdownSize(size));
89
94
  const roleLayout = $derived(resolveRoleLayout(resolvedRole));
90
95
  const fileAlignment = $derived(resolveFileAlignment(roleLayout));
96
+ // A message that only carries files (an upload with no prompt) shows no empty bubble.
97
+ const showBubble = $derived(
98
+ children !== undefined || streaming || resolvedContent !== '' || resolvedFiles.length === 0
99
+ );
91
100
 
92
101
  function resolveRoleLayout(value: AIThreadRole): 'user' | 'assistant' | 'system' | 'tool' {
93
102
  if (value === 'user') return 'user';
@@ -104,9 +113,12 @@
104
113
  return 'start';
105
114
  }
106
115
 
116
+ // The Markdown scale supplies block spacing and code size; AIMessage's own `markdown` theme part
117
+ // sets the prose type size and the heading steps on top of it.
118
+ // Messages sit one step below the Markdown scale: a `normal` message reads at 14px, so it takes
119
+ // Markdown's `small` block spacing and code size, and `large` takes Markdown's `normal`.
107
120
  function resolveMarkdownSize(value: AIMessageSize): MarkdownSize {
108
- if (value === 'large') return 'large';
109
- return 'small';
121
+ return value === 'large' ? 'normal' : 'small';
110
122
  }
111
123
  </script>
112
124
 
@@ -116,7 +128,10 @@
116
128
  data-from={resolvedRole}
117
129
  data-role={resolvedRole}
118
130
  data-size={size}
131
+ data-density={density}
119
132
  data-variant={variant}
133
+ data-color={resolvedColor}
134
+ data-streaming={streaming ? 'true' : undefined}
120
135
  data-actions-visibility={resolvedActionVisibility}
121
136
  class={classes.root({
122
137
  role: roleLayout,
@@ -130,19 +145,26 @@
130
145
  {resolvedName}
131
146
  </div>{/if}
132
147
  <AIMessageFiles files={resolvedFiles} align={fileAlignment} {size} class={classes.files()} />
133
- <div data-slot="ai-message-content" class={classes.bubble({ role: roleLayout, size, variant })}>
134
- {#if children !== undefined}<Slot render={children} {payload} />{:else if markdown}<Markdown
135
- content={markdownContent}
136
- {...resolvedMarkdownProps}
137
- size={markdownSize}
138
- class={classes.markdown({ size, className: resolvedMarkdownProps?.class })}
139
- {allowedLinkPrefixes}
140
- {allowedImagePrefixes}
141
- renderHtml={false}
142
- {extensions}
143
- {mdxComponents}
144
- />{:else}<span class="whitespace-pre-wrap">{resolvedContent}</span>{/if}
145
- </div>
148
+ {#if showBubble}
149
+ <div
150
+ data-slot="ai-message-content"
151
+ class={classes.bubble({ role: roleLayout, size, variant, color: resolvedColor })}
152
+ >
153
+ {#if children !== undefined}<Slot render={children} {payload} />{:else if markdown}<Markdown
154
+ content={markdownContent}
155
+ {...resolvedMarkdownProps}
156
+ size={markdownSize}
157
+ class={classes.markdown({ size, density, className: resolvedMarkdownProps?.class })}
158
+ {allowedLinkPrefixes}
159
+ {allowedImagePrefixes}
160
+ renderHtml={false}
161
+ {extensions}
162
+ {mdxComponents}
163
+ />{:else}<span class="whitespace-pre-wrap">{resolvedContent}</span>{/if}
164
+ {#if streaming}<span data-slot="ai-message-caret" aria-hidden="true" class={classes.caret()}
165
+ ></span>{/if}
166
+ </div>
167
+ {/if}
146
168
  <AIMessageActions
147
169
  {message}
148
170
  messageIndex={resolvedIndex}
@@ -1 +1 @@
1
- export declare const aiMessageDescription = "\n# AIMessage\n\nRole-aware chat message with Markdown, inline AI tokens, files, and copy/edit/retry actions.\n\n## Content and precedence\n\n`message` supplies role, name, content, and files. Direct `from`, `name`, `content`, and\n`files` props take precedence. `messageIndex` is canonical and `index` is its Entasis alias.\n\n`markdown` defaults to true. `streamdown` forwards shared Markdown options and wins over the\n`markdownProps` alias. Raw HTML is always disabled. HTTPS images and HTTPS, email, and telephone\nlinks are the safe defaults; callers may narrow or extend those prefix lists through Markdown\noptions. File, Reference, Mention, Skill, and Command tokens are parsed inside prose, and\ncaller-provided `mdxComponents` may replace their default renderers.\n\n`variant` accepts `bubble` or `minimal`. Bubble preserves the framed role surfaces. Minimal\nkeeps user and system semantics visible with a neutral user surface while rendering assistant and\ntool content without a background container. `size` accepts `small`, `normal`, or `large`\nand scales typography, content padding, file previews, and the default action controls together.\n\n```svelte\n<script>\n import { AIMessage } from './index.ts';\n</script>\n\n<AIMessage\n from=\"assistant\"\n content={'Review <File id=\"brief\" label=\"launch-brief.md\" /> before launch.'}\n files={[{ name: 'launch-brief.md', size: 18420, type: 'text/markdown' }]}\n variant=\"minimal\"\n size=\"normal\"\n actionsVisibility=\"always\"\n/>\n```\n\n## Actions and composition\n\n`actionsVisibility` wins over the `actionVisibility` alias. `copyable`, `editable`, and\n`retryable` win over `copyAction`, `editAction`, and `retryAction`. User messages enable\nedit by default; assistant messages enable retry by default. `actions={false}` removes the action\nregion, while a custom actions slot receives `AIMessageActionState`.\n\nDefault edit and retry actions use the nearest `AIConversation`. A direct `conversation` wins,\nand `conversation={null}` explicitly disables context lookup. Direct `onCopy`, `onEdit`, and\n`onRetry` handlers take precedence over conversation behavior.\n\n`children` replaces the body only and receives the resolved message, index, role, content, size,\nand variant;\nthe role layout, files, and action region remain owned by AIMessage. Native article attributes,\nattachments, bindable `ref`, `class`, and `theme` are forwarded. Theme parts are `root`,\n`body`, `header`, `files`, `bubble`, `markdown`, and `actions`.\n";
1
+ export declare const aiMessageDescription = "\n# AIMessage\n\nRole-aware chat message with Markdown, inline AI tokens, files, and copy/edit/retry actions.\n\n## Content and precedence\n\n`message` supplies role, name, content, and files. Direct `from`, `name`, `content`, and\n`files` props take precedence. `messageIndex` is canonical and `index` is its Entasis alias.\n\n`markdown` defaults to true. `streamdown` forwards shared Markdown options and wins over the\n`markdownProps` alias. Raw HTML is always disabled. HTTPS images and HTTPS, email, and telephone\nlinks are the safe defaults; callers may narrow or extend those prefix lists through Markdown\noptions. File, Reference, Mention, Skill, and Command tokens are parsed inside prose, and\ncaller-provided `mdxComponents` may replace their default renderers.\n\n`variant` accepts `minimal` (the default) or `bubble`. Minimal renders assistant and tool\ncontent as flat, full-width prose and keeps the user bubble; bubble frames assistant replies too.\n`color` sets the user bubble: `neutral` (the theme's default colour) is a quiet grey bubble and\nany other role paints a solid bubble in that role (`primary` gives the saturated look). Bubble\ntails sit on logical corners, so they follow the writing direction. Bubbles keep a 38rem / 82% cap\nonly once the message is at least 24rem wide; a narrower message gives them its full width.\n\n`size` accepts `small`, `normal`, or `large` and scales typography, content padding, file\npreviews, and the default action controls together. Normal prose reads at 14px (large 16px, small\n12px) with a 1.625 line height; headings stay close to the body (h2 about 1.25x), lists hang-indent, inline code is a muted\nchip at 0.9em, and tables read at body size and scroll with an edge fade when they overflow.\n`streaming` shows a pulsing caret after the content while a reply is still being written. A\nmessage that carries only files shows no empty bubble. Tables, lists, quotes and alerts read at the message size; fenced code at 0.9\u00D7 of it, like inline code, so it grows with every size. `density` (`compact`, `normal`, `comfortable`) sets table-cell and code-block padding and the space between paragraphs, lists and quotes; AIThread and AIChat pass theirs.\n\n```svelte\n<script>\n import { AIMessage } from './index.ts';\n</script>\n\n<AIMessage\n from=\"assistant\"\n content={'Review <File id=\"brief\" label=\"launch-brief.md\" /> before launch.'}\n files={[{ name: 'launch-brief.md', size: 18420, type: 'text/markdown' }]}\n variant=\"minimal\"\n color=\"neutral\"\n size=\"normal\"\n actionsVisibility=\"always\"\n/>\n```\n\n## Actions and composition\n\n`actionsVisibility` wins over the `actionVisibility` alias. `copyable`, `editable`, and\n`retryable` win over `copyAction`, `editAction`, and `retryAction`. User messages enable\nedit by default; assistant messages enable retry by default. `actions={false}` removes the action\nregion, while a custom actions slot receives `AIMessageActionState`. The action row sits in the\nlayout flow under the content (it keeps its height while hover-hidden), and its first icon lines\nup with the text or bubble edge.\n\nDefault edit and retry actions use the nearest `AIConversation`. A direct `conversation` wins,\nand `conversation={null}` explicitly disables context lookup. Direct `onCopy`, `onEdit`, and\n`onRetry` handlers take precedence over conversation behavior.\n\n`children` replaces the body only and receives the resolved message, index, role, content, size,\nand variant;\nthe role layout, files, and action region remain owned by AIMessage. Native article attributes,\nattachments, bindable `ref`, `class`, and `theme` are forwarded. Theme parts are `root`,\n`body`, `header`, `files`, `bubble` (with a `color` variant), `markdown`, `caret`, and `actions`.\nThe root carries `data-from`, `data-variant`, `data-color`, `data-size`, `data-actions-visibility`\nand, while streaming, `data-streaming`.\n";
@@ -14,10 +14,19 @@ links are the safe defaults; callers may narrow or extend those prefix lists thr
14
14
  options. File, Reference, Mention, Skill, and Command tokens are parsed inside prose, and
15
15
  caller-provided \`mdxComponents\` may replace their default renderers.
16
16
 
17
- \`variant\` accepts \`bubble\` or \`minimal\`. Bubble preserves the framed role surfaces. Minimal
18
- keeps user and system semantics visible with a neutral user surface while rendering assistant and
19
- tool content without a background container. \`size\` accepts \`small\`, \`normal\`, or \`large\`
20
- and scales typography, content padding, file previews, and the default action controls together.
17
+ \`variant\` accepts \`minimal\` (the default) or \`bubble\`. Minimal renders assistant and tool
18
+ content as flat, full-width prose and keeps the user bubble; bubble frames assistant replies too.
19
+ \`color\` sets the user bubble: \`neutral\` (the theme's default colour) is a quiet grey bubble and
20
+ any other role paints a solid bubble in that role (\`primary\` gives the saturated look). Bubble
21
+ tails sit on logical corners, so they follow the writing direction. Bubbles keep a 38rem / 82% cap
22
+ only once the message is at least 24rem wide; a narrower message gives them its full width.
23
+
24
+ \`size\` accepts \`small\`, \`normal\`, or \`large\` and scales typography, content padding, file
25
+ previews, and the default action controls together. Normal prose reads at 14px (large 16px, small
26
+ 12px) with a 1.625 line height; headings stay close to the body (h2 about 1.25x), lists hang-indent, inline code is a muted
27
+ chip at 0.9em, and tables read at body size and scroll with an edge fade when they overflow.
28
+ \`streaming\` shows a pulsing caret after the content while a reply is still being written. A
29
+ message that carries only files shows no empty bubble. Tables, lists, quotes and alerts read at the message size; fenced code at 0.9× of it, like inline code, so it grows with every size. \`density\` (\`compact\`, \`normal\`, \`comfortable\`) sets table-cell and code-block padding and the space between paragraphs, lists and quotes; AIThread and AIChat pass theirs.
21
30
 
22
31
  \`\`\`svelte
23
32
  <script>
@@ -29,6 +38,7 @@ and scales typography, content padding, file previews, and the default action co
29
38
  content={'Review <File id="brief" label="launch-brief.md" /> before launch.'}
30
39
  files={[{ name: 'launch-brief.md', size: 18420, type: 'text/markdown' }]}
31
40
  variant="minimal"
41
+ color="neutral"
32
42
  size="normal"
33
43
  actionsVisibility="always"
34
44
  />
@@ -39,7 +49,9 @@ and scales typography, content padding, file previews, and the default action co
39
49
  \`actionsVisibility\` wins over the \`actionVisibility\` alias. \`copyable\`, \`editable\`, and
40
50
  \`retryable\` win over \`copyAction\`, \`editAction\`, and \`retryAction\`. User messages enable
41
51
  edit by default; assistant messages enable retry by default. \`actions={false}\` removes the action
42
- region, while a custom actions slot receives \`AIMessageActionState\`.
52
+ region, while a custom actions slot receives \`AIMessageActionState\`. The action row sits in the
53
+ layout flow under the content (it keeps its height while hover-hidden), and its first icon lines
54
+ up with the text or bubble edge.
43
55
 
44
56
  Default edit and retry actions use the nearest \`AIConversation\`. A direct \`conversation\` wins,
45
57
  and \`conversation={null}\` explicitly disables context lookup. Direct \`onCopy\`, \`onEdit\`, and
@@ -49,5 +61,7 @@ and \`conversation={null}\` explicitly disables context lookup. Direct \`onCopy\
49
61
  and variant;
50
62
  the role layout, files, and action region remain owned by AIMessage. Native article attributes,
51
63
  attachments, bindable \`ref\`, \`class\`, and \`theme\` are forwarded. Theme parts are \`root\`,
52
- \`body\`, \`header\`, \`files\`, \`bubble\`, \`markdown\`, and \`actions\`.
64
+ \`body\`, \`header\`, \`files\`, \`bubble\` (with a \`color\` variant), \`markdown\`, \`caret\`, and \`actions\`.
65
+ The root carries \`data-from\`, \`data-variant\`, \`data-color\`, \`data-size\`, \`data-actions-visibility\`
66
+ and, while streaming, \`data-streaming\`.
53
67
  `;
@@ -1,6 +1,6 @@
1
1
  import type { Slot } from '../Slot/slot.js';
2
2
  import type { WithAttachments } from '../../types/props.js';
3
- import type { Sizes } from '../../types/theme.js';
3
+ import type { Colors, Density, Sizes } from '../../types/theme.js';
4
4
  import type { HTMLAttributes } from 'svelte/elements';
5
5
  import type { MarkdownProps } from '../Markdown/markdown.props.js';
6
6
  import type { AIMessageActionHandler, AIMessageActionState, AIMessageActionVisibility } from '../AIMessageActions/aiMessageActions.props.js';
@@ -42,8 +42,24 @@ export type AIMessageProps<TMessage extends AIThreadItem = AIThreadItem> = WithA
42
42
  files?: readonly AIFileSource[];
43
43
  /** Type and control scale. @default 'normal' */
44
44
  size?: AIMessageSize;
45
- /** Message presentation. Minimal keeps user bubbles but unframes assistant and tool content. @default 'bubble' */
45
+ /**
46
+ * Spacing inside rich content: table cell and code block padding and the space between
47
+ * paragraphs, lists, quotes, tables and code. AIThread and AIChat pass their `density`.
48
+ * @default 'normal'
49
+ */
50
+ density?: Density;
51
+ /**
52
+ * Message presentation. Minimal keeps the user bubble and renders assistant and tool content
53
+ * as flat, full-width prose; bubble frames assistant replies too. @default 'minimal'
54
+ */
46
55
  variant?: AIMessageVariant;
56
+ /**
57
+ * User-bubble colour. `neutral` is a quiet grey bubble; any other role paints a solid bubble
58
+ * in that role (`primary` gives the saturated look). Defaults to the theme's default colour.
59
+ */
60
+ color?: Colors;
61
+ /** The reply is still streaming: shows a pulsing caret after the content. */
62
+ streaming?: boolean;
47
63
  /** Renders content with the shared Markdown component. */
48
64
  markdown?: boolean;
49
65
  /** Props forwarded to Markdown except for its owned safety boundary. */
@@ -53,6 +53,15 @@ export declare const aiMessageTheme: {
53
53
  bubble: null;
54
54
  minimal: null;
55
55
  };
56
+ color: {
57
+ primary: null;
58
+ secondary: null;
59
+ neutral: null;
60
+ danger: null;
61
+ success: null;
62
+ warning: null;
63
+ info: null;
64
+ };
56
65
  }> & import("../../utils/cva/types.js").CVAClassProp) | undefined) => string;
57
66
  markdown: (props?: (import("../../utils/cva/types.js").CVAVariantSchema<{
58
67
  size: {
@@ -60,12 +69,18 @@ export declare const aiMessageTheme: {
60
69
  normal: string;
61
70
  large: string;
62
71
  };
72
+ density: {
73
+ compact: string;
74
+ normal: string;
75
+ comfortable: string;
76
+ };
63
77
  }> & import("../../utils/cva/types.js").CVAClassProp) | undefined) => string;
64
78
  files: (props?: import("../../utils/cva/types.js").CVAClassProp | undefined) => string;
79
+ caret: (props?: import("../../utils/cva/types.js").CVAClassProp | undefined) => string;
65
80
  actions: (props?: (import("../../utils/cva/types.js").CVAVariantSchema<{
66
81
  visibility: {
67
- hover: string;
68
- always: string;
82
+ hover: null;
83
+ always: null;
69
84
  none: string;
70
85
  };
71
86
  }> & import("../../utils/cva/types.js").CVAClassProp) | undefined) => string;
@@ -126,6 +141,15 @@ export declare const setAIMessageTheme: (theme: InferComponentTheme<{
126
141
  bubble: null;
127
142
  minimal: null;
128
143
  };
144
+ color: {
145
+ primary: null;
146
+ secondary: null;
147
+ neutral: null;
148
+ danger: null;
149
+ success: null;
150
+ warning: null;
151
+ info: null;
152
+ };
129
153
  }> & import("../../utils/cva/types.js").CVAClassProp) | undefined) => string;
130
154
  markdown: (props?: (import("../../utils/cva/types.js").CVAVariantSchema<{
131
155
  size: {
@@ -133,12 +157,18 @@ export declare const setAIMessageTheme: (theme: InferComponentTheme<{
133
157
  normal: string;
134
158
  large: string;
135
159
  };
160
+ density: {
161
+ compact: string;
162
+ normal: string;
163
+ comfortable: string;
164
+ };
136
165
  }> & import("../../utils/cva/types.js").CVAClassProp) | undefined) => string;
137
166
  files: (props?: import("../../utils/cva/types.js").CVAClassProp | undefined) => string;
167
+ caret: (props?: import("../../utils/cva/types.js").CVAClassProp | undefined) => string;
138
168
  actions: (props?: (import("../../utils/cva/types.js").CVAVariantSchema<{
139
169
  visibility: {
140
- hover: string;
141
- always: string;
170
+ hover: null;
171
+ always: null;
142
172
  none: string;
143
173
  };
144
174
  }> & import("../../utils/cva/types.js").CVAClassProp) | undefined) => string;
@@ -197,6 +227,15 @@ export declare const useAIMessageTheme: import("../../utils/cva/theme.js").UseCo
197
227
  bubble: null;
198
228
  minimal: null;
199
229
  };
230
+ color: {
231
+ primary: null;
232
+ secondary: null;
233
+ neutral: null;
234
+ danger: null;
235
+ success: null;
236
+ warning: null;
237
+ info: null;
238
+ };
200
239
  }> & import("../../utils/cva/types.js").CVAClassProp) | undefined) => string;
201
240
  markdown: (props?: (import("../../utils/cva/types.js").CVAVariantSchema<{
202
241
  size: {
@@ -204,12 +243,18 @@ export declare const useAIMessageTheme: import("../../utils/cva/theme.js").UseCo
204
243
  normal: string;
205
244
  large: string;
206
245
  };
246
+ density: {
247
+ compact: string;
248
+ normal: string;
249
+ comfortable: string;
250
+ };
207
251
  }> & import("../../utils/cva/types.js").CVAClassProp) | undefined) => string;
208
252
  files: (props?: import("../../utils/cva/types.js").CVAClassProp | undefined) => string;
253
+ caret: (props?: import("../../utils/cva/types.js").CVAClassProp | undefined) => string;
209
254
  actions: (props?: (import("../../utils/cva/types.js").CVAVariantSchema<{
210
255
  visibility: {
211
- hover: string;
212
- always: string;
256
+ hover: null;
257
+ always: null;
213
258
  none: string;
214
259
  };
215
260
  }> & import("../../utils/cva/types.js").CVAClassProp) | undefined) => string;
@@ -1,6 +1,8 @@
1
1
  import { cva, setComponentTheme, useComponentTheme } from '../../utils/cva/index.js';
2
+ // The root is an inline-size container: a message lays out from the width it is given (a narrow
3
+ // thread on a phone, a wide one beside a table of contents), not from the viewport.
2
4
  const defaultRoot = cva({
3
- base: 'group/message flex w-full min-w-0 gap-lg',
5
+ base: 'group/message @container/message flex w-full min-w-0 gap-lg',
4
6
  variants: {
5
7
  role: {
6
8
  user: 'justify-end',
@@ -9,26 +11,28 @@ const defaultRoot = cva({
9
11
  tool: 'justify-start'
10
12
  },
11
13
  size: {
12
- small: 'py-sm',
13
- normal: 'py-md',
14
+ small: 'py-xs',
15
+ normal: 'py-sm',
14
16
  large: 'py-md'
15
17
  }
16
18
  },
17
19
  defaultVariants: { role: 'assistant', size: 'normal' }
18
20
  });
21
+ // Bubbles keep a reading cap of 38rem / 82% of the message, but only once the message is at
22
+ // least 24rem wide: a narrow column gives a bubble its full width instead of squeezing it.
19
23
  const defaultBody = cva({
20
- base: 'relative flex min-w-0 max-w-[min(38rem,82%)] flex-col',
24
+ base: 'relative flex max-w-full min-w-0 flex-col @sm/message:max-w-[min(38rem,82%)]',
21
25
  variants: {
22
26
  role: {
23
27
  user: 'items-end',
24
28
  assistant: 'items-start',
25
- system: 'max-w-full items-center',
26
- tool: 'w-full max-w-full items-start'
29
+ system: 'max-w-full items-center @sm/message:max-w-full',
30
+ tool: 'w-full max-w-full items-start @sm/message:max-w-full'
27
31
  },
28
32
  size: {
29
33
  small: 'gap-micro',
30
- normal: 'gap-xs',
31
- large: 'gap-sm'
34
+ normal: 'gap-micro',
35
+ large: 'gap-xs'
32
36
  },
33
37
  variant: {
34
38
  bubble: null,
@@ -39,10 +43,10 @@ const defaultBody = cva({
39
43
  {
40
44
  role: 'assistant',
41
45
  variant: 'minimal',
42
- class: 'max-w-[min(44rem,100%)]'
46
+ class: 'w-full @sm/message:max-w-full'
43
47
  }
44
48
  ],
45
- defaultVariants: { role: 'assistant', size: 'normal', variant: 'bubble' }
49
+ defaultVariants: { role: 'assistant', size: 'normal', variant: 'minimal' }
46
50
  });
47
51
  const defaultHeader = cva({
48
52
  base: 'px-xs font-medium text-neutral/70',
@@ -50,70 +54,124 @@ const defaultHeader = cva({
50
54
  size: {
51
55
  small: 'text-xs',
52
56
  normal: 'text-xs',
53
- large: 'text-sm'
57
+ large: 'text-xs'
54
58
  }
55
59
  },
56
60
  defaultVariants: { size: 'normal' }
57
61
  });
62
+ // Chat prose is a reading surface: `normal` sets 14px with a 1.625 line height (`large` 16px,
63
+ // `small` 12px). Bubble tails sit on logical corners so they follow the writing direction.
58
64
  const defaultBubble = cva({
59
65
  base: 'min-w-0 max-w-full break-words [&_*:first-child]:mt-0 [&_*:last-child]:mb-0',
60
66
  variants: {
61
67
  role: {
62
- user: 'rounded-lg rounded-br-sm',
63
- assistant: 'rounded-lg rounded-bl-sm bg-neutral-muted text-neutral',
68
+ user: 'rounded-lg rounded-ee-sm',
69
+ assistant: 'rounded-lg rounded-es-sm bg-neutral-muted text-neutral',
64
70
  system: 'rounded-sm border border-neutral-muted bg-surface text-neutral/70 [&_*]:!text-neutral/70',
65
- tool: 'w-full max-w-none rounded-lg rounded-bl-sm bg-neutral-muted text-neutral'
71
+ tool: 'w-full max-w-none rounded-lg rounded-es-sm bg-neutral-muted text-neutral'
66
72
  },
67
73
  size: {
68
- small: 'px-lg py-md text-xs leading-normal',
69
- normal: 'px-xl py-md text-sm leading-relaxed',
70
- large: 'px-layout-sm py-lg text-base leading-relaxed'
74
+ small: 'px-md py-xs text-xs leading-relaxed',
75
+ normal: 'px-lg py-sm text-sm leading-relaxed',
76
+ large: 'px-xl py-md text-base leading-relaxed'
71
77
  },
72
78
  variant: {
73
79
  bubble: null,
74
80
  minimal: null
81
+ },
82
+ // The user bubble's colour. Neutral is a quiet grey bubble; every other role is solid.
83
+ color: {
84
+ primary: null,
85
+ secondary: null,
86
+ neutral: null,
87
+ danger: null,
88
+ success: null,
89
+ warning: null,
90
+ info: null
75
91
  }
76
92
  },
77
93
  compoundVariants: [
78
94
  {
79
95
  role: 'user',
80
- variant: 'bubble',
96
+ color: 'neutral',
97
+ class: 'bg-neutral-muted text-neutral [&_*]:!text-neutral [&_code]:!bg-neutral/10'
98
+ },
99
+ {
100
+ role: 'user',
101
+ color: 'primary',
81
102
  class: 'bg-primary text-primary-contrast [&_*]:!text-primary-contrast [&_code]:!bg-primary-contrast/15'
82
103
  },
83
104
  {
84
105
  role: 'user',
85
- variant: 'minimal',
86
- class: 'bg-neutral-muted text-neutral [&_*]:!text-neutral [&_code]:!bg-neutral/10'
106
+ color: 'secondary',
107
+ class: 'bg-secondary text-secondary-contrast [&_*]:!text-secondary-contrast [&_code]:!bg-secondary-contrast/15'
108
+ },
109
+ {
110
+ role: 'user',
111
+ color: 'danger',
112
+ class: 'bg-danger text-danger-contrast [&_*]:!text-danger-contrast [&_code]:!bg-danger-contrast/15'
113
+ },
114
+ {
115
+ role: 'user',
116
+ color: 'success',
117
+ class: 'bg-success text-success-contrast [&_*]:!text-success-contrast [&_code]:!bg-success-contrast/15'
118
+ },
119
+ {
120
+ role: 'user',
121
+ color: 'warning',
122
+ class: 'bg-warning text-warning-contrast [&_*]:!text-warning-contrast [&_code]:!bg-warning-contrast/15'
87
123
  },
88
- { role: 'system', size: 'small', class: 'px-md py-xs !text-xs' },
89
- { role: 'system', size: 'normal', class: 'px-lg py-sm !text-xs' },
90
- { role: 'system', size: 'large', class: 'px-xl py-md !text-sm' },
124
+ {
125
+ role: 'user',
126
+ color: 'info',
127
+ class: 'bg-info text-info-contrast [&_*]:!text-info-contrast [&_code]:!bg-info-contrast/15'
128
+ },
129
+ { role: 'system', size: 'small', class: 'px-sm py-micro !text-xs' },
130
+ { role: 'system', size: 'normal', class: 'px-md py-xs !text-xs' },
131
+ { role: 'system', size: 'large', class: 'px-lg py-sm !text-xs' },
91
132
  {
92
133
  role: ['assistant', 'tool'],
93
134
  variant: 'minimal',
94
135
  class: 'rounded-none bg-transparent p-0'
95
136
  }
96
137
  ],
97
- defaultVariants: { role: 'assistant', size: 'normal', variant: 'bubble' }
138
+ defaultVariants: { role: 'assistant', size: 'normal', variant: 'minimal', color: 'neutral' }
98
139
  });
140
+ // Markdown inherits the bubble's type size and leading, and headings stay close to the body
141
+ // (h2 about 1.25x) instead of the Markdown component's document scale.
142
+ // Rich content reads on one scale: tables, lists, quotes and alerts at the message size; code
143
+ // blocks at 0.9em of it, like inline code, so code grows with every size step. Density owns
144
+ // table-cell and code padding and the space between blocks.
99
145
  const defaultMarkdown = cva({
100
- base: 'min-w-0',
146
+ base: 'min-w-0 !text-[length:inherit] !leading-[inherit] [&_:is(td,th,blockquote,li)]:!text-[length:inherit] [&_[data-slot=code]]:!text-[0.9em] [&_[data-slot=code]_*]:!text-[length:inherit]',
101
147
  variants: {
102
148
  size: {
103
- small: '!text-xs !leading-normal',
104
- normal: '!text-sm',
105
- large: '!text-base'
149
+ small: '[&_h1]:!text-base [&_h2]:!text-sm [&_:is(h3,h4,h5,h6)]:!text-xs',
150
+ normal: '[&_h1]:!text-lg [&_h2]:!text-base [&_:is(h3,h4,h5,h6)]:!text-sm',
151
+ large: '[&_h1]:!text-xl [&_h2]:!text-lg [&_:is(h3,h4,h5,h6)]:!text-base'
152
+ },
153
+ density: {
154
+ compact: '[&_:is(td,th)]:!px-md [&_:is(td,th)]:!py-xs [&_[data-slot=code]_pre]:!px-md [&_[data-slot=code]_pre]:!py-sm [&_:is(p,ul,ol,blockquote)]:!my-sm',
155
+ normal: '[&_:is(td,th)]:!px-lg [&_:is(td,th)]:!py-md [&_[data-slot=code]_pre]:!px-lg [&_[data-slot=code]_pre]:!py-md',
156
+ comfortable: '[&_:is(td,th)]:!px-xl [&_:is(td,th)]:!py-lg [&_[data-slot=code]_pre]:!px-xl [&_[data-slot=code]_pre]:!py-lg [&_:is(p,ul,ol,blockquote)]:!my-lg'
106
157
  }
107
158
  },
108
- defaultVariants: { size: 'normal' }
159
+ defaultVariants: { size: 'normal', density: 'normal' }
109
160
  });
110
161
  const defaultFiles = cva({ base: 'max-w-full min-w-0' });
162
+ // The streaming caret: a small pulsing dot after the content, like Claude.ai and ChatGPT.
163
+ const defaultCaret = cva({
164
+ base: 'mt-xs inline-block size-2.5 shrink-0 rounded-full bg-current opacity-70 motion-safe:animate-pulse'
165
+ });
166
+ // Actions sit in the flow under the content and keep their row's height when hover-hidden, so
167
+ // the next row never draws under them. The row sizes to its buttons (AIMessageActions), never to
168
+ // the bubble, so it does not wrap under a one-word message.
111
169
  const defaultActions = cva({
112
- base: 'absolute left-0 top-full z-10 w-full transition-opacity motion-reduce:transition-none',
170
+ base: '',
113
171
  variants: {
114
172
  visibility: {
115
- hover: 'pointer-events-none opacity-0 group-hover/message:pointer-events-auto group-hover/message:opacity-100 group-focus-within/message:pointer-events-auto group-focus-within/message:opacity-100',
116
- always: 'opacity-100',
173
+ hover: null,
174
+ always: null,
117
175
  none: 'hidden'
118
176
  }
119
177
  },
@@ -126,6 +184,7 @@ export const aiMessageTheme = {
126
184
  bubble: defaultBubble,
127
185
  markdown: defaultMarkdown,
128
186
  files: defaultFiles,
187
+ caret: defaultCaret,
129
188
  actions: defaultActions
130
189
  };
131
190
  export const setAIMessageTheme = setComponentTheme('ai-message');