@shepai/cli 1.77.2-pr240.0ae5c6e → 1.77.2-pr240.88b3534
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/dist/src/presentation/web/app/api/agent-events/route.js +1 -1
- package/dist/src/presentation/web/components/common/control-center-drawer/drawer-view.d.ts.map +1 -1
- package/dist/src/presentation/web/components/common/control-center-drawer/drawer-view.js +4 -2
- package/dist/src/presentation/web/components/common/feature-drawer/feature-drawer.stories.d.ts.map +1 -1
- package/dist/src/presentation/web/components/common/feature-drawer/feature-drawer.stories.js +2 -0
- package/dist/src/presentation/web/components/common/feature-node/derive-feature-state.js +1 -1
- package/dist/src/presentation/web/components/common/feature-node/feature-node-state-config.d.ts +1 -1
- package/dist/src/presentation/web/components/common/feature-node/feature-node-state-config.d.ts.map +1 -1
- package/dist/src/presentation/web/components/common/feature-node/feature-node-state-config.js +2 -0
- package/dist/src/presentation/web/components/common/feature-node/feature-node.d.ts.map +1 -1
- package/dist/src/presentation/web/components/common/feature-node/feature-node.js +9 -5
- package/dist/src/presentation/web/components/common/feature-node/feature-node.stories.d.ts +1 -0
- package/dist/src/presentation/web/components/common/feature-node/feature-node.stories.d.ts.map +1 -1
- package/dist/src/presentation/web/components/common/feature-node/feature-node.stories.js +23 -0
- package/dist/tsconfig.build.tsbuildinfo +1 -1
- package/package.json +1 -1
- package/web/.next/BUILD_ID +1 -1
- package/web/.next/build-manifest.json +2 -2
- package/web/.next/cache/.previewinfo +1 -1
- package/web/.next/cache/.rscinfo +1 -1
- package/web/.next/cache/.tsbuildinfo +1 -1
- package/web/.next/cache/config.json +3 -3
- package/web/.next/fallback-build-manifest.json +2 -2
- package/web/.next/prerender-manifest.json +3 -3
- package/web/.next/server/app/(dashboard)/@drawer/create/page/server-reference-manifest.json +16 -16
- package/web/.next/server/app/(dashboard)/@drawer/create/page.js.nft.json +1 -1
- package/web/.next/server/app/(dashboard)/@drawer/create/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page/server-reference-manifest.json +19 -19
- package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page.js.nft.json +1 -1
- package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page/server-reference-manifest.json +14 -14
- package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page.js.nft.json +1 -1
- package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/(dashboard)/create/page/server-reference-manifest.json +16 -16
- package/web/.next/server/app/(dashboard)/create/page.js.nft.json +1 -1
- package/web/.next/server/app/(dashboard)/create/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/(dashboard)/feature/[featureId]/page/server-reference-manifest.json +19 -19
- package/web/.next/server/app/(dashboard)/feature/[featureId]/page.js.nft.json +1 -1
- package/web/.next/server/app/(dashboard)/feature/[featureId]/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/(dashboard)/page/server-reference-manifest.json +14 -14
- package/web/.next/server/app/(dashboard)/page.js.nft.json +1 -1
- package/web/.next/server/app/(dashboard)/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page/server-reference-manifest.json +14 -14
- package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page.js.nft.json +1 -1
- package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/_global-error.html +2 -2
- package/web/.next/server/app/_global-error.rsc +1 -1
- package/web/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
- package/web/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
- package/web/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
- package/web/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
- package/web/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
- package/web/.next/server/app/_not-found/page/server-reference-manifest.json +1 -1
- package/web/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/settings/page/server-reference-manifest.json +3 -3
- package/web/.next/server/app/settings/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/skills/page/server-reference-manifest.json +6 -6
- package/web/.next/server/app/skills/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/tools/page/server-reference-manifest.json +6 -6
- package/web/.next/server/app/tools/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/version/page/server-reference-manifest.json +1 -1
- package/web/.next/server/app/version/page_client-reference-manifest.js +1 -1
- package/web/.next/server/chunks/403f9_next_dist_esm_build_templates_app-route_4d623b8e.js +2 -2
- package/web/.next/server/chunks/403f9_next_dist_esm_build_templates_app-route_4d623b8e.js.map +1 -1
- package/web/.next/server/chunks/[root-of-the-server]__9191749c._.js +1 -1
- package/web/.next/server/chunks/ssr/744ca_web_components_common_control-center-drawer_create-drawer-client_tsx_5e26fc0a._.js +1 -1
- package/web/.next/server/chunks/ssr/744ca_web_components_common_control-center-drawer_create-drawer-client_tsx_5e26fc0a._.js.map +1 -1
- package/web/.next/server/chunks/ssr/8ba4b_server_app_(dashboard)_@drawer_repository_[repositoryId]_page_actions_da7eef33.js +1 -1
- package/web/.next/server/chunks/ssr/8ba4b_server_app_(dashboard)_@drawer_repository_[repositoryId]_page_actions_da7eef33.js.map +1 -1
- package/web/.next/server/chunks/ssr/8ba4b_server_app_(dashboard)_repository_[repositoryId]_page_actions_0a9251aa.js +1 -1
- package/web/.next/server/chunks/ssr/8ba4b_server_app_(dashboard)_repository_[repositoryId]_page_actions_0a9251aa.js.map +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__11033878._.js +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__11033878._.js.map +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__4be9a9bb._.js +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__aad040c0._.js +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__aad040c0._.js.map +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__aea328fd._.js +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__aea328fd._.js.map +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__c3c963c6._.js +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__c3c963c6._.js.map +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__f0d8d054._.js +2 -2
- package/web/.next/server/chunks/ssr/[root-of-the-server]__fd36b8bf._.js +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__fdc75809._.js +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__fdc75809._.js.map +1 -1
- package/web/.next/server/chunks/ssr/_0e9d6bf7._.js +1 -1
- package/web/.next/server/chunks/ssr/_0e9d6bf7._.js.map +1 -1
- package/web/.next/server/chunks/ssr/_16235e5e._.js +1 -1
- package/web/.next/server/chunks/ssr/{_e830422e._.js → _2557e3df._.js} +2 -2
- package/web/.next/server/chunks/ssr/{_e830422e._.js.map → _2557e3df._.js.map} +1 -1
- package/web/.next/server/chunks/ssr/_5428b384._.js +1 -1
- package/web/.next/server/chunks/ssr/_5428b384._.js.map +1 -1
- package/web/.next/server/chunks/ssr/_61351ed3._.js +1 -1
- package/web/.next/server/chunks/ssr/_61351ed3._.js.map +1 -1
- package/web/.next/server/chunks/ssr/_6645f218._.js +1 -1
- package/web/.next/server/chunks/ssr/_6645f218._.js.map +1 -1
- package/web/.next/server/chunks/ssr/_6e08ce21._.js +1 -1
- package/web/.next/server/chunks/ssr/_6e08ce21._.js.map +1 -1
- package/web/.next/server/chunks/ssr/_8400c8bb._.js +1 -1
- package/web/.next/server/chunks/ssr/_8400c8bb._.js.map +1 -1
- package/web/.next/server/chunks/ssr/b1a17_presentation_web_components_features_settings_settings-page-client_tsx_6ed9d5f8._.js +1 -1
- package/web/.next/server/chunks/ssr/b1a17_presentation_web_components_features_settings_settings-page-client_tsx_6ed9d5f8._.js.map +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_163038ba._.js +2 -2
- package/web/.next/server/chunks/ssr/src_presentation_web_163038ba._.js.map +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_30d7eeda._.js +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_30d7eeda._.js.map +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_459cb687._.js +2 -2
- package/web/.next/server/chunks/ssr/src_presentation_web_459cb687._.js.map +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_565a14f8._.js +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_565a14f8._.js.map +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_(dashboard)_page_actions_021a05f2.js +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_(dashboard)_page_actions_021a05f2.js.map +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_skills_page_actions_1fa8042e.js +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_skills_page_actions_1fa8042e.js.map +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_tools_page_actions_24684200.js +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_tools_page_actions_24684200.js.map +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_components_features_control-center_7ac3562e._.js +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_components_features_control-center_7ac3562e._.js.map +1 -1
- package/web/.next/server/pages/500.html +2 -2
- package/web/.next/server/server-reference-manifest.js +1 -1
- package/web/.next/server/server-reference-manifest.json +24 -24
- package/web/.next/standalone/src/presentation/web/.next/BUILD_ID +1 -1
- package/web/.next/standalone/src/presentation/web/.next/build-manifest.json +2 -2
- package/web/.next/standalone/src/presentation/web/.next/prerender-manifest.json +3 -3
- package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/@drawer/create/page/server-reference-manifest.json +16 -16
- package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/@drawer/create/page.js.nft.json +1 -1
- package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/@drawer/create/page_client-reference-manifest.js +1 -1
- package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page/server-reference-manifest.json +19 -19
- package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page.js.nft.json +1 -1
- package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page_client-reference-manifest.js +1 -1
- package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page/server-reference-manifest.json +14 -14
- package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page.js.nft.json +1 -1
- package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page_client-reference-manifest.js +1 -1
- package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/create/page/server-reference-manifest.json +16 -16
- package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/create/page.js.nft.json +1 -1
- package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/create/page_client-reference-manifest.js +1 -1
- package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/feature/[featureId]/page/server-reference-manifest.json +19 -19
- package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/feature/[featureId]/page.js.nft.json +1 -1
- package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/feature/[featureId]/page_client-reference-manifest.js +1 -1
- package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/page/server-reference-manifest.json +14 -14
- package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/page.js.nft.json +1 -1
- package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/page_client-reference-manifest.js +1 -1
- package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/repository/[repositoryId]/page/server-reference-manifest.json +14 -14
- package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/repository/[repositoryId]/page.js.nft.json +1 -1
- package/web/.next/standalone/src/presentation/web/.next/server/app/(dashboard)/repository/[repositoryId]/page_client-reference-manifest.js +1 -1
- package/web/.next/standalone/src/presentation/web/.next/server/app/_global-error.html +2 -2
- package/web/.next/standalone/src/presentation/web/.next/server/app/_global-error.rsc +1 -1
- package/web/.next/standalone/src/presentation/web/.next/server/app/_global-error.segments/__PAGE__.segment.rsc +1 -1
- package/web/.next/standalone/src/presentation/web/.next/server/app/_global-error.segments/_full.segment.rsc +1 -1
- package/web/.next/standalone/src/presentation/web/.next/server/app/_global-error.segments/_head.segment.rsc +1 -1
- package/web/.next/standalone/src/presentation/web/.next/server/app/_global-error.segments/_index.segment.rsc +1 -1
- package/web/.next/standalone/src/presentation/web/.next/server/app/_global-error.segments/_tree.segment.rsc +1 -1
- package/web/.next/standalone/src/presentation/web/.next/server/app/_not-found/page/server-reference-manifest.json +1 -1
- package/web/.next/standalone/src/presentation/web/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
- package/web/.next/standalone/src/presentation/web/.next/server/app/settings/page/server-reference-manifest.json +3 -3
- package/web/.next/standalone/src/presentation/web/.next/server/app/settings/page_client-reference-manifest.js +1 -1
- package/web/.next/standalone/src/presentation/web/.next/server/app/skills/page/server-reference-manifest.json +6 -6
- package/web/.next/standalone/src/presentation/web/.next/server/app/skills/page_client-reference-manifest.js +1 -1
- package/web/.next/standalone/src/presentation/web/.next/server/app/tools/page/server-reference-manifest.json +6 -6
- package/web/.next/standalone/src/presentation/web/.next/server/app/tools/page_client-reference-manifest.js +1 -1
- package/web/.next/standalone/src/presentation/web/.next/server/app/version/page/server-reference-manifest.json +1 -1
- package/web/.next/standalone/src/presentation/web/.next/server/app/version/page_client-reference-manifest.js +1 -1
- package/web/.next/standalone/src/presentation/web/.next/server/chunks/403f9_next_dist_esm_build_templates_app-route_4d623b8e.js +2 -2
- package/web/.next/standalone/src/presentation/web/.next/server/chunks/[root-of-the-server]__9191749c._.js +1 -1
- package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/744ca_web_components_common_control-center-drawer_create-drawer-client_tsx_5e26fc0a._.js +1 -1
- package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/8ba4b_server_app_(dashboard)_@drawer_repository_[repositoryId]_page_actions_da7eef33.js +1 -1
- package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/8ba4b_server_app_(dashboard)_repository_[repositoryId]_page_actions_0a9251aa.js +1 -1
- package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/[root-of-the-server]__11033878._.js +1 -1
- package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/[root-of-the-server]__4be9a9bb._.js +1 -1
- package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/[root-of-the-server]__aad040c0._.js +1 -1
- package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/[root-of-the-server]__aea328fd._.js +1 -1
- package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/[root-of-the-server]__c3c963c6._.js +1 -1
- package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/[root-of-the-server]__f0d8d054._.js +2 -2
- package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/[root-of-the-server]__fd36b8bf._.js +1 -1
- package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/[root-of-the-server]__fdc75809._.js +1 -1
- package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/_0e9d6bf7._.js +1 -1
- package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/_16235e5e._.js +1 -1
- package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/{_e830422e._.js → _2557e3df._.js} +2 -2
- package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/_5428b384._.js +1 -1
- package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/_61351ed3._.js +1 -1
- package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/_6645f218._.js +1 -1
- package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/_6e08ce21._.js +1 -1
- package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/_8400c8bb._.js +1 -1
- package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/b1a17_presentation_web_components_features_settings_settings-page-client_tsx_6ed9d5f8._.js +1 -1
- package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/src_presentation_web_163038ba._.js +2 -2
- package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/src_presentation_web_30d7eeda._.js +1 -1
- package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/src_presentation_web_459cb687._.js +2 -2
- package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/src_presentation_web_565a14f8._.js +1 -1
- package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_(dashboard)_page_actions_021a05f2.js +1 -1
- package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_skills_page_actions_1fa8042e.js +1 -1
- package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_tools_page_actions_24684200.js +1 -1
- package/web/.next/standalone/src/presentation/web/.next/server/chunks/ssr/src_presentation_web_components_features_control-center_7ac3562e._.js +1 -1
- package/web/.next/standalone/src/presentation/web/.next/server/pages/500.html +2 -2
- package/web/.next/standalone/src/presentation/web/.next/server/server-reference-manifest.js +1 -1
- package/web/.next/standalone/src/presentation/web/.next/server/server-reference-manifest.json +24 -24
- package/web/.next/standalone/src/presentation/web/app/api/agent-events/route.ts +1 -1
- package/web/.next/standalone/src/presentation/web/components/common/control-center-drawer/drawer-view.ts +10 -2
- package/web/.next/standalone/src/presentation/web/components/common/feature-drawer/feature-drawer.stories.tsx +2 -0
- package/web/.next/standalone/src/presentation/web/components/common/feature-node/derive-feature-state.ts +1 -1
- package/web/.next/standalone/src/presentation/web/components/common/feature-node/feature-node-state-config.ts +3 -0
- package/web/.next/standalone/src/presentation/web/components/common/feature-node/feature-node.stories.tsx +24 -0
- package/web/.next/standalone/src/presentation/web/components/common/feature-node/feature-node.tsx +8 -5
- package/web/.next/static/chunks/{711bad15861ca1d0.js → 0d1285175b320302.js} +1 -1
- package/web/.next/static/chunks/{7942efebc71dc363.js → 146c0a7697bc5a5c.js} +1 -1
- package/web/.next/static/chunks/{b3e546795810eb02.js → 16c1db929d7ed3c9.js} +1 -1
- package/web/.next/static/chunks/{429af5c5c4ef5df3.js → 18deef44e5e36e2b.js} +3 -3
- package/web/.next/static/chunks/{8039796f8c3e43ad.js → 25a8e4460619670a.js} +1 -1
- package/web/.next/static/chunks/{c24914717d72fb9c.js → 3f88555d42e6c0a5.js} +1 -1
- package/web/.next/static/chunks/{9c1b8cc32d9bc9ca.js → 5ea9cc400337eeae.js} +1 -1
- package/web/.next/static/chunks/{66c225e5e51ffb0b.js → 6205ca0c28401b31.js} +2 -2
- package/web/.next/static/chunks/{056b923048a700f3.js → f8e33bd4c6770071.js} +1 -1
- package/web/.next/static/chunks/{239fda2c7ded3d48.js → fe80866e23f343eb.js} +1 -1
- package/web/.next/trace +1 -1
- package/web/.next/trace-build +1 -1
- /package/web/.next/static/{RiARmAGwzi1nabSHZVwYY → x8A1bt8tX5vg9IpB1ksif}/_buildManifest.js +0 -0
- /package/web/.next/static/{RiARmAGwzi1nabSHZVwYY → x8A1bt8tX5vg9IpB1ksif}/_clientMiddlewareManifest.json +0 -0
- /package/web/.next/static/{RiARmAGwzi1nabSHZVwYY → x8A1bt8tX5vg9IpB1ksif}/_ssgManifest.js +0 -0
|
@@ -106,6 +106,16 @@ const allStatesData: FeatureNodeData[] = [
|
|
|
106
106
|
repositoryPath: '/home/user/my-repo',
|
|
107
107
|
branch: 'feat/data-pipeline',
|
|
108
108
|
},
|
|
109
|
+
{
|
|
110
|
+
name: 'Tech Plan Review',
|
|
111
|
+
description: 'Technical plan awaiting review',
|
|
112
|
+
featureId: '#bi4',
|
|
113
|
+
lifecycle: 'planning' as FeatureLifecyclePhase,
|
|
114
|
+
state: 'action-required',
|
|
115
|
+
progress: 25,
|
|
116
|
+
repositoryPath: '/home/user/my-repo',
|
|
117
|
+
branch: 'feat/tech-plan',
|
|
118
|
+
},
|
|
109
119
|
{
|
|
110
120
|
name: 'Merge Review',
|
|
111
121
|
description: 'PR ready for merge approval',
|
|
@@ -163,7 +173,9 @@ export const AllStates: Story = {
|
|
|
163
173
|
|
|
164
174
|
const allLifecycles: FeatureLifecyclePhase[] = [
|
|
165
175
|
'requirements',
|
|
176
|
+
'gathering',
|
|
166
177
|
'research',
|
|
178
|
+
'planning',
|
|
167
179
|
'implementation',
|
|
168
180
|
'review',
|
|
169
181
|
'deploy',
|
|
@@ -326,6 +338,18 @@ export const Creating: Story = {
|
|
|
326
338
|
render: (args) => <FeatureNodeCanvas data={args} />,
|
|
327
339
|
};
|
|
328
340
|
|
|
341
|
+
export const PlanningActionRequired: Story = {
|
|
342
|
+
args: {
|
|
343
|
+
name: 'Tech Plan Review',
|
|
344
|
+
description: 'Technical planning awaiting review',
|
|
345
|
+
featureId: '#bi4',
|
|
346
|
+
lifecycle: 'planning',
|
|
347
|
+
state: 'action-required',
|
|
348
|
+
progress: 30,
|
|
349
|
+
},
|
|
350
|
+
render: (args) => <FeatureNodeCanvas data={args} />,
|
|
351
|
+
};
|
|
352
|
+
|
|
329
353
|
export const MergeReviewActionRequired: Story = {
|
|
330
354
|
args: {
|
|
331
355
|
name: 'Merge Review',
|
package/web/.next/standalone/src/presentation/web/components/common/feature-node/feature-node.tsx
CHANGED
|
@@ -31,7 +31,8 @@ function AgentIcon({ agentType, className }: { agentType?: string; className?: s
|
|
|
31
31
|
function getBadgeIcon(data: FeatureNodeData): LucideIcon {
|
|
32
32
|
const config = featureNodeStateConfig[data.state];
|
|
33
33
|
if (data.state === 'action-required') {
|
|
34
|
-
if (data.lifecycle === 'requirements') return FileText;
|
|
34
|
+
if (data.lifecycle === 'requirements' || data.lifecycle === 'gathering') return FileText;
|
|
35
|
+
if (data.lifecycle === 'planning') return Wrench;
|
|
35
36
|
if (data.lifecycle === 'implementation') return Wrench;
|
|
36
37
|
if (data.lifecycle === 'review') return GitMerge;
|
|
37
38
|
}
|
|
@@ -44,13 +45,13 @@ function getActionRequiredBadgeClasses(data: FeatureNodeData): {
|
|
|
44
45
|
badgeBgClass: string;
|
|
45
46
|
} | null {
|
|
46
47
|
if (data.state !== 'action-required') return null;
|
|
47
|
-
if (data.lifecycle === 'implementation') {
|
|
48
|
+
if (data.lifecycle === 'planning' || data.lifecycle === 'implementation') {
|
|
48
49
|
return { badgeClass: 'text-indigo-700', badgeBgClass: 'bg-indigo-50' };
|
|
49
50
|
}
|
|
50
51
|
if (data.lifecycle === 'review') {
|
|
51
52
|
return { badgeClass: 'text-emerald-700', badgeBgClass: 'bg-emerald-50' };
|
|
52
53
|
}
|
|
53
|
-
return null; // requirements stays amber (default)
|
|
54
|
+
return null; // requirements/gathering stays amber (default)
|
|
54
55
|
}
|
|
55
56
|
|
|
56
57
|
function getBadgeText(data: FeatureNodeData): string {
|
|
@@ -65,8 +66,10 @@ function getBadgeText(data: FeatureNodeData): string {
|
|
|
65
66
|
case 'blocked':
|
|
66
67
|
return data.blockedBy ? `Waiting on ${data.blockedBy}` : 'Blocked';
|
|
67
68
|
case 'action-required':
|
|
68
|
-
if (data.lifecycle === 'requirements'
|
|
69
|
-
|
|
69
|
+
if (data.lifecycle === 'requirements' || data.lifecycle === 'gathering')
|
|
70
|
+
return 'Review Product Requirements';
|
|
71
|
+
if (data.lifecycle === 'planning') return 'Review Technical Planning';
|
|
72
|
+
if (data.lifecycle === 'implementation') return 'Review Implementation';
|
|
70
73
|
if (data.lifecycle === 'review') return 'Review Merge Request';
|
|
71
74
|
return config.label;
|
|
72
75
|
case 'error':
|
|
@@ -1 +1 @@
|
|
|
1
|
-
(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,93752,e=>{"use strict";let t=(0,e.i(3645).default)("code",[["path",{d:"m16 18 6-6-6-6",key:"eg8j8"}],["path",{d:"m8 6-6 6 6 6",key:"ppft3o"}]]);e.s(["default",()=>t])},41957,23405,e=>{"use strict";var t=e.i(20314),r=e.i(79054),a=e.i(87620),o=r.forwardRef((e,r)=>(0,t.jsx)(a.Primitive.label,{...e,ref:r,onMouseDown:t=>{t.target.closest("button, input, select, textarea")||(e.onMouseDown?.(t),!t.defaultPrevented&&t.detail>1&&t.preventDefault())}}));o.displayName="Label",e.s(["Label",()=>o,"Root",()=>o],27572);var s=e.i(27572),s=s,n=e.i(94237),i=e.i(31777);let l=(0,n.cva)("text-sm leading-none font-medium peer-disabled:cursor-not-allowed peer-disabled:opacity-70"),d=r.forwardRef(({className:e,...r},a)=>(0,t.jsx)(s.Root,{ref:a,className:(0,i.cn)(l(),e),...r}));function c(e){let t=r.useRef({value:e,previous:e});return r.useMemo(()=>(t.current.value!==e&&(t.current.previous=t.current.value,t.current.value=e),t.current.previous),[e])}d.displayName=s.Root.displayName,e.s(["Label",()=>d],41957),e.s(["usePrevious",()=>c],23405)},15203,e=>{"use strict";var t=e.i(20314),r=e.i(79054),a=e.i(31406),o=e.i(60112),s=e.i(21023);let n=(0,s.createServerReference)("4065a7aa48fa5eaed1ceef8e715f6fc7c1bf0d34ea",s.callServer,void 0,s.findSourceMapURL,"createFeature");var i=e.i(91891),i=i,l=e.i(3645);let d=(0,l.default)("file",[["path",{d:"M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z",key:"1oefj6"}],["path",{d:"M14 2v5a1 1 0 0 0 1 1h5",key:"wfsgrz"}]]);var c=e.i(16298),c=c;let u=(0,l.default)("image",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",ry:"2",key:"1m3agn"}],["circle",{cx:"9",cy:"9",r:"2",key:"af1f0g"}],["path",{d:"m21 15-3.086-3.086a2 2 0 0 0-2.828 0L6 21",key:"1xmnt7"}]]);var p=e.i(93752),p=p,f=e.i(69512),f=f;let m=(0,l.default)("chevrons-up-down",[["path",{d:"m7 15 5 5 5-5",key:"1hf1tw"}],["path",{d:"m7 9 5-5 5 5",key:"sgt6xg"}]]);var h=e.i(1012),h=h,x=e.i(31777),v=e.i(8361);e.i(1650);var g=e.i(11495),b=e.i(45811),j=e.i(35364),w=e.i(98127);function C({className:e,...r}){return(0,t.jsx)("textarea",{"data-slot":"textarea",className:(0,x.cn)("placeholder:text-muted-foreground selection:bg-primary selection:text-primary-foreground dark:bg-input/30 border-input field-sizing-content min-h-[80px] w-full rounded-md border bg-transparent px-3 py-2 text-base shadow-xs transition-[color,box-shadow] outline-none disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50 md:text-sm","focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px]","aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive",e),...r})}var k=e.i(41957),h=h;let y=(0,l.default)("minus",[["path",{d:"M5 12h14",key:"1ays0h"}]]);var N=e.i(5978),P=e.i(22528),R=e.i(91967),E=e.i(36589),S=e.i(23405),A=e.i(77624),F=e.i(85995),O=e.i(87620),D="Checkbox",[L,M]=(0,P.createContextScope)(D),[T,I]=L(D);function _(e){let{__scopeCheckbox:a,checked:o,children:s,defaultChecked:n,disabled:i,form:l,name:d,onCheckedChange:c,required:u,value:p="on",internal_do_not_use_render:f}=e,[m,h]=(0,E.useControllableState)({prop:o,defaultProp:n??!1,onChange:c,caller:D}),[x,v]=r.useState(null),[g,b]=r.useState(null),j=r.useRef(!1),w=!x||!!l||!!x.closest("form"),C={checked:m,disabled:i,setChecked:h,control:x,setControl:v,name:d,form:l,value:p,hasConsumerStoppedPropagationRef:j,required:u,defaultChecked:!q(n)&&n,isFormControl:w,bubbleInput:g,setBubbleInput:b};return(0,t.jsx)(T,{scope:a,...C,children:"function"==typeof f?f(C):s})}var B="CheckboxTrigger",z=r.forwardRef(({__scopeCheckbox:e,onKeyDown:a,onClick:o,...s},n)=>{let{control:i,value:l,disabled:d,checked:c,required:u,setControl:p,setChecked:f,hasConsumerStoppedPropagationRef:m,isFormControl:h,bubbleInput:x}=I(B,e),v=(0,N.useComposedRefs)(n,p),g=r.useRef(c);return r.useEffect(()=>{let e=i?.form;if(e){let t=()=>f(g.current);return e.addEventListener("reset",t),()=>e.removeEventListener("reset",t)}},[i,f]),(0,t.jsx)(O.Primitive.button,{type:"button",role:"checkbox","aria-checked":q(c)?"mixed":c,"aria-required":u,"data-state":V(c),"data-disabled":d?"":void 0,disabled:d,value:l,...s,ref:v,onKeyDown:(0,R.composeEventHandlers)(a,e=>{"Enter"===e.key&&e.preventDefault()}),onClick:(0,R.composeEventHandlers)(o,e=>{f(e=>!!q(e)||!e),x&&h&&(m.current=e.isPropagationStopped(),m.current||e.stopPropagation())})})});z.displayName=B;var H=r.forwardRef((e,r)=>{let{__scopeCheckbox:a,name:o,checked:s,defaultChecked:n,required:i,disabled:l,value:d,onCheckedChange:c,form:u,...p}=e;return(0,t.jsx)(_,{__scopeCheckbox:a,checked:s,defaultChecked:n,disabled:l,required:i,onCheckedChange:c,name:o,form:u,value:d,internal_do_not_use_render:({isFormControl:e})=>(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(z,{...p,ref:r,__scopeCheckbox:a}),e&&(0,t.jsx)(K,{__scopeCheckbox:a})]})})});H.displayName=D;var G="CheckboxIndicator",U=r.forwardRef((e,r)=>{let{__scopeCheckbox:a,forceMount:o,...s}=e,n=I(G,a);return(0,t.jsx)(F.Presence,{present:o||q(n.checked)||!0===n.checked,children:(0,t.jsx)(O.Primitive.span,{"data-state":V(n.checked),"data-disabled":n.disabled?"":void 0,...s,ref:r,style:{pointerEvents:"none",...e.style}})})});U.displayName=G;var $="CheckboxBubbleInput",K=r.forwardRef(({__scopeCheckbox:e,...a},o)=>{let{control:s,hasConsumerStoppedPropagationRef:n,checked:i,defaultChecked:l,required:d,disabled:c,name:u,value:p,form:f,bubbleInput:m,setBubbleInput:h}=I($,e),x=(0,N.useComposedRefs)(o,h),v=(0,S.usePrevious)(i),g=(0,A.useSize)(s);r.useEffect(()=>{if(!m)return;let e=Object.getOwnPropertyDescriptor(window.HTMLInputElement.prototype,"checked").set,t=!n.current;if(v!==i&&e){let r=new Event("click",{bubbles:t});m.indeterminate=q(i),e.call(m,!q(i)&&i),m.dispatchEvent(r)}},[m,v,i,n]);let b=r.useRef(!q(i)&&i);return(0,t.jsx)(O.Primitive.input,{type:"checkbox","aria-hidden":!0,defaultChecked:l??b.current,required:d,disabled:c,name:u,value:p,form:f,...a,tabIndex:-1,ref:x,style:{...a.style,...g,position:"absolute",pointerEvents:"none",opacity:0,margin:0,transform:"translateX(-100%)"}})});function q(e){return"indeterminate"===e}function V(e){return q(e)?"indeterminate":e?"checked":"unchecked"}K.displayName=$,e.s(["Checkbox",()=>H,"CheckboxIndicator",()=>U,"Indicator",()=>U,"Root",()=>H,"createCheckboxScope",()=>M,"unstable_BubbleInput",()=>K,"unstable_CheckboxBubbleInput",()=>K,"unstable_CheckboxProvider",()=>_,"unstable_CheckboxTrigger",()=>z,"unstable_Provider",()=>_,"unstable_Trigger",()=>z],57696);var W=e.i(57696),W=W;function Y({className:e,...r}){return(0,t.jsx)(W.Root,{"data-slot":"checkbox",className:(0,x.cn)("peer border-input dark:bg-input/30 data-[state=checked]:bg-primary data-[state=checked]:text-primary-foreground dark:data-[state=checked]:bg-primary data-[state=checked]:border-primary data-[state=indeterminate]:bg-primary data-[state=indeterminate]:text-primary-foreground data-[state=indeterminate]:border-primary focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive size-4 shrink-0 cursor-pointer rounded-[4px] border shadow-xs transition-shadow outline-none focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50",e),...r,children:(0,t.jsx)(W.Indicator,{"data-slot":"checkbox-indicator",className:"grid place-content-center text-current transition-none",children:"indeterminate"===r.checked?(0,t.jsx)(y,{className:"size-3.5"}):(0,t.jsx)(h.default,{className:"size-3.5"})})})}function X({id:e,label:r,description:a,checked:o,onCheckedChange:s,disabled:n}){return(0,t.jsxs)("div",{className:"flex items-start gap-2",children:[(0,t.jsx)(Y,{id:e,className:"mt-0.75",checked:o,onCheckedChange:e=>s(!0===e),disabled:n}),(0,t.jsxs)("div",{className:"flex flex-col gap-0.5",children:[(0,t.jsx)(k.Label,{htmlFor:e,className:"cursor-pointer text-sm font-medium",children:r}),a?(0,t.jsx)(k.Label,{htmlFor:e,className:"text-muted-foreground cursor-pointer text-xs font-normal",children:a}):null]})]})}function Z({label:e,description:r,parentAriaLabel:a,options:o,value:s,onValueChange:n,disabled:i}){let l=o.filter(e=>s[e.id]).length,d=l===o.length,c=l>0&&!d,u=`${e.toLowerCase().replace(/\s+/g,"-")}-group`;return(0,t.jsxs)("div",{className:"flex flex-col gap-3",children:[(0,t.jsxs)("div",{className:"flex items-start gap-2",children:[(0,t.jsx)(Y,{id:u,className:"mt-0.75",checked:c?"indeterminate":d,onCheckedChange:()=>{let e=l<o.length,t={};for(let r of o)t[r.id]=e;n(t)},disabled:i,"aria-label":a??`${e} select all`}),(0,t.jsxs)("div",{className:"flex flex-col gap-0.5",children:[(0,t.jsx)(k.Label,{htmlFor:u,className:"cursor-pointer text-sm font-medium",children:e}),r?(0,t.jsx)(k.Label,{htmlFor:u,className:"text-muted-foreground cursor-pointer text-xs font-normal",children:r}):null]})]}),(0,t.jsx)("div",{className:"flex flex-col gap-3 pl-6",children:o.map(e=>(0,t.jsx)(X,{id:e.id,label:e.label,description:e.description,checked:s[e.id]??!1,onCheckedChange:t=>{var r;return r=e.id,void n({...s,[r]:t})},disabled:i},e.id))})]})}var J=e.i(81846),Q=e.i(53532),ee=e.i(41687),et=e.i(56720),er=e.i(13123),ea=e.i(52740),eo=e.i(39979),es=e.i(86874),en=e.i(73772),ei=e.i(13044),el="Popover",[ed,ec]=(0,P.createContextScope)(el,[ea.createPopperScope]),eu=(0,ea.createPopperScope)(),[ep,ef]=ed(el),em=e=>{let{__scopePopover:a,children:o,open:s,defaultOpen:n,onOpenChange:i,modal:l=!1}=e,d=eu(a),c=r.useRef(null),[u,p]=r.useState(!1),[f,m]=(0,E.useControllableState)({prop:s,defaultProp:n??!1,onChange:i,caller:el});return(0,t.jsx)(ea.Root,{...d,children:(0,t.jsx)(ep,{scope:a,contentId:(0,er.useId)(),triggerRef:c,open:f,onOpenChange:m,onOpenToggle:r.useCallback(()=>m(e=>!e),[m]),hasCustomAnchor:u,onCustomAnchorAdd:r.useCallback(()=>p(!0),[]),onCustomAnchorRemove:r.useCallback(()=>p(!1),[]),modal:l,children:o})})};em.displayName=el;var eh="PopoverAnchor",ex=r.forwardRef((e,a)=>{let{__scopePopover:o,...s}=e,n=ef(eh,o),i=eu(o),{onCustomAnchorAdd:l,onCustomAnchorRemove:d}=n;return r.useEffect(()=>(l(),()=>d()),[l,d]),(0,t.jsx)(ea.Anchor,{...i,...s,ref:a})});ex.displayName=eh;var ev="PopoverTrigger",eg=r.forwardRef((e,r)=>{let{__scopePopover:a,...o}=e,s=ef(ev,a),n=eu(a),i=(0,N.useComposedRefs)(r,s.triggerRef),l=(0,t.jsx)(O.Primitive.button,{type:"button","aria-haspopup":"dialog","aria-expanded":s.open,"aria-controls":s.contentId,"data-state":eO(s.open),...o,ref:i,onClick:(0,R.composeEventHandlers)(e.onClick,s.onOpenToggle)});return s.hasCustomAnchor?l:(0,t.jsx)(ea.Anchor,{asChild:!0,...n,children:l})});eg.displayName=ev;var eb="PopoverPortal",[ej,ew]=ed(eb,{forceMount:void 0}),eC=e=>{let{__scopePopover:r,forceMount:a,children:o,container:s}=e,n=ef(eb,r);return(0,t.jsx)(ej,{scope:r,forceMount:a,children:(0,t.jsx)(F.Presence,{present:a||n.open,children:(0,t.jsx)(eo.Portal,{asChild:!0,container:s,children:o})})})};eC.displayName=eb;var ek="PopoverContent",ey=r.forwardRef((e,r)=>{let a=ew(ek,e.__scopePopover),{forceMount:o=a.forceMount,...s}=e,n=ef(ek,e.__scopePopover);return(0,t.jsx)(F.Presence,{present:o||n.open,children:n.modal?(0,t.jsx)(eP,{...s,ref:r}):(0,t.jsx)(eR,{...s,ref:r})})});ey.displayName=ek;var eN=(0,es.createSlot)("PopoverContent.RemoveScroll"),eP=r.forwardRef((e,a)=>{let o=ef(ek,e.__scopePopover),s=r.useRef(null),n=(0,N.useComposedRefs)(a,s),i=r.useRef(!1);return r.useEffect(()=>{let e=s.current;if(e)return(0,en.hideOthers)(e)},[]),(0,t.jsx)(ei.RemoveScroll,{as:eN,allowPinchZoom:!0,children:(0,t.jsx)(eE,{...e,ref:n,trapFocus:o.open,disableOutsidePointerEvents:!0,onCloseAutoFocus:(0,R.composeEventHandlers)(e.onCloseAutoFocus,e=>{e.preventDefault(),i.current||o.triggerRef.current?.focus()}),onPointerDownOutside:(0,R.composeEventHandlers)(e.onPointerDownOutside,e=>{let t=e.detail.originalEvent,r=0===t.button&&!0===t.ctrlKey;i.current=2===t.button||r},{checkForDefaultPrevented:!1}),onFocusOutside:(0,R.composeEventHandlers)(e.onFocusOutside,e=>e.preventDefault(),{checkForDefaultPrevented:!1})})})}),eR=r.forwardRef((e,a)=>{let o=ef(ek,e.__scopePopover),s=r.useRef(!1),n=r.useRef(!1);return(0,t.jsx)(eE,{...e,ref:a,trapFocus:!1,disableOutsidePointerEvents:!1,onCloseAutoFocus:t=>{e.onCloseAutoFocus?.(t),t.defaultPrevented||(s.current||o.triggerRef.current?.focus(),t.preventDefault()),s.current=!1,n.current=!1},onInteractOutside:t=>{e.onInteractOutside?.(t),t.defaultPrevented||(s.current=!0,"pointerdown"===t.detail.originalEvent.type&&(n.current=!0));let r=t.target;o.triggerRef.current?.contains(r)&&t.preventDefault(),"focusin"===t.detail.originalEvent.type&&n.current&&t.preventDefault()}})}),eE=r.forwardRef((e,r)=>{let{__scopePopover:a,trapFocus:o,onOpenAutoFocus:s,onCloseAutoFocus:n,disableOutsidePointerEvents:i,onEscapeKeyDown:l,onPointerDownOutside:d,onFocusOutside:c,onInteractOutside:u,...p}=e,f=ef(ek,a),m=eu(a);return(0,ee.useFocusGuards)(),(0,t.jsx)(et.FocusScope,{asChild:!0,loop:!0,trapped:o,onMountAutoFocus:s,onUnmountAutoFocus:n,children:(0,t.jsx)(Q.DismissableLayer,{asChild:!0,disableOutsidePointerEvents:i,onInteractOutside:u,onEscapeKeyDown:l,onPointerDownOutside:d,onFocusOutside:c,onDismiss:()=>f.onOpenChange(!1),children:(0,t.jsx)(ea.Content,{"data-state":eO(f.open),role:"dialog",id:f.contentId,...m,...p,ref:r,style:{...p.style,"--radix-popover-content-transform-origin":"var(--radix-popper-transform-origin)","--radix-popover-content-available-width":"var(--radix-popper-available-width)","--radix-popover-content-available-height":"var(--radix-popper-available-height)","--radix-popover-trigger-width":"var(--radix-popper-anchor-width)","--radix-popover-trigger-height":"var(--radix-popper-anchor-height)"}})})})}),eS="PopoverClose",eA=r.forwardRef((e,r)=>{let{__scopePopover:a,...o}=e,s=ef(eS,a);return(0,t.jsx)(O.Primitive.button,{type:"button",...o,ref:r,onClick:(0,R.composeEventHandlers)(e.onClick,()=>s.onOpenChange(!1))})});eA.displayName=eS;var eF=r.forwardRef((e,r)=>{let{__scopePopover:a,...o}=e,s=eu(a);return(0,t.jsx)(ea.Arrow,{...s,...o,ref:r})});function eO(e){return e?"open":"closed"}eF.displayName="PopoverArrow",e.s(["Anchor",()=>ex,"Arrow",()=>eF,"Close",()=>eA,"Content",()=>ey,"Popover",()=>em,"PopoverAnchor",()=>ex,"PopoverArrow",()=>eF,"PopoverClose",()=>eA,"PopoverContent",()=>ey,"PopoverPortal",()=>eC,"PopoverTrigger",()=>eg,"Portal",()=>eC,"Root",()=>em,"Trigger",()=>eg,"createPopoverScope",()=>ec],89920);var eD=e.i(89920),eD=eD;let eL=eD.Root,eM=eD.Trigger;eD.Anchor;let eT=r.forwardRef(({className:e,align:r="center",sideOffset:a=4,...o},s)=>(0,t.jsx)(eD.Portal,{children:(0,t.jsx)(eD.Content,{ref:s,align:r,sideOffset:a,className:(0,x.cn)("bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 w-72 rounded-md border p-4 shadow-md outline-none",e),...o})}));eT.displayName=eD.Content.displayName;var eI=e.i(30153);async function e_(){let e=await fetch("/api/dialog/pick-files",{method:"POST"});if(!e.ok)throw Error("Failed to open file dialog");let t=await e.json();return t.cancelled?null:t.files}let eB=[{id:"allowPrd",label:"PRD",description:"Auto-approve requirements move to planning."},{id:"allowPlan",label:"Plan",description:"Auto-approve planning move to implementation."},{id:"allowMerge",label:"Merge",description:"Auto-approve merge move to Done."}],ez={allowPrd:!1,allowPlan:!1,allowMerge:!1};function eH({open:e,onClose:a,onSubmit:o,repositoryPath:s,isSubmitting:n=!1,workflowDefaults:l,features:d,initialParentId:c}){let u=(0,v.useSoundAction)("create"),p=l?.approvalGates??ez,f=l?.push??!1,m=l?.openPr??!1,[h,x]=(0,r.useState)(""),[w,y]=(0,r.useState)([]),[N,P]=(0,r.useState)({...p}),[R,E]=(0,r.useState)(f),[S,A]=(0,r.useState)(m),[F,O]=(0,r.useState)(void 0),[D,L]=(0,r.useState)(!1);(0,r.useEffect)(()=>{l&&(P({...l.approvalGates}),E(l.push),A(l.openPr))},[l]),(0,r.useEffect)(()=>{e&&c&&O(c)},[e,c]);let M=(0,r.useCallback)(()=>{x(""),y([]),P({...p}),E(f),A(m),O(void 0),L(!1)},[p,f,m]),T=""!==h.trim()||w.length>0,{attemptClose:I}=(0,eI.useGuardedDrawerClose)({open:e,isDirty:T,onClose:a,onReset:M}),_=(0,r.useCallback)(e=>{e.preventDefault(),h.trim()&&(u.play(),o({description:h.trim(),attachments:w,repositoryPath:s,approvalGates:{allowPrd:N.allowPrd??!1,allowPlan:N.allowPlan??!1,allowMerge:N.allowMerge??!1},push:R||S,openPr:S,fast:D,...F?{parentId:F}:{}}),M())},[h,w,N,s,o,R,S,D,F,u,M]),B=(0,r.useCallback)(async()=>{try{let e=await e_();e&&y(t=>[...t,...e])}catch{}},[]),z=(0,r.useCallback)(e=>{y(t=>t.filter(t=>t.path!==e))},[]),H=d&&d.length>0;return(0,t.jsx)(g.BaseDrawer,{open:e,onClose:I,size:"md",modal:!1,dismissOnOutsideClick:!0,"data-testid":"feature-create-drawer",header:(0,t.jsxs)(t.Fragment,{children:[(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsx)("div",{className:"h-2.5 w-2.5 shrink-0 rounded-full bg-blue-500"}),(0,t.jsx)(b.DrawerTitle,{children:"NEW FEATURE"})]}),n?(0,t.jsx)(b.DrawerDescription,{asChild:!0,children:(0,t.jsx)("div",{children:(0,t.jsx)(J.Badge,{variant:"secondary",children:"Creating..."})})}):null]}),footer:(0,t.jsxs)("div",{className:"flex flex-row justify-end gap-2",children:[(0,t.jsx)(j.Button,{variant:"outline",onClick:I,disabled:n,children:"Cancel"}),(0,t.jsx)(j.Button,{type:"submit",form:"create-feature-form",disabled:!h.trim()||n,children:n?"Creating...":"+ Create Feature"})]}),children:(0,t.jsx)("div",{className:"overflow-y-auto p-4",children:(0,t.jsxs)("form",{id:"create-feature-form",onSubmit:_,className:"flex flex-col gap-4",children:[(0,t.jsxs)("div",{className:"flex flex-col gap-1.5",children:[(0,t.jsx)(k.Label,{htmlFor:"feature-description",className:"text-muted-foreground text-xs font-semibold tracking-wider",children:"DESCRIBE YOUR FEATURE"}),(0,t.jsx)(C,{id:"feature-description",placeholder:"e.g. Add GitHub OAuth login with callback handling and token refresh...",value:h,onChange:e=>x(e.target.value),rows:4,required:!0,disabled:n})]}),H?(0,t.jsxs)("div",{className:"flex flex-col gap-1.5",children:[(0,t.jsx)(k.Label,{htmlFor:"parent-feature",className:"text-muted-foreground text-xs font-semibold tracking-wider",children:"PARENT FEATURE"}),(0,t.jsx)(eG,{features:d,value:F,onChange:O,disabled:n})]}):null,(0,t.jsxs)("div",{className:"flex flex-col gap-1.5",children:[(0,t.jsx)(k.Label,{className:"text-muted-foreground text-xs font-semibold tracking-wider",children:"MODE"}),(0,t.jsx)(X,{id:"fast-mode",label:"Fast Mode",description:"Skip SDLC phases and implement directly from your prompt.",checked:D,onCheckedChange:L,disabled:n})]}),(0,t.jsxs)("div",{className:"flex flex-col gap-1.5",children:[(0,t.jsx)(k.Label,{className:"text-muted-foreground text-xs font-semibold tracking-wider",children:"APPROVE"}),(0,t.jsx)(Z,{label:"Autonomous Mode",description:"YOLO!",parentAriaLabel:"Auto approve all",options:eB,value:N,onValueChange:P,disabled:n})]}),(0,t.jsxs)("div",{className:"flex flex-col gap-1.5",children:[(0,t.jsx)(k.Label,{className:"text-muted-foreground text-xs font-semibold tracking-wider",children:"GIT"}),(0,t.jsxs)("div",{className:"flex flex-col gap-2",children:[(0,t.jsx)(X,{id:"push",label:"Push",description:"Push branch to remote after implementation.",checked:R||S,onCheckedChange:E,disabled:S||n}),(0,t.jsx)(X,{id:"open-pr",label:"Create PR",description:"Open a pull request after pushing.",checked:S,onCheckedChange:A,disabled:n})]})]}),(0,t.jsxs)("div",{className:"flex flex-col gap-2",children:[(0,t.jsxs)("div",{className:"flex items-center justify-between",children:[(0,t.jsxs)(k.Label,{className:"text-muted-foreground text-xs font-semibold tracking-wider",children:["ATTACHMENTS",w.length>0&&(0,t.jsxs)("span",{className:"text-muted-foreground/60 ml-1.5",children:["(",w.length,")"]})]}),(0,t.jsxs)(j.Button,{type:"button",variant:"outline",size:"xs",onClick:B,disabled:n,children:[(0,t.jsx)(i.default,{className:"size-3"}),"Add Files"]})]}),w.length>0&&(0,t.jsx)("div",{className:"flex flex-col gap-2",children:w.map(e=>(0,t.jsx)(eU,{file:e,onRemove:()=>z(e.path),disabled:n},e.path))})]})]})})})}function eG({features:e,value:a,onChange:o,disabled:s}){let[n,i]=(0,r.useState)(!1),[l,d]=(0,r.useState)(""),c=(0,r.useRef)(null),u=e.find(e=>e.id===a),p=l.trim()?e.filter(e=>e.name.toLowerCase().includes(l.toLowerCase())||e.id.toLowerCase().includes(l.toLowerCase())):e,f=(0,r.useCallback)(e=>{o(e),i(!1),d("")},[o]);return(0,r.useEffect)(()=>{n?setTimeout(()=>c.current?.focus(),0):d("")},[n]),(0,t.jsxs)(eL,{open:n,onOpenChange:i,children:[(0,t.jsx)(eM,{asChild:!0,children:(0,t.jsxs)("button",{id:"parent-feature",type:"button",role:"combobox","aria-expanded":n,"aria-label":"Parent Feature",disabled:s,"data-testid":"parent-feature-combobox",className:(0,x.cn)("border-input bg-background ring-offset-background focus:ring-ring flex h-9 w-full items-center justify-between rounded-md border px-3 py-2 text-sm focus:ring-2 focus:ring-offset-2 focus:outline-none disabled:cursor-not-allowed disabled:opacity-50",!u&&"text-muted-foreground"),children:[(0,t.jsx)("span",{className:"truncate",children:u?`${u.name} (${u.id.slice(0,8)})`:"Select parent feature..."}),(0,t.jsx)(m,{className:"ml-2 h-4 w-4 shrink-0 opacity-50"})]})}),(0,t.jsx)(eT,{className:"w-80 p-0",align:"start","data-testid":"parent-feature-combobox-content",children:(0,t.jsxs)("div",{className:"flex flex-col",children:[(0,t.jsx)("div",{className:"border-b p-2",children:(0,t.jsx)(w.Input,{ref:c,placeholder:"Search features...",value:l,onChange:e=>d(e.target.value),className:"h-8 border-0 p-0 text-sm shadow-none focus-visible:ring-0","data-testid":"parent-feature-search"})}),(0,t.jsxs)("div",{className:"max-h-48 overflow-y-auto py-1",role:"listbox","aria-label":"Features",children:[(0,t.jsxs)("button",{type:"button",role:"option","aria-selected":void 0===a,onClick:()=>f(void 0),className:(0,x.cn)("hover:bg-accent hover:text-accent-foreground flex w-full items-center gap-2 px-3 py-2 text-sm",void 0===a&&"bg-accent/50"),"data-testid":"parent-feature-option-none",children:[(0,t.jsx)(h.default,{className:(0,x.cn)("h-4 w-4 shrink-0",void 0!==a&&"invisible")}),(0,t.jsx)("span",{className:"text-muted-foreground italic",children:"No parent"})]}),0===p.length&&l?(0,t.jsx)("p",{className:"text-muted-foreground px-3 py-2 text-sm",children:"No features found."}):p.map(e=>(0,t.jsxs)("button",{type:"button",role:"option","aria-selected":a===e.id,onClick:()=>f(e.id),className:(0,x.cn)("hover:bg-accent hover:text-accent-foreground flex w-full items-center gap-2 px-3 py-2 text-sm",a===e.id&&"bg-accent/50"),"data-testid":`parent-feature-option-${e.id}`,children:[(0,t.jsx)(h.default,{className:(0,x.cn)("h-4 w-4 shrink-0",a!==e.id&&"invisible")}),(0,t.jsxs)("span",{className:"truncate",children:[e.name," ",(0,t.jsxs)("span",{className:"text-muted-foreground font-mono text-xs",children:["(",e.id.slice(0,8),")"]})]})]},e.id))]})]})})]})}function eU({file:e,onRemove:r,disabled:a}){var o,s,n;let i,l=(i=(o=e.name).lastIndexOf("."))>=0?o.slice(i).toLowerCase():"",m=(s=l,e$.has(s)?u:".pdf"===s?c.default:eK.has(s)?p.default:d),h=".pdf"===(n=l)?"bg-red-50 text-red-600":e$.has(n)?"bg-blue-50 text-blue-600":eK.has(n)?"bg-emerald-50 text-emerald-600":"bg-gray-50 text-gray-600";return(0,t.jsxs)("div",{className:"flex items-center gap-3 rounded-md border p-2",children:[(0,t.jsx)("div",{className:(0,x.cn)("flex h-8 w-8 shrink-0 items-center justify-center rounded",h),children:(0,t.jsx)(m,{className:"h-4 w-4"})}),(0,t.jsxs)("div",{className:"flex min-w-0 flex-1 flex-col",children:[(0,t.jsx)("span",{className:"truncate text-sm font-medium",children:e.name}),(0,t.jsx)("span",{className:"text-muted-foreground truncate text-xs",children:e.path}),(0,t.jsx)("span",{className:"text-muted-foreground text-xs",children:function(e){if(0===e)return"0 B";let t=Math.floor(Math.log(e)/Math.log(1024));return`${(e/Math.pow(1024,t)).toFixed(+(0!==t))} ${["B","KB","MB","GB"][t]}`}(e.size)})]}),(0,t.jsx)(j.Button,{type:"button",variant:"ghost",size:"icon-xs",onClick:r,disabled:a,"aria-label":`Remove ${e.name}`,children:(0,t.jsx)(f.default,{className:"h-3 w-3"})})]})}let e$=new Set([".png",".jpg",".jpeg",".gif",".svg",".webp",".ico",".bmp"]),eK=new Set([".ts",".tsx",".js",".jsx",".json",".yaml",".yml",".xml",".html",".css",".md"]);function eq({repositoryPath:e,initialParentId:s,features:i,workflowDefaults:l}){let d=(0,a.useRouter)(),[c,u]=(0,r.useState)(!1),p=(0,a.usePathname)().startsWith("/create"),f=!c&&p;(0,r.useEffect)(()=>{!p&&c&&u(!1)},[p,c]);let m=(0,r.useCallback)(()=>{d.push("/")},[d]),h=(0,r.useCallback)(e=>{u(!0),d.push("/"),n(e).then(t=>{t.error?o.toast.error(t.error):window.dispatchEvent(new CustomEvent("shep:feature-created",{detail:{featureId:t.feature.id,name:t.feature.name,description:t.feature.description,repositoryPath:t.feature.repositoryPath,parentId:e.parentId}}))}).catch(()=>{o.toast.error("Failed to create feature"),u(!1)})},[d]);return(0,t.jsx)(eH,{open:f,onClose:m,onSubmit:h,repositoryPath:e,features:i,workflowDefaults:l,initialParentId:s,isSubmitting:c})}e.s(["CreateDrawerClient",()=>eq],15203)}]);
|
|
1
|
+
(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,93752,e=>{"use strict";let t=(0,e.i(3645).default)("code",[["path",{d:"m16 18 6-6-6-6",key:"eg8j8"}],["path",{d:"m8 6-6 6 6 6",key:"ppft3o"}]]);e.s(["default",()=>t])},41957,23405,e=>{"use strict";var t=e.i(20314),r=e.i(79054),a=e.i(87620),o=r.forwardRef((e,r)=>(0,t.jsx)(a.Primitive.label,{...e,ref:r,onMouseDown:t=>{t.target.closest("button, input, select, textarea")||(e.onMouseDown?.(t),!t.defaultPrevented&&t.detail>1&&t.preventDefault())}}));o.displayName="Label",e.s(["Label",()=>o,"Root",()=>o],27572);var s=e.i(27572),s=s,n=e.i(94237),i=e.i(31777);let l=(0,n.cva)("text-sm leading-none font-medium peer-disabled:cursor-not-allowed peer-disabled:opacity-70"),d=r.forwardRef(({className:e,...r},a)=>(0,t.jsx)(s.Root,{ref:a,className:(0,i.cn)(l(),e),...r}));function c(e){let t=r.useRef({value:e,previous:e});return r.useMemo(()=>(t.current.value!==e&&(t.current.previous=t.current.value,t.current.value=e),t.current.previous),[e])}d.displayName=s.Root.displayName,e.s(["Label",()=>d],41957),e.s(["usePrevious",()=>c],23405)},15203,e=>{"use strict";var t=e.i(20314),r=e.i(79054),a=e.i(31406),o=e.i(60112),s=e.i(21023);let n=(0,s.createServerReference)("402b6bb8655aa1fb9e4d72937988f99c2b9bdf0899",s.callServer,void 0,s.findSourceMapURL,"createFeature");var i=e.i(91891),i=i,l=e.i(3645);let d=(0,l.default)("file",[["path",{d:"M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z",key:"1oefj6"}],["path",{d:"M14 2v5a1 1 0 0 0 1 1h5",key:"wfsgrz"}]]);var c=e.i(16298),c=c;let u=(0,l.default)("image",[["rect",{width:"18",height:"18",x:"3",y:"3",rx:"2",ry:"2",key:"1m3agn"}],["circle",{cx:"9",cy:"9",r:"2",key:"af1f0g"}],["path",{d:"m21 15-3.086-3.086a2 2 0 0 0-2.828 0L6 21",key:"1xmnt7"}]]);var p=e.i(93752),p=p,f=e.i(69512),f=f;let m=(0,l.default)("chevrons-up-down",[["path",{d:"m7 15 5 5 5-5",key:"1hf1tw"}],["path",{d:"m7 9 5-5 5 5",key:"sgt6xg"}]]);var h=e.i(1012),h=h,x=e.i(31777),v=e.i(8361);e.i(1650);var g=e.i(11495),b=e.i(45811),j=e.i(35364),w=e.i(98127);function C({className:e,...r}){return(0,t.jsx)("textarea",{"data-slot":"textarea",className:(0,x.cn)("placeholder:text-muted-foreground selection:bg-primary selection:text-primary-foreground dark:bg-input/30 border-input field-sizing-content min-h-[80px] w-full rounded-md border bg-transparent px-3 py-2 text-base shadow-xs transition-[color,box-shadow] outline-none disabled:pointer-events-none disabled:cursor-not-allowed disabled:opacity-50 md:text-sm","focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:ring-[3px]","aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive",e),...r})}var k=e.i(41957),h=h;let y=(0,l.default)("minus",[["path",{d:"M5 12h14",key:"1ays0h"}]]);var N=e.i(5978),P=e.i(22528),R=e.i(91967),E=e.i(36589),S=e.i(23405),A=e.i(77624),F=e.i(85995),O=e.i(87620),D="Checkbox",[L,M]=(0,P.createContextScope)(D),[T,I]=L(D);function _(e){let{__scopeCheckbox:a,checked:o,children:s,defaultChecked:n,disabled:i,form:l,name:d,onCheckedChange:c,required:u,value:p="on",internal_do_not_use_render:f}=e,[m,h]=(0,E.useControllableState)({prop:o,defaultProp:n??!1,onChange:c,caller:D}),[x,v]=r.useState(null),[g,b]=r.useState(null),j=r.useRef(!1),w=!x||!!l||!!x.closest("form"),C={checked:m,disabled:i,setChecked:h,control:x,setControl:v,name:d,form:l,value:p,hasConsumerStoppedPropagationRef:j,required:u,defaultChecked:!q(n)&&n,isFormControl:w,bubbleInput:g,setBubbleInput:b};return(0,t.jsx)(T,{scope:a,...C,children:"function"==typeof f?f(C):s})}var B="CheckboxTrigger",z=r.forwardRef(({__scopeCheckbox:e,onKeyDown:a,onClick:o,...s},n)=>{let{control:i,value:l,disabled:d,checked:c,required:u,setControl:p,setChecked:f,hasConsumerStoppedPropagationRef:m,isFormControl:h,bubbleInput:x}=I(B,e),v=(0,N.useComposedRefs)(n,p),g=r.useRef(c);return r.useEffect(()=>{let e=i?.form;if(e){let t=()=>f(g.current);return e.addEventListener("reset",t),()=>e.removeEventListener("reset",t)}},[i,f]),(0,t.jsx)(O.Primitive.button,{type:"button",role:"checkbox","aria-checked":q(c)?"mixed":c,"aria-required":u,"data-state":V(c),"data-disabled":d?"":void 0,disabled:d,value:l,...s,ref:v,onKeyDown:(0,R.composeEventHandlers)(a,e=>{"Enter"===e.key&&e.preventDefault()}),onClick:(0,R.composeEventHandlers)(o,e=>{f(e=>!!q(e)||!e),x&&h&&(m.current=e.isPropagationStopped(),m.current||e.stopPropagation())})})});z.displayName=B;var H=r.forwardRef((e,r)=>{let{__scopeCheckbox:a,name:o,checked:s,defaultChecked:n,required:i,disabled:l,value:d,onCheckedChange:c,form:u,...p}=e;return(0,t.jsx)(_,{__scopeCheckbox:a,checked:s,defaultChecked:n,disabled:l,required:i,onCheckedChange:c,name:o,form:u,value:d,internal_do_not_use_render:({isFormControl:e})=>(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(z,{...p,ref:r,__scopeCheckbox:a}),e&&(0,t.jsx)(K,{__scopeCheckbox:a})]})})});H.displayName=D;var G="CheckboxIndicator",U=r.forwardRef((e,r)=>{let{__scopeCheckbox:a,forceMount:o,...s}=e,n=I(G,a);return(0,t.jsx)(F.Presence,{present:o||q(n.checked)||!0===n.checked,children:(0,t.jsx)(O.Primitive.span,{"data-state":V(n.checked),"data-disabled":n.disabled?"":void 0,...s,ref:r,style:{pointerEvents:"none",...e.style}})})});U.displayName=G;var $="CheckboxBubbleInput",K=r.forwardRef(({__scopeCheckbox:e,...a},o)=>{let{control:s,hasConsumerStoppedPropagationRef:n,checked:i,defaultChecked:l,required:d,disabled:c,name:u,value:p,form:f,bubbleInput:m,setBubbleInput:h}=I($,e),x=(0,N.useComposedRefs)(o,h),v=(0,S.usePrevious)(i),g=(0,A.useSize)(s);r.useEffect(()=>{if(!m)return;let e=Object.getOwnPropertyDescriptor(window.HTMLInputElement.prototype,"checked").set,t=!n.current;if(v!==i&&e){let r=new Event("click",{bubbles:t});m.indeterminate=q(i),e.call(m,!q(i)&&i),m.dispatchEvent(r)}},[m,v,i,n]);let b=r.useRef(!q(i)&&i);return(0,t.jsx)(O.Primitive.input,{type:"checkbox","aria-hidden":!0,defaultChecked:l??b.current,required:d,disabled:c,name:u,value:p,form:f,...a,tabIndex:-1,ref:x,style:{...a.style,...g,position:"absolute",pointerEvents:"none",opacity:0,margin:0,transform:"translateX(-100%)"}})});function q(e){return"indeterminate"===e}function V(e){return q(e)?"indeterminate":e?"checked":"unchecked"}K.displayName=$,e.s(["Checkbox",()=>H,"CheckboxIndicator",()=>U,"Indicator",()=>U,"Root",()=>H,"createCheckboxScope",()=>M,"unstable_BubbleInput",()=>K,"unstable_CheckboxBubbleInput",()=>K,"unstable_CheckboxProvider",()=>_,"unstable_CheckboxTrigger",()=>z,"unstable_Provider",()=>_,"unstable_Trigger",()=>z],57696);var W=e.i(57696),W=W;function Y({className:e,...r}){return(0,t.jsx)(W.Root,{"data-slot":"checkbox",className:(0,x.cn)("peer border-input dark:bg-input/30 data-[state=checked]:bg-primary data-[state=checked]:text-primary-foreground dark:data-[state=checked]:bg-primary data-[state=checked]:border-primary data-[state=indeterminate]:bg-primary data-[state=indeterminate]:text-primary-foreground data-[state=indeterminate]:border-primary focus-visible:border-ring focus-visible:ring-ring/50 aria-invalid:ring-destructive/20 dark:aria-invalid:ring-destructive/40 aria-invalid:border-destructive size-4 shrink-0 cursor-pointer rounded-[4px] border shadow-xs transition-shadow outline-none focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50",e),...r,children:(0,t.jsx)(W.Indicator,{"data-slot":"checkbox-indicator",className:"grid place-content-center text-current transition-none",children:"indeterminate"===r.checked?(0,t.jsx)(y,{className:"size-3.5"}):(0,t.jsx)(h.default,{className:"size-3.5"})})})}function X({id:e,label:r,description:a,checked:o,onCheckedChange:s,disabled:n}){return(0,t.jsxs)("div",{className:"flex items-start gap-2",children:[(0,t.jsx)(Y,{id:e,className:"mt-0.75",checked:o,onCheckedChange:e=>s(!0===e),disabled:n}),(0,t.jsxs)("div",{className:"flex flex-col gap-0.5",children:[(0,t.jsx)(k.Label,{htmlFor:e,className:"cursor-pointer text-sm font-medium",children:r}),a?(0,t.jsx)(k.Label,{htmlFor:e,className:"text-muted-foreground cursor-pointer text-xs font-normal",children:a}):null]})]})}function Z({label:e,description:r,parentAriaLabel:a,options:o,value:s,onValueChange:n,disabled:i}){let l=o.filter(e=>s[e.id]).length,d=l===o.length,c=l>0&&!d,u=`${e.toLowerCase().replace(/\s+/g,"-")}-group`;return(0,t.jsxs)("div",{className:"flex flex-col gap-3",children:[(0,t.jsxs)("div",{className:"flex items-start gap-2",children:[(0,t.jsx)(Y,{id:u,className:"mt-0.75",checked:c?"indeterminate":d,onCheckedChange:()=>{let e=l<o.length,t={};for(let r of o)t[r.id]=e;n(t)},disabled:i,"aria-label":a??`${e} select all`}),(0,t.jsxs)("div",{className:"flex flex-col gap-0.5",children:[(0,t.jsx)(k.Label,{htmlFor:u,className:"cursor-pointer text-sm font-medium",children:e}),r?(0,t.jsx)(k.Label,{htmlFor:u,className:"text-muted-foreground cursor-pointer text-xs font-normal",children:r}):null]})]}),(0,t.jsx)("div",{className:"flex flex-col gap-3 pl-6",children:o.map(e=>(0,t.jsx)(X,{id:e.id,label:e.label,description:e.description,checked:s[e.id]??!1,onCheckedChange:t=>{var r;return r=e.id,void n({...s,[r]:t})},disabled:i},e.id))})]})}var J=e.i(81846),Q=e.i(53532),ee=e.i(41687),et=e.i(56720),er=e.i(13123),ea=e.i(52740),eo=e.i(39979),es=e.i(86874),en=e.i(73772),ei=e.i(13044),el="Popover",[ed,ec]=(0,P.createContextScope)(el,[ea.createPopperScope]),eu=(0,ea.createPopperScope)(),[ep,ef]=ed(el),em=e=>{let{__scopePopover:a,children:o,open:s,defaultOpen:n,onOpenChange:i,modal:l=!1}=e,d=eu(a),c=r.useRef(null),[u,p]=r.useState(!1),[f,m]=(0,E.useControllableState)({prop:s,defaultProp:n??!1,onChange:i,caller:el});return(0,t.jsx)(ea.Root,{...d,children:(0,t.jsx)(ep,{scope:a,contentId:(0,er.useId)(),triggerRef:c,open:f,onOpenChange:m,onOpenToggle:r.useCallback(()=>m(e=>!e),[m]),hasCustomAnchor:u,onCustomAnchorAdd:r.useCallback(()=>p(!0),[]),onCustomAnchorRemove:r.useCallback(()=>p(!1),[]),modal:l,children:o})})};em.displayName=el;var eh="PopoverAnchor",ex=r.forwardRef((e,a)=>{let{__scopePopover:o,...s}=e,n=ef(eh,o),i=eu(o),{onCustomAnchorAdd:l,onCustomAnchorRemove:d}=n;return r.useEffect(()=>(l(),()=>d()),[l,d]),(0,t.jsx)(ea.Anchor,{...i,...s,ref:a})});ex.displayName=eh;var ev="PopoverTrigger",eg=r.forwardRef((e,r)=>{let{__scopePopover:a,...o}=e,s=ef(ev,a),n=eu(a),i=(0,N.useComposedRefs)(r,s.triggerRef),l=(0,t.jsx)(O.Primitive.button,{type:"button","aria-haspopup":"dialog","aria-expanded":s.open,"aria-controls":s.contentId,"data-state":eO(s.open),...o,ref:i,onClick:(0,R.composeEventHandlers)(e.onClick,s.onOpenToggle)});return s.hasCustomAnchor?l:(0,t.jsx)(ea.Anchor,{asChild:!0,...n,children:l})});eg.displayName=ev;var eb="PopoverPortal",[ej,ew]=ed(eb,{forceMount:void 0}),eC=e=>{let{__scopePopover:r,forceMount:a,children:o,container:s}=e,n=ef(eb,r);return(0,t.jsx)(ej,{scope:r,forceMount:a,children:(0,t.jsx)(F.Presence,{present:a||n.open,children:(0,t.jsx)(eo.Portal,{asChild:!0,container:s,children:o})})})};eC.displayName=eb;var ek="PopoverContent",ey=r.forwardRef((e,r)=>{let a=ew(ek,e.__scopePopover),{forceMount:o=a.forceMount,...s}=e,n=ef(ek,e.__scopePopover);return(0,t.jsx)(F.Presence,{present:o||n.open,children:n.modal?(0,t.jsx)(eP,{...s,ref:r}):(0,t.jsx)(eR,{...s,ref:r})})});ey.displayName=ek;var eN=(0,es.createSlot)("PopoverContent.RemoveScroll"),eP=r.forwardRef((e,a)=>{let o=ef(ek,e.__scopePopover),s=r.useRef(null),n=(0,N.useComposedRefs)(a,s),i=r.useRef(!1);return r.useEffect(()=>{let e=s.current;if(e)return(0,en.hideOthers)(e)},[]),(0,t.jsx)(ei.RemoveScroll,{as:eN,allowPinchZoom:!0,children:(0,t.jsx)(eE,{...e,ref:n,trapFocus:o.open,disableOutsidePointerEvents:!0,onCloseAutoFocus:(0,R.composeEventHandlers)(e.onCloseAutoFocus,e=>{e.preventDefault(),i.current||o.triggerRef.current?.focus()}),onPointerDownOutside:(0,R.composeEventHandlers)(e.onPointerDownOutside,e=>{let t=e.detail.originalEvent,r=0===t.button&&!0===t.ctrlKey;i.current=2===t.button||r},{checkForDefaultPrevented:!1}),onFocusOutside:(0,R.composeEventHandlers)(e.onFocusOutside,e=>e.preventDefault(),{checkForDefaultPrevented:!1})})})}),eR=r.forwardRef((e,a)=>{let o=ef(ek,e.__scopePopover),s=r.useRef(!1),n=r.useRef(!1);return(0,t.jsx)(eE,{...e,ref:a,trapFocus:!1,disableOutsidePointerEvents:!1,onCloseAutoFocus:t=>{e.onCloseAutoFocus?.(t),t.defaultPrevented||(s.current||o.triggerRef.current?.focus(),t.preventDefault()),s.current=!1,n.current=!1},onInteractOutside:t=>{e.onInteractOutside?.(t),t.defaultPrevented||(s.current=!0,"pointerdown"===t.detail.originalEvent.type&&(n.current=!0));let r=t.target;o.triggerRef.current?.contains(r)&&t.preventDefault(),"focusin"===t.detail.originalEvent.type&&n.current&&t.preventDefault()}})}),eE=r.forwardRef((e,r)=>{let{__scopePopover:a,trapFocus:o,onOpenAutoFocus:s,onCloseAutoFocus:n,disableOutsidePointerEvents:i,onEscapeKeyDown:l,onPointerDownOutside:d,onFocusOutside:c,onInteractOutside:u,...p}=e,f=ef(ek,a),m=eu(a);return(0,ee.useFocusGuards)(),(0,t.jsx)(et.FocusScope,{asChild:!0,loop:!0,trapped:o,onMountAutoFocus:s,onUnmountAutoFocus:n,children:(0,t.jsx)(Q.DismissableLayer,{asChild:!0,disableOutsidePointerEvents:i,onInteractOutside:u,onEscapeKeyDown:l,onPointerDownOutside:d,onFocusOutside:c,onDismiss:()=>f.onOpenChange(!1),children:(0,t.jsx)(ea.Content,{"data-state":eO(f.open),role:"dialog",id:f.contentId,...m,...p,ref:r,style:{...p.style,"--radix-popover-content-transform-origin":"var(--radix-popper-transform-origin)","--radix-popover-content-available-width":"var(--radix-popper-available-width)","--radix-popover-content-available-height":"var(--radix-popper-available-height)","--radix-popover-trigger-width":"var(--radix-popper-anchor-width)","--radix-popover-trigger-height":"var(--radix-popper-anchor-height)"}})})})}),eS="PopoverClose",eA=r.forwardRef((e,r)=>{let{__scopePopover:a,...o}=e,s=ef(eS,a);return(0,t.jsx)(O.Primitive.button,{type:"button",...o,ref:r,onClick:(0,R.composeEventHandlers)(e.onClick,()=>s.onOpenChange(!1))})});eA.displayName=eS;var eF=r.forwardRef((e,r)=>{let{__scopePopover:a,...o}=e,s=eu(a);return(0,t.jsx)(ea.Arrow,{...s,...o,ref:r})});function eO(e){return e?"open":"closed"}eF.displayName="PopoverArrow",e.s(["Anchor",()=>ex,"Arrow",()=>eF,"Close",()=>eA,"Content",()=>ey,"Popover",()=>em,"PopoverAnchor",()=>ex,"PopoverArrow",()=>eF,"PopoverClose",()=>eA,"PopoverContent",()=>ey,"PopoverPortal",()=>eC,"PopoverTrigger",()=>eg,"Portal",()=>eC,"Root",()=>em,"Trigger",()=>eg,"createPopoverScope",()=>ec],89920);var eD=e.i(89920),eD=eD;let eL=eD.Root,eM=eD.Trigger;eD.Anchor;let eT=r.forwardRef(({className:e,align:r="center",sideOffset:a=4,...o},s)=>(0,t.jsx)(eD.Portal,{children:(0,t.jsx)(eD.Content,{ref:s,align:r,sideOffset:a,className:(0,x.cn)("bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 z-50 w-72 rounded-md border p-4 shadow-md outline-none",e),...o})}));eT.displayName=eD.Content.displayName;var eI=e.i(30153);async function e_(){let e=await fetch("/api/dialog/pick-files",{method:"POST"});if(!e.ok)throw Error("Failed to open file dialog");let t=await e.json();return t.cancelled?null:t.files}let eB=[{id:"allowPrd",label:"PRD",description:"Auto-approve requirements move to planning."},{id:"allowPlan",label:"Plan",description:"Auto-approve planning move to implementation."},{id:"allowMerge",label:"Merge",description:"Auto-approve merge move to Done."}],ez={allowPrd:!1,allowPlan:!1,allowMerge:!1};function eH({open:e,onClose:a,onSubmit:o,repositoryPath:s,isSubmitting:n=!1,workflowDefaults:l,features:d,initialParentId:c}){let u=(0,v.useSoundAction)("create"),p=l?.approvalGates??ez,f=l?.push??!1,m=l?.openPr??!1,[h,x]=(0,r.useState)(""),[w,y]=(0,r.useState)([]),[N,P]=(0,r.useState)({...p}),[R,E]=(0,r.useState)(f),[S,A]=(0,r.useState)(m),[F,O]=(0,r.useState)(void 0),[D,L]=(0,r.useState)(!1);(0,r.useEffect)(()=>{l&&(P({...l.approvalGates}),E(l.push),A(l.openPr))},[l]),(0,r.useEffect)(()=>{e&&c&&O(c)},[e,c]);let M=(0,r.useCallback)(()=>{x(""),y([]),P({...p}),E(f),A(m),O(void 0),L(!1)},[p,f,m]),T=""!==h.trim()||w.length>0,{attemptClose:I}=(0,eI.useGuardedDrawerClose)({open:e,isDirty:T,onClose:a,onReset:M}),_=(0,r.useCallback)(e=>{e.preventDefault(),h.trim()&&(u.play(),o({description:h.trim(),attachments:w,repositoryPath:s,approvalGates:{allowPrd:N.allowPrd??!1,allowPlan:N.allowPlan??!1,allowMerge:N.allowMerge??!1},push:R||S,openPr:S,fast:D,...F?{parentId:F}:{}}),M())},[h,w,N,s,o,R,S,D,F,u,M]),B=(0,r.useCallback)(async()=>{try{let e=await e_();e&&y(t=>[...t,...e])}catch{}},[]),z=(0,r.useCallback)(e=>{y(t=>t.filter(t=>t.path!==e))},[]),H=d&&d.length>0;return(0,t.jsx)(g.BaseDrawer,{open:e,onClose:I,size:"md",modal:!1,dismissOnOutsideClick:!0,"data-testid":"feature-create-drawer",header:(0,t.jsxs)(t.Fragment,{children:[(0,t.jsxs)("div",{className:"flex items-center gap-2",children:[(0,t.jsx)("div",{className:"h-2.5 w-2.5 shrink-0 rounded-full bg-blue-500"}),(0,t.jsx)(b.DrawerTitle,{children:"NEW FEATURE"})]}),n?(0,t.jsx)(b.DrawerDescription,{asChild:!0,children:(0,t.jsx)("div",{children:(0,t.jsx)(J.Badge,{variant:"secondary",children:"Creating..."})})}):null]}),footer:(0,t.jsxs)("div",{className:"flex flex-row justify-end gap-2",children:[(0,t.jsx)(j.Button,{variant:"outline",onClick:I,disabled:n,children:"Cancel"}),(0,t.jsx)(j.Button,{type:"submit",form:"create-feature-form",disabled:!h.trim()||n,children:n?"Creating...":"+ Create Feature"})]}),children:(0,t.jsx)("div",{className:"overflow-y-auto p-4",children:(0,t.jsxs)("form",{id:"create-feature-form",onSubmit:_,className:"flex flex-col gap-4",children:[(0,t.jsxs)("div",{className:"flex flex-col gap-1.5",children:[(0,t.jsx)(k.Label,{htmlFor:"feature-description",className:"text-muted-foreground text-xs font-semibold tracking-wider",children:"DESCRIBE YOUR FEATURE"}),(0,t.jsx)(C,{id:"feature-description",placeholder:"e.g. Add GitHub OAuth login with callback handling and token refresh...",value:h,onChange:e=>x(e.target.value),rows:4,required:!0,disabled:n})]}),H?(0,t.jsxs)("div",{className:"flex flex-col gap-1.5",children:[(0,t.jsx)(k.Label,{htmlFor:"parent-feature",className:"text-muted-foreground text-xs font-semibold tracking-wider",children:"PARENT FEATURE"}),(0,t.jsx)(eG,{features:d,value:F,onChange:O,disabled:n})]}):null,(0,t.jsxs)("div",{className:"flex flex-col gap-1.5",children:[(0,t.jsx)(k.Label,{className:"text-muted-foreground text-xs font-semibold tracking-wider",children:"MODE"}),(0,t.jsx)(X,{id:"fast-mode",label:"Fast Mode",description:"Skip SDLC phases and implement directly from your prompt.",checked:D,onCheckedChange:L,disabled:n})]}),(0,t.jsxs)("div",{className:"flex flex-col gap-1.5",children:[(0,t.jsx)(k.Label,{className:"text-muted-foreground text-xs font-semibold tracking-wider",children:"APPROVE"}),(0,t.jsx)(Z,{label:"Autonomous Mode",description:"YOLO!",parentAriaLabel:"Auto approve all",options:eB,value:N,onValueChange:P,disabled:n})]}),(0,t.jsxs)("div",{className:"flex flex-col gap-1.5",children:[(0,t.jsx)(k.Label,{className:"text-muted-foreground text-xs font-semibold tracking-wider",children:"GIT"}),(0,t.jsxs)("div",{className:"flex flex-col gap-2",children:[(0,t.jsx)(X,{id:"push",label:"Push",description:"Push branch to remote after implementation.",checked:R||S,onCheckedChange:E,disabled:S||n}),(0,t.jsx)(X,{id:"open-pr",label:"Create PR",description:"Open a pull request after pushing.",checked:S,onCheckedChange:A,disabled:n})]})]}),(0,t.jsxs)("div",{className:"flex flex-col gap-2",children:[(0,t.jsxs)("div",{className:"flex items-center justify-between",children:[(0,t.jsxs)(k.Label,{className:"text-muted-foreground text-xs font-semibold tracking-wider",children:["ATTACHMENTS",w.length>0&&(0,t.jsxs)("span",{className:"text-muted-foreground/60 ml-1.5",children:["(",w.length,")"]})]}),(0,t.jsxs)(j.Button,{type:"button",variant:"outline",size:"xs",onClick:B,disabled:n,children:[(0,t.jsx)(i.default,{className:"size-3"}),"Add Files"]})]}),w.length>0&&(0,t.jsx)("div",{className:"flex flex-col gap-2",children:w.map(e=>(0,t.jsx)(eU,{file:e,onRemove:()=>z(e.path),disabled:n},e.path))})]})]})})})}function eG({features:e,value:a,onChange:o,disabled:s}){let[n,i]=(0,r.useState)(!1),[l,d]=(0,r.useState)(""),c=(0,r.useRef)(null),u=e.find(e=>e.id===a),p=l.trim()?e.filter(e=>e.name.toLowerCase().includes(l.toLowerCase())||e.id.toLowerCase().includes(l.toLowerCase())):e,f=(0,r.useCallback)(e=>{o(e),i(!1),d("")},[o]);return(0,r.useEffect)(()=>{n?setTimeout(()=>c.current?.focus(),0):d("")},[n]),(0,t.jsxs)(eL,{open:n,onOpenChange:i,children:[(0,t.jsx)(eM,{asChild:!0,children:(0,t.jsxs)("button",{id:"parent-feature",type:"button",role:"combobox","aria-expanded":n,"aria-label":"Parent Feature",disabled:s,"data-testid":"parent-feature-combobox",className:(0,x.cn)("border-input bg-background ring-offset-background focus:ring-ring flex h-9 w-full items-center justify-between rounded-md border px-3 py-2 text-sm focus:ring-2 focus:ring-offset-2 focus:outline-none disabled:cursor-not-allowed disabled:opacity-50",!u&&"text-muted-foreground"),children:[(0,t.jsx)("span",{className:"truncate",children:u?`${u.name} (${u.id.slice(0,8)})`:"Select parent feature..."}),(0,t.jsx)(m,{className:"ml-2 h-4 w-4 shrink-0 opacity-50"})]})}),(0,t.jsx)(eT,{className:"w-80 p-0",align:"start","data-testid":"parent-feature-combobox-content",children:(0,t.jsxs)("div",{className:"flex flex-col",children:[(0,t.jsx)("div",{className:"border-b p-2",children:(0,t.jsx)(w.Input,{ref:c,placeholder:"Search features...",value:l,onChange:e=>d(e.target.value),className:"h-8 border-0 p-0 text-sm shadow-none focus-visible:ring-0","data-testid":"parent-feature-search"})}),(0,t.jsxs)("div",{className:"max-h-48 overflow-y-auto py-1",role:"listbox","aria-label":"Features",children:[(0,t.jsxs)("button",{type:"button",role:"option","aria-selected":void 0===a,onClick:()=>f(void 0),className:(0,x.cn)("hover:bg-accent hover:text-accent-foreground flex w-full items-center gap-2 px-3 py-2 text-sm",void 0===a&&"bg-accent/50"),"data-testid":"parent-feature-option-none",children:[(0,t.jsx)(h.default,{className:(0,x.cn)("h-4 w-4 shrink-0",void 0!==a&&"invisible")}),(0,t.jsx)("span",{className:"text-muted-foreground italic",children:"No parent"})]}),0===p.length&&l?(0,t.jsx)("p",{className:"text-muted-foreground px-3 py-2 text-sm",children:"No features found."}):p.map(e=>(0,t.jsxs)("button",{type:"button",role:"option","aria-selected":a===e.id,onClick:()=>f(e.id),className:(0,x.cn)("hover:bg-accent hover:text-accent-foreground flex w-full items-center gap-2 px-3 py-2 text-sm",a===e.id&&"bg-accent/50"),"data-testid":`parent-feature-option-${e.id}`,children:[(0,t.jsx)(h.default,{className:(0,x.cn)("h-4 w-4 shrink-0",a!==e.id&&"invisible")}),(0,t.jsxs)("span",{className:"truncate",children:[e.name," ",(0,t.jsxs)("span",{className:"text-muted-foreground font-mono text-xs",children:["(",e.id.slice(0,8),")"]})]})]},e.id))]})]})})]})}function eU({file:e,onRemove:r,disabled:a}){var o,s,n;let i,l=(i=(o=e.name).lastIndexOf("."))>=0?o.slice(i).toLowerCase():"",m=(s=l,e$.has(s)?u:".pdf"===s?c.default:eK.has(s)?p.default:d),h=".pdf"===(n=l)?"bg-red-50 text-red-600":e$.has(n)?"bg-blue-50 text-blue-600":eK.has(n)?"bg-emerald-50 text-emerald-600":"bg-gray-50 text-gray-600";return(0,t.jsxs)("div",{className:"flex items-center gap-3 rounded-md border p-2",children:[(0,t.jsx)("div",{className:(0,x.cn)("flex h-8 w-8 shrink-0 items-center justify-center rounded",h),children:(0,t.jsx)(m,{className:"h-4 w-4"})}),(0,t.jsxs)("div",{className:"flex min-w-0 flex-1 flex-col",children:[(0,t.jsx)("span",{className:"truncate text-sm font-medium",children:e.name}),(0,t.jsx)("span",{className:"text-muted-foreground truncate text-xs",children:e.path}),(0,t.jsx)("span",{className:"text-muted-foreground text-xs",children:function(e){if(0===e)return"0 B";let t=Math.floor(Math.log(e)/Math.log(1024));return`${(e/Math.pow(1024,t)).toFixed(+(0!==t))} ${["B","KB","MB","GB"][t]}`}(e.size)})]}),(0,t.jsx)(j.Button,{type:"button",variant:"ghost",size:"icon-xs",onClick:r,disabled:a,"aria-label":`Remove ${e.name}`,children:(0,t.jsx)(f.default,{className:"h-3 w-3"})})]})}let e$=new Set([".png",".jpg",".jpeg",".gif",".svg",".webp",".ico",".bmp"]),eK=new Set([".ts",".tsx",".js",".jsx",".json",".yaml",".yml",".xml",".html",".css",".md"]);function eq({repositoryPath:e,initialParentId:s,features:i,workflowDefaults:l}){let d=(0,a.useRouter)(),[c,u]=(0,r.useState)(!1),p=(0,a.usePathname)().startsWith("/create"),f=!c&&p;(0,r.useEffect)(()=>{!p&&c&&u(!1)},[p,c]);let m=(0,r.useCallback)(()=>{d.push("/")},[d]),h=(0,r.useCallback)(e=>{u(!0),d.push("/"),n(e).then(t=>{t.error?o.toast.error(t.error):window.dispatchEvent(new CustomEvent("shep:feature-created",{detail:{featureId:t.feature.id,name:t.feature.name,description:t.feature.description,repositoryPath:t.feature.repositoryPath,parentId:e.parentId}}))}).catch(()=>{o.toast.error("Failed to create feature"),u(!1)})},[d]);return(0,t.jsx)(eH,{open:f,onClose:m,onSubmit:h,repositoryPath:e,features:i,workflowDefaults:l,initialParentId:s,isSubmitting:c})}e.s(["CreateDrawerClient",()=>eq],15203)}]);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,24270,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"warnOnce",{enumerable:!0,get:function(){return n}});let n=e=>{}},66033,e=>{"use strict";var t=e.i(79054);e.i(20314);var r=t.createContext(void 0);function n(e){let n=t.useContext(r);return e||n||"ltr"}e.s(["useDirection",()=>n])},80764,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"useMergedRef",{enumerable:!0,get:function(){return o}});let n=e.r(79054);function o(e,t){let r=(0,n.useRef)(null),o=(0,n.useRef)(null);return(0,n.useCallback)(n=>{if(null===n){let e=r.current;e&&(r.current=null,e());let t=o.current;t&&(o.current=null,t())}else e&&(r.current=u(e,n)),t&&(o.current=u(t,n))},[e,t])}function u(e,t){if("function"!=typeof e)return e.current=t,()=>{e.current=null};{let r=e(t);return"function"==typeof r?r:()=>e(null)}}("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},27069,e=>{"use strict";function t(e,[t,r]){return Math.min(r,Math.max(t,e))}e.s(["clamp",()=>t])},12103,e=>{"use strict";let t=(0,e.i(3645).default)("puzzle",[["path",{d:"M15.39 4.39a1 1 0 0 0 1.68-.474 2.5 2.5 0 1 1 3.014 3.015 1 1 0 0 0-.474 1.68l1.683 1.682a2.414 2.414 0 0 1 0 3.414L19.61 15.39a1 1 0 0 1-1.68-.474 2.5 2.5 0 1 0-3.014 3.015 1 1 0 0 1 .474 1.68l-1.683 1.682a2.414 2.414 0 0 1-3.414 0L8.61 19.61a1 1 0 0 0-1.68.474 2.5 2.5 0 1 1-3.014-3.015 1 1 0 0 0 .474-1.68l-1.683-1.682a2.414 2.414 0 0 1 0-3.414L4.39 8.61a1 1 0 0 1 1.68.474 2.5 2.5 0 1 0 3.014-3.015 1 1 0 0 1-.474-1.68l1.683-1.682a2.414 2.414 0 0 1 3.414 0z",key:"w46dr5"}]]);e.s(["Puzzle",()=>t],12103)},81975,e=>{"use strict";let t=(0,e.i(3645).default)("wrench",[["path",{d:"M14.7 6.3a1 1 0 0 0 0 1.4l1.6 1.6a1 1 0 0 0 1.4 0l3.106-3.105c.32-.322.863-.22.983.218a6 6 0 0 1-8.259 7.057l-7.91 7.91a1 1 0 0 1-2.999-3l7.91-7.91a6 6 0 0 1 7.057-8.259c.438.12.54.662.219.984z",key:"1ngwbx"}]]);e.s(["Wrench",()=>t],81975)},80986,e=>{"use strict";let t=(0,e.i(3645).default)("circle-check",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"m9 12 2 2 4-4",key:"dzmm74"}]]);e.s(["default",()=>t])},3214,e=>{"use strict";var t=e.i(91891);e.s(["Plus",()=>t.default])},39200,e=>{"use strict";let t=(0,e.i(3645).default)("settings",[["path",{d:"M9.671 4.136a2.34 2.34 0 0 1 4.659 0 2.34 2.34 0 0 0 3.319 1.915 2.34 2.34 0 0 1 2.33 4.033 2.34 2.34 0 0 0 0 3.831 2.34 2.34 0 0 1-2.33 4.033 2.34 2.34 0 0 0-3.319 1.915 2.34 2.34 0 0 1-4.659 0 2.34 2.34 0 0 0-3.32-1.915 2.34 2.34 0 0 1-2.33-4.033 2.34 2.34 0 0 0 0-3.831A2.34 2.34 0 0 1 6.35 6.051a2.34 2.34 0 0 0 3.319-1.915",key:"1i5ecw"}],["circle",{cx:"12",cy:"12",r:"3",key:"1v7zrd"}]]);e.s(["Settings",()=>t],39200)},10942,e=>{"use strict";var t=e.i(80986);e.s(["CircleCheck",()=>t.default])},39443,e=>{"use strict";var t=e.i(20314),r=e.i(79054);let n=(0,e.i(18354).createLogger)("[SSE]");function o(e,t,r,n){if("u"<typeof EventSource)return()=>{};let o=null,u=!1,i=1e3,a=null,l=null;return!function s(){u||(o=new EventSource(e?`/api/agent-events?runId=${encodeURIComponent(e)}`:"/api/agent-events"),n("connecting"),o.onopen=()=>{n("connected"),l=setTimeout(()=>{l=null,i=1e3},5e3)},o.onerror=()=>{o?.close(),o=null,n("disconnected"),null!==l&&(clearTimeout(l),l=null);let e=i;i=Math.min(2*e,3e4),a=setTimeout(()=>{a=null,s()},e)},o.addEventListener("notification",e=>{let n=JSON.parse(e.data);t(e=>{let t=[...e,n];return t.length>500?t.slice(-250):t}),r(n)}))}(),()=>{u=!0,null!==a&&(clearTimeout(a),a=null),null!==l&&(clearTimeout(l),l=null),o&&(o.close(),o=null)}}let u=(0,r.createContext)(null);function i({children:e,runId:i}){let{events:a,lastEvent:l,connectionStatus:s}=function(e){let[t,u]=(0,r.useState)([]),[i,a]=(0,r.useState)(null),[l,s]=(0,r.useState)("disconnected"),c=e?.runId,f=(0,r.useRef)(null),d=(0,r.useCallback)(e=>{let t=e.data;if(t&&"object"==typeof t)if("notification"===t.type){let e=t.data;n.debug("event received:",e.eventType,e),u(t=>{let r=[...t,e];return r.length>500?r.slice(-250):r}),a(e)}else"status"===t.type&&s(t.status)},[]);return(0,r.useEffect)(()=>{let e="u">typeof location&&new URLSearchParams(location.search).has("sse");if(!navigator.serviceWorker||e)return o(c,u,a,s);let t=!1,r={current:void 0};function n(e){t||(f.current=e,e.postMessage({type:"subscribe",runId:c}),s("connecting"))}function i(){if(t)return;let e=navigator.serviceWorker.controller;e&&(f.current=e,e.postMessage({type:"subscribe",runId:c}),s("connecting"))}return navigator.serviceWorker.addEventListener("message",d),navigator.serviceWorker.addEventListener("controllerchange",i),navigator.serviceWorker.register("/agent-events-sw.js",{scope:"/"}).then(e=>{if(t)return;let i=e.active??e.installing??e.waiting;if(!i){r.current=o(c,u,a,s);return}if("activated"===i.state)n(i);else{let e=()=>{"activated"===i.state&&(i.removeEventListener("statechange",e),n(i))};i.addEventListener("statechange",e)}}).catch(()=>{t||(r.current=o(c,u,a,s))}),()=>{t=!0,navigator.serviceWorker.removeEventListener("message",d),navigator.serviceWorker.removeEventListener("controllerchange",i),f.current?.postMessage({type:"unsubscribe"}),f.current=null,r.current?.()}},[c,d]),{events:t,lastEvent:i,connectionStatus:l}}({runId:i}),c=(0,r.useMemo)(()=>({events:a,lastEvent:l,connectionStatus:s}),[a,l,s]);return(0,t.jsx)(u.Provider,{value:c,children:e})}function a(){let e=(0,r.useContext)(u);if(!e)throw Error("useAgentEventsContext must be used within an <AgentEventsProvider>");return e}e.s(["AgentEventsProvider",()=>i,"useAgentEventsContext",()=>a],39443)},78521,e=>{"use strict";var t=e.i(21023);let r=(0,t.createServerReference)("00ac95019b9a5f8d8c1c2056818dc0ba331ef72a90",t.callServer,void 0,t.findSourceMapURL,"pickFolder");async function n(){let e=await r();if(e.error)throw Error(e.error);return e.path}e.s(["pickFolder",()=>n],78521)},5147,e=>{"use strict";var t=e.i(20314),r=e.i(79054);let n={"action-required":"action-needed",running:"in-progress",done:"done",blocked:"in-progress",error:"in-progress",creating:null};function o(e){return n[e]}let u=(0,r.createContext)(null);function i({children:e}){let[n,o]=(0,r.useState)([]),i=(0,r.useMemo)(()=>({features:n,setFeatures:o}),[n]);return(0,t.jsx)(u.Provider,{value:i,children:e})}function a(){let e=(0,r.useContext)(u);if(!e)throw Error("useSidebarFeaturesContext must be used within a <SidebarFeaturesProvider>");return e}e.s(["SidebarFeaturesProvider",()=>i,"mapNodeStateToSidebarStatus",()=>o,"useSidebarFeaturesContext",()=>a])},76314,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={assign:function(){return l},searchParamsToUrlQuery:function(){return u},urlQueryToSearchParams:function(){return a}};for(var o in n)Object.defineProperty(r,o,{enumerable:!0,get:n[o]});function u(e){let t={};for(let[r,n]of e.entries()){let e=t[r];void 0===e?t[r]=n:Array.isArray(e)?e.push(n):t[r]=[e,n]}return t}function i(e){return"string"==typeof e?e:("number"!=typeof e||isNaN(e))&&"boolean"!=typeof e?"":String(e)}function a(e){let t=new URLSearchParams;for(let[r,n]of Object.entries(e))if(Array.isArray(n))for(let e of n)t.append(r,i(e));else t.set(r,i(n));return t}function l(e,...t){for(let r of t){for(let t of r.keys())e.delete(t);for(let[t,n]of r.entries())e.append(t,n)}return e}},95889,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={formatUrl:function(){return a},formatWithValidation:function(){return s},urlObjectKeys:function(){return l}};for(var o in n)Object.defineProperty(r,o,{enumerable:!0,get:n[o]});let u=e.r(44066)._(e.r(76314)),i=/https?|ftp|gopher|file/;function a(e){let{auth:t,hostname:r}=e,n=e.protocol||"",o=e.pathname||"",a=e.hash||"",l=e.query||"",s=!1;t=t?encodeURIComponent(t).replace(/%3A/i,":")+"@":"",e.host?s=t+e.host:r&&(s=t+(~r.indexOf(":")?`[${r}]`:r),e.port&&(s+=":"+e.port)),l&&"object"==typeof l&&(l=String(u.urlQueryToSearchParams(l)));let c=e.search||l&&`?${l}`||"";return n&&!n.endsWith(":")&&(n+=":"),e.slashes||(!n||i.test(n))&&!1!==s?(s="//"+(s||""),o&&"/"!==o[0]&&(o="/"+o)):s||(s=""),a&&"#"!==a[0]&&(a="#"+a),c&&"?"!==c[0]&&(c="?"+c),o=o.replace(/[?#]/g,encodeURIComponent),c=c.replace("#","%23"),`${n}${s}${o}${c}${a}`}let l=["auth","hash","host","hostname","href","path","pathname","port","protocol","query","search","slashes"];function s(e){return a(e)}},58464,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={DecodeError:function(){return y},MiddlewareNotFoundError:function(){return E},MissingStaticPage:function(){return P},NormalizeError:function(){return m},PageNotFoundError:function(){return b},SP:function(){return g},ST:function(){return v},WEB_VITALS:function(){return u},execOnce:function(){return i},getDisplayName:function(){return f},getLocationOrigin:function(){return s},getURL:function(){return c},isAbsoluteUrl:function(){return l},isResSent:function(){return d},loadGetInitialProps:function(){return h},normalizeRepeatedSlashes:function(){return p},stringifyError:function(){return S}};for(var o in n)Object.defineProperty(r,o,{enumerable:!0,get:n[o]});let u=["CLS","FCP","FID","INP","LCP","TTFB"];function i(e){let t,r=!1;return(...n)=>(r||(r=!0,t=e(...n)),t)}let a=/^[a-zA-Z][a-zA-Z\d+\-.]*?:/,l=e=>a.test(e);function s(){let{protocol:e,hostname:t,port:r}=window.location;return`${e}//${t}${r?":"+r:""}`}function c(){let{href:e}=window.location,t=s();return e.substring(t.length)}function f(e){return"string"==typeof e?e:e.displayName||e.name||"Unknown"}function d(e){return e.finished||e.headersSent}function p(e){let t=e.split("?");return t[0].replace(/\\/g,"/").replace(/\/\/+/g,"/")+(t[1]?`?${t.slice(1).join("?")}`:"")}async function h(e,t){let r=t.res||t.ctx&&t.ctx.res;if(!e.getInitialProps)return t.ctx&&t.Component?{pageProps:await h(t.Component,t.ctx)}:{};let n=await e.getInitialProps(t);if(r&&d(r))return n;if(!n)throw Object.defineProperty(Error(`"${f(e)}.getInitialProps()" should resolve to an object. But found "${n}" instead.`),"__NEXT_ERROR_CODE",{value:"E394",enumerable:!1,configurable:!0});return n}let g="u">typeof performance,v=g&&["mark","measure","getEntriesByName"].every(e=>"function"==typeof performance[e]);class y extends Error{}class m extends Error{}class b extends Error{constructor(e){super(),this.code="ENOENT",this.name="PageNotFoundError",this.message=`Cannot find module for page: ${e}`}}class P extends Error{constructor(e,t){super(),this.message=`Failed to load static file for page: ${e} ${t}`}}class E extends Error{constructor(){super(),this.code="ENOENT",this.message="Cannot find the middleware module"}}function S(e){return JSON.stringify({message:e.message,stack:e.stack})}},51380,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"isLocalURL",{enumerable:!0,get:function(){return u}});let n=e.r(58464),o=e.r(53626);function u(e){if(!(0,n.isAbsoluteUrl)(e))return!0;try{let t=(0,n.getLocationOrigin)(),r=new URL(e,t);return r.origin===t&&(0,o.hasBasePath)(r.pathname)}catch(e){return!1}}},38670,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"errorOnce",{enumerable:!0,get:function(){return n}});let n=e=>{}},24035,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={default:function(){return y},useLinkStatus:function(){return b}};for(var o in n)Object.defineProperty(r,o,{enumerable:!0,get:n[o]});let u=e.r(44066),i=e.r(20314),a=u._(e.r(79054)),l=e.r(95889),s=e.r(18152),c=e.r(80764),f=e.r(58464),d=e.r(99267);e.r(24270);let p=e.r(59624),h=e.r(51380),g=e.r(95555);function v(e){return"string"==typeof e?e:(0,l.formatUrl)(e)}function y(t){var r;let n,o,u,[l,y]=(0,a.useOptimistic)(p.IDLE_LINK_STATUS),b=(0,a.useRef)(null),{href:P,as:E,children:S,prefetch:C=null,passHref:O,replace:_,shallow:j,scroll:T,onClick:x,onMouseEnter:k,onTouchStart:w,legacyBehavior:L=!1,onNavigate:M,ref:R,unstable_dynamicOnHover:A,...N}=t;n=S,L&&("string"==typeof n||"number"==typeof n)&&(n=(0,i.jsx)("a",{children:n}));let U=a.default.useContext(s.AppRouterContext),I=!1!==C,$=!1!==C?null===(r=C)||"auto"===r?g.FetchStrategy.PPR:g.FetchStrategy.Full:g.FetchStrategy.PPR,{href:F,as:z}=a.default.useMemo(()=>{let e=v(P);return{href:e,as:E?v(E):e}},[P,E]);if(L){if(n?.$$typeof===Symbol.for("react.lazy"))throw Object.defineProperty(Error("`<Link legacyBehavior>` received a direct child that is either a Server Component, or JSX that was loaded with React.lazy(). This is not supported. Either remove legacyBehavior, or make the direct child a Client Component that renders the Link's `<a>` tag."),"__NEXT_ERROR_CODE",{value:"E863",enumerable:!1,configurable:!0});o=a.default.Children.only(n)}let D=L?o&&"object"==typeof o&&o.ref:R,W=a.default.useCallback(e=>(null!==U&&(b.current=(0,p.mountLinkInstance)(e,F,U,$,I,y)),()=>{b.current&&((0,p.unmountLinkForCurrentNavigation)(b.current),b.current=null),(0,p.unmountPrefetchableInstance)(e)}),[I,F,U,$,y]),B={ref:(0,c.useMergedRef)(W,D),onClick(t){L||"function"!=typeof x||x(t),L&&o.props&&"function"==typeof o.props.onClick&&o.props.onClick(t),!U||t.defaultPrevented||function(t,r,n,o,u,i,l){if("u">typeof window){let s,{nodeName:c}=t.currentTarget;if("A"===c.toUpperCase()&&((s=t.currentTarget.getAttribute("target"))&&"_self"!==s||t.metaKey||t.ctrlKey||t.shiftKey||t.altKey||t.nativeEvent&&2===t.nativeEvent.which)||t.currentTarget.hasAttribute("download"))return;if(!(0,h.isLocalURL)(r)){u&&(t.preventDefault(),location.replace(r));return}if(t.preventDefault(),l){let e=!1;if(l({preventDefault:()=>{e=!0}}),e)return}let{dispatchNavigateAction:f}=e.r(81574);a.default.startTransition(()=>{f(n||r,u?"replace":"push",i??!0,o.current)})}}(t,F,z,b,_,T,M)},onMouseEnter(e){L||"function"!=typeof k||k(e),L&&o.props&&"function"==typeof o.props.onMouseEnter&&o.props.onMouseEnter(e),U&&I&&(0,p.onNavigationIntent)(e.currentTarget,!0===A)},onTouchStart:function(e){L||"function"!=typeof w||w(e),L&&o.props&&"function"==typeof o.props.onTouchStart&&o.props.onTouchStart(e),U&&I&&(0,p.onNavigationIntent)(e.currentTarget,!0===A)}};return(0,f.isAbsoluteUrl)(z)?B.href=z:L&&!O&&("a"!==o.type||"href"in o.props)||(B.href=(0,d.addBasePath)(z)),u=L?a.default.cloneElement(o,B):(0,i.jsx)("a",{...N,...B,children:n}),(0,i.jsx)(m.Provider,{value:l,children:u})}e.r(38670);let m=(0,a.createContext)(p.IDLE_LINK_STATUS),b=()=>(0,a.useContext)(m);("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)}]);
|
|
1
|
+
(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,24270,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"warnOnce",{enumerable:!0,get:function(){return n}});let n=e=>{}},66033,e=>{"use strict";var t=e.i(79054);e.i(20314);var r=t.createContext(void 0);function n(e){let n=t.useContext(r);return e||n||"ltr"}e.s(["useDirection",()=>n])},80764,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"useMergedRef",{enumerable:!0,get:function(){return o}});let n=e.r(79054);function o(e,t){let r=(0,n.useRef)(null),o=(0,n.useRef)(null);return(0,n.useCallback)(n=>{if(null===n){let e=r.current;e&&(r.current=null,e());let t=o.current;t&&(o.current=null,t())}else e&&(r.current=u(e,n)),t&&(o.current=u(t,n))},[e,t])}function u(e,t){if("function"!=typeof e)return e.current=t,()=>{e.current=null};{let r=e(t);return"function"==typeof r?r:()=>e(null)}}("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)},27069,e=>{"use strict";function t(e,[t,r]){return Math.min(r,Math.max(t,e))}e.s(["clamp",()=>t])},12103,e=>{"use strict";let t=(0,e.i(3645).default)("puzzle",[["path",{d:"M15.39 4.39a1 1 0 0 0 1.68-.474 2.5 2.5 0 1 1 3.014 3.015 1 1 0 0 0-.474 1.68l1.683 1.682a2.414 2.414 0 0 1 0 3.414L19.61 15.39a1 1 0 0 1-1.68-.474 2.5 2.5 0 1 0-3.014 3.015 1 1 0 0 1 .474 1.68l-1.683 1.682a2.414 2.414 0 0 1-3.414 0L8.61 19.61a1 1 0 0 0-1.68.474 2.5 2.5 0 1 1-3.014-3.015 1 1 0 0 0 .474-1.68l-1.683-1.682a2.414 2.414 0 0 1 0-3.414L4.39 8.61a1 1 0 0 1 1.68.474 2.5 2.5 0 1 0 3.014-3.015 1 1 0 0 1-.474-1.68l1.683-1.682a2.414 2.414 0 0 1 3.414 0z",key:"w46dr5"}]]);e.s(["Puzzle",()=>t],12103)},81975,e=>{"use strict";let t=(0,e.i(3645).default)("wrench",[["path",{d:"M14.7 6.3a1 1 0 0 0 0 1.4l1.6 1.6a1 1 0 0 0 1.4 0l3.106-3.105c.32-.322.863-.22.983.218a6 6 0 0 1-8.259 7.057l-7.91 7.91a1 1 0 0 1-2.999-3l7.91-7.91a6 6 0 0 1 7.057-8.259c.438.12.54.662.219.984z",key:"1ngwbx"}]]);e.s(["Wrench",()=>t],81975)},80986,e=>{"use strict";let t=(0,e.i(3645).default)("circle-check",[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"m9 12 2 2 4-4",key:"dzmm74"}]]);e.s(["default",()=>t])},3214,e=>{"use strict";var t=e.i(91891);e.s(["Plus",()=>t.default])},39200,e=>{"use strict";let t=(0,e.i(3645).default)("settings",[["path",{d:"M9.671 4.136a2.34 2.34 0 0 1 4.659 0 2.34 2.34 0 0 0 3.319 1.915 2.34 2.34 0 0 1 2.33 4.033 2.34 2.34 0 0 0 0 3.831 2.34 2.34 0 0 1-2.33 4.033 2.34 2.34 0 0 0-3.319 1.915 2.34 2.34 0 0 1-4.659 0 2.34 2.34 0 0 0-3.32-1.915 2.34 2.34 0 0 1-2.33-4.033 2.34 2.34 0 0 0 0-3.831A2.34 2.34 0 0 1 6.35 6.051a2.34 2.34 0 0 0 3.319-1.915",key:"1i5ecw"}],["circle",{cx:"12",cy:"12",r:"3",key:"1v7zrd"}]]);e.s(["Settings",()=>t],39200)},10942,e=>{"use strict";var t=e.i(80986);e.s(["CircleCheck",()=>t.default])},39443,e=>{"use strict";var t=e.i(20314),r=e.i(79054);let n=(0,e.i(18354).createLogger)("[SSE]");function o(e,t,r,n){if("u"<typeof EventSource)return()=>{};let o=null,u=!1,i=1e3,a=null,l=null;return!function s(){u||(o=new EventSource(e?`/api/agent-events?runId=${encodeURIComponent(e)}`:"/api/agent-events"),n("connecting"),o.onopen=()=>{n("connected"),l=setTimeout(()=>{l=null,i=1e3},5e3)},o.onerror=()=>{o?.close(),o=null,n("disconnected"),null!==l&&(clearTimeout(l),l=null);let e=i;i=Math.min(2*e,3e4),a=setTimeout(()=>{a=null,s()},e)},o.addEventListener("notification",e=>{let n=JSON.parse(e.data);t(e=>{let t=[...e,n];return t.length>500?t.slice(-250):t}),r(n)}))}(),()=>{u=!0,null!==a&&(clearTimeout(a),a=null),null!==l&&(clearTimeout(l),l=null),o&&(o.close(),o=null)}}let u=(0,r.createContext)(null);function i({children:e,runId:i}){let{events:a,lastEvent:l,connectionStatus:s}=function(e){let[t,u]=(0,r.useState)([]),[i,a]=(0,r.useState)(null),[l,s]=(0,r.useState)("disconnected"),c=e?.runId,f=(0,r.useRef)(null),d=(0,r.useCallback)(e=>{let t=e.data;if(t&&"object"==typeof t)if("notification"===t.type){let e=t.data;n.debug("event received:",e.eventType,e),u(t=>{let r=[...t,e];return r.length>500?r.slice(-250):r}),a(e)}else"status"===t.type&&s(t.status)},[]);return(0,r.useEffect)(()=>{let e="u">typeof location&&new URLSearchParams(location.search).has("sse");if(!navigator.serviceWorker||e)return o(c,u,a,s);let t=!1,r={current:void 0};function n(e){t||(f.current=e,e.postMessage({type:"subscribe",runId:c}),s("connecting"))}function i(){if(t)return;let e=navigator.serviceWorker.controller;e&&(f.current=e,e.postMessage({type:"subscribe",runId:c}),s("connecting"))}return navigator.serviceWorker.addEventListener("message",d),navigator.serviceWorker.addEventListener("controllerchange",i),navigator.serviceWorker.register("/agent-events-sw.js",{scope:"/"}).then(e=>{if(t)return;let i=e.active??e.installing??e.waiting;if(!i){r.current=o(c,u,a,s);return}if("activated"===i.state)n(i);else{let e=()=>{"activated"===i.state&&(i.removeEventListener("statechange",e),n(i))};i.addEventListener("statechange",e)}}).catch(()=>{t||(r.current=o(c,u,a,s))}),()=>{t=!0,navigator.serviceWorker.removeEventListener("message",d),navigator.serviceWorker.removeEventListener("controllerchange",i),f.current?.postMessage({type:"unsubscribe"}),f.current=null,r.current?.()}},[c,d]),{events:t,lastEvent:i,connectionStatus:l}}({runId:i}),c=(0,r.useMemo)(()=>({events:a,lastEvent:l,connectionStatus:s}),[a,l,s]);return(0,t.jsx)(u.Provider,{value:c,children:e})}function a(){let e=(0,r.useContext)(u);if(!e)throw Error("useAgentEventsContext must be used within an <AgentEventsProvider>");return e}e.s(["AgentEventsProvider",()=>i,"useAgentEventsContext",()=>a],39443)},78521,e=>{"use strict";var t=e.i(21023);let r=(0,t.createServerReference)("00b8c11d0ce9276daaa9718975448d5ff12f160193",t.callServer,void 0,t.findSourceMapURL,"pickFolder");async function n(){let e=await r();if(e.error)throw Error(e.error);return e.path}e.s(["pickFolder",()=>n],78521)},5147,e=>{"use strict";var t=e.i(20314),r=e.i(79054);let n={"action-required":"action-needed",running:"in-progress",done:"done",blocked:"in-progress",error:"in-progress",creating:null};function o(e){return n[e]}let u=(0,r.createContext)(null);function i({children:e}){let[n,o]=(0,r.useState)([]),i=(0,r.useMemo)(()=>({features:n,setFeatures:o}),[n]);return(0,t.jsx)(u.Provider,{value:i,children:e})}function a(){let e=(0,r.useContext)(u);if(!e)throw Error("useSidebarFeaturesContext must be used within a <SidebarFeaturesProvider>");return e}e.s(["SidebarFeaturesProvider",()=>i,"mapNodeStateToSidebarStatus",()=>o,"useSidebarFeaturesContext",()=>a])},76314,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={assign:function(){return l},searchParamsToUrlQuery:function(){return u},urlQueryToSearchParams:function(){return a}};for(var o in n)Object.defineProperty(r,o,{enumerable:!0,get:n[o]});function u(e){let t={};for(let[r,n]of e.entries()){let e=t[r];void 0===e?t[r]=n:Array.isArray(e)?e.push(n):t[r]=[e,n]}return t}function i(e){return"string"==typeof e?e:("number"!=typeof e||isNaN(e))&&"boolean"!=typeof e?"":String(e)}function a(e){let t=new URLSearchParams;for(let[r,n]of Object.entries(e))if(Array.isArray(n))for(let e of n)t.append(r,i(e));else t.set(r,i(n));return t}function l(e,...t){for(let r of t){for(let t of r.keys())e.delete(t);for(let[t,n]of r.entries())e.append(t,n)}return e}},95889,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={formatUrl:function(){return a},formatWithValidation:function(){return s},urlObjectKeys:function(){return l}};for(var o in n)Object.defineProperty(r,o,{enumerable:!0,get:n[o]});let u=e.r(44066)._(e.r(76314)),i=/https?|ftp|gopher|file/;function a(e){let{auth:t,hostname:r}=e,n=e.protocol||"",o=e.pathname||"",a=e.hash||"",l=e.query||"",s=!1;t=t?encodeURIComponent(t).replace(/%3A/i,":")+"@":"",e.host?s=t+e.host:r&&(s=t+(~r.indexOf(":")?`[${r}]`:r),e.port&&(s+=":"+e.port)),l&&"object"==typeof l&&(l=String(u.urlQueryToSearchParams(l)));let c=e.search||l&&`?${l}`||"";return n&&!n.endsWith(":")&&(n+=":"),e.slashes||(!n||i.test(n))&&!1!==s?(s="//"+(s||""),o&&"/"!==o[0]&&(o="/"+o)):s||(s=""),a&&"#"!==a[0]&&(a="#"+a),c&&"?"!==c[0]&&(c="?"+c),o=o.replace(/[?#]/g,encodeURIComponent),c=c.replace("#","%23"),`${n}${s}${o}${c}${a}`}let l=["auth","hash","host","hostname","href","path","pathname","port","protocol","query","search","slashes"];function s(e){return a(e)}},58464,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={DecodeError:function(){return y},MiddlewareNotFoundError:function(){return E},MissingStaticPage:function(){return P},NormalizeError:function(){return m},PageNotFoundError:function(){return b},SP:function(){return g},ST:function(){return v},WEB_VITALS:function(){return u},execOnce:function(){return i},getDisplayName:function(){return f},getLocationOrigin:function(){return s},getURL:function(){return c},isAbsoluteUrl:function(){return l},isResSent:function(){return d},loadGetInitialProps:function(){return h},normalizeRepeatedSlashes:function(){return p},stringifyError:function(){return S}};for(var o in n)Object.defineProperty(r,o,{enumerable:!0,get:n[o]});let u=["CLS","FCP","FID","INP","LCP","TTFB"];function i(e){let t,r=!1;return(...n)=>(r||(r=!0,t=e(...n)),t)}let a=/^[a-zA-Z][a-zA-Z\d+\-.]*?:/,l=e=>a.test(e);function s(){let{protocol:e,hostname:t,port:r}=window.location;return`${e}//${t}${r?":"+r:""}`}function c(){let{href:e}=window.location,t=s();return e.substring(t.length)}function f(e){return"string"==typeof e?e:e.displayName||e.name||"Unknown"}function d(e){return e.finished||e.headersSent}function p(e){let t=e.split("?");return t[0].replace(/\\/g,"/").replace(/\/\/+/g,"/")+(t[1]?`?${t.slice(1).join("?")}`:"")}async function h(e,t){let r=t.res||t.ctx&&t.ctx.res;if(!e.getInitialProps)return t.ctx&&t.Component?{pageProps:await h(t.Component,t.ctx)}:{};let n=await e.getInitialProps(t);if(r&&d(r))return n;if(!n)throw Object.defineProperty(Error(`"${f(e)}.getInitialProps()" should resolve to an object. But found "${n}" instead.`),"__NEXT_ERROR_CODE",{value:"E394",enumerable:!1,configurable:!0});return n}let g="u">typeof performance,v=g&&["mark","measure","getEntriesByName"].every(e=>"function"==typeof performance[e]);class y extends Error{}class m extends Error{}class b extends Error{constructor(e){super(),this.code="ENOENT",this.name="PageNotFoundError",this.message=`Cannot find module for page: ${e}`}}class P extends Error{constructor(e,t){super(),this.message=`Failed to load static file for page: ${e} ${t}`}}class E extends Error{constructor(){super(),this.code="ENOENT",this.message="Cannot find the middleware module"}}function S(e){return JSON.stringify({message:e.message,stack:e.stack})}},51380,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"isLocalURL",{enumerable:!0,get:function(){return u}});let n=e.r(58464),o=e.r(53626);function u(e){if(!(0,n.isAbsoluteUrl)(e))return!0;try{let t=(0,n.getLocationOrigin)(),r=new URL(e,t);return r.origin===t&&(0,o.hasBasePath)(r.pathname)}catch(e){return!1}}},38670,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0}),Object.defineProperty(r,"errorOnce",{enumerable:!0,get:function(){return n}});let n=e=>{}},24035,(e,t,r)=>{"use strict";Object.defineProperty(r,"__esModule",{value:!0});var n={default:function(){return y},useLinkStatus:function(){return b}};for(var o in n)Object.defineProperty(r,o,{enumerable:!0,get:n[o]});let u=e.r(44066),i=e.r(20314),a=u._(e.r(79054)),l=e.r(95889),s=e.r(18152),c=e.r(80764),f=e.r(58464),d=e.r(99267);e.r(24270);let p=e.r(59624),h=e.r(51380),g=e.r(95555);function v(e){return"string"==typeof e?e:(0,l.formatUrl)(e)}function y(t){var r;let n,o,u,[l,y]=(0,a.useOptimistic)(p.IDLE_LINK_STATUS),b=(0,a.useRef)(null),{href:P,as:E,children:S,prefetch:C=null,passHref:O,replace:_,shallow:j,scroll:T,onClick:x,onMouseEnter:k,onTouchStart:w,legacyBehavior:L=!1,onNavigate:M,ref:R,unstable_dynamicOnHover:A,...N}=t;n=S,L&&("string"==typeof n||"number"==typeof n)&&(n=(0,i.jsx)("a",{children:n}));let U=a.default.useContext(s.AppRouterContext),I=!1!==C,$=!1!==C?null===(r=C)||"auto"===r?g.FetchStrategy.PPR:g.FetchStrategy.Full:g.FetchStrategy.PPR,{href:F,as:z}=a.default.useMemo(()=>{let e=v(P);return{href:e,as:E?v(E):e}},[P,E]);if(L){if(n?.$$typeof===Symbol.for("react.lazy"))throw Object.defineProperty(Error("`<Link legacyBehavior>` received a direct child that is either a Server Component, or JSX that was loaded with React.lazy(). This is not supported. Either remove legacyBehavior, or make the direct child a Client Component that renders the Link's `<a>` tag."),"__NEXT_ERROR_CODE",{value:"E863",enumerable:!1,configurable:!0});o=a.default.Children.only(n)}let D=L?o&&"object"==typeof o&&o.ref:R,W=a.default.useCallback(e=>(null!==U&&(b.current=(0,p.mountLinkInstance)(e,F,U,$,I,y)),()=>{b.current&&((0,p.unmountLinkForCurrentNavigation)(b.current),b.current=null),(0,p.unmountPrefetchableInstance)(e)}),[I,F,U,$,y]),B={ref:(0,c.useMergedRef)(W,D),onClick(t){L||"function"!=typeof x||x(t),L&&o.props&&"function"==typeof o.props.onClick&&o.props.onClick(t),!U||t.defaultPrevented||function(t,r,n,o,u,i,l){if("u">typeof window){let s,{nodeName:c}=t.currentTarget;if("A"===c.toUpperCase()&&((s=t.currentTarget.getAttribute("target"))&&"_self"!==s||t.metaKey||t.ctrlKey||t.shiftKey||t.altKey||t.nativeEvent&&2===t.nativeEvent.which)||t.currentTarget.hasAttribute("download"))return;if(!(0,h.isLocalURL)(r)){u&&(t.preventDefault(),location.replace(r));return}if(t.preventDefault(),l){let e=!1;if(l({preventDefault:()=>{e=!0}}),e)return}let{dispatchNavigateAction:f}=e.r(81574);a.default.startTransition(()=>{f(n||r,u?"replace":"push",i??!0,o.current)})}}(t,F,z,b,_,T,M)},onMouseEnter(e){L||"function"!=typeof k||k(e),L&&o.props&&"function"==typeof o.props.onMouseEnter&&o.props.onMouseEnter(e),U&&I&&(0,p.onNavigationIntent)(e.currentTarget,!0===A)},onTouchStart:function(e){L||"function"!=typeof w||w(e),L&&o.props&&"function"==typeof o.props.onTouchStart&&o.props.onTouchStart(e),U&&I&&(0,p.onNavigationIntent)(e.currentTarget,!0===A)}};return(0,f.isAbsoluteUrl)(z)?B.href=z:L&&!O&&("a"!==o.type||"href"in o.props)||(B.href=(0,d.addBasePath)(z)),u=L?a.default.cloneElement(o,B):(0,i.jsx)("a",{...N,...B,children:n}),(0,i.jsx)(m.Provider,{value:l,children:u})}e.r(38670);let m=(0,a.createContext)(p.IDLE_LINK_STATUS),b=()=>(0,a.useContext)(m);("function"==typeof r.default||"object"==typeof r.default&&null!==r.default)&&void 0===r.default.__esModule&&(Object.defineProperty(r.default,"__esModule",{value:!0}),Object.assign(r.default,r),t.exports=r.default)}]);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,41952,e=>{"use strict";var t=e.i(20314),a=e.i(79054),n=e.i(3645);let r=(0,n.default)("eye",[["path",{d:"M2.062 12.348a1 1 0 0 1 0-.696 10.75 10.75 0 0 1 19.876 0 1 1 0 0 1 0 .696 10.75 10.75 0 0 1-19.876 0",key:"1nclc0"}],["circle",{cx:"12",cy:"12",r:"3",key:"1v7zrd"}]]),l=(0,n.default)("eye-off",[["path",{d:"M10.733 5.076a10.744 10.744 0 0 1 11.205 6.575 1 1 0 0 1 0 .696 10.747 10.747 0 0 1-1.444 2.49",key:"ct8e1f"}],["path",{d:"M14.084 14.158a3 3 0 0 1-4.242-4.242",key:"151rxh"}],["path",{d:"M17.479 17.499a10.75 10.75 0 0 1-15.417-5.151 1 1 0 0 1 0-.696 10.75 10.75 0 0 1 4.446-5.143",key:"13bj9a"}],["path",{d:"m2 2 20 20",key:"1ooewy"}]]);var o=e.i(23925),s=e.i(60112),i=e.i(41957),d=e.i(98127),c=e.i(35364),u=e.i(91967),p=e.i(5978),h=e.i(22528),m=e.i(36589),f=e.i(23405),g=e.i(77624),v=e.i(87620),x="Switch",[w,b]=(0,h.createContextScope)(x),[y,C]=w(x),S=a.forwardRef((e,n)=>{let{__scopeSwitch:r,name:l,checked:o,defaultChecked:s,required:i,disabled:d,value:c="on",onCheckedChange:h,form:f,...g}=e,[w,b]=a.useState(null),C=(0,p.useComposedRefs)(n,e=>b(e)),S=a.useRef(!1),j=!w||f||!!w.closest("form"),[k,P]=(0,m.useControllableState)({prop:o,defaultProp:s??!1,onChange:h,caller:x});return(0,t.jsxs)(y,{scope:r,checked:k,disabled:d,children:[(0,t.jsx)(v.Primitive.button,{type:"button",role:"switch","aria-checked":k,"aria-required":i,"data-state":I(k),"data-disabled":d?"":void 0,disabled:d,value:c,...g,ref:C,onClick:(0,u.composeEventHandlers)(e.onClick,e=>{P(e=>!e),j&&(S.current=e.isPropagationStopped(),S.current||e.stopPropagation())})}),j&&(0,t.jsx)(N,{control:w,bubbles:!S.current,name:l,value:c,checked:k,required:i,disabled:d,form:f,style:{transform:"translateX(-100%)"}})]})});S.displayName=x;var j="SwitchThumb",k=a.forwardRef((e,a)=>{let{__scopeSwitch:n,...r}=e,l=C(j,n);return(0,t.jsx)(v.Primitive.span,{"data-state":I(l.checked),"data-disabled":l.disabled?"":void 0,...r,ref:a})});k.displayName=j;var N=a.forwardRef(({__scopeSwitch:e,control:n,checked:r,bubbles:l=!0,...o},s)=>{let i=a.useRef(null),d=(0,p.useComposedRefs)(i,s),c=(0,f.usePrevious)(r),u=(0,g.useSize)(n);return a.useEffect(()=>{let e=i.current;if(!e)return;let t=Object.getOwnPropertyDescriptor(window.HTMLInputElement.prototype,"checked").set;if(c!==r&&t){let a=new Event("click",{bubbles:l});t.call(e,r),e.dispatchEvent(a)}},[c,r,l]),(0,t.jsx)("input",{type:"checkbox","aria-hidden":!0,defaultChecked:r,...o,tabIndex:-1,ref:d,style:{...o.style,...u,position:"absolute",pointerEvents:"none",opacity:0,margin:0}})});function I(e){return e?"checked":"unchecked"}N.displayName="SwitchBubbleInput",e.s(["Root",()=>S,"Switch",()=>S,"SwitchThumb",()=>k,"Thumb",()=>k,"createSwitchScope",()=>b],95291);var P=e.i(95291),P=P,T=e.i(31777);function R({className:e,size:a="default",...n}){return(0,t.jsx)(P.Root,{"data-slot":"switch","data-size":a,className:(0,T.cn)("peer group/switch focus-visible:border-ring focus-visible:ring-ring/50 data-[state=checked]:bg-primary data-[state=unchecked]:bg-input dark:data-[state=unchecked]:bg-input/80 inline-flex shrink-0 items-center rounded-full border border-transparent shadow-xs transition-all outline-none focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50 data-[size=default]:h-[1.15rem] data-[size=default]:w-8 data-[size=sm]:h-3.5 data-[size=sm]:w-6",e),...n,children:(0,t.jsx)(P.Thumb,{"data-slot":"switch-thumb",className:(0,T.cn)("bg-background dark:data-[state=checked]:bg-primary-foreground dark:data-[state=unchecked]:bg-foreground pointer-events-none block rounded-full ring-0 transition-transform group-data-[size=default]/switch:size-4 group-data-[size=sm]/switch:size-3 data-[state=checked]:translate-x-[calc(100%-2px)] data-[state=unchecked]:translate-x-0")})})}var E=e.i(26036),M=e.i(27069),A=e.i(87342),D=e.i(66033),L=e.i(53532),F=e.i(41687),H=e.i(56720),B=e.i(13123),V=e.i(52740),z=e.i(39979),O=e.i(86874),W=e.i(29297),_=e.i(5192),U=e.i(1693),K=e.i(73772),G=e.i(13044),Z=[" ","Enter","ArrowUp","ArrowDown"],q=[" ","Enter"],Y="Select",[X,J,Q]=(0,A.createCollection)(Y),[$,ee]=(0,h.createContextScope)(Y,[Q,V.createPopperScope]),et=(0,V.createPopperScope)(),[ea,en]=$(Y),[er,el]=$(Y),eo=e=>{let{__scopeSelect:n,children:r,open:l,defaultOpen:o,onOpenChange:s,value:i,defaultValue:d,onValueChange:c,dir:u,name:p,autoComplete:h,disabled:f,required:g,form:v}=e,x=et(n),[w,b]=a.useState(null),[y,C]=a.useState(null),[S,j]=a.useState(!1),k=(0,D.useDirection)(u),[N,I]=(0,m.useControllableState)({prop:l,defaultProp:o??!1,onChange:s,caller:Y}),[P,T]=(0,m.useControllableState)({prop:i,defaultProp:d,onChange:c,caller:Y}),R=a.useRef(null),E=!w||v||!!w.closest("form"),[M,A]=a.useState(new Set),L=Array.from(M).map(e=>e.props.value).join(";");return(0,t.jsx)(V.Root,{...x,children:(0,t.jsxs)(ea,{required:g,scope:n,trigger:w,onTriggerChange:b,valueNode:y,onValueNodeChange:C,valueNodeHasChildren:S,onValueNodeHasChildrenChange:j,contentId:(0,B.useId)(),value:P,onValueChange:T,open:N,onOpenChange:I,dir:k,triggerPointerDownPosRef:R,disabled:f,children:[(0,t.jsx)(X.Provider,{scope:n,children:(0,t.jsx)(er,{scope:e.__scopeSelect,onNativeOptionAdd:a.useCallback(e=>{A(t=>new Set(t).add(e))},[]),onNativeOptionRemove:a.useCallback(e=>{A(t=>{let a=new Set(t);return a.delete(e),a})},[]),children:r})}),E?(0,t.jsxs)(eZ,{"aria-hidden":!0,required:g,tabIndex:-1,name:p,autoComplete:h,value:P,onChange:e=>T(e.target.value),disabled:f,form:v,children:[void 0===P?(0,t.jsx)("option",{value:""}):null,Array.from(M)]},L):null]})})};eo.displayName=Y;var es="SelectTrigger",ei=a.forwardRef((e,n)=>{let{__scopeSelect:r,disabled:l=!1,...o}=e,s=et(r),i=en(es,r),d=i.disabled||l,c=(0,p.useComposedRefs)(n,i.onTriggerChange),h=J(r),m=a.useRef("touch"),[f,g,x]=eY(e=>{let t=h().filter(e=>!e.disabled),a=t.find(e=>e.value===i.value),n=eX(t,e,a);void 0!==n&&i.onValueChange(n.value)}),w=e=>{d||(i.onOpenChange(!0),x()),e&&(i.triggerPointerDownPosRef.current={x:Math.round(e.pageX),y:Math.round(e.pageY)})};return(0,t.jsx)(V.Anchor,{asChild:!0,...s,children:(0,t.jsx)(v.Primitive.button,{type:"button",role:"combobox","aria-controls":i.contentId,"aria-expanded":i.open,"aria-required":i.required,"aria-autocomplete":"none",dir:i.dir,"data-state":i.open?"open":"closed",disabled:d,"data-disabled":d?"":void 0,"data-placeholder":eq(i.value)?"":void 0,...o,ref:c,onClick:(0,u.composeEventHandlers)(o.onClick,e=>{e.currentTarget.focus(),"mouse"!==m.current&&w(e)}),onPointerDown:(0,u.composeEventHandlers)(o.onPointerDown,e=>{m.current=e.pointerType;let t=e.target;t.hasPointerCapture(e.pointerId)&&t.releasePointerCapture(e.pointerId),0===e.button&&!1===e.ctrlKey&&"mouse"===e.pointerType&&(w(e),e.preventDefault())}),onKeyDown:(0,u.composeEventHandlers)(o.onKeyDown,e=>{let t=""!==f.current;e.ctrlKey||e.altKey||e.metaKey||1!==e.key.length||g(e.key),(!t||" "!==e.key)&&Z.includes(e.key)&&(w(),e.preventDefault())})})})});ei.displayName=es;var ed="SelectValue",ec=a.forwardRef((e,a)=>{let{__scopeSelect:n,className:r,style:l,children:o,placeholder:s="",...i}=e,d=en(ed,n),{onValueNodeHasChildrenChange:c}=d,u=void 0!==o,h=(0,p.useComposedRefs)(a,d.onValueNodeChange);return(0,_.useLayoutEffect)(()=>{c(u)},[c,u]),(0,t.jsx)(v.Primitive.span,{...i,ref:h,style:{pointerEvents:"none"},children:eq(d.value)?(0,t.jsx)(t.Fragment,{children:s}):o})});ec.displayName=ed;var eu=a.forwardRef((e,a)=>{let{__scopeSelect:n,children:r,...l}=e;return(0,t.jsx)(v.Primitive.span,{"aria-hidden":!0,...l,ref:a,children:r||"▼"})});eu.displayName="SelectIcon";var ep=e=>(0,t.jsx)(z.Portal,{asChild:!0,...e});ep.displayName="SelectPortal";var eh="SelectContent",em=a.forwardRef((e,n)=>{let r=en(eh,e.__scopeSelect),[l,o]=a.useState();return((0,_.useLayoutEffect)(()=>{o(new DocumentFragment)},[]),r.open)?(0,t.jsx)(ex,{...e,ref:n}):l?E.createPortal((0,t.jsx)(ef,{scope:e.__scopeSelect,children:(0,t.jsx)(X.Slot,{scope:e.__scopeSelect,children:(0,t.jsx)("div",{children:e.children})})}),l):null});em.displayName=eh;var[ef,eg]=$(eh),ev=(0,O.createSlot)("SelectContent.RemoveScroll"),ex=a.forwardRef((e,n)=>{let{__scopeSelect:r,position:l="item-aligned",onCloseAutoFocus:o,onEscapeKeyDown:s,onPointerDownOutside:i,side:d,sideOffset:c,align:h,alignOffset:m,arrowPadding:f,collisionBoundary:g,collisionPadding:v,sticky:x,hideWhenDetached:w,avoidCollisions:b,...y}=e,C=en(eh,r),[S,j]=a.useState(null),[k,N]=a.useState(null),I=(0,p.useComposedRefs)(n,e=>j(e)),[P,T]=a.useState(null),[R,E]=a.useState(null),M=J(r),[A,D]=a.useState(!1),B=a.useRef(!1);a.useEffect(()=>{if(S)return(0,K.hideOthers)(S)},[S]),(0,F.useFocusGuards)();let V=a.useCallback(e=>{let[t,...a]=M().map(e=>e.ref.current),[n]=a.slice(-1),r=document.activeElement;for(let a of e)if(a===r||(a?.scrollIntoView({block:"nearest"}),a===t&&k&&(k.scrollTop=0),a===n&&k&&(k.scrollTop=k.scrollHeight),a?.focus(),document.activeElement!==r))return},[M,k]),z=a.useCallback(()=>V([P,S]),[V,P,S]);a.useEffect(()=>{A&&z()},[A,z]);let{onOpenChange:O,triggerPointerDownPosRef:W}=C;a.useEffect(()=>{if(S){let e={x:0,y:0},t=t=>{e={x:Math.abs(Math.round(t.pageX)-(W.current?.x??0)),y:Math.abs(Math.round(t.pageY)-(W.current?.y??0))}},a=a=>{e.x<=10&&e.y<=10?a.preventDefault():S.contains(a.target)||O(!1),document.removeEventListener("pointermove",t),W.current=null};return null!==W.current&&(document.addEventListener("pointermove",t),document.addEventListener("pointerup",a,{capture:!0,once:!0})),()=>{document.removeEventListener("pointermove",t),document.removeEventListener("pointerup",a,{capture:!0})}}},[S,O,W]),a.useEffect(()=>{let e=()=>O(!1);return window.addEventListener("blur",e),window.addEventListener("resize",e),()=>{window.removeEventListener("blur",e),window.removeEventListener("resize",e)}},[O]);let[_,U]=eY(e=>{let t=M().filter(e=>!e.disabled),a=t.find(e=>e.ref.current===document.activeElement),n=eX(t,e,a);n&&setTimeout(()=>n.ref.current.focus())}),Z=a.useCallback((e,t,a)=>{let n=!B.current&&!a;(void 0!==C.value&&C.value===t||n)&&(T(e),n&&(B.current=!0))},[C.value]),q=a.useCallback(()=>S?.focus(),[S]),Y=a.useCallback((e,t,a)=>{let n=!B.current&&!a;(void 0!==C.value&&C.value===t||n)&&E(e)},[C.value]),X="popper"===l?eb:ew,Q=X===eb?{side:d,sideOffset:c,align:h,alignOffset:m,arrowPadding:f,collisionBoundary:g,collisionPadding:v,sticky:x,hideWhenDetached:w,avoidCollisions:b}:{};return(0,t.jsx)(ef,{scope:r,content:S,viewport:k,onViewportChange:N,itemRefCallback:Z,selectedItem:P,onItemLeave:q,itemTextRefCallback:Y,focusSelectedItem:z,selectedItemText:R,position:l,isPositioned:A,searchRef:_,children:(0,t.jsx)(G.RemoveScroll,{as:ev,allowPinchZoom:!0,children:(0,t.jsx)(H.FocusScope,{asChild:!0,trapped:C.open,onMountAutoFocus:e=>{e.preventDefault()},onUnmountAutoFocus:(0,u.composeEventHandlers)(o,e=>{C.trigger?.focus({preventScroll:!0}),e.preventDefault()}),children:(0,t.jsx)(L.DismissableLayer,{asChild:!0,disableOutsidePointerEvents:!0,onEscapeKeyDown:s,onPointerDownOutside:i,onFocusOutside:e=>e.preventDefault(),onDismiss:()=>C.onOpenChange(!1),children:(0,t.jsx)(X,{role:"listbox",id:C.contentId,"data-state":C.open?"open":"closed",dir:C.dir,onContextMenu:e=>e.preventDefault(),...y,...Q,onPlaced:()=>D(!0),ref:I,style:{display:"flex",flexDirection:"column",outline:"none",...y.style},onKeyDown:(0,u.composeEventHandlers)(y.onKeyDown,e=>{let t=e.ctrlKey||e.altKey||e.metaKey;if("Tab"===e.key&&e.preventDefault(),t||1!==e.key.length||U(e.key),["ArrowUp","ArrowDown","Home","End"].includes(e.key)){let t=M().filter(e=>!e.disabled).map(e=>e.ref.current);if(["ArrowUp","End"].includes(e.key)&&(t=t.slice().reverse()),["ArrowUp","ArrowDown"].includes(e.key)){let a=e.target,n=t.indexOf(a);t=t.slice(n+1)}setTimeout(()=>V(t)),e.preventDefault()}})})})})})})});ex.displayName="SelectContentImpl";var ew=a.forwardRef((e,n)=>{let{__scopeSelect:r,onPlaced:l,...o}=e,s=en(eh,r),i=eg(eh,r),[d,c]=a.useState(null),[u,h]=a.useState(null),m=(0,p.useComposedRefs)(n,e=>h(e)),f=J(r),g=a.useRef(!1),x=a.useRef(!0),{viewport:w,selectedItem:b,selectedItemText:y,focusSelectedItem:C}=i,S=a.useCallback(()=>{if(s.trigger&&s.valueNode&&d&&u&&w&&b&&y){let e=s.trigger.getBoundingClientRect(),t=u.getBoundingClientRect(),a=s.valueNode.getBoundingClientRect(),n=y.getBoundingClientRect();if("rtl"!==s.dir){let r=n.left-t.left,l=a.left-r,o=e.left-l,s=e.width+o,i=Math.max(s,t.width),c=window.innerWidth-10,u=(0,M.clamp)(l,[10,Math.max(10,c-i)]);d.style.minWidth=s+"px",d.style.left=u+"px"}else{let r=t.right-n.right,l=window.innerWidth-a.right-r,o=window.innerWidth-e.right-l,s=e.width+o,i=Math.max(s,t.width),c=window.innerWidth-10,u=(0,M.clamp)(l,[10,Math.max(10,c-i)]);d.style.minWidth=s+"px",d.style.right=u+"px"}let r=f(),o=window.innerHeight-20,i=w.scrollHeight,c=window.getComputedStyle(u),p=parseInt(c.borderTopWidth,10),h=parseInt(c.paddingTop,10),m=parseInt(c.borderBottomWidth,10),v=p+h+i+parseInt(c.paddingBottom,10)+m,x=Math.min(5*b.offsetHeight,v),C=window.getComputedStyle(w),S=parseInt(C.paddingTop,10),j=parseInt(C.paddingBottom,10),k=e.top+e.height/2-10,N=b.offsetHeight/2,I=p+h+(b.offsetTop+N);if(I<=k){let e=r.length>0&&b===r[r.length-1].ref.current;d.style.bottom="0px";let t=Math.max(o-k,N+(e?j:0)+(u.clientHeight-w.offsetTop-w.offsetHeight)+m);d.style.height=I+t+"px"}else{let e=r.length>0&&b===r[0].ref.current;d.style.top="0px";let t=Math.max(k,p+w.offsetTop+(e?S:0)+N);d.style.height=t+(v-I)+"px",w.scrollTop=I-k+w.offsetTop}d.style.margin="10px 0",d.style.minHeight=x+"px",d.style.maxHeight=o+"px",l?.(),requestAnimationFrame(()=>g.current=!0)}},[f,s.trigger,s.valueNode,d,u,w,b,y,s.dir,l]);(0,_.useLayoutEffect)(()=>S(),[S]);let[j,k]=a.useState();(0,_.useLayoutEffect)(()=>{u&&k(window.getComputedStyle(u).zIndex)},[u]);let N=a.useCallback(e=>{e&&!0===x.current&&(S(),C?.(),x.current=!1)},[S,C]);return(0,t.jsx)(ey,{scope:r,contentWrapper:d,shouldExpandOnScrollRef:g,onScrollButtonChange:N,children:(0,t.jsx)("div",{ref:c,style:{display:"flex",flexDirection:"column",position:"fixed",zIndex:j},children:(0,t.jsx)(v.Primitive.div,{...o,ref:m,style:{boxSizing:"border-box",maxHeight:"100%",...o.style}})})})});ew.displayName="SelectItemAlignedPosition";var eb=a.forwardRef((e,a)=>{let{__scopeSelect:n,align:r="start",collisionPadding:l=10,...o}=e,s=et(n);return(0,t.jsx)(V.Content,{...s,...o,ref:a,align:r,collisionPadding:l,style:{boxSizing:"border-box",...o.style,"--radix-select-content-transform-origin":"var(--radix-popper-transform-origin)","--radix-select-content-available-width":"var(--radix-popper-available-width)","--radix-select-content-available-height":"var(--radix-popper-available-height)","--radix-select-trigger-width":"var(--radix-popper-anchor-width)","--radix-select-trigger-height":"var(--radix-popper-anchor-height)"}})});eb.displayName="SelectPopperPosition";var[ey,eC]=$(eh,{}),eS="SelectViewport",ej=a.forwardRef((e,n)=>{let{__scopeSelect:r,nonce:l,...o}=e,s=eg(eS,r),i=eC(eS,r),d=(0,p.useComposedRefs)(n,s.onViewportChange),c=a.useRef(0);return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("style",{dangerouslySetInnerHTML:{__html:"[data-radix-select-viewport]{scrollbar-width:none;-ms-overflow-style:none;-webkit-overflow-scrolling:touch;}[data-radix-select-viewport]::-webkit-scrollbar{display:none}"},nonce:l}),(0,t.jsx)(X.Slot,{scope:r,children:(0,t.jsx)(v.Primitive.div,{"data-radix-select-viewport":"",role:"presentation",...o,ref:d,style:{position:"relative",flex:1,overflow:"hidden auto",...o.style},onScroll:(0,u.composeEventHandlers)(o.onScroll,e=>{let t=e.currentTarget,{contentWrapper:a,shouldExpandOnScrollRef:n}=i;if(n?.current&&a){let e=Math.abs(c.current-t.scrollTop);if(e>0){let n=window.innerHeight-20,r=Math.max(parseFloat(a.style.minHeight),parseFloat(a.style.height));if(r<n){let l=r+e,o=Math.min(n,l),s=l-o;a.style.height=o+"px","0px"===a.style.bottom&&(t.scrollTop=s>0?s:0,a.style.justifyContent="flex-end")}}}c.current=t.scrollTop})})})]})});ej.displayName=eS;var ek="SelectGroup",[eN,eI]=$(ek),eP=a.forwardRef((e,a)=>{let{__scopeSelect:n,...r}=e,l=(0,B.useId)();return(0,t.jsx)(eN,{scope:n,id:l,children:(0,t.jsx)(v.Primitive.div,{role:"group","aria-labelledby":l,...r,ref:a})})});eP.displayName=ek;var eT="SelectLabel",eR=a.forwardRef((e,a)=>{let{__scopeSelect:n,...r}=e,l=eI(eT,n);return(0,t.jsx)(v.Primitive.div,{id:l.id,...r,ref:a})});eR.displayName=eT;var eE="SelectItem",[eM,eA]=$(eE),eD=a.forwardRef((e,n)=>{let{__scopeSelect:r,value:l,disabled:o=!1,textValue:s,...i}=e,d=en(eE,r),c=eg(eE,r),h=d.value===l,[m,f]=a.useState(s??""),[g,x]=a.useState(!1),w=(0,p.useComposedRefs)(n,e=>c.itemRefCallback?.(e,l,o)),b=(0,B.useId)(),y=a.useRef("touch"),C=()=>{o||(d.onValueChange(l),d.onOpenChange(!1))};if(""===l)throw Error("A <Select.Item /> must have a value prop that is not an empty string. This is because the Select value can be set to an empty string to clear the selection and show the placeholder.");return(0,t.jsx)(eM,{scope:r,value:l,disabled:o,textId:b,isSelected:h,onItemTextChange:a.useCallback(e=>{f(t=>t||(e?.textContent??"").trim())},[]),children:(0,t.jsx)(X.ItemSlot,{scope:r,value:l,disabled:o,textValue:m,children:(0,t.jsx)(v.Primitive.div,{role:"option","aria-labelledby":b,"data-highlighted":g?"":void 0,"aria-selected":h&&g,"data-state":h?"checked":"unchecked","aria-disabled":o||void 0,"data-disabled":o?"":void 0,tabIndex:o?void 0:-1,...i,ref:w,onFocus:(0,u.composeEventHandlers)(i.onFocus,()=>x(!0)),onBlur:(0,u.composeEventHandlers)(i.onBlur,()=>x(!1)),onClick:(0,u.composeEventHandlers)(i.onClick,()=>{"mouse"!==y.current&&C()}),onPointerUp:(0,u.composeEventHandlers)(i.onPointerUp,()=>{"mouse"===y.current&&C()}),onPointerDown:(0,u.composeEventHandlers)(i.onPointerDown,e=>{y.current=e.pointerType}),onPointerMove:(0,u.composeEventHandlers)(i.onPointerMove,e=>{y.current=e.pointerType,o?c.onItemLeave?.():"mouse"===y.current&&e.currentTarget.focus({preventScroll:!0})}),onPointerLeave:(0,u.composeEventHandlers)(i.onPointerLeave,e=>{e.currentTarget===document.activeElement&&c.onItemLeave?.()}),onKeyDown:(0,u.composeEventHandlers)(i.onKeyDown,e=>{(c.searchRef?.current===""||" "!==e.key)&&(q.includes(e.key)&&C()," "===e.key&&e.preventDefault())})})})})});eD.displayName=eE;var eL="SelectItemText",eF=a.forwardRef((e,n)=>{let{__scopeSelect:r,className:l,style:o,...s}=e,i=en(eL,r),d=eg(eL,r),c=eA(eL,r),u=el(eL,r),[h,m]=a.useState(null),f=(0,p.useComposedRefs)(n,e=>m(e),c.onItemTextChange,e=>d.itemTextRefCallback?.(e,c.value,c.disabled)),g=h?.textContent,x=a.useMemo(()=>(0,t.jsx)("option",{value:c.value,disabled:c.disabled,children:g},c.value),[c.disabled,c.value,g]),{onNativeOptionAdd:w,onNativeOptionRemove:b}=u;return(0,_.useLayoutEffect)(()=>(w(x),()=>b(x)),[w,b,x]),(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(v.Primitive.span,{id:c.textId,...s,ref:f}),c.isSelected&&i.valueNode&&!i.valueNodeHasChildren?E.createPortal(s.children,i.valueNode):null]})});eF.displayName=eL;var eH="SelectItemIndicator",eB=a.forwardRef((e,a)=>{let{__scopeSelect:n,...r}=e;return eA(eH,n).isSelected?(0,t.jsx)(v.Primitive.span,{"aria-hidden":!0,...r,ref:a}):null});eB.displayName=eH;var eV="SelectScrollUpButton",ez=a.forwardRef((e,n)=>{let r=eg(eV,e.__scopeSelect),l=eC(eV,e.__scopeSelect),[o,s]=a.useState(!1),i=(0,p.useComposedRefs)(n,l.onScrollButtonChange);return(0,_.useLayoutEffect)(()=>{if(r.viewport&&r.isPositioned){let e=function(){s(t.scrollTop>0)},t=r.viewport;return e(),t.addEventListener("scroll",e),()=>t.removeEventListener("scroll",e)}},[r.viewport,r.isPositioned]),o?(0,t.jsx)(e_,{...e,ref:i,onAutoScroll:()=>{let{viewport:e,selectedItem:t}=r;e&&t&&(e.scrollTop=e.scrollTop-t.offsetHeight)}}):null});ez.displayName=eV;var eO="SelectScrollDownButton",eW=a.forwardRef((e,n)=>{let r=eg(eO,e.__scopeSelect),l=eC(eO,e.__scopeSelect),[o,s]=a.useState(!1),i=(0,p.useComposedRefs)(n,l.onScrollButtonChange);return(0,_.useLayoutEffect)(()=>{if(r.viewport&&r.isPositioned){let e=function(){let e=t.scrollHeight-t.clientHeight;s(Math.ceil(t.scrollTop)<e)},t=r.viewport;return e(),t.addEventListener("scroll",e),()=>t.removeEventListener("scroll",e)}},[r.viewport,r.isPositioned]),o?(0,t.jsx)(e_,{...e,ref:i,onAutoScroll:()=>{let{viewport:e,selectedItem:t}=r;e&&t&&(e.scrollTop=e.scrollTop+t.offsetHeight)}}):null});eW.displayName=eO;var e_=a.forwardRef((e,n)=>{let{__scopeSelect:r,onAutoScroll:l,...o}=e,s=eg("SelectScrollButton",r),i=a.useRef(null),d=J(r),c=a.useCallback(()=>{null!==i.current&&(window.clearInterval(i.current),i.current=null)},[]);return a.useEffect(()=>()=>c(),[c]),(0,_.useLayoutEffect)(()=>{let e=d().find(e=>e.ref.current===document.activeElement);e?.ref.current?.scrollIntoView({block:"nearest"})},[d]),(0,t.jsx)(v.Primitive.div,{"aria-hidden":!0,...o,ref:n,style:{flexShrink:0,...o.style},onPointerDown:(0,u.composeEventHandlers)(o.onPointerDown,()=>{null===i.current&&(i.current=window.setInterval(l,50))}),onPointerMove:(0,u.composeEventHandlers)(o.onPointerMove,()=>{s.onItemLeave?.(),null===i.current&&(i.current=window.setInterval(l,50))}),onPointerLeave:(0,u.composeEventHandlers)(o.onPointerLeave,()=>{c()})})}),eU=a.forwardRef((e,a)=>{let{__scopeSelect:n,...r}=e;return(0,t.jsx)(v.Primitive.div,{"aria-hidden":!0,...r,ref:a})});eU.displayName="SelectSeparator";var eK="SelectArrow",eG=a.forwardRef((e,a)=>{let{__scopeSelect:n,...r}=e,l=et(n),o=en(eK,n),s=eg(eK,n);return o.open&&"popper"===s.position?(0,t.jsx)(V.Arrow,{...l,...r,ref:a}):null});eG.displayName=eK;var eZ=a.forwardRef(({__scopeSelect:e,value:n,...r},l)=>{let o=a.useRef(null),s=(0,p.useComposedRefs)(l,o),i=(0,f.usePrevious)(n);return a.useEffect(()=>{let e=o.current;if(!e)return;let t=Object.getOwnPropertyDescriptor(window.HTMLSelectElement.prototype,"value").set;if(i!==n&&t){let a=new Event("change",{bubbles:!0});t.call(e,n),e.dispatchEvent(a)}},[i,n]),(0,t.jsx)(v.Primitive.select,{...r,style:{...U.VISUALLY_HIDDEN_STYLES,...r.style},ref:s,defaultValue:n})});function eq(e){return""===e||void 0===e}function eY(e){let t=(0,W.useCallbackRef)(e),n=a.useRef(""),r=a.useRef(0),l=a.useCallback(e=>{let a=n.current+e;t(a),function e(t){n.current=t,window.clearTimeout(r.current),""!==t&&(r.current=window.setTimeout(()=>e(""),1e3))}(a)},[t]),o=a.useCallback(()=>{n.current="",window.clearTimeout(r.current)},[]);return a.useEffect(()=>()=>window.clearTimeout(r.current),[]),[n,l,o]}function eX(e,t,a){var n,r;let l=t.length>1&&Array.from(t).every(e=>e===t[0])?t[0]:t,o=a?e.indexOf(a):-1,s=(n=e,r=Math.max(o,0),n.map((e,t)=>n[(r+t)%n.length]));1===l.length&&(s=s.filter(e=>e!==a));let i=s.find(e=>e.textValue.toLowerCase().startsWith(l.toLowerCase()));return i!==a?i:void 0}eZ.displayName="SelectBubbleInput",e.s(["Arrow",()=>eG,"Content",()=>em,"Group",()=>eP,"Icon",()=>eu,"Item",()=>eD,"ItemIndicator",()=>eB,"ItemText",()=>eF,"Label",()=>eR,"Portal",()=>ep,"Root",()=>eo,"ScrollDownButton",()=>eW,"ScrollUpButton",()=>ez,"Select",()=>eo,"SelectArrow",()=>eG,"SelectContent",()=>em,"SelectGroup",()=>eP,"SelectIcon",()=>eu,"SelectItem",()=>eD,"SelectItemIndicator",()=>eB,"SelectItemText",()=>eF,"SelectLabel",()=>eR,"SelectPortal",()=>ep,"SelectScrollDownButton",()=>eW,"SelectScrollUpButton",()=>ez,"SelectSeparator",()=>eU,"SelectTrigger",()=>ei,"SelectValue",()=>ec,"SelectViewport",()=>ej,"Separator",()=>eU,"Trigger",()=>ei,"Value",()=>ec,"Viewport",()=>ej,"createSelectScope",()=>ee],83830);var eJ=e.i(83830),eJ=eJ,eQ=e.i(99105);let e$=(0,n.default)("chevron-up",[["path",{d:"m18 15-6-6-6 6",key:"153udz"}]]),e0=eJ.Root;eJ.Group;let e1=eJ.Value,e2=a.forwardRef(({className:e,children:a,...n},r)=>(0,t.jsxs)(eJ.Trigger,{ref:r,className:(0,T.cn)("border-input ring-offset-background placeholder:text-muted-foreground focus:ring-ring flex h-9 w-full items-center justify-between rounded-md border bg-transparent px-3 py-2 text-sm whitespace-nowrap shadow-sm focus:ring-1 focus:outline-none disabled:cursor-not-allowed disabled:opacity-50 [&>span]:line-clamp-1",e),...n,children:[a,(0,t.jsx)(eJ.Icon,{asChild:!0,children:(0,t.jsx)(eQ.ChevronDown,{className:"h-4 w-4 opacity-50"})})]}));e2.displayName=eJ.Trigger.displayName;let e4=a.forwardRef(({className:e,...a},n)=>(0,t.jsx)(eJ.ScrollUpButton,{ref:n,className:(0,T.cn)("flex cursor-default items-center justify-center py-1",e),...a,children:(0,t.jsx)(e$,{className:"h-4 w-4"})}));e4.displayName=eJ.ScrollUpButton.displayName;let e5=a.forwardRef(({className:e,...a},n)=>(0,t.jsx)(eJ.ScrollDownButton,{ref:n,className:(0,T.cn)("flex cursor-default items-center justify-center py-1",e),...a,children:(0,t.jsx)(eQ.ChevronDown,{className:"h-4 w-4"})}));e5.displayName=eJ.ScrollDownButton.displayName;let e3=a.forwardRef(({className:e,children:a,position:n="popper",...r},l)=>(0,t.jsx)(eJ.Portal,{children:(0,t.jsxs)(eJ.Content,{ref:l,className:(0,T.cn)("bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 relative z-50 max-h-96 min-w-[8rem] overflow-hidden rounded-md border shadow-md","popper"===n&&"data-[side=bottom]:translate-y-1 data-[side=left]:-translate-x-1 data-[side=right]:translate-x-1 data-[side=top]:-translate-y-1",e),position:n,...r,children:[(0,t.jsx)(e4,{}),(0,t.jsx)(eJ.Viewport,{className:(0,T.cn)("p-1","popper"===n&&"h-[var(--radix-select-trigger-height)] w-full min-w-[var(--radix-select-trigger-width)]"),children:a}),(0,t.jsx)(e5,{})]})}));e3.displayName=eJ.Content.displayName,a.forwardRef(({className:e,...a},n)=>(0,t.jsx)(eJ.Label,{ref:n,className:(0,T.cn)("px-2 py-1.5 text-sm font-semibold",e),...a})).displayName=eJ.Label.displayName;let e7=a.forwardRef(({className:e,children:a,...n},r)=>(0,t.jsxs)(eJ.Item,{ref:r,className:(0,T.cn)("focus:bg-accent focus:text-accent-foreground relative flex w-full cursor-default items-center rounded-sm py-1.5 pr-8 pl-2 text-sm outline-none select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50",e),...n,children:[(0,t.jsx)("span",{className:"absolute right-2 flex h-3.5 w-3.5 items-center justify-center",children:(0,t.jsx)(eJ.ItemIndicator,{children:(0,t.jsx)(o.Check,{className:"h-4 w-4"})})}),(0,t.jsx)(eJ.ItemText,{children:a})]}));e7.displayName=eJ.Item.displayName,a.forwardRef(({className:e,...a},n)=>(0,t.jsx)(eJ.Separator,{ref:n,className:(0,T.cn)("bg-muted -mx-1 my-1 h-px",e),...a})).displayName=eJ.Separator.displayName;var e6=e.i(21023);let e9=(0,e6.createServerReference)("40a92a4f09ee0bb639bbad64daa27e202c6c918023",e6.callServer,void 0,e6.findSourceMapURL,"updateSettingsAction");var e8=e.i(17406),te=e.i(86782),tt=e.i(98804),ta=e.i(93752),ta=ta,tn=e.i(83902);function tr(e){return(0,t.jsx)(ta.default,{className:(0,T.cn)("h-4 w-4",e.className),...e})}function tl({className:e}){return(0,t.jsx)(tt.default,{src:"/icons/editors/vscode.svg",alt:"VS Code",width:24,height:24,className:(0,T.cn)("rounded-sm object-contain",e)})}function to({className:e}){return(0,t.jsx)(tt.default,{src:"/icons/agents/cursor.jpeg",alt:"Cursor",width:24,height:24,className:(0,T.cn)("rounded-sm object-contain",e)})}function ts({className:e}){return(0,t.jsx)(tt.default,{src:"/icons/editors/windsurf.svg",alt:"Windsurf",width:24,height:24,className:(0,T.cn)("rounded-sm object-contain",e)})}function ti({className:e}){return(0,t.jsx)(tt.default,{src:"/icons/editors/zed.svg",alt:"Zed",width:24,height:24,className:(0,T.cn)("rounded-sm object-contain",e)})}function td({className:e,...a}){return(0,t.jsx)(tn.Rocket,{className:(0,T.cn)("h-4 w-4",e),...a})}tl.displayName="VsCodeIcon",to.displayName="CursorEditorIcon",ts.displayName="WindsurfIcon",ti.displayName="ZedIcon",td.displayName="AntigravityIcon";let tc={vscode:tl,cursor:to,windsurf:ts,zed:ti,antigravity:td},tu=[{value:e8.AgentType.ClaudeCode,label:"Claude Code"},{value:e8.AgentType.Cursor,label:"Cursor"},{value:e8.AgentType.GeminiCli,label:"Gemini CLI"},{value:e8.AgentType.Aider,label:"Aider"},{value:e8.AgentType.Continue,label:"Continue"},{value:e8.AgentType.Dev,label:"Dev"}],tp=[{value:e8.AgentAuthMethod.Session,label:"Session"},{value:e8.AgentAuthMethod.Token,label:"Token"}],th=[{value:e8.EditorType.VsCode,label:"VS Code"},{value:e8.EditorType.Cursor,label:"Cursor"},{value:e8.EditorType.Windsurf,label:"Windsurf"},{value:e8.EditorType.Zed,label:"Zed"},{value:e8.EditorType.Antigravity,label:"Antigravity"}];function tm({label:e,htmlFor:a,children:n}){return(0,t.jsxs)("div",{className:"flex items-center justify-between gap-4 border-b py-3 last:border-b-0",children:[(0,t.jsx)(i.Label,{htmlFor:a,className:"text-sm font-normal whitespace-nowrap",children:e}),(0,t.jsx)("div",{className:"flex items-center gap-2",children:n})]})}function tf({label:e,id:a,testId:n,value:r,options:l,onChange:o}){return(0,t.jsx)(tm,{label:e,htmlFor:a,children:(0,t.jsxs)(e0,{value:r,onValueChange:o,children:[(0,t.jsx)(e2,{id:a,"data-testid":n,className:"w-45",children:(0,t.jsx)(e1,{})}),(0,t.jsx)(e3,{children:l.map(e=>(0,t.jsx)(e7,{value:e.value,children:e.label},e.value))})]})})}function tg({label:e,id:a,testId:n,checked:r,onChange:l}){return(0,t.jsx)(tm,{label:e,htmlFor:a,children:(0,t.jsx)(R,{id:a,"data-testid":n,checked:r,onCheckedChange:l})})}function tv({settings:e,shepHome:n,dbFileSize:i}){let{isPending:u,showSaved:p,save:h}=function(){let[e,t]=(0,a.useTransition)(),[n,r]=(0,a.useState)(!1),l=(0,a.useRef)(!1);return(0,a.useEffect)(()=>{if(l.current&&!e){r(!0);let e=setTimeout(()=>r(!1),2e3);return()=>clearTimeout(e)}l.current=e},[e]),{isPending:e,showSaved:n,save:(0,a.useCallback)(e=>{t(async()=>{let t=await e9(e);t.success||s.toast.error(t.error??"Failed to save settings")})},[t])}}(),m=e.featureFlags??{skills:!1,envDeploy:!1,debug:!1},[f,g]=(0,a.useState)(e.agent.type),[v,x]=(0,a.useState)(e.agent.authMethod),[w,b]=(0,a.useState)(e.agent.token??""),[y,C]=(0,a.useState)(!1),[S,j]=(0,a.useState)(e.environment.defaultEditor),k=e.environment.shellPreference,[N,I]=(0,a.useState)(e.workflow.openPrOnImplementationComplete),[P,T]=(0,a.useState)(e.workflow.approvalGateDefaults.pushOnImplementationComplete),[R,E]=(0,a.useState)(e.workflow.approvalGateDefaults.allowPrd),[M,A]=(0,a.useState)(e.workflow.approvalGateDefaults.allowPlan),[D,L]=(0,a.useState)(e.workflow.approvalGateDefaults.allowMerge),[F,H]=(0,a.useState)(null!=e.workflow.ciMaxFixAttempts?String(e.workflow.ciMaxFixAttempts):""),[B,V]=(0,a.useState)(null!=e.workflow.ciWatchTimeoutMs?String(Math.round(e.workflow.ciWatchTimeoutMs/1e3)):""),[z,O]=(0,a.useState)(null!=e.workflow.ciLogMaxChars?String(e.workflow.ciLogMaxChars):""),[W,_]=(0,a.useState)(e.notifications.inApp.enabled),[U,K]=(0,a.useState)(e.notifications.browser.enabled),[G,Z]=(0,a.useState)(e.notifications.desktop.enabled),[q,Y]=(0,a.useState)({...e.notifications.events}),[X,J]=(0,a.useState)({...m}),Q=null!=e.workflow.ciMaxFixAttempts?String(e.workflow.ciMaxFixAttempts):"",$=null!=e.workflow.ciWatchTimeoutMs?String(Math.round(e.workflow.ciWatchTimeoutMs/1e3)):"",ee=null!=e.workflow.ciLogMaxChars?String(e.workflow.ciLogMaxChars):"";function et(e){if(""===e)return;let t=parseInt(e,10);return Number.isNaN(t)||t<=0?void 0:t}function ea(e={}){let t={type:f,authMethod:v,...e},a={type:t.type,authMethod:t.authMethod};return t.authMethod===e8.AgentAuthMethod.Token&&(a.token=e.token??w),{agent:a}}function en(e={}){let t=et(e.ciTimeout??B);return{workflow:{openPrOnImplementationComplete:e.openPr??N,approvalGateDefaults:{pushOnImplementationComplete:e.pushOnComplete??P,allowPrd:e.allowPrd??R,allowPlan:e.allowPlan??M,allowMerge:e.allowMerge??D},ciMaxFixAttempts:et(e.ciMaxFix??F),ciWatchTimeoutMs:null!=t?1e3*t:void 0,ciLogMaxChars:et(e.ciLogMax??z)}}}function er(e={}){return{notifications:{inApp:{enabled:e.inApp??W},browser:{enabled:e.browser??U},desktop:{enabled:e.desktop??G},events:e.events??q}}}return(0,t.jsxs)("div",{"data-testid":"settings-page-client",className:"max-w-lg",children:[(0,t.jsxs)("div",{className:"flex items-center justify-between border-b pb-3",children:[(0,t.jsx)("h1",{className:"text-lg font-semibold tracking-tight",children:"Settings"}),u?(0,t.jsx)("span",{className:"text-muted-foreground text-xs",children:"Saving..."}):null,p&&!u?(0,t.jsxs)("span",{className:"flex items-center gap-1 text-xs text-green-600",children:[(0,t.jsx)(o.Check,{className:"h-3 w-3"}),"Saved"]}):null]}),(0,t.jsxs)("div",{children:[(0,t.jsx)("h2",{className:"text-muted-foreground mt-6 mb-1 text-xs font-medium tracking-wide uppercase","data-testid":"agent-settings-section",children:"Agent"}),(0,t.jsx)(tm,{label:"Agent",htmlFor:"agent-type",children:(0,t.jsxs)(e0,{value:f,onValueChange:e=>{g(e),h(ea({type:e}))},children:[(0,t.jsx)(e2,{id:"agent-type","data-testid":"agent-type-select",className:"w-45",children:(0,t.jsx)(e1,{})}),(0,t.jsx)(e3,{children:tu.map(e=>{let a=(0,te.getAgentTypeIcon)(e.value);return(0,t.jsx)(e7,{value:e.value,children:(0,t.jsxs)("span",{className:"flex items-center gap-2",children:[(0,t.jsx)(a,{className:"h-4 w-4 shrink-0"}),e.label]})},e.value)})})]})}),(0,t.jsx)(tf,{label:"Authentication",id:"auth-method",testId:"auth-method-select",value:v,options:tp,onChange:e=>{x(e),h(ea({authMethod:e}))}}),v===e8.AgentAuthMethod.Token&&(0,t.jsx)(tm,{label:"API Token",htmlFor:"agent-token",children:(0,t.jsxs)("div",{className:"relative w-45",children:[(0,t.jsx)(d.Input,{id:"agent-token","data-testid":"agent-token-input",type:y?"text":"password",value:w,onChange:e=>b(e.target.value),onBlur:()=>{w!==(e.agent.token??"")&&h(ea({token:w}))},placeholder:"Enter token",className:"pr-8"}),(0,t.jsx)(c.Button,{type:"button",variant:"ghost",size:"sm",className:"absolute top-0 right-0 h-full px-2 hover:bg-transparent",onClick:()=>C(!y),"data-testid":"toggle-token-visibility","aria-label":y?"Hide token":"Show token",children:y?(0,t.jsx)(l,{className:"h-3 w-3"}):(0,t.jsx)(r,{className:"h-3 w-3"})})]})}),(0,t.jsx)("h2",{className:"text-muted-foreground mt-6 mb-1 text-xs font-medium tracking-wide uppercase","data-testid":"environment-settings-section",children:"Environment"}),(0,t.jsx)(tm,{label:"Editor",htmlFor:"default-editor",children:(0,t.jsxs)(e0,{value:S,onValueChange:e=>{j(e),h({environment:{defaultEditor:e,shellPreference:k}})},children:[(0,t.jsx)(e2,{id:"default-editor","data-testid":"editor-select",className:"w-45",children:(0,t.jsx)(e1,{})}),(0,t.jsx)(e3,{children:th.map(e=>{var a;let n=(a=e.value)&&a in tc?tc[a]:tr;return(0,t.jsx)(e7,{value:e.value,children:(0,t.jsxs)("span",{className:"flex items-center gap-2",children:[(0,t.jsx)(n,{className:"h-4 w-4 shrink-0"}),e.label]})},e.value)})})]})}),(0,t.jsx)("h2",{className:"text-muted-foreground mt-6 mb-1 text-xs font-medium tracking-wide uppercase","data-testid":"workflow-settings-section",children:"Workflow"}),(0,t.jsx)(tg,{label:"Open PR on complete",id:"open-pr",testId:"switch-open-pr",checked:N,onChange:e=>{I(e),h(en({openPr:e}))}}),(0,t.jsx)(tg,{label:"Push on complete",id:"push-on-complete",testId:"switch-push-on-complete",checked:P,onChange:e=>{T(e),h(en({pushOnComplete:e}))}}),(0,t.jsx)(tg,{label:"Auto-approve PRD",id:"allow-prd",testId:"switch-allow-prd",checked:R,onChange:e=>{E(e),h(en({allowPrd:e}))}}),(0,t.jsx)(tg,{label:"Auto-approve Plan",id:"allow-plan",testId:"switch-allow-plan",checked:M,onChange:e=>{A(e),h(en({allowPlan:e}))}}),(0,t.jsx)(tg,{label:"Auto-approve Merge",id:"allow-merge",testId:"switch-allow-merge",checked:D,onChange:e=>{L(e),h(en({allowMerge:e}))}}),(0,t.jsx)("h2",{className:"text-muted-foreground mt-6 mb-1 text-xs font-medium tracking-wide uppercase","data-testid":"ci-settings-section",children:"CI"}),(0,t.jsx)(tm,{label:"Max fix attempts",htmlFor:"ci-max-fix",children:(0,t.jsx)(d.Input,{id:"ci-max-fix","data-testid":"ci-max-fix-input",type:"text",inputMode:"numeric",pattern:"[0-9]*",placeholder:"3",value:F,onChange:e=>H(e.target.value),onBlur:()=>{F!==Q&&h(en({ciMaxFix:F}))},className:"w-20"})}),(0,t.jsx)(tm,{label:"Watch timeout (s)",htmlFor:"ci-timeout",children:(0,t.jsx)(d.Input,{id:"ci-timeout","data-testid":"ci-timeout-input",type:"text",inputMode:"numeric",pattern:"[0-9]*",placeholder:"300",value:B,onChange:e=>V(e.target.value),onBlur:()=>{B!==$&&h(en({ciTimeout:B}))},className:"w-20"})}),(0,t.jsx)(tm,{label:"Max log chars",htmlFor:"ci-log-max",children:(0,t.jsx)(d.Input,{id:"ci-log-max","data-testid":"ci-log-max-input",type:"text",inputMode:"numeric",pattern:"[0-9]*",placeholder:"50000",value:z,onChange:e=>O(e.target.value),onBlur:()=>{z!==ee&&h(en({ciLogMax:z}))},className:"w-20"})}),(0,t.jsx)("h2",{className:"text-muted-foreground mt-6 mb-1 text-xs font-medium tracking-wide uppercase","data-testid":"notification-settings-section",children:"Notifications"}),(0,t.jsx)(tg,{label:"In-app",id:"notif-in-app",testId:"switch-in-app",checked:W,onChange:e=>{_(e),h(er({inApp:e}))}}),(0,t.jsx)(tg,{label:"Browser",id:"notif-browser",testId:"switch-browser",checked:U,onChange:e=>{K(e),h(er({browser:e}))}}),(0,t.jsx)(tg,{label:"Desktop",id:"notif-desktop",testId:"switch-desktop",checked:G,onChange:e=>{Z(e),h(er({desktop:e}))}}),(0,t.jsx)(tg,{label:"Agent started",id:"notif-event-agentStarted",testId:"switch-event-agentStarted",checked:q.agentStarted,onChange:e=>{let t={...q,agentStarted:e};Y(t),h(er({events:t}))}}),(0,t.jsx)(tg,{label:"Phase completed",id:"notif-event-phaseCompleted",testId:"switch-event-phaseCompleted",checked:q.phaseCompleted,onChange:e=>{let t={...q,phaseCompleted:e};Y(t),h(er({events:t}))}}),(0,t.jsx)(tg,{label:"Waiting approval",id:"notif-event-waitingApproval",testId:"switch-event-waitingApproval",checked:q.waitingApproval,onChange:e=>{let t={...q,waitingApproval:e};Y(t),h(er({events:t}))}}),(0,t.jsx)(tg,{label:"Agent completed",id:"notif-event-agentCompleted",testId:"switch-event-agentCompleted",checked:q.agentCompleted,onChange:e=>{let t={...q,agentCompleted:e};Y(t),h(er({events:t}))}}),(0,t.jsx)(tg,{label:"Agent failed",id:"notif-event-agentFailed",testId:"switch-event-agentFailed",checked:q.agentFailed,onChange:e=>{let t={...q,agentFailed:e};Y(t),h(er({events:t}))}}),(0,t.jsx)(tg,{label:"PR merged",id:"notif-event-prMerged",testId:"switch-event-prMerged",checked:q.prMerged,onChange:e=>{let t={...q,prMerged:e};Y(t),h(er({events:t}))}}),(0,t.jsx)(tg,{label:"PR closed",id:"notif-event-prClosed",testId:"switch-event-prClosed",checked:q.prClosed,onChange:e=>{let t={...q,prClosed:e};Y(t),h(er({events:t}))}}),(0,t.jsx)(tg,{label:"PR checks passed",id:"notif-event-prChecksPassed",testId:"switch-event-prChecksPassed",checked:q.prChecksPassed,onChange:e=>{let t={...q,prChecksPassed:e};Y(t),h(er({events:t}))}}),(0,t.jsx)(tg,{label:"PR checks failed",id:"notif-event-prChecksFailed",testId:"switch-event-prChecksFailed",checked:q.prChecksFailed,onChange:e=>{let t={...q,prChecksFailed:e};Y(t),h(er({events:t}))}}),(0,t.jsx)("h2",{className:"text-muted-foreground mt-6 mb-1 text-xs font-medium tracking-wide uppercase","data-testid":"feature-flags-settings-section",children:"Feature Flags"}),(0,t.jsx)(tg,{label:"Skills",id:"flag-skills",testId:"switch-flag-skills",checked:X.skills,onChange:e=>{let t={...X,skills:e};J(t),h({featureFlags:t})}}),(0,t.jsx)(tg,{label:"Deployments",id:"flag-envDeploy",testId:"switch-flag-envDeploy",checked:X.envDeploy,onChange:e=>{let t={...X,envDeploy:e};J(t),h({featureFlags:t})}}),(0,t.jsx)(tg,{label:"Debug",id:"flag-debug",testId:"switch-flag-debug",checked:X.debug,onChange:e=>{let t={...X,debug:e};J(t),h({featureFlags:t})}}),(0,t.jsx)("h2",{className:"text-muted-foreground mt-6 mb-1 text-xs font-medium tracking-wide uppercase","data-testid":"database-settings-section",children:"Database"}),(0,t.jsx)(tm,{label:"Location",children:(0,t.jsx)("span",{className:"text-muted-foreground max-w-50 truncate font-mono text-xs","data-testid":"shep-home-path",children:n})}),(0,t.jsx)(tm,{label:"Size",children:(0,t.jsx)("span",{className:"text-muted-foreground text-xs","data-testid":"db-file-size",children:i})})]})]})}e.s(["SettingsPageClient",()=>tv],41952)}]);
|
|
1
|
+
(globalThis.TURBOPACK||(globalThis.TURBOPACK=[])).push(["object"==typeof document?document.currentScript:void 0,41952,e=>{"use strict";var t=e.i(20314),a=e.i(79054),n=e.i(3645);let r=(0,n.default)("eye",[["path",{d:"M2.062 12.348a1 1 0 0 1 0-.696 10.75 10.75 0 0 1 19.876 0 1 1 0 0 1 0 .696 10.75 10.75 0 0 1-19.876 0",key:"1nclc0"}],["circle",{cx:"12",cy:"12",r:"3",key:"1v7zrd"}]]),l=(0,n.default)("eye-off",[["path",{d:"M10.733 5.076a10.744 10.744 0 0 1 11.205 6.575 1 1 0 0 1 0 .696 10.747 10.747 0 0 1-1.444 2.49",key:"ct8e1f"}],["path",{d:"M14.084 14.158a3 3 0 0 1-4.242-4.242",key:"151rxh"}],["path",{d:"M17.479 17.499a10.75 10.75 0 0 1-15.417-5.151 1 1 0 0 1 0-.696 10.75 10.75 0 0 1 4.446-5.143",key:"13bj9a"}],["path",{d:"m2 2 20 20",key:"1ooewy"}]]);var o=e.i(23925),s=e.i(60112),i=e.i(41957),d=e.i(98127),c=e.i(35364),u=e.i(91967),p=e.i(5978),h=e.i(22528),m=e.i(36589),f=e.i(23405),g=e.i(77624),v=e.i(87620),x="Switch",[w,b]=(0,h.createContextScope)(x),[y,C]=w(x),S=a.forwardRef((e,n)=>{let{__scopeSwitch:r,name:l,checked:o,defaultChecked:s,required:i,disabled:d,value:c="on",onCheckedChange:h,form:f,...g}=e,[w,b]=a.useState(null),C=(0,p.useComposedRefs)(n,e=>b(e)),S=a.useRef(!1),j=!w||f||!!w.closest("form"),[k,P]=(0,m.useControllableState)({prop:o,defaultProp:s??!1,onChange:h,caller:x});return(0,t.jsxs)(y,{scope:r,checked:k,disabled:d,children:[(0,t.jsx)(v.Primitive.button,{type:"button",role:"switch","aria-checked":k,"aria-required":i,"data-state":I(k),"data-disabled":d?"":void 0,disabled:d,value:c,...g,ref:C,onClick:(0,u.composeEventHandlers)(e.onClick,e=>{P(e=>!e),j&&(S.current=e.isPropagationStopped(),S.current||e.stopPropagation())})}),j&&(0,t.jsx)(N,{control:w,bubbles:!S.current,name:l,value:c,checked:k,required:i,disabled:d,form:f,style:{transform:"translateX(-100%)"}})]})});S.displayName=x;var j="SwitchThumb",k=a.forwardRef((e,a)=>{let{__scopeSwitch:n,...r}=e,l=C(j,n);return(0,t.jsx)(v.Primitive.span,{"data-state":I(l.checked),"data-disabled":l.disabled?"":void 0,...r,ref:a})});k.displayName=j;var N=a.forwardRef(({__scopeSwitch:e,control:n,checked:r,bubbles:l=!0,...o},s)=>{let i=a.useRef(null),d=(0,p.useComposedRefs)(i,s),c=(0,f.usePrevious)(r),u=(0,g.useSize)(n);return a.useEffect(()=>{let e=i.current;if(!e)return;let t=Object.getOwnPropertyDescriptor(window.HTMLInputElement.prototype,"checked").set;if(c!==r&&t){let a=new Event("click",{bubbles:l});t.call(e,r),e.dispatchEvent(a)}},[c,r,l]),(0,t.jsx)("input",{type:"checkbox","aria-hidden":!0,defaultChecked:r,...o,tabIndex:-1,ref:d,style:{...o.style,...u,position:"absolute",pointerEvents:"none",opacity:0,margin:0}})});function I(e){return e?"checked":"unchecked"}N.displayName="SwitchBubbleInput",e.s(["Root",()=>S,"Switch",()=>S,"SwitchThumb",()=>k,"Thumb",()=>k,"createSwitchScope",()=>b],95291);var P=e.i(95291),P=P,T=e.i(31777);function R({className:e,size:a="default",...n}){return(0,t.jsx)(P.Root,{"data-slot":"switch","data-size":a,className:(0,T.cn)("peer group/switch focus-visible:border-ring focus-visible:ring-ring/50 data-[state=checked]:bg-primary data-[state=unchecked]:bg-input dark:data-[state=unchecked]:bg-input/80 inline-flex shrink-0 items-center rounded-full border border-transparent shadow-xs transition-all outline-none focus-visible:ring-[3px] disabled:cursor-not-allowed disabled:opacity-50 data-[size=default]:h-[1.15rem] data-[size=default]:w-8 data-[size=sm]:h-3.5 data-[size=sm]:w-6",e),...n,children:(0,t.jsx)(P.Thumb,{"data-slot":"switch-thumb",className:(0,T.cn)("bg-background dark:data-[state=checked]:bg-primary-foreground dark:data-[state=unchecked]:bg-foreground pointer-events-none block rounded-full ring-0 transition-transform group-data-[size=default]/switch:size-4 group-data-[size=sm]/switch:size-3 data-[state=checked]:translate-x-[calc(100%-2px)] data-[state=unchecked]:translate-x-0")})})}var E=e.i(26036),M=e.i(27069),A=e.i(87342),D=e.i(66033),L=e.i(53532),F=e.i(41687),H=e.i(56720),B=e.i(13123),V=e.i(52740),z=e.i(39979),O=e.i(86874),W=e.i(29297),_=e.i(5192),U=e.i(1693),K=e.i(73772),G=e.i(13044),Z=[" ","Enter","ArrowUp","ArrowDown"],q=[" ","Enter"],Y="Select",[X,J,Q]=(0,A.createCollection)(Y),[$,ee]=(0,h.createContextScope)(Y,[Q,V.createPopperScope]),et=(0,V.createPopperScope)(),[ea,en]=$(Y),[er,el]=$(Y),eo=e=>{let{__scopeSelect:n,children:r,open:l,defaultOpen:o,onOpenChange:s,value:i,defaultValue:d,onValueChange:c,dir:u,name:p,autoComplete:h,disabled:f,required:g,form:v}=e,x=et(n),[w,b]=a.useState(null),[y,C]=a.useState(null),[S,j]=a.useState(!1),k=(0,D.useDirection)(u),[N,I]=(0,m.useControllableState)({prop:l,defaultProp:o??!1,onChange:s,caller:Y}),[P,T]=(0,m.useControllableState)({prop:i,defaultProp:d,onChange:c,caller:Y}),R=a.useRef(null),E=!w||v||!!w.closest("form"),[M,A]=a.useState(new Set),L=Array.from(M).map(e=>e.props.value).join(";");return(0,t.jsx)(V.Root,{...x,children:(0,t.jsxs)(ea,{required:g,scope:n,trigger:w,onTriggerChange:b,valueNode:y,onValueNodeChange:C,valueNodeHasChildren:S,onValueNodeHasChildrenChange:j,contentId:(0,B.useId)(),value:P,onValueChange:T,open:N,onOpenChange:I,dir:k,triggerPointerDownPosRef:R,disabled:f,children:[(0,t.jsx)(X.Provider,{scope:n,children:(0,t.jsx)(er,{scope:e.__scopeSelect,onNativeOptionAdd:a.useCallback(e=>{A(t=>new Set(t).add(e))},[]),onNativeOptionRemove:a.useCallback(e=>{A(t=>{let a=new Set(t);return a.delete(e),a})},[]),children:r})}),E?(0,t.jsxs)(eZ,{"aria-hidden":!0,required:g,tabIndex:-1,name:p,autoComplete:h,value:P,onChange:e=>T(e.target.value),disabled:f,form:v,children:[void 0===P?(0,t.jsx)("option",{value:""}):null,Array.from(M)]},L):null]})})};eo.displayName=Y;var es="SelectTrigger",ei=a.forwardRef((e,n)=>{let{__scopeSelect:r,disabled:l=!1,...o}=e,s=et(r),i=en(es,r),d=i.disabled||l,c=(0,p.useComposedRefs)(n,i.onTriggerChange),h=J(r),m=a.useRef("touch"),[f,g,x]=eY(e=>{let t=h().filter(e=>!e.disabled),a=t.find(e=>e.value===i.value),n=eX(t,e,a);void 0!==n&&i.onValueChange(n.value)}),w=e=>{d||(i.onOpenChange(!0),x()),e&&(i.triggerPointerDownPosRef.current={x:Math.round(e.pageX),y:Math.round(e.pageY)})};return(0,t.jsx)(V.Anchor,{asChild:!0,...s,children:(0,t.jsx)(v.Primitive.button,{type:"button",role:"combobox","aria-controls":i.contentId,"aria-expanded":i.open,"aria-required":i.required,"aria-autocomplete":"none",dir:i.dir,"data-state":i.open?"open":"closed",disabled:d,"data-disabled":d?"":void 0,"data-placeholder":eq(i.value)?"":void 0,...o,ref:c,onClick:(0,u.composeEventHandlers)(o.onClick,e=>{e.currentTarget.focus(),"mouse"!==m.current&&w(e)}),onPointerDown:(0,u.composeEventHandlers)(o.onPointerDown,e=>{m.current=e.pointerType;let t=e.target;t.hasPointerCapture(e.pointerId)&&t.releasePointerCapture(e.pointerId),0===e.button&&!1===e.ctrlKey&&"mouse"===e.pointerType&&(w(e),e.preventDefault())}),onKeyDown:(0,u.composeEventHandlers)(o.onKeyDown,e=>{let t=""!==f.current;e.ctrlKey||e.altKey||e.metaKey||1!==e.key.length||g(e.key),(!t||" "!==e.key)&&Z.includes(e.key)&&(w(),e.preventDefault())})})})});ei.displayName=es;var ed="SelectValue",ec=a.forwardRef((e,a)=>{let{__scopeSelect:n,className:r,style:l,children:o,placeholder:s="",...i}=e,d=en(ed,n),{onValueNodeHasChildrenChange:c}=d,u=void 0!==o,h=(0,p.useComposedRefs)(a,d.onValueNodeChange);return(0,_.useLayoutEffect)(()=>{c(u)},[c,u]),(0,t.jsx)(v.Primitive.span,{...i,ref:h,style:{pointerEvents:"none"},children:eq(d.value)?(0,t.jsx)(t.Fragment,{children:s}):o})});ec.displayName=ed;var eu=a.forwardRef((e,a)=>{let{__scopeSelect:n,children:r,...l}=e;return(0,t.jsx)(v.Primitive.span,{"aria-hidden":!0,...l,ref:a,children:r||"▼"})});eu.displayName="SelectIcon";var ep=e=>(0,t.jsx)(z.Portal,{asChild:!0,...e});ep.displayName="SelectPortal";var eh="SelectContent",em=a.forwardRef((e,n)=>{let r=en(eh,e.__scopeSelect),[l,o]=a.useState();return((0,_.useLayoutEffect)(()=>{o(new DocumentFragment)},[]),r.open)?(0,t.jsx)(ex,{...e,ref:n}):l?E.createPortal((0,t.jsx)(ef,{scope:e.__scopeSelect,children:(0,t.jsx)(X.Slot,{scope:e.__scopeSelect,children:(0,t.jsx)("div",{children:e.children})})}),l):null});em.displayName=eh;var[ef,eg]=$(eh),ev=(0,O.createSlot)("SelectContent.RemoveScroll"),ex=a.forwardRef((e,n)=>{let{__scopeSelect:r,position:l="item-aligned",onCloseAutoFocus:o,onEscapeKeyDown:s,onPointerDownOutside:i,side:d,sideOffset:c,align:h,alignOffset:m,arrowPadding:f,collisionBoundary:g,collisionPadding:v,sticky:x,hideWhenDetached:w,avoidCollisions:b,...y}=e,C=en(eh,r),[S,j]=a.useState(null),[k,N]=a.useState(null),I=(0,p.useComposedRefs)(n,e=>j(e)),[P,T]=a.useState(null),[R,E]=a.useState(null),M=J(r),[A,D]=a.useState(!1),B=a.useRef(!1);a.useEffect(()=>{if(S)return(0,K.hideOthers)(S)},[S]),(0,F.useFocusGuards)();let V=a.useCallback(e=>{let[t,...a]=M().map(e=>e.ref.current),[n]=a.slice(-1),r=document.activeElement;for(let a of e)if(a===r||(a?.scrollIntoView({block:"nearest"}),a===t&&k&&(k.scrollTop=0),a===n&&k&&(k.scrollTop=k.scrollHeight),a?.focus(),document.activeElement!==r))return},[M,k]),z=a.useCallback(()=>V([P,S]),[V,P,S]);a.useEffect(()=>{A&&z()},[A,z]);let{onOpenChange:O,triggerPointerDownPosRef:W}=C;a.useEffect(()=>{if(S){let e={x:0,y:0},t=t=>{e={x:Math.abs(Math.round(t.pageX)-(W.current?.x??0)),y:Math.abs(Math.round(t.pageY)-(W.current?.y??0))}},a=a=>{e.x<=10&&e.y<=10?a.preventDefault():S.contains(a.target)||O(!1),document.removeEventListener("pointermove",t),W.current=null};return null!==W.current&&(document.addEventListener("pointermove",t),document.addEventListener("pointerup",a,{capture:!0,once:!0})),()=>{document.removeEventListener("pointermove",t),document.removeEventListener("pointerup",a,{capture:!0})}}},[S,O,W]),a.useEffect(()=>{let e=()=>O(!1);return window.addEventListener("blur",e),window.addEventListener("resize",e),()=>{window.removeEventListener("blur",e),window.removeEventListener("resize",e)}},[O]);let[_,U]=eY(e=>{let t=M().filter(e=>!e.disabled),a=t.find(e=>e.ref.current===document.activeElement),n=eX(t,e,a);n&&setTimeout(()=>n.ref.current.focus())}),Z=a.useCallback((e,t,a)=>{let n=!B.current&&!a;(void 0!==C.value&&C.value===t||n)&&(T(e),n&&(B.current=!0))},[C.value]),q=a.useCallback(()=>S?.focus(),[S]),Y=a.useCallback((e,t,a)=>{let n=!B.current&&!a;(void 0!==C.value&&C.value===t||n)&&E(e)},[C.value]),X="popper"===l?eb:ew,Q=X===eb?{side:d,sideOffset:c,align:h,alignOffset:m,arrowPadding:f,collisionBoundary:g,collisionPadding:v,sticky:x,hideWhenDetached:w,avoidCollisions:b}:{};return(0,t.jsx)(ef,{scope:r,content:S,viewport:k,onViewportChange:N,itemRefCallback:Z,selectedItem:P,onItemLeave:q,itemTextRefCallback:Y,focusSelectedItem:z,selectedItemText:R,position:l,isPositioned:A,searchRef:_,children:(0,t.jsx)(G.RemoveScroll,{as:ev,allowPinchZoom:!0,children:(0,t.jsx)(H.FocusScope,{asChild:!0,trapped:C.open,onMountAutoFocus:e=>{e.preventDefault()},onUnmountAutoFocus:(0,u.composeEventHandlers)(o,e=>{C.trigger?.focus({preventScroll:!0}),e.preventDefault()}),children:(0,t.jsx)(L.DismissableLayer,{asChild:!0,disableOutsidePointerEvents:!0,onEscapeKeyDown:s,onPointerDownOutside:i,onFocusOutside:e=>e.preventDefault(),onDismiss:()=>C.onOpenChange(!1),children:(0,t.jsx)(X,{role:"listbox",id:C.contentId,"data-state":C.open?"open":"closed",dir:C.dir,onContextMenu:e=>e.preventDefault(),...y,...Q,onPlaced:()=>D(!0),ref:I,style:{display:"flex",flexDirection:"column",outline:"none",...y.style},onKeyDown:(0,u.composeEventHandlers)(y.onKeyDown,e=>{let t=e.ctrlKey||e.altKey||e.metaKey;if("Tab"===e.key&&e.preventDefault(),t||1!==e.key.length||U(e.key),["ArrowUp","ArrowDown","Home","End"].includes(e.key)){let t=M().filter(e=>!e.disabled).map(e=>e.ref.current);if(["ArrowUp","End"].includes(e.key)&&(t=t.slice().reverse()),["ArrowUp","ArrowDown"].includes(e.key)){let a=e.target,n=t.indexOf(a);t=t.slice(n+1)}setTimeout(()=>V(t)),e.preventDefault()}})})})})})})});ex.displayName="SelectContentImpl";var ew=a.forwardRef((e,n)=>{let{__scopeSelect:r,onPlaced:l,...o}=e,s=en(eh,r),i=eg(eh,r),[d,c]=a.useState(null),[u,h]=a.useState(null),m=(0,p.useComposedRefs)(n,e=>h(e)),f=J(r),g=a.useRef(!1),x=a.useRef(!0),{viewport:w,selectedItem:b,selectedItemText:y,focusSelectedItem:C}=i,S=a.useCallback(()=>{if(s.trigger&&s.valueNode&&d&&u&&w&&b&&y){let e=s.trigger.getBoundingClientRect(),t=u.getBoundingClientRect(),a=s.valueNode.getBoundingClientRect(),n=y.getBoundingClientRect();if("rtl"!==s.dir){let r=n.left-t.left,l=a.left-r,o=e.left-l,s=e.width+o,i=Math.max(s,t.width),c=window.innerWidth-10,u=(0,M.clamp)(l,[10,Math.max(10,c-i)]);d.style.minWidth=s+"px",d.style.left=u+"px"}else{let r=t.right-n.right,l=window.innerWidth-a.right-r,o=window.innerWidth-e.right-l,s=e.width+o,i=Math.max(s,t.width),c=window.innerWidth-10,u=(0,M.clamp)(l,[10,Math.max(10,c-i)]);d.style.minWidth=s+"px",d.style.right=u+"px"}let r=f(),o=window.innerHeight-20,i=w.scrollHeight,c=window.getComputedStyle(u),p=parseInt(c.borderTopWidth,10),h=parseInt(c.paddingTop,10),m=parseInt(c.borderBottomWidth,10),v=p+h+i+parseInt(c.paddingBottom,10)+m,x=Math.min(5*b.offsetHeight,v),C=window.getComputedStyle(w),S=parseInt(C.paddingTop,10),j=parseInt(C.paddingBottom,10),k=e.top+e.height/2-10,N=b.offsetHeight/2,I=p+h+(b.offsetTop+N);if(I<=k){let e=r.length>0&&b===r[r.length-1].ref.current;d.style.bottom="0px";let t=Math.max(o-k,N+(e?j:0)+(u.clientHeight-w.offsetTop-w.offsetHeight)+m);d.style.height=I+t+"px"}else{let e=r.length>0&&b===r[0].ref.current;d.style.top="0px";let t=Math.max(k,p+w.offsetTop+(e?S:0)+N);d.style.height=t+(v-I)+"px",w.scrollTop=I-k+w.offsetTop}d.style.margin="10px 0",d.style.minHeight=x+"px",d.style.maxHeight=o+"px",l?.(),requestAnimationFrame(()=>g.current=!0)}},[f,s.trigger,s.valueNode,d,u,w,b,y,s.dir,l]);(0,_.useLayoutEffect)(()=>S(),[S]);let[j,k]=a.useState();(0,_.useLayoutEffect)(()=>{u&&k(window.getComputedStyle(u).zIndex)},[u]);let N=a.useCallback(e=>{e&&!0===x.current&&(S(),C?.(),x.current=!1)},[S,C]);return(0,t.jsx)(ey,{scope:r,contentWrapper:d,shouldExpandOnScrollRef:g,onScrollButtonChange:N,children:(0,t.jsx)("div",{ref:c,style:{display:"flex",flexDirection:"column",position:"fixed",zIndex:j},children:(0,t.jsx)(v.Primitive.div,{...o,ref:m,style:{boxSizing:"border-box",maxHeight:"100%",...o.style}})})})});ew.displayName="SelectItemAlignedPosition";var eb=a.forwardRef((e,a)=>{let{__scopeSelect:n,align:r="start",collisionPadding:l=10,...o}=e,s=et(n);return(0,t.jsx)(V.Content,{...s,...o,ref:a,align:r,collisionPadding:l,style:{boxSizing:"border-box",...o.style,"--radix-select-content-transform-origin":"var(--radix-popper-transform-origin)","--radix-select-content-available-width":"var(--radix-popper-available-width)","--radix-select-content-available-height":"var(--radix-popper-available-height)","--radix-select-trigger-width":"var(--radix-popper-anchor-width)","--radix-select-trigger-height":"var(--radix-popper-anchor-height)"}})});eb.displayName="SelectPopperPosition";var[ey,eC]=$(eh,{}),eS="SelectViewport",ej=a.forwardRef((e,n)=>{let{__scopeSelect:r,nonce:l,...o}=e,s=eg(eS,r),i=eC(eS,r),d=(0,p.useComposedRefs)(n,s.onViewportChange),c=a.useRef(0);return(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)("style",{dangerouslySetInnerHTML:{__html:"[data-radix-select-viewport]{scrollbar-width:none;-ms-overflow-style:none;-webkit-overflow-scrolling:touch;}[data-radix-select-viewport]::-webkit-scrollbar{display:none}"},nonce:l}),(0,t.jsx)(X.Slot,{scope:r,children:(0,t.jsx)(v.Primitive.div,{"data-radix-select-viewport":"",role:"presentation",...o,ref:d,style:{position:"relative",flex:1,overflow:"hidden auto",...o.style},onScroll:(0,u.composeEventHandlers)(o.onScroll,e=>{let t=e.currentTarget,{contentWrapper:a,shouldExpandOnScrollRef:n}=i;if(n?.current&&a){let e=Math.abs(c.current-t.scrollTop);if(e>0){let n=window.innerHeight-20,r=Math.max(parseFloat(a.style.minHeight),parseFloat(a.style.height));if(r<n){let l=r+e,o=Math.min(n,l),s=l-o;a.style.height=o+"px","0px"===a.style.bottom&&(t.scrollTop=s>0?s:0,a.style.justifyContent="flex-end")}}}c.current=t.scrollTop})})})]})});ej.displayName=eS;var ek="SelectGroup",[eN,eI]=$(ek),eP=a.forwardRef((e,a)=>{let{__scopeSelect:n,...r}=e,l=(0,B.useId)();return(0,t.jsx)(eN,{scope:n,id:l,children:(0,t.jsx)(v.Primitive.div,{role:"group","aria-labelledby":l,...r,ref:a})})});eP.displayName=ek;var eT="SelectLabel",eR=a.forwardRef((e,a)=>{let{__scopeSelect:n,...r}=e,l=eI(eT,n);return(0,t.jsx)(v.Primitive.div,{id:l.id,...r,ref:a})});eR.displayName=eT;var eE="SelectItem",[eM,eA]=$(eE),eD=a.forwardRef((e,n)=>{let{__scopeSelect:r,value:l,disabled:o=!1,textValue:s,...i}=e,d=en(eE,r),c=eg(eE,r),h=d.value===l,[m,f]=a.useState(s??""),[g,x]=a.useState(!1),w=(0,p.useComposedRefs)(n,e=>c.itemRefCallback?.(e,l,o)),b=(0,B.useId)(),y=a.useRef("touch"),C=()=>{o||(d.onValueChange(l),d.onOpenChange(!1))};if(""===l)throw Error("A <Select.Item /> must have a value prop that is not an empty string. This is because the Select value can be set to an empty string to clear the selection and show the placeholder.");return(0,t.jsx)(eM,{scope:r,value:l,disabled:o,textId:b,isSelected:h,onItemTextChange:a.useCallback(e=>{f(t=>t||(e?.textContent??"").trim())},[]),children:(0,t.jsx)(X.ItemSlot,{scope:r,value:l,disabled:o,textValue:m,children:(0,t.jsx)(v.Primitive.div,{role:"option","aria-labelledby":b,"data-highlighted":g?"":void 0,"aria-selected":h&&g,"data-state":h?"checked":"unchecked","aria-disabled":o||void 0,"data-disabled":o?"":void 0,tabIndex:o?void 0:-1,...i,ref:w,onFocus:(0,u.composeEventHandlers)(i.onFocus,()=>x(!0)),onBlur:(0,u.composeEventHandlers)(i.onBlur,()=>x(!1)),onClick:(0,u.composeEventHandlers)(i.onClick,()=>{"mouse"!==y.current&&C()}),onPointerUp:(0,u.composeEventHandlers)(i.onPointerUp,()=>{"mouse"===y.current&&C()}),onPointerDown:(0,u.composeEventHandlers)(i.onPointerDown,e=>{y.current=e.pointerType}),onPointerMove:(0,u.composeEventHandlers)(i.onPointerMove,e=>{y.current=e.pointerType,o?c.onItemLeave?.():"mouse"===y.current&&e.currentTarget.focus({preventScroll:!0})}),onPointerLeave:(0,u.composeEventHandlers)(i.onPointerLeave,e=>{e.currentTarget===document.activeElement&&c.onItemLeave?.()}),onKeyDown:(0,u.composeEventHandlers)(i.onKeyDown,e=>{(c.searchRef?.current===""||" "!==e.key)&&(q.includes(e.key)&&C()," "===e.key&&e.preventDefault())})})})})});eD.displayName=eE;var eL="SelectItemText",eF=a.forwardRef((e,n)=>{let{__scopeSelect:r,className:l,style:o,...s}=e,i=en(eL,r),d=eg(eL,r),c=eA(eL,r),u=el(eL,r),[h,m]=a.useState(null),f=(0,p.useComposedRefs)(n,e=>m(e),c.onItemTextChange,e=>d.itemTextRefCallback?.(e,c.value,c.disabled)),g=h?.textContent,x=a.useMemo(()=>(0,t.jsx)("option",{value:c.value,disabled:c.disabled,children:g},c.value),[c.disabled,c.value,g]),{onNativeOptionAdd:w,onNativeOptionRemove:b}=u;return(0,_.useLayoutEffect)(()=>(w(x),()=>b(x)),[w,b,x]),(0,t.jsxs)(t.Fragment,{children:[(0,t.jsx)(v.Primitive.span,{id:c.textId,...s,ref:f}),c.isSelected&&i.valueNode&&!i.valueNodeHasChildren?E.createPortal(s.children,i.valueNode):null]})});eF.displayName=eL;var eH="SelectItemIndicator",eB=a.forwardRef((e,a)=>{let{__scopeSelect:n,...r}=e;return eA(eH,n).isSelected?(0,t.jsx)(v.Primitive.span,{"aria-hidden":!0,...r,ref:a}):null});eB.displayName=eH;var eV="SelectScrollUpButton",ez=a.forwardRef((e,n)=>{let r=eg(eV,e.__scopeSelect),l=eC(eV,e.__scopeSelect),[o,s]=a.useState(!1),i=(0,p.useComposedRefs)(n,l.onScrollButtonChange);return(0,_.useLayoutEffect)(()=>{if(r.viewport&&r.isPositioned){let e=function(){s(t.scrollTop>0)},t=r.viewport;return e(),t.addEventListener("scroll",e),()=>t.removeEventListener("scroll",e)}},[r.viewport,r.isPositioned]),o?(0,t.jsx)(e_,{...e,ref:i,onAutoScroll:()=>{let{viewport:e,selectedItem:t}=r;e&&t&&(e.scrollTop=e.scrollTop-t.offsetHeight)}}):null});ez.displayName=eV;var eO="SelectScrollDownButton",eW=a.forwardRef((e,n)=>{let r=eg(eO,e.__scopeSelect),l=eC(eO,e.__scopeSelect),[o,s]=a.useState(!1),i=(0,p.useComposedRefs)(n,l.onScrollButtonChange);return(0,_.useLayoutEffect)(()=>{if(r.viewport&&r.isPositioned){let e=function(){let e=t.scrollHeight-t.clientHeight;s(Math.ceil(t.scrollTop)<e)},t=r.viewport;return e(),t.addEventListener("scroll",e),()=>t.removeEventListener("scroll",e)}},[r.viewport,r.isPositioned]),o?(0,t.jsx)(e_,{...e,ref:i,onAutoScroll:()=>{let{viewport:e,selectedItem:t}=r;e&&t&&(e.scrollTop=e.scrollTop+t.offsetHeight)}}):null});eW.displayName=eO;var e_=a.forwardRef((e,n)=>{let{__scopeSelect:r,onAutoScroll:l,...o}=e,s=eg("SelectScrollButton",r),i=a.useRef(null),d=J(r),c=a.useCallback(()=>{null!==i.current&&(window.clearInterval(i.current),i.current=null)},[]);return a.useEffect(()=>()=>c(),[c]),(0,_.useLayoutEffect)(()=>{let e=d().find(e=>e.ref.current===document.activeElement);e?.ref.current?.scrollIntoView({block:"nearest"})},[d]),(0,t.jsx)(v.Primitive.div,{"aria-hidden":!0,...o,ref:n,style:{flexShrink:0,...o.style},onPointerDown:(0,u.composeEventHandlers)(o.onPointerDown,()=>{null===i.current&&(i.current=window.setInterval(l,50))}),onPointerMove:(0,u.composeEventHandlers)(o.onPointerMove,()=>{s.onItemLeave?.(),null===i.current&&(i.current=window.setInterval(l,50))}),onPointerLeave:(0,u.composeEventHandlers)(o.onPointerLeave,()=>{c()})})}),eU=a.forwardRef((e,a)=>{let{__scopeSelect:n,...r}=e;return(0,t.jsx)(v.Primitive.div,{"aria-hidden":!0,...r,ref:a})});eU.displayName="SelectSeparator";var eK="SelectArrow",eG=a.forwardRef((e,a)=>{let{__scopeSelect:n,...r}=e,l=et(n),o=en(eK,n),s=eg(eK,n);return o.open&&"popper"===s.position?(0,t.jsx)(V.Arrow,{...l,...r,ref:a}):null});eG.displayName=eK;var eZ=a.forwardRef(({__scopeSelect:e,value:n,...r},l)=>{let o=a.useRef(null),s=(0,p.useComposedRefs)(l,o),i=(0,f.usePrevious)(n);return a.useEffect(()=>{let e=o.current;if(!e)return;let t=Object.getOwnPropertyDescriptor(window.HTMLSelectElement.prototype,"value").set;if(i!==n&&t){let a=new Event("change",{bubbles:!0});t.call(e,n),e.dispatchEvent(a)}},[i,n]),(0,t.jsx)(v.Primitive.select,{...r,style:{...U.VISUALLY_HIDDEN_STYLES,...r.style},ref:s,defaultValue:n})});function eq(e){return""===e||void 0===e}function eY(e){let t=(0,W.useCallbackRef)(e),n=a.useRef(""),r=a.useRef(0),l=a.useCallback(e=>{let a=n.current+e;t(a),function e(t){n.current=t,window.clearTimeout(r.current),""!==t&&(r.current=window.setTimeout(()=>e(""),1e3))}(a)},[t]),o=a.useCallback(()=>{n.current="",window.clearTimeout(r.current)},[]);return a.useEffect(()=>()=>window.clearTimeout(r.current),[]),[n,l,o]}function eX(e,t,a){var n,r;let l=t.length>1&&Array.from(t).every(e=>e===t[0])?t[0]:t,o=a?e.indexOf(a):-1,s=(n=e,r=Math.max(o,0),n.map((e,t)=>n[(r+t)%n.length]));1===l.length&&(s=s.filter(e=>e!==a));let i=s.find(e=>e.textValue.toLowerCase().startsWith(l.toLowerCase()));return i!==a?i:void 0}eZ.displayName="SelectBubbleInput",e.s(["Arrow",()=>eG,"Content",()=>em,"Group",()=>eP,"Icon",()=>eu,"Item",()=>eD,"ItemIndicator",()=>eB,"ItemText",()=>eF,"Label",()=>eR,"Portal",()=>ep,"Root",()=>eo,"ScrollDownButton",()=>eW,"ScrollUpButton",()=>ez,"Select",()=>eo,"SelectArrow",()=>eG,"SelectContent",()=>em,"SelectGroup",()=>eP,"SelectIcon",()=>eu,"SelectItem",()=>eD,"SelectItemIndicator",()=>eB,"SelectItemText",()=>eF,"SelectLabel",()=>eR,"SelectPortal",()=>ep,"SelectScrollDownButton",()=>eW,"SelectScrollUpButton",()=>ez,"SelectSeparator",()=>eU,"SelectTrigger",()=>ei,"SelectValue",()=>ec,"SelectViewport",()=>ej,"Separator",()=>eU,"Trigger",()=>ei,"Value",()=>ec,"Viewport",()=>ej,"createSelectScope",()=>ee],83830);var eJ=e.i(83830),eJ=eJ,eQ=e.i(99105);let e$=(0,n.default)("chevron-up",[["path",{d:"m18 15-6-6-6 6",key:"153udz"}]]),e0=eJ.Root;eJ.Group;let e1=eJ.Value,e2=a.forwardRef(({className:e,children:a,...n},r)=>(0,t.jsxs)(eJ.Trigger,{ref:r,className:(0,T.cn)("border-input ring-offset-background placeholder:text-muted-foreground focus:ring-ring flex h-9 w-full items-center justify-between rounded-md border bg-transparent px-3 py-2 text-sm whitespace-nowrap shadow-sm focus:ring-1 focus:outline-none disabled:cursor-not-allowed disabled:opacity-50 [&>span]:line-clamp-1",e),...n,children:[a,(0,t.jsx)(eJ.Icon,{asChild:!0,children:(0,t.jsx)(eQ.ChevronDown,{className:"h-4 w-4 opacity-50"})})]}));e2.displayName=eJ.Trigger.displayName;let e4=a.forwardRef(({className:e,...a},n)=>(0,t.jsx)(eJ.ScrollUpButton,{ref:n,className:(0,T.cn)("flex cursor-default items-center justify-center py-1",e),...a,children:(0,t.jsx)(e$,{className:"h-4 w-4"})}));e4.displayName=eJ.ScrollUpButton.displayName;let e5=a.forwardRef(({className:e,...a},n)=>(0,t.jsx)(eJ.ScrollDownButton,{ref:n,className:(0,T.cn)("flex cursor-default items-center justify-center py-1",e),...a,children:(0,t.jsx)(eQ.ChevronDown,{className:"h-4 w-4"})}));e5.displayName=eJ.ScrollDownButton.displayName;let e3=a.forwardRef(({className:e,children:a,position:n="popper",...r},l)=>(0,t.jsx)(eJ.Portal,{children:(0,t.jsxs)(eJ.Content,{ref:l,className:(0,T.cn)("bg-popover text-popover-foreground data-[state=open]:animate-in data-[state=closed]:animate-out data-[state=closed]:fade-out-0 data-[state=open]:fade-in-0 data-[state=closed]:zoom-out-95 data-[state=open]:zoom-in-95 data-[side=bottom]:slide-in-from-top-2 data-[side=left]:slide-in-from-right-2 data-[side=right]:slide-in-from-left-2 data-[side=top]:slide-in-from-bottom-2 relative z-50 max-h-96 min-w-[8rem] overflow-hidden rounded-md border shadow-md","popper"===n&&"data-[side=bottom]:translate-y-1 data-[side=left]:-translate-x-1 data-[side=right]:translate-x-1 data-[side=top]:-translate-y-1",e),position:n,...r,children:[(0,t.jsx)(e4,{}),(0,t.jsx)(eJ.Viewport,{className:(0,T.cn)("p-1","popper"===n&&"h-[var(--radix-select-trigger-height)] w-full min-w-[var(--radix-select-trigger-width)]"),children:a}),(0,t.jsx)(e5,{})]})}));e3.displayName=eJ.Content.displayName,a.forwardRef(({className:e,...a},n)=>(0,t.jsx)(eJ.Label,{ref:n,className:(0,T.cn)("px-2 py-1.5 text-sm font-semibold",e),...a})).displayName=eJ.Label.displayName;let e7=a.forwardRef(({className:e,children:a,...n},r)=>(0,t.jsxs)(eJ.Item,{ref:r,className:(0,T.cn)("focus:bg-accent focus:text-accent-foreground relative flex w-full cursor-default items-center rounded-sm py-1.5 pr-8 pl-2 text-sm outline-none select-none data-[disabled]:pointer-events-none data-[disabled]:opacity-50",e),...n,children:[(0,t.jsx)("span",{className:"absolute right-2 flex h-3.5 w-3.5 items-center justify-center",children:(0,t.jsx)(eJ.ItemIndicator,{children:(0,t.jsx)(o.Check,{className:"h-4 w-4"})})}),(0,t.jsx)(eJ.ItemText,{children:a})]}));e7.displayName=eJ.Item.displayName,a.forwardRef(({className:e,...a},n)=>(0,t.jsx)(eJ.Separator,{ref:n,className:(0,T.cn)("bg-muted -mx-1 my-1 h-px",e),...a})).displayName=eJ.Separator.displayName;var e6=e.i(21023);let e9=(0,e6.createServerReference)("40658e8038eeecb73bef42bf904523cd346938d92c",e6.callServer,void 0,e6.findSourceMapURL,"updateSettingsAction");var e8=e.i(17406),te=e.i(86782),tt=e.i(98804),ta=e.i(93752),ta=ta,tn=e.i(83902);function tr(e){return(0,t.jsx)(ta.default,{className:(0,T.cn)("h-4 w-4",e.className),...e})}function tl({className:e}){return(0,t.jsx)(tt.default,{src:"/icons/editors/vscode.svg",alt:"VS Code",width:24,height:24,className:(0,T.cn)("rounded-sm object-contain",e)})}function to({className:e}){return(0,t.jsx)(tt.default,{src:"/icons/agents/cursor.jpeg",alt:"Cursor",width:24,height:24,className:(0,T.cn)("rounded-sm object-contain",e)})}function ts({className:e}){return(0,t.jsx)(tt.default,{src:"/icons/editors/windsurf.svg",alt:"Windsurf",width:24,height:24,className:(0,T.cn)("rounded-sm object-contain",e)})}function ti({className:e}){return(0,t.jsx)(tt.default,{src:"/icons/editors/zed.svg",alt:"Zed",width:24,height:24,className:(0,T.cn)("rounded-sm object-contain",e)})}function td({className:e,...a}){return(0,t.jsx)(tn.Rocket,{className:(0,T.cn)("h-4 w-4",e),...a})}tl.displayName="VsCodeIcon",to.displayName="CursorEditorIcon",ts.displayName="WindsurfIcon",ti.displayName="ZedIcon",td.displayName="AntigravityIcon";let tc={vscode:tl,cursor:to,windsurf:ts,zed:ti,antigravity:td},tu=[{value:e8.AgentType.ClaudeCode,label:"Claude Code"},{value:e8.AgentType.Cursor,label:"Cursor"},{value:e8.AgentType.GeminiCli,label:"Gemini CLI"},{value:e8.AgentType.Aider,label:"Aider"},{value:e8.AgentType.Continue,label:"Continue"},{value:e8.AgentType.Dev,label:"Dev"}],tp=[{value:e8.AgentAuthMethod.Session,label:"Session"},{value:e8.AgentAuthMethod.Token,label:"Token"}],th=[{value:e8.EditorType.VsCode,label:"VS Code"},{value:e8.EditorType.Cursor,label:"Cursor"},{value:e8.EditorType.Windsurf,label:"Windsurf"},{value:e8.EditorType.Zed,label:"Zed"},{value:e8.EditorType.Antigravity,label:"Antigravity"}];function tm({label:e,htmlFor:a,children:n}){return(0,t.jsxs)("div",{className:"flex items-center justify-between gap-4 border-b py-3 last:border-b-0",children:[(0,t.jsx)(i.Label,{htmlFor:a,className:"text-sm font-normal whitespace-nowrap",children:e}),(0,t.jsx)("div",{className:"flex items-center gap-2",children:n})]})}function tf({label:e,id:a,testId:n,value:r,options:l,onChange:o}){return(0,t.jsx)(tm,{label:e,htmlFor:a,children:(0,t.jsxs)(e0,{value:r,onValueChange:o,children:[(0,t.jsx)(e2,{id:a,"data-testid":n,className:"w-45",children:(0,t.jsx)(e1,{})}),(0,t.jsx)(e3,{children:l.map(e=>(0,t.jsx)(e7,{value:e.value,children:e.label},e.value))})]})})}function tg({label:e,id:a,testId:n,checked:r,onChange:l}){return(0,t.jsx)(tm,{label:e,htmlFor:a,children:(0,t.jsx)(R,{id:a,"data-testid":n,checked:r,onCheckedChange:l})})}function tv({settings:e,shepHome:n,dbFileSize:i}){let{isPending:u,showSaved:p,save:h}=function(){let[e,t]=(0,a.useTransition)(),[n,r]=(0,a.useState)(!1),l=(0,a.useRef)(!1);return(0,a.useEffect)(()=>{if(l.current&&!e){r(!0);let e=setTimeout(()=>r(!1),2e3);return()=>clearTimeout(e)}l.current=e},[e]),{isPending:e,showSaved:n,save:(0,a.useCallback)(e=>{t(async()=>{let t=await e9(e);t.success||s.toast.error(t.error??"Failed to save settings")})},[t])}}(),m=e.featureFlags??{skills:!1,envDeploy:!1,debug:!1},[f,g]=(0,a.useState)(e.agent.type),[v,x]=(0,a.useState)(e.agent.authMethod),[w,b]=(0,a.useState)(e.agent.token??""),[y,C]=(0,a.useState)(!1),[S,j]=(0,a.useState)(e.environment.defaultEditor),k=e.environment.shellPreference,[N,I]=(0,a.useState)(e.workflow.openPrOnImplementationComplete),[P,T]=(0,a.useState)(e.workflow.approvalGateDefaults.pushOnImplementationComplete),[R,E]=(0,a.useState)(e.workflow.approvalGateDefaults.allowPrd),[M,A]=(0,a.useState)(e.workflow.approvalGateDefaults.allowPlan),[D,L]=(0,a.useState)(e.workflow.approvalGateDefaults.allowMerge),[F,H]=(0,a.useState)(null!=e.workflow.ciMaxFixAttempts?String(e.workflow.ciMaxFixAttempts):""),[B,V]=(0,a.useState)(null!=e.workflow.ciWatchTimeoutMs?String(Math.round(e.workflow.ciWatchTimeoutMs/1e3)):""),[z,O]=(0,a.useState)(null!=e.workflow.ciLogMaxChars?String(e.workflow.ciLogMaxChars):""),[W,_]=(0,a.useState)(e.notifications.inApp.enabled),[U,K]=(0,a.useState)(e.notifications.browser.enabled),[G,Z]=(0,a.useState)(e.notifications.desktop.enabled),[q,Y]=(0,a.useState)({...e.notifications.events}),[X,J]=(0,a.useState)({...m}),Q=null!=e.workflow.ciMaxFixAttempts?String(e.workflow.ciMaxFixAttempts):"",$=null!=e.workflow.ciWatchTimeoutMs?String(Math.round(e.workflow.ciWatchTimeoutMs/1e3)):"",ee=null!=e.workflow.ciLogMaxChars?String(e.workflow.ciLogMaxChars):"";function et(e){if(""===e)return;let t=parseInt(e,10);return Number.isNaN(t)||t<=0?void 0:t}function ea(e={}){let t={type:f,authMethod:v,...e},a={type:t.type,authMethod:t.authMethod};return t.authMethod===e8.AgentAuthMethod.Token&&(a.token=e.token??w),{agent:a}}function en(e={}){let t=et(e.ciTimeout??B);return{workflow:{openPrOnImplementationComplete:e.openPr??N,approvalGateDefaults:{pushOnImplementationComplete:e.pushOnComplete??P,allowPrd:e.allowPrd??R,allowPlan:e.allowPlan??M,allowMerge:e.allowMerge??D},ciMaxFixAttempts:et(e.ciMaxFix??F),ciWatchTimeoutMs:null!=t?1e3*t:void 0,ciLogMaxChars:et(e.ciLogMax??z)}}}function er(e={}){return{notifications:{inApp:{enabled:e.inApp??W},browser:{enabled:e.browser??U},desktop:{enabled:e.desktop??G},events:e.events??q}}}return(0,t.jsxs)("div",{"data-testid":"settings-page-client",className:"max-w-lg",children:[(0,t.jsxs)("div",{className:"flex items-center justify-between border-b pb-3",children:[(0,t.jsx)("h1",{className:"text-lg font-semibold tracking-tight",children:"Settings"}),u?(0,t.jsx)("span",{className:"text-muted-foreground text-xs",children:"Saving..."}):null,p&&!u?(0,t.jsxs)("span",{className:"flex items-center gap-1 text-xs text-green-600",children:[(0,t.jsx)(o.Check,{className:"h-3 w-3"}),"Saved"]}):null]}),(0,t.jsxs)("div",{children:[(0,t.jsx)("h2",{className:"text-muted-foreground mt-6 mb-1 text-xs font-medium tracking-wide uppercase","data-testid":"agent-settings-section",children:"Agent"}),(0,t.jsx)(tm,{label:"Agent",htmlFor:"agent-type",children:(0,t.jsxs)(e0,{value:f,onValueChange:e=>{g(e),h(ea({type:e}))},children:[(0,t.jsx)(e2,{id:"agent-type","data-testid":"agent-type-select",className:"w-45",children:(0,t.jsx)(e1,{})}),(0,t.jsx)(e3,{children:tu.map(e=>{let a=(0,te.getAgentTypeIcon)(e.value);return(0,t.jsx)(e7,{value:e.value,children:(0,t.jsxs)("span",{className:"flex items-center gap-2",children:[(0,t.jsx)(a,{className:"h-4 w-4 shrink-0"}),e.label]})},e.value)})})]})}),(0,t.jsx)(tf,{label:"Authentication",id:"auth-method",testId:"auth-method-select",value:v,options:tp,onChange:e=>{x(e),h(ea({authMethod:e}))}}),v===e8.AgentAuthMethod.Token&&(0,t.jsx)(tm,{label:"API Token",htmlFor:"agent-token",children:(0,t.jsxs)("div",{className:"relative w-45",children:[(0,t.jsx)(d.Input,{id:"agent-token","data-testid":"agent-token-input",type:y?"text":"password",value:w,onChange:e=>b(e.target.value),onBlur:()=>{w!==(e.agent.token??"")&&h(ea({token:w}))},placeholder:"Enter token",className:"pr-8"}),(0,t.jsx)(c.Button,{type:"button",variant:"ghost",size:"sm",className:"absolute top-0 right-0 h-full px-2 hover:bg-transparent",onClick:()=>C(!y),"data-testid":"toggle-token-visibility","aria-label":y?"Hide token":"Show token",children:y?(0,t.jsx)(l,{className:"h-3 w-3"}):(0,t.jsx)(r,{className:"h-3 w-3"})})]})}),(0,t.jsx)("h2",{className:"text-muted-foreground mt-6 mb-1 text-xs font-medium tracking-wide uppercase","data-testid":"environment-settings-section",children:"Environment"}),(0,t.jsx)(tm,{label:"Editor",htmlFor:"default-editor",children:(0,t.jsxs)(e0,{value:S,onValueChange:e=>{j(e),h({environment:{defaultEditor:e,shellPreference:k}})},children:[(0,t.jsx)(e2,{id:"default-editor","data-testid":"editor-select",className:"w-45",children:(0,t.jsx)(e1,{})}),(0,t.jsx)(e3,{children:th.map(e=>{var a;let n=(a=e.value)&&a in tc?tc[a]:tr;return(0,t.jsx)(e7,{value:e.value,children:(0,t.jsxs)("span",{className:"flex items-center gap-2",children:[(0,t.jsx)(n,{className:"h-4 w-4 shrink-0"}),e.label]})},e.value)})})]})}),(0,t.jsx)("h2",{className:"text-muted-foreground mt-6 mb-1 text-xs font-medium tracking-wide uppercase","data-testid":"workflow-settings-section",children:"Workflow"}),(0,t.jsx)(tg,{label:"Open PR on complete",id:"open-pr",testId:"switch-open-pr",checked:N,onChange:e=>{I(e),h(en({openPr:e}))}}),(0,t.jsx)(tg,{label:"Push on complete",id:"push-on-complete",testId:"switch-push-on-complete",checked:P,onChange:e=>{T(e),h(en({pushOnComplete:e}))}}),(0,t.jsx)(tg,{label:"Auto-approve PRD",id:"allow-prd",testId:"switch-allow-prd",checked:R,onChange:e=>{E(e),h(en({allowPrd:e}))}}),(0,t.jsx)(tg,{label:"Auto-approve Plan",id:"allow-plan",testId:"switch-allow-plan",checked:M,onChange:e=>{A(e),h(en({allowPlan:e}))}}),(0,t.jsx)(tg,{label:"Auto-approve Merge",id:"allow-merge",testId:"switch-allow-merge",checked:D,onChange:e=>{L(e),h(en({allowMerge:e}))}}),(0,t.jsx)("h2",{className:"text-muted-foreground mt-6 mb-1 text-xs font-medium tracking-wide uppercase","data-testid":"ci-settings-section",children:"CI"}),(0,t.jsx)(tm,{label:"Max fix attempts",htmlFor:"ci-max-fix",children:(0,t.jsx)(d.Input,{id:"ci-max-fix","data-testid":"ci-max-fix-input",type:"text",inputMode:"numeric",pattern:"[0-9]*",placeholder:"3",value:F,onChange:e=>H(e.target.value),onBlur:()=>{F!==Q&&h(en({ciMaxFix:F}))},className:"w-20"})}),(0,t.jsx)(tm,{label:"Watch timeout (s)",htmlFor:"ci-timeout",children:(0,t.jsx)(d.Input,{id:"ci-timeout","data-testid":"ci-timeout-input",type:"text",inputMode:"numeric",pattern:"[0-9]*",placeholder:"300",value:B,onChange:e=>V(e.target.value),onBlur:()=>{B!==$&&h(en({ciTimeout:B}))},className:"w-20"})}),(0,t.jsx)(tm,{label:"Max log chars",htmlFor:"ci-log-max",children:(0,t.jsx)(d.Input,{id:"ci-log-max","data-testid":"ci-log-max-input",type:"text",inputMode:"numeric",pattern:"[0-9]*",placeholder:"50000",value:z,onChange:e=>O(e.target.value),onBlur:()=>{z!==ee&&h(en({ciLogMax:z}))},className:"w-20"})}),(0,t.jsx)("h2",{className:"text-muted-foreground mt-6 mb-1 text-xs font-medium tracking-wide uppercase","data-testid":"notification-settings-section",children:"Notifications"}),(0,t.jsx)(tg,{label:"In-app",id:"notif-in-app",testId:"switch-in-app",checked:W,onChange:e=>{_(e),h(er({inApp:e}))}}),(0,t.jsx)(tg,{label:"Browser",id:"notif-browser",testId:"switch-browser",checked:U,onChange:e=>{K(e),h(er({browser:e}))}}),(0,t.jsx)(tg,{label:"Desktop",id:"notif-desktop",testId:"switch-desktop",checked:G,onChange:e=>{Z(e),h(er({desktop:e}))}}),(0,t.jsx)(tg,{label:"Agent started",id:"notif-event-agentStarted",testId:"switch-event-agentStarted",checked:q.agentStarted,onChange:e=>{let t={...q,agentStarted:e};Y(t),h(er({events:t}))}}),(0,t.jsx)(tg,{label:"Phase completed",id:"notif-event-phaseCompleted",testId:"switch-event-phaseCompleted",checked:q.phaseCompleted,onChange:e=>{let t={...q,phaseCompleted:e};Y(t),h(er({events:t}))}}),(0,t.jsx)(tg,{label:"Waiting approval",id:"notif-event-waitingApproval",testId:"switch-event-waitingApproval",checked:q.waitingApproval,onChange:e=>{let t={...q,waitingApproval:e};Y(t),h(er({events:t}))}}),(0,t.jsx)(tg,{label:"Agent completed",id:"notif-event-agentCompleted",testId:"switch-event-agentCompleted",checked:q.agentCompleted,onChange:e=>{let t={...q,agentCompleted:e};Y(t),h(er({events:t}))}}),(0,t.jsx)(tg,{label:"Agent failed",id:"notif-event-agentFailed",testId:"switch-event-agentFailed",checked:q.agentFailed,onChange:e=>{let t={...q,agentFailed:e};Y(t),h(er({events:t}))}}),(0,t.jsx)(tg,{label:"PR merged",id:"notif-event-prMerged",testId:"switch-event-prMerged",checked:q.prMerged,onChange:e=>{let t={...q,prMerged:e};Y(t),h(er({events:t}))}}),(0,t.jsx)(tg,{label:"PR closed",id:"notif-event-prClosed",testId:"switch-event-prClosed",checked:q.prClosed,onChange:e=>{let t={...q,prClosed:e};Y(t),h(er({events:t}))}}),(0,t.jsx)(tg,{label:"PR checks passed",id:"notif-event-prChecksPassed",testId:"switch-event-prChecksPassed",checked:q.prChecksPassed,onChange:e=>{let t={...q,prChecksPassed:e};Y(t),h(er({events:t}))}}),(0,t.jsx)(tg,{label:"PR checks failed",id:"notif-event-prChecksFailed",testId:"switch-event-prChecksFailed",checked:q.prChecksFailed,onChange:e=>{let t={...q,prChecksFailed:e};Y(t),h(er({events:t}))}}),(0,t.jsx)("h2",{className:"text-muted-foreground mt-6 mb-1 text-xs font-medium tracking-wide uppercase","data-testid":"feature-flags-settings-section",children:"Feature Flags"}),(0,t.jsx)(tg,{label:"Skills",id:"flag-skills",testId:"switch-flag-skills",checked:X.skills,onChange:e=>{let t={...X,skills:e};J(t),h({featureFlags:t})}}),(0,t.jsx)(tg,{label:"Deployments",id:"flag-envDeploy",testId:"switch-flag-envDeploy",checked:X.envDeploy,onChange:e=>{let t={...X,envDeploy:e};J(t),h({featureFlags:t})}}),(0,t.jsx)(tg,{label:"Debug",id:"flag-debug",testId:"switch-flag-debug",checked:X.debug,onChange:e=>{let t={...X,debug:e};J(t),h({featureFlags:t})}}),(0,t.jsx)("h2",{className:"text-muted-foreground mt-6 mb-1 text-xs font-medium tracking-wide uppercase","data-testid":"database-settings-section",children:"Database"}),(0,t.jsx)(tm,{label:"Location",children:(0,t.jsx)("span",{className:"text-muted-foreground max-w-50 truncate font-mono text-xs","data-testid":"shep-home-path",children:n})}),(0,t.jsx)(tm,{label:"Size",children:(0,t.jsx)("span",{className:"text-muted-foreground text-xs","data-testid":"db-file-size",children:i})})]})]})}e.s(["SettingsPageClient",()=>tv],41952)}]);
|