entasis 0.10.2 → 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 (841) 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 +258 -32
  326. package/dist/components/Form/Field/Field.svelte.d.ts +15 -6
  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 +75 -10
  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 +117 -40
  337. package/dist/components/Form/Field/field.state.svelte.js +525 -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 +49 -15
  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 +96 -12
  354. package/dist/components/Form/Form/FormFieldRenderer.svelte.d.ts +3 -2
  355. package/dist/components/Form/Form/FormInputRenderer.svelte +7 -0
  356. package/dist/components/Form/Form/form.d.ts +84 -11
  357. package/dist/components/Form/Form/form.mcp.d.ts +1 -1
  358. package/dist/components/Form/Form/form.mcp.js +178 -12
  359. package/dist/components/Form/Form/form.props.d.ts +32 -1
  360. package/dist/components/Form/Form/form.registry.d.ts +28 -0
  361. package/dist/components/Form/Form/form.registry.js +59 -0
  362. package/dist/components/Form/Form/form.state.svelte.d.ts +1186 -420
  363. package/dist/components/Form/Form/form.state.svelte.js +322 -28
  364. package/dist/components/Form/Form/index.d.ts +4 -1
  365. package/dist/components/Form/Form/index.js +1 -0
  366. package/dist/components/Form/Form/visibility.d.ts +3130 -1863
  367. package/dist/components/Form/KeyValueInput/KeyValueInput.svelte +22 -10
  368. package/dist/components/Form/KeyValueInput/keyValueInput.mcp.d.ts +1 -1
  369. package/dist/components/Form/KeyValueInput/keyValueInput.mcp.js +1 -0
  370. package/dist/components/Form/MultiStepForm/MultiStepForm.svelte +12 -5
  371. package/dist/components/Form/MultiStepForm/multiStepForm.mcp.d.ts +1 -1
  372. package/dist/components/Form/MultiStepForm/multiStepForm.mcp.js +5 -3
  373. package/dist/components/Form/MultiStepForm/multiStepForm.props.d.ts +5 -0
  374. package/dist/components/Form/MultiStepForm/multiStepForm.state.svelte.d.ts +1050 -408
  375. package/dist/components/Form/MultiStepForm/multiStepForm.state.svelte.js +48 -24
  376. package/dist/components/Form/NumberInput/NumberInput.svelte +365 -46
  377. package/dist/components/Form/NumberInput/index.d.ts +1 -1
  378. package/dist/components/Form/NumberInput/numberInput.mcp.d.ts +1 -1
  379. package/dist/components/Form/NumberInput/numberInput.mcp.js +55 -30
  380. package/dist/components/Form/NumberInput/numberInput.props.d.ts +64 -4
  381. package/dist/components/Form/PasswordInput/Password.svelte +28 -1
  382. package/dist/components/Form/PasswordInput/index.d.ts +1 -1
  383. package/dist/components/Form/PasswordInput/passwordInput.mcp.d.ts +1 -1
  384. package/dist/components/Form/PasswordInput/passwordInput.mcp.js +20 -2
  385. package/dist/components/Form/PasswordInput/passwordInput.props.d.ts +23 -0
  386. package/dist/components/Form/PhoneInput/PhoneInput.svelte +11 -4
  387. package/dist/components/Form/PhoneInput/PhoneInputCountryPicker.svelte +47 -21
  388. package/dist/components/Form/PhoneInput/phoneInput-cdn.js +2 -1
  389. package/dist/components/Form/PhoneInput/phoneInput.mcp.d.ts +1 -1
  390. package/dist/components/Form/PhoneInput/phoneInput.mcp.js +6 -2
  391. package/dist/components/Form/PhoneInput/phoneInputCountry.d.ts +9 -3
  392. package/dist/components/Form/PhoneInput/phoneInputCountry.js +34 -24
  393. package/dist/components/Form/PinInput/PinInput.svelte +44 -9
  394. package/dist/components/Form/PinInput/PinInputCells.svelte +22 -1
  395. package/dist/components/Form/PinInput/PinInputCells.svelte.d.ts +1 -0
  396. package/dist/components/Form/PinInput/index.d.ts +1 -1
  397. package/dist/components/Form/PinInput/pinInput.mcp.d.ts +1 -1
  398. package/dist/components/Form/PinInput/pinInput.mcp.js +29 -6
  399. package/dist/components/Form/PinInput/pinInput.props.d.ts +38 -4
  400. package/dist/components/Form/PinInput/pinInput.state.svelte.d.ts +41 -0
  401. package/dist/components/Form/PinInput/pinInput.state.svelte.js +227 -24
  402. package/dist/components/Form/PinInput/pinInput.theme.d.ts +39 -3
  403. package/dist/components/Form/PinInput/pinInput.theme.js +27 -1
  404. package/dist/components/Form/RadioInput/RadioInput.svelte +94 -32
  405. package/dist/components/Form/RadioInput/RadioInput.svelte.d.ts +12 -12
  406. package/dist/components/Form/RadioInput/radioInput.mcp.d.ts +1 -1
  407. package/dist/components/Form/RadioInput/radioInput.mcp.js +12 -9
  408. package/dist/components/Form/RadioInput/radioInput.props.d.ts +22 -6
  409. package/dist/components/Form/RadioInput/radioInput.theme.d.ts +12 -0
  410. package/dist/components/Form/RadioInput/radioInput.theme.js +10 -5
  411. package/dist/components/Form/RatingInput/RatingInput.svelte +13 -4
  412. package/dist/components/Form/RatingInput/ratingInput.mcp.d.ts +1 -1
  413. package/dist/components/Form/RatingInput/ratingInput.mcp.js +3 -3
  414. package/dist/components/Form/RatingInput/ratingInput.props.d.ts +1 -1
  415. package/dist/components/Form/Select/Select.svelte +186 -48
  416. package/dist/components/Form/Select/Select.svelte.d.ts +23 -2
  417. package/dist/components/Form/Select/SelectOptionRow.svelte +69 -0
  418. package/dist/components/Form/Select/SelectOptionRow.svelte.d.ts +18 -0
  419. package/dist/components/Form/Select/index.d.ts +2 -1
  420. package/dist/components/Form/Select/index.js +1 -0
  421. package/dist/components/Form/Select/select.align.d.ts +5 -0
  422. package/dist/components/Form/Select/select.align.js +19 -5
  423. package/dist/components/Form/Select/select.attributes.d.ts +36 -0
  424. package/dist/components/Form/Select/select.attributes.js +27 -0
  425. package/dist/components/Form/Select/select.mcp.d.ts +1 -1
  426. package/dist/components/Form/Select/select.mcp.js +103 -18
  427. package/dist/components/Form/Select/select.props.d.ts +87 -10
  428. package/dist/components/Form/Select/select.state.svelte.d.ts +108 -17
  429. package/dist/components/Form/Select/select.state.svelte.js +354 -59
  430. package/dist/components/Form/Select/select.theme.d.ts +21 -0
  431. package/dist/components/Form/Select/select.theme.js +22 -0
  432. package/dist/components/Form/Slider/Slider.svelte +54 -14
  433. package/dist/components/Form/Slider/SliderMarks.svelte +1 -1
  434. package/dist/components/Form/Slider/SliderThumb.svelte +49 -19
  435. package/dist/components/Form/Slider/SliderThumb.svelte.d.ts +8 -2
  436. package/dist/components/Form/Slider/SliderTrack.svelte +33 -12
  437. package/dist/components/Form/Slider/SliderTrack.svelte.d.ts +6 -2
  438. package/dist/components/Form/Slider/index.d.ts +1 -1
  439. package/dist/components/Form/Slider/slider.mcp.d.ts +1 -1
  440. package/dist/components/Form/Slider/slider.mcp.js +55 -11
  441. package/dist/components/Form/Slider/slider.props.d.ts +35 -2
  442. package/dist/components/Form/Slider/slider.state.svelte.d.ts +66 -5
  443. package/dist/components/Form/Slider/slider.state.svelte.js +273 -49
  444. package/dist/components/Form/Slider/slider.theme.d.ts +36 -0
  445. package/dist/components/Form/Slider/slider.theme.js +35 -17
  446. package/dist/components/Form/Switch/Switch.svelte +61 -38
  447. package/dist/components/Form/Switch/switch.mcp.d.ts +1 -1
  448. package/dist/components/Form/Switch/switch.mcp.js +25 -5
  449. package/dist/components/Form/Switch/switch.props.d.ts +14 -1
  450. package/dist/components/Form/Switch/switch.theme.d.ts +12 -0
  451. package/dist/components/Form/Switch/switch.theme.js +8 -3
  452. package/dist/components/Form/TagGroup/TagGroup.svelte +8 -0
  453. package/dist/components/Form/TagGroup/tagGroup.mcp.d.ts +1 -1
  454. package/dist/components/Form/TagGroup/tagGroup.mcp.js +1 -0
  455. package/dist/components/Form/TagsInput/TagsInput.svelte +277 -275
  456. package/dist/components/Form/TagsInput/TagsInput.svelte.d.ts +1 -1
  457. package/dist/components/Form/TagsInput/tagsInput.mcp.d.ts +1 -1
  458. package/dist/components/Form/TagsInput/tagsInput.mcp.js +31 -11
  459. package/dist/components/Form/TagsInput/tagsInput.props.d.ts +6 -26
  460. package/dist/components/Form/TagsInput/tagsInput.theme.d.ts +63 -0
  461. package/dist/components/Form/TagsInput/tagsInput.theme.js +37 -1
  462. package/dist/components/Form/TextArea/TextArea.svelte +8 -0
  463. package/dist/components/Form/TextArea/textArea.mcp.d.ts +1 -1
  464. package/dist/components/Form/TextArea/textArea.mcp.js +1 -0
  465. package/dist/components/Form/TextInput/TextInput.svelte +8 -1
  466. package/dist/components/Form/TextInput/textInput.mcp.d.ts +1 -1
  467. package/dist/components/Form/TextInput/textInput.mcp.js +5 -0
  468. package/dist/components/Form/TimeInput/TimeInput.svelte +9 -1
  469. package/dist/components/Form/TimeInput/timeInput.mcp.d.ts +1 -1
  470. package/dist/components/Form/TimeInput/timeInput.mcp.js +31 -0
  471. package/dist/components/Form/VoiceInput/VoiceInput.svelte +10 -2
  472. package/dist/components/Form/VoiceInput/voiceInput.mcp.d.ts +1 -1
  473. package/dist/components/Form/VoiceInput/voiceInput.mcp.js +1 -0
  474. package/dist/components/GanttChart/GanttDependencyControl.svelte +4 -4
  475. package/dist/components/HoverCard/HoverCard.svelte +100 -10
  476. package/dist/components/HoverCard/hoverCard.attributes.d.ts +33 -0
  477. package/dist/components/HoverCard/hoverCard.attributes.js +24 -0
  478. package/dist/components/HoverCard/hoverCard.mcp.d.ts +1 -1
  479. package/dist/components/HoverCard/hoverCard.mcp.js +61 -2
  480. package/dist/components/HoverCard/hoverCard.props.d.ts +19 -0
  481. package/dist/components/HoverCard/hoverCard.theme.d.ts +12 -0
  482. package/dist/components/HoverCard/hoverCard.theme.js +9 -2
  483. package/dist/components/HoverCard/index.d.ts +1 -0
  484. package/dist/components/HoverCard/index.js +1 -0
  485. package/dist/components/ImageGallery/imageGallery.state.svelte.d.ts +1 -1
  486. package/dist/components/ImageZoom/imageZoom.lightbox.js +40 -6
  487. package/dist/components/ImageZoom/imageZoom.mcp.d.ts +1 -1
  488. package/dist/components/ImageZoom/imageZoom.mcp.js +3 -3
  489. package/dist/components/ImageZoom/imageZoom.props.d.ts +10 -4
  490. package/dist/components/ImageZoom/imageZoom.state.svelte.d.ts +16 -4
  491. package/dist/components/ImageZoom/imageZoom.state.svelte.js +38 -9
  492. package/dist/components/Kanban/kanban.theme.js +7 -3
  493. package/dist/components/Layout/layoutSpacing.d.ts +2 -2
  494. package/dist/components/LinkPreview/LinkPreview.svelte +7 -1
  495. package/dist/components/LinkPreview/linkPreview.mcp.d.ts +1 -1
  496. package/dist/components/LinkPreview/linkPreview.mcp.js +4 -1
  497. package/dist/components/LinkPreview/linkPreview.props.d.ts +15 -0
  498. package/dist/components/LinkPreview/linkPreview.theme.d.ts +12 -0
  499. package/dist/components/LinkPreview/linkPreview.theme.js +9 -2
  500. package/dist/components/Map/maplibre-cdn.js +3 -2
  501. package/dist/components/Markdown/markdown.mcp.d.ts +1 -1
  502. package/dist/components/Markdown/markdown.mcp.js +2 -1
  503. package/dist/components/Markdown/markdown.theme.js +18 -9
  504. package/dist/components/MediaVolume/MediaVolumeControl.svelte +4 -3
  505. package/dist/components/Menu/Menu.svelte +3 -3
  506. package/dist/components/Menu/Menu.svelte.d.ts +1 -1
  507. package/dist/components/Menu/MenuCheckboxItem.svelte +87 -0
  508. package/dist/components/Menu/MenuCheckboxItem.svelte.d.ts +16 -0
  509. package/dist/components/Menu/MenuFloating.svelte +421 -74
  510. package/dist/components/Menu/MenuFloating.svelte.d.ts +1 -1
  511. package/dist/components/Menu/MenuMirroredIcon.svelte +9 -0
  512. package/dist/components/Menu/MenuMirroredIcon.svelte.d.ts +7 -0
  513. package/dist/components/Menu/MenuRadioGroup.svelte +102 -0
  514. package/dist/components/Menu/MenuRadioGroup.svelte.d.ts +18 -0
  515. package/dist/components/Menu/MenuSearchField.svelte +54 -0
  516. package/dist/components/Menu/MenuSearchField.svelte.d.ts +20 -0
  517. package/dist/components/Menu/MenuStacked.svelte +404 -158
  518. package/dist/components/Menu/MenuStacked.svelte.d.ts +1 -1
  519. package/dist/components/Menu/MenuStackedBackHeader.svelte +6 -1
  520. package/dist/components/Menu/index.d.ts +2 -1
  521. package/dist/components/Menu/index.js +1 -0
  522. package/dist/components/Menu/menu.attributes.d.ts +37 -0
  523. package/dist/components/Menu/menu.attributes.js +28 -0
  524. package/dist/components/Menu/menu.filter.svelte.d.ts +52 -0
  525. package/dist/components/Menu/menu.filter.svelte.js +143 -0
  526. package/dist/components/Menu/menu.mcp.d.ts +1 -1
  527. package/dist/components/Menu/menu.mcp.js +227 -17
  528. package/dist/components/Menu/menu.platform.d.ts +5 -0
  529. package/dist/components/Menu/menu.platform.js +11 -0
  530. package/dist/components/Menu/menu.props.d.ts +172 -9
  531. package/dist/components/Menu/menu.theme.d.ts +147 -0
  532. package/dist/components/Menu/menu.theme.js +101 -0
  533. package/dist/components/Menu/menuTree.d.ts +35 -1
  534. package/dist/components/Menu/menuTree.js +158 -1
  535. package/dist/components/MenuBar/menuBar.mcp.d.ts +1 -1
  536. package/dist/components/MenuBar/menuBar.mcp.js +4 -2
  537. package/dist/components/MenuBar/menuBar.state.svelte.js +28 -10
  538. package/dist/components/MenuOption/MenuOption.svelte +5 -1
  539. package/dist/components/MenuOption/menuOption.mcp.d.ts +1 -1
  540. package/dist/components/MenuOption/menuOption.mcp.js +8 -0
  541. package/dist/components/MenuOption/menuOption.props.d.ts +12 -0
  542. package/dist/components/MenuOption/menuOption.theme.d.ts +18 -0
  543. package/dist/components/MenuOption/menuOption.theme.js +24 -4
  544. package/dist/components/Mermaid/mermaid.mcp.d.ts +1 -1
  545. package/dist/components/Mermaid/mermaid.mcp.js +8 -8
  546. package/dist/components/Mermaid/mermaid.props.d.ts +3 -4
  547. package/dist/components/Mermaid/mermaid.state.svelte.d.ts +20 -19
  548. package/dist/components/Mermaid/mermaid.state.svelte.js +80 -243
  549. package/dist/components/Mermaid/mermaid.theme.js +26 -1
  550. package/dist/components/MetadataList/MetadataList.svelte.d.ts +1 -1
  551. package/dist/components/Meter/Meter.svelte +110 -24
  552. package/dist/components/Meter/Meter.svelte.d.ts +12 -12
  553. package/dist/components/Meter/meter.mcp.d.ts +1 -1
  554. package/dist/components/Meter/meter.mcp.js +23 -37
  555. package/dist/components/Meter/meter.props.d.ts +36 -44
  556. package/dist/components/NavigationMenu/NavigationMenu.svelte +181 -0
  557. package/dist/components/NavigationMenu/NavigationMenu.svelte.d.ts +25 -0
  558. package/dist/components/NavigationMenu/NavigationMenuContent.svelte +141 -0
  559. package/dist/components/NavigationMenu/NavigationMenuContent.svelte.d.ts +13 -0
  560. package/dist/components/NavigationMenu/NavigationMenuTrigger.svelte +75 -0
  561. package/dist/components/NavigationMenu/NavigationMenuTrigger.svelte.d.ts +13 -0
  562. package/dist/components/NavigationMenu/index.d.ts +4 -0
  563. package/dist/components/NavigationMenu/index.js +3 -0
  564. package/dist/components/NavigationMenu/navigationMenu.attributes.d.ts +24 -0
  565. package/dist/components/NavigationMenu/navigationMenu.attributes.js +21 -0
  566. package/dist/components/NavigationMenu/navigationMenu.mcp.d.ts +1 -0
  567. package/dist/components/NavigationMenu/navigationMenu.mcp.js +138 -0
  568. package/dist/components/NavigationMenu/navigationMenu.props.d.ts +129 -0
  569. package/dist/components/NavigationMenu/navigationMenu.props.js +1 -0
  570. package/dist/components/NavigationMenu/navigationMenu.state.svelte.d.ts +163 -0
  571. package/dist/components/NavigationMenu/navigationMenu.state.svelte.js +721 -0
  572. package/dist/components/NavigationMenu/navigationMenu.theme.d.ts +326 -0
  573. package/dist/components/NavigationMenu/navigationMenu.theme.js +239 -0
  574. package/dist/components/Overlay/Overlay.svelte +19 -30
  575. package/dist/components/Overlay/index.d.ts +1 -0
  576. package/dist/components/Overlay/index.js +1 -0
  577. package/dist/components/Overlay/overlay.attributes.d.ts +16 -0
  578. package/dist/components/Overlay/overlay.attributes.js +14 -0
  579. package/dist/components/Overlay/overlay.mcp.d.ts +1 -1
  580. package/dist/components/Overlay/overlay.mcp.js +21 -3
  581. package/dist/components/Overlay/overlay.props.d.ts +8 -4
  582. package/dist/components/Popover/Popover.svelte +163 -52
  583. package/dist/components/Popover/Popover.svelte.d.ts +23 -2
  584. package/dist/components/Popover/PopoverSession.svelte +12 -0
  585. package/dist/components/Popover/PopoverSession.svelte.d.ts +7 -0
  586. package/dist/components/Popover/index.d.ts +10 -2
  587. package/dist/components/Popover/index.js +4 -1
  588. package/dist/components/Popover/popover.api.d.ts +83 -0
  589. package/dist/components/Popover/popover.api.js +1 -0
  590. package/dist/components/Popover/popover.attributes.d.ts +32 -0
  591. package/dist/components/Popover/popover.attributes.js +28 -0
  592. package/dist/components/Popover/popover.claims.d.ts +19 -0
  593. package/dist/components/Popover/popover.claims.js +45 -0
  594. package/dist/components/Popover/popover.mcp.d.ts +1 -1
  595. package/dist/components/Popover/popover.mcp.js +163 -31
  596. package/dist/components/Popover/popover.position.d.ts +226 -0
  597. package/dist/components/Popover/popover.position.js +402 -0
  598. package/dist/components/Popover/popover.props.d.ts +179 -24
  599. package/dist/components/Popover/popover.state.svelte.d.ts +169 -37
  600. package/dist/components/Popover/popover.state.svelte.js +1034 -194
  601. package/dist/components/Popover/popover.theme.d.ts +15 -0
  602. package/dist/components/Popover/popover.theme.js +27 -2
  603. package/dist/components/PopupMenu/PopupMenu.svelte +193 -22
  604. package/dist/components/PopupMenu/PopupMenu.svelte.d.ts +2 -2
  605. package/dist/components/PopupMenu/popupMenu.context.d.ts +42 -0
  606. package/dist/components/PopupMenu/popupMenu.context.js +52 -0
  607. package/dist/components/PopupMenu/popupMenu.mcp.d.ts +1 -1
  608. package/dist/components/PopupMenu/popupMenu.mcp.js +46 -6
  609. package/dist/components/PopupMenu/popupMenu.props.d.ts +29 -2
  610. package/dist/components/Progress/Progress.svelte +160 -0
  611. package/dist/components/Progress/Progress.svelte.d.ts +4 -0
  612. package/dist/components/Progress/index.d.ts +3 -0
  613. package/dist/components/Progress/index.js +2 -0
  614. package/dist/components/Progress/progress.mcp.d.ts +1 -0
  615. package/dist/components/Progress/progress.mcp.js +101 -0
  616. package/dist/components/Progress/progress.props.d.ts +79 -0
  617. package/dist/components/Progress/progress.props.js +1 -0
  618. package/dist/components/Progress/progress.theme.d.ts +129 -0
  619. package/dist/components/Progress/progress.theme.js +83 -0
  620. package/dist/components/ProgressCircle/ProgressCircle.svelte +51 -6
  621. package/dist/components/ProgressCircle/progressCircle.mcp.d.ts +1 -1
  622. package/dist/components/ProgressCircle/progressCircle.mcp.js +18 -4
  623. package/dist/components/ProgressCircle/progressCircle.props.d.ts +32 -2
  624. package/dist/components/ProgressCircle/progressCircle.theme.d.ts +15 -3
  625. package/dist/components/ProgressCircle/progressCircle.theme.js +7 -2
  626. package/dist/components/RichTextInput/RichTextInput.svelte +19 -1
  627. package/dist/components/RichTextInput/RichTextInputChrome.svelte +5 -1
  628. package/dist/components/RichTextInput/RichTextInputChrome.svelte.d.ts +2 -0
  629. package/dist/components/RichTextInput/RichTextInputViewport.svelte +3 -1
  630. package/dist/components/RichTextInput/RichTextInputViewport.svelte.d.ts +1 -0
  631. package/dist/components/RichTextInput/richTextInput.mcp.d.ts +1 -1
  632. package/dist/components/RichTextInput/richTextInput.mcp.js +1 -0
  633. package/dist/components/RichTextInput/suggestions.js +2 -0
  634. package/dist/components/ScrollArea/ScrollArea.svelte +166 -27
  635. package/dist/components/ScrollArea/index.d.ts +2 -1
  636. package/dist/components/ScrollArea/index.js +1 -0
  637. package/dist/components/ScrollArea/scrollArea.attributes.d.ts +25 -0
  638. package/dist/components/ScrollArea/scrollArea.attributes.js +21 -0
  639. package/dist/components/ScrollArea/scrollArea.mcp.d.ts +1 -1
  640. package/dist/components/ScrollArea/scrollArea.mcp.js +47 -3
  641. package/dist/components/ScrollArea/scrollArea.props.d.ts +33 -6
  642. package/dist/components/ScrollArea/scrollArea.svelte.d.ts +56 -12
  643. package/dist/components/ScrollArea/scrollArea.svelte.js +281 -71
  644. package/dist/components/ScrollArea/scrollArea.theme.js +5 -2
  645. package/dist/components/SegmentedControl/SegmentedControl.svelte +4 -3
  646. package/dist/components/SegmentedControl/segmentedControl.mcp.d.ts +1 -1
  647. package/dist/components/SegmentedControl/segmentedControl.mcp.js +3 -2
  648. package/dist/components/SelectionMenu/SelectionMenu.svelte +4 -2
  649. package/dist/components/Sidebar/SidebarAction.svelte +13 -3
  650. package/dist/components/Sidebar/SidebarAction.svelte.d.ts +2 -1
  651. package/dist/components/Sidebar/SidebarActivityBar.svelte +14 -7
  652. package/dist/components/Sidebar/SidebarFlyout.svelte +97 -0
  653. package/dist/components/Sidebar/SidebarFlyout.svelte.d.ts +32 -0
  654. package/dist/components/Sidebar/SidebarGroup.svelte +39 -15
  655. package/dist/components/Sidebar/SidebarMenuButton.svelte +6 -3
  656. package/dist/components/Sidebar/SidebarMenuItem.svelte +134 -31
  657. package/dist/components/Sidebar/SidebarMenuSubItem.svelte +30 -14
  658. package/dist/components/Sidebar/SidebarTreeNode.svelte +41 -61
  659. package/dist/components/Sidebar/index.d.ts +1 -0
  660. package/dist/components/Sidebar/index.js +1 -0
  661. package/dist/components/Sidebar/sidebar-position.d.ts +37 -2
  662. package/dist/components/Sidebar/sidebar-position.js +31 -2
  663. package/dist/components/Sidebar/sidebar.attributes.d.ts +33 -0
  664. package/dist/components/Sidebar/sidebar.attributes.js +29 -0
  665. package/dist/components/Sidebar/sidebar.mcp.d.ts +1 -1
  666. package/dist/components/Sidebar/sidebar.mcp.js +45 -10
  667. package/dist/components/Sidebar/sidebar.props.d.ts +28 -7
  668. package/dist/components/Sidebar/sidebar.theme.d.ts +51 -21
  669. package/dist/components/Sidebar/sidebar.theme.js +113 -62
  670. package/dist/components/Sidebar/sidebar.views.svelte.js +11 -18
  671. package/dist/components/Stepper/Stepper.svelte +2 -0
  672. package/dist/components/Stepper/stepper.mcp.d.ts +1 -1
  673. package/dist/components/Stepper/stepper.mcp.js +1 -0
  674. package/dist/components/Stepper/stepper.props.d.ts +5 -0
  675. package/dist/components/Stepper/stepper.state.svelte.d.ts +2 -0
  676. package/dist/components/Stepper/stepper.state.svelte.js +31 -12
  677. package/dist/components/Tabbar/Tabbar.svelte +55 -16
  678. package/dist/components/Tabbar/index.d.ts +1 -1
  679. package/dist/components/Tabbar/tabbar.mcp.d.ts +1 -1
  680. package/dist/components/Tabbar/tabbar.mcp.js +26 -9
  681. package/dist/components/Tabbar/tabbar.props.d.ts +34 -5
  682. package/dist/components/Tabbar/tabbar.selection.svelte.d.ts +79 -0
  683. package/dist/components/Tabbar/tabbar.selection.svelte.js +99 -0
  684. package/dist/components/TableOfContents/tableOfContents.state.svelte.js +9 -7
  685. package/dist/components/Tabs/Tabs.svelte +73 -16
  686. package/dist/components/Tabs/index.d.ts +2 -1
  687. package/dist/components/Tabs/tabs.direction.svelte.d.ts +25 -0
  688. package/dist/components/Tabs/tabs.direction.svelte.js +40 -0
  689. package/dist/components/Tabs/tabs.mcp.d.ts +1 -1
  690. package/dist/components/Tabs/tabs.mcp.js +22 -4
  691. package/dist/components/Tabs/tabs.props.d.ts +39 -12
  692. package/dist/components/Tabs/tabs.theme.js +3 -1
  693. package/dist/components/Theme/Theme.svelte +44 -27
  694. package/dist/components/Theme/helper.d.ts +16 -2
  695. package/dist/components/Theme/helper.js +46 -4
  696. package/dist/components/Theme/theme.mcp.d.ts +1 -1
  697. package/dist/components/Theme/theme.mcp.js +103 -0
  698. package/dist/components/Theme/theme.props.d.ts +16 -0
  699. package/dist/components/Theme/theme.state.svelte.d.ts +14 -1
  700. package/dist/components/Theme/theme.state.svelte.js +18 -1
  701. package/dist/components/Toast/Toast.svelte +184 -39
  702. package/dist/components/Toast/Toaster.svelte +14 -10
  703. package/dist/components/Toast/index.d.ts +1 -0
  704. package/dist/components/Toast/toast.mcp.d.ts +1 -1
  705. package/dist/components/Toast/toast.mcp.js +47 -6
  706. package/dist/components/Toast/toast.state.svelte.d.ts +172 -6
  707. package/dist/components/Toast/toast.state.svelte.js +513 -68
  708. package/dist/components/Toast/toast.theme.js +1 -1
  709. package/dist/components/ToggleButton/ToggleButton.svelte +23 -1
  710. package/dist/components/ToggleButton/toggleButton.mcp.d.ts +1 -1
  711. package/dist/components/ToggleButton/toggleButton.mcp.js +3 -1
  712. package/dist/components/ToggleButton/toggleButton.props.d.ts +13 -1
  713. package/dist/components/ToggleButton/toggleButton.theme.d.ts +12 -0
  714. package/dist/components/ToggleButton/toggleButton.theme.js +15 -3
  715. package/dist/components/ToggleButtonGroup/ToggleButtonGroup.svelte +29 -9
  716. package/dist/components/ToggleButtonGroup/index.d.ts +1 -1
  717. package/dist/components/ToggleButtonGroup/toggleButtonGroup.mcp.d.ts +1 -1
  718. package/dist/components/ToggleButtonGroup/toggleButtonGroup.mcp.js +5 -2
  719. package/dist/components/ToggleButtonGroup/toggleButtonGroup.props.d.ts +19 -1
  720. package/dist/components/ToggleButtonGroup/toggleButtonGroup.theme.d.ts +12 -0
  721. package/dist/components/ToggleButtonGroup/toggleButtonGroup.theme.js +21 -2
  722. package/dist/components/ToggleMenu/ToggleMenu.svelte +57 -43
  723. package/dist/components/ToggleMenu/ToggleMenuGroup.svelte +1 -0
  724. package/dist/components/ToggleMenu/ToggleMenuMenu.svelte +9 -3
  725. package/dist/components/ToggleMenu/ToggleMenuRadioGroup.svelte +7 -2
  726. package/dist/components/ToggleMenu/toggleMenu.mcp.d.ts +1 -1
  727. package/dist/components/ToggleMenu/toggleMenu.mcp.js +3 -2
  728. package/dist/components/ToggleMenu/toggleMenu.props.d.ts +4 -1
  729. package/dist/components/Tooltip/Tooltip.svelte +4 -12
  730. package/dist/components/Tooltip/TooltipHost.svelte +136 -15
  731. package/dist/components/Tooltip/index.d.ts +1 -0
  732. package/dist/components/Tooltip/index.js +1 -0
  733. package/dist/components/Tooltip/tooltip.attachment.svelte.d.ts +5 -0
  734. package/dist/components/Tooltip/tooltip.attachment.svelte.js +215 -33
  735. package/dist/components/Tooltip/tooltip.attributes.d.ts +32 -0
  736. package/dist/components/Tooltip/tooltip.attributes.js +28 -0
  737. package/dist/components/Tooltip/tooltip.mcp.d.ts +1 -1
  738. package/dist/components/Tooltip/tooltip.mcp.js +111 -10
  739. package/dist/components/Tooltip/tooltip.props.d.ts +33 -2
  740. package/dist/components/Tooltip/tooltip.surface.d.ts +24 -0
  741. package/dist/components/Tooltip/tooltip.surface.js +42 -0
  742. package/dist/components/Tree/TreeContextMenuSurface.svelte +16 -3
  743. package/dist/components/Utils/BeforeHydratation.svelte +14 -3
  744. package/dist/components/Utils/BeforeHydratation.svelte.d.ts +2 -0
  745. package/dist/components/VideoPlayer/VideoPlayer.svelte.d.ts +1 -1
  746. package/dist/components/VideoPlayer/VideoPlayerSettings.svelte +2 -0
  747. package/dist/generated/componentAliases.d.ts +3 -0
  748. package/dist/generated/componentAliases.js +3 -0
  749. package/dist/generated/componentContract.d.ts +79 -34
  750. package/dist/generated/componentContract.js +231 -6
  751. package/dist/generated/componentMcpRegistry.js +6 -0
  752. package/dist/i18n/ar.js +107 -3
  753. package/dist/i18n/context.svelte.d.ts +6 -0
  754. package/dist/i18n/context.svelte.js +12 -0
  755. package/dist/i18n/de.js +101 -3
  756. package/dist/i18n/en.d.ts +91 -2
  757. package/dist/i18n/en.js +101 -3
  758. package/dist/i18n/es.js +101 -3
  759. package/dist/i18n/fr.js +101 -3
  760. package/dist/i18n/ja.js +101 -3
  761. package/dist/i18n/pt.js +101 -3
  762. package/dist/i18n/zh.js +101 -3
  763. package/dist/tailwind/geometry.js +7 -0
  764. package/dist/tailwind/global.js +31 -0
  765. package/dist/types/index.d.ts +1 -0
  766. package/dist/types/types.mcp.d.ts +1 -1
  767. package/dist/types/types.mcp.js +23 -0
  768. package/dist/utils/cspNonce.d.ts +16 -0
  769. package/dist/utils/cspNonce.js +39 -0
  770. package/dist/utils/cva/merge.d.ts +5 -1
  771. package/dist/utils/cva/merge.js +6 -4
  772. package/dist/utils/focus.d.ts +34 -0
  773. package/dist/utils/focus.js +93 -0
  774. package/dist/utils/focusHistory.d.ts +21 -0
  775. package/dist/utils/focusHistory.js +99 -0
  776. package/dist/utils/handlers.d.ts +7 -0
  777. package/dist/utils/handlers.js +14 -0
  778. package/dist/utils/hoverIntent.d.ts +42 -0
  779. package/dist/utils/hoverIntent.js +57 -0
  780. package/dist/utils/id.d.ts +7 -0
  781. package/dist/utils/id.js +15 -0
  782. package/dist/utils/layers.svelte.d.ts +32 -4
  783. package/dist/utils/layers.svelte.js +214 -21
  784. package/dist/utils/listFilter.d.ts +44 -0
  785. package/dist/utils/listFilter.js +130 -0
  786. package/dist/utils/match.d.ts +35 -0
  787. package/dist/utils/match.js +36 -0
  788. package/dist/utils/number.d.ts +126 -0
  789. package/dist/utils/number.js +401 -0
  790. package/dist/utils/openChange.d.ts +88 -0
  791. package/dist/utils/openChange.js +71 -0
  792. package/dist/utils/openLifecycle.svelte.d.ts +41 -0
  793. package/dist/utils/openLifecycle.svelte.js +134 -0
  794. package/dist/utils/pointerDrag.d.ts +10 -0
  795. package/dist/utils/pointerDrag.js +37 -2
  796. package/dist/utils/pragmaticDragAndDrop.d.ts +2 -1
  797. package/dist/utils/pragmaticDragAndDrop.js +8 -3
  798. package/dist/utils/range.d.ts +62 -0
  799. package/dist/utils/range.js +70 -0
  800. package/dist/utils/requestNativeSubmit.d.ts +17 -0
  801. package/dist/utils/requestNativeSubmit.js +47 -0
  802. package/dist/utils/safeArea.svelte.d.ts +10 -1
  803. package/dist/utils/safeArea.svelte.js +19 -11
  804. package/dist/utils/stateAttributes.d.ts +108 -0
  805. package/dist/utils/stateAttributes.js +78 -0
  806. package/dist/utils/swipeVelocity.d.ts +32 -0
  807. package/dist/utils/swipeVelocity.js +59 -0
  808. package/dist/utils/timer.svelte.d.ts +65 -2
  809. package/dist/utils/timer.svelte.js +159 -25
  810. package/dist/utils/trigger.d.ts +41 -0
  811. package/dist/utils/trigger.js +103 -0
  812. package/dist/utils/typeahead.d.ts +9 -0
  813. package/dist/utils/typeahead.js +21 -9
  814. package/dist/utils/useDndList.svelte.d.ts +1 -1
  815. package/dist/utils/useDndList.svelte.js +6 -23
  816. package/dist/utils/useFocusScope.svelte.d.ts +29 -0
  817. package/dist/utils/useFocusScope.svelte.js +189 -27
  818. package/dist/utils/useHoverAction.svelte.d.ts +44 -4
  819. package/dist/utils/useHoverAction.svelte.js +161 -51
  820. package/dist/utils/useKeyDown.svelte.d.ts +19 -2
  821. package/dist/utils/useKeyDown.svelte.js +19 -12
  822. package/dist/utils/useListNavigation.svelte.d.ts +94 -13
  823. package/dist/utils/useListNavigation.svelte.js +261 -35
  824. package/dist/utils/useLiveAnnouncer.svelte.d.ts +77 -2
  825. package/dist/utils/useLiveAnnouncer.svelte.js +119 -2
  826. package/dist/utils/useNavigation.svelte.d.ts +36 -3
  827. package/dist/utils/useNavigation.svelte.js +699 -332
  828. package/dist/utils/usePressAndHold.svelte.d.ts +38 -0
  829. package/dist/utils/usePressAndHold.svelte.js +191 -0
  830. package/dist/utils/useScrollLock.svelte.d.ts +20 -1
  831. package/dist/utils/useScrollLock.svelte.js +54 -13
  832. package/dist/utils/useSlidingIndicator.svelte.d.ts +2 -0
  833. package/dist/utils/useSlidingIndicator.svelte.js +27 -5
  834. package/dist/utils/useTabBridge.svelte.d.ts +20 -0
  835. package/dist/utils/useTabBridge.svelte.js +109 -0
  836. package/dist/utils/values.d.ts +15 -0
  837. package/dist/utils/values.js +49 -0
  838. package/package.json +31 -2
  839. package/dist/generated/componentMcpRegistry.d.ts +0 -142
  840. package/dist/utils/useDrag.svelte.d.ts +0 -11
  841. package/dist/utils/useDrag.svelte.js +0 -55
