@chaaskit/client 0.1.0 → 0.1.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (60) hide show
  1. package/dist/lib/index.js +53 -80
  2. package/dist/lib/index.js.map +1 -1
  3. package/dist/lib/routes/AcceptInviteRoute.js +1 -1
  4. package/dist/lib/routes/AcceptInviteRoute.js.map +1 -1
  5. package/dist/lib/routes/AdminDashboardRoute.js +1 -1
  6. package/dist/lib/routes/AdminDashboardRoute.js.map +1 -1
  7. package/dist/lib/routes/AdminTeamRoute.js +1 -1
  8. package/dist/lib/routes/AdminTeamRoute.js.map +1 -1
  9. package/dist/lib/routes/AdminTeamsRoute.js +1 -1
  10. package/dist/lib/routes/AdminTeamsRoute.js.map +1 -1
  11. package/dist/lib/routes/AdminUsersRoute.js +1 -1
  12. package/dist/lib/routes/AdminUsersRoute.js.map +1 -1
  13. package/dist/lib/routes/ApiKeysRoute.js +1 -1
  14. package/dist/lib/routes/ApiKeysRoute.js.map +1 -1
  15. package/dist/lib/routes/AutomationsRoute.js +1 -1
  16. package/dist/lib/routes/AutomationsRoute.js.map +1 -1
  17. package/dist/lib/routes/ChatRoute.js +1 -1
  18. package/dist/lib/routes/ChatRoute.js.map +1 -1
  19. package/dist/lib/routes/DocumentsRoute.js +1 -1
  20. package/dist/lib/routes/DocumentsRoute.js.map +1 -1
  21. package/dist/lib/routes/OAuthConsentRoute.js +1 -1
  22. package/dist/lib/routes/OAuthConsentRoute.js.map +1 -1
  23. package/dist/lib/routes/PricingRoute.js +1 -1
  24. package/dist/lib/routes/PricingRoute.js.map +1 -1
  25. package/dist/lib/routes/PrivacyRoute.js +1 -1
  26. package/dist/lib/routes/PrivacyRoute.js.map +1 -1
  27. package/dist/lib/routes/TeamSettingsRoute.js +1 -1
  28. package/dist/lib/routes/TeamSettingsRoute.js.map +1 -1
  29. package/dist/lib/routes/TermsRoute.js +1 -1
  30. package/dist/lib/routes/TermsRoute.js.map +1 -1
  31. package/dist/lib/routes/VerifyEmailRoute.js +1 -1
  32. package/dist/lib/routes/VerifyEmailRoute.js.map +1 -1
  33. package/dist/lib/ssr-utils.js +44 -1
  34. package/dist/lib/ssr-utils.js.map +1 -1
  35. package/dist/lib/ssr.js +23 -0
  36. package/dist/lib/ssr.js.map +1 -1
  37. package/dist/lib/styles.css +21 -62
  38. package/package.json +7 -2
  39. package/src/contexts/ConfigContext.tsx +42 -4
  40. package/src/contexts/ThemeContext.tsx +39 -68
  41. package/src/index.tsx +8 -2
  42. package/src/routes/AcceptInviteRoute.tsx +1 -1
  43. package/src/routes/AdminDashboardRoute.tsx +1 -1
  44. package/src/routes/AdminTeamRoute.tsx +1 -1
  45. package/src/routes/AdminTeamsRoute.tsx +1 -1
  46. package/src/routes/AdminUsersRoute.tsx +1 -1
  47. package/src/routes/ApiKeysRoute.tsx +1 -1
  48. package/src/routes/AutomationsRoute.tsx +1 -1
  49. package/src/routes/ChatRoute.tsx +2 -1
  50. package/src/routes/DocumentsRoute.tsx +1 -1
  51. package/src/routes/OAuthConsentRoute.tsx +1 -1
  52. package/src/routes/PricingRoute.tsx +1 -1
  53. package/src/routes/PrivacyRoute.tsx +1 -1
  54. package/src/routes/TeamSettingsRoute.tsx +1 -1
  55. package/src/routes/TermsRoute.tsx +1 -1
  56. package/src/routes/VerifyEmailRoute.tsx +1 -1
  57. package/src/ssr-utils.tsx +80 -1
  58. package/src/ssr.ts +59 -0
  59. package/src/styles/index.css +16 -63
  60. package/src/tailwind-preset.js +360 -0
@@ -5,7 +5,7 @@ function meta() {
5
5
  return [{ title: "Accept Invitation" }];
6
6
  }
7
7
  function links() {
8
- return [{ rel: "stylesheet", href: "/node_modules/@chaaskit/client/dist/lib/styles.css" }];
8
+ return [];
9
9
  }
