shipscreens 0.1.0 → 0.1.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +0 -8
- package/bin/shipscreens.js +223 -28
- package/cli/assets/demo-screens/01.png +0 -0
- package/cli/assets/demo-screens/02.png +0 -0
- package/cli/assets/demo-screens/03.png +0 -0
- package/cli/assets/demo-screens/04.png +0 -0
- package/cli/commands/build.js +27 -27
- package/cli/schema.js +59 -20
- package/dist/app/assets/{AgentCli-8e28laT4.js → AgentCli-FWNCO1pb.js} +5 -5
- package/dist/app/assets/AgentCli-FWNCO1pb.js.map +1 -0
- package/dist/app/assets/App-yU7CFXCv.js +13 -0
- package/dist/app/assets/App-yU7CFXCv.js.map +1 -0
- package/dist/app/assets/{AppReviewAso-OLwc4Rw_.js → AppReviewAso-BYfaP1Lu.js} +3 -3
- package/dist/{assets/AppReviewAso-OLwc4Rw_.js.map → app/assets/AppReviewAso-BYfaP1Lu.js.map} +1 -1
- package/dist/app/assets/{Cancelled-BoeZQa1S.js → Cancelled-66ixTUrm.js} +2 -2
- package/dist/app/assets/{Cancelled-BoeZQa1S.js.map → Cancelled-66ixTUrm.js.map} +1 -1
- package/dist/app/assets/CliPreflightCard-D7utpFux.js +2 -0
- package/dist/app/assets/{CliPreflightCard-CxYyogdF.js.map → CliPreflightCard-D7utpFux.js.map} +1 -1
- package/dist/app/assets/CopyButton-CmVmSaYn.js +2 -0
- package/dist/app/assets/CopyButton-CmVmSaYn.js.map +1 -0
- package/dist/app/assets/{FastlaneScreenshots-CFT6IiRb.js → FastlaneScreenshots-CRMcetq-.js} +4 -4
- package/dist/{assets/FastlaneScreenshots-CFT6IiRb.js.map → app/assets/FastlaneScreenshots-CRMcetq-.js.map} +1 -1
- package/dist/app/assets/{FirstExport-B_UDacZm.js → FirstExport-C0WgL4Hl.js} +3 -3
- package/dist/{assets/FirstExport-B_UDacZm.js.map → app/assets/FirstExport-C0WgL4Hl.js.map} +1 -1
- package/dist/app/assets/{FivePanelFramework-C1z_xUbe.js → FivePanelFramework-BwCRmXIK.js} +3 -3
- package/dist/{assets/FivePanelFramework-C1z_xUbe.js.map → app/assets/FivePanelFramework-BwCRmXIK.js.map} +1 -1
- package/dist/app/assets/{ForgotPassword-ZQ8U3ejz.js → ForgotPassword-B9_si1tH.js} +2 -2
- package/dist/{assets/ForgotPassword-ZQ8U3ejz.js.map → app/assets/ForgotPassword-B9_si1tH.js.map} +1 -1
- package/dist/app/assets/Landing-s1ni1n-7.js +2 -0
- package/dist/app/assets/Landing-s1ni1n-7.js.map +1 -0
- package/dist/app/assets/{LanguageSwitcher-D93nCuuR.js → LanguageSwitcher-BD9N-dla.js} +2 -2
- package/dist/{assets/LanguageSwitcher-D93nCuuR.js.map → app/assets/LanguageSwitcher-BD9N-dla.js.map} +1 -1
- package/dist/app/assets/{Legal-Koe7vi6H.js → Legal-D3cAXQXw.js} +2 -2
- package/dist/app/assets/{Legal-Koe7vi6H.js.map → Legal-D3cAXQXw.js.map} +1 -1
- package/dist/app/assets/{NotFound-CfY31vMZ.js → NotFound-ClV-6RmP.js} +2 -2
- package/dist/app/assets/{NotFound-CfY31vMZ.js.map → NotFound-ClV-6RmP.js.map} +1 -1
- package/dist/app/assets/{Privacy-CaHf2UM7.js → Privacy-DfxgWwC3.js} +2 -2
- package/dist/{assets/Privacy-CaHf2UM7.js.map → app/assets/Privacy-DfxgWwC3.js.map} +1 -1
- package/dist/app/assets/{SignIn-Cyi2_-Mn.js → SignIn-ghQCKcPe.js} +2 -2
- package/dist/app/assets/{SignIn-Cyi2_-Mn.js.map → SignIn-ghQCKcPe.js.map} +1 -1
- package/dist/app/assets/{SignUp-C9QH5po_.js → SignUp-BKB87hd4.js} +2 -2
- package/dist/app/assets/{SignUp-C9QH5po_.js.map → SignUp-BKB87hd4.js.map} +1 -1
- package/dist/app/assets/SiteHeader-DxsqNPnt.js +2 -0
- package/dist/app/assets/SiteHeader-DxsqNPnt.js.map +1 -0
- package/dist/app/assets/{StickyMobileCta-uyWGVhdc.js → StickyMobileCta-C_x2pUIF.js} +2 -2
- package/dist/app/assets/{StickyMobileCta-uyWGVhdc.js.map → StickyMobileCta-C_x2pUIF.js.map} +1 -1
- package/dist/{assets/StoreAssetsPipeline-BJlnD3kD.js → app/assets/StoreAssetsPipeline-4hXRONUd.js} +3 -3
- package/dist/app/assets/{StoreAssetsPipeline-BJlnD3kD.js.map → StoreAssetsPipeline-4hXRONUd.js.map} +1 -1
- package/dist/app/assets/{Success-B7k7FvJj.js → Success-819qvzmp.js} +2 -2
- package/dist/app/assets/{Success-B7k7FvJj.js.map → Success-819qvzmp.js.map} +1 -1
- package/dist/app/assets/{Terms-DgJWOeUD.js → Terms-7k3nA4SU.js} +2 -2
- package/dist/app/assets/{Terms-DgJWOeUD.js.map → Terms-7k3nA4SU.js.map} +1 -1
- package/dist/app/assets/{ToolsIndex-xMPoFom9.js → ToolsIndex-CzrxymnM.js} +3 -3
- package/dist/{assets/ToolsIndex-xMPoFom9.js.map → app/assets/ToolsIndex-CzrxymnM.js.map} +1 -1
- package/dist/app/assets/{WorkloadCalculator-Bdt6qPR3.js → WorkloadCalculator-D2TuKS4B.js} +4 -4
- package/dist/app/assets/{WorkloadCalculator-Bdt6qPR3.js.map → WorkloadCalculator-D2TuKS4B.js.map} +1 -1
- package/dist/app/assets/{calculator-CWfp5Day.js → calculator-CiqKFdRp.js} +2 -2
- package/dist/app/assets/{calculator-CWfp5Day.js.map → calculator-CiqKFdRp.js.map} +1 -1
- package/dist/app/assets/chevron-down-_xIkRLaA.js +2 -0
- package/dist/app/assets/{chevron-down-DbSAem1L.js.map → chevron-down-_xIkRLaA.js.map} +1 -1
- package/dist/app/assets/{clipboard-copy-DgTgnK84.js → clipboard-copy-DCJioqIc.js} +2 -2
- package/dist/app/assets/{clipboard-copy-DgTgnK84.js.map → clipboard-copy-DCJioqIc.js.map} +1 -1
- package/dist/app/assets/{copy-C9t_FzCZ.js → copy-AQdWJCcs.js} +2 -2
- package/dist/app/assets/{copy-C9t_FzCZ.js.map → copy-AQdWJCcs.js.map} +1 -1
- package/dist/app/assets/{crop-B7IxIx6D.js → crop-DOMVp18h.js} +2 -2
- package/dist/app/assets/{crop-B7IxIx6D.js.map → crop-DOMVp18h.js.map} +1 -1
- package/dist/app/assets/{download-65Zuvgwm.js → download-D5RbyXDm.js} +2 -2
- package/dist/app/assets/{download-65Zuvgwm.js.map → download-D5RbyXDm.js.map} +1 -1
- package/dist/app/assets/{eye-ouNo8Nv5.js → eye-CLcZi_uk.js} +2 -2
- package/dist/{assets/eye-ouNo8Nv5.js.map → app/assets/eye-CLcZi_uk.js.map} +1 -1
- package/dist/app/assets/{grid-3x3-U1Nk_ppf.js → grid-3x3-AKmIrhzv.js} +2 -2
- package/dist/{assets/grid-3x3-U1Nk_ppf.js.map → app/assets/grid-3x3-AKmIrhzv.js.map} +1 -1
- package/dist/app/assets/hero/demo-25s-poster.jpg +0 -0
- package/dist/app/assets/hero/demo-25s.mp4 +0 -0
- package/dist/app/assets/hero/demo-25s.webm +0 -0
- package/dist/app/assets/hero/demo-poster.jpg +0 -0
- package/dist/app/assets/hero/demo.mp4 +0 -0
- package/dist/app/assets/hero/demo.webm +0 -0
- package/dist/{assets/index-B8Y8Y-Mi.js → app/assets/index-Bqv2NztY.js} +6 -6
- package/dist/app/assets/index-Bqv2NztY.js.map +1 -0
- package/dist/{assets/index-hyiQFYGv.css → app/assets/index-DGVMa-P7.css} +1 -1
- package/dist/app/assets/{layout-grid-X9Sgull2.js → layout-grid-CpGXUPMR.js} +2 -2
- package/dist/app/assets/{layout-grid-X9Sgull2.js.map → layout-grid-CpGXUPMR.js.map} +1 -1
- package/dist/app/assets/proof/output-01.png +0 -0
- package/dist/app/assets/proof/output-02.png +0 -0
- package/dist/app/assets/proof/output-03.png +0 -0
- package/dist/app/assets/proof/output-04.png +0 -0
- package/dist/app/assets/{rocket-BjOXauLe.js → rocket-IzRFv1aW.js} +2 -2
- package/dist/app/assets/{rocket-BjOXauLe.js.map → rocket-IzRFv1aW.js.map} +1 -1
- package/dist/app/assets/{shield-check-CFNhE_aD.js → shield-check-CngdN3zn.js} +2 -2
- package/dist/{assets/shield-check-CFNhE_aD.js.map → app/assets/shield-check-CngdN3zn.js.map} +1 -1
- package/dist/app/assets/{signIn-CVoSzqCz.js → signIn-Cn6FaQYi.js} +2 -2
- package/dist/{assets/signIn-CVoSzqCz.js.map → app/assets/signIn-Cn6FaQYi.js.map} +1 -1
- package/dist/app/assets/{smartphone-BcQB9gIh.js → smartphone-CpNG_Pfk.js} +2 -2
- package/dist/app/assets/{smartphone-BcQB9gIh.js.map → smartphone-CpNG_Pfk.js.map} +1 -1
- package/dist/app/assets/{terminal-CGhryJds.js → terminal-BbBESfoU.js} +2 -2
- package/dist/{assets/terminal-CGhryJds.js.map → app/assets/terminal-BbBESfoU.js.map} +1 -1
- package/dist/{assets/useAuth-lZZC20Tl.js → app/assets/useAuth-3WWZ3GCD.js} +2 -2
- package/dist/app/assets/{useAuth-lZZC20Tl.js.map → useAuth-3WWZ3GCD.js.map} +1 -1
- package/dist/app/index.html +2 -2
- package/dist/assets/{AgentCli-8e28laT4.js → AgentCli-FWNCO1pb.js} +5 -5
- package/dist/assets/AgentCli-FWNCO1pb.js.map +1 -0
- package/dist/assets/App-yU7CFXCv.js +13 -0
- package/dist/assets/App-yU7CFXCv.js.map +1 -0
- package/dist/assets/{AppReviewAso-OLwc4Rw_.js → AppReviewAso-BYfaP1Lu.js} +3 -3
- package/dist/{app/assets/AppReviewAso-OLwc4Rw_.js.map → assets/AppReviewAso-BYfaP1Lu.js.map} +1 -1
- package/dist/assets/{Cancelled-BoeZQa1S.js → Cancelled-66ixTUrm.js} +2 -2
- package/dist/assets/{Cancelled-BoeZQa1S.js.map → Cancelled-66ixTUrm.js.map} +1 -1
- package/dist/assets/CliPreflightCard-D7utpFux.js +2 -0
- package/dist/assets/{CliPreflightCard-CxYyogdF.js.map → CliPreflightCard-D7utpFux.js.map} +1 -1
- package/dist/assets/CopyButton-CmVmSaYn.js +2 -0
- package/dist/assets/CopyButton-CmVmSaYn.js.map +1 -0
- package/dist/assets/{FastlaneScreenshots-CFT6IiRb.js → FastlaneScreenshots-CRMcetq-.js} +4 -4
- package/dist/{app/assets/FastlaneScreenshots-CFT6IiRb.js.map → assets/FastlaneScreenshots-CRMcetq-.js.map} +1 -1
- package/dist/assets/{FirstExport-B_UDacZm.js → FirstExport-C0WgL4Hl.js} +3 -3
- package/dist/{app/assets/FirstExport-B_UDacZm.js.map → assets/FirstExport-C0WgL4Hl.js.map} +1 -1
- package/dist/assets/{FivePanelFramework-C1z_xUbe.js → FivePanelFramework-BwCRmXIK.js} +3 -3
- package/dist/{app/assets/FivePanelFramework-C1z_xUbe.js.map → assets/FivePanelFramework-BwCRmXIK.js.map} +1 -1
- package/dist/assets/{ForgotPassword-ZQ8U3ejz.js → ForgotPassword-B9_si1tH.js} +2 -2
- package/dist/{app/assets/ForgotPassword-ZQ8U3ejz.js.map → assets/ForgotPassword-B9_si1tH.js.map} +1 -1
- package/dist/assets/Landing-s1ni1n-7.js +2 -0
- package/dist/assets/Landing-s1ni1n-7.js.map +1 -0
- package/dist/assets/{LanguageSwitcher-D93nCuuR.js → LanguageSwitcher-BD9N-dla.js} +2 -2
- package/dist/{app/assets/LanguageSwitcher-D93nCuuR.js.map → assets/LanguageSwitcher-BD9N-dla.js.map} +1 -1
- package/dist/assets/{Legal-Koe7vi6H.js → Legal-D3cAXQXw.js} +2 -2
- package/dist/assets/{Legal-Koe7vi6H.js.map → Legal-D3cAXQXw.js.map} +1 -1
- package/dist/assets/{NotFound-CfY31vMZ.js → NotFound-ClV-6RmP.js} +2 -2
- package/dist/assets/{NotFound-CfY31vMZ.js.map → NotFound-ClV-6RmP.js.map} +1 -1
- package/dist/assets/{Privacy-CaHf2UM7.js → Privacy-DfxgWwC3.js} +2 -2
- package/dist/{app/assets/Privacy-CaHf2UM7.js.map → assets/Privacy-DfxgWwC3.js.map} +1 -1
- package/dist/assets/{SignIn-Cyi2_-Mn.js → SignIn-ghQCKcPe.js} +2 -2
- package/dist/assets/{SignIn-Cyi2_-Mn.js.map → SignIn-ghQCKcPe.js.map} +1 -1
- package/dist/assets/{SignUp-C9QH5po_.js → SignUp-BKB87hd4.js} +2 -2
- package/dist/assets/{SignUp-C9QH5po_.js.map → SignUp-BKB87hd4.js.map} +1 -1
- package/dist/assets/SiteHeader-DxsqNPnt.js +2 -0
- package/dist/assets/SiteHeader-DxsqNPnt.js.map +1 -0
- package/dist/assets/{StickyMobileCta-uyWGVhdc.js → StickyMobileCta-C_x2pUIF.js} +2 -2
- package/dist/assets/{StickyMobileCta-uyWGVhdc.js.map → StickyMobileCta-C_x2pUIF.js.map} +1 -1
- package/dist/{app/assets/StoreAssetsPipeline-BJlnD3kD.js → assets/StoreAssetsPipeline-4hXRONUd.js} +3 -3
- package/dist/assets/{StoreAssetsPipeline-BJlnD3kD.js.map → StoreAssetsPipeline-4hXRONUd.js.map} +1 -1
- package/dist/assets/{Success-B7k7FvJj.js → Success-819qvzmp.js} +2 -2
- package/dist/assets/{Success-B7k7FvJj.js.map → Success-819qvzmp.js.map} +1 -1
- package/dist/assets/{Terms-DgJWOeUD.js → Terms-7k3nA4SU.js} +2 -2
- package/dist/assets/{Terms-DgJWOeUD.js.map → Terms-7k3nA4SU.js.map} +1 -1
- package/dist/assets/{ToolsIndex-xMPoFom9.js → ToolsIndex-CzrxymnM.js} +3 -3
- package/dist/{app/assets/ToolsIndex-xMPoFom9.js.map → assets/ToolsIndex-CzrxymnM.js.map} +1 -1
- package/dist/assets/{WorkloadCalculator-Bdt6qPR3.js → WorkloadCalculator-D2TuKS4B.js} +4 -4
- package/dist/assets/{WorkloadCalculator-Bdt6qPR3.js.map → WorkloadCalculator-D2TuKS4B.js.map} +1 -1
- package/dist/assets/{calculator-CWfp5Day.js → calculator-CiqKFdRp.js} +2 -2
- package/dist/assets/{calculator-CWfp5Day.js.map → calculator-CiqKFdRp.js.map} +1 -1
- package/dist/assets/chevron-down-_xIkRLaA.js +2 -0
- package/dist/assets/{chevron-down-DbSAem1L.js.map → chevron-down-_xIkRLaA.js.map} +1 -1
- package/dist/assets/{clipboard-copy-DgTgnK84.js → clipboard-copy-DCJioqIc.js} +2 -2
- package/dist/assets/{clipboard-copy-DgTgnK84.js.map → clipboard-copy-DCJioqIc.js.map} +1 -1
- package/dist/assets/{copy-C9t_FzCZ.js → copy-AQdWJCcs.js} +2 -2
- package/dist/assets/{copy-C9t_FzCZ.js.map → copy-AQdWJCcs.js.map} +1 -1
- package/dist/assets/{crop-B7IxIx6D.js → crop-DOMVp18h.js} +2 -2
- package/dist/assets/{crop-B7IxIx6D.js.map → crop-DOMVp18h.js.map} +1 -1
- package/dist/assets/{download-65Zuvgwm.js → download-D5RbyXDm.js} +2 -2
- package/dist/assets/{download-65Zuvgwm.js.map → download-D5RbyXDm.js.map} +1 -1
- package/dist/assets/{eye-ouNo8Nv5.js → eye-CLcZi_uk.js} +2 -2
- package/dist/{app/assets/eye-ouNo8Nv5.js.map → assets/eye-CLcZi_uk.js.map} +1 -1
- package/dist/assets/{grid-3x3-U1Nk_ppf.js → grid-3x3-AKmIrhzv.js} +2 -2
- package/dist/{app/assets/grid-3x3-U1Nk_ppf.js.map → assets/grid-3x3-AKmIrhzv.js.map} +1 -1
- package/dist/assets/hero/demo-25s-poster.jpg +0 -0
- package/dist/assets/hero/demo-25s.mp4 +0 -0
- package/dist/assets/hero/demo-25s.webm +0 -0
- package/dist/assets/hero/demo-poster.jpg +0 -0
- package/dist/assets/hero/demo.mp4 +0 -0
- package/dist/assets/hero/demo.webm +0 -0
- package/dist/{app/assets/index-B8Y8Y-Mi.js → assets/index-Bqv2NztY.js} +6 -6
- package/dist/assets/index-Bqv2NztY.js.map +1 -0
- package/dist/{app/assets/index-hyiQFYGv.css → assets/index-DGVMa-P7.css} +1 -1
- package/dist/assets/{layout-grid-X9Sgull2.js → layout-grid-CpGXUPMR.js} +2 -2
- package/dist/assets/{layout-grid-X9Sgull2.js.map → layout-grid-CpGXUPMR.js.map} +1 -1
- package/dist/assets/proof/output-01.png +0 -0
- package/dist/assets/proof/output-02.png +0 -0
- package/dist/assets/proof/output-03.png +0 -0
- package/dist/assets/proof/output-04.png +0 -0
- package/dist/assets/{rocket-BjOXauLe.js → rocket-IzRFv1aW.js} +2 -2
- package/dist/assets/{rocket-BjOXauLe.js.map → rocket-IzRFv1aW.js.map} +1 -1
- package/dist/assets/{shield-check-CFNhE_aD.js → shield-check-CngdN3zn.js} +2 -2
- package/dist/{app/assets/shield-check-CFNhE_aD.js.map → assets/shield-check-CngdN3zn.js.map} +1 -1
- package/dist/assets/{signIn-CVoSzqCz.js → signIn-Cn6FaQYi.js} +2 -2
- package/dist/{app/assets/signIn-CVoSzqCz.js.map → assets/signIn-Cn6FaQYi.js.map} +1 -1
- package/dist/assets/{smartphone-BcQB9gIh.js → smartphone-CpNG_Pfk.js} +2 -2
- package/dist/assets/{smartphone-BcQB9gIh.js.map → smartphone-CpNG_Pfk.js.map} +1 -1
- package/dist/assets/{terminal-CGhryJds.js → terminal-BbBESfoU.js} +2 -2
- package/dist/{app/assets/terminal-CGhryJds.js.map → assets/terminal-BbBESfoU.js.map} +1 -1
- package/dist/{app/assets/useAuth-lZZC20Tl.js → assets/useAuth-3WWZ3GCD.js} +2 -2
- package/dist/assets/{useAuth-lZZC20Tl.js.map → useAuth-3WWZ3GCD.js.map} +1 -1
- package/dist/cancelled/index.html +2 -2
- package/dist/forgot-password/index.html +2 -2
- package/dist/index.html +2 -2
- package/dist/legal/index.html +2 -2
- package/dist/privacy/index.html +2 -2
- package/dist/signin/index.html +2 -2
- package/dist/signup/index.html +2 -2
- package/dist/sitemap.xml +0 -4
- package/dist/success/index.html +2 -2
- package/dist/terms/index.html +2 -2
- package/dist/tools/5-panel-screenshot-framework/index.html +2 -2
- package/dist/tools/agent-cli/index.html +2 -2
- package/dist/tools/app-review-aso/index.html +2 -2
- package/dist/tools/fastlane-screenshots/index.html +2 -2
- package/dist/tools/first-export/index.html +2 -2
- package/dist/tools/index.html +2 -2
- package/dist/tools/screenshot-workload-calculator/index.html +2 -2
- package/dist/tools/store-assets-pipeline/index.html +2 -2
- package/package.json +3 -3
- package/templates/agent/agent-prompt.txt +8 -0
- package/dist/app/assets/AgentCli-8e28laT4.js.map +0 -1
- package/dist/app/assets/App-DU0xew0e.js +0 -13
- package/dist/app/assets/App-DU0xew0e.js.map +0 -1
- package/dist/app/assets/CliPreflightCard-CxYyogdF.js +0 -2
- package/dist/app/assets/CopyButton-CGfuSJtU.js +0 -2
- package/dist/app/assets/CopyButton-CGfuSJtU.js.map +0 -1
- package/dist/app/assets/Landing-DAIP71DD.js +0 -2
- package/dist/app/assets/Landing-DAIP71DD.js.map +0 -1
- package/dist/app/assets/Pricing-BQwtFVbj.js +0 -2
- package/dist/app/assets/Pricing-BQwtFVbj.js.map +0 -1
- package/dist/app/assets/SiteHeader-Dj3gDOnR.js +0 -2
- package/dist/app/assets/SiteHeader-Dj3gDOnR.js.map +0 -1
- package/dist/app/assets/check-BWCiUZ-C.js +0 -2
- package/dist/app/assets/check-BWCiUZ-C.js.map +0 -1
- package/dist/app/assets/chevron-down-DbSAem1L.js +0 -2
- package/dist/app/assets/circle-check-CeakjiXC.js +0 -2
- package/dist/app/assets/circle-check-CeakjiXC.js.map +0 -1
- package/dist/app/assets/hero/cli-build-tree-15s.mp4 +0 -0
- package/dist/app/assets/hero/cli-build-tree-15s.webm +0 -0
- package/dist/app/assets/hero/cli-build-tree-25s.mp4 +0 -0
- package/dist/app/assets/hero/cli-build-tree-25s.webm +0 -0
- package/dist/app/assets/hero/cli-build-tree-poster.png +0 -0
- package/dist/app/assets/hero/demo.gif +0 -0
- package/dist/app/assets/index-B8Y8Y-Mi.js.map +0 -1
- package/dist/assets/AgentCli-8e28laT4.js.map +0 -1
- package/dist/assets/App-DU0xew0e.js +0 -13
- package/dist/assets/App-DU0xew0e.js.map +0 -1
- package/dist/assets/CliPreflightCard-CxYyogdF.js +0 -2
- package/dist/assets/CopyButton-CGfuSJtU.js +0 -2
- package/dist/assets/CopyButton-CGfuSJtU.js.map +0 -1
- package/dist/assets/Landing-DAIP71DD.js +0 -2
- package/dist/assets/Landing-DAIP71DD.js.map +0 -1
- package/dist/assets/Pricing-BQwtFVbj.js +0 -2
- package/dist/assets/Pricing-BQwtFVbj.js.map +0 -1
- package/dist/assets/SiteHeader-Dj3gDOnR.js +0 -2
- package/dist/assets/SiteHeader-Dj3gDOnR.js.map +0 -1
- package/dist/assets/check-BWCiUZ-C.js +0 -2
- package/dist/assets/check-BWCiUZ-C.js.map +0 -1
- package/dist/assets/chevron-down-DbSAem1L.js +0 -2
- package/dist/assets/circle-check-CeakjiXC.js +0 -2
- package/dist/assets/circle-check-CeakjiXC.js.map +0 -1
- package/dist/assets/hero/cli-build-tree-15s.mp4 +0 -0
- package/dist/assets/hero/cli-build-tree-15s.webm +0 -0
- package/dist/assets/hero/cli-build-tree-25s.mp4 +0 -0
- package/dist/assets/hero/cli-build-tree-25s.webm +0 -0
- package/dist/assets/hero/cli-build-tree-poster.png +0 -0
- package/dist/assets/hero/demo.gif +0 -0
- package/dist/assets/index-B8Y8Y-Mi.js.map +0 -1
- package/dist/pricing/index.html +0 -33
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{u as w,r as j,t as o,j as e,b as l}from"./index-
|
|
1
|
+
import{u as w,r as j,t as o,j as e,b as l}from"./index-Bqv2NztY.js";import{A as a,a as h,C as k}from"./CopyButton-CmVmSaYn.js";import{C as N}from"./CliPreflightCard-D7utpFux.js";import{a as P,S as A}from"./LanguageSwitcher-BD9N-dla.js";import{S}from"./StickyMobileCta-C_x2pUIF.js";import{S as L}from"./SiteHeader-DxsqNPnt.js";import{S as p}from"./shield-check-CngdN3zn.js";import{L as f}from"./layout-grid-CpGXUPMR.js";import{C as b}from"./crop-DOMVp18h.js";import{C as u}from"./clipboard-copy-DCJioqIc.js";const T=i=>(i||"").split("-")[0]==="ja"?"ja":"en",y={en:{badge:"App Review + ASO quick check",title:"App Review + ASO Quick Check",subtitle:"A short checklist to sanity-check App Store / Google Play screenshots before upload: clarity, policy-safe claims, and a consistent story flow.",heroCliTitle:"CLI quickstart (2 steps)",heroCliNote:"wizard → build (raw mode, no Playwright).",heroCliSummary:"Outputs: fastlane/ + reproducible ZIP (local/CI).",heroCliCopyLabel:"Copy all commands",heroCliTemplatesLabel:"Starter templates",heroCliConfigLabel:"config.yml",heroCliCsvLabel:"copy.csv",heroCliCmd:["npx --yes shipscreens wizard","npx --yes shipscreens build --mode raw --zip --out out/agent"].join(`
|
|
2
2
|
`),proUnlockTitle:"Unlock Pro (CLI)",proUnlockBody:"Remove the watermark and unlock full matrix batch exports via CLI auth:",proUnlockCmd:"npx --yes shipscreens auth login",proUnlockNote:"Completes a one-time browser sign-in; then rerun build with --require-pro.",overviewTitle:"What this covers",overviewBullets:["First screenshot clarity (outcome + target user)","App Review sanity (current-version UI, no misleading claims)","Play feature graphic safe area + size buckets"],checklistsTitle:"Checks",checklists:[{key:"review",icon:p,title:"App Review sanity",body:"Avoid rejections caused by mismatched or outdated screenshots.",bullets:["Screenshots match the current app version UI.","Avoid showing unreleased or removed features.","Keep claims verifiable inside the product.","App Store Connect screenshots are version-scoped."]},{key:"aso",icon:f,title:"ASO clarity",body:"Make the first screenshot explain the outcome fast.",bullets:["Use a 5-panel flow: Hook → Problem → Proof → How → CTA.","One idea per panel; keep captions short.","Keep UI readable on small devices."]},{key:"play-safe",icon:b,title:"Play feature graphic safe area",body:"Avoid hidden crops in Play previews.",bullets:["Keep text/logos inside the central ~80–86% area.","Avoid edge-aligned UI that can get cropped.","Preview in Play Console before final upload."]}],assetsTitle:"Related assets",assetsCta:"Open tool",assets:[{key:"five_panel",title:"5-panel Screenshot Framework",desc:"Structure the story flow for the first five screenshots.",href:"/tools/5-panel-screenshot-framework/"},{key:"pipeline",title:"Store Assets Pipeline Kit",desc:"Capture checklist, size buckets, and Play safe areas.",href:"/tools/store-assets-pipeline/"},{key:"workload",title:"Screenshot Workload Calculator",desc:"Quantify device × locale explosion before you commit.",href:"/tools/screenshot-workload-calculator/"}],nextTitle:"Next: run a reproducible export",nextBody:"Use the CLI quickstart or open a sample project to generate Fastlane-ready outputs.",nextCtaPrimary:"Run CLI first export",nextCtaSecondary:"Open sample project",note:"Upload happens in App Store Connect / Play Console. Translation is BYO; ShipScreens focuses on reproducible exports."},ja:{badge:"App Review / ASO クイックチェック",title:"App Review / ASO クイックチェック",subtitle:"提出前にスクショをサッと整えるためのミニチェックリスト。伝わり方、制約、ストーリーの流れを確認します。",heroCliTitle:"CLIクイックスタート(2ステップ)",heroCliNote:"wizard → build(raw / Playwright不要)。",heroCliSummary:"出力: fastlane/ + 再現性ZIP(ローカル/CI)。",heroCliCopyLabel:"コマンドをすべてコピー",heroCliTemplatesLabel:"スターター雛形",heroCliConfigLabel:"config.yml",heroCliCsvLabel:"copy.csv",heroCliCmd:["npx --yes shipscreens wizard","npx --yes shipscreens build --mode raw --zip --out out/agent"].join(`
|
|
3
|
-
`),proUnlockTitle:"Proを解除(CLI)",proUnlockBody:"透かし解除&フル一括(端末×言語)のために、まずはCLI認証を実行:",proUnlockCmd:"npx --yes shipscreens auth login",proUnlockNote:"初回のみブラウザでサインインします。以後は --require-pro で再実行。",overviewTitle:"このチェックで見ること",overviewBullets:["1枚目の伝わり方(成果 + 誰向けか)","App Reviewの制約(現行UI、誤解を招く表現の回避)","Playの安全域 + サイズバケット"],checklistsTitle:"チェック項目",checklists:[{key:"review",icon:p,title:"App Review 影響点",body:"審査落ちや差し戻しの原因を先に潰します。",bullets:["スクショは現行バージョンのUIと一致。","未実装/削除済みの機能は出さない。","主張はプロダクト内で検証できる範囲に。","ASCのスクショはバージョン単位で管理。"]},{key:"aso",icon:f,title:"ASOの伝達性",body:"1枚目で成果が伝わる構成に。",bullets:["5枚構成(Hook→Problem→Proof→How→CTA)。","1枚1メッセージ、キャプションは短く。","小さな端末でも読めるUIサイズ。"]},{key:"play-safe",icon:b,title:"Play feature graphic 安全域",body:"プレビューの隠れクロップを回避。",bullets:["文字/ロゴは中央 80〜86% に収める。","端に寄せすぎない(切れる)。","Play Consoleで最終プレビュー。"]}],assetsTitle:"関連ツール",assetsCta:"ツールを開く",assets:[{key:"five_panel",title:"5枚構成 スクショフレームワーク",desc:"5枚のストーリー構成を固定するテンプレ。",href:"/tools/5-panel-screenshot-framework/"},{key:"pipeline",title:"ストア素材パイプラインキット",desc:"素材取り/サイズバケット/安全域のチェック。",href:"/tools/store-assets-pipeline/"},{key:"workload",title:"スクショ作業量 計算ツール",desc:"端末×言語の爆発を先に把握。",href:"/tools/screenshot-workload-calculator/"}],nextTitle:"次: 再現性のある出力へ",nextBody:"CLI最短かサンプルから始めて、Fastlane-readyを出力します。",nextCtaPrimary:"CLIで初回エクスポート",nextCtaSecondary:"サンプルを開く",note:"アップロードは App Store Connect / Play Console 側で行います。翻訳は外部でOK。"}},D=()=>{const{i18n:i,t:d}=w(),g=T(i.resolvedLanguage||i.language),s=y[g]||y.en,C="/app/?sample=5panel&entry_source=app_review_aso_open_app_header",r="/tools/agent-cli/",c="/app/?sample=5panel&entry_source=app_review_aso_open_sample_project",v="/downloads/shipscreens-agent-cli-config.yml",_="/downloads/shipscreens-agent-cli-copy.csv",x=d("common.copy",{defaultValue:"Copy"});return N("titles.appReviewAso",{defaultValue:s.title}),j.useEffect(()=>{o("tool_view",{tool:"app_review_aso"})},[]),e.jsxs("div",{className:"min-h-screen bg-gradient-to-b from-slate-950 via-slate-900 to-slate-950 text-white",children:[e.jsx(P,{}),e.jsx(S,{variant:"dark",active:"tools",openAppHref:C,onToolsClick:t=>l(t,"tool_cta_click",{tool:"app_review_aso",cta:"open_tools_header"}),onPricingClick:t=>l(t,"tool_cta_click",{tool:"app_review_aso",cta:"pricing_header"}),onOpenAppClick:t=>l(t,"tool_cta_click",{tool:"app_review_aso",cta:"open_app_header"}),primaryCta:{href:r,label:e.jsxs("span",{className:"inline-flex items-center gap-2",children:[s.nextCtaPrimary," ",e.jsx(a,{size:16})]}),onClick:t=>l(t,"tool_cta_click",{tool:"app_review_aso",cta:"open_agent_cli_header"})}}),e.jsxs("main",{className:"max-w-5xl mx-auto px-6 pb-24 space-y-10",children:[e.jsxs("section",{className:"max-w-3xl mx-auto text-center space-y-4",children:[e.jsxs("div",{className:"inline-flex items-center gap-2 px-3 py-1.5 rounded-full border border-slate-800 bg-slate-900/60 text-slate-200 text-xs font-semibold",children:[e.jsx(p,{size:14}),s.badge]}),e.jsx("h1",{className:"text-3xl md:text-5xl font-black leading-tight",children:s.title}),e.jsx("p",{className:"text-slate-300 text-lg leading-relaxed",children:s.subtitle}),e.jsxs("div",{className:"flex flex-col sm:flex-row gap-3 justify-center pt-2",children:[e.jsxs("a",{href:r,onClick:t=>l(t,"tool_cta_click",{tool:"app_review_aso",cta:"open_agent_cli_hero"}),className:"inline-flex items-center justify-center gap-2 px-5 py-3 rounded-xl bg-blue-500 text-white font-bold hover:bg-blue-600 transition",children:[s.nextCtaPrimary," ",e.jsx(a,{size:16})]}),e.jsxs("a",{href:c,onClick:t=>l(t,"tool_cta_click",{tool:"app_review_aso",cta:"open_sample_project_hero"}),className:"inline-flex items-center justify-center gap-2 px-5 py-3 rounded-xl border border-slate-700 bg-slate-950 text-slate-200 font-bold hover:bg-slate-900 transition",children:[s.nextCtaSecondary," ",e.jsx(a,{size:16})]})]}),e.jsxs("div",{className:"max-w-xl mx-auto text-left bg-slate-900/60 border border-slate-800 rounded-2xl p-4 space-y-2",children:[e.jsx("div",{className:"text-[11px] uppercase tracking-[0.2em] text-slate-500 font-semibold",children:s.heroCliTitle}),e.jsx("p",{className:"text-xs text-slate-400",children:s.heroCliNote}),e.jsx("p",{className:"text-xs text-slate-500",children:s.heroCliSummary}),e.jsx("div",{className:"rounded-xl border border-slate-800 bg-slate-950 p-3",children:e.jsx("pre",{className:"text-xs text-slate-200 whitespace-pre-wrap",children:s.heroCliCmd})}),e.jsxs("div",{className:"flex flex-col sm:flex-row gap-2",children:[e.jsx(h,{value:s.heroCliCmd,onCopied:()=>o("tool_cta_click",{tool:"app_review_aso",cta:"copy_cli_hero"}),className:"inline-flex items-center justify-center gap-2 px-3 py-2 rounded-lg border border-slate-700 bg-slate-950 text-slate-200 hover:bg-slate-900 transition text-xs font-semibold",children:({copyLabel:t,copyState:n})=>e.jsxs(e.Fragment,{children:[e.jsx(u,{size:14}),n==="idle"?s.heroCliCopyLabel:t||x]})}),e.jsxs("a",{href:r,onClick:t=>l(t,"tool_cta_click",{tool:"app_review_aso",cta:"open_agent_cli_hero"}),className:"inline-flex items-center justify-center gap-2 px-3 py-2 rounded-lg border border-slate-700 bg-slate-950 text-slate-200 hover:bg-slate-900 transition text-xs font-semibold",children:[s.nextCtaPrimary," ",e.jsx(a,{size:14})]})]}),e.jsxs("div",{className:"pt-1 space-y-2",children:[e.jsx("div",{className:"text-[10px] uppercase tracking-[0.2em] text-slate-500 font-semibold",children:s.heroCliTemplatesLabel}),e.jsxs("div",{className:"flex flex-wrap gap-2",children:[e.jsx("a",{href:v,download:!0,onClick:()=>o("tool_download",{tool:"app_review_aso",asset:"config_template"}),className:"inline-flex items-center justify-center gap-2 px-2.5 py-1.5 rounded-md border border-slate-700 bg-slate-950 text-[11px] text-slate-200 hover:bg-slate-900 transition",children:s.heroCliConfigLabel}),e.jsx("a",{href:_,download:!0,onClick:()=>o("tool_download",{tool:"app_review_aso",asset:"copy_template"}),className:"inline-flex items-center justify-center gap-2 px-2.5 py-1.5 rounded-md border border-slate-700 bg-slate-950 text-[11px] text-slate-200 hover:bg-slate-900 transition",children:s.heroCliCsvLabel})]})]})]}),e.jsx(k,{compact:!0,href:"/tools/agent-cli/#preflight",onClick:t=>l(t,"tool_cta_click",{tool:"app_review_aso",cta:"open_cli_preflight"}),className:"max-w-xl mx-auto"}),e.jsx("section",{className:"max-w-xl mx-auto",children:e.jsxs("div",{className:"bg-slate-900/60 border border-slate-800 rounded-2xl p-5 space-y-3",children:[e.jsxs("div",{className:"flex items-center justify-between gap-3",children:[e.jsx("div",{className:"text-sm font-bold text-white",children:s.proUnlockTitle}),e.jsx("span",{className:"text-[10px] font-semibold tracking-[0.2em] text-amber-200 bg-amber-500/10 border border-amber-400/30 px-2 py-1 rounded-full",children:"PRO"})]}),s.proUnlockBody&&e.jsx("p",{className:"text-sm text-slate-300",children:s.proUnlockBody}),e.jsx("div",{className:"rounded-xl border border-slate-800 bg-slate-950/80 p-4",children:e.jsx("pre",{className:"text-xs text-slate-200 whitespace-pre-wrap",children:s.proUnlockCmd})}),e.jsx(h,{value:s.proUnlockCmd,onCopied:()=>o("tool_cta_click",{tool:"app_review_aso",cta:"copy_cli_pro_unlock"}),className:"inline-flex items-center justify-center gap-2 px-4 py-2 rounded-lg border border-slate-700 bg-slate-950 text-slate-200 hover:bg-slate-900 transition text-sm font-semibold",children:({copyLabel:t})=>e.jsxs(e.Fragment,{children:[e.jsx(u,{size:14}),t||x]})}),s.proUnlockNote&&e.jsx("div",{className:"text-xs text-slate-500",children:s.proUnlockNote})]})})]}),e.jsxs("section",{className:"space-y-4",children:[e.jsx("h2",{className:"text-lg font-bold text-white text-center",children:s.overviewTitle}),e.jsx("ul",{className:"max-w-3xl mx-auto space-y-2 text-sm text-slate-300",children:s.overviewBullets.map(t=>e.jsxs("li",{className:"flex items-center gap-2",children:[e.jsx(L,{size:16,className:"text-emerald-400"}),t]},t))})]}),e.jsxs("section",{className:"space-y-4",children:[e.jsx("h2",{className:"text-lg font-bold text-white text-center",children:s.checklistsTitle}),e.jsx("div",{className:"grid md:grid-cols-3 gap-6",children:s.checklists.map(t=>{const n=t.icon;return e.jsxs("div",{className:"bg-slate-900/60 border border-slate-800 rounded-2xl p-6 space-y-4",children:[e.jsxs("div",{className:"flex items-center gap-3",children:[e.jsx("div",{className:"w-10 h-10 rounded-xl border border-slate-800 bg-slate-950 flex items-center justify-center",children:e.jsx(n,{size:18,className:"text-slate-200"})}),e.jsx("div",{className:"text-lg font-bold text-white",children:t.title})]}),e.jsx("p",{className:"text-sm text-slate-300 leading-relaxed",children:t.body}),e.jsx("ul",{className:"text-xs text-slate-400 list-disc pl-4 space-y-1",children:t.bullets.map(m=>e.jsx("li",{children:m},m))})]},t.key)})}),e.jsx("div",{className:"text-xs text-slate-500 text-center",children:s.note})]}),e.jsxs("section",{className:"space-y-4",children:[e.jsx("h2",{className:"text-lg font-bold text-white text-center",children:s.assetsTitle}),e.jsx("div",{className:"grid md:grid-cols-3 gap-6",children:s.assets.map(t=>e.jsxs("a",{href:t.href,onClick:()=>o("tool_cta_click",{tool:"app_review_aso",cta:`open_${t.key}`}),className:"bg-slate-900/60 border border-slate-800 rounded-2xl p-6 space-y-3 hover:border-slate-700 transition",children:[e.jsx("div",{className:"text-lg font-bold text-white",children:t.title}),e.jsx("div",{className:"text-sm text-slate-300",children:t.desc}),e.jsxs("div",{className:"text-xs text-blue-200 flex items-center gap-2",children:[s.assetsCta," ",e.jsx(a,{size:14})]})]},t.key))})]}),e.jsxs("section",{className:"bg-slate-900/60 border border-slate-800 rounded-2xl p-6 flex flex-col md:flex-row items-start md:items-center justify-between gap-4",children:[e.jsxs("div",{className:"space-y-1",children:[e.jsx("div",{className:"text-sm font-bold text-white",children:s.nextTitle}),e.jsx("div",{className:"text-sm text-slate-300",children:s.nextBody})]}),e.jsxs("div",{className:"flex flex-col sm:flex-row gap-3 w-full md:w-auto",children:[e.jsxs("a",{href:r,onClick:t=>l(t,"tool_cta_click",{tool:"app_review_aso",cta:"open_agent_cli_body"}),className:"inline-flex items-center justify-center gap-2 px-5 py-3 rounded-xl bg-white text-slate-900 font-bold hover:scale-[1.02] transition w-full md:w-auto",children:[s.nextCtaPrimary," ",e.jsx(a,{size:16})]}),e.jsxs("a",{href:c,onClick:t=>l(t,"tool_cta_click",{tool:"app_review_aso",cta:"open_sample_project_footer"}),className:"inline-flex items-center justify-center gap-2 px-5 py-3 rounded-xl border border-slate-700 bg-slate-950 text-slate-200 hover:bg-slate-900 transition w-full md:w-auto",children:[s.nextCtaSecondary," ",e.jsx(a,{size:16})]})]})]})]}),e.jsx(A,{primary:{label:s.nextCtaPrimary,href:r,onClick:t=>l(t,"tool_cta_click",{tool:"app_review_aso",cta:"sticky_primary"})},secondary:{label:s.nextCtaSecondary,href:c,onClick:t=>l(t,"tool_cta_click",{tool:"app_review_aso",cta:"sticky_secondary"})}})]})};export{D as default};
|
|
4
|
-
//# sourceMappingURL=AppReviewAso-
|
|
3
|
+
`),proUnlockTitle:"Proを解除(CLI)",proUnlockBody:"透かし解除&フル一括(端末×言語)のために、まずはCLI認証を実行:",proUnlockCmd:"npx --yes shipscreens auth login",proUnlockNote:"初回のみブラウザでサインインします。以後は --require-pro で再実行。",overviewTitle:"このチェックで見ること",overviewBullets:["1枚目の伝わり方(成果 + 誰向けか)","App Reviewの制約(現行UI、誤解を招く表現の回避)","Playの安全域 + サイズバケット"],checklistsTitle:"チェック項目",checklists:[{key:"review",icon:p,title:"App Review 影響点",body:"審査落ちや差し戻しの原因を先に潰します。",bullets:["スクショは現行バージョンのUIと一致。","未実装/削除済みの機能は出さない。","主張はプロダクト内で検証できる範囲に。","ASCのスクショはバージョン単位で管理。"]},{key:"aso",icon:f,title:"ASOの伝達性",body:"1枚目で成果が伝わる構成に。",bullets:["5枚構成(Hook→Problem→Proof→How→CTA)。","1枚1メッセージ、キャプションは短く。","小さな端末でも読めるUIサイズ。"]},{key:"play-safe",icon:b,title:"Play feature graphic 安全域",body:"プレビューの隠れクロップを回避。",bullets:["文字/ロゴは中央 80〜86% に収める。","端に寄せすぎない(切れる)。","Play Consoleで最終プレビュー。"]}],assetsTitle:"関連ツール",assetsCta:"ツールを開く",assets:[{key:"five_panel",title:"5枚構成 スクショフレームワーク",desc:"5枚のストーリー構成を固定するテンプレ。",href:"/tools/5-panel-screenshot-framework/"},{key:"pipeline",title:"ストア素材パイプラインキット",desc:"素材取り/サイズバケット/安全域のチェック。",href:"/tools/store-assets-pipeline/"},{key:"workload",title:"スクショ作業量 計算ツール",desc:"端末×言語の爆発を先に把握。",href:"/tools/screenshot-workload-calculator/"}],nextTitle:"次: 再現性のある出力へ",nextBody:"CLI最短かサンプルから始めて、Fastlane-readyを出力します。",nextCtaPrimary:"CLIで初回エクスポート",nextCtaSecondary:"サンプルを開く",note:"アップロードは App Store Connect / Play Console 側で行います。翻訳は外部でOK。"}},K=()=>{const{i18n:i,t:d}=w(),g=T(i.resolvedLanguage||i.language),s=y[g]||y.en,C="/app/?sample=5panel&entry_source=app_review_aso_open_app_header",r="/tools/agent-cli/",c="/app/?sample=5panel&entry_source=app_review_aso_open_sample_project",v="/downloads/shipscreens-agent-cli-config.yml",_="/downloads/shipscreens-agent-cli-copy.csv",x=d("common.copy",{defaultValue:"Copy"});return P("titles.appReviewAso",{defaultValue:s.title}),j.useEffect(()=>{o("tool_view",{tool:"app_review_aso"})},[]),e.jsxs("div",{className:"min-h-screen bg-gradient-to-b from-slate-950 via-slate-900 to-slate-950 text-white",children:[e.jsx(A,{}),e.jsx(L,{variant:"dark",active:"tools",openAppHref:C,onToolsClick:t=>l(t,"tool_cta_click",{tool:"app_review_aso",cta:"open_tools_header"}),onPricingClick:t=>l(t,"tool_cta_click",{tool:"app_review_aso",cta:"pricing_header"}),onOpenAppClick:t=>l(t,"tool_cta_click",{tool:"app_review_aso",cta:"open_app_header"}),primaryCta:{href:r,label:e.jsxs("span",{className:"inline-flex items-center gap-2",children:[s.nextCtaPrimary," ",e.jsx(a,{size:16})]}),onClick:t=>l(t,"tool_cta_click",{tool:"app_review_aso",cta:"open_agent_cli_header"})}}),e.jsxs("main",{className:"max-w-5xl mx-auto px-6 pb-24 space-y-10",children:[e.jsxs("section",{className:"max-w-3xl mx-auto text-center space-y-4",children:[e.jsxs("div",{className:"inline-flex items-center gap-2 px-3 py-1.5 rounded-full border border-slate-800 bg-slate-900/60 text-slate-200 text-xs font-semibold",children:[e.jsx(p,{size:14}),s.badge]}),e.jsx("h1",{className:"text-3xl md:text-5xl font-black leading-tight",children:s.title}),e.jsx("p",{className:"text-slate-300 text-lg leading-relaxed",children:s.subtitle}),e.jsxs("div",{className:"flex flex-col sm:flex-row gap-3 justify-center pt-2",children:[e.jsxs("a",{href:r,onClick:t=>l(t,"tool_cta_click",{tool:"app_review_aso",cta:"open_agent_cli_hero"}),className:"inline-flex items-center justify-center gap-2 px-5 py-3 rounded-xl bg-blue-500 text-white font-bold hover:bg-blue-600 transition",children:[s.nextCtaPrimary," ",e.jsx(a,{size:16})]}),e.jsxs("a",{href:c,onClick:t=>l(t,"tool_cta_click",{tool:"app_review_aso",cta:"open_sample_project_hero"}),className:"inline-flex items-center justify-center gap-2 px-5 py-3 rounded-xl border border-slate-700 bg-slate-950 text-slate-200 font-bold hover:bg-slate-900 transition",children:[s.nextCtaSecondary," ",e.jsx(a,{size:16})]})]}),e.jsxs("div",{className:"max-w-xl mx-auto text-left bg-slate-900/60 border border-slate-800 rounded-2xl p-4 space-y-2",children:[e.jsx("div",{className:"text-[11px] uppercase tracking-[0.2em] text-slate-500 font-semibold",children:s.heroCliTitle}),e.jsx("p",{className:"text-xs text-slate-400",children:s.heroCliNote}),e.jsx("p",{className:"text-xs text-slate-500",children:s.heroCliSummary}),e.jsx("div",{className:"rounded-xl border border-slate-800 bg-slate-950 p-3",children:e.jsx("pre",{className:"text-xs text-slate-200 whitespace-pre-wrap",children:s.heroCliCmd})}),e.jsxs("div",{className:"flex flex-col sm:flex-row gap-2",children:[e.jsx(h,{value:s.heroCliCmd,onCopied:()=>o("tool_cta_click",{tool:"app_review_aso",cta:"copy_cli_hero"}),className:"inline-flex items-center justify-center gap-2 px-3 py-2 rounded-lg border border-slate-700 bg-slate-950 text-slate-200 hover:bg-slate-900 transition text-xs font-semibold",children:({copyLabel:t,copyState:n})=>e.jsxs(e.Fragment,{children:[e.jsx(u,{size:14}),n==="idle"?s.heroCliCopyLabel:t||x]})}),e.jsxs("a",{href:r,onClick:t=>l(t,"tool_cta_click",{tool:"app_review_aso",cta:"open_agent_cli_hero"}),className:"inline-flex items-center justify-center gap-2 px-3 py-2 rounded-lg border border-slate-700 bg-slate-950 text-slate-200 hover:bg-slate-900 transition text-xs font-semibold",children:[s.nextCtaPrimary," ",e.jsx(a,{size:14})]})]}),e.jsxs("div",{className:"pt-1 space-y-2",children:[e.jsx("div",{className:"text-[10px] uppercase tracking-[0.2em] text-slate-500 font-semibold",children:s.heroCliTemplatesLabel}),e.jsxs("div",{className:"flex flex-wrap gap-2",children:[e.jsx("a",{href:v,download:!0,onClick:()=>o("tool_download",{tool:"app_review_aso",asset:"config_template"}),className:"inline-flex items-center justify-center gap-2 px-2.5 py-1.5 rounded-md border border-slate-700 bg-slate-950 text-[11px] text-slate-200 hover:bg-slate-900 transition",children:s.heroCliConfigLabel}),e.jsx("a",{href:_,download:!0,onClick:()=>o("tool_download",{tool:"app_review_aso",asset:"copy_template"}),className:"inline-flex items-center justify-center gap-2 px-2.5 py-1.5 rounded-md border border-slate-700 bg-slate-950 text-[11px] text-slate-200 hover:bg-slate-900 transition",children:s.heroCliCsvLabel})]})]})]}),e.jsx(N,{compact:!0,href:"/tools/agent-cli/#preflight",onClick:t=>l(t,"tool_cta_click",{tool:"app_review_aso",cta:"open_cli_preflight"}),className:"max-w-xl mx-auto"}),e.jsx("section",{className:"max-w-xl mx-auto",children:e.jsxs("div",{className:"bg-slate-900/60 border border-slate-800 rounded-2xl p-5 space-y-3",children:[e.jsxs("div",{className:"flex items-center justify-between gap-3",children:[e.jsx("div",{className:"text-sm font-bold text-white",children:s.proUnlockTitle}),e.jsx("span",{className:"text-[10px] font-semibold tracking-[0.2em] text-amber-200 bg-amber-500/10 border border-amber-400/30 px-2 py-1 rounded-full",children:"PRO"})]}),s.proUnlockBody&&e.jsx("p",{className:"text-sm text-slate-300",children:s.proUnlockBody}),e.jsx("div",{className:"rounded-xl border border-slate-800 bg-slate-950/80 p-4",children:e.jsx("pre",{className:"text-xs text-slate-200 whitespace-pre-wrap",children:s.proUnlockCmd})}),e.jsx(h,{value:s.proUnlockCmd,onCopied:()=>o("tool_cta_click",{tool:"app_review_aso",cta:"copy_cli_pro_unlock"}),className:"inline-flex items-center justify-center gap-2 px-4 py-2 rounded-lg border border-slate-700 bg-slate-950 text-slate-200 hover:bg-slate-900 transition text-sm font-semibold",children:({copyLabel:t})=>e.jsxs(e.Fragment,{children:[e.jsx(u,{size:14}),t||x]})}),s.proUnlockNote&&e.jsx("div",{className:"text-xs text-slate-500",children:s.proUnlockNote})]})})]}),e.jsxs("section",{className:"space-y-4",children:[e.jsx("h2",{className:"text-lg font-bold text-white text-center",children:s.overviewTitle}),e.jsx("ul",{className:"max-w-3xl mx-auto space-y-2 text-sm text-slate-300",children:s.overviewBullets.map(t=>e.jsxs("li",{className:"flex items-center gap-2",children:[e.jsx(k,{size:16,className:"text-emerald-400"}),t]},t))})]}),e.jsxs("section",{className:"space-y-4",children:[e.jsx("h2",{className:"text-lg font-bold text-white text-center",children:s.checklistsTitle}),e.jsx("div",{className:"grid md:grid-cols-3 gap-6",children:s.checklists.map(t=>{const n=t.icon;return e.jsxs("div",{className:"bg-slate-900/60 border border-slate-800 rounded-2xl p-6 space-y-4",children:[e.jsxs("div",{className:"flex items-center gap-3",children:[e.jsx("div",{className:"w-10 h-10 rounded-xl border border-slate-800 bg-slate-950 flex items-center justify-center",children:e.jsx(n,{size:18,className:"text-slate-200"})}),e.jsx("div",{className:"text-lg font-bold text-white",children:t.title})]}),e.jsx("p",{className:"text-sm text-slate-300 leading-relaxed",children:t.body}),e.jsx("ul",{className:"text-xs text-slate-400 list-disc pl-4 space-y-1",children:t.bullets.map(m=>e.jsx("li",{children:m},m))})]},t.key)})}),e.jsx("div",{className:"text-xs text-slate-500 text-center",children:s.note})]}),e.jsxs("section",{className:"space-y-4",children:[e.jsx("h2",{className:"text-lg font-bold text-white text-center",children:s.assetsTitle}),e.jsx("div",{className:"grid md:grid-cols-3 gap-6",children:s.assets.map(t=>e.jsxs("a",{href:t.href,onClick:()=>o("tool_cta_click",{tool:"app_review_aso",cta:`open_${t.key}`}),className:"bg-slate-900/60 border border-slate-800 rounded-2xl p-6 space-y-3 hover:border-slate-700 transition",children:[e.jsx("div",{className:"text-lg font-bold text-white",children:t.title}),e.jsx("div",{className:"text-sm text-slate-300",children:t.desc}),e.jsxs("div",{className:"text-xs text-blue-200 flex items-center gap-2",children:[s.assetsCta," ",e.jsx(a,{size:14})]})]},t.key))})]}),e.jsxs("section",{className:"bg-slate-900/60 border border-slate-800 rounded-2xl p-6 flex flex-col md:flex-row items-start md:items-center justify-between gap-4",children:[e.jsxs("div",{className:"space-y-1",children:[e.jsx("div",{className:"text-sm font-bold text-white",children:s.nextTitle}),e.jsx("div",{className:"text-sm text-slate-300",children:s.nextBody})]}),e.jsxs("div",{className:"flex flex-col sm:flex-row gap-3 w-full md:w-auto",children:[e.jsxs("a",{href:r,onClick:t=>l(t,"tool_cta_click",{tool:"app_review_aso",cta:"open_agent_cli_body"}),className:"inline-flex items-center justify-center gap-2 px-5 py-3 rounded-xl bg-white text-slate-900 font-bold hover:scale-[1.02] transition w-full md:w-auto",children:[s.nextCtaPrimary," ",e.jsx(a,{size:16})]}),e.jsxs("a",{href:c,onClick:t=>l(t,"tool_cta_click",{tool:"app_review_aso",cta:"open_sample_project_footer"}),className:"inline-flex items-center justify-center gap-2 px-5 py-3 rounded-xl border border-slate-700 bg-slate-950 text-slate-200 hover:bg-slate-900 transition w-full md:w-auto",children:[s.nextCtaSecondary," ",e.jsx(a,{size:16})]})]})]})]}),e.jsx(S,{primary:{label:s.nextCtaPrimary,href:r,onClick:t=>l(t,"tool_cta_click",{tool:"app_review_aso",cta:"sticky_primary"})},secondary:{label:s.nextCtaSecondary,href:c,onClick:t=>l(t,"tool_cta_click",{tool:"app_review_aso",cta:"sticky_secondary"})}})]})};export{K as default};
|
|
4
|
+
//# sourceMappingURL=AppReviewAso-BYfaP1Lu.js.map
|
package/dist/{assets/AppReviewAso-OLwc4Rw_.js.map → app/assets/AppReviewAso-BYfaP1Lu.js.map}
RENAMED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AppReviewAso-OLwc4Rw_.js","sources":["../../src/pages/AppReviewAso.jsx"],"sourcesContent":["import React, { useEffect } from 'react';\nimport { ArrowRight, CheckCircle2, ClipboardCopy, Crop, LayoutGrid, ShieldCheck } from 'lucide-react';\nimport { useTranslation } from 'react-i18next';\nimport CopyButton from '../components/CopyButton';\nimport CliPreflightCard from '../components/CliPreflightCard';\nimport StagingBadge from '../components/StagingBadge';\nimport StickyMobileCta from '../components/StickyMobileCta';\nimport SiteHeader from '../components/SiteHeader';\nimport usePageTitle from '../hooks/usePageTitle';\nimport { trackEvent, trackEventAndFollowLink } from '../lib/analytics';\n\nconst normalizeLang = (lang) => {\n const base = (lang || '').split('-')[0];\n return base === 'ja' ? 'ja' : 'en';\n};\n\nconst COPY = {\n en: {\n badge: 'App Review + ASO quick check',\n title: 'App Review + ASO Quick Check',\n subtitle:\n 'A short checklist to sanity-check App Store / Google Play screenshots before upload: clarity, policy-safe claims, and a consistent story flow.',\n heroCliTitle: 'CLI quickstart (2 steps)',\n heroCliNote: 'wizard → build (raw mode, no Playwright).',\n heroCliSummary: 'Outputs: fastlane/ + reproducible ZIP (local/CI).',\n heroCliCopyLabel: 'Copy all commands',\n heroCliTemplatesLabel: 'Starter templates',\n heroCliConfigLabel: 'config.yml',\n heroCliCsvLabel: 'copy.csv',\n heroCliCmd: [\n 'npx --yes shipscreens wizard',\n 'npx --yes shipscreens build --mode raw --zip --out out/agent',\n ].join('\\n'),\n proUnlockTitle: 'Unlock Pro (CLI)',\n proUnlockBody: 'Remove the watermark and unlock full matrix batch exports via CLI auth:',\n proUnlockCmd: 'npx --yes shipscreens auth login',\n proUnlockNote: 'Completes a one-time browser sign-in; then rerun build with --require-pro.',\n overviewTitle: 'What this covers',\n overviewBullets: [\n 'First screenshot clarity (outcome + target user)',\n 'App Review sanity (current-version UI, no misleading claims)',\n 'Play feature graphic safe area + size buckets',\n ],\n checklistsTitle: 'Checks',\n checklists: [\n {\n key: 'review',\n icon: ShieldCheck,\n title: 'App Review sanity',\n body: 'Avoid rejections caused by mismatched or outdated screenshots.',\n bullets: [\n 'Screenshots match the current app version UI.',\n 'Avoid showing unreleased or removed features.',\n 'Keep claims verifiable inside the product.',\n 'App Store Connect screenshots are version-scoped.',\n ],\n },\n {\n key: 'aso',\n icon: LayoutGrid,\n title: 'ASO clarity',\n body: 'Make the first screenshot explain the outcome fast.',\n bullets: [\n 'Use a 5-panel flow: Hook → Problem → Proof → How → CTA.',\n 'One idea per panel; keep captions short.',\n 'Keep UI readable on small devices.',\n ],\n },\n {\n key: 'play-safe',\n icon: Crop,\n title: 'Play feature graphic safe area',\n body: 'Avoid hidden crops in Play previews.',\n bullets: [\n 'Keep text/logos inside the central ~80–86% area.',\n 'Avoid edge-aligned UI that can get cropped.',\n 'Preview in Play Console before final upload.',\n ],\n },\n ],\n assetsTitle: 'Related assets',\n assetsCta: 'Open tool',\n assets: [\n {\n key: 'five_panel',\n title: '5-panel Screenshot Framework',\n desc: 'Structure the story flow for the first five screenshots.',\n href: '/tools/5-panel-screenshot-framework/',\n },\n {\n key: 'pipeline',\n title: 'Store Assets Pipeline Kit',\n desc: 'Capture checklist, size buckets, and Play safe areas.',\n href: '/tools/store-assets-pipeline/',\n },\n {\n key: 'workload',\n title: 'Screenshot Workload Calculator',\n desc: 'Quantify device × locale explosion before you commit.',\n href: '/tools/screenshot-workload-calculator/',\n },\n ],\n nextTitle: 'Next: run a reproducible export',\n nextBody: 'Use the CLI quickstart or open a sample project to generate Fastlane-ready outputs.',\n nextCtaPrimary: 'Run CLI first export',\n nextCtaSecondary: 'Open sample project',\n note: 'Upload happens in App Store Connect / Play Console. Translation is BYO; ShipScreens focuses on reproducible exports.',\n },\n ja: {\n badge: 'App Review / ASO クイックチェック',\n title: 'App Review / ASO クイックチェック',\n subtitle:\n '提出前にスクショをサッと整えるためのミニチェックリスト。伝わり方、制約、ストーリーの流れを確認します。',\n heroCliTitle: 'CLIクイックスタート(2ステップ)',\n heroCliNote: 'wizard → build(raw / Playwright不要)。',\n heroCliSummary: '出力: fastlane/ + 再現性ZIP(ローカル/CI)。',\n heroCliCopyLabel: 'コマンドをすべてコピー',\n heroCliTemplatesLabel: 'スターター雛形',\n heroCliConfigLabel: 'config.yml',\n heroCliCsvLabel: 'copy.csv',\n heroCliCmd: [\n 'npx --yes shipscreens wizard',\n 'npx --yes shipscreens build --mode raw --zip --out out/agent',\n ].join('\\n'),\n proUnlockTitle: 'Proを解除(CLI)',\n proUnlockBody: '透かし解除&フル一括(端末×言語)のために、まずはCLI認証を実行:',\n proUnlockCmd: 'npx --yes shipscreens auth login',\n proUnlockNote: '初回のみブラウザでサインインします。以後は --require-pro で再実行。',\n overviewTitle: 'このチェックで見ること',\n overviewBullets: [\n '1枚目の伝わり方(成果 + 誰向けか)',\n 'App Reviewの制約(現行UI、誤解を招く表現の回避)',\n 'Playの安全域 + サイズバケット',\n ],\n checklistsTitle: 'チェック項目',\n checklists: [\n {\n key: 'review',\n icon: ShieldCheck,\n title: 'App Review 影響点',\n body: '審査落ちや差し戻しの原因を先に潰します。',\n bullets: [\n 'スクショは現行バージョンのUIと一致。',\n '未実装/削除済みの機能は出さない。',\n '主張はプロダクト内で検証できる範囲に。',\n 'ASCのスクショはバージョン単位で管理。',\n ],\n },\n {\n key: 'aso',\n icon: LayoutGrid,\n title: 'ASOの伝達性',\n body: '1枚目で成果が伝わる構成に。',\n bullets: [\n '5枚構成(Hook→Problem→Proof→How→CTA)。',\n '1枚1メッセージ、キャプションは短く。',\n '小さな端末でも読めるUIサイズ。',\n ],\n },\n {\n key: 'play-safe',\n icon: Crop,\n title: 'Play feature graphic 安全域',\n body: 'プレビューの隠れクロップを回避。',\n bullets: [\n '文字/ロゴは中央 80〜86% に収める。',\n '端に寄せすぎない(切れる)。',\n 'Play Consoleで最終プレビュー。',\n ],\n },\n ],\n assetsTitle: '関連ツール',\n assetsCta: 'ツールを開く',\n assets: [\n {\n key: 'five_panel',\n title: '5枚構成 スクショフレームワーク',\n desc: '5枚のストーリー構成を固定するテンプレ。',\n href: '/tools/5-panel-screenshot-framework/',\n },\n {\n key: 'pipeline',\n title: 'ストア素材パイプラインキット',\n desc: '素材取り/サイズバケット/安全域のチェック。',\n href: '/tools/store-assets-pipeline/',\n },\n {\n key: 'workload',\n title: 'スクショ作業量 計算ツール',\n desc: '端末×言語の爆発を先に把握。',\n href: '/tools/screenshot-workload-calculator/',\n },\n ],\n nextTitle: '次: 再現性のある出力へ',\n nextBody: 'CLI最短かサンプルから始めて、Fastlane-readyを出力します。',\n nextCtaPrimary: 'CLIで初回エクスポート',\n nextCtaSecondary: 'サンプルを開く',\n note: 'アップロードは App Store Connect / Play Console 側で行います。翻訳は外部でOK。',\n },\n};\n\nconst AppReviewAso = () => {\n const { i18n, t } = useTranslation();\n const lang = normalizeLang(i18n.resolvedLanguage || i18n.language);\n const copy = COPY[lang] || COPY.en;\n\n const openAppHref = '/app/?sample=5panel&entry_source=app_review_aso_open_app_header';\n const agentCliHref = '/tools/agent-cli/';\n const sampleProjectHref = '/app/?sample=5panel&entry_source=app_review_aso_open_sample_project';\n const configDownloadHref = '/downloads/shipscreens-agent-cli-config.yml';\n const csvDownloadHref = '/downloads/shipscreens-agent-cli-copy.csv';\n const copyButtonLabel = t('common.copy', { defaultValue: 'Copy' });\n usePageTitle('titles.appReviewAso', { defaultValue: copy.title });\n\n useEffect(() => {\n trackEvent('tool_view', { tool: 'app_review_aso' });\n }, []);\n\n return (\n <div className=\"min-h-screen bg-gradient-to-b from-slate-950 via-slate-900 to-slate-950 text-white\">\n <StagingBadge />\n <SiteHeader\n variant=\"dark\"\n active=\"tools\"\n openAppHref={openAppHref}\n onToolsClick={(event) =>\n trackEventAndFollowLink(event, 'tool_cta_click', { tool: 'app_review_aso', cta: 'open_tools_header' })\n }\n onPricingClick={(event) =>\n trackEventAndFollowLink(event, 'tool_cta_click', { tool: 'app_review_aso', cta: 'pricing_header' })\n }\n onOpenAppClick={(event) =>\n trackEventAndFollowLink(event, 'tool_cta_click', { tool: 'app_review_aso', cta: 'open_app_header' })\n }\n primaryCta={{\n href: agentCliHref,\n label: (\n <span className=\"inline-flex items-center gap-2\">\n {copy.nextCtaPrimary} <ArrowRight size={16} />\n </span>\n ),\n onClick: (event) =>\n trackEventAndFollowLink(event, 'tool_cta_click', { tool: 'app_review_aso', cta: 'open_agent_cli_header' }),\n }}\n />\n\n <main className=\"max-w-5xl mx-auto px-6 pb-24 space-y-10\">\n <section className=\"max-w-3xl mx-auto text-center space-y-4\">\n <div className=\"inline-flex items-center gap-2 px-3 py-1.5 rounded-full border border-slate-800 bg-slate-900/60 text-slate-200 text-xs font-semibold\">\n <ShieldCheck size={14} />\n {copy.badge}\n </div>\n <h1 className=\"text-3xl md:text-5xl font-black leading-tight\">{copy.title}</h1>\n <p className=\"text-slate-300 text-lg leading-relaxed\">{copy.subtitle}</p>\n\n <div className=\"flex flex-col sm:flex-row gap-3 justify-center pt-2\">\n <a\n href={agentCliHref}\n onClick={(event) =>\n trackEventAndFollowLink(event, 'tool_cta_click', { tool: 'app_review_aso', cta: 'open_agent_cli_hero' })\n }\n className=\"inline-flex items-center justify-center gap-2 px-5 py-3 rounded-xl bg-blue-500 text-white font-bold hover:bg-blue-600 transition\"\n >\n {copy.nextCtaPrimary} <ArrowRight size={16} />\n </a>\n <a\n href={sampleProjectHref}\n onClick={(event) =>\n trackEventAndFollowLink(event, 'tool_cta_click', { tool: 'app_review_aso', cta: 'open_sample_project_hero' })\n }\n className=\"inline-flex items-center justify-center gap-2 px-5 py-3 rounded-xl border border-slate-700 bg-slate-950 text-slate-200 font-bold hover:bg-slate-900 transition\"\n >\n {copy.nextCtaSecondary} <ArrowRight size={16} />\n </a>\n </div>\n\n <div className=\"max-w-xl mx-auto text-left bg-slate-900/60 border border-slate-800 rounded-2xl p-4 space-y-2\">\n <div className=\"text-[11px] uppercase tracking-[0.2em] text-slate-500 font-semibold\">{copy.heroCliTitle}</div>\n <p className=\"text-xs text-slate-400\">{copy.heroCliNote}</p>\n <p className=\"text-xs text-slate-500\">{copy.heroCliSummary}</p>\n <div className=\"rounded-xl border border-slate-800 bg-slate-950 p-3\">\n <pre className=\"text-xs text-slate-200 whitespace-pre-wrap\">{copy.heroCliCmd}</pre>\n </div>\n <div className=\"flex flex-col sm:flex-row gap-2\">\n <CopyButton\n value={copy.heroCliCmd}\n onCopied={() => trackEvent('tool_cta_click', { tool: 'app_review_aso', cta: 'copy_cli_hero' })}\n className=\"inline-flex items-center justify-center gap-2 px-3 py-2 rounded-lg border border-slate-700 bg-slate-950 text-slate-200 hover:bg-slate-900 transition text-xs font-semibold\"\n >\n {({ copyLabel, copyState }) => (\n <>\n <ClipboardCopy size={14} />\n {copyState === 'idle' ? copy.heroCliCopyLabel : copyLabel || copyButtonLabel}\n </>\n )}\n </CopyButton>\n <a\n href={agentCliHref}\n onClick={(event) =>\n trackEventAndFollowLink(event, 'tool_cta_click', { tool: 'app_review_aso', cta: 'open_agent_cli_hero' })\n }\n className=\"inline-flex items-center justify-center gap-2 px-3 py-2 rounded-lg border border-slate-700 bg-slate-950 text-slate-200 hover:bg-slate-900 transition text-xs font-semibold\"\n >\n {copy.nextCtaPrimary} <ArrowRight size={14} />\n </a>\n </div>\n <div className=\"pt-1 space-y-2\">\n <div className=\"text-[10px] uppercase tracking-[0.2em] text-slate-500 font-semibold\">\n {copy.heroCliTemplatesLabel}\n </div>\n <div className=\"flex flex-wrap gap-2\">\n <a\n href={configDownloadHref}\n download\n onClick={() => trackEvent('tool_download', { tool: 'app_review_aso', asset: 'config_template' })}\n className=\"inline-flex items-center justify-center gap-2 px-2.5 py-1.5 rounded-md border border-slate-700 bg-slate-950 text-[11px] text-slate-200 hover:bg-slate-900 transition\"\n >\n {copy.heroCliConfigLabel}\n </a>\n <a\n href={csvDownloadHref}\n download\n onClick={() => trackEvent('tool_download', { tool: 'app_review_aso', asset: 'copy_template' })}\n className=\"inline-flex items-center justify-center gap-2 px-2.5 py-1.5 rounded-md border border-slate-700 bg-slate-950 text-[11px] text-slate-200 hover:bg-slate-900 transition\"\n >\n {copy.heroCliCsvLabel}\n </a>\n </div>\n </div>\n </div>\n\n <CliPreflightCard\n compact\n href=\"/tools/agent-cli/#preflight\"\n onClick={(event) =>\n trackEventAndFollowLink(event, 'tool_cta_click', { tool: 'app_review_aso', cta: 'open_cli_preflight' })\n }\n className=\"max-w-xl mx-auto\"\n />\n\n <section className=\"max-w-xl mx-auto\">\n <div className=\"bg-slate-900/60 border border-slate-800 rounded-2xl p-5 space-y-3\">\n <div className=\"flex items-center justify-between gap-3\">\n <div className=\"text-sm font-bold text-white\">{copy.proUnlockTitle}</div>\n <span className=\"text-[10px] font-semibold tracking-[0.2em] text-amber-200 bg-amber-500/10 border border-amber-400/30 px-2 py-1 rounded-full\">\n PRO\n </span>\n </div>\n {copy.proUnlockBody && <p className=\"text-sm text-slate-300\">{copy.proUnlockBody}</p>}\n <div className=\"rounded-xl border border-slate-800 bg-slate-950/80 p-4\">\n <pre className=\"text-xs text-slate-200 whitespace-pre-wrap\">{copy.proUnlockCmd}</pre>\n </div>\n <CopyButton\n value={copy.proUnlockCmd}\n onCopied={() => trackEvent('tool_cta_click', { tool: 'app_review_aso', cta: 'copy_cli_pro_unlock' })}\n className=\"inline-flex items-center justify-center gap-2 px-4 py-2 rounded-lg border border-slate-700 bg-slate-950 text-slate-200 hover:bg-slate-900 transition text-sm font-semibold\"\n >\n {({ copyLabel }) => (\n <>\n <ClipboardCopy size={14} />\n {copyLabel || copyButtonLabel}\n </>\n )}\n </CopyButton>\n {copy.proUnlockNote && <div className=\"text-xs text-slate-500\">{copy.proUnlockNote}</div>}\n </div>\n </section>\n </section>\n\n <section className=\"space-y-4\">\n <h2 className=\"text-lg font-bold text-white text-center\">{copy.overviewTitle}</h2>\n <ul className=\"max-w-3xl mx-auto space-y-2 text-sm text-slate-300\">\n {copy.overviewBullets.map((item) => (\n <li key={item} className=\"flex items-center gap-2\">\n <CheckCircle2 size={16} className=\"text-emerald-400\" />\n {item}\n </li>\n ))}\n </ul>\n </section>\n\n <section className=\"space-y-4\">\n <h2 className=\"text-lg font-bold text-white text-center\">{copy.checklistsTitle}</h2>\n <div className=\"grid md:grid-cols-3 gap-6\">\n {copy.checklists.map((item) => {\n const Icon = item.icon;\n return (\n <div key={item.key} className=\"bg-slate-900/60 border border-slate-800 rounded-2xl p-6 space-y-4\">\n <div className=\"flex items-center gap-3\">\n <div className=\"w-10 h-10 rounded-xl border border-slate-800 bg-slate-950 flex items-center justify-center\">\n <Icon size={18} className=\"text-slate-200\" />\n </div>\n <div className=\"text-lg font-bold text-white\">{item.title}</div>\n </div>\n <p className=\"text-sm text-slate-300 leading-relaxed\">{item.body}</p>\n <ul className=\"text-xs text-slate-400 list-disc pl-4 space-y-1\">\n {item.bullets.map((bullet) => (\n <li key={bullet}>{bullet}</li>\n ))}\n </ul>\n </div>\n );\n })}\n </div>\n <div className=\"text-xs text-slate-500 text-center\">{copy.note}</div>\n </section>\n\n <section className=\"space-y-4\">\n <h2 className=\"text-lg font-bold text-white text-center\">{copy.assetsTitle}</h2>\n <div className=\"grid md:grid-cols-3 gap-6\">\n {copy.assets.map((asset) => (\n <a\n key={asset.key}\n href={asset.href}\n onClick={() => trackEvent('tool_cta_click', { tool: 'app_review_aso', cta: `open_${asset.key}` })}\n className=\"bg-slate-900/60 border border-slate-800 rounded-2xl p-6 space-y-3 hover:border-slate-700 transition\"\n >\n <div className=\"text-lg font-bold text-white\">{asset.title}</div>\n <div className=\"text-sm text-slate-300\">{asset.desc}</div>\n <div className=\"text-xs text-blue-200 flex items-center gap-2\">\n {copy.assetsCta} <ArrowRight size={14} />\n </div>\n </a>\n ))}\n </div>\n </section>\n\n <section className=\"bg-slate-900/60 border border-slate-800 rounded-2xl p-6 flex flex-col md:flex-row items-start md:items-center justify-between gap-4\">\n <div className=\"space-y-1\">\n <div className=\"text-sm font-bold text-white\">{copy.nextTitle}</div>\n <div className=\"text-sm text-slate-300\">{copy.nextBody}</div>\n </div>\n <div className=\"flex flex-col sm:flex-row gap-3 w-full md:w-auto\">\n <a\n href={agentCliHref}\n onClick={(event) =>\n trackEventAndFollowLink(event, 'tool_cta_click', { tool: 'app_review_aso', cta: 'open_agent_cli_body' })\n }\n className=\"inline-flex items-center justify-center gap-2 px-5 py-3 rounded-xl bg-white text-slate-900 font-bold hover:scale-[1.02] transition w-full md:w-auto\"\n >\n {copy.nextCtaPrimary} <ArrowRight size={16} />\n </a>\n <a\n href={sampleProjectHref}\n onClick={(event) =>\n trackEventAndFollowLink(event, 'tool_cta_click', { tool: 'app_review_aso', cta: 'open_sample_project_footer' })\n }\n className=\"inline-flex items-center justify-center gap-2 px-5 py-3 rounded-xl border border-slate-700 bg-slate-950 text-slate-200 hover:bg-slate-900 transition w-full md:w-auto\"\n >\n {copy.nextCtaSecondary} <ArrowRight size={16} />\n </a>\n </div>\n </section>\n </main>\n\n <StickyMobileCta\n primary={{\n label: copy.nextCtaPrimary,\n href: agentCliHref,\n onClick: (event) =>\n trackEventAndFollowLink(event, 'tool_cta_click', { tool: 'app_review_aso', cta: 'sticky_primary' }),\n }}\n secondary={{\n label: copy.nextCtaSecondary,\n href: sampleProjectHref,\n onClick: (event) =>\n trackEventAndFollowLink(event, 'tool_cta_click', { tool: 'app_review_aso', cta: 'sticky_secondary' }),\n }}\n />\n </div>\n );\n};\n\nexport default AppReviewAso;\n"],"names":["normalizeLang","lang","COPY","ShieldCheck","LayoutGrid","Crop","AppReviewAso","i18n","t","useTranslation","copy","openAppHref","agentCliHref","sampleProjectHref","configDownloadHref","csvDownloadHref","copyButtonLabel","usePageTitle","useEffect","trackEvent","jsxs","jsx","StagingBadge","SiteHeader","event","trackEventAndFollowLink","ArrowRight","CopyButton","copyLabel","copyState","Fragment","ClipboardCopy","CliPreflightCard","item","CheckCircle2","Icon","bullet","asset","StickyMobileCta"],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"AppReviewAso-BYfaP1Lu.js","sources":["../../src/pages/AppReviewAso.jsx"],"sourcesContent":["import React, { useEffect } from 'react';\nimport { ArrowRight, CheckCircle2, ClipboardCopy, Crop, LayoutGrid, ShieldCheck } from 'lucide-react';\nimport { useTranslation } from 'react-i18next';\nimport CopyButton from '../components/CopyButton';\nimport CliPreflightCard from '../components/CliPreflightCard';\nimport StagingBadge from '../components/StagingBadge';\nimport StickyMobileCta from '../components/StickyMobileCta';\nimport SiteHeader from '../components/SiteHeader';\nimport usePageTitle from '../hooks/usePageTitle';\nimport { trackEvent, trackEventAndFollowLink } from '../lib/analytics';\n\nconst normalizeLang = (lang) => {\n const base = (lang || '').split('-')[0];\n return base === 'ja' ? 'ja' : 'en';\n};\n\nconst COPY = {\n en: {\n badge: 'App Review + ASO quick check',\n title: 'App Review + ASO Quick Check',\n subtitle:\n 'A short checklist to sanity-check App Store / Google Play screenshots before upload: clarity, policy-safe claims, and a consistent story flow.',\n heroCliTitle: 'CLI quickstart (2 steps)',\n heroCliNote: 'wizard → build (raw mode, no Playwright).',\n heroCliSummary: 'Outputs: fastlane/ + reproducible ZIP (local/CI).',\n heroCliCopyLabel: 'Copy all commands',\n heroCliTemplatesLabel: 'Starter templates',\n heroCliConfigLabel: 'config.yml',\n heroCliCsvLabel: 'copy.csv',\n heroCliCmd: [\n 'npx --yes shipscreens wizard',\n 'npx --yes shipscreens build --mode raw --zip --out out/agent',\n ].join('\\n'),\n proUnlockTitle: 'Unlock Pro (CLI)',\n proUnlockBody: 'Remove the watermark and unlock full matrix batch exports via CLI auth:',\n proUnlockCmd: 'npx --yes shipscreens auth login',\n proUnlockNote: 'Completes a one-time browser sign-in; then rerun build with --require-pro.',\n overviewTitle: 'What this covers',\n overviewBullets: [\n 'First screenshot clarity (outcome + target user)',\n 'App Review sanity (current-version UI, no misleading claims)',\n 'Play feature graphic safe area + size buckets',\n ],\n checklistsTitle: 'Checks',\n checklists: [\n {\n key: 'review',\n icon: ShieldCheck,\n title: 'App Review sanity',\n body: 'Avoid rejections caused by mismatched or outdated screenshots.',\n bullets: [\n 'Screenshots match the current app version UI.',\n 'Avoid showing unreleased or removed features.',\n 'Keep claims verifiable inside the product.',\n 'App Store Connect screenshots are version-scoped.',\n ],\n },\n {\n key: 'aso',\n icon: LayoutGrid,\n title: 'ASO clarity',\n body: 'Make the first screenshot explain the outcome fast.',\n bullets: [\n 'Use a 5-panel flow: Hook → Problem → Proof → How → CTA.',\n 'One idea per panel; keep captions short.',\n 'Keep UI readable on small devices.',\n ],\n },\n {\n key: 'play-safe',\n icon: Crop,\n title: 'Play feature graphic safe area',\n body: 'Avoid hidden crops in Play previews.',\n bullets: [\n 'Keep text/logos inside the central ~80–86% area.',\n 'Avoid edge-aligned UI that can get cropped.',\n 'Preview in Play Console before final upload.',\n ],\n },\n ],\n assetsTitle: 'Related assets',\n assetsCta: 'Open tool',\n assets: [\n {\n key: 'five_panel',\n title: '5-panel Screenshot Framework',\n desc: 'Structure the story flow for the first five screenshots.',\n href: '/tools/5-panel-screenshot-framework/',\n },\n {\n key: 'pipeline',\n title: 'Store Assets Pipeline Kit',\n desc: 'Capture checklist, size buckets, and Play safe areas.',\n href: '/tools/store-assets-pipeline/',\n },\n {\n key: 'workload',\n title: 'Screenshot Workload Calculator',\n desc: 'Quantify device × locale explosion before you commit.',\n href: '/tools/screenshot-workload-calculator/',\n },\n ],\n nextTitle: 'Next: run a reproducible export',\n nextBody: 'Use the CLI quickstart or open a sample project to generate Fastlane-ready outputs.',\n nextCtaPrimary: 'Run CLI first export',\n nextCtaSecondary: 'Open sample project',\n note: 'Upload happens in App Store Connect / Play Console. Translation is BYO; ShipScreens focuses on reproducible exports.',\n },\n ja: {\n badge: 'App Review / ASO クイックチェック',\n title: 'App Review / ASO クイックチェック',\n subtitle:\n '提出前にスクショをサッと整えるためのミニチェックリスト。伝わり方、制約、ストーリーの流れを確認します。',\n heroCliTitle: 'CLIクイックスタート(2ステップ)',\n heroCliNote: 'wizard → build(raw / Playwright不要)。',\n heroCliSummary: '出力: fastlane/ + 再現性ZIP(ローカル/CI)。',\n heroCliCopyLabel: 'コマンドをすべてコピー',\n heroCliTemplatesLabel: 'スターター雛形',\n heroCliConfigLabel: 'config.yml',\n heroCliCsvLabel: 'copy.csv',\n heroCliCmd: [\n 'npx --yes shipscreens wizard',\n 'npx --yes shipscreens build --mode raw --zip --out out/agent',\n ].join('\\n'),\n proUnlockTitle: 'Proを解除(CLI)',\n proUnlockBody: '透かし解除&フル一括(端末×言語)のために、まずはCLI認証を実行:',\n proUnlockCmd: 'npx --yes shipscreens auth login',\n proUnlockNote: '初回のみブラウザでサインインします。以後は --require-pro で再実行。',\n overviewTitle: 'このチェックで見ること',\n overviewBullets: [\n '1枚目の伝わり方(成果 + 誰向けか)',\n 'App Reviewの制約(現行UI、誤解を招く表現の回避)',\n 'Playの安全域 + サイズバケット',\n ],\n checklistsTitle: 'チェック項目',\n checklists: [\n {\n key: 'review',\n icon: ShieldCheck,\n title: 'App Review 影響点',\n body: '審査落ちや差し戻しの原因を先に潰します。',\n bullets: [\n 'スクショは現行バージョンのUIと一致。',\n '未実装/削除済みの機能は出さない。',\n '主張はプロダクト内で検証できる範囲に。',\n 'ASCのスクショはバージョン単位で管理。',\n ],\n },\n {\n key: 'aso',\n icon: LayoutGrid,\n title: 'ASOの伝達性',\n body: '1枚目で成果が伝わる構成に。',\n bullets: [\n '5枚構成(Hook→Problem→Proof→How→CTA)。',\n '1枚1メッセージ、キャプションは短く。',\n '小さな端末でも読めるUIサイズ。',\n ],\n },\n {\n key: 'play-safe',\n icon: Crop,\n title: 'Play feature graphic 安全域',\n body: 'プレビューの隠れクロップを回避。',\n bullets: [\n '文字/ロゴは中央 80〜86% に収める。',\n '端に寄せすぎない(切れる)。',\n 'Play Consoleで最終プレビュー。',\n ],\n },\n ],\n assetsTitle: '関連ツール',\n assetsCta: 'ツールを開く',\n assets: [\n {\n key: 'five_panel',\n title: '5枚構成 スクショフレームワーク',\n desc: '5枚のストーリー構成を固定するテンプレ。',\n href: '/tools/5-panel-screenshot-framework/',\n },\n {\n key: 'pipeline',\n title: 'ストア素材パイプラインキット',\n desc: '素材取り/サイズバケット/安全域のチェック。',\n href: '/tools/store-assets-pipeline/',\n },\n {\n key: 'workload',\n title: 'スクショ作業量 計算ツール',\n desc: '端末×言語の爆発を先に把握。',\n href: '/tools/screenshot-workload-calculator/',\n },\n ],\n nextTitle: '次: 再現性のある出力へ',\n nextBody: 'CLI最短かサンプルから始めて、Fastlane-readyを出力します。',\n nextCtaPrimary: 'CLIで初回エクスポート',\n nextCtaSecondary: 'サンプルを開く',\n note: 'アップロードは App Store Connect / Play Console 側で行います。翻訳は外部でOK。',\n },\n};\n\nconst AppReviewAso = () => {\n const { i18n, t } = useTranslation();\n const lang = normalizeLang(i18n.resolvedLanguage || i18n.language);\n const copy = COPY[lang] || COPY.en;\n\n const openAppHref = '/app/?sample=5panel&entry_source=app_review_aso_open_app_header';\n const agentCliHref = '/tools/agent-cli/';\n const sampleProjectHref = '/app/?sample=5panel&entry_source=app_review_aso_open_sample_project';\n const configDownloadHref = '/downloads/shipscreens-agent-cli-config.yml';\n const csvDownloadHref = '/downloads/shipscreens-agent-cli-copy.csv';\n const copyButtonLabel = t('common.copy', { defaultValue: 'Copy' });\n usePageTitle('titles.appReviewAso', { defaultValue: copy.title });\n\n useEffect(() => {\n trackEvent('tool_view', { tool: 'app_review_aso' });\n }, []);\n\n return (\n <div className=\"min-h-screen bg-gradient-to-b from-slate-950 via-slate-900 to-slate-950 text-white\">\n <StagingBadge />\n <SiteHeader\n variant=\"dark\"\n active=\"tools\"\n openAppHref={openAppHref}\n onToolsClick={(event) =>\n trackEventAndFollowLink(event, 'tool_cta_click', { tool: 'app_review_aso', cta: 'open_tools_header' })\n }\n onPricingClick={(event) =>\n trackEventAndFollowLink(event, 'tool_cta_click', { tool: 'app_review_aso', cta: 'pricing_header' })\n }\n onOpenAppClick={(event) =>\n trackEventAndFollowLink(event, 'tool_cta_click', { tool: 'app_review_aso', cta: 'open_app_header' })\n }\n primaryCta={{\n href: agentCliHref,\n label: (\n <span className=\"inline-flex items-center gap-2\">\n {copy.nextCtaPrimary} <ArrowRight size={16} />\n </span>\n ),\n onClick: (event) =>\n trackEventAndFollowLink(event, 'tool_cta_click', { tool: 'app_review_aso', cta: 'open_agent_cli_header' }),\n }}\n />\n\n <main className=\"max-w-5xl mx-auto px-6 pb-24 space-y-10\">\n <section className=\"max-w-3xl mx-auto text-center space-y-4\">\n <div className=\"inline-flex items-center gap-2 px-3 py-1.5 rounded-full border border-slate-800 bg-slate-900/60 text-slate-200 text-xs font-semibold\">\n <ShieldCheck size={14} />\n {copy.badge}\n </div>\n <h1 className=\"text-3xl md:text-5xl font-black leading-tight\">{copy.title}</h1>\n <p className=\"text-slate-300 text-lg leading-relaxed\">{copy.subtitle}</p>\n\n <div className=\"flex flex-col sm:flex-row gap-3 justify-center pt-2\">\n <a\n href={agentCliHref}\n onClick={(event) =>\n trackEventAndFollowLink(event, 'tool_cta_click', { tool: 'app_review_aso', cta: 'open_agent_cli_hero' })\n }\n className=\"inline-flex items-center justify-center gap-2 px-5 py-3 rounded-xl bg-blue-500 text-white font-bold hover:bg-blue-600 transition\"\n >\n {copy.nextCtaPrimary} <ArrowRight size={16} />\n </a>\n <a\n href={sampleProjectHref}\n onClick={(event) =>\n trackEventAndFollowLink(event, 'tool_cta_click', { tool: 'app_review_aso', cta: 'open_sample_project_hero' })\n }\n className=\"inline-flex items-center justify-center gap-2 px-5 py-3 rounded-xl border border-slate-700 bg-slate-950 text-slate-200 font-bold hover:bg-slate-900 transition\"\n >\n {copy.nextCtaSecondary} <ArrowRight size={16} />\n </a>\n </div>\n\n <div className=\"max-w-xl mx-auto text-left bg-slate-900/60 border border-slate-800 rounded-2xl p-4 space-y-2\">\n <div className=\"text-[11px] uppercase tracking-[0.2em] text-slate-500 font-semibold\">{copy.heroCliTitle}</div>\n <p className=\"text-xs text-slate-400\">{copy.heroCliNote}</p>\n <p className=\"text-xs text-slate-500\">{copy.heroCliSummary}</p>\n <div className=\"rounded-xl border border-slate-800 bg-slate-950 p-3\">\n <pre className=\"text-xs text-slate-200 whitespace-pre-wrap\">{copy.heroCliCmd}</pre>\n </div>\n <div className=\"flex flex-col sm:flex-row gap-2\">\n <CopyButton\n value={copy.heroCliCmd}\n onCopied={() => trackEvent('tool_cta_click', { tool: 'app_review_aso', cta: 'copy_cli_hero' })}\n className=\"inline-flex items-center justify-center gap-2 px-3 py-2 rounded-lg border border-slate-700 bg-slate-950 text-slate-200 hover:bg-slate-900 transition text-xs font-semibold\"\n >\n {({ copyLabel, copyState }) => (\n <>\n <ClipboardCopy size={14} />\n {copyState === 'idle' ? copy.heroCliCopyLabel : copyLabel || copyButtonLabel}\n </>\n )}\n </CopyButton>\n <a\n href={agentCliHref}\n onClick={(event) =>\n trackEventAndFollowLink(event, 'tool_cta_click', { tool: 'app_review_aso', cta: 'open_agent_cli_hero' })\n }\n className=\"inline-flex items-center justify-center gap-2 px-3 py-2 rounded-lg border border-slate-700 bg-slate-950 text-slate-200 hover:bg-slate-900 transition text-xs font-semibold\"\n >\n {copy.nextCtaPrimary} <ArrowRight size={14} />\n </a>\n </div>\n <div className=\"pt-1 space-y-2\">\n <div className=\"text-[10px] uppercase tracking-[0.2em] text-slate-500 font-semibold\">\n {copy.heroCliTemplatesLabel}\n </div>\n <div className=\"flex flex-wrap gap-2\">\n <a\n href={configDownloadHref}\n download\n onClick={() => trackEvent('tool_download', { tool: 'app_review_aso', asset: 'config_template' })}\n className=\"inline-flex items-center justify-center gap-2 px-2.5 py-1.5 rounded-md border border-slate-700 bg-slate-950 text-[11px] text-slate-200 hover:bg-slate-900 transition\"\n >\n {copy.heroCliConfigLabel}\n </a>\n <a\n href={csvDownloadHref}\n download\n onClick={() => trackEvent('tool_download', { tool: 'app_review_aso', asset: 'copy_template' })}\n className=\"inline-flex items-center justify-center gap-2 px-2.5 py-1.5 rounded-md border border-slate-700 bg-slate-950 text-[11px] text-slate-200 hover:bg-slate-900 transition\"\n >\n {copy.heroCliCsvLabel}\n </a>\n </div>\n </div>\n </div>\n\n <CliPreflightCard\n compact\n href=\"/tools/agent-cli/#preflight\"\n onClick={(event) =>\n trackEventAndFollowLink(event, 'tool_cta_click', { tool: 'app_review_aso', cta: 'open_cli_preflight' })\n }\n className=\"max-w-xl mx-auto\"\n />\n\n <section className=\"max-w-xl mx-auto\">\n <div className=\"bg-slate-900/60 border border-slate-800 rounded-2xl p-5 space-y-3\">\n <div className=\"flex items-center justify-between gap-3\">\n <div className=\"text-sm font-bold text-white\">{copy.proUnlockTitle}</div>\n <span className=\"text-[10px] font-semibold tracking-[0.2em] text-amber-200 bg-amber-500/10 border border-amber-400/30 px-2 py-1 rounded-full\">\n PRO\n </span>\n </div>\n {copy.proUnlockBody && <p className=\"text-sm text-slate-300\">{copy.proUnlockBody}</p>}\n <div className=\"rounded-xl border border-slate-800 bg-slate-950/80 p-4\">\n <pre className=\"text-xs text-slate-200 whitespace-pre-wrap\">{copy.proUnlockCmd}</pre>\n </div>\n <CopyButton\n value={copy.proUnlockCmd}\n onCopied={() => trackEvent('tool_cta_click', { tool: 'app_review_aso', cta: 'copy_cli_pro_unlock' })}\n className=\"inline-flex items-center justify-center gap-2 px-4 py-2 rounded-lg border border-slate-700 bg-slate-950 text-slate-200 hover:bg-slate-900 transition text-sm font-semibold\"\n >\n {({ copyLabel }) => (\n <>\n <ClipboardCopy size={14} />\n {copyLabel || copyButtonLabel}\n </>\n )}\n </CopyButton>\n {copy.proUnlockNote && <div className=\"text-xs text-slate-500\">{copy.proUnlockNote}</div>}\n </div>\n </section>\n </section>\n\n <section className=\"space-y-4\">\n <h2 className=\"text-lg font-bold text-white text-center\">{copy.overviewTitle}</h2>\n <ul className=\"max-w-3xl mx-auto space-y-2 text-sm text-slate-300\">\n {copy.overviewBullets.map((item) => (\n <li key={item} className=\"flex items-center gap-2\">\n <CheckCircle2 size={16} className=\"text-emerald-400\" />\n {item}\n </li>\n ))}\n </ul>\n </section>\n\n <section className=\"space-y-4\">\n <h2 className=\"text-lg font-bold text-white text-center\">{copy.checklistsTitle}</h2>\n <div className=\"grid md:grid-cols-3 gap-6\">\n {copy.checklists.map((item) => {\n const Icon = item.icon;\n return (\n <div key={item.key} className=\"bg-slate-900/60 border border-slate-800 rounded-2xl p-6 space-y-4\">\n <div className=\"flex items-center gap-3\">\n <div className=\"w-10 h-10 rounded-xl border border-slate-800 bg-slate-950 flex items-center justify-center\">\n <Icon size={18} className=\"text-slate-200\" />\n </div>\n <div className=\"text-lg font-bold text-white\">{item.title}</div>\n </div>\n <p className=\"text-sm text-slate-300 leading-relaxed\">{item.body}</p>\n <ul className=\"text-xs text-slate-400 list-disc pl-4 space-y-1\">\n {item.bullets.map((bullet) => (\n <li key={bullet}>{bullet}</li>\n ))}\n </ul>\n </div>\n );\n })}\n </div>\n <div className=\"text-xs text-slate-500 text-center\">{copy.note}</div>\n </section>\n\n <section className=\"space-y-4\">\n <h2 className=\"text-lg font-bold text-white text-center\">{copy.assetsTitle}</h2>\n <div className=\"grid md:grid-cols-3 gap-6\">\n {copy.assets.map((asset) => (\n <a\n key={asset.key}\n href={asset.href}\n onClick={() => trackEvent('tool_cta_click', { tool: 'app_review_aso', cta: `open_${asset.key}` })}\n className=\"bg-slate-900/60 border border-slate-800 rounded-2xl p-6 space-y-3 hover:border-slate-700 transition\"\n >\n <div className=\"text-lg font-bold text-white\">{asset.title}</div>\n <div className=\"text-sm text-slate-300\">{asset.desc}</div>\n <div className=\"text-xs text-blue-200 flex items-center gap-2\">\n {copy.assetsCta} <ArrowRight size={14} />\n </div>\n </a>\n ))}\n </div>\n </section>\n\n <section className=\"bg-slate-900/60 border border-slate-800 rounded-2xl p-6 flex flex-col md:flex-row items-start md:items-center justify-between gap-4\">\n <div className=\"space-y-1\">\n <div className=\"text-sm font-bold text-white\">{copy.nextTitle}</div>\n <div className=\"text-sm text-slate-300\">{copy.nextBody}</div>\n </div>\n <div className=\"flex flex-col sm:flex-row gap-3 w-full md:w-auto\">\n <a\n href={agentCliHref}\n onClick={(event) =>\n trackEventAndFollowLink(event, 'tool_cta_click', { tool: 'app_review_aso', cta: 'open_agent_cli_body' })\n }\n className=\"inline-flex items-center justify-center gap-2 px-5 py-3 rounded-xl bg-white text-slate-900 font-bold hover:scale-[1.02] transition w-full md:w-auto\"\n >\n {copy.nextCtaPrimary} <ArrowRight size={16} />\n </a>\n <a\n href={sampleProjectHref}\n onClick={(event) =>\n trackEventAndFollowLink(event, 'tool_cta_click', { tool: 'app_review_aso', cta: 'open_sample_project_footer' })\n }\n className=\"inline-flex items-center justify-center gap-2 px-5 py-3 rounded-xl border border-slate-700 bg-slate-950 text-slate-200 hover:bg-slate-900 transition w-full md:w-auto\"\n >\n {copy.nextCtaSecondary} <ArrowRight size={16} />\n </a>\n </div>\n </section>\n </main>\n\n <StickyMobileCta\n primary={{\n label: copy.nextCtaPrimary,\n href: agentCliHref,\n onClick: (event) =>\n trackEventAndFollowLink(event, 'tool_cta_click', { tool: 'app_review_aso', cta: 'sticky_primary' }),\n }}\n secondary={{\n label: copy.nextCtaSecondary,\n href: sampleProjectHref,\n onClick: (event) =>\n trackEventAndFollowLink(event, 'tool_cta_click', { tool: 'app_review_aso', cta: 'sticky_secondary' }),\n }}\n />\n </div>\n );\n};\n\nexport default AppReviewAso;\n"],"names":["normalizeLang","lang","COPY","ShieldCheck","LayoutGrid","Crop","AppReviewAso","i18n","t","useTranslation","copy","openAppHref","agentCliHref","sampleProjectHref","configDownloadHref","csvDownloadHref","copyButtonLabel","usePageTitle","useEffect","trackEvent","jsxs","jsx","StagingBadge","SiteHeader","event","trackEventAndFollowLink","ArrowRight","CopyButton","copyLabel","copyState","Fragment","ClipboardCopy","CliPreflightCard","item","CheckCircle2","Icon","bullet","asset","StickyMobileCta"],"mappings":"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"}
|
|
@@ -1,2 +1,2 @@
|
|
|
1
|
-
import{u as s,r as l,t as r,j as e,b as a}from"./index-
|
|
2
|
-
//# sourceMappingURL=Cancelled-
|
|
1
|
+
import{u as s,r as l,t as r,j as e,b as a}from"./index-Bqv2NztY.js";import{c as n,a as i,S as o}from"./LanguageSwitcher-BD9N-dla.js";import{S as d}from"./SiteHeader-DxsqNPnt.js";const x=[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"m15 9-6 6",key:"1uzhvr"}],["path",{d:"m9 9 6 6",key:"z0biqf"}]],m=n("circle-x",x),g=()=>{const{t}=s();return i("titles.checkoutCancelled"),l.useEffect(()=>{r("checkout_cancel_view")},[]),e.jsxs("div",{className:"min-h-screen bg-slate-50 text-slate-800 flex flex-col",children:[e.jsx(o,{}),e.jsx(d,{variant:"light",showX:!1}),e.jsx("main",{className:"flex-1 flex items-center justify-center px-6 py-10",children:e.jsxs("div",{className:"max-w-lg w-full bg-white border border-slate-200 rounded-2xl shadow-sm p-8 text-center space-y-4",children:[e.jsx(m,{size:48,className:"text-amber-500 mx-auto"}),e.jsx("h1",{className:"text-2xl font-bold",children:t("pages.cancelled.title")}),e.jsx("p",{className:"text-slate-600",children:t("pages.cancelled.description")}),e.jsxs("div",{className:"flex flex-col sm:flex-row gap-3 justify-center",children:[e.jsx("a",{href:"/app/",onClick:c=>a(c,"checkout_cancel_cta_click",{cta:"back_to_app"}),className:"inline-flex justify-center items-center px-4 py-2 rounded-lg bg-slate-900 text-white font-semibold hover:bg-slate-800",children:t("pages.cancelled.action")}),e.jsx("a",{href:"/#pricing",onClick:c=>a(c,"checkout_cancel_cta_click",{cta:"go_pro_pricing"}),className:"inline-flex justify-center items-center px-4 py-2 rounded-lg border border-slate-300 text-slate-700 font-semibold hover:bg-slate-100",children:t("landing.nav.goPro")})]})]})})]})};export{g as default};
|
|
2
|
+
//# sourceMappingURL=Cancelled-66ixTUrm.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"Cancelled-
|
|
1
|
+
{"version":3,"file":"Cancelled-66ixTUrm.js","sources":["../../node_modules/lucide-react/dist/esm/icons/circle-x.js","../../src/pages/Cancelled.jsx"],"sourcesContent":["/**\n * @license lucide-react v0.563.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst __iconNode = [\n [\"circle\", { cx: \"12\", cy: \"12\", r: \"10\", key: \"1mglay\" }],\n [\"path\", { d: \"m15 9-6 6\", key: \"1uzhvr\" }],\n [\"path\", { d: \"m9 9 6 6\", key: \"z0biqf\" }]\n];\nconst CircleX = createLucideIcon(\"circle-x\", __iconNode);\n\nexport { __iconNode, CircleX as default };\n//# sourceMappingURL=circle-x.js.map\n","import React, { useEffect } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { XCircle } from 'lucide-react';\nimport StagingBadge from '../components/StagingBadge';\nimport SiteHeader from '../components/SiteHeader';\nimport usePageTitle from '../hooks/usePageTitle';\nimport { trackEvent, trackEventAndFollowLink } from '../lib/analytics';\n\nconst Cancelled = () => {\n const { t } = useTranslation();\n usePageTitle('titles.checkoutCancelled');\n\n useEffect(() => {\n trackEvent('checkout_cancel_view');\n }, []);\n\n return (\n <div className=\"min-h-screen bg-slate-50 text-slate-800 flex flex-col\">\n <StagingBadge />\n <SiteHeader variant=\"light\" showX={false} />\n <main className=\"flex-1 flex items-center justify-center px-6 py-10\">\n <div className=\"max-w-lg w-full bg-white border border-slate-200 rounded-2xl shadow-sm p-8 text-center space-y-4\">\n <XCircle size={48} className=\"text-amber-500 mx-auto\" />\n <h1 className=\"text-2xl font-bold\">{t('pages.cancelled.title')}</h1>\n <p className=\"text-slate-600\">{t('pages.cancelled.description')}</p>\n <div className=\"flex flex-col sm:flex-row gap-3 justify-center\">\n <a\n href=\"/app/\"\n onClick={(event) =>\n trackEventAndFollowLink(event, 'checkout_cancel_cta_click', { cta: 'back_to_app' })\n }\n className=\"inline-flex justify-center items-center px-4 py-2 rounded-lg bg-slate-900 text-white font-semibold hover:bg-slate-800\"\n >\n {t('pages.cancelled.action')}\n </a>\n <a\n href=\"/#pricing\"\n onClick={(event) =>\n trackEventAndFollowLink(event, 'checkout_cancel_cta_click', { cta: 'go_pro_pricing' })\n }\n className=\"inline-flex justify-center items-center px-4 py-2 rounded-lg border border-slate-300 text-slate-700 font-semibold hover:bg-slate-100\"\n >\n {t('landing.nav.goPro')}\n </a>\n </div>\n </div>\n </main>\n </div>\n );\n};\n\nexport default Cancelled;\n"],"names":["__iconNode","CircleX","createLucideIcon","Cancelled","useTranslation","usePageTitle","useEffect","trackEvent","jsxs","jsx","StagingBadge","SiteHeader","XCircle","event","trackEventAndFollowLink"],"mappings":"kLASA,MAAMA,EAAa,CACjB,CAAC,SAAU,CAAE,GAAI,KAAM,GAAI,KAAM,EAAG,KAAM,IAAK,SAAU,EACzD,CAAC,OAAQ,CAAE,EAAG,YAAa,IAAK,QAAQ,CAAE,EAC1C,CAAC,OAAQ,CAAE,EAAG,WAAY,IAAK,QAAQ,CAAE,CAC3C,EACMC,EAAUC,EAAiB,WAAYF,CAAU,ECNjDG,EAAY,IAAM,CACtB,KAAM,CAAE,CAAA,EAAMC,EAAA,EACd,OAAAC,EAAa,0BAA0B,EAEvCC,EAAAA,UAAU,IAAM,CACdC,EAAW,sBAAsB,CACnC,EAAG,CAAA,CAAE,EAGHC,EAAAA,KAAC,MAAA,CAAI,UAAU,wDACb,SAAA,CAAAC,EAAAA,IAACC,EAAA,EAAa,EACdD,EAAAA,IAACE,EAAA,CAAW,QAAQ,QAAQ,MAAO,GAAO,QACzC,OAAA,CAAK,UAAU,qDACd,SAAAH,EAAAA,KAAC,MAAA,CAAI,UAAU,mGACb,SAAA,CAAAC,EAAAA,IAACG,EAAA,CAAQ,KAAM,GAAI,UAAU,yBAAyB,QACrD,KAAA,CAAG,UAAU,qBAAsB,SAAA,EAAE,uBAAuB,EAAE,QAC9D,IAAA,CAAE,UAAU,iBAAkB,SAAA,EAAE,6BAA6B,EAAE,EAChEJ,EAAAA,KAAC,MAAA,CAAI,UAAU,iDACb,SAAA,CAAAC,EAAAA,IAAC,IAAA,CACC,KAAK,QACL,QAAUI,GACRC,EAAwBD,EAAO,4BAA6B,CAAE,IAAK,cAAe,EAEpF,UAAU,wHAET,WAAE,wBAAwB,CAAA,CAAA,EAE7BJ,EAAAA,IAAC,IAAA,CACC,KAAK,YACL,QAAUI,GACRC,EAAwBD,EAAO,4BAA6B,CAAE,IAAK,iBAAkB,EAEvF,UAAU,uIAET,WAAE,mBAAmB,CAAA,CAAA,CACxB,CAAA,CACF,CAAA,CAAA,CACF,CAAA,CACF,CAAA,EACF,CAEJ","x_google_ignoreList":[0]}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{u as c,j as t}from"./index-Bqv2NztY.js";import{C as d,A as m}from"./CopyButton-CmVmSaYn.js";const b=({href:l,onClick:i,compact:s=!1,className:n=""})=>{const{t:o}=c(),e=o("common.cliPreflight",{returnObjects:!0})||{},r=e.bullets||[],a=s?r.slice(0,3):r;return e.title?t.jsxs("div",{className:`rounded-2xl border border-slate-800 bg-slate-900/60 ${s?"p-4":"p-6"} space-y-2 ${n}`,children:[t.jsx("div",{className:`${s?"text-sm":"text-lg"} font-bold text-white`,children:e.title}),e.body&&t.jsx("p",{className:`${s?"text-xs":"text-sm"} text-slate-300`,children:e.body}),a.length>0&&t.jsx("ul",{className:`space-y-1 ${s?"text-xs":"text-sm"} text-slate-300`,children:a.map(x=>t.jsxs("li",{className:"flex items-center gap-2",children:[t.jsx(d,{size:s?14:16,className:"text-emerald-400"}),x]},x))}),e.note&&t.jsx("p",{className:"text-[11px] text-slate-500",children:e.note}),l&&e.cta&&t.jsxs("a",{href:l,onClick:i,className:`inline-flex items-center gap-2 text-xs font-semibold text-blue-200 hover:text-blue-100 transition-colors ${s?"pt-1":"pt-2"}`,children:[e.cta," ",t.jsx(m,{size:12})]})]}):null};export{b as C};
|
|
2
|
+
//# sourceMappingURL=CliPreflightCard-D7utpFux.js.map
|
package/dist/app/assets/{CliPreflightCard-CxYyogdF.js.map → CliPreflightCard-D7utpFux.js.map}
RENAMED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"CliPreflightCard-
|
|
1
|
+
{"version":3,"file":"CliPreflightCard-D7utpFux.js","sources":["../../src/components/CliPreflightCard.jsx"],"sourcesContent":["import React from 'react';\nimport { ArrowRight, CheckCircle2 } from 'lucide-react';\nimport { useTranslation } from 'react-i18next';\n\nconst CliPreflightCard = ({ href, onClick, compact = false, className = '' }) => {\n const { t } = useTranslation();\n const copy = t('common.cliPreflight', { returnObjects: true }) || {};\n const bullets = copy.bullets || [];\n const showBullets = compact ? bullets.slice(0, 3) : bullets;\n\n if (!copy.title) return null;\n\n return (\n <div\n className={`rounded-2xl border border-slate-800 bg-slate-900/60 ${compact ? 'p-4' : 'p-6'} space-y-2 ${className}`}\n >\n <div className={`${compact ? 'text-sm' : 'text-lg'} font-bold text-white`}>{copy.title}</div>\n {copy.body && <p className={`${compact ? 'text-xs' : 'text-sm'} text-slate-300`}>{copy.body}</p>}\n {showBullets.length > 0 && (\n <ul className={`space-y-1 ${compact ? 'text-xs' : 'text-sm'} text-slate-300`}>\n {showBullets.map((item) => (\n <li key={item} className=\"flex items-center gap-2\">\n <CheckCircle2 size={compact ? 14 : 16} className=\"text-emerald-400\" />\n {item}\n </li>\n ))}\n </ul>\n )}\n {copy.note && <p className=\"text-[11px] text-slate-500\">{copy.note}</p>}\n {href && copy.cta && (\n <a\n href={href}\n onClick={onClick}\n className={`inline-flex items-center gap-2 text-xs font-semibold text-blue-200 hover:text-blue-100 transition-colors ${compact ? 'pt-1' : 'pt-2'}`}\n >\n {copy.cta} <ArrowRight size={12} />\n </a>\n )}\n </div>\n );\n};\n\nexport default CliPreflightCard;\n"],"names":["CliPreflightCard","href","onClick","compact","className","t","useTranslation","copy","bullets","showBullets","jsxs","jsx","item","CheckCircle2","ArrowRight"],"mappings":"mGAIA,MAAMA,EAAmB,CAAC,CAAE,KAAAC,EAAM,QAAAC,EAAS,QAAAC,EAAU,GAAO,UAAAC,EAAY,MAAS,CAC/E,KAAM,CAAE,EAAAC,CAAA,EAAMC,EAAA,EACRC,EAAOF,EAAE,sBAAuB,CAAE,cAAe,EAAA,CAAM,GAAK,CAAA,EAC5DG,EAAUD,EAAK,SAAW,CAAA,EAC1BE,EAAcN,EAAUK,EAAQ,MAAM,EAAG,CAAC,EAAIA,EAEpD,OAAKD,EAAK,MAGRG,EAAAA,KAAC,MAAA,CACC,UAAW,uDAAuDP,EAAU,MAAQ,KAAK,cAAcC,CAAS,GAEhH,SAAA,CAAAO,EAAAA,IAAC,MAAA,CAAI,UAAW,GAAGR,EAAU,UAAY,SAAS,wBAA0B,WAAK,KAAA,CAAM,EACtFI,EAAK,MAAQI,EAAAA,IAAC,IAAA,CAAE,UAAW,GAAGR,EAAU,UAAY,SAAS,kBAAoB,SAAAI,EAAK,IAAA,CAAK,EAC3FE,EAAY,OAAS,SACnB,KAAA,CAAG,UAAW,aAAaN,EAAU,UAAY,SAAS,kBACxD,WAAY,IAAKS,GAChBF,OAAC,KAAA,CAAc,UAAU,0BACvB,SAAA,CAAAC,MAACE,GAAa,KAAMV,EAAU,GAAK,GAAI,UAAU,mBAAmB,EACnES,CAAA,GAFMA,CAGT,CACD,EACH,EAEDL,EAAK,MAAQI,EAAAA,IAAC,KAAE,UAAU,6BAA8B,WAAK,KAAK,EAClEV,GAAQM,EAAK,KACZG,EAAAA,KAAC,IAAA,CACC,KAAAT,EACA,QAAAC,EACA,UAAW,4GAA4GC,EAAU,OAAS,MAAM,GAE/I,SAAA,CAAAI,EAAK,IAAI,IAACI,EAAAA,IAACG,EAAA,CAAW,KAAM,EAAA,CAAI,CAAA,CAAA,CAAA,CACnC,CAAA,CAAA,EA1BkB,IA8B1B"}
|
|
@@ -0,0 +1,2 @@
|
|
|
1
|
+
import{c as h}from"./LanguageSwitcher-BD9N-dla.js";import{u as v,r as i,j as x}from"./index-Bqv2NztY.js";const T=[["path",{d:"M5 12h14",key:"1ays0h"}],["path",{d:"m12 5 7 7-7 7",key:"xquz4c"}]],j=h("arrow-right",T);const S=[["circle",{cx:"12",cy:"12",r:"10",key:"1mglay"}],["path",{d:"m9 12 2 2 4-4",key:"dzmm74"}]],A=h("circle-check",S),E=async t=>{const o=typeof t=="string"?t:String(t??"");if(!o)return{ok:!1,method:"unavailable"};if(typeof navigator<"u"&&navigator.clipboard?.writeText)try{return await navigator.clipboard.writeText(o),{ok:!0,method:"clipboard"}}catch{}if(typeof document>"u")return{ok:!1,method:"unavailable"};let e=null;try{return e=document.createElement("textarea"),e.value=o,e.setAttribute("readonly",""),e.style.position="fixed",e.style.top="0",e.style.left="0",e.style.opacity="0",e.style.pointerEvents="none",document.body.appendChild(e),e.focus(),e.select(),e.setSelectionRange(0,e.value.length),{ok:document.execCommand("copy"),method:"execCommand"}}catch{return{ok:!1,method:"execCommand"}}finally{e?.parentNode&&e.parentNode.removeChild(e)}},R=(t,{resetMs:o=1600,enabled:e=!0}={})=>{const{t:n}=v(),a=i.useRef(null),[r,l]=i.useState("idle"),c=i.useMemo(()=>typeof t=="string"?t:String(t??""),[t]),s=typeof window<"u"&&e&&!!c;i.useEffect(()=>()=>{a.current&&window.clearTimeout(a.current)},[]);const d=r==="copied"?n("common.copied",{defaultValue:"Copied"}):r==="error"?n("common.copyFailed",{defaultValue:"Copy failed"}):n("common.copy",{defaultValue:"Copy"}),p=i.useCallback(async()=>{if(!s)return!1;const u=await E(c);return l(u.ok?"copied":"error"),a.current&&window.clearTimeout(a.current),a.current=window.setTimeout(()=>l("idle"),o),u.ok},[s,o,c]);return{canCopy:s,copy:p,copyLabel:d,copyState:r}},B=({value:t,enabled:o=!0,resetMs:e,onCopied:n,onCopyFailed:a,onClick:r,type:l="button",children:c,disabled:s,...d})=>{const{["aria-label"]:p,...u}=d,{canCopy:f,copy:m,copyLabel:y,copyState:k}=R(t,{enabled:o,resetMs:e}),C=i.useCallback(async b=>{if(r?.(b),b?.defaultPrevented)return;await m()?n?.():a?.()},[m,r,n,a]),w=s||!f,g=typeof c=="function"?c({canCopy:f,copyLabel:y,copyState:k}):c??y;return x.jsx("button",{...u,type:l,onClick:C,disabled:w,"aria-label":p||y,children:g})};export{j as A,A as C,B as a,E as c};
|
|
2
|
+
//# sourceMappingURL=CopyButton-CmVmSaYn.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"CopyButton-CmVmSaYn.js","sources":["../../node_modules/lucide-react/dist/esm/icons/arrow-right.js","../../node_modules/lucide-react/dist/esm/icons/circle-check.js","../../src/lib/clipboard.js","../../src/hooks/useCopyButton.js","../../src/components/CopyButton.jsx"],"sourcesContent":["/**\n * @license lucide-react v0.563.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst __iconNode = [\n [\"path\", { d: \"M5 12h14\", key: \"1ays0h\" }],\n [\"path\", { d: \"m12 5 7 7-7 7\", key: \"xquz4c\" }]\n];\nconst ArrowRight = createLucideIcon(\"arrow-right\", __iconNode);\n\nexport { __iconNode, ArrowRight as default };\n//# sourceMappingURL=arrow-right.js.map\n","/**\n * @license lucide-react v0.563.0 - ISC\n *\n * This source code is licensed under the ISC license.\n * See the LICENSE file in the root directory of this source tree.\n */\n\nimport createLucideIcon from '../createLucideIcon.js';\n\nconst __iconNode = [\n [\"circle\", { cx: \"12\", cy: \"12\", r: \"10\", key: \"1mglay\" }],\n [\"path\", { d: \"m9 12 2 2 4-4\", key: \"dzmm74\" }]\n];\nconst CircleCheck = createLucideIcon(\"circle-check\", __iconNode);\n\nexport { __iconNode, CircleCheck as default };\n//# sourceMappingURL=circle-check.js.map\n","export const copyTextToClipboard = async (text) => {\n const value = typeof text === 'string' ? text : String(text ?? '');\n if (!value) return { ok: false, method: 'unavailable' };\n\n if (typeof navigator !== 'undefined' && navigator.clipboard?.writeText) {\n try {\n await navigator.clipboard.writeText(value);\n return { ok: true, method: 'clipboard' };\n } catch {\n // fallback below\n }\n }\n\n if (typeof document === 'undefined') return { ok: false, method: 'unavailable' };\n\n let textarea = null;\n try {\n textarea = document.createElement('textarea');\n textarea.value = value;\n textarea.setAttribute('readonly', '');\n textarea.style.position = 'fixed';\n textarea.style.top = '0';\n textarea.style.left = '0';\n textarea.style.opacity = '0';\n textarea.style.pointerEvents = 'none';\n document.body.appendChild(textarea);\n textarea.focus();\n textarea.select();\n textarea.setSelectionRange(0, textarea.value.length);\n const ok = document.execCommand('copy');\n return { ok, method: 'execCommand' };\n } catch {\n return { ok: false, method: 'execCommand' };\n } finally {\n if (textarea?.parentNode) textarea.parentNode.removeChild(textarea);\n }\n};\n\n","import { useCallback, useEffect, useMemo, useRef, useState } from 'react';\nimport { useTranslation } from 'react-i18next';\nimport { copyTextToClipboard } from '../lib/clipboard';\n\nconst useCopyButton = (text, { resetMs = 1600, enabled = true } = {}) => {\n const { t } = useTranslation();\n const timeoutRef = useRef(null);\n const [copyState, setCopyState] = useState('idle');\n\n const value = useMemo(() => (typeof text === 'string' ? text : String(text ?? '')), [text]);\n const canCopy = typeof window !== 'undefined' && enabled && Boolean(value);\n\n useEffect(() => {\n return () => {\n if (timeoutRef.current) window.clearTimeout(timeoutRef.current);\n };\n }, []);\n\n const copyLabel =\n copyState === 'copied'\n ? t('common.copied', { defaultValue: 'Copied' })\n : copyState === 'error'\n ? t('common.copyFailed', { defaultValue: 'Copy failed' })\n : t('common.copy', { defaultValue: 'Copy' });\n\n const copy = useCallback(async () => {\n if (!canCopy) return false;\n\n const result = await copyTextToClipboard(value);\n setCopyState(result.ok ? 'copied' : 'error');\n\n if (timeoutRef.current) window.clearTimeout(timeoutRef.current);\n timeoutRef.current = window.setTimeout(() => setCopyState('idle'), resetMs);\n\n return result.ok;\n }, [canCopy, resetMs, value]);\n\n return { canCopy, copy, copyLabel, copyState };\n};\n\nexport default useCopyButton;\n\n","import React, { useCallback } from 'react';\nimport useCopyButton from '../hooks/useCopyButton';\n\nconst CopyButton = ({\n value,\n enabled = true,\n resetMs,\n onCopied,\n onCopyFailed,\n onClick,\n type = 'button',\n children,\n disabled,\n ...rest\n}) => {\n const { ['aria-label']: ariaLabelProp, ...buttonProps } = rest;\n const { canCopy, copy, copyLabel, copyState } = useCopyButton(value, { enabled, resetMs });\n\n const handleClick = useCallback(\n async (event) => {\n onClick?.(event);\n if (event?.defaultPrevented) return;\n\n const ok = await copy();\n if (ok) onCopied?.();\n else onCopyFailed?.();\n },\n [copy, onClick, onCopied, onCopyFailed]\n );\n\n const isDisabled = disabled || !canCopy;\n const content =\n typeof children === 'function' ? children({ canCopy, copyLabel, copyState }) : children ?? copyLabel;\n\n return (\n <button\n {...buttonProps}\n type={type}\n onClick={handleClick}\n disabled={isDisabled}\n aria-label={ariaLabelProp || copyLabel}\n >\n {content}\n </button>\n );\n};\n\nexport default CopyButton;\n\n"],"names":["__iconNode","ArrowRight","createLucideIcon","CircleCheck","copyTextToClipboard","text","value","textarea","useCopyButton","resetMs","enabled","t","useTranslation","timeoutRef","useRef","copyState","setCopyState","useState","useMemo","canCopy","useEffect","copyLabel","copy","useCallback","result","CopyButton","onCopied","onCopyFailed","onClick","type","children","disabled","rest","ariaLabelProp","buttonProps","handleClick","event","isDisabled","content","jsx"],"mappings":"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","x_google_ignoreList":[0,1]}
|
|
@@ -1,4 +1,4 @@
|
|
|
1
|
-
import{u as L,r as T,t as l,j as e,b as a}from"./index-
|
|
1
|
+
import{u as L,r as T,t as l,j as e,b as a}from"./index-Bqv2NztY.js";import{A as d,a as u}from"./CopyButton-CmVmSaYn.js";import{C as I}from"./CliPreflightCard-D7utpFux.js";import{c as y,a as U,S as B}from"./LanguageSwitcher-BD9N-dla.js";import{S as P}from"./StickyMobileCta-C_x2pUIF.js";import{S as F}from"./SiteHeader-DxsqNPnt.js";import{C as f}from"./copy-AQdWJCcs.js";import{C as b}from"./chevron-down-_xIkRLaA.js";const A=[["path",{d:"M20 10a1 1 0 0 0 1-1V6a1 1 0 0 0-1-1h-2.5a1 1 0 0 1-.8-.4l-.9-1.2A1 1 0 0 0 15 3h-2a1 1 0 0 0-1 1v5a1 1 0 0 0 1 1Z",key:"hod4my"}],["path",{d:"M20 21a1 1 0 0 0 1-1v-3a1 1 0 0 0-1-1h-2.9a1 1 0 0 1-.88-.55l-.42-.85a1 1 0 0 0-.92-.6H13a1 1 0 0 0-1 1v5a1 1 0 0 0 1 1Z",key:"w4yl2u"}],["path",{d:"M3 5a2 2 0 0 0 2 2h3",key:"f2jnh7"}],["path",{d:"M3 3v13a2 2 0 0 0 2 2h3",key:"k8epm1"}]],E=y("folder-tree",A);const M=[["path",{d:"m22 7-8.991 5.727a2 2 0 0 1-2.009 0L2 7",key:"132q7q"}],["rect",{x:"2",y:"4",width:"20",height:"16",rx:"2",key:"izxlao"}]],R=y("mail",M);const D=[["path",{d:"M22 17a2 2 0 0 1-2 2H6.828a2 2 0 0 0-1.414.586l-2.202 2.202A.71.71 0 0 1 2 21.286V5a2 2 0 0 1 2-2h16a2 2 0 0 1 2 2z",key:"18887p"}]],O=y("message-square",D),H=o=>(o||"").split("-")[0]==="ja"?"ja":"en",j={en:{badge:"Fastlane cheat sheet",title:"Fastlane screenshot folder structure",subtitle:"Stop manual renaming and folder sorting. Copy/paste the paths Fastlane expects (deliver + supply), then run reproducible exports with ShipScreens.",primaryCta:"Run CLI first export",secondaryCta:"Open sample project (free)",heroCliTitle:"CLI quickstart (2 steps)",heroCliNote:"wizard → build (raw mode, no Playwright).",heroCliSummary:"Outputs: fastlane/ + reproducible ZIP (local/CI).",heroCliCopyLabel:"Copy all commands",heroCliTemplatesLabel:"Starter templates",heroCliConfigLabel:"config.yml",heroCliCsvLabel:"copy.csv",heroCliCmd:["npx --yes shipscreens wizard","npx --yes shipscreens build --mode raw --zip --out out/fastlane"].join(`
|
|
2
2
|
`),proUnlockTitle:"Unlock Pro (CLI)",proUnlockBody:"Remove the watermark and unlock full matrix batch exports via CLI auth:",proUnlockCmd:"npx --yes shipscreens auth login",proUnlockNote:"Completes a one-time browser sign-in; then rerun build with --require-pro.",trustNote:"Privacy-first: exports run locally (browser/CI). No uploads to ShipScreens.",structureTitle:"Expected paths (deliver + supply)",structureBody:"If paths or numbering drift, Fastlane uploads fail. Keep this structure consistent per locale and device/bucket.",structureCode:`fastlane/
|
|
3
3
|
screenshots/ # iOS (deliver)
|
|
4
4
|
en-US/
|
|
@@ -46,7 +46,7 @@ npm run shipscreens:lock -- --check
|
|
|
46
46
|
npm run shipscreens:build -- --zip
|
|
47
47
|
npm run shipscreens:verify -- --zip
|
|
48
48
|
npm run shipscreens:stage -- --profile appstore --out stage/appstore
|
|
49
|
-
npm run shipscreens:stage -- --profile playstore --out stage/playstore`,partnerTitle:"初回エクスポートが詰まったら",partnerBody:"15分だけ現状を聞かせてください。最短で Fastlane-ready まで通す改善案を返します。",partnerEmailCta:"メールする",partnerDmCta:"XでDM"}},m=({label:o,code:r,tool:n,assetKey:s,toggleLabel:x,defaultOpen:i})=>e.jsxs("div",{className:"rounded-2xl border border-slate-800 bg-slate-950/80 p-5 space-y-3",children:[e.jsxs("div",{className:"flex items-center justify-between gap-3",children:[e.jsx("div",{className:"min-w-0",children:o&&e.jsx("div",{className:"text-[11px] uppercase tracking-[0.2em] text-slate-500",children:o})}),e.jsx(u,{value:r,onCopied:()=>l("tool_download",{tool:n,asset:s}),className:"shrink-0 inline-flex items-center gap-2 text-[11px] px-2.5 py-1.5 rounded-md border border-slate-700 bg-slate-900/60 text-slate-200 hover:bg-slate-900 transition",children:({copyLabel:h})=>e.jsxs(e.Fragment,{children:[e.jsx(f,{size:14}),h]})})]}),e.jsxs("details",{className:"group",open:i,children:[e.jsxs("summary",{className:"flex items-center justify-between text-[11px] font-semibold text-slate-400 cursor-pointer list-none",children:[e.jsx("span",{children:x}),e.jsx(b,{size:14,className:"text-slate-500 transition-transform duration-200 group-open:rotate-180"})]}),e.jsx("pre",{className:"mt-2 text-xs text-slate-200 font-mono whitespace-pre leading-relaxed overflow-auto",children:r})]})]}),
|
|
49
|
+
npm run shipscreens:stage -- --profile playstore --out stage/playstore`,partnerTitle:"初回エクスポートが詰まったら",partnerBody:"15分だけ現状を聞かせてください。最短で Fastlane-ready まで通す改善案を返します。",partnerEmailCta:"メールする",partnerDmCta:"XでDM"}},m=({label:o,code:r,tool:n,assetKey:s,toggleLabel:x,defaultOpen:i})=>e.jsxs("div",{className:"rounded-2xl border border-slate-800 bg-slate-950/80 p-5 space-y-3",children:[e.jsxs("div",{className:"flex items-center justify-between gap-3",children:[e.jsx("div",{className:"min-w-0",children:o&&e.jsx("div",{className:"text-[11px] uppercase tracking-[0.2em] text-slate-500",children:o})}),e.jsx(u,{value:r,onCopied:()=>l("tool_download",{tool:n,asset:s}),className:"shrink-0 inline-flex items-center gap-2 text-[11px] px-2.5 py-1.5 rounded-md border border-slate-700 bg-slate-900/60 text-slate-200 hover:bg-slate-900 transition",children:({copyLabel:h})=>e.jsxs(e.Fragment,{children:[e.jsx(f,{size:14}),h]})})]}),e.jsxs("details",{className:"group",open:i,children:[e.jsxs("summary",{className:"flex items-center justify-between text-[11px] font-semibold text-slate-400 cursor-pointer list-none",children:[e.jsx("span",{children:x}),e.jsx(b,{size:14,className:"text-slate-500 transition-transform duration-200 group-open:rotate-180"})]}),e.jsx("pre",{className:"mt-2 text-xs text-slate-200 font-mono whitespace-pre leading-relaxed overflow-auto",children:r})]})]}),Y=()=>{const{i18n:o,t:r}=L(),n=H(o.resolvedLanguage||o.language),s=j[n]||j.en,x="/app/?sample=5panel&entry_source=fastlane_screenshots_open_app_header",i="/tools/agent-cli/",h="/tools/first-export/?entry_source=fastlane_screenshots_primary_cta",g="/app/?sample=5panel&entry_source=fastlane_screenshots_open_sample_project",C="/downloads/shipscreens-agent-cli-config.yml",_="/downloads/shipscreens-agent-cli-copy.csv",w=r("common.copy",{defaultValue:"Copy"}),c=r("common.showCommands",{defaultValue:"Show commands"}),p=typeof window>"u"?!0:window.matchMedia("(min-width: 640px)").matches,k="support@shimaumaservices.co.jp",N=n==="ja"?"ShipScreens ヒアリング希望":"ShipScreens Founding / Design Partner",v=n==="ja"?["ShipScreens チーム様","","15分ヒアリングを希望します。","","- アプリ名 / URL:","- 現在のスクショ作業フロー:","- 端末数 / 言語数:","","よろしくお願いします。"].join(`
|
|
50
50
|
`):["Hi ShipScreens team,","","I want a 15-min workflow review to unblock my first Fastlane-ready export.","","- App name / link:","- Current screenshot workflow:","- #devices / #locales:","","Thanks!"].join(`
|
|
51
|
-
`),S=`mailto:${k}?subject=${encodeURIComponent(N)}&body=${encodeURIComponent(v)}`;return U("titles.fastlaneScreenshots",{defaultValue:"Fastlane screenshots - ShipScreens"}),T.useEffect(()=>{l("tool_view",{tool:"fastlane_screenshots"})},[]),e.jsxs("div",{className:"min-h-screen bg-gradient-to-b from-slate-950 via-slate-900 to-slate-950 text-white",children:[e.jsx(B,{}),e.jsx(F,{variant:"dark",active:"tools",openAppHref:x,onToolsClick:t=>a(t,"tool_cta_click",{tool:"fastlane_screenshots",cta:"open_tools_header"}),onPricingClick:t=>a(t,"tool_cta_click",{tool:"fastlane_screenshots",cta:"pricing_header"}),onOpenAppClick:t=>a(t,"tool_cta_click",{tool:"fastlane_screenshots",cta:"open_app_header"}),primaryCta:{href:h,label:e.jsxs("span",{className:"inline-flex items-center gap-2",children:[r("landing.nav.primaryCta")," ",e.jsx(d,{size:16})]}),onClick:t=>a(t,"tool_cta_click",{tool:"fastlane_screenshots",cta:"open_first_export_header"})}}),e.jsxs("main",{className:"max-w-5xl mx-auto px-6 pb-24 space-y-10",children:[e.jsxs("section",{className:"max-w-3xl mx-auto text-center space-y-4 pt-6",children:[e.jsxs("div",{className:"inline-flex items-center gap-2 px-3 py-1.5 rounded-full border border-slate-800 bg-slate-900/60 text-slate-200 text-xs font-semibold",children:[e.jsx(E,{size:14}),s.badge]}),e.jsx("h1",{className:"text-3xl md:text-5xl font-black leading-tight",children:s.title}),e.jsx("p",{className:"text-slate-300 text-lg leading-relaxed",children:s.subtitle}),e.jsx("div",{className:"flex flex-col sm:flex-row gap-3 justify-center pt-2",children:e.jsxs("a",{href:i,onClick:t=>a(t,"tool_cta_click",{tool:"fastlane_screenshots",cta:"open_agent_cli_hero"}),className:"inline-flex items-center justify-center gap-2 px-5 py-3 rounded-xl bg-blue-500 text-white font-bold hover:bg-blue-600 transition",children:[s.primaryCta," ",e.jsx(d,{size:16})]})}),e.jsxs("div",{className:"max-w-xl mx-auto text-left bg-slate-900/60 border border-slate-800 rounded-2xl p-4 space-y-2",children:[e.jsx("div",{className:"text-[11px] uppercase tracking-[0.2em] text-slate-500 font-semibold",children:s.heroCliTitle}),e.jsx("p",{className:"text-xs text-slate-400",children:s.heroCliNote}),e.jsx("p",{className:"text-xs text-slate-500",children:s.heroCliSummary}),e.jsx(u,{value:s.heroCliCmd,onCopied:()=>l("tool_cta_click",{tool:"fastlane_screenshots",cta:"copy_cli_hero"}),className:"inline-flex items-center justify-center gap-2 px-3 py-2 rounded-lg border border-slate-700 bg-slate-950 text-slate-200 hover:bg-slate-900 transition text-xs font-semibold",children:({copyLabel:t,copyState:z})=>e.jsxs(e.Fragment,{children:[e.jsx(f,{size:14}),z==="idle"?s.heroCliCopyLabel:t]})}),e.jsxs("details",{className:"group",open:p,children:[e.jsxs("summary",{className:"flex items-center justify-between text-[11px] font-semibold text-slate-400 cursor-pointer list-none",children:[e.jsx("span",{children:c}),e.jsx(b,{size:14,className:"text-slate-500 transition-transform duration-200 group-open:rotate-180"})]}),e.jsx("div",{className:"mt-2 rounded-xl border border-slate-800 bg-slate-950 p-3",children:e.jsx("pre",{className:"text-xs text-slate-200 whitespace-pre-wrap",children:s.heroCliCmd})})]}),e.jsxs("div",{className:"pt-1 space-y-2",children:[e.jsx("div",{className:"text-[10px] uppercase tracking-[0.2em] text-slate-500 font-semibold",children:s.heroCliTemplatesLabel}),e.jsxs("div",{className:"flex flex-wrap gap-2",children:[e.jsx("a",{href:C,download:!0,onClick:()=>l("tool_download",{tool:"fastlane_screenshots",asset:"config_template"}),className:"inline-flex items-center justify-center gap-2 px-2.5 py-1.5 rounded-md border border-slate-700 bg-slate-950 text-[11px] text-slate-200 hover:bg-slate-900 transition",children:s.heroCliConfigLabel}),e.jsx("a",{href:_,download:!0,onClick:()=>l("tool_download",{tool:"fastlane_screenshots",asset:"copy_template"}),className:"inline-flex items-center justify-center gap-2 px-2.5 py-1.5 rounded-md border border-slate-700 bg-slate-950 text-[11px] text-slate-200 hover:bg-slate-900 transition",children:s.heroCliCsvLabel})]})]})]}),e.jsx(I,{compact:!0,href:"/tools/agent-cli/#preflight",onClick:t=>a(t,"tool_cta_click",{tool:"fastlane_screenshots",cta:"open_cli_preflight"}),className:"max-w-xl mx-auto"}),e.jsx("section",{className:"max-w-xl mx-auto",children:e.jsxs("div",{className:"bg-slate-900/60 border border-slate-800 rounded-2xl p-5 space-y-3",children:[e.jsxs("div",{className:"flex items-center justify-between gap-3",children:[e.jsx("div",{className:"text-sm font-bold text-white",children:s.proUnlockTitle}),e.jsx("span",{className:"text-[10px] font-semibold tracking-[0.2em] text-amber-200 bg-amber-500/10 border border-amber-400/30 px-2 py-1 rounded-full",children:"PRO"})]}),s.proUnlockBody&&e.jsx("p",{className:"text-sm text-slate-300",children:s.proUnlockBody}),e.jsx("div",{className:"rounded-xl border border-slate-800 bg-slate-950/80 p-4",children:e.jsx("pre",{className:"text-xs text-slate-200 whitespace-pre-wrap",children:s.proUnlockCmd})}),e.jsx(u,{value:s.proUnlockCmd,onCopied:()=>l("tool_cta_click",{tool:"fastlane_screenshots",cta:"copy_cli_pro_unlock"}),className:"inline-flex items-center justify-center gap-2 px-4 py-2 rounded-lg border border-slate-700 bg-slate-950 text-slate-200 hover:bg-slate-900 transition text-sm font-semibold",children:({copyLabel:t})=>e.jsxs(e.Fragment,{children:[e.jsx(f,{size:14}),t||w]})}),s.proUnlockNote&&e.jsx("div",{className:"text-xs text-slate-500",children:s.proUnlockNote})]})}),e.jsx("div",{className:"text-xs text-slate-500 font-medium",children:s.trustNote})]}),e.jsxs("section",{className:"bg-slate-900/60 border border-slate-800 rounded-2xl p-6 space-y-3",children:[e.jsx("h2",{className:"text-lg font-bold text-white",children:s.structureTitle}),e.jsx("p",{className:"text-sm text-slate-300",children:s.structureBody}),e.jsx(m,{label:"paths",code:s.structureCode,tool:"fastlane_screenshots",assetKey:"fastlane_paths",toggleLabel:c,defaultOpen:p})]}),e.jsxs("section",{className:"bg-slate-900/60 border border-slate-800 rounded-2xl p-6 space-y-3",children:[e.jsx("h2",{className:"text-lg font-bold text-white",children:s.bucketsTitle}),e.jsx("p",{className:"text-sm text-slate-300",children:s.bucketsBody})]}),e.jsxs("section",{className:"bg-slate-900/60 border border-slate-800 rounded-2xl p-6 space-y-3",children:[e.jsx("h2",{className:"text-lg font-bold text-white",children:s.localTitle}),e.jsx("p",{className:"text-sm text-slate-300",children:s.localBody}),e.jsx(m,{label:"local",code:s.localCode,tool:"fastlane_screenshots",assetKey:"local_quickstart",toggleLabel:c,defaultOpen:p})]}),e.jsxs("details",{className:"bg-slate-900/60 border border-slate-800 rounded-2xl p-6 group",children:[e.jsxs("summary",{className:"flex items-center justify-between text-sm font-bold text-white cursor-pointer list-none",children:[e.jsx("span",{children:s.pipelineTitle}),e.jsxs("span",{className:"flex items-center gap-2 text-[10px] font-semibold text-slate-400",children:[n==="ja"?"詳細":"ADVANCED",e.jsx(b,{size:14,className:"text-slate-500"})]})]}),e.jsxs("div",{className:"mt-3 space-y-3",children:[e.jsx("p",{className:"text-sm text-slate-300",children:s.pipelineBody}),e.jsx(m,{label:"ci",code:s.pipelineCode,tool:"fastlane_screenshots",assetKey:"ci_pipeline",toggleLabel:c,defaultOpen:p})]})]}),e.jsxs("section",{className:"bg-slate-900/60 border border-slate-800 rounded-2xl p-6 flex flex-col md:flex-row items-start md:items-center justify-between gap-4",children:[e.jsxs("div",{className:"space-y-1",children:[e.jsx("div",{className:"text-sm font-bold text-white",children:s.partnerTitle}),e.jsx("div",{className:"text-sm text-slate-300",children:s.partnerBody})]}),e.jsxs("div",{className:"flex flex-col sm:flex-row gap-3 w-full md:w-auto",children:[e.jsxs("a",{href:S,onClick:()=>l("tool_cta_click",{tool:"fastlane_screenshots",cta:"email_design_partner"}),className:"inline-flex items-center justify-center gap-2 px-4 py-3 rounded-xl bg-white text-slate-900 font-bold hover:scale-[1.02] transition w-full md:w-auto",children:[e.jsx(R,{size:16}),s.partnerEmailCta]}),e.jsxs("a",{href:"https://x.com/shipscreenscom",target:"_blank",rel:"noopener noreferrer",onClick:()=>l("tool_cta_click",{tool:"fastlane_screenshots",cta:"dm_design_partner"}),className:"inline-flex items-center justify-center gap-2 px-4 py-3 rounded-xl border border-slate-700 bg-slate-950 text-slate-200 font-bold hover:bg-slate-900 transition w-full md:w-auto",children:[e.jsx(O,{size:16}),s.partnerDmCta]})]})]}),e.jsx("section",{className:"max-w-3xl mx-auto text-center space-y-3 pt-2",children:e.jsxs("div",{className:"flex flex-col sm:flex-row gap-3 justify-center",children:[e.jsxs("a",{href:i,onClick:t=>a(t,"tool_cta_click",{tool:"fastlane_screenshots",cta:"open_agent_cli_footer"}),className:"inline-flex items-center justify-center gap-2 px-5 py-3 rounded-xl bg-white text-slate-900 font-bold hover:scale-[1.02] transition",children:[s.primaryCta," ",e.jsx(d,{size:16})]}),e.jsxs("a",{href:g,onClick:t=>a(t,"tool_cta_click",{tool:"fastlane_screenshots",cta:"open_sample_project_footer"}),className:"inline-flex items-center justify-center gap-2 px-5 py-3 rounded-xl border border-slate-700 bg-slate-950 text-slate-200 hover:bg-slate-900 transition",children:[s.secondaryCta," ",e.jsx(d,{size:16})]})]})})]}),e.jsx(P,{primary:{label:s.primaryCta,href:i,onClick:t=>a(t,"tool_cta_click",{tool:"fastlane_screenshots",cta:"sticky_primary"})},secondary:{label:s.secondaryCta,href:g,onClick:t=>a(t,"tool_cta_click",{tool:"fastlane_screenshots",cta:"sticky_secondary"})}})]})};export{
|
|
52
|
-
//# sourceMappingURL=FastlaneScreenshots-
|
|
51
|
+
`),S=`mailto:${k}?subject=${encodeURIComponent(N)}&body=${encodeURIComponent(v)}`;return U("titles.fastlaneScreenshots",{defaultValue:"Fastlane screenshots - ShipScreens"}),T.useEffect(()=>{l("tool_view",{tool:"fastlane_screenshots"})},[]),e.jsxs("div",{className:"min-h-screen bg-gradient-to-b from-slate-950 via-slate-900 to-slate-950 text-white",children:[e.jsx(B,{}),e.jsx(F,{variant:"dark",active:"tools",openAppHref:x,onToolsClick:t=>a(t,"tool_cta_click",{tool:"fastlane_screenshots",cta:"open_tools_header"}),onPricingClick:t=>a(t,"tool_cta_click",{tool:"fastlane_screenshots",cta:"pricing_header"}),onOpenAppClick:t=>a(t,"tool_cta_click",{tool:"fastlane_screenshots",cta:"open_app_header"}),primaryCta:{href:h,label:e.jsxs("span",{className:"inline-flex items-center gap-2",children:[r("landing.nav.primaryCta")," ",e.jsx(d,{size:16})]}),onClick:t=>a(t,"tool_cta_click",{tool:"fastlane_screenshots",cta:"open_first_export_header"})}}),e.jsxs("main",{className:"max-w-5xl mx-auto px-6 pb-24 space-y-10",children:[e.jsxs("section",{className:"max-w-3xl mx-auto text-center space-y-4 pt-6",children:[e.jsxs("div",{className:"inline-flex items-center gap-2 px-3 py-1.5 rounded-full border border-slate-800 bg-slate-900/60 text-slate-200 text-xs font-semibold",children:[e.jsx(E,{size:14}),s.badge]}),e.jsx("h1",{className:"text-3xl md:text-5xl font-black leading-tight",children:s.title}),e.jsx("p",{className:"text-slate-300 text-lg leading-relaxed",children:s.subtitle}),e.jsx("div",{className:"flex flex-col sm:flex-row gap-3 justify-center pt-2",children:e.jsxs("a",{href:i,onClick:t=>a(t,"tool_cta_click",{tool:"fastlane_screenshots",cta:"open_agent_cli_hero"}),className:"inline-flex items-center justify-center gap-2 px-5 py-3 rounded-xl bg-blue-500 text-white font-bold hover:bg-blue-600 transition",children:[s.primaryCta," ",e.jsx(d,{size:16})]})}),e.jsxs("div",{className:"max-w-xl mx-auto text-left bg-slate-900/60 border border-slate-800 rounded-2xl p-4 space-y-2",children:[e.jsx("div",{className:"text-[11px] uppercase tracking-[0.2em] text-slate-500 font-semibold",children:s.heroCliTitle}),e.jsx("p",{className:"text-xs text-slate-400",children:s.heroCliNote}),e.jsx("p",{className:"text-xs text-slate-500",children:s.heroCliSummary}),e.jsx(u,{value:s.heroCliCmd,onCopied:()=>l("tool_cta_click",{tool:"fastlane_screenshots",cta:"copy_cli_hero"}),className:"inline-flex items-center justify-center gap-2 px-3 py-2 rounded-lg border border-slate-700 bg-slate-950 text-slate-200 hover:bg-slate-900 transition text-xs font-semibold",children:({copyLabel:t,copyState:z})=>e.jsxs(e.Fragment,{children:[e.jsx(f,{size:14}),z==="idle"?s.heroCliCopyLabel:t]})}),e.jsxs("details",{className:"group",open:p,children:[e.jsxs("summary",{className:"flex items-center justify-between text-[11px] font-semibold text-slate-400 cursor-pointer list-none",children:[e.jsx("span",{children:c}),e.jsx(b,{size:14,className:"text-slate-500 transition-transform duration-200 group-open:rotate-180"})]}),e.jsx("div",{className:"mt-2 rounded-xl border border-slate-800 bg-slate-950 p-3",children:e.jsx("pre",{className:"text-xs text-slate-200 whitespace-pre-wrap",children:s.heroCliCmd})})]}),e.jsxs("div",{className:"pt-1 space-y-2",children:[e.jsx("div",{className:"text-[10px] uppercase tracking-[0.2em] text-slate-500 font-semibold",children:s.heroCliTemplatesLabel}),e.jsxs("div",{className:"flex flex-wrap gap-2",children:[e.jsx("a",{href:C,download:!0,onClick:()=>l("tool_download",{tool:"fastlane_screenshots",asset:"config_template"}),className:"inline-flex items-center justify-center gap-2 px-2.5 py-1.5 rounded-md border border-slate-700 bg-slate-950 text-[11px] text-slate-200 hover:bg-slate-900 transition",children:s.heroCliConfigLabel}),e.jsx("a",{href:_,download:!0,onClick:()=>l("tool_download",{tool:"fastlane_screenshots",asset:"copy_template"}),className:"inline-flex items-center justify-center gap-2 px-2.5 py-1.5 rounded-md border border-slate-700 bg-slate-950 text-[11px] text-slate-200 hover:bg-slate-900 transition",children:s.heroCliCsvLabel})]})]})]}),e.jsx(I,{compact:!0,href:"/tools/agent-cli/#preflight",onClick:t=>a(t,"tool_cta_click",{tool:"fastlane_screenshots",cta:"open_cli_preflight"}),className:"max-w-xl mx-auto"}),e.jsx("section",{className:"max-w-xl mx-auto",children:e.jsxs("div",{className:"bg-slate-900/60 border border-slate-800 rounded-2xl p-5 space-y-3",children:[e.jsxs("div",{className:"flex items-center justify-between gap-3",children:[e.jsx("div",{className:"text-sm font-bold text-white",children:s.proUnlockTitle}),e.jsx("span",{className:"text-[10px] font-semibold tracking-[0.2em] text-amber-200 bg-amber-500/10 border border-amber-400/30 px-2 py-1 rounded-full",children:"PRO"})]}),s.proUnlockBody&&e.jsx("p",{className:"text-sm text-slate-300",children:s.proUnlockBody}),e.jsx("div",{className:"rounded-xl border border-slate-800 bg-slate-950/80 p-4",children:e.jsx("pre",{className:"text-xs text-slate-200 whitespace-pre-wrap",children:s.proUnlockCmd})}),e.jsx(u,{value:s.proUnlockCmd,onCopied:()=>l("tool_cta_click",{tool:"fastlane_screenshots",cta:"copy_cli_pro_unlock"}),className:"inline-flex items-center justify-center gap-2 px-4 py-2 rounded-lg border border-slate-700 bg-slate-950 text-slate-200 hover:bg-slate-900 transition text-sm font-semibold",children:({copyLabel:t})=>e.jsxs(e.Fragment,{children:[e.jsx(f,{size:14}),t||w]})}),s.proUnlockNote&&e.jsx("div",{className:"text-xs text-slate-500",children:s.proUnlockNote})]})}),e.jsx("div",{className:"text-xs text-slate-500 font-medium",children:s.trustNote})]}),e.jsxs("section",{className:"bg-slate-900/60 border border-slate-800 rounded-2xl p-6 space-y-3",children:[e.jsx("h2",{className:"text-lg font-bold text-white",children:s.structureTitle}),e.jsx("p",{className:"text-sm text-slate-300",children:s.structureBody}),e.jsx(m,{label:"paths",code:s.structureCode,tool:"fastlane_screenshots",assetKey:"fastlane_paths",toggleLabel:c,defaultOpen:p})]}),e.jsxs("section",{className:"bg-slate-900/60 border border-slate-800 rounded-2xl p-6 space-y-3",children:[e.jsx("h2",{className:"text-lg font-bold text-white",children:s.bucketsTitle}),e.jsx("p",{className:"text-sm text-slate-300",children:s.bucketsBody})]}),e.jsxs("section",{className:"bg-slate-900/60 border border-slate-800 rounded-2xl p-6 space-y-3",children:[e.jsx("h2",{className:"text-lg font-bold text-white",children:s.localTitle}),e.jsx("p",{className:"text-sm text-slate-300",children:s.localBody}),e.jsx(m,{label:"local",code:s.localCode,tool:"fastlane_screenshots",assetKey:"local_quickstart",toggleLabel:c,defaultOpen:p})]}),e.jsxs("details",{className:"bg-slate-900/60 border border-slate-800 rounded-2xl p-6 group",children:[e.jsxs("summary",{className:"flex items-center justify-between text-sm font-bold text-white cursor-pointer list-none",children:[e.jsx("span",{children:s.pipelineTitle}),e.jsxs("span",{className:"flex items-center gap-2 text-[10px] font-semibold text-slate-400",children:[n==="ja"?"詳細":"ADVANCED",e.jsx(b,{size:14,className:"text-slate-500"})]})]}),e.jsxs("div",{className:"mt-3 space-y-3",children:[e.jsx("p",{className:"text-sm text-slate-300",children:s.pipelineBody}),e.jsx(m,{label:"ci",code:s.pipelineCode,tool:"fastlane_screenshots",assetKey:"ci_pipeline",toggleLabel:c,defaultOpen:p})]})]}),e.jsxs("section",{className:"bg-slate-900/60 border border-slate-800 rounded-2xl p-6 flex flex-col md:flex-row items-start md:items-center justify-between gap-4",children:[e.jsxs("div",{className:"space-y-1",children:[e.jsx("div",{className:"text-sm font-bold text-white",children:s.partnerTitle}),e.jsx("div",{className:"text-sm text-slate-300",children:s.partnerBody})]}),e.jsxs("div",{className:"flex flex-col sm:flex-row gap-3 w-full md:w-auto",children:[e.jsxs("a",{href:S,onClick:()=>l("tool_cta_click",{tool:"fastlane_screenshots",cta:"email_design_partner"}),className:"inline-flex items-center justify-center gap-2 px-4 py-3 rounded-xl bg-white text-slate-900 font-bold hover:scale-[1.02] transition w-full md:w-auto",children:[e.jsx(R,{size:16}),s.partnerEmailCta]}),e.jsxs("a",{href:"https://x.com/shipscreenscom",target:"_blank",rel:"noopener noreferrer",onClick:()=>l("tool_cta_click",{tool:"fastlane_screenshots",cta:"dm_design_partner"}),className:"inline-flex items-center justify-center gap-2 px-4 py-3 rounded-xl border border-slate-700 bg-slate-950 text-slate-200 font-bold hover:bg-slate-900 transition w-full md:w-auto",children:[e.jsx(O,{size:16}),s.partnerDmCta]})]})]}),e.jsx("section",{className:"max-w-3xl mx-auto text-center space-y-3 pt-2",children:e.jsxs("div",{className:"flex flex-col sm:flex-row gap-3 justify-center",children:[e.jsxs("a",{href:i,onClick:t=>a(t,"tool_cta_click",{tool:"fastlane_screenshots",cta:"open_agent_cli_footer"}),className:"inline-flex items-center justify-center gap-2 px-5 py-3 rounded-xl bg-white text-slate-900 font-bold hover:scale-[1.02] transition",children:[s.primaryCta," ",e.jsx(d,{size:16})]}),e.jsxs("a",{href:g,onClick:t=>a(t,"tool_cta_click",{tool:"fastlane_screenshots",cta:"open_sample_project_footer"}),className:"inline-flex items-center justify-center gap-2 px-5 py-3 rounded-xl border border-slate-700 bg-slate-950 text-slate-200 hover:bg-slate-900 transition",children:[s.secondaryCta," ",e.jsx(d,{size:16})]})]})})]}),e.jsx(P,{primary:{label:s.primaryCta,href:i,onClick:t=>a(t,"tool_cta_click",{tool:"fastlane_screenshots",cta:"sticky_primary"})},secondary:{label:s.secondaryCta,href:g,onClick:t=>a(t,"tool_cta_click",{tool:"fastlane_screenshots",cta:"sticky_secondary"})}})]})};export{Y as default};
|
|
52
|
+
//# sourceMappingURL=FastlaneScreenshots-CRMcetq-.js.map
|