From 9ecbf9031f50a1a53c838690542e264150ac587e Mon Sep 17 00:00:00 2001 From: Meng Zhang Date: Wed, 25 Oct 2023 16:05:11 -0700 Subject: [PATCH] refactor: rename tabby-playground to tabby-ui (#639) --- Makefile | 4 ++-- .../.env.development | 0 .../.env.development.example | 0 .../.eslintrc.json | 0 .../{tabby-playground => tabby-ui}/.gitignore | 0 clients/{tabby-playground => tabby-ui}/LICENSE | 0 clients/{tabby-playground => tabby-ui}/README.md | 0 .../app/globals.css | 0 .../app/layout.tsx | 0 .../{tabby-playground => tabby-ui}/app/page.tsx | 0 .../app/playground/page.tsx | 0 .../assets/fonts/Inter-Bold.woff | Bin .../assets/fonts/Inter-Regular.woff | Bin .../components/button-scroll-to-bottom.tsx | 0 .../components/chat-list.tsx | 0 .../components/chat-message-actions.tsx | 0 .../components/chat-message.tsx | 0 .../components/chat-panel.tsx | 0 .../components/chat-scroll-anchor.tsx | 0 .../components/chat.tsx | 0 .../components/clear-history.tsx | 0 .../components/empty-screen.tsx | 0 .../components/external-link.tsx | 0 .../components/footer.tsx | 0 .../components/header.tsx | 0 .../components/login-button.tsx | 0 .../components/markdown.tsx | 0 .../components/prompt-form.tsx | 0 .../components/providers.tsx | 0 .../components/tailwind-indicator.tsx | 0 .../components/theme-toggle.tsx | 0 .../components/toaster.tsx | 0 .../components/ui/alert-dialog.tsx | 0 .../components/ui/badge.tsx | 0 .../components/ui/button.tsx | 0 .../components/ui/codeblock.tsx | 0 .../components/ui/dialog.tsx | 0 .../components/ui/dropdown-menu.tsx | 0 .../components/ui/icons.tsx | 0 .../components/ui/input.tsx | 0 .../components/ui/label.tsx | 0 .../components/ui/select.tsx | 0 .../components/ui/separator.tsx | 0 .../components/ui/sheet.tsx | 0 .../components/ui/switch.tsx | 0 .../components/ui/textarea.tsx | 0 .../components/ui/tooltip.tsx | 0 .../components/user-menu.tsx | 0 .../{tabby-playground => tabby-ui}/lib/fonts.ts | 0 .../lib/hooks/use-at-bottom.tsx | 0 .../lib/hooks/use-copy-to-clipboard.tsx | 0 .../lib/hooks/use-enter-submit.tsx | 0 .../lib/hooks/use-local-storage.ts | 0 .../lib/hooks/use-patch-fetch.ts | 0 .../lib/tabby-stream.ts | 0 .../{tabby-playground => tabby-ui}/lib/types.ts | 0 .../{tabby-playground => tabby-ui}/lib/utils.ts | 0 .../{tabby-playground => tabby-ui}/next-env.d.ts | 0 .../next.config.js | 0 .../{tabby-playground => tabby-ui}/package.json | 2 +- .../postcss.config.js | 0 .../prettier.config.cjs | 0 .../tailwind.config.js | 0 .../{tabby-playground => tabby-ui}/tsconfig.json | 0 clients/{tabby-playground => tabby-ui}/yarn.lock | 0 crates/tabby/src/serve/mod.rs | 15 ++++++++------- crates/tabby/src/serve/{playground.rs => ui.rs} | 4 ++-- crates/tabby/{playground => ui}/404.html | 2 +- .../5Ardx8NLn9MFJ4mWUnSbO}/_buildManifest.js | 0 .../5Ardx8NLn9MFJ4mWUnSbO}/_ssgManifest.js | 0 .../_next/static/chunks/358-dc819165169f937b.js | 0 .../_next/static/chunks/376.2b6536d53b303d15.js | 0 .../_next/static/chunks/406-35481e1b86c5b377.js | 0 .../_next/static/chunks/703-35aa8c1eaf8df6ef.js | 0 .../_next/static/chunks/832-06362e8382d18069.js | 0 .../_next/static/chunks/864-bf315a5307aba1d7.js | 0 .../_next/static/chunks/894-25d9916957b869f3.js | 0 .../_next/static/chunks/978-6768c629d09f4ba9.js | 0 .../chunks/app/_not-found-58bcddf7b3e44a54.js | 0 .../chunks/app/layout-ac85f503669d9498.js} | 2 +- .../static/chunks/app/page-31b02197d46dcfe5.js} | 2 +- .../app/playground/page-5dcb481453d0a823.js} | 2 +- .../static/chunks/fd9d1056-5dfc77aa37d8c76f.js | 0 .../static/chunks/framework-43665103d101a22d.js | 0 .../_next/static/chunks/main-333119f4e1ef5173.js | 0 .../static/chunks/main-app-f5e741f8e36a0a29.js} | 2 +- .../static/chunks/pages/_app-6ca4a4ec31e39f3d.js | 0 .../chunks/pages/_error-9de0d1f4f4d1fcb4.js | 0 .../static/chunks/polyfills-c67a75d1b6f99dc8.js | 0 .../static/chunks/webpack-425a00248a63a7de.js | 0 .../_next/static/css/616b1d8d470f862f.css | 0 .../_next/static/media/05a31a2ca4975f99-s.woff2 | Bin .../_next/static/media/34dd45dcdd6d47ee-s.woff2 | Bin .../_next/static/media/513657b02c5c193f-s.woff2 | Bin .../_next/static/media/51ed15f9841b9f9d-s.woff2 | Bin .../static/media/86fdec36ddd9097e-s.p.woff2 | Bin .../_next/static/media/9e58c89b9633dcad-s.woff2 | Bin .../_next/static/media/a1ab2e69d2f53384-s.woff2 | Bin .../_next/static/media/c4a41ea065a0023c-s.woff2 | Bin .../static/media/c9a5bc6a7c948fb0-s.p.woff2 | Bin .../_next/static/media/d6b16ce4a6175f26-s.woff2 | Bin .../_next/static/media/de2ba2ebf355004e-s.woff2 | Bin .../_next/static/media/ec159349637c90ad-s.woff2 | Bin .../_next/static/media/fd4db3eb5472fc27-s.woff2 | Bin crates/tabby/{playground => ui}/index.html | 2 +- crates/tabby/{playground => ui}/index.txt | 10 +++++----- crates/tabby/{playground => ui}/playground.html | 2 +- crates/tabby/{playground => ui}/playground.txt | 12 ++++++------ 108 files changed, 31 insertions(+), 30 deletions(-) rename clients/{tabby-playground => tabby-ui}/.env.development (100%) rename clients/{tabby-playground => tabby-ui}/.env.development.example (100%) rename clients/{tabby-playground => tabby-ui}/.eslintrc.json (100%) rename clients/{tabby-playground => tabby-ui}/.gitignore (100%) rename clients/{tabby-playground => tabby-ui}/LICENSE (100%) rename clients/{tabby-playground => tabby-ui}/README.md (100%) rename clients/{tabby-playground => tabby-ui}/app/globals.css (100%) rename clients/{tabby-playground => tabby-ui}/app/layout.tsx (100%) rename clients/{tabby-playground => tabby-ui}/app/page.tsx (100%) rename clients/{tabby-playground => tabby-ui}/app/playground/page.tsx (100%) rename clients/{tabby-playground => tabby-ui}/assets/fonts/Inter-Bold.woff (100%) rename clients/{tabby-playground => tabby-ui}/assets/fonts/Inter-Regular.woff (100%) rename clients/{tabby-playground => tabby-ui}/components/button-scroll-to-bottom.tsx (100%) rename clients/{tabby-playground => tabby-ui}/components/chat-list.tsx (100%) rename clients/{tabby-playground => tabby-ui}/components/chat-message-actions.tsx (100%) rename clients/{tabby-playground => tabby-ui}/components/chat-message.tsx (100%) rename clients/{tabby-playground => tabby-ui}/components/chat-panel.tsx (100%) rename clients/{tabby-playground => tabby-ui}/components/chat-scroll-anchor.tsx (100%) rename clients/{tabby-playground => tabby-ui}/components/chat.tsx (100%) rename clients/{tabby-playground => tabby-ui}/components/clear-history.tsx (100%) rename clients/{tabby-playground => tabby-ui}/components/empty-screen.tsx (100%) rename clients/{tabby-playground => tabby-ui}/components/external-link.tsx (100%) rename clients/{tabby-playground => tabby-ui}/components/footer.tsx (100%) rename clients/{tabby-playground => tabby-ui}/components/header.tsx (100%) rename clients/{tabby-playground => tabby-ui}/components/login-button.tsx (100%) rename clients/{tabby-playground => tabby-ui}/components/markdown.tsx (100%) rename clients/{tabby-playground => tabby-ui}/components/prompt-form.tsx (100%) rename clients/{tabby-playground => tabby-ui}/components/providers.tsx (100%) rename clients/{tabby-playground => tabby-ui}/components/tailwind-indicator.tsx (100%) rename clients/{tabby-playground => tabby-ui}/components/theme-toggle.tsx (100%) rename clients/{tabby-playground => tabby-ui}/components/toaster.tsx (100%) rename clients/{tabby-playground => tabby-ui}/components/ui/alert-dialog.tsx (100%) rename clients/{tabby-playground => tabby-ui}/components/ui/badge.tsx (100%) rename clients/{tabby-playground => tabby-ui}/components/ui/button.tsx (100%) rename clients/{tabby-playground => tabby-ui}/components/ui/codeblock.tsx (100%) rename clients/{tabby-playground => tabby-ui}/components/ui/dialog.tsx (100%) rename clients/{tabby-playground => tabby-ui}/components/ui/dropdown-menu.tsx (100%) rename clients/{tabby-playground => tabby-ui}/components/ui/icons.tsx (100%) rename clients/{tabby-playground => tabby-ui}/components/ui/input.tsx (100%) rename clients/{tabby-playground => tabby-ui}/components/ui/label.tsx (100%) rename clients/{tabby-playground => tabby-ui}/components/ui/select.tsx (100%) rename clients/{tabby-playground => tabby-ui}/components/ui/separator.tsx (100%) rename clients/{tabby-playground => tabby-ui}/components/ui/sheet.tsx (100%) rename clients/{tabby-playground => tabby-ui}/components/ui/switch.tsx (100%) rename clients/{tabby-playground => tabby-ui}/components/ui/textarea.tsx (100%) rename clients/{tabby-playground => tabby-ui}/components/ui/tooltip.tsx (100%) rename clients/{tabby-playground => tabby-ui}/components/user-menu.tsx (100%) rename clients/{tabby-playground => tabby-ui}/lib/fonts.ts (100%) rename clients/{tabby-playground => tabby-ui}/lib/hooks/use-at-bottom.tsx (100%) rename clients/{tabby-playground => tabby-ui}/lib/hooks/use-copy-to-clipboard.tsx (100%) rename clients/{tabby-playground => tabby-ui}/lib/hooks/use-enter-submit.tsx (100%) rename clients/{tabby-playground => tabby-ui}/lib/hooks/use-local-storage.ts (100%) rename clients/{tabby-playground => tabby-ui}/lib/hooks/use-patch-fetch.ts (100%) rename clients/{tabby-playground => tabby-ui}/lib/tabby-stream.ts (100%) rename clients/{tabby-playground => tabby-ui}/lib/types.ts (100%) rename clients/{tabby-playground => tabby-ui}/lib/utils.ts (100%) rename clients/{tabby-playground => tabby-ui}/next-env.d.ts (100%) rename clients/{tabby-playground => tabby-ui}/next.config.js (100%) rename clients/{tabby-playground => tabby-ui}/package.json (98%) rename clients/{tabby-playground => tabby-ui}/postcss.config.js (100%) rename clients/{tabby-playground => tabby-ui}/prettier.config.cjs (100%) rename clients/{tabby-playground => tabby-ui}/tailwind.config.js (100%) rename clients/{tabby-playground => tabby-ui}/tsconfig.json (100%) rename clients/{tabby-playground => tabby-ui}/yarn.lock (100%) rename crates/tabby/src/serve/{playground.rs => ui.rs} (92%) rename crates/tabby/{playground => ui}/404.html (97%) rename crates/tabby/{playground/_next/static/zeY5-E7aVjZwD9S_JXVsQ => ui/_next/static/5Ardx8NLn9MFJ4mWUnSbO}/_buildManifest.js (100%) rename crates/tabby/{playground/_next/static/zeY5-E7aVjZwD9S_JXVsQ => ui/_next/static/5Ardx8NLn9MFJ4mWUnSbO}/_ssgManifest.js (100%) rename crates/tabby/{playground => ui}/_next/static/chunks/358-dc819165169f937b.js (100%) rename crates/tabby/{playground => ui}/_next/static/chunks/376.2b6536d53b303d15.js (100%) rename crates/tabby/{playground => ui}/_next/static/chunks/406-35481e1b86c5b377.js (100%) rename crates/tabby/{playground => ui}/_next/static/chunks/703-35aa8c1eaf8df6ef.js (100%) rename crates/tabby/{playground => ui}/_next/static/chunks/832-06362e8382d18069.js (100%) rename crates/tabby/{playground => ui}/_next/static/chunks/864-bf315a5307aba1d7.js (100%) rename crates/tabby/{playground => ui}/_next/static/chunks/894-25d9916957b869f3.js (100%) rename crates/tabby/{playground => ui}/_next/static/chunks/978-6768c629d09f4ba9.js (100%) rename crates/tabby/{playground => ui}/_next/static/chunks/app/_not-found-58bcddf7b3e44a54.js (100%) rename crates/tabby/{playground/_next/static/chunks/app/layout-6c30f50bddf243c7.js => ui/_next/static/chunks/app/layout-ac85f503669d9498.js} (93%) rename crates/tabby/{playground/_next/static/chunks/app/page-20035815ff7846b5.js => ui/_next/static/chunks/app/page-31b02197d46dcfe5.js} (97%) rename crates/tabby/{playground/_next/static/chunks/app/playground/page-cf297629ec68c7f0.js => ui/_next/static/chunks/app/playground/page-5dcb481453d0a823.js} (98%) rename crates/tabby/{playground => ui}/_next/static/chunks/fd9d1056-5dfc77aa37d8c76f.js (100%) rename crates/tabby/{playground => ui}/_next/static/chunks/framework-43665103d101a22d.js (100%) rename crates/tabby/{playground => ui}/_next/static/chunks/main-333119f4e1ef5173.js (100%) rename crates/tabby/{playground/_next/static/chunks/main-app-63509e933f53c55d.js => ui/_next/static/chunks/main-app-f5e741f8e36a0a29.js} (67%) rename crates/tabby/{playground => ui}/_next/static/chunks/pages/_app-6ca4a4ec31e39f3d.js (100%) rename crates/tabby/{playground => ui}/_next/static/chunks/pages/_error-9de0d1f4f4d1fcb4.js (100%) rename crates/tabby/{playground => ui}/_next/static/chunks/polyfills-c67a75d1b6f99dc8.js (100%) rename crates/tabby/{playground => ui}/_next/static/chunks/webpack-425a00248a63a7de.js (100%) rename crates/tabby/{playground => ui}/_next/static/css/616b1d8d470f862f.css (100%) rename crates/tabby/{playground => ui}/_next/static/media/05a31a2ca4975f99-s.woff2 (100%) rename crates/tabby/{playground => ui}/_next/static/media/34dd45dcdd6d47ee-s.woff2 (100%) rename crates/tabby/{playground => ui}/_next/static/media/513657b02c5c193f-s.woff2 (100%) rename crates/tabby/{playground => ui}/_next/static/media/51ed15f9841b9f9d-s.woff2 (100%) rename crates/tabby/{playground => ui}/_next/static/media/86fdec36ddd9097e-s.p.woff2 (100%) rename crates/tabby/{playground => ui}/_next/static/media/9e58c89b9633dcad-s.woff2 (100%) rename crates/tabby/{playground => ui}/_next/static/media/a1ab2e69d2f53384-s.woff2 (100%) rename crates/tabby/{playground => ui}/_next/static/media/c4a41ea065a0023c-s.woff2 (100%) rename crates/tabby/{playground => ui}/_next/static/media/c9a5bc6a7c948fb0-s.p.woff2 (100%) rename crates/tabby/{playground => ui}/_next/static/media/d6b16ce4a6175f26-s.woff2 (100%) rename crates/tabby/{playground => ui}/_next/static/media/de2ba2ebf355004e-s.woff2 (100%) rename crates/tabby/{playground => ui}/_next/static/media/ec159349637c90ad-s.woff2 (100%) rename crates/tabby/{playground => ui}/_next/static/media/fd4db3eb5472fc27-s.woff2 (100%) rename crates/tabby/{playground => ui}/index.html (95%) rename crates/tabby/{playground => ui}/index.txt (92%) rename crates/tabby/{playground => ui}/playground.html (96%) rename crates/tabby/{playground => ui}/playground.txt (92%) diff --git a/Makefile b/Makefile index 26e45bf..5dcbac2 100644 --- a/Makefile +++ b/Makefile @@ -9,8 +9,8 @@ fix: cargo clippy --fix --allow-dirty --allow-staged && cargo +nightly fmt update-playground: - cd clients/tabby-playground && yarn build - rm -rf crates/tabby/playground && cp -R clients/tabby-playground/out crates/tabby/playground + cd clients/tabby-ui && yarn build + rm -rf crates/tabby/ui && cp -R clients/tabby-ui/out crates/tabby/ui bump-version: cargo ws version --no-git-tag --force "*" diff --git a/clients/tabby-playground/.env.development b/clients/tabby-ui/.env.development similarity index 100% rename from clients/tabby-playground/.env.development rename to clients/tabby-ui/.env.development diff --git a/clients/tabby-playground/.env.development.example b/clients/tabby-ui/.env.development.example similarity index 100% rename from clients/tabby-playground/.env.development.example rename to clients/tabby-ui/.env.development.example diff --git a/clients/tabby-playground/.eslintrc.json b/clients/tabby-ui/.eslintrc.json similarity index 100% rename from clients/tabby-playground/.eslintrc.json rename to clients/tabby-ui/.eslintrc.json diff --git a/clients/tabby-playground/.gitignore b/clients/tabby-ui/.gitignore similarity index 100% rename from clients/tabby-playground/.gitignore rename to clients/tabby-ui/.gitignore diff --git a/clients/tabby-playground/LICENSE b/clients/tabby-ui/LICENSE similarity index 100% rename from clients/tabby-playground/LICENSE rename to clients/tabby-ui/LICENSE diff --git a/clients/tabby-playground/README.md b/clients/tabby-ui/README.md similarity index 100% rename from clients/tabby-playground/README.md rename to clients/tabby-ui/README.md diff --git a/clients/tabby-playground/app/globals.css b/clients/tabby-ui/app/globals.css similarity index 100% rename from clients/tabby-playground/app/globals.css rename to clients/tabby-ui/app/globals.css diff --git a/clients/tabby-playground/app/layout.tsx b/clients/tabby-ui/app/layout.tsx similarity index 100% rename from clients/tabby-playground/app/layout.tsx rename to clients/tabby-ui/app/layout.tsx diff --git a/clients/tabby-playground/app/page.tsx b/clients/tabby-ui/app/page.tsx similarity index 100% rename from clients/tabby-playground/app/page.tsx rename to clients/tabby-ui/app/page.tsx diff --git a/clients/tabby-playground/app/playground/page.tsx b/clients/tabby-ui/app/playground/page.tsx similarity index 100% rename from clients/tabby-playground/app/playground/page.tsx rename to clients/tabby-ui/app/playground/page.tsx diff --git a/clients/tabby-playground/assets/fonts/Inter-Bold.woff b/clients/tabby-ui/assets/fonts/Inter-Bold.woff similarity index 100% rename from clients/tabby-playground/assets/fonts/Inter-Bold.woff rename to clients/tabby-ui/assets/fonts/Inter-Bold.woff diff --git a/clients/tabby-playground/assets/fonts/Inter-Regular.woff b/clients/tabby-ui/assets/fonts/Inter-Regular.woff similarity index 100% rename from clients/tabby-playground/assets/fonts/Inter-Regular.woff rename to clients/tabby-ui/assets/fonts/Inter-Regular.woff diff --git a/clients/tabby-playground/components/button-scroll-to-bottom.tsx b/clients/tabby-ui/components/button-scroll-to-bottom.tsx similarity index 100% rename from clients/tabby-playground/components/button-scroll-to-bottom.tsx rename to clients/tabby-ui/components/button-scroll-to-bottom.tsx diff --git a/clients/tabby-playground/components/chat-list.tsx b/clients/tabby-ui/components/chat-list.tsx similarity index 100% rename from clients/tabby-playground/components/chat-list.tsx rename to clients/tabby-ui/components/chat-list.tsx diff --git a/clients/tabby-playground/components/chat-message-actions.tsx b/clients/tabby-ui/components/chat-message-actions.tsx similarity index 100% rename from clients/tabby-playground/components/chat-message-actions.tsx rename to clients/tabby-ui/components/chat-message-actions.tsx diff --git a/clients/tabby-playground/components/chat-message.tsx b/clients/tabby-ui/components/chat-message.tsx similarity index 100% rename from clients/tabby-playground/components/chat-message.tsx rename to clients/tabby-ui/components/chat-message.tsx diff --git a/clients/tabby-playground/components/chat-panel.tsx b/clients/tabby-ui/components/chat-panel.tsx similarity index 100% rename from clients/tabby-playground/components/chat-panel.tsx rename to clients/tabby-ui/components/chat-panel.tsx diff --git a/clients/tabby-playground/components/chat-scroll-anchor.tsx b/clients/tabby-ui/components/chat-scroll-anchor.tsx similarity index 100% rename from clients/tabby-playground/components/chat-scroll-anchor.tsx rename to clients/tabby-ui/components/chat-scroll-anchor.tsx diff --git a/clients/tabby-playground/components/chat.tsx b/clients/tabby-ui/components/chat.tsx similarity index 100% rename from clients/tabby-playground/components/chat.tsx rename to clients/tabby-ui/components/chat.tsx diff --git a/clients/tabby-playground/components/clear-history.tsx b/clients/tabby-ui/components/clear-history.tsx similarity index 100% rename from clients/tabby-playground/components/clear-history.tsx rename to clients/tabby-ui/components/clear-history.tsx diff --git a/clients/tabby-playground/components/empty-screen.tsx b/clients/tabby-ui/components/empty-screen.tsx similarity index 100% rename from clients/tabby-playground/components/empty-screen.tsx rename to clients/tabby-ui/components/empty-screen.tsx diff --git a/clients/tabby-playground/components/external-link.tsx b/clients/tabby-ui/components/external-link.tsx similarity index 100% rename from clients/tabby-playground/components/external-link.tsx rename to clients/tabby-ui/components/external-link.tsx diff --git a/clients/tabby-playground/components/footer.tsx b/clients/tabby-ui/components/footer.tsx similarity index 100% rename from clients/tabby-playground/components/footer.tsx rename to clients/tabby-ui/components/footer.tsx diff --git a/clients/tabby-playground/components/header.tsx b/clients/tabby-ui/components/header.tsx similarity index 100% rename from clients/tabby-playground/components/header.tsx rename to clients/tabby-ui/components/header.tsx diff --git a/clients/tabby-playground/components/login-button.tsx b/clients/tabby-ui/components/login-button.tsx similarity index 100% rename from clients/tabby-playground/components/login-button.tsx rename to clients/tabby-ui/components/login-button.tsx diff --git a/clients/tabby-playground/components/markdown.tsx b/clients/tabby-ui/components/markdown.tsx similarity index 100% rename from clients/tabby-playground/components/markdown.tsx rename to clients/tabby-ui/components/markdown.tsx diff --git a/clients/tabby-playground/components/prompt-form.tsx b/clients/tabby-ui/components/prompt-form.tsx similarity index 100% rename from clients/tabby-playground/components/prompt-form.tsx rename to clients/tabby-ui/components/prompt-form.tsx diff --git a/clients/tabby-playground/components/providers.tsx b/clients/tabby-ui/components/providers.tsx similarity index 100% rename from clients/tabby-playground/components/providers.tsx rename to clients/tabby-ui/components/providers.tsx diff --git a/clients/tabby-playground/components/tailwind-indicator.tsx b/clients/tabby-ui/components/tailwind-indicator.tsx similarity index 100% rename from clients/tabby-playground/components/tailwind-indicator.tsx rename to clients/tabby-ui/components/tailwind-indicator.tsx diff --git a/clients/tabby-playground/components/theme-toggle.tsx b/clients/tabby-ui/components/theme-toggle.tsx similarity index 100% rename from clients/tabby-playground/components/theme-toggle.tsx rename to clients/tabby-ui/components/theme-toggle.tsx diff --git a/clients/tabby-playground/components/toaster.tsx b/clients/tabby-ui/components/toaster.tsx similarity index 100% rename from clients/tabby-playground/components/toaster.tsx rename to clients/tabby-ui/components/toaster.tsx diff --git a/clients/tabby-playground/components/ui/alert-dialog.tsx b/clients/tabby-ui/components/ui/alert-dialog.tsx similarity index 100% rename from clients/tabby-playground/components/ui/alert-dialog.tsx rename to clients/tabby-ui/components/ui/alert-dialog.tsx diff --git a/clients/tabby-playground/components/ui/badge.tsx b/clients/tabby-ui/components/ui/badge.tsx similarity index 100% rename from clients/tabby-playground/components/ui/badge.tsx rename to clients/tabby-ui/components/ui/badge.tsx diff --git a/clients/tabby-playground/components/ui/button.tsx b/clients/tabby-ui/components/ui/button.tsx similarity index 100% rename from clients/tabby-playground/components/ui/button.tsx rename to clients/tabby-ui/components/ui/button.tsx diff --git a/clients/tabby-playground/components/ui/codeblock.tsx b/clients/tabby-ui/components/ui/codeblock.tsx similarity index 100% rename from clients/tabby-playground/components/ui/codeblock.tsx rename to clients/tabby-ui/components/ui/codeblock.tsx diff --git a/clients/tabby-playground/components/ui/dialog.tsx b/clients/tabby-ui/components/ui/dialog.tsx similarity index 100% rename from clients/tabby-playground/components/ui/dialog.tsx rename to clients/tabby-ui/components/ui/dialog.tsx diff --git a/clients/tabby-playground/components/ui/dropdown-menu.tsx b/clients/tabby-ui/components/ui/dropdown-menu.tsx similarity index 100% rename from clients/tabby-playground/components/ui/dropdown-menu.tsx rename to clients/tabby-ui/components/ui/dropdown-menu.tsx diff --git a/clients/tabby-playground/components/ui/icons.tsx b/clients/tabby-ui/components/ui/icons.tsx similarity index 100% rename from clients/tabby-playground/components/ui/icons.tsx rename to clients/tabby-ui/components/ui/icons.tsx diff --git a/clients/tabby-playground/components/ui/input.tsx b/clients/tabby-ui/components/ui/input.tsx similarity index 100% rename from clients/tabby-playground/components/ui/input.tsx rename to clients/tabby-ui/components/ui/input.tsx diff --git a/clients/tabby-playground/components/ui/label.tsx b/clients/tabby-ui/components/ui/label.tsx similarity index 100% rename from clients/tabby-playground/components/ui/label.tsx rename to clients/tabby-ui/components/ui/label.tsx diff --git a/clients/tabby-playground/components/ui/select.tsx b/clients/tabby-ui/components/ui/select.tsx similarity index 100% rename from clients/tabby-playground/components/ui/select.tsx rename to clients/tabby-ui/components/ui/select.tsx diff --git a/clients/tabby-playground/components/ui/separator.tsx b/clients/tabby-ui/components/ui/separator.tsx similarity index 100% rename from clients/tabby-playground/components/ui/separator.tsx rename to clients/tabby-ui/components/ui/separator.tsx diff --git a/clients/tabby-playground/components/ui/sheet.tsx b/clients/tabby-ui/components/ui/sheet.tsx similarity index 100% rename from clients/tabby-playground/components/ui/sheet.tsx rename to clients/tabby-ui/components/ui/sheet.tsx diff --git a/clients/tabby-playground/components/ui/switch.tsx b/clients/tabby-ui/components/ui/switch.tsx similarity index 100% rename from clients/tabby-playground/components/ui/switch.tsx rename to clients/tabby-ui/components/ui/switch.tsx diff --git a/clients/tabby-playground/components/ui/textarea.tsx b/clients/tabby-ui/components/ui/textarea.tsx similarity index 100% rename from clients/tabby-playground/components/ui/textarea.tsx rename to clients/tabby-ui/components/ui/textarea.tsx diff --git a/clients/tabby-playground/components/ui/tooltip.tsx b/clients/tabby-ui/components/ui/tooltip.tsx similarity index 100% rename from clients/tabby-playground/components/ui/tooltip.tsx rename to clients/tabby-ui/components/ui/tooltip.tsx diff --git a/clients/tabby-playground/components/user-menu.tsx b/clients/tabby-ui/components/user-menu.tsx similarity index 100% rename from clients/tabby-playground/components/user-menu.tsx rename to clients/tabby-ui/components/user-menu.tsx diff --git a/clients/tabby-playground/lib/fonts.ts b/clients/tabby-ui/lib/fonts.ts similarity index 100% rename from clients/tabby-playground/lib/fonts.ts rename to clients/tabby-ui/lib/fonts.ts diff --git a/clients/tabby-playground/lib/hooks/use-at-bottom.tsx b/clients/tabby-ui/lib/hooks/use-at-bottom.tsx similarity index 100% rename from clients/tabby-playground/lib/hooks/use-at-bottom.tsx rename to clients/tabby-ui/lib/hooks/use-at-bottom.tsx diff --git a/clients/tabby-playground/lib/hooks/use-copy-to-clipboard.tsx b/clients/tabby-ui/lib/hooks/use-copy-to-clipboard.tsx similarity index 100% rename from clients/tabby-playground/lib/hooks/use-copy-to-clipboard.tsx rename to clients/tabby-ui/lib/hooks/use-copy-to-clipboard.tsx diff --git a/clients/tabby-playground/lib/hooks/use-enter-submit.tsx b/clients/tabby-ui/lib/hooks/use-enter-submit.tsx similarity index 100% rename from clients/tabby-playground/lib/hooks/use-enter-submit.tsx rename to clients/tabby-ui/lib/hooks/use-enter-submit.tsx diff --git a/clients/tabby-playground/lib/hooks/use-local-storage.ts b/clients/tabby-ui/lib/hooks/use-local-storage.ts similarity index 100% rename from clients/tabby-playground/lib/hooks/use-local-storage.ts rename to clients/tabby-ui/lib/hooks/use-local-storage.ts diff --git a/clients/tabby-playground/lib/hooks/use-patch-fetch.ts b/clients/tabby-ui/lib/hooks/use-patch-fetch.ts similarity index 100% rename from clients/tabby-playground/lib/hooks/use-patch-fetch.ts rename to clients/tabby-ui/lib/hooks/use-patch-fetch.ts diff --git a/clients/tabby-playground/lib/tabby-stream.ts b/clients/tabby-ui/lib/tabby-stream.ts similarity index 100% rename from clients/tabby-playground/lib/tabby-stream.ts rename to clients/tabby-ui/lib/tabby-stream.ts diff --git a/clients/tabby-playground/lib/types.ts b/clients/tabby-ui/lib/types.ts similarity index 100% rename from clients/tabby-playground/lib/types.ts rename to clients/tabby-ui/lib/types.ts diff --git a/clients/tabby-playground/lib/utils.ts b/clients/tabby-ui/lib/utils.ts similarity index 100% rename from clients/tabby-playground/lib/utils.ts rename to clients/tabby-ui/lib/utils.ts diff --git a/clients/tabby-playground/next-env.d.ts b/clients/tabby-ui/next-env.d.ts similarity index 100% rename from clients/tabby-playground/next-env.d.ts rename to clients/tabby-ui/next-env.d.ts diff --git a/clients/tabby-playground/next.config.js b/clients/tabby-ui/next.config.js similarity index 100% rename from clients/tabby-playground/next.config.js rename to clients/tabby-ui/next.config.js diff --git a/clients/tabby-playground/package.json b/clients/tabby-ui/package.json similarity index 98% rename from clients/tabby-playground/package.json rename to clients/tabby-ui/package.json index b6a6894..aaa43ca 100644 --- a/clients/tabby-playground/package.json +++ b/clients/tabby-ui/package.json @@ -1,5 +1,5 @@ { - "name": "tabby-playground", + "name": "tabby-ui", "version": "0.1.0", "private": true, "scripts": { diff --git a/clients/tabby-playground/postcss.config.js b/clients/tabby-ui/postcss.config.js similarity index 100% rename from clients/tabby-playground/postcss.config.js rename to clients/tabby-ui/postcss.config.js diff --git a/clients/tabby-playground/prettier.config.cjs b/clients/tabby-ui/prettier.config.cjs similarity index 100% rename from clients/tabby-playground/prettier.config.cjs rename to clients/tabby-ui/prettier.config.cjs diff --git a/clients/tabby-playground/tailwind.config.js b/clients/tabby-ui/tailwind.config.js similarity index 100% rename from clients/tabby-playground/tailwind.config.js rename to clients/tabby-ui/tailwind.config.js diff --git a/clients/tabby-playground/tsconfig.json b/clients/tabby-ui/tsconfig.json similarity index 100% rename from clients/tabby-playground/tsconfig.json rename to clients/tabby-ui/tsconfig.json diff --git a/clients/tabby-playground/yarn.lock b/clients/tabby-ui/yarn.lock similarity index 100% rename from clients/tabby-playground/yarn.lock rename to clients/tabby-ui/yarn.lock diff --git a/crates/tabby/src/serve/mod.rs b/crates/tabby/src/serve/mod.rs index 013a446..58dce37 100644 --- a/crates/tabby/src/serve/mod.rs +++ b/crates/tabby/src/serve/mod.rs @@ -3,8 +3,8 @@ mod completions; mod engine; mod events; mod health; -mod playground; mod search; +mod ui; use std::{ net::{Ipv4Addr, SocketAddr}, @@ -155,15 +155,16 @@ pub async fn main(config: &Config, args: &ServeArgs) { doc.override_doc(args); let app = Router::new() - .route("/", routing::get(playground::handler)) - .route("/index.txt", routing::get(playground::handler)) - .route("/_next/*path", routing::get(playground::handler)) + .route("/", routing::get(ui::handler)) + .route("/index.txt", routing::get(ui::handler)) + .route("/_next/*path", routing::get(ui::handler)) .merge(api_router(args, config)) - .merge(SwaggerUi::new("/swagger-ui").url("/api-docs/openapi.json", doc)); + .merge(SwaggerUi::new("/swagger-ui").url("/api-docs/openapi.json", doc)) + .fallback(ui::handler); let app = if args.chat_model.is_some() { - app.route("/playground", routing::get(playground::handler)) - .route("/playground.txt", routing::get(playground::handler)) + app.route("/playground", routing::get(ui::handler)) + .route("/playground.txt", routing::get(ui::handler)) } else { app }; diff --git a/crates/tabby/src/serve/playground.rs b/crates/tabby/src/serve/ui.rs similarity index 92% rename from crates/tabby/src/serve/playground.rs rename to crates/tabby/src/serve/ui.rs index 70e69e6..8bfe44e 100644 --- a/crates/tabby/src/serve/playground.rs +++ b/crates/tabby/src/serve/ui.rs @@ -7,7 +7,7 @@ use axum::{ use crate::fatal; #[derive(rust_embed::RustEmbed)] -#[folder = "./playground"] +#[folder = "./ui"] struct WebAssets; struct WebStaticFile(pub T); @@ -29,7 +29,7 @@ where } None => Response::builder() .status(StatusCode::NOT_FOUND) - .body(boxed(Full::from("404"))) + .body(boxed(Full::from(WebAssets::get("404.html").unwrap().data))) .unwrap_or_else(|_| fatal!("Invalid response")), } } diff --git a/crates/tabby/playground/404.html b/crates/tabby/ui/404.html similarity index 97% rename from crates/tabby/playground/404.html rename to crates/tabby/ui/404.html index 905f6c7..456a234 100644 --- a/crates/tabby/playground/404.html +++ b/crates/tabby/ui/404.html @@ -1 +1 @@ -404: This page could not be found.Tabby - Home

404

This page could not be found.

\ No newline at end of file +404: This page could not be found.Tabby - Home

404

This page could not be found.

\ No newline at end of file diff --git a/crates/tabby/playground/_next/static/zeY5-E7aVjZwD9S_JXVsQ/_buildManifest.js b/crates/tabby/ui/_next/static/5Ardx8NLn9MFJ4mWUnSbO/_buildManifest.js similarity index 100% rename from crates/tabby/playground/_next/static/zeY5-E7aVjZwD9S_JXVsQ/_buildManifest.js rename to crates/tabby/ui/_next/static/5Ardx8NLn9MFJ4mWUnSbO/_buildManifest.js diff --git a/crates/tabby/playground/_next/static/zeY5-E7aVjZwD9S_JXVsQ/_ssgManifest.js b/crates/tabby/ui/_next/static/5Ardx8NLn9MFJ4mWUnSbO/_ssgManifest.js similarity index 100% rename from crates/tabby/playground/_next/static/zeY5-E7aVjZwD9S_JXVsQ/_ssgManifest.js rename to crates/tabby/ui/_next/static/5Ardx8NLn9MFJ4mWUnSbO/_ssgManifest.js diff --git a/crates/tabby/playground/_next/static/chunks/358-dc819165169f937b.js b/crates/tabby/ui/_next/static/chunks/358-dc819165169f937b.js similarity index 100% rename from crates/tabby/playground/_next/static/chunks/358-dc819165169f937b.js rename to crates/tabby/ui/_next/static/chunks/358-dc819165169f937b.js diff --git a/crates/tabby/playground/_next/static/chunks/376.2b6536d53b303d15.js b/crates/tabby/ui/_next/static/chunks/376.2b6536d53b303d15.js similarity index 100% rename from crates/tabby/playground/_next/static/chunks/376.2b6536d53b303d15.js rename to crates/tabby/ui/_next/static/chunks/376.2b6536d53b303d15.js diff --git a/crates/tabby/playground/_next/static/chunks/406-35481e1b86c5b377.js b/crates/tabby/ui/_next/static/chunks/406-35481e1b86c5b377.js similarity index 100% rename from crates/tabby/playground/_next/static/chunks/406-35481e1b86c5b377.js rename to crates/tabby/ui/_next/static/chunks/406-35481e1b86c5b377.js diff --git a/crates/tabby/playground/_next/static/chunks/703-35aa8c1eaf8df6ef.js b/crates/tabby/ui/_next/static/chunks/703-35aa8c1eaf8df6ef.js similarity index 100% rename from crates/tabby/playground/_next/static/chunks/703-35aa8c1eaf8df6ef.js rename to crates/tabby/ui/_next/static/chunks/703-35aa8c1eaf8df6ef.js diff --git a/crates/tabby/playground/_next/static/chunks/832-06362e8382d18069.js b/crates/tabby/ui/_next/static/chunks/832-06362e8382d18069.js similarity index 100% rename from crates/tabby/playground/_next/static/chunks/832-06362e8382d18069.js rename to crates/tabby/ui/_next/static/chunks/832-06362e8382d18069.js diff --git a/crates/tabby/playground/_next/static/chunks/864-bf315a5307aba1d7.js b/crates/tabby/ui/_next/static/chunks/864-bf315a5307aba1d7.js similarity index 100% rename from crates/tabby/playground/_next/static/chunks/864-bf315a5307aba1d7.js rename to crates/tabby/ui/_next/static/chunks/864-bf315a5307aba1d7.js diff --git a/crates/tabby/playground/_next/static/chunks/894-25d9916957b869f3.js b/crates/tabby/ui/_next/static/chunks/894-25d9916957b869f3.js similarity index 100% rename from crates/tabby/playground/_next/static/chunks/894-25d9916957b869f3.js rename to crates/tabby/ui/_next/static/chunks/894-25d9916957b869f3.js diff --git a/crates/tabby/playground/_next/static/chunks/978-6768c629d09f4ba9.js b/crates/tabby/ui/_next/static/chunks/978-6768c629d09f4ba9.js similarity index 100% rename from crates/tabby/playground/_next/static/chunks/978-6768c629d09f4ba9.js rename to crates/tabby/ui/_next/static/chunks/978-6768c629d09f4ba9.js diff --git a/crates/tabby/playground/_next/static/chunks/app/_not-found-58bcddf7b3e44a54.js b/crates/tabby/ui/_next/static/chunks/app/_not-found-58bcddf7b3e44a54.js similarity index 100% rename from crates/tabby/playground/_next/static/chunks/app/_not-found-58bcddf7b3e44a54.js rename to crates/tabby/ui/_next/static/chunks/app/_not-found-58bcddf7b3e44a54.js diff --git a/crates/tabby/playground/_next/static/chunks/app/layout-6c30f50bddf243c7.js b/crates/tabby/ui/_next/static/chunks/app/layout-ac85f503669d9498.js similarity index 93% rename from crates/tabby/playground/_next/static/chunks/app/layout-6c30f50bddf243c7.js rename to crates/tabby/ui/_next/static/chunks/app/layout-ac85f503669d9498.js index 228b367..6d1b6ce 100644 --- a/crates/tabby/playground/_next/static/chunks/app/layout-6c30f50bddf243c7.js +++ b/crates/tabby/ui/_next/static/chunks/app/layout-ac85f503669d9498.js @@ -1 +1 @@ -(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[185],{35762:function(e,n,r){Promise.resolve().then(r.t.bind(r,58877,23)),Promise.resolve().then(r.bind(r,78963)),Promise.resolve().then(r.bind(r,78495)),Promise.resolve().then(r.t.bind(r,6928,23)),Promise.resolve().then(r.t.bind(r,33195,23)),Promise.resolve().then(r.bind(r,5925))},78963:function(e,n,r){"use strict";r.r(n),r.d(n,{Header:function(){return h}});var t=r(57437),s=r(2265),i=r(39311),a=r(93023),o=r(84168),d=r(30415),l=r.n(d),c=r(61396),f=r.n(c);let u=l()(()=>r.e(376).then(r.bind(r,15376)).then(e=>e.ThemeToggle),{loadableGenerated:{webpack:()=>[15376]},ssr:!1});function h(){let[e,n]=s.useState(!1);return s.useEffect(()=>{m().then(n)},[]),(0,t.jsxs)("header",{className:"sticky top-0 z-50 flex items-center justify-between w-full h-16 px-4 border-b shrink-0 bg-gradient-to-b from-background/10 via-background/50 to-background/80 backdrop-blur-xl",children:[(0,t.jsxs)("div",{className:"flex items-center",children:[(0,t.jsx)(u,{}),(0,t.jsx)(f(),{href:"/",className:(0,i.cn)((0,a.d)({variant:"link"})),children:"Home"}),e&&(0,t.jsx)(f(),{href:"/playground",className:(0,i.cn)((0,a.d)({variant:"link"})),children:"Playground"})]}),(0,t.jsxs)("div",{className:"flex items-center justify-end space-x-2",children:[(0,t.jsxs)("a",{target:"_blank",href:"https://github.com/TabbyML/tabby",rel:"noopener noreferrer",className:(0,i.cn)((0,a.d)({variant:"outline"})),children:[(0,t.jsx)(o.Mr,{}),(0,t.jsx)("span",{className:"hidden ml-2 md:flex",children:"GitHub"})]}),(0,t.jsxs)("a",{target:"_blank",href:"/swagger-ui",rel:"noopener noreferrer",className:(0,i.cn)((0,a.d)({variant:"outline"})),children:[(0,t.jsx)(o.Tq,{}),(0,t.jsx)("span",{className:"hidden ml-2 md:flex",children:"OpenAPI"})]})]})]})}async function m(){{let e=await fetch("/v1/health"),n=await e.json();return!!n.chat_model}}},78495:function(e,n,r){"use strict";r.r(n),r.d(n,{Providers:function(){return a}});var t=r(57437);r(2265);var s=r(6435),i=r(95482);function a(e){let{children:n,...r}=e;return(0,t.jsx)(s.f,{...r,children:(0,t.jsx)(i.pn,{children:n})})}},95482:function(e,n,r){"use strict";r.d(n,{_v:function(){return c},aJ:function(){return l},pn:function(){return o},u:function(){return d}});var t=r(57437),s=r(2265),i=r(43212),a=r(39311);let o=i.zt,d=i.fC,l=i.xz,c=s.forwardRef((e,n)=>{let{className:r,sideOffset:s=4,...o}=e;return(0,t.jsx)(i.VY,{ref:n,sideOffset:s,className:(0,a.cn)("z-50 overflow-hidden rounded-md border bg-popover px-3 py-1.5 text-xs font-medium text-popover-foreground shadow-md animate-in fade-in-50 data-[side=bottom]:slide-in-from-top-1 data-[side=left]:slide-in-from-right-1 data-[side=right]:slide-in-from-left-1 data-[side=top]:slide-in-from-bottom-1",r),...o})});c.displayName=i.VY.displayName},58877:function(){}},function(e){e.O(0,[358,406,832,894,971,864,744],function(){return e(e.s=35762)}),_N_E=e.O()}]); \ No newline at end of file +(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[185],{21050:function(e,n,r){Promise.resolve().then(r.t.bind(r,58877,23)),Promise.resolve().then(r.bind(r,78963)),Promise.resolve().then(r.bind(r,78495)),Promise.resolve().then(r.t.bind(r,6928,23)),Promise.resolve().then(r.t.bind(r,33195,23)),Promise.resolve().then(r.bind(r,5925))},78963:function(e,n,r){"use strict";r.r(n),r.d(n,{Header:function(){return h}});var t=r(57437),s=r(2265),i=r(39311),a=r(93023),o=r(84168),d=r(30415),l=r.n(d),c=r(61396),f=r.n(c);let u=l()(()=>r.e(376).then(r.bind(r,15376)).then(e=>e.ThemeToggle),{loadableGenerated:{webpack:()=>[15376]},ssr:!1});function h(){let[e,n]=s.useState(!1);return s.useEffect(()=>{m().then(n)},[]),(0,t.jsxs)("header",{className:"sticky top-0 z-50 flex items-center justify-between w-full h-16 px-4 border-b shrink-0 bg-gradient-to-b from-background/10 via-background/50 to-background/80 backdrop-blur-xl",children:[(0,t.jsxs)("div",{className:"flex items-center",children:[(0,t.jsx)(u,{}),(0,t.jsx)(f(),{href:"/",className:(0,i.cn)((0,a.d)({variant:"link"})),children:"Home"}),e&&(0,t.jsx)(f(),{href:"/playground",className:(0,i.cn)((0,a.d)({variant:"link"})),children:"Playground"})]}),(0,t.jsxs)("div",{className:"flex items-center justify-end space-x-2",children:[(0,t.jsxs)("a",{target:"_blank",href:"https://github.com/TabbyML/tabby",rel:"noopener noreferrer",className:(0,i.cn)((0,a.d)({variant:"outline"})),children:[(0,t.jsx)(o.Mr,{}),(0,t.jsx)("span",{className:"hidden ml-2 md:flex",children:"GitHub"})]}),(0,t.jsxs)("a",{target:"_blank",href:"/swagger-ui",rel:"noopener noreferrer",className:(0,i.cn)((0,a.d)({variant:"outline"})),children:[(0,t.jsx)(o.Tq,{}),(0,t.jsx)("span",{className:"hidden ml-2 md:flex",children:"OpenAPI"})]})]})]})}async function m(){{let e=await fetch("/v1/health"),n=await e.json();return!!n.chat_model}}},78495:function(e,n,r){"use strict";r.r(n),r.d(n,{Providers:function(){return a}});var t=r(57437);r(2265);var s=r(6435),i=r(95482);function a(e){let{children:n,...r}=e;return(0,t.jsx)(s.f,{...r,children:(0,t.jsx)(i.pn,{children:n})})}},95482:function(e,n,r){"use strict";r.d(n,{_v:function(){return c},aJ:function(){return l},pn:function(){return o},u:function(){return d}});var t=r(57437),s=r(2265),i=r(43212),a=r(39311);let o=i.zt,d=i.fC,l=i.xz,c=s.forwardRef((e,n)=>{let{className:r,sideOffset:s=4,...o}=e;return(0,t.jsx)(i.VY,{ref:n,sideOffset:s,className:(0,a.cn)("z-50 overflow-hidden rounded-md border bg-popover px-3 py-1.5 text-xs font-medium text-popover-foreground shadow-md animate-in fade-in-50 data-[side=bottom]:slide-in-from-top-1 data-[side=left]:slide-in-from-right-1 data-[side=right]:slide-in-from-left-1 data-[side=top]:slide-in-from-bottom-1",r),...o})});c.displayName=i.VY.displayName},58877:function(){}},function(e){e.O(0,[358,406,832,894,971,864,744],function(){return e(e.s=21050)}),_N_E=e.O()}]); \ No newline at end of file diff --git a/crates/tabby/playground/_next/static/chunks/app/page-20035815ff7846b5.js b/crates/tabby/ui/_next/static/chunks/app/page-31b02197d46dcfe5.js similarity index 97% rename from crates/tabby/playground/_next/static/chunks/app/page-20035815ff7846b5.js rename to crates/tabby/ui/_next/static/chunks/app/page-31b02197d46dcfe5.js index d553dfe..e2b7f3b 100644 --- a/crates/tabby/playground/_next/static/chunks/app/page-20035815ff7846b5.js +++ b/crates/tabby/ui/_next/static/chunks/app/page-31b02197d46dcfe5.js @@ -1 +1 @@ -(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[931],{85804:function(e,t,s){Promise.resolve().then(s.bind(s,25454))},25454:function(e,t,s){"use strict";s.r(t),s.d(t,{default:function(){return j}});var a=s(57437),n=s(93023),r=s(2265),i=s(27775),l=s(39311),o=s(84168);let c=i.fC;i.xz;let d=e=>{let{className:t,children:s,...n}=e;return(0,a.jsx)(i.h_,{className:(0,l.cn)(t),...n,children:(0,a.jsx)("div",{className:"fixed inset-0 z-50 flex items-start justify-center sm:items-center",children:s})})};d.displayName=i.h_.displayName;let m=r.forwardRef((e,t)=>{let{className:s,...n}=e;return(0,a.jsx)(i.aV,{ref:t,className:(0,l.cn)("fixed inset-0 z-50 bg-background/80 backdrop-blur-sm transition-all duration-100 data-[state=closed]:animate-out data-[state=closed]:fade-out data-[state=open]:fade-in",s),...n})});m.displayName=i.aV.displayName;let u=r.forwardRef((e,t)=>{let{className:s,children:n,...r}=e;return(0,a.jsxs)(d,{children:[(0,a.jsx)(m,{}),(0,a.jsxs)(i.VY,{ref:t,className:(0,l.cn)("fixed z-50 grid w-full gap-4 rounded-b-lg border bg-background p-6 shadow-sm animate-in data-[state=open]:fade-in-90 data-[state=open]:slide-in-from-bottom-10 sm:max-w-lg sm:rounded-lg sm:zoom-in-90 data-[state=open]:sm:slide-in-from-bottom-0",s),...r,children:[n,(0,a.jsxs)(i.x8,{className:"absolute right-4 top-4 rounded-sm opacity-70 ring-offset-background transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none data-[state=open]:bg-accent data-[state=open]:text-muted-foreground",children:[(0,a.jsx)(o.bM,{}),(0,a.jsx)("span",{className:"sr-only",children:"Close"})]})]})]})});u.displayName=i.VY.displayName;let f=e=>{let{className:t,...s}=e;return(0,a.jsx)("div",{className:(0,l.cn)("flex flex-col space-y-1.5 text-center sm:text-left",t),...s})};f.displayName="DialogHeader";let h=e=>{let{className:t,...s}=e;return(0,a.jsx)("div",{className:(0,l.cn)("flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2",t),...s})};h.displayName="DialogFooter";let x=r.forwardRef((e,t)=>{let{className:s,...n}=e;return(0,a.jsx)(i.Dx,{ref:t,className:(0,l.cn)("text-lg font-semibold leading-none tracking-tight",s),...n})});x.displayName=i.Dx.displayName;let g=r.forwardRef((e,t)=>{let{className:s,...n}=e;return(0,a.jsx)(i.dk,{ref:t,className:(0,l.cn)("text-sm text-muted-foreground",s),...n})});g.displayName=i.dk.displayName;var b=s(16775);let p="community-dialog-shown";function j(){let[e,t]=(0,r.useState)();(0,r.useEffect)(()=>{y().then(t)},[]);let[s,i]=(0,r.useState)(!1);return(0,r.useEffect)(()=>{localStorage.getItem(p)||(i(!0),localStorage.setItem(p,"true"))},[]),(0,a.jsxs)("div",{className:"grow flex justify-center items-center",children:[(0,a.jsx)("div",{className:"w-2/3 lg:w-1/3 flex flex-col gap-3",children:e&&(0,a.jsxs)(a.Fragment,{children:[(0,a.jsxs)("h1",{children:[(0,a.jsx)("span",{className:"font-bold",children:"Congratulations"}),", your tabby instance is running!"]}),(0,a.jsxs)("span",{className:"flex gap-1",children:[(0,a.jsx)("a",{target:"_blank",href:"https://github.com/TabbyML/tabby/releases/tag/".concat(e.version.git_describe),children:(0,a.jsx)("img",{src:"https://img.shields.io/badge/version-".concat(w(e.version.git_describe),"-green")})}),(0,a.jsx)("img",{src:"https://img.shields.io/badge/device-".concat(e.device,"-blue")}),(0,a.jsx)("img",{src:"https://img.shields.io/badge/model-".concat(w(e.model),"-red")})]}),(0,a.jsx)(b.Z,{}),(0,a.jsxs)("p",{children:["You can find our documentation ",(0,a.jsx)(N,{href:"https://tabby.tabbyml.com/docs/getting-started",children:"here"}),".",(0,a.jsxs)("ul",{className:"mt-2",children:[(0,a.jsxs)("li",{children:["\uD83D\uDCBB ",(0,a.jsx)(N,{href:"https://tabby.tabbyml.com/docs/extensions/",children:"IDE/Editor Extensions"})]}),(0,a.jsxs)("li",{children:["⚙️ ",(0,a.jsx)(N,{href:"https://tabby.tabbyml.com/docs/configuration",children:"Configuration"})]})]})]})]})}),(0,a.jsx)(c,{open:s,onOpenChange:i,children:(0,a.jsxs)(u,{children:[(0,a.jsxs)(f,{className:"gap-3",children:[(0,a.jsx)(x,{children:"Join the Tabby community"}),(0,a.jsx)(g,{children:"Connect with other contributors building Tabby. Share knowledge, get help, and contribute to the open-source project."})]}),(0,a.jsx)(h,{className:"sm:justify-start",children:(0,a.jsxs)("a",{target:"_blank",href:"https://join.slack.com/t/tabbycommunity/shared_invite/zt-1xeiddizp-bciR2RtFTaJ37RBxr8VxpA",className:(0,n.d)(),children:[(0,a.jsx)(o.gx,{className:"-ml-2 h-8 w-8"}),"Join us on Slack"]})})]})})]})}async function y(){{let e=await fetch("/v1/health");return await e.json()}}function N(e){let{href:t,children:s}=e;return(0,a.jsx)("a",{target:"_blank",href:t,className:"underline",children:s})}function w(e){return encodeURIComponent(e.replaceAll("-","--"))}},16775:function(e,t,s){"use strict";s.d(t,{Z:function(){return l}});var a=s(57437),n=s(2265),r=s(26823),i=s(39311);let l=n.forwardRef((e,t)=>{let{className:s,orientation:n="horizontal",decorative:l=!0,...o}=e;return(0,a.jsx)(r.f,{ref:t,decorative:l,orientation:n,className:(0,i.cn)("shrink-0 bg-border","horizontal"===n?"h-[1px] w-full":"h-full w-[1px]",s),...o})});l.displayName=r.f.displayName}},function(e){e.O(0,[358,703,894,971,864,744],function(){return e(e.s=85804)}),_N_E=e.O()}]); \ No newline at end of file +(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[931],{48458:function(e,t,s){Promise.resolve().then(s.bind(s,25454))},25454:function(e,t,s){"use strict";s.r(t),s.d(t,{default:function(){return j}});var a=s(57437),n=s(93023),r=s(2265),i=s(27775),l=s(39311),o=s(84168);let c=i.fC;i.xz;let d=e=>{let{className:t,children:s,...n}=e;return(0,a.jsx)(i.h_,{className:(0,l.cn)(t),...n,children:(0,a.jsx)("div",{className:"fixed inset-0 z-50 flex items-start justify-center sm:items-center",children:s})})};d.displayName=i.h_.displayName;let m=r.forwardRef((e,t)=>{let{className:s,...n}=e;return(0,a.jsx)(i.aV,{ref:t,className:(0,l.cn)("fixed inset-0 z-50 bg-background/80 backdrop-blur-sm transition-all duration-100 data-[state=closed]:animate-out data-[state=closed]:fade-out data-[state=open]:fade-in",s),...n})});m.displayName=i.aV.displayName;let u=r.forwardRef((e,t)=>{let{className:s,children:n,...r}=e;return(0,a.jsxs)(d,{children:[(0,a.jsx)(m,{}),(0,a.jsxs)(i.VY,{ref:t,className:(0,l.cn)("fixed z-50 grid w-full gap-4 rounded-b-lg border bg-background p-6 shadow-sm animate-in data-[state=open]:fade-in-90 data-[state=open]:slide-in-from-bottom-10 sm:max-w-lg sm:rounded-lg sm:zoom-in-90 data-[state=open]:sm:slide-in-from-bottom-0",s),...r,children:[n,(0,a.jsxs)(i.x8,{className:"absolute right-4 top-4 rounded-sm opacity-70 ring-offset-background transition-opacity hover:opacity-100 focus:outline-none focus:ring-2 focus:ring-ring focus:ring-offset-2 disabled:pointer-events-none data-[state=open]:bg-accent data-[state=open]:text-muted-foreground",children:[(0,a.jsx)(o.bM,{}),(0,a.jsx)("span",{className:"sr-only",children:"Close"})]})]})]})});u.displayName=i.VY.displayName;let f=e=>{let{className:t,...s}=e;return(0,a.jsx)("div",{className:(0,l.cn)("flex flex-col space-y-1.5 text-center sm:text-left",t),...s})};f.displayName="DialogHeader";let h=e=>{let{className:t,...s}=e;return(0,a.jsx)("div",{className:(0,l.cn)("flex flex-col-reverse sm:flex-row sm:justify-end sm:space-x-2",t),...s})};h.displayName="DialogFooter";let x=r.forwardRef((e,t)=>{let{className:s,...n}=e;return(0,a.jsx)(i.Dx,{ref:t,className:(0,l.cn)("text-lg font-semibold leading-none tracking-tight",s),...n})});x.displayName=i.Dx.displayName;let g=r.forwardRef((e,t)=>{let{className:s,...n}=e;return(0,a.jsx)(i.dk,{ref:t,className:(0,l.cn)("text-sm text-muted-foreground",s),...n})});g.displayName=i.dk.displayName;var b=s(16775);let p="community-dialog-shown";function j(){let[e,t]=(0,r.useState)();(0,r.useEffect)(()=>{y().then(t)},[]);let[s,i]=(0,r.useState)(!1);return(0,r.useEffect)(()=>{localStorage.getItem(p)||(i(!0),localStorage.setItem(p,"true"))},[]),(0,a.jsxs)("div",{className:"grow flex justify-center items-center",children:[(0,a.jsx)("div",{className:"w-2/3 lg:w-1/3 flex flex-col gap-3",children:e&&(0,a.jsxs)(a.Fragment,{children:[(0,a.jsxs)("h1",{children:[(0,a.jsx)("span",{className:"font-bold",children:"Congratulations"}),", your tabby instance is running!"]}),(0,a.jsxs)("span",{className:"flex gap-1",children:[(0,a.jsx)("a",{target:"_blank",href:"https://github.com/TabbyML/tabby/releases/tag/".concat(e.version.git_describe),children:(0,a.jsx)("img",{src:"https://img.shields.io/badge/version-".concat(w(e.version.git_describe),"-green")})}),(0,a.jsx)("img",{src:"https://img.shields.io/badge/device-".concat(e.device,"-blue")}),(0,a.jsx)("img",{src:"https://img.shields.io/badge/model-".concat(w(e.model),"-red")})]}),(0,a.jsx)(b.Z,{}),(0,a.jsxs)("p",{children:["You can find our documentation ",(0,a.jsx)(N,{href:"https://tabby.tabbyml.com/docs/getting-started",children:"here"}),".",(0,a.jsxs)("ul",{className:"mt-2",children:[(0,a.jsxs)("li",{children:["\uD83D\uDCBB ",(0,a.jsx)(N,{href:"https://tabby.tabbyml.com/docs/extensions/",children:"IDE/Editor Extensions"})]}),(0,a.jsxs)("li",{children:["⚙️ ",(0,a.jsx)(N,{href:"https://tabby.tabbyml.com/docs/configuration",children:"Configuration"})]})]})]})]})}),(0,a.jsx)(c,{open:s,onOpenChange:i,children:(0,a.jsxs)(u,{children:[(0,a.jsxs)(f,{className:"gap-3",children:[(0,a.jsx)(x,{children:"Join the Tabby community"}),(0,a.jsx)(g,{children:"Connect with other contributors building Tabby. Share knowledge, get help, and contribute to the open-source project."})]}),(0,a.jsx)(h,{className:"sm:justify-start",children:(0,a.jsxs)("a",{target:"_blank",href:"https://join.slack.com/t/tabbycommunity/shared_invite/zt-1xeiddizp-bciR2RtFTaJ37RBxr8VxpA",className:(0,n.d)(),children:[(0,a.jsx)(o.gx,{className:"-ml-2 h-8 w-8"}),"Join us on Slack"]})})]})})]})}async function y(){{let e=await fetch("/v1/health");return await e.json()}}function N(e){let{href:t,children:s}=e;return(0,a.jsx)("a",{target:"_blank",href:t,className:"underline",children:s})}function w(e){return encodeURIComponent(e.replaceAll("-","--"))}},16775:function(e,t,s){"use strict";s.d(t,{Z:function(){return l}});var a=s(57437),n=s(2265),r=s(26823),i=s(39311);let l=n.forwardRef((e,t)=>{let{className:s,orientation:n="horizontal",decorative:l=!0,...o}=e;return(0,a.jsx)(r.f,{ref:t,decorative:l,orientation:n,className:(0,i.cn)("shrink-0 bg-border","horizontal"===n?"h-[1px] w-full":"h-full w-[1px]",s),...o})});l.displayName=r.f.displayName}},function(e){e.O(0,[358,703,894,971,864,744],function(){return e(e.s=48458)}),_N_E=e.O()}]); \ No newline at end of file diff --git a/crates/tabby/playground/_next/static/chunks/app/playground/page-cf297629ec68c7f0.js b/crates/tabby/ui/_next/static/chunks/app/playground/page-5dcb481453d0a823.js similarity index 98% rename from crates/tabby/playground/_next/static/chunks/app/playground/page-cf297629ec68c7f0.js rename to crates/tabby/ui/_next/static/chunks/app/playground/page-5dcb481453d0a823.js index 5972991..31cb33b 100644 --- a/crates/tabby/playground/_next/static/chunks/app/playground/page-cf297629ec68c7f0.js +++ b/crates/tabby/ui/_next/static/chunks/app/playground/page-5dcb481453d0a823.js @@ -1 +1 @@ -(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[383],{92720:function(e,t,s){Promise.resolve().then(s.bind(s,12202))},12202:function(e,t,s){"use strict";s.r(t),s.d(t,{Chat:function(){return J}});var n=s(57437),r=s(57139),a=s(39311),i=s(16775),l=s(48975),o=s(82180),c=s(2265),d=s(30513),u=s(4523);function m(e){let{timeout:t=2e3}=e,[s,n]=c.useState(!1);return{isCopied:s,copyToClipboard:e=>{var s;(null===(s=navigator.clipboard)||void 0===s?void 0:s.writeText)&&e&&navigator.clipboard.writeText(e).then(()=>{n(!0),setTimeout(()=>{n(!1)},t)})}}}var p=s(84168),h=s(93023);let f={javascript:".js",python:".py",java:".java",c:".c",cpp:".cpp","c++":".cpp","c#":".cs",ruby:".rb",php:".php",swift:".swift","objective-c":".m",kotlin:".kt",typescript:".ts",go:".go",perl:".pl",rust:".rs",scala:".scala",haskell:".hs",lua:".lua",shell:".sh",sql:".sql",html:".html",css:".css"},x=function(e){let t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],s="ABCDEFGHJKLMNPQRSTUVWXY3456789",n="";for(let t=0;t{let{language:t,value:s}=e,{isCopied:r,copyToClipboard:a}=m({timeout:2e3});return(0,n.jsxs)("div",{className:"relative w-full font-sans codeblock bg-zinc-950",children:[(0,n.jsxs)("div",{className:"flex items-center justify-between w-full px-6 py-2 pr-4 bg-zinc-800 text-zinc-100",children:[(0,n.jsx)("span",{className:"text-xs lowercase",children:t}),(0,n.jsxs)("div",{className:"flex items-center space-x-1",children:[(0,n.jsxs)(h.z,{variant:"ghost",className:"hover:bg-zinc-800 focus-visible:ring-1 focus-visible:ring-slate-700 focus-visible:ring-offset-0",onClick:()=>{let e=f[t]||".file",n="file-".concat(x(3,!0)).concat(e),r=window.prompt("Enter file name",n);if(!r)return;let a=new Blob([s],{type:"text/plain"}),i=URL.createObjectURL(a),l=document.createElement("a");l.download=r,l.href=i,l.style.display="none",document.body.appendChild(l),l.click(),document.body.removeChild(l),URL.revokeObjectURL(i)},size:"icon",children:[(0,n.jsx)(p.Dj,{}),(0,n.jsx)("span",{className:"sr-only",children:"Download"})]}),(0,n.jsxs)(h.z,{variant:"ghost",size:"icon",className:"text-xs hover:bg-zinc-800 focus-visible:ring-1 focus-visible:ring-slate-700 focus-visible:ring-offset-0",onClick:()=>{r||a(s)},children:[r?(0,n.jsx)(p.NO,{}):(0,n.jsx)(p.vU,{}),(0,n.jsx)("span",{className:"sr-only",children:"Copy code"})]})]})]}),(0,n.jsx)(d.Z,{language:t,style:u.RY,PreTag:"div",showLineNumbers:!0,customStyle:{margin:0,width:"100%",background:"transparent",padding:"1.5rem 1rem"},codeTagProps:{style:{fontSize:"0.9rem",fontFamily:"var(--font-mono)"}},children:s})]})});g.displayName="CodeBlock";var v=s(19349);let b=(0,c.memo)(v.D,(e,t)=>e.children===t.children&&e.className===t.className);var j=s(16691),y=s.n(j);function w(e){let{message:t,className:s,...r}=e,{isCopied:i,copyToClipboard:l}=m({timeout:2e3});return(0,n.jsx)("div",{className:(0,a.cn)("flex items-center justify-end transition-opacity group-hover:opacity-100 md:absolute md:-right-10 md:-top-2 md:opacity-0",s),...r,children:(0,n.jsxs)(h.z,{variant:"ghost",size:"icon",onClick:()=>{i||l(t.content)},children:[i?(0,n.jsx)(p.NO,{}):(0,n.jsx)(p.vU,{}),(0,n.jsx)("span",{className:"sr-only",children:"Copy message"})]})})}function N(e){let{message:t,...s}=e;return(0,n.jsxs)("div",{className:(0,a.cn)("group relative mb-4 flex items-start md:-ml-12"),...s,children:[(0,n.jsx)("div",{className:(0,a.cn)("flex h-8 w-8 shrink-0 select-none items-center justify-center rounded-md border shadow","user"===t.role?"bg-background":"bg-primary text-primary-foreground"),children:"user"===t.role?(0,n.jsx)(p.f7,{}):(0,n.jsx)(k,{})}),(0,n.jsxs)("div",{className:"flex-1 px-1 ml-4 space-y-2 overflow-hidden",children:[(0,n.jsx)(b,{className:"prose break-words dark:prose-invert prose-p:leading-relaxed prose-pre:p-0",remarkPlugins:[l.Z,o.Z],components:{p(e){let{children:t}=e;return(0,n.jsx)("p",{className:"mb-2 last:mb-0",children:t})},code(e){let{node:t,inline:s,className:r,children:a,...i}=e;if(a.length){if("▍"==a[0])return(0,n.jsx)("span",{className:"mt-1 cursor-default animate-pulse",children:"▍"});a[0]=a[0].replace("`▍`","▍")}let l=/language-(\w+)/.exec(r||"");return s?(0,n.jsx)("code",{className:r,...i,children:a}):(0,n.jsx)(g,{language:l&&l[1]||"",value:String(a).replace(/\n$/,""),...i},Math.random())}},children:t.content}),(0,n.jsx)(w,{message:t})]})]})}function k(){return(0,n.jsx)(y(),{style:{borderRadius:4},src:"https://avatars.githubusercontent.com/u/125617854?s=128&v=4",alt:"tabby",width:"128",height:"128"})}function z(e){let{messages:t}=e;return t.length?(0,n.jsx)("div",{className:"relative mx-auto max-w-2xl px-4",children:t.map((e,s)=>(0,n.jsxs)("div",{children:[(0,n.jsx)(N,{message:e}),s{if("Enter"===t.key&&!t.shiftKey&&!t.nativeEvent.isComposing){var s;null===(s=e.current)||void 0===s||s.requestSubmit(),t.preventDefault()}}}}(),d=c.useRef(null);return(0,E.useRouter)(),c.useEffect(()=>{d.current&&d.current.focus()},[]),(0,n.jsx)("form",{onSubmit:async e=>{e.preventDefault(),(null==s?void 0:s.trim())&&(r(""),await t(s))},ref:l,children:(0,n.jsxs)("div",{className:"relative flex max-h-60 w-full grow flex-col overflow-hidden bg-background px-8 sm:rounded-md sm:border sm:px-12",children:[(0,n.jsx)("span",{className:(0,a.cn)((0,h.d)({size:"sm",variant:"ghost"}),"absolute left-0 top-4 h-8 w-8 rounded-full bg-background p-0 sm:left-4 hover:bg-background"),children:(0,n.jsx)(p.yl,{})}),(0,n.jsx)(C.Z,{ref:d,tabIndex:0,onKeyDown:o,rows:1,value:s,onChange:e=>r(e.target.value),placeholder:"Ask a question.",spellCheck:!1,className:"min-h-[60px] w-full resize-none bg-transparent px-4 py-[1.3rem] focus-within:outline-none sm:text-sm"}),(0,n.jsx)("div",{className:"absolute right-0 top-4 sm:right-4",children:(0,n.jsxs)(R.u,{children:[(0,n.jsx)(R.aJ,{asChild:!0,children:(0,n.jsxs)(h.z,{type:"submit",size:"icon",disabled:i||""===s,children:[(0,n.jsx)(p.vq,{}),(0,n.jsx)("span",{className:"sr-only",children:"Send message"})]})}),(0,n.jsx)(R._v,{children:"Send message"})]})})]})})}function S(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,[t,s]=c.useState(!1);return c.useEffect(()=>{let t=()=>{s(window.innerHeight+window.scrollY>=document.body.offsetHeight-e)};return window.addEventListener("scroll",t,{passive:!0}),t(),()=>{window.removeEventListener("scroll",t)}},[e]),t}function T(e){let{className:t,...s}=e,r=S();return(0,n.jsxs)(h.z,{variant:"outline",size:"icon",className:(0,a.cn)("absolute right-4 top-1 z-10 bg-background transition-opacity duration-300 sm:right-8 md:top-2",r?"opacity-0":"opacity-100",t),onClick:()=>window.scrollTo({top:document.body.offsetHeight,behavior:"smooth"}),...s,children:[(0,n.jsx)(p.BD,{}),(0,n.jsx)("span",{className:"sr-only",children:"Scroll to bottom"})]})}function _(e){let{href:t,children:s}=e;return(0,n.jsxs)("a",{href:t,target:"_blank",className:"inline-flex flex-1 justify-center gap-1 leading-4 hover:underline",children:[(0,n.jsx)("span",{children:s}),(0,n.jsx)("svg",{"aria-hidden":"true",height:"7",viewBox:"0 0 6 6",width:"7",className:"opacity-70",children:(0,n.jsx)("path",{d:"M1.25215 5.54731L0.622742 4.9179L3.78169 1.75597H1.3834L1.38936 0.890915H5.27615V4.78069H4.40513L4.41109 2.38538L1.25215 5.54731Z",fill:"currentColor"})})]})}function D(e){let{className:t,...s}=e;return(0,n.jsxs)("p",{className:(0,a.cn)("px-2 text-center text-xs leading-normal text-muted-foreground",t),...s,children:[(0,n.jsx)(_,{href:"https://tabby.tabbyml.com",children:"Tabby"}),", an opensource, self-hosted AI coding assistant ."]})}function H(e){let{id:t,isLoading:s,stop:r,append:a,reload:i,input:l,setInput:o,messages:c}=e;return(0,n.jsxs)("div",{className:"fixed inset-x-0 bottom-0 bg-gradient-to-b from-muted/10 from-10% to-muted/30 to-50%",children:[(0,n.jsx)(T,{}),(0,n.jsxs)("div",{className:"mx-auto sm:max-w-2xl sm:px-4",children:[(0,n.jsx)("div",{className:"flex h-10 items-center justify-center",children:s?(0,n.jsxs)(h.z,{variant:"outline",onClick:()=>r(),className:"bg-background",children:[(0,n.jsx)(p.zu,{className:"mr-2"}),"Stop generating"]}):(null==c?void 0:c.length)>0&&(0,n.jsxs)(h.z,{variant:"outline",onClick:()=>i(),className:"bg-background",children:[(0,n.jsx)(p.tr,{className:"mr-2"}),"Regenerate response"]})}),(0,n.jsxs)("div",{className:"space-y-4 border-t bg-background px-4 py-2 shadow-lg sm:rounded-t-xl sm:border md:py-4",children:[(0,n.jsx)(L,{onSubmit:async e=>{await a({id:t,content:e,role:"user"})},input:l,setInput:o,isLoading:s}),(0,n.jsx)(D,{className:"hidden sm:block"})]})]})]})}let O=[{heading:"Convert list of string to numbers",message:"How to convert a list of string to numbers in python"},{heading:"How to parse email address",message:"How to parse email address with regex"}];function U(e){let{setInput:t}=e;return(0,n.jsx)("div",{className:"mx-auto max-w-2xl px-4",children:(0,n.jsxs)("div",{className:"rounded-lg border bg-background p-8",children:[(0,n.jsx)("h1",{className:"mb-2 text-lg font-semibold",children:"Welcome to Playground!"}),(0,n.jsx)("p",{className:"leading-normal text-muted-foreground",children:"You can start a conversation here or try the following examples:"}),(0,n.jsx)("div",{className:"mt-4 flex flex-col items-start space-y-2",children:O.map((e,s)=>(0,n.jsxs)(h.z,{variant:"link",className:"h-auto p-0 text-base",onClick:()=>t(e.message),children:[(0,n.jsx)(p.Ec,{className:"mr-2 text-muted-foreground"}),e.heading]},s))})]})})}var B=s(4327);function P(e){let{trackVisibility:t}=e,s=S(),{ref:r,entry:a,inView:i}=(0,B.YD)({trackVisibility:t,delay:100,rootMargin:"0px 0px -150px 0px"});return c.useEffect(()=>{s&&t&&!i&&(null==a||a.target.scrollIntoView({block:"start"}))},[i,a,s,t]),(0,n.jsx)("div",{ref:r,className:"h-px w-full"})}var Y=s(5925),I=s(4913);let V=new TextDecoder("utf-8");async function Z(e,t){for(let s of e){let{content:e}=JSON.parse(s);t.enqueue(e)}}async function q(e,t){let s="";for(;;){let{value:n,done:r}=await e.read();if(r)break;s+=V.decode(n,{stream:!0});let a=s.split(/\r\n|\n|\r/g);s=a.pop()||"",await Z(a,t)}if(s){let e=[s];await Z(e,t)}t.close()}var M=s(62601);let A=M.env.NEXT_PUBLIC_TABBY_SERVER_URL||"";function J(e){let{id:t,initialMessages:s,className:i}=e;(0,c.useEffect)(()=>{let e=window.fetch;window.fetch=async function(t,s){var n;if("/api/chat"!==t)return e(t,s);let{messages:r}=JSON.parse(s.body),a=await e("".concat(A,"/v1beta/chat/completions"),{...s,method:"POST",headers:{"Content-Type":"application/json"}}),i=(n=void 0,(function(e){var t;let s=null===(t=e.body)||void 0===t?void 0:t.getReader();return new ReadableStream({async start(e){if(!s){e.close();return}await q(s,e)}})})(a).pipeThrough((0,I.T_)(n)).pipeThrough((0,I.h6)(null==n?void 0:n.experimental_streamData)));return new I.wn(i)}},[]);let{messages:l,append:o,reload:d,stop:u,isLoading:m,input:p,setInput:h,setMessages:f}=(0,r.R)({initialMessages:s,id:t,body:{id:t},onResponse(e){401===e.status&&Y.toast.error(e.statusText)}});return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)("div",{className:(0,a.cn)("pb-[200px] pt-4 md:pt-10",i),children:l.length?(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(z,{messages:l}),(0,n.jsx)(P,{trackVisibility:m})]}):(0,n.jsx)(U,{setInput:h})}),(0,n.jsx)(H,{id:t,isLoading:m,stop:u,append:o,reload:d,messages:l,input:p,setInput:h})]})}},16775:function(e,t,s){"use strict";s.d(t,{Z:function(){return l}});var n=s(57437),r=s(2265),a=s(26823),i=s(39311);let l=r.forwardRef((e,t)=>{let{className:s,orientation:r="horizontal",decorative:l=!0,...o}=e;return(0,n.jsx)(a.f,{ref:t,decorative:l,orientation:r,className:(0,i.cn)("shrink-0 bg-border","horizontal"===r?"h-[1px] w-full":"h-full w-[1px]",s),...o})});l.displayName=a.f.displayName},95482:function(e,t,s){"use strict";s.d(t,{_v:function(){return d},aJ:function(){return c},pn:function(){return l},u:function(){return o}});var n=s(57437),r=s(2265),a=s(43212),i=s(39311);let l=a.zt,o=a.fC,c=a.xz,d=r.forwardRef((e,t)=>{let{className:s,sideOffset:r=4,...l}=e;return(0,n.jsx)(a.VY,{ref:t,sideOffset:r,className:(0,i.cn)("z-50 overflow-hidden rounded-md border bg-popover px-3 py-1.5 text-xs font-medium text-popover-foreground shadow-md animate-in fade-in-50 data-[side=bottom]:slide-in-from-top-1 data-[side=left]:slide-in-from-right-1 data-[side=right]:slide-in-from-left-1 data-[side=top]:slide-in-from-bottom-1",s),...l})});d.displayName=a.VY.displayName}},function(e){e.O(0,[358,406,978,894,971,864,744],function(){return e(e.s=92720)}),_N_E=e.O()}]); \ No newline at end of file +(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[383],{85722:function(e,t,s){Promise.resolve().then(s.bind(s,12202))},12202:function(e,t,s){"use strict";s.r(t),s.d(t,{Chat:function(){return J}});var n=s(57437),r=s(57139),a=s(39311),i=s(16775),l=s(48975),o=s(82180),c=s(2265),d=s(30513),u=s(4523);function m(e){let{timeout:t=2e3}=e,[s,n]=c.useState(!1);return{isCopied:s,copyToClipboard:e=>{var s;(null===(s=navigator.clipboard)||void 0===s?void 0:s.writeText)&&e&&navigator.clipboard.writeText(e).then(()=>{n(!0),setTimeout(()=>{n(!1)},t)})}}}var p=s(84168),h=s(93023);let f={javascript:".js",python:".py",java:".java",c:".c",cpp:".cpp","c++":".cpp","c#":".cs",ruby:".rb",php:".php",swift:".swift","objective-c":".m",kotlin:".kt",typescript:".ts",go:".go",perl:".pl",rust:".rs",scala:".scala",haskell:".hs",lua:".lua",shell:".sh",sql:".sql",html:".html",css:".css"},x=function(e){let t=arguments.length>1&&void 0!==arguments[1]&&arguments[1],s="ABCDEFGHJKLMNPQRSTUVWXY3456789",n="";for(let t=0;t{let{language:t,value:s}=e,{isCopied:r,copyToClipboard:a}=m({timeout:2e3});return(0,n.jsxs)("div",{className:"relative w-full font-sans codeblock bg-zinc-950",children:[(0,n.jsxs)("div",{className:"flex items-center justify-between w-full px-6 py-2 pr-4 bg-zinc-800 text-zinc-100",children:[(0,n.jsx)("span",{className:"text-xs lowercase",children:t}),(0,n.jsxs)("div",{className:"flex items-center space-x-1",children:[(0,n.jsxs)(h.z,{variant:"ghost",className:"hover:bg-zinc-800 focus-visible:ring-1 focus-visible:ring-slate-700 focus-visible:ring-offset-0",onClick:()=>{let e=f[t]||".file",n="file-".concat(x(3,!0)).concat(e),r=window.prompt("Enter file name",n);if(!r)return;let a=new Blob([s],{type:"text/plain"}),i=URL.createObjectURL(a),l=document.createElement("a");l.download=r,l.href=i,l.style.display="none",document.body.appendChild(l),l.click(),document.body.removeChild(l),URL.revokeObjectURL(i)},size:"icon",children:[(0,n.jsx)(p.Dj,{}),(0,n.jsx)("span",{className:"sr-only",children:"Download"})]}),(0,n.jsxs)(h.z,{variant:"ghost",size:"icon",className:"text-xs hover:bg-zinc-800 focus-visible:ring-1 focus-visible:ring-slate-700 focus-visible:ring-offset-0",onClick:()=>{r||a(s)},children:[r?(0,n.jsx)(p.NO,{}):(0,n.jsx)(p.vU,{}),(0,n.jsx)("span",{className:"sr-only",children:"Copy code"})]})]})]}),(0,n.jsx)(d.Z,{language:t,style:u.RY,PreTag:"div",showLineNumbers:!0,customStyle:{margin:0,width:"100%",background:"transparent",padding:"1.5rem 1rem"},codeTagProps:{style:{fontSize:"0.9rem",fontFamily:"var(--font-mono)"}},children:s})]})});g.displayName="CodeBlock";var v=s(19349);let b=(0,c.memo)(v.D,(e,t)=>e.children===t.children&&e.className===t.className);var j=s(16691),y=s.n(j);function w(e){let{message:t,className:s,...r}=e,{isCopied:i,copyToClipboard:l}=m({timeout:2e3});return(0,n.jsx)("div",{className:(0,a.cn)("flex items-center justify-end transition-opacity group-hover:opacity-100 md:absolute md:-right-10 md:-top-2 md:opacity-0",s),...r,children:(0,n.jsxs)(h.z,{variant:"ghost",size:"icon",onClick:()=>{i||l(t.content)},children:[i?(0,n.jsx)(p.NO,{}):(0,n.jsx)(p.vU,{}),(0,n.jsx)("span",{className:"sr-only",children:"Copy message"})]})})}function N(e){let{message:t,...s}=e;return(0,n.jsxs)("div",{className:(0,a.cn)("group relative mb-4 flex items-start md:-ml-12"),...s,children:[(0,n.jsx)("div",{className:(0,a.cn)("flex h-8 w-8 shrink-0 select-none items-center justify-center rounded-md border shadow","user"===t.role?"bg-background":"bg-primary text-primary-foreground"),children:"user"===t.role?(0,n.jsx)(p.f7,{}):(0,n.jsx)(k,{})}),(0,n.jsxs)("div",{className:"flex-1 px-1 ml-4 space-y-2 overflow-hidden",children:[(0,n.jsx)(b,{className:"prose break-words dark:prose-invert prose-p:leading-relaxed prose-pre:p-0",remarkPlugins:[l.Z,o.Z],components:{p(e){let{children:t}=e;return(0,n.jsx)("p",{className:"mb-2 last:mb-0",children:t})},code(e){let{node:t,inline:s,className:r,children:a,...i}=e;if(a.length){if("▍"==a[0])return(0,n.jsx)("span",{className:"mt-1 cursor-default animate-pulse",children:"▍"});a[0]=a[0].replace("`▍`","▍")}let l=/language-(\w+)/.exec(r||"");return s?(0,n.jsx)("code",{className:r,...i,children:a}):(0,n.jsx)(g,{language:l&&l[1]||"",value:String(a).replace(/\n$/,""),...i},Math.random())}},children:t.content}),(0,n.jsx)(w,{message:t})]})]})}function k(){return(0,n.jsx)(y(),{style:{borderRadius:4},src:"https://avatars.githubusercontent.com/u/125617854?s=128&v=4",alt:"tabby",width:"128",height:"128"})}function z(e){let{messages:t}=e;return t.length?(0,n.jsx)("div",{className:"relative mx-auto max-w-2xl px-4",children:t.map((e,s)=>(0,n.jsxs)("div",{children:[(0,n.jsx)(N,{message:e}),s{if("Enter"===t.key&&!t.shiftKey&&!t.nativeEvent.isComposing){var s;null===(s=e.current)||void 0===s||s.requestSubmit(),t.preventDefault()}}}}(),d=c.useRef(null);return(0,E.useRouter)(),c.useEffect(()=>{d.current&&d.current.focus()},[]),(0,n.jsx)("form",{onSubmit:async e=>{e.preventDefault(),(null==s?void 0:s.trim())&&(r(""),await t(s))},ref:l,children:(0,n.jsxs)("div",{className:"relative flex max-h-60 w-full grow flex-col overflow-hidden bg-background px-8 sm:rounded-md sm:border sm:px-12",children:[(0,n.jsx)("span",{className:(0,a.cn)((0,h.d)({size:"sm",variant:"ghost"}),"absolute left-0 top-4 h-8 w-8 rounded-full bg-background p-0 sm:left-4 hover:bg-background"),children:(0,n.jsx)(p.yl,{})}),(0,n.jsx)(C.Z,{ref:d,tabIndex:0,onKeyDown:o,rows:1,value:s,onChange:e=>r(e.target.value),placeholder:"Ask a question.",spellCheck:!1,className:"min-h-[60px] w-full resize-none bg-transparent px-4 py-[1.3rem] focus-within:outline-none sm:text-sm"}),(0,n.jsx)("div",{className:"absolute right-0 top-4 sm:right-4",children:(0,n.jsxs)(R.u,{children:[(0,n.jsx)(R.aJ,{asChild:!0,children:(0,n.jsxs)(h.z,{type:"submit",size:"icon",disabled:i||""===s,children:[(0,n.jsx)(p.vq,{}),(0,n.jsx)("span",{className:"sr-only",children:"Send message"})]})}),(0,n.jsx)(R._v,{children:"Send message"})]})})]})})}function S(){let e=arguments.length>0&&void 0!==arguments[0]?arguments[0]:0,[t,s]=c.useState(!1);return c.useEffect(()=>{let t=()=>{s(window.innerHeight+window.scrollY>=document.body.offsetHeight-e)};return window.addEventListener("scroll",t,{passive:!0}),t(),()=>{window.removeEventListener("scroll",t)}},[e]),t}function T(e){let{className:t,...s}=e,r=S();return(0,n.jsxs)(h.z,{variant:"outline",size:"icon",className:(0,a.cn)("absolute right-4 top-1 z-10 bg-background transition-opacity duration-300 sm:right-8 md:top-2",r?"opacity-0":"opacity-100",t),onClick:()=>window.scrollTo({top:document.body.offsetHeight,behavior:"smooth"}),...s,children:[(0,n.jsx)(p.BD,{}),(0,n.jsx)("span",{className:"sr-only",children:"Scroll to bottom"})]})}function _(e){let{href:t,children:s}=e;return(0,n.jsxs)("a",{href:t,target:"_blank",className:"inline-flex flex-1 justify-center gap-1 leading-4 hover:underline",children:[(0,n.jsx)("span",{children:s}),(0,n.jsx)("svg",{"aria-hidden":"true",height:"7",viewBox:"0 0 6 6",width:"7",className:"opacity-70",children:(0,n.jsx)("path",{d:"M1.25215 5.54731L0.622742 4.9179L3.78169 1.75597H1.3834L1.38936 0.890915H5.27615V4.78069H4.40513L4.41109 2.38538L1.25215 5.54731Z",fill:"currentColor"})})]})}function D(e){let{className:t,...s}=e;return(0,n.jsxs)("p",{className:(0,a.cn)("px-2 text-center text-xs leading-normal text-muted-foreground",t),...s,children:[(0,n.jsx)(_,{href:"https://tabby.tabbyml.com",children:"Tabby"}),", an opensource, self-hosted AI coding assistant ."]})}function H(e){let{id:t,isLoading:s,stop:r,append:a,reload:i,input:l,setInput:o,messages:c}=e;return(0,n.jsxs)("div",{className:"fixed inset-x-0 bottom-0 bg-gradient-to-b from-muted/10 from-10% to-muted/30 to-50%",children:[(0,n.jsx)(T,{}),(0,n.jsxs)("div",{className:"mx-auto sm:max-w-2xl sm:px-4",children:[(0,n.jsx)("div",{className:"flex h-10 items-center justify-center",children:s?(0,n.jsxs)(h.z,{variant:"outline",onClick:()=>r(),className:"bg-background",children:[(0,n.jsx)(p.zu,{className:"mr-2"}),"Stop generating"]}):(null==c?void 0:c.length)>0&&(0,n.jsxs)(h.z,{variant:"outline",onClick:()=>i(),className:"bg-background",children:[(0,n.jsx)(p.tr,{className:"mr-2"}),"Regenerate response"]})}),(0,n.jsxs)("div",{className:"space-y-4 border-t bg-background px-4 py-2 shadow-lg sm:rounded-t-xl sm:border md:py-4",children:[(0,n.jsx)(L,{onSubmit:async e=>{await a({id:t,content:e,role:"user"})},input:l,setInput:o,isLoading:s}),(0,n.jsx)(D,{className:"hidden sm:block"})]})]})]})}let O=[{heading:"Convert list of string to numbers",message:"How to convert a list of string to numbers in python"},{heading:"How to parse email address",message:"How to parse email address with regex"}];function U(e){let{setInput:t}=e;return(0,n.jsx)("div",{className:"mx-auto max-w-2xl px-4",children:(0,n.jsxs)("div",{className:"rounded-lg border bg-background p-8",children:[(0,n.jsx)("h1",{className:"mb-2 text-lg font-semibold",children:"Welcome to Playground!"}),(0,n.jsx)("p",{className:"leading-normal text-muted-foreground",children:"You can start a conversation here or try the following examples:"}),(0,n.jsx)("div",{className:"mt-4 flex flex-col items-start space-y-2",children:O.map((e,s)=>(0,n.jsxs)(h.z,{variant:"link",className:"h-auto p-0 text-base",onClick:()=>t(e.message),children:[(0,n.jsx)(p.Ec,{className:"mr-2 text-muted-foreground"}),e.heading]},s))})]})})}var B=s(4327);function P(e){let{trackVisibility:t}=e,s=S(),{ref:r,entry:a,inView:i}=(0,B.YD)({trackVisibility:t,delay:100,rootMargin:"0px 0px -150px 0px"});return c.useEffect(()=>{s&&t&&!i&&(null==a||a.target.scrollIntoView({block:"start"}))},[i,a,s,t]),(0,n.jsx)("div",{ref:r,className:"h-px w-full"})}var Y=s(5925),I=s(4913);let V=new TextDecoder("utf-8");async function Z(e,t){for(let s of e){let{content:e}=JSON.parse(s);t.enqueue(e)}}async function q(e,t){let s="";for(;;){let{value:n,done:r}=await e.read();if(r)break;s+=V.decode(n,{stream:!0});let a=s.split(/\r\n|\n|\r/g);s=a.pop()||"",await Z(a,t)}if(s){let e=[s];await Z(e,t)}t.close()}var M=s(62601);let A=M.env.NEXT_PUBLIC_TABBY_SERVER_URL||"";function J(e){let{id:t,initialMessages:s,className:i}=e;(0,c.useEffect)(()=>{let e=window.fetch;window.fetch=async function(t,s){var n;if("/api/chat"!==t)return e(t,s);let{messages:r}=JSON.parse(s.body),a=await e("".concat(A,"/v1beta/chat/completions"),{...s,method:"POST",headers:{"Content-Type":"application/json"}}),i=(n=void 0,(function(e){var t;let s=null===(t=e.body)||void 0===t?void 0:t.getReader();return new ReadableStream({async start(e){if(!s){e.close();return}await q(s,e)}})})(a).pipeThrough((0,I.T_)(n)).pipeThrough((0,I.h6)(null==n?void 0:n.experimental_streamData)));return new I.wn(i)}},[]);let{messages:l,append:o,reload:d,stop:u,isLoading:m,input:p,setInput:h,setMessages:f}=(0,r.R)({initialMessages:s,id:t,body:{id:t},onResponse(e){401===e.status&&Y.toast.error(e.statusText)}});return(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)("div",{className:(0,a.cn)("pb-[200px] pt-4 md:pt-10",i),children:l.length?(0,n.jsxs)(n.Fragment,{children:[(0,n.jsx)(z,{messages:l}),(0,n.jsx)(P,{trackVisibility:m})]}):(0,n.jsx)(U,{setInput:h})}),(0,n.jsx)(H,{id:t,isLoading:m,stop:u,append:o,reload:d,messages:l,input:p,setInput:h})]})}},16775:function(e,t,s){"use strict";s.d(t,{Z:function(){return l}});var n=s(57437),r=s(2265),a=s(26823),i=s(39311);let l=r.forwardRef((e,t)=>{let{className:s,orientation:r="horizontal",decorative:l=!0,...o}=e;return(0,n.jsx)(a.f,{ref:t,decorative:l,orientation:r,className:(0,i.cn)("shrink-0 bg-border","horizontal"===r?"h-[1px] w-full":"h-full w-[1px]",s),...o})});l.displayName=a.f.displayName},95482:function(e,t,s){"use strict";s.d(t,{_v:function(){return d},aJ:function(){return c},pn:function(){return l},u:function(){return o}});var n=s(57437),r=s(2265),a=s(43212),i=s(39311);let l=a.zt,o=a.fC,c=a.xz,d=r.forwardRef((e,t)=>{let{className:s,sideOffset:r=4,...l}=e;return(0,n.jsx)(a.VY,{ref:t,sideOffset:r,className:(0,i.cn)("z-50 overflow-hidden rounded-md border bg-popover px-3 py-1.5 text-xs font-medium text-popover-foreground shadow-md animate-in fade-in-50 data-[side=bottom]:slide-in-from-top-1 data-[side=left]:slide-in-from-right-1 data-[side=right]:slide-in-from-left-1 data-[side=top]:slide-in-from-bottom-1",s),...l})});d.displayName=a.VY.displayName}},function(e){e.O(0,[358,406,978,894,971,864,744],function(){return e(e.s=85722)}),_N_E=e.O()}]); \ No newline at end of file diff --git a/crates/tabby/playground/_next/static/chunks/fd9d1056-5dfc77aa37d8c76f.js b/crates/tabby/ui/_next/static/chunks/fd9d1056-5dfc77aa37d8c76f.js similarity index 100% rename from crates/tabby/playground/_next/static/chunks/fd9d1056-5dfc77aa37d8c76f.js rename to crates/tabby/ui/_next/static/chunks/fd9d1056-5dfc77aa37d8c76f.js diff --git a/crates/tabby/playground/_next/static/chunks/framework-43665103d101a22d.js b/crates/tabby/ui/_next/static/chunks/framework-43665103d101a22d.js similarity index 100% rename from crates/tabby/playground/_next/static/chunks/framework-43665103d101a22d.js rename to crates/tabby/ui/_next/static/chunks/framework-43665103d101a22d.js diff --git a/crates/tabby/playground/_next/static/chunks/main-333119f4e1ef5173.js b/crates/tabby/ui/_next/static/chunks/main-333119f4e1ef5173.js similarity index 100% rename from crates/tabby/playground/_next/static/chunks/main-333119f4e1ef5173.js rename to crates/tabby/ui/_next/static/chunks/main-333119f4e1ef5173.js diff --git a/crates/tabby/playground/_next/static/chunks/main-app-63509e933f53c55d.js b/crates/tabby/ui/_next/static/chunks/main-app-f5e741f8e36a0a29.js similarity index 67% rename from crates/tabby/playground/_next/static/chunks/main-app-63509e933f53c55d.js rename to crates/tabby/ui/_next/static/chunks/main-app-f5e741f8e36a0a29.js index 81ec149..d13d960 100644 --- a/crates/tabby/playground/_next/static/chunks/main-app-63509e933f53c55d.js +++ b/crates/tabby/ui/_next/static/chunks/main-app-f5e741f8e36a0a29.js @@ -1 +1 @@ -(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[744],{47469:function(e,n,t){Promise.resolve().then(t.t.bind(t,76054,23)),Promise.resolve().then(t.t.bind(t,41729,23)),Promise.resolve().then(t.t.bind(t,81443,23)),Promise.resolve().then(t.t.bind(t,36384,23)),Promise.resolve().then(t.t.bind(t,18639,23)),Promise.resolve().then(t.t.bind(t,65146,23))}},function(e){var n=function(n){return e(e.s=n)};e.O(0,[971,864],function(){return n(23123),n(47469)}),_N_E=e.O()}]); \ No newline at end of file +(self.webpackChunk_N_E=self.webpackChunk_N_E||[]).push([[744],{50588:function(e,n,t){Promise.resolve().then(t.t.bind(t,76054,23)),Promise.resolve().then(t.t.bind(t,41729,23)),Promise.resolve().then(t.t.bind(t,81443,23)),Promise.resolve().then(t.t.bind(t,36384,23)),Promise.resolve().then(t.t.bind(t,18639,23)),Promise.resolve().then(t.t.bind(t,65146,23))}},function(e){var n=function(n){return e(e.s=n)};e.O(0,[971,864],function(){return n(23123),n(50588)}),_N_E=e.O()}]); \ No newline at end of file diff --git a/crates/tabby/playground/_next/static/chunks/pages/_app-6ca4a4ec31e39f3d.js b/crates/tabby/ui/_next/static/chunks/pages/_app-6ca4a4ec31e39f3d.js similarity index 100% rename from crates/tabby/playground/_next/static/chunks/pages/_app-6ca4a4ec31e39f3d.js rename to crates/tabby/ui/_next/static/chunks/pages/_app-6ca4a4ec31e39f3d.js diff --git a/crates/tabby/playground/_next/static/chunks/pages/_error-9de0d1f4f4d1fcb4.js b/crates/tabby/ui/_next/static/chunks/pages/_error-9de0d1f4f4d1fcb4.js similarity index 100% rename from crates/tabby/playground/_next/static/chunks/pages/_error-9de0d1f4f4d1fcb4.js rename to crates/tabby/ui/_next/static/chunks/pages/_error-9de0d1f4f4d1fcb4.js diff --git a/crates/tabby/playground/_next/static/chunks/polyfills-c67a75d1b6f99dc8.js b/crates/tabby/ui/_next/static/chunks/polyfills-c67a75d1b6f99dc8.js similarity index 100% rename from crates/tabby/playground/_next/static/chunks/polyfills-c67a75d1b6f99dc8.js rename to crates/tabby/ui/_next/static/chunks/polyfills-c67a75d1b6f99dc8.js diff --git a/crates/tabby/playground/_next/static/chunks/webpack-425a00248a63a7de.js b/crates/tabby/ui/_next/static/chunks/webpack-425a00248a63a7de.js similarity index 100% rename from crates/tabby/playground/_next/static/chunks/webpack-425a00248a63a7de.js rename to crates/tabby/ui/_next/static/chunks/webpack-425a00248a63a7de.js diff --git a/crates/tabby/playground/_next/static/css/616b1d8d470f862f.css b/crates/tabby/ui/_next/static/css/616b1d8d470f862f.css similarity index 100% rename from crates/tabby/playground/_next/static/css/616b1d8d470f862f.css rename to crates/tabby/ui/_next/static/css/616b1d8d470f862f.css diff --git a/crates/tabby/playground/_next/static/media/05a31a2ca4975f99-s.woff2 b/crates/tabby/ui/_next/static/media/05a31a2ca4975f99-s.woff2 similarity index 100% rename from crates/tabby/playground/_next/static/media/05a31a2ca4975f99-s.woff2 rename to crates/tabby/ui/_next/static/media/05a31a2ca4975f99-s.woff2 diff --git a/crates/tabby/playground/_next/static/media/34dd45dcdd6d47ee-s.woff2 b/crates/tabby/ui/_next/static/media/34dd45dcdd6d47ee-s.woff2 similarity index 100% rename from crates/tabby/playground/_next/static/media/34dd45dcdd6d47ee-s.woff2 rename to crates/tabby/ui/_next/static/media/34dd45dcdd6d47ee-s.woff2 diff --git a/crates/tabby/playground/_next/static/media/513657b02c5c193f-s.woff2 b/crates/tabby/ui/_next/static/media/513657b02c5c193f-s.woff2 similarity index 100% rename from crates/tabby/playground/_next/static/media/513657b02c5c193f-s.woff2 rename to crates/tabby/ui/_next/static/media/513657b02c5c193f-s.woff2 diff --git a/crates/tabby/playground/_next/static/media/51ed15f9841b9f9d-s.woff2 b/crates/tabby/ui/_next/static/media/51ed15f9841b9f9d-s.woff2 similarity index 100% rename from crates/tabby/playground/_next/static/media/51ed15f9841b9f9d-s.woff2 rename to crates/tabby/ui/_next/static/media/51ed15f9841b9f9d-s.woff2 diff --git a/crates/tabby/playground/_next/static/media/86fdec36ddd9097e-s.p.woff2 b/crates/tabby/ui/_next/static/media/86fdec36ddd9097e-s.p.woff2 similarity index 100% rename from crates/tabby/playground/_next/static/media/86fdec36ddd9097e-s.p.woff2 rename to crates/tabby/ui/_next/static/media/86fdec36ddd9097e-s.p.woff2 diff --git a/crates/tabby/playground/_next/static/media/9e58c89b9633dcad-s.woff2 b/crates/tabby/ui/_next/static/media/9e58c89b9633dcad-s.woff2 similarity index 100% rename from crates/tabby/playground/_next/static/media/9e58c89b9633dcad-s.woff2 rename to crates/tabby/ui/_next/static/media/9e58c89b9633dcad-s.woff2 diff --git a/crates/tabby/playground/_next/static/media/a1ab2e69d2f53384-s.woff2 b/crates/tabby/ui/_next/static/media/a1ab2e69d2f53384-s.woff2 similarity index 100% rename from crates/tabby/playground/_next/static/media/a1ab2e69d2f53384-s.woff2 rename to crates/tabby/ui/_next/static/media/a1ab2e69d2f53384-s.woff2 diff --git a/crates/tabby/playground/_next/static/media/c4a41ea065a0023c-s.woff2 b/crates/tabby/ui/_next/static/media/c4a41ea065a0023c-s.woff2 similarity index 100% rename from crates/tabby/playground/_next/static/media/c4a41ea065a0023c-s.woff2 rename to crates/tabby/ui/_next/static/media/c4a41ea065a0023c-s.woff2 diff --git a/crates/tabby/playground/_next/static/media/c9a5bc6a7c948fb0-s.p.woff2 b/crates/tabby/ui/_next/static/media/c9a5bc6a7c948fb0-s.p.woff2 similarity index 100% rename from crates/tabby/playground/_next/static/media/c9a5bc6a7c948fb0-s.p.woff2 rename to crates/tabby/ui/_next/static/media/c9a5bc6a7c948fb0-s.p.woff2 diff --git a/crates/tabby/playground/_next/static/media/d6b16ce4a6175f26-s.woff2 b/crates/tabby/ui/_next/static/media/d6b16ce4a6175f26-s.woff2 similarity index 100% rename from crates/tabby/playground/_next/static/media/d6b16ce4a6175f26-s.woff2 rename to crates/tabby/ui/_next/static/media/d6b16ce4a6175f26-s.woff2 diff --git a/crates/tabby/playground/_next/static/media/de2ba2ebf355004e-s.woff2 b/crates/tabby/ui/_next/static/media/de2ba2ebf355004e-s.woff2 similarity index 100% rename from crates/tabby/playground/_next/static/media/de2ba2ebf355004e-s.woff2 rename to crates/tabby/ui/_next/static/media/de2ba2ebf355004e-s.woff2 diff --git a/crates/tabby/playground/_next/static/media/ec159349637c90ad-s.woff2 b/crates/tabby/ui/_next/static/media/ec159349637c90ad-s.woff2 similarity index 100% rename from crates/tabby/playground/_next/static/media/ec159349637c90ad-s.woff2 rename to crates/tabby/ui/_next/static/media/ec159349637c90ad-s.woff2 diff --git a/crates/tabby/playground/_next/static/media/fd4db3eb5472fc27-s.woff2 b/crates/tabby/ui/_next/static/media/fd4db3eb5472fc27-s.woff2 similarity index 100% rename from crates/tabby/playground/_next/static/media/fd4db3eb5472fc27-s.woff2 rename to crates/tabby/ui/_next/static/media/fd4db3eb5472fc27-s.woff2 diff --git a/crates/tabby/playground/index.html b/crates/tabby/ui/index.html similarity index 95% rename from crates/tabby/playground/index.html rename to crates/tabby/ui/index.html index 19efcac..b503ffb 100644 --- a/crates/tabby/playground/index.html +++ b/crates/tabby/ui/index.html @@ -1 +1 @@ -Tabby - Home
\ No newline at end of file +Tabby - Home
\ No newline at end of file diff --git a/crates/tabby/playground/index.txt b/crates/tabby/ui/index.txt similarity index 92% rename from crates/tabby/playground/index.txt rename to crates/tabby/ui/index.txt index 7b2c8f5..6672c95 100644 --- a/crates/tabby/playground/index.txt +++ b/crates/tabby/ui/index.txt @@ -1,14 +1,14 @@ 1:HL["/_next/static/media/86fdec36ddd9097e-s.p.woff2","font",{"crossOrigin":"","type":"font/woff2"}] 2:HL["/_next/static/media/c9a5bc6a7c948fb0-s.p.woff2","font",{"crossOrigin":"","type":"font/woff2"}] 3:HL["/_next/static/css/616b1d8d470f862f.css","style"] -0:["zeY5-E7aVjZwD9S_JXVsQ",[[["",{"children":["__PAGE__",{}]},"$undefined","$undefined",true],"$L4",[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/616b1d8d470f862f.css","precedence":"next"}]],"$L5"]]]] -6:I{"id":5925,"chunks":["358:static/chunks/358-dc819165169f937b.js","406:static/chunks/406-35481e1b86c5b377.js","832:static/chunks/832-06362e8382d18069.js","894:static/chunks/894-25d9916957b869f3.js","185:static/chunks/app/layout-6c30f50bddf243c7.js"],"name":"Toaster","async":false} -7:I{"id":78495,"chunks":["358:static/chunks/358-dc819165169f937b.js","406:static/chunks/406-35481e1b86c5b377.js","832:static/chunks/832-06362e8382d18069.js","894:static/chunks/894-25d9916957b869f3.js","185:static/chunks/app/layout-6c30f50bddf243c7.js"],"name":"Providers","async":false} -8:I{"id":78963,"chunks":["358:static/chunks/358-dc819165169f937b.js","406:static/chunks/406-35481e1b86c5b377.js","832:static/chunks/832-06362e8382d18069.js","894:static/chunks/894-25d9916957b869f3.js","185:static/chunks/app/layout-6c30f50bddf243c7.js"],"name":"Header","async":false} +0:["5Ardx8NLn9MFJ4mWUnSbO",[[["",{"children":["__PAGE__",{}]},"$undefined","$undefined",true],"$L4",[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/616b1d8d470f862f.css","precedence":"next"}]],"$L5"]]]] +6:I{"id":5925,"chunks":["358:static/chunks/358-dc819165169f937b.js","406:static/chunks/406-35481e1b86c5b377.js","832:static/chunks/832-06362e8382d18069.js","894:static/chunks/894-25d9916957b869f3.js","185:static/chunks/app/layout-ac85f503669d9498.js"],"name":"Toaster","async":false} +7:I{"id":78495,"chunks":["358:static/chunks/358-dc819165169f937b.js","406:static/chunks/406-35481e1b86c5b377.js","832:static/chunks/832-06362e8382d18069.js","894:static/chunks/894-25d9916957b869f3.js","185:static/chunks/app/layout-ac85f503669d9498.js"],"name":"Providers","async":false} +8:I{"id":78963,"chunks":["358:static/chunks/358-dc819165169f937b.js","406:static/chunks/406-35481e1b86c5b377.js","832:static/chunks/832-06362e8382d18069.js","894:static/chunks/894-25d9916957b869f3.js","185:static/chunks/app/layout-ac85f503669d9498.js"],"name":"Header","async":false} 9:I{"id":81443,"chunks":["272:static/chunks/webpack-425a00248a63a7de.js","971:static/chunks/fd9d1056-5dfc77aa37d8c76f.js","864:static/chunks/864-bf315a5307aba1d7.js"],"name":"","async":false} a:I{"id":18639,"chunks":["272:static/chunks/webpack-425a00248a63a7de.js","971:static/chunks/fd9d1056-5dfc77aa37d8c76f.js","864:static/chunks/864-bf315a5307aba1d7.js"],"name":"","async":false} c:I{"id":65146,"chunks":["272:static/chunks/webpack-425a00248a63a7de.js","971:static/chunks/fd9d1056-5dfc77aa37d8c76f.js","864:static/chunks/864-bf315a5307aba1d7.js"],"name":"","async":false} -d:I{"id":25454,"chunks":["358:static/chunks/358-dc819165169f937b.js","703:static/chunks/703-35aa8c1eaf8df6ef.js","894:static/chunks/894-25d9916957b869f3.js","931:static/chunks/app/page-20035815ff7846b5.js"],"name":"","async":false} +d:I{"id":25454,"chunks":["358:static/chunks/358-dc819165169f937b.js","703:static/chunks/703-35aa8c1eaf8df6ef.js","894:static/chunks/894-25d9916957b869f3.js","931:static/chunks/app/page-31b02197d46dcfe5.js"],"name":"","async":false} 4:[null,["$","html",null,{"lang":"en","suppressHydrationWarning":true,"children":[["$","head",null,{}],["$","body",null,{"className":"font-sans antialiased __variable_e66fe9 __variable_bd9c35","children":[["$","$L6",null,{}],["$","$L7",null,{"attribute":"class","defaultTheme":"system","enableSystem":true,"children":[["$","div",null,{"className":"flex flex-col min-h-screen","children":[["$","$L8",null,{}],["$","main",null,{"className":"flex flex-col flex-1 bg-muted/50","children":["$","$L9",null,{"parallelRouterKey":"children","segmentPath":["children"],"loading":"$undefined","loadingStyles":"$undefined","hasLoading":false,"error":"$undefined","errorStyles":"$undefined","template":["$","$La",null,{}],"templateStyles":"$undefined","notFound":[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":"404"}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],"notFoundStyles":[],"childProp":{"current":["$Lb",["$","$Lc",null,{"propsForComponent":{"params":{}},"Component":"$d"}],null],"segment":"__PAGE__"},"styles":[]}]}]]}],null]}]]}]]}],null] 5:[["$","meta","0",{"charSet":"utf-8"}],["$","title","1",{"children":"Tabby - Home"}],["$","meta","2",{"name":"description","content":"Tabby, an opensource, self-hosted AI coding assistant."}],["$","meta","3",{"name":"theme-color","media":"(prefers-color-scheme: light)","content":"white"}],["$","meta","4",{"name":"theme-color","media":"(prefers-color-scheme: dark)","content":"black"}],["$","meta","5",{"name":"viewport","content":"width=device-width, initial-scale=1"}],["$","meta","6",{"name":"next-size-adjust"}]] b:null diff --git a/crates/tabby/playground/playground.html b/crates/tabby/ui/playground.html similarity index 96% rename from crates/tabby/playground/playground.html rename to crates/tabby/ui/playground.html index 7564f7e..d618fc0 100644 --- a/crates/tabby/playground/playground.html +++ b/crates/tabby/ui/playground.html @@ -1 +1 @@ -Tabby - Playground

Welcome to Playground!

You can start a conversation here or try the following examples:

\ No newline at end of file +Tabby - Playground

Welcome to Playground!

You can start a conversation here or try the following examples:

\ No newline at end of file diff --git a/crates/tabby/playground/playground.txt b/crates/tabby/ui/playground.txt similarity index 92% rename from crates/tabby/playground/playground.txt rename to crates/tabby/ui/playground.txt index 2dc3595..6aae93c 100644 --- a/crates/tabby/playground/playground.txt +++ b/crates/tabby/ui/playground.txt @@ -1,13 +1,13 @@ 1:HL["/_next/static/media/86fdec36ddd9097e-s.p.woff2","font",{"crossOrigin":"","type":"font/woff2"}] 2:HL["/_next/static/media/c9a5bc6a7c948fb0-s.p.woff2","font",{"crossOrigin":"","type":"font/woff2"}] 3:HL["/_next/static/css/616b1d8d470f862f.css","style"] -0:["zeY5-E7aVjZwD9S_JXVsQ",[[["",{"children":["playground",{"children":["__PAGE__",{}]}]},"$undefined","$undefined",true],"$L4",[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/616b1d8d470f862f.css","precedence":"next"}]],"$L5"]]]] -6:I{"id":5925,"chunks":["358:static/chunks/358-dc819165169f937b.js","406:static/chunks/406-35481e1b86c5b377.js","832:static/chunks/832-06362e8382d18069.js","894:static/chunks/894-25d9916957b869f3.js","185:static/chunks/app/layout-6c30f50bddf243c7.js"],"name":"Toaster","async":false} -7:I{"id":78495,"chunks":["358:static/chunks/358-dc819165169f937b.js","406:static/chunks/406-35481e1b86c5b377.js","832:static/chunks/832-06362e8382d18069.js","894:static/chunks/894-25d9916957b869f3.js","185:static/chunks/app/layout-6c30f50bddf243c7.js"],"name":"Providers","async":false} -8:I{"id":78963,"chunks":["358:static/chunks/358-dc819165169f937b.js","406:static/chunks/406-35481e1b86c5b377.js","832:static/chunks/832-06362e8382d18069.js","894:static/chunks/894-25d9916957b869f3.js","185:static/chunks/app/layout-6c30f50bddf243c7.js"],"name":"Header","async":false} +0:["5Ardx8NLn9MFJ4mWUnSbO",[[["",{"children":["playground",{"children":["__PAGE__",{}]}]},"$undefined","$undefined",true],"$L4",[[["$","link","0",{"rel":"stylesheet","href":"/_next/static/css/616b1d8d470f862f.css","precedence":"next"}]],"$L5"]]]] +6:I{"id":5925,"chunks":["358:static/chunks/358-dc819165169f937b.js","406:static/chunks/406-35481e1b86c5b377.js","832:static/chunks/832-06362e8382d18069.js","894:static/chunks/894-25d9916957b869f3.js","185:static/chunks/app/layout-ac85f503669d9498.js"],"name":"Toaster","async":false} +7:I{"id":78495,"chunks":["358:static/chunks/358-dc819165169f937b.js","406:static/chunks/406-35481e1b86c5b377.js","832:static/chunks/832-06362e8382d18069.js","894:static/chunks/894-25d9916957b869f3.js","185:static/chunks/app/layout-ac85f503669d9498.js"],"name":"Providers","async":false} +8:I{"id":78963,"chunks":["358:static/chunks/358-dc819165169f937b.js","406:static/chunks/406-35481e1b86c5b377.js","832:static/chunks/832-06362e8382d18069.js","894:static/chunks/894-25d9916957b869f3.js","185:static/chunks/app/layout-ac85f503669d9498.js"],"name":"Header","async":false} 9:I{"id":81443,"chunks":["272:static/chunks/webpack-425a00248a63a7de.js","971:static/chunks/fd9d1056-5dfc77aa37d8c76f.js","864:static/chunks/864-bf315a5307aba1d7.js"],"name":"","async":false} a:I{"id":18639,"chunks":["272:static/chunks/webpack-425a00248a63a7de.js","971:static/chunks/fd9d1056-5dfc77aa37d8c76f.js","864:static/chunks/864-bf315a5307aba1d7.js"],"name":"","async":false} -c:I{"id":12202,"chunks":["358:static/chunks/358-dc819165169f937b.js","406:static/chunks/406-35481e1b86c5b377.js","978:static/chunks/978-6768c629d09f4ba9.js","894:static/chunks/894-25d9916957b869f3.js","383:static/chunks/app/playground/page-cf297629ec68c7f0.js"],"name":"Chat","async":false} +c:I{"id":12202,"chunks":["358:static/chunks/358-dc819165169f937b.js","406:static/chunks/406-35481e1b86c5b377.js","978:static/chunks/978-6768c629d09f4ba9.js","894:static/chunks/894-25d9916957b869f3.js","383:static/chunks/app/playground/page-5dcb481453d0a823.js"],"name":"Chat","async":false} 5:[["$","meta","0",{"charSet":"utf-8"}],["$","title","1",{"children":"Tabby - Playground"}],["$","meta","2",{"name":"description","content":"Tabby, an opensource, self-hosted AI coding assistant."}],["$","meta","3",{"name":"theme-color","media":"(prefers-color-scheme: light)","content":"white"}],["$","meta","4",{"name":"theme-color","media":"(prefers-color-scheme: dark)","content":"black"}],["$","meta","5",{"name":"viewport","content":"width=device-width, initial-scale=1"}],["$","meta","6",{"name":"next-size-adjust"}]] -4:[null,["$","html",null,{"lang":"en","suppressHydrationWarning":true,"children":[["$","head",null,{}],["$","body",null,{"className":"font-sans antialiased __variable_e66fe9 __variable_bd9c35","children":[["$","$L6",null,{}],["$","$L7",null,{"attribute":"class","defaultTheme":"system","enableSystem":true,"children":[["$","div",null,{"className":"flex flex-col min-h-screen","children":[["$","$L8",null,{}],["$","main",null,{"className":"flex flex-col flex-1 bg-muted/50","children":["$","$L9",null,{"parallelRouterKey":"children","segmentPath":["children"],"loading":"$undefined","loadingStyles":"$undefined","hasLoading":false,"error":"$undefined","errorStyles":"$undefined","template":["$","$La",null,{}],"templateStyles":"$undefined","notFound":[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":"404"}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],"notFoundStyles":[],"childProp":{"current":["$","$L9",null,{"parallelRouterKey":"children","segmentPath":["children","playground","children"],"loading":"$undefined","loadingStyles":"$undefined","hasLoading":false,"error":"$undefined","errorStyles":"$undefined","template":["$","$La",null,{}],"templateStyles":"$undefined","notFound":"$undefined","notFoundStyles":"$undefined","childProp":{"current":["$Lb",["$","$Lc",null,{"id":"QeIo9rC"}],null],"segment":"__PAGE__"},"styles":[]}],"segment":"playground"},"styles":[]}]}]]}],null]}]]}]]}],null] +4:[null,["$","html",null,{"lang":"en","suppressHydrationWarning":true,"children":[["$","head",null,{}],["$","body",null,{"className":"font-sans antialiased __variable_e66fe9 __variable_bd9c35","children":[["$","$L6",null,{}],["$","$L7",null,{"attribute":"class","defaultTheme":"system","enableSystem":true,"children":[["$","div",null,{"className":"flex flex-col min-h-screen","children":[["$","$L8",null,{}],["$","main",null,{"className":"flex flex-col flex-1 bg-muted/50","children":["$","$L9",null,{"parallelRouterKey":"children","segmentPath":["children"],"loading":"$undefined","loadingStyles":"$undefined","hasLoading":false,"error":"$undefined","errorStyles":"$undefined","template":["$","$La",null,{}],"templateStyles":"$undefined","notFound":[["$","title",null,{"children":"404: This page could not be found."}],["$","div",null,{"style":{"fontFamily":"system-ui,\"Segoe UI\",Roboto,Helvetica,Arial,sans-serif,\"Apple Color Emoji\",\"Segoe UI Emoji\"","height":"100vh","textAlign":"center","display":"flex","flexDirection":"column","alignItems":"center","justifyContent":"center"},"children":["$","div",null,{"children":[["$","style",null,{"dangerouslySetInnerHTML":{"__html":"body{color:#000;background:#fff;margin:0}.next-error-h1{border-right:1px solid rgba(0,0,0,.3)}@media (prefers-color-scheme:dark){body{color:#fff;background:#000}.next-error-h1{border-right:1px solid rgba(255,255,255,.3)}}"}}],["$","h1",null,{"className":"next-error-h1","style":{"display":"inline-block","margin":"0 20px 0 0","padding":"0 23px 0 0","fontSize":24,"fontWeight":500,"verticalAlign":"top","lineHeight":"49px"},"children":"404"}],["$","div",null,{"style":{"display":"inline-block"},"children":["$","h2",null,{"style":{"fontSize":14,"fontWeight":400,"lineHeight":"49px","margin":0},"children":"This page could not be found."}]}]]}]}]],"notFoundStyles":[],"childProp":{"current":["$","$L9",null,{"parallelRouterKey":"children","segmentPath":["children","playground","children"],"loading":"$undefined","loadingStyles":"$undefined","hasLoading":false,"error":"$undefined","errorStyles":"$undefined","template":["$","$La",null,{}],"templateStyles":"$undefined","notFound":"$undefined","notFoundStyles":"$undefined","childProp":{"current":["$Lb",["$","$Lc",null,{"id":"AGsp3Mj"}],null],"segment":"__PAGE__"},"styles":[]}],"segment":"playground"},"styles":[]}]}]]}],null]}]]}]]}],null] b:null