@nuvin/components 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (269) hide show
  1. package/dist/MarkdownBody-XBNXK6P4.js +121 -0
  2. package/dist/app/App.d.ts +24 -0
  3. package/dist/app/App.d.ts.map +1 -0
  4. package/dist/app/AppShell.d.ts +13 -0
  5. package/dist/app/AppShell.d.ts.map +1 -0
  6. package/dist/app/Header.d.ts +11 -0
  7. package/dist/app/Header.d.ts.map +1 -0
  8. package/dist/app/SessionSubHeader.d.ts +15 -0
  9. package/dist/app/SessionSubHeader.d.ts.map +1 -0
  10. package/dist/app/WorkspacePanel.d.ts +15 -0
  11. package/dist/app/WorkspacePanel.d.ts.map +1 -0
  12. package/dist/app/app-shell.styles.d.ts +11 -0
  13. package/dist/app/app-shell.styles.d.ts.map +1 -0
  14. package/dist/app/route-components.d.ts +46 -0
  15. package/dist/app/route-components.d.ts.map +1 -0
  16. package/dist/app/routes.d.ts +11 -0
  17. package/dist/app/routes.d.ts.map +1 -0
  18. package/dist/assets/fonts/inter-latin-400-normal.woff2 +0 -0
  19. package/dist/assets/fonts/inter-latin-500-normal.woff2 +0 -0
  20. package/dist/assets/fonts/inter-latin-600-normal.woff2 +0 -0
  21. package/dist/assets/fonts/inter-latin-700-normal.woff2 +0 -0
  22. package/dist/assets/fonts/jetbrains-mono-latin-400-normal.woff2 +0 -0
  23. package/dist/assets/fonts/jetbrains-mono-latin-500-normal.woff2 +0 -0
  24. package/dist/assets/fonts/jetbrains-mono-latin-600-normal.woff2 +0 -0
  25. package/dist/assets/fonts/jetbrains-mono-latin-700-normal.woff2 +0 -0
  26. package/dist/chunk-TLWTUPOJ.js +10 -0
  27. package/dist/features/account/auth-gate.d.ts +17 -0
  28. package/dist/features/account/auth-gate.d.ts.map +1 -0
  29. package/dist/features/account/index.d.ts +3 -0
  30. package/dist/features/account/index.d.ts.map +1 -0
  31. package/dist/features/composer/Composer.d.ts +39 -0
  32. package/dist/features/composer/Composer.d.ts.map +1 -0
  33. package/dist/features/composer/QuestionCard.d.ts +21 -0
  34. package/dist/features/composer/QuestionCard.d.ts.map +1 -0
  35. package/dist/features/composer/context-status.d.ts +6 -0
  36. package/dist/features/composer/context-status.d.ts.map +1 -0
  37. package/dist/features/composer/index.d.ts +2 -0
  38. package/dist/features/composer/index.d.ts.map +1 -0
  39. package/dist/features/config/CloudProviderSetup.d.ts +12 -0
  40. package/dist/features/config/CloudProviderSetup.d.ts.map +1 -0
  41. package/dist/features/config/OnboardingGate.d.ts +22 -0
  42. package/dist/features/config/OnboardingGate.d.ts.map +1 -0
  43. package/dist/features/config/ProviderManager.d.ts +15 -0
  44. package/dist/features/config/ProviderManager.d.ts.map +1 -0
  45. package/dist/features/config/WorkspaceManager.d.ts +13 -0
  46. package/dist/features/config/WorkspaceManager.d.ts.map +1 -0
  47. package/dist/features/config/config-client.d.ts +49 -0
  48. package/dist/features/config/config-client.d.ts.map +1 -0
  49. package/dist/features/config/index.d.ts +10 -0
  50. package/dist/features/config/index.d.ts.map +1 -0
  51. package/dist/features/config/protocol-config-client.d.ts +22 -0
  52. package/dist/features/config/protocol-config-client.d.ts.map +1 -0
  53. package/dist/features/config/rest-config-client.d.ts +4 -0
  54. package/dist/features/config/rest-config-client.d.ts.map +1 -0
  55. package/dist/features/config/use-provider-status.d.ts +8 -0
  56. package/dist/features/config/use-provider-status.d.ts.map +1 -0
  57. package/dist/features/daemon-switcher/DaemonAvatar.d.ts +16 -0
  58. package/dist/features/daemon-switcher/DaemonAvatar.d.ts.map +1 -0
  59. package/dist/features/daemon-switcher/DaemonRail.d.ts +18 -0
  60. package/dist/features/daemon-switcher/DaemonRail.d.ts.map +1 -0
  61. package/dist/features/daemon-switcher/DaemonSwitcher.d.ts +17 -0
  62. package/dist/features/daemon-switcher/DaemonSwitcher.d.ts.map +1 -0
  63. package/dist/features/daemon-switcher/index.d.ts +7 -0
  64. package/dist/features/daemon-switcher/index.d.ts.map +1 -0
  65. package/dist/features/diff/DiffView.d.ts +13 -0
  66. package/dist/features/diff/DiffView.d.ts.map +1 -0
  67. package/dist/features/diff/diff.d.ts +23 -0
  68. package/dist/features/diff/diff.d.ts.map +1 -0
  69. package/dist/features/diff/index.d.ts +4 -0
  70. package/dist/features/diff/index.d.ts.map +1 -0
  71. package/dist/features/launcher/SessionItem.d.ts +12 -0
  72. package/dist/features/launcher/SessionItem.d.ts.map +1 -0
  73. package/dist/features/launcher/SessionSidebar.d.ts +24 -0
  74. package/dist/features/launcher/SessionSidebar.d.ts.map +1 -0
  75. package/dist/features/launcher/index.d.ts +5 -0
  76. package/dist/features/launcher/index.d.ts.map +1 -0
  77. package/dist/features/launcher/session-sidebar-model.d.ts +77 -0
  78. package/dist/features/launcher/session-sidebar-model.d.ts.map +1 -0
  79. package/dist/features/launcher/session-status.d.ts +9 -0
  80. package/dist/features/launcher/session-status.d.ts.map +1 -0
  81. package/dist/features/launcher/use-daemon-history.d.ts +17 -0
  82. package/dist/features/launcher/use-daemon-history.d.ts.map +1 -0
  83. package/dist/features/new-session/StartScreen.d.ts +31 -0
  84. package/dist/features/new-session/StartScreen.d.ts.map +1 -0
  85. package/dist/features/new-session/index.d.ts +3 -0
  86. package/dist/features/new-session/index.d.ts.map +1 -0
  87. package/dist/features/new-session/start-screen.styles.d.ts +46 -0
  88. package/dist/features/new-session/start-screen.styles.d.ts.map +1 -0
  89. package/dist/features/picker/Picker.d.ts +23 -0
  90. package/dist/features/picker/Picker.d.ts.map +1 -0
  91. package/dist/features/picker/PickerSession.d.ts +8 -0
  92. package/dist/features/picker/PickerSession.d.ts.map +1 -0
  93. package/dist/features/picker/index.d.ts +6 -0
  94. package/dist/features/picker/index.d.ts.map +1 -0
  95. package/dist/features/picker/picker-model.d.ts +31 -0
  96. package/dist/features/picker/picker-model.d.ts.map +1 -0
  97. package/dist/features/tabs/Tab.d.ts +8 -0
  98. package/dist/features/tabs/Tab.d.ts.map +1 -0
  99. package/dist/features/tabs/TabBar.d.ts +7 -0
  100. package/dist/features/tabs/TabBar.d.ts.map +1 -0
  101. package/dist/features/tabs/index.d.ts +8 -0
  102. package/dist/features/tabs/index.d.ts.map +1 -0
  103. package/dist/features/tabs/tab-model.d.ts +39 -0
  104. package/dist/features/tabs/tab-model.d.ts.map +1 -0
  105. package/dist/features/tabs/tab.styles.d.ts +9 -0
  106. package/dist/features/tabs/tab.styles.d.ts.map +1 -0
  107. package/dist/features/theme/ThemeToggle.d.ts +8 -0
  108. package/dist/features/theme/ThemeToggle.d.ts.map +1 -0
  109. package/dist/features/theme/index.d.ts +5 -0
  110. package/dist/features/theme/index.d.ts.map +1 -0
  111. package/dist/features/theme/themes.d.ts +13 -0
  112. package/dist/features/theme/themes.d.ts.map +1 -0
  113. package/dist/features/theme/use-theme-mode.d.ts +3 -0
  114. package/dist/features/theme/use-theme-mode.d.ts.map +1 -0
  115. package/dist/features/transcript/components/AssistantMessage.d.ts +21 -0
  116. package/dist/features/transcript/components/AssistantMessage.d.ts.map +1 -0
  117. package/dist/features/transcript/components/ChildMessagesContext.d.ts +27 -0
  118. package/dist/features/transcript/components/ChildMessagesContext.d.ts.map +1 -0
  119. package/dist/features/transcript/components/CodeBlock.d.ts +5 -0
  120. package/dist/features/transcript/components/CodeBlock.d.ts.map +1 -0
  121. package/dist/features/transcript/components/MarkdownBody.d.ts +17 -0
  122. package/dist/features/transcript/components/MarkdownBody.d.ts.map +1 -0
  123. package/dist/features/transcript/components/MessageList.d.ts +24 -0
  124. package/dist/features/transcript/components/MessageList.d.ts.map +1 -0
  125. package/dist/features/transcript/components/NestedMessageListContext.d.ts +18 -0
  126. package/dist/features/transcript/components/NestedMessageListContext.d.ts.map +1 -0
  127. package/dist/features/transcript/components/ProcessingIndicator.d.ts +5 -0
  128. package/dist/features/transcript/components/ProcessingIndicator.d.ts.map +1 -0
  129. package/dist/features/transcript/components/styles-test-utils.d.ts +6 -0
  130. package/dist/features/transcript/components/styles-test-utils.d.ts.map +1 -0
  131. package/dist/features/transcript/components/tool-display/BareLine.d.ts +14 -0
  132. package/dist/features/transcript/components/tool-display/BareLine.d.ts.map +1 -0
  133. package/dist/features/transcript/components/tool-display/Card.d.ts +31 -0
  134. package/dist/features/transcript/components/tool-display/Card.d.ts.map +1 -0
  135. package/dist/features/transcript/components/tool-display/Turn.d.ts +15 -0
  136. package/dist/features/transcript/components/tool-display/Turn.d.ts.map +1 -0
  137. package/dist/features/transcript/components/tool-display/index.d.ts +3 -0
  138. package/dist/features/transcript/components/tool-display/index.d.ts.map +1 -0
  139. package/dist/features/transcript/components/tool-display/renderers/AskUserRenderer.d.ts +4 -0
  140. package/dist/features/transcript/components/tool-display/renderers/AskUserRenderer.d.ts.map +1 -0
  141. package/dist/features/transcript/components/tool-display/renderers/AssignTaskRenderer.d.ts +9 -0
  142. package/dist/features/transcript/components/tool-display/renderers/AssignTaskRenderer.d.ts.map +1 -0
  143. package/dist/features/transcript/components/tool-display/renderers/BareToolRenderer.d.ts +8 -0
  144. package/dist/features/transcript/components/tool-display/renderers/BareToolRenderer.d.ts.map +1 -0
  145. package/dist/features/transcript/components/tool-display/renderers/BashRenderer.d.ts +11 -0
  146. package/dist/features/transcript/components/tool-display/renderers/BashRenderer.d.ts.map +1 -0
  147. package/dist/features/transcript/components/tool-display/renderers/FileEditRenderer.d.ts +4 -0
  148. package/dist/features/transcript/components/tool-display/renderers/FileEditRenderer.d.ts.map +1 -0
  149. package/dist/features/transcript/components/tool-display/renderers/FileNewRenderer.d.ts +4 -0
  150. package/dist/features/transcript/components/tool-display/renderers/FileNewRenderer.d.ts.map +1 -0
  151. package/dist/features/transcript/components/tool-display/renderers/TodoWriteRenderer.d.ts +4 -0
  152. package/dist/features/transcript/components/tool-display/renderers/TodoWriteRenderer.d.ts.map +1 -0
  153. package/dist/features/transcript/components/tool-display/renderers/UnknownRenderer.d.ts +4 -0
  154. package/dist/features/transcript/components/tool-display/renderers/UnknownRenderer.d.ts.map +1 -0
  155. package/dist/features/transcript/components/tool-display/tool-icon.d.ts +4 -0
  156. package/dist/features/transcript/components/tool-display/tool-icon.d.ts.map +1 -0
  157. package/dist/features/transcript/components/tool-display/tool-meta.d.ts +9 -0
  158. package/dist/features/transcript/components/tool-display/tool-meta.d.ts.map +1 -0
  159. package/dist/features/transcript/components/tool-display/tool-variants.d.ts +8 -0
  160. package/dist/features/transcript/components/tool-display/tool-variants.d.ts.map +1 -0
  161. package/dist/features/transcript/components/tool-display/types.d.ts +11 -0
  162. package/dist/features/transcript/components/tool-display/types.d.ts.map +1 -0
  163. package/dist/features/transcript/hooks/use-live-tick.d.ts +8 -0
  164. package/dist/features/transcript/hooks/use-live-tick.d.ts.map +1 -0
  165. package/dist/features/transcript/hooks/use-revealed-text.d.ts +28 -0
  166. package/dist/features/transcript/hooks/use-revealed-text.d.ts.map +1 -0
  167. package/dist/features/transcript/index.d.ts +6 -0
  168. package/dist/features/transcript/index.d.ts.map +1 -0
  169. package/dist/features/transcript/lib/message-groups.d.ts +9 -0
  170. package/dist/features/transcript/lib/message-groups.d.ts.map +1 -0
  171. package/dist/features/transcript/lib/preview-lines.d.ts +27 -0
  172. package/dist/features/transcript/lib/preview-lines.d.ts.map +1 -0
  173. package/dist/features/transcript/lib/processing-state.d.ts +16 -0
  174. package/dist/features/transcript/lib/processing-state.d.ts.map +1 -0
  175. package/dist/features/transcript/lib/reasoning-label.d.ts +9 -0
  176. package/dist/features/transcript/lib/reasoning-label.d.ts.map +1 -0
  177. package/dist/features/transcript/lib/tool-format-utils.d.ts +29 -0
  178. package/dist/features/transcript/lib/tool-format-utils.d.ts.map +1 -0
  179. package/dist/features/transcript/lib/tool-formatters.d.ts +45 -0
  180. package/dist/features/transcript/lib/tool-formatters.d.ts.map +1 -0
  181. package/dist/features/transcript/lib/tool-status.d.ts +39 -0
  182. package/dist/features/transcript/lib/tool-status.d.ts.map +1 -0
  183. package/dist/features/transcript/lib/transcript-rows.d.ts +15 -0
  184. package/dist/features/transcript/lib/transcript-rows.d.ts.map +1 -0
  185. package/dist/features/transcript/lib/turn-groups.d.ts +20 -0
  186. package/dist/features/transcript/lib/turn-groups.d.ts.map +1 -0
  187. package/dist/features/transcript/lib/turn-summary.d.ts +11 -0
  188. package/dist/features/transcript/lib/turn-summary.d.ts.map +1 -0
  189. package/dist/features/workflows/WorkflowsPanel.d.ts +11 -0
  190. package/dist/features/workflows/WorkflowsPanel.d.ts.map +1 -0
  191. package/dist/features/workflows/index.d.ts +3 -0
  192. package/dist/features/workflows/index.d.ts.map +1 -0
  193. package/dist/index.d.ts +45 -0
  194. package/dist/index.d.ts.map +1 -0
  195. package/dist/index.js +7877 -0
  196. package/dist/session/client-commands.d.ts +26 -0
  197. package/dist/session/client-commands.d.ts.map +1 -0
  198. package/dist/session/commands.d.ts +9 -0
  199. package/dist/session/commands.d.ts.map +1 -0
  200. package/dist/session/directory-source.d.ts +101 -0
  201. package/dist/session/directory-source.d.ts.map +1 -0
  202. package/dist/session/directory-status.d.ts +8 -0
  203. package/dist/session/directory-status.d.ts.map +1 -0
  204. package/dist/session/directory.d.ts +41 -0
  205. package/dist/session/directory.d.ts.map +1 -0
  206. package/dist/session/index.d.ts +16 -0
  207. package/dist/session/index.d.ts.map +1 -0
  208. package/dist/session/snapshot.d.ts +11 -0
  209. package/dist/session/snapshot.d.ts.map +1 -0
  210. package/dist/session/store.d.ts +96 -0
  211. package/dist/session/store.d.ts.map +1 -0
  212. package/dist/session/tool-timing.d.ts +14 -0
  213. package/dist/session/tool-timing.d.ts.map +1 -0
  214. package/dist/session/transport.d.ts +187 -0
  215. package/dist/session/transport.d.ts.map +1 -0
  216. package/dist/session/types.d.ts +73 -0
  217. package/dist/session/types.d.ts.map +1 -0
  218. package/dist/session/use-directory.d.ts +54 -0
  219. package/dist/session/use-directory.d.ts.map +1 -0
  220. package/dist/session/use-session-transport.d.ts +10 -0
  221. package/dist/session/use-session-transport.d.ts.map +1 -0
  222. package/dist/shared/hooks/use-stick-to-bottom-sentinel.d.ts +64 -0
  223. package/dist/shared/hooks/use-stick-to-bottom-sentinel.d.ts.map +1 -0
  224. package/dist/shared/lib/navigation.d.ts +20 -0
  225. package/dist/shared/lib/navigation.d.ts.map +1 -0
  226. package/dist/shared/lib/toast.d.ts +35 -0
  227. package/dist/shared/lib/toast.d.ts.map +1 -0
  228. package/dist/shared/lib/utils.d.ts +3 -0
  229. package/dist/shared/lib/utils.d.ts.map +1 -0
  230. package/dist/shared/ui/CopyButton.d.ts +6 -0
  231. package/dist/shared/ui/CopyButton.d.ts.map +1 -0
  232. package/dist/shared/ui/avatar.d.ts +9 -0
  233. package/dist/shared/ui/avatar.d.ts.map +1 -0
  234. package/dist/shared/ui/badge.d.ts +8 -0
  235. package/dist/shared/ui/badge.d.ts.map +1 -0
  236. package/dist/shared/ui/button.d.ts +11 -0
  237. package/dist/shared/ui/button.d.ts.map +1 -0
  238. package/dist/shared/ui/command.d.ts +10 -0
  239. package/dist/shared/ui/command.d.ts.map +1 -0
  240. package/dist/shared/ui/confirm-dialog.d.ts +17 -0
  241. package/dist/shared/ui/confirm-dialog.d.ts.map +1 -0
  242. package/dist/shared/ui/dropdown-menu.d.ts +9 -0
  243. package/dist/shared/ui/dropdown-menu.d.ts.map +1 -0
  244. package/dist/shared/ui/input.d.ts +3 -0
  245. package/dist/shared/ui/input.d.ts.map +1 -0
  246. package/dist/shared/ui/kbd.d.ts +3 -0
  247. package/dist/shared/ui/kbd.d.ts.map +1 -0
  248. package/dist/shared/ui/popover.d.ts +7 -0
  249. package/dist/shared/ui/popover.d.ts.map +1 -0
  250. package/dist/shared/ui/scroll-area.d.ts +5 -0
  251. package/dist/shared/ui/scroll-area.d.ts.map +1 -0
  252. package/dist/shared/ui/tabs.d.ts +7 -0
  253. package/dist/shared/ui/tabs.d.ts.map +1 -0
  254. package/dist/shared/ui/toast.d.ts +7 -0
  255. package/dist/shared/ui/toast.d.ts.map +1 -0
  256. package/dist/shared/ui/tooltip.d.ts +7 -0
  257. package/dist/shared/ui/tooltip.d.ts.map +1 -0
  258. package/dist/styles/base.css +49 -0
  259. package/dist/styles/components.css +206 -0
  260. package/dist/styles/effects.css +76 -0
  261. package/dist/styles/fonts.css +49 -0
  262. package/dist/styles/index.css +14 -0
  263. package/dist/styles/styles.test.ts +45 -0
  264. package/dist/styles/themes.css +33 -0
  265. package/dist/styles/tokens.css +245 -0
  266. package/dist/styles/tokens.test.ts +113 -0
  267. package/dist/test-setup.d.ts +29 -0
  268. package/dist/test-setup.d.ts.map +1 -0
  269. package/package.json +71 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../src/session/types.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,WAAW,EAAE,MAAM,uBAAuB,CAAC;AACzD,OAAO,KAAK,EACV,kBAAkB,EAClB,kBAAkB,EAClB,iBAAiB,EACjB,sBAAsB,EACtB,iBAAiB,EAClB,MAAM,yBAAyB,CAAC;AACjC,OAAO,KAAK,EACV,iBAAiB,IAAI,wBAAwB,EAC7C,cAAc,EACd,UAAU,EACX,MAAM,sBAAsB,CAAC;AAQ9B,MAAM,WAAW,UAAU;IACzB,CAAC,GAAG,EAAE,MAAM,GAAG,SAAS,CAAC;CAC1B;AAED,MAAM,MAAM,SAAS,GAAG,UAAU,GAAG,SAAS,EAAE,GAAG,OAAO,GAAG,IAAI,GAAG,MAAM,GAAG,MAAM,CAAC;AAEpF,MAAM,MAAM,iBAAiB,GAAG,wBAAwB,CAAC;AACzD,MAAM,MAAM,UAAU,GAAG,UAAU,CAAC;AACpC,MAAM,MAAM,cAAc,GAAG,cAAc,CAAC;AAC5C,MAAM,MAAM,eAAe,GAAG,OAAO,CAAC,UAAU,EAAE,cAAc,CAAC,CAAC;AAElE,MAAM,MAAM,mBAAmB,GAAG,GAAG,GAAG,GAAG,GAAG,GAAG,CAAC;AAElD,MAAM,WAAW,mBAAmB;IAClC,MAAM,EAAE,kBAAkB,GAAG,IAAI,CAAC;IAClC,YAAY,EAAE,MAAM,CAAC;CACtB;AAED,MAAM,WAAW,kBAAkB;IACjC,QAAQ,EAAE,mBAAmB,CAAC;IAC9B,YAAY,EAAE,MAAM,CAAC;IACrB,IAAI,EAAE,OAAO,CAAC;IACd;;;;;OAKG;IACH,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,2EAA2E;IAC3E,MAAM,CAAC,EAAE,iBAAiB,EAAE,CAAC;IAC7B,0EAA0E;IAC1E,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,8EAA8E;IAC9E,kBAAkB,CAAC,EAAE,MAAM,CAAC;IAC5B,4DAA4D;IAC5D,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,GAAG,EAAE,MAAM,CAAC;IACZ,QAAQ,EAAE,UAAU,EAAE,CAAC;IACvB,SAAS,EAAE,MAAM,CAAC;IAClB,8EAA8E;IAC9E,OAAO,EAAE,MAAM,CAAC;IAChB,iFAAiF;IACjF,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,8EAA8E;IAC9E,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE;QAAE,MAAM,EAAE,kBAAkB,GAAG,IAAI,CAAA;KAAE,CAAC;IAChD;;;;OAIG;IACH,cAAc,EAAE,sBAAsB,EAAE,CAAC;IACzC;;;OAGG;IACH,SAAS,EAAE,iBAAiB,EAAE,CAAC;CAChC;AAMD;;;;GAIG;AACH,MAAM,MAAM,qBAAqB,GAAG;IAAE,SAAS,EAAE,MAAM,CAAA;CAAE,GAAG,CACxD;IAAE,GAAG,EAAE,MAAM,CAAC;IAAC,KAAK,EAAE,MAAM,CAAA;CAAE,GAC9B;IAAE,WAAW,EAAE,WAAW,CAAA;CAAE,CAC/B,CAAC"}
