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.
Files changed (260) hide show
  1. package/README.md +0 -8
  2. package/bin/shipscreens.js +223 -28
  3. package/cli/assets/demo-screens/01.png +0 -0
  4. package/cli/assets/demo-screens/02.png +0 -0
  5. package/cli/assets/demo-screens/03.png +0 -0
  6. package/cli/assets/demo-screens/04.png +0 -0
  7. package/cli/commands/build.js +27 -27
  8. package/cli/schema.js +59 -20
  9. package/dist/app/assets/{AgentCli-8e28laT4.js → AgentCli-FWNCO1pb.js} +5 -5
  10. package/dist/app/assets/AgentCli-FWNCO1pb.js.map +1 -0
  11. package/dist/app/assets/App-yU7CFXCv.js +13 -0
  12. package/dist/app/assets/App-yU7CFXCv.js.map +1 -0
  13. package/dist/app/assets/{AppReviewAso-OLwc4Rw_.js → AppReviewAso-BYfaP1Lu.js} +3 -3
  14. package/dist/{assets/AppReviewAso-OLwc4Rw_.js.map → app/assets/AppReviewAso-BYfaP1Lu.js.map} +1 -1
  15. package/dist/app/assets/{Cancelled-BoeZQa1S.js → Cancelled-66ixTUrm.js} +2 -2
  16. package/dist/app/assets/{Cancelled-BoeZQa1S.js.map → Cancelled-66ixTUrm.js.map} +1 -1
  17. package/dist/app/assets/CliPreflightCard-D7utpFux.js +2 -0
  18. package/dist/app/assets/{CliPreflightCard-CxYyogdF.js.map → CliPreflightCard-D7utpFux.js.map} +1 -1
  19. package/dist/app/assets/CopyButton-CmVmSaYn.js +2 -0
  20. package/dist/app/assets/CopyButton-CmVmSaYn.js.map +1 -0
  21. package/dist/app/assets/{FastlaneScreenshots-CFT6IiRb.js → FastlaneScreenshots-CRMcetq-.js} +4 -4
  22. package/dist/{assets/FastlaneScreenshots-CFT6IiRb.js.map → app/assets/FastlaneScreenshots-CRMcetq-.js.map} +1 -1
  23. package/dist/app/assets/{FirstExport-B_UDacZm.js → FirstExport-C0WgL4Hl.js} +3 -3
  24. package/dist/{assets/FirstExport-B_UDacZm.js.map → app/assets/FirstExport-C0WgL4Hl.js.map} +1 -1
  25. package/dist/app/assets/{FivePanelFramework-C1z_xUbe.js → FivePanelFramework-BwCRmXIK.js} +3 -3
  26. package/dist/{assets/FivePanelFramework-C1z_xUbe.js.map → app/assets/FivePanelFramework-BwCRmXIK.js.map} +1 -1
  27. package/dist/app/assets/{ForgotPassword-ZQ8U3ejz.js → ForgotPassword-B9_si1tH.js} +2 -2
  28. package/dist/{assets/ForgotPassword-ZQ8U3ejz.js.map → app/assets/ForgotPassword-B9_si1tH.js.map} +1 -1
  29. package/dist/app/assets/Landing-s1ni1n-7.js +2 -0
  30. package/dist/app/assets/Landing-s1ni1n-7.js.map +1 -0
  31. package/dist/app/assets/{LanguageSwitcher-D93nCuuR.js → LanguageSwitcher-BD9N-dla.js} +2 -2
  32. package/dist/{assets/LanguageSwitcher-D93nCuuR.js.map → app/assets/LanguageSwitcher-BD9N-dla.js.map} +1 -1
  33. package/dist/app/assets/{Legal-Koe7vi6H.js → Legal-D3cAXQXw.js} +2 -2
  34. package/dist/app/assets/{Legal-Koe7vi6H.js.map → Legal-D3cAXQXw.js.map} +1 -1
  35. package/dist/app/assets/{NotFound-CfY31vMZ.js → NotFound-ClV-6RmP.js} +2 -2
  36. package/dist/app/assets/{NotFound-CfY31vMZ.js.map → NotFound-ClV-6RmP.js.map} +1 -1
  37. package/dist/app/assets/{Privacy-CaHf2UM7.js → Privacy-DfxgWwC3.js} +2 -2
  38. package/dist/{assets/Privacy-CaHf2UM7.js.map → app/assets/Privacy-DfxgWwC3.js.map} +1 -1
  39. package/dist/app/assets/{SignIn-Cyi2_-Mn.js → SignIn-ghQCKcPe.js} +2 -2
  40. package/dist/app/assets/{SignIn-Cyi2_-Mn.js.map → SignIn-ghQCKcPe.js.map} +1 -1
  41. package/dist/app/assets/{SignUp-C9QH5po_.js → SignUp-BKB87hd4.js} +2 -2
  42. package/dist/app/assets/{SignUp-C9QH5po_.js.map → SignUp-BKB87hd4.js.map} +1 -1
  43. package/dist/app/assets/SiteHeader-DxsqNPnt.js +2 -0
  44. package/dist/app/assets/SiteHeader-DxsqNPnt.js.map +1 -0
  45. package/dist/app/assets/{StickyMobileCta-uyWGVhdc.js → StickyMobileCta-C_x2pUIF.js} +2 -2
  46. package/dist/app/assets/{StickyMobileCta-uyWGVhdc.js.map → StickyMobileCta-C_x2pUIF.js.map} +1 -1
  47. package/dist/{assets/StoreAssetsPipeline-BJlnD3kD.js → app/assets/StoreAssetsPipeline-4hXRONUd.js} +3 -3
  48. package/dist/app/assets/{StoreAssetsPipeline-BJlnD3kD.js.map → StoreAssetsPipeline-4hXRONUd.js.map} +1 -1
  49. package/dist/app/assets/{Success-B7k7FvJj.js → Success-819qvzmp.js} +2 -2
  50. package/dist/app/assets/{Success-B7k7FvJj.js.map → Success-819qvzmp.js.map} +1 -1
  51. package/dist/app/assets/{Terms-DgJWOeUD.js → Terms-7k3nA4SU.js} +2 -2
  52. package/dist/app/assets/{Terms-DgJWOeUD.js.map → Terms-7k3nA4SU.js.map} +1 -1
  53. package/dist/app/assets/{ToolsIndex-xMPoFom9.js → ToolsIndex-CzrxymnM.js} +3 -3
  54. package/dist/{assets/ToolsIndex-xMPoFom9.js.map → app/assets/ToolsIndex-CzrxymnM.js.map} +1 -1
  55. package/dist/app/assets/{WorkloadCalculator-Bdt6qPR3.js → WorkloadCalculator-D2TuKS4B.js} +4 -4
  56. package/dist/app/assets/{WorkloadCalculator-Bdt6qPR3.js.map → WorkloadCalculator-D2TuKS4B.js.map} +1 -1
  57. package/dist/app/assets/{calculator-CWfp5Day.js → calculator-CiqKFdRp.js} +2 -2
  58. package/dist/app/assets/{calculator-CWfp5Day.js.map → calculator-CiqKFdRp.js.map} +1 -1
  59. package/dist/app/assets/chevron-down-_xIkRLaA.js +2 -0
  60. package/dist/app/assets/{chevron-down-DbSAem1L.js.map → chevron-down-_xIkRLaA.js.map} +1 -1
  61. package/dist/app/assets/{clipboard-copy-DgTgnK84.js → clipboard-copy-DCJioqIc.js} +2 -2
  62. package/dist/app/assets/{clipboard-copy-DgTgnK84.js.map → clipboard-copy-DCJioqIc.js.map} +1 -1
  63. package/dist/app/assets/{copy-C9t_FzCZ.js → copy-AQdWJCcs.js} +2 -2
  64. package/dist/app/assets/{copy-C9t_FzCZ.js.map → copy-AQdWJCcs.js.map} +1 -1
  65. package/dist/app/assets/{crop-B7IxIx6D.js → crop-DOMVp18h.js} +2 -2
  66. package/dist/app/assets/{crop-B7IxIx6D.js.map → crop-DOMVp18h.js.map} +1 -1
  67. package/dist/app/assets/{download-65Zuvgwm.js → download-D5RbyXDm.js} +2 -2
  68. package/dist/app/assets/{download-65Zuvgwm.js.map → download-D5RbyXDm.js.map} +1 -1
  69. package/dist/app/assets/{eye-ouNo8Nv5.js → eye-CLcZi_uk.js} +2 -2
  70. package/dist/{assets/eye-ouNo8Nv5.js.map → app/assets/eye-CLcZi_uk.js.map} +1 -1
  71. package/dist/app/assets/{grid-3x3-U1Nk_ppf.js → grid-3x3-AKmIrhzv.js} +2 -2
  72. package/dist/{assets/grid-3x3-U1Nk_ppf.js.map → app/assets/grid-3x3-AKmIrhzv.js.map} +1 -1
  73. package/dist/app/assets/hero/demo-25s-poster.jpg +0 -0
  74. package/dist/app/assets/hero/demo-25s.mp4 +0 -0
  75. package/dist/app/assets/hero/demo-25s.webm +0 -0
  76. package/dist/app/assets/hero/demo-poster.jpg +0 -0
  77. package/dist/app/assets/hero/demo.mp4 +0 -0
  78. package/dist/app/assets/hero/demo.webm +0 -0
  79. package/dist/{assets/index-B8Y8Y-Mi.js → app/assets/index-Bqv2NztY.js} +6 -6
  80. package/dist/app/assets/index-Bqv2NztY.js.map +1 -0
  81. package/dist/{assets/index-hyiQFYGv.css → app/assets/index-DGVMa-P7.css} +1 -1
  82. package/dist/app/assets/{layout-grid-X9Sgull2.js → layout-grid-CpGXUPMR.js} +2 -2
  83. package/dist/app/assets/{layout-grid-X9Sgull2.js.map → layout-grid-CpGXUPMR.js.map} +1 -1
  84. package/dist/app/assets/proof/output-01.png +0 -0
  85. package/dist/app/assets/proof/output-02.png +0 -0
  86. package/dist/app/assets/proof/output-03.png +0 -0
  87. package/dist/app/assets/proof/output-04.png +0 -0
  88. package/dist/app/assets/{rocket-BjOXauLe.js → rocket-IzRFv1aW.js} +2 -2
  89. package/dist/app/assets/{rocket-BjOXauLe.js.map → rocket-IzRFv1aW.js.map} +1 -1
  90. package/dist/app/assets/{shield-check-CFNhE_aD.js → shield-check-CngdN3zn.js} +2 -2
  91. package/dist/{assets/shield-check-CFNhE_aD.js.map → app/assets/shield-check-CngdN3zn.js.map} +1 -1
  92. package/dist/app/assets/{signIn-CVoSzqCz.js → signIn-Cn6FaQYi.js} +2 -2
  93. package/dist/{assets/signIn-CVoSzqCz.js.map → app/assets/signIn-Cn6FaQYi.js.map} +1 -1
  94. package/dist/app/assets/{smartphone-BcQB9gIh.js → smartphone-CpNG_Pfk.js} +2 -2
  95. package/dist/app/assets/{smartphone-BcQB9gIh.js.map → smartphone-CpNG_Pfk.js.map} +1 -1
  96. package/dist/app/assets/{terminal-CGhryJds.js → terminal-BbBESfoU.js} +2 -2
  97. package/dist/{assets/terminal-CGhryJds.js.map → app/assets/terminal-BbBESfoU.js.map} +1 -1
  98. package/dist/{assets/useAuth-lZZC20Tl.js → app/assets/useAuth-3WWZ3GCD.js} +2 -2
  99. package/dist/app/assets/{useAuth-lZZC20Tl.js.map → useAuth-3WWZ3GCD.js.map} +1 -1
  100. package/dist/app/index.html +2 -2
  101. package/dist/assets/{AgentCli-8e28laT4.js → AgentCli-FWNCO1pb.js} +5 -5
  102. package/dist/assets/AgentCli-FWNCO1pb.js.map +1 -0
  103. package/dist/assets/App-yU7CFXCv.js +13 -0
  104. package/dist/assets/App-yU7CFXCv.js.map +1 -0
  105. package/dist/assets/{AppReviewAso-OLwc4Rw_.js → AppReviewAso-BYfaP1Lu.js} +3 -3
  106. package/dist/{app/assets/AppReviewAso-OLwc4Rw_.js.map → assets/AppReviewAso-BYfaP1Lu.js.map} +1 -1
  107. package/dist/assets/{Cancelled-BoeZQa1S.js → Cancelled-66ixTUrm.js} +2 -2
  108. package/dist/assets/{Cancelled-BoeZQa1S.js.map → Cancelled-66ixTUrm.js.map} +1 -1
  109. package/dist/assets/CliPreflightCard-D7utpFux.js +2 -0
  110. package/dist/assets/{CliPreflightCard-CxYyogdF.js.map → CliPreflightCard-D7utpFux.js.map} +1 -1
  111. package/dist/assets/CopyButton-CmVmSaYn.js +2 -0
  112. package/dist/assets/CopyButton-CmVmSaYn.js.map +1 -0
  113. package/dist/assets/{FastlaneScreenshots-CFT6IiRb.js → FastlaneScreenshots-CRMcetq-.js} +4 -4
  114. package/dist/{app/assets/FastlaneScreenshots-CFT6IiRb.js.map → assets/FastlaneScreenshots-CRMcetq-.js.map} +1 -1
  115. package/dist/assets/{FirstExport-B_UDacZm.js → FirstExport-C0WgL4Hl.js} +3 -3
  116. package/dist/{app/assets/FirstExport-B_UDacZm.js.map → assets/FirstExport-C0WgL4Hl.js.map} +1 -1
  117. package/dist/assets/{FivePanelFramework-C1z_xUbe.js → FivePanelFramework-BwCRmXIK.js} +3 -3
  118. package/dist/{app/assets/FivePanelFramework-C1z_xUbe.js.map → assets/FivePanelFramework-BwCRmXIK.js.map} +1 -1
  119. package/dist/assets/{ForgotPassword-ZQ8U3ejz.js → ForgotPassword-B9_si1tH.js} +2 -2
  120. package/dist/{app/assets/ForgotPassword-ZQ8U3ejz.js.map → assets/ForgotPassword-B9_si1tH.js.map} +1 -1
  121. package/dist/assets/Landing-s1ni1n-7.js +2 -0
  122. package/dist/assets/Landing-s1ni1n-7.js.map +1 -0
  123. package/dist/assets/{LanguageSwitcher-D93nCuuR.js → LanguageSwitcher-BD9N-dla.js} +2 -2
  124. package/dist/{app/assets/LanguageSwitcher-D93nCuuR.js.map → assets/LanguageSwitcher-BD9N-dla.js.map} +1 -1
  125. package/dist/assets/{Legal-Koe7vi6H.js → Legal-D3cAXQXw.js} +2 -2
  126. package/dist/assets/{Legal-Koe7vi6H.js.map → Legal-D3cAXQXw.js.map} +1 -1
  127. package/dist/assets/{NotFound-CfY31vMZ.js → NotFound-ClV-6RmP.js} +2 -2
  128. package/dist/assets/{NotFound-CfY31vMZ.js.map → NotFound-ClV-6RmP.js.map} +1 -1
  129. package/dist/assets/{Privacy-CaHf2UM7.js → Privacy-DfxgWwC3.js} +2 -2
  130. package/dist/{app/assets/Privacy-CaHf2UM7.js.map → assets/Privacy-DfxgWwC3.js.map} +1 -1
  131. package/dist/assets/{SignIn-Cyi2_-Mn.js → SignIn-ghQCKcPe.js} +2 -2
  132. package/dist/assets/{SignIn-Cyi2_-Mn.js.map → SignIn-ghQCKcPe.js.map} +1 -1
  133. package/dist/assets/{SignUp-C9QH5po_.js → SignUp-BKB87hd4.js} +2 -2
  134. package/dist/assets/{SignUp-C9QH5po_.js.map → SignUp-BKB87hd4.js.map} +1 -1
  135. package/dist/assets/SiteHeader-DxsqNPnt.js +2 -0
  136. package/dist/assets/SiteHeader-DxsqNPnt.js.map +1 -0
  137. package/dist/assets/{StickyMobileCta-uyWGVhdc.js → StickyMobileCta-C_x2pUIF.js} +2 -2
  138. package/dist/assets/{StickyMobileCta-uyWGVhdc.js.map → StickyMobileCta-C_x2pUIF.js.map} +1 -1
  139. package/dist/{app/assets/StoreAssetsPipeline-BJlnD3kD.js → assets/StoreAssetsPipeline-4hXRONUd.js} +3 -3
  140. package/dist/assets/{StoreAssetsPipeline-BJlnD3kD.js.map → StoreAssetsPipeline-4hXRONUd.js.map} +1 -1
  141. package/dist/assets/{Success-B7k7FvJj.js → Success-819qvzmp.js} +2 -2
  142. package/dist/assets/{Success-B7k7FvJj.js.map → Success-819qvzmp.js.map} +1 -1
  143. package/dist/assets/{Terms-DgJWOeUD.js → Terms-7k3nA4SU.js} +2 -2
  144. package/dist/assets/{Terms-DgJWOeUD.js.map → Terms-7k3nA4SU.js.map} +1 -1
  145. package/dist/assets/{ToolsIndex-xMPoFom9.js → ToolsIndex-CzrxymnM.js} +3 -3
  146. package/dist/{app/assets/ToolsIndex-xMPoFom9.js.map → assets/ToolsIndex-CzrxymnM.js.map} +1 -1
  147. package/dist/assets/{WorkloadCalculator-Bdt6qPR3.js → WorkloadCalculator-D2TuKS4B.js} +4 -4
  148. package/dist/assets/{WorkloadCalculator-Bdt6qPR3.js.map → WorkloadCalculator-D2TuKS4B.js.map} +1 -1
  149. package/dist/assets/{calculator-CWfp5Day.js → calculator-CiqKFdRp.js} +2 -2
  150. package/dist/assets/{calculator-CWfp5Day.js.map → calculator-CiqKFdRp.js.map} +1 -1
  151. package/dist/assets/chevron-down-_xIkRLaA.js +2 -0
  152. package/dist/assets/{chevron-down-DbSAem1L.js.map → chevron-down-_xIkRLaA.js.map} +1 -1
  153. package/dist/assets/{clipboard-copy-DgTgnK84.js → clipboard-copy-DCJioqIc.js} +2 -2
  154. package/dist/assets/{clipboard-copy-DgTgnK84.js.map → clipboard-copy-DCJioqIc.js.map} +1 -1
  155. package/dist/assets/{copy-C9t_FzCZ.js → copy-AQdWJCcs.js} +2 -2
  156. package/dist/assets/{copy-C9t_FzCZ.js.map → copy-AQdWJCcs.js.map} +1 -1
  157. package/dist/assets/{crop-B7IxIx6D.js → crop-DOMVp18h.js} +2 -2
  158. package/dist/assets/{crop-B7IxIx6D.js.map → crop-DOMVp18h.js.map} +1 -1
  159. package/dist/assets/{download-65Zuvgwm.js → download-D5RbyXDm.js} +2 -2
  160. package/dist/assets/{download-65Zuvgwm.js.map → download-D5RbyXDm.js.map} +1 -1
  161. package/dist/assets/{eye-ouNo8Nv5.js → eye-CLcZi_uk.js} +2 -2
  162. package/dist/{app/assets/eye-ouNo8Nv5.js.map → assets/eye-CLcZi_uk.js.map} +1 -1
  163. package/dist/assets/{grid-3x3-U1Nk_ppf.js → grid-3x3-AKmIrhzv.js} +2 -2
  164. package/dist/{app/assets/grid-3x3-U1Nk_ppf.js.map → assets/grid-3x3-AKmIrhzv.js.map} +1 -1
  165. package/dist/assets/hero/demo-25s-poster.jpg +0 -0
  166. package/dist/assets/hero/demo-25s.mp4 +0 -0
  167. package/dist/assets/hero/demo-25s.webm +0 -0
  168. package/dist/assets/hero/demo-poster.jpg +0 -0
  169. package/dist/assets/hero/demo.mp4 +0 -0
  170. package/dist/assets/hero/demo.webm +0 -0
  171. package/dist/{app/assets/index-B8Y8Y-Mi.js → assets/index-Bqv2NztY.js} +6 -6
  172. package/dist/assets/index-Bqv2NztY.js.map +1 -0
  173. package/dist/{app/assets/index-hyiQFYGv.css → assets/index-DGVMa-P7.css} +1 -1
  174. package/dist/assets/{layout-grid-X9Sgull2.js → layout-grid-CpGXUPMR.js} +2 -2
  175. package/dist/assets/{layout-grid-X9Sgull2.js.map → layout-grid-CpGXUPMR.js.map} +1 -1
  176. package/dist/assets/proof/output-01.png +0 -0
  177. package/dist/assets/proof/output-02.png +0 -0
  178. package/dist/assets/proof/output-03.png +0 -0
  179. package/dist/assets/proof/output-04.png +0 -0
  180. package/dist/assets/{rocket-BjOXauLe.js → rocket-IzRFv1aW.js} +2 -2
  181. package/dist/assets/{rocket-BjOXauLe.js.map → rocket-IzRFv1aW.js.map} +1 -1
  182. package/dist/assets/{shield-check-CFNhE_aD.js → shield-check-CngdN3zn.js} +2 -2
  183. package/dist/{app/assets/shield-check-CFNhE_aD.js.map → assets/shield-check-CngdN3zn.js.map} +1 -1
  184. package/dist/assets/{signIn-CVoSzqCz.js → signIn-Cn6FaQYi.js} +2 -2
  185. package/dist/{app/assets/signIn-CVoSzqCz.js.map → assets/signIn-Cn6FaQYi.js.map} +1 -1
  186. package/dist/assets/{smartphone-BcQB9gIh.js → smartphone-CpNG_Pfk.js} +2 -2
  187. package/dist/assets/{smartphone-BcQB9gIh.js.map → smartphone-CpNG_Pfk.js.map} +1 -1
  188. package/dist/assets/{terminal-CGhryJds.js → terminal-BbBESfoU.js} +2 -2
  189. package/dist/{app/assets/terminal-CGhryJds.js.map → assets/terminal-BbBESfoU.js.map} +1 -1
  190. package/dist/{app/assets/useAuth-lZZC20Tl.js → assets/useAuth-3WWZ3GCD.js} +2 -2
  191. package/dist/assets/{useAuth-lZZC20Tl.js.map → useAuth-3WWZ3GCD.js.map} +1 -1
  192. package/dist/cancelled/index.html +2 -2
  193. package/dist/forgot-password/index.html +2 -2
  194. package/dist/index.html +2 -2
  195. package/dist/legal/index.html +2 -2
  196. package/dist/privacy/index.html +2 -2
  197. package/dist/signin/index.html +2 -2
  198. package/dist/signup/index.html +2 -2
  199. package/dist/sitemap.xml +0 -4
  200. package/dist/success/index.html +2 -2
  201. package/dist/terms/index.html +2 -2
  202. package/dist/tools/5-panel-screenshot-framework/index.html +2 -2
  203. package/dist/tools/agent-cli/index.html +2 -2
  204. package/dist/tools/app-review-aso/index.html +2 -2
  205. package/dist/tools/fastlane-screenshots/index.html +2 -2
  206. package/dist/tools/first-export/index.html +2 -2
  207. package/dist/tools/index.html +2 -2
  208. package/dist/tools/screenshot-workload-calculator/index.html +2 -2
  209. package/dist/tools/store-assets-pipeline/index.html +2 -2
  210. package/package.json +3 -3
  211. package/templates/agent/agent-prompt.txt +8 -0
  212. package/dist/app/assets/AgentCli-8e28laT4.js.map +0 -1
  213. package/dist/app/assets/App-DU0xew0e.js +0 -13
  214. package/dist/app/assets/App-DU0xew0e.js.map +0 -1
  215. package/dist/app/assets/CliPreflightCard-CxYyogdF.js +0 -2
  216. package/dist/app/assets/CopyButton-CGfuSJtU.js +0 -2
  217. package/dist/app/assets/CopyButton-CGfuSJtU.js.map +0 -1
  218. package/dist/app/assets/Landing-DAIP71DD.js +0 -2
  219. package/dist/app/assets/Landing-DAIP71DD.js.map +0 -1
  220. package/dist/app/assets/Pricing-BQwtFVbj.js +0 -2
  221. package/dist/app/assets/Pricing-BQwtFVbj.js.map +0 -1
  222. package/dist/app/assets/SiteHeader-Dj3gDOnR.js +0 -2
  223. package/dist/app/assets/SiteHeader-Dj3gDOnR.js.map +0 -1
  224. package/dist/app/assets/check-BWCiUZ-C.js +0 -2
  225. package/dist/app/assets/check-BWCiUZ-C.js.map +0 -1
  226. package/dist/app/assets/chevron-down-DbSAem1L.js +0 -2
  227. package/dist/app/assets/circle-check-CeakjiXC.js +0 -2
  228. package/dist/app/assets/circle-check-CeakjiXC.js.map +0 -1
  229. package/dist/app/assets/hero/cli-build-tree-15s.mp4 +0 -0
  230. package/dist/app/assets/hero/cli-build-tree-15s.webm +0 -0
  231. package/dist/app/assets/hero/cli-build-tree-25s.mp4 +0 -0
  232. package/dist/app/assets/hero/cli-build-tree-25s.webm +0 -0
  233. package/dist/app/assets/hero/cli-build-tree-poster.png +0 -0
  234. package/dist/app/assets/hero/demo.gif +0 -0
  235. package/dist/app/assets/index-B8Y8Y-Mi.js.map +0 -1
  236. package/dist/assets/AgentCli-8e28laT4.js.map +0 -1
  237. package/dist/assets/App-DU0xew0e.js +0 -13
  238. package/dist/assets/App-DU0xew0e.js.map +0 -1
  239. package/dist/assets/CliPreflightCard-CxYyogdF.js +0 -2
  240. package/dist/assets/CopyButton-CGfuSJtU.js +0 -2
  241. package/dist/assets/CopyButton-CGfuSJtU.js.map +0 -1
  242. package/dist/assets/Landing-DAIP71DD.js +0 -2
  243. package/dist/assets/Landing-DAIP71DD.js.map +0 -1
  244. package/dist/assets/Pricing-BQwtFVbj.js +0 -2
  245. package/dist/assets/Pricing-BQwtFVbj.js.map +0 -1
  246. package/dist/assets/SiteHeader-Dj3gDOnR.js +0 -2
  247. package/dist/assets/SiteHeader-Dj3gDOnR.js.map +0 -1
  248. package/dist/assets/check-BWCiUZ-C.js +0 -2
  249. package/dist/assets/check-BWCiUZ-C.js.map +0 -1
  250. package/dist/assets/chevron-down-DbSAem1L.js +0 -2
  251. package/dist/assets/circle-check-CeakjiXC.js +0 -2
  252. package/dist/assets/circle-check-CeakjiXC.js.map +0 -1
  253. package/dist/assets/hero/cli-build-tree-15s.mp4 +0 -0
  254. package/dist/assets/hero/cli-build-tree-15s.webm +0 -0
  255. package/dist/assets/hero/cli-build-tree-25s.mp4 +0 -0
  256. package/dist/assets/hero/cli-build-tree-25s.webm +0 -0
  257. package/dist/assets/hero/cli-build-tree-poster.png +0 -0
  258. package/dist/assets/hero/demo.gif +0 -0
  259. package/dist/assets/index-B8Y8Y-Mi.js.map +0 -1
  260. package/dist/pricing/index.html +0 -33
