@ailog/cli 0.2.3 → 0.3.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +202 -0
- package/NOTICE +12 -0
- package/README.md +115 -18
- package/bin/cli.js +9 -0
- package/dist/client/assets/index-BBTm7Mxn.js +160 -0
- package/dist/client/assets/index-x-B7u97h.css +1 -0
- package/dist/client/index.html +19 -0
- package/dist/index.d.ts +122 -0
- package/dist/index.js +681 -0
- package/dist/viewer/server.js +413 -0
- package/package.json +65 -45
- package/dist/bin/cli.js +0 -1980
- package/dist/standalone/.next/BUILD_ID +0 -1
- package/dist/standalone/.next/app-path-routes-manifest.json +0 -10
- package/dist/standalone/.next/build-manifest.json +0 -21
- package/dist/standalone/.next/package.json +0 -1
- package/dist/standalone/.next/prerender-manifest.json +0 -118
- package/dist/standalone/.next/required-server-files.json +0 -333
- package/dist/standalone/.next/routes-manifest.json +0 -102
- package/dist/standalone/.next/server/app/_global-error/page/app-paths-manifest.json +0 -3
- package/dist/standalone/.next/server/app/_global-error/page/build-manifest.json +0 -18
- package/dist/standalone/.next/server/app/_global-error/page/next-font-manifest.json +0 -6
- package/dist/standalone/.next/server/app/_global-error/page/react-loadable-manifest.json +0 -1
- package/dist/standalone/.next/server/app/_global-error/page/server-reference-manifest.json +0 -4
- package/dist/standalone/.next/server/app/_global-error/page.js +0 -11
- package/dist/standalone/.next/server/app/_global-error/page.js.map +0 -5
- package/dist/standalone/.next/server/app/_global-error/page.js.nft.json +0 -1
- package/dist/standalone/.next/server/app/_global-error/page_client-reference-manifest.js +0 -2
- package/dist/standalone/.next/server/app/_global-error.html +0 -2
- package/dist/standalone/.next/server/app/_global-error.meta +0 -15
- package/dist/standalone/.next/server/app/_global-error.rsc +0 -13
- package/dist/standalone/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +0 -5
- package/dist/standalone/.next/server/app/_global-error.segments/_full.segment.rsc +0 -13
- package/dist/standalone/.next/server/app/_global-error.segments/_head.segment.rsc +0 -8
- package/dist/standalone/.next/server/app/_global-error.segments/_index.segment.rsc +0 -4
- package/dist/standalone/.next/server/app/_global-error.segments/_tree.segment.rsc +0 -1
- package/dist/standalone/.next/server/app/_not-found/page/app-paths-manifest.json +0 -3
- package/dist/standalone/.next/server/app/_not-found/page/build-manifest.json +0 -18
- package/dist/standalone/.next/server/app/_not-found/page/next-font-manifest.json +0 -12
- package/dist/standalone/.next/server/app/_not-found/page/react-loadable-manifest.json +0 -1
- package/dist/standalone/.next/server/app/_not-found/page/server-reference-manifest.json +0 -4
- package/dist/standalone/.next/server/app/_not-found/page.js +0 -14
- package/dist/standalone/.next/server/app/_not-found/page.js.map +0 -5
- package/dist/standalone/.next/server/app/_not-found/page.js.nft.json +0 -1
- package/dist/standalone/.next/server/app/_not-found/page_client-reference-manifest.js +0 -2
- package/dist/standalone/.next/server/app/_not-found.html +0 -1
- package/dist/standalone/.next/server/app/_not-found.meta +0 -16
- package/dist/standalone/.next/server/app/_not-found.rsc +0 -19
- package/dist/standalone/.next/server/app/_not-found.segments/_full.segment.rsc +0 -19
- package/dist/standalone/.next/server/app/_not-found.segments/_head.segment.rsc +0 -8
- package/dist/standalone/.next/server/app/_not-found.segments/_index.segment.rsc +0 -10
- package/dist/standalone/.next/server/app/_not-found.segments/_not-found/__PAGE__.segment.rsc +0 -5
- package/dist/standalone/.next/server/app/_not-found.segments/_not-found.segment.rsc +0 -4
- package/dist/standalone/.next/server/app/_not-found.segments/_tree.segment.rsc +0 -2
- package/dist/standalone/.next/server/app/api/[[...route]]/route/app-paths-manifest.json +0 -3
- package/dist/standalone/.next/server/app/api/[[...route]]/route/build-manifest.json +0 -11
- package/dist/standalone/.next/server/app/api/[[...route]]/route/server-reference-manifest.json +0 -4
- package/dist/standalone/.next/server/app/api/[[...route]]/route.js +0 -7
- package/dist/standalone/.next/server/app/api/[[...route]]/route.js.map +0 -5
- package/dist/standalone/.next/server/app/api/[[...route]]/route.js.nft.json +0 -1
- package/dist/standalone/.next/server/app/api/[[...route]]/route_client-reference-manifest.js +0 -2
- package/dist/standalone/.next/server/app/apps/[appId]/page/app-paths-manifest.json +0 -3
- package/dist/standalone/.next/server/app/apps/[appId]/page/build-manifest.json +0 -18
- package/dist/standalone/.next/server/app/apps/[appId]/page/next-font-manifest.json +0 -12
- package/dist/standalone/.next/server/app/apps/[appId]/page/react-loadable-manifest.json +0 -1
- package/dist/standalone/.next/server/app/apps/[appId]/page/server-reference-manifest.json +0 -4
- package/dist/standalone/.next/server/app/apps/[appId]/page.js +0 -17
- package/dist/standalone/.next/server/app/apps/[appId]/page.js.map +0 -5
- package/dist/standalone/.next/server/app/apps/[appId]/page.js.nft.json +0 -1
- package/dist/standalone/.next/server/app/apps/[appId]/page_client-reference-manifest.js +0 -2
- package/dist/standalone/.next/server/app/apps/[appId]/settings/page/app-paths-manifest.json +0 -3
- package/dist/standalone/.next/server/app/apps/[appId]/settings/page/build-manifest.json +0 -18
- package/dist/standalone/.next/server/app/apps/[appId]/settings/page/next-font-manifest.json +0 -12
- package/dist/standalone/.next/server/app/apps/[appId]/settings/page/react-loadable-manifest.json +0 -1
- package/dist/standalone/.next/server/app/apps/[appId]/settings/page/server-reference-manifest.json +0 -4
- package/dist/standalone/.next/server/app/apps/[appId]/settings/page.js +0 -17
- package/dist/standalone/.next/server/app/apps/[appId]/settings/page.js.map +0 -5
- package/dist/standalone/.next/server/app/apps/[appId]/settings/page.js.nft.json +0 -1
- package/dist/standalone/.next/server/app/apps/[appId]/settings/page_client-reference-manifest.js +0 -2
- package/dist/standalone/.next/server/app/apps/[appId]/threads/[threadId]/page/app-paths-manifest.json +0 -3
- package/dist/standalone/.next/server/app/apps/[appId]/threads/[threadId]/page/build-manifest.json +0 -18
- package/dist/standalone/.next/server/app/apps/[appId]/threads/[threadId]/page/next-font-manifest.json +0 -12
- package/dist/standalone/.next/server/app/apps/[appId]/threads/[threadId]/page/react-loadable-manifest.json +0 -1
- package/dist/standalone/.next/server/app/apps/[appId]/threads/[threadId]/page/server-reference-manifest.json +0 -4
- package/dist/standalone/.next/server/app/apps/[appId]/threads/[threadId]/page.js +0 -17
- package/dist/standalone/.next/server/app/apps/[appId]/threads/[threadId]/page.js.map +0 -5
- package/dist/standalone/.next/server/app/apps/[appId]/threads/[threadId]/page.js.nft.json +0 -1
- package/dist/standalone/.next/server/app/apps/[appId]/threads/[threadId]/page_client-reference-manifest.js +0 -2
- package/dist/standalone/.next/server/app/favicon.ico/route/app-paths-manifest.json +0 -3
- package/dist/standalone/.next/server/app/favicon.ico/route/build-manifest.json +0 -11
- package/dist/standalone/.next/server/app/favicon.ico/route.js +0 -7
- package/dist/standalone/.next/server/app/favicon.ico/route.js.map +0 -5
- package/dist/standalone/.next/server/app/favicon.ico/route.js.nft.json +0 -1
- package/dist/standalone/.next/server/app/favicon.ico.body +0 -0
- package/dist/standalone/.next/server/app/favicon.ico.meta +0 -1
- package/dist/standalone/.next/server/app/index.html +0 -1
- package/dist/standalone/.next/server/app/index.meta +0 -14
- package/dist/standalone/.next/server/app/index.rsc +0 -26
- package/dist/standalone/.next/server/app/index.segments/__PAGE__.segment.rsc +0 -9
- package/dist/standalone/.next/server/app/index.segments/_full.segment.rsc +0 -26
- package/dist/standalone/.next/server/app/index.segments/_head.segment.rsc +0 -8
- package/dist/standalone/.next/server/app/index.segments/_index.segment.rsc +0 -10
- package/dist/standalone/.next/server/app/index.segments/_tree.segment.rsc +0 -5
- package/dist/standalone/.next/server/app/page/app-paths-manifest.json +0 -3
- package/dist/standalone/.next/server/app/page/build-manifest.json +0 -18
- package/dist/standalone/.next/server/app/page/next-font-manifest.json +0 -12
- package/dist/standalone/.next/server/app/page/react-loadable-manifest.json +0 -1
- package/dist/standalone/.next/server/app/page/server-reference-manifest.json +0 -4
- package/dist/standalone/.next/server/app/page.js +0 -16
- package/dist/standalone/.next/server/app/page.js.map +0 -5
- package/dist/standalone/.next/server/app/page.js.nft.json +0 -1
- package/dist/standalone/.next/server/app/page_client-reference-manifest.js +0 -2
- package/dist/standalone/.next/server/app-paths-manifest.json +0 -10
- package/dist/standalone/.next/server/chunks/32a5c_next_0375a1f1._.js +0 -17
- package/dist/standalone/.next/server/chunks/[root-of-the-server]__5f8f2b74._.js +0 -3
- package/dist/standalone/.next/server/chunks/[root-of-the-server]__7970807c._.js +0 -7
- package/dist/standalone/.next/server/chunks/[root-of-the-server]__a0f47697._.js +0 -28
- package/dist/standalone/.next/server/chunks/[root-of-the-server]__b89b5a39._.js +0 -3
- package/dist/standalone/.next/server/chunks/[turbopack]_runtime.js +0 -770
- package/dist/standalone/.next/server/chunks/apps_web__next-internal_server_app_api_[[___route]]_route_actions_ad756856.js +0 -3
- package/dist/standalone/.next/server/chunks/apps_web__next-internal_server_app_favicon_ico_route_actions_63c3b0d9.js +0 -3
- package/dist/standalone/.next/server/chunks/ssr/32a5c_next_dist_c1a879d9._.js +0 -4
- package/dist/standalone/.next/server/chunks/ssr/32a5c_next_dist_c1fdfc17._.js +0 -3
- package/dist/standalone/.next/server/chunks/ssr/32a5c_next_dist_client_components_9085e245._.js +0 -3
- package/dist/standalone/.next/server/chunks/ssr/32a5c_next_dist_client_components_builtin_forbidden_3bc2a141.js +0 -3
- package/dist/standalone/.next/server/chunks/ssr/32a5c_next_dist_client_components_builtin_global-error_4bb26d7f.js +0 -3
- package/dist/standalone/.next/server/chunks/ssr/32a5c_next_dist_client_components_builtin_unauthorized_5c95c9e3.js +0 -3
- package/dist/standalone/.next/server/chunks/ssr/32a5c_next_dist_esm_af731943._.js +0 -6
- package/dist/standalone/.next/server/chunks/ssr/32a5c_next_dist_esm_build_templates_app-page_5d311e9f.js +0 -4
- package/dist/standalone/.next/server/chunks/ssr/37f04__next-internal_server_app_apps_[appId]_threads_[threadId]_page_actions_0a164142.js +0 -3
- package/dist/standalone/.next/server/chunks/ssr/8eb43_sonner_dist_index_mjs_a249e53a._.js +0 -3
- package/dist/standalone/.next/server/chunks/ssr/[root-of-the-server]__15021a09._.js +0 -3
- package/dist/standalone/.next/server/chunks/ssr/[root-of-the-server]__1764fab0._.js +0 -3
- package/dist/standalone/.next/server/chunks/ssr/[root-of-the-server]__1d8f92d3._.js +0 -3
- package/dist/standalone/.next/server/chunks/ssr/[root-of-the-server]__277f3037._.js +0 -3
- package/dist/standalone/.next/server/chunks/ssr/[root-of-the-server]__379bd934._.js +0 -3
- package/dist/standalone/.next/server/chunks/ssr/[root-of-the-server]__42df4b63._.js +0 -3
- package/dist/standalone/.next/server/chunks/ssr/[root-of-the-server]__5064350d._.js +0 -3
- package/dist/standalone/.next/server/chunks/ssr/[root-of-the-server]__659dbfe7._.js +0 -4
- package/dist/standalone/.next/server/chunks/ssr/[root-of-the-server]__80ea63f6._.js +0 -4
- package/dist/standalone/.next/server/chunks/ssr/[root-of-the-server]__9f3ff72e._.js +0 -3
- package/dist/standalone/.next/server/chunks/ssr/[root-of-the-server]__b6cee269._.js +0 -3
- package/dist/standalone/.next/server/chunks/ssr/[root-of-the-server]__e55c02ca._.js +0 -3
- package/dist/standalone/.next/server/chunks/ssr/[root-of-the-server]__f7807403._.js +0 -3
- package/dist/standalone/.next/server/chunks/ssr/[turbopack]_runtime.js +0 -770
- package/dist/standalone/.next/server/chunks/ssr/_1db4c18c._.js +0 -4
- package/dist/standalone/.next/server/chunks/ssr/_203f0b29._.js +0 -7
- package/dist/standalone/.next/server/chunks/ssr/_289820d0._.js +0 -3
- package/dist/standalone/.next/server/chunks/ssr/_442031f8._.js +0 -7
- package/dist/standalone/.next/server/chunks/ssr/_4b4df737._.js +0 -4
- package/dist/standalone/.next/server/chunks/ssr/_5066b883._.js +0 -4
- package/dist/standalone/.next/server/chunks/ssr/_70dfbe56._.js +0 -3
- package/dist/standalone/.next/server/chunks/ssr/_8c0bfb07._.js +0 -3
- package/dist/standalone/.next/server/chunks/ssr/_b00f40b3._.js +0 -3
- package/dist/standalone/.next/server/chunks/ssr/_d81226f8._.js +0 -4
- package/dist/standalone/.next/server/chunks/ssr/_e5c457a7._.js +0 -3
- package/dist/standalone/.next/server/chunks/ssr/_fce9eb14._.js +0 -6
- package/dist/standalone/.next/server/chunks/ssr/apps_web__next-internal_server_app__global-error_page_actions_e7650f86.js +0 -3
- package/dist/standalone/.next/server/chunks/ssr/apps_web__next-internal_server_app__not-found_page_actions_3df07a96.js +0 -3
- package/dist/standalone/.next/server/chunks/ssr/apps_web__next-internal_server_app_apps_[appId]_page_actions_3e495976.js +0 -3
- package/dist/standalone/.next/server/chunks/ssr/apps_web__next-internal_server_app_apps_[appId]_settings_page_actions_e98061b7.js +0 -3
- package/dist/standalone/.next/server/chunks/ssr/apps_web__next-internal_server_app_page_actions_a0623280.js +0 -3
- package/dist/standalone/.next/server/chunks/ssr/apps_web_app_apps_[appId]_layout_tsx_4c06ec7f._.js +0 -3
- package/dist/standalone/.next/server/chunks/ssr/apps_web_app_apps_[appId]_page_tsx_15e4fa55._.js +0 -3
- package/dist/standalone/.next/server/chunks/ssr/apps_web_app_apps_[appId]_settings_page_tsx_c072e295._.js +0 -3
- package/dist/standalone/.next/server/chunks/ssr/apps_web_app_apps_[appId]_threads_[threadId]_page_tsx_7dd7d764._.js +0 -39
- package/dist/standalone/.next/server/chunks/ssr/apps_web_app_e92ffe16._.js +0 -3
- package/dist/standalone/.next/server/chunks/ssr/apps_web_app_page_tsx_66bf978b._.js +0 -3
- package/dist/standalone/.next/server/chunks/ssr/apps_web_components_ui_9822aec4._.js +0 -3
- package/dist/standalone/.next/server/chunks/ssr/apps_web_components_ui_alert-dialog_tsx_9188904e._.js +0 -9
- package/dist/standalone/.next/server/chunks/ssr/apps_web_components_ui_c8132c43._.js +0 -9
- package/dist/standalone/.next/server/chunks/ssr/apps_web_components_ui_card_tsx_2c0359d4._.js +0 -3
- package/dist/standalone/.next/server/chunks/ssr/apps_web_components_ui_cbe5b2b9._.js +0 -3
- package/dist/standalone/.next/server/chunks/ssr/apps_web_components_ui_cc5b288d._.js +0 -3
- package/dist/standalone/.next/server/chunks/ssr/node_modules__bun_2e4b1ed0._.js +0 -3
- package/dist/standalone/.next/server/chunks/ssr/node_modules__bun_4bd60410._.js +0 -6
- package/dist/standalone/.next/server/chunks/ssr/node_modules__bun_930fb349._.js +0 -3
- package/dist/standalone/.next/server/chunks/ssr/node_modules__bun_d2520564._.js +0 -3
- package/dist/standalone/.next/server/functions-config-manifest.json +0 -4
- package/dist/standalone/.next/server/middleware-build-manifest.js +0 -22
- package/dist/standalone/.next/server/middleware-manifest.json +0 -6
- package/dist/standalone/.next/server/next-font-manifest.js +0 -1
- package/dist/standalone/.next/server/next-font-manifest.json +0 -32
- package/dist/standalone/.next/server/pages/404.html +0 -1
- package/dist/standalone/.next/server/pages/500.html +0 -2
- package/dist/standalone/.next/server/pages-manifest.json +0 -4
- package/dist/standalone/.next/server/server-reference-manifest.js +0 -1
- package/dist/standalone/.next/server/server-reference-manifest.json +0 -5
- package/dist/standalone/.next/static/chunks/001d990e82d317e7.js +0 -1
- package/dist/standalone/.next/static/chunks/26aa014f0977bc3a.js +0 -4
- package/dist/standalone/.next/static/chunks/3468e573c929d9d3.js +0 -1
- package/dist/standalone/.next/static/chunks/3815bbfffdbb534d.js +0 -1
- package/dist/standalone/.next/static/chunks/3c1f17874396f056.js +0 -1
- package/dist/standalone/.next/static/chunks/5521918d58602ba4.css +0 -4
- package/dist/standalone/.next/static/chunks/61ce30fe62669a20.js +0 -1
- package/dist/standalone/.next/static/chunks/6a4ccd90d00f8188.js +0 -2
- package/dist/standalone/.next/static/chunks/6de1dc14b2653311.js +0 -2
- package/dist/standalone/.next/static/chunks/6ee1158d12a0c765.js +0 -1
- package/dist/standalone/.next/static/chunks/8bd29684c211a1e1.js +0 -37
- package/dist/standalone/.next/static/chunks/8eae4355671b488f.js +0 -1
- package/dist/standalone/.next/static/chunks/8ef339e3fd7a82de.js +0 -1
- package/dist/standalone/.next/static/chunks/a6dad97d9634a72d.js +0 -1
- package/dist/standalone/.next/static/chunks/ab703521ea4f2141.js +0 -1
- package/dist/standalone/.next/static/chunks/b337946fdc3c17b3.js +0 -1
- package/dist/standalone/.next/static/chunks/b46c6c394477214a.js +0 -1
- package/dist/standalone/.next/static/chunks/b8bc41a0b408222e.js +0 -5
- package/dist/standalone/.next/static/chunks/bbf59b867827b224.js +0 -7
- package/dist/standalone/.next/static/chunks/c416de6f3efbbe15.js +0 -7
- package/dist/standalone/.next/static/chunks/d70eda393c3966c3.js +0 -1
- package/dist/standalone/.next/static/chunks/f8e57df1af00077e.js +0 -5
- package/dist/standalone/.next/static/chunks/turbopack-e09224df42d3769a.js +0 -3
- package/dist/standalone/.next/static/media/13bf9871fe164e7f-s.f2220059.woff2 +0 -0
- package/dist/standalone/.next/static/media/3fe682a82f50d426-s.23358719.woff2 +0 -0
- package/dist/standalone/.next/static/media/4fa387ec64143e14-s.c1fdd6c2.woff2 +0 -0
- package/dist/standalone/.next/static/media/70bc3e132a0a741e-s.p.15008bfb.woff2 +0 -0
- package/dist/standalone/.next/static/media/7178b3e590c64307-s.b97b3418.woff2 +0 -0
- package/dist/standalone/.next/static/media/71b036adf157cdcf-s.bd5f4d11.woff2 +0 -0
- package/dist/standalone/.next/static/media/797e433ab948586e-s.p.dbea232f.woff2 +0 -0
- package/dist/standalone/.next/static/media/89b21bb081cb7469-s.51c18f09.woff2 +0 -0
- package/dist/standalone/.next/static/media/8a480f0b521d4e75-s.8e0177b5.woff2 +0 -0
- package/dist/standalone/.next/static/media/bbc41e54d2fcbd21-s.799d8ef8.woff2 +0 -0
- package/dist/standalone/.next/static/media/caa3a2e1cccd8315-s.p.853070df.woff2 +0 -0
- package/dist/standalone/.next/static/media/cc545e633e20c56d-s.f6f1950f.woff2 +0 -0
- package/dist/standalone/.next/static/media/favicon.0b3bf435.ico +0 -0
- package/dist/standalone/.next/static/p6HYmiCvyNSugdZfDkX0R/_buildManifest.js +0 -11
- package/dist/standalone/.next/static/p6HYmiCvyNSugdZfDkX0R/_clientMiddlewareManifest.json +0 -1
- package/dist/standalone/.next/static/p6HYmiCvyNSugdZfDkX0R/_ssgManifest.js +0 -1
- package/dist/standalone/app/apps/[appId]/layout.tsx +0 -3
- package/dist/standalone/app/apps/[appId]/page.tsx +0 -238
- package/dist/standalone/app/apps/[appId]/settings/page.tsx +0 -224
- package/dist/standalone/app/apps/[appId]/threads/[threadId]/page.tsx +0 -283
- package/dist/standalone/components/apps-table.tsx +0 -274
- package/dist/standalone/components.json +0 -24
- package/dist/standalone/dist/standalone/app/apps/[appId]/layout.tsx +0 -3
- package/dist/standalone/dist/standalone/app/apps/[appId]/page.tsx +0 -238
- package/dist/standalone/dist/standalone/app/apps/[appId]/settings/page.tsx +0 -224
- package/dist/standalone/dist/standalone/app/apps/[appId]/threads/[threadId]/page.tsx +0 -283
- package/dist/standalone/dist/standalone/components/apps-table.tsx +0 -274
- package/dist/standalone/dist/standalone/components.json +0 -24
- package/dist/standalone/dist/standalone/dist/standalone/app/apps/[appId]/layout.tsx +0 -3
- package/dist/standalone/dist/standalone/dist/standalone/app/apps/[appId]/page.tsx +0 -238
- package/dist/standalone/dist/standalone/dist/standalone/app/apps/[appId]/settings/page.tsx +0 -224
- package/dist/standalone/dist/standalone/dist/standalone/app/apps/[appId]/threads/[threadId]/page.tsx +0 -283
- package/dist/standalone/dist/standalone/dist/standalone/components/apps-table.tsx +0 -274
- package/dist/standalone/dist/standalone/dist/standalone/components.json +0 -24
- package/dist/standalone/dist/standalone/dist/standalone/dist/standalone/app/apps/[appId]/layout.tsx +0 -3
- package/dist/standalone/dist/standalone/dist/standalone/dist/standalone/app/apps/[appId]/page.tsx +0 -238
- package/dist/standalone/dist/standalone/dist/standalone/dist/standalone/app/apps/[appId]/settings/page.tsx +0 -224
- package/dist/standalone/dist/standalone/dist/standalone/dist/standalone/app/apps/[appId]/threads/[threadId]/page.tsx +0 -283
- package/dist/standalone/dist/standalone/dist/standalone/dist/standalone/components/apps-table.tsx +0 -274
- package/dist/standalone/dist/standalone/dist/standalone/dist/standalone/components.json +0 -24
- package/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/app/apps/[appId]/layout.tsx +0 -3
- package/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/app/apps/[appId]/page.tsx +0 -238
- package/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/app/apps/[appId]/settings/page.tsx +0 -224
- package/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/app/apps/[appId]/threads/[threadId]/page.tsx +0 -283
- package/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/components/apps-table.tsx +0 -274
- package/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/components.json +0 -24
- package/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/app/apps/[appId]/layout.tsx +0 -3
- package/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/app/apps/[appId]/page.tsx +0 -238
- package/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/app/apps/[appId]/settings/page.tsx +0 -224
- package/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/app/apps/[appId]/threads/[threadId]/page.tsx +0 -283
- package/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/components/apps-table.tsx +0 -274
- package/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/components.json +0 -24
- package/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/app/apps/[appId]/layout.tsx +0 -3
- package/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/app/apps/[appId]/page.tsx +0 -238
- package/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/app/apps/[appId]/settings/page.tsx +0 -224
- package/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/app/apps/[appId]/threads/[threadId]/page.tsx +0 -283
- package/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/components/apps-table.tsx +0 -274
- package/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/components.json +0 -24
- package/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/app/apps/[appId]/layout.tsx +0 -3
- package/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/app/apps/[appId]/page.tsx +0 -238
- package/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/app/apps/[appId]/settings/page.tsx +0 -224
- package/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/app/apps/[appId]/threads/[threadId]/page.tsx +0 -283
- package/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/components/apps-table.tsx +0 -274
- package/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/components.json +0 -24
- package/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/app/apps/[appId]/layout.tsx +0 -3
- package/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/app/apps/[appId]/page.tsx +0 -238
- package/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/app/apps/[appId]/settings/page.tsx +0 -224
- package/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/app/apps/[appId]/threads/[threadId]/page.tsx +0 -283
- package/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/components/apps-table.tsx +0 -274
- package/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/components.json +0 -24
- package/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/app/apps/[appId]/layout.tsx +0 -3
- package/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/app/apps/[appId]/page.tsx +0 -238
- package/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/app/apps/[appId]/settings/page.tsx +0 -224
- package/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/app/apps/[appId]/threads/[threadId]/page.tsx +0 -283
- package/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/components/apps-table.tsx +0 -274
- package/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/components.json +0 -24
- package/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/app/apps/[appId]/layout.tsx +0 -3
- package/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/app/apps/[appId]/page.tsx +0 -238
- package/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/app/apps/[appId]/settings/page.tsx +0 -224
- package/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/app/apps/[appId]/threads/[threadId]/page.tsx +0 -283
- package/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/components/apps-table.tsx +0 -274
- package/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/components.json +0 -24
- package/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/package.json +0 -66
- package/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/tsconfig.json +0 -34
- package/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/package.json +0 -65
- package/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/tsconfig.json +0 -34
- package/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/package.json +0 -65
- package/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/tsconfig.json +0 -34
- package/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/package.json +0 -65
- package/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/tsconfig.json +0 -34
- package/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/package.json +0 -65
- package/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/tsconfig.json +0 -34
- package/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/package.json +0 -66
- package/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/tsconfig.json +0 -34
- package/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/package.json +0 -66
- package/dist/standalone/dist/standalone/dist/standalone/dist/standalone/dist/standalone/tsconfig.json +0 -34
- package/dist/standalone/dist/standalone/dist/standalone/dist/standalone/package.json +0 -66
- package/dist/standalone/dist/standalone/dist/standalone/dist/standalone/tsconfig.json +0 -34
- package/dist/standalone/dist/standalone/dist/standalone/package.json +0 -66
- package/dist/standalone/dist/standalone/dist/standalone/tsconfig.json +0 -34
- package/dist/standalone/dist/standalone/package.json +0 -66
- package/dist/standalone/dist/standalone/tsconfig.json +0 -34
- package/dist/standalone/package.json +0 -66
- package/dist/standalone/public/file.svg +0 -1
- package/dist/standalone/public/globe.svg +0 -1
- package/dist/standalone/public/next.svg +0 -1
- package/dist/standalone/public/vercel.svg +0 -1
- package/dist/standalone/public/window.svg +0 -1
- package/dist/standalone/server.js +0 -44
- package/dist/standalone/tsconfig.json +0 -34
|
@@ -1,5 +0,0 @@
|
|
|
1
|
-
(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,80214,e=>{"use strict";var t=e.i(38652),n=0;function r(){t.useEffect(()=>{let e=document.querySelectorAll("[data-radix-focus-guard]");return document.body.insertAdjacentElement("afterbegin",e[0]??o()),document.body.insertAdjacentElement("beforeend",e[1]??o()),n++,()=>{1===n&&document.querySelectorAll("[data-radix-focus-guard]").forEach(e=>e.remove()),n--}},[])}function o(){let e=document.createElement("span");return e.setAttribute("data-radix-focus-guard",""),e.tabIndex=0,e.style.outline="none",e.style.opacity="0",e.style.position="fixed",e.style.pointerEvents="none",e}e.s(["useFocusGuards",()=>r])},80506,e=>{"use strict";let t;var n=e.i(38652),r=e.i(52410),o=e.i(27045),a=e.i(49119),i=e.i(21628),c="focusScope.autoFocusOnMount",l="focusScope.autoFocusOnUnmount",u={bubbles:!1,cancelable:!0},s=n.forwardRef((e,t)=>{let{loop:s=!1,trapped:v=!1,onMountAutoFocus:g,onUnmountAutoFocus:h,...y}=e,[b,E]=n.useState(null),w=(0,a.useCallbackRef)(g),x=(0,a.useCallbackRef)(h),C=n.useRef(null),R=(0,r.useComposedRefs)(t,e=>E(e)),D=n.useRef({paused:!1,pause(){this.paused=!0},resume(){this.paused=!1}}).current;n.useEffect(()=>{if(v){let e=function(e){if(D.paused||!b)return;let t=e.target;b.contains(t)?C.current=t:p(C.current,{select:!0})},t=function(e){if(D.paused||!b)return;let t=e.relatedTarget;null!==t&&(b.contains(t)||p(C.current,{select:!0}))};document.addEventListener("focusin",e),document.addEventListener("focusout",t);let n=new MutationObserver(function(e){if(document.activeElement===document.body)for(let t of e)t.removedNodes.length>0&&p(b)});return b&&n.observe(b,{childList:!0,subtree:!0}),()=>{document.removeEventListener("focusin",e),document.removeEventListener("focusout",t),n.disconnect()}}},[v,b,D.paused]),n.useEffect(()=>{if(b){m.add(D);let e=document.activeElement;if(!b.contains(e)){let t=new CustomEvent(c,u);b.addEventListener(c,w),b.dispatchEvent(t),t.defaultPrevented||(function(e,{select:t=!1}={}){let n=document.activeElement;for(let r of e)if(p(r,{select:t}),document.activeElement!==n)return}(d(b).filter(e=>"A"!==e.tagName),{select:!0}),document.activeElement===e&&p(b))}return()=>{b.removeEventListener(c,w),setTimeout(()=>{let t=new CustomEvent(l,u);b.addEventListener(l,x),b.dispatchEvent(t),t.defaultPrevented||p(e??document.body,{select:!0}),b.removeEventListener(l,x),m.remove(D)},0)}}},[b,w,x,D]);let S=n.useCallback(e=>{if(!s&&!v||D.paused)return;let t="Tab"===e.key&&!e.altKey&&!e.ctrlKey&&!e.metaKey,n=document.activeElement;if(t&&n){var r;let t,o=e.currentTarget,[a,i]=[f(t=d(r=o),r),f(t.reverse(),r)];a&&i?e.shiftKey||n!==i?e.shiftKey&&n===a&&(e.preventDefault(),s&&p(i,{select:!0})):(e.preventDefault(),s&&p(a,{select:!0})):n===o&&e.preventDefault()}},[s,v,D.paused]);return(0,i.jsx)(o.Primitive.div,{tabIndex:-1,...y,ref:R,onKeyDown:S})});function d(e){let t=[],n=document.createTreeWalker(e,NodeFilter.SHOW_ELEMENT,{acceptNode:e=>{let t="INPUT"===e.tagName&&"hidden"===e.type;return e.disabled||e.hidden||t?NodeFilter.FILTER_SKIP:e.tabIndex>=0?NodeFilter.FILTER_ACCEPT:NodeFilter.FILTER_SKIP}});for(;n.nextNode();)t.push(n.currentNode);return t}function f(e,t){for(let n of e)if(!function(e,{upTo:t}){if("hidden"===getComputedStyle(e).visibility)return!0;for(;e&&(void 0===t||e!==t);){if("none"===getComputedStyle(e).display)return!0;e=e.parentElement}return!1}(n,{upTo:t}))return n}function p(e,{select:t=!1}={}){if(e&&e.focus){var n;let r=document.activeElement;e.focus({preventScroll:!0}),e!==r&&(n=e)instanceof HTMLInputElement&&"select"in n&&t&&e.select()}}s.displayName="FocusScope";var m=(t=[],{add(e){let n=t[0];e!==n&&n?.pause(),(t=v(t,e)).unshift(e)},remove(e){t=v(t,e),t[0]?.resume()}});function v(e,t){let n=[...e],r=n.indexOf(t);return -1!==r&&n.splice(r,1),n}e.s(["FocusScope",()=>s])},39045,e=>{"use strict";var t=new WeakMap,n=new WeakMap,r={},o=0,a=function(e){return e&&(e.host||a(e.parentNode))},i=function(e,i,c,l){var u=(Array.isArray(e)?e:[e]).map(function(e){if(i.contains(e))return e;var t=a(e);return t&&i.contains(t)?t:(console.error("aria-hidden",e,"in not contained inside",i,". Doing nothing"),null)}).filter(function(e){return!!e});r[c]||(r[c]=new WeakMap);var s=r[c],d=[],f=new Set,p=new Set(u),m=function(e){!e||f.has(e)||(f.add(e),m(e.parentNode))};u.forEach(m);var v=function(e){!e||p.has(e)||Array.prototype.forEach.call(e.children,function(e){if(f.has(e))v(e);else try{var r=e.getAttribute(l),o=null!==r&&"false"!==r,a=(t.get(e)||0)+1,i=(s.get(e)||0)+1;t.set(e,a),s.set(e,i),d.push(e),1===a&&o&&n.set(e,!0),1===i&&e.setAttribute(c,"true"),o||e.setAttribute(l,"true")}catch(t){console.error("aria-hidden: cannot operate on ",e,t)}})};return v(i),f.clear(),o++,function(){d.forEach(function(e){var r=t.get(e)-1,o=s.get(e)-1;t.set(e,r),s.set(e,o),r||(n.has(e)||e.removeAttribute(l),n.delete(e)),o||e.removeAttribute(c)}),--o||(t=new WeakMap,t=new WeakMap,n=new WeakMap,r={})}},c=function(e,t,n){void 0===n&&(n="data-aria-hidden");var r=Array.from(Array.isArray(e)?e:[e]),o=t||("undefined"==typeof document?null:(Array.isArray(e)?e[0]:e).ownerDocument.body);return o?(r.push.apply(r,Array.from(o.querySelectorAll("[aria-live], script"))),i(r,o,n,"aria-hidden")):function(){return null}};e.s(["hideOthers",()=>c])},31778,e=>{"use strict";var t,n,r,o,a,i,c,l=function(){return(l=Object.assign||function(e){for(var t,n=1,r=arguments.length;n<r;n++)for(var o in t=arguments[n])Object.prototype.hasOwnProperty.call(t,o)&&(e[o]=t[o]);return e}).apply(this,arguments)};function u(e,t){var n={};for(var r in e)Object.prototype.hasOwnProperty.call(e,r)&&0>t.indexOf(r)&&(n[r]=e[r]);if(null!=e&&"function"==typeof Object.getOwnPropertySymbols)for(var o=0,r=Object.getOwnPropertySymbols(e);o<r.length;o++)0>t.indexOf(r[o])&&Object.prototype.propertyIsEnumerable.call(e,r[o])&&(n[r[o]]=e[r[o]]);return n}var s=("function"==typeof SuppressedError&&SuppressedError,e.i(38652)),d="right-scroll-bar-position",f="width-before-scroll-bar";function p(e,t){return"function"==typeof e?e(t):e&&(e.current=t),e}var m="undefined"!=typeof window?s.useLayoutEffect:s.useEffect,v=new WeakMap,g=(void 0===t&&(t={}),(void 0===n&&(n=function(e){return e}),r=[],o=!1,a={read:function(){if(o)throw Error("Sidecar: could not `read` from an `assigned` medium. `read` could be used only with `useMedium`.");return r.length?r[r.length-1]:null},useMedium:function(e){var t=n(e,o);return r.push(t),function(){r=r.filter(function(e){return e!==t})}},assignSyncMedium:function(e){for(o=!0;r.length;){var t=r;r=[],t.forEach(e)}r={push:function(t){return e(t)},filter:function(){return r}}},assignMedium:function(e){o=!0;var t=[];if(r.length){var n=r;r=[],n.forEach(e),t=r}var a=function(){var n=t;t=[],n.forEach(e)},i=function(){return Promise.resolve().then(a)};i(),r={push:function(e){t.push(e),i()},filter:function(e){return t=t.filter(e),r}}}}).options=l({async:!0,ssr:!1},t),a),h=function(){},y=s.forwardRef(function(e,t){var n,r,o,a,i=s.useRef(null),c=s.useState({onScrollCapture:h,onWheelCapture:h,onTouchMoveCapture:h}),d=c[0],f=c[1],y=e.forwardProps,b=e.children,E=e.className,w=e.removeScrollBar,x=e.enabled,C=e.shards,R=e.sideCar,D=e.noRelative,S=e.noIsolation,N=e.inert,j=e.allowPinchZoom,T=e.as,P=e.gapMode,k=u(e,["forwardProps","children","className","removeScrollBar","enabled","shards","sideCar","noRelative","noIsolation","inert","allowPinchZoom","as","gapMode"]),A=(n=[i,t],r=function(e){return n.forEach(function(t){return p(t,e)})},(o=(0,s.useState)(function(){return{value:null,callback:r,facade:{get current(){return o.value},set current(value){var e=o.value;e!==value&&(o.value=value,o.callback(value,e))}}}})[0]).callback=r,a=o.facade,m(function(){var e=v.get(a);if(e){var t=new Set(e),r=new Set(n),o=a.current;t.forEach(function(e){r.has(e)||p(e,null)}),r.forEach(function(e){t.has(e)||p(e,o)})}v.set(a,n)},[n]),a),O=l(l({},k),d);return s.createElement(s.Fragment,null,x&&s.createElement(R,{sideCar:g,removeScrollBar:w,shards:C,noRelative:D,noIsolation:S,inert:N,setCallbacks:f,allowPinchZoom:!!j,lockRef:i,gapMode:P}),y?s.cloneElement(s.Children.only(b),l(l({},O),{ref:A})):s.createElement(void 0===T?"div":T,l({},O,{className:E,ref:A}),b))});y.defaultProps={enabled:!0,removeScrollBar:!0,inert:!1},y.classNames={fullWidth:f,zeroRight:d};var b=function(e){var t=e.sideCar,n=u(e,["sideCar"]);if(!t)throw Error("Sidecar: please provide `sideCar` property to import the right car");var r=t.read();if(!r)throw Error("Sidecar medium not found");return s.createElement(r,l({},n))};b.isSideCarExport=!0;var E=function(){var e=0,t=null;return{add:function(n){if(0==e&&(t=function(){if(!document)return null;var e=document.createElement("style");e.type="text/css";var t=c||("undefined"!=typeof __webpack_nonce__?__webpack_nonce__:void 0);return t&&e.setAttribute("nonce",t),e}())){var r,o;(r=t).styleSheet?r.styleSheet.cssText=n:r.appendChild(document.createTextNode(n)),o=t,(document.head||document.getElementsByTagName("head")[0]).appendChild(o)}e++},remove:function(){--e||!t||(t.parentNode&&t.parentNode.removeChild(t),t=null)}}},w=function(){var e=E();return function(t,n){s.useEffect(function(){return e.add(t),function(){e.remove()}},[t&&n])}},x=function(){var e=w();return function(t){return e(t.styles,t.dynamic),null}},C={left:0,top:0,right:0,gap:0},R=function(e){return parseInt(e||"",10)||0},D=function(e){var t=window.getComputedStyle(document.body),n=t["padding"===e?"paddingLeft":"marginLeft"],r=t["padding"===e?"paddingTop":"marginTop"],o=t["padding"===e?"paddingRight":"marginRight"];return[R(n),R(r),R(o)]},S=function(e){if(void 0===e&&(e="margin"),"undefined"==typeof window)return C;var t=D(e),n=document.documentElement.clientWidth,r=window.innerWidth;return{left:t[0],top:t[1],right:t[2],gap:Math.max(0,r-n+t[2]-t[0])}},N=x(),j="data-scroll-locked",T=function(e,t,n,r){var o=e.left,a=e.top,i=e.right,c=e.gap;return void 0===n&&(n="margin"),"\n .".concat("with-scroll-bars-hidden"," {\n overflow: hidden ").concat(r,";\n padding-right: ").concat(c,"px ").concat(r,";\n }\n body[").concat(j,"] {\n overflow: hidden ").concat(r,";\n overscroll-behavior: contain;\n ").concat([t&&"position: relative ".concat(r,";"),"margin"===n&&"\n padding-left: ".concat(o,"px;\n padding-top: ").concat(a,"px;\n padding-right: ").concat(i,"px;\n margin-left:0;\n margin-top:0;\n margin-right: ").concat(c,"px ").concat(r,";\n "),"padding"===n&&"padding-right: ".concat(c,"px ").concat(r,";")].filter(Boolean).join(""),"\n }\n \n .").concat(d," {\n right: ").concat(c,"px ").concat(r,";\n }\n \n .").concat(f," {\n margin-right: ").concat(c,"px ").concat(r,";\n }\n \n .").concat(d," .").concat(d," {\n right: 0 ").concat(r,";\n }\n \n .").concat(f," .").concat(f," {\n margin-right: 0 ").concat(r,";\n }\n \n body[").concat(j,"] {\n ").concat("--removed-body-scroll-bar-size",": ").concat(c,"px;\n }\n")},P=function(){var e=parseInt(document.body.getAttribute(j)||"0",10);return isFinite(e)?e:0},k=function(){s.useEffect(function(){return document.body.setAttribute(j,(P()+1).toString()),function(){var e=P()-1;e<=0?document.body.removeAttribute(j):document.body.setAttribute(j,e.toString())}},[])},A=function(e){var t=e.noRelative,n=e.noImportant,r=e.gapMode,o=void 0===r?"margin":r;k();var a=s.useMemo(function(){return S(o)},[o]);return s.createElement(N,{styles:T(a,!t,o,n?"":"!important")})},O=!1;if("undefined"!=typeof window)try{var I=Object.defineProperty({},"passive",{get:function(){return O=!0,!0}});window.addEventListener("test",I,I),window.removeEventListener("test",I,I)}catch(e){O=!1}var M=!!O&&{passive:!1},F=function(e,t){if(!(e instanceof Element))return!1;var n=window.getComputedStyle(e);return"hidden"!==n[t]&&(n.overflowY!==n.overflowX||"TEXTAREA"===e.tagName||"visible"!==n[t])},L=function(e,t){var n=t.ownerDocument,r=t;do{if("undefined"!=typeof ShadowRoot&&r instanceof ShadowRoot&&(r=r.host),_(e,r)){var o=W(e,r);if(o[1]>o[2])return!0}r=r.parentNode}while(r&&r!==n.body)return!1},_=function(e,t){return"v"===e?F(t,"overflowY"):F(t,"overflowX")},W=function(e,t){return"v"===e?[t.scrollTop,t.scrollHeight,t.clientHeight]:[t.scrollLeft,t.scrollWidth,t.clientWidth]},B=function(e,t,n,r,o){var a,i=(a=window.getComputedStyle(t).direction,"h"===e&&"rtl"===a?-1:1),c=i*r,l=n.target,u=t.contains(l),s=!1,d=c>0,f=0,p=0;do{if(!l)break;var m=W(e,l),v=m[0],g=m[1]-m[2]-i*v;(v||g)&&_(e,l)&&(f+=g,p+=v);var h=l.parentNode;l=h&&h.nodeType===Node.DOCUMENT_FRAGMENT_NODE?h.host:h}while(!u&&l!==document.body||u&&(t.contains(l)||t===l))return d&&(o&&1>Math.abs(f)||!o&&c>f)?s=!0:!d&&(o&&1>Math.abs(p)||!o&&-c>p)&&(s=!0),s},H=function(e){return"changedTouches"in e?[e.changedTouches[0].clientX,e.changedTouches[0].clientY]:[0,0]},K=function(e){return[e.deltaX,e.deltaY]},z=function(e){return e&&"current"in e?e.current:e},U=0,X=[];let Y=(i=function(e){var t=s.useRef([]),n=s.useRef([0,0]),r=s.useRef(),o=s.useState(U++)[0],a=s.useState(x)[0],i=s.useRef(e);s.useEffect(function(){i.current=e},[e]),s.useEffect(function(){if(e.inert){document.body.classList.add("block-interactivity-".concat(o));var t=(function(e,t,n){if(n||2==arguments.length)for(var r,o=0,a=t.length;o<a;o++)!r&&o in t||(r||(r=Array.prototype.slice.call(t,0,o)),r[o]=t[o]);return e.concat(r||Array.prototype.slice.call(t))})([e.lockRef.current],(e.shards||[]).map(z),!0).filter(Boolean);return t.forEach(function(e){return e.classList.add("allow-interactivity-".concat(o))}),function(){document.body.classList.remove("block-interactivity-".concat(o)),t.forEach(function(e){return e.classList.remove("allow-interactivity-".concat(o))})}}},[e.inert,e.lockRef.current,e.shards]);var c=s.useCallback(function(e,t){if("touches"in e&&2===e.touches.length||"wheel"===e.type&&e.ctrlKey)return!i.current.allowPinchZoom;var o,a=H(e),c=n.current,l="deltaX"in e?e.deltaX:c[0]-a[0],u="deltaY"in e?e.deltaY:c[1]-a[1],s=e.target,d=Math.abs(l)>Math.abs(u)?"h":"v";if("touches"in e&&"h"===d&&"range"===s.type)return!1;var f=window.getSelection(),p=f&&f.anchorNode;if(p&&(p===s||p.contains(s)))return!1;var m=L(d,s);if(!m)return!0;if(m?o=d:(o="v"===d?"h":"v",m=L(d,s)),!m)return!1;if(!r.current&&"changedTouches"in e&&(l||u)&&(r.current=o),!o)return!0;var v=r.current||o;return B(v,t,e,"h"===v?l:u,!0)},[]),l=s.useCallback(function(e){if(X.length&&X[X.length-1]===a){var n="deltaY"in e?K(e):H(e),r=t.current.filter(function(t){var r;return t.name===e.type&&(t.target===e.target||e.target===t.shadowParent)&&(r=t.delta,r[0]===n[0]&&r[1]===n[1])})[0];if(r&&r.should){e.cancelable&&e.preventDefault();return}if(!r){var o=(i.current.shards||[]).map(z).filter(Boolean).filter(function(t){return t.contains(e.target)});(o.length>0?c(e,o[0]):!i.current.noIsolation)&&e.cancelable&&e.preventDefault()}}},[]),u=s.useCallback(function(e,n,r,o){var a={name:e,delta:n,target:r,should:o,shadowParent:function(e){for(var t=null;null!==e;)e instanceof ShadowRoot&&(t=e.host,e=e.host),e=e.parentNode;return t}(r)};t.current.push(a),setTimeout(function(){t.current=t.current.filter(function(e){return e!==a})},1)},[]),d=s.useCallback(function(e){n.current=H(e),r.current=void 0},[]),f=s.useCallback(function(t){u(t.type,K(t),t.target,c(t,e.lockRef.current))},[]),p=s.useCallback(function(t){u(t.type,H(t),t.target,c(t,e.lockRef.current))},[]);s.useEffect(function(){return X.push(a),e.setCallbacks({onScrollCapture:f,onWheelCapture:f,onTouchMoveCapture:p}),document.addEventListener("wheel",l,M),document.addEventListener("touchmove",l,M),document.addEventListener("touchstart",d,M),function(){X=X.filter(function(e){return e!==a}),document.removeEventListener("wheel",l,M),document.removeEventListener("touchmove",l,M),document.removeEventListener("touchstart",d,M)}},[]);var m=e.removeScrollBar,v=e.inert;return s.createElement(s.Fragment,null,v?s.createElement(a,{styles:"\n .block-interactivity-".concat(o," {pointer-events: none;}\n .allow-interactivity-").concat(o," {pointer-events: all;}\n")}):null,m?s.createElement(A,{noRelative:e.noRelative,gapMode:e.gapMode}):null)},g.useMedium(i),b);var Z=s.forwardRef(function(e,t){return s.createElement(y,l({},e,{ref:t,sideCar:Y}))});Z.classNames=y.classNames,e.s(["RemoveScroll",0,Z],31778)},82879,87226,e=>{"use strict";var t=e.i(21628),n=e.i(38652),r=e.i(19836),o=e.i(52410),a=e.i(2890),i=e.i(37928),c=e.i(51606),l=e.i(95668),u=e.i(80506),s=e.i(27980),d=e.i(57961),f=e.i(27045),p=e.i(80214),m=e.i(31778),v=e.i(39045),g=e.i(78603),h="Dialog",[y,b]=(0,a.createContextScope)(h),[E,w]=y(h),x=e=>{let{__scopeDialog:r,children:o,open:a,defaultOpen:l,onOpenChange:u,modal:s=!0}=e,d=n.useRef(null),f=n.useRef(null),[p,m]=(0,c.useControllableState)({prop:a,defaultProp:l??!1,onChange:u,caller:h});return(0,t.jsx)(E,{scope:r,triggerRef:d,contentRef:f,contentId:(0,i.useId)(),titleId:(0,i.useId)(),descriptionId:(0,i.useId)(),open:p,onOpenChange:m,onOpenToggle:n.useCallback(()=>m(e=>!e),[m]),modal:s,children:o})};x.displayName=h;var C="DialogTrigger",R=n.forwardRef((e,n)=>{let{__scopeDialog:a,...i}=e,c=w(C,a),l=(0,o.useComposedRefs)(n,c.triggerRef);return(0,t.jsx)(f.Primitive.button,{type:"button","aria-haspopup":"dialog","aria-expanded":c.open,"aria-controls":c.contentId,"data-state":U(c.open),...i,ref:l,onClick:(0,r.composeEventHandlers)(e.onClick,c.onOpenToggle)})});R.displayName=C;var D="DialogPortal",[S,N]=y(D,{forceMount:void 0}),j=e=>{let{__scopeDialog:r,forceMount:o,children:a,container:i}=e,c=w(D,r);return(0,t.jsx)(S,{scope:r,forceMount:o,children:n.Children.map(a,e=>(0,t.jsx)(d.Presence,{present:o||c.open,children:(0,t.jsx)(s.Portal,{asChild:!0,container:i,children:e})}))})};j.displayName=D;var T="DialogOverlay",P=n.forwardRef((e,n)=>{let r=N(T,e.__scopeDialog),{forceMount:o=r.forceMount,...a}=e,i=w(T,e.__scopeDialog);return i.modal?(0,t.jsx)(d.Presence,{present:o||i.open,children:(0,t.jsx)(A,{...a,ref:n})}):null});P.displayName=T;var k=(0,g.createSlot)("DialogOverlay.RemoveScroll"),A=n.forwardRef((e,n)=>{let{__scopeDialog:r,...o}=e,a=w(T,r);return(0,t.jsx)(m.RemoveScroll,{as:k,allowPinchZoom:!0,shards:[a.contentRef],children:(0,t.jsx)(f.Primitive.div,{"data-state":U(a.open),...o,ref:n,style:{pointerEvents:"auto",...o.style}})})}),O="DialogContent",I=n.forwardRef((e,n)=>{let r=N(O,e.__scopeDialog),{forceMount:o=r.forceMount,...a}=e,i=w(O,e.__scopeDialog);return(0,t.jsx)(d.Presence,{present:o||i.open,children:i.modal?(0,t.jsx)(M,{...a,ref:n}):(0,t.jsx)(F,{...a,ref:n})})});I.displayName=O;var M=n.forwardRef((e,a)=>{let i=w(O,e.__scopeDialog),c=n.useRef(null),l=(0,o.useComposedRefs)(a,i.contentRef,c);return n.useEffect(()=>{let e=c.current;if(e)return(0,v.hideOthers)(e)},[]),(0,t.jsx)(L,{...e,ref:l,trapFocus:i.open,disableOutsidePointerEvents:!0,onCloseAutoFocus:(0,r.composeEventHandlers)(e.onCloseAutoFocus,e=>{e.preventDefault(),i.triggerRef.current?.focus()}),onPointerDownOutside:(0,r.composeEventHandlers)(e.onPointerDownOutside,e=>{let t=e.detail.originalEvent,n=0===t.button&&!0===t.ctrlKey;(2===t.button||n)&&e.preventDefault()}),onFocusOutside:(0,r.composeEventHandlers)(e.onFocusOutside,e=>e.preventDefault())})}),F=n.forwardRef((e,r)=>{let o=w(O,e.__scopeDialog),a=n.useRef(!1),i=n.useRef(!1);return(0,t.jsx)(L,{...e,ref:r,trapFocus:!1,disableOutsidePointerEvents:!1,onCloseAutoFocus:t=>{e.onCloseAutoFocus?.(t),t.defaultPrevented||(a.current||o.triggerRef.current?.focus(),t.preventDefault()),a.current=!1,i.current=!1},onInteractOutside:t=>{e.onInteractOutside?.(t),t.defaultPrevented||(a.current=!0,"pointerdown"===t.detail.originalEvent.type&&(i.current=!0));let n=t.target;o.triggerRef.current?.contains(n)&&t.preventDefault(),"focusin"===t.detail.originalEvent.type&&i.current&&t.preventDefault()}})}),L=n.forwardRef((e,r)=>{let{__scopeDialog:a,trapFocus:i,onOpenAutoFocus:c,onCloseAutoFocus:s,...d}=e,f=w(O,a),m=n.useRef(null),v=(0,o.useComposedRefs)(r,m);return(0,p.useFocusGuards)(),(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(u.FocusScope,{asChild:!0,loop:!0,trapped:i,onMountAutoFocus:c,onUnmountAutoFocus:s,children:(0,t.jsx)(l.DismissableLayer,{role:"dialog",id:f.contentId,"aria-describedby":f.descriptionId,"aria-labelledby":f.titleId,"data-state":U(f.open),...d,ref:v,onDismiss:()=>f.onOpenChange(!1)})}),(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)($,{titleId:f.titleId}),(0,t.jsx)(q,{contentRef:m,descriptionId:f.descriptionId})]})]})}),_="DialogTitle",W=n.forwardRef((e,n)=>{let{__scopeDialog:r,...o}=e,a=w(_,r);return(0,t.jsx)(f.Primitive.h2,{id:a.titleId,...o,ref:n})});W.displayName=_;var B="DialogDescription",H=n.forwardRef((e,n)=>{let{__scopeDialog:r,...o}=e,a=w(B,r);return(0,t.jsx)(f.Primitive.p,{id:a.descriptionId,...o,ref:n})});H.displayName=B;var K="DialogClose",z=n.forwardRef((e,n)=>{let{__scopeDialog:o,...a}=e,i=w(K,o);return(0,t.jsx)(f.Primitive.button,{type:"button",...a,ref:n,onClick:(0,r.composeEventHandlers)(e.onClick,()=>i.onOpenChange(!1))})});function U(e){return e?"open":"closed"}z.displayName=K;var X="DialogTitleWarning",[Y,Z]=(0,a.createContext)(X,{contentName:O,titleName:_,docsSlug:"dialog"}),$=({titleId:e})=>{let t=Z(X),r=`\`${t.contentName}\` requires a \`${t.titleName}\` for the component to be accessible for screen reader users.
|
|
2
|
-
|
|
3
|
-
If you want to hide the \`${t.titleName}\`, you can wrap it with our VisuallyHidden component.
|
|
4
|
-
|
|
5
|
-
For more information, see https://radix-ui.com/primitives/docs/components/${t.docsSlug}`;return n.useEffect(()=>{e&&(document.getElementById(e)||console.error(r))},[r,e]),null},q=({contentRef:e,descriptionId:t})=>{let r=Z("DialogDescriptionWarning"),o=`Warning: Missing \`Description\` or \`aria-describedby={undefined}\` for {${r.contentName}}.`;return n.useEffect(()=>{let n=e.current?.getAttribute("aria-describedby");t&&n&&(document.getElementById(t)||console.warn(o))},[o,e,t]),null};e.s(["Close",()=>z,"Content",()=>I,"Description",()=>H,"Dialog",()=>x,"DialogClose",()=>z,"DialogContent",()=>I,"DialogDescription",()=>H,"DialogOverlay",()=>P,"DialogPortal",()=>j,"DialogTitle",()=>W,"DialogTrigger",()=>R,"Overlay",()=>P,"Portal",()=>j,"Root",()=>x,"Title",()=>W,"Trigger",()=>R,"WarningProvider",()=>Y,"createDialogScope",()=>b],87226);var G=e.i(87226),G=G,V=e.i(52236),J=e.i(66691),Q=e.i(27841),ee=e.i(64053);function et({...e}){return(0,t.jsx)(G.Root,{"data-slot":"dialog",...e})}function en({...e}){return(0,t.jsx)(G.Trigger,{"data-slot":"dialog-trigger",...e})}function er({...e}){return(0,t.jsx)(G.Portal,{"data-slot":"dialog-portal",...e})}function eo({className:e,...n}){return(0,t.jsx)(G.Overlay,{"data-slot":"dialog-overlay",className:(0,V.cn)("data-open:animate-in data-closed:animate-out data-closed:fade-out-0 data-open:fade-in-0 fixed inset-0 isolate z-50 bg-black/10 duration-100 supports-backdrop-filter:backdrop-blur-xs",e),...n})}function ea({className:e,children:n,showCloseButton:r=!0,...o}){return(0,t.jsxs)(er,{children:[(0,t.jsx)(eo,{}),(0,t.jsxs)(G.Content,{"data-slot":"dialog-content",className:(0,V.cn)("bg-background data-open:animate-in data-closed:animate-out data-closed:fade-out-0 data-open:fade-in-0 data-closed:zoom-out-95 data-open:zoom-in-95 ring-foreground/10 fixed top-1/2 left-1/2 z-50 grid w-full max-w-[calc(100%-2rem)] -translate-x-1/2 -translate-y-1/2 gap-4 rounded-none p-4 text-xs/relaxed ring-1 duration-100 sm:max-w-sm",e),...o,children:[n,r&&(0,t.jsx)(G.Close,{"data-slot":"dialog-close",asChild:!0,children:(0,t.jsxs)(J.Button,{variant:"ghost",className:"absolute top-2 right-2",size:"icon-sm",children:[(0,t.jsx)(Q.HugeiconsIcon,{icon:ee.Cancel01Icon,strokeWidth:2}),(0,t.jsx)("span",{className:"sr-only",children:"Close"})]})})]})]})}function ei({className:e,...n}){return(0,t.jsx)("div",{"data-slot":"dialog-header",className:(0,V.cn)("flex flex-col gap-1 text-left",e),...n})}function ec({className:e,showCloseButton:n=!1,children:r,...o}){return(0,t.jsxs)("div",{"data-slot":"dialog-footer",className:(0,V.cn)("flex flex-col-reverse gap-2 sm:flex-row sm:justify-end",e),...o,children:[r,n&&(0,t.jsx)(G.Close,{asChild:!0,children:(0,t.jsx)(J.Button,{variant:"outline",children:"Close"})})]})}function el({className:e,...n}){return(0,t.jsx)(G.Title,{"data-slot":"dialog-title",className:(0,V.cn)("text-sm font-medium",e),...n})}function eu({className:e,...n}){return(0,t.jsx)(G.Description,{"data-slot":"dialog-description",className:(0,V.cn)("text-muted-foreground *:[a]:hover:text-foreground text-xs/relaxed *:[a]:underline *:[a]:underline-offset-3",e),...n})}e.s(["Dialog",()=>et,"DialogContent",()=>ea,"DialogDescription",()=>eu,"DialogFooter",()=>ec,"DialogHeader",()=>ei,"DialogTitle",()=>el,"DialogTrigger",()=>en],82879)}]);
|
|
@@ -1,3 +0,0 @@
|
|
|
1
|
-
(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,{otherChunks:["static/chunks/ab703521ea4f2141.js","static/chunks/26aa014f0977bc3a.js","static/chunks/6a4ccd90d00f8188.js","static/chunks/001d990e82d317e7.js","static/chunks/8eae4355671b488f.js"],runtimeModuleIds:[42058]}]),(()=>{let e;if(!Array.isArray(globalThis.TURBOPACK))return;let t="/_next/",r=new WeakMap;function n(e,t){this.m=e,this.e=t}let o=n.prototype,l=Object.prototype.hasOwnProperty,i="undefined"!=typeof Symbol&&Symbol.toStringTag;function s(e,t,r){l.call(e,t)||Object.defineProperty(e,t,r)}function u(e,t){let r=e[t];return r||(r=a(t),e[t]=r),r}function a(e){return{exports:{},error:void 0,id:e,namespaceObject:void 0}}function c(e,t){s(e,"__esModule",{value:!0}),i&&s(e,i,{value:"Module"});let r=0;for(;r<t.length;){let n=t[r++],o=t[r++];if("number"==typeof o)if(0===o)s(e,n,{value:t[r++],enumerable:!0,writable:!1});else throw Error(`unexpected tag: ${o}`);else"function"==typeof t[r]?s(e,n,{get:o,set:t[r++],enumerable:!0}):s(e,n,{get:o,enumerable:!0})}Object.seal(e)}o.s=function(e,t){let r,n;null!=t?n=(r=u(this.c,t)).exports:(r=this.m,n=this.e),r.namespaceObject=n,c(n,e)},o.j=function(e,t){var n,o;let i,s,a;null!=t?s=(i=u(this.c,t)).exports:(i=this.m,s=this.e);let c=(n=i,o=s,(a=r.get(n))||(r.set(n,a=[]),n.exports=n.namespaceObject=new Proxy(o,{get(e,t){if(l.call(e,t)||"default"===t||"__esModule"===t)return Reflect.get(e,t);for(let e of a){let r=Reflect.get(e,t);if(void 0!==r)return r}},ownKeys(e){let t=Reflect.ownKeys(e);for(let e of a)for(let r of Reflect.ownKeys(e))"default"===r||t.includes(r)||t.push(r);return t}})),a);"object"==typeof e&&null!==e&&c.push(e)},o.v=function(e,t){(null!=t?u(this.c,t):this.m).exports=e},o.n=function(e,t){let r;(r=null!=t?u(this.c,t):this.m).exports=r.namespaceObject=e};let f=Object.getPrototypeOf?e=>Object.getPrototypeOf(e):e=>e.__proto__,p=[null,f({}),f([]),f(f)];function h(e,t,r){let n=[],o=-1;for(let t=e;("object"==typeof t||"function"==typeof t)&&!p.includes(t);t=f(t))for(let r of Object.getOwnPropertyNames(t))n.push(r,function(e,t){return()=>e[t]}(e,r)),-1===o&&"default"===r&&(o=n.length-1);return r&&o>=0||(o>=0?n.splice(o,1,0,e):n.push("default",0,e)),c(t,n),t}function d(e){let t=N(e,this.m);if(t.namespaceObject)return t.namespaceObject;let r=t.exports;return t.namespaceObject=h(r,"function"==typeof r?function(...e){return r.apply(this,e)}:Object.create(null),r&&r.__esModule)}function m(){let e,t;return{promise:new Promise((r,n)=>{t=n,e=r}),resolve:e,reject:t}}o.i=d,o.A=function(e){return this.r(e)(d.bind(this))},o.t="function"==typeof require?require:function(){throw Error("Unexpected use of runtime require")},o.r=function(e){return N(e,this.m).exports},o.f=function(e){function t(t){if(l.call(e,t))return e[t].module();let r=Error(`Cannot find module '${t}'`);throw r.code="MODULE_NOT_FOUND",r}return t.keys=()=>Object.keys(e),t.resolve=t=>{if(l.call(e,t))return e[t].id();let r=Error(`Cannot find module '${t}'`);throw r.code="MODULE_NOT_FOUND",r},t.import=async e=>await t(e),t};let b=Symbol("turbopack queues"),y=Symbol("turbopack exports"),O=Symbol("turbopack error");function g(e){e&&1!==e.status&&(e.status=1,e.forEach(e=>e.queueCount--),e.forEach(e=>e.queueCount--?e.queueCount++:e()))}o.a=function(e,t){let r=this.m,n=t?Object.assign([],{status:-1}):void 0,o=new Set,{resolve:l,reject:i,promise:s}=m(),u=Object.assign(s,{[y]:r.exports,[b]:e=>{n&&e(n),o.forEach(e),u.catch(()=>{})}}),a={get:()=>u,set(e){e!==u&&(u[y]=e)}};Object.defineProperty(r,"exports",a),Object.defineProperty(r,"namespaceObject",a),e(function(e){let t=e.map(e=>{if(null!==e&&"object"==typeof e){if(b in e)return e;if(null!=e&&"object"==typeof e&&"then"in e&&"function"==typeof e.then){let t=Object.assign([],{status:0}),r={[y]:{},[b]:e=>e(t)};return e.then(e=>{r[y]=e,g(t)},e=>{r[O]=e,g(t)}),r}}return{[y]:e,[b]:()=>{}}}),r=()=>t.map(e=>{if(e[O])throw e[O];return e[y]}),{promise:l,resolve:i}=m(),s=Object.assign(()=>i(r),{queueCount:0});function u(e){e!==n&&!o.has(e)&&(o.add(e),e&&0===e.status&&(s.queueCount++,e.push(s)))}return t.map(e=>e[b](u)),s.queueCount?l:r()},function(e){e?i(u[O]=e):l(u[y]),g(n)}),n&&-1===n.status&&(n.status=0)};let w=function(e){let t=new URL(e,"x:/"),r={};for(let e in t)r[e]=t[e];for(let t in r.href=e,r.pathname=e.replace(/[?#].*/,""),r.origin=r.protocol="",r.toString=r.toJSON=(...t)=>e,r)Object.defineProperty(this,t,{enumerable:!0,configurable:!0,value:r[t]})};function j(e,t){throw Error(`Invariant: ${t(e)}`)}w.prototype=URL.prototype,o.U=w,o.z=function(e){throw Error("dynamic usage of require is not supported")},o.g=globalThis;let R=n.prototype;var C,U=((C=U||{})[C.Runtime=0]="Runtime",C[C.Parent=1]="Parent",C[C.Update=2]="Update",C);let k=new Map;o.M=k;let v=new Map,_=new Map;async function P(e,t,r){let n;if("string"==typeof r)return A(e,t,S(r));let o=r.included||[],l=o.map(e=>!!k.has(e)||v.get(e));if(l.length>0&&l.every(e=>e))return void await Promise.all(l);let i=r.moduleChunks||[],s=i.map(e=>_.get(e)).filter(e=>e);if(s.length>0){if(s.length===i.length)return void await Promise.all(s);let r=new Set;for(let e of i)_.has(e)||r.add(e);for(let n of r){let r=A(e,t,S(n));_.set(n,r),s.push(r)}n=Promise.all(s)}else{for(let o of(n=A(e,t,S(r.path)),i))_.has(o)||_.set(o,n)}for(let e of o)v.has(e)||v.set(e,n);await n}R.l=function(e){return P(1,this.m.id,e)};let $=Promise.resolve(void 0),T=new WeakMap;function A(t,r,n){let o=e.loadChunkCached(t,n),l=T.get(o);if(void 0===l){let e=T.set.bind(T,o,$);l=o.then(e).catch(e=>{let o;switch(t){case 0:o=`as a runtime dependency of chunk ${r}`;break;case 1:o=`from module ${r}`;break;case 2:o="from an HMR update";break;default:j(t,e=>`Unknown source type: ${e}`)}throw Error(`Failed to load chunk ${n} ${o}${e?`: ${e}`:""}`,e?{cause:e}:void 0)}),T.set(o,l)}return l}function S(e){return`${t}${e.split("/").map(e=>encodeURIComponent(e)).join("/")}`}R.L=function(e){return A(1,this.m.id,e)},R.R=function(e){let t=this.r(e);return t?.default??t},R.P=function(e){return`/ROOT/${e??""}`},R.b=function(e){let t=new Blob([`self.TURBOPACK_WORKER_LOCATION = ${JSON.stringify(location.origin)};
|
|
2
|
-
self.TURBOPACK_NEXT_CHUNK_URLS = ${JSON.stringify(e.reverse().map(S),null,2)};
|
|
3
|
-
importScripts(...self.TURBOPACK_NEXT_CHUNK_URLS.map(c => self.TURBOPACK_WORKER_LOCATION + c).reverse());`],{type:"text/javascript"});return URL.createObjectURL(t)};let E=/\.js(?:\?[^#]*)?(?:#.*)?$/,K=/\.css(?:\?[^#]*)?(?:#.*)?$/;function x(e){return K.test(e)}o.w=function(t,r,n){return e.loadWebAssembly(1,this.m.id,t,r,n)},o.u=function(t,r){return e.loadWebAssemblyModule(1,this.m.id,t,r)};let M={};o.c=M;let N=(e,t)=>{let r=M[e];if(r){if(r.error)throw r.error;return r}return L(e,U.Parent,t.id)};function L(e,t,r){let o=k.get(e);if("function"!=typeof o)throw Error(function(e,t,r){let n;switch(t){case 0:n=`as a runtime entry of chunk ${r}`;break;case 1:n=`because it was required from module ${r}`;break;case 2:n="because of an HMR update";break;default:j(t,e=>`Unknown source type: ${e}`)}return`Module ${e} was instantiated ${n}, but the module factory is not available.`}(e,t,r));let l=a(e),i=l.exports;M[e]=l;let s=new n(l,i);try{o(s,l,i)}catch(e){throw l.error=e,e}return l.namespaceObject&&l.exports!==l.namespaceObject&&h(l.exports,l.namespaceObject),l}function q(r){let n,o=function(e){if("string"==typeof e)return e;let r=decodeURIComponent(("undefined"!=typeof TURBOPACK_NEXT_CHUNK_URLS?TURBOPACK_NEXT_CHUNK_URLS.pop():e.getAttribute("src")).replace(/[?#].*$/,""));return r.startsWith(t)?r.slice(t.length):r}(r[0]);return 2===r.length?n=r[1]:(n=void 0,!function(e,t,r,n){let o=1;for(;o<e.length;){let t=e[o],n=o+1;for(;n<e.length&&"function"!=typeof e[n];)n++;if(n===e.length)throw Error("malformed chunk format, expected a factory function");if(!r.has(t)){let l=e[n];for(Object.defineProperty(l,"name",{value:"module evaluation"});o<n;o++)t=e[o],r.set(t,l)}o=n+1}}(r,0,k)),e.registerChunk(o,n)}let B=new Map;function W(e){let t=B.get(e);if(!t){let r,n;t={resolved:!1,loadingStarted:!1,promise:new Promise((e,t)=>{r=e,n=t}),resolve:()=>{t.resolved=!0,r()},reject:n},B.set(e,t)}return t}e={async registerChunk(e,t){if(W(S(e)).resolve(),null!=t){for(let e of t.otherChunks)W(S("string"==typeof e?e:e.path));if(await Promise.all(t.otherChunks.map(t=>P(0,e,t))),t.runtimeModuleIds.length>0)for(let r of t.runtimeModuleIds)!function(e,t){let r=M[t];if(r){if(r.error)throw r.error;return}L(t,U.Runtime,e)}(e,r)}},loadChunkCached:(e,t)=>(function(e,t){let r=W(t);if(r.loadingStarted)return r.promise;if(e===U.Runtime)return r.loadingStarted=!0,x(t)&&r.resolve(),r.promise;if("function"==typeof importScripts)if(x(t));else if(E.test(t))self.TURBOPACK_NEXT_CHUNK_URLS.push(t),importScripts(TURBOPACK_WORKER_LOCATION+t);else throw Error(`can't infer type of chunk from URL ${t} in worker`);else{let e=decodeURI(t);if(x(t))if(document.querySelectorAll(`link[rel=stylesheet][href="${t}"],link[rel=stylesheet][href^="${t}?"],link[rel=stylesheet][href="${e}"],link[rel=stylesheet][href^="${e}?"]`).length>0)r.resolve();else{let e=document.createElement("link");e.rel="stylesheet",e.href=t,e.onerror=()=>{r.reject()},e.onload=()=>{r.resolve()},document.head.appendChild(e)}else if(E.test(t)){let n=document.querySelectorAll(`script[src="${t}"],script[src^="${t}?"],script[src="${e}"],script[src^="${e}?"]`);if(n.length>0)for(let e of Array.from(n))e.addEventListener("error",()=>{r.reject()});else{let e=document.createElement("script");e.src=t,e.onerror=()=>{r.reject()},document.head.appendChild(e)}}else throw Error(`can't infer type of chunk from URL ${t}`)}return r.loadingStarted=!0,r.promise})(e,t),async loadWebAssembly(e,t,r,n,o){let l=fetch(S(r)),{instance:i}=await WebAssembly.instantiateStreaming(l,o);return i.exports},async loadWebAssemblyModule(e,t,r,n){let o=fetch(S(r));return await WebAssembly.compileStreaming(o)}};let I=globalThis.TURBOPACK;globalThis.TURBOPACK={push:q},I.forEach(q)})();
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
Binary file
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
[]
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
self.__SSG_MANIFEST=new Set([]);self.__SSG_MANIFEST_CB&&self.__SSG_MANIFEST_CB()
|
|
@@ -1,238 +0,0 @@
|
|
|
1
|
-
'use client'
|
|
2
|
-
|
|
3
|
-
import { useEffect, useState, useCallback } from 'react'
|
|
4
|
-
import Link from 'next/link'
|
|
5
|
-
import { useParams } from 'next/navigation'
|
|
6
|
-
import { useQueryState, parseAsString } from 'nuqs'
|
|
7
|
-
import { ThreadsTable } from '@/components/threads-table'
|
|
8
|
-
import { Button } from '@/components/ui/button'
|
|
9
|
-
import { Card, CardContent } from '@/components/ui/card'
|
|
10
|
-
import { Input } from '@/components/ui/input'
|
|
11
|
-
import { Label } from '@/components/ui/label'
|
|
12
|
-
import { rpcClient } from '@/lib/rpc-client'
|
|
13
|
-
import { useConfig } from '@/providers/config-provider'
|
|
14
|
-
import { HugeiconsIcon } from '@hugeicons/react'
|
|
15
|
-
import { FilterIcon, Cancel01Icon } from '@hugeicons/core-free-icons'
|
|
16
|
-
import type { Thread, ApiKey } from '@/lib/api'
|
|
17
|
-
|
|
18
|
-
export default function ThreadsPage() {
|
|
19
|
-
const params = useParams()
|
|
20
|
-
const appId = params.appId as string
|
|
21
|
-
const { config, isLoading: isLoadingConfig } = useConfig()
|
|
22
|
-
|
|
23
|
-
// URL params managed by nuqs
|
|
24
|
-
const [tenantId, setTenantId] = useQueryState(
|
|
25
|
-
'tenantId',
|
|
26
|
-
parseAsString.withDefault(''),
|
|
27
|
-
)
|
|
28
|
-
const [userId, setUserId] = useQueryState(
|
|
29
|
-
'userId',
|
|
30
|
-
parseAsString.withDefault(''),
|
|
31
|
-
)
|
|
32
|
-
|
|
33
|
-
const [threads, setThreads] = useState<Thread[]>([])
|
|
34
|
-
const [isLoading, setIsLoading] = useState(true)
|
|
35
|
-
const [isLoadingMore, setIsLoadingMore] = useState(false)
|
|
36
|
-
const [showFilters, setShowFilters] = useState(false)
|
|
37
|
-
|
|
38
|
-
// Cursor pagination state
|
|
39
|
-
const [nextCursor, setNextCursor] = useState<string | null>(null)
|
|
40
|
-
const [hasMore, setHasMore] = useState(false)
|
|
41
|
-
|
|
42
|
-
// API Keys state
|
|
43
|
-
const [apiKeys, setApiKeys] = useState<ApiKey[]>([])
|
|
44
|
-
const [isLoadingKeys, setIsLoadingKeys] = useState(true)
|
|
45
|
-
|
|
46
|
-
// Pending filter state (for input fields before applying)
|
|
47
|
-
const [pendingTenantId, setPendingTenantId] = useState(tenantId)
|
|
48
|
-
const [pendingUserId, setPendingUserId] = useState(userId)
|
|
49
|
-
|
|
50
|
-
// Sync pending state when URL params change
|
|
51
|
-
useEffect(() => {
|
|
52
|
-
setPendingTenantId(tenantId)
|
|
53
|
-
setPendingUserId(userId)
|
|
54
|
-
}, [tenantId, userId])
|
|
55
|
-
|
|
56
|
-
const fetchThreads = useCallback(
|
|
57
|
-
async (cursor?: string) => {
|
|
58
|
-
if (cursor) {
|
|
59
|
-
setIsLoadingMore(true)
|
|
60
|
-
} else {
|
|
61
|
-
setIsLoading(true)
|
|
62
|
-
}
|
|
63
|
-
|
|
64
|
-
try {
|
|
65
|
-
const query: Record<string, string> = { limit: '50' }
|
|
66
|
-
if (tenantId) query.tenantId = tenantId
|
|
67
|
-
if (userId) query.userId = userId
|
|
68
|
-
if (cursor) query.cursor = cursor
|
|
69
|
-
|
|
70
|
-
const res = await rpcClient.api.admin.apps[':appId'].threads.$get({
|
|
71
|
-
param: { appId },
|
|
72
|
-
query,
|
|
73
|
-
})
|
|
74
|
-
|
|
75
|
-
if (res.ok) {
|
|
76
|
-
const data = await res.json()
|
|
77
|
-
if (cursor) {
|
|
78
|
-
setThreads((prev) => [...prev, ...data.threads])
|
|
79
|
-
} else {
|
|
80
|
-
setThreads(data.threads)
|
|
81
|
-
}
|
|
82
|
-
setNextCursor(data.nextCursor)
|
|
83
|
-
setHasMore(data.hasMore)
|
|
84
|
-
}
|
|
85
|
-
} catch (error) {
|
|
86
|
-
console.error('Failed to fetch threads:', error)
|
|
87
|
-
} finally {
|
|
88
|
-
setIsLoading(false)
|
|
89
|
-
setIsLoadingMore(false)
|
|
90
|
-
}
|
|
91
|
-
},
|
|
92
|
-
[appId, tenantId, userId],
|
|
93
|
-
)
|
|
94
|
-
|
|
95
|
-
const fetchApiKeys = useCallback(async () => {
|
|
96
|
-
try {
|
|
97
|
-
const res = await rpcClient.api.admin.apps[':appId']['api-keys'].$get({
|
|
98
|
-
param: { appId },
|
|
99
|
-
})
|
|
100
|
-
if (res.ok) {
|
|
101
|
-
const data = await res.json()
|
|
102
|
-
setApiKeys(data.keys)
|
|
103
|
-
}
|
|
104
|
-
} catch (error) {
|
|
105
|
-
console.error('Failed to fetch API keys:', error)
|
|
106
|
-
} finally {
|
|
107
|
-
setIsLoadingKeys(false)
|
|
108
|
-
}
|
|
109
|
-
}, [appId])
|
|
110
|
-
|
|
111
|
-
// Fetch threads when URL params change
|
|
112
|
-
useEffect(() => {
|
|
113
|
-
setNextCursor(null)
|
|
114
|
-
setHasMore(false)
|
|
115
|
-
fetchThreads()
|
|
116
|
-
}, [fetchThreads])
|
|
117
|
-
|
|
118
|
-
useEffect(() => {
|
|
119
|
-
fetchApiKeys()
|
|
120
|
-
}, [fetchApiKeys])
|
|
121
|
-
|
|
122
|
-
const applyFilters = async () => {
|
|
123
|
-
await Promise.all([
|
|
124
|
-
setTenantId(pendingTenantId || null),
|
|
125
|
-
setUserId(pendingUserId || null),
|
|
126
|
-
])
|
|
127
|
-
}
|
|
128
|
-
|
|
129
|
-
const clearFilters = async () => {
|
|
130
|
-
setPendingTenantId('')
|
|
131
|
-
setPendingUserId('')
|
|
132
|
-
await Promise.all([setTenantId(null), setUserId(null)])
|
|
133
|
-
}
|
|
134
|
-
|
|
135
|
-
const loadMore = () => {
|
|
136
|
-
if (nextCursor && !isLoadingMore) {
|
|
137
|
-
fetchThreads(nextCursor)
|
|
138
|
-
}
|
|
139
|
-
}
|
|
140
|
-
|
|
141
|
-
const hasFilters = tenantId || userId
|
|
142
|
-
const standaloneMode = config?.standaloneMode ?? true
|
|
143
|
-
const hasNoApiKeys =
|
|
144
|
-
apiKeys.length === 0 &&
|
|
145
|
-
!isLoadingKeys &&
|
|
146
|
-
!isLoadingConfig &&
|
|
147
|
-
!standaloneMode
|
|
148
|
-
|
|
149
|
-
return (
|
|
150
|
-
<div className="flex h-full flex-col">
|
|
151
|
-
{/* Fixed Filter Section */}
|
|
152
|
-
<div className="bg-background shrink-0 space-y-4 pb-4">
|
|
153
|
-
{hasNoApiKeys && (
|
|
154
|
-
<Card>
|
|
155
|
-
<CardContent className="py-6 text-center">
|
|
156
|
-
<p className="text-muted-foreground mb-2 text-sm">
|
|
157
|
-
No API keys yet. Create one to start logging.
|
|
158
|
-
</p>
|
|
159
|
-
<Link
|
|
160
|
-
href={`/apps/${appId}/settings`}
|
|
161
|
-
className="text-primary text-sm font-medium hover:underline"
|
|
162
|
-
>
|
|
163
|
-
Go to Settings
|
|
164
|
-
</Link>
|
|
165
|
-
</CardContent>
|
|
166
|
-
</Card>
|
|
167
|
-
)}
|
|
168
|
-
|
|
169
|
-
<div className="flex items-center justify-between">
|
|
170
|
-
<p className="text-muted-foreground text-sm">
|
|
171
|
-
{threads.length} thread{threads.length !== 1 ? 's' : ''} found
|
|
172
|
-
</p>
|
|
173
|
-
<Button
|
|
174
|
-
variant="outline"
|
|
175
|
-
size="sm"
|
|
176
|
-
onClick={() => setShowFilters(!showFilters)}
|
|
177
|
-
>
|
|
178
|
-
<HugeiconsIcon icon={FilterIcon} className="mr-2 h-4 w-4" />
|
|
179
|
-
Filters
|
|
180
|
-
{hasFilters && (
|
|
181
|
-
<span className="bg-primary text-primary-foreground ml-2 rounded-full px-2 py-0.5 text-xs">
|
|
182
|
-
Active
|
|
183
|
-
</span>
|
|
184
|
-
)}
|
|
185
|
-
</Button>
|
|
186
|
-
</div>
|
|
187
|
-
|
|
188
|
-
{showFilters && (
|
|
189
|
-
<div className="space-y-4 rounded-lg border p-4">
|
|
190
|
-
<div className="grid gap-4 md:grid-cols-3">
|
|
191
|
-
<div className="space-y-2">
|
|
192
|
-
<Label htmlFor="tenantId">Tenant ID</Label>
|
|
193
|
-
<Input
|
|
194
|
-
id="tenantId"
|
|
195
|
-
placeholder="Filter by tenant..."
|
|
196
|
-
value={pendingTenantId}
|
|
197
|
-
onChange={(e) => setPendingTenantId(e.target.value)}
|
|
198
|
-
/>
|
|
199
|
-
</div>
|
|
200
|
-
<div className="space-y-2">
|
|
201
|
-
<Label htmlFor="userId">User ID</Label>
|
|
202
|
-
<Input
|
|
203
|
-
id="userId"
|
|
204
|
-
placeholder="Filter by user..."
|
|
205
|
-
value={pendingUserId}
|
|
206
|
-
onChange={(e) => setPendingUserId(e.target.value)}
|
|
207
|
-
/>
|
|
208
|
-
</div>
|
|
209
|
-
</div>
|
|
210
|
-
<div className="flex gap-2">
|
|
211
|
-
<Button size="sm" onClick={applyFilters}>
|
|
212
|
-
Apply Filters
|
|
213
|
-
</Button>
|
|
214
|
-
{hasFilters && (
|
|
215
|
-
<Button size="sm" variant="outline" onClick={clearFilters}>
|
|
216
|
-
<HugeiconsIcon icon={Cancel01Icon} className="mr-2 h-4 w-4" />
|
|
217
|
-
Clear
|
|
218
|
-
</Button>
|
|
219
|
-
)}
|
|
220
|
-
</div>
|
|
221
|
-
</div>
|
|
222
|
-
)}
|
|
223
|
-
</div>
|
|
224
|
-
|
|
225
|
-
{/* Table with sticky header - scrollable area */}
|
|
226
|
-
<div className="min-h-0 flex-1 overflow-auto rounded-md border">
|
|
227
|
-
<ThreadsTable
|
|
228
|
-
threads={threads}
|
|
229
|
-
isLoading={isLoading}
|
|
230
|
-
appId={appId}
|
|
231
|
-
hasMore={hasMore}
|
|
232
|
-
isLoadingMore={isLoadingMore}
|
|
233
|
-
onLoadMore={loadMore}
|
|
234
|
-
/>
|
|
235
|
-
</div>
|
|
236
|
-
</div>
|
|
237
|
-
)
|
|
238
|
-
}
|
|
@@ -1,224 +0,0 @@
|
|
|
1
|
-
'use client'
|
|
2
|
-
|
|
3
|
-
import { useEffect, useState, useCallback } from 'react'
|
|
4
|
-
import { useParams } from 'next/navigation'
|
|
5
|
-
import {
|
|
6
|
-
Card,
|
|
7
|
-
CardContent,
|
|
8
|
-
CardDescription,
|
|
9
|
-
CardHeader,
|
|
10
|
-
CardTitle,
|
|
11
|
-
} from '@/components/ui/card'
|
|
12
|
-
import { Skeleton } from '@/components/ui/skeleton'
|
|
13
|
-
import { Button } from '@/components/ui/button'
|
|
14
|
-
import { Input } from '@/components/ui/input'
|
|
15
|
-
import { Label } from '@/components/ui/label'
|
|
16
|
-
import { ApiKeysTable } from '@/components/api-keys-table'
|
|
17
|
-
import { CreateApiKeyDialog } from '@/components/create-api-key-dialog'
|
|
18
|
-
import { rpcClient } from '@/lib/rpc-client'
|
|
19
|
-
import { toast } from 'sonner'
|
|
20
|
-
import type { App, ApiKey } from '@/lib/api'
|
|
21
|
-
|
|
22
|
-
function formatDate(dateString: string) {
|
|
23
|
-
return new Date(dateString).toLocaleDateString('en-US', {
|
|
24
|
-
year: 'numeric',
|
|
25
|
-
month: 'long',
|
|
26
|
-
day: 'numeric',
|
|
27
|
-
hour: '2-digit',
|
|
28
|
-
minute: '2-digit',
|
|
29
|
-
})
|
|
30
|
-
}
|
|
31
|
-
|
|
32
|
-
export default function SettingsPage() {
|
|
33
|
-
const params = useParams()
|
|
34
|
-
const appId = params.appId as string
|
|
35
|
-
|
|
36
|
-
const [app, setApp] = useState<App | null>(null)
|
|
37
|
-
const [isLoading, setIsLoading] = useState(true)
|
|
38
|
-
const [isSaving, setIsSaving] = useState(false)
|
|
39
|
-
const [name, setName] = useState('')
|
|
40
|
-
|
|
41
|
-
// API Keys state
|
|
42
|
-
const [keys, setKeys] = useState<ApiKey[]>([])
|
|
43
|
-
const [isLoadingKeys, setIsLoadingKeys] = useState(true)
|
|
44
|
-
|
|
45
|
-
const fetchKeys = useCallback(async () => {
|
|
46
|
-
try {
|
|
47
|
-
const res = await rpcClient.api.admin.apps[':appId']['api-keys'].$get({
|
|
48
|
-
param: { appId },
|
|
49
|
-
})
|
|
50
|
-
if (res.ok) {
|
|
51
|
-
const data = await res.json()
|
|
52
|
-
setKeys(data.keys)
|
|
53
|
-
}
|
|
54
|
-
} catch (error) {
|
|
55
|
-
console.error('Failed to fetch API keys:', error)
|
|
56
|
-
} finally {
|
|
57
|
-
setIsLoadingKeys(false)
|
|
58
|
-
}
|
|
59
|
-
}, [appId])
|
|
60
|
-
|
|
61
|
-
useEffect(() => {
|
|
62
|
-
async function fetchData() {
|
|
63
|
-
try {
|
|
64
|
-
const appRes = await rpcClient.api.admin.apps[':appId'].$get({
|
|
65
|
-
param: { appId },
|
|
66
|
-
})
|
|
67
|
-
|
|
68
|
-
if (appRes.ok) {
|
|
69
|
-
const appData = await appRes.json()
|
|
70
|
-
setApp(appData as App)
|
|
71
|
-
setName(appData.name)
|
|
72
|
-
}
|
|
73
|
-
} catch (error) {
|
|
74
|
-
console.error('Failed to fetch data:', error)
|
|
75
|
-
} finally {
|
|
76
|
-
setIsLoading(false)
|
|
77
|
-
}
|
|
78
|
-
}
|
|
79
|
-
fetchData()
|
|
80
|
-
fetchKeys()
|
|
81
|
-
}, [appId, fetchKeys])
|
|
82
|
-
|
|
83
|
-
const handleSave = async () => {
|
|
84
|
-
if (!name.trim()) {
|
|
85
|
-
toast.error('Name is required')
|
|
86
|
-
return
|
|
87
|
-
}
|
|
88
|
-
|
|
89
|
-
setIsSaving(true)
|
|
90
|
-
try {
|
|
91
|
-
const res = await rpcClient.api.admin.apps[':appId'].$put({
|
|
92
|
-
param: { appId },
|
|
93
|
-
json: { name: name.trim() },
|
|
94
|
-
})
|
|
95
|
-
|
|
96
|
-
if (res.ok) {
|
|
97
|
-
const updatedApp = await res.json()
|
|
98
|
-
setApp(updatedApp as App)
|
|
99
|
-
toast.success('App name updated successfully')
|
|
100
|
-
} else {
|
|
101
|
-
toast.error('Failed to update app name')
|
|
102
|
-
}
|
|
103
|
-
} catch (error) {
|
|
104
|
-
console.error('Failed to update app:', error)
|
|
105
|
-
toast.error('Failed to update app name')
|
|
106
|
-
} finally {
|
|
107
|
-
setIsSaving(false)
|
|
108
|
-
}
|
|
109
|
-
}
|
|
110
|
-
|
|
111
|
-
const hasChanges = app && name !== app.name
|
|
112
|
-
|
|
113
|
-
if (isLoading) {
|
|
114
|
-
return (
|
|
115
|
-
<div className="space-y-6">
|
|
116
|
-
<Card>
|
|
117
|
-
<CardHeader>
|
|
118
|
-
<Skeleton className="h-5 w-24" />
|
|
119
|
-
</CardHeader>
|
|
120
|
-
<CardContent className="space-y-4">
|
|
121
|
-
<Skeleton className="h-4 w-full" />
|
|
122
|
-
<Skeleton className="h-4 w-3/4" />
|
|
123
|
-
</CardContent>
|
|
124
|
-
</Card>
|
|
125
|
-
</div>
|
|
126
|
-
)
|
|
127
|
-
}
|
|
128
|
-
|
|
129
|
-
return (
|
|
130
|
-
<div className="space-y-6">
|
|
131
|
-
<Card>
|
|
132
|
-
<CardHeader>
|
|
133
|
-
<CardTitle>General</CardTitle>
|
|
134
|
-
<CardDescription>
|
|
135
|
-
Application settings and information
|
|
136
|
-
</CardDescription>
|
|
137
|
-
</CardHeader>
|
|
138
|
-
<CardContent className="space-y-4">
|
|
139
|
-
<div className="space-y-2">
|
|
140
|
-
<Label htmlFor="name">App Name</Label>
|
|
141
|
-
<div className="flex gap-2">
|
|
142
|
-
<Input
|
|
143
|
-
id="name"
|
|
144
|
-
value={name}
|
|
145
|
-
onChange={(e) => setName(e.target.value)}
|
|
146
|
-
placeholder="Enter app name"
|
|
147
|
-
className="max-w-md"
|
|
148
|
-
/>
|
|
149
|
-
<Button onClick={handleSave} disabled={!hasChanges || isSaving}>
|
|
150
|
-
{isSaving ? 'Saving...' : 'Save'}
|
|
151
|
-
</Button>
|
|
152
|
-
</div>
|
|
153
|
-
</div>
|
|
154
|
-
<div>
|
|
155
|
-
<p className="text-muted-foreground text-sm font-medium">App ID</p>
|
|
156
|
-
<p className="font-mono text-sm">{app?.appId}</p>
|
|
157
|
-
</div>
|
|
158
|
-
<div className="grid grid-cols-2 gap-4">
|
|
159
|
-
<div>
|
|
160
|
-
<p className="text-muted-foreground text-sm font-medium">
|
|
161
|
-
Created
|
|
162
|
-
</p>
|
|
163
|
-
<p className="text-sm">
|
|
164
|
-
{app?.createdAt ? formatDate(app.createdAt) : '-'}
|
|
165
|
-
</p>
|
|
166
|
-
</div>
|
|
167
|
-
<div>
|
|
168
|
-
<p className="text-muted-foreground text-sm font-medium">
|
|
169
|
-
Last Updated
|
|
170
|
-
</p>
|
|
171
|
-
<p className="text-sm">
|
|
172
|
-
{app?.updatedAt ? formatDate(app.updatedAt) : '-'}
|
|
173
|
-
</p>
|
|
174
|
-
</div>
|
|
175
|
-
</div>
|
|
176
|
-
{app?.metadata && Object.keys(app.metadata).length > 0 && (
|
|
177
|
-
<div>
|
|
178
|
-
<p className="text-muted-foreground mb-2 text-sm font-medium">
|
|
179
|
-
Metadata
|
|
180
|
-
</p>
|
|
181
|
-
<pre className="bg-muted overflow-auto rounded-md p-2 text-xs">
|
|
182
|
-
{JSON.stringify(app.metadata, null, 2)}
|
|
183
|
-
</pre>
|
|
184
|
-
</div>
|
|
185
|
-
)}
|
|
186
|
-
</CardContent>
|
|
187
|
-
</Card>
|
|
188
|
-
|
|
189
|
-
<Card>
|
|
190
|
-
<CardHeader>
|
|
191
|
-
<div className="flex items-center justify-between">
|
|
192
|
-
<div>
|
|
193
|
-
<CardTitle>API Keys</CardTitle>
|
|
194
|
-
<CardDescription>
|
|
195
|
-
Manage API keys for this application
|
|
196
|
-
</CardDescription>
|
|
197
|
-
</div>
|
|
198
|
-
<CreateApiKeyDialog
|
|
199
|
-
appId={appId}
|
|
200
|
-
onKeyCreated={fetchKeys}
|
|
201
|
-
isFirstKey={keys.length === 0 && !isLoadingKeys}
|
|
202
|
-
/>
|
|
203
|
-
</div>
|
|
204
|
-
</CardHeader>
|
|
205
|
-
<CardContent>
|
|
206
|
-
{keys.length === 0 && !isLoadingKeys ? (
|
|
207
|
-
<div className="py-6 text-center">
|
|
208
|
-
<p className="text-muted-foreground text-sm">
|
|
209
|
-
No API keys yet. Create one to start using the API.
|
|
210
|
-
</p>
|
|
211
|
-
</div>
|
|
212
|
-
) : (
|
|
213
|
-
<ApiKeysTable
|
|
214
|
-
keys={keys}
|
|
215
|
-
isLoading={isLoadingKeys}
|
|
216
|
-
appId={appId}
|
|
217
|
-
onRevoke={fetchKeys}
|
|
218
|
-
/>
|
|
219
|
-
)}
|
|
220
|
-
</CardContent>
|
|
221
|
-
</Card>
|
|
222
|
-
</div>
|
|
223
|
-
)
|
|
224
|
-
}
|