@@ -0,0 +1,54 @@
1
+ import type { DirectoryView, ServerDirectory } from "@nuvin/session/client";
2
+ export { isServerOnline } from "./directory-status";
3
+ import { type DaemonMeta, type DirectorySource, type WebDirectoryEntry } from "./directory-source";
4
+ /** Reactive directory view for components. Always safe to call. */
5
+ export declare function useDirectory(): DirectoryView;
6
+ export declare function getDirectory(): ServerDirectory | null;
7
+ /** The retained active DirectorySource (cloud carries fetchTranscript; local does not). */
8
+ export declare function getActiveSource(): DirectorySource | null;
9
+ export declare function getDefaultSessionId(): string | undefined;
10
+ export declare function getDirectoryError(): Error | null;
11
+ export declare function getServerEntries(): WebDirectoryEntry[];
12
+ export declare function getServerEntry(name: string): WebDirectoryEntry | undefined;
13
+ /**
14
+ * Bootstrap the browser directory from GET /api/servers (spec §2). Idempotent;
15
+ * generation-guarded so a fetch that resolves after disconnect is dropped. Does
16
+ * NOT auto-attach — first-paint attach lives in the later transport phase
17
+ * (which reads getDefaultSessionId()). An optional `onReady` callback is
18
+ * invoked (inside the generation guard) after the directory is built, with the
19
+ * retained server entries and optional defaultSessionId — the transport uses
20
+ * this for first-paint default-attach (Phase 4).
21
+ */
22
+ export declare function connectDirectory(onReady?: (entries: WebDirectoryEntry[], defaultSessionId?: string) => void, source?: DirectorySource): void;
23
+ /**
24
+ * Re-run the active source and diff-apply (web spec §6: modest polling +
25
+ * /link success). Never tears down live links — Task 1's setServers.
26
+ */
27
+ export declare function refreshDirectory(): Promise<void>;
28
+ export declare function getDaemonMeta(): ReadonlyMap<string, DaemonMeta>;
29
+ export declare function useDaemonMeta(): ReadonlyMap<string, DaemonMeta>;
30
+ export declare function disconnectDirectory(): void;
31
+ /** Desired daemon names (roster ∩ refcounted). Test/inspection seam. */
32
+ export declare function desiredLinkNames(): string[];
33
+ /**
34
+ * Acquire a live directory link to `name` (refcount +1) and return a release
35
+ * fn (idempotent, refcount −1). Reconciliation is microtask-coalesced so a
36
+ * net-zero acquire/release burst does not flap the link (spec §5.2).
37
+ */
38
+ export declare function acquireDirectoryLink(name: string): () => void;
39
+ /** Acquire `name` for the calling component's lifetime (spec §5.2). */
40
+ export declare function useDirectoryLink(name: string | null | undefined): void;
41
+ /**
42
+ * Local <Picker> keeps a directory socket to every configured daemon (spec
43
+ * §5.3) — there is no local REST active-session source. Acquires all roster
44
+ * links while `enabled`; releases on unmount / roster change. No-op when
45
+ * disabled (cloud).
46
+ */
47
+ export declare function useAllDirectoryLinks(enabled: boolean): void;
48
+ /**
49
+ * Cloud <Picker> paints from REST GET /api/daemons (no sockets) refreshed on
50
+ * window-focus + a ~10s poll (spec §5.3). No-op when disabled (local, which
51
+ * keeps a live socket instead).
52
+ */
53
+ export declare function usePickerPoll(enabled: boolean, intervalMs?: number): void;
54
+ //# sourceMappingURL=use-directory.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-directory.d.ts","sourceRoot":"","sources":["../../src/session/use-directory.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,eAAe,EAAE,MAAM,uBAAuB,CAAC;AAG5E,OAAO,EAAE,cAAc,EAAE,MAAM,oBAAoB,CAAC;AAGpD,OAAO,EAEL,KAAK,UAAU,EACf,KAAK,eAAe,EACpB,KAAK,iBAAiB,EACvB,MAAM,oBAAoB,CAAC;AA+D5B,mEAAmE;AACnE,wBAAgB,YAAY,IAAI,aAAa,CAE5C;AAED,wBAAgB,YAAY,IAAI,eAAe,GAAG,IAAI,CAErD;AAED,2FAA2F;AAC3F,wBAAgB,eAAe,IAAI,eAAe,GAAG,IAAI,CAExD;AAED,wBAAgB,mBAAmB,IAAI,MAAM,GAAG,SAAS,CAExD;AAED,wBAAgB,iBAAiB,IAAI,KAAK,GAAG,IAAI,CAEhD;AAED,wBAAgB,gBAAgB,IAAI,iBAAiB,EAAE,CAEtD;AAED,wBAAgB,cAAc,CAAC,IAAI,EAAE,MAAM,GAAG,iBAAiB,GAAG,SAAS,CAE1E;AAED;;;;;;;;GAQG;AACH,wBAAgB,gBAAgB,CAC9B,OAAO,CAAC,EAAE,CAAC,OAAO,EAAE,iBAAiB,EAAE,EAAE,gBAAgB,CAAC,EAAE,MAAM,KAAK,IAAI,EAC3E,MAAM,CAAC,EAAE,eAAe,GACvB,IAAI,CA0BN;AAED;;;GAGG;AACH,wBAAsB,gBAAgB,IAAI,OAAO,CAAC,IAAI,CAAC,CAoBtD;AAED,wBAAgB,aAAa,IAAI,WAAW,CAAC,MAAM,EAAE,UAAU,CAAC,CAE/D;AAED,wBAAgB,aAAa,IAAI,WAAW,CAAC,MAAM,EAAE,UAAU,CAAC,CAE/D;AAED,wBAAgB,mBAAmB,IAAI,IAAI,CAS1C;AAoBD,wEAAwE;AACxE,wBAAgB,gBAAgB,IAAI,MAAM,EAAE,CAE3C;AAiBD;;;;GAIG;AACH,wBAAgB,oBAAoB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,IAAI,CAY7D;AAED,uEAAuE;AACvE,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,IAAI,GAAG,SAAS,GAAG,IAAI,CAKtE;AAOD;;;;;GAKG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,OAAO,GAAG,IAAI,CAa3D;AAED;;;;GAIG;AACH,wBAAgB,aAAa,CAAC,OAAO,EAAE,OAAO,EAAE,UAAU,SAAS,GAAG,IAAI,CAazE"}
@@ -0,0 +1,10 @@
1
+ import type { DirectorySource } from "./directory-source";
2
+ export type UseSessionTransportOptions = {
3
+ /** Cloud: the account-backed daemon source. Default: local /api/servers. */
4
+ source?: DirectorySource;
5
+ /** Cloud bootstrap gate (web spec §5): stay dormant until auth is ready.
6
+ * Default true (local). Flipping true→false disconnects (sign-out). */
7
+ enabled?: boolean;
8
+ };
9
+ export declare function useSessionTransport(options?: UseSessionTransportOptions): void;
10
+ //# sourceMappingURL=use-session-transport.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-session-transport.d.ts","sourceRoot":"","sources":["../../src/session/use-session-transport.ts"],"names":[],"mappings":"AAEA,OAAO,KAAK,EAAE,eAAe,EAAE,MAAM,oBAAoB,CAAC;AAG1D,MAAM,MAAM,0BAA0B,GAAG;IACvC,4EAA4E;IAC5E,MAAM,CAAC,EAAE,eAAe,CAAC;IACzB;2EACuE;IACvE,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB,CAAC;AAEF,wBAAgB,mBAAmB,CAAC,OAAO,GAAE,0BAA+B,GAAG,IAAI,CAOlF"}
@@ -0,0 +1,64 @@
1
+ /** Injectable observer constructors (test seam). Defaults to globalThis. */
2
+ export interface ObserverFactories {
3
+ ResizeObserver: typeof ResizeObserver;
4
+ }
5
+ /**
6
+ * Stick-to-bottom for a scrollable transcript.
7
+ *
8
+ * Takes the viewport / sentinel / content as ELEMENTS, not refs. The scroll
9
+ * container is an ancestor `<section>` owned by App, and the conversation only
10
+ * mounts after the picker-as-home landing — i.e. in a LATER commit than this
11
+ * hook's host (App, which never unmounts). Keying the subscription on a ref
12
+ * OBJECT (which never changes identity) meant the effect ran once at mount with
13
+ * a null element, early-returned, and NEVER re-subscribed when the section
14
+ * appeared — autoscroll was dead for the entire session. Keying on the element
15
+ * makes the effect (re)subscribe on the null → attached transition. Callers feed
16
+ * the elements via callback refs.
17
+ *
18
+ * Pin INTENT is tracked from `scroll` events, NOT from an IntersectionObserver.
19
+ * This is deliberate: an IntersectionObserver on a bottom sentinel cannot
20
+ * distinguish "the user scrolled up" from "content grew under a user who was at
21
+ * the bottom" — a single appended row taller than the grace zone pushes the
22
+ * sentinel out of view and would wrongly read as an unpin, so the next growth
23
+ * fails to follow (e.g. a tool row appearing after an approval). A scroll
24
+ * listener has no such ambiguity: content growth does not emit a scroll event,
25
+ * so a user sitting at the bottom stays pinned across an append or stream;
26
+ * scrolling up unpins; returning to the bottom re-pins.
27
+ *
28
+ * A ResizeObserver on the content wrapper re-sticks to the true bottom whenever
29
+ * content grows while pinned. Browsers fire one ResizeObserver entry on
30
+ * observe(), so a freshly-subscribed (just-opened) transcript lands at the
31
+ * bottom without an explicit initial scroll.
32
+ *
33
+ * The scroll handler unpins ONLY on a genuine user scroll-UP (scrollTop
34
+ * decreasing). This is load-bearing for fast streaming: our own programmatic
35
+ * stick fires a scroll event, but by the time it runs more text may have
36
+ * streamed in, so a naive `atBottom()` check would read "not at bottom" and
37
+ * unpin — auto-scroll would then die under fast output. Content growth and
38
+ * programmatic sticks only ever move scrollTop forward (down), never up, so
39
+ * keying unpin on a downward→upward reversal makes them incapable of unpinning.
40
+ *
41
+ * Pin intent is seeded to `true` on (re)subscribe: a fresh transcript mounts at
42
+ * scrollTop 0 with no scroll restoration in this app, so geometry would read
43
+ * "not at bottom" and wrongly suspend follow — a just-opened conversation must
44
+ * land at the bottom. Only a real user scroll-up suspends it thereafter.
45
+ *
46
+ * `resetKey` identifies the conversation being shown (the active session/tab
47
+ * key). The scroll container, content wrapper and sentinel are owned by App and
48
+ * NEVER remount when the user switches sessions — only the message data swaps —
49
+ * so the subscribe effect above does not re-run and pin intent is NOT re-seeded.
50
+ * Worse, the transcript is virtualized: on a switch the new session's rows are
51
+ * unmeasured, so `scrollHeight` momentarily reflects row-estimate totals; if the
52
+ * carried-over `scrollTop` lands past that estimated bottom the browser clamps
53
+ * it upward, tripping the scroll handler's `movedUp` unpin — auto-follow then
54
+ * dies and the view freezes at the previous session's pixel offset. The
55
+ * reset effect below force-follows the latest message whenever `resetKey`
56
+ * changes: it re-seeds pin intent to `true` (the load-bearing part — it lets the
57
+ * ResizeObserver keep re-sticking to the true bottom as rows measure and the
58
+ * estimated height settles) and does one synchronous stick (in a LAYOUT effect,
59
+ * before paint, so there is no visible frame at the stale offset). It also fires
60
+ * on the null → attached viewport transition, harmlessly duplicating the
61
+ * subscribe effect's land-at-bottom seed.
62
+ */
63
+ export declare function useStickToBottomSentinel(viewport: HTMLElement | null, sentinel: HTMLElement | null, content: HTMLElement | null, resetKey: string | null, factories?: Partial<ObserverFactories>): void;
64
+ //# sourceMappingURL=use-stick-to-bottom-sentinel.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"use-stick-to-bottom-sentinel.d.ts","sourceRoot":"","sources":["../../../src/shared/hooks/use-stick-to-bottom-sentinel.ts"],"names":[],"mappings":"AAEA,4EAA4E;AAC5E,MAAM,WAAW,iBAAiB;IAChC,cAAc,EAAE,OAAO,cAAc,CAAC;CACvC;AAWD;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;GAyDG;AACH,wBAAgB,wBAAwB,CACtC,QAAQ,EAAE,WAAW,GAAG,IAAI,EAC5B,QAAQ,EAAE,WAAW,GAAG,IAAI,EAC5B,OAAO,EAAE,WAAW,GAAG,IAAI,EAC3B,QAAQ,EAAE,MAAM,GAAG,IAAI,EACvB,SAAS,CAAC,EAAE,OAAO,CAAC,iBAAiB,CAAC,GACrC,IAAI,CA2EN"}
@@ -0,0 +1,20 @@
1
+ /**
2
+ * navigation.ts — route path builders + a router-less navigate registry.
3
+ *
4
+ * The registry lets non-React modules (session/transport.ts) move the URL:
5
+ * the router root registers its `navigate` on mount; before that (unit tests,
6
+ * router-less harnesses) appNavigate is a safe no-op. Leaf module: no imports,
7
+ * so session/ can depend on it without cycles.
8
+ */
9
+ export type AppNavigateOptions = {
10
+ replace?: boolean;
11
+ state?: unknown;
12
+ };
13
+ export type AppNavigateFn = (to: string, opts?: AppNavigateOptions) => void;
14
+ export declare function registerNavigate(fn: AppNavigateFn | null): void;
15
+ export declare function appNavigate(to: string, opts?: AppNavigateOptions): void;
16
+ export declare function homePath(): string;
17
+ export declare function daemonPath(daemon: string): string;
18
+ export declare function draftPath(daemon: string): string;
19
+ export declare function sessionPath(daemon: string, sessionId: string): string;
20
+ //# sourceMappingURL=navigation.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"navigation.d.ts","sourceRoot":"","sources":["../../../src/shared/lib/navigation.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AAEH,MAAM,MAAM,kBAAkB,GAAG;IAAE,OAAO,CAAC,EAAE,OAAO,CAAC;IAAC,KAAK,CAAC,EAAE,OAAO,CAAA;CAAE,CAAC;AACxE,MAAM,MAAM,aAAa,GAAG,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,kBAAkB,KAAK,IAAI,CAAC;AAI5E,wBAAgB,gBAAgB,CAAC,EAAE,EAAE,aAAa,GAAG,IAAI,GAAG,IAAI,CAE/D;AAED,wBAAgB,WAAW,CAAC,EAAE,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE,kBAAkB,GAAG,IAAI,CAEvE;AAED,wBAAgB,QAAQ,IAAI,MAAM,CAEjC;AAED,wBAAgB,UAAU,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAEjD;AAED,wBAAgB,SAAS,CAAC,MAAM,EAAE,MAAM,GAAG,MAAM,CAEhD;AAED,wBAAgB,WAAW,CAAC,MAAM,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,MAAM,CAErE"}
@@ -0,0 +1,35 @@
1
+ /**
2
+ * toast.ts — a tiny, framework-agnostic toast store + imperative `appToast()`.
3
+ *
4
+ * Ephemeral notifications are NOT navigation state. The old pattern routed them
5
+ * through `location.state.toast`, which pinned a message to a history entry with
6
+ * no lifecycle — so it never dismissed and re-appeared on every re-render. This
7
+ * store owns toasts instead. It's a LEAF module (no React, no other imports) so
8
+ * non-React callers — session/transport.ts — can fire a toast exactly the way
9
+ * they move the URL via `appNavigate`. `<ToastHost>` (shared/ui/toast.tsx)
10
+ * subscribes and renders them as Radix toasts, which provide auto-dismiss, a
11
+ * close button, and aria-live for free.
12
+ */
13
+ export type ToastVariant = "info" | "error";
14
+ export type ToastItem = {
15
+ id: number;
16
+ message: string;
17
+ variant: ToastVariant;
18
+ };
19
+ /** Subscribe to store changes (useSyncExternalStore contract). */
20
+ export declare function subscribeToasts(listener: () => void): () => void;
21
+ /** Current toasts — a stable reference until the next mutation (useSyncExternalStore getSnapshot). */
22
+ export declare function getToasts(): ToastItem[];
23
+ /**
24
+ * Fire a toast from anywhere (React or not). Returns the toast's id. Identical
25
+ * messages already on screen are coalesced (returns the existing id) so a
26
+ * StrictMode double-invoke or an effect that re-runs can't stack duplicates.
27
+ */
28
+ export declare function appToast(message: string, opts?: {
29
+ variant?: ToastVariant;
30
+ }): number;
31
+ /** Remove a toast — called when Radix reports it closed (timeout, swipe, or ×). */
32
+ export declare function dismissToast(id: number): void;
33
+ /** Drop every toast. `<ToastHost>` calls this on mount so a remount (and each test) starts clean. */
34
+ export declare function clearToasts(): void;
35
+ //# sourceMappingURL=toast.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"toast.d.ts","sourceRoot":"","sources":["../../../src/shared/lib/toast.ts"],"names":[],"mappings":"AAAA;;;;;;;;;;;GAWG;AAEH,MAAM,MAAM,YAAY,GAAG,MAAM,GAAG,OAAO,CAAC;AAC5C,MAAM,MAAM,SAAS,GAAG;IAAE,EAAE,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,YAAY,CAAA;CAAE,CAAC;AAU/E,kEAAkE;AAClE,wBAAgB,eAAe,CAAC,QAAQ,EAAE,MAAM,IAAI,GAAG,MAAM,IAAI,CAKhE;AAED,sGAAsG;AACtG,wBAAgB,SAAS,IAAI,SAAS,EAAE,CAEvC;AAED;;;;GAIG;AACH,wBAAgB,QAAQ,CAAC,OAAO,EAAE,MAAM,EAAE,IAAI,CAAC,EAAE;IAAE,OAAO,CAAC,EAAE,YAAY,CAAA;CAAE,GAAG,MAAM,CAOnF;AAED,mFAAmF;AACnF,wBAAgB,YAAY,CAAC,EAAE,EAAE,MAAM,GAAG,IAAI,CAK7C;AAED,qGAAqG;AACrG,wBAAgB,WAAW,IAAI,IAAI,CAIlC"}
@@ -0,0 +1,3 @@
1
+ import { type ClassValue } from "clsx";
2
+ export declare function cn(...inputs: ClassValue[]): string;
3
+ //# sourceMappingURL=utils.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../../src/shared/lib/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,KAAK,UAAU,EAAQ,MAAM,MAAM,CAAC;AAG7C,wBAAgB,EAAE,CAAC,GAAG,MAAM,EAAE,UAAU,EAAE,GAAG,MAAM,CAElD"}
@@ -0,0 +1,6 @@
1
+ export declare const TOOL_COPY_BTN_CLASS = "nv-btn-icon";
2
+ export declare function CopyButton({ text, title }: {
3
+ text: string;
4
+ title?: string;
5
+ }): import("react/jsx-runtime").JSX.Element;
6
+ //# sourceMappingURL=CopyButton.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CopyButton.d.ts","sourceRoot":"","sources":["../../../src/shared/ui/CopyButton.tsx"],"names":[],"mappings":"AAGA,eAAO,MAAM,mBAAmB,gBAAgB,CAAC;AA8BjD,wBAAgB,UAAU,CAAC,EAAE,IAAI,EAAE,KAAc,EAAE,EAAE;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,KAAK,CAAC,EAAE,MAAM,CAAA;CAAE,2CAqBpF"}
@@ -0,0 +1,9 @@
1
+ import * as AvatarPrimitive from "@radix-ui/react-avatar";
2
+ import type { ComponentProps } from "react";
3
+ export declare function Avatar({ className, ...props }: ComponentProps<typeof AvatarPrimitive.Root>): import("react/jsx-runtime").JSX.Element;
4
+ export declare function AvatarImage({ className, ...props }: ComponentProps<typeof AvatarPrimitive.Image>): import("react/jsx-runtime").JSX.Element;
5
+ export declare function AvatarFallback({ className, ...props }: ComponentProps<typeof AvatarPrimitive.Fallback>): import("react/jsx-runtime").JSX.Element;
6
+ export declare function AvatarPresence({ presence, className, ...props }: ComponentProps<"span"> & {
7
+ presence: "online" | "offline";
8
+ }): import("react/jsx-runtime").JSX.Element;
9
+ //# sourceMappingURL=avatar.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"avatar.d.ts","sourceRoot":"","sources":["../../../src/shared/ui/avatar.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,eAAe,MAAM,wBAAwB,CAAC;AAC1D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,OAAO,CAAC;AAI5C,wBAAgB,MAAM,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,cAAc,CAAC,OAAO,eAAe,CAAC,IAAI,CAAC,2CAU1F;AAED,wBAAgB,WAAW,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,cAAc,CAAC,OAAO,eAAe,CAAC,KAAK,CAAC,2CAOhG;AAED,wBAAgB,cAAc,CAAC,EAC7B,SAAS,EACT,GAAG,KAAK,EACT,EAAE,cAAc,CAAC,OAAO,eAAe,CAAC,QAAQ,CAAC,2CAOjD;AAED,wBAAgB,cAAc,CAAC,EAC7B,QAAQ,EACR,SAAS,EACT,GAAG,KAAK,EACT,EAAE,cAAc,CAAC,MAAM,CAAC,GAAG;IAAE,QAAQ,EAAE,QAAQ,GAAG,SAAS,CAAA;CAAE,2CAW7D"}
@@ -0,0 +1,8 @@
1
+ import { type VariantProps } from "class-variance-authority";
2
+ import type { ComponentProps } from "react";
3
+ export declare const badgeVariants: (props?: ({
4
+ tone?: "error" | "pending" | "tool" | "done" | "diff" | "run" | null | undefined;
5
+ } & import("class-variance-authority/types").ClassProp) | undefined) => string;
6
+ export type BadgeProps = ComponentProps<"span"> & VariantProps<typeof badgeVariants>;
7
+ export declare function Badge({ className, tone, ...props }: BadgeProps): import("react/jsx-runtime").JSX.Element;
8
+ //# sourceMappingURL=badge.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"badge.d.ts","sourceRoot":"","sources":["../../../src/shared/ui/badge.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAO,KAAK,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAClE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,OAAO,CAAC;AAI5C,eAAO,MAAM,aAAa;;8EAezB,CAAC;AAEF,MAAM,MAAM,UAAU,GAAG,cAAc,CAAC,MAAM,CAAC,GAAG,YAAY,CAAC,OAAO,aAAa,CAAC,CAAC;AAErF,wBAAgB,KAAK,CAAC,EAAE,SAAS,EAAE,IAAI,EAAE,GAAG,KAAK,EAAE,EAAE,UAAU,2CAE9D"}
@@ -0,0 +1,11 @@
1
+ import { type VariantProps } from "class-variance-authority";
2
+ import type { ComponentProps } from "react";
3
+ export declare const buttonVariants: (props?: ({
4
+ variant?: "ghost" | "danger" | "primary" | "accent" | null | undefined;
5
+ size?: "default" | "sm" | "icon" | null | undefined;
6
+ } & import("class-variance-authority/types").ClassProp) | undefined) => string;
7
+ export type ButtonProps = ComponentProps<"button"> & VariantProps<typeof buttonVariants> & {
8
+ asChild?: boolean;
9
+ };
10
+ export declare function Button({ className, variant, size, asChild, ...props }: ButtonProps): import("react/jsx-runtime").JSX.Element;
11
+ //# sourceMappingURL=button.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"button.d.ts","sourceRoot":"","sources":["../../../src/shared/ui/button.tsx"],"names":[],"mappings":"AACA,OAAO,EAAO,KAAK,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAClE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,OAAO,CAAC;AAI5C,eAAO,MAAM,cAAc;;;8EAsB1B,CAAC;AAEF,MAAM,MAAM,WAAW,GAAG,cAAc,CAAC,QAAQ,CAAC,GAChD,YAAY,CAAC,OAAO,cAAc,CAAC,GAAG;IAAE,OAAO,CAAC,EAAE,OAAO,CAAA;CAAE,CAAC;AAE9D,wBAAgB,MAAM,CAAC,EAAE,SAAS,EAAE,OAAO,EAAE,IAAI,EAAE,OAAe,EAAE,GAAG,KAAK,EAAE,EAAE,WAAW,2CAG1F"}
@@ -0,0 +1,10 @@
1
+ import { Command as CommandPrimitive } from "cmdk";
2
+ import type { ComponentProps } from "react";
3
+ export declare function Command({ className, ...props }: ComponentProps<typeof CommandPrimitive>): import("react/jsx-runtime").JSX.Element;
4
+ export declare function CommandInput({ className, ...props }: ComponentProps<typeof CommandPrimitive.Input>): import("react/jsx-runtime").JSX.Element;
5
+ export declare function CommandList({ className, ...props }: ComponentProps<typeof CommandPrimitive.List>): import("react/jsx-runtime").JSX.Element;
6
+ export declare function CommandEmpty(props: ComponentProps<typeof CommandPrimitive.Empty>): import("react/jsx-runtime").JSX.Element;
7
+ export declare function CommandGroup({ className, ...props }: ComponentProps<typeof CommandPrimitive.Group>): import("react/jsx-runtime").JSX.Element;
8
+ export declare function CommandItem({ className, ...props }: ComponentProps<typeof CommandPrimitive.Item>): import("react/jsx-runtime").JSX.Element;
9
+ export declare function CommandSeparator({ className, ...props }: ComponentProps<typeof CommandPrimitive.Separator>): import("react/jsx-runtime").JSX.Element;
10
+ //# sourceMappingURL=command.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"command.d.ts","sourceRoot":"","sources":["../../../src/shared/ui/command.tsx"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,IAAI,gBAAgB,EAAE,MAAM,MAAM,CAAC;AACnD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,OAAO,CAAC;AAI5C,wBAAgB,OAAO,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,cAAc,CAAC,OAAO,gBAAgB,CAAC,2CAUvF;AAED,wBAAgB,YAAY,CAAC,EAC3B,SAAS,EACT,GAAG,KAAK,EACT,EAAE,cAAc,CAAC,OAAO,gBAAgB,CAAC,KAAK,CAAC,2CAU/C;AAED,wBAAgB,WAAW,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,cAAc,CAAC,OAAO,gBAAgB,CAAC,IAAI,CAAC,2CAOhG;AAED,wBAAgB,YAAY,CAAC,KAAK,EAAE,cAAc,CAAC,OAAO,gBAAgB,CAAC,KAAK,CAAC,2CAIhF;AAED,wBAAgB,YAAY,CAAC,EAC3B,SAAS,EACT,GAAG,KAAK,EACT,EAAE,cAAc,CAAC,OAAO,gBAAgB,CAAC,KAAK,CAAC,2CAU/C;AAED,wBAAgB,WAAW,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,cAAc,CAAC,OAAO,gBAAgB,CAAC,IAAI,CAAC,2CAWhG;AAED,wBAAgB,gBAAgB,CAAC,EAC/B,SAAS,EACT,GAAG,KAAK,EACT,EAAE,cAAc,CAAC,OAAO,gBAAgB,CAAC,SAAS,CAAC,2CAOnD"}
@@ -0,0 +1,17 @@
1
+ import type { ReactNode } from "react";
2
+ export interface ConfirmDialogProps {
3
+ open: boolean;
4
+ title: string;
5
+ body: ReactNode;
6
+ confirmLabel?: string;
7
+ cancelLabel?: string;
8
+ destructive?: boolean;
9
+ /** Optional third action rendered on the LEFT (e.g. "Close & Delete"). */
10
+ extraLabel?: string;
11
+ onExtra?: () => void;
12
+ extraDestructive?: boolean;
13
+ onConfirm: () => void;
14
+ onCancel: () => void;
15
+ }
16
+ export declare function ConfirmDialog({ open, title, body, confirmLabel, cancelLabel, destructive, extraLabel, onExtra, extraDestructive, onConfirm, onCancel, }: ConfirmDialogProps): import("react/jsx-runtime").JSX.Element | null;
17
+ //# sourceMappingURL=confirm-dialog.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"confirm-dialog.d.ts","sourceRoot":"","sources":["../../../src/shared/ui/confirm-dialog.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,OAAO,CAAC;AAGvC,MAAM,WAAW,kBAAkB;IACjC,IAAI,EAAE,OAAO,CAAC;IACd,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,SAAS,CAAC;IAChB,YAAY,CAAC,EAAE,MAAM,CAAC;IACtB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,WAAW,CAAC,EAAE,OAAO,CAAC;IACtB,0EAA0E;IAC1E,UAAU,CAAC,EAAE,MAAM,CAAC;IACpB,OAAO,CAAC,EAAE,MAAM,IAAI,CAAC;IACrB,gBAAgB,CAAC,EAAE,OAAO,CAAC;IAC3B,SAAS,EAAE,MAAM,IAAI,CAAC;IACtB,QAAQ,EAAE,MAAM,IAAI,CAAC;CACtB;AAED,wBAAgB,aAAa,CAAC,EAC5B,IAAI,EACJ,KAAK,EACL,IAAI,EACJ,YAAwB,EACxB,WAAsB,EACtB,WAAmB,EACnB,UAAU,EACV,OAAO,EACP,gBAAwB,EACxB,SAAS,EACT,QAAQ,GACT,EAAE,kBAAkB,kDAiEpB"}
@@ -0,0 +1,9 @@
1
+ import * as DropdownMenuPrimitive from "@radix-ui/react-dropdown-menu";
2
+ import type { ComponentProps } from "react";
3
+ export declare const DropdownMenu: import("react").FC<DropdownMenuPrimitive.DropdownMenuProps>;
4
+ export declare const DropdownMenuTrigger: import("react").ForwardRefExoticComponent<DropdownMenuPrimitive.DropdownMenuTriggerProps & import("react").RefAttributes<HTMLButtonElement>>;
5
+ export declare function DropdownMenuContent({ className, sideOffset, ...props }: ComponentProps<typeof DropdownMenuPrimitive.Content>): import("react/jsx-runtime").JSX.Element;
6
+ export declare function DropdownMenuItem({ className, ...props }: ComponentProps<typeof DropdownMenuPrimitive.Item>): import("react/jsx-runtime").JSX.Element;
7
+ export declare function DropdownMenuSeparator({ className, ...props }: ComponentProps<typeof DropdownMenuPrimitive.Separator>): import("react/jsx-runtime").JSX.Element;
8
+ export declare function DropdownMenuLabel({ className, ...props }: ComponentProps<typeof DropdownMenuPrimitive.Label>): import("react/jsx-runtime").JSX.Element;
9
+ //# sourceMappingURL=dropdown-menu.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"dropdown-menu.d.ts","sourceRoot":"","sources":["../../../src/shared/ui/dropdown-menu.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,qBAAqB,MAAM,+BAA+B,CAAC;AACvE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,OAAO,CAAC;AAI5C,eAAO,MAAM,YAAY,6DAA6B,CAAC;AACvD,eAAO,MAAM,mBAAmB,8IAAgC,CAAC;AAEjE,wBAAgB,mBAAmB,CAAC,EAClC,SAAS,EACT,UAAc,EACd,GAAG,KAAK,EACT,EAAE,cAAc,CAAC,OAAO,qBAAqB,CAAC,OAAO,CAAC,2CAatD;AAED,wBAAgB,gBAAgB,CAAC,EAC/B,SAAS,EACT,GAAG,KAAK,EACT,EAAE,cAAc,CAAC,OAAO,qBAAqB,CAAC,IAAI,CAAC,2CAWnD;AAED,wBAAgB,qBAAqB,CAAC,EACpC,SAAS,EACT,GAAG,KAAK,EACT,EAAE,cAAc,CAAC,OAAO,qBAAqB,CAAC,SAAS,CAAC,2CAOxD;AAED,wBAAgB,iBAAiB,CAAC,EAChC,SAAS,EACT,GAAG,KAAK,EACT,EAAE,cAAc,CAAC,OAAO,qBAAqB,CAAC,KAAK,CAAC,2CAUpD"}
@@ -0,0 +1,3 @@
1
+ import type { ComponentProps } from "react";
2
+ export declare function Input({ className, ...props }: ComponentProps<"input">): import("react/jsx-runtime").JSX.Element;
3
+ //# sourceMappingURL=input.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"input.d.ts","sourceRoot":"","sources":["../../../src/shared/ui/input.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,OAAO,CAAC;AAI5C,wBAAgB,KAAK,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,cAAc,CAAC,OAAO,CAAC,2CAUrE"}
@@ -0,0 +1,3 @@
1
+ import type { ComponentProps } from "react";
2
+ export declare function Kbd({ className, ...props }: ComponentProps<"kbd">): import("react/jsx-runtime").JSX.Element;
3
+ //# sourceMappingURL=kbd.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"kbd.d.ts","sourceRoot":"","sources":["../../../src/shared/ui/kbd.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,OAAO,CAAC;AAI5C,wBAAgB,GAAG,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,cAAc,CAAC,KAAK,CAAC,2CAUjE"}
@@ -0,0 +1,7 @@
1
+ import * as PopoverPrimitive from "@radix-ui/react-popover";
2
+ import type { ComponentProps } from "react";
3
+ export declare const Popover: import("react").FC<PopoverPrimitive.PopoverProps>;
4
+ export declare const PopoverTrigger: import("react").ForwardRefExoticComponent<PopoverPrimitive.PopoverTriggerProps & import("react").RefAttributes<HTMLButtonElement>>;
5
+ export declare const PopoverAnchor: import("react").ForwardRefExoticComponent<PopoverPrimitive.PopoverAnchorProps & import("react").RefAttributes<HTMLDivElement>>;
6
+ export declare function PopoverContent({ className, align, sideOffset, ...props }: ComponentProps<typeof PopoverPrimitive.Content>): import("react/jsx-runtime").JSX.Element;
7
+ //# sourceMappingURL=popover.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"popover.d.ts","sourceRoot":"","sources":["../../../src/shared/ui/popover.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,gBAAgB,MAAM,yBAAyB,CAAC;AAC5D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,OAAO,CAAC;AAI5C,eAAO,MAAM,OAAO,mDAAwB,CAAC;AAC7C,eAAO,MAAM,cAAc,oIAA2B,CAAC;AACvD,eAAO,MAAM,aAAa,gIAA0B,CAAC;AAErD,wBAAgB,cAAc,CAAC,EAC7B,SAAS,EACT,KAAe,EACf,UAAc,EACd,GAAG,KAAK,EACT,EAAE,cAAc,CAAC,OAAO,gBAAgB,CAAC,OAAO,CAAC,2CAcjD"}
@@ -0,0 +1,5 @@
1
+ import * as ScrollAreaPrimitive from "@radix-ui/react-scroll-area";
2
+ import type { ComponentProps } from "react";
3
+ export declare function ScrollArea({ className, children, ...props }: ComponentProps<typeof ScrollAreaPrimitive.Root>): import("react/jsx-runtime").JSX.Element;
4
+ export declare function ScrollBar({ className, orientation, ...props }: ComponentProps<typeof ScrollAreaPrimitive.ScrollAreaScrollbar>): import("react/jsx-runtime").JSX.Element;
5
+ //# sourceMappingURL=scroll-area.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"scroll-area.d.ts","sourceRoot":"","sources":["../../../src/shared/ui/scroll-area.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,mBAAmB,MAAM,6BAA6B,CAAC;AACnE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,OAAO,CAAC;AAI5C,wBAAgB,UAAU,CAAC,EACzB,SAAS,EACT,QAAQ,EACR,GAAG,KAAK,EACT,EAAE,cAAc,CAAC,OAAO,mBAAmB,CAAC,IAAI,CAAC,2CAmBjD;AAED,wBAAgB,SAAS,CAAC,EACxB,SAAS,EACT,WAAwB,EACxB,GAAG,KAAK,EACT,EAAE,cAAc,CAAC,OAAO,mBAAmB,CAAC,mBAAmB,CAAC,2CAehE"}
@@ -0,0 +1,7 @@
1
+ import * as TabsPrimitive from "@radix-ui/react-tabs";
2
+ import type { ComponentProps } from "react";
3
+ export declare const Tabs: import("react").ForwardRefExoticComponent<TabsPrimitive.TabsProps & import("react").RefAttributes<HTMLDivElement>>;
4
+ export declare function TabsList({ className, ...props }: ComponentProps<typeof TabsPrimitive.List>): import("react/jsx-runtime").JSX.Element;
5
+ export declare function TabsTrigger({ className, ...props }: ComponentProps<typeof TabsPrimitive.Trigger>): import("react/jsx-runtime").JSX.Element;
6
+ export declare function TabsContent({ className, ...props }: ComponentProps<typeof TabsPrimitive.Content>): import("react/jsx-runtime").JSX.Element;
7
+ //# sourceMappingURL=tabs.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tabs.d.ts","sourceRoot":"","sources":["../../../src/shared/ui/tabs.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,aAAa,MAAM,sBAAsB,CAAC;AACtD,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,OAAO,CAAC;AAI5C,eAAO,MAAM,IAAI,oHAAqB,CAAC;AAEvC,wBAAgB,QAAQ,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,cAAc,CAAC,OAAO,aAAa,CAAC,IAAI,CAAC,2CAE1F;AAED,wBAAgB,WAAW,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,cAAc,CAAC,OAAO,aAAa,CAAC,OAAO,CAAC,2CAUhG;AAED,wBAAgB,WAAW,CAAC,EAAE,SAAS,EAAE,GAAG,KAAK,EAAE,EAAE,cAAc,CAAC,OAAO,aAAa,CAAC,OAAO,CAAC,2CAEhG"}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Mounts ONCE at the app root (RootLayout). Renders the toast store as Radix
3
+ * toasts: auto-dismiss, swipe-to-close, a close button, and an aria-live region
4
+ * all come from the primitive. Fire one from anywhere with `appToast()`.
5
+ */
6
+ export declare function ToastHost(): import("react/jsx-runtime").JSX.Element;
7
+ //# sourceMappingURL=toast.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"toast.d.ts","sourceRoot":"","sources":["../../../src/shared/ui/toast.tsx"],"names":[],"mappings":"AASA;;;;GAIG;AACH,wBAAgB,SAAS,4CAuCxB"}
@@ -0,0 +1,7 @@
1
+ import * as TooltipPrimitive from "@radix-ui/react-tooltip";
2
+ import type { ComponentProps } from "react";
3
+ export declare const TooltipProvider: import("react").FC<TooltipPrimitive.TooltipProviderProps>;
4
+ export declare const Tooltip: import("react").FC<TooltipPrimitive.TooltipProps>;
5
+ export declare const TooltipTrigger: import("react").ForwardRefExoticComponent<TooltipPrimitive.TooltipTriggerProps & import("react").RefAttributes<HTMLButtonElement>>;
6
+ export declare function TooltipContent({ className, sideOffset, ...props }: ComponentProps<typeof TooltipPrimitive.Content>): import("react/jsx-runtime").JSX.Element;
7
+ //# sourceMappingURL=tooltip.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"tooltip.d.ts","sourceRoot":"","sources":["../../../src/shared/ui/tooltip.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,gBAAgB,MAAM,yBAAyB,CAAC;AAC5D,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,OAAO,CAAC;AAI5C,eAAO,MAAM,eAAe,2DAA4B,CAAC;AACzD,eAAO,MAAM,OAAO,mDAAwB,CAAC;AAC7C,eAAO,MAAM,cAAc,oIAA2B,CAAC;AAEvD,wBAAgB,cAAc,CAAC,EAC7B,SAAS,EACT,UAAc,EACd,GAAG,KAAK,EACT,EAAE,cAAc,CAAC,OAAO,gBAAgB,CAAC,OAAO,CAAC,2CAajD"}
@@ -0,0 +1,49 @@
1
+ /* ============================================================
2
+ Nuvin Web — Terminal Brutalism
3
+ Sharp corners, corner brackets, CRT scanlines, monospace.
4
+ All effects derive from the 9 theme tokens (extendable).
5
+ ============================================================ */
6
+
7
+ :root {
8
+ --nv-sans: "Inter", -apple-system, system-ui, sans-serif;
9
+ --nv-mono:
10
+ ui-monospace, SFMono-Regular, "JetBrains Mono", "Fira Code", Menlo, Consolas, monospace;
11
+ --nv-scanline-alpha: 0.035;
12
+ --nv-grid-alpha: 0.06;
13
+ --nv-scanline-rgb: 255, 255, 255;
14
+ --nv-crt-blend: screen;
15
+ --nv-vignette-color: rgba(0, 0, 0, 0.55);
16
+ --nv-bracket-size: 12px;
17
+ --nv-bracket-thickness: 1px;
18
+ }
19
+
20
+ html,
21
+ body,
22
+ #root {
23
+ height: 100%;
24
+ background: var(--color-background);
25
+ color: var(--color-text);
26
+ font-family: var(--nv-mono);
27
+ -webkit-font-smoothing: antialiased;
28
+ text-rendering: geometricPrecision;
29
+ }
30
+
31
+ /* Scrollbar — matches the sidebar's Radix ScrollArea thumb
32
+ (6px, pill-rounded, --color-border-strong, no hover accent).
33
+ Inherited props (scrollbar-width/scrollbar-color) carry the same
34
+ look to Firefox and to every nested native scroll container. */
35
+ html {
36
+ scrollbar-width: thin;
37
+ scrollbar-color: var(--color-border-strong) transparent;
38
+ }
39
+ ::-webkit-scrollbar {
40
+ width: 6px;
41
+ height: 6px;
42
+ }
43
+ ::-webkit-scrollbar-track {
44
+ background: transparent;
45
+ }
46
+ ::-webkit-scrollbar-thumb {
47
+ background: var(--color-border-strong);
48
+ border-radius: 9999px;
49
+ }