@shipit-ai/cli 1.173.1-pr18.cc1c3ce → 1.173.2
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/packages/core/src/infrastructure/di/modules/web-tokens.module.d.ts.map +1 -1
- package/dist/packages/core/src/infrastructure/di/modules/web-tokens.module.js +4 -0
- package/dist/src/presentation/web/components/features/mcp-servers/mcp-server-detail-drawer.d.ts.map +1 -1
- package/dist/src/presentation/web/components/features/mcp-servers/mcp-server-detail-drawer.js +11 -1
- package/dist/translations/ar/web.json +2 -1
- package/dist/translations/de/web.json +2 -1
- package/dist/translations/en/web.json +2 -1
- package/dist/translations/es/web.json +2 -1
- package/dist/translations/fr/web.json +2 -1
- package/dist/translations/he/web.json +2 -1
- package/dist/translations/pt/web.json +2 -1
- package/dist/translations/ru/web.json +2 -1
- 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 +3 -3
- package/web/.next/fallback-build-manifest.json +3 -3
- package/web/.next/prerender-manifest.json +3 -3
- package/web/.next/required-server-files.js +2 -2
- package/web/.next/required-server-files.json +2 -2
- package/web/.next/server/app/(dashboard)/@drawer/adopt/page/server-reference-manifest.json +29 -29
- package/web/.next/server/app/(dashboard)/@drawer/adopt/page.js.nft.json +1 -1
- package/web/.next/server/app/(dashboard)/@drawer/adopt/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/(dashboard)/@drawer/chat/page/server-reference-manifest.json +27 -27
- package/web/.next/server/app/(dashboard)/@drawer/chat/page.js.nft.json +1 -1
- package/web/.next/server/app/(dashboard)/@drawer/chat/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/(dashboard)/@drawer/create/page/server-reference-manifest.json +31 -31
- 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]/[tab]/page/server-reference-manifest.json +37 -37
- package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/[tab]/page.js.nft.json +1 -1
- package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/[tab]/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/(dashboard)/@drawer/feature/[featureId]/page/server-reference-manifest.json +37 -37
- 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]/[tab]/page/server-reference-manifest.json +28 -28
- package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/[tab]/page.js.nft.json +1 -1
- package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/[tab]/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/(dashboard)/@drawer/repository/[repositoryId]/page/server-reference-manifest.json +28 -28
- 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)/chat/page/server-reference-manifest.json +27 -27
- package/web/.next/server/app/(dashboard)/chat/page.js.nft.json +1 -1
- package/web/.next/server/app/(dashboard)/chat/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/(dashboard)/create/page/server-reference-manifest.json +31 -31
- 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]/[tab]/page/server-reference-manifest.json +37 -37
- package/web/.next/server/app/(dashboard)/feature/[featureId]/[tab]/page.js.nft.json +1 -1
- package/web/.next/server/app/(dashboard)/feature/[featureId]/[tab]/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/(dashboard)/feature/[featureId]/page/server-reference-manifest.json +37 -37
- 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 +27 -27
- 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]/[tab]/page/server-reference-manifest.json +28 -28
- package/web/.next/server/app/(dashboard)/repository/[repositoryId]/[tab]/page.js.nft.json +1 -1
- package/web/.next/server/app/(dashboard)/repository/[repositoryId]/[tab]/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/(dashboard)/repository/[repositoryId]/page/server-reference-manifest.json +28 -28
- 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 +1 -1
- 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 +6 -6
- package/web/.next/server/app/_not-found/page.js.nft.json +1 -1
- package/web/.next/server/app/_not-found/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/mcp-servers/page/server-reference-manifest.json +13 -13
- package/web/.next/server/app/mcp-servers/page.js.nft.json +1 -1
- package/web/.next/server/app/mcp-servers/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/plugins/page/server-reference-manifest.json +15 -15
- package/web/.next/server/app/plugins/page.js.nft.json +1 -1
- package/web/.next/server/app/plugins/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/settings/page/server-reference-manifest.json +12 -12
- package/web/.next/server/app/settings/page.js.nft.json +1 -1
- package/web/.next/server/app/settings/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/skills/page/server-reference-manifest.json +11 -11
- package/web/.next/server/app/skills/page.js.nft.json +1 -1
- package/web/.next/server/app/skills/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/tools/page/server-reference-manifest.json +11 -11
- package/web/.next/server/app/tools/page.js.nft.json +1 -1
- package/web/.next/server/app/tools/page_client-reference-manifest.js +1 -1
- package/web/.next/server/app/version/page/server-reference-manifest.json +6 -6
- package/web/.next/server/app/version/page.js.nft.json +1 -1
- package/web/.next/server/app/version/page_client-reference-manifest.js +1 -1
- package/web/.next/server/chunks/[root-of-the-server]__0tb~wwk._.js +1 -1
- package/web/.next/server/chunks/ssr/0j.8_web_components_common_control-center-drawer_create-drawer-client_tsx_0g70fc5._.js +1 -1
- package/web/.next/server/chunks/ssr/0j.8_web_components_common_control-center-drawer_create-drawer-client_tsx_0g70fc5._.js.map +1 -1
- package/web/.next/server/chunks/ssr/0j.8_web_components_common_control-center-drawer_feature-drawer-client_tsx_104cna.._.js +2 -2
- package/web/.next/server/chunks/ssr/0j.8_web_components_common_control-center-drawer_feature-drawer-client_tsx_104cna.._.js.map +1 -1
- package/web/.next/server/chunks/ssr/0j.8_web_components_features_mcp-servers_mcp-servers-page-client_tsx_0dda8ih._.js +2 -2
- package/web/.next/server/chunks/ssr/0j.8_web_components_features_mcp-servers_mcp-servers-page-client_tsx_0dda8ih._.js.map +1 -1
- package/web/.next/server/chunks/ssr/0ukq_presentation_web_components_features_settings_settings-page-client_tsx_0j1uius._.js +1 -1
- package/web/.next/server/chunks/ssr/0ukq_presentation_web_components_features_settings_settings-page-client_tsx_0j1uius._.js.map +1 -1
- package/web/.next/server/chunks/ssr/11y9_components_common_control-center-drawer_repository-drawer-client_tsx_09z.znp._.js +1 -1
- package/web/.next/server/chunks/ssr/11y9_components_common_control-center-drawer_repository-drawer-client_tsx_09z.znp._.js.map +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__0.5ojmt._.js +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__0.5ojmt._.js.map +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__05_qc0n._.js +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__05_qc0n._.js.map +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__0ge~xny._.js +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__0ge~xny._.js.map +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__0mwao26._.js +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__0mwao26._.js.map +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__0qda~yi._.js +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__0qda~yi._.js.map +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__0rv1gci._.js +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__0tq2syh._.js +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__0t~u8sd._.js +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__0t~u8sd._.js.map +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__10tll_l._.js +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__10tll_l._.js.map +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__12j29w-._.js +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__12j29w-._.js.map +1 -1
- package/web/.next/server/chunks/ssr/_01sesw0._.js +1 -1
- package/web/.next/server/chunks/ssr/_01sesw0._.js.map +1 -1
- package/web/.next/server/chunks/ssr/_069y.js._.js +2 -2
- package/web/.next/server/chunks/ssr/_069y.js._.js.map +1 -1
- package/web/.next/server/chunks/ssr/_096x3u~._.js +1 -1
- package/web/.next/server/chunks/ssr/_096x3u~._.js.map +1 -1
- package/web/.next/server/chunks/ssr/{_0ha3y7r._.js → _09b301s._.js} +2 -2
- package/web/.next/server/chunks/ssr/{_0ha3y7r._.js.map → _09b301s._.js.map} +1 -1
- package/web/.next/server/chunks/ssr/_0__4si~._.js +1 -1
- package/web/.next/server/chunks/ssr/_0__4si~._.js.map +1 -1
- package/web/.next/server/chunks/ssr/_0_m17kl._.js +1 -1
- package/web/.next/server/chunks/ssr/_0_m17kl._.js.map +1 -1
- package/web/.next/server/chunks/ssr/_0d4miu.._.js +1 -1
- package/web/.next/server/chunks/ssr/_0d4miu.._.js.map +1 -1
- package/web/.next/server/chunks/ssr/_0e8ern9._.js +1 -1
- package/web/.next/server/chunks/ssr/_0e8ern9._.js.map +1 -1
- package/web/.next/server/chunks/ssr/_0fswe4r._.js +1 -1
- package/web/.next/server/chunks/ssr/_0p3~u8u._.js +2 -2
- package/web/.next/server/chunks/ssr/_0p3~u8u._.js.map +1 -1
- package/web/.next/server/chunks/ssr/_0r.3n~3._.js +1 -1
- package/web/.next/server/chunks/ssr/_0r.3n~3._.js.map +1 -1
- package/web/.next/server/chunks/ssr/_0t59q8r._.js +1 -1
- package/web/.next/server/chunks/ssr/_0t59q8r._.js.map +1 -1
- package/web/.next/server/chunks/ssr/{_0g36k1q._.js → _0u09c2.._.js} +2 -2
- package/web/.next/server/chunks/ssr/{_0g36k1q._.js.map → _0u09c2.._.js.map} +1 -1
- package/web/.next/server/chunks/ssr/_0vm01xk._.js +3 -0
- package/web/.next/server/chunks/ssr/_0vm01xk._.js.map +1 -0
- package/web/.next/server/chunks/ssr/_0vyfc4b._.js +1 -1
- package/web/.next/server/chunks/ssr/_0vyfc4b._.js.map +1 -1
- package/web/.next/server/chunks/ssr/_0w-_hww._.js +1 -1
- package/web/.next/server/chunks/ssr/_0w-_hww._.js.map +1 -1
- package/web/.next/server/chunks/ssr/_0zk-h5w._.js +1 -1
- package/web/.next/server/chunks/ssr/_0zk-h5w._.js.map +1 -1
- package/web/.next/server/chunks/ssr/_0~7lwu_._.js +1 -1
- package/web/.next/server/chunks/ssr/_0~7lwu_._.js.map +1 -1
- package/web/.next/server/chunks/ssr/{_0b~rt5k._.js → _0~d-l61._.js} +2 -2
- package/web/.next/server/chunks/ssr/{_0b~rt5k._.js.map → _0~d-l61._.js.map} +1 -1
- package/web/.next/server/chunks/ssr/_1161g9x._.js +1 -1
- package/web/.next/server/chunks/ssr/_1161g9x._.js.map +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_mcp-servers_page_actions_0d.r4q..js +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_mcp-servers_page_actions_0d.r4q..js.map +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_plugins_page_actions_0rdndum.js +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_plugins_page_actions_0rdndum.js.map +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_skills_page_actions_05m2q~u.js +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_skills_page_actions_05m2q~u.js.map +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_tools_page_actions_0.6zk.t.js +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web__next-internal_server_app_tools_page_actions_0.6zk.t.js.map +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_app_actions_approve-feature_ts_0pjb_re._.js +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_app_actions_open-ide_ts_0w2wqvu._.js +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_components_features_control-center_0l3oxx9._.js +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_components_features_control-center_0l3oxx9._.js.map +1 -1
- package/web/.next/server/middleware-build-manifest.js +3 -3
- package/web/.next/server/pages/500.html +1 -1
- package/web/.next/server/server-reference-manifest.js +1 -1
- package/web/.next/server/server-reference-manifest.json +57 -57
- package/web/.next/static/chunks/{17t4j5hdn_bcj.js → 050mn~oci41h6.js} +3 -3
- package/web/.next/static/chunks/{06fk~iz2u90ux.js → 06_a861w0tkp6.js} +1 -1
- package/web/.next/static/chunks/{0nkxltjer~us7.js → 07kpqi8hle98h.js} +1 -1
- package/web/.next/static/chunks/{08-x1y93o~z1u.js → 08w-qt8wfe5u..js} +1 -1
- package/web/.next/static/chunks/{0nw5kg.d92o~s.js → 0mekjif_lg0-r.js} +2 -2
- package/web/.next/static/chunks/{0isdv5nl9ixzx.js → 0pb77veci.7gd.js} +1 -1
- package/web/.next/static/chunks/{163wx0qvsyhgb.js → 0t~1ohqb2m7ma.js} +1 -1
- package/web/.next/static/chunks/{02ow0rjxjqsob.js → 0ul697ie_gsw9.js} +1 -1
- package/web/.next/static/chunks/0whqmoyf3zd67.js +1 -0
- package/web/.next/static/chunks/{0irjgz-p.9i6s.js → 0xee.1sl6c~24.js} +1 -1
- package/web/.next/static/chunks/{0~z22-y-2-50b.js → 0~9hrc9~63dvr.js} +1 -1
- package/web/.next/static/chunks/10p0lo4adb2~5.js +1 -0
- package/web/.next/static/chunks/14ixmk5pm1-rc.js +8 -0
- package/web/.next/static/chunks/{04mde8apvce...js → 159n33nvplqug.js} +1 -1
- package/web/.next/static/chunks/167z9~gq-q~oy.js +1 -0
- package/web/.next/server/chunks/ssr/_0av5r-b._.js +0 -3
- package/web/.next/server/chunks/ssr/_0av5r-b._.js.map +0 -1
- package/web/.next/static/chunks/0-479g9ihl1ga.js +0 -1
- package/web/.next/static/chunks/05uewqqwl93w2.js +0 -8
- package/web/.next/static/chunks/16mt3g3q98v_k.js +0 -1
- package/web/.next/static/chunks/173rm.h7j3_7c.js +0 -1
- /package/web/.next/static/{cK5RMkxfAPELBU1fhTnIV → q4u94V1z_KGlqS1uxSgT2}/_buildManifest.js +0 -0
- /package/web/.next/static/{cK5RMkxfAPELBU1fhTnIV → q4u94V1z_KGlqS1uxSgT2}/_clientMiddlewareManifest.js +0 -0
- /package/web/.next/static/{cK5RMkxfAPELBU1fhTnIV → q4u94V1z_KGlqS1uxSgT2}/_ssgManifest.js +0 -0
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"sources":["../../../../../../../node_modules/.pnpm/lucide-react%401.7.0_react%4019.2.4/node_modules/lucide-react/src/icons/external-link.ts","../../../../../../../node_modules/.pnpm/lucide-react%401.7.0_react%4019.2.4/node_modules/lucide-react/src/icons/terminal.ts","../../../../../../../src/presentation/web/components/common/base-drawer/index.ts","../../../../../../../node_modules/.pnpm/%40radix-ui%2Breact-switch%401.2.6_%40types%2Breact-dom%4019.2.3_%40types%2Breact%4019.2.14__%40types%2Breact_e3738c514c10df2ef7e24af5ee461853/node_modules/%40radix-ui/react-switch/dist/index.mjs","../../../../../../../src/presentation/web/components/ui/switch.tsx","../../../../../../../src/presentation/web/components/common/page-header/page-header.tsx","../../../../../../../src/presentation/web/components/common/empty-state/empty-state.tsx","../../../../../../../src/presentation/web/components/ui/card.tsx","../../../../../../../src/presentation/web/components/features/plugins/plugins-page-client.tsx","../../../../../../../src/presentation/web/components/features/plugins/plugin-card.tsx","../../../../../../../src/presentation/web/components/features/plugins/plugin-detail-drawer.tsx","../../../../../../../src/presentation/web/app/actions/data%3A50bb9f%20%3Ctext/javascript%3E","../../../../../../../src/presentation/web/app/actions/data%3A8bce77%20%3Ctext/javascript%3E","../../../../../../../src/presentation/web/app/actions/data%3Aeb2f94%20%3Ctext/javascript%3E","../../../../../../../src/presentation/web/app/actions/data%3Aa22b06%20%3Ctext/javascript%3E"],"sourcesContent":["import createLucideIcon from '../createLucideIcon';\nimport { IconNode } from '../types';\n\nexport const __iconNode: IconNode = [\n ['path', { d: 'M15 3h6v6', key: '1q9fwt' }],\n ['path', { d: 'M10 14 21 3', key: 'gplh6r' }],\n ['path', { d: 'M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6', key: 'a6xqqp' }],\n];\n\n/**\n * @component @name ExternalLink\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview  - https://lucide.dev/icons/external-link\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst ExternalLink = createLucideIcon('external-link', __iconNode);\n\nexport default ExternalLink;\n","import createLucideIcon from '../createLucideIcon';\nimport { IconNode } from '../types';\n\nexport const __iconNode: IconNode = [\n ['path', { d: 'M12 19h8', key: 'baeox8' }],\n ['path', { d: 'm4 17 6-6-6-6', key: '1yngyt' }],\n];\n\n/**\n * @component @name Terminal\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview  - https://lucide.dev/icons/terminal\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst Terminal = createLucideIcon('terminal', __iconNode);\n\nexport default Terminal;\n","export { BaseDrawer, type BaseDrawerProps } from './base-drawer';\n","\"use client\";\n\n// src/switch.tsx\nimport * as React from \"react\";\nimport { composeEventHandlers } from \"@radix-ui/primitive\";\nimport { useComposedRefs } from \"@radix-ui/react-compose-refs\";\nimport { createContextScope } from \"@radix-ui/react-context\";\nimport { useControllableState } from \"@radix-ui/react-use-controllable-state\";\nimport { usePrevious } from \"@radix-ui/react-use-previous\";\nimport { useSize } from \"@radix-ui/react-use-size\";\nimport { Primitive } from \"@radix-ui/react-primitive\";\nimport { jsx, jsxs } from \"react/jsx-runtime\";\nvar SWITCH_NAME = \"Switch\";\nvar [createSwitchContext, createSwitchScope] = createContextScope(SWITCH_NAME);\nvar [SwitchProvider, useSwitchContext] = createSwitchContext(SWITCH_NAME);\nvar Switch = React.forwardRef(\n (props, forwardedRef) => {\n const {\n __scopeSwitch,\n name,\n checked: checkedProp,\n defaultChecked,\n required,\n disabled,\n value = \"on\",\n onCheckedChange,\n form,\n ...switchProps\n } = props;\n const [button, setButton] = React.useState(null);\n const composedRefs = useComposedRefs(forwardedRef, (node) => setButton(node));\n const hasConsumerStoppedPropagationRef = React.useRef(false);\n const isFormControl = button ? form || !!button.closest(\"form\") : true;\n const [checked, setChecked] = useControllableState({\n prop: checkedProp,\n defaultProp: defaultChecked ?? false,\n onChange: onCheckedChange,\n caller: SWITCH_NAME\n });\n return /* @__PURE__ */ jsxs(SwitchProvider, { scope: __scopeSwitch, checked, disabled, children: [\n /* @__PURE__ */ jsx(\n Primitive.button,\n {\n type: \"button\",\n role: \"switch\",\n \"aria-checked\": checked,\n \"aria-required\": required,\n \"data-state\": getState(checked),\n \"data-disabled\": disabled ? \"\" : void 0,\n disabled,\n value,\n ...switchProps,\n ref: composedRefs,\n onClick: composeEventHandlers(props.onClick, (event) => {\n setChecked((prevChecked) => !prevChecked);\n if (isFormControl) {\n hasConsumerStoppedPropagationRef.current = event.isPropagationStopped();\n if (!hasConsumerStoppedPropagationRef.current) event.stopPropagation();\n }\n })\n }\n ),\n isFormControl && /* @__PURE__ */ jsx(\n SwitchBubbleInput,\n {\n control: button,\n bubbles: !hasConsumerStoppedPropagationRef.current,\n name,\n value,\n checked,\n required,\n disabled,\n form,\n style: { transform: \"translateX(-100%)\" }\n }\n )\n ] });\n }\n);\nSwitch.displayName = SWITCH_NAME;\nvar THUMB_NAME = \"SwitchThumb\";\nvar SwitchThumb = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeSwitch, ...thumbProps } = props;\n const context = useSwitchContext(THUMB_NAME, __scopeSwitch);\n return /* @__PURE__ */ jsx(\n Primitive.span,\n {\n \"data-state\": getState(context.checked),\n \"data-disabled\": context.disabled ? \"\" : void 0,\n ...thumbProps,\n ref: forwardedRef\n }\n );\n }\n);\nSwitchThumb.displayName = THUMB_NAME;\nvar BUBBLE_INPUT_NAME = \"SwitchBubbleInput\";\nvar SwitchBubbleInput = React.forwardRef(\n ({\n __scopeSwitch,\n control,\n checked,\n bubbles = true,\n ...props\n }, forwardedRef) => {\n const ref = React.useRef(null);\n const composedRefs = useComposedRefs(ref, forwardedRef);\n const prevChecked = usePrevious(checked);\n const controlSize = useSize(control);\n React.useEffect(() => {\n const input = ref.current;\n if (!input) return;\n const inputProto = window.HTMLInputElement.prototype;\n const descriptor = Object.getOwnPropertyDescriptor(\n inputProto,\n \"checked\"\n );\n const setChecked = descriptor.set;\n if (prevChecked !== checked && setChecked) {\n const event = new Event(\"click\", { bubbles });\n setChecked.call(input, checked);\n input.dispatchEvent(event);\n }\n }, [prevChecked, checked, bubbles]);\n return /* @__PURE__ */ jsx(\n \"input\",\n {\n type: \"checkbox\",\n \"aria-hidden\": true,\n defaultChecked: checked,\n ...props,\n tabIndex: -1,\n ref: composedRefs,\n style: {\n ...props.style,\n ...controlSize,\n position: \"absolute\",\n pointerEvents: \"none\",\n opacity: 0,\n margin: 0\n }\n }\n );\n }\n);\nSwitchBubbleInput.displayName = BUBBLE_INPUT_NAME;\nfunction getState(checked) {\n return checked ? \"checked\" : \"unchecked\";\n}\nvar Root = Switch;\nvar Thumb = SwitchThumb;\nexport {\n Root,\n Switch,\n SwitchThumb,\n Thumb,\n createSwitchScope\n};\n//# sourceMappingURL=index.mjs.map\n","'use client';\n\nimport * as React from 'react';\nimport { Switch as SwitchPrimitive } from 'radix-ui';\n\nimport { cn } from '@/lib/utils';\n\nfunction Switch({\n className,\n size = 'default',\n ...props\n}: React.ComponentProps<typeof SwitchPrimitive.Root> & {\n size?: 'sm' | 'default';\n}) {\n return (\n <SwitchPrimitive.Root\n data-slot=\"switch\"\n data-size={size}\n className={cn(\n '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 cursor-pointer 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',\n className\n )}\n {...props}\n >\n <SwitchPrimitive.Thumb\n data-slot=\"switch-thumb\"\n className={cn(\n '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 rtl:data-[state=checked]:-translate-x-[calc(100%-2px)]'\n )}\n />\n </SwitchPrimitive.Root>\n );\n}\n\nexport { Switch };\n","import { cn } from '@/lib/utils';\n\nexport interface PageHeaderProps {\n title: string;\n description?: string;\n /** Optional eyebrow label above the title (e.g., \"DEVELOPER PORTAL\") */\n eyebrow?: string;\n children?: React.ReactNode;\n className?: string;\n}\n\n/*\n * PageHeader — Stitch editorial page header pattern.\n * Renders: tiny uppercase eyebrow → large bold title → muted description.\n * Matches the tools-page-client.tsx header treatment.\n * See .scratchpad/stitch/shipit-developer-portal/src/App.tsx:161\n */\nexport function PageHeader({ title, description, eyebrow, children, className }: PageHeaderProps) {\n return (\n <header className={cn('flex items-center justify-between gap-4', className)}>\n <div className=\"space-y-1.5\">\n {eyebrow ? (\n <span className=\"text-[10px] font-bold tracking-[0.2em] text-slate-400 uppercase\">\n {eyebrow}\n </span>\n ) : null}\n <div className=\"flex items-baseline gap-3\">\n <h1 className=\"text-foreground text-3xl font-black tracking-tight\">{title}</h1>\n </div>\n {description ? (\n <p className=\"text-muted-foreground text-sm font-medium\">{description}</p>\n ) : null}\n </div>\n {children ? <div data-slot=\"actions\">{children}</div> : null}\n </header>\n );\n}\n","import type { ReactNode, HTMLAttributes } from 'react';\nimport { cn } from '@/lib/utils';\n\nexport interface EmptyStateProps extends HTMLAttributes<HTMLDivElement> {\n icon?: ReactNode;\n title: string;\n description?: string;\n action?: ReactNode;\n}\n\nexport function EmptyState({\n icon,\n title,\n description,\n action,\n className,\n ...props\n}: EmptyStateProps) {\n return (\n <div\n className={cn('flex flex-col items-center gap-4 px-4 py-12 text-center', className)}\n {...props}\n >\n {icon ? <div className=\"text-muted-foreground\">{icon}</div> : null}\n <h3 className=\"text-lg font-semibold\">{title}</h3>\n {description ? <p className=\"text-muted-foreground max-w-md text-sm\">{description}</p> : null}\n {action ? <div className=\"mt-2\">{action}</div> : null}\n </div>\n );\n}\n","import * as React from 'react';\n\nimport { cn } from '@/lib/utils';\n\n/*\n * Card — shadcn primitive extended with Stitch's editorial-shadow utility.\n * The `editorial-shadow` class (globals.css) replaces the old `shadow` class\n * with a subtle shadow + ring combination that gives cards a \"lifted\" look\n * and renders consistently against the editorial surface palette in both\n * light and dark modes. The `border` class stays for explicit border visibility\n * in dense grids; editorial-shadow's ring provides the soft lift on top.\n */\nconst Card = React.forwardRef<HTMLDivElement, React.HTMLAttributes<HTMLDivElement>>(\n ({ className, ...props }, ref) => (\n <div\n ref={ref}\n className={cn('bg-card text-card-foreground editorial-shadow rounded-xl border', className)}\n {...props}\n />\n )\n);\nCard.displayName = 'Card';\n\nconst CardHeader = React.forwardRef<HTMLDivElement, React.HTMLAttributes<HTMLDivElement>>(\n ({ className, ...props }, ref) => (\n <div ref={ref} className={cn('flex flex-col space-y-1.5 p-6', className)} {...props} />\n )\n);\nCardHeader.displayName = 'CardHeader';\n\nconst CardTitle = React.forwardRef<HTMLDivElement, React.HTMLAttributes<HTMLDivElement>>(\n ({ className, ...props }, ref) => (\n <div\n ref={ref}\n className={cn('leading-none font-semibold tracking-tight', className)}\n {...props}\n />\n )\n);\nCardTitle.displayName = 'CardTitle';\n\nconst CardDescription = React.forwardRef<HTMLDivElement, React.HTMLAttributes<HTMLDivElement>>(\n ({ className, ...props }, ref) => (\n <div ref={ref} className={cn('text-muted-foreground text-sm', className)} {...props} />\n )\n);\nCardDescription.displayName = 'CardDescription';\n\nconst CardContent = React.forwardRef<HTMLDivElement, React.HTMLAttributes<HTMLDivElement>>(\n ({ className, ...props }, ref) => (\n <div ref={ref} className={cn('p-6 pt-0', className)} {...props} />\n )\n);\nCardContent.displayName = 'CardContent';\n\nconst CardFooter = React.forwardRef<HTMLDivElement, React.HTMLAttributes<HTMLDivElement>>(\n ({ className, ...props }, ref) => (\n <div ref={ref} className={cn('flex items-center p-6 pt-0', className)} {...props} />\n )\n);\nCardFooter.displayName = 'CardFooter';\n\nexport { Card, CardHeader, CardFooter, CardTitle, CardDescription, CardContent };\n","'use client';\n\nimport { useState, useMemo, useEffect, useTransition } from 'react';\nimport { Search, Blocks, AlertCircle } from 'lucide-react';\nimport { toast } from 'sonner';\nimport { Input } from '@/components/ui/input';\nimport { Button } from '@/components/ui/button';\nimport { PageHeader } from '@/components/common/page-header';\nimport { EmptyState } from '@/components/common/empty-state';\nimport { PluginCard } from './plugin-card';\nimport { PluginDetailDrawer } from './plugin-detail-drawer';\nimport { useTranslation } from 'react-i18next';\nimport { fetchPluginCatalogAction } from '@/app/actions/fetch-plugin-catalog';\nimport { installPluginAction } from '@/app/actions/install-plugin';\nimport { uninstallPluginAction } from '@/app/actions/uninstall-plugin';\nimport { togglePluginAction } from '@/app/actions/toggle-plugin';\nimport type {\n PluginMarketplaceEntry,\n InstalledPlugin,\n} from '@shipit-ai/core/application/ports/output/services/plugin-marketplace.interface';\n\nexport interface PluginsPageClientProps {\n proxyConfigured: boolean;\n isClaudeCode: boolean;\n}\n\nexport function PluginsPageClient({ proxyConfigured, isClaudeCode }: PluginsPageClientProps) {\n const { t } = useTranslation('web');\n const [, startTransition] = useTransition();\n const [searchQuery, setSearchQuery] = useState('');\n const [activeCategory, setActiveCategory] = useState<string | null>(null);\n const [statusFilter, setStatusFilter] = useState<'installed' | 'not-installed' | null>(null);\n const [selectedPlugin, setSelectedPlugin] = useState<PluginMarketplaceEntry | null>(null);\n const [plugins, setPlugins] = useState<PluginMarketplaceEntry[]>([]);\n const [installedPlugins, setInstalledPlugins] = useState<InstalledPlugin[]>([]);\n const [loading, setLoading] = useState(true);\n\n useEffect(() => {\n if (!proxyConfigured) {\n setLoading(false);\n return;\n }\n fetchPluginCatalogAction().then((result) => {\n setPlugins(result.plugins);\n setInstalledPlugins(result.installedPlugins);\n setLoading(false);\n });\n }, [proxyConfigured]);\n\n const categories = useMemo(() => {\n const cats = new Set<string>();\n for (const p of plugins) {\n if (p.category) cats.add(p.category);\n }\n return Array.from(cats).sort();\n }, [plugins]);\n\n const filteredPlugins = useMemo(() => {\n const query = searchQuery.toLowerCase();\n return plugins.filter((p) => {\n if (activeCategory && p.category !== activeCategory) return false;\n if (statusFilter) {\n const isInstalled = !!installedPlugins.find((ip) => ip.id.startsWith(`${p.name}@`));\n if (statusFilter === 'installed' && !isInstalled) return false;\n if (statusFilter === 'not-installed' && isInstalled) return false;\n }\n if (query) {\n const matchesName = p.name.toLowerCase().includes(query);\n const matchesDescription = p.description.toLowerCase().includes(query);\n if (!matchesName && !matchesDescription) return false;\n }\n return true;\n });\n }, [plugins, searchQuery, activeCategory, statusFilter, installedPlugins]);\n\n const getInstalled = (pluginName: string) =>\n installedPlugins.find((ip) => ip.id.startsWith(`${pluginName}@`));\n\n const handleInstall = (pluginName: string) => {\n startTransition(async () => {\n const result = await installPluginAction(pluginName, 'default');\n if (result.success) {\n toast.success(`${pluginName} installed`);\n const catalog = await fetchPluginCatalogAction();\n setInstalledPlugins(catalog.installedPlugins);\n } else {\n toast.error(result.error ?? 'Installation failed');\n }\n });\n };\n\n const handleUninstall = (pluginName: string) => {\n startTransition(async () => {\n const result = await uninstallPluginAction(pluginName, 'default');\n if (result.success) {\n toast.success(`${pluginName} uninstalled`);\n const catalog = await fetchPluginCatalogAction();\n setInstalledPlugins(catalog.installedPlugins);\n } else {\n toast.error(result.error ?? 'Uninstallation failed');\n }\n });\n };\n\n const handleToggle = (pluginName: string, enabled: boolean) => {\n startTransition(async () => {\n const result = await togglePluginAction(pluginName, 'default', enabled);\n if (result.success) {\n toast.success(`${pluginName} ${enabled ? 'enabled' : 'disabled'}`);\n const catalog = await fetchPluginCatalogAction();\n setInstalledPlugins(catalog.installedPlugins);\n } else {\n toast.error(result.error ?? 'Toggle failed');\n }\n });\n };\n\n if (!isClaudeCode) {\n return (\n <div className=\"flex flex-col gap-8 p-8\">\n <PageHeader eyebrow=\"Developer Portal\" title={t('plugins.title')} />\n <EmptyState icon={<AlertCircle className=\"size-10\" />} title={t('plugins.wrongAgent')} />\n </div>\n );\n }\n\n if (!proxyConfigured) {\n return (\n <div className=\"flex flex-col gap-8 p-8\">\n <PageHeader eyebrow=\"Developer Portal\" title={t('plugins.title')} />\n <EmptyState icon={<AlertCircle className=\"size-10\" />} title={t('plugins.noProxy')} />\n </div>\n );\n }\n\n if (loading) {\n return (\n <div className=\"flex flex-col gap-8 p-8\">\n <PageHeader eyebrow=\"Developer Portal\" title={t('plugins.title')} />\n <div className=\"text-muted-foreground text-center text-sm\">\n {t('accessibility.loading')}...\n </div>\n </div>\n );\n }\n\n if (plugins.length === 0) {\n return (\n <div className=\"flex flex-col gap-8 p-8\">\n <PageHeader eyebrow=\"Developer Portal\" title={t('plugins.title')} />\n <EmptyState icon={<Blocks className=\"size-10\" />} title={t('plugins.emptyState')} />\n </div>\n );\n }\n\n return (\n <div className=\"flex flex-col gap-8 p-8\">\n <PageHeader eyebrow=\"Developer Portal\" title={t('plugins.title')} />\n\n {/* Search */}\n <div className=\"relative\">\n <Search className=\"text-muted-foreground absolute top-1/2 left-3 size-4 -translate-y-1/2\" />\n <Input\n placeholder={t('plugins.searchPlaceholder')}\n value={searchQuery}\n onChange={(e) => setSearchQuery(e.target.value)}\n className=\"ps-9\"\n data-testid=\"plugin-search\"\n />\n </div>\n\n {/* Filter pills */}\n <div className=\"flex flex-wrap items-center gap-4\">\n {/* Category */}\n <div className=\"flex flex-wrap gap-2\">\n <Button\n variant={activeCategory === null ? 'default' : 'outline'}\n size=\"sm\"\n onClick={() => setActiveCategory(null)}\n >\n {t('plugins.allCategories')}\n </Button>\n {categories.map((cat) => (\n <Button\n key={cat}\n variant={activeCategory === cat ? 'default' : 'outline'}\n size=\"sm\"\n onClick={() => setActiveCategory(cat === activeCategory ? null : cat)}\n >\n {cat}\n </Button>\n ))}\n </div>\n\n <div className=\"bg-border h-6 w-px\" />\n\n {/* Status */}\n <div className=\"flex flex-wrap gap-2\">\n <Button\n variant={statusFilter === null ? 'default' : 'outline'}\n size=\"sm\"\n onClick={() => setStatusFilter(null)}\n >\n All Status\n </Button>\n <Button\n variant={statusFilter === 'installed' ? 'default' : 'outline'}\n size=\"sm\"\n onClick={() => setStatusFilter(statusFilter === 'installed' ? null : 'installed')}\n >\n {t('plugins.installed')}\n </Button>\n <Button\n variant={statusFilter === 'not-installed' ? 'default' : 'outline'}\n size=\"sm\"\n onClick={() =>\n setStatusFilter(statusFilter === 'not-installed' ? null : 'not-installed')\n }\n >\n {t('plugins.notInstalled')}\n </Button>\n </div>\n </div>\n\n {/* Plugin grid */}\n {filteredPlugins.length > 0 ? (\n <div className=\"grid grid-cols-1 gap-4 sm:grid-cols-2 lg:grid-cols-3\">\n {filteredPlugins.map((plugin) => (\n <PluginCard\n key={plugin.name}\n plugin={plugin}\n installed={getInstalled(plugin.name)}\n onSelect={setSelectedPlugin}\n onToggle={handleToggle}\n />\n ))}\n </div>\n ) : (\n <EmptyState\n icon={<Search className=\"size-10\" />}\n title={t('plugins.emptyState')}\n action={\n <Button\n variant=\"outline\"\n onClick={() => {\n setSearchQuery('');\n setActiveCategory(null);\n setStatusFilter(null);\n }}\n >\n {t('plugins.clearFilters')}\n </Button>\n }\n />\n )}\n\n {/* Detail drawer */}\n <PluginDetailDrawer\n plugin={selectedPlugin}\n installed={selectedPlugin ? getInstalled(selectedPlugin.name) : undefined}\n open={!!selectedPlugin}\n onClose={() => setSelectedPlugin(null)}\n onInstall={handleInstall}\n onUninstall={handleUninstall}\n />\n </div>\n );\n}\n","'use client';\n\nimport { Card } from '@/components/ui/card';\nimport { Badge } from '@/components/ui/badge';\nimport { Switch } from '@/components/ui/switch';\nimport type {\n PluginMarketplaceEntry,\n InstalledPlugin,\n} from '@shipit-ai/core/application/ports/output/services/plugin-marketplace.interface';\nimport { useTranslation } from 'react-i18next';\n\nexport interface PluginCardProps {\n plugin: PluginMarketplaceEntry;\n installed?: InstalledPlugin;\n onSelect: (plugin: PluginMarketplaceEntry) => void;\n onToggle?: (pluginName: string, enabled: boolean) => void;\n}\n\nexport function PluginCard({ plugin, installed, onSelect, onToggle }: PluginCardProps) {\n const { t } = useTranslation('web');\n\n return (\n <Card\n className=\"cursor-pointer p-5 transition-all duration-300 hover:scale-[1.02] hover:shadow-md hover:ring-slate-300 dark:hover:ring-slate-600\"\n role=\"button\"\n tabIndex={0}\n onClick={() => onSelect(plugin)}\n onKeyDown={(e) => {\n if (e.key === 'Enter' || e.key === ' ') {\n e.preventDefault();\n onSelect(plugin);\n }\n }}\n data-testid={`plugin-card-${plugin.name}`}\n >\n <h3 className=\"text-foreground text-sm leading-tight font-bold tracking-tight\">\n {plugin.name}\n </h3>\n\n {plugin.version ? (\n <p className=\"text-muted-foreground mt-1 font-mono text-xs\">v{plugin.version}</p>\n ) : null}\n\n <p className=\"text-muted-foreground mt-3 line-clamp-2 text-xs leading-relaxed\">\n {plugin.description}\n </p>\n\n <div className=\"mt-4 flex flex-wrap items-center gap-1.5\">\n {plugin.category ? <Badge variant=\"outline\">{plugin.category}</Badge> : null}\n {installed ? (\n <Badge variant=\"secondary\">{t('plugins.installed')}</Badge>\n ) : (\n <Badge variant=\"outline\" className=\"opacity-50\">\n {t('plugins.notInstalled')}\n </Badge>\n )}\n </div>\n\n {installed ? (\n <div\n className=\"mt-3 flex items-center gap-2\"\n onClick={(e) => e.stopPropagation()}\n onKeyDown={(e) => e.stopPropagation()}\n >\n <Switch\n checked={installed.enabled}\n onCheckedChange={(checked) => onToggle?.(plugin.name, checked)}\n data-testid={`plugin-toggle-${plugin.name}`}\n />\n <span className=\"text-muted-foreground text-xs\">\n {installed.enabled ? t('plugins.disable') : t('plugins.enable')}\n </span>\n </div>\n ) : null}\n </Card>\n );\n}\n","'use client';\n\nimport { BaseDrawer } from '@/components/common/base-drawer';\nimport { DrawerTitle, DrawerDescription } from '@/components/ui/drawer';\nimport { Badge } from '@/components/ui/badge';\nimport { Button } from '@/components/ui/button';\nimport { Separator } from '@/components/ui/separator';\nimport { ExternalLink } from 'lucide-react';\nimport { useTranslation } from 'react-i18next';\nimport type {\n PluginMarketplaceEntry,\n InstalledPlugin,\n} from '@shipit-ai/core/application/ports/output/services/plugin-marketplace.interface';\n\nexport interface PluginDetailDrawerProps {\n plugin: PluginMarketplaceEntry | null;\n installed?: InstalledPlugin;\n open: boolean;\n onClose: () => void;\n onInstall?: (pluginName: string) => void;\n onUninstall?: (pluginName: string) => void;\n}\n\nfunction getSourceUrl(plugin: PluginMarketplaceEntry): string | null {\n const { source } = plugin;\n if (source.source === 'github' && source.repo) {\n return `https://github.com/${source.repo}`;\n }\n if ((source.source === 'url' || source.source === 'git-subdir') && source.url) {\n try {\n const url = new URL(source.url);\n if (url.protocol === 'https:') return source.url;\n } catch {\n // Invalid URL — don't render as link\n }\n }\n return null;\n}\n\nexport function PluginDetailDrawer({\n plugin,\n installed,\n open,\n onClose,\n onInstall,\n onUninstall,\n}: PluginDetailDrawerProps) {\n const { t } = useTranslation('web');\n\n if (!plugin) return null;\n\n const sourceUrl = getSourceUrl(plugin);\n\n return (\n <BaseDrawer open={open} onClose={onClose}>\n <DrawerTitle className=\"text-foreground text-lg font-bold tracking-tight\">\n {plugin.name}\n </DrawerTitle>\n <DrawerDescription className=\"text-muted-foreground mt-1 text-sm\">\n {plugin.description}\n </DrawerDescription>\n\n <Separator className=\"my-4\" />\n\n <div className=\"space-y-3\">\n {plugin.version ? (\n <div className=\"flex items-center justify-between\">\n <span className=\"text-muted-foreground text-sm\">{t('plugins.version')}</span>\n <span className=\"font-mono text-sm\">v{plugin.version}</span>\n </div>\n ) : null}\n\n {plugin.category ? (\n <div className=\"flex items-center justify-between\">\n <span className=\"text-muted-foreground text-sm\">{t('plugins.category')}</span>\n <Badge variant=\"outline\">{plugin.category}</Badge>\n </div>\n ) : null}\n\n {sourceUrl ? (\n <div className=\"flex items-center justify-between\">\n <span className=\"text-muted-foreground text-sm\">{t('plugins.source')}</span>\n <a\n href={sourceUrl}\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n className=\"text-primary hover:text-primary/80 inline-flex items-center gap-1 text-sm underline underline-offset-2\"\n >\n {plugin.source.repo ?? 'Repository'}\n <ExternalLink className=\"size-3\" />\n </a>\n </div>\n ) : null}\n\n {plugin.keywords && plugin.keywords.length > 0 ? (\n <div className=\"flex flex-wrap gap-1.5 pt-2\">\n {plugin.keywords.map((kw) => (\n <Badge key={kw} variant=\"outline\" className=\"text-xs\">\n {kw}\n </Badge>\n ))}\n </div>\n ) : null}\n </div>\n\n <Separator className=\"my-4\" />\n\n <div className=\"flex gap-2\">\n {installed ? (\n <Button\n variant=\"destructive\"\n size=\"sm\"\n onClick={() => onUninstall?.(plugin.name)}\n data-testid=\"plugin-uninstall-button\"\n >\n {t('plugins.uninstall')}\n </Button>\n ) : (\n <Button\n size=\"sm\"\n onClick={() => onInstall?.(plugin.name)}\n data-testid=\"plugin-install-button\"\n >\n {t('plugins.install')}\n </Button>\n )}\n </div>\n </BaseDrawer>\n );\n}\n","/* __next_internal_action_entry_do_not_use__ [{\"004b32674974993d1f73b9d4d1531dd8645e319259\":{\"name\":\"fetchPluginCatalogAction\"}},\"src/presentation/web/app/actions/fetch-plugin-catalog.ts\",\"\"] */\"use turbopack no side effects\";import{createServerReference,callServer,findSourceMapURL}from\"private-next-rsc-action-client-wrapper\";const $$RSC_SERVER_ACTION_0=/*#__PURE__*/createServerReference(\"004b32674974993d1f73b9d4d1531dd8645e319259\",callServer,void 0,findSourceMapURL,\"fetchPluginCatalogAction\");export{$$RSC_SERVER_ACTION_0 as fetchPluginCatalogAction};","/* __next_internal_action_entry_do_not_use__ [{\"7079e10031c0831483fd76842ab90f0d32b86ed15b\":{\"name\":\"installPluginAction\"}},\"src/presentation/web/app/actions/install-plugin.ts\",\"\"] */\"use turbopack no side effects\";import{createServerReference,callServer,findSourceMapURL}from\"private-next-rsc-action-client-wrapper\";const $$RSC_SERVER_ACTION_0=/*#__PURE__*/createServerReference(\"7079e10031c0831483fd76842ab90f0d32b86ed15b\",callServer,void 0,findSourceMapURL,\"installPluginAction\");export{$$RSC_SERVER_ACTION_0 as installPluginAction};","/* __next_internal_action_entry_do_not_use__ [{\"60611762e0ff2edbeb52de1a638e01b2b2c7599262\":{\"name\":\"uninstallPluginAction\"}},\"src/presentation/web/app/actions/uninstall-plugin.ts\",\"\"] */\"use turbopack no side effects\";import{createServerReference,callServer,findSourceMapURL}from\"private-next-rsc-action-client-wrapper\";const $$RSC_SERVER_ACTION_0=/*#__PURE__*/createServerReference(\"60611762e0ff2edbeb52de1a638e01b2b2c7599262\",callServer,void 0,findSourceMapURL,\"uninstallPluginAction\");export{$$RSC_SERVER_ACTION_0 as uninstallPluginAction};","/* __next_internal_action_entry_do_not_use__ [{\"70cb411e0e055266f834163d0748928989f92e71bb\":{\"name\":\"togglePluginAction\"}},\"src/presentation/web/app/actions/toggle-plugin.ts\",\"\"] */\"use turbopack no side effects\";import{createServerReference,callServer,findSourceMapURL}from\"private-next-rsc-action-client-wrapper\";const $$RSC_SERVER_ACTION_0=/*#__PURE__*/createServerReference(\"70cb411e0e055266f834163d0748928989f92e71bb\",callServer,void 0,findSourceMapURL,\"togglePluginAction\");export{$$RSC_SERVER_ACTION_0 as togglePluginAction};"],"names":["SWITCH_NAME","createSwitchContext","createSwitchScope","SwitchProvider","useSwitchContext","Switch","props","forwardedRef","__scopeSwitch","name","checked","checkedProp","defaultChecked","required","disabled","value","onCheckedChange","form","switchProps","button","setButton","composedRefs","node","hasConsumerStoppedPropagationRef","isFormControl","closest","setChecked","prop","defaultProp","onChange","caller","scope","children","type","role","getState","ref","onClick","event","prevChecked","current","isPropagationStopped","stopPropagation","SwitchBubbleInput","control","bubbles","style","transform","displayName","THUMB_NAME","SwitchThumb","thumbProps","context","span","BUBBLE_INPUT_NAME","controlSize","input","inputProto","window","HTMLInputElement","prototype","descriptor","Object","getOwnPropertyDescriptor","set","Event","call","dispatchEvent","tabIndex","position","pointerEvents","opacity","margin","Root","Thumb","PageHeader","title","description","eyebrow","className","EmptyState","icon","action","Card","CardHeader","CardTitle","CardDescription","CardContent","CardFooter","PluginCard","plugin","installed","onSelect","onToggle","t","onKeyDown","e","key","preventDefault","version","category","variant","enabled"],"mappings":"mCAoBA,CAAA,CAAA,CAAA,CAAA,AAAM,CAAN,CAAM,CAAA,EAAe,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAf,AAAe,CAAf,AAAe,CAAf,AAAe,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,GAAA,EAAiB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAjBF,CAiBmB,AAhBrD,CAgBqD,AAhBpD,CAgBoD,AAhBpD,CAAA,AAgBoD,CAAA,AAhBpD,CAAA,AAgBoD,CAAA,AAhBpD,CAAA,AAgBoD,CAhBpD,AAAQ,AAgB4C,CAhB5C,AAgB4C,AAhB1C,CAgBoD,CAAA,AAhBjD,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAa,AAAb,CAAa,CAAA,CAAA,CAAA,AAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAU,CAAA,CAC1C,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,AAAQ,CAAA,AAAE,EAAG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,AAAe,CAAA,CAAA,CAAA,CAAA,AAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAU,CAAA,CAC5C,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,AAAQ,CAAA,AAAE,EAAG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,AAA4D,CAAA,CAAA,CAAA,CAAA,AAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAU,CAAA,CAC3F,qDCYA,CAAA,CAAA,CAAA,CAAA,AAAM,CAAN,CAAM,CAAA,EAAW,CAAA,CAAA,CAAX,AAAW,CAAA,AAAX,CAAW,AAAX,CAAW,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,GAAA,EAAiB,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAhBE,CAClC,AAe4C,CAf3C,AAe2C,CAf3C,AAe2C,CAf3C,AAe2C,CAf3C,AAe2C,CAf3C,AAe2C,CAf3C,AAe2C,CAAA,AAf3C,CAAQ,AAAR,AAe2C,CAfnC,AAAE,AAeiC,CAAU,CAfxC,AAewC,CAfxC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,AAAY,CAAA,CAAA,CAAA,CAAA,AAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAU,CAAA,CACzC,CAAC,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,AAAQ,CAAA,AAAE,EAAG,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,AAAiB,CAAA,CAAA,CAAA,CAAA,AAAK,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAA,CAAU,CAAA,CAChD,qDCNA,EAAA,CAAA,CAAA,wDCGA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,OAEIA,EAAc,SACd,CAACC,EAAqBC,EAAkB,CAAG,CAAA,EAAA,EAAA,kBAAA,AAAkB,EAACF,GAC9D,CAACG,EAAgBC,EAAiB,CAAGH,EAAoBD,GACzDK,EAAS,EAAA,UAAgB,CAC3B,CAACC,EAAOC,KACN,GAAM,eACJC,CAAa,MACbC,CAAI,CACJC,QAASC,CAAW,CACpBC,gBAAc,UACdC,CAAQ,UACRC,CAAQ,CACRC,QAAQ,IAAI,iBACZC,CAAe,MACfC,CAAI,CACJ,GAAGC,EACJ,CAAGZ,EACE,CAACa,EAAQC,EAAU,CAAG,EAAA,QAAc,CAAC,MACrCC,EAAe,CAAA,EAAA,EAAA,eAAA,AAAe,EAACd,EAAc,AAACe,GAASF,EAAUE,IACjEC,EAAmC,EAAA,MAAY,EAAC,GAChDC,GAAgBL,GAASF,GAAQ,CAAC,CAACE,EAAOM,OAAO,CAAC,QAClD,CAACf,CAD2D,CAClDgB,EAAW,CAAG,CAAA,EAAA,EAAA,oBAAA,AAAoB,EAAC,CACjDC,KAAMhB,EACNiB,YAAahB,IAAkB,EAC/BiB,SAAUb,EACVc,OAAQ9B,CACV,GACA,MAAuB,CAAhB,AAAgB,EAAA,EAAA,IAAA,AAAI,EAACG,EAAgB,CAAxB,AAA0B4B,MAAOvB,UAAeE,WAASI,EAAUkB,SAAU,CAC/E,CAAA,EAAA,EAAA,GAAA,AAAG,EACjB,EAAA,SAAS,CAACb,MAAM,CAChB,CACEc,KAAM,SACNC,KAAM,SACN,eAAgBxB,EAChB,gBAAiBG,EACjB,aAAcsB,EAASzB,GACvB,gBAAiBI,EAAW,GAAK,KAAK,WACtCA,QACAC,EACA,GAAGG,CAAW,CACdkB,IAAKf,EACLgB,QAAS,CAAA,EAAA,EAAA,oBAAA,AAAoB,EAAC/B,EAAM+B,OAAO,CAAE,AAACC,IAC5CZ,EAAW,AAACa,GAAgB,CAACA,GACzBf,IACFD,EAAiCiB,OAAO,CAAGF,CAD1B,CACgCG,oBAAoB,GACjE,AAAClB,EAAiCiB,OAAO,EAAEF,EAAMI,eAAe,GAExE,EACF,GAEFlB,GAAiC,CAAA,EAAA,EAAA,GAAA,AAAG,EAClCmB,EACA,CACEC,CAHa,OAGJzB,EACT0B,IAJ0B,IAIjB,CAACtB,EAAiCiB,OAAO,MAClD/B,QACAM,EACAL,mBACAG,WACAC,OACAG,EACA6B,MAAO,CAAEC,UAAW,mBAAoB,CAC1C,GAEH,AAAC,EACJ,GAEF1C,EAAO2C,WAAW,CAAGhD,EACrB,IAAIiD,EAAa,cACbC,EAAc,EAAA,UAAgB,CAChC,CAAC5C,EAAOC,KACN,GAAM,eAAEC,CAAa,CAAE,GAAG2C,EAAY,CAAG7C,EACnC8C,EAAUhD,EAAiB6C,EAAYzC,GAC7C,MAAuB,CAAA,AAAhB,EAAgB,EAAA,GAAA,AAAG,EACxB,EAAA,EADkB,OACT,CAAC6C,IAAI,CACd,CACE,aAAclB,EAASiB,EAAQ1C,OAAO,EACtC,gBAAiB0C,EAAQtC,QAAQ,CAAG,GAAK,KAAK,EAC9C,GAAGqC,CAAU,CACbf,IAAK7B,CACP,EAEJ,GAEF2C,EAAYF,WAAW,CAAGC,EAE1B,IAAIN,EAAoB,EAAA,UAAgB,CACtC,CAAC,eACCnC,CAAa,SACboC,CAAO,SACPlC,CAAO,CACPmC,WAAU,CAAI,CACd,GAAGvC,EACJ,CAAEC,KACD,IAAM6B,EAAM,EAAA,MAAY,CAAC,MACnBf,EAAe,CAAA,EAAA,EAAA,eAAe,AAAf,EAAgBe,EAAK7B,GACpCgC,EAAc,CAAA,EAAA,EAAA,WAAA,AAAW,EAAC7B,GAC1B6C,EAAc,CAAA,EAAA,EAAA,OAAA,AAAO,EAACX,GAgB5B,OAfA,AAeO,EAfP,SAAe,CAAC,CAeI,IAdlB,IAAMY,EAAQpB,EAAII,OAAO,CACzB,GAAI,CAACgB,EAAO,OAMZ,IAAM9B,EAAamC,AAJAC,OAAOC,wBAAwB,CAChDN,AAFiBC,OAAOC,gBAAgB,CAACC,SAAS,CAGlD,WAE4BI,GAAG,CACjC,GAAIzB,IAAgB7B,GAAWgB,EAAY,CACzC,IAAMY,EAAQ,IAAI2B,MAAM,QAAS,SAAEpB,CAAQ,GAC3CnB,EAAWwC,IAAI,CAACV,EAAO9C,GACvB8C,EAAMW,aAAa,CAAC7B,EACtB,CACF,EAAG,CAACC,EAAa7B,EAASmC,EAAQ,EACX,CAAA,EAAA,EAAA,GAAA,AAAG,EACxB,QACA,CACEZ,KAAM,WACN,eAAe,EACfrB,eAAgBF,EAChB,GAAGJ,CAAK,CACR8D,SAAU,CAAC,EACXhC,IAAKf,EACLyB,MAAO,CACL,GAAGxC,EAAMwC,KAAK,CACd,GAAGS,CAAW,CACdc,SAAU,WACVC,cAAe,OACfC,QAAS,EACTC,OAAQ,CACV,CACF,EAEJ,GAGF,SAASrC,EAASzB,CAAO,EACvB,OAAOA,EAAU,UAAY,WAC/B,CAHAiC,EAAkBK,WAAW,CAjDL,EAiDQM,gCAIrBjD,2CACC6C,uDClJZ,EAAA,EAAA,CAAA,CAAA,uBAEA,SAAS,AAAO,WACd,CAAS,CACT,OAAO,SAAS,CAChB,GAAG,EAGJ,EACC,MACE,CAAA,EAAA,EAAA,GAAA,EAAC,EAAgB,IAAI,CAAA,CACnB,YAAU,SACV,YAAW,EACX,UAAW,CAAA,EAAA,EAAA,EAAA,AAAE,EACX,wdACA,GAED,GAAG,CAAK,UAET,CAAA,EAAA,EAAA,GAAA,EAAC,EAAgB,KAAK,CAAA,CACpB,YAAU,eACV,UAAW,CAAA,EAAA,EAAA,EAAA,AAAE,EACX,0YAKV,yDChCA,EAAA,EAAA,CAAA,CAAA,2BAiBO,SAASyB,AAAW,OAAEC,CAAK,aAAEC,CAAW,SAAEC,CAAO,UAAE9C,CAAQ,WAAE+C,CAAS,CAAmB,EAC9F,MACE,CAAA,EAAA,EAAA,IAAA,EAAC,SAAA,CAAOA,UAAW,CAAA,EAAA,EAAA,EAAA,AAAE,EAAC,0CAA2CA,aAC/D,CAAA,EAAA,EAAA,IAAA,EAAC,MAAA,CAAIA,UAAU,wBACZD,EACC,CAAA,EAAA,EAAA,GAAA,EAAC,OAAA,CAAKC,UAAU,2EACbD,IAED,KACJ,CAAA,EAAA,EAAA,GAAA,EAAC,MAAA,CAAIC,UAAU,qCACb,CAAA,EAAA,EAAA,GAAA,EAAC,KAAA,CAAGA,UAAU,8DAAsDH,MAErEC,EACC,CAAA,EAAA,EAAA,GAAA,EAAC,IAAA,CAAEE,UAAU,qDAA6CF,IACxD,QAEL7C,EAAW,CAAA,EAAA,EAAA,GAAA,EAAC,MAAA,CAAI,YAAU,mBAAWA,IAAkB,OAG9D,uECnCA,EAAA,EAAA,CAAA,CAAA,2BASO,SAASgD,AAAW,MACzBC,CAAI,OACJL,CAAK,aACLC,CAAW,CACXK,QAAM,WACNH,CAAS,CACT,GAAGzE,EACa,EAChB,MACE,CAAA,EAAA,EAAA,IAAA,EAAC,MAAA,CACCyE,UAAW,CAAA,EAAA,EAAA,EAAA,AAAE,EAAC,0DAA2DA,GACxE,GAAGzE,CAAK,WAER2E,EAAO,CAAA,EAAA,EAAA,GAAA,EAAC,MAAA,CAAIF,UAAU,iCAAyBE,IAAc,KAC9D,CAAA,EAAA,EAAA,GAAA,EAAC,KAAA,CAAGF,UAAU,iCAAyBH,IACtCC,EAAc,CAAA,EAAA,EAAA,GAAA,EAAC,IAAA,CAAEE,UAAU,kDAA0CF,IAAmB,KACxFK,EAAS,CAAA,EAAA,EAAA,GAAA,EAAC,MAAA,CAAIH,UAAU,gBAAQG,IAAgB,OAGvD,iEC7BA,EAAA,EAAA,CAAA,CAAA,OAEA,EAAA,EAAA,CAAA,CAAA,OAUA,IAAMC,EAAO,EAAA,UAAgB,CAC3B,CAAC,WAAEJ,CAAS,CAAE,GAAGzE,EAAO,CAAE8B,IACxB,CAAA,EAAA,EAAA,GAAA,EAAC,MAAA,CACCA,IAAKA,EACL2C,UAAW,CAAA,EAAA,EAAA,EAAA,AAAE,EAAC,kEAAmEA,GAChF,GAAGzE,CAAK,IAIf6E,EAAKnC,WAAW,CAAG,OAEnB,IAAMoC,EAAa,EAAA,UAAgB,CACjC,CAAC,WAAEL,CAAS,CAAE,GAAGzE,EAAO,CAAE8B,IACxB,CAAA,EAAA,EAAA,GAAA,EAAC,MAAA,CAAIA,IAAKA,EAAK2C,UAAW,CAAA,EAAA,EAAA,EAAA,AAAE,EAAC,gCAAiCA,GAAa,GAAGzE,CAAK,IAGvF8E,EAAWpC,WAAW,CAAG,aAEzB,IAAMqC,EAAY,EAAA,UAAgB,CAChC,CAAC,WAAEN,CAAS,CAAE,GAAGzE,EAAO,CAAE8B,IACxB,CAAA,EAAA,EAAA,GAAA,EAAC,MAAA,CACCA,IAAKA,EACL2C,UAAW,CAAA,EAAA,EAAA,EAAA,AAAE,EAAC,4CAA6CA,GAC1D,GAAGzE,CAAK,IAIf+E,EAAUrC,WAAW,CAAG,YAExB,IAAMsC,EAAkB,EAAA,UAAgB,CACtC,CAAC,WAAEP,CAAS,CAAE,GAAGzE,EAAO,CAAE8B,IACxB,CAAA,EAAA,EAAA,GAAA,EAAC,MAAA,CAAIA,IAAKA,EAAK2C,UAAW,CAAA,EAAA,EAAA,EAAA,AAAE,EAAC,gCAAiCA,GAAa,GAAGzE,CAAK,IAGvFgF,EAAgBtC,WAAW,CAAG,kBAE9B,IAAMuC,EAAc,EAAA,UAAgB,CAClC,CAAC,WAAER,CAAS,CAAE,GAAGzE,EAAO,CAAE8B,IACxB,CAAA,EAAA,EAAA,GAAA,EAAC,MAAA,CAAIA,IAAKA,EAAK2C,UAAW,CAAA,EAAA,EAAA,EAAA,AAAE,EAAC,WAAYA,GAAa,GAAGzE,CAAK,GAGlEiF,GAAYvC,WAAW,CAAG,cAO1BwC,AALmB,EAAA,UAAgB,CACjC,CAAC,WAAET,CAAS,CAAE,GAAGzE,EAAO,CAAE8B,IACxB,CAAA,EAAA,EAAA,GAAA,EAAC,MAAA,CAAIA,IAAKA,EAAK2C,UAAW,CAAA,EAAA,EAAA,EAAA,AAAE,EAAC,6BAA8BA,GAAa,GAAGzE,CAAK,IAGzE0C,WAAW,CAAG,4NC1DzB,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,OAAA,EAAA,EAAA,CAAA,CAAA,OAAA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,CAAA,CAAA,OAAA,IAAA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,CAAA,CAAA,OAAA,IAAA,EAAA,EAAA,CAAA,CAAA,OCNA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,OAKA,EAAA,CAAA,CAAA,OAAA,IAAA,EAAA,EAAA,CAAA,CAAA,OASO,SAASyC,EAAW,QAAEC,CAAM,WAAEC,CAAS,UAAEC,CAAQ,UAAEC,CAAQ,CAAmB,EACnF,GAAM,GAAEC,CAAC,CAAE,CAAG,CAAA,EAAA,EAAA,cAAA,AAAc,EAAC,OAE7B,MACE,CAAA,EAAA,EAAA,IAAA,EAAC,EAAA,IAAI,CAAA,CACHf,UAAU,mIACV7C,KAAK,SACLkC,SAAU,EACV/B,QAAS,IAAMuD,EAASF,GACxBK,UAAW,AAACC,KACI,UAAVA,EAAEC,GAAG,EAA0B,MAAVD,EAAEC,GAAG,AAAK,GAAK,CACtCD,EAAEE,cAAc,GAChBN,EAASF,GAEb,EACA,cAAa,CAAC,YAAY,EAAEA,EAAOjF,IAAI,CAAA,CAAE,WAEzC,CAAA,EAAA,EAAA,GAAA,EAAC,KAAA,CAAGsE,UAAU,0EACXW,EAAOjF,IAAI,GAGbiF,EAAOS,OAAO,CACb,CAAA,EAAA,EAAA,IAAA,EAAC,IAAA,CAAEpB,UAAU,yDAA+C,IAAEW,EAAOS,OAAO,IAC1E,KAEJ,CAAA,EAAA,EAAA,GAAA,EAAC,IAAA,CAAEpB,UAAU,2EACVW,EAAOb,WAAW,GAGrB,CAAA,EAAA,EAAA,IAAA,EAAC,MAAA,CAAIE,UAAU,qDACZW,EAAOU,QAAQ,CAAG,CAAA,EAAA,EAAA,GAAA,EAAC,EAAA,KAAK,CAAA,CAACC,QAAQ,mBAAWX,EAAOU,QAAQ,GAAY,KACvET,EACC,CAAA,EAAA,EAAA,GAAA,EAAC,EAAA,KAAK,CAAA,CAACU,QAAQ,qBAAaP,EAAE,uBAE9B,CAAA,EAAA,EAAA,GAAA,EAAC,EAAA,KAAK,CAAA,CAACO,QAAQ,UAAUtB,UAAU,sBAChCe,EAAE,6BAKRH,EACC,CAAA,EAAA,EAAA,IAAA,EAAC,MAAA,CACCZ,UAAU,+BACV1C,QAAS,AAAC2D,GAAMA,EAAEtD,eAAe,GACjCqD,UAAW,AAACC,GAAMA,EAAEtD,eAAe,aAEnC,CAAA,EAAA,EAAA,GAAA,EAAC,EAAA,MAAM,CAAA,CACLhC,QAASiF,EAAUW,OAAO,CAC1BtF,gBAAiB,AAACN,GAAYmF,IAAWH,EAAOjF,IAAI,CAAEC,GACtD,cAAa,CAAC,cAAc,EAAEgF,EAAOjF,IAAI,CAAA,CAAE,GAE7C,CAAA,EAAA,EAAA,GAAA,EAAC,OAAA,CAAKsE,UAAU,yCACOe,EAApBH,EAAUW,OAAO,CAAK,kBAAuB,GAAFR,oBAG9C,OAGV,CC1EA,EAAA,CAAA,CAAA,OAAA,IAAA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,MAGA,EAAA,EAAA,CAAA,CAAA,OACA,EAAA,EAAA,CAAA,CAAA,GAgCO,SAAS,EAAmB,QACjC,CAAM,WACN,CAAS,MACT,CAAI,SACJ,CAAO,WACP,CAAS,aACT,CAAW,CACa,EACxB,GAAM,GAAEf,CAAC,CAAE,CAAG,CAAA,EAAA,EAAA,cAAA,AAAc,EAAC,OAE7B,GAAI,CAAC,EAAQ,OAAO,KAEpB,IAAM,EAAY,AA5BpB,SAAS,AAAa,CAA8B,EAClD,GAAM,QAAE,CAAM,CAAE,CAAG,EACnB,GAAsB,WAAlB,EAAO,MAAM,EAAiB,EAAO,IAAI,CAC3C,CAD6C,KACtC,CAAC,mBAAmB,EAAE,EAAO,IAAIkB,CAAAA,CAAE,CAE5C,GAAI,CAAC,AAAkB,UAAX,MAAM,EAAgC,eAAlB,EAAO,MAAM,AAAK,CAAY,EAAK,EAAO,GAAG,CAC3E,CAD6E,EACzE,CACF,IAAM,EAAM,IAAI,IAAI,EAAO,GAAG,EAC9B,GAAqB,WAAjB,EAAIxF,QAAQ,CAAe,OAAO,EAAO,GAC/C,AADkD,CAChD,KAAM,CAER,CAEF,OAAO,IACT,EAciC,GAE/B,MACE,CAAA,EAAA,EAAA,IAAA,EAAC,EAAA,UAAU,CAAA,CAACsE,KAAM,EAAM,QAAS,YAC/B,CAAA,EAAA,EAAA,GAAA,EAAC,EAAA,WAAW,CAAA,CAAC,UAAU,4DACpB,EAAO,IAAI,GAEd,CAAA,EAAA,EAAA,GAAA,EAAC,EAAA,iBAAiB,CAAA,CAACsB,UAAU,8CAC1B,EAAO,WAAW,GAGrB,CAAA,EAAA,EAAA,GAAA,EAAC,EAAA,SAAS,CAAA,CAAC,UAAU,SAErB,CAAA,EAAA,EAAA,IAAA,EAAC,MAAA,CAAI,UAAU,sBACZ,EAAO,OAAO,CACb,CAAA,EAAA,EAAA,IAAA,EAAC,MAAA,CAAI,UAAU,8CACb,CAAA,EAAA,EAAA,GAAA,EAAC,OAAA,CAAK,UAAU,yCAAiC,EAAE,qBACnD,CAAA,EAAA,EAAA,IAAA,EAACL,OAAAA,CAAK,UAAU,8BAAoB,IAAE,EAAO,OAAO,OAEpD,KAEH,EAAO,QAAQ,CACd,CAAA,EAAA,EAAA,IAAA,EAAC,MAAA,CAAI,UAAU,8CACb,CAAA,EAAA,EAAA,GAAA,EAAC,OAAA,CAAK,UAAU,yCAAiC,EAAE,sBACnD,CAAA,EAAA,EAAA,GAAA,EAAC,EAAA,KAAK,CAAA,CAAC,QAAQ,mBAAW,EAAO,QAAQ,MAEzC,KAEH,EACC,CAAA,EAAA,EAAA,IAAA,EAAC,MAAA,CAAI,UAAU,8CACb,CAAA,EAAA,EAAA,GAAA,EAAC,OAAA,CAAK,UAAU,yCAAiC,EAAE,oBACnD,CAAA,EAAA,EAAA,IAAA,EAAC,IAAA,CACC,KAAM,EACN,OAAO,SACP,IAAI,sBACJ,UAAU,mHAET,EAAO,MAAM,CAAC,IAAI,EAAI,aACvB,CAAA,EAAA,EAAA,GAAA,EAAC,EAAA,YAAY,CAAA,CAAC,UAAU,iBAG1B,KAEH,EAAO,QAAQ,EAAI,EAAO,QAAQ,CAAC,MAAM,CAAG,EAC3C,CAAA,EAAA,EAAA,GAAA,EAAC,MAAA,CAAI,UAAU,uCACZ,EAAO,QAAQ,CAAC,GAAG,CAAC,AAAC,GACpB,CAAA,EAAA,EAAA,GAAA,EAAC,EAAA,KAAK,CAAA,CAAU,QAAQ,UAAU,UAAU,mBACzC,GADS,MAKd,QAGN,CAAA,EAAA,EAAA,GAAA,EAAC,EAAA,SAAS,CAAA,CAAC,UAAU,SAErB,CAAA,EAAA,EAAA,GAAA,EAAC,MAAA,CAAI,UAAU,sBACZ,EACC,CAAA,EAAA,EAAA,GAAA,EAAC,EAAA,MAAM,CAAA,CACL,QAAQ,cACR,KAAK,KACL,QAAS,IAAM,IAAc,EAAO,IAAI,EACxC,cAAY,mCAEX,EAAE,uBAGL,CAAA,EAAA,EAAA,GAAA,EAAC,EAAA,MAAM,CAAA,CACL,KAAK,KACL,QAAS,IAAM,IAAY,EAAO,IAAI,EACtC,cAAY,iCAEX,EAAE,yBAMf,CCjIkO,IAAA,EAAA,EAAA,CAAA,CAAA,MAAsG,IAAM,EAAmC,CAAA,EAAA,EAAA,iBAAb,IAAa,AAAqB,EAAC,KAAxB,wCAAqE,EAAA,UAAU,CAAC,KAAK,EAAE,EAAA,gBAAgB,CAAC,4BCApJ,EAAmC,CAAA,EAAA,EAAA,kBAAb,GAAa,AAAqB,EAAC,MAAxB,uCAAqE,EAAA,UAAU,CAAC,KAAK,EAAE,EAAA,gBAAgB,CAAC,uBCArI,EAAmC,CAAA,EAAA,EAAA,kBAAb,GAAa,AAAqB,EAAC,MAAxB,uCAAqE,EAAA,UAAU,CAAC,KAAK,EAAE,EAAA,gBAAgB,CAAC,yBCA/I,EAAmC,CAAA,EAAA,EAAA,kBAAb,GAAa,AAAqB,EAAC,MAAxB,uCAAqE,EAAA,UAAU,CAAC,KAAK,EAAE,EAAA,gBAAgB,CAAC,iDN0Bnc,SAAS,AAAkB,iBAAE,CAAe,cAAE,CAAY,CAA0B,EACzF,GAAM,GAAE,CAAC,CAAE,CAAG,CAAA,EAAA,EAAA,cAAA,AAAc,EAAC,OACvB,EAAG,EAAgB,CAAG,CAAA,EAAA,EAAA,aAAa,AAAb,IACtB,CAAC,EAAa,EAAe,CAAG,CAAA,EAAA,EAAA,QAAA,AAAQ,EAAC,IACzC,CAAC,EAAgB,EAAkB,CAAG,CAAA,EAAA,EAAA,QAAA,AAAQ,EAAgB,MAC9D,CAAC,EAAc,EAAgB,CAAG,CAAA,EAAA,EAAA,QAAA,AAAQ,EAAuC,MACjF,CAAC,EAAgB,EAAkB,CAAG,CAAA,EAAA,EAAA,QAAA,AAAQ,EAAgC,MAC9E,CAAC,EAAS,EAAW,CAAG,CAAA,EAAA,EAAA,QAAA,AAAQ,EAA2B,EAAE,EAC7D,CAAC,EAAkB,EAAoB,CAAG,CAAA,EAAA,EAAA,QAAA,AAAQ,EAAoB,EAAE,EACxE,CAAC,EAAS,EAAW,CAAG,CAAA,EAAA,EAAA,QAAA,AAAQ,GAAC,GAEvC,CAAA,EAAA,EAAA,SAAA,AAAS,EAAC,KACRK,AAAK,EAIL,EAJI,EAIuB,IAAI,CAAC,AAAC,IAC/B,EALoB,AAKT,EAAO,OAAO,EACzB,EAAoB,EAAO,gBAAgB,EAC3C,GAAW,EACb,GAPE,GAAW,EAQf,EAAG,CAAC,EAAgB,EAEpB,IAAM,EAAa,CAAA,EAAA,EAAA,OAAA,AAAO,EAAC,KACzB,IAAM,EAAO,IAAI,IACjB,IAAK,IAAM,KAAK,EACV,EAAE,IADiBC,IACT,EAAE,EAAK,GAAG,CAAC,EAAE,QAAQ,EAErC,OAAO,MAAM7F,IAAI,CAAC,GAAM,IAAI,EAC9B,EAAG,CAAC,EAAQ,EAEN,EAAkB,CAAA,EAAA,EAAA,OAAA,AAAO,EAAC,KAC9B,IAAM,EAAQ,EAAY,WAAW,GACrC,OAAO,EAAQ,MAAM,CAAC,AAAC,IACrB,GAAI,GAAkB,EAAE,QAAQ,GAAK,EAAgB,OAAO,EAC5D,GAAI,EAAc,CAChB,IAAM,EAAc,CAAC,CAAC,EAAiB,IAAI,CAAC,AAAC,GAAO,EAAG,EAAE,CAAC,UAAU,CAAC,CAAA,EAAG,EAAE,IAAI,CAAC,CAAC,CAAC,GACjF,GAAqB,cAAjB,GAAgC,CAAC,GACjC,AAAiB,qBAAmB,EADU,OAAO,CAE3D,CACA,EAFuD,CAEnD,EAAO,CACT,GAH4D,CAGtD,EAAc,EAAE,IAAI,CAAC,WAAW,GAAG,QAAQ,CAAC,GAC5C,EAAqB,EAAE,WAAW,CAAC,WAAW,GAAG,QAAQ,CAAC,GAChE,GAAI,CAAC,GAAe,CAAC,EAAoB,MAAO,EAClD,CACA,OAAO,CACT,EACF,EAAG,CAAC,EAAS,EAAa,EAAgB,EAAc,EAAiB,EAEnE,EAAe,AAAC,GACpB,EAAiB,IAAI,CAAC,AAAC,GAAO,EAAG,EAAE,CAAC,UAAU,CAAC,CAAA,EAAG,EAAW,CAAC,CAAC,GA4B3D,EAAe,CAAC,EAAoB,KACxC,EAAgB,UACd,IAAM,EAAS,MAAM,EAAmB,EAAY,UAAW,EAC3D,GAAO,OAAO,EAAE,AAClB,EAAA,KAAK,CAAC,OAAO,CAAC,CAAA,EAAG,EAAW,CAAC,EAAE,EAAU,UAAY,WAAA,CAAY,EAEjE,EAAoB,CADJ,MAAM,GAAA,EACM,gBAAgB,GAE5C,EAAA,KAAK,CAAC,KAAK,CAAC,EAAO,KAAK,EAAI,gBAEhC,EACF,SAEA,AAAK,EASA,EASD,AAlBA,EAoBA,CAAA,EAAA,EAAA,EAFS,CAlBM,CAoBf,EAAC,EAXiB,IAWjB,CAAI,UAAU,oCACb,CAAA,EAAA,EAAA,GAAA,EAAC,EAAA,UAAU,CAAA,CAAC,QAAQ,mBAAmB,MAAO,EAAE,mBAChD,CAAA,EAAA,EAAA,IAAA,EAAC,MAAA,CAAI,UAAU,sDACZ,EAAE,yBAAyB,YAMb,GAAG,CAAtB,EAAQ,MAAM,CAEd,CAAA,EAAA,EAAA,IAAA,EAAC,MAAA,CAAI,UAAU,oCACb,CAAA,EAAA,EAAA,GAAA,EAAC,EAAA,UAAU,CAAA,CAAC,QAAQ,mBAAmB,MAAO,EAAE,mBAChD,CAAA,EAAA,EAAA,GAAA,EAAC,EAAA,UAAU,CAAA,CAAC,KAAM,CAAA,EAAA,EAAA,GAAA,EAAC,EAAA,MAAM,CAAA,CAAC,UAAU,YAAc,MAAO,EAAE,2BAM/D,CAAA,EAAA,EAAA,IAAA,EAAC,MAAA,CAAI,UAAU,oCACb,CAAA,EAAA,EAAA,GAAA,EAAC,EAAA,UAAU,CAAA,CAAC,QAAQ,mBAAmB,MAAO,EAAE,mBAGhD,CAAA,EAAA,EAAA,IAAA,EAAC,MAAA,CAAI,UAAU,qBACb,CAAA,EAAA,EAAA,GAAA,EAAC,EAAA,MAAM,CAAA,CAAC,UAAU,0EAClB,CAAA,EAAA,EAAA,GAAA,EAAC,EAAA,KAAK,CAAA,CACJ,YAAa,EAAE,6BACf,MAAO,EACP,SAAW,AAAD,GAAO,EAAe,EAAE,MAAM,CAAC,KAAK,EAC9C,UAAU,OACV,cAAY,qBAKhB,CAAA,EAAA,EAAA,IAAA,EAAC,MAAA,CAAI,UAAU,8CAEb,CAAA,EAAA,EAAA,IAAA,EAAC,MAAA,CAAI,UAAU,iCACb,CAAA,EAAA,EAAA,GAAA,EAAC,EAAA,MAAM,CAAA,CACL,QAA4B,OAAnB,EAA0B,UAAY,UAC/C,KAAK,KACL,QAAS,IAAM,EAAkB,eAEhC,EAAE,2BAEJ,EAAW,GAAG,CAAC,AAAC,GACf,CAAA,EAAA,EAAA,GAAA,EAAC,EAAA,MAAM,CAAA,CAEL,QAAS,IAAmB,EAAM,UAAY,UAC9C,KAAK,KACL,QAAS,IAAM,EAAkB,IAAQ,EAAiB,KAAO,YAEhE,GALI,OAUX,CAAA,EAAA,EAAA,GAAA,EAAC,MAAA,CAAI,UAAU,uBAGf,CAAA,EAAA,EAAA,IAAA,EAAC,MAAA,CAAI,UAAU,iCACb,CAAA,EAAA,EAAA,GAAA,EAAC,EAAA,MAAM,CAAA,CACL,QAA0B,OAAjB,EAAwB,UAAY,UAC7C,KAAK,KACL,QAAS,IAAM,EAAgB,eAChC,eAGD,CAAA,EAAA,EAAA,GAAA,EAAC,EAAA,MAAM,CAAA,CACL,QAA0B,cAAjB,EAA+B,UAAY,UACpD,KAAK,KACL,QAAS,IAAM,EAAgB,AAAiB,gBAAc,KAAO,sBAEpE,EAAE,uBAEL,CAAA,EAAA,EAAA,GAAA,EAAC,EAAA,MAAM,CAAA,CACL,QAAS,AAAiB,oBAAkB,UAAY,UACxD,KAAK,KACL,QAAS,IACP,EAAgB,AAAiB,oBAAkB,KAAO,0BAG3D,EAAE,gCAMR,EAAgB,MAAM,CAAG,EACxB,CAAA,EAAA,EAAA,GAAA,EAAC,MAAA,CAAI,UAAU,gEACZ,EAAgB,GAAG,CAAC,AAAC,GACpB,CAAA,EAAA,EAAA,GAAA,EAAC,EAAA,CAEC,OAAQ,EACR,UAAW,EAAa,EAAO,IAAI,EACnC,SAAU,EACV,SAAU,GAJL,EAAO,IAAI,KAStB,CAAA,EAAA,EAAA,GAAA,EAAC,EAAA,UAAU,CAAA,CACT,KAAM,CAAA,EAAA,EAAA,GAAA,EAAC,EAAA,MAAM,CAAA,CAAC,UAAU,YACxB,MAAO,EAAE,sBACT,OACE,CAAA,EAAA,EAAA,GAAA,EAAC,EAAA,MAAM,CAAA,CACL,QAAQ,UACR,QAAS,KACP,EAAe,IACf,EAAkB,MAClB,EAAgB,KAClB,WAEC,EAAE,4BAOX,CAAA,EAAA,EAAA,GAAA,EAAC,EAAA,CACC,OAAQ,EACR,UAAW,EAAiB,EAAa,EAAe,IAAI,OAAI,EAChE,KAAM,CAAC,CAAC,EACR,QAAS,IAAM,EAAkB,MACjC,UAxLgB,AAAC,CAwLN,GAvLf,EAAgB,UACd,IAAM,EAAS,MAAM,EAAoB,EAAY,WACjD,EAAO,OAAO,EAAE,AAClB,EAAA,KAAK,CAAC,OAAO,CAAC,CAAA,EAAG,EAAW,UAAU,CAAC,EAEvC,EADgB,AACI,OADE,GAAA,EACM,gBAAgB,GAE5C,EAAA,KAAK,CAAC,KAAK,CAAC,EAAO,KAAK,EAAI,sBAEhC,EACF,EA8KM,YA5KkB,AAAC,CA4KN,GA3KjB,EAAgB,UACd,IAAM,EAAS,MAAM,EAAsB,EAAY,WACnD,EAAO,OAAO,EAAE,AAClB,EAAA,KAAK,CAAC,OAAO,CAAC,CAAA,EAAG,EAAW,YAAY,CAAC,EAEzC,EAAoB,CADJ,MAAM,GAAA,EACM,gBAAgB,GAE5C,EAAA,KAAK,CAAC,KAAK,CAAC,EAAO,KAAK,EAAI,wBAEhC,EACF,OA0BI,CAAA,EAAA,EAAA,IAAA,EAAC,MAAA,CAAI,UAAU,oCACb,CAAA,EAAA,EAAA,GAAA,EAAC,EAAA,UAAU,CAAA,CAAC,QAAQ,mBAAmB,MAAO,EAAE,mBAChD,CAAA,EAAA,EAAA,GAAA,EAAC,EAAA,UAAU,CAAA,CAAC,KAAM,CAAA,EAAA,EAAA,GAAA,EAAC,EAAA,WAAW,CAAA,CAAC,UAAU,YAAc,MAAO,EAAE,wBAXlE,CAAA,EAAA,EAAA,IAAA,EAAC,MAAA,CAAI,UAAU,oCACb,CAAA,EAAA,EAAA,GAAA,EAAC,EAAA,UAAU,CAAA,CAAC,QAAQ,mBAAmB,MAAO,EAAE,mBAChD,CAAA,EAAA,EAAA,GAAA,EAAC,EAAA,UAAU,CAAA,CAAC,KAAM,CAAA,EAAA,EAAA,GAAA,EAAC,EAAA,WAAW,CAAA,CAAC,UAAU,YAAc,MAAO,EAAE,0BAkJxE","ignoreList":[0,1,3]}
|
|
1
|
+
{"version":3,"sources":["../../../../../../../node_modules/.pnpm/lucide-react%401.7.0_react%4019.2.4/node_modules/lucide-react/src/icons/external-link.ts","../../../../../../../node_modules/.pnpm/lucide-react%401.7.0_react%4019.2.4/node_modules/lucide-react/src/icons/terminal.ts","../../../../../../../src/presentation/web/components/common/base-drawer/index.ts","../../../../../../../node_modules/.pnpm/%40radix-ui%2Breact-switch%401.2.6_%40types%2Breact-dom%4019.2.3_%40types%2Breact%4019.2.14__%40types%2Breact_e3738c514c10df2ef7e24af5ee461853/node_modules/%40radix-ui/react-switch/dist/index.mjs","../../../../../../../src/presentation/web/components/ui/switch.tsx","../../../../../../../src/presentation/web/components/common/page-header/page-header.tsx","../../../../../../../src/presentation/web/components/common/empty-state/empty-state.tsx","../../../../../../../src/presentation/web/components/ui/card.tsx","../../../../../../../src/presentation/web/components/features/plugins/plugins-page-client.tsx","../../../../../../../src/presentation/web/components/features/plugins/plugin-card.tsx","../../../../../../../src/presentation/web/components/features/plugins/plugin-detail-drawer.tsx","../../../../../../../src/presentation/web/app/actions/data%3Ac8452e%20%3Ctext/javascript%3E","../../../../../../../src/presentation/web/app/actions/data%3Ab59fdd%20%3Ctext/javascript%3E","../../../../../../../src/presentation/web/app/actions/data%3A4c2911%20%3Ctext/javascript%3E","../../../../../../../src/presentation/web/app/actions/data%3A673239%20%3Ctext/javascript%3E"],"sourcesContent":["import createLucideIcon from '../createLucideIcon';\nimport { IconNode } from '../types';\n\nexport const __iconNode: IconNode = [\n ['path', { d: 'M15 3h6v6', key: '1q9fwt' }],\n ['path', { d: 'M10 14 21 3', key: 'gplh6r' }],\n ['path', { d: 'M18 13v6a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V8a2 2 0 0 1 2-2h6', key: 'a6xqqp' }],\n];\n\n/**\n * @component @name ExternalLink\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview  - https://lucide.dev/icons/external-link\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst ExternalLink = createLucideIcon('external-link', __iconNode);\n\nexport default ExternalLink;\n","import createLucideIcon from '../createLucideIcon';\nimport { IconNode } from '../types';\n\nexport const __iconNode: IconNode = [\n ['path', { d: 'M12 19h8', key: 'baeox8' }],\n ['path', { d: 'm4 17 6-6-6-6', key: '1yngyt' }],\n];\n\n/**\n * @component @name Terminal\n * @description Lucide SVG icon component, renders SVG Element with children.\n *\n * @preview  - https://lucide.dev/icons/terminal\n * @see https://lucide.dev/guide/packages/lucide-react - Documentation\n *\n * @param {Object} props - Lucide icons props and any valid SVG attribute\n * @returns {JSX.Element} JSX Element\n *\n */\nconst Terminal = createLucideIcon('terminal', __iconNode);\n\nexport default Terminal;\n","export { BaseDrawer, type BaseDrawerProps } from './base-drawer';\n","\"use client\";\n\n// src/switch.tsx\nimport * as React from \"react\";\nimport { composeEventHandlers } from \"@radix-ui/primitive\";\nimport { useComposedRefs } from \"@radix-ui/react-compose-refs\";\nimport { createContextScope } from \"@radix-ui/react-context\";\nimport { useControllableState } from \"@radix-ui/react-use-controllable-state\";\nimport { usePrevious } from \"@radix-ui/react-use-previous\";\nimport { useSize } from \"@radix-ui/react-use-size\";\nimport { Primitive } from \"@radix-ui/react-primitive\";\nimport { jsx, jsxs } from \"react/jsx-runtime\";\nvar SWITCH_NAME = \"Switch\";\nvar [createSwitchContext, createSwitchScope] = createContextScope(SWITCH_NAME);\nvar [SwitchProvider, useSwitchContext] = createSwitchContext(SWITCH_NAME);\nvar Switch = React.forwardRef(\n (props, forwardedRef) => {\n const {\n __scopeSwitch,\n name,\n checked: checkedProp,\n defaultChecked,\n required,\n disabled,\n value = \"on\",\n onCheckedChange,\n form,\n ...switchProps\n } = props;\n const [button, setButton] = React.useState(null);\n const composedRefs = useComposedRefs(forwardedRef, (node) => setButton(node));\n const hasConsumerStoppedPropagationRef = React.useRef(false);\n const isFormControl = button ? form || !!button.closest(\"form\") : true;\n const [checked, setChecked] = useControllableState({\n prop: checkedProp,\n defaultProp: defaultChecked ?? false,\n onChange: onCheckedChange,\n caller: SWITCH_NAME\n });\n return /* @__PURE__ */ jsxs(SwitchProvider, { scope: __scopeSwitch, checked, disabled, children: [\n /* @__PURE__ */ jsx(\n Primitive.button,\n {\n type: \"button\",\n role: \"switch\",\n \"aria-checked\": checked,\n \"aria-required\": required,\n \"data-state\": getState(checked),\n \"data-disabled\": disabled ? \"\" : void 0,\n disabled,\n value,\n ...switchProps,\n ref: composedRefs,\n onClick: composeEventHandlers(props.onClick, (event) => {\n setChecked((prevChecked) => !prevChecked);\n if (isFormControl) {\n hasConsumerStoppedPropagationRef.current = event.isPropagationStopped();\n if (!hasConsumerStoppedPropagationRef.current) event.stopPropagation();\n }\n })\n }\n ),\n isFormControl && /* @__PURE__ */ jsx(\n SwitchBubbleInput,\n {\n control: button,\n bubbles: !hasConsumerStoppedPropagationRef.current,\n name,\n value,\n checked,\n required,\n disabled,\n form,\n style: { transform: \"translateX(-100%)\" }\n }\n )\n ] });\n }\n);\nSwitch.displayName = SWITCH_NAME;\nvar THUMB_NAME = \"SwitchThumb\";\nvar SwitchThumb = React.forwardRef(\n (props, forwardedRef) => {\n const { __scopeSwitch, ...thumbProps } = props;\n const context = useSwitchContext(THUMB_NAME, __scopeSwitch);\n return /* @__PURE__ */ jsx(\n Primitive.span,\n {\n \"data-state\": getState(context.checked),\n \"data-disabled\": context.disabled ? \"\" : void 0,\n ...thumbProps,\n ref: forwardedRef\n }\n );\n }\n);\nSwitchThumb.displayName = THUMB_NAME;\nvar BUBBLE_INPUT_NAME = \"SwitchBubbleInput\";\nvar SwitchBubbleInput = React.forwardRef(\n ({\n __scopeSwitch,\n control,\n checked,\n bubbles = true,\n ...props\n }, forwardedRef) => {\n const ref = React.useRef(null);\n const composedRefs = useComposedRefs(ref, forwardedRef);\n const prevChecked = usePrevious(checked);\n const controlSize = useSize(control);\n React.useEffect(() => {\n const input = ref.current;\n if (!input) return;\n const inputProto = window.HTMLInputElement.prototype;\n const descriptor = Object.getOwnPropertyDescriptor(\n inputProto,\n \"checked\"\n );\n const setChecked = descriptor.set;\n if (prevChecked !== checked && setChecked) {\n const event = new Event(\"click\", { bubbles });\n setChecked.call(input, checked);\n input.dispatchEvent(event);\n }\n }, [prevChecked, checked, bubbles]);\n return /* @__PURE__ */ jsx(\n \"input\",\n {\n type: \"checkbox\",\n \"aria-hidden\": true,\n defaultChecked: checked,\n ...props,\n tabIndex: -1,\n ref: composedRefs,\n style: {\n ...props.style,\n ...controlSize,\n position: \"absolute\",\n pointerEvents: \"none\",\n opacity: 0,\n margin: 0\n }\n }\n );\n }\n);\nSwitchBubbleInput.displayName = BUBBLE_INPUT_NAME;\nfunction getState(checked) {\n return checked ? \"checked\" : \"unchecked\";\n}\nvar Root = Switch;\nvar Thumb = SwitchThumb;\nexport {\n Root,\n Switch,\n SwitchThumb,\n Thumb,\n createSwitchScope\n};\n//# sourceMappingURL=index.mjs.map\n","'use client';\n\nimport * as React from 'react';\nimport { Switch as SwitchPrimitive } from 'radix-ui';\n\nimport { cn } from '@/lib/utils';\n\nfunction Switch({\n className,\n size = 'default',\n ...props\n}: React.ComponentProps<typeof SwitchPrimitive.Root> & {\n size?: 'sm' | 'default';\n}) {\n return (\n <SwitchPrimitive.Root\n data-slot=\"switch\"\n data-size={size}\n className={cn(\n '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 cursor-pointer 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',\n className\n )}\n {...props}\n >\n <SwitchPrimitive.Thumb\n data-slot=\"switch-thumb\"\n className={cn(\n '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 rtl:data-[state=checked]:-translate-x-[calc(100%-2px)]'\n )}\n />\n </SwitchPrimitive.Root>\n );\n}\n\nexport { Switch };\n","import { cn } from '@/lib/utils';\n\nexport interface PageHeaderProps {\n title: string;\n description?: string;\n /** Optional eyebrow label above the title (e.g., \"DEVELOPER PORTAL\") */\n eyebrow?: string;\n children?: React.ReactNode;\n className?: string;\n}\n\n/*\n * PageHeader — Stitch editorial page header pattern.\n * Renders: tiny uppercase eyebrow → large bold title → muted description.\n * Matches the tools-page-client.tsx header treatment.\n * See .scratchpad/stitch/shipit-developer-portal/src/App.tsx:161\n */\nexport function PageHeader({ title, description, eyebrow, children, className }: PageHeaderProps) {\n return (\n <header className={cn('flex items-center justify-between gap-4', className)}>\n <div className=\"space-y-1.5\">\n {eyebrow ? (\n <span className=\"text-[10px] font-bold tracking-[0.2em] text-slate-400 uppercase\">\n {eyebrow}\n </span>\n ) : null}\n <div className=\"flex items-baseline gap-3\">\n <h1 className=\"text-foreground text-3xl font-black tracking-tight\">{title}</h1>\n </div>\n {description ? (\n <p className=\"text-muted-foreground text-sm font-medium\">{description}</p>\n ) : null}\n </div>\n {children ? <div data-slot=\"actions\">{children}</div> : null}\n </header>\n );\n}\n","import type { ReactNode, HTMLAttributes } from 'react';\nimport { cn } from '@/lib/utils';\n\nexport interface EmptyStateProps extends HTMLAttributes<HTMLDivElement> {\n icon?: ReactNode;\n title: string;\n description?: string;\n action?: ReactNode;\n}\n\nexport function EmptyState({\n icon,\n title,\n description,\n action,\n className,\n ...props\n}: EmptyStateProps) {\n return (\n <div\n className={cn('flex flex-col items-center gap-4 px-4 py-12 text-center', className)}\n {...props}\n >\n {icon ? <div className=\"text-muted-foreground\">{icon}</div> : null}\n <h3 className=\"text-lg font-semibold\">{title}</h3>\n {description ? <p className=\"text-muted-foreground max-w-md text-sm\">{description}</p> : null}\n {action ? <div className=\"mt-2\">{action}</div> : null}\n </div>\n );\n}\n","import * as React from 'react';\n\nimport { cn } from '@/lib/utils';\n\n/*\n * Card — shadcn primitive extended with Stitch's editorial-shadow utility.\n * The `editorial-shadow` class (globals.css) replaces the old `shadow` class\n * with a subtle shadow + ring combination that gives cards a \"lifted\" look\n * and renders consistently against the editorial surface palette in both\n * light and dark modes. The `border` class stays for explicit border visibility\n * in dense grids; editorial-shadow's ring provides the soft lift on top.\n */\nconst Card = React.forwardRef<HTMLDivElement, React.HTMLAttributes<HTMLDivElement>>(\n ({ className, ...props }, ref) => (\n <div\n ref={ref}\n className={cn('bg-card text-card-foreground editorial-shadow rounded-xl border', className)}\n {...props}\n />\n )\n);\nCard.displayName = 'Card';\n\nconst CardHeader = React.forwardRef<HTMLDivElement, React.HTMLAttributes<HTMLDivElement>>(\n ({ className, ...props }, ref) => (\n <div ref={ref} className={cn('flex flex-col space-y-1.5 p-6', className)} {...props} />\n )\n);\nCardHeader.displayName = 'CardHeader';\n\nconst CardTitle = React.forwardRef<HTMLDivElement, React.HTMLAttributes<HTMLDivElement>>(\n ({ className, ...props }, ref) => (\n <div\n ref={ref}\n className={cn('leading-none font-semibold tracking-tight', className)}\n {...props}\n />\n )\n);\nCardTitle.displayName = 'CardTitle';\n\nconst CardDescription = React.forwardRef<HTMLDivElement, React.HTMLAttributes<HTMLDivElement>>(\n ({ className, ...props }, ref) => (\n <div ref={ref} className={cn('text-muted-foreground text-sm', className)} {...props} />\n )\n);\nCardDescription.displayName = 'CardDescription';\n\nconst CardContent = React.forwardRef<HTMLDivElement, React.HTMLAttributes<HTMLDivElement>>(\n ({ className, ...props }, ref) => (\n <div ref={ref} className={cn('p-6 pt-0', className)} {...props} />\n )\n);\nCardContent.displayName = 'CardContent';\n\nconst CardFooter = React.forwardRef<HTMLDivElement, React.HTMLAttributes<HTMLDivElement>>(\n ({ className, ...props }, ref) => (\n <div ref={ref} className={cn('flex items-center p-6 pt-0', className)} {...props} />\n )\n);\nCardFooter.displayName = 'CardFooter';\n\nexport { Card, CardHeader, CardFooter, CardTitle, CardDescription, CardContent };\n","'use client';\n\nimport { useState, useMemo, useEffect, useTransition } from 'react';\nimport { Search, Blocks, AlertCircle } from 'lucide-react';\nimport { toast } from 'sonner';\nimport { Input } from '@/components/ui/input';\nimport { Button } from '@/components/ui/button';\nimport { PageHeader } from '@/components/common/page-header';\nimport { EmptyState } from '@/components/common/empty-state';\nimport { PluginCard } from './plugin-card';\nimport { PluginDetailDrawer } from './plugin-detail-drawer';\nimport { useTranslation } from 'react-i18next';\nimport { fetchPluginCatalogAction } from '@/app/actions/fetch-plugin-catalog';\nimport { installPluginAction } from '@/app/actions/install-plugin';\nimport { uninstallPluginAction } from '@/app/actions/uninstall-plugin';\nimport { togglePluginAction } from '@/app/actions/toggle-plugin';\nimport type {\n PluginMarketplaceEntry,\n InstalledPlugin,\n} from '@shipit-ai/core/application/ports/output/services/plugin-marketplace.interface';\n\nexport interface PluginsPageClientProps {\n proxyConfigured: boolean;\n isClaudeCode: boolean;\n}\n\nexport function PluginsPageClient({ proxyConfigured, isClaudeCode }: PluginsPageClientProps) {\n const { t } = useTranslation('web');\n const [, startTransition] = useTransition();\n const [searchQuery, setSearchQuery] = useState('');\n const [activeCategory, setActiveCategory] = useState<string | null>(null);\n const [statusFilter, setStatusFilter] = useState<'installed' | 'not-installed' | null>(null);\n const [selectedPlugin, setSelectedPlugin] = useState<PluginMarketplaceEntry | null>(null);\n const [plugins, setPlugins] = useState<PluginMarketplaceEntry[]>([]);\n const [installedPlugins, setInstalledPlugins] = useState<InstalledPlugin[]>([]);\n const [loading, setLoading] = useState(true);\n\n useEffect(() => {\n if (!proxyConfigured) {\n setLoading(false);\n return;\n }\n fetchPluginCatalogAction().then((result) => {\n setPlugins(result.plugins);\n setInstalledPlugins(result.installedPlugins);\n setLoading(false);\n });\n }, [proxyConfigured]);\n\n const categories = useMemo(() => {\n const cats = new Set<string>();\n for (const p of plugins) {\n if (p.category) cats.add(p.category);\n }\n return Array.from(cats).sort();\n }, [plugins]);\n\n const filteredPlugins = useMemo(() => {\n const query = searchQuery.toLowerCase();\n return plugins.filter((p) => {\n if (activeCategory && p.category !== activeCategory) return false;\n if (statusFilter) {\n const isInstalled = !!installedPlugins.find((ip) => ip.id.startsWith(`${p.name}@`));\n if (statusFilter === 'installed' && !isInstalled) return false;\n if (statusFilter === 'not-installed' && isInstalled) return false;\n }\n if (query) {\n const matchesName = p.name.toLowerCase().includes(query);\n const matchesDescription = p.description.toLowerCase().includes(query);\n if (!matchesName && !matchesDescription) return false;\n }\n return true;\n });\n }, [plugins, searchQuery, activeCategory, statusFilter, installedPlugins]);\n\n const getInstalled = (pluginName: string) =>\n installedPlugins.find((ip) => ip.id.startsWith(`${pluginName}@`));\n\n const handleInstall = (pluginName: string) => {\n startTransition(async () => {\n const result = await installPluginAction(pluginName, 'default');\n if (result.success) {\n toast.success(`${pluginName} installed`);\n const catalog = await fetchPluginCatalogAction();\n setInstalledPlugins(catalog.installedPlugins);\n } else {\n toast.error(result.error ?? 'Installation failed');\n }\n });\n };\n\n const handleUninstall = (pluginName: string) => {\n startTransition(async () => {\n const result = await uninstallPluginAction(pluginName, 'default');\n if (result.success) {\n toast.success(`${pluginName} uninstalled`);\n const catalog = await fetchPluginCatalogAction();\n setInstalledPlugins(catalog.installedPlugins);\n } else {\n toast.error(result.error ?? 'Uninstallation failed');\n }\n });\n };\n\n const handleToggle = (pluginName: string, enabled: boolean) => {\n startTransition(async () => {\n const result = await togglePluginAction(pluginName, 'default', enabled);\n if (result.success) {\n toast.success(`${pluginName} ${enabled ? 'enabled' : 'disabled'}`);\n const catalog = await fetchPluginCatalogAction();\n setInstalledPlugins(catalog.installedPlugins);\n } else {\n toast.error(result.error ?? 'Toggle failed');\n }\n });\n };\n\n if (!isClaudeCode) {\n return (\n <div className=\"flex flex-col gap-8 p-8\">\n <PageHeader eyebrow=\"Developer Portal\" title={t('plugins.title')} />\n <EmptyState icon={<AlertCircle className=\"size-10\" />} title={t('plugins.wrongAgent')} />\n </div>\n );\n }\n\n if (!proxyConfigured) {\n return (\n <div className=\"flex flex-col gap-8 p-8\">\n <PageHeader eyebrow=\"Developer Portal\" title={t('plugins.title')} />\n <EmptyState icon={<AlertCircle className=\"size-10\" />} title={t('plugins.noProxy')} />\n </div>\n );\n }\n\n if (loading) {\n return (\n <div className=\"flex flex-col gap-8 p-8\">\n <PageHeader eyebrow=\"Developer Portal\" title={t('plugins.title')} />\n <div className=\"text-muted-foreground text-center text-sm\">\n {t('accessibility.loading')}...\n </div>\n </div>\n );\n }\n\n if (plugins.length === 0) {\n return (\n <div className=\"flex flex-col gap-8 p-8\">\n <PageHeader eyebrow=\"Developer Portal\" title={t('plugins.title')} />\n <EmptyState icon={<Blocks className=\"size-10\" />} title={t('plugins.emptyState')} />\n </div>\n );\n }\n\n return (\n <div className=\"flex flex-col gap-8 p-8\">\n <PageHeader eyebrow=\"Developer Portal\" title={t('plugins.title')} />\n\n {/* Search */}\n <div className=\"relative\">\n <Search className=\"text-muted-foreground absolute top-1/2 left-3 size-4 -translate-y-1/2\" />\n <Input\n placeholder={t('plugins.searchPlaceholder')}\n value={searchQuery}\n onChange={(e) => setSearchQuery(e.target.value)}\n className=\"ps-9\"\n data-testid=\"plugin-search\"\n />\n </div>\n\n {/* Filter pills */}\n <div className=\"flex flex-wrap items-center gap-4\">\n {/* Category */}\n <div className=\"flex flex-wrap gap-2\">\n <Button\n variant={activeCategory === null ? 'default' : 'outline'}\n size=\"sm\"\n onClick={() => setActiveCategory(null)}\n >\n {t('plugins.allCategories')}\n </Button>\n {categories.map((cat) => (\n <Button\n key={cat}\n variant={activeCategory === cat ? 'default' : 'outline'}\n size=\"sm\"\n onClick={() => setActiveCategory(cat === activeCategory ? null : cat)}\n >\n {cat}\n </Button>\n ))}\n </div>\n\n <div className=\"bg-border h-6 w-px\" />\n\n {/* Status */}\n <div className=\"flex flex-wrap gap-2\">\n <Button\n variant={statusFilter === null ? 'default' : 'outline'}\n size=\"sm\"\n onClick={() => setStatusFilter(null)}\n >\n All Status\n </Button>\n <Button\n variant={statusFilter === 'installed' ? 'default' : 'outline'}\n size=\"sm\"\n onClick={() => setStatusFilter(statusFilter === 'installed' ? null : 'installed')}\n >\n {t('plugins.installed')}\n </Button>\n <Button\n variant={statusFilter === 'not-installed' ? 'default' : 'outline'}\n size=\"sm\"\n onClick={() =>\n setStatusFilter(statusFilter === 'not-installed' ? null : 'not-installed')\n }\n >\n {t('plugins.notInstalled')}\n </Button>\n </div>\n </div>\n\n {/* Plugin grid */}\n {filteredPlugins.length > 0 ? (\n <div className=\"grid grid-cols-1 gap-4 sm:grid-cols-2 lg:grid-cols-3\">\n {filteredPlugins.map((plugin) => (\n <PluginCard\n key={plugin.name}\n plugin={plugin}\n installed={getInstalled(plugin.name)}\n onSelect={setSelectedPlugin}\n onToggle={handleToggle}\n />\n ))}\n </div>\n ) : (\n <EmptyState\n icon={<Search className=\"size-10\" />}\n title={t('plugins.emptyState')}\n action={\n <Button\n variant=\"outline\"\n onClick={() => {\n setSearchQuery('');\n setActiveCategory(null);\n setStatusFilter(null);\n }}\n >\n {t('plugins.clearFilters')}\n </Button>\n }\n />\n )}\n\n {/* Detail drawer */}\n <PluginDetailDrawer\n plugin={selectedPlugin}\n installed={selectedPlugin ? getInstalled(selectedPlugin.name) : undefined}\n open={!!selectedPlugin}\n onClose={() => setSelectedPlugin(null)}\n onInstall={handleInstall}\n onUninstall={handleUninstall}\n />\n </div>\n );\n}\n","'use client';\n\nimport { Card } from '@/components/ui/card';\nimport { Badge } from '@/components/ui/badge';\nimport { Switch } from '@/components/ui/switch';\nimport type {\n PluginMarketplaceEntry,\n InstalledPlugin,\n} from '@shipit-ai/core/application/ports/output/services/plugin-marketplace.interface';\nimport { useTranslation } from 'react-i18next';\n\nexport interface PluginCardProps {\n plugin: PluginMarketplaceEntry;\n installed?: InstalledPlugin;\n onSelect: (plugin: PluginMarketplaceEntry) => void;\n onToggle?: (pluginName: string, enabled: boolean) => void;\n}\n\nexport function PluginCard({ plugin, installed, onSelect, onToggle }: PluginCardProps) {\n const { t } = useTranslation('web');\n\n return (\n <Card\n className=\"cursor-pointer p-5 transition-all duration-300 hover:scale-[1.02] hover:shadow-md hover:ring-slate-300 dark:hover:ring-slate-600\"\n role=\"button\"\n tabIndex={0}\n onClick={() => onSelect(plugin)}\n onKeyDown={(e) => {\n if (e.key === 'Enter' || e.key === ' ') {\n e.preventDefault();\n onSelect(plugin);\n }\n }}\n data-testid={`plugin-card-${plugin.name}`}\n >\n <h3 className=\"text-foreground text-sm leading-tight font-bold tracking-tight\">\n {plugin.name}\n </h3>\n\n {plugin.version ? (\n <p className=\"text-muted-foreground mt-1 font-mono text-xs\">v{plugin.version}</p>\n ) : null}\n\n <p className=\"text-muted-foreground mt-3 line-clamp-2 text-xs leading-relaxed\">\n {plugin.description}\n </p>\n\n <div className=\"mt-4 flex flex-wrap items-center gap-1.5\">\n {plugin.category ? <Badge variant=\"outline\">{plugin.category}</Badge> : null}\n {installed ? (\n <Badge variant=\"secondary\">{t('plugins.installed')}</Badge>\n ) : (\n <Badge variant=\"outline\" className=\"opacity-50\">\n {t('plugins.notInstalled')}\n </Badge>\n )}\n </div>\n\n {installed ? (\n <div\n className=\"mt-3 flex items-center gap-2\"\n onClick={(e) => e.stopPropagation()}\n onKeyDown={(e) => e.stopPropagation()}\n >\n <Switch\n checked={installed.enabled}\n onCheckedChange={(checked) => onToggle?.(plugin.name, checked)}\n data-testid={`plugin-toggle-${plugin.name}`}\n />\n <span className=\"text-muted-foreground text-xs\">\n {installed.enabled ? t('plugins.disable') : t('plugins.enable')}\n </span>\n </div>\n ) : null}\n </Card>\n );\n}\n","'use client';\n\nimport { BaseDrawer } from '@/components/common/base-drawer';\nimport { DrawerTitle, DrawerDescription } from '@/components/ui/drawer';\nimport { Badge } from '@/components/ui/badge';\nimport { Button } from '@/components/ui/button';\nimport { Separator } from '@/components/ui/separator';\nimport { ExternalLink } from 'lucide-react';\nimport { useTranslation } from 'react-i18next';\nimport type {\n PluginMarketplaceEntry,\n InstalledPlugin,\n} from '@shipit-ai/core/application/ports/output/services/plugin-marketplace.interface';\n\nexport interface PluginDetailDrawerProps {\n plugin: PluginMarketplaceEntry | null;\n installed?: InstalledPlugin;\n open: boolean;\n onClose: () => void;\n onInstall?: (pluginName: string) => void;\n onUninstall?: (pluginName: string) => void;\n}\n\nfunction getSourceUrl(plugin: PluginMarketplaceEntry): string | null {\n const { source } = plugin;\n if (source.source === 'github' && source.repo) {\n return `https://github.com/${source.repo}`;\n }\n if ((source.source === 'url' || source.source === 'git-subdir') && source.url) {\n try {\n const url = new URL(source.url);\n if (url.protocol === 'https:') return source.url;\n } catch {\n // Invalid URL — don't render as link\n }\n }\n return null;\n}\n\nexport function PluginDetailDrawer({\n plugin,\n installed,\n open,\n onClose,\n onInstall,\n onUninstall,\n}: PluginDetailDrawerProps) {\n const { t } = useTranslation('web');\n\n if (!plugin) return null;\n\n const sourceUrl = getSourceUrl(plugin);\n\n return (\n <BaseDrawer open={open} onClose={onClose}>\n <DrawerTitle className=\"text-foreground text-lg font-bold tracking-tight\">\n {plugin.name}\n </DrawerTitle>\n <DrawerDescription className=\"text-muted-foreground mt-1 text-sm\">\n {plugin.description}\n </DrawerDescription>\n\n <Separator className=\"my-4\" />\n\n <div className=\"space-y-3\">\n {plugin.version ? (\n <div className=\"flex items-center justify-between\">\n <span className=\"text-muted-foreground text-sm\">{t('plugins.version')}</span>\n <span className=\"font-mono text-sm\">v{plugin.version}</span>\n </div>\n ) : null}\n\n {plugin.category ? (\n <div className=\"flex items-center justify-between\">\n <span className=\"text-muted-foreground text-sm\">{t('plugins.category')}</span>\n <Badge variant=\"outline\">{plugin.category}</Badge>\n </div>\n ) : null}\n\n {sourceUrl ? (\n <div className=\"flex items-center justify-between\">\n <span className=\"text-muted-foreground text-sm\">{t('plugins.source')}</span>\n <a\n href={sourceUrl}\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n className=\"text-primary hover:text-primary/80 inline-flex items-center gap-1 text-sm underline underline-offset-2\"\n >\n {plugin.source.repo ?? 'Repository'}\n <ExternalLink className=\"size-3\" />\n </a>\n </div>\n ) : null}\n\n {plugin.keywords && plugin.keywords.length > 0 ? (\n <div className=\"flex flex-wrap gap-1.5 pt-2\">\n {plugin.keywords.map((kw) => (\n <Badge key={kw} variant=\"outline\" className=\"text-xs\">\n {kw}\n </Badge>\n ))}\n </div>\n ) : null}\n </div>\n\n <Separator className=\"my-4\" />\n\n <div className=\"flex gap-2\">\n {installed ? (\n <Button\n variant=\"destructive\"\n size=\"sm\"\n onClick={() => onUninstall?.(plugin.name)}\n data-testid=\"plugin-uninstall-button\"\n >\n {t('plugins.uninstall')}\n </Button>\n ) : (\n <Button\n size=\"sm\"\n onClick={() => onInstall?.(plugin.name)}\n data-testid=\"plugin-install-button\"\n >\n {t('plugins.install')}\n </Button>\n )}\n </div>\n </BaseDrawer>\n );\n}\n","/* __next_internal_action_entry_do_not_use__ [{\"005f0acee2a6450c404097ba1b533a8b73d19a4e88\":{\"name\":\"fetchPluginCatalogAction\"}},\"src/presentation/web/app/actions/fetch-plugin-catalog.ts\",\"\"] */\"use turbopack no side effects\";import{createServerReference,callServer,findSourceMapURL}from\"private-next-rsc-action-client-wrapper\";const $$RSC_SERVER_ACTION_0=/*#__PURE__*/createServerReference(\"005f0acee2a6450c404097ba1b533a8b73d19a4e88\",callServer,void 0,findSourceMapURL,\"fetchPluginCatalogAction\");export{$$RSC_SERVER_ACTION_0 as fetchPluginCatalogAction};","/* __next_internal_action_entry_do_not_use__ [{\"70fe44e383584d195fd4ca8d8384d276342f149777\":{\"name\":\"installPluginAction\"}},\"src/presentation/web/app/actions/install-plugin.ts\",\"\"] */\"use turbopack no side effects\";import{createServerReference,callServer,findSourceMapURL}from\"private-next-rsc-action-client-wrapper\";const $$RSC_SERVER_ACTION_0=/*#__PURE__*/createServerReference(\"70fe44e383584d195fd4ca8d8384d276342f149777\",callServer,void 0,findSourceMapURL,\"installPluginAction\");export{$$RSC_SERVER_ACTION_0 as installPluginAction};","/* __next_internal_action_entry_do_not_use__ [{\"60853f017ab28129b3d27805664e6166355fb7bc99\":{\"name\":\"uninstallPluginAction\"}},\"src/presentation/web/app/actions/uninstall-plugin.ts\",\"\"] */\"use turbopack no side effects\";import{createServerReference,callServer,findSourceMapURL}from\"private-next-rsc-action-client-wrapper\";const $$RSC_SERVER_ACTION_0=/*#__PURE__*/createServerReference(\"60853f017ab28129b3d27805664e6166355fb7bc99\",callServer,void 0,findSourceMapURL,\"uninstallPluginAction\");export{$$RSC_SERVER_ACTION_0 as uninstallPluginAction};","/* __next_internal_action_entry_do_not_use__ [{\"70cd2fd833d1d8d84dbb22d4976e47f37c62af56a3\":{\"name\":\"togglePluginAction\"}},\"src/presentation/web/app/actions/toggle-plugin.ts\",\"\"] */\"use turbopack no side effects\";import{createServerReference,callServer,findSourceMapURL}from\"private-next-rsc-action-client-wrapper\";const $$RSC_SERVER_ACTION_0=/*#__PURE__*/createServerReference(\"70cd2fd833d1d8d84dbb22d4976e47f37c62af56a3\",callServer,void 0,findSourceMapURL,\"togglePluginAction\");export{$$RSC_SERVER_ACTION_0 as togglePluginAction};"],"names":["SWITCH_NAME","createSwitchContext","createSwitchScope","SwitchProvider","useSwitchContext","Switch","props","forwardedRef","__scopeSwitch","name","checked","checkedProp","defaultChecked","required","disabled","value","onCheckedChange","form","switchProps","button","setButton","composedRefs","node","hasConsumerStoppedPropagationRef","isFormControl","closest","setChecked","prop","defaultProp","onChange","caller","scope","children","type","role","getState","ref","onClick","event","prevChecked","current","isPropagationStopped","stopPropagation","SwitchBubbleInput","control","bubbles","style","transform","displayName","THUMB_NAME","SwitchThumb","thumbProps","context","span","BUBBLE_INPUT_NAME","controlSize","input","inputProto","window","HTMLInputElement","prototype","descriptor","Object","getOwnPropertyDescriptor","set","Event","call","dispatchEvent","tabIndex","position","pointerEvents","opacity","margin","Root","Thumb","PageHeader","title","description","eyebrow","className","EmptyState","icon","action","Card","CardHeader","CardTitle","CardDescription","CardContent","CardFooter","PluginCard","plugin","installed","onSelect","onToggle","t","onKeyDown","e","key","preventDefault","version","category","variant","enabled"],"mappings":"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","ignoreList":[0,1,3]}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
module.exports=[63652,(a,b,c)=>{"use strict";c._=function(a){return a&&a.__esModule?a:{default:a}}},94122,(a,b,c)=>{"use strict";function d({widthInt:a,heightInt:b,blurWidth:c,blurHeight:e,blurDataURL:f,objectFit:g}){let h=c?40*c:a,i=e?40*e:b,j=h&&i?`viewBox='0 0 ${h} ${i}'`:"";return`%3Csvg xmlns='http://www.w3.org/2000/svg' ${j}%3E%3Cfilter id='b' color-interpolation-filters='sRGB'%3E%3CfeGaussianBlur stdDeviation='20'/%3E%3CfeColorMatrix values='1 0 0 0 0 0 1 0 0 0 0 0 1 0 0 0 0 0 100 -1' result='s'/%3E%3CfeFlood x='0' y='0' width='100%25' height='100%25'/%3E%3CfeComposite operator='out' in='s'/%3E%3CfeComposite in2='SourceGraphic'/%3E%3CfeGaussianBlur stdDeviation='20'/%3E%3C/filter%3E%3Cimage width='100%25' height='100%25' x='0' y='0' preserveAspectRatio='${j?"none":"contain"===g?"xMidYMid":"cover"===g?"xMidYMid slice":"none"}' style='filter: url(%23b);' href='${f}'/%3E%3C/svg%3E`}Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"getImageBlurSvg",{enumerable:!0,get:function(){return d}})},88429,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0});var d={VALID_LOADERS:function(){return f},imageConfigDefault:function(){return g}};for(var e in d)Object.defineProperty(c,e,{enumerable:!0,get:d[e]});let f=["default","imgix","cloudinary","akamai","custom"],g={deviceSizes:[640,750,828,1080,1200,1920,2048,3840],imageSizes:[32,48,64,96,128,256,384],path:"/_next/image",loader:"default",loaderFile:"",domains:[],disableStaticImages:!1,minimumCacheTTL:14400,formats:["image/webp"],maximumDiskCacheSize:void 0,maximumRedirects:3,maximumResponseBody:5e7,dangerouslyAllowLocalIP:!1,dangerouslyAllowSVG:!1,contentSecurityPolicy:"script-src 'none'; frame-src 'none'; sandbox;",contentDispositionType:"attachment",localPatterns:void 0,remotePatterns:[],qualities:[75],unoptimized:!1,customCacheHandler:!1}},34856,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"getImgProps",{enumerable:!0,get:function(){return j}}),a.r(92527);let d=a.r(99760),e=a.r(94122),f=a.r(88429),g=["-moz-initial","fill","none","scale-down",void 0];function h(a){return void 0!==a.default}function i(a){return void 0===a?a:"number"==typeof a?Number.isFinite(a)?a:NaN:"string"==typeof a&&/^[0-9]+$/.test(a)?parseInt(a,10):NaN}function j({src:a,sizes:b,unoptimized:c=!1,priority:k=!1,preload:l=!1,loading:m,className:n,quality:o,width:p,height:q,fill:r=!1,style:s,overrideSrc:t,onLoad:u,onLoadingComplete:v,placeholder:w="empty",blurDataURL:x,fetchPriority:y,decoding:z="async",layout:A,objectFit:B,objectPosition:C,lazyBoundary:D,lazyRoot:E,...F},G){var H;let I,J,K,{imgConf:L,showAltText:M,blurComplete:N,defaultLoader:O}=G,P=L||f.imageConfigDefault;if("allSizes"in P)I=P;else{let a=[...P.deviceSizes,...P.imageSizes].sort((a,b)=>a-b),b=P.deviceSizes.sort((a,b)=>a-b),c=P.qualities?.sort((a,b)=>a-b);I={...P,allSizes:a,deviceSizes:b,qualities:c}}if(void 0===O)throw Object.defineProperty(Error("images.loaderFile detected but the file is missing default export.\nRead more: https://nextjs.org/docs/messages/invalid-images-config"),"__NEXT_ERROR_CODE",{value:"E163",enumerable:!1,configurable:!0});let Q=F.loader||O;delete F.loader,delete F.srcSet;let R="__next_img_default"in Q;if(R){if("custom"===I.loader)throw Object.defineProperty(Error(`Image with src "${a}" is missing "loader" prop.
|
|
2
2
|
Read more: https://nextjs.org/docs/messages/next-image-missing-loader`),"__NEXT_ERROR_CODE",{value:"E252",enumerable:!1,configurable:!0})}else{let a=Q;Q=b=>{let{config:c,...d}=b;return a(d)}}if(A){"fill"===A&&(r=!0);let a={intrinsic:{maxWidth:"100%",height:"auto"},responsive:{width:"100%",height:"auto"}}[A];a&&(s={...s,...a});let c={responsive:"100vw",fill:"100vw"}[A];c&&!b&&(b=c)}let S="",T=i(p),U=i(q);if((H=a)&&"object"==typeof H&&(h(H)||void 0!==H.src)){let b=h(a)?a.default:a;if(!b.src)throw Object.defineProperty(Error(`An object should only be passed to the image component src parameter if it comes from a static image import. It must include src. Received ${JSON.stringify(b)}`),"__NEXT_ERROR_CODE",{value:"E460",enumerable:!1,configurable:!0});if(!b.height||!b.width)throw Object.defineProperty(Error(`An object should only be passed to the image component src parameter if it comes from a static image import. It must include height and width. Received ${JSON.stringify(b)}`),"__NEXT_ERROR_CODE",{value:"E48",enumerable:!1,configurable:!0});if(J=b.blurWidth,K=b.blurHeight,x=x||b.blurDataURL,S=b.src,!r)if(T||U){if(T&&!U){let a=T/b.width;U=Math.round(b.height*a)}else if(!T&&U){let a=U/b.height;T=Math.round(b.width*a)}}else T=b.width,U=b.height}let V=!k&&!l&&("lazy"===m||void 0===m);(!(a="string"==typeof a?a:S)||a.startsWith("data:")||a.startsWith("blob:"))&&(c=!0,V=!1),I.unoptimized&&(c=!0),R&&!I.dangerouslyAllowSVG&&a.split("?",1)[0].endsWith(".svg")&&(c=!0);let W=i(o),X=Object.assign(r?{position:"absolute",height:"100%",width:"100%",left:0,top:0,right:0,bottom:0,objectFit:B,objectPosition:C}:{},M?{}:{color:"transparent"},s),Y=N||"empty"===w?null:"blur"===w?`url("data:image/svg+xml;charset=utf-8,${(0,e.getImageBlurSvg)({widthInt:T,heightInt:U,blurWidth:J,blurHeight:K,blurDataURL:x||"",objectFit:X.objectFit})}")`:`url("${w}")`,Z=g.includes(X.objectFit)?"fill"===X.objectFit?"100% 100%":"cover":X.objectFit,$=Y?{backgroundSize:Z,backgroundPosition:X.objectPosition||"50% 50%",backgroundRepeat:"no-repeat",backgroundImage:Y}:{},_=function({config:a,src:b,unoptimized:c,width:e,quality:f,sizes:g,loader:h}){if(c){if(b.startsWith("/")&&!b.startsWith("//")){let a=(0,d.getDeploymentId)();if(a){let c=b.indexOf("?");if(-1!==c){let d=new URLSearchParams(b.slice(c+1));d.get("dpl")||(d.append("dpl",a),b=b.slice(0,c)+"?"+d.toString())}else b+=`?dpl=${a}`}}return{src:b,srcSet:void 0,sizes:void 0}}let{widths:i,kind:j}=function({deviceSizes:a,allSizes:b},c,d){if(d){let c=/(^|\s)(1?\d?\d)vw/g,e=[];for(let a;a=c.exec(d);)e.push(parseInt(a[2]));if(e.length){let c=.01*Math.min(...e);return{widths:b.filter(b=>b>=a[0]*c),kind:"w"}}return{widths:b,kind:"w"}}return"number"!=typeof c?{widths:a,kind:"w"}:{widths:[...new Set([c,2*c].map(a=>b.find(b=>b>=a)||b[b.length-1]))],kind:"x"}}(a,e,g),k=i.length-1;return{sizes:g||"w"!==j?g:"100vw",srcSet:i.map((c,d)=>`${h({config:a,src:b,quality:f,width:c})} ${"w"===j?c:d+1}${j}`).join(", "),src:h({config:a,src:b,quality:f,width:i[k]})}}({config:I,src:a,unoptimized:c,width:T,quality:W,sizes:b,loader:Q}),aa=V?"lazy":m;return{props:{...F,loading:aa,fetchPriority:y,width:T,height:U,decoding:z,className:n,style:{...X,...$},sizes:_.sizes,srcSet:_.srcSet,src:t||_.src},meta:{unoptimized:c,preload:l||k,placeholder:w,fill:r}}}},32103,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"default",{enumerable:!0,get:function(){return f}});let d=a.r(11321),e=()=>{};function f(a){let{headManager:b,reduceComponentsToState:c}=a;function f(){if(b&&b.mountedInstances){let a=d.Children.toArray(Array.from(b.mountedInstances).filter(Boolean));b.updateHead(c(a))}}return b?.mountedInstances?.add(a.children),f(),e(()=>(b?.mountedInstances?.add(a.children),()=>{b?.mountedInstances?.delete(a.children)})),e(()=>(b&&(b._pendingUpdate=f),()=>{b&&(b._pendingUpdate=f)})),null}},93457,(a,b,c)=>{"use strict";b.exports=a.r(64440).vendored.contexts.HeadManagerContext},56930,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0});var d={default:function(){return p},defaultHead:function(){return l}};for(var e in d)Object.defineProperty(c,e,{enumerable:!0,get:d[e]});let f=a.r(63652),g=a.r(3988),h=a.r(53083),i=g._(a.r(11321)),j=f._(a.r(32103)),k=a.r(93457);function l(){return[(0,h.jsx)("meta",{charSet:"utf-8"},"charset"),(0,h.jsx)("meta",{name:"viewport",content:"width=device-width"},"viewport")]}function m(a,b){return"string"==typeof b||"number"==typeof b?a:b.type===i.default.Fragment?a.concat(i.default.Children.toArray(b.props.children).reduce((a,b)=>"string"==typeof b||"number"==typeof b?a:a.concat(b),[])):a.concat(b)}a.r(92527);let n=["name","httpEquiv","charSet","itemProp"];function o(a){let b,c,d,e;return a.reduce(m,[]).reverse().concat(l().reverse()).filter((b=new Set,c=new Set,d=new Set,e={},a=>{let f=!0,g=!1;if(a.key&&"number"!=typeof a.key&&a.key.indexOf("$")>0){g=!0;let c=a.key.slice(a.key.indexOf("$")+1);b.has(c)?f=!1:b.add(c)}switch(a.type){case"title":case"base":c.has(a.type)?f=!1:c.add(a.type);break;case"meta":for(let b=0,c=n.length;b<c;b++){let c=n[b];if(a.props.hasOwnProperty(c))if("charSet"===c)d.has(c)?f=!1:d.add(c);else{let b=a.props[c],d=e[c]||new Set;("name"!==c||!g)&&d.has(b)?f=!1:(d.add(b),e[c]=d)}}}return f})).reverse().map((a,b)=>{let c=a.key||b;return i.default.cloneElement(a,{key:c})})}let p=function({children:a}){let b=(0,i.useContext)(k.HeadManagerContext);return(0,h.jsx)(j.default,{reduceComponentsToState:o,headManager:b,children:a})};("function"==typeof c.default||"object"==typeof c.default&&null!==c.default)&&void 0===c.default.__esModule&&(Object.defineProperty(c.default,"__esModule",{value:!0}),Object.assign(c.default,c),b.exports=c.default)},95751,(a,b,c)=>{"use strict";b.exports=a.r(64440).vendored.contexts.ImageConfigContext},14791,(a,b,c)=>{"use strict";b.exports=a.r(64440).vendored.contexts.RouterContext},3449,(a,b,c)=>{"use strict";function d(a,b){let c=a||75;return b?.qualities?.length?b.qualities.reduce((a,b)=>Math.abs(b-c)<Math.abs(a-c)?b:a,b.qualities[0]):c}Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"findClosestQuality",{enumerable:!0,get:function(){return d}})},68143,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"default",{enumerable:!0,get:function(){return g}});let d=a.r(3449),e=a.r(99760);function f({config:a,src:b,width:c,quality:g}){let h=(0,e.getDeploymentId)();if(b.startsWith("/")&&!b.startsWith("//")){let a=b.indexOf("?");if(-1!==a){let c=new URLSearchParams(b.slice(a+1)),d=c.get("dpl");if(d){h=d,c.delete("dpl");let e=c.toString();b=b.slice(0,a)+(e?"?"+e:"")}}}if(b.startsWith("/")&&b.includes("?")&&a.localPatterns?.length===1&&"**"===a.localPatterns[0].pathname&&""===a.localPatterns[0].search)throw Object.defineProperty(Error(`Image with src "${b}" is using a query string which is not configured in images.localPatterns.
|
|
3
|
-
Read more: https://nextjs.org/docs/messages/next-image-unconfigured-localpatterns`),"__NEXT_ERROR_CODE",{value:"E871",enumerable:!1,configurable:!0});let i=(0,d.findClosestQuality)(g,a);return`${a.path}?url=${encodeURIComponent(b)}&w=${c}&q=${i}${b.startsWith("/")&&h?`&dpl=${h}`:""}`}f.__next_img_default=!0;let g=f},64698,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"Image",{enumerable:!0,get:function(){return u}});let d=a.r(63652),e=a.r(3988),f=a.r(53083),g=e._(a.r(11321)),h=d._(a.r(69214)),i=d._(a.r(56930)),j=a.r(34856),k=a.r(88429),l=a.r(95751);a.r(92527);let m=a.r(14791),n=d._(a.r(68143)),o=a.r(54233),p={deviceSizes:[640,750,828,1080,1200,1920,2048,3840],imageSizes:[32,48,64,96,128,256,384],qualities:[75],path:"/_next/image",loader:"default",dangerouslyAllowSVG:!1,unoptimized:!1};function q(a,b,c,d,e,f,g){let h=a?.src;a&&a["data-loaded-src"]!==h&&(a["data-loaded-src"]=h,("decode"in a?a.decode():Promise.resolve()).catch(()=>{}).then(()=>{if(a.parentElement&&a.isConnected){if("empty"!==b&&e(!0),c?.current){let b=new Event("load");Object.defineProperty(b,"target",{writable:!1,value:a});let d=!1,e=!1;c.current({...b,nativeEvent:b,currentTarget:a,target:a,isDefaultPrevented:()=>d,isPropagationStopped:()=>e,persist:()=>{},preventDefault:()=>{d=!0,b.preventDefault()},stopPropagation:()=>{e=!0,b.stopPropagation()}})}d?.current&&d.current(a)}}))}function r(a){return g.use?{fetchPriority:a}:{fetchpriority:a}}globalThis.__NEXT_IMAGE_IMPORTED=!0;let s=(0,g.forwardRef)(({src:a,srcSet:b,sizes:c,height:d,width:e,decoding:h,className:i,style:j,fetchPriority:k,placeholder:l,loading:m,unoptimized:n,fill:p,onLoadRef:s,onLoadingCompleteRef:t,setBlurComplete:u,setShowAltText:v,sizesInput:w,onLoad:x,onError:y,...z},A)=>{let B=(0,g.useCallback)(a=>{a&&(y&&(a.src=a.src),a.complete&&q(a,l,s,t,u,n,w))},[a,l,s,t,u,y,n,w]),C=(0,o.useMergedRef)(A,B);return(0,f.jsx)("img",{...z,...r(k),loading:m,width:e,height:d,decoding:h,"data-nimg":p?"fill":"1",className:i,style:j,sizes:c,srcSet:b,src:a,ref:C,onLoad:a=>{q(a.currentTarget,l,s,t,u,n,w)},onError:a=>{v(!0),"empty"!==l&&u(!0),y&&y(a)}})});function t({isAppRouter:a,imgAttributes:b}){let c={as:"image",imageSrcSet:b.srcSet,imageSizes:b.sizes,crossOrigin:b.crossOrigin,referrerPolicy:b.referrerPolicy,...r(b.fetchPriority)};return a&&h.default.preload?(h.default.preload(b.src,c),null):(0,f.jsx)(i.default,{children:(0,f.jsx)("link",{rel:"preload",href:b.srcSet?void 0:b.src,...c},"__nimg-"+b.src+b.srcSet+b.sizes)})}let u=(0,g.forwardRef)((a,b)=>{let c=(0,g.useContext)(m.RouterContext),d=(0,g.useContext)(l.ImageConfigContext),e=(0,g.useMemo)(()=>{let a=p||d||k.imageConfigDefault,b=[...a.deviceSizes,...a.imageSizes].sort((a,b)=>a-b),c=a.deviceSizes.sort((a,b)=>a-b),e=a.qualities?.sort((a,b)=>a-b);return{...a,allSizes:b,deviceSizes:c,qualities:e,localPatterns:d?.localPatterns}},[d]),{onLoad:h,onLoadingComplete:i}=a,o=(0,g.useRef)(h);(0,g.useEffect)(()=>{o.current=h},[h]);let q=(0,g.useRef)(i);(0,g.useEffect)(()=>{q.current=i},[i]);let[r,u]=(0,g.useState)(!1),[v,w]=(0,g.useState)(!1),{props:x,meta:y}=(0,j.getImgProps)(a,{defaultLoader:n.default,imgConf:e,blurComplete:r,showAltText:v});return(0,f.jsxs)(f.Fragment,{children:[(0,f.jsx)(s,{...x,unoptimized:y.unoptimized,placeholder:y.placeholder,fill:y.fill,onLoadRef:o,onLoadingCompleteRef:q,setBlurComplete:u,setShowAltText:w,sizesInput:a.sizes,ref:b}),y.preload?(0,f.jsx)(t,{isAppRouter:!c,imgAttributes:x}):null]})});("function"==typeof c.default||"object"==typeof c.default&&null!==c.default)&&void 0===c.default.__esModule&&(Object.defineProperty(c.default,"__esModule",{value:!0}),Object.assign(c.default,c),b.exports=c.default)},26717,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0});var d={default:function(){return k},getImageProps:function(){return j}};for(var e in d)Object.defineProperty(c,e,{enumerable:!0,get:d[e]});let f=a.r(63652),g=a.r(34856),h=a.r(64698),i=f._(a.r(68143));function j(a){let{props:b}=(0,g.getImgProps)(a,{defaultLoader:i.default,imgConf:{deviceSizes:[640,750,828,1080,1200,1920,2048,3840],imageSizes:[32,48,64,96,128,256,384],qualities:[75],path:"/_next/image",loader:"default",dangerouslyAllowSVG:!1,unoptimized:!1}});for(let[a,c]of Object.entries(b))void 0===c&&delete b[a];return{props:b}}let k=h.Image},7077,(a,b,c)=>{b.exports=a.r(26717)},17606,a=>{"use strict";var b=a.i(53083),c=a.i(7077),d=a.i(85536);function e(a,e){function f({className:g}){return(0,b.jsx)(c.default,{src:a,alt:e,width:24,height:24,className:(0,d.cn)("rounded-sm object-contain",g)})}return f.displayName=`BrandIcon(${e})`,f}function f(a){return(0,b.jsxs)("svg",{viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg",...a,children:[(0,b.jsx)("circle",{cx:"12",cy:"12",r:"9",stroke:"currentColor",strokeWidth:"2"}),(0,b.jsx)("circle",{cx:"12",cy:"12",r:"3",fill:"currentColor"})]})}let g={"claude-code":e("/icons/agents/claude-ai-icon.svg","Claude Code"),"codex-cli":e("/icons/agents/openai.svg","Codex CLI"),"copilot-cli":f,cursor:e("/icons/agents/cursor.jpeg","Cursor"),"gemini-cli":e("/icons/agents/gemini-cli.jpeg","Gemini CLI"),"rovo-dev":f};a.s(["agentTypeLabels",0,{"claude-code":"Claude Code","codex-cli":"Codex CLI","copilot-cli":"GitHub Copilot CLI",cursor:"Cursor","gemini-cli":"Gemini CLI","rovo-dev":"Rovo Dev CLI"},"getAgentTypeIcon",0,function(a){return a&&a in g?g[a]:f}])},83852,a=>{"use strict";let b={"claude-opus-4-6":{displayName:"Opus 4.6",description:"Most capable, complex tasks"},"claude-sonnet-4-6":{displayName:"Sonnet 4.6",description:"Fast & balanced"},"claude-haiku-4-5":{displayName:"Haiku 4.5",description:"Lightweight & quick"},"gemini-3.1-pro":{displayName:"Gemini 3.1 Pro",description:"Advanced reasoning"},"gemini-3-flash":{displayName:"Gemini 3 Flash",description:"Ultra-fast responses"},"gemini-2.5-pro":{displayName:"Gemini 2.5 Pro",description:"Reliable workhorse"},"gemini-2.5-flash":{displayName:"Gemini 2.5 Flash",description:"Speed-optimized"},"gpt-5.4-high":{displayName:"GPT-5.4",description:"Latest reasoning model"},"gpt-5.2":{displayName:"GPT-5.2",description:"Flagship model"},"gpt-5.3-codex":{displayName:"GPT-5.3 Codex",description:"Code specialist"},"composer-1.5":{displayName:"Composer 1.5",description:"Multi-file editing"},"grok-code":{displayName:"Grok Code",description:"xAI code model"},"gpt-8":{displayName:"GPT-8",description:"Writes code before you think it"},"opus-7":{displayName:"Opus 7",description:"Achieved consciousness, ships on time"}},c={displayName:"",description:""};a.s(["getModelMeta",0,function(a){let d=b[a];return d||{...c,displayName:a.replace(/^claude-/,"").replace(/^gemini-/,"Gemini ").replace(/^gpt-/,"GPT-").replace(/-/g," ").replace(/\b\w/g,a=>a.toUpperCase())}}])},29345,a=>{"use strict";let b=(0,a.i(97624).default)("chevron-down",[["path",{d:"m6 9 6 6 6-6",key:"qrunsl"}]]);a.s(["ChevronDown",0,b],29345)},40227,a=>{"use strict";let b=(0,a.i(97624).default)("chevron-left",[["path",{d:"m15 18-6-6 6-6",key:"1wnfg3"}]]);a.s(["ChevronLeft",0,b],40227)},38776,a=>{"use strict";let b=(0,a.i(97624).default)("chevron-right",[["path",{d:"m9 18 6-6-6-6",key:"mthhwq"}]]);a.s(["ChevronRight",0,b],38776)},
|
|
3
|
+
Read more: https://nextjs.org/docs/messages/next-image-unconfigured-localpatterns`),"__NEXT_ERROR_CODE",{value:"E871",enumerable:!1,configurable:!0});let i=(0,d.findClosestQuality)(g,a);return`${a.path}?url=${encodeURIComponent(b)}&w=${c}&q=${i}${b.startsWith("/")&&h?`&dpl=${h}`:""}`}f.__next_img_default=!0;let g=f},64698,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0}),Object.defineProperty(c,"Image",{enumerable:!0,get:function(){return u}});let d=a.r(63652),e=a.r(3988),f=a.r(53083),g=e._(a.r(11321)),h=d._(a.r(69214)),i=d._(a.r(56930)),j=a.r(34856),k=a.r(88429),l=a.r(95751);a.r(92527);let m=a.r(14791),n=d._(a.r(68143)),o=a.r(54233),p={deviceSizes:[640,750,828,1080,1200,1920,2048,3840],imageSizes:[32,48,64,96,128,256,384],qualities:[75],path:"/_next/image",loader:"default",dangerouslyAllowSVG:!1,unoptimized:!1};function q(a,b,c,d,e,f,g){let h=a?.src;a&&a["data-loaded-src"]!==h&&(a["data-loaded-src"]=h,("decode"in a?a.decode():Promise.resolve()).catch(()=>{}).then(()=>{if(a.parentElement&&a.isConnected){if("empty"!==b&&e(!0),c?.current){let b=new Event("load");Object.defineProperty(b,"target",{writable:!1,value:a});let d=!1,e=!1;c.current({...b,nativeEvent:b,currentTarget:a,target:a,isDefaultPrevented:()=>d,isPropagationStopped:()=>e,persist:()=>{},preventDefault:()=>{d=!0,b.preventDefault()},stopPropagation:()=>{e=!0,b.stopPropagation()}})}d?.current&&d.current(a)}}))}function r(a){return g.use?{fetchPriority:a}:{fetchpriority:a}}globalThis.__NEXT_IMAGE_IMPORTED=!0;let s=(0,g.forwardRef)(({src:a,srcSet:b,sizes:c,height:d,width:e,decoding:h,className:i,style:j,fetchPriority:k,placeholder:l,loading:m,unoptimized:n,fill:p,onLoadRef:s,onLoadingCompleteRef:t,setBlurComplete:u,setShowAltText:v,sizesInput:w,onLoad:x,onError:y,...z},A)=>{let B=(0,g.useCallback)(a=>{a&&(y&&(a.src=a.src),a.complete&&q(a,l,s,t,u,n,w))},[a,l,s,t,u,y,n,w]),C=(0,o.useMergedRef)(A,B);return(0,f.jsx)("img",{...z,...r(k),loading:m,width:e,height:d,decoding:h,"data-nimg":p?"fill":"1",className:i,style:j,sizes:c,srcSet:b,src:a,ref:C,onLoad:a=>{q(a.currentTarget,l,s,t,u,n,w)},onError:a=>{v(!0),"empty"!==l&&u(!0),y&&y(a)}})});function t({isAppRouter:a,imgAttributes:b}){let c={as:"image",imageSrcSet:b.srcSet,imageSizes:b.sizes,crossOrigin:b.crossOrigin,referrerPolicy:b.referrerPolicy,...r(b.fetchPriority)};return a&&h.default.preload?(h.default.preload(b.src,c),null):(0,f.jsx)(i.default,{children:(0,f.jsx)("link",{rel:"preload",href:b.srcSet?void 0:b.src,...c},"__nimg-"+b.src+b.srcSet+b.sizes)})}let u=(0,g.forwardRef)((a,b)=>{let c=(0,g.useContext)(m.RouterContext),d=(0,g.useContext)(l.ImageConfigContext),e=(0,g.useMemo)(()=>{let a=p||d||k.imageConfigDefault,b=[...a.deviceSizes,...a.imageSizes].sort((a,b)=>a-b),c=a.deviceSizes.sort((a,b)=>a-b),e=a.qualities?.sort((a,b)=>a-b);return{...a,allSizes:b,deviceSizes:c,qualities:e,localPatterns:d?.localPatterns}},[d]),{onLoad:h,onLoadingComplete:i}=a,o=(0,g.useRef)(h);(0,g.useEffect)(()=>{o.current=h},[h]);let q=(0,g.useRef)(i);(0,g.useEffect)(()=>{q.current=i},[i]);let[r,u]=(0,g.useState)(!1),[v,w]=(0,g.useState)(!1),{props:x,meta:y}=(0,j.getImgProps)(a,{defaultLoader:n.default,imgConf:e,blurComplete:r,showAltText:v});return(0,f.jsxs)(f.Fragment,{children:[(0,f.jsx)(s,{...x,unoptimized:y.unoptimized,placeholder:y.placeholder,fill:y.fill,onLoadRef:o,onLoadingCompleteRef:q,setBlurComplete:u,setShowAltText:w,sizesInput:a.sizes,ref:b}),y.preload?(0,f.jsx)(t,{isAppRouter:!c,imgAttributes:x}):null]})});("function"==typeof c.default||"object"==typeof c.default&&null!==c.default)&&void 0===c.default.__esModule&&(Object.defineProperty(c.default,"__esModule",{value:!0}),Object.assign(c.default,c),b.exports=c.default)},26717,(a,b,c)=>{"use strict";Object.defineProperty(c,"__esModule",{value:!0});var d={default:function(){return k},getImageProps:function(){return j}};for(var e in d)Object.defineProperty(c,e,{enumerable:!0,get:d[e]});let f=a.r(63652),g=a.r(34856),h=a.r(64698),i=f._(a.r(68143));function j(a){let{props:b}=(0,g.getImgProps)(a,{defaultLoader:i.default,imgConf:{deviceSizes:[640,750,828,1080,1200,1920,2048,3840],imageSizes:[32,48,64,96,128,256,384],qualities:[75],path:"/_next/image",loader:"default",dangerouslyAllowSVG:!1,unoptimized:!1}});for(let[a,c]of Object.entries(b))void 0===c&&delete b[a];return{props:b}}let k=h.Image},7077,(a,b,c)=>{b.exports=a.r(26717)},17606,a=>{"use strict";var b=a.i(53083),c=a.i(7077),d=a.i(85536);function e(a,e){function f({className:g}){return(0,b.jsx)(c.default,{src:a,alt:e,width:24,height:24,className:(0,d.cn)("rounded-sm object-contain",g)})}return f.displayName=`BrandIcon(${e})`,f}function f(a){return(0,b.jsxs)("svg",{viewBox:"0 0 24 24",fill:"none",xmlns:"http://www.w3.org/2000/svg",...a,children:[(0,b.jsx)("circle",{cx:"12",cy:"12",r:"9",stroke:"currentColor",strokeWidth:"2"}),(0,b.jsx)("circle",{cx:"12",cy:"12",r:"3",fill:"currentColor"})]})}let g={"claude-code":e("/icons/agents/claude-ai-icon.svg","Claude Code"),"codex-cli":e("/icons/agents/openai.svg","Codex CLI"),"copilot-cli":f,cursor:e("/icons/agents/cursor.jpeg","Cursor"),"gemini-cli":e("/icons/agents/gemini-cli.jpeg","Gemini CLI"),"rovo-dev":f};a.s(["agentTypeLabels",0,{"claude-code":"Claude Code","codex-cli":"Codex CLI","copilot-cli":"GitHub Copilot CLI",cursor:"Cursor","gemini-cli":"Gemini CLI","rovo-dev":"Rovo Dev CLI"},"getAgentTypeIcon",0,function(a){return a&&a in g?g[a]:f}])},83852,a=>{"use strict";let b={"claude-opus-4-6":{displayName:"Opus 4.6",description:"Most capable, complex tasks"},"claude-sonnet-4-6":{displayName:"Sonnet 4.6",description:"Fast & balanced"},"claude-haiku-4-5":{displayName:"Haiku 4.5",description:"Lightweight & quick"},"gemini-3.1-pro":{displayName:"Gemini 3.1 Pro",description:"Advanced reasoning"},"gemini-3-flash":{displayName:"Gemini 3 Flash",description:"Ultra-fast responses"},"gemini-2.5-pro":{displayName:"Gemini 2.5 Pro",description:"Reliable workhorse"},"gemini-2.5-flash":{displayName:"Gemini 2.5 Flash",description:"Speed-optimized"},"gpt-5.4-high":{displayName:"GPT-5.4",description:"Latest reasoning model"},"gpt-5.2":{displayName:"GPT-5.2",description:"Flagship model"},"gpt-5.3-codex":{displayName:"GPT-5.3 Codex",description:"Code specialist"},"composer-1.5":{displayName:"Composer 1.5",description:"Multi-file editing"},"grok-code":{displayName:"Grok Code",description:"xAI code model"},"gpt-8":{displayName:"GPT-8",description:"Writes code before you think it"},"opus-7":{displayName:"Opus 7",description:"Achieved consciousness, ships on time"}},c={displayName:"",description:""};a.s(["getModelMeta",0,function(a){let d=b[a];return d||{...c,displayName:a.replace(/^claude-/,"").replace(/^gemini-/,"Gemini ").replace(/^gpt-/,"GPT-").replace(/-/g," ").replace(/\b\w/g,a=>a.toUpperCase())}}])},29345,a=>{"use strict";let b=(0,a.i(97624).default)("chevron-down",[["path",{d:"m6 9 6 6 6-6",key:"qrunsl"}]]);a.s(["ChevronDown",0,b],29345)},40227,a=>{"use strict";let b=(0,a.i(97624).default)("chevron-left",[["path",{d:"m15 18-6-6 6-6",key:"1wnfg3"}]]);a.s(["ChevronLeft",0,b],40227)},38776,a=>{"use strict";let b=(0,a.i(97624).default)("chevron-right",[["path",{d:"m9 18 6-6-6-6",key:"mthhwq"}]]);a.s(["ChevronRight",0,b],38776)},56651,92918,a=>{"use strict";var b=a.i(6120);let c=(0,b.createServerReference)("00ddc4d8c7bb21084a052886ac4dcdc379951a9c8d",b.callServer,void 0,b.findSourceMapURL,"getAllAgentModels");a.s(["getAllAgentModels",0,c],56651);let d=(0,b.createServerReference)("6047152bbf8b56805cdd8fbf99c731100a0b1dff9f",b.callServer,void 0,b.findSourceMapURL,"updateAgentAndModel");a.s(["updateAgentAndModel",0,d],92918)}];
|
|
4
4
|
|
|
5
|
-
//# sourceMappingURL=
|
|
5
|
+
//# sourceMappingURL=_09b301s._.js.map
|