@shipit-ai/cli 1.167.1 → 1.169.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/dist/packages/core/src/infrastructure/services/tool-installer/tools/antigravity.json +1 -1
- package/dist/packages/core/src/infrastructure/services/tool-installer/tools/bash.json +1 -0
- package/dist/packages/core/src/infrastructure/services/tool-installer/tools/cursor-cli.json +1 -1
- package/dist/packages/core/src/infrastructure/services/tool-installer/tools/cursor.json +1 -1
- package/dist/packages/core/src/infrastructure/services/tool-installer/tools/fish.json +1 -0
- package/dist/packages/core/src/infrastructure/services/tool-installer/tools/powershell.json +1 -0
- package/dist/packages/core/src/infrastructure/services/tool-installer/tools/zsh.json +1 -0
- package/dist/src/presentation/web/app/layout.d.ts.map +1 -1
- package/dist/src/presentation/web/app/layout.js +15 -2
- package/dist/src/presentation/web/components/common/base-drawer/base-drawer.d.ts.map +1 -1
- package/dist/src/presentation/web/components/common/base-drawer/base-drawer.js +4 -1
- package/dist/src/presentation/web/components/common/page-header/page-header.d.ts +3 -1
- package/dist/src/presentation/web/components/common/page-header/page-header.d.ts.map +1 -1
- package/dist/src/presentation/web/components/common/page-header/page-header.js +8 -2
- package/dist/src/presentation/web/components/common/repository-node/repository-node.d.ts.map +1 -1
- package/dist/src/presentation/web/components/common/repository-node/repository-node.js +6 -1
- package/dist/src/presentation/web/components/common/shipit-ai-logo/shipit-ai-logo.d.ts +9 -1
- package/dist/src/presentation/web/components/common/shipit-ai-logo/shipit-ai-logo.d.ts.map +1 -1
- package/dist/src/presentation/web/components/common/shipit-ai-logo/shipit-ai-logo.js +12 -6
- package/dist/src/presentation/web/components/common/sidebar-collapse-toggle/sidebar-collapse-toggle.d.ts.map +1 -1
- package/dist/src/presentation/web/components/common/sidebar-collapse-toggle/sidebar-collapse-toggle.js +5 -1
- package/dist/src/presentation/web/components/common/sidebar-nav-item/sidebar-nav-item.d.ts.map +1 -1
- package/dist/src/presentation/web/components/common/sidebar-nav-item/sidebar-nav-item.js +15 -0
- package/dist/src/presentation/web/components/features/chat/ChatSheet.d.ts.map +1 -1
- package/dist/src/presentation/web/components/features/chat/ChatSheet.js +18 -5
- package/dist/src/presentation/web/components/features/control-center/control-center-empty-state.d.ts.map +1 -1
- package/dist/src/presentation/web/components/features/control-center/control-center-empty-state.js +1 -1
- package/dist/src/presentation/web/components/features/features-canvas/features-canvas.d.ts.map +1 -1
- package/dist/src/presentation/web/components/features/features-canvas/features-canvas.js +5 -1
- package/dist/src/presentation/web/components/features/settings/agent-settings-section.d.ts +3 -3
- package/dist/src/presentation/web/components/features/settings/agent-settings-section.d.ts.map +1 -1
- package/dist/src/presentation/web/components/features/settings/agent-settings-section.js +23 -102
- package/dist/src/presentation/web/components/features/settings/agent-settings-section.stories.d.ts +2 -3
- package/dist/src/presentation/web/components/features/settings/agent-settings-section.stories.d.ts.map +1 -1
- package/dist/src/presentation/web/components/features/settings/agent-settings-section.stories.js +18 -22
- package/dist/src/presentation/web/components/features/settings/ci-settings-section.d.ts.map +1 -1
- package/dist/src/presentation/web/components/features/settings/ci-settings-section.js +14 -5
- package/dist/src/presentation/web/components/features/settings/database-settings-section.d.ts.map +1 -1
- package/dist/src/presentation/web/components/features/settings/database-settings-section.js +14 -4
- package/dist/src/presentation/web/components/features/settings/environment-settings-section.d.ts +9 -3
- package/dist/src/presentation/web/components/features/settings/environment-settings-section.d.ts.map +1 -1
- package/dist/src/presentation/web/components/features/settings/environment-settings-section.js +75 -65
- package/dist/src/presentation/web/components/features/settings/environment-settings-section.stories.d.ts.map +1 -1
- package/dist/src/presentation/web/components/features/settings/environment-settings-section.stories.js +20 -18
- package/dist/src/presentation/web/components/features/settings/fab-layout-settings-section.d.ts.map +1 -1
- package/dist/src/presentation/web/components/features/settings/fab-layout-settings-section.js +1 -1
- package/dist/src/presentation/web/components/features/settings/feature-flags-settings-section.d.ts +3 -3
- package/dist/src/presentation/web/components/features/settings/feature-flags-settings-section.d.ts.map +1 -1
- package/dist/src/presentation/web/components/features/settings/feature-flags-settings-section.js +48 -50
- package/dist/src/presentation/web/components/features/settings/feature-flags-settings-section.stories.d.ts.map +1 -1
- package/dist/src/presentation/web/components/features/settings/feature-flags-settings-section.stories.js +25 -25
- package/dist/src/presentation/web/components/features/settings/interactive-agent-settings-section.d.ts.map +1 -1
- package/dist/src/presentation/web/components/features/settings/interactive-agent-settings-section.js +3 -3
- package/dist/src/presentation/web/components/features/settings/notification-settings-section.d.ts +3 -3
- package/dist/src/presentation/web/components/features/settings/notification-settings-section.d.ts.map +1 -1
- package/dist/src/presentation/web/components/features/settings/notification-settings-section.js +64 -47
- package/dist/src/presentation/web/components/features/settings/notification-settings-section.stories.d.ts.map +1 -1
- package/dist/src/presentation/web/components/features/settings/notification-settings-section.stories.js +32 -24
- package/dist/src/presentation/web/components/features/settings/settings-page-client.d.ts.map +1 -1
- package/dist/src/presentation/web/components/features/settings/settings-page-client.js +28 -381
- package/dist/src/presentation/web/components/features/settings/settings-page-client.stories.d.ts +2 -0
- package/dist/src/presentation/web/components/features/settings/settings-page-client.stories.d.ts.map +1 -1
- package/dist/src/presentation/web/components/features/settings/settings-page-client.stories.js +13 -0
- package/dist/src/presentation/web/components/features/settings/settings-section-utils.d.ts +13 -10
- package/dist/src/presentation/web/components/features/settings/settings-section-utils.d.ts.map +1 -1
- package/dist/src/presentation/web/components/features/settings/settings-section-utils.js +10 -10
- package/dist/src/presentation/web/components/features/settings/settings-section-utils.stories.d.ts +1 -1
- package/dist/src/presentation/web/components/features/settings/settings-section-utils.stories.d.ts.map +1 -1
- package/dist/src/presentation/web/components/features/settings/settings-section-utils.stories.js +7 -7
- package/dist/src/presentation/web/components/features/settings/stage-timeouts-settings-section.d.ts.map +1 -1
- package/dist/src/presentation/web/components/features/settings/stage-timeouts-settings-section.js +1 -1
- package/dist/src/presentation/web/components/features/settings/workflow-settings-section.d.ts +3 -3
- package/dist/src/presentation/web/components/features/settings/workflow-settings-section.d.ts.map +1 -1
- package/dist/src/presentation/web/components/features/settings/workflow-settings-section.js +118 -165
- package/dist/src/presentation/web/components/features/settings/workflow-settings-section.stories.d.ts +1 -1
- package/dist/src/presentation/web/components/features/settings/workflow-settings-section.stories.d.ts.map +1 -1
- package/dist/src/presentation/web/components/features/settings/workflow-settings-section.stories.js +26 -64
- package/dist/src/presentation/web/components/features/skills/category-filter.d.ts.map +1 -1
- package/dist/src/presentation/web/components/features/skills/category-filter.js +12 -2
- package/dist/src/presentation/web/components/features/skills/skill-card.d.ts.map +1 -1
- package/dist/src/presentation/web/components/features/skills/skill-card.js +3 -3
- package/dist/src/presentation/web/components/features/skills/skill-detail-drawer.d.ts.map +1 -1
- package/dist/src/presentation/web/components/features/skills/skill-detail-drawer.js +27 -1
- package/dist/src/presentation/web/components/features/skills/skill-list.js +2 -2
- package/dist/src/presentation/web/components/features/skills/skills-page-client.d.ts.map +1 -1
- package/dist/src/presentation/web/components/features/skills/skills-page-client.js +2 -2
- package/dist/src/presentation/web/components/features/tools/tool-card.d.ts.map +1 -1
- package/dist/src/presentation/web/components/features/tools/tool-card.js +20 -11
- package/dist/src/presentation/web/components/features/tools/tool-detail-drawer.js +1 -1
- package/dist/src/presentation/web/components/features/tools/tools-page-client.d.ts.map +1 -1
- package/dist/src/presentation/web/components/features/tools/tools-page-client.js +6 -1
- package/dist/src/presentation/web/components/layouts/app-sidebar/app-sidebar.d.ts.map +1 -1
- package/dist/src/presentation/web/components/layouts/app-sidebar/app-sidebar.js +39 -43
- package/dist/src/presentation/web/components/ui/card.d.ts.map +1 -1
- package/dist/src/presentation/web/components/ui/card.js +9 -1
- package/dist/src/presentation/web/components/ui/drawer.d.ts.map +1 -1
- package/dist/src/presentation/web/components/ui/drawer.js +8 -2
- package/dist/src/presentation/web/components/ui/tooltip.d.ts.map +1 -1
- package/dist/src/presentation/web/components/ui/tooltip.js +3 -3
- package/dist/translations/ar/web.json +1 -0
- package/dist/translations/de/web.json +1 -0
- package/dist/translations/en/web.json +1 -0
- package/dist/translations/es/web.json +1 -0
- package/dist/translations/fr/web.json +1 -0
- package/dist/translations/he/web.json +1 -0
- package/dist/translations/pt/web.json +1 -0
- package/dist/translations/ru/web.json +1 -0
- package/dist/tsconfig.build.tsbuildinfo +1 -1
- package/package.json +1 -1
- package/web/.next/BUILD_ID +1 -1
- package/web/.next/build-manifest.json +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/next-font-manifest.json +6 -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 +1 -1
- 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/next-font-manifest.json +6 -2
- 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 +1 -1
- 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/next-font-manifest.json +6 -2
- 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 +1 -1
- 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/next-font-manifest.json +6 -2
- 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 +2 -2
- 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/next-font-manifest.json +6 -2
- 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 +2 -2
- 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/next-font-manifest.json +6 -2
- 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 +1 -1
- 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/next-font-manifest.json +6 -2
- 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 +1 -1
- 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/next-font-manifest.json +6 -2
- package/web/.next/server/app/(dashboard)/chat/page/server-reference-manifest.json +27 -27
- package/web/.next/server/app/(dashboard)/chat/page.js +1 -1
- 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/next-font-manifest.json +6 -2
- package/web/.next/server/app/(dashboard)/create/page/server-reference-manifest.json +31 -31
- package/web/.next/server/app/(dashboard)/create/page.js +1 -1
- 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/next-font-manifest.json +6 -2
- 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 +2 -2
- 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/next-font-manifest.json +6 -2
- 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 +2 -2
- 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/next-font-manifest.json +6 -2
- package/web/.next/server/app/(dashboard)/page/server-reference-manifest.json +27 -27
- package/web/.next/server/app/(dashboard)/page.js +1 -1
- 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/next-font-manifest.json +6 -2
- 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 +1 -1
- 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/next-font-manifest.json +6 -2
- 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 +1 -1
- 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/next-font-manifest.json +6 -2
- package/web/.next/server/app/_not-found/page/server-reference-manifest.json +6 -6
- package/web/.next/server/app/_not-found/page.js +1 -1
- 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/api/attachments/preview/route.js.nft.json +1 -1
- package/web/.next/server/app/api/dialog/pick-files/route.js.nft.json +1 -1
- package/web/.next/server/app/api/evidence/route.js.nft.json +1 -1
- package/web/.next/server/app/api/graph-data/route.js.nft.json +1 -1
- package/web/.next/server/app/api/interactive/chat/[featureId]/messages/route.js.nft.json +1 -1
- package/web/.next/server/app/settings/page/next-font-manifest.json +6 -2
- package/web/.next/server/app/settings/page/server-reference-manifest.json +11 -11
- package/web/.next/server/app/settings/page.js +1 -1
- 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/next-font-manifest.json +6 -2
- package/web/.next/server/app/skills/page/server-reference-manifest.json +11 -11
- package/web/.next/server/app/skills/page.js +1 -1
- 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/next-font-manifest.json +6 -2
- package/web/.next/server/app/tools/page/server-reference-manifest.json +11 -11
- package/web/.next/server/app/tools/page.js +1 -1
- 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/next-font-manifest.json +6 -2
- package/web/.next/server/app/version/page/server-reference-manifest.json +6 -6
- package/web/.next/server/app/version/page.js +1 -1
- 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/08qz_lucide-react_dist_esm_icons_0c0dui7._.js +3 -0
- package/web/.next/server/chunks/ssr/08qz_lucide-react_dist_esm_icons_0c0dui7._.js.map +1 -0
- 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/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]__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]__0uy_5rw._.js → [root-of-the-server]__0ge~xny._.js} +2 -2
- package/web/.next/server/chunks/ssr/{[root-of-the-server]__0uy_5rw._.js.map → [root-of-the-server]__0ge~xny._.js.map} +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__0jy4nha._.js +3 -0
- package/web/.next/server/chunks/ssr/[root-of-the-server]__0jy4nha._.js.map +1 -0
- package/web/.next/server/chunks/ssr/{_0e5cv3q._.js → [root-of-the-server]__0n~o-g-._.js} +2 -2
- package/web/.next/server/chunks/ssr/[root-of-the-server]__0n~o-g-._.js.map +1 -0
- package/web/.next/server/chunks/ssr/{[root-of-the-server]__02.89uf._.js → [root-of-the-server]__0qda~yi._.js} +2 -2
- package/web/.next/server/chunks/ssr/{[root-of-the-server]__02.89uf._.js.map → [root-of-the-server]__0qda~yi._.js.map} +1 -1
- package/web/.next/server/chunks/ssr/{[root-of-the-server]__0c0xoi_._.js → [root-of-the-server]__0qxd563._.js} +2 -2
- package/web/.next/server/chunks/ssr/{[root-of-the-server]__0c0xoi_._.js.map → [root-of-the-server]__0qxd563._.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]__0rvrr1j._.js +1 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__0rvrr1j._.js.map +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]__0r5zhk.._.js → [root-of-the-server]__0t~u8sd._.js} +2 -2
- package/web/.next/server/chunks/ssr/{[root-of-the-server]__0r5zhk.._.js.map → [root-of-the-server]__0t~u8sd._.js.map} +1 -1
- package/web/.next/server/chunks/ssr/{[root-of-the-server]__04rq9lr._.js → [root-of-the-server]__10tll_l._.js} +2 -2
- package/web/.next/server/chunks/ssr/{[root-of-the-server]__04rq9lr._.js.map → [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/_0-09vq7._.js +1 -1
- package/web/.next/server/chunks/ssr/_0-09vq7._.js.map +1 -1
- package/web/.next/server/chunks/ssr/{_138qywk._.js → _01qdxy2._.js} +2 -2
- package/web/.next/server/chunks/ssr/{_138qywk._.js.map → _01qdxy2._.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/_09r54oy._.js +7 -0
- package/web/.next/server/chunks/ssr/_09r54oy._.js.map +1 -0
- 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/_0a_8rlj._.js +3 -0
- package/web/.next/server/chunks/ssr/_0a_8rlj._.js.map +1 -0
- 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/_0dy8.0k._.js +3 -0
- package/web/.next/server/chunks/ssr/_0dy8.0k._.js.map +1 -0
- 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/_0l2~~pi._.js +3 -0
- package/web/.next/server/chunks/ssr/_0l2~~pi._.js.map +1 -0
- package/web/.next/server/chunks/ssr/_0n.magx._.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/{_00k65h-._.js → _0pa1dkv._.js} +2 -2
- package/web/.next/server/chunks/ssr/_0pa1dkv._.js.map +1 -0
- 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/_0vjw-e_._.js +7 -0
- package/web/.next/server/chunks/ssr/_0vjw-e_._.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/{_0-.ckn5._.js → _0wor25i._.js} +2 -2
- package/web/.next/server/chunks/ssr/{_0-.ckn5._.js.map → _0wor25i._.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/{_0hwjfpu._.js → _0~0jkp_._.js} +2 -2
- package/web/.next/server/chunks/ssr/_0~0jkp_._.js.map +1 -0
- 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/_1161g9x._.js +1 -1
- package/web/.next/server/chunks/ssr/_1161g9x._.js.map +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_0y11iiz._.js +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_0y11iiz._.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_0sk2qdt._.js +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_components_0sk2qdt._.js.map +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/chunks/ssr/src_presentation_web_components_features_tools_tools-page-client_tsx_0aji.op._.js +1 -1
- package/web/.next/server/chunks/ssr/src_presentation_web_components_features_tools_tools-page-client_tsx_0aji.op._.js.map +1 -1
- package/web/.next/server/middleware-build-manifest.js +3 -3
- package/web/.next/server/next-font-manifest.js +1 -1
- package/web/.next/server/next-font-manifest.json +60 -2
- 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 +50 -50
- package/web/.next/static/chunks/{05enics63g._-.js → 0-ud~1jj7chzu.js} +4 -4
- package/web/.next/static/chunks/00m_fbc2z1gyi.js +5 -0
- package/web/.next/static/chunks/{0q7ohuqneuur4.js → 09f2lesd_dd3~.js} +1 -1
- package/web/.next/static/chunks/0c0dau5pmseko.js +1 -0
- package/web/.next/static/chunks/{0ps5sykbi-z5-.js → 0dq50gtgaj63f.js} +1 -1
- package/web/.next/static/chunks/{11bi612fz8agh.js → 0in4l8mne5y~_.js} +1 -1
- package/web/.next/static/chunks/0inayq2zzadja.js +1 -0
- package/web/.next/static/chunks/{0t3xjndx2s1_j.css → 0j.1nx3ly591i.css} +1 -0
- package/web/.next/static/chunks/{0-woqr2brccx_.js → 0k0j7anrbg-of.js} +1 -1
- package/web/.next/static/chunks/{0ma7k9iohb3bb.js → 0o33urrd3lk~u.js} +1 -1
- package/web/.next/static/chunks/0o4m0k3642219.js +1 -0
- package/web/.next/static/chunks/0pt-d18f7zxvv.js +1 -0
- package/web/.next/static/chunks/{0ls0v8h_qbctm.js → 0u_27fdqa2jeg.js} +1 -1
- package/web/.next/static/chunks/0udlnp30o1kjd.js +5 -0
- package/web/.next/static/chunks/0xwh.0u-dexsl.js +1 -0
- package/web/.next/static/chunks/0yibymrb2j05t.css +1 -0
- package/web/.next/static/chunks/103xnw203o9k1.js +1 -0
- package/web/.next/static/chunks/{022nrd6snse79.js → 11vbir.u7_zf7.js} +1 -1
- package/web/.next/static/chunks/{02phgt~f2c-2q.js → 121v1_d_dfk2k.js} +1 -1
- package/web/.next/static/chunks/{0q8ax~44oybo2.js → 12axopx66pocj.js} +1 -1
- package/web/.next/static/chunks/12pd180jp8zu..js +5 -0
- package/web/.next/static/chunks/13fcwhkw7dle2.js +1 -0
- package/web/.next/static/chunks/13q1peb_t9vj8.js +1 -0
- package/web/.next/static/chunks/183ehj-b80a~o.js +1 -0
- package/web/.next/static/chunks/{0j.wph28jrce1.js → 1874_wt9rit96.js} +1 -1
- package/web/.next/static/media/1bffadaabf893a1e-s.16ipb6fqu393i.woff2 +0 -0
- package/web/.next/static/media/2bbe8d2671613f1f-s.067x_6k0k23tk.woff2 +0 -0
- package/web/.next/static/media/2c55a0e60120577a-s.0bjc5tiuqdqro.woff2 +0 -0
- package/web/.next/static/media/5476f68d60460930-s.0wxq9webf.ew4.woff2 +0 -0
- package/web/.next/static/media/83afe278b6a6bb3c-s.p.0q-301v4kxxnr.woff2 +0 -0
- package/web/.next/static/media/9c72aa0f40e4eef8-s.0m6w47a4e5dy9.woff2 +0 -0
- package/web/.next/static/media/ad66f9afd8947f86-s.11u06r12fd6v_.woff2 +0 -0
- package/web/package.json +2 -2
- package/web/public/favicon.svg +10 -0
- package/web/public/icons/tools/antigravity.svg +1 -0
- package/web/public/icons/tools/bash.svg +38 -0
- package/web/public/icons/tools/cursor-cli.svg +12 -0
- package/web/public/icons/tools/cursor.svg +1 -0
- package/web/public/icons/tools/fish.svg +153 -0
- package/web/public/icons/tools/powershell.svg +29 -0
- package/web/public/icons/tools/zsh.svg +1 -0
- package/web/.next/server/chunks/ssr/08qz_lucide-react_dist_esm_icons_0zwb4s4._.js +0 -3
- package/web/.next/server/chunks/ssr/08qz_lucide-react_dist_esm_icons_0zwb4s4._.js.map +0 -1
- package/web/.next/server/chunks/ssr/[root-of-the-server]__0lslgap._.js +0 -7
- package/web/.next/server/chunks/ssr/[root-of-the-server]__0lslgap._.js.map +0 -1
- package/web/.next/server/chunks/ssr/_00k65h-._.js.map +0 -1
- package/web/.next/server/chunks/ssr/_08i-c2n._.js +0 -3
- package/web/.next/server/chunks/ssr/_08i-c2n._.js.map +0 -1
- package/web/.next/server/chunks/ssr/_0aaotn-._.js +0 -3
- package/web/.next/server/chunks/ssr/_0aaotn-._.js.map +0 -1
- package/web/.next/server/chunks/ssr/_0e5cv3q._.js.map +0 -1
- package/web/.next/server/chunks/ssr/_0hwjfpu._.js.map +0 -1
- package/web/.next/server/chunks/ssr/_0phryzt._.js +0 -3
- package/web/.next/server/chunks/ssr/_0phryzt._.js.map +0 -1
- package/web/.next/server/chunks/ssr/_12un22l._.js +0 -7
- package/web/.next/server/chunks/ssr/_12un22l._.js.map +0 -1
- package/web/.next/static/chunks/0-lu0b1ewsb0_.js +0 -1
- package/web/.next/static/chunks/01~dudieyb7wl.js +0 -5
- package/web/.next/static/chunks/02kpdawdtqcxm.js +0 -1
- package/web/.next/static/chunks/03s7z6w1lj0w~.js +0 -1
- package/web/.next/static/chunks/04~sw.nhpwy6s.css +0 -1
- package/web/.next/static/chunks/08611baheit.t.js +0 -1
- package/web/.next/static/chunks/0_9k2ybutuphq.js +0 -1
- package/web/.next/static/chunks/0m5~9kij3s~81.js +0 -1
- package/web/.next/static/chunks/0q~uf2s33.48w.js +0 -1
- package/web/.next/static/chunks/15m2wfd5k_7fj.js +0 -1
- package/web/.next/static/chunks/15rbgqykl.er8.js +0 -1
- package/web/.next/static/chunks/164dnpi666fv_.js +0 -5
- package/web/.next/static/chunks/17z2sq7c5z8cr.js +0 -5
- /package/web/.next/static/{GSG_c1emY-f_AA00vD56y → SNdaKJ9fpre8tUMRe1jlA}/_buildManifest.js +0 -0
- /package/web/.next/static/{GSG_c1emY-f_AA00vD56y → SNdaKJ9fpre8tUMRe1jlA}/_clientMiddlewareManifest.js +0 -0
- /package/web/.next/static/{GSG_c1emY-f_AA00vD56y → SNdaKJ9fpre8tUMRe1jlA}/_ssgManifest.js +0 -0
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
"summary": "Bourne Again Shell - default shell on most Linux systems",
|
|
4
4
|
"description": "GNU Bash is a Unix shell and command language. It is the default shell on most Linux distributions and was the default on macOS until Catalina.",
|
|
5
5
|
"tags": ["shell"],
|
|
6
|
+
"iconUrl": "/icons/tools/bash.svg",
|
|
6
7
|
"author": "GNU Project",
|
|
7
8
|
"website": "https://www.gnu.org/software/bash/",
|
|
8
9
|
"platforms": ["linux", "darwin", "win32"],
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
"author": "Anysphere",
|
|
7
7
|
"website": "https://cursor.com",
|
|
8
8
|
"platforms": ["linux", "darwin", "win32"],
|
|
9
|
-
"iconUrl": "
|
|
9
|
+
"iconUrl": "/icons/tools/cursor-cli.svg",
|
|
10
10
|
"binary": "cursor-agent",
|
|
11
11
|
"packageManager": "curl",
|
|
12
12
|
"commands": {
|
|
@@ -6,7 +6,7 @@
|
|
|
6
6
|
"author": "Anysphere",
|
|
7
7
|
"website": "https://cursor.com",
|
|
8
8
|
"platforms": ["linux", "darwin", "win32"],
|
|
9
|
-
"iconUrl": "
|
|
9
|
+
"iconUrl": "/icons/tools/cursor.svg",
|
|
10
10
|
"binary": "cursor",
|
|
11
11
|
"packageManager": "manual",
|
|
12
12
|
"commands": {
|
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
"summary": "Friendly Interactive Shell with smart features",
|
|
4
4
|
"description": "Fish is a smart and user-friendly command line shell with features like autosuggestions, syntax highlighting, and web-based configuration.",
|
|
5
5
|
"tags": ["shell"],
|
|
6
|
+
"iconUrl": "/icons/tools/fish.svg",
|
|
6
7
|
"author": "Fish Shell Contributors",
|
|
7
8
|
"website": "https://fishshell.com/",
|
|
8
9
|
"platforms": ["linux", "darwin"],
|
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
"summary": "Cross-platform task automation shell from Microsoft",
|
|
4
4
|
"description": "PowerShell is a cross-platform task automation solution with a command-line shell, scripting language, and configuration management framework.",
|
|
5
5
|
"tags": ["shell"],
|
|
6
|
+
"iconUrl": "/icons/tools/powershell.svg",
|
|
6
7
|
"author": "Microsoft",
|
|
7
8
|
"website": "https://github.com/PowerShell/PowerShell",
|
|
8
9
|
"platforms": ["linux", "darwin", "win32"],
|
|
@@ -3,6 +3,7 @@
|
|
|
3
3
|
"summary": "Z shell - default shell on macOS since Catalina",
|
|
4
4
|
"description": "Zsh is a powerful shell with advanced features like improved tab completion, globbing, and plugin support via frameworks like Oh My Zsh.",
|
|
5
5
|
"tags": ["shell"],
|
|
6
|
+
"iconUrl": "/icons/tools/zsh.svg",
|
|
6
7
|
"author": "Paul Falstad",
|
|
7
8
|
"website": "https://www.zsh.org/",
|
|
8
9
|
"platforms": ["linux", "darwin"],
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"layout.d.ts","sourceRoot":"","sources":["../../../../../src/presentation/web/app/layout.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"layout.d.ts","sourceRoot":"","sources":["../../../../../src/presentation/web/app/layout.tsx"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,QAAQ,EAAE,MAAM,MAAM,CAAC;AAGrC,OAAO,6BAA6B,CAAC;AACrC,OAAO,2CAA2C,CAAC;AACnD,OAAO,eAAe,CAAC;AAyBvB,sFAAsF;AACtF,eAAO,MAAM,OAAO,kBAAkB,CAAC;AAEvC,eAAO,MAAM,QAAQ,EAAE,QAStB,CAAC;AAEF,wBAA8B,UAAU,CAAC,EACvC,QAAQ,GACT,EAAE,QAAQ,CAAC;IACV,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;CAC3B,CAAC,oDAkCD"}
|
|
@@ -1,5 +1,6 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
2
|
import { cookies } from 'next/headers';
|
|
3
|
+
import { Inter } from 'next/font/google';
|
|
3
4
|
import '@xyflow/react/dist/base.css';
|
|
4
5
|
import '@cubone/react-file-manager/dist/style.css';
|
|
5
6
|
import './globals.css';
|
|
@@ -13,13 +14,25 @@ import { QueryProvider } from '../components/providers/query-provider.js';
|
|
|
13
14
|
import { I18nProvider } from '../components/providers/i18n-provider.js';
|
|
14
15
|
import { getLanguagePreference } from '../lib/language.js';
|
|
15
16
|
import { RouteAnnouncer } from '../components/common/route-announcer/route-announcer.js';
|
|
17
|
+
/*
|
|
18
|
+
* Inter as the primary brand font for editorial palette adoption.
|
|
19
|
+
* Loaded via next/font/google so it's self-hosted at build time
|
|
20
|
+
* (no runtime CDN fetch, aligns with ShipIT's offline-capable ethos).
|
|
21
|
+
* Exposed as --font-inter; globals.css wires it into --font-sans.
|
|
22
|
+
* See .scratchpad/plans/stitch-developer-portal-adaptation.md §2.1.
|
|
23
|
+
*/
|
|
24
|
+
const inter = Inter({
|
|
25
|
+
subsets: ['latin'],
|
|
26
|
+
display: 'swap',
|
|
27
|
+
variable: '--font-inter',
|
|
28
|
+
});
|
|
16
29
|
/** Force dynamic rendering for all pages since they depend on client-side context. */
|
|
17
30
|
export const dynamic = 'force-dynamic';
|
|
18
31
|
export const metadata = {
|
|
19
32
|
title: 'ShipIT AI',
|
|
20
33
|
description: 'Autonomous AI Native SDLC Platform - Automate the development cycle from idea to deploy',
|
|
21
34
|
icons: [
|
|
22
|
-
{ rel: 'icon', url: '/
|
|
35
|
+
{ rel: 'icon', url: '/favicon.svg', type: 'image/svg+xml' },
|
|
23
36
|
{ rel: 'icon', url: '/favicon-32x32.png', sizes: '32x32', type: 'image/png' },
|
|
24
37
|
{ rel: 'apple-touch-icon', url: '/apple-touch-icon.png', sizes: '180x180' },
|
|
25
38
|
],
|
|
@@ -32,7 +45,7 @@ export default async function RootLayout({ children, }) {
|
|
|
32
45
|
getFeatureFlags(),
|
|
33
46
|
getFabLayout(),
|
|
34
47
|
]);
|
|
35
|
-
return (_jsxs("html", { lang: language, dir: dir, suppressHydrationWarning: true, children: [_jsx("head", { children: _jsx("script", { dangerouslySetInnerHTML: {
|
|
48
|
+
return (_jsxs("html", { lang: language, dir: dir, className: inter.variable, suppressHydrationWarning: true, children: [_jsx("head", { children: _jsx("script", { dangerouslySetInnerHTML: {
|
|
36
49
|
__html: `(function(){try{var d=document.documentElement,t=localStorage.getItem('shipit-ai-theme'),s=window.matchMedia('(prefers-color-scheme: dark)').matches;if(t==='dark'||(t==='system'&&s)||(!t&&s)){d.classList.add('dark')}}catch(e){}})();`,
|
|
37
50
|
} }) }), _jsxs("body", { className: "min-h-screen antialiased", children: [_jsx(RouteAnnouncer, {}), _jsx(I18nProvider, { initialLanguage: language, children: _jsx(QueryProvider, { children: _jsx(FeatureFlagsProvider, { flags: flags, children: _jsx(FabLayoutProvider, { layout: fabLayout, children: _jsx(AppShell, { sidebarOpen: sidebarOpen, children: children }) }) }) }) }), _jsx(Toaster, { position: "bottom-center" })] })] }));
|
|
38
51
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"base-drawer.d.ts","sourceRoot":"","sources":["../../../../../../../src/presentation/web/components/common/base-drawer/base-drawer.tsx"],"names":[],"mappings":"AAIA,OAAO,EAAO,KAAK,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAiBlE,OAAO,EAAmB,KAAK,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAGpF,QAAA,MAAM,cAAc;;8EAWlB,CAAC;AAEH,MAAM,WAAW,eAAgB,SAAQ,YAAY,CAAC,OAAO,cAAc,CAAC;IAC1E,IAAI,EAAE,OAAO,CAAC;IACd,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,yGAAyG;IACzG,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAChC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACzB,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,MAAM,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACzB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,YAAY,CAAC,EAAE,iBAAiB,CAAC;CAClC;AAED,wBAAgB,UAAU,CAAC,EACzB,IAAI,EACJ,OAAO,EACP,KAAa,EACb,qBAA6B,EAC7B,KAAgB,EAChB,IAAI,EACJ,MAAM,EACN,QAAQ,EACR,MAAM,EACN,SAAS,EACT,aAAa,EAAE,MAAM,EACrB,YAAY,GACb,EAAE,eAAe,
|
|
1
|
+
{"version":3,"file":"base-drawer.d.ts","sourceRoot":"","sources":["../../../../../../../src/presentation/web/components/common/base-drawer/base-drawer.tsx"],"names":[],"mappings":"AAIA,OAAO,EAAO,KAAK,YAAY,EAAE,MAAM,0BAA0B,CAAC;AAiBlE,OAAO,EAAmB,KAAK,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAGpF,QAAA,MAAM,cAAc;;8EAWlB,CAAC;AAEH,MAAM,WAAW,eAAgB,SAAQ,YAAY,CAAC,OAAO,cAAc,CAAC;IAC1E,IAAI,EAAE,OAAO,CAAC;IACd,OAAO,EAAE,MAAM,IAAI,CAAC;IACpB,KAAK,CAAC,EAAE,OAAO,CAAC;IAChB,yGAAyG;IACzG,qBAAqB,CAAC,EAAE,OAAO,CAAC;IAChC,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,MAAM,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACzB,QAAQ,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,MAAM,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IACzB,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,aAAa,CAAC,EAAE,MAAM,CAAC;IACvB,YAAY,CAAC,EAAE,iBAAiB,CAAC;CAClC;AAED,wBAAgB,UAAU,CAAC,EACzB,IAAI,EACJ,OAAO,EACP,KAAa,EACb,qBAA6B,EAC7B,KAAgB,EAChB,IAAI,EACJ,MAAM,EACN,QAAQ,EACR,MAAM,EACN,SAAS,EACT,aAAa,EAAE,MAAM,EACrB,YAAY,GACb,EAAE,eAAe,2CAqLjB"}
|
|
@@ -122,7 +122,10 @@ export function BaseDrawer({ open, onClose, modal = false, dismissOnOutsideClick
|
|
|
122
122
|
return (_jsxs(Drawer, { direction: drawerDirection, modal: modal, handleOnly: true, open: open, onOpenChange: (isOpen) => {
|
|
123
123
|
if (!isOpen)
|
|
124
124
|
onClose();
|
|
125
|
-
}, children: [modal ? _jsx(DrawerOverlay, {}) : null, _jsxs(DrawerContent, { ref: contentRef, direction: drawerDirection, showCloseButton: false, className: cn(drawerVariants({ size }),
|
|
125
|
+
}, children: [modal ? _jsx(DrawerOverlay, {}) : null, _jsxs(DrawerContent, { ref: contentRef, direction: drawerDirection, showCloseButton: false, className: cn(drawerVariants({ size }),
|
|
126
|
+
// Editorial glass treatment: semi-transparent with backdrop blur in BOTH modes
|
|
127
|
+
// for polished depth. Light mode uses white/80, dark mode uses card surface/85.
|
|
128
|
+
'bg-white/80 backdrop-blur-xl dark:bg-[#1e293bd9]', className), "data-testid": testId, onInteractOutside: modal ? undefined : (e) => e.preventDefault(), ...(!modal ? { 'aria-modal': true } : {}), children: [_jsx(DrawerTitle, { asChild: true, children: _jsx("span", { className: "sr-only", children: title }) }), _jsx(DrawerDescription, { asChild: true, children: _jsx("span", { className: "sr-only", children: title }) }), _jsx(FocusScope.Root, { trapped: !modal, loop: !modal, asChild: true, onMountAutoFocus: handleMountAutoFocus, onUnmountAutoFocus: handleUnmountAutoFocus, children: _jsxs("div", { className: "flex min-h-0 flex-1 flex-col overflow-hidden", children: [_jsxs("button", { type: "button", "aria-label": "Close", onClick: onClose, className: "ring-offset-background focus:ring-ring absolute end-3 top-2 z-50 rounded-sm p-1 opacity-70 transition-opacity hover:opacity-100 focus:ring-2 focus:ring-offset-2 focus:outline-hidden", "data-testid": testId ? `${testId}-close-button` : undefined, children: [_jsx(XIcon, { className: "size-4" }), _jsx("span", { className: "sr-only", children: "Close" })] }), header ? _jsx(DrawerHeader, { className: "shrink-0", children: header }) : null, header ? _jsx(Separator, {}) : null, featureFlags.envDeploy && deployTarget ? (_jsx(DeployBar, { deployTarget: deployTarget })) : null, _jsx("div", { className: "flex min-h-0 flex-1 flex-col overflow-hidden", children: children }), footer ? _jsx(DrawerFooter, { className: "shrink-0", children: footer }) : null] }) })] })] }));
|
|
126
129
|
}
|
|
127
130
|
function DeployBar({ deployTarget }) {
|
|
128
131
|
const deployAction = useDeployAction(deployTarget);
|
|
@@ -1,8 +1,10 @@
|
|
|
1
1
|
export interface PageHeaderProps {
|
|
2
2
|
title: string;
|
|
3
3
|
description?: string;
|
|
4
|
+
/** Optional eyebrow label above the title (e.g., "DEVELOPER PORTAL") */
|
|
5
|
+
eyebrow?: string;
|
|
4
6
|
children?: React.ReactNode;
|
|
5
7
|
className?: string;
|
|
6
8
|
}
|
|
7
|
-
export declare function PageHeader({ title, description, children, className }: PageHeaderProps): import("react/jsx-runtime").JSX.Element;
|
|
9
|
+
export declare function PageHeader({ title, description, eyebrow, children, className }: PageHeaderProps): import("react/jsx-runtime").JSX.Element;
|
|
8
10
|
//# sourceMappingURL=page-header.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"page-header.d.ts","sourceRoot":"","sources":["../../../../../../../src/presentation/web/components/common/page-header/page-header.tsx"],"names":[],"mappings":"AAEA,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC3B,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;
|
|
1
|
+
{"version":3,"file":"page-header.d.ts","sourceRoot":"","sources":["../../../../../../../src/presentation/web/components/common/page-header/page-header.tsx"],"names":[],"mappings":"AAEA,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,MAAM,CAAC;IACd,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,wEAAwE;IACxE,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,QAAQ,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC3B,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAQD,wBAAgB,UAAU,CAAC,EAAE,KAAK,EAAE,WAAW,EAAE,OAAO,EAAE,QAAQ,EAAE,SAAS,EAAE,EAAE,eAAe,2CAmB/F"}
|
|
@@ -1,5 +1,11 @@
|
|
|
1
1
|
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
2
2
|
import { cn } from '../../../lib/utils.js';
|
|
3
|
-
|
|
4
|
-
|
|
3
|
+
/*
|
|
4
|
+
* PageHeader — Stitch editorial page header pattern.
|
|
5
|
+
* Renders: tiny uppercase eyebrow → large bold title → muted description.
|
|
6
|
+
* Matches the tools-page-client.tsx header treatment.
|
|
7
|
+
* See .scratchpad/stitch/shipit-developer-portal/src/App.tsx:161
|
|
8
|
+
*/
|
|
9
|
+
export function PageHeader({ title, description, eyebrow, children, className }) {
|
|
10
|
+
return (_jsxs("header", { className: cn('flex items-center justify-between gap-4', className), children: [_jsxs("div", { className: "space-y-1.5", children: [eyebrow ? (_jsx("span", { className: "text-[10px] font-bold tracking-[0.2em] text-slate-400 uppercase", children: eyebrow })) : null, _jsx("div", { className: "flex items-baseline gap-3", children: _jsx("h1", { className: "text-foreground text-3xl font-black tracking-tight", children: title }) }), description ? (_jsx("p", { className: "text-muted-foreground text-sm font-medium", children: description })) : null] }), children ? _jsx("div", { "data-slot": "actions", children: children }) : null] }));
|
|
5
11
|
}
|
package/dist/src/presentation/web/components/common/repository-node/repository-node.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"repository-node.d.ts","sourceRoot":"","sources":["../../../../../../../src/presentation/web/components/common/repository-node/repository-node.tsx"],"names":[],"mappings":"AAqCA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AASnE,wBAAgB,cAAc,CAAC,EAC7B,IAAI,EACJ,QAAQ,GACT,EAAE;IACD,IAAI,EAAE,kBAAkB,CAAC;IACzB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB,
|
|
1
|
+
{"version":3,"file":"repository-node.d.ts","sourceRoot":"","sources":["../../../../../../../src/presentation/web/components/common/repository-node/repository-node.tsx"],"names":[],"mappings":"AAqCA,OAAO,KAAK,EAAE,kBAAkB,EAAE,MAAM,0BAA0B,CAAC;AASnE,wBAAgB,cAAc,CAAC,EAC7B,IAAI,EACJ,QAAQ,GACT,EAAE;IACD,IAAI,EAAE,kBAAkB,CAAC;IACzB,QAAQ,CAAC,EAAE,OAAO,CAAC;IACnB,CAAC,GAAG,EAAE,MAAM,GAAG,OAAO,CAAC;CACxB,2CA+cA"}
|
|
@@ -88,7 +88,12 @@ export function RepositoryNode({ data, selected, }) {
|
|
|
88
88
|
}, className: "nodrag relative cursor-pointer text-violet-500 hover:text-violet-600 dark:text-violet-400 dark:hover:text-violet-300", children: [_jsx(MessageSquare, { className: "h-3 w-3" }), _jsx(ChatDotIndicator, { status: chatTurnStatus })] }) }), _jsx(TooltipContent, { children: t('repositoryNode.chatWithAgent') })] }) }), _jsx(FeatureSessionsDropdown, { repositoryPath: data.repositoryPath, includeWorktrees: true, onCreateFromSession: handleCreateFromSession })] })) : null, data.onAdd ? _jsx("div", { className: "ms-1.5" }) : null, data.onAdd ? (_jsx(TooltipProvider, { children: _jsxs(Tooltip, { children: [_jsx(TooltipTrigger, { asChild: true, children: _jsxs("button", { "aria-label": t('repositoryNode.newFeature'), "data-testid": "repository-node-add-button", onClick: (e) => {
|
|
89
89
|
e.stopPropagation();
|
|
90
90
|
data.onAdd?.();
|
|
91
|
-
}, className: cn(
|
|
91
|
+
}, className: cn(
|
|
92
|
+
// Editorial palette: primary sky blue in both light and dark
|
|
93
|
+
// (was previously dark:bg-amber-500 which clashes with the
|
|
94
|
+
// Stitch editorial dark palette). Uses --color-primary via
|
|
95
|
+
// bg-primary so any future primary shifts propagate here.
|
|
96
|
+
'bg-primary hover:bg-primary/90 flex h-6 shrink-0 cursor-pointer items-center gap-0.5 rounded px-1.5 text-[11px] font-bold text-white transition-colors', data.pulseAdd && 'animate-pulse-cta'), children: [_jsx(Plus, { className: "h-3 w-3" }), _jsx("span", { className: "translate-y-px", children: t('repositoryNode.new') })] }) }), _jsx(TooltipContent, { side: "top", children: t('repositoryNode.newFeature') })] }) })) : null] })] }), data.branch ? (_jsxs(_Fragment, { children: [_jsx("div", { "data-testid": "repository-node-git-info", className: "text-muted-foreground border-border/50 border-t px-4 py-2", children: _jsxs("div", { className: "flex items-center gap-3 text-xs", children: [_jsxs("span", { className: "flex items-center gap-1 truncate", "data-testid": "repository-node-branch", children: [_jsx(GitBranch, { className: "h-3 w-3 shrink-0" }), _jsx("span", { className: "truncate", children: data.branch })] }), data.behindCount != null && data.behindCount > 0 ? (_jsxs("span", { className: "flex shrink-0 items-center gap-1 whitespace-nowrap text-amber-500", "data-testid": "repository-node-behind", children: [_jsx(ArrowDown, { className: "h-3 w-3 shrink-0" }), t('repositoryNode.behind', { count: data.behindCount })] })) : null] }) }), data.commitMessage ? (_jsx("div", { "data-testid": "repository-node-commit-info", className: "text-muted-foreground border-border/50 border-t px-4 py-2", children: _jsxs("div", { className: "flex items-center gap-2 text-xs", children: [_jsx(GitCommitHorizontal, { className: "h-3 w-3 shrink-0" }), _jsx("span", { className: "min-w-0 truncate", "data-testid": "repository-node-commit-message", children: data.commitMessage }), data.committer ? (_jsxs("span", { className: "text-muted-foreground/70 ms-auto flex shrink-0 items-center gap-1", "data-testid": "repository-node-committer", children: [_jsx(User, { className: "h-3 w-3 shrink-0" }), _jsx("span", { children: data.committer })] })) : null] }) })) : null] })) : data.gitInfoStatus === 'not-a-repo' ? (_jsxs(_Fragment, { children: [_jsx("div", { "data-testid": "repository-node-not-repo", className: "text-muted-foreground border-border/50 border-t px-4 py-2", children: _jsxs("div", { className: "flex items-center gap-2 text-xs", children: [_jsx(FolderOpen, { className: "h-3 w-3 shrink-0" }), _jsx("span", { className: "min-w-0 truncate opacity-60", children: data.repositoryPath ?? 'Unknown path' })] }) }), _jsx("div", { className: "text-muted-foreground border-border/50 border-t px-4 py-2", children: _jsxs("div", { className: "flex items-center gap-2 text-xs opacity-40", children: [_jsx(GitBranch, { className: "h-3 w-3 shrink-0" }), _jsx("span", { children: t('repositoryNode.notAGitRepository') })] }) })] })) : data.gitInfoStatus !== 'ready' ? (_jsxs(_Fragment, { children: [_jsx("div", { "data-testid": "repository-node-git-loading", className: "border-border/50 border-t px-4 py-2", children: _jsxs("div", { className: "flex h-4 items-center gap-2 text-xs", children: [_jsx(GitBranch, { className: "text-muted-foreground h-3 w-3 shrink-0" }), _jsx("span", { className: "bg-muted h-3 w-20 animate-pulse rounded" })] }) }), _jsx("div", { className: "border-border/50 border-t px-4 py-2", children: _jsxs("div", { className: "flex h-4 items-center gap-2 text-xs", children: [_jsx(GitCommitHorizontal, { className: "text-muted-foreground h-3 w-3 shrink-0" }), _jsx("span", { className: "bg-muted h-3 w-36 animate-pulse rounded" })] }) })] })) : null, featureFlags.envDeploy && data.repositoryPath ? (_jsx("div", { "data-testid": "repository-node-dev-preview", className: "border-border/50 border-t px-4 py-2", onClick: (e) => e.stopPropagation(), children: _jsxs("div", { className: "flex items-center gap-2 text-xs", children: [deployAction.deployError ? (_jsx("span", { className: "truncate text-xs text-red-500", children: deployAction.deployError })) : isDeploymentActive ? (_jsxs(_Fragment, { children: [_jsx("span", { className: "me-0.5 inline-block h-2 w-2 shrink-0 rounded-full bg-green-500" }), deployAction.url ? (_jsx("a", { href: deployAction.url, target: "_blank", rel: "noopener noreferrer", className: "truncate text-green-700 hover:underline dark:text-green-400", children: deployAction.url })) : (_jsx("span", { className: "text-muted-foreground", children: t('repositoryNode.starting') }))] })) : (_jsxs("span", { className: "text-muted-foreground inline-flex items-baseline gap-2", children: [_jsx("span", { children: t('repositoryNode.run') }), _jsx("span", { className: "text-muted-foreground/50 text-[10px]", children: t('repositoryNode.startLocalEnvironment') })] })), _jsx(TooltipProvider, { children: _jsxs(Tooltip, { children: [_jsx(TooltipTrigger, { asChild: true, children: _jsx("span", { className: cn('ms-auto flex items-center', !isDeploymentActive &&
|
|
92
97
|
!deployAction.deployError &&
|
|
93
98
|
'[&_button]:text-green-600 [&_button]:hover:text-green-700 dark:[&_button]:text-green-400 dark:[&_button]:hover:text-green-300'), children: _jsx(ActionButton, { label: deployAction.deployError
|
|
94
99
|
? t('repositoryNode.retry')
|
|
@@ -1,7 +1,15 @@
|
|
|
1
1
|
export interface ShipitAiLogoProps {
|
|
2
2
|
className?: string;
|
|
3
|
+
/** Icon size in px. Default 24. */
|
|
3
4
|
size?: number;
|
|
4
5
|
variant?: 'default' | 'dev';
|
|
6
|
+
/**
|
|
7
|
+
* When true, the full brandmark (icon + "SHIPIT AI" + "ENTERPRISE PORTAL"
|
|
8
|
+
* eyebrow) renders. When false, only the icon renders — used for the
|
|
9
|
+
* collapsed sidebar state. Mirrors Stitch's Logo `isOpen` prop.
|
|
10
|
+
* See .scratchpad/stitch/shipit-developer-portal/src/components/Logo.tsx:9
|
|
11
|
+
*/
|
|
12
|
+
isOpen?: boolean;
|
|
5
13
|
}
|
|
6
|
-
export declare function ShipitAiLogo({ className, size, variant }: ShipitAiLogoProps): import("react/jsx-runtime").JSX.Element;
|
|
14
|
+
export declare function ShipitAiLogo({ className, size, variant, isOpen, }: ShipitAiLogoProps): import("react/jsx-runtime").JSX.Element;
|
|
7
15
|
//# sourceMappingURL=shipit-ai-logo.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"shipit-ai-logo.d.ts","sourceRoot":"","sources":["../../../../../../../src/presentation/web/components/common/shipit-ai-logo/shipit-ai-logo.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"shipit-ai-logo.d.ts","sourceRoot":"","sources":["../../../../../../../src/presentation/web/components/common/shipit-ai-logo/shipit-ai-logo.tsx"],"names":[],"mappings":"AAEA,MAAM,WAAW,iBAAiB;IAChC,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,mCAAmC;IACnC,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,OAAO,CAAC,EAAE,SAAS,GAAG,KAAK,CAAC;IAC5B;;;;;OAKG;IACH,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAWD,wBAAgB,YAAY,CAAC,EAC3B,SAAS,EACT,IAAS,EACT,OAAmB,EACnB,MAAa,GACd,EAAE,iBAAiB,2CAoEnB"}
|
|
@@ -1,8 +1,14 @@
|
|
|
1
|
-
import { jsx as _jsx } from "react/jsx-runtime";
|
|
2
|
-
import Image from 'next/image';
|
|
1
|
+
import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
3
2
|
import { cn } from '../../../lib/utils.js';
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
3
|
+
/*
|
|
4
|
+
* ShipIT AI logo — Stitch editorial box/neural-circuit design.
|
|
5
|
+
* Inline SVG so `currentColor` resolves from the parent's text color,
|
|
6
|
+
* which means the box strokes automatically adapt to light/dark mode
|
|
7
|
+
* via the sidebar's --sidebar-foreground CSS variable. The neural
|
|
8
|
+
* circuit paths use the editorial sky blue via the `text-primary` class.
|
|
9
|
+
*
|
|
10
|
+
* Ported from .scratchpad/stitch/shipit-developer-portal/src/components/Logo.tsx:9-77
|
|
11
|
+
*/
|
|
12
|
+
export function ShipitAiLogo({ className, size = 24, variant = 'default', isOpen = true, }) {
|
|
13
|
+
return (_jsxs("div", { className: cn('flex items-center gap-3', className), children: [_jsxs("svg", { viewBox: "0 0 24 24", fill: "none", xmlns: "http://www.w3.org/2000/svg", width: size, height: size, className: cn('shrink-0', variant === 'dev' && 'opacity-80'), "aria-hidden": true, children: [_jsx("path", { d: "M21 7.5L12 3L3 7.5V16.5L12 21L21 16.5V7.5Z", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round" }), _jsx("path", { d: "M3 7.5L12 12L21 7.5", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round" }), _jsx("path", { d: "M12 12V21", stroke: "currentColor", strokeWidth: "2", strokeLinecap: "round", strokeLinejoin: "round" }), _jsxs("g", { className: "text-primary", children: [_jsx("path", { d: "M12 12C12 12 15 9 15 6C15 3 12 2 12 2", stroke: "currentColor", strokeWidth: "1.5", strokeLinecap: "round", className: "animate-pulse" }), _jsx("path", { d: "M12 12C12 12 9 9 9 6C9 3 12 2 12 2", stroke: "currentColor", strokeWidth: "1.5", strokeLinecap: "round", className: "animate-pulse", style: { animationDelay: '0.5s' } }), _jsx("circle", { cx: "15", cy: "6", r: "1", fill: "currentColor" }), _jsx("circle", { cx: "9", cy: "6", r: "1", fill: "currentColor" }), _jsx("circle", { cx: "12", cy: "2", r: "1", fill: "currentColor" })] })] }), isOpen ? (_jsxs("div", { className: "flex flex-col leading-none", children: [_jsxs("span", { className: "text-foreground flex items-center gap-1 text-xl font-black tracking-tighter", children: ["SHIPIT ", _jsx("span", { className: "text-primary", children: "AI" })] }), _jsx("span", { className: "mt-0.5 text-[8px] font-bold tracking-[0.2em] text-slate-400 uppercase", children: "Enterprise Portal" })] })) : null] }));
|
|
8
14
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sidebar-collapse-toggle.d.ts","sourceRoot":"","sources":["../../../../../../../src/presentation/web/components/common/sidebar-collapse-toggle/sidebar-collapse-toggle.tsx"],"names":[],"mappings":"AAQA,MAAM,WAAW,0BAA0B;IACzC,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,wBAAgB,qBAAqB,CAAC,EAAE,SAAS,EAAE,EAAE,0BAA0B,
|
|
1
|
+
{"version":3,"file":"sidebar-collapse-toggle.d.ts","sourceRoot":"","sources":["../../../../../../../src/presentation/web/components/common/sidebar-collapse-toggle/sidebar-collapse-toggle.tsx"],"names":[],"mappings":"AAQA,MAAM,WAAW,0BAA0B;IACzC,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAED,wBAAgB,qBAAqB,CAAC,EAAE,SAAS,EAAE,EAAE,0BAA0B,2CAmC9E"}
|
|
@@ -20,5 +20,9 @@ export function SidebarCollapseToggle({ className }) {
|
|
|
20
20
|
}
|
|
21
21
|
toggleSidebar();
|
|
22
22
|
};
|
|
23
|
-
return (_jsx(
|
|
23
|
+
return (_jsx(Button, { "data-testid": "sidebar-collapse-toggle", variant: "ghost", size: "icon", className: cn(
|
|
24
|
+
// Generous hit area: full sidebar-menu-button size in both expanded
|
|
25
|
+
// and collapsed modes so the toggle is easy to click regardless of
|
|
26
|
+
// sidebar state. The icon stays centered via flex.
|
|
27
|
+
'flex cursor-pointer items-center justify-center', 'size-8 group-data-[collapsible=icon]:size-8!', className), onClick: handleClick, "aria-label": label, children: _jsx(PanelLeft, { className: "size-4" }) }));
|
|
24
28
|
}
|
package/dist/src/presentation/web/components/common/sidebar-nav-item/sidebar-nav-item.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"sidebar-nav-item.d.ts","sourceRoot":"","sources":["../../../../../../../src/presentation/web/components/common/sidebar-nav-item/sidebar-nav-item.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAI/C,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,UAAU,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;
|
|
1
|
+
{"version":3,"file":"sidebar-nav-item.d.ts","sourceRoot":"","sources":["../../../../../../../src/presentation/web/components/common/sidebar-nav-item/sidebar-nav-item.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAI/C,MAAM,WAAW,mBAAmB;IAClC,IAAI,EAAE,UAAU,CAAC;IACjB,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAiBD,wBAAgB,cAAc,CAAC,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,MAAc,EAAE,EAAE,mBAAmB,2CAa9F"}
|
|
@@ -3,6 +3,21 @@ import { jsx as _jsx, jsxs as _jsxs } from "react/jsx-runtime";
|
|
|
3
3
|
import Link from 'next/link';
|
|
4
4
|
import { SidebarMenuItem, SidebarMenuButton } from '../../ui/sidebar.js';
|
|
5
5
|
import { useSoundAction } from '../../../hooks/use-sound-action.js';
|
|
6
|
+
/*
|
|
7
|
+
* Sidebar nav item with Stitch editorial active state.
|
|
8
|
+
* Active state styling is applied via attribute selectors on the
|
|
9
|
+
* data-active attribute that SidebarMenuButton writes when isActive=true.
|
|
10
|
+
* Using an attribute selector avoids a hydration mismatch: the `active`
|
|
11
|
+
* prop flows from usePathname() which can return different values during
|
|
12
|
+
* SSR vs the first client render, so any conditional className based on
|
|
13
|
+
* it would not match between server and client. data-active is written
|
|
14
|
+
* once after hydration by the shadcn primitive, so CSS targeting it is
|
|
15
|
+
* stable across both trees.
|
|
16
|
+
*
|
|
17
|
+
* The editorial active styling (text-primary, ring, subtle shadow,
|
|
18
|
+
* font-semibold) is declared in globals.css under the
|
|
19
|
+
* [data-sidebar=menu-button][data-active=true] selector.
|
|
20
|
+
*/
|
|
6
21
|
export function SidebarNavItem({ icon: Icon, label, href, active = false }) {
|
|
7
22
|
const navigateSound = useSoundAction('navigate');
|
|
8
23
|
return (_jsx(SidebarMenuItem, { "data-testid": "sidebar-nav-item", children: _jsx(SidebarMenuButton, { asChild: true, isActive: active, tooltip: label, children: _jsxs(Link, { href: href, onClick: () => navigateSound.play(), children: [_jsx(Icon, {}), _jsx("span", { children: label })] }) }) }));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ChatSheet.d.ts","sourceRoot":"","sources":["../../../../../../../src/presentation/web/components/features/chat/ChatSheet.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"ChatSheet.d.ts","sourceRoot":"","sources":["../../../../../../../src/presentation/web/components/features/chat/ChatSheet.tsx"],"names":[],"mappings":"AA4DA,wBAAgB,eAAe,4CAua9B"}
|
|
@@ -5,6 +5,7 @@ import { useTranslation } from 'react-i18next';
|
|
|
5
5
|
import { MessageSquare, X, Bot, GripVertical, Maximize2, Minimize2 } from 'lucide-react';
|
|
6
6
|
import { cn } from '../../../lib/utils.js';
|
|
7
7
|
import { Button } from '../../ui/button.js';
|
|
8
|
+
import { Tooltip, TooltipContent, TooltipTrigger } from '../../ui/tooltip.js';
|
|
8
9
|
import { ChatTab } from './ChatTab.js';
|
|
9
10
|
import { ChatDotIndicator } from './ChatDotIndicator.js';
|
|
10
11
|
import { useTurnStatus } from '../../../hooks/turn-statuses-provider.js';
|
|
@@ -259,16 +260,28 @@ export function GlobalChatPopup() {
|
|
|
259
260
|
};
|
|
260
261
|
document.addEventListener('mousemove', onMove);
|
|
261
262
|
document.addEventListener('mouseup', onUp);
|
|
262
|
-
}, className: "absolute end-0 bottom-0 z-10 h-4 w-4 cursor-se-resize" })) : null] })) : null,
|
|
263
|
-
|
|
264
|
-
|
|
263
|
+
}, className: "absolute end-0 bottom-0 z-10 h-4 w-4 cursor-se-resize" })) : null] })) : null, _jsx(ChatFabWrapper, { swapPosition: swapPosition, sidebarState: sidebarState, isMaximized: isMaximized, children: _jsxs(Tooltip, { ...(isOpen ? { open: false } : {}), children: [_jsx(TooltipTrigger, { asChild: true, children: _jsxs(Button, { size: "icon", onClick: toggle, "data-chat-fab": "true", "data-chat-open": isOpen ? 'true' : 'false', "aria-label": t('chat.shipitAiChat'), className: cn(
|
|
264
|
+
// Stitch editorial refresh: use the primary sky token instead of the legacy
|
|
265
|
+
// violet accent so the Chat FAB matches the rest of the editorial palette.
|
|
266
|
+
// (bg-primary is #2563eb light / #3b82f6 dark)
|
|
267
|
+
//
|
|
268
|
+
// className here is a STATIC string literal — NO conditional branches.
|
|
269
|
+
// The open-state visual lift (ring-2) is applied via a CSS attribute
|
|
270
|
+
// selector on [data-chat-fab="true"][data-chat-open="true"] in globals.css.
|
|
271
|
+
// Keeping the className pure and static prevents hydration-mismatch
|
|
272
|
+
// drift between SSR and client HMR bundles during dev.
|
|
273
|
+
//
|
|
274
|
+
// Hover uses scale + brightness (NOT translate) so the button stays
|
|
275
|
+
// centered under the cursor and does not break Radix tooltip hover
|
|
276
|
+
// tracking via flapping pointer events.
|
|
277
|
+
'bg-primary text-primary-foreground editorial-shadow relative h-14 w-14 rounded-full shadow-lg transition-all duration-200 hover:scale-[1.05] hover:shadow-xl hover:brightness-110 active:scale-95'), children: [_jsx(MessageSquare, { className: cn('absolute h-7 w-7 stroke-[2.5] transition-all duration-200', isOpen ? 'scale-0 rotate-90 opacity-0' : 'scale-100 rotate-0 opacity-100') }), _jsx(X, { className: cn('absolute h-6 w-6 stroke-[2.5] transition-all duration-200', isOpen ? 'scale-100 rotate-0 opacity-100' : 'scale-0 -rotate-90 opacity-0') }), !isOpen && (_jsx(ChatDotIndicator, { status: globalChatTurnStatus, className: "end-0 top-0" }))] }) }), _jsxs(TooltipContent, { side: "top", sideOffset: 12, className: "text-center", children: [_jsx("p", { className: "text-xs font-medium whitespace-nowrap", children: t('chat.shipitAiChat') }), _jsxs("p", { className: "mt-0.5 flex items-center justify-center gap-1 text-[10px] opacity-60", children: [_jsx("kbd", { className: "bg-background/15 rounded px-1 py-px font-mono", children: "\u2318" }), _jsx("kbd", { className: "bg-background/15 rounded px-1 py-px font-mono", children: "\u21E7" }), _jsx("kbd", { className: "bg-background/15 rounded px-1 py-px font-mono", children: "K" })] })] })] }) })] }));
|
|
265
278
|
}
|
|
266
279
|
/** Wrapper for the Chat FAB that handles position swapping. */
|
|
267
280
|
function ChatFabWrapper({ swapPosition, sidebarState, isMaximized, children, }) {
|
|
268
281
|
const { i18n } = useTranslation('web');
|
|
269
282
|
const isRtl = i18n.dir() === 'rtl';
|
|
270
283
|
if (!swapPosition) {
|
|
271
|
-
return (_jsx("div", { className: cn('
|
|
284
|
+
return (_jsx("div", { className: cn('fixed end-8 bottom-6 z-30', isMaximized && 'hidden'), children: children }));
|
|
272
285
|
}
|
|
273
286
|
// Swapped: chat FAB moves to start side, tracking sidebar width
|
|
274
287
|
const sidebarOffset = sidebarState === 'expanded'
|
|
@@ -277,5 +290,5 @@ function ChatFabWrapper({ swapPosition, sidebarState, isMaximized, children, })
|
|
|
277
290
|
const positionStyle = isRtl
|
|
278
291
|
? { right: sidebarOffset, transition: 'right 200ms ease-in-out' }
|
|
279
292
|
: { left: sidebarOffset, transition: 'left 200ms ease-in-out' };
|
|
280
|
-
return (_jsx("div", { className: cn('
|
|
293
|
+
return (_jsx("div", { className: cn('fixed bottom-6 z-30', isMaximized && 'hidden'), style: positionStyle, children: children }));
|
|
281
294
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"control-center-empty-state.d.ts","sourceRoot":"","sources":["../../../../../../../src/presentation/web/components/features/control-center/control-center-empty-state.tsx"],"names":[],"mappings":"AA0BA,MAAM,WAAW,4BAA4B;IAC3C,kBAAkB,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAC5C,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAID,wBAAgB,uBAAuB,CAAC,EACtC,kBAAkB,EAClB,SAAS,GACV,EAAE,4BAA4B,
|
|
1
|
+
{"version":3,"file":"control-center-empty-state.d.ts","sourceRoot":"","sources":["../../../../../../../src/presentation/web/components/features/control-center/control-center-empty-state.tsx"],"names":[],"mappings":"AA0BA,MAAM,WAAW,4BAA4B;IAC3C,kBAAkB,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,IAAI,CAAC;IAC5C,SAAS,CAAC,EAAE,MAAM,CAAC;CACpB;AAID,wBAAgB,uBAAuB,CAAC,EACtC,kBAAkB,EAClB,SAAS,GACV,EAAE,4BAA4B,kDAwM9B"}
|
package/dist/src/presentation/web/components/features/control-center/control-center-empty-state.js
CHANGED
|
@@ -75,7 +75,7 @@ export function ControlCenterEmptyState({ onRepositorySelect, className, }) {
|
|
|
75
75
|
}, []);
|
|
76
76
|
if (agentReady === null)
|
|
77
77
|
return null;
|
|
78
|
-
return (_jsxs("div", { "data-testid": "control-center-empty-state", className: cn('relative flex h-full w-full flex-col items-center justify-center px-8', className), children: [!agentReady ? (_jsx(WelcomeAgentSetup, { onComplete: handleAgentSetupComplete })) : (_jsxs("div", { className: "animate-in fade-in flex w-full max-w-
|
|
78
|
+
return (_jsxs("div", { "data-testid": "control-center-empty-state", className: cn('relative flex h-full w-full flex-col items-center justify-center px-8', className), children: [!agentReady ? (_jsx(WelcomeAgentSetup, { onComplete: handleAgentSetupComplete })) : (_jsxs("div", { className: "animate-in fade-in bg-card editorial-shadow flex w-full max-w-lg flex-col items-center rounded-2xl border border-slate-200/50 p-10 duration-300 dark:border-slate-700/50", children: [_jsx("h1", { className: "text-foreground text-center text-4xl font-bold tracking-tight", children: t('emptyState.addProject') }), _jsxs("p", { className: "text-muted-foreground mt-3 text-center text-base leading-relaxed", children: [t('emptyState.addProjectDescription'), _jsx("br", {}), t('emptyState.addProjectDescriptionLine2')] }), _jsxs("div", { className: "mt-8 flex w-full flex-col gap-3", children: [_jsx(AgentAuthBanner, { status: authStatus, onRetry: handleRetryAuth }), _jsx(ToolStatusRow, { label: t('emptyState.git'), status: toolStatus?.git ?? null, missingHint: t('emptyState.gitRequired') }), _jsx(ToolStatusRow, { label: t('emptyState.githubCli'), status: toolStatus?.gh ?? null, missingHint: t('emptyState.githubCliRequired') })] }), _jsxs("button", { type: "button", "data-testid": "empty-state-add-repository", onClick: handlePickerClick, disabled: loading, className: "bg-primary text-primary-foreground hover:bg-primary/90 mt-10 flex w-full cursor-pointer items-center justify-center gap-2.5 rounded-xl px-6 py-4 text-base font-bold tracking-wide shadow-lg transition-all duration-200 hover:-translate-y-0.5 hover:shadow-xl active:scale-[0.98] disabled:cursor-wait disabled:opacity-50", children: [loading ? (_jsx(LoaderCircle, { className: "h-5 w-5 animate-spin" })) : (_jsx(FolderOpen, { className: "h-5 w-5" })), loading ? t('emptyState.opening') : t('emptyState.chooseFolder')] }), _jsx("p", { className: "text-muted-foreground mt-3 text-center text-sm", children: t('emptyState.folderHint') })] })), agentReady ? (_jsxs("div", { className: "absolute bottom-8 flex flex-col items-center", style: {
|
|
79
79
|
animationDelay: '400ms',
|
|
80
80
|
animationDuration: '600ms',
|
|
81
81
|
animationFillMode: 'both',
|
package/dist/src/presentation/web/components/features/features-canvas/features-canvas.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"features-canvas.d.ts","sourceRoot":"","sources":["../../../../../../../src/presentation/web/components/features/features-canvas/features-canvas.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE,UAAU,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAOvF,OAAO,KAAK,EAAE,eAAe,EAAmB,MAAM,kCAAkC,CAAC;AAEzF,OAAO,KAAK,EAAE,kBAAkB,EAAsB,MAAM,qCAAqC,CAAC;AAGlG,MAAM,MAAM,cAAc,GAAG,eAAe,GAAG,kBAAkB,CAAC;AAElE,MAAM,WAAW,mBAAmB;IAClC,KAAK,EAAE,cAAc,EAAE,CAAC;IACxB,KAAK,EAAE,IAAI,EAAE,CAAC;IACd,iBAAiB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAClC,kBAAkB,CAAC,EAAE;QAAE,EAAE,EAAE,MAAM,GAAG,IAAI,CAAC;QAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,CAAC;IAChE,eAAe,CAAC,EAAE,QAAQ,CAAC;IAC3B,aAAa,CAAC,EAAE,CAAC,OAAO,EAAE,UAAU,CAAC,cAAc,CAAC,EAAE,KAAK,IAAI,CAAC;IAChE,YAAY,CAAC,EAAE,MAAM,IAAI,CAAC;IAC1B,WAAW,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,UAAU,EAAE,IAAI,EAAE,cAAc,KAAK,IAAI,CAAC;IACtE,WAAW,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,UAAU,KAAK,IAAI,CAAC;IAChD,SAAS,CAAC,EAAE,CAAC,UAAU,EAAE,UAAU,KAAK,IAAI,CAAC;IAC7C,YAAY,CAAC,EAAE,MAAM,IAAI,CAAC;IAC1B,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,OAAO,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,UAAU,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CAC9B;AAID,wBAAgB,cAAc,CAAC,EAC7B,KAAK,EACL,KAAK,EACL,iBAAiB,EACjB,kBAAkB,EAClB,eAAe,EACf,aAAa,EACb,YAAY,EACZ,SAAS,EACT,WAAW,EACX,WAAW,EACX,YAAY,EACZ,SAAS,EACT,OAAO,EACP,UAAU,GACX,EAAE,mBAAmB,
|
|
1
|
+
{"version":3,"file":"features-canvas.d.ts","sourceRoot":"","sources":["../../../../../../../src/presentation/web/components/features/features-canvas/features-canvas.tsx"],"names":[],"mappings":"AAIA,OAAO,KAAK,EAAE,UAAU,EAAE,IAAI,EAAE,UAAU,EAAE,SAAS,EAAE,QAAQ,EAAE,MAAM,eAAe,CAAC;AAOvF,OAAO,KAAK,EAAE,eAAe,EAAmB,MAAM,kCAAkC,CAAC;AAEzF,OAAO,KAAK,EAAE,kBAAkB,EAAsB,MAAM,qCAAqC,CAAC;AAGlG,MAAM,MAAM,cAAc,GAAG,eAAe,GAAG,kBAAkB,CAAC;AAElE,MAAM,WAAW,mBAAmB;IAClC,KAAK,EAAE,cAAc,EAAE,CAAC;IACxB,KAAK,EAAE,IAAI,EAAE,CAAC;IACd,iBAAiB,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;IAClC,kBAAkB,CAAC,EAAE;QAAE,EAAE,EAAE,MAAM,GAAG,IAAI,CAAC;QAAC,IAAI,EAAE,MAAM,GAAG,IAAI,CAAA;KAAE,CAAC;IAChE,eAAe,CAAC,EAAE,QAAQ,CAAC;IAC3B,aAAa,CAAC,EAAE,CAAC,OAAO,EAAE,UAAU,CAAC,cAAc,CAAC,EAAE,KAAK,IAAI,CAAC;IAChE,YAAY,CAAC,EAAE,MAAM,IAAI,CAAC;IAC1B,WAAW,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,UAAU,EAAE,IAAI,EAAE,cAAc,KAAK,IAAI,CAAC;IACtE,WAAW,CAAC,EAAE,CAAC,KAAK,EAAE,KAAK,CAAC,UAAU,KAAK,IAAI,CAAC;IAChD,SAAS,CAAC,EAAE,CAAC,UAAU,EAAE,UAAU,KAAK,IAAI,CAAC;IAC7C,YAAY,CAAC,EAAE,MAAM,IAAI,CAAC;IAC1B,SAAS,CAAC,EAAE,SAAS,CAAC;IACtB,OAAO,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;IAC1B,UAAU,CAAC,EAAE,KAAK,CAAC,SAAS,CAAC;CAC9B;AAID,wBAAgB,cAAc,CAAC,EAC7B,KAAK,EACL,KAAK,EACL,iBAAiB,EACjB,kBAAkB,EAClB,eAAe,EACf,aAAa,EACb,YAAY,EACZ,SAAS,EACT,WAAW,EACX,WAAW,EACX,YAAY,EACZ,SAAS,EACT,OAAO,EACP,UAAU,GACX,EAAE,mBAAmB,2CA6IrB"}
|
|
@@ -71,5 +71,9 @@ export function FeaturesCanvas({ nodes, edges, selectedFeatureId, selectedReposi
|
|
|
71
71
|
}, [isEmpty]);
|
|
72
72
|
const fallbackEmptyState = isEmpty && !emptyState ? (_jsx(EmptyState, { title: t('canvas.noFeatures'), description: t('canvas.noFeaturesDescription'), action: _jsxs(Button, { onClick: onAddFeature, children: [_jsx(Plus, { className: "me-2 h-4 w-4" }), t('canvas.newFeature')] }) })) : null;
|
|
73
73
|
const overlayContent = emptyState ?? fallbackEmptyState;
|
|
74
|
-
return (_jsxs("div", { "data-testid": isEmpty ? 'features-canvas-empty' : 'features-canvas', "data-no-drawer-close": true,
|
|
74
|
+
return (_jsxs("div", { "data-testid": isEmpty ? 'features-canvas-empty' : 'features-canvas', "data-no-drawer-close": true,
|
|
75
|
+
// Canvas background uses --color-background in both modes so it inherits
|
|
76
|
+
// the editorial surface (#f8fafc light / #0b0f19 dark). Previously
|
|
77
|
+
// hardcoded #f6f7f8 in light mode only.
|
|
78
|
+
className: "bg-background pointer-events-auto relative h-full w-full", children: [_jsxs(ReactFlow, { nodes: enrichedNodes, edges: edges, nodeTypes: nodeTypes, edgeTypes: edgeTypes, onConnect: onConnect, onNodesChange: onNodesChange, onNodeClick: onNodeClick, onPaneClick: onPaneClick, onMoveStart: onCanvasDrag, onMoveEnd: onMoveEnd, defaultViewport: defaultViewport ?? FALLBACK_VIEWPORT, nodesDraggable: false, nodesConnectable: false, elementsSelectable: false, proOptions: { hideAttribution: true }, className: "[&_.react-flow__pane]:!cursor-default", children: [_jsx(Background, { variant: BackgroundVariant.Dots, gap: 24, size: 1, color: "#b8bcc4", className: "dark:[&_circle]:!fill-white/[0.1]" }), !isEmpty && toolbar ? (_jsx(Panel, { position: "top-right", className: "!me-3 !mt-3", children: toolbar })) : null] }), showOverlay && overlayContent ? (_jsx("div", { className: cn('pointer-events-none absolute inset-0 z-10 flex items-center justify-center transition-opacity duration-300', overlayExiting ? 'opacity-0' : 'animate-in fade-in opacity-100 duration-200'), children: _jsx("div", { className: "pointer-events-auto h-full w-full", children: overlayContent }) })) : null] }));
|
|
75
79
|
}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
|
-
import type {
|
|
1
|
+
import type { Settings } from '../../../../../../packages/core/src/domain/generated/output.js';
|
|
2
2
|
export interface AgentSettingsSectionProps {
|
|
3
|
-
|
|
3
|
+
settings: Settings;
|
|
4
4
|
}
|
|
5
|
-
export declare function AgentSettingsSection({
|
|
5
|
+
export declare function AgentSettingsSection({ settings }: AgentSettingsSectionProps): import("react/jsx-runtime").JSX.Element;
|
|
6
6
|
//# sourceMappingURL=agent-settings-section.d.ts.map
|
package/dist/src/presentation/web/components/features/settings/agent-settings-section.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"agent-settings-section.d.ts","sourceRoot":"","sources":["../../../../../../../src/presentation/web/components/features/settings/agent-settings-section.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"agent-settings-section.d.ts","sourceRoot":"","sources":["../../../../../../../src/presentation/web/components/features/settings/agent-settings-section.tsx"],"names":[],"mappings":"AAKA,OAAO,KAAK,EAAE,QAAQ,EAAa,MAAM,yCAAyC,CAAC;AAInF,MAAM,WAAW,yBAAyB;IACxC,QAAQ,EAAE,QAAQ,CAAC;CACpB;AAED,wBAAgB,oBAAoB,CAAC,EAAE,QAAQ,EAAE,EAAE,yBAAyB,2CA0C3E"}
|