entasis 0.11.0 → 0.12.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (839) hide show
  1. package/README.md +1 -1
  2. package/dist/attachments/disclosurePanel.svelte.d.ts +84 -0
  3. package/dist/attachments/disclosurePanel.svelte.js +277 -0
  4. package/dist/attachments/portal.d.ts +17 -1
  5. package/dist/attachments/portal.js +39 -2
  6. package/dist/attachments/spinnerOverlay.svelte.js +12 -0
  7. package/dist/attachments/transitionSize.d.ts +6 -0
  8. package/dist/attachments/transitionSize.js +30 -0
  9. package/dist/components/AIAskUserQuestion/AIAskUserQuestion.svelte +131 -17
  10. package/dist/components/AIAskUserQuestion/AIAskUserQuestionFileStep.svelte +26 -6
  11. package/dist/components/AIAskUserQuestion/AIAskUserQuestionFileStep.svelte.d.ts +6 -0
  12. package/dist/components/AIAskUserQuestion/AIAskUserQuestionFooter.svelte +27 -53
  13. package/dist/components/AIAskUserQuestion/AIAskUserQuestionFooter.svelte.d.ts +3 -4
  14. package/dist/components/AIAskUserQuestion/AIAskUserQuestionHeader.svelte +19 -16
  15. package/dist/components/AIAskUserQuestion/AIAskUserQuestionStep.svelte +180 -21
  16. package/dist/components/AIAskUserQuestion/AIAskUserQuestionStep.svelte.d.ts +9 -1
  17. package/dist/components/AIAskUserQuestion/AIAskUserQuestionSummary.svelte +56 -0
  18. package/dist/components/AIAskUserQuestion/AIAskUserQuestionSummary.svelte.d.ts +4 -0
  19. package/dist/components/AIAskUserQuestion/aiAskUserQuestion.mcp.d.ts +1 -1
  20. package/dist/components/AIAskUserQuestion/aiAskUserQuestion.mcp.js +26 -8
  21. package/dist/components/AIAskUserQuestion/aiAskUserQuestion.props.d.ts +62 -5
  22. package/dist/components/AIAskUserQuestion/aiAskUserQuestion.theme.d.ts +42 -0
  23. package/dist/components/AIAskUserQuestion/aiAskUserQuestion.theme.js +53 -12
  24. package/dist/components/AIAskUserQuestion/aiAskUserQuestionAnswers.d.ts +17 -1
  25. package/dist/components/AIAskUserQuestion/aiAskUserQuestionAnswers.js +56 -8
  26. package/dist/components/AIAskUserQuestion/index.d.ts +3 -1
  27. package/dist/components/AIAskUserQuestion/index.js +2 -0
  28. package/dist/components/AIAskUserQuestion/schemas.d.ts +44 -0
  29. package/dist/components/AIAskUserQuestion/schemas.js +10 -3
  30. package/dist/components/AIChat/AIChat.svelte +10 -0
  31. package/dist/components/AIChat/AIChat.svelte.d.ts +2 -2
  32. package/dist/components/AIChat/AIChatComposerSurface.svelte +23 -5
  33. package/dist/components/AIChat/AIChatComposerSurface.svelte.d.ts +5 -0
  34. package/dist/components/AIChat/AIChatSkeleton.svelte +29 -37
  35. package/dist/components/AIChat/AIChatSurface.svelte +30 -2
  36. package/dist/components/AIChat/AIChatSurface.svelte.d.ts +1 -1
  37. package/dist/components/AIChat/AIChatThreadSurface.svelte +11 -1
  38. package/dist/components/AIChat/AIChatThreadSurface.svelte.d.ts +3 -1
  39. package/dist/components/AIChat/aiChat.mcp.d.ts +1 -1
  40. package/dist/components/AIChat/aiChat.mcp.js +31 -15
  41. package/dist/components/AIChat/aiChat.props.d.ts +36 -10
  42. package/dist/components/AIChat/aiChat.theme.d.ts +9 -0
  43. package/dist/components/AIChat/aiChat.theme.js +21 -4
  44. package/dist/components/AIChat/aiChatSkeleton.props.d.ts +5 -0
  45. package/dist/components/AIChat/index.d.ts +1 -1
  46. package/dist/components/AIComposer/AIComposer.svelte +102 -5
  47. package/dist/components/AIComposer/AIComposer.svelte.d.ts +1 -0
  48. package/dist/components/AIComposer/AIComposerFooter.svelte +54 -12
  49. package/dist/components/AIComposer/AIComposerFooter.svelte.d.ts +2 -0
  50. package/dist/components/AIComposer/AIComposerQueue.svelte +8 -3
  51. package/dist/components/AIComposer/aiComposer.editor.theme.js +13 -2
  52. package/dist/components/AIComposer/aiComposer.mcp.d.ts +1 -1
  53. package/dist/components/AIComposer/aiComposer.mcp.js +15 -7
  54. package/dist/components/AIComposer/aiComposer.props.d.ts +27 -7
  55. package/dist/components/AIComposer/aiComposer.theme.d.ts +42 -3
  56. package/dist/components/AIComposer/aiComposer.theme.js +37 -5
  57. package/dist/components/AIComposer/aiComposerFileController.svelte.d.ts +20 -0
  58. package/dist/components/AIComposer/aiComposerFileController.svelte.js +75 -9
  59. package/dist/components/AIComposer/aiComposerSourceAdapter.js +22 -4
  60. package/dist/components/AIComposer/aiComposerSubmitController.svelte.d.ts +12 -0
  61. package/dist/components/AIComposer/aiComposerSubmitController.svelte.js +16 -6
  62. package/dist/components/AIContext/AIContext.svelte +7 -3
  63. package/dist/components/AIContext/aiContext.mcp.d.ts +1 -1
  64. package/dist/components/AIContext/aiContext.mcp.js +1 -1
  65. package/dist/components/AIContext/aiContext.props.d.ts +4 -1
  66. package/dist/components/AIContext/aiContext.theme.d.ts +3 -0
  67. package/dist/components/AIContext/aiContext.theme.js +7 -2
  68. package/dist/components/AIConversation/AIConversation.svelte.d.ts +2 -2
  69. package/dist/components/AIFilePreview/aiFilePreview.theme.js +1 -1
  70. package/dist/components/AIMarker/AIMarker.svelte +2 -0
  71. package/dist/components/AIMarker/aiMarker.mcp.d.ts +1 -1
  72. package/dist/components/AIMarker/aiMarker.mcp.js +2 -0
  73. package/dist/components/AIMarker/aiMarker.props.d.ts +3 -0
  74. package/dist/components/AIMarker/aiMarker.theme.js +2 -2
  75. package/dist/components/AIMessage/AIMessage.svelte +38 -16
  76. package/dist/components/AIMessage/aiMessage.mcp.d.ts +1 -1
  77. package/dist/components/AIMessage/aiMessage.mcp.js +20 -6
  78. package/dist/components/AIMessage/aiMessage.props.d.ts +18 -2
  79. package/dist/components/AIMessage/aiMessage.theme.d.ts +51 -6
  80. package/dist/components/AIMessage/aiMessage.theme.js +91 -32
  81. package/dist/components/AIMessageActions/AIMessageActions.svelte +19 -9
  82. package/dist/components/AIMessageActions/aiMessageActions.mcp.d.ts +1 -1
  83. package/dist/components/AIMessageActions/aiMessageActions.mcp.js +11 -3
  84. package/dist/components/AIMessageActions/aiMessageActions.theme.js +36 -9
  85. package/dist/components/AIModelSelector/AIModelSelector.svelte +25 -10
  86. package/dist/components/AIModelSelector/aiModelSelector.mcp.d.ts +1 -1
  87. package/dist/components/AIModelSelector/aiModelSelector.mcp.js +1 -1
  88. package/dist/components/AIModelSelector/aiModelSelector.theme.d.ts +3 -0
  89. package/dist/components/AIModelSelector/aiModelSelector.theme.js +7 -3
  90. package/dist/components/AIReasoning/AIReasoning.svelte +135 -38
  91. package/dist/components/AIReasoning/aiReasoning.mcp.d.ts +1 -1
  92. package/dist/components/AIReasoning/aiReasoning.mcp.js +11 -5
  93. package/dist/components/AIReasoning/aiReasoning.props.d.ts +15 -4
  94. package/dist/components/AIReasoning/aiReasoning.theme.d.ts +45 -0
  95. package/dist/components/AIReasoning/aiReasoning.theme.js +47 -7
  96. package/dist/components/AISuggestion/AISuggestion.svelte +2 -1
  97. package/dist/components/AISuggestion/AISuggestions.svelte +2 -1
  98. package/dist/components/AISuggestion/aiSuggestion.mcp.d.ts +1 -1
  99. package/dist/components/AISuggestion/aiSuggestion.mcp.js +8 -1
  100. package/dist/components/AISuggestion/aiSuggestion.props.d.ts +4 -1
  101. package/dist/components/AISuggestion/aiSuggestion.theme.js +1 -1
  102. package/dist/components/AISuggestion/aiSuggestions.props.d.ts +7 -0
  103. package/dist/components/AIThread/AIThread.svelte +378 -95
  104. package/dist/components/AIThread/AIThreadAskUserQuestion.svelte +1 -0
  105. package/dist/components/AIThread/AIThreadItems.svelte +266 -64
  106. package/dist/components/AIThread/AIThreadItems.svelte.d.ts +7 -3
  107. package/dist/components/AIThread/AIThreadMarker.svelte +8 -1
  108. package/dist/components/AIThread/AIThreadMarker.svelte.d.ts +1 -0
  109. package/dist/components/AIThread/aiThread.mcp.d.ts +1 -1
  110. package/dist/components/AIThread/aiThread.mcp.js +34 -20
  111. package/dist/components/AIThread/aiThread.props.d.ts +73 -8
  112. package/dist/components/AIThread/aiThread.theme.d.ts +78 -0
  113. package/dist/components/AIThread/aiThread.theme.js +108 -9
  114. package/dist/components/AIThread/index.d.ts +1 -1
  115. package/dist/components/AIThread/threadAskUserQuestion.d.ts +4 -1
  116. package/dist/components/AIThread/threadAskUserQuestion.js +8 -4
  117. package/dist/components/AIThread/threadRenderItems.d.ts +74 -3
  118. package/dist/components/AIThread/threadRenderItems.js +265 -77
  119. package/dist/components/AIThread/threadScrollController.d.ts +0 -8
  120. package/dist/components/AIThread/threadScrollController.js +2 -39
  121. package/dist/components/AIThread/threadTools.d.ts +11 -0
  122. package/dist/components/AIThread/threadTools.js +79 -0
  123. package/dist/components/AIThreadToc/AIThreadToc.svelte +188 -18
  124. package/dist/components/AIThreadToc/AIThreadTocPreview.svelte +25 -2
  125. package/dist/components/AIThreadToc/AIThreadTocPreview.svelte.d.ts +3 -0
  126. package/dist/components/AIThreadToc/aiThreadToc.d.ts +4 -2
  127. package/dist/components/AIThreadToc/aiThreadToc.js +17 -5
  128. package/dist/components/AIThreadToc/aiThreadToc.mcp.d.ts +1 -1
  129. package/dist/components/AIThreadToc/aiThreadToc.mcp.js +13 -3
  130. package/dist/components/AIThreadToc/aiThreadToc.props.d.ts +11 -0
  131. package/dist/components/AIThreadToc/aiThreadToc.theme.d.ts +3 -0
  132. package/dist/components/AIThreadToc/aiThreadToc.theme.js +15 -6
  133. package/dist/components/AITool/AITool.svelte +56 -21
  134. package/dist/components/AITool/AIToolCallList.svelte +79 -29
  135. package/dist/components/AITool/AIToolCallList.svelte.d.ts +6 -2
  136. package/dist/components/AITool/AIToolStatusMark.svelte +52 -0
  137. package/dist/components/AITool/AIToolStatusMark.svelte.d.ts +14 -0
  138. package/dist/components/AITool/AIToolValueSection.svelte +126 -28
  139. package/dist/components/AITool/AIToolValueSection.svelte.d.ts +6 -2
  140. package/dist/components/AITool/AIToolValueTree.svelte +11 -16
  141. package/dist/components/AITool/AIToolValueTree.svelte.d.ts +2 -3
  142. package/dist/components/AITool/aiTool.mcp.d.ts +1 -1
  143. package/dist/components/AITool/aiTool.mcp.js +36 -8
  144. package/dist/components/AITool/aiTool.props.d.ts +52 -6
  145. package/dist/components/AITool/aiTool.theme.d.ts +117 -39
  146. package/dist/components/AITool/aiTool.theme.js +144 -140
  147. package/dist/components/AITool/aiToolClock.svelte.d.ts +18 -0
  148. package/dist/components/AITool/aiToolClock.svelte.js +62 -0
  149. package/dist/components/AITool/aiToolPrimitiveThemes.d.ts +0 -2
  150. package/dist/components/AITool/aiToolPrimitiveThemes.js +0 -10
  151. package/dist/components/AITool/index.d.ts +2 -1
  152. package/dist/components/AITool/index.js +1 -0
  153. package/dist/components/AITool/toolRendering.d.ts +33 -1
  154. package/dist/components/AITool/toolRendering.js +179 -15
  155. package/dist/components/AITool/toolValueTree.d.ts +14 -1
  156. package/dist/components/AITool/toolValueTree.js +126 -27
  157. package/dist/components/Accordion/Accordion.svelte +109 -109
  158. package/dist/components/Accordion/Accordion.svelte.d.ts +0 -1
  159. package/dist/components/Accordion/AccordionPanel.svelte +64 -0
  160. package/dist/components/Accordion/AccordionPanel.svelte.d.ts +20 -0
  161. package/dist/components/Accordion/accordion.attributes.d.ts +24 -0
  162. package/dist/components/Accordion/accordion.attributes.js +20 -0
  163. package/dist/components/Accordion/accordion.mcp.d.ts +1 -1
  164. package/dist/components/Accordion/accordion.mcp.js +78 -22
  165. package/dist/components/Accordion/accordion.props.d.ts +54 -10
  166. package/dist/components/Accordion/accordion.theme.d.ts +3 -0
  167. package/dist/components/Accordion/accordion.theme.js +4 -0
  168. package/dist/components/Accordion/index.d.ts +1 -0
  169. package/dist/components/Accordion/index.js +1 -0
  170. package/dist/components/AudioPlayer/audioPlayerVolumeControl.slider.theme.d.ts +31 -1
  171. package/dist/components/Avatar/Avatar.svelte +60 -10
  172. package/dist/components/Avatar/AvatarGroup.svelte +9 -0
  173. package/dist/components/Avatar/avatar.mcp.d.ts +1 -1
  174. package/dist/components/Avatar/avatar.mcp.js +13 -5
  175. package/dist/components/Avatar/avatar.props.d.ts +28 -1
  176. package/dist/components/Avatar/avatar.theme.js +3 -3
  177. package/dist/components/Avatar/index.d.ts +1 -1
  178. package/dist/components/Breadcrumbs/breadcrumbs.mcp.d.ts +1 -1
  179. package/dist/components/Breadcrumbs/breadcrumbs.mcp.js +1 -1
  180. package/dist/components/Button/Button.svelte +35 -15
  181. package/dist/components/Button/button.mcp.d.ts +1 -1
  182. package/dist/components/Button/button.mcp.js +8 -4
  183. package/dist/components/Button/button.props.d.ts +23 -8
  184. package/dist/components/Button/button.theme.d.ts +12 -0
  185. package/dist/components/Button/button.theme.js +17 -4
  186. package/dist/components/ButtonGroup/buttonGroup.mcp.d.ts +1 -1
  187. package/dist/components/ButtonGroup/buttonGroup.mcp.js +1 -1
  188. package/dist/components/ButtonGroup/buttonGroup.props.d.ts +4 -1
  189. package/dist/components/Collapsible/Collapsible.svelte +125 -19
  190. package/dist/components/Collapsible/collapsible.attributes.d.ts +21 -0
  191. package/dist/components/Collapsible/collapsible.attributes.js +17 -0
  192. package/dist/components/Collapsible/collapsible.mcp.d.ts +1 -1
  193. package/dist/components/Collapsible/collapsible.mcp.js +62 -12
  194. package/dist/components/Collapsible/collapsible.props.d.ts +39 -8
  195. package/dist/components/Collapsible/collapsible.theme.js +3 -1
  196. package/dist/components/Collapsible/index.d.ts +1 -0
  197. package/dist/components/Collapsible/index.js +1 -0
  198. package/dist/components/Command/Command.svelte +56 -14
  199. package/dist/components/Command/command.mcp.d.ts +1 -1
  200. package/dist/components/Command/command.mcp.js +12 -6
  201. package/dist/components/Command/command.props.d.ts +39 -6
  202. package/dist/components/Command/command.state.svelte.d.ts +40 -11
  203. package/dist/components/Command/command.state.svelte.js +75 -28
  204. package/dist/components/Command/command.theme.js +4 -3
  205. package/dist/components/Confirmation/Confirmation.svelte +72 -31
  206. package/dist/components/Confirmation/confirmation.mcp.d.ts +1 -1
  207. package/dist/components/Confirmation/confirmation.mcp.js +5 -4
  208. package/dist/components/ContextMenu/ContextMenu.svelte +126 -16
  209. package/dist/components/ContextMenu/contextMenu.mcp.d.ts +1 -1
  210. package/dist/components/ContextMenu/contextMenu.mcp.js +10 -7
  211. package/dist/components/ContextMenu/contextMenu.props.d.ts +13 -4
  212. package/dist/components/ContextMenu/contextMenu.theme.d.ts +3 -3
  213. package/dist/components/ContextMenu/contextMenu.theme.js +3 -2
  214. package/dist/components/DataTable/DataTable.svelte +4 -9
  215. package/dist/components/DataTable/DataTableEditor.svelte +5 -0
  216. package/dist/components/DataTable/DataTableFilter.svelte +1 -0
  217. package/dist/components/DataTable/DataTableToolbar.svelte +1 -0
  218. package/dist/components/DataTable/dataTable.mcp.d.ts +1 -1
  219. package/dist/components/DataTable/dataTable.mcp.js +4 -2
  220. package/dist/components/DataTable/dataTable.theme.d.ts +0 -3
  221. package/dist/components/DataTable/dataTable.theme.js +9 -6
  222. package/dist/components/Dialog/Dialog.svelte +120 -35
  223. package/dist/components/Dialog/Dialog.svelte.d.ts +1 -1
  224. package/dist/components/Dialog/DialogBackdrop.svelte +21 -1
  225. package/dist/components/Dialog/dialog.api.d.ts +65 -0
  226. package/dist/components/Dialog/dialog.api.js +1 -0
  227. package/dist/components/Dialog/dialog.attributes.d.ts +23 -0
  228. package/dist/components/Dialog/dialog.attributes.js +19 -0
  229. package/dist/components/Dialog/dialog.indent.d.ts +6 -0
  230. package/dist/components/Dialog/dialog.indent.js +16 -0
  231. package/dist/components/Dialog/dialog.mcp.d.ts +1 -1
  232. package/dist/components/Dialog/dialog.mcp.js +195 -22
  233. package/dist/components/Dialog/dialog.props.d.ts +102 -19
  234. package/dist/components/Dialog/dialog.snap.d.ts +40 -0
  235. package/dist/components/Dialog/dialog.snap.js +78 -0
  236. package/dist/components/Dialog/dialog.state.svelte.d.ts +122 -10
  237. package/dist/components/Dialog/dialog.state.svelte.js +525 -66
  238. package/dist/components/Dialog/dialog.theme.d.ts +48 -0
  239. package/dist/components/Dialog/dialog.theme.js +32 -9
  240. package/dist/components/Dialog/index.d.ts +4 -1
  241. package/dist/components/Dialog/index.js +1 -0
  242. package/dist/components/DocumentViewer/DocumentSearchControl.svelte +5 -3
  243. package/dist/components/DocumentViewer/documentOutput.js +2 -1
  244. package/dist/components/FloatingWindow/FloatingWindow.svelte +20 -32
  245. package/dist/components/FloatingWindow/FloatingWindow.svelte.d.ts +1 -1
  246. package/dist/components/FloatingWindow/floatingWindow.mcp.d.ts +1 -1
  247. package/dist/components/FloatingWindow/floatingWindow.mcp.js +3 -3
  248. package/dist/components/FloatingWindow/floatingWindow.props.d.ts +9 -4
  249. package/dist/components/FloatingWindow/floatingWindow.state.svelte.d.ts +8 -2
  250. package/dist/components/FloatingWindow/floatingWindow.state.svelte.js +18 -7
  251. package/dist/components/Form/Ask/Ask.svelte +9 -13
  252. package/dist/components/Form/Ask/ask.mcp.d.ts +1 -1
  253. package/dist/components/Form/Ask/ask.mcp.js +1 -1
  254. package/dist/components/Form/Ask/ask.props.d.ts +1 -1
  255. package/dist/components/Form/Autocomplete/Autocomplete.svelte +418 -0
  256. package/dist/components/Form/Autocomplete/Autocomplete.svelte.d.ts +4 -0
  257. package/dist/components/Form/Autocomplete/autocomplete.items.d.ts +30 -0
  258. package/dist/components/Form/Autocomplete/autocomplete.items.js +64 -0
  259. package/dist/components/Form/Autocomplete/autocomplete.mcp.d.ts +1 -0
  260. package/dist/components/Form/Autocomplete/autocomplete.mcp.js +134 -0
  261. package/dist/components/Form/Autocomplete/autocomplete.props.d.ts +146 -0
  262. package/dist/components/Form/Autocomplete/autocomplete.props.js +1 -0
  263. package/dist/components/Form/Autocomplete/autocomplete.theme.d.ts +213 -0
  264. package/dist/components/Form/Autocomplete/autocomplete.theme.js +119 -0
  265. package/dist/components/Form/Autocomplete/index.d.ts +3 -0
  266. package/dist/components/Form/Autocomplete/index.js +2 -0
  267. package/dist/components/Form/Calendar/CalendarInput.svelte +9 -0
  268. package/dist/components/Form/Calendar/CalendarMonthYearPicker.svelte +3 -0
  269. package/dist/components/Form/Calendar/CalendarPrimitive.svelte +5 -0
  270. package/dist/components/Form/Calendar/calendar.mcp.d.ts +1 -1
  271. package/dist/components/Form/Calendar/calendar.mcp.js +2 -1
  272. package/dist/components/Form/Calendar/calendarInput.props.d.ts +2 -0
  273. package/dist/components/Form/Calendar/useCalendar.svelte.d.ts +3 -0
  274. package/dist/components/Form/Calendar/useCalendar.svelte.js +3 -0
  275. package/dist/components/Form/Checkbox/Checkbox.svelte +17 -2
  276. package/dist/components/Form/Checkbox/checkbox.mcp.d.ts +1 -1
  277. package/dist/components/Form/Checkbox/checkbox.mcp.js +11 -1
  278. package/dist/components/Form/Checkbox/checkbox.props.d.ts +12 -1
  279. package/dist/components/Form/CheckboxesInput/CheckboxLine.svelte +69 -32
  280. package/dist/components/Form/CheckboxesInput/CheckboxLine.svelte.d.ts +10 -2
  281. package/dist/components/Form/CheckboxesInput/CheckboxesInput.svelte +123 -74
  282. package/dist/components/Form/CheckboxesInput/CheckboxesInput.svelte.d.ts +12 -12
  283. package/dist/components/Form/CheckboxesInput/checkboxesInput.mcp.d.ts +1 -1
  284. package/dist/components/Form/CheckboxesInput/checkboxesInput.mcp.js +11 -7
  285. package/dist/components/Form/CheckboxesInput/checkboxesInput.props.d.ts +25 -9
  286. package/dist/components/Form/CheckboxesInput/checkboxesInput.theme.d.ts +12 -0
  287. package/dist/components/Form/CheckboxesInput/checkboxesInput.theme.js +9 -4
  288. package/dist/components/Form/CheckboxesInput/choiceEnter.d.ts +11 -0
  289. package/dist/components/Form/CheckboxesInput/choiceEnter.js +27 -0
  290. package/dist/components/Form/ColorInput/ColorInput.svelte +12 -3
  291. package/dist/components/Form/ColorInput/colorInput.mcp.d.ts +1 -1
  292. package/dist/components/Form/ColorInput/colorInput.mcp.js +1 -0
  293. package/dist/components/Form/ColorPicker/ColorPicker.svelte +11 -2
  294. package/dist/components/Form/ColorPicker/ColorPickerInput.svelte +9 -0
  295. package/dist/components/Form/ColorPicker/colorPicker.mcp.d.ts +1 -1
  296. package/dist/components/Form/ColorPicker/colorPicker.mcp.js +1 -0
  297. package/dist/components/Form/ColorPicker/colorPicker.props.d.ts +2 -0
  298. package/dist/components/Form/ColorPicker/colorPicker.state.svelte.d.ts +4 -0
  299. package/dist/components/Form/ColorPicker/colorPicker.state.svelte.js +12 -8
  300. package/dist/components/Form/Combobox/Combobox.svelte +145 -185
  301. package/dist/components/Form/Combobox/Combobox.svelte.d.ts +1 -1
  302. package/dist/components/Form/Combobox/ComboboxPopup.svelte +128 -0
  303. package/dist/components/Form/Combobox/ComboboxPopup.svelte.d.ts +28 -0
  304. package/dist/components/Form/Combobox/combobox.attributes.d.ts +34 -0
  305. package/dist/components/Form/Combobox/combobox.attributes.js +25 -0
  306. package/dist/components/Form/Combobox/combobox.items.d.ts +28 -0
  307. package/dist/components/Form/Combobox/combobox.items.js +68 -0
  308. package/dist/components/Form/Combobox/combobox.mcp.d.ts +1 -1
  309. package/dist/components/Form/Combobox/combobox.mcp.js +104 -13
  310. package/dist/components/Form/Combobox/combobox.props.d.ts +113 -19
  311. package/dist/components/Form/Combobox/combobox.state.svelte.d.ts +137 -0
  312. package/dist/components/Form/Combobox/combobox.state.svelte.js +375 -0
  313. package/dist/components/Form/Combobox/combobox.theme.d.ts +63 -0
  314. package/dist/components/Form/Combobox/combobox.theme.js +37 -1
  315. package/dist/components/Form/Combobox/index.d.ts +2 -1
  316. package/dist/components/Form/Combobox/index.js +1 -0
  317. package/dist/components/Form/DateInput/DateInput.svelte +11 -3
  318. package/dist/components/Form/DateInput/dateInput.mcp.d.ts +1 -1
  319. package/dist/components/Form/DateInput/dateInput.mcp.js +5 -0
  320. package/dist/components/Form/DateSelector/DateSelector.svelte +5 -2
  321. package/dist/components/Form/DateSelector/DateSelectorInput.svelte +9 -0
  322. package/dist/components/Form/DateSelector/dateSelector.mcp.d.ts +1 -1
  323. package/dist/components/Form/DateSelector/dateSelector.mcp.js +2 -2
  324. package/dist/components/Form/DateSelector/dateSelector.props.d.ts +2 -0
  325. package/dist/components/Form/Field/Field.svelte +256 -30
  326. package/dist/components/Form/Field/Field.svelte.d.ts +9 -0
  327. package/dist/components/Form/Field/FieldGroup.svelte +29 -0
  328. package/dist/components/Form/Field/FieldGroup.svelte.d.ts +11 -0
  329. package/dist/components/Form/Field/FieldHiddenInputs.svelte +187 -0
  330. package/dist/components/Form/Field/FieldHiddenInputs.svelte.d.ts +26 -0
  331. package/dist/components/Form/Field/field.d.ts +64 -8
  332. package/dist/components/Form/Field/field.mcp.d.ts +1 -1
  333. package/dist/components/Form/Field/field.mcp.js +158 -18
  334. package/dist/components/Form/Field/field.messages.d.ts +47 -0
  335. package/dist/components/Form/Field/field.messages.js +64 -0
  336. package/dist/components/Form/Field/field.state.svelte.d.ts +109 -3
  337. package/dist/components/Form/Field/field.state.svelte.js +508 -16
  338. package/dist/components/Form/Field/field.theme.d.ts +46 -0
  339. package/dist/components/Form/Field/field.theme.js +33 -0
  340. package/dist/components/Form/Field/fieldHiddenInputs.props.d.ts +61 -0
  341. package/dist/components/Form/Field/fieldHiddenInputs.props.js +1 -0
  342. package/dist/components/Form/Field/fieldNativeForm.svelte.d.ts +14 -0
  343. package/dist/components/Form/Field/fieldNativeForm.svelte.js +113 -0
  344. package/dist/components/Form/Field/index.d.ts +5 -2
  345. package/dist/components/Form/Field/index.js +1 -0
  346. package/dist/components/Form/Field/schemas.js +7 -2
  347. package/dist/components/Form/File/FileInput.svelte +24 -3
  348. package/dist/components/Form/File/fileInput.mcp.d.ts +1 -1
  349. package/dist/components/Form/File/fileInput.mcp.js +1 -0
  350. package/dist/components/Form/Form/Form.svelte +47 -14
  351. package/dist/components/Form/Form/FormActions.svelte +3 -1
  352. package/dist/components/Form/Form/FormActions.svelte.d.ts +42 -2
  353. package/dist/components/Form/Form/FormFieldRenderer.svelte +40 -2
  354. package/dist/components/Form/Form/FormInputRenderer.svelte +7 -0
  355. package/dist/components/Form/Form/form.d.ts +35 -6
  356. package/dist/components/Form/Form/form.mcp.d.ts +1 -1
  357. package/dist/components/Form/Form/form.mcp.js +113 -13
  358. package/dist/components/Form/Form/form.props.d.ts +32 -1
  359. package/dist/components/Form/Form/form.registry.d.ts +2 -2
  360. package/dist/components/Form/Form/form.registry.js +1 -4
  361. package/dist/components/Form/Form/form.state.svelte.d.ts +1138 -413
  362. package/dist/components/Form/Form/form.state.svelte.js +319 -26
  363. package/dist/components/Form/Form/index.d.ts +3 -1
  364. package/dist/components/Form/Form/visibility.d.ts +3096 -1831
  365. package/dist/components/Form/KeyValueInput/KeyValueInput.svelte +22 -10
  366. package/dist/components/Form/KeyValueInput/keyValueInput.mcp.d.ts +1 -1
  367. package/dist/components/Form/KeyValueInput/keyValueInput.mcp.js +1 -0
  368. package/dist/components/Form/MultiStepForm/MultiStepForm.svelte +12 -5
  369. package/dist/components/Form/MultiStepForm/multiStepForm.mcp.d.ts +1 -1
  370. package/dist/components/Form/MultiStepForm/multiStepForm.mcp.js +5 -3
  371. package/dist/components/Form/MultiStepForm/multiStepForm.props.d.ts +5 -0
  372. package/dist/components/Form/MultiStepForm/multiStepForm.state.svelte.d.ts +1022 -408
  373. package/dist/components/Form/MultiStepForm/multiStepForm.state.svelte.js +48 -24
  374. package/dist/components/Form/NumberInput/NumberInput.svelte +365 -46
  375. package/dist/components/Form/NumberInput/index.d.ts +1 -1
  376. package/dist/components/Form/NumberInput/numberInput.mcp.d.ts +1 -1
  377. package/dist/components/Form/NumberInput/numberInput.mcp.js +55 -30
  378. package/dist/components/Form/NumberInput/numberInput.props.d.ts +64 -4
  379. package/dist/components/Form/PasswordInput/Password.svelte +28 -1
  380. package/dist/components/Form/PasswordInput/index.d.ts +1 -1
  381. package/dist/components/Form/PasswordInput/passwordInput.mcp.d.ts +1 -1
  382. package/dist/components/Form/PasswordInput/passwordInput.mcp.js +20 -2
  383. package/dist/components/Form/PasswordInput/passwordInput.props.d.ts +23 -0
  384. package/dist/components/Form/PhoneInput/PhoneInput.svelte +11 -4
  385. package/dist/components/Form/PhoneInput/PhoneInputCountryPicker.svelte +47 -21
  386. package/dist/components/Form/PhoneInput/phoneInput-cdn.js +2 -1
  387. package/dist/components/Form/PhoneInput/phoneInput.mcp.d.ts +1 -1
  388. package/dist/components/Form/PhoneInput/phoneInput.mcp.js +6 -2
  389. package/dist/components/Form/PhoneInput/phoneInputCountry.d.ts +9 -3
  390. package/dist/components/Form/PhoneInput/phoneInputCountry.js +34 -24
  391. package/dist/components/Form/PinInput/PinInput.svelte +44 -9
  392. package/dist/components/Form/PinInput/PinInputCells.svelte +22 -1
  393. package/dist/components/Form/PinInput/PinInputCells.svelte.d.ts +1 -0
  394. package/dist/components/Form/PinInput/index.d.ts +1 -1
  395. package/dist/components/Form/PinInput/pinInput.mcp.d.ts +1 -1
  396. package/dist/components/Form/PinInput/pinInput.mcp.js +29 -6
  397. package/dist/components/Form/PinInput/pinInput.props.d.ts +38 -4
  398. package/dist/components/Form/PinInput/pinInput.state.svelte.d.ts +41 -0
  399. package/dist/components/Form/PinInput/pinInput.state.svelte.js +227 -24
  400. package/dist/components/Form/PinInput/pinInput.theme.d.ts +39 -3
  401. package/dist/components/Form/PinInput/pinInput.theme.js +27 -1
  402. package/dist/components/Form/RadioInput/RadioInput.svelte +94 -32
  403. package/dist/components/Form/RadioInput/RadioInput.svelte.d.ts +12 -12
  404. package/dist/components/Form/RadioInput/radioInput.mcp.d.ts +1 -1
  405. package/dist/components/Form/RadioInput/radioInput.mcp.js +12 -9
  406. package/dist/components/Form/RadioInput/radioInput.props.d.ts +22 -6
  407. package/dist/components/Form/RadioInput/radioInput.theme.d.ts +12 -0
  408. package/dist/components/Form/RadioInput/radioInput.theme.js +10 -5
  409. package/dist/components/Form/RatingInput/RatingInput.svelte +13 -4
  410. package/dist/components/Form/RatingInput/ratingInput.mcp.d.ts +1 -1
  411. package/dist/components/Form/RatingInput/ratingInput.mcp.js +3 -3
  412. package/dist/components/Form/RatingInput/ratingInput.props.d.ts +1 -1
  413. package/dist/components/Form/Select/Select.svelte +186 -48
  414. package/dist/components/Form/Select/Select.svelte.d.ts +23 -2
  415. package/dist/components/Form/Select/SelectOptionRow.svelte +69 -0
  416. package/dist/components/Form/Select/SelectOptionRow.svelte.d.ts +18 -0
  417. package/dist/components/Form/Select/index.d.ts +2 -1
  418. package/dist/components/Form/Select/index.js +1 -0
  419. package/dist/components/Form/Select/select.align.d.ts +5 -0
  420. package/dist/components/Form/Select/select.align.js +19 -5
  421. package/dist/components/Form/Select/select.attributes.d.ts +36 -0
  422. package/dist/components/Form/Select/select.attributes.js +27 -0
  423. package/dist/components/Form/Select/select.mcp.d.ts +1 -1
  424. package/dist/components/Form/Select/select.mcp.js +103 -18
  425. package/dist/components/Form/Select/select.props.d.ts +87 -10
  426. package/dist/components/Form/Select/select.state.svelte.d.ts +108 -17
  427. package/dist/components/Form/Select/select.state.svelte.js +354 -59
  428. package/dist/components/Form/Select/select.theme.d.ts +21 -0
  429. package/dist/components/Form/Select/select.theme.js +22 -0
  430. package/dist/components/Form/Slider/Slider.svelte +54 -14
  431. package/dist/components/Form/Slider/SliderMarks.svelte +1 -1
  432. package/dist/components/Form/Slider/SliderThumb.svelte +49 -19
  433. package/dist/components/Form/Slider/SliderThumb.svelte.d.ts +8 -2
  434. package/dist/components/Form/Slider/SliderTrack.svelte +33 -12
  435. package/dist/components/Form/Slider/SliderTrack.svelte.d.ts +6 -2
  436. package/dist/components/Form/Slider/index.d.ts +1 -1
  437. package/dist/components/Form/Slider/slider.mcp.d.ts +1 -1
  438. package/dist/components/Form/Slider/slider.mcp.js +55 -11
  439. package/dist/components/Form/Slider/slider.props.d.ts +35 -2
  440. package/dist/components/Form/Slider/slider.state.svelte.d.ts +66 -5
  441. package/dist/components/Form/Slider/slider.state.svelte.js +273 -49
  442. package/dist/components/Form/Slider/slider.theme.d.ts +36 -0
  443. package/dist/components/Form/Slider/slider.theme.js +35 -17
  444. package/dist/components/Form/Switch/Switch.svelte +61 -38
  445. package/dist/components/Form/Switch/switch.mcp.d.ts +1 -1
  446. package/dist/components/Form/Switch/switch.mcp.js +25 -5
  447. package/dist/components/Form/Switch/switch.props.d.ts +14 -1
  448. package/dist/components/Form/Switch/switch.theme.d.ts +12 -0
  449. package/dist/components/Form/Switch/switch.theme.js +8 -3
  450. package/dist/components/Form/TagGroup/TagGroup.svelte +8 -0
  451. package/dist/components/Form/TagGroup/tagGroup.mcp.d.ts +1 -1
  452. package/dist/components/Form/TagGroup/tagGroup.mcp.js +1 -0
  453. package/dist/components/Form/TagsInput/TagsInput.svelte +277 -275
  454. package/dist/components/Form/TagsInput/TagsInput.svelte.d.ts +1 -1
  455. package/dist/components/Form/TagsInput/tagsInput.mcp.d.ts +1 -1
  456. package/dist/components/Form/TagsInput/tagsInput.mcp.js +31 -11
  457. package/dist/components/Form/TagsInput/tagsInput.props.d.ts +6 -26
  458. package/dist/components/Form/TagsInput/tagsInput.theme.d.ts +63 -0
  459. package/dist/components/Form/TagsInput/tagsInput.theme.js +37 -1
  460. package/dist/components/Form/TextArea/TextArea.svelte +8 -0
  461. package/dist/components/Form/TextArea/textArea.mcp.d.ts +1 -1
  462. package/dist/components/Form/TextArea/textArea.mcp.js +1 -0
  463. package/dist/components/Form/TextInput/TextInput.svelte +8 -1
  464. package/dist/components/Form/TextInput/textInput.mcp.d.ts +1 -1
  465. package/dist/components/Form/TextInput/textInput.mcp.js +5 -0
  466. package/dist/components/Form/TimeInput/TimeInput.svelte +9 -1
  467. package/dist/components/Form/TimeInput/timeInput.mcp.d.ts +1 -1
  468. package/dist/components/Form/TimeInput/timeInput.mcp.js +31 -0
  469. package/dist/components/Form/VoiceInput/VoiceInput.svelte +10 -2
  470. package/dist/components/Form/VoiceInput/voiceInput.mcp.d.ts +1 -1
  471. package/dist/components/Form/VoiceInput/voiceInput.mcp.js +1 -0
  472. package/dist/components/GanttChart/GanttDependencyControl.svelte +4 -4
  473. package/dist/components/HoverCard/HoverCard.svelte +100 -10
  474. package/dist/components/HoverCard/hoverCard.attributes.d.ts +33 -0
  475. package/dist/components/HoverCard/hoverCard.attributes.js +24 -0
  476. package/dist/components/HoverCard/hoverCard.mcp.d.ts +1 -1
  477. package/dist/components/HoverCard/hoverCard.mcp.js +61 -2
  478. package/dist/components/HoverCard/hoverCard.props.d.ts +19 -0
  479. package/dist/components/HoverCard/hoverCard.theme.d.ts +12 -0
  480. package/dist/components/HoverCard/hoverCard.theme.js +9 -2
  481. package/dist/components/HoverCard/index.d.ts +1 -0
  482. package/dist/components/HoverCard/index.js +1 -0
  483. package/dist/components/ImageGallery/imageGallery.state.svelte.d.ts +1 -1
  484. package/dist/components/ImageZoom/imageZoom.lightbox.js +40 -6
  485. package/dist/components/ImageZoom/imageZoom.mcp.d.ts +1 -1
  486. package/dist/components/ImageZoom/imageZoom.mcp.js +3 -3
  487. package/dist/components/ImageZoom/imageZoom.props.d.ts +10 -4
  488. package/dist/components/ImageZoom/imageZoom.state.svelte.d.ts +16 -4
  489. package/dist/components/ImageZoom/imageZoom.state.svelte.js +38 -9
  490. package/dist/components/Kanban/kanban.theme.js +7 -3
  491. package/dist/components/Layout/layoutSpacing.d.ts +2 -2
  492. package/dist/components/LinkPreview/LinkPreview.svelte +7 -1
  493. package/dist/components/LinkPreview/linkPreview.mcp.d.ts +1 -1
  494. package/dist/components/LinkPreview/linkPreview.mcp.js +4 -1
  495. package/dist/components/LinkPreview/linkPreview.props.d.ts +15 -0
  496. package/dist/components/LinkPreview/linkPreview.theme.d.ts +12 -0
  497. package/dist/components/LinkPreview/linkPreview.theme.js +9 -2
  498. package/dist/components/Map/maplibre-cdn.js +3 -2
  499. package/dist/components/Markdown/markdown.mcp.d.ts +1 -1
  500. package/dist/components/Markdown/markdown.mcp.js +2 -1
  501. package/dist/components/Markdown/markdown.theme.js +18 -9
  502. package/dist/components/MediaVolume/MediaVolumeControl.svelte +4 -3
  503. package/dist/components/Menu/Menu.svelte +3 -3
  504. package/dist/components/Menu/Menu.svelte.d.ts +1 -1
  505. package/dist/components/Menu/MenuCheckboxItem.svelte +87 -0
  506. package/dist/components/Menu/MenuCheckboxItem.svelte.d.ts +16 -0
  507. package/dist/components/Menu/MenuFloating.svelte +421 -74
  508. package/dist/components/Menu/MenuFloating.svelte.d.ts +1 -1
  509. package/dist/components/Menu/MenuMirroredIcon.svelte +9 -0
  510. package/dist/components/Menu/MenuMirroredIcon.svelte.d.ts +7 -0
  511. package/dist/components/Menu/MenuRadioGroup.svelte +102 -0
  512. package/dist/components/Menu/MenuRadioGroup.svelte.d.ts +18 -0
  513. package/dist/components/Menu/MenuSearchField.svelte +54 -0
  514. package/dist/components/Menu/MenuSearchField.svelte.d.ts +20 -0
  515. package/dist/components/Menu/MenuStacked.svelte +404 -158
  516. package/dist/components/Menu/MenuStacked.svelte.d.ts +1 -1
  517. package/dist/components/Menu/MenuStackedBackHeader.svelte +6 -1
  518. package/dist/components/Menu/index.d.ts +2 -1
  519. package/dist/components/Menu/index.js +1 -0
  520. package/dist/components/Menu/menu.attributes.d.ts +37 -0
  521. package/dist/components/Menu/menu.attributes.js +28 -0
  522. package/dist/components/Menu/menu.filter.svelte.d.ts +52 -0
  523. package/dist/components/Menu/menu.filter.svelte.js +143 -0
  524. package/dist/components/Menu/menu.mcp.d.ts +1 -1
  525. package/dist/components/Menu/menu.mcp.js +227 -17
  526. package/dist/components/Menu/menu.platform.d.ts +5 -0
  527. package/dist/components/Menu/menu.platform.js +11 -0
  528. package/dist/components/Menu/menu.props.d.ts +172 -9
  529. package/dist/components/Menu/menu.theme.d.ts +147 -0
  530. package/dist/components/Menu/menu.theme.js +101 -0
  531. package/dist/components/Menu/menuTree.d.ts +35 -1
  532. package/dist/components/Menu/menuTree.js +158 -1
  533. package/dist/components/MenuBar/menuBar.mcp.d.ts +1 -1
  534. package/dist/components/MenuBar/menuBar.mcp.js +4 -2
  535. package/dist/components/MenuBar/menuBar.state.svelte.js +28 -10
  536. package/dist/components/MenuOption/MenuOption.svelte +5 -1
  537. package/dist/components/MenuOption/menuOption.mcp.d.ts +1 -1
  538. package/dist/components/MenuOption/menuOption.mcp.js +8 -0
  539. package/dist/components/MenuOption/menuOption.props.d.ts +12 -0
  540. package/dist/components/MenuOption/menuOption.theme.d.ts +18 -0
  541. package/dist/components/MenuOption/menuOption.theme.js +24 -4
  542. package/dist/components/Mermaid/mermaid.mcp.d.ts +1 -1
  543. package/dist/components/Mermaid/mermaid.mcp.js +8 -8
  544. package/dist/components/Mermaid/mermaid.props.d.ts +3 -4
  545. package/dist/components/Mermaid/mermaid.state.svelte.d.ts +20 -19
  546. package/dist/components/Mermaid/mermaid.state.svelte.js +80 -243
  547. package/dist/components/Mermaid/mermaid.theme.js +26 -1
  548. package/dist/components/MetadataList/MetadataList.svelte.d.ts +1 -1
  549. package/dist/components/Meter/Meter.svelte +110 -24
  550. package/dist/components/Meter/Meter.svelte.d.ts +12 -12
  551. package/dist/components/Meter/meter.mcp.d.ts +1 -1
  552. package/dist/components/Meter/meter.mcp.js +23 -37
  553. package/dist/components/Meter/meter.props.d.ts +36 -44
  554. package/dist/components/NavigationMenu/NavigationMenu.svelte +181 -0
  555. package/dist/components/NavigationMenu/NavigationMenu.svelte.d.ts +25 -0
  556. package/dist/components/NavigationMenu/NavigationMenuContent.svelte +141 -0
  557. package/dist/components/NavigationMenu/NavigationMenuContent.svelte.d.ts +13 -0
  558. package/dist/components/NavigationMenu/NavigationMenuTrigger.svelte +75 -0
  559. package/dist/components/NavigationMenu/NavigationMenuTrigger.svelte.d.ts +13 -0
  560. package/dist/components/NavigationMenu/index.d.ts +4 -0
  561. package/dist/components/NavigationMenu/index.js +3 -0
  562. package/dist/components/NavigationMenu/navigationMenu.attributes.d.ts +24 -0
  563. package/dist/components/NavigationMenu/navigationMenu.attributes.js +21 -0
  564. package/dist/components/NavigationMenu/navigationMenu.mcp.d.ts +1 -0
  565. package/dist/components/NavigationMenu/navigationMenu.mcp.js +138 -0
  566. package/dist/components/NavigationMenu/navigationMenu.props.d.ts +129 -0
  567. package/dist/components/NavigationMenu/navigationMenu.props.js +1 -0
  568. package/dist/components/NavigationMenu/navigationMenu.state.svelte.d.ts +163 -0
  569. package/dist/components/NavigationMenu/navigationMenu.state.svelte.js +721 -0
  570. package/dist/components/NavigationMenu/navigationMenu.theme.d.ts +326 -0
  571. package/dist/components/NavigationMenu/navigationMenu.theme.js +239 -0
  572. package/dist/components/Overlay/Overlay.svelte +19 -30
  573. package/dist/components/Overlay/index.d.ts +1 -0
  574. package/dist/components/Overlay/index.js +1 -0
  575. package/dist/components/Overlay/overlay.attributes.d.ts +16 -0
  576. package/dist/components/Overlay/overlay.attributes.js +14 -0
  577. package/dist/components/Overlay/overlay.mcp.d.ts +1 -1
  578. package/dist/components/Overlay/overlay.mcp.js +21 -3
  579. package/dist/components/Overlay/overlay.props.d.ts +8 -4
  580. package/dist/components/Popover/Popover.svelte +163 -52
  581. package/dist/components/Popover/Popover.svelte.d.ts +23 -2
  582. package/dist/components/Popover/PopoverSession.svelte +12 -0
  583. package/dist/components/Popover/PopoverSession.svelte.d.ts +7 -0
  584. package/dist/components/Popover/index.d.ts +10 -2
  585. package/dist/components/Popover/index.js +4 -1
  586. package/dist/components/Popover/popover.api.d.ts +83 -0
  587. package/dist/components/Popover/popover.api.js +1 -0
  588. package/dist/components/Popover/popover.attributes.d.ts +32 -0
  589. package/dist/components/Popover/popover.attributes.js +28 -0
  590. package/dist/components/Popover/popover.claims.d.ts +19 -0
  591. package/dist/components/Popover/popover.claims.js +45 -0
  592. package/dist/components/Popover/popover.mcp.d.ts +1 -1
  593. package/dist/components/Popover/popover.mcp.js +163 -31
  594. package/dist/components/Popover/popover.position.d.ts +226 -0
  595. package/dist/components/Popover/popover.position.js +402 -0
  596. package/dist/components/Popover/popover.props.d.ts +179 -24
  597. package/dist/components/Popover/popover.state.svelte.d.ts +169 -37
  598. package/dist/components/Popover/popover.state.svelte.js +1034 -194
  599. package/dist/components/Popover/popover.theme.d.ts +15 -0
  600. package/dist/components/Popover/popover.theme.js +27 -2
  601. package/dist/components/PopupMenu/PopupMenu.svelte +193 -22
  602. package/dist/components/PopupMenu/PopupMenu.svelte.d.ts +2 -2
  603. package/dist/components/PopupMenu/popupMenu.context.d.ts +42 -0
  604. package/dist/components/PopupMenu/popupMenu.context.js +52 -0
  605. package/dist/components/PopupMenu/popupMenu.mcp.d.ts +1 -1
  606. package/dist/components/PopupMenu/popupMenu.mcp.js +46 -6
  607. package/dist/components/PopupMenu/popupMenu.props.d.ts +29 -2
  608. package/dist/components/Progress/Progress.svelte +160 -0
  609. package/dist/components/Progress/Progress.svelte.d.ts +4 -0
  610. package/dist/components/Progress/index.d.ts +3 -0
  611. package/dist/components/Progress/index.js +2 -0
  612. package/dist/components/Progress/progress.mcp.d.ts +1 -0
  613. package/dist/components/Progress/progress.mcp.js +101 -0
  614. package/dist/components/Progress/progress.props.d.ts +79 -0
  615. package/dist/components/Progress/progress.props.js +1 -0
  616. package/dist/components/Progress/progress.theme.d.ts +129 -0
  617. package/dist/components/Progress/progress.theme.js +83 -0
  618. package/dist/components/ProgressCircle/ProgressCircle.svelte +51 -6
  619. package/dist/components/ProgressCircle/progressCircle.mcp.d.ts +1 -1
  620. package/dist/components/ProgressCircle/progressCircle.mcp.js +18 -4
  621. package/dist/components/ProgressCircle/progressCircle.props.d.ts +32 -2
  622. package/dist/components/ProgressCircle/progressCircle.theme.d.ts +15 -3
  623. package/dist/components/ProgressCircle/progressCircle.theme.js +7 -2
  624. package/dist/components/RichTextInput/RichTextInput.svelte +19 -1
  625. package/dist/components/RichTextInput/RichTextInputChrome.svelte +5 -1
  626. package/dist/components/RichTextInput/RichTextInputChrome.svelte.d.ts +2 -0
  627. package/dist/components/RichTextInput/RichTextInputViewport.svelte +3 -1
  628. package/dist/components/RichTextInput/RichTextInputViewport.svelte.d.ts +1 -0
  629. package/dist/components/RichTextInput/richTextInput.mcp.d.ts +1 -1
  630. package/dist/components/RichTextInput/richTextInput.mcp.js +1 -0
  631. package/dist/components/RichTextInput/suggestions.js +2 -0
  632. package/dist/components/ScrollArea/ScrollArea.svelte +166 -27
  633. package/dist/components/ScrollArea/index.d.ts +2 -1
  634. package/dist/components/ScrollArea/index.js +1 -0
  635. package/dist/components/ScrollArea/scrollArea.attributes.d.ts +25 -0
  636. package/dist/components/ScrollArea/scrollArea.attributes.js +21 -0
  637. package/dist/components/ScrollArea/scrollArea.mcp.d.ts +1 -1
  638. package/dist/components/ScrollArea/scrollArea.mcp.js +47 -3
  639. package/dist/components/ScrollArea/scrollArea.props.d.ts +33 -6
  640. package/dist/components/ScrollArea/scrollArea.svelte.d.ts +56 -12
  641. package/dist/components/ScrollArea/scrollArea.svelte.js +281 -71
  642. package/dist/components/ScrollArea/scrollArea.theme.js +5 -2
  643. package/dist/components/SegmentedControl/SegmentedControl.svelte +4 -3
  644. package/dist/components/SegmentedControl/segmentedControl.mcp.d.ts +1 -1
  645. package/dist/components/SegmentedControl/segmentedControl.mcp.js +3 -2
  646. package/dist/components/SelectionMenu/SelectionMenu.svelte +4 -2
  647. package/dist/components/Sidebar/SidebarAction.svelte +13 -3
  648. package/dist/components/Sidebar/SidebarAction.svelte.d.ts +2 -1
  649. package/dist/components/Sidebar/SidebarActivityBar.svelte +14 -7
  650. package/dist/components/Sidebar/SidebarFlyout.svelte +97 -0
  651. package/dist/components/Sidebar/SidebarFlyout.svelte.d.ts +32 -0
  652. package/dist/components/Sidebar/SidebarGroup.svelte +39 -15
  653. package/dist/components/Sidebar/SidebarMenuButton.svelte +6 -3
  654. package/dist/components/Sidebar/SidebarMenuItem.svelte +134 -31
  655. package/dist/components/Sidebar/SidebarMenuSubItem.svelte +30 -14
  656. package/dist/components/Sidebar/SidebarTreeNode.svelte +41 -61
  657. package/dist/components/Sidebar/index.d.ts +1 -0
  658. package/dist/components/Sidebar/index.js +1 -0
  659. package/dist/components/Sidebar/sidebar-position.d.ts +37 -2
  660. package/dist/components/Sidebar/sidebar-position.js +31 -2
  661. package/dist/components/Sidebar/sidebar.attributes.d.ts +33 -0
  662. package/dist/components/Sidebar/sidebar.attributes.js +29 -0
  663. package/dist/components/Sidebar/sidebar.mcp.d.ts +1 -1
  664. package/dist/components/Sidebar/sidebar.mcp.js +45 -10
  665. package/dist/components/Sidebar/sidebar.props.d.ts +28 -7
  666. package/dist/components/Sidebar/sidebar.theme.d.ts +51 -21
  667. package/dist/components/Sidebar/sidebar.theme.js +113 -62
  668. package/dist/components/Sidebar/sidebar.views.svelte.js +11 -18
  669. package/dist/components/Stepper/Stepper.svelte +2 -0
  670. package/dist/components/Stepper/stepper.mcp.d.ts +1 -1
  671. package/dist/components/Stepper/stepper.mcp.js +1 -0
  672. package/dist/components/Stepper/stepper.props.d.ts +5 -0
  673. package/dist/components/Stepper/stepper.state.svelte.d.ts +2 -0
  674. package/dist/components/Stepper/stepper.state.svelte.js +31 -12
  675. package/dist/components/Tabbar/Tabbar.svelte +55 -16
  676. package/dist/components/Tabbar/index.d.ts +1 -1
  677. package/dist/components/Tabbar/tabbar.mcp.d.ts +1 -1
  678. package/dist/components/Tabbar/tabbar.mcp.js +26 -9
  679. package/dist/components/Tabbar/tabbar.props.d.ts +34 -5
  680. package/dist/components/Tabbar/tabbar.selection.svelte.d.ts +79 -0
  681. package/dist/components/Tabbar/tabbar.selection.svelte.js +99 -0
  682. package/dist/components/TableOfContents/tableOfContents.state.svelte.js +9 -7
  683. package/dist/components/Tabs/Tabs.svelte +73 -16
  684. package/dist/components/Tabs/index.d.ts +2 -1
  685. package/dist/components/Tabs/tabs.direction.svelte.d.ts +25 -0
  686. package/dist/components/Tabs/tabs.direction.svelte.js +40 -0
  687. package/dist/components/Tabs/tabs.mcp.d.ts +1 -1
  688. package/dist/components/Tabs/tabs.mcp.js +22 -4
  689. package/dist/components/Tabs/tabs.props.d.ts +39 -12
  690. package/dist/components/Tabs/tabs.theme.js +3 -1
  691. package/dist/components/Theme/Theme.svelte +44 -27
  692. package/dist/components/Theme/helper.d.ts +16 -2
  693. package/dist/components/Theme/helper.js +46 -4
  694. package/dist/components/Theme/theme.mcp.d.ts +1 -1
  695. package/dist/components/Theme/theme.mcp.js +103 -0
  696. package/dist/components/Theme/theme.props.d.ts +16 -0
  697. package/dist/components/Theme/theme.state.svelte.d.ts +14 -1
  698. package/dist/components/Theme/theme.state.svelte.js +18 -1
  699. package/dist/components/Toast/Toast.svelte +184 -39
  700. package/dist/components/Toast/Toaster.svelte +14 -10
  701. package/dist/components/Toast/index.d.ts +1 -0
  702. package/dist/components/Toast/toast.mcp.d.ts +1 -1
  703. package/dist/components/Toast/toast.mcp.js +47 -6
  704. package/dist/components/Toast/toast.state.svelte.d.ts +172 -6
  705. package/dist/components/Toast/toast.state.svelte.js +513 -68
  706. package/dist/components/Toast/toast.theme.js +1 -1
  707. package/dist/components/ToggleButton/ToggleButton.svelte +23 -1
  708. package/dist/components/ToggleButton/toggleButton.mcp.d.ts +1 -1
  709. package/dist/components/ToggleButton/toggleButton.mcp.js +3 -1
  710. package/dist/components/ToggleButton/toggleButton.props.d.ts +13 -1
  711. package/dist/components/ToggleButton/toggleButton.theme.d.ts +12 -0
  712. package/dist/components/ToggleButton/toggleButton.theme.js +15 -3
  713. package/dist/components/ToggleButtonGroup/ToggleButtonGroup.svelte +29 -9
  714. package/dist/components/ToggleButtonGroup/index.d.ts +1 -1
  715. package/dist/components/ToggleButtonGroup/toggleButtonGroup.mcp.d.ts +1 -1
  716. package/dist/components/ToggleButtonGroup/toggleButtonGroup.mcp.js +5 -2
  717. package/dist/components/ToggleButtonGroup/toggleButtonGroup.props.d.ts +19 -1
  718. package/dist/components/ToggleButtonGroup/toggleButtonGroup.theme.d.ts +12 -0
  719. package/dist/components/ToggleButtonGroup/toggleButtonGroup.theme.js +21 -2
  720. package/dist/components/ToggleMenu/ToggleMenu.svelte +57 -43
  721. package/dist/components/ToggleMenu/ToggleMenuGroup.svelte +1 -0
  722. package/dist/components/ToggleMenu/ToggleMenuMenu.svelte +9 -3
  723. package/dist/components/ToggleMenu/ToggleMenuRadioGroup.svelte +7 -2
  724. package/dist/components/ToggleMenu/toggleMenu.mcp.d.ts +1 -1
  725. package/dist/components/ToggleMenu/toggleMenu.mcp.js +3 -2
  726. package/dist/components/ToggleMenu/toggleMenu.props.d.ts +4 -1
  727. package/dist/components/Tooltip/Tooltip.svelte +4 -12
  728. package/dist/components/Tooltip/TooltipHost.svelte +136 -15
  729. package/dist/components/Tooltip/index.d.ts +1 -0
  730. package/dist/components/Tooltip/index.js +1 -0
  731. package/dist/components/Tooltip/tooltip.attachment.svelte.d.ts +5 -0
  732. package/dist/components/Tooltip/tooltip.attachment.svelte.js +215 -33
  733. package/dist/components/Tooltip/tooltip.attributes.d.ts +32 -0
  734. package/dist/components/Tooltip/tooltip.attributes.js +28 -0
  735. package/dist/components/Tooltip/tooltip.mcp.d.ts +1 -1
  736. package/dist/components/Tooltip/tooltip.mcp.js +111 -10
  737. package/dist/components/Tooltip/tooltip.props.d.ts +33 -2
  738. package/dist/components/Tooltip/tooltip.surface.d.ts +24 -0
  739. package/dist/components/Tooltip/tooltip.surface.js +42 -0
  740. package/dist/components/Tree/TreeContextMenuSurface.svelte +16 -3
  741. package/dist/components/Utils/BeforeHydratation.svelte +14 -3
  742. package/dist/components/Utils/BeforeHydratation.svelte.d.ts +2 -0
  743. package/dist/components/VideoPlayer/VideoPlayer.svelte.d.ts +1 -1
  744. package/dist/components/VideoPlayer/VideoPlayerSettings.svelte +2 -0
  745. package/dist/generated/componentAliases.d.ts +3 -0
  746. package/dist/generated/componentAliases.js +3 -0
  747. package/dist/generated/componentContract.d.ts +79 -34
  748. package/dist/generated/componentContract.js +225 -6
  749. package/dist/generated/componentMcpRegistry.js +6 -0
  750. package/dist/i18n/ar.js +107 -3
  751. package/dist/i18n/context.svelte.d.ts +6 -0
  752. package/dist/i18n/context.svelte.js +12 -0
  753. package/dist/i18n/de.js +101 -3
  754. package/dist/i18n/en.d.ts +91 -2
  755. package/dist/i18n/en.js +101 -3
  756. package/dist/i18n/es.js +101 -3
  757. package/dist/i18n/fr.js +101 -3
  758. package/dist/i18n/ja.js +101 -3
  759. package/dist/i18n/pt.js +101 -3
  760. package/dist/i18n/zh.js +101 -3
  761. package/dist/tailwind/geometry.js +7 -0
  762. package/dist/tailwind/global.js +31 -0
  763. package/dist/types/index.d.ts +1 -0
  764. package/dist/types/types.mcp.d.ts +1 -1
  765. package/dist/types/types.mcp.js +23 -0
  766. package/dist/utils/cspNonce.d.ts +16 -0
  767. package/dist/utils/cspNonce.js +39 -0
  768. package/dist/utils/cva/merge.d.ts +5 -1
  769. package/dist/utils/cva/merge.js +6 -4
  770. package/dist/utils/focus.d.ts +34 -0
  771. package/dist/utils/focus.js +93 -0
  772. package/dist/utils/focusHistory.d.ts +21 -0
  773. package/dist/utils/focusHistory.js +99 -0
  774. package/dist/utils/handlers.d.ts +7 -0
  775. package/dist/utils/handlers.js +14 -0
  776. package/dist/utils/hoverIntent.d.ts +42 -0
  777. package/dist/utils/hoverIntent.js +57 -0
  778. package/dist/utils/id.d.ts +7 -0
  779. package/dist/utils/id.js +15 -0
  780. package/dist/utils/layers.svelte.d.ts +32 -4
  781. package/dist/utils/layers.svelte.js +214 -21
  782. package/dist/utils/listFilter.d.ts +44 -0
  783. package/dist/utils/listFilter.js +130 -0
  784. package/dist/utils/match.d.ts +35 -0
  785. package/dist/utils/match.js +36 -0
  786. package/dist/utils/number.d.ts +126 -0
  787. package/dist/utils/number.js +401 -0
  788. package/dist/utils/openChange.d.ts +88 -0
  789. package/dist/utils/openChange.js +71 -0
  790. package/dist/utils/openLifecycle.svelte.d.ts +41 -0
  791. package/dist/utils/openLifecycle.svelte.js +134 -0
  792. package/dist/utils/pointerDrag.d.ts +10 -0
  793. package/dist/utils/pointerDrag.js +37 -2
  794. package/dist/utils/pragmaticDragAndDrop.d.ts +2 -1
  795. package/dist/utils/pragmaticDragAndDrop.js +8 -3
  796. package/dist/utils/range.d.ts +62 -0
  797. package/dist/utils/range.js +70 -0
  798. package/dist/utils/requestNativeSubmit.d.ts +17 -0
  799. package/dist/utils/requestNativeSubmit.js +47 -0
  800. package/dist/utils/safeArea.svelte.d.ts +10 -1
  801. package/dist/utils/safeArea.svelte.js +19 -11
  802. package/dist/utils/stateAttributes.d.ts +108 -0
  803. package/dist/utils/stateAttributes.js +78 -0
  804. package/dist/utils/swipeVelocity.d.ts +32 -0
  805. package/dist/utils/swipeVelocity.js +59 -0
  806. package/dist/utils/timer.svelte.d.ts +65 -2
  807. package/dist/utils/timer.svelte.js +159 -25
  808. package/dist/utils/trigger.d.ts +41 -0
  809. package/dist/utils/trigger.js +103 -0
  810. package/dist/utils/typeahead.d.ts +9 -0
  811. package/dist/utils/typeahead.js +21 -9
  812. package/dist/utils/useDndList.svelte.d.ts +1 -1
  813. package/dist/utils/useDndList.svelte.js +6 -23
  814. package/dist/utils/useFocusScope.svelte.d.ts +29 -0
  815. package/dist/utils/useFocusScope.svelte.js +189 -27
  816. package/dist/utils/useHoverAction.svelte.d.ts +44 -4
  817. package/dist/utils/useHoverAction.svelte.js +161 -51
  818. package/dist/utils/useKeyDown.svelte.d.ts +19 -2
  819. package/dist/utils/useKeyDown.svelte.js +19 -12
  820. package/dist/utils/useListNavigation.svelte.d.ts +94 -13
  821. package/dist/utils/useListNavigation.svelte.js +261 -35
  822. package/dist/utils/useLiveAnnouncer.svelte.d.ts +77 -2
  823. package/dist/utils/useLiveAnnouncer.svelte.js +119 -2
  824. package/dist/utils/useNavigation.svelte.d.ts +36 -3
  825. package/dist/utils/useNavigation.svelte.js +699 -332
  826. package/dist/utils/usePressAndHold.svelte.d.ts +38 -0
  827. package/dist/utils/usePressAndHold.svelte.js +191 -0
  828. package/dist/utils/useScrollLock.svelte.d.ts +20 -1
  829. package/dist/utils/useScrollLock.svelte.js +54 -13
  830. package/dist/utils/useSlidingIndicator.svelte.d.ts +2 -0
  831. package/dist/utils/useSlidingIndicator.svelte.js +27 -5
  832. package/dist/utils/useTabBridge.svelte.d.ts +20 -0
  833. package/dist/utils/useTabBridge.svelte.js +109 -0
  834. package/dist/utils/values.d.ts +15 -0
  835. package/dist/utils/values.js +49 -0
  836. package/package.json +31 -2
  837. package/dist/generated/componentMcpRegistry.d.ts +0 -142
  838. package/dist/utils/useDrag.svelte.d.ts +0 -11
  839. package/dist/utils/useDrag.svelte.js +0 -55
