@kortix/ui 0.14.7 → 0.14.9

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 (576) hide show
  1. package/README.md +2 -2
  2. package/dist/_vendor/kortix-shared.js +64 -4
  3. package/dist/_vendor/shared/app-config.d.ts +175 -0
  4. package/dist/_vendor/shared/channel-message.d.ts +34 -5
  5. package/dist/_vendor/shared/index.d.ts +1 -0
  6. package/dist/_vendor/shared/runtime-versions.d.ts +4 -0
  7. package/dist/_vendor/shared/space-slug.d.ts +37 -0
  8. package/dist/access/access/access-detail-shell.js +1 -1
  9. package/dist/access/access/access-dialog-share.js +4 -7
  10. package/dist/access/access/access-dialog.js +2 -1
  11. package/dist/access/access/principal-picker.d.ts +11 -0
  12. package/dist/access/access/principal-picker.js +9 -7
  13. package/dist/apps/app-preview-pool.d.ts +7 -2
  14. package/dist/apps/app-preview-pool.js +11 -5
  15. package/dist/apps/app-shared.d.ts +22 -15
  16. package/dist/apps/app-shared.js +37 -19
  17. package/dist/apps/index.d.ts +2 -2
  18. package/dist/apps/index.js +2 -2
  19. package/dist/artifacts/artifact-frame.d.ts +16 -0
  20. package/dist/artifacts/artifact-frame.js +51 -0
  21. package/dist/artifacts/artifact-session.d.ts +18 -0
  22. package/dist/artifacts/artifact-session.js +101 -0
  23. package/dist/artifacts/frame-policy.d.ts +30 -0
  24. package/dist/artifacts/frame-policy.js +61 -0
  25. package/dist/artifacts/index.d.ts +3 -0
  26. package/dist/artifacts/index.js +5 -0
  27. package/dist/browser/sandbox-browser-chrome.d.ts +4 -1
  28. package/dist/browser/sandbox-browser-chrome.js +2 -2
  29. package/dist/customize/agents/agent-cover-card.d.ts +17 -0
  30. package/dist/customize/agents/agent-cover-card.js +13 -0
  31. package/dist/customize/agents/agent-grant-pages.d.ts +5 -1
  32. package/dist/customize/agents/agent-grant-pages.js +30 -4
  33. package/dist/customize/agents/agent-page.js +8 -33
  34. package/dist/customize/agents/agent-policy-sets.d.ts +43 -0
  35. package/dist/customize/agents/agent-policy-sets.js +72 -0
  36. package/dist/customize/agents/agent-triggers-section.js +2 -1
  37. package/dist/customize/agents/agents-page.js +43 -49
  38. package/dist/customize/connectors/add-mcp/add-mcp-server-dialog.d.ts +6 -1
  39. package/dist/customize/connectors/add-mcp/add-mcp-server-dialog.js +10 -4
  40. package/dist/customize/connectors/agent-access.d.ts +35 -0
  41. package/dist/customize/connectors/agent-access.js +77 -0
  42. package/dist/customize/connectors/catalog/browse-sections.d.ts +2 -29
  43. package/dist/customize/connectors/catalog/browse-sections.js +7 -74
  44. package/dist/customize/connectors/catalog/catalog-entry.d.ts +18 -37
  45. package/dist/customize/connectors/catalog/catalog-entry.js +28 -40
  46. package/dist/customize/connectors/catalog/connector-browse.d.ts +3 -32
  47. package/dist/customize/connectors/catalog/connector-browse.js +19 -50
  48. package/dist/customize/connectors/catalog/use-catalog.d.ts +20 -59
  49. package/dist/customize/connectors/catalog/use-catalog.js +48 -175
  50. package/dist/customize/connectors/connector-identity.d.ts +9 -11
  51. package/dist/customize/connectors/connector-identity.js +13 -42
  52. package/dist/customize/connectors/connector-moves-banner.d.ts +2 -1
  53. package/dist/customize/connectors/connector-moves-banner.js +4 -6
  54. package/dist/customize/connectors/connector-routes.d.ts +21 -9
  55. package/dist/customize/connectors/connector-routes.js +29 -20
  56. package/dist/customize/connectors/connectors-page.js +53 -82
  57. package/dist/customize/connectors/detail/app-page.js +226 -98
  58. package/dist/customize/connectors/detail/computer-app-page.d.ts +16 -0
  59. package/dist/customize/connectors/detail/computer-app-page.js +39 -0
  60. package/dist/customize/connectors/detail/connector-accounts.js +3 -1
  61. package/dist/customize/connectors/detail/connector-advanced-tools.d.ts +4 -1
  62. package/dist/customize/connectors/detail/connector-advanced-tools.js +2 -2
  63. package/dist/customize/connectors/detail/connector-agents.d.ts +14 -0
  64. package/dist/customize/connectors/detail/connector-agents.js +69 -0
  65. package/dist/customize/connectors/detail/connector-detail-tabs.js +2 -1
  66. package/dist/customize/connectors/detail/connector-move-row.d.ts +8 -5
  67. package/dist/customize/connectors/detail/connector-move-row.js +23 -14
  68. package/dist/customize/connectors/detail/connector-page.d.ts +4 -1
  69. package/dist/customize/connectors/detail/connector-page.js +14 -10
  70. package/dist/customize/connectors/detail/connector-policy-sets.d.ts +28 -0
  71. package/dist/customize/connectors/detail/connector-policy-sets.js +203 -0
  72. package/dist/customize/connectors/detail/connector-settings.d.ts +4 -1
  73. package/dist/customize/connectors/detail/connector-settings.js +7 -3
  74. package/dist/customize/connectors/detail/connector-status.d.ts +19 -6
  75. package/dist/customize/connectors/detail/connector-status.js +34 -10
  76. package/dist/customize/connectors/detail/connector-tabs.d.ts +4 -1
  77. package/dist/customize/connectors/detail/connector-tabs.js +8 -2
  78. package/dist/customize/connectors/detail/connector-tools.d.ts +3 -3
  79. package/dist/customize/connectors/detail/connector-tools.js +105 -48
  80. package/dist/customize/connectors/detail/email-inboxes.d.ts +43 -0
  81. package/dist/customize/connectors/detail/email-inboxes.js +184 -0
  82. package/dist/customize/connectors/detail/provider-info.d.ts +1 -1
  83. package/dist/customize/connectors/detail/provider-info.js +2 -2
  84. package/dist/customize/connectors/detail/status-badge.d.ts +1 -1
  85. package/dist/customize/connectors/detail/status-badge.js +4 -5
  86. package/dist/customize/connectors/detail/use-connector-detail.d.ts +6 -0
  87. package/dist/customize/connectors/detail/use-connector-detail.js +14 -4
  88. package/dist/customize/connectors/install/install-dialog.d.ts +23 -0
  89. package/dist/customize/connectors/install/install-dialog.js +40 -0
  90. package/dist/customize/connectors/install/install.d.ts +13 -2
  91. package/dist/customize/connectors/install/install.js +9 -4
  92. package/dist/customize/connectors/install/use-install.d.ts +19 -2
  93. package/dist/customize/connectors/install/use-install.js +65 -37
  94. package/dist/customize/connectors/install/way-kind.d.ts +5 -0
  95. package/dist/customize/connectors/install/way-kind.js +16 -0
  96. package/dist/customize/connectors/provider-label.d.ts +2 -1
  97. package/dist/customize/connectors/provider-label.js +13 -3
  98. package/dist/customize/connectors/tools/pattern-rule-draft.d.ts +4 -0
  99. package/dist/customize/connectors/tools/pattern-rule-draft.js +12 -3
  100. package/dist/customize/connectors/tools/policy-sets.d.ts +27 -0
  101. package/dist/customize/connectors/tools/policy-sets.js +41 -0
  102. package/dist/customize/connectors/tools/tool-groups.d.ts +32 -9
  103. package/dist/customize/connectors/tools/tool-groups.js +78 -16
  104. package/dist/customize/connectors/tools/tool-policy-control.d.ts +11 -10
  105. package/dist/customize/connectors/tools/tool-policy-control.js +15 -16
  106. package/dist/customize/connectors/tools/tool-policy-labels.d.ts +6 -5
  107. package/dist/customize/connectors/tools/tool-policy-labels.js +17 -16
  108. package/dist/customize/connectors/tools/tool-policy.d.ts +50 -4
  109. package/dist/customize/connectors/tools/tool-policy.js +74 -8
  110. package/dist/customize/connectors/use-agent-access.d.ts +85 -0
  111. package/dist/customize/connectors/use-agent-access.js +72 -0
  112. package/dist/customize/migrate-to-v2/index.d.ts +1 -2
  113. package/dist/customize/migrate-to-v2/index.js +1 -2
  114. package/dist/customize/migrate-to-v2/migration-prompt.d.ts +12 -24
  115. package/dist/customize/migrate-to-v2/migration-prompt.js +34 -235
  116. package/dist/customize/migrate-to-v2/upgrade-defs.d.ts +1 -1
  117. package/dist/customize/migrate-to-v2/upgrade-defs.js +7 -6
  118. package/dist/customize/migrate-to-v2/upgrade-view.js +7 -7
  119. package/dist/customize/migrate-to-v2/use-run-upgrade.d.ts +3 -3
  120. package/dist/customize/providers/provider-accordion.js +17 -2
  121. package/dist/customize/sections/component/channel-access-panel.d.ts +16 -0
  122. package/dist/customize/sections/component/channel-access-panel.js +146 -0
  123. package/dist/customize/sections/component/channel-connect-hero.d.ts +3 -2
  124. package/dist/customize/sections/component/channel-connect-hero.js +3 -2
  125. package/dist/customize/sections/component/channel-hero-frame.d.ts +31 -0
  126. package/dist/customize/sections/component/channel-hero-frame.js +40 -0
  127. package/dist/customize/sections/component/channel-mocks.d.ts +6 -0
  128. package/dist/customize/sections/component/channel-mocks.js +46 -0
  129. package/dist/customize/sections/component/channel-row.d.ts +13 -3
  130. package/dist/customize/sections/component/channel-row.js +10 -4
  131. package/dist/customize/sections/component/email-connect-form.d.ts +27 -0
  132. package/dist/customize/sections/component/email-connect-form.js +183 -0
  133. package/dist/customize/sections/component/slack-connect-card.d.ts +7 -0
  134. package/dist/customize/sections/component/slack-connect-card.js +2 -3
  135. package/dist/customize/sections/component/teams-connect-card.d.ts +7 -0
  136. package/dist/customize/sections/component/teams-connect-card.js +2 -3
  137. package/dist/customize/sections/component/telegram-channel-row.js +16 -25
  138. package/dist/customize/sections/connectors-view.d.ts +1 -15
  139. package/dist/customize/sections/connectors-view.js +81 -314
  140. package/dist/customize/sections/view/agent-editor-catalog.js +5 -0
  141. package/dist/customize/sections/view/channels-view.d.ts +5 -1
  142. package/dist/customize/sections/view/channels-view.js +63 -81
  143. package/dist/customize/sections/view/gateway/gateway-overview.js +10 -2
  144. package/dist/customize/settings/tabs/experimental-tab.js +35 -16
  145. package/dist/customize/shared/catalog/catalog-empty-state.d.ts +1 -12
  146. package/dist/customize/shared/catalog/catalog-empty-state.js +3 -3
  147. package/dist/customize/shared/channels-switch-dialog.d.ts +18 -0
  148. package/dist/customize/shared/channels-switch-dialog.js +30 -0
  149. package/dist/customize/shared/feature-gate-screen.js +27 -9
  150. package/dist/customize/shared/new-entity-menu.js +4 -1
  151. package/dist/customize/shared/use-customize-prefetch.d.ts +2 -3
  152. package/dist/customize/shared/use-customize-prefetch.js +9 -27
  153. package/dist/customize/skills/skills-page.js +4 -5
  154. package/dist/customize/triggers/schedule/post-to-field.d.ts +18 -0
  155. package/dist/customize/triggers/schedule/post-to-field.js +49 -0
  156. package/dist/customize/triggers/schedule/schedule-copy.d.ts +10 -6
  157. package/dist/customize/triggers/schedule/schedule-copy.js +42 -11
  158. package/dist/customize/triggers/schedule/schedule-detail-sheet.js +2 -1
  159. package/dist/customize/triggers/schedule/then-fields.js +1 -5
  160. package/dist/customize/triggers/schedule/trigger-composer-logic.d.ts +22 -0
  161. package/dist/customize/triggers/schedule/trigger-composer-logic.js +25 -0
  162. package/dist/customize/triggers/schedule/trigger-composer.d.ts +5 -0
  163. package/dist/customize/triggers/schedule/trigger-composer.js +23 -14
  164. package/dist/customize/triggers/schedule/trigger-edit-logic.js +3 -0
  165. package/dist/customize/triggers/schedule/trigger-filter.js +1 -1
  166. package/dist/customize/triggers/schedule/trigger-runs-logic.d.ts +2 -2
  167. package/dist/customize/triggers/schedule/trigger-runs-panel.js +1 -0
  168. package/dist/customize/triggers/schedule/trigger-toast.js +2 -1
  169. package/dist/customize/triggers/schedule-view.js +9 -4
  170. package/dist/files/index.d.ts +1 -0
  171. package/dist/files/index.js +1 -0
  172. package/dist/files/project/change-request-recovery.d.ts +1 -26
  173. package/dist/files/project/change-request-recovery.js +1 -59
  174. package/dist/files/project/components/change-request-detail-dialog.js +13 -3
  175. package/dist/files/project/components/drive-explorer.js +15 -15
  176. package/dist/files/project/components/drive-toolbar.d.ts +16 -2
  177. package/dist/files/project/components/drive-toolbar.js +14 -5
  178. package/dist/files/project/hooks/use-change-request-recovery.js +3 -19
  179. package/dist/files/project/hooks/use-change-requests.d.ts +1 -0
  180. package/dist/files/project/hooks/use-change-requests.js +11 -2
  181. package/dist/files/renderers/image-frame.d.ts +46 -0
  182. package/dist/files/renderers/image-frame.js +59 -0
  183. package/dist/files/renderers/image-renderer.d.ts +11 -1
  184. package/dist/files/renderers/image-renderer.js +13 -3
  185. package/dist/files/renderers/pdf/pdf-clipboard.d.ts +2 -0
  186. package/dist/files/renderers/pdf/pdf-clipboard.js +21 -0
  187. package/dist/files/renderers/pdf/pdf-viewer.js +4 -2
  188. package/dist/files/renderers/show-content-renderer.d.ts +9 -1
  189. package/dist/files/renderers/show-content-renderer.js +56 -14
  190. package/dist/files/runtime/file-source.js +2 -0
  191. package/dist/files/runtime/hooks/use-binary-blob.d.ts +10 -1
  192. package/dist/files/runtime/hooks/use-binary-blob.js +10 -4
  193. package/dist/files/runtime/hooks/use-shared-image.d.ts +41 -0
  194. package/dist/files/runtime/hooks/use-shared-image.js +177 -0
  195. package/dist/files/viewer/file-content-renderer.d.ts +22 -1
  196. package/dist/files/viewer/file-content-renderer.js +50 -7
  197. package/dist/files/viewer/file-header.d.ts +7 -3
  198. package/dist/files/viewer/file-header.js +20 -11
  199. package/dist/files/viewer/file-preview-modal.d.ts +1 -1
  200. package/dist/files/viewer/file-preview-modal.js +10 -22
  201. package/dist/files/viewer/file-source.d.ts +13 -0
  202. package/dist/files/viewer/use-file-content-state.d.ts +2 -0
  203. package/dist/files/viewer/use-file-content-state.js +28 -10
  204. package/dist/files/viewer/viewer-actions.d.ts +3 -1
  205. package/dist/files/viewer/viewer-actions.js +2 -2
  206. package/dist/hooks/use-media-query.d.ts +1 -0
  207. package/dist/hooks/use-mobile.d.ts +5 -0
  208. package/dist/hooks/use-mobile.js +8 -0
  209. package/dist/i18n/en.d.ts +906 -70
  210. package/dist/i18n/en.js +924 -88
  211. package/dist/i18n/ui-catalog/localize-ui-catalog.js +4 -0
  212. package/dist/i18n/ui-catalog/remaining-ui-translation-keys.generated.js +15 -3
  213. package/dist/index.d.ts +2 -2
  214. package/dist/index.js +2 -2
  215. package/dist/internal/account-hub/account-settings-sidebar.js +1 -1
  216. package/dist/internal/account-hub/hub-sheet.d.ts +9 -1
  217. package/dist/internal/account-hub/hub-sheet.js +21 -5
  218. package/dist/internal/account-hub/sections.d.ts +1 -1
  219. package/dist/internal/account-hub/sections.js +2 -1
  220. package/dist/internal/auth/auth-card-shell.js +3 -3
  221. package/dist/internal/components/agent-mark.d.ts +38 -0
  222. package/dist/internal/components/agent-mark.js +41 -0
  223. package/dist/internal/connector-logo/connector-logo-source.d.ts +63 -0
  224. package/dist/internal/connector-logo/connector-logo-source.js +48 -0
  225. package/dist/internal/connector-logo/connector-logo.d.ts +39 -0
  226. package/dist/internal/connector-logo/connector-logo.js +56 -0
  227. package/dist/internal/connector-logo/connector-mark-files.d.ts +11 -0
  228. package/dist/internal/connector-logo/connector-mark-files.js +35 -0
  229. package/dist/internal/files/file-read-retry.d.ts +13 -0
  230. package/dist/internal/files/file-read-retry.js +23 -3
  231. package/dist/internal/files/session-drive-files.d.ts +5 -1
  232. package/dist/internal/files/session-drive-files.js +7 -2
  233. package/dist/internal/hooks/channels/use-channels-installations.d.ts +32 -5
  234. package/dist/internal/hooks/channels/use-channels-installations.js +55 -7
  235. package/dist/internal/hooks/channels/use-email-inboxes.d.ts +19 -0
  236. package/dist/internal/hooks/channels/use-email-inboxes.js +48 -0
  237. package/dist/internal/hooks/connectors/use-add-account.js +1 -1
  238. package/dist/internal/hooks/index.d.ts +1 -1
  239. package/dist/internal/hooks/index.js +1 -1
  240. package/dist/internal/hooks/projects/use-new-project-session.d.ts +9 -0
  241. package/dist/internal/hooks/projects/use-new-project-session.js +28 -12
  242. package/dist/internal/hooks/use-auto-scroll.d.ts +8 -1
  243. package/dist/internal/hooks/use-auto-scroll.js +4 -4
  244. package/dist/internal/icons/telegram.d.ts +5 -0
  245. package/dist/internal/icons/telegram.js +6 -1
  246. package/dist/internal/layout/nav-hover-card.d.ts +35 -0
  247. package/dist/internal/layout/nav-hover-card.js +84 -0
  248. package/dist/internal/layout/project-nav-row.d.ts +3 -1
  249. package/dist/internal/layout/project-nav-row.js +3 -2
  250. package/dist/internal/layout/project-page-header.d.ts +4 -2
  251. package/dist/internal/layout/project-page-header.js +4 -3
  252. package/dist/internal/layout/project-settings-nav.js +59 -2
  253. package/dist/internal/lib/browser-error-noise.d.ts +1 -1
  254. package/dist/internal/lib/browser-error-noise.js +1 -1
  255. package/dist/internal/lib/browser-noise/rules/injected-scripts.d.ts +7 -0
  256. package/dist/internal/lib/browser-noise/rules/injected-scripts.js +15 -0
  257. package/dist/internal/lib/manifest-version.d.ts +1 -1
  258. package/dist/internal/lib/manifest-version.js +2 -2
  259. package/dist/internal/lib/memory-href.d.ts +16 -0
  260. package/dist/internal/lib/memory-href.js +46 -0
  261. package/dist/internal/lib/pixel-mark.d.ts +33 -0
  262. package/dist/internal/lib/pixel-mark.js +152 -0
  263. package/dist/internal/lib/use-project-feature-flags.js +11 -11
  264. package/dist/internal/lib/utils/heic-convert.d.ts +1 -1
  265. package/dist/internal/lib/utils/heic-convert.js +3 -4
  266. package/dist/internal/lib/web-notifications.d.ts +20 -0
  267. package/dist/internal/lib/web-notifications.js +48 -4
  268. package/dist/internal/notifications/notification-bell.d.ts +4 -1
  269. package/dist/internal/notifications/notification-bell.js +2 -2
  270. package/dist/internal/selection/selection-bar.d.ts +2 -1
  271. package/dist/internal/selection/selection-bar.js +1 -1
  272. package/dist/internal/stores/file-preview-store.d.ts +29 -2
  273. package/dist/internal/stores/file-preview-store.js +19 -1
  274. package/dist/internal/stores/kortix-computer-store.js +3 -0
  275. package/dist/internal/stores/sidebar-nav-store.d.ts +1 -1
  276. package/dist/internal/stores/sidebar-nav-store.js +3 -1
  277. package/dist/lib/routes.d.ts +13 -1
  278. package/dist/lib/routes.js +13 -0
  279. package/dist/markdown/genui/components/inline.d.ts +1 -1
  280. package/dist/markdown/index.d.ts +2 -1
  281. package/dist/markdown/index.js +2 -1
  282. package/dist/markdown/setup-links/approval-decision.d.ts +1 -0
  283. package/dist/markdown/setup-links/approval-decision.js +6 -2
  284. package/dist/markdown/setup-links/connector-handshake.d.ts +3 -1
  285. package/dist/markdown/setup-links/connector-handshake.js +12 -10
  286. package/dist/markdown/setup-links/show-connect-hero.d.ts +28 -0
  287. package/dist/markdown/setup-links/show-connect-hero.js +91 -0
  288. package/dist/markdown/unified-markdown.js +5 -5
  289. package/dist/primitives/badge.d.ts +1 -1
  290. package/dist/primitives/badge.js +2 -0
  291. package/dist/primitives/disclosure.js +14 -2
  292. package/dist/primitives/empty-art.d.ts +12 -0
  293. package/dist/primitives/empty-art.js +11 -0
  294. package/dist/primitives/entity-avatar.d.ts +4 -1
  295. package/dist/primitives/entity-avatar.js +4 -2
  296. package/dist/primitives/mermaid-renderer.d.ts +2 -0
  297. package/dist/primitives/mermaid-renderer.js +21 -15
  298. package/dist/primitives/resizable.js +6 -1
  299. package/dist/primitives/resize-seam.d.ts +11 -0
  300. package/dist/primitives/resize-seam.js +12 -0
  301. package/dist/primitives/sidebar-panel.js +4 -7
  302. package/dist/primitives/tabs.d.ts +14 -1
  303. package/dist/primitives/tabs.js +1 -1
  304. package/dist/primitives/user-avatar.d.ts +3 -1
  305. package/dist/primitives/user-avatar.js +4 -2
  306. package/dist/providers/ui-provider.d.ts +10 -1
  307. package/dist/session/composer/ComposerAboveCard.d.ts +1 -1
  308. package/dist/session/composer/ComposerAboveCard.js +2 -2
  309. package/dist/session/composer/ComposerCard.d.ts +1 -1
  310. package/dist/session/composer/ComposerCard.js +3 -3
  311. package/dist/session/composer/agent-selector.d.ts +19 -1
  312. package/dist/session/composer/agent-selector.js +42 -12
  313. package/dist/session/composer/composer-agent-access.d.ts +15 -0
  314. package/dist/session/composer/composer-agent-access.js +27 -0
  315. package/dist/session/composer/composer-chat-input.d.ts +8 -2
  316. package/dist/session/composer/composer-chat-input.js +8 -6
  317. package/dist/session/composer/composer-logic.d.ts +16 -0
  318. package/dist/session/composer/composer-logic.js +12 -0
  319. package/dist/session/composer/composer-underbar.d.ts +3 -1
  320. package/dist/session/composer/composer-underbar.js +4 -3
  321. package/dist/session/composer/composer.d.ts +15 -1
  322. package/dist/session/composer/composer.js +19 -1
  323. package/dist/session/composer/context-usage.d.ts +5 -0
  324. package/dist/session/composer/context-usage.js +6 -1
  325. package/dist/session/composer/draft/composer-draft.d.ts +6 -2
  326. package/dist/session/composer/draft/composer-draft.js +5 -1
  327. package/dist/session/composer/reasoning-effort-selector.js +1 -1
  328. package/dist/session/composer/token-progress.js +4 -4
  329. package/dist/session/header/export-transcript-modal.d.ts +3 -2
  330. package/dist/session/header/export-transcript-modal.js +6 -3
  331. package/dist/session/models/chatgpt-connection-button.d.ts +11 -0
  332. package/dist/session/models/chatgpt-connection-button.js +54 -0
  333. package/dist/session/models/model-selector.d.ts +3 -1
  334. package/dist/session/models/model-selector.js +7 -3
  335. package/dist/session/models/use-model-connection-gate.d.ts +5 -5
  336. package/dist/session/models/use-model-connection-gate.js +5 -5
  337. package/dist/session/outcomes/jump-to-outcome.d.ts +10 -0
  338. package/dist/session/outcomes/jump-to-outcome.js +11 -0
  339. package/dist/session/outcomes/session-outcomes-bridge.d.ts +14 -0
  340. package/dist/session/outcomes/session-outcomes-bridge.js +12 -0
  341. package/dist/session/outcomes/session-outcomes-provider.d.ts +3 -1
  342. package/dist/session/outcomes/session-outcomes-provider.js +33 -3
  343. package/dist/session/panel/easy/app-preview.d.ts +10 -0
  344. package/dist/session/panel/easy/app-preview.js +31 -12
  345. package/dist/session/panel/easy/change-requests-card.d.ts +7 -0
  346. package/dist/session/panel/easy/change-requests-card.js +17 -0
  347. package/dist/session/panel/easy/easy-panel-logic.js +7 -1
  348. package/dist/session/panel/easy/easy-panel.js +5 -2
  349. package/dist/session/panel/easy/file-preview.js +1 -1
  350. package/dist/session/panel/easy/outputs-card.d.ts +2 -1
  351. package/dist/session/panel/easy/outputs-card.js +3 -2
  352. package/dist/session/panel/easy/plan-card.d.ts +2 -0
  353. package/dist/session/panel/easy/plan-card.js +2 -0
  354. package/dist/session/panel/mobile-tool-drawer.js +7 -1
  355. package/dist/session/panel/session-audit-panel.js +9 -2
  356. package/dist/session/panel/session-detail-panel.js +9 -3
  357. package/dist/session/panel/session-files-explorer.d.ts +9 -0
  358. package/dist/session/panel/session-files-explorer.js +12 -3
  359. package/dist/session/panel/session-panel-provider.d.ts +15 -1
  360. package/dist/session/panel/session-panel-provider.js +32 -7
  361. package/dist/session/panel/shared/derive-panels.d.ts +8 -1
  362. package/dist/session/panel/shared/derive-panels.js +12 -2
  363. package/dist/session/panel/shared/output-priority.js +2 -0
  364. package/dist/session/participants/session-participants.d.ts +5 -1
  365. package/dist/session/participants/session-participants.js +9 -2
  366. package/dist/session/prompts/approval-request.d.ts +5 -0
  367. package/dist/session/prompts/approval-request.js +7 -1
  368. package/dist/session/prompts/session-approval-review.d.ts +9 -0
  369. package/dist/session/prompts/session-approval-review.js +18 -0
  370. package/dist/session/status/session-error-banner.js +2 -49
  371. package/dist/session/status/session-starting-loader.d.ts +14 -2
  372. package/dist/session/status/session-starting-loader.js +16 -4
  373. package/dist/session/thread/after-first-prompt.d.ts +7 -0
  374. package/dist/session/thread/after-first-prompt.js +8 -0
  375. package/dist/session/thread/detect-command.d.ts +12 -0
  376. package/dist/session/thread/detect-command.js +20 -0
  377. package/dist/session/thread/plan-surface.d.ts +1 -0
  378. package/dist/session/thread/plan-surface.js +1 -0
  379. package/dist/session/thread/session-chat.d.ts +3 -1
  380. package/dist/session/thread/session-chat.js +377 -252
  381. package/dist/session/thread/session-context-metrics.d.ts +15 -0
  382. package/dist/session/thread/session-context-metrics.js +10 -1
  383. package/dist/session/thread/session-context-modal.d.ts +4 -2
  384. package/dist/session/thread/session-context-modal.js +16 -9
  385. package/dist/session/thread/session-thread.d.ts +3 -1
  386. package/dist/session/thread/session-thread.js +9 -2
  387. package/dist/session/thread/thread-boot-rows.d.ts +36 -0
  388. package/dist/session/thread/thread-boot-rows.js +89 -0
  389. package/dist/session/thread/transcript-rows.d.ts +31 -0
  390. package/dist/session/thread/transcript-rows.js +3 -0
  391. package/dist/session/thread/transcript.d.ts +4 -9
  392. package/dist/session/thread/transcript.js +119 -21
  393. package/dist/session/thread/turn-share.d.ts +16 -0
  394. package/dist/session/thread/turn-share.js +162 -0
  395. package/dist/session/tool/shared/infrastructure-contexts.d.ts +28 -0
  396. package/dist/session/tool/shared/infrastructure-contexts.js +31 -3
  397. package/dist/session/tool/tool-part-renderer.d.ts +5 -4
  398. package/dist/session/tool/tool-part-renderer.js +8 -3
  399. package/dist/session/tool/tools/apply-patch-tool.d.ts +1 -0
  400. package/dist/session/tool/tools/apply-patch-tool.js +1 -0
  401. package/dist/session/tool/tools/bash-tool.js +7 -6
  402. package/dist/session/tool/tools/channel-send-card.d.ts +1 -2
  403. package/dist/session/tool/tools/channel-send.d.ts +2 -1
  404. package/dist/session/tool/tools/codemode-tool.js +1 -1
  405. package/dist/session/tool/tools/connector-tools.js +1 -1
  406. package/dist/session/tool/tools/image-gen-tool.d.ts +1 -1
  407. package/dist/session/tool/tools/image-gen-tool.js +240 -53
  408. package/dist/session/tool/tools/pty-kill-tool.d.ts +1 -0
  409. package/dist/session/tool/tools/pty-kill-tool.js +1 -0
  410. package/dist/session/tool/tools/pty-read-tool.d.ts +2 -0
  411. package/dist/session/tool/tools/pty-read-tool.js +2 -0
  412. package/dist/session/tool/tools/pty-spawn-tool.d.ts +1 -0
  413. package/dist/session/tool/tools/pty-spawn-tool.js +1 -0
  414. package/dist/session/tool/tools/pty-write-tool.d.ts +1 -0
  415. package/dist/session/tool/tools/pty-write-tool.js +1 -0
  416. package/dist/session/tool/tools/show-tool.js +19 -8
  417. package/dist/session/tool/tools/todo-write-tool.d.ts +1 -0
  418. package/dist/session/tool/tools/todo-write-tool.js +1 -0
  419. package/dist/session/turn/channel-brand.d.ts +8 -3
  420. package/dist/session/turn/channel-brand.js +20 -4
  421. package/dist/session/turn/message-author-label.js +6 -2
  422. package/dist/session/turn/message-author.d.ts +8 -0
  423. package/dist/session/turn/message-author.js +24 -0
  424. package/dist/session/turn/message-row.d.ts +52 -0
  425. package/dist/session/turn/message-row.js +44 -0
  426. package/dist/session/turn/plan-anchor.d.ts +4 -1
  427. package/dist/session/turn/plan-anchor.js +4 -1
  428. package/dist/session/turn/plan-card.d.ts +7 -0
  429. package/dist/session/turn/plan-card.js +7 -0
  430. package/dist/session/turn/user-message.d.ts +7 -1
  431. package/dist/session/turn/user-message.js +21 -7
  432. package/dist/styles.css +1 -1
  433. package/dist/terminal/session-terminal-connect-bar.js +2 -1
  434. package/dist/workspace/home/access-requests-bell.d.ts +9 -2
  435. package/dist/workspace/home/access-requests-bell.js +20 -6
  436. package/dist/workspace/home/first-chat.d.ts +8 -21
  437. package/dist/workspace/home/first-chat.js +22 -72
  438. package/dist/workspace/index.d.ts +6 -0
  439. package/dist/workspace/index.js +6 -0
  440. package/dist/workspace/layout/project-home.d.ts +14 -2
  441. package/dist/workspace/layout/project-home.js +60 -21
  442. package/dist/workspace/layout/use-project-home-send.d.ts +9 -1
  443. package/dist/workspace/layout/use-project-home-send.js +82 -3
  444. package/dist/workspace/memory/body-doc.d.ts +17 -0
  445. package/dist/workspace/memory/body-doc.js +208 -0
  446. package/dist/workspace/memory/body-extensions.d.ts +38 -0
  447. package/dist/workspace/memory/body-extensions.js +103 -0
  448. package/dist/workspace/memory/company-memory-page.d.ts +8 -0
  449. package/dist/workspace/memory/company-memory-page.js +16 -0
  450. package/dist/workspace/memory/memory-all.d.ts +20 -0
  451. package/dist/workspace/memory/memory-all.js +27 -0
  452. package/dist/workspace/memory/memory-body.d.ts +19 -0
  453. package/dist/workspace/memory/memory-body.js +139 -0
  454. package/dist/workspace/memory/memory-empty.d.ts +13 -0
  455. package/dist/workspace/memory/memory-empty.js +28 -0
  456. package/dist/workspace/memory/memory-history.d.ts +27 -0
  457. package/dist/workspace/memory/memory-history.js +108 -0
  458. package/dist/workspace/memory/memory-labels.d.ts +16 -0
  459. package/dist/workspace/memory/memory-labels.js +47 -0
  460. package/dist/workspace/memory/memory-page-list.d.ts +34 -0
  461. package/dist/workspace/memory/memory-page-list.js +156 -0
  462. package/dist/workspace/memory/memory-reader.d.ts +58 -0
  463. package/dist/workspace/memory/memory-reader.js +123 -0
  464. package/dist/workspace/memory/memory-view.d.ts +21 -0
  465. package/dist/workspace/memory/memory-view.js +124 -0
  466. package/dist/workspace/memory/remember-popover.d.ts +19 -0
  467. package/dist/workspace/memory/remember-popover.js +61 -0
  468. package/dist/workspace/memory/remember-this.d.ts +12 -0
  469. package/dist/workspace/memory/remember-this.js +89 -0
  470. package/dist/workspace/memory/source-mark.d.ts +18 -0
  471. package/dist/workspace/memory/source-mark.js +79 -0
  472. package/dist/workspace/memory/used-memory-chip.d.ts +14 -0
  473. package/dist/workspace/memory/used-memory-chip.js +61 -0
  474. package/dist/workspace/new/advanced-fields.d.ts +2 -1
  475. package/dist/workspace/new/advanced-fields.js +2 -2
  476. package/dist/workspace/new/source-param.d.ts +1 -1
  477. package/dist/workspace/new/source-param.js +3 -1
  478. package/dist/workspace/new/use-create-workspace.d.ts +8 -10
  479. package/dist/workspace/new/use-create-workspace.js +3 -3
  480. package/dist/workspace/projects/onboarding/app-logo.d.ts +7 -2
  481. package/dist/workspace/projects/onboarding/app-logo.js +6 -13
  482. package/dist/workspace/projects/policies-panel.js +5 -3
  483. package/dist/workspace/review/review-actions.d.ts +4 -2
  484. package/dist/workspace/review/review-actions.js +8 -2
  485. package/dist/workspace/review/review-center.js +11 -7
  486. package/dist/workspace/review/review-detail.d.ts +10 -0
  487. package/dist/workspace/review/review-detail.js +101 -13
  488. package/dist/workspace/saved-session-skeleton.d.ts +2 -2
  489. package/dist/workspace/saved-session-skeleton.js +3 -3
  490. package/dist/workspace/session-workspace.js +15 -13
  491. package/dist/workspace/sessions/project-sessions-view.js +3 -2
  492. package/dist/workspace/sessions/sessions-toolbar.d.ts +3 -1
  493. package/dist/workspace/sessions/sessions-toolbar.js +2 -2
  494. package/dist/workspace/sidebar/footer/project-apps-nav.d.ts +5 -0
  495. package/dist/workspace/sidebar/footer/project-apps-nav.js +41 -2
  496. package/dist/workspace/sidebar/footer/project-artifacts-nav.d.ts +6 -0
  497. package/dist/workspace/sidebar/footer/project-artifacts-nav.js +22 -0
  498. package/dist/workspace/sidebar/footer/project-manifest-upgrade-alert.js +13 -13
  499. package/dist/workspace/sidebar/footer/project-memory-nav.d.ts +7 -0
  500. package/dist/workspace/sidebar/footer/project-memory-nav.js +19 -0
  501. package/dist/workspace/sidebar/nav-row-meta.js +14 -2
  502. package/dist/workspace/sidebar/project-nav-items.js +3 -0
  503. package/dist/workspace/sidebar/project-session-list.js +68 -56
  504. package/dist/workspace/sidebar/project-sidebar.js +9 -2
  505. package/dist/workspace/sidebar/project-spaces-nav.d.ts +8 -0
  506. package/dist/workspace/sidebar/project-spaces-nav.js +69 -0
  507. package/dist/workspace/sidebar/session-brief-hover-card.js +28 -1
  508. package/dist/workspace/sidebar/session-group-order.d.ts +9 -0
  509. package/dist/workspace/sidebar/session-group-order.js +25 -0
  510. package/dist/workspace/sidebar/session-group-sections.d.ts +62 -0
  511. package/dist/workspace/sidebar/session-group-sections.js +267 -0
  512. package/dist/workspace/sidebar/session-list-chrome.d.ts +28 -0
  513. package/dist/workspace/sidebar/session-list-chrome.js +50 -0
  514. package/dist/workspace/spaces/channel-glyph.d.ts +5 -0
  515. package/dist/workspace/spaces/channel-glyph.js +6 -0
  516. package/dist/workspace/spaces/channel-setup.d.ts +16 -0
  517. package/dist/workspace/spaces/channel-setup.js +105 -0
  518. package/dist/workspace/spaces/channels-onboarding.d.ts +13 -0
  519. package/dist/workspace/spaces/channels-onboarding.js +37 -0
  520. package/dist/workspace/spaces/create-channel-dialog.d.ts +16 -0
  521. package/dist/workspace/spaces/create-channel-dialog.js +158 -0
  522. package/dist/workspace/spaces/private-channels-not-in.d.ts +9 -0
  523. package/dist/workspace/spaces/private-channels-not-in.js +69 -0
  524. package/dist/workspace/spaces/space-agents.d.ts +10 -0
  525. package/dist/workspace/spaces/space-agents.js +10 -0
  526. package/dist/workspace/spaces/space-details-dialog.d.ts +20 -0
  527. package/dist/workspace/spaces/space-details-dialog.js +176 -0
  528. package/dist/workspace/spaces/space-link-label.d.ts +49 -0
  529. package/dist/workspace/spaces/space-link-label.js +73 -0
  530. package/dist/workspace/spaces/space-links.d.ts +19 -0
  531. package/dist/workspace/spaces/space-links.js +230 -0
  532. package/dist/workspace/spaces/space-members.d.ts +46 -0
  533. package/dist/workspace/spaces/space-members.js +182 -0
  534. package/dist/workspace/spaces/space-roster.d.ts +15 -0
  535. package/dist/workspace/spaces/space-roster.js +44 -0
  536. package/dist/workspace/spaces/space-threads-tab.d.ts +56 -0
  537. package/dist/workspace/spaces/space-threads-tab.js +156 -0
  538. package/dist/workspace/spaces/space-timeline-view.d.ts +254 -0
  539. package/dist/workspace/spaces/space-timeline-view.js +235 -0
  540. package/dist/workspace/spaces/space-timeline.d.ts +106 -0
  541. package/dist/workspace/spaces/space-timeline.js +183 -0
  542. package/dist/workspace/spaces/space-triggers.d.ts +13 -0
  543. package/dist/workspace/spaces/space-triggers.js +78 -0
  544. package/dist/workspace/spaces/space-view.d.ts +37 -0
  545. package/dist/workspace/spaces/space-view.js +436 -0
  546. package/package.json +31 -32
  547. package/skills/kortix-ui/SKILL.md +3 -3
  548. package/skills/kortix-ui/references/custom-dashboard.md +3 -3
  549. package/skills/kortix-ui/references/modules.md +28 -4
  550. package/skills/kortix-ui/references/theming.md +1 -1
  551. package/dist/customize/agents/agent-nav.prototype.d.ts +0 -35
  552. package/dist/customize/agents/agent-nav.prototype.js +0 -95
  553. package/dist/customize/connectors/catalog/merge-search.d.ts +0 -10
  554. package/dist/customize/connectors/catalog/merge-search.js +0 -26
  555. package/dist/customize/connectors/detail/find-easy-connect-app.d.ts +0 -29
  556. package/dist/customize/connectors/detail/find-easy-connect-app.js +0 -22
  557. package/dist/customize/migrate-to-v2/use-migrate-to-v2.d.ts +0 -9
  558. package/dist/customize/migrate-to-v2/use-migrate-to-v2.js +0 -24
  559. package/dist/customize/sections/connector-connection-header.d.ts +0 -36
  560. package/dist/customize/sections/connector-connection-header.js +0 -33
  561. package/dist/customize/sections/connector-connection-modal.d.ts +0 -34
  562. package/dist/customize/sections/connector-connection-modal.js +0 -72
  563. package/dist/customize/sections/discover-catalogue-card.d.ts +0 -19
  564. package/dist/customize/sections/discover-catalogue-card.js +0 -26
  565. package/dist/customize/sections/discover-catalogue-detail.d.ts +0 -15
  566. package/dist/customize/sections/discover-catalogue-detail.js +0 -24
  567. package/dist/customize/sections/discover-catalogue.d.ts +0 -17
  568. package/dist/customize/sections/discover-catalogue.js +0 -132
  569. package/dist/customize/sections/llm-provider/provider-access-menu.d.ts +0 -10
  570. package/dist/customize/sections/llm-provider/provider-access-menu.js +0 -23
  571. package/dist/files/project/components/drive-empty-art.d.ts +0 -2
  572. package/dist/files/project/components/drive-empty-art.js +0 -5
  573. package/dist/internal/hooks/use-media-query.d.ts +0 -2
  574. package/dist/internal/share/public-share-link-button.d.ts +0 -14
  575. package/dist/internal/share/public-share-link-button.js +0 -17
  576. /package/dist/{internal/hooks → hooks}/use-media-query.js +0 -0
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@kortix/ui",
3
- "version": "0.14.7",
3
+ "version": "0.14.9",
4
4
  "description": "Kortix UI: the shared React component library for apps/web, Kortix Apps and SDK hosts. Tailwind v4 classes, themed by CSS variables.",
