@diegopluna/narvi 0.0.0-stage → 0.0.1

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 (351) hide show
  1. package/README.md +82 -2
  2. package/dist/components/activity/ActivityContent.svelte +55 -0
  3. package/dist/components/activity/ActivityContent.svelte.d.ts +11 -0
  4. package/dist/components/activity/ActivityRoot.svelte +66 -0
  5. package/dist/components/activity/ActivityRoot.svelte.d.ts +17 -0
  6. package/dist/components/activity/ActivityStep.svelte +157 -0
  7. package/dist/components/activity/ActivityStep.svelte.d.ts +26 -0
  8. package/dist/components/activity/ActivityThought.svelte +60 -0
  9. package/dist/components/activity/ActivityThought.svelte.d.ts +10 -0
  10. package/dist/components/activity/ActivityTrigger.svelte +103 -0
  11. package/dist/components/activity/ActivityTrigger.svelte.d.ts +20 -0
  12. package/dist/components/activity/context.d.ts +7 -0
  13. package/dist/components/activity/context.js +11 -0
  14. package/dist/components/activity/index.d.ts +11 -0
  15. package/dist/components/activity/index.js +6 -0
  16. package/dist/components/announcer/Announcer.svelte +84 -0
  17. package/dist/components/announcer/Announcer.svelte.d.ts +13 -0
  18. package/dist/components/app-shell/AppShellHeader.svelte +54 -0
  19. package/dist/components/app-shell/AppShellHeader.svelte.d.ts +15 -0
  20. package/dist/components/app-shell/AppShellMain.svelte +49 -0
  21. package/dist/components/app-shell/AppShellMain.svelte.d.ts +11 -0
  22. package/dist/components/app-shell/AppShellPanel.svelte +107 -0
  23. package/dist/components/app-shell/AppShellPanel.svelte.d.ts +18 -0
  24. package/dist/components/app-shell/AppShellRoot.svelte +136 -0
  25. package/dist/components/app-shell/AppShellRoot.svelte.d.ts +28 -0
  26. package/dist/components/app-shell/AppShellSidebar.svelte +192 -0
  27. package/dist/components/app-shell/AppShellSidebar.svelte.d.ts +17 -0
  28. package/dist/components/app-shell/AppShellToggle.svelte +50 -0
  29. package/dist/components/app-shell/AppShellToggle.svelte.d.ts +10 -0
  30. package/dist/components/app-shell/context.d.ts +15 -0
  31. package/dist/components/app-shell/context.js +15 -0
  32. package/dist/components/app-shell/index.d.ts +15 -0
  33. package/dist/components/app-shell/index.js +8 -0
  34. package/dist/components/approval/Approval.svelte +213 -0
  35. package/dist/components/approval/Approval.svelte.d.ts +38 -0
  36. package/dist/components/avatar/AvatarFallback.svelte +73 -0
  37. package/dist/components/avatar/AvatarFallback.svelte.d.ts +11 -0
  38. package/dist/components/avatar/AvatarImage.svelte +75 -0
  39. package/dist/components/avatar/AvatarImage.svelte.d.ts +11 -0
  40. package/dist/components/avatar/AvatarRoot.svelte +108 -0
  41. package/dist/components/avatar/AvatarRoot.svelte.d.ts +19 -0
  42. package/dist/components/avatar/context.d.ts +11 -0
  43. package/dist/components/avatar/context.js +11 -0
  44. package/dist/components/avatar/index.d.ts +7 -0
  45. package/dist/components/avatar/index.js +6 -0
  46. package/dist/components/badge/Badge.svelte +78 -0
  47. package/dist/components/badge/Badge.svelte.d.ts +15 -0
  48. package/dist/components/button/Button.svelte +270 -0
  49. package/dist/components/button/Button.svelte.d.ts +22 -0
  50. package/dist/components/card/Card.svelte +65 -0
  51. package/dist/components/card/Card.svelte.d.ts +15 -0
  52. package/dist/components/change-stats/ChangeStats.svelte +52 -0
  53. package/dist/components/change-stats/ChangeStats.svelte.d.ts +14 -0
  54. package/dist/components/changes-summary/ChangesSummary.svelte +152 -0
  55. package/dist/components/changes-summary/ChangesSummary.svelte.d.ts +20 -0
  56. package/dist/components/checkbox/Checkbox.svelte +178 -0
  57. package/dist/components/checkbox/Checkbox.svelte.d.ts +19 -0
  58. package/dist/components/code/Code.svelte +33 -0
  59. package/dist/components/code/Code.svelte.d.ts +10 -0
  60. package/dist/components/command/CommandDialog.svelte +37 -0
  61. package/dist/components/command/CommandDialog.svelte.d.ts +12 -0
  62. package/dist/components/command/CommandEmpty.svelte +20 -0
  63. package/dist/components/command/CommandEmpty.svelte.d.ts +11 -0
  64. package/dist/components/command/CommandFooter.svelte +25 -0
  65. package/dist/components/command/CommandFooter.svelte.d.ts +11 -0
  66. package/dist/components/command/CommandGroup.svelte +25 -0
  67. package/dist/components/command/CommandGroup.svelte.d.ts +12 -0
  68. package/dist/components/command/CommandInput.svelte +33 -0
  69. package/dist/components/command/CommandInput.svelte.d.ts +8 -0
  70. package/dist/components/command/CommandItem.svelte +49 -0
  71. package/dist/components/command/CommandItem.svelte.d.ts +16 -0
  72. package/dist/components/command/CommandList.svelte +21 -0
  73. package/dist/components/command/CommandList.svelte.d.ts +10 -0
  74. package/dist/components/command/CommandRoot.svelte +20 -0
  75. package/dist/components/command/CommandRoot.svelte.d.ts +11 -0
  76. package/dist/components/command/index.d.ts +20 -0
  77. package/dist/components/command/index.js +12 -0
  78. package/dist/components/command/styles.d.ts +117 -0
  79. package/dist/components/command/styles.js +121 -0
  80. package/dist/components/composer/ComposerAttachButton.svelte +55 -0
  81. package/dist/components/composer/ComposerAttachButton.svelte.d.ts +14 -0
  82. package/dist/components/composer/ComposerAttachment.svelte +173 -0
  83. package/dist/components/composer/ComposerAttachment.svelte.d.ts +13 -0
  84. package/dist/components/composer/ComposerAttachments.svelte +63 -0
  85. package/dist/components/composer/ComposerAttachments.svelte.d.ts +13 -0
  86. package/dist/components/composer/ComposerModelPicker.svelte +475 -0
  87. package/dist/components/composer/ComposerModelPicker.svelte.d.ts +27 -0
  88. package/dist/components/composer/ComposerRoot.svelte +315 -0
  89. package/dist/components/composer/ComposerRoot.svelte.d.ts +42 -0
  90. package/dist/components/composer/ComposerSubmit.svelte +131 -0
  91. package/dist/components/composer/ComposerSubmit.svelte.d.ts +13 -0
  92. package/dist/components/composer/ComposerTextarea.svelte +109 -0
  93. package/dist/components/composer/ComposerTextarea.svelte.d.ts +9 -0
  94. package/dist/components/composer/ComposerToggle.svelte +106 -0
  95. package/dist/components/composer/ComposerToggle.svelte.d.ts +14 -0
  96. package/dist/components/composer/ComposerToolbar.svelte +29 -0
  97. package/dist/components/composer/ComposerToolbar.svelte.d.ts +11 -0
  98. package/dist/components/composer/context.d.ts +53 -0
  99. package/dist/components/composer/context.js +32 -0
  100. package/dist/components/composer/index.d.ts +21 -0
  101. package/dist/components/composer/index.js +13 -0
  102. package/dist/components/conversation/ConversationContent.svelte +94 -0
  103. package/dist/components/conversation/ConversationContent.svelte.d.ts +15 -0
  104. package/dist/components/conversation/ConversationEmpty.svelte +89 -0
  105. package/dist/components/conversation/ConversationEmpty.svelte.d.ts +16 -0
  106. package/dist/components/conversation/ConversationRoot.svelte +237 -0
  107. package/dist/components/conversation/ConversationRoot.svelte.d.ts +20 -0
  108. package/dist/components/conversation/ConversationScrollButton.svelte +114 -0
  109. package/dist/components/conversation/ConversationScrollButton.svelte.d.ts +14 -0
  110. package/dist/components/conversation/context.d.ts +28 -0
  111. package/dist/components/conversation/context.js +15 -0
  112. package/dist/components/conversation/index.d.ts +11 -0
  113. package/dist/components/conversation/index.js +8 -0
  114. package/dist/components/conversation/scrolling.d.ts +25 -0
  115. package/dist/components/conversation/scrolling.js +60 -0
  116. package/dist/components/dev-styles/DevStyles.svelte +21 -0
  117. package/dist/components/dev-styles/DevStyles.svelte.d.ts +3 -0
  118. package/dist/components/dialog/ConfirmDialog.svelte +157 -0
  119. package/dist/components/dialog/ConfirmDialog.svelte.d.ts +31 -0
  120. package/dist/components/dialog/DialogBody.svelte +19 -0
  121. package/dist/components/dialog/DialogBody.svelte.d.ts +10 -0
  122. package/dist/components/dialog/DialogContent.svelte +55 -0
  123. package/dist/components/dialog/DialogContent.svelte.d.ts +17 -0
  124. package/dist/components/dialog/DialogDescription.svelte +23 -0
  125. package/dist/components/dialog/DialogDescription.svelte.d.ts +10 -0
  126. package/dist/components/dialog/DialogFooter.svelte +19 -0
  127. package/dist/components/dialog/DialogFooter.svelte.d.ts +10 -0
  128. package/dist/components/dialog/DialogHeader.svelte +19 -0
  129. package/dist/components/dialog/DialogHeader.svelte.d.ts +10 -0
  130. package/dist/components/dialog/DialogTitle.svelte +20 -0
  131. package/dist/components/dialog/DialogTitle.svelte.d.ts +10 -0
  132. package/dist/components/dialog/index.d.ts +17 -0
  133. package/dist/components/dialog/index.js +12 -0
  134. package/dist/components/dialog/styles.d.ts +120 -0
  135. package/dist/components/dialog/styles.js +136 -0
  136. package/dist/components/divider/Divider.svelte +42 -0
  137. package/dist/components/divider/Divider.svelte.d.ts +11 -0
  138. package/dist/components/empty-state/EmptyState.svelte +82 -0
  139. package/dist/components/empty-state/EmptyState.svelte.d.ts +15 -0
  140. package/dist/components/field/Field.svelte +132 -0
  141. package/dist/components/field/Field.svelte.d.ts +23 -0
  142. package/dist/components/field/context.d.ts +12 -0
  143. package/dist/components/field/context.js +9 -0
  144. package/dist/components/frame/Frame.svelte +88 -0
  145. package/dist/components/frame/Frame.svelte.d.ts +19 -0
  146. package/dist/components/heading/Heading.svelte +82 -0
  147. package/dist/components/heading/Heading.svelte.d.ts +16 -0
  148. package/dist/components/input/Input.svelte +47 -0
  149. package/dist/components/input/Input.svelte.d.ts +14 -0
  150. package/dist/components/kbd/Kbd.svelte +40 -0
  151. package/dist/components/kbd/Kbd.svelte.d.ts +11 -0
  152. package/dist/components/link/Link.svelte +68 -0
  153. package/dist/components/link/Link.svelte.d.ts +16 -0
  154. package/dist/components/menu/ContextMenuContent.svelte +33 -0
  155. package/dist/components/menu/ContextMenuContent.svelte.d.ts +11 -0
  156. package/dist/components/menu/ContextMenuTrigger.svelte +44 -0
  157. package/dist/components/menu/ContextMenuTrigger.svelte.d.ts +11 -0
  158. package/dist/components/menu/MenuCheckboxItem.svelte +43 -0
  159. package/dist/components/menu/MenuCheckboxItem.svelte.d.ts +11 -0
  160. package/dist/components/menu/MenuContent.svelte +36 -0
  161. package/dist/components/menu/MenuContent.svelte.d.ts +10 -0
  162. package/dist/components/menu/MenuItem.svelte +41 -0
  163. package/dist/components/menu/MenuItem.svelte.d.ts +16 -0
  164. package/dist/components/menu/MenuLabel.svelte +24 -0
  165. package/dist/components/menu/MenuLabel.svelte.d.ts +10 -0
  166. package/dist/components/menu/MenuRadioItem.svelte +54 -0
  167. package/dist/components/menu/MenuRadioItem.svelte.d.ts +12 -0
  168. package/dist/components/menu/MenuSeparator.svelte +19 -0
  169. package/dist/components/menu/MenuSeparator.svelte.d.ts +8 -0
  170. package/dist/components/menu/MenuSubContent.svelte +34 -0
  171. package/dist/components/menu/MenuSubContent.svelte.d.ts +10 -0
  172. package/dist/components/menu/MenuSubTrigger.svelte +35 -0
  173. package/dist/components/menu/MenuSubTrigger.svelte.d.ts +11 -0
  174. package/dist/components/menu/context-menu.d.ts +11 -0
  175. package/dist/components/menu/context-menu.js +10 -0
  176. package/dist/components/menu/index.js +16 -0
  177. package/dist/components/message/MessageAction.svelte +62 -0
  178. package/dist/components/message/MessageAction.svelte.d.ts +16 -0
  179. package/dist/components/message/MessageActions.svelte +77 -0
  180. package/dist/components/message/MessageActions.svelte.d.ts +19 -0
  181. package/dist/components/message/MessageContent.svelte +68 -0
  182. package/dist/components/message/MessageContent.svelte.d.ts +12 -0
  183. package/dist/components/message/MessageCopy.svelte +106 -0
  184. package/dist/components/message/MessageCopy.svelte.d.ts +16 -0
  185. package/dist/components/message/MessageHeader.svelte +74 -0
  186. package/dist/components/message/MessageHeader.svelte.d.ts +15 -0
  187. package/dist/components/message/MessagePending.svelte +44 -0
  188. package/dist/components/message/MessagePending.svelte.d.ts +10 -0
  189. package/dist/components/message/MessageRoot.svelte +79 -0
  190. package/dist/components/message/MessageRoot.svelte.d.ts +20 -0
  191. package/dist/components/message/MessageTime.svelte +58 -0
  192. package/dist/components/message/MessageTime.svelte.d.ts +12 -0
  193. package/dist/components/message/context.d.ts +7 -0
  194. package/dist/components/message/context.js +11 -0
  195. package/dist/components/message/index.d.ts +18 -0
  196. package/dist/components/message/index.js +11 -0
  197. package/dist/components/notice/Notice.svelte +111 -0
  198. package/dist/components/notice/Notice.svelte.d.ts +26 -0
  199. package/dist/components/plan/Plan.svelte +198 -0
  200. package/dist/components/plan/Plan.svelte.d.ts +18 -0
  201. package/dist/components/popover/PopoverContent.svelte +42 -0
  202. package/dist/components/popover/PopoverContent.svelte.d.ts +10 -0
  203. package/dist/components/popover/index.d.ts +7 -0
  204. package/dist/components/popover/index.js +7 -0
  205. package/dist/components/progress/Progress.svelte +113 -0
  206. package/dist/components/progress/Progress.svelte.d.ts +11 -0
  207. package/dist/components/questionnaire/Questionnaire.svelte +315 -0
  208. package/dist/components/questionnaire/Questionnaire.svelte.d.ts +33 -0
  209. package/dist/components/queued-message/QueuedMessage.svelte +133 -0
  210. package/dist/components/queued-message/QueuedMessage.svelte.d.ts +23 -0
  211. package/dist/components/rail/RailItem.svelte +170 -0
  212. package/dist/components/rail/RailItem.svelte.d.ts +21 -0
  213. package/dist/components/rail/RailRoot.svelte +46 -0
  214. package/dist/components/rail/RailRoot.svelte.d.ts +13 -0
  215. package/dist/components/rail/RailSpacer.svelte +2 -0
  216. package/dist/components/rail/RailSpacer.svelte.d.ts +26 -0
  217. package/dist/components/rail/index.d.ts +6 -0
  218. package/dist/components/rail/index.js +4 -0
  219. package/dist/components/reasoning/ReasoningContent.svelte +56 -0
  220. package/dist/components/reasoning/ReasoningContent.svelte.d.ts +12 -0
  221. package/dist/components/reasoning/ReasoningRoot.svelte +102 -0
  222. package/dist/components/reasoning/ReasoningRoot.svelte.d.ts +25 -0
  223. package/dist/components/reasoning/ReasoningTrigger.svelte +106 -0
  224. package/dist/components/reasoning/ReasoningTrigger.svelte.d.ts +18 -0
  225. package/dist/components/reasoning/context.d.ts +8 -0
  226. package/dist/components/reasoning/context.js +11 -0
  227. package/dist/components/reasoning/index.d.ts +7 -0
  228. package/dist/components/reasoning/index.js +6 -0
  229. package/dist/components/resize-handle/ResizeHandle.svelte +177 -0
  230. package/dist/components/resize-handle/ResizeHandle.svelte.d.ts +29 -0
  231. package/dist/components/rolling-text/RollingText.svelte +51 -0
  232. package/dist/components/rolling-text/RollingText.svelte.d.ts +11 -0
  233. package/dist/components/segmented/SegmentedControl.svelte +171 -0
  234. package/dist/components/segmented/SegmentedControl.svelte.d.ts +20 -0
  235. package/dist/components/select/Select.svelte +146 -0
  236. package/dist/components/select/Select.svelte.d.ts +31 -0
  237. package/dist/components/separator/Separator.svelte +48 -0
  238. package/dist/components/separator/Separator.svelte.d.ts +11 -0
  239. package/dist/components/settings-row/SettingsRow.svelte +97 -0
  240. package/dist/components/settings-row/SettingsRow.svelte.d.ts +21 -0
  241. package/dist/components/shimmer/Shimmer.svelte +66 -0
  242. package/dist/components/shimmer/Shimmer.svelte.d.ts +12 -0
  243. package/dist/components/sidebar/SidebarContent.svelte +70 -0
  244. package/dist/components/sidebar/SidebarContent.svelte.d.ts +13 -0
  245. package/dist/components/sidebar/SidebarFooter.svelte +33 -0
  246. package/dist/components/sidebar/SidebarFooter.svelte.d.ts +10 -0
  247. package/dist/components/sidebar/SidebarGroup.svelte +123 -0
  248. package/dist/components/sidebar/SidebarGroup.svelte.d.ts +19 -0
  249. package/dist/components/sidebar/SidebarHeader.svelte +39 -0
  250. package/dist/components/sidebar/SidebarHeader.svelte.d.ts +12 -0
  251. package/dist/components/sidebar/SidebarItem.svelte +236 -0
  252. package/dist/components/sidebar/SidebarItem.svelte.d.ts +27 -0
  253. package/dist/components/sidebar/index.d.ts +11 -0
  254. package/dist/components/sidebar/index.js +6 -0
  255. package/dist/components/skeleton/Skeleton.svelte +61 -0
  256. package/dist/components/skeleton/Skeleton.svelte.d.ts +13 -0
  257. package/dist/components/spinner/Spinner.svelte +57 -0
  258. package/dist/components/spinner/Spinner.svelte.d.ts +12 -0
  259. package/dist/components/stack/Stack.svelte +99 -0
  260. package/dist/components/stack/Stack.svelte.d.ts +19 -0
  261. package/dist/components/status-indicator/StatusIndicator.svelte +97 -0
  262. package/dist/components/status-indicator/StatusIndicator.svelte.d.ts +14 -0
  263. package/dist/components/suggestions/SuggestionsItem.svelte +104 -0
  264. package/dist/components/suggestions/SuggestionsItem.svelte.d.ts +14 -0
  265. package/dist/components/suggestions/SuggestionsRoot.svelte +80 -0
  266. package/dist/components/suggestions/SuggestionsRoot.svelte.d.ts +20 -0
  267. package/dist/components/suggestions/context.d.ts +7 -0
  268. package/dist/components/suggestions/context.js +8 -0
  269. package/dist/components/suggestions/index.d.ts +5 -0
  270. package/dist/components/suggestions/index.js +5 -0
  271. package/dist/components/switch/Switch.svelte +175 -0
  272. package/dist/components/switch/Switch.svelte.d.ts +17 -0
  273. package/dist/components/tabs/Tabs.svelte +170 -0
  274. package/dist/components/tabs/Tabs.svelte.d.ts +22 -0
  275. package/dist/components/text/Text.svelte +88 -0
  276. package/dist/components/text/Text.svelte.d.ts +20 -0
  277. package/dist/components/textarea/Textarea.svelte +64 -0
  278. package/dist/components/textarea/Textarea.svelte.d.ts +13 -0
  279. package/dist/components/theme/Theme.svelte +49 -0
  280. package/dist/components/theme/Theme.svelte.d.ts +25 -0
  281. package/dist/components/toast/Toaster.svelte +223 -0
  282. package/dist/components/toast/Toaster.svelte.d.ts +9 -0
  283. package/dist/components/toast/toasts.svelte.d.ts +55 -0
  284. package/dist/components/toast/toasts.svelte.js +66 -0
  285. package/dist/components/tool/ToolContent.svelte +51 -0
  286. package/dist/components/tool/ToolContent.svelte.d.ts +11 -0
  287. package/dist/components/tool/ToolInput.svelte +21 -0
  288. package/dist/components/tool/ToolInput.svelte.d.ts +14 -0
  289. package/dist/components/tool/ToolOutput.svelte +33 -0
  290. package/dist/components/tool/ToolOutput.svelte.d.ts +16 -0
  291. package/dist/components/tool/ToolRoot.svelte +94 -0
  292. package/dist/components/tool/ToolRoot.svelte.d.ts +23 -0
  293. package/dist/components/tool/ToolSection.svelte +102 -0
  294. package/dist/components/tool/ToolSection.svelte.d.ts +16 -0
  295. package/dist/components/tool/ToolTrigger.svelte +191 -0
  296. package/dist/components/tool/ToolTrigger.svelte.d.ts +14 -0
  297. package/dist/components/tool/context.d.ts +18 -0
  298. package/dist/components/tool/context.js +11 -0
  299. package/dist/components/tool/index.d.ts +12 -0
  300. package/dist/components/tool/index.js +8 -0
  301. package/dist/components/tooltip/TooltipContent.svelte +76 -0
  302. package/dist/components/tooltip/TooltipContent.svelte.d.ts +12 -0
  303. package/dist/components/tooltip/TooltipRoot.svelte +37 -0
  304. package/dist/components/tooltip/TooltipRoot.svelte.d.ts +10 -0
  305. package/dist/components/tooltip/TooltipTrigger.svelte +25 -0
  306. package/dist/components/tooltip/TooltipTrigger.svelte.d.ts +5 -0
  307. package/dist/components/tooltip/index.d.ts +13 -0
  308. package/dist/components/tooltip/index.js +10 -0
  309. package/dist/components/tooltip/intent.d.ts +2 -0
  310. package/dist/components/tooltip/intent.js +29 -0
  311. package/dist/components/work-fold/WorkFold.svelte +100 -0
  312. package/dist/components/work-fold/WorkFold.svelte.d.ts +15 -0
  313. package/dist/index.d.ts +127 -0
  314. package/dist/index.js +93 -0
  315. package/dist/internal/Chevron.svelte +28 -0
  316. package/dist/internal/Chevron.svelte.d.ts +7 -0
  317. package/dist/internal/Code.svelte +70 -0
  318. package/dist/internal/Code.svelte.d.ts +10 -0
  319. package/dist/internal/Collapse.svelte +57 -0
  320. package/dist/internal/Collapse.svelte.d.ts +12 -0
  321. package/dist/internal/Glyph.svelte +89 -0
  322. package/dist/internal/Glyph.svelte.d.ts +37 -0
  323. package/dist/internal/Tile.svelte +86 -0
  324. package/dist/internal/Tile.svelte.d.ts +15 -0
  325. package/dist/internal/control.d.ts +58 -0
  326. package/dist/internal/control.js +74 -0
  327. package/dist/internal/disclosure.d.ts +7 -0
  328. package/dist/internal/disclosure.js +1 -0
  329. package/dist/internal/json.d.ts +13 -0
  330. package/dist/internal/json.js +51 -0
  331. package/dist/internal/kinds.d.ts +9 -0
  332. package/dist/internal/kinds.js +25 -0
  333. package/dist/internal/layer.d.ts +103 -0
  334. package/dist/internal/layer.js +129 -0
  335. package/dist/internal/loop.d.ts +35 -0
  336. package/dist/internal/loop.js +72 -0
  337. package/dist/internal/markers.stylex.d.ts +14 -0
  338. package/dist/internal/markers.stylex.js +10 -0
  339. package/dist/internal/roving.d.ts +17 -0
  340. package/dist/internal/roving.js +68 -0
  341. package/dist/internal/shared.d.ts +36 -0
  342. package/dist/internal/shared.js +44 -0
  343. package/dist/internal/sx.d.ts +14 -0
  344. package/dist/internal/sx.js +11 -0
  345. package/dist/preset.d.ts +102 -0
  346. package/dist/preset.js +334 -0
  347. package/dist/tokens.stylex.d.ts +104 -0
  348. package/dist/tokens.stylex.js +125 -0
  349. package/dist/vite.d.ts +16 -0
  350. package/dist/vite.js +58 -0
  351. package/package.json +123 -5