@@ -29,6 +29,12 @@ export declare const aiComposerTheme: {
29
29
  toolbar: (props?: import("../../utils/cva/types.js").CVAClassProp | undefined) => string;
30
30
  file: (props?: import("../../utils/cva/types.js").CVAClassProp | undefined) => string;
31
31
  error: (props?: import("../../utils/cva/types.js").CVAClassProp | undefined) => string;
32
+ notice: (props?: (import("../../utils/cva/types.js").CVAVariantSchema<{
33
+ empty: {
34
+ true: string;
35
+ false: string;
36
+ };
37
+ }> & import("../../utils/cva/types.js").CVAClassProp) | undefined) => string;
32
38
  footer: (props?: import("../../utils/cva/types.js").CVAClassProp | undefined) => string;
33
39
  actions: (props?: (import("../../utils/cva/types.js").CVAVariantSchema<{
34
40
  side: {
@@ -45,7 +51,14 @@ export declare const aiComposerTheme: {
45
51
  queue: (props?: import("../../utils/cva/types.js").CVAClassProp | undefined) => string;
46
52
  queueEditing: (props?: import("../../utils/cva/types.js").CVAClassProp | undefined) => string;
47
53
  queueList: (props?: import("../../utils/cva/types.js").CVAClassProp | undefined) => string;
48
- queueItem: (props?: import("../../utils/cva/types.js").CVAClassProp | undefined) => string;
54
+ queueItem: (props?: (import("../../utils/cva/types.js").CVAVariantSchema<{
55
+ steered: {
56
+ true: string;
57
+ false: string;
58
+ };
59
+ }> & import("../../utils/cva/types.js").CVAClassProp) | undefined) => string;
60
+ queueBadge: (props?: import("../../utils/cva/types.js").CVAClassProp | undefined) => string;
61
+ queueFiles: (props?: import("../../utils/cva/types.js").CVAClassProp | undefined) => string;
49
62
  queueText: (props?: import("../../utils/cva/types.js").CVAClassProp | undefined) => string;
50
63
  };
51
64
  export type AIComposerTheme = typeof aiComposerTheme;
@@ -80,6 +93,12 @@ export declare const setAIComposerTheme: (theme: InferComponentTheme<{
80
93
  toolbar: (props?: import("../../utils/cva/types.js").CVAClassProp | undefined) => string;
81
94
  file: (props?: import("../../utils/cva/types.js").CVAClassProp | undefined) => string;
82
95
  error: (props?: import("../../utils/cva/types.js").CVAClassProp | undefined) => string;
96
+ notice: (props?: (import("../../utils/cva/types.js").CVAVariantSchema<{
97
+ empty: {
98
+ true: string;
99
+ false: string;
100
+ };
101
+ }> & import("../../utils/cva/types.js").CVAClassProp) | undefined) => string;
83
102
  footer: (props?: import("../../utils/cva/types.js").CVAClassProp | undefined) => string;
84
103
  actions: (props?: (import("../../utils/cva/types.js").CVAVariantSchema<{
85
104
  side: {
@@ -96,7 +115,14 @@ export declare const setAIComposerTheme: (theme: InferComponentTheme<{
96
115
  queue: (props?: import("../../utils/cva/types.js").CVAClassProp | undefined) => string;
97
116
  queueEditing: (props?: import("../../utils/cva/types.js").CVAClassProp | undefined) => string;
98
117
  queueList: (props?: import("../../utils/cva/types.js").CVAClassProp | undefined) => string;
99
- queueItem: (props?: import("../../utils/cva/types.js").CVAClassProp | undefined) => string;
118
+ queueItem: (props?: (import("../../utils/cva/types.js").CVAVariantSchema<{
119
+ steered: {
120
+ true: string;
121
+ false: string;
122
+ };
123
+ }> & import("../../utils/cva/types.js").CVAClassProp) | undefined) => string;
124
+ queueBadge: (props?: import("../../utils/cva/types.js").CVAClassProp | undefined) => string;
125
+ queueFiles: (props?: import("../../utils/cva/types.js").CVAClassProp | undefined) => string;
100
126
  queueText: (props?: import("../../utils/cva/types.js").CVAClassProp | undefined) => string;
101
127
  }>) => void;
102
128
  export declare const useAIComposerTheme: import("../../utils/cva/theme.js").UseComponentTheme<{
@@ -129,6 +155,12 @@ export declare const useAIComposerTheme: import("../../utils/cva/theme.js").UseC
129
155
  toolbar: (props?: import("../../utils/cva/types.js").CVAClassProp | undefined) => string;
130
156
  file: (props?: import("../../utils/cva/types.js").CVAClassProp | undefined) => string;
131
157
  error: (props?: import("../../utils/cva/types.js").CVAClassProp | undefined) => string;
158
+ notice: (props?: (import("../../utils/cva/types.js").CVAVariantSchema<{
159
+ empty: {
160
+ true: string;
161
+ false: string;
162
+ };
163
+ }> & import("../../utils/cva/types.js").CVAClassProp) | undefined) => string;
132
164
  footer: (props?: import("../../utils/cva/types.js").CVAClassProp | undefined) => string;
133
165
  actions: (props?: (import("../../utils/cva/types.js").CVAVariantSchema<{
134
166
  side: {
@@ -145,6 +177,13 @@ export declare const useAIComposerTheme: import("../../utils/cva/theme.js").UseC
145
177
  queue: (props?: import("../../utils/cva/types.js").CVAClassProp | undefined) => string;
146
178
  queueEditing: (props?: import("../../utils/cva/types.js").CVAClassProp | undefined) => string;
147
179
  queueList: (props?: import("../../utils/cva/types.js").CVAClassProp | undefined) => string;
148
- queueItem: (props?: import("../../utils/cva/types.js").CVAClassProp | undefined) => string;
180
+ queueItem: (props?: (import("../../utils/cva/types.js").CVAVariantSchema<{
181
+ steered: {
182
+ true: string;
183
+ false: string;
184
+ };
185
+ }> & import("../../utils/cva/types.js").CVAClassProp) | undefined) => string;
186
+ queueBadge: (props?: import("../../utils/cva/types.js").CVAClassProp | undefined) => string;
187
+ queueFiles: (props?: import("../../utils/cva/types.js").CVAClassProp | undefined) => string;
149
188
  queueText: (props?: import("../../utils/cva/types.js").CVAClassProp | undefined) => string;
150
189
  }>;
@@ -1,6 +1,11 @@
1
1
  import { cva, setComponentTheme, useComponentTheme } from '../../utils/cva/index.js';
2
+ // The composer is a raised card so it separates from whatever chat surface hosts it: its own
3
+ // raised fill, a hairline and a soft lift. It caps itself at `--ai-chat-content-width` when a host
4
+ // (AIChat) publishes one and centres in the remaining room; without the variable it spans its
5
+ // host. `@container` lets the editor and footer switch to touch ergonomics on a narrow composer.
6
+ // The focus ring follows the editor only, so focusing a footer control does not ring the card.
2
7
  const defaultRoot = cva({
3
- base: 'relative grid min-w-0 grid-cols-[minmax(0,1fr)] gap-xs rounded-md border border-neutral-muted bg-surface p-sm transition-colors focus-within:ring-2 focus-within:ring-focus/50',
8
+ base: '@container relative mx-auto grid w-full max-w-[var(--ai-chat-content-width,none)] min-w-0 grid-cols-[minmax(0,1fr)] gap-xs rounded-lg border border-neutral-muted bg-surface-raised p-sm lift-2 transition-colors has-[[data-slot=ai-composer-editor]:focus-within]:ring-2 has-[[data-slot=ai-composer-editor]:focus-within]:ring-focus/50',
4
9
  variants: {
5
10
  dragState: {
6
11
  idle: '',
@@ -37,12 +42,26 @@ const defaultEditor = cva({
37
42
  const defaultToolbar = cva({ base: 'min-w-0' });
38
43
  const defaultFile = cva({ base: 'shrink-0' });
39
44
  const defaultError = cva({ base: 'min-w-0' });
40
- const defaultFooter = cva({ base: 'flex min-w-0 items-center gap-md' });
45
+ // Rejected files are reported as a quiet inline note that dismisses itself, not as an alert. The
46
+ // note's live region stays mounted; while empty it is visually hidden and takes no grid row.
47
+ const defaultNotice = cva({
48
+ base: 'flex min-w-0 items-center justify-between gap-md px-sm text-xs text-danger-readable',
49
+ variants: { empty: { true: 'sr-only', false: '' } },
50
+ defaultVariants: { empty: false }
51
+ });
52
+ // On a narrow composer or a touch screen the footer controls grow to the 36px control height, so
53
+ // the targets are reachable with a thumb. VoiceInput's buttons are excluded here: the footer gives
54
+ // the VoiceInput its 36px `normal` size under the same conditions instead.
55
+ const defaultFooter = cva({
56
+ base: 'flex min-w-0 items-center gap-md @max-md:[&_button:not([data-slot=ai-composer-voice-input]_button)]:h-control-lg pointer-coarse:[&_button:not([data-slot=ai-composer-voice-input]_button)]:h-control-lg'
57
+ });
58
+ // The start group (attach, footerStart) may shrink; the end group (model, voice, queue,
59
+ // stop/send) keeps priority so the send position never leaves the composer.
41
60
  const defaultActions = cva({
42
61
  base: 'flex items-center gap-xs',
43
62
  variants: {
44
63
  side: {
45
- start: 'shrink-0',
64
+ start: 'min-w-0 shrink',
46
65
  end: 'ml-auto min-w-0 flex-1 justify-end'
47
66
  }
48
67
  },
@@ -62,8 +81,18 @@ const defaultQueue = cva({ base: 'grid gap-xs border-b border-neutral-muted pb-m
62
81
  const defaultQueueEditing = cva({
63
82
  base: 'flex min-w-0 items-center justify-between gap-md rounded-sm bg-neutral-muted/50 px-md py-xs text-sm text-neutral/70'
64
83
  });
65
- const defaultQueueList = cva({ base: 'grid gap-xs' });
66
- const defaultQueueItem = cva({ base: 'flex min-w-0 flex-1 items-center gap-md' });
84
+ // One `minmax(0, 1fr)` track: an `auto` track grows to a long message's width and pushes the row
85
+ // actions past the composer edge instead of truncating the preview.
86
+ const defaultQueueList = cva({ base: 'grid grid-cols-[minmax(0,1fr)] gap-xs [&>*]:min-w-0' });
87
+ const defaultQueueItem = cva({
88
+ base: 'flex min-w-0 flex-1 items-center gap-md',
89
+ variants: { steered: { true: '', false: '' } },
90
+ defaultVariants: { steered: false }
91
+ });
92
+ const defaultQueueBadge = cva({
93
+ base: 'shrink-0 rounded-sm bg-primary-muted px-sm text-xs font-medium text-primary-muted-readable'
94
+ });
95
+ const defaultQueueFiles = cva({ base: 'shrink-0 text-xs text-neutral/70' });
67
96
  const defaultQueueText = cva({ base: 'min-w-0 flex-1 truncate text-sm text-neutral/70' });
68
97
  export const aiComposerTheme = {
69
98
  root: defaultRoot,
@@ -76,6 +105,7 @@ export const aiComposerTheme = {
76
105
  toolbar: defaultToolbar,
77
106
  file: defaultFile,
78
107
  error: defaultError,
108
+ notice: defaultNotice,
79
109
  footer: defaultFooter,
80
110
  actions: defaultActions,
81
111
  voiceInput: defaultVoiceInput,
@@ -83,6 +113,8 @@ export const aiComposerTheme = {
83
113
  queueEditing: defaultQueueEditing,
84
114
  queueList: defaultQueueList,
85
115
  queueItem: defaultQueueItem,
116
+ queueBadge: defaultQueueBadge,
117
+ queueFiles: defaultQueueFiles,
86
118
  queueText: defaultQueueText
87
119
  };
88
120
  export const setAIComposerTheme = setComponentTheme('ai-composer');
@@ -1,3 +1,4 @@
1
+ import type { Messages } from '../../i18n/en.js';
1
2
  import type { FileRejection } from '../Form/File/fileAcceptance.js';
2
3
  import { FileDropzone } from '../Form/File/fileDropzone.svelte.js';
3
4
  import type { AIComposerAttachment, AIComposerQueuedMessage } from './aiComposer.props.js';
@@ -20,21 +21,28 @@ type AIComposerFileControllerOptions = {
20
21
  onAttachmentAdd?: (payload: AIComposerAttachment) => void;
21
22
  onAttachmentRetry?: (payload: AIComposerAttachment) => void | Promise<void>;
22
23
  onAttachmentRemove?: (payload: AIComposerAttachment) => void;
24
+ messages: Messages;
23
25
  };
24
26
  export declare class AIComposerFileController {
25
27
  private optionsSource;
26
28
  readonly dropzone: FileDropzone;
27
29
  error: string | undefined;
30
+ /** Plain-language note about files that were just rejected; the composer dismisses it. */
31
+ notice: string | undefined;
32
+ /** Counts rejection notes, so a repeated identical note still re-announces and restarts its timer. */
33
+ noticeId: number;
28
34
  constructor(optionsSource: () => AIComposerFileControllerOptions);
29
35
  get files(): File[];
30
36
  get attachments(): AIComposerAttachment[];
31
37
  get accept(): readonly string[];
38
+ /** The effective file limit: a single-file composer holds one file whatever `maxFiles` says. */
32
39
  get maxFiles(): number;
33
40
  get isDisabled(): boolean;
34
41
  addFiles(files: readonly File[]): void;
35
42
  removeFile(file: File): void;
36
43
  retryAttachment(attachmentId: string): Promise<void>;
37
44
  clear(): void;
45
+ dismissNotice(): void;
38
46
  restore(message: AIComposerQueuedMessage): void;
39
47
  handlePaste(event: ClipboardEvent): void;
40
48
  private get options();
@@ -46,4 +54,16 @@ export declare class AIComposerFileController {
46
54
  private updateAttachment;
47
55
  private reportRejections;
48
56
  }
57
+ /**
58
+ * One sentence a person can act on: the file's name and what to do instead ("notes.txt isn't
59
+ * supported — use images or PDF"), never the rejection code.
60
+ */
61
+ export declare function describeRejections(rejections: readonly FileRejection[], context: {
62
+ accept: readonly string[];
63
+ maxFiles: number;
64
+ maxFileSize: string;
65
+ messages: Messages;
66
+ }): string;
67
+ /** "images or PDF" from `['image/*', '.pdf']`, joined the locale's way. */
68
+ export declare function describeAcceptedTypes(accept: readonly string[], messages: Messages): string;
49
69
  export {};
@@ -6,6 +6,10 @@ export class AIComposerFileController {
6
6
  optionsSource;
7
7
  dropzone;
8
8
  error = $state();
9
+ /** Plain-language note about files that were just rejected; the composer dismisses it. */
10
+ notice = $state();
11
+ /** Counts rejection notes, so a repeated identical note still re-announces and restarts its timer. */
12
+ noticeId = $state(0);
9
13
  constructor(optionsSource) {
10
14
  this.optionsSource = optionsSource;
11
15
  this.dropzone = new FileDropzone(() => ({
@@ -32,8 +36,9 @@ export class AIComposerFileController {
32
36
  get accept() {
33
37
  return this.options.accept;
34
38
  }
39
+ /** The effective file limit: a single-file composer holds one file whatever `maxFiles` says. */
35
40
  get maxFiles() {
36
- return this.options.maxFiles;
41
+ return this.options.fileMultiple ? this.options.maxFiles : 1;
37
42
  }
38
43
  get isDisabled() {
39
44
  const options = this.options;
@@ -73,7 +78,7 @@ export class AIComposerFileController {
73
78
  }));
74
79
  }
75
80
  catch (error) {
76
- const message = getErrorMessage(error, `Unable to upload ${attachment.file.name}.`);
81
+ const message = getErrorMessage(error, this.options.messages.aiComposerUploadFailed(attachment.file.name));
77
82
  this.updateAttachment(attachmentId, (current) => ({
78
83
  ...current,
79
84
  status: 'failed',
@@ -88,8 +93,12 @@ export class AIComposerFileController {
88
93
  else
89
94
  this.commitFiles([]);
90
95
  this.error = undefined;
96
+ this.notice = undefined;
91
97
  this.dropzone.reset();
92
98
  }
99
+ dismissNotice() {
100
+ this.notice = undefined;
101
+ }
93
102
  restore(message) {
94
103
  if (this.options.managedAttachments) {
95
104
  const attachments = message.attachments.length > 0
@@ -117,6 +126,7 @@ export class AIComposerFileController {
117
126
  }
118
127
  replaceFiles(files) {
119
128
  this.error = undefined;
129
+ this.notice = undefined;
120
130
  const options = this.options;
121
131
  if (!options.managedAttachments) {
122
132
  this.commitFiles(files);
@@ -159,18 +169,74 @@ export class AIComposerFileController {
159
169
  }
160
170
  reportRejections(rejections) {
161
171
  if (rejections.length === 0) {
162
- this.error = undefined;
172
+ this.notice = undefined;
163
173
  return;
164
174
  }
165
175
  const options = this.options;
166
176
  options.onFileReject?.(rejections);
167
- const files = rejections.map((rejection) => rejection.file);
168
- options.onFilesRejected?.(files);
169
- const reasons = rejections
170
- .map((rejection) => rejection.reason)
171
- .filter((reason, index, allReasons) => allReasons.indexOf(reason) === index);
172
- this.error = `${files.length} file${files.length === 1 ? '' : 's'} rejected (${reasons.join(', ')}).`;
177
+ options.onFilesRejected?.(rejections.map((rejection) => rejection.file));
178
+ this.noticeId += 1;
179
+ this.notice = describeRejections(rejections, {
180
+ accept: options.accept,
181
+ maxFiles: this.maxFiles,
182
+ maxFileSize: this.dropzone.formatSize(options.maxFileSize),
183
+ messages: options.messages
184
+ });
185
+ }
186
+ }
187
+ /**
188
+ * One sentence a person can act on: the file's name and what to do instead ("notes.txt isn't
189
+ * supported — use images or PDF"), never the rejection code.
190
+ */
191
+ export function describeRejections(rejections, context) {
192
+ const { messages } = context;
193
+ const first = rejections[0].reason;
194
+ const reason = rejections.every((rejection) => rejection.reason === first) ? first : undefined;
195
+ const name = rejections[0].file.name;
196
+ const single = rejections.length === 1;
197
+ if (reason === 'limit')
198
+ return messages.aiComposerFileLimit(context.maxFiles);
199
+ if (reason === 'type') {
200
+ const types = describeAcceptedTypes(context.accept, messages);
201
+ return single
202
+ ? messages.aiComposerFileUnsupported(name, types)
203
+ : messages.aiComposerFilesUnsupported(rejections.length, types);
204
+ }
205
+ if (single && reason === 'size')
206
+ return messages.aiComposerFileTooLarge(name, context.maxFileSize);
207
+ if (single && reason === 'duplicate')
208
+ return messages.aiComposerFileDuplicate(name);
209
+ return messages.aiComposerFilesRejected(rejections.length);
210
+ }
211
+ /** "images or PDF" from `['image/*', '.pdf']`, joined the locale's way. */
212
+ export function describeAcceptedTypes(accept, messages) {
213
+ const names = accept.map((pattern) => describeAcceptPattern(pattern.trim(), messages));
214
+ const unique = names.filter((name, index) => name && names.indexOf(name) === index);
215
+ try {
216
+ return new Intl.ListFormat(messages.locale, { type: 'disjunction' }).format(unique);
217
+ }
218
+ catch {
219
+ return unique.join(', ');
220
+ }
221
+ }
222
+ function describeAcceptPattern(pattern, messages) {
223
+ const normalized = pattern.toLowerCase();
224
+ if (normalized.startsWith('.'))
225
+ return normalized.slice(1).toUpperCase();
226
+ const [family, subtype] = normalized.split('/');
227
+ if (subtype === '*') {
228
+ if (family === 'image')
229
+ return messages.aiComposerFileTypeImages;
230
+ if (family === 'video')
231
+ return messages.aiComposerFileTypeVideos;
232
+ if (family === 'audio')
233
+ return messages.aiComposerFileTypeAudio;
234
+ if (family === 'text')
235
+ return messages.aiComposerFileTypeText;
236
+ return family;
173
237
  }
238
+ // `application/pdf` → PDF; `application/vnd.ms-excel` → MS-EXCEL.
239
+ return (subtype ?? family).replace(/^(?:vnd\.|x-)/, '').toUpperCase();
174
240
  }
175
241
  function createAttachment(file) {
176
242
  return {
@@ -1,4 +1,9 @@
1
1
  import { en } from '../../i18n/en.js';
2
+ import { atIcon } from '../Icons/at.js';
3
+ import { fileTextIcon } from '../Icons/fileText.js';
4
+ import { lightningIcon } from '../Icons/lightning.js';
5
+ import { linkIcon } from '../Icons/link.js';
6
+ import { sparkleIcon } from '../Icons/sparkle.js';
2
7
  import { toRichTextInputToken } from '../RichTextInput/suggestions.js';
3
8
  export function resolveAIComposerSources(options) {
4
9
  const commands = resolveCommands(options);
@@ -164,9 +169,10 @@ function createAtSearch(mentions, references, compatibilitySearch) {
164
169
  return (context) => combineSearchResults([
165
170
  searchSource(mentions, context, 'mention'),
166
171
  searchSource(references, context, 'reference'),
167
- mapSearchResult(compatibilitySearch ? searchMentions(compatibilitySearch, context.query, 'all') : [], (items) => items
168
- .filter(isAtMention)
169
- .map((item) => ({ ...item, kind: getAIComposerMentionKind(item, 'mention') })))
172
+ mapSearchResult(compatibilitySearch ? searchMentions(compatibilitySearch, context.query, 'all') : [], (items) => items.filter(isAtMention).map((item) => {
173
+ const kind = getAIComposerMentionKind(item, 'mention');
174
+ return { ...item, kind, icon: item.icon ?? KIND_ICONS[kind] };
175
+ }))
170
176
  ]);
171
177
  }
172
178
  function searchSource(source, context, kind) {
@@ -222,8 +228,20 @@ function requireMention(item) {
222
228
  }
223
229
  return { ...item, kind };
224
230
  }
231
+ // A leading icon per token kind in the / @ $ menus when the item brings none, so people, files
232
+ // and references are told apart at a glance in a mixed @ list.
233
+ const KIND_ICONS = {
234
+ command: lightningIcon,
235
+ mention: atIcon,
236
+ file: fileTextIcon,
237
+ reference: linkIcon,
238
+ skill: sparkleIcon
239
+ };
225
240
  function withKind(items, fallback) {
226
- return (items ?? []).map((item) => ({ ...item, kind: itemKind(item, fallback) }));
241
+ return (items ?? []).map((item) => {
242
+ const kind = itemKind(item, fallback);
243
+ return { ...item, kind, icon: item.icon ?? KIND_ICONS[kind] };
244
+ });
227
245
  }
228
246
  function itemKind(item, fallback) {
229
247
  if (item.kind)
@@ -11,6 +11,17 @@ type AIComposerSubmitControllerOptions = {
11
11
  conversation: AIConversationState<AIThreadItem> | null;
12
12
  buildMeta: () => AIComposerSubmitMeta;
13
13
  clearDraft: () => void;
14
+ /**
15
+ * Whether the send started inside the composer: focus is there, or the submit came from one of
16
+ * its buttons (Safari does not focus a clicked button, so focus sits on `<body>` then).
17
+ */
18
+ hasFocus: (event?: AIComposerSubmitEvent) => boolean;
19
+ /** Returns focus to the editor once a send settles. */
20
+ restoreFocus: () => void;
21
+ messages: {
22
+ submitFailed: string;
23
+ stopFailed: string;
24
+ };
14
25
  onSubmit: AIComposerProps['onSubmit'];
15
26
  onStop: AIComposerProps['onStop'];
16
27
  };
@@ -24,6 +35,7 @@ export declare class AIComposerSubmitController {
24
35
  submit: (event?: AIComposerSubmitEvent) => Promise<void>;
25
36
  stop: () => Promise<void>;
26
37
  private get options();
38
+ /** Hands the draft to `onSubmit` or the conversation; a rejection keeps the draft. */
27
39
  private dispatch;
28
40
  }
29
41
  export {};
@@ -16,26 +16,36 @@ export class AIComposerSubmitController {
16
16
  if (options.disabled || this.isWorking || !options.canSubmit)
17
17
  return;
18
18
  const meta = options.buildMeta();
19
+ // A send that started inside the composer hands focus back to the editor once it settles:
20
+ // the editor is read-only while a send is in flight (which blurs it), and queueing or
21
+ // committing an edit clears the draft, which unmounts or disables the button that sent it.
22
+ const hadFocus = options.hasFocus(event);
19
23
  if (options.queue.isEditing) {
20
24
  options.queue.commitEdit(meta);
25
+ if (hadFocus)
26
+ options.restoreFocus();
21
27
  return;
22
28
  }
23
29
  if (options.busy) {
24
30
  if (options.queueWhileBusy)
25
31
  options.queue.enqueue(meta);
32
+ if (hadFocus)
33
+ options.restoreFocus();
26
34
  return;
27
35
  }
28
36
  this.isSubmitting = true;
29
37
  this.error = undefined;
30
38
  try {
31
- if (await this.dispatch(meta, event))
32
- options.clearDraft();
39
+ await this.dispatch(meta, event);
40
+ options.clearDraft();
33
41
  }
34
42
  catch (error) {
35
- this.error = getErrorMessage(error, 'Unable to submit the message.');
43
+ this.error = getErrorMessage(error, options.messages.submitFailed);
36
44
  }
37
45
  finally {
38
46
  this.isSubmitting = false;
47
+ if (hadFocus)
48
+ options.restoreFocus();
39
49
  }
40
50
  };
41
51
  stop = async () => {
@@ -53,7 +63,7 @@ export class AIComposerSubmitController {
53
63
  throw new Error('AIComposer requires onStop or a parent AIConversation to stop.');
54
64
  }
55
65
  catch (error) {
56
- this.error = getErrorMessage(error, 'Unable to stop the response.');
66
+ this.error = getErrorMessage(error, options.messages.stopFailed);
57
67
  }
58
68
  finally {
59
69
  this.isStopping = false;
@@ -62,12 +72,13 @@ export class AIComposerSubmitController {
62
72
  get options() {
63
73
  return this.optionsSource();
64
74
  }
75
+ /** Hands the draft to `onSubmit` or the conversation; a rejection keeps the draft. */
65
76
  async dispatch(meta, event) {
66
77
  const options = this.options;
67
78
  const detail = { ...meta, event, steered: false };
68
79
  if (options.onSubmit) {
69
80
  await options.onSubmit(detail);
70
- return false;
81
+ return;
71
82
  }
72
83
  if (!options.conversation) {
73
84
  throw new Error('AIComposer requires onSubmit or a parent AIConversation.');
@@ -77,7 +88,6 @@ export class AIComposerSubmitController {
77
88
  event,
78
89
  meta
79
90
  });
80
- return true;
81
91
  }
82
92
  }
83
93
  function getErrorMessage(error, fallback) {
@@ -144,9 +144,13 @@
144
144
  decorative
145
145
  class={classes.progress()}
146
146
  />
147
- {#if !compact}<span class={classes.triggerValue()}
148
- >{state.formattedUsed} / {state.formattedMax}</span
149
- >{/if}
147
+ {#if compact}
148
+ <span data-slot="ai-context-trigger-percent" class={classes.triggerPercent()}
149
+ >{Math.round(clampedPercent)}%</span
150
+ >
151
+ {:else}
152
+ <span class={classes.triggerValue()}>{state.formattedUsed} / {state.formattedMax}</span>
153
+ {/if}
150
154
  </button>
151
155
  {/if}
152
156
  {/snippet}
@@ -1 +1 @@
1
- export declare const aiContextDescription = "\n# AIContext\n\nDisplays context-window usage with the existing `ProgressCircle` and a top-end `HoverCard` breakdown. It reads `AIConversation.contextUsage` when `usage` is omitted or undefined; a direct usage object or `null` wins over provider state. Direct `usedTokens` takes precedence over either usage source.\n\n`maxTokens` defaults to 128,000. `warningAt` and `dangerAt` default to 70 and 90 percent. Use `compact` for an icon-only trigger and `formatTokens` to replace number formatting. `dir` is forwarded to both the trigger wrapper and portalled details. The compact `labels` object overrides the title, remaining-token formatter, breakdown row labels, Used/Maximum labels, and complete trigger `label`; formatter callbacks receive already formatted token strings.\n\nThe `children` trigger and `content` detail snippets receive the complete resolved state: totals, remaining tokens, percentage, tone, formatted values, and resolved labels. Theme slots cover the root, popover/card surfaces, trigger, progress circle, trigger value, summary, meter, and breakdown rows. Native div attributes and attachments are forwarded to the root; `ref` binds that element.\n\nThe default trigger is a keyboard-focusable button with a complete context-usage label. The decorative ProgressCircle does not duplicate progress semantics, and the hover content opens from pointer or keyboard focus.\n\n```svelte\n<AIContext\n maxTokens={128000}\n usage={{ inputTokens: 12000, outputTokens: 3200, reasoningTokens: 800 }}\n/>\n```\n";
1
+ export declare const aiContextDescription = "\n# AIContext\n\nDisplays context-window usage with the existing `ProgressCircle` and a top-end `HoverCard` breakdown. It reads `AIConversation.contextUsage` when `usage` is omitted or undefined; a direct usage object or `null` wins over provider state. Direct `usedTokens` takes precedence over either usage source.\n\n`maxTokens` defaults to 128,000. `warningAt` and `dangerAt` default to 70 and 90 percent. Use `compact` for the ring plus the rounded percentage (\"17%\") on the small control height used by composer footers, and `formatTokens` to replace number formatting. The default trigger is transparent so it sits on any surface. AIChat shows its default indicator only when `maxTokens` is set or the conversation reports `contextUsage`. `dir` is forwarded to both the trigger wrapper and portalled details. The compact `labels` object overrides the title, remaining-token formatter, breakdown row labels, Used/Maximum labels, and complete trigger `label`; formatter callbacks receive already formatted token strings.\n\nThe `children` trigger and `content` detail snippets receive the complete resolved state: totals, remaining tokens, percentage, tone, formatted values, and resolved labels. Theme slots cover the root, popover/card surfaces, trigger, progress circle, trigger value, summary, meter, and breakdown rows. Native div attributes and attachments are forwarded to the root; `ref` binds that element.\n\nThe default trigger is a keyboard-focusable button with a complete context-usage label. The decorative ProgressCircle does not duplicate progress semantics, and the hover content opens from pointer or keyboard focus.\n\n```svelte\n<AIContext\n maxTokens={128000}\n usage={{ inputTokens: 12000, outputTokens: 3200, reasoningTokens: 800 }}\n/>\n```\n";
@@ -3,7 +3,7 @@ export const aiContextDescription = `
3
3
 
4
4
  Displays context-window usage with the existing \`ProgressCircle\` and a top-end \`HoverCard\` breakdown. It reads \`AIConversation.contextUsage\` when \`usage\` is omitted or undefined; a direct usage object or \`null\` wins over provider state. Direct \`usedTokens\` takes precedence over either usage source.
5
5
 
6
- \`maxTokens\` defaults to 128,000. \`warningAt\` and \`dangerAt\` default to 70 and 90 percent. Use \`compact\` for an icon-only trigger and \`formatTokens\` to replace number formatting. \`dir\` is forwarded to both the trigger wrapper and portalled details. The compact \`labels\` object overrides the title, remaining-token formatter, breakdown row labels, Used/Maximum labels, and complete trigger \`label\`; formatter callbacks receive already formatted token strings.
6
+ \`maxTokens\` defaults to 128,000. \`warningAt\` and \`dangerAt\` default to 70 and 90 percent. Use \`compact\` for the ring plus the rounded percentage ("17%") on the small control height used by composer footers, and \`formatTokens\` to replace number formatting. The default trigger is transparent so it sits on any surface. AIChat shows its default indicator only when \`maxTokens\` is set or the conversation reports \`contextUsage\`. \`dir\` is forwarded to both the trigger wrapper and portalled details. The compact \`labels\` object overrides the title, remaining-token formatter, breakdown row labels, Used/Maximum labels, and complete trigger \`label\`; formatter callbacks receive already formatted token strings.
7
7
 
8
8
  The \`children\` trigger and \`content\` detail snippets receive the complete resolved state: totals, remaining tokens, percentage, tone, formatted values, and resolved labels. Theme slots cover the root, popover/card surfaces, trigger, progress circle, trigger value, summary, meter, and breakdown rows. Native div attributes and attachments are forwarded to the root; \`ref\` binds that element.
9
9
 
@@ -50,7 +50,10 @@ export type AIContextProps = WithAttachments<Omit<HTMLAttributes<HTMLDivElement>
50
50
  usedTokens?: number;
51
51
  /** Structured token breakdown; falls back to conversation state when omitted or undefined. Pass `null` to suppress that fallback. */
52
52
  usage?: AIContextUsage | null;
53
- /** Renders only the circular meter in the trigger. */
53
+ /**
54
+ * Renders the circular meter with the rounded percentage (`17%`) instead of the token totals,
55
+ * on the small control height used by composer footers.
56
+ */
54
57
  compact?: boolean;
55
58
  /** Percentage at which warning styling begins. */
56
59
  warningAt?: number;
@@ -17,6 +17,7 @@ export declare const aiContextTheme: {
17
17
  }> & import("../../utils/cva/types.js").CVAClassProp) | undefined) => string;
18
18
  progress: (props?: import("../../utils/cva/types.js").CVAClassProp | undefined) => string;
19
19
  triggerValue: (props?: import("../../utils/cva/types.js").CVAClassProp | undefined) => string;
20
+ triggerPercent: (props?: import("../../utils/cva/types.js").CVAClassProp | undefined) => string;
20
21
  content: (props?: import("../../utils/cva/types.js").CVAClassProp | undefined) => string;
21
22
  summary: (props?: import("../../utils/cva/types.js").CVAClassProp | undefined) => string;
22
23
  title: (props?: import("../../utils/cva/types.js").CVAClassProp | undefined) => string;
@@ -55,6 +56,7 @@ export declare const setAIContextTheme: (theme: InferComponentTheme<{
55
56
  }> & import("../../utils/cva/types.js").CVAClassProp) | undefined) => string;
56
57
  progress: (props?: import("../../utils/cva/types.js").CVAClassProp | undefined) => string;
57
58
  triggerValue: (props?: import("../../utils/cva/types.js").CVAClassProp | undefined) => string;
59
+ triggerPercent: (props?: import("../../utils/cva/types.js").CVAClassProp | undefined) => string;
58
60
  content: (props?: import("../../utils/cva/types.js").CVAClassProp | undefined) => string;
59
61
  summary: (props?: import("../../utils/cva/types.js").CVAClassProp | undefined) => string;
60
62
  title: (props?: import("../../utils/cva/types.js").CVAClassProp | undefined) => string;
@@ -91,6 +93,7 @@ export declare const useAIContextTheme: import("../../utils/cva/theme.js").UseCo
91
93
  }> & import("../../utils/cva/types.js").CVAClassProp) | undefined) => string;
92
94
  progress: (props?: import("../../utils/cva/types.js").CVAClassProp | undefined) => string;
93
95
  triggerValue: (props?: import("../../utils/cva/types.js").CVAClassProp | undefined) => string;
96
+ triggerPercent: (props?: import("../../utils/cva/types.js").CVAClassProp | undefined) => string;
94
97
  content: (props?: import("../../utils/cva/types.js").CVAClassProp | undefined) => string;
95
98
  summary: (props?: import("../../utils/cva/types.js").CVAClassProp | undefined) => string;
96
99
  title: (props?: import("../../utils/cva/types.js").CVAClassProp | undefined) => string;
@@ -3,10 +3,13 @@ const defaultRoot = cva({ base: 'inline-flex' });
3
3
  const defaultPopover = cva({ base: 'w-auto p-0' });
4
4
  const defaultCard = cva({ base: 'w-auto gap-0 py-0' });
5
5
  const defaultCardContent = cva({ base: 'p-0' });
6
+ // A transparent control on the small control height, so it sits on any composer surface beside
7
+ // the footer buttons. Compact keeps the ring and adds the percentage: a ring alone reads as a
8
+ // loading spinner.
6
9
  const defaultTrigger = cva({
7
- base: 'state-layer inline-flex items-center rounded-sm bg-surface text-xs font-medium outline-none transition-colors focus-visible:ring-2 focus-visible:ring-focus/50',
10
+ base: 'state-layer inline-flex h-control-sm shrink-0 items-center rounded-md bg-transparent text-xs font-medium outline-none transition-colors focus-visible:ring-2 focus-visible:ring-focus/50',
8
11
  variants: {
9
- compact: { true: 'size-8 justify-center p-0', false: 'gap-sm px-md py-xs' },
12
+ compact: { true: 'justify-center gap-xs px-sm', false: 'gap-sm px-md' },
10
13
  tone: {
11
14
  default: 'text-neutral',
12
15
  warning: 'text-warning-readable',
@@ -17,6 +20,7 @@ const defaultTrigger = cva({
17
20
  });
18
21
  const defaultProgress = cva({ base: 'shrink-0' });
19
22
  const defaultTriggerValue = cva({ base: 'text-center font-normal tabular-nums' });
23
+ const defaultTriggerPercent = cva({ base: 'tabular-nums' });
20
24
  const defaultContent = cva({ base: 'flex min-w-56 flex-col gap-lg p-lg' });
21
25
  const defaultSummary = cva({ base: 'flex items-start justify-between gap-lg' });
22
26
  const defaultTitle = cva({ base: 'text-xs leading-4 font-medium' });
@@ -42,6 +46,7 @@ export const aiContextTheme = {
42
46
  trigger: defaultTrigger,
43
47
  progress: defaultProgress,
44
48
  triggerValue: defaultTriggerValue,
49
+ triggerPercent: defaultTriggerPercent,
45
50
  content: defaultContent,
46
51
  summary: defaultSummary,
47
52
  title: defaultTitle,
@@ -3,7 +3,7 @@ import type { AIConversationProps } from './aiConversation.props.js';
3
3
  declare function $$render<TMessage extends AIThreadItem = AIThreadItem>(): {
4
4
  props: AIConversationProps<TMessage>;
5
5
  exports: {};
6
- bindings: "error" | "attachments" | "files" | "suggestions" | "status" | "api" | "messages" | "streaming" | "queuedMessage" | "currentInput" | "liveText" | "contextUsage" | "selectedModel" | "activeAskUserQuestion";
6
+ bindings: "error" | "attachments" | "files" | "messages" | "suggestions" | "status" | "api" | "streaming" | "queuedMessage" | "currentInput" | "liveText" | "contextUsage" | "selectedModel" | "activeAskUserQuestion";
7
7
  slots: {};
8
8
  events: {};
9
9
  };
@@ -11,7 +11,7 @@ declare class __sveltets_Render<TMessage extends AIThreadItem = AIThreadItem> {
11
11
  props(): ReturnType<typeof $$render<TMessage>>['props'];
12
12
  events(): ReturnType<typeof $$render<TMessage>>['events'];
13
13
  slots(): ReturnType<typeof $$render<TMessage>>['slots'];
14
- bindings(): "error" | "attachments" | "files" | "suggestions" | "status" | "api" | "messages" | "streaming" | "queuedMessage" | "currentInput" | "liveText" | "contextUsage" | "selectedModel" | "activeAskUserQuestion";
14
+ bindings(): "error" | "attachments" | "files" | "messages" | "suggestions" | "status" | "api" | "streaming" | "queuedMessage" | "currentInput" | "liveText" | "contextUsage" | "selectedModel" | "activeAskUserQuestion";
15
15
  exports(): {};
16
16
  }
17
17
  interface $$IsomorphicComponent {
@@ -21,4 +21,4 @@ export const aiFilePreviewTheme = {
21
21
  error: cva({ base: 'truncate text-xs text-danger-readable' })
22
22
  };
23
23
  export const setAIFilePreviewTheme = setComponentTheme('ai-file-preview');
24
- export const useAIFilePreviewTheme = useComponentTheme('aiFilePreview', aiFilePreviewTheme);
24
+ export const useAIFilePreviewTheme = useComponentTheme('ai-file-preview', aiFilePreviewTheme);