5
5
  "type": "module",
6
6
  "license": "Elastic-2.0",
@@ -88,6 +88,10 @@
88
88
  "types": "./dist/apps/index.d.ts",
89
89
  "import": "./dist/apps/index.js"
90
90
  },
91
+ "./artifacts": {
92
+ "types": "./dist/artifacts/index.d.ts",
93
+ "import": "./dist/artifacts/index.js"
94
+ },
91
95
  "./avatar": {
92
96
  "types": "./dist/primitives/avatar.d.ts",
93
97
  "import": "./dist/primitives/avatar.js"
@@ -189,10 +193,6 @@
189
193
  "types": "./dist/customize/agents/agents-page.d.ts",
190
194
  "import": "./dist/customize/agents/agents-page.js"
191
195
  },
192
- "./customize/connectors/catalog/use-catalog": {
193
- "types": "./dist/customize/connectors/catalog/use-catalog.d.ts",
194
- "import": "./dist/customize/connectors/catalog/use-catalog.js"
195
- },
196
196
  "./customize/connectors/connector-routes": {
197
197
  "types": "./dist/customize/connectors/connector-routes.d.ts",
198
198
  "import": "./dist/customize/connectors/connector-routes.js"
@@ -233,6 +233,10 @@
233
233
  "types": "./dist/customize/sections/add-account-fields.d.ts",
234
234
  "import": "./dist/customize/sections/add-account-fields.js"
235
235
  },
