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
@@ -27,6 +27,9 @@ The Accordion component provides an interactive collapsible container for organi
27
27
  - **titleKey**: string - Key to extract title from items (default: 'title')
28
28
  - **contentKey**: string - Key to extract content from items (default: 'content')
29
29
  - **descriptionKey**: string - Key to extract description from items (default: 'description')
30
+ - **disabledKey**: string - Key whose boolean disables one item (default: 'disabled')
31
+ - **disabled**: boolean (default: false) - Disables every item
32
+ - **headingLevel**: 2 | 3 | 4 | 5 | 6 (default: 3) - Level of the heading element that wraps each trigger
30
33
 
31
34
  ### Layout Props
32
35
  - **variant**: 'classic' | 'card' | 'outline' (default: 'classic')
@@ -43,8 +46,10 @@ The Accordion component provides an interactive collapsible container for organi
43
46
  - **splitted**: boolean (default: false) - Breaks the list into one surface per item with a gap: each item gets its own raised card (card), its own border (outline), or its own underline (classic)
44
47
 
45
48
  ### Event Props
46
- - **onValueChange**: (value: string[]) => void - Called once when expanded item ids change
47
- - **onItemOpenChange**: (options: { item: Item; index: number; open: boolean }) => void - Called after one item's open state changes
49
+ - **onValueChange**: (value: string[]) => void - Called once after the expanded item ids change, with the new ids. Not called for initialization or for ids a parent assigns.
50
+ - **onItemOpenChange**: (payload: { item: Item; index: number; open: boolean; details: OpenChangeDetails }) => void - Called before one item opens or closes. \`details.reason\` is \`'trigger-press'\` or \`'find-in-page'\`, \`details.event\` carries the DOM event, and \`details.cancel()\` keeps the item as it was (\`onValueChange\` is then not called). See \`entasis/types\` for \`OpenChangeDetails\`.
51
+ - **onItemAfterOpen**: (payload: { item: Item; index: number }) => void - Called once each time an item finishes opening: after its slide, or at once when no animation plays (reduced motion, zero duration, find-in-page). Not called for items open at the start.
52
+ - **onItemAfterClose**: (payload: { item: Item; index: number }) => void - Called once each time an item finishes closing, also when no animation plays or the panel is removed mid-close.
48
53
 
49
54
  ### Slot Props
50
55
  - **title**: Snippet - Custom title rendering
@@ -54,6 +59,8 @@ The Accordion component provides an interactive collapsible container for organi
54
59
 
55
60
  ### Behavior Props
56
61
  - **oneAtATime**: boolean (default: true) - Whether only one item can be expanded at a time
62
+ - **hiddenUntilFound**: boolean (default: false) - Keeps collapsed panels in the DOM under \`hidden="until-found"\`, so the browser's find-in-page, text fragments and \`#id\` links reach their content and open the item (reason \`find-in-page\`, no animation). Collapsed content stays out of the accessibility tree and the tab order until then. A disabled item is not findable: its collapsed panel stays under plain \`hidden\`.
63
+ - **keepMounted**: boolean (default: false) - Keeps collapsed panels mounted under \`hidden\`, preserving their state (form values, scroll). Not findable by the browser.
57
64
 
58
65
  ### Visual Props
59
66
  - **icon**: 'chevron' | 'plus-minus' | 'none' | Snippet (default: 'chevron')
@@ -73,18 +80,22 @@ The Accordion component provides an interactive collapsible container for organi
73
80
  \`\`\`
74
81
  <Accordion>
75
82
  <AccordionItem>
76
- <AccordionTrigger>
77
- <AccordionHeader>
78
- <Title />
79
- <Description />
80
- </AccordionHeader>
81
- <Icon />
82
- </AccordionTrigger>
83
- <AccordionContent />
83
+ <Heading> <!-- h2 to h6, headingLevel -->
84
+ <AccordionTrigger> <!-- button: id, aria-expanded, aria-controls, data-index -->
85
+ <AccordionHeader>
86
+ <Title />
87
+ <Description />
88
+ </AccordionHeader>
89
+ <Icon />
90
+ </AccordionTrigger>
91
+ </Heading>
92
+ <AccordionContent /> <!-- region: id, aria-labelledby the trigger -->
84
93
  </AccordionItem>
85
94
  </Accordion>
86
95
  \`\`\`
87
96
 
97
+ The heading wraps the button, as the WAI-ARIA accordion pattern asks, so assistive technology lists the headings. A collapsed item has no panel in the DOM unless \`hiddenUntilFound\` or \`keepMounted\` is set, so its content is neither read nor tabbable; \`aria-controls\` is present while the panel exists.
98
+
88
99
  ## Examples
89
100
 
90
101
  ### Basic Example
@@ -206,6 +217,22 @@ The Accordion component provides an interactive collapsible container for organi
206
217
  />
207
218
  \`\`\`
208
219
 
220
+ ### Find-in-page and disabled items
221
+
222
+ \`\`\`svelte
223
+ <script>
224
+ import { Accordion } from './index.ts';
225
+
226
+ let items = [
227
+ { title: 'Shipping', content: 'Orders ship within two days.' },
228
+ { title: 'Returns', content: 'Free returns for 30 days.', disabled: true }
229
+ ];
230
+ </script>
231
+
232
+ <!-- Ctrl+F finds "two days" and opens Shipping; Returns is skipped by Tab. -->
233
+ <Accordion {items} hiddenUntilFound />
234
+ \`\`\`
235
+
209
236
  ### With Event Handler
210
237
 
211
238
  \`\`\`svelte
@@ -216,8 +243,9 @@ The Accordion component provides an interactive collapsible container for organi
216
243
  { title: 'Section 1', content: 'Content 1' }
217
244
  ];
218
245
 
219
- function handleToggle({ item, index, open }) {
220
- console.log(\`Item \${item.title} at index \${index} is now \${open ? 'open' : 'closed'}\`);
246
+ function handleToggle({ item, index, open, details }) {
247
+ console.log(\`Item \${item.title} at index \${index} is opening: \${open} (\${details.reason})\`);
248
+ // details.cancel() would keep it as it was.
221
249
  }
222
250
  </script>
223
251
 
@@ -251,18 +279,45 @@ The Accordion component provides an interactive collapsible container for organi
251
279
  </Accordion>
252
280
  \`\`\`
253
281
 
282
+ ## Styling hooks
283
+
284
+ Every item, trigger and panel carries its own open state.
285
+
286
+ Attributes are presence attributes (set while the state holds, omitted otherwise) unless they carry a value.
287
+
288
+ **Data attributes**
289
+ - \`data-open\`: On an item, its trigger, its panel and the panel's content: present while the item is expanded.
290
+ - \`data-closed\`: On an item, its trigger, its panel and the panel's content: present while the item is collapsed, including during the exit transition.
291
+ - \`data-entering\`: On a panel: present while its opening animation plays.
292
+ - \`data-exiting\`: On a panel: present while its closing animation plays.
293
+ - \`data-disabled\`: On an item and its trigger: present while the item is disabled.
294
+ - \`data-state\`: On a trigger: \`open\` or \`closed\` (kept for compatibility; prefer \`data-open\` / \`data-closed\`).
295
+ - \`data-index\`: On an item and its trigger: the item index.
296
+ - \`data-slot\`: The part: \`accordion\`, \`accordion-item\`, \`accordion-trigger\`, \`accordion-icon-wrapper\` or \`accordion-panel\`.
297
+ - \`data-size\`: On the root: the resolved \`size\`.
298
+ - \`data-density\`: On the root: the resolved \`density\`.
299
+ - \`data-variant\`: On the root: the resolved \`variant\`.
300
+
301
+ **CSS variables**
302
+ - \`--disclosure-panel-height\`: On a panel: its measured height in px while it animates, \`auto\` once open and \`0px\` once closed.
303
+
304
+ The typed maps \`accordionDataAttributes\` and \`accordionCssVariables\` (from \`entasis/accordion\`) list each name with its meaning.
305
+
254
306
  ## Accessibility
255
307
 
256
- - Automatically handles ARIA attributes
257
- - Keyboard navigation support (Enter/Space to toggle)
258
- - Focus management for expanded items
259
- - Screen reader friendly with proper roles
308
+ - Each trigger is a native \`<button>\` inside a heading element (\`headingLevel\`), with \`aria-expanded\` and, while its panel exists, \`aria-controls\`.
309
+ - Each panel is a \`role="region"\` labelled by its trigger.
310
+ - Enter and Space toggle an item. Tab moves between triggers and into open content; arrow, Home and End keys are left to the page (they neither move focus nor block scrolling), following the current WAI-ARIA guidance.
311
+ - A disabled item's trigger has the native \`disabled\` attribute: it is skipped by Tab and announced as unavailable.
312
+ - Collapsed content is not copied anywhere for screen readers. Use \`hiddenUntilFound\` to make it findable.
313
+ - Migration: the \`accessible\` prop is removed (collapsed content is no longer duplicated into screen-reader-only text).
260
314
 
261
315
  ## Notes
262
316
 
263
317
  - Items are automatically assigned IDs if not provided
264
- - Uses Melt UI's Accordion builder for accessibility
265
- - Smooth transitions with the library's themed slide transition
318
+ - Expanded ids are tracked by the component itself; there is no builder dependency
319
+ - Panels animate their height through the shared disclosure panel (\`--disclosure-panel-height\` is set on the panel)
320
+ - Styling hooks: \`data-open\` / \`data-closed\` on the item, trigger and content, \`data-disabled\`, \`data-index\`, and \`data-entering\` / \`data-exiting\` on the panel
266
321
  - Supports bindable items for dynamic updates
267
322
 
268
323
  ## Theme Customization
@@ -275,11 +330,12 @@ The theme object contains the following parts:
275
330
  - **root**: Main accordion container styles
276
331
  - **item**: Individual accordion item styles
277
332
  - **trigger**: Accordion trigger button styles
278
- - **header**: Header section styles (contains title and description)
333
+ - **heading**: The \`h2\`-\`h6\` element that wraps each trigger (margin-free by default)
334
+ - **header**: Header section styles (contains title and description, inside the trigger)
279
335
  - **title**: Title text styles
280
336
  - **description**: Description text styles
281
337
  - **icon**: Expand/collapse icon styles
282
- - **content**: Content panel styles
338
+ - **content**: Content styles, on the element inside the region panel (so a hidden-until-found panel reserves no space)
283
339
 
284
340
  ### Available Variants
285
341
 
@@ -384,8 +440,8 @@ The theme object contains the following parts:
384
440
 
385
441
  ## Motion
386
442
 
387
- - **motion** theme slot: a slide keyed by \`axis\` (\`y\` by default, \`x\` for a horizontal list).
388
- - Takes \`in\` / \`out\` slide params plus a \`duration\` / \`easing\` motion token.
443
+ - **motion** theme slot: the panel's height animation. \`duration\`, \`delay\` and \`easing\` apply; the preset's slide offsets and opacity do not (panels collapse along their height only).
444
+ - Takes \`in\` / \`out\` params plus a \`duration\` / \`easing\` motion token.
389
445
  - Ladder: \`<Theme components={{ accordion: { motion } }}>\` → \`setAccordionTheme({ motion })\` →
390
446
  \`theme.motion\` → the \`transition\` prop. Reduced motion collapses it to 0.
391
447
  `;