@@ -1,17 +1,15 @@
1
1
  <script lang="ts" generics="Item extends Record<string, unknown>">
2
- import { getters } from 'melt';
3
- import { Accordion } from 'melt/builders';
4
- import { SvelteSet } from 'svelte/reactivity';
5
2
  import type { AccordionProps } from './accordion.props.js';
6
3
  import { useAccordionMotion, useAccordionTheme } from './accordion.theme.js';
4
+ import AccordionPanel from './AccordionPanel.svelte';
7
5
  import Slot from '../Slot/Slot.svelte';
8
6
  import type { Slot as SlotContent } from '../Slot/slot.js';
9
- import { slide } from '../../transitions/transition.js';
10
7
  import { caretDownIcon } from '../Icons/caretDown.js';
11
8
  import { plusIcon } from '../Icons/plus.js';
12
9
  import { minusIcon } from '../Icons/minus.js';
13
- import { untrack } from 'svelte';
14
10
  import { createBindableValue } from '../../utils/state.svelte.js';
11
+ import { createOpenChangeDetails, type OpenChangeInit } from '../../utils/openChange.js';
12
+ import { openStateAttributes } from '../../utils/stateAttributes.js';
15
13
 
16
14
  let {
17
15
  items: itemsWithoutIds = $bindable([]),
@@ -20,8 +18,14 @@
20
18
  titleKey,
21
19
  contentKey,
22
20
  descriptionKey,
21
+ disabledKey,
22
+ disabled = false,
23
23
  oneAtATime = true,
24
- onItemOpenChange: ot,
24
+ hiddenUntilFound = false,
25
+ keepMounted = false,
26
+ onItemOpenChange,
27
+ onItemAfterOpen,
28
+ onItemAfterClose,
25
29
  onValueChange,
26
30
  icon = 'chevron',
27
31
  variant = 'classic',
@@ -34,7 +38,6 @@
34
38
  description,
35
39
  content,
36
40
  transition,
37
- accessible = true,
38
41
  headingLevel = 3,
39
42
  ...attachments
40
43
  }: AccordionProps<Item> = $props();
