@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,57 @@
1
+ <!--
2
+ A region that folds open and shut. Its height eases between nothing and its
3
+ content's height by moving a grid row between 0fr and 1fr, which needs no
4
+ measuring. While shut it is inert: out of the tab order and the accessibility tree.
5
+ -->
6
+ <script lang="ts" module>
7
+ import * as stylex from '@stylexjs/stylex';
8
+ import type { Snippet } from 'svelte';
9
+ import type { HTMLAttributes } from 'svelte/elements';
10
+ import { attrs, type Sx } from './sx.js';
11
+ import { motion } from '../tokens.stylex.js';
12
+
13
+ const MOTION = '@media (prefers-reduced-motion: no-preference)';
14
+
15
+ const styles = stylex.create({
16
+ region: {
17
+ display: 'grid',
18
+ gridTemplateRows: '0fr',
19
+ opacity: 0,
20
+ transitionProperty: { default: 'opacity', [MOTION]: 'grid-template-rows, opacity' },
21
+ transitionDuration: motion.slow,
22
+ transitionTimingFunction: motion.easeOut
23
+ },
24
+ open: {
25
+ gridTemplateRows: '1fr',
26
+ opacity: 1
27
+ },
28
+ inner: {
29
+ minHeight: 0,
30
+ overflow: 'hidden'
31
+ }
32
+ });
33
+ </script>
34
+
35
+ <script lang="ts">
36
+ let {
37
+ open,
38
+ sx,
39
+ innerSx,
40
+ class: className,
41
+ children,
42
+ ...rest
43
+ }: Omit<HTMLAttributes<HTMLDivElement>, 'children'> & {
44
+ open: boolean;
45
+ sx?: Sx;
46
+ innerSx?: Sx;
47
+ children?: Snippet;
48
+ } = $props();
49
+ </script>
50
+
51
+ <div inert={!open} {...rest} {...attrs([styles.region, open && styles.open, sx], className)}>
52
+ <div {...stylex.attrs(styles.inner)}>
53
+ <div {...stylex.attrs(innerSx)}>
54
+ {@render children?.()}
55
+ </div>
56
+ </div>
57
+ </div>
@@ -0,0 +1,12 @@
1
+ import type { Snippet } from 'svelte';
2
+ import type { HTMLAttributes } from 'svelte/elements';
3
+ import { type Sx } from './sx.js';
4
+ type $$ComponentProps = Omit<HTMLAttributes<HTMLDivElement>, 'children'> & {
5
+ open: boolean;
6
+ sx?: Sx;
7
+ innerSx?: Sx;
8
+ children?: Snippet;
9
+ };
10
+ declare const Collapse: import("svelte").Component<$$ComponentProps, {}, "">;
11
+ type Collapse = ReturnType<typeof Collapse>;
12
+ export default Collapse;
@@ -0,0 +1,89 @@
1
+ <!--
2
+ The few icons Narvi's own parts draw. 16px grid, round caps and joins; the
3
+ stroke follows the text beside it (1.5px with regular text, 1.75px inside buttons).
4
+ -->
5
+ <script lang="ts" module>
6
+ const paths = {
7
+ arrowUp: ['M8 13V3.25', 'M3.75 7.5 8 3.25l4.25 4.25'],
8
+ arrowDown: ['M8 3v9.75', 'M3.75 8.5 8 12.75l4.25-4.25'],
9
+ chevron: ['M4.75 6.25 8 9.5l3.25-3.25'],
10
+ copy: [
11
+ 'M6.25 5.75h5.5c.83 0 1.5.67 1.5 1.5v5.5c0 .83-.67 1.5-1.5 1.5h-5.5c-.83 0-1.5-.67-1.5-1.5v-5.5c0-.83.67-1.5 1.5-1.5Z',
12
+ 'M10.25 5.75V4.25c0-.83-.67-1.5-1.5-1.5h-4.5c-.83 0-1.5.67-1.5 1.5v4.5c0 .83.67 1.5 1.5 1.5h.5'
13
+ ],
14
+ check: ['M3.25 8.5 6.5 11.75 12.75 4.75'],
15
+ alert: ['M8 5v3.5', 'M8 11h.01', 'M14 8A6 6 0 1 1 2 8a6 6 0 0 1 12 0Z'],
16
+ dashed: ['M13 8A5 5 0 1 1 3 8a5 5 0 0 1 10 0Z'],
17
+ paperclip: [
18
+ 'm13 7.5-5.1 5.1a3.25 3.25 0 0 1-4.6-4.6l5.3-5.3a2.17 2.17 0 0 1 3.06 3.06L6.4 11.02a1.08 1.08 0 0 1-1.53-1.53l4.6-4.6'
19
+ ],
20
+ close: ['M4.5 4.5l7 7', 'M11.5 4.5l-7 7'],
21
+ terminal: ['M3.5 4.5l3 3.25-3 3.25', 'M8 11.5h4.5'],
22
+ pencil: ['M10.5 3.5 12.5 5.5', 'M3 13l.5-2.5 7.75-7.75a1.4 1.4 0 0 1 2 2L5.5 12.5Z'],
23
+ eye: [
24
+ 'M1.75 8S4 3.75 8 3.75 14.25 8 14.25 8 12 12.25 8 12.25 1.75 8 1.75 8Z',
25
+ 'M10 8a2 2 0 1 1-4 0 2 2 0 0 1 4 0Z'
26
+ ],
27
+ globe: [
28
+ 'M14 8A6 6 0 1 1 2 8a6 6 0 0 1 12 0Z',
29
+ 'M2 8h12',
30
+ 'M8 2c1.7 1.7 2.5 3.7 2.5 6S9.7 12.3 8 14C6.3 12.3 5.5 10.3 5.5 8S6.3 3.7 8 2Z'
31
+ ],
32
+ plug: ['M6 2.5v3', 'M10 2.5v3', 'M4.5 5.5h7v2.5a3.5 3.5 0 0 1-7 0Z', 'M8 11.5v2'],
33
+ sparkle: ['M8 2.5 9.4 6.6 13.5 8 9.4 9.4 8 13.5 6.6 9.4 2.5 8 6.6 6.6Z'],
34
+ undo: ['M5.5 4 2.5 7l3 3', 'M2.5 7h6.75a4 4 0 0 1 0 8H8'],
35
+ send: ['M8 13V3.25', 'M3.75 7.5 8 3.25l4.25 4.25'],
36
+ steer: ['M3.5 3v5.5a2 2 0 0 0 2 2h7', 'M10 8l2.5 2.5L10 13'],
37
+ search: ['M11.5 7a4.5 4.5 0 1 1-9 0 4.5 4.5 0 0 1 9 0Z', 'm10.5 10.5 3 3'],
38
+ file: ['M4.25 2.25h4.5l3 3v8.5h-7.5Z', 'M8.75 2.25v3h3'],
39
+ selector: ['M5.25 6 8 3.25 10.75 6', 'M5.25 10 8 12.75 10.75 10'],
40
+ // A thought: a bulb with its filament
41
+ bulb: [
42
+ 'M6.25 13.75h3.5',
43
+ 'M8 2.25a4 4 0 0 0-2.4 7.2c.42.32.65.7.65 1.15v.65h3.5v-.65c0-.45.23-.83.65-1.15A4 4 0 0 0 8 2.25Z'
44
+ ],
45
+ // A stretch of work: steps stacked on one another
46
+ layers: [
47
+ 'M8 2.75 13.25 5.5 8 8.25 2.75 5.5Z',
48
+ 'M2.75 8.25 8 11l5.25-2.75',
49
+ 'M2.75 11 8 13.75 13.25 11'
50
+ ],
51
+ // The arch of the doors: Narvi's own mark
52
+ arch: ['M4 13.5V7.25a4 4 0 0 1 8 0v6.25', 'M8 3.25v10.25', 'M2.5 13.5h11'],
53
+ minus: ['M5 8h6']
54
+ } as const;
55
+
56
+ export type GlyphName = keyof typeof paths;
57
+ </script>
58
+
59
+ <script lang="ts">
60
+ import type { SVGAttributes } from 'svelte/elements';
61
+
62
+ let {
63
+ name,
64
+ size = 16,
65
+ stroke = 1.5,
66
+ ...rest
67
+ }: { name: GlyphName; size?: number; stroke?: number } & Omit<
68
+ SVGAttributes<SVGSVGElement>,
69
+ 'stroke'
70
+ > = $props();
71
+ </script>
72
+
73
+ <svg
74
+ width={size}
75
+ height={size}
76
+ viewBox="0 0 16 16"
77
+ fill="none"
78
+ stroke="currentColor"
79
+ stroke-width={stroke}
80
+ stroke-linecap="round"
81
+ stroke-linejoin="round"
82
+ stroke-dasharray={name === 'dashed' ? '2.4 2.4' : undefined}
83
+ aria-hidden="true"
84
+ {...rest}
85
+ >
86
+ {#each paths[name] as d (d)}
87
+ <path {d} />
88
+ {/each}
89
+ </svg>
@@ -0,0 +1,37 @@
1
+ declare const paths: {
2
+ readonly arrowUp: readonly ["M8 13V3.25", "M3.75 7.5 8 3.25l4.25 4.25"];
3
+ readonly arrowDown: readonly ["M8 3v9.75", "M3.75 8.5 8 12.75l4.25-4.25"];
4
+ readonly chevron: readonly ["M4.75 6.25 8 9.5l3.25-3.25"];
5
+ readonly copy: readonly ["M6.25 5.75h5.5c.83 0 1.5.67 1.5 1.5v5.5c0 .83-.67 1.5-1.5 1.5h-5.5c-.83 0-1.5-.67-1.5-1.5v-5.5c0-.83.67-1.5 1.5-1.5Z", "M10.25 5.75V4.25c0-.83-.67-1.5-1.5-1.5h-4.5c-.83 0-1.5.67-1.5 1.5v4.5c0 .83.67 1.5 1.5 1.5h.5"];
6
+ readonly check: readonly ["M3.25 8.5 6.5 11.75 12.75 4.75"];
7
+ readonly alert: readonly ["M8 5v3.5", "M8 11h.01", "M14 8A6 6 0 1 1 2 8a6 6 0 0 1 12 0Z"];
8
+ readonly dashed: readonly ["M13 8A5 5 0 1 1 3 8a5 5 0 0 1 10 0Z"];
9
+ readonly paperclip: readonly ["m13 7.5-5.1 5.1a3.25 3.25 0 0 1-4.6-4.6l5.3-5.3a2.17 2.17 0 0 1 3.06 3.06L6.4 11.02a1.08 1.08 0 0 1-1.53-1.53l4.6-4.6"];
10
+ readonly close: readonly ["M4.5 4.5l7 7", "M11.5 4.5l-7 7"];
11
+ readonly terminal: readonly ["M3.5 4.5l3 3.25-3 3.25", "M8 11.5h4.5"];
12
+ readonly pencil: readonly ["M10.5 3.5 12.5 5.5", "M3 13l.5-2.5 7.75-7.75a1.4 1.4 0 0 1 2 2L5.5 12.5Z"];
13
+ readonly eye: readonly ["M1.75 8S4 3.75 8 3.75 14.25 8 14.25 8 12 12.25 8 12.25 1.75 8 1.75 8Z", "M10 8a2 2 0 1 1-4 0 2 2 0 0 1 4 0Z"];
14
+ readonly globe: readonly ["M14 8A6 6 0 1 1 2 8a6 6 0 0 1 12 0Z", "M2 8h12", "M8 2c1.7 1.7 2.5 3.7 2.5 6S9.7 12.3 8 14C6.3 12.3 5.5 10.3 5.5 8S6.3 3.7 8 2Z"];
15
+ readonly plug: readonly ["M6 2.5v3", "M10 2.5v3", "M4.5 5.5h7v2.5a3.5 3.5 0 0 1-7 0Z", "M8 11.5v2"];
16
+ readonly sparkle: readonly ["M8 2.5 9.4 6.6 13.5 8 9.4 9.4 8 13.5 6.6 9.4 2.5 8 6.6 6.6Z"];
17
+ readonly undo: readonly ["M5.5 4 2.5 7l3 3", "M2.5 7h6.75a4 4 0 0 1 0 8H8"];
18
+ readonly send: readonly ["M8 13V3.25", "M3.75 7.5 8 3.25l4.25 4.25"];
19
+ readonly steer: readonly ["M3.5 3v5.5a2 2 0 0 0 2 2h7", "M10 8l2.5 2.5L10 13"];
20
+ readonly search: readonly ["M11.5 7a4.5 4.5 0 1 1-9 0 4.5 4.5 0 0 1 9 0Z", "m10.5 10.5 3 3"];
21
+ readonly file: readonly ["M4.25 2.25h4.5l3 3v8.5h-7.5Z", "M8.75 2.25v3h3"];
22
+ readonly selector: readonly ["M5.25 6 8 3.25 10.75 6", "M5.25 10 8 12.75 10.75 10"];
23
+ readonly bulb: readonly ["M6.25 13.75h3.5", "M8 2.25a4 4 0 0 0-2.4 7.2c.42.32.65.7.65 1.15v.65h3.5v-.65c0-.45.23-.83.65-1.15A4 4 0 0 0 8 2.25Z"];
24
+ readonly layers: readonly ["M8 2.75 13.25 5.5 8 8.25 2.75 5.5Z", "M2.75 8.25 8 11l5.25-2.75", "M2.75 11 8 13.75 13.25 11"];
25
+ readonly arch: readonly ["M4 13.5V7.25a4 4 0 0 1 8 0v6.25", "M8 3.25v10.25", "M2.5 13.5h11"];
26
+ readonly minus: readonly ["M5 8h6"];
27
+ };
28
+ export type GlyphName = keyof typeof paths;
29
+ import type { SVGAttributes } from 'svelte/elements';
30
+ type $$ComponentProps = {
31
+ name: GlyphName;
32
+ size?: number;
33
+ stroke?: number;
34
+ } & Omit<SVGAttributes<SVGSVGElement>, 'stroke'>;
35
+ declare const Glyph: import("svelte").Component<$$ComponentProps, {}, "">;
36
+ type Glyph = ReturnType<typeof Glyph>;
37
+ export default Glyph;
@@ -0,0 +1,86 @@
1
+ <!--
2
+ A small square of stone that holds an icon, at the start of a row in the
3
+ agent's timeline. Its tone says where the row stands: lit by ithildin while it
4
+ runs, green when it went through, red when it did not. It is opaque, so the
5
+ rail that joins the rows passes behind it.
6
+ -->
7
+ <script lang="ts" module>
8
+ import * as stylex from '@stylexjs/stylex';
9
+ import type { Snippet } from 'svelte';
10
+ import Glyph, { type GlyphName } from './Glyph.svelte';
11
+ import type { Sx } from './sx.js';
12
+ import { colors, motion, radius } from '../tokens.stylex.js';
13
+
14
+ export type TileTone = 'neutral' | 'live' | 'success' | 'warning' | 'danger';
15
+
16
+ const styles = stylex.create({
17
+ tile: {
18
+ position: 'relative',
19
+ boxSizing: 'border-box',
20
+ display: 'grid',
21
+ placeItems: 'center',
22
+ flexShrink: 0,
23
+ backgroundColor: colors.bgRaised,
24
+ color: colors.textMuted,
25
+ transitionProperty: 'color, box-shadow, background-image',
26
+ transitionDuration: motion.slow,
27
+ transitionTimingFunction: 'ease'
28
+ },
29
+ md: { width: '1.5rem', height: '1.5rem', borderRadius: radius.sm },
30
+ sm: { width: '1.25rem', height: '1.25rem', borderRadius: radius.xs },
31
+ neutral: {
32
+ backgroundImage: `linear-gradient(to bottom, ${colors.surfaceRaised}, ${colors.surface})`,
33
+ boxShadow: `inset 0 0 0 1px ${colors.line}, inset 0 1px 0 ${colors.highlight}, 0 1px 1px ${colors.shade}`
34
+ },
35
+ live: {
36
+ color: colors.ithil,
37
+ backgroundImage: `linear-gradient(${colors.ithilSoft}, ${colors.ithilSoft})`,
38
+ boxShadow: `inset 0 0 0 1px color-mix(in oklab, ${colors.ithil} 38%, transparent), 0 0 12px ${colors.glow}`
39
+ },
40
+ success: {
41
+ color: colors.success,
42
+ backgroundImage: `linear-gradient(${colors.successSoft}, ${colors.successSoft})`,
43
+ boxShadow: `inset 0 0 0 1px color-mix(in oklab, ${colors.success} 30%, transparent)`
44
+ },
45
+ warning: {
46
+ color: colors.warning,
47
+ backgroundImage: `linear-gradient(${colors.warningSoft}, ${colors.warningSoft})`,
48
+ boxShadow: `inset 0 0 0 1px color-mix(in oklab, ${colors.warning} 32%, transparent)`
49
+ },
50
+ danger: {
51
+ color: colors.danger,
52
+ backgroundImage: `linear-gradient(${colors.dangerSoft}, ${colors.dangerSoft})`,
53
+ boxShadow: `inset 0 0 0 1px color-mix(in oklab, ${colors.danger} 32%, transparent)`
54
+ }
55
+ });
56
+ </script>
57
+
58
+ <script lang="ts">
59
+ let {
60
+ glyph,
61
+ tone = 'neutral',
62
+ size = 'md',
63
+ sx,
64
+ children
65
+ }: {
66
+ glyph?: GlyphName;
67
+ tone?: TileTone;
68
+ size?: 'sm' | 'md';
69
+ sx?: Sx;
70
+ /** Your own icon, shown when there is no glyph. */
71
+ children?: Snippet;
72
+ } = $props();
73
+ </script>
74
+
75
+ <span
76
+ aria-hidden="true"
77
+ data-slot="tile"
78
+ data-tone={tone}
79
+ {...stylex.attrs(styles.tile, styles[size], styles[tone], sx)}
80
+ >
81
+ {#if glyph}<Glyph
82
+ name={glyph}
83
+ size={size === 'md' ? 14 : 12}
84
+ stroke={1.6}
85
+ />{:else}{@render children?.()}{/if}
86
+ </span>
@@ -0,0 +1,15 @@
1
+ import type { Snippet } from 'svelte';
2
+ import { type GlyphName } from './Glyph.svelte';
3
+ import type { Sx } from './sx.js';
4
+ export type TileTone = 'neutral' | 'live' | 'success' | 'warning' | 'danger';
5
+ type $$ComponentProps = {
6
+ glyph?: GlyphName;
7
+ tone?: TileTone;
8
+ size?: 'sm' | 'md';
9
+ sx?: Sx;
10
+ /** Your own icon, shown when there is no glyph. */
11
+ children?: Snippet;
12
+ };
13
+ declare const Tile: import("svelte").Component<$$ComponentProps, {}, "">;
14
+ type Tile = ReturnType<typeof Tile>;
15
+ export default Tile;
@@ -0,0 +1,58 @@
1
+ import * as stylex from '@stylexjs/stylex';
2
+ /** Shared look for text-entry controls: Input and Textarea. A recess with a 3:1 edge. */
3
+ export declare const control: Readonly<{
4
+ readonly base: Readonly<{
5
+ readonly WebkitAppRegion: stylex.StyleXClassNameFor<"WebkitAppRegion", "no-drag">;
6
+ readonly boxSizing: stylex.StyleXClassNameFor<"boxSizing", "border-box">;
7
+ readonly display: stylex.StyleXClassNameFor<"display", "block">;
8
+ readonly width: stylex.StyleXClassNameFor<"width", "100%">;
9
+ readonly minWidth: stylex.StyleXClassNameFor<"minWidth", 0>;
10
+ readonly margin: stylex.StyleXClassNameFor<"margin", 0>;
11
+ readonly paddingBlock: stylex.StyleXClassNameFor<"paddingBlock", 0>;
12
+ readonly borderWidth: stylex.StyleXClassNameFor<"borderWidth", "1px">;
13
+ readonly borderStyle: stylex.StyleXClassNameFor<"borderStyle", "solid">;
14
+ readonly borderColor: stylex.StyleXClassNameFor<"borderColor", string | null>;
15
+ readonly borderRadius: stylex.StyleXClassNameFor<"borderRadius", string>;
16
+ readonly backgroundColor: stylex.StyleXClassNameFor<"backgroundColor", string>;
17
+ readonly boxShadow: stylex.StyleXClassNameFor<"boxShadow", `inset 0 1px 2px ${stylex.StyleXVar<string>}` | `inset 0 0 0 0.5px ${stylex.StyleXVar<string>}, 0 0 0 3px ${stylex.StyleXVar<string>}`>;
18
+ readonly color: stylex.StyleXClassNameFor<"color", string>;
19
+ readonly fontFamily: stylex.StyleXClassNameFor<"fontFamily", string>;
20
+ readonly fontSize: stylex.StyleXClassNameFor<"fontSize", string>;
21
+ readonly lineHeight: stylex.StyleXClassNameFor<"lineHeight", string>;
22
+ readonly appearance: stylex.StyleXClassNameFor<"appearance", "none">;
23
+ readonly opacity: stylex.StyleXClassNameFor<"opacity", 1 | 0.5>;
24
+ readonly cursor: stylex.StyleXClassNameFor<"cursor", "not-allowed" | null>;
25
+ readonly outlineStyle: stylex.StyleXClassNameFor<"outlineStyle", "solid">;
26
+ readonly outlineColor: stylex.StyleXClassNameFor<"outlineColor", "transparent">;
27
+ readonly outlineWidth: stylex.StyleXClassNameFor<"outlineWidth", 0 | "2px">;
28
+ readonly outlineOffset: stylex.StyleXClassNameFor<"outlineOffset", "-2px">;
29
+ readonly transitionProperty: stylex.StyleXClassNameFor<"transitionProperty", "border-color">;
30
+ readonly transitionDuration: stylex.StyleXClassNameFor<"transitionDuration", string>;
31
+ readonly transitionTimingFunction: stylex.StyleXClassNameFor<"transitionTimingFunction", "ease">;
32
+ readonly '::placeholder': stylex.StyleXClassNameFor<"::placeholder", {
33
+ readonly color: stylex.StyleXVar<string>;
34
+ readonly opacity: 1;
35
+ }>;
36
+ }>;
37
+ readonly invalid: Readonly<{
38
+ readonly borderColor: stylex.StyleXClassNameFor<"borderColor", string>;
39
+ readonly boxShadow: stylex.StyleXClassNameFor<"boxShadow", `inset 0 1px 2px ${stylex.StyleXVar<string>}` | `inset 0 0 0 0.5px ${stylex.StyleXVar<string>}, 0 0 0 3px color-mix(in oklab, ${stylex.StyleXVar<string>} 22%, transparent)`>;
40
+ }>;
41
+ readonly sm: Readonly<{
42
+ readonly minHeight: stylex.StyleXClassNameFor<"minHeight", "28px">;
43
+ readonly paddingInline: stylex.StyleXClassNameFor<"paddingInline", "8px">;
44
+ readonly borderRadius: stylex.StyleXClassNameFor<"borderRadius", string>;
45
+ readonly fontSize: stylex.StyleXClassNameFor<"fontSize", string>;
46
+ }>;
47
+ readonly md: Readonly<{
48
+ readonly minHeight: stylex.StyleXClassNameFor<"minHeight", "34px">;
49
+ readonly paddingInline: stylex.StyleXClassNameFor<"paddingInline", "10px">;
50
+ }>;
51
+ readonly lg: Readonly<{
52
+ readonly minHeight: stylex.StyleXClassNameFor<"minHeight", "40px">;
53
+ readonly paddingInline: stylex.StyleXClassNameFor<"paddingInline", "12px">;
54
+ readonly borderRadius: stylex.StyleXClassNameFor<"borderRadius", string>;
55
+ readonly fontSize: stylex.StyleXClassNameFor<"fontSize", string>;
56
+ }>;
57
+ }>;
58
+ export type ControlSize = 'sm' | 'md' | 'lg';
@@ -0,0 +1,74 @@
1
+ import * as stylex from '@stylexjs/stylex';
2
+ import { colors, font, motion, radius } from '../tokens.stylex.js';
3
+ const HOVER = '@media (hover: hover) and (pointer: fine)';
4
+ /** Shared look for text-entry controls: Input and Textarea. A recess with a 3:1 edge. */
5
+ export const control = stylex.create({
6
+ base: {
7
+ // A field in an Electron title bar takes clicks instead of dragging the window
8
+ WebkitAppRegion: 'no-drag',
9
+ boxSizing: 'border-box',
10
+ display: 'block',
11
+ width: '100%',
12
+ minWidth: 0,
13
+ margin: 0,
14
+ paddingBlock: 0,
15
+ borderWidth: '1px',
16
+ borderStyle: 'solid',
17
+ borderColor: {
18
+ default: colors.edge,
19
+ ':hover': { default: null, [HOVER]: colors.edgeHover },
20
+ ':focus-visible': colors.focusRing
21
+ },
22
+ borderRadius: radius.md,
23
+ backgroundColor: colors.well,
24
+ boxShadow: {
25
+ default: `inset 0 1px 2px ${colors.shade}`,
26
+ ':focus-visible': `inset 0 0 0 0.5px ${colors.focusRing}, 0 0 0 3px ${colors.focusHalo}`
27
+ },
28
+ color: colors.text,
29
+ fontFamily: font.body,
30
+ // 16px on touch devices stops iOS from zooming the page on focus
31
+ fontSize: { default: font.sizeMd, '@media (pointer: coarse)': '1rem' },
32
+ lineHeight: font.leadingSnug,
33
+ appearance: 'none',
34
+ opacity: { default: 1, ':disabled': 0.5 },
35
+ cursor: { default: null, ':disabled': 'not-allowed' },
36
+ // Invisible normally; in forced-colours mode it is the focus indicator
37
+ outlineStyle: 'solid',
38
+ outlineColor: 'transparent',
39
+ outlineWidth: { default: 0, ':focus-visible': '2px' },
40
+ outlineOffset: '-2px',
41
+ // Only the hover colour eases. Focus is often reached with Tab, and a ring
42
+ // that fades in after a key press feels late, so it appears at once.
43
+ transitionProperty: 'border-color',
44
+ transitionDuration: { default: motion.base, ':focus-visible': '0ms' },
45
+ transitionTimingFunction: 'ease',
46
+ '::placeholder': {
47
+ color: colors.textSubtle,
48
+ opacity: 1
49
+ }
50
+ },
51
+ invalid: {
52
+ borderColor: colors.danger,
53
+ boxShadow: {
54
+ default: `inset 0 1px 2px ${colors.shade}`,
55
+ ':focus-visible': `inset 0 0 0 0.5px ${colors.danger}, 0 0 0 3px color-mix(in oklab, ${colors.danger} 22%, transparent)`
56
+ }
57
+ },
58
+ sm: {
59
+ minHeight: '28px',
60
+ paddingInline: '8px',
61
+ borderRadius: radius.sm,
62
+ fontSize: { default: font.sizeSm, '@media (pointer: coarse)': '1rem' }
63
+ },
64
+ md: {
65
+ minHeight: '34px',
66
+ paddingInline: '10px'
67
+ },
68
+ lg: {
69
+ minHeight: '40px',
70
+ paddingInline: '12px',
71
+ borderRadius: radius.lg,
72
+ fontSize: font.sizeLg
73
+ }
74
+ });
@@ -0,0 +1,7 @@
1
+ /** What a folding part (Reasoning, Tool) shares between its trigger and its content. */
2
+ export type DisclosureContext = {
3
+ readonly open: boolean;
4
+ toggle(): void;
5
+ readonly triggerId: string;
6
+ readonly contentId: string;
7
+ };
@@ -0,0 +1 @@
1
+ export {};
@@ -0,0 +1,13 @@
1
+ /** A piece of formatted code, and what it is, for colouring. */
2
+ export type CodeToken = {
3
+ text: string;
4
+ kind?: 'key' | 'string' | 'number' | 'literal' | 'punct';
5
+ };
6
+ /** Formats a value for showing: strings as they are, anything else as indented JSON. */
7
+ export declare function format(value: unknown): string;
8
+ /** Splits formatted JSON into tokens. Text that is not JSON comes back as one plain token. */
9
+ export declare function tokenize(value: unknown): CodeToken[];
10
+ type Primitive = string | number | boolean | null;
11
+ /** A flat object of plain values, such as most tools' arguments, which reads best as a list. */
12
+ export declare function flatEntries(value: unknown): [string, Primitive][] | undefined;
13
+ export {};
@@ -0,0 +1,51 @@
1
+ const PATTERN = /("(?:\\.|[^"\\])*")(\s*:)?|\b(?:true|false|null)\b|-?\d+(?:\.\d+)?(?:[eE][+-]?\d+)?|[{}[\],]/g;
2
+ /** Formats a value for showing: strings as they are, anything else as indented JSON. */
3
+ export function format(value) {
4
+ if (typeof value === 'string')
5
+ return value;
6
+ try {
7
+ return JSON.stringify(value, null, 2) ?? String(value);
8
+ }
9
+ catch {
10
+ return String(value);
11
+ }
12
+ }
13
+ /** Splits formatted JSON into tokens. Text that is not JSON comes back as one plain token. */
14
+ export function tokenize(value) {
15
+ const source = format(value);
16
+ if (typeof value === 'string')
17
+ return [{ text: source }];
18
+ const tokens = [];
19
+ let last = 0;
20
+ for (const match of source.matchAll(PATTERN)) {
21
+ const index = match.index ?? 0;
22
+ if (index > last)
23
+ tokens.push({ text: source.slice(last, index) });
24
+ const [text, string, colon] = match;
25
+ if (string) {
26
+ tokens.push({ text: string, kind: colon ? 'key' : 'string' });
27
+ if (colon)
28
+ tokens.push({ text: colon, kind: 'punct' });
29
+ }
30
+ else if (/^[{}[\],]$/.test(text))
31
+ tokens.push({ text, kind: 'punct' });
32
+ else if (/^-?\d/.test(text))
33
+ tokens.push({ text, kind: 'number' });
34
+ else
35
+ tokens.push({ text, kind: 'literal' });
36
+ last = index + text.length;
37
+ }
38
+ if (last < source.length)
39
+ tokens.push({ text: source.slice(last) });
40
+ return tokens;
41
+ }
42
+ /** A flat object of plain values, such as most tools' arguments, which reads best as a list. */
43
+ export function flatEntries(value) {
44
+ if (!value || typeof value !== 'object' || Array.isArray(value))
45
+ return undefined;
46
+ const entries = Object.entries(value);
47
+ if (entries.length === 0 || entries.length > 12)
48
+ return undefined;
49
+ const plain = entries.every(([, v]) => v === null || ['string', 'number', 'boolean'].includes(typeof v));
50
+ return plain ? entries : undefined;
51
+ }
@@ -0,0 +1,9 @@
1
+ import type { GlyphName } from './Glyph.svelte';
2
+ /** What an agent's action was, which picks its icon. */
3
+ export type ActionKind = 'command' | 'edit' | 'read' | 'search' | 'web' | 'tool' | 'agent';
4
+ export declare const KIND_GLYPHS: Record<ActionKind, GlyphName>;
5
+ /**
6
+ * A step's label split so the part that matters stands out: the file name of a
7
+ * path, the program of a command. Anything else is left whole.
8
+ */
9
+ export declare function emphasis(kind: ActionKind, label: string): [lead: string, main: string, tail: string];
@@ -0,0 +1,25 @@
1
+ export const KIND_GLYPHS = {
2
+ command: 'terminal',
3
+ edit: 'pencil',
4
+ read: 'eye',
5
+ search: 'search',
6
+ web: 'globe',
7
+ tool: 'plug',
8
+ agent: 'sparkle'
9
+ };
10
+ /**
11
+ * A step's label split so the part that matters stands out: the file name of a
12
+ * path, the program of a command. Anything else is left whole.
13
+ */
14
+ export function emphasis(kind, label) {
15
+ if ((kind === 'read' || kind === 'edit') && !/\s/.test(label)) {
16
+ const cut = label.lastIndexOf('/') + 1;
17
+ return [label.slice(0, cut), label.slice(cut), ''];
18
+ }
19
+ if (kind === 'command') {
20
+ const space = label.indexOf(' ');
21
+ if (space > 0)
22
+ return ['', label.slice(0, space), label.slice(space)];
23
+ }
24
+ return ['', label, ''];
25
+ }
@@ -0,0 +1,103 @@
1
+ /**
2
+ * What everything that floats has in common: menus, popovers, selects and the
3
+ * palette. One raised surface, sized to the room bits-ui measures for it, and
4
+ * one motion: it grows out of what opened it, and goes a little faster than it
5
+ * came. bits-ui waits for the transition before it removes the element, so
6
+ * the exit is seen.
7
+ */
8
+ import * as stylex from '@stylexjs/stylex';
9
+ export declare const layer: Readonly<{
10
+ readonly surface: Readonly<{
11
+ readonly boxSizing: stylex.StyleXClassNameFor<"boxSizing", "border-box">;
12
+ readonly zIndex: stylex.StyleXClassNameFor<"zIndex", 50>;
13
+ readonly minWidth: stylex.StyleXClassNameFor<"minWidth", "max(12rem, var(--bits-floating-anchor-width, 0px))">;
14
+ readonly maxWidth: stylex.StyleXClassNameFor<"maxWidth", "min(22rem, var(--bits-floating-available-width, 100vw))">;
15
+ readonly maxHeight: stylex.StyleXClassNameFor<"maxHeight", "var(--bits-floating-available-height, 80vh)">;
16
+ readonly overflowY: stylex.StyleXClassNameFor<"overflowY", "auto">;
17
+ readonly overscrollBehavior: stylex.StyleXClassNameFor<"overscrollBehavior", "contain">;
18
+ readonly padding: stylex.StyleXClassNameFor<"padding", "0.25rem">;
19
+ readonly borderRadius: stylex.StyleXClassNameFor<"borderRadius", string>;
20
+ readonly backgroundColor: stylex.StyleXClassNameFor<"backgroundColor", string>;
21
+ readonly boxShadow: stylex.StyleXClassNameFor<"boxShadow", `inset 0 0 0 1px ${stylex.StyleXVar<string>}, inset 0 1px 0 ${stylex.StyleXVar<string>}, 0 2px 4px ${stylex.StyleXVar<string>}, 0 16px 40px -12px ${stylex.StyleXVar<string>}`>;
22
+ readonly color: stylex.StyleXClassNameFor<"color", string>;
23
+ readonly fontFamily: stylex.StyleXClassNameFor<"fontFamily", string>;
24
+ readonly fontSize: stylex.StyleXClassNameFor<"fontSize", string>;
25
+ readonly lineHeight: stylex.StyleXClassNameFor<"lineHeight", string>;
26
+ readonly scrollbarWidth: stylex.StyleXClassNameFor<"scrollbarWidth", "thin">;
27
+ readonly outlineStyle: stylex.StyleXClassNameFor<"outlineStyle", "solid">;
28
+ readonly outlineWidth: stylex.StyleXClassNameFor<"outlineWidth", 0 | "1px">;
29
+ readonly outlineColor: stylex.StyleXClassNameFor<"outlineColor", "CanvasText">;
30
+ readonly transformOrigin: stylex.StyleXClassNameFor<"transformOrigin", "var(--bits-floating-transform-origin, top)">;
31
+ readonly opacity: stylex.StyleXClassNameFor<"opacity", 0 | 1>;
32
+ readonly scale: stylex.StyleXClassNameFor<"scale", 1 | 0.97 | null>;
33
+ readonly transitionProperty: stylex.StyleXClassNameFor<"transitionProperty", "opacity" | "opacity, scale">;
34
+ readonly transitionDuration: stylex.StyleXClassNameFor<"transitionDuration", string>;
35
+ readonly transitionTimingFunction: stylex.StyleXClassNameFor<"transitionTimingFunction", string>;
36
+ }>;
37
+ readonly item: Readonly<{
38
+ readonly position: stylex.StyleXClassNameFor<"position", "relative">;
39
+ readonly boxSizing: stylex.StyleXClassNameFor<"boxSizing", "border-box">;
40
+ readonly display: stylex.StyleXClassNameFor<"display", "flex">;
41
+ readonly alignItems: stylex.StyleXClassNameFor<"alignItems", "center">;
42
+ readonly gap: stylex.StyleXClassNameFor<"gap", "0.5rem">;
43
+ readonly minHeight: stylex.StyleXClassNameFor<"minHeight", "2rem">;
44
+ readonly paddingBlock: stylex.StyleXClassNameFor<"paddingBlock", "0.375rem">;
45
+ readonly paddingInline: stylex.StyleXClassNameFor<"paddingInline", "0.5rem">;
46
+ readonly borderRadius: stylex.StyleXClassNameFor<"borderRadius", string>;
47
+ readonly color: stylex.StyleXClassNameFor<"color", string>;
48
+ readonly cursor: stylex.StyleXClassNameFor<"cursor", "default" | "not-allowed">;
49
+ readonly userSelect: stylex.StyleXClassNameFor<"userSelect", "none">;
50
+ readonly outlineStyle: stylex.StyleXClassNameFor<"outlineStyle", "none">;
51
+ readonly backgroundColor: stylex.StyleXClassNameFor<"backgroundColor", string>;
52
+ readonly forcedColorAdjust: stylex.StyleXClassNameFor<"forcedColorAdjust", "none">;
53
+ }>;
54
+ readonly danger: Readonly<{
55
+ readonly color: stylex.StyleXClassNameFor<"color", string>;
56
+ readonly backgroundColor: stylex.StyleXClassNameFor<"backgroundColor", string>;
57
+ }>;
58
+ readonly icon: Readonly<{
59
+ readonly display: stylex.StyleXClassNameFor<"display", "grid">;
60
+ readonly placeItems: stylex.StyleXClassNameFor<"placeItems", "center">;
61
+ readonly flexShrink: stylex.StyleXClassNameFor<"flexShrink", 0>;
62
+ readonly width: stylex.StyleXClassNameFor<"width", "1rem">;
63
+ readonly height: stylex.StyleXClassNameFor<"height", "1rem">;
64
+ readonly color: stylex.StyleXClassNameFor<"color", string>;
65
+ }>;
66
+ readonly label: Readonly<{
67
+ readonly flexGrow: stylex.StyleXClassNameFor<"flexGrow", 1>;
68
+ readonly minWidth: stylex.StyleXClassNameFor<"minWidth", 0>;
69
+ readonly overflow: stylex.StyleXClassNameFor<"overflow", "hidden">;
70
+ readonly textOverflow: stylex.StyleXClassNameFor<"textOverflow", "ellipsis">;
71
+ readonly whiteSpace: stylex.StyleXClassNameFor<"whiteSpace", "nowrap">;
72
+ }>;
73
+ readonly trailing: Readonly<{
74
+ readonly display: stylex.StyleXClassNameFor<"display", "inline-flex">;
75
+ readonly alignItems: stylex.StyleXClassNameFor<"alignItems", "center">;
76
+ readonly gap: stylex.StyleXClassNameFor<"gap", "0.25rem">;
77
+ readonly flexShrink: stylex.StyleXClassNameFor<"flexShrink", 0>;
78
+ readonly marginInlineStart: stylex.StyleXClassNameFor<"marginInlineStart", "auto">;
79
+ readonly paddingInlineStart: stylex.StyleXClassNameFor<"paddingInlineStart", "1rem">;
80
+ readonly color: stylex.StyleXClassNameFor<"color", string>;
81
+ readonly fontSize: stylex.StyleXClassNameFor<"fontSize", string>;
82
+ readonly fontVariantNumeric: stylex.StyleXClassNameFor<"fontVariantNumeric", "tabular-nums">;
83
+ }>;
84
+ readonly heading: Readonly<{
85
+ readonly paddingTop: stylex.StyleXClassNameFor<"paddingTop", "0.5rem">;
86
+ readonly paddingBottom: stylex.StyleXClassNameFor<"paddingBottom", "0.25rem">;
87
+ readonly paddingInline: stylex.StyleXClassNameFor<"paddingInline", "0.5rem">;
88
+ readonly color: stylex.StyleXClassNameFor<"color", string>;
89
+ readonly fontFamily: stylex.StyleXClassNameFor<"fontFamily", string>;
90
+ readonly fontSize: stylex.StyleXClassNameFor<"fontSize", "0.6875rem">;
91
+ readonly letterSpacing: stylex.StyleXClassNameFor<"letterSpacing", "0.04em">;
92
+ readonly textTransform: stylex.StyleXClassNameFor<"textTransform", "uppercase">;
93
+ }>;
94
+ readonly separator: Readonly<{
95
+ readonly height: stylex.StyleXClassNameFor<"height", "1px">;
96
+ readonly marginBlock: stylex.StyleXClassNameFor<"marginBlock", "0.25rem">;
97
+ readonly marginInline: stylex.StyleXClassNameFor<"marginInline", "-0.25rem">;
98
+ readonly backgroundColor: stylex.StyleXClassNameFor<"backgroundColor", string>;
99
+ }>;
100
+ readonly hoverable: Readonly<{
101
+ readonly backgroundColor: stylex.StyleXClassNameFor<"backgroundColor", string | null>;
102
+ }>;
103
+ }>;