entasis 0.11.0 → 0.12.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (839) hide show
  1. package/README.md +1 -1
  2. package/dist/attachments/disclosurePanel.svelte.d.ts +84 -0
  3. package/dist/attachments/disclosurePanel.svelte.js +277 -0
  4. package/dist/attachments/portal.d.ts +17 -1
  5. package/dist/attachments/portal.js +39 -2
  6. package/dist/attachments/spinnerOverlay.svelte.js +12 -0
  7. package/dist/attachments/transitionSize.d.ts +6 -0
  8. package/dist/attachments/transitionSize.js +30 -0
  9. package/dist/components/AIAskUserQuestion/AIAskUserQuestion.svelte +131 -17
  10. package/dist/components/AIAskUserQuestion/AIAskUserQuestionFileStep.svelte +26 -6
  11. package/dist/components/AIAskUserQuestion/AIAskUserQuestionFileStep.svelte.d.ts +6 -0
  12. package/dist/components/AIAskUserQuestion/AIAskUserQuestionFooter.svelte +27 -53
  13. package/dist/components/AIAskUserQuestion/AIAskUserQuestionFooter.svelte.d.ts +3 -4
  14. package/dist/components/AIAskUserQuestion/AIAskUserQuestionHeader.svelte +19 -16
  15. package/dist/components/AIAskUserQuestion/AIAskUserQuestionStep.svelte +180 -21
  16. package/dist/components/AIAskUserQuestion/AIAskUserQuestionStep.svelte.d.ts +9 -1
  17. package/dist/components/AIAskUserQuestion/AIAskUserQuestionSummary.svelte +56 -0
  18. package/dist/components/AIAskUserQuestion/AIAskUserQuestionSummary.svelte.d.ts +4 -0
  19. package/dist/components/AIAskUserQuestion/aiAskUserQuestion.mcp.d.ts +1 -1
  20. package/dist/components/AIAskUserQuestion/aiAskUserQuestion.mcp.js +26 -8
  21. package/dist/components/AIAskUserQuestion/aiAskUserQuestion.props.d.ts +62 -5
  22. package/dist/components/AIAskUserQuestion/aiAskUserQuestion.theme.d.ts +42 -0
  23. package/dist/components/AIAskUserQuestion/aiAskUserQuestion.theme.js +53 -12
  24. package/dist/components/AIAskUserQuestion/aiAskUserQuestionAnswers.d.ts +17 -1
  25. package/dist/components/AIAskUserQuestion/aiAskUserQuestionAnswers.js +56 -8
  26. package/dist/components/AIAskUserQuestion/index.d.ts +3 -1
  27. package/dist/components/AIAskUserQuestion/index.js +2 -0
  28. package/dist/components/AIAskUserQuestion/schemas.d.ts +44 -0
  29. package/dist/components/AIAskUserQuestion/schemas.js +10 -3
  30. package/dist/components/AIChat/AIChat.svelte +10 -0
  31. package/dist/components/AIChat/AIChat.svelte.d.ts +2 -2
  32. package/dist/components/AIChat/AIChatComposerSurface.svelte +23 -5
  33. package/dist/components/AIChat/AIChatComposerSurface.svelte.d.ts +5 -0
  34. package/dist/components/AIChat/AIChatSkeleton.svelte +29 -37
  35. package/dist/components/AIChat/AIChatSurface.svelte +30 -2
  36. package/dist/components/AIChat/AIChatSurface.svelte.d.ts +1 -1
  37. package/dist/components/AIChat/AIChatThreadSurface.svelte +11 -1
  38. package/dist/components/AIChat/AIChatThreadSurface.svelte.d.ts +3 -1
  39. package/dist/components/AIChat/aiChat.mcp.d.ts +1 -1
  40. package/dist/components/AIChat/aiChat.mcp.js +31 -15
  41. package/dist/components/AIChat/aiChat.props.d.ts +36 -10
  42. package/dist/components/AIChat/aiChat.theme.d.ts +9 -0
  43. package/dist/components/AIChat/aiChat.theme.js +21 -4
  44. package/dist/components/AIChat/aiChatSkeleton.props.d.ts +5 -0
  45. package/dist/components/AIChat/index.d.ts +1 -1
  46. package/dist/components/AIComposer/AIComposer.svelte +102 -5
  47. package/dist/components/AIComposer/AIComposer.svelte.d.ts +1 -0
  48. package/dist/components/AIComposer/AIComposerFooter.svelte +54 -12
  49. package/dist/components/AIComposer/AIComposerFooter.svelte.d.ts +2 -0
  50. package/dist/components/AIComposer/AIComposerQueue.svelte +8 -3
  51. package/dist/components/AIComposer/aiComposer.editor.theme.js +13 -2
  52. package/dist/components/AIComposer/aiComposer.mcp.d.ts +1 -1
  53. package/dist/components/AIComposer/aiComposer.mcp.js +15 -7
  54. package/dist/components/AIComposer/aiComposer.props.d.ts +27 -7
  55. package/dist/components/AIComposer/aiComposer.theme.d.ts +42 -3
  56. package/dist/components/AIComposer/aiComposer.theme.js +37 -5
  57. package/dist/components/AIComposer/aiComposerFileController.svelte.d.ts +20 -0
  58. package/dist/components/AIComposer/aiComposerFileController.svelte.js +75 -9
  59. package/dist/components/AIComposer/aiComposerSourceAdapter.js +22 -4
  60. package/dist/components/AIComposer/aiComposerSubmitController.svelte.d.ts +12 -0
  61. package/dist/components/AIComposer/aiComposerSubmitController.svelte.js +16 -6
  62. package/dist/components/AIContext/AIContext.svelte +7 -3
  63. package/dist/components/AIContext/aiContext.mcp.d.ts +1 -1
  64. package/dist/components/AIContext/aiContext.mcp.js +1 -1
  65. package/dist/components/AIContext/aiContext.props.d.ts +4 -1
  66. package/dist/components/AIContext/aiContext.theme.d.ts +3 -0
  67. package/dist/components/AIContext/aiContext.theme.js +7 -2
  68. package/dist/components/AIConversation/AIConversation.svelte.d.ts +2 -2
  69. package/dist/components/AIFilePreview/aiFilePreview.theme.js +1 -1
  70. package/dist/components/AIMarker/AIMarker.svelte +2 -0
  71. package/dist/components/AIMarker/aiMarker.mcp.d.ts +1 -1
  72. package/dist/components/AIMarker/aiMarker.mcp.js +2 -0
  73. package/dist/components/AIMarker/aiMarker.props.d.ts +3 -0
  74. package/dist/components/AIMarker/aiMarker.theme.js +2 -2
  75. package/dist/components/AIMessage/AIMessage.svelte +38 -16
  76. package/dist/components/AIMessage/aiMessage.mcp.d.ts +1 -1
  77. package/dist/components/AIMessage/aiMessage.mcp.js +20 -6
  78. package/dist/components/AIMessage/aiMessage.props.d.ts +18 -2
  79. package/dist/components/AIMessage/aiMessage.theme.d.ts +51 -6
  80. package/dist/components/AIMessage/aiMessage.theme.js +91 -32
  81. package/dist/components/AIMessageActions/AIMessageActions.svelte +19 -9
  82. package/dist/components/AIMessageActions/aiMessageActions.mcp.d.ts +1 -1
  83. package/dist/components/AIMessageActions/aiMessageActions.mcp.js +11 -3
  84. package/dist/components/AIMessageActions/aiMessageActions.theme.js +36 -9
  85. package/dist/components/AIModelSelector/AIModelSelector.svelte +25 -10
  86. package/dist/components/AIModelSelector/aiModelSelector.mcp.d.ts +1 -1
  87. package/dist/components/AIModelSelector/aiModelSelector.mcp.js +1 -1
  88. package/dist/components/AIModelSelector/aiModelSelector.theme.d.ts +3 -0
  89. package/dist/components/AIModelSelector/aiModelSelector.theme.js +7 -3
  90. package/dist/components/AIReasoning/AIReasoning.svelte +135 -38
  91. package/dist/components/AIReasoning/aiReasoning.mcp.d.ts +1 -1
  92. package/dist/components/AIReasoning/aiReasoning.mcp.js +11 -5
  93. package/dist/components/AIReasoning/aiReasoning.props.d.ts +15 -4
  94. package/dist/components/AIReasoning/aiReasoning.theme.d.ts +45 -0
  95. package/dist/components/AIReasoning/aiReasoning.theme.js +47 -7
  96. package/dist/components/AISuggestion/AISuggestion.svelte +2 -1
  97. package/dist/components/AISuggestion/AISuggestions.svelte +2 -1
  98. package/dist/components/AISuggestion/aiSuggestion.mcp.d.ts +1 -1
  99. package/dist/components/AISuggestion/aiSuggestion.mcp.js +8 -1
  100. package/dist/components/AISuggestion/aiSuggestion.props.d.ts +4 -1
  101. package/dist/components/AISuggestion/aiSuggestion.theme.js +1 -1
  102. package/dist/components/AISuggestion/aiSuggestions.props.d.ts +7 -0
  103. package/dist/components/AIThread/AIThread.svelte +378 -95
  104. package/dist/components/AIThread/AIThreadAskUserQuestion.svelte +1 -0
  105. package/dist/components/AIThread/AIThreadItems.svelte +266 -64
  106. package/dist/components/AIThread/AIThreadItems.svelte.d.ts +7 -3
  107. package/dist/components/AIThread/AIThreadMarker.svelte +8 -1
  108. package/dist/components/AIThread/AIThreadMarker.svelte.d.ts +1 -0
  109. package/dist/components/AIThread/aiThread.mcp.d.ts +1 -1
  110. package/dist/components/AIThread/aiThread.mcp.js +34 -20
  111. package/dist/components/AIThread/aiThread.props.d.ts +73 -8
  112. package/dist/components/AIThread/aiThread.theme.d.ts +78 -0
  113. package/dist/components/AIThread/aiThread.theme.js +108 -9
  114. package/dist/components/AIThread/index.d.ts +1 -1
  115. package/dist/components/AIThread/threadAskUserQuestion.d.ts +4 -1
  116. package/dist/components/AIThread/threadAskUserQuestion.js +8 -4
  117. package/dist/components/AIThread/threadRenderItems.d.ts +74 -3
  118. package/dist/components/AIThread/threadRenderItems.js +265 -77
  119. package/dist/components/AIThread/threadScrollController.d.ts +0 -8
  120. package/dist/components/AIThread/threadScrollController.js +2 -39
  121. package/dist/components/AIThread/threadTools.d.ts +11 -0
  122. package/dist/components/AIThread/threadTools.js +79 -0
  123. package/dist/components/AIThreadToc/AIThreadToc.svelte +188 -18
  124. package/dist/components/AIThreadToc/AIThreadTocPreview.svelte +25 -2
  125. package/dist/components/AIThreadToc/AIThreadTocPreview.svelte.d.ts +3 -0
  126. package/dist/components/AIThreadToc/aiThreadToc.d.ts +4 -2
  127. package/dist/components/AIThreadToc/aiThreadToc.js +17 -5
  128. package/dist/components/AIThreadToc/aiThreadToc.mcp.d.ts +1 -1
  129. package/dist/components/AIThreadToc/aiThreadToc.mcp.js +13 -3
  130. package/dist/components/AIThreadToc/aiThreadToc.props.d.ts +11 -0
  131. package/dist/components/AIThreadToc/aiThreadToc.theme.d.ts +3 -0
  132. package/dist/components/AIThreadToc/aiThreadToc.theme.js +15 -6
  133. package/dist/components/AITool/AITool.svelte +56 -21
  134. package/dist/components/AITool/AIToolCallList.svelte +79 -29
  135. package/dist/components/AITool/AIToolCallList.svelte.d.ts +6 -2
  136. package/dist/components/AITool/AIToolStatusMark.svelte +52 -0
  137. package/dist/components/AITool/AIToolStatusMark.svelte.d.ts +14 -0
  138. package/dist/components/AITool/AIToolValueSection.svelte +126 -28
  139. package/dist/components/AITool/AIToolValueSection.svelte.d.ts +6 -2
  140. package/dist/components/AITool/AIToolValueTree.svelte +11 -16
  141. package/dist/components/AITool/AIToolValueTree.svelte.d.ts +2 -3
  142. package/dist/components/AITool/aiTool.mcp.d.ts +1 -1
  143. package/dist/components/AITool/aiTool.mcp.js +36 -8
  144. package/dist/components/AITool/aiTool.props.d.ts +52 -6
  145. package/dist/components/AITool/aiTool.theme.d.ts +117 -39
  146. package/dist/components/AITool/aiTool.theme.js +144 -140
  147. package/dist/components/AITool/aiToolClock.svelte.d.ts +18 -0
  148. package/dist/components/AITool/aiToolClock.svelte.js +62 -0
  149. package/dist/components/AITool/aiToolPrimitiveThemes.d.ts +0 -2
  150. package/dist/components/AITool/aiToolPrimitiveThemes.js +0 -10
  151. package/dist/components/AITool/index.d.ts +2 -1
  152. package/dist/components/AITool/index.js +1 -0
  153. package/dist/components/AITool/toolRendering.d.ts +33 -1
  154. package/dist/components/AITool/toolRendering.js +179 -15
  155. package/dist/components/AITool/toolValueTree.d.ts +14 -1
  156. package/dist/components/AITool/toolValueTree.js +126 -27
  157. package/dist/components/Accordion/Accordion.svelte +109 -109
  158. package/dist/components/Accordion/Accordion.svelte.d.ts +0 -1
  159. package/dist/components/Accordion/AccordionPanel.svelte +64 -0
  160. package/dist/components/Accordion/AccordionPanel.svelte.d.ts +20 -0
  161. package/dist/components/Accordion/accordion.attributes.d.ts +24 -0
  162. package/dist/components/Accordion/accordion.attributes.js +20 -0
  163. package/dist/components/Accordion/accordion.mcp.d.ts +1 -1
  164. package/dist/components/Accordion/accordion.mcp.js +78 -22
  165. package/dist/components/Accordion/accordion.props.d.ts +54 -10
  166. package/dist/components/Accordion/accordion.theme.d.ts +3 -0
  167. package/dist/components/Accordion/accordion.theme.js +4 -0
  168. package/dist/components/Accordion/index.d.ts +1 -0
  169. package/dist/components/Accordion/index.js +1 -0
  170. package/dist/components/AudioPlayer/audioPlayerVolumeControl.slider.theme.d.ts +31 -1
  171. package/dist/components/Avatar/Avatar.svelte +60 -10
  172. package/dist/components/Avatar/AvatarGroup.svelte +9 -0
  173. package/dist/components/Avatar/avatar.mcp.d.ts +1 -1
  174. package/dist/components/Avatar/avatar.mcp.js +13 -5
  175. package/dist/components/Avatar/avatar.props.d.ts +28 -1
  176. package/dist/components/Avatar/avatar.theme.js +3 -3
  177. package/dist/components/Avatar/index.d.ts +1 -1
  178. package/dist/components/Breadcrumbs/breadcrumbs.mcp.d.ts +1 -1
  179. package/dist/components/Breadcrumbs/breadcrumbs.mcp.js +1 -1
  180. package/dist/components/Button/Button.svelte +35 -15
  181. package/dist/components/Button/button.mcp.d.ts +1 -1
  182. package/dist/components/Button/button.mcp.js +8 -4
  183. package/dist/components/Button/button.props.d.ts +23 -8
  184. package/dist/components/Button/button.theme.d.ts +12 -0
  185. package/dist/components/Button/button.theme.js +17 -4
  186. package/dist/components/ButtonGroup/buttonGroup.mcp.d.ts +1 -1
  187. package/dist/components/ButtonGroup/buttonGroup.mcp.js +1 -1
  188. package/dist/components/ButtonGroup/buttonGroup.props.d.ts +4 -1
  189. package/dist/components/Collapsible/Collapsible.svelte +125 -19
  190. package/dist/components/Collapsible/collapsible.attributes.d.ts +21 -0
  191. package/dist/components/Collapsible/collapsible.attributes.js +17 -0
  192. package/dist/components/Collapsible/collapsible.mcp.d.ts +1 -1
  193. package/dist/components/Collapsible/collapsible.mcp.js +62 -12
  194. package/dist/components/Collapsible/collapsible.props.d.ts +39 -8
  195. package/dist/components/Collapsible/collapsible.theme.js +3 -1
  196. package/dist/components/Collapsible/index.d.ts +1 -0
  197. package/dist/components/Collapsible/index.js +1 -0
  198. package/dist/components/Command/Command.svelte +56 -14
  199. package/dist/components/Command/command.mcp.d.ts +1 -1
  200. package/dist/components/Command/command.mcp.js +12 -6
  201. package/dist/components/Command/command.props.d.ts +39 -6
  202. package/dist/components/Command/command.state.svelte.d.ts +40 -11
  203. package/dist/components/Command/command.state.svelte.js +75 -28
  204. package/dist/components/Command/command.theme.js +4 -3
  205. package/dist/components/Confirmation/Confirmation.svelte +72 -31
  206. package/dist/components/Confirmation/confirmation.mcp.d.ts +1 -1
  207. package/dist/components/Confirmation/confirmation.mcp.js +5 -4
  208. package/dist/components/ContextMenu/ContextMenu.svelte +126 -16
  209. package/dist/components/ContextMenu/contextMenu.mcp.d.ts +1 -1
  210. package/dist/components/ContextMenu/contextMenu.mcp.js +10 -7
  211. package/dist/components/ContextMenu/contextMenu.props.d.ts +13 -4
  212. package/dist/components/ContextMenu/contextMenu.theme.d.ts +3 -3
  213. package/dist/components/ContextMenu/contextMenu.theme.js +3 -2
  214. package/dist/components/DataTable/DataTable.svelte +4 -9
  215. package/dist/components/DataTable/DataTableEditor.svelte +5 -0
  216. package/dist/components/DataTable/DataTableFilter.svelte +1 -0
  217. package/dist/components/DataTable/DataTableToolbar.svelte +1 -0
  218. package/dist/components/DataTable/dataTable.mcp.d.ts +1 -1
  219. package/dist/components/DataTable/dataTable.mcp.js +4 -2
  220. package/dist/components/DataTable/dataTable.theme.d.ts +0 -3
  221. package/dist/components/DataTable/dataTable.theme.js +9 -6
  222. package/dist/components/Dialog/Dialog.svelte +120 -35
  223. package/dist/components/Dialog/Dialog.svelte.d.ts +1 -1
  224. package/dist/components/Dialog/DialogBackdrop.svelte +21 -1
  225. package/dist/components/Dialog/dialog.api.d.ts +65 -0
  226. package/dist/components/Dialog/dialog.api.js +1 -0
  227. package/dist/components/Dialog/dialog.attributes.d.ts +23 -0
  228. package/dist/components/Dialog/dialog.attributes.js +19 -0
  229. package/dist/components/Dialog/dialog.indent.d.ts +6 -0
  230. package/dist/components/Dialog/dialog.indent.js +16 -0
  231. package/dist/components/Dialog/dialog.mcp.d.ts +1 -1
  232. package/dist/components/Dialog/dialog.mcp.js +195 -22
  233. package/dist/components/Dialog/dialog.props.d.ts +102 -19
  234. package/dist/components/Dialog/dialog.snap.d.ts +40 -0
  235. package/dist/components/Dialog/dialog.snap.js +78 -0
  236. package/dist/components/Dialog/dialog.state.svelte.d.ts +122 -10
  237. package/dist/components/Dialog/dialog.state.svelte.js +525 -66
  238. package/dist/components/Dialog/dialog.theme.d.ts +48 -0
  239. package/dist/components/Dialog/dialog.theme.js +32 -9
  240. package/dist/components/Dialog/index.d.ts +4 -1
  241. package/dist/components/Dialog/index.js +1 -0
  242. package/dist/components/DocumentViewer/DocumentSearchControl.svelte +5 -3
  243. package/dist/components/DocumentViewer/documentOutput.js +2 -1
  244. package/dist/components/FloatingWindow/FloatingWindow.svelte +20 -32
  245. package/dist/components/FloatingWindow/FloatingWindow.svelte.d.ts +1 -1
  246. package/dist/components/FloatingWindow/floatingWindow.mcp.d.ts +1 -1
  247. package/dist/components/FloatingWindow/floatingWindow.mcp.js +3 -3
  248. package/dist/components/FloatingWindow/floatingWindow.props.d.ts +9 -4
  249. package/dist/components/FloatingWindow/floatingWindow.state.svelte.d.ts +8 -2
  250. package/dist/components/FloatingWindow/floatingWindow.state.svelte.js +18 -7
  251. package/dist/components/Form/Ask/Ask.svelte +9 -13
  252. package/dist/components/Form/Ask/ask.mcp.d.ts +1 -1
  253. package/dist/components/Form/Ask/ask.mcp.js +1 -1
  254. package/dist/components/Form/Ask/ask.props.d.ts +1 -1
  255. package/dist/components/Form/Autocomplete/Autocomplete.svelte +418 -0
  256. package/dist/components/Form/Autocomplete/Autocomplete.svelte.d.ts +4 -0
  257. package/dist/components/Form/Autocomplete/autocomplete.items.d.ts +30 -0
  258. package/dist/components/Form/Autocomplete/autocomplete.items.js +64 -0
  259. package/dist/components/Form/Autocomplete/autocomplete.mcp.d.ts +1 -0
  260. package/dist/components/Form/Autocomplete/autocomplete.mcp.js +134 -0
  261. package/dist/components/Form/Autocomplete/autocomplete.props.d.ts +146 -0
  262. package/dist/components/Form/Autocomplete/autocomplete.props.js +1 -0
  263. package/dist/components/Form/Autocomplete/autocomplete.theme.d.ts +213 -0
  264. package/dist/components/Form/Autocomplete/autocomplete.theme.js +119 -0
  265. package/dist/components/Form/Autocomplete/index.d.ts +3 -0
  266. package/dist/components/Form/Autocomplete/index.js +2 -0
  267. package/dist/components/Form/Calendar/CalendarInput.svelte +9 -0
  268. package/dist/components/Form/Calendar/CalendarMonthYearPicker.svelte +3 -0
  269. package/dist/components/Form/Calendar/CalendarPrimitive.svelte +5 -0
  270. package/dist/components/Form/Calendar/calendar.mcp.d.ts +1 -1
  271. package/dist/components/Form/Calendar/calendar.mcp.js +2 -1
  272. package/dist/components/Form/Calendar/calendarInput.props.d.ts +2 -0
  273. package/dist/components/Form/Calendar/useCalendar.svelte.d.ts +3 -0
  274. package/dist/components/Form/Calendar/useCalendar.svelte.js +3 -0
  275. package/dist/components/Form/Checkbox/Checkbox.svelte +17 -2
  276. package/dist/components/Form/Checkbox/checkbox.mcp.d.ts +1 -1
  277. package/dist/components/Form/Checkbox/checkbox.mcp.js +11 -1
  278. package/dist/components/Form/Checkbox/checkbox.props.d.ts +12 -1
  279. package/dist/components/Form/CheckboxesInput/CheckboxLine.svelte +69 -32
  280. package/dist/components/Form/CheckboxesInput/CheckboxLine.svelte.d.ts +10 -2
  281. package/dist/components/Form/CheckboxesInput/CheckboxesInput.svelte +123 -74
  282. package/dist/components/Form/CheckboxesInput/CheckboxesInput.svelte.d.ts +12 -12
  283. package/dist/components/Form/CheckboxesInput/checkboxesInput.mcp.d.ts +1 -1
  284. package/dist/components/Form/CheckboxesInput/checkboxesInput.mcp.js +11 -7
  285. package/dist/components/Form/CheckboxesInput/checkboxesInput.props.d.ts +25 -9
  286. package/dist/components/Form/CheckboxesInput/checkboxesInput.theme.d.ts +12 -0
  287. package/dist/components/Form/CheckboxesInput/checkboxesInput.theme.js +9 -4
  288. package/dist/components/Form/CheckboxesInput/choiceEnter.d.ts +11 -0
  289. package/dist/components/Form/CheckboxesInput/choiceEnter.js +27 -0
  290. package/dist/components/Form/ColorInput/ColorInput.svelte +12 -3
  291. package/dist/components/Form/ColorInput/colorInput.mcp.d.ts +1 -1
  292. package/dist/components/Form/ColorInput/colorInput.mcp.js +1 -0
  293. package/dist/components/Form/ColorPicker/ColorPicker.svelte +11 -2
  294. package/dist/components/Form/ColorPicker/ColorPickerInput.svelte +9 -0
  295. package/dist/components/Form/ColorPicker/colorPicker.mcp.d.ts +1 -1
  296. package/dist/components/Form/ColorPicker/colorPicker.mcp.js +1 -0
  297. package/dist/components/Form/ColorPicker/colorPicker.props.d.ts +2 -0
  298. package/dist/components/Form/ColorPicker/colorPicker.state.svelte.d.ts +4 -0
  299. package/dist/components/Form/ColorPicker/colorPicker.state.svelte.js +12 -8
  300. package/dist/components/Form/Combobox/Combobox.svelte +145 -185
  301. package/dist/components/Form/Combobox/Combobox.svelte.d.ts +1 -1
  302. package/dist/components/Form/Combobox/ComboboxPopup.svelte +128 -0
  303. package/dist/components/Form/Combobox/ComboboxPopup.svelte.d.ts +28 -0
  304. package/dist/components/Form/Combobox/combobox.attributes.d.ts +34 -0
  305. package/dist/components/Form/Combobox/combobox.attributes.js +25 -0
  306. package/dist/components/Form/Combobox/combobox.items.d.ts +28 -0
  307. package/dist/components/Form/Combobox/combobox.items.js +68 -0
  308. package/dist/components/Form/Combobox/combobox.mcp.d.ts +1 -1
  309. package/dist/components/Form/Combobox/combobox.mcp.js +104 -13
  310. package/dist/components/Form/Combobox/combobox.props.d.ts +113 -19
  311. package/dist/components/Form/Combobox/combobox.state.svelte.d.ts +137 -0
  312. package/dist/components/Form/Combobox/combobox.state.svelte.js +375 -0
  313. package/dist/components/Form/Combobox/combobox.theme.d.ts +63 -0
  314. package/dist/components/Form/Combobox/combobox.theme.js +37 -1
  315. package/dist/components/Form/Combobox/index.d.ts +2 -1
  316. package/dist/components/Form/Combobox/index.js +1 -0
  317. package/dist/components/Form/DateInput/DateInput.svelte +11 -3
  318. package/dist/components/Form/DateInput/dateInput.mcp.d.ts +1 -1
  319. package/dist/components/Form/DateInput/dateInput.mcp.js +5 -0
  320. package/dist/components/Form/DateSelector/DateSelector.svelte +5 -2
  321. package/dist/components/Form/DateSelector/DateSelectorInput.svelte +9 -0
  322. package/dist/components/Form/DateSelector/dateSelector.mcp.d.ts +1 -1
  323. package/dist/components/Form/DateSelector/dateSelector.mcp.js +2 -2
  324. package/dist/components/Form/DateSelector/dateSelector.props.d.ts +2 -0
  325. package/dist/components/Form/Field/Field.svelte +256 -30
  326. package/dist/components/Form/Field/Field.svelte.d.ts +9 -0
  327. package/dist/components/Form/Field/FieldGroup.svelte +29 -0
  328. package/dist/components/Form/Field/FieldGroup.svelte.d.ts +11 -0
  329. package/dist/components/Form/Field/FieldHiddenInputs.svelte +187 -0
  330. package/dist/components/Form/Field/FieldHiddenInputs.svelte.d.ts +26 -0
  331. package/dist/components/Form/Field/field.d.ts +64 -8
  332. package/dist/components/Form/Field/field.mcp.d.ts +1 -1
  333. package/dist/components/Form/Field/field.mcp.js +158 -18
  334. package/dist/components/Form/Field/field.messages.d.ts +47 -0
  335. package/dist/components/Form/Field/field.messages.js +64 -0
  336. package/dist/components/Form/Field/field.state.svelte.d.ts +109 -3
  337. package/dist/components/Form/Field/field.state.svelte.js +508 -16
  338. package/dist/components/Form/Field/field.theme.d.ts +46 -0
  339. package/dist/components/Form/Field/field.theme.js +33 -0
  340. package/dist/components/Form/Field/fieldHiddenInputs.props.d.ts +61 -0
  341. package/dist/components/Form/Field/fieldHiddenInputs.props.js +1 -0
  342. package/dist/components/Form/Field/fieldNativeForm.svelte.d.ts +14 -0
  343. package/dist/components/Form/Field/fieldNativeForm.svelte.js +113 -0
  344. package/dist/components/Form/Field/index.d.ts +5 -2
  345. package/dist/components/Form/Field/index.js +1 -0
  346. package/dist/components/Form/Field/schemas.js +7 -2
  347. package/dist/components/Form/File/FileInput.svelte +24 -3
  348. package/dist/components/Form/File/fileInput.mcp.d.ts +1 -1
  349. package/dist/components/Form/File/fileInput.mcp.js +1 -0
  350. package/dist/components/Form/Form/Form.svelte +47 -14
  351. package/dist/components/Form/Form/FormActions.svelte +3 -1
  352. package/dist/components/Form/Form/FormActions.svelte.d.ts +42 -2
  353. package/dist/components/Form/Form/FormFieldRenderer.svelte +40 -2
  354. package/dist/components/Form/Form/FormInputRenderer.svelte +7 -0
  355. package/dist/components/Form/Form/form.d.ts +35 -6
  356. package/dist/components/Form/Form/form.mcp.d.ts +1 -1
  357. package/dist/components/Form/Form/form.mcp.js +113 -13
  358. package/dist/components/Form/Form/form.props.d.ts +32 -1
  359. package/dist/components/Form/Form/form.registry.d.ts +2 -2
  360. package/dist/components/Form/Form/form.registry.js +1 -4
  361. package/dist/components/Form/Form/form.state.svelte.d.ts +1138 -413
  362. package/dist/components/Form/Form/form.state.svelte.js +319 -26
  363. package/dist/components/Form/Form/index.d.ts +3 -1
  364. package/dist/components/Form/Form/visibility.d.ts +3096 -1831
  365. package/dist/components/Form/KeyValueInput/KeyValueInput.svelte +22 -10
  366. package/dist/components/Form/KeyValueInput/keyValueInput.mcp.d.ts +1 -1
  367. package/dist/components/Form/KeyValueInput/keyValueInput.mcp.js +1 -0
  368. package/dist/components/Form/MultiStepForm/MultiStepForm.svelte +12 -5
  369. package/dist/components/Form/MultiStepForm/multiStepForm.mcp.d.ts +1 -1
  370. package/dist/components/Form/MultiStepForm/multiStepForm.mcp.js +5 -3
  371. package/dist/components/Form/MultiStepForm/multiStepForm.props.d.ts +5 -0
  372. package/dist/components/Form/MultiStepForm/multiStepForm.state.svelte.d.ts +1022 -408
  373. package/dist/components/Form/MultiStepForm/multiStepForm.state.svelte.js +48 -24
  374. package/dist/components/Form/NumberInput/NumberInput.svelte +365 -46
  375. package/dist/components/Form/NumberInput/index.d.ts +1 -1
  376. package/dist/components/Form/NumberInput/numberInput.mcp.d.ts +1 -1
  377. package/dist/components/Form/NumberInput/numberInput.mcp.js +55 -30
  378. package/dist/components/Form/NumberInput/numberInput.props.d.ts +64 -4
  379. package/dist/components/Form/PasswordInput/Password.svelte +28 -1
  380. package/dist/components/Form/PasswordInput/index.d.ts +1 -1
  381. package/dist/components/Form/PasswordInput/passwordInput.mcp.d.ts +1 -1
  382. package/dist/components/Form/PasswordInput/passwordInput.mcp.js +20 -2
  383. package/dist/components/Form/PasswordInput/passwordInput.props.d.ts +23 -0
  384. package/dist/components/Form/PhoneInput/PhoneInput.svelte +11 -4
  385. package/dist/components/Form/PhoneInput/PhoneInputCountryPicker.svelte +47 -21
  386. package/dist/components/Form/PhoneInput/phoneInput-cdn.js +2 -1
  387. package/dist/components/Form/PhoneInput/phoneInput.mcp.d.ts +1 -1
  388. package/dist/components/Form/PhoneInput/phoneInput.mcp.js +6 -2
  389. package/dist/components/Form/PhoneInput/phoneInputCountry.d.ts +9 -3
  390. package/dist/components/Form/PhoneInput/phoneInputCountry.js +34 -24
  391. package/dist/components/Form/PinInput/PinInput.svelte +44 -9
  392. package/dist/components/Form/PinInput/PinInputCells.svelte +22 -1
  393. package/dist/components/Form/PinInput/PinInputCells.svelte.d.ts +1 -0
  394. package/dist/components/Form/PinInput/index.d.ts +1 -1
  395. package/dist/components/Form/PinInput/pinInput.mcp.d.ts +1 -1
  396. package/dist/components/Form/PinInput/pinInput.mcp.js +29 -6
  397. package/dist/components/Form/PinInput/pinInput.props.d.ts +38 -4
  398. package/dist/components/Form/PinInput/pinInput.state.svelte.d.ts +41 -0
  399. package/dist/components/Form/PinInput/pinInput.state.svelte.js +227 -24
  400. package/dist/components/Form/PinInput/pinInput.theme.d.ts +39 -3
  401. package/dist/components/Form/PinInput/pinInput.theme.js +27 -1
  402. package/dist/components/Form/RadioInput/RadioInput.svelte +94 -32
  403. package/dist/components/Form/RadioInput/RadioInput.svelte.d.ts +12 -12
  404. package/dist/components/Form/RadioInput/radioInput.mcp.d.ts +1 -1
  405. package/dist/components/Form/RadioInput/radioInput.mcp.js +12 -9
  406. package/dist/components/Form/RadioInput/radioInput.props.d.ts +22 -6
  407. package/dist/components/Form/RadioInput/radioInput.theme.d.ts +12 -0
  408. package/dist/components/Form/RadioInput/radioInput.theme.js +10 -5
  409. package/dist/components/Form/RatingInput/RatingInput.svelte +13 -4
  410. package/dist/components/Form/RatingInput/ratingInput.mcp.d.ts +1 -1
  411. package/dist/components/Form/RatingInput/ratingInput.mcp.js +3 -3
  412. package/dist/components/Form/RatingInput/ratingInput.props.d.ts +1 -1
  413. package/dist/components/Form/Select/Select.svelte +186 -48
  414. package/dist/components/Form/Select/Select.svelte.d.ts +23 -2
  415. package/dist/components/Form/Select/SelectOptionRow.svelte +69 -0
  416. package/dist/components/Form/Select/SelectOptionRow.svelte.d.ts +18 -0
  417. package/dist/components/Form/Select/index.d.ts +2 -1
  418. package/dist/components/Form/Select/index.js +1 -0
  419. package/dist/components/Form/Select/select.align.d.ts +5 -0
  420. package/dist/components/Form/Select/select.align.js +19 -5
  421. package/dist/components/Form/Select/select.attributes.d.ts +36 -0
  422. package/dist/components/Form/Select/select.attributes.js +27 -0
  423. package/dist/components/Form/Select/select.mcp.d.ts +1 -1
  424. package/dist/components/Form/Select/select.mcp.js +103 -18
  425. package/dist/components/Form/Select/select.props.d.ts +87 -10
  426. package/dist/components/Form/Select/select.state.svelte.d.ts +108 -17
  427. package/dist/components/Form/Select/select.state.svelte.js +354 -59
  428. package/dist/components/Form/Select/select.theme.d.ts +21 -0
  429. package/dist/components/Form/Select/select.theme.js +22 -0
  430. package/dist/components/Form/Slider/Slider.svelte +54 -14
  431. package/dist/components/Form/Slider/SliderMarks.svelte +1 -1
  432. package/dist/components/Form/Slider/SliderThumb.svelte +49 -19
  433. package/dist/components/Form/Slider/SliderThumb.svelte.d.ts +8 -2
  434. package/dist/components/Form/Slider/SliderTrack.svelte +33 -12
  435. package/dist/components/Form/Slider/SliderTrack.svelte.d.ts +6 -2
  436. package/dist/components/Form/Slider/index.d.ts +1 -1
  437. package/dist/components/Form/Slider/slider.mcp.d.ts +1 -1
  438. package/dist/components/Form/Slider/slider.mcp.js +55 -11
  439. package/dist/components/Form/Slider/slider.props.d.ts +35 -2
  440. package/dist/components/Form/Slider/slider.state.svelte.d.ts +66 -5
  441. package/dist/components/Form/Slider/slider.state.svelte.js +273 -49
  442. package/dist/components/Form/Slider/slider.theme.d.ts +36 -0
  443. package/dist/components/Form/Slider/slider.theme.js +35 -17
  444. package/dist/components/Form/Switch/Switch.svelte +61 -38
  445. package/dist/components/Form/Switch/switch.mcp.d.ts +1 -1
  446. package/dist/components/Form/Switch/switch.mcp.js +25 -5
  447. package/dist/components/Form/Switch/switch.props.d.ts +14 -1
  448. package/dist/components/Form/Switch/switch.theme.d.ts +12 -0
  449. package/dist/components/Form/Switch/switch.theme.js +8 -3
  450. package/dist/components/Form/TagGroup/TagGroup.svelte +8 -0
  451. package/dist/components/Form/TagGroup/tagGroup.mcp.d.ts +1 -1
  452. package/dist/components/Form/TagGroup/tagGroup.mcp.js +1 -0
  453. package/dist/components/Form/TagsInput/TagsInput.svelte +277 -275
  454. package/dist/components/Form/TagsInput/TagsInput.svelte.d.ts +1 -1
  455. package/dist/components/Form/TagsInput/tagsInput.mcp.d.ts +1 -1
  456. package/dist/components/Form/TagsInput/tagsInput.mcp.js +31 -11
  457. package/dist/components/Form/TagsInput/tagsInput.props.d.ts +6 -26
  458. package/dist/components/Form/TagsInput/tagsInput.theme.d.ts +63 -0
  459. package/dist/components/Form/TagsInput/tagsInput.theme.js +37 -1
  460. package/dist/components/Form/TextArea/TextArea.svelte +8 -0
  461. package/dist/components/Form/TextArea/textArea.mcp.d.ts +1 -1
  462. package/dist/components/Form/TextArea/textArea.mcp.js +1 -0
  463. package/dist/components/Form/TextInput/TextInput.svelte +8 -1
  464. package/dist/components/Form/TextInput/textInput.mcp.d.ts +1 -1
  465. package/dist/components/Form/TextInput/textInput.mcp.js +5 -0
  466. package/dist/components/Form/TimeInput/TimeInput.svelte +9 -1
  467. package/dist/components/Form/TimeInput/timeInput.mcp.d.ts +1 -1
  468. package/dist/components/Form/TimeInput/timeInput.mcp.js +31 -0
  469. package/dist/components/Form/VoiceInput/VoiceInput.svelte +10 -2
  470. package/dist/components/Form/VoiceInput/voiceInput.mcp.d.ts +1 -1
  471. package/dist/components/Form/VoiceInput/voiceInput.mcp.js +1 -0
  472. package/dist/components/GanttChart/GanttDependencyControl.svelte +4 -4
  473. package/dist/components/HoverCard/HoverCard.svelte +100 -10
  474. package/dist/components/HoverCard/hoverCard.attributes.d.ts +33 -0
  475. package/dist/components/HoverCard/hoverCard.attributes.js +24 -0
  476. package/dist/components/HoverCard/hoverCard.mcp.d.ts +1 -1
  477. package/dist/components/HoverCard/hoverCard.mcp.js +61 -2
  478. package/dist/components/HoverCard/hoverCard.props.d.ts +19 -0
  479. package/dist/components/HoverCard/hoverCard.theme.d.ts +12 -0
  480. package/dist/components/HoverCard/hoverCard.theme.js +9 -2
  481. package/dist/components/HoverCard/index.d.ts +1 -0
  482. package/dist/components/HoverCard/index.js +1 -0
  483. package/dist/components/ImageGallery/imageGallery.state.svelte.d.ts +1 -1
  484. package/dist/components/ImageZoom/imageZoom.lightbox.js +40 -6
  485. package/dist/components/ImageZoom/imageZoom.mcp.d.ts +1 -1
  486. package/dist/components/ImageZoom/imageZoom.mcp.js +3 -3
  487. package/dist/components/ImageZoom/imageZoom.props.d.ts +10 -4
  488. package/dist/components/ImageZoom/imageZoom.state.svelte.d.ts +16 -4
  489. package/dist/components/ImageZoom/imageZoom.state.svelte.js +38 -9
  490. package/dist/components/Kanban/kanban.theme.js +7 -3
  491. package/dist/components/Layout/layoutSpacing.d.ts +2 -2
  492. package/dist/components/LinkPreview/LinkPreview.svelte +7 -1
  493. package/dist/components/LinkPreview/linkPreview.mcp.d.ts +1 -1
  494. package/dist/components/LinkPreview/linkPreview.mcp.js +4 -1
  495. package/dist/components/LinkPreview/linkPreview.props.d.ts +15 -0
  496. package/dist/components/LinkPreview/linkPreview.theme.d.ts +12 -0
  497. package/dist/components/LinkPreview/linkPreview.theme.js +9 -2
  498. package/dist/components/Map/maplibre-cdn.js +3 -2
  499. package/dist/components/Markdown/markdown.mcp.d.ts +1 -1
  500. package/dist/components/Markdown/markdown.mcp.js +2 -1
  501. package/dist/components/Markdown/markdown.theme.js +18 -9
  502. package/dist/components/MediaVolume/MediaVolumeControl.svelte +4 -3
  503. package/dist/components/Menu/Menu.svelte +3 -3
  504. package/dist/components/Menu/Menu.svelte.d.ts +1 -1
  505. package/dist/components/Menu/MenuCheckboxItem.svelte +87 -0
  506. package/dist/components/Menu/MenuCheckboxItem.svelte.d.ts +16 -0
  507. package/dist/components/Menu/MenuFloating.svelte +421 -74
  508. package/dist/components/Menu/MenuFloating.svelte.d.ts +1 -1
  509. package/dist/components/Menu/MenuMirroredIcon.svelte +9 -0
  510. package/dist/components/Menu/MenuMirroredIcon.svelte.d.ts +7 -0
  511. package/dist/components/Menu/MenuRadioGroup.svelte +102 -0
  512. package/dist/components/Menu/MenuRadioGroup.svelte.d.ts +18 -0
  513. package/dist/components/Menu/MenuSearchField.svelte +54 -0
  514. package/dist/components/Menu/MenuSearchField.svelte.d.ts +20 -0
  515. package/dist/components/Menu/MenuStacked.svelte +404 -158
  516. package/dist/components/Menu/MenuStacked.svelte.d.ts +1 -1
  517. package/dist/components/Menu/MenuStackedBackHeader.svelte +6 -1
  518. package/dist/components/Menu/index.d.ts +2 -1
  519. package/dist/components/Menu/index.js +1 -0
  520. package/dist/components/Menu/menu.attributes.d.ts +37 -0
  521. package/dist/components/Menu/menu.attributes.js +28 -0
  522. package/dist/components/Menu/menu.filter.svelte.d.ts +52 -0
  523. package/dist/components/Menu/menu.filter.svelte.js +143 -0
  524. package/dist/components/Menu/menu.mcp.d.ts +1 -1
  525. package/dist/components/Menu/menu.mcp.js +227 -17
  526. package/dist/components/Menu/menu.platform.d.ts +5 -0
  527. package/dist/components/Menu/menu.platform.js +11 -0
  528. package/dist/components/Menu/menu.props.d.ts +172 -9
  529. package/dist/components/Menu/menu.theme.d.ts +147 -0
  530. package/dist/components/Menu/menu.theme.js +101 -0
  531. package/dist/components/Menu/menuTree.d.ts +35 -1
  532. package/dist/components/Menu/menuTree.js +158 -1
  533. package/dist/components/MenuBar/menuBar.mcp.d.ts +1 -1
  534. package/dist/components/MenuBar/menuBar.mcp.js +4 -2
  535. package/dist/components/MenuBar/menuBar.state.svelte.js +28 -10
  536. package/dist/components/MenuOption/MenuOption.svelte +5 -1
  537. package/dist/components/MenuOption/menuOption.mcp.d.ts +1 -1
  538. package/dist/components/MenuOption/menuOption.mcp.js +8 -0
  539. package/dist/components/MenuOption/menuOption.props.d.ts +12 -0
  540. package/dist/components/MenuOption/menuOption.theme.d.ts +18 -0
  541. package/dist/components/MenuOption/menuOption.theme.js +24 -4
  542. package/dist/components/Mermaid/mermaid.mcp.d.ts +1 -1
  543. package/dist/components/Mermaid/mermaid.mcp.js +8 -8
  544. package/dist/components/Mermaid/mermaid.props.d.ts +3 -4
  545. package/dist/components/Mermaid/mermaid.state.svelte.d.ts +20 -19
  546. package/dist/components/Mermaid/mermaid.state.svelte.js +80 -243
  547. package/dist/components/Mermaid/mermaid.theme.js +26 -1
  548. package/dist/components/MetadataList/MetadataList.svelte.d.ts +1 -1
  549. package/dist/components/Meter/Meter.svelte +110 -24
  550. package/dist/components/Meter/Meter.svelte.d.ts +12 -12
  551. package/dist/components/Meter/meter.mcp.d.ts +1 -1
  552. package/dist/components/Meter/meter.mcp.js +23 -37
  553. package/dist/components/Meter/meter.props.d.ts +36 -44
  554. package/dist/components/NavigationMenu/NavigationMenu.svelte +181 -0
  555. package/dist/components/NavigationMenu/NavigationMenu.svelte.d.ts +25 -0
  556. package/dist/components/NavigationMenu/NavigationMenuContent.svelte +141 -0
  557. package/dist/components/NavigationMenu/NavigationMenuContent.svelte.d.ts +13 -0
  558. package/dist/components/NavigationMenu/NavigationMenuTrigger.svelte +75 -0
  559. package/dist/components/NavigationMenu/NavigationMenuTrigger.svelte.d.ts +13 -0
  560. package/dist/components/NavigationMenu/index.d.ts +4 -0
  561. package/dist/components/NavigationMenu/index.js +3 -0
  562. package/dist/components/NavigationMenu/navigationMenu.attributes.d.ts +24 -0
  563. package/dist/components/NavigationMenu/navigationMenu.attributes.js +21 -0
  564. package/dist/components/NavigationMenu/navigationMenu.mcp.d.ts +1 -0
  565. package/dist/components/NavigationMenu/navigationMenu.mcp.js +138 -0
  566. package/dist/components/NavigationMenu/navigationMenu.props.d.ts +129 -0
  567. package/dist/components/NavigationMenu/navigationMenu.props.js +1 -0
  568. package/dist/components/NavigationMenu/navigationMenu.state.svelte.d.ts +163 -0
  569. package/dist/components/NavigationMenu/navigationMenu.state.svelte.js +721 -0
  570. package/dist/components/NavigationMenu/navigationMenu.theme.d.ts +326 -0
  571. package/dist/components/NavigationMenu/navigationMenu.theme.js +239 -0
  572. package/dist/components/Overlay/Overlay.svelte +19 -30
  573. package/dist/components/Overlay/index.d.ts +1 -0
  574. package/dist/components/Overlay/index.js +1 -0
  575. package/dist/components/Overlay/overlay.attributes.d.ts +16 -0
  576. package/dist/components/Overlay/overlay.attributes.js +14 -0
  577. package/dist/components/Overlay/overlay.mcp.d.ts +1 -1
  578. package/dist/components/Overlay/overlay.mcp.js +21 -3
  579. package/dist/components/Overlay/overlay.props.d.ts +8 -4
  580. package/dist/components/Popover/Popover.svelte +163 -52
  581. package/dist/components/Popover/Popover.svelte.d.ts +23 -2
  582. package/dist/components/Popover/PopoverSession.svelte +12 -0
  583. package/dist/components/Popover/PopoverSession.svelte.d.ts +7 -0
  584. package/dist/components/Popover/index.d.ts +10 -2
  585. package/dist/components/Popover/index.js +4 -1
  586. package/dist/components/Popover/popover.api.d.ts +83 -0
  587. package/dist/components/Popover/popover.api.js +1 -0
  588. package/dist/components/Popover/popover.attributes.d.ts +32 -0
  589. package/dist/components/Popover/popover.attributes.js +28 -0
  590. package/dist/components/Popover/popover.claims.d.ts +19 -0
  591. package/dist/components/Popover/popover.claims.js +45 -0
  592. package/dist/components/Popover/popover.mcp.d.ts +1 -1
  593. package/dist/components/Popover/popover.mcp.js +163 -31
  594. package/dist/components/Popover/popover.position.d.ts +226 -0
  595. package/dist/components/Popover/popover.position.js +402 -0
  596. package/dist/components/Popover/popover.props.d.ts +179 -24
  597. package/dist/components/Popover/popover.state.svelte.d.ts +169 -37
  598. package/dist/components/Popover/popover.state.svelte.js +1034 -194
  599. package/dist/components/Popover/popover.theme.d.ts +15 -0
  600. package/dist/components/Popover/popover.theme.js +27 -2
  601. package/dist/components/PopupMenu/PopupMenu.svelte +193 -22
  602. package/dist/components/PopupMenu/PopupMenu.svelte.d.ts +2 -2
  603. package/dist/components/PopupMenu/popupMenu.context.d.ts +42 -0
  604. package/dist/components/PopupMenu/popupMenu.context.js +52 -0
  605. package/dist/components/PopupMenu/popupMenu.mcp.d.ts +1 -1
  606. package/dist/components/PopupMenu/popupMenu.mcp.js +46 -6
  607. package/dist/components/PopupMenu/popupMenu.props.d.ts +29 -2
  608. package/dist/components/Progress/Progress.svelte +160 -0
  609. package/dist/components/Progress/Progress.svelte.d.ts +4 -0
  610. package/dist/components/Progress/index.d.ts +3 -0
  611. package/dist/components/Progress/index.js +2 -0
  612. package/dist/components/Progress/progress.mcp.d.ts +1 -0
  613. package/dist/components/Progress/progress.mcp.js +101 -0
  614. package/dist/components/Progress/progress.props.d.ts +79 -0
  615. package/dist/components/Progress/progress.props.js +1 -0
  616. package/dist/components/Progress/progress.theme.d.ts +129 -0
  617. package/dist/components/Progress/progress.theme.js +83 -0
  618. package/dist/components/ProgressCircle/ProgressCircle.svelte +51 -6
  619. package/dist/components/ProgressCircle/progressCircle.mcp.d.ts +1 -1
  620. package/dist/components/ProgressCircle/progressCircle.mcp.js +18 -4
  621. package/dist/components/ProgressCircle/progressCircle.props.d.ts +32 -2
  622. package/dist/components/ProgressCircle/progressCircle.theme.d.ts +15 -3
  623. package/dist/components/ProgressCircle/progressCircle.theme.js +7 -2
  624. package/dist/components/RichTextInput/RichTextInput.svelte +19 -1
  625. package/dist/components/RichTextInput/RichTextInputChrome.svelte +5 -1
  626. package/dist/components/RichTextInput/RichTextInputChrome.svelte.d.ts +2 -0
  627. package/dist/components/RichTextInput/RichTextInputViewport.svelte +3 -1
  628. package/dist/components/RichTextInput/RichTextInputViewport.svelte.d.ts +1 -0
  629. package/dist/components/RichTextInput/richTextInput.mcp.d.ts +1 -1
  630. package/dist/components/RichTextInput/richTextInput.mcp.js +1 -0
  631. package/dist/components/RichTextInput/suggestions.js +2 -0
  632. package/dist/components/ScrollArea/ScrollArea.svelte +166 -27
  633. package/dist/components/ScrollArea/index.d.ts +2 -1
  634. package/dist/components/ScrollArea/index.js +1 -0
  635. package/dist/components/ScrollArea/scrollArea.attributes.d.ts +25 -0
  636. package/dist/components/ScrollArea/scrollArea.attributes.js +21 -0
  637. package/dist/components/ScrollArea/scrollArea.mcp.d.ts +1 -1
  638. package/dist/components/ScrollArea/scrollArea.mcp.js +47 -3
  639. package/dist/components/ScrollArea/scrollArea.props.d.ts +33 -6
  640. package/dist/components/ScrollArea/scrollArea.svelte.d.ts +56 -12
  641. package/dist/components/ScrollArea/scrollArea.svelte.js +281 -71
  642. package/dist/components/ScrollArea/scrollArea.theme.js +5 -2
  643. package/dist/components/SegmentedControl/SegmentedControl.svelte +4 -3
  644. package/dist/components/SegmentedControl/segmentedControl.mcp.d.ts +1 -1
  645. package/dist/components/SegmentedControl/segmentedControl.mcp.js +3 -2
  646. package/dist/components/SelectionMenu/SelectionMenu.svelte +4 -2
  647. package/dist/components/Sidebar/SidebarAction.svelte +13 -3
  648. package/dist/components/Sidebar/SidebarAction.svelte.d.ts +2 -1
  649. package/dist/components/Sidebar/SidebarActivityBar.svelte +14 -7
  650. package/dist/components/Sidebar/SidebarFlyout.svelte +97 -0
  651. package/dist/components/Sidebar/SidebarFlyout.svelte.d.ts +32 -0
  652. package/dist/components/Sidebar/SidebarGroup.svelte +39 -15
  653. package/dist/components/Sidebar/SidebarMenuButton.svelte +6 -3
  654. package/dist/components/Sidebar/SidebarMenuItem.svelte +134 -31
  655. package/dist/components/Sidebar/SidebarMenuSubItem.svelte +30 -14
  656. package/dist/components/Sidebar/SidebarTreeNode.svelte +41 -61
  657. package/dist/components/Sidebar/index.d.ts +1 -0
  658. package/dist/components/Sidebar/index.js +1 -0
  659. package/dist/components/Sidebar/sidebar-position.d.ts +37 -2
  660. package/dist/components/Sidebar/sidebar-position.js +31 -2
  661. package/dist/components/Sidebar/sidebar.attributes.d.ts +33 -0
  662. package/dist/components/Sidebar/sidebar.attributes.js +29 -0
  663. package/dist/components/Sidebar/sidebar.mcp.d.ts +1 -1
  664. package/dist/components/Sidebar/sidebar.mcp.js +45 -10
  665. package/dist/components/Sidebar/sidebar.props.d.ts +28 -7
  666. package/dist/components/Sidebar/sidebar.theme.d.ts +51 -21
  667. package/dist/components/Sidebar/sidebar.theme.js +113 -62
  668. package/dist/components/Sidebar/sidebar.views.svelte.js +11 -18
  669. package/dist/components/Stepper/Stepper.svelte +2 -0
  670. package/dist/components/Stepper/stepper.mcp.d.ts +1 -1
  671. package/dist/components/Stepper/stepper.mcp.js +1 -0
  672. package/dist/components/Stepper/stepper.props.d.ts +5 -0
  673. package/dist/components/Stepper/stepper.state.svelte.d.ts +2 -0
  674. package/dist/components/Stepper/stepper.state.svelte.js +31 -12
  675. package/dist/components/Tabbar/Tabbar.svelte +55 -16
  676. package/dist/components/Tabbar/index.d.ts +1 -1
  677. package/dist/components/Tabbar/tabbar.mcp.d.ts +1 -1
  678. package/dist/components/Tabbar/tabbar.mcp.js +26 -9
  679. package/dist/components/Tabbar/tabbar.props.d.ts +34 -5
  680. package/dist/components/Tabbar/tabbar.selection.svelte.d.ts +79 -0
  681. package/dist/components/Tabbar/tabbar.selection.svelte.js +99 -0
  682. package/dist/components/TableOfContents/tableOfContents.state.svelte.js +9 -7
  683. package/dist/components/Tabs/Tabs.svelte +73 -16
  684. package/dist/components/Tabs/index.d.ts +2 -1
  685. package/dist/components/Tabs/tabs.direction.svelte.d.ts +25 -0
  686. package/dist/components/Tabs/tabs.direction.svelte.js +40 -0
  687. package/dist/components/Tabs/tabs.mcp.d.ts +1 -1
  688. package/dist/components/Tabs/tabs.mcp.js +22 -4
  689. package/dist/components/Tabs/tabs.props.d.ts +39 -12
  690. package/dist/components/Tabs/tabs.theme.js +3 -1
  691. package/dist/components/Theme/Theme.svelte +44 -27
  692. package/dist/components/Theme/helper.d.ts +16 -2
  693. package/dist/components/Theme/helper.js +46 -4
  694. package/dist/components/Theme/theme.mcp.d.ts +1 -1
  695. package/dist/components/Theme/theme.mcp.js +103 -0
  696. package/dist/components/Theme/theme.props.d.ts +16 -0
  697. package/dist/components/Theme/theme.state.svelte.d.ts +14 -1
  698. package/dist/components/Theme/theme.state.svelte.js +18 -1
  699. package/dist/components/Toast/Toast.svelte +184 -39
  700. package/dist/components/Toast/Toaster.svelte +14 -10
  701. package/dist/components/Toast/index.d.ts +1 -0
  702. package/dist/components/Toast/toast.mcp.d.ts +1 -1
  703. package/dist/components/Toast/toast.mcp.js +47 -6
  704. package/dist/components/Toast/toast.state.svelte.d.ts +172 -6
  705. package/dist/components/Toast/toast.state.svelte.js +513 -68
  706. package/dist/components/Toast/toast.theme.js +1 -1
  707. package/dist/components/ToggleButton/ToggleButton.svelte +23 -1
  708. package/dist/components/ToggleButton/toggleButton.mcp.d.ts +1 -1
  709. package/dist/components/ToggleButton/toggleButton.mcp.js +3 -1
  710. package/dist/components/ToggleButton/toggleButton.props.d.ts +13 -1
  711. package/dist/components/ToggleButton/toggleButton.theme.d.ts +12 -0
  712. package/dist/components/ToggleButton/toggleButton.theme.js +15 -3
  713. package/dist/components/ToggleButtonGroup/ToggleButtonGroup.svelte +29 -9
  714. package/dist/components/ToggleButtonGroup/index.d.ts +1 -1
  715. package/dist/components/ToggleButtonGroup/toggleButtonGroup.mcp.d.ts +1 -1
  716. package/dist/components/ToggleButtonGroup/toggleButtonGroup.mcp.js +5 -2
  717. package/dist/components/ToggleButtonGroup/toggleButtonGroup.props.d.ts +19 -1
  718. package/dist/components/ToggleButtonGroup/toggleButtonGroup.theme.d.ts +12 -0
  719. package/dist/components/ToggleButtonGroup/toggleButtonGroup.theme.js +21 -2
  720. package/dist/components/ToggleMenu/ToggleMenu.svelte +57 -43
  721. package/dist/components/ToggleMenu/ToggleMenuGroup.svelte +1 -0
  722. package/dist/components/ToggleMenu/ToggleMenuMenu.svelte +9 -3
  723. package/dist/components/ToggleMenu/ToggleMenuRadioGroup.svelte +7 -2
  724. package/dist/components/ToggleMenu/toggleMenu.mcp.d.ts +1 -1
  725. package/dist/components/ToggleMenu/toggleMenu.mcp.js +3 -2
  726. package/dist/components/ToggleMenu/toggleMenu.props.d.ts +4 -1
  727. package/dist/components/Tooltip/Tooltip.svelte +4 -12
  728. package/dist/components/Tooltip/TooltipHost.svelte +136 -15
  729. package/dist/components/Tooltip/index.d.ts +1 -0
  730. package/dist/components/Tooltip/index.js +1 -0
  731. package/dist/components/Tooltip/tooltip.attachment.svelte.d.ts +5 -0
  732. package/dist/components/Tooltip/tooltip.attachment.svelte.js +215 -33
  733. package/dist/components/Tooltip/tooltip.attributes.d.ts +32 -0
  734. package/dist/components/Tooltip/tooltip.attributes.js +28 -0
  735. package/dist/components/Tooltip/tooltip.mcp.d.ts +1 -1
  736. package/dist/components/Tooltip/tooltip.mcp.js +111 -10
  737. package/dist/components/Tooltip/tooltip.props.d.ts +33 -2
  738. package/dist/components/Tooltip/tooltip.surface.d.ts +24 -0
  739. package/dist/components/Tooltip/tooltip.surface.js +42 -0
  740. package/dist/components/Tree/TreeContextMenuSurface.svelte +16 -3
  741. package/dist/components/Utils/BeforeHydratation.svelte +14 -3
  742. package/dist/components/Utils/BeforeHydratation.svelte.d.ts +2 -0
  743. package/dist/components/VideoPlayer/VideoPlayer.svelte.d.ts +1 -1
  744. package/dist/components/VideoPlayer/VideoPlayerSettings.svelte +2 -0
  745. package/dist/generated/componentAliases.d.ts +3 -0
  746. package/dist/generated/componentAliases.js +3 -0
  747. package/dist/generated/componentContract.d.ts +79 -34
  748. package/dist/generated/componentContract.js +225 -6
  749. package/dist/generated/componentMcpRegistry.js +6 -0
  750. package/dist/i18n/ar.js +107 -3
  751. package/dist/i18n/context.svelte.d.ts +6 -0
  752. package/dist/i18n/context.svelte.js +12 -0
  753. package/dist/i18n/de.js +101 -3
  754. package/dist/i18n/en.d.ts +91 -2
  755. package/dist/i18n/en.js +101 -3
  756. package/dist/i18n/es.js +101 -3
  757. package/dist/i18n/fr.js +101 -3
  758. package/dist/i18n/ja.js +101 -3
  759. package/dist/i18n/pt.js +101 -3
  760. package/dist/i18n/zh.js +101 -3
  761. package/dist/tailwind/geometry.js +7 -0
  762. package/dist/tailwind/global.js +31 -0
  763. package/dist/types/index.d.ts +1 -0
  764. package/dist/types/types.mcp.d.ts +1 -1
  765. package/dist/types/types.mcp.js +23 -0
  766. package/dist/utils/cspNonce.d.ts +16 -0
  767. package/dist/utils/cspNonce.js +39 -0
  768. package/dist/utils/cva/merge.d.ts +5 -1
  769. package/dist/utils/cva/merge.js +6 -4
  770. package/dist/utils/focus.d.ts +34 -0
  771. package/dist/utils/focus.js +93 -0
  772. package/dist/utils/focusHistory.d.ts +21 -0
  773. package/dist/utils/focusHistory.js +99 -0
  774. package/dist/utils/handlers.d.ts +7 -0
  775. package/dist/utils/handlers.js +14 -0
  776. package/dist/utils/hoverIntent.d.ts +42 -0
  777. package/dist/utils/hoverIntent.js +57 -0
  778. package/dist/utils/id.d.ts +7 -0
  779. package/dist/utils/id.js +15 -0
  780. package/dist/utils/layers.svelte.d.ts +32 -4
  781. package/dist/utils/layers.svelte.js +214 -21
  782. package/dist/utils/listFilter.d.ts +44 -0
  783. package/dist/utils/listFilter.js +130 -0
  784. package/dist/utils/match.d.ts +35 -0
  785. package/dist/utils/match.js +36 -0
  786. package/dist/utils/number.d.ts +126 -0
  787. package/dist/utils/number.js +401 -0
  788. package/dist/utils/openChange.d.ts +88 -0
  789. package/dist/utils/openChange.js +71 -0
  790. package/dist/utils/openLifecycle.svelte.d.ts +41 -0
  791. package/dist/utils/openLifecycle.svelte.js +134 -0
  792. package/dist/utils/pointerDrag.d.ts +10 -0
  793. package/dist/utils/pointerDrag.js +37 -2
  794. package/dist/utils/pragmaticDragAndDrop.d.ts +2 -1
  795. package/dist/utils/pragmaticDragAndDrop.js +8 -3
  796. package/dist/utils/range.d.ts +62 -0
  797. package/dist/utils/range.js +70 -0
  798. package/dist/utils/requestNativeSubmit.d.ts +17 -0
  799. package/dist/utils/requestNativeSubmit.js +47 -0
  800. package/dist/utils/safeArea.svelte.d.ts +10 -1
  801. package/dist/utils/safeArea.svelte.js +19 -11
  802. package/dist/utils/stateAttributes.d.ts +108 -0
  803. package/dist/utils/stateAttributes.js +78 -0
  804. package/dist/utils/swipeVelocity.d.ts +32 -0
  805. package/dist/utils/swipeVelocity.js +59 -0
  806. package/dist/utils/timer.svelte.d.ts +65 -2
  807. package/dist/utils/timer.svelte.js +159 -25
  808. package/dist/utils/trigger.d.ts +41 -0
  809. package/dist/utils/trigger.js +103 -0
  810. package/dist/utils/typeahead.d.ts +9 -0
  811. package/dist/utils/typeahead.js +21 -9
  812. package/dist/utils/useDndList.svelte.d.ts +1 -1
  813. package/dist/utils/useDndList.svelte.js +6 -23
  814. package/dist/utils/useFocusScope.svelte.d.ts +29 -0
  815. package/dist/utils/useFocusScope.svelte.js +189 -27
  816. package/dist/utils/useHoverAction.svelte.d.ts +44 -4
  817. package/dist/utils/useHoverAction.svelte.js +161 -51
  818. package/dist/utils/useKeyDown.svelte.d.ts +19 -2
  819. package/dist/utils/useKeyDown.svelte.js +19 -12
  820. package/dist/utils/useListNavigation.svelte.d.ts +94 -13
  821. package/dist/utils/useListNavigation.svelte.js +261 -35
  822. package/dist/utils/useLiveAnnouncer.svelte.d.ts +77 -2
  823. package/dist/utils/useLiveAnnouncer.svelte.js +119 -2
  824. package/dist/utils/useNavigation.svelte.d.ts +36 -3
  825. package/dist/utils/useNavigation.svelte.js +699 -332
  826. package/dist/utils/usePressAndHold.svelte.d.ts +38 -0
  827. package/dist/utils/usePressAndHold.svelte.js +191 -0
  828. package/dist/utils/useScrollLock.svelte.d.ts +20 -1
  829. package/dist/utils/useScrollLock.svelte.js +54 -13
  830. package/dist/utils/useSlidingIndicator.svelte.d.ts +2 -0
  831. package/dist/utils/useSlidingIndicator.svelte.js +27 -5
  832. package/dist/utils/useTabBridge.svelte.d.ts +20 -0
  833. package/dist/utils/useTabBridge.svelte.js +109 -0
  834. package/dist/utils/values.d.ts +15 -0
  835. package/dist/utils/values.js +49 -0
  836. package/package.json +31 -2
  837. package/dist/generated/componentMcpRegistry.d.ts +0 -142
  838. package/dist/utils/useDrag.svelte.d.ts +0 -11
  839. package/dist/utils/useDrag.svelte.js +0 -55
