@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,11 @@
1
+ import type { HTMLAttributes } from 'svelte/elements';
2
+ import { type Sx } from '../../internal/sx.js';
3
+ export type SeparatorProps = Omit<HTMLAttributes<HTMLDivElement>, 'children'> & {
4
+ orientation?: 'horizontal' | 'vertical';
5
+ /** Hides the separator from assistive technology when it is purely visual. */
6
+ decorative?: boolean;
7
+ sx?: Sx;
8
+ };
9
+ declare const Separator: import("svelte").Component<SeparatorProps, {}, "">;
10
+ type Separator = ReturnType<typeof Separator>;
11
+ export default Separator;
@@ -0,0 +1,97 @@
1
+ <!--
2
+ One setting: what it is and what it does on one side, the control on the
3
+ other. Where there is no room for both, they stack.
4
+ -->
5
+ <script lang="ts" module>
6
+ import * as stylex from '@stylexjs/stylex';
7
+ import type { Snippet } from 'svelte';
8
+ import { attrs, type Sx } from '../../internal/sx.js';
9
+ import { colors, font, space } from '../../tokens.stylex.js';
10
+
11
+ export type SettingsRowProps = {
12
+ label: string;
13
+ /** What it does, or how it stands now. Always visible. */
14
+ description?: string;
15
+ /** Shown under the control, announced at once. */
16
+ error?: string;
17
+ /** Shown under the control, announced politely. */
18
+ warning?: string;
19
+ sx?: Sx;
20
+ class?: string;
21
+ /** The control. It receives the ids to link it to the label and description. */
22
+ children?: Snippet<[{ id: string; describedBy: string | undefined }]>;
23
+ };
24
+
25
+ const WIDE = '@container (min-width: 34rem)';
26
+
27
+ const styles = stylex.create({
28
+ frame: { containerType: 'inline-size' },
29
+ row: {
30
+ display: 'grid',
31
+ gridTemplateColumns: { default: 'minmax(0, 1fr)', [WIDE]: 'minmax(0, 1fr) auto' },
32
+ alignItems: { default: 'start', [WIDE]: 'center' },
33
+ gap: { default: space.x2, [WIDE]: space.x6 },
34
+ paddingBlock: space.x4,
35
+ borderBottomWidth: '1px',
36
+ borderBottomStyle: 'solid',
37
+ borderBottomColor: colors.line
38
+ },
39
+ text: { display: 'flex', flexDirection: 'column', gap: '0.125rem', minWidth: 0 },
40
+ label: { color: colors.text, fontSize: font.sizeMd, fontWeight: font.weightMedium },
41
+ description: {
42
+ margin: 0,
43
+ color: colors.textMuted,
44
+ fontSize: font.sizeSm,
45
+ lineHeight: font.leadingSnug
46
+ },
47
+ control: {
48
+ display: 'flex',
49
+ flexDirection: 'column',
50
+ alignItems: { default: 'flex-start', [WIDE]: 'flex-end' },
51
+ gap: '0.375rem'
52
+ },
53
+ note: { margin: 0, fontSize: font.sizeSm, lineHeight: font.leadingSnug },
54
+ error: { color: colors.danger },
55
+ warning: { color: colors.warningInk }
56
+ });
57
+ </script>
58
+
59
+ <script lang="ts">
60
+ let {
61
+ label,
62
+ description,
63
+ error,
64
+ warning,
65
+ sx,
66
+ class: className,
67
+ children
68
+ }: SettingsRowProps = $props();
69
+
70
+ const uid = $props.id();
71
+ const describedBy = $derived(
72
+ [description && `${uid}-description`, (error || warning) && `${uid}-note`]
73
+ .filter(Boolean)
74
+ .join(' ') || undefined
75
+ );
76
+ </script>
77
+
78
+ <div {...stylex.attrs(styles.frame)}>
79
+ <div data-slot="settings-row" {...attrs([styles.row, sx], className)}>
80
+ <div {...stylex.attrs(styles.text)}>
81
+ <label for="{uid}-control" {...stylex.attrs(styles.label)}>{label}</label>
82
+ {#if description}<p id="{uid}-description" {...stylex.attrs(styles.description)}>
83
+ {description}
84
+ </p>{/if}
85
+ </div>
86
+ <div {...stylex.attrs(styles.control)}>
87
+ {@render children?.({ id: `${uid}-control`, describedBy })}
88
+ {#if error}
89
+ <p id="{uid}-note" role="alert" {...stylex.attrs(styles.note, styles.error)}>{error}</p>
90
+ {:else if warning}
91
+ <p id="{uid}-note" role="status" {...stylex.attrs(styles.note, styles.warning)}>
92
+ {warning}
93
+ </p>
94
+ {/if}
95
+ </div>
96
+ </div>
97
+ </div>
@@ -0,0 +1,21 @@
1
+ import type { Snippet } from 'svelte';
2
+ import { type Sx } from '../../internal/sx.js';
3
+ export type SettingsRowProps = {
4
+ label: string;
5
+ /** What it does, or how it stands now. Always visible. */
6
+ description?: string;
7
+ /** Shown under the control, announced at once. */
8
+ error?: string;
9
+ /** Shown under the control, announced politely. */
10
+ warning?: string;
11
+ sx?: Sx;
12
+ class?: string;
13
+ /** The control. It receives the ids to link it to the label and description. */
14
+ children?: Snippet<[{
15
+ id: string;
16
+ describedBy: string | undefined;
17
+ }]>;
18
+ };
19
+ declare const SettingsRow: import("svelte").Component<SettingsRowProps, {}, "">;
20
+ type SettingsRow = ReturnType<typeof SettingsRow>;
21
+ export default SettingsRow;
@@ -0,0 +1,66 @@
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 { loop } from '../../internal/loop.js';
6
+ import { attrs, type Sx } from '../../internal/sx.js';
7
+ import { colors } from '../../tokens.stylex.js';
8
+
9
+ export type ShimmerProps = Omit<HTMLAttributes<HTMLSpanElement>, 'children'> & {
10
+ /** Turn it off to show the text plainly, for example once the work is done. */
11
+ active?: boolean;
12
+ sx?: Sx;
13
+ children?: Snippet;
14
+ };
15
+
16
+ const REDUCE = '@media (prefers-reduced-motion: reduce)';
17
+ const FORCED = '@media (forced-colors: active)';
18
+
19
+ const styles = stylex.create({
20
+ // Inline, so it wraps and truncates like the text around it
21
+ base: {
22
+ display: 'inline'
23
+ },
24
+ // Ithildin: the letters are only half there until moonlight passes over them
25
+ active: {
26
+ color: { default: 'transparent', [REDUCE]: colors.textMuted, [FORCED]: 'CanvasText' },
27
+ backgroundImage: {
28
+ default: `linear-gradient(90deg, ${colors.textSubtle} 0%, ${colors.textSubtle} 40%, ${colors.ithil} 50%, ${colors.textSubtle} 60%, ${colors.textSubtle} 100%)`,
29
+ [REDUCE]: 'none',
30
+ [FORCED]: 'none'
31
+ },
32
+ backgroundSize: '300% 100%',
33
+ backgroundClip: 'text',
34
+ WebkitBackgroundClip: 'text'
35
+ }
36
+ });
37
+
38
+ // The band of light crosses the line every 2.2 seconds, on Narvi's shared clock.
39
+ // With reduced motion the text breathes in place instead.
40
+ const glint = loop(
41
+ (reduced) => (reduced ? 2000 : 2200),
42
+ (element, { progress, reduced, rtl }) => {
43
+ if (reduced) {
44
+ element.style.backgroundPosition = '';
45
+ element.style.opacity = String(0.775 + 0.225 * Math.cos(progress * 2 * Math.PI));
46
+ return;
47
+ }
48
+ element.style.opacity = '';
49
+ element.style.backgroundPosition = `${rtl ? progress * 100 : 100 - progress * 100}% 0`;
50
+ }
51
+ );
52
+ </script>
53
+
54
+ <script lang="ts">
55
+ let { active = true, sx, class: className, children, ...rest }: ShimmerProps = $props();
56
+ </script>
57
+
58
+ <span
59
+ data-slot="shimmer"
60
+ data-active={active || undefined}
61
+ {...rest}
62
+ {...attrs([styles.base, active && styles.active, sx], className)}
63
+ {@attach active && glint}
64
+ >
65
+ {@render children?.()}
66
+ </span>
@@ -0,0 +1,12 @@
1
+ import type { Snippet } from 'svelte';
2
+ import type { HTMLAttributes } from 'svelte/elements';
3
+ import { type Sx } from '../../internal/sx.js';
4
+ export type ShimmerProps = Omit<HTMLAttributes<HTMLSpanElement>, 'children'> & {
5
+ /** Turn it off to show the text plainly, for example once the work is done. */
6
+ active?: boolean;
7
+ sx?: Sx;
8
+ children?: Snippet;
9
+ };
10
+ declare const Shimmer: import("svelte").Component<ShimmerProps, {}, "">;
11
+ type Shimmer = ReturnType<typeof Shimmer>;
12
+ export default Shimmer;
@@ -0,0 +1,70 @@
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 { roving } from '../../internal/roving.js';
6
+ import { attrs, type Sx } from '../../internal/sx.js';
7
+ import { colors } from '../../tokens.stylex.js';
8
+
9
+ export type SidebarContentProps = Omit<HTMLAttributes<HTMLElement>, 'children'> & {
10
+ /** Names the list for assistive technology: "Threads". */
11
+ label?: string;
12
+ sx?: Sx;
13
+ /** Sidebar.Group and Sidebar.Item. */
14
+ children?: Snippet;
15
+ };
16
+
17
+ const styles = stylex.create({
18
+ content: {
19
+ flexGrow: 1,
20
+ minHeight: 0,
21
+ overflowY: 'auto',
22
+ overscrollBehavior: 'contain',
23
+ paddingInline: '0.5rem',
24
+ paddingBottom: '0.75rem',
25
+ scrollbarWidth: 'thin',
26
+ scrollbarColor: `${colors.lineStrong} transparent`,
27
+ // The list fades at an edge with more beyond it
28
+ maskImage:
29
+ 'linear-gradient(to bottom, transparent, #000 var(--narvi-fade-start, 0px), #000 calc(100% - var(--narvi-fade-end, 0px)), transparent)'
30
+ }
31
+ });
32
+ </script>
33
+
34
+ <script lang="ts">
35
+ let { label, sx, class: className, children, ...rest }: SidebarContentProps = $props();
36
+
37
+ let fadeStart = $state(0);
38
+ let fadeEnd = $state(0);
39
+
40
+ function measure(element: HTMLElement) {
41
+ const update = () => {
42
+ const end = element.scrollHeight - element.clientHeight - element.scrollTop;
43
+ fadeStart = Math.min(element.scrollTop, 24);
44
+ fadeEnd = Math.min(end, 24);
45
+ };
46
+ update();
47
+ const observer = new ResizeObserver(update);
48
+ observer.observe(element);
49
+ if (element.firstElementChild) observer.observe(element.firstElementChild);
50
+ element.addEventListener('scroll', update, { passive: true });
51
+ return () => {
52
+ observer.disconnect();
53
+ element.removeEventListener('scroll', update);
54
+ };
55
+ }
56
+ </script>
57
+
58
+ <!-- One tab stop for every row in every group; the arrow keys move between them -->
59
+ <nav
60
+ aria-label={label}
61
+ data-slot="sidebar-content"
62
+ style:--narvi-fade-start="{fadeStart}px"
63
+ style:--narvi-fade-end="{fadeEnd}px"
64
+ {...rest}
65
+ {...attrs([styles.content, sx], className)}
66
+ {@attach measure}
67
+ {@attach roving({ selector: '[data-sidebar-row]' })}
68
+ >
69
+ <div>{@render children?.()}</div>
70
+ </nav>
@@ -0,0 +1,13 @@
1
+ import type { Snippet } from 'svelte';
2
+ import type { HTMLAttributes } from 'svelte/elements';
3
+ import { type Sx } from '../../internal/sx.js';
4
+ export type SidebarContentProps = Omit<HTMLAttributes<HTMLElement>, 'children'> & {
5
+ /** Names the list for assistive technology: "Threads". */
6
+ label?: string;
7
+ sx?: Sx;
8
+ /** Sidebar.Group and Sidebar.Item. */
9
+ children?: Snippet;
10
+ };
11
+ declare const SidebarContent: import("svelte").Component<SidebarContentProps, {}, "">;
12
+ type SidebarContent = ReturnType<typeof SidebarContent>;
13
+ export default SidebarContent;
@@ -0,0 +1,33 @@
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 { attrs, type Sx } from '../../internal/sx.js';
6
+ import { colors } from '../../tokens.stylex.js';
7
+
8
+ export type SidebarFooterProps = Omit<HTMLAttributes<HTMLDivElement>, 'children'> & {
9
+ sx?: Sx;
10
+ children?: Snippet;
11
+ };
12
+
13
+ const styles = stylex.create({
14
+ footer: {
15
+ display: 'flex',
16
+ alignItems: 'center',
17
+ gap: '0.625rem',
18
+ flexShrink: 0,
19
+ padding: '0.75rem',
20
+ borderTopWidth: '1px',
21
+ borderTopStyle: 'solid',
22
+ borderTopColor: colors.line
23
+ }
24
+ });
25
+ </script>
26
+
27
+ <script lang="ts">
28
+ let { sx, class: className, children, ...rest }: SidebarFooterProps = $props();
29
+ </script>
30
+
31
+ <div data-slot="sidebar-footer" {...rest} {...attrs([styles.footer, sx], className)}>
32
+ {@render children?.()}
33
+ </div>
@@ -0,0 +1,10 @@
1
+ import type { Snippet } from 'svelte';
2
+ import type { HTMLAttributes } from 'svelte/elements';
3
+ import { type Sx } from '../../internal/sx.js';
4
+ export type SidebarFooterProps = Omit<HTMLAttributes<HTMLDivElement>, 'children'> & {
5
+ sx?: Sx;
6
+ children?: Snippet;
7
+ };
8
+ declare const SidebarFooter: import("svelte").Component<SidebarFooterProps, {}, "">;
9
+ type SidebarFooter = ReturnType<typeof SidebarFooter>;
10
+ export default SidebarFooter;
@@ -0,0 +1,123 @@
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 Chevron from '../../internal/Chevron.svelte';
6
+ import Collapse from '../../internal/Collapse.svelte';
7
+ import { attrs, type Sx } from '../../internal/sx.js';
8
+ import { colors, font, motion, radius } from '../../tokens.stylex.js';
9
+
10
+ export type SidebarGroupProps = Omit<HTMLAttributes<HTMLElement>, 'children'> & {
11
+ /** The group's name: a project, or "Today". */
12
+ label: string;
13
+ /** Lets the person fold the group away. */
14
+ collapsible?: boolean;
15
+ /** Whether a collapsible group is open. Bindable. */
16
+ open?: boolean;
17
+ /** Controls at the end of the label, such as a button to add an item. */
18
+ actions?: Snippet;
19
+ sx?: Sx;
20
+ /** Sidebar.Item rows. */
21
+ children?: Snippet;
22
+ };
23
+
24
+ const HOVER = '@media (hover: hover) and (pointer: fine)';
25
+
26
+ const styles = stylex.create({
27
+ group: { display: 'flex', flexDirection: 'column', paddingTop: '0.75rem' },
28
+ head: {
29
+ display: 'flex',
30
+ alignItems: 'center',
31
+ gap: '0.25rem',
32
+ minHeight: '1.75rem',
33
+ paddingInlineStart: '0.5rem',
34
+ paddingInlineEnd: '0.25rem'
35
+ },
36
+ label: {
37
+ display: 'inline-flex',
38
+ alignItems: 'center',
39
+ gap: '0.25rem',
40
+ flexGrow: 1,
41
+ minWidth: 0,
42
+ margin: 0,
43
+ padding: 0,
44
+ borderWidth: 0,
45
+ borderRadius: radius.xs,
46
+ backgroundColor: 'transparent',
47
+ color: { default: colors.textSubtle, ':hover': { default: null, [HOVER]: colors.textMuted } },
48
+ fontFamily: font.mono,
49
+ fontSize: '0.6875rem',
50
+ letterSpacing: '0.04em',
51
+ textTransform: 'uppercase',
52
+ textAlign: 'start',
53
+ whiteSpace: 'nowrap',
54
+ overflow: 'hidden',
55
+ textOverflow: 'ellipsis',
56
+ outlineStyle: 'solid',
57
+ outlineWidth: { default: 0, ':focus-visible': '2px' },
58
+ outlineColor: colors.focusRing,
59
+ outlineOffset: '2px',
60
+ transitionProperty: 'color',
61
+ transitionDuration: motion.fast,
62
+ transitionTimingFunction: 'ease'
63
+ },
64
+ button: { cursor: 'pointer' },
65
+ list: {
66
+ display: 'flex',
67
+ flexDirection: 'column',
68
+ gap: '1px',
69
+ margin: 0,
70
+ padding: 0,
71
+ paddingTop: '0.125rem',
72
+ listStyleType: 'none'
73
+ }
74
+ });
75
+ </script>
76
+
77
+ <script lang="ts">
78
+ let {
79
+ label,
80
+ collapsible = false,
81
+ open = $bindable(true),
82
+ actions,
83
+ sx,
84
+ class: className,
85
+ children,
86
+ ...rest
87
+ }: SidebarGroupProps = $props();
88
+
89
+ const uid = $props.id();
90
+ </script>
91
+
92
+ <section
93
+ aria-labelledby="{uid}-label"
94
+ data-slot="sidebar-group"
95
+ {...rest}
96
+ {...attrs([styles.group, sx], className)}
97
+ >
98
+ <div {...stylex.attrs(styles.head)}>
99
+ {#if collapsible}
100
+ <button
101
+ type="button"
102
+ id="{uid}-label"
103
+ aria-expanded={open}
104
+ aria-controls="{uid}-list"
105
+ {...stylex.attrs(styles.label, styles.button)}
106
+ onclick={() => (open = !open)}
107
+ >
108
+ <span style="overflow: hidden; text-overflow: ellipsis">{label}</span>
109
+ <Chevron {open} size={12} />
110
+ </button>
111
+ {:else}
112
+ <h3 id="{uid}-label" {...stylex.attrs(styles.label)}>{label}</h3>
113
+ {/if}
114
+ {@render actions?.()}
115
+ </div>
116
+ {#if collapsible}
117
+ <Collapse {open} id="{uid}-list">
118
+ <ul {...stylex.attrs(styles.list)}>{@render children?.()}</ul>
119
+ </Collapse>
120
+ {:else}
121
+ <ul {...stylex.attrs(styles.list)}>{@render children?.()}</ul>
122
+ {/if}
123
+ </section>
@@ -0,0 +1,19 @@
1
+ import type { Snippet } from 'svelte';
2
+ import type { HTMLAttributes } from 'svelte/elements';
3
+ import { type Sx } from '../../internal/sx.js';
4
+ export type SidebarGroupProps = Omit<HTMLAttributes<HTMLElement>, 'children'> & {
5
+ /** The group's name: a project, or "Today". */
6
+ label: string;
7
+ /** Lets the person fold the group away. */
8
+ collapsible?: boolean;
9
+ /** Whether a collapsible group is open. Bindable. */
10
+ open?: boolean;
11
+ /** Controls at the end of the label, such as a button to add an item. */
12
+ actions?: Snippet;
13
+ sx?: Sx;
14
+ /** Sidebar.Item rows. */
15
+ children?: Snippet;
16
+ };
17
+ declare const SidebarGroup: import("svelte").Component<SidebarGroupProps, {}, "open">;
18
+ type SidebarGroup = ReturnType<typeof SidebarGroup>;
19
+ export default SidebarGroup;
@@ -0,0 +1,39 @@
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 { shared } from '../../internal/shared.js';
6
+ import { attrs, type Sx } from '../../internal/sx.js';
7
+
8
+ export type SidebarHeaderProps = Omit<HTMLAttributes<HTMLDivElement>, 'children'> & {
9
+ /** Whether it drags the window, in Electron. Narvi's controls opt out on their own. */
10
+ drag?: boolean;
11
+ sx?: Sx;
12
+ children?: Snippet;
13
+ };
14
+
15
+ const styles = stylex.create({
16
+ header: {
17
+ display: 'flex',
18
+ alignItems: 'center',
19
+ gap: '0.5rem',
20
+ height: '3.25rem',
21
+ paddingInlineEnd: '0.5rem',
22
+ // Clear of the window's traffic lights
23
+ paddingInlineStart: 'calc(0.75rem + var(--narvi-window-inset, 0px))',
24
+ whiteSpace: 'nowrap'
25
+ }
26
+ });
27
+ </script>
28
+
29
+ <script lang="ts">
30
+ let { drag = true, sx, class: className, children, ...rest }: SidebarHeaderProps = $props();
31
+ </script>
32
+
33
+ <div
34
+ data-slot="sidebar-header"
35
+ {...rest}
36
+ {...attrs([styles.header, drag && shared.dragRegion, sx], className)}
37
+ >
38
+ {@render children?.()}
39
+ </div>
@@ -0,0 +1,12 @@
1
+ import type { Snippet } from 'svelte';
2
+ import type { HTMLAttributes } from 'svelte/elements';
3
+ import { type Sx } from '../../internal/sx.js';
4
+ export type SidebarHeaderProps = Omit<HTMLAttributes<HTMLDivElement>, 'children'> & {
5
+ /** Whether it drags the window, in Electron. Narvi's controls opt out on their own. */
6
+ drag?: boolean;
7
+ sx?: Sx;
8
+ children?: Snippet;
9
+ };
10
+ declare const SidebarHeader: import("svelte").Component<SidebarHeaderProps, {}, "">;
11
+ type SidebarHeader = ReturnType<typeof SidebarHeader>;
12
+ export default SidebarHeader;