@@ -48,22 +51,20 @@
48
51
 
49
52
  const id = $props.id();
50
53
  const classes = $derived(useAccordionTheme(theme));
51
- const currentValue = $derived(valueState.value);
54
+ // One-at-a-time shows only the first requested id, whatever a parent bound.
55
+ const expandedIds = $derived(oneAtATime ? valueState.value.slice(0, 1) : valueState.value);
52
56
 
53
57
  // Motion preset from `accordionTheme.motion`, through the override ladder
54
58
  // (registry → `setAccordionTheme` → instance `theme.motion` → `transition` prop).
55
59
  const resolveMotion = useAccordionMotion();
56
- const split = $derived(resolveMotion(undefined, { motion: theme?.motion, transition }));
57
- // slide is a factory: it captures the theme context at init because Svelte
58
- // runs transition functions outside component initialisation.
59
- const slideTransition = slide();
60
+ const motion = $derived(resolveMotion(undefined, { motion: theme?.motion, transition }));
60
61
 
61
62
  const resolve = (item: Item, key: keyof Item) => {
62
63
  return item[key] as SlotContent<{ item: Item }> | undefined;
63
64
  };
64
65
 
65
66
  // Prefer the item's own id (stable across reorder/filter), but disambiguate
66
- // duplicates — melt keys by id, so collisions would toggle items together.
67
+ // duplicates, since the expanded ids would otherwise toggle items together.
67
68
  const items = $derived.by(() => {
68
69
  // eslint-disable-next-line svelte/prefer-svelte-reactivity -- Local duplicate counts are rebuilt for each immutable item snapshot.
69
70
  const seen = new Map<string, number>();
@@ -75,51 +76,27 @@
75
76
  }) as (Item & { id: string })[];