@@ -1,4 +1,6 @@
1
1
  <script lang="ts">
2
+ import { disclosurePanel } from '../../attachments/disclosurePanel.svelte.js';
3
+ import { openStateAttributes } from '../../utils/stateAttributes.js';
2
4
  import PopupMenu from '../PopupMenu/PopupMenu.svelte';
3
5
  import { tooltip } from '../Tooltip/tooltip.attachment.svelte.js';
4
6
  import { caretRightIcon } from '../Icons/caretRight.js';
@@ -6,6 +8,7 @@
6
8
  import { minusIcon } from '../Icons/minus.js';
7
9
  import { plusIcon } from '../Icons/plus.js';
8
10
  import { useI18n } from '../../i18n/context.svelte.js';
11
+ import { composeHandlers } from '../../utils/handlers.js';
9
12
  import type { DisclosureIndicator } from '../../types/theme.js';
10
13
  import type {
11
14
  SidebarActiveVariant,
@@ -15,11 +18,16 @@
15
18
  SidebarSize,
16
19
  SidebarTooltipMode
17
20
  } from './sidebar.props.js';
18
- import { getSidebarMenuPosition } from './sidebar-position.js';
21
+ import { useDirection } from '../../utils/useDirection.svelte.js';
22
+ import {
23
+ getSidebarMenuPosition,
24
+ sidebarInwardPhysicalSide,
25
+ sidebarTooltip
26
+ } from './sidebar-position.js';
19
27
  import SidebarAction from './SidebarAction.svelte';
