entasis 0.10.2 → 0.12.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (841) hide show
  1. package/README.md +1 -1
  2. package/dist/attachments/disclosurePanel.svelte.d.ts +84 -0
  3. package/dist/attachments/disclosurePanel.svelte.js +277 -0
  4. package/dist/attachments/portal.d.ts +17 -1
  5. package/dist/attachments/portal.js +39 -2
  6. package/dist/attachments/spinnerOverlay.svelte.js +12 -0
  7. package/dist/attachments/transitionSize.d.ts +6 -0
  8. package/dist/attachments/transitionSize.js +30 -0
  9. package/dist/components/AIAskUserQuestion/AIAskUserQuestion.svelte +131 -17
  10. package/dist/components/AIAskUserQuestion/AIAskUserQuestionFileStep.svelte +26 -6
  11. package/dist/components/AIAskUserQuestion/AIAskUserQuestionFileStep.svelte.d.ts +6 -0
  12. package/dist/components/AIAskUserQuestion/AIAskUserQuestionFooter.svelte +27 -53
  13. package/dist/components/AIAskUserQuestion/AIAskUserQuestionFooter.svelte.d.ts +3 -4
  14. package/dist/components/AIAskUserQuestion/AIAskUserQuestionHeader.svelte +19 -16
  15. package/dist/components/AIAskUserQuestion/AIAskUserQuestionStep.svelte +180 -21
  16. package/dist/components/AIAskUserQuestion/AIAskUserQuestionStep.svelte.d.ts +9 -1
  17. package/dist/components/AIAskUserQuestion/AIAskUserQuestionSummary.svelte +56 -0
  18. package/dist/components/AIAskUserQuestion/AIAskUserQuestionSummary.svelte.d.ts +4 -0
  19. package/dist/components/AIAskUserQuestion/aiAskUserQuestion.mcp.d.ts +1 -1
  20. package/dist/components/AIAskUserQuestion/aiAskUserQuestion.mcp.js +26 -8
  21. package/dist/components/AIAskUserQuestion/aiAskUserQuestion.props.d.ts +62 -5
  22. package/dist/components/AIAskUserQuestion/aiAskUserQuestion.theme.d.ts +42 -0
  23. package/dist/components/AIAskUserQuestion/aiAskUserQuestion.theme.js +53 -12
  24. package/dist/components/AIAskUserQuestion/aiAskUserQuestionAnswers.d.ts +17 -1
  25. package/dist/components/AIAskUserQuestion/aiAskUserQuestionAnswers.js +56 -8
  26. package/dist/components/AIAskUserQuestion/index.d.ts +3 -1
  27. package/dist/components/AIAskUserQuestion/index.js +2 -0
  28. package/dist/components/AIAskUserQuestion/schemas.d.ts +44 -0
  29. package/dist/components/AIAskUserQuestion/schemas.js +10 -3
  30. package/dist/components/AIChat/AIChat.svelte +10 -0
  31. package/dist/components/AIChat/AIChat.svelte.d.ts +2 -2
  32. package/dist/components/AIChat/AIChatComposerSurface.svelte +23 -5
  33. package/dist/components/AIChat/AIChatComposerSurface.svelte.d.ts +5 -0
  34. package/dist/components/AIChat/AIChatSkeleton.svelte +29 -37
  35. package/dist/components/AIChat/AIChatSurface.svelte +30 -2
  36. package/dist/components/AIChat/AIChatSurface.svelte.d.ts +1 -1
  37. package/dist/components/AIChat/AIChatThreadSurface.svelte +11 -1
  38. package/dist/components/AIChat/AIChatThreadSurface.svelte.d.ts +3 -1
  39. package/dist/components/AIChat/aiChat.mcp.d.ts +1 -1
  40. package/dist/components/AIChat/aiChat.mcp.js +31 -15
  41. package/dist/components/AIChat/aiChat.props.d.ts +36 -10
  42. package/dist/components/AIChat/aiChat.theme.d.ts +9 -0
  43. package/dist/components/AIChat/aiChat.theme.js +21 -4
  44. package/dist/components/AIChat/aiChatSkeleton.props.d.ts +5 -0
  45. package/dist/components/AIChat/index.d.ts +1 -1
  46. package/dist/components/AIComposer/AIComposer.svelte +102 -5
  47. package/dist/components/AIComposer/AIComposer.svelte.d.ts +1 -0
  48. package/dist/components/AIComposer/AIComposerFooter.svelte +54 -12
  49. package/dist/components/AIComposer/AIComposerFooter.svelte.d.ts +2 -0
  50. package/dist/components/AIComposer/AIComposerQueue.svelte +8 -3
  51. package/dist/components/AIComposer/aiComposer.editor.theme.js +13 -2
  52. package/dist/components/AIComposer/aiComposer.mcp.d.ts +1 -1
  53. package/dist/components/AIComposer/aiComposer.mcp.js +15 -7
  54. package/dist/components/AIComposer/aiComposer.props.d.ts +27 -7
  55. package/dist/components/AIComposer/aiComposer.theme.d.ts +42 -3
  56. package/dist/components/AIComposer/aiComposer.theme.js +37 -5
  57. package/dist/components/AIComposer/aiComposerFileController.svelte.d.ts +20 -0
  58. package/dist/components/AIComposer/aiComposerFileController.svelte.js +75 -9
  59. package/dist/components/AIComposer/aiComposerSourceAdapter.js +22 -4
  60. package/dist/components/AIComposer/aiComposerSubmitController.svelte.d.ts +12 -0
  61. package/dist/components/AIComposer/aiComposerSubmitController.svelte.js +16 -6
  62. package/dist/components/AIContext/AIContext.svelte +7 -3
  63. package/dist/components/AIContext/aiContext.mcp.d.ts +1 -1
  64. package/dist/components/AIContext/aiContext.mcp.js +1 -1
  65. package/dist/components/AIContext/aiContext.props.d.ts +4 -1
  66. package/dist/components/AIContext/aiContext.theme.d.ts +3 -0
  67. package/dist/components/AIContext/aiContext.theme.js +7 -2
  68. package/dist/components/AIConversation/AIConversation.svelte.d.ts +2 -2
  69. package/dist/components/AIFilePreview/aiFilePreview.theme.js +1 -1
  70. package/dist/components/AIMarker/AIMarker.svelte +2 -0
  71. package/dist/components/AIMarker/aiMarker.mcp.d.ts +1 -1
  72. package/dist/components/AIMarker/aiMarker.mcp.js +2 -0
  73. package/dist/components/AIMarker/aiMarker.props.d.ts +3 -0
  74. package/dist/components/AIMarker/aiMarker.theme.js +2 -2
  75. package/dist/components/AIMessage/AIMessage.svelte +38 -16
  76. package/dist/components/AIMessage/aiMessage.mcp.d.ts +1 -1
  77. package/dist/components/AIMessage/aiMessage.mcp.js +20 -6
  78. package/dist/components/AIMessage/aiMessage.props.d.ts +18 -2
  79. package/dist/components/AIMessage/aiMessage.theme.d.ts +51 -6
  80. package/dist/components/AIMessage/aiMessage.theme.js +91 -32
  81. package/dist/components/AIMessageActions/AIMessageActions.svelte +19 -9
  82. package/dist/components/AIMessageActions/aiMessageActions.mcp.d.ts +1 -1
  83. package/dist/components/AIMessageActions/aiMessageActions.mcp.js +11 -3
  84. package/dist/components/AIMessageActions/aiMessageActions.theme.js +36 -9
  85. package/dist/components/AIModelSelector/AIModelSelector.svelte +25 -10
  86. package/dist/components/AIModelSelector/aiModelSelector.mcp.d.ts +1 -1
  87. package/dist/components/AIModelSelector/aiModelSelector.mcp.js +1 -1
  88. package/dist/components/AIModelSelector/aiModelSelector.theme.d.ts +3 -0
  89. package/dist/components/AIModelSelector/aiModelSelector.theme.js +7 -3
  90. package/dist/components/AIReasoning/AIReasoning.svelte +135 -38
  91. package/dist/components/AIReasoning/aiReasoning.mcp.d.ts +1 -1
  92. package/dist/components/AIReasoning/aiReasoning.mcp.js +11 -5
  93. package/dist/components/AIReasoning/aiReasoning.props.d.ts +15 -4
  94. package/dist/components/AIReasoning/aiReasoning.theme.d.ts +45 -0
  95. package/dist/components/AIReasoning/aiReasoning.theme.js +47 -7
  96. package/dist/components/AISuggestion/AISuggestion.svelte +2 -1
  97. package/dist/components/AISuggestion/AISuggestions.svelte +2 -1
  98. package/dist/components/AISuggestion/aiSuggestion.mcp.d.ts +1 -1
  99. package/dist/components/AISuggestion/aiSuggestion.mcp.js +8 -1
  100. package/dist/components/AISuggestion/aiSuggestion.props.d.ts +4 -1
  101. package/dist/components/AISuggestion/aiSuggestion.theme.js +1 -1
  102. package/dist/components/AISuggestion/aiSuggestions.props.d.ts +7 -0
  103. package/dist/components/AIThread/AIThread.svelte +378 -95
  104. package/dist/components/AIThread/AIThreadAskUserQuestion.svelte +1 -0
  105. package/dist/components/AIThread/AIThreadItems.svelte +266 -64
  106. package/dist/components/AIThread/AIThreadItems.svelte.d.ts +7 -3
  107. package/dist/components/AIThread/AIThreadMarker.svelte +8 -1
  108. package/dist/components/AIThread/AIThreadMarker.svelte.d.ts +1 -0
  109. package/dist/components/AIThread/aiThread.mcp.d.ts +1 -1
  110. package/dist/components/AIThread/aiThread.mcp.js +34 -20
  111. package/dist/components/AIThread/aiThread.props.d.ts +73 -8
  112. package/dist/components/AIThread/aiThread.theme.d.ts +78 -0
  113. package/dist/components/AIThread/aiThread.theme.js +108 -9
  114. package/dist/components/AIThread/index.d.ts +1 -1
  115. package/dist/components/AIThread/threadAskUserQuestion.d.ts +4 -1
  116. package/dist/components/AIThread/threadAskUserQuestion.js +8 -4
  117. package/dist/components/AIThread/threadRenderItems.d.ts +74 -3
  118. package/dist/components/AIThread/threadRenderItems.js +265 -77
  119. package/dist/components/AIThread/threadScrollController.d.ts +0 -8
  120. package/dist/components/AIThread/threadScrollController.js +2 -39
  121. package/dist/components/AIThread/threadTools.d.ts +11 -0
  122. package/dist/components/AIThread/threadTools.js +79 -0
  123. package/dist/components/AIThreadToc/AIThreadToc.svelte +188 -18
  124. package/dist/components/AIThreadToc/AIThreadTocPreview.svelte +25 -2
  125. package/dist/components/AIThreadToc/AIThreadTocPreview.svelte.d.ts +3 -0
  126. package/dist/components/AIThreadToc/aiThreadToc.d.ts +4 -2
  127. package/dist/components/AIThreadToc/aiThreadToc.js +17 -5
  128. package/dist/components/AIThreadToc/aiThreadToc.mcp.d.ts +1 -1
  129. package/dist/components/AIThreadToc/aiThreadToc.mcp.js +13 -3
  130. package/dist/components/AIThreadToc/aiThreadToc.props.d.ts +11 -0
  131. package/dist/components/AIThreadToc/aiThreadToc.theme.d.ts +3 -0
  132. package/dist/components/AIThreadToc/aiThreadToc.theme.js +15 -6
  133. package/dist/components/AITool/AITool.svelte +56 -21
  134. package/dist/components/AITool/AIToolCallList.svelte +79 -29
  135. package/dist/components/AITool/AIToolCallList.svelte.d.ts +6 -2
  136. package/dist/components/AITool/AIToolStatusMark.svelte +52 -0
  137. package/dist/components/AITool/AIToolStatusMark.svelte.d.ts +14 -0
  138. package/dist/components/AITool/AIToolValueSection.svelte +126 -28
  139. package/dist/components/AITool/AIToolValueSection.svelte.d.ts +6 -2
  140. package/dist/components/AITool/AIToolValueTree.svelte +11 -16
  141. package/dist/components/AITool/AIToolValueTree.svelte.d.ts +2 -3
  142. package/dist/components/AITool/aiTool.mcp.d.ts +1 -1
  143. package/dist/components/AITool/aiTool.mcp.js +36 -8
  144. package/dist/components/AITool/aiTool.props.d.ts +52 -6
  145. package/dist/components/AITool/aiTool.theme.d.ts +117 -39
  146. package/dist/components/AITool/aiTool.theme.js +144 -140
  147. package/dist/components/AITool/aiToolClock.svelte.d.ts +18 -0
  148. package/dist/components/AITool/aiToolClock.svelte.js +62 -0
  149. package/dist/components/AITool/aiToolPrimitiveThemes.d.ts +0 -2
  150. package/dist/components/AITool/aiToolPrimitiveThemes.js +0 -10
  151. package/dist/components/AITool/index.d.ts +2 -1
  152. package/dist/components/AITool/index.js +1 -0
  153. package/dist/components/AITool/toolRendering.d.ts +33 -1
  154. package/dist/components/AITool/toolRendering.js +179 -15
  155. package/dist/components/AITool/toolValueTree.d.ts +14 -1
  156. package/dist/components/AITool/toolValueTree.js +126 -27
  157. package/dist/components/Accordion/Accordion.svelte +109 -109
  158. package/dist/components/Accordion/Accordion.svelte.d.ts +0 -1
  159. package/dist/components/Accordion/AccordionPanel.svelte +64 -0
  160. package/dist/components/Accordion/AccordionPanel.svelte.d.ts +20 -0
  161. package/dist/components/Accordion/accordion.attributes.d.ts +24 -0
  162. package/dist/components/Accordion/accordion.attributes.js +20 -0
  163. package/dist/components/Accordion/accordion.mcp.d.ts +1 -1
  164. package/dist/components/Accordion/accordion.mcp.js +78 -22
  165. package/dist/components/Accordion/accordion.props.d.ts +54 -10
  166. package/dist/components/Accordion/accordion.theme.d.ts +3 -0
  167. package/dist/components/Accordion/accordion.theme.js +4 -0
  168. package/dist/components/Accordion/index.d.ts +1 -0
  169. package/dist/components/Accordion/index.js +1 -0
  170. package/dist/components/AudioPlayer/audioPlayerVolumeControl.slider.theme.d.ts +31 -1
  171. package/dist/components/Avatar/Avatar.svelte +60 -10
  172. package/dist/components/Avatar/AvatarGroup.svelte +9 -0
  173. package/dist/components/Avatar/avatar.mcp.d.ts +1 -1
  174. package/dist/components/Avatar/avatar.mcp.js +13 -5
  175. package/dist/components/Avatar/avatar.props.d.ts +28 -1
  176. package/dist/components/Avatar/avatar.theme.js +3 -3
  177. package/dist/components/Avatar/index.d.ts +1 -1
  178. package/dist/components/Breadcrumbs/breadcrumbs.mcp.d.ts +1 -1
  179. package/dist/components/Breadcrumbs/breadcrumbs.mcp.js +1 -1
  180. package/dist/components/Button/Button.svelte +35 -15
  181. package/dist/components/Button/button.mcp.d.ts +1 -1
  182. package/dist/components/Button/button.mcp.js +8 -4
  183. package/dist/components/Button/button.props.d.ts +23 -8
  184. package/dist/components/Button/button.theme.d.ts +12 -0
  185. package/dist/components/Button/button.theme.js +17 -4
  186. package/dist/components/ButtonGroup/buttonGroup.mcp.d.ts +1 -1
  187. package/dist/components/ButtonGroup/buttonGroup.mcp.js +1 -1
  188. package/dist/components/ButtonGroup/buttonGroup.props.d.ts +4 -1
  189. package/dist/components/Collapsible/Collapsible.svelte +125 -19
  190. package/dist/components/Collapsible/collapsible.attributes.d.ts +21 -0
  191. package/dist/components/Collapsible/collapsible.attributes.js +17 -0
  192. package/dist/components/Collapsible/collapsible.mcp.d.ts +1 -1
  193. package/dist/components/Collapsible/collapsible.mcp.js +62 -12
  194. package/dist/components/Collapsible/collapsible.props.d.ts +39 -8
  195. package/dist/components/Collapsible/collapsible.theme.js +3 -1
  196. package/dist/components/Collapsible/index.d.ts +1 -0
  197. package/dist/components/Collapsible/index.js +1 -0
  198. package/dist/components/Command/Command.svelte +56 -14
  199. package/dist/components/Command/command.mcp.d.ts +1 -1
  200. package/dist/components/Command/command.mcp.js +12 -6
  201. package/dist/components/Command/command.props.d.ts +39 -6
  202. package/dist/components/Command/command.state.svelte.d.ts +40 -11
  203. package/dist/components/Command/command.state.svelte.js +75 -28
  204. package/dist/components/Command/command.theme.js +4 -3
  205. package/dist/components/Confirmation/Confirmation.svelte +72 -31
  206. package/dist/components/Confirmation/confirmation.mcp.d.ts +1 -1
  207. package/dist/components/Confirmation/confirmation.mcp.js +5 -4
  208. package/dist/components/ContextMenu/ContextMenu.svelte +126 -16
  209. package/dist/components/ContextMenu/contextMenu.mcp.d.ts +1 -1
  210. package/dist/components/ContextMenu/contextMenu.mcp.js +10 -7
  211. package/dist/components/ContextMenu/contextMenu.props.d.ts +13 -4
  212. package/dist/components/ContextMenu/contextMenu.theme.d.ts +3 -3
  213. package/dist/components/ContextMenu/contextMenu.theme.js +3 -2
  214. package/dist/components/DataTable/DataTable.svelte +4 -9
  215. package/dist/components/DataTable/DataTableEditor.svelte +5 -0
  216. package/dist/components/DataTable/DataTableFilter.svelte +1 -0
  217. package/dist/components/DataTable/DataTableToolbar.svelte +1 -0
  218. package/dist/components/DataTable/dataTable.mcp.d.ts +1 -1
  219. package/dist/components/DataTable/dataTable.mcp.js +4 -2
  220. package/dist/components/DataTable/dataTable.theme.d.ts +0 -3
  221. package/dist/components/DataTable/dataTable.theme.js +9 -6
  222. package/dist/components/Dialog/Dialog.svelte +120 -35
  223. package/dist/components/Dialog/Dialog.svelte.d.ts +1 -1
  224. package/dist/components/Dialog/DialogBackdrop.svelte +21 -1
  225. package/dist/components/Dialog/dialog.api.d.ts +65 -0
  226. package/dist/components/Dialog/dialog.api.js +1 -0
  227. package/dist/components/Dialog/dialog.attributes.d.ts +23 -0
  228. package/dist/components/Dialog/dialog.attributes.js +19 -0
  229. package/dist/components/Dialog/dialog.indent.d.ts +6 -0
  230. package/dist/components/Dialog/dialog.indent.js +16 -0
  231. package/dist/components/Dialog/dialog.mcp.d.ts +1 -1
  232. package/dist/components/Dialog/dialog.mcp.js +195 -22
  233. package/dist/components/Dialog/dialog.props.d.ts +102 -19
  234. package/dist/components/Dialog/dialog.snap.d.ts +40 -0
  235. package/dist/components/Dialog/dialog.snap.js +78 -0
  236. package/dist/components/Dialog/dialog.state.svelte.d.ts +122 -10
  237. package/dist/components/Dialog/dialog.state.svelte.js +525 -66
  238. package/dist/components/Dialog/dialog.theme.d.ts +48 -0
  239. package/dist/components/Dialog/dialog.theme.js +32 -9
  240. package/dist/components/Dialog/index.d.ts +4 -1
  241. package/dist/components/Dialog/index.js +1 -0
  242. package/dist/components/DocumentViewer/DocumentSearchControl.svelte +5 -3
  243. package/dist/components/DocumentViewer/documentOutput.js +2 -1
  244. package/dist/components/FloatingWindow/FloatingWindow.svelte +20 -32
  245. package/dist/components/FloatingWindow/FloatingWindow.svelte.d.ts +1 -1
  246. package/dist/components/FloatingWindow/floatingWindow.mcp.d.ts +1 -1
  247. package/dist/components/FloatingWindow/floatingWindow.mcp.js +3 -3
  248. package/dist/components/FloatingWindow/floatingWindow.props.d.ts +9 -4
  249. package/dist/components/FloatingWindow/floatingWindow.state.svelte.d.ts +8 -2
  250. package/dist/components/FloatingWindow/floatingWindow.state.svelte.js +18 -7
  251. package/dist/components/Form/Ask/Ask.svelte +9 -13
  252. package/dist/components/Form/Ask/ask.mcp.d.ts +1 -1
  253. package/dist/components/Form/Ask/ask.mcp.js +1 -1
  254. package/dist/components/Form/Ask/ask.props.d.ts +1 -1
  255. package/dist/components/Form/Autocomplete/Autocomplete.svelte +418 -0
  256. package/dist/components/Form/Autocomplete/Autocomplete.svelte.d.ts +4 -0
  257. package/dist/components/Form/Autocomplete/autocomplete.items.d.ts +30 -0
  258. package/dist/components/Form/Autocomplete/autocomplete.items.js +64 -0
  259. package/dist/components/Form/Autocomplete/autocomplete.mcp.d.ts +1 -0
  260. package/dist/components/Form/Autocomplete/autocomplete.mcp.js +134 -0
  261. package/dist/components/Form/Autocomplete/autocomplete.props.d.ts +146 -0
  262. package/dist/components/Form/Autocomplete/autocomplete.props.js +1 -0
  263. package/dist/components/Form/Autocomplete/autocomplete.theme.d.ts +213 -0
  264. package/dist/components/Form/Autocomplete/autocomplete.theme.js +119 -0
  265. package/dist/components/Form/Autocomplete/index.d.ts +3 -0
  266. package/dist/components/Form/Autocomplete/index.js +2 -0
  267. package/dist/components/Form/Calendar/CalendarInput.svelte +9 -0
  268. package/dist/components/Form/Calendar/CalendarMonthYearPicker.svelte +3 -0
  269. package/dist/components/Form/Calendar/CalendarPrimitive.svelte +5 -0
  270. package/dist/components/Form/Calendar/calendar.mcp.d.ts +1 -1
  271. package/dist/components/Form/Calendar/calendar.mcp.js +2 -1
  272. package/dist/components/Form/Calendar/calendarInput.props.d.ts +2 -0
  273. package/dist/components/Form/Calendar/useCalendar.svelte.d.ts +3 -0
  274. package/dist/components/Form/Calendar/useCalendar.svelte.js +3 -0
  275. package/dist/components/Form/Checkbox/Checkbox.svelte +17 -2
  276. package/dist/components/Form/Checkbox/checkbox.mcp.d.ts +1 -1
  277. package/dist/components/Form/Checkbox/checkbox.mcp.js +11 -1
  278. package/dist/components/Form/Checkbox/checkbox.props.d.ts +12 -1
  279. package/dist/components/Form/CheckboxesInput/CheckboxLine.svelte +69 -32
  280. package/dist/components/Form/CheckboxesInput/CheckboxLine.svelte.d.ts +10 -2
  281. package/dist/components/Form/CheckboxesInput/CheckboxesInput.svelte +123 -74
  282. package/dist/components/Form/CheckboxesInput/CheckboxesInput.svelte.d.ts +12 -12
  283. package/dist/components/Form/CheckboxesInput/checkboxesInput.mcp.d.ts +1 -1
  284. package/dist/components/Form/CheckboxesInput/checkboxesInput.mcp.js +11 -7
  285. package/dist/components/Form/CheckboxesInput/checkboxesInput.props.d.ts +25 -9
  286. package/dist/components/Form/CheckboxesInput/checkboxesInput.theme.d.ts +12 -0
  287. package/dist/components/Form/CheckboxesInput/checkboxesInput.theme.js +9 -4
  288. package/dist/components/Form/CheckboxesInput/choiceEnter.d.ts +11 -0
  289. package/dist/components/Form/CheckboxesInput/choiceEnter.js +27 -0
  290. package/dist/components/Form/ColorInput/ColorInput.svelte +12 -3
  291. package/dist/components/Form/ColorInput/colorInput.mcp.d.ts +1 -1
  292. package/dist/components/Form/ColorInput/colorInput.mcp.js +1 -0
  293. package/dist/components/Form/ColorPicker/ColorPicker.svelte +11 -2
  294. package/dist/components/Form/ColorPicker/ColorPickerInput.svelte +9 -0
  295. package/dist/components/Form/ColorPicker/colorPicker.mcp.d.ts +1 -1
  296. package/dist/components/Form/ColorPicker/colorPicker.mcp.js +1 -0
  297. package/dist/components/Form/ColorPicker/colorPicker.props.d.ts +2 -0
  298. package/dist/components/Form/ColorPicker/colorPicker.state.svelte.d.ts +4 -0
  299. package/dist/components/Form/ColorPicker/colorPicker.state.svelte.js +12 -8
  300. package/dist/components/Form/Combobox/Combobox.svelte +145 -185
  301. package/dist/components/Form/Combobox/Combobox.svelte.d.ts +1 -1
  302. package/dist/components/Form/Combobox/ComboboxPopup.svelte +128 -0
  303. package/dist/components/Form/Combobox/ComboboxPopup.svelte.d.ts +28 -0
  304. package/dist/components/Form/Combobox/combobox.attributes.d.ts +34 -0
  305. package/dist/components/Form/Combobox/combobox.attributes.js +25 -0
  306. package/dist/components/Form/Combobox/combobox.items.d.ts +28 -0
  307. package/dist/components/Form/Combobox/combobox.items.js +68 -0
  308. package/dist/components/Form/Combobox/combobox.mcp.d.ts +1 -1
  309. package/dist/components/Form/Combobox/combobox.mcp.js +104 -13
  310. package/dist/components/Form/Combobox/combobox.props.d.ts +113 -19
  311. package/dist/components/Form/Combobox/combobox.state.svelte.d.ts +137 -0
  312. package/dist/components/Form/Combobox/combobox.state.svelte.js +375 -0
  313. package/dist/components/Form/Combobox/combobox.theme.d.ts +63 -0
  314. package/dist/components/Form/Combobox/combobox.theme.js +37 -1
  315. package/dist/components/Form/Combobox/index.d.ts +2 -1
  316. package/dist/components/Form/Combobox/index.js +1 -0
  317. package/dist/components/Form/DateInput/DateInput.svelte +11 -3
  318. package/dist/components/Form/DateInput/dateInput.mcp.d.ts +1 -1
  319. package/dist/components/Form/DateInput/dateInput.mcp.js +5 -0
  320. package/dist/components/Form/DateSelector/DateSelector.svelte +5 -2
  321. package/dist/components/Form/DateSelector/DateSelectorInput.svelte +9 -0
  322. package/dist/components/Form/DateSelector/dateSelector.mcp.d.ts +1 -1
  323. package/dist/components/Form/DateSelector/dateSelector.mcp.js +2 -2
  324. package/dist/components/Form/DateSelector/dateSelector.props.d.ts +2 -0
  325. package/dist/components/Form/Field/Field.svelte +258 -32
  326. package/dist/components/Form/Field/Field.svelte.d.ts +15 -6
  327. package/dist/components/Form/Field/FieldGroup.svelte +29 -0
  328. package/dist/components/Form/Field/FieldGroup.svelte.d.ts +11 -0
  329. package/dist/components/Form/Field/FieldHiddenInputs.svelte +187 -0
  330. package/dist/components/Form/Field/FieldHiddenInputs.svelte.d.ts +26 -0
  331. package/dist/components/Form/Field/field.d.ts +75 -10
  332. package/dist/components/Form/Field/field.mcp.d.ts +1 -1
  333. package/dist/components/Form/Field/field.mcp.js +158 -18
  334. package/dist/components/Form/Field/field.messages.d.ts +47 -0
  335. package/dist/components/Form/Field/field.messages.js +64 -0
  336. package/dist/components/Form/Field/field.state.svelte.d.ts +117 -40
  337. package/dist/components/Form/Field/field.state.svelte.js +525 -16
  338. package/dist/components/Form/Field/field.theme.d.ts +46 -0
  339. package/dist/components/Form/Field/field.theme.js +33 -0
  340. package/dist/components/Form/Field/fieldHiddenInputs.props.d.ts +61 -0
  341. package/dist/components/Form/Field/fieldHiddenInputs.props.js +1 -0
  342. package/dist/components/Form/Field/fieldNativeForm.svelte.d.ts +14 -0
  343. package/dist/components/Form/Field/fieldNativeForm.svelte.js +113 -0
  344. package/dist/components/Form/Field/index.d.ts +5 -2
  345. package/dist/components/Form/Field/index.js +1 -0
  346. package/dist/components/Form/Field/schemas.js +7 -2
  347. package/dist/components/Form/File/FileInput.svelte +24 -3
  348. package/dist/components/Form/File/fileInput.mcp.d.ts +1 -1
  349. package/dist/components/Form/File/fileInput.mcp.js +1 -0
  350. package/dist/components/Form/Form/Form.svelte +49 -15
  351. package/dist/components/Form/Form/FormActions.svelte +3 -1
  352. package/dist/components/Form/Form/FormActions.svelte.d.ts +42 -2
  353. package/dist/components/Form/Form/FormFieldRenderer.svelte +96 -12
  354. package/dist/components/Form/Form/FormFieldRenderer.svelte.d.ts +3 -2
  355. package/dist/components/Form/Form/FormInputRenderer.svelte +7 -0
  356. package/dist/components/Form/Form/form.d.ts +84 -11
  357. package/dist/components/Form/Form/form.mcp.d.ts +1 -1
  358. package/dist/components/Form/Form/form.mcp.js +178 -12
  359. package/dist/components/Form/Form/form.props.d.ts +32 -1
  360. package/dist/components/Form/Form/form.registry.d.ts +28 -0
  361. package/dist/components/Form/Form/form.registry.js +59 -0
  362. package/dist/components/Form/Form/form.state.svelte.d.ts +1186 -420
  363. package/dist/components/Form/Form/form.state.svelte.js +322 -28
  364. package/dist/components/Form/Form/index.d.ts +4 -1
  365. package/dist/components/Form/Form/index.js +1 -0
  366. package/dist/components/Form/Form/visibility.d.ts +3130 -1863
  367. package/dist/components/Form/KeyValueInput/KeyValueInput.svelte +22 -10
  368. package/dist/components/Form/KeyValueInput/keyValueInput.mcp.d.ts +1 -1
  369. package/dist/components/Form/KeyValueInput/keyValueInput.mcp.js +1 -0
  370. package/dist/components/Form/MultiStepForm/MultiStepForm.svelte +12 -5
  371. package/dist/components/Form/MultiStepForm/multiStepForm.mcp.d.ts +1 -1
  372. package/dist/components/Form/MultiStepForm/multiStepForm.mcp.js +5 -3
  373. package/dist/components/Form/MultiStepForm/multiStepForm.props.d.ts +5 -0
  374. package/dist/components/Form/MultiStepForm/multiStepForm.state.svelte.d.ts +1050 -408
  375. package/dist/components/Form/MultiStepForm/multiStepForm.state.svelte.js +48 -24
  376. package/dist/components/Form/NumberInput/NumberInput.svelte +365 -46
  377. package/dist/components/Form/NumberInput/index.d.ts +1 -1
  378. package/dist/components/Form/NumberInput/numberInput.mcp.d.ts +1 -1
  379. package/dist/components/Form/NumberInput/numberInput.mcp.js +55 -30
  380. package/dist/components/Form/NumberInput/numberInput.props.d.ts +64 -4
  381. package/dist/components/Form/PasswordInput/Password.svelte +28 -1
  382. package/dist/components/Form/PasswordInput/index.d.ts +1 -1
  383. package/dist/components/Form/PasswordInput/passwordInput.mcp.d.ts +1 -1
  384. package/dist/components/Form/PasswordInput/passwordInput.mcp.js +20 -2
  385. package/dist/components/Form/PasswordInput/passwordInput.props.d.ts +23 -0
  386. package/dist/components/Form/PhoneInput/PhoneInput.svelte +11 -4
  387. package/dist/components/Form/PhoneInput/PhoneInputCountryPicker.svelte +47 -21
  388. package/dist/components/Form/PhoneInput/phoneInput-cdn.js +2 -1
  389. package/dist/components/Form/PhoneInput/phoneInput.mcp.d.ts +1 -1
  390. package/dist/components/Form/PhoneInput/phoneInput.mcp.js +6 -2
  391. package/dist/components/Form/PhoneInput/phoneInputCountry.d.ts +9 -3
  392. package/dist/components/Form/PhoneInput/phoneInputCountry.js +34 -24
  393. package/dist/components/Form/PinInput/PinInput.svelte +44 -9
  394. package/dist/components/Form/PinInput/PinInputCells.svelte +22 -1
  395. package/dist/components/Form/PinInput/PinInputCells.svelte.d.ts +1 -0
  396. package/dist/components/Form/PinInput/index.d.ts +1 -1
  397. package/dist/components/Form/PinInput/pinInput.mcp.d.ts +1 -1
  398. package/dist/components/Form/PinInput/pinInput.mcp.js +29 -6
  399. package/dist/components/Form/PinInput/pinInput.props.d.ts +38 -4
  400. package/dist/components/Form/PinInput/pinInput.state.svelte.d.ts +41 -0
  401. package/dist/components/Form/PinInput/pinInput.state.svelte.js +227 -24
  402. package/dist/components/Form/PinInput/pinInput.theme.d.ts +39 -3
  403. package/dist/components/Form/PinInput/pinInput.theme.js +27 -1
  404. package/dist/components/Form/RadioInput/RadioInput.svelte +94 -32
  405. package/dist/components/Form/RadioInput/RadioInput.svelte.d.ts +12 -12
  406. package/dist/components/Form/RadioInput/radioInput.mcp.d.ts +1 -1
  407. package/dist/components/Form/RadioInput/radioInput.mcp.js +12 -9
  408. package/dist/components/Form/RadioInput/radioInput.props.d.ts +22 -6
  409. package/dist/components/Form/RadioInput/radioInput.theme.d.ts +12 -0
  410. package/dist/components/Form/RadioInput/radioInput.theme.js +10 -5
  411. package/dist/components/Form/RatingInput/RatingInput.svelte +13 -4
  412. package/dist/components/Form/RatingInput/ratingInput.mcp.d.ts +1 -1
  413. package/dist/components/Form/RatingInput/ratingInput.mcp.js +3 -3
  414. package/dist/components/Form/RatingInput/ratingInput.props.d.ts +1 -1
  415. package/dist/components/Form/Select/Select.svelte +186 -48
  416. package/dist/components/Form/Select/Select.svelte.d.ts +23 -2
  417. package/dist/components/Form/Select/SelectOptionRow.svelte +69 -0
  418. package/dist/components/Form/Select/SelectOptionRow.svelte.d.ts +18 -0
  419. package/dist/components/Form/Select/index.d.ts +2 -1
  420. package/dist/components/Form/Select/index.js +1 -0
  421. package/dist/components/Form/Select/select.align.d.ts +5 -0
  422. package/dist/components/Form/Select/select.align.js +19 -5
  423. package/dist/components/Form/Select/select.attributes.d.ts +36 -0
  424. package/dist/components/Form/Select/select.attributes.js +27 -0
  425. package/dist/components/Form/Select/select.mcp.d.ts +1 -1
  426. package/dist/components/Form/Select/select.mcp.js +103 -18
  427. package/dist/components/Form/Select/select.props.d.ts +87 -10
  428. package/dist/components/Form/Select/select.state.svelte.d.ts +108 -17
  429. package/dist/components/Form/Select/select.state.svelte.js +354 -59
  430. package/dist/components/Form/Select/select.theme.d.ts +21 -0
  431. package/dist/components/Form/Select/select.theme.js +22 -0
  432. package/dist/components/Form/Slider/Slider.svelte +54 -14
  433. package/dist/components/Form/Slider/SliderMarks.svelte +1 -1
  434. package/dist/components/Form/Slider/SliderThumb.svelte +49 -19
  435. package/dist/components/Form/Slider/SliderThumb.svelte.d.ts +8 -2
  436. package/dist/components/Form/Slider/SliderTrack.svelte +33 -12
  437. package/dist/components/Form/Slider/SliderTrack.svelte.d.ts +6 -2
  438. package/dist/components/Form/Slider/index.d.ts +1 -1
  439. package/dist/components/Form/Slider/slider.mcp.d.ts +1 -1
  440. package/dist/components/Form/Slider/slider.mcp.js +55 -11
  441. package/dist/components/Form/Slider/slider.props.d.ts +35 -2
  442. package/dist/components/Form/Slider/slider.state.svelte.d.ts +66 -5
  443. package/dist/components/Form/Slider/slider.state.svelte.js +273 -49
  444. package/dist/components/Form/Slider/slider.theme.d.ts +36 -0
  445. package/dist/components/Form/Slider/slider.theme.js +35 -17
  446. package/dist/components/Form/Switch/Switch.svelte +61 -38
  447. package/dist/components/Form/Switch/switch.mcp.d.ts +1 -1
  448. package/dist/components/Form/Switch/switch.mcp.js +25 -5
  449. package/dist/components/Form/Switch/switch.props.d.ts +14 -1
  450. package/dist/components/Form/Switch/switch.theme.d.ts +12 -0
  451. package/dist/components/Form/Switch/switch.theme.js +8 -3
  452. package/dist/components/Form/TagGroup/TagGroup.svelte +8 -0
  453. package/dist/components/Form/TagGroup/tagGroup.mcp.d.ts +1 -1
  454. package/dist/components/Form/TagGroup/tagGroup.mcp.js +1 -0
  455. package/dist/components/Form/TagsInput/TagsInput.svelte +277 -275
  456. package/dist/components/Form/TagsInput/TagsInput.svelte.d.ts +1 -1
  457. package/dist/components/Form/TagsInput/tagsInput.mcp.d.ts +1 -1
  458. package/dist/components/Form/TagsInput/tagsInput.mcp.js +31 -11
  459. package/dist/components/Form/TagsInput/tagsInput.props.d.ts +6 -26
  460. package/dist/components/Form/TagsInput/tagsInput.theme.d.ts +63 -0
  461. package/dist/components/Form/TagsInput/tagsInput.theme.js +37 -1
  462. package/dist/components/Form/TextArea/TextArea.svelte +8 -0
  463. package/dist/components/Form/TextArea/textArea.mcp.d.ts +1 -1
  464. package/dist/components/Form/TextArea/textArea.mcp.js +1 -0
  465. package/dist/components/Form/TextInput/TextInput.svelte +8 -1
  466. package/dist/components/Form/TextInput/textInput.mcp.d.ts +1 -1
  467. package/dist/components/Form/TextInput/textInput.mcp.js +5 -0
  468. package/dist/components/Form/TimeInput/TimeInput.svelte +9 -1
  469. package/dist/components/Form/TimeInput/timeInput.mcp.d.ts +1 -1
  470. package/dist/components/Form/TimeInput/timeInput.mcp.js +31 -0
  471. package/dist/components/Form/VoiceInput/VoiceInput.svelte +10 -2
  472. package/dist/components/Form/VoiceInput/voiceInput.mcp.d.ts +1 -1
  473. package/dist/components/Form/VoiceInput/voiceInput.mcp.js +1 -0
  474. package/dist/components/GanttChart/GanttDependencyControl.svelte +4 -4
  475. package/dist/components/HoverCard/HoverCard.svelte +100 -10
  476. package/dist/components/HoverCard/hoverCard.attributes.d.ts +33 -0
  477. package/dist/components/HoverCard/hoverCard.attributes.js +24 -0
  478. package/dist/components/HoverCard/hoverCard.mcp.d.ts +1 -1
  479. package/dist/components/HoverCard/hoverCard.mcp.js +61 -2
  480. package/dist/components/HoverCard/hoverCard.props.d.ts +19 -0
  481. package/dist/components/HoverCard/hoverCard.theme.d.ts +12 -0
  482. package/dist/components/HoverCard/hoverCard.theme.js +9 -2
  483. package/dist/components/HoverCard/index.d.ts +1 -0
  484. package/dist/components/HoverCard/index.js +1 -0
  485. package/dist/components/ImageGallery/imageGallery.state.svelte.d.ts +1 -1
  486. package/dist/components/ImageZoom/imageZoom.lightbox.js +40 -6
  487. package/dist/components/ImageZoom/imageZoom.mcp.d.ts +1 -1
  488. package/dist/components/ImageZoom/imageZoom.mcp.js +3 -3
  489. package/dist/components/ImageZoom/imageZoom.props.d.ts +10 -4
  490. package/dist/components/ImageZoom/imageZoom.state.svelte.d.ts +16 -4
  491. package/dist/components/ImageZoom/imageZoom.state.svelte.js +38 -9
  492. package/dist/components/Kanban/kanban.theme.js +7 -3
  493. package/dist/components/Layout/layoutSpacing.d.ts +2 -2
  494. package/dist/components/LinkPreview/LinkPreview.svelte +7 -1
  495. package/dist/components/LinkPreview/linkPreview.mcp.d.ts +1 -1
  496. package/dist/components/LinkPreview/linkPreview.mcp.js +4 -1
  497. package/dist/components/LinkPreview/linkPreview.props.d.ts +15 -0
  498. package/dist/components/LinkPreview/linkPreview.theme.d.ts +12 -0
  499. package/dist/components/LinkPreview/linkPreview.theme.js +9 -2
  500. package/dist/components/Map/maplibre-cdn.js +3 -2
  501. package/dist/components/Markdown/markdown.mcp.d.ts +1 -1
  502. package/dist/components/Markdown/markdown.mcp.js +2 -1
  503. package/dist/components/Markdown/markdown.theme.js +18 -9
  504. package/dist/components/MediaVolume/MediaVolumeControl.svelte +4 -3
  505. package/dist/components/Menu/Menu.svelte +3 -3
  506. package/dist/components/Menu/Menu.svelte.d.ts +1 -1
  507. package/dist/components/Menu/MenuCheckboxItem.svelte +87 -0
  508. package/dist/components/Menu/MenuCheckboxItem.svelte.d.ts +16 -0
  509. package/dist/components/Menu/MenuFloating.svelte +421 -74
  510. package/dist/components/Menu/MenuFloating.svelte.d.ts +1 -1
  511. package/dist/components/Menu/MenuMirroredIcon.svelte +9 -0
  512. package/dist/components/Menu/MenuMirroredIcon.svelte.d.ts +7 -0
  513. package/dist/components/Menu/MenuRadioGroup.svelte +102 -0
  514. package/dist/components/Menu/MenuRadioGroup.svelte.d.ts +18 -0
  515. package/dist/components/Menu/MenuSearchField.svelte +54 -0
  516. package/dist/components/Menu/MenuSearchField.svelte.d.ts +20 -0
  517. package/dist/components/Menu/MenuStacked.svelte +404 -158
  518. package/dist/components/Menu/MenuStacked.svelte.d.ts +1 -1
  519. package/dist/components/Menu/MenuStackedBackHeader.svelte +6 -1
  520. package/dist/components/Menu/index.d.ts +2 -1
  521. package/dist/components/Menu/index.js +1 -0
  522. package/dist/components/Menu/menu.attributes.d.ts +37 -0
  523. package/dist/components/Menu/menu.attributes.js +28 -0
  524. package/dist/components/Menu/menu.filter.svelte.d.ts +52 -0
  525. package/dist/components/Menu/menu.filter.svelte.js +143 -0
  526. package/dist/components/Menu/menu.mcp.d.ts +1 -1
  527. package/dist/components/Menu/menu.mcp.js +227 -17
  528. package/dist/components/Menu/menu.platform.d.ts +5 -0
  529. package/dist/components/Menu/menu.platform.js +11 -0
  530. package/dist/components/Menu/menu.props.d.ts +172 -9
  531. package/dist/components/Menu/menu.theme.d.ts +147 -0
  532. package/dist/components/Menu/menu.theme.js +101 -0
  533. package/dist/components/Menu/menuTree.d.ts +35 -1
  534. package/dist/components/Menu/menuTree.js +158 -1
  535. package/dist/components/MenuBar/menuBar.mcp.d.ts +1 -1
  536. package/dist/components/MenuBar/menuBar.mcp.js +4 -2
  537. package/dist/components/MenuBar/menuBar.state.svelte.js +28 -10
  538. package/dist/components/MenuOption/MenuOption.svelte +5 -1
  539. package/dist/components/MenuOption/menuOption.mcp.d.ts +1 -1
  540. package/dist/components/MenuOption/menuOption.mcp.js +8 -0
  541. package/dist/components/MenuOption/menuOption.props.d.ts +12 -0
  542. package/dist/components/MenuOption/menuOption.theme.d.ts +18 -0
  543. package/dist/components/MenuOption/menuOption.theme.js +24 -4
  544. package/dist/components/Mermaid/mermaid.mcp.d.ts +1 -1
  545. package/dist/components/Mermaid/mermaid.mcp.js +8 -8
  546. package/dist/components/Mermaid/mermaid.props.d.ts +3 -4
  547. package/dist/components/Mermaid/mermaid.state.svelte.d.ts +20 -19
  548. package/dist/components/Mermaid/mermaid.state.svelte.js +80 -243
  549. package/dist/components/Mermaid/mermaid.theme.js +26 -1
  550. package/dist/components/MetadataList/MetadataList.svelte.d.ts +1 -1
  551. package/dist/components/Meter/Meter.svelte +110 -24
  552. package/dist/components/Meter/Meter.svelte.d.ts +12 -12
  553. package/dist/components/Meter/meter.mcp.d.ts +1 -1
  554. package/dist/components/Meter/meter.mcp.js +23 -37
  555. package/dist/components/Meter/meter.props.d.ts +36 -44
  556. package/dist/components/NavigationMenu/NavigationMenu.svelte +181 -0
  557. package/dist/components/NavigationMenu/NavigationMenu.svelte.d.ts +25 -0
  558. package/dist/components/NavigationMenu/NavigationMenuContent.svelte +141 -0
  559. package/dist/components/NavigationMenu/NavigationMenuContent.svelte.d.ts +13 -0
  560. package/dist/components/NavigationMenu/NavigationMenuTrigger.svelte +75 -0
  561. package/dist/components/NavigationMenu/NavigationMenuTrigger.svelte.d.ts +13 -0
  562. package/dist/components/NavigationMenu/index.d.ts +4 -0
  563. package/dist/components/NavigationMenu/index.js +3 -0
  564. package/dist/components/NavigationMenu/navigationMenu.attributes.d.ts +24 -0
  565. package/dist/components/NavigationMenu/navigationMenu.attributes.js +21 -0
  566. package/dist/components/NavigationMenu/navigationMenu.mcp.d.ts +1 -0
  567. package/dist/components/NavigationMenu/navigationMenu.mcp.js +138 -0
  568. package/dist/components/NavigationMenu/navigationMenu.props.d.ts +129 -0
  569. package/dist/components/NavigationMenu/navigationMenu.props.js +1 -0
  570. package/dist/components/NavigationMenu/navigationMenu.state.svelte.d.ts +163 -0
  571. package/dist/components/NavigationMenu/navigationMenu.state.svelte.js +721 -0
  572. package/dist/components/NavigationMenu/navigationMenu.theme.d.ts +326 -0
  573. package/dist/components/NavigationMenu/navigationMenu.theme.js +239 -0
  574. package/dist/components/Overlay/Overlay.svelte +19 -30
  575. package/dist/components/Overlay/index.d.ts +1 -0
  576. package/dist/components/Overlay/index.js +1 -0
  577. package/dist/components/Overlay/overlay.attributes.d.ts +16 -0
  578. package/dist/components/Overlay/overlay.attributes.js +14 -0
  579. package/dist/components/Overlay/overlay.mcp.d.ts +1 -1
  580. package/dist/components/Overlay/overlay.mcp.js +21 -3
  581. package/dist/components/Overlay/overlay.props.d.ts +8 -4
  582. package/dist/components/Popover/Popover.svelte +163 -52
  583. package/dist/components/Popover/Popover.svelte.d.ts +23 -2
  584. package/dist/components/Popover/PopoverSession.svelte +12 -0
  585. package/dist/components/Popover/PopoverSession.svelte.d.ts +7 -0
  586. package/dist/components/Popover/index.d.ts +10 -2
  587. package/dist/components/Popover/index.js +4 -1
  588. package/dist/components/Popover/popover.api.d.ts +83 -0
  589. package/dist/components/Popover/popover.api.js +1 -0
  590. package/dist/components/Popover/popover.attributes.d.ts +32 -0
  591. package/dist/components/Popover/popover.attributes.js +28 -0
  592. package/dist/components/Popover/popover.claims.d.ts +19 -0
  593. package/dist/components/Popover/popover.claims.js +45 -0
  594. package/dist/components/Popover/popover.mcp.d.ts +1 -1
  595. package/dist/components/Popover/popover.mcp.js +163 -31
  596. package/dist/components/Popover/popover.position.d.ts +226 -0
  597. package/dist/components/Popover/popover.position.js +402 -0
  598. package/dist/components/Popover/popover.props.d.ts +179 -24
  599. package/dist/components/Popover/popover.state.svelte.d.ts +169 -37
  600. package/dist/components/Popover/popover.state.svelte.js +1034 -194
  601. package/dist/components/Popover/popover.theme.d.ts +15 -0
  602. package/dist/components/Popover/popover.theme.js +27 -2
  603. package/dist/components/PopupMenu/PopupMenu.svelte +193 -22
  604. package/dist/components/PopupMenu/PopupMenu.svelte.d.ts +2 -2
  605. package/dist/components/PopupMenu/popupMenu.context.d.ts +42 -0
  606. package/dist/components/PopupMenu/popupMenu.context.js +52 -0
  607. package/dist/components/PopupMenu/popupMenu.mcp.d.ts +1 -1
  608. package/dist/components/PopupMenu/popupMenu.mcp.js +46 -6
  609. package/dist/components/PopupMenu/popupMenu.props.d.ts +29 -2
  610. package/dist/components/Progress/Progress.svelte +160 -0
  611. package/dist/components/Progress/Progress.svelte.d.ts +4 -0
  612. package/dist/components/Progress/index.d.ts +3 -0
  613. package/dist/components/Progress/index.js +2 -0
  614. package/dist/components/Progress/progress.mcp.d.ts +1 -0
  615. package/dist/components/Progress/progress.mcp.js +101 -0
  616. package/dist/components/Progress/progress.props.d.ts +79 -0
  617. package/dist/components/Progress/progress.props.js +1 -0
  618. package/dist/components/Progress/progress.theme.d.ts +129 -0
  619. package/dist/components/Progress/progress.theme.js +83 -0
  620. package/dist/components/ProgressCircle/ProgressCircle.svelte +51 -6
  621. package/dist/components/ProgressCircle/progressCircle.mcp.d.ts +1 -1
  622. package/dist/components/ProgressCircle/progressCircle.mcp.js +18 -4
  623. package/dist/components/ProgressCircle/progressCircle.props.d.ts +32 -2
  624. package/dist/components/ProgressCircle/progressCircle.theme.d.ts +15 -3
  625. package/dist/components/ProgressCircle/progressCircle.theme.js +7 -2
  626. package/dist/components/RichTextInput/RichTextInput.svelte +19 -1
  627. package/dist/components/RichTextInput/RichTextInputChrome.svelte +5 -1
  628. package/dist/components/RichTextInput/RichTextInputChrome.svelte.d.ts +2 -0
  629. package/dist/components/RichTextInput/RichTextInputViewport.svelte +3 -1
  630. package/dist/components/RichTextInput/RichTextInputViewport.svelte.d.ts +1 -0
  631. package/dist/components/RichTextInput/richTextInput.mcp.d.ts +1 -1
  632. package/dist/components/RichTextInput/richTextInput.mcp.js +1 -0
  633. package/dist/components/RichTextInput/suggestions.js +2 -0
  634. package/dist/components/ScrollArea/ScrollArea.svelte +166 -27
  635. package/dist/components/ScrollArea/index.d.ts +2 -1
  636. package/dist/components/ScrollArea/index.js +1 -0
  637. package/dist/components/ScrollArea/scrollArea.attributes.d.ts +25 -0
  638. package/dist/components/ScrollArea/scrollArea.attributes.js +21 -0
  639. package/dist/components/ScrollArea/scrollArea.mcp.d.ts +1 -1
  640. package/dist/components/ScrollArea/scrollArea.mcp.js +47 -3
  641. package/dist/components/ScrollArea/scrollArea.props.d.ts +33 -6
  642. package/dist/components/ScrollArea/scrollArea.svelte.d.ts +56 -12
  643. package/dist/components/ScrollArea/scrollArea.svelte.js +281 -71
  644. package/dist/components/ScrollArea/scrollArea.theme.js +5 -2
  645. package/dist/components/SegmentedControl/SegmentedControl.svelte +4 -3
  646. package/dist/components/SegmentedControl/segmentedControl.mcp.d.ts +1 -1
  647. package/dist/components/SegmentedControl/segmentedControl.mcp.js +3 -2
  648. package/dist/components/SelectionMenu/SelectionMenu.svelte +4 -2
  649. package/dist/components/Sidebar/SidebarAction.svelte +13 -3
  650. package/dist/components/Sidebar/SidebarAction.svelte.d.ts +2 -1
  651. package/dist/components/Sidebar/SidebarActivityBar.svelte +14 -7
  652. package/dist/components/Sidebar/SidebarFlyout.svelte +97 -0
  653. package/dist/components/Sidebar/SidebarFlyout.svelte.d.ts +32 -0
  654. package/dist/components/Sidebar/SidebarGroup.svelte +39 -15
  655. package/dist/components/Sidebar/SidebarMenuButton.svelte +6 -3
  656. package/dist/components/Sidebar/SidebarMenuItem.svelte +134 -31
  657. package/dist/components/Sidebar/SidebarMenuSubItem.svelte +30 -14
  658. package/dist/components/Sidebar/SidebarTreeNode.svelte +41 -61
  659. package/dist/components/Sidebar/index.d.ts +1 -0
  660. package/dist/components/Sidebar/index.js +1 -0
  661. package/dist/components/Sidebar/sidebar-position.d.ts +37 -2
  662. package/dist/components/Sidebar/sidebar-position.js +31 -2
  663. package/dist/components/Sidebar/sidebar.attributes.d.ts +33 -0
  664. package/dist/components/Sidebar/sidebar.attributes.js +29 -0
  665. package/dist/components/Sidebar/sidebar.mcp.d.ts +1 -1
  666. package/dist/components/Sidebar/sidebar.mcp.js +45 -10
  667. package/dist/components/Sidebar/sidebar.props.d.ts +28 -7
  668. package/dist/components/Sidebar/sidebar.theme.d.ts +51 -21
  669. package/dist/components/Sidebar/sidebar.theme.js +113 -62
  670. package/dist/components/Sidebar/sidebar.views.svelte.js +11 -18
  671. package/dist/components/Stepper/Stepper.svelte +2 -0
  672. package/dist/components/Stepper/stepper.mcp.d.ts +1 -1
  673. package/dist/components/Stepper/stepper.mcp.js +1 -0
  674. package/dist/components/Stepper/stepper.props.d.ts +5 -0
  675. package/dist/components/Stepper/stepper.state.svelte.d.ts +2 -0
  676. package/dist/components/Stepper/stepper.state.svelte.js +31 -12
  677. package/dist/components/Tabbar/Tabbar.svelte +55 -16
  678. package/dist/components/Tabbar/index.d.ts +1 -1
  679. package/dist/components/Tabbar/tabbar.mcp.d.ts +1 -1
  680. package/dist/components/Tabbar/tabbar.mcp.js +26 -9
  681. package/dist/components/Tabbar/tabbar.props.d.ts +34 -5
  682. package/dist/components/Tabbar/tabbar.selection.svelte.d.ts +79 -0
  683. package/dist/components/Tabbar/tabbar.selection.svelte.js +99 -0
  684. package/dist/components/TableOfContents/tableOfContents.state.svelte.js +9 -7
  685. package/dist/components/Tabs/Tabs.svelte +73 -16
  686. package/dist/components/Tabs/index.d.ts +2 -1
  687. package/dist/components/Tabs/tabs.direction.svelte.d.ts +25 -0
  688. package/dist/components/Tabs/tabs.direction.svelte.js +40 -0
  689. package/dist/components/Tabs/tabs.mcp.d.ts +1 -1
  690. package/dist/components/Tabs/tabs.mcp.js +22 -4
  691. package/dist/components/Tabs/tabs.props.d.ts +39 -12
  692. package/dist/components/Tabs/tabs.theme.js +3 -1
  693. package/dist/components/Theme/Theme.svelte +44 -27
  694. package/dist/components/Theme/helper.d.ts +16 -2
  695. package/dist/components/Theme/helper.js +46 -4
  696. package/dist/components/Theme/theme.mcp.d.ts +1 -1
  697. package/dist/components/Theme/theme.mcp.js +103 -0
  698. package/dist/components/Theme/theme.props.d.ts +16 -0
  699. package/dist/components/Theme/theme.state.svelte.d.ts +14 -1
  700. package/dist/components/Theme/theme.state.svelte.js +18 -1
  701. package/dist/components/Toast/Toast.svelte +184 -39
  702. package/dist/components/Toast/Toaster.svelte +14 -10
  703. package/dist/components/Toast/index.d.ts +1 -0
  704. package/dist/components/Toast/toast.mcp.d.ts +1 -1
  705. package/dist/components/Toast/toast.mcp.js +47 -6
  706. package/dist/components/Toast/toast.state.svelte.d.ts +172 -6
  707. package/dist/components/Toast/toast.state.svelte.js +513 -68
  708. package/dist/components/Toast/toast.theme.js +1 -1
  709. package/dist/components/ToggleButton/ToggleButton.svelte +23 -1
  710. package/dist/components/ToggleButton/toggleButton.mcp.d.ts +1 -1
  711. package/dist/components/ToggleButton/toggleButton.mcp.js +3 -1
  712. package/dist/components/ToggleButton/toggleButton.props.d.ts +13 -1
  713. package/dist/components/ToggleButton/toggleButton.theme.d.ts +12 -0
  714. package/dist/components/ToggleButton/toggleButton.theme.js +15 -3
  715. package/dist/components/ToggleButtonGroup/ToggleButtonGroup.svelte +29 -9
  716. package/dist/components/ToggleButtonGroup/index.d.ts +1 -1
  717. package/dist/components/ToggleButtonGroup/toggleButtonGroup.mcp.d.ts +1 -1
  718. package/dist/components/ToggleButtonGroup/toggleButtonGroup.mcp.js +5 -2
  719. package/dist/components/ToggleButtonGroup/toggleButtonGroup.props.d.ts +19 -1
  720. package/dist/components/ToggleButtonGroup/toggleButtonGroup.theme.d.ts +12 -0
  721. package/dist/components/ToggleButtonGroup/toggleButtonGroup.theme.js +21 -2
  722. package/dist/components/ToggleMenu/ToggleMenu.svelte +57 -43
  723. package/dist/components/ToggleMenu/ToggleMenuGroup.svelte +1 -0
  724. package/dist/components/ToggleMenu/ToggleMenuMenu.svelte +9 -3
  725. package/dist/components/ToggleMenu/ToggleMenuRadioGroup.svelte +7 -2
  726. package/dist/components/ToggleMenu/toggleMenu.mcp.d.ts +1 -1
  727. package/dist/components/ToggleMenu/toggleMenu.mcp.js +3 -2
  728. package/dist/components/ToggleMenu/toggleMenu.props.d.ts +4 -1
  729. package/dist/components/Tooltip/Tooltip.svelte +4 -12
  730. package/dist/components/Tooltip/TooltipHost.svelte +136 -15
  731. package/dist/components/Tooltip/index.d.ts +1 -0
  732. package/dist/components/Tooltip/index.js +1 -0
  733. package/dist/components/Tooltip/tooltip.attachment.svelte.d.ts +5 -0
  734. package/dist/components/Tooltip/tooltip.attachment.svelte.js +215 -33
  735. package/dist/components/Tooltip/tooltip.attributes.d.ts +32 -0
  736. package/dist/components/Tooltip/tooltip.attributes.js +28 -0
  737. package/dist/components/Tooltip/tooltip.mcp.d.ts +1 -1
  738. package/dist/components/Tooltip/tooltip.mcp.js +111 -10
  739. package/dist/components/Tooltip/tooltip.props.d.ts +33 -2
  740. package/dist/components/Tooltip/tooltip.surface.d.ts +24 -0
  741. package/dist/components/Tooltip/tooltip.surface.js +42 -0
  742. package/dist/components/Tree/TreeContextMenuSurface.svelte +16 -3
  743. package/dist/components/Utils/BeforeHydratation.svelte +14 -3
  744. package/dist/components/Utils/BeforeHydratation.svelte.d.ts +2 -0
  745. package/dist/components/VideoPlayer/VideoPlayer.svelte.d.ts +1 -1
  746. package/dist/components/VideoPlayer/VideoPlayerSettings.svelte +2 -0
  747. package/dist/generated/componentAliases.d.ts +3 -0
  748. package/dist/generated/componentAliases.js +3 -0
  749. package/dist/generated/componentContract.d.ts +79 -34
  750. package/dist/generated/componentContract.js +231 -6
  751. package/dist/generated/componentMcpRegistry.js +6 -0
  752. package/dist/i18n/ar.js +107 -3
  753. package/dist/i18n/context.svelte.d.ts +6 -0
  754. package/dist/i18n/context.svelte.js +12 -0
  755. package/dist/i18n/de.js +101 -3
  756. package/dist/i18n/en.d.ts +91 -2
  757. package/dist/i18n/en.js +101 -3
  758. package/dist/i18n/es.js +101 -3
  759. package/dist/i18n/fr.js +101 -3
  760. package/dist/i18n/ja.js +101 -3
  761. package/dist/i18n/pt.js +101 -3
  762. package/dist/i18n/zh.js +101 -3
  763. package/dist/tailwind/geometry.js +7 -0
  764. package/dist/tailwind/global.js +31 -0
  765. package/dist/types/index.d.ts +1 -0
  766. package/dist/types/types.mcp.d.ts +1 -1
  767. package/dist/types/types.mcp.js +23 -0
  768. package/dist/utils/cspNonce.d.ts +16 -0
  769. package/dist/utils/cspNonce.js +39 -0
  770. package/dist/utils/cva/merge.d.ts +5 -1
  771. package/dist/utils/cva/merge.js +6 -4
  772. package/dist/utils/focus.d.ts +34 -0
  773. package/dist/utils/focus.js +93 -0
  774. package/dist/utils/focusHistory.d.ts +21 -0
  775. package/dist/utils/focusHistory.js +99 -0
  776. package/dist/utils/handlers.d.ts +7 -0
  777. package/dist/utils/handlers.js +14 -0
  778. package/dist/utils/hoverIntent.d.ts +42 -0
  779. package/dist/utils/hoverIntent.js +57 -0
  780. package/dist/utils/id.d.ts +7 -0
  781. package/dist/utils/id.js +15 -0
  782. package/dist/utils/layers.svelte.d.ts +32 -4
  783. package/dist/utils/layers.svelte.js +214 -21
  784. package/dist/utils/listFilter.d.ts +44 -0
  785. package/dist/utils/listFilter.js +130 -0
  786. package/dist/utils/match.d.ts +35 -0
  787. package/dist/utils/match.js +36 -0
  788. package/dist/utils/number.d.ts +126 -0
  789. package/dist/utils/number.js +401 -0
  790. package/dist/utils/openChange.d.ts +88 -0
  791. package/dist/utils/openChange.js +71 -0
  792. package/dist/utils/openLifecycle.svelte.d.ts +41 -0
  793. package/dist/utils/openLifecycle.svelte.js +134 -0
  794. package/dist/utils/pointerDrag.d.ts +10 -0
  795. package/dist/utils/pointerDrag.js +37 -2
  796. package/dist/utils/pragmaticDragAndDrop.d.ts +2 -1
  797. package/dist/utils/pragmaticDragAndDrop.js +8 -3
  798. package/dist/utils/range.d.ts +62 -0
  799. package/dist/utils/range.js +70 -0
  800. package/dist/utils/requestNativeSubmit.d.ts +17 -0
  801. package/dist/utils/requestNativeSubmit.js +47 -0
  802. package/dist/utils/safeArea.svelte.d.ts +10 -1
  803. package/dist/utils/safeArea.svelte.js +19 -11
  804. package/dist/utils/stateAttributes.d.ts +108 -0
  805. package/dist/utils/stateAttributes.js +78 -0
  806. package/dist/utils/swipeVelocity.d.ts +32 -0
  807. package/dist/utils/swipeVelocity.js +59 -0
  808. package/dist/utils/timer.svelte.d.ts +65 -2
  809. package/dist/utils/timer.svelte.js +159 -25
  810. package/dist/utils/trigger.d.ts +41 -0
  811. package/dist/utils/trigger.js +103 -0
  812. package/dist/utils/typeahead.d.ts +9 -0
  813. package/dist/utils/typeahead.js +21 -9
  814. package/dist/utils/useDndList.svelte.d.ts +1 -1
  815. package/dist/utils/useDndList.svelte.js +6 -23
  816. package/dist/utils/useFocusScope.svelte.d.ts +29 -0
  817. package/dist/utils/useFocusScope.svelte.js +189 -27
  818. package/dist/utils/useHoverAction.svelte.d.ts +44 -4
  819. package/dist/utils/useHoverAction.svelte.js +161 -51
  820. package/dist/utils/useKeyDown.svelte.d.ts +19 -2
  821. package/dist/utils/useKeyDown.svelte.js +19 -12
  822. package/dist/utils/useListNavigation.svelte.d.ts +94 -13
  823. package/dist/utils/useListNavigation.svelte.js +261 -35
  824. package/dist/utils/useLiveAnnouncer.svelte.d.ts +77 -2
  825. package/dist/utils/useLiveAnnouncer.svelte.js +119 -2
  826. package/dist/utils/useNavigation.svelte.d.ts +36 -3
  827. package/dist/utils/useNavigation.svelte.js +699 -332
  828. package/dist/utils/usePressAndHold.svelte.d.ts +38 -0
  829. package/dist/utils/usePressAndHold.svelte.js +191 -0
  830. package/dist/utils/useScrollLock.svelte.d.ts +20 -1
  831. package/dist/utils/useScrollLock.svelte.js +54 -13
  832. package/dist/utils/useSlidingIndicator.svelte.d.ts +2 -0
  833. package/dist/utils/useSlidingIndicator.svelte.js +27 -5
  834. package/dist/utils/useTabBridge.svelte.d.ts +20 -0
  835. package/dist/utils/useTabBridge.svelte.js +109 -0
  836. package/dist/utils/values.d.ts +15 -0
  837. package/dist/utils/values.js +49 -0
  838. package/package.json +31 -2
  839. package/dist/generated/componentMcpRegistry.d.ts +0 -142
  840. package/dist/utils/useDrag.svelte.d.ts +0 -11
  841. package/dist/utils/useDrag.svelte.js +0 -55