10
10
  function AcceptInviteRoute() {
11
11
  return /* @__PURE__ */ jsx(ChatProviders, { children: /* @__PURE__ */ jsx(AcceptInvitePage, {}) });
@@ -1 +1 @@
1
- {"version":3,"file":"AcceptInviteRoute.js","sources":["../../../src/routes/AcceptInviteRoute.tsx"],"sourcesContent":["/**\n * Accept Invite Route - Team invitation acceptance\n */\nimport { ChatProviders } from '../index';\nimport AcceptInvitePage from '../pages/AcceptInvitePage';\nimport { SimpleLoadingSkeleton } from '../components/LoadingSkeletons';\n\nexport function meta() {\n return [{ title: 'Accept Invitation' }];\n}\n\nexport function links() {\n return [{ rel: 'stylesheet', href: '/node_modules/@chaaskit/client/dist/lib/styles.css' }];\n}\n\nexport default function AcceptInviteRoute() {\n return (\n <ChatProviders>\n <AcceptInvitePage />\n </ChatProviders>\n );\n}\n\nexport { SimpleLoadingSkeleton as LoadingSkeleton };\n"],"names":[],"mappings":";;;AAOO,SAAS,OAAO;AACrB,SAAO,CAAC,EAAE,OAAO,qBAAqB;AACxC;AAEO,SAAS,QAAQ;AACtB,SAAO,CAAC,EAAE,KAAK,cAAc,MAAM,sDAAsD;AAC3F;AAEA,SAAwB,oBAAoB;AAC1C,SACE,oBAAC,eAAA,EACC,UAAA,oBAAC,kBAAA,CAAA,CAAiB,GACpB;AAEJ;"}
1
+ {"version":3,"file":"AcceptInviteRoute.js","sources":["../../../src/routes/AcceptInviteRoute.tsx"],"sourcesContent":["/**\n * Accept Invite Route - Team invitation acceptance\n */\nimport { ChatProviders } from '../index';\nimport AcceptInvitePage from '../pages/AcceptInvitePage';\nimport { SimpleLoadingSkeleton } from '../components/LoadingSkeletons';\n\nexport function meta() {\n return [{ title: 'Accept Invitation' }];\n}\n\nexport function links() {\n return [];\n}\n\nexport default function AcceptInviteRoute() {\n return (\n <ChatProviders>\n <AcceptInvitePage />\n </ChatProviders>\n );\n}\n\nexport { SimpleLoadingSkeleton as LoadingSkeleton };\n"],"names":[],"mappings":";;;AAOO,SAAS,OAAO;AACrB,SAAO,CAAC,EAAE,OAAO,qBAAqB;AACxC;AAEO,SAAS,QAAQ;AACtB,SAAO,CAAA;AACT;AAEA,SAAwB,oBAAoB;AAC1C,SACE,oBAAC,eAAA,EACC,UAAA,oBAAC,kBAAA,CAAA,CAAiB,GACpB;AAEJ;"}
@@ -5,7 +5,7 @@ function meta() {
5
5
  return [{ title: "Admin Dashboard" }];
6
6
  }
7
7
  function links() {
8
- return [{ rel: "stylesheet", href: "/node_modules/@chaaskit/client/dist/lib/styles.css" }];
8
+ return [];
9
9
  }
10
10
  function AdminDashboardRoute() {
11
11
  return /* @__PURE__ */ jsx(ChatProviders, { children: /* @__PURE__ */ jsx(AdminDashboardPage, {}) });
@@ -1 +1 @@
1
- {"version":3,"file":"AdminDashboardRoute.js","sources":["../../../src/routes/AdminDashboardRoute.tsx"],"sourcesContent":["/**\n * Admin Dashboard Route - Admin overview\n */\nimport { ChatProviders } from '../index';\nimport AdminDashboardPage from '../pages/AdminDashboardPage';\nimport { SimpleLoadingSkeleton } from '../components/LoadingSkeletons';\n\nexport function meta() {\n return [{ title: 'Admin Dashboard' }];\n}\n\nexport function links() {\n return [{ rel: 'stylesheet', href: '/node_modules/@chaaskit/client/dist/lib/styles.css' }];\n}\n\nexport default function AdminDashboardRoute() {\n return (\n <ChatProviders>\n <AdminDashboardPage />\n </ChatProviders>\n );\n}\n\nexport { SimpleLoadingSkeleton as LoadingSkeleton };\n"],"names":[],"mappings":";;;AAOO,SAAS,OAAO;AACrB,SAAO,CAAC,EAAE,OAAO,mBAAmB;AACtC;AAEO,SAAS,QAAQ;AACtB,SAAO,CAAC,EAAE,KAAK,cAAc,MAAM,sDAAsD;AAC3F;AAEA,SAAwB,sBAAsB;AAC5C,SACE,oBAAC,eAAA,EACC,UAAA,oBAAC,oBAAA,CAAA,CAAmB,GACtB;AAEJ;"}
1
+ {"version":3,"file":"AdminDashboardRoute.js","sources":["../../../src/routes/AdminDashboardRoute.tsx"],"sourcesContent":["/**\n * Admin Dashboard Route - Admin overview\n */\nimport { ChatProviders } from '../index';\nimport AdminDashboardPage from '../pages/AdminDashboardPage';\nimport { SimpleLoadingSkeleton } from '../components/LoadingSkeletons';\n\nexport function meta() {\n return [{ title: 'Admin Dashboard' }];\n}\n\nexport function links() {\n return [];\n}\n\nexport default function AdminDashboardRoute() {\n return (\n <ChatProviders>\n <AdminDashboardPage />\n </ChatProviders>\n );\n}\n\nexport { SimpleLoadingSkeleton as LoadingSkeleton };\n"],"names":[],"mappings":";;;AAOO,SAAS,OAAO;AACrB,SAAO,CAAC,EAAE,OAAO,mBAAmB;AACtC;AAEO,SAAS,QAAQ;AACtB,SAAO,CAAA;AACT;AAEA,SAAwB,sBAAsB;AAC5C,SACE,oBAAC,eAAA,EACC,UAAA,oBAAC,oBAAA,CAAA,CAAmB,GACtB;AAEJ;"}
@@ -5,7 +5,7 @@ function meta() {
5
5
  return [{ title: "Admin - Team Details" }];
6
6
  }
7
7
  function links() {
8
- return [{ rel: "stylesheet", href: "/node_modules/@chaaskit/client/dist/lib/styles.css" }];
8
+ return [];
9
9
  }
10
10
  function AdminTeamRoute() {
11
11
  return /* @__PURE__ */ jsx(ChatProviders, { children: /* @__PURE__ */ jsx(AdminTeamPage, {}) });
@@ -1 +1 @@
1
- {"version":3,"file":"AdminTeamRoute.js","sources":["../../../src/routes/AdminTeamRoute.tsx"],"sourcesContent":["/**\n * Admin Team Route - Single team management\n */\nimport { ChatProviders } from '../index';\nimport AdminTeamPage from '../pages/AdminTeamPage';\nimport { SimpleLoadingSkeleton } from '../components/LoadingSkeletons';\n\nexport function meta() {\n return [{ title: 'Admin - Team Details' }];\n}\n\nexport function links() {\n return [{ rel: 'stylesheet', href: '/node_modules/@chaaskit/client/dist/lib/styles.css' }];\n}\n\nexport default function AdminTeamRoute() {\n return (\n <ChatProviders>\n <AdminTeamPage />\n </ChatProviders>\n );\n}\n\nexport { SimpleLoadingSkeleton as LoadingSkeleton };\n"],"names":[],"mappings":";;;AAOO,SAAS,OAAO;AACrB,SAAO,CAAC,EAAE,OAAO,wBAAwB;AAC3C;AAEO,SAAS,QAAQ;AACtB,SAAO,CAAC,EAAE,KAAK,cAAc,MAAM,sDAAsD;AAC3F;AAEA,SAAwB,iBAAiB;AACvC,SACE,oBAAC,eAAA,EACC,UAAA,oBAAC,eAAA,CAAA,CAAc,GACjB;AAEJ;"}
1
+ {"version":3,"file":"AdminTeamRoute.js","sources":["../../../src/routes/AdminTeamRoute.tsx"],"sourcesContent":["/**\n * Admin Team Route - Single team management\n */\nimport { ChatProviders } from '../index';\nimport AdminTeamPage from '../pages/AdminTeamPage';\nimport { SimpleLoadingSkeleton } from '../components/LoadingSkeletons';\n\nexport function meta() {\n return [{ title: 'Admin - Team Details' }];\n}\n\nexport function links() {\n return [];\n}\n\nexport default function AdminTeamRoute() {\n return (\n <ChatProviders>\n <AdminTeamPage />\n </ChatProviders>\n );\n}\n\nexport { SimpleLoadingSkeleton as LoadingSkeleton };\n"],"names":[],"mappings":";;;AAOO,SAAS,OAAO;AACrB,SAAO,CAAC,EAAE,OAAO,wBAAwB;AAC3C;AAEO,SAAS,QAAQ;AACtB,SAAO,CAAA;AACT;AAEA,SAAwB,iBAAiB;AACvC,SACE,oBAAC,eAAA,EACC,UAAA,oBAAC,eAAA,CAAA,CAAc,GACjB;AAEJ;"}
@@ -5,7 +5,7 @@ function meta() {
5
5
  return [{ title: "Admin - Teams" }];
6
6
  }
7
7
  function links() {
8
- return [{ rel: "stylesheet", href: "/node_modules/@chaaskit/client/dist/lib/styles.css" }];
8
+ return [];
9
9
  }
10
10
  function AdminTeamsRoute() {
11
11
  return /* @__PURE__ */ jsx(ChatProviders, { children: /* @__PURE__ */ jsx(AdminTeamsPage, {}) });
@@ -1 +1 @@
1
- {"version":3,"file":"AdminTeamsRoute.js","sources":["../../../src/routes/AdminTeamsRoute.tsx"],"sourcesContent":["/**\n * Admin Teams Route - Team list management\n */\nimport { ChatProviders } from '../index';\nimport AdminTeamsPage from '../pages/AdminTeamsPage';\nimport { SimpleLoadingSkeleton } from '../components/LoadingSkeletons';\n\nexport function meta() {\n return [{ title: 'Admin - Teams' }];\n}\n\nexport function links() {\n return [{ rel: 'stylesheet', href: '/node_modules/@chaaskit/client/dist/lib/styles.css' }];\n}\n\nexport default function AdminTeamsRoute() {\n return (\n <ChatProviders>\n <AdminTeamsPage />\n </ChatProviders>\n );\n}\n\nexport { SimpleLoadingSkeleton as LoadingSkeleton };\n"],"names":[],"mappings":";;;AAOO,SAAS,OAAO;AACrB,SAAO,CAAC,EAAE,OAAO,iBAAiB;AACpC;AAEO,SAAS,QAAQ;AACtB,SAAO,CAAC,EAAE,KAAK,cAAc,MAAM,sDAAsD;AAC3F;AAEA,SAAwB,kBAAkB;AACxC,SACE,oBAAC,eAAA,EACC,UAAA,oBAAC,gBAAA,CAAA,CAAe,GAClB;AAEJ;"}
1
+ {"version":3,"file":"AdminTeamsRoute.js","sources":["../../../src/routes/AdminTeamsRoute.tsx"],"sourcesContent":["/**\n * Admin Teams Route - Team list management\n */\nimport { ChatProviders } from '../index';\nimport AdminTeamsPage from '../pages/AdminTeamsPage';\nimport { SimpleLoadingSkeleton } from '../components/LoadingSkeletons';\n\nexport function meta() {\n return [{ title: 'Admin - Teams' }];\n}\n\nexport function links() {\n return [];\n}\n\nexport default function AdminTeamsRoute() {\n return (\n <ChatProviders>\n <AdminTeamsPage />\n </ChatProviders>\n );\n}\n\nexport { SimpleLoadingSkeleton as LoadingSkeleton };\n"],"names":[],"mappings":";;;AAOO,SAAS,OAAO;AACrB,SAAO,CAAC,EAAE,OAAO,iBAAiB;AACpC;AAEO,SAAS,QAAQ;AACtB,SAAO,CAAA;AACT;AAEA,SAAwB,kBAAkB;AACxC,SACE,oBAAC,eAAA,EACC,UAAA,oBAAC,gBAAA,CAAA,CAAe,GAClB;AAEJ;"}
@@ -5,7 +5,7 @@ function meta() {
5
5
  return [{ title: "Admin - Users" }];
6
6
  }
7
7
  function links() {
8
- return [{ rel: "stylesheet", href: "/node_modules/@chaaskit/client/dist/lib/styles.css" }];
8
+ return [];
9
9
  }
10
10
  function AdminUsersRoute() {
11
11
  return /* @__PURE__ */ jsx(ChatProviders, { children: /* @__PURE__ */ jsx(AdminUsersPage, {}) });
@@ -1 +1 @@
1
- {"version":3,"file":"AdminUsersRoute.js","sources":["../../../src/routes/AdminUsersRoute.tsx"],"sourcesContent":["/**\n * Admin Users Route - User management\n */\nimport { ChatProviders } from '../index';\nimport AdminUsersPage from '../pages/AdminUsersPage';\nimport { SimpleLoadingSkeleton } from '../components/LoadingSkeletons';\n\nexport function meta() {\n return [{ title: 'Admin - Users' }];\n}\n\nexport function links() {\n return [{ rel: 'stylesheet', href: '/node_modules/@chaaskit/client/dist/lib/styles.css' }];\n}\n\nexport default function AdminUsersRoute() {\n return (\n <ChatProviders>\n <AdminUsersPage />\n </ChatProviders>\n );\n}\n\nexport { SimpleLoadingSkeleton as LoadingSkeleton };\n"],"names":[],"mappings":";;;AAOO,SAAS,OAAO;AACrB,SAAO,CAAC,EAAE,OAAO,iBAAiB;AACpC;AAEO,SAAS,QAAQ;AACtB,SAAO,CAAC,EAAE,KAAK,cAAc,MAAM,sDAAsD;AAC3F;AAEA,SAAwB,kBAAkB;AACxC,SACE,oBAAC,eAAA,EACC,UAAA,oBAAC,gBAAA,CAAA,CAAe,GAClB;AAEJ;"}
1
+ {"version":3,"file":"AdminUsersRoute.js","sources":["../../../src/routes/AdminUsersRoute.tsx"],"sourcesContent":["/**\n * Admin Users Route - User management\n */\nimport { ChatProviders } from '../index';\nimport AdminUsersPage from '../pages/AdminUsersPage';\nimport { SimpleLoadingSkeleton } from '../components/LoadingSkeletons';\n\nexport function meta() {\n return [{ title: 'Admin - Users' }];\n}\n\nexport function links() {\n return [];\n}\n\nexport default function AdminUsersRoute() {\n return (\n <ChatProviders>\n <AdminUsersPage />\n </ChatProviders>\n );\n}\n\nexport { SimpleLoadingSkeleton as LoadingSkeleton };\n"],"names":[],"mappings":";;;AAOO,SAAS,OAAO;AACrB,SAAO,CAAC,EAAE,OAAO,iBAAiB;AACpC;AAEO,SAAS,QAAQ;AACtB,SAAO,CAAA;AACT;AAEA,SAAwB,kBAAkB;AACxC,SACE,oBAAC,eAAA,EACC,UAAA,oBAAC,gBAAA,CAAA,CAAe,GAClB;AAEJ;"}
@@ -5,7 +5,7 @@ function meta() {
5
5
  return [{ title: "API Keys" }];
6
6
  }
7
7
  function links() {
8
- return [{ rel: "stylesheet", href: "/node_modules/@chaaskit/client/dist/lib/styles.css" }];
8
+ return [];
9
9
  }
10
10
  function ApiKeysRoute() {
11
11
  return /* @__PURE__ */ jsx(ChatProviders, { children: /* @__PURE__ */ jsx(ApiKeysPage, {}) });
@@ -1 +1 @@
1
- {"version":3,"file":"ApiKeysRoute.js","sources":["../../../src/routes/ApiKeysRoute.tsx"],"sourcesContent":["/**\n * API Keys Route - User API key management\n */\nimport { ChatProviders } from '../index';\nimport ApiKeysPage from '../pages/ApiKeysPage';\nimport { SimpleLoadingSkeleton } from '../components/LoadingSkeletons';\n\nexport function meta() {\n return [{ title: 'API Keys' }];\n}\n\nexport function links() {\n return [{ rel: 'stylesheet', href: '/node_modules/@chaaskit/client/dist/lib/styles.css' }];\n}\n\nexport default function ApiKeysRoute() {\n return (\n <ChatProviders>\n <ApiKeysPage />\n </ChatProviders>\n );\n}\n\nexport { SimpleLoadingSkeleton as LoadingSkeleton };\n"],"names":[],"mappings":";;;AAOO,SAAS,OAAO;AACrB,SAAO,CAAC,EAAE,OAAO,YAAY;AAC/B;AAEO,SAAS,QAAQ;AACtB,SAAO,CAAC,EAAE,KAAK,cAAc,MAAM,sDAAsD;AAC3F;AAEA,SAAwB,eAAe;AACrC,SACE,oBAAC,eAAA,EACC,UAAA,oBAAC,aAAA,CAAA,CAAY,GACf;AAEJ;"}
1
+ {"version":3,"file":"ApiKeysRoute.js","sources":["../../../src/routes/ApiKeysRoute.tsx"],"sourcesContent":["/**\n * API Keys Route - User API key management\n */\nimport { ChatProviders } from '../index';\nimport ApiKeysPage from '../pages/ApiKeysPage';\nimport { SimpleLoadingSkeleton } from '../components/LoadingSkeletons';\n\nexport function meta() {\n return [{ title: 'API Keys' }];\n}\n\nexport function links() {\n return [];\n}\n\nexport default function ApiKeysRoute() {\n return (\n <ChatProviders>\n <ApiKeysPage />\n </ChatProviders>\n );\n}\n\nexport { SimpleLoadingSkeleton as LoadingSkeleton };\n"],"names":[],"mappings":";;;AAOO,SAAS,OAAO;AACrB,SAAO,CAAC,EAAE,OAAO,YAAY;AAC/B;AAEO,SAAS,QAAQ;AACtB,SAAO,CAAA;AACT;AAEA,SAAwB,eAAe;AACrC,SACE,oBAAC,eAAA,EACC,UAAA,oBAAC,aAAA,CAAA,CAAY,GACf;AAEJ;"}
@@ -5,7 +5,7 @@ function meta() {
5
5
  return [{ title: "Automations" }];
6
6
  }
7
7
  function links() {
8
- return [{ rel: "stylesheet", href: "/node_modules/@chaaskit/client/dist/lib/styles.css" }];
8
+ return [];
9
9
  }
10
10
  function AutomationsRoute() {
11
11
  return /* @__PURE__ */ jsx(ChatProviders, { children: /* @__PURE__ */ jsx(ScheduledPromptsPage, {}) });
@@ -1 +1 @@
1
- {"version":3,"file":"AutomationsRoute.js","sources":["../../../src/routes/AutomationsRoute.tsx"],"sourcesContent":["/**\n * Automations Route - Scheduled prompts management\n */\nimport { ChatProviders } from '../index';\nimport ScheduledPromptsPage from '../pages/ScheduledPromptsPage';\nimport { SimpleLoadingSkeleton } from '../components/LoadingSkeletons';\n\nexport function meta() {\n return [{ title: 'Automations' }];\n}\n\nexport function links() {\n return [{ rel: 'stylesheet', href: '/node_modules/@chaaskit/client/dist/lib/styles.css' }];\n}\n\nexport default function AutomationsRoute() {\n return (\n <ChatProviders>\n <ScheduledPromptsPage />\n </ChatProviders>\n );\n}\n\nexport { SimpleLoadingSkeleton as LoadingSkeleton };\n"],"names":[],"mappings":";;;AAOO,SAAS,OAAO;AACrB,SAAO,CAAC,EAAE,OAAO,eAAe;AAClC;AAEO,SAAS,QAAQ;AACtB,SAAO,CAAC,EAAE,KAAK,cAAc,MAAM,sDAAsD;AAC3F;AAEA,SAAwB,mBAAmB;AACzC,SACE,oBAAC,eAAA,EACC,UAAA,oBAAC,sBAAA,CAAA,CAAqB,GACxB;AAEJ;"}
1
+ {"version":3,"file":"AutomationsRoute.js","sources":["../../../src/routes/AutomationsRoute.tsx"],"sourcesContent":["/**\n * Automations Route - Scheduled prompts management\n */\nimport { ChatProviders } from '../index';\nimport ScheduledPromptsPage from '../pages/ScheduledPromptsPage';\nimport { SimpleLoadingSkeleton } from '../components/LoadingSkeletons';\n\nexport function meta() {\n return [{ title: 'Automations' }];\n}\n\nexport function links() {\n return [];\n}\n\nexport default function AutomationsRoute() {\n return (\n <ChatProviders>\n <ScheduledPromptsPage />\n </ChatProviders>\n );\n}\n\nexport { SimpleLoadingSkeleton as LoadingSkeleton };\n"],"names":[],"mappings":";;;AAOO,SAAS,OAAO;AACrB,SAAO,CAAC,EAAE,OAAO,eAAe;AAClC;AAEO,SAAS,QAAQ;AACtB,SAAO,CAAA;AACT;AAEA,SAAwB,mBAAmB;AACzC,SACE,oBAAC,eAAA,EACC,UAAA,oBAAC,sBAAA,CAAA,CAAqB,GACxB;AAEJ;"}
@@ -5,7 +5,7 @@ function meta() {
5
5
  return [{ title: "Chat" }];
6
6
  }
7
7
  function links() {
8
- return [{ rel: "stylesheet", href: "/node_modules/@chaaskit/client/dist/lib/styles.css" }];
8
+ return [];
9
9
  }
10
10
  function ChatRoute() {
11
11
  return /* @__PURE__ */ jsx(ChatProviders, { children: /* @__PURE__ */ jsx(MainLayout, { children: /* @__PURE__ */ jsx(ChatPage, {}) }) });
@@ -1 +1 @@
1
- {"version":3,"file":"ChatRoute.js","sources":["../../../src/routes/ChatRoute.tsx"],"sourcesContent":["/**\n * Chat Route - Main chat interface with sidebar\n * Wraps ChatPage with ChatProviders and MainLayout\n */\nimport { ChatProviders } from '../index';\nimport MainLayout from '../layouts/MainLayout';\nimport ChatPage from '../pages/ChatPage';\nimport { ChatLoadingSkeleton } from '../components/LoadingSkeletons';\n\nexport function meta() {\n return [{ title: 'Chat' }];\n}\n\nexport function links() {\n return [{ rel: 'stylesheet', href: '/node_modules/@chaaskit/client/dist/lib/styles.css' }];\n}\n\nexport default function ChatRoute() {\n return (\n <ChatProviders>\n <MainLayout>\n <ChatPage />\n </MainLayout>\n </ChatProviders>\n );\n}\n\nexport { ChatLoadingSkeleton as LoadingSkeleton };\n"],"names":[],"mappings":";;;AASO,SAAS,OAAO;AACrB,SAAO,CAAC,EAAE,OAAO,QAAQ;AAC3B;AAEO,SAAS,QAAQ;AACtB,SAAO,CAAC,EAAE,KAAK,cAAc,MAAM,sDAAsD;AAC3F;AAEA,SAAwB,YAAY;AAClC,6BACG,eAAA,EACC,UAAA,oBAAC,cACC,UAAA,oBAAC,UAAA,EAAS,GACZ,EAAA,CACF;AAEJ;"}
1
+ {"version":3,"file":"ChatRoute.js","sources":["../../../src/routes/ChatRoute.tsx"],"sourcesContent":["/**\n * Chat Route - Main chat interface with sidebar\n * Wraps ChatPage with ChatProviders and MainLayout\n */\nimport { ChatProviders } from '../index';\nimport MainLayout from '../layouts/MainLayout';\nimport ChatPage from '../pages/ChatPage';\nimport { ChatLoadingSkeleton } from '../components/LoadingSkeletons';\n\nexport function meta() {\n return [{ title: 'Chat' }];\n}\n\nexport function links() {\n // CSS is bundled via app's Tailwind preset - no separate stylesheet needed\n return [];\n}\n\nexport default function ChatRoute() {\n return (\n <ChatProviders>\n <MainLayout>\n <ChatPage />\n </MainLayout>\n </ChatProviders>\n );\n}\n\nexport { ChatLoadingSkeleton as LoadingSkeleton };\n"],"names":[],"mappings":";;;AASO,SAAS,OAAO;AACrB,SAAO,CAAC,EAAE,OAAO,QAAQ;AAC3B;AAEO,SAAS,QAAQ;AAEtB,SAAO,CAAA;AACT;AAEA,SAAwB,YAAY;AAClC,6BACG,eAAA,EACC,UAAA,oBAAC,cACC,UAAA,oBAAC,UAAA,EAAS,GACZ,EAAA,CACF;AAEJ;"}
@@ -5,7 +5,7 @@ function meta() {
5
5
  return [{ title: "Documents" }];
6
6
  }
7
7
  function links() {
8
- return [{ rel: "stylesheet", href: "/node_modules/@chaaskit/client/dist/lib/styles.css" }];
8
+ return [];
9
9
  }
10
10
  function DocumentsRoute() {
11
11
  return /* @__PURE__ */ jsx(ChatProviders, { children: /* @__PURE__ */ jsx(DocumentsPage, {}) });
@@ -1 +1 @@
1
- {"version":3,"file":"DocumentsRoute.js","sources":["../../../src/routes/DocumentsRoute.tsx"],"sourcesContent":["/**\n * Documents Route - Document management\n */\nimport { ChatProviders } from '../index';\nimport DocumentsPage from '../pages/DocumentsPage';\nimport { SimpleLoadingSkeleton } from '../components/LoadingSkeletons';\n\nexport function meta() {\n return [{ title: 'Documents' }];\n}\n\nexport function links() {\n return [{ rel: 'stylesheet', href: '/node_modules/@chaaskit/client/dist/lib/styles.css' }];\n}\n\nexport default function DocumentsRoute() {\n return (\n <ChatProviders>\n <DocumentsPage />\n </ChatProviders>\n );\n}\n\nexport { SimpleLoadingSkeleton as LoadingSkeleton };\n"],"names":[],"mappings":";;;AAOO,SAAS,OAAO;AACrB,SAAO,CAAC,EAAE,OAAO,aAAa;AAChC;AAEO,SAAS,QAAQ;AACtB,SAAO,CAAC,EAAE,KAAK,cAAc,MAAM,sDAAsD;AAC3F;AAEA,SAAwB,iBAAiB;AACvC,SACE,oBAAC,eAAA,EACC,UAAA,oBAAC,eAAA,CAAA,CAAc,GACjB;AAEJ;"}
1
+ {"version":3,"file":"DocumentsRoute.js","sources":["../../../src/routes/DocumentsRoute.tsx"],"sourcesContent":["/**\n * Documents Route - Document management\n */\nimport { ChatProviders } from '../index';\nimport DocumentsPage from '../pages/DocumentsPage';\nimport { SimpleLoadingSkeleton } from '../components/LoadingSkeletons';\n\nexport function meta() {\n return [{ title: 'Documents' }];\n}\n\nexport function links() {\n return [];\n}\n\nexport default function DocumentsRoute() {\n return (\n <ChatProviders>\n <DocumentsPage />\n </ChatProviders>\n );\n}\n\nexport { SimpleLoadingSkeleton as LoadingSkeleton };\n"],"names":[],"mappings":";;;AAOO,SAAS,OAAO;AACrB,SAAO,CAAC,EAAE,OAAO,aAAa;AAChC;AAEO,SAAS,QAAQ;AACtB,SAAO,CAAA;AACT;AAEA,SAAwB,iBAAiB;AACvC,SACE,oBAAC,eAAA,EACC,UAAA,oBAAC,eAAA,CAAA,CAAc,GACjB;AAEJ;"}
@@ -5,7 +5,7 @@ function meta() {
5
5
  return [{ title: "OAuth Consent" }];
6
6
  }
7
7
  function links() {
8
- return [{ rel: "stylesheet", href: "/node_modules/@chaaskit/client/dist/lib/styles.css" }];
8
+ return [];
9
9
  }
10
10
  function OAuthConsentRoute() {
11
11
  return /* @__PURE__ */ jsx(ChatProviders, { children: /* @__PURE__ */ jsx(OAuthConsentPage, {}) });
@@ -1 +1 @@
1
- {"version":3,"file":"OAuthConsentRoute.js","sources":["../../../src/routes/OAuthConsentRoute.tsx"],"sourcesContent":["/**\n * OAuth Consent Route - OAuth authorization consent\n */\nimport { ChatProviders } from '../index';\nimport OAuthConsentPage from '../pages/OAuthConsentPage';\nimport { SimpleLoadingSkeleton } from '../components/LoadingSkeletons';\n\nexport function meta() {\n return [{ title: 'OAuth Consent' }];\n}\n\nexport function links() {\n return [{ rel: 'stylesheet', href: '/node_modules/@chaaskit/client/dist/lib/styles.css' }];\n}\n\nexport default function OAuthConsentRoute() {\n return (\n <ChatProviders>\n <OAuthConsentPage />\n </ChatProviders>\n );\n}\n\nexport { SimpleLoadingSkeleton as LoadingSkeleton };\n"],"names":[],"mappings":";;;AAOO,SAAS,OAAO;AACrB,SAAO,CAAC,EAAE,OAAO,iBAAiB;AACpC;AAEO,SAAS,QAAQ;AACtB,SAAO,CAAC,EAAE,KAAK,cAAc,MAAM,sDAAsD;AAC3F;AAEA,SAAwB,oBAAoB;AAC1C,SACE,oBAAC,eAAA,EACC,UAAA,oBAAC,kBAAA,CAAA,CAAiB,GACpB;AAEJ;"}
1
+ {"version":3,"file":"OAuthConsentRoute.js","sources":["../../../src/routes/OAuthConsentRoute.tsx"],"sourcesContent":["/**\n * OAuth Consent Route - OAuth authorization consent\n */\nimport { ChatProviders } from '../index';\nimport OAuthConsentPage from '../pages/OAuthConsentPage';\nimport { SimpleLoadingSkeleton } from '../components/LoadingSkeletons';\n\nexport function meta() {\n return [{ title: 'OAuth Consent' }];\n}\n\nexport function links() {\n return [];\n}\n\nexport default function OAuthConsentRoute() {\n return (\n <ChatProviders>\n <OAuthConsentPage />\n </ChatProviders>\n );\n}\n\nexport { SimpleLoadingSkeleton as LoadingSkeleton };\n"],"names":[],"mappings":";;;AAOO,SAAS,OAAO;AACrB,SAAO,CAAC,EAAE,OAAO,iBAAiB;AACpC;AAEO,SAAS,QAAQ;AACtB,SAAO,CAAA;AACT;AAEA,SAAwB,oBAAoB;AAC1C,SACE,oBAAC,eAAA,EACC,UAAA,oBAAC,kBAAA,CAAA,CAAiB,GACpB;AAEJ;"}
@@ -5,7 +5,7 @@ function meta() {
5
5
  return [{ title: "Pricing" }];
6
6
  }
7
7
  function links() {
8
- return [{ rel: "stylesheet", href: "/node_modules/@chaaskit/client/dist/lib/styles.css" }];
8
+ return [];
9
9
  }
10
10
  function PricingRoute() {
11
11
  return /* @__PURE__ */ jsx(ChatProviders, { children: /* @__PURE__ */ jsx(PricingPage, {}) });
@@ -1 +1 @@
1
- {"version":3,"file":"PricingRoute.js","sources":["../../../src/routes/PricingRoute.tsx"],"sourcesContent":["/**\n * Pricing Route - Pricing/plans page\n */\nimport { ChatProviders } from '../index';\nimport PricingPage from '../pages/PricingPage';\nimport { SimpleLoadingSkeleton } from '../components/LoadingSkeletons';\n\nexport function meta() {\n return [{ title: 'Pricing' }];\n}\n\nexport function links() {\n return [{ rel: 'stylesheet', href: '/node_modules/@chaaskit/client/dist/lib/styles.css' }];\n}\n\nexport default function PricingRoute() {\n return (\n <ChatProviders>\n <PricingPage />\n </ChatProviders>\n );\n}\n\nexport { SimpleLoadingSkeleton as LoadingSkeleton };\n"],"names":[],"mappings":";;;AAOO,SAAS,OAAO;AACrB,SAAO,CAAC,EAAE,OAAO,WAAW;AAC9B;AAEO,SAAS,QAAQ;AACtB,SAAO,CAAC,EAAE,KAAK,cAAc,MAAM,sDAAsD;AAC3F;AAEA,SAAwB,eAAe;AACrC,SACE,oBAAC,eAAA,EACC,UAAA,oBAAC,aAAA,CAAA,CAAY,GACf;AAEJ;"}
1
+ {"version":3,"file":"PricingRoute.js","sources":["../../../src/routes/PricingRoute.tsx"],"sourcesContent":["/**\n * Pricing Route - Pricing/plans page\n */\nimport { ChatProviders } from '../index';\nimport PricingPage from '../pages/PricingPage';\nimport { SimpleLoadingSkeleton } from '../components/LoadingSkeletons';\n\nexport function meta() {\n return [{ title: 'Pricing' }];\n}\n\nexport function links() {\n return [];\n}\n\nexport default function PricingRoute() {\n return (\n <ChatProviders>\n <PricingPage />\n </ChatProviders>\n );\n}\n\nexport { SimpleLoadingSkeleton as LoadingSkeleton };\n"],"names":[],"mappings":";;;AAOO,SAAS,OAAO;AACrB,SAAO,CAAC,EAAE,OAAO,WAAW;AAC9B;AAEO,SAAS,QAAQ;AACtB,SAAO,CAAA;AACT;AAEA,SAAwB,eAAe;AACrC,SACE,oBAAC,eAAA,EACC,UAAA,oBAAC,aAAA,CAAA,CAAY,GACf;AAEJ;"}
@@ -5,7 +5,7 @@ function meta() {
5
5
  return [{ title: "Privacy Policy" }];
6
6
  }
7
7
  function links() {
8
- return [{ rel: "stylesheet", href: "/node_modules/@chaaskit/client/dist/lib/styles.css" }];
8
+ return [];
9
9
  }
10
10
  function PrivacyRoute() {
11
11
  return /* @__PURE__ */ jsx(ChatProviders, { children: /* @__PURE__ */ jsx(PrivacyPage, {}) });
@@ -1 +1 @@
1
- {"version":3,"file":"PrivacyRoute.js","sources":["../../../src/routes/PrivacyRoute.tsx"],"sourcesContent":["/**\n * Privacy Route - Privacy policy page\n */\nimport { ChatProviders } from '../index';\nimport PrivacyPage from '../pages/PrivacyPage';\nimport { SimpleLoadingSkeleton } from '../components/LoadingSkeletons';\n\nexport function meta() {\n return [{ title: 'Privacy Policy' }];\n}\n\nexport function links() {\n return [{ rel: 'stylesheet', href: '/node_modules/@chaaskit/client/dist/lib/styles.css' }];\n}\n\nexport default function PrivacyRoute() {\n return (\n <ChatProviders>\n <PrivacyPage />\n </ChatProviders>\n );\n}\n\nexport { SimpleLoadingSkeleton as LoadingSkeleton };\n"],"names":[],"mappings":";;;AAOO,SAAS,OAAO;AACrB,SAAO,CAAC,EAAE,OAAO,kBAAkB;AACrC;AAEO,SAAS,QAAQ;AACtB,SAAO,CAAC,EAAE,KAAK,cAAc,MAAM,sDAAsD;AAC3F;AAEA,SAAwB,eAAe;AACrC,SACE,oBAAC,eAAA,EACC,UAAA,oBAAC,aAAA,CAAA,CAAY,GACf;AAEJ;"}
1
+ {"version":3,"file":"PrivacyRoute.js","sources":["../../../src/routes/PrivacyRoute.tsx"],"sourcesContent":["/**\n * Privacy Route - Privacy policy page\n */\nimport { ChatProviders } from '../index';\nimport PrivacyPage from '../pages/PrivacyPage';\nimport { SimpleLoadingSkeleton } from '../components/LoadingSkeletons';\n\nexport function meta() {\n return [{ title: 'Privacy Policy' }];\n}\n\nexport function links() {\n return [];\n}\n\nexport default function PrivacyRoute() {\n return (\n <ChatProviders>\n <PrivacyPage />\n </ChatProviders>\n );\n}\n\nexport { SimpleLoadingSkeleton as LoadingSkeleton };\n"],"names":[],"mappings":";;;AAOO,SAAS,OAAO;AACrB,SAAO,CAAC,EAAE,OAAO,kBAAkB;AACrC;AAEO,SAAS,QAAQ;AACtB,SAAO,CAAA;AACT;AAEA,SAAwB,eAAe;AACrC,SACE,oBAAC,eAAA,EACC,UAAA,oBAAC,aAAA,CAAA,CAAY,GACf;AAEJ;"}
@@ -5,7 +5,7 @@ function meta() {
5
5
  return [{ title: "Team Settings" }];
6
6
  }
7
7
  function links() {
8
- return [{ rel: "stylesheet", href: "/node_modules/@chaaskit/client/dist/lib/styles.css" }];
8
+ return [];
9
9
  }
10
10
  function TeamSettingsRoute() {
11
11
  return /* @__PURE__ */ jsx(ChatProviders, { children: /* @__PURE__ */ jsx(TeamSettingsPage, {}) });
@@ -1 +1 @@
1
- {"version":3,"file":"TeamSettingsRoute.js","sources":["../../../src/routes/TeamSettingsRoute.tsx"],"sourcesContent":["/**\n * Team Settings Route - Team management\n */\nimport { ChatProviders } from '../index';\nimport TeamSettingsPage from '../pages/TeamSettingsPage';\nimport { SimpleLoadingSkeleton } from '../components/LoadingSkeletons';\n\nexport function meta() {\n return [{ title: 'Team Settings' }];\n}\n\nexport function links() {\n return [{ rel: 'stylesheet', href: '/node_modules/@chaaskit/client/dist/lib/styles.css' }];\n}\n\nexport default function TeamSettingsRoute() {\n return (\n <ChatProviders>\n <TeamSettingsPage />\n </ChatProviders>\n );\n}\n\nexport { SimpleLoadingSkeleton as LoadingSkeleton };\n"],"names":[],"mappings":";;;AAOO,SAAS,OAAO;AACrB,SAAO,CAAC,EAAE,OAAO,iBAAiB;AACpC;AAEO,SAAS,QAAQ;AACtB,SAAO,CAAC,EAAE,KAAK,cAAc,MAAM,sDAAsD;AAC3F;AAEA,SAAwB,oBAAoB;AAC1C,SACE,oBAAC,eAAA,EACC,UAAA,oBAAC,kBAAA,CAAA,CAAiB,GACpB;AAEJ;"}
1
+ {"version":3,"file":"TeamSettingsRoute.js","sources":["../../../src/routes/TeamSettingsRoute.tsx"],"sourcesContent":["/**\n * Team Settings Route - Team management\n */\nimport { ChatProviders } from '../index';\nimport TeamSettingsPage from '../pages/TeamSettingsPage';\nimport { SimpleLoadingSkeleton } from '../components/LoadingSkeletons';\n\nexport function meta() {\n return [{ title: 'Team Settings' }];\n}\n\nexport function links() {\n return [];\n}\n\nexport default function TeamSettingsRoute() {\n return (\n <ChatProviders>\n <TeamSettingsPage />\n </ChatProviders>\n );\n}\n\nexport { SimpleLoadingSkeleton as LoadingSkeleton };\n"],"names":[],"mappings":";;;AAOO,SAAS,OAAO;AACrB,SAAO,CAAC,EAAE,OAAO,iBAAiB;AACpC;AAEO,SAAS,QAAQ;AACtB,SAAO,CAAA;AACT;AAEA,SAAwB,oBAAoB;AAC1C,SACE,oBAAC,eAAA,EACC,UAAA,oBAAC,kBAAA,CAAA,CAAiB,GACpB;AAEJ;"}
@@ -5,7 +5,7 @@ function meta() {
5
5
  return [{ title: "Terms of Service" }];
6
6
  }
7
7
  function links() {
8
- return [{ rel: "stylesheet", href: "/node_modules/@chaaskit/client/dist/lib/styles.css" }];
8
+ return [];
9
9
  }
10
10
  function TermsRoute() {
11
11
  return /* @__PURE__ */ jsx(ChatProviders, { children: /* @__PURE__ */ jsx(TermsPage, {}) });
@@ -1 +1 @@
1
- {"version":3,"file":"TermsRoute.js","sources":["../../../src/routes/TermsRoute.tsx"],"sourcesContent":["/**\n * Terms Route - Terms of service page\n */\nimport { ChatProviders } from '../index';\nimport TermsPage from '../pages/TermsPage';\nimport { SimpleLoadingSkeleton } from '../components/LoadingSkeletons';\n\nexport function meta() {\n return [{ title: 'Terms of Service' }];\n}\n\nexport function links() {\n return [{ rel: 'stylesheet', href: '/node_modules/@chaaskit/client/dist/lib/styles.css' }];\n}\n\nexport default function TermsRoute() {\n return (\n <ChatProviders>\n <TermsPage />\n </ChatProviders>\n );\n}\n\nexport { SimpleLoadingSkeleton as LoadingSkeleton };\n"],"names":[],"mappings":";;;AAOO,SAAS,OAAO;AACrB,SAAO,CAAC,EAAE,OAAO,oBAAoB;AACvC;AAEO,SAAS,QAAQ;AACtB,SAAO,CAAC,EAAE,KAAK,cAAc,MAAM,sDAAsD;AAC3F;AAEA,SAAwB,aAAa;AACnC,SACE,oBAAC,eAAA,EACC,UAAA,oBAAC,WAAA,CAAA,CAAU,GACb;AAEJ;"}
1
+ {"version":3,"file":"TermsRoute.js","sources":["../../../src/routes/TermsRoute.tsx"],"sourcesContent":["/**\n * Terms Route - Terms of service page\n */\nimport { ChatProviders } from '../index';\nimport TermsPage from '../pages/TermsPage';\nimport { SimpleLoadingSkeleton } from '../components/LoadingSkeletons';\n\nexport function meta() {\n return [{ title: 'Terms of Service' }];\n}\n\nexport function links() {\n return [];\n}\n\nexport default function TermsRoute() {\n return (\n <ChatProviders>\n <TermsPage />\n </ChatProviders>\n );\n}\n\nexport { SimpleLoadingSkeleton as LoadingSkeleton };\n"],"names":[],"mappings":";;;AAOO,SAAS,OAAO;AACrB,SAAO,CAAC,EAAE,OAAO,oBAAoB;AACvC;AAEO,SAAS,QAAQ;AACtB,SAAO,CAAA;AACT;AAEA,SAAwB,aAAa;AACnC,SACE,oBAAC,eAAA,EACC,UAAA,oBAAC,WAAA,CAAA,CAAU,GACb;AAEJ;"}
@@ -5,7 +5,7 @@ function meta() {
5
5
  return [{ title: "Verify Email" }];
6
6
  }
7
7
  function links() {
8
- return [{ rel: "stylesheet", href: "/node_modules/@chaaskit/client/dist/lib/styles.css" }];
8
+ return [];
9
9
  }
10
10
  function VerifyEmailRoute() {
11
11
  return /* @__PURE__ */ jsx(ChatProviders, { children: /* @__PURE__ */ jsx(VerifyEmailPage, {}) });
@@ -1 +1 @@
1
- {"version":3,"file":"VerifyEmailRoute.js","sources":["../../../src/routes/VerifyEmailRoute.tsx"],"sourcesContent":["/**\n * Verify Email Route - Email verification page\n */\nimport { ChatProviders } from '../index';\nimport VerifyEmailPage from '../pages/VerifyEmailPage';\nimport { SimpleLoadingSkeleton } from '../components/LoadingSkeletons';\n\nexport function meta() {\n return [{ title: 'Verify Email' }];\n}\n\nexport function links() {\n return [{ rel: 'stylesheet', href: '/node_modules/@chaaskit/client/dist/lib/styles.css' }];\n}\n\nexport default function VerifyEmailRoute() {\n return (\n <ChatProviders>\n <VerifyEmailPage />\n </ChatProviders>\n );\n}\n\nexport { SimpleLoadingSkeleton as LoadingSkeleton };\n"],"names":[],"mappings":";;;AAOO,SAAS,OAAO;AACrB,SAAO,CAAC,EAAE,OAAO,gBAAgB;AACnC;AAEO,SAAS,QAAQ;AACtB,SAAO,CAAC,EAAE,KAAK,cAAc,MAAM,sDAAsD;AAC3F;AAEA,SAAwB,mBAAmB;AACzC,SACE,oBAAC,eAAA,EACC,UAAA,oBAAC,iBAAA,CAAA,CAAgB,GACnB;AAEJ;"}
1
+ {"version":3,"file":"VerifyEmailRoute.js","sources":["../../../src/routes/VerifyEmailRoute.tsx"],"sourcesContent":["/**\n * Verify Email Route - Email verification page\n */\nimport { ChatProviders } from '../index';\nimport VerifyEmailPage from '../pages/VerifyEmailPage';\nimport { SimpleLoadingSkeleton } from '../components/LoadingSkeletons';\n\nexport function meta() {\n return [{ title: 'Verify Email' }];\n}\n\nexport function links() {\n return [];\n}\n\nexport default function VerifyEmailRoute() {\n return (\n <ChatProviders>\n <VerifyEmailPage />\n </ChatProviders>\n );\n}\n\nexport { SimpleLoadingSkeleton as LoadingSkeleton };\n"],"names":[],"mappings":";;;AAOO,SAAS,OAAO;AACrB,SAAO,CAAC,EAAE,OAAO,gBAAgB;AACnC;AAEO,SAAS,QAAQ;AACtB,SAAO,CAAA;AACT;AAEA,SAAwB,mBAAmB;AACzC,SACE,oBAAC,eAAA,EACC,UAAA,oBAAC,iBAAA,CAAA,CAAgB,GACnB;AAEJ;"}
@@ -1,6 +1,48 @@
1
1
  import { jsx } from "react/jsx-runtime";
2
2
  import { lazy, Suspense } from "react";
3
3
  import { a as ClientOnly, C as ChatLoadingSkeleton, S as SimpleLoadingSkeleton } from "./LoadingSkeletons-IcIC2JPq.js";
4
+ function ConfigScript({ config }) {
5
+ var _a, _b, _c, _d, _e, _f, _g, _h, _i;
6
+ const safeConfig = {
7
+ app: config.app,
8
+ ui: config.ui,
9
+ theming: config.theming,
10
+ auth: {
11
+ methods: (_a = config.auth) == null ? void 0 : _a.methods,
12
+ allowUnauthenticated: (_b = config.auth) == null ? void 0 : _b.allowUnauthenticated
13
+ },
14
+ payments: {
15
+ enabled: (_c = config.payments) == null ? void 0 : _c.enabled,
16
+ plans: (_e = (_d = config.payments) == null ? void 0 : _d.plans) == null ? void 0 : _e.map((plan) => ({
17
+ id: plan.id,
18
+ name: plan.name,
19
+ type: plan.type
20
+ }))
21
+ },
22
+ legal: config.legal,
23
+ sharing: config.sharing,
24
+ teams: config.teams,
25
+ projects: config.projects,
26
+ documents: {
27
+ enabled: (_f = config.documents) == null ? void 0 : _f.enabled
28
+ },
29
+ api: {
30
+ enabled: (_g = config.api) == null ? void 0 : _g.enabled
31
+ },
32
+ promptTemplates: {
33
+ enabled: (_h = config.promptTemplates) == null ? void 0 : _h.enabled,
34
+ allowUserTemplates: (_i = config.promptTemplates) == null ? void 0 : _i.allowUserTemplates
35
+ }
36
+ };
37
+ return /* @__PURE__ */ jsx(
38
+ "script",
39
+ {
40
+ dangerouslySetInnerHTML: {
41
+ __html: `window.__CHAASKIT_CONFIG__=${JSON.stringify(safeConfig)};`
42
+ }
43
+ }
44
+ );
45
+ }
4
46
  function createRoute(config) {
5
47
  const { title, load, skeleton = "simple" } = config;
6
48
  const LazyComponent = lazy(load);
@@ -9,7 +51,7 @@ function createRoute(config) {
9
51
  return [{ title }];
10
52
  }
11
53
  function links() {
12
- return [{ rel: "stylesheet", href: "/node_modules/@chaaskit/client/dist/lib/styles.css" }];
54
+ return [];
13
55
  }
14
56
  function RouteComponent() {
15
57
  return /* @__PURE__ */ jsx(ClientOnly, { fallback: /* @__PURE__ */ jsx(Skeleton, {}), children: () => /* @__PURE__ */ jsx(Suspense, { fallback: /* @__PURE__ */ jsx(Skeleton, {}), children: /* @__PURE__ */ jsx(LazyComponent, {}) }) });
@@ -23,6 +65,7 @@ function createRoute(config) {
23
65
  export {
24
66
  ChatLoadingSkeleton,
25
67
  ClientOnly,
68
+ ConfigScript,
26
69
  SimpleLoadingSkeleton,
27
70
  createRoute
28
71
  };
@@ -1 +1 @@
1
- {"version":3,"file":"ssr-utils.js","sources":["../../src/ssr-utils.tsx"],"sourcesContent":["/**\n * SSR-safe utilities for @chaaskit/client\n *\n * This entry point ONLY exports components that are safe to import during SSR.\n * Use this in route files instead of importing from the main entry point\n * to avoid pulling in browser-only dependencies like react-markdown.\n *\n * @example\n * ```tsx\n * // In your route file\n * import { createRoute, SimpleLoadingSkeleton } from '@chaaskit/client/ssr-utils';\n *\n * export const { meta, links, default: Component } = createRoute({\n * title: 'Verify Email',\n * load: () => import('@chaaskit/client/routes/VerifyEmailRoute'),\n * });\n * export default Component;\n * ```\n */\n\nimport { lazy, Suspense, type ComponentType, type LazyExoticComponent } from 'react';\nimport { ClientOnly } from './components/ClientOnly';\nimport { ChatLoadingSkeleton, SimpleLoadingSkeleton } from './components/LoadingSkeletons';\n\nexport { ClientOnly, ChatLoadingSkeleton, SimpleLoadingSkeleton };\n\n/**\n * Route configuration options\n */\nexport interface RouteConfig {\n /** Page title for meta tag */\n title: string;\n /** Dynamic import function for the route component */\n load: () => Promise<{ default: ComponentType<any> }>;\n /** Loading skeleton to show during SSR and lazy load (defaults to SimpleLoadingSkeleton) */\n skeleton?: 'simple' | 'chat';\n}\n\n/**\n * Creates a route module with meta, links, and default component.\n * This reduces route files to just a few lines.\n *\n * @example\n * ```tsx\n * import { createRoute } from '@chaaskit/client/ssr-utils';\n *\n * export const { meta, links, default: VerifyEmail } = createRoute({\n * title: 'Verify Email',\n * load: () => import('@chaaskit/client/routes/VerifyEmailRoute'),\n * });\n * export default VerifyEmail;\n * ```\n */\nexport function createRoute(config: RouteConfig) {\n const { title, load, skeleton = 'simple' } = config;\n const LazyComponent = lazy(load);\n const Skeleton = skeleton === 'chat' ? ChatLoadingSkeleton : SimpleLoadingSkeleton;\n\n function meta() {\n return [{ title }];\n }\n\n function links() {\n return [{ rel: 'stylesheet', href: '/node_modules/@chaaskit/client/dist/lib/styles.css' }];\n }\n\n function RouteComponent() {\n return (\n <ClientOnly fallback={<Skeleton />}>\n {() => (\n <Suspense fallback={<Skeleton />}>\n <LazyComponent />\n </Suspense>\n )}\n </ClientOnly>\n );\n }\n\n return {\n meta,\n links,\n default: RouteComponent,\n };\n}\n"],"names":[],"mappings":";;;AAqDO,SAAS,YAAY,QAAqB;AAC/C,QAAM,EAAE,OAAO,MAAM,WAAW,aAAa;AAC7C,QAAM,gBAAgB,KAAK,IAAI;AAC/B,QAAM,WAAW,aAAa,SAAS,sBAAsB;AAE7D,WAAS,OAAO;AACd,WAAO,CAAC,EAAE,OAAO;AAAA,EACnB;AAEA,WAAS,QAAQ;AACf,WAAO,CAAC,EAAE,KAAK,cAAc,MAAM,sDAAsD;AAAA,EAC3F;AAEA,WAAS,iBAAiB;AACxB,+BACG,YAAA,EAAW,UAAU,oBAAC,UAAA,EAAS,GAC7B,UAAA,MACC,oBAAC,UAAA,EAAS,8BAAW,UAAA,CAAA,CAAS,GAC5B,UAAA,oBAAC,eAAA,CAAA,CAAc,GACjB,GAEJ;AAAA,EAEJ;AAEA,SAAO;AAAA,IACL;AAAA,IACA;AAAA,IACA,SAAS;AAAA,EAAA;AAEb;"}
1
+ {"version":3,"file":"ssr-utils.js","sources":["../../src/ssr-utils.tsx"],"sourcesContent":["/**\n * SSR-safe utilities for @chaaskit/client\n *\n * This entry point ONLY exports components that are safe to import during SSR.\n * Use this in route files instead of importing from the main entry point\n * to avoid pulling in browser-only dependencies like react-markdown.\n *\n * @example\n * ```tsx\n * // In your route file\n * import { createRoute, SimpleLoadingSkeleton } from '@chaaskit/client/ssr-utils';\n *\n * export const { meta, links, default: Component } = createRoute({\n * title: 'Verify Email',\n * load: () => import('@chaaskit/client/routes/VerifyEmailRoute'),\n * });\n * export default Component;\n * ```\n */\n\nimport { lazy, Suspense, type ComponentType, type LazyExoticComponent } from 'react';\nimport type { AppConfig } from '@chaaskit/shared';\nimport { ClientOnly } from './components/ClientOnly';\nimport { ChatLoadingSkeleton, SimpleLoadingSkeleton } from './components/LoadingSkeletons';\n\nexport { ClientOnly, ChatLoadingSkeleton, SimpleLoadingSkeleton };\n\n/**\n * Props for ConfigScript component.\n */\ninterface ConfigScriptProps {\n /**\n * The app config to inject into the page.\n * This should come from the SSR loader.\n */\n config: AppConfig;\n}\n\n/**\n * Injects the app config into the page as a script tag.\n * Place this in the <head> of your root layout to make the config\n * available immediately on page load, avoiding flash of default values.\n *\n * @example\n * ```tsx\n * // app/root.tsx\n * import { ConfigScript } from '@chaaskit/client/ssr-utils';\n * import { config } from '../config/app.config';\n *\n * export default function Root() {\n * return (\n * <html>\n * <head>\n * <ConfigScript config={config} />\n * </head>\n * <body>...</body>\n * </html>\n * );\n * }\n * ```\n */\nexport function ConfigScript({ config }: ConfigScriptProps) {\n // Only include the UI-related config to avoid exposing sensitive data\n const safeConfig = {\n app: config.app,\n ui: config.ui,\n theming: config.theming,\n auth: {\n methods: config.auth?.methods,\n allowUnauthenticated: config.auth?.allowUnauthenticated,\n },\n payments: {\n enabled: config.payments?.enabled,\n plans: config.payments?.plans?.map(plan => ({\n id: plan.id,\n name: plan.name,\n type: plan.type,\n })),\n },\n legal: config.legal,\n sharing: config.sharing,\n teams: config.teams,\n projects: config.projects,\n documents: {\n enabled: config.documents?.enabled,\n },\n api: {\n enabled: config.api?.enabled,\n },\n promptTemplates: {\n enabled: config.promptTemplates?.enabled,\n allowUserTemplates: config.promptTemplates?.allowUserTemplates,\n },\n };\n\n return (\n <script\n dangerouslySetInnerHTML={{\n __html: `window.__CHAASKIT_CONFIG__=${JSON.stringify(safeConfig)};`,\n }}\n />\n );\n}\n\n/**\n * Route configuration options\n */\nexport interface RouteConfig {\n /** Page title for meta tag */\n title: string;\n /** Dynamic import function for the route component */\n load: () => Promise<{ default: ComponentType<any> }>;\n /** Loading skeleton to show during SSR and lazy load (defaults to SimpleLoadingSkeleton) */\n skeleton?: 'simple' | 'chat';\n}\n\n/**\n * Creates a route module with meta, links, and default component.\n * This reduces route files to just a few lines.\n *\n * @example\n * ```tsx\n * import { createRoute } from '@chaaskit/client/ssr-utils';\n *\n * export const { meta, links, default: VerifyEmail } = createRoute({\n * title: 'Verify Email',\n * load: () => import('@chaaskit/client/routes/VerifyEmailRoute'),\n * });\n * export default VerifyEmail;\n * ```\n */\nexport function createRoute(config: RouteConfig) {\n const { title, load, skeleton = 'simple' } = config;\n const LazyComponent = lazy(load);\n const Skeleton = skeleton === 'chat' ? ChatLoadingSkeleton : SimpleLoadingSkeleton;\n\n function meta() {\n return [{ title }];\n }\n\n function links() {\n // CSS is bundled via app's Tailwind preset - no separate stylesheet needed\n return [];\n }\n\n function RouteComponent() {\n return (\n <ClientOnly fallback={<Skeleton />}>\n {() => (\n <Suspense fallback={<Skeleton />}>\n <LazyComponent />\n </Suspense>\n )}\n </ClientOnly>\n );\n }\n\n return {\n meta,\n links,\n default: RouteComponent,\n };\n}\n"],"names":[],"mappings":";;;AA6DO,SAAS,aAAa,EAAE,UAA6B;;AAE1D,QAAM,aAAa;AAAA,IACjB,KAAK,OAAO;AAAA,IACZ,IAAI,OAAO;AAAA,IACX,SAAS,OAAO;AAAA,IAChB,MAAM;AAAA,MACJ,UAAS,YAAO,SAAP,mBAAa;AAAA,MACtB,uBAAsB,YAAO,SAAP,mBAAa;AAAA,IAAA;AAAA,IAErC,UAAU;AAAA,MACR,UAAS,YAAO,aAAP,mBAAiB;AAAA,MAC1B,QAAO,kBAAO,aAAP,mBAAiB,UAAjB,mBAAwB,IAAI,CAAA,UAAS;AAAA,QAC1C,IAAI,KAAK;AAAA,QACT,MAAM,KAAK;AAAA,QACX,MAAM,KAAK;AAAA,MAAA;AAAA,IACX;AAAA,IAEJ,OAAO,OAAO;AAAA,IACd,SAAS,OAAO;AAAA,IAChB,OAAO,OAAO;AAAA,IACd,UAAU,OAAO;AAAA,IACjB,WAAW;AAAA,MACT,UAAS,YAAO,cAAP,mBAAkB;AAAA,IAAA;AAAA,IAE7B,KAAK;AAAA,MACH,UAAS,YAAO,QAAP,mBAAY;AAAA,IAAA;AAAA,IAEvB,iBAAiB;AAAA,MACf,UAAS,YAAO,oBAAP,mBAAwB;AAAA,MACjC,qBAAoB,YAAO,oBAAP,mBAAwB;AAAA,IAAA;AAAA,EAC9C;AAGF,SACE;AAAA,IAAC;AAAA,IAAA;AAAA,MACC,yBAAyB;AAAA,QACvB,QAAQ,8BAA8B,KAAK,UAAU,UAAU,CAAC;AAAA,MAAA;AAAA,IAClE;AAAA,EAAA;AAGN;AA6BO,SAAS,YAAY,QAAqB;AAC/C,QAAM,EAAE,OAAO,MAAM,WAAW,aAAa;AAC7C,QAAM,gBAAgB,KAAK,IAAI;AAC/B,QAAM,WAAW,aAAa,SAAS,sBAAsB;AAE7D,WAAS,OAAO;AACd,WAAO,CAAC,EAAE,OAAO;AAAA,EACnB;AAEA,WAAS,QAAQ;AAEf,WAAO,CAAA;AAAA,EACT;AAEA,WAAS,iBAAiB;AACxB,+BACG,YAAA,EAAW,UAAU,oBAAC,UAAA,EAAS,GAC7B,UAAA,MACC,oBAAC,UAAA,EAAS,8BAAW,UAAA,CAAA,CAAS,GAC5B,UAAA,oBAAC,eAAA,CAAA,CAAc,GACjB,GAEJ;AAAA,EAEJ;AAEA,SAAO;AAAA,IACL;AAAA,IACA;AAAA,IACA,SAAS;AAAA,EAAA;AAEb;"}
package/dist/lib/ssr.js CHANGED
@@ -39,6 +39,28 @@ function getThemeVariables(config, theme) {
39
39
  vars["--radius-full"] = config.theming.borderRadius.full;
40
40
  return vars;
41
41
  }
42
+ function generateAllThemesCSS(config) {
43
+ const themes = config.theming.themes;
44
+ let css = "";
45
+ for (const [themeName, themeConfig] of Object.entries(themes)) {
46
+ const cssVars = Object.entries(themeConfig.colors).map(([key, value]) => {
47
+ const cssKey = `--color-${key.replace(/([A-Z])/g, "-$1").toLowerCase()}`;
48
+ return `${cssKey}: ${hexToRgb(value)};`;
49
+ }).join("\n ");
50
+ css += `
51
+ html[data-theme="${themeName}"] {
52
+ ${cssVars}
53
+ --font-sans: ${config.theming.fonts.sans};
54
+ --font-mono: ${config.theming.fonts.mono};
55
+ --radius-sm: ${config.theming.borderRadius.sm};
56
+ --radius-md: ${config.theming.borderRadius.md};
57
+ --radius-lg: ${config.theming.borderRadius.lg};
58
+ --radius-full: ${config.theming.borderRadius.full};
59
+ }
60
+ `;
61
+ }
62
+ return css;
63
+ }
42
64
  const baseStyles = `
43
65
  html { font-family: var(--font-sans); }
44
66
  body {
@@ -51,6 +73,7 @@ export {
51
73
  S as ServerConfigProvider,
52
74
  b as ServerThemeProvider,
53
75
  baseStyles,
76
+ generateAllThemesCSS,
54
77
  generateThemeCSS,
55
78
  getThemeVariables,
56
79
  u as useServerConfig,
@@ -1 +1 @@
1
- {"version":3,"file":"ssr.js","sources":["../../src/ssr.ts"],"sourcesContent":["/**\n * SSR-safe exports for server-side rendering.\n *\n * This module exports components and utilities that can be used on the server\n * without browser APIs like window, document, or localStorage.\n */\n\nimport type { AppConfig } from '@chaaskit/shared';\n\n// SSR-safe context providers\nexport {\n ServerConfigProvider,\n useServerConfig,\n useServerConfigLoaded,\n type ServerConfigProviderProps,\n} from './contexts/ServerConfigProvider';\n\nexport {\n ServerThemeProvider,\n useServerTheme,\n type ServerThemeProviderProps,\n} from './contexts/ServerThemeProvider';\n\n// NOTE: SSRMessageList and SSRMarkdownRenderer are NOT exported here because\n// they depend on react-markdown which has browser-only dependencies.\n// Use them only in client-side code wrapped in <ClientOnly>.\n\n// ============================================\n// Theme utilities for SSR\n// ============================================\n\n/**\n * Converts a hex color to RGB values string (e.g., \"#ff0000\" -> \"255 0 0\")\n */\nfunction hexToRgb(hex: string): string {\n const result = /^#?([a-f\\d]{2})([a-f\\d]{2})([a-f\\d]{2})$/i.exec(hex);\n if (!result) return '';\n return `${parseInt(result[1]!, 16)} ${parseInt(result[2]!, 16)} ${parseInt(result[3]!, 16)}`;\n}\n\n/**\n * Generates CSS variables for a theme.\n * Use this in your React Router root.tsx to inject theme styles.\n *\n * @example\n * ```tsx\n * // app/root.tsx\n * import { generateThemeCSS } from '@chaaskit/client/ssr';\n *\n * export default function Root() {\n * const themeCSS = generateThemeCSS(config, 'dark');\n * return (\n * <html>\n * <head>\n * <style dangerouslySetInnerHTML={{ __html: themeCSS }} />\n * </head>\n * ...\n * </html>\n * );\n * }\n * ```\n */\nexport function generateThemeCSS(config: AppConfig, theme: string): string {\n const themeConfig = config.theming.themes[theme];\n if (!themeConfig) return '';\n\n const cssVars = Object.entries(themeConfig.colors)\n .map(([key, value]) => {\n const cssKey = `--color-${key.replace(/([A-Z])/g, '-$1').toLowerCase()}`;\n return `${cssKey}: ${hexToRgb(value)};`;\n })\n .join('\\n ');\n\n return `\n :root {\n ${cssVars}\n --font-sans: ${config.theming.fonts.sans};\n --font-mono: ${config.theming.fonts.mono};\n --radius-sm: ${config.theming.borderRadius.sm};\n --radius-md: ${config.theming.borderRadius.md};\n --radius-lg: ${config.theming.borderRadius.lg};\n --radius-full: ${config.theming.borderRadius.full};\n }\n `;\n}\n\n/**\n * Returns an object of CSS variable name -> value pairs for a theme.\n * Useful if you need programmatic access to theme values.\n */\nexport function getThemeVariables(config: AppConfig, theme: string): Record<string, string> {\n const themeConfig = config.theming.themes[theme];\n if (!themeConfig) return {};\n\n const vars: Record<string, string> = {};\n\n for (const [key, value] of Object.entries(themeConfig.colors)) {\n const cssKey = `--color-${key.replace(/([A-Z])/g, '-$1').toLowerCase()}`;\n vars[cssKey] = hexToRgb(value);\n }\n\n vars['--font-sans'] = config.theming.fonts.sans;\n vars['--font-mono'] = config.theming.fonts.mono;\n vars['--radius-sm'] = config.theming.borderRadius.sm;\n vars['--radius-md'] = config.theming.borderRadius.md;\n vars['--radius-lg'] = config.theming.borderRadius.lg;\n vars['--radius-full'] = config.theming.borderRadius.full;\n\n return vars;\n}\n\n/**\n * Base CSS styles for SSR pages.\n * Include this in your HTML template for consistent styling.\n */\nexport const baseStyles = `\n html { font-family: var(--font-sans); }\n body {\n margin: 0;\n background-color: rgb(var(--color-background));\n color: rgb(var(--color-text-primary));\n }\n`;\n"],"names":[],"mappings":";AAkCA,SAAS,SAAS,KAAqB;AACrC,QAAM,SAAS,4CAA4C,KAAK,GAAG;AACnE,MAAI,CAAC,OAAQ,QAAO;AACpB,SAAO,GAAG,SAAS,OAAO,CAAC,GAAI,EAAE,CAAC,IAAI,SAAS,OAAO,CAAC,GAAI,EAAE,CAAC,IAAI,SAAS,OAAO,CAAC,GAAI,EAAE,CAAC;AAC5F;AAwBO,SAAS,iBAAiB,QAAmB,OAAuB;AACzE,QAAM,cAAc,OAAO,QAAQ,OAAO,KAAK;AAC/C,MAAI,CAAC,YAAa,QAAO;AAEzB,QAAM,UAAU,OAAO,QAAQ,YAAY,MAAM,EAC9C,IAAI,CAAC,CAAC,KAAK,KAAK,MAAM;AACrB,UAAM,SAAS,WAAW,IAAI,QAAQ,YAAY,KAAK,EAAE,aAAa;AACtE,WAAO,GAAG,MAAM,KAAK,SAAS,KAAK,CAAC;AAAA,EACtC,CAAC,EACA,KAAK,QAAQ;AAEhB,SAAO;AAAA;AAAA,QAED,OAAO;AAAA,qBACM,OAAO,QAAQ,MAAM,IAAI;AAAA,qBACzB,OAAO,QAAQ,MAAM,IAAI;AAAA,qBACzB,OAAO,QAAQ,aAAa,EAAE;AAAA,qBAC9B,OAAO,QAAQ,aAAa,EAAE;AAAA,qBAC9B,OAAO,QAAQ,aAAa,EAAE;AAAA,uBAC5B,OAAO,QAAQ,aAAa,IAAI;AAAA;AAAA;AAGvD;AAMO,SAAS,kBAAkB,QAAmB,OAAuC;AAC1F,QAAM,cAAc,OAAO,QAAQ,OAAO,KAAK;AAC/C,MAAI,CAAC,YAAa,QAAO,CAAA;AAEzB,QAAM,OAA+B,CAAA;AAErC,aAAW,CAAC,KAAK,KAAK,KAAK,OAAO,QAAQ,YAAY,MAAM,GAAG;AAC7D,UAAM,SAAS,WAAW,IAAI,QAAQ,YAAY,KAAK,EAAE,aAAa;AACtE,SAAK,MAAM,IAAI,SAAS,KAAK;AAAA,EAC/B;AAEA,OAAK,aAAa,IAAI,OAAO,QAAQ,MAAM;AAC3C,OAAK,aAAa,IAAI,OAAO,QAAQ,MAAM;AAC3C,OAAK,aAAa,IAAI,OAAO,QAAQ,aAAa;AAClD,OAAK,aAAa,IAAI,OAAO,QAAQ,aAAa;AAClD,OAAK,aAAa,IAAI,OAAO,QAAQ,aAAa;AAClD,OAAK,eAAe,IAAI,OAAO,QAAQ,aAAa;AAEpD,SAAO;AACT;AAMO,MAAM,aAAa;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;"}
1
+ {"version":3,"file":"ssr.js","sources":["../../src/ssr.ts"],"sourcesContent":["/**\n * SSR-safe exports for server-side rendering.\n *\n * This module exports components and utilities that can be used on the server\n * without browser APIs like window, document, or localStorage.\n */\n\nimport type { AppConfig } from '@chaaskit/shared';\n\n// SSR-safe context providers\nexport {\n ServerConfigProvider,\n useServerConfig,\n useServerConfigLoaded,\n type ServerConfigProviderProps,\n} from './contexts/ServerConfigProvider';\n\nexport {\n ServerThemeProvider,\n useServerTheme,\n type ServerThemeProviderProps,\n} from './contexts/ServerThemeProvider';\n\n// NOTE: SSRMessageList and SSRMarkdownRenderer are NOT exported here because\n// they depend on react-markdown which has browser-only dependencies.\n// Use them only in client-side code wrapped in <ClientOnly>.\n\n// ============================================\n// Theme utilities for SSR\n// ============================================\n\n/**\n * Converts a hex color to RGB values string (e.g., \"#ff0000\" -> \"255 0 0\")\n */\nfunction hexToRgb(hex: string): string {\n const result = /^#?([a-f\\d]{2})([a-f\\d]{2})([a-f\\d]{2})$/i.exec(hex);\n if (!result) return '';\n return `${parseInt(result[1]!, 16)} ${parseInt(result[2]!, 16)} ${parseInt(result[3]!, 16)}`;\n}\n\n/**\n * Generates CSS variables for a theme.\n * Use this in your React Router root.tsx to inject theme styles.\n *\n * @example\n * ```tsx\n * // app/root.tsx\n * import { generateThemeCSS } from '@chaaskit/client/ssr';\n *\n * export default function Root() {\n * const themeCSS = generateThemeCSS(config, 'dark');\n * return (\n * <html>\n * <head>\n * <style dangerouslySetInnerHTML={{ __html: themeCSS }} />\n * </head>\n * ...\n * </html>\n * );\n * }\n * ```\n */\nexport function generateThemeCSS(config: AppConfig, theme: string): string {\n const themeConfig = config.theming.themes[theme];\n if (!themeConfig) return '';\n\n const cssVars = Object.entries(themeConfig.colors)\n .map(([key, value]) => {\n const cssKey = `--color-${key.replace(/([A-Z])/g, '-$1').toLowerCase()}`;\n return `${cssKey}: ${hexToRgb(value)};`;\n })\n .join('\\n ');\n\n return `\n :root {\n ${cssVars}\n --font-sans: ${config.theming.fonts.sans};\n --font-mono: ${config.theming.fonts.mono};\n --radius-sm: ${config.theming.borderRadius.sm};\n --radius-md: ${config.theming.borderRadius.md};\n --radius-lg: ${config.theming.borderRadius.lg};\n --radius-full: ${config.theming.borderRadius.full};\n }\n `;\n}\n\n/**\n * Returns an object of CSS variable name -> value pairs for a theme.\n * Useful if you need programmatic access to theme values.\n */\nexport function getThemeVariables(config: AppConfig, theme: string): Record<string, string> {\n const themeConfig = config.theming.themes[theme];\n if (!themeConfig) return {};\n\n const vars: Record<string, string> = {};\n\n for (const [key, value] of Object.entries(themeConfig.colors)) {\n const cssKey = `--color-${key.replace(/([A-Z])/g, '-$1').toLowerCase()}`;\n vars[cssKey] = hexToRgb(value);\n }\n\n vars['--font-sans'] = config.theming.fonts.sans;\n vars['--font-mono'] = config.theming.fonts.mono;\n vars['--radius-sm'] = config.theming.borderRadius.sm;\n vars['--radius-md'] = config.theming.borderRadius.md;\n vars['--radius-lg'] = config.theming.borderRadius.lg;\n vars['--radius-full'] = config.theming.borderRadius.full;\n\n return vars;\n}\n\n/**\n * Generates CSS for ALL themes using html[data-theme] selectors.\n * This is the recommended way to include theme styles - it allows instant\n * theme switching by just changing the data-theme attribute on <html>.\n *\n * @example\n * ```tsx\n * // app/root.tsx\n * import { generateAllThemesCSS, baseStyles } from '@chaaskit/client/ssr';\n *\n * // Cache on server - only generate once\n * let cachedCSS: string | null = null;\n *\n * export async function loader() {\n * if (!cachedCSS) cachedCSS = generateAllThemesCSS(config);\n * return { themeCSS: cachedCSS };\n * }\n *\n * export default function Root() {\n * const { themeCSS } = useLoaderData();\n * return (\n * <html data-theme=\"dark\">\n * <head>\n * <style dangerouslySetInnerHTML={{ __html: themeCSS + baseStyles }} />\n * </head>\n * ...\n * </html>\n * );\n * }\n * ```\n */\nexport function generateAllThemesCSS(config: AppConfig): string {\n const themes = config.theming.themes;\n let css = '';\n\n for (const [themeName, themeConfig] of Object.entries(themes)) {\n const cssVars = Object.entries(themeConfig.colors)\n .map(([key, value]) => {\n const cssKey = `--color-${key.replace(/([A-Z])/g, '-$1').toLowerCase()}`;\n return `${cssKey}: ${hexToRgb(value)};`;\n })\n .join('\\n ');\n\n css += `\n html[data-theme=\"${themeName}\"] {\n ${cssVars}\n --font-sans: ${config.theming.fonts.sans};\n --font-mono: ${config.theming.fonts.mono};\n --radius-sm: ${config.theming.borderRadius.sm};\n --radius-md: ${config.theming.borderRadius.md};\n --radius-lg: ${config.theming.borderRadius.lg};\n --radius-full: ${config.theming.borderRadius.full};\n }\n`;\n }\n\n return css;\n}\n\n/**\n * Base CSS styles for SSR pages.\n * Include this in your HTML template for consistent styling.\n */\nexport const baseStyles = `\n html { font-family: var(--font-sans); }\n body {\n margin: 0;\n background-color: rgb(var(--color-background));\n color: rgb(var(--color-text-primary));\n }\n`;\n"],"names":[],"mappings":";AAkCA,SAAS,SAAS,KAAqB;AACrC,QAAM,SAAS,4CAA4C,KAAK,GAAG;AACnE,MAAI,CAAC,OAAQ,QAAO;AACpB,SAAO,GAAG,SAAS,OAAO,CAAC,GAAI,EAAE,CAAC,IAAI,SAAS,OAAO,CAAC,GAAI,EAAE,CAAC,IAAI,SAAS,OAAO,CAAC,GAAI,EAAE,CAAC;AAC5F;AAwBO,SAAS,iBAAiB,QAAmB,OAAuB;AACzE,QAAM,cAAc,OAAO,QAAQ,OAAO,KAAK;AAC/C,MAAI,CAAC,YAAa,QAAO;AAEzB,QAAM,UAAU,OAAO,QAAQ,YAAY,MAAM,EAC9C,IAAI,CAAC,CAAC,KAAK,KAAK,MAAM;AACrB,UAAM,SAAS,WAAW,IAAI,QAAQ,YAAY,KAAK,EAAE,aAAa;AACtE,WAAO,GAAG,MAAM,KAAK,SAAS,KAAK,CAAC;AAAA,EACtC,CAAC,EACA,KAAK,QAAQ;AAEhB,SAAO;AAAA;AAAA,QAED,OAAO;AAAA,qBACM,OAAO,QAAQ,MAAM,IAAI;AAAA,qBACzB,OAAO,QAAQ,MAAM,IAAI;AAAA,qBACzB,OAAO,QAAQ,aAAa,EAAE;AAAA,qBAC9B,OAAO,QAAQ,aAAa,EAAE;AAAA,qBAC9B,OAAO,QAAQ,aAAa,EAAE;AAAA,uBAC5B,OAAO,QAAQ,aAAa,IAAI;AAAA;AAAA;AAGvD;AAMO,SAAS,kBAAkB,QAAmB,OAAuC;AAC1F,QAAM,cAAc,OAAO,QAAQ,OAAO,KAAK;AAC/C,MAAI,CAAC,YAAa,QAAO,CAAA;AAEzB,QAAM,OAA+B,CAAA;AAErC,aAAW,CAAC,KAAK,KAAK,KAAK,OAAO,QAAQ,YAAY,MAAM,GAAG;AAC7D,UAAM,SAAS,WAAW,IAAI,QAAQ,YAAY,KAAK,EAAE,aAAa;AACtE,SAAK,MAAM,IAAI,SAAS,KAAK;AAAA,EAC/B;AAEA,OAAK,aAAa,IAAI,OAAO,QAAQ,MAAM;AAC3C,OAAK,aAAa,IAAI,OAAO,QAAQ,MAAM;AAC3C,OAAK,aAAa,IAAI,OAAO,QAAQ,aAAa;AAClD,OAAK,aAAa,IAAI,OAAO,QAAQ,aAAa;AAClD,OAAK,aAAa,IAAI,OAAO,QAAQ,aAAa;AAClD,OAAK,eAAe,IAAI,OAAO,QAAQ,aAAa;AAEpD,SAAO;AACT;AAiCO,SAAS,qBAAqB,QAA2B;AAC9D,QAAM,SAAS,OAAO,QAAQ;AAC9B,MAAI,MAAM;AAEV,aAAW,CAAC,WAAW,WAAW,KAAK,OAAO,QAAQ,MAAM,GAAG;AAC7D,UAAM,UAAU,OAAO,QAAQ,YAAY,MAAM,EAC9C,IAAI,CAAC,CAAC,KAAK,KAAK,MAAM;AACrB,YAAM,SAAS,WAAW,IAAI,QAAQ,YAAY,KAAK,EAAE,aAAa;AACtE,aAAO,GAAG,MAAM,KAAK,SAAS,KAAK,CAAC;AAAA,IACtC,CAAC,EACA,KAAK,UAAU;AAElB,WAAO;AAAA,uBACY,SAAS;AAAA,QACxB,OAAO;AAAA,qBACM,OAAO,QAAQ,MAAM,IAAI;AAAA,qBACzB,OAAO,QAAQ,MAAM,IAAI;AAAA,qBACzB,OAAO,QAAQ,aAAa,EAAE;AAAA,qBAC9B,OAAO,QAAQ,aAAa,EAAE;AAAA,qBAC9B,OAAO,QAAQ,aAAa,EAAE;AAAA,uBAC5B,OAAO,QAAQ,aAAa,IAAI;AAAA;AAAA;AAAA,EAGrD;AAEA,SAAO;AACT;AAMO,MAAM,aAAa;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;"}
@@ -1615,6 +1615,9 @@ video {
1615
1615
  --tw-text-opacity: 1;
1616
1616
  color: rgb(255 255 255 / var(--tw-text-opacity, 1));
1617
1617
  }
1618
+ .underline {
1619
+ text-decoration-line: underline;
1620
+ }
1618
1621
  .placeholder-text-muted::-moz-placeholder {
1619
1622
  --tw-placeholder-opacity: 1;
1620
1623
  color: rgb(var(--color-text-muted) / var(--tw-placeholder-opacity, 1));
@@ -1684,70 +1687,26 @@ video {
1684
1687
  .ease-in-out {
1685
1688
  transition-timing-function: cubic-bezier(0.4, 0, 0.2, 1);
1686
1689
  }
1687
-
1688
- /* Default theme variables (Light) */
1689
- :root {
1690
- --color-primary: 99 102 241;
1691
- --color-primary-hover: 79 70 229;
1692
- --color-secondary: 139 92 246;
1693
-
1694
- --color-background: 255 255 255;
1695
- --color-background-secondary: 249 250 251;
1696
- --color-sidebar: 243 244 246;
1697
-
1698
- --color-text-primary: 17 24 39;
1699
- --color-text-secondary: 107 114 128;
1700
- --color-text-muted: 156 163 175;
1701
-
1702
- --color-border: 229 231 235;
1703
- --color-input-background: 255 255 255;
1704
- --color-input-border: 209 213 219;
1705
-
1706
- --color-user-message-bg: 99 102 241;
1707
- --color-user-message-text: 255 255 255;
1708
- --color-assistant-message-bg: 243 244 246;
1709
- --color-assistant-message-text: 17 24 39;
1710
-
1711
- --color-success: 16 185 129;
1712
- --color-warning: 245 158 11;
1713
- --color-error: 239 68 68;
1714
-
1715
- --font-sans: 'Inter', system-ui, sans-serif;
1716
- --font-mono: 'JetBrains Mono', Menlo, monospace;
1717
-
1718
- --radius-sm: 0.25rem;
1719
- --radius-md: 0.5rem;
1720
- --radius-lg: 0.75rem;
1721
- --radius-full: 9999px;
1690
+ .ease-out {
1691
+ transition-timing-function: cubic-bezier(0, 0, 0.2, 1);
1722
1692
  }
1723
1693
 
1724
- /* Dark theme */
1725
- [data-theme="dark"] {
1726
- --color-primary: 129 140 248;
1727
- --color-primary-hover: 165 180 252;
1728
- --color-secondary: 167 139 250;
1729
-
1730
- --color-background: 17 24 39;
1731
- --color-background-secondary: 31 41 55;
1732
- --color-sidebar: 15 23 42;
1733
-
1734
- --color-text-primary: 249 250 251;
1735
- --color-text-secondary: 209 213 219;
1736
- --color-text-muted: 107 114 128;
1737
-
1738
- --color-border: 55 65 81;
1739
- --color-input-background: 31 41 55;
1740
- --color-input-border: 75 85 99;
1741
-
1742
- --color-user-message-bg: 79 70 229;
1743
- --color-user-message-text: 255 255 255;
1744
- --color-assistant-message-bg: 31 41 55;
1745
- --color-assistant-message-text: 249 250 251;
1746
-
1747
- --color-success: 52 211 153;
1748
- --color-warning: 251 191 36;
1749
- --color-error: 248 113 113;
1750
- }
1694
+ /*
1695
+ * Theme CSS variables are NOT defined here.
1696
+ * The consuming app (chaaskit-app) is responsible for providing CSS variable values
1697
+ * via inline styles on <html> from config/app.config.ts.
1698
+ *
1699
+ * Required variables:
1700
+ * --color-primary, --color-primary-hover, --color-secondary
1701
+ * --color-background, --color-background-secondary, --color-sidebar
1702
+ * --color-text-primary, --color-text-secondary, --color-text-muted
1703
+ * --color-border, --color-input-background, --color-input-border
1704
+ * --color-user-message-bg, --color-user-message-text
1705
+ * --color-assistant-message-bg, --color-assistant-message-text
1706
+ * --color-success, --color-warning, --color-error
1707
+ * --font-sans, --font-mono
1708
+ * --radius-sm, --radius-md, --radius-lg, --radius-full
1709
+ */
1751
1710
 
1752
1711
  /* Base styles */
1753
1712
  html {
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@chaaskit/client",
3
- "version": "0.1.0",
3
+ "version": "0.1.1",
4
4
  "description": "React frontend client for ChaasKit AI chat applications",
5
5
  "license": "MIT",
6
6
  "author": "Matt Ferrante <@ferrants>",
@@ -41,6 +41,11 @@
41
41
  "import": "./dist/lib/routes/*.js"
42
42
  },
43
43
  "./styles": "./dist/lib/styles.css",
44
+ "./tailwind-preset": {
45
+ "types": "./src/tailwind-preset.js",
46
+ "import": "./src/tailwind-preset.js",
47
+ "require": "./src/tailwind-preset.js"
48
+ },
44
49
  "./src/*": "./src/*"
45
50
  },
46
51
  "files": [
@@ -56,7 +61,7 @@
56
61
  "clean": "rm -rf dist"
57
62
  },
58
63
  "dependencies": {
59
- "@chaaskit/shared": "^0.1.0",
64
+ "@chaaskit/shared": "^0.1.1",
60
65
  "lucide-react": "^0.321.0",
61
66
  "react": "^18.2.0",
62
67
  "react-dom": "^18.2.0",