76
77
  });
77
78
 
78
- let prevOpen: string[] = untrack(() => [...currentValue]);
79
- let isSyncingValue = false;
80
- const accordion = new Accordion({
81
- ...getters({
82
- get multiple() {
83
- return !oneAtATime;
84
- }
85
- }),
86
- onValueChange(nextValue) {
87
- const next = normalizeValue(nextValue);
88
- const changed = [...next, ...prevOpen].find(
89
- (id) => next.includes(id) !== prevOpen.includes(id)
90
- );
91
- prevOpen = next;
92
- valueState.value = next;
93
- if (isSyncingValue) return;
94
- onValueChange?.(next);
95
- if (changed === undefined) return;
96
- const index = items.findIndex((i) => i.id === changed);
97
- if (index === -1) return;
98
- ot?.({ item: itemsWithoutIds[index], index, open: next.includes(changed) });
99
- }
100
- });
101
-
102
- $effect(() => {
103
- const requested = oneAtATime ? currentValue.slice(0, 1) : [...currentValue];
104
- const current = normalizeValue(accordion.value);
105
- if (
106
- current.length === requested.length &&
107
- current.every((id, index) => id === requested[index])
108
- ) {
109
- return;
110
- }
111
- prevOpen = requested;
112
- isSyncingValue = true;
113
- try {
114
- accordion.value = oneAtATime ? requested[0] : new SvelteSet(requested);
115
- } finally {
116
- isSyncingValue = false;
117
- }
118
- });
79
+ const isDisabled = (item: Item) =>
80
+ disabled || item[(disabledKey ?? 'disabled') as keyof Item] === true;
81
+ const kept = $derived(hiddenUntilFound || keepMounted);
82
+ const triggerId = (index: number) => `${id}-trigger-${index}`;
83
+ const panelId = (index: number) => `${id}-panel-${index}`;
119
84
 