236
+ "./customize/sections/component/email-connect-form": {
237
+ "types": "./dist/customize/sections/component/email-connect-form.d.ts",
238
+ "import": "./dist/customize/sections/component/email-connect-form.js"
239
+ },
236
240
  "./customize/sections/component/manifest-copy-block": {
237
241
  "types": "./dist/customize/sections/component/manifest-copy-block.d.ts",
238
242
  "import": "./dist/customize/sections/component/manifest-copy-block.js"
@@ -257,10 +261,6 @@
257
261
  "types": "./dist/customize/sections/component/telegram-channel-row.d.ts",
258
262
  "import": "./dist/customize/sections/component/telegram-channel-row.js"
259
263
  },
260
- "./customize/sections/connector-connection-form": {
261
- "types": "./dist/customize/sections/connector-connection-form.d.ts",
262
- "import": "./dist/customize/sections/connector-connection-form.js"
263
- },
264
264
  "./customize/sections/connector-oauth2": {
265
265
  "types": "./dist/customize/sections/connector-oauth2.d.ts",
266
266
  "import": "./dist/customize/sections/connector-oauth2.js"
@@ -273,10 +273,6 @@
273
273
  "types": "./dist/customize/sections/connector-oauth2-fields.d.ts",
274
274
  "import": "./dist/customize/sections/connector-oauth2-fields.js"
275
275
  },