28
+ import SidebarFlyout from './SidebarFlyout.svelte';
20
29
  import SidebarIcon from './SidebarIcon.svelte';
21
30
  import SidebarMenuSubItem from './SidebarMenuSubItem.svelte';
22
- import { slide } from '../../transitions/transition.js';
23
31
  import { useSidebarMotion, useSidebarTheme, type SidebarThemeProps } from './sidebar.theme.js';
24
32
 
25
33
  let {
@@ -55,10 +63,8 @@
55
63
  let actionRef = $state<HTMLElement | null>(null);
56
64
  const classes = $derived(useSidebarTheme(theme));
57
65
  // Motion preset from `sidebarTheme.motion`, through the override ladder
58
- // (registry → `setSidebarTheme` → the instance `theme.motion` slot). `slide` is a
59
- // factory: it must be created during init, because it reads the theme context.
66
+ // (registry → `setSidebarTheme` → the instance `theme.motion` slot).
60
67
  const resolveMotion = useSidebarMotion();
61
- const slideTransition = slide();
62
68
  const collapseMotion = $derived(resolveMotion(undefined, { motion: theme?.motion }));
63
69
  const t = $derived(useI18n());
64
70
  const isOpen = $derived(open ?? item.defaultOpen ?? false);
@@ -72,12 +78,44 @@
72
78
  showTooltip ? (item.tooltip ?? ariaLabel ?? item.label) : undefined
73
79
  );