@@ -3,9 +3,10 @@ import type { Slot, WithSlot } from '../Slot/slot.js';
3
3
  import type { FSOProps } from '../../transitions/transition.js';
4
4
  import type { ResponsiveProps } from '../Theme/theme.js';
5
5
  import type { WithAttachments } from '../../types/props.js';
6
+ import type { OpenChangeDetails } from '../../utils/openChange.js';
6
7
  import type { AccordionThemeProps } from './accordion.theme.js';
7
8
  export type ConditionalKeys<Base, Condition> = NonNullable<{
8
- [Key in keyof Base]: Base[Key] extends Condition ? Key : never;
9
+ [Key in keyof Base]: NonNullable<Base[Key]> extends Condition ? Key : never;
9
10
  }[keyof Base]>;
10
11
  export type AccordionProps<Item extends Record<string, unknown>> = WithAttachments<WithSlot<{
11
12
  /**
@@ -20,21 +21,69 @@ export type AccordionProps<Item extends Record<string, unknown>> = WithAttachmen
20
21
  value?: string[];
21
22
  /** Initially expanded item ids when `value` is omitted. */
22
23
  defaultValue?: string[];
23
- /** Called after the expanded item ids change. */
24
+ /** Called after the expanded item ids change, with the new ids. */
24
25
  onValueChange?: (value: string[]) => void;
25
26
  /**
26
- * Called after one item's open state changes. Receives the item, its index, and the
27
- * resulting open state; `onValueChange` reports the whole expanded set.
27
+ * Called before one item opens or closes. Receives the item, its index, the requested open
28
+ * state and the open-change `details`: `details.reason` says why (`trigger-press`, or
29
+ * `find-in-page` for the browser's find), `details.event` carries the DOM event, and
30
+ * `details.cancel()` keeps the item as it was (then `onValueChange` is not called).
31
+ * `onValueChange` reports the whole expanded set once the change is applied.
28
32
  */
29
33
  onItemOpenChange?: (payload: {
30
34
  item: Item;
31
35
  index: number;
32
36
  open: boolean;
37
+ details: OpenChangeDetails;
38
+ }) => void;
39
+ /**
40
+ * Called once each time an item finishes opening: after its slide, or at once when no
41
+ * animation runs (reduced motion, a zero duration, find-in-page). Not called for items open
42
+ * at the start.
43
+ */
44
+ onItemAfterOpen?: (payload: {
45
+ item: Item;
46
+ index: number;
47
+ }) => void;
48
+ /**
49
+ * Called once each time an item finishes closing: after its slide, at once when no
50
+ * animation runs, or when the panel is removed mid-close.
51
+ */
52
+ onItemAfterClose?: (payload: {
53
+ item: Item;
54
+ index: number;
33
55
  }) => void;
34
56
  /**
35
57
  * Whether the accordion should only allow one item to be open at a time.
36
58
  */
37
59
  oneAtATime?: boolean;
60
+ /**
61
+ * Disables every item: the triggers get the native `disabled` attribute, leave the tab
62
+ * order and cannot be toggled.
63
+ */
64
+ disabled?: boolean;
65
+ /**
66
+ * The key whose boolean marks one item as disabled. By default the accordion reads the
67
+ * `disabled` property of each item. A disabled item's trigger has the native `disabled`
68
+ * attribute, so it is skipped by Tab and announced as unavailable.
69
+ */
70
+ disabledKey?: ConditionalKeys<Item, boolean> | (string extends keyof Item ? keyof Item & string : never);
71
+ /**
72
+ * Keeps collapsed panels in the DOM under `hidden="until-found"`, so the browser's
73
+ * find-in-page, text fragments and `#id` links can reach their content and open the item
74
+ * (reason `find-in-page`, no animation). Collapsed content stays out of the accessibility
75
+ * tree and the tab order until then. A disabled item is not findable: its collapsed panel
76
+ * stays under plain `hidden`, so the browser never opens it. A parent that refuses the
77
+ * change leaves the item closed.
78
+ * @default false
79
+ */
80
+ hiddenUntilFound?: boolean;
81
+ /**
82
+ * Keeps collapsed panels mounted under `hidden`, preserving their state (form values,
83
+ * scroll, media). Not findable by the browser; use `hiddenUntilFound` for that.
84
+ * @default false
85
+ */
86
+ keepMounted?: boolean;
38
87
  /**
39
88
  * The key to use to get the title from the item. By default, the accordion will use the 'title' property of the item.
40
89
  * Usefull if the title is a string but you can pass a slot to display a custom title.
@@ -73,7 +122,7 @@ export type AccordionProps<Item extends Record<string, unknown>> = WithAttachmen
73
122
  */
74
123
  variant?: 'classic' | 'card' | 'outline';
75
124
  /**
76
- * Heading level announced for each item title (`aria-level` on the item heading).
125
+ * Level of the heading element (`h2` to `h6`) that wraps each trigger button.
77
126
  * @default 3
78
127
  */
79
128
  headingLevel?: 2 | 3 | 4 | 5 | 6;
@@ -91,11 +140,6 @@ export type AccordionProps<Item extends Record<string, unknown>> = WithAttachmen
91
140
  * Theme overrides for the accordion root and item sub-parts (header, trigger, title, description, icon, content).
92
141
  */
93
142
  theme?: AccordionThemeProps;
94
- /**
95
- * Whether the accordion should be accessible when not expanded.
96
- * This is useful for screen readers to skip the content when not expanded.
97
- */
98
- accessible?: boolean;
99
143
  }, 'title' | 'description' | 'content', {
100
144
  /** Current accordion item passed to the slot. */
101
145
  item: Item;
@@ -72,6 +72,7 @@ export declare const accordionTheme: {
72
72
  false: string;
73
73
  };
74
74
  }> & import("../../utils/cva/types.js").CVAClassProp) | undefined) => string;
