shipscreens 0.1.6 → 0.1.7
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/README.md +14 -4
- package/bin/shipscreens.js +352 -18
- package/cli/commands/captureScreenshots.js +409 -0
- package/cli/commands/importScreenshots.js +377 -0
- package/cli/commands/inspectReleaseContext.js +607 -0
- package/cli/commands/planRelease.js +324 -0
- package/cli/commands/writeStarterConfig.js +233 -0
- package/cli/mcpServer.js +172 -3
- package/dist/.well-known/ai-agents.json +58 -11
- package/dist/.well-known/llms-full.txt +80 -17
- package/dist/.well-known/llms.txt +38 -12
- package/dist/.well-known/mcp-server.json +4 -4
- package/dist/ai-agents.json +58 -11
- package/dist/app/assets/AgentCli-nIqgOG-i.js +17 -0
- package/dist/app/assets/AgentCli-nIqgOG-i.js.map +1 -0
- package/dist/app/assets/AgentHandoffPanel-Bf_AJepG.js +2 -0
- package/dist/app/assets/AgentHandoffPanel-Bf_AJepG.js.map +1 -0
- package/dist/app/assets/AgentStarterWorkflowFigure-DW4SMMy7.js +2 -0
- package/dist/app/assets/AgentStarterWorkflowFigure-DW4SMMy7.js.map +1 -0
- package/dist/app/assets/App-BRKxkubQ.css +1 -0
- package/dist/app/assets/App-CZiyX8-L.js +14 -0
- package/dist/app/assets/App-CZiyX8-L.js.map +1 -0
- package/dist/app/assets/AppReviewAso-DYOCuqgV.js +4 -0
- package/dist/app/assets/AppReviewAso-DYOCuqgV.js.map +1 -0
- package/dist/app/assets/Cancelled-CP6V6uDb.js +2 -0
- package/dist/app/assets/Cancelled-CP6V6uDb.js.map +1 -0
- package/dist/app/assets/CopyButton-BFCx6EPg.js +2 -0
- package/dist/app/assets/CopyButton-BFCx6EPg.js.map +1 -0
- package/dist/app/assets/DesignPartner-B4J7f0Bx.js +4 -0
- package/dist/app/assets/DesignPartner-B4J7f0Bx.js.map +1 -0
- package/dist/app/assets/FastlaneScreenshots-cdZE6cGY.js +90 -0
- package/dist/app/assets/FastlaneScreenshots-cdZE6cGY.js.map +1 -0
- package/dist/app/assets/FirstExport-qfY7uE8r.js +6 -0
- package/dist/app/assets/FirstExport-qfY7uE8r.js.map +1 -0
- package/dist/app/assets/FitPanel-B1J0V1jK.js +2 -0
- package/dist/app/assets/FitPanel-B1J0V1jK.js.map +1 -0
- package/dist/app/assets/FivePanelFramework-C4yq58kM.js +62 -0
- package/dist/app/assets/FivePanelFramework-C4yq58kM.js.map +1 -0
- package/dist/app/assets/ForgotPassword-KF_HFGyb.js +2 -0
- package/dist/app/assets/ForgotPassword-KF_HFGyb.js.map +1 -0
- package/dist/app/assets/Landing-B_CvZDXJ.js +2 -0
- package/dist/app/assets/Landing-B_CvZDXJ.js.map +1 -0
- package/dist/app/assets/LanguageSwitcher-hFv9zl1u.js +2 -0
- package/dist/app/assets/LanguageSwitcher-hFv9zl1u.js.map +1 -0
- package/dist/app/assets/Legal-BwGbEjDk.js +2 -0
- package/dist/app/assets/Legal-BwGbEjDk.js.map +1 -0
- package/dist/app/assets/NotFound-Ba1Bw7uu.js +2 -0
- package/dist/app/assets/NotFound-Ba1Bw7uu.js.map +1 -0
- package/dist/app/assets/Pricing-Dt-V4Gqc.js +20 -0
- package/dist/app/assets/Pricing-Dt-V4Gqc.js.map +1 -0
- package/dist/app/assets/Privacy-C6MrXYPO.js +2 -0
- package/dist/app/assets/Privacy-C6MrXYPO.js.map +1 -0
- package/dist/app/assets/Proof-C3DDFAhm.js +20 -0
- package/dist/app/assets/Proof-C3DDFAhm.js.map +1 -0
- package/dist/app/assets/ReleaseFitIntake-DBeb9AFJ.js +27 -0
- package/dist/app/assets/ReleaseFitIntake-DBeb9AFJ.js.map +1 -0
- package/dist/app/assets/SalesEntryQuickRequestCard-Bfa93AYu.js +2 -0
- package/dist/app/assets/SalesEntryQuickRequestCard-Bfa93AYu.js.map +1 -0
- package/dist/app/assets/Security-C1OmAgom.js +2 -0
- package/dist/app/assets/Security-C1OmAgom.js.map +1 -0
- package/dist/app/assets/SignIn-C_wwnmvu.js +2 -0
- package/dist/app/assets/SignIn-C_wwnmvu.js.map +1 -0
- package/dist/app/assets/SignUp-Dm5HalC6.js +2 -0
- package/dist/app/assets/SignUp-Dm5HalC6.js.map +1 -0
- package/dist/app/assets/SiteHeader-CJqQ0pL3.js +2 -0
- package/dist/app/assets/SiteHeader-CJqQ0pL3.js.map +1 -0
- package/dist/app/assets/StickyMobileCta-REC3DROG.js +2 -0
- package/dist/app/assets/StickyMobileCta-REC3DROG.js.map +1 -0
- package/dist/app/assets/StoreAssetsPipeline-DNnnBp0D.js +6 -0
- package/dist/app/assets/StoreAssetsPipeline-DNnnBp0D.js.map +1 -0
- package/dist/app/assets/Success-D6b4wLPD.js +2 -0
- package/dist/app/assets/Success-D6b4wLPD.js.map +1 -0
- package/dist/app/assets/Terms-BMt39FQK.js +2 -0
- package/dist/app/assets/Terms-BMt39FQK.js.map +1 -0
- package/dist/app/assets/ToolGuardrailsPanel-Cclxwdrb.js +2 -0
- package/dist/app/assets/ToolGuardrailsPanel-Cclxwdrb.js.map +1 -0
- package/dist/app/assets/ToolsIndex-d1szo5bn.js +6 -0
- package/dist/app/assets/ToolsIndex-d1szo5bn.js.map +1 -0
- package/dist/app/assets/TrustSalesEntryPanel-DuncpgMs.js +2 -0
- package/dist/app/assets/TrustSalesEntryPanel-DuncpgMs.js.map +1 -0
- package/dist/app/assets/WorkloadCalculator-BbFWF2Ls.js +5 -0
- package/dist/app/assets/WorkloadCalculator-BbFWF2Ls.js.map +1 -0
- package/dist/app/assets/agentHandoff-BGmHqDwv.js +2 -0
- package/dist/app/assets/agentHandoff-BGmHqDwv.js.map +1 -0
- package/dist/app/assets/apiClient-3WVm94VW.js +2 -0
- package/dist/app/assets/apiClient-3WVm94VW.js.map +1 -0
- package/dist/app/assets/calculator-CofuwQa8.js +2 -0
- package/dist/app/assets/calculator-CofuwQa8.js.map +1 -0
- package/dist/app/assets/check-Fm2iQO64.js +2 -0
- package/dist/app/assets/check-Fm2iQO64.js.map +1 -0
- package/dist/app/assets/chevron-down-BIXHKpnf.js +2 -0
- package/dist/app/assets/chevron-down-BIXHKpnf.js.map +1 -0
- package/dist/app/assets/chunk-BHe-jwch.js +1 -0
- package/dist/app/assets/circle-check-X08qqy40.js +2 -0
- package/dist/app/assets/circle-check-X08qqy40.js.map +1 -0
- package/dist/app/assets/copy-KD-LYJ0z.js +2 -0
- package/dist/app/assets/copy-KD-LYJ0z.js.map +1 -0
- package/dist/app/assets/crop-K1LOmRty.js +2 -0
- package/dist/app/assets/crop-K1LOmRty.js.map +1 -0
- package/dist/app/assets/designPartnerRequest-DYqMElJd.js +2 -0
- package/dist/app/assets/designPartnerRequest-DYqMElJd.js.map +1 -0
- package/dist/app/assets/designPartnerSalesEntry-BpRINg3I.js +2 -0
- package/dist/app/assets/designPartnerSalesEntry-BpRINg3I.js.map +1 -0
- package/dist/app/assets/download-BXzoc-Y3.js +2 -0
- package/dist/app/assets/download-BXzoc-Y3.js.map +1 -0
- package/dist/app/assets/eye-CHvLhG2r.js +2 -0
- package/dist/app/assets/eye-CHvLhG2r.js.map +1 -0
- package/dist/app/assets/file-text-CU-ETLz1.js +2 -0
- package/dist/app/assets/file-text-CU-ETLz1.js.map +1 -0
- package/dist/app/assets/folder-tree-raVH0Y5V.js +2 -0
- package/dist/app/assets/folder-tree-raVH0Y5V.js.map +1 -0
- package/dist/app/assets/grid-3x3-cWuhGQfz.js +2 -0
- package/dist/app/assets/grid-3x3-cWuhGQfz.js.map +1 -0
- package/dist/app/assets/hardeningOffer-tkjlPDU-.js +2 -0
- package/dist/app/assets/hardeningOffer-tkjlPDU-.js.map +1 -0
- package/dist/app/assets/hero/agent-starter-workflow.png +0 -0
- package/dist/app/assets/hero/agent-starter-workflow.webp +0 -0
- package/dist/app/assets/html2canvas-pro.esm-OQkwCdu_.js +6 -0
- package/dist/app/assets/html2canvas-pro.esm-OQkwCdu_.js.map +1 -0
- package/dist/app/assets/index-BW_YmKvl.css +2 -0
- package/dist/app/assets/index-D7D6ZRCW.js +212 -0
- package/dist/app/assets/index-D7D6ZRCW.js.map +1 -0
- package/dist/app/assets/jszip.min-XyfP2hUJ.js +3 -0
- package/dist/app/assets/jszip.min-XyfP2hUJ.js.map +1 -0
- package/dist/app/assets/layout-grid-Cq_e979G.js +2 -0
- package/dist/app/assets/layout-grid-Cq_e979G.js.map +1 -0
- package/dist/app/assets/lock-Di7P18Ts.js +2 -0
- package/dist/app/assets/lock-Di7P18Ts.js.map +1 -0
- package/dist/app/assets/rocket-DHdrCHKD.js +2 -0
- package/dist/app/assets/rocket-DHdrCHKD.js.map +1 -0
- package/dist/app/assets/shield-check-CxpHNdp0.js +2 -0
- package/dist/app/assets/shield-check-CxpHNdp0.js.map +1 -0
- package/dist/app/assets/smartphone-DXKiqu57.js +2 -0
- package/dist/app/assets/smartphone-DXKiqu57.js.map +1 -0
- package/dist/app/assets/stripeClient-CuZgvzca.js +2 -0
- package/dist/app/assets/stripeClient-CuZgvzca.js.map +1 -0
- package/dist/app/assets/terminal-J0iyJTv2.js +2 -0
- package/dist/app/assets/terminal-J0iyJTv2.js.map +1 -0
- package/dist/app/assets/triangle-alert-BA0HP6zD.js +2 -0
- package/dist/app/assets/triangle-alert-BA0HP6zD.js.map +1 -0
- package/dist/app/assets/useAuth-CoS4r8yi.js +22 -0
- package/dist/app/assets/useAuth-CoS4r8yi.js.map +1 -0
- package/dist/app/assets/users-C-fz7pbn.js +2 -0
- package/dist/app/assets/users-C-fz7pbn.js.map +1 -0
- package/dist/app/index.html +9 -8
- package/dist/assets/AgentCli-nIqgOG-i.js +17 -0
- package/dist/assets/AgentCli-nIqgOG-i.js.map +1 -0
- package/dist/assets/AgentHandoffPanel-Bf_AJepG.js +2 -0
- package/dist/assets/AgentHandoffPanel-Bf_AJepG.js.map +1 -0
- package/dist/assets/AgentStarterWorkflowFigure-DW4SMMy7.js +2 -0
- package/dist/assets/AgentStarterWorkflowFigure-DW4SMMy7.js.map +1 -0
- package/dist/assets/App-BRKxkubQ.css +1 -0
- package/dist/assets/App-CZiyX8-L.js +14 -0
- package/dist/assets/App-CZiyX8-L.js.map +1 -0
- package/dist/assets/AppReviewAso-DYOCuqgV.js +4 -0
- package/dist/assets/AppReviewAso-DYOCuqgV.js.map +1 -0
- package/dist/assets/Cancelled-CP6V6uDb.js +2 -0
- package/dist/assets/Cancelled-CP6V6uDb.js.map +1 -0
- package/dist/assets/CopyButton-BFCx6EPg.js +2 -0
- package/dist/assets/CopyButton-BFCx6EPg.js.map +1 -0
- package/dist/assets/DesignPartner-B4J7f0Bx.js +4 -0
- package/dist/assets/DesignPartner-B4J7f0Bx.js.map +1 -0
- package/dist/assets/FastlaneScreenshots-cdZE6cGY.js +90 -0
- package/dist/assets/FastlaneScreenshots-cdZE6cGY.js.map +1 -0
- package/dist/assets/FirstExport-qfY7uE8r.js +6 -0
- package/dist/assets/FirstExport-qfY7uE8r.js.map +1 -0
- package/dist/assets/FitPanel-B1J0V1jK.js +2 -0
- package/dist/assets/FitPanel-B1J0V1jK.js.map +1 -0
- package/dist/assets/FivePanelFramework-C4yq58kM.js +62 -0
- package/dist/assets/FivePanelFramework-C4yq58kM.js.map +1 -0
- package/dist/assets/ForgotPassword-KF_HFGyb.js +2 -0
- package/dist/assets/ForgotPassword-KF_HFGyb.js.map +1 -0
- package/dist/assets/Landing-B_CvZDXJ.js +2 -0
- package/dist/assets/Landing-B_CvZDXJ.js.map +1 -0
- package/dist/assets/LanguageSwitcher-hFv9zl1u.js +2 -0
- package/dist/assets/LanguageSwitcher-hFv9zl1u.js.map +1 -0
- package/dist/assets/Legal-BwGbEjDk.js +2 -0
- package/dist/assets/Legal-BwGbEjDk.js.map +1 -0
- package/dist/assets/NotFound-Ba1Bw7uu.js +2 -0
- package/dist/assets/NotFound-Ba1Bw7uu.js.map +1 -0
- package/dist/assets/Pricing-Dt-V4Gqc.js +20 -0
- package/dist/assets/Pricing-Dt-V4Gqc.js.map +1 -0
- package/dist/assets/Privacy-C6MrXYPO.js +2 -0
- package/dist/assets/Privacy-C6MrXYPO.js.map +1 -0
- package/dist/assets/Proof-C3DDFAhm.js +20 -0
- package/dist/assets/Proof-C3DDFAhm.js.map +1 -0
- package/dist/assets/ReleaseFitIntake-DBeb9AFJ.js +27 -0
- package/dist/assets/ReleaseFitIntake-DBeb9AFJ.js.map +1 -0
- package/dist/assets/SalesEntryQuickRequestCard-Bfa93AYu.js +2 -0
- package/dist/assets/SalesEntryQuickRequestCard-Bfa93AYu.js.map +1 -0
- package/dist/assets/Security-C1OmAgom.js +2 -0
- package/dist/assets/Security-C1OmAgom.js.map +1 -0
- package/dist/assets/SignIn-C_wwnmvu.js +2 -0
- package/dist/assets/SignIn-C_wwnmvu.js.map +1 -0
- package/dist/assets/SignUp-Dm5HalC6.js +2 -0
- package/dist/assets/SignUp-Dm5HalC6.js.map +1 -0
- package/dist/assets/SiteHeader-CJqQ0pL3.js +2 -0
- package/dist/assets/SiteHeader-CJqQ0pL3.js.map +1 -0
- package/dist/assets/StickyMobileCta-REC3DROG.js +2 -0
- package/dist/assets/StickyMobileCta-REC3DROG.js.map +1 -0
- package/dist/assets/StoreAssetsPipeline-DNnnBp0D.js +6 -0
- package/dist/assets/StoreAssetsPipeline-DNnnBp0D.js.map +1 -0
- package/dist/assets/Success-D6b4wLPD.js +2 -0
- package/dist/assets/Success-D6b4wLPD.js.map +1 -0
- package/dist/assets/Terms-BMt39FQK.js +2 -0
- package/dist/assets/Terms-BMt39FQK.js.map +1 -0
- package/dist/assets/ToolGuardrailsPanel-Cclxwdrb.js +2 -0
- package/dist/assets/ToolGuardrailsPanel-Cclxwdrb.js.map +1 -0
- package/dist/assets/ToolsIndex-d1szo5bn.js +6 -0
- package/dist/assets/ToolsIndex-d1szo5bn.js.map +1 -0
- package/dist/assets/TrustSalesEntryPanel-DuncpgMs.js +2 -0
- package/dist/assets/TrustSalesEntryPanel-DuncpgMs.js.map +1 -0
- package/dist/assets/WorkloadCalculator-BbFWF2Ls.js +5 -0
- package/dist/assets/WorkloadCalculator-BbFWF2Ls.js.map +1 -0
- package/dist/assets/agentHandoff-BGmHqDwv.js +2 -0
- package/dist/assets/agentHandoff-BGmHqDwv.js.map +1 -0
- package/dist/assets/apiClient-3WVm94VW.js +2 -0
- package/dist/assets/apiClient-3WVm94VW.js.map +1 -0
- package/dist/assets/calculator-CofuwQa8.js +2 -0
- package/dist/assets/calculator-CofuwQa8.js.map +1 -0
- package/dist/assets/check-Fm2iQO64.js +2 -0
- package/dist/assets/check-Fm2iQO64.js.map +1 -0
- package/dist/assets/chevron-down-BIXHKpnf.js +2 -0
- package/dist/assets/chevron-down-BIXHKpnf.js.map +1 -0
- package/dist/assets/chunk-BHe-jwch.js +1 -0
- package/dist/assets/circle-check-X08qqy40.js +2 -0
- package/dist/assets/circle-check-X08qqy40.js.map +1 -0
- package/dist/assets/copy-KD-LYJ0z.js +2 -0
- package/dist/assets/copy-KD-LYJ0z.js.map +1 -0
- package/dist/assets/crop-K1LOmRty.js +2 -0
- package/dist/assets/crop-K1LOmRty.js.map +1 -0
- package/dist/assets/designPartnerRequest-DYqMElJd.js +2 -0
- package/dist/assets/designPartnerRequest-DYqMElJd.js.map +1 -0
- package/dist/assets/designPartnerSalesEntry-BpRINg3I.js +2 -0
- package/dist/assets/designPartnerSalesEntry-BpRINg3I.js.map +1 -0
- package/dist/assets/download-BXzoc-Y3.js +2 -0
- package/dist/assets/download-BXzoc-Y3.js.map +1 -0
- package/dist/assets/eye-CHvLhG2r.js +2 -0
- package/dist/assets/eye-CHvLhG2r.js.map +1 -0
- package/dist/assets/file-text-CU-ETLz1.js +2 -0
- package/dist/assets/file-text-CU-ETLz1.js.map +1 -0
- package/dist/assets/folder-tree-raVH0Y5V.js +2 -0
- package/dist/assets/folder-tree-raVH0Y5V.js.map +1 -0
- package/dist/assets/grid-3x3-cWuhGQfz.js +2 -0
- package/dist/assets/grid-3x3-cWuhGQfz.js.map +1 -0
- package/dist/assets/hardeningOffer-tkjlPDU-.js +2 -0
- package/dist/assets/hardeningOffer-tkjlPDU-.js.map +1 -0
- package/dist/assets/hero/agent-starter-workflow.png +0 -0
- package/dist/assets/hero/agent-starter-workflow.webp +0 -0
- package/dist/assets/html2canvas-pro.esm-OQkwCdu_.js +6 -0
- package/dist/assets/html2canvas-pro.esm-OQkwCdu_.js.map +1 -0
- package/dist/assets/index-BW_YmKvl.css +2 -0
- package/dist/assets/index-D7D6ZRCW.js +212 -0
- package/dist/assets/index-D7D6ZRCW.js.map +1 -0
- package/dist/assets/jszip.min-XyfP2hUJ.js +3 -0
- package/dist/assets/jszip.min-XyfP2hUJ.js.map +1 -0
- package/dist/assets/layout-grid-Cq_e979G.js +2 -0
- package/dist/assets/layout-grid-Cq_e979G.js.map +1 -0
- package/dist/assets/lock-Di7P18Ts.js +2 -0
- package/dist/assets/lock-Di7P18Ts.js.map +1 -0
- package/dist/assets/rocket-DHdrCHKD.js +2 -0
- package/dist/assets/rocket-DHdrCHKD.js.map +1 -0
- package/dist/assets/shield-check-CxpHNdp0.js +2 -0
- package/dist/assets/shield-check-CxpHNdp0.js.map +1 -0
- package/dist/assets/smartphone-DXKiqu57.js +2 -0
- package/dist/assets/smartphone-DXKiqu57.js.map +1 -0
- package/dist/assets/stripeClient-CuZgvzca.js +2 -0
- package/dist/assets/stripeClient-CuZgvzca.js.map +1 -0
- package/dist/assets/terminal-J0iyJTv2.js +2 -0
- package/dist/assets/terminal-J0iyJTv2.js.map +1 -0
- package/dist/assets/triangle-alert-BA0HP6zD.js +2 -0
- package/dist/assets/triangle-alert-BA0HP6zD.js.map +1 -0
- package/dist/assets/useAuth-CoS4r8yi.js +22 -0
- package/dist/assets/useAuth-CoS4r8yi.js.map +1 -0
- package/dist/assets/users-C-fz7pbn.js +2 -0
- package/dist/assets/users-C-fz7pbn.js.map +1 -0
- package/dist/cancelled/index.html +3 -2
- package/dist/design-partner/index.html +6 -5
- package/dist/downloads/shipscreens-github-actions-template.yml +1 -1
- package/dist/forgot-password/index.html +3 -2
- package/dist/index.html +9 -8
- package/dist/legal/index.html +3 -2
- package/dist/llms-full.txt +80 -17
- package/dist/llms.txt +38 -12
- package/dist/mcp-server.json +4 -4
- package/dist/pricing/index.html +6 -5
- package/dist/privacy/index.html +3 -2
- package/dist/proof/index.html +6 -5
- package/dist/security/index.html +3 -2
- package/dist/signin/index.html +3 -2
- package/dist/signup/index.html +3 -2
- package/dist/success/index.html +3 -2
- package/dist/terms/index.html +3 -2
- package/dist/tools/5-panel-screenshot-framework/index.html +6 -5
- package/dist/tools/agent-cli/index.html +8 -7
- package/dist/tools/app-review-aso/index.html +6 -5
- package/dist/tools/app-store-localization-screenshot-automation/index.html +8 -7
- package/dist/tools/app-store-screenshot-automation/index.html +8 -7
- package/dist/tools/app-store-screenshot-requirements-checklist/index.html +8 -7
- package/dist/tools/claude-code-mcp-screenshot-automation/index.html +8 -7
- package/dist/tools/cursor-mcp-screenshot-automation/index.html +8 -7
- package/dist/tools/deterministic-screenshot-reruns/index.html +8 -7
- package/dist/tools/device-locale-screenshot-matrix/index.html +8 -7
- package/dist/tools/fastlane-screenshot-folder-structure/index.html +8 -7
- package/dist/tools/fastlane-screenshot-pipeline/index.html +8 -7
- package/dist/tools/fastlane-screenshots/index.html +6 -5
- package/dist/tools/first-export/index.html +6 -5
- package/dist/tools/gemini-cli-mcp-screenshot-automation/index.html +8 -7
- package/dist/tools/google-play-screenshot-automation/index.html +8 -7
- package/dist/tools/google-play-screenshot-requirements-checklist/index.html +8 -7
- package/dist/tools/index.html +6 -5
- package/dist/tools/ipad-screenshot-review-requirements/index.html +8 -7
- package/dist/tools/openai-responses-tool-screenshot-automation/index.html +8 -7
- package/dist/tools/screenshot-ci-pipeline/index.html +8 -7
- package/dist/tools/screenshot-naming-order-drift/index.html +8 -7
- package/dist/tools/screenshot-workload-calculator/index.html +6 -5
- package/dist/tools/store-assets-pipeline/index.html +3 -2
- package/dist/tools/vscode-copilot-mcp-screenshot-automation/index.html +8 -7
- package/package.json +7 -7
- package/dist/app/assets/AgentCli-xKYtzL3B.js +0 -17
- package/dist/app/assets/AgentCli-xKYtzL3B.js.map +0 -1
- package/dist/app/assets/App-C1cNw_fn.js +0 -13
- package/dist/app/assets/App-C1cNw_fn.js.map +0 -1
- package/dist/app/assets/App-oQfE_p3A.css +0 -1
- package/dist/app/assets/AppReviewAso-CaIT-L7Z.js +0 -4
- package/dist/app/assets/AppReviewAso-CaIT-L7Z.js.map +0 -1
- package/dist/app/assets/Cancelled-Dmw7PTD-.js +0 -2
- package/dist/app/assets/Cancelled-Dmw7PTD-.js.map +0 -1
- package/dist/app/assets/CopyButton-CPRHmu8l.js +0 -2
- package/dist/app/assets/CopyButton-CPRHmu8l.js.map +0 -1
- package/dist/app/assets/DesignPartner-Ckp1GhNv.js +0 -4
- package/dist/app/assets/DesignPartner-Ckp1GhNv.js.map +0 -1
- package/dist/app/assets/FastlaneScreenshots-CB-zv5Us.js +0 -100
- package/dist/app/assets/FastlaneScreenshots-CB-zv5Us.js.map +0 -1
- package/dist/app/assets/FirstExport-RXbvVQdK.js +0 -6
- package/dist/app/assets/FirstExport-RXbvVQdK.js.map +0 -1
- package/dist/app/assets/FitPanel-ic91y-49.js +0 -2
- package/dist/app/assets/FitPanel-ic91y-49.js.map +0 -1
- package/dist/app/assets/FivePanelFramework-BZKNcycb.js +0 -62
- package/dist/app/assets/FivePanelFramework-BZKNcycb.js.map +0 -1
- package/dist/app/assets/ForgotPassword-CKOfAvWk.js +0 -2
- package/dist/app/assets/ForgotPassword-CKOfAvWk.js.map +0 -1
- package/dist/app/assets/Landing-D0cuDDUk.js +0 -2
- package/dist/app/assets/Landing-D0cuDDUk.js.map +0 -1
- package/dist/app/assets/LanguageSwitcher-BrToLEgF.js +0 -2
- package/dist/app/assets/LanguageSwitcher-BrToLEgF.js.map +0 -1
- package/dist/app/assets/Legal-Cm-hVzjY.js +0 -2
- package/dist/app/assets/Legal-Cm-hVzjY.js.map +0 -1
- package/dist/app/assets/NotFound-B0I6I440.js +0 -2
- package/dist/app/assets/NotFound-B0I6I440.js.map +0 -1
- package/dist/app/assets/Pricing-p-NIjjtK.js +0 -29
- package/dist/app/assets/Pricing-p-NIjjtK.js.map +0 -1
- package/dist/app/assets/Privacy-BhfPkK0y.js +0 -2
- package/dist/app/assets/Privacy-BhfPkK0y.js.map +0 -1
- package/dist/app/assets/Proof-D-7QbTGX.js +0 -20
- package/dist/app/assets/Proof-D-7QbTGX.js.map +0 -1
- package/dist/app/assets/Security-DFafJQIT.js +0 -2
- package/dist/app/assets/Security-DFafJQIT.js.map +0 -1
- package/dist/app/assets/SignIn--6nNsUCm.js +0 -2
- package/dist/app/assets/SignIn--6nNsUCm.js.map +0 -1
- package/dist/app/assets/SignUp-yh5ydmFf.js +0 -2
- package/dist/app/assets/SignUp-yh5ydmFf.js.map +0 -1
- package/dist/app/assets/SiteHeader-NTK-cM9O.js +0 -2
- package/dist/app/assets/SiteHeader-NTK-cM9O.js.map +0 -1
- package/dist/app/assets/StickyMobileCta-DVXAyhaH.js +0 -2
- package/dist/app/assets/StickyMobileCta-DVXAyhaH.js.map +0 -1
- package/dist/app/assets/StoreAssetsPipeline-Cbs1bNK5.js +0 -6
- package/dist/app/assets/StoreAssetsPipeline-Cbs1bNK5.js.map +0 -1
- package/dist/app/assets/Success-C3n0m1XU.js +0 -2
- package/dist/app/assets/Success-C3n0m1XU.js.map +0 -1
- package/dist/app/assets/Terms-C72ybAwA.js +0 -2
- package/dist/app/assets/Terms-C72ybAwA.js.map +0 -1
- package/dist/app/assets/ToolGuardrailsPanel-meKxUeSB.js +0 -2
- package/dist/app/assets/ToolGuardrailsPanel-meKxUeSB.js.map +0 -1
- package/dist/app/assets/ToolsIndex-CnvNTvyW.js +0 -6
- package/dist/app/assets/ToolsIndex-CnvNTvyW.js.map +0 -1
- package/dist/app/assets/WorkloadCalculator-CK4qVUcQ.js +0 -5
- package/dist/app/assets/WorkloadCalculator-CK4qVUcQ.js.map +0 -1
- package/dist/app/assets/arrow-right-Dglia5EE.js +0 -2
- package/dist/app/assets/arrow-right-Dglia5EE.js.map +0 -1
- package/dist/app/assets/calculator-CAgtsVuH.js +0 -2
- package/dist/app/assets/calculator-CAgtsVuH.js.map +0 -1
- package/dist/app/assets/check-B5h9hATV.js +0 -2
- package/dist/app/assets/check-B5h9hATV.js.map +0 -1
- package/dist/app/assets/chevron-down-By2Ts8dG.js +0 -2
- package/dist/app/assets/chevron-down-By2Ts8dG.js.map +0 -1
- package/dist/app/assets/circle-check-DaJ6APMi.js +0 -2
- package/dist/app/assets/circle-check-DaJ6APMi.js.map +0 -1
- package/dist/app/assets/clipboard-copy-IDfWU9SE.js +0 -2
- package/dist/app/assets/clipboard-copy-IDfWU9SE.js.map +0 -1
- package/dist/app/assets/copy-KSn4Rc2b.js +0 -2
- package/dist/app/assets/copy-KSn4Rc2b.js.map +0 -1
- package/dist/app/assets/crop-C9hwiw0i.js +0 -2
- package/dist/app/assets/crop-C9hwiw0i.js.map +0 -1
- package/dist/app/assets/download-eqwxO8bs.js +0 -2
- package/dist/app/assets/download-eqwxO8bs.js.map +0 -1
- package/dist/app/assets/eye-Dg61f0nU.js +0 -2
- package/dist/app/assets/eye-Dg61f0nU.js.map +0 -1
- package/dist/app/assets/file-text-BQPKCil3.js +0 -2
- package/dist/app/assets/file-text-BQPKCil3.js.map +0 -1
- package/dist/app/assets/folder-tree-9hq6oigy.js +0 -2
- package/dist/app/assets/folder-tree-9hq6oigy.js.map +0 -1
- package/dist/app/assets/grid-3x3-BHXRyOIx.js +0 -2
- package/dist/app/assets/grid-3x3-BHXRyOIx.js.map +0 -1
- package/dist/app/assets/index-my6BmN7T.js +0 -204
- package/dist/app/assets/index-my6BmN7T.js.map +0 -1
- package/dist/app/assets/index-rv91vbLH.css +0 -1
- package/dist/app/assets/layout-grid-DDQvnEgx.js +0 -2
- package/dist/app/assets/layout-grid-DDQvnEgx.js.map +0 -1
- package/dist/app/assets/rocket-0KMviRpJ.js +0 -2
- package/dist/app/assets/rocket-0KMviRpJ.js.map +0 -1
- package/dist/app/assets/shield-check-BvKEQ2hc.js +0 -2
- package/dist/app/assets/shield-check-BvKEQ2hc.js.map +0 -1
- package/dist/app/assets/signIn-Ckla1_0O.js +0 -2
- package/dist/app/assets/signIn-Ckla1_0O.js.map +0 -1
- package/dist/app/assets/smartphone-I0w1b2DV.js +0 -2
- package/dist/app/assets/smartphone-I0w1b2DV.js.map +0 -1
- package/dist/app/assets/terminal-CLpUSQqd.js +0 -2
- package/dist/app/assets/terminal-CLpUSQqd.js.map +0 -1
- package/dist/app/assets/triangle-alert-w7TZ0yy2.js +0 -2
- package/dist/app/assets/triangle-alert-w7TZ0yy2.js.map +0 -1
- package/dist/app/assets/useAuth-N3hsUaDj.js +0 -4
- package/dist/app/assets/useAuth-N3hsUaDj.js.map +0 -1
- package/dist/app/assets/users-DsQdkuR3.js +0 -2
- package/dist/app/assets/users-DsQdkuR3.js.map +0 -1
- package/dist/assets/AgentCli-xKYtzL3B.js +0 -17
- package/dist/assets/AgentCli-xKYtzL3B.js.map +0 -1
- package/dist/assets/App-C1cNw_fn.js +0 -13
- package/dist/assets/App-C1cNw_fn.js.map +0 -1
- package/dist/assets/App-oQfE_p3A.css +0 -1
- package/dist/assets/AppReviewAso-CaIT-L7Z.js +0 -4
- package/dist/assets/AppReviewAso-CaIT-L7Z.js.map +0 -1
- package/dist/assets/Cancelled-Dmw7PTD-.js +0 -2
- package/dist/assets/Cancelled-Dmw7PTD-.js.map +0 -1
- package/dist/assets/CopyButton-CPRHmu8l.js +0 -2
- package/dist/assets/CopyButton-CPRHmu8l.js.map +0 -1
- package/dist/assets/DesignPartner-Ckp1GhNv.js +0 -4
- package/dist/assets/DesignPartner-Ckp1GhNv.js.map +0 -1
- package/dist/assets/FastlaneScreenshots-CB-zv5Us.js +0 -100
- package/dist/assets/FastlaneScreenshots-CB-zv5Us.js.map +0 -1
- package/dist/assets/FirstExport-RXbvVQdK.js +0 -6
- package/dist/assets/FirstExport-RXbvVQdK.js.map +0 -1
- package/dist/assets/FitPanel-ic91y-49.js +0 -2
- package/dist/assets/FitPanel-ic91y-49.js.map +0 -1
- package/dist/assets/FivePanelFramework-BZKNcycb.js +0 -62
- package/dist/assets/FivePanelFramework-BZKNcycb.js.map +0 -1
- package/dist/assets/ForgotPassword-CKOfAvWk.js +0 -2
- package/dist/assets/ForgotPassword-CKOfAvWk.js.map +0 -1
- package/dist/assets/Landing-D0cuDDUk.js +0 -2
- package/dist/assets/Landing-D0cuDDUk.js.map +0 -1
- package/dist/assets/LanguageSwitcher-BrToLEgF.js +0 -2
- package/dist/assets/LanguageSwitcher-BrToLEgF.js.map +0 -1
- package/dist/assets/Legal-Cm-hVzjY.js +0 -2
- package/dist/assets/Legal-Cm-hVzjY.js.map +0 -1
- package/dist/assets/NotFound-B0I6I440.js +0 -2
- package/dist/assets/NotFound-B0I6I440.js.map +0 -1
- package/dist/assets/Pricing-p-NIjjtK.js +0 -29
- package/dist/assets/Pricing-p-NIjjtK.js.map +0 -1
- package/dist/assets/Privacy-BhfPkK0y.js +0 -2
- package/dist/assets/Privacy-BhfPkK0y.js.map +0 -1
- package/dist/assets/Proof-D-7QbTGX.js +0 -20
- package/dist/assets/Proof-D-7QbTGX.js.map +0 -1
- package/dist/assets/Security-DFafJQIT.js +0 -2
- package/dist/assets/Security-DFafJQIT.js.map +0 -1
- package/dist/assets/SignIn--6nNsUCm.js +0 -2
- package/dist/assets/SignIn--6nNsUCm.js.map +0 -1
- package/dist/assets/SignUp-yh5ydmFf.js +0 -2
- package/dist/assets/SignUp-yh5ydmFf.js.map +0 -1
- package/dist/assets/SiteHeader-NTK-cM9O.js +0 -2
- package/dist/assets/SiteHeader-NTK-cM9O.js.map +0 -1
- package/dist/assets/StickyMobileCta-DVXAyhaH.js +0 -2
- package/dist/assets/StickyMobileCta-DVXAyhaH.js.map +0 -1
- package/dist/assets/StoreAssetsPipeline-Cbs1bNK5.js +0 -6
- package/dist/assets/StoreAssetsPipeline-Cbs1bNK5.js.map +0 -1
- package/dist/assets/Success-C3n0m1XU.js +0 -2
- package/dist/assets/Success-C3n0m1XU.js.map +0 -1
- package/dist/assets/Terms-C72ybAwA.js +0 -2
- package/dist/assets/Terms-C72ybAwA.js.map +0 -1
- package/dist/assets/ToolGuardrailsPanel-meKxUeSB.js +0 -2
- package/dist/assets/ToolGuardrailsPanel-meKxUeSB.js.map +0 -1
- package/dist/assets/ToolsIndex-CnvNTvyW.js +0 -6
- package/dist/assets/ToolsIndex-CnvNTvyW.js.map +0 -1
- package/dist/assets/WorkloadCalculator-CK4qVUcQ.js +0 -5
- package/dist/assets/WorkloadCalculator-CK4qVUcQ.js.map +0 -1
- package/dist/assets/arrow-right-Dglia5EE.js +0 -2
- package/dist/assets/arrow-right-Dglia5EE.js.map +0 -1
- package/dist/assets/calculator-CAgtsVuH.js +0 -2
- package/dist/assets/calculator-CAgtsVuH.js.map +0 -1
- package/dist/assets/check-B5h9hATV.js +0 -2
- package/dist/assets/check-B5h9hATV.js.map +0 -1
- package/dist/assets/chevron-down-By2Ts8dG.js +0 -2
- package/dist/assets/chevron-down-By2Ts8dG.js.map +0 -1
- package/dist/assets/circle-check-DaJ6APMi.js +0 -2
- package/dist/assets/circle-check-DaJ6APMi.js.map +0 -1
- package/dist/assets/clipboard-copy-IDfWU9SE.js +0 -2
- package/dist/assets/clipboard-copy-IDfWU9SE.js.map +0 -1
- package/dist/assets/copy-KSn4Rc2b.js +0 -2
- package/dist/assets/copy-KSn4Rc2b.js.map +0 -1
- package/dist/assets/crop-C9hwiw0i.js +0 -2
- package/dist/assets/crop-C9hwiw0i.js.map +0 -1
- package/dist/assets/download-eqwxO8bs.js +0 -2
- package/dist/assets/download-eqwxO8bs.js.map +0 -1
- package/dist/assets/eye-Dg61f0nU.js +0 -2
- package/dist/assets/eye-Dg61f0nU.js.map +0 -1
- package/dist/assets/file-text-BQPKCil3.js +0 -2
- package/dist/assets/file-text-BQPKCil3.js.map +0 -1
- package/dist/assets/folder-tree-9hq6oigy.js +0 -2
- package/dist/assets/folder-tree-9hq6oigy.js.map +0 -1
- package/dist/assets/grid-3x3-BHXRyOIx.js +0 -2
- package/dist/assets/grid-3x3-BHXRyOIx.js.map +0 -1
- package/dist/assets/index-my6BmN7T.js +0 -204
- package/dist/assets/index-my6BmN7T.js.map +0 -1
- package/dist/assets/index-rv91vbLH.css +0 -1
- package/dist/assets/layout-grid-DDQvnEgx.js +0 -2
- package/dist/assets/layout-grid-DDQvnEgx.js.map +0 -1
- package/dist/assets/rocket-0KMviRpJ.js +0 -2
- package/dist/assets/rocket-0KMviRpJ.js.map +0 -1
- package/dist/assets/shield-check-BvKEQ2hc.js +0 -2
- package/dist/assets/shield-check-BvKEQ2hc.js.map +0 -1
- package/dist/assets/signIn-Ckla1_0O.js +0 -2
- package/dist/assets/signIn-Ckla1_0O.js.map +0 -1
- package/dist/assets/smartphone-I0w1b2DV.js +0 -2
- package/dist/assets/smartphone-I0w1b2DV.js.map +0 -1
- package/dist/assets/terminal-CLpUSQqd.js +0 -2
- package/dist/assets/terminal-CLpUSQqd.js.map +0 -1
- package/dist/assets/triangle-alert-w7TZ0yy2.js +0 -2
- package/dist/assets/triangle-alert-w7TZ0yy2.js.map +0 -1
- package/dist/assets/useAuth-N3hsUaDj.js +0 -4
- package/dist/assets/useAuth-N3hsUaDj.js.map +0 -1
- package/dist/assets/users-DsQdkuR3.js +0 -2
- package/dist/assets/users-DsQdkuR3.js.map +0 -1
|
@@ -0,0 +1,14 @@
|
|
|
1
|
+
const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/jszip.min-XyfP2hUJ.js","assets/chunk-BHe-jwch.js"])))=>i.map(i=>d[i]);
|
|
2
|
+
import{r as e,t}from"./chunk-BHe-jwch.js";import{S as n,a as r,b as i,n as a,s as o,t as s,x as c,y as l}from"./index-D7D6ZRCW.js";import{a as u,i as d,n as f,o as p,r as m,s as h,t as g}from"./LanguageSwitcher-hFv9zl1u.js";import{n as _,t as v}from"./circle-check-X08qqy40.js";import{t as y}from"./check-Fm2iQO64.js";import{t as b}from"./chevron-down-BIXHKpnf.js";import{n as x,r as S,t as C}from"./CopyButton-BFCx6EPg.js";import{t as w}from"./copy-KD-LYJ0z.js";import{n as T,t as E}from"./lock-Di7P18Ts.js";import{t as D}from"./download-BXzoc-Y3.js";import{t as O}from"./file-text-CU-ETLz1.js";import{t as k}from"./grid-3x3-cWuhGQfz.js";import{t as A}from"./smartphone-DXKiqu57.js";import{t as j}from"./terminal-J0iyJTv2.js";import{t as M}from"./triangle-alert-BA0HP6zD.js";import{t as ee}from"./users-C-fz7pbn.js";import{t as te}from"./useAuth-CoS4r8yi.js";import"./stripeClient-CuZgvzca.js";import{a as ne,c as re,d as ie,f as N,i as ae,l as oe,o as se,s as ce,t as P,u as le}from"./apiClient-3WVm94VW.js";var F=h(`align-end-horizontal`,[[`rect`,{width:`6`,height:`16`,x:`4`,y:`2`,rx:`2`,key:`z5wdxg`}],[`rect`,{width:`6`,height:`9`,x:`14`,y:`9`,rx:`2`,key:`um7a8w`}],[`path`,{d:`M22 22H2`,key:`19qnx5`}]]),ue=h(`align-vertical-space-around`,[[`rect`,{width:`10`,height:`6`,x:`7`,y:`9`,rx:`2`,key:`b1zbii`}],[`path`,{d:`M22 20H2`,key:`1p1f7z`}],[`path`,{d:`M22 4H2`,key:`1b7qnq`}]]),de=h(`aperture`,[[`circle`,{cx:`12`,cy:`12`,r:`10`,key:`1mglay`}],[`path`,{d:`m14.31 8 5.74 9.94`,key:`1y6ab4`}],[`path`,{d:`M9.69 8h11.48`,key:`1wxppr`}],[`path`,{d:`m7.38 12 5.74-9.94`,key:`1grp0k`}],[`path`,{d:`M9.69 16 3.95 6.06`,key:`libnyf`}],[`path`,{d:`M14.31 16H2.83`,key:`x5fava`}],[`path`,{d:`m16.62 12-5.74 9.94`,key:`1vwawt`}]]),fe=h(`award`,[[`path`,{d:`m15.477 12.89 1.515 8.526a.5.5 0 0 1-.81.47l-3.58-2.687a1 1 0 0 0-1.197 0l-3.586 2.686a.5.5 0 0 1-.81-.469l1.514-8.526`,key:`1yiouv`}],[`circle`,{cx:`12`,cy:`8`,r:`6`,key:`1vp47v`}]]),pe=h(`box`,[[`path`,{d:`M21 8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73l7 4a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16Z`,key:`hh9hay`}],[`path`,{d:`m3.3 7 8.7 5 8.7-5`,key:`g66t2b`}],[`path`,{d:`M12 22V12`,key:`d0xqtd`}]]),me=h(`cloud-download`,[[`path`,{d:`M12 13v8l-4-4`,key:`1f5nwf`}],[`path`,{d:`m12 21 4-4`,key:`1lfcce`}],[`path`,{d:`M4.393 15.269A7 7 0 1 1 15.71 8h1.79a4.5 4.5 0 0 1 2.436 8.284`,key:`ui1hmy`}]]),he=h(`cloud-upload`,[[`path`,{d:`M12 13v8`,key:`1l5pq0`}],[`path`,{d:`M4 14.899A7 7 0 1 1 15.71 8h1.79a4.5 4.5 0 0 1 2.5 8.242`,key:`1pljnt`}],[`path`,{d:`m8 17 4-4 4 4`,key:`1quai1`}]]),I=h(`cloud`,[[`path`,{d:`M17.5 19H9a7 7 0 1 1 6.71-9h1.79a4.5 4.5 0 1 1 0 9Z`,key:`p7xjir`}]]),ge=h(`crown`,[[`path`,{d:`M11.562 3.266a.5.5 0 0 1 .876 0L15.39 8.87a1 1 0 0 0 1.516.294L21.183 5.5a.5.5 0 0 1 .798.519l-2.834 10.246a1 1 0 0 1-.956.734H5.81a1 1 0 0 1-.957-.734L2.02 6.02a.5.5 0 0 1 .798-.519l4.276 3.664a1 1 0 0 0 1.516-.294z`,key:`1vdc57`}],[`path`,{d:`M5 21h14`,key:`11awu3`}]]),_e=h(`database`,[[`ellipse`,{cx:`12`,cy:`5`,rx:`9`,ry:`3`,key:`msslwz`}],[`path`,{d:`M3 5V19A9 3 0 0 0 21 19V5`,key:`1wlel7`}],[`path`,{d:`M3 12A9 3 0 0 0 21 12`,key:`mv7ke4`}]]),ve=h(`file-braces`,[[`path`,{d:`M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z`,key:`1oefj6`}],[`path`,{d:`M14 2v5a1 1 0 0 0 1 1h5`,key:`wfsgrz`}],[`path`,{d:`M10 12a1 1 0 0 0-1 1v1a1 1 0 0 1-1 1 1 1 0 0 1 1 1v1a1 1 0 0 0 1 1`,key:`1oajmo`}],[`path`,{d:`M14 18a1 1 0 0 0 1-1v-1a1 1 0 0 1 1-1 1 1 0 0 1-1-1v-1a1 1 0 0 0-1-1`,key:`mpwhp6`}]]),ye=h(`hard-drive`,[[`path`,{d:`M10 16h.01`,key:`1bzywj`}],[`path`,{d:`M2.212 11.577a2 2 0 0 0-.212.896V18a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2v-5.527a2 2 0 0 0-.212-.896L18.55 5.11A2 2 0 0 0 16.76 4H7.24a2 2 0 0 0-1.79 1.11z`,key:`18tbho`}],[`path`,{d:`M21.946 12.013H2.054`,key:`zqlbp7`}],[`path`,{d:`M6 16h.01`,key:`1pmjb7`}]]),be=h(`image`,[[`rect`,{width:`18`,height:`18`,x:`3`,y:`3`,rx:`2`,ry:`2`,key:`1m3agn`}],[`circle`,{cx:`9`,cy:`9`,r:`2`,key:`af1f0g`}],[`path`,{d:`m21 15-3.086-3.086a2 2 0 0 0-2.828 0L6 21`,key:`1xmnt7`}]]),xe=h(`info`,[[`circle`,{cx:`12`,cy:`12`,r:`10`,key:`1mglay`}],[`path`,{d:`M12 16v-4`,key:`1dtifu`}],[`path`,{d:`M12 8h.01`,key:`e9boi3`}]]),Se=h(`layout-template`,[[`rect`,{width:`18`,height:`7`,x:`3`,y:`3`,rx:`1`,key:`f1a2em`}],[`rect`,{width:`9`,height:`7`,x:`3`,y:`14`,rx:`1`,key:`jqznyg`}],[`rect`,{width:`5`,height:`7`,x:`16`,y:`14`,rx:`1`,key:`q5h2i8`}]]),Ce=h(`loader-circle`,[[`path`,{d:`M21 12a9 9 0 1 1-6.219-8.56`,key:`13zald`}]]),we=h(`log-out`,[[`path`,{d:`m16 17 5-5-5-5`,key:`1bji2h`}],[`path`,{d:`M21 12H9`,key:`dn1m92`}],[`path`,{d:`M9 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h4`,key:`1uf3rs`}]]),Te=h(`monitor`,[[`rect`,{width:`20`,height:`14`,x:`2`,y:`3`,rx:`2`,key:`48i651`}],[`line`,{x1:`8`,x2:`16`,y1:`21`,y2:`21`,key:`1svkeh`}],[`line`,{x1:`12`,x2:`12`,y1:`17`,y2:`21`,key:`vw1qmm`}]]),Ee=h(`paint-bucket`,[[`path`,{d:`M11 7 6 2`,key:`1jwth8`}],[`path`,{d:`M18.992 12H2.041`,key:`xw1gg`}],[`path`,{d:`M21.145 18.38A3.34 3.34 0 0 1 20 16.5a3.3 3.3 0 0 1-1.145 1.88c-.575.46-.855 1.02-.855 1.595A2 2 0 0 0 20 22a2 2 0 0 0 2-2.025c0-.58-.285-1.13-.855-1.595`,key:`1nkol4`}],[`path`,{d:`m8.5 4.5 2.148-2.148a1.205 1.205 0 0 1 1.704 0l7.296 7.296a1.205 1.205 0 0 1 0 1.704l-7.592 7.592a3.615 3.615 0 0 1-5.112 0l-3.888-3.888a3.615 3.615 0 0 1 0-5.112L5.67 7.33`,key:`1nk1rd`}]]),De=h(`pen-line`,[[`path`,{d:`M13 21h8`,key:`1jsn5i`}],[`path`,{d:`M21.174 6.812a1 1 0 0 0-3.986-3.987L3.842 16.174a2 2 0 0 0-.5.83l-1.321 4.352a.5.5 0 0 0 .623.622l4.353-1.32a2 2 0 0 0 .83-.497z`,key:`1a8usu`}]]),Oe=h(`play`,[[`path`,{d:`M5 5a2 2 0 0 1 3.008-1.728l11.997 6.998a2 2 0 0 1 .003 3.458l-12 7A2 2 0 0 1 5 19z`,key:`10ikf1`}]]),ke=h(`plus`,[[`path`,{d:`M5 12h14`,key:`1ays0h`}],[`path`,{d:`M12 5v14`,key:`s699le`}]]),Ae=h(`refresh-cw`,[[`path`,{d:`M3 12a9 9 0 0 1 9-9 9.75 9.75 0 0 1 6.74 2.74L21 8`,key:`v9h5vc`}],[`path`,{d:`M21 3v5h-5`,key:`1q7to0`}],[`path`,{d:`M21 12a9 9 0 0 1-9 9 9.75 9.75 0 0 1-6.74-2.74L3 16`,key:`3uifl3`}],[`path`,{d:`M8 16H3v5`,key:`1cv678`}]]),je=h(`rotate-ccw`,[[`path`,{d:`M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8`,key:`1357e3`}],[`path`,{d:`M3 3v5h5`,key:`1xhq8a`}]]),Me=h(`rotate-cw`,[[`path`,{d:`M21 12a9 9 0 1 1-9-9c2.52 0 4.93 1 6.74 2.74L21 8`,key:`1p45f6`}],[`path`,{d:`M21 3v5h-5`,key:`1q7to0`}]]),Ne=h(`save`,[[`path`,{d:`M15.2 3a2 2 0 0 1 1.4.6l3.8 3.8a2 2 0 0 1 .6 1.4V19a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2z`,key:`1c8476`}],[`path`,{d:`M17 21v-7a1 1 0 0 0-1-1H8a1 1 0 0 0-1 1v7`,key:`1ydtos`}],[`path`,{d:`M7 3v4a1 1 0 0 0 1 1h7`,key:`t51u73`}]]),Pe=h(`search`,[[`path`,{d:`m21 21-4.34-4.34`,key:`14j7rj`}],[`circle`,{cx:`11`,cy:`11`,r:`8`,key:`4ej97u`}]]),Fe=h(`settings`,[[`path`,{d:`M9.671 4.136a2.34 2.34 0 0 1 4.659 0 2.34 2.34 0 0 0 3.319 1.915 2.34 2.34 0 0 1 2.33 4.033 2.34 2.34 0 0 0 0 3.831 2.34 2.34 0 0 1-2.33 4.033 2.34 2.34 0 0 0-3.319 1.915 2.34 2.34 0 0 1-4.659 0 2.34 2.34 0 0 0-3.32-1.915 2.34 2.34 0 0 1-2.33-4.033 2.34 2.34 0 0 0 0-3.831A2.34 2.34 0 0 1 6.35 6.051a2.34 2.34 0 0 0 3.319-1.915`,key:`1i5ecw`}],[`circle`,{cx:`12`,cy:`12`,r:`3`,key:`1v7zrd`}]]),Ie=h(`share-2`,[[`circle`,{cx:`18`,cy:`5`,r:`3`,key:`gq8acd`}],[`circle`,{cx:`6`,cy:`12`,r:`3`,key:`w7nqdw`}],[`circle`,{cx:`18`,cy:`19`,r:`3`,key:`1xt0gg`}],[`line`,{x1:`8.59`,x2:`15.42`,y1:`13.51`,y2:`17.49`,key:`47mynk`}],[`line`,{x1:`15.41`,x2:`8.59`,y1:`6.51`,y2:`10.49`,key:`1n3mei`}]]),Le=h(`sparkles`,[[`path`,{d:`M11.017 2.814a1 1 0 0 1 1.966 0l1.051 5.558a2 2 0 0 0 1.594 1.594l5.558 1.051a1 1 0 0 1 0 1.966l-5.558 1.051a2 2 0 0 0-1.594 1.594l-1.051 5.558a1 1 0 0 1-1.966 0l-1.051-5.558a2 2 0 0 0-1.594-1.594l-5.558-1.051a1 1 0 0 1 0-1.966l5.558-1.051a2 2 0 0 0 1.594-1.594z`,key:`1s2grr`}],[`path`,{d:`M20 2v4`,key:`1rf3ol`}],[`path`,{d:`M22 4h-4`,key:`gwowj6`}],[`circle`,{cx:`4`,cy:`20`,r:`2`,key:`6kqj1y`}]]),Re=h(`star`,[[`path`,{d:`M11.525 2.295a.53.53 0 0 1 .95 0l2.31 4.679a2.123 2.123 0 0 0 1.595 1.16l5.166.756a.53.53 0 0 1 .294.904l-3.736 3.638a2.123 2.123 0 0 0-.611 1.878l.882 5.14a.53.53 0 0 1-.771.56l-4.618-2.428a2.122 2.122 0 0 0-1.973 0L6.396 21.01a.53.53 0 0 1-.77-.56l.881-5.139a2.122 2.122 0 0 0-.611-1.879L2.16 9.795a.53.53 0 0 1 .294-.906l5.165-.755a2.122 2.122 0 0 0 1.597-1.16z`,key:`r04s7s`}]]),ze=h(`trash-2`,[[`path`,{d:`M10 11v6`,key:`nco0om`}],[`path`,{d:`M14 11v6`,key:`outv1u`}],[`path`,{d:`M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6`,key:`miytrc`}],[`path`,{d:`M3 6h18`,key:`d0wm0j`}],[`path`,{d:`M8 6V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2`,key:`e791ji`}]]),Be=h(`upload`,[[`path`,{d:`M12 3v12`,key:`1x0j5s`}],[`path`,{d:`m17 8-5-5-5 5`,key:`7q97r8`}],[`path`,{d:`M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4`,key:`ih7n3h`}]]),Ve=h(`watch`,[[`path`,{d:`M12 10v2.2l1.6 1`,key:`n3r21l`}],[`path`,{d:`m16.13 7.66-.81-4.05a2 2 0 0 0-2-1.61h-2.68a2 2 0 0 0-2 1.61l-.78 4.05`,key:`18k57s`}],[`path`,{d:`m7.88 16.36.8 4a2 2 0 0 0 2 1.61h2.72a2 2 0 0 0 2-1.61l.81-4.05`,key:`16ny36`}],[`circle`,{cx:`12`,cy:`12`,r:`6`,key:`1vlfrh`}]]),He=h(`zoom-in`,[[`circle`,{cx:`11`,cy:`11`,r:`8`,key:`4ej97u`}],[`line`,{x1:`21`,x2:`16.65`,y1:`21`,y2:`16.65`,key:`13gj7c`}],[`line`,{x1:`11`,x2:`11`,y1:`8`,y2:`14`,key:`1vmskp`}],[`line`,{x1:`8`,x2:`14`,y1:`11`,y2:`11`,key:`durymu`}]]),L=e(n(),1),R=i(),Ue=({user:e,isPro:t,onUpgrade:n,onManageSubscription:r,onSignOut:i,isPortalLoading:a})=>{let{t:o}=c(),[s,l]=(0,L.useState)(!1),u=(0,L.useRef)(null);(0,L.useEffect)(()=>{let e=e=>{u.current&&!u.current.contains(e.target)&&l(!1)};return document.addEventListener(`mousedown`,e),()=>document.removeEventListener(`mousedown`,e)},[]);let d=(e?.email||e?.username||`?`).charAt(0).toUpperCase();return(0,R.jsxs)(`div`,{className:`relative`,ref:u,children:[(0,R.jsxs)(`button`,{onClick:()=>l(!s),className:`flex items-center gap-2 p-1 pl-2 pr-1 rounded-full border border-slate-200 hover:bg-slate-50 transition-colors`,title:e?.email||e?.username,children:[(0,R.jsx)(`div`,{className:`w-8 h-8 rounded-full bg-slate-800 text-white flex items-center justify-center text-sm font-bold`,children:d}),(0,R.jsx)(b,{size:14,className:`text-slate-400 mr-1`})]}),s&&(0,R.jsxs)(`div`,{className:`absolute right-0 top-full mt-2 w-64 bg-white rounded-xl shadow-xl border border-slate-100 overflow-hidden z-50 animate-in fade-in slide-in-from-top-2 duration-200`,children:[(0,R.jsxs)(`div`,{className:`px-4 py-3 border-b border-slate-100 bg-slate-50/50`,children:[(0,R.jsx)(`p`,{className:`text-xs text-slate-500`,children:o(`app.userMenu.signedInAs`)}),(0,R.jsx)(`p`,{className:`text-sm font-bold text-slate-800 truncate`,title:e?.email,children:e?.email||e?.username})]}),(0,R.jsxs)(`div`,{className:`p-1`,children:[!t&&(0,R.jsxs)(`button`,{onClick:()=>{l(!1),n?.()},className:`w-full flex items-center gap-2 px-3 py-2 text-sm text-amber-700 hover:bg-amber-50 rounded-lg transition-colors`,children:[(0,R.jsx)(ge,{size:16,className:`text-amber-500`}),o(`app.header.upgrade`)]}),t&&(0,R.jsxs)(`button`,{onClick:()=>{l(!1),r()},disabled:a,className:`w-full flex items-center gap-2 px-3 py-2 text-sm text-slate-700 hover:bg-slate-50 rounded-lg transition-colors disabled:opacity-50`,children:[(0,R.jsx)(T,{size:16,className:`text-slate-400`}),o(`app.header.manage`)]}),t&&(0,R.jsxs)(`p`,{className:`px-3 pb-2 text-[11px] text-slate-500 leading-snug`,children:[o(`consent.billing`),` `,(0,R.jsx)(`a`,{href:`/terms`,className:`underline hover:text-slate-700`,target:`_blank`,rel:`noreferrer`,children:o(`landing.footer.terms`)}),` / `,(0,R.jsx)(`a`,{href:`/privacy`,className:`underline hover:text-slate-700`,target:`_blank`,rel:`noreferrer`,children:o(`landing.footer.privacy`)}),` / `,(0,R.jsx)(`a`,{href:`/legal`,className:`underline hover:text-slate-700`,target:`_blank`,rel:`noreferrer`,children:o(`landing.footer.legal`)})]}),(0,R.jsxs)(`button`,{onClick:()=>{l(!1),i()},className:`w-full flex items-center gap-2 px-3 py-2 text-sm text-red-600 hover:bg-red-50 rounded-lg transition-colors`,children:[(0,R.jsx)(we,{size:16}),o(`auth.actions.signOut`)]})]})]})]})},z={iphone69:{name:`iPhone 6.9" (16 Pro Max)`,storeLabel:`6.9-inch Display`,modelLabel:`iPhone 16 Pro Max`,width:1290,height:2796,type:`iphone-island`,radius:55,bezel:8,group:`iPhone`},iphone65:{name:`iPhone 6.5" (XS Max)`,storeLabel:`6.5-inch Display`,modelLabel:`iPhone XS Max`,width:1284,height:2778,type:`iphone-notch`,radius:50,bezel:10,group:`iPhone`},iphone63:{name:`iPhone 6.3" (16 Pro)`,storeLabel:`6.3-inch Display`,modelLabel:`iPhone 16 Pro`,width:1179,height:2556,type:`iphone-island`,radius:55,bezel:8,group:`iPhone`},iphone61:{name:`iPhone 13 Pro`,storeLabel:`6.1-inch Display`,modelLabel:`iPhone 13 Pro`,width:1170,height:2532,type:`iphone-notch`,radius:48,bezel:10,group:`iPhone`},iphone55:{name:`iPhone 5.5" (8 Plus)`,storeLabel:`5.5-inch Display`,modelLabel:`iPhone 8 Plus`,width:1242,height:2208,type:`iphone-classic-round`,radius:36,bezel:4,group:`iPhone Classic`},iphone47:{name:`iPhone 4.7" (SE)`,storeLabel:`4.7-inch Display`,modelLabel:`iPhone SE`,width:750,height:1334,type:`iphone-classic-round`,radius:30,bezel:4,group:`iPhone Classic`},ipad13:{name:`iPad Pro 13" (M4)`,storeLabel:`13-inch Display`,modelLabel:`iPad Pro (M4)`,width:2064,height:2752,type:`ipad-modern`,radius:24,bezel:12,group:`iPad`},ipad129old:{name:`iPad Pro 12.9" (2nd)`,storeLabel:`12.9-inch Display`,modelLabel:`iPad Pro (2nd gen)`,width:2048,height:2732,type:`ipad-classic`,radius:18,bezel:5,group:`iPad`},ipad11:{name:`iPad 11" (Pro/Air)`,storeLabel:`11-inch Display`,modelLabel:`iPad Pro/Air`,width:1488,height:2266,type:`ipad-modern`,radius:20,bezel:12,group:`iPad`},watch:{name:`Apple Watch`,storeLabel:`Apple Watch`,modelLabel:``,width:422,height:514,type:`watch`,radius:40,bezel:6,group:`Watch`},pixel8pro:{name:`Pixel 8 Pro`,storeLabel:`Android Phone`,modelLabel:`Pixel 8 Pro`,width:1344,height:2992,type:`android-punchhole`,radius:42,bezel:8,group:`Android`},pixel8:{name:`Pixel 8`,storeLabel:`Android Phone`,modelLabel:`Pixel 8`,width:1080,height:2400,type:`android-punchhole`,radius:48,bezel:9,group:`Android`},galaxy24ultra:{name:`Galaxy S24 Ultra`,storeLabel:`Android Phone`,modelLabel:`Galaxy S24 Ultra`,width:1440,height:3120,type:`android-punchhole`,radius:12,bezel:6,group:`Android`},pixeltablet:{name:`Pixel Tablet`,storeLabel:`Android Tablet`,modelLabel:`Pixel Tablet`,width:2560,height:1600,type:`android-tablet`,radius:28,bezel:16,group:`Android Tablet`}},We={iPhone:[`iphone69`,`iphone65`,`iphone63`,`iphone61`],"iPhone Classic":[`iphone55`,`iphone47`],iPad:[`ipad13`,`ipad129old`,`ipad11`],Android:[`pixel8pro`,`pixel8`,`galaxy24ultra`],"Android Tablet":[`pixeltablet`],Watch:[`watch`]},Ge={black:`#1a1a1a`,silver:`#e3e3e3`,titanium:`#8a8a8a`,blue:`#2f3c4e`,gold:`#f9e5c9`},Ke=[`#ef4444`,`#f97316`,`#f59e0b`,`#84cc16`,`#10b981`,`#06b6d4`,`#3b82f6`,`#6366f1`,`#8b5cf6`,`#d946ef`,`#f43f5e`,`#0f172a`,`#ffffff`],qe=[{id:`minimal_dark`,name:`Minimal Dark`,thumbnail:`/templates/minimal_dark.png`,tags:{layout:`Top`,font:`Inter`,bg:`Dark`},settings:{bgType:`solid`,bgColor:`#0f172a`,textColor:`#f8fafc`,layoutMode:`top`,topSpacing:15,deviceScale:.9,frameColor:`titanium`,selectedFont:`Inter`,badgeType:`download`}},{id:`clean_blue`,name:`Clean Blue`,thumbnail:`/templates/clean_blue.png`,tags:{layout:`Top`,font:`Inter`,bg:`Blue`},settings:{bgType:`solid`,bgColor:`#eff6ff`,textColor:`#1e3a8a`,layoutMode:`top`,topSpacing:10,deviceScale:1,frameColor:`blue`,selectedFont:`Inter`,badgeType:`stars`}},{id:`vibrant_gradient`,name:`Vibrant Pop`,thumbnail:`/templates/vibrant_gradient.png`,tags:{layout:`Bottom`,font:`Montserrat`,bg:`Gradient`},settings:{bgType:`gradient`,gradientStart:`#f472b6`,gradientEnd:`#fdba74`,gradientAngle:135,textColor:`#ffffff`,layoutMode:`bottom`,topSpacing:8,deviceScale:1.1,frameColor:`silver`,selectedFont:`Montserrat`,badgeType:`award`}},{id:`split_modern`,name:`Split Modern`,thumbnail:`/templates/split_modern.png`,tags:{layout:`Split`,font:`Roboto`,bg:`Light`},settings:{bgType:`solid`,bgColor:`#f1f5f9`,textColor:`#334155`,layoutMode:`split`,topSpacing:0,deviceScale:1,frameColor:`black`,selectedFont:`Roboto`,badgeType:`googleplay`}}],Je={"iphone-island":{notch:{type:`dynamicIsland`,width:`30%`,height:`3.5%`,top:`2.5%`,borderRadius:`20px`}},"iphone-notch":{notch:{type:`notch`,width:`40%`,height:`3.5%`,top:`10px`,borderRadius:`0 0 20px 20px`}},"iphone-classic-round":{homeButton:{bottom:`5%`,width:`12%`,height:`12%`,borderWidth:`2px`}},"android-punchhole":{notch:{type:`punchhole`,width:`16px`,height:`16px`,top:`15px`}},"ipad-modern":{},"ipad-classic":{homeButton:{bottom:`5%`,width:`4%`,height:`4%`,borderWidth:`1px`}},"android-tablet":{},watch:{}},Ye=({deviceId:e,orientation:t,deviceScale:n,topSpacing:r,layoutMode:i,frameColor:a,isBatchMode:o=!1,hasLogo:s=!1,hasBadge:c=!1})=>{let l=z[e];if(!l)return{};let u=l.type===`watch`,d=i;o&&(l.group?.includes(`iPad`)||l.group?.includes(`Tablet`))&&(d=`split`);let f=l.width,p=l.height;t===`landscape`&&(f=l.height,p=l.width);let m=t===`landscape`?l.height/3:l.width/3,h=t===`landscape`?l.width/3:l.height/3,g=l.group===`Android Tablet`||l.group===`iPad`,_=l.group===`iPhone Classic`,v=s&&c,y=1,b=1;v&&g&&(d===`split`?(y=.9,b=.9):(y=.85,b=.85));let x=(d===`split`?.45:u?.58:t===`landscape`?g?.68:_?.6:.65:g?.76:_?.7:.8)*y,S=(u?.46:t===`landscape`?g?.52:_?.42:.48:g?.62:_?.55:.65)*b,C=n*Math.min(p*S/h,f*x/m),w=m*C,T=h*C,E=`5%`,D=`5%`;d!==`split`&&(d===`bottom`?(D=`${r/100*p}px`,E=`${p*.05}px`):(E=`${r/100*p}px`,D=`${p*.05}px`));let O={width:`${f}px`,height:`${p}px`,paddingTop:E,paddingBottom:D,paddingLeft:`5%`,paddingRight:`5%`,display:`flex`,flexDirection:d===`split`?`row`:d===`bottom`?`column-reverse`:`column`,alignItems:`center`,justifyContent:d===`split`?`center`:`flex-start`,gap:d===`split`?`5%`:`${p*.03}px`},k={width:d===`split`?void 0:w,height:T},A={width:m,height:h,transform:`scale(${C})`,transformOrigin:`center center`};return{effectiveLayoutMode:d,containerStyle:O,deviceWrapperStyle:k,deviceInnerStyle:A,canvasWidth:f,canvasHeight:p,frameColor:a}},Xe=`system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', Arial, sans-serif`,Ze=[{script:`arabic`,pattern:/[\u0600-\u06FF\u0750-\u077F\u08A0-\u08FF\uFB50-\uFDFF\uFE70-\uFEFF]/},{script:`thai`,pattern:/[\u0E00-\u0E7F]/},{script:`cjk`,pattern:/[\u3040-\u30FF\u3400-\u4DBF\u4E00-\u9FFF\uF900-\uFAFF]/},{script:`hangul`,pattern:/[\u1100-\u11FF\uAC00-\uD7AF]/}],Qe={default:{direction:`ltr`,visualScale:1,maxGrowScale:1.12,minFitRatio:.3,widthSafetyFactor:1,fallbackStack:Xe},arabic:{direction:`rtl`,visualScale:1.12,maxGrowScale:1.14,minFitRatio:.34,widthSafetyFactor:1.03,fallbackStack:`'Noto Sans Arabic', 'Segoe UI', Tahoma, 'Arial Unicode MS', sans-serif`},thai:{direction:`ltr`,visualScale:1.15,maxGrowScale:1.16,minFitRatio:.38,widthSafetyFactor:1.04,fallbackStack:`'Noto Sans Thai', 'Leelawadee UI', Tahoma, 'Arial Unicode MS', sans-serif`},cjk:{direction:`ltr`,visualScale:1,maxGrowScale:1.12,minFitRatio:.3,widthSafetyFactor:1,fallbackStack:`'Hiragino Sans', 'PingFang SC', 'Microsoft YaHei UI', 'Noto Sans CJK JP', sans-serif`},hangul:{direction:`ltr`,visualScale:1,maxGrowScale:1.12,minFitRatio:.3,widthSafetyFactor:1,fallbackStack:`'Apple SD Gothic Neo', 'Malgun Gothic', 'Noto Sans KR', sans-serif`}},$e=(e,t=null)=>{let n=typeof e==`number`?e:Number(e);return Number.isFinite(n)?n:t},et=(e,t,n)=>Number.isFinite(e)?Math.max(t,Math.min(n,e)):t,tt=e=>Math.round(e*1e3)/1e3,nt=e=>Qe[e]||Qe.default,rt=e=>Array.from(String(e||``)).length,it=e=>{let t=String(e||``);return t&&Ze.find(({pattern:e})=>e.test(t))?.script||`default`},at=(e,t=``)=>{let n=String(t||``),r=nt(Object.prototype.hasOwnProperty.call(Qe,n)?n:it(n)).fallbackStack||``,i=[String(e||``).trim(),r,Xe].filter(Boolean),a=[],o=new Set;return i.forEach(e=>{let t=e.toLowerCase();o.has(t)||(o.add(t),a.push(e))}),a.join(`, `)},ot=(e,t)=>{let n=String(e||``).trim().toLowerCase();if(!n||n===`normal`)return 0;let r=parseFloat(n);if(!Number.isFinite(r))return 0;if(n.endsWith(`em`))return r*t;if(n.endsWith(`rem`)){if(typeof window<`u`&&typeof document<`u`){let e=parseFloat(window.getComputedStyle(document.documentElement).fontSize);if(Number.isFinite(e))return r*e}return r*16}return r},st=(e,t)=>{let n=String(t||``).trim().toLowerCase();return(e===`arabic`||e===`thai`)&&n===`-0.02em`?`-0.01em`:t},ct=null,lt=()=>typeof document>`u`?null:(ct||=document.createElement(`canvas`),ct.getContext(`2d`)),ut=({text:e,fontSize:t,isBold:n,letterSpacingPx:r})=>{let i=n?.62:.54,a=n?1:.92,o=Array.from(String(e||``));return o.reduce((e,t)=>e+(/[ -~]/.test(t)?i:a),0)*t+Math.max(o.length-1,0)*r},B=({text:e,fontSize:t,fontFamily:n,fontWeight:r,isBold:i,letterSpacingPx:a})=>{let o=String(e||``);if(!o)return 0;let s=lt();return s?(s.font=`${r} ${t}px ${n}`,s.measureText(o).width+Math.max(rt(o)-1,0)*a):ut({text:o,fontSize:t,isBold:i,letterSpacingPx:a})},dt=({text:e,intendedSize:t,maxWidth:n,isBold:r=!1,fontFamily:i=``,fontWeight:a,letterSpacing:o=`normal`,minFontSize:s,maxIterations:c=10,allowGrow:l=!0,maxGrowScale:u,minFitRatio:d,widthSafetyFactor:f,visualScale:p}={})=>{let m=String(e||``),h=it(m),g=nt(h),_=at(i,h),v=st(h,o),y=g.direction||`ltr`,b=$e(t,0),x=$e(n,0);if(!b||b<=0||!x||x<=0||!m)return{fontSize:b||0,fontFamily:_,direction:y,letterSpacing:String(v||`normal`),script:h};let S=$e(a,r?700:500),C=ot(v,b),w=$e(p,g.visualScale||1),T=et($e(u,g.maxGrowScale||1.12),1,2),E=l?b*T:b,D=Math.min(b*w,E),O=et($e(d,g.minFitRatio??.3),.05,1),k=x/et($e(f,g.widthSafetyFactor??1),1,1.2),A=b*O,j=et(Math.max($e(s,Math.max(8,A)),A),1,D),M=e=>B({text:m,fontSize:e,fontFamily:_,fontWeight:S,isBold:r,letterSpacingPx:C});if(M(D)<=k)return{fontSize:tt(D),fontFamily:_,direction:y,letterSpacing:String(v||`normal`),script:h};if(M(j)>=k||j>=D)return{fontSize:tt(j),fontFamily:_,direction:y,letterSpacing:String(v||`normal`),script:h};let ee=j,te=D,ne=j,re=et(Math.trunc(c),1,20);for(let e=0;e<re;e+=1){let e=(ee+te)/2;M(e)<=k?(ne=e,ee=e):te=e}return{fontSize:tt(ne),fontFamily:_,direction:y,letterSpacing:String(v||`normal`),script:h}},ft=e=>{if(!e||typeof e!=`string`||!e.startsWith(`#`))return 255;let t=e.substring(1);if(t.length===3){let e=parseInt(t[0]+t[0],16),n=parseInt(t[1]+t[1],16),r=parseInt(t[2]+t[2],16);return(e*299+n*587+r*114)/1e3}if(t.length===6){let e=parseInt(t.substring(0,2),16),n=parseInt(t.substring(2,4),16),r=parseInt(t.substring(4,6),16);return(e*299+n*587+r*114)/1e3}return 255},pt=({id:e,deviceId:t,orientation:n,deviceScale:r,topSpacing:i,layoutMode:a,bgType:o,bgColor:s,gradientStart:l,gradientEnd:u,gradientAngle:d,bgImage:f,bgBlur:p,bgOpacity:m,headerText:h,subHeaderText:g,textColor:_,headerSize:v,subHeaderSize:y,selectedFont:b,badgeType:x,screenshot:S,logoImage:C,frameColor:w,isBatchMode:T=!1,isPro:E=!1})=>{let{t:D}=c(),O=z[t],k=O.type===`watch`,j=k?`portrait`:n,{effectiveLayoutMode:M,containerStyle:ee,deviceWrapperStyle:te,deviceInnerStyle:ne,canvasWidth:re,canvasHeight:ie}=Ye({deviceId:t,orientation:j,deviceScale:r,topSpacing:i,layoutMode:a,frameColor:w,isBatchMode:T,hasLogo:!!C,hasBadge:x&&x!==`none`}),N=()=>{let e={};return o===`image`&&f?(e.backgroundImage=`url(${f})`,e.backgroundSize=`cover`,e.backgroundPosition=`center`):o===`transparent`?(e.backgroundImage=`url("https://www.transparenttextures.com/patterns/checkerboard.png")`,e.backgroundColor=`transparent`):o===`gradient`?e.backgroundImage=`linear-gradient(${d}deg, ${l}, ${u})`:o===`solid`&&(e.backgroundColor=s),e},ae=(o===`solid`?ft(s)<128:o===`gradient`?ft(l)<128:o===`image`)?{color:`rgba(255, 255, 255, 0.1)`}:{color:`#0f172a`,opacity:.05},oe=Je[O.type]||{},se=(e,t,n=8)=>{if(!e)return t;let r=e.split(``).reduce((e,t)=>e+(t.match(/[ -~]/)?.8:1.8),0);if(r<=n)return t;let i=n/r;return t*Math.max(.2,i)},ce=M===`split`?re*.45:re*.9,P=dt({text:h,intendedSize:v,maxWidth:ce,isBold:!0,fontFamily:b,fontWeight:700,letterSpacing:`-0.02em`,minFontSize:12,allowGrow:!0}),le=dt({text:g,intendedSize:y,maxWidth:ce,isBold:!1,fontFamily:b,fontWeight:500,letterSpacing:`normal`,minFontSize:10,allowGrow:!0}),F=Math.min(re,ie),ue=F*.15,de=F*.05,pe=k?.14:n===`landscape`?.08:.22,he=ie,I=C?M===`split`?he*pe:M===`top`?Math.min(ue+de,he*.12):0:0,ge=C&&M===`split`?I:0,_e=C&&M===`top`?I:0,ve=h?v*1.1:0,ye=g?y*1.3:0,be=x===`none`?0:F*(k||n===`landscape`?.08:.12),xe=h&&g?16:0,Se=M===`split`?void 0:ve+ye+be+xe,Ce=()=>{if(x===`none`)return null;let e=()=>({lineHeight:1,display:`block`}),t={display:`block`,transform:`translateY(-1px)`},n={padding:`${F*.018}px ${F*.038}px`,borderRadius:`${F*.018}px`,backgroundColor:`#fff`,border:`1px solid rgba(15,23,42,0.08)`,boxShadow:`none`,filter:`none`,display:`flex`,alignItems:`center`,justifyContent:`center`,gap:`${F*.014}px`,marginTop:`${F*.015}px`,cursor:`default`,lineHeight:1,width:`fit-content`,maxWidth:`${F*.9}px`,overflow:`hidden`},r=F*.045,i=F*.028,a={display:`block`,minWidth:0,whiteSpace:`nowrap`,overflow:`hidden`,textOverflow:`ellipsis`,textAlign:`left`},o={minWidth:0,flex:1,display:`flex`,flexDirection:`column`,justifyContent:`center`};return(0,R.jsx)(`div`,{style:{width:`100%`,display:`flex`,justifyContent:M===`split`?`flex-start`:`center`,alignItems:`center`},children:(()=>{switch(x){case`stars`:return(0,R.jsxs)(`div`,{"data-badge":`true`,style:{...n,color:`#f59e0b`,backgroundColor:`#fff`,border:`1px solid rgba(245,158,11,0.15)`},children:[(0,R.jsx)(`div`,{className:`flex gap-1 items-center h-full shrink-0`,children:[1,2,3,4,5].map(e=>(0,R.jsx)(Re,{size:r,fill:`#f59e0b`,stroke:`#f59e0b`,style:t},e))}),(0,R.jsx)(`span`,{"data-badge-score":`true`,style:{fontSize:i,fontWeight:800,color:`#111827`,letterSpacing:`0`,whiteSpace:`nowrap`,...e(),transform:`translateY(1px)`},children:`5.0`})]});case`award`:{let s=D(`app.canvas.badges.award`);return(0,R.jsxs)(`div`,{"data-badge":`true`,style:{...n,color:`#ef4444`,backgroundColor:`#fef2f2`,border:`1px solid rgba(239,68,68,0.25)`},children:[(0,R.jsx)(fe,{size:r,style:t,className:`shrink-0`}),(0,R.jsx)(`div`,{style:o,"data-badge-text":`true`,children:(0,R.jsx)(`span`,{style:{...a,fontSize:se(s,i,8),fontWeight:800,color:`#7f1d1d`,letterSpacing:`0`,...e()},children:s})})]})}case`download`:{let s=D(`app.canvas.badges.downloadLine1`),c=D(`app.canvas.badges.downloadLine2`);return(0,R.jsxs)(`div`,{"data-badge":`true`,style:{...n,backgroundColor:`#000`,color:`#fff`,border:`1px solid rgba(255,255,255,0.12)`,boxShadow:`none`},children:[(0,R.jsx)(me,{size:r,style:t,className:`shrink-0`}),(0,R.jsxs)(`div`,{style:o,"data-badge-text":`true`,children:[(0,R.jsx)(`span`,{style:{...a,fontSize:se(s,i*.6,12),opacity:.8,...e()},"data-badge-line":`1`,children:s}),(0,R.jsx)(`span`,{style:{...a,fontSize:se(c,i,8),fontWeight:800,letterSpacing:`0`,...e()},"data-badge-line":`2`,children:c})]})]})}case`googleplay`:{let s=D(`app.canvas.badges.googleLine1`),c=D(`app.canvas.badges.googleLine2`);return(0,R.jsxs)(`div`,{"data-badge":`true`,style:{...n,backgroundColor:`#000`,color:`#fff`,border:`1px solid rgba(255,255,255,0.12)`,boxShadow:`none`},children:[(0,R.jsx)(Oe,{size:r,fill:`#fff`,style:t,className:`shrink-0`}),(0,R.jsxs)(`div`,{style:o,"data-badge-text":`true`,children:[(0,R.jsx)(`span`,{style:{...a,fontSize:se(s,i*.6,12),opacity:.8,...e()},"data-badge-line":`1`,children:s}),(0,R.jsx)(`span`,{style:{...a,fontSize:se(c,i,8),fontWeight:800,letterSpacing:`0`,...e()},"data-badge-line":`2`,children:c})]})]})}default:return null}})()})},we=()=>{let e=oe.notch;if(!e)return null;let t=j===`landscape`,n={position:`absolute`,backgroundColor:`black`,zIndex:20};if(e.type===`dynamicIsland`){let r=t?{left:e.top,top:`50%`,transform:`translateY(-50%)`,width:e.height,height:e.width,borderRadius:e.borderRadius}:{top:e.top,left:`50%`,transform:`translateX(-50%)`,width:e.width,height:e.height,borderRadius:e.borderRadius};return(0,R.jsx)(`div`,{style:{...n,...r},className:`flex items-center justify-end pr-2`,children:(0,R.jsx)(`div`,{className:`absolute rounded-full`,style:{backgroundColor:`#1a1a1a`,...t?{bottom:`20%`,left:`50%`,transform:`translateX(-50%)`,width:`30%`,height:`30%`}:{right:`20%`,top:`50%`,transform:`translateY(-50%)`,width:`12px`,height:`12px`}},children:(0,R.jsx)(`div`,{className:`absolute top-1 left-1 w-1 h-1 rounded-full blur-[1px]`,style:{backgroundColor:`rgba(255, 255, 255, 0.2)`}})})})}if(e.type===`notch`){let r=t?{left:e.top,top:`50%`,transform:`translateY(-50%)`,width:e.height,height:e.width,borderTopRightRadius:`16px`,borderBottomRightRadius:`16px`,borderTopLeftRadius:`0`,borderBottomLeftRadius:`0`}:{top:e.top,left:`50%`,transform:`translateX(-50%)`,width:e.width,height:e.height,borderBottomLeftRadius:`16px`,borderBottomRightRadius:`16px`,borderTopLeftRadius:`0`,borderTopRightRadius:`0`};return(0,R.jsx)(`div`,{style:{...n,...r}})}if(e.type===`punchhole`){let r=t?{left:e.top,top:`50%`,transform:`translateY(-50%)`,width:e.width,height:e.height,borderRadius:`50%`}:{top:e.top,left:`50%`,transform:`translateX(-50%)`,width:e.width,height:e.height,borderRadius:`50%`};return(0,R.jsx)(`div`,{style:{...n,...r}})}return null},Te=()=>{let e=oe.homeButton;if(!e)return null;let t=j===`landscape`,n=e.width||`12%`,r=e.borderWidth||`2px`,i=e.bottom||`5%`;return t?(0,R.jsx)(`div`,{style:{position:`absolute`,right:i,top:`50%`,transform:`translate(50%, -50%)`,height:n,width:`auto`,aspectRatio:`1 / 1`,borderRadius:`50%`,border:`${r} solid #333`,backgroundColor:`#111`,boxShadow:`inset 0 0 4px rgba(0,0,0,0.5)`}}):(0,R.jsx)(`div`,{style:{position:`absolute`,bottom:i,left:`50%`,transform:`translate(-50%, 50%)`,width:n,height:`auto`,aspectRatio:`1 / 1`,borderRadius:`50%`,border:`${r} solid #333`,backgroundColor:`#111`,boxShadow:`inset 0 0 4px rgba(0,0,0,0.5)`}})},Ee=Ge[w]||Ge.black,De=(e=>{switch(e){case`titanium`:return`linear-gradient(135deg, #706f6f 0%, #9e9e9e 25%, #5e5e5e 50%, #8a8a8a 75%, #666666 100%)`;case`silver`:return`linear-gradient(135deg, #e0e0e0 0%, #ffffff 30%, #c0c0c0 50%, #f5f5f5 80%, #dcdcdc 100%)`;case`gold`:return`linear-gradient(135deg, #e6cfa5 0%, #fff5e0 30%, #d4b585 50%, #faeacc 80%, #e0c598 100%)`;case`blue`:return`linear-gradient(135deg, #2b3a4a 0%, #4a5c70 30%, #1e2a38 50%, #3e4f63 80%, #24303d 100%)`;default:return`linear-gradient(135deg, #333333 0%, #555555 30%, #1a1a1a 50%, #444444 80%, #222222 100%)`}})(w),ke=`none`,Ae={...ee,boxShadow:`none`,filter:`none`,fontFamily:b,backgroundColor:s,...N(),position:`relative`},je=C&&M===`top`?`justify-start`:`justify-center`;return(0,R.jsxs)(`div`,{id:e,"data-device-name":O.name,"data-layout-mode":M,"data-canvas-width":re,"data-canvas-height":ie,"data-capture-target":`true`,style:Ae,className:`relative shrink-0 overflow-visible ${T?``:`transition-all duration-300 ease-in-out`}`,children:[o===`image`&&f&&(0,R.jsx)(`div`,{className:`absolute inset-0 z-0 overflow-hidden`,children:(0,R.jsx)(`div`,{className:`absolute inset-0`,style:{backgroundImage:`url(${f})`,backgroundSize:`cover`,backgroundPosition:`center`,filter:`blur(${p}px) brightness(${1-m*.01})`,transform:`scale(1.1)`}})}),!E&&(0,R.jsxs)(`div`,{className:`absolute inset-0 z-40 pointer-events-none flex flex-col items-center justify-center overflow-hidden`,children:[(0,R.jsx)(`div`,{className:`absolute inset-0 flex flex-wrap content-center justify-center gap-32 -rotate-12 scale-150`,style:ae,children:Array.from({length:30}).map((e,t)=>(0,R.jsx)(`span`,{className:`text-4xl font-black uppercase whitespace-nowrap`,children:D(`app.canvas.watermark`)},t))}),(0,R.jsxs)(`div`,{"data-watermark-badge":`true`,className:`backdrop-blur-md px-4 py-2 rounded-xl flex items-center gap-3 leading-none`,style:{backgroundColor:`rgba(255, 255, 255, 0.6)`,border:`1px solid rgba(255, 255, 255, 0.5)`,boxShadow:`0 10px 15px -3px rgba(15, 23, 42, 0.18), 0 4px 6px -4px rgba(15, 23, 42, 0.18)`,opacity:.8},children:[(0,R.jsx)(`div`,{className:`w-6 h-6 rounded-md flex items-center justify-center shrink-0`,style:{backgroundColor:`#0f172a`,color:`#ffffff`},children:(0,R.jsx)(A,{size:14})}),(0,R.jsx)(`div`,{className:`h-6 flex items-center justify-center leading-none`,children:(0,R.jsx)(`span`,{className:`text-[10px] font-bold uppercase tracking-wider leading-none pb-0.5`,style:{color:`#0f172a`},children:D(`app.canvas.watermark`)})})]})]}),C&&(0,R.jsx)(`div`,{className:`absolute z-20`,style:{top:`${de}px`,left:`${de}px`,width:`${ue}px`,height:`${ue}px`,display:`flex`,alignItems:`center`,justifyContent:`flex-start`,backgroundImage:`url(${C})`,backgroundSize:`contain`,backgroundPosition:`left center`,backgroundRepeat:`no-repeat`}}),(0,R.jsxs)(`div`,{className:`flex-none flex flex-col ${je} ${M===`split`?`items-start text-left w-[45%]`:`items-center text-center w-full`} z-50`,style:{color:_,gap:`16px`,minHeight:Se?`${Se}px`:void 0,borderTop:C&&M===`split`?`${I}px solid transparent`:void 0,marginTop:_e?`${_e}px`:ge?`-${ge}px`:void 0,boxSizing:`border-box`},children:[(0,R.jsx)(`h1`,{"data-intended-font-size":v,"data-fit-font-family":P.fontFamily,"data-fit-direction":P.direction,"data-fit-letter-spacing":P.letterSpacing,style:{fontSize:`${P.fontSize}px`,fontFamily:P.fontFamily,direction:P.direction,unicodeBidi:P.direction===`rtl`?`plaintext`:`normal`,lineHeight:1.1,fontWeight:700,letterSpacing:P.letterSpacing,whiteSpace:`nowrap`,wordBreak:`keep-all`,overflow:`hidden`,textOverflow:`ellipsis`,minHeight:`1em`,display:`block`,margin:0,padding:0},children:h}),(0,R.jsx)(`h2`,{"data-intended-font-size":y,"data-fit-font-family":le.fontFamily,"data-fit-direction":le.direction,"data-fit-letter-spacing":le.letterSpacing,style:{fontSize:`${le.fontSize}px`,fontFamily:le.fontFamily,direction:le.direction,unicodeBidi:le.direction===`rtl`?`plaintext`:`normal`,lineHeight:1.3,fontWeight:500,letterSpacing:le.letterSpacing,opacity:.85,whiteSpace:`nowrap`,wordBreak:`keep-all`,overflow:`hidden`,textOverflow:`ellipsis`,minHeight:`1em`,display:`block`,margin:0,padding:0},children:g}),Ce()]}),(0,R.jsx)(`div`,{className:`flex-none relative z-10 flex items-center justify-center ${M===`split`?`w-[50%]`:`w-full`}`,style:{...te,boxShadow:`none`,borderRadius:`${O.radius}px`,backgroundColor:`transparent`,overflow:`visible`,filter:`none`},"data-device-wrapper":`true`,"data-device-name":O.name,"data-shadow-style":ke,children:(0,R.jsx)(`div`,{style:{...ne,overflow:`visible`},"data-device-inner":`true`,children:(0,R.jsxs)(`div`,{className:`relative`,"data-frame-shadow":`true`,"data-shadow-style":ke,style:{width:`100%`,height:`100%`,borderRadius:`${O.radius}px`,background:k?Ee:De,boxShadow:`none`,padding:k?void 0:`4px`},children:[!k&&!O.type.includes(`android`)&&(0,R.jsx)(R.Fragment,{children:n===`landscape`?(0,R.jsxs)(R.Fragment,{children:[(0,R.jsx)(`div`,{className:`absolute left-[18%] -top-[2px] w-[12%] h-[2px] rounded-b-sm z-0`,style:{backgroundColor:`#475569`}}),(0,R.jsx)(`div`,{className:`absolute left-[10%] -bottom-[2px] w-[4%] h-[2px] rounded-t-sm z-0`,style:{backgroundColor:`#475569`}}),(0,R.jsx)(`div`,{className:`absolute left-[18%] -bottom-[2px] w-[8%] h-[2px] rounded-t-sm z-0`,style:{backgroundColor:`#475569`}}),(0,R.jsx)(`div`,{className:`absolute left-[28%] -bottom-[2px] w-[8%] h-[2px] rounded-t-sm z-0`,style:{backgroundColor:`#475569`}})]}):(0,R.jsxs)(R.Fragment,{children:[(0,R.jsx)(`div`,{className:`absolute top-[10%] -left-[2px] w-[2px] h-[4%] rounded-l-sm z-0`,style:{backgroundColor:`#475569`}}),(0,R.jsx)(`div`,{className:`absolute top-[18%] -left-[2px] w-[2px] h-[8%] rounded-l-sm z-0`,style:{backgroundColor:`#475569`}}),(0,R.jsx)(`div`,{className:`absolute top-[28%] -left-[2px] w-[2px] h-[8%] rounded-l-sm z-0`,style:{backgroundColor:`#475569`}}),(0,R.jsx)(`div`,{className:`absolute top-[18%] -right-[2px] w-[2px] h-[12%] rounded-r-sm z-0`,style:{backgroundColor:`#475569`}})]})}),(0,R.jsxs)(`div`,{className:`absolute overflow-hidden`,style:{top:`${O.bezel}px`,bottom:`${O.bezel}px`,left:`${O.bezel}px`,right:`${O.bezel}px`,borderRadius:`${O.radius-4}px`,backgroundColor:`#000000`},children:[(0,R.jsx)(`div`,{className:`relative w-full h-full`,style:{top:O.type.includes(`classic`)?n===`landscape`?`0`:`10%`:`0`,height:O.type.includes(`classic`)?n===`landscape`?`100%`:`80%`:`100%`,width:O.type.includes(`classic`)&&n===`landscape`?`80%`:`100%`,left:O.type.includes(`classic`)&&n===`landscape`?`10%`:`0`,backgroundColor:`#0f172a`},children:S?(0,R.jsx)(`div`,{"data-type":`screen-image`,className:`w-full h-full bg-cover bg-center bg-no-repeat`,style:{backgroundImage:`url(${S})`},role:`img`,"aria-label":`Screen`}):(0,R.jsx)(`div`,{className:`w-full h-full flex flex-col items-center justify-center text-center p-4`,style:{color:`rgba(255, 255, 255, 0.2)`,backgroundColor:`#1e293b`},children:k?(0,R.jsx)(Ve,{size:32}):(0,R.jsx)(A,{size:48})})}),O.type.includes(`classic`)&&(0,R.jsx)(R.Fragment,{children:(0,R.jsxs)(`div`,{className:`absolute flex justify-center items-center ${n===`landscape`?`left-0 top-0 bottom-0 w-[10%] flex-col gap-2`:`top-0 left-0 right-0 h-[10%] flex-row gap-2`}`,children:[!O.type.includes(`ipad`)&&(0,R.jsx)(`div`,{className:`rounded-full ${n===`landscape`?`w-1.5 h-12`:`w-12 h-1.5`}`,style:{backgroundColor:`#333333`}}),(0,R.jsx)(`div`,{className:`w-2 h-2 rounded-full`,style:{backgroundColor:`#222222`}})]})}),O.type===`android-tablet`&&(0,R.jsx)(`div`,{className:`absolute ${n===`landscape`?`top-[50%] -translate-y-1/2 right-2`:`top-2 left-[50%] -translate-x-1/2`} w-3 h-3 rounded-full`,style:{backgroundColor:`#111111`,boxShadow:`0 0 0 1px #333333`}})]}),we(),Te(),k&&(0,R.jsx)(`div`,{className:`absolute rounded-r-md border border-l-0 z-0`,style:{right:`-6px`,top:`28%`,width:`8px`,height:`32px`,borderTopRightRadius:`4px`,borderBottomRightRadius:`4px`,backgroundColor:`#333333`,borderColor:`#000000`,boxShadow:`0 1px 2px rgba(0, 0, 0, 0.15)`}}),(0,R.jsx)(`div`,{className:`absolute inset-0 rounded-[inherit] pointer-events-none z-30`,style:{background:`linear-gradient(to top right, transparent 0%, rgba(255, 255, 255, 0.05) 50%, transparent 100%)`,opacity:.5}})]})})})]})},mt=({isOpen:e,billing:t=`monthly`,requiresAuth:n=!1,onClose:r,onUpgrade:i})=>{let{t:a}=c(),o=(0,L.useRef)(null),s=(0,L.useRef)(null),l=a(`upgrade.plans.${t}`,{returnObjects:!0,defaultValue:null}),d=l&&typeof l==`object`&&!Array.isArray(l),f=(d&&Array.isArray(l.features)?l.features:a(`upgrade.features`,{returnObjects:!0}))||[],p=d&&l.title?l.title:a(`upgrade.title`),m=d&&l.subtitle?l.subtitle:a(`upgrade.subtitle`),h=d&&l.cta?l.cta:a(`upgrade.cta`),g=d&&l.authRequired?l.authRequired:a(`upgrade.authRequired`,{defaultValue:``});return u({isOpen:e,onClose:r,panelRef:o,initialFocusRef:s}),e?(0,R.jsx)(`div`,{className:`fixed inset-0 z-2000 bg-slate-900/60 backdrop-blur-xs flex items-center justify-center p-4 animate-in fade-in duration-200`,role:`dialog`,"aria-modal":`true`,"aria-label":p||a(`upgrade.title`,{defaultValue:`Upgrade`}),onMouseDown:e=>{e.target===e.currentTarget&&r?.()},children:(0,R.jsxs)(`div`,{ref:o,className:`bg-white rounded-2xl shadow-2xl max-w-md w-full overflow-hidden`,children:[(0,R.jsxs)(`div`,{className:`bg-linear-to-br from-slate-900 to-slate-800 p-8 text-center text-white relative overflow-hidden`,children:[(0,R.jsx)(`div`,{className:`absolute top-0 left-0 w-full h-full opacity-10 bg-[url('https://www.transparenttextures.com/patterns/cubes.png')]`}),(0,R.jsxs)(`div`,{className:`relative z-10`,children:[(0,R.jsx)(`div`,{className:`w-12 h-12 bg-blue-500 rounded-xl flex items-center justify-center mx-auto mb-4 shadow-lg shadow-blue-500/30`,children:(0,R.jsx)(ge,{size:24,fill:`white`})}),(0,R.jsx)(`h2`,{className:`text-2xl font-bold mb-2`,children:p}),(0,R.jsx)(`p`,{className:`text-slate-300 text-sm`,children:m})]})]}),(0,R.jsxs)(`div`,{className:`p-8`,children:[(0,R.jsx)(`div`,{className:`space-y-4 mb-8`,children:f.map(e=>(0,R.jsx)(ht,{text:e},e))}),(0,R.jsx)(`button`,{ref:s,onClick:i,className:`w-full py-3 bg-blue-600 hover:bg-blue-700 text-white rounded-xl font-bold shadow-lg shadow-blue-600/20 transition-all transform hover:scale-[1.02] active:scale-[0.98]`,children:h}),n&&g&&(0,R.jsx)(`p`,{className:`mt-3 rounded-lg border border-blue-100 bg-blue-50 px-3 py-2 text-[11px] leading-relaxed text-blue-800`,children:g}),(0,R.jsxs)(`p`,{className:`mt-3 text-[11px] text-slate-500 text-center leading-relaxed`,children:[a(`upgrade.legal`),(0,R.jsx)(`br`,{}),(0,R.jsx)(`a`,{href:`/terms`,className:`underline hover:text-slate-700`,target:`_blank`,rel:`noreferrer`,children:a(`landing.footer.terms`)}),` / `,(0,R.jsx)(`a`,{href:`/privacy`,className:`underline hover:text-slate-700`,target:`_blank`,rel:`noreferrer`,children:a(`landing.footer.privacy`)}),` / `,(0,R.jsx)(`a`,{href:`/legal`,className:`underline hover:text-slate-700`,target:`_blank`,rel:`noreferrer`,children:a(`landing.footer.legal`)})]}),(0,R.jsx)(`button`,{onClick:r,className:`w-full mt-3 py-2 text-slate-400 hover:text-slate-600 text-xs font-medium`,children:a(`upgrade.later`)})]})]})}):null},ht=({text:e})=>(0,R.jsxs)(`div`,{className:`flex items-center gap-3 text-sm text-slate-700`,children:[(0,R.jsx)(v,{size:18,className:`text-green-500 shrink-0`}),(0,R.jsx)(`span`,{children:e})]}),gt=({isOpen:e,onClose:t})=>{let{t:n}=c(),r=(0,L.useRef)(null),i=(0,L.useRef)(null),a=(0,L.useMemo)(()=>n(`landing.ciQuickstart`,{returnObjects:!0})||{},[n]),o=typeof a.title==`string`?a.title:n(`app.header.ciQuickstart`,{defaultValue:`Agent/CI handoff`}),s=typeof a.desc==`string`?a.desc:``,l=typeof a.codeLabel==`string`?a.codeLabel:``,d=typeof a.code==`string`?a.code:``,f=typeof a.note==`string`?a.note:``;return u({isOpen:e,onClose:t,panelRef:i,initialFocusRef:r}),e?(0,R.jsx)(`div`,{className:`fixed inset-0 z-2100 bg-slate-900/60 backdrop-blur-xs flex items-center justify-center p-4 animate-in fade-in duration-200`,role:`dialog`,"aria-modal":`true`,"aria-label":o,onMouseDown:e=>{e.target===e.currentTarget&&t?.()},children:(0,R.jsxs)(`div`,{ref:i,className:`bg-white rounded-2xl shadow-2xl max-w-2xl w-full overflow-hidden border border-slate-200`,children:[(0,R.jsxs)(`div`,{className:`flex items-start justify-between gap-4 px-6 py-4 border-b border-slate-200`,children:[(0,R.jsxs)(`div`,{className:`min-w-0`,children:[(0,R.jsx)(`h2`,{className:`text-lg font-black text-slate-900`,children:o}),s&&(0,R.jsx)(`p`,{className:`text-sm text-slate-600 mt-1`,children:s})]}),(0,R.jsx)(`button`,{ref:r,type:`button`,onClick:t,className:`shrink-0 p-2 rounded-full border border-slate-200 text-slate-600 hover:bg-slate-50`,"aria-label":n(`common.close`,{defaultValue:`Close`}),title:n(`common.close`,{defaultValue:`Close`}),children:(0,R.jsx)(p,{size:16})})]}),(0,R.jsxs)(`div`,{className:`p-6 space-y-4`,children:[(0,R.jsxs)(`div`,{className:`rounded-xl border border-slate-200 bg-slate-950 text-slate-100 overflow-hidden`,children:[(0,R.jsxs)(`div`,{className:`flex items-center justify-between gap-3 px-4 py-2 border-b border-slate-800 bg-slate-950/80`,children:[(0,R.jsx)(`div`,{className:`text-[11px] uppercase tracking-[0.2em] text-slate-400`,children:l||n(`landing.ciQuickstart.codeLabel`,{defaultValue:`Commands`})}),(0,R.jsx)(C,{value:d,className:`text-[11px] px-2 py-1 rounded-md border border-slate-700 bg-slate-900/60 text-slate-100 hover:bg-slate-900 transition disabled:opacity-50 disabled:cursor-not-allowed`})]}),(0,R.jsx)(`pre`,{className:`p-4 text-xs font-mono whitespace-pre overflow-auto max-h-[50vh] leading-relaxed`,children:d})]}),f&&(0,R.jsx)(`p`,{className:`text-xs text-slate-500`,children:f})]})]})}):null},_t={store:`store`,detailed:`detailed`},V=e=>{let t=e?.width,n=e?.height;return!t||!n?``:`${t}×${n}px`},vt=(e,{id:t=``,mode:n=_t.store}={})=>{let r=e?.storeLabel||e?.name||t,i=e?.modelLabel||``,a=i&&i!==r?i:``,o=V(e),s=a?`${r} (${a})`:r,c=n===_t.detailed&&a||r,l=n===_t.detailed?[a?r:null,o].filter(Boolean).join(` • `):[a||null,o].filter(Boolean).join(` • `);return{storeLabel:r,modelLabel:a,dimensions:o,storeWithModel:s,optionLabel:n===_t.detailed?[c,o,a?r:null].filter(Boolean).join(` - `):s,primary:c,secondary:l,shortLabel:c}},yt=(e=``)=>e.toLowerCase().replace(/×/g,`x`).replace(/["'()]/g,``).trim(),bt=(e,t,n)=>{let r=yt(n);if(!r)return!0;let i=r.split(/\s+/).filter(Boolean);if(!i.length)return!0;let{storeLabel:a,modelLabel:o}=vt(t,{id:e,mode:_t.store}),s=t?.width,c=t?.height,l=[e,t?.group,t?.type,a,o,t?.name,s&&c?`${s}x${c}`:null,s&&c?`${c}x${s}`:null,s&&c?`${s} ${c}`:null].filter(Boolean).join(` `).toLowerCase().replace(/×/g,`x`);return i.every(e=>l.includes(e))},xt=e=>{if(e?.aborted)throw Error(`Aborted`)},St=e=>{let t=e.querySelector(`h1`),n=e.querySelector(`h2`),r=t?.parentElement||n?.parentElement;r&&(r.style.position=`relative`,r.style.zIndex=`1000`)},Ct=(e,t)=>{if(!e)return t;let n=e.toLowerCase();if(n===`transparent`||n===`rgba(0, 0, 0, 0)`)return t;if(n.startsWith(`rgba`)){let e=parseFloat(n.split(`,`)[3]);if(!Number.isNaN(e)&&e===0)return t}return e},wt=e=>{if(!e)return null;let t=e.split(/\s+/);if(t.length<3)return null;let n=t.pop(),r=0;t.length>=4&&(r=parseFloat(t.pop())||0);let[i=`0px`,a=`16px`,o=`40px`]=t;return{offsetX:parseFloat(i)||0,offsetY:parseFloat(a)||0,blur:parseFloat(o)||0,spread:r,color:n}},H=e=>{let t=typeof e==`number`?e:parseFloat(String(e||``).replace(`px`,``));return Number.isFinite(t)?t:null},Tt=e=>e?e.querySelector?.(`[data-capture-target="true"]`)||e:null,Et=e=>{if(!e)return null;let t=H(e.dataset?.canvasWidth);if(t&&t>0)return t;let n=e.getBoundingClientRect?.();return n?.width?n.width:e.offsetWidth?e.offsetWidth:null},Dt=e=>{let t=e?.dataset?.layoutMode||``;return String(t||``)},Ot=e=>{let t=Et(e);return t?Dt(e)===`split`?t*.45:t*.9:null},kt=e=>{if(!e)return null;let t=H(e.dataset?.intendedFontSize);if(t&&t>0)return t;let n=H(e.style?.fontSize);if(n&&n>0)return n;try{let t=H(window.getComputedStyle(e)?.fontSize);if(t&&t>0)return t}catch{}return null},At=e=>{if(!e)return``;let t=String(e.dataset?.fitFontFamily||``).trim();if(t)return t;let n=String(e.style?.fontFamily||``).trim();if(n)return n;try{return String(window.getComputedStyle(e)?.fontFamily||``).trim()}catch{}return``},jt=(e,t=`normal`)=>{if(!e)return t;let n=String(e.dataset?.fitLetterSpacing||``).trim();if(n)return n;let r=String(e.style?.letterSpacing||``).trim();if(r)return r;try{let t=String(window.getComputedStyle(e)?.letterSpacing||``).trim();if(t)return t}catch{}return t},Mt=(e,t=400)=>{if(!e)return t;let n=e=>{if(e==null)return null;let t=String(e).trim().toLowerCase();if(!t)return null;if(t===`bold`)return 700;if(t===`normal`)return 400;let n=Number(t);return Number.isFinite(n)?n:null},r=n(e.style?.fontWeight);if(r!=null)return r;try{let t=n(window.getComputedStyle(e)?.fontWeight);if(t!=null)return t}catch{}return t},Nt=(e,t,n)=>{let r=typeof e==`number`?e:Number(e);return Number.isFinite(r)?Math.max(t,Math.min(n,r)):null},Pt=(e,t)=>{if(!t||t<=0)return e;let n=null;return Promise.race([e,new Promise(e=>{n=setTimeout(e,t)})]).finally(()=>{n&&clearTimeout(n)})},Ft=async(e=1)=>{let t=Number(e)||0;for(;t>0;)await new Promise(e=>{typeof globalThis.requestAnimationFrame==`function`?globalThis.requestAnimationFrame(()=>e()):setTimeout(e,0)}),--t},It=async(e=1500)=>{try{let t=typeof document<`u`?document.fonts:null;if(!t||typeof t.ready?.then!=`function`||t.status===`loaded`)return;await Pt(t.ready,e)}catch{}},Lt=async()=>{await It(1500),await Ft(2)},Rt=e=>{if(!e)return null;try{let t=e.scrollWidth;if(typeof t==`number`&&t>0)return t;let n=document.createRange();n.selectNodeContents(e);let r=n.getBoundingClientRect();typeof n.detach==`function`&&n.detach();let i=r?.width||0;if(i>0)return i}catch{}return null},zt=(e,t,{minSize:n=10,iterations:r=6}={})=>{if(e&&!(!t||t<=0))for(let i=0;i<r;i+=1){let r=Rt(e)||0;if(!r||r<=t)return;let i=H(e.style?.fontSize)||kt(e);if(!i)return;let a=Nt(t/r*i*.98,n,i);if(!a)return;e.style.fontSize=`${a}px`,e.offsetHeight}},Bt=e=>{let t=Ot(Tt(e));if(!t)return;let n=e.querySelector?.(`h1`),r=e.querySelector?.(`h2`);if(n){let e=kt(n);if(e){let r=dt({text:n.textContent||``,intendedSize:e,maxWidth:t,isBold:!0,fontFamily:At(n),fontWeight:Mt(n,700),letterSpacing:jt(n,`-0.02em`),minFontSize:12,allowGrow:!0});n.style.fontFamily=r.fontFamily,n.style.direction=r.direction,n.style.unicodeBidi=r.direction===`rtl`?`plaintext`:`normal`,n.style.fontSize=`${r.fontSize}px`,n.style.letterSpacing=r.letterSpacing,zt(n,t,{minSize:12})}}if(r){let e=kt(r);if(e){let n=dt({text:r.textContent||``,intendedSize:e,maxWidth:t,isBold:!1,fontFamily:At(r),fontWeight:Mt(r,500),letterSpacing:jt(r,`normal`),minFontSize:10,allowGrow:!0});r.style.fontFamily=n.fontFamily,r.style.direction=n.direction,r.style.unicodeBidi=n.direction===`rtl`?`plaintext`:`normal`,r.style.fontSize=`${n.fontSize}px`,r.style.letterSpacing=n.letterSpacing,zt(r,t,{minSize:10})}}};function Vt({deviceLibrary:t,bgType:n,bgColor:r}){let[i,a]=(0,L.useState)(!1),[o,s]=(0,L.useState)({current:0,total:0}),c=(0,L.useCallback)(async()=>{let e=await l(()=>import(`./html2canvas-pro.esm-OQkwCdu_.js`),[]);return e.default||e},[]),u=(0,L.useCallback)(async()=>{let t=await l(()=>import(`./jszip.min-XyfP2hUJ.js`).then(t=>e(t.default,1)),__vite__mapDeps([0,1]));return t.default||t},[]),d=(e,t=null)=>{if(!t)return e;let n=document.createElement(`canvas`);n.width=e.width,n.height=e.height;let r=n.getContext(`2d`);return r.fillStyle=t,r.fillRect(0,0,n.width,n.height),r.drawImage(e,0,0),n},f=(0,L.useCallback)((e,n,r)=>{let i=e.offsetWidth,a=e.offsetHeight;e.style.width&&e.style.width.endsWith(`px`)&&(i=parseInt(e.style.width,10)),e.style.height&&e.style.height.endsWith(`px`)&&(a=parseInt(e.style.height,10));let o=i+0,s=a+0,c=Ct(r,`#ffffff`),l=n===`solid`,u=l?c:n===`transparent`?`transparent`:void 0,d=l?c:null,f=window.getComputedStyle(e),p=f.background&&f.background!==`none`?f.background:void 0,m=u??p??`transparent`,h=e.cloneNode(!0);h.style.position=`relative`,h.style.transform=`none`,h.style.transformOrigin=`top left`,h.style.width=`${i}px`,h.style.height=`${a}px`,h.style.overflow=`visible`,h.style.margin=`0`,u===void 0?p&&(h.style.background=p):h.style.background=u;let g=e=>{if(!e)return``;let t=e.split(`,`).map(e=>e.trim()).filter(e=>e&&!e.startsWith(`inset`));if(!t.length)return``;let n=``,r=-1;return t.forEach(e=>{let t=wt(e.replace(`inset`,``).trim());t&&t.blur>r&&(r=t.blur,n=`${t.offsetX}px ${t.offsetY}px ${t.blur}px ${t.color}`)}),n?`drop-shadow(${n})`:``};h.querySelectorAll(`[data-frame-shadow="true"], [data-device-wrapper="true"]`).forEach(e=>{let t=e?.dataset?.shadowStyle||`0 40px 140px -28px rgba(0,0,0,0.6)`,n=g(t);if(e.style.boxShadow=t,n){let t=e.style.filter===`none`?``:e.style.filter||``;e.style.filter=`${t} ${n}`.trim()}}),h.querySelectorAll(`[data-badge-text="true"]`).forEach(e=>{e.style.lineHeight=`0.55`,e.style.gap=`0px`,e.style.display=`flex`,e.style.flexDirection=`column`,e.style.justifyContent=`center`}),h.querySelectorAll(`[data-badge-line]`).forEach(e=>{let t=e.dataset.badgeLine;e.style.lineHeight=`0.55`,e.style.display=`block`,e.style.transform=`translateY(-3px)`,t===`1`&&(e.style.marginBottom=`-8px`),t===`2`&&(e.style.marginTop=`-10px`)});let _=e=>{if(!e)return{width:0,height:0};let t=e.getBoundingClientRect(),n=window.getComputedStyle(e);return{width:e.offsetWidth||t.width||parseFloat(n.width)||parseFloat(n.maxWidth)||parseFloat(n.minWidth)||0,height:e.offsetHeight||t.height||parseFloat(n.height)||parseFloat(n.maxHeight)||parseFloat(n.minHeight)||0}},v=document.createElement(`div`);v.style.position=`absolute`,v.style.top=`0px`,v.style.left=`0px`,v.style.background=m,v.style.boxShadow=`none`,v.style.borderRadius=`48px`,v.style.display=`inline-block`,v.style.overflow=`visible`,v.appendChild(h);let y=document.createElement(`div`);y.style.position=`fixed`,y.style.top=`-10000px`,y.style.left=`-10000px`,y.style.width=`${o}px`,y.style.height=`${s}px`,y.style.zIndex=`-1000`,y.style.background=m,y.style.overflow=`visible`,y.appendChild(v),document.body.appendChild(y);let b=[];h.querySelectorAll(`[data-device-wrapper="true"]`).forEach(e=>{let t=e.querySelector(`[data-frame-shadow="true"]`),n=t?.getBoundingClientRect(),r=t?.dataset?.shadowStyle||e.dataset.shadowStyle||e.style.boxShadow||`0 40px 140px -28px rgba(0,0,0,0.6)`,i=t?.style?.borderRadius||e.style.borderRadius||`48px`,a=_(t),o=_(e),s=o.width||a.width,c=o.height||a.height,l=y.getBoundingClientRect(),u=n||e.getBoundingClientRect(),d={width:u.width||s||0,height:u.height||c||0},f=u.left-l.left,p=u.top-l.top;b.push({x:f,y:p,width:d.width,height:d.height,radius:parseFloat(i)||48,shadow:r})});let x=[],S=!!h.querySelector(`[data-badge="true"]`),C=(()=>{let e=h.querySelector(`[data-device-wrapper="true"]`)?.dataset?.deviceName;return e&&Object.values(t||{}).find(t=>t.name===e)||null})()?.type===`watch`,w=h.querySelector(`[data-device-wrapper="true"]`);if(w){w.style.filter=`none`;let e=w.style.transform&&w.style.transform!==`none`?w.style.transform+` `:``,t=C?0:S?-1:-9;w.style.transform=`${e}translateY(${t}px)`.trim()}h.querySelectorAll(`[data-badge="true"]`).forEach(e=>{let t=e?.dataset?.shadowStyle||e.style.boxShadow||`0 6px 18px rgba(0,0,0,0.25)`,n=g(t);if(e.style.filter=`none`,e.style.boxShadow=t,!C){let t=window.getComputedStyle(e),n=parseFloat(t.marginTop)||0;e.style.marginTop=`${n-6}px`}let r=e.style.transform&&e.style.transform!==`none`?e.style.transform+` `:``;C||(e.style.transform=`${r}translateY(-2px)`.trim());let i=e.getBoundingClientRect();if(i?.width&&i?.height&&(e.style.width=`${i.width}px`,e.style.height=`${i.height}px`),e.style.whiteSpace=`nowrap`,e.style.wordBreak=`keep-all`,e.style.flexWrap=`nowrap`,e.style.overflow=`visible`,e.style.minWidth=`max-content`,e.querySelectorAll(`div[data-badge-text="true"]`).forEach(e=>{e.style.overflow=`visible`,e.style.height=`auto`,e.style.display=`flex`,e.style.flexDirection=`column`,e.style.paddingBottom=`20px`,e.style.marginBottom=`-20px`}),e.querySelectorAll(`span`).forEach(e=>{let t=e.style.transform&&e.style.transform!==`none`?e.style.transform+` `:``;e.dataset?.badgeScore===`true`?e.style.transform=C?`translateY(-8px)`:`translateY(-12px)`:C?e.style.transform=`${t}translateY(-5px)`.trim():e.style.transform=`${t}translateY(-11px)`.trim(),e.style.letterSpacing=`normal`,e.style.whiteSpace=`nowrap`,e.style.wordBreak=`keep-all`,e.style.lineHeight=`1.2`,e.style.paddingBottom=`0px`,e.style.marginBottom=`0px`,e.style.display=`block`,e.style.overflow=`visible`}),n){let t=e.style.filter===`none`?``:e.style.filter||``;e.style.filter=`${t} ${n}`.trim()}}),h.querySelectorAll(`[data-watermark-badge="true"]`).forEach(e=>{e.style.display=`flex`,e.style.alignItems=`center`,e.style.justifyContent=`center`,e.querySelectorAll(`span`).forEach(e=>{e.style.transform=`translateY(-5.5px)`,e.style.display=`inline-block`,e.style.lineHeight=`1`})}),h.querySelectorAll(`h1, h2`).forEach(e=>{e.style.overflow=`visible`,e.style.textOverflow=`clip`,e.style.textShadow=`none`;let t=C?8:15;e.style.paddingBottom=`${t}px`;let n=window.getComputedStyle(e),r=parseFloat(n.marginTop)||0,i=parseFloat(n.marginBottom)||0;if(C||(e.style.marginTop=`${r-23}px`),e.tagName===`H1`?C?e.style.marginBottom=`${i-2}px`:e.style.marginBottom=`${i+32}px`:!C&&S?e.style.marginBottom=`-4px`:C&&S?e.style.marginBottom=`${i+4}px`:e.style.marginBottom=`${i}px`,e.tagName===`H2`){if(!C){let t=S?-14:-16;e.style.transform=`translateY(${t}px)`}}else C||(e.style.transform=`translateY(-13px)`);e.style.display=`block`});let T=h.querySelector(`h1`);if(T?.parentElement){let e=T.parentElement,t=window.getComputedStyle(e),n=parseFloat(t.rowGap||t.gap)||0,r=parseFloat(t.marginTop)||0;C?e.style.marginTop=`${r-18}px`:e.style.marginTop=`${r-4}px`;let i=n||16;e.style.rowGap=`${i}px`,e.style.gap=`${i}px`}return St(h),{clone:h,container:y,width:o,height:s,backgroundColor:d,captureBackground:null,manualShadows:x,baseWidth:i,baseHeight:a,padTotal:0}},[t]);return{exportSingle:(0,L.useCallback)(async(e,t)=>{if(!e)return!1;a(!0),s({current:0,total:0});let i=null,o=!1;try{let a=await c(),{clone:s,container:l,width:u,height:p,backgroundColor:m,captureBackground:h,manualShadows:g,padTotal:_,baseWidth:v,baseHeight:y}=f(e,n,r);i=l,await Lt(),Bt(s),await Lt();let b=d(await a(l,{backgroundColor:h??null,scale:2,logging:!1,useCORS:!0,allowTaint:!0,scrollX:0,scrollY:0,width:u,height:p,windowWidth:u,windowHeight:p}),m??`#ffffff`,g,2),x=document.createElement(`canvas`);x.width=v,x.height=y,x.getContext(`2d`).drawImage(b,0,0,b.width,b.height,0,0,x.width,x.height);let S=document.createElement(`a`);S.download=t,S.href=x.toDataURL(`image/png`),S.click(),o=!0}catch(e){console.error(`Export failed`,e)}finally{i&&i.parentNode&&i.parentNode.removeChild(i),a(!1),s({current:0,total:0})}return o},[n,c,r,f]),exportBatch:(0,L.useCallback)(async({locales:e,slides:i,selectedDeviceIds:o,getElementById:l,signal:p,onTaskStart:m,outputMode:h=`locale`})=>{if(!e?.length||!i?.length||!o?.length)return;let g=()=>xt(p);g(),a(!0);let _=e.length*i.length*o.length;s({current:0,total:_});let v=0;try{let[a,p]=await Promise.all([c(),u()]);g();let y=new p,b=y.folder(`fastlane`).folder(`screenshots`),x=h===`device`?`device`:`locale`,S=async({localeId:e,slideIndex:t,deviceId:o})=>{g();let c=l(o);if(!c)return;if(typeof m==`function`)try{m({localeId:e,slideIndex:t,slideNumber:t+1,deviceId:o,current:v+1,total:_})}catch(e){console.warn(`onTaskStart failed`,e)}let u=i[t],p=u?.texts?.[e]||{header:``,sub:``},h=(t+1).toString(),{clone:y,container:S,width:C,height:w,backgroundColor:T,captureBackground:E,manualShadows:D,padTotal:O,baseWidth:k,baseHeight:A}=f(c,n,r);try{g();let t=y.querySelector(`h1`),n=y.querySelector(`h2`);t&&(t.textContent=p.header),n&&(n.textContent=p.sub);let r=y.querySelector(`div[data-type="screen-image"]`);if(r){let t=u?.screenshotsByLocale?.[e]||u?.screenshot||null;r.style.backgroundImage=t?`url(${t})`:`none`}await Lt(),Bt(y),await Lt(),g();let i=await a(S,{scale:2,backgroundColor:E??null,useCORS:!0,scrollX:0,scrollY:0,width:C,height:w,windowWidth:C,windowHeight:w});g();let s=d(i,T??`#ffffff`,D,2),c=document.createElement(`canvas`);c.width=k,c.height=A,c.getContext(`2d`).drawImage(s,0,0,s.width,s.height,0,0,c.width,c.height),g();let l=c.toDataURL(`image/png`).replace(/^data:image\/(png|jpg);base64,/,``),f=String(o).toLowerCase();x===`device`?b.folder(f).file(`${e}_${h}.png`,l,{base64:!0}):b.folder(e).file(`${f}_${h}.png`,l,{base64:!0})}finally{S.parentNode&&document.body.removeChild(S)}v+=1,s({current:v,total:_}),g()};if(x===`device`)for(let t of o){g();for(let n of e){g();for(let e=0;e<i.length;e++)await S({localeId:n.id,slideIndex:e,deviceId:t});await new Promise(e=>setTimeout(e,50)),g()}}else for(let t of e){g();for(let e=0;e<i.length;e++){g();for(let n of o)await S({localeId:t.id,slideIndex:e,deviceId:n})}await new Promise(e=>setTimeout(e,50)),g()}let C={schemaVersion:1,generatedAt:new Date().toISOString(),structure:{root:`fastlane/screenshots`,mode:x,filePattern:x===`device`?`{deviceId}/{locale}_{index}.png`:`{locale}/{deviceId}_{index}.png`},counts:{locales:e.length,slides:i.length,devices:o.length,images:_},locales:e.map(e=>({id:e.id,name:e.name||``})),devices:o.map(e=>{let n=t?.[e]||{};return{id:e,group:n.group||``,storeLabel:n.storeLabel||n.name||e,modelLabel:n.modelLabel||``,width:n.width||null,height:n.height||null}})};y.file(`manifest.json`,JSON.stringify(C,null,2));let w=await y.generateAsync({type:`blob`});g();let T=window.URL.createObjectURL(w),E=document.createElement(`a`);E.href=T,E.download=`fastlane_assets.zip`,document.body.appendChild(E),E.click(),setTimeout(()=>{window.URL.revokeObjectURL(T),E.remove()},1500)}catch(e){throw e?.message!==`Aborted`&&console.error(e),e}finally{a(!1),s({current:0,total:0})}},[n,t,c,u,r,f]),isExporting:i,exportProgress:o}}var Ht={bgType:`solid`,bgColor:`#0f172a`,layoutMode:`standard`,textColor:`#f8fafc`,locales:[{id:`en-US`,name:`English (US)`,flag:`🇺🇸`},{id:`ja-JP`,name:`日本語`,flag:`🇯🇵`}],currentLocaleId:`en-US`,selectedBatchDevices:[`iphone69`],slides:[{id:1,screenshot:null,screenshotsByLocale:{},texts:{"en-US":{header:`Screenshots as a build step`,sub:`Keep Figma and compile release-ready outputs`},"ja-JP":{header:`スクショをビルド工程へ`,sub:`Figmaはそのまま、提出向け出力へ変換`}}},{id:2,screenshot:null,screenshotsByLocale:{},texts:{"en-US":{header:`The matrix explodes fast`,sub:`5 shots × 10 locales × 4 sizes = 200 images`},"ja-JP":{header:`端末×言語が爆発`,sub:`5枚×10言語×4サイズ = 200枚`}}},{id:3,screenshot:null,screenshotsByLocale:{},texts:{"en-US":{header:`Reproducible exports`,sub:`Fastlane-ready ZIP every release`},"ja-JP":{header:`再現性のある出力`,sub:`Fastlane 対応 ZIP を再実行`}}},{id:4,screenshot:null,screenshotsByLocale:{},texts:{"en-US":{header:`Bring your translations`,sub:`Keep layout stable across locales`},"ja-JP":{header:`翻訳は外部でOK`,sub:`レイアウトは崩れない`}}},{id:5,screenshot:null,screenshotsByLocale:{},texts:{"en-US":{header:`Try it free`,sub:`Sample → edit → export`},"ja-JP":{header:`無料で試す`,sub:`サンプル → 編集 → Export`}}}]},Ut=e(t(((e,t)=>{((n,r)=>{typeof define==`function`&&define.amd?define([],r):typeof t==`object`&&e!==void 0?t.exports=r():n.Papa=r()})(e,function e(){var t=typeof self<`u`?self:typeof window<`u`?window:t===void 0?{}:t,n,r=!t.document&&!!t.postMessage,i=t.IS_PAPA_WORKER||!1,a={},o=0,s={};function c(e){this._handle=null,this._finished=!1,this._completed=!1,this._halted=!1,this._input=null,this._baseIndex=0,this._partialLine=``,this._rowCount=0,this._start=0,this._nextChunk=null,this.isFirstChunk=!0,this._completeResults={data:[],errors:[],meta:{}},function(e){var t=y(e);t.chunkSize=parseInt(t.chunkSize),e.step||e.chunk||(t.chunkSize=null),this._handle=new p(t),(this._handle.streamer=this)._config=t}.call(this,e),this.parseChunk=function(e,n){var r=parseInt(this._config.skipFirstNLines)||0;if(this.isFirstChunk&&0<r){let t=this._config.newline;t||=(a=this._config.quoteChar||`"`,this._handle.guessLineEndings(e,a)),e=[...e.split(t).slice(r)].join(t)}this.isFirstChunk&&x(this._config.beforeFirstChunk)&&(a=this._config.beforeFirstChunk(e))!==void 0&&(e=a),this.isFirstChunk=!1,this._halted=!1;var r=this._partialLine+e,a=(this._partialLine=``,this._handle.parse(r,this._baseIndex,!this._finished));if(!this._handle.paused()&&!this._handle.aborted()){if(e=a.meta.cursor,r=(this._finished||(this._partialLine=r.substring(e-this._baseIndex),this._baseIndex=e),a&&a.data&&(this._rowCount+=a.data.length),this._finished||this._config.preview&&this._rowCount>=this._config.preview),i)t.postMessage({results:a,workerId:s.WORKER_ID,finished:r});else if(x(this._config.chunk)&&!n){if(this._config.chunk(a,this._handle),this._handle.paused()||this._handle.aborted())return void(this._halted=!0);this._completeResults=a=void 0}return this._config.step||this._config.chunk||(this._completeResults.data=this._completeResults.data.concat(a.data),this._completeResults.errors=this._completeResults.errors.concat(a.errors),this._completeResults.meta=a.meta),this._completed||!r||!x(this._config.complete)||a&&a.meta.aborted||(this._config.complete(this._completeResults,this._input),this._completed=!0),r||a&&a.meta.paused||this._nextChunk(),a}this._halted=!0},this._sendError=function(e){x(this._config.error)?this._config.error(e):i&&this._config.error&&t.postMessage({workerId:s.WORKER_ID,error:e,finished:!1})}}function l(e){var t;(e||={}).chunkSize||(e.chunkSize=s.RemoteChunkSize),c.call(this,e),this._nextChunk=r?function(){this._readChunk(),this._chunkLoaded()}:function(){this._readChunk()},this.stream=function(e){this._input=e,this._nextChunk()},this._readChunk=function(){if(this._finished)this._chunkLoaded();else{if(t=new XMLHttpRequest,this._config.withCredentials&&(t.withCredentials=this._config.withCredentials),r||(t.onload=b(this._chunkLoaded,this),t.onerror=b(this._chunkError,this)),t.open(this._config.downloadRequestBody?`POST`:`GET`,this._input,!r),this._config.downloadRequestHeaders){var e,n=this._config.downloadRequestHeaders;for(e in n)t.setRequestHeader(e,n[e])}var i;this._config.chunkSize&&(i=this._start+this._config.chunkSize-1,t.setRequestHeader(`Range`,`bytes=`+this._start+`-`+i));try{t.send(this._config.downloadRequestBody)}catch(e){this._chunkError(e.message)}r&&t.status===0&&this._chunkError()}},this._chunkLoaded=function(){t.readyState===4&&(t.status<200||400<=t.status?this._chunkError():(this._start+=this._config.chunkSize||t.responseText.length,this._finished=!this._config.chunkSize||this._start>=(e=>(e=e.getResponseHeader(`Content-Range`))===null?-1:parseInt(e.substring(e.lastIndexOf(`/`)+1)))(t),this.parseChunk(t.responseText)))},this._chunkError=function(e){e=t.statusText||e,this._sendError(Error(e))}}function u(e){(e||={}).chunkSize||(e.chunkSize=s.LocalChunkSize),c.call(this,e);var t,n,r=typeof FileReader<`u`;this.stream=function(e){this._input=e,n=e.slice||e.webkitSlice||e.mozSlice,r?((t=new FileReader).onload=b(this._chunkLoaded,this),t.onerror=b(this._chunkError,this)):t=new FileReaderSync,this._nextChunk()},this._nextChunk=function(){this._finished||this._config.preview&&!(this._rowCount<this._config.preview)||this._readChunk()},this._readChunk=function(){var e=this._input,i=(this._config.chunkSize&&(i=Math.min(this._start+this._config.chunkSize,this._input.size),e=n.call(e,this._start,i)),t.readAsText(e,this._config.encoding));r||this._chunkLoaded({target:{result:i}})},this._chunkLoaded=function(e){this._start+=this._config.chunkSize,this._finished=!this._config.chunkSize||this._start>=this._input.size,this.parseChunk(e.target.result)},this._chunkError=function(){this._sendError(t.error)}}function d(e){var t;c.call(this,e||={}),this.stream=function(e){return t=e,this._nextChunk()},this._nextChunk=function(){var e,n;if(!this._finished)return e=this._config.chunkSize,t=e?(n=t.substring(0,e),t.substring(e)):(n=t,``),this._finished=!t,this.parseChunk(n)}}function f(e){c.call(this,e||={});var t=[],n=!0,r=!1;this.pause=function(){c.prototype.pause.apply(this,arguments),this._input.pause()},this.resume=function(){c.prototype.resume.apply(this,arguments),this._input.resume()},this.stream=function(e){this._input=e,this._input.on(`data`,this._streamData),this._input.on(`end`,this._streamEnd),this._input.on(`error`,this._streamError)},this._checkIsFinished=function(){r&&t.length===1&&(this._finished=!0)},this._nextChunk=function(){this._checkIsFinished(),t.length?this.parseChunk(t.shift()):n=!0},this._streamData=b(function(e){try{t.push(typeof e==`string`?e:e.toString(this._config.encoding)),n&&(n=!1,this._checkIsFinished(),this.parseChunk(t.shift()))}catch(e){this._streamError(e)}},this),this._streamError=b(function(e){this._streamCleanUp(),this._sendError(e)},this),this._streamEnd=b(function(){this._streamCleanUp(),r=!0,this._streamData(``)},this),this._streamCleanUp=b(function(){this._input.removeListener(`data`,this._streamData),this._input.removeListener(`end`,this._streamEnd),this._input.removeListener(`error`,this._streamError)},this)}function p(e){var t,n,r,i,a=2**53,o=-a,c=/^\s*-?(\d+\.?|\.\d+|\d+\.\d+)([eE][-+]?\d+)?\s*$/,l=/^((\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+([+-][0-2]\d:[0-5]\d|Z))|(\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d([+-][0-2]\d:[0-5]\d|Z))|(\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d([+-][0-2]\d:[0-5]\d|Z)))$/,u=this,d=0,f=0,p=!1,g=!1,_=[],v={data:[],errors:[],meta:{}};function b(t){return e.skipEmptyLines===`greedy`?t.join(``).trim()===``:t.length===1&&t[0].length===0}function S(){if(v&&r&&(w(`Delimiter`,`UndetectableDelimiter`,`Unable to auto-detect delimiting character; defaulted to '`+s.DefaultDelimiter+`'`),r=!1),e.skipEmptyLines&&(v.data=v.data.filter(function(e){return!b(e)})),C()){if(v)if(Array.isArray(v.data[0])){for(var t=0;C()&&t<v.data.length;t++)v.data[t].forEach(n);v.data.splice(0,1)}else v.data.forEach(n);function n(t,n){x(e.transformHeader)&&(t=e.transformHeader(t,n)),_.push(t)}}function n(t,n){for(var r=e.header?{}:[],i=0;i<t.length;i++){var s=i,u=t[i],u=((t,n)=>(t=>(e.dynamicTypingFunction&&e.dynamicTyping[t]===void 0&&(e.dynamicTyping[t]=e.dynamicTypingFunction(t)),!0===(e.dynamicTyping[t]||e.dynamicTyping)))(t)?n===`true`||n===`TRUE`||n!==`false`&&n!==`FALSE`&&((e=>{if(c.test(e)&&(e=parseFloat(e),o<e&&e<a))return 1})(n)?parseFloat(n):l.test(n)?new Date(n):n===``?null:n):n)(s=e.header?i>=_.length?`__parsed_extra`:_[i]:s,u=e.transform?e.transform(u,s):u);s===`__parsed_extra`?(r[s]=r[s]||[],r[s].push(u)):r[s]=u}return e.header&&(i>_.length?w(`FieldMismatch`,`TooManyFields`,`Too many fields: expected `+_.length+` fields but parsed `+i,f+n):i<_.length&&w(`FieldMismatch`,`TooFewFields`,`Too few fields: expected `+_.length+` fields but parsed `+i,f+n)),r}var i;v&&(e.header||e.dynamicTyping||e.transform)&&(i=1,!v.data.length||Array.isArray(v.data[0])?(v.data=v.data.map(n),i=v.data.length):v.data=n(v.data,0),e.header&&v.meta&&(v.meta.fields=_),f+=i)}function C(){return e.header&&_.length===0}function w(e,t,n,r){e={type:e,code:t,message:n},r!==void 0&&(e.row=r),v.errors.push(e)}x(e.step)&&(i=e.step,e.step=function(t){v=t,C()?S():(S(),v.data.length!==0&&(d+=t.data.length,e.preview&&d>e.preview?n.abort():(v.data=v.data[0],i(v,u))))}),this.parse=function(i,a,o){var c=e.quoteChar||`"`,c=(e.newline||=this.guessLineEndings(i,c),r=!1,e.delimiter?x(e.delimiter)&&(e.delimiter=e.delimiter(i),v.meta.delimiter=e.delimiter):((c=((t,n,r,i,a)=>{var o,c,l,u;a||=[`,`,` `,`|`,`;`,s.RECORD_SEP,s.UNIT_SEP];for(var d=0;d<a.length;d++){for(var f,p=a[d],m=0,g=0,_=0,v=(l=void 0,new h({comments:i,delimiter:p,newline:n,preview:10}).parse(t)),y=0;y<v.data.length;y++)r&&b(v.data[y])?_++:(f=v.data[y].length,g+=f,l===void 0?l=f:0<f&&(m+=Math.abs(f-l),l=f));0<v.data.length&&(g/=v.data.length-_),(c===void 0||m<=c)&&(u===void 0||u<g)&&1.99<g&&(c=m,o=p,u=g)}return{successful:!!(e.delimiter=o),bestDelimiter:o}})(i,e.newline,e.skipEmptyLines,e.comments,e.delimitersToGuess)).successful?e.delimiter=c.bestDelimiter:(r=!0,e.delimiter=s.DefaultDelimiter),v.meta.delimiter=e.delimiter),y(e));return e.preview&&e.header&&c.preview++,t=i,n=new h(c),v=n.parse(t,a,o),S(),p?{meta:{paused:!0}}:v||{meta:{paused:!1}}},this.paused=function(){return p},this.pause=function(){p=!0,n.abort(),t=x(e.chunk)?``:t.substring(n.getCharIndex())},this.resume=function(){u.streamer._halted?(p=!1,u.streamer.parseChunk(t,!0)):setTimeout(u.resume,3)},this.aborted=function(){return g},this.abort=function(){g=!0,n.abort(),v.meta.aborted=!0,x(e.complete)&&e.complete(v),t=``},this.guessLineEndings=function(e,t){e=e.substring(0,1048576);var t=RegExp(m(t)+`([^]*?)`+m(t),`gm`),n=(e=e.replace(t,``)).split(`\r`),t=e.split(`
|
|
3
|
+
`),e=1<t.length&&t[0].length<n[0].length;if(n.length===1||e)return`
|
|
4
|
+
`;for(var r=0,i=0;i<n.length;i++)n[i][0]===`
|
|
5
|
+
`&&r++;return r>=n.length/2?`\r
|
|
6
|
+
`:`\r`}}function m(e){return e.replace(/[.*+?^${}()|[\]\\]/g,`\\$&`)}function h(e){var t=(e||={}).delimiter,n=e.newline,r=e.comments,i=e.step,a=e.preview,o=e.fastMode,c=null,l=!1,u=e.quoteChar==null?`"`:e.quoteChar,d=u;if(e.escapeChar!==void 0&&(d=e.escapeChar),(typeof t!=`string`||-1<s.BAD_DELIMITERS.indexOf(t))&&(t=`,`),r===t)throw Error(`Comment character same as delimiter`);!0===r?r=`#`:(typeof r!=`string`||-1<s.BAD_DELIMITERS.indexOf(r))&&(r=!1),n!==`
|
|
7
|
+
`&&n!==`\r`&&n!==`\r
|
|
8
|
+
`&&(n=`
|
|
9
|
+
`);var f=0,p=!1;this.parse=function(s,h,g){if(typeof s!=`string`)throw Error(`Input must be a string`);var _=s.length,v=t.length,y=n.length,b=r.length,S=x(i),C=[],w=[],T=[],E=f=0;if(!s)return N();if(o||!1!==o&&s.indexOf(u)===-1){for(var D=s.split(n),O=0;O<D.length;O++){if(T=D[O],f+=T.length,O!==D.length-1)f+=n.length;else if(g)return N();if(!r||T.substring(0,b)!==r){if(S){if(C=[],te(T.split(t)),ae(),p)return N()}else te(T.split(t));if(a&&a<=O)return C=C.slice(0,a),N(!0)}}return N()}for(var k=s.indexOf(t,f),A=s.indexOf(n,f),j=new RegExp(m(d)+m(u),`g`),M=s.indexOf(u,f);;)if(s[f]===u)for(M=f,f++;;){if((M=s.indexOf(u,M+1))===-1)return g||w.push({type:`Quotes`,code:`MissingQuotes`,message:`Quoted field unterminated`,row:C.length,index:f}),re();if(M===_-1)return re(s.substring(f,M).replace(j,u));if(u===d&&s[M+1]===d)M++;else if(u===d||M===0||s[M-1]!==d){k!==-1&&k<M+1&&(k=s.indexOf(t,M+1));var ee=ne((A=A!==-1&&A<M+1?s.indexOf(n,M+1):A)===-1?k:Math.min(k,A));if(s.substr(M+1+ee,v)===t){T.push(s.substring(f,M).replace(j,u)),s[f=M+1+ee+v]!==u&&(M=s.indexOf(u,f)),k=s.indexOf(t,f),A=s.indexOf(n,f);break}if(ee=ne(A),s.substring(M+1+ee,M+1+ee+y)===n){if(T.push(s.substring(f,M).replace(j,u)),ie(M+1+ee+y),k=s.indexOf(t,f),M=s.indexOf(u,f),S&&(ae(),p))return N();if(a&&C.length>=a)return N(!0);break}w.push({type:`Quotes`,code:`InvalidQuotes`,message:`Trailing quote on quoted field is malformed`,row:C.length,index:f}),M++}}else if(r&&T.length===0&&s.substring(f,f+b)===r){if(A===-1)return N();f=A+y,A=s.indexOf(n,f),k=s.indexOf(t,f)}else if(k!==-1&&(k<A||A===-1))T.push(s.substring(f,k)),f=k+v,k=s.indexOf(t,f);else{if(A===-1)break;if(T.push(s.substring(f,A)),ie(A+y),S&&(ae(),p))return N();if(a&&C.length>=a)return N(!0)}return re();function te(e){C.push(e),E=f}function ne(e){var t=0;return t=e!==-1&&(e=s.substring(M+1,e))&&e.trim()===``?e.length:t}function re(e){return g||(e===void 0&&(e=s.substring(f)),T.push(e),f=_,te(T),S&&ae()),N()}function ie(e){f=e,te(T),T=[],A=s.indexOf(n,f)}function N(r){if(e.header&&!h&&C.length&&!l){var i=C[0],a=Object.create(null),o=new Set(i);let t=!1;for(let n=0;n<i.length;n++){let r=i[n];if(a[r=x(e.transformHeader)?e.transformHeader(r,n):r]){let e,s=a[r];for(;e=r+`_`+s,s++,o.has(e););o.add(e),i[n]=e,a[r]++,t=!0,(c=c===null?{}:c)[e]=r}else a[r]=1,i[n]=r;o.add(r)}t&&console.warn(`Duplicate headers found and renamed.`),l=!0}return{data:C,errors:w,meta:{delimiter:t,linebreak:n,aborted:p,truncated:!!r,cursor:E+(h||0),renamedHeaders:c}}}function ae(){i(N()),C=[],w=[]}},this.abort=function(){p=!0},this.getCharIndex=function(){return f}}function g(e){var t=e.data,n=a[t.workerId],r=!1;if(t.error)n.userError(t.error,t.file);else if(t.results&&t.results.data){var i={abort:function(){r=!0,_(t.workerId,{data:[],errors:[],meta:{aborted:!0}})},pause:v,resume:v};if(x(n.userStep)){for(var o=0;o<t.results.data.length&&(n.userStep({data:t.results.data[o],errors:t.results.errors,meta:t.results.meta},i),!r);o++);delete t.results}else x(n.userChunk)&&(n.userChunk(t.results,i,t.file),delete t.results)}t.finished&&!r&&_(t.workerId,t.results)}function _(e,t){var n=a[e];x(n.userComplete)&&n.userComplete(t),n.terminate(),delete a[e]}function v(){throw Error(`Not implemented.`)}function y(e){if(typeof e!=`object`||!e)return e;var t,n=Array.isArray(e)?[]:{};for(t in e)n[t]=y(e[t]);return n}function b(e,t){return function(){e.apply(t,arguments)}}function x(e){return typeof e==`function`}return s.parse=function(n,r){var i=(r||={}).dynamicTyping||!1;if(x(i)&&(r.dynamicTypingFunction=i,i={}),r.dynamicTyping=i,r.transform=!!x(r.transform)&&r.transform,!r.worker||!s.WORKERS_SUPPORTED)return i=null,s.NODE_STREAM_INPUT,typeof n==`string`?(n=(e=>e.charCodeAt(0)===65279?e.slice(1):e)(n),i=new(r.download?l:d)(r)):!0===n.readable&&x(n.read)&&x(n.on)?i=new f(r):(t.File&&n instanceof File||n instanceof Object)&&(i=new u(r)),i.stream(n);(i=(()=>{var n;return!!s.WORKERS_SUPPORTED&&(n=(()=>{var n=t.URL||t.webkitURL||null,r=e.toString();return s.BLOB_URL||=n.createObjectURL(new Blob([`var global = (function() { if (typeof self !== 'undefined') { return self; } if (typeof window !== 'undefined') { return window; } if (typeof global !== 'undefined') { return global; } return {}; })(); global.IS_PAPA_WORKER=true; `,`(`,r,`)();`],{type:`text/javascript`}))})(),(n=new t.Worker(n)).onmessage=g,n.id=o++,a[n.id]=n)})()).userStep=r.step,i.userChunk=r.chunk,i.userComplete=r.complete,i.userError=r.error,r.step=x(r.step),r.chunk=x(r.chunk),r.complete=x(r.complete),r.error=x(r.error),delete r.worker,i.postMessage({input:n,config:r,workerId:i.id})},s.unparse=function(e,t){var n=!1,r=!0,i=`,`,a=`\r
|
|
10
|
+
`,o=`"`,c=o+o,l=!1,u=null,d=!1,f=((()=>{if(typeof t==`object`){if(typeof t.delimiter!=`string`||s.BAD_DELIMITERS.filter(function(e){return t.delimiter.indexOf(e)!==-1}).length||(i=t.delimiter),typeof t.quotes!=`boolean`&&typeof t.quotes!=`function`&&!Array.isArray(t.quotes)||(n=t.quotes),typeof t.skipEmptyLines!=`boolean`&&typeof t.skipEmptyLines!=`string`||(l=t.skipEmptyLines),typeof t.newline==`string`&&(a=t.newline),typeof t.quoteChar==`string`&&(o=t.quoteChar),typeof t.header==`boolean`&&(r=t.header),Array.isArray(t.columns)){if(t.columns.length===0)throw Error(`Option columns is empty`);u=t.columns}t.escapeChar!==void 0&&(c=t.escapeChar+o),t.escapeFormulae instanceof RegExp?d=t.escapeFormulae:typeof t.escapeFormulae==`boolean`&&t.escapeFormulae&&(d=/^[=+\-@\t\r].*$/)}})(),new RegExp(m(o),`g`));if(typeof e==`string`&&(e=JSON.parse(e)),Array.isArray(e)){if(!e.length||Array.isArray(e[0]))return p(null,e,l);if(typeof e[0]==`object`)return p(u||Object.keys(e[0]),e,l)}else if(typeof e==`object`)return typeof e.data==`string`&&(e.data=JSON.parse(e.data)),Array.isArray(e.data)&&(e.fields||=e.meta&&e.meta.fields||u,e.fields||=Array.isArray(e.data[0])?e.fields:typeof e.data[0]==`object`?Object.keys(e.data[0]):[],Array.isArray(e.data[0])||typeof e.data[0]==`object`||(e.data=[e.data])),p(e.fields||[],e.data||[],l);throw Error(`Unable to serialize unrecognized input`);function p(e,t,n){var o=``,s=(typeof e==`string`&&(e=JSON.parse(e)),typeof t==`string`&&(t=JSON.parse(t)),Array.isArray(e)&&0<e.length),c=!Array.isArray(t[0]);if(s&&r){for(var l=0;l<e.length;l++)0<l&&(o+=i),o+=h(e[l],l);0<t.length&&(o+=a)}for(var u=0;u<t.length;u++){var d=(s?e:t[u]).length,f=!1,p=s?Object.keys(t[u]).length===0:t[u].length===0;if(n&&!s&&(f=n===`greedy`?t[u].join(``).trim()===``:t[u].length===1&&t[u][0].length===0),n===`greedy`&&s){for(var m=[],g=0;g<d;g++){var _=c?e[g]:g;m.push(t[u][_])}f=m.join(``).trim()===``}if(!f){for(var v=0;v<d;v++){0<v&&!p&&(o+=i);var y=s&&c?e[v]:v;o+=h(t[u][y],v)}u<t.length-1&&(!n||0<d&&!p)&&(o+=a)}}return o}function h(e,t){var r,a;return e==null?``:e.constructor===Date?JSON.stringify(e).slice(1,25):(a=!1,d&&typeof e==`string`&&d.test(e)&&(e=`'`+e,a=!0),r=e.toString().replace(f,c),(a=a||!0===n||typeof n==`function`&&n(e,t)||Array.isArray(n)&&n[t]||((e,t)=>{for(var n=0;n<t.length;n++)if(-1<e.indexOf(t[n]))return!0;return!1})(r,s.BAD_DELIMITERS)||-1<r.indexOf(i)||r.charAt(0)===` `||r.charAt(r.length-1)===` `)?o+r+o:r)}},s.RECORD_SEP=``,s.UNIT_SEP=``,s.BYTE_ORDER_MARK=``,s.BAD_DELIMITERS=[`\r`,`
|
|
11
|
+
`,`"`,s.BYTE_ORDER_MARK],s.WORKERS_SUPPORTED=!r&&!!t.Worker,s.NODE_STREAM_INPUT=1,s.LocalChunkSize=10485760,s.RemoteChunkSize=5242880,s.DefaultDelimiter=`,`,s.Parser=h,s.ParserHandle=p,s.NetworkStreamer=l,s.FileStreamer=u,s.StringStreamer=d,s.ReadableStreamStreamer=f,t.jQuery&&((n=t.jQuery).fn.parse=function(e){var r=e.config||{},i=[];return this.each(function(e){if(!(n(this).prop(`tagName`).toUpperCase()===`INPUT`&&n(this).attr(`type`).toLowerCase()===`file`&&t.FileReader)||!this.files||this.files.length===0)return!0;for(var a=0;a<this.files.length;a++)i.push({file:this.files[a],inputElem:this,instanceConfig:n.extend({},r)})}),a(),this;function a(){if(i.length===0)x(e.complete)&&e.complete();else{var t,r,a,c,l=i[0];if(x(e.before)){var u=e.before(l.file,l.inputElem);if(typeof u==`object`){if(u.action===`abort`)return t=`AbortError`,r=l.file,a=l.inputElem,c=u.reason,void(x(e.error)&&e.error({name:t},r,a,c));if(u.action===`skip`)return void o();typeof u.config==`object`&&(l.instanceConfig=n.extend(l.instanceConfig,u.config))}else if(u===`skip`)return void o()}var d=l.instanceConfig.complete;l.instanceConfig.complete=function(e){x(d)&&d(e,l.file,l.inputElem),o()},s.parse(l.file,l.instanceConfig)}}function o(){i.splice(0,1),a()}}),i&&(t.onmessage=function(e){e=e.data,s.WORKER_ID===void 0&&e&&(s.WORKER_ID=e.workerId),typeof e.input==`string`?t.postMessage({workerId:s.WORKER_ID,results:s.parse(e.input,e.config),finished:!0}):(t.File&&e.input instanceof File||e.input instanceof Object)&&(e=s.parse(e.input,e.config))&&t.postMessage({workerId:s.WORKER_ID,results:e,finished:!0})}),(l.prototype=Object.create(c.prototype)).constructor=l,(u.prototype=Object.create(c.prototype)).constructor=u,(d.prototype=Object.create(d.prototype)).constructor=d,(f.prototype=Object.create(c.prototype)).constructor=f,s})}))(),1),Wt=[{id:`en-US`,name:`English (US)`,flag:`🇺🇸`},{id:`ja-JP`,name:`日本語`,flag:`🇯🇵`},{id:`es-ES`,name:`Español (España)`,flag:`🇪🇸`},{id:`fr-FR`,name:`Français`,flag:`🇫🇷`},{id:`de-DE`,name:`Deutsch`,flag:`🇩🇪`},{id:`it-IT`,name:`Italiano`,flag:`🇮🇹`},{id:`pt-BR`,name:`Português (Brasil)`,flag:`🇧🇷`},{id:`ko-KR`,name:`한국어`,flag:`🇰🇷`},{id:`zh-CN`,name:`简体中文`,flag:`🇨🇳`},{id:`zh-TW`,name:`繁體中文`,flag:`🇹🇼`},{id:`ru-RU`,name:`Русский`,flag:`🇷🇺`},{id:`id-ID`,name:`Bahasa Indonesia`,flag:`🇮🇩`},{id:`th-TH`,name:`ไทย`,flag:`🇹🇭`},{id:`vi-VN`,name:`Tiếng Việt`,flag:`🇻🇳`},{id:`tr-TR`,name:`Türkçe`,flag:`🇹🇷`},{id:`ar-SA`,name:`العربية`,flag:`🇸🇦`}],Gt=[{label:`EFIGS`,ids:[`en-US`,`fr-FR`,`it-IT`,`de-DE`,`es-ES`]},{label:`CJK`,ids:[`zh-CN`,`ja-JP`,`ko-KR`]}],Kt=({currentLocales:e,onAdd:t})=>{let{t:n}=c(),[r,i]=(0,L.useState)(!1),[a,o]=(0,L.useState)(``),s=(0,L.useRef)(null);(0,L.useEffect)(()=>{let e=e=>{s.current&&!s.current.contains(e.target)&&i(!1)};return document.addEventListener(`mousedown`,e),()=>document.removeEventListener(`mousedown`,e)},[]);let l=(0,L.useMemo)(()=>{let t=a.toLowerCase();return Wt.filter(n=>!e.some(e=>e.id===n.id)&&(n.name.toLowerCase().includes(t)||n.id.toLowerCase().includes(t)))},[a,e]),u=e=>{e&&(t([e]),o(``),i(!1))},d=n=>{let r=Wt.filter(t=>n.includes(t.id)&&!e.some(e=>e.id===t.id));r.length>0&&(t(r),i(!1))},f=n(`app.language.add`,`Add Language`),p=n(`app.language.searchPlaceholder`,`Search (e.g. ja, Japanese)`),m=n(`app.language.presets`,`Presets`),h=n(`app.language.noResults`,`No languages found`);return(0,R.jsx)(`div`,{className:`relative`,ref:s,children:r?(0,R.jsxs)(`div`,{className:`absolute top-0 left-0 w-64 bg-white rounded-xl shadow-xl border border-slate-200 z-50 overflow-hidden animate-in fade-in zoom-in-95 duration-100 origin-top-left`,children:[(0,R.jsx)(`div`,{className:`p-2 border-b border-slate-100`,children:(0,R.jsxs)(`div`,{className:`relative`,children:[(0,R.jsx)(Pe,{size:14,className:`absolute left-2 top-1/2 -translate-y-1/2 text-slate-400`}),(0,R.jsx)(`input`,{autoFocus:!0,type:`text`,value:a,onChange:e=>o(e.target.value),placeholder:p,className:`w-full pl-7 pr-2 py-1.5 text-xs bg-slate-50 border border-slate-200 rounded-md focus:outline-hidden focus:border-blue-500 focus:ring-1 focus:ring-blue-500`})]})}),a===``&&(0,R.jsxs)(`div`,{className:`p-2 border-b border-slate-100 bg-slate-50/50`,children:[(0,R.jsx)(`div`,{className:`text-[10px] font-bold text-slate-400 uppercase tracking-wider mb-1.5 px-1`,children:m}),(0,R.jsx)(`div`,{className:`flex gap-2`,children:Gt.map(e=>(0,R.jsxs)(`button`,{onClick:()=>d(e.ids),className:`flex-1 py-1 px-2 bg-white border border-slate-200 rounded-sm text-[10px] font-semibold text-slate-600 hover:border-blue-400 hover:text-blue-600 transition-colors`,children:[`+ `,e.label]},e.label))})]}),(0,R.jsx)(`div`,{className:`max-h-48 overflow-y-auto p-1`,children:l.length===0?(0,R.jsx)(`div`,{className:`text-center py-4 text-xs text-slate-400`,children:h}):l.map(e=>(0,R.jsxs)(`button`,{onClick:()=>u(e),className:`w-full flex items-center gap-2 px-2 py-1.5 rounded-sm hover:bg-blue-50 text-left transition-colors group`,children:[(0,R.jsx)(`span`,{className:`text-base leading-none`,children:e.flag}),(0,R.jsxs)(`div`,{className:`flex flex-col`,children:[(0,R.jsx)(`span`,{className:`text-xs font-medium text-slate-700 group-hover:text-blue-700`,children:e.name}),(0,R.jsx)(`span`,{className:`text-[10px] text-slate-400 group-hover:text-blue-400`,children:e.id})]})]},e.id))})]}):(0,R.jsxs)(`button`,{onClick:()=>i(!0),className:`flex items-center gap-1 px-3 py-1.5 rounded-lg border border-slate-200 bg-white text-xs font-medium text-slate-600 hover:bg-slate-50 hover:border-blue-300 transition-colors shadow-xs`,children:[(0,R.jsx)(ke,{size:14}),f]})})},qt=({selectedFont:e,setSelectedFont:t,fontOptions:n})=>{let[r,i]=(0,L.useState)(!1),a=(0,L.useRef)(null);(0,L.useEffect)(()=>{let e=e=>{a.current&&!a.current.contains(e.target)&&i(!1)};return document.addEventListener(`mousedown`,e),()=>document.removeEventListener(`mousedown`,e)},[]);let o=n.find(t=>t.value===e)||n[0];return(0,R.jsxs)(`div`,{className:`relative w-full`,ref:a,children:[(0,R.jsxs)(`button`,{onClick:()=>i(!r),className:`w-full flex items-center justify-between px-3 py-2 bg-white border border-slate-200 rounded-lg text-xs hover:border-blue-400 transition-colors`,children:[(0,R.jsx)(`span`,{style:{fontFamily:o?.family},className:`text-sm`,children:o?.name}),(0,R.jsx)(b,{size:14,className:`text-slate-400`})]}),r&&(0,R.jsx)(`div`,{className:`absolute top-full left-0 right-0 mt-1 bg-white border border-slate-200 rounded-lg shadow-xl z-50 max-h-60 overflow-y-auto`,children:n.map(n=>(0,R.jsxs)(`button`,{onClick:()=>{t(n.value),i(!1)},className:`w-full flex items-center justify-between px-3 py-2.5 text-left hover:bg-slate-50 transition-colors border-b border-slate-50 last:border-0`,children:[(0,R.jsxs)(`div`,{className:`flex flex-col gap-0.5`,children:[(0,R.jsx)(`span`,{className:`text-xs font-bold text-slate-700`,children:n.name}),(0,R.jsx)(`span`,{className:`text-lg text-slate-900 leading-tight`,style:{fontFamily:n.family},children:`ShipScreens 123`})]}),e===n.value&&(0,R.jsx)(y,{size:14,className:`text-blue-600`})]},n.value))})]})},Jt=`shipscreens_team_sync_v1`,Yt=()=>{if(typeof window>`u`)return{};try{return JSON.parse(localStorage.getItem(Jt)||`{}`)||{}}catch{return{}}},Xt=e=>{if(typeof window>`u`)return;let t=Yt();localStorage.setItem(Jt,JSON.stringify({...t,...e}))},Zt=e=>{if(!e)return``;try{return new Date(e*1e3).toISOString().replace(`T`,` `).slice(0,16)+` UTC`}catch{return``}},Qt=({token:e,captureTeamSpec:t,applyTeamSpec:n})=>{let{t:r}=c(),{addToast:i}=s(),a=(0,L.useMemo)(()=>Yt(),[]),[o,l]=(0,L.useState)([]),[u,d]=(0,L.useState)([]),[f,p]=(0,L.useState)(a.workspaceId||``),[m,h]=(0,L.useState)(a.projectId||``),[g,_]=(0,L.useState)(null),[v,y]=(0,L.useState)(null),[b,S]=(0,L.useState)(``),[T,E]=(0,L.useState)(null),[D,O]=(0,L.useState)(!1),[k,A]=(0,L.useState)(!1),j=(0,L.useCallback)(async()=>{if(e){A(!0);try{let t=(await ie(e))?.workspaces||[];l(t),f&&!t.some(e=>e.workspaceId===f)&&(p(``),h(``),Xt({workspaceId:``,projectId:``}))}catch(e){i({type:`error`,message:r(`app.teamSync.errors.fetchWorkspaces`)}),console.error(e)}finally{A(!1)}}},[i,r,e,f]),M=(0,L.useCallback)(async t=>{if(!(!e||!t)){A(!0);try{let n=(await le(t,e))?.projects||[];d(n),m&&!n.some(e=>e.projectId===m)&&(h(``),Xt({projectId:``}))}catch(e){i({type:`error`,message:r(`app.teamSync.errors.fetchProjects`)}),console.error(e)}finally{A(!1)}}},[i,m,r,e]),te=(0,L.useCallback)(async()=>{if(!(!e||!f||!m))try{let t=await oe(f,m,e);_(typeof t?.headRev==`number`?t.headRev:null),y(t?.headSha||null)}catch{_(null),y(null)}},[m,e,f]);(0,L.useEffect)(()=>{e&&j()},[j,e]),(0,L.useEffect)(()=>{if(e){if(!f){d([]),h(``),Xt({workspaceId:``,projectId:``});return}Xt({workspaceId:f}),M(f)}},[M,e,f]),(0,L.useEffect)(()=>{if(!m){_(null),y(null),Xt({projectId:``});return}Xt({projectId:m}),te()},[m,te]);let re=async()=>{if(e){O(!0);try{let t=(await ce({name:`Workspace`},e))?.workspaceId;if(!t)throw Error(`workspaceId missing`);i({type:`success`,message:r(`app.teamSync.toasts.workspaceCreated`)}),await j(),p(t)}catch(e){i({type:`error`,message:r(`app.teamSync.errors.createWorkspace`)}),console.error(e)}finally{O(!1)}}},ae=async()=>{if(!(!e||!f)){O(!0);try{let t=(await se(f,{name:`Project`},e))?.projectId;if(!t)throw Error(`projectId missing`);i({type:`success`,message:r(`app.teamSync.toasts.projectCreated`)}),await M(f),h(t),_(0),y(``)}catch(e){i({type:`error`,message:r(`app.teamSync.errors.createProject`)}),console.error(e)}finally{O(!1)}}},F=async()=>{if(!(!e||!f||!m)){O(!0);try{let t=await oe(f,m,e),a=t?.spec;if(!a){i({type:`info`,message:r(`app.teamSync.toasts.noRemoteSpec`)});return}n?.(a),_(typeof t?.headRev==`number`?t.headRev:null),y(t?.headSha||null),i({type:`success`,message:r(`app.teamSync.toasts.pulled`)})}catch(e){i({type:`error`,message:r(`app.teamSync.errors.pull`)}),console.error(e)}finally{O(!1)}}},ue=async()=>{if(!(!e||!f||!m)){O(!0);try{let n=await oe(f,m,e),a=Number(n?.headRev||0),o=t?.();if(!o)throw Error(`spec missing`);let s=await N(f,m,{baseRev:a,spec:o},e);if(s?.error===`conflict`){i({type:`error`,message:r(`app.teamSync.errors.conflict`)});return}_(typeof s?.headRev==`number`?s.headRev:null),y(s?.headSha||null),i({type:`success`,message:r(`app.teamSync.toasts.pushed`)})}catch(e){String(e?.message||``).includes(`409`)?i({type:`error`,message:r(`app.teamSync.errors.conflict`)}):i({type:`error`,message:r(`app.teamSync.errors.push`)}),console.error(e)}finally{O(!1)}}},de=async()=>{if(!(!e||!f)){O(!0);try{let t=await ne(f,{role:`editor`},e);if(!t?.token)throw Error(`invite token missing`);E(t),i({type:`success`,message:r(`app.teamSync.toasts.inviteCreated`),action:{label:r(`app.teamSync.copy`),onClick:async()=>{let e=await x(t.token);i({type:e.ok?`success`:`error`,message:e.ok?r(`common.copied`,{defaultValue:`Copied`}):r(`common.copyFailed`,{defaultValue:`Copy failed`})})}}})}catch(e){i({type:`error`,message:r(`app.teamSync.errors.invite`)}),console.error(e)}finally{O(!1)}}},fe=async()=>{if(!(!e||!b)){O(!0);try{let t=await P(b,e);if(!t?.workspaceId)throw Error(`workspaceId missing`);i({type:`success`,message:r(`app.teamSync.toasts.inviteAccepted`)}),S(``),await j(),p(t.workspaceId),h(``)}catch(e){i({type:`error`,message:r(`app.teamSync.errors.inviteAccept`)}),console.error(e)}finally{O(!1)}}},pe=!!e;return(0,R.jsxs)(`div`,{className:`bg-white p-4 rounded-xl border border-slate-200 shadow-xs space-y-3`,children:[(0,R.jsxs)(`div`,{className:`flex items-center justify-between gap-2`,children:[(0,R.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,R.jsx)(`div`,{className:`p-2 bg-slate-100 text-slate-700 rounded-lg border border-slate-200`,children:(0,R.jsx)(I,{size:18})}),(0,R.jsxs)(`div`,{children:[(0,R.jsx)(`h4`,{className:`text-sm font-bold text-slate-800`,children:r(`app.teamSync.title`)}),(0,R.jsx)(`div`,{className:`text-[10px] text-slate-500`,children:r(`app.teamSync.subtitle`)})]})]}),(0,R.jsx)(`button`,{type:`button`,onClick:j,disabled:!pe||k,className:`px-2 py-1 text-[10px] font-bold rounded-sm border border-slate-200 text-slate-600 hover:bg-slate-50 disabled:opacity-50`,title:r(`app.teamSync.refresh`),children:(0,R.jsxs)(`span`,{className:`inline-flex items-center gap-1`,children:[(0,R.jsx)(Ae,{size:12}),` `,r(`app.teamSync.refresh`)]})})]}),(0,R.jsxs)(`div`,{className:`flex gap-2 p-2 bg-slate-50 border border-slate-200 rounded-sm text-[10px] text-slate-600 leading-tight`,children:[(0,R.jsx)(ee,{size:14,className:`shrink-0 text-slate-400`}),(0,R.jsx)(`span`,{children:r(`app.teamSync.note`)})]}),pe?(0,R.jsxs)(R.Fragment,{children:[(0,R.jsxs)(`div`,{className:`grid grid-cols-1 gap-2`,children:[(0,R.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,R.jsxs)(`select`,{value:f,onChange:e=>p(e.target.value),className:`flex-1 px-2 py-2 rounded-sm border border-slate-200 bg-white text-xs text-slate-700`,children:[(0,R.jsx)(`option`,{value:``,children:r(`app.teamSync.selectWorkspace`)}),o.map(e=>(0,R.jsx)(`option`,{value:e.workspaceId,children:e.name},e.workspaceId))]}),(0,R.jsx)(`button`,{type:`button`,onClick:re,disabled:D,className:`px-3 py-2 rounded-sm bg-slate-800 text-white text-xs font-bold hover:bg-slate-700 disabled:opacity-50`,children:r(`app.teamSync.newWorkspace`)})]}),(0,R.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,R.jsxs)(`select`,{value:m,onChange:e=>h(e.target.value),disabled:!f,className:`flex-1 px-2 py-2 rounded-sm border border-slate-200 bg-white text-xs text-slate-700 disabled:opacity-50`,children:[(0,R.jsx)(`option`,{value:``,children:r(`app.teamSync.selectProject`)}),u.map(e=>(0,R.jsx)(`option`,{value:e.projectId,children:e.name},e.projectId))]}),(0,R.jsx)(`button`,{type:`button`,onClick:ae,disabled:D||!f,className:`px-3 py-2 rounded-sm bg-white border border-slate-200 text-slate-700 text-xs font-bold hover:bg-slate-50 disabled:opacity-50`,children:r(`app.teamSync.newProject`)})]})]}),(0,R.jsxs)(`div`,{className:`flex items-center justify-between text-[10px] text-slate-500`,children:[(0,R.jsx)(`div`,{children:g!==null&&(0,R.jsxs)(`span`,{className:`tabular-nums`,children:[r(`app.teamSync.head`),`: r`,g,v?` (${v.slice(0,7)})`:``]})}),f&&m&&(0,R.jsx)(`button`,{type:`button`,onClick:te,className:`text-[10px] font-bold text-slate-600 hover:underline`,children:r(`app.teamSync.refreshHead`)})]}),(0,R.jsxs)(`div`,{className:`grid grid-cols-2 gap-2`,children:[(0,R.jsx)(`button`,{type:`button`,onClick:F,disabled:D||!f||!m,className:`flex items-center justify-center gap-2 py-2 bg-white border border-slate-200 text-slate-700 rounded-lg hover:bg-slate-50 disabled:opacity-50`,children:(0,R.jsx)(`span`,{className:`text-xs font-bold`,children:r(`app.teamSync.pull`)})}),(0,R.jsx)(`button`,{type:`button`,onClick:ue,disabled:D||!f||!m,className:`flex items-center justify-center gap-2 py-2 bg-blue-600 text-white rounded-lg hover:bg-blue-700 disabled:opacity-50`,children:(0,R.jsx)(`span`,{className:`text-xs font-bold`,children:r(`app.teamSync.push`)})})]}),(0,R.jsxs)(`div`,{className:`space-y-2`,children:[(0,R.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,R.jsx)(`div`,{className:`text-xs font-bold text-slate-700`,children:r(`app.teamSync.invites`)}),(0,R.jsx)(`button`,{type:`button`,onClick:de,disabled:D||!f,className:`text-[10px] font-bold text-blue-600 hover:underline disabled:opacity-50`,children:r(`app.teamSync.createInvite`)})]}),T?.token&&(0,R.jsxs)(`div`,{className:`flex items-center gap-2 p-2 bg-slate-50 border border-slate-200 rounded-sm`,children:[(0,R.jsx)(`code`,{className:`text-[10px] text-slate-700 break-all flex-1`,children:T.token}),(0,R.jsx)(C,{value:T.token,onCopied:()=>i({type:`success`,message:r(`common.copied`,{defaultValue:`Copied`})}),onCopyFailed:()=>i({type:`error`,message:r(`common.copyFailed`,{defaultValue:`Copy failed`})}),className:`p-1.5 rounded-sm border border-slate-200 bg-white text-slate-600 hover:bg-slate-50`,title:r(`app.teamSync.copy`),"aria-label":r(`app.teamSync.copy`),children:(0,R.jsx)(w,{size:12})})]}),T?.expiresAt&&(0,R.jsxs)(`div`,{className:`text-[10px] text-slate-500`,children:[r(`app.teamSync.expires`),`: `,Zt(T.expiresAt)]}),(0,R.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,R.jsx)(`input`,{value:b,onChange:e=>S(e.target.value),placeholder:r(`app.teamSync.invitePlaceholder`),className:`flex-1 px-2 py-2 rounded-sm border border-slate-200 bg-white text-xs text-slate-700`}),(0,R.jsx)(`button`,{type:`button`,onClick:fe,disabled:D||!b,className:`px-3 py-2 rounded-sm bg-white border border-slate-200 text-slate-700 text-xs font-bold hover:bg-slate-50 disabled:opacity-50`,children:r(`app.teamSync.acceptInvite`)})]})]})]}):(0,R.jsx)(`div`,{className:`text-xs text-slate-500`,children:r(`app.teamSync.signInRequired`)})]})},$t=({activeTab:e,viewMode:t,isMobile:n,controlsVisible:r,controlsTranslation:i,isControlsDragging:a,currentHeaderText:o,currentSubText:s,currentLocaleId:l,updateSlideText:u,currentScreenshot:d,screenshotUploadScope:f=`shared`,setScreenshotUploadScope:m=()=>{},hasCurrentLocaleScreenshotOverride:h=!1,currentSlideScreenshotsByLocale:g={},currentSlideLocaleScreenshotOverrideCount:v=0,hasAnyLocaleScreenshotOverrides:x=!1,hasSharedScreenshot:w=!1,clearCurrentSlideScreenshot:T=()=>{},clearAllCurrentSlideLocaleScreenshotOverrides:D=()=>{},handleFileChange:k,fileInputRef:ee,handleDropWrapper:te,handleDragOver:ne,handleDragEnter:re,handleDragLeave:ie,isDragging:N,locales:ae,setCurrentLocaleId:oe,removeLocale:se,handleAddLocales:ce,deviceId:P,setDeviceId:le,deviceLabelMode:pe=_t.store,setDeviceLabelMode:I=()=>{},orientation:ge,setOrientation:_e,isWatchSelected:Se,applyTheme:Ce,bgType:we,setBgType:Te,bgInputRef:Ee,handleBgDropWrapper:De,handleBgDragOver:ke,handleBgDragEnter:Ae,handleBgDragLeave:je,isBgDragging:Pe,handleBgFileChange:Ie,bgBlur:Ve,setBgBlur:He,bgOpacity:Ue,setBgOpacity:Ge,bgColor:Je,setBgColor:Ye,gradientStart:Xe,setGradientStart:Ze,gradientEnd:Qe,setGradientEnd:$e,frameColor:et,setFrameColor:tt,logoImage:nt,logoInputRef:rt,handleLogoDropWrapper:it,handleLogoDragOver:at,handleLogoDragEnter:ot,handleLogoDragLeave:st,isLogoDragging:ct,handleLogoFileChange:lt,handleLogoRemove:ut,overrideActive:B,ensureSlideOverride:dt,clearSlideOverride:ft,updateSlideOverride:pt,layoutMode:mt,setLayoutMode:ht,effectiveLayoutMode:gt,selectedFont:V,setSelectedFont:yt,fontOptions:xt,textColor:St,setTextColor:Ct,recentColors:wt=[],addRecentColor:H,effectiveTopSpacing:Tt,setTopSpacing:Et,effectiveDeviceScale:Dt,setDeviceScale:Ot,badgeType:kt,setBadgeType:At,applyPreset:jt,myPresets:Mt,requirePro:Nt,openSavePresetDialog:Pt,deleteUserPreset:Ft,isPro:It,storageUsage:Lt,saveProject:Rt,loadProject:zt,loadSampleProject:Bt=()=>{},setConfirmDialog:Vt,saveStatus:Ht,statusMessage:Ut,handleExportJSON:Wt,jsonInputRef:Gt,handleImportJSON:Jt,isJsonDragging:Yt,handleJsonDragOver:Xt,handleJsonDragEnter:Zt,handleJsonDragLeave:$t,handleJsonDropWrapper:en,isCsvDragging:tn,handleCsvDropWrapper:nn,handleCsvDragOver:rn,handleCsvDragEnter:an,handleCsvDragLeave:on,openCsvTemplateDialog:sn,csvInputRef:cn,handleCsvImport:ln,onImportLocaleScreenshots:un,selectedBatchDevices:dn,setSelectedBatchDevices:U=()=>{},toggleBatchDevice:fn,exportStructureMode:W=`locale`,setExportStructureMode:pn=()=>{},teamSyncEnabled:G=!1,teamSyncToken:K=null,captureTeamSpec:q=()=>null,applyTeamSpec:mn=()=>{},onTouchStart:hn,onTouchMove:gn,onTouchEnd:_n,i18n:vn})=>{let{t:J,i18n:Y}=c(),yn=vn||Y,[bn,xn]=(0,L.useState)(``),[Sn,Cn]=(0,L.useState)(!1),wn=(0,L.useRef)(null),Tn=(0,L.useRef)(null),En=(0,L.useRef)(null),Dn={iPhone:J(`app.device.groups.iPhone`),"iPhone Classic":J(`app.device.groups.iphoneClassic`),iPad:J(`app.device.groups.iPad`),Android:J(`app.device.groups.android`),"Android Tablet":J(`app.device.groups.androidTablet`),Watch:J(`app.device.groups.watch`)},On=J(`common.copy`,{defaultValue:`Copy`}),kn=J(`app.data.cliCmd`),An=(0,L.useMemo)(()=>t===`single`?new Set([P]):new Set(dn||[]),[P,dn,t]),jn=(0,L.useMemo)(()=>{let e={};return Object.entries(We).forEach(([t,n])=>{let r=bn?n.filter(e=>An.has(e)||bt(e,z[e],bn)):n;r.length&&(e[t]=r)}),An.forEach(t=>{let n=z[t]?.group;n&&(e[n]||=[],e[n].includes(t)||(e[n]=[t,...e[n]]))}),e},[An,bn]),Mn=({className:e=``})=>(0,R.jsxs)(`div`,{className:`space-y-1 ${e}`,children:[(0,R.jsxs)(`div`,{className:`flex gap-2 bg-slate-50 p-1 rounded-lg border border-slate-200`,children:[(0,R.jsx)(`button`,{type:`button`,onClick:()=>I(_t.store),className:`flex-1 py-1.5 rounded-md text-xs font-medium transition-colors ${pe===_t.store?`bg-white text-blue-600 shadow-xs`:`text-slate-500 hover:text-slate-700`}`,children:J(`app.device.labelMode.store`)}),(0,R.jsx)(`button`,{type:`button`,onClick:()=>I(_t.detailed),className:`flex-1 py-1.5 rounded-md text-xs font-medium transition-colors ${pe===_t.detailed?`bg-white text-blue-600 shadow-xs`:`text-slate-500 hover:text-slate-700`}`,children:J(`app.device.labelMode.detailed`)})]}),(0,R.jsx)(`div`,{className:`text-[10px] text-slate-400 leading-snug`,children:J(`app.device.labelModeHint`)})]}),X=(0,L.useMemo)(()=>({iosRequired:[`iphone69`,`iphone65`,`iphone55`,`ipad13`].filter(e=>z[e]),playPhone:(We.Android||[]).filter(e=>z[e]),playTablet:(We[`Android Tablet`]||[]).filter(e=>z[e]),all:Object.values(We).flat().filter(e=>z[e])}),[]),Nn=e=>{Array.isArray(e)&&U(Array.from(new Set(e)))},Pn=({onSelect:e})=>wt.length?(0,R.jsxs)(`div`,{className:`mt-2`,children:[(0,R.jsx)(`div`,{className:`text-[10px] text-slate-400 mb-1`,children:`Recent`}),(0,R.jsx)(`div`,{className:`flex flex-wrap gap-1`,children:wt.map(t=>(0,R.jsx)(`button`,{onClick:()=>e(t),className:`w-5 h-5 rounded-full border border-slate-200 shadow-xs transition-transform hover:scale-110`,style:{backgroundColor:t},title:t},t))})]}):null,Fn=e=>{let t=e?.settings||{};return t.bgType===`gradient`?{backgroundImage:`linear-gradient(${typeof t.gradientAngle==`number`?t.gradientAngle:135}deg, ${t.gradientStart||`#e0c3fc`}, ${t.gradientEnd||`#8ec5fc`})`}:t.bgColor?{backgroundColor:t.bgColor}:{backgroundColor:`#e2e8f0`}};return(0,R.jsx)(`div`,{className:`w-full md:w-80 ${n&&!r?`max-h-0`:`h-1/2`} md:h-full bg-white border-b md:border-b-0 md:border-r border-slate-200 flex flex-col overflow-y-auto shrink-0 z-120 order-2 md:order-0 shadow-inner md:shadow-none ${n?`transition-all duration-300 max-h-[65vh] fixed inset-x-0 bottom-16`:``} ${n&&!r?`pointer-events-none opacity-0`:``}`,style:{transform:n?`translateY(${i}px)`:void 0,transition:a?`none`:`transform 220ms ease, opacity 200ms ease, max-height 200ms ease`},onTouchStart:hn,onTouchMove:gn,onTouchEnd:_n,children:(0,R.jsxs)(`div`,{className:`p-6 space-y-8`,children:[e===`edit`&&(0,R.jsxs)(R.Fragment,{children:[(0,R.jsxs)(`section`,{className:`space-y-3`,children:[(0,R.jsx)(`h3`,{className:`font-bold text-xs uppercase tracking-wider text-slate-400`,children:J(`app.content.title`)}),(0,R.jsxs)(`div`,{className:`space-y-2`,children:[(0,R.jsx)(`input`,{type:`text`,value:o,onChange:e=>u(`header`,e.target.value),className:`w-full px-2 py-1.5 border border-slate-200 rounded-lg text-xs font-medium`,placeholder:J(`app.content.headerPlaceholder`,{locale:l})}),(0,R.jsx)(`input`,{type:`text`,value:s,onChange:e=>u(`sub`,e.target.value),className:`w-full px-2 py-1.5 border border-slate-200 rounded-lg text-xs`,placeholder:J(`app.content.subPlaceholder`,{locale:l})})]}),(0,R.jsxs)(`div`,{className:`flex items-center justify-between gap-2`,children:[(0,R.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,R.jsx)(`span`,{className:`text-[10px] font-semibold text-slate-500`,children:J(`app.content.screenshotScopeLabel`)}),h&&(0,R.jsx)(`span`,{className:`text-[10px] font-bold px-1.5 py-0.5 rounded-sm border bg-blue-50 text-blue-700 border-blue-100`,children:J(`app.content.screenshotScopeOverride`)})]}),(0,R.jsxs)(`div`,{className:`inline-flex rounded-lg border border-slate-200 overflow-hidden bg-white shadow-xs`,children:[(0,R.jsx)(`button`,{type:`button`,onClick:()=>m(`shared`),className:`px-2.5 py-1 text-[10px] font-bold transition-colors ${f===`shared`?`bg-slate-900 text-white`:`text-slate-600 hover:bg-slate-50`}`,children:J(`app.content.screenshotScopeShared`)}),(0,R.jsx)(`button`,{type:`button`,onClick:()=>m(`locale`),className:`px-2.5 py-1 text-[10px] font-bold transition-colors ${f===`locale`?`bg-slate-900 text-white`:`text-slate-600 hover:bg-slate-50`}`,children:J(`app.content.screenshotScopeLocale`)})]})]}),f===`shared`&&x&&(0,R.jsx)(`p`,{className:`text-[10px] text-slate-500 leading-snug`,children:J(`app.content.screenshotSharedOverridesHint`,{count:v})}),f===`locale`&&!h&&w&&(0,R.jsx)(`p`,{className:`text-[10px] text-slate-500 leading-snug`,children:J(`app.content.screenshotLocaleFallbackHint`)}),f===`locale`&&!h&&!w&&(0,R.jsx)(`p`,{className:`text-[10px] text-slate-500 leading-snug`,children:J(`app.content.screenshotLocaleEmptyHint`)}),x&&(0,R.jsx)(`button`,{type:`button`,onClick:()=>{Vt?.({message:J(`app.content.clearAllOverridesConfirm`),onConfirm:()=>D(),onCancel:()=>Vt?.(null)})},className:`text-[10px] font-bold text-rose-600 hover:underline self-start`,children:J(`app.content.clearAllOverrides`)}),(0,R.jsxs)(`div`,{onClick:()=>ee.current?.click?.(),onDrop:te,onDragOver:ne,onDragEnter:re,onDragLeave:ie,onKeyDown:e=>{e.target===e.currentTarget&&(e.key===`Enter`||e.key===` `)&&(e.preventDefault(),ee.current?.click?.())},role:`button`,tabIndex:0,className:`border-2 border-dashed rounded-xl p-4 flex flex-col items-center justify-center transition-all cursor-pointer group relative overflow-hidden h-32 ${N?`border-blue-500 bg-blue-100 text-blue-600 scale-[1.02]`:`border-slate-200 text-slate-400 bg-slate-50/50 hover:border-blue-500 hover:text-blue-500 hover:bg-blue-50`}`,children:[d?(0,R.jsx)(`img`,{src:d,alt:``,className:`absolute inset-0 w-full h-full object-cover opacity-80 pointer-events-none`}):(0,R.jsx)(Be,{className:`w-5 h-5 mb-1 group-hover:scale-110 transition-transform pointer-events-none`}),(f===`shared`&&!!d||f===`locale`&&h)&&(0,R.jsx)(`button`,{type:`button`,onClick:e=>{e.stopPropagation(),T()},className:`absolute top-2 right-2 p-1 rounded-full bg-white/90 border border-slate-200 text-slate-600 hover:text-red-600 hover:border-red-200 hover:bg-red-50 shadow-xs`,title:J(`app.content.screenshotClear`),children:(0,R.jsx)(p,{size:12})}),(0,R.jsx)(`span`,{className:`text-[10px] font-medium relative z-10 bg-white/80 px-2 rounded-sm pointer-events-none`,children:d?f===`locale`?J(`app.content.changeImageForLocale`,{locale:l}):J(`app.content.changeImage`):f===`locale`?J(`app.content.uploadScreenshotForLocale`,{locale:l}):J(`app.content.uploadScreenshot`)}),(0,R.jsx)(`input`,{type:`file`,ref:ee,className:`hidden`,accept:`image/*`,onChange:k})]}),(0,R.jsx)(`p`,{className:`text-[10px] text-slate-500 leading-snug`,children:J(`app.data.privacy`)})]}),(0,R.jsx)(`hr`,{className:`border-slate-100`}),(0,R.jsxs)(`section`,{className:`space-y-3`,children:[(0,R.jsxs)(`div`,{className:`space-y-1`,children:[(0,R.jsx)(`h3`,{className:`font-bold text-xs uppercase tracking-wider text-slate-400`,children:J(`app.language.title`)}),(0,R.jsx)(`p`,{className:`text-xs text-slate-500 leading-relaxed`,children:J(`app.language.description`)})]}),(0,R.jsx)(`div`,{className:`flex flex-wrap gap-2`,children:ae.map(e=>(0,R.jsxs)(`div`,{onClick:()=>oe(e.id),className:`group relative px-3 py-2 rounded-lg text-xs font-medium cursor-pointer border transition-all select-none ${l===e.id?`bg-blue-50 border-blue-500 text-blue-700 shadow-xs`:`bg-white border-slate-200 text-slate-600 hover:border-slate-300 hover:bg-slate-50`}`,children:[(0,R.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,R.jsx)(`span`,{className:`text-base`,children:e.flag?`${e.flag}`:`??`}),(0,R.jsxs)(`div`,{className:`flex flex-col`,children:[(0,R.jsx)(`span`,{className:`font-bold`,children:e.name||e.id}),(0,R.jsx)(`span`,{className:`text-[10px] opacity-70`,children:e.id})]})]}),!!g?.[e.id]&&(0,R.jsx)(`span`,{className:`absolute bottom-2 right-2 w-2 h-2 rounded-full bg-blue-500 border border-white shadow-xs`,title:J(`app.content.screenshotScopeOverride`)}),ae.length>1&&(0,R.jsx)(`div`,{className:`absolute -top-1.5 -right-1.5 flex gap-0.5 bg-white rounded-full shadow-xs border border-slate-100 ${l===e.id?`opacity-100`:`opacity-0 group-hover:opacity-100`} transition-opacity`,children:(0,R.jsx)(`button`,{onClick:t=>{t.stopPropagation(),se(e.id)},className:`p-1 text-slate-400 hover:text-red-500 hover:bg-red-50 rounded-full`,title:J(`app.language.remove`),children:(0,R.jsx)(p,{size:10})})})]},e.id))}),(0,R.jsxs)(`div`,{className:`flex gap-2 p-2 bg-slate-50 rounded-xl border border-slate-200/60 mt-2 items-center`,children:[(0,R.jsx)(Kt,{currentLocales:ae,onAdd:ce}),(0,R.jsx)(`span`,{className:`text-[11px] text-slate-500 hidden sm:block`,children:J(`app.language.presetsHint`,`EFIGS / CJK presets available`)})]})]}),t===`single`&&(0,R.jsxs)(R.Fragment,{children:[(0,R.jsx)(`hr`,{className:`border-slate-100`}),(0,R.jsxs)(`section`,{className:`space-y-3`,children:[(0,R.jsx)(`h3`,{className:`font-bold text-xs uppercase tracking-wider text-slate-400`,children:J(`app.device.title`)}),(0,R.jsx)(Mn,{}),(0,R.jsxs)(`div`,{className:`relative`,children:[(0,R.jsx)(`input`,{type:`text`,value:bn,onChange:e=>xn(e.target.value),className:`w-full bg-slate-50 border border-slate-200 text-slate-700 text-sm rounded-xl px-4 py-2.5 pr-10 focus:outline-hidden focus:border-blue-500`,placeholder:J(`app.device.searchPlaceholder`),spellCheck:!1}),bn&&(0,R.jsx)(`button`,{type:`button`,onClick:()=>xn(``),className:`absolute right-2.5 top-1/2 -translate-y-1/2 text-slate-400 hover:text-slate-600 p-1`,"aria-label":`Clear search`,children:(0,R.jsx)(p,{size:14})})]}),(0,R.jsxs)(`div`,{className:`relative`,children:[(0,R.jsx)(`select`,{value:P,onChange:e=>le(e.target.value),className:`w-full appearance-none bg-slate-50 border border-slate-200 text-slate-700 text-sm rounded-xl px-4 py-3 pr-8 focus:outline-hidden focus:border-blue-500 font-medium`,children:Object.entries(jn).map(([e,t])=>(0,R.jsx)(`optgroup`,{label:Dn[e]||e,children:t.map(e=>(0,R.jsx)(`option`,{value:e,children:vt(z[e],{id:e,mode:pe}).optionLabel},e))},e))}),(0,R.jsx)(b,{className:`absolute right-3 top-1/2 -translate-y-1/2 text-slate-400 pointer-events-none`,size:16})]}),(0,R.jsxs)(`div`,{className:`mt-2 flex gap-2 bg-slate-50 p-1 rounded-lg border border-slate-200`,children:[(0,R.jsxs)(`button`,{onClick:()=>_e(`portrait`),className:`flex-1 py-1.5 rounded-md text-xs font-medium flex items-center justify-center gap-2 transition-colors ${ge===`portrait`||Se?`bg-white text-blue-600 shadow-xs`:`text-slate-500 hover:text-slate-700`}`,children:[(0,R.jsx)(A,{size:12}),` `,J(`app.device.portrait`)]}),(0,R.jsxs)(`button`,{onClick:()=>_e(`landscape`),disabled:Se,className:`flex-1 py-1.5 rounded-md text-xs font-medium flex items-center justify-center gap-2 transition-colors ${ge===`landscape`&&!Se?`bg-white text-blue-600 shadow-xs`:`text-slate-500 hover:text-slate-700`} ${Se?`opacity-30 cursor-not-allowed`:``}`,children:[(0,R.jsx)(Me,{size:12}),` `,J(`app.device.landscape`)]})]})]})]})]}),e===`style`&&(0,R.jsxs)(R.Fragment,{children:[(0,R.jsxs)(`section`,{className:`space-y-3`,children:[(0,R.jsx)(`h3`,{className:`font-bold text-xs uppercase tracking-wider text-slate-400`,children:J(`app.theme.title`)}),(0,R.jsxs)(`div`,{className:`flex gap-2`,children:[(0,R.jsx)(`button`,{onClick:()=>Ce(`clean`),className:`flex-1 py-2 bg-slate-50 border border-slate-200 rounded-lg text-xs font-medium hover:bg-slate-100`,children:J(`app.theme.clean`)}),(0,R.jsx)(`button`,{onClick:()=>Ce(`dark`),className:`flex-1 py-2 bg-slate-900 text-white border border-slate-800 rounded-lg text-xs font-medium hover:bg-slate-800`,children:J(`app.theme.dark`)}),(0,R.jsx)(`button`,{onClick:()=>Ce(`pop`),className:`flex-1 py-2 bg-linear-to-r from-pink-200 to-pink-300 border border-pink-200 text-pink-900 rounded-lg text-xs font-medium hover:opacity-90`,children:J(`app.theme.pop`)})]})]}),(0,R.jsx)(`hr`,{className:`border-slate-100`}),(0,R.jsxs)(`section`,{className:`space-y-4`,children:[(0,R.jsx)(`h3`,{className:`font-bold text-xs uppercase tracking-wider text-slate-400`,children:J(`app.background.title`)}),(0,R.jsx)(`div`,{className:`grid grid-cols-4 gap-2`,children:[`transparent`,`solid`,`gradient`,`image`].map(e=>(0,R.jsx)(`button`,{onClick:()=>Te(e),className:`w-full px-1.5 py-1.5 rounded-md border text-[8px] leading-[11px] tracking-normal font-bold uppercase text-center whitespace-normal break-all flex flex-col items-center justify-center gap-1 transition-all ${we===e?`border-blue-500 text-blue-600 bg-blue-50 ring-1 ring-blue-500`:`border-slate-200 text-slate-500 hover:border-slate-300`}`,children:e===`image`?(0,R.jsx)(be,{size:14}):J(`app.background.types.${e}`)},e))}),we===`image`&&(0,R.jsxs)(`div`,{className:`space-y-2`,children:[(0,R.jsxs)(`div`,{onClick:()=>Ee.current.click(),onDrop:De,onDragOver:ke,onDragEnter:Ae,onDragLeave:je,className:`h-16 w-full rounded-lg border-2 border-dashed flex items-center justify-center cursor-pointer text-xs transition-all ${Pe?`border-blue-500 bg-blue-100 text-blue-600 scale-[1.01]`:`border-slate-300 text-slate-400 hover:bg-slate-50 hover:border-blue-400 hover:text-blue-600`}`,children:[(0,R.jsx)(Be,{size:14,className:`mr-1 pointer-events-none`}),` `,(0,R.jsx)(`span`,{className:`pointer-events-none`,children:J(`app.background.upload`)}),` `,(0,R.jsx)(`input`,{type:`file`,ref:Ee,className:`hidden`,accept:`image/*`,onChange:Ie})]}),(0,R.jsxs)(`div`,{className:`flex gap-2 pt-1`,children:[(0,R.jsxs)(`div`,{className:`flex-1`,children:[(0,R.jsxs)(`div`,{className:`flex justify-between text-[10px] text-slate-400`,children:[(0,R.jsx)(`span`,{children:J(`app.background.blur-sm`)}),(0,R.jsxs)(`span`,{children:[Ve,`px`]})]}),(0,R.jsx)(`input`,{type:`range`,min:`0`,max:`20`,step:`1`,value:Ve,onChange:e=>He(parseInt(e.target.value)),className:`w-full accent-slate-800 h-1 bg-slate-200 rounded-lg`})]}),(0,R.jsxs)(`div`,{className:`flex-1`,children:[(0,R.jsxs)(`div`,{className:`flex justify-between text-[10px] text-slate-400`,children:[(0,R.jsx)(`span`,{children:J(`app.background.dim`)}),(0,R.jsxs)(`span`,{children:[Ue,`%`]})]}),(0,R.jsx)(`input`,{type:`range`,min:`0`,max:`80`,step:`5`,value:Ue,onChange:e=>Ge(parseInt(e.target.value)),className:`w-full accent-slate-800 h-1 bg-slate-200 rounded-lg`})]})]})]}),we===`solid`&&(0,R.jsxs)(`div`,{className:`space-y-2`,children:[(0,R.jsxs)(`div`,{className:`flex gap-2`,children:[(0,R.jsx)(`input`,{type:`color`,value:Je,onChange:e=>Ye(e.target.value),onBlur:e=>H&&H(e.target.value),className:`h-8 w-8 rounded-sm cursor-pointer border border-slate-300`}),(0,R.jsx)(`div`,{className:`flex-1 flex flex-wrap gap-1`,children:Ke.slice(0,5).map(e=>(0,R.jsx)(`div`,{onClick:()=>{Ye(e),H&&H(e)},className:`w-6 h-6 rounded-full border cursor-pointer`,style:{background:e}},e))})]}),(0,R.jsx)(Pn,{onSelect:e=>{Ye(e),H&&H(e)}})]}),we===`gradient`&&(0,R.jsxs)(`div`,{className:`space-y-2`,children:[(0,R.jsxs)(`div`,{className:`flex gap-2`,children:[(0,R.jsx)(`input`,{type:`color`,value:Xe,onChange:e=>Ze(e.target.value),onBlur:e=>H&&H(e.target.value),className:`h-8 w-8 rounded-sm cursor-pointer border border-slate-300`}),(0,R.jsx)(`input`,{type:`color`,value:Qe,onChange:e=>$e(e.target.value),onBlur:e=>H&&H(e.target.value),className:`h-8 w-8 rounded-sm cursor-pointer border border-slate-300`})]}),(0,R.jsx)(Pn,{onSelect:e=>{Ze(e),H&&H(e)}})]})]}),(0,R.jsx)(`hr`,{className:`border-slate-100`}),(0,R.jsxs)(`section`,{className:`space-y-4`,children:[(0,R.jsx)(`h3`,{className:`font-bold text-xs uppercase tracking-wider text-slate-400`,children:J(`app.branding.title`)}),(0,R.jsxs)(`div`,{className:`space-y-3`,children:[(0,R.jsxs)(`div`,{children:[(0,R.jsx)(`label`,{className:`text-[10px] text-slate-500 mb-1 block`,children:J(`app.branding.frameColor`)}),(0,R.jsx)(`div`,{className:`flex gap-2`,children:[`black`,`silver`,`titanium`,`blue`,`gold`].map(e=>(0,R.jsx)(`button`,{onClick:()=>tt(e),className:`w-6 h-6 rounded-full border-2 transition-transform hover:scale-110 ${et===e?`border-blue-500 scale-110`:`border-slate-200`}`,style:{backgroundColor:e===`titanium`?`#8a8a8a`:e===`blue`?`#2f3c4e`:e===`gold`?`#f9e5c9`:e===`silver`?`#e3e3e3`:`#1a1a1a`},title:e},e))})]}),nt?(0,R.jsxs)(`div`,{onDrop:it,onDragOver:at,onDragEnter:ot,onDragLeave:st,onClick:()=>rt.current.click(),className:`flex items-center justify-between p-2 border rounded-lg cursor-pointer transition-all shadow-xs group ${ct?`border-blue-500 bg-blue-50 ring-2 ring-blue-200`:`border-slate-200 bg-white hover:border-blue-300`}`,children:[(0,R.jsxs)(`div`,{className:`flex items-center gap-3 pointer-events-none`,children:[(0,R.jsxs)(`div`,{className:`w-10 h-10 rounded-sm border border-slate-100 bg-slate-50 flex items-center justify-center p-1 overflow-hidden relative`,children:[(0,R.jsx)(`div`,{className:`absolute inset-0 opacity-20 bg-[url('https://www.transparenttextures.com/patterns/checkerboard.png')]`}),(0,R.jsx)(`img`,{src:nt,className:`w-full h-full object-contain relative z-10`})]}),(0,R.jsxs)(`div`,{className:`flex flex-col`,children:[(0,R.jsx)(`span`,{className:`text-[10px] font-bold text-slate-700 uppercase tracking-wider`,children:`Logo`}),(0,R.jsx)(`span`,{className:`text-[10px] text-slate-400`,children:ct?`Drop to Change`:`Set`})]})]}),(0,R.jsxs)(`div`,{className:`flex items-center gap-1`,children:[(0,R.jsx)(`button`,{onClick:e=>{e.stopPropagation(),rt.current.click()},className:`p-1.5 text-slate-400 hover:text-blue-600 hover:bg-blue-50 rounded-sm transition-colors`,title:`Change Logo`,children:(0,R.jsx)(Me,{size:14})}),(0,R.jsx)(`button`,{onClick:e=>{e.stopPropagation(),ut()},className:`p-1.5 text-slate-400 hover:text-red-500 hover:bg-red-50 rounded-sm transition-colors`,title:`Remove Logo`,children:(0,R.jsx)(ze,{size:14})})]}),(0,R.jsx)(`input`,{type:`file`,ref:rt,className:`hidden`,accept:`image/*`,onChange:lt})]}):(0,R.jsxs)(`div`,{onClick:()=>rt.current.click(),onDrop:it,onDragOver:at,onDragEnter:ot,onDragLeave:st,className:`flex items-center justify-between p-3 border border-dashed rounded-lg cursor-pointer transition-all group ${ct?`border-blue-500 bg-blue-50 text-blue-700`:`border-slate-300 text-slate-500 hover:border-blue-400 hover:text-blue-600 hover:bg-slate-50`}`,children:[(0,R.jsxs)(`span`,{className:`text-xs font-medium flex items-center gap-2 pointer-events-none`,children:[(0,R.jsx)(de,{size:16,className:`text-slate-400 group-hover:text-blue-500 transition-colors`}),J(`app.branding.uploadLogo`)]}),(0,R.jsx)(Be,{size:14,className:`text-slate-300 group-hover:text-blue-400 transition-colors`}),(0,R.jsx)(`input`,{type:`file`,ref:rt,className:`hidden`,accept:`image/*`,onChange:lt})]})]})]}),(0,R.jsx)(`hr`,{className:`border-slate-100`}),(0,R.jsxs)(`section`,{className:`space-y-4`,children:[(0,R.jsx)(`h3`,{className:`font-bold text-xs uppercase tracking-wider text-slate-400`,children:J(`app.layout.title`)}),(0,R.jsxs)(`div`,{className:`flex items-center justify-between text-xs text-slate-600`,children:[(0,R.jsxs)(`label`,{className:`flex items-center gap-2`,children:[(0,R.jsx)(`input`,{type:`checkbox`,checked:B,onChange:e=>e.target.checked?dt():ft(),className:`rounded-sm border-slate-300 text-blue-600 focus:ring-blue-500`}),(0,R.jsx)(`span`,{children:J(`app.layout.overrideToggle`)})]}),B&&(0,R.jsx)(`button`,{onClick:ft,className:`text-[11px] text-blue-600 hover:underline`,children:J(`app.layout.overrideReset`)})]}),(0,R.jsxs)(`div`,{className:`grid grid-cols-3 gap-2`,children:[(0,R.jsxs)(`button`,{onClick:()=>B?pt(`layoutMode`,`top`):ht(`top`),className:`py-2 rounded-md border text-[10px] font-bold flex flex-col items-center gap-1 ${gt===`top`?`border-blue-500 bg-blue-50 text-blue-700`:`border-slate-200 text-slate-500`}`,children:[(0,R.jsx)(ue,{size:14,className:`rotate-180`}),J(`app.layout.options.top`)]}),(0,R.jsxs)(`button`,{onClick:()=>B?pt(`layoutMode`,`bottom`):ht(`bottom`),className:`py-2 rounded-md border text-[10px] font-bold flex flex-col items-center gap-1 ${gt===`bottom`?`border-blue-500 bg-blue-50 text-blue-700`:`border-slate-200 text-slate-500`}`,children:[(0,R.jsx)(ue,{size:14}),J(`app.layout.options.bottom`)]}),(0,R.jsxs)(`button`,{onClick:()=>B?pt(`layoutMode`,`split`):ht(`split`),className:`py-2 rounded-md border text-[10px] font-bold flex flex-col items-center gap-1 ${gt===`split`?`border-blue-500 bg-blue-50 text-blue-700`:`border-slate-200 text-slate-500`}`,children:[(0,R.jsx)(F,{size:14}),J(`app.layout.options.split`)]})]}),(0,R.jsxs)(`div`,{className:`pt-2`,children:[(0,R.jsx)(`label`,{className:`text-[10px] text-slate-500 mb-1 block`,children:`Font Family`}),(0,R.jsx)(qt,{selectedFont:V,setSelectedFont:yt,fontOptions:xt})]}),(0,R.jsxs)(`div`,{className:`flex items-center justify-between pt-1`,children:[(0,R.jsx)(`span`,{className:`text-xs text-slate-500`,children:J(`app.layout.textColor`)}),(0,R.jsx)(`input`,{type:`color`,value:St,onChange:e=>Ct(e.target.value),onBlur:e=>H&&H(e.target.value),className:`w-6 h-6 rounded-full cursor-pointer border border-slate-200`})]}),(0,R.jsx)(Pn,{onSelect:e=>{Ct(e),H&&H(e)}}),(0,R.jsxs)(`div`,{className:`space-y-1 pt-2`,children:[(0,R.jsxs)(`div`,{className:`flex justify-between text-xs text-slate-500`,children:[(0,R.jsx)(`span`,{children:J(`app.layout.topSpacing`)}),(0,R.jsxs)(`span`,{children:[Tt,`%`]})]}),(0,R.jsx)(`input`,{type:`range`,min:`0`,max:`30`,step:`1`,value:Tt,onChange:e=>B?pt(`topSpacing`,parseInt(e.target.value)):Et(parseInt(e.target.value)),className:`w-full accent-slate-800 h-1.5 bg-slate-200 rounded-lg appearance-none cursor-pointer`})]}),(0,R.jsxs)(`div`,{className:`space-y-1`,children:[(0,R.jsxs)(`div`,{className:`flex justify-between text-xs text-slate-500`,children:[(0,R.jsx)(`span`,{children:J(`app.layout.scale`)}),(0,R.jsxs)(`span`,{children:[Math.round(Dt*100),`%`]})]}),(0,R.jsx)(`input`,{type:`range`,min:`0.5`,max:`2.0`,step:`0.05`,value:Dt,onChange:e=>B?pt(`deviceScale`,parseFloat(e.target.value)):Ot(parseFloat(e.target.value)),className:`w-full accent-slate-800 h-1.5 bg-slate-200 rounded-lg appearance-none cursor-pointer`})]})]}),(0,R.jsxs)(`section`,{className:`space-y-2 pt-2`,children:[(0,R.jsx)(`h3`,{className:`font-bold text-xs uppercase tracking-wider text-slate-400`,children:J(`app.badge.title`)}),(0,R.jsxs)(`div`,{className:`grid grid-cols-5 gap-2`,children:[(0,R.jsx)(`button`,{onClick:()=>At(`none`),className:`p-1.5 rounded-lg border flex justify-center ${kt===`none`?`bg-blue-50 border-blue-500`:`border-slate-200`}`,children:(0,R.jsx)(p,{size:14,className:`text-slate-400`})}),(0,R.jsx)(`button`,{onClick:()=>At(`stars`),className:`p-1.5 rounded-lg border flex justify-center ${kt===`stars`?`bg-blue-50 border-blue-500`:`border-slate-200`}`,children:(0,R.jsx)(Re,{size:14,className:`text-yellow-500 fill-yellow-500`})}),(0,R.jsx)(`button`,{onClick:()=>At(`award`),className:`p-1.5 rounded-lg border flex justify-center ${kt===`award`?`bg-blue-50 border-blue-500`:`border-slate-200`}`,children:(0,R.jsx)(fe,{size:14,className:`text-red-500`})}),(0,R.jsx)(`button`,{onClick:()=>At(`download`),className:`p-1.5 rounded-lg border flex justify-center ${kt===`download`?`bg-blue-50 border-blue-500`:`border-slate-200`}`,children:(0,R.jsx)(me,{size:14,className:`text-slate-700`})}),(0,R.jsx)(`button`,{onClick:()=>At(`googleplay`),className:`p-1.5 rounded-lg border flex justify-center ${kt===`googleplay`?`bg-blue-50 border-blue-500`:`border-slate-200`}`,children:(0,R.jsx)(Oe,{size:14,className:`text-slate-700`,fill:`currentColor`})})]})]})]}),e===`templates`&&(0,R.jsxs)(R.Fragment,{children:[(0,R.jsxs)(`section`,{className:`space-y-3`,children:[(0,R.jsx)(`h3`,{className:`font-bold text-xs uppercase tracking-wider text-slate-400`,children:J(`app.templates.official`)}),(0,R.jsx)(`div`,{className:`grid grid-cols-1 gap-4`,children:qe.map(e=>(0,R.jsxs)(`div`,{onClick:()=>jt(e),className:`group cursor-pointer border border-slate-200 rounded-xl overflow-hidden hover:border-blue-400 hover:shadow-md transition-all bg-white`,children:[(0,R.jsxs)(`div`,{className:`h-24 w-full relative overflow-hidden`,style:Fn(e),children:[(0,R.jsx)(`img`,{src:e.thumbnail,alt:e.name,className:`w-full h-full object-cover transition-transform duration-500 group-hover:scale-105`,onError:e=>{e.currentTarget.style.display=`none`}}),(0,R.jsx)(`div`,{className:`absolute inset-0 pointer-events-none bg-linear-to-t from-black/40 to-transparent`}),(0,R.jsxs)(`div`,{className:`absolute bottom-0 left-0 right-0 p-2 flex items-center justify-between`,children:[(0,R.jsx)(`span`,{className:`text-white text-xs font-bold drop-shadow-sm`,children:J(`app.templates.officialItems.${e.id}`,{defaultValue:e.name})}),e.tags?.bg&&(0,R.jsx)(`span`,{className:`text-[10px] text-white/80 bg-black/40 px-2 py-0.5 rounded-full border border-white/10`,children:e.tags.bg})]})]}),(0,R.jsx)(`div`,{className:`p-3 flex flex-wrap gap-2 bg-white`,children:e.tags&&Object.entries(e.tags).map(([e,t])=>(0,R.jsx)(`span`,{className:`inline-flex items-center px-1.5 py-0.5 rounded-sm text-[10px] font-medium bg-slate-100 text-slate-500 border border-slate-200`,children:t},e))})]},e.id))})]}),(0,R.jsx)(`hr`,{className:`border-slate-100`}),(0,R.jsxs)(`section`,{className:`space-y-3`,children:[(0,R.jsxs)(`div`,{className:`flex justify-between items-center`,children:[(0,R.jsx)(`h3`,{className:`font-bold text-xs uppercase tracking-wider text-slate-400`,children:J(`app.templates.mine`)}),(0,R.jsx)(`button`,{onClick:()=>Nt(Pt),className:`text-[10px] text-blue-600 font-bold hover:underline`,children:J(`app.templates.saveCurrent`)})]}),(0,R.jsxs)(`div`,{className:`flex gap-2 p-2 bg-blue-50/50 border border-blue-100 rounded-sm text-[10px] text-slate-600 leading-tight`,children:[(0,R.jsx)(xe,{size:14,className:`shrink-0 text-blue-400`}),(0,R.jsx)(`span`,{children:yn.language===`ja`?`背景・色・フォントなどのスタイルのみ保存されます。文字や画像は含まれません。`:`Saves background, colors, fonts, and layout. Text and images are excluded.`})]}),Mt.length===0?(0,R.jsx)(`div`,{className:`text-xs text-slate-400 text-center py-4 bg-slate-50 rounded-lg border border-dashed border-slate-200`,children:J(`app.templates.empty`).split(`
|
|
12
|
+
`).map(e=>(0,R.jsx)(`div`,{children:e},e))}):(0,R.jsx)(`div`,{className:`space-y-2`,children:Mt.map(e=>(0,R.jsxs)(`div`,{className:`flex items-center justify-between p-2 bg-white border border-slate-200 rounded-lg hover:border-blue-300 transition-colors group`,children:[(0,R.jsx)(`span`,{onClick:()=>jt(e),className:`text-xs font-medium text-slate-700 cursor-pointer flex-1 truncate`,children:e.name}),(0,R.jsx)(`button`,{onClick:()=>Ft(e.id),className:`text-slate-300 hover:text-red-500 p-1 opacity-0 group-hover:opacity-100 transition-opacity`,children:(0,R.jsx)(ze,{size:12})})]},e.id))}),!It&&(0,R.jsxs)(`div`,{className:`text-[10px] text-amber-600 bg-amber-50 p-2 rounded-sm border border-amber-100 flex items-center gap-2`,children:[(0,R.jsx)(E,{size:10}),` `,J(`app.templates.proRequired`)]})]})]}),e===`data`&&(0,R.jsxs)(R.Fragment,{children:[(0,R.jsxs)(`section`,{className:`space-y-5`,children:[(0,R.jsxs)(`div`,{className:`space-y-2`,children:[(0,R.jsx)(`h3`,{className:`font-bold text-xs uppercase tracking-wider text-slate-400`,children:J(`app.data.title`)}),(0,R.jsxs)(`div`,{className:`flex items-center gap-2 p-3 bg-blue-50/50 border border-blue-100 rounded-lg text-xs text-slate-600`,children:[(0,R.jsx)(E,{size:14,className:`text-blue-500 shrink-0`}),(0,R.jsx)(`span`,{className:`font-medium`,children:J(`app.data.privacy`)})]})]}),(0,R.jsxs)(`div`,{className:`bg-white p-4 rounded-xl border border-slate-200 shadow-xs space-y-3 relative overflow-hidden`,children:[(0,R.jsx)(`div`,{className:`absolute top-0 right-0 w-16 h-16 bg-linear-to-br from-slate-100 to-transparent rounded-bl-full opacity-50 pointer-events-none`}),(0,R.jsx)(`div`,{className:`flex items-start justify-between relative z-10`,children:(0,R.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,R.jsx)(`div`,{className:`p-2.5 bg-slate-100 text-slate-600 rounded-lg`,children:(0,R.jsx)(Le,{size:20})}),(0,R.jsxs)(`div`,{className:`space-y-0.5`,children:[(0,R.jsx)(`h4`,{className:`text-sm font-bold text-slate-800`,children:J(`app.data.sampleTitle`)}),(0,R.jsx)(`p`,{className:`text-[10px] text-slate-500 leading-relaxed`,children:J(`app.data.sampleDesc`)})]})]})}),(0,R.jsxs)(`button`,{type:`button`,onClick:Bt,className:`w-full flex items-center justify-center gap-2 py-2.5 bg-white border border-slate-300 rounded-lg text-xs font-bold text-slate-700 hover:bg-slate-50 transition-all shadow-xs active:scale-[0.98]`,children:[(0,R.jsx)(Le,{size:14}),(0,R.jsx)(`span`,{children:J(`app.data.sampleLoad`)})]})]}),(0,R.jsxs)(`div`,{className:`bg-white p-4 rounded-xl border border-slate-200 shadow-xs space-y-3`,children:[(0,R.jsxs)(`div`,{className:`flex items-start gap-3`,children:[(0,R.jsx)(`div`,{className:`p-2 bg-slate-100 text-blue-600 rounded-lg border border-slate-200`,children:(0,R.jsx)(j,{size:18})}),(0,R.jsxs)(`div`,{className:`space-y-1`,children:[(0,R.jsx)(`h4`,{className:`text-sm font-bold text-slate-800`,children:J(`app.data.cliTitle`)}),(0,R.jsx)(`p`,{className:`text-[10px] text-slate-500 leading-relaxed`,children:J(`app.data.cliDesc`)})]})]}),(0,R.jsx)(`div`,{className:`rounded-lg border border-slate-200 bg-slate-950 p-3`,children:(0,R.jsx)(`pre`,{className:`text-[10px] text-slate-200 whitespace-pre-wrap`,children:kn})}),(0,R.jsxs)(`div`,{className:`flex flex-col gap-2`,children:[(0,R.jsx)(C,{value:kn,className:`inline-flex items-center justify-center gap-2 px-3 py-2 rounded-lg border border-slate-900 bg-slate-900 text-white hover:bg-slate-800 transition text-[11px] font-semibold`,children:({copyLabel:e})=>(0,R.jsxs)(R.Fragment,{children:[(0,R.jsx)(S,{size:12}),e||On]})}),(0,R.jsxs)(`a`,{href:`/tools/agent-cli/?entry_source=app_editor_cli_card#tell-your-agent`,className:`inline-flex items-center justify-center gap-2 px-3 py-2 rounded-lg border border-slate-200 bg-white text-slate-700 hover:bg-slate-50 transition text-[11px] font-semibold`,children:[J(`app.data.cliLink`),` `,(0,R.jsx)(_,{size:14})]})]})]}),(0,R.jsxs)(`div`,{className:`bg-white p-4 rounded-xl border border-slate-200 shadow-xs space-y-4 relative overflow-hidden`,children:[(0,R.jsx)(`div`,{className:`absolute top-0 right-0 w-16 h-16 bg-linear-to-br from-slate-100 to-transparent rounded-bl-full opacity-50 pointer-events-none`}),(0,R.jsx)(`div`,{className:`flex items-start justify-between relative z-10`,children:(0,R.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,R.jsx)(`div`,{className:`p-2.5 bg-slate-100 text-slate-600 rounded-lg`,children:(0,R.jsx)(ye,{size:20})}),(0,R.jsxs)(`div`,{children:[(0,R.jsx)(`h4`,{className:`text-sm font-bold text-slate-800`,children:J(`app.data.browserTitle`)}),(0,R.jsxs)(`div`,{className:`flex items-center gap-2 mt-1`,children:[(0,R.jsx)(`span`,{className:`text-[10px] font-medium px-1.5 py-0.5 bg-slate-100 text-slate-500 rounded-sm border border-slate-200`,children:J(`app.data.limitInfo`)}),(0,R.jsx)(`span`,{className:`text-[10px] tabular-nums font-medium ${Lt.percent>80?`text-rose-500`:`text-slate-400`}`,children:J(`app.data.usageInfo`,{used:Lt.used})})]})]})]})}),Lt.percent>80&&(0,R.jsxs)(`div`,{className:`flex items-start gap-2 p-2 bg-rose-50 border border-rose-100 rounded-sm text-[10px] text-rose-700 animate-in fade-in`,children:[(0,R.jsx)(M,{size:12,className:`shrink-0 mt-0.5`}),(0,R.jsx)(`span`,{children:J(`app.data.quotaWarning`)})]}),(0,R.jsxs)(`div`,{className:`flex flex-col gap-3`,children:[(0,R.jsxs)(`button`,{onClick:()=>Rt(!1),className:`w-full flex items-center justify-between px-4 py-3 bg-slate-800 text-white rounded-lg hover:bg-slate-700 transition-all shadow-xs active:scale-[0.98] group`,children:[(0,R.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,R.jsx)(Ne,{size:18}),(0,R.jsxs)(`div`,{className:`text-left`,children:[(0,R.jsx)(`span`,{className:`block text-sm font-bold`,children:J(`app.data.overwrite`)}),(0,R.jsx)(`span`,{className:`block text-[10px] opacity-70 font-medium`,children:J(`app.data.overwriteDesc`)})]})]}),(0,R.jsx)(_,{size:16,className:`opacity-50 group-hover:opacity-100 group-hover:translate-x-1 transition-all`})]}),(0,R.jsxs)(`div`,{className:`grid grid-cols-2 gap-2`,children:[(0,R.jsxs)(`button`,{onClick:()=>{Vt({message:J(`app.data.loadConfirm`),onConfirm:()=>{Vt(null),zt()},onCancel:()=>Vt(null)})},className:`flex items-center justify-center gap-2 py-2 bg-white border border-slate-200 text-slate-600 rounded-lg hover:bg-slate-50 hover:text-slate-800 transition-colors`,children:[(0,R.jsx)(Me,{size:14}),(0,R.jsx)(`span`,{className:`text-xs font-bold`,children:J(`app.data.restore`)})]}),(0,R.jsxs)(`button`,{onClick:()=>Rt(!0),className:`flex items-center justify-center gap-2 py-2 bg-white border border-slate-200 text-slate-400 rounded-lg hover:bg-slate-50 hover:text-slate-600 transition-colors`,title:J(`app.data.saveSettingsOnly`),children:[(0,R.jsx)(Fe,{size:14}),(0,R.jsx)(`span`,{className:`text-xs font-medium`,children:J(`app.data.settingsOnlyShort`)})]})]})]}),(0,R.jsx)(`div`,{className:`h-0 relative`,children:Ht&&(0,R.jsx)(`div`,{className:`absolute bottom-1 left-0 right-0 text-center`,children:(0,R.jsxs)(`span`,{className:`inline-flex items-center gap-1.5 px-3 py-1 bg-emerald-100 text-emerald-700 text-[10px] font-bold rounded-full shadow-xs animate-in fade-in slide-in-from-bottom-2`,children:[(0,R.jsx)(y,{size:10,strokeWidth:3}),` `,Ut]})})})]}),(0,R.jsxs)(`div`,{className:`bg-linear-to-br from-blue-50 to-indigo-50/50 p-4 rounded-xl border border-blue-100 space-y-3`,children:[(0,R.jsx)(`div`,{className:`flex justify-between items-start`,children:(0,R.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,R.jsx)(`div`,{className:`p-2 bg-white text-blue-600 rounded-lg shadow-xs border border-blue-100`,children:(0,R.jsx)(ve,{size:20})}),(0,R.jsxs)(`div`,{children:[(0,R.jsx)(`h4`,{className:`text-sm font-bold text-slate-800`,children:J(`app.data.fileExportTitle`)}),(0,R.jsx)(`span`,{className:`text-[10px] font-bold text-blue-600 bg-blue-100/50 px-1.5 py-0.5 rounded-sm border border-blue-200/50 block w-fit mt-1`,children:J(`app.data.fileExportBadge`)})]})]})}),(0,R.jsxs)(`div`,{className:`space-y-2`,children:[(0,R.jsx)(`p`,{className:`text-[10px] text-slate-600 leading-relaxed`,dangerouslySetInnerHTML:{__html:J(`app.data.fileExportDesc`)}}),(0,R.jsxs)(`div`,{className:`flex gap-2`,children:[(0,R.jsxs)(`div`,{className:`flex -space-x-1`,children:[(0,R.jsx)(`div`,{className:`w-5 h-5 rounded-full bg-white border border-slate-200 flex items-center justify-center text-slate-500`,title:J(`app.data.fileExportTitle`),children:(0,R.jsx)(be,{size:10})}),(0,R.jsx)(`div`,{className:`w-5 h-5 rounded-full bg-white border border-slate-200 flex items-center justify-center text-slate-500`,title:J(`app.data.fileExportTitle`),children:(0,R.jsx)(O,{size:10})}),(0,R.jsx)(`div`,{className:`w-5 h-5 rounded-full bg-white border border-slate-200 flex items-center justify-center text-slate-500`,title:J(`app.data.fileExportTitle`),children:(0,R.jsx)(Fe,{size:10})})]}),(0,R.jsx)(`span`,{className:`text-[10px] text-slate-400 self-center`,children:J(`app.data.includeAll`)})]})]}),(0,R.jsxs)(`div`,{className:`grid grid-cols-1 gap-2 mt-2`,children:[(0,R.jsxs)(`button`,{onClick:Wt,className:`w-full flex items-center justify-center gap-2 py-2.5 bg-blue-600 text-white rounded-lg hover:bg-blue-700 transition-all shadow-xs active:scale-[0.98]`,children:[(0,R.jsx)(me,{size:16}),(0,R.jsx)(`span`,{className:`text-xs font-bold`,children:J(`app.data.export`)})]}),(0,R.jsxs)(`div`,{className:`relative border border-dashed rounded-lg p-2.5 flex items-center justify-center gap-2 transition-all cursor-pointer ${Yt?`border-blue-500 bg-blue-100 text-blue-700 scale-[1.01]`:`border-blue-200 text-slate-500 bg-white/50 hover:border-blue-400 hover:text-blue-600 hover:bg-white`}`,onClick:()=>Gt.current?.click(),onDragOver:Xt,onDragEnter:Zt,onDragLeave:$t,onDrop:en,children:[(0,R.jsx)(he,{size:14,className:`pointer-events-none`}),(0,R.jsx)(`span`,{className:`text-xs font-medium pointer-events-none`,children:J(`app.data.import`)}),(0,R.jsx)(`input`,{type:`file`,ref:Gt,className:`hidden`,accept:`.json,application/json`,onChange:Jt})]})]})]})]}),G&&(0,R.jsx)(Qt,{token:K,captureTeamSpec:q,applyTeamSpec:mn}),(0,R.jsx)(`hr`,{className:`border-slate-100`}),(0,R.jsxs)(`section`,{className:`space-y-3`,children:[(0,R.jsx)(`h3`,{className:`font-bold text-xs uppercase tracking-wider text-slate-400`,children:J(`app.importer.title`)}),(0,R.jsxs)(`div`,{className:`p-4 rounded-xl border space-y-3 relative overflow-hidden transition-all ${tn?`border-blue-500 bg-blue-100/80`:`bg-slate-50 border-slate-200`}`,onDrop:nn,onDragOver:rn,onDragEnter:an,onDragLeave:on,children:[!It&&(0,R.jsx)(`div`,{className:`absolute inset-0 bg-white/60 backdrop-blur-[1px] z-10 flex items-center justify-center pointer-events-none`,children:(0,R.jsx)(E,{size:24,className:`text-slate-400`})}),(0,R.jsx)(`p`,{className:`text-xs text-slate-500 leading-relaxed`,children:J(`app.importer.description`)}),(0,R.jsx)(`p`,{className:`text-[10px] text-slate-400`,dangerouslySetInnerHTML:{__html:J(`app.importer.hint`)}}),(0,R.jsxs)(`div`,{className:`flex gap-2`,children:[(0,R.jsx)(`button`,{onClick:()=>Nt(sn),className:`flex-1 py-2 bg-white border border-slate-300 rounded-lg text-xs font-medium text-slate-600 hover:bg-slate-50`,children:J(`app.importer.downloadTemplate`)}),(0,R.jsx)(`button`,{onClick:()=>Nt(()=>cn.current.click()),className:`flex-1 py-2 bg-blue-600 text-white rounded-lg text-xs font-medium hover:bg-blue-700`,children:J(`app.importer.importCsv`)})]}),(0,R.jsx)(`input`,{type:`file`,ref:cn,className:`hidden`,accept:`.csv`,onChange:ln})]})]}),(0,R.jsx)(`hr`,{className:`border-slate-100`}),(0,R.jsxs)(`section`,{className:`space-y-3`,children:[(0,R.jsx)(`h3`,{className:`font-bold text-xs uppercase tracking-wider text-slate-400`,children:J(`app.screenshotImporter.title`)}),(0,R.jsxs)(`div`,{className:`p-4 rounded-xl border space-y-3 relative overflow-hidden transition-all ${Sn?`border-blue-500 bg-blue-100/80`:`bg-slate-50 border-slate-200`}`,onDragOver:e=>{e?.dataTransfer&&Array.from(e.dataTransfer.types||[]).includes(`Files`)&&(e.preventDefault(),Cn(!0))},onDragEnter:e=>{e?.dataTransfer&&Array.from(e.dataTransfer.types||[]).includes(`Files`)&&(e.preventDefault(),Cn(!0))},onDragLeave:e=>{e&&(e.preventDefault(),!e.currentTarget.contains(e.relatedTarget)&&Cn(!1))},onDrop:e=>{e?.dataTransfer&&(e.preventDefault(),Cn(!1),un?.(e.dataTransfer.files))},children:[(0,R.jsx)(`p`,{className:`text-xs text-slate-500 leading-relaxed`,children:J(`app.screenshotImporter.description`)}),(0,R.jsx)(`p`,{className:`text-[10px] text-slate-400`,dangerouslySetInnerHTML:{__html:J(`app.screenshotImporter.hint`)}}),(0,R.jsxs)(`div`,{className:`flex gap-2`,children:[(0,R.jsx)(`button`,{type:`button`,onClick:()=>wn.current?.click(),className:`flex-1 py-2 bg-white border border-slate-300 rounded-lg text-xs font-medium text-slate-600 hover:bg-slate-50`,children:J(`app.screenshotImporter.importZip`)}),(0,R.jsx)(`button`,{type:`button`,onClick:()=>Tn.current?.click(),className:`flex-1 py-2 bg-white border border-slate-300 rounded-lg text-xs font-medium text-slate-600 hover:bg-slate-50`,children:J(`app.screenshotImporter.importFolder`)}),(0,R.jsx)(`button`,{type:`button`,onClick:()=>En.current?.click(),className:`flex-1 py-2 bg-blue-600 text-white rounded-lg text-xs font-medium hover:bg-blue-700`,children:J(`app.screenshotImporter.importFiles`)})]}),(0,R.jsx)(`input`,{type:`file`,ref:wn,className:`hidden`,accept:`.zip,application/zip,application/x-zip-compressed`,onChange:e=>{un?.(e.target.files),e?.target&&(e.target.value=``)}}),(0,R.jsx)(`input`,{type:`file`,ref:Tn,className:`hidden`,accept:`image/*`,multiple:!0,webkitdirectory:``,onChange:e=>{un?.(e.target.files),e?.target&&(e.target.value=``)}}),(0,R.jsx)(`input`,{type:`file`,ref:En,className:`hidden`,accept:`image/*`,multiple:!0,onChange:e=>{un?.(e.target.files),e?.target&&(e.target.value=``)}})]})]}),(0,R.jsx)(`hr`,{className:`border-slate-100`}),t===`batch`&&(0,R.jsxs)(`section`,{className:`space-y-3`,children:[(0,R.jsxs)(`div`,{className:`flex justify-between items-center`,children:[(0,R.jsx)(`h3`,{className:`font-bold text-xs uppercase tracking-wider text-slate-400`,children:J(`app.batch.title`)}),(0,R.jsx)(`span`,{className:`text-xs text-blue-600 font-medium`,children:J(`app.batch.selected`,{count:dn.length})})]}),(0,R.jsxs)(`div`,{className:`space-y-2`,children:[(0,R.jsx)(`div`,{className:`text-[10px] font-bold text-slate-400 uppercase tracking-wider`,children:J(`app.batch.presets.title`)}),(0,R.jsxs)(`div`,{className:`flex flex-wrap gap-2`,children:[(0,R.jsx)(`button`,{type:`button`,onClick:()=>Nn(X.iosRequired),className:`px-2.5 py-1.5 rounded-lg border border-slate-200 bg-white text-[11px] font-semibold text-slate-600 hover:border-blue-300 hover:text-blue-700 hover:bg-blue-50 transition-colors`,children:J(`app.batch.presets.iosRequired`)}),(0,R.jsx)(`button`,{type:`button`,onClick:()=>Nn(X.playPhone),className:`px-2.5 py-1.5 rounded-lg border border-slate-200 bg-white text-[11px] font-semibold text-slate-600 hover:border-blue-300 hover:text-blue-700 hover:bg-blue-50 transition-colors`,children:J(`app.batch.presets.playPhone`)}),(0,R.jsx)(`button`,{type:`button`,onClick:()=>Nn(X.playTablet),className:`px-2.5 py-1.5 rounded-lg border border-slate-200 bg-white text-[11px] font-semibold text-slate-600 hover:border-blue-300 hover:text-blue-700 hover:bg-blue-50 transition-colors`,children:J(`app.batch.presets.playTablet`)}),(0,R.jsx)(`button`,{type:`button`,onClick:()=>Nn(X.all),className:`px-2.5 py-1.5 rounded-lg border border-slate-200 bg-white text-[11px] font-semibold text-slate-600 hover:border-blue-300 hover:text-blue-700 hover:bg-blue-50 transition-colors`,children:J(`app.batch.presets.all`)}),(0,R.jsx)(`button`,{type:`button`,onClick:()=>Nn([]),className:`px-2.5 py-1.5 rounded-lg border border-slate-200 bg-white text-[11px] font-semibold text-slate-500 hover:border-slate-300 hover:text-slate-700 hover:bg-slate-50 transition-colors`,children:J(`app.batch.presets.clear`)})]})]}),(0,R.jsxs)(`div`,{className:`space-y-2`,children:[(0,R.jsx)(`div`,{className:`text-[10px] font-bold text-slate-400 uppercase tracking-wider`,children:J(`app.batch.structure.title`)}),(0,R.jsxs)(`div`,{className:`relative`,children:[(0,R.jsxs)(`select`,{value:W,onChange:e=>pn(e.target.value===`device`?`device`:`locale`),className:`w-full appearance-none bg-slate-50 border border-slate-200 text-slate-700 text-sm rounded-xl px-4 py-2.5 pr-8 focus:outline-hidden focus:border-blue-500`,children:[(0,R.jsx)(`option`,{value:`locale`,children:J(`app.batch.structure.byLocale`)}),(0,R.jsx)(`option`,{value:`device`,children:J(`app.batch.structure.byDevice`)})]}),(0,R.jsx)(b,{className:`absolute right-3 top-1/2 -translate-y-1/2 text-slate-400 pointer-events-none`,size:16})]})]}),(0,R.jsx)(Mn,{}),(0,R.jsxs)(`div`,{className:`relative`,children:[(0,R.jsx)(`input`,{type:`text`,value:bn,onChange:e=>xn(e.target.value),className:`w-full bg-slate-50 border border-slate-200 text-slate-700 text-sm rounded-xl px-4 py-2.5 pr-10 focus:outline-hidden focus:border-blue-500`,placeholder:J(`app.device.searchPlaceholder`),spellCheck:!1}),bn&&(0,R.jsx)(`button`,{type:`button`,onClick:()=>xn(``),className:`absolute right-2.5 top-1/2 -translate-y-1/2 text-slate-400 hover:text-slate-600 p-1`,"aria-label":`Clear search`,children:(0,R.jsx)(p,{size:14})})]}),(0,R.jsx)(`div`,{className:`space-y-4 max-h-[200px] overflow-y-auto pr-2 scrollbar-thin border border-slate-100 rounded-lg p-2`,children:Object.entries(jn).map(([e,t])=>(0,R.jsxs)(`div`,{className:`space-y-2`,children:[(0,R.jsx)(`div`,{className:`text-xs font-semibold text-slate-900 bg-slate-50 p-1 px-2 rounded-sm`,children:Dn[e]||e}),t.map(e=>{let t=vt(z[e],{id:e,mode:pe});return(0,R.jsxs)(`label`,{className:`flex items-center gap-3 p-2 rounded-lg hover:bg-slate-50 cursor-pointer transition-colors border border-transparent hover:border-slate-100`,onClick:()=>fn(e),title:pe===_t.detailed?t.optionLabel:[t.optionLabel,t.dimensions].filter(Boolean).join(` - `),children:[(0,R.jsx)(`div`,{className:`w-4 h-4 rounded-sm border flex items-center justify-center transition-colors ${dn.includes(e)?`bg-blue-500 border-blue-500`:`border-slate-300 bg-white`}`,children:dn.includes(e)&&(0,R.jsx)(y,{size:12,className:`text-white`})}),(0,R.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,R.jsx)(`div`,{className:`text-xs text-slate-700 font-medium truncate`,children:t.primary}),t.secondary&&(0,R.jsx)(`div`,{className:`text-[10px] text-slate-400 truncate`,children:t.secondary})]})]},e)})]},e))})]})]})]})})},en=({show:e,current:t,total:n,label:r,onCancel:i})=>{let{t:a}=c();if(!e)return null;let o=n>0?Math.round(t/n*100):0,s=r||a(`app.progress.generating`);return(0,R.jsx)(`div`,{className:`fixed inset-0 z-100 bg-black/50 backdrop-blur-xs flex items-center justify-center`,children:(0,R.jsxs)(`div`,{className:`bg-white p-8 rounded-2xl shadow-2xl flex flex-col items-center w-80`,children:[(0,R.jsx)(Ce,{size:48,className:`text-blue-600 animate-spin mb-4`}),(0,R.jsx)(`h3`,{className:`text-lg font-bold text-slate-800 mb-2`,children:s}),(0,R.jsx)(`div`,{className:`w-full bg-slate-100 rounded-full h-2 mb-2 overflow-hidden`,children:(0,R.jsx)(`div`,{className:`bg-blue-600 h-full transition-all duration-300`,style:{width:`${o}%`}})}),(0,R.jsx)(`p`,{className:`text-sm text-slate-500`,children:a(`app.progress.images`,{current:t,total:n})}),i&&(0,R.jsxs)(`button`,{type:`button`,onClick:i,className:`mt-4 inline-flex items-center gap-2 px-4 py-2 text-sm font-semibold text-slate-700 rounded-lg border border-slate-200 hover:bg-slate-50 transition`,children:[(0,R.jsx)(p,{size:16}),a(`common.cancel`,{defaultValue:`Cancel`})]})]})})},tn=({slides:e,activeSlideIndex:t,setActiveSlideIndex:n,currentLocaleId:r,addSlide:i,removeSlide:a,onApplyFileToSlide:o,onOpenFilePickerForSlide:s,validateImageFile:l,onAddSlidesFromFiles:u})=>{let{t:d}=c(),[f,m]=(0,L.useState)(!1),[h,g]=(0,L.useState)(null),_=(0,L.useCallback)(e=>{e?.dataTransfer&&Array.from(e.dataTransfer.types||[]).includes(`Files`)&&(e.preventDefault(),m(!0))},[]),v=(0,L.useCallback)(e=>{e&&(e.preventDefault(),!e.currentTarget.contains(e.relatedTarget)&&(m(!1),g(null)))},[]),y=(0,L.useCallback)((e,t)=>{if(!e?.dataTransfer)return;e.preventDefault(),e.stopPropagation(),m(!1),g(null),n(t);let r=Array.from(e.dataTransfer.files||[]).filter(e=>e.type.startsWith(`image/`));if(!r.length||!o)return;let i=r[0];l&&!l(i)||o(i,t)},[o,n,l]),b=(0,L.useCallback)(e=>{if(!e?.dataTransfer)return;e.preventDefault(),m(!1),g(null);let t=Array.from(e.dataTransfer.files||[]).filter(e=>e.type.startsWith(`image/`));if(t.length){if(u){u(t);return}t.forEach(e=>{if(l&&!l(e))return;let t=new FileReader;t.onload=e=>i({screenshot:e.target?.result||null}),t.readAsDataURL(e)})}},[i,u,l]),x=e=>{n(e),typeof s==`function`&&s(e)};return(0,R.jsx)(`div`,{className:`w-full flex justify-center absolute bottom-0 left-0 right-0 z-20 pointer-events-none`,children:(0,R.jsxs)(`div`,{className:`w-full max-w-[1200px] bg-white border-t border-slate-200 flex items-center px-6 gap-4 shadow-[0_-8px_20px_-12px_rgba(0,0,0,0.25)] overflow-x-auto py-4 rounded-t-xl pointer-events-auto transition-colors ${f?`bg-blue-50 ring-2 ring-blue-400 border-blue-300`:``}`,onDragOver:_,onDrop:b,children:[f&&(0,R.jsx)(`div`,{className:`text-[11px] font-semibold text-blue-700 mr-2 whitespace-nowrap`,children:d(`app.storyboard.dropToAddSlides`)}),e.map((i,o)=>{let s=i?.screenshotsByLocale?.[r]||i?.screenshot||null,c=Object.keys(i?.screenshotsByLocale||{}).length;return(0,R.jsxs)(`div`,{onClick:()=>n(o),onDoubleClick:()=>x(o),onKeyDown:e=>{e.target===e.currentTarget&&(e.key===`Enter`||e.key===` `)&&(e.preventDefault(),n(o))},onDragOver:e=>{_(e),e.stopPropagation()},onDragLeave:e=>{v(e),e.stopPropagation(),g(null)},onDragEnter:e=>{_(e),e.stopPropagation(),g(o)},onDrop:e=>y(e,o),role:`button`,tabIndex:0,"aria-pressed":o===t,className:`relative w-20 h-24 rounded-lg border-2 cursor-pointer transition-all flex flex-col items-center justify-center bg-slate-50 hover:bg-slate-100 ${o===t?`border-blue-500 ring-2 ring-blue-200`:`border-slate-200`} ${h===o?`border-blue-400 bg-blue-50`:``}`,children:[(0,R.jsxs)(`span`,{className:`absolute top-1 left-2 text-[10px] font-bold text-slate-400`,children:[`#`,o+1]}),c>0&&(0,R.jsx)(`span`,{className:`absolute bottom-1 left-1 px-1.5 py-0.5 rounded-full bg-blue-600 text-white text-[9px] font-bold shadow-xs`,title:d(`app.storyboard.localeOverrides`,{count:c}),children:c}),s?(0,R.jsx)(`img`,{src:s,alt:``,className:`w-12 h-16 object-cover rounded-sm shadow-xs border border-slate-200`}):(0,R.jsx)(`div`,{className:`w-12 h-16 bg-slate-200 rounded-sm flex items-center justify-center`,children:(0,R.jsx)(be,{size:16,className:`text-slate-400`})}),e.length>1&&(0,R.jsx)(`button`,{type:`button`,onClick:e=>a(o,e),className:`absolute -top-2 -right-2 bg-red-500 text-white rounded-full p-0.5 shadow-xs hover:scale-110 transition-transform`,"aria-label":d(`common.remove`,{defaultValue:`Remove`}),children:(0,R.jsx)(p,{size:10})})]},i.id)}),(0,R.jsxs)(`button`,{onClick:()=>i(),onDragOver:_,onDrop:b,className:`w-20 h-24 rounded-lg border-2 border-dashed border-slate-300 flex flex-col items-center justify-center text-slate-400 hover:text-blue-500 hover:border-blue-400 hover:bg-blue-50 transition-all`,children:[(0,R.jsx)(ke,{size:24}),(0,R.jsx)(`span`,{className:`text-xs font-medium mt-1`,children:d(`app.storyboard.addSlide`)})]})]})})},nn=`shipScreensUpsellWatermarkToastLastShownAt`,rn=`shipscreensSampleWelcomePromptShownV1`,an=(e=``)=>{let t=new URLSearchParams(e).get(`billing`);return t===`starter`||t===`annual`?t:`monthly`},on=()=>{let{t:e,i18n:t}=c(),{addToast:n}=s();m(`titles.editor`);let i=d(),[l,p]=(0,L.useState)(`single`),h=typeof window<`u`&&window.__SHIPSCREENS_CLI===!0;(0,L.useEffect)(()=>{h&&p(`batch`)},[h]);let[_,v]=(0,L.useState)(`edit`),[y,b]=(0,L.useState)(()=>typeof window>`u`?_t.store:localStorage.getItem(`shipScreensDeviceLabelMode`)===_t.detailed?_t.detailed:_t.store),[S,C]=(0,L.useState)(()=>{if(typeof window>`u`)return`locale`;let e=window.__SHIPSCREENS_CLI===!0?window.__SHIPSCREENS_CLI_EXPORT_STRUCTURE_MODE:null;return e===`device`?`device`:e===`locale`?`locale`:localStorage.getItem(`shipScreensExportStructureMode`)===`device`?`device`:`locale`}),w=h&&typeof window<`u`&&window.__SHIPSCREENS_CLI_AUTH||null,T=w?.token||null,E=w?.profile||null,[O,A]=(0,L.useState)(()=>!!E?.isPro),[j,M]=(0,L.useState)(!1),[ee,ne]=(0,L.useState)(!1),ie=(0,L.useRef)(null),N=(0,L.useRef)(!1),[oe,se]=(0,L.useState)(()=>!!E?.stripeCustomerId),[ce,P]=(0,L.useState)(()=>E?.subscriptionStatus===void 0?null:E.subscriptionStatus||null),{user:le,isAuthenticated:F,isLoading:ue,signIn:de,signUp:fe,signOut:me}=te(),he=le?.token||T,I=!!he,[ve,ye]=(0,L.useState)(``),[be,we]=(0,L.useState)(0),[Oe,ke]=(0,L.useState)(!1),[Ae,Ne]=(0,L.useState)({x:0,y:0}),[Pe,Le]=(0,L.useState)(!1),Re=(0,L.useRef)({x:0,y:0}),ze=typeof window<`u`?an(window.location.search):`monthly`,Be=ce===`past_due`||ce===`unpaid`,[Ve,We]=(0,L.useState)([`iphone69`,`iphone65`,`iphone55`,`pixel8`,`ipad13`]),Ge=(0,L.useCallback)(e=>{We(t=>t.includes(e)?t.filter(t=>t!==e):[...t,e])},[]),[Ke,qe]=(0,L.useState)(`solid`),[Je,Xe]=(0,L.useState)(`#ffffff`),[Ze,Qe]=(0,L.useState)(null),[$e,et]=(0,L.useState)(0),[tt,nt]=(0,L.useState)(0),[rt,it]=(0,L.useState)(`#e0c3fc`),[at,ot]=(0,L.useState)(`#8ec5fc`),[st,ct]=(0,L.useState)(135),[lt,ut]=(0,L.useState)(1),[B,dt]=(0,L.useState)(.25),[ft,ht]=(0,L.useState)(`portrait`),[V,yt]=(0,L.useState)(`iphone69`),[bt,xt]=(0,L.useState)(`black`),[St,Ct]=(0,L.useState)(8),[wt,H]=(0,L.useState)(`top`),[Tt,Et]=(0,L.useState)(`none`),[Dt,Ot]=(0,L.useState)(null),[kt,At]=(0,L.useState)(`#1e293b`),[jt,Mt]=(0,L.useState)(96),[Nt,Pt]=(0,L.useState)(48),[Ft,It]=(0,L.useState)(40),[Lt,Rt]=(0,L.useState)(24),[zt,Bt]=(0,L.useState)(5),[Wt,Gt]=(0,L.useState)(96),[Kt,qt]=(0,L.useState)(48),[Jt,Yt]=(0,L.useState)(8),[Xt,Zt]=(0,L.useState)(`Inter`),[Qt,on]=(0,L.useState)(()=>{if(typeof window<`u`){let e=localStorage.getItem(`shipScreensRecentColors`);return e?JSON.parse(e):[]}return[]});(0,L.useEffect)(()=>{localStorage.setItem(`shipScreensRecentColors`,JSON.stringify(Qt))},[Qt]),(0,L.useEffect)(()=>{localStorage.setItem(`shipScreensDeviceLabelMode`,y)},[y]),(0,L.useEffect)(()=>{localStorage.setItem(`shipScreensExportStructureMode`,S)},[S]);let sn=(0,L.useCallback)((e,t={})=>{mr.current||(mr.current=!0,a(`project_created`,{source:e,...t}))},[]),cn=(0,L.useCallback)((e={})=>{hr.current||(hr.current=!0,sn(`screenshot_upload`),a(`base_screenshots_uploaded`,e))},[sn]),ln=(0,L.useCallback)(e=>{e&&on(t=>[e,...t.filter(t=>t!==e)].slice(0,10))},[]),un=e=>{yt(e),z[e]?.type===`watch`?(Mt(Ft),Pt(Lt),Ct(zt)):z[V]?.type===`watch`&&(Mt(Wt),Pt(Kt),Ct(Jt))},dn=[{id:`en-US`,name:`English (US)`,flag:`🇺🇸`,defaults:{header:`New App`,sub:`Available Now`}},{id:`ja-JP`,name:`日本語`,flag:`🇯🇵`,defaults:{header:`新作アプリ`,sub:`好評配信中`}},{id:`es-ES`,name:`Espanol (Espana)`,flag:`🇪🇸`,defaults:{header:`Nueva app`,sub:`Disponible ahora`}},{id:`fr-FR`,name:`Francais`,flag:`🇫🇷`,defaults:{header:`Nouvelle appli`,sub:`Disponible maintenant`}},{id:`de-DE`,name:`Deutsch`,flag:`🇩🇪`,defaults:{header:`Neue App`,sub:`Jetzt verfügbar`}},{id:`ko-KR`,name:`한국어`,flag:`🇰🇷`,defaults:{header:`새로운 앱`,sub:`지금 이용 가능`}},{id:`zh-CN`,name:`简体中文`,flag:`🇨🇳`,defaults:{header:`新应用`,sub:`现已发布`}},{id:`zh-TW`,name:`繁體中文`,flag:`🇹🇼`,defaults:{header:`新應用`,sub:`現已發布`}},{id:`it-IT`,name:`Italiano`,flag:`🇮🇹`,defaults:{header:`Nuova app`,sub:`Disponibile ora`}},{id:`pt-BR`,name:`Portugues (Brasil)`,flag:`🇧🇷`,defaults:{header:`Novo app`,sub:`Disponível agora`}}],[U,fn]=(0,L.useState)([{id:`en-US`,name:`English (US)`,flag:`🇺🇸`},{id:`ja-JP`,name:`日本語`,flag:`🇯🇵`}]),[W,pn]=(0,L.useState)(`en-US`),[G,K]=(0,L.useState)([{id:1,screenshot:null,screenshotsByLocale:{},texts:{"en-US":{header:`New App`,sub:`Available Now`},"ja-JP":{header:`新作アプリ`,sub:`好評配信中`}}}]),[q,mn]=(0,L.useState)(0),[hn,gn]=(0,L.useState)(`shared`),[_n,vn]=(0,L.useState)([]),[J,Y]=(0,L.useState)(``),[yn,bn]=(0,L.useState)(!1),[xn,Sn]=(0,L.useState)({current:0,total:0}),[Cn,wn]=(0,L.useState)({used:`0.00`,percent:0}),[Tn,En]=(0,L.useState)(!1),[Dn,On]=(0,L.useState)({past:[],future:[]}),[kn,An]=(0,L.useState)(null),[jn,Mn]=(0,L.useState)(null),[X,Nn]=(0,L.useState)(null),[Pn,Fn]=(0,L.useState)(`merge`),[In,Ln]=(0,L.useState)(!1),[Rn,zn]=(0,L.useState)(`current`),[Bn,Vn]=(0,L.useState)(`5`),[Z,Hn]=(0,L.useState)(null),[Un,Wn]=(0,L.useState)({current:0,total:0}),[Gn,Kn]=(0,L.useState)(!1),[qn,Jn]=(0,L.useState)(``),[Yn,Xn]=(0,L.useState)(()=>typeof window<`u`?window.innerWidth<768:!1),[Zn,Qn]=(0,L.useState)(()=>typeof window<`u`?window.innerWidth>=768:!1),[$n,er]=(0,L.useState)(0),[tr,nr]=(0,L.useState)(!1),[rr,ir]=(0,L.useState)(!1),[ar,or]=(0,L.useState)(!1),[sr,cr]=(0,L.useState)(!1),[lr,ur]=(0,L.useState)(!1),[dr,fr]=(0,L.useState)(!1),pr=(0,L.useRef)(!1),mr=(0,L.useRef)(!1),hr=(0,L.useRef)(!1),gr=(0,L.useRef)(!1),_r=(0,L.useRef)(null),vr=(0,L.useRef)(null),yr=(0,L.useRef)(null),br=(0,L.useRef)(null),xr=(0,L.useRef)(null),Sr=(0,L.useRef)(null),Cr=(0,L.useRef)(null),wr=(0,L.useRef)(null),Tr=(0,L.useRef)(null),Er=(0,L.useRef)(null),Dr=(0,L.useCallback)(()=>Mn(null),[]),Or=(0,L.useCallback)(()=>{Ln(!1),zn(`current`),Vn(String(Math.max(1,G.length)))},[G.length]),kr=(0,L.useCallback)(()=>{Nn(null),Fn(`merge`)},[]),Ar=(0,L.useCallback)(()=>{kn?.onCancel?.(),An(null)},[kn]);u({isOpen:!!jn,onClose:Dr,panelRef:_r,initialFocusRef:vr}),u({isOpen:In,onClose:Or,panelRef:yr,initialFocusRef:br}),u({isOpen:!!X,onClose:kr,panelRef:xr,initialFocusRef:Sr}),u({isOpen:!!kn,onClose:Ar,panelRef:Tr,initialFocusRef:Er});let jr=(0,L.useRef)(null),Mr=(0,L.useRef)(null),Nr=(0,L.useRef)(null),Pr=(0,L.useRef)(null),Fr=(0,L.useRef)(null),Ir=(0,L.useRef)(null),Lr=(0,L.useRef)(null),Rr=(0,L.useRef)(null),zr=(0,L.useRef)(null),Br=(0,L.useRef)(!1),Vr=(0,L.useRef)(``),Hr=(0,L.useRef)(!1),Ur=(0,L.useRef)(0),Wr=(0,L.useRef)(null),Gr=(0,L.useRef)([]),Kr=(0,L.useRef)(null),{exportSingle:qr,exportBatch:Jr,isExporting:Yr,exportProgress:Xr}=Vt({deviceLibrary:z,bgType:Ke,bgColor:Je});(0,L.useEffect)(()=>{let e=zr.current;if(!e)return;let t=e=>{if(e.ctrlKey||e.metaKey){e.preventDefault();let t=.05;dt(n=>{let r=e.deltaY<0?n+t:n-t;return Math.min(1,Math.max(.05,r))})}};return e.addEventListener(`wheel`,t,{passive:!1}),()=>{e.removeEventListener(`wheel`,t)}},[]);let Zr=G[q];U.find(e=>e.id===W)?.name;let Qr=Zr.texts[W]?.header||``,$r=Zr.texts[W]?.sub||``,ei=Zr.screenshotsByLocale?.[W]||Zr.screenshot,ti=!!Zr.screenshotsByLocale?.[W],ni=hn===`shared`?Zr.screenshot:ei,ri=Zr?.screenshotsByLocale||{},ii=Object.keys(ri).length,ai=ii>0,oi=!!Zr?.screenshot,si=z[V]?.type===`watch`,ci=si?`portrait`:ft,li=Zr.layoutOverride||null,ui=!!li,di=li?.topSpacing??St,fi=li?.deviceScale??lt,pi=li?.layoutMode??wt,{canvasWidth:mi=1200,canvasHeight:hi=2200}=(0,L.useMemo)(()=>Ye({deviceId:V,orientation:ci,deviceScale:fi,topSpacing:di,layoutMode:pi})||{},[V,ci,fi,di,pi]);(0,L.useEffect)(()=>{si?(It(jt),Rt(Nt),Bt(St)):(Gt(jt),qt(Nt),Yt(St))},[si,jt,Nt,St]);let gi=[{name:e(`app.fonts.inter`),value:`Inter`,family:`'Inter', 'Noto Sans Arabic', 'Noto Sans Thai', sans-serif`},{name:e(`app.fonts.roboto`),value:`Roboto`,family:`'Roboto', 'Noto Sans Arabic', 'Noto Sans Thai', sans-serif`},{name:e(`app.fonts.montserrat`),value:`Montserrat`,family:`'Montserrat', 'Noto Sans Arabic', 'Noto Sans Thai', sans-serif`},{name:e(`app.fonts.playfair`),value:`Playfair Display`,family:`'Playfair Display', 'Noto Sans Arabic', 'Noto Sans Thai', serif`},{name:e(`app.fonts.merriweather`),value:`Merriweather`,family:`'Merriweather', 'Noto Sans Arabic', 'Noto Sans Thai', serif`},{name:e(`app.fonts.system`),value:`System`,family:`system-ui, -apple-system, 'Segoe UI', 'Noto Sans Arabic', 'Noto Sans Thai', sans-serif`}],_i=(0,L.useCallback)(()=>{if(typeof localStorage>`u`){wn({used:`0.00`,percent:0});return}try{let e=0;for(let t=0;t<localStorage.length;t++){let n=localStorage.key(t);if(!n)continue;let r=localStorage.getItem(n);r!==null&&(e+=(n.length+r.length)*2)}let t=e/1024/1024,n=Math.min(e/(5*1024*1024)*100,100);wn({used:t.toFixed(2),percent:n})}catch(e){console.error(`Failed to calculate storage usage`,e),wn({used:`0.00`,percent:0})}},[]),vi=(0,L.useCallback)(()=>({bgType:Ke,bgColor:Je,gradientStart:rt,gradientEnd:at,gradientAngle:st,bgBlur:$e,bgOpacity:tt,deviceScale:lt,orientation:ft,deviceId:V,topSpacing:St,badgeType:Tt,layoutMode:wt,frameColor:bt,locales:U,currentLocaleId:W,activeSlideIndex:q,slides:G,textColor:kt,headerSize:jt,subHeaderSize:Nt,selectedFont:Xt,selectedBatchDevices:Ve,bgImage:Ze,logoImage:Dt}),[Ke,Je,rt,at,st,$e,tt,lt,ft,V,St,Tt,wt,bt,U,W,G,kt,jt,Nt,Xt,Ve,Ze,Dt,q]),Q=(0,L.useCallback)(e=>{if(!e)return;Br.current=!0,qe(e.bgType??`solid`),Xe(e.bgColor??`#ffffff`),it(e.gradientStart??`#e0c3fc`),ot(e.gradientEnd??`#8ec5fc`),ct(e.gradientAngle??135),et(e.bgBlur??0),nt(e.bgOpacity??0),ut(e.deviceScale??1),dt(t=>e.previewZoom??t??.25),ht(e.orientation??`portrait`),yt(e.deviceId??`iphone69`),xt(e.frameColor??`black`),Ct(e.topSpacing??8),Et(e.badgeType??`none`),H(e.layoutMode??`top`),fn(Array.isArray(e.locales)?e.locales:[]),pn(e.currentLocaleId??`en-US`);let t=Array.isArray(e.slides)?e.slides:[];K(t);let n=typeof e.activeSlideIndex==`number`?e.activeSlideIndex:0;mn(t.length?Math.min(Math.max(n,0),t.length-1):0),At(e.textColor??`#1e293b`),Mt(e.headerSize??96),Pt(e.subHeaderSize??48),Zt(e.selectedFont??`Inter`),We(Array.isArray(e.selectedBatchDevices)?e.selectedBatchDevices:[]),Qe(e.bgImage??null),Ot(e.logoImage??null)},[]),yi=(0,L.useCallback)(()=>{On(e=>{if(!e.past.length)return e;let t=[...e.past],n=t.pop(),r=[vi(),...e.future].slice(0,20);return Q(n),{past:t,future:r}})},[vi,Q]),bi=(0,L.useCallback)(()=>{On(e=>{if(!e.future.length)return e;let[t,...n]=e.future,r=[...e.past,vi()].slice(-20);return Q(t),{past:r,future:n}})},[vi,Q]);(0,L.useEffect)(()=>{let e=()=>{let e=window.innerHeight,t=window.innerWidth<768;Xn(t),Qn(!t),l===`single`&&dt(e<800?.2:e<1e3?.25:.35)};return e(),window.addEventListener(`resize`,e),()=>window.removeEventListener(`resize`,e)},[l]),(0,L.useEffect)(()=>{if(J){let e=setTimeout(()=>Y(``),2e3);return()=>clearTimeout(e)}},[J]),(0,L.useEffect)(()=>{bn(Yr),Sn(Xr)},[Yr,Xr]),(0,L.useEffect)(()=>{if(l===`single`){let e=document.getElementById(`single-canvas`)||document.querySelector(`[data-capture-target="true"]`);e&&(Rr.current=e)}},[l]),(0,L.useEffect)(()=>{_===`data`&&_i()},[_,_i]),(0,L.useEffect)(()=>{if(Hr.current)return;Hr.current=!0;let e=vi();Vr.current=JSON.stringify(e)},[vi]),(0,L.useEffect)(()=>{if(Br.current){Br.current=!1;return}let e=vi(),t=JSON.stringify(e);t!==Vr.current&&(Vr.current=t,On(t=>({past:[...t.past,e].slice(-20),future:[]})))},[vi]),(0,L.useEffect)(()=>{let e=localStorage.getItem(`mockupStudioUserPresets`);e&&vn(JSON.parse(e))},[]),(0,L.useEffect)(()=>{(async()=>{if(!he){A(!1),P(null),se(!1);return}if(h&&E){A(!!E.isPro),P(E.subscriptionStatus||null),se(!!E.stripeCustomerId);return}try{let e=await re(he);e?.isPro!==void 0&&A(!!e.isPro),e?.subscriptionStatus!==void 0&&P(e.subscriptionStatus||null),se(!!e?.stripeCustomerId)}catch(e){console.error(`Failed to load profile`,e),A(!1),P(null),se(!1)}})()},[he,h,E]),(0,L.useEffect)(()=>{let e=async()=>{if(he&&!(h&&E))try{let e=await re(he);e?.isPro!==void 0&&A(!!e.isPro),e?.subscriptionStatus!==void 0&&P(e.subscriptionStatus||null),e?.stripeCustomerId!==void 0&&se(!!e.stripeCustomerId)}catch(e){console.error(`Failed to refresh profile on focus`,e)}},t=()=>{e()};return window.addEventListener(`focus`,t),()=>window.removeEventListener(`focus`,t)},[he,h,E]),(0,L.useEffect)(()=>{if(ue||h)return;let e=new URLSearchParams(window.location.search),t=localStorage.getItem(`pendingCheckoutSessionId`),n=e.get(`session_id`)||t;if(!n||n===`cli`)return;let r=()=>{if(e.has(`session_id`)){e.delete(`session_id`);let t=e.toString(),n=`${window.location.pathname}${t?`?${t}`:``}${window.location.hash||``}`;window.history.replaceState({},``,n)}},i=async(e=1,t=6)=>{if(!F||!le?.token){ye(`signin`),localStorage.setItem(`pendingCheckoutSessionId`,n),pr.current||(pr.current=!0,de());return}localStorage.removeItem(`pendingCheckoutSessionId`),ye(`pending`),we(e);try{let e=await re(le.token);if(e?.isPro){A(!0),e?.subscriptionStatus!==void 0&&P(e.subscriptionStatus||null),e?.stripeCustomerId&&se(!0),ye(`success`);return}}catch(e){console.error(`Failed to refresh after checkout`,e)}if(e>=t){ye(`retry`);return}setTimeout(()=>i(e+1,t),1500)};i(),r()},[F,le?.token,ue,de,h]),(0,L.useEffect)(()=>{let e=()=>{ke(!0),h||me(),A(!1),P(null),se(!1)};return window.addEventListener(`auth:unauthorized`,e),()=>window.removeEventListener(`auth:unauthorized`,e)},[me,h]);let xi=t=>t?t.type?.startsWith(`image/`)?t.size>20*1024*1024?(n({type:`error`,message:e(`app.alerts.fileSize`)}),!1):!0:(n({type:`error`,message:e(`app.alerts.fileType`)}),!1):!1,Si=e=>new Promise((t,n)=>{let r=new FileReader;r.onload=e=>t(e.target.result),r.onerror=n,r.readAsDataURL(e)}),Ci=async()=>{let t={bgType:Ke,bgColor:Je,gradientStart:rt,gradientEnd:at,gradientAngle:st,bgBlur:$e,bgOpacity:tt,deviceScale:lt,orientation:ft,deviceId:V,topSpacing:St,layoutMode:wt,badgeType:Tt,frameColor:bt,locales:U,currentLocaleId:W,slides:G.map(e=>({...e,screenshot:null,screenshotsByLocale:{}})),textColor:kt,headerSize:jt,subHeaderSize:Nt,selectedFont:Xt,selectedBatchDevices:Ve};try{let r=JSON.stringify(t);if(r.length>6e3){n({type:`error`,message:e(`app.alerts.shareTooLarge`)});return}let i=btoa(encodeURIComponent(r).replace(/%([0-9A-F]{2})/g,(e,t)=>String.fromCharCode(`0x`+t))),a=await x(`${window.location.origin}${window.location.pathname}?project=${i}`);a.ok?(Y(`shared`),n({type:`success`,message:a.method===`execCommand`?e(`app.share.fallbackSuccess`):e(`app.share.copySuccess`)})):n({type:`info`,message:e(`app.share.manualCopy`)})}catch(t){console.error(`Share failed`,t),n({type:`error`,message:e(`app.alerts.shareTooLarge`)})}};(0,L.useEffect)(()=>{let e=new URLSearchParams(window.location.search).get(`project`);if(e)try{let t=decodeURIComponent(atob(e).split(``).map(e=>`%`+(`00`+e.charCodeAt(0).toString(16)).slice(-2)).join(``)),n=JSON.parse(t);n.bgType&&qe(n.bgType),n.bgColor&&Xe(n.bgColor),n.gradientStart&&it(n.gradientStart),n.gradientEnd&&ot(n.gradientEnd),n.gradientAngle&&ct(n.gradientAngle),n.deviceScale&&ut(n.deviceScale),n.orientation&&ht(n.orientation),n.deviceId&&yt(n.deviceId),n.topSpacing&&Ct(n.topSpacing),n.layoutMode&&H(n.layoutMode),n.badgeType&&Et(n.badgeType),n.locales&&fn(n.locales),n.currentLocaleId&&pn(n.currentLocaleId),n.slides&&(K(n.slides),mn(0)),n.textColor&&At(n.textColor),n.headerSize&&Mt(n.headerSize),n.subHeaderSize&&Pt(n.subHeaderSize),n.selectedFont&&Zt(n.selectedFont),n.selectedBatchDevices&&We(n.selectedBatchDevices),n.frameColor&&xt(n.frameColor)}catch(e){console.error(`Failed to load project from URL`,e)}},[]),(0,L.useEffect)(()=>{if(typeof window>`u`)return;let e=new URLSearchParams(window.location.search),t=(e.get(`upgrade`)||``).trim().toLowerCase();if(!t)return;N.current=!0,(t===`1`||t===`true`||t===`yes`||t===`on`)&&!O&&(ie.current=`url_param`,a(`upgrade_modal_opened`,{source:`url_param`,is_pro:O,is_authenticated:!!I}),M(!0)),e.delete(`upgrade`);let n=e.toString(),r=`${window.location.pathname}${n?`?${n}`:``}${window.location.hash||``}`;window.history.replaceState(window.history.state,``,r)},[I,O]);let wi=(0,L.useCallback)((e=`unknown`)=>{j||(ie.current=e,a(`upgrade_modal_opened`,{source:e,is_pro:O,is_authenticated:!!I}),M(!0))},[I,O,j]),Ti=()=>{if(typeof window>`u`)return`/app/`;let e=`${window.location.pathname}${window.location.search}${window.location.hash||``}`;return e.length>1200?`/app/`:e},Ei=()=>{if(typeof window>`u`)return`/app/?upgrade=1`;try{let e=new URL(window.location.href);e.searchParams.set(`upgrade`,`1`);let t=`${e.pathname}${e.search}${e.hash||``}`;return t.length>1200?`/app/?upgrade=1`:t}catch{return`/app/?upgrade=1`}},Di=async()=>{window.location.href=`/signin?next=${encodeURIComponent(Ti())}`},Oi=async()=>{window.location.href=`/signup?next=${encodeURIComponent(Ti())}`},ki=async()=>{try{await me(),A(!1),P(null),ye(``)}catch(e){console.error(`Sign out failed`,e)}},Ai=async()=>{let t=ie.current||`unknown`,i=typeof window<`u`?new URLSearchParams(window.location.search):new URLSearchParams,s=an(window.location.search),c=o(),l=i.get(`entry_source`)||c.entry_source||``,u=s===`starter`?`agent_starter`:`pro`;try{if(a(`upgrade_cta_clicked`,{source:t,is_pro:O,is_authenticated:!!I,requested_billing:s,offer:u,entry_source:l||void 0}),!I){eo(!0),a(`checkout_auth_required`,{source:t,requested_billing:s,offer:u,entry_source:l||void 0}),a(`upgrade_signin_redirected`,{source:t,requested_billing:s,offer:u,entry_source:l||void 0}),r(),window.location.href=`/signin?next=${encodeURIComponent(Ei())}`;return}throw eo(),Error(e(`app.alerts.priceMissing`))}catch(r){console.error(r),a(`checkout_failed`,{source:t,requested_billing:s,offer:s===`starter`?`agent_starter`:`pro`,entry_source:l||void 0}),n({type:`error`,message:e(`app.alerts.checkoutFailed`)})}},ji=e=>{if(O){e();return}wi(`require_pro`)},Mi=()=>{ye(`pending`),we(0);let e=new URLSearchParams(window.location.search);if(e.get(`session_id`)){e.delete(`session_id`);let t=e.toString(),n=`${window.location.pathname}${t?`?${t}`:``}${window.location.hash||``}`;window.history.replaceState({},``,n)}if(I&&he){let e=async(t=1,n=6)=>{ye(`pending`),we(t);try{if((await re(he))?.isPro){A(!0),ye(`success`);return}}catch(e){console.error(`Failed to refresh after checkout`,e)}if(t>=n){ye(`retry`);return}setTimeout(()=>e(t+1,n),1500)};e()}else ye(`signin`)},Ni=async()=>{try{if(!I||!he){n({type:`error`,message:e(`app.alerts.signInManage`)});return}En(!0);let t=oe;try{let e=await re(he);e?.isPro!==void 0&&A(!!e.isPro),e?.subscriptionStatus!==void 0&&P(e.subscriptionStatus||null),t=!!e?.stripeCustomerId,se(t)}catch(e){console.error(`Failed to refresh profile before portal`,e)}if(!t){n({type:`error`,message:e(`app.alerts.portalNoCustomer`)});return}let r=await ae(he);r?.url?window.location.assign(r.url):n({type:`error`,message:e(`app.alerts.portalUnavailable`)})}catch(t){console.error(t),n({type:`error`,message:e(`app.alerts.portalFailed`)})}finally{En(!1)}},Pi=(t={})=>{if(t?.nativeEvent&&(t={}),G.length>=50){n({type:`error`,message:e(`app.alerts.slideLimit`)});return}sn(`add_slide`,{slide_count:G.length+1});let r=G.length?Math.max(...G.map(e=>e.id))+1:1,i={};U.forEach(t=>{i[t.id]={header:e(`app.defaults.newSlideTitle`),sub:e(`app.defaults.newSlideDesc`)}});let a={screenshot:null,screenshotsByLocale:{},texts:i,...t,id:r};K([...G,a]),mn(G.length)},Fi=async t=>{if(!t?.length)return;let n=t.filter(e=>xi?xi(e):!0);if(!n.length)return;let r=n.reduce((e,t)=>e+(t.size||0),0);cn({source:`bulk_upload`,file_count:n.length,total_bytes:r,scope:`shared`,slide_count:Math.min(50,G.length+n.length)});let i=[...G],a=[...n],o=i.findIndex(e=>!e.screenshot);if(o!==-1&&a.length){let e=await Si(a.shift());i[o]={...i[o],screenshot:e,screenshotsByLocale:i[o]?.screenshotsByLocale||{}}}let s=i.length?Math.max(...i.map(e=>e.id||0)):0;for(let t of a){if(i.length>=50)break;let n=await Si(t),r={};U.forEach(t=>{r[t.id]={header:e(`app.defaults.newSlideTitle`),sub:e(`app.defaults.newSlideDesc`)}}),i.push({screenshot:n,screenshotsByLocale:{},texts:r,id:++s})}K(i),mn(i.length-1)},Ii=(e,t)=>{t.stopPropagation(),G.length>1&&(K(G.filter((t,n)=>n!==e)),q>=e&&q>0&&mn(q-1))},Li=(e,t)=>{let n=[...G],r=n[q].texts;r[W]||(r[W]={header:``,sub:``}),r[W][e]=t,K(n)},Ri=(e,t,n={})=>{let r=[...G];if(!r[e])return;let i=n?.scope??hn,a=n?.localeId??W;if(i===`locale`){let n={...r[e].screenshotsByLocale||{}};n[a]=t,r[e]={...r[e],screenshotsByLocale:n}}else r[e]={...r[e],screenshot:t};K(r)},zi=(e,t={})=>{let n=[...G];if(!n[e])return;let r=t?.scope??hn,i=t?.localeId??W;if(r===`locale`){let t=n[e].screenshotsByLocale||{};if(!(i in t))return;let r={...t};delete r[i],n[e]={...n[e],screenshotsByLocale:r}}else n[e]={...n[e],screenshot:null};K(n)},Bi=e=>{let t=[...G];if(!t[e])return;let n=t[e].screenshotsByLocale||{};Object.keys(n).length&&(t[e]={...t[e],screenshotsByLocale:{}},K(t))},Vi=()=>{let e=[...G];e[q].layoutOverride||(e[q].layoutOverride={deviceScale:lt,topSpacing:St,layoutMode:wt}),K(e)},Hi=(e,t)=>{let n=[...G];n[q].layoutOverride||(n[q].layoutOverride={}),n[q].layoutOverride[e]=t,K(n)},Ui=()=>{let e=[...G];delete e[q].layoutOverride,K(e)},Wi=(e,t=q)=>{if(!xi(e))return;let n=hn,r=W,i={source:`single_upload`,file_count:1,total_bytes:e.size||0,scope:n,slide_count:G.length};n===`locale`&&(i.locale_id=r),cn(i);let a=new FileReader;a.onload=e=>Ri(t,e.target.result,{scope:n,localeId:r}),a.readAsDataURL(e)},Gi=(e,t=q)=>{if(!xi(e))return;cn({source:`single_upload`,file_count:1,total_bytes:e.size||0,scope:`shared`,slide_count:G.length});let n=new FileReader;n.onload=e=>Ri(t,e.target.result,{scope:`shared`}),n.readAsDataURL(e)},Ki=e=>{let t=e?.target?.files?.[0],n=typeof Nr.current==`number`?Nr.current:q;t&&Gi(t,n),Nr.current=null,e?.target&&(e.target.value=``)},qi=e=>{if(Nr.current=e,Mr.current){try{Mr.current.value=null}catch{}Mr.current.click()}},Ji=(e,t=q)=>{let n=e.target.files[0];n&&Wi(n,t)},Yi=e=>{e.preventDefault(),e.stopPropagation(),ir(!0)},Xi=e=>{e.preventDefault(),e.stopPropagation(),ir(!1)},Zi=e=>{e.preventDefault(),e.stopPropagation()},Qi=e=>{e.preventDefault(),e.stopPropagation(),ir(!1),$i(e)},$i=(e,t=q)=>{e.preventDefault();let n=e.dataTransfer.files[0];n&&Wi(n,t)},ea=e=>{e.preventDefault();let t=e.dataTransfer.files[0];if(!xi(t))return;let n=new FileReader;n.onload=e=>{Qe(e.target.result),qe(`image`)},n.readAsDataURL(t)},ta=e=>{e.preventDefault(),e.stopPropagation(),or(!0)},na=e=>{e.preventDefault(),e.stopPropagation(),or(!1)},ra=e=>{e.preventDefault(),e.stopPropagation()},ia=e=>{e.preventDefault(),e.stopPropagation(),or(!1),ea(e)},aa=e=>{let t=e.target.files?.[0];if(!xi(t))return;let n=new FileReader;n.onload=e=>{Qe(e.target.result),qe(`image`)},n.readAsDataURL(t)},oa=e=>{e.preventDefault();let t=e.dataTransfer.files[0];if(!xi(t))return;let n=new FileReader;n.onload=e=>Ot(e.target.result),n.readAsDataURL(t)},sa=e=>{e.preventDefault(),e.stopPropagation(),cr(!0)},ca=e=>{e.preventDefault(),e.stopPropagation(),cr(!1)},la=e=>{e.preventDefault(),e.stopPropagation()},ua=e=>{e.preventDefault(),e.stopPropagation(),cr(!1),oa(e)},da=e=>{let t=e.target.files?.[0];if(!xi(t))return;let n=new FileReader;n.onload=e=>Ot(e.target.result),n.readAsDataURL(t)},fa=(0,L.useCallback)(()=>{Ot(null)},[]),pa=e=>{!Array.isArray(e)||e.length===0||(fn(t=>{let n=new Set(t.map(e=>e.id)),r=[...t];return e.forEach(e=>{n.has(e.id)||(r.push(e),n.add(e.id))}),r}),K(t=>t.map(t=>{let n={...t.texts};return e.forEach(e=>{if(!n[e.id]){let t=dn.find(t=>t.id===e.id)?.defaults||{header:``,sub:``};n[e.id]={header:t.header,sub:t.sub}}}),{...t,texts:n}})),e[0]?.id&&pn(e[0].id))},ma=(0,L.useCallback)(e=>{pn(e),!gr.current&&U.length>1&&e&&e!==W&&(gr.current=!0,a(`multi_locale_previewed`,{locale_count:U.length,from:W,to:e}))},[W,U.length]),ha=e=>{fn(t=>{if(t.length<=1)return t;let n=t.filter(t=>t.id!==e);return n.length?(W===e&&pn(n[0].id),K(t=>t.map(t=>{let n={...t.texts};if(delete n[e],!t?.screenshotsByLocale||!(e in t.screenshotsByLocale))return{...t,texts:n};let r={...t.screenshotsByLocale};return delete r[e],{...t,texts:n,screenshotsByLocale:r}})),n):t})},ga=()=>{let e=vi(),t={version:`1.0`,savedAt:new Date().toISOString(),data:e},n=new Blob([JSON.stringify(t,null,2)],{type:`application/json`}),r=URL.createObjectURL(n),i=document.createElement(`a`);i.href=r,i.download=`shipscreens-project.json`,document.body.appendChild(i),i.click(),i.remove(),URL.revokeObjectURL(r)},_a=t=>{let r=t?.target?.files?.[0]||t?.dataTransfer?.files?.[0];if(!r)return;let i=new FileReader;i.onload=t=>{try{let r=JSON.parse(t.target.result),i=r?.data||r;Q(i);let a=Array.isArray(i?.locales)?i.locales.length:0;n({type:`success`,message:e(`app.alerts.importSuccess`,{count:a})}),sn(`json_import`,{locale_count:a})}catch(t){console.error(`Failed to import JSON`,t),n({type:`error`,message:e(`app.data.importError`)})}},i.onerror=()=>n({type:`error`,message:e(`app.data.importError`)}),i.readAsText(r),t?.target&&(t.target.value=``)},va=e=>{e.preventDefault(),e.stopPropagation(),ur(!0)},ya=e=>{e.preventDefault(),e.stopPropagation(),ur(!1)},ba=e=>{e.preventDefault(),e.stopPropagation()},xa=e=>{e.preventDefault(),e.stopPropagation(),ur(!1),_a(e)},Sa=e=>(e==null?``:e.toString()).trim(),Ca=e=>Sa(e).toLowerCase().replace(/[^a-z0-9]/g,``),wa=e=>{if(!Array.isArray(e)||!e.length)return 0;let t=0;return e.forEach(e=>{let n=Ca(e);if(!n)return;let r=n.match(/^(header|headline|title|subtitle|sub)(\d+)$/);if(r){let e=parseInt(r[2],10);Number.isNaN(e)||(t=Math.max(t,e));return}(n===`header`||n===`subtitle`||n===`sub`)&&(t=Math.max(t,1))}),t},Ta=t=>{let r=new FileReader;r.onload=t=>{let r=t.target.result,i=Ut.default.parse(r,{header:!0,skipEmptyLines:!0,transformHeader:e=>(e||``).replace(/^\ufeff/,``).trim()}),a=Array.isArray(i.data)?i.data:[],o=[],s=new Set,c=wa(i?.meta?.fields||Object.keys(a[0]||{}));if(!c){n({type:`error`,message:e(`app.alerts.importInvalidCsvColumns`)});return}if(c>50){n({type:`error`,message:e(`app.alerts.slideLimit`)});return}let l=Array.from({length:c},()=>({}));a.forEach((e,t)=>{let n=new Map;Object.entries(e||{}).forEach(([e,t])=>{let r=Ca(e);r&&n.set(r,t)});let r=Sa(n.get(`locale`)??n.get(`language`)??n.get(`lang`)??n.get(`id`)??``),i=Array.from({length:c},(e,t)=>{let r=t+1,i=n.get(`header${r}`)??n.get(`headline${r}`)??n.get(`title${r}`)??(r===1?n.get(`header`)??n.get(`headline`)??n.get(`title`):void 0)??``,a=n.get(`subtitle${r}`)??n.get(`sub${r}`)??(r===1?n.get(`subtitle`)??n.get(`sub`):void 0)??``;return{header:Sa(i),sub:Sa(a)}}),a=i.some(e=>e.header||e.sub);if(!r&&!a)return;let u=r||`lang-${t+1}`;if(s.has(u))return;let d=dn.find(e=>e.id.toLowerCase()===u.toLowerCase());o.push({id:u,name:d?d.name:u,flag:d?d.flag:`??`}),i.forEach((e,t)=>{l[t][u]=e}),s.add(u)});let u=i.errors?.filter(e=>e.type!==`FieldMismatch`)||[];if(!o.length){n({type:`error`,message:a.length?e(`app.alerts.importCsvNoRows`):e(`app.alerts.importInvalidCsv`)});return}Fn(`merge`),Nn({locales:o,slideCount:c,slidesTexts:l,texts:l[0]||{},errors:u.length})},r.onerror=()=>n({type:`error`,message:e(`app.alerts.importInvalidCsv`)}),r.readAsText(t)},Ea=e=>{let t=e.target.files?.[0];t&&Ta(t),e?.target&&(e.target.value=``)},Da=e=>{e.preventDefault(),e.stopPropagation(),fr(!0)},Oa=e=>{e.preventDefault(),e.stopPropagation(),fr(!1)},ka=e=>{e.preventDefault(),e.stopPropagation()},Aa=e=>{if(e.preventDefault(),e.stopPropagation(),fr(!1),!O){wi(`csv_drop`);return}let t=e.dataTransfer?.files?.[0];t&&Ta(t)},ja=()=>{zn(`current`),Vn(String(Math.max(1,G.length))),Ln(!0)},Ma=(e=Math.max(1,G.length))=>{let t=Math.max(1,G.length),n=Math.min(50,Math.max(1,Number.isFinite(e)?e:t)),r=[`Locale`];for(let e=1;e<=n;e+=1)r.push(`Header_${e}`,`Subtitle_${e}`);let i=[`en-US`],a=[`ja-JP`];for(let e=1;e<=n;e+=1)i.push(`Headline ${e}`,`Subtitle ${e}`),a.push(`ヘッドライン${e}`,`サブタイトル${e}`);let o=`\ufeff${[r.join(`,`),i.join(`,`),a.join(`,`)].join(`
|
|
13
|
+
`)}`,s=`data:text/csv;charset=utf-8,${encodeURIComponent(o)}`,c=document.createElement(`a`);c.href=s,c.download=`shipscreens-copy-template.csv`,document.body.appendChild(c),c.click(),document.body.removeChild(c)},Na=()=>{let e=Math.max(1,G.length),t=e;if(Rn===`current`)t=e;else if(Rn===`custom`){let n=parseInt(Bn,10);t=Number.isFinite(n)?n:e}else{let n=parseInt(Rn,10);t=Number.isFinite(n)?n:e}Ma(t),Ln(!1),zn(`current`),Vn(String(e))},Pa=()=>{if(!X)return;let t=X.locales,r=new Set(U.map(e=>e.id));if(Pn===`merge`){let e=new Map(U.map(e=>[e.id,e])),n=[...U];X.locales.forEach(t=>{if(e.has(t.id)){let r=n.findIndex(e=>e.id===t.id);n[r]={...e.get(t.id),...t}}else n.push(t)}),t=n}let i=Math.max(G.length,X.slideCount||1);if(i>50){n({type:`error`,message:e(`app.alerts.slideLimit`)});return}let o=new Set(t.map(e=>e.id)),s=t.filter(e=>!r.has(e.id)).length,c=Array.from(r).filter(e=>!o.has(e)).length,l=[...G],u=l.length?Math.max(...l.map(e=>e.id||0)):0;for(;l.length<i;)u+=1,l.push({id:u,screenshot:null,screenshotsByLocale:{},texts:{}});let d=Array.isArray(X.slidesTexts)?X.slidesTexts:[];K(l.map((e,n)=>{let r={...e?.texts||{}},i=Pn===`replace`?Object.fromEntries(Object.entries(r).filter(([e])=>o.has(e))):r;t.forEach(e=>{i[e.id]||(i[e.id]={header:``,sub:``})});let a=d[n]||{};return Object.entries(a).forEach(([e,t])=>{if(!o.has(e))return;let n=Sa(t?.header),r=Sa(t?.sub);if(Pn===`merge`){let t=i[e]||{header:``,sub:``};n&&(t.header=n),r&&(t.sub=r),i[e]=t}else i[e]={header:n,sub:r}}),{...e,texts:i}})),fn(t),t.length&&pn(t[0].id),n({type:`success`,message:e(`app.alerts.importSuccess`,{count:X.locales.length})}),sn(`csv_import`,{locale_count:t.length,slide_count:i}),a(`copy_imported`,{locale_count:t.length,slide_count:i,import_mode:Pn,added_locale_count:s,removed_locale_count:c}),Nn(null),Fn(`merge`)},Fa=(e,t)=>new Promise((n,r)=>{if(t&&window[t])return n(window[t]);let i=document.createElement(`script`);i.src=e,i.onload=()=>n(t?window[t]:void 0),i.onerror=r,document.head.appendChild(i)}),Ia=async()=>(window.JSZip||await Fa(`https://cdnjs.cloudflare.com/ajax/libs/jszip/3.10.1/jszip.min.js`,`JSZip`),window.JSZip),La=e=>new Promise((t,n)=>{let r=new FileReader;r.onload=e=>t(e.target.result),r.onerror=n,r.readAsDataURL(e)}),Ra=e=>{let t=(e==null?``:e.toString()).trim();if(!t)return``;let n=t.replace(/_/g,`-`),r=n.split(`-`).filter(Boolean);return r.length?r.map((e,t)=>t===0?e.toLowerCase():e.length===2&&/^[a-zA-Z]{2}$/.test(e)?e.toUpperCase():e.length===4&&/^[a-zA-Z]{4}$/.test(e)?`${e[0].toUpperCase()}${e.slice(1).toLowerCase()}`:e).join(`-`):n},za=e=>{let t=Ra(e);if(!t)return``;let n=U.find(e=>e.id.toLowerCase()===t.toLowerCase());if(n)return n.id;let r=dn.find(e=>e.id.toLowerCase()===t.toLowerCase());return r?r.id:t},Ba=e=>{let t=(e==null?``:e.toString()).trim();if(!t)return null;let n=t.replace(/\\/g,`/`),r=n.split(`/`).filter(Boolean),i=(r.length?r[r.length-1]:n).replace(/\.[^.]+$/,``),a=[],o=new Set([...U.map(e=>e.id.toLowerCase()),...dn.map(e=>e.id.toLowerCase())]),s=/^[A-Za-z]{2,3}(?:-[A-Za-z0-9]{2,8})+$/;r.slice(0,-1).forEach(e=>{let t=e.trim();if(!t)return;let n=t.toLowerCase();if(o.has(n)){a.push(t);return}if(s.test(t)){a.push(t);return}t.length===2&&/^[A-Za-z]{2}$/.test(t)&&a.push(t)});let c=``,l=i,u=i.match(/^([A-Za-z]{2,3}(?:-[A-Za-z0-9]{2,8})*)(?:[ _-]+)(.+)$/);u?(c=u[1],l=u[2]||``):a.length&&(c=a[a.length-1]);let d=za(c);if(!d)return null;let f=(l||i).match(/\d+/g);if(!f?.length)return null;let p=parseInt(f[f.length-1],10);return Number.isFinite(p)?{localeId:d,slideNumber:p}:null},Va=()=>{Hn(null),Wn({current:0,total:0}),Kn(!1),Gr.current=[],Kr.current=null};u({isOpen:!!Z,onClose:Gn?void 0:Va,panelRef:Cr,initialFocusRef:Gn?void 0:wr,closeOnEscape:!Gn});let Ha=async t=>{let r=Array.from(t||[]);if(r.length)try{Va();let t=r.find(e=>(e?.name||``).toLowerCase().endsWith(`.zip`)||e?.type===`application/zip`||e?.type===`application/x-zip-compressed`)||null;if(t){let r=await(await Ia()).loadAsync(t);Kr.current=r;let i=[],a=new Set,o=new Set,s=0,c=0,l=0,u=0;if(Object.values(r.files||{}).forEach(e=>{if(!e||e.dir)return;let t=e.name||``;if(!/\.(png|jpe?g|webp)$/i.test(t)){c+=1;return}let n=Ba(t);if(!n){s+=1;return}if(n.slideNumber<1||n.slideNumber>50){l+=1;return}let r=n.slideNumber-1;u=Math.max(u,n.slideNumber);let d=`${n.localeId}#${r}`;o.has(d)&&a.add(d),o.add(d),i.push({kind:`zip`,entryName:t,localeId:n.localeId,slideIndex:r})}),Gr.current=i,!i.length){n({type:`error`,message:e(`app.screenshotImporter.noMatches`)});return}let d=Array.from(new Set(i.map(e=>e.localeId))),f=new Set(U.map(e=>e.id.toLowerCase())),p=d.filter(e=>!f.has(e.toLowerCase())),m=Math.max(G.length,u),h=Math.max(0,m-G.length);Hn({source:{type:`zip`,name:t.name||`screenshots.zip`},totalFound:i.length,localeCount:d.length,newLocaleCount:p.length,slideCount:u,addedSlideCount:h,skipped:s,skippedNotImage:c,skippedOutOfRange:l,duplicateCount:a.size});return}let i=r.filter(e=>e?.type?.startsWith(`image/`)||/\.(png|jpe?g|webp)$/i.test(e?.name||``));if(!i.length){n({type:`error`,message:e(`app.screenshotImporter.noFiles`)});return}let a=[],o=new Set,s=new Set,c=0,l=0,u=0;if(i.forEach(e=>{let t=e?.webkitRelativePath||e?.name||``,n=Ba(t);if(!n){c+=1;return}if(n.slideNumber<1||n.slideNumber>50){l+=1;return}let r=n.slideNumber-1;u=Math.max(u,n.slideNumber);let i=`${n.localeId}#${r}`;s.has(i)&&o.add(i),s.add(i),a.push({kind:`file`,file:e,localeId:n.localeId,slideIndex:r,path:t})}),Gr.current=a,!a.length){n({type:`error`,message:e(`app.screenshotImporter.noMatches`)});return}let d=Array.from(new Set(a.map(e=>e.localeId))),f=new Set(U.map(e=>e.id.toLowerCase())),p=d.filter(e=>!f.has(e.toLowerCase())),m=Math.max(G.length,u),h=Math.max(0,m-G.length);Hn({source:{type:`files`,name:e(`app.screenshotImporter.filesLabel`,{count:i.length})},totalFound:a.length,localeCount:d.length,newLocaleCount:p.length,slideCount:u,addedSlideCount:h,skipped:c,skippedOutOfRange:l,duplicateCount:o.size})}catch(t){console.error(`Locale screenshot import failed`,t),n({type:`error`,message:e(`app.screenshotImporter.failed`)})}},Ua=async()=>{if(!Z)return;let t=Gr.current||[];if(!t.length){Va();return}if(Gn)return;Kn(!0),Wn({current:0,total:t.length});let r=0;try{let i=Array.from(new Set(t.map(e=>e.localeId))),a=new Set(U.map(e=>e.id.toLowerCase())),o=[...U];i.forEach(e=>{if(a.has(e.toLowerCase()))return;let t=dn.find(t=>t.id.toLowerCase()===e.toLowerCase());o.push({id:t?t.id:e,name:t?t.name:e,flag:t?t.flag:`??`}),a.add(e.toLowerCase())});let s=Math.max(0,...t.map(e=>e.slideIndex)),c=Math.max(G.length,s+1);if(c>50){n({type:`error`,message:e(`app.alerts.slideLimit`)}),Kn(!1);return}let l=[...G].map(e=>({...e,screenshot:e?.screenshot??null,screenshotsByLocale:{...e?.screenshotsByLocale||{}},texts:{...e?.texts||{}}}));l.forEach(e=>{o.forEach(t=>{if(e.texts?.[t.id])return;let n=dn.find(e=>e.id===t.id)?.defaults||{header:``,sub:``};e.texts[t.id]={header:n.header||``,sub:n.sub||``}})});let u=l.length?Math.max(...l.map(e=>e.id||0)):0;for(;l.length<c;){u+=1;let t={};o.forEach(n=>{t[n.id]={header:e(`app.defaults.newSlideTitle`),sub:e(`app.defaults.newSlideDesc`)}}),l.push({id:u,screenshot:null,screenshotsByLocale:{},texts:t})}let d=Kr.current;for(let e=0;e<t.length;e+=1){let n=t[e],i=l[n.slideIndex];if(!i){r+=1,Wn({current:e+1,total:t.length});continue}try{let a=null;if(n.kind===`file`)a=n.file;else if(n.kind===`zip`&&d){let e=d.file(n.entryName);e&&(a=await e.async(`blob`))}if(!a){r+=1,Wn({current:e+1,total:t.length});continue}let o=await La(a);i.screenshotsByLocale[n.localeId]=o}catch{r+=1}Wn({current:e+1,total:t.length})}K(l),fn(o),o.length&&!o.some(e=>e.id===W)&&pn(o[0].id),n({type:r?`info`:`success`,message:r?e(`app.screenshotImporter.appliedWithErrors`,{count:t.length-r,errors:r}):e(`app.screenshotImporter.applied`,{count:t.length})}),Va()}catch(t){console.error(`Failed to apply locale screenshots`,t),n({type:`error`,message:e(`app.screenshotImporter.failed`)}),Kn(!1)}};function Wa(e){switch(e){case`dark`:qe(`solid`),Xe(`#0f172a`),At(`#f8fafc`),xt(`black`);break;case`clean`:qe(`solid`),Xe(`#f8fafc`),At(`#1e293b`),xt(`silver`);break;case`pop`:qe(`gradient`),it(`#ff9a9e`),ot(`#fecfef`),ct(135),At(`#ffffff`),xt(`titanium`);break;default:break}}let Ga=(0,L.useCallback)(t=>{if(O||typeof window>`u`)return;let r=Date.now();try{let e=Number(localStorage.getItem(nn)||0);if(e&&r-e<864e5)return;localStorage.setItem(nn,String(r))}catch{}a(`upsell_toast_shown`,{surface:`export`,export_type:t,is_pro:O,is_authenticated:!!I}),n({type:`info`,message:e(`app.upsell.watermarkToast.message`,{defaultValue:`Exported with watermark. Upgrade to remove it.`}),duration:9e3,action:{label:e(`app.upsell.watermarkToast.action`,{defaultValue:`Remove watermark`}),onClick:()=>{a(`upsell_toast_clicked`,{surface:`export`,export_type:t}),wi(`upsell_toast`)}}})},[n,I,O,wi,e]),Ka=(0,L.useCallback)(async(e,t)=>{e&&await qr(e,t)&&(a(`export_completed`,{export_type:`single`,device_count:1,locale_count:1,slide_count:1,device_id:V,locale_id:W,slide_index:q+1,is_pro:O}),Ga(`single`))},[q,W,V,qr,O,Ga]),qa=(0,L.useCallback)(()=>{let t=Wr.current;t&&(t.abort(),Jn(e(`app.progress.cancelling`,{defaultValue:`Cancelling...`})))},[e]),Ja=(0,L.useCallback)(async()=>{let t=!O&&!h,r=(()=>{if(!t)return U;let e=U.find(e=>e.id===W);return e?[e]:U.slice(0,1)})(),i=t?G.slice(0,5):G,o=(()=>{if(!t)return Ve;let e=Array.isArray(Ve)?Ve:[],n=new Set(e).has(V)?V:null,r=[],i=[];e.forEach(e=>{String(z[e]?.group||``).toLowerCase().includes(`android`)?i.push(e):r.push(e)});let a=[],o=n?String(z[n]?.group||``).toLowerCase():``,s=n?o.includes(`android`):!1,c=n&&!s?n:r[0],l=n&&s?n:i[0];return c&&a.push(c),l&&l!==c&&a.push(l),!a.length&&e.length&&a.push(e[0]),a})();if(!o?.length){n({type:`error`,message:e(`app.batch.noDevices`,{defaultValue:`Select at least one device.`})});return}if(!r?.length){n({type:`error`,message:e(`app.locale.none`,{defaultValue:`Add at least one locale.`})});return}if(!i?.length){n({type:`error`,message:e(`app.slides.none`,{defaultValue:`Add at least one slide.`})});return}Jn(e(`app.progress.preparingBundle`,{defaultValue:`Preparing Fastlane ZIP...`}));let s=new AbortController;Wr.current=s;try{await Jr({locales:r,slides:i,selectedDeviceIds:o,getElementById:e=>document.getElementById(`batch-canvas-${e}`),signal:s.signal,outputMode:S,onTaskStart:({localeId:t,slideNumber:n,deviceId:r})=>{let i=vt(z[r],{id:r,mode:y}).optionLabel;Jn(e(`app.progress.detail`,{device:i,locale:t,index:n}))}}),a(`export_completed`,{export_type:`batch`,device_count:o.length,locale_count:r.length,slide_count:i.length,total_images:r.length*i.length*o.length,output_mode:S,is_pro:O}),n({type:`success`,message:e(`app.alerts.downloadSuccess`,{defaultValue:`Export completed`})}),Ga(`batch`)}catch(t){t?.message===`Aborted`?n({type:`info`,message:e(`app.alerts.downloadCancelled`,{defaultValue:`エクスポートをキャンセルしました`})}):(console.error(`Batch download failed`,t),n({type:`error`,message:e(`app.alerts.downloadError`,{defaultValue:`Failed to export`})}))}finally{Wr.current=null,Jn(``)}},[Jr,U,G,Ve,n,e,y,S,O,h,W,V,Ga]);(0,L.useEffect)(()=>{if(h)return window.__shipscreensCli={exportBundle:()=>Ja()},()=>{try{delete window.__shipscreensCli}catch{}}},[h,Ja]);let Ya=t=>{if(!t?.settings)return;let r=vi();On(e=>({past:[...e.past,r].slice(-20),future:[]})),Br.current=!0;let i=t.settings;i.bgType&&qe(i.bgType),i.bgColor&&Xe(i.bgColor),i.gradientStart&&it(i.gradientStart),i.gradientEnd&&ot(i.gradientEnd),typeof i.gradientAngle==`number`&&ct(i.gradientAngle),i.layoutMode&&H(i.layoutMode),typeof i.topSpacing==`number`&&Ct(i.topSpacing),typeof i.deviceScale==`number`&&ut(i.deviceScale),i.frameColor&&xt(i.frameColor),i.textColor&&At(i.textColor),i.selectedFont&&Zt(i.selectedFont),i.badgeType&&Et(i.badgeType),i.deviceId&&yt(i.deviceId),n({type:`info`,message:e(`app.templates.applied`,{name:t.name,defaultValue:`${t.name} applied`}),duration:4e3,action:{label:e(`app.history.undo`),onClick:yi}})},Xa=(0,L.useCallback)(()=>{Mn({value:``})},[]),Za=(0,L.useCallback)(()=>{let t=jn?.value?.trim();if(!t)return;let r={id:Date.now().toString(),name:t,settings:{bgType:Ke,bgColor:Je,gradientStart:rt,gradientEnd:at,gradientAngle:st,layoutMode:wt,topSpacing:St,deviceScale:lt,frameColor:bt,textColor:kt,selectedFont:Xt,badgeType:Tt,deviceId:V}},i=[..._n,r];vn(i),localStorage.setItem(`mockupStudioUserPresets`,JSON.stringify(i)),Mn(null),n({type:`success`,message:e(`app.templates.saved`,{defaultValue:`Preset saved`})})},[n,Tt,Je,Ke,V,lt,bt,st,at,rt,wt,_n,jn?.value,Xt,kt,e,St]),Qa=(0,L.useCallback)(t=>{let r=_n.filter(e=>e.id!==t);vn(r),localStorage.setItem(`mockupStudioUserPresets`,JSON.stringify(r)),n({type:`info`,message:e(`app.templates.deleted`,{defaultValue:`Preset deleted`})})},[n,_n,e]),$a=`shipscreens_project`,eo=(0,L.useCallback)((t=!1)=>{try{let r=vi(),i=t?{...r,slides:r.slides.map(e=>({...e,screenshot:null,screenshotsByLocale:{}}))}:r,a={version:`1.0`,savedAt:new Date().toISOString(),data:i};localStorage.setItem($a,JSON.stringify(a)),Y(`saved`),setTimeout(()=>Y(``),2e3),n({type:`success`,message:e(`app.data.saved`)})}catch(t){console.error(`Failed to save project`,t),Y(`error`),n({type:`error`,message:e(`app.data.saveError`)})}},[vi,n,e]),to=(0,L.useCallback)(()=>{try{let t=localStorage.getItem($a);if(!t){n({type:`error`,message:e(`app.data.noSavedProject`)});return}let r=JSON.parse(t);Q(r?.data||r),Y(`loaded`),setTimeout(()=>Y(``),2e3),n({type:`success`,message:e(`app.data.loaded`)})}catch(t){console.error(`Failed to load project`,t),Y(`error`),n({type:`error`,message:e(`app.data.loadError`)})}},[Q,n,e]),no=(0,L.useCallback)((t=`data_panel`)=>{An({message:e(`app.data.sampleConfirm`),onConfirm:()=>{Q(Ht),Y(`loaded`),setTimeout(()=>Y(``),2e3),n({type:`success`,message:e(`app.data.sampleLoaded`)}),a(`sample_project_loaded`,{source:t})}})},[n,Q,An,e]),ro=(0,L.useCallback)(()=>{let e=vi();return{...e,bgImage:null,logoImage:null,slides:(e.slides||[]).map(e=>({...e,screenshot:null,screenshotsByLocale:{}}))}},[vi]),io=(0,L.useCallback)(e=>{if(!e)return;let t=vi(),n=Array.isArray(t.slides)?t.slides:[],r=(Array.isArray(e.slides)?e.slides:[]).map((e,t)=>{let r=n.find(t=>t.id===e.id)||n[t]||null;return{...e,screenshot:r?.screenshot??null,screenshotsByLocale:r?.screenshotsByLocale??{}}});Q({...e,bgImage:t.bgImage??null,logoImage:t.logoImage??null,slides:r})},[vi,Q]);(0,L.useEffect)(()=>{let t=new URLSearchParams(window.location.search).get(`session_id`);if(t){if(t===`cli`){let t=typeof window<`u`?window.__SHIPSCREENS_CLI_PROJECT:null;if(t){try{Q(t?.data||t),Y(`loaded`),setTimeout(()=>Y(``),2e3)}catch(t){console.error(`Failed to load CLI project`,t),Y(`error`),n({type:`error`,message:e(`app.data.loadError`)})}return}}try{localStorage.getItem($a)&&to()}catch{}}},[n,to,Q,e]);let ao=(0,L.useRef)(!1);(0,L.useEffect)(()=>{if(ao.current)return;ao.current=!0;let t=new URLSearchParams(window.location.search);if(t.get(`session_id`))return;let r=t.get(`sample`);if(!r)return;let i=r.trim().toLowerCase();if(![`5panel`,`fivepanel`,`five-panel`,`five_panel`,`5-panel`,`5_panel`].includes(i))return;t.delete(`sample`);let o=t.toString(),s=`${window.location.pathname}${o?`?${o}`:``}${window.location.hash||``}`;if(window.history.replaceState(null,``,s),!localStorage.getItem($a)){Q(Ht),Y(`loaded`),setTimeout(()=>Y(``),2e3),n({type:`success`,message:e(`app.data.sampleLoaded`)}),a(`sample_project_loaded`,{source:`url_param_auto`});return}N.current||no(`url_param`)},[n,no,Q,e]);let oo=(0,L.useRef)(!1);(0,L.useEffect)(()=>{if(oo.current||(oo.current=!0,typeof window>`u`))return;let t=new URLSearchParams(window.location.search);if(t.get(`session_id`)||t.get(`project`)||t.get(`sample`)||t.get(`upgrade`))return;let r=null;try{r=localStorage.getItem($a)}catch{return}if(!r){try{if(localStorage.getItem(rn)===`1`)return;localStorage.setItem(rn,`1`)}catch{return}a(`sample_prompt_shown`,{source:`app_start`}),An({title:e(`app.data.sampleWelcomeTitle`,{defaultValue:`Quick start`}),message:e(`app.data.sampleWelcomeBody`,{defaultValue:`New here? Load a sample project to see the workflow (recommended).`}),cancelLabel:e(`app.data.sampleWelcomeBlank`,{defaultValue:`Start blank`}),confirmLabel:e(`app.data.sampleWelcomeLoad`,{defaultValue:`Load sample`}),onCancel:()=>a(`sample_prompt_dismissed`,{source:`app_start`}),onConfirm:()=>{Q(Ht),Y(`loaded`),setTimeout(()=>Y(``),2e3),n({type:`success`,message:e(`app.data.sampleLoaded`)}),a(`sample_project_loaded`,{source:`welcome_prompt`})}})}},[n,Q,An,e]);let so=gi.find(e=>e.value===Xt)?.family||`sans-serif`,co=J?e(`app.statuses.${J}`):``,lo=(0,L.useRef)(null),uo=yn&&xn.total>0,fo=(0,L.useCallback)(()=>{Ne({x:0,y:0})},[]),$=l===`batch`,po=(()=>{if(!$||O||h)return Ve;let e=Array.isArray(Ve)?Ve:[],t=new Set(e).has(V)?V:null,n=[],r=[];e.forEach(e=>{String(z[e]?.group||``).toLowerCase().includes(`android`)?r.push(e):n.push(e)});let i=[],a=t?String(z[t]?.group||``).toLowerCase():``,o=t?a.includes(`android`):!1,s=t&&!o?t:n[0],c=t&&o?t:r[0];return s&&i.push(s),c&&c!==s&&i.push(c),!i.length&&e.length&&i.push(e[0]),i})(),mo=e=>{if($||e.touches.length!==1)return;let t=e.touches[0];Le(!0),Re.current={x:t.clientX-Ae.x,y:t.clientY-Ae.y}},ho=e=>{if($||!Pe)return;e.preventDefault();let t=e.touches[0],n=Yn?.85:1;Ne({x:(t.clientX-Re.current.x)*n,y:(t.clientY-Re.current.y)*n})},go=()=>Le(!1),_o=()=>Qn(e=>!e),vo=!Yn||Zn,yo=Yn?vo?Math.min($n,240):520:0,bo=e=>{Yn&&(Ur.current=e.touches[0]?.clientY||0,nr(!0))},xo=e=>{if(!Yn||!tr)return;let t=(e.touches[0]?.clientY||0)-Ur.current;er(Math.max(0,t))},So=()=>{if(!Yn){er(0),nr(!1);return}$n>80&&Qn(!1),er(0),nr(!1)},Co=e=>{$||(e.preventDefault(),Le(!0),Re.current={x:e.clientX-Ae.x,y:e.clientY-Ae.y})},wo=e=>{$||!Pe||(e.preventDefault(),Ne({x:e.clientX-Re.current.x,y:e.clientY-Re.current.y}))},To=()=>Le(!1);return(0,L.useEffect)(()=>{requestAnimationFrame(()=>fo())},[l,V,ft,B,mi,fo]),(0,L.useEffect)(()=>{$&&(Ne({x:0,y:0}),Le(!1))},[$]),(0,R.jsxs)(`div`,{className:`h-screen bg-gray-100 font-sans flex flex-col overflow-hidden text-slate-800 relative`,children:[(0,R.jsx)(f,{}),Be&&(0,R.jsxs)(`div`,{className:`mx-4 md:mx-6 lg:mx-10 mt-2 bg-amber-100 border border-amber-200 text-amber-800 text-sm rounded-lg px-4 py-3 flex items-center gap-3 justify-between`,children:[(0,R.jsx)(`span`,{className:`leading-snug`,children:`決済に問題があります。Pro機能を継続するにはカード情報を更新してください。`}),(0,R.jsx)(`button`,{onClick:Ni,className:`shrink-0 px-3 py-1.5 bg-amber-500 text-white text-xs font-semibold rounded-sm hover:bg-amber-600 transition`,children:`カードを更新`})]}),(0,R.jsx)(mt,{isOpen:j,billing:ze,requiresAuth:!I,onClose:()=>M(!1),onUpgrade:Ai}),(0,R.jsx)(gt,{isOpen:ee,onClose:()=>ne(!1)}),(0,R.jsx)(en,{show:yn&&xn.total>0,current:xn.current,total:xn.total,label:qn,onCancel:yn?qa:null}),ve&&(0,R.jsxs)(`div`,{className:`absolute top-0 left-0 right-0 z-50 border-b text-sm text-center py-2 px-4 flex flex-wrap items-center justify-center gap-3 shadow-md ${ve===`success`?`bg-green-50 border-green-100 text-green-800`:ve===`pending`||ve===`retry`?`bg-amber-50 border-amber-100 text-amber-800`:`bg-blue-50 border-blue-100 text-blue-800`}`,children:[(0,R.jsxs)(`span`,{children:[ve===`success`&&e(`app.checkout.success`),ve===`pending`&&e(`app.checkout.pending`,{count:be}),ve===`retry`&&e(`app.checkout.retry`),ve===`signin`&&e(`app.checkout.signin`)]}),(ve===`pending`||ve===`retry`)&&(0,R.jsx)(`button`,{onClick:Mi,className:`px-3 py-1.5 rounded-full border border-amber-200 bg-white text-xs font-semibold text-amber-700 hover:bg-amber-100`,children:`Check status again`}),ve===`signin`&&!F&&(0,R.jsx)(`button`,{onClick:Di,className:`px-3 py-1.5 rounded-full border border-blue-200 bg-white text-xs font-semibold text-blue-700 hover:bg-blue-100`,children:e(`auth.actions.signIn`)})]}),Oe&&(0,R.jsxs)(`div`,{className:`bg-amber-50 border-b border-amber-100 text-amber-800 text-sm text-center py-2 px-4 flex items-center justify-center gap-3`,children:[(0,R.jsx)(`span`,{children:e(`app.sessionExpired.message`)}),(0,R.jsx)(`button`,{onClick:Di,className:`px-3 py-1.5 rounded-full border border-amber-200 bg-white text-xs font-semibold text-amber-700 hover:bg-amber-100`,children:e(`auth.actions.signIn`)}),(0,R.jsx)(`button`,{onClick:()=>ke(!1),className:`px-2 py-1 rounded-full text-xs text-amber-700 hover:bg-amber-100`,children:e(`app.sessionExpired.dismiss`)})]}),(0,R.jsxs)(`header`,{className:`bg-white border-b border-slate-200 flex flex-wrap items-center justify-between gap-3 px-4 sm:px-8 py-3 shrink-0 z-20`,children:[(0,R.jsxs)(`div`,{className:`flex items-center gap-3 min-w-0`,children:[(0,R.jsx)(`div`,{className:`w-8 h-8 rounded-lg border border-slate-200 bg-slate-950 p-1 flex items-center justify-center overflow-hidden shadow-xs`,children:(0,R.jsx)(`img`,{src:`/app/assets/icons/favicon-32x32.png?v=3`,alt:`ShipScreens`,className:`w-full h-full object-contain`,loading:`lazy`})}),(0,R.jsxs)(`h1`,{className:`font-bold text-lg text-slate-900 hidden sm:flex items-center gap-2`,children:[`ShipScreens`,O&&(0,R.jsx)(`span`,{className:`px-1.5 py-0.5 rounded-sm text-[10px] font-black bg-amber-100 text-amber-700 border border-amber-200 tracking-wider`,children:`PRO`})]}),(0,R.jsxs)(`div`,{className:`ml-4 flex bg-slate-100 rounded-lg p-1`,children:[(0,R.jsxs)(`button`,{onClick:()=>p(`single`),className:`flex items-center gap-2 px-3 py-1.5 rounded-md text-xs font-bold transition-all ${l===`single`?`bg-white text-blue-600 shadow-xs`:`text-slate-500 hover:text-slate-700`}`,children:[(0,R.jsx)(Te,{size:14}),` `,e(`app.header.editor`)]}),(0,R.jsxs)(`button`,{onClick:()=>{p(`batch`),!O&&!h&&a(`free_bundle_preview_opened`,{surface:`header_toggle`})},className:`flex items-center gap-2 px-3 py-1.5 rounded-md text-xs font-bold transition-all ${l===`batch`?`bg-white text-blue-600 shadow-xs`:`text-slate-500 hover:text-slate-700`}`,children:[(0,R.jsx)(k,{size:14}),` `,e(`app.header.batch`),!O&&!h&&(0,R.jsx)(`span`,{className:`ml-1 px-1.5 py-0.5 rounded-sm bg-slate-200 text-slate-700 text-[10px] font-black tracking-wide`,children:e(`app.batch.freePreview.badge`,{defaultValue:`Free preview`})})]})]})]}),(0,R.jsxs)(`div`,{className:`flex items-center gap-2 sm:gap-4 flex-wrap justify-end min-w-[220px]`,children:[(0,R.jsx)(`a`,{href:`https://x.com/shipscreenscom`,target:`_blank`,rel:`noopener noreferrer`,className:`p-2 rounded-full border border-slate-200 text-slate-600 hover:bg-slate-50`,"aria-label":`ShipScreens on X (opens in new tab)`,children:(0,R.jsx)(`svg`,{width:`14`,height:`14`,viewBox:`0 0 24 24`,fill:`currentColor`,"aria-hidden":`true`,children:(0,R.jsx)(`path`,{d:`M20.5 3h-2.4L12 9.6 6.9 3H3l7.2 9.1L3.2 21h2.4L12 14l6.6 7h3.1l-7.7-9.5L20.5 3Z`})})}),(0,R.jsx)(`a`,{href:`/tools/`,target:`_blank`,rel:`noopener noreferrer`,className:`hidden lg:inline text-xs font-semibold text-slate-600 hover:text-slate-900 transition-colors`,children:e(`landing.nav.tools`)}),(0,R.jsxs)(`button`,{type:`button`,onClick:()=>{ne(!0),a(`ci_quickstart_opened`,{surface:`app_header`})},className:`md:hidden inline-flex items-center gap-1.5 px-2.5 py-1.5 rounded-full border border-slate-200 text-slate-600 hover:bg-slate-50 text-[11px] font-semibold`,"aria-label":e(`app.header.ciQuickstart`,{defaultValue:`Agent/CI handoff`}),title:e(`app.header.ciQuickstart`,{defaultValue:`Agent/CI handoff`}),children:[(0,R.jsx)(xe,{size:14}),(0,R.jsx)(`span`,{children:e(`app.header.ciQuickstartShort`,{defaultValue:`Agent/CI`})})]}),(0,R.jsxs)(`button`,{type:`button`,onClick:()=>{ne(!0),a(`ci_quickstart_opened`,{surface:`app_header`})},className:`hidden md:flex items-center gap-2 px-3 py-1.5 bg-slate-50 text-slate-700 rounded-full text-xs font-bold hover:bg-slate-100 transition-colors border border-slate-200`,children:[(0,R.jsx)(xe,{size:14}),e(`app.header.ciQuickstart`,{defaultValue:`Agent/CI handoff`})]}),(0,R.jsxs)(`div`,{className:`flex items-center gap-1`,children:[(0,R.jsx)(`button`,{onClick:yi,disabled:Dn.past.length===0,className:`p-2 rounded-full border border-slate-200 text-slate-600 hover:bg-slate-50 disabled:opacity-40 disabled:cursor-not-allowed`,title:`Undo (Ctrl/Cmd + Z)`,children:(0,R.jsx)(je,{size:14})}),(0,R.jsx)(`button`,{onClick:bi,disabled:Dn.future.length===0,className:`p-2 rounded-full border border-slate-200 text-slate-600 hover:bg-slate-50 disabled:opacity-40 disabled:cursor-not-allowed`,title:`Redo (Ctrl/Cmd + Shift + Z)`,children:(0,R.jsx)(Me,{size:14})})]}),(0,R.jsx)(g,{}),!F&&(0,R.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,R.jsx)(`button`,{onClick:Di,disabled:ue,className:`px-3 py-1.5 rounded-full border border-slate-200 text-xs font-semibold text-slate-700 hover:bg-slate-50 disabled:opacity-50`,children:e(`auth.actions.signIn`)}),(0,R.jsx)(`button`,{onClick:Oi,disabled:ue,className:`px-3 py-1.5 rounded-full border border-blue-200 bg-blue-50 text-xs font-semibold text-blue-700 hover:bg-blue-100 disabled:opacity-50`,children:e(`auth.actions.signUp`)})]}),F&&(0,R.jsx)(Ue,{user:le,isPro:O,onUpgrade:()=>wi(`user_menu`),onManageSubscription:Ni,onSignOut:ki,isPortalLoading:Tn}),(0,R.jsxs)(`button`,{onClick:Ci,className:`hidden md:flex items-center gap-2 px-3 py-1.5 bg-slate-50 text-slate-700 rounded-full text-xs font-bold hover:bg-slate-100 transition-colors border border-slate-200`,children:[(0,R.jsx)(Ie,{size:14}),` `,e(`app.header.share`)]}),!O&&(0,R.jsxs)(`button`,{onClick:()=>wi(`header_button`),className:`hidden md:flex items-center gap-2 px-3 py-1.5 bg-amber-100 text-amber-700 rounded-full text-xs font-bold hover:bg-amber-200 transition-colors`,children:[(0,R.jsx)(ge,{size:14}),` `,e(`app.header.upgrade`)]}),(0,R.jsxs)(`button`,{onClick:()=>l===`single`?Ka(document.getElementById(`single-canvas`)||Rr.current,`${W}_${V}_${q+1}.png`):Ja(),disabled:yn,className:`px-4 py-2 text-white rounded-lg font-semibold shadow-lg hover:scale-[1.02] active:scale-[0.98] transition-all flex items-center justify-center gap-2 disabled:opacity-70 disabled:cursor-not-allowed text-sm ${l===`batch`?`bg-linear-to-r from-blue-600 to-indigo-600 shadow-blue-500/30`:`bg-slate-900 shadow-slate-900/10 hover:bg-slate-800`}`,children:[yn&&xn.total===0?(0,R.jsx)(Ce,{size:16,className:`animate-spin`}):l===`batch`?(0,R.jsx)(pe,{size:16}):(0,R.jsx)(D,{size:16}),(0,R.jsx)(`span`,{className:`hidden sm:inline`,children:e(l===`single`?O?`app.header.downloadPro`:`app.header.downloadWatermark`:`app.header.exportBundle`)})]})]})]}),(0,R.jsxs)(`div`,{className:`flex-1 flex flex-col md:flex-row overflow-hidden relative`,children:[Yn&&vo&&(0,R.jsx)(`div`,{className:`fixed inset-0 bg-black/40 backdrop-blur-[1px] z-110`,onClick:()=>Qn(!1)}),(0,R.jsxs)(`div`,{className:`w-full md:w-16 h-16 md:h-full bg-white border-t md:border-t-0 md:border-r border-slate-200 flex flex-row md:flex-col items-center justify-around md:justify-start py-2 md:py-4 shrink-0 z-30 order-last md:order-first transition-opacity ${uo?`opacity-0 pointer-events-none`:``}`,children:[(0,R.jsx)(`button`,{onClick:()=>v(`edit`),className:`p-3 rounded-xl md:mb-2 transition-all ${_===`edit`?`bg-blue-50 text-blue-600`:`text-slate-400 hover:bg-slate-50`}`,title:e(`app.tabs.edit`),children:(0,R.jsx)(De,{size:20})}),(0,R.jsx)(`button`,{onClick:()=>v(`style`),className:`p-3 rounded-xl md:mb-2 transition-all ${_===`style`?`bg-blue-50 text-blue-600`:`text-slate-400 hover:bg-slate-50`}`,title:e(`app.tabs.style`),children:(0,R.jsx)(Ee,{size:20})}),(0,R.jsx)(`button`,{onClick:()=>v(`templates`),className:`p-3 rounded-xl md:mb-2 transition-all ${_===`templates`?`bg-blue-50 text-blue-600`:`text-slate-400 hover:bg-slate-50`}`,title:e(`app.tabs.templates`),children:(0,R.jsx)(Se,{size:20})}),(0,R.jsx)(`button`,{onClick:()=>v(`data`),className:`p-3 rounded-xl md:mb-2 transition-all ${_===`data`?`bg-blue-50 text-blue-600`:`text-slate-400 hover:bg-slate-50`}`,title:e(`app.tabs.data`),children:(0,R.jsx)(_e,{size:20})})]}),(0,R.jsx)(`div`,{className:`${uo?`pointer-events-none opacity-0`:``} transition-opacity`,children:(0,R.jsx)($t,{activeTab:_,viewMode:l,isMobile:Yn,controlsVisible:vo,controlsTranslation:yo,isControlsDragging:tr,currentHeaderText:Qr,currentSubText:$r,currentLocaleId:W,updateSlideText:Li,currentScreenshot:ni,screenshotUploadScope:hn,setScreenshotUploadScope:gn,hasCurrentLocaleScreenshotOverride:ti,currentSlideScreenshotsByLocale:ri,currentSlideLocaleScreenshotOverrideCount:ii,hasAnyLocaleScreenshotOverrides:ai,hasSharedScreenshot:oi,clearCurrentSlideScreenshot:()=>zi(q),clearAllCurrentSlideLocaleScreenshotOverrides:()=>Bi(q),handleFileChange:Ji,fileInputRef:jr,handleDropWrapper:Qi,handleDragOver:Zi,handleDragEnter:Yi,handleDragLeave:Xi,isDragging:rr,locales:U,setCurrentLocaleId:ma,removeLocale:ha,handleAddLocales:pa,deviceId:V,setDeviceId:un,deviceLabelMode:y,setDeviceLabelMode:b,exportStructureMode:S,setExportStructureMode:C,teamSyncEnabled:i,teamSyncToken:le?.token||null,captureTeamSpec:ro,applyTeamSpec:io,orientation:ft,setOrientation:ht,isWatchSelected:si,applyTheme:Wa,bgType:Ke,setBgType:qe,bgInputRef:Pr,handleBgDropWrapper:ia,handleBgDragOver:ra,handleBgDragEnter:ta,handleBgDragLeave:na,isBgDragging:ar,handleBgFileChange:aa,bgBlur:$e,setBgBlur:et,bgOpacity:tt,setBgOpacity:nt,bgColor:Je,setBgColor:Xe,gradientStart:rt,setGradientStart:it,gradientEnd:at,setGradientEnd:ot,frameColor:bt,setFrameColor:xt,logoImage:Dt,logoInputRef:Fr,handleLogoDropWrapper:ua,handleLogoDragOver:la,handleLogoDragEnter:sa,handleLogoDragLeave:ca,isLogoDragging:sr,handleLogoFileChange:da,handleLogoRemove:fa,overrideActive:ui,ensureSlideOverride:Vi,clearSlideOverride:Ui,updateSlideOverride:Hi,layoutMode:wt,setLayoutMode:H,effectiveLayoutMode:pi,selectedFont:Xt,setSelectedFont:Zt,fontOptions:gi,textColor:kt,setTextColor:At,recentColors:Qt,addRecentColor:ln,effectiveTopSpacing:di,setTopSpacing:Ct,effectiveDeviceScale:fi,setDeviceScale:ut,badgeType:Tt,setBadgeType:Et,applyPreset:Ya,myPresets:_n,requirePro:ji,openSavePresetDialog:Xa,deleteUserPreset:Qa,isPro:O,storageUsage:Cn,saveProject:eo,loadProject:to,loadSampleProject:no,setConfirmDialog:An,saveStatus:J,statusMessage:co,handleExportJSON:ga,jsonInputRef:Lr,handleImportJSON:_a,isJsonDragging:lr,handleJsonDragOver:ba,handleJsonDragEnter:va,handleJsonDragLeave:ya,handleJsonDropWrapper:xa,isCsvDragging:dr,handleCsvDropWrapper:Aa,handleCsvDragOver:ka,handleCsvDragEnter:Da,handleCsvDragLeave:Oa,openCsvTemplateDialog:ja,csvInputRef:Ir,handleCsvImport:Ea,onImportLocaleScreenshots:Ha,selectedBatchDevices:Ve,setSelectedBatchDevices:We,toggleBatchDevice:Ge,onTouchStart:bo,onTouchMove:xo,onTouchEnd:So})}),(0,R.jsxs)(`div`,{ref:zr,className:`${Yn?`h-full`:`h-1/2`} md:h-full flex-1 md:flex-auto bg-slate-200/50 relative overflow-visible flex flex-col order-1 md:order-0 border-b md:border-b-0 border-slate-200`,style:{minHeight:0,...$?{touchAction:`auto`}:{}},children:[(0,R.jsx)(`div`,{className:`w-full flex justify-end pointer-events-none`,children:(0,R.jsx)(`div`,{className:`fixed top-20 right-8 z-400 flex flex-col items-end gap-1 pointer-events-auto transition-opacity ${uo?`opacity-0 pointer-events-none`:``}`,children:(0,R.jsxs)(`div`,{className:`flex items-center gap-3 bg-white/90 backdrop-blur-sm shadow-xs border border-slate-200 rounded-full px-4 py-2`,children:[(0,R.jsx)(He,{size:14,className:`text-slate-400`}),(0,R.jsx)(`input`,{type:`range`,min:`0.05`,max:`1.0`,step:`0.05`,value:B,onChange:e=>dt(parseFloat(e.target.value)),className:`w-24 accent-slate-800 h-1.5 bg-slate-200 rounded-lg appearance-none cursor-pointer`}),(0,R.jsxs)(`span`,{className:`text-xs font-mono text-slate-500 w-8`,children:[Math.round(B*100),`%`]}),l===`single`&&(0,R.jsx)(`button`,{onClick:fo,className:`text-[10px] text-blue-600 font-bold hover:underline px-2 border-l border-slate-200 ml-1`,children:e(`app.canvas.center`)})]})})}),(0,R.jsxs)(`div`,{className:`flex-1 w-full flex flex-col overflow-visible`,style:{minHeight:0},children:[(0,R.jsx)(`div`,{className:`flex-1 w-full pb-48`,style:{overflowY:`auto`,overflowX:`auto`},children:(0,R.jsx)(`div`,{className:`flex flex-col items-center gap-12 p-12`,style:{touchAction:$?`auto`:`pan-y pinch-zoom`},children:(0,R.jsxs)(`div`,{className:`grid place-items-center w-full pb-12 overflow-visible`,ref:lo,onMouseDown:$?void 0:Co,onMouseMove:$?void 0:wo,onMouseUp:$?void 0:To,onMouseLeave:$?void 0:To,onTouchStart:$?void 0:mo,onTouchMove:$?void 0:ho,onTouchEnd:$?void 0:go,onTouchCancel:$?void 0:go,style:{cursor:$?`default`:Pe?`grabbing`:`grab`,userSelect:`none`,touchAction:$?`auto`:`none`},children:[l===`single`&&(0,R.jsx)(`div`,{style:{width:mi*B,height:hi*B,flexShrink:0,marginLeft:`auto`,marginRight:`auto`},children:(0,R.jsx)(`div`,{style:{transform:`translate(${Ae.x}px, ${Ae.y}px) scale(${B})`,transformOrigin:`top left`,width:mi,height:hi,transition:Pe?`none`:`transform 0.1s ease-out`,willChange:`transform`},children:(0,R.jsx)(pt,{id:`single-canvas`,deviceId:V,orientation:ci,deviceScale:fi,topSpacing:di,layoutMode:pi,bgType:Ke,bgColor:Je,gradientStart:rt,gradientEnd:at,gradientAngle:st,bgImage:Ze,bgBlur:$e,bgOpacity:tt,headerText:Qr,subHeaderText:$r,textColor:kt,headerSize:jt,subHeaderSize:Nt,selectedFont:so,badgeType:Tt,screenshot:ei,logoImage:Dt,frameColor:bt,isPro:O})})}),l===`batch`&&(0,R.jsxs)(`div`,{style:{transform:$?void 0:`translate(${Ae.x}px, ${Ae.y}px)`,transition:$||Pe?`none`:`transform 0.1s ease-out`,willChange:$?void 0:`transform`},className:`flex flex-wrap justify-center items-start content-start py-10`,children:[!O&&!h&&(0,R.jsx)(`div`,{className:`w-full px-4 pb-6`,children:(0,R.jsxs)(`div`,{className:`max-w-3xl mx-auto rounded-2xl border border-amber-200 bg-amber-50 text-amber-900 p-4 flex flex-col sm:flex-row sm:items-center sm:justify-between gap-3`,children:[(0,R.jsxs)(`div`,{className:`space-y-1`,children:[(0,R.jsx)(`div`,{className:`text-sm font-black`,children:e(`app.batch.freePreview.title`,{defaultValue:`Free bundle preview`})}),(0,R.jsx)(`div`,{className:`text-xs text-amber-800`,children:e(`app.batch.freePreview.body`,{defaultValue:`Limited to 1 locale × 5 slides × 1 iOS + 1 Android device (watermarked). Upgrade for full matrix exports.`})})]}),(0,R.jsx)(`button`,{type:`button`,onClick:()=>wi(`free_bundle_banner`),className:`inline-flex items-center justify-center gap-2 px-4 py-2 rounded-xl bg-white text-amber-900 border border-amber-200 text-xs font-bold hover:bg-amber-100 transition`,children:e(`app.batch.freePreview.cta`,{defaultValue:`Upgrade`})})]})}),po.map(e=>{let t=z[e],n=t?.type===`watch`?`portrait`:ft,r=t?.type===`watch`,i=r?Ft:Wt,a=r?Lt:Kt,o=r?zt:Jt,{canvasWidth:s,canvasHeight:c}=Ye({deviceId:e,orientation:n,deviceScale:lt,topSpacing:o,layoutMode:wt,isBatchMode:!0}),l=s*B,u=c*B;return(0,R.jsxs)(`div`,{className:`relative isolate flex flex-col items-center m-4 group`,children:[(0,R.jsx)(`div`,{className:`mb-2 relative z-20`,children:(0,R.jsx)(`span`,{className:`text-xs font-bold text-slate-500 uppercase tracking-widest bg-white/90 px-3 py-1 rounded-full shadow-xs border border-slate-100 whitespace-nowrap`,children:vt(z[e],{id:e,mode:y}).optionLabel})}),(0,R.jsx)(`div`,{style:{width:l,height:u,clipPath:`inset(0)`,WebkitClipPath:`inset(0)`},className:`relative z-0 overflow-hidden`,children:(0,R.jsx)(`div`,{style:{transform:`scale(${B})`,transformOrigin:`top left`,width:s,height:c},children:(0,R.jsx)(`div`,{id:`batch-canvas-${e}`,children:(0,R.jsx)(pt,{id:`canvas-${e}`,deviceId:e,orientation:n,deviceScale:lt,topSpacing:o,layoutMode:wt,bgType:Ke,bgColor:Je,gradientStart:rt,gradientEnd:at,gradientAngle:st,bgImage:Ze,bgBlur:$e,bgOpacity:tt,headerText:Qr,subHeaderText:$r,textColor:kt,headerSize:i,subHeaderSize:a,selectedFont:so,badgeType:Tt,screenshot:ei,logoImage:Dt,frameColor:bt,isBatchMode:!0,isPro:O})})})})]},e)})]})]})})}),(0,R.jsx)(`input`,{type:`file`,ref:Mr,className:`hidden`,accept:`image/*`,onChange:Ki}),(0,R.jsx)(tn,{slides:G,activeSlideIndex:q,setActiveSlideIndex:mn,currentLocaleId:W,addSlide:Pi,removeSlide:Ii,onApplyFileToSlide:Gi,onOpenFilePickerForSlide:qi,validateImageFile:xi,onAddSlidesFromFiles:Fi})]})]})]}),jn&&(0,R.jsx)(`div`,{className:`fixed inset-0 z-1250 bg-black/40 backdrop-blur-xs flex items-center justify-center px-4`,role:`dialog`,"aria-modal":`true`,"aria-label":e(`app.templates.saveCurrent`),onMouseDown:e=>{e.target===e.currentTarget&&Dr()},children:(0,R.jsxs)(`div`,{ref:_r,className:`bg-white rounded-xl shadow-xl border border-slate-200 w-full max-w-sm p-5 space-y-4`,children:[(0,R.jsx)(`h3`,{className:`text-base font-semibold text-slate-800`,children:e(`app.templates.saveCurrent`)}),(0,R.jsxs)(`div`,{className:`space-y-2`,children:[(0,R.jsx)(`label`,{className:`block text-xs font-medium text-slate-600`,htmlFor:`preset-name-input`,children:e(`app.prompts.presetName`)}),(0,R.jsx)(`input`,{id:`preset-name-input`,ref:vr,value:jn.value,onChange:e=>Mn({value:e.target.value}),onKeyDown:e=>{e.key===`Enter`&&jn.value.trim()&&Za(),e.key===`Escape`&&Dr()},placeholder:e(`app.prompts.presetDefault`),className:`w-full rounded-lg border border-slate-300 px-3 py-2 text-sm focus:outline-hidden focus:ring-2 focus:ring-blue-500 focus:border-blue-500`,autoFocus:!0})]}),(0,R.jsxs)(`div`,{className:`flex justify-end gap-2`,children:[(0,R.jsx)(`button`,{className:`px-3 py-1.5 text-sm rounded-lg border border-slate-200 text-slate-600 hover:bg-slate-50`,onClick:Dr,children:e(`auth.actions.cancel`)||`Cancel`}),(0,R.jsx)(`button`,{disabled:!jn.value.trim(),className:`px-3 py-1.5 text-sm rounded-lg bg-blue-600 text-white hover:bg-blue-700 disabled:opacity-60 disabled:cursor-not-allowed`,onClick:Za,children:e(`app.header.confirm`)||`OK`})]})]})}),Yn&&(0,R.jsxs)(R.Fragment,{children:[vo&&(0,R.jsx)(`div`,{className:`fixed inset-0 z-90 bg-black/20 backdrop-blur-[1px] md:hidden`,onClick:()=>Qn(!1)}),(0,R.jsxs)(`button`,{onClick:_o,className:`fixed bottom-20 right-4 z-110 md:hidden px-4 py-2 rounded-full shadow-lg bg-white border border-slate-200 text-sm font-semibold text-slate-700 flex items-center gap-2`,children:[(0,R.jsx)(Fe,{size:16}),e(vo?`app.mobile.closeControls`:`app.mobile.openControls`)]})]}),(0,R.jsxs)(`footer`,{className:`border-t border-slate-200 bg-white text-[11px] text-slate-500 py-3 px-4 md:px-8 flex flex-col md:flex-row items-center justify-between gap-2`,children:[(0,R.jsxs)(`span`,{className:`font-medium`,children:[`© `,new Date().getFullYear(),` ShipScreens`]}),(0,R.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,R.jsx)(`a`,{href:`/terms`,className:`hover:text-slate-700 underline-offset-2 hover:underline`,children:e(`landing.footer.terms`)}),(0,R.jsx)(`a`,{href:`/privacy`,className:`hover:text-slate-700 underline-offset-2 hover:underline`,children:e(`landing.footer.privacy`)}),(0,R.jsx)(`a`,{href:`/legal`,className:`hover:text-slate-700 underline-offset-2 hover:underline`,children:e(`landing.footer.legal`)})]})]}),In&&(0,R.jsx)(`div`,{className:`fixed inset-0 z-1220 bg-black/40 backdrop-blur-xs flex items-center justify-center px-4`,role:`dialog`,"aria-modal":`true`,"aria-label":e(`app.importer.templateDialog.title`),onMouseDown:e=>{e.target===e.currentTarget&&Or()},children:(0,R.jsxs)(`div`,{ref:yr,className:`bg-white rounded-xl shadow-xl border border-slate-200 w-full max-w-sm p-5 space-y-4`,children:[(0,R.jsx)(`h3`,{className:`text-base font-semibold text-slate-800`,children:e(`app.importer.templateDialog.title`)}),(0,R.jsx)(`p`,{className:`text-sm text-slate-600`,children:e(`app.importer.templateDialog.description`)}),(0,R.jsxs)(`div`,{className:`rounded-lg border border-slate-200 bg-slate-50/60 p-3 space-y-2`,children:[(0,R.jsxs)(`label`,{className:`flex items-start gap-2 text-sm text-slate-700`,children:[(0,R.jsx)(`input`,{ref:br,type:`radio`,name:`csv-template-slide-count`,value:`current`,checked:Rn===`current`,onChange:()=>zn(`current`),className:`mt-1 accent-blue-600`}),(0,R.jsxs)(`div`,{children:[(0,R.jsx)(`div`,{className:`font-semibold text-sm`,children:e(`app.importer.templateDialog.optionCurrent`,{count:Math.max(1,G.length)})}),(0,R.jsx)(`div`,{className:`text-[11px] text-slate-500`,children:e(`app.importer.templateDialog.optionCurrentDesc`)})]})]}),(0,R.jsxs)(`label`,{className:`flex items-start gap-2 text-sm text-slate-700`,children:[(0,R.jsx)(`input`,{type:`radio`,name:`csv-template-slide-count`,value:`custom`,checked:Rn===`custom`,onChange:()=>{zn(`custom`),Vn(e=>e||String(Math.max(1,G.length)))},className:`mt-1 accent-blue-600`}),(0,R.jsxs)(`div`,{className:`flex-1`,children:[(0,R.jsx)(`div`,{className:`font-semibold text-sm`,children:e(`app.importer.templateDialog.optionCustom`)}),(0,R.jsxs)(`div`,{className:`mt-1 flex items-center gap-2`,children:[(0,R.jsx)(`input`,{type:`number`,min:1,max:50,step:1,value:Bn,onChange:e=>{zn(`custom`),Vn(e.target.value)},className:`w-20 rounded-lg border px-2 py-1 text-sm focus:outline-hidden focus:ring-2 focus:ring-blue-500 focus:border-blue-500 ${Rn===`custom`?`bg-white border-slate-300 text-slate-900`:`bg-slate-100 border-slate-200 text-slate-500`}`,disabled:Rn!==`custom`}),(0,R.jsx)(`span`,{className:`text-[11px] text-slate-500`,children:e(`app.importer.templateDialog.optionCustomUnit`)})]}),(0,R.jsx)(`div`,{className:`text-[11px] text-slate-500`,children:e(`app.importer.templateDialog.optionCustomDesc`)})]})]}),[5,7,10].map(t=>(0,R.jsxs)(`label`,{className:`flex items-start gap-2 text-sm text-slate-700`,children:[(0,R.jsx)(`input`,{type:`radio`,name:`csv-template-slide-count`,value:String(t),checked:Rn===String(t),onChange:()=>zn(String(t)),className:`mt-1 accent-blue-600`}),(0,R.jsxs)(`div`,{children:[(0,R.jsx)(`div`,{className:`font-semibold text-sm`,children:e(`app.importer.templateDialog.optionPreset`,{count:t})}),(0,R.jsx)(`div`,{className:`text-[11px] text-slate-500`,children:e(`app.importer.templateDialog.optionPresetDesc`)})]})]},t))]}),(0,R.jsxs)(`div`,{className:`flex justify-end gap-2`,children:[(0,R.jsx)(`button`,{className:`px-3 py-1.5 text-sm rounded-lg border border-slate-200 text-slate-600 hover:bg-slate-50`,onClick:Or,children:e(`auth.actions.cancel`)||`Cancel`}),(0,R.jsx)(`button`,{className:`px-3 py-1.5 text-sm rounded-lg bg-blue-600 text-white hover:bg-blue-700`,onClick:Na,disabled:(()=>{if(Rn!==`custom`)return!1;let e=parseInt(Bn,10);return!Number.isFinite(e)||e<1||e>50})(),children:e(`app.importer.templateDialog.download`)})]})]})}),X&&(0,R.jsx)(`div`,{className:`fixed inset-0 z-1225 bg-black/40 backdrop-blur-xs flex items-center justify-center px-4`,role:`dialog`,"aria-modal":`true`,"aria-label":e(`app.importer.previewTitle`),onMouseDown:e=>{e.target===e.currentTarget&&kr()},children:(0,R.jsxs)(`div`,{ref:xr,className:`bg-white rounded-xl shadow-xl border border-slate-200 w-full max-w-md p-5 space-y-4`,children:[(0,R.jsx)(`h3`,{className:`text-base font-semibold text-slate-800`,children:e(`app.importer.previewTitle`)}),(0,R.jsx)(`p`,{className:`text-sm text-slate-600`,children:e(`app.importer.previewSummary`,{count:X.locales.length,slides:X.slideCount||1})}),X.errors>0&&(0,R.jsx)(`p`,{className:`text-xs text-amber-600 bg-amber-50 border border-amber-100 rounded-lg p-2`,children:e(`app.importer.previewWarning`,{count:X.errors})}),(()=>{let t=G.length,n=X.slideCount||1;return n>t?(0,R.jsx)(`p`,{className:`text-xs text-blue-700 bg-blue-50 border border-blue-100 rounded-lg p-2`,children:e(`app.importer.previewSlideNoteAdd`,{count:n-t})}):n<t?(0,R.jsx)(`p`,{className:`text-xs text-slate-600 bg-slate-50 border border-slate-100 rounded-lg p-2`,children:e(`app.importer.previewSlideNotePartial`,{count:n,from:n+1})}):null})(),(()=>{let t=new Set(U.map(e=>e.id)),n=new Set(X.locales.map(e=>e.id)),r=Array.from(n).filter(e=>!t.has(e)).length,i=Array.from(t).filter(e=>!n.has(e)).length,a=Array.from(n).filter(e=>t.has(e)).length,o=t.size-a,s=G.length,c=X.slideCount||1,l=Math.max(0,c-s),u=Math.max(0,s-c),d=[];return r>0&&d.push({key:`loc-add`,tone:`good`,label:e(`app.importer.delta.localesAdded`,{count:r})}),Pn===`replace`?(i>0&&d.push({key:`loc-remove`,tone:`bad`,label:e(`app.importer.delta.localesRemoved`,{count:i})}),a>0&&d.push({key:`loc-kept`,tone:`neutral`,label:e(`app.importer.delta.localesKept`,{count:a})})):(a>0&&d.push({key:`loc-update`,tone:`info`,label:e(`app.importer.delta.localesUpdated`,{count:a})}),o>0&&d.push({key:`loc-unchanged`,tone:`neutral`,label:e(`app.importer.delta.localesUnchanged`,{count:o})})),l>0&&d.push({key:`slide-add`,tone:`good`,label:e(`app.importer.delta.slidesAdded`,{count:l})}),u>0&&d.push({key:`slide-unchanged`,tone:`neutral`,label:e(`app.importer.delta.slidesUnchanged`,{count:u})}),d.length?(0,R.jsxs)(`div`,{className:`rounded-lg border border-slate-200 bg-slate-50/60 p-3 space-y-2`,children:[(0,R.jsx)(`div`,{className:`text-xs font-semibold text-slate-700`,children:e(`app.importer.previewChangesTitle`)}),(0,R.jsx)(`div`,{className:`flex flex-wrap gap-2`,children:d.map(e=>(0,R.jsx)(`span`,{className:`px-2 py-1 rounded-full border text-[11px] font-semibold ${e.tone===`bad`?`bg-rose-50 text-rose-700 border-rose-100`:e.tone===`good`?`bg-emerald-50 text-emerald-700 border-emerald-100`:e.tone===`info`?`bg-blue-50 text-blue-700 border-blue-100`:`bg-white text-slate-700 border-slate-200`}`,children:e.label},e.key))})]}):null})(),(0,R.jsxs)(`div`,{className:`border border-slate-200 rounded-lg divide-y divide-slate-100 max-h-60 overflow-auto`,children:[X.locales.slice(0,4).map(t=>{let n=X.slideCount||1,r=Math.min(2,n),i=Array.from({length:r},(e,t)=>t);return(0,R.jsxs)(`div`,{className:`p-3`,children:[(0,R.jsxs)(`div`,{className:`text-xs font-semibold text-slate-700 flex justify-between`,children:[(0,R.jsx)(`span`,{children:t.name}),(0,R.jsx)(`span`,{className:`text-slate-400`,children:t.id})]}),(0,R.jsxs)(`div`,{className:`mt-1 text-[11px] text-slate-600 space-y-1`,children:[i.map(e=>{let n=X.slidesTexts?.[e]?.[t.id]||{};return(0,R.jsxs)(`div`,{children:[(0,R.jsxs)(`span`,{className:`font-semibold text-slate-500`,children:[`#`,e+1]}),` `,n.header||`-`,` `,(0,R.jsx)(`span`,{className:`text-slate-400`,children:`/`}),` `,n.sub||`-`]},`${t.id}-${e}`)}),n>r&&(0,R.jsx)(`div`,{className:`text-[10px] text-slate-400`,children:e(`app.importer.previewMoreSlides`,{extra:n-r})})]})]},t.id)}),X.locales.length>4&&(0,R.jsx)(`div`,{className:`p-2 text-[11px] text-slate-500 text-center`,children:e(`app.importer.previewMore`,{extra:X.locales.length-4})})]}),(0,R.jsxs)(`div`,{className:`rounded-lg border border-slate-200 bg-slate-50/60 p-3 space-y-2`,children:[(0,R.jsx)(`div`,{className:`text-xs font-semibold text-slate-700`,children:e(`app.importer.mode.label`)}),(0,R.jsxs)(`label`,{className:`flex items-start gap-2 text-sm text-slate-700`,children:[(0,R.jsx)(`input`,{type:`radio`,name:`csv-apply-mode`,value:`merge`,checked:Pn===`merge`,onChange:()=>Fn(`merge`),className:`mt-1 accent-blue-600`}),(0,R.jsxs)(`div`,{children:[(0,R.jsx)(`div`,{className:`font-semibold text-sm`,children:e(`app.importer.mode.merge`)}),(0,R.jsx)(`div`,{className:`text-[11px] text-slate-500`,children:e(`app.importer.mode.mergeDesc`)})]})]}),(0,R.jsxs)(`label`,{className:`flex items-start gap-2 text-sm text-slate-700`,children:[(0,R.jsx)(`input`,{type:`radio`,name:`csv-apply-mode`,value:`replace`,checked:Pn===`replace`,onChange:()=>Fn(`replace`),className:`mt-1 accent-blue-600`}),(0,R.jsxs)(`div`,{children:[(0,R.jsx)(`div`,{className:`font-semibold text-sm`,children:e(`app.importer.mode.replace`)}),(0,R.jsx)(`div`,{className:`text-[11px] text-slate-500`,children:e(`app.importer.mode.replaceDesc`)})]})]})]}),(0,R.jsxs)(`div`,{className:`flex justify-end gap-2`,children:[(0,R.jsx)(`button`,{ref:Sr,className:`px-3 py-1.5 text-sm rounded-lg border border-slate-200 text-slate-600 hover:bg-slate-50`,onClick:kr,children:e(`auth.actions.cancel`)||`Cancel`}),(0,R.jsx)(`button`,{className:`px-3 py-1.5 text-sm rounded-lg bg-blue-600 text-white hover:bg-blue-700`,onClick:Pa,children:e(`app.importer.previewApply`)})]})]})}),Z&&(0,R.jsx)(`div`,{className:`fixed inset-0 z-1230 bg-black/40 backdrop-blur-xs flex items-center justify-center px-4`,role:`dialog`,"aria-modal":`true`,"aria-label":e(`app.screenshotImporter.dialog.title`),onMouseDown:e=>{Gn||e.target===e.currentTarget&&Va()},children:(0,R.jsxs)(`div`,{ref:Cr,className:`bg-white rounded-xl shadow-xl border border-slate-200 w-full max-w-md p-5 space-y-4`,children:[(0,R.jsx)(`h3`,{className:`text-base font-semibold text-slate-800`,children:e(`app.screenshotImporter.dialog.title`)}),(0,R.jsx)(`p`,{className:`text-sm text-slate-600`,children:e(`app.screenshotImporter.dialog.summary`,{count:Z.totalFound,locales:Z.localeCount,slides:Z.slideCount})}),(0,R.jsx)(`p`,{className:`text-xs text-slate-500`,children:e(`app.screenshotImporter.dialog.source`,{source:Z.source?.name||``})}),(Z.newLocaleCount>0||Z.addedSlideCount>0)&&(0,R.jsxs)(`div`,{className:`text-xs text-blue-700 bg-blue-50 border border-blue-100 rounded-lg p-2 space-y-1`,children:[Z.newLocaleCount>0&&(0,R.jsx)(`div`,{children:e(`app.screenshotImporter.dialog.noteAddLocales`,{count:Z.newLocaleCount})}),Z.addedSlideCount>0&&(0,R.jsx)(`div`,{children:e(`app.screenshotImporter.dialog.noteAddSlides`,{count:Z.addedSlideCount})})]}),(Z.skipped>0||Z.skippedNotImage>0||Z.skippedOutOfRange>0)&&(0,R.jsxs)(`div`,{className:`text-xs text-amber-700 bg-amber-50 border border-amber-100 rounded-lg p-2 space-y-1`,children:[Z.skipped>0&&(0,R.jsx)(`div`,{children:e(`app.screenshotImporter.dialog.warnSkipped`,{count:Z.skipped})}),Z.skippedNotImage>0&&(0,R.jsx)(`div`,{children:e(`app.screenshotImporter.dialog.warnNotImages`,{count:Z.skippedNotImage})}),Z.skippedOutOfRange>0&&(0,R.jsx)(`div`,{children:e(`app.screenshotImporter.dialog.warnOutOfRange`,{count:Z.skippedOutOfRange})})]}),Z.duplicateCount>0&&(0,R.jsx)(`div`,{className:`text-xs text-slate-600 bg-slate-50 border border-slate-100 rounded-lg p-2`,children:e(`app.screenshotImporter.dialog.noteDuplicates`,{count:Z.duplicateCount})}),Gn&&(0,R.jsx)(`div`,{className:`text-xs text-slate-600 bg-slate-50 border border-slate-100 rounded-lg p-2`,children:e(`app.screenshotImporter.dialog.progress`,{current:Un.current,total:Un.total})}),(0,R.jsxs)(`div`,{className:`flex justify-end gap-2`,children:[(0,R.jsx)(`button`,{ref:wr,className:`px-3 py-1.5 text-sm rounded-lg border border-slate-200 text-slate-600 hover:bg-slate-50 disabled:opacity-60 disabled:cursor-not-allowed`,onClick:Va,disabled:Gn,children:e(`auth.actions.cancel`)||`Cancel`}),(0,R.jsx)(`button`,{className:`px-3 py-1.5 text-sm rounded-lg bg-blue-600 text-white hover:bg-blue-700 disabled:opacity-60 disabled:cursor-not-allowed`,onClick:Ua,disabled:Gn,children:e(Gn?`app.screenshotImporter.dialog.applying`:`app.screenshotImporter.dialog.apply`)})]})]})}),kn&&(0,R.jsx)(`div`,{className:`fixed inset-0 z-1200 bg-black/40 backdrop-blur-xs flex items-center justify-center px-4`,role:`dialog`,"aria-modal":`true`,"aria-label":kn.title||e(`app.data.title`),onMouseDown:e=>{e.target===e.currentTarget&&Ar()},children:(0,R.jsxs)(`div`,{ref:Tr,className:`bg-white rounded-xl shadow-xl border border-slate-200 w-full max-w-sm p-4 space-y-4`,children:[(0,R.jsx)(`h3`,{className:`text-sm font-semibold text-slate-800`,children:kn.title||e(`app.data.title`)}),(0,R.jsx)(`p`,{className:`text-sm text-slate-600`,children:kn.message}),(0,R.jsxs)(`div`,{className:`flex justify-end gap-2`,children:[(0,R.jsx)(`button`,{ref:Er,className:`px-3 py-1.5 text-sm rounded-lg border border-slate-200 text-slate-600 hover:bg-slate-50`,onClick:Ar,children:kn.cancelLabel||e(`auth.actions.cancel`)||`Cancel`}),(0,R.jsx)(`button`,{className:`px-3 py-1.5 text-sm rounded-lg bg-blue-600 text-white hover:bg-blue-700`,onClick:()=>{kn.onConfirm?.(),An(null)},children:kn.confirmLabel||e(`app.header.confirm`)||`OK`})]})]})})]})};export{on as default};
|
|
14
|
+
//# sourceMappingURL=App-CZiyX8-L.js.map
|