74
80
  const hasSubmenu = $derived(!!item.items?.length);
81
+ const showBadge = $derived(item.badge != null && !isIconCollapsed);
82
+ // An in-flow chevron or dots after the badge: the row then keeps its action's room at every
83
+ // width, since the action would otherwise cover that glyph when it shows.
84
+ const hasTrailingGlyph = $derived(
85
+ !!item.menu ||
86
+ (item.view !== undefined && !back) ||
87
+ (hasSubmenu && !item.href && item.collapsible !== false && collapseIcon !== 'none')
88
+ );
89
+ const endReserve = $derived(
90
+ !item.action ? 'none' : showBadge && !hasTrailingGlyph ? 'actionBelowMd' : 'action'
91
+ );
75
92
  // A bare glyph stays bare: the wrapper only appears when the entry asks for a role tint or a
76
93
  // tile, so an untinted row never inherits the ambient `data-color`.
77
94
  const hasIconSurface = $derived(!!item.icon && (item.iconVariant === 'tile' || !!item.iconColor));
78
95
  const showSubmenu = $derived(
79
96
  hasSubmenu && !isIconCollapsed && (item.collapsible === false || isOpen)
80
97
  );
98
+ // Collapsed to its icon, a row whose own press only reveals its submenu would do nothing: it
99
+ // opens its entries in a flyout instead. A row that navigates, opens a view or owns a menu
100
+ // keeps that press.
101
+ const hasFlyout = $derived(
102
+ isIconCollapsed &&
103
+ hasSubmenu &&
104
+ !item.menu &&
105
+ !item.href &&
106
+ item.view === undefined &&
107
+ !item.disabled
108
+ );
109
+ let itemRef = $state<HTMLLIElement | null>(null);
110
+ const direction = useDirection(() => itemRef);
111
+ // Toward the page, whichever edge the sidebar sits on and whichever way the text reads, read
112
+ // when the tooltip opens so a runtime `dir` change is followed.
113
+ const tooltipPosition = () => sidebarInwardPhysicalSide(api.side, direction());
114
+ const uid = $props.id();
115
+ const submenuId = `${uid}-submenu`;
116
+ // The submenu's `hidden` state and its height animation, reversible mid-way, come from the
117
+ // shared disclosure panel, as Collapsible's and Accordion's do.
118
+ const submenuPanel = disclosurePanel({ open: () => showSubmenu, motion: () => collapseMotion });
81
119
 