75
+ heading: (props?: import("../../utils/cva/types.js").CVAClassProp | undefined) => string;
75
76
  header: (props?: (import("../../utils/cva/types.js").CVAVariantSchema<{
76
77
  size: {
77
78
  small: string;
@@ -208,6 +209,7 @@ export declare const setAccordionTheme: (theme: InferComponentTheme<{
208
209
  false: string;
209
210
  };
210
211
  }> & import("../../utils/cva/types.js").CVAClassProp) | undefined) => string;
212
+ heading: (props?: import("../../utils/cva/types.js").CVAClassProp | undefined) => string;
211
213
  header: (props?: (import("../../utils/cva/types.js").CVAVariantSchema<{
212
214
  size: {
213
215
  small: string;
@@ -342,6 +344,7 @@ export declare const useAccordionTheme: import("../../utils/cva/theme.js").UseCo
342
344
  false: string;
343
345
  };
344
346
  }> & import("../../utils/cva/types.js").CVAClassProp) | undefined) => string;
347
+ heading: (props?: import("../../utils/cva/types.js").CVAClassProp | undefined) => string;
345
348
  header: (props?: (import("../../utils/cva/types.js").CVAVariantSchema<{
346
349
  size: {
347
350
  small: string;
@@ -117,6 +117,9 @@ const defaultAccordionTrigger = cva({
117
117
  variant: 'classic'
118
118
  }
119
119
  });
120
+ // The heading element (`h2`-`h6`) that wraps each trigger button. Headings render without browser
121
+ // margins or type scale; the trigger owns the row's look.
122
+ const defaultAccordionHeading = cva({ base: 'm-0 w-full text-[length:inherit] font-[inherit]' });
120
123
  const defaultAccordionHeader = cva({
121
124
  base: 'flex-1 flex flex-col items-start',
122
125
  variants: {
@@ -225,6 +228,7 @@ export const accordionTheme = {
225
228
  motion: defaultAccordionMotion,
226
229
  root: defaultAccordion,
227
230
  item: defaultAccordionItem,
231
+ heading: defaultAccordionHeading,
228
232
  header: defaultAccordionHeader,
229
233
  trigger: defaultAccordionTrigger,
230
234
  title: defaultAccordionTitle,
@@ -1,3 +1,4 @@
1
1
  export { default as Accordion } from './Accordion.svelte';
2
2
  export type { AccordionProps, ConditionalKeys } from './accordion.props.js';
3
3
  export { accordionTheme, setAccordionTheme, useAccordionTheme, type AccordionTheme, type AccordionThemeProps } from './accordion.theme.js';
4
+ export { accordionDataAttributes, accordionCssVariables, type AccordionDataAttribute, type AccordionCssVariable } from './accordion.attributes.js';
@@ -1,2 +1,3 @@
1
1
  export { default as Accordion } from './Accordion.svelte';
2
2
  export { accordionTheme, setAccordionTheme, useAccordionTheme } from './accordion.theme.js';
3
+ export { accordionDataAttributes, accordionCssVariables } from './accordion.attributes.js';
@@ -2,6 +2,30 @@ export declare const audioPlayerVolumeControlSliderTheme: {
2
2
  valueLabel: {
3
3
  base: string;
4
4
  };
5
+ motion?: {
6
+ in?: {
7
+ delay?: number | undefined;
8
+ duration?: number | undefined;
9
+ easing?: import("../../transitions/easingFunctions.js").Easing | undefined;
10
+ x?: number | `${number}%` | undefined;
11
+ y?: number | `${number}%` | undefined;
12
+ scale?: number | undefined;
13
+ opacity?: number | undefined;
14
+ axis?: "x" | "y" | undefined;
15
+ } | undefined;
16
+ out?: {
17
+ delay?: number | undefined;
18
+ duration?: number | undefined;
19
+ easing?: import("../../transitions/easingFunctions.js").Easing | undefined;
20
+ x?: number | `${number}%` | undefined;
21
+ y?: number | `${number}%` | undefined;
22
+ scale?: number | undefined;
23
+ opacity?: number | undefined;
24
+ axis?: "x" | "y" | undefined;
25
+ } | undefined;
26
+ duration?: (keyof import("../Theme/theme.designTokens.js").MotionTokens["duration"] | number) | undefined;
27
+ easing?: (keyof import("../Theme/theme.designTokens.js").MotionTokens["easing"] | import("../../transitions/easingFunctions.js").Easing) | undefined;
28
+ } | undefined;
5
29
  root?: ({
6
30
  density?: Partial<{
7
31
  normal: string;
@@ -46,6 +70,7 @@ export declare const audioPlayerVolumeControlSliderTheme: {
46
70
  base?: string;
47
71
  }) | undefined;
48
72
  label?: ({
73
+ disabled?: Partial<{}> | undefined;
49
74
  size?: Partial<{
50
75
  small: string;
51
76
  normal: string;
@@ -146,12 +171,12 @@ export declare const audioPlayerVolumeControlSliderTheme: {
146
171
  normal: string;
147
172
  large: string;
148
173
  }> | undefined;
149
- active?: Partial<{}> | undefined;
150
174
  edge?: Partial<{
151
175
  none: string;
152
176
  start: string;
153
177
  end: string;
154
178
  }> | undefined;
179
+ active?: Partial<{}> | undefined;
155
180
  } & {
156
181
  base?: string;
157
182
  } & {
@@ -173,6 +198,7 @@ export declare const audioPlayerVolumeControlSliderTheme: {
173
198
  base?: string;
174
199
  }) | undefined;
175
200
  description?: ({
201
+ disabled?: Partial<{}> | undefined;
176
202
  size?: Partial<{
177
203
  small: string;
178
204
  normal: string;
@@ -184,6 +210,7 @@ export declare const audioPlayerVolumeControlSliderTheme: {
184
210
  base?: string;
185
211
  }) | undefined;
186
212
  helper?: ({
213
+ disabled?: Partial<{}> | undefined;
187
214
  size?: Partial<{
188
215
  small: string;
189
216
  normal: string;
@@ -237,6 +264,7 @@ export declare const audioPlayerVolumeControlSliderTheme: {
237
264
  thick: string;
238
265
  contained: string;
239
266
  }> | undefined;
267
+ readOnly?: Partial<{}> | undefined;
240
268
  orientation?: Partial<{
241
269
  horizontal: string;
242
270
  vertical: string;
@@ -303,6 +331,7 @@ export declare const audioPlayerVolumeControlSliderTheme: {
303
331
  thick: string;
304
332
  contained: string;
305
333
  }> | undefined;
334
+ readOnly?: Partial<{}> | undefined;
306
335
  orientation?: Partial<{
307
336
  horizontal: string;
308
337
  vertical: string;
@@ -324,6 +353,7 @@ export declare const audioPlayerVolumeControlSliderTheme: {
324
353
  thick: string;
325
354
  contained: string;
326
355
  }> | undefined;
356
+ readOnly?: Partial<{}> | undefined;
327
357
  orientation?: Partial<{
328
358
  horizontal: string;
329
359
  vertical: string;
@@ -1,7 +1,8 @@
1
1
  <script lang="ts">
2
- import type { AvatarProps } from './avatar.props.js';
2
+ import type { AvatarProps, AvatarStatus } from './avatar.props.js';
3
3
  import { useAvatarTheme } from './avatar.theme.js';
4
4
  import Slot from '../Slot/Slot.svelte';
5
+ import { untrack } from 'svelte';
5
6
  import type { Attachment } from 'svelte/attachments';
6
7
 
7
8
  let {
@@ -12,7 +13,10 @@
12
13
  loading = $bindable(false),
13
14
  suffix,
14
15
  prefix,
15
- delay = 0,
16
+ image,
17
+ fallbackDelay = 0,
18
+ revealDelay,
19
+ delay,
16
20
  class: className,
17
21
  theme,
18
22
  ...attachments
@@ -22,20 +26,35 @@
22
26
  // the initials, so neither is part of the public prop surface the way `loading` is.
23
27
  let loaded = $state(false);
24
28
  let errored = $state(false);
29
+ // Set once `fallbackDelay` has run out while the image is still loading.
30
+ let fallbackReady = $state(false);
31
+
32
+ // `delay` is the old name of `revealDelay`; the new prop wins when both are given.
33
+ const effectiveRevealDelay = $derived(Math.max(0, revealDelay ?? delay ?? 0));
34
+ const effectiveFallbackDelay = $derived(Math.max(0, fallbackDelay));
25
35
 
26
36
  const imageLoading = $derived.by<Attachment<HTMLImageElement>>(() => {
27
- const revealDelay = delay;
37
+ const revealMs = effectiveRevealDelay;
38
+ const fallbackMs = effectiveFallbackDelay;
28
39
  // Reading `src` here re-creates the attachment for every new image, which is what resets
29
40
  // the per-image state below: a failed URL must not decide the outcome of the next one.
30
41
  void src;
31
42
 
32
43
  return (image) => {
33
44
  let revealTimer: ReturnType<typeof setTimeout> | undefined;
45
+ let fallbackTimer: ReturnType<typeof setTimeout> | undefined;
34
46
  const setLoading = (next: boolean) => {
35
- if (loading !== next) loading = next;
47
+ if (untrack(() => loading) !== next) loading = next;
36
48
  };
37
49
  loaded = false;
38
50
  errored = false;
51
+ fallbackReady = fallbackMs === 0;
52
+
53
+ const clearFallbackTimer = () => {
54
+ if (fallbackTimer === undefined) return;
55
+ clearTimeout(fallbackTimer);
56
+ fallbackTimer = undefined;
57
+ };
39
58
 
40
59
  const clearRevealTimer = () => {
41
60
  if (revealTimer === undefined) return;
@@ -44,17 +63,21 @@
44
63
  };
45
64
 
46
65
  const settle = (failed: boolean) => {
66
+ clearFallbackTimer();
47
67
  errored = failed;
48
68
  loaded = !failed;
49
69
  setLoading(false);
50
70
  };
51
71
 
52
72
  const handleLoad = () => {
73
+ // A received image ends the fallback wait: the initials must not appear while the
74
+ // reveal delay is still running for an image that already arrived.
75
+ clearFallbackTimer();
53
76
  clearRevealTimer();
54
77
  revealTimer = setTimeout(() => {
55
78
  settle(false);
56
79
  revealTimer = undefined;
57
- }, revealDelay);
80
+ }, revealMs);
58
81
  };
59
82
 
60
83
  const handleError = () => {
@@ -69,10 +92,17 @@
69
92
  settle(image.naturalWidth === 0 || image.naturalHeight === 0);
70
93
  } else {
71
94
  setLoading(true);
95
+ if (fallbackMs > 0) {
96
+ fallbackTimer = setTimeout(() => {
97
+ fallbackTimer = undefined;
98
+ fallbackReady = true;
99
+ }, fallbackMs);
100
+ }
72
101
  }
73
102
 
74
103
  return () => {
75
104
  clearRevealTimer();
105
+ clearFallbackTimer();
76
106
  setLoading(false);
77
107
  image.removeEventListener('load', handleLoad);
78
108
  image.removeEventListener('error', handleError);
@@ -88,18 +118,38 @@
88
118
  .map((word: string) => word[0])
89
119
  .join('') || ''
90
120
  );
91
- const showsImage = $derived(!!src && loaded && !errored);
121
+ const status = $derived<AvatarStatus>(
122
+ !src ? 'idle' : errored ? 'error' : loaded ? 'loaded' : 'loading'
123
+ );
124
+ // The initials wait for `fallbackDelay` while the image loads and are never rendered for an
125
+ // image that arrives inside it. A failed image or a missing `src` shows them at once, and a
126
+ // loaded image keeps already-visible initials mounted underneath for the crossfade.
127
+ const showsInitials = $derived(
128
+ status === 'idle' || status === 'error' || fallbackReady || effectiveFallbackDelay === 0
129
+ );
130
+ const decorative = $derived(alt === '');
92
131
  </script>
93
132
 
94
- <div data-avatar class={classes.root({ size, className })} data-size={size} {...attachments}>
133
+ <!-- The avatar is one image with one name: the `<img>` is empty-alt and the initials are
134
+ hidden from assistive technology, so a loading, loaded or failed image reads the same. -->
135
+ <div
136
+ data-avatar
137
+ role={decorative ? undefined : 'img'}
138
+ aria-label={decorative ? undefined : (alt ?? name)}
139
+ aria-hidden={decorative ? 'true' : undefined}
140
+ class={classes.root({ size, className })}
141
+ data-size={size}
142
+ data-status={status}
143
+ {...attachments}
144
+ >
95
145
  <Slot render={prefix} class={classes.avatarPrefix({ size })} />
96
146
  {#if src}
97
147
  <!-- The image stays mounted for as long as `src` is set: unmounting it on failure would
98
148
  tear down the listeners that a later `src` needs. The initials cover it instead. -->
99
- <img {@attach imageLoading} {src} alt={alt ?? name} class={classes.avatarImage({ size })} />
149
+ <img {...image} {@attach imageLoading} {src} alt="" class={classes.avatarImage({ size })} />
100
150
  {/if}
101
- {#if !showsImage}
102
- <div class={classes.avatarInitials({ size })}>
151
+ {#if showsInitials}
152
+ <div aria-hidden="true" class={classes.avatarInitials({ size })}>
103
153
  {initials}
104
154
  </div>
105
155
  {/if}
@@ -12,6 +12,9 @@
12
12
  theme,
13
13
  size,
14
14
  delay,
15
+ revealDelay,
16
+ fallbackDelay,
17
+ image,
15
18
  loading,
16
19
  prefix,
17
20
  suffix,
@@ -34,6 +37,9 @@
34
37
  index,
35
38
  avatarProps: {
36
39
  delay,
40
+ revealDelay,
41
+ fallbackDelay,
42
+ image,
37
43
  size,
38
44
  loading,
39
45
  prefix,
@@ -43,6 +49,9 @@
43
49
  {:else}
44
50
  <Avatar
45
51
  {delay}
52
+ {revealDelay}
53
+ {fallbackDelay}
54
+ {image}
46
55
  {size}
47
56
  {loading}
48
57
  {prefix}
@@ -1 +1 @@
1
- export declare const avatarDescription = "\n# Avatar Component\n\nThe Avatar component displays a user's profile picture with fallback initials. It supports a bindable loading flag, various sizes, and badges (prefix/suffix). The AvatarGroup component displays multiple avatars with overlap.\n\n## Basic Usage\n\n```svelte\n<Avatar name=\"John Doe\" src=\"https://example.com/avatar.png\" />\n```\n\n## Props\n\n### Core Props\n- **name**: string (required) - Display name; its initials are the fallback when no image renders\n- **src**: string - Image URL; omit it, or let it fail, to render the initials instead\n- **alt**: string - Alternative text for the image (defaults to `name`)\n- **size**: 'small' | 'normal' | 'large' (default: 'normal')\n - small: 24px (1.5rem)\n - normal: 32px (2rem)\n - large: 40px (2.5rem)\n\n### Loading Props\n- **delay**: number (default: 0) - Delay in milliseconds before showing avatar\n- **loading**: boolean (default: false, bindable) - True while the image request is in flight; false with no `src`, and false once the image has loaded or failed. A failed image is reported by rendering the initials.\n\n### Content Slots\n- **prefix**: Slot - Badge/icon positioned at bottom-left\n- **suffix**: Slot - Badge/icon positioned at bottom-right\n\n### Styling Props\n- **class**: string - Additional CSS classes\n- **theme**: ComponentTheme - Custom theme overrides\n\n## Avatar Structure\n\n```\n<Avatar>\n\t<AvatarImage /> <!-- Profile picture -->\n\t<AvatarPrefix /> <!-- Behind the image (bottom-left) -->\n\t<AvatarSuffix /> <!-- Absolute position (bottom-right) -->\n\t<AvatarInitials /> <!-- Fallback initials -->\n</Avatar>\n```\n\n## AvatarGroup Props\n\n### Core Props\n- **items**: Array<{ src?: string; alt?: string; name: string } & T> (required) - Avatar items\n- **max**: number - Maximum number of avatars to show before \"+N\" indicator\n- **size**: 'small' | 'normal' | 'large' (default: 'normal')\n\n### Content Slots\n- **avatar**: Snippet<{ item: T; index: number; avatarProps }> - Custom avatar rendering\n- **remainingCount**: Snippet<{ items: T[]; remaining: number }> - Custom \"+N\" counter rendering\n\n### Styling Props\n- **class**: string - Additional CSS classes\n- **theme**: ComponentTheme - Custom theme overrides\n\n## AvatarGroup Structure\n\n```\n<AvatarGroup>\n\t<Avatar />\n\t<Avatar />\n\t<Avatar />\n\t<AvatarGroupCount /> <!-- \"+N\" indicator -->\n</AvatarGroup>\n```\n\n## Examples\n\n### Basic Avatar\n```svelte\n<Avatar name=\"Jane Smith\" src=\"/images/jane.jpg\" />\n```\n\n### Without Image (Initials)\n```svelte\n<Avatar name=\"John Doe\" />\n<!-- Displays \"JD\" -->\n```\n\n### Different Sizes\n```svelte\n<Avatar size=\"small\" name=\"Small User\" />\n<Avatar size=\"normal\" name=\"Normal User\" />\n<Avatar size=\"large\" name=\"Large User\" />\n```\n\n### With Status Badge (Prefix)\n```svelte\n<Avatar name=\"John Doe\">\n\t{#snippet prefix()}\n\t\t<div class=\"w-2 h-2 rounded-full bg-success\"></div>\n\t{/snippet}\n</Avatar>\n```\n\n### With Icon Badge (Suffix)\n```svelte\n<script lang=\"ts\">\n\timport { Avatar } from 'entasis/avatar';\n\timport { checkIcon } from 'entasis/icons/check';\n</script>\n\n<Avatar name=\"Jane Smith\">\n\t{#snippet suffix()}\n\t\t{@render checkIcon({ class: 'text-success' })}\n\t{/snippet}\n</Avatar>\n```\n\n### With Loading State\n```svelte\n<script lang=\"ts\">\n\tlet loading = $state(false);\n</script>\n\n<Avatar name=\"John Doe\" src=\"/avatar.jpg\" bind:loading />\n{loading}\n```\n\n### Avatar Group\n```svelte\n<script>\n\tlet items = [\n\t\t{ name: 'John Doe', src: '/john.jpg' },\n\t\t{ name: 'Jane Smith', src: '/jane.jpg' },\n\t\t{ name: 'Bob Johnson', src: '/bob.jpg' }\n\t];\n</script>\n\n<AvatarGroup {items} />\n```\n\n### Avatar Group with Max Limit\n```svelte\n<AvatarGroup \n\titems={[\n\t\t{ name: 'User 1' },\n\t\t{ name: 'User 2' },\n\t\t{ name: 'User 3' },\n\t\t{ name: 'User 4' },\n\t\t{ name: 'User 5' }\n\t]}\n\tmax={3}\n/>\n<!-- Shows 3 avatars + \"+2\" indicator -->\n```\n\n### Custom Avatar in Group\n```svelte\n<script lang=\"ts\">\n\timport { Avatar, AvatarGroup } from 'entasis/avatar';\n\n\tlet items = [{ name: 'John Doe' }, { name: 'Jane Smith' }];\n</script>\n\n<AvatarGroup {items}>\n\t{#snippet avatar({ item, index, avatarProps })}\n\t\t<Avatar {...avatarProps} {...item}>\n\t\t\t{#snippet suffix()}\n\t\t\t\t<span class=\"text-xs\">{index + 1}</span>\n\t\t\t{/snippet}\n\t\t</Avatar>\n\t{/snippet}\n</AvatarGroup>\n```\n\n### Custom Remaining Count\n```svelte\n<script lang=\"ts\">\n\timport { AvatarGroup } from 'entasis/avatar';\n\n\tlet items = [{ name: 'User 1' }, { name: 'User 2' }, { name: 'User 3' }, { name: 'User 4' }];\n</script>\n\n<AvatarGroup {items} max={3}>\n\t{#snippet remainingCount({ remaining })}\n\t\t<div class=\"avatar-count\">\n\t\t\t+{remaining} more\n\t\t</div>\n\t{/snippet}\n</AvatarGroup>\n```\n\n### Status Indicators\n```svelte\n<Avatar name=\"Online User\">\n\t{#snippet suffix()}\n\t\t<div class=\"w-3 h-3 rounded-full bg-success border-2 border-surface\"></div>\n\t{/snippet}\n</Avatar>\n\n<Avatar name=\"Away User\">\n\t{#snippet suffix()}\n\t\t<div class=\"w-3 h-3 rounded-full bg-warning border-2 border-surface\"></div>\n\t{/snippet}\n</Avatar>\n```\n\n## Accessibility\n\n- `alt` defaults to `name`, so the image always carries alt text\n- Fallback to initials when image fails to load\n- Proper foreground for initials display\n- The image loading flag is bindable\n\n## Notes\n\n- Initials are automatically extracted from the name (first letter of first two words)\n- Avatar image uses object-cover to maintain aspect ratio\n- Prefix badge is positioned at bottom-left, behind the image\n- Suffix badge is positioned at bottom-right, absolute positioning\n- Avatar group creates overlapping effect with negative margins\n- `loading` is true only while the image request is in flight; a failed image falls back to the initials\n- Each new `src` is loaded from scratch: `loading` goes true again and a working URL recovers the picture after a broken one\n\n## Theme Customization\n\nThe Avatar component uses a theme object that can be customized using the `theme` prop or by setting a global theme.\n\n### Theme Structure\n\nThe theme object contains the following parts:\n- **root**: Main avatar container styles\n- **avatarImage**: Avatar image element styles\n- **avatarPrefix**: Prefix badge styles (bottom-left)\n- **avatarSuffix**: Suffix badge styles (bottom-right)\n- **avatarInitials**: Fallback initials display styles\n\n### Theme Type Definition\n\n```typescript\nimport type { AvatarThemeProps } from 'entasis/avatar';\n\n// Example theme customization\nconst customTheme: AvatarThemeProps = {\n root: {\n base: 'custom-base-classes',\n size: {\n small: 'size-6',\n normal: 'size-8',\n large: 'size-10'\n }\n },\n avatarImage: {\n size: {\n small: '',\n normal: '',\n large: ''\n }\n },\n avatarPrefix: {\n size: {\n small: 'size-5 right-[-0.25rem] bottom-[-0.25rem]',\n normal: 'size-4 right-[-0.3rem] bottom-[-0.2rem]',\n large: 'size-5 left-[-0.4rem] bottom-[-0.4rem]'\n }\n },\n avatarSuffix: {\n size: {\n small: 'size-3.5 left-[-0.25rem] bottom-[-0.25rem]',\n normal: 'size-4 right-[-0.3rem] bottom-[-0.3rem]',\n large: 'size-3.5 right-[-0.4rem] bottom-[-0.4rem]'\n }\n },\n avatarInitials: {\n size: {\n small: 'text-xs',\n normal: 'text-sm',\n large: 'text-base'\n }\n }\n};\n```\n\n### Available Variants\n\n**root**:\n- base: Base classes applied to all avatars\n- Variants:\n - size: 'small' | 'normal' | 'large' - Controls avatar dimensions (6/8/10)\n\n**avatarImage**:\n- base: Base classes for avatar image\n- Variants:\n - size: 'small' | 'normal' | 'large' - Inherited from avatar size\n\n**avatarPrefix**:\n- base: Base classes for prefix badge\n- Variants:\n - size: 'small' | 'normal' | 'large' - Badge size and positioning based on avatar size\n\n**avatarSuffix**:\n- base: Base classes for suffix badge\n- Variants:\n - size: 'small' | 'normal' | 'large' - Badge size and positioning based on avatar size\n\n**avatarInitials**:\n- base: Base classes for initials fallback\n- Variants:\n - size: 'small' | 'normal' | 'large' - Text size based on avatar size\n\n### Usage Examples\n\n**Basic Theme Override**:\n```svelte\n<Avatar \n name=\"John Doe\"\n theme={{\n root: {\n base: 'ring-2 ring-primary',\n size: {\n large: 'size-12'\n }\n },\n avatarInitials: {\n size: {\n large: 'text-lg'\n }\n }\n }}\n/>\n```\n\n**Custom Badge Styling**:\n```svelte\n<Avatar\n name=\"Jane Smith\"\n theme={{\n avatarSuffix: {\n size: {\n normal: 'size-5 ring-2 ring-white'\n }\n }\n }}\n>\n {#snippet suffix()}\n <div class=\"w-3 h-3 bg-success rounded-full\"></div>\n {/snippet}\n</Avatar>\n```\n\n**Global Theme Setting**:\n```svelte\n<script>\n import { setAvatarTheme } from './index.ts';\n \n setAvatarTheme({\n root: {\n base: 'ring-2 ring-neutral-muted transition-all',\n size: {\n normal: 'size-10'\n }\n },\n avatarInitials: {\n base: 'font-bold'\n }\n });\n</script>\n```\n";
1
+ export declare const avatarDescription = "\n# Avatar Component\n\nThe Avatar component displays a user's profile picture with fallback initials. It supports a bindable loading flag, various sizes, and badges (prefix/suffix). The AvatarGroup component displays multiple avatars with overlap.\n\n## Basic Usage\n\n```svelte\n<Avatar name=\"John Doe\" src=\"https://example.com/avatar.png\" />\n```\n\n## Props\n\n### Core Props\n- **name**: string (required) - Display name; its initials are the fallback when no image renders\n- **src**: string - Image URL; omit it, or let it fail, to render the initials instead\n- **alt**: string - Accessible name of the whole avatar (defaults to `name`). An empty string makes the avatar decorative: it is hidden from assistive technology\n- **size**: 'small' | 'normal' | 'large' (default: 'normal')\n - small: 24px (1.5rem)\n - normal: 32px (2rem)\n - large: 40px (2.5rem)\n\n### Image Props\n- **image**: { srcset, sizes, crossorigin, referrerpolicy, loading, decoding, fetchpriority } - Native attributes forwarded to the `<img>`. Use `image={{ loading: 'lazy' }}` to defer offscreen images: the initials stay on screen until the browser has fetched the picture. (The avatar's own `loading` prop is the bindable in-flight flag, not the `<img>` attribute.)\n\n### Loading Props\n- **fallbackDelay**: number (default: 0) - Delay in milliseconds before the initials render while the image is still loading. Until then the surface stays empty, so a fast image never flashes the fallback. A failed image or a missing `src` shows the initials immediately\n- **revealDelay**: number (default: 0) - Delay in milliseconds before a loaded image is revealed\n- **delay**: number - Deprecated alias of `revealDelay`; it never delays the initials\n- **loading**: boolean (default: false, bindable) - True while the image request is in flight; false with no `src`, and false once the image has loaded or failed. A failed image is reported by rendering the initials.\n\n### Content Slots\n- **prefix**: Slot - Badge/icon positioned at bottom-left\n- **suffix**: Slot - Badge/icon positioned at bottom-right\n\n### Styling Props\n- **class**: string - Additional CSS classes\n- **theme**: ComponentTheme - Custom theme overrides\n\n## Avatar Structure\n\n```\n<Avatar>\n\t<AvatarImage /> <!-- Profile picture -->\n\t<AvatarPrefix /> <!-- Behind the image (bottom-left) -->\n\t<AvatarSuffix /> <!-- Absolute position (bottom-right) -->\n\t<AvatarInitials /> <!-- Fallback initials -->\n</Avatar>\n```\n\n## AvatarGroup Props\n\n### Core Props\n- **items**: Array<{ src?: string; alt?: string; name: string } & T> (required) - Avatar items\n- **max**: number - Maximum number of avatars to show before \"+N\" indicator\n- **size**: 'small' | 'normal' | 'large' (default: 'normal')\n- **image**, **fallbackDelay**, **revealDelay**, **loading**: forwarded to every avatar\n\n### Content Slots\n- **avatar**: Snippet<{ item: T; index: number; avatarProps }> - Custom avatar rendering\n- **remainingCount**: Snippet<{ items: T[]; remaining: number }> - Custom \"+N\" counter rendering\n\n### Styling Props\n- **class**: string - Additional CSS classes\n- **theme**: ComponentTheme - Custom theme overrides\n\n## AvatarGroup Structure\n\n```\n<AvatarGroup>\n\t<Avatar />\n\t<Avatar />\n\t<Avatar />\n\t<AvatarGroupCount /> <!-- \"+N\" indicator -->\n</AvatarGroup>\n```\n\n## Examples\n\n### Basic Avatar\n```svelte\n<Avatar name=\"Jane Smith\" src=\"/images/jane.jpg\" />\n```\n\n### Without Image (Initials)\n```svelte\n<Avatar name=\"John Doe\" />\n<!-- Displays \"JD\" -->\n```\n\n### Different Sizes\n```svelte\n<Avatar size=\"small\" name=\"Small User\" />\n<Avatar size=\"normal\" name=\"Normal User\" />\n<Avatar size=\"large\" name=\"Large User\" />\n```\n\n### With Status Badge (Prefix)\n```svelte\n<Avatar name=\"John Doe\">\n\t{#snippet prefix()}\n\t\t<div class=\"w-2 h-2 rounded-full bg-success\"></div>\n\t{/snippet}\n</Avatar>\n```\n\n### With Icon Badge (Suffix)\n```svelte\n<script lang=\"ts\">\n\timport { Avatar } from 'entasis/avatar';\n\timport { checkIcon } from 'entasis/icons/check';\n</script>\n\n<Avatar name=\"Jane Smith\">\n\t{#snippet suffix()}\n\t\t{@render checkIcon({ class: 'text-success' })}\n\t{/snippet}\n</Avatar>\n```\n\n### With Loading State\n```svelte\n<script lang=\"ts\">\n\tlet loading = $state(false);\n</script>\n\n<Avatar name=\"John Doe\" src=\"/avatar.jpg\" bind:loading />\n{loading}\n```\n\n### Avatar Group\n```svelte\n<script>\n\tlet items = [\n\t\t{ name: 'John Doe', src: '/john.jpg' },\n\t\t{ name: 'Jane Smith', src: '/jane.jpg' },\n\t\t{ name: 'Bob Johnson', src: '/bob.jpg' }\n\t];\n</script>\n\n<AvatarGroup {items} />\n```\n\n### Avatar Group with Max Limit\n```svelte\n<AvatarGroup \n\titems={[\n\t\t{ name: 'User 1' },\n\t\t{ name: 'User 2' },\n\t\t{ name: 'User 3' },\n\t\t{ name: 'User 4' },\n\t\t{ name: 'User 5' }\n\t]}\n\tmax={3}\n/>\n<!-- Shows 3 avatars + \"+2\" indicator -->\n```\n\n### Custom Avatar in Group\n```svelte\n<script lang=\"ts\">\n\timport { Avatar, AvatarGroup } from 'entasis/avatar';\n\n\tlet items = [{ name: 'John Doe' }, { name: 'Jane Smith' }];\n</script>\n\n<AvatarGroup {items}>\n\t{#snippet avatar({ item, index, avatarProps })}\n\t\t<Avatar {...avatarProps} {...item}>\n\t\t\t{#snippet suffix()}\n\t\t\t\t<span class=\"text-xs\">{index + 1}</span>\n\t\t\t{/snippet}\n\t\t</Avatar>\n\t{/snippet}\n</AvatarGroup>\n```\n\n### Custom Remaining Count\n```svelte\n<script lang=\"ts\">\n\timport { AvatarGroup } from 'entasis/avatar';\n\n\tlet items = [{ name: 'User 1' }, { name: 'User 2' }, { name: 'User 3' }, { name: 'User 4' }];\n</script>\n\n<AvatarGroup {items} max={3}>\n\t{#snippet remainingCount({ remaining })}\n\t\t<div class=\"avatar-count\">\n\t\t\t+{remaining} more\n\t\t</div>\n\t{/snippet}\n</AvatarGroup>\n```\n\n### Status Indicators\n```svelte\n<Avatar name=\"Online User\">\n\t{#snippet suffix()}\n\t\t<div class=\"w-3 h-3 rounded-full bg-success border-2 border-surface\"></div>\n\t{/snippet}\n</Avatar>\n\n<Avatar name=\"Away User\">\n\t{#snippet suffix()}\n\t\t<div class=\"w-3 h-3 rounded-full bg-warning border-2 border-surface\"></div>\n\t{/snippet}\n</Avatar>\n```\n\n## Accessibility\n\n- The root is `role=\"img\"` named by `alt ?? name`, so a loading, loaded or failed image and an avatar without `src` are all announced as one image with one name\n- The inner `<img>` has an empty `alt` and the initials are `aria-hidden`, so nothing is read twice\n- `alt=\"\"` marks the avatar decorative (`aria-hidden` on the root), for an avatar next to its visible name\n- Because the root is an image, prefix and suffix content is presentational to assistive technology; keep interactive controls outside the avatar\n- The root carries `data-status=\"idle | loading | loaded | error\"` (`idle` means no `src`). The default theme crossfades the image over the initials on it; style it with `group-data-[status=loaded]/avatar:` or `[data-status=error]`\n- The image loading flag is bindable\n\n## Notes\n\n- Initials are automatically extracted from the name (first letter of first two words)\n- Avatar image uses object-cover to maintain aspect ratio\n- Prefix badge is positioned at bottom-left, behind the image\n- Suffix badge is positioned at bottom-right, absolute positioning\n- Avatar group creates overlapping effect with negative margins\n- `loading` is true only while the image request is in flight; a failed image falls back to the initials\n- Each new `src` is loaded from scratch: `loading` goes true again and a working URL recovers the picture after a broken one\n\n## Theme Customization\n\nThe Avatar component uses a theme object that can be customized using the `theme` prop or by setting a global theme.\n\n### Theme Structure\n\nThe theme object contains the following parts:\n- **root**: Main avatar container styles\n- **avatarImage**: Avatar image element styles\n- **avatarPrefix**: Prefix badge styles (bottom-left)\n- **avatarSuffix**: Suffix badge styles (bottom-right)\n- **avatarInitials**: Fallback initials display styles\n\n### Theme Type Definition\n\n```typescript\nimport type { AvatarThemeProps } from 'entasis/avatar';\n\n// Example theme customization\nconst customTheme: AvatarThemeProps = {\n root: {\n base: 'custom-base-classes',\n size: {\n small: 'size-6',\n normal: 'size-8',\n large: 'size-10'\n }\n },\n avatarImage: {\n size: {\n small: '',\n normal: '',\n large: ''\n }\n },\n avatarPrefix: {\n size: {\n small: 'size-5 right-[-0.25rem] bottom-[-0.25rem]',\n normal: 'size-4 right-[-0.3rem] bottom-[-0.2rem]',\n large: 'size-5 left-[-0.4rem] bottom-[-0.4rem]'\n }\n },\n avatarSuffix: {\n size: {\n small: 'size-3.5 left-[-0.25rem] bottom-[-0.25rem]',\n normal: 'size-4 right-[-0.3rem] bottom-[-0.3rem]',\n large: 'size-3.5 right-[-0.4rem] bottom-[-0.4rem]'\n }\n },\n avatarInitials: {\n size: {\n small: 'text-xs',\n normal: 'text-sm',\n large: 'text-base'\n }\n }\n};\n```\n\n### Available Variants\n\n**root**:\n- base: Base classes applied to all avatars\n- Variants:\n - size: 'small' | 'normal' | 'large' - Controls avatar dimensions (6/8/10)\n\n**avatarImage**:\n- base: Base classes for avatar image\n- Variants:\n - size: 'small' | 'normal' | 'large' - Inherited from avatar size\n\n**avatarPrefix**:\n- base: Base classes for prefix badge\n- Variants:\n - size: 'small' | 'normal' | 'large' - Badge size and positioning based on avatar size\n\n**avatarSuffix**:\n- base: Base classes for suffix badge\n- Variants:\n - size: 'small' | 'normal' | 'large' - Badge size and positioning based on avatar size\n\n**avatarInitials**:\n- base: Base classes for initials fallback\n- Variants:\n - size: 'small' | 'normal' | 'large' - Text size based on avatar size\n\n### Usage Examples\n\n**Basic Theme Override**:\n```svelte\n<Avatar \n name=\"John Doe\"\n theme={{\n root: {\n base: 'ring-2 ring-primary',\n size: {\n large: 'size-12'\n }\n },\n avatarInitials: {\n size: {\n large: 'text-lg'\n }\n }\n }}\n/>\n```\n\n**Custom Badge Styling**:\n```svelte\n<Avatar\n name=\"Jane Smith\"\n theme={{\n avatarSuffix: {\n size: {\n normal: 'size-5 ring-2 ring-white'\n }\n }\n }}\n>\n {#snippet suffix()}\n <div class=\"w-3 h-3 bg-success rounded-full\"></div>\n {/snippet}\n</Avatar>\n```\n\n**Global Theme Setting**:\n```svelte\n<script>\n import { setAvatarTheme } from './index.ts';\n \n setAvatarTheme({\n root: {\n base: 'ring-2 ring-neutral-muted transition-all',\n size: {\n normal: 'size-10'\n }\n },\n avatarInitials: {\n base: 'font-bold'\n }\n });\n</script>\n```\n";