276
- "./customize/sections/connectors-view": {
277
- "types": "./dist/customize/sections/connectors-view.d.ts",
278
- "import": "./dist/customize/sections/connectors-view.js"
279
- },
280
276
  "./customize/sections/gateway-view": {
281
277
  "types": "./dist/customize/sections/gateway-view.d.ts",
282
278
  "import": "./dist/customize/sections/gateway-view.js"
@@ -682,6 +678,10 @@
682
678
  "types": "./dist/primitives/empty.d.ts",
683
679
  "import": "./dist/primitives/empty.js"
684
680
  },
681
+ "./empty-art": {
682
+ "types": "./dist/primitives/empty-art.d.ts",
683
+ "import": "./dist/primitives/empty-art.js"
684
+ },
685
685
  "./empty-state": {
686
686
  "types": "./dist/primitives/empty-state.d.ts",
687
687
  "import": "./dist/primitives/empty-state.js"
@@ -911,6 +911,10 @@
911
911
  "types": "./dist/internal/capture/use-capture-area.d.ts",
912
912
  "import": "./dist/internal/capture/use-capture-area.js"
913
913
  },
914
+ "./internal/components/agent-mark": {
915
+ "types": "./dist/internal/components/agent-mark.d.ts",
916
+ "import": "./dist/internal/components/agent-mark.js"
917
+ },
914
918
  "./internal/components/hover-prefetch-link": {
915
919
  "types": "./dist/internal/components/hover-prefetch-link.d.ts",
916
920
  "import": "./dist/internal/components/hover-prefetch-link.js"
@@ -951,6 +955,10 @@
951
955
  "types": "./dist/internal/hooks/channels/use-channels-installations.d.ts",
952
956
  "import": "./dist/internal/hooks/channels/use-channels-installations.js"
953
957
  },