@@ -146,8 +146,11 @@ const defaultGroup = cva({
146
146
  density: 'normal'
147
147
  }
148
148
  });
149
+ // The label text is its own span and truncates on one line; with pinned actions
150
+ // (`--sidebar-group-actions-width`, published by the group) it stops before them. A static label
151
+ // pads its end; a collapsible one keeps its chevron at the end and spaces the text off the actions.
149
152
  const defaultGroupLabel = cva({
150
- base: 'text-neutral/70 flex shrink-0 items-center rounded-sm font-medium outline-none transition-[height,margin,padding,opacity] duration-normal ease-linear group-data-[collapsible=icon]:opacity-0 disabled:pointer-events-none [&>svg]:shrink-0 [&>svg]:size-[var(--sidebar-icon-size)]',
153
+ base: 'text-neutral/70 flex shrink-0 items-center rounded-sm text-start font-medium outline-none [&>span]:min-w-0 [&>span]:flex-1 [&>span]:truncate transition-[height,margin,padding,opacity] duration-normal ease-linear group-data-[collapsible=icon]:opacity-0 disabled:pointer-events-none [&_svg]:shrink-0 [&_svg]:size-[var(--sidebar-icon-size)]',
151
154
  variants: {
152
155
  interactive: {
153
156
  true: 'state-layer hover:text-neutral focus-visible:ring-2 focus-visible:ring-focus/50',
@@ -162,12 +165,29 @@ const defaultGroupLabel = cva({
162
165
  compact: 'px-md',
163
166
  normal: 'px-lg',
164
167
  comfortable: 'px-lg'
168
+ },
169
+ hasActions: {
170
+ true: '',
171
+ false: ''
165
172
  }
166
173
  },
174
+ compoundVariants: [
175
+ {
176
+ interactive: false,
177
+ hasActions: true,
178
+ class: 'pe-[calc(var(--sidebar-group-actions-width)+var(--space-md))]'
179
+ },
180
+ {
181
+ interactive: true,
182
+ hasActions: true,
183
+ class: '[&>span]:me-[calc(var(--sidebar-group-actions-width)+var(--space-md))]'
184
+ }
185
+ ],
167
186
  defaultVariants: {
168
187
  interactive: false,
169
188
  size: 'normal',
170
- density: 'normal'
189
+ density: 'normal',
190
+ hasActions: false
171
191
  }
172
192
  });
173
193
  // The wrapper is placement only: a row of action slots pinned to the label's midline. Each
@@ -182,10 +202,12 @@ const defaultGroupAction = cva({
182
202
  normal: 'top-[calc(var(--sidebar-group-padding)+var(--control-height-md)/2)] -translate-y-1/2',
183
203
  large: 'top-[calc(var(--sidebar-group-padding)+var(--control-height-lg)/2)] -translate-y-1/2'
184
204
  },
205
+ // Just inside the label's end. Beside a collapsible label's chevron: the group padding,
206
+ // the label padding, the chevron and a gap, so the two never touch at any icon size.
185
207
  density: {
186
- compact: 'right-2.5',
187
- normal: 'right-3',
188
- comfortable: 'right-4'
208
+ compact: 'end-2.5',
209
+ normal: 'end-3',
210
+ comfortable: 'end-4'
189
211
  },
190
212
  hasToggle: {
191
213
  true: '',
@@ -193,9 +215,16 @@ const defaultGroupAction = cva({
193
215
  }
194
216
  },
195
217
  compoundVariants: [
196
- { density: 'compact', hasToggle: true, class: 'right-8' },
197
- { density: 'normal', hasToggle: true, class: 'right-10' },
198
- { density: 'comfortable', hasToggle: true, class: 'right-12' }
218
+ {
219
+ density: 'compact',
220
+ hasToggle: true,
221
+ class: 'end-[calc(var(--sidebar-group-padding)+var(--space-md)+var(--sidebar-icon-size)+var(--space-xs))]'
222
+ },
223
+ {
224
+ density: ['normal', 'comfortable'],
225
+ hasToggle: true,
226
+ class: 'end-[calc(var(--sidebar-group-padding)+var(--space-lg)+var(--sidebar-icon-size)+var(--space-xs))]'
227
+ }
199
228
  ],
200
229
  defaultVariants: {
201
230
  size: 'normal',
@@ -216,8 +245,20 @@ const defaultMenu = cva({
216
245
  density: 'normal'
217
246
  }
218
247
  });
248
+ // Room at a row's end for its pinned action (`menuAction` / `subAction`), so the label and any
249
+ // in-flow trailing part (badge, chevron) stop before the action's box. `action` reserves it
250
+ // always. `actionBelowMd` is for a row whose last trailing part is its badge: from `md` up the
251
+ // badge holds the end column and the action takes its place while it shows, so the room is only
252
+ // needed below `md`, where the action is always visible and the badge sits before it.
253
+ const rowEndReserveKeys = { none: '', action: '', actionBelowMd: '' };
254
+ const rowEndReserve = [
255
+ { endReserve: 'action', size: ['small', 'normal'], class: 'pe-layout-lg' },
256
+ { endReserve: 'action', size: 'large', class: 'pe-[calc(var(--spacing)*10)]' },
257
+ { endReserve: 'actionBelowMd', size: ['small', 'normal'], class: 'max-md:pe-layout-lg' },
258
+ { endReserve: 'actionBelowMd', size: 'large', class: 'max-md:pe-[calc(var(--spacing)*10)]' }
259
+ ];
219
260
  const defaultMenuButton = cva({
220
- base: 'state-layer peer/menu-button group/menu-button flex w-full items-center overflow-hidden rounded-sm text-left outline-none transition-[background,color,width,height,padding,margin,border-radius] duration-normal ease-linear hover:text-neutral focus-visible:ring-2 focus-visible:ring-focus/50 disabled:pointer-events-none disabled:opacity-50 aria-disabled:pointer-events-none aria-disabled:opacity-50 data-active:font-medium group-has-data-[sidebar=menu-action]/menu-item:pr-layout-lg group-data-[collapsible=icon]:mx-[calc((var(--sidebar-width-icon)-var(--sidebar-icon-button-width))/2-var(--sidebar-group-padding))] group-data-[collapsible=icon]:w-[var(--sidebar-icon-button-width)] group-data-[collapsible=icon]:rounded-none group-data-[variant=admin]:group-data-[collapsible=icon]:rounded-sm group-data-[variant=framed]:group-data-[collapsible=icon]:rounded-sm group-data-[variant=inset]:group-data-[collapsible=icon]:rounded-sm group-data-[collapsible=icon]:![padding-inline:calc((var(--sidebar-icon-button-width)-var(--sidebar-icon-size))/2)] group-data-[collapsible=icon]:ring-inset [&_svg]:shrink-0 [&_svg]:size-[var(--sidebar-icon-size)]',
261
+ base: 'state-layer peer/menu-button group/menu-button flex w-full items-center overflow-hidden rounded-sm text-start outline-none transition-[background,color,width,height,padding,margin,border-radius] duration-normal ease-linear hover:text-neutral focus-visible:ring-2 focus-visible:ring-focus/50 disabled:pointer-events-none disabled:opacity-50 aria-disabled:pointer-events-none aria-disabled:opacity-50 data-active:font-medium group-data-[collapsible=icon]:mx-[calc((var(--sidebar-width-icon)-var(--sidebar-icon-button-width))/2-var(--sidebar-group-padding))] group-data-[collapsible=icon]:w-[var(--sidebar-icon-button-width)] group-data-[collapsible=icon]:rounded-none group-data-[variant=admin]:group-data-[collapsible=icon]:rounded-sm group-data-[variant=framed]:group-data-[collapsible=icon]:rounded-sm group-data-[variant=inset]:group-data-[collapsible=icon]:rounded-sm group-data-[collapsible=icon]:![padding-inline:calc((var(--sidebar-icon-button-width)-var(--sidebar-icon-size))/2)] group-data-[collapsible=icon]:ring-inset [&_svg]:shrink-0 [&_svg]:size-[var(--sidebar-icon-size)]',
221
262
  variants: {
222
263
  activeVariant: activeVariants,
223
264
  variant: {
@@ -239,9 +280,11 @@ const defaultMenuButton = cva({
239
280
  small: 'text-xs',
240
281
  normal: '',
241
282
  large: ''
242
- }
283
+ },
284
+ endReserve: rowEndReserveKeys
243
285
  },
244
286
  compoundVariants: [
287
+ ...rowEndReserve,
245
288
  { size: 'small', itemSize: 'small', class: 'h-control-sm' },
246
289
  { size: 'small', itemSize: 'normal', class: 'h-control-md' },
247
290
  { size: 'small', itemSize: 'large', class: 'h-row-lg' },
@@ -257,7 +300,8 @@ const defaultMenuButton = cva({
257
300
  variant: 'default',
258
301
  size: 'normal',
259
302
  density: 'normal',
260
- itemSize: 'normal'
303
+ itemSize: 'normal',
304
+ endReserve: 'none'
261
305
  }
262
306
  });
263
307
  const defaultMenuLabel = cva({
@@ -277,7 +321,7 @@ const defaultMenuSecondary = cva({
277
321
  }
278
322
  });
279
323
  const defaultMenuTrailing = cva({
280
- base: 'ml-auto shrink-0 opacity-100 transition-[opacity,transform] duration-normal ease-standard group-data-[collapsible=icon]:pointer-events-none group-data-[collapsible=icon]:translate-x-1 group-data-[collapsible=icon]:opacity-0 [&>svg]:size-[var(--sidebar-icon-size)]',
324
+ base: 'ms-auto shrink-0 opacity-100 transition-[opacity,transform] duration-normal ease-standard group-data-[collapsible=icon]:pointer-events-none group-data-[collapsible=icon]:translate-x-1 group-data-[collapsible=icon]:opacity-0 [&>svg]:size-[var(--sidebar-icon-size)]',
281
325
  variants: {
282
326
  size: {
283
327
  small: '',
@@ -289,13 +333,15 @@ const defaultMenuTrailing = cva({
289
333
  size: 'normal'
290
334
  }
291
335
  });
336
+ // Only the start side is indented: a submenu row runs to its parent row's end edge, so badges
337
+ // and actions of every level share one end column. The guide line sits on the start edge.
292
338
  const defaultSubMenu = cva({
293
- base: 'border-neutral-muted flex min-w-0 translate-x-px flex-col border-l',
339
+ base: 'border-neutral-muted flex min-w-0 flex-col border-s',
294
340
  variants: {
295
341
  density: {
296
- compact: 'mx-md gap-micro px-md py-micro',
297
- normal: 'mx-lg gap-xs px-md py-micro',
298
- comfortable: 'mx-xl gap-sm px-lg py-xs'
342
+ compact: 'ms-md gap-micro py-micro ps-md',
343
+ normal: 'ms-lg gap-xs py-micro ps-md',
344
+ comfortable: 'ms-xl gap-sm py-xs ps-lg'
299
345
  }
300
346
  },
301
347
  defaultVariants: {
@@ -303,12 +349,12 @@ const defaultSubMenu = cva({
303
349
  }
304
350
  });
305
351
  const defaultTreeSubMenu = cva({
306
- base: 'border-neutral-muted ml-0 flex min-w-0 translate-x-px flex-col border-l',
352
+ base: 'border-neutral-muted flex min-w-0 flex-col border-s',
307
353
  variants: {
308
354
  density: {
309
- compact: 'ml-sm gap-micro py-micro pl-sm',
310
- normal: 'ml-md gap-xs py-micro pl-md',
311
- comfortable: 'ml-md gap-sm py-xs pl-md'
355
+ compact: 'ms-sm gap-micro py-micro ps-sm',
356
+ normal: 'ms-md gap-xs py-micro ps-md',
357
+ comfortable: 'ms-md gap-sm py-xs ps-md'
312
358
  }
313
359
  },
314
360
  defaultVariants: {
@@ -316,7 +362,7 @@ const defaultTreeSubMenu = cva({
316
362
  }
317
363
  });
318
364
  const defaultSubButton = cva({
319
- base: 'state-layer text-neutral/70 hover:text-neutral flex min-w-0 -translate-x-px items-center overflow-hidden rounded-sm outline-none transition-[background,color,height,padding] duration-normal ease-linear focus-visible:ring-2 focus-visible:ring-focus/50 disabled:pointer-events-none disabled:opacity-50 aria-disabled:pointer-events-none aria-disabled:opacity-50 [&>span:last-child]:truncate [&>svg]:shrink-0 [&>svg]:size-[var(--sidebar-icon-size)]',
365
+ base: 'state-layer text-neutral/70 hover:text-neutral flex w-full min-w-0 items-center overflow-hidden rounded-sm outline-none transition-[background,color,height,padding] duration-normal ease-linear focus-visible:ring-2 focus-visible:ring-focus/50 disabled:pointer-events-none disabled:opacity-50 aria-disabled:pointer-events-none aria-disabled:opacity-50 [&>span:last-child]:truncate [&>[data-slot=sidebar-menu-sub-label]]:min-w-0 [&>[data-slot=sidebar-menu-sub-label]]:truncate [&>svg]:shrink-0 [&>svg]:size-[var(--sidebar-icon-size)]',
320
366
  variants: {
321
367
  activeVariant: activeVariants,
322
368
  size: {
@@ -324,44 +370,50 @@ const defaultSubButton = cva({
324
370
  normal: 'h-control-sm text-sm leading-5',
325
371
  large: 'h-control-md text-base leading-6'
326
372
  },
373
+ // The start padding indents the sub row's content; the end padding matches a top-level
374
+ // row's (`menuButton`), so badges and chevrons of every level end on one column.
327
375
  density: {
328
- compact: 'gap-sm px-md',
329
- normal: 'gap-md px-lg',
330
- comfortable: 'gap-md px-lg'
376
+ compact: 'gap-sm ps-md pe-sm',
377
+ normal: 'gap-md ps-lg pe-md',
378
+ comfortable: 'gap-md ps-lg pe-md'
331
379
  },
332
380
  itemSize: {
333
381
  small: 'text-xs',
334
382
  normal: '',
335
383
  large: ''
336
384
  },
337
- // Room at the row's end for a pinned action or badge, so the label truncates before it
338
- // instead of running under it. Off adds nothing: a plain row keeps its exact classes.
339
- reserveEnd: {
340
- true: 'pr-layout-lg',
341
- false: ''
342
- }
385
+ // Room at the row's end for a pinned action, as on a top-level row. `none` adds nothing: a
386
+ // plain row keeps its exact classes.
387
+ endReserve: rowEndReserveKeys
343
388
  },
389
+ compoundVariants: [...rowEndReserve],
344
390
  defaultVariants: {
345
391
  activeVariant: 'soft',
346
392
  size: 'normal',
347
393
  density: 'normal',
348
394
  itemSize: 'normal',
349
- reserveEnd: false
395
+ endReserve: 'none'
350
396
  }
351
397
  });
398
+ // A row's pinned action is a real small icon button: one box per Sidebar `size`, shared by menu
399
+ // and submenu rows so every level's action sits in the same end column. The box leaves the
400
+ // row's own height around it (32/36/40 rows, 24/28/32 submenu rows) and holds the dots at the
401
+ // sidebar icon size. `end-*` keeps it on the row's end edge in either direction.
402
+ const rowActionSize = {
403
+ small: 'size-5',
404
+ normal: 'size-6',
405
+ large: 'size-7'
406
+ };
407
+ const rowTrailingEnd = {
408
+ compact: 'end-0.5',
409
+ normal: 'end-1',
410
+ comfortable: 'end-1.5'
411
+ };
352
412
  const defaultMenuAction = cva({
353
413
  base: 'state-layer text-neutral hover:text-neutral peer-hover/menu-button:text-neutral absolute top-1/2 flex aspect-square -translate-y-1/2 items-center justify-center rounded-sm p-0 opacity-100 outline-none transition group-data-[collapsible=icon]:hidden focus-visible:ring-2 focus-visible:ring-focus/50 md:opacity-0 group-focus-within/menu-row:opacity-100 group-hover/menu-row:opacity-100 has-[[aria-expanded=true]]:opacity-100 [&>svg]:shrink-0 [&>svg]:size-[var(--sidebar-icon-size)]',
354
414
  variants: {
355
- size: {
356
- small: 'size-4.5',
357
- normal: 'size-5',
358
- large: 'size-6'
359
- },
360
- density: {
361
- compact: 'right-0.5',
362
- normal: 'right-1',
363
- comfortable: 'right-1.5'
364
- }
415
+ size: rowActionSize,
416
+ density: rowTrailingEnd
365
417
  },
366
418
  defaultVariants: {
367
419
  size: 'normal',
@@ -369,21 +421,13 @@ const defaultMenuAction = cva({
369
421
  }
370
422
  });
371
423
  // A submenu row's pinned action: the `menuAction` recipe keyed to the sub row's own
372
- // `group/menu-sub-item`, one step smaller to sit in the shorter row. Hidden until the row is
373
- // hovered or focused from `md` up, kept while its menu is open, always shown below `md`.
424
+ // `group/menu-sub-item`, at the same box so it lines up with its parent's action. Hidden until the
425
+ // row is hovered or focused from `md` up, kept while its menu is open, always shown below `md`.
374
426
  const defaultSubAction = cva({
375
427
  base: 'state-layer text-neutral hover:text-neutral absolute top-1/2 flex aspect-square -translate-y-1/2 items-center justify-center rounded-sm p-0 opacity-100 outline-none transition group-data-[collapsible=icon]:hidden focus-visible:ring-2 focus-visible:ring-focus/50 md:opacity-0 group-focus-within/menu-sub-item:opacity-100 group-hover/menu-sub-item:opacity-100 has-[[aria-expanded=true]]:opacity-100 [&>svg]:shrink-0 [&>svg]:size-[var(--sidebar-icon-size)]',
376
428
  variants: {
377
- size: {
378
- small: 'size-4',
379
- normal: 'size-4.5',
380
- large: 'size-5'
381
- },
382
- density: {
383
- compact: 'right-0.5',
384
- normal: 'right-1',
385
- comfortable: 'right-1.5'
386
- }
429
+ size: rowActionSize,
430
+ density: rowTrailingEnd
387
431
  },
388
432
  defaultVariants: {
389
433
  size: 'normal',
@@ -456,23 +500,30 @@ const defaultActionTrigger = cva({
456
500
  size: 'normal'
457
501
  }
458
502
  });
503
+ // A badge is the row's last in-flow trailing part before any chevron, so the label truncates
504
+ // before it whatever its width. It shares the row's end column with the row's pinned action and
505
+ // the two never overlap: from `md` up the action only shows while the row is hovered, focused or
506
+ // has its menu open, and the badge steps aside for exactly that time (its box is at least the
507
+ // action's, so the action covers only its place). Below `md` the action is always shown and the
508
+ // row reserves its box (`endReserve`), so the badge sits just before it.
459
509
  const defaultBadge = cva({
460
- base: 'text-neutral/70 peer-hover/menu-button:text-neutral peer-data-active/menu-button:text-neutral pointer-events-none absolute top-1/2 flex -translate-y-1/2 items-center justify-center rounded-sm px-xs font-medium tabular-nums select-none group-data-[collapsible=icon]:hidden',
510
+ base: 'text-neutral/70 [:hover>&]:text-current [[data-active]>&]:text-current pointer-events-none ms-auto flex shrink-0 items-center justify-center rounded-sm px-xs font-medium tabular-nums transition-opacity select-none group-data-[collapsible=icon]:hidden',
461
511
  variants: {
462
512
  size: {
463
- small: 'h-4 min-w-4 text-xs',
464
- normal: 'h-5 min-w-5 text-sm',
465
- large: 'h-6 min-w-6 text-sm'
513
+ small: 'h-4 min-w-5 text-xs',
514
+ normal: 'h-5 min-w-6 text-sm',
515
+ large: 'h-6 min-w-7 text-sm'
466
516
  },
467
- density: {
468
- compact: 'right-0.5',
469
- normal: 'right-1',
470
- comfortable: 'right-1.5'
517
+ // Which row's action the badge makes way for; `none` when the row pins no action.
518
+ action: {
519
+ none: '',
520
+ row: 'md:group-focus-within/menu-row:opacity-0 md:group-hover/menu-row:opacity-0 md:group-has-[[data-sidebar=menu-action]_[aria-expanded=true]]/menu-row:opacity-0',
521
+ sub: 'md:group-focus-within/menu-sub-item:opacity-0 md:group-hover/menu-sub-item:opacity-0 md:group-has-[[data-sidebar=menu-sub-action]_[aria-expanded=true]]/menu-sub-item:opacity-0'
471
522
  }
472
523
  },
473
524
  defaultVariants: {
474
525
  size: 'normal',
475
- density: 'normal'
526
+ action: 'none'
476
527
  }
477
528
  });
478
529
  const defaultSearchContainer = cva({
@@ -1,6 +1,7 @@
1
1
  import { untrack } from 'svelte';
2
2
  import { easingFunctions } from '../../transitions/easingFunctions.js';
3
3
  import { createPointerDrag } from '../../utils/pointerDrag.js';
4
+ import { createVelocityTracker } from '../../utils/swipeVelocity.js';
4
5
  import { createBindableValue } from '../../utils/state.svelte.js';
5
6
  /** The header and footer props a view can set; together they are the panel's chrome. */
6
7
  const chromeProps = [
@@ -215,17 +216,15 @@ export class SidebarViewsState {
215
216
  this.rtl = getComputedStyle(node).direction === 'rtl';
216
217
  let candidate = false;
217
218
  let sign = 1;
218
- let lastX = 0;
219
- let lastTime = 0;
220
- let velocity = 0;
221
- const release = (cancelled, timeStamp) => {
219
+ // Release speed over a short window, shared with drawers and toasts.
220
+ const tracker = createVelocityTracker();
221
+ const release = (cancelled, event) => {
222
222
  candidate = false;
223
223
  const swipe = this.swipe;
224
224
  if (swipe?.phase !== 'drag')
225
225
  return;
226
- // A long stationary hold is not a flick: the last velocity sample may be stale.
227
- if (timeStamp - lastTime > 100)
228
- velocity = 0;
226
+ tracker.add(event.clientX, event.timeStamp);
227
+ const velocity = tracker.velocity(event.timeStamp) * sign;
229
228
  const commit = !cancelled && (velocity > 0.4 || (swipe.offset > swipe.width * 0.35 && velocity > -0.2));
230
229
  swipe.phase = commit ? 'commit' : 'cancel';
231
230
  if (commit)
@@ -239,9 +238,8 @@ export class SidebarViewsState {
239
238
  candidate = true;
240
239
  this.rtl = getComputedStyle(node).direction === 'rtl';
241
240
  sign = this.rtl ? -1 : 1;
242
- lastX = event.clientX;
243
- lastTime = event.timeStamp;
244
- velocity = 0;
241
+ tracker.reset();
242
+ tracker.add(event.clientX, event.timeStamp);
245
243
  },
246
244
  // Horizontal toward the inline end, clearly more than vertical: anything else is a scroll.
247
245
  shouldActivate: ({ deltaX, deltaY }) => {
@@ -266,15 +264,10 @@ export class SidebarViewsState {
266
264
  if (swipe?.phase !== 'drag')
267
265
  return;
268
266
  swipe.offset = clamp(deltaX * sign, 0, swipe.width);
269
- const elapsed = event.timeStamp - lastTime;
270
- if (elapsed >= 8) {
271
- velocity = ((event.clientX - lastX) * sign) / elapsed;
272
- lastX = event.clientX;
273
- lastTime = event.timeStamp;
274
- }
267
+ tracker.add(event.clientX, event.timeStamp);
275
268
  },
276
- onEnd: ({ event }) => release(false, event.timeStamp),
277
- onCancel: ({ event }) => release(true, event.timeStamp)
269
+ onEnd: ({ event }) => release(false, event),
270
+ onCancel: ({ event }) => release(true, event)
278
271
  })(node);
279
272
  };
280
273
  }
@@ -25,6 +25,7 @@
25
25
  panelAriaLabelledby,
26
26
  panelAriaLabel,
27
27
  panelId,
28
+ panelActivationDirection,
28
29
  mount = 'eager'
29
30
  }: StepperProps<Item> = $props();
30
31
  const valueState = createBindableValue(
@@ -167,6 +168,7 @@ container.style.height = firstSlide.clientHeight + 'px';
167
168
  id={panelId?.(index)}
168
169
  data-step-active={isActiveStep ? 'true' : undefined}
169
170
  data-step={index}
171
+ data-activation-direction={panelActivationDirection?.(index)}
170
172
  tabindex={panelTabindex}
171
173
  hidden={!isActiveStep && !isLeaving(index)}
172
174
  inert={!isActiveStep}
@@ -1 +1 @@
1
- export declare const stepperDescription = "\n# Stepper Component\n\nStepper renders an ordered collection of panels with animated transitions, measured height changes, and programmatic navigation through StepperState.\n\n## Usage\n\nUse items for the collection and a single children snippet for the repeated panel content. The snippet receives the instance handle as api, the current item, and the zero-based index.\n\n<script lang=\"ts\">\n\timport { Stepper, type StepperApi } from '$lib/components/Stepper';\n\timport { Button } from '$lib/components/Button';\n\n\ttype Step = {\n\t\ttitle: string;\n\t\tdescription: string;\n\t};\n\n\tlet activeStep = $state(0);\n\tlet api = $state<StepperApi<Step>>();\n\n\tconst items: Step[] = [\n\t\t{ title: 'Account', description: 'Create the account.' },\n\t\t{ title: 'Profile', description: 'Complete the profile.' },\n\t\t{ title: 'Review', description: 'Confirm the details.' }\n\t];\n</script>\n\n<Stepper {items} bind:value={activeStep} bind:api>\n\t{#snippet children({ api, item, index })}\n\t\t<section class=\"space-y-4 p-6\">\n\t\t\t<h2>{item.title}</h2>\n\t\t\t<p>{item.description}</p>\n\t\t\t<div class=\"flex gap-2\">\n\t\t\t\t<Button disabled={index === 0} onclick={() => api.previous()}>\n\t\t\t\t\tPrevious\n\t\t\t\t</Button>\n\t\t\t\t<Button disabled={index === items.length - 1} onclick={() => api.next()}>\n\t\t\t\t\tNext\n\t\t\t\t</Button>\n\t\t\t</div>\n\t\t</section>\n\t{/snippet}\n</Stepper>\n\n## Props\n\n- items: required array of step data. Each item is passed to children as item.\n- children: repeated snippet called for each panel with { api, item, index }.\n- value: bindable zero-based active index. Use this as the public source of truth when syncing steppers.\n- defaultValue: initial active index when value is omitted.\n- api: bindable StepperApi (a StepperState) for next(), previous(), and goTo(index).\n- onValueChange: called once with { value, item, index } when the active step changes. Same payload shape as Tabs; value and index are both the zero-based step index.\n- transition: step translation timing override (`duration` in ms, `easing`); responsive, and it beats the `motion` theme slot. The default is the `slow` duration token (300ms).\n- theme: theme overrides for the stepper parts, including its `motion` slot.\n- mode: classic or vertical.\n- panelRole: \"tabpanel\", \"group\", or null. Defaults to \"tabpanel\"; use \"group\" for labelled question flows.\n- panelAriaLabelledby: aria-labelledby value, callback, or false. Defaults to stepper-{index} when panelRole is \"tabpanel\".\n- panelAriaLabel: aria-label value or callback for each panel.\n- panelId: (index) => string giving each panel a DOM id so a tab can reference it with aria-controls. Tabs uses it to link Tabbar tabs to their panels.\n- mount: when a step's content is created \u2014 `eager` (default) for every step up front, `lazy` on first activation and destroyed once the slide away from it finishes, `once` on first activation and kept. Inactive panels are `inert` and `aria-hidden` at once and `hidden` as soon as the slide settles, so at rest exactly one panel is not `hidden`. Tabs forwards its own `mount`, which defaults to `lazy`.\n- class: extra classes applied to the root container.\n\n## StepperApi (StepperState)\n\n- next(): move to the next item when one exists.\n- previous(): move to the previous item when one exists.\n- goTo(index): request a specific zero-based step.\n- syncActiveStep(index): internal synchronization path used by the component when value changes.\n- value: current public active index.\n- items: current item array.\n- stepHeights: measured panel heights used for smooth height transitions.\n\n## Composition Rules\n\n- Render repeated step content through the children snippet.\n- Put per-step differences in the item data and branch inside children when needed.\n- Bind value when the parent or another Stepper controls the current step.\n- Bind api when external controls need to call next(), previous(), or goTo(index).\n\n## Accessibility\n\nStepper renders each panel with role=\"tabpanel\" by default, marks inactive panels inert and `aria-hidden` (and `hidden` once the slide settles), disables pointer events on inactive panels, and keeps inactive panels out of the tab order, so only the active panel reaches the text and accessibility layers. Use `panelRole={null}` with `panelAriaLabelledby={false}` when another primitive owns the semantics inside each panel.\n\n## Theme Parts\n\n- root: outer stepper container.\n- container: animated grid that holds all panels.\n- step: individual panel.\n\nThe theme supports the mode variant on root, container, and step.\n\n## Motion\n\n- **motion** theme slot: one preset (no variants) whose `duration` / `easing` drive the Web\n Animations step translation and the matching CSS height/opacity transitions.\n- Ladder: `<Theme components={{ stepper: { motion } }}>` \u2192 `setStepperTheme({ motion })` \u2192\n `theme.motion` \u2192 the `transition` prop (how Tabs forwards its own preset).\n- A resolved duration of 0 (reduced motion, or `duration: 'instant'`) snaps between steps.\n";
1
+ export declare const stepperDescription = "\n# Stepper Component\n\nStepper renders an ordered collection of panels with animated transitions, measured height changes, and programmatic navigation through StepperState.\n\n## Usage\n\nUse items for the collection and a single children snippet for the repeated panel content. The snippet receives the instance handle as api, the current item, and the zero-based index.\n\n<script lang=\"ts\">\n\timport { Stepper, type StepperApi } from '$lib/components/Stepper';\n\timport { Button } from '$lib/components/Button';\n\n\ttype Step = {\n\t\ttitle: string;\n\t\tdescription: string;\n\t};\n\n\tlet activeStep = $state(0);\n\tlet api = $state<StepperApi<Step>>();\n\n\tconst items: Step[] = [\n\t\t{ title: 'Account', description: 'Create the account.' },\n\t\t{ title: 'Profile', description: 'Complete the profile.' },\n\t\t{ title: 'Review', description: 'Confirm the details.' }\n\t];\n</script>\n\n<Stepper {items} bind:value={activeStep} bind:api>\n\t{#snippet children({ api, item, index })}\n\t\t<section class=\"space-y-4 p-6\">\n\t\t\t<h2>{item.title}</h2>\n\t\t\t<p>{item.description}</p>\n\t\t\t<div class=\"flex gap-2\">\n\t\t\t\t<Button disabled={index === 0} onclick={() => api.previous()}>\n\t\t\t\t\tPrevious\n\t\t\t\t</Button>\n\t\t\t\t<Button disabled={index === items.length - 1} onclick={() => api.next()}>\n\t\t\t\t\tNext\n\t\t\t\t</Button>\n\t\t\t</div>\n\t\t</section>\n\t{/snippet}\n</Stepper>\n\n## Props\n\n- items: required array of step data. Each item is passed to children as item.\n- children: repeated snippet called for each panel with { api, item, index }.\n- value: bindable zero-based active index. Use this as the public source of truth when syncing steppers.\n- defaultValue: initial active index when value is omitted.\n- api: bindable StepperApi (a StepperState) for next(), previous(), and goTo(index).\n- onValueChange: called once with { value, item, index } when the active step changes. Same payload shape as Tabs; value and index are both the zero-based step index.\n- transition: step translation timing override (`duration` in ms, `easing`); responsive, and it beats the `motion` theme slot. The default is the `slow` duration token (300ms).\n- theme: theme overrides for the stepper parts, including its `motion` slot.\n- mode: classic or vertical.\n- panelRole: \"tabpanel\", \"group\", or null. Defaults to \"tabpanel\"; use \"group\" for labelled question flows.\n- panelAriaLabelledby: aria-labelledby value, callback, or false. Defaults to stepper-{index} when panelRole is \"tabpanel\".\n- panelAriaLabel: aria-label value or callback for each panel.\n- panelId: (index) => string giving each panel a DOM id so a tab can reference it with aria-controls. Tabs uses it to link Tabbar tabs to their panels.\n- panelActivationDirection: (index) => string | undefined giving the value of `data-activation-direction` for each panel. Tabs sets it on the active panel with the direction the selection moved.\n- mount: when a step's content is created \u2014 `eager` (default) for every step up front, `lazy` on first activation and destroyed once the slide away from it finishes, `once` on first activation and kept. Inactive panels are `inert` and `aria-hidden` at once and `hidden` as soon as the slide settles, so at rest exactly one panel is not `hidden`. Tabs forwards its own `mount`, which defaults to `lazy`.\n- class: extra classes applied to the root container.\n\n## StepperApi (StepperState)\n\n- next(): move to the next item when one exists.\n- previous(): move to the previous item when one exists.\n- goTo(index): request a specific zero-based step.\n- syncActiveStep(index): internal synchronization path used by the component when value changes.\n- value: current public active index.\n- items: current item array.\n- stepHeights: measured panel heights used for smooth height transitions.\n\n## Composition Rules\n\n- Render repeated step content through the children snippet.\n- Put per-step differences in the item data and branch inside children when needed.\n- Bind value when the parent or another Stepper controls the current step.\n- Bind api when external controls need to call next(), previous(), or goTo(index).\n\n## Accessibility\n\nStepper renders each panel with role=\"tabpanel\" by default, marks inactive panels inert and `aria-hidden` (and `hidden` once the slide settles), disables pointer events on inactive panels, and keeps inactive panels out of the tab order, so only the active panel reaches the text and accessibility layers. Use `panelRole={null}` with `panelAriaLabelledby={false}` when another primitive owns the semantics inside each panel.\n\n## Theme Parts\n\n- root: outer stepper container.\n- container: animated grid that holds all panels.\n- step: individual panel.\n\nThe theme supports the mode variant on root, container, and step.\n\n## Motion\n\n- **motion** theme slot: one preset (no variants) whose `duration` / `easing` drive the Web\n Animations step translation and the matching CSS height/opacity transitions.\n- Ladder: `<Theme components={{ stepper: { motion } }}>` \u2192 `setStepperTheme({ motion })` \u2192\n `theme.motion` \u2192 the `transition` prop (how Tabs forwards its own preset).\n- A resolved duration of 0 (reduced motion, or `duration: 'instant'`) snaps between steps.\n";
@@ -58,6 +58,7 @@ Use items for the collection and a single children snippet for the repeated pane
58
58
  - panelAriaLabelledby: aria-labelledby value, callback, or false. Defaults to stepper-{index} when panelRole is "tabpanel".
59
59
  - panelAriaLabel: aria-label value or callback for each panel.
60
60
  - panelId: (index) => string giving each panel a DOM id so a tab can reference it with aria-controls. Tabs uses it to link Tabbar tabs to their panels.
61
+ - panelActivationDirection: (index) => string | undefined giving the value of \`data-activation-direction\` for each panel. Tabs sets it on the active panel with the direction the selection moved.
61
62
  - mount: when a step's content is created — \`eager\` (default) for every step up front, \`lazy\` on first activation and destroyed once the slide away from it finishes, \`once\` on first activation and kept. Inactive panels are \`inert\` and \`aria-hidden\` at once and \`hidden\` as soon as the slide settles, so at rest exactly one panel is not \`hidden\`. Tabs forwards its own \`mount\`, which defaults to \`lazy\`.
62
63
  - class: extra classes applied to the root container.
63
64
 
@@ -77,6 +77,11 @@ export type StepperProps<Item> = {
77
77
  panelAriaLabel?: StepperPanelAriaLabel<Item>;
78
78
  /** DOM id for each panel, so a tab can reference it with `aria-controls`. */
79
79
  panelId?: (index: number) => string;
80
+ /**
81
+ * Value of `data-activation-direction` for one panel, or undefined for none; a styling hook
82
+ * for direction-aware panel animations. Tabs sets it on the active panel.
83
+ */
84
+ panelActivationDirection?: (index: number) => string | undefined;
80
85
  /**
81
86
  * When each panel's content is created.
82
87
  * `eager` creates every panel up front, `lazy` creates a panel the first time it is
@@ -56,6 +56,8 @@ export declare class StepperState<Item> extends StepperState_base {
56
56
  canGoToStep: (targetStep: number) => boolean;
57
57
  private translateToStep;
58
58
  private lockTransformToStep;
59
+ private collapseTrack;
60
+ private clearStep;
59
61
  private cancelAnimations;
60
62
  private cancelStepAnimation;
61
63
  private freezeCurrentTransform;
@@ -79,7 +79,10 @@ export class StepperState extends createBindableStateClass() {
79
79
  this.notifyChange(step);
80
80
  };
81
81
  syncActiveStep(step) {
82
- if (!this.canGoToStep(step) || this.targetStep === step)
82
+ // A value outside the items shows no step, not the one the track last rested on.
83
+ if (!this.canGoToStep(step))
84
+ return this.clearStep();
85
+ if (this.targetStep === step)
83
86
  return;
84
87
  this.translateToStep(step);
85
88
  }
@@ -130,9 +133,9 @@ export class StepperState extends createBindableStateClass() {
130
133
  };
131
134
  translateToStep(step) {
132
135
  const offset = this.offsets[step];
133
- if (!this.stepContainer || offset == null || Number.isNaN(offset)) {
134
- // Nothing can slide before the track is measured, so no panel is leaving: the shown
135
- // step is the requested one, and `setOffsets` locks the transform once it can.
136
+ if (!this.stepContainer || offset == null || Number.isNaN(offset) || this.visualStep < 0) {
137
+ // Nothing can slide before the track is measured, or when no step is shown, so no panel
138
+ // is leaving: the shown step is the requested one, at rest.
136
139
  this.targetStep = step;
137
140
  this.visualStep = step;
138
141
  return;
@@ -184,18 +187,34 @@ export class StepperState extends createBindableStateClass() {
184
187
  if (!this.stepContainer || offset == null || Number.isNaN(offset))
185
188
  return;
186
189
  this.destinationOffset = offset;
187
- // At rest the track collapses to one viewport with the shown panel in column one, written
188
- // to the DOM in the same frame the slide settles so the panel never moves twice.
189
- this.stepContainer.style.transform = 'translateX(0px)';
190
- this.stepContainer.style.width = '100%';
191
- this.stepContainer.style.gridTemplateColumns = 'repeat(1, minmax(0, 1fr))';
192
- this.getSteps().forEach((node) => {
193
- node.style.gridColumn = '1';
194
- });
190
+ this.collapseTrack();
195
191
  this.targetStep = step;
196
192
  this.visualStep = step;
193
+ }
194
+ // At rest the track collapses to one viewport with the shown panel in column one, written to
195
+ // the DOM in the same frame the slide settles so the panel never moves twice.
196
+ collapseTrack() {
197
+ if (this.stepContainer) {
198
+ this.stepContainer.style.transform = 'translateX(0px)';
199
+ this.stepContainer.style.width = '100%';
200
+ this.stepContainer.style.gridTemplateColumns = 'repeat(1, minmax(0, 1fr))';
201
+ this.getSteps().forEach((node) => {
202
+ node.style.gridColumn = '1';
203
+ });
204
+ }
197
205
  this.expanded = false;
198
206
  }
207
+ // Every panel is hidden and the root drops the last height, so the next step appears in place
208
+ // instead of sliding in from a panel that is no longer shown.
209
+ clearStep() {
210
+ if (this.visualStep < 0 && this.targetStep === undefined)
211
+ return;
212
+ this.cancelAnimations();
213
+ this.collapseTrack();
214
+ this.targetStep = undefined;
215
+ this.visualStep = -1;
216
+ this.lastActiveHeight = undefined;
217
+ }
199
218
  cancelAnimations() {
200
219
  this.animationRunId += 1;
201
220
  this.cancelStepAnimation();