120
- function normalizeValue(current: string | Iterable<string> | null | undefined): string[] {
121
- if (current == null) return [];
122
- return typeof current === 'string' ? [current] : [...current];
85
+ // The one path to a change: `onItemOpenChange` runs first and may cancel, then the expanded
86
+ // ids update and `onValueChange` reports them.
87
+ function requestChange(index: number, open: boolean, init: OpenChangeInit) {
88
+ const target = items[index];
89
+ if (!target || open === expandedIds.includes(target.id)) return;
90
+ const details = createOpenChangeDetails(init);
91
+ onItemOpenChange?.({ item: itemsWithoutIds[index], index, open, details });
92
+ if (details.isCanceled) return;
93
+ const next = open
94
+ ? oneAtATime
95
+ ? [target.id]
96
+ : [...expandedIds, target.id]
97
+ : expandedIds.filter((expandedId) => expandedId !== target.id);
98
+ valueState.value = next;
99
+ onValueChange?.(next);
123
100
  }
124
101
  </script>
125
102
 
@@ -134,7 +111,7 @@
134
111
  {/snippet}
135
112
 
136
113
  <div
137
- {...accordion.root}
114
+ data-slot="accordion"
138
115
  data-size={size}
139
116
  data-density={density}
140
117
  data-variant={variant}
@@ -142,67 +119,90 @@
142
119
  class={classes.root({ size, density, variant, splitted, className })}
143
120
  {...attachments}
144
121
  >
145
- {#each items as accordionItem (accordionItem.id)}
146
- {@const accordionControl = accordion.getItem(accordionItem)}
122
+ {#each items as accordionItem, index (accordionItem.id)}
123
+ {@const expanded = expandedIds.includes(accordionItem.id)}
124
+ {@const itemDisabled = isDisabled(accordionItem)}
147
125
  <div
126
+ data-slot="accordion-item"
127
+ data-index={index}
128
+ data-disabled={itemDisabled ? '' : undefined}
129
+ {...openStateAttributes(expanded)}
148
130
  class={classes.item({
149
131
  size,
150
132
  density,
151
133
  variant,
152
134
  splitted,
153
- expanded: accordionControl.isExpanded
135
+ expanded
154
136
  })}
155
137
  >
156
- <button {...accordionControl.trigger} class={classes.trigger({ size, density, variant })}>
157
- <div
158
- {...accordionControl.heading}
159
- aria-level={headingLevel}
160
- class={classes.header({ size, density })}
138
+ <svelte:element this={`h${headingLevel}`} class={classes.heading()}>
139
+ <button
140
+ type="button"
141
+ id={triggerId(index)}
142
+ aria-expanded={expanded}
143
+ aria-controls={expanded || kept ? panelId(index) : undefined}
144
+ disabled={itemDisabled}
145
+ data-slot="accordion-trigger"
146
+ data-index={index}
147
+ data-state={expanded ? 'open' : 'closed'}
148
+ data-disabled={itemDisabled ? '' : undefined}
149
+ {...openStateAttributes(expanded)}
150
+ class={classes.trigger({ size, density, variant })}
151
+ onclick={(event) => {
152
+ if (itemDisabled) return;
153
+ requestChange(index, !expanded, {
154
+ reason: 'trigger-press',
155
+ event,
156
+ trigger: event.currentTarget
157
+ });
158
+ }}
161
159
  >
162
- <Slot
163
- render={title || resolve(accordionItem, titleKey || 'title')}
164
- class={classes.title({ size })}
165
- payload={{ item: accordionItem }}
166
- />
167
- <Slot
168
- render={description || resolve(accordionItem, descriptionKey || 'description')}
169
- class={classes.description({ size })}
170
- payload={{ item: accordionItem }}
171
- />
172
- </div>
173
- {#if icon !== 'none'}
174
- <span
175
- data-slot="accordion-icon-wrapper"
176
- aria-hidden="true"
177
- class={classes.iconWrapper({
178
- expanded: icon === 'chevron' && accordionControl.isExpanded
179
- })}
180
- >
181
- {@render renderIcon(accordionControl.isExpanded)}
182
- </span>
183
- {/if}
184
- </button>
160
+ <div class={classes.header({ size, density })}>
161
+ <Slot
162
+ render={title || resolve(accordionItem, titleKey || 'title')}
163
+ class={classes.title({ size })}
164
+ payload={{ item: accordionItem }}
165
+ />
166
+ <Slot
167
+ render={description || resolve(accordionItem, descriptionKey || 'description')}
168
+ class={classes.description({ size })}
169
+ payload={{ item: accordionItem }}
170
+ />
171
+ </div>
172
+ {#if icon !== 'none'}
173
+ <span
174
+ data-slot="accordion-icon-wrapper"
175
+ aria-hidden="true"
176
+ class={classes.iconWrapper({
177
+ expanded: icon === 'chevron' && expanded
178
+ })}
179
+ >
180
+ {@render renderIcon(expanded)}
181
+ </span>
182
+ {/if}
183
+ </button>
184
+ </svelte:element>
185
185
 
186
- {#if accordionControl.isExpanded}
187
- <div
188
- in:slideTransition={split.in}
189
- out:slideTransition={split.out}
190
- {...accordionControl.content}
191
- class={classes.content({ size, density, variant })}
192
- >
193
- <Slot
194
- render={content || resolve(accordionItem, contentKey || 'content')}
195
- payload={{ item: accordionItem }}
196
- />
197
- </div>
198
- {:else if accessible}
199
- <span class="sr-only">
200
- <Slot
201
- render={content || resolve(accordionItem, contentKey || 'content')}
202
- payload={{ item: accordionItem }}
203
- />
204
- </span>
205
- {/if}
186
+ <AccordionPanel
187
+ id={panelId(index)}
188
+ labelledby={triggerId(index)}
189
+ open={expanded}
190
+ hiddenUntilFound={hiddenUntilFound && !itemDisabled}
191
+ keepMounted={keepMounted || (hiddenUntilFound && itemDisabled)}
192
+ {motion}
193
+ class={classes.content({ size, density, variant })}
194
+ onBeforeMatch={(event) => {
195
+ // A disabled item cannot be toggled, so find-in-page must not open it either.
196
+ if (!itemDisabled) requestChange(index, true, { reason: 'find-in-page', event });
197
+ }}
198
+ onAfterOpen={() => onItemAfterOpen?.({ item: itemsWithoutIds[index], index })}
199
+ onAfterClose={() => onItemAfterClose?.({ item: itemsWithoutIds[index], index })}
200
+ >
201
+ <Slot
202
+ render={content || resolve(accordionItem, contentKey || 'content')}
203
+ payload={{ item: accordionItem }}
204
+ />
205
+ </AccordionPanel>
206
206
  </div>
207
207
  {/each}
208
208
  </div>
@@ -1,4 +1,3 @@
1
- import { Accordion } from 'melt/builders';
2
1
  import type { AccordionProps } from './accordion.props.js';
3
2
  declare function $$render<Item extends Record<string, unknown>>(): {
4
3
  props: AccordionProps<Item>;
@@ -0,0 +1,64 @@
1
+ <script lang="ts">
2
+ import type { Snippet } from 'svelte';
3
+ import {
4
+ disclosurePanel,
5
+ type DisclosurePanelMotion
6
+ } from '../../attachments/disclosurePanel.svelte.js';
7
+
8
+ // One item's panel. The disclosure panel controller is created per item, so every item
9
+ // keeps its own `hidden` state, height animation and completion callbacks.
10
+ let {
11
+ id,
12
+ labelledby,
13
+ open,
14
+ hiddenUntilFound,
15
+ keepMounted,
16
+ motion,
17
+ class: className,
18
+ onBeforeMatch,
19
+ onAfterOpen,
20
+ onAfterClose,
21
+ children
22
+ }: {
23
+ id: string;
24
+ /** The id of the trigger that labels the region. */
25
+ labelledby: string;
26
+ open: boolean;
27
+ hiddenUntilFound?: boolean;
28
+ keepMounted?: boolean;
29
+ motion?: DisclosurePanelMotion;
30
+ /** Classes of the content element inside the panel. */
31
+ class?: string;
32
+ onBeforeMatch: (event: Event) => void;
33
+ onAfterOpen?: () => void;
34
+ onAfterClose?: () => void;
35
+ children: Snippet;
36
+ } = $props();
37
+
38
+ const panel = disclosurePanel({
39
+ open: () => open,
40
+ hiddenUntilFound: () => hiddenUntilFound,
41
+ keepMounted: () => keepMounted,
42
+ motion: () => motion,
43
+ onBeforeMatch: (event) => onBeforeMatch(event),
44
+ onAfterOpen: () => onAfterOpen?.(),
45
+ onAfterClose: () => onAfterClose?.()
46
+ });
47
+ </script>
48
+
49
+ {#if panel.rendered}
50
+ <!-- The panel stays bare: while it hides until found, only its content is skipped, so the
51
+ padding of the content slot lives on the element inside. -->
52
+ <div
53
+ {id}
54
+ role="region"
55
+ aria-labelledby={labelledby}
56
+ data-slot="accordion-panel"
57
+ {...panel.attributes}
58
+ {@attach panel.attach}
59
+ >
60
+ <div class={className} data-open={open ? '' : undefined} data-closed={open ? undefined : ''}>
61
+ {@render children()}
62
+ </div>
63
+ </div>
64
+ {/if}
@@ -0,0 +1,20 @@
1
+ import type { Snippet } from 'svelte';
2
+ import { type DisclosurePanelMotion } from '../../attachments/disclosurePanel.svelte.js';
3
+ type $$ComponentProps = {
4
+ id: string;
5
+ /** The id of the trigger that labels the region. */
6
+ labelledby: string;
7
+ open: boolean;
8
+ hiddenUntilFound?: boolean;
9
+ keepMounted?: boolean;
10
+ motion?: DisclosurePanelMotion;
11
+ /** Classes of the content element inside the panel. */
12
+ class?: string;
13
+ onBeforeMatch: (event: Event) => void;
14
+ onAfterOpen?: () => void;
15
+ onAfterClose?: () => void;
16
+ children: Snippet;
17
+ };
18
+ declare const AccordionPanel: import("svelte").Component<$$ComponentProps, {}, "">;
19
+ type AccordionPanel = ReturnType<typeof AccordionPanel>;
20
+ export default AccordionPanel;
@@ -0,0 +1,24 @@
1
+ /**
2
+ * The styling hooks an Accordion exposes. Attributes are presence attributes (`''` while the
3
+ * state holds, omitted otherwise) unless the description says they carry a value.
4
+ */
5
+ export declare const accordionDataAttributes: {
6
+ readonly 'data-open': "On an item, its trigger, its panel and the panel's content: present while the item is expanded.";
7
+ readonly '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.";
8
+ readonly 'data-entering': "On a panel: present while its opening animation plays.";
9
+ readonly 'data-exiting': "On a panel: present while its closing animation plays.";
10
+ readonly 'data-disabled': "On an item and its trigger: present while the item is disabled.";
11
+ readonly 'data-state': "On a trigger: `open` or `closed` (kept for compatibility; prefer `data-open` / `data-closed`).";
12
+ readonly 'data-index': "On an item and its trigger: the item index.";
13
+ readonly 'data-slot': "The part: `accordion`, `accordion-item`, `accordion-trigger`, `accordion-icon-wrapper` or `accordion-panel`.";
14
+ readonly 'data-size': "On the root: the resolved `size`.";
15
+ readonly 'data-density': "On the root: the resolved `density`.";
16
+ readonly 'data-variant': "On the root: the resolved `variant`.";
17
+ };
18
+ /** The name of an Accordion data attribute. */
19
+ export type AccordionDataAttribute = keyof typeof accordionDataAttributes;
20
+ export declare const accordionCssVariables: {
21
+ readonly '--disclosure-panel-height': "On a panel: its measured height in px while it animates, `auto` once open and `0px` once closed.";
22
+ };
23
+ /** The name of an Accordion CSS variable. */
24
+ export type AccordionCssVariable = keyof typeof accordionCssVariables;
@@ -0,0 +1,20 @@
1
+ /**
2
+ * The styling hooks an Accordion exposes. Attributes are presence attributes (`''` while the
3
+ * state holds, omitted otherwise) unless the description says they carry a value.
4
+ */
5
+ export const accordionDataAttributes = {
6
+ 'data-open': "On an item, its trigger, its panel and the panel's content: present while the item is expanded.",
7
+ '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.",
8
+ 'data-entering': 'On a panel: present while its opening animation plays.',
9
+ 'data-exiting': 'On a panel: present while its closing animation plays.',
10
+ 'data-disabled': 'On an item and its trigger: present while the item is disabled.',
11
+ 'data-state': 'On a trigger: `open` or `closed` (kept for compatibility; prefer `data-open` / `data-closed`).',
12
+ 'data-index': 'On an item and its trigger: the item index.',
13
+ 'data-slot': 'The part: `accordion`, `accordion-item`, `accordion-trigger`, `accordion-icon-wrapper` or `accordion-panel`.',
14
+ 'data-size': 'On the root: the resolved `size`.',
15
+ 'data-density': 'On the root: the resolved `density`.',
16
+ 'data-variant': 'On the root: the resolved `variant`.'
17
+ };
18
+ export const accordionCssVariables = {
19
+ '--disclosure-panel-height': 'On a panel: its measured height in px while it animates, `auto` once open and `0px` once closed.'
20
+ };
@@ -1 +1 @@
1
- export declare const accordionDescription = "\n# Accordion Component\n\nThe Accordion component provides an interactive collapsible container for organizing content. It supports single or multiple expanded items, various visual styles, and customizable transitions.\n\n## Basic Usage\n\n```svelte\n<script>\n\timport { Accordion } from 'entasis/accordion';\n</script>\n\n<Accordion \n\titems={[\n\t\t{ title: 'Section 1', content: 'Content 1' },\n\t\t{ title: 'Section 2', content: 'Content 2' }\n\t]}\n/>\n```\n\n## Props\n\n### Core Props\n- **items**: Array<Item> (bindable) - Array of accordion items to display\n- **value**: string[] (bindable) - Expanded item ids\n- **defaultValue**: string[] - Initially expanded item ids when value is omitted\n- **titleKey**: string - Key to extract title from items (default: 'title')\n- **contentKey**: string - Key to extract content from items (default: 'content')\n- **descriptionKey**: string - Key to extract description from items (default: 'description')\n\n### Layout Props\n- **variant**: 'classic' | 'card' | 'outline' (default: 'classic')\n - classic: flat rows separated by a muted border (nova/shadcn look) \u2014 the title underlines on hover, the chevron rotates\n - card: the rows wrapped in a raised surface (rows inset with px-4)\n - outline: the rows wrapped in a muted border (rows inset with px-4)\n\n- **size**: 'small' | 'normal' | 'large' (default: 'normal')\n - Scales typography only: title, description and content text sizes plus the icon size. Spacing is controlled by density.\n\n- **density**: 'compact' | 'normal' | 'comfortable' (default: 'normal')\n - Scales paddings and gaps only: trigger vertical padding, content bottom padding, header gap, and the gap between splitted items. Combine freely with size.\n\n- **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)\n\n### Event Props\n- **onValueChange**: (value: string[]) => void - Called once when expanded item ids change\n- **onItemOpenChange**: (options: { item: Item; index: number; open: boolean }) => void - Called after one item's open state changes\n\n### Slot Props\n- **title**: Snippet - Custom title rendering\n- **description**: Snippet - Custom description rendering\n- **content**: Snippet - Custom content rendering\n- **icon**: Snippet - Custom icon rendering\n\n### Behavior Props\n- **oneAtATime**: boolean (default: true) - Whether only one item can be expanded at a time\n\n### Visual Props\n- **icon**: 'chevron' | 'plus-minus' | 'none' | Snippet (default: 'chevron')\n - chevron: Down chevron that rotates\n - plus-minus: Plus/minus glyph\n - none: Hide the indicator\n - Custom snippet for custom icons\n\n- **transition**: ResponsiveProps<FSOProps> - Slide transition override for the expanded content; beats the `motion` theme slot\n\n### Styling Props\n- **class**: string - Additional CSS classes\n- **theme**: ComponentTheme - Custom theme overrides\n\n## Structure\n\n```\n<Accordion>\n\t<AccordionItem>\n\t\t<AccordionTrigger>\n\t\t\t<AccordionHeader>\n\t\t\t\t<Title />\n\t\t\t\t<Description />\n\t\t\t</AccordionHeader>\n\t\t\t<Icon />\n\t\t</AccordionTrigger>\n\t\t<AccordionContent />\n\t</AccordionItem>\n</Accordion>\n```\n\n## Examples\n\n### Basic Example\n\n```svelte\n<script>\n\timport { Accordion } from 'entasis/accordion';\n\t\n\tlet items = [\n\t\t{ title: 'What is Svelte?', content: 'Svelte is a radical new approach to building user interfaces.' },\n\t\t{ title: 'Why use Svelte?', content: 'Svelte offers better performance and smaller bundle sizes.' }\n\t];\n</script>\n\n<Accordion {items} />\n```\n\n### Multiple Expanded Items\n\n```svelte\n<script>\n\timport { Accordion } from 'entasis/accordion';\n\t\n\tlet items = [\n\t\t{ title: 'Section 1', content: 'Content 1' },\n\t\t{ title: 'Section 2', content: 'Content 2' }\n\t];\n</script>\n\n<Accordion \n\t{items}\n\toneAtATime={false}\n/>\n```\n\n### Advanced Example\n\n```svelte\n<script>\n\timport { Accordion } from 'entasis/accordion';\n\t\n\tlet items = [\n\t\t{ \n\t\t\ttitle: 'Getting Started',\n\t\t\tdescription: 'Learn the basics',\n\t\t\tcontent: 'Start by installing Svelte...'\n\t\t}\n\t];\n</script>\n\n<Accordion {items} />\n```\n\n### Different Variants\n\n```svelte\n<script>\n\timport { Accordion } from 'entasis/accordion';\n\t\n\tlet items = [\n\t\t{ title: 'Item 1', content: 'Content 1' }\n\t];\n</script>\n\n<!-- Default flat look -->\n<Accordion {items} />\n\n<!-- Raised card container -->\n<Accordion variant=\"card\" {items} />\n\n<!-- Bordered container -->\n<Accordion variant=\"outline\" {items} />\n\n<!-- One surface per item -->\n<Accordion variant=\"card\" splitted {items} />\n```\n\n### Different Icons\n\n```svelte\n<script>\n\timport { Accordion } from 'entasis/accordion';\n\timport { starIcon } from 'entasis/icons/star';\n\t\n\tlet items = [\n\t\t{ title: 'Section 1', content: 'Content 1' }\n\t];\n</script>\n\n<!-- Chevron icon -->\n<Accordion icon=\"chevron\" {items} />\n\n<!-- Plus/minus icon -->\n<Accordion icon=\"plus-minus\" {items} />\n\n<!-- Custom icon (a snippet, no payload) -->\n<Accordion {items}>\n\t{#snippet icon()}\n\t\t{@render starIcon()}\n\t{/snippet}\n</Accordion>\n```\n\n### With Custom Keys\n\n```svelte\n<script>\n\timport { Accordion } from 'entasis/accordion';\n\t\n\tlet faqs = [\n\t\t{ question: 'How to install?', answer: 'Run npm install...' }\n\t];\n</script>\n\n<Accordion \n\titems={faqs}\n\ttitleKey=\"question\"\n\tcontentKey=\"answer\"\n/>\n```\n\n### With Event Handler\n\n```svelte\n<script>\n\timport { Accordion } from 'entasis/accordion';\n\t\n\tlet items = [\n\t\t{ title: 'Section 1', content: 'Content 1' }\n\t];\n\t\n\tfunction handleToggle({ item, index, open }) {\n\t\tconsole.log(`Item ${item.title} at index ${index} is now ${open ? 'open' : 'closed'}`);\n\t}\n</script>\n\n<Accordion \n\t{items}\n\tonItemOpenChange={handleToggle}\n/>\n```\n\n### Custom Content Rendering\n\n```svelte\n<script>\n\timport { Accordion } from 'entasis/accordion';\n\t\n\tlet items = [\n\t\t{ title: 'Section 1', content: 'Content 1' }\n\t];\n</script>\n\n<Accordion {items}>\n\t{#snippet title({ item })}\n\t\t<strong>{item.title}</strong>\n\t{/snippet}\n\t\n\t{#snippet content({ item })}\n\t\t<div class=\"p-4\">\n\t\t\t{@html item.content}\n\t\t</div>\n\t{/snippet}\n</Accordion>\n```\n\n## Accessibility\n\n- Automatically handles ARIA attributes\n- Keyboard navigation support (Enter/Space to toggle)\n- Focus management for expanded items\n- Screen reader friendly with proper roles\n\n## Notes\n\n- Items are automatically assigned IDs if not provided\n- Uses Melt UI's Accordion builder for accessibility\n- Smooth transitions with the library's themed slide transition\n- Supports bindable items for dynamic updates\n\n## Theme Customization\n\nThe Accordion 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 accordion container styles\n- **item**: Individual accordion item styles\n- **trigger**: Accordion trigger button styles\n- **header**: Header section styles (contains title and description)\n- **title**: Title text styles\n- **description**: Description text styles\n- **icon**: Expand/collapse icon styles\n- **content**: Content panel styles\n\n### Available Variants\n\n**root**:\n- base: Base classes for main container\n- Variants:\n - size: 'small' | 'normal' | 'large'\n - density: 'compact' | 'normal' | 'comfortable' - Gap between splitted items (via compounds)\n - variant: 'classic' | 'card' | 'outline' - Container surface (raised / bordered / none)\n - splitted: boolean - Gap layout for per-item surfaces\n\n**item**:\n- base: Base classes for individual items (muted separator when not splitted; own surface when splitted)\n- Variants:\n - size: 'small' | 'normal' | 'large' - Item size\n - density: 'compact' | 'normal' | 'comfortable'\n - variant: 'classic' | 'card' | 'outline' - Per-item surface when splitted\n - splitted: boolean\n - expanded: boolean - Expanded state styling\n\n**trigger**:\n- base: Base classes for trigger button\n- Variants:\n - size: 'small' | 'normal' | 'large'\n - density: 'compact' | 'normal' | 'comfortable' - Vertical padding\n - variant: 'classic' | 'card' | 'outline' - Horizontal inset on contained variants\n\n**header**:\n- base: Base classes for header section\n- Variants:\n - size: 'small' | 'normal' | 'large'\n - density: 'compact' | 'normal' | 'comfortable' - Gap between title and description\n\n**title**:\n- base: Base classes for title text (underlines on trigger hover)\n- Variants:\n - size: 'small' | 'normal' | 'large' - Text size\n\n**description**:\n- base: Base classes for description text\n- Variants:\n - size: 'small' | 'normal' | 'large' - Text size\n\n**icon**:\n- base: Base classes for expand/collapse icon (muted, rotates for the chevron)\n- Variants:\n - size: 'small' | 'normal' | 'large' - Icon size\n\n**content**:\n- base: Base classes for content panel\n- Variants:\n - size: 'small' | 'normal' | 'large' - Text size\n - density: 'compact' | 'normal' | 'comfortable' - Bottom padding\n - variant: 'classic' | 'card' | 'outline' - Horizontal inset on contained variants\n\n### Usage Examples\n\n**Bordered look (composition)**:\n```svelte\n<Accordion\n items={items}\n class=\"rounded-lg border border-neutral-muted\"\n theme={{\n item: { base: 'px-4' },\n content: { base: 'px-4' }\n }}\n/>\n```\n\n**Basic Theme Override**:\n```svelte\n<Accordion\n items={items}\n theme={{\n trigger: {\n base: 'state-layer'\n },\n item: {\n expanded: {\n true: 'bg-primary/5'\n }\n }\n }}\n/>\n```\n\n**Global Theme Setting**:\n```svelte\n<script>\n import { setAccordionTheme } from './index.ts';\n\n setAccordionTheme({\n trigger: {\n base: 'transition-colors',\n density: {\n normal: 'px-4 py-3'\n }\n }\n });\n</script>\n```\n\n## Motion\n\n- **motion** theme slot: a slide keyed by `axis` (`y` by default, `x` for a horizontal list).\n- Takes `in` / `out` slide params plus a `duration` / `easing` motion token.\n- Ladder: `<Theme components={{ accordion: { motion } }}>` \u2192 `setAccordionTheme({ motion })` \u2192\n `theme.motion` \u2192 the `transition` prop. Reduced motion collapses it to 0.\n";
1
+ export declare const accordionDescription = "\n# Accordion Component\n\nThe Accordion component provides an interactive collapsible container for organizing content. It supports single or multiple expanded items, various visual styles, and customizable transitions.\n\n## Basic Usage\n\n```svelte\n<script>\n\timport { Accordion } from 'entasis/accordion';\n</script>\n\n<Accordion \n\titems={[\n\t\t{ title: 'Section 1', content: 'Content 1' },\n\t\t{ title: 'Section 2', content: 'Content 2' }\n\t]}\n/>\n```\n\n## Props\n\n### Core Props\n- **items**: Array<Item> (bindable) - Array of accordion items to display\n- **value**: string[] (bindable) - Expanded item ids\n- **defaultValue**: string[] - Initially expanded item ids when value is omitted\n- **titleKey**: string - Key to extract title from items (default: 'title')\n- **contentKey**: string - Key to extract content from items (default: 'content')\n- **descriptionKey**: string - Key to extract description from items (default: 'description')\n- **disabledKey**: string - Key whose boolean disables one item (default: 'disabled')\n- **disabled**: boolean (default: false) - Disables every item\n- **headingLevel**: 2 | 3 | 4 | 5 | 6 (default: 3) - Level of the heading element that wraps each trigger\n\n### Layout Props\n- **variant**: 'classic' | 'card' | 'outline' (default: 'classic')\n - classic: flat rows separated by a muted border (nova/shadcn look) \u2014 the title underlines on hover, the chevron rotates\n - card: the rows wrapped in a raised surface (rows inset with px-4)\n - outline: the rows wrapped in a muted border (rows inset with px-4)\n\n- **size**: 'small' | 'normal' | 'large' (default: 'normal')\n - Scales typography only: title, description and content text sizes plus the icon size. Spacing is controlled by density.\n\n- **density**: 'compact' | 'normal' | 'comfortable' (default: 'normal')\n - Scales paddings and gaps only: trigger vertical padding, content bottom padding, header gap, and the gap between splitted items. Combine freely with size.\n\n- **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)\n\n### Event Props\n- **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.\n- **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`.\n- **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.\n- **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.\n\n### Slot Props\n- **title**: Snippet - Custom title rendering\n- **description**: Snippet - Custom description rendering\n- **content**: Snippet - Custom content rendering\n- **icon**: Snippet - Custom icon rendering\n\n### Behavior Props\n- **oneAtATime**: boolean (default: true) - Whether only one item can be expanded at a time\n- **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`.\n- **keepMounted**: boolean (default: false) - Keeps collapsed panels mounted under `hidden`, preserving their state (form values, scroll). Not findable by the browser.\n\n### Visual Props\n- **icon**: 'chevron' | 'plus-minus' | 'none' | Snippet (default: 'chevron')\n - chevron: Down chevron that rotates\n - plus-minus: Plus/minus glyph\n - none: Hide the indicator\n - Custom snippet for custom icons\n\n- **transition**: ResponsiveProps<FSOProps> - Slide transition override for the expanded content; beats the `motion` theme slot\n\n### Styling Props\n- **class**: string - Additional CSS classes\n- **theme**: ComponentTheme - Custom theme overrides\n\n## Structure\n\n```\n<Accordion>\n\t<AccordionItem>\n\t\t<Heading> <!-- h2 to h6, headingLevel -->\n\t\t\t<AccordionTrigger> <!-- button: id, aria-expanded, aria-controls, data-index -->\n\t\t\t\t<AccordionHeader>\n\t\t\t\t\t<Title />\n\t\t\t\t\t<Description />\n\t\t\t\t</AccordionHeader>\n\t\t\t\t<Icon />\n\t\t\t</AccordionTrigger>\n\t\t</Heading>\n\t\t<AccordionContent /> <!-- region: id, aria-labelledby the trigger -->\n\t</AccordionItem>\n</Accordion>\n```\n\nThe 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.\n\n## Examples\n\n### Basic Example\n\n```svelte\n<script>\n\timport { Accordion } from 'entasis/accordion';\n\t\n\tlet items = [\n\t\t{ title: 'What is Svelte?', content: 'Svelte is a radical new approach to building user interfaces.' },\n\t\t{ title: 'Why use Svelte?', content: 'Svelte offers better performance and smaller bundle sizes.' }\n\t];\n</script>\n\n<Accordion {items} />\n```\n\n### Multiple Expanded Items\n\n```svelte\n<script>\n\timport { Accordion } from 'entasis/accordion';\n\t\n\tlet items = [\n\t\t{ title: 'Section 1', content: 'Content 1' },\n\t\t{ title: 'Section 2', content: 'Content 2' }\n\t];\n</script>\n\n<Accordion \n\t{items}\n\toneAtATime={false}\n/>\n```\n\n### Advanced Example\n\n```svelte\n<script>\n\timport { Accordion } from 'entasis/accordion';\n\t\n\tlet items = [\n\t\t{ \n\t\t\ttitle: 'Getting Started',\n\t\t\tdescription: 'Learn the basics',\n\t\t\tcontent: 'Start by installing Svelte...'\n\t\t}\n\t];\n</script>\n\n<Accordion {items} />\n```\n\n### Different Variants\n\n```svelte\n<script>\n\timport { Accordion } from 'entasis/accordion';\n\t\n\tlet items = [\n\t\t{ title: 'Item 1', content: 'Content 1' }\n\t];\n</script>\n\n<!-- Default flat look -->\n<Accordion {items} />\n\n<!-- Raised card container -->\n<Accordion variant=\"card\" {items} />\n\n<!-- Bordered container -->\n<Accordion variant=\"outline\" {items} />\n\n<!-- One surface per item -->\n<Accordion variant=\"card\" splitted {items} />\n```\n\n### Different Icons\n\n```svelte\n<script>\n\timport { Accordion } from 'entasis/accordion';\n\timport { starIcon } from 'entasis/icons/star';\n\t\n\tlet items = [\n\t\t{ title: 'Section 1', content: 'Content 1' }\n\t];\n</script>\n\n<!-- Chevron icon -->\n<Accordion icon=\"chevron\" {items} />\n\n<!-- Plus/minus icon -->\n<Accordion icon=\"plus-minus\" {items} />\n\n<!-- Custom icon (a snippet, no payload) -->\n<Accordion {items}>\n\t{#snippet icon()}\n\t\t{@render starIcon()}\n\t{/snippet}\n</Accordion>\n```\n\n### With Custom Keys\n\n```svelte\n<script>\n\timport { Accordion } from 'entasis/accordion';\n\t\n\tlet faqs = [\n\t\t{ question: 'How to install?', answer: 'Run npm install...' }\n\t];\n</script>\n\n<Accordion \n\titems={faqs}\n\ttitleKey=\"question\"\n\tcontentKey=\"answer\"\n/>\n```\n\n### Find-in-page and disabled items\n\n```svelte\n<script>\n\timport { Accordion } from 'entasis/accordion';\n\n\tlet items = [\n\t\t{ title: 'Shipping', content: 'Orders ship within two days.' },\n\t\t{ title: 'Returns', content: 'Free returns for 30 days.', disabled: true }\n\t];\n</script>\n\n<!-- Ctrl+F finds \"two days\" and opens Shipping; Returns is skipped by Tab. -->\n<Accordion {items} hiddenUntilFound />\n```\n\n### With Event Handler\n\n```svelte\n<script>\n\timport { Accordion } from 'entasis/accordion';\n\t\n\tlet items = [\n\t\t{ title: 'Section 1', content: 'Content 1' }\n\t];\n\t\n\tfunction handleToggle({ item, index, open, details }) {\n\t\tconsole.log(`Item ${item.title} at index ${index} is opening: ${open} (${details.reason})`);\n\t\t// details.cancel() would keep it as it was.\n\t}\n</script>\n\n<Accordion \n\t{items}\n\tonItemOpenChange={handleToggle}\n/>\n```\n\n### Custom Content Rendering\n\n```svelte\n<script>\n\timport { Accordion } from 'entasis/accordion';\n\t\n\tlet items = [\n\t\t{ title: 'Section 1', content: 'Content 1' }\n\t];\n</script>\n\n<Accordion {items}>\n\t{#snippet title({ item })}\n\t\t<strong>{item.title}</strong>\n\t{/snippet}\n\t\n\t{#snippet content({ item })}\n\t\t<div class=\"p-4\">\n\t\t\t{@html item.content}\n\t\t</div>\n\t{/snippet}\n</Accordion>\n```\n\n## Styling hooks\n\nEvery item, trigger and panel carries its own open state.\n\nAttributes are presence attributes (set while the state holds, omitted otherwise) unless they carry a value.\n\n**Data attributes**\n- `data-open`: On an item, its trigger, its panel and the panel's content: present while the item is expanded.\n- `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.\n- `data-entering`: On a panel: present while its opening animation plays.\n- `data-exiting`: On a panel: present while its closing animation plays.\n- `data-disabled`: On an item and its trigger: present while the item is disabled.\n- `data-state`: On a trigger: `open` or `closed` (kept for compatibility; prefer `data-open` / `data-closed`).\n- `data-index`: On an item and its trigger: the item index.\n- `data-slot`: The part: `accordion`, `accordion-item`, `accordion-trigger`, `accordion-icon-wrapper` or `accordion-panel`.\n- `data-size`: On the root: the resolved `size`.\n- `data-density`: On the root: the resolved `density`.\n- `data-variant`: On the root: the resolved `variant`.\n\n**CSS variables**\n- `--disclosure-panel-height`: On a panel: its measured height in px while it animates, `auto` once open and `0px` once closed.\n\nThe typed maps `accordionDataAttributes` and `accordionCssVariables` (from `entasis/accordion`) list each name with its meaning.\n\n## Accessibility\n\n- Each trigger is a native `<button>` inside a heading element (`headingLevel`), with `aria-expanded` and, while its panel exists, `aria-controls`.\n- Each panel is a `role=\"region\"` labelled by its trigger.\n- 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.\n- A disabled item's trigger has the native `disabled` attribute: it is skipped by Tab and announced as unavailable.\n- Collapsed content is not copied anywhere for screen readers. Use `hiddenUntilFound` to make it findable.\n- Migration: the `accessible` prop is removed (collapsed content is no longer duplicated into screen-reader-only text).\n\n## Notes\n\n- Items are automatically assigned IDs if not provided\n- Expanded ids are tracked by the component itself; there is no builder dependency\n- Panels animate their height through the shared disclosure panel (`--disclosure-panel-height` is set on the panel)\n- Styling hooks: `data-open` / `data-closed` on the item, trigger and content, `data-disabled`, `data-index`, and `data-entering` / `data-exiting` on the panel\n- Supports bindable items for dynamic updates\n\n## Theme Customization\n\nThe Accordion 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 accordion container styles\n- **item**: Individual accordion item styles\n- **trigger**: Accordion trigger button styles\n- **heading**: The `h2`-`h6` element that wraps each trigger (margin-free by default)\n- **header**: Header section styles (contains title and description, inside the trigger)\n- **title**: Title text styles\n- **description**: Description text styles\n- **icon**: Expand/collapse icon styles\n- **content**: Content styles, on the element inside the region panel (so a hidden-until-found panel reserves no space)\n\n### Available Variants\n\n**root**:\n- base: Base classes for main container\n- Variants:\n - size: 'small' | 'normal' | 'large'\n - density: 'compact' | 'normal' | 'comfortable' - Gap between splitted items (via compounds)\n - variant: 'classic' | 'card' | 'outline' - Container surface (raised / bordered / none)\n - splitted: boolean - Gap layout for per-item surfaces\n\n**item**:\n- base: Base classes for individual items (muted separator when not splitted; own surface when splitted)\n- Variants:\n - size: 'small' | 'normal' | 'large' - Item size\n - density: 'compact' | 'normal' | 'comfortable'\n - variant: 'classic' | 'card' | 'outline' - Per-item surface when splitted\n - splitted: boolean\n - expanded: boolean - Expanded state styling\n\n**trigger**:\n- base: Base classes for trigger button\n- Variants:\n - size: 'small' | 'normal' | 'large'\n - density: 'compact' | 'normal' | 'comfortable' - Vertical padding\n - variant: 'classic' | 'card' | 'outline' - Horizontal inset on contained variants\n\n**header**:\n- base: Base classes for header section\n- Variants:\n - size: 'small' | 'normal' | 'large'\n - density: 'compact' | 'normal' | 'comfortable' - Gap between title and description\n\n**title**:\n- base: Base classes for title text (underlines on trigger hover)\n- Variants:\n - size: 'small' | 'normal' | 'large' - Text size\n\n**description**:\n- base: Base classes for description text\n- Variants:\n - size: 'small' | 'normal' | 'large' - Text size\n\n**icon**:\n- base: Base classes for expand/collapse icon (muted, rotates for the chevron)\n- Variants:\n - size: 'small' | 'normal' | 'large' - Icon size\n\n**content**:\n- base: Base classes for content panel\n- Variants:\n - size: 'small' | 'normal' | 'large' - Text size\n - density: 'compact' | 'normal' | 'comfortable' - Bottom padding\n - variant: 'classic' | 'card' | 'outline' - Horizontal inset on contained variants\n\n### Usage Examples\n\n**Bordered look (composition)**:\n```svelte\n<Accordion\n items={items}\n class=\"rounded-lg border border-neutral-muted\"\n theme={{\n item: { base: 'px-4' },\n content: { base: 'px-4' }\n }}\n/>\n```\n\n**Basic Theme Override**:\n```svelte\n<Accordion\n items={items}\n theme={{\n trigger: {\n base: 'state-layer'\n },\n item: {\n expanded: {\n true: 'bg-primary/5'\n }\n }\n }}\n/>\n```\n\n**Global Theme Setting**:\n```svelte\n<script>\n import { setAccordionTheme } from './index.ts';\n\n setAccordionTheme({\n trigger: {\n base: 'transition-colors',\n density: {\n normal: 'px-4 py-3'\n }\n }\n });\n</script>\n```\n\n## Motion\n\n- **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).\n- Takes `in` / `out` params plus a `duration` / `easing` motion token.\n- Ladder: `<Theme components={{ accordion: { motion } }}>` \u2192 `setAccordionTheme({ motion })` \u2192\n `theme.motion` \u2192 the `transition` prop. Reduced motion collapses it to 0.\n";