958
+ "./internal/hooks/channels/use-email-inboxes": {
959
+ "types": "./dist/internal/hooks/channels/use-email-inboxes.d.ts",
960
+ "import": "./dist/internal/hooks/channels/use-email-inboxes.js"
961
+ },
954
962
  "./internal/hooks/connectors/use-add-managed-account": {
955
963
  "types": "./dist/internal/hooks/connectors/use-add-managed-account.d.ts",
956
964
  "import": "./dist/internal/hooks/connectors/use-add-managed-account.js"
@@ -1023,10 +1031,6 @@
1023
1031
  "types": "./dist/internal/icons/home.d.ts",
1024
1032
  "import": "./dist/internal/icons/home.js"
1025
1033
  },
1026
- "./internal/icons/kortix": {
1027
- "types": "./dist/internal/icons/kortix.d.ts",
1028
- "import": "./dist/internal/icons/kortix.js"
1029
- },
1030
1034
  "./internal/icons/microsoft-teams": {
1031
1035
  "types": "./dist/internal/icons/microsoft-teams.d.ts",
1032
1036
  "import": "./dist/internal/icons/microsoft-teams.js"
@@ -1553,10 +1557,6 @@
1553
1557
  "types": "./dist/primitives/project-icon-picker.d.ts",
1554
1558
  "import": "./dist/primitives/project-icon-picker.js"
1555
1559
  },
1556
- "./providers/session-ids": {
1557
- "types": "./dist/providers/session-ids.d.ts",
1558
- "import": "./dist/providers/session-ids.js"
1559
- },
1560
1560
  "./providers/ui-provider": {
1561
1561
  "types": "./dist/providers/ui-provider.d.ts",
1562
1562
  "import": "./dist/providers/ui-provider.js"
@@ -1569,6 +1569,10 @@
1569
1569
  "types": "./dist/primitives/resizable.d.ts",
1570
1570
  "import": "./dist/primitives/resizable.js"
1571
1571
  },
1572
+ "./resize-seam": {
1573
+ "types": "./dist/primitives/resize-seam.d.ts",
1574
+ "import": "./dist/primitives/resize-seam.js"
1575
+ },
1572
1576
  "./scroll-area": {
1573
1577
  "types": "./dist/primitives/scroll-area.d.ts",
1574
1578
  "import": "./dist/primitives/scroll-area.js"
@@ -2017,14 +2021,6 @@
2017
2021
  "types": "./dist/workspace/projects/modal/project-icon-field.d.ts",
2018
2022
  "import": "./dist/workspace/projects/modal/project-icon-field.js"
2019
2023
  },
2020
- "./workspace/projects/onboarding/app-logo": {
2021
- "types": "./dist/workspace/projects/onboarding/app-logo.d.ts",
2022
- "import": "./dist/workspace/projects/onboarding/app-logo.js"
2023
- },
2024
- "./workspace/projects/onboarding/connect-app": {
2025
- "types": "./dist/workspace/projects/onboarding/connect-app.d.ts",
2026
- "import": "./dist/workspace/projects/onboarding/connect-app.js"
2027
- },
2028
2024
  "./workspace/projects/policies-panel": {
2029
2025
  "types": "./dist/workspace/projects/policies-panel.d.ts",
2030
2026
  "import": "./dist/workspace/projects/policies-panel.js"
@@ -2157,7 +2153,7 @@
2157
2153
  "@extend-ai/react-docx": "^0.7.5",
2158
2154
  "@extend-ai/react-xlsx": "0.13.4",
2159
2155
  "@glideapps/glide-data-grid": "6.0.4-alpha24",
2160
- "@kortix/llm-catalog": "0.14.7",
2156
+ "@kortix/llm-catalog": "0.14.9",
2161
2157
  "@lezer/highlight": "1.2.3",
2162
2158
  "@paper-design/shaders-react": "^0.0.76",
2163
2159
  "@phosphor-icons/react": "2.1.10",
@@ -2189,12 +2185,15 @@
2189
2185
  "@tiptap/extension-document": "3.30.5",
2190
2186
  "@tiptap/extension-floating-menu": "3.30.5",
2191
2187
  "@tiptap/extension-hard-break": "3.30.5",
2188
+ "@tiptap/extension-list": "3.30.5",
2192
2189
  "@tiptap/extension-paragraph": "3.30.5",
2193
2190
  "@tiptap/extension-placeholder": "3.30.5",
2191
+ "@tiptap/extension-table": "3.30.5",
2194
2192
  "@tiptap/extension-text": "3.30.5",
2195
2193
  "@tiptap/extensions": "3.30.5",
2196
2194
  "@tiptap/pm": "3.30.5",
2197
2195
  "@tiptap/react": "3.30.5",
2196
+ "@tiptap/starter-kit": "3.30.5",
2198
2197
  "@tiptap/suggestion": "3.30.5",
2199
2198
  "@uiw/codemirror-extensions-langs": "^4.23.10",
2200
2199
  "@uiw/codemirror-themes": "4.23.10",
@@ -2211,7 +2210,7 @@
2211
2210
  "date-fns": "^3.6.0",
2212
2211
  "diff": "^8.0.3",
2213
2212
  "frimousse": "^0.3.0",
2214
- "heic2any": "0.0.4",
2213
+ "heic-to": "1.6.7",
2215
2214
  "i18next": "^26.3.6",
2216
2215
  "jszip": "^3.10.1",
2217
2216
  "katex": "^0.18.7",
@@ -2246,7 +2245,7 @@
2246
2245
  "zustand": "^5.0.3"
2247
2246
  },