@@ -1 +1 @@
1
- {"version":3,"file":"FastlaneScreenshots-CFT6IiRb.js","sources":["../../node_modules/lucide-react/dist/esm/icons/folder-tree.js","../../node_modules/lucide-react/dist/esm/icons/mail.js","../../node_modules/lucide-react/dist/esm/icons/message-square.js","../../src/pages/FastlaneScreenshots.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 [\n \"path\",\n {\n 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\",\n key: \"hod4my\"\n }\n ],\n [\n \"path\",\n {\n 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\",\n key: \"w4yl2u\"\n }\n ],\n [\"path\", { d: \"M3 5a2 2 0 0 0 2 2h3\", key: \"f2jnh7\" }],\n [\"path\", { d: \"M3 3v13a2 2 0 0 0 2 2h3\", key: \"k8epm1\" }]\n];\nconst FolderTree = createLucideIcon(\"folder-tree\", __iconNode);\n\nexport { __iconNode, FolderTree as default };\n//# sourceMappingURL=folder-tree.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 [\"path\", { d: \"m22 7-8.991 5.727a2 2 0 0 1-2.009 0L2 7\", key: \"132q7q\" }],\n [\"rect\", { x: \"2\", y: \"4\", width: \"20\", height: \"16\", rx: \"2\", key: \"izxlao\" }]\n];\nconst Mail = createLucideIcon(\"mail\", __iconNode);\n\nexport { __iconNode, Mail as default };\n//# sourceMappingURL=mail.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 [\n \"path\",\n {\n 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\",\n key: \"18887p\"\n }\n ]\n];\nconst MessageSquare = createLucideIcon(\"message-square\", __iconNode);\n\nexport { __iconNode, MessageSquare as default };\n//# sourceMappingURL=message-square.js.map\n","import React, { useEffect } from 'react';\nimport { ArrowRight, ChevronDown, Copy, FolderTree, Mail, MessageSquare } 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: 'Fastlane cheat sheet',\n title: 'Fastlane screenshot folder structure',\n subtitle:\n 'Stop manual renaming and folder sorting. Copy/paste the paths Fastlane expects (deliver + supply), then run reproducible exports with ShipScreens.',\n primaryCta: 'Run CLI first export',\n secondaryCta: 'Open sample project (free)',\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/fastlane',\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 trustNote: 'Privacy-first: exports run locally (browser/CI). No uploads to ShipScreens.',\n structureTitle: 'Expected paths (deliver + supply)',\n structureBody:\n 'If paths or numbering drift, Fastlane uploads fail. Keep this structure consistent per locale and device/bucket.',\n structureCode: `fastlane/\n screenshots/ # iOS (deliver)\n en-US/\n iphone69_01.png\n iphone69_02.png\n metadata/\n android/ # Android (supply)\n en-US/\n images/\n phoneScreenshots/\n 01.png\n 02.png\n\nfastlane_assets.zip # reproducible artifact (optional)`,\n bucketsTitle: 'Android buckets (supply)',\n bucketsBody:\n 'ShipScreens supports these upload buckets (use what matches your device set): phoneScreenshots, sevenInchScreenshots, tenInchScreenshots, tvScreenshots, wearScreenshots.',\n localTitle: 'Local quickstart (no browser)',\n localBody: 'Run shipscreens wizard (step-by-step), swap PNGs, then build in raw mode (no Playwright).',\n localCode: `npx --yes shipscreens wizard\n# replace assets/en-US/01.png..05.png\nnpx --yes shipscreens build --mode raw --zip --out out/fastlane\nnpx --yes shipscreens verify --out out/fastlane --zip --profile appstore`,\n pipelineTitle: 'Recommended CI pipeline (copy/paste)',\n pipelineBody: 'Validate → lock → build → verify → stage upload roots. Rendered mode uses Playwright Chromium.',\n pipelineCode: `npm ci\nnpx playwright install --with-deps chromium\nnpm run shipscreens:validate\nnpm run shipscreens:lock -- --check\nnpm run shipscreens:build -- --zip\nnpm run shipscreens:verify -- --zip\nnpm run shipscreens:stage -- --profile appstore --out stage/appstore\nnpm run shipscreens:stage -- --profile playstore --out stage/playstore`,\n partnerTitle: 'Need help getting your first export?',\n partnerBody: 'We do short 15-min workflow reviews and help unblock the first Fastlane-ready export.',\n partnerEmailCta: 'Email us',\n partnerDmCta: 'DM on X',\n },\n ja: {\n badge: 'Fastlane チートシート',\n title: 'Fastlane 用スクショのフォルダ構成',\n subtitle: '手作業のリネーム/フォルダ整理をやめる。deliver / supply が期待するパスを固定し、ShipScreensで再現性出力。',\n primaryCta: 'CLIで初回エクスポート',\n secondaryCta: 'サンプルを開く(無料)',\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/fastlane',\n ].join('\\n'),\n proUnlockTitle: 'Proを解除(CLI)',\n proUnlockBody: '透かし解除&フル一括(端末×言語)のために、まずはCLI認証を実行:',\n proUnlockCmd: 'npx --yes shipscreens auth login',\n proUnlockNote: '初回のみブラウザでサインインします。以後は --require-pro で再実行。',\n trustNote: 'プライバシー: 出力はローカル(ブラウザ/CI)。ShipScreensへアップロード不要。',\n structureTitle: '期待されるパス(deliver + supply)',\n structureBody: 'パスや連番がズレるとアップロードで詰まります。言語/端末(バケット)単位でこの形に揃えます。',\n structureCode: `fastlane/\n screenshots/ # iOS (deliver)\n en-US/\n iphone69_01.png\n iphone69_02.png\n metadata/\n android/ # Android (supply)\n en-US/\n images/\n phoneScreenshots/\n 01.png\n 02.png\n\nfastlane_assets.zip # 再現性のあるZIP(任意)`,\n bucketsTitle: 'Android buckets(supply)',\n bucketsBody:\n '対応バケット: phoneScreenshots / sevenInchScreenshots / tenInchScreenshots / tvScreenshots / wearScreenshots',\n localTitle: 'ローカル最短(ブラウザ不要)',\n localBody: 'shipscreens wizard(ステップ式)で雛形作成 → raw モードで出力(Playwright不要)。',\n localCode: `npx --yes shipscreens wizard\n# assets/en-US/01.png〜05.png を差し替え\nnpx --yes shipscreens build --mode raw --zip --out out/fastlane\nnpx --yes shipscreens verify --out out/fastlane --zip --profile appstore`,\n pipelineTitle: 'CIパイプライン(コピペ)',\n pipelineBody: 'validate → lock → build → verify → stage を PR ごとに回します(rendered mode)。',\n pipelineCode: `npm ci\nnpx playwright install --with-deps chromium\nnpm run shipscreens:validate\nnpm run shipscreens:lock -- --check\nnpm run shipscreens:build -- --zip\nnpm run shipscreens:verify -- --zip\nnpm run shipscreens:stage -- --profile appstore --out stage/appstore\nnpm run shipscreens:stage -- --profile playstore --out stage/playstore`,\n partnerTitle: '初回エクスポートが詰まったら',\n partnerBody: '15分だけ現状を聞かせてください。最短で Fastlane-ready まで通す改善案を返します。',\n partnerEmailCta: 'メールする',\n partnerDmCta: 'XでDM',\n },\n};\n\nconst CodeBlock = ({ label, code, tool, assetKey, toggleLabel, defaultOpen }) => (\n <div className=\"rounded-2xl border border-slate-800 bg-slate-950/80 p-5 space-y-3\">\n <div className=\"flex items-center justify-between gap-3\">\n <div className=\"min-w-0\">\n {label && <div className=\"text-[11px] uppercase tracking-[0.2em] text-slate-500\">{label}</div>}\n </div>\n <CopyButton\n value={code}\n onCopied={() => trackEvent('tool_download', { tool, asset: assetKey })}\n 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\"\n >\n {({ copyLabel }) => (\n <>\n <Copy size={14} />\n {copyLabel}\n </>\n )}\n </CopyButton>\n </div>\n <details className=\"group\" open={defaultOpen}>\n <summary className=\"flex items-center justify-between text-[11px] font-semibold text-slate-400 cursor-pointer list-none\">\n <span>{toggleLabel}</span>\n <ChevronDown size={14} className=\"text-slate-500 transition-transform duration-200 group-open:rotate-180\" />\n </summary>\n <pre className=\"mt-2 text-xs text-slate-200 font-mono whitespace-pre leading-relaxed overflow-auto\">{code}</pre>\n </details>\n </div>\n);\n\nconst FastlaneScreenshots = () => {\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=fastlane_screenshots_open_app_header';\n const agentCliHref = '/tools/agent-cli/';\n const firstExportHref = '/tools/first-export/?entry_source=fastlane_screenshots_primary_cta';\n const sampleProjectHref = '/app/?sample=5panel&entry_source=fastlane_screenshots_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 const codeToggleLabel = t('common.showCommands', { defaultValue: 'Show commands' });\n const defaultCodeOpen = typeof window === 'undefined' ? true : window.matchMedia('(min-width: 640px)').matches;\n\n const supportEmail = 'support@shimaumaservices.co.jp';\n const mailSubject = lang === 'ja' ? 'ShipScreens ヒアリング希望' : 'ShipScreens Founding / Design Partner';\n const mailBody =\n lang === 'ja'\n ? [\n 'ShipScreens チーム様',\n '',\n '15分ヒアリングを希望します。',\n '',\n '- アプリ名 / URL:',\n '- 現在のスクショ作業フロー:',\n '- 端末数 / 言語数:',\n '',\n 'よろしくお願いします。',\n ].join('\\n')\n : [\n 'Hi ShipScreens team,',\n '',\n 'I want a 15-min workflow review to unblock my first Fastlane-ready export.',\n '',\n '- App name / link:',\n '- Current screenshot workflow:',\n '- #devices / #locales:',\n '',\n 'Thanks!',\n ].join('\\n');\n const partnerMailto = `mailto:${supportEmail}?subject=${encodeURIComponent(mailSubject)}&body=${encodeURIComponent(\n mailBody\n )}`;\n\n usePageTitle('titles.fastlaneScreenshots', { defaultValue: 'Fastlane screenshots - ShipScreens' });\n\n useEffect(() => {\n trackEvent('tool_view', { tool: 'fastlane_screenshots' });\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: 'fastlane_screenshots', cta: 'open_tools_header' })\n }\n onPricingClick={(event) =>\n trackEventAndFollowLink(event, 'tool_cta_click', { tool: 'fastlane_screenshots', cta: 'pricing_header' })\n }\n onOpenAppClick={(event) =>\n trackEventAndFollowLink(event, 'tool_cta_click', { tool: 'fastlane_screenshots', cta: 'open_app_header' })\n }\n primaryCta={{\n href: firstExportHref,\n label: (\n <span className=\"inline-flex items-center gap-2\">\n {t('landing.nav.primaryCta')} <ArrowRight size={16} />\n </span>\n ),\n onClick: (event) =>\n trackEventAndFollowLink(event, 'tool_cta_click', { tool: 'fastlane_screenshots', cta: 'open_first_export_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 pt-6\">\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 <FolderTree 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 <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: 'fastlane_screenshots', 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.primaryCta} <ArrowRight size={16} />\n </a>\n </div>\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 <CopyButton\n value={copy.heroCliCmd}\n onCopied={() => trackEvent('tool_cta_click', { tool: 'fastlane_screenshots', 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 <Copy size={14} />\n {copyState === 'idle' ? copy.heroCliCopyLabel : copyLabel}\n </>\n )}\n </CopyButton>\n <details className=\"group\" open={defaultCodeOpen}>\n <summary className=\"flex items-center justify-between text-[11px] font-semibold text-slate-400 cursor-pointer list-none\">\n <span>{codeToggleLabel}</span>\n <ChevronDown size={14} className=\"text-slate-500 transition-transform duration-200 group-open:rotate-180\" />\n </summary>\n <div className=\"mt-2 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 </details>\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: 'fastlane_screenshots', 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: 'fastlane_screenshots', 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 <CliPreflightCard\n compact\n href=\"/tools/agent-cli/#preflight\"\n onClick={(event) =>\n trackEventAndFollowLink(event, 'tool_cta_click', { tool: 'fastlane_screenshots', cta: 'open_cli_preflight' })\n }\n className=\"max-w-xl mx-auto\"\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: 'fastlane_screenshots', 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 <Copy 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 <div className=\"text-xs text-slate-500 font-medium\">{copy.trustNote}</div>\n </section>\n\n <section className=\"bg-slate-900/60 border border-slate-800 rounded-2xl p-6 space-y-3\">\n <h2 className=\"text-lg font-bold text-white\">{copy.structureTitle}</h2>\n <p className=\"text-sm text-slate-300\">{copy.structureBody}</p>\n <CodeBlock\n label=\"paths\"\n code={copy.structureCode}\n tool=\"fastlane_screenshots\"\n assetKey=\"fastlane_paths\"\n toggleLabel={codeToggleLabel}\n defaultOpen={defaultCodeOpen}\n />\n </section>\n\n <section className=\"bg-slate-900/60 border border-slate-800 rounded-2xl p-6 space-y-3\">\n <h2 className=\"text-lg font-bold text-white\">{copy.bucketsTitle}</h2>\n <p className=\"text-sm text-slate-300\">{copy.bucketsBody}</p>\n </section>\n\n <section className=\"bg-slate-900/60 border border-slate-800 rounded-2xl p-6 space-y-3\">\n <h2 className=\"text-lg font-bold text-white\">{copy.localTitle}</h2>\n <p className=\"text-sm text-slate-300\">{copy.localBody}</p>\n <CodeBlock\n label=\"local\"\n code={copy.localCode}\n tool=\"fastlane_screenshots\"\n assetKey=\"local_quickstart\"\n toggleLabel={codeToggleLabel}\n defaultOpen={defaultCodeOpen}\n />\n </section>\n\n <details className=\"bg-slate-900/60 border border-slate-800 rounded-2xl p-6 group\">\n <summary className=\"flex items-center justify-between text-sm font-bold text-white cursor-pointer list-none\">\n <span>{copy.pipelineTitle}</span>\n <span className=\"flex items-center gap-2 text-[10px] font-semibold text-slate-400\">\n {lang === 'ja' ? '詳細' : 'ADVANCED'}\n <ChevronDown size={14} className=\"text-slate-500\" />\n </span>\n </summary>\n <div className=\"mt-3 space-y-3\">\n <p className=\"text-sm text-slate-300\">{copy.pipelineBody}</p>\n <CodeBlock\n label=\"ci\"\n code={copy.pipelineCode}\n tool=\"fastlane_screenshots\"\n assetKey=\"ci_pipeline\"\n toggleLabel={codeToggleLabel}\n defaultOpen={defaultCodeOpen}\n />\n </div>\n </details>\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.partnerTitle}</div>\n <div className=\"text-sm text-slate-300\">{copy.partnerBody}</div>\n </div>\n <div className=\"flex flex-col sm:flex-row gap-3 w-full md:w-auto\">\n <a\n href={partnerMailto}\n onClick={() => trackEvent('tool_cta_click', { tool: 'fastlane_screenshots', cta: 'email_design_partner' })}\n 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\"\n >\n <Mail size={16} />\n {copy.partnerEmailCta}\n </a>\n <a\n href=\"https://x.com/shipscreenscom\"\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n onClick={() => trackEvent('tool_cta_click', { tool: 'fastlane_screenshots', cta: 'dm_design_partner' })}\n 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\"\n >\n <MessageSquare size={16} />\n {copy.partnerDmCta}\n </a>\n </div>\n </section>\n\n <section className=\"max-w-3xl mx-auto text-center space-y-3 pt-2\">\n <div className=\"flex flex-col sm:flex-row gap-3 justify-center\">\n <a\n href={agentCliHref}\n onClick={(event) =>\n trackEventAndFollowLink(event, 'tool_cta_click', { tool: 'fastlane_screenshots', cta: 'open_agent_cli_footer' })\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\"\n >\n {copy.primaryCta} <ArrowRight size={16} />\n </a>\n <a\n href={sampleProjectHref}\n onClick={(event) =>\n trackEventAndFollowLink(event, 'tool_cta_click', {\n tool: 'fastlane_screenshots',\n cta: 'open_sample_project_footer',\n })\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\"\n >\n {copy.secondaryCta} <ArrowRight size={16} />\n </a>\n </div>\n </section>\n </main>\n <StickyMobileCta\n primary={{\n label: copy.primaryCta,\n href: agentCliHref,\n onClick: (event) =>\n trackEventAndFollowLink(event, 'tool_cta_click', { tool: 'fastlane_screenshots', cta: 'sticky_primary' }),\n }}\n secondary={{\n label: copy.secondaryCta,\n href: sampleProjectHref,\n onClick: (event) =>\n trackEventAndFollowLink(event, 'tool_cta_click', { tool: 'fastlane_screenshots', cta: 'sticky_secondary' }),\n }}\n />\n </div>\n );\n};\n\nexport default FastlaneScreenshots;\n"],"names":["__iconNode","FolderTree","createLucideIcon","Mail","MessageSquare","normalizeLang","lang","COPY","CodeBlock","label","code","tool","assetKey","toggleLabel","defaultOpen","jsxs","jsx","CopyButton","trackEvent","copyLabel","Fragment","Copy","ChevronDown","FastlaneScreenshots","i18n","t","useTranslation","copy","openAppHref","agentCliHref","firstExportHref","sampleProjectHref","configDownloadHref","csvDownloadHref","copyButtonLabel","codeToggleLabel","defaultCodeOpen","supportEmail","mailSubject","mailBody","partnerMailto","usePageTitle","useEffect","StagingBadge","SiteHeader","event","trackEventAndFollowLink","ArrowRight","copyState","CliPreflightCard","StickyMobileCta"],"mappings":"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","x_google_ignoreList":[0,1,2]}
1
+ {"version":3,"file":"FastlaneScreenshots-CRMcetq-.js","sources":["../../node_modules/lucide-react/dist/esm/icons/folder-tree.js","../../node_modules/lucide-react/dist/esm/icons/mail.js","../../node_modules/lucide-react/dist/esm/icons/message-square.js","../../src/pages/FastlaneScreenshots.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 [\n \"path\",\n {\n 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\",\n key: \"hod4my\"\n }\n ],\n [\n \"path\",\n {\n 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\",\n key: \"w4yl2u\"\n }\n ],\n [\"path\", { d: \"M3 5a2 2 0 0 0 2 2h3\", key: \"f2jnh7\" }],\n [\"path\", { d: \"M3 3v13a2 2 0 0 0 2 2h3\", key: \"k8epm1\" }]\n];\nconst FolderTree = createLucideIcon(\"folder-tree\", __iconNode);\n\nexport { __iconNode, FolderTree as default };\n//# sourceMappingURL=folder-tree.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 [\"path\", { d: \"m22 7-8.991 5.727a2 2 0 0 1-2.009 0L2 7\", key: \"132q7q\" }],\n [\"rect\", { x: \"2\", y: \"4\", width: \"20\", height: \"16\", rx: \"2\", key: \"izxlao\" }]\n];\nconst Mail = createLucideIcon(\"mail\", __iconNode);\n\nexport { __iconNode, Mail as default };\n//# sourceMappingURL=mail.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 [\n \"path\",\n {\n 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\",\n key: \"18887p\"\n }\n ]\n];\nconst MessageSquare = createLucideIcon(\"message-square\", __iconNode);\n\nexport { __iconNode, MessageSquare as default };\n//# sourceMappingURL=message-square.js.map\n","import React, { useEffect } from 'react';\nimport { ArrowRight, ChevronDown, Copy, FolderTree, Mail, MessageSquare } 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: 'Fastlane cheat sheet',\n title: 'Fastlane screenshot folder structure',\n subtitle:\n 'Stop manual renaming and folder sorting. Copy/paste the paths Fastlane expects (deliver + supply), then run reproducible exports with ShipScreens.',\n primaryCta: 'Run CLI first export',\n secondaryCta: 'Open sample project (free)',\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/fastlane',\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 trustNote: 'Privacy-first: exports run locally (browser/CI). No uploads to ShipScreens.',\n structureTitle: 'Expected paths (deliver + supply)',\n structureBody:\n 'If paths or numbering drift, Fastlane uploads fail. Keep this structure consistent per locale and device/bucket.',\n structureCode: `fastlane/\n screenshots/ # iOS (deliver)\n en-US/\n iphone69_01.png\n iphone69_02.png\n metadata/\n android/ # Android (supply)\n en-US/\n images/\n phoneScreenshots/\n 01.png\n 02.png\n\nfastlane_assets.zip # reproducible artifact (optional)`,\n bucketsTitle: 'Android buckets (supply)',\n bucketsBody:\n 'ShipScreens supports these upload buckets (use what matches your device set): phoneScreenshots, sevenInchScreenshots, tenInchScreenshots, tvScreenshots, wearScreenshots.',\n localTitle: 'Local quickstart (no browser)',\n localBody: 'Run shipscreens wizard (step-by-step), swap PNGs, then build in raw mode (no Playwright).',\n localCode: `npx --yes shipscreens wizard\n# replace assets/en-US/01.png..05.png\nnpx --yes shipscreens build --mode raw --zip --out out/fastlane\nnpx --yes shipscreens verify --out out/fastlane --zip --profile appstore`,\n pipelineTitle: 'Recommended CI pipeline (copy/paste)',\n pipelineBody: 'Validate → lock → build → verify → stage upload roots. Rendered mode uses Playwright Chromium.',\n pipelineCode: `npm ci\nnpx playwright install --with-deps chromium\nnpm run shipscreens:validate\nnpm run shipscreens:lock -- --check\nnpm run shipscreens:build -- --zip\nnpm run shipscreens:verify -- --zip\nnpm run shipscreens:stage -- --profile appstore --out stage/appstore\nnpm run shipscreens:stage -- --profile playstore --out stage/playstore`,\n partnerTitle: 'Need help getting your first export?',\n partnerBody: 'We do short 15-min workflow reviews and help unblock the first Fastlane-ready export.',\n partnerEmailCta: 'Email us',\n partnerDmCta: 'DM on X',\n },\n ja: {\n badge: 'Fastlane チートシート',\n title: 'Fastlane 用スクショのフォルダ構成',\n subtitle: '手作業のリネーム/フォルダ整理をやめる。deliver / supply が期待するパスを固定し、ShipScreensで再現性出力。',\n primaryCta: 'CLIで初回エクスポート',\n secondaryCta: 'サンプルを開く(無料)',\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/fastlane',\n ].join('\\n'),\n proUnlockTitle: 'Proを解除(CLI)',\n proUnlockBody: '透かし解除&フル一括(端末×言語)のために、まずはCLI認証を実行:',\n proUnlockCmd: 'npx --yes shipscreens auth login',\n proUnlockNote: '初回のみブラウザでサインインします。以後は --require-pro で再実行。',\n trustNote: 'プライバシー: 出力はローカル(ブラウザ/CI)。ShipScreensへアップロード不要。',\n structureTitle: '期待されるパス(deliver + supply)',\n structureBody: 'パスや連番がズレるとアップロードで詰まります。言語/端末(バケット)単位でこの形に揃えます。',\n structureCode: `fastlane/\n screenshots/ # iOS (deliver)\n en-US/\n iphone69_01.png\n iphone69_02.png\n metadata/\n android/ # Android (supply)\n en-US/\n images/\n phoneScreenshots/\n 01.png\n 02.png\n\nfastlane_assets.zip # 再現性のあるZIP(任意)`,\n bucketsTitle: 'Android buckets(supply)',\n bucketsBody:\n '対応バケット: phoneScreenshots / sevenInchScreenshots / tenInchScreenshots / tvScreenshots / wearScreenshots',\n localTitle: 'ローカル最短(ブラウザ不要)',\n localBody: 'shipscreens wizard(ステップ式)で雛形作成 → raw モードで出力(Playwright不要)。',\n localCode: `npx --yes shipscreens wizard\n# assets/en-US/01.png〜05.png を差し替え\nnpx --yes shipscreens build --mode raw --zip --out out/fastlane\nnpx --yes shipscreens verify --out out/fastlane --zip --profile appstore`,\n pipelineTitle: 'CIパイプライン(コピペ)',\n pipelineBody: 'validate → lock → build → verify → stage を PR ごとに回します(rendered mode)。',\n pipelineCode: `npm ci\nnpx playwright install --with-deps chromium\nnpm run shipscreens:validate\nnpm run shipscreens:lock -- --check\nnpm run shipscreens:build -- --zip\nnpm run shipscreens:verify -- --zip\nnpm run shipscreens:stage -- --profile appstore --out stage/appstore\nnpm run shipscreens:stage -- --profile playstore --out stage/playstore`,\n partnerTitle: '初回エクスポートが詰まったら',\n partnerBody: '15分だけ現状を聞かせてください。最短で Fastlane-ready まで通す改善案を返します。',\n partnerEmailCta: 'メールする',\n partnerDmCta: 'XでDM',\n },\n};\n\nconst CodeBlock = ({ label, code, tool, assetKey, toggleLabel, defaultOpen }) => (\n <div className=\"rounded-2xl border border-slate-800 bg-slate-950/80 p-5 space-y-3\">\n <div className=\"flex items-center justify-between gap-3\">\n <div className=\"min-w-0\">\n {label && <div className=\"text-[11px] uppercase tracking-[0.2em] text-slate-500\">{label}</div>}\n </div>\n <CopyButton\n value={code}\n onCopied={() => trackEvent('tool_download', { tool, asset: assetKey })}\n 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\"\n >\n {({ copyLabel }) => (\n <>\n <Copy size={14} />\n {copyLabel}\n </>\n )}\n </CopyButton>\n </div>\n <details className=\"group\" open={defaultOpen}>\n <summary className=\"flex items-center justify-between text-[11px] font-semibold text-slate-400 cursor-pointer list-none\">\n <span>{toggleLabel}</span>\n <ChevronDown size={14} className=\"text-slate-500 transition-transform duration-200 group-open:rotate-180\" />\n </summary>\n <pre className=\"mt-2 text-xs text-slate-200 font-mono whitespace-pre leading-relaxed overflow-auto\">{code}</pre>\n </details>\n </div>\n);\n\nconst FastlaneScreenshots = () => {\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=fastlane_screenshots_open_app_header';\n const agentCliHref = '/tools/agent-cli/';\n const firstExportHref = '/tools/first-export/?entry_source=fastlane_screenshots_primary_cta';\n const sampleProjectHref = '/app/?sample=5panel&entry_source=fastlane_screenshots_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 const codeToggleLabel = t('common.showCommands', { defaultValue: 'Show commands' });\n const defaultCodeOpen = typeof window === 'undefined' ? true : window.matchMedia('(min-width: 640px)').matches;\n\n const supportEmail = 'support@shimaumaservices.co.jp';\n const mailSubject = lang === 'ja' ? 'ShipScreens ヒアリング希望' : 'ShipScreens Founding / Design Partner';\n const mailBody =\n lang === 'ja'\n ? [\n 'ShipScreens チーム様',\n '',\n '15分ヒアリングを希望します。',\n '',\n '- アプリ名 / URL:',\n '- 現在のスクショ作業フロー:',\n '- 端末数 / 言語数:',\n '',\n 'よろしくお願いします。',\n ].join('\\n')\n : [\n 'Hi ShipScreens team,',\n '',\n 'I want a 15-min workflow review to unblock my first Fastlane-ready export.',\n '',\n '- App name / link:',\n '- Current screenshot workflow:',\n '- #devices / #locales:',\n '',\n 'Thanks!',\n ].join('\\n');\n const partnerMailto = `mailto:${supportEmail}?subject=${encodeURIComponent(mailSubject)}&body=${encodeURIComponent(\n mailBody\n )}`;\n\n usePageTitle('titles.fastlaneScreenshots', { defaultValue: 'Fastlane screenshots - ShipScreens' });\n\n useEffect(() => {\n trackEvent('tool_view', { tool: 'fastlane_screenshots' });\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: 'fastlane_screenshots', cta: 'open_tools_header' })\n }\n onPricingClick={(event) =>\n trackEventAndFollowLink(event, 'tool_cta_click', { tool: 'fastlane_screenshots', cta: 'pricing_header' })\n }\n onOpenAppClick={(event) =>\n trackEventAndFollowLink(event, 'tool_cta_click', { tool: 'fastlane_screenshots', cta: 'open_app_header' })\n }\n primaryCta={{\n href: firstExportHref,\n label: (\n <span className=\"inline-flex items-center gap-2\">\n {t('landing.nav.primaryCta')} <ArrowRight size={16} />\n </span>\n ),\n onClick: (event) =>\n trackEventAndFollowLink(event, 'tool_cta_click', { tool: 'fastlane_screenshots', cta: 'open_first_export_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 pt-6\">\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 <FolderTree 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 <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: 'fastlane_screenshots', 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.primaryCta} <ArrowRight size={16} />\n </a>\n </div>\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 <CopyButton\n value={copy.heroCliCmd}\n onCopied={() => trackEvent('tool_cta_click', { tool: 'fastlane_screenshots', 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 <Copy size={14} />\n {copyState === 'idle' ? copy.heroCliCopyLabel : copyLabel}\n </>\n )}\n </CopyButton>\n <details className=\"group\" open={defaultCodeOpen}>\n <summary className=\"flex items-center justify-between text-[11px] font-semibold text-slate-400 cursor-pointer list-none\">\n <span>{codeToggleLabel}</span>\n <ChevronDown size={14} className=\"text-slate-500 transition-transform duration-200 group-open:rotate-180\" />\n </summary>\n <div className=\"mt-2 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 </details>\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: 'fastlane_screenshots', 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: 'fastlane_screenshots', 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 <CliPreflightCard\n compact\n href=\"/tools/agent-cli/#preflight\"\n onClick={(event) =>\n trackEventAndFollowLink(event, 'tool_cta_click', { tool: 'fastlane_screenshots', cta: 'open_cli_preflight' })\n }\n className=\"max-w-xl mx-auto\"\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: 'fastlane_screenshots', 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 <Copy 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 <div className=\"text-xs text-slate-500 font-medium\">{copy.trustNote}</div>\n </section>\n\n <section className=\"bg-slate-900/60 border border-slate-800 rounded-2xl p-6 space-y-3\">\n <h2 className=\"text-lg font-bold text-white\">{copy.structureTitle}</h2>\n <p className=\"text-sm text-slate-300\">{copy.structureBody}</p>\n <CodeBlock\n label=\"paths\"\n code={copy.structureCode}\n tool=\"fastlane_screenshots\"\n assetKey=\"fastlane_paths\"\n toggleLabel={codeToggleLabel}\n defaultOpen={defaultCodeOpen}\n />\n </section>\n\n <section className=\"bg-slate-900/60 border border-slate-800 rounded-2xl p-6 space-y-3\">\n <h2 className=\"text-lg font-bold text-white\">{copy.bucketsTitle}</h2>\n <p className=\"text-sm text-slate-300\">{copy.bucketsBody}</p>\n </section>\n\n <section className=\"bg-slate-900/60 border border-slate-800 rounded-2xl p-6 space-y-3\">\n <h2 className=\"text-lg font-bold text-white\">{copy.localTitle}</h2>\n <p className=\"text-sm text-slate-300\">{copy.localBody}</p>\n <CodeBlock\n label=\"local\"\n code={copy.localCode}\n tool=\"fastlane_screenshots\"\n assetKey=\"local_quickstart\"\n toggleLabel={codeToggleLabel}\n defaultOpen={defaultCodeOpen}\n />\n </section>\n\n <details className=\"bg-slate-900/60 border border-slate-800 rounded-2xl p-6 group\">\n <summary className=\"flex items-center justify-between text-sm font-bold text-white cursor-pointer list-none\">\n <span>{copy.pipelineTitle}</span>\n <span className=\"flex items-center gap-2 text-[10px] font-semibold text-slate-400\">\n {lang === 'ja' ? '詳細' : 'ADVANCED'}\n <ChevronDown size={14} className=\"text-slate-500\" />\n </span>\n </summary>\n <div className=\"mt-3 space-y-3\">\n <p className=\"text-sm text-slate-300\">{copy.pipelineBody}</p>\n <CodeBlock\n label=\"ci\"\n code={copy.pipelineCode}\n tool=\"fastlane_screenshots\"\n assetKey=\"ci_pipeline\"\n toggleLabel={codeToggleLabel}\n defaultOpen={defaultCodeOpen}\n />\n </div>\n </details>\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.partnerTitle}</div>\n <div className=\"text-sm text-slate-300\">{copy.partnerBody}</div>\n </div>\n <div className=\"flex flex-col sm:flex-row gap-3 w-full md:w-auto\">\n <a\n href={partnerMailto}\n onClick={() => trackEvent('tool_cta_click', { tool: 'fastlane_screenshots', cta: 'email_design_partner' })}\n 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\"\n >\n <Mail size={16} />\n {copy.partnerEmailCta}\n </a>\n <a\n href=\"https://x.com/shipscreenscom\"\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n onClick={() => trackEvent('tool_cta_click', { tool: 'fastlane_screenshots', cta: 'dm_design_partner' })}\n 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\"\n >\n <MessageSquare size={16} />\n {copy.partnerDmCta}\n </a>\n </div>\n </section>\n\n <section className=\"max-w-3xl mx-auto text-center space-y-3 pt-2\">\n <div className=\"flex flex-col sm:flex-row gap-3 justify-center\">\n <a\n href={agentCliHref}\n onClick={(event) =>\n trackEventAndFollowLink(event, 'tool_cta_click', { tool: 'fastlane_screenshots', cta: 'open_agent_cli_footer' })\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\"\n >\n {copy.primaryCta} <ArrowRight size={16} />\n </a>\n <a\n href={sampleProjectHref}\n onClick={(event) =>\n trackEventAndFollowLink(event, 'tool_cta_click', {\n tool: 'fastlane_screenshots',\n cta: 'open_sample_project_footer',\n })\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\"\n >\n {copy.secondaryCta} <ArrowRight size={16} />\n </a>\n </div>\n </section>\n </main>\n <StickyMobileCta\n primary={{\n label: copy.primaryCta,\n href: agentCliHref,\n onClick: (event) =>\n trackEventAndFollowLink(event, 'tool_cta_click', { tool: 'fastlane_screenshots', cta: 'sticky_primary' }),\n }}\n secondary={{\n label: copy.secondaryCta,\n href: sampleProjectHref,\n onClick: (event) =>\n trackEventAndFollowLink(event, 'tool_cta_click', { tool: 'fastlane_screenshots', cta: 'sticky_secondary' }),\n }}\n />\n </div>\n );\n};\n\nexport default FastlaneScreenshots;\n"],"names":["__iconNode","FolderTree","createLucideIcon","Mail","MessageSquare","normalizeLang","lang","COPY","CodeBlock","label","code","tool","assetKey","toggleLabel","defaultOpen","jsxs","jsx","CopyButton","trackEvent","copyLabel","Fragment","Copy","ChevronDown","FastlaneScreenshots","i18n","t","useTranslation","copy","openAppHref","agentCliHref","firstExportHref","sampleProjectHref","configDownloadHref","csvDownloadHref","copyButtonLabel","codeToggleLabel","defaultCodeOpen","supportEmail","mailSubject","mailBody","partnerMailto","usePageTitle","useEffect","StagingBadge","SiteHeader","event","trackEventAndFollowLink","ArrowRight","copyState","CliPreflightCard","StickyMobileCta"],"mappings":"iaASA,MAAMA,EAAa,CACjB,CACE,OACA,CACE,EAAG,qHACH,IAAK,QACX,CACA,EACE,CACE,OACA,CACE,EAAG,2HACH,IAAK,QACX,CACA,EACE,CAAC,OAAQ,CAAE,EAAG,uBAAwB,IAAK,QAAQ,CAAE,EACrD,CAAC,OAAQ,CAAE,EAAG,0BAA2B,IAAK,QAAQ,CAAE,CAC1D,EACMC,EAAaC,EAAiB,cAAeF,CAAU,EClB7D,MAAMA,EAAa,CACjB,CAAC,OAAQ,CAAE,EAAG,0CAA2C,IAAK,QAAQ,CAAE,EACxE,CAAC,OAAQ,CAAE,EAAG,IAAK,EAAG,IAAK,MAAO,KAAM,OAAQ,KAAM,GAAI,IAAK,IAAK,QAAQ,CAAE,CAChF,EACMG,EAAOD,EAAiB,OAAQF,CAAU,ECJhD,MAAMA,EAAa,CACjB,CACE,OACA,CACE,EAAG,sHACH,IAAK,QACX,CACA,CACA,EACMI,EAAgBF,EAAiB,iBAAkBF,CAAU,ECP7DK,EAAiBC,IACPA,GAAQ,IAAI,MAAM,GAAG,EAAE,CAAC,IACtB,KAAO,KAAO,KAG1BC,EAAO,CACX,GAAI,CACF,MAAO,uBACP,MAAO,uCACP,SACE,qJACF,WAAY,uBACZ,aAAc,6BACd,aAAc,2BACd,YAAa,4CACb,eAAgB,oDAChB,iBAAkB,oBAClB,sBAAuB,oBACvB,mBAAoB,aACpB,gBAAiB,WACjB,WAAY,CACV,+BACA,iEAAA,EACA,KAAK;AAAA,CAAI,EACX,eAAgB,mBAChB,cAAe,0EACf,aAAc,mCACd,cAAe,6EACf,UAAW,8EACX,eAAgB,oCAChB,cACE,mHACF,cAAe;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,yEAcf,aAAc,2BACd,YACE,4KACF,WAAY,gCACZ,UAAW,4FACX,UAAW;AAAA;AAAA;AAAA,0EAIX,cAAe,uCACf,aAAc,iGACd,aAAc;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,wEAQd,aAAc,uCACd,YAAa,wFACb,gBAAiB,WACjB,aAAc,SAAA,EAEhB,GAAI,CACF,MAAO,kBACP,MAAO,wBACP,SAAU,sEACV,WAAY,eACZ,aAAc,cACd,aAAc,qBACd,YAAa,sCACb,eAAgB,mCAChB,iBAAkB,cAClB,sBAAuB,UACvB,mBAAoB,aACpB,gBAAiB,WACjB,WAAY,CACV,+BACA,iEAAA,EACA,KAAK;AAAA,CAAI,EACX,eAAgB,cAChB,cAAe,qCACf,aAAc,mCACd,cAAe,4CACf,UAAW,iDACX,eAAgB,4BAChB,cAAe,iDACf,cAAe;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,sDAcf,aAAc,0BACd,YACE,yGACF,WAAY,iBACZ,UAAW,6DACX,UAAW;AAAA;AAAA;AAAA,0EAIX,cAAe,gBACf,aAAc,wEACd,aAAc;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,wEAQd,aAAc,iBACd,YAAa,oDACb,gBAAiB,QACjB,aAAc,MAAA,CAElB,EAEMC,EAAY,CAAC,CAAE,MAAAC,EAAO,KAAAC,EAAM,KAAAC,EAAM,SAAAC,EAAU,YAAAC,EAAa,YAAAC,CAAA,IAC7DC,EAAAA,KAAC,MAAA,CAAI,UAAU,oEACb,SAAA,CAAAA,EAAAA,KAAC,MAAA,CAAI,UAAU,0CACb,SAAA,CAAAC,EAAAA,IAAC,MAAA,CAAI,UAAU,UACZ,SAAAP,SAAU,MAAA,CAAI,UAAU,wDAAyD,SAAAA,CAAA,CAAM,CAAA,CAC1F,EACAO,EAAAA,IAACC,EAAA,CACC,MAAOP,EACP,SAAU,IAAMQ,EAAW,gBAAiB,CAAE,KAAAP,EAAM,MAAOC,EAAU,EACrE,UAAU,oKAET,SAAA,CAAC,CAAE,UAAAO,CAAA,IACFJ,EAAAA,KAAAK,EAAAA,SAAA,CACE,SAAA,CAAAJ,EAAAA,IAACK,EAAA,CAAK,KAAM,EAAA,CAAI,EACfF,CAAA,CAAA,CACH,CAAA,CAAA,CAEJ,EACF,EACAJ,EAAAA,KAAC,UAAA,CAAQ,UAAU,QAAQ,KAAMD,EAC/B,SAAA,CAAAC,EAAAA,KAAC,UAAA,CAAQ,UAAU,sGACjB,SAAA,CAAAC,EAAAA,IAAC,QAAM,SAAAH,CAAA,CAAY,EACnBG,EAAAA,IAACM,EAAA,CAAY,KAAM,GAAI,UAAU,wEAAA,CAAyE,CAAA,EAC5G,EACAN,EAAAA,IAAC,MAAA,CAAI,UAAU,qFAAsF,SAAAN,CAAA,CAAK,CAAA,CAAA,CAC5G,CAAA,EACF,EAGIa,EAAsB,IAAM,CAChC,KAAM,CAAE,KAAAC,EAAM,EAAAC,CAAA,EAAMC,EAAA,EACdpB,EAAOD,EAAcmB,EAAK,kBAAoBA,EAAK,QAAQ,EAC3DG,EAAOpB,EAAKD,CAAI,GAAKC,EAAK,GAE1BqB,EAAc,wEACdC,EAAe,oBACfC,EAAkB,qEAClBC,EAAoB,4EACpBC,EAAqB,8CACrBC,EAAkB,4CAClBC,EAAkBT,EAAE,cAAe,CAAE,aAAc,OAAQ,EAC3DU,EAAkBV,EAAE,sBAAuB,CAAE,aAAc,gBAAiB,EAC5EW,EAAkB,OAAO,OAAW,IAAc,GAAO,OAAO,WAAW,oBAAoB,EAAE,QAEjGC,EAAe,iCACfC,EAAchC,IAAS,KAAO,sBAAwB,wCACtDiC,EACJjC,IAAS,KACL,CACE,mBACA,GACA,kBACA,GACA,gBACA,kBACA,eACA,GACA,aAAA,EACA,KAAK;AAAA,CAAI,EACX,CACE,uBACA,GACA,6EACA,GACA,qBACA,iCACA,yBACA,GACA,SAAA,EACA,KAAK;AAAA,CAAI,EACXkC,EAAgB,UAAUH,CAAY,YAAY,mBAAmBC,CAAW,CAAC,SAAS,mBAC9FC,CAAA,CACD,GAED,OAAAE,EAAa,6BAA8B,CAAE,aAAc,oCAAA,CAAsC,EAEjGC,EAAAA,UAAU,IAAM,CACdxB,EAAW,YAAa,CAAE,KAAM,sBAAA,CAAwB,CAC1D,EAAG,CAAA,CAAE,EAGHH,EAAAA,KAAC,MAAA,CAAI,UAAU,qFACb,SAAA,CAAAC,EAAAA,IAAC2B,EAAA,EAAa,EACd3B,EAAAA,IAAC4B,EAAA,CACC,QAAQ,OACR,OAAO,QACP,YAAAhB,EACA,aAAeiB,GACbC,EAAwBD,EAAO,iBAAkB,CAAE,KAAM,uBAAwB,IAAK,oBAAqB,EAE7G,eAAiBA,GACfC,EAAwBD,EAAO,iBAAkB,CAAE,KAAM,uBAAwB,IAAK,iBAAkB,EAE1G,eAAiBA,GACfC,EAAwBD,EAAO,iBAAkB,CAAE,KAAM,uBAAwB,IAAK,kBAAmB,EAE3G,WAAY,CACV,KAAMf,EACN,MACEf,EAAAA,KAAC,OAAA,CAAK,UAAU,iCACb,SAAA,CAAAU,EAAE,wBAAwB,EAAE,IAACT,EAAAA,IAAC+B,EAAA,CAAW,KAAM,EAAA,CAAI,CAAA,EACtD,EAEF,QAAUF,GACRC,EAAwBD,EAAO,iBAAkB,CAAE,KAAM,uBAAwB,IAAK,0BAAA,CAA4B,CAAA,CACtH,CAAA,EAGF9B,EAAAA,KAAC,OAAA,CAAK,UAAU,0CACd,SAAA,CAAAA,EAAAA,KAAC,UAAA,CAAQ,UAAU,+CACjB,SAAA,CAAAA,EAAAA,KAAC,MAAA,CAAI,UAAU,uIACb,SAAA,CAAAC,EAAAA,IAACf,EAAA,CAAW,KAAM,EAAA,CAAI,EACrB0B,EAAK,KAAA,EACR,EACAX,EAAAA,IAAC,KAAA,CAAG,UAAU,gDAAiD,WAAK,MAAM,EAC1EA,EAAAA,IAAC,IAAA,CAAE,UAAU,yCAA0C,WAAK,SAAS,EACrEA,EAAAA,IAAC,MAAA,CAAI,UAAU,sDACb,SAAAD,EAAAA,KAAC,IAAA,CACC,KAAMc,EACN,QAAUgB,GACRC,EAAwBD,EAAO,iBAAkB,CAAE,KAAM,uBAAwB,IAAK,sBAAuB,EAE/G,UAAU,mIAET,SAAA,CAAAlB,EAAK,WAAW,IAACX,EAAAA,IAAC+B,EAAA,CAAW,KAAM,EAAA,CAAI,CAAA,CAAA,CAAA,EAE5C,EACAhC,EAAAA,KAAC,MAAA,CAAI,UAAU,+FACb,SAAA,CAAAC,EAAAA,IAAC,MAAA,CAAI,UAAU,sEAAuE,SAAAW,EAAK,aAAa,EACxGX,EAAAA,IAAC,IAAA,CAAE,UAAU,yBAA0B,WAAK,YAAY,EACxDA,EAAAA,IAAC,IAAA,CAAE,UAAU,yBAA0B,WAAK,eAAe,EAC3DA,EAAAA,IAACC,EAAA,CACC,MAAOU,EAAK,WACZ,SAAU,IAAMT,EAAW,iBAAkB,CAAE,KAAM,uBAAwB,IAAK,gBAAiB,EACnG,UAAU,6KAET,SAAA,CAAC,CAAE,UAAAC,EAAW,UAAA6B,CAAA,IACbjC,OAAAK,EAAAA,SAAA,CACE,SAAA,CAAAJ,EAAAA,IAACK,EAAA,CAAK,KAAM,EAAA,CAAI,EACf2B,IAAc,OAASrB,EAAK,iBAAmBR,CAAA,CAAA,CAClD,CAAA,CAAA,EAGJJ,EAAAA,KAAC,UAAA,CAAQ,UAAU,QAAQ,KAAMqB,EAC/B,SAAA,CAAArB,EAAAA,KAAC,UAAA,CAAQ,UAAU,sGACjB,SAAA,CAAAC,EAAAA,IAAC,QAAM,SAAAmB,CAAA,CAAgB,EACvBnB,EAAAA,IAACM,EAAA,CAAY,KAAM,GAAI,UAAU,wEAAA,CAAyE,CAAA,EAC5G,EACAN,EAAAA,IAAC,MAAA,CAAI,UAAU,2DACb,SAAAA,EAAAA,IAAC,OAAI,UAAU,6CAA8C,SAAAW,EAAK,UAAA,CAAW,CAAA,CAC/E,CAAA,EACF,EACAZ,EAAAA,KAAC,MAAA,CAAI,UAAU,iBACb,SAAA,CAAAC,EAAAA,IAAC,MAAA,CAAI,UAAU,sEACZ,SAAAW,EAAK,sBACR,EACAZ,EAAAA,KAAC,MAAA,CAAI,UAAU,uBACb,SAAA,CAAAC,EAAAA,IAAC,IAAA,CACC,KAAMgB,EACN,SAAQ,GACR,QAAS,IAAMd,EAAW,gBAAiB,CAAE,KAAM,uBAAwB,MAAO,kBAAmB,EACrG,UAAU,uKAET,SAAAS,EAAK,kBAAA,CAAA,EAERX,EAAAA,IAAC,IAAA,CACC,KAAMiB,EACN,SAAQ,GACR,QAAS,IAAMf,EAAW,gBAAiB,CAAE,KAAM,uBAAwB,MAAO,gBAAiB,EACnG,UAAU,uKAET,SAAAS,EAAK,eAAA,CAAA,CACR,CAAA,CACF,CAAA,CAAA,CACF,CAAA,EACF,EACAX,EAAAA,IAACiC,EAAA,CACC,QAAO,GACP,KAAK,8BACL,QAAUJ,GACRC,EAAwBD,EAAO,iBAAkB,CAAE,KAAM,uBAAwB,IAAK,qBAAsB,EAE9G,UAAU,kBAAA,CAAA,QAEX,UAAA,CAAQ,UAAU,mBACjB,SAAA9B,EAAAA,KAAC,MAAA,CAAI,UAAU,oEACb,SAAA,CAAAA,EAAAA,KAAC,MAAA,CAAI,UAAU,0CACb,SAAA,CAAAC,EAAAA,IAAC,MAAA,CAAI,UAAU,+BAAgC,SAAAW,EAAK,eAAe,EACnEX,EAAAA,IAAC,OAAA,CAAK,UAAU,8HAA8H,SAAA,KAAA,CAE9I,CAAA,EACF,EACCW,EAAK,eAAiBX,EAAAA,IAAC,KAAE,UAAU,yBAA0B,WAAK,cAAc,EACjFA,EAAAA,IAAC,MAAA,CAAI,UAAU,yDACb,SAAAA,EAAAA,IAAC,OAAI,UAAU,6CAA8C,SAAAW,EAAK,YAAA,CAAa,CAAA,CACjF,EACAX,EAAAA,IAACC,EAAA,CACC,MAAOU,EAAK,aACZ,SAAU,IAAMT,EAAW,iBAAkB,CAAE,KAAM,uBAAwB,IAAK,sBAAuB,EACzG,UAAU,6KAET,SAAA,CAAC,CAAE,UAAAC,CAAA,IACFJ,EAAAA,KAAAK,EAAAA,SAAA,CACE,SAAA,CAAAJ,EAAAA,IAACK,EAAA,CAAK,KAAM,EAAA,CAAI,EACfF,GAAae,CAAA,CAAA,CAChB,CAAA,CAAA,EAGHP,EAAK,eAAiBX,EAAAA,IAAC,OAAI,UAAU,yBAA0B,WAAK,aAAA,CAAc,CAAA,CAAA,CACrF,CAAA,CACF,EACAA,EAAAA,IAAC,MAAA,CAAI,UAAU,qCAAsC,WAAK,SAAA,CAAU,CAAA,EACtE,EAEAD,EAAAA,KAAC,UAAA,CAAQ,UAAU,oEACjB,SAAA,CAAAC,EAAAA,IAAC,KAAA,CAAG,UAAU,+BAAgC,SAAAW,EAAK,eAAe,EAClEX,EAAAA,IAAC,IAAA,CAAE,UAAU,yBAA0B,WAAK,cAAc,EAC1DA,EAAAA,IAACR,EAAA,CACC,MAAM,QACN,KAAMmB,EAAK,cACX,KAAK,uBACL,SAAS,iBACT,YAAaQ,EACb,YAAaC,CAAA,CAAA,CACf,EACF,EAEArB,EAAAA,KAAC,UAAA,CAAQ,UAAU,oEACjB,SAAA,CAAAC,EAAAA,IAAC,KAAA,CAAG,UAAU,+BAAgC,SAAAW,EAAK,aAAa,EAChEX,EAAAA,IAAC,IAAA,CAAE,UAAU,yBAA0B,WAAK,WAAA,CAAY,CAAA,EAC1D,EAEAD,EAAAA,KAAC,UAAA,CAAQ,UAAU,oEACjB,SAAA,CAAAC,EAAAA,IAAC,KAAA,CAAG,UAAU,+BAAgC,SAAAW,EAAK,WAAW,EAC9DX,EAAAA,IAAC,IAAA,CAAE,UAAU,yBAA0B,WAAK,UAAU,EACtDA,EAAAA,IAACR,EAAA,CACC,MAAM,QACN,KAAMmB,EAAK,UACX,KAAK,uBACL,SAAS,mBACT,YAAaQ,EACb,YAAaC,CAAA,CAAA,CACf,EACF,EAEArB,EAAAA,KAAC,UAAA,CAAQ,UAAU,gEACjB,SAAA,CAAAA,EAAAA,KAAC,UAAA,CAAQ,UAAU,0FACjB,SAAA,CAAAC,EAAAA,IAAC,OAAA,CAAM,WAAK,aAAA,CAAc,EAC1BD,EAAAA,KAAC,OAAA,CAAK,UAAU,mEACb,SAAA,CAAAT,IAAS,KAAO,KAAO,WACxBU,EAAAA,IAACM,EAAA,CAAY,KAAM,GAAI,UAAU,gBAAA,CAAiB,CAAA,CAAA,CACpD,CAAA,EACF,EACAP,EAAAA,KAAC,MAAA,CAAI,UAAU,iBACb,SAAA,CAAAC,EAAAA,IAAC,IAAA,CAAE,UAAU,yBAA0B,SAAAW,EAAK,aAAa,EACzDX,EAAAA,IAACR,EAAA,CACC,MAAM,KACN,KAAMmB,EAAK,aACX,KAAK,uBACL,SAAS,cACT,YAAaQ,EACb,YAAaC,CAAA,CAAA,CACf,CAAA,CACF,CAAA,EACF,EAEArB,EAAAA,KAAC,UAAA,CAAQ,UAAU,sIACjB,SAAA,CAAAA,EAAAA,KAAC,MAAA,CAAI,UAAU,YACb,SAAA,CAAAC,EAAAA,IAAC,MAAA,CAAI,UAAU,+BAAgC,SAAAW,EAAK,aAAa,EACjEX,EAAAA,IAAC,MAAA,CAAI,UAAU,yBAA0B,WAAK,WAAA,CAAY,CAAA,EAC5D,EACAD,EAAAA,KAAC,MAAA,CAAI,UAAU,mDACb,SAAA,CAAAA,EAAAA,KAAC,IAAA,CACC,KAAMyB,EACN,QAAS,IAAMtB,EAAW,iBAAkB,CAAE,KAAM,uBAAwB,IAAK,uBAAwB,EACzG,UAAU,sJAEV,SAAA,CAAAF,EAAAA,IAACb,EAAA,CAAK,KAAM,EAAA,CAAI,EACfwB,EAAK,eAAA,CAAA,CAAA,EAERZ,EAAAA,KAAC,IAAA,CACC,KAAK,+BACL,OAAO,SACP,IAAI,sBACJ,QAAS,IAAMG,EAAW,iBAAkB,CAAE,KAAM,uBAAwB,IAAK,oBAAqB,EACtG,UAAU,kLAEV,SAAA,CAAAF,EAAAA,IAACZ,EAAA,CAAc,KAAM,EAAA,CAAI,EACxBuB,EAAK,YAAA,CAAA,CAAA,CACR,CAAA,CACF,CAAA,EACF,QAEC,UAAA,CAAQ,UAAU,+CACjB,SAAAZ,EAAAA,KAAC,MAAA,CAAI,UAAU,iDACb,SAAA,CAAAA,EAAAA,KAAC,IAAA,CACC,KAAMc,EACN,QAAUgB,GACRC,EAAwBD,EAAO,iBAAkB,CAAE,KAAM,uBAAwB,IAAK,wBAAyB,EAEjH,UAAU,qIAET,SAAA,CAAAlB,EAAK,WAAW,IAACX,EAAAA,IAAC+B,EAAA,CAAW,KAAM,EAAA,CAAI,CAAA,CAAA,CAAA,EAE1ChC,EAAAA,KAAC,IAAA,CACC,KAAMgB,EACN,QAAUc,GACRC,EAAwBD,EAAO,iBAAkB,CAC/C,KAAM,uBACN,IAAK,4BAAA,CACN,EAEH,UAAU,uJAET,SAAA,CAAAlB,EAAK,aAAa,IAACX,EAAAA,IAAC+B,EAAA,CAAW,KAAM,EAAA,CAAI,CAAA,CAAA,CAAA,CAC5C,CAAA,CACF,CAAA,CACF,CAAA,EACF,EACA/B,EAAAA,IAACkC,EAAA,CACC,QAAS,CACP,MAAOvB,EAAK,WACZ,KAAME,EACN,QAAUgB,GACRC,EAAwBD,EAAO,iBAAkB,CAAE,KAAM,uBAAwB,IAAK,gBAAA,CAAkB,CAAA,EAE5G,UAAW,CACT,MAAOlB,EAAK,aACZ,KAAMI,EACN,QAAUc,GACRC,EAAwBD,EAAO,iBAAkB,CAAE,KAAM,uBAAwB,IAAK,kBAAA,CAAoB,CAAA,CAC9G,CAAA,CACF,EACF,CAEJ","x_google_ignoreList":[0,1,2]}
@@ -1,6 +1,6 @@
1
- import{u as T,r as C,t as r,j as e,b as l}from"./index-B8Y8Y-Mi.js";import{A as o,C as h}from"./CopyButton-CGfuSJtU.js";import{C as U}from"./CliPreflightCard-CxYyogdF.js";import{a as S,S as q}from"./LanguageSwitcher-D93nCuuR.js";import{S as B}from"./StickyMobileCta-uyWGVhdc.js";import{S as F}from"./SiteHeader-Dj3gDOnR.js";import{R}from"./rocket-BjOXauLe.js";import{C as u}from"./clipboard-copy-DgTgnK84.js";import{C as E}from"./chevron-down-DbSAem1L.js";import{T as A}from"./terminal-CGhryJds.js";import{C as j}from"./circle-check-CeakjiXC.js";const H=c=>(c||"").split("-")[0]==="ja"?"ja":"en",y={en:{badge:"5-minute first export",title:"Get a Fastlane-ready export in 5 minutes",subtitle:"Replace manual Figma/Canva edits or brittle AI drafts: run the CLI wizard or open the sample, swap screenshots + copy, and export a reproducible bundle. Upgrade later for watermark-free batch exports.",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",ctas:{cli:"Run CLI first export",goPro:"Go Pro",sample:"Open sample project"},steps:[{title:"Run the CLI wizard (or open the sample)",body:"Use shipscreens wizard to scaffold config + placeholders, or start from the 5-panel sample."},{title:"Export Fastlane outputs",body:"Batch export to fastlane/ or download the reproducible ZIP."},{title:"Wire it into CI",body:"Validate, lock, build, and verify to keep outputs reproducible."}],quickstartTitle:"CI quickstart (copy/paste)",quickstartBody:"Run these commands in CI to generate Fastlane-ready outputs (rendered mode).",quickstartCmd:["npm ci","npx playwright install --with-deps chromium","npm run shipscreens:validate","npm run shipscreens:lock -- --check","npm run shipscreens:build -- --zip","npm run shipscreens:verify -- --zip"].join(`
1
+ import{u as T,r as j,t as r,j as e,b as l}from"./index-Bqv2NztY.js";import{A as o,a as h,C}from"./CopyButton-CmVmSaYn.js";import{C as U}from"./CliPreflightCard-D7utpFux.js";import{a as S,S as q}from"./LanguageSwitcher-BD9N-dla.js";import{S as B}from"./StickyMobileCta-C_x2pUIF.js";import{S as F}from"./SiteHeader-DxsqNPnt.js";import{R}from"./rocket-IzRFv1aW.js";import{C as u}from"./clipboard-copy-DCJioqIc.js";import{C as E}from"./chevron-down-_xIkRLaA.js";import{T as A}from"./terminal-BbBESfoU.js";const H=c=>(c||"").split("-")[0]==="ja"?"ja":"en",y={en:{badge:"5-minute first export",title:"Get a Fastlane-ready export in 5 minutes",subtitle:"Replace manual Figma/Canva edits or brittle AI drafts: run the CLI wizard or open the sample, swap screenshots + copy, and export a reproducible bundle. Upgrade later for watermark-free batch exports.",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",ctas:{cli:"Run CLI first export",goPro:"Go Pro",sample:"Open sample project"},steps:[{title:"Run the CLI wizard (or open the sample)",body:"Use shipscreens wizard to scaffold config + placeholders, or start from the 5-panel sample."},{title:"Export Fastlane outputs",body:"Batch export to fastlane/ or download the reproducible ZIP."},{title:"Wire it into CI",body:"Validate, lock, build, and verify to keep outputs reproducible."}],quickstartTitle:"CI quickstart (copy/paste)",quickstartBody:"Run these commands in CI to generate Fastlane-ready outputs (rendered mode).",quickstartCmd:["npm ci","npx playwright install --with-deps chromium","npm run shipscreens:validate","npm run shipscreens:lock -- --check","npm run shipscreens:build -- --zip","npm run shipscreens:verify -- --zip"].join(`
2
2
  `),cliTitle:"Prefer CLI (no browser)?",cliBody:"Run shipscreens wizard, replace the placeholder PNGs, and build locally/CI in raw mode without Playwright.",cliCmd:["npx --yes shipscreens wizard","# replace assets/en-US/01.png..05.png","npx --yes shipscreens build --mode raw --zip --out out/agent"].join(`
3
3
  `),cliCta:"Open Agent + CLI quickstart",proTitle:"Upgrade unlocks",proBullets:["Unlock CI-grade reruns (rendered exports)","Full matrix batch exports (devices × locales)","CSV/JSON copy import at scale","No watermark"],proUnlockTitle:"Unlock Pro (CLI)",proUnlockBody:"Remove the watermark and unlock full matrix exports via CLI auth:",proUnlockCmd:"npx --yes shipscreens auth login",proUnlockNote:"Completes a one-time browser sign-in; then rerun build with --require-pro.",note:"Free exports are watermarked. Upgrade to remove the watermark."},ja:{badge:"5分で初回エクスポート",title:"Fastlane-ready を5分で出す",subtitle:"Figma/Canvaの手作業やAI下書きの崩れを置き換え、CLI wizard かサンプルから開始して再現性のある形でエクスポート。必要になったらProで透かし解除。",heroCliTitle:"CLIクイックスタート(2ステップ)",heroCliNote:"wizard → build(raw / Playwright不要)。",heroCliSummary:"出力: fastlane/ + 再現性ZIP(ローカル/CI)。",heroCliCopyLabel:"コマンドをすべてコピー",heroCliTemplatesLabel:"スターター雛形",heroCliConfigLabel:"config.yml",heroCliCsvLabel:"copy.csv",ctas:{cli:"CLIで初回エクスポート",goPro:"Proにアップグレード",sample:"サンプルを開く"},steps:[{title:"CLI wizard で雛形作成(サンプルでも可)",body:"shipscreens wizard で雛形を作るか、5枚構成サンプルから開始します。"},{title:"Fastlane出力を作る",body:"fastlane/ か再現性のあるZIPを一括エクスポート。"},{title:"CIに接続する",body:"validate/lock/build/verify で再現性のある出力で回します。"}],quickstartTitle:"CIクイックスタート(コピペ)",quickstartBody:"CIで Fastlane-ready 出力を生成するコマンドです(rendered mode)。",quickstartCmd:["npm ci","npx playwright install --with-deps chromium","npm run shipscreens:validate","npm run shipscreens:lock -- --check","npm run shipscreens:build -- --zip","npm run shipscreens:verify -- --zip"].join(`
4
4
  `),cliTitle:"CLIで完結したい場合",cliBody:"shipscreens wizard で雛形を作り、PNGを差し替えて raw モードでローカル/CI出力します。",cliCmd:["npx --yes shipscreens wizard","# assets/en-US/01.png〜05.png を差し替え","npx --yes shipscreens build --mode raw --zip --out out/agent"].join(`
5
- `),cliCta:"Agent + CLI クイックスタート",proTitle:"Proでできること",proBullets:["CIで再実行(rendered出力)","フル一括(端末×言語)","CSV/JSON copy 取り込み","透かしなし"],proUnlockTitle:"Proを解除(CLI)",proUnlockBody:"透かし解除&フル一括(端末×言語)のために、まずはCLI認証を実行:",proUnlockCmd:"npx --yes shipscreens auth login",proUnlockNote:"初回のみブラウザでサインインします。以後は --require-pro で再実行。",note:"無料版は透かし付きです。必要になったらProで解除できます。"}},K=()=>{const{i18n:c,t:a}=T(),f=H(c.resolvedLanguage||c.language),t=y[f]||y.en,p="support@shimaumaservices.co.jp",_=a("landing.partner.emailSubject",{defaultValue:"ShipScreens first export review"}),k=a("landing.partner.emailBody",{defaultValue:""}),N=`mailto:${p}?subject=${encodeURIComponent(_)}&body=${encodeURIComponent(k)}`,w="/app/?sample=5panel&entry_source=first_export_open_app_header",d="/tools/agent-cli/",v="/downloads/shipscreens-agent-cli-config.yml",I="/downloads/shipscreens-agent-cli-copy.csv",z="/app/?sample=5panel&upgrade=1&entry_source=first_export_go_pro_footer",b="/app/?sample=5panel&entry_source=first_export_open_sample_project",L="/app/?sample=5panel&entry_source=first_export_open_sample_project_footer",x=a("common.copy",{defaultValue:"Copy"}),[P,g]=C.useState("cli"),i=P==="cli",n=i?{title:t.cliTitle,body:t.cliBody,cmd:t.cliCmd,cta:"copy_cli_quickstart"}:{title:t.quickstartTitle,body:t.quickstartBody,cmd:t.quickstartCmd,cta:"copy_ci_quickstart"};return S("titles.firstExport",{defaultValue:t.title}),C.useEffect(()=>{r("tool_view",{tool:"first_export"})},[]),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(q,{}),e.jsx(F,{variant:"dark",active:"tools",openAppHref:w,onToolsClick:s=>l(s,"tool_cta_click",{tool:"first_export",cta:"open_tools_header"}),onPricingClick:s=>l(s,"tool_cta_click",{tool:"first_export",cta:"pricing_header"}),onOpenAppClick:s=>l(s,"tool_cta_click",{tool:"first_export",cta:"open_app_header"}),primaryCta:{href:d,label:e.jsxs("span",{className:"inline-flex items-center gap-2",children:[t.ctas.cli," ",e.jsx(o,{size:16})]}),onClick:s=>l(s,"tool_cta_click",{tool:"first_export",cta:"open_agent_cli_header"})}}),e.jsxs("main",{className:"max-w-5xl mx-auto px-6 pb-24 space-y-12",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(R,{size:14}),t.badge]}),e.jsx("h1",{className:"text-3xl md:text-5xl font-black leading-tight",children:t.title}),e.jsx("p",{className:"text-slate-300 text-lg leading-relaxed",children:t.subtitle}),e.jsxs("a",{href:"#design-partner",onClick:()=>r("tool_cta_click",{tool:"first_export",cta:"jump_design_partner"}),className:"inline-flex items-center gap-1 text-sm text-blue-200 hover:text-blue-100 underline underline-offset-4",children:[a("landing.partner.jumpCta",{defaultValue:a("landing.partner.emailCta")})," ",e.jsx(o,{size:14})]}),e.jsxs("div",{className:"flex flex-col sm:flex-row gap-3 justify-center pt-2",children:[e.jsxs("a",{href:d,onClick:s=>l(s,"tool_cta_click",{tool:"first_export",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:[t.ctas.cli," ",e.jsx(o,{size:16})]}),e.jsxs("a",{href:b,onClick:s=>l(s,"tool_cta_click",{tool:"first_export",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:[t.ctas.sample," ",e.jsx(o,{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:t.heroCliTitle}),e.jsx("p",{className:"text-xs text-slate-400",children:t.heroCliNote}),e.jsx("p",{className:"text-xs text-slate-500",children:t.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:t.cliCmd})}),e.jsx(h,{value:t.cliCmd,onCopied:()=>r("tool_cta_click",{tool:"first_export",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:s,copyState:m})=>e.jsxs(e.Fragment,{children:[e.jsx(u,{size:14}),m==="idle"?t.heroCliCopyLabel:s||x]})}),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:t.heroCliTemplatesLabel}),e.jsxs("div",{className:"flex flex-wrap gap-2",children:[e.jsx("a",{href:v,download:!0,onClick:()=>r("tool_download",{tool:"first_export",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:t.heroCliConfigLabel}),e.jsx("a",{href:I,download:!0,onClick:()=>r("tool_download",{tool:"first_export",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:t.heroCliCsvLabel})]})]})]}),e.jsx(U,{compact:!0,href:"/tools/agent-cli/#preflight",onClick:s=>l(s,"tool_cta_click",{tool:"first_export",cta:"open_cli_preflight"}),className:"max-w-xl mx-auto"}),e.jsx("p",{className:"text-xs text-slate-500",children:t.note})]}),e.jsx("section",{className:"grid md:grid-cols-3 gap-6",children:t.steps.map((s,m)=>e.jsxs("div",{className:"bg-slate-900/60 border border-slate-800 rounded-2xl p-6 space-y-3",children:[e.jsxs("div",{className:"text-xs font-semibold text-blue-200",children:["STEP ",m+1]}),e.jsx("div",{className:"text-lg font-bold text-white",children:s.title}),e.jsx("p",{className:"text-sm text-slate-300 leading-relaxed",children:s.body})]},s.title))}),e.jsxs("details",{className:"bg-slate-900/60 border border-slate-800 rounded-2xl p-6 group",open:!0,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:f==="ja"?"クイックスタート":"Quickstart commands"}),e.jsxs("span",{className:"flex items-center gap-2 text-[10px] font-semibold text-slate-400",children:["CLI/CI ",e.jsx(E,{size:14,className:"text-slate-500"})]})]}),e.jsxs("div",{className:"mt-3 space-y-4",children:[e.jsxs("div",{className:"flex flex-col md:flex-row md:items-center md:justify-between gap-3",children:[e.jsxs("div",{className:"flex items-center gap-2 text-sm font-bold text-white",children:[i?e.jsx(A,{size:16,className:"text-blue-300"}):e.jsx(j,{size:16,className:"text-blue-300"}),n.title]}),e.jsxs("div",{className:"inline-flex gap-2 rounded-lg border border-slate-700 bg-slate-950 p-1",children:[e.jsx("button",{type:"button",onClick:()=>g("cli"),className:`px-3 py-1.5 rounded-md text-xs font-semibold transition-colors ${i?"bg-white text-slate-900":"text-slate-400 hover:text-slate-200"}`,children:t.cliTitle}),e.jsx("button",{type:"button",onClick:()=>g("ci"),className:`px-3 py-1.5 rounded-md text-xs font-semibold transition-colors ${i?"text-slate-400 hover:text-slate-200":"bg-white text-slate-900"}`,children:t.quickstartTitle})]})]}),e.jsx("p",{className:"text-sm text-slate-300",children:n.body}),e.jsx("div",{className:"rounded-xl border border-slate-800 bg-slate-950 p-4",children:e.jsx("pre",{className:"text-xs text-slate-200 whitespace-pre-wrap",children:n.cmd})}),e.jsx(h,{value:n.cmd,onCopied:()=>r("tool_cta_click",{tool:"first_export",cta:n.cta}),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:s})=>e.jsxs(e.Fragment,{children:[e.jsx(u,{size:14}),s||x]})}),i&&e.jsxs("a",{href:"/tools/agent-cli/",onClick:s=>l(s,"tool_cta_click",{tool:"first_export",cta:"open_agent_cli"}),className:"inline-flex items-center gap-2 text-sm text-blue-200 hover:text-blue-100 transition-colors",children:[t.cliCta," ",e.jsx(o,{size:14})]})]})]}),e.jsxs("section",{className:"bg-slate-900/60 border border-slate-800 rounded-2xl p-6 space-y-4",children:[e.jsx("div",{className:"text-lg font-bold text-white",children:t.proTitle}),e.jsx("ul",{className:"space-y-2 text-sm text-slate-300",children:t.proBullets.map(s=>e.jsxs("li",{className:"flex items-center gap-2",children:[e.jsx(j,{size:16,className:"text-green-400"}),s]},s))}),e.jsxs("div",{className:"flex flex-col sm:flex-row gap-3 pt-2",children:[e.jsxs("a",{href:z,onClick:s=>l(s,"tool_cta_click",{tool:"first_export",cta:"go_pro_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:[t.ctas.goPro," ",e.jsx(o,{size:16})]}),e.jsxs("a",{href:L,onClick:s=>l(s,"tool_cta_click",{tool:"first_export",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:[t.ctas.sample," ",e.jsx(o,{size:16})]})]}),e.jsxs("div",{className:"pt-4 border-t border-slate-800/80 space-y-2",children:[e.jsx("div",{className:"text-sm font-bold text-white",children:t.proUnlockTitle}),t.proUnlockBody&&e.jsx("p",{className:"text-sm text-slate-300",children:t.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:t.proUnlockCmd})}),e.jsx("div",{className:"flex flex-col sm:flex-row gap-3",children:e.jsx(h,{value:t.proUnlockCmd,onCopied:()=>r("tool_cta_click",{tool:"first_export",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:s})=>e.jsxs(e.Fragment,{children:[e.jsx(u,{size:14}),s||x]})})}),t.proUnlockNote&&e.jsx("div",{className:"text-xs text-slate-500",children:t.proUnlockNote})]})]}),e.jsxs("section",{id:"design-partner",className:"max-w-3xl mx-auto bg-slate-900/60 border border-slate-800 rounded-2xl p-6 space-y-4",children:[e.jsx("div",{className:"text-lg font-bold text-white",children:a("landing.partner.title")}),e.jsx("div",{className:"text-sm text-slate-300 leading-relaxed",children:a("landing.partner.body")}),e.jsxs("div",{className:"flex flex-col sm:flex-row gap-3",children:[e.jsxs("a",{href:N,onClick:s=>l(s,"tool_cta_click",{tool:"first_export",cta:"email_design_partner"}),className:"flex-1 inline-flex items-center justify-center gap-2 px-4 py-3 rounded-xl bg-blue-500 text-white font-bold hover:bg-blue-600 transition",children:[a("landing.partner.emailCta")," ",e.jsx(o,{size:16})]}),e.jsx("a",{href:"https://x.com/shipscreenscom",target:"_blank",rel:"noopener noreferrer",onClick:()=>r("tool_cta_click",{tool:"first_export",cta:"dm_design_partner"}),className:"flex-1 inline-flex items-center justify-center gap-2 px-4 py-3 rounded-xl border border-slate-700 bg-slate-950 text-slate-200 hover:bg-slate-900 transition",children:a("landing.partner.dmCta")})]}),e.jsxs("div",{className:"text-xs text-slate-500",children:[a("landing.partner.emailLabel")," ",e.jsx("a",{href:`mailto:${p}`,className:"underline underline-offset-4 hover:text-white",children:p})]})]})]}),e.jsx(B,{note:t.note,primary:{label:t.ctas.cli,href:d,onClick:s=>l(s,"tool_cta_click",{tool:"first_export",cta:"sticky_primary"})},secondary:{label:t.ctas.sample,href:b,onClick:s=>l(s,"tool_cta_click",{tool:"first_export",cta:"sticky_secondary"})}})]})};export{K as default};
6
- //# sourceMappingURL=FirstExport-B_UDacZm.js.map
5
+ `),cliCta:"Agent + CLI クイックスタート",proTitle:"Proでできること",proBullets:["CIで再実行(rendered出力)","フル一括(端末×言語)","CSV/JSON copy 取り込み","透かしなし"],proUnlockTitle:"Proを解除(CLI)",proUnlockBody:"透かし解除&フル一括(端末×言語)のために、まずはCLI認証を実行:",proUnlockCmd:"npx --yes shipscreens auth login",proUnlockNote:"初回のみブラウザでサインインします。以後は --require-pro で再実行。",note:"無料版は透かし付きです。必要になったらProで解除できます。"}},Y=()=>{const{i18n:c,t:a}=T(),f=H(c.resolvedLanguage||c.language),t=y[f]||y.en,p="support@shimaumaservices.co.jp",_=a("landing.partner.emailSubject",{defaultValue:"ShipScreens first export review"}),k=a("landing.partner.emailBody",{defaultValue:""}),N=`mailto:${p}?subject=${encodeURIComponent(_)}&body=${encodeURIComponent(k)}`,w="/app/?sample=5panel&entry_source=first_export_open_app_header",d="/tools/agent-cli/",v="/downloads/shipscreens-agent-cli-config.yml",I="/downloads/shipscreens-agent-cli-copy.csv",z="/app/?sample=5panel&upgrade=1&entry_source=first_export_go_pro_footer",b="/app/?sample=5panel&entry_source=first_export_open_sample_project",L="/app/?sample=5panel&entry_source=first_export_open_sample_project_footer",x=a("common.copy",{defaultValue:"Copy"}),[P,g]=j.useState("cli"),i=P==="cli",n=i?{title:t.cliTitle,body:t.cliBody,cmd:t.cliCmd,cta:"copy_cli_quickstart"}:{title:t.quickstartTitle,body:t.quickstartBody,cmd:t.quickstartCmd,cta:"copy_ci_quickstart"};return S("titles.firstExport",{defaultValue:t.title}),j.useEffect(()=>{r("tool_view",{tool:"first_export"})},[]),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(q,{}),e.jsx(F,{variant:"dark",active:"tools",openAppHref:w,onToolsClick:s=>l(s,"tool_cta_click",{tool:"first_export",cta:"open_tools_header"}),onPricingClick:s=>l(s,"tool_cta_click",{tool:"first_export",cta:"pricing_header"}),onOpenAppClick:s=>l(s,"tool_cta_click",{tool:"first_export",cta:"open_app_header"}),primaryCta:{href:d,label:e.jsxs("span",{className:"inline-flex items-center gap-2",children:[t.ctas.cli," ",e.jsx(o,{size:16})]}),onClick:s=>l(s,"tool_cta_click",{tool:"first_export",cta:"open_agent_cli_header"})}}),e.jsxs("main",{className:"max-w-5xl mx-auto px-6 pb-24 space-y-12",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(R,{size:14}),t.badge]}),e.jsx("h1",{className:"text-3xl md:text-5xl font-black leading-tight",children:t.title}),e.jsx("p",{className:"text-slate-300 text-lg leading-relaxed",children:t.subtitle}),e.jsxs("a",{href:"#design-partner",onClick:()=>r("tool_cta_click",{tool:"first_export",cta:"jump_design_partner"}),className:"inline-flex items-center gap-1 text-sm text-blue-200 hover:text-blue-100 underline underline-offset-4",children:[a("landing.partner.jumpCta",{defaultValue:a("landing.partner.emailCta")})," ",e.jsx(o,{size:14})]}),e.jsxs("div",{className:"flex flex-col sm:flex-row gap-3 justify-center pt-2",children:[e.jsxs("a",{href:d,onClick:s=>l(s,"tool_cta_click",{tool:"first_export",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:[t.ctas.cli," ",e.jsx(o,{size:16})]}),e.jsxs("a",{href:b,onClick:s=>l(s,"tool_cta_click",{tool:"first_export",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:[t.ctas.sample," ",e.jsx(o,{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:t.heroCliTitle}),e.jsx("p",{className:"text-xs text-slate-400",children:t.heroCliNote}),e.jsx("p",{className:"text-xs text-slate-500",children:t.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:t.cliCmd})}),e.jsx(h,{value:t.cliCmd,onCopied:()=>r("tool_cta_click",{tool:"first_export",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:s,copyState:m})=>e.jsxs(e.Fragment,{children:[e.jsx(u,{size:14}),m==="idle"?t.heroCliCopyLabel:s||x]})}),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:t.heroCliTemplatesLabel}),e.jsxs("div",{className:"flex flex-wrap gap-2",children:[e.jsx("a",{href:v,download:!0,onClick:()=>r("tool_download",{tool:"first_export",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:t.heroCliConfigLabel}),e.jsx("a",{href:I,download:!0,onClick:()=>r("tool_download",{tool:"first_export",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:t.heroCliCsvLabel})]})]})]}),e.jsx(U,{compact:!0,href:"/tools/agent-cli/#preflight",onClick:s=>l(s,"tool_cta_click",{tool:"first_export",cta:"open_cli_preflight"}),className:"max-w-xl mx-auto"}),e.jsx("p",{className:"text-xs text-slate-500",children:t.note})]}),e.jsx("section",{className:"grid md:grid-cols-3 gap-6",children:t.steps.map((s,m)=>e.jsxs("div",{className:"bg-slate-900/60 border border-slate-800 rounded-2xl p-6 space-y-3",children:[e.jsxs("div",{className:"text-xs font-semibold text-blue-200",children:["STEP ",m+1]}),e.jsx("div",{className:"text-lg font-bold text-white",children:s.title}),e.jsx("p",{className:"text-sm text-slate-300 leading-relaxed",children:s.body})]},s.title))}),e.jsxs("details",{className:"bg-slate-900/60 border border-slate-800 rounded-2xl p-6 group",open:!0,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:f==="ja"?"クイックスタート":"Quickstart commands"}),e.jsxs("span",{className:"flex items-center gap-2 text-[10px] font-semibold text-slate-400",children:["CLI/CI ",e.jsx(E,{size:14,className:"text-slate-500"})]})]}),e.jsxs("div",{className:"mt-3 space-y-4",children:[e.jsxs("div",{className:"flex flex-col md:flex-row md:items-center md:justify-between gap-3",children:[e.jsxs("div",{className:"flex items-center gap-2 text-sm font-bold text-white",children:[i?e.jsx(A,{size:16,className:"text-blue-300"}):e.jsx(C,{size:16,className:"text-blue-300"}),n.title]}),e.jsxs("div",{className:"inline-flex gap-2 rounded-lg border border-slate-700 bg-slate-950 p-1",children:[e.jsx("button",{type:"button",onClick:()=>g("cli"),className:`px-3 py-1.5 rounded-md text-xs font-semibold transition-colors ${i?"bg-white text-slate-900":"text-slate-400 hover:text-slate-200"}`,children:t.cliTitle}),e.jsx("button",{type:"button",onClick:()=>g("ci"),className:`px-3 py-1.5 rounded-md text-xs font-semibold transition-colors ${i?"text-slate-400 hover:text-slate-200":"bg-white text-slate-900"}`,children:t.quickstartTitle})]})]}),e.jsx("p",{className:"text-sm text-slate-300",children:n.body}),e.jsx("div",{className:"rounded-xl border border-slate-800 bg-slate-950 p-4",children:e.jsx("pre",{className:"text-xs text-slate-200 whitespace-pre-wrap",children:n.cmd})}),e.jsx(h,{value:n.cmd,onCopied:()=>r("tool_cta_click",{tool:"first_export",cta:n.cta}),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:s})=>e.jsxs(e.Fragment,{children:[e.jsx(u,{size:14}),s||x]})}),i&&e.jsxs("a",{href:"/tools/agent-cli/",onClick:s=>l(s,"tool_cta_click",{tool:"first_export",cta:"open_agent_cli"}),className:"inline-flex items-center gap-2 text-sm text-blue-200 hover:text-blue-100 transition-colors",children:[t.cliCta," ",e.jsx(o,{size:14})]})]})]}),e.jsxs("section",{className:"bg-slate-900/60 border border-slate-800 rounded-2xl p-6 space-y-4",children:[e.jsx("div",{className:"text-lg font-bold text-white",children:t.proTitle}),e.jsx("ul",{className:"space-y-2 text-sm text-slate-300",children:t.proBullets.map(s=>e.jsxs("li",{className:"flex items-center gap-2",children:[e.jsx(C,{size:16,className:"text-green-400"}),s]},s))}),e.jsxs("div",{className:"flex flex-col sm:flex-row gap-3 pt-2",children:[e.jsxs("a",{href:z,onClick:s=>l(s,"tool_cta_click",{tool:"first_export",cta:"go_pro_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:[t.ctas.goPro," ",e.jsx(o,{size:16})]}),e.jsxs("a",{href:L,onClick:s=>l(s,"tool_cta_click",{tool:"first_export",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:[t.ctas.sample," ",e.jsx(o,{size:16})]})]}),e.jsxs("div",{className:"pt-4 border-t border-slate-800/80 space-y-2",children:[e.jsx("div",{className:"text-sm font-bold text-white",children:t.proUnlockTitle}),t.proUnlockBody&&e.jsx("p",{className:"text-sm text-slate-300",children:t.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:t.proUnlockCmd})}),e.jsx("div",{className:"flex flex-col sm:flex-row gap-3",children:e.jsx(h,{value:t.proUnlockCmd,onCopied:()=>r("tool_cta_click",{tool:"first_export",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:s})=>e.jsxs(e.Fragment,{children:[e.jsx(u,{size:14}),s||x]})})}),t.proUnlockNote&&e.jsx("div",{className:"text-xs text-slate-500",children:t.proUnlockNote})]})]}),e.jsxs("section",{id:"design-partner",className:"max-w-3xl mx-auto bg-slate-900/60 border border-slate-800 rounded-2xl p-6 space-y-4",children:[e.jsx("div",{className:"text-lg font-bold text-white",children:a("landing.partner.title")}),e.jsx("div",{className:"text-sm text-slate-300 leading-relaxed",children:a("landing.partner.body")}),e.jsxs("div",{className:"flex flex-col sm:flex-row gap-3",children:[e.jsxs("a",{href:N,onClick:s=>l(s,"tool_cta_click",{tool:"first_export",cta:"email_design_partner"}),className:"flex-1 inline-flex items-center justify-center gap-2 px-4 py-3 rounded-xl bg-blue-500 text-white font-bold hover:bg-blue-600 transition",children:[a("landing.partner.emailCta")," ",e.jsx(o,{size:16})]}),e.jsx("a",{href:"https://x.com/shipscreenscom",target:"_blank",rel:"noopener noreferrer",onClick:()=>r("tool_cta_click",{tool:"first_export",cta:"dm_design_partner"}),className:"flex-1 inline-flex items-center justify-center gap-2 px-4 py-3 rounded-xl border border-slate-700 bg-slate-950 text-slate-200 hover:bg-slate-900 transition",children:a("landing.partner.dmCta")})]}),e.jsxs("div",{className:"text-xs text-slate-500",children:[a("landing.partner.emailLabel")," ",e.jsx("a",{href:`mailto:${p}`,className:"underline underline-offset-4 hover:text-white",children:p})]})]})]}),e.jsx(B,{note:t.note,primary:{label:t.ctas.cli,href:d,onClick:s=>l(s,"tool_cta_click",{tool:"first_export",cta:"sticky_primary"})},secondary:{label:t.ctas.sample,href:b,onClick:s=>l(s,"tool_cta_click",{tool:"first_export",cta:"sticky_secondary"})}})]})};export{Y as default};
6
+ //# sourceMappingURL=FirstExport-C0WgL4Hl.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"FirstExport-B_UDacZm.js","sources":["../../src/pages/FirstExport.jsx"],"sourcesContent":["import { ArrowRight, CheckCircle2, ChevronDown, ClipboardCopy, Rocket, Terminal } from 'lucide-react';\nimport React, { useEffect, useState } from '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: '5-minute first export',\n title: 'Get a Fastlane-ready export in 5 minutes',\n subtitle:\n 'Replace manual Figma/Canva edits or brittle AI drafts: run the CLI wizard or open the sample, swap screenshots + copy, and export a reproducible bundle. Upgrade later for watermark-free batch exports.',\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 ctas: {\n cli: 'Run CLI first export',\n goPro: 'Go Pro',\n sample: 'Open sample project',\n },\n steps: [\n {\n title: 'Run the CLI wizard (or open the sample)',\n body: 'Use shipscreens wizard to scaffold config + placeholders, or start from the 5-panel sample.',\n },\n {\n title: 'Export Fastlane outputs',\n body: 'Batch export to fastlane/ or download the reproducible ZIP.',\n },\n {\n title: 'Wire it into CI',\n body: 'Validate, lock, build, and verify to keep outputs reproducible.',\n },\n ],\n quickstartTitle: 'CI quickstart (copy/paste)',\n quickstartBody: 'Run these commands in CI to generate Fastlane-ready outputs (rendered mode).',\n quickstartCmd: [\n 'npm ci',\n 'npx playwright install --with-deps chromium',\n 'npm run shipscreens:validate',\n 'npm run shipscreens:lock -- --check',\n 'npm run shipscreens:build -- --zip',\n 'npm run shipscreens:verify -- --zip',\n ].join('\\n'),\n cliTitle: 'Prefer CLI (no browser)?',\n cliBody:\n 'Run shipscreens wizard, replace the placeholder PNGs, and build locally/CI in raw mode without Playwright.',\n cliCmd: [\n 'npx --yes shipscreens wizard',\n '# replace assets/en-US/01.png..05.png',\n 'npx --yes shipscreens build --mode raw --zip --out out/agent',\n ].join('\\n'),\n cliCta: 'Open Agent + CLI quickstart',\n proTitle: 'Upgrade unlocks',\n proBullets: [\n 'Unlock CI-grade reruns (rendered exports)',\n 'Full matrix batch exports (devices × locales)',\n 'CSV/JSON copy import at scale',\n 'No watermark',\n ],\n proUnlockTitle: 'Unlock Pro (CLI)',\n proUnlockBody: 'Remove the watermark and unlock full matrix 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 note: 'Free exports are watermarked. Upgrade to remove the watermark.',\n },\n ja: {\n badge: '5分で初回エクスポート',\n title: 'Fastlane-ready を5分で出す',\n subtitle:\n 'Figma/Canvaの手作業やAI下書きの崩れを置き換え、CLI wizard かサンプルから開始して再現性のある形でエクスポート。必要になったらProで透かし解除。',\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 ctas: {\n cli: 'CLIで初回エクスポート',\n goPro: 'Proにアップグレード',\n sample: 'サンプルを開く',\n },\n steps: [\n {\n title: 'CLI wizard で雛形作成(サンプルでも可)',\n body: 'shipscreens wizard で雛形を作るか、5枚構成サンプルから開始します。',\n },\n {\n title: 'Fastlane出力を作る',\n body: 'fastlane/ か再現性のあるZIPを一括エクスポート。',\n },\n {\n title: 'CIに接続する',\n body: 'validate/lock/build/verify で再現性のある出力で回します。',\n },\n ],\n quickstartTitle: 'CIクイックスタート(コピペ)',\n quickstartBody: 'CIで Fastlane-ready 出力を生成するコマンドです(rendered mode)。',\n quickstartCmd: [\n 'npm ci',\n 'npx playwright install --with-deps chromium',\n 'npm run shipscreens:validate',\n 'npm run shipscreens:lock -- --check',\n 'npm run shipscreens:build -- --zip',\n 'npm run shipscreens:verify -- --zip',\n ].join('\\n'),\n cliTitle: 'CLIで完結したい場合',\n cliBody:\n 'shipscreens wizard で雛形を作り、PNGを差し替えて raw モードでローカル/CI出力します。',\n cliCmd: [\n 'npx --yes shipscreens wizard',\n '# assets/en-US/01.png〜05.png を差し替え',\n 'npx --yes shipscreens build --mode raw --zip --out out/agent',\n ].join('\\n'),\n cliCta: 'Agent + CLI クイックスタート',\n proTitle: 'Proでできること',\n proBullets: [\n 'CIで再実行(rendered出力)',\n 'フル一括(端末×言語)',\n 'CSV/JSON copy 取り込み',\n '透かしなし',\n ],\n proUnlockTitle: 'Proを解除(CLI)',\n proUnlockBody: '透かし解除&フル一括(端末×言語)のために、まずはCLI認証を実行:',\n proUnlockCmd: 'npx --yes shipscreens auth login',\n proUnlockNote: '初回のみブラウザでサインインします。以後は --require-pro で再実行。',\n note: '無料版は透かし付きです。必要になったらProで解除できます。',\n },\n};\n\nconst FirstExport = () => {\n const { i18n, t } = useTranslation();\n const lang = normalizeLang(i18n.resolvedLanguage || i18n.language);\n const copy = COPY[lang] || COPY.en;\n const supportEmail = 'support@shimaumaservices.co.jp';\n const partnerSubject = t('landing.partner.emailSubject', { defaultValue: 'ShipScreens first export review' });\n const partnerBody = t('landing.partner.emailBody', { defaultValue: '' });\n const partnerMailto = `mailto:${supportEmail}?subject=${encodeURIComponent(partnerSubject)}&body=${encodeURIComponent(\n partnerBody\n )}`;\n const openAppHref = '/app/?sample=5panel&entry_source=first_export_open_app_header';\n const agentCliHref = '/tools/agent-cli/';\n const configDownloadHref = '/downloads/shipscreens-agent-cli-config.yml';\n const csvDownloadHref = '/downloads/shipscreens-agent-cli-copy.csv';\n const goProFooterHref = '/app/?sample=5panel&upgrade=1&entry_source=first_export_go_pro_footer';\n const sampleProjectHeroHref = '/app/?sample=5panel&entry_source=first_export_open_sample_project';\n const sampleProjectFooterHref = '/app/?sample=5panel&entry_source=first_export_open_sample_project_footer';\n const copyButtonLabel = t('common.copy', { defaultValue: 'Copy' });\n const [quickstartMode, setQuickstartMode] = useState('cli');\n const isCli = quickstartMode === 'cli';\n const quickstart = isCli\n ? { title: copy.cliTitle, body: copy.cliBody, cmd: copy.cliCmd, cta: 'copy_cli_quickstart' }\n : { title: copy.quickstartTitle, body: copy.quickstartBody, cmd: copy.quickstartCmd, cta: 'copy_ci_quickstart' };\n\n usePageTitle('titles.firstExport', { defaultValue: copy.title });\n\n useEffect(() => {\n trackEvent('tool_view', { tool: 'first_export' });\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: 'first_export', cta: 'open_tools_header' })\n }\n onPricingClick={(event) =>\n trackEventAndFollowLink(event, 'tool_cta_click', { tool: 'first_export', cta: 'pricing_header' })\n }\n onOpenAppClick={(event) =>\n trackEventAndFollowLink(event, 'tool_cta_click', { tool: 'first_export', cta: 'open_app_header' })\n }\n primaryCta={{\n href: agentCliHref,\n label: (\n <span className=\"inline-flex items-center gap-2\">\n {copy.ctas.cli} <ArrowRight size={16} />\n </span>\n ),\n onClick: (event) =>\n trackEventAndFollowLink(event, 'tool_cta_click', { tool: 'first_export', cta: 'open_agent_cli_header' }),\n }}\n />\n\n <main className=\"max-w-5xl mx-auto px-6 pb-24 space-y-12\">\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 <Rocket 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 <a\n href=\"#design-partner\"\n onClick={() => trackEvent('tool_cta_click', { tool: 'first_export', cta: 'jump_design_partner' })}\n className=\"inline-flex items-center gap-1 text-sm text-blue-200 hover:text-blue-100 underline underline-offset-4\"\n >\n {t('landing.partner.jumpCta', { defaultValue: t('landing.partner.emailCta') })} <ArrowRight size={14} />\n </a>\n <div className=\"flex flex-col sm:flex-row gap-3 justify-center pt-2\">\n <a\n href={agentCliHref}\n onClick={(event) => trackEventAndFollowLink(event, 'tool_cta_click', { tool: 'first_export', cta: 'open_agent_cli_hero' })}\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.ctas.cli} <ArrowRight size={16} />\n </a>\n <a\n href={sampleProjectHeroHref}\n onClick={(event) =>\n trackEventAndFollowLink(event, 'tool_cta_click', { tool: 'first_export', 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.ctas.sample} <ArrowRight size={16} />\n </a>\n </div>\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.cliCmd}</pre>\n </div>\n <CopyButton\n value={copy.cliCmd}\n onCopied={() => trackEvent('tool_cta_click', { tool: 'first_export', 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 <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: 'first_export', 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: 'first_export', 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 <CliPreflightCard\n compact\n href=\"/tools/agent-cli/#preflight\"\n onClick={(event) =>\n trackEventAndFollowLink(event, 'tool_cta_click', { tool: 'first_export', cta: 'open_cli_preflight' })\n }\n className=\"max-w-xl mx-auto\"\n />\n <p className=\"text-xs text-slate-500\">{copy.note}</p>\n </section>\n\n <section className=\"grid md:grid-cols-3 gap-6\">\n {copy.steps.map((step, index) => (\n <div key={step.title} className=\"bg-slate-900/60 border border-slate-800 rounded-2xl p-6 space-y-3\">\n <div className=\"text-xs font-semibold text-blue-200\">STEP {index + 1}</div>\n <div className=\"text-lg font-bold text-white\">{step.title}</div>\n <p className=\"text-sm text-slate-300 leading-relaxed\">{step.body}</p>\n </div>\n ))}\n </section>\n\n <details className=\"bg-slate-900/60 border border-slate-800 rounded-2xl p-6 group\" open>\n <summary className=\"flex items-center justify-between text-sm font-bold text-white cursor-pointer list-none\">\n <span>{lang === 'ja' ? 'クイックスタート' : 'Quickstart commands'}</span>\n <span className=\"flex items-center gap-2 text-[10px] font-semibold text-slate-400\">\n CLI/CI <ChevronDown size={14} className=\"text-slate-500\" />\n </span>\n </summary>\n <div className=\"mt-3 space-y-4\">\n <div className=\"flex flex-col md:flex-row md:items-center md:justify-between gap-3\">\n <div className=\"flex items-center gap-2 text-sm font-bold text-white\">\n {isCli ? <Terminal size={16} className=\"text-blue-300\" /> : <CheckCircle2 size={16} className=\"text-blue-300\" />}\n {quickstart.title}\n </div>\n <div className=\"inline-flex gap-2 rounded-lg border border-slate-700 bg-slate-950 p-1\">\n <button\n type=\"button\"\n onClick={() => setQuickstartMode('cli')}\n className={`px-3 py-1.5 rounded-md text-xs font-semibold transition-colors ${\n isCli ? 'bg-white text-slate-900' : 'text-slate-400 hover:text-slate-200'\n }`}\n >\n {copy.cliTitle}\n </button>\n <button\n type=\"button\"\n onClick={() => setQuickstartMode('ci')}\n className={`px-3 py-1.5 rounded-md text-xs font-semibold transition-colors ${\n !isCli ? 'bg-white text-slate-900' : 'text-slate-400 hover:text-slate-200'\n }`}\n >\n {copy.quickstartTitle}\n </button>\n </div>\n </div>\n <p className=\"text-sm text-slate-300\">{quickstart.body}</p>\n <div className=\"rounded-xl border border-slate-800 bg-slate-950 p-4\">\n <pre className=\"text-xs text-slate-200 whitespace-pre-wrap\">{quickstart.cmd}</pre>\n </div>\n <CopyButton\n value={quickstart.cmd}\n onCopied={() => trackEvent('tool_cta_click', { tool: 'first_export', cta: quickstart.cta })}\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 {isCli && (\n <a\n href=\"/tools/agent-cli/\"\n onClick={(event) =>\n trackEventAndFollowLink(event, 'tool_cta_click', { tool: 'first_export', cta: 'open_agent_cli' })\n }\n className=\"inline-flex items-center gap-2 text-sm text-blue-200 hover:text-blue-100 transition-colors\"\n >\n {copy.cliCta} <ArrowRight size={14} />\n </a>\n )}\n </div>\n </details>\n\n <section className=\"bg-slate-900/60 border border-slate-800 rounded-2xl p-6 space-y-4\">\n <div className=\"text-lg font-bold text-white\">{copy.proTitle}</div>\n <ul className=\"space-y-2 text-sm text-slate-300\">\n {copy.proBullets.map((item) => (\n <li key={item} className=\"flex items-center gap-2\">\n <CheckCircle2 size={16} className=\"text-green-400\" />\n {item}\n </li>\n ))}\n </ul>\n <div className=\"flex flex-col sm:flex-row gap-3 pt-2\">\n <a\n href={goProFooterHref}\n onClick={(event) => trackEventAndFollowLink(event, 'tool_cta_click', { tool: 'first_export', cta: 'go_pro_footer' })}\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\"\n >\n {copy.ctas.goPro} <ArrowRight size={16} />\n </a>\n <a\n href={sampleProjectFooterHref}\n onClick={(event) => trackEventAndFollowLink(event, 'tool_cta_click', { tool: 'first_export', cta: 'open_sample_project_footer' })}\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\"\n >\n {copy.ctas.sample} <ArrowRight size={16} />\n </a>\n </div>\n <div className=\"pt-4 border-t border-slate-800/80 space-y-2\">\n <div className=\"text-sm font-bold text-white\">{copy.proUnlockTitle}</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 <div className=\"flex flex-col sm:flex-row gap-3\">\n <CopyButton\n value={copy.proUnlockCmd}\n onCopied={() => trackEvent('tool_cta_click', { tool: 'first_export', 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 </div>\n {copy.proUnlockNote && <div className=\"text-xs text-slate-500\">{copy.proUnlockNote}</div>}\n </div>\n </section>\n\n <section\n id=\"design-partner\"\n className=\"max-w-3xl mx-auto bg-slate-900/60 border border-slate-800 rounded-2xl p-6 space-y-4\"\n >\n <div className=\"text-lg font-bold text-white\">{t('landing.partner.title')}</div>\n <div className=\"text-sm text-slate-300 leading-relaxed\">{t('landing.partner.body')}</div>\n <div className=\"flex flex-col sm:flex-row gap-3\">\n <a\n href={partnerMailto}\n onClick={(event) =>\n trackEventAndFollowLink(event, 'tool_cta_click', { tool: 'first_export', cta: 'email_design_partner' })\n }\n className=\"flex-1 inline-flex items-center justify-center gap-2 px-4 py-3 rounded-xl bg-blue-500 text-white font-bold hover:bg-blue-600 transition\"\n >\n {t('landing.partner.emailCta')} <ArrowRight size={16} />\n </a>\n <a\n href=\"https://x.com/shipscreenscom\"\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n onClick={() => trackEvent('tool_cta_click', { tool: 'first_export', cta: 'dm_design_partner' })}\n className=\"flex-1 inline-flex items-center justify-center gap-2 px-4 py-3 rounded-xl border border-slate-700 bg-slate-950 text-slate-200 hover:bg-slate-900 transition\"\n >\n {t('landing.partner.dmCta')}\n </a>\n </div>\n <div className=\"text-xs text-slate-500\">\n {t('landing.partner.emailLabel')}{' '}\n <a href={`mailto:${supportEmail}`} className=\"underline underline-offset-4 hover:text-white\">\n {supportEmail}\n </a>\n </div>\n </section>\n </main>\n <StickyMobileCta\n note={copy.note}\n primary={{\n label: copy.ctas.cli,\n href: agentCliHref,\n onClick: (event) =>\n trackEventAndFollowLink(event, 'tool_cta_click', { tool: 'first_export', cta: 'sticky_primary' }),\n }}\n secondary={{\n label: copy.ctas.sample,\n href: sampleProjectHeroHref,\n onClick: (event) =>\n trackEventAndFollowLink(event, 'tool_cta_click', { tool: 'first_export', cta: 'sticky_secondary' }),\n }}\n />\n </div>\n );\n};\n\nexport default FirstExport;\n"],"names":["normalizeLang","lang","COPY","FirstExport","i18n","t","useTranslation","copy","supportEmail","partnerSubject","partnerBody","partnerMailto","openAppHref","agentCliHref","configDownloadHref","csvDownloadHref","goProFooterHref","sampleProjectHeroHref","sampleProjectFooterHref","copyButtonLabel","quickstartMode","setQuickstartMode","useState","isCli","quickstart","usePageTitle","useEffect","trackEvent","jsxs","jsx","StagingBadge","SiteHeader","event","trackEventAndFollowLink","ArrowRight","Rocket","CopyButton","copyLabel","copyState","Fragment","ClipboardCopy","CliPreflightCard","step","index","ChevronDown","Terminal","CheckCircle2","item","StickyMobileCta"],"mappings":"kiBAWA,MAAMA,EAAiBC,IACPA,GAAQ,IAAI,MAAM,GAAG,EAAE,CAAC,IACtB,KAAO,KAAO,KAG1BC,EAAO,CACX,GAAI,CACF,MAAO,wBACP,MAAO,2CACP,SACE,2MACF,aAAc,2BACd,YAAa,4CACb,eAAgB,oDAChB,iBAAkB,oBAClB,sBAAuB,oBACvB,mBAAoB,aACpB,gBAAiB,WACjB,KAAM,CACJ,IAAK,uBACL,MAAO,SACP,OAAQ,qBAAA,EAEV,MAAO,CACL,CACE,MAAO,0CACP,KAAM,6FAAA,EAER,CACE,MAAO,0BACP,KAAM,6DAAA,EAER,CACE,MAAO,kBACP,KAAM,iEAAA,CACR,EAEF,gBAAiB,6BACjB,eAAgB,+EAChB,cAAe,CACb,SACA,8CACA,+BACA,sCACA,qCACA,qCAAA,EACA,KAAK;AAAA,CAAI,EACX,SAAU,2BACV,QACE,6GACF,OAAQ,CACN,+BACA,wCACA,8DAAA,EACA,KAAK;AAAA,CAAI,EACX,OAAQ,8BACR,SAAU,kBACV,WAAY,CACV,4CACA,gDACA,gCACA,cAAA,EAEF,eAAgB,mBAChB,cAAe,oEACf,aAAc,mCACd,cAAe,6EACf,KAAM,gEAAA,EAER,GAAI,CACF,MAAO,cACP,MAAO,wBACP,SACE,uFACF,aAAc,qBACd,YAAa,sCACb,eAAgB,mCAChB,iBAAkB,cAClB,sBAAuB,UACvB,mBAAoB,aACpB,gBAAiB,WACjB,KAAM,CACJ,IAAK,eACL,MAAO,cACP,OAAQ,SAAA,EAEV,MAAO,CACL,CACE,MAAO,4BACP,KAAM,6CAAA,EAER,CACE,MAAO,gBACP,KAAM,gCAAA,EAER,CACE,MAAO,UACP,KAAM,4CAAA,CACR,EAEF,gBAAiB,kBACjB,eAAgB,mDAChB,cAAe,CACb,SACA,8CACA,+BACA,sCACA,qCACA,qCAAA,EACA,KAAK;AAAA,CAAI,EACX,SAAU,cACV,QACE,4DACF,OAAQ,CACN,+BACA,qCACA,8DAAA,EACA,KAAK;AAAA,CAAI,EACX,OAAQ,uBACR,SAAU,YACV,WAAY,CACV,qBACA,cACA,qBACA,OAAA,EAEF,eAAgB,cAChB,cAAe,qCACf,aAAc,mCACd,cAAe,4CACf,KAAM,gCAAA,CAEV,EAEMC,EAAc,IAAM,CACxB,KAAM,CAAE,KAAAC,EAAM,EAAAC,CAAA,EAAMC,EAAA,EACdL,EAAOD,EAAcI,EAAK,kBAAoBA,EAAK,QAAQ,EAC3DG,EAAOL,EAAKD,CAAI,GAAKC,EAAK,GAC1BM,EAAe,iCACfC,EAAiBJ,EAAE,+BAAgC,CAAE,aAAc,kCAAmC,EACtGK,EAAcL,EAAE,4BAA6B,CAAE,aAAc,GAAI,EACjEM,EAAgB,UAAUH,CAAY,YAAY,mBAAmBC,CAAc,CAAC,SAAS,mBACjGC,CAAA,CACD,GACKE,EAAc,gEACdC,EAAe,oBACfC,EAAqB,8CACrBC,EAAkB,4CAClBC,EAAkB,wEAClBC,EAAwB,oEACxBC,EAA0B,2EAC1BC,EAAkBd,EAAE,cAAe,CAAE,aAAc,OAAQ,EAC3D,CAACe,EAAgBC,CAAiB,EAAIC,EAAAA,SAAS,KAAK,EACpDC,EAAQH,IAAmB,MAC3BI,EAAaD,EACf,CAAE,MAAOhB,EAAK,SAAU,KAAMA,EAAK,QAAS,IAAKA,EAAK,OAAQ,IAAK,uBACnE,CAAE,MAAOA,EAAK,gBAAiB,KAAMA,EAAK,eAAgB,IAAKA,EAAK,cAAe,IAAK,oBAAA,EAE5F,OAAAkB,EAAa,qBAAsB,CAAE,aAAclB,EAAK,MAAO,EAE/DmB,EAAAA,UAAU,IAAM,CACdC,EAAW,YAAa,CAAE,KAAM,cAAA,CAAgB,CAClD,EAAG,CAAA,CAAE,EAGHC,EAAAA,KAAC,MAAA,CAAI,UAAU,qFACb,SAAA,CAAAC,EAAAA,IAACC,EAAA,EAAa,EACdD,EAAAA,IAACE,EAAA,CACC,QAAQ,OACR,OAAO,QACP,YAAAnB,EACA,aAAeoB,GACbC,EAAwBD,EAAO,iBAAkB,CAAE,KAAM,eAAgB,IAAK,oBAAqB,EAErG,eAAiBA,GACfC,EAAwBD,EAAO,iBAAkB,CAAE,KAAM,eAAgB,IAAK,iBAAkB,EAElG,eAAiBA,GACfC,EAAwBD,EAAO,iBAAkB,CAAE,KAAM,eAAgB,IAAK,kBAAmB,EAEnG,WAAY,CACV,KAAMnB,EACN,MACEe,EAAAA,KAAC,OAAA,CAAK,UAAU,iCACb,SAAA,CAAArB,EAAK,KAAK,IAAI,IAACsB,EAAAA,IAACK,EAAA,CAAW,KAAM,EAAA,CAAI,CAAA,EACxC,EAEF,QAAUF,GACRC,EAAwBD,EAAO,iBAAkB,CAAE,KAAM,eAAgB,IAAK,uBAAA,CAAyB,CAAA,CAC3G,CAAA,EAGFJ,EAAAA,KAAC,OAAA,CAAK,UAAU,0CACd,SAAA,CAAAA,EAAAA,KAAC,UAAA,CAAQ,UAAU,0CACjB,SAAA,CAAAA,EAAAA,KAAC,MAAA,CAAI,UAAU,uIACb,SAAA,CAAAC,EAAAA,IAACM,EAAA,CAAO,KAAM,EAAA,CAAI,EACjB5B,EAAK,KAAA,EACR,EACAsB,EAAAA,IAAC,KAAA,CAAG,UAAU,gDAAiD,WAAK,MAAM,EAC1EA,EAAAA,IAAC,IAAA,CAAE,UAAU,yCAA0C,WAAK,SAAS,EACrED,EAAAA,KAAC,IAAA,CACC,KAAK,kBACL,QAAS,IAAMD,EAAW,iBAAkB,CAAE,KAAM,eAAgB,IAAK,sBAAuB,EAChG,UAAU,wGAET,SAAA,CAAAtB,EAAE,0BAA2B,CAAE,aAAcA,EAAE,0BAA0B,EAAG,EAAE,IAACwB,EAAAA,IAACK,EAAA,CAAW,KAAM,EAAA,CAAI,CAAA,CAAA,CAAA,EAExGN,EAAAA,KAAC,MAAA,CAAI,UAAU,sDACb,SAAA,CAAAA,EAAAA,KAAC,IAAA,CACC,KAAMf,EACN,QAAUmB,GAAUC,EAAwBD,EAAO,iBAAkB,CAAE,KAAM,eAAgB,IAAK,sBAAuB,EACzH,UAAU,mIAET,SAAA,CAAAzB,EAAK,KAAK,IAAI,IAACsB,EAAAA,IAACK,EAAA,CAAW,KAAM,EAAA,CAAI,CAAA,CAAA,CAAA,EAExCN,EAAAA,KAAC,IAAA,CACC,KAAMX,EACN,QAAUe,GACRC,EAAwBD,EAAO,iBAAkB,CAAE,KAAM,eAAgB,IAAK,2BAA4B,EAE5G,UAAU,iKAET,SAAA,CAAAzB,EAAK,KAAK,OAAO,IAACsB,EAAAA,IAACK,EAAA,CAAW,KAAM,EAAA,CAAI,CAAA,CAAA,CAAA,CAC3C,EACF,EACAN,EAAAA,KAAC,MAAA,CAAI,UAAU,+FACb,SAAA,CAAAC,EAAAA,IAAC,MAAA,CAAI,UAAU,sEAAuE,SAAAtB,EAAK,aAAa,EACxGsB,EAAAA,IAAC,IAAA,CAAE,UAAU,yBAA0B,WAAK,YAAY,EACxDA,EAAAA,IAAC,IAAA,CAAE,UAAU,yBAA0B,WAAK,eAAe,EAC3DA,EAAAA,IAAC,MAAA,CAAI,UAAU,sDACb,SAAAA,EAAAA,IAAC,OAAI,UAAU,6CAA8C,SAAAtB,EAAK,MAAA,CAAO,CAAA,CAC3E,EACAsB,EAAAA,IAACO,EAAA,CACC,MAAO7B,EAAK,OACZ,SAAU,IAAMoB,EAAW,iBAAkB,CAAE,KAAM,eAAgB,IAAK,gBAAiB,EAC3F,UAAU,6KAET,SAAA,CAAC,CAAE,UAAAU,EAAW,UAAAC,CAAA,IACbV,OAAAW,EAAAA,SAAA,CACE,SAAA,CAAAV,EAAAA,IAACW,EAAA,CAAc,KAAM,EAAA,CAAI,EACxBF,IAAc,OAAS/B,EAAK,iBAAmB8B,GAAalB,CAAA,CAAA,CAC/D,CAAA,CAAA,EAGJS,EAAAA,KAAC,MAAA,CAAI,UAAU,iBACb,SAAA,CAAAC,EAAAA,IAAC,MAAA,CAAI,UAAU,sEACZ,SAAAtB,EAAK,sBACR,EACAqB,EAAAA,KAAC,MAAA,CAAI,UAAU,uBACb,SAAA,CAAAC,EAAAA,IAAC,IAAA,CACC,KAAMf,EACN,SAAQ,GACR,QAAS,IAAMa,EAAW,gBAAiB,CAAE,KAAM,eAAgB,MAAO,kBAAmB,EAC7F,UAAU,uKAET,SAAApB,EAAK,kBAAA,CAAA,EAERsB,EAAAA,IAAC,IAAA,CACC,KAAMd,EACN,SAAQ,GACR,QAAS,IAAMY,EAAW,gBAAiB,CAAE,KAAM,eAAgB,MAAO,gBAAiB,EAC3F,UAAU,uKAET,SAAApB,EAAK,eAAA,CAAA,CACR,CAAA,CACF,CAAA,CAAA,CACF,CAAA,EACF,EACAsB,EAAAA,IAACY,EAAA,CACC,QAAO,GACP,KAAK,8BACL,QAAUT,GACRC,EAAwBD,EAAO,iBAAkB,CAAE,KAAM,eAAgB,IAAK,qBAAsB,EAEtG,UAAU,kBAAA,CAAA,EAEZH,EAAAA,IAAC,IAAA,CAAE,UAAU,yBAA0B,WAAK,IAAA,CAAK,CAAA,EACnD,EAEAA,EAAAA,IAAC,UAAA,CAAQ,UAAU,4BAChB,SAAAtB,EAAK,MAAM,IAAI,CAACmC,EAAMC,IACrBf,OAAC,MAAA,CAAqB,UAAU,oEAC9B,SAAA,CAAAA,EAAAA,KAAC,MAAA,CAAI,UAAU,sCAAsC,SAAA,CAAA,QAAMe,EAAQ,CAAA,EAAE,EACrEd,EAAAA,IAAC,MAAA,CAAI,UAAU,+BAAgC,WAAK,MAAM,EAC1DA,EAAAA,IAAC,IAAA,CAAE,UAAU,yCAA0C,WAAK,IAAA,CAAK,CAAA,CAAA,EAHzDa,EAAK,KAIf,CACD,EACH,EAEAd,EAAAA,KAAC,UAAA,CAAQ,UAAU,gEAAgE,KAAI,GACrF,SAAA,CAAAA,EAAAA,KAAC,UAAA,CAAQ,UAAU,0FACjB,SAAA,CAAAC,EAAAA,IAAC,OAAA,CAAM,SAAA5B,IAAS,KAAO,WAAa,sBAAsB,EAC1D2B,EAAAA,KAAC,OAAA,CAAK,UAAU,mEAAmE,SAAA,CAAA,UAC1EC,EAAAA,IAACe,EAAA,CAAY,KAAM,GAAI,UAAU,gBAAA,CAAiB,CAAA,CAAA,CAC3D,CAAA,EACF,EACAhB,EAAAA,KAAC,MAAA,CAAI,UAAU,iBACb,SAAA,CAAAA,EAAAA,KAAC,MAAA,CAAI,UAAU,qEACb,SAAA,CAAAA,EAAAA,KAAC,MAAA,CAAI,UAAU,uDACZ,SAAA,CAAAL,EAAQM,EAAAA,IAACgB,EAAA,CAAS,KAAM,GAAI,UAAU,eAAA,CAAgB,EAAKhB,EAAAA,IAACiB,EAAA,CAAa,KAAM,GAAI,UAAU,gBAAgB,EAC7GtB,EAAW,KAAA,EACd,EACAI,EAAAA,KAAC,MAAA,CAAI,UAAU,wEACb,SAAA,CAAAC,EAAAA,IAAC,SAAA,CACC,KAAK,SACL,QAAS,IAAMR,EAAkB,KAAK,EACtC,UAAW,kEACTE,EAAQ,0BAA4B,qCACtC,GAEC,SAAAhB,EAAK,QAAA,CAAA,EAERsB,EAAAA,IAAC,SAAA,CACC,KAAK,SACL,QAAS,IAAMR,EAAkB,IAAI,EACrC,UAAW,kEACRE,EAAoC,sCAA5B,yBACX,GAEC,SAAAhB,EAAK,eAAA,CAAA,CACR,CAAA,CACF,CAAA,EACF,EACAsB,EAAAA,IAAC,IAAA,CAAE,UAAU,yBAA0B,WAAW,KAAK,EACvDA,EAAAA,IAAC,MAAA,CAAI,UAAU,sDACb,SAAAA,EAAAA,IAAC,OAAI,UAAU,6CAA8C,SAAAL,EAAW,GAAA,CAAI,CAAA,CAC9E,EACAK,EAAAA,IAACO,EAAA,CACC,MAAOZ,EAAW,IAClB,SAAU,IAAMG,EAAW,iBAAkB,CAAE,KAAM,eAAgB,IAAKH,EAAW,IAAK,EAC1F,UAAU,6KAET,SAAA,CAAC,CAAE,UAAAa,CAAA,IACFT,EAAAA,KAAAW,EAAAA,SAAA,CACE,SAAA,CAAAV,EAAAA,IAACW,EAAA,CAAc,KAAM,EAAA,CAAI,EACxBH,GAAalB,CAAA,CAAA,CAChB,CAAA,CAAA,EAGHI,GACCK,EAAAA,KAAC,IAAA,CACC,KAAK,oBACL,QAAUI,GACRC,EAAwBD,EAAO,iBAAkB,CAAE,KAAM,eAAgB,IAAK,iBAAkB,EAElG,UAAU,6FAET,SAAA,CAAAzB,EAAK,OAAO,IAACsB,EAAAA,IAACK,EAAA,CAAW,KAAM,EAAA,CAAI,CAAA,CAAA,CAAA,CACtC,CAAA,CAEJ,CAAA,EACF,EAEAN,EAAAA,KAAC,UAAA,CAAQ,UAAU,oEACjB,SAAA,CAAAC,EAAAA,IAAC,MAAA,CAAI,UAAU,+BAAgC,SAAAtB,EAAK,SAAS,EAC7DsB,EAAAA,IAAC,KAAA,CAAG,UAAU,mCACX,SAAAtB,EAAK,WAAW,IAAKwC,GACpBnB,EAAAA,KAAC,KAAA,CAAc,UAAU,0BACvB,SAAA,CAAAC,EAAAA,IAACiB,EAAA,CAAa,KAAM,GAAI,UAAU,iBAAiB,EAClDC,CAAA,GAFMA,CAGT,CACD,EACH,EACAnB,EAAAA,KAAC,MAAA,CAAI,UAAU,uCACb,SAAA,CAAAA,EAAAA,KAAC,IAAA,CACC,KAAMZ,EACN,QAAUgB,GAAUC,EAAwBD,EAAO,iBAAkB,CAAE,KAAM,eAAgB,IAAK,gBAAiB,EACnH,UAAU,qIAET,SAAA,CAAAzB,EAAK,KAAK,MAAM,IAACsB,EAAAA,IAACK,EAAA,CAAW,KAAM,EAAA,CAAI,CAAA,CAAA,CAAA,EAE1CN,EAAAA,KAAC,IAAA,CACC,KAAMV,EACN,QAAUc,GAAUC,EAAwBD,EAAO,iBAAkB,CAAE,KAAM,eAAgB,IAAK,6BAA8B,EAChI,UAAU,uJAET,SAAA,CAAAzB,EAAK,KAAK,OAAO,IAACsB,EAAAA,IAACK,EAAA,CAAW,KAAM,EAAA,CAAI,CAAA,CAAA,CAAA,CAC3C,EACF,EACAN,EAAAA,KAAC,MAAA,CAAI,UAAU,8CACb,SAAA,CAAAC,EAAAA,IAAC,MAAA,CAAI,UAAU,+BAAgC,SAAAtB,EAAK,eAAe,EAClEA,EAAK,eAAiBsB,EAAAA,IAAC,KAAE,UAAU,yBAA0B,WAAK,cAAc,EACjFA,EAAAA,IAAC,MAAA,CAAI,UAAU,yDACb,SAAAA,EAAAA,IAAC,OAAI,UAAU,6CAA8C,SAAAtB,EAAK,YAAA,CAAa,CAAA,CACjF,EACAsB,EAAAA,IAAC,MAAA,CAAI,UAAU,kCACb,SAAAA,EAAAA,IAACO,EAAA,CACC,MAAO7B,EAAK,aACZ,SAAU,IAAMoB,EAAW,iBAAkB,CAAE,KAAM,eAAgB,IAAK,sBAAuB,EACjG,UAAU,6KAET,SAAA,CAAC,CAAE,UAAAU,CAAA,IACFT,EAAAA,KAAAW,EAAAA,SAAA,CACE,SAAA,CAAAV,EAAAA,IAACW,EAAA,CAAc,KAAM,EAAA,CAAI,EACxBH,GAAalB,CAAA,CAAA,CAChB,CAAA,CAAA,EAGN,EACCZ,EAAK,eAAiBsB,EAAAA,IAAC,OAAI,UAAU,yBAA0B,WAAK,aAAA,CAAc,CAAA,CAAA,CACrF,CAAA,EACF,EAEAD,EAAAA,KAAC,UAAA,CACC,GAAG,iBACH,UAAU,sFAEV,SAAA,CAAAC,MAAC,MAAA,CAAI,UAAU,+BAAgC,SAAAxB,EAAE,uBAAuB,EAAE,QACzE,MAAA,CAAI,UAAU,yCAA0C,SAAAA,EAAE,sBAAsB,EAAE,EACnFuB,EAAAA,KAAC,MAAA,CAAI,UAAU,kCACb,SAAA,CAAAA,EAAAA,KAAC,IAAA,CACC,KAAMjB,EACN,QAAUqB,GACRC,EAAwBD,EAAO,iBAAkB,CAAE,KAAM,eAAgB,IAAK,uBAAwB,EAExG,UAAU,0IAET,SAAA,CAAA3B,EAAE,0BAA0B,EAAE,IAACwB,EAAAA,IAACK,EAAA,CAAW,KAAM,EAAA,CAAI,CAAA,CAAA,CAAA,EAExDL,EAAAA,IAAC,IAAA,CACC,KAAK,+BACL,OAAO,SACP,IAAI,sBACJ,QAAS,IAAMF,EAAW,iBAAkB,CAAE,KAAM,eAAgB,IAAK,oBAAqB,EAC9F,UAAU,8JAET,WAAE,uBAAuB,CAAA,CAAA,CAC5B,EACF,EACAC,EAAAA,KAAC,MAAA,CAAI,UAAU,yBACZ,SAAA,CAAAvB,EAAE,4BAA4B,EAAG,IAClCwB,EAAAA,IAAC,KAAE,KAAM,UAAUrB,CAAY,GAAI,UAAU,gDAC1C,SAAAA,CAAA,CACH,CAAA,CAAA,CACF,CAAA,CAAA,CAAA,CACF,EACF,EACAqB,EAAAA,IAACmB,EAAA,CACC,KAAMzC,EAAK,KACX,QAAS,CACP,MAAOA,EAAK,KAAK,IACjB,KAAMM,EACN,QAAUmB,GACRC,EAAwBD,EAAO,iBAAkB,CAAE,KAAM,eAAgB,IAAK,gBAAA,CAAkB,CAAA,EAEpG,UAAW,CACT,MAAOzB,EAAK,KAAK,OACjB,KAAMU,EACN,QAAUe,GACRC,EAAwBD,EAAO,iBAAkB,CAAE,KAAM,eAAgB,IAAK,kBAAA,CAAoB,CAAA,CACtG,CAAA,CACF,EACF,CAEJ"}
1
+ {"version":3,"file":"FirstExport-C0WgL4Hl.js","sources":["../../src/pages/FirstExport.jsx"],"sourcesContent":["import { ArrowRight, CheckCircle2, ChevronDown, ClipboardCopy, Rocket, Terminal } from 'lucide-react';\nimport React, { useEffect, useState } from '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: '5-minute first export',\n title: 'Get a Fastlane-ready export in 5 minutes',\n subtitle:\n 'Replace manual Figma/Canva edits or brittle AI drafts: run the CLI wizard or open the sample, swap screenshots + copy, and export a reproducible bundle. Upgrade later for watermark-free batch exports.',\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 ctas: {\n cli: 'Run CLI first export',\n goPro: 'Go Pro',\n sample: 'Open sample project',\n },\n steps: [\n {\n title: 'Run the CLI wizard (or open the sample)',\n body: 'Use shipscreens wizard to scaffold config + placeholders, or start from the 5-panel sample.',\n },\n {\n title: 'Export Fastlane outputs',\n body: 'Batch export to fastlane/ or download the reproducible ZIP.',\n },\n {\n title: 'Wire it into CI',\n body: 'Validate, lock, build, and verify to keep outputs reproducible.',\n },\n ],\n quickstartTitle: 'CI quickstart (copy/paste)',\n quickstartBody: 'Run these commands in CI to generate Fastlane-ready outputs (rendered mode).',\n quickstartCmd: [\n 'npm ci',\n 'npx playwright install --with-deps chromium',\n 'npm run shipscreens:validate',\n 'npm run shipscreens:lock -- --check',\n 'npm run shipscreens:build -- --zip',\n 'npm run shipscreens:verify -- --zip',\n ].join('\\n'),\n cliTitle: 'Prefer CLI (no browser)?',\n cliBody:\n 'Run shipscreens wizard, replace the placeholder PNGs, and build locally/CI in raw mode without Playwright.',\n cliCmd: [\n 'npx --yes shipscreens wizard',\n '# replace assets/en-US/01.png..05.png',\n 'npx --yes shipscreens build --mode raw --zip --out out/agent',\n ].join('\\n'),\n cliCta: 'Open Agent + CLI quickstart',\n proTitle: 'Upgrade unlocks',\n proBullets: [\n 'Unlock CI-grade reruns (rendered exports)',\n 'Full matrix batch exports (devices × locales)',\n 'CSV/JSON copy import at scale',\n 'No watermark',\n ],\n proUnlockTitle: 'Unlock Pro (CLI)',\n proUnlockBody: 'Remove the watermark and unlock full matrix 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 note: 'Free exports are watermarked. Upgrade to remove the watermark.',\n },\n ja: {\n badge: '5分で初回エクスポート',\n title: 'Fastlane-ready を5分で出す',\n subtitle:\n 'Figma/Canvaの手作業やAI下書きの崩れを置き換え、CLI wizard かサンプルから開始して再現性のある形でエクスポート。必要になったらProで透かし解除。',\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 ctas: {\n cli: 'CLIで初回エクスポート',\n goPro: 'Proにアップグレード',\n sample: 'サンプルを開く',\n },\n steps: [\n {\n title: 'CLI wizard で雛形作成(サンプルでも可)',\n body: 'shipscreens wizard で雛形を作るか、5枚構成サンプルから開始します。',\n },\n {\n title: 'Fastlane出力を作る',\n body: 'fastlane/ か再現性のあるZIPを一括エクスポート。',\n },\n {\n title: 'CIに接続する',\n body: 'validate/lock/build/verify で再現性のある出力で回します。',\n },\n ],\n quickstartTitle: 'CIクイックスタート(コピペ)',\n quickstartBody: 'CIで Fastlane-ready 出力を生成するコマンドです(rendered mode)。',\n quickstartCmd: [\n 'npm ci',\n 'npx playwright install --with-deps chromium',\n 'npm run shipscreens:validate',\n 'npm run shipscreens:lock -- --check',\n 'npm run shipscreens:build -- --zip',\n 'npm run shipscreens:verify -- --zip',\n ].join('\\n'),\n cliTitle: 'CLIで完結したい場合',\n cliBody:\n 'shipscreens wizard で雛形を作り、PNGを差し替えて raw モードでローカル/CI出力します。',\n cliCmd: [\n 'npx --yes shipscreens wizard',\n '# assets/en-US/01.png〜05.png を差し替え',\n 'npx --yes shipscreens build --mode raw --zip --out out/agent',\n ].join('\\n'),\n cliCta: 'Agent + CLI クイックスタート',\n proTitle: 'Proでできること',\n proBullets: [\n 'CIで再実行(rendered出力)',\n 'フル一括(端末×言語)',\n 'CSV/JSON copy 取り込み',\n '透かしなし',\n ],\n proUnlockTitle: 'Proを解除(CLI)',\n proUnlockBody: '透かし解除&フル一括(端末×言語)のために、まずはCLI認証を実行:',\n proUnlockCmd: 'npx --yes shipscreens auth login',\n proUnlockNote: '初回のみブラウザでサインインします。以後は --require-pro で再実行。',\n note: '無料版は透かし付きです。必要になったらProで解除できます。',\n },\n};\n\nconst FirstExport = () => {\n const { i18n, t } = useTranslation();\n const lang = normalizeLang(i18n.resolvedLanguage || i18n.language);\n const copy = COPY[lang] || COPY.en;\n const supportEmail = 'support@shimaumaservices.co.jp';\n const partnerSubject = t('landing.partner.emailSubject', { defaultValue: 'ShipScreens first export review' });\n const partnerBody = t('landing.partner.emailBody', { defaultValue: '' });\n const partnerMailto = `mailto:${supportEmail}?subject=${encodeURIComponent(partnerSubject)}&body=${encodeURIComponent(\n partnerBody\n )}`;\n const openAppHref = '/app/?sample=5panel&entry_source=first_export_open_app_header';\n const agentCliHref = '/tools/agent-cli/';\n const configDownloadHref = '/downloads/shipscreens-agent-cli-config.yml';\n const csvDownloadHref = '/downloads/shipscreens-agent-cli-copy.csv';\n const goProFooterHref = '/app/?sample=5panel&upgrade=1&entry_source=first_export_go_pro_footer';\n const sampleProjectHeroHref = '/app/?sample=5panel&entry_source=first_export_open_sample_project';\n const sampleProjectFooterHref = '/app/?sample=5panel&entry_source=first_export_open_sample_project_footer';\n const copyButtonLabel = t('common.copy', { defaultValue: 'Copy' });\n const [quickstartMode, setQuickstartMode] = useState('cli');\n const isCli = quickstartMode === 'cli';\n const quickstart = isCli\n ? { title: copy.cliTitle, body: copy.cliBody, cmd: copy.cliCmd, cta: 'copy_cli_quickstart' }\n : { title: copy.quickstartTitle, body: copy.quickstartBody, cmd: copy.quickstartCmd, cta: 'copy_ci_quickstart' };\n\n usePageTitle('titles.firstExport', { defaultValue: copy.title });\n\n useEffect(() => {\n trackEvent('tool_view', { tool: 'first_export' });\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: 'first_export', cta: 'open_tools_header' })\n }\n onPricingClick={(event) =>\n trackEventAndFollowLink(event, 'tool_cta_click', { tool: 'first_export', cta: 'pricing_header' })\n }\n onOpenAppClick={(event) =>\n trackEventAndFollowLink(event, 'tool_cta_click', { tool: 'first_export', cta: 'open_app_header' })\n }\n primaryCta={{\n href: agentCliHref,\n label: (\n <span className=\"inline-flex items-center gap-2\">\n {copy.ctas.cli} <ArrowRight size={16} />\n </span>\n ),\n onClick: (event) =>\n trackEventAndFollowLink(event, 'tool_cta_click', { tool: 'first_export', cta: 'open_agent_cli_header' }),\n }}\n />\n\n <main className=\"max-w-5xl mx-auto px-6 pb-24 space-y-12\">\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 <Rocket 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 <a\n href=\"#design-partner\"\n onClick={() => trackEvent('tool_cta_click', { tool: 'first_export', cta: 'jump_design_partner' })}\n className=\"inline-flex items-center gap-1 text-sm text-blue-200 hover:text-blue-100 underline underline-offset-4\"\n >\n {t('landing.partner.jumpCta', { defaultValue: t('landing.partner.emailCta') })} <ArrowRight size={14} />\n </a>\n <div className=\"flex flex-col sm:flex-row gap-3 justify-center pt-2\">\n <a\n href={agentCliHref}\n onClick={(event) => trackEventAndFollowLink(event, 'tool_cta_click', { tool: 'first_export', cta: 'open_agent_cli_hero' })}\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.ctas.cli} <ArrowRight size={16} />\n </a>\n <a\n href={sampleProjectHeroHref}\n onClick={(event) =>\n trackEventAndFollowLink(event, 'tool_cta_click', { tool: 'first_export', 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.ctas.sample} <ArrowRight size={16} />\n </a>\n </div>\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.cliCmd}</pre>\n </div>\n <CopyButton\n value={copy.cliCmd}\n onCopied={() => trackEvent('tool_cta_click', { tool: 'first_export', 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 <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: 'first_export', 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: 'first_export', 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 <CliPreflightCard\n compact\n href=\"/tools/agent-cli/#preflight\"\n onClick={(event) =>\n trackEventAndFollowLink(event, 'tool_cta_click', { tool: 'first_export', cta: 'open_cli_preflight' })\n }\n className=\"max-w-xl mx-auto\"\n />\n <p className=\"text-xs text-slate-500\">{copy.note}</p>\n </section>\n\n <section className=\"grid md:grid-cols-3 gap-6\">\n {copy.steps.map((step, index) => (\n <div key={step.title} className=\"bg-slate-900/60 border border-slate-800 rounded-2xl p-6 space-y-3\">\n <div className=\"text-xs font-semibold text-blue-200\">STEP {index + 1}</div>\n <div className=\"text-lg font-bold text-white\">{step.title}</div>\n <p className=\"text-sm text-slate-300 leading-relaxed\">{step.body}</p>\n </div>\n ))}\n </section>\n\n <details className=\"bg-slate-900/60 border border-slate-800 rounded-2xl p-6 group\" open>\n <summary className=\"flex items-center justify-between text-sm font-bold text-white cursor-pointer list-none\">\n <span>{lang === 'ja' ? 'クイックスタート' : 'Quickstart commands'}</span>\n <span className=\"flex items-center gap-2 text-[10px] font-semibold text-slate-400\">\n CLI/CI <ChevronDown size={14} className=\"text-slate-500\" />\n </span>\n </summary>\n <div className=\"mt-3 space-y-4\">\n <div className=\"flex flex-col md:flex-row md:items-center md:justify-between gap-3\">\n <div className=\"flex items-center gap-2 text-sm font-bold text-white\">\n {isCli ? <Terminal size={16} className=\"text-blue-300\" /> : <CheckCircle2 size={16} className=\"text-blue-300\" />}\n {quickstart.title}\n </div>\n <div className=\"inline-flex gap-2 rounded-lg border border-slate-700 bg-slate-950 p-1\">\n <button\n type=\"button\"\n onClick={() => setQuickstartMode('cli')}\n className={`px-3 py-1.5 rounded-md text-xs font-semibold transition-colors ${\n isCli ? 'bg-white text-slate-900' : 'text-slate-400 hover:text-slate-200'\n }`}\n >\n {copy.cliTitle}\n </button>\n <button\n type=\"button\"\n onClick={() => setQuickstartMode('ci')}\n className={`px-3 py-1.5 rounded-md text-xs font-semibold transition-colors ${\n !isCli ? 'bg-white text-slate-900' : 'text-slate-400 hover:text-slate-200'\n }`}\n >\n {copy.quickstartTitle}\n </button>\n </div>\n </div>\n <p className=\"text-sm text-slate-300\">{quickstart.body}</p>\n <div className=\"rounded-xl border border-slate-800 bg-slate-950 p-4\">\n <pre className=\"text-xs text-slate-200 whitespace-pre-wrap\">{quickstart.cmd}</pre>\n </div>\n <CopyButton\n value={quickstart.cmd}\n onCopied={() => trackEvent('tool_cta_click', { tool: 'first_export', cta: quickstart.cta })}\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 {isCli && (\n <a\n href=\"/tools/agent-cli/\"\n onClick={(event) =>\n trackEventAndFollowLink(event, 'tool_cta_click', { tool: 'first_export', cta: 'open_agent_cli' })\n }\n className=\"inline-flex items-center gap-2 text-sm text-blue-200 hover:text-blue-100 transition-colors\"\n >\n {copy.cliCta} <ArrowRight size={14} />\n </a>\n )}\n </div>\n </details>\n\n <section className=\"bg-slate-900/60 border border-slate-800 rounded-2xl p-6 space-y-4\">\n <div className=\"text-lg font-bold text-white\">{copy.proTitle}</div>\n <ul className=\"space-y-2 text-sm text-slate-300\">\n {copy.proBullets.map((item) => (\n <li key={item} className=\"flex items-center gap-2\">\n <CheckCircle2 size={16} className=\"text-green-400\" />\n {item}\n </li>\n ))}\n </ul>\n <div className=\"flex flex-col sm:flex-row gap-3 pt-2\">\n <a\n href={goProFooterHref}\n onClick={(event) => trackEventAndFollowLink(event, 'tool_cta_click', { tool: 'first_export', cta: 'go_pro_footer' })}\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\"\n >\n {copy.ctas.goPro} <ArrowRight size={16} />\n </a>\n <a\n href={sampleProjectFooterHref}\n onClick={(event) => trackEventAndFollowLink(event, 'tool_cta_click', { tool: 'first_export', cta: 'open_sample_project_footer' })}\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\"\n >\n {copy.ctas.sample} <ArrowRight size={16} />\n </a>\n </div>\n <div className=\"pt-4 border-t border-slate-800/80 space-y-2\">\n <div className=\"text-sm font-bold text-white\">{copy.proUnlockTitle}</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 <div className=\"flex flex-col sm:flex-row gap-3\">\n <CopyButton\n value={copy.proUnlockCmd}\n onCopied={() => trackEvent('tool_cta_click', { tool: 'first_export', 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 </div>\n {copy.proUnlockNote && <div className=\"text-xs text-slate-500\">{copy.proUnlockNote}</div>}\n </div>\n </section>\n\n <section\n id=\"design-partner\"\n className=\"max-w-3xl mx-auto bg-slate-900/60 border border-slate-800 rounded-2xl p-6 space-y-4\"\n >\n <div className=\"text-lg font-bold text-white\">{t('landing.partner.title')}</div>\n <div className=\"text-sm text-slate-300 leading-relaxed\">{t('landing.partner.body')}</div>\n <div className=\"flex flex-col sm:flex-row gap-3\">\n <a\n href={partnerMailto}\n onClick={(event) =>\n trackEventAndFollowLink(event, 'tool_cta_click', { tool: 'first_export', cta: 'email_design_partner' })\n }\n className=\"flex-1 inline-flex items-center justify-center gap-2 px-4 py-3 rounded-xl bg-blue-500 text-white font-bold hover:bg-blue-600 transition\"\n >\n {t('landing.partner.emailCta')} <ArrowRight size={16} />\n </a>\n <a\n href=\"https://x.com/shipscreenscom\"\n target=\"_blank\"\n rel=\"noopener noreferrer\"\n onClick={() => trackEvent('tool_cta_click', { tool: 'first_export', cta: 'dm_design_partner' })}\n className=\"flex-1 inline-flex items-center justify-center gap-2 px-4 py-3 rounded-xl border border-slate-700 bg-slate-950 text-slate-200 hover:bg-slate-900 transition\"\n >\n {t('landing.partner.dmCta')}\n </a>\n </div>\n <div className=\"text-xs text-slate-500\">\n {t('landing.partner.emailLabel')}{' '}\n <a href={`mailto:${supportEmail}`} className=\"underline underline-offset-4 hover:text-white\">\n {supportEmail}\n </a>\n </div>\n </section>\n </main>\n <StickyMobileCta\n note={copy.note}\n primary={{\n label: copy.ctas.cli,\n href: agentCliHref,\n onClick: (event) =>\n trackEventAndFollowLink(event, 'tool_cta_click', { tool: 'first_export', cta: 'sticky_primary' }),\n }}\n secondary={{\n label: copy.ctas.sample,\n href: sampleProjectHeroHref,\n onClick: (event) =>\n trackEventAndFollowLink(event, 'tool_cta_click', { tool: 'first_export', cta: 'sticky_secondary' }),\n }}\n />\n </div>\n );\n};\n\nexport default FirstExport;\n"],"names":["normalizeLang","lang","COPY","FirstExport","i18n","t","useTranslation","copy","supportEmail","partnerSubject","partnerBody","partnerMailto","openAppHref","agentCliHref","configDownloadHref","csvDownloadHref","goProFooterHref","sampleProjectHeroHref","sampleProjectFooterHref","copyButtonLabel","quickstartMode","setQuickstartMode","useState","isCli","quickstart","usePageTitle","useEffect","trackEvent","jsxs","jsx","StagingBadge","SiteHeader","event","trackEventAndFollowLink","ArrowRight","Rocket","CopyButton","copyLabel","copyState","Fragment","ClipboardCopy","CliPreflightCard","step","index","ChevronDown","Terminal","CheckCircle2","item","StickyMobileCta"],"mappings":"qfAWA,MAAMA,EAAiBC,IACPA,GAAQ,IAAI,MAAM,GAAG,EAAE,CAAC,IACtB,KAAO,KAAO,KAG1BC,EAAO,CACX,GAAI,CACF,MAAO,wBACP,MAAO,2CACP,SACE,2MACF,aAAc,2BACd,YAAa,4CACb,eAAgB,oDAChB,iBAAkB,oBAClB,sBAAuB,oBACvB,mBAAoB,aACpB,gBAAiB,WACjB,KAAM,CACJ,IAAK,uBACL,MAAO,SACP,OAAQ,qBAAA,EAEV,MAAO,CACL,CACE,MAAO,0CACP,KAAM,6FAAA,EAER,CACE,MAAO,0BACP,KAAM,6DAAA,EAER,CACE,MAAO,kBACP,KAAM,iEAAA,CACR,EAEF,gBAAiB,6BACjB,eAAgB,+EAChB,cAAe,CACb,SACA,8CACA,+BACA,sCACA,qCACA,qCAAA,EACA,KAAK;AAAA,CAAI,EACX,SAAU,2BACV,QACE,6GACF,OAAQ,CACN,+BACA,wCACA,8DAAA,EACA,KAAK;AAAA,CAAI,EACX,OAAQ,8BACR,SAAU,kBACV,WAAY,CACV,4CACA,gDACA,gCACA,cAAA,EAEF,eAAgB,mBAChB,cAAe,oEACf,aAAc,mCACd,cAAe,6EACf,KAAM,gEAAA,EAER,GAAI,CACF,MAAO,cACP,MAAO,wBACP,SACE,uFACF,aAAc,qBACd,YAAa,sCACb,eAAgB,mCAChB,iBAAkB,cAClB,sBAAuB,UACvB,mBAAoB,aACpB,gBAAiB,WACjB,KAAM,CACJ,IAAK,eACL,MAAO,cACP,OAAQ,SAAA,EAEV,MAAO,CACL,CACE,MAAO,4BACP,KAAM,6CAAA,EAER,CACE,MAAO,gBACP,KAAM,gCAAA,EAER,CACE,MAAO,UACP,KAAM,4CAAA,CACR,EAEF,gBAAiB,kBACjB,eAAgB,mDAChB,cAAe,CACb,SACA,8CACA,+BACA,sCACA,qCACA,qCAAA,EACA,KAAK;AAAA,CAAI,EACX,SAAU,cACV,QACE,4DACF,OAAQ,CACN,+BACA,qCACA,8DAAA,EACA,KAAK;AAAA,CAAI,EACX,OAAQ,uBACR,SAAU,YACV,WAAY,CACV,qBACA,cACA,qBACA,OAAA,EAEF,eAAgB,cAChB,cAAe,qCACf,aAAc,mCACd,cAAe,4CACf,KAAM,gCAAA,CAEV,EAEMC,EAAc,IAAM,CACxB,KAAM,CAAE,KAAAC,EAAM,EAAAC,CAAA,EAAMC,EAAA,EACdL,EAAOD,EAAcI,EAAK,kBAAoBA,EAAK,QAAQ,EAC3DG,EAAOL,EAAKD,CAAI,GAAKC,EAAK,GAC1BM,EAAe,iCACfC,EAAiBJ,EAAE,+BAAgC,CAAE,aAAc,kCAAmC,EACtGK,EAAcL,EAAE,4BAA6B,CAAE,aAAc,GAAI,EACjEM,EAAgB,UAAUH,CAAY,YAAY,mBAAmBC,CAAc,CAAC,SAAS,mBACjGC,CAAA,CACD,GACKE,EAAc,gEACdC,EAAe,oBACfC,EAAqB,8CACrBC,EAAkB,4CAClBC,EAAkB,wEAClBC,EAAwB,oEACxBC,EAA0B,2EAC1BC,EAAkBd,EAAE,cAAe,CAAE,aAAc,OAAQ,EAC3D,CAACe,EAAgBC,CAAiB,EAAIC,EAAAA,SAAS,KAAK,EACpDC,EAAQH,IAAmB,MAC3BI,EAAaD,EACf,CAAE,MAAOhB,EAAK,SAAU,KAAMA,EAAK,QAAS,IAAKA,EAAK,OAAQ,IAAK,uBACnE,CAAE,MAAOA,EAAK,gBAAiB,KAAMA,EAAK,eAAgB,IAAKA,EAAK,cAAe,IAAK,oBAAA,EAE5F,OAAAkB,EAAa,qBAAsB,CAAE,aAAclB,EAAK,MAAO,EAE/DmB,EAAAA,UAAU,IAAM,CACdC,EAAW,YAAa,CAAE,KAAM,cAAA,CAAgB,CAClD,EAAG,CAAA,CAAE,EAGHC,EAAAA,KAAC,MAAA,CAAI,UAAU,qFACb,SAAA,CAAAC,EAAAA,IAACC,EAAA,EAAa,EACdD,EAAAA,IAACE,EAAA,CACC,QAAQ,OACR,OAAO,QACP,YAAAnB,EACA,aAAeoB,GACbC,EAAwBD,EAAO,iBAAkB,CAAE,KAAM,eAAgB,IAAK,oBAAqB,EAErG,eAAiBA,GACfC,EAAwBD,EAAO,iBAAkB,CAAE,KAAM,eAAgB,IAAK,iBAAkB,EAElG,eAAiBA,GACfC,EAAwBD,EAAO,iBAAkB,CAAE,KAAM,eAAgB,IAAK,kBAAmB,EAEnG,WAAY,CACV,KAAMnB,EACN,MACEe,EAAAA,KAAC,OAAA,CAAK,UAAU,iCACb,SAAA,CAAArB,EAAK,KAAK,IAAI,IAACsB,EAAAA,IAACK,EAAA,CAAW,KAAM,EAAA,CAAI,CAAA,EACxC,EAEF,QAAUF,GACRC,EAAwBD,EAAO,iBAAkB,CAAE,KAAM,eAAgB,IAAK,uBAAA,CAAyB,CAAA,CAC3G,CAAA,EAGFJ,EAAAA,KAAC,OAAA,CAAK,UAAU,0CACd,SAAA,CAAAA,EAAAA,KAAC,UAAA,CAAQ,UAAU,0CACjB,SAAA,CAAAA,EAAAA,KAAC,MAAA,CAAI,UAAU,uIACb,SAAA,CAAAC,EAAAA,IAACM,EAAA,CAAO,KAAM,EAAA,CAAI,EACjB5B,EAAK,KAAA,EACR,EACAsB,EAAAA,IAAC,KAAA,CAAG,UAAU,gDAAiD,WAAK,MAAM,EAC1EA,EAAAA,IAAC,IAAA,CAAE,UAAU,yCAA0C,WAAK,SAAS,EACrED,EAAAA,KAAC,IAAA,CACC,KAAK,kBACL,QAAS,IAAMD,EAAW,iBAAkB,CAAE,KAAM,eAAgB,IAAK,sBAAuB,EAChG,UAAU,wGAET,SAAA,CAAAtB,EAAE,0BAA2B,CAAE,aAAcA,EAAE,0BAA0B,EAAG,EAAE,IAACwB,EAAAA,IAACK,EAAA,CAAW,KAAM,EAAA,CAAI,CAAA,CAAA,CAAA,EAExGN,EAAAA,KAAC,MAAA,CAAI,UAAU,sDACb,SAAA,CAAAA,EAAAA,KAAC,IAAA,CACC,KAAMf,EACN,QAAUmB,GAAUC,EAAwBD,EAAO,iBAAkB,CAAE,KAAM,eAAgB,IAAK,sBAAuB,EACzH,UAAU,mIAET,SAAA,CAAAzB,EAAK,KAAK,IAAI,IAACsB,EAAAA,IAACK,EAAA,CAAW,KAAM,EAAA,CAAI,CAAA,CAAA,CAAA,EAExCN,EAAAA,KAAC,IAAA,CACC,KAAMX,EACN,QAAUe,GACRC,EAAwBD,EAAO,iBAAkB,CAAE,KAAM,eAAgB,IAAK,2BAA4B,EAE5G,UAAU,iKAET,SAAA,CAAAzB,EAAK,KAAK,OAAO,IAACsB,EAAAA,IAACK,EAAA,CAAW,KAAM,EAAA,CAAI,CAAA,CAAA,CAAA,CAC3C,EACF,EACAN,EAAAA,KAAC,MAAA,CAAI,UAAU,+FACb,SAAA,CAAAC,EAAAA,IAAC,MAAA,CAAI,UAAU,sEAAuE,SAAAtB,EAAK,aAAa,EACxGsB,EAAAA,IAAC,IAAA,CAAE,UAAU,yBAA0B,WAAK,YAAY,EACxDA,EAAAA,IAAC,IAAA,CAAE,UAAU,yBAA0B,WAAK,eAAe,EAC3DA,EAAAA,IAAC,MAAA,CAAI,UAAU,sDACb,SAAAA,EAAAA,IAAC,OAAI,UAAU,6CAA8C,SAAAtB,EAAK,MAAA,CAAO,CAAA,CAC3E,EACAsB,EAAAA,IAACO,EAAA,CACC,MAAO7B,EAAK,OACZ,SAAU,IAAMoB,EAAW,iBAAkB,CAAE,KAAM,eAAgB,IAAK,gBAAiB,EAC3F,UAAU,6KAET,SAAA,CAAC,CAAE,UAAAU,EAAW,UAAAC,CAAA,IACbV,OAAAW,EAAAA,SAAA,CACE,SAAA,CAAAV,EAAAA,IAACW,EAAA,CAAc,KAAM,EAAA,CAAI,EACxBF,IAAc,OAAS/B,EAAK,iBAAmB8B,GAAalB,CAAA,CAAA,CAC/D,CAAA,CAAA,EAGJS,EAAAA,KAAC,MAAA,CAAI,UAAU,iBACb,SAAA,CAAAC,EAAAA,IAAC,MAAA,CAAI,UAAU,sEACZ,SAAAtB,EAAK,sBACR,EACAqB,EAAAA,KAAC,MAAA,CAAI,UAAU,uBACb,SAAA,CAAAC,EAAAA,IAAC,IAAA,CACC,KAAMf,EACN,SAAQ,GACR,QAAS,IAAMa,EAAW,gBAAiB,CAAE,KAAM,eAAgB,MAAO,kBAAmB,EAC7F,UAAU,uKAET,SAAApB,EAAK,kBAAA,CAAA,EAERsB,EAAAA,IAAC,IAAA,CACC,KAAMd,EACN,SAAQ,GACR,QAAS,IAAMY,EAAW,gBAAiB,CAAE,KAAM,eAAgB,MAAO,gBAAiB,EAC3F,UAAU,uKAET,SAAApB,EAAK,eAAA,CAAA,CACR,CAAA,CACF,CAAA,CAAA,CACF,CAAA,EACF,EACAsB,EAAAA,IAACY,EAAA,CACC,QAAO,GACP,KAAK,8BACL,QAAUT,GACRC,EAAwBD,EAAO,iBAAkB,CAAE,KAAM,eAAgB,IAAK,qBAAsB,EAEtG,UAAU,kBAAA,CAAA,EAEZH,EAAAA,IAAC,IAAA,CAAE,UAAU,yBAA0B,WAAK,IAAA,CAAK,CAAA,EACnD,EAEAA,EAAAA,IAAC,UAAA,CAAQ,UAAU,4BAChB,SAAAtB,EAAK,MAAM,IAAI,CAACmC,EAAMC,IACrBf,OAAC,MAAA,CAAqB,UAAU,oEAC9B,SAAA,CAAAA,EAAAA,KAAC,MAAA,CAAI,UAAU,sCAAsC,SAAA,CAAA,QAAMe,EAAQ,CAAA,EAAE,EACrEd,EAAAA,IAAC,MAAA,CAAI,UAAU,+BAAgC,WAAK,MAAM,EAC1DA,EAAAA,IAAC,IAAA,CAAE,UAAU,yCAA0C,WAAK,IAAA,CAAK,CAAA,CAAA,EAHzDa,EAAK,KAIf,CACD,EACH,EAEAd,EAAAA,KAAC,UAAA,CAAQ,UAAU,gEAAgE,KAAI,GACrF,SAAA,CAAAA,EAAAA,KAAC,UAAA,CAAQ,UAAU,0FACjB,SAAA,CAAAC,EAAAA,IAAC,OAAA,CAAM,SAAA5B,IAAS,KAAO,WAAa,sBAAsB,EAC1D2B,EAAAA,KAAC,OAAA,CAAK,UAAU,mEAAmE,SAAA,CAAA,UAC1EC,EAAAA,IAACe,EAAA,CAAY,KAAM,GAAI,UAAU,gBAAA,CAAiB,CAAA,CAAA,CAC3D,CAAA,EACF,EACAhB,EAAAA,KAAC,MAAA,CAAI,UAAU,iBACb,SAAA,CAAAA,EAAAA,KAAC,MAAA,CAAI,UAAU,qEACb,SAAA,CAAAA,EAAAA,KAAC,MAAA,CAAI,UAAU,uDACZ,SAAA,CAAAL,EAAQM,EAAAA,IAACgB,EAAA,CAAS,KAAM,GAAI,UAAU,eAAA,CAAgB,EAAKhB,EAAAA,IAACiB,EAAA,CAAa,KAAM,GAAI,UAAU,gBAAgB,EAC7GtB,EAAW,KAAA,EACd,EACAI,EAAAA,KAAC,MAAA,CAAI,UAAU,wEACb,SAAA,CAAAC,EAAAA,IAAC,SAAA,CACC,KAAK,SACL,QAAS,IAAMR,EAAkB,KAAK,EACtC,UAAW,kEACTE,EAAQ,0BAA4B,qCACtC,GAEC,SAAAhB,EAAK,QAAA,CAAA,EAERsB,EAAAA,IAAC,SAAA,CACC,KAAK,SACL,QAAS,IAAMR,EAAkB,IAAI,EACrC,UAAW,kEACRE,EAAoC,sCAA5B,yBACX,GAEC,SAAAhB,EAAK,eAAA,CAAA,CACR,CAAA,CACF,CAAA,EACF,EACAsB,EAAAA,IAAC,IAAA,CAAE,UAAU,yBAA0B,WAAW,KAAK,EACvDA,EAAAA,IAAC,MAAA,CAAI,UAAU,sDACb,SAAAA,EAAAA,IAAC,OAAI,UAAU,6CAA8C,SAAAL,EAAW,GAAA,CAAI,CAAA,CAC9E,EACAK,EAAAA,IAACO,EAAA,CACC,MAAOZ,EAAW,IAClB,SAAU,IAAMG,EAAW,iBAAkB,CAAE,KAAM,eAAgB,IAAKH,EAAW,IAAK,EAC1F,UAAU,6KAET,SAAA,CAAC,CAAE,UAAAa,CAAA,IACFT,EAAAA,KAAAW,EAAAA,SAAA,CACE,SAAA,CAAAV,EAAAA,IAACW,EAAA,CAAc,KAAM,EAAA,CAAI,EACxBH,GAAalB,CAAA,CAAA,CAChB,CAAA,CAAA,EAGHI,GACCK,EAAAA,KAAC,IAAA,CACC,KAAK,oBACL,QAAUI,GACRC,EAAwBD,EAAO,iBAAkB,CAAE,KAAM,eAAgB,IAAK,iBAAkB,EAElG,UAAU,6FAET,SAAA,CAAAzB,EAAK,OAAO,IAACsB,EAAAA,IAACK,EAAA,CAAW,KAAM,EAAA,CAAI,CAAA,CAAA,CAAA,CACtC,CAAA,CAEJ,CAAA,EACF,EAEAN,EAAAA,KAAC,UAAA,CAAQ,UAAU,oEACjB,SAAA,CAAAC,EAAAA,IAAC,MAAA,CAAI,UAAU,+BAAgC,SAAAtB,EAAK,SAAS,EAC7DsB,EAAAA,IAAC,KAAA,CAAG,UAAU,mCACX,SAAAtB,EAAK,WAAW,IAAKwC,GACpBnB,EAAAA,KAAC,KAAA,CAAc,UAAU,0BACvB,SAAA,CAAAC,EAAAA,IAACiB,EAAA,CAAa,KAAM,GAAI,UAAU,iBAAiB,EAClDC,CAAA,GAFMA,CAGT,CACD,EACH,EACAnB,EAAAA,KAAC,MAAA,CAAI,UAAU,uCACb,SAAA,CAAAA,EAAAA,KAAC,IAAA,CACC,KAAMZ,EACN,QAAUgB,GAAUC,EAAwBD,EAAO,iBAAkB,CAAE,KAAM,eAAgB,IAAK,gBAAiB,EACnH,UAAU,qIAET,SAAA,CAAAzB,EAAK,KAAK,MAAM,IAACsB,EAAAA,IAACK,EAAA,CAAW,KAAM,EAAA,CAAI,CAAA,CAAA,CAAA,EAE1CN,EAAAA,KAAC,IAAA,CACC,KAAMV,EACN,QAAUc,GAAUC,EAAwBD,EAAO,iBAAkB,CAAE,KAAM,eAAgB,IAAK,6BAA8B,EAChI,UAAU,uJAET,SAAA,CAAAzB,EAAK,KAAK,OAAO,IAACsB,EAAAA,IAACK,EAAA,CAAW,KAAM,EAAA,CAAI,CAAA,CAAA,CAAA,CAC3C,EACF,EACAN,EAAAA,KAAC,MAAA,CAAI,UAAU,8CACb,SAAA,CAAAC,EAAAA,IAAC,MAAA,CAAI,UAAU,+BAAgC,SAAAtB,EAAK,eAAe,EAClEA,EAAK,eAAiBsB,EAAAA,IAAC,KAAE,UAAU,yBAA0B,WAAK,cAAc,EACjFA,EAAAA,IAAC,MAAA,CAAI,UAAU,yDACb,SAAAA,EAAAA,IAAC,OAAI,UAAU,6CAA8C,SAAAtB,EAAK,YAAA,CAAa,CAAA,CACjF,EACAsB,EAAAA,IAAC,MAAA,CAAI,UAAU,kCACb,SAAAA,EAAAA,IAACO,EAAA,CACC,MAAO7B,EAAK,aACZ,SAAU,IAAMoB,EAAW,iBAAkB,CAAE,KAAM,eAAgB,IAAK,sBAAuB,EACjG,UAAU,6KAET,SAAA,CAAC,CAAE,UAAAU,CAAA,IACFT,EAAAA,KAAAW,EAAAA,SAAA,CACE,SAAA,CAAAV,EAAAA,IAACW,EAAA,CAAc,KAAM,EAAA,CAAI,EACxBH,GAAalB,CAAA,CAAA,CAChB,CAAA,CAAA,EAGN,EACCZ,EAAK,eAAiBsB,EAAAA,IAAC,OAAI,UAAU,yBAA0B,WAAK,aAAA,CAAc,CAAA,CAAA,CACrF,CAAA,EACF,EAEAD,EAAAA,KAAC,UAAA,CACC,GAAG,iBACH,UAAU,sFAEV,SAAA,CAAAC,MAAC,MAAA,CAAI,UAAU,+BAAgC,SAAAxB,EAAE,uBAAuB,EAAE,QACzE,MAAA,CAAI,UAAU,yCAA0C,SAAAA,EAAE,sBAAsB,EAAE,EACnFuB,EAAAA,KAAC,MAAA,CAAI,UAAU,kCACb,SAAA,CAAAA,EAAAA,KAAC,IAAA,CACC,KAAMjB,EACN,QAAUqB,GACRC,EAAwBD,EAAO,iBAAkB,CAAE,KAAM,eAAgB,IAAK,uBAAwB,EAExG,UAAU,0IAET,SAAA,CAAA3B,EAAE,0BAA0B,EAAE,IAACwB,EAAAA,IAACK,EAAA,CAAW,KAAM,EAAA,CAAI,CAAA,CAAA,CAAA,EAExDL,EAAAA,IAAC,IAAA,CACC,KAAK,+BACL,OAAO,SACP,IAAI,sBACJ,QAAS,IAAMF,EAAW,iBAAkB,CAAE,KAAM,eAAgB,IAAK,oBAAqB,EAC9F,UAAU,8JAET,WAAE,uBAAuB,CAAA,CAAA,CAC5B,EACF,EACAC,EAAAA,KAAC,MAAA,CAAI,UAAU,yBACZ,SAAA,CAAAvB,EAAE,4BAA4B,EAAG,IAClCwB,EAAAA,IAAC,KAAE,KAAM,UAAUrB,CAAY,GAAI,UAAU,gDAC1C,SAAAA,CAAA,CACH,CAAA,CAAA,CACF,CAAA,CAAA,CAAA,CACF,EACF,EACAqB,EAAAA,IAACmB,EAAA,CACC,KAAMzC,EAAK,KACX,QAAS,CACP,MAAOA,EAAK,KAAK,IACjB,KAAMM,EACN,QAAUmB,GACRC,EAAwBD,EAAO,iBAAkB,CAAE,KAAM,eAAgB,IAAK,gBAAA,CAAkB,CAAA,EAEpG,UAAW,CACT,MAAOzB,EAAK,KAAK,OACjB,KAAMU,EACN,QAAUe,GACRC,EAAwBD,EAAO,iBAAkB,CAAE,KAAM,eAAgB,IAAK,kBAAA,CAAoB,CAAA,CACtG,CAAA,CACF,EACF,CAEJ"}
@@ -1,4 +1,4 @@
1
- import{u as T,a as P,r as m,t as a,j as e,b as s}from"./index-B8Y8Y-Mi.js";import{A as x,C as h}from"./CopyButton-CGfuSJtU.js";import{C as L}from"./CliPreflightCard-CxYyogdF.js";import{a as A,S as H}from"./LanguageSwitcher-D93nCuuR.js";import{S as F}from"./StickyMobileCta-uyWGVhdc.js";import{S as U}from"./SiteHeader-Dj3gDOnR.js";import{L as E}from"./layout-grid-X9Sgull2.js";import{C as f}from"./copy-C9t_FzCZ.js";import{C as z}from"./chevron-down-DbSAem1L.js";import{D as B}from"./download-65Zuvgwm.js";import"./circle-check-CeakjiXC.js";const I=l=>(l||"").split("-")[0]==="ja"?"ja":"en",M=l=>l==="ja"?`# 5枚構成 スクショフレームワーク
1
+ import{u as T,a as P,r as m,t as a,j as e,b as s}from"./index-Bqv2NztY.js";import{A as x,a as h}from"./CopyButton-CmVmSaYn.js";import{C as L}from"./CliPreflightCard-D7utpFux.js";import{a as A,S as H}from"./LanguageSwitcher-BD9N-dla.js";import{S as F}from"./StickyMobileCta-C_x2pUIF.js";import{S as U}from"./SiteHeader-DxsqNPnt.js";import{L as E}from"./layout-grid-CpGXUPMR.js";import{C as f}from"./copy-AQdWJCcs.js";import{C as z}from"./chevron-down-_xIkRLaA.js";import{D as B}from"./download-D5RbyXDm.js";const I=l=>(l||"").split("-")[0]==="ja"?"ja":"en",M=l=>l==="ja"?`# 5枚構成 スクショフレームワーク
2
2
 
3
3
  App Store / Google Play のスクショを「5枚で伝える」ための構成テンプレです。
4
4
 
@@ -56,5 +56,5 @@ A simple structure to explain your app in five store screenshots.
56
56
  - Keep captions short (<= 6-8 words).
57
57
  `,_={en:{badge:"Screenshot structure template",title:"5-panel Screenshot Framework",subtitle:"A practical structure for consistent, reproducible App Store / Google Play screenshots when manual edits or AI drafts drift: Hook → Problem → Proof → How → CTA.",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(`
58
58
  `),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.",navTools:"Tools",introTitle:"Use this when…",introBullets:["Manual Figma/Canva edits (or AI drafts) keep drifting across sizes/locales","App Review/ASO feedback says the first screenshot is unclear","Localization makes copy decisions expensive","You want a rerunnable flow (sample → edit → export)"],panelsTitle:"The 5 panels",panelCards:[{name:"Hook",goal:"Say the outcome in one line.",header:"Header: the result",subtitle:"Subtitle: for who / how fast",example:"Example: Screenshots as a build step"},{name:"Problem",goal:"Make the pain concrete (numbers help).",header:"Header: what is painful",subtitle:"Subtitle: why it costs time",example:"Example: 5×10×4 = 200 images"},{name:"Proof",goal:"Add credibility and reduce doubt.",header:"Header: why trust this",subtitle:"Subtitle: spec / workflow fit",example:"Example: Fastlane-ready output"},{name:"How",goal:"Show the shortest reproducible workflow.",header:"Header: the steps",subtitle:"Subtitle: what you need",example:"Example: Master layout → CSV → Export"},{name:"CTA",goal:"One clear next action.",header:"Header: try / start",subtitle:"Subtitle: what happens next",example:"Example: Try it free"}],toolsTitle:"Assets",calculatorLink:"Screenshot Workload Calculator",calculatorCaption:"Quantify the device × locale explosion and pick size buckets.",sampleTitle:"Sample project",sampleCaption:"Open a pre-filled 5-panel project in ShipScreens and replace the screenshots.",openSample:"Open sample project",downloadTitle:"Download",downloadCaption:"Save the framework as Markdown (easy to share with teammates).",copyButton:"Copy Markdown",downloadButton:"Download Markdown",toastCopied:"Copied to clipboard",toastCopyFailed:"Copy failed. Please use Download.",ctaPrimary:"Start for Free",footerText:"Want feedback on your store assets pipeline? We are talking to early users.",footerCta:"DM @shipscreenscom on X"},ja:{badge:"構成テンプレ(5枚)",title:"5枚構成 スクショフレームワーク",subtitle:"手作業/AI下書きが崩れがちなスクショを再現性のある構成へ: Hook → Problem → Proof → How → CTA。",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(`
59
- `),proUnlockTitle:"Proを解除(CLI)",proUnlockBody:"透かし解除&フル一括(端末×言語)のために、まずはCLI認証を実行:",proUnlockCmd:"npx --yes shipscreens auth login",proUnlockNote:"初回のみブラウザでサインインします。以後は --require-pro で再実行。",navTools:"ツール",introTitle:"こんな時に使う",introBullets:["手作業/AI下書きがサイズ/言語でズレる","App Review/ASO で「最初のスクショが伝わらない」と言われたとき","多言語対応でコピーが長くなりがち","再実行できる流れ(サンプル→編集→Export)が欲しい"],panelsTitle:"5枚の役割",panelCards:[{name:"Hook",goal:"結論(成果)を1行で。",header:"ヘッダー: 変化",subtitle:"サブ: 誰に/どれくらい",example:"例: スクショをビルドステップに"},{name:"Problem",goal:"痛みを具体化(数字が強い)。",header:"ヘッダー: 何がつらい",subtitle:"サブ: なぜ時間が溶ける",example:"例: 5×10×4 = 200枚"},{name:"Proof",goal:"不安を減らす材料。",header:"ヘッダー: 根拠",subtitle:"サブ: 仕様/ワークフロー適合",example:"例: Fastlane対応出力"},{name:"How",goal:"短いフローで再現性を。",header:"ヘッダー: 手順",subtitle:"サブ: 必要なもの",example:"例: master→CSV→Export"},{name:"CTA",goal:"次の一手を1つに。",header:"ヘッダー: 試す/開始",subtitle:"サブ: 次に起きること",example:"例: 無料で試す"}],toolsTitle:"資産",calculatorLink:"スクショ作業量 計算ツール",calculatorCaption:"端末×言語の爆発とサイズバケットを先に把握。",sampleTitle:"サンプルプロジェクト",sampleCaption:"5枚構成の雛形を開いて、画像だけ差し替えてください。",openSample:"サンプルを開く",downloadTitle:"ダウンロード",downloadCaption:"Markdownとして保存(チーム共有しやすい)。",copyButton:"Markdownをコピー",downloadButton:"MarkdownをDL",toastCopied:"コピーしました",toastCopyFailed:"コピーできませんでした。ダウンロードをご利用ください。",ctaPrimary:"無料で試す",footerText:"ストア素材パイプラインの相談があれば、15分だけ聞かせてください。改善案やテンプレをご案内します。",footerCta:"XでDM: @shipscreenscom"}},Y=()=>{const{i18n:l,t:n}=T(),{addToast:d}=P(),r=I(l.resolvedLanguage||l.language),t=_[r]||_.en;A("titles.fivePanelFramework",{defaultValue:r==="ja"?"5枚構成テンプレ - ShipScreens":"5-panel Screenshot Framework - ShipScreens"}),m.useEffect(()=>{a("tool_view",{tool:"five_panel_screenshot_framework"})},[]);const p=m.useMemo(()=>M(r),[r]),C="/app/?sample=5panel&entry_source=five_panel_screenshot_framework_open_app_header",g="/tools/agent-cli/",u="/tools/first-export/?entry_source=five_panel_screenshot_framework_primary_cta",b="/app/?sample=5panel&entry_source=five_panel_screenshot_framework_open_sample_project",k="/downloads/shipscreens-agent-cli-config.yml",j="/downloads/shipscreens-agent-cli-copy.csv",w=n("common.copy",{defaultValue:"Copy"}),v=n("common.showCommands",{defaultValue:"Show commands"}),N=typeof window>"u"?!0:window.matchMedia("(min-width: 640px)").matches,S=m.useCallback(()=>{try{const o=`\uFEFF${p}`,i=new Blob([o],{type:"text/markdown;charset=utf-8"}),y=URL.createObjectURL(i),c=document.createElement("a");c.href=y,c.download=r==="ja"?"shipscreens-5panel-framework-ja.md":"shipscreens-5panel-framework.md",document.body.appendChild(c),c.click(),document.body.removeChild(c),URL.revokeObjectURL(y),a("tool_download",{tool:"five_panel_screenshot_framework",asset:"markdown"})}catch{}},[r,p]);return 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(H,{}),e.jsx(U,{variant:"dark",active:"tools",openAppHref:C,onToolsClick:o=>s(o,"tool_cta_click",{tool:"five_panel_screenshot_framework",cta:"open_tools_header"}),onPricingClick:o=>s(o,"tool_cta_click",{tool:"five_panel_screenshot_framework",cta:"pricing_header"}),onOpenAppClick:o=>s(o,"tool_cta_click",{tool:"five_panel_screenshot_framework",cta:"open_app_header"}),primaryCta:{href:u,label:e.jsxs("span",{className:"inline-flex items-center gap-2",children:[n("landing.nav.primaryCta")," ",e.jsx(x,{size:16})]}),onClick:o=>s(o,"tool_cta_click",{tool:"five_panel_screenshot_framework",cta:"open_first_export_header"})}}),e.jsxs("main",{className:"max-w-5xl mx-auto px-6 pb-24 space-y-12",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(E,{size:14}),t.badge]}),e.jsx("h1",{className:"text-3xl md:text-5xl font-black leading-tight",children:t.title}),e.jsx("p",{className:"text-slate-300 text-lg leading-relaxed",children:t.subtitle}),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:t.heroCliTitle}),e.jsx("p",{className:"text-xs text-slate-400",children:t.heroCliNote}),e.jsx("p",{className:"text-xs text-slate-500",children:t.heroCliSummary}),e.jsx(h,{value:t.heroCliCmd,onCopied:()=>{d({type:"success",message:t.toastCopied}),a("tool_cta_click",{tool:"five_panel_screenshot_framework",cta:"copy_cli_hero"})},onCopyFailed:()=>d({type:"error",message:t.toastCopyFailed}),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:o,copyState:i})=>e.jsxs(e.Fragment,{children:[e.jsx(f,{size:14}),i==="idle"?t.heroCliCopyLabel:o||w]})}),e.jsxs("details",{className:"group",open:N,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:v}),e.jsx(z,{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:t.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:t.heroCliTemplatesLabel}),e.jsxs("div",{className:"flex flex-wrap gap-2",children:[e.jsx("a",{href:k,download:!0,onClick:()=>a("tool_download",{tool:"five_panel_screenshot_framework",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:t.heroCliConfigLabel}),e.jsx("a",{href:j,download:!0,onClick:()=>a("tool_download",{tool:"five_panel_screenshot_framework",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:t.heroCliCsvLabel})]})]})]}),e.jsx(L,{compact:!0,href:"/tools/agent-cli/#preflight",onClick:o=>s(o,"tool_cta_click",{tool:"five_panel_screenshot_framework",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:t.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"})]}),t.proUnlockBody&&e.jsx("p",{className:"text-sm text-slate-300",children:t.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:t.proUnlockCmd})}),e.jsx(h,{value:t.proUnlockCmd,onCopied:()=>a("tool_cta_click",{tool:"five_panel_screenshot_framework",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:o})=>e.jsxs(e.Fragment,{children:[e.jsx(f,{size:14}),o||w]})}),t.proUnlockNote&&e.jsx("div",{className:"text-xs text-slate-500",children:t.proUnlockNote})]})})]}),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:t.introTitle}),e.jsx("ul",{className:"text-sm text-slate-300 list-disc pl-5 space-y-1",children:t.introBullets.map(o=>e.jsx("li",{children:o},o))})]}),e.jsxs("section",{className:"space-y-4",children:[e.jsx("h2",{className:"text-xl font-bold text-white",children:t.panelsTitle}),e.jsx("div",{className:"grid md:grid-cols-2 gap-4",children:t.panelCards.map((o,i)=>e.jsxs("div",{className:"rounded-2xl border border-slate-800 bg-slate-950 p-5 space-y-2",children:[e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsxs("div",{className:"text-sm font-bold text-slate-100",children:[i+1,". ",o.name]}),e.jsx("div",{className:"text-xs text-slate-500",children:"Panel"})]}),e.jsx("div",{className:"text-sm text-slate-300",children:o.goal}),e.jsxs("div",{className:"pt-2 space-y-1 text-xs text-slate-400",children:[e.jsx("div",{children:o.header}),e.jsx("div",{children:o.subtitle}),e.jsx("div",{className:"text-slate-200 font-semibold",children:o.example})]})]},o.name))})]}),e.jsx("section",{className:"space-y-4",children:e.jsxs("div",{className:"bg-slate-900/60 border border-slate-800 rounded-2xl p-6 space-y-4",children:[e.jsx("h2",{className:"text-lg font-bold text-white",children:t.toolsTitle}),e.jsxs("div",{className:"space-y-2",children:[e.jsx("a",{href:"/tools/screenshot-workload-calculator/",onClick:()=>a("tool_cta_click",{tool:"five_panel_screenshot_framework",cta:"open_calculator"}),className:"text-blue-300 hover:text-blue-200 transition-colors underline underline-offset-4 font-semibold",children:t.calculatorLink}),e.jsx("div",{className:"text-sm text-slate-300",children:t.calculatorCaption})]})]})}),e.jsxs("section",{className:"bg-slate-900/60 border border-slate-800 rounded-2xl p-6 space-y-4",children:[e.jsx("h2",{className:"text-lg font-bold text-white",children:t.downloadTitle}),e.jsx("p",{className:"text-sm text-slate-300",children:t.downloadCaption}),e.jsxs("div",{className:"flex flex-col sm:flex-row gap-3",children:[e.jsxs(h,{value:p,onCopied:()=>{d({type:"success",message:t.toastCopied}),a("tool_download",{tool:"five_panel_screenshot_framework",asset:"markdown_clipboard"})},onCopyFailed:()=>d({type:"error",message:t.toastCopyFailed}),className:"flex-1 inline-flex items-center justify-center gap-2 px-4 py-3 rounded-xl border border-slate-700 bg-slate-950 text-slate-200 hover:bg-slate-900 transition","aria-label":t.copyButton,children:[e.jsx(f,{size:16}),t.copyButton]}),e.jsxs("button",{type:"button",onClick:S,className:"flex-1 inline-flex items-center justify-center gap-2 px-4 py-3 rounded-xl border border-slate-700 bg-slate-950 text-slate-200 hover:bg-slate-900 transition",children:[e.jsx(B,{size:16}),t.downloadButton]})]})]}),e.jsxs("section",{className:"bg-slate-900/60 border border-slate-800 rounded-2xl p-6 space-y-4",children:[e.jsx("h2",{className:"text-lg font-bold text-white",children:t.sampleTitle}),e.jsx("p",{className:"text-sm text-slate-300",children:t.sampleCaption}),e.jsxs("div",{className:"flex flex-col sm:flex-row gap-3",children:[e.jsxs("a",{href:u,onClick:o=>s(o,"tool_cta_click",{tool:"five_panel_screenshot_framework",cta:"open_first_export_footer"}),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",children:[n("landing.nav.primaryCta")," ",e.jsx(x,{size:16})]}),e.jsxs("a",{href:b,onClick:o=>s(o,"tool_cta_click",{tool:"five_panel_screenshot_framework",cta:"open_sample_project_footer"}),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",children:[t.openSample," ",e.jsx(x,{size:16})]})]})]}),e.jsxs("section",{className:"max-w-3xl mx-auto text-center space-y-3 pt-2",children:[e.jsx("p",{className:"text-sm text-slate-400",children:t.footerText}),e.jsx("a",{href:"https://x.com/shipscreenscom",target:"_blank",rel:"noopener noreferrer",onClick:()=>a("tool_cta_click",{tool:"five_panel_screenshot_framework",cta:"dm_x"}),className:"text-sm text-blue-300 hover:text-blue-200 transition-colors underline underline-offset-4",children:t.footerCta})]})]}),e.jsx(F,{primary:{label:t.ctaPrimary,href:g,onClick:o=>s(o,"tool_cta_click",{tool:"five_panel_screenshot_framework",cta:"sticky_primary"})},secondary:{label:t.openSample,href:b,onClick:o=>s(o,"tool_cta_click",{tool:"five_panel_screenshot_framework",cta:"sticky_secondary"})}})]})};export{Y as default};
60
- //# sourceMappingURL=FivePanelFramework-C1z_xUbe.js.map
59
+ `),proUnlockTitle:"Proを解除(CLI)",proUnlockBody:"透かし解除&フル一括(端末×言語)のために、まずはCLI認証を実行:",proUnlockCmd:"npx --yes shipscreens auth login",proUnlockNote:"初回のみブラウザでサインインします。以後は --require-pro で再実行。",navTools:"ツール",introTitle:"こんな時に使う",introBullets:["手作業/AI下書きがサイズ/言語でズレる","App Review/ASO で「最初のスクショが伝わらない」と言われたとき","多言語対応でコピーが長くなりがち","再実行できる流れ(サンプル→編集→Export)が欲しい"],panelsTitle:"5枚の役割",panelCards:[{name:"Hook",goal:"結論(成果)を1行で。",header:"ヘッダー: 変化",subtitle:"サブ: 誰に/どれくらい",example:"例: スクショをビルドステップに"},{name:"Problem",goal:"痛みを具体化(数字が強い)。",header:"ヘッダー: 何がつらい",subtitle:"サブ: なぜ時間が溶ける",example:"例: 5×10×4 = 200枚"},{name:"Proof",goal:"不安を減らす材料。",header:"ヘッダー: 根拠",subtitle:"サブ: 仕様/ワークフロー適合",example:"例: Fastlane対応出力"},{name:"How",goal:"短いフローで再現性を。",header:"ヘッダー: 手順",subtitle:"サブ: 必要なもの",example:"例: master→CSV→Export"},{name:"CTA",goal:"次の一手を1つに。",header:"ヘッダー: 試す/開始",subtitle:"サブ: 次に起きること",example:"例: 無料で試す"}],toolsTitle:"資産",calculatorLink:"スクショ作業量 計算ツール",calculatorCaption:"端末×言語の爆発とサイズバケットを先に把握。",sampleTitle:"サンプルプロジェクト",sampleCaption:"5枚構成の雛形を開いて、画像だけ差し替えてください。",openSample:"サンプルを開く",downloadTitle:"ダウンロード",downloadCaption:"Markdownとして保存(チーム共有しやすい)。",copyButton:"Markdownをコピー",downloadButton:"MarkdownをDL",toastCopied:"コピーしました",toastCopyFailed:"コピーできませんでした。ダウンロードをご利用ください。",ctaPrimary:"無料で試す",footerText:"ストア素材パイプラインの相談があれば、15分だけ聞かせてください。改善案やテンプレをご案内します。",footerCta:"XでDM: @shipscreenscom"}},X=()=>{const{i18n:l,t:n}=T(),{addToast:d}=P(),r=I(l.resolvedLanguage||l.language),t=_[r]||_.en;A("titles.fivePanelFramework",{defaultValue:r==="ja"?"5枚構成テンプレ - ShipScreens":"5-panel Screenshot Framework - ShipScreens"}),m.useEffect(()=>{a("tool_view",{tool:"five_panel_screenshot_framework"})},[]);const p=m.useMemo(()=>M(r),[r]),g="/app/?sample=5panel&entry_source=five_panel_screenshot_framework_open_app_header",C="/tools/agent-cli/",u="/tools/first-export/?entry_source=five_panel_screenshot_framework_primary_cta",b="/app/?sample=5panel&entry_source=five_panel_screenshot_framework_open_sample_project",k="/downloads/shipscreens-agent-cli-config.yml",j="/downloads/shipscreens-agent-cli-copy.csv",w=n("common.copy",{defaultValue:"Copy"}),v=n("common.showCommands",{defaultValue:"Show commands"}),N=typeof window>"u"?!0:window.matchMedia("(min-width: 640px)").matches,S=m.useCallback(()=>{try{const o=`\uFEFF${p}`,i=new Blob([o],{type:"text/markdown;charset=utf-8"}),y=URL.createObjectURL(i),c=document.createElement("a");c.href=y,c.download=r==="ja"?"shipscreens-5panel-framework-ja.md":"shipscreens-5panel-framework.md",document.body.appendChild(c),c.click(),document.body.removeChild(c),URL.revokeObjectURL(y),a("tool_download",{tool:"five_panel_screenshot_framework",asset:"markdown"})}catch{}},[r,p]);return 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(H,{}),e.jsx(U,{variant:"dark",active:"tools",openAppHref:g,onToolsClick:o=>s(o,"tool_cta_click",{tool:"five_panel_screenshot_framework",cta:"open_tools_header"}),onPricingClick:o=>s(o,"tool_cta_click",{tool:"five_panel_screenshot_framework",cta:"pricing_header"}),onOpenAppClick:o=>s(o,"tool_cta_click",{tool:"five_panel_screenshot_framework",cta:"open_app_header"}),primaryCta:{href:u,label:e.jsxs("span",{className:"inline-flex items-center gap-2",children:[n("landing.nav.primaryCta")," ",e.jsx(x,{size:16})]}),onClick:o=>s(o,"tool_cta_click",{tool:"five_panel_screenshot_framework",cta:"open_first_export_header"})}}),e.jsxs("main",{className:"max-w-5xl mx-auto px-6 pb-24 space-y-12",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(E,{size:14}),t.badge]}),e.jsx("h1",{className:"text-3xl md:text-5xl font-black leading-tight",children:t.title}),e.jsx("p",{className:"text-slate-300 text-lg leading-relaxed",children:t.subtitle}),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:t.heroCliTitle}),e.jsx("p",{className:"text-xs text-slate-400",children:t.heroCliNote}),e.jsx("p",{className:"text-xs text-slate-500",children:t.heroCliSummary}),e.jsx(h,{value:t.heroCliCmd,onCopied:()=>{d({type:"success",message:t.toastCopied}),a("tool_cta_click",{tool:"five_panel_screenshot_framework",cta:"copy_cli_hero"})},onCopyFailed:()=>d({type:"error",message:t.toastCopyFailed}),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:o,copyState:i})=>e.jsxs(e.Fragment,{children:[e.jsx(f,{size:14}),i==="idle"?t.heroCliCopyLabel:o||w]})}),e.jsxs("details",{className:"group",open:N,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:v}),e.jsx(z,{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:t.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:t.heroCliTemplatesLabel}),e.jsxs("div",{className:"flex flex-wrap gap-2",children:[e.jsx("a",{href:k,download:!0,onClick:()=>a("tool_download",{tool:"five_panel_screenshot_framework",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:t.heroCliConfigLabel}),e.jsx("a",{href:j,download:!0,onClick:()=>a("tool_download",{tool:"five_panel_screenshot_framework",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:t.heroCliCsvLabel})]})]})]}),e.jsx(L,{compact:!0,href:"/tools/agent-cli/#preflight",onClick:o=>s(o,"tool_cta_click",{tool:"five_panel_screenshot_framework",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:t.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"})]}),t.proUnlockBody&&e.jsx("p",{className:"text-sm text-slate-300",children:t.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:t.proUnlockCmd})}),e.jsx(h,{value:t.proUnlockCmd,onCopied:()=>a("tool_cta_click",{tool:"five_panel_screenshot_framework",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:o})=>e.jsxs(e.Fragment,{children:[e.jsx(f,{size:14}),o||w]})}),t.proUnlockNote&&e.jsx("div",{className:"text-xs text-slate-500",children:t.proUnlockNote})]})})]}),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:t.introTitle}),e.jsx("ul",{className:"text-sm text-slate-300 list-disc pl-5 space-y-1",children:t.introBullets.map(o=>e.jsx("li",{children:o},o))})]}),e.jsxs("section",{className:"space-y-4",children:[e.jsx("h2",{className:"text-xl font-bold text-white",children:t.panelsTitle}),e.jsx("div",{className:"grid md:grid-cols-2 gap-4",children:t.panelCards.map((o,i)=>e.jsxs("div",{className:"rounded-2xl border border-slate-800 bg-slate-950 p-5 space-y-2",children:[e.jsxs("div",{className:"flex items-center justify-between",children:[e.jsxs("div",{className:"text-sm font-bold text-slate-100",children:[i+1,". ",o.name]}),e.jsx("div",{className:"text-xs text-slate-500",children:"Panel"})]}),e.jsx("div",{className:"text-sm text-slate-300",children:o.goal}),e.jsxs("div",{className:"pt-2 space-y-1 text-xs text-slate-400",children:[e.jsx("div",{children:o.header}),e.jsx("div",{children:o.subtitle}),e.jsx("div",{className:"text-slate-200 font-semibold",children:o.example})]})]},o.name))})]}),e.jsx("section",{className:"space-y-4",children:e.jsxs("div",{className:"bg-slate-900/60 border border-slate-800 rounded-2xl p-6 space-y-4",children:[e.jsx("h2",{className:"text-lg font-bold text-white",children:t.toolsTitle}),e.jsxs("div",{className:"space-y-2",children:[e.jsx("a",{href:"/tools/screenshot-workload-calculator/",onClick:()=>a("tool_cta_click",{tool:"five_panel_screenshot_framework",cta:"open_calculator"}),className:"text-blue-300 hover:text-blue-200 transition-colors underline underline-offset-4 font-semibold",children:t.calculatorLink}),e.jsx("div",{className:"text-sm text-slate-300",children:t.calculatorCaption})]})]})}),e.jsxs("section",{className:"bg-slate-900/60 border border-slate-800 rounded-2xl p-6 space-y-4",children:[e.jsx("h2",{className:"text-lg font-bold text-white",children:t.downloadTitle}),e.jsx("p",{className:"text-sm text-slate-300",children:t.downloadCaption}),e.jsxs("div",{className:"flex flex-col sm:flex-row gap-3",children:[e.jsxs(h,{value:p,onCopied:()=>{d({type:"success",message:t.toastCopied}),a("tool_download",{tool:"five_panel_screenshot_framework",asset:"markdown_clipboard"})},onCopyFailed:()=>d({type:"error",message:t.toastCopyFailed}),className:"flex-1 inline-flex items-center justify-center gap-2 px-4 py-3 rounded-xl border border-slate-700 bg-slate-950 text-slate-200 hover:bg-slate-900 transition","aria-label":t.copyButton,children:[e.jsx(f,{size:16}),t.copyButton]}),e.jsxs("button",{type:"button",onClick:S,className:"flex-1 inline-flex items-center justify-center gap-2 px-4 py-3 rounded-xl border border-slate-700 bg-slate-950 text-slate-200 hover:bg-slate-900 transition",children:[e.jsx(B,{size:16}),t.downloadButton]})]})]}),e.jsxs("section",{className:"bg-slate-900/60 border border-slate-800 rounded-2xl p-6 space-y-4",children:[e.jsx("h2",{className:"text-lg font-bold text-white",children:t.sampleTitle}),e.jsx("p",{className:"text-sm text-slate-300",children:t.sampleCaption}),e.jsxs("div",{className:"flex flex-col sm:flex-row gap-3",children:[e.jsxs("a",{href:u,onClick:o=>s(o,"tool_cta_click",{tool:"five_panel_screenshot_framework",cta:"open_first_export_footer"}),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",children:[n("landing.nav.primaryCta")," ",e.jsx(x,{size:16})]}),e.jsxs("a",{href:b,onClick:o=>s(o,"tool_cta_click",{tool:"five_panel_screenshot_framework",cta:"open_sample_project_footer"}),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",children:[t.openSample," ",e.jsx(x,{size:16})]})]})]}),e.jsxs("section",{className:"max-w-3xl mx-auto text-center space-y-3 pt-2",children:[e.jsx("p",{className:"text-sm text-slate-400",children:t.footerText}),e.jsx("a",{href:"https://x.com/shipscreenscom",target:"_blank",rel:"noopener noreferrer",onClick:()=>a("tool_cta_click",{tool:"five_panel_screenshot_framework",cta:"dm_x"}),className:"text-sm text-blue-300 hover:text-blue-200 transition-colors underline underline-offset-4",children:t.footerCta})]})]}),e.jsx(F,{primary:{label:t.ctaPrimary,href:C,onClick:o=>s(o,"tool_cta_click",{tool:"five_panel_screenshot_framework",cta:"sticky_primary"})},secondary:{label:t.openSample,href:b,onClick:o=>s(o,"tool_cta_click",{tool:"five_panel_screenshot_framework",cta:"sticky_secondary"})}})]})};export{X as default};
60
+ //# sourceMappingURL=FivePanelFramework-BwCRmXIK.js.map