@@ -0,0 +1,79 @@
1
+ <script lang="ts" module>
2
+ import * as stylex from '@stylexjs/stylex';
3
+ import type { Snippet } from 'svelte';
4
+ import type { HTMLAttributes } from 'svelte/elements';
5
+ import { messageMarker } from '../../internal/markers.stylex.js';
6
+ import { attrs, type Sx } from '../../internal/sx.js';
7
+ import { colors, font } from '../../tokens.stylex.js';
8
+ import { setMessageContext, type MessageFrom } from './context.js';
9
+
10
+ export type MessageRootProps = Omit<HTMLAttributes<HTMLElement>, 'children'> & {
11
+ /** Who wrote it. The person's messages sit at the end of the line, in a bubble. */
12
+ from?: MessageFrom;
13
+ /**
14
+ * Set while the reply is still arriving. The message is marked busy, so
15
+ * assistive technology reads it once, when it is complete.
16
+ */
17
+ streaming?: boolean;
18
+ sx?: Sx;
19
+ ref?: HTMLElement | null;
20
+ /** A Message.Content, and optionally Message.Actions. */
21
+ children?: Snippet;
22
+ };
23
+
24
+ const FINE = '@media (hover: hover) and (pointer: fine)';
25
+
26
+ const styles = stylex.create({
27
+ root: {
28
+ display: 'flex',
29
+ flexDirection: 'column',
30
+ gap: '0.375rem',
31
+ minWidth: 0,
32
+ color: colors.text,
33
+ fontFamily: font.body
34
+ },
35
+ // The person's message opens a new exchange, so it stands further from the
36
+ // reply before it than a reply stands from its question. With a mouse, its
37
+ // actions sit beside the bubble, at its foot, so they take no height.
38
+ user: {
39
+ alignItems: 'flex-end',
40
+ flexDirection: { default: 'column', [FINE]: 'row-reverse' },
41
+ gap: { default: '0.375rem', [FINE]: '0.25rem' },
42
+ marginBlockStart: { default: '1.5rem', ':first-child': 0 }
43
+ },
44
+ assistant: { alignItems: 'stretch' }
45
+ });
46
+ </script>
47
+
48
+ <script lang="ts">
49
+ let {
50
+ from = 'assistant',
51
+ streaming = false,
52
+ sx,
53
+ class: className,
54
+ ref = $bindable(null),
55
+ children,
56
+ ...rest
57
+ }: MessageRootProps = $props();
58
+
59
+ setMessageContext({
60
+ get from() {
61
+ return from;
62
+ },
63
+ get streaming() {
64
+ return streaming;
65
+ }
66
+ });
67
+ </script>
68
+
69
+ <article
70
+ bind:this={ref}
71
+ aria-busy={streaming || undefined}
72
+ data-slot="message"
73
+ data-from={from}
74
+ data-streaming={streaming || undefined}
75
+ {...rest}
76
+ {...attrs([styles.root, styles[from], messageMarker, sx], className)}
77
+ >
78
+ {@render children?.()}
79
+ </article>
@@ -0,0 +1,20 @@
1
+ import type { Snippet } from 'svelte';
2
+ import type { HTMLAttributes } from 'svelte/elements';
3
+ import { type Sx } from '../../internal/sx.js';
4
+ import { type MessageFrom } from './context.js';
5
+ export type MessageRootProps = Omit<HTMLAttributes<HTMLElement>, 'children'> & {
6
+ /** Who wrote it. The person's messages sit at the end of the line, in a bubble. */
7
+ from?: MessageFrom;
8
+ /**
9
+ * Set while the reply is still arriving. The message is marked busy, so
10
+ * assistive technology reads it once, when it is complete.
11
+ */
12
+ streaming?: boolean;
13
+ sx?: Sx;
14
+ ref?: HTMLElement | null;
15
+ /** A Message.Content, and optionally Message.Actions. */
16
+ children?: Snippet;
17
+ };
18
+ declare const MessageRoot: import("svelte").Component<MessageRootProps, {}, "ref">;
19
+ type MessageRoot = ReturnType<typeof MessageRoot>;
20
+ export default MessageRoot;
@@ -0,0 +1,58 @@
1
+ <!--
2
+ When a message was sent. Revealed with the message's actions on hover or
3
+ focus, in space they already hold, so it moves nothing.
4
+ -->
5
+ <script lang="ts" module>
6
+ import * as stylex from '@stylexjs/stylex';
7
+ import { messageMarker } from '../../internal/markers.stylex.js';
8
+ import { attrs, type Sx } from '../../internal/sx.js';
9
+ import { colors, font, motion } from '../../tokens.stylex.js';
10
+
11
+ export type MessageTimeProps = {
12
+ /** When it was sent. */
13
+ date: Date;
14
+ /** How it is shown; by default the time of day, in the person's locale. */
15
+ format?: (date: Date) => string;
16
+ sx?: Sx;
17
+ class?: string;
18
+ };
19
+
20
+ const FINE = '@media (hover: hover) and (pointer: fine)';
21
+
22
+ const styles = stylex.create({
23
+ time: {
24
+ paddingInline: '0.375rem',
25
+ color: colors.textSubtle,
26
+ fontSize: font.sizeXs,
27
+ fontVariantNumeric: 'tabular-nums',
28
+ whiteSpace: 'nowrap',
29
+ opacity: {
30
+ default: 1,
31
+ [FINE]: {
32
+ default: 0,
33
+ [stylex.when.ancestor(':hover', messageMarker)]: 1,
34
+ [stylex.when.ancestor(':focus-within', messageMarker)]: 1
35
+ }
36
+ },
37
+ transitionProperty: 'opacity',
38
+ transitionDuration: motion.base,
39
+ transitionTimingFunction: 'ease'
40
+ }
41
+ });
42
+
43
+ const timeOfDay = (date: Date) =>
44
+ date.toLocaleTimeString(undefined, { hour: 'numeric', minute: '2-digit' });
45
+ </script>
46
+
47
+ <script lang="ts">
48
+ let { date, format = timeOfDay, sx, class: className }: MessageTimeProps = $props();
49
+ </script>
50
+
51
+ <time
52
+ datetime={date.toISOString()}
53
+ title={date.toLocaleString()}
54
+ data-slot="message-time"
55
+ {...attrs([styles.time, sx], className)}
56
+ >
57
+ {format(date)}
58
+ </time>
@@ -0,0 +1,12 @@
1
+ import { type Sx } from '../../internal/sx.js';
2
+ export type MessageTimeProps = {
3
+ /** When it was sent. */
4
+ date: Date;
5
+ /** How it is shown; by default the time of day, in the person's locale. */
6
+ format?: (date: Date) => string;
7
+ sx?: Sx;
8
+ class?: string;
9
+ };
10
+ declare const MessageTime: import("svelte").Component<MessageTimeProps, {}, "">;
11
+ type MessageTime = ReturnType<typeof MessageTime>;
12
+ export default MessageTime;
@@ -0,0 +1,7 @@
1
+ export type MessageFrom = 'user' | 'assistant';
2
+ export type MessageContext = {
3
+ readonly from: MessageFrom;
4
+ readonly streaming: boolean;
5
+ };
6
+ export declare function setMessageContext(context: MessageContext): void;
7
+ export declare function getMessageContext(part: string): MessageContext;
@@ -0,0 +1,11 @@
1
+ import { getContext, setContext } from 'svelte';
2
+ const KEY = Symbol('narvi.message');
3
+ export function setMessageContext(context) {
4
+ setContext(KEY, context);
5
+ }
6
+ export function getMessageContext(part) {
7
+ const context = getContext(KEY);
8
+ if (!context)
9
+ throw new Error(`<Message.${part}> must be placed inside <Message.Root>.`);
10
+ return context;
11
+ }
@@ -0,0 +1,18 @@
1
+ import Action from './MessageAction.svelte';
2
+ import Actions from './MessageActions.svelte';
3
+ import Content from './MessageContent.svelte';
4
+ import Copy from './MessageCopy.svelte';
5
+ import Header from './MessageHeader.svelte';
6
+ import Pending from './MessagePending.svelte';
7
+ import Root from './MessageRoot.svelte';
8
+ import Time from './MessageTime.svelte';
9
+ export { Root, Header, Pending, Content, Actions, Action, Copy, Time, Root as MessageRoot, Header as MessageHeader, Pending as MessagePending, Content as MessageContent, Actions as MessageActions, Action as MessageAction, Copy as MessageCopy, Time as MessageTime };
10
+ export type { MessageFrom } from './context.js';
11
+ export type { MessageActionProps } from './MessageAction.svelte';
12
+ export type { MessageActionsProps } from './MessageActions.svelte';
13
+ export type { MessageContentProps } from './MessageContent.svelte';
14
+ export type { MessageCopyProps } from './MessageCopy.svelte';
15
+ export type { MessageHeaderProps } from './MessageHeader.svelte';
16
+ export type { MessagePendingProps } from './MessagePending.svelte';
17
+ export type { MessageRootProps } from './MessageRoot.svelte';
18
+ export type { MessageTimeProps } from './MessageTime.svelte';
@@ -0,0 +1,11 @@
1
+ import Action from './MessageAction.svelte';
2
+ import Actions from './MessageActions.svelte';
3
+ import Content from './MessageContent.svelte';
4
+ import Copy from './MessageCopy.svelte';
5
+ import Header from './MessageHeader.svelte';
6
+ import Pending from './MessagePending.svelte';
7
+ import Root from './MessageRoot.svelte';
8
+ import Time from './MessageTime.svelte';
9
+ export { Root, Header, Pending, Content, Actions, Action, Copy, Time,
10
+ //
11
+ Root as MessageRoot, Header as MessageHeader, Pending as MessagePending, Content as MessageContent, Actions as MessageActions, Action as MessageAction, Copy as MessageCopy, Time as MessageTime };
@@ -0,0 +1,111 @@
1
+ <!--
2
+ A note in place: what is happening, or went wrong, and what to do about it.
3
+ The detail is always on show, never kept in a tooltip.
4
+ -->
5
+ <script lang="ts" module>
6
+ import * as stylex from '@stylexjs/stylex';
7
+ import type { Snippet } from 'svelte';
8
+ import type { HTMLAttributes } from 'svelte/elements';
9
+ import Glyph from '../../internal/Glyph.svelte';
10
+ import { attrs, type Sx } from '../../internal/sx.js';
11
+ import { colors, font, radius } from '../../tokens.stylex.js';
12
+ import Spinner from '../spinner/Spinner.svelte';
13
+
14
+ export type NoticeTone = 'neutral' | 'info' | 'success' | 'warning' | 'danger';
15
+
16
+ export type NoticeProps = Omit<HTMLAttributes<HTMLDivElement>, 'children'> & {
17
+ tone?: NoticeTone;
18
+ /** A second line, such as the cause or the next step. Always visible. */
19
+ detail?: string;
20
+ /** Shows a spinner in place of the icon, for work under way. */
21
+ busy?: boolean;
22
+ /** An icon of your own, in place of the tone's. */
23
+ icon?: Snippet;
24
+ /** Buttons at the end, such as Retry. */
25
+ actions?: Snippet;
26
+ /**
27
+ * Announces the notice as it appears: at once for danger, politely for
28
+ * the rest. Leave it off for notes that are there from the start.
29
+ */
30
+ live?: boolean;
31
+ sx?: Sx;
32
+ /** What the notice says. */
33
+ children?: Snippet;
34
+ };
35
+
36
+ const styles = stylex.create({
37
+ notice: {
38
+ display: 'grid',
39
+ gridTemplateColumns: 'auto minmax(0, 1fr) auto',
40
+ alignItems: 'start',
41
+ columnGap: '0.625rem',
42
+ paddingBlock: '0.625rem',
43
+ paddingInline: '0.75rem',
44
+ borderRadius: radius.lg,
45
+ fontSize: font.sizeMd,
46
+ lineHeight: font.leadingSnug
47
+ },
48
+ neutral: {
49
+ backgroundColor: colors.well,
50
+ boxShadow: `inset 0 0 0 1px ${colors.line}`,
51
+ color: colors.text
52
+ },
53
+ info: { backgroundColor: colors.ithilSoft, color: colors.text },
54
+ success: { backgroundColor: colors.successSoft, color: colors.successInk },
55
+ warning: { backgroundColor: colors.warningSoft, color: colors.warningInk },
56
+ danger: { backgroundColor: colors.dangerSoft, color: colors.dangerInk },
57
+ icon: { display: 'grid', placeItems: 'center', width: '1rem', height: '1lh' },
58
+ iconNeutral: { color: colors.textMuted },
59
+ iconInfo: { color: colors.ithil },
60
+ text: { display: 'flex', flexDirection: 'column', gap: '0.125rem', minWidth: 0 },
61
+ title: { fontWeight: font.weightMedium },
62
+ detail: { opacity: 0.85, fontSize: font.sizeSm, userSelect: 'text', overflowWrap: 'anywhere' },
63
+ actions: { display: 'flex', alignItems: 'center', gap: '0.25rem', marginBlock: '-0.25rem' }
64
+ });
65
+ </script>
66
+
67
+ <script lang="ts">
68
+ let {
69
+ tone = 'neutral',
70
+ detail,
71
+ busy = false,
72
+ icon,
73
+ actions,
74
+ live = false,
75
+ sx,
76
+ class: className,
77
+ children,
78
+ ...rest
79
+ }: NoticeProps = $props();
80
+ </script>
81
+
82
+ <div
83
+ role={live ? (tone === 'danger' ? 'alert' : 'status') : undefined}
84
+ data-slot="notice"
85
+ data-tone={tone}
86
+ {...rest}
87
+ {...attrs([styles.notice, styles[tone], sx], className)}
88
+ >
89
+ <span
90
+ {...stylex.attrs(
91
+ styles.icon,
92
+ tone === 'neutral' && styles.iconNeutral,
93
+ tone === 'info' && styles.iconInfo
94
+ )}
95
+ >
96
+ {#if busy}
97
+ <Spinner size={14} label={null} />
98
+ {:else if icon}
99
+ {@render icon()}
100
+ {:else if tone === 'success'}
101
+ <Glyph name="check" stroke={1.75} />
102
+ {:else}
103
+ <Glyph name="alert" />
104
+ {/if}
105
+ </span>
106
+ <span {...stylex.attrs(styles.text)}>
107
+ <span {...stylex.attrs(styles.title)}>{@render children?.()}</span>
108
+ {#if detail}<span {...stylex.attrs(styles.detail)}>{detail}</span>{/if}
109
+ </span>
110
+ {#if actions}<span {...stylex.attrs(styles.actions)}>{@render actions()}</span>{/if}
111
+ </div>
@@ -0,0 +1,26 @@
1
+ import type { Snippet } from 'svelte';
2
+ import type { HTMLAttributes } from 'svelte/elements';
3
+ import { type Sx } from '../../internal/sx.js';
4
+ export type NoticeTone = 'neutral' | 'info' | 'success' | 'warning' | 'danger';
5
+ export type NoticeProps = Omit<HTMLAttributes<HTMLDivElement>, 'children'> & {
6
+ tone?: NoticeTone;
7
+ /** A second line, such as the cause or the next step. Always visible. */
8
+ detail?: string;
9
+ /** Shows a spinner in place of the icon, for work under way. */
10
+ busy?: boolean;
11
+ /** An icon of your own, in place of the tone's. */
12
+ icon?: Snippet;
13
+ /** Buttons at the end, such as Retry. */
14
+ actions?: Snippet;
15
+ /**
16
+ * Announces the notice as it appears: at once for danger, politely for
17
+ * the rest. Leave it off for notes that are there from the start.
18
+ */
19
+ live?: boolean;
20
+ sx?: Sx;
21
+ /** What the notice says. */
22
+ children?: Snippet;
23
+ };
24
+ declare const Notice: import("svelte").Component<NoticeProps, {}, "">;
25
+ type Notice = ReturnType<typeof Notice>;
26
+ export default Notice;
@@ -0,0 +1,198 @@
1
+ <!-- What the agent means to do, ticked off as it goes. Only the latest plan is shown. -->
2
+ <script lang="ts" module>
3
+ import * as stylex from '@stylexjs/stylex';
4
+ import Glyph from '../../internal/Glyph.svelte';
5
+ import { shared } from '../../internal/shared.js';
6
+ import { attrs, type Sx } from '../../internal/sx.js';
7
+ import { colors, font, motion, radius } from '../../tokens.stylex.js';
8
+ import Spinner from '../spinner/Spinner.svelte';
9
+
10
+ export type PlanStepStatus = 'pending' | 'active' | 'done' | 'skipped';
11
+ export type PlanStep = { label: string; status: PlanStepStatus };
12
+
13
+ export type PlanProps = {
14
+ steps: PlanStep[];
15
+ title?: string;
16
+ /** How the progress is said: "2 of 4". */
17
+ progressLabel?: (done: number, total: number) => string;
18
+ skippedLabel?: string;
19
+ sx?: Sx;
20
+ class?: string;
21
+ };
22
+
23
+ const MOTION = '@media (prefers-reduced-motion: no-preference)';
24
+
25
+ const styles = stylex.create({
26
+ plan: {
27
+ display: 'flex',
28
+ flexDirection: 'column',
29
+ gap: '0.625rem',
30
+ paddingTop: '0.75rem',
31
+ paddingBottom: '0.5rem',
32
+ paddingInline: '0.5rem',
33
+ borderRadius: radius.lg,
34
+ backgroundColor: colors.surface,
35
+ boxShadow: `inset 0 0 0 1px ${colors.line}, inset 0 1px 0 ${colors.highlight}, 0 1px 2px ${colors.shade}`
36
+ },
37
+ head: {
38
+ display: 'flex',
39
+ alignItems: 'baseline',
40
+ justifyContent: 'space-between',
41
+ gap: '0.75rem',
42
+ margin: 0,
43
+ paddingInline: '0.375rem'
44
+ },
45
+ title: {
46
+ color: colors.text,
47
+ fontSize: font.sizeSm,
48
+ fontWeight: font.weightSemibold
49
+ },
50
+ // One segment per step: lit as each is done, half-lit while one is under way
51
+ track: {
52
+ display: 'flex',
53
+ gap: '0.1875rem',
54
+ paddingInline: '0.375rem'
55
+ },
56
+ segment: {
57
+ flexGrow: 1,
58
+ height: '0.1875rem',
59
+ borderRadius: radius.full,
60
+ backgroundColor: colors.line,
61
+ transitionProperty: 'background-color, box-shadow',
62
+ transitionDuration: motion.slow,
63
+ transitionTimingFunction: 'ease'
64
+ },
65
+ segmentDone: { backgroundColor: colors.ithil, boxShadow: `0 0 6px ${colors.glow}` },
66
+ segmentActive: { backgroundColor: `color-mix(in oklab, ${colors.ithil} 40%, transparent)` },
67
+ steps: {
68
+ display: 'flex',
69
+ flexDirection: 'column',
70
+ gap: '0.0625rem',
71
+ margin: 0,
72
+ padding: 0,
73
+ listStyleType: 'none'
74
+ },
75
+ step: {
76
+ display: 'flex',
77
+ alignItems: 'center',
78
+ gap: '0.625rem',
79
+ minHeight: '1.875rem',
80
+ paddingInline: '0.375rem',
81
+ borderRadius: radius.md,
82
+ color: colors.textMuted,
83
+ fontSize: font.sizeMd,
84
+ lineHeight: font.leadingSnug,
85
+ transitionProperty: 'color, background-color',
86
+ transitionDuration: motion.base,
87
+ transitionTimingFunction: 'ease'
88
+ },
89
+ // The step under way sits in a band of moonlight
90
+ active: {
91
+ backgroundColor: colors.ithilSoft,
92
+ color: colors.text,
93
+ fontWeight: font.weightMedium
94
+ },
95
+ done: { color: colors.textSubtle },
96
+ // A step's new state settles into place, so the change is noticed
97
+ icon: {
98
+ display: 'grid',
99
+ placeItems: 'center',
100
+ flexShrink: 0,
101
+ boxSizing: 'border-box',
102
+ width: '1rem',
103
+ height: '1rem',
104
+ borderRadius: radius.full,
105
+ color: colors.textSubtle,
106
+ opacity: { default: 1, '@starting-style': 0 },
107
+ scale: { default: null, [MOTION]: { default: 1, '@starting-style': 0.6 } },
108
+ transitionProperty: { default: 'opacity', [MOTION]: 'opacity, scale' },
109
+ transitionDuration: motion.slow,
110
+ transitionTimingFunction: motion.easeOut
111
+ },
112
+ iconActive: { color: colors.ithil },
113
+ // Done: a solid green seal with the tick cut out of it
114
+ iconDone: { backgroundColor: colors.success, color: colors.bgRaised },
115
+ iconSkipped: { boxShadow: `inset 0 0 0 1px ${colors.lineStrong}` },
116
+ skipped: { color: colors.textSubtle, fontSize: font.sizeSm, fontWeight: font.weightRegular },
117
+ hidden: {
118
+ position: 'absolute',
119
+ width: '1px',
120
+ height: '1px',
121
+ overflow: 'hidden',
122
+ clipPath: 'inset(50%)',
123
+ whiteSpace: 'nowrap'
124
+ }
125
+ });
126
+ </script>
127
+
128
+ <script lang="ts">
129
+ let {
130
+ steps,
131
+ title = 'Plan',
132
+ progressLabel = (done, total) => `${done} of ${total}`,
133
+ skippedLabel = 'skipped',
134
+ sx,
135
+ class: className
136
+ }: PlanProps = $props();
137
+
138
+ const uid = $props.id();
139
+ const done = $derived(steps.filter((step) => step.status === 'done').length);
140
+ </script>
141
+
142
+ <section aria-labelledby="{uid}-title" data-slot="plan" {...attrs([styles.plan, sx], className)}>
143
+ <p {...stylex.attrs(styles.head)}>
144
+ <span id="{uid}-title" {...stylex.attrs(styles.title)}>{title}</span>
145
+ <span {...stylex.attrs(shared.eyebrow)}>{progressLabel(done, steps.length)}</span>
146
+ </p>
147
+ <div aria-hidden="true" {...stylex.attrs(styles.track)}>
148
+ {#each steps as step, index (index)}
149
+ <span
150
+ {...stylex.attrs(
151
+ styles.segment,
152
+ step.status === 'done' && styles.segmentDone,
153
+ step.status === 'active' && styles.segmentActive
154
+ )}
155
+ ></span>
156
+ {/each}
157
+ </div>
158
+ <ol {...stylex.attrs(styles.steps)}>
159
+ {#each steps as step, index (index)}
160
+ <li
161
+ aria-current={step.status === 'active' ? 'step' : undefined}
162
+ {...stylex.attrs(
163
+ styles.step,
164
+ step.status === 'active' && styles.active,
165
+ step.status === 'done' && styles.done
166
+ )}
167
+ >
168
+ {#key step.status}
169
+ <span
170
+ {...stylex.attrs(
171
+ styles.icon,
172
+ step.status === 'active' && styles.iconActive,
173
+ step.status === 'done' && styles.iconDone,
174
+ step.status === 'skipped' && styles.iconSkipped
175
+ )}
176
+ >
177
+ {#if step.status === 'active'}
178
+ <Spinner size={14} label={null} />
179
+ {:else if step.status === 'done'}
180
+ <Glyph name="check" size={11} stroke={2.25} />
181
+ {:else if step.status === 'skipped'}
182
+ <Glyph name="minus" size={10} stroke={1.75} />
183
+ {:else}
184
+ <Glyph name="dashed" size={16} stroke={1.25} />
185
+ {/if}
186
+ </span>
187
+ {/key}
188
+ <span>
189
+ {step.label}{#if step.status === 'skipped'}<span {...stylex.attrs(styles.skipped)}>
190
+ · {skippedLabel}</span
191
+ >{:else if step.status === 'done'}<span {...stylex.attrs(styles.hidden)}>
192
+ (done)</span
193
+ >{/if}
194
+ </span>
195
+ </li>
196
+ {/each}
197
+ </ol>
198
+ </section>
@@ -0,0 +1,18 @@
1
+ import { type Sx } from '../../internal/sx.js';
2
+ export type PlanStepStatus = 'pending' | 'active' | 'done' | 'skipped';
3
+ export type PlanStep = {
4
+ label: string;
5
+ status: PlanStepStatus;
6
+ };
7
+ export type PlanProps = {
8
+ steps: PlanStep[];
9
+ title?: string;
10
+ /** How the progress is said: "2 of 4". */
11
+ progressLabel?: (done: number, total: number) => string;
12
+ skippedLabel?: string;
13
+ sx?: Sx;
14
+ class?: string;
15
+ };
16
+ declare const Plan: import("svelte").Component<PlanProps, {}, "">;
17
+ type Plan = ReturnType<typeof Plan>;
18
+ export default Plan;
@@ -0,0 +1,42 @@
1
+ <script lang="ts" module>
2
+ import { Popover } from 'bits-ui';
3
+ import * as stylex from '@stylexjs/stylex';
4
+ import type { Snippet } from 'svelte';
5
+ import { layer } from '../../internal/layer.js';
6
+ import { attrs, type Sx } from '../../internal/sx.js';
7
+
8
+ export type PopoverContentProps = Omit<Popover.ContentProps, 'children' | 'child'> & {
9
+ sx?: Sx;
10
+ children?: Snippet;
11
+ };
12
+
13
+ const styles = stylex.create({
14
+ // Room for content of its own, rather than a list of items
15
+ padded: { padding: '0.75rem', minWidth: 'max(16rem, var(--bits-floating-anchor-width, 0px))' }
16
+ });
17
+ </script>
18
+
19
+ <script lang="ts">
20
+ let {
21
+ sideOffset = 6,
22
+ collisionPadding = 8,
23
+ align = 'start',
24
+ sx,
25
+ class: className,
26
+ children,
27
+ ...rest
28
+ }: PopoverContentProps = $props();
29
+ </script>
30
+
31
+ <Popover.Portal>
32
+ <Popover.Content
33
+ {sideOffset}
34
+ {collisionPadding}
35
+ {align}
36
+ data-slot="popover-content"
37
+ {...rest}
38
+ {...attrs([layer.surface, styles.padded, sx], className)}
39
+ >
40
+ {@render children?.()}
41
+ </Popover.Content>
42
+ </Popover.Portal>
@@ -0,0 +1,10 @@
1
+ import { Popover } from 'bits-ui';
2
+ import type { Snippet } from 'svelte';
3
+ import { type Sx } from '../../internal/sx.js';
4
+ export type PopoverContentProps = Omit<Popover.ContentProps, 'children' | 'child'> & {
5
+ sx?: Sx;
6
+ children?: Snippet;
7
+ };
8
+ declare const PopoverContent: import("svelte").Component<PopoverContentProps, {}, "">;
9
+ type PopoverContent = ReturnType<typeof PopoverContent>;
10
+ export default PopoverContent;
@@ -0,0 +1,7 @@
1
+ import { Popover } from 'bits-ui';
2
+ import Content from './PopoverContent.svelte';
3
+ declare const Root: import("svelte").Component<import("bits-ui").PopoverRootPropsWithoutHTML, {}, "open">;
4
+ declare const Trigger: import("svelte").Component<Popover.TriggerProps, {}, "ref">;
5
+ declare const Close: import("svelte").Component<Popover.CloseProps, {}, "ref">;
6
+ export { Root, Trigger, Content, Close };
7
+ export type { PopoverContentProps } from './PopoverContent.svelte';
@@ -0,0 +1,7 @@
1
+ import { Popover } from 'bits-ui';
2
+ import Content from './PopoverContent.svelte';
3
+ // Behaviour only: bits-ui's own parts
4
+ const Root = Popover.Root;
5
+ const Trigger = Popover.Trigger;
6
+ const Close = Popover.Close;
7
+ export { Root, Trigger, Content, Close };