82
120
  $effect(() => {
83
121
  const activeElement = document.activeElement;
@@ -98,6 +136,14 @@
98
136
  open = !isOpen;
99
137
  }
100
138
 
139
+ // A row whose press reveals its submenu runs its own handler first in either mode, inline or
140
+ // collapsed to its flyout; `event.preventDefault()` keeps the submenu as it was.
141
+ function handleSubmenuRowClick(event: MouseEvent) {
142
+ if (item.disabled) return;
143
+ item.onclick?.(event);
144
+ if (!event.defaultPrevented) toggleSubmenu();
145
+ }
146
+
101
147
  function handleClick(event: MouseEvent) {
102
148
  if (item.disabled) {
103
149
  event.preventDefault();
@@ -122,6 +168,15 @@
122
168
  <SidebarIcon icon={item.icon} class={back ? 'rtl:-scale-x-100' : undefined} />
123
169
  {/if}
124
170
  <span class={classes.menuLabel()}>{item.label}</span>
171
+ {#if showBadge}
172
+ <span
173
+ data-slot="sidebar-menu-badge"
174
+ data-sidebar="menu-badge"
175
+ class={classes.badge({ size, action: item.action ? 'row' : 'none' })}
176
+ >
177
+ {item.badge}
178
+ </span>
179
+ {/if}
125
180
  {/snippet}
126
181
 
127
182
  {#snippet indicator()}
@@ -134,7 +189,7 @@
134
189
  icon={caretRightIcon}
135
190
  class={classes.menuTrailing({
136
191
  size,
137
- className: ['transition-transform', isOpen && 'rotate-90']
192
+ className: ['transition-transform', isOpen ? 'rotate-90' : 'rtl:-scale-x-100']
138
193
  })}
139
194
  />
140
195
  {/if}
@@ -161,9 +216,12 @@
161
216
  size,
162
217
  density,
163
218
  itemSize: item.size,
219
+ endReserve,
164
220
  className: item.class
165
221
  })}
166
- {@attach tooltipContent ? tooltip({ content: tooltipContent, position: 'right' }) : undefined}
222
+ {@attach tooltipContent
223
+ ? tooltip(sidebarTooltip(tooltipContent, tooltipPosition))
224
+ : undefined}
167
225
  onclick={handleClick}
168
226
  >
169
227
  {@render entryContent()}
@@ -188,9 +246,12 @@
188
246
  size,
189
247
  density,
190
248
  itemSize: item.size,
249
+ endReserve,
191
250
  className: item.class
192
251
  })}