2248
2247
  "peerDependencies": {
2249
- "@kortix/sdk": "^0.14.7",
2248
+ "@kortix/sdk": "^0.14.9",
2250
2249
  "@tanstack/react-query": "^5.75.2",
2251
2250
  "@types/react": ">=18",
2252
2251
  "react": ">=19",
@@ -7,7 +7,7 @@ description: "Build React UI with @kortix/ui, the Kortix component library and t
7
7
 
8
8
  `@kortix/ui` is the one React component library for every Kortix surface: `apps/web`, Kortix Apps, the
9
9
  white-label demo and SDK customer apps. Components are Tailwind v4 class strings that read CSS variables.
10
- Docs: https://kortix.com/docs/sdk/ui. Live catalog: https://kortix.com/design-system.
10
+ Docs: https://kortix.com/docs/developers#kortix-ui. Live catalog: https://kortix.com/design-system.
11
11
 
12
12
  Install: `npm i @kortix/ui @kortix/sdk`, the same version of each (peers: `references/custom-dashboard.md`).
13
13
  Module entries and `@kortix/ui/theme` need 0.14.4+. Inside `kortix-ai/suna`: `"workspace:*"`. Never copy component source.
@@ -91,7 +91,7 @@ Theme with `@kortix/ui/theme`, never by forking a component: `themeToCss(theme)`
91
91
  | `@kortix/ui` (primitives, not for feature code: section 3) | `Dialog`, `DialogClose`, `DialogContent`, `DialogDescription`, `DialogFooter`, `DialogHeader`, `DialogOverlay`, `DialogPortal`, `DialogTitle`, `DialogTrigger`, `Tooltip`, `TooltipContent`, `TooltipProvider`, `TooltipTrigger` |
92
92
  | `@kortix/ui` (navigation) | `FilterBar`, `FilterBarItem`, `Tabs`, `TabsContent`, `TabsList`, `TabsListCompact`, `TabsTrigger`, `TabsTriggerCompact`, `tabsTriggerHeightVariants`, `tabsTriggerPaddingVariants`, `tabsTriggerTextVariants`, `TabsListType`, `TabsSize`, `TabsTriggerSize`, `TabsTriggerVariant`, `TabsUnderlineSize` |
93
93
  | `@kortix/ui` (conversation) | `Bubble`, `BubbleContent`, `BubbleGroup`, `BubbleReactions`, `bubbleVariants`, `Message`, `MessageAvatar`, `MessageContent`, `MessageFooter`, `MessageGroup`, `MessageHeader`, `Marker`, `MarkerContent`, `MarkerIcon`, `markerVariants` |
94
- | `@kortix/ui` (hooks, helpers) | `UiLink`, `UiImage`, `useUiViewer`, `UiViewer`, `UiHostComponents`, `UiPreviewUrlResolver`, `UiPreviewRequest`, `useDebounce`, `useIsMobile`, `useMediaQuery`, `useSlashFocus`, `lazyClient`, `spring`, `floatingZ`, `dialogContentZ`, `dialogOverlayZ`, `useDialogDepth`, `hasOpenFloatingLayer`, `hasOpenNestedDialog`, `DEFAULT_ICON_WEIGHT`, `ICON_WEIGHTS`, `SHIPPED_ICON_WEIGHTS`, `faviconUrlForHostname`, `setUiTelemetry`, `setUiHostEnv`, `setUiRoutes`, `uiRoutes`, `defaultUiRoutes`, `UiRoutes` |
94
+ | `@kortix/ui` (hooks, helpers) | `UiLink`, `UiImage`, `useUiViewer`, `UiViewer`, `UiHostComponents`, `UiPreviewUrlResolver`, `UiPreviewRequest`, `useDebounce`, `useIsMobile`, `useMediaQuery`, `useSlashFocus`, `lazyClient`, `spring`, `floatingZ`, `dialogContentZ`, `dialogOverlayZ`, `useDialogDepth`, `hasOpenFloatingLayer`, `hasOpenNestedDialog`, `DEFAULT_ICON_WEIGHT`, `ICON_WEIGHTS`, `SHIPPED_ICON_WEIGHTS`, `faviconUrlForHostname`, `setUiTelemetry`, `setUiHostEnv`, `setUiRoutes`, `uiRoutes`, `defaultUiRoutes`, `decodeSpaceSegment`, `UiRoutes` |
95
95
  | `@kortix/ui/theme` | `KortixTheme`, `themeToCss`, `themeToCssVars`, `ThemeScope`, `ThemeScopeProps`, `THEME_COLOR_VARS`, `ThemeColor`, `ThemeColors`, `ThemeCssVars`, `ThemeTextStep`, `ThemeShadowStep`, `ThemeDurationStep`, `ThemeEasing`, `WALLPAPERS`, `DEFAULT_WALLPAPER_ID`, `getWallpaperById`, `Wallpaper` |
96
96
  | `@kortix/ui/session` (whole thread) | `SessionThread`, `SessionThreadProps` |
97
97
  | `@kortix/ui/session` (blocks) | `UserMessage`, `ThrottledMarkdown`, `UnifiedMarkdown`, `UnifiedMarkdownProps`, `ToolPartRenderer`, `SessionChatInput`, `SessionChatInputProps`, `AgentSelector`, `ModelSelector`, `ModelSelectorProps`, `SessionPermissionPrompt`, `QuestionPrompt`, `QuestionPromptHandle`, `TurnErrorDisplay`, `SessionBusyIndicator`, `SessionStartingLoader` |
@@ -116,7 +116,7 @@ One entry per module. Its curated names are the public API (semver). Every name,
116
116
  | `@kortix/ui/terminal`, `@kortix/ui/browser` | The session shell; the sandbox browser | the runtime ids of a mounted `useSession` |
117
117
  | `@kortix/ui/markdown`, `@kortix/ui/genui` | Markdown with code, math, links; GenUI blocks | `<UnifiedMarkdown content trust="agent" />` |
118
118
  | `@kortix/ui/diff`, `@kortix/ui/changes` | One diff; a change list | `<DiffView before after />` |
119
- | `@kortix/ui/apps` | App frames, the frame pool, the App view model | none |
119
+ | `@kortix/ui/apps`, `@kortix/ui/artifacts` | App frames, the frame pool, the App view model; artifact frames and session cards | none |
120
120
  | `@kortix/ui/access`, `@kortix/ui/customize` | Sharing and roles; project configuration pages | `<ConnectorsPage projectId />` |
121
121
  | `@kortix/ui/theme`, `@kortix/ui/i18n`, `@kortix/ui/icons` | Theme; `useTranslations`, `useLocale` (next-intl signatures); glyphs | none |
122
122
 
@@ -201,7 +201,7 @@ A Next.js host passes `next/link` and `{ useRouter, usePathname, useSearchParams
201
201
 
202
202
  ## 5. The project shell
203
203
 
204
- Your sidebar chrome around Kortix's session list. Every URL the components link to comes from one route table, `setUiRoutes` (`@kortix/ui`), called once at module load. The defaults are Kortix's own paths: `project` `/projects/<id>`, `session` `/projects/<id>/sessions/<sessionId>`, `sessions` `/projects/<id>/sessions` (`?view=archived|deleted`), `files` `/projects/<id>/files`, `drive` `/projects/<id>/drive`, `apps` `/projects/<id>/apps`, `members` `/projects/<id>/members`, `sandboxSettings` `/projects/<id>/config?section=sandbox`, `customize` `/projects/<id>/customize/<page>` (agents, skills, connectors, triggers, reminders, models, secrets, review, settings). Return your own path for a page you serve elsewhere. Return `null` for a page you do not serve: every link to it is hidden. `project` and `session` cannot be null. This app serves the project
204
+ Your sidebar chrome around Kortix's session list. Every URL the components link to comes from one route table, `setUiRoutes` (`@kortix/ui`), called once at module load. The defaults are Kortix's own paths: `project` `/projects/<id>`, `session` `/projects/<id>/sessions/<sessionId>`, `sessions` `/projects/<id>/sessions` (`?view=archived|deleted`), `files` `/projects/<id>/files`, `drive` `/projects/<id>/drive`, `apps` `/projects/<id>/apps`, `members` `/projects/<id>/members`, `sandboxSettings` `/projects/<id>/config?section=sandbox`, `customize` `/projects/<id>/customize/<page>` (agents, skills, connectors, triggers, reminders, models, secrets, review, settings), `channel` `/projects/<id>/c/<slug>` and `dm` `/projects/<id>/dm/<agent>` (the sidebar links them while the project's `project_channels` flag is on). Return your own path for a page you serve elsewhere. Return `null` for a page you do not serve: every link to it is hidden. `project`, `session`, `channel` and `dm` cannot be null. This app serves the project
205
205
  home, its files and a session (section 7), so it maps the other pages to `null`.
206
206
 
207
207
  ```tsx
@@ -456,9 +456,9 @@ The modules compose at any depth (`modules.md` has every entry with its props an
456
456
  composed screens need the two scopes those screens mount: `KortixProjectProvider` (`@kortix/sdk/react`)
457
457
  and `SessionIdsProvider` (`@kortix/ui`) with the project and session ids.
458
458
  - To draw every part yourself: `useChatTurns` and `renderParts` from `@kortix/sdk/react`
459
- (https://kortix.com/docs/sdk/react#build-a-chat-ui).
459
+ (https://kortix.com/docs/developers#react).
460
460
  - Other data for a dashboard: `useProjectApps`, `useProjectTriggers`, `useChangeRequests`,
461
- `useGatewayOverview`, `useCan` (https://kortix.com/docs/sdk/react#hooks).
461
+ `useGatewayOverview`, `useCan` (https://kortix.com/docs/developers#react-hooks).
462
462
 
463
463
  ## 10. Verify
464
464
 
@@ -87,7 +87,9 @@ export function Answer({ text }: { text: string }) {
87
87
  }
88
88
  ```
89
89
 
90
- Names: `markdownPolicy`, `MarkdownPolicy`, `MarkdownTrust`, `MarkdownVariant`, `UnifiedMarkdown`, `UnifiedMarkdownProps`, `CopyOverlay`, `HighlightedCode`, `CopyButton`, `MarkdownWithFrontmatter`, `languageLabel`, `normalizeLanguage`
90
+ Code outside markdown: `CodeHighlight` (`code`, `language`) draws one highlighted block without the markdown parser; `INLINE_CODE` is the class string of an inline code chip.
91
+
92
+ Names: `markdownPolicy`, `MarkdownPolicy`, `MarkdownTrust`, `MarkdownVariant`, `UnifiedMarkdown`, `UnifiedMarkdownProps`, `CopyOverlay`, `CodeHighlight`, `HighlightedCode`, `INLINE_CODE`, `CopyButton`, `MarkdownWithFrontmatter`, `languageLabel`, `normalizeLanguage`
91
93
 
92
94
  ## `@kortix/ui/genui`
93
95
 
@@ -177,7 +179,7 @@ export function PreviewHost() {
177
179
  }
178
180
  ```
179
181
 
180
- Names: `saveDriveFile`, `useDismissDriveConflict`, `useDriveAvailability`, `useDriveConflicts`, `useDriveFolder`, `useFolderAccess`, `useFolderPrincipals`, `useInvalidateDrives`, `useProjectDrive`, `useShareFolder`, `useUnshareFolder`, `FilesStoreProvider`, `getFileIcon`, `FilePreviewHost`, `ChangeRequestDetailDialog`, `DiffRenderer`, `DriveExplorer`, `DriveUploadTray`, `FileExplorerPage`, `FileThumbnail`, `ProjectFilesProvider`, `useProjectContext`, `FileExplorerSourceProvider`, `ExplorerQueryResult`, `FileExplorerSource`, `gitRefExplorerSource`, `useChangeRequestRecovery`, `changeRequestKeys`, `openChangeRequestListQuery`, `useChangeRequestDiff`, `useChangeRequestMergePreview`, `useCloseChangeRequest`, `useMergeChangeRequest`, `useRequestChangesOnChangeRequest`, `useSelectedVersion`, `workspaceFileSource`, `useWorkspaceSearch`, `SandboxFileExplorer`
182
+ Names: `saveDriveFile`, `useDismissDriveConflict`, `useDriveAvailability`, `useDriveConflicts`, `useDriveFolder`, `useFolderAccess`, `useFolderPrincipals`, `useInvalidateDrives`, `useProjectDrive`, `useShareFolder`, `useUnshareFolder`, `FilesStoreProvider`, `getFileIcon`, `FilePreviewHost`, `ChangeRequestDetailDialog`, `DiffRenderer`, `DriveExplorer`, `DriveUploadTray`, `FileExplorerPage`, `FileThumbnail`, `ProjectFilesProvider`, `useProjectContext`, `FileExplorerSourceProvider`, `ExplorerQueryResult`, `FileExplorerSource`, `gitRefExplorerSource`, `useChangeRequestRecovery`, `changeRequestKeys`, `openChangeRequestListQuery`, `useChangeRequestDiff`, `useChangeRequestMergePreview`, `useCloseChangeRequest`, `useMergeChangeRequest`, `useRequestChangesOnChangeRequest`, `useSelectedVersion`, `workspaceFileSource`, `useWorkspaceSearch`, `SandboxFileExplorer`, `CodeEditor` (the CodeMirror editor, loaded as its own chunk on first render)
181
183
 
182
184
  ## `@kortix/ui/file-viewer`
183
185
 
@@ -256,6 +258,26 @@ export function AppLink({ url }: { url: string }) {
256
258
 
257
259
  Names: `AppPreview`, `AppPreviewOverlay`, `PREVIEW_SPINNER_DELAY_MS`, `PREVIEW_TILE_ASPECT`, `PREVIEW_VIEWPORT_HEIGHT`, `PREVIEW_VIEWPORT_WIDTH`, `framePlacement`, `previewScale`, `scheduleSlowPreview`, `ensureFrame`, `frameKey`, `framesKeepAlive`, `pruneFrames`, `reloadFrame`, `ANONYMOUS_MODES`, `DEPLOYMENT_COPY`, `appCan`, `appCommand`, `appHost`, `appStatus`, `appTabLabel`, `cardPreviewApp`, `childApps`, `deployNotice`, `gridApps`, `localizedAppCopy`, `isKortixAppUrl`
258
260
 
261
+ The frame pool: `ensureFrame` creates a parked frame, `claimFrame` (`key`, `slot`, `placement`) shows it in `slot` and returns the release, `restyleFrame` restyles the current claim, `useFrameStatus` (`key`) reads `loading`, `loaded` or `failed`; `FramePlacement` is a slot's class, style and `interactive`. The Apps page: `hiddenApps` (neither a card nor a tab), `appTriggers` (the triggers that call an App and the ones its events start), `backgroundSummary` (running, asleep, undeployed, external counts), `appSizeLabel` ("2 vCPU · 4 GB · 20 GB"), `DeployCommand` (`code`: a shell command with a copy button).
262
+
263
+ ## `@kortix/ui/artifacts`
264
+
265
+ Source: `src/artifacts/index.ts`. Kortix Artifacts in any host: the frame policy and link parsing (server-safe), the pooled page frame, and the session views. Artifact frames share the `@kortix/ui/apps` frame pool; their keys start with `ARTIFACT_FRAME_PREFIX`.
266
+
267
+ Props: `ArtifactFrame`: `frameKey` (`artifactFrameKey(artifact, version)`), `src`, `title`, `preview` (no input), `className`. `ShowArtifactCard`: `url`, `fallback` (drawn when the viewer cannot open it). `ArtifactPanelPreview`: `url`, `onClose`.
268
+
269
+ ```tsx
270
+ import { parseArtifactUrl } from '@kortix/ui/artifacts';
271
+
272
+ // A link to an artifact opens it in your viewer; any other link stays a link.
273
+ export function ArtifactLink({ url }: { url: string }) {
274
+ const artifact = parseArtifactUrl(url);
275
+ return <a href={url}>{artifact ? `Artifact ${artifact.artifactId}` : url}</a>;
276
+ }
277
+ ```
278
+
279
+ Names: `ARTIFACT_FRAME_ALLOW`, `ARTIFACT_FRAME_PREFIX`, `ARTIFACT_IFRAME_SANDBOX`, `artifactFrameKey`, `parseArtifactUrl`, `printArtifact` (a doc's print view in a hidden frame: Export as PDF), `ArtifactFrame`, `ensureArtifactFrame`, `ArtifactPanelPreview`, `ShowArtifactCard`
280
+
259
281
  ## `@kortix/ui/composer`
260
282
 
261
283
  Source: `src/session/composer/index.ts`. The message composer: drop-in inputs, chrome, tiptap editor parts and the send pipeline.
@@ -344,7 +366,7 @@ Mount: `SessionWorkspace` takes `session` (the `useSession` result): the thread
344
366
  Props:
345
367
  - `SessionWorkspace`: `session` (the `useSession` result, required), `children` (replaces the thread), `hideHeader`, `readOnly`, `className`.
346
368
  - `SessionLayout`: `sessionId` (runtime id), `projectId`, `projectSessionId`, `children` (the thread), `bootStage`, `transient`.
347
- - `ProjectHome`: `projectId`; `beforeSend` (runs first, throw to refuse); `onSend` + `busy` (replace the send).
369
+ - `ProjectHome`: `projectId`; `beforeSend` (runs first, throw to refuse); `onSend` + `busy` (replace the send); `onboarding` (opt in: a project not yet onboarded opens on the onboarding chat and sends "Onboard me" once a model is usable).
348
370
  - `useProjectHomeSend(projectId, { beforeSend })` returns `{ send, sending }`.
349
371
  - `ProjectSessionList`, `ProjectSessionsView`, `ProjectFilesView`: `projectId`. `ProjectSidebar`: `projectId`, `menu`, `onOpenSearch` (the header shows Search only with it); its Files, Apps and Customize rows read `projectId`, not the route.
350
372
 
@@ -375,7 +397,9 @@ export function Sessions({ projectId }: { projectId: string }) {
375
397
 
376
398
  Goals (behind the `goals` flag): `GoalStatusBadge` (a goal's status), `GoalHealthDot` (green running, orange needs attention, grey closed), `useGoalIssueText` (one sentence per health issue), `goalProgress` (met and total criteria), `goalOpenAsks` (asks waiting on a person), `goalNeedsYou` (an open ask or a health issue), `formatGoalTime` (the reminders time format), `goalHref` (the goal's page, or null), `useGoalClock` (the current time, re-read every 30 s).
377
399
 
378
- Names: `ProjectPageHeader`, `useCapabilityAccess`, `useProjectNavRows`, `SidebarToggle`, `activeCapabilityTab`, `agentHref`, `capabilityTabHref`, `channelsHref`, `remindersHref`, `reviewHref`, `detectManifestVersion`, `manifestFilename`, `manifestNeedsUpgrade`, `useProjectManifestVersion`, `ManifestVersion`, `CUSTOMIZE_SECTION_ACCESS`, `CUSTOMIZE_SECTION_GATE_ACTIONS`, `PROJECT_ACTIONS`, `isCustomizeSectionVisible`, `CustomizeSection`, `ProjectAction`, `usePermission`, `usePermissions`, `usePermissionsFor`, `PROJECT_PAGE_ACTIONS`, `useProjectCan`, `useProjectCans`, `useProjectPageCans`, `CanResult`, `formatFireTime`, `nearestFire`, `reminderTitle`, `scheduleLabel`, `ProjectHomeWallpaper`, `ProjectHomeWelcomeBody`, `InstantSessionShell`, `ProjectFilesView`, `ProjectHome`, `ProjectHomeSendOptions`, `useProjectHomeSend`, `UseProjectHomeSendOptions`, `SavedSessionSkeleton`, `SessionLayout`, `SessionWorkspace`, `SessionLayoutProps`, `SessionWorkspaceProps`, `ProjectSessionsView`, `ProjectSessionList`, `ProjectSidebar`, `ShareSessionModal`
400
+ Channels and memory (behind the `project_channels` flag): `SpaceView` (`projectId`, `target`: a `SpaceTarget`, `{ kind: 'channel', slug }` or `{ kind: 'dm', agentName }`; `beforeSend`; `renderFolder` draws a `SpaceFolder`, one space's Files tab; `renderApps`) is a channel or DM page with its threads, files, memory, apps, links and triggers. `ChannelGlyph` (`visibility`) is `#` or a lock. `agentLabel` (`name`) is an agent's display name. `MemoryView` (`projectId`, `layerKey`: `company` or a space id, `place`) is one memory layer's pages; `CompanyMemoryPage` (`projectId`) is the project's Company memory. `useMemoryPageHref` (`projectId`) returns `(layer: MemoryLayerRef, pageId) => href | null`: the page's link, null when the host serves no such page.
401
+
402
+ Names: `SpaceView`, `SpaceViewProps`, `SpaceTarget`, `SpaceFolder`, `ChannelGlyph`, `agentLabel`, `MemoryView`, `MemoryViewProps`, `CompanyMemoryPage`, `MemoryLayerRef`, `useMemoryPageHref`, `ProjectPageHeader`, `useCapabilityAccess`, `useProjectNavRows`, `SidebarToggle`, `activeCapabilityTab`, `agentHref`, `capabilityTabHref`, `channelsHref`, `remindersHref`, `reviewHref`, `detectManifestVersion`, `manifestFilename`, `manifestNeedsUpgrade`, `useProjectManifestVersion`, `ManifestVersion`, `CUSTOMIZE_SECTION_ACCESS`, `CUSTOMIZE_SECTION_GATE_ACTIONS`, `PROJECT_ACTIONS`, `isCustomizeSectionVisible`, `CustomizeSection`, `ProjectAction`, `usePermission`, `usePermissions`, `usePermissionsFor`, `PROJECT_PAGE_ACTIONS`, `useProjectCan`, `useProjectCans`, `useProjectPageCans`, `CanResult`, `formatFireTime`, `nearestFire`, `reminderTitle`, `scheduleLabel`, `ProjectHomeWallpaper`, `ProjectHomeWelcomeBody`, `InstantSessionShell`, `ProjectFilesView`, `ProjectHome`, `ProjectHomeSendOptions`, `useProjectHomeSend`, `UseProjectHomeSendOptions`, `SavedSessionSkeleton`, `SessionLayout`, `SessionWorkspace`, `SessionLayoutProps`, `SessionWorkspaceProps`, `ProjectSessionsView`, `ProjectSessionList`, `ProjectSidebar`, `ShareSessionModal`
379
403
 
380
404
  ## `@kortix/ui/access`
381
405
 
@@ -95,7 +95,7 @@ Shared values (both modes):
95
95
  | `durations.<step>`, `easing.<curve>` | `--duration-*`, `--ease-*` | Motion: `fast` … `slower`; `default`, `in`, `out`, `inOut` |
96
96
  | `vars` | any `--name` | Anything else |
97
97
 
98
- Defaults and the fixed values (scrims, 10–12px captions, a few keyframe durations): https://kortix.com/docs/sdk/ui#tokens.
98
+ Defaults and the fixed values (scrims, 10–12px captions, a few keyframe durations): https://kortix.com/docs/developers#tokens.
99
99
 
100
100
  ## 5. Rules
101
101
 
@@ -1,35 +0,0 @@
1
- import { type ReactNode } from 'react';
2
- export declare const PROTOTYPE_ENABLED: boolean;
3
- export declare const NAV_VARIANTS: readonly [{
4
- readonly key: "rail";
5
- }, {
6
- readonly key: "tabs";
7
- }, {
8
- readonly key: "groups";
9
- }, {
10
- readonly key: "inline";
11
- }];
12
- export type NavVariant = (typeof NAV_VARIANTS)[number]['key'];
13
- export declare function useNavVariant(): NavVariant;
14
- export interface NavItem {
15
- key: string;
16
- label: string;
17
- group: string;
18
- }
19
- interface NavProps {
20
- groups: {
21
- group: string;
22
- items: NavItem[];
23
- }[];
24
- section: string;
25
- href: (key: string) => string;
26
- /** The current value per topic — "All", "2 picked", the model name. */
27
- summaries?: Partial<Record<string, string>>;
28
- }
29
- export declare function GroupedUnderlineTabs({ groups, section, href }: NavProps): import("react").JSX.Element;
30
- export declare function GroupSwitchTabs({ groups, section, href }: NavProps): import("react").JSX.Element;
31
- export declare function InlineVerticalTabs({ groups, section, href, summaries, children, }: NavProps & {
32
- children: ReactNode;
33
- }): import("react").JSX.Element;
34
- export declare function PrototypeSwitcher(): import("react").JSX.Element | null;
35
- export {};
@@ -1,95 +0,0 @@
1
- 'use client';
2
- import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
3
- /**
4
- * PROTOTYPE — throwaway. Answers one question: what replaces the agent page's
5
- * left rail? Rendered on the real agent page, switched with `?variant=`:
6
- *
7
- * rail — today's left rail (the baseline; no param)
8
- * tabs — grouped underline tabs under the header, no rail
9
- * groups — General / Access / Runtime switch + that group's tabs
10
- * inline — vertical tabs beside the content column, each with its value
11
- *
12
- * Read-only navigation over the same `?section=` links; nothing here mutates.
13
- * Once a variant wins, fold it into `agent-page.tsx` properly and delete this
14
- * file and the switcher. Dev builds only (`PROTOTYPE_ENABLED`).
15
- */
16
- import { CaretLeftIcon, CaretRightIcon } from '@phosphor-icons/react';
17
- import { useCallback, useEffect } from 'react';
18
- import { useTranslations } from '../../i18n/index.js';
19
- import { cn } from '../../internal/lib/utils.js';
20
- import { Tabs, TabsList, TabsTrigger } from '../../primitives/tabs.js';
21
- import { UiLink as Link, useUiPathname as usePathname, useUiRouter as useRouter, useUiSearchParams as useSearchParams, } from '../../providers/ui-provider.js';
22
- export const PROTOTYPE_ENABLED = process.env.NODE_ENV !== 'production';
23
- export const NAV_VARIANTS = [{ key: 'rail' }, { key: 'tabs' }, { key: 'groups' }, { key: 'inline' }];
24
- export function useNavVariant() {
25
- const raw = useSearchParams().get('variant');
26
- if (!PROTOTYPE_ENABLED)
27
- return 'rail';
28
- return NAV_VARIANTS.some((v) => v.key === raw) ? raw : 'rail';
29
- }
30
- /** `?section=` link that keeps `?variant=` so switching topics stays in the variant. */
31
- function useVariantHref(href) {
32
- const variant = useSearchParams().get('variant');
33
- return (key) => (variant ? `${href(key)}&variant=${variant}` : href(key));
34
- }
35
- // ─── tabs: grouped underline tabs ──────────────────────────────────────────
36
- export function GroupedUnderlineTabs({ groups, section, href }) {
37
- const to = useVariantHref(href);
38
- return (_jsx("nav", { className: "border-border/60 flex shrink-0 items-end gap-8 overflow-x-auto border-b px-5 pt-1", children: groups.map((g) => (_jsxs("div", { className: "flex shrink-0 flex-col gap-1", children: [_jsx("span", { className: "text-muted-foreground px-2 text-xs", children: g.group }), _jsx(Tabs, { value: section, children: _jsx(TabsList, { type: "underline", className: "h-auto gap-1 border-b-0", children: g.items.map((item) => (_jsx(TabsTrigger, { value: item.key, asChild: true, className: "w-fit flex-none px-2", children: _jsx(Link, { href: to(item.key), prefetch: true, children: item.label }) }, item.key))) }) })] }, g.group))) }));
39
- }
40
- // ─── groups: group switch + sub tabs ───────────────────────────────────────
41
- export function GroupSwitchTabs({ groups, section, href }) {
42
- const to = useVariantHref(href);
43
- const active = groups.find((g) => g.items.some((i) => i.key === section)) ?? groups[0];
44
- return (_jsxs("nav", { className: "border-border/60 flex shrink-0 items-center gap-5 overflow-x-auto border-b px-5 py-2", children: [_jsx(Tabs, { value: active?.group, children: _jsx(TabsList, { children: groups.map((g) => (_jsx(TabsTrigger, { value: g.group, asChild: true, className: "w-fit flex-none", children: _jsx(Link, { href: to(g.items[0].key), prefetch: true, children: g.group }) }, g.group))) }) }), _jsx(Tabs, { value: section, children: _jsx(TabsList, { type: "underline", className: "h-auto gap-1 border-b-0", children: active?.items.map((item) => (_jsx(TabsTrigger, { value: item.key, asChild: true, className: "w-fit flex-none px-2", children: _jsx(Link, { href: to(item.key), prefetch: true, children: item.label }) }, item.key))) }) })] }));
45
- }
46
- // ─── inline: vertical tabs beside the content, with values ────────────────
47
- export function InlineVerticalTabs({ groups, section, href, summaries, children, }) {
48
- const to = useVariantHref(href);
49
- return (_jsxs("div", { className: "mx-auto flex w-full max-w-5xl items-start gap-14 px-4 py-10 pb-32 lg:py-14", children: [_jsx("nav", { className: "sticky top-0 flex w-52 shrink-0 flex-col gap-4", children: groups.map((g) => (_jsxs("div", { className: "flex flex-col gap-0.5", children: [_jsx("span", { className: "text-muted-foreground px-2.5 pb-1 text-xs", children: g.group }), g.items.map((item) => {
50
- const isActive = item.key === section;
51
- return (_jsxs(Link, { href: to(item.key), prefetch: true, "aria-current": isActive ? 'page' : undefined, className: cn('flex items-center justify-between gap-3 rounded-md px-2.5 py-1.5 text-sm transition-none', isActive
52
- ? 'bg-active text-foreground font-medium'
53
- : 'text-muted-foreground hover:bg-hover hover:text-foreground'), children: [_jsx("span", { className: "truncate", children: item.label }), summaries?.[item.key] ? (_jsx("span", { className: "text-muted-foreground shrink-0 text-xs font-normal tabular-nums", children: summaries[item.key] })) : null] }, item.key));
54
- })] }, g.group))) }), _jsx("div", { className: "min-w-0 max-w-2xl flex-1", children: children })] }));
55
- }
56
- // ─── the floating switcher ────────────────────────────────────────────────
57
- export function PrototypeSwitcher() {
58
- const router = useRouter();
59
- const pathname = usePathname();
60
- const search = useSearchParams();
61
- const current = useNavVariant();
62
- const t = useTranslations('agentNavPrototype');
63
- const labels = {
64
- rail: t('variantRail'),
65
- tabs: t('variantTabs'),
66
- groups: t('variantGroups'),
67
- inline: t('variantInline'),
68
- };
69
- const index = NAV_VARIANTS.findIndex((v) => v.key === current);
70
- const go = useCallback((step) => {
71
- const next = NAV_VARIANTS[(index + step + NAV_VARIANTS.length) % NAV_VARIANTS.length];
72
- const params = new URLSearchParams(search.toString());
73
- if (next.key === 'rail')
74
- params.delete('variant');
75
- else
76
- params.set('variant', next.key);
77
- router.replace(`${pathname}?${params.toString()}`, { scroll: false });
78
- }, [index, pathname, router, search]);
79
- useEffect(() => {
80
- const onKey = (event) => {
81
- const target = event.target;
82
- if (target?.closest('input, textarea, select, [contenteditable="true"]'))
83
- return;
84
- if (event.key === 'ArrowLeft')
85
- go(-1);
86
- if (event.key === 'ArrowRight')
87
- go(1);
88
- };
89
- window.addEventListener('keydown', onKey);
90
- return () => window.removeEventListener('keydown', onKey);
91
- }, [go]);
92
- if (!PROTOTYPE_ENABLED)
93
- return null;
94
- return (_jsx("div", { className: "pointer-events-none fixed inset-x-0 bottom-20 z-50 flex justify-center", children: _jsxs("div", { className: "bg-foreground text-background pointer-events-auto flex items-center gap-1 rounded-full p-1 shadow-lg", children: [_jsx("button", { type: "button", "aria-label": t('previousVariant'), onClick: () => go(-1), className: "flex size-7 items-center justify-center rounded-full hover:bg-background/15", children: _jsx(CaretLeftIcon, { className: "size-3.5" }) }), _jsxs("span", { className: "min-w-56 px-2 text-center text-xs tabular-nums", children: [String.fromCharCode(65 + index), " \u00B7 ", labels[NAV_VARIANTS[index].key]] }), _jsx("button", { type: "button", "aria-label": t('nextVariant'), onClick: () => go(1), className: "flex size-7 items-center justify-center rounded-full hover:bg-background/15", children: _jsx(CaretRightIcon, { className: "size-3.5" }) })] }) }));
95
- }
@@ -1,10 +0,0 @@
1
- import { type CatalogEntry } from './catalog-entry.js';
2
- /**
3
- * One search result list from both catalogues.
4
- *
5
- * Managed results keep their order. An app both list shows once, as its
6
- * API/MCP entry (MCP is the default way to connect) with the managed logo,
7
- * which is sharp where the catalogue's favicon is not. API/MCP-only apps
8
- * follow.
9
- */
10
- export declare function mergeSearchEntries(managed: readonly CatalogEntry[], direct: readonly CatalogEntry[]): CatalogEntry[];
@@ -1,26 +0,0 @@
1
- import { appNameKey as appKey } from './catalog-entry.js';
2
- /**
3
- * One search result list from both catalogues.
4
- *
5
- * Managed results keep their order. An app both list shows once, as its
6
- * API/MCP entry (MCP is the default way to connect) with the managed logo,
7
- * which is sharp where the catalogue's favicon is not. API/MCP-only apps
8
- * follow.
9
- */
10
- export function mergeSearchEntries(managed, direct) {
11
- const directByName = new Map();
12
- for (const entry of direct) {
13
- const key = appKey(entry.name);
14
- if (!directByName.has(key))
15
- directByName.set(key, entry);
16
- }
17
- const used = new Set();
18
- const merged = managed.map((entry) => {
19
- const twin = directByName.get(appKey(entry.name));
20
- if (!twin || used.has(twin))
21
- return entry;
22
- used.add(twin);
23
- return { ...twin, icon: entry.icon ?? twin.icon, alsoApp: true };
24
- });
25
- return merged.concat(direct.filter((entry) => !used.has(entry)));
26
- }
@@ -1,29 +0,0 @@
1
- /** One page of the managed catalogue, as `listConnectCatalogPage` returns it. */
2
- type ListApps<A> = (input: {
3
- projectId: string;
4
- provider: 'composio' | 'pipedream';
5
- q: string;
6
- limit: number;
7
- }) => Promise<{
8
- apps: A[];
9
- }>;
10
- /**
11
- * Resolve one managed (Composio or Pipedream) app from its slug.
12
- *
13
- * The catalogue has no by-slug route, so this searches and keeps the exact
14
- * slug match. The second query spells the slug as words, for a catalogue whose
15
- * search matches names and not slugs (`google_sheets` → "google sheets").
16
- *
17
- * `list` is passed in so this module stays free of the catalogue hook's
18
- * imports and can be tested with a fake.
19
- */
20
- export declare function findEasyConnectApp<A extends {
21
- slug: string;
22
- }>(list: ListApps<A>, input: {
23
- projectId: string;
24
- provider: 'composio' | 'pipedream';
25
- slug: string;
26
- }): Promise<(A & {
27
- provider: 'composio' | 'pipedream';
28
- }) | null>;
29
- export {};
@@ -1,22 +0,0 @@
1
- /**
2
- * Resolve one managed (Composio or Pipedream) app from its slug.
3
- *
4
- * The catalogue has no by-slug route, so this searches and keeps the exact
5
- * slug match. The second query spells the slug as words, for a catalogue whose
6
- * search matches names and not slugs (`google_sheets` → "google sheets").
7
- *
8
- * `list` is passed in so this module stays free of the catalogue hook's
9
- * imports and can be tested with a fake.
10
- */
11
- export async function findEasyConnectApp(list, input) {
12
- const words = input.slug.replace(/[_-]+/g, ' ');
13
- for (const q of words === input.slug ? [input.slug] : [input.slug, words]) {
14
- // ponytail: one page of 48 per query; an exact slug ranked below 48 results
15
- // reads as not found. Add a by-slug API route if that happens.
16
- const page = await list({ projectId: input.projectId, provider: input.provider, q, limit: 48 });
17
- const app = page.apps.find((candidate) => candidate.slug === input.slug);
18
- if (app)
19
- return { ...app, provider: input.provider };
20
- }
21
- return null;
22
- }
@@ -1,9 +0,0 @@
1
- export interface MigrateToV2 {
2
- /** Mint + navigate to the migration session. Safe to call repeatedly —
3
- * ignored while a session is already being created. */
4
- start: () => void;
5
- /** True while a session is being created — callers should disable their
6
- * trigger and/or show a spinner. */
7
- pending: boolean;
8
- }
9
- export declare function useMigrateToV2(projectId: string): MigrateToV2;
@@ -1,24 +0,0 @@
1
- 'use client';
2
- /**
3
- * useMigrateToV2 — start an agent-led "migrate this project's manifest to v2"
4
- * session from anywhere in Customize.
5
- *
6
- * Same shape as `useConfigureThread` (the sibling "Create new agent/skill/
7
- * command" flow): the only way config changes land is through a session that
8
- * edits the repo on a branch and opens a change request, so this mints a
9
- * fresh session, stashes the migration prompt as its first message, closes
10
- * the Customize overlay, and drops the user into the thread — the instant
11
- * shell auto-sends the stashed prompt once the runtime is ready.
12
- *
13
- * Deliberately does NOT pass `agent_name` — the session boots the project's
14
- * default agent (the one with git/CR powers), matching how the migration
15
- * prompt expects to be run.
16
- */
17
- import { useCallback } from 'react';
18
- import { MIGRATE_TO_V2_PROMPT } from './migration-prompt.js';
19
- import { useRunUpgrade } from './use-run-upgrade.js';
20
- export function useMigrateToV2(projectId) {
21
- const run = useRunUpgrade(projectId);
22
- const start = useCallback(() => run.start(MIGRATE_TO_V2_PROMPT), [run]);
23
- return { start, pending: run.pending };
24
- }
@@ -1,36 +0,0 @@
1
- import type { ReactNode } from 'react';
2
- /**
3
- * The icon tile for a connector that does not exist yet. `ConnectorAppIcon`
4
- * (`connectors-view.tsx:729`) needs an `AdminConnector`; the add flow has a
5
- * catalogue app — an image URL and a name, nothing more. Same 40px bordered
6
- * tile, same `object-contain` treatment, so the two are indistinguishable on
7
- * screen.
8
- */
9
- export declare function ConnectorConnectionIcon({ src, name }: {
10
- src?: string | null;
11
- name: string;
12
- }): import("react").JSX.Element;
13
- /**
14
- * A connector's identity block — icon, name, byline, description —
15
- * shared by the add flow (`ConnectorConnectionModal`) and the detail modal
16
- * (`connector-modal.tsx`), so "what is this thing?" is answered by the same
17
- * layout in both places.
18
- *
19
- * Everything except `icon` and `name` is optional; a custom connector with
20
- * no catalogue record simply renders less. `nameSlot` swaps the plain name
21
- * for a caller-owned control (the detail modal's inline rename, or Radix's
22
- * `ModalTitle`) without changing the rhythm around it.
23
- */
24
- export declare function ConnectorConnectionHeader({ icon, name, nameSlot, byline, meta, status, description, className, }: {
25
- icon: ReactNode;
26
- name: string;
27
- nameSlot?: ReactNode;
28
- /** e.g. "by Pipedream" — the catalogue the app came from. */
29
- byline?: string | null;
30
- /** Small muted facts after the byline: tool count, slug. */
31
- meta?: ReactNode;
32
- /** Badges trailing the name: provider, connection status. */
33
- status?: ReactNode;
34
- description?: string | null;
35
- className?: string;
36
- }): import("react").JSX.Element;