193
- {@attach tooltipContent ? tooltip({ content: tooltipContent, position: 'right' }) : undefined}
252
+ {@attach tooltipContent
253
+ ? tooltip(sidebarTooltip(tooltipContent, tooltipPosition))
254
+ : undefined}
194
255
  onclick={handleClick}
195
256
  >
196
257
  {@render entryContent()}
@@ -206,8 +267,11 @@
206
267
 
207
268
  {#snippet dropdownButton()}
208
269
  <PopupMenu
209
- menu={{ items: item.menu ?? [] }}
210
- position={getSidebarMenuPosition(item.menuSide, item.menuAlign, api.isMobile)}
270
+ menu={{ items: item.menu ?? [], size, density }}
271
+ position={getSidebarMenuPosition(item.menuSide, item.menuAlign, {
272
+ isMobile: api.isMobile,
273
+ side: api.side
274
+ })}
211
275
  class={item.menuClass}
212
276
  fitTrigger
213
277
  >
@@ -225,13 +289,14 @@
225
289
  size,
226
290
  density,
227
291
  itemSize: item.size,
292
+ endReserve,
228
293
  className: ['aria-expanded:bg-neutral-muted', item.class]
229
294
  })}
230
295
  aria-expanded={popover.isOpen}
231
296
  aria-haspopup="menu"
232
297
  aria-controls={popover.isOpen ? popover.id : undefined}
233
298
  {@attach tooltipContent
234
- ? tooltip({ content: tooltipContent, position: 'right' })
299
+ ? tooltip(sidebarTooltip(tooltipContent, tooltipPosition))
235
300
  : undefined}
236
301
  {@attach popover.reference}
237
302
  onclick={() => popover.toggle()}
@@ -243,16 +308,51 @@
243
308
  </PopupMenu>
244
309
  {/snippet}
245
310
 
311
+ {#snippet flyoutButton()}
312
+ <SidebarFlyout label={item.label} links={item.items ?? []} side={api.side} {size} {density}>
313
+ {#snippet trigger(popover)}
314
+ <button
315
+ bind:this={submenuTriggerRef}
316
+ type="button"
317
+ data-slot="sidebar-menu-button"
318
+ data-sidebar="menu-button"
319
+ data-size={item.size ?? 'normal'}
320
+ data-active={item.isActive ? 'true' : undefined}
321
+ data-active-variant={activeVariant}
322
+ class={classes.menuButton({
323
+ variant: item.variant,
324
+ activeVariant,
325
+ size,
326
+ density,
327
+ itemSize: item.size,
328
+ endReserve,
329
+ className: item.class
330
+ })}
331
+ aria-expanded={popover.isOpen}
332
+ aria-controls={popover.isOpen ? popover.id : undefined}
333
+ {@attach tooltipContent
334
+ ? tooltip(sidebarTooltip(tooltipContent, tooltipPosition))
335
+ : undefined}
336
+ {@attach popover.reference}
337
+ onclick={composeHandlers(item.onclick, () => popover.toggle())}
338
+ >
339
+ {@render entryContent()}
340
+ </button>
341
+ {/snippet}
342
+ </SidebarFlyout>
343
+ {/snippet}
344
+
246
345
  {#snippet submenu()}
247
346
  <ul
248
347
  bind:this={submenuRef}
348
+ id={submenuId}
249
349
  data-slot="sidebar-menu-sub"
250
350
  data-sidebar="menu-sub"
251
- inert={showSubmenu ? undefined : true}
252
- aria-hidden={showSubmenu ? undefined : 'true'}
351
+ {...submenuPanel.attributes}
352
+ inert={submenuPanel.open ? undefined : true}
353
+ aria-hidden={submenuPanel.open ? undefined : 'true'}
253
354
  class={classes.subMenu({ density, className: item.subClass })}
254
- in:slideTransition={collapseMotion.in}
255
- out:slideTransition={collapseMotion.out}
355
+ {@attach submenuPanel.attach}
256
356
  >
257
357
  {#each item.items ?? [] as sub, index (sub.label + index)}
258
358
  <SidebarMenuSubItem
@@ -268,10 +368,17 @@
268
368
  </ul>
269
369
  {/snippet}
270
370
 
271
- <li data-slot="sidebar-menu-item" data-sidebar="menu-item" class={classes.menuItem()}>
371
+ <li
372
+ bind:this={itemRef}
373
+ data-slot="sidebar-menu-item"
374
+ data-sidebar="menu-item"
375
+ class={classes.menuItem()}
376
+ >
272
377
  <div class="group/menu-row relative">
273
378
  {#if item.menu}
274
379
  {@render dropdownButton()}
380
+ {:else if hasFlyout}
381
+ {@render flyoutButton()}
275
382
  {:else if hasSubmenu && item.collapsible === false}
276
383
  {@render leafButton()}
277
384
  {:else if hasSubmenu}
@@ -283,11 +390,13 @@
283
390
  class={classes.menuAction({
284
391
  size,
285
392
  density,
286
- className: 'bg-neutral-muted right-auto left-1 data-[open=true]:rotate-90'
393
+ className:
394
+ 'bg-neutral-muted start-1 end-auto data-open:rotate-90 rtl:not-data-open:-scale-x-100'
287
395
  })}
288
- data-open={isOpen ? 'true' : undefined}
396
+ {...openStateAttributes(showSubmenu)}
289
397
  aria-label={`${t.toggle} ${t.submenu}`}
290
398
  aria-expanded={showSubmenu}
399
+ aria-controls={submenuPanel.rendered ? submenuId : undefined}
291
400
  disabled={item.disabled || undefined}
292
401
  onclick={toggleSubmenu}
293
402
  >
@@ -309,13 +418,16 @@
309
418
  size,
310
419
  density,
311
420
  itemSize: item.size,
421
+ endReserve,
312
422
  className: item.class
313
423
  })}
314
424
  aria-expanded={showSubmenu}
425
+ aria-controls={submenuPanel.rendered ? submenuId : undefined}
426
+ {...openStateAttributes(showSubmenu)}
315
427
  {@attach tooltipContent
316
- ? tooltip({ content: tooltipContent, position: 'right' })
428
+ ? tooltip(sidebarTooltip(tooltipContent, tooltipPosition))
317
429
  : undefined}
318
- onclick={toggleSubmenu}
430
+ onclick={handleSubmenuRowClick}
319
431
  >
320
432
  {@render entryContent()}
321
433
  {@render indicator()}
@@ -325,15 +437,6 @@
325
437
  {@render leafButton()}
326
438
  {/if}
327
439
 
328
- {#if item.badge != null && !isIconCollapsed}
329
- <div
330
- data-slot="sidebar-menu-badge"
331
- data-sidebar="menu-badge"
332
- class={classes.badge({ size, density })}
333
- >
334
- {item.badge}
335
- </div>
336
- {/if}
337
440
  {#if item.action}
338
441
  <div
339
442
  bind:this={actionRef}
@@ -343,12 +446,12 @@
343
446
  aria-hidden={isIconCollapsed ? 'true' : undefined}
344
447
  class={classes.menuAction({ size, density })}
345
448
  >
346
- <SidebarAction action={item.action} {api} {size} {theme} />
449
+ <SidebarAction action={item.action} {api} {size} {density} {theme} />
347
450
  </div>
348
451
  {/if}
349
452
  </div>
350
453
 
351
- {#if showSubmenu}
454
+ {#if submenuPanel.rendered}
352
455
  {@render submenu()}
353
456
  {/if}
354
457
  </li>
@@ -7,6 +7,8 @@
7
7
  SidebarMenuSubEntry,
8
8
  SidebarSize
9
9
  } from './sidebar.props.js';
10
+ import { useDirection } from '../../utils/useDirection.svelte.js';
11
+ import { sidebarInwardPhysicalSide, sidebarTooltip } from './sidebar-position.js';
10
12
  import SidebarAction from './SidebarAction.svelte';
11
13
  import SidebarIcon from './SidebarIcon.svelte';
12
14
  import { useSidebarTheme, type SidebarThemeProps } from './sidebar.theme.js';
@@ -39,13 +41,20 @@
39
41
  // The label is always visible on a submenu row, so the tooltip is extra information: shown
40
42
  // whenever one is set, never on mobile, where hover does not exist.
41
43
  const tooltipContent = $derived(sub.tooltip && !api.isMobile ? sub.tooltip : undefined);
44
+ let itemRef = $state<HTMLLIElement | null>(null);
45
+ const direction = useDirection(() => itemRef);
46
+ // Toward the page, whichever edge the sidebar sits on and whichever way the text reads, read
47
+ // when the tooltip opens so a runtime `dir` change is followed.
48
+ const tooltipPosition = () => sidebarInwardPhysicalSide(api.side, direction());
42
49
  const buttonClass = $derived(
43
50
  classes.subButton({
44
51
  size: subSize,
45
52
  itemSize: sub.size,
46
53
  activeVariant,
47
54
  density,
48
- reserveEnd: !!sub.action || hasBadge,
55
+ // With a badge last in the row, the badge holds the end column from `md` up and the
56
+ // action takes its place while it shows; below `md` the two sit side by side.
57
+ endReserve: !sub.action ? 'none' : hasBadge ? 'actionBelowMd' : 'action',
49
58
  className: sub.class
50
59
  })
51
60
  );
@@ -76,10 +85,22 @@
76
85
  {:else}
77
86
  <SidebarIcon icon={sub.icon} />
78
87
  {/if}
79
- <span>{sub.label}</span>
88
+ {#if hasBadge}
89
+ <span data-slot="sidebar-menu-sub-label">{sub.label}</span>
90
+ <span
91
+ data-slot="sidebar-menu-sub-badge"
92
+ data-sidebar="menu-sub-badge"
93
+ class={classes.badge({ size: subSize, action: sub.action ? 'sub' : 'none' })}
94
+ >
95
+ {sub.badge}
96
+ </span>
97
+ {:else}
98
+ <span>{sub.label}</span>
99
+ {/if}
80
100
  {/snippet}
81
101
 
82
102
  <li
103
+ bind:this={itemRef}
83
104
  data-slot="sidebar-menu-sub-item"
84
105
  data-sidebar="menu-sub-item"
85
106
  class="group/menu-sub-item relative"
@@ -98,7 +119,9 @@
98
119
  aria-disabled={sub.disabled || undefined}
99
120
  tabindex={sub.disabled ? -1 : undefined}
100
121
  class={buttonClass}
101
- {@attach tooltipContent ? tooltip({ content: tooltipContent, position: 'right' }) : undefined}
122
+ {@attach tooltipContent
123
+ ? tooltip(sidebarTooltip(tooltipContent, tooltipPosition))
124
+ : undefined}
102
125
  onclick={handleClick}
103
126
  >
104
127
  {@render entryContent()}
@@ -114,22 +137,15 @@
114
137
  data-active-variant={activeVariant}
115
138
  disabled={sub.disabled || undefined}
116
139
  class={buttonClass}
117
- {@attach tooltipContent ? tooltip({ content: tooltipContent, position: 'right' }) : undefined}
140
+ {@attach tooltipContent
141
+ ? tooltip(sidebarTooltip(tooltipContent, tooltipPosition))
142
+ : undefined}
118
143
  onclick={handleClick}
119
144
  >
120
145
  {@render entryContent()}
121
146
  </button>
122
147
  {/if}
123
148
 
124
- {#if hasBadge}
125
- <div
126
- data-slot="sidebar-menu-sub-badge"
127
- data-sidebar="menu-sub-badge"
128
- class={classes.badge({ size: subSize, density })}
129
- >
130
- {sub.badge}
131
- </div>
132
- {/if}
133
149
  {#if sub.action}
134
150
  <div
135
151
  data-slot="sidebar-menu-sub-action"
@@ -138,7 +154,7 @@
138
154
  aria-hidden={iconCollapsed ? 'true' : undefined}
139
155
  class={classes.subAction({ size: subSize, density })}
140
156
  >
141
- <SidebarAction action={sub.action} {api} size={subSize} {theme} />
157
+ <SidebarAction action={sub.action} {api} size={subSize} {density} {theme} />
142
158
  </div>
143
159
  {/if}
144
160
  </li>
@@ -1,10 +1,10 @@
1
1
  <script lang="ts">
2
- import PopupMenu from '../PopupMenu/PopupMenu.svelte';
2
+ import { disclosurePanel } from '../../attachments/disclosurePanel.svelte.js';
3
+ import { openStateAttributes } from '../../utils/stateAttributes.js';
3
4
  import { tooltip } from '../Tooltip/tooltip.attachment.svelte.js';
4
5
  import { caretRightIcon } from '../Icons/caretRight.js';
5
6
  import { fileIcon } from '../Icons/file.js';
6
7
  import { folderIcon } from '../Icons/folder.js';
7
- import type { MenuItem } from '../Menu/menu.props.js';
8
8
  import type {
9
9
  SidebarActiveVariant,
10
10
  SidebarApi,
@@ -13,9 +13,11 @@
13
13
  SidebarTooltipMode,
14
14
  SidebarTreeNode
15
15
  } from './sidebar.props.js';
16
+ import { useDirection } from '../../utils/useDirection.svelte.js';
17
+ import { sidebarInwardPhysicalSide, sidebarTooltip } from './sidebar-position.js';
18
+ import SidebarFlyout from './SidebarFlyout.svelte';
16
19
  import SidebarIcon from './SidebarIcon.svelte';
17
20
  import SidebarTreeNodeComponent from './SidebarTreeNode.svelte';
18
- import { slide } from '../../transitions/transition.js';
19
21
  import { useSidebarMotion, useSidebarTheme, type SidebarThemeProps } from './sidebar.theme.js';
20
22
 
21
23
  let {
@@ -39,15 +41,12 @@
39
41
  } = $props();
40
42
 
41
43
  let open = $state<boolean | undefined>();
42
- let popupOpen = $state(false);
43
44
  let triggerRef = $state<HTMLButtonElement | null>(null);
44
45
  let childrenRef = $state<HTMLUListElement | null>(null);
45
46
  const classes = $derived(useSidebarTheme(theme));
46
47
  // Motion preset from `sidebarTheme.motion`, through the override ladder
47
- // (registry → `setSidebarTheme` → the instance `theme.motion` slot). `slide` is a
48
- // factory: it must be created during init, because it reads the theme context.
48
+ // (registry → `setSidebarTheme` → the instance `theme.motion` slot).
49
49
  const resolveMotion = useSidebarMotion();
50
- const slideTransition = slide();
51
50
  const collapseMotion = $derived(resolveMotion(undefined, { motion: theme?.motion }));
52
51
  const isOpen = $derived(open ?? node.defaultOpen ?? false);
53
52
  const hasChildren = $derived(!!node.children?.length);
@@ -67,43 +66,16 @@
67
66
  );
68
67
  const rowSlot = $derived(isSubNode ? 'sidebar-menu-sub-button' : 'sidebar-menu-button');
69
68
  const rowData = $derived(isSubNode ? 'menu-sub-button' : 'menu-button');
70
- const popupPosition = $derived(api.side === 'right' ? 'left-start' : 'right-start');
71
- const popupItems = $derived(isSubNode ? [] : toMenuItems(node.children ?? []));
72
-
73
- function toMenuItems(nodes: SidebarTreeNode[]): MenuItem[] {
74
- return nodes.map((treeNode): MenuItem => {
75
- const children = treeNode.children ?? [];
76
- const option = {
77
- title: treeNode.label,
78
- prefix: treeNode.icon ?? (children.length ? folderIcon : fileIcon),
79
- size,
80
- active: treeNode.isActive,
81
- attrs: treeNode.isActive ? { 'aria-current': 'page' } : undefined
82
- };
83
-
84
- if (children.length) {
85
- return {
86
- ...option,
87
- type: 'submenu',
88
- menu: toMenuItems(children)
89
- };
90
- }
91
-
92
- return {
93
- ...option,
94
- type: 'option',
95
- href: treeNode.href,
96
- onclick: (event) => {
97
- treeNode.onclick?.(event);
98
- popupOpen = false;
99
- }
100
- };
101
- });
102
- }
103
-
104
- $effect(() => {
105
- if (!isIconCollapsed) popupOpen = false;
106
- });
69
+ let itemRef = $state<HTMLLIElement | null>(null);
70
+ const direction = useDirection(() => itemRef);
71
+ // Toward the page, whichever edge the sidebar sits on and whichever way the text reads, read
72
+ // when the tooltip opens so a runtime `dir` change is followed.
73
+ const tooltipPosition = () => sidebarInwardPhysicalSide(api.side, direction());
74
+ const uid = $props.id();
75
+ const childrenId = `${uid}-children`;
76
+ // The branch's `hidden` state and its height animation, reversible mid-way, come from the
77
+ // shared disclosure panel, as Collapsible's and Accordion's do.
78
+ const branch = disclosurePanel({ open: () => showChildren, motion: () => collapseMotion });
107
79
 
108
80
  $effect(() => {
109
81
  if (showChildren || !childrenRef?.contains(document.activeElement)) return;
@@ -112,17 +84,19 @@
112
84
  </script>
113
85
 
114
86
  <li
87
+ bind:this={itemRef}
115
88
  data-slot={isSubNode ? 'sidebar-menu-sub-item' : 'sidebar-menu-item'}
116
89
  data-sidebar={isSubNode ? 'menu-sub-item' : 'menu-item'}
117
90
  class={isSubNode ? 'group/menu-sub-item relative' : classes.menuItem()}
118
91
  >
119
92
  {#if hasChildren}
120
93
  {#if isIconCollapsed && !isSubNode}
121
- <PopupMenu
122
- bind:open={popupOpen}
123
- menu={{ items: popupItems, submenuMode: 'popover', density }}
124
- position={popupPosition}
125
- fitTrigger={false}
94
+ <SidebarFlyout
95
+ label={node.label}
96
+ links={node.children ?? []}
97
+ side={api.side}
98
+ {size}
99
+ {density}
126
100
  >
127
101
  {#snippet trigger(popover)}
128
102
  <button
@@ -132,10 +106,9 @@
132
106
  data-sidebar={rowData}
133
107
  class={rowClass}
134
108
  aria-expanded={popover.isOpen}
135
- aria-haspopup="menu"
136
109
  aria-controls={popover.isOpen ? popover.id : undefined}
137
110
  {@attach tooltipContent
138
- ? tooltip({ content: tooltipContent, position: 'right' })
111
+ ? tooltip(sidebarTooltip(tooltipContent, tooltipPosition))
139
112
  : undefined}
140
113
  {@attach popover.reference}
141
114
  onclick={() => popover.toggle()}
@@ -144,7 +117,7 @@
144
117
  <span class={classes.menuLabel()}>{node.label}</span>
145
118
  </button>
146
119
  {/snippet}
147
- </PopupMenu>
120
+ </SidebarFlyout>
148
121
  {:else}
149
122
  <button
150
123
  bind:this={triggerRef}
@@ -153,29 +126,32 @@
153
126
  data-sidebar={rowData}
154
127
  class={rowClass}
155
128
  aria-expanded={showChildren}
129
+ aria-controls={branch.rendered ? childrenId : undefined}
130
+ {...openStateAttributes(showChildren)}
156
131
  {@attach tooltipContent
157
- ? tooltip({ content: tooltipContent, position: 'right' })
132
+ ? tooltip(sidebarTooltip(tooltipContent, tooltipPosition))
158
133
  : undefined}
159
134
  onclick={() => (open = !isOpen)}
160
135
  >
161
136
  <SidebarIcon
162
137
  icon={caretRightIcon}
163
- class="transition-transform {isOpen ? 'rotate-90' : ''}"
138
+ class="transition-transform {isOpen ? 'rotate-90' : 'rtl:-scale-x-100'}"
164
139
  />
165
140
  <SidebarIcon icon={node.icon ?? folderIcon} />
166
141
  <span class={isSubNode ? undefined : classes.menuLabel()}>{node.label}</span>
167
142
  </button>
168
143
  {/if}
169
- {#if showChildren}
144
+ {#if branch.rendered}
170
145
  <ul
171
146
  bind:this={childrenRef}
147
+ id={childrenId}
172
148
  data-slot="sidebar-menu-sub"
173
149
  data-sidebar="menu-sub"
174
- inert={showChildren ? undefined : true}
175
- aria-hidden={showChildren ? undefined : 'true'}
150
+ {...branch.attributes}
151
+ inert={branch.open ? undefined : true}
152
+ aria-hidden={branch.open ? undefined : 'true'}
176
153
  class={classes.treeSubMenu({ density })}
177
- in:slideTransition={collapseMotion.in}
178
- out:slideTransition={collapseMotion.out}
154
+ {@attach branch.attach}
179
155
  >
180
156
  {#each node.children ?? [] as child, index (child.label + index)}
181
157
  <SidebarTreeNodeComponent
@@ -201,7 +177,9 @@
201
177
  data-active-variant={activeVariant}
202
178
  aria-current={node.isActive ? 'page' : undefined}
203
179
  class={rowClass}
204
- {@attach tooltipContent ? tooltip({ content: tooltipContent, position: 'right' }) : undefined}
180
+ {@attach tooltipContent
181
+ ? tooltip(sidebarTooltip(tooltipContent, tooltipPosition))
182
+ : undefined}
205
183
  onclick={node.onclick}
206
184
  >
207
185
  <SidebarIcon icon={node.icon ?? fileIcon} />
@@ -216,7 +194,9 @@
216
194
  data-active={node.isActive ? 'true' : undefined}
217
195
  data-active-variant={activeVariant}
218
196
  class={rowClass}
219
- {@attach tooltipContent ? tooltip({ content: tooltipContent, position: 'right' }) : undefined}
197
+ {@attach tooltipContent
198
+ ? tooltip(sidebarTooltip(tooltipContent, tooltipPosition))
199
+ : undefined}
220
200
  onclick={node.onclick}
221
201
  >
222
202
  <SidebarIcon icon={node.icon ?? fileIcon} />
@@ -3,3 +3,4 @@ export { default as SidebarMenuButton } from './SidebarMenuButton.svelte';
3
3
  export type { SidebarActiveVariant, SidebarActivityBar, SidebarActivityBarItem, SidebarActivityBarSelectPayload, SidebarApi, SidebarCollapsible, SidebarDisplayState, SidebarDensity, SidebarGroup, SidebarIcon, SidebarIconVariant, SidebarFrame, SidebarMenuActionDescriptor, SidebarMenuAlign, SidebarMenuButtonItem, SidebarMenuButtonSize, SidebarMenuButtonVariant, SidebarMenuEntry, SidebarMenuSide, SidebarMenuSubEntry, SidebarProps, SidebarRail, SidebarResizable, SidebarResizableOptions, SidebarSearch, SidebarSide, SidebarSize, SidebarMode, SidebarState, SidebarTooltipMode, SidebarTreeNode, SidebarVariant, SidebarView, SidebarWidthChangePayload } from './sidebar.props.js';
4
4
  export { sidebarTheme, setSidebarTheme, useSidebarTheme, type SidebarTheme, type SidebarThemeProps } from './sidebar.theme.js';
5
5
  export { sidebarDescription } from './sidebar.mcp.js';
6
+ export { sidebarDataAttributes, sidebarCssVariables, type SidebarDataAttribute, type SidebarCssVariable } from './sidebar.attributes.js';
@@ -2,3 +2,4 @@ export { default as Sidebar } from './Sidebar.svelte';
2
2
  export { default as SidebarMenuButton } from './SidebarMenuButton.svelte';
3
3
  export { sidebarTheme, setSidebarTheme, useSidebarTheme } from './sidebar.theme.js';
4
4
  export { sidebarDescription } from './sidebar.mcp.js';
5
+ export { sidebarDataAttributes, sidebarCssVariables } from './sidebar.attributes.js';
@@ -1,3 +1,38 @@
1
+ import type { PopoverLogicalSide, PopoverPlacement } from '../Popover/popover.props.js';
1
2
  import type { Placement } from '@floating-ui/dom';
2
- import type { SidebarMenuAlign, SidebarMenuSide } from './sidebar.props.js';
3
- export declare function getSidebarMenuPosition(side: SidebarMenuSide | undefined, align: SidebarMenuAlign | undefined, isMobile: boolean): Placement;
3
+ import type { Slot } from '../Slot/slot.js';
4
+ import type { TooltipOptions } from '../Tooltip/tooltip.props.js';
5
+ import type { Direction } from '../../utils/useDirection.svelte.js';
6
+ import type { SidebarMenuAlign, SidebarMenuSide, SidebarSide } from './sidebar.props.js';
7
+ /**
8
+ * The side of a desktop sidebar's rows that faces the page, as a logical side. The sidebar's
9
+ * layout follows the reading direction (`side="left"` is the start edge: the left in
10
+ * left-to-right, the right in right-to-left), so the page is at the inline end of a `left`
11
+ * sidebar and at the inline start of a `right` one.
12
+ */
13
+ export declare const sidebarInwardSide: (side: SidebarSide | undefined) => PopoverLogicalSide;
14
+ /**
15
+ * `sidebarInwardSide` resolved to a physical side, for placements that take only physical
16
+ * sides (tooltips).
17
+ */
18
+ export declare const sidebarInwardPhysicalSide: (side: SidebarSide | undefined, direction: Direction) => "left" | "right";
19
+ /**
20
+ * Tooltip options whose `position` is resolved each time the tooltip opens rather than when the
21
+ * row renders: the reading direction comes from computed style, which a runtime `dir` change
22
+ * on the document alters without any reactive signal.
23
+ */
24
+ export declare const sidebarTooltip: (content: Slot, position: () => Placement) => TooltipOptions;
25
+ type SidebarMenuPositionContext = {
26
+ /** The mobile drawer: menus open below their row. */
27
+ isMobile: boolean;
28
+ /** The edge the sidebar sits on. Default `'left'`. */
29
+ side?: SidebarSide;
30
+ };
31
+ /**
32
+ * The Popover placement of a row's menu. An explicit `menuSide` wins, physical (`right`) or
33
+ * logical (`inline-end`, resolved against the reading direction by Popover). Without one, a
34
+ * desktop menu opens toward the page (`inline-end` of a left sidebar, `inline-start` of a right
35
+ * one) and a mobile menu below its row.
36
+ */
37
+ export declare function getSidebarMenuPosition(menuSide: SidebarMenuSide | undefined, align: SidebarMenuAlign | undefined, { isMobile, side }: SidebarMenuPositionContext): PopoverPlacement;
38
+ export {};