shipscreens 0.1.6 → 0.1.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (531) hide show
  1. package/README.md +14 -4
  2. package/bin/shipscreens.js +352 -18
  3. package/cli/commands/captureScreenshots.js +409 -0
  4. package/cli/commands/importScreenshots.js +377 -0
  5. package/cli/commands/inspectReleaseContext.js +607 -0
  6. package/cli/commands/planRelease.js +324 -0
  7. package/cli/commands/writeStarterConfig.js +233 -0
  8. package/cli/mcpServer.js +172 -3
  9. package/dist/.well-known/ai-agents.json +58 -11
  10. package/dist/.well-known/llms-full.txt +80 -17
  11. package/dist/.well-known/llms.txt +38 -12
  12. package/dist/.well-known/mcp-server.json +4 -4
  13. package/dist/ai-agents.json +58 -11
  14. package/dist/app/assets/AgentCli-nIqgOG-i.js +17 -0
  15. package/dist/app/assets/AgentCli-nIqgOG-i.js.map +1 -0
  16. package/dist/app/assets/AgentHandoffPanel-Bf_AJepG.js +2 -0
  17. package/dist/app/assets/AgentHandoffPanel-Bf_AJepG.js.map +1 -0
  18. package/dist/app/assets/AgentStarterWorkflowFigure-DW4SMMy7.js +2 -0
  19. package/dist/app/assets/AgentStarterWorkflowFigure-DW4SMMy7.js.map +1 -0
  20. package/dist/app/assets/App-BRKxkubQ.css +1 -0
  21. package/dist/app/assets/App-CZiyX8-L.js +14 -0
  22. package/dist/app/assets/App-CZiyX8-L.js.map +1 -0
  23. package/dist/app/assets/AppReviewAso-DYOCuqgV.js +4 -0
  24. package/dist/app/assets/AppReviewAso-DYOCuqgV.js.map +1 -0
  25. package/dist/app/assets/Cancelled-CP6V6uDb.js +2 -0
  26. package/dist/app/assets/Cancelled-CP6V6uDb.js.map +1 -0
  27. package/dist/app/assets/CopyButton-BFCx6EPg.js +2 -0
  28. package/dist/app/assets/CopyButton-BFCx6EPg.js.map +1 -0
  29. package/dist/app/assets/DesignPartner-B4J7f0Bx.js +4 -0
  30. package/dist/app/assets/DesignPartner-B4J7f0Bx.js.map +1 -0
  31. package/dist/app/assets/FastlaneScreenshots-cdZE6cGY.js +90 -0
  32. package/dist/app/assets/FastlaneScreenshots-cdZE6cGY.js.map +1 -0
  33. package/dist/app/assets/FirstExport-qfY7uE8r.js +6 -0
  34. package/dist/app/assets/FirstExport-qfY7uE8r.js.map +1 -0
  35. package/dist/app/assets/FitPanel-B1J0V1jK.js +2 -0
  36. package/dist/app/assets/FitPanel-B1J0V1jK.js.map +1 -0
  37. package/dist/app/assets/FivePanelFramework-C4yq58kM.js +62 -0
  38. package/dist/app/assets/FivePanelFramework-C4yq58kM.js.map +1 -0
  39. package/dist/app/assets/ForgotPassword-KF_HFGyb.js +2 -0
  40. package/dist/app/assets/ForgotPassword-KF_HFGyb.js.map +1 -0
  41. package/dist/app/assets/Landing-B_CvZDXJ.js +2 -0
  42. package/dist/app/assets/Landing-B_CvZDXJ.js.map +1 -0
  43. package/dist/app/assets/LanguageSwitcher-hFv9zl1u.js +2 -0
  44. package/dist/app/assets/LanguageSwitcher-hFv9zl1u.js.map +1 -0
  45. package/dist/app/assets/Legal-BwGbEjDk.js +2 -0
  46. package/dist/app/assets/Legal-BwGbEjDk.js.map +1 -0
  47. package/dist/app/assets/NotFound-Ba1Bw7uu.js +2 -0
  48. package/dist/app/assets/NotFound-Ba1Bw7uu.js.map +1 -0
  49. package/dist/app/assets/Pricing-Dt-V4Gqc.js +20 -0
  50. package/dist/app/assets/Pricing-Dt-V4Gqc.js.map +1 -0
  51. package/dist/app/assets/Privacy-C6MrXYPO.js +2 -0
  52. package/dist/app/assets/Privacy-C6MrXYPO.js.map +1 -0
  53. package/dist/app/assets/Proof-C3DDFAhm.js +20 -0
  54. package/dist/app/assets/Proof-C3DDFAhm.js.map +1 -0
  55. package/dist/app/assets/ReleaseFitIntake-DBeb9AFJ.js +27 -0
  56. package/dist/app/assets/ReleaseFitIntake-DBeb9AFJ.js.map +1 -0
  57. package/dist/app/assets/SalesEntryQuickRequestCard-Bfa93AYu.js +2 -0
  58. package/dist/app/assets/SalesEntryQuickRequestCard-Bfa93AYu.js.map +1 -0
  59. package/dist/app/assets/Security-C1OmAgom.js +2 -0
  60. package/dist/app/assets/Security-C1OmAgom.js.map +1 -0
  61. package/dist/app/assets/SignIn-C_wwnmvu.js +2 -0
  62. package/dist/app/assets/SignIn-C_wwnmvu.js.map +1 -0
  63. package/dist/app/assets/SignUp-Dm5HalC6.js +2 -0
  64. package/dist/app/assets/SignUp-Dm5HalC6.js.map +1 -0
  65. package/dist/app/assets/SiteHeader-CJqQ0pL3.js +2 -0
  66. package/dist/app/assets/SiteHeader-CJqQ0pL3.js.map +1 -0
  67. package/dist/app/assets/StickyMobileCta-REC3DROG.js +2 -0
  68. package/dist/app/assets/StickyMobileCta-REC3DROG.js.map +1 -0
  69. package/dist/app/assets/StoreAssetsPipeline-DNnnBp0D.js +6 -0
  70. package/dist/app/assets/StoreAssetsPipeline-DNnnBp0D.js.map +1 -0
  71. package/dist/app/assets/Success-D6b4wLPD.js +2 -0
  72. package/dist/app/assets/Success-D6b4wLPD.js.map +1 -0
  73. package/dist/app/assets/Terms-BMt39FQK.js +2 -0
  74. package/dist/app/assets/Terms-BMt39FQK.js.map +1 -0
  75. package/dist/app/assets/ToolGuardrailsPanel-Cclxwdrb.js +2 -0
  76. package/dist/app/assets/ToolGuardrailsPanel-Cclxwdrb.js.map +1 -0
  77. package/dist/app/assets/ToolsIndex-d1szo5bn.js +6 -0
  78. package/dist/app/assets/ToolsIndex-d1szo5bn.js.map +1 -0
  79. package/dist/app/assets/TrustSalesEntryPanel-DuncpgMs.js +2 -0
  80. package/dist/app/assets/TrustSalesEntryPanel-DuncpgMs.js.map +1 -0
  81. package/dist/app/assets/WorkloadCalculator-BbFWF2Ls.js +5 -0
  82. package/dist/app/assets/WorkloadCalculator-BbFWF2Ls.js.map +1 -0
  83. package/dist/app/assets/agentHandoff-BGmHqDwv.js +2 -0
  84. package/dist/app/assets/agentHandoff-BGmHqDwv.js.map +1 -0
  85. package/dist/app/assets/apiClient-3WVm94VW.js +2 -0
  86. package/dist/app/assets/apiClient-3WVm94VW.js.map +1 -0
  87. package/dist/app/assets/calculator-CofuwQa8.js +2 -0
  88. package/dist/app/assets/calculator-CofuwQa8.js.map +1 -0
  89. package/dist/app/assets/check-Fm2iQO64.js +2 -0
  90. package/dist/app/assets/check-Fm2iQO64.js.map +1 -0
  91. package/dist/app/assets/chevron-down-BIXHKpnf.js +2 -0
  92. package/dist/app/assets/chevron-down-BIXHKpnf.js.map +1 -0
  93. package/dist/app/assets/chunk-BHe-jwch.js +1 -0
  94. package/dist/app/assets/circle-check-X08qqy40.js +2 -0
  95. package/dist/app/assets/circle-check-X08qqy40.js.map +1 -0
  96. package/dist/app/assets/copy-KD-LYJ0z.js +2 -0
  97. package/dist/app/assets/copy-KD-LYJ0z.js.map +1 -0
  98. package/dist/app/assets/crop-K1LOmRty.js +2 -0
  99. package/dist/app/assets/crop-K1LOmRty.js.map +1 -0
  100. package/dist/app/assets/designPartnerRequest-DYqMElJd.js +2 -0
  101. package/dist/app/assets/designPartnerRequest-DYqMElJd.js.map +1 -0
  102. package/dist/app/assets/designPartnerSalesEntry-BpRINg3I.js +2 -0
  103. package/dist/app/assets/designPartnerSalesEntry-BpRINg3I.js.map +1 -0
  104. package/dist/app/assets/download-BXzoc-Y3.js +2 -0
  105. package/dist/app/assets/download-BXzoc-Y3.js.map +1 -0
  106. package/dist/app/assets/eye-CHvLhG2r.js +2 -0
  107. package/dist/app/assets/eye-CHvLhG2r.js.map +1 -0
  108. package/dist/app/assets/file-text-CU-ETLz1.js +2 -0
  109. package/dist/app/assets/file-text-CU-ETLz1.js.map +1 -0
  110. package/dist/app/assets/folder-tree-raVH0Y5V.js +2 -0
  111. package/dist/app/assets/folder-tree-raVH0Y5V.js.map +1 -0
  112. package/dist/app/assets/grid-3x3-cWuhGQfz.js +2 -0
  113. package/dist/app/assets/grid-3x3-cWuhGQfz.js.map +1 -0
  114. package/dist/app/assets/hardeningOffer-tkjlPDU-.js +2 -0
  115. package/dist/app/assets/hardeningOffer-tkjlPDU-.js.map +1 -0
  116. package/dist/app/assets/hero/agent-starter-workflow.png +0 -0
  117. package/dist/app/assets/hero/agent-starter-workflow.webp +0 -0
  118. package/dist/app/assets/html2canvas-pro.esm-OQkwCdu_.js +6 -0
  119. package/dist/app/assets/html2canvas-pro.esm-OQkwCdu_.js.map +1 -0
  120. package/dist/app/assets/index-BW_YmKvl.css +2 -0
  121. package/dist/app/assets/index-D7D6ZRCW.js +212 -0
  122. package/dist/app/assets/index-D7D6ZRCW.js.map +1 -0
  123. package/dist/app/assets/jszip.min-XyfP2hUJ.js +3 -0
  124. package/dist/app/assets/jszip.min-XyfP2hUJ.js.map +1 -0
  125. package/dist/app/assets/layout-grid-Cq_e979G.js +2 -0
  126. package/dist/app/assets/layout-grid-Cq_e979G.js.map +1 -0
  127. package/dist/app/assets/lock-Di7P18Ts.js +2 -0
  128. package/dist/app/assets/lock-Di7P18Ts.js.map +1 -0
  129. package/dist/app/assets/rocket-DHdrCHKD.js +2 -0
  130. package/dist/app/assets/rocket-DHdrCHKD.js.map +1 -0
  131. package/dist/app/assets/shield-check-CxpHNdp0.js +2 -0
  132. package/dist/app/assets/shield-check-CxpHNdp0.js.map +1 -0
  133. package/dist/app/assets/smartphone-DXKiqu57.js +2 -0
  134. package/dist/app/assets/smartphone-DXKiqu57.js.map +1 -0
  135. package/dist/app/assets/stripeClient-CuZgvzca.js +2 -0
  136. package/dist/app/assets/stripeClient-CuZgvzca.js.map +1 -0
  137. package/dist/app/assets/terminal-J0iyJTv2.js +2 -0
  138. package/dist/app/assets/terminal-J0iyJTv2.js.map +1 -0
  139. package/dist/app/assets/triangle-alert-BA0HP6zD.js +2 -0
  140. package/dist/app/assets/triangle-alert-BA0HP6zD.js.map +1 -0
  141. package/dist/app/assets/useAuth-CoS4r8yi.js +22 -0
  142. package/dist/app/assets/useAuth-CoS4r8yi.js.map +1 -0
  143. package/dist/app/assets/users-C-fz7pbn.js +2 -0
  144. package/dist/app/assets/users-C-fz7pbn.js.map +1 -0
  145. package/dist/app/index.html +9 -8
  146. package/dist/assets/AgentCli-nIqgOG-i.js +17 -0
  147. package/dist/assets/AgentCli-nIqgOG-i.js.map +1 -0
  148. package/dist/assets/AgentHandoffPanel-Bf_AJepG.js +2 -0
  149. package/dist/assets/AgentHandoffPanel-Bf_AJepG.js.map +1 -0
  150. package/dist/assets/AgentStarterWorkflowFigure-DW4SMMy7.js +2 -0
  151. package/dist/assets/AgentStarterWorkflowFigure-DW4SMMy7.js.map +1 -0
  152. package/dist/assets/App-BRKxkubQ.css +1 -0
  153. package/dist/assets/App-CZiyX8-L.js +14 -0
  154. package/dist/assets/App-CZiyX8-L.js.map +1 -0
  155. package/dist/assets/AppReviewAso-DYOCuqgV.js +4 -0
  156. package/dist/assets/AppReviewAso-DYOCuqgV.js.map +1 -0
  157. package/dist/assets/Cancelled-CP6V6uDb.js +2 -0
  158. package/dist/assets/Cancelled-CP6V6uDb.js.map +1 -0
  159. package/dist/assets/CopyButton-BFCx6EPg.js +2 -0
  160. package/dist/assets/CopyButton-BFCx6EPg.js.map +1 -0
  161. package/dist/assets/DesignPartner-B4J7f0Bx.js +4 -0
  162. package/dist/assets/DesignPartner-B4J7f0Bx.js.map +1 -0
  163. package/dist/assets/FastlaneScreenshots-cdZE6cGY.js +90 -0
  164. package/dist/assets/FastlaneScreenshots-cdZE6cGY.js.map +1 -0
  165. package/dist/assets/FirstExport-qfY7uE8r.js +6 -0
  166. package/dist/assets/FirstExport-qfY7uE8r.js.map +1 -0
  167. package/dist/assets/FitPanel-B1J0V1jK.js +2 -0
  168. package/dist/assets/FitPanel-B1J0V1jK.js.map +1 -0
  169. package/dist/assets/FivePanelFramework-C4yq58kM.js +62 -0
  170. package/dist/assets/FivePanelFramework-C4yq58kM.js.map +1 -0
  171. package/dist/assets/ForgotPassword-KF_HFGyb.js +2 -0
  172. package/dist/assets/ForgotPassword-KF_HFGyb.js.map +1 -0
  173. package/dist/assets/Landing-B_CvZDXJ.js +2 -0
  174. package/dist/assets/Landing-B_CvZDXJ.js.map +1 -0
  175. package/dist/assets/LanguageSwitcher-hFv9zl1u.js +2 -0
  176. package/dist/assets/LanguageSwitcher-hFv9zl1u.js.map +1 -0
  177. package/dist/assets/Legal-BwGbEjDk.js +2 -0
  178. package/dist/assets/Legal-BwGbEjDk.js.map +1 -0
  179. package/dist/assets/NotFound-Ba1Bw7uu.js +2 -0
  180. package/dist/assets/NotFound-Ba1Bw7uu.js.map +1 -0
  181. package/dist/assets/Pricing-Dt-V4Gqc.js +20 -0
  182. package/dist/assets/Pricing-Dt-V4Gqc.js.map +1 -0
  183. package/dist/assets/Privacy-C6MrXYPO.js +2 -0
  184. package/dist/assets/Privacy-C6MrXYPO.js.map +1 -0
  185. package/dist/assets/Proof-C3DDFAhm.js +20 -0
  186. package/dist/assets/Proof-C3DDFAhm.js.map +1 -0
  187. package/dist/assets/ReleaseFitIntake-DBeb9AFJ.js +27 -0
  188. package/dist/assets/ReleaseFitIntake-DBeb9AFJ.js.map +1 -0
  189. package/dist/assets/SalesEntryQuickRequestCard-Bfa93AYu.js +2 -0
  190. package/dist/assets/SalesEntryQuickRequestCard-Bfa93AYu.js.map +1 -0
  191. package/dist/assets/Security-C1OmAgom.js +2 -0
  192. package/dist/assets/Security-C1OmAgom.js.map +1 -0
  193. package/dist/assets/SignIn-C_wwnmvu.js +2 -0
  194. package/dist/assets/SignIn-C_wwnmvu.js.map +1 -0
  195. package/dist/assets/SignUp-Dm5HalC6.js +2 -0
  196. package/dist/assets/SignUp-Dm5HalC6.js.map +1 -0
  197. package/dist/assets/SiteHeader-CJqQ0pL3.js +2 -0
  198. package/dist/assets/SiteHeader-CJqQ0pL3.js.map +1 -0
  199. package/dist/assets/StickyMobileCta-REC3DROG.js +2 -0
  200. package/dist/assets/StickyMobileCta-REC3DROG.js.map +1 -0
  201. package/dist/assets/StoreAssetsPipeline-DNnnBp0D.js +6 -0
  202. package/dist/assets/StoreAssetsPipeline-DNnnBp0D.js.map +1 -0
  203. package/dist/assets/Success-D6b4wLPD.js +2 -0
  204. package/dist/assets/Success-D6b4wLPD.js.map +1 -0
  205. package/dist/assets/Terms-BMt39FQK.js +2 -0
  206. package/dist/assets/Terms-BMt39FQK.js.map +1 -0
  207. package/dist/assets/ToolGuardrailsPanel-Cclxwdrb.js +2 -0
  208. package/dist/assets/ToolGuardrailsPanel-Cclxwdrb.js.map +1 -0
  209. package/dist/assets/ToolsIndex-d1szo5bn.js +6 -0
  210. package/dist/assets/ToolsIndex-d1szo5bn.js.map +1 -0
  211. package/dist/assets/TrustSalesEntryPanel-DuncpgMs.js +2 -0
  212. package/dist/assets/TrustSalesEntryPanel-DuncpgMs.js.map +1 -0
  213. package/dist/assets/WorkloadCalculator-BbFWF2Ls.js +5 -0
  214. package/dist/assets/WorkloadCalculator-BbFWF2Ls.js.map +1 -0
  215. package/dist/assets/agentHandoff-BGmHqDwv.js +2 -0
  216. package/dist/assets/agentHandoff-BGmHqDwv.js.map +1 -0
  217. package/dist/assets/apiClient-3WVm94VW.js +2 -0
  218. package/dist/assets/apiClient-3WVm94VW.js.map +1 -0
  219. package/dist/assets/calculator-CofuwQa8.js +2 -0
  220. package/dist/assets/calculator-CofuwQa8.js.map +1 -0
  221. package/dist/assets/check-Fm2iQO64.js +2 -0
  222. package/dist/assets/check-Fm2iQO64.js.map +1 -0
  223. package/dist/assets/chevron-down-BIXHKpnf.js +2 -0
  224. package/dist/assets/chevron-down-BIXHKpnf.js.map +1 -0
  225. package/dist/assets/chunk-BHe-jwch.js +1 -0
  226. package/dist/assets/circle-check-X08qqy40.js +2 -0
  227. package/dist/assets/circle-check-X08qqy40.js.map +1 -0
  228. package/dist/assets/copy-KD-LYJ0z.js +2 -0
  229. package/dist/assets/copy-KD-LYJ0z.js.map +1 -0
  230. package/dist/assets/crop-K1LOmRty.js +2 -0
  231. package/dist/assets/crop-K1LOmRty.js.map +1 -0
  232. package/dist/assets/designPartnerRequest-DYqMElJd.js +2 -0
  233. package/dist/assets/designPartnerRequest-DYqMElJd.js.map +1 -0
  234. package/dist/assets/designPartnerSalesEntry-BpRINg3I.js +2 -0
  235. package/dist/assets/designPartnerSalesEntry-BpRINg3I.js.map +1 -0
  236. package/dist/assets/download-BXzoc-Y3.js +2 -0
  237. package/dist/assets/download-BXzoc-Y3.js.map +1 -0
  238. package/dist/assets/eye-CHvLhG2r.js +2 -0
  239. package/dist/assets/eye-CHvLhG2r.js.map +1 -0
  240. package/dist/assets/file-text-CU-ETLz1.js +2 -0
  241. package/dist/assets/file-text-CU-ETLz1.js.map +1 -0
  242. package/dist/assets/folder-tree-raVH0Y5V.js +2 -0
  243. package/dist/assets/folder-tree-raVH0Y5V.js.map +1 -0
  244. package/dist/assets/grid-3x3-cWuhGQfz.js +2 -0
  245. package/dist/assets/grid-3x3-cWuhGQfz.js.map +1 -0
  246. package/dist/assets/hardeningOffer-tkjlPDU-.js +2 -0
  247. package/dist/assets/hardeningOffer-tkjlPDU-.js.map +1 -0
  248. package/dist/assets/hero/agent-starter-workflow.png +0 -0
  249. package/dist/assets/hero/agent-starter-workflow.webp +0 -0
  250. package/dist/assets/html2canvas-pro.esm-OQkwCdu_.js +6 -0
  251. package/dist/assets/html2canvas-pro.esm-OQkwCdu_.js.map +1 -0
  252. package/dist/assets/index-BW_YmKvl.css +2 -0
  253. package/dist/assets/index-D7D6ZRCW.js +212 -0
  254. package/dist/assets/index-D7D6ZRCW.js.map +1 -0
  255. package/dist/assets/jszip.min-XyfP2hUJ.js +3 -0
  256. package/dist/assets/jszip.min-XyfP2hUJ.js.map +1 -0
  257. package/dist/assets/layout-grid-Cq_e979G.js +2 -0
  258. package/dist/assets/layout-grid-Cq_e979G.js.map +1 -0
  259. package/dist/assets/lock-Di7P18Ts.js +2 -0
  260. package/dist/assets/lock-Di7P18Ts.js.map +1 -0
  261. package/dist/assets/rocket-DHdrCHKD.js +2 -0
  262. package/dist/assets/rocket-DHdrCHKD.js.map +1 -0
  263. package/dist/assets/shield-check-CxpHNdp0.js +2 -0
  264. package/dist/assets/shield-check-CxpHNdp0.js.map +1 -0
  265. package/dist/assets/smartphone-DXKiqu57.js +2 -0
  266. package/dist/assets/smartphone-DXKiqu57.js.map +1 -0
  267. package/dist/assets/stripeClient-CuZgvzca.js +2 -0
  268. package/dist/assets/stripeClient-CuZgvzca.js.map +1 -0
  269. package/dist/assets/terminal-J0iyJTv2.js +2 -0
  270. package/dist/assets/terminal-J0iyJTv2.js.map +1 -0
  271. package/dist/assets/triangle-alert-BA0HP6zD.js +2 -0
  272. package/dist/assets/triangle-alert-BA0HP6zD.js.map +1 -0
  273. package/dist/assets/useAuth-CoS4r8yi.js +22 -0
  274. package/dist/assets/useAuth-CoS4r8yi.js.map +1 -0
  275. package/dist/assets/users-C-fz7pbn.js +2 -0
  276. package/dist/assets/users-C-fz7pbn.js.map +1 -0
  277. package/dist/cancelled/index.html +3 -2
  278. package/dist/design-partner/index.html +6 -5
  279. package/dist/downloads/shipscreens-github-actions-template.yml +1 -1
  280. package/dist/forgot-password/index.html +3 -2
  281. package/dist/index.html +9 -8
  282. package/dist/legal/index.html +3 -2
  283. package/dist/llms-full.txt +80 -17
  284. package/dist/llms.txt +38 -12
  285. package/dist/mcp-server.json +4 -4
  286. package/dist/pricing/index.html +6 -5
  287. package/dist/privacy/index.html +3 -2
  288. package/dist/proof/index.html +6 -5
  289. package/dist/security/index.html +3 -2
  290. package/dist/signin/index.html +3 -2
  291. package/dist/signup/index.html +3 -2
  292. package/dist/success/index.html +3 -2
  293. package/dist/terms/index.html +3 -2
  294. package/dist/tools/5-panel-screenshot-framework/index.html +6 -5
  295. package/dist/tools/agent-cli/index.html +8 -7
  296. package/dist/tools/app-review-aso/index.html +6 -5
  297. package/dist/tools/app-store-localization-screenshot-automation/index.html +8 -7
  298. package/dist/tools/app-store-screenshot-automation/index.html +8 -7
  299. package/dist/tools/app-store-screenshot-requirements-checklist/index.html +8 -7
  300. package/dist/tools/claude-code-mcp-screenshot-automation/index.html +8 -7
  301. package/dist/tools/cursor-mcp-screenshot-automation/index.html +8 -7
  302. package/dist/tools/deterministic-screenshot-reruns/index.html +8 -7
  303. package/dist/tools/device-locale-screenshot-matrix/index.html +8 -7
  304. package/dist/tools/fastlane-screenshot-folder-structure/index.html +8 -7
  305. package/dist/tools/fastlane-screenshot-pipeline/index.html +8 -7
  306. package/dist/tools/fastlane-screenshots/index.html +6 -5
  307. package/dist/tools/first-export/index.html +6 -5
  308. package/dist/tools/gemini-cli-mcp-screenshot-automation/index.html +8 -7
  309. package/dist/tools/google-play-screenshot-automation/index.html +8 -7
  310. package/dist/tools/google-play-screenshot-requirements-checklist/index.html +8 -7
  311. package/dist/tools/index.html +6 -5
  312. package/dist/tools/ipad-screenshot-review-requirements/index.html +8 -7
  313. package/dist/tools/openai-responses-tool-screenshot-automation/index.html +8 -7
  314. package/dist/tools/screenshot-ci-pipeline/index.html +8 -7
  315. package/dist/tools/screenshot-naming-order-drift/index.html +8 -7
  316. package/dist/tools/screenshot-workload-calculator/index.html +6 -5
  317. package/dist/tools/store-assets-pipeline/index.html +3 -2
  318. package/dist/tools/vscode-copilot-mcp-screenshot-automation/index.html +8 -7
  319. package/package.json +7 -7
  320. package/dist/app/assets/AgentCli-xKYtzL3B.js +0 -17
  321. package/dist/app/assets/AgentCli-xKYtzL3B.js.map +0 -1
  322. package/dist/app/assets/App-C1cNw_fn.js +0 -13
  323. package/dist/app/assets/App-C1cNw_fn.js.map +0 -1
  324. package/dist/app/assets/App-oQfE_p3A.css +0 -1
  325. package/dist/app/assets/AppReviewAso-CaIT-L7Z.js +0 -4
  326. package/dist/app/assets/AppReviewAso-CaIT-L7Z.js.map +0 -1
  327. package/dist/app/assets/Cancelled-Dmw7PTD-.js +0 -2
  328. package/dist/app/assets/Cancelled-Dmw7PTD-.js.map +0 -1
  329. package/dist/app/assets/CopyButton-CPRHmu8l.js +0 -2
  330. package/dist/app/assets/CopyButton-CPRHmu8l.js.map +0 -1
  331. package/dist/app/assets/DesignPartner-Ckp1GhNv.js +0 -4
  332. package/dist/app/assets/DesignPartner-Ckp1GhNv.js.map +0 -1
  333. package/dist/app/assets/FastlaneScreenshots-CB-zv5Us.js +0 -100
  334. package/dist/app/assets/FastlaneScreenshots-CB-zv5Us.js.map +0 -1
  335. package/dist/app/assets/FirstExport-RXbvVQdK.js +0 -6
  336. package/dist/app/assets/FirstExport-RXbvVQdK.js.map +0 -1
  337. package/dist/app/assets/FitPanel-ic91y-49.js +0 -2
  338. package/dist/app/assets/FitPanel-ic91y-49.js.map +0 -1
  339. package/dist/app/assets/FivePanelFramework-BZKNcycb.js +0 -62
  340. package/dist/app/assets/FivePanelFramework-BZKNcycb.js.map +0 -1
  341. package/dist/app/assets/ForgotPassword-CKOfAvWk.js +0 -2
  342. package/dist/app/assets/ForgotPassword-CKOfAvWk.js.map +0 -1
  343. package/dist/app/assets/Landing-D0cuDDUk.js +0 -2
  344. package/dist/app/assets/Landing-D0cuDDUk.js.map +0 -1
  345. package/dist/app/assets/LanguageSwitcher-BrToLEgF.js +0 -2
  346. package/dist/app/assets/LanguageSwitcher-BrToLEgF.js.map +0 -1
  347. package/dist/app/assets/Legal-Cm-hVzjY.js +0 -2
  348. package/dist/app/assets/Legal-Cm-hVzjY.js.map +0 -1
  349. package/dist/app/assets/NotFound-B0I6I440.js +0 -2
  350. package/dist/app/assets/NotFound-B0I6I440.js.map +0 -1
  351. package/dist/app/assets/Pricing-p-NIjjtK.js +0 -29
  352. package/dist/app/assets/Pricing-p-NIjjtK.js.map +0 -1
  353. package/dist/app/assets/Privacy-BhfPkK0y.js +0 -2
  354. package/dist/app/assets/Privacy-BhfPkK0y.js.map +0 -1
  355. package/dist/app/assets/Proof-D-7QbTGX.js +0 -20
  356. package/dist/app/assets/Proof-D-7QbTGX.js.map +0 -1
  357. package/dist/app/assets/Security-DFafJQIT.js +0 -2
  358. package/dist/app/assets/Security-DFafJQIT.js.map +0 -1
  359. package/dist/app/assets/SignIn--6nNsUCm.js +0 -2
  360. package/dist/app/assets/SignIn--6nNsUCm.js.map +0 -1
  361. package/dist/app/assets/SignUp-yh5ydmFf.js +0 -2
  362. package/dist/app/assets/SignUp-yh5ydmFf.js.map +0 -1
  363. package/dist/app/assets/SiteHeader-NTK-cM9O.js +0 -2
  364. package/dist/app/assets/SiteHeader-NTK-cM9O.js.map +0 -1
  365. package/dist/app/assets/StickyMobileCta-DVXAyhaH.js +0 -2
  366. package/dist/app/assets/StickyMobileCta-DVXAyhaH.js.map +0 -1
  367. package/dist/app/assets/StoreAssetsPipeline-Cbs1bNK5.js +0 -6
  368. package/dist/app/assets/StoreAssetsPipeline-Cbs1bNK5.js.map +0 -1
  369. package/dist/app/assets/Success-C3n0m1XU.js +0 -2
  370. package/dist/app/assets/Success-C3n0m1XU.js.map +0 -1
  371. package/dist/app/assets/Terms-C72ybAwA.js +0 -2
  372. package/dist/app/assets/Terms-C72ybAwA.js.map +0 -1
  373. package/dist/app/assets/ToolGuardrailsPanel-meKxUeSB.js +0 -2
  374. package/dist/app/assets/ToolGuardrailsPanel-meKxUeSB.js.map +0 -1
  375. package/dist/app/assets/ToolsIndex-CnvNTvyW.js +0 -6
  376. package/dist/app/assets/ToolsIndex-CnvNTvyW.js.map +0 -1
  377. package/dist/app/assets/WorkloadCalculator-CK4qVUcQ.js +0 -5
  378. package/dist/app/assets/WorkloadCalculator-CK4qVUcQ.js.map +0 -1
  379. package/dist/app/assets/arrow-right-Dglia5EE.js +0 -2
  380. package/dist/app/assets/arrow-right-Dglia5EE.js.map +0 -1
  381. package/dist/app/assets/calculator-CAgtsVuH.js +0 -2
  382. package/dist/app/assets/calculator-CAgtsVuH.js.map +0 -1
  383. package/dist/app/assets/check-B5h9hATV.js +0 -2
  384. package/dist/app/assets/check-B5h9hATV.js.map +0 -1
  385. package/dist/app/assets/chevron-down-By2Ts8dG.js +0 -2
  386. package/dist/app/assets/chevron-down-By2Ts8dG.js.map +0 -1
  387. package/dist/app/assets/circle-check-DaJ6APMi.js +0 -2
  388. package/dist/app/assets/circle-check-DaJ6APMi.js.map +0 -1
  389. package/dist/app/assets/clipboard-copy-IDfWU9SE.js +0 -2
  390. package/dist/app/assets/clipboard-copy-IDfWU9SE.js.map +0 -1
  391. package/dist/app/assets/copy-KSn4Rc2b.js +0 -2
  392. package/dist/app/assets/copy-KSn4Rc2b.js.map +0 -1
  393. package/dist/app/assets/crop-C9hwiw0i.js +0 -2
  394. package/dist/app/assets/crop-C9hwiw0i.js.map +0 -1
  395. package/dist/app/assets/download-eqwxO8bs.js +0 -2
  396. package/dist/app/assets/download-eqwxO8bs.js.map +0 -1
  397. package/dist/app/assets/eye-Dg61f0nU.js +0 -2
  398. package/dist/app/assets/eye-Dg61f0nU.js.map +0 -1
  399. package/dist/app/assets/file-text-BQPKCil3.js +0 -2
  400. package/dist/app/assets/file-text-BQPKCil3.js.map +0 -1
  401. package/dist/app/assets/folder-tree-9hq6oigy.js +0 -2
  402. package/dist/app/assets/folder-tree-9hq6oigy.js.map +0 -1
  403. package/dist/app/assets/grid-3x3-BHXRyOIx.js +0 -2
  404. package/dist/app/assets/grid-3x3-BHXRyOIx.js.map +0 -1
  405. package/dist/app/assets/index-my6BmN7T.js +0 -204
  406. package/dist/app/assets/index-my6BmN7T.js.map +0 -1
  407. package/dist/app/assets/index-rv91vbLH.css +0 -1
  408. package/dist/app/assets/layout-grid-DDQvnEgx.js +0 -2
  409. package/dist/app/assets/layout-grid-DDQvnEgx.js.map +0 -1
  410. package/dist/app/assets/rocket-0KMviRpJ.js +0 -2
  411. package/dist/app/assets/rocket-0KMviRpJ.js.map +0 -1
  412. package/dist/app/assets/shield-check-BvKEQ2hc.js +0 -2
  413. package/dist/app/assets/shield-check-BvKEQ2hc.js.map +0 -1
  414. package/dist/app/assets/signIn-Ckla1_0O.js +0 -2
  415. package/dist/app/assets/signIn-Ckla1_0O.js.map +0 -1
  416. package/dist/app/assets/smartphone-I0w1b2DV.js +0 -2
  417. package/dist/app/assets/smartphone-I0w1b2DV.js.map +0 -1
  418. package/dist/app/assets/terminal-CLpUSQqd.js +0 -2
  419. package/dist/app/assets/terminal-CLpUSQqd.js.map +0 -1
  420. package/dist/app/assets/triangle-alert-w7TZ0yy2.js +0 -2
  421. package/dist/app/assets/triangle-alert-w7TZ0yy2.js.map +0 -1
  422. package/dist/app/assets/useAuth-N3hsUaDj.js +0 -4
  423. package/dist/app/assets/useAuth-N3hsUaDj.js.map +0 -1
  424. package/dist/app/assets/users-DsQdkuR3.js +0 -2
  425. package/dist/app/assets/users-DsQdkuR3.js.map +0 -1
  426. package/dist/assets/AgentCli-xKYtzL3B.js +0 -17
  427. package/dist/assets/AgentCli-xKYtzL3B.js.map +0 -1
  428. package/dist/assets/App-C1cNw_fn.js +0 -13
  429. package/dist/assets/App-C1cNw_fn.js.map +0 -1
  430. package/dist/assets/App-oQfE_p3A.css +0 -1
  431. package/dist/assets/AppReviewAso-CaIT-L7Z.js +0 -4
  432. package/dist/assets/AppReviewAso-CaIT-L7Z.js.map +0 -1
  433. package/dist/assets/Cancelled-Dmw7PTD-.js +0 -2
  434. package/dist/assets/Cancelled-Dmw7PTD-.js.map +0 -1
  435. package/dist/assets/CopyButton-CPRHmu8l.js +0 -2
  436. package/dist/assets/CopyButton-CPRHmu8l.js.map +0 -1
  437. package/dist/assets/DesignPartner-Ckp1GhNv.js +0 -4
  438. package/dist/assets/DesignPartner-Ckp1GhNv.js.map +0 -1
  439. package/dist/assets/FastlaneScreenshots-CB-zv5Us.js +0 -100
  440. package/dist/assets/FastlaneScreenshots-CB-zv5Us.js.map +0 -1
  441. package/dist/assets/FirstExport-RXbvVQdK.js +0 -6
  442. package/dist/assets/FirstExport-RXbvVQdK.js.map +0 -1
  443. package/dist/assets/FitPanel-ic91y-49.js +0 -2
  444. package/dist/assets/FitPanel-ic91y-49.js.map +0 -1
  445. package/dist/assets/FivePanelFramework-BZKNcycb.js +0 -62
  446. package/dist/assets/FivePanelFramework-BZKNcycb.js.map +0 -1
  447. package/dist/assets/ForgotPassword-CKOfAvWk.js +0 -2
  448. package/dist/assets/ForgotPassword-CKOfAvWk.js.map +0 -1
  449. package/dist/assets/Landing-D0cuDDUk.js +0 -2
  450. package/dist/assets/Landing-D0cuDDUk.js.map +0 -1
  451. package/dist/assets/LanguageSwitcher-BrToLEgF.js +0 -2
  452. package/dist/assets/LanguageSwitcher-BrToLEgF.js.map +0 -1
  453. package/dist/assets/Legal-Cm-hVzjY.js +0 -2
  454. package/dist/assets/Legal-Cm-hVzjY.js.map +0 -1
  455. package/dist/assets/NotFound-B0I6I440.js +0 -2
  456. package/dist/assets/NotFound-B0I6I440.js.map +0 -1
  457. package/dist/assets/Pricing-p-NIjjtK.js +0 -29
  458. package/dist/assets/Pricing-p-NIjjtK.js.map +0 -1
  459. package/dist/assets/Privacy-BhfPkK0y.js +0 -2
  460. package/dist/assets/Privacy-BhfPkK0y.js.map +0 -1
  461. package/dist/assets/Proof-D-7QbTGX.js +0 -20
  462. package/dist/assets/Proof-D-7QbTGX.js.map +0 -1
  463. package/dist/assets/Security-DFafJQIT.js +0 -2
  464. package/dist/assets/Security-DFafJQIT.js.map +0 -1
  465. package/dist/assets/SignIn--6nNsUCm.js +0 -2
  466. package/dist/assets/SignIn--6nNsUCm.js.map +0 -1
  467. package/dist/assets/SignUp-yh5ydmFf.js +0 -2
  468. package/dist/assets/SignUp-yh5ydmFf.js.map +0 -1
  469. package/dist/assets/SiteHeader-NTK-cM9O.js +0 -2
  470. package/dist/assets/SiteHeader-NTK-cM9O.js.map +0 -1
  471. package/dist/assets/StickyMobileCta-DVXAyhaH.js +0 -2
  472. package/dist/assets/StickyMobileCta-DVXAyhaH.js.map +0 -1
  473. package/dist/assets/StoreAssetsPipeline-Cbs1bNK5.js +0 -6
  474. package/dist/assets/StoreAssetsPipeline-Cbs1bNK5.js.map +0 -1
  475. package/dist/assets/Success-C3n0m1XU.js +0 -2
  476. package/dist/assets/Success-C3n0m1XU.js.map +0 -1
  477. package/dist/assets/Terms-C72ybAwA.js +0 -2
  478. package/dist/assets/Terms-C72ybAwA.js.map +0 -1
  479. package/dist/assets/ToolGuardrailsPanel-meKxUeSB.js +0 -2
  480. package/dist/assets/ToolGuardrailsPanel-meKxUeSB.js.map +0 -1
  481. package/dist/assets/ToolsIndex-CnvNTvyW.js +0 -6
  482. package/dist/assets/ToolsIndex-CnvNTvyW.js.map +0 -1
  483. package/dist/assets/WorkloadCalculator-CK4qVUcQ.js +0 -5
  484. package/dist/assets/WorkloadCalculator-CK4qVUcQ.js.map +0 -1
  485. package/dist/assets/arrow-right-Dglia5EE.js +0 -2
  486. package/dist/assets/arrow-right-Dglia5EE.js.map +0 -1
  487. package/dist/assets/calculator-CAgtsVuH.js +0 -2
  488. package/dist/assets/calculator-CAgtsVuH.js.map +0 -1
  489. package/dist/assets/check-B5h9hATV.js +0 -2
  490. package/dist/assets/check-B5h9hATV.js.map +0 -1
  491. package/dist/assets/chevron-down-By2Ts8dG.js +0 -2
  492. package/dist/assets/chevron-down-By2Ts8dG.js.map +0 -1
  493. package/dist/assets/circle-check-DaJ6APMi.js +0 -2
  494. package/dist/assets/circle-check-DaJ6APMi.js.map +0 -1
  495. package/dist/assets/clipboard-copy-IDfWU9SE.js +0 -2
  496. package/dist/assets/clipboard-copy-IDfWU9SE.js.map +0 -1
  497. package/dist/assets/copy-KSn4Rc2b.js +0 -2
  498. package/dist/assets/copy-KSn4Rc2b.js.map +0 -1
  499. package/dist/assets/crop-C9hwiw0i.js +0 -2
  500. package/dist/assets/crop-C9hwiw0i.js.map +0 -1
  501. package/dist/assets/download-eqwxO8bs.js +0 -2
  502. package/dist/assets/download-eqwxO8bs.js.map +0 -1
  503. package/dist/assets/eye-Dg61f0nU.js +0 -2
  504. package/dist/assets/eye-Dg61f0nU.js.map +0 -1
  505. package/dist/assets/file-text-BQPKCil3.js +0 -2
  506. package/dist/assets/file-text-BQPKCil3.js.map +0 -1
  507. package/dist/assets/folder-tree-9hq6oigy.js +0 -2
  508. package/dist/assets/folder-tree-9hq6oigy.js.map +0 -1
  509. package/dist/assets/grid-3x3-BHXRyOIx.js +0 -2
  510. package/dist/assets/grid-3x3-BHXRyOIx.js.map +0 -1
  511. package/dist/assets/index-my6BmN7T.js +0 -204
  512. package/dist/assets/index-my6BmN7T.js.map +0 -1
  513. package/dist/assets/index-rv91vbLH.css +0 -1
  514. package/dist/assets/layout-grid-DDQvnEgx.js +0 -2
  515. package/dist/assets/layout-grid-DDQvnEgx.js.map +0 -1
  516. package/dist/assets/rocket-0KMviRpJ.js +0 -2
  517. package/dist/assets/rocket-0KMviRpJ.js.map +0 -1
  518. package/dist/assets/shield-check-BvKEQ2hc.js +0 -2
  519. package/dist/assets/shield-check-BvKEQ2hc.js.map +0 -1
  520. package/dist/assets/signIn-Ckla1_0O.js +0 -2
  521. package/dist/assets/signIn-Ckla1_0O.js.map +0 -1
  522. package/dist/assets/smartphone-I0w1b2DV.js +0 -2
  523. package/dist/assets/smartphone-I0w1b2DV.js.map +0 -1
  524. package/dist/assets/terminal-CLpUSQqd.js +0 -2
  525. package/dist/assets/terminal-CLpUSQqd.js.map +0 -1
  526. package/dist/assets/triangle-alert-w7TZ0yy2.js +0 -2
  527. package/dist/assets/triangle-alert-w7TZ0yy2.js.map +0 -1
  528. package/dist/assets/useAuth-N3hsUaDj.js +0 -4
  529. package/dist/assets/useAuth-N3hsUaDj.js.map +0 -1
  530. package/dist/assets/users-DsQdkuR3.js +0 -2
  531. package/dist/assets/users-DsQdkuR3.js.map +0 -1
@@ -0,0 +1,14 @@
1
+ const __vite__mapDeps=(i,m=__vite__mapDeps,d=(m.f||(m.f=["assets/jszip.min-XyfP2hUJ.js","assets/chunk-BHe-jwch.js"])))=>i.map(i=>d[i]);
2
+ import{r as e,t}from"./chunk-BHe-jwch.js";import{S as n,a as r,b as i,n as a,s as o,t as s,x as c,y as l}from"./index-D7D6ZRCW.js";import{a as u,i as d,n as f,o as p,r as m,s as h,t as g}from"./LanguageSwitcher-hFv9zl1u.js";import{n as _,t as v}from"./circle-check-X08qqy40.js";import{t as y}from"./check-Fm2iQO64.js";import{t as b}from"./chevron-down-BIXHKpnf.js";import{n as x,r as S,t as C}from"./CopyButton-BFCx6EPg.js";import{t as w}from"./copy-KD-LYJ0z.js";import{n as T,t as E}from"./lock-Di7P18Ts.js";import{t as D}from"./download-BXzoc-Y3.js";import{t as O}from"./file-text-CU-ETLz1.js";import{t as k}from"./grid-3x3-cWuhGQfz.js";import{t as A}from"./smartphone-DXKiqu57.js";import{t as j}from"./terminal-J0iyJTv2.js";import{t as M}from"./triangle-alert-BA0HP6zD.js";import{t as ee}from"./users-C-fz7pbn.js";import{t as te}from"./useAuth-CoS4r8yi.js";import"./stripeClient-CuZgvzca.js";import{a as ne,c as re,d as ie,f as N,i as ae,l as oe,o as se,s as ce,t as P,u as le}from"./apiClient-3WVm94VW.js";var F=h(`align-end-horizontal`,[[`rect`,{width:`6`,height:`16`,x:`4`,y:`2`,rx:`2`,key:`z5wdxg`}],[`rect`,{width:`6`,height:`9`,x:`14`,y:`9`,rx:`2`,key:`um7a8w`}],[`path`,{d:`M22 22H2`,key:`19qnx5`}]]),ue=h(`align-vertical-space-around`,[[`rect`,{width:`10`,height:`6`,x:`7`,y:`9`,rx:`2`,key:`b1zbii`}],[`path`,{d:`M22 20H2`,key:`1p1f7z`}],[`path`,{d:`M22 4H2`,key:`1b7qnq`}]]),de=h(`aperture`,[[`circle`,{cx:`12`,cy:`12`,r:`10`,key:`1mglay`}],[`path`,{d:`m14.31 8 5.74 9.94`,key:`1y6ab4`}],[`path`,{d:`M9.69 8h11.48`,key:`1wxppr`}],[`path`,{d:`m7.38 12 5.74-9.94`,key:`1grp0k`}],[`path`,{d:`M9.69 16 3.95 6.06`,key:`libnyf`}],[`path`,{d:`M14.31 16H2.83`,key:`x5fava`}],[`path`,{d:`m16.62 12-5.74 9.94`,key:`1vwawt`}]]),fe=h(`award`,[[`path`,{d:`m15.477 12.89 1.515 8.526a.5.5 0 0 1-.81.47l-3.58-2.687a1 1 0 0 0-1.197 0l-3.586 2.686a.5.5 0 0 1-.81-.469l1.514-8.526`,key:`1yiouv`}],[`circle`,{cx:`12`,cy:`8`,r:`6`,key:`1vp47v`}]]),pe=h(`box`,[[`path`,{d:`M21 8a2 2 0 0 0-1-1.73l-7-4a2 2 0 0 0-2 0l-7 4A2 2 0 0 0 3 8v8a2 2 0 0 0 1 1.73l7 4a2 2 0 0 0 2 0l7-4A2 2 0 0 0 21 16Z`,key:`hh9hay`}],[`path`,{d:`m3.3 7 8.7 5 8.7-5`,key:`g66t2b`}],[`path`,{d:`M12 22V12`,key:`d0xqtd`}]]),me=h(`cloud-download`,[[`path`,{d:`M12 13v8l-4-4`,key:`1f5nwf`}],[`path`,{d:`m12 21 4-4`,key:`1lfcce`}],[`path`,{d:`M4.393 15.269A7 7 0 1 1 15.71 8h1.79a4.5 4.5 0 0 1 2.436 8.284`,key:`ui1hmy`}]]),he=h(`cloud-upload`,[[`path`,{d:`M12 13v8`,key:`1l5pq0`}],[`path`,{d:`M4 14.899A7 7 0 1 1 15.71 8h1.79a4.5 4.5 0 0 1 2.5 8.242`,key:`1pljnt`}],[`path`,{d:`m8 17 4-4 4 4`,key:`1quai1`}]]),I=h(`cloud`,[[`path`,{d:`M17.5 19H9a7 7 0 1 1 6.71-9h1.79a4.5 4.5 0 1 1 0 9Z`,key:`p7xjir`}]]),ge=h(`crown`,[[`path`,{d:`M11.562 3.266a.5.5 0 0 1 .876 0L15.39 8.87a1 1 0 0 0 1.516.294L21.183 5.5a.5.5 0 0 1 .798.519l-2.834 10.246a1 1 0 0 1-.956.734H5.81a1 1 0 0 1-.957-.734L2.02 6.02a.5.5 0 0 1 .798-.519l4.276 3.664a1 1 0 0 0 1.516-.294z`,key:`1vdc57`}],[`path`,{d:`M5 21h14`,key:`11awu3`}]]),_e=h(`database`,[[`ellipse`,{cx:`12`,cy:`5`,rx:`9`,ry:`3`,key:`msslwz`}],[`path`,{d:`M3 5V19A9 3 0 0 0 21 19V5`,key:`1wlel7`}],[`path`,{d:`M3 12A9 3 0 0 0 21 12`,key:`mv7ke4`}]]),ve=h(`file-braces`,[[`path`,{d:`M6 22a2 2 0 0 1-2-2V4a2 2 0 0 1 2-2h8a2.4 2.4 0 0 1 1.704.706l3.588 3.588A2.4 2.4 0 0 1 20 8v12a2 2 0 0 1-2 2z`,key:`1oefj6`}],[`path`,{d:`M14 2v5a1 1 0 0 0 1 1h5`,key:`wfsgrz`}],[`path`,{d:`M10 12a1 1 0 0 0-1 1v1a1 1 0 0 1-1 1 1 1 0 0 1 1 1v1a1 1 0 0 0 1 1`,key:`1oajmo`}],[`path`,{d:`M14 18a1 1 0 0 0 1-1v-1a1 1 0 0 1 1-1 1 1 0 0 1-1-1v-1a1 1 0 0 0-1-1`,key:`mpwhp6`}]]),ye=h(`hard-drive`,[[`path`,{d:`M10 16h.01`,key:`1bzywj`}],[`path`,{d:`M2.212 11.577a2 2 0 0 0-.212.896V18a2 2 0 0 0 2 2h16a2 2 0 0 0 2-2v-5.527a2 2 0 0 0-.212-.896L18.55 5.11A2 2 0 0 0 16.76 4H7.24a2 2 0 0 0-1.79 1.11z`,key:`18tbho`}],[`path`,{d:`M21.946 12.013H2.054`,key:`zqlbp7`}],[`path`,{d:`M6 16h.01`,key:`1pmjb7`}]]),be=h(`image`,[[`rect`,{width:`18`,height:`18`,x:`3`,y:`3`,rx:`2`,ry:`2`,key:`1m3agn`}],[`circle`,{cx:`9`,cy:`9`,r:`2`,key:`af1f0g`}],[`path`,{d:`m21 15-3.086-3.086a2 2 0 0 0-2.828 0L6 21`,key:`1xmnt7`}]]),xe=h(`info`,[[`circle`,{cx:`12`,cy:`12`,r:`10`,key:`1mglay`}],[`path`,{d:`M12 16v-4`,key:`1dtifu`}],[`path`,{d:`M12 8h.01`,key:`e9boi3`}]]),Se=h(`layout-template`,[[`rect`,{width:`18`,height:`7`,x:`3`,y:`3`,rx:`1`,key:`f1a2em`}],[`rect`,{width:`9`,height:`7`,x:`3`,y:`14`,rx:`1`,key:`jqznyg`}],[`rect`,{width:`5`,height:`7`,x:`16`,y:`14`,rx:`1`,key:`q5h2i8`}]]),Ce=h(`loader-circle`,[[`path`,{d:`M21 12a9 9 0 1 1-6.219-8.56`,key:`13zald`}]]),we=h(`log-out`,[[`path`,{d:`m16 17 5-5-5-5`,key:`1bji2h`}],[`path`,{d:`M21 12H9`,key:`dn1m92`}],[`path`,{d:`M9 21H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2h4`,key:`1uf3rs`}]]),Te=h(`monitor`,[[`rect`,{width:`20`,height:`14`,x:`2`,y:`3`,rx:`2`,key:`48i651`}],[`line`,{x1:`8`,x2:`16`,y1:`21`,y2:`21`,key:`1svkeh`}],[`line`,{x1:`12`,x2:`12`,y1:`17`,y2:`21`,key:`vw1qmm`}]]),Ee=h(`paint-bucket`,[[`path`,{d:`M11 7 6 2`,key:`1jwth8`}],[`path`,{d:`M18.992 12H2.041`,key:`xw1gg`}],[`path`,{d:`M21.145 18.38A3.34 3.34 0 0 1 20 16.5a3.3 3.3 0 0 1-1.145 1.88c-.575.46-.855 1.02-.855 1.595A2 2 0 0 0 20 22a2 2 0 0 0 2-2.025c0-.58-.285-1.13-.855-1.595`,key:`1nkol4`}],[`path`,{d:`m8.5 4.5 2.148-2.148a1.205 1.205 0 0 1 1.704 0l7.296 7.296a1.205 1.205 0 0 1 0 1.704l-7.592 7.592a3.615 3.615 0 0 1-5.112 0l-3.888-3.888a3.615 3.615 0 0 1 0-5.112L5.67 7.33`,key:`1nk1rd`}]]),De=h(`pen-line`,[[`path`,{d:`M13 21h8`,key:`1jsn5i`}],[`path`,{d:`M21.174 6.812a1 1 0 0 0-3.986-3.987L3.842 16.174a2 2 0 0 0-.5.83l-1.321 4.352a.5.5 0 0 0 .623.622l4.353-1.32a2 2 0 0 0 .83-.497z`,key:`1a8usu`}]]),Oe=h(`play`,[[`path`,{d:`M5 5a2 2 0 0 1 3.008-1.728l11.997 6.998a2 2 0 0 1 .003 3.458l-12 7A2 2 0 0 1 5 19z`,key:`10ikf1`}]]),ke=h(`plus`,[[`path`,{d:`M5 12h14`,key:`1ays0h`}],[`path`,{d:`M12 5v14`,key:`s699le`}]]),Ae=h(`refresh-cw`,[[`path`,{d:`M3 12a9 9 0 0 1 9-9 9.75 9.75 0 0 1 6.74 2.74L21 8`,key:`v9h5vc`}],[`path`,{d:`M21 3v5h-5`,key:`1q7to0`}],[`path`,{d:`M21 12a9 9 0 0 1-9 9 9.75 9.75 0 0 1-6.74-2.74L3 16`,key:`3uifl3`}],[`path`,{d:`M8 16H3v5`,key:`1cv678`}]]),je=h(`rotate-ccw`,[[`path`,{d:`M3 12a9 9 0 1 0 9-9 9.75 9.75 0 0 0-6.74 2.74L3 8`,key:`1357e3`}],[`path`,{d:`M3 3v5h5`,key:`1xhq8a`}]]),Me=h(`rotate-cw`,[[`path`,{d:`M21 12a9 9 0 1 1-9-9c2.52 0 4.93 1 6.74 2.74L21 8`,key:`1p45f6`}],[`path`,{d:`M21 3v5h-5`,key:`1q7to0`}]]),Ne=h(`save`,[[`path`,{d:`M15.2 3a2 2 0 0 1 1.4.6l3.8 3.8a2 2 0 0 1 .6 1.4V19a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2V5a2 2 0 0 1 2-2z`,key:`1c8476`}],[`path`,{d:`M17 21v-7a1 1 0 0 0-1-1H8a1 1 0 0 0-1 1v7`,key:`1ydtos`}],[`path`,{d:`M7 3v4a1 1 0 0 0 1 1h7`,key:`t51u73`}]]),Pe=h(`search`,[[`path`,{d:`m21 21-4.34-4.34`,key:`14j7rj`}],[`circle`,{cx:`11`,cy:`11`,r:`8`,key:`4ej97u`}]]),Fe=h(`settings`,[[`path`,{d:`M9.671 4.136a2.34 2.34 0 0 1 4.659 0 2.34 2.34 0 0 0 3.319 1.915 2.34 2.34 0 0 1 2.33 4.033 2.34 2.34 0 0 0 0 3.831 2.34 2.34 0 0 1-2.33 4.033 2.34 2.34 0 0 0-3.319 1.915 2.34 2.34 0 0 1-4.659 0 2.34 2.34 0 0 0-3.32-1.915 2.34 2.34 0 0 1-2.33-4.033 2.34 2.34 0 0 0 0-3.831A2.34 2.34 0 0 1 6.35 6.051a2.34 2.34 0 0 0 3.319-1.915`,key:`1i5ecw`}],[`circle`,{cx:`12`,cy:`12`,r:`3`,key:`1v7zrd`}]]),Ie=h(`share-2`,[[`circle`,{cx:`18`,cy:`5`,r:`3`,key:`gq8acd`}],[`circle`,{cx:`6`,cy:`12`,r:`3`,key:`w7nqdw`}],[`circle`,{cx:`18`,cy:`19`,r:`3`,key:`1xt0gg`}],[`line`,{x1:`8.59`,x2:`15.42`,y1:`13.51`,y2:`17.49`,key:`47mynk`}],[`line`,{x1:`15.41`,x2:`8.59`,y1:`6.51`,y2:`10.49`,key:`1n3mei`}]]),Le=h(`sparkles`,[[`path`,{d:`M11.017 2.814a1 1 0 0 1 1.966 0l1.051 5.558a2 2 0 0 0 1.594 1.594l5.558 1.051a1 1 0 0 1 0 1.966l-5.558 1.051a2 2 0 0 0-1.594 1.594l-1.051 5.558a1 1 0 0 1-1.966 0l-1.051-5.558a2 2 0 0 0-1.594-1.594l-5.558-1.051a1 1 0 0 1 0-1.966l5.558-1.051a2 2 0 0 0 1.594-1.594z`,key:`1s2grr`}],[`path`,{d:`M20 2v4`,key:`1rf3ol`}],[`path`,{d:`M22 4h-4`,key:`gwowj6`}],[`circle`,{cx:`4`,cy:`20`,r:`2`,key:`6kqj1y`}]]),Re=h(`star`,[[`path`,{d:`M11.525 2.295a.53.53 0 0 1 .95 0l2.31 4.679a2.123 2.123 0 0 0 1.595 1.16l5.166.756a.53.53 0 0 1 .294.904l-3.736 3.638a2.123 2.123 0 0 0-.611 1.878l.882 5.14a.53.53 0 0 1-.771.56l-4.618-2.428a2.122 2.122 0 0 0-1.973 0L6.396 21.01a.53.53 0 0 1-.77-.56l.881-5.139a2.122 2.122 0 0 0-.611-1.879L2.16 9.795a.53.53 0 0 1 .294-.906l5.165-.755a2.122 2.122 0 0 0 1.597-1.16z`,key:`r04s7s`}]]),ze=h(`trash-2`,[[`path`,{d:`M10 11v6`,key:`nco0om`}],[`path`,{d:`M14 11v6`,key:`outv1u`}],[`path`,{d:`M19 6v14a2 2 0 0 1-2 2H7a2 2 0 0 1-2-2V6`,key:`miytrc`}],[`path`,{d:`M3 6h18`,key:`d0wm0j`}],[`path`,{d:`M8 6V4a2 2 0 0 1 2-2h4a2 2 0 0 1 2 2v2`,key:`e791ji`}]]),Be=h(`upload`,[[`path`,{d:`M12 3v12`,key:`1x0j5s`}],[`path`,{d:`m17 8-5-5-5 5`,key:`7q97r8`}],[`path`,{d:`M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4`,key:`ih7n3h`}]]),Ve=h(`watch`,[[`path`,{d:`M12 10v2.2l1.6 1`,key:`n3r21l`}],[`path`,{d:`m16.13 7.66-.81-4.05a2 2 0 0 0-2-1.61h-2.68a2 2 0 0 0-2 1.61l-.78 4.05`,key:`18k57s`}],[`path`,{d:`m7.88 16.36.8 4a2 2 0 0 0 2 1.61h2.72a2 2 0 0 0 2-1.61l.81-4.05`,key:`16ny36`}],[`circle`,{cx:`12`,cy:`12`,r:`6`,key:`1vlfrh`}]]),He=h(`zoom-in`,[[`circle`,{cx:`11`,cy:`11`,r:`8`,key:`4ej97u`}],[`line`,{x1:`21`,x2:`16.65`,y1:`21`,y2:`16.65`,key:`13gj7c`}],[`line`,{x1:`11`,x2:`11`,y1:`8`,y2:`14`,key:`1vmskp`}],[`line`,{x1:`8`,x2:`14`,y1:`11`,y2:`11`,key:`durymu`}]]),L=e(n(),1),R=i(),Ue=({user:e,isPro:t,onUpgrade:n,onManageSubscription:r,onSignOut:i,isPortalLoading:a})=>{let{t:o}=c(),[s,l]=(0,L.useState)(!1),u=(0,L.useRef)(null);(0,L.useEffect)(()=>{let e=e=>{u.current&&!u.current.contains(e.target)&&l(!1)};return document.addEventListener(`mousedown`,e),()=>document.removeEventListener(`mousedown`,e)},[]);let d=(e?.email||e?.username||`?`).charAt(0).toUpperCase();return(0,R.jsxs)(`div`,{className:`relative`,ref:u,children:[(0,R.jsxs)(`button`,{onClick:()=>l(!s),className:`flex items-center gap-2 p-1 pl-2 pr-1 rounded-full border border-slate-200 hover:bg-slate-50 transition-colors`,title:e?.email||e?.username,children:[(0,R.jsx)(`div`,{className:`w-8 h-8 rounded-full bg-slate-800 text-white flex items-center justify-center text-sm font-bold`,children:d}),(0,R.jsx)(b,{size:14,className:`text-slate-400 mr-1`})]}),s&&(0,R.jsxs)(`div`,{className:`absolute right-0 top-full mt-2 w-64 bg-white rounded-xl shadow-xl border border-slate-100 overflow-hidden z-50 animate-in fade-in slide-in-from-top-2 duration-200`,children:[(0,R.jsxs)(`div`,{className:`px-4 py-3 border-b border-slate-100 bg-slate-50/50`,children:[(0,R.jsx)(`p`,{className:`text-xs text-slate-500`,children:o(`app.userMenu.signedInAs`)}),(0,R.jsx)(`p`,{className:`text-sm font-bold text-slate-800 truncate`,title:e?.email,children:e?.email||e?.username})]}),(0,R.jsxs)(`div`,{className:`p-1`,children:[!t&&(0,R.jsxs)(`button`,{onClick:()=>{l(!1),n?.()},className:`w-full flex items-center gap-2 px-3 py-2 text-sm text-amber-700 hover:bg-amber-50 rounded-lg transition-colors`,children:[(0,R.jsx)(ge,{size:16,className:`text-amber-500`}),o(`app.header.upgrade`)]}),t&&(0,R.jsxs)(`button`,{onClick:()=>{l(!1),r()},disabled:a,className:`w-full flex items-center gap-2 px-3 py-2 text-sm text-slate-700 hover:bg-slate-50 rounded-lg transition-colors disabled:opacity-50`,children:[(0,R.jsx)(T,{size:16,className:`text-slate-400`}),o(`app.header.manage`)]}),t&&(0,R.jsxs)(`p`,{className:`px-3 pb-2 text-[11px] text-slate-500 leading-snug`,children:[o(`consent.billing`),` `,(0,R.jsx)(`a`,{href:`/terms`,className:`underline hover:text-slate-700`,target:`_blank`,rel:`noreferrer`,children:o(`landing.footer.terms`)}),` / `,(0,R.jsx)(`a`,{href:`/privacy`,className:`underline hover:text-slate-700`,target:`_blank`,rel:`noreferrer`,children:o(`landing.footer.privacy`)}),` / `,(0,R.jsx)(`a`,{href:`/legal`,className:`underline hover:text-slate-700`,target:`_blank`,rel:`noreferrer`,children:o(`landing.footer.legal`)})]}),(0,R.jsxs)(`button`,{onClick:()=>{l(!1),i()},className:`w-full flex items-center gap-2 px-3 py-2 text-sm text-red-600 hover:bg-red-50 rounded-lg transition-colors`,children:[(0,R.jsx)(we,{size:16}),o(`auth.actions.signOut`)]})]})]})]})},z={iphone69:{name:`iPhone 6.9" (16 Pro Max)`,storeLabel:`6.9-inch Display`,modelLabel:`iPhone 16 Pro Max`,width:1290,height:2796,type:`iphone-island`,radius:55,bezel:8,group:`iPhone`},iphone65:{name:`iPhone 6.5" (XS Max)`,storeLabel:`6.5-inch Display`,modelLabel:`iPhone XS Max`,width:1284,height:2778,type:`iphone-notch`,radius:50,bezel:10,group:`iPhone`},iphone63:{name:`iPhone 6.3" (16 Pro)`,storeLabel:`6.3-inch Display`,modelLabel:`iPhone 16 Pro`,width:1179,height:2556,type:`iphone-island`,radius:55,bezel:8,group:`iPhone`},iphone61:{name:`iPhone 13 Pro`,storeLabel:`6.1-inch Display`,modelLabel:`iPhone 13 Pro`,width:1170,height:2532,type:`iphone-notch`,radius:48,bezel:10,group:`iPhone`},iphone55:{name:`iPhone 5.5" (8 Plus)`,storeLabel:`5.5-inch Display`,modelLabel:`iPhone 8 Plus`,width:1242,height:2208,type:`iphone-classic-round`,radius:36,bezel:4,group:`iPhone Classic`},iphone47:{name:`iPhone 4.7" (SE)`,storeLabel:`4.7-inch Display`,modelLabel:`iPhone SE`,width:750,height:1334,type:`iphone-classic-round`,radius:30,bezel:4,group:`iPhone Classic`},ipad13:{name:`iPad Pro 13" (M4)`,storeLabel:`13-inch Display`,modelLabel:`iPad Pro (M4)`,width:2064,height:2752,type:`ipad-modern`,radius:24,bezel:12,group:`iPad`},ipad129old:{name:`iPad Pro 12.9" (2nd)`,storeLabel:`12.9-inch Display`,modelLabel:`iPad Pro (2nd gen)`,width:2048,height:2732,type:`ipad-classic`,radius:18,bezel:5,group:`iPad`},ipad11:{name:`iPad 11" (Pro/Air)`,storeLabel:`11-inch Display`,modelLabel:`iPad Pro/Air`,width:1488,height:2266,type:`ipad-modern`,radius:20,bezel:12,group:`iPad`},watch:{name:`Apple Watch`,storeLabel:`Apple Watch`,modelLabel:``,width:422,height:514,type:`watch`,radius:40,bezel:6,group:`Watch`},pixel8pro:{name:`Pixel 8 Pro`,storeLabel:`Android Phone`,modelLabel:`Pixel 8 Pro`,width:1344,height:2992,type:`android-punchhole`,radius:42,bezel:8,group:`Android`},pixel8:{name:`Pixel 8`,storeLabel:`Android Phone`,modelLabel:`Pixel 8`,width:1080,height:2400,type:`android-punchhole`,radius:48,bezel:9,group:`Android`},galaxy24ultra:{name:`Galaxy S24 Ultra`,storeLabel:`Android Phone`,modelLabel:`Galaxy S24 Ultra`,width:1440,height:3120,type:`android-punchhole`,radius:12,bezel:6,group:`Android`},pixeltablet:{name:`Pixel Tablet`,storeLabel:`Android Tablet`,modelLabel:`Pixel Tablet`,width:2560,height:1600,type:`android-tablet`,radius:28,bezel:16,group:`Android Tablet`}},We={iPhone:[`iphone69`,`iphone65`,`iphone63`,`iphone61`],"iPhone Classic":[`iphone55`,`iphone47`],iPad:[`ipad13`,`ipad129old`,`ipad11`],Android:[`pixel8pro`,`pixel8`,`galaxy24ultra`],"Android Tablet":[`pixeltablet`],Watch:[`watch`]},Ge={black:`#1a1a1a`,silver:`#e3e3e3`,titanium:`#8a8a8a`,blue:`#2f3c4e`,gold:`#f9e5c9`},Ke=[`#ef4444`,`#f97316`,`#f59e0b`,`#84cc16`,`#10b981`,`#06b6d4`,`#3b82f6`,`#6366f1`,`#8b5cf6`,`#d946ef`,`#f43f5e`,`#0f172a`,`#ffffff`],qe=[{id:`minimal_dark`,name:`Minimal Dark`,thumbnail:`/templates/minimal_dark.png`,tags:{layout:`Top`,font:`Inter`,bg:`Dark`},settings:{bgType:`solid`,bgColor:`#0f172a`,textColor:`#f8fafc`,layoutMode:`top`,topSpacing:15,deviceScale:.9,frameColor:`titanium`,selectedFont:`Inter`,badgeType:`download`}},{id:`clean_blue`,name:`Clean Blue`,thumbnail:`/templates/clean_blue.png`,tags:{layout:`Top`,font:`Inter`,bg:`Blue`},settings:{bgType:`solid`,bgColor:`#eff6ff`,textColor:`#1e3a8a`,layoutMode:`top`,topSpacing:10,deviceScale:1,frameColor:`blue`,selectedFont:`Inter`,badgeType:`stars`}},{id:`vibrant_gradient`,name:`Vibrant Pop`,thumbnail:`/templates/vibrant_gradient.png`,tags:{layout:`Bottom`,font:`Montserrat`,bg:`Gradient`},settings:{bgType:`gradient`,gradientStart:`#f472b6`,gradientEnd:`#fdba74`,gradientAngle:135,textColor:`#ffffff`,layoutMode:`bottom`,topSpacing:8,deviceScale:1.1,frameColor:`silver`,selectedFont:`Montserrat`,badgeType:`award`}},{id:`split_modern`,name:`Split Modern`,thumbnail:`/templates/split_modern.png`,tags:{layout:`Split`,font:`Roboto`,bg:`Light`},settings:{bgType:`solid`,bgColor:`#f1f5f9`,textColor:`#334155`,layoutMode:`split`,topSpacing:0,deviceScale:1,frameColor:`black`,selectedFont:`Roboto`,badgeType:`googleplay`}}],Je={"iphone-island":{notch:{type:`dynamicIsland`,width:`30%`,height:`3.5%`,top:`2.5%`,borderRadius:`20px`}},"iphone-notch":{notch:{type:`notch`,width:`40%`,height:`3.5%`,top:`10px`,borderRadius:`0 0 20px 20px`}},"iphone-classic-round":{homeButton:{bottom:`5%`,width:`12%`,height:`12%`,borderWidth:`2px`}},"android-punchhole":{notch:{type:`punchhole`,width:`16px`,height:`16px`,top:`15px`}},"ipad-modern":{},"ipad-classic":{homeButton:{bottom:`5%`,width:`4%`,height:`4%`,borderWidth:`1px`}},"android-tablet":{},watch:{}},Ye=({deviceId:e,orientation:t,deviceScale:n,topSpacing:r,layoutMode:i,frameColor:a,isBatchMode:o=!1,hasLogo:s=!1,hasBadge:c=!1})=>{let l=z[e];if(!l)return{};let u=l.type===`watch`,d=i;o&&(l.group?.includes(`iPad`)||l.group?.includes(`Tablet`))&&(d=`split`);let f=l.width,p=l.height;t===`landscape`&&(f=l.height,p=l.width);let m=t===`landscape`?l.height/3:l.width/3,h=t===`landscape`?l.width/3:l.height/3,g=l.group===`Android Tablet`||l.group===`iPad`,_=l.group===`iPhone Classic`,v=s&&c,y=1,b=1;v&&g&&(d===`split`?(y=.9,b=.9):(y=.85,b=.85));let x=(d===`split`?.45:u?.58:t===`landscape`?g?.68:_?.6:.65:g?.76:_?.7:.8)*y,S=(u?.46:t===`landscape`?g?.52:_?.42:.48:g?.62:_?.55:.65)*b,C=n*Math.min(p*S/h,f*x/m),w=m*C,T=h*C,E=`5%`,D=`5%`;d!==`split`&&(d===`bottom`?(D=`${r/100*p}px`,E=`${p*.05}px`):(E=`${r/100*p}px`,D=`${p*.05}px`));let O={width:`${f}px`,height:`${p}px`,paddingTop:E,paddingBottom:D,paddingLeft:`5%`,paddingRight:`5%`,display:`flex`,flexDirection:d===`split`?`row`:d===`bottom`?`column-reverse`:`column`,alignItems:`center`,justifyContent:d===`split`?`center`:`flex-start`,gap:d===`split`?`5%`:`${p*.03}px`},k={width:d===`split`?void 0:w,height:T},A={width:m,height:h,transform:`scale(${C})`,transformOrigin:`center center`};return{effectiveLayoutMode:d,containerStyle:O,deviceWrapperStyle:k,deviceInnerStyle:A,canvasWidth:f,canvasHeight:p,frameColor:a}},Xe=`system-ui, -apple-system, BlinkMacSystemFont, 'Segoe UI', Arial, sans-serif`,Ze=[{script:`arabic`,pattern:/[\u0600-\u06FF\u0750-\u077F\u08A0-\u08FF\uFB50-\uFDFF\uFE70-\uFEFF]/},{script:`thai`,pattern:/[\u0E00-\u0E7F]/},{script:`cjk`,pattern:/[\u3040-\u30FF\u3400-\u4DBF\u4E00-\u9FFF\uF900-\uFAFF]/},{script:`hangul`,pattern:/[\u1100-\u11FF\uAC00-\uD7AF]/}],Qe={default:{direction:`ltr`,visualScale:1,maxGrowScale:1.12,minFitRatio:.3,widthSafetyFactor:1,fallbackStack:Xe},arabic:{direction:`rtl`,visualScale:1.12,maxGrowScale:1.14,minFitRatio:.34,widthSafetyFactor:1.03,fallbackStack:`'Noto Sans Arabic', 'Segoe UI', Tahoma, 'Arial Unicode MS', sans-serif`},thai:{direction:`ltr`,visualScale:1.15,maxGrowScale:1.16,minFitRatio:.38,widthSafetyFactor:1.04,fallbackStack:`'Noto Sans Thai', 'Leelawadee UI', Tahoma, 'Arial Unicode MS', sans-serif`},cjk:{direction:`ltr`,visualScale:1,maxGrowScale:1.12,minFitRatio:.3,widthSafetyFactor:1,fallbackStack:`'Hiragino Sans', 'PingFang SC', 'Microsoft YaHei UI', 'Noto Sans CJK JP', sans-serif`},hangul:{direction:`ltr`,visualScale:1,maxGrowScale:1.12,minFitRatio:.3,widthSafetyFactor:1,fallbackStack:`'Apple SD Gothic Neo', 'Malgun Gothic', 'Noto Sans KR', sans-serif`}},$e=(e,t=null)=>{let n=typeof e==`number`?e:Number(e);return Number.isFinite(n)?n:t},et=(e,t,n)=>Number.isFinite(e)?Math.max(t,Math.min(n,e)):t,tt=e=>Math.round(e*1e3)/1e3,nt=e=>Qe[e]||Qe.default,rt=e=>Array.from(String(e||``)).length,it=e=>{let t=String(e||``);return t&&Ze.find(({pattern:e})=>e.test(t))?.script||`default`},at=(e,t=``)=>{let n=String(t||``),r=nt(Object.prototype.hasOwnProperty.call(Qe,n)?n:it(n)).fallbackStack||``,i=[String(e||``).trim(),r,Xe].filter(Boolean),a=[],o=new Set;return i.forEach(e=>{let t=e.toLowerCase();o.has(t)||(o.add(t),a.push(e))}),a.join(`, `)},ot=(e,t)=>{let n=String(e||``).trim().toLowerCase();if(!n||n===`normal`)return 0;let r=parseFloat(n);if(!Number.isFinite(r))return 0;if(n.endsWith(`em`))return r*t;if(n.endsWith(`rem`)){if(typeof window<`u`&&typeof document<`u`){let e=parseFloat(window.getComputedStyle(document.documentElement).fontSize);if(Number.isFinite(e))return r*e}return r*16}return r},st=(e,t)=>{let n=String(t||``).trim().toLowerCase();return(e===`arabic`||e===`thai`)&&n===`-0.02em`?`-0.01em`:t},ct=null,lt=()=>typeof document>`u`?null:(ct||=document.createElement(`canvas`),ct.getContext(`2d`)),ut=({text:e,fontSize:t,isBold:n,letterSpacingPx:r})=>{let i=n?.62:.54,a=n?1:.92,o=Array.from(String(e||``));return o.reduce((e,t)=>e+(/[ -~]/.test(t)?i:a),0)*t+Math.max(o.length-1,0)*r},B=({text:e,fontSize:t,fontFamily:n,fontWeight:r,isBold:i,letterSpacingPx:a})=>{let o=String(e||``);if(!o)return 0;let s=lt();return s?(s.font=`${r} ${t}px ${n}`,s.measureText(o).width+Math.max(rt(o)-1,0)*a):ut({text:o,fontSize:t,isBold:i,letterSpacingPx:a})},dt=({text:e,intendedSize:t,maxWidth:n,isBold:r=!1,fontFamily:i=``,fontWeight:a,letterSpacing:o=`normal`,minFontSize:s,maxIterations:c=10,allowGrow:l=!0,maxGrowScale:u,minFitRatio:d,widthSafetyFactor:f,visualScale:p}={})=>{let m=String(e||``),h=it(m),g=nt(h),_=at(i,h),v=st(h,o),y=g.direction||`ltr`,b=$e(t,0),x=$e(n,0);if(!b||b<=0||!x||x<=0||!m)return{fontSize:b||0,fontFamily:_,direction:y,letterSpacing:String(v||`normal`),script:h};let S=$e(a,r?700:500),C=ot(v,b),w=$e(p,g.visualScale||1),T=et($e(u,g.maxGrowScale||1.12),1,2),E=l?b*T:b,D=Math.min(b*w,E),O=et($e(d,g.minFitRatio??.3),.05,1),k=x/et($e(f,g.widthSafetyFactor??1),1,1.2),A=b*O,j=et(Math.max($e(s,Math.max(8,A)),A),1,D),M=e=>B({text:m,fontSize:e,fontFamily:_,fontWeight:S,isBold:r,letterSpacingPx:C});if(M(D)<=k)return{fontSize:tt(D),fontFamily:_,direction:y,letterSpacing:String(v||`normal`),script:h};if(M(j)>=k||j>=D)return{fontSize:tt(j),fontFamily:_,direction:y,letterSpacing:String(v||`normal`),script:h};let ee=j,te=D,ne=j,re=et(Math.trunc(c),1,20);for(let e=0;e<re;e+=1){let e=(ee+te)/2;M(e)<=k?(ne=e,ee=e):te=e}return{fontSize:tt(ne),fontFamily:_,direction:y,letterSpacing:String(v||`normal`),script:h}},ft=e=>{if(!e||typeof e!=`string`||!e.startsWith(`#`))return 255;let t=e.substring(1);if(t.length===3){let e=parseInt(t[0]+t[0],16),n=parseInt(t[1]+t[1],16),r=parseInt(t[2]+t[2],16);return(e*299+n*587+r*114)/1e3}if(t.length===6){let e=parseInt(t.substring(0,2),16),n=parseInt(t.substring(2,4),16),r=parseInt(t.substring(4,6),16);return(e*299+n*587+r*114)/1e3}return 255},pt=({id:e,deviceId:t,orientation:n,deviceScale:r,topSpacing:i,layoutMode:a,bgType:o,bgColor:s,gradientStart:l,gradientEnd:u,gradientAngle:d,bgImage:f,bgBlur:p,bgOpacity:m,headerText:h,subHeaderText:g,textColor:_,headerSize:v,subHeaderSize:y,selectedFont:b,badgeType:x,screenshot:S,logoImage:C,frameColor:w,isBatchMode:T=!1,isPro:E=!1})=>{let{t:D}=c(),O=z[t],k=O.type===`watch`,j=k?`portrait`:n,{effectiveLayoutMode:M,containerStyle:ee,deviceWrapperStyle:te,deviceInnerStyle:ne,canvasWidth:re,canvasHeight:ie}=Ye({deviceId:t,orientation:j,deviceScale:r,topSpacing:i,layoutMode:a,frameColor:w,isBatchMode:T,hasLogo:!!C,hasBadge:x&&x!==`none`}),N=()=>{let e={};return o===`image`&&f?(e.backgroundImage=`url(${f})`,e.backgroundSize=`cover`,e.backgroundPosition=`center`):o===`transparent`?(e.backgroundImage=`url("https://www.transparenttextures.com/patterns/checkerboard.png")`,e.backgroundColor=`transparent`):o===`gradient`?e.backgroundImage=`linear-gradient(${d}deg, ${l}, ${u})`:o===`solid`&&(e.backgroundColor=s),e},ae=(o===`solid`?ft(s)<128:o===`gradient`?ft(l)<128:o===`image`)?{color:`rgba(255, 255, 255, 0.1)`}:{color:`#0f172a`,opacity:.05},oe=Je[O.type]||{},se=(e,t,n=8)=>{if(!e)return t;let r=e.split(``).reduce((e,t)=>e+(t.match(/[ -~]/)?.8:1.8),0);if(r<=n)return t;let i=n/r;return t*Math.max(.2,i)},ce=M===`split`?re*.45:re*.9,P=dt({text:h,intendedSize:v,maxWidth:ce,isBold:!0,fontFamily:b,fontWeight:700,letterSpacing:`-0.02em`,minFontSize:12,allowGrow:!0}),le=dt({text:g,intendedSize:y,maxWidth:ce,isBold:!1,fontFamily:b,fontWeight:500,letterSpacing:`normal`,minFontSize:10,allowGrow:!0}),F=Math.min(re,ie),ue=F*.15,de=F*.05,pe=k?.14:n===`landscape`?.08:.22,he=ie,I=C?M===`split`?he*pe:M===`top`?Math.min(ue+de,he*.12):0:0,ge=C&&M===`split`?I:0,_e=C&&M===`top`?I:0,ve=h?v*1.1:0,ye=g?y*1.3:0,be=x===`none`?0:F*(k||n===`landscape`?.08:.12),xe=h&&g?16:0,Se=M===`split`?void 0:ve+ye+be+xe,Ce=()=>{if(x===`none`)return null;let e=()=>({lineHeight:1,display:`block`}),t={display:`block`,transform:`translateY(-1px)`},n={padding:`${F*.018}px ${F*.038}px`,borderRadius:`${F*.018}px`,backgroundColor:`#fff`,border:`1px solid rgba(15,23,42,0.08)`,boxShadow:`none`,filter:`none`,display:`flex`,alignItems:`center`,justifyContent:`center`,gap:`${F*.014}px`,marginTop:`${F*.015}px`,cursor:`default`,lineHeight:1,width:`fit-content`,maxWidth:`${F*.9}px`,overflow:`hidden`},r=F*.045,i=F*.028,a={display:`block`,minWidth:0,whiteSpace:`nowrap`,overflow:`hidden`,textOverflow:`ellipsis`,textAlign:`left`},o={minWidth:0,flex:1,display:`flex`,flexDirection:`column`,justifyContent:`center`};return(0,R.jsx)(`div`,{style:{width:`100%`,display:`flex`,justifyContent:M===`split`?`flex-start`:`center`,alignItems:`center`},children:(()=>{switch(x){case`stars`:return(0,R.jsxs)(`div`,{"data-badge":`true`,style:{...n,color:`#f59e0b`,backgroundColor:`#fff`,border:`1px solid rgba(245,158,11,0.15)`},children:[(0,R.jsx)(`div`,{className:`flex gap-1 items-center h-full shrink-0`,children:[1,2,3,4,5].map(e=>(0,R.jsx)(Re,{size:r,fill:`#f59e0b`,stroke:`#f59e0b`,style:t},e))}),(0,R.jsx)(`span`,{"data-badge-score":`true`,style:{fontSize:i,fontWeight:800,color:`#111827`,letterSpacing:`0`,whiteSpace:`nowrap`,...e(),transform:`translateY(1px)`},children:`5.0`})]});case`award`:{let s=D(`app.canvas.badges.award`);return(0,R.jsxs)(`div`,{"data-badge":`true`,style:{...n,color:`#ef4444`,backgroundColor:`#fef2f2`,border:`1px solid rgba(239,68,68,0.25)`},children:[(0,R.jsx)(fe,{size:r,style:t,className:`shrink-0`}),(0,R.jsx)(`div`,{style:o,"data-badge-text":`true`,children:(0,R.jsx)(`span`,{style:{...a,fontSize:se(s,i,8),fontWeight:800,color:`#7f1d1d`,letterSpacing:`0`,...e()},children:s})})]})}case`download`:{let s=D(`app.canvas.badges.downloadLine1`),c=D(`app.canvas.badges.downloadLine2`);return(0,R.jsxs)(`div`,{"data-badge":`true`,style:{...n,backgroundColor:`#000`,color:`#fff`,border:`1px solid rgba(255,255,255,0.12)`,boxShadow:`none`},children:[(0,R.jsx)(me,{size:r,style:t,className:`shrink-0`}),(0,R.jsxs)(`div`,{style:o,"data-badge-text":`true`,children:[(0,R.jsx)(`span`,{style:{...a,fontSize:se(s,i*.6,12),opacity:.8,...e()},"data-badge-line":`1`,children:s}),(0,R.jsx)(`span`,{style:{...a,fontSize:se(c,i,8),fontWeight:800,letterSpacing:`0`,...e()},"data-badge-line":`2`,children:c})]})]})}case`googleplay`:{let s=D(`app.canvas.badges.googleLine1`),c=D(`app.canvas.badges.googleLine2`);return(0,R.jsxs)(`div`,{"data-badge":`true`,style:{...n,backgroundColor:`#000`,color:`#fff`,border:`1px solid rgba(255,255,255,0.12)`,boxShadow:`none`},children:[(0,R.jsx)(Oe,{size:r,fill:`#fff`,style:t,className:`shrink-0`}),(0,R.jsxs)(`div`,{style:o,"data-badge-text":`true`,children:[(0,R.jsx)(`span`,{style:{...a,fontSize:se(s,i*.6,12),opacity:.8,...e()},"data-badge-line":`1`,children:s}),(0,R.jsx)(`span`,{style:{...a,fontSize:se(c,i,8),fontWeight:800,letterSpacing:`0`,...e()},"data-badge-line":`2`,children:c})]})]})}default:return null}})()})},we=()=>{let e=oe.notch;if(!e)return null;let t=j===`landscape`,n={position:`absolute`,backgroundColor:`black`,zIndex:20};if(e.type===`dynamicIsland`){let r=t?{left:e.top,top:`50%`,transform:`translateY(-50%)`,width:e.height,height:e.width,borderRadius:e.borderRadius}:{top:e.top,left:`50%`,transform:`translateX(-50%)`,width:e.width,height:e.height,borderRadius:e.borderRadius};return(0,R.jsx)(`div`,{style:{...n,...r},className:`flex items-center justify-end pr-2`,children:(0,R.jsx)(`div`,{className:`absolute rounded-full`,style:{backgroundColor:`#1a1a1a`,...t?{bottom:`20%`,left:`50%`,transform:`translateX(-50%)`,width:`30%`,height:`30%`}:{right:`20%`,top:`50%`,transform:`translateY(-50%)`,width:`12px`,height:`12px`}},children:(0,R.jsx)(`div`,{className:`absolute top-1 left-1 w-1 h-1 rounded-full blur-[1px]`,style:{backgroundColor:`rgba(255, 255, 255, 0.2)`}})})})}if(e.type===`notch`){let r=t?{left:e.top,top:`50%`,transform:`translateY(-50%)`,width:e.height,height:e.width,borderTopRightRadius:`16px`,borderBottomRightRadius:`16px`,borderTopLeftRadius:`0`,borderBottomLeftRadius:`0`}:{top:e.top,left:`50%`,transform:`translateX(-50%)`,width:e.width,height:e.height,borderBottomLeftRadius:`16px`,borderBottomRightRadius:`16px`,borderTopLeftRadius:`0`,borderTopRightRadius:`0`};return(0,R.jsx)(`div`,{style:{...n,...r}})}if(e.type===`punchhole`){let r=t?{left:e.top,top:`50%`,transform:`translateY(-50%)`,width:e.width,height:e.height,borderRadius:`50%`}:{top:e.top,left:`50%`,transform:`translateX(-50%)`,width:e.width,height:e.height,borderRadius:`50%`};return(0,R.jsx)(`div`,{style:{...n,...r}})}return null},Te=()=>{let e=oe.homeButton;if(!e)return null;let t=j===`landscape`,n=e.width||`12%`,r=e.borderWidth||`2px`,i=e.bottom||`5%`;return t?(0,R.jsx)(`div`,{style:{position:`absolute`,right:i,top:`50%`,transform:`translate(50%, -50%)`,height:n,width:`auto`,aspectRatio:`1 / 1`,borderRadius:`50%`,border:`${r} solid #333`,backgroundColor:`#111`,boxShadow:`inset 0 0 4px rgba(0,0,0,0.5)`}}):(0,R.jsx)(`div`,{style:{position:`absolute`,bottom:i,left:`50%`,transform:`translate(-50%, 50%)`,width:n,height:`auto`,aspectRatio:`1 / 1`,borderRadius:`50%`,border:`${r} solid #333`,backgroundColor:`#111`,boxShadow:`inset 0 0 4px rgba(0,0,0,0.5)`}})},Ee=Ge[w]||Ge.black,De=(e=>{switch(e){case`titanium`:return`linear-gradient(135deg, #706f6f 0%, #9e9e9e 25%, #5e5e5e 50%, #8a8a8a 75%, #666666 100%)`;case`silver`:return`linear-gradient(135deg, #e0e0e0 0%, #ffffff 30%, #c0c0c0 50%, #f5f5f5 80%, #dcdcdc 100%)`;case`gold`:return`linear-gradient(135deg, #e6cfa5 0%, #fff5e0 30%, #d4b585 50%, #faeacc 80%, #e0c598 100%)`;case`blue`:return`linear-gradient(135deg, #2b3a4a 0%, #4a5c70 30%, #1e2a38 50%, #3e4f63 80%, #24303d 100%)`;default:return`linear-gradient(135deg, #333333 0%, #555555 30%, #1a1a1a 50%, #444444 80%, #222222 100%)`}})(w),ke=`none`,Ae={...ee,boxShadow:`none`,filter:`none`,fontFamily:b,backgroundColor:s,...N(),position:`relative`},je=C&&M===`top`?`justify-start`:`justify-center`;return(0,R.jsxs)(`div`,{id:e,"data-device-name":O.name,"data-layout-mode":M,"data-canvas-width":re,"data-canvas-height":ie,"data-capture-target":`true`,style:Ae,className:`relative shrink-0 overflow-visible ${T?``:`transition-all duration-300 ease-in-out`}`,children:[o===`image`&&f&&(0,R.jsx)(`div`,{className:`absolute inset-0 z-0 overflow-hidden`,children:(0,R.jsx)(`div`,{className:`absolute inset-0`,style:{backgroundImage:`url(${f})`,backgroundSize:`cover`,backgroundPosition:`center`,filter:`blur(${p}px) brightness(${1-m*.01})`,transform:`scale(1.1)`}})}),!E&&(0,R.jsxs)(`div`,{className:`absolute inset-0 z-40 pointer-events-none flex flex-col items-center justify-center overflow-hidden`,children:[(0,R.jsx)(`div`,{className:`absolute inset-0 flex flex-wrap content-center justify-center gap-32 -rotate-12 scale-150`,style:ae,children:Array.from({length:30}).map((e,t)=>(0,R.jsx)(`span`,{className:`text-4xl font-black uppercase whitespace-nowrap`,children:D(`app.canvas.watermark`)},t))}),(0,R.jsxs)(`div`,{"data-watermark-badge":`true`,className:`backdrop-blur-md px-4 py-2 rounded-xl flex items-center gap-3 leading-none`,style:{backgroundColor:`rgba(255, 255, 255, 0.6)`,border:`1px solid rgba(255, 255, 255, 0.5)`,boxShadow:`0 10px 15px -3px rgba(15, 23, 42, 0.18), 0 4px 6px -4px rgba(15, 23, 42, 0.18)`,opacity:.8},children:[(0,R.jsx)(`div`,{className:`w-6 h-6 rounded-md flex items-center justify-center shrink-0`,style:{backgroundColor:`#0f172a`,color:`#ffffff`},children:(0,R.jsx)(A,{size:14})}),(0,R.jsx)(`div`,{className:`h-6 flex items-center justify-center leading-none`,children:(0,R.jsx)(`span`,{className:`text-[10px] font-bold uppercase tracking-wider leading-none pb-0.5`,style:{color:`#0f172a`},children:D(`app.canvas.watermark`)})})]})]}),C&&(0,R.jsx)(`div`,{className:`absolute z-20`,style:{top:`${de}px`,left:`${de}px`,width:`${ue}px`,height:`${ue}px`,display:`flex`,alignItems:`center`,justifyContent:`flex-start`,backgroundImage:`url(${C})`,backgroundSize:`contain`,backgroundPosition:`left center`,backgroundRepeat:`no-repeat`}}),(0,R.jsxs)(`div`,{className:`flex-none flex flex-col ${je} ${M===`split`?`items-start text-left w-[45%]`:`items-center text-center w-full`} z-50`,style:{color:_,gap:`16px`,minHeight:Se?`${Se}px`:void 0,borderTop:C&&M===`split`?`${I}px solid transparent`:void 0,marginTop:_e?`${_e}px`:ge?`-${ge}px`:void 0,boxSizing:`border-box`},children:[(0,R.jsx)(`h1`,{"data-intended-font-size":v,"data-fit-font-family":P.fontFamily,"data-fit-direction":P.direction,"data-fit-letter-spacing":P.letterSpacing,style:{fontSize:`${P.fontSize}px`,fontFamily:P.fontFamily,direction:P.direction,unicodeBidi:P.direction===`rtl`?`plaintext`:`normal`,lineHeight:1.1,fontWeight:700,letterSpacing:P.letterSpacing,whiteSpace:`nowrap`,wordBreak:`keep-all`,overflow:`hidden`,textOverflow:`ellipsis`,minHeight:`1em`,display:`block`,margin:0,padding:0},children:h}),(0,R.jsx)(`h2`,{"data-intended-font-size":y,"data-fit-font-family":le.fontFamily,"data-fit-direction":le.direction,"data-fit-letter-spacing":le.letterSpacing,style:{fontSize:`${le.fontSize}px`,fontFamily:le.fontFamily,direction:le.direction,unicodeBidi:le.direction===`rtl`?`plaintext`:`normal`,lineHeight:1.3,fontWeight:500,letterSpacing:le.letterSpacing,opacity:.85,whiteSpace:`nowrap`,wordBreak:`keep-all`,overflow:`hidden`,textOverflow:`ellipsis`,minHeight:`1em`,display:`block`,margin:0,padding:0},children:g}),Ce()]}),(0,R.jsx)(`div`,{className:`flex-none relative z-10 flex items-center justify-center ${M===`split`?`w-[50%]`:`w-full`}`,style:{...te,boxShadow:`none`,borderRadius:`${O.radius}px`,backgroundColor:`transparent`,overflow:`visible`,filter:`none`},"data-device-wrapper":`true`,"data-device-name":O.name,"data-shadow-style":ke,children:(0,R.jsx)(`div`,{style:{...ne,overflow:`visible`},"data-device-inner":`true`,children:(0,R.jsxs)(`div`,{className:`relative`,"data-frame-shadow":`true`,"data-shadow-style":ke,style:{width:`100%`,height:`100%`,borderRadius:`${O.radius}px`,background:k?Ee:De,boxShadow:`none`,padding:k?void 0:`4px`},children:[!k&&!O.type.includes(`android`)&&(0,R.jsx)(R.Fragment,{children:n===`landscape`?(0,R.jsxs)(R.Fragment,{children:[(0,R.jsx)(`div`,{className:`absolute left-[18%] -top-[2px] w-[12%] h-[2px] rounded-b-sm z-0`,style:{backgroundColor:`#475569`}}),(0,R.jsx)(`div`,{className:`absolute left-[10%] -bottom-[2px] w-[4%] h-[2px] rounded-t-sm z-0`,style:{backgroundColor:`#475569`}}),(0,R.jsx)(`div`,{className:`absolute left-[18%] -bottom-[2px] w-[8%] h-[2px] rounded-t-sm z-0`,style:{backgroundColor:`#475569`}}),(0,R.jsx)(`div`,{className:`absolute left-[28%] -bottom-[2px] w-[8%] h-[2px] rounded-t-sm z-0`,style:{backgroundColor:`#475569`}})]}):(0,R.jsxs)(R.Fragment,{children:[(0,R.jsx)(`div`,{className:`absolute top-[10%] -left-[2px] w-[2px] h-[4%] rounded-l-sm z-0`,style:{backgroundColor:`#475569`}}),(0,R.jsx)(`div`,{className:`absolute top-[18%] -left-[2px] w-[2px] h-[8%] rounded-l-sm z-0`,style:{backgroundColor:`#475569`}}),(0,R.jsx)(`div`,{className:`absolute top-[28%] -left-[2px] w-[2px] h-[8%] rounded-l-sm z-0`,style:{backgroundColor:`#475569`}}),(0,R.jsx)(`div`,{className:`absolute top-[18%] -right-[2px] w-[2px] h-[12%] rounded-r-sm z-0`,style:{backgroundColor:`#475569`}})]})}),(0,R.jsxs)(`div`,{className:`absolute overflow-hidden`,style:{top:`${O.bezel}px`,bottom:`${O.bezel}px`,left:`${O.bezel}px`,right:`${O.bezel}px`,borderRadius:`${O.radius-4}px`,backgroundColor:`#000000`},children:[(0,R.jsx)(`div`,{className:`relative w-full h-full`,style:{top:O.type.includes(`classic`)?n===`landscape`?`0`:`10%`:`0`,height:O.type.includes(`classic`)?n===`landscape`?`100%`:`80%`:`100%`,width:O.type.includes(`classic`)&&n===`landscape`?`80%`:`100%`,left:O.type.includes(`classic`)&&n===`landscape`?`10%`:`0`,backgroundColor:`#0f172a`},children:S?(0,R.jsx)(`div`,{"data-type":`screen-image`,className:`w-full h-full bg-cover bg-center bg-no-repeat`,style:{backgroundImage:`url(${S})`},role:`img`,"aria-label":`Screen`}):(0,R.jsx)(`div`,{className:`w-full h-full flex flex-col items-center justify-center text-center p-4`,style:{color:`rgba(255, 255, 255, 0.2)`,backgroundColor:`#1e293b`},children:k?(0,R.jsx)(Ve,{size:32}):(0,R.jsx)(A,{size:48})})}),O.type.includes(`classic`)&&(0,R.jsx)(R.Fragment,{children:(0,R.jsxs)(`div`,{className:`absolute flex justify-center items-center ${n===`landscape`?`left-0 top-0 bottom-0 w-[10%] flex-col gap-2`:`top-0 left-0 right-0 h-[10%] flex-row gap-2`}`,children:[!O.type.includes(`ipad`)&&(0,R.jsx)(`div`,{className:`rounded-full ${n===`landscape`?`w-1.5 h-12`:`w-12 h-1.5`}`,style:{backgroundColor:`#333333`}}),(0,R.jsx)(`div`,{className:`w-2 h-2 rounded-full`,style:{backgroundColor:`#222222`}})]})}),O.type===`android-tablet`&&(0,R.jsx)(`div`,{className:`absolute ${n===`landscape`?`top-[50%] -translate-y-1/2 right-2`:`top-2 left-[50%] -translate-x-1/2`} w-3 h-3 rounded-full`,style:{backgroundColor:`#111111`,boxShadow:`0 0 0 1px #333333`}})]}),we(),Te(),k&&(0,R.jsx)(`div`,{className:`absolute rounded-r-md border border-l-0 z-0`,style:{right:`-6px`,top:`28%`,width:`8px`,height:`32px`,borderTopRightRadius:`4px`,borderBottomRightRadius:`4px`,backgroundColor:`#333333`,borderColor:`#000000`,boxShadow:`0 1px 2px rgba(0, 0, 0, 0.15)`}}),(0,R.jsx)(`div`,{className:`absolute inset-0 rounded-[inherit] pointer-events-none z-30`,style:{background:`linear-gradient(to top right, transparent 0%, rgba(255, 255, 255, 0.05) 50%, transparent 100%)`,opacity:.5}})]})})})]})},mt=({isOpen:e,billing:t=`monthly`,requiresAuth:n=!1,onClose:r,onUpgrade:i})=>{let{t:a}=c(),o=(0,L.useRef)(null),s=(0,L.useRef)(null),l=a(`upgrade.plans.${t}`,{returnObjects:!0,defaultValue:null}),d=l&&typeof l==`object`&&!Array.isArray(l),f=(d&&Array.isArray(l.features)?l.features:a(`upgrade.features`,{returnObjects:!0}))||[],p=d&&l.title?l.title:a(`upgrade.title`),m=d&&l.subtitle?l.subtitle:a(`upgrade.subtitle`),h=d&&l.cta?l.cta:a(`upgrade.cta`),g=d&&l.authRequired?l.authRequired:a(`upgrade.authRequired`,{defaultValue:``});return u({isOpen:e,onClose:r,panelRef:o,initialFocusRef:s}),e?(0,R.jsx)(`div`,{className:`fixed inset-0 z-2000 bg-slate-900/60 backdrop-blur-xs flex items-center justify-center p-4 animate-in fade-in duration-200`,role:`dialog`,"aria-modal":`true`,"aria-label":p||a(`upgrade.title`,{defaultValue:`Upgrade`}),onMouseDown:e=>{e.target===e.currentTarget&&r?.()},children:(0,R.jsxs)(`div`,{ref:o,className:`bg-white rounded-2xl shadow-2xl max-w-md w-full overflow-hidden`,children:[(0,R.jsxs)(`div`,{className:`bg-linear-to-br from-slate-900 to-slate-800 p-8 text-center text-white relative overflow-hidden`,children:[(0,R.jsx)(`div`,{className:`absolute top-0 left-0 w-full h-full opacity-10 bg-[url('https://www.transparenttextures.com/patterns/cubes.png')]`}),(0,R.jsxs)(`div`,{className:`relative z-10`,children:[(0,R.jsx)(`div`,{className:`w-12 h-12 bg-blue-500 rounded-xl flex items-center justify-center mx-auto mb-4 shadow-lg shadow-blue-500/30`,children:(0,R.jsx)(ge,{size:24,fill:`white`})}),(0,R.jsx)(`h2`,{className:`text-2xl font-bold mb-2`,children:p}),(0,R.jsx)(`p`,{className:`text-slate-300 text-sm`,children:m})]})]}),(0,R.jsxs)(`div`,{className:`p-8`,children:[(0,R.jsx)(`div`,{className:`space-y-4 mb-8`,children:f.map(e=>(0,R.jsx)(ht,{text:e},e))}),(0,R.jsx)(`button`,{ref:s,onClick:i,className:`w-full py-3 bg-blue-600 hover:bg-blue-700 text-white rounded-xl font-bold shadow-lg shadow-blue-600/20 transition-all transform hover:scale-[1.02] active:scale-[0.98]`,children:h}),n&&g&&(0,R.jsx)(`p`,{className:`mt-3 rounded-lg border border-blue-100 bg-blue-50 px-3 py-2 text-[11px] leading-relaxed text-blue-800`,children:g}),(0,R.jsxs)(`p`,{className:`mt-3 text-[11px] text-slate-500 text-center leading-relaxed`,children:[a(`upgrade.legal`),(0,R.jsx)(`br`,{}),(0,R.jsx)(`a`,{href:`/terms`,className:`underline hover:text-slate-700`,target:`_blank`,rel:`noreferrer`,children:a(`landing.footer.terms`)}),` / `,(0,R.jsx)(`a`,{href:`/privacy`,className:`underline hover:text-slate-700`,target:`_blank`,rel:`noreferrer`,children:a(`landing.footer.privacy`)}),` / `,(0,R.jsx)(`a`,{href:`/legal`,className:`underline hover:text-slate-700`,target:`_blank`,rel:`noreferrer`,children:a(`landing.footer.legal`)})]}),(0,R.jsx)(`button`,{onClick:r,className:`w-full mt-3 py-2 text-slate-400 hover:text-slate-600 text-xs font-medium`,children:a(`upgrade.later`)})]})]})}):null},ht=({text:e})=>(0,R.jsxs)(`div`,{className:`flex items-center gap-3 text-sm text-slate-700`,children:[(0,R.jsx)(v,{size:18,className:`text-green-500 shrink-0`}),(0,R.jsx)(`span`,{children:e})]}),gt=({isOpen:e,onClose:t})=>{let{t:n}=c(),r=(0,L.useRef)(null),i=(0,L.useRef)(null),a=(0,L.useMemo)(()=>n(`landing.ciQuickstart`,{returnObjects:!0})||{},[n]),o=typeof a.title==`string`?a.title:n(`app.header.ciQuickstart`,{defaultValue:`Agent/CI handoff`}),s=typeof a.desc==`string`?a.desc:``,l=typeof a.codeLabel==`string`?a.codeLabel:``,d=typeof a.code==`string`?a.code:``,f=typeof a.note==`string`?a.note:``;return u({isOpen:e,onClose:t,panelRef:i,initialFocusRef:r}),e?(0,R.jsx)(`div`,{className:`fixed inset-0 z-2100 bg-slate-900/60 backdrop-blur-xs flex items-center justify-center p-4 animate-in fade-in duration-200`,role:`dialog`,"aria-modal":`true`,"aria-label":o,onMouseDown:e=>{e.target===e.currentTarget&&t?.()},children:(0,R.jsxs)(`div`,{ref:i,className:`bg-white rounded-2xl shadow-2xl max-w-2xl w-full overflow-hidden border border-slate-200`,children:[(0,R.jsxs)(`div`,{className:`flex items-start justify-between gap-4 px-6 py-4 border-b border-slate-200`,children:[(0,R.jsxs)(`div`,{className:`min-w-0`,children:[(0,R.jsx)(`h2`,{className:`text-lg font-black text-slate-900`,children:o}),s&&(0,R.jsx)(`p`,{className:`text-sm text-slate-600 mt-1`,children:s})]}),(0,R.jsx)(`button`,{ref:r,type:`button`,onClick:t,className:`shrink-0 p-2 rounded-full border border-slate-200 text-slate-600 hover:bg-slate-50`,"aria-label":n(`common.close`,{defaultValue:`Close`}),title:n(`common.close`,{defaultValue:`Close`}),children:(0,R.jsx)(p,{size:16})})]}),(0,R.jsxs)(`div`,{className:`p-6 space-y-4`,children:[(0,R.jsxs)(`div`,{className:`rounded-xl border border-slate-200 bg-slate-950 text-slate-100 overflow-hidden`,children:[(0,R.jsxs)(`div`,{className:`flex items-center justify-between gap-3 px-4 py-2 border-b border-slate-800 bg-slate-950/80`,children:[(0,R.jsx)(`div`,{className:`text-[11px] uppercase tracking-[0.2em] text-slate-400`,children:l||n(`landing.ciQuickstart.codeLabel`,{defaultValue:`Commands`})}),(0,R.jsx)(C,{value:d,className:`text-[11px] px-2 py-1 rounded-md border border-slate-700 bg-slate-900/60 text-slate-100 hover:bg-slate-900 transition disabled:opacity-50 disabled:cursor-not-allowed`})]}),(0,R.jsx)(`pre`,{className:`p-4 text-xs font-mono whitespace-pre overflow-auto max-h-[50vh] leading-relaxed`,children:d})]}),f&&(0,R.jsx)(`p`,{className:`text-xs text-slate-500`,children:f})]})]})}):null},_t={store:`store`,detailed:`detailed`},V=e=>{let t=e?.width,n=e?.height;return!t||!n?``:`${t}×${n}px`},vt=(e,{id:t=``,mode:n=_t.store}={})=>{let r=e?.storeLabel||e?.name||t,i=e?.modelLabel||``,a=i&&i!==r?i:``,o=V(e),s=a?`${r} (${a})`:r,c=n===_t.detailed&&a||r,l=n===_t.detailed?[a?r:null,o].filter(Boolean).join(` • `):[a||null,o].filter(Boolean).join(` • `);return{storeLabel:r,modelLabel:a,dimensions:o,storeWithModel:s,optionLabel:n===_t.detailed?[c,o,a?r:null].filter(Boolean).join(` - `):s,primary:c,secondary:l,shortLabel:c}},yt=(e=``)=>e.toLowerCase().replace(/×/g,`x`).replace(/["'()]/g,``).trim(),bt=(e,t,n)=>{let r=yt(n);if(!r)return!0;let i=r.split(/\s+/).filter(Boolean);if(!i.length)return!0;let{storeLabel:a,modelLabel:o}=vt(t,{id:e,mode:_t.store}),s=t?.width,c=t?.height,l=[e,t?.group,t?.type,a,o,t?.name,s&&c?`${s}x${c}`:null,s&&c?`${c}x${s}`:null,s&&c?`${s} ${c}`:null].filter(Boolean).join(` `).toLowerCase().replace(/×/g,`x`);return i.every(e=>l.includes(e))},xt=e=>{if(e?.aborted)throw Error(`Aborted`)},St=e=>{let t=e.querySelector(`h1`),n=e.querySelector(`h2`),r=t?.parentElement||n?.parentElement;r&&(r.style.position=`relative`,r.style.zIndex=`1000`)},Ct=(e,t)=>{if(!e)return t;let n=e.toLowerCase();if(n===`transparent`||n===`rgba(0, 0, 0, 0)`)return t;if(n.startsWith(`rgba`)){let e=parseFloat(n.split(`,`)[3]);if(!Number.isNaN(e)&&e===0)return t}return e},wt=e=>{if(!e)return null;let t=e.split(/\s+/);if(t.length<3)return null;let n=t.pop(),r=0;t.length>=4&&(r=parseFloat(t.pop())||0);let[i=`0px`,a=`16px`,o=`40px`]=t;return{offsetX:parseFloat(i)||0,offsetY:parseFloat(a)||0,blur:parseFloat(o)||0,spread:r,color:n}},H=e=>{let t=typeof e==`number`?e:parseFloat(String(e||``).replace(`px`,``));return Number.isFinite(t)?t:null},Tt=e=>e?e.querySelector?.(`[data-capture-target="true"]`)||e:null,Et=e=>{if(!e)return null;let t=H(e.dataset?.canvasWidth);if(t&&t>0)return t;let n=e.getBoundingClientRect?.();return n?.width?n.width:e.offsetWidth?e.offsetWidth:null},Dt=e=>{let t=e?.dataset?.layoutMode||``;return String(t||``)},Ot=e=>{let t=Et(e);return t?Dt(e)===`split`?t*.45:t*.9:null},kt=e=>{if(!e)return null;let t=H(e.dataset?.intendedFontSize);if(t&&t>0)return t;let n=H(e.style?.fontSize);if(n&&n>0)return n;try{let t=H(window.getComputedStyle(e)?.fontSize);if(t&&t>0)return t}catch{}return null},At=e=>{if(!e)return``;let t=String(e.dataset?.fitFontFamily||``).trim();if(t)return t;let n=String(e.style?.fontFamily||``).trim();if(n)return n;try{return String(window.getComputedStyle(e)?.fontFamily||``).trim()}catch{}return``},jt=(e,t=`normal`)=>{if(!e)return t;let n=String(e.dataset?.fitLetterSpacing||``).trim();if(n)return n;let r=String(e.style?.letterSpacing||``).trim();if(r)return r;try{let t=String(window.getComputedStyle(e)?.letterSpacing||``).trim();if(t)return t}catch{}return t},Mt=(e,t=400)=>{if(!e)return t;let n=e=>{if(e==null)return null;let t=String(e).trim().toLowerCase();if(!t)return null;if(t===`bold`)return 700;if(t===`normal`)return 400;let n=Number(t);return Number.isFinite(n)?n:null},r=n(e.style?.fontWeight);if(r!=null)return r;try{let t=n(window.getComputedStyle(e)?.fontWeight);if(t!=null)return t}catch{}return t},Nt=(e,t,n)=>{let r=typeof e==`number`?e:Number(e);return Number.isFinite(r)?Math.max(t,Math.min(n,r)):null},Pt=(e,t)=>{if(!t||t<=0)return e;let n=null;return Promise.race([e,new Promise(e=>{n=setTimeout(e,t)})]).finally(()=>{n&&clearTimeout(n)})},Ft=async(e=1)=>{let t=Number(e)||0;for(;t>0;)await new Promise(e=>{typeof globalThis.requestAnimationFrame==`function`?globalThis.requestAnimationFrame(()=>e()):setTimeout(e,0)}),--t},It=async(e=1500)=>{try{let t=typeof document<`u`?document.fonts:null;if(!t||typeof t.ready?.then!=`function`||t.status===`loaded`)return;await Pt(t.ready,e)}catch{}},Lt=async()=>{await It(1500),await Ft(2)},Rt=e=>{if(!e)return null;try{let t=e.scrollWidth;if(typeof t==`number`&&t>0)return t;let n=document.createRange();n.selectNodeContents(e);let r=n.getBoundingClientRect();typeof n.detach==`function`&&n.detach();let i=r?.width||0;if(i>0)return i}catch{}return null},zt=(e,t,{minSize:n=10,iterations:r=6}={})=>{if(e&&!(!t||t<=0))for(let i=0;i<r;i+=1){let r=Rt(e)||0;if(!r||r<=t)return;let i=H(e.style?.fontSize)||kt(e);if(!i)return;let a=Nt(t/r*i*.98,n,i);if(!a)return;e.style.fontSize=`${a}px`,e.offsetHeight}},Bt=e=>{let t=Ot(Tt(e));if(!t)return;let n=e.querySelector?.(`h1`),r=e.querySelector?.(`h2`);if(n){let e=kt(n);if(e){let r=dt({text:n.textContent||``,intendedSize:e,maxWidth:t,isBold:!0,fontFamily:At(n),fontWeight:Mt(n,700),letterSpacing:jt(n,`-0.02em`),minFontSize:12,allowGrow:!0});n.style.fontFamily=r.fontFamily,n.style.direction=r.direction,n.style.unicodeBidi=r.direction===`rtl`?`plaintext`:`normal`,n.style.fontSize=`${r.fontSize}px`,n.style.letterSpacing=r.letterSpacing,zt(n,t,{minSize:12})}}if(r){let e=kt(r);if(e){let n=dt({text:r.textContent||``,intendedSize:e,maxWidth:t,isBold:!1,fontFamily:At(r),fontWeight:Mt(r,500),letterSpacing:jt(r,`normal`),minFontSize:10,allowGrow:!0});r.style.fontFamily=n.fontFamily,r.style.direction=n.direction,r.style.unicodeBidi=n.direction===`rtl`?`plaintext`:`normal`,r.style.fontSize=`${n.fontSize}px`,r.style.letterSpacing=n.letterSpacing,zt(r,t,{minSize:10})}}};function Vt({deviceLibrary:t,bgType:n,bgColor:r}){let[i,a]=(0,L.useState)(!1),[o,s]=(0,L.useState)({current:0,total:0}),c=(0,L.useCallback)(async()=>{let e=await l(()=>import(`./html2canvas-pro.esm-OQkwCdu_.js`),[]);return e.default||e},[]),u=(0,L.useCallback)(async()=>{let t=await l(()=>import(`./jszip.min-XyfP2hUJ.js`).then(t=>e(t.default,1)),__vite__mapDeps([0,1]));return t.default||t},[]),d=(e,t=null)=>{if(!t)return e;let n=document.createElement(`canvas`);n.width=e.width,n.height=e.height;let r=n.getContext(`2d`);return r.fillStyle=t,r.fillRect(0,0,n.width,n.height),r.drawImage(e,0,0),n},f=(0,L.useCallback)((e,n,r)=>{let i=e.offsetWidth,a=e.offsetHeight;e.style.width&&e.style.width.endsWith(`px`)&&(i=parseInt(e.style.width,10)),e.style.height&&e.style.height.endsWith(`px`)&&(a=parseInt(e.style.height,10));let o=i+0,s=a+0,c=Ct(r,`#ffffff`),l=n===`solid`,u=l?c:n===`transparent`?`transparent`:void 0,d=l?c:null,f=window.getComputedStyle(e),p=f.background&&f.background!==`none`?f.background:void 0,m=u??p??`transparent`,h=e.cloneNode(!0);h.style.position=`relative`,h.style.transform=`none`,h.style.transformOrigin=`top left`,h.style.width=`${i}px`,h.style.height=`${a}px`,h.style.overflow=`visible`,h.style.margin=`0`,u===void 0?p&&(h.style.background=p):h.style.background=u;let g=e=>{if(!e)return``;let t=e.split(`,`).map(e=>e.trim()).filter(e=>e&&!e.startsWith(`inset`));if(!t.length)return``;let n=``,r=-1;return t.forEach(e=>{let t=wt(e.replace(`inset`,``).trim());t&&t.blur>r&&(r=t.blur,n=`${t.offsetX}px ${t.offsetY}px ${t.blur}px ${t.color}`)}),n?`drop-shadow(${n})`:``};h.querySelectorAll(`[data-frame-shadow="true"], [data-device-wrapper="true"]`).forEach(e=>{let t=e?.dataset?.shadowStyle||`0 40px 140px -28px rgba(0,0,0,0.6)`,n=g(t);if(e.style.boxShadow=t,n){let t=e.style.filter===`none`?``:e.style.filter||``;e.style.filter=`${t} ${n}`.trim()}}),h.querySelectorAll(`[data-badge-text="true"]`).forEach(e=>{e.style.lineHeight=`0.55`,e.style.gap=`0px`,e.style.display=`flex`,e.style.flexDirection=`column`,e.style.justifyContent=`center`}),h.querySelectorAll(`[data-badge-line]`).forEach(e=>{let t=e.dataset.badgeLine;e.style.lineHeight=`0.55`,e.style.display=`block`,e.style.transform=`translateY(-3px)`,t===`1`&&(e.style.marginBottom=`-8px`),t===`2`&&(e.style.marginTop=`-10px`)});let _=e=>{if(!e)return{width:0,height:0};let t=e.getBoundingClientRect(),n=window.getComputedStyle(e);return{width:e.offsetWidth||t.width||parseFloat(n.width)||parseFloat(n.maxWidth)||parseFloat(n.minWidth)||0,height:e.offsetHeight||t.height||parseFloat(n.height)||parseFloat(n.maxHeight)||parseFloat(n.minHeight)||0}},v=document.createElement(`div`);v.style.position=`absolute`,v.style.top=`0px`,v.style.left=`0px`,v.style.background=m,v.style.boxShadow=`none`,v.style.borderRadius=`48px`,v.style.display=`inline-block`,v.style.overflow=`visible`,v.appendChild(h);let y=document.createElement(`div`);y.style.position=`fixed`,y.style.top=`-10000px`,y.style.left=`-10000px`,y.style.width=`${o}px`,y.style.height=`${s}px`,y.style.zIndex=`-1000`,y.style.background=m,y.style.overflow=`visible`,y.appendChild(v),document.body.appendChild(y);let b=[];h.querySelectorAll(`[data-device-wrapper="true"]`).forEach(e=>{let t=e.querySelector(`[data-frame-shadow="true"]`),n=t?.getBoundingClientRect(),r=t?.dataset?.shadowStyle||e.dataset.shadowStyle||e.style.boxShadow||`0 40px 140px -28px rgba(0,0,0,0.6)`,i=t?.style?.borderRadius||e.style.borderRadius||`48px`,a=_(t),o=_(e),s=o.width||a.width,c=o.height||a.height,l=y.getBoundingClientRect(),u=n||e.getBoundingClientRect(),d={width:u.width||s||0,height:u.height||c||0},f=u.left-l.left,p=u.top-l.top;b.push({x:f,y:p,width:d.width,height:d.height,radius:parseFloat(i)||48,shadow:r})});let x=[],S=!!h.querySelector(`[data-badge="true"]`),C=(()=>{let e=h.querySelector(`[data-device-wrapper="true"]`)?.dataset?.deviceName;return e&&Object.values(t||{}).find(t=>t.name===e)||null})()?.type===`watch`,w=h.querySelector(`[data-device-wrapper="true"]`);if(w){w.style.filter=`none`;let e=w.style.transform&&w.style.transform!==`none`?w.style.transform+` `:``,t=C?0:S?-1:-9;w.style.transform=`${e}translateY(${t}px)`.trim()}h.querySelectorAll(`[data-badge="true"]`).forEach(e=>{let t=e?.dataset?.shadowStyle||e.style.boxShadow||`0 6px 18px rgba(0,0,0,0.25)`,n=g(t);if(e.style.filter=`none`,e.style.boxShadow=t,!C){let t=window.getComputedStyle(e),n=parseFloat(t.marginTop)||0;e.style.marginTop=`${n-6}px`}let r=e.style.transform&&e.style.transform!==`none`?e.style.transform+` `:``;C||(e.style.transform=`${r}translateY(-2px)`.trim());let i=e.getBoundingClientRect();if(i?.width&&i?.height&&(e.style.width=`${i.width}px`,e.style.height=`${i.height}px`),e.style.whiteSpace=`nowrap`,e.style.wordBreak=`keep-all`,e.style.flexWrap=`nowrap`,e.style.overflow=`visible`,e.style.minWidth=`max-content`,e.querySelectorAll(`div[data-badge-text="true"]`).forEach(e=>{e.style.overflow=`visible`,e.style.height=`auto`,e.style.display=`flex`,e.style.flexDirection=`column`,e.style.paddingBottom=`20px`,e.style.marginBottom=`-20px`}),e.querySelectorAll(`span`).forEach(e=>{let t=e.style.transform&&e.style.transform!==`none`?e.style.transform+` `:``;e.dataset?.badgeScore===`true`?e.style.transform=C?`translateY(-8px)`:`translateY(-12px)`:C?e.style.transform=`${t}translateY(-5px)`.trim():e.style.transform=`${t}translateY(-11px)`.trim(),e.style.letterSpacing=`normal`,e.style.whiteSpace=`nowrap`,e.style.wordBreak=`keep-all`,e.style.lineHeight=`1.2`,e.style.paddingBottom=`0px`,e.style.marginBottom=`0px`,e.style.display=`block`,e.style.overflow=`visible`}),n){let t=e.style.filter===`none`?``:e.style.filter||``;e.style.filter=`${t} ${n}`.trim()}}),h.querySelectorAll(`[data-watermark-badge="true"]`).forEach(e=>{e.style.display=`flex`,e.style.alignItems=`center`,e.style.justifyContent=`center`,e.querySelectorAll(`span`).forEach(e=>{e.style.transform=`translateY(-5.5px)`,e.style.display=`inline-block`,e.style.lineHeight=`1`})}),h.querySelectorAll(`h1, h2`).forEach(e=>{e.style.overflow=`visible`,e.style.textOverflow=`clip`,e.style.textShadow=`none`;let t=C?8:15;e.style.paddingBottom=`${t}px`;let n=window.getComputedStyle(e),r=parseFloat(n.marginTop)||0,i=parseFloat(n.marginBottom)||0;if(C||(e.style.marginTop=`${r-23}px`),e.tagName===`H1`?C?e.style.marginBottom=`${i-2}px`:e.style.marginBottom=`${i+32}px`:!C&&S?e.style.marginBottom=`-4px`:C&&S?e.style.marginBottom=`${i+4}px`:e.style.marginBottom=`${i}px`,e.tagName===`H2`){if(!C){let t=S?-14:-16;e.style.transform=`translateY(${t}px)`}}else C||(e.style.transform=`translateY(-13px)`);e.style.display=`block`});let T=h.querySelector(`h1`);if(T?.parentElement){let e=T.parentElement,t=window.getComputedStyle(e),n=parseFloat(t.rowGap||t.gap)||0,r=parseFloat(t.marginTop)||0;C?e.style.marginTop=`${r-18}px`:e.style.marginTop=`${r-4}px`;let i=n||16;e.style.rowGap=`${i}px`,e.style.gap=`${i}px`}return St(h),{clone:h,container:y,width:o,height:s,backgroundColor:d,captureBackground:null,manualShadows:x,baseWidth:i,baseHeight:a,padTotal:0}},[t]);return{exportSingle:(0,L.useCallback)(async(e,t)=>{if(!e)return!1;a(!0),s({current:0,total:0});let i=null,o=!1;try{let a=await c(),{clone:s,container:l,width:u,height:p,backgroundColor:m,captureBackground:h,manualShadows:g,padTotal:_,baseWidth:v,baseHeight:y}=f(e,n,r);i=l,await Lt(),Bt(s),await Lt();let b=d(await a(l,{backgroundColor:h??null,scale:2,logging:!1,useCORS:!0,allowTaint:!0,scrollX:0,scrollY:0,width:u,height:p,windowWidth:u,windowHeight:p}),m??`#ffffff`,g,2),x=document.createElement(`canvas`);x.width=v,x.height=y,x.getContext(`2d`).drawImage(b,0,0,b.width,b.height,0,0,x.width,x.height);let S=document.createElement(`a`);S.download=t,S.href=x.toDataURL(`image/png`),S.click(),o=!0}catch(e){console.error(`Export failed`,e)}finally{i&&i.parentNode&&i.parentNode.removeChild(i),a(!1),s({current:0,total:0})}return o},[n,c,r,f]),exportBatch:(0,L.useCallback)(async({locales:e,slides:i,selectedDeviceIds:o,getElementById:l,signal:p,onTaskStart:m,outputMode:h=`locale`})=>{if(!e?.length||!i?.length||!o?.length)return;let g=()=>xt(p);g(),a(!0);let _=e.length*i.length*o.length;s({current:0,total:_});let v=0;try{let[a,p]=await Promise.all([c(),u()]);g();let y=new p,b=y.folder(`fastlane`).folder(`screenshots`),x=h===`device`?`device`:`locale`,S=async({localeId:e,slideIndex:t,deviceId:o})=>{g();let c=l(o);if(!c)return;if(typeof m==`function`)try{m({localeId:e,slideIndex:t,slideNumber:t+1,deviceId:o,current:v+1,total:_})}catch(e){console.warn(`onTaskStart failed`,e)}let u=i[t],p=u?.texts?.[e]||{header:``,sub:``},h=(t+1).toString(),{clone:y,container:S,width:C,height:w,backgroundColor:T,captureBackground:E,manualShadows:D,padTotal:O,baseWidth:k,baseHeight:A}=f(c,n,r);try{g();let t=y.querySelector(`h1`),n=y.querySelector(`h2`);t&&(t.textContent=p.header),n&&(n.textContent=p.sub);let r=y.querySelector(`div[data-type="screen-image"]`);if(r){let t=u?.screenshotsByLocale?.[e]||u?.screenshot||null;r.style.backgroundImage=t?`url(${t})`:`none`}await Lt(),Bt(y),await Lt(),g();let i=await a(S,{scale:2,backgroundColor:E??null,useCORS:!0,scrollX:0,scrollY:0,width:C,height:w,windowWidth:C,windowHeight:w});g();let s=d(i,T??`#ffffff`,D,2),c=document.createElement(`canvas`);c.width=k,c.height=A,c.getContext(`2d`).drawImage(s,0,0,s.width,s.height,0,0,c.width,c.height),g();let l=c.toDataURL(`image/png`).replace(/^data:image\/(png|jpg);base64,/,``),f=String(o).toLowerCase();x===`device`?b.folder(f).file(`${e}_${h}.png`,l,{base64:!0}):b.folder(e).file(`${f}_${h}.png`,l,{base64:!0})}finally{S.parentNode&&document.body.removeChild(S)}v+=1,s({current:v,total:_}),g()};if(x===`device`)for(let t of o){g();for(let n of e){g();for(let e=0;e<i.length;e++)await S({localeId:n.id,slideIndex:e,deviceId:t});await new Promise(e=>setTimeout(e,50)),g()}}else for(let t of e){g();for(let e=0;e<i.length;e++){g();for(let n of o)await S({localeId:t.id,slideIndex:e,deviceId:n})}await new Promise(e=>setTimeout(e,50)),g()}let C={schemaVersion:1,generatedAt:new Date().toISOString(),structure:{root:`fastlane/screenshots`,mode:x,filePattern:x===`device`?`{deviceId}/{locale}_{index}.png`:`{locale}/{deviceId}_{index}.png`},counts:{locales:e.length,slides:i.length,devices:o.length,images:_},locales:e.map(e=>({id:e.id,name:e.name||``})),devices:o.map(e=>{let n=t?.[e]||{};return{id:e,group:n.group||``,storeLabel:n.storeLabel||n.name||e,modelLabel:n.modelLabel||``,width:n.width||null,height:n.height||null}})};y.file(`manifest.json`,JSON.stringify(C,null,2));let w=await y.generateAsync({type:`blob`});g();let T=window.URL.createObjectURL(w),E=document.createElement(`a`);E.href=T,E.download=`fastlane_assets.zip`,document.body.appendChild(E),E.click(),setTimeout(()=>{window.URL.revokeObjectURL(T),E.remove()},1500)}catch(e){throw e?.message!==`Aborted`&&console.error(e),e}finally{a(!1),s({current:0,total:0})}},[n,t,c,u,r,f]),isExporting:i,exportProgress:o}}var Ht={bgType:`solid`,bgColor:`#0f172a`,layoutMode:`standard`,textColor:`#f8fafc`,locales:[{id:`en-US`,name:`English (US)`,flag:`🇺🇸`},{id:`ja-JP`,name:`日本語`,flag:`🇯🇵`}],currentLocaleId:`en-US`,selectedBatchDevices:[`iphone69`],slides:[{id:1,screenshot:null,screenshotsByLocale:{},texts:{"en-US":{header:`Screenshots as a build step`,sub:`Keep Figma and compile release-ready outputs`},"ja-JP":{header:`スクショをビルド工程へ`,sub:`Figmaはそのまま、提出向け出力へ変換`}}},{id:2,screenshot:null,screenshotsByLocale:{},texts:{"en-US":{header:`The matrix explodes fast`,sub:`5 shots × 10 locales × 4 sizes = 200 images`},"ja-JP":{header:`端末×言語が爆発`,sub:`5枚×10言語×4サイズ = 200枚`}}},{id:3,screenshot:null,screenshotsByLocale:{},texts:{"en-US":{header:`Reproducible exports`,sub:`Fastlane-ready ZIP every release`},"ja-JP":{header:`再現性のある出力`,sub:`Fastlane 対応 ZIP を再実行`}}},{id:4,screenshot:null,screenshotsByLocale:{},texts:{"en-US":{header:`Bring your translations`,sub:`Keep layout stable across locales`},"ja-JP":{header:`翻訳は外部でOK`,sub:`レイアウトは崩れない`}}},{id:5,screenshot:null,screenshotsByLocale:{},texts:{"en-US":{header:`Try it free`,sub:`Sample → edit → export`},"ja-JP":{header:`無料で試す`,sub:`サンプル → 編集 → Export`}}}]},Ut=e(t(((e,t)=>{((n,r)=>{typeof define==`function`&&define.amd?define([],r):typeof t==`object`&&e!==void 0?t.exports=r():n.Papa=r()})(e,function e(){var t=typeof self<`u`?self:typeof window<`u`?window:t===void 0?{}:t,n,r=!t.document&&!!t.postMessage,i=t.IS_PAPA_WORKER||!1,a={},o=0,s={};function c(e){this._handle=null,this._finished=!1,this._completed=!1,this._halted=!1,this._input=null,this._baseIndex=0,this._partialLine=``,this._rowCount=0,this._start=0,this._nextChunk=null,this.isFirstChunk=!0,this._completeResults={data:[],errors:[],meta:{}},function(e){var t=y(e);t.chunkSize=parseInt(t.chunkSize),e.step||e.chunk||(t.chunkSize=null),this._handle=new p(t),(this._handle.streamer=this)._config=t}.call(this,e),this.parseChunk=function(e,n){var r=parseInt(this._config.skipFirstNLines)||0;if(this.isFirstChunk&&0<r){let t=this._config.newline;t||=(a=this._config.quoteChar||`"`,this._handle.guessLineEndings(e,a)),e=[...e.split(t).slice(r)].join(t)}this.isFirstChunk&&x(this._config.beforeFirstChunk)&&(a=this._config.beforeFirstChunk(e))!==void 0&&(e=a),this.isFirstChunk=!1,this._halted=!1;var r=this._partialLine+e,a=(this._partialLine=``,this._handle.parse(r,this._baseIndex,!this._finished));if(!this._handle.paused()&&!this._handle.aborted()){if(e=a.meta.cursor,r=(this._finished||(this._partialLine=r.substring(e-this._baseIndex),this._baseIndex=e),a&&a.data&&(this._rowCount+=a.data.length),this._finished||this._config.preview&&this._rowCount>=this._config.preview),i)t.postMessage({results:a,workerId:s.WORKER_ID,finished:r});else if(x(this._config.chunk)&&!n){if(this._config.chunk(a,this._handle),this._handle.paused()||this._handle.aborted())return void(this._halted=!0);this._completeResults=a=void 0}return this._config.step||this._config.chunk||(this._completeResults.data=this._completeResults.data.concat(a.data),this._completeResults.errors=this._completeResults.errors.concat(a.errors),this._completeResults.meta=a.meta),this._completed||!r||!x(this._config.complete)||a&&a.meta.aborted||(this._config.complete(this._completeResults,this._input),this._completed=!0),r||a&&a.meta.paused||this._nextChunk(),a}this._halted=!0},this._sendError=function(e){x(this._config.error)?this._config.error(e):i&&this._config.error&&t.postMessage({workerId:s.WORKER_ID,error:e,finished:!1})}}function l(e){var t;(e||={}).chunkSize||(e.chunkSize=s.RemoteChunkSize),c.call(this,e),this._nextChunk=r?function(){this._readChunk(),this._chunkLoaded()}:function(){this._readChunk()},this.stream=function(e){this._input=e,this._nextChunk()},this._readChunk=function(){if(this._finished)this._chunkLoaded();else{if(t=new XMLHttpRequest,this._config.withCredentials&&(t.withCredentials=this._config.withCredentials),r||(t.onload=b(this._chunkLoaded,this),t.onerror=b(this._chunkError,this)),t.open(this._config.downloadRequestBody?`POST`:`GET`,this._input,!r),this._config.downloadRequestHeaders){var e,n=this._config.downloadRequestHeaders;for(e in n)t.setRequestHeader(e,n[e])}var i;this._config.chunkSize&&(i=this._start+this._config.chunkSize-1,t.setRequestHeader(`Range`,`bytes=`+this._start+`-`+i));try{t.send(this._config.downloadRequestBody)}catch(e){this._chunkError(e.message)}r&&t.status===0&&this._chunkError()}},this._chunkLoaded=function(){t.readyState===4&&(t.status<200||400<=t.status?this._chunkError():(this._start+=this._config.chunkSize||t.responseText.length,this._finished=!this._config.chunkSize||this._start>=(e=>(e=e.getResponseHeader(`Content-Range`))===null?-1:parseInt(e.substring(e.lastIndexOf(`/`)+1)))(t),this.parseChunk(t.responseText)))},this._chunkError=function(e){e=t.statusText||e,this._sendError(Error(e))}}function u(e){(e||={}).chunkSize||(e.chunkSize=s.LocalChunkSize),c.call(this,e);var t,n,r=typeof FileReader<`u`;this.stream=function(e){this._input=e,n=e.slice||e.webkitSlice||e.mozSlice,r?((t=new FileReader).onload=b(this._chunkLoaded,this),t.onerror=b(this._chunkError,this)):t=new FileReaderSync,this._nextChunk()},this._nextChunk=function(){this._finished||this._config.preview&&!(this._rowCount<this._config.preview)||this._readChunk()},this._readChunk=function(){var e=this._input,i=(this._config.chunkSize&&(i=Math.min(this._start+this._config.chunkSize,this._input.size),e=n.call(e,this._start,i)),t.readAsText(e,this._config.encoding));r||this._chunkLoaded({target:{result:i}})},this._chunkLoaded=function(e){this._start+=this._config.chunkSize,this._finished=!this._config.chunkSize||this._start>=this._input.size,this.parseChunk(e.target.result)},this._chunkError=function(){this._sendError(t.error)}}function d(e){var t;c.call(this,e||={}),this.stream=function(e){return t=e,this._nextChunk()},this._nextChunk=function(){var e,n;if(!this._finished)return e=this._config.chunkSize,t=e?(n=t.substring(0,e),t.substring(e)):(n=t,``),this._finished=!t,this.parseChunk(n)}}function f(e){c.call(this,e||={});var t=[],n=!0,r=!1;this.pause=function(){c.prototype.pause.apply(this,arguments),this._input.pause()},this.resume=function(){c.prototype.resume.apply(this,arguments),this._input.resume()},this.stream=function(e){this._input=e,this._input.on(`data`,this._streamData),this._input.on(`end`,this._streamEnd),this._input.on(`error`,this._streamError)},this._checkIsFinished=function(){r&&t.length===1&&(this._finished=!0)},this._nextChunk=function(){this._checkIsFinished(),t.length?this.parseChunk(t.shift()):n=!0},this._streamData=b(function(e){try{t.push(typeof e==`string`?e:e.toString(this._config.encoding)),n&&(n=!1,this._checkIsFinished(),this.parseChunk(t.shift()))}catch(e){this._streamError(e)}},this),this._streamError=b(function(e){this._streamCleanUp(),this._sendError(e)},this),this._streamEnd=b(function(){this._streamCleanUp(),r=!0,this._streamData(``)},this),this._streamCleanUp=b(function(){this._input.removeListener(`data`,this._streamData),this._input.removeListener(`end`,this._streamEnd),this._input.removeListener(`error`,this._streamError)},this)}function p(e){var t,n,r,i,a=2**53,o=-a,c=/^\s*-?(\d+\.?|\.\d+|\d+\.\d+)([eE][-+]?\d+)?\s*$/,l=/^((\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d\.\d+([+-][0-2]\d:[0-5]\d|Z))|(\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d([+-][0-2]\d:[0-5]\d|Z))|(\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d([+-][0-2]\d:[0-5]\d|Z)))$/,u=this,d=0,f=0,p=!1,g=!1,_=[],v={data:[],errors:[],meta:{}};function b(t){return e.skipEmptyLines===`greedy`?t.join(``).trim()===``:t.length===1&&t[0].length===0}function S(){if(v&&r&&(w(`Delimiter`,`UndetectableDelimiter`,`Unable to auto-detect delimiting character; defaulted to '`+s.DefaultDelimiter+`'`),r=!1),e.skipEmptyLines&&(v.data=v.data.filter(function(e){return!b(e)})),C()){if(v)if(Array.isArray(v.data[0])){for(var t=0;C()&&t<v.data.length;t++)v.data[t].forEach(n);v.data.splice(0,1)}else v.data.forEach(n);function n(t,n){x(e.transformHeader)&&(t=e.transformHeader(t,n)),_.push(t)}}function n(t,n){for(var r=e.header?{}:[],i=0;i<t.length;i++){var s=i,u=t[i],u=((t,n)=>(t=>(e.dynamicTypingFunction&&e.dynamicTyping[t]===void 0&&(e.dynamicTyping[t]=e.dynamicTypingFunction(t)),!0===(e.dynamicTyping[t]||e.dynamicTyping)))(t)?n===`true`||n===`TRUE`||n!==`false`&&n!==`FALSE`&&((e=>{if(c.test(e)&&(e=parseFloat(e),o<e&&e<a))return 1})(n)?parseFloat(n):l.test(n)?new Date(n):n===``?null:n):n)(s=e.header?i>=_.length?`__parsed_extra`:_[i]:s,u=e.transform?e.transform(u,s):u);s===`__parsed_extra`?(r[s]=r[s]||[],r[s].push(u)):r[s]=u}return e.header&&(i>_.length?w(`FieldMismatch`,`TooManyFields`,`Too many fields: expected `+_.length+` fields but parsed `+i,f+n):i<_.length&&w(`FieldMismatch`,`TooFewFields`,`Too few fields: expected `+_.length+` fields but parsed `+i,f+n)),r}var i;v&&(e.header||e.dynamicTyping||e.transform)&&(i=1,!v.data.length||Array.isArray(v.data[0])?(v.data=v.data.map(n),i=v.data.length):v.data=n(v.data,0),e.header&&v.meta&&(v.meta.fields=_),f+=i)}function C(){return e.header&&_.length===0}function w(e,t,n,r){e={type:e,code:t,message:n},r!==void 0&&(e.row=r),v.errors.push(e)}x(e.step)&&(i=e.step,e.step=function(t){v=t,C()?S():(S(),v.data.length!==0&&(d+=t.data.length,e.preview&&d>e.preview?n.abort():(v.data=v.data[0],i(v,u))))}),this.parse=function(i,a,o){var c=e.quoteChar||`"`,c=(e.newline||=this.guessLineEndings(i,c),r=!1,e.delimiter?x(e.delimiter)&&(e.delimiter=e.delimiter(i),v.meta.delimiter=e.delimiter):((c=((t,n,r,i,a)=>{var o,c,l,u;a||=[`,`,` `,`|`,`;`,s.RECORD_SEP,s.UNIT_SEP];for(var d=0;d<a.length;d++){for(var f,p=a[d],m=0,g=0,_=0,v=(l=void 0,new h({comments:i,delimiter:p,newline:n,preview:10}).parse(t)),y=0;y<v.data.length;y++)r&&b(v.data[y])?_++:(f=v.data[y].length,g+=f,l===void 0?l=f:0<f&&(m+=Math.abs(f-l),l=f));0<v.data.length&&(g/=v.data.length-_),(c===void 0||m<=c)&&(u===void 0||u<g)&&1.99<g&&(c=m,o=p,u=g)}return{successful:!!(e.delimiter=o),bestDelimiter:o}})(i,e.newline,e.skipEmptyLines,e.comments,e.delimitersToGuess)).successful?e.delimiter=c.bestDelimiter:(r=!0,e.delimiter=s.DefaultDelimiter),v.meta.delimiter=e.delimiter),y(e));return e.preview&&e.header&&c.preview++,t=i,n=new h(c),v=n.parse(t,a,o),S(),p?{meta:{paused:!0}}:v||{meta:{paused:!1}}},this.paused=function(){return p},this.pause=function(){p=!0,n.abort(),t=x(e.chunk)?``:t.substring(n.getCharIndex())},this.resume=function(){u.streamer._halted?(p=!1,u.streamer.parseChunk(t,!0)):setTimeout(u.resume,3)},this.aborted=function(){return g},this.abort=function(){g=!0,n.abort(),v.meta.aborted=!0,x(e.complete)&&e.complete(v),t=``},this.guessLineEndings=function(e,t){e=e.substring(0,1048576);var t=RegExp(m(t)+`([^]*?)`+m(t),`gm`),n=(e=e.replace(t,``)).split(`\r`),t=e.split(`
3
+ `),e=1<t.length&&t[0].length<n[0].length;if(n.length===1||e)return`
4
+ `;for(var r=0,i=0;i<n.length;i++)n[i][0]===`
5
+ `&&r++;return r>=n.length/2?`\r
6
+ `:`\r`}}function m(e){return e.replace(/[.*+?^${}()|[\]\\]/g,`\\$&`)}function h(e){var t=(e||={}).delimiter,n=e.newline,r=e.comments,i=e.step,a=e.preview,o=e.fastMode,c=null,l=!1,u=e.quoteChar==null?`"`:e.quoteChar,d=u;if(e.escapeChar!==void 0&&(d=e.escapeChar),(typeof t!=`string`||-1<s.BAD_DELIMITERS.indexOf(t))&&(t=`,`),r===t)throw Error(`Comment character same as delimiter`);!0===r?r=`#`:(typeof r!=`string`||-1<s.BAD_DELIMITERS.indexOf(r))&&(r=!1),n!==`
7
+ `&&n!==`\r`&&n!==`\r
8
+ `&&(n=`
9
+ `);var f=0,p=!1;this.parse=function(s,h,g){if(typeof s!=`string`)throw Error(`Input must be a string`);var _=s.length,v=t.length,y=n.length,b=r.length,S=x(i),C=[],w=[],T=[],E=f=0;if(!s)return N();if(o||!1!==o&&s.indexOf(u)===-1){for(var D=s.split(n),O=0;O<D.length;O++){if(T=D[O],f+=T.length,O!==D.length-1)f+=n.length;else if(g)return N();if(!r||T.substring(0,b)!==r){if(S){if(C=[],te(T.split(t)),ae(),p)return N()}else te(T.split(t));if(a&&a<=O)return C=C.slice(0,a),N(!0)}}return N()}for(var k=s.indexOf(t,f),A=s.indexOf(n,f),j=new RegExp(m(d)+m(u),`g`),M=s.indexOf(u,f);;)if(s[f]===u)for(M=f,f++;;){if((M=s.indexOf(u,M+1))===-1)return g||w.push({type:`Quotes`,code:`MissingQuotes`,message:`Quoted field unterminated`,row:C.length,index:f}),re();if(M===_-1)return re(s.substring(f,M).replace(j,u));if(u===d&&s[M+1]===d)M++;else if(u===d||M===0||s[M-1]!==d){k!==-1&&k<M+1&&(k=s.indexOf(t,M+1));var ee=ne((A=A!==-1&&A<M+1?s.indexOf(n,M+1):A)===-1?k:Math.min(k,A));if(s.substr(M+1+ee,v)===t){T.push(s.substring(f,M).replace(j,u)),s[f=M+1+ee+v]!==u&&(M=s.indexOf(u,f)),k=s.indexOf(t,f),A=s.indexOf(n,f);break}if(ee=ne(A),s.substring(M+1+ee,M+1+ee+y)===n){if(T.push(s.substring(f,M).replace(j,u)),ie(M+1+ee+y),k=s.indexOf(t,f),M=s.indexOf(u,f),S&&(ae(),p))return N();if(a&&C.length>=a)return N(!0);break}w.push({type:`Quotes`,code:`InvalidQuotes`,message:`Trailing quote on quoted field is malformed`,row:C.length,index:f}),M++}}else if(r&&T.length===0&&s.substring(f,f+b)===r){if(A===-1)return N();f=A+y,A=s.indexOf(n,f),k=s.indexOf(t,f)}else if(k!==-1&&(k<A||A===-1))T.push(s.substring(f,k)),f=k+v,k=s.indexOf(t,f);else{if(A===-1)break;if(T.push(s.substring(f,A)),ie(A+y),S&&(ae(),p))return N();if(a&&C.length>=a)return N(!0)}return re();function te(e){C.push(e),E=f}function ne(e){var t=0;return t=e!==-1&&(e=s.substring(M+1,e))&&e.trim()===``?e.length:t}function re(e){return g||(e===void 0&&(e=s.substring(f)),T.push(e),f=_,te(T),S&&ae()),N()}function ie(e){f=e,te(T),T=[],A=s.indexOf(n,f)}function N(r){if(e.header&&!h&&C.length&&!l){var i=C[0],a=Object.create(null),o=new Set(i);let t=!1;for(let n=0;n<i.length;n++){let r=i[n];if(a[r=x(e.transformHeader)?e.transformHeader(r,n):r]){let e,s=a[r];for(;e=r+`_`+s,s++,o.has(e););o.add(e),i[n]=e,a[r]++,t=!0,(c=c===null?{}:c)[e]=r}else a[r]=1,i[n]=r;o.add(r)}t&&console.warn(`Duplicate headers found and renamed.`),l=!0}return{data:C,errors:w,meta:{delimiter:t,linebreak:n,aborted:p,truncated:!!r,cursor:E+(h||0),renamedHeaders:c}}}function ae(){i(N()),C=[],w=[]}},this.abort=function(){p=!0},this.getCharIndex=function(){return f}}function g(e){var t=e.data,n=a[t.workerId],r=!1;if(t.error)n.userError(t.error,t.file);else if(t.results&&t.results.data){var i={abort:function(){r=!0,_(t.workerId,{data:[],errors:[],meta:{aborted:!0}})},pause:v,resume:v};if(x(n.userStep)){for(var o=0;o<t.results.data.length&&(n.userStep({data:t.results.data[o],errors:t.results.errors,meta:t.results.meta},i),!r);o++);delete t.results}else x(n.userChunk)&&(n.userChunk(t.results,i,t.file),delete t.results)}t.finished&&!r&&_(t.workerId,t.results)}function _(e,t){var n=a[e];x(n.userComplete)&&n.userComplete(t),n.terminate(),delete a[e]}function v(){throw Error(`Not implemented.`)}function y(e){if(typeof e!=`object`||!e)return e;var t,n=Array.isArray(e)?[]:{};for(t in e)n[t]=y(e[t]);return n}function b(e,t){return function(){e.apply(t,arguments)}}function x(e){return typeof e==`function`}return s.parse=function(n,r){var i=(r||={}).dynamicTyping||!1;if(x(i)&&(r.dynamicTypingFunction=i,i={}),r.dynamicTyping=i,r.transform=!!x(r.transform)&&r.transform,!r.worker||!s.WORKERS_SUPPORTED)return i=null,s.NODE_STREAM_INPUT,typeof n==`string`?(n=(e=>e.charCodeAt(0)===65279?e.slice(1):e)(n),i=new(r.download?l:d)(r)):!0===n.readable&&x(n.read)&&x(n.on)?i=new f(r):(t.File&&n instanceof File||n instanceof Object)&&(i=new u(r)),i.stream(n);(i=(()=>{var n;return!!s.WORKERS_SUPPORTED&&(n=(()=>{var n=t.URL||t.webkitURL||null,r=e.toString();return s.BLOB_URL||=n.createObjectURL(new Blob([`var global = (function() { if (typeof self !== 'undefined') { return self; } if (typeof window !== 'undefined') { return window; } if (typeof global !== 'undefined') { return global; } return {}; })(); global.IS_PAPA_WORKER=true; `,`(`,r,`)();`],{type:`text/javascript`}))})(),(n=new t.Worker(n)).onmessage=g,n.id=o++,a[n.id]=n)})()).userStep=r.step,i.userChunk=r.chunk,i.userComplete=r.complete,i.userError=r.error,r.step=x(r.step),r.chunk=x(r.chunk),r.complete=x(r.complete),r.error=x(r.error),delete r.worker,i.postMessage({input:n,config:r,workerId:i.id})},s.unparse=function(e,t){var n=!1,r=!0,i=`,`,a=`\r
10
+ `,o=`"`,c=o+o,l=!1,u=null,d=!1,f=((()=>{if(typeof t==`object`){if(typeof t.delimiter!=`string`||s.BAD_DELIMITERS.filter(function(e){return t.delimiter.indexOf(e)!==-1}).length||(i=t.delimiter),typeof t.quotes!=`boolean`&&typeof t.quotes!=`function`&&!Array.isArray(t.quotes)||(n=t.quotes),typeof t.skipEmptyLines!=`boolean`&&typeof t.skipEmptyLines!=`string`||(l=t.skipEmptyLines),typeof t.newline==`string`&&(a=t.newline),typeof t.quoteChar==`string`&&(o=t.quoteChar),typeof t.header==`boolean`&&(r=t.header),Array.isArray(t.columns)){if(t.columns.length===0)throw Error(`Option columns is empty`);u=t.columns}t.escapeChar!==void 0&&(c=t.escapeChar+o),t.escapeFormulae instanceof RegExp?d=t.escapeFormulae:typeof t.escapeFormulae==`boolean`&&t.escapeFormulae&&(d=/^[=+\-@\t\r].*$/)}})(),new RegExp(m(o),`g`));if(typeof e==`string`&&(e=JSON.parse(e)),Array.isArray(e)){if(!e.length||Array.isArray(e[0]))return p(null,e,l);if(typeof e[0]==`object`)return p(u||Object.keys(e[0]),e,l)}else if(typeof e==`object`)return typeof e.data==`string`&&(e.data=JSON.parse(e.data)),Array.isArray(e.data)&&(e.fields||=e.meta&&e.meta.fields||u,e.fields||=Array.isArray(e.data[0])?e.fields:typeof e.data[0]==`object`?Object.keys(e.data[0]):[],Array.isArray(e.data[0])||typeof e.data[0]==`object`||(e.data=[e.data])),p(e.fields||[],e.data||[],l);throw Error(`Unable to serialize unrecognized input`);function p(e,t,n){var o=``,s=(typeof e==`string`&&(e=JSON.parse(e)),typeof t==`string`&&(t=JSON.parse(t)),Array.isArray(e)&&0<e.length),c=!Array.isArray(t[0]);if(s&&r){for(var l=0;l<e.length;l++)0<l&&(o+=i),o+=h(e[l],l);0<t.length&&(o+=a)}for(var u=0;u<t.length;u++){var d=(s?e:t[u]).length,f=!1,p=s?Object.keys(t[u]).length===0:t[u].length===0;if(n&&!s&&(f=n===`greedy`?t[u].join(``).trim()===``:t[u].length===1&&t[u][0].length===0),n===`greedy`&&s){for(var m=[],g=0;g<d;g++){var _=c?e[g]:g;m.push(t[u][_])}f=m.join(``).trim()===``}if(!f){for(var v=0;v<d;v++){0<v&&!p&&(o+=i);var y=s&&c?e[v]:v;o+=h(t[u][y],v)}u<t.length-1&&(!n||0<d&&!p)&&(o+=a)}}return o}function h(e,t){var r,a;return e==null?``:e.constructor===Date?JSON.stringify(e).slice(1,25):(a=!1,d&&typeof e==`string`&&d.test(e)&&(e=`'`+e,a=!0),r=e.toString().replace(f,c),(a=a||!0===n||typeof n==`function`&&n(e,t)||Array.isArray(n)&&n[t]||((e,t)=>{for(var n=0;n<t.length;n++)if(-1<e.indexOf(t[n]))return!0;return!1})(r,s.BAD_DELIMITERS)||-1<r.indexOf(i)||r.charAt(0)===` `||r.charAt(r.length-1)===` `)?o+r+o:r)}},s.RECORD_SEP=``,s.UNIT_SEP=``,s.BYTE_ORDER_MARK=``,s.BAD_DELIMITERS=[`\r`,`
11
+ `,`"`,s.BYTE_ORDER_MARK],s.WORKERS_SUPPORTED=!r&&!!t.Worker,s.NODE_STREAM_INPUT=1,s.LocalChunkSize=10485760,s.RemoteChunkSize=5242880,s.DefaultDelimiter=`,`,s.Parser=h,s.ParserHandle=p,s.NetworkStreamer=l,s.FileStreamer=u,s.StringStreamer=d,s.ReadableStreamStreamer=f,t.jQuery&&((n=t.jQuery).fn.parse=function(e){var r=e.config||{},i=[];return this.each(function(e){if(!(n(this).prop(`tagName`).toUpperCase()===`INPUT`&&n(this).attr(`type`).toLowerCase()===`file`&&t.FileReader)||!this.files||this.files.length===0)return!0;for(var a=0;a<this.files.length;a++)i.push({file:this.files[a],inputElem:this,instanceConfig:n.extend({},r)})}),a(),this;function a(){if(i.length===0)x(e.complete)&&e.complete();else{var t,r,a,c,l=i[0];if(x(e.before)){var u=e.before(l.file,l.inputElem);if(typeof u==`object`){if(u.action===`abort`)return t=`AbortError`,r=l.file,a=l.inputElem,c=u.reason,void(x(e.error)&&e.error({name:t},r,a,c));if(u.action===`skip`)return void o();typeof u.config==`object`&&(l.instanceConfig=n.extend(l.instanceConfig,u.config))}else if(u===`skip`)return void o()}var d=l.instanceConfig.complete;l.instanceConfig.complete=function(e){x(d)&&d(e,l.file,l.inputElem),o()},s.parse(l.file,l.instanceConfig)}}function o(){i.splice(0,1),a()}}),i&&(t.onmessage=function(e){e=e.data,s.WORKER_ID===void 0&&e&&(s.WORKER_ID=e.workerId),typeof e.input==`string`?t.postMessage({workerId:s.WORKER_ID,results:s.parse(e.input,e.config),finished:!0}):(t.File&&e.input instanceof File||e.input instanceof Object)&&(e=s.parse(e.input,e.config))&&t.postMessage({workerId:s.WORKER_ID,results:e,finished:!0})}),(l.prototype=Object.create(c.prototype)).constructor=l,(u.prototype=Object.create(c.prototype)).constructor=u,(d.prototype=Object.create(d.prototype)).constructor=d,(f.prototype=Object.create(c.prototype)).constructor=f,s})}))(),1),Wt=[{id:`en-US`,name:`English (US)`,flag:`🇺🇸`},{id:`ja-JP`,name:`日本語`,flag:`🇯🇵`},{id:`es-ES`,name:`Español (España)`,flag:`🇪🇸`},{id:`fr-FR`,name:`Français`,flag:`🇫🇷`},{id:`de-DE`,name:`Deutsch`,flag:`🇩🇪`},{id:`it-IT`,name:`Italiano`,flag:`🇮🇹`},{id:`pt-BR`,name:`Português (Brasil)`,flag:`🇧🇷`},{id:`ko-KR`,name:`한국어`,flag:`🇰🇷`},{id:`zh-CN`,name:`简体中文`,flag:`🇨🇳`},{id:`zh-TW`,name:`繁體中文`,flag:`🇹🇼`},{id:`ru-RU`,name:`Русский`,flag:`🇷🇺`},{id:`id-ID`,name:`Bahasa Indonesia`,flag:`🇮🇩`},{id:`th-TH`,name:`ไทย`,flag:`🇹🇭`},{id:`vi-VN`,name:`Tiếng Việt`,flag:`🇻🇳`},{id:`tr-TR`,name:`Türkçe`,flag:`🇹🇷`},{id:`ar-SA`,name:`العربية`,flag:`🇸🇦`}],Gt=[{label:`EFIGS`,ids:[`en-US`,`fr-FR`,`it-IT`,`de-DE`,`es-ES`]},{label:`CJK`,ids:[`zh-CN`,`ja-JP`,`ko-KR`]}],Kt=({currentLocales:e,onAdd:t})=>{let{t:n}=c(),[r,i]=(0,L.useState)(!1),[a,o]=(0,L.useState)(``),s=(0,L.useRef)(null);(0,L.useEffect)(()=>{let e=e=>{s.current&&!s.current.contains(e.target)&&i(!1)};return document.addEventListener(`mousedown`,e),()=>document.removeEventListener(`mousedown`,e)},[]);let l=(0,L.useMemo)(()=>{let t=a.toLowerCase();return Wt.filter(n=>!e.some(e=>e.id===n.id)&&(n.name.toLowerCase().includes(t)||n.id.toLowerCase().includes(t)))},[a,e]),u=e=>{e&&(t([e]),o(``),i(!1))},d=n=>{let r=Wt.filter(t=>n.includes(t.id)&&!e.some(e=>e.id===t.id));r.length>0&&(t(r),i(!1))},f=n(`app.language.add`,`Add Language`),p=n(`app.language.searchPlaceholder`,`Search (e.g. ja, Japanese)`),m=n(`app.language.presets`,`Presets`),h=n(`app.language.noResults`,`No languages found`);return(0,R.jsx)(`div`,{className:`relative`,ref:s,children:r?(0,R.jsxs)(`div`,{className:`absolute top-0 left-0 w-64 bg-white rounded-xl shadow-xl border border-slate-200 z-50 overflow-hidden animate-in fade-in zoom-in-95 duration-100 origin-top-left`,children:[(0,R.jsx)(`div`,{className:`p-2 border-b border-slate-100`,children:(0,R.jsxs)(`div`,{className:`relative`,children:[(0,R.jsx)(Pe,{size:14,className:`absolute left-2 top-1/2 -translate-y-1/2 text-slate-400`}),(0,R.jsx)(`input`,{autoFocus:!0,type:`text`,value:a,onChange:e=>o(e.target.value),placeholder:p,className:`w-full pl-7 pr-2 py-1.5 text-xs bg-slate-50 border border-slate-200 rounded-md focus:outline-hidden focus:border-blue-500 focus:ring-1 focus:ring-blue-500`})]})}),a===``&&(0,R.jsxs)(`div`,{className:`p-2 border-b border-slate-100 bg-slate-50/50`,children:[(0,R.jsx)(`div`,{className:`text-[10px] font-bold text-slate-400 uppercase tracking-wider mb-1.5 px-1`,children:m}),(0,R.jsx)(`div`,{className:`flex gap-2`,children:Gt.map(e=>(0,R.jsxs)(`button`,{onClick:()=>d(e.ids),className:`flex-1 py-1 px-2 bg-white border border-slate-200 rounded-sm text-[10px] font-semibold text-slate-600 hover:border-blue-400 hover:text-blue-600 transition-colors`,children:[`+ `,e.label]},e.label))})]}),(0,R.jsx)(`div`,{className:`max-h-48 overflow-y-auto p-1`,children:l.length===0?(0,R.jsx)(`div`,{className:`text-center py-4 text-xs text-slate-400`,children:h}):l.map(e=>(0,R.jsxs)(`button`,{onClick:()=>u(e),className:`w-full flex items-center gap-2 px-2 py-1.5 rounded-sm hover:bg-blue-50 text-left transition-colors group`,children:[(0,R.jsx)(`span`,{className:`text-base leading-none`,children:e.flag}),(0,R.jsxs)(`div`,{className:`flex flex-col`,children:[(0,R.jsx)(`span`,{className:`text-xs font-medium text-slate-700 group-hover:text-blue-700`,children:e.name}),(0,R.jsx)(`span`,{className:`text-[10px] text-slate-400 group-hover:text-blue-400`,children:e.id})]})]},e.id))})]}):(0,R.jsxs)(`button`,{onClick:()=>i(!0),className:`flex items-center gap-1 px-3 py-1.5 rounded-lg border border-slate-200 bg-white text-xs font-medium text-slate-600 hover:bg-slate-50 hover:border-blue-300 transition-colors shadow-xs`,children:[(0,R.jsx)(ke,{size:14}),f]})})},qt=({selectedFont:e,setSelectedFont:t,fontOptions:n})=>{let[r,i]=(0,L.useState)(!1),a=(0,L.useRef)(null);(0,L.useEffect)(()=>{let e=e=>{a.current&&!a.current.contains(e.target)&&i(!1)};return document.addEventListener(`mousedown`,e),()=>document.removeEventListener(`mousedown`,e)},[]);let o=n.find(t=>t.value===e)||n[0];return(0,R.jsxs)(`div`,{className:`relative w-full`,ref:a,children:[(0,R.jsxs)(`button`,{onClick:()=>i(!r),className:`w-full flex items-center justify-between px-3 py-2 bg-white border border-slate-200 rounded-lg text-xs hover:border-blue-400 transition-colors`,children:[(0,R.jsx)(`span`,{style:{fontFamily:o?.family},className:`text-sm`,children:o?.name}),(0,R.jsx)(b,{size:14,className:`text-slate-400`})]}),r&&(0,R.jsx)(`div`,{className:`absolute top-full left-0 right-0 mt-1 bg-white border border-slate-200 rounded-lg shadow-xl z-50 max-h-60 overflow-y-auto`,children:n.map(n=>(0,R.jsxs)(`button`,{onClick:()=>{t(n.value),i(!1)},className:`w-full flex items-center justify-between px-3 py-2.5 text-left hover:bg-slate-50 transition-colors border-b border-slate-50 last:border-0`,children:[(0,R.jsxs)(`div`,{className:`flex flex-col gap-0.5`,children:[(0,R.jsx)(`span`,{className:`text-xs font-bold text-slate-700`,children:n.name}),(0,R.jsx)(`span`,{className:`text-lg text-slate-900 leading-tight`,style:{fontFamily:n.family},children:`ShipScreens 123`})]}),e===n.value&&(0,R.jsx)(y,{size:14,className:`text-blue-600`})]},n.value))})]})},Jt=`shipscreens_team_sync_v1`,Yt=()=>{if(typeof window>`u`)return{};try{return JSON.parse(localStorage.getItem(Jt)||`{}`)||{}}catch{return{}}},Xt=e=>{if(typeof window>`u`)return;let t=Yt();localStorage.setItem(Jt,JSON.stringify({...t,...e}))},Zt=e=>{if(!e)return``;try{return new Date(e*1e3).toISOString().replace(`T`,` `).slice(0,16)+` UTC`}catch{return``}},Qt=({token:e,captureTeamSpec:t,applyTeamSpec:n})=>{let{t:r}=c(),{addToast:i}=s(),a=(0,L.useMemo)(()=>Yt(),[]),[o,l]=(0,L.useState)([]),[u,d]=(0,L.useState)([]),[f,p]=(0,L.useState)(a.workspaceId||``),[m,h]=(0,L.useState)(a.projectId||``),[g,_]=(0,L.useState)(null),[v,y]=(0,L.useState)(null),[b,S]=(0,L.useState)(``),[T,E]=(0,L.useState)(null),[D,O]=(0,L.useState)(!1),[k,A]=(0,L.useState)(!1),j=(0,L.useCallback)(async()=>{if(e){A(!0);try{let t=(await ie(e))?.workspaces||[];l(t),f&&!t.some(e=>e.workspaceId===f)&&(p(``),h(``),Xt({workspaceId:``,projectId:``}))}catch(e){i({type:`error`,message:r(`app.teamSync.errors.fetchWorkspaces`)}),console.error(e)}finally{A(!1)}}},[i,r,e,f]),M=(0,L.useCallback)(async t=>{if(!(!e||!t)){A(!0);try{let n=(await le(t,e))?.projects||[];d(n),m&&!n.some(e=>e.projectId===m)&&(h(``),Xt({projectId:``}))}catch(e){i({type:`error`,message:r(`app.teamSync.errors.fetchProjects`)}),console.error(e)}finally{A(!1)}}},[i,m,r,e]),te=(0,L.useCallback)(async()=>{if(!(!e||!f||!m))try{let t=await oe(f,m,e);_(typeof t?.headRev==`number`?t.headRev:null),y(t?.headSha||null)}catch{_(null),y(null)}},[m,e,f]);(0,L.useEffect)(()=>{e&&j()},[j,e]),(0,L.useEffect)(()=>{if(e){if(!f){d([]),h(``),Xt({workspaceId:``,projectId:``});return}Xt({workspaceId:f}),M(f)}},[M,e,f]),(0,L.useEffect)(()=>{if(!m){_(null),y(null),Xt({projectId:``});return}Xt({projectId:m}),te()},[m,te]);let re=async()=>{if(e){O(!0);try{let t=(await ce({name:`Workspace`},e))?.workspaceId;if(!t)throw Error(`workspaceId missing`);i({type:`success`,message:r(`app.teamSync.toasts.workspaceCreated`)}),await j(),p(t)}catch(e){i({type:`error`,message:r(`app.teamSync.errors.createWorkspace`)}),console.error(e)}finally{O(!1)}}},ae=async()=>{if(!(!e||!f)){O(!0);try{let t=(await se(f,{name:`Project`},e))?.projectId;if(!t)throw Error(`projectId missing`);i({type:`success`,message:r(`app.teamSync.toasts.projectCreated`)}),await M(f),h(t),_(0),y(``)}catch(e){i({type:`error`,message:r(`app.teamSync.errors.createProject`)}),console.error(e)}finally{O(!1)}}},F=async()=>{if(!(!e||!f||!m)){O(!0);try{let t=await oe(f,m,e),a=t?.spec;if(!a){i({type:`info`,message:r(`app.teamSync.toasts.noRemoteSpec`)});return}n?.(a),_(typeof t?.headRev==`number`?t.headRev:null),y(t?.headSha||null),i({type:`success`,message:r(`app.teamSync.toasts.pulled`)})}catch(e){i({type:`error`,message:r(`app.teamSync.errors.pull`)}),console.error(e)}finally{O(!1)}}},ue=async()=>{if(!(!e||!f||!m)){O(!0);try{let n=await oe(f,m,e),a=Number(n?.headRev||0),o=t?.();if(!o)throw Error(`spec missing`);let s=await N(f,m,{baseRev:a,spec:o},e);if(s?.error===`conflict`){i({type:`error`,message:r(`app.teamSync.errors.conflict`)});return}_(typeof s?.headRev==`number`?s.headRev:null),y(s?.headSha||null),i({type:`success`,message:r(`app.teamSync.toasts.pushed`)})}catch(e){String(e?.message||``).includes(`409`)?i({type:`error`,message:r(`app.teamSync.errors.conflict`)}):i({type:`error`,message:r(`app.teamSync.errors.push`)}),console.error(e)}finally{O(!1)}}},de=async()=>{if(!(!e||!f)){O(!0);try{let t=await ne(f,{role:`editor`},e);if(!t?.token)throw Error(`invite token missing`);E(t),i({type:`success`,message:r(`app.teamSync.toasts.inviteCreated`),action:{label:r(`app.teamSync.copy`),onClick:async()=>{let e=await x(t.token);i({type:e.ok?`success`:`error`,message:e.ok?r(`common.copied`,{defaultValue:`Copied`}):r(`common.copyFailed`,{defaultValue:`Copy failed`})})}}})}catch(e){i({type:`error`,message:r(`app.teamSync.errors.invite`)}),console.error(e)}finally{O(!1)}}},fe=async()=>{if(!(!e||!b)){O(!0);try{let t=await P(b,e);if(!t?.workspaceId)throw Error(`workspaceId missing`);i({type:`success`,message:r(`app.teamSync.toasts.inviteAccepted`)}),S(``),await j(),p(t.workspaceId),h(``)}catch(e){i({type:`error`,message:r(`app.teamSync.errors.inviteAccept`)}),console.error(e)}finally{O(!1)}}},pe=!!e;return(0,R.jsxs)(`div`,{className:`bg-white p-4 rounded-xl border border-slate-200 shadow-xs space-y-3`,children:[(0,R.jsxs)(`div`,{className:`flex items-center justify-between gap-2`,children:[(0,R.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,R.jsx)(`div`,{className:`p-2 bg-slate-100 text-slate-700 rounded-lg border border-slate-200`,children:(0,R.jsx)(I,{size:18})}),(0,R.jsxs)(`div`,{children:[(0,R.jsx)(`h4`,{className:`text-sm font-bold text-slate-800`,children:r(`app.teamSync.title`)}),(0,R.jsx)(`div`,{className:`text-[10px] text-slate-500`,children:r(`app.teamSync.subtitle`)})]})]}),(0,R.jsx)(`button`,{type:`button`,onClick:j,disabled:!pe||k,className:`px-2 py-1 text-[10px] font-bold rounded-sm border border-slate-200 text-slate-600 hover:bg-slate-50 disabled:opacity-50`,title:r(`app.teamSync.refresh`),children:(0,R.jsxs)(`span`,{className:`inline-flex items-center gap-1`,children:[(0,R.jsx)(Ae,{size:12}),` `,r(`app.teamSync.refresh`)]})})]}),(0,R.jsxs)(`div`,{className:`flex gap-2 p-2 bg-slate-50 border border-slate-200 rounded-sm text-[10px] text-slate-600 leading-tight`,children:[(0,R.jsx)(ee,{size:14,className:`shrink-0 text-slate-400`}),(0,R.jsx)(`span`,{children:r(`app.teamSync.note`)})]}),pe?(0,R.jsxs)(R.Fragment,{children:[(0,R.jsxs)(`div`,{className:`grid grid-cols-1 gap-2`,children:[(0,R.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,R.jsxs)(`select`,{value:f,onChange:e=>p(e.target.value),className:`flex-1 px-2 py-2 rounded-sm border border-slate-200 bg-white text-xs text-slate-700`,children:[(0,R.jsx)(`option`,{value:``,children:r(`app.teamSync.selectWorkspace`)}),o.map(e=>(0,R.jsx)(`option`,{value:e.workspaceId,children:e.name},e.workspaceId))]}),(0,R.jsx)(`button`,{type:`button`,onClick:re,disabled:D,className:`px-3 py-2 rounded-sm bg-slate-800 text-white text-xs font-bold hover:bg-slate-700 disabled:opacity-50`,children:r(`app.teamSync.newWorkspace`)})]}),(0,R.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,R.jsxs)(`select`,{value:m,onChange:e=>h(e.target.value),disabled:!f,className:`flex-1 px-2 py-2 rounded-sm border border-slate-200 bg-white text-xs text-slate-700 disabled:opacity-50`,children:[(0,R.jsx)(`option`,{value:``,children:r(`app.teamSync.selectProject`)}),u.map(e=>(0,R.jsx)(`option`,{value:e.projectId,children:e.name},e.projectId))]}),(0,R.jsx)(`button`,{type:`button`,onClick:ae,disabled:D||!f,className:`px-3 py-2 rounded-sm bg-white border border-slate-200 text-slate-700 text-xs font-bold hover:bg-slate-50 disabled:opacity-50`,children:r(`app.teamSync.newProject`)})]})]}),(0,R.jsxs)(`div`,{className:`flex items-center justify-between text-[10px] text-slate-500`,children:[(0,R.jsx)(`div`,{children:g!==null&&(0,R.jsxs)(`span`,{className:`tabular-nums`,children:[r(`app.teamSync.head`),`: r`,g,v?` (${v.slice(0,7)})`:``]})}),f&&m&&(0,R.jsx)(`button`,{type:`button`,onClick:te,className:`text-[10px] font-bold text-slate-600 hover:underline`,children:r(`app.teamSync.refreshHead`)})]}),(0,R.jsxs)(`div`,{className:`grid grid-cols-2 gap-2`,children:[(0,R.jsx)(`button`,{type:`button`,onClick:F,disabled:D||!f||!m,className:`flex items-center justify-center gap-2 py-2 bg-white border border-slate-200 text-slate-700 rounded-lg hover:bg-slate-50 disabled:opacity-50`,children:(0,R.jsx)(`span`,{className:`text-xs font-bold`,children:r(`app.teamSync.pull`)})}),(0,R.jsx)(`button`,{type:`button`,onClick:ue,disabled:D||!f||!m,className:`flex items-center justify-center gap-2 py-2 bg-blue-600 text-white rounded-lg hover:bg-blue-700 disabled:opacity-50`,children:(0,R.jsx)(`span`,{className:`text-xs font-bold`,children:r(`app.teamSync.push`)})})]}),(0,R.jsxs)(`div`,{className:`space-y-2`,children:[(0,R.jsxs)(`div`,{className:`flex items-center justify-between`,children:[(0,R.jsx)(`div`,{className:`text-xs font-bold text-slate-700`,children:r(`app.teamSync.invites`)}),(0,R.jsx)(`button`,{type:`button`,onClick:de,disabled:D||!f,className:`text-[10px] font-bold text-blue-600 hover:underline disabled:opacity-50`,children:r(`app.teamSync.createInvite`)})]}),T?.token&&(0,R.jsxs)(`div`,{className:`flex items-center gap-2 p-2 bg-slate-50 border border-slate-200 rounded-sm`,children:[(0,R.jsx)(`code`,{className:`text-[10px] text-slate-700 break-all flex-1`,children:T.token}),(0,R.jsx)(C,{value:T.token,onCopied:()=>i({type:`success`,message:r(`common.copied`,{defaultValue:`Copied`})}),onCopyFailed:()=>i({type:`error`,message:r(`common.copyFailed`,{defaultValue:`Copy failed`})}),className:`p-1.5 rounded-sm border border-slate-200 bg-white text-slate-600 hover:bg-slate-50`,title:r(`app.teamSync.copy`),"aria-label":r(`app.teamSync.copy`),children:(0,R.jsx)(w,{size:12})})]}),T?.expiresAt&&(0,R.jsxs)(`div`,{className:`text-[10px] text-slate-500`,children:[r(`app.teamSync.expires`),`: `,Zt(T.expiresAt)]}),(0,R.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,R.jsx)(`input`,{value:b,onChange:e=>S(e.target.value),placeholder:r(`app.teamSync.invitePlaceholder`),className:`flex-1 px-2 py-2 rounded-sm border border-slate-200 bg-white text-xs text-slate-700`}),(0,R.jsx)(`button`,{type:`button`,onClick:fe,disabled:D||!b,className:`px-3 py-2 rounded-sm bg-white border border-slate-200 text-slate-700 text-xs font-bold hover:bg-slate-50 disabled:opacity-50`,children:r(`app.teamSync.acceptInvite`)})]})]})]}):(0,R.jsx)(`div`,{className:`text-xs text-slate-500`,children:r(`app.teamSync.signInRequired`)})]})},$t=({activeTab:e,viewMode:t,isMobile:n,controlsVisible:r,controlsTranslation:i,isControlsDragging:a,currentHeaderText:o,currentSubText:s,currentLocaleId:l,updateSlideText:u,currentScreenshot:d,screenshotUploadScope:f=`shared`,setScreenshotUploadScope:m=()=>{},hasCurrentLocaleScreenshotOverride:h=!1,currentSlideScreenshotsByLocale:g={},currentSlideLocaleScreenshotOverrideCount:v=0,hasAnyLocaleScreenshotOverrides:x=!1,hasSharedScreenshot:w=!1,clearCurrentSlideScreenshot:T=()=>{},clearAllCurrentSlideLocaleScreenshotOverrides:D=()=>{},handleFileChange:k,fileInputRef:ee,handleDropWrapper:te,handleDragOver:ne,handleDragEnter:re,handleDragLeave:ie,isDragging:N,locales:ae,setCurrentLocaleId:oe,removeLocale:se,handleAddLocales:ce,deviceId:P,setDeviceId:le,deviceLabelMode:pe=_t.store,setDeviceLabelMode:I=()=>{},orientation:ge,setOrientation:_e,isWatchSelected:Se,applyTheme:Ce,bgType:we,setBgType:Te,bgInputRef:Ee,handleBgDropWrapper:De,handleBgDragOver:ke,handleBgDragEnter:Ae,handleBgDragLeave:je,isBgDragging:Pe,handleBgFileChange:Ie,bgBlur:Ve,setBgBlur:He,bgOpacity:Ue,setBgOpacity:Ge,bgColor:Je,setBgColor:Ye,gradientStart:Xe,setGradientStart:Ze,gradientEnd:Qe,setGradientEnd:$e,frameColor:et,setFrameColor:tt,logoImage:nt,logoInputRef:rt,handleLogoDropWrapper:it,handleLogoDragOver:at,handleLogoDragEnter:ot,handleLogoDragLeave:st,isLogoDragging:ct,handleLogoFileChange:lt,handleLogoRemove:ut,overrideActive:B,ensureSlideOverride:dt,clearSlideOverride:ft,updateSlideOverride:pt,layoutMode:mt,setLayoutMode:ht,effectiveLayoutMode:gt,selectedFont:V,setSelectedFont:yt,fontOptions:xt,textColor:St,setTextColor:Ct,recentColors:wt=[],addRecentColor:H,effectiveTopSpacing:Tt,setTopSpacing:Et,effectiveDeviceScale:Dt,setDeviceScale:Ot,badgeType:kt,setBadgeType:At,applyPreset:jt,myPresets:Mt,requirePro:Nt,openSavePresetDialog:Pt,deleteUserPreset:Ft,isPro:It,storageUsage:Lt,saveProject:Rt,loadProject:zt,loadSampleProject:Bt=()=>{},setConfirmDialog:Vt,saveStatus:Ht,statusMessage:Ut,handleExportJSON:Wt,jsonInputRef:Gt,handleImportJSON:Jt,isJsonDragging:Yt,handleJsonDragOver:Xt,handleJsonDragEnter:Zt,handleJsonDragLeave:$t,handleJsonDropWrapper:en,isCsvDragging:tn,handleCsvDropWrapper:nn,handleCsvDragOver:rn,handleCsvDragEnter:an,handleCsvDragLeave:on,openCsvTemplateDialog:sn,csvInputRef:cn,handleCsvImport:ln,onImportLocaleScreenshots:un,selectedBatchDevices:dn,setSelectedBatchDevices:U=()=>{},toggleBatchDevice:fn,exportStructureMode:W=`locale`,setExportStructureMode:pn=()=>{},teamSyncEnabled:G=!1,teamSyncToken:K=null,captureTeamSpec:q=()=>null,applyTeamSpec:mn=()=>{},onTouchStart:hn,onTouchMove:gn,onTouchEnd:_n,i18n:vn})=>{let{t:J,i18n:Y}=c(),yn=vn||Y,[bn,xn]=(0,L.useState)(``),[Sn,Cn]=(0,L.useState)(!1),wn=(0,L.useRef)(null),Tn=(0,L.useRef)(null),En=(0,L.useRef)(null),Dn={iPhone:J(`app.device.groups.iPhone`),"iPhone Classic":J(`app.device.groups.iphoneClassic`),iPad:J(`app.device.groups.iPad`),Android:J(`app.device.groups.android`),"Android Tablet":J(`app.device.groups.androidTablet`),Watch:J(`app.device.groups.watch`)},On=J(`common.copy`,{defaultValue:`Copy`}),kn=J(`app.data.cliCmd`),An=(0,L.useMemo)(()=>t===`single`?new Set([P]):new Set(dn||[]),[P,dn,t]),jn=(0,L.useMemo)(()=>{let e={};return Object.entries(We).forEach(([t,n])=>{let r=bn?n.filter(e=>An.has(e)||bt(e,z[e],bn)):n;r.length&&(e[t]=r)}),An.forEach(t=>{let n=z[t]?.group;n&&(e[n]||=[],e[n].includes(t)||(e[n]=[t,...e[n]]))}),e},[An,bn]),Mn=({className:e=``})=>(0,R.jsxs)(`div`,{className:`space-y-1 ${e}`,children:[(0,R.jsxs)(`div`,{className:`flex gap-2 bg-slate-50 p-1 rounded-lg border border-slate-200`,children:[(0,R.jsx)(`button`,{type:`button`,onClick:()=>I(_t.store),className:`flex-1 py-1.5 rounded-md text-xs font-medium transition-colors ${pe===_t.store?`bg-white text-blue-600 shadow-xs`:`text-slate-500 hover:text-slate-700`}`,children:J(`app.device.labelMode.store`)}),(0,R.jsx)(`button`,{type:`button`,onClick:()=>I(_t.detailed),className:`flex-1 py-1.5 rounded-md text-xs font-medium transition-colors ${pe===_t.detailed?`bg-white text-blue-600 shadow-xs`:`text-slate-500 hover:text-slate-700`}`,children:J(`app.device.labelMode.detailed`)})]}),(0,R.jsx)(`div`,{className:`text-[10px] text-slate-400 leading-snug`,children:J(`app.device.labelModeHint`)})]}),X=(0,L.useMemo)(()=>({iosRequired:[`iphone69`,`iphone65`,`iphone55`,`ipad13`].filter(e=>z[e]),playPhone:(We.Android||[]).filter(e=>z[e]),playTablet:(We[`Android Tablet`]||[]).filter(e=>z[e]),all:Object.values(We).flat().filter(e=>z[e])}),[]),Nn=e=>{Array.isArray(e)&&U(Array.from(new Set(e)))},Pn=({onSelect:e})=>wt.length?(0,R.jsxs)(`div`,{className:`mt-2`,children:[(0,R.jsx)(`div`,{className:`text-[10px] text-slate-400 mb-1`,children:`Recent`}),(0,R.jsx)(`div`,{className:`flex flex-wrap gap-1`,children:wt.map(t=>(0,R.jsx)(`button`,{onClick:()=>e(t),className:`w-5 h-5 rounded-full border border-slate-200 shadow-xs transition-transform hover:scale-110`,style:{backgroundColor:t},title:t},t))})]}):null,Fn=e=>{let t=e?.settings||{};return t.bgType===`gradient`?{backgroundImage:`linear-gradient(${typeof t.gradientAngle==`number`?t.gradientAngle:135}deg, ${t.gradientStart||`#e0c3fc`}, ${t.gradientEnd||`#8ec5fc`})`}:t.bgColor?{backgroundColor:t.bgColor}:{backgroundColor:`#e2e8f0`}};return(0,R.jsx)(`div`,{className:`w-full md:w-80 ${n&&!r?`max-h-0`:`h-1/2`} md:h-full bg-white border-b md:border-b-0 md:border-r border-slate-200 flex flex-col overflow-y-auto shrink-0 z-120 order-2 md:order-0 shadow-inner md:shadow-none ${n?`transition-all duration-300 max-h-[65vh] fixed inset-x-0 bottom-16`:``} ${n&&!r?`pointer-events-none opacity-0`:``}`,style:{transform:n?`translateY(${i}px)`:void 0,transition:a?`none`:`transform 220ms ease, opacity 200ms ease, max-height 200ms ease`},onTouchStart:hn,onTouchMove:gn,onTouchEnd:_n,children:(0,R.jsxs)(`div`,{className:`p-6 space-y-8`,children:[e===`edit`&&(0,R.jsxs)(R.Fragment,{children:[(0,R.jsxs)(`section`,{className:`space-y-3`,children:[(0,R.jsx)(`h3`,{className:`font-bold text-xs uppercase tracking-wider text-slate-400`,children:J(`app.content.title`)}),(0,R.jsxs)(`div`,{className:`space-y-2`,children:[(0,R.jsx)(`input`,{type:`text`,value:o,onChange:e=>u(`header`,e.target.value),className:`w-full px-2 py-1.5 border border-slate-200 rounded-lg text-xs font-medium`,placeholder:J(`app.content.headerPlaceholder`,{locale:l})}),(0,R.jsx)(`input`,{type:`text`,value:s,onChange:e=>u(`sub`,e.target.value),className:`w-full px-2 py-1.5 border border-slate-200 rounded-lg text-xs`,placeholder:J(`app.content.subPlaceholder`,{locale:l})})]}),(0,R.jsxs)(`div`,{className:`flex items-center justify-between gap-2`,children:[(0,R.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,R.jsx)(`span`,{className:`text-[10px] font-semibold text-slate-500`,children:J(`app.content.screenshotScopeLabel`)}),h&&(0,R.jsx)(`span`,{className:`text-[10px] font-bold px-1.5 py-0.5 rounded-sm border bg-blue-50 text-blue-700 border-blue-100`,children:J(`app.content.screenshotScopeOverride`)})]}),(0,R.jsxs)(`div`,{className:`inline-flex rounded-lg border border-slate-200 overflow-hidden bg-white shadow-xs`,children:[(0,R.jsx)(`button`,{type:`button`,onClick:()=>m(`shared`),className:`px-2.5 py-1 text-[10px] font-bold transition-colors ${f===`shared`?`bg-slate-900 text-white`:`text-slate-600 hover:bg-slate-50`}`,children:J(`app.content.screenshotScopeShared`)}),(0,R.jsx)(`button`,{type:`button`,onClick:()=>m(`locale`),className:`px-2.5 py-1 text-[10px] font-bold transition-colors ${f===`locale`?`bg-slate-900 text-white`:`text-slate-600 hover:bg-slate-50`}`,children:J(`app.content.screenshotScopeLocale`)})]})]}),f===`shared`&&x&&(0,R.jsx)(`p`,{className:`text-[10px] text-slate-500 leading-snug`,children:J(`app.content.screenshotSharedOverridesHint`,{count:v})}),f===`locale`&&!h&&w&&(0,R.jsx)(`p`,{className:`text-[10px] text-slate-500 leading-snug`,children:J(`app.content.screenshotLocaleFallbackHint`)}),f===`locale`&&!h&&!w&&(0,R.jsx)(`p`,{className:`text-[10px] text-slate-500 leading-snug`,children:J(`app.content.screenshotLocaleEmptyHint`)}),x&&(0,R.jsx)(`button`,{type:`button`,onClick:()=>{Vt?.({message:J(`app.content.clearAllOverridesConfirm`),onConfirm:()=>D(),onCancel:()=>Vt?.(null)})},className:`text-[10px] font-bold text-rose-600 hover:underline self-start`,children:J(`app.content.clearAllOverrides`)}),(0,R.jsxs)(`div`,{onClick:()=>ee.current?.click?.(),onDrop:te,onDragOver:ne,onDragEnter:re,onDragLeave:ie,onKeyDown:e=>{e.target===e.currentTarget&&(e.key===`Enter`||e.key===` `)&&(e.preventDefault(),ee.current?.click?.())},role:`button`,tabIndex:0,className:`border-2 border-dashed rounded-xl p-4 flex flex-col items-center justify-center transition-all cursor-pointer group relative overflow-hidden h-32 ${N?`border-blue-500 bg-blue-100 text-blue-600 scale-[1.02]`:`border-slate-200 text-slate-400 bg-slate-50/50 hover:border-blue-500 hover:text-blue-500 hover:bg-blue-50`}`,children:[d?(0,R.jsx)(`img`,{src:d,alt:``,className:`absolute inset-0 w-full h-full object-cover opacity-80 pointer-events-none`}):(0,R.jsx)(Be,{className:`w-5 h-5 mb-1 group-hover:scale-110 transition-transform pointer-events-none`}),(f===`shared`&&!!d||f===`locale`&&h)&&(0,R.jsx)(`button`,{type:`button`,onClick:e=>{e.stopPropagation(),T()},className:`absolute top-2 right-2 p-1 rounded-full bg-white/90 border border-slate-200 text-slate-600 hover:text-red-600 hover:border-red-200 hover:bg-red-50 shadow-xs`,title:J(`app.content.screenshotClear`),children:(0,R.jsx)(p,{size:12})}),(0,R.jsx)(`span`,{className:`text-[10px] font-medium relative z-10 bg-white/80 px-2 rounded-sm pointer-events-none`,children:d?f===`locale`?J(`app.content.changeImageForLocale`,{locale:l}):J(`app.content.changeImage`):f===`locale`?J(`app.content.uploadScreenshotForLocale`,{locale:l}):J(`app.content.uploadScreenshot`)}),(0,R.jsx)(`input`,{type:`file`,ref:ee,className:`hidden`,accept:`image/*`,onChange:k})]}),(0,R.jsx)(`p`,{className:`text-[10px] text-slate-500 leading-snug`,children:J(`app.data.privacy`)})]}),(0,R.jsx)(`hr`,{className:`border-slate-100`}),(0,R.jsxs)(`section`,{className:`space-y-3`,children:[(0,R.jsxs)(`div`,{className:`space-y-1`,children:[(0,R.jsx)(`h3`,{className:`font-bold text-xs uppercase tracking-wider text-slate-400`,children:J(`app.language.title`)}),(0,R.jsx)(`p`,{className:`text-xs text-slate-500 leading-relaxed`,children:J(`app.language.description`)})]}),(0,R.jsx)(`div`,{className:`flex flex-wrap gap-2`,children:ae.map(e=>(0,R.jsxs)(`div`,{onClick:()=>oe(e.id),className:`group relative px-3 py-2 rounded-lg text-xs font-medium cursor-pointer border transition-all select-none ${l===e.id?`bg-blue-50 border-blue-500 text-blue-700 shadow-xs`:`bg-white border-slate-200 text-slate-600 hover:border-slate-300 hover:bg-slate-50`}`,children:[(0,R.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,R.jsx)(`span`,{className:`text-base`,children:e.flag?`${e.flag}`:`??`}),(0,R.jsxs)(`div`,{className:`flex flex-col`,children:[(0,R.jsx)(`span`,{className:`font-bold`,children:e.name||e.id}),(0,R.jsx)(`span`,{className:`text-[10px] opacity-70`,children:e.id})]})]}),!!g?.[e.id]&&(0,R.jsx)(`span`,{className:`absolute bottom-2 right-2 w-2 h-2 rounded-full bg-blue-500 border border-white shadow-xs`,title:J(`app.content.screenshotScopeOverride`)}),ae.length>1&&(0,R.jsx)(`div`,{className:`absolute -top-1.5 -right-1.5 flex gap-0.5 bg-white rounded-full shadow-xs border border-slate-100 ${l===e.id?`opacity-100`:`opacity-0 group-hover:opacity-100`} transition-opacity`,children:(0,R.jsx)(`button`,{onClick:t=>{t.stopPropagation(),se(e.id)},className:`p-1 text-slate-400 hover:text-red-500 hover:bg-red-50 rounded-full`,title:J(`app.language.remove`),children:(0,R.jsx)(p,{size:10})})})]},e.id))}),(0,R.jsxs)(`div`,{className:`flex gap-2 p-2 bg-slate-50 rounded-xl border border-slate-200/60 mt-2 items-center`,children:[(0,R.jsx)(Kt,{currentLocales:ae,onAdd:ce}),(0,R.jsx)(`span`,{className:`text-[11px] text-slate-500 hidden sm:block`,children:J(`app.language.presetsHint`,`EFIGS / CJK presets available`)})]})]}),t===`single`&&(0,R.jsxs)(R.Fragment,{children:[(0,R.jsx)(`hr`,{className:`border-slate-100`}),(0,R.jsxs)(`section`,{className:`space-y-3`,children:[(0,R.jsx)(`h3`,{className:`font-bold text-xs uppercase tracking-wider text-slate-400`,children:J(`app.device.title`)}),(0,R.jsx)(Mn,{}),(0,R.jsxs)(`div`,{className:`relative`,children:[(0,R.jsx)(`input`,{type:`text`,value:bn,onChange:e=>xn(e.target.value),className:`w-full bg-slate-50 border border-slate-200 text-slate-700 text-sm rounded-xl px-4 py-2.5 pr-10 focus:outline-hidden focus:border-blue-500`,placeholder:J(`app.device.searchPlaceholder`),spellCheck:!1}),bn&&(0,R.jsx)(`button`,{type:`button`,onClick:()=>xn(``),className:`absolute right-2.5 top-1/2 -translate-y-1/2 text-slate-400 hover:text-slate-600 p-1`,"aria-label":`Clear search`,children:(0,R.jsx)(p,{size:14})})]}),(0,R.jsxs)(`div`,{className:`relative`,children:[(0,R.jsx)(`select`,{value:P,onChange:e=>le(e.target.value),className:`w-full appearance-none bg-slate-50 border border-slate-200 text-slate-700 text-sm rounded-xl px-4 py-3 pr-8 focus:outline-hidden focus:border-blue-500 font-medium`,children:Object.entries(jn).map(([e,t])=>(0,R.jsx)(`optgroup`,{label:Dn[e]||e,children:t.map(e=>(0,R.jsx)(`option`,{value:e,children:vt(z[e],{id:e,mode:pe}).optionLabel},e))},e))}),(0,R.jsx)(b,{className:`absolute right-3 top-1/2 -translate-y-1/2 text-slate-400 pointer-events-none`,size:16})]}),(0,R.jsxs)(`div`,{className:`mt-2 flex gap-2 bg-slate-50 p-1 rounded-lg border border-slate-200`,children:[(0,R.jsxs)(`button`,{onClick:()=>_e(`portrait`),className:`flex-1 py-1.5 rounded-md text-xs font-medium flex items-center justify-center gap-2 transition-colors ${ge===`portrait`||Se?`bg-white text-blue-600 shadow-xs`:`text-slate-500 hover:text-slate-700`}`,children:[(0,R.jsx)(A,{size:12}),` `,J(`app.device.portrait`)]}),(0,R.jsxs)(`button`,{onClick:()=>_e(`landscape`),disabled:Se,className:`flex-1 py-1.5 rounded-md text-xs font-medium flex items-center justify-center gap-2 transition-colors ${ge===`landscape`&&!Se?`bg-white text-blue-600 shadow-xs`:`text-slate-500 hover:text-slate-700`} ${Se?`opacity-30 cursor-not-allowed`:``}`,children:[(0,R.jsx)(Me,{size:12}),` `,J(`app.device.landscape`)]})]})]})]})]}),e===`style`&&(0,R.jsxs)(R.Fragment,{children:[(0,R.jsxs)(`section`,{className:`space-y-3`,children:[(0,R.jsx)(`h3`,{className:`font-bold text-xs uppercase tracking-wider text-slate-400`,children:J(`app.theme.title`)}),(0,R.jsxs)(`div`,{className:`flex gap-2`,children:[(0,R.jsx)(`button`,{onClick:()=>Ce(`clean`),className:`flex-1 py-2 bg-slate-50 border border-slate-200 rounded-lg text-xs font-medium hover:bg-slate-100`,children:J(`app.theme.clean`)}),(0,R.jsx)(`button`,{onClick:()=>Ce(`dark`),className:`flex-1 py-2 bg-slate-900 text-white border border-slate-800 rounded-lg text-xs font-medium hover:bg-slate-800`,children:J(`app.theme.dark`)}),(0,R.jsx)(`button`,{onClick:()=>Ce(`pop`),className:`flex-1 py-2 bg-linear-to-r from-pink-200 to-pink-300 border border-pink-200 text-pink-900 rounded-lg text-xs font-medium hover:opacity-90`,children:J(`app.theme.pop`)})]})]}),(0,R.jsx)(`hr`,{className:`border-slate-100`}),(0,R.jsxs)(`section`,{className:`space-y-4`,children:[(0,R.jsx)(`h3`,{className:`font-bold text-xs uppercase tracking-wider text-slate-400`,children:J(`app.background.title`)}),(0,R.jsx)(`div`,{className:`grid grid-cols-4 gap-2`,children:[`transparent`,`solid`,`gradient`,`image`].map(e=>(0,R.jsx)(`button`,{onClick:()=>Te(e),className:`w-full px-1.5 py-1.5 rounded-md border text-[8px] leading-[11px] tracking-normal font-bold uppercase text-center whitespace-normal break-all flex flex-col items-center justify-center gap-1 transition-all ${we===e?`border-blue-500 text-blue-600 bg-blue-50 ring-1 ring-blue-500`:`border-slate-200 text-slate-500 hover:border-slate-300`}`,children:e===`image`?(0,R.jsx)(be,{size:14}):J(`app.background.types.${e}`)},e))}),we===`image`&&(0,R.jsxs)(`div`,{className:`space-y-2`,children:[(0,R.jsxs)(`div`,{onClick:()=>Ee.current.click(),onDrop:De,onDragOver:ke,onDragEnter:Ae,onDragLeave:je,className:`h-16 w-full rounded-lg border-2 border-dashed flex items-center justify-center cursor-pointer text-xs transition-all ${Pe?`border-blue-500 bg-blue-100 text-blue-600 scale-[1.01]`:`border-slate-300 text-slate-400 hover:bg-slate-50 hover:border-blue-400 hover:text-blue-600`}`,children:[(0,R.jsx)(Be,{size:14,className:`mr-1 pointer-events-none`}),` `,(0,R.jsx)(`span`,{className:`pointer-events-none`,children:J(`app.background.upload`)}),` `,(0,R.jsx)(`input`,{type:`file`,ref:Ee,className:`hidden`,accept:`image/*`,onChange:Ie})]}),(0,R.jsxs)(`div`,{className:`flex gap-2 pt-1`,children:[(0,R.jsxs)(`div`,{className:`flex-1`,children:[(0,R.jsxs)(`div`,{className:`flex justify-between text-[10px] text-slate-400`,children:[(0,R.jsx)(`span`,{children:J(`app.background.blur-sm`)}),(0,R.jsxs)(`span`,{children:[Ve,`px`]})]}),(0,R.jsx)(`input`,{type:`range`,min:`0`,max:`20`,step:`1`,value:Ve,onChange:e=>He(parseInt(e.target.value)),className:`w-full accent-slate-800 h-1 bg-slate-200 rounded-lg`})]}),(0,R.jsxs)(`div`,{className:`flex-1`,children:[(0,R.jsxs)(`div`,{className:`flex justify-between text-[10px] text-slate-400`,children:[(0,R.jsx)(`span`,{children:J(`app.background.dim`)}),(0,R.jsxs)(`span`,{children:[Ue,`%`]})]}),(0,R.jsx)(`input`,{type:`range`,min:`0`,max:`80`,step:`5`,value:Ue,onChange:e=>Ge(parseInt(e.target.value)),className:`w-full accent-slate-800 h-1 bg-slate-200 rounded-lg`})]})]})]}),we===`solid`&&(0,R.jsxs)(`div`,{className:`space-y-2`,children:[(0,R.jsxs)(`div`,{className:`flex gap-2`,children:[(0,R.jsx)(`input`,{type:`color`,value:Je,onChange:e=>Ye(e.target.value),onBlur:e=>H&&H(e.target.value),className:`h-8 w-8 rounded-sm cursor-pointer border border-slate-300`}),(0,R.jsx)(`div`,{className:`flex-1 flex flex-wrap gap-1`,children:Ke.slice(0,5).map(e=>(0,R.jsx)(`div`,{onClick:()=>{Ye(e),H&&H(e)},className:`w-6 h-6 rounded-full border cursor-pointer`,style:{background:e}},e))})]}),(0,R.jsx)(Pn,{onSelect:e=>{Ye(e),H&&H(e)}})]}),we===`gradient`&&(0,R.jsxs)(`div`,{className:`space-y-2`,children:[(0,R.jsxs)(`div`,{className:`flex gap-2`,children:[(0,R.jsx)(`input`,{type:`color`,value:Xe,onChange:e=>Ze(e.target.value),onBlur:e=>H&&H(e.target.value),className:`h-8 w-8 rounded-sm cursor-pointer border border-slate-300`}),(0,R.jsx)(`input`,{type:`color`,value:Qe,onChange:e=>$e(e.target.value),onBlur:e=>H&&H(e.target.value),className:`h-8 w-8 rounded-sm cursor-pointer border border-slate-300`})]}),(0,R.jsx)(Pn,{onSelect:e=>{Ze(e),H&&H(e)}})]})]}),(0,R.jsx)(`hr`,{className:`border-slate-100`}),(0,R.jsxs)(`section`,{className:`space-y-4`,children:[(0,R.jsx)(`h3`,{className:`font-bold text-xs uppercase tracking-wider text-slate-400`,children:J(`app.branding.title`)}),(0,R.jsxs)(`div`,{className:`space-y-3`,children:[(0,R.jsxs)(`div`,{children:[(0,R.jsx)(`label`,{className:`text-[10px] text-slate-500 mb-1 block`,children:J(`app.branding.frameColor`)}),(0,R.jsx)(`div`,{className:`flex gap-2`,children:[`black`,`silver`,`titanium`,`blue`,`gold`].map(e=>(0,R.jsx)(`button`,{onClick:()=>tt(e),className:`w-6 h-6 rounded-full border-2 transition-transform hover:scale-110 ${et===e?`border-blue-500 scale-110`:`border-slate-200`}`,style:{backgroundColor:e===`titanium`?`#8a8a8a`:e===`blue`?`#2f3c4e`:e===`gold`?`#f9e5c9`:e===`silver`?`#e3e3e3`:`#1a1a1a`},title:e},e))})]}),nt?(0,R.jsxs)(`div`,{onDrop:it,onDragOver:at,onDragEnter:ot,onDragLeave:st,onClick:()=>rt.current.click(),className:`flex items-center justify-between p-2 border rounded-lg cursor-pointer transition-all shadow-xs group ${ct?`border-blue-500 bg-blue-50 ring-2 ring-blue-200`:`border-slate-200 bg-white hover:border-blue-300`}`,children:[(0,R.jsxs)(`div`,{className:`flex items-center gap-3 pointer-events-none`,children:[(0,R.jsxs)(`div`,{className:`w-10 h-10 rounded-sm border border-slate-100 bg-slate-50 flex items-center justify-center p-1 overflow-hidden relative`,children:[(0,R.jsx)(`div`,{className:`absolute inset-0 opacity-20 bg-[url('https://www.transparenttextures.com/patterns/checkerboard.png')]`}),(0,R.jsx)(`img`,{src:nt,className:`w-full h-full object-contain relative z-10`})]}),(0,R.jsxs)(`div`,{className:`flex flex-col`,children:[(0,R.jsx)(`span`,{className:`text-[10px] font-bold text-slate-700 uppercase tracking-wider`,children:`Logo`}),(0,R.jsx)(`span`,{className:`text-[10px] text-slate-400`,children:ct?`Drop to Change`:`Set`})]})]}),(0,R.jsxs)(`div`,{className:`flex items-center gap-1`,children:[(0,R.jsx)(`button`,{onClick:e=>{e.stopPropagation(),rt.current.click()},className:`p-1.5 text-slate-400 hover:text-blue-600 hover:bg-blue-50 rounded-sm transition-colors`,title:`Change Logo`,children:(0,R.jsx)(Me,{size:14})}),(0,R.jsx)(`button`,{onClick:e=>{e.stopPropagation(),ut()},className:`p-1.5 text-slate-400 hover:text-red-500 hover:bg-red-50 rounded-sm transition-colors`,title:`Remove Logo`,children:(0,R.jsx)(ze,{size:14})})]}),(0,R.jsx)(`input`,{type:`file`,ref:rt,className:`hidden`,accept:`image/*`,onChange:lt})]}):(0,R.jsxs)(`div`,{onClick:()=>rt.current.click(),onDrop:it,onDragOver:at,onDragEnter:ot,onDragLeave:st,className:`flex items-center justify-between p-3 border border-dashed rounded-lg cursor-pointer transition-all group ${ct?`border-blue-500 bg-blue-50 text-blue-700`:`border-slate-300 text-slate-500 hover:border-blue-400 hover:text-blue-600 hover:bg-slate-50`}`,children:[(0,R.jsxs)(`span`,{className:`text-xs font-medium flex items-center gap-2 pointer-events-none`,children:[(0,R.jsx)(de,{size:16,className:`text-slate-400 group-hover:text-blue-500 transition-colors`}),J(`app.branding.uploadLogo`)]}),(0,R.jsx)(Be,{size:14,className:`text-slate-300 group-hover:text-blue-400 transition-colors`}),(0,R.jsx)(`input`,{type:`file`,ref:rt,className:`hidden`,accept:`image/*`,onChange:lt})]})]})]}),(0,R.jsx)(`hr`,{className:`border-slate-100`}),(0,R.jsxs)(`section`,{className:`space-y-4`,children:[(0,R.jsx)(`h3`,{className:`font-bold text-xs uppercase tracking-wider text-slate-400`,children:J(`app.layout.title`)}),(0,R.jsxs)(`div`,{className:`flex items-center justify-between text-xs text-slate-600`,children:[(0,R.jsxs)(`label`,{className:`flex items-center gap-2`,children:[(0,R.jsx)(`input`,{type:`checkbox`,checked:B,onChange:e=>e.target.checked?dt():ft(),className:`rounded-sm border-slate-300 text-blue-600 focus:ring-blue-500`}),(0,R.jsx)(`span`,{children:J(`app.layout.overrideToggle`)})]}),B&&(0,R.jsx)(`button`,{onClick:ft,className:`text-[11px] text-blue-600 hover:underline`,children:J(`app.layout.overrideReset`)})]}),(0,R.jsxs)(`div`,{className:`grid grid-cols-3 gap-2`,children:[(0,R.jsxs)(`button`,{onClick:()=>B?pt(`layoutMode`,`top`):ht(`top`),className:`py-2 rounded-md border text-[10px] font-bold flex flex-col items-center gap-1 ${gt===`top`?`border-blue-500 bg-blue-50 text-blue-700`:`border-slate-200 text-slate-500`}`,children:[(0,R.jsx)(ue,{size:14,className:`rotate-180`}),J(`app.layout.options.top`)]}),(0,R.jsxs)(`button`,{onClick:()=>B?pt(`layoutMode`,`bottom`):ht(`bottom`),className:`py-2 rounded-md border text-[10px] font-bold flex flex-col items-center gap-1 ${gt===`bottom`?`border-blue-500 bg-blue-50 text-blue-700`:`border-slate-200 text-slate-500`}`,children:[(0,R.jsx)(ue,{size:14}),J(`app.layout.options.bottom`)]}),(0,R.jsxs)(`button`,{onClick:()=>B?pt(`layoutMode`,`split`):ht(`split`),className:`py-2 rounded-md border text-[10px] font-bold flex flex-col items-center gap-1 ${gt===`split`?`border-blue-500 bg-blue-50 text-blue-700`:`border-slate-200 text-slate-500`}`,children:[(0,R.jsx)(F,{size:14}),J(`app.layout.options.split`)]})]}),(0,R.jsxs)(`div`,{className:`pt-2`,children:[(0,R.jsx)(`label`,{className:`text-[10px] text-slate-500 mb-1 block`,children:`Font Family`}),(0,R.jsx)(qt,{selectedFont:V,setSelectedFont:yt,fontOptions:xt})]}),(0,R.jsxs)(`div`,{className:`flex items-center justify-between pt-1`,children:[(0,R.jsx)(`span`,{className:`text-xs text-slate-500`,children:J(`app.layout.textColor`)}),(0,R.jsx)(`input`,{type:`color`,value:St,onChange:e=>Ct(e.target.value),onBlur:e=>H&&H(e.target.value),className:`w-6 h-6 rounded-full cursor-pointer border border-slate-200`})]}),(0,R.jsx)(Pn,{onSelect:e=>{Ct(e),H&&H(e)}}),(0,R.jsxs)(`div`,{className:`space-y-1 pt-2`,children:[(0,R.jsxs)(`div`,{className:`flex justify-between text-xs text-slate-500`,children:[(0,R.jsx)(`span`,{children:J(`app.layout.topSpacing`)}),(0,R.jsxs)(`span`,{children:[Tt,`%`]})]}),(0,R.jsx)(`input`,{type:`range`,min:`0`,max:`30`,step:`1`,value:Tt,onChange:e=>B?pt(`topSpacing`,parseInt(e.target.value)):Et(parseInt(e.target.value)),className:`w-full accent-slate-800 h-1.5 bg-slate-200 rounded-lg appearance-none cursor-pointer`})]}),(0,R.jsxs)(`div`,{className:`space-y-1`,children:[(0,R.jsxs)(`div`,{className:`flex justify-between text-xs text-slate-500`,children:[(0,R.jsx)(`span`,{children:J(`app.layout.scale`)}),(0,R.jsxs)(`span`,{children:[Math.round(Dt*100),`%`]})]}),(0,R.jsx)(`input`,{type:`range`,min:`0.5`,max:`2.0`,step:`0.05`,value:Dt,onChange:e=>B?pt(`deviceScale`,parseFloat(e.target.value)):Ot(parseFloat(e.target.value)),className:`w-full accent-slate-800 h-1.5 bg-slate-200 rounded-lg appearance-none cursor-pointer`})]})]}),(0,R.jsxs)(`section`,{className:`space-y-2 pt-2`,children:[(0,R.jsx)(`h3`,{className:`font-bold text-xs uppercase tracking-wider text-slate-400`,children:J(`app.badge.title`)}),(0,R.jsxs)(`div`,{className:`grid grid-cols-5 gap-2`,children:[(0,R.jsx)(`button`,{onClick:()=>At(`none`),className:`p-1.5 rounded-lg border flex justify-center ${kt===`none`?`bg-blue-50 border-blue-500`:`border-slate-200`}`,children:(0,R.jsx)(p,{size:14,className:`text-slate-400`})}),(0,R.jsx)(`button`,{onClick:()=>At(`stars`),className:`p-1.5 rounded-lg border flex justify-center ${kt===`stars`?`bg-blue-50 border-blue-500`:`border-slate-200`}`,children:(0,R.jsx)(Re,{size:14,className:`text-yellow-500 fill-yellow-500`})}),(0,R.jsx)(`button`,{onClick:()=>At(`award`),className:`p-1.5 rounded-lg border flex justify-center ${kt===`award`?`bg-blue-50 border-blue-500`:`border-slate-200`}`,children:(0,R.jsx)(fe,{size:14,className:`text-red-500`})}),(0,R.jsx)(`button`,{onClick:()=>At(`download`),className:`p-1.5 rounded-lg border flex justify-center ${kt===`download`?`bg-blue-50 border-blue-500`:`border-slate-200`}`,children:(0,R.jsx)(me,{size:14,className:`text-slate-700`})}),(0,R.jsx)(`button`,{onClick:()=>At(`googleplay`),className:`p-1.5 rounded-lg border flex justify-center ${kt===`googleplay`?`bg-blue-50 border-blue-500`:`border-slate-200`}`,children:(0,R.jsx)(Oe,{size:14,className:`text-slate-700`,fill:`currentColor`})})]})]})]}),e===`templates`&&(0,R.jsxs)(R.Fragment,{children:[(0,R.jsxs)(`section`,{className:`space-y-3`,children:[(0,R.jsx)(`h3`,{className:`font-bold text-xs uppercase tracking-wider text-slate-400`,children:J(`app.templates.official`)}),(0,R.jsx)(`div`,{className:`grid grid-cols-1 gap-4`,children:qe.map(e=>(0,R.jsxs)(`div`,{onClick:()=>jt(e),className:`group cursor-pointer border border-slate-200 rounded-xl overflow-hidden hover:border-blue-400 hover:shadow-md transition-all bg-white`,children:[(0,R.jsxs)(`div`,{className:`h-24 w-full relative overflow-hidden`,style:Fn(e),children:[(0,R.jsx)(`img`,{src:e.thumbnail,alt:e.name,className:`w-full h-full object-cover transition-transform duration-500 group-hover:scale-105`,onError:e=>{e.currentTarget.style.display=`none`}}),(0,R.jsx)(`div`,{className:`absolute inset-0 pointer-events-none bg-linear-to-t from-black/40 to-transparent`}),(0,R.jsxs)(`div`,{className:`absolute bottom-0 left-0 right-0 p-2 flex items-center justify-between`,children:[(0,R.jsx)(`span`,{className:`text-white text-xs font-bold drop-shadow-sm`,children:J(`app.templates.officialItems.${e.id}`,{defaultValue:e.name})}),e.tags?.bg&&(0,R.jsx)(`span`,{className:`text-[10px] text-white/80 bg-black/40 px-2 py-0.5 rounded-full border border-white/10`,children:e.tags.bg})]})]}),(0,R.jsx)(`div`,{className:`p-3 flex flex-wrap gap-2 bg-white`,children:e.tags&&Object.entries(e.tags).map(([e,t])=>(0,R.jsx)(`span`,{className:`inline-flex items-center px-1.5 py-0.5 rounded-sm text-[10px] font-medium bg-slate-100 text-slate-500 border border-slate-200`,children:t},e))})]},e.id))})]}),(0,R.jsx)(`hr`,{className:`border-slate-100`}),(0,R.jsxs)(`section`,{className:`space-y-3`,children:[(0,R.jsxs)(`div`,{className:`flex justify-between items-center`,children:[(0,R.jsx)(`h3`,{className:`font-bold text-xs uppercase tracking-wider text-slate-400`,children:J(`app.templates.mine`)}),(0,R.jsx)(`button`,{onClick:()=>Nt(Pt),className:`text-[10px] text-blue-600 font-bold hover:underline`,children:J(`app.templates.saveCurrent`)})]}),(0,R.jsxs)(`div`,{className:`flex gap-2 p-2 bg-blue-50/50 border border-blue-100 rounded-sm text-[10px] text-slate-600 leading-tight`,children:[(0,R.jsx)(xe,{size:14,className:`shrink-0 text-blue-400`}),(0,R.jsx)(`span`,{children:yn.language===`ja`?`背景・色・フォントなどのスタイルのみ保存されます。文字や画像は含まれません。`:`Saves background, colors, fonts, and layout. Text and images are excluded.`})]}),Mt.length===0?(0,R.jsx)(`div`,{className:`text-xs text-slate-400 text-center py-4 bg-slate-50 rounded-lg border border-dashed border-slate-200`,children:J(`app.templates.empty`).split(`
12
+ `).map(e=>(0,R.jsx)(`div`,{children:e},e))}):(0,R.jsx)(`div`,{className:`space-y-2`,children:Mt.map(e=>(0,R.jsxs)(`div`,{className:`flex items-center justify-between p-2 bg-white border border-slate-200 rounded-lg hover:border-blue-300 transition-colors group`,children:[(0,R.jsx)(`span`,{onClick:()=>jt(e),className:`text-xs font-medium text-slate-700 cursor-pointer flex-1 truncate`,children:e.name}),(0,R.jsx)(`button`,{onClick:()=>Ft(e.id),className:`text-slate-300 hover:text-red-500 p-1 opacity-0 group-hover:opacity-100 transition-opacity`,children:(0,R.jsx)(ze,{size:12})})]},e.id))}),!It&&(0,R.jsxs)(`div`,{className:`text-[10px] text-amber-600 bg-amber-50 p-2 rounded-sm border border-amber-100 flex items-center gap-2`,children:[(0,R.jsx)(E,{size:10}),` `,J(`app.templates.proRequired`)]})]})]}),e===`data`&&(0,R.jsxs)(R.Fragment,{children:[(0,R.jsxs)(`section`,{className:`space-y-5`,children:[(0,R.jsxs)(`div`,{className:`space-y-2`,children:[(0,R.jsx)(`h3`,{className:`font-bold text-xs uppercase tracking-wider text-slate-400`,children:J(`app.data.title`)}),(0,R.jsxs)(`div`,{className:`flex items-center gap-2 p-3 bg-blue-50/50 border border-blue-100 rounded-lg text-xs text-slate-600`,children:[(0,R.jsx)(E,{size:14,className:`text-blue-500 shrink-0`}),(0,R.jsx)(`span`,{className:`font-medium`,children:J(`app.data.privacy`)})]})]}),(0,R.jsxs)(`div`,{className:`bg-white p-4 rounded-xl border border-slate-200 shadow-xs space-y-3 relative overflow-hidden`,children:[(0,R.jsx)(`div`,{className:`absolute top-0 right-0 w-16 h-16 bg-linear-to-br from-slate-100 to-transparent rounded-bl-full opacity-50 pointer-events-none`}),(0,R.jsx)(`div`,{className:`flex items-start justify-between relative z-10`,children:(0,R.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,R.jsx)(`div`,{className:`p-2.5 bg-slate-100 text-slate-600 rounded-lg`,children:(0,R.jsx)(Le,{size:20})}),(0,R.jsxs)(`div`,{className:`space-y-0.5`,children:[(0,R.jsx)(`h4`,{className:`text-sm font-bold text-slate-800`,children:J(`app.data.sampleTitle`)}),(0,R.jsx)(`p`,{className:`text-[10px] text-slate-500 leading-relaxed`,children:J(`app.data.sampleDesc`)})]})]})}),(0,R.jsxs)(`button`,{type:`button`,onClick:Bt,className:`w-full flex items-center justify-center gap-2 py-2.5 bg-white border border-slate-300 rounded-lg text-xs font-bold text-slate-700 hover:bg-slate-50 transition-all shadow-xs active:scale-[0.98]`,children:[(0,R.jsx)(Le,{size:14}),(0,R.jsx)(`span`,{children:J(`app.data.sampleLoad`)})]})]}),(0,R.jsxs)(`div`,{className:`bg-white p-4 rounded-xl border border-slate-200 shadow-xs space-y-3`,children:[(0,R.jsxs)(`div`,{className:`flex items-start gap-3`,children:[(0,R.jsx)(`div`,{className:`p-2 bg-slate-100 text-blue-600 rounded-lg border border-slate-200`,children:(0,R.jsx)(j,{size:18})}),(0,R.jsxs)(`div`,{className:`space-y-1`,children:[(0,R.jsx)(`h4`,{className:`text-sm font-bold text-slate-800`,children:J(`app.data.cliTitle`)}),(0,R.jsx)(`p`,{className:`text-[10px] text-slate-500 leading-relaxed`,children:J(`app.data.cliDesc`)})]})]}),(0,R.jsx)(`div`,{className:`rounded-lg border border-slate-200 bg-slate-950 p-3`,children:(0,R.jsx)(`pre`,{className:`text-[10px] text-slate-200 whitespace-pre-wrap`,children:kn})}),(0,R.jsxs)(`div`,{className:`flex flex-col gap-2`,children:[(0,R.jsx)(C,{value:kn,className:`inline-flex items-center justify-center gap-2 px-3 py-2 rounded-lg border border-slate-900 bg-slate-900 text-white hover:bg-slate-800 transition text-[11px] font-semibold`,children:({copyLabel:e})=>(0,R.jsxs)(R.Fragment,{children:[(0,R.jsx)(S,{size:12}),e||On]})}),(0,R.jsxs)(`a`,{href:`/tools/agent-cli/?entry_source=app_editor_cli_card#tell-your-agent`,className:`inline-flex items-center justify-center gap-2 px-3 py-2 rounded-lg border border-slate-200 bg-white text-slate-700 hover:bg-slate-50 transition text-[11px] font-semibold`,children:[J(`app.data.cliLink`),` `,(0,R.jsx)(_,{size:14})]})]})]}),(0,R.jsxs)(`div`,{className:`bg-white p-4 rounded-xl border border-slate-200 shadow-xs space-y-4 relative overflow-hidden`,children:[(0,R.jsx)(`div`,{className:`absolute top-0 right-0 w-16 h-16 bg-linear-to-br from-slate-100 to-transparent rounded-bl-full opacity-50 pointer-events-none`}),(0,R.jsx)(`div`,{className:`flex items-start justify-between relative z-10`,children:(0,R.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,R.jsx)(`div`,{className:`p-2.5 bg-slate-100 text-slate-600 rounded-lg`,children:(0,R.jsx)(ye,{size:20})}),(0,R.jsxs)(`div`,{children:[(0,R.jsx)(`h4`,{className:`text-sm font-bold text-slate-800`,children:J(`app.data.browserTitle`)}),(0,R.jsxs)(`div`,{className:`flex items-center gap-2 mt-1`,children:[(0,R.jsx)(`span`,{className:`text-[10px] font-medium px-1.5 py-0.5 bg-slate-100 text-slate-500 rounded-sm border border-slate-200`,children:J(`app.data.limitInfo`)}),(0,R.jsx)(`span`,{className:`text-[10px] tabular-nums font-medium ${Lt.percent>80?`text-rose-500`:`text-slate-400`}`,children:J(`app.data.usageInfo`,{used:Lt.used})})]})]})]})}),Lt.percent>80&&(0,R.jsxs)(`div`,{className:`flex items-start gap-2 p-2 bg-rose-50 border border-rose-100 rounded-sm text-[10px] text-rose-700 animate-in fade-in`,children:[(0,R.jsx)(M,{size:12,className:`shrink-0 mt-0.5`}),(0,R.jsx)(`span`,{children:J(`app.data.quotaWarning`)})]}),(0,R.jsxs)(`div`,{className:`flex flex-col gap-3`,children:[(0,R.jsxs)(`button`,{onClick:()=>Rt(!1),className:`w-full flex items-center justify-between px-4 py-3 bg-slate-800 text-white rounded-lg hover:bg-slate-700 transition-all shadow-xs active:scale-[0.98] group`,children:[(0,R.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,R.jsx)(Ne,{size:18}),(0,R.jsxs)(`div`,{className:`text-left`,children:[(0,R.jsx)(`span`,{className:`block text-sm font-bold`,children:J(`app.data.overwrite`)}),(0,R.jsx)(`span`,{className:`block text-[10px] opacity-70 font-medium`,children:J(`app.data.overwriteDesc`)})]})]}),(0,R.jsx)(_,{size:16,className:`opacity-50 group-hover:opacity-100 group-hover:translate-x-1 transition-all`})]}),(0,R.jsxs)(`div`,{className:`grid grid-cols-2 gap-2`,children:[(0,R.jsxs)(`button`,{onClick:()=>{Vt({message:J(`app.data.loadConfirm`),onConfirm:()=>{Vt(null),zt()},onCancel:()=>Vt(null)})},className:`flex items-center justify-center gap-2 py-2 bg-white border border-slate-200 text-slate-600 rounded-lg hover:bg-slate-50 hover:text-slate-800 transition-colors`,children:[(0,R.jsx)(Me,{size:14}),(0,R.jsx)(`span`,{className:`text-xs font-bold`,children:J(`app.data.restore`)})]}),(0,R.jsxs)(`button`,{onClick:()=>Rt(!0),className:`flex items-center justify-center gap-2 py-2 bg-white border border-slate-200 text-slate-400 rounded-lg hover:bg-slate-50 hover:text-slate-600 transition-colors`,title:J(`app.data.saveSettingsOnly`),children:[(0,R.jsx)(Fe,{size:14}),(0,R.jsx)(`span`,{className:`text-xs font-medium`,children:J(`app.data.settingsOnlyShort`)})]})]})]}),(0,R.jsx)(`div`,{className:`h-0 relative`,children:Ht&&(0,R.jsx)(`div`,{className:`absolute bottom-1 left-0 right-0 text-center`,children:(0,R.jsxs)(`span`,{className:`inline-flex items-center gap-1.5 px-3 py-1 bg-emerald-100 text-emerald-700 text-[10px] font-bold rounded-full shadow-xs animate-in fade-in slide-in-from-bottom-2`,children:[(0,R.jsx)(y,{size:10,strokeWidth:3}),` `,Ut]})})})]}),(0,R.jsxs)(`div`,{className:`bg-linear-to-br from-blue-50 to-indigo-50/50 p-4 rounded-xl border border-blue-100 space-y-3`,children:[(0,R.jsx)(`div`,{className:`flex justify-between items-start`,children:(0,R.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,R.jsx)(`div`,{className:`p-2 bg-white text-blue-600 rounded-lg shadow-xs border border-blue-100`,children:(0,R.jsx)(ve,{size:20})}),(0,R.jsxs)(`div`,{children:[(0,R.jsx)(`h4`,{className:`text-sm font-bold text-slate-800`,children:J(`app.data.fileExportTitle`)}),(0,R.jsx)(`span`,{className:`text-[10px] font-bold text-blue-600 bg-blue-100/50 px-1.5 py-0.5 rounded-sm border border-blue-200/50 block w-fit mt-1`,children:J(`app.data.fileExportBadge`)})]})]})}),(0,R.jsxs)(`div`,{className:`space-y-2`,children:[(0,R.jsx)(`p`,{className:`text-[10px] text-slate-600 leading-relaxed`,dangerouslySetInnerHTML:{__html:J(`app.data.fileExportDesc`)}}),(0,R.jsxs)(`div`,{className:`flex gap-2`,children:[(0,R.jsxs)(`div`,{className:`flex -space-x-1`,children:[(0,R.jsx)(`div`,{className:`w-5 h-5 rounded-full bg-white border border-slate-200 flex items-center justify-center text-slate-500`,title:J(`app.data.fileExportTitle`),children:(0,R.jsx)(be,{size:10})}),(0,R.jsx)(`div`,{className:`w-5 h-5 rounded-full bg-white border border-slate-200 flex items-center justify-center text-slate-500`,title:J(`app.data.fileExportTitle`),children:(0,R.jsx)(O,{size:10})}),(0,R.jsx)(`div`,{className:`w-5 h-5 rounded-full bg-white border border-slate-200 flex items-center justify-center text-slate-500`,title:J(`app.data.fileExportTitle`),children:(0,R.jsx)(Fe,{size:10})})]}),(0,R.jsx)(`span`,{className:`text-[10px] text-slate-400 self-center`,children:J(`app.data.includeAll`)})]})]}),(0,R.jsxs)(`div`,{className:`grid grid-cols-1 gap-2 mt-2`,children:[(0,R.jsxs)(`button`,{onClick:Wt,className:`w-full flex items-center justify-center gap-2 py-2.5 bg-blue-600 text-white rounded-lg hover:bg-blue-700 transition-all shadow-xs active:scale-[0.98]`,children:[(0,R.jsx)(me,{size:16}),(0,R.jsx)(`span`,{className:`text-xs font-bold`,children:J(`app.data.export`)})]}),(0,R.jsxs)(`div`,{className:`relative border border-dashed rounded-lg p-2.5 flex items-center justify-center gap-2 transition-all cursor-pointer ${Yt?`border-blue-500 bg-blue-100 text-blue-700 scale-[1.01]`:`border-blue-200 text-slate-500 bg-white/50 hover:border-blue-400 hover:text-blue-600 hover:bg-white`}`,onClick:()=>Gt.current?.click(),onDragOver:Xt,onDragEnter:Zt,onDragLeave:$t,onDrop:en,children:[(0,R.jsx)(he,{size:14,className:`pointer-events-none`}),(0,R.jsx)(`span`,{className:`text-xs font-medium pointer-events-none`,children:J(`app.data.import`)}),(0,R.jsx)(`input`,{type:`file`,ref:Gt,className:`hidden`,accept:`.json,application/json`,onChange:Jt})]})]})]})]}),G&&(0,R.jsx)(Qt,{token:K,captureTeamSpec:q,applyTeamSpec:mn}),(0,R.jsx)(`hr`,{className:`border-slate-100`}),(0,R.jsxs)(`section`,{className:`space-y-3`,children:[(0,R.jsx)(`h3`,{className:`font-bold text-xs uppercase tracking-wider text-slate-400`,children:J(`app.importer.title`)}),(0,R.jsxs)(`div`,{className:`p-4 rounded-xl border space-y-3 relative overflow-hidden transition-all ${tn?`border-blue-500 bg-blue-100/80`:`bg-slate-50 border-slate-200`}`,onDrop:nn,onDragOver:rn,onDragEnter:an,onDragLeave:on,children:[!It&&(0,R.jsx)(`div`,{className:`absolute inset-0 bg-white/60 backdrop-blur-[1px] z-10 flex items-center justify-center pointer-events-none`,children:(0,R.jsx)(E,{size:24,className:`text-slate-400`})}),(0,R.jsx)(`p`,{className:`text-xs text-slate-500 leading-relaxed`,children:J(`app.importer.description`)}),(0,R.jsx)(`p`,{className:`text-[10px] text-slate-400`,dangerouslySetInnerHTML:{__html:J(`app.importer.hint`)}}),(0,R.jsxs)(`div`,{className:`flex gap-2`,children:[(0,R.jsx)(`button`,{onClick:()=>Nt(sn),className:`flex-1 py-2 bg-white border border-slate-300 rounded-lg text-xs font-medium text-slate-600 hover:bg-slate-50`,children:J(`app.importer.downloadTemplate`)}),(0,R.jsx)(`button`,{onClick:()=>Nt(()=>cn.current.click()),className:`flex-1 py-2 bg-blue-600 text-white rounded-lg text-xs font-medium hover:bg-blue-700`,children:J(`app.importer.importCsv`)})]}),(0,R.jsx)(`input`,{type:`file`,ref:cn,className:`hidden`,accept:`.csv`,onChange:ln})]})]}),(0,R.jsx)(`hr`,{className:`border-slate-100`}),(0,R.jsxs)(`section`,{className:`space-y-3`,children:[(0,R.jsx)(`h3`,{className:`font-bold text-xs uppercase tracking-wider text-slate-400`,children:J(`app.screenshotImporter.title`)}),(0,R.jsxs)(`div`,{className:`p-4 rounded-xl border space-y-3 relative overflow-hidden transition-all ${Sn?`border-blue-500 bg-blue-100/80`:`bg-slate-50 border-slate-200`}`,onDragOver:e=>{e?.dataTransfer&&Array.from(e.dataTransfer.types||[]).includes(`Files`)&&(e.preventDefault(),Cn(!0))},onDragEnter:e=>{e?.dataTransfer&&Array.from(e.dataTransfer.types||[]).includes(`Files`)&&(e.preventDefault(),Cn(!0))},onDragLeave:e=>{e&&(e.preventDefault(),!e.currentTarget.contains(e.relatedTarget)&&Cn(!1))},onDrop:e=>{e?.dataTransfer&&(e.preventDefault(),Cn(!1),un?.(e.dataTransfer.files))},children:[(0,R.jsx)(`p`,{className:`text-xs text-slate-500 leading-relaxed`,children:J(`app.screenshotImporter.description`)}),(0,R.jsx)(`p`,{className:`text-[10px] text-slate-400`,dangerouslySetInnerHTML:{__html:J(`app.screenshotImporter.hint`)}}),(0,R.jsxs)(`div`,{className:`flex gap-2`,children:[(0,R.jsx)(`button`,{type:`button`,onClick:()=>wn.current?.click(),className:`flex-1 py-2 bg-white border border-slate-300 rounded-lg text-xs font-medium text-slate-600 hover:bg-slate-50`,children:J(`app.screenshotImporter.importZip`)}),(0,R.jsx)(`button`,{type:`button`,onClick:()=>Tn.current?.click(),className:`flex-1 py-2 bg-white border border-slate-300 rounded-lg text-xs font-medium text-slate-600 hover:bg-slate-50`,children:J(`app.screenshotImporter.importFolder`)}),(0,R.jsx)(`button`,{type:`button`,onClick:()=>En.current?.click(),className:`flex-1 py-2 bg-blue-600 text-white rounded-lg text-xs font-medium hover:bg-blue-700`,children:J(`app.screenshotImporter.importFiles`)})]}),(0,R.jsx)(`input`,{type:`file`,ref:wn,className:`hidden`,accept:`.zip,application/zip,application/x-zip-compressed`,onChange:e=>{un?.(e.target.files),e?.target&&(e.target.value=``)}}),(0,R.jsx)(`input`,{type:`file`,ref:Tn,className:`hidden`,accept:`image/*`,multiple:!0,webkitdirectory:``,onChange:e=>{un?.(e.target.files),e?.target&&(e.target.value=``)}}),(0,R.jsx)(`input`,{type:`file`,ref:En,className:`hidden`,accept:`image/*`,multiple:!0,onChange:e=>{un?.(e.target.files),e?.target&&(e.target.value=``)}})]})]}),(0,R.jsx)(`hr`,{className:`border-slate-100`}),t===`batch`&&(0,R.jsxs)(`section`,{className:`space-y-3`,children:[(0,R.jsxs)(`div`,{className:`flex justify-between items-center`,children:[(0,R.jsx)(`h3`,{className:`font-bold text-xs uppercase tracking-wider text-slate-400`,children:J(`app.batch.title`)}),(0,R.jsx)(`span`,{className:`text-xs text-blue-600 font-medium`,children:J(`app.batch.selected`,{count:dn.length})})]}),(0,R.jsxs)(`div`,{className:`space-y-2`,children:[(0,R.jsx)(`div`,{className:`text-[10px] font-bold text-slate-400 uppercase tracking-wider`,children:J(`app.batch.presets.title`)}),(0,R.jsxs)(`div`,{className:`flex flex-wrap gap-2`,children:[(0,R.jsx)(`button`,{type:`button`,onClick:()=>Nn(X.iosRequired),className:`px-2.5 py-1.5 rounded-lg border border-slate-200 bg-white text-[11px] font-semibold text-slate-600 hover:border-blue-300 hover:text-blue-700 hover:bg-blue-50 transition-colors`,children:J(`app.batch.presets.iosRequired`)}),(0,R.jsx)(`button`,{type:`button`,onClick:()=>Nn(X.playPhone),className:`px-2.5 py-1.5 rounded-lg border border-slate-200 bg-white text-[11px] font-semibold text-slate-600 hover:border-blue-300 hover:text-blue-700 hover:bg-blue-50 transition-colors`,children:J(`app.batch.presets.playPhone`)}),(0,R.jsx)(`button`,{type:`button`,onClick:()=>Nn(X.playTablet),className:`px-2.5 py-1.5 rounded-lg border border-slate-200 bg-white text-[11px] font-semibold text-slate-600 hover:border-blue-300 hover:text-blue-700 hover:bg-blue-50 transition-colors`,children:J(`app.batch.presets.playTablet`)}),(0,R.jsx)(`button`,{type:`button`,onClick:()=>Nn(X.all),className:`px-2.5 py-1.5 rounded-lg border border-slate-200 bg-white text-[11px] font-semibold text-slate-600 hover:border-blue-300 hover:text-blue-700 hover:bg-blue-50 transition-colors`,children:J(`app.batch.presets.all`)}),(0,R.jsx)(`button`,{type:`button`,onClick:()=>Nn([]),className:`px-2.5 py-1.5 rounded-lg border border-slate-200 bg-white text-[11px] font-semibold text-slate-500 hover:border-slate-300 hover:text-slate-700 hover:bg-slate-50 transition-colors`,children:J(`app.batch.presets.clear`)})]})]}),(0,R.jsxs)(`div`,{className:`space-y-2`,children:[(0,R.jsx)(`div`,{className:`text-[10px] font-bold text-slate-400 uppercase tracking-wider`,children:J(`app.batch.structure.title`)}),(0,R.jsxs)(`div`,{className:`relative`,children:[(0,R.jsxs)(`select`,{value:W,onChange:e=>pn(e.target.value===`device`?`device`:`locale`),className:`w-full appearance-none bg-slate-50 border border-slate-200 text-slate-700 text-sm rounded-xl px-4 py-2.5 pr-8 focus:outline-hidden focus:border-blue-500`,children:[(0,R.jsx)(`option`,{value:`locale`,children:J(`app.batch.structure.byLocale`)}),(0,R.jsx)(`option`,{value:`device`,children:J(`app.batch.structure.byDevice`)})]}),(0,R.jsx)(b,{className:`absolute right-3 top-1/2 -translate-y-1/2 text-slate-400 pointer-events-none`,size:16})]})]}),(0,R.jsx)(Mn,{}),(0,R.jsxs)(`div`,{className:`relative`,children:[(0,R.jsx)(`input`,{type:`text`,value:bn,onChange:e=>xn(e.target.value),className:`w-full bg-slate-50 border border-slate-200 text-slate-700 text-sm rounded-xl px-4 py-2.5 pr-10 focus:outline-hidden focus:border-blue-500`,placeholder:J(`app.device.searchPlaceholder`),spellCheck:!1}),bn&&(0,R.jsx)(`button`,{type:`button`,onClick:()=>xn(``),className:`absolute right-2.5 top-1/2 -translate-y-1/2 text-slate-400 hover:text-slate-600 p-1`,"aria-label":`Clear search`,children:(0,R.jsx)(p,{size:14})})]}),(0,R.jsx)(`div`,{className:`space-y-4 max-h-[200px] overflow-y-auto pr-2 scrollbar-thin border border-slate-100 rounded-lg p-2`,children:Object.entries(jn).map(([e,t])=>(0,R.jsxs)(`div`,{className:`space-y-2`,children:[(0,R.jsx)(`div`,{className:`text-xs font-semibold text-slate-900 bg-slate-50 p-1 px-2 rounded-sm`,children:Dn[e]||e}),t.map(e=>{let t=vt(z[e],{id:e,mode:pe});return(0,R.jsxs)(`label`,{className:`flex items-center gap-3 p-2 rounded-lg hover:bg-slate-50 cursor-pointer transition-colors border border-transparent hover:border-slate-100`,onClick:()=>fn(e),title:pe===_t.detailed?t.optionLabel:[t.optionLabel,t.dimensions].filter(Boolean).join(` - `),children:[(0,R.jsx)(`div`,{className:`w-4 h-4 rounded-sm border flex items-center justify-center transition-colors ${dn.includes(e)?`bg-blue-500 border-blue-500`:`border-slate-300 bg-white`}`,children:dn.includes(e)&&(0,R.jsx)(y,{size:12,className:`text-white`})}),(0,R.jsxs)(`div`,{className:`min-w-0 flex-1`,children:[(0,R.jsx)(`div`,{className:`text-xs text-slate-700 font-medium truncate`,children:t.primary}),t.secondary&&(0,R.jsx)(`div`,{className:`text-[10px] text-slate-400 truncate`,children:t.secondary})]})]},e)})]},e))})]})]})]})})},en=({show:e,current:t,total:n,label:r,onCancel:i})=>{let{t:a}=c();if(!e)return null;let o=n>0?Math.round(t/n*100):0,s=r||a(`app.progress.generating`);return(0,R.jsx)(`div`,{className:`fixed inset-0 z-100 bg-black/50 backdrop-blur-xs flex items-center justify-center`,children:(0,R.jsxs)(`div`,{className:`bg-white p-8 rounded-2xl shadow-2xl flex flex-col items-center w-80`,children:[(0,R.jsx)(Ce,{size:48,className:`text-blue-600 animate-spin mb-4`}),(0,R.jsx)(`h3`,{className:`text-lg font-bold text-slate-800 mb-2`,children:s}),(0,R.jsx)(`div`,{className:`w-full bg-slate-100 rounded-full h-2 mb-2 overflow-hidden`,children:(0,R.jsx)(`div`,{className:`bg-blue-600 h-full transition-all duration-300`,style:{width:`${o}%`}})}),(0,R.jsx)(`p`,{className:`text-sm text-slate-500`,children:a(`app.progress.images`,{current:t,total:n})}),i&&(0,R.jsxs)(`button`,{type:`button`,onClick:i,className:`mt-4 inline-flex items-center gap-2 px-4 py-2 text-sm font-semibold text-slate-700 rounded-lg border border-slate-200 hover:bg-slate-50 transition`,children:[(0,R.jsx)(p,{size:16}),a(`common.cancel`,{defaultValue:`Cancel`})]})]})})},tn=({slides:e,activeSlideIndex:t,setActiveSlideIndex:n,currentLocaleId:r,addSlide:i,removeSlide:a,onApplyFileToSlide:o,onOpenFilePickerForSlide:s,validateImageFile:l,onAddSlidesFromFiles:u})=>{let{t:d}=c(),[f,m]=(0,L.useState)(!1),[h,g]=(0,L.useState)(null),_=(0,L.useCallback)(e=>{e?.dataTransfer&&Array.from(e.dataTransfer.types||[]).includes(`Files`)&&(e.preventDefault(),m(!0))},[]),v=(0,L.useCallback)(e=>{e&&(e.preventDefault(),!e.currentTarget.contains(e.relatedTarget)&&(m(!1),g(null)))},[]),y=(0,L.useCallback)((e,t)=>{if(!e?.dataTransfer)return;e.preventDefault(),e.stopPropagation(),m(!1),g(null),n(t);let r=Array.from(e.dataTransfer.files||[]).filter(e=>e.type.startsWith(`image/`));if(!r.length||!o)return;let i=r[0];l&&!l(i)||o(i,t)},[o,n,l]),b=(0,L.useCallback)(e=>{if(!e?.dataTransfer)return;e.preventDefault(),m(!1),g(null);let t=Array.from(e.dataTransfer.files||[]).filter(e=>e.type.startsWith(`image/`));if(t.length){if(u){u(t);return}t.forEach(e=>{if(l&&!l(e))return;let t=new FileReader;t.onload=e=>i({screenshot:e.target?.result||null}),t.readAsDataURL(e)})}},[i,u,l]),x=e=>{n(e),typeof s==`function`&&s(e)};return(0,R.jsx)(`div`,{className:`w-full flex justify-center absolute bottom-0 left-0 right-0 z-20 pointer-events-none`,children:(0,R.jsxs)(`div`,{className:`w-full max-w-[1200px] bg-white border-t border-slate-200 flex items-center px-6 gap-4 shadow-[0_-8px_20px_-12px_rgba(0,0,0,0.25)] overflow-x-auto py-4 rounded-t-xl pointer-events-auto transition-colors ${f?`bg-blue-50 ring-2 ring-blue-400 border-blue-300`:``}`,onDragOver:_,onDrop:b,children:[f&&(0,R.jsx)(`div`,{className:`text-[11px] font-semibold text-blue-700 mr-2 whitespace-nowrap`,children:d(`app.storyboard.dropToAddSlides`)}),e.map((i,o)=>{let s=i?.screenshotsByLocale?.[r]||i?.screenshot||null,c=Object.keys(i?.screenshotsByLocale||{}).length;return(0,R.jsxs)(`div`,{onClick:()=>n(o),onDoubleClick:()=>x(o),onKeyDown:e=>{e.target===e.currentTarget&&(e.key===`Enter`||e.key===` `)&&(e.preventDefault(),n(o))},onDragOver:e=>{_(e),e.stopPropagation()},onDragLeave:e=>{v(e),e.stopPropagation(),g(null)},onDragEnter:e=>{_(e),e.stopPropagation(),g(o)},onDrop:e=>y(e,o),role:`button`,tabIndex:0,"aria-pressed":o===t,className:`relative w-20 h-24 rounded-lg border-2 cursor-pointer transition-all flex flex-col items-center justify-center bg-slate-50 hover:bg-slate-100 ${o===t?`border-blue-500 ring-2 ring-blue-200`:`border-slate-200`} ${h===o?`border-blue-400 bg-blue-50`:``}`,children:[(0,R.jsxs)(`span`,{className:`absolute top-1 left-2 text-[10px] font-bold text-slate-400`,children:[`#`,o+1]}),c>0&&(0,R.jsx)(`span`,{className:`absolute bottom-1 left-1 px-1.5 py-0.5 rounded-full bg-blue-600 text-white text-[9px] font-bold shadow-xs`,title:d(`app.storyboard.localeOverrides`,{count:c}),children:c}),s?(0,R.jsx)(`img`,{src:s,alt:``,className:`w-12 h-16 object-cover rounded-sm shadow-xs border border-slate-200`}):(0,R.jsx)(`div`,{className:`w-12 h-16 bg-slate-200 rounded-sm flex items-center justify-center`,children:(0,R.jsx)(be,{size:16,className:`text-slate-400`})}),e.length>1&&(0,R.jsx)(`button`,{type:`button`,onClick:e=>a(o,e),className:`absolute -top-2 -right-2 bg-red-500 text-white rounded-full p-0.5 shadow-xs hover:scale-110 transition-transform`,"aria-label":d(`common.remove`,{defaultValue:`Remove`}),children:(0,R.jsx)(p,{size:10})})]},i.id)}),(0,R.jsxs)(`button`,{onClick:()=>i(),onDragOver:_,onDrop:b,className:`w-20 h-24 rounded-lg border-2 border-dashed border-slate-300 flex flex-col items-center justify-center text-slate-400 hover:text-blue-500 hover:border-blue-400 hover:bg-blue-50 transition-all`,children:[(0,R.jsx)(ke,{size:24}),(0,R.jsx)(`span`,{className:`text-xs font-medium mt-1`,children:d(`app.storyboard.addSlide`)})]})]})})},nn=`shipScreensUpsellWatermarkToastLastShownAt`,rn=`shipscreensSampleWelcomePromptShownV1`,an=(e=``)=>{let t=new URLSearchParams(e).get(`billing`);return t===`starter`||t===`annual`?t:`monthly`},on=()=>{let{t:e,i18n:t}=c(),{addToast:n}=s();m(`titles.editor`);let i=d(),[l,p]=(0,L.useState)(`single`),h=typeof window<`u`&&window.__SHIPSCREENS_CLI===!0;(0,L.useEffect)(()=>{h&&p(`batch`)},[h]);let[_,v]=(0,L.useState)(`edit`),[y,b]=(0,L.useState)(()=>typeof window>`u`?_t.store:localStorage.getItem(`shipScreensDeviceLabelMode`)===_t.detailed?_t.detailed:_t.store),[S,C]=(0,L.useState)(()=>{if(typeof window>`u`)return`locale`;let e=window.__SHIPSCREENS_CLI===!0?window.__SHIPSCREENS_CLI_EXPORT_STRUCTURE_MODE:null;return e===`device`?`device`:e===`locale`?`locale`:localStorage.getItem(`shipScreensExportStructureMode`)===`device`?`device`:`locale`}),w=h&&typeof window<`u`&&window.__SHIPSCREENS_CLI_AUTH||null,T=w?.token||null,E=w?.profile||null,[O,A]=(0,L.useState)(()=>!!E?.isPro),[j,M]=(0,L.useState)(!1),[ee,ne]=(0,L.useState)(!1),ie=(0,L.useRef)(null),N=(0,L.useRef)(!1),[oe,se]=(0,L.useState)(()=>!!E?.stripeCustomerId),[ce,P]=(0,L.useState)(()=>E?.subscriptionStatus===void 0?null:E.subscriptionStatus||null),{user:le,isAuthenticated:F,isLoading:ue,signIn:de,signUp:fe,signOut:me}=te(),he=le?.token||T,I=!!he,[ve,ye]=(0,L.useState)(``),[be,we]=(0,L.useState)(0),[Oe,ke]=(0,L.useState)(!1),[Ae,Ne]=(0,L.useState)({x:0,y:0}),[Pe,Le]=(0,L.useState)(!1),Re=(0,L.useRef)({x:0,y:0}),ze=typeof window<`u`?an(window.location.search):`monthly`,Be=ce===`past_due`||ce===`unpaid`,[Ve,We]=(0,L.useState)([`iphone69`,`iphone65`,`iphone55`,`pixel8`,`ipad13`]),Ge=(0,L.useCallback)(e=>{We(t=>t.includes(e)?t.filter(t=>t!==e):[...t,e])},[]),[Ke,qe]=(0,L.useState)(`solid`),[Je,Xe]=(0,L.useState)(`#ffffff`),[Ze,Qe]=(0,L.useState)(null),[$e,et]=(0,L.useState)(0),[tt,nt]=(0,L.useState)(0),[rt,it]=(0,L.useState)(`#e0c3fc`),[at,ot]=(0,L.useState)(`#8ec5fc`),[st,ct]=(0,L.useState)(135),[lt,ut]=(0,L.useState)(1),[B,dt]=(0,L.useState)(.25),[ft,ht]=(0,L.useState)(`portrait`),[V,yt]=(0,L.useState)(`iphone69`),[bt,xt]=(0,L.useState)(`black`),[St,Ct]=(0,L.useState)(8),[wt,H]=(0,L.useState)(`top`),[Tt,Et]=(0,L.useState)(`none`),[Dt,Ot]=(0,L.useState)(null),[kt,At]=(0,L.useState)(`#1e293b`),[jt,Mt]=(0,L.useState)(96),[Nt,Pt]=(0,L.useState)(48),[Ft,It]=(0,L.useState)(40),[Lt,Rt]=(0,L.useState)(24),[zt,Bt]=(0,L.useState)(5),[Wt,Gt]=(0,L.useState)(96),[Kt,qt]=(0,L.useState)(48),[Jt,Yt]=(0,L.useState)(8),[Xt,Zt]=(0,L.useState)(`Inter`),[Qt,on]=(0,L.useState)(()=>{if(typeof window<`u`){let e=localStorage.getItem(`shipScreensRecentColors`);return e?JSON.parse(e):[]}return[]});(0,L.useEffect)(()=>{localStorage.setItem(`shipScreensRecentColors`,JSON.stringify(Qt))},[Qt]),(0,L.useEffect)(()=>{localStorage.setItem(`shipScreensDeviceLabelMode`,y)},[y]),(0,L.useEffect)(()=>{localStorage.setItem(`shipScreensExportStructureMode`,S)},[S]);let sn=(0,L.useCallback)((e,t={})=>{mr.current||(mr.current=!0,a(`project_created`,{source:e,...t}))},[]),cn=(0,L.useCallback)((e={})=>{hr.current||(hr.current=!0,sn(`screenshot_upload`),a(`base_screenshots_uploaded`,e))},[sn]),ln=(0,L.useCallback)(e=>{e&&on(t=>[e,...t.filter(t=>t!==e)].slice(0,10))},[]),un=e=>{yt(e),z[e]?.type===`watch`?(Mt(Ft),Pt(Lt),Ct(zt)):z[V]?.type===`watch`&&(Mt(Wt),Pt(Kt),Ct(Jt))},dn=[{id:`en-US`,name:`English (US)`,flag:`🇺🇸`,defaults:{header:`New App`,sub:`Available Now`}},{id:`ja-JP`,name:`日本語`,flag:`🇯🇵`,defaults:{header:`新作アプリ`,sub:`好評配信中`}},{id:`es-ES`,name:`Espanol (Espana)`,flag:`🇪🇸`,defaults:{header:`Nueva app`,sub:`Disponible ahora`}},{id:`fr-FR`,name:`Francais`,flag:`🇫🇷`,defaults:{header:`Nouvelle appli`,sub:`Disponible maintenant`}},{id:`de-DE`,name:`Deutsch`,flag:`🇩🇪`,defaults:{header:`Neue App`,sub:`Jetzt verfügbar`}},{id:`ko-KR`,name:`한국어`,flag:`🇰🇷`,defaults:{header:`새로운 앱`,sub:`지금 이용 가능`}},{id:`zh-CN`,name:`简体中文`,flag:`🇨🇳`,defaults:{header:`新应用`,sub:`现已发布`}},{id:`zh-TW`,name:`繁體中文`,flag:`🇹🇼`,defaults:{header:`新應用`,sub:`現已發布`}},{id:`it-IT`,name:`Italiano`,flag:`🇮🇹`,defaults:{header:`Nuova app`,sub:`Disponibile ora`}},{id:`pt-BR`,name:`Portugues (Brasil)`,flag:`🇧🇷`,defaults:{header:`Novo app`,sub:`Disponível agora`}}],[U,fn]=(0,L.useState)([{id:`en-US`,name:`English (US)`,flag:`🇺🇸`},{id:`ja-JP`,name:`日本語`,flag:`🇯🇵`}]),[W,pn]=(0,L.useState)(`en-US`),[G,K]=(0,L.useState)([{id:1,screenshot:null,screenshotsByLocale:{},texts:{"en-US":{header:`New App`,sub:`Available Now`},"ja-JP":{header:`新作アプリ`,sub:`好評配信中`}}}]),[q,mn]=(0,L.useState)(0),[hn,gn]=(0,L.useState)(`shared`),[_n,vn]=(0,L.useState)([]),[J,Y]=(0,L.useState)(``),[yn,bn]=(0,L.useState)(!1),[xn,Sn]=(0,L.useState)({current:0,total:0}),[Cn,wn]=(0,L.useState)({used:`0.00`,percent:0}),[Tn,En]=(0,L.useState)(!1),[Dn,On]=(0,L.useState)({past:[],future:[]}),[kn,An]=(0,L.useState)(null),[jn,Mn]=(0,L.useState)(null),[X,Nn]=(0,L.useState)(null),[Pn,Fn]=(0,L.useState)(`merge`),[In,Ln]=(0,L.useState)(!1),[Rn,zn]=(0,L.useState)(`current`),[Bn,Vn]=(0,L.useState)(`5`),[Z,Hn]=(0,L.useState)(null),[Un,Wn]=(0,L.useState)({current:0,total:0}),[Gn,Kn]=(0,L.useState)(!1),[qn,Jn]=(0,L.useState)(``),[Yn,Xn]=(0,L.useState)(()=>typeof window<`u`?window.innerWidth<768:!1),[Zn,Qn]=(0,L.useState)(()=>typeof window<`u`?window.innerWidth>=768:!1),[$n,er]=(0,L.useState)(0),[tr,nr]=(0,L.useState)(!1),[rr,ir]=(0,L.useState)(!1),[ar,or]=(0,L.useState)(!1),[sr,cr]=(0,L.useState)(!1),[lr,ur]=(0,L.useState)(!1),[dr,fr]=(0,L.useState)(!1),pr=(0,L.useRef)(!1),mr=(0,L.useRef)(!1),hr=(0,L.useRef)(!1),gr=(0,L.useRef)(!1),_r=(0,L.useRef)(null),vr=(0,L.useRef)(null),yr=(0,L.useRef)(null),br=(0,L.useRef)(null),xr=(0,L.useRef)(null),Sr=(0,L.useRef)(null),Cr=(0,L.useRef)(null),wr=(0,L.useRef)(null),Tr=(0,L.useRef)(null),Er=(0,L.useRef)(null),Dr=(0,L.useCallback)(()=>Mn(null),[]),Or=(0,L.useCallback)(()=>{Ln(!1),zn(`current`),Vn(String(Math.max(1,G.length)))},[G.length]),kr=(0,L.useCallback)(()=>{Nn(null),Fn(`merge`)},[]),Ar=(0,L.useCallback)(()=>{kn?.onCancel?.(),An(null)},[kn]);u({isOpen:!!jn,onClose:Dr,panelRef:_r,initialFocusRef:vr}),u({isOpen:In,onClose:Or,panelRef:yr,initialFocusRef:br}),u({isOpen:!!X,onClose:kr,panelRef:xr,initialFocusRef:Sr}),u({isOpen:!!kn,onClose:Ar,panelRef:Tr,initialFocusRef:Er});let jr=(0,L.useRef)(null),Mr=(0,L.useRef)(null),Nr=(0,L.useRef)(null),Pr=(0,L.useRef)(null),Fr=(0,L.useRef)(null),Ir=(0,L.useRef)(null),Lr=(0,L.useRef)(null),Rr=(0,L.useRef)(null),zr=(0,L.useRef)(null),Br=(0,L.useRef)(!1),Vr=(0,L.useRef)(``),Hr=(0,L.useRef)(!1),Ur=(0,L.useRef)(0),Wr=(0,L.useRef)(null),Gr=(0,L.useRef)([]),Kr=(0,L.useRef)(null),{exportSingle:qr,exportBatch:Jr,isExporting:Yr,exportProgress:Xr}=Vt({deviceLibrary:z,bgType:Ke,bgColor:Je});(0,L.useEffect)(()=>{let e=zr.current;if(!e)return;let t=e=>{if(e.ctrlKey||e.metaKey){e.preventDefault();let t=.05;dt(n=>{let r=e.deltaY<0?n+t:n-t;return Math.min(1,Math.max(.05,r))})}};return e.addEventListener(`wheel`,t,{passive:!1}),()=>{e.removeEventListener(`wheel`,t)}},[]);let Zr=G[q];U.find(e=>e.id===W)?.name;let Qr=Zr.texts[W]?.header||``,$r=Zr.texts[W]?.sub||``,ei=Zr.screenshotsByLocale?.[W]||Zr.screenshot,ti=!!Zr.screenshotsByLocale?.[W],ni=hn===`shared`?Zr.screenshot:ei,ri=Zr?.screenshotsByLocale||{},ii=Object.keys(ri).length,ai=ii>0,oi=!!Zr?.screenshot,si=z[V]?.type===`watch`,ci=si?`portrait`:ft,li=Zr.layoutOverride||null,ui=!!li,di=li?.topSpacing??St,fi=li?.deviceScale??lt,pi=li?.layoutMode??wt,{canvasWidth:mi=1200,canvasHeight:hi=2200}=(0,L.useMemo)(()=>Ye({deviceId:V,orientation:ci,deviceScale:fi,topSpacing:di,layoutMode:pi})||{},[V,ci,fi,di,pi]);(0,L.useEffect)(()=>{si?(It(jt),Rt(Nt),Bt(St)):(Gt(jt),qt(Nt),Yt(St))},[si,jt,Nt,St]);let gi=[{name:e(`app.fonts.inter`),value:`Inter`,family:`'Inter', 'Noto Sans Arabic', 'Noto Sans Thai', sans-serif`},{name:e(`app.fonts.roboto`),value:`Roboto`,family:`'Roboto', 'Noto Sans Arabic', 'Noto Sans Thai', sans-serif`},{name:e(`app.fonts.montserrat`),value:`Montserrat`,family:`'Montserrat', 'Noto Sans Arabic', 'Noto Sans Thai', sans-serif`},{name:e(`app.fonts.playfair`),value:`Playfair Display`,family:`'Playfair Display', 'Noto Sans Arabic', 'Noto Sans Thai', serif`},{name:e(`app.fonts.merriweather`),value:`Merriweather`,family:`'Merriweather', 'Noto Sans Arabic', 'Noto Sans Thai', serif`},{name:e(`app.fonts.system`),value:`System`,family:`system-ui, -apple-system, 'Segoe UI', 'Noto Sans Arabic', 'Noto Sans Thai', sans-serif`}],_i=(0,L.useCallback)(()=>{if(typeof localStorage>`u`){wn({used:`0.00`,percent:0});return}try{let e=0;for(let t=0;t<localStorage.length;t++){let n=localStorage.key(t);if(!n)continue;let r=localStorage.getItem(n);r!==null&&(e+=(n.length+r.length)*2)}let t=e/1024/1024,n=Math.min(e/(5*1024*1024)*100,100);wn({used:t.toFixed(2),percent:n})}catch(e){console.error(`Failed to calculate storage usage`,e),wn({used:`0.00`,percent:0})}},[]),vi=(0,L.useCallback)(()=>({bgType:Ke,bgColor:Je,gradientStart:rt,gradientEnd:at,gradientAngle:st,bgBlur:$e,bgOpacity:tt,deviceScale:lt,orientation:ft,deviceId:V,topSpacing:St,badgeType:Tt,layoutMode:wt,frameColor:bt,locales:U,currentLocaleId:W,activeSlideIndex:q,slides:G,textColor:kt,headerSize:jt,subHeaderSize:Nt,selectedFont:Xt,selectedBatchDevices:Ve,bgImage:Ze,logoImage:Dt}),[Ke,Je,rt,at,st,$e,tt,lt,ft,V,St,Tt,wt,bt,U,W,G,kt,jt,Nt,Xt,Ve,Ze,Dt,q]),Q=(0,L.useCallback)(e=>{if(!e)return;Br.current=!0,qe(e.bgType??`solid`),Xe(e.bgColor??`#ffffff`),it(e.gradientStart??`#e0c3fc`),ot(e.gradientEnd??`#8ec5fc`),ct(e.gradientAngle??135),et(e.bgBlur??0),nt(e.bgOpacity??0),ut(e.deviceScale??1),dt(t=>e.previewZoom??t??.25),ht(e.orientation??`portrait`),yt(e.deviceId??`iphone69`),xt(e.frameColor??`black`),Ct(e.topSpacing??8),Et(e.badgeType??`none`),H(e.layoutMode??`top`),fn(Array.isArray(e.locales)?e.locales:[]),pn(e.currentLocaleId??`en-US`);let t=Array.isArray(e.slides)?e.slides:[];K(t);let n=typeof e.activeSlideIndex==`number`?e.activeSlideIndex:0;mn(t.length?Math.min(Math.max(n,0),t.length-1):0),At(e.textColor??`#1e293b`),Mt(e.headerSize??96),Pt(e.subHeaderSize??48),Zt(e.selectedFont??`Inter`),We(Array.isArray(e.selectedBatchDevices)?e.selectedBatchDevices:[]),Qe(e.bgImage??null),Ot(e.logoImage??null)},[]),yi=(0,L.useCallback)(()=>{On(e=>{if(!e.past.length)return e;let t=[...e.past],n=t.pop(),r=[vi(),...e.future].slice(0,20);return Q(n),{past:t,future:r}})},[vi,Q]),bi=(0,L.useCallback)(()=>{On(e=>{if(!e.future.length)return e;let[t,...n]=e.future,r=[...e.past,vi()].slice(-20);return Q(t),{past:r,future:n}})},[vi,Q]);(0,L.useEffect)(()=>{let e=()=>{let e=window.innerHeight,t=window.innerWidth<768;Xn(t),Qn(!t),l===`single`&&dt(e<800?.2:e<1e3?.25:.35)};return e(),window.addEventListener(`resize`,e),()=>window.removeEventListener(`resize`,e)},[l]),(0,L.useEffect)(()=>{if(J){let e=setTimeout(()=>Y(``),2e3);return()=>clearTimeout(e)}},[J]),(0,L.useEffect)(()=>{bn(Yr),Sn(Xr)},[Yr,Xr]),(0,L.useEffect)(()=>{if(l===`single`){let e=document.getElementById(`single-canvas`)||document.querySelector(`[data-capture-target="true"]`);e&&(Rr.current=e)}},[l]),(0,L.useEffect)(()=>{_===`data`&&_i()},[_,_i]),(0,L.useEffect)(()=>{if(Hr.current)return;Hr.current=!0;let e=vi();Vr.current=JSON.stringify(e)},[vi]),(0,L.useEffect)(()=>{if(Br.current){Br.current=!1;return}let e=vi(),t=JSON.stringify(e);t!==Vr.current&&(Vr.current=t,On(t=>({past:[...t.past,e].slice(-20),future:[]})))},[vi]),(0,L.useEffect)(()=>{let e=localStorage.getItem(`mockupStudioUserPresets`);e&&vn(JSON.parse(e))},[]),(0,L.useEffect)(()=>{(async()=>{if(!he){A(!1),P(null),se(!1);return}if(h&&E){A(!!E.isPro),P(E.subscriptionStatus||null),se(!!E.stripeCustomerId);return}try{let e=await re(he);e?.isPro!==void 0&&A(!!e.isPro),e?.subscriptionStatus!==void 0&&P(e.subscriptionStatus||null),se(!!e?.stripeCustomerId)}catch(e){console.error(`Failed to load profile`,e),A(!1),P(null),se(!1)}})()},[he,h,E]),(0,L.useEffect)(()=>{let e=async()=>{if(he&&!(h&&E))try{let e=await re(he);e?.isPro!==void 0&&A(!!e.isPro),e?.subscriptionStatus!==void 0&&P(e.subscriptionStatus||null),e?.stripeCustomerId!==void 0&&se(!!e.stripeCustomerId)}catch(e){console.error(`Failed to refresh profile on focus`,e)}},t=()=>{e()};return window.addEventListener(`focus`,t),()=>window.removeEventListener(`focus`,t)},[he,h,E]),(0,L.useEffect)(()=>{if(ue||h)return;let e=new URLSearchParams(window.location.search),t=localStorage.getItem(`pendingCheckoutSessionId`),n=e.get(`session_id`)||t;if(!n||n===`cli`)return;let r=()=>{if(e.has(`session_id`)){e.delete(`session_id`);let t=e.toString(),n=`${window.location.pathname}${t?`?${t}`:``}${window.location.hash||``}`;window.history.replaceState({},``,n)}},i=async(e=1,t=6)=>{if(!F||!le?.token){ye(`signin`),localStorage.setItem(`pendingCheckoutSessionId`,n),pr.current||(pr.current=!0,de());return}localStorage.removeItem(`pendingCheckoutSessionId`),ye(`pending`),we(e);try{let e=await re(le.token);if(e?.isPro){A(!0),e?.subscriptionStatus!==void 0&&P(e.subscriptionStatus||null),e?.stripeCustomerId&&se(!0),ye(`success`);return}}catch(e){console.error(`Failed to refresh after checkout`,e)}if(e>=t){ye(`retry`);return}setTimeout(()=>i(e+1,t),1500)};i(),r()},[F,le?.token,ue,de,h]),(0,L.useEffect)(()=>{let e=()=>{ke(!0),h||me(),A(!1),P(null),se(!1)};return window.addEventListener(`auth:unauthorized`,e),()=>window.removeEventListener(`auth:unauthorized`,e)},[me,h]);let xi=t=>t?t.type?.startsWith(`image/`)?t.size>20*1024*1024?(n({type:`error`,message:e(`app.alerts.fileSize`)}),!1):!0:(n({type:`error`,message:e(`app.alerts.fileType`)}),!1):!1,Si=e=>new Promise((t,n)=>{let r=new FileReader;r.onload=e=>t(e.target.result),r.onerror=n,r.readAsDataURL(e)}),Ci=async()=>{let t={bgType:Ke,bgColor:Je,gradientStart:rt,gradientEnd:at,gradientAngle:st,bgBlur:$e,bgOpacity:tt,deviceScale:lt,orientation:ft,deviceId:V,topSpacing:St,layoutMode:wt,badgeType:Tt,frameColor:bt,locales:U,currentLocaleId:W,slides:G.map(e=>({...e,screenshot:null,screenshotsByLocale:{}})),textColor:kt,headerSize:jt,subHeaderSize:Nt,selectedFont:Xt,selectedBatchDevices:Ve};try{let r=JSON.stringify(t);if(r.length>6e3){n({type:`error`,message:e(`app.alerts.shareTooLarge`)});return}let i=btoa(encodeURIComponent(r).replace(/%([0-9A-F]{2})/g,(e,t)=>String.fromCharCode(`0x`+t))),a=await x(`${window.location.origin}${window.location.pathname}?project=${i}`);a.ok?(Y(`shared`),n({type:`success`,message:a.method===`execCommand`?e(`app.share.fallbackSuccess`):e(`app.share.copySuccess`)})):n({type:`info`,message:e(`app.share.manualCopy`)})}catch(t){console.error(`Share failed`,t),n({type:`error`,message:e(`app.alerts.shareTooLarge`)})}};(0,L.useEffect)(()=>{let e=new URLSearchParams(window.location.search).get(`project`);if(e)try{let t=decodeURIComponent(atob(e).split(``).map(e=>`%`+(`00`+e.charCodeAt(0).toString(16)).slice(-2)).join(``)),n=JSON.parse(t);n.bgType&&qe(n.bgType),n.bgColor&&Xe(n.bgColor),n.gradientStart&&it(n.gradientStart),n.gradientEnd&&ot(n.gradientEnd),n.gradientAngle&&ct(n.gradientAngle),n.deviceScale&&ut(n.deviceScale),n.orientation&&ht(n.orientation),n.deviceId&&yt(n.deviceId),n.topSpacing&&Ct(n.topSpacing),n.layoutMode&&H(n.layoutMode),n.badgeType&&Et(n.badgeType),n.locales&&fn(n.locales),n.currentLocaleId&&pn(n.currentLocaleId),n.slides&&(K(n.slides),mn(0)),n.textColor&&At(n.textColor),n.headerSize&&Mt(n.headerSize),n.subHeaderSize&&Pt(n.subHeaderSize),n.selectedFont&&Zt(n.selectedFont),n.selectedBatchDevices&&We(n.selectedBatchDevices),n.frameColor&&xt(n.frameColor)}catch(e){console.error(`Failed to load project from URL`,e)}},[]),(0,L.useEffect)(()=>{if(typeof window>`u`)return;let e=new URLSearchParams(window.location.search),t=(e.get(`upgrade`)||``).trim().toLowerCase();if(!t)return;N.current=!0,(t===`1`||t===`true`||t===`yes`||t===`on`)&&!O&&(ie.current=`url_param`,a(`upgrade_modal_opened`,{source:`url_param`,is_pro:O,is_authenticated:!!I}),M(!0)),e.delete(`upgrade`);let n=e.toString(),r=`${window.location.pathname}${n?`?${n}`:``}${window.location.hash||``}`;window.history.replaceState(window.history.state,``,r)},[I,O]);let wi=(0,L.useCallback)((e=`unknown`)=>{j||(ie.current=e,a(`upgrade_modal_opened`,{source:e,is_pro:O,is_authenticated:!!I}),M(!0))},[I,O,j]),Ti=()=>{if(typeof window>`u`)return`/app/`;let e=`${window.location.pathname}${window.location.search}${window.location.hash||``}`;return e.length>1200?`/app/`:e},Ei=()=>{if(typeof window>`u`)return`/app/?upgrade=1`;try{let e=new URL(window.location.href);e.searchParams.set(`upgrade`,`1`);let t=`${e.pathname}${e.search}${e.hash||``}`;return t.length>1200?`/app/?upgrade=1`:t}catch{return`/app/?upgrade=1`}},Di=async()=>{window.location.href=`/signin?next=${encodeURIComponent(Ti())}`},Oi=async()=>{window.location.href=`/signup?next=${encodeURIComponent(Ti())}`},ki=async()=>{try{await me(),A(!1),P(null),ye(``)}catch(e){console.error(`Sign out failed`,e)}},Ai=async()=>{let t=ie.current||`unknown`,i=typeof window<`u`?new URLSearchParams(window.location.search):new URLSearchParams,s=an(window.location.search),c=o(),l=i.get(`entry_source`)||c.entry_source||``,u=s===`starter`?`agent_starter`:`pro`;try{if(a(`upgrade_cta_clicked`,{source:t,is_pro:O,is_authenticated:!!I,requested_billing:s,offer:u,entry_source:l||void 0}),!I){eo(!0),a(`checkout_auth_required`,{source:t,requested_billing:s,offer:u,entry_source:l||void 0}),a(`upgrade_signin_redirected`,{source:t,requested_billing:s,offer:u,entry_source:l||void 0}),r(),window.location.href=`/signin?next=${encodeURIComponent(Ei())}`;return}throw eo(),Error(e(`app.alerts.priceMissing`))}catch(r){console.error(r),a(`checkout_failed`,{source:t,requested_billing:s,offer:s===`starter`?`agent_starter`:`pro`,entry_source:l||void 0}),n({type:`error`,message:e(`app.alerts.checkoutFailed`)})}},ji=e=>{if(O){e();return}wi(`require_pro`)},Mi=()=>{ye(`pending`),we(0);let e=new URLSearchParams(window.location.search);if(e.get(`session_id`)){e.delete(`session_id`);let t=e.toString(),n=`${window.location.pathname}${t?`?${t}`:``}${window.location.hash||``}`;window.history.replaceState({},``,n)}if(I&&he){let e=async(t=1,n=6)=>{ye(`pending`),we(t);try{if((await re(he))?.isPro){A(!0),ye(`success`);return}}catch(e){console.error(`Failed to refresh after checkout`,e)}if(t>=n){ye(`retry`);return}setTimeout(()=>e(t+1,n),1500)};e()}else ye(`signin`)},Ni=async()=>{try{if(!I||!he){n({type:`error`,message:e(`app.alerts.signInManage`)});return}En(!0);let t=oe;try{let e=await re(he);e?.isPro!==void 0&&A(!!e.isPro),e?.subscriptionStatus!==void 0&&P(e.subscriptionStatus||null),t=!!e?.stripeCustomerId,se(t)}catch(e){console.error(`Failed to refresh profile before portal`,e)}if(!t){n({type:`error`,message:e(`app.alerts.portalNoCustomer`)});return}let r=await ae(he);r?.url?window.location.assign(r.url):n({type:`error`,message:e(`app.alerts.portalUnavailable`)})}catch(t){console.error(t),n({type:`error`,message:e(`app.alerts.portalFailed`)})}finally{En(!1)}},Pi=(t={})=>{if(t?.nativeEvent&&(t={}),G.length>=50){n({type:`error`,message:e(`app.alerts.slideLimit`)});return}sn(`add_slide`,{slide_count:G.length+1});let r=G.length?Math.max(...G.map(e=>e.id))+1:1,i={};U.forEach(t=>{i[t.id]={header:e(`app.defaults.newSlideTitle`),sub:e(`app.defaults.newSlideDesc`)}});let a={screenshot:null,screenshotsByLocale:{},texts:i,...t,id:r};K([...G,a]),mn(G.length)},Fi=async t=>{if(!t?.length)return;let n=t.filter(e=>xi?xi(e):!0);if(!n.length)return;let r=n.reduce((e,t)=>e+(t.size||0),0);cn({source:`bulk_upload`,file_count:n.length,total_bytes:r,scope:`shared`,slide_count:Math.min(50,G.length+n.length)});let i=[...G],a=[...n],o=i.findIndex(e=>!e.screenshot);if(o!==-1&&a.length){let e=await Si(a.shift());i[o]={...i[o],screenshot:e,screenshotsByLocale:i[o]?.screenshotsByLocale||{}}}let s=i.length?Math.max(...i.map(e=>e.id||0)):0;for(let t of a){if(i.length>=50)break;let n=await Si(t),r={};U.forEach(t=>{r[t.id]={header:e(`app.defaults.newSlideTitle`),sub:e(`app.defaults.newSlideDesc`)}}),i.push({screenshot:n,screenshotsByLocale:{},texts:r,id:++s})}K(i),mn(i.length-1)},Ii=(e,t)=>{t.stopPropagation(),G.length>1&&(K(G.filter((t,n)=>n!==e)),q>=e&&q>0&&mn(q-1))},Li=(e,t)=>{let n=[...G],r=n[q].texts;r[W]||(r[W]={header:``,sub:``}),r[W][e]=t,K(n)},Ri=(e,t,n={})=>{let r=[...G];if(!r[e])return;let i=n?.scope??hn,a=n?.localeId??W;if(i===`locale`){let n={...r[e].screenshotsByLocale||{}};n[a]=t,r[e]={...r[e],screenshotsByLocale:n}}else r[e]={...r[e],screenshot:t};K(r)},zi=(e,t={})=>{let n=[...G];if(!n[e])return;let r=t?.scope??hn,i=t?.localeId??W;if(r===`locale`){let t=n[e].screenshotsByLocale||{};if(!(i in t))return;let r={...t};delete r[i],n[e]={...n[e],screenshotsByLocale:r}}else n[e]={...n[e],screenshot:null};K(n)},Bi=e=>{let t=[...G];if(!t[e])return;let n=t[e].screenshotsByLocale||{};Object.keys(n).length&&(t[e]={...t[e],screenshotsByLocale:{}},K(t))},Vi=()=>{let e=[...G];e[q].layoutOverride||(e[q].layoutOverride={deviceScale:lt,topSpacing:St,layoutMode:wt}),K(e)},Hi=(e,t)=>{let n=[...G];n[q].layoutOverride||(n[q].layoutOverride={}),n[q].layoutOverride[e]=t,K(n)},Ui=()=>{let e=[...G];delete e[q].layoutOverride,K(e)},Wi=(e,t=q)=>{if(!xi(e))return;let n=hn,r=W,i={source:`single_upload`,file_count:1,total_bytes:e.size||0,scope:n,slide_count:G.length};n===`locale`&&(i.locale_id=r),cn(i);let a=new FileReader;a.onload=e=>Ri(t,e.target.result,{scope:n,localeId:r}),a.readAsDataURL(e)},Gi=(e,t=q)=>{if(!xi(e))return;cn({source:`single_upload`,file_count:1,total_bytes:e.size||0,scope:`shared`,slide_count:G.length});let n=new FileReader;n.onload=e=>Ri(t,e.target.result,{scope:`shared`}),n.readAsDataURL(e)},Ki=e=>{let t=e?.target?.files?.[0],n=typeof Nr.current==`number`?Nr.current:q;t&&Gi(t,n),Nr.current=null,e?.target&&(e.target.value=``)},qi=e=>{if(Nr.current=e,Mr.current){try{Mr.current.value=null}catch{}Mr.current.click()}},Ji=(e,t=q)=>{let n=e.target.files[0];n&&Wi(n,t)},Yi=e=>{e.preventDefault(),e.stopPropagation(),ir(!0)},Xi=e=>{e.preventDefault(),e.stopPropagation(),ir(!1)},Zi=e=>{e.preventDefault(),e.stopPropagation()},Qi=e=>{e.preventDefault(),e.stopPropagation(),ir(!1),$i(e)},$i=(e,t=q)=>{e.preventDefault();let n=e.dataTransfer.files[0];n&&Wi(n,t)},ea=e=>{e.preventDefault();let t=e.dataTransfer.files[0];if(!xi(t))return;let n=new FileReader;n.onload=e=>{Qe(e.target.result),qe(`image`)},n.readAsDataURL(t)},ta=e=>{e.preventDefault(),e.stopPropagation(),or(!0)},na=e=>{e.preventDefault(),e.stopPropagation(),or(!1)},ra=e=>{e.preventDefault(),e.stopPropagation()},ia=e=>{e.preventDefault(),e.stopPropagation(),or(!1),ea(e)},aa=e=>{let t=e.target.files?.[0];if(!xi(t))return;let n=new FileReader;n.onload=e=>{Qe(e.target.result),qe(`image`)},n.readAsDataURL(t)},oa=e=>{e.preventDefault();let t=e.dataTransfer.files[0];if(!xi(t))return;let n=new FileReader;n.onload=e=>Ot(e.target.result),n.readAsDataURL(t)},sa=e=>{e.preventDefault(),e.stopPropagation(),cr(!0)},ca=e=>{e.preventDefault(),e.stopPropagation(),cr(!1)},la=e=>{e.preventDefault(),e.stopPropagation()},ua=e=>{e.preventDefault(),e.stopPropagation(),cr(!1),oa(e)},da=e=>{let t=e.target.files?.[0];if(!xi(t))return;let n=new FileReader;n.onload=e=>Ot(e.target.result),n.readAsDataURL(t)},fa=(0,L.useCallback)(()=>{Ot(null)},[]),pa=e=>{!Array.isArray(e)||e.length===0||(fn(t=>{let n=new Set(t.map(e=>e.id)),r=[...t];return e.forEach(e=>{n.has(e.id)||(r.push(e),n.add(e.id))}),r}),K(t=>t.map(t=>{let n={...t.texts};return e.forEach(e=>{if(!n[e.id]){let t=dn.find(t=>t.id===e.id)?.defaults||{header:``,sub:``};n[e.id]={header:t.header,sub:t.sub}}}),{...t,texts:n}})),e[0]?.id&&pn(e[0].id))},ma=(0,L.useCallback)(e=>{pn(e),!gr.current&&U.length>1&&e&&e!==W&&(gr.current=!0,a(`multi_locale_previewed`,{locale_count:U.length,from:W,to:e}))},[W,U.length]),ha=e=>{fn(t=>{if(t.length<=1)return t;let n=t.filter(t=>t.id!==e);return n.length?(W===e&&pn(n[0].id),K(t=>t.map(t=>{let n={...t.texts};if(delete n[e],!t?.screenshotsByLocale||!(e in t.screenshotsByLocale))return{...t,texts:n};let r={...t.screenshotsByLocale};return delete r[e],{...t,texts:n,screenshotsByLocale:r}})),n):t})},ga=()=>{let e=vi(),t={version:`1.0`,savedAt:new Date().toISOString(),data:e},n=new Blob([JSON.stringify(t,null,2)],{type:`application/json`}),r=URL.createObjectURL(n),i=document.createElement(`a`);i.href=r,i.download=`shipscreens-project.json`,document.body.appendChild(i),i.click(),i.remove(),URL.revokeObjectURL(r)},_a=t=>{let r=t?.target?.files?.[0]||t?.dataTransfer?.files?.[0];if(!r)return;let i=new FileReader;i.onload=t=>{try{let r=JSON.parse(t.target.result),i=r?.data||r;Q(i);let a=Array.isArray(i?.locales)?i.locales.length:0;n({type:`success`,message:e(`app.alerts.importSuccess`,{count:a})}),sn(`json_import`,{locale_count:a})}catch(t){console.error(`Failed to import JSON`,t),n({type:`error`,message:e(`app.data.importError`)})}},i.onerror=()=>n({type:`error`,message:e(`app.data.importError`)}),i.readAsText(r),t?.target&&(t.target.value=``)},va=e=>{e.preventDefault(),e.stopPropagation(),ur(!0)},ya=e=>{e.preventDefault(),e.stopPropagation(),ur(!1)},ba=e=>{e.preventDefault(),e.stopPropagation()},xa=e=>{e.preventDefault(),e.stopPropagation(),ur(!1),_a(e)},Sa=e=>(e==null?``:e.toString()).trim(),Ca=e=>Sa(e).toLowerCase().replace(/[^a-z0-9]/g,``),wa=e=>{if(!Array.isArray(e)||!e.length)return 0;let t=0;return e.forEach(e=>{let n=Ca(e);if(!n)return;let r=n.match(/^(header|headline|title|subtitle|sub)(\d+)$/);if(r){let e=parseInt(r[2],10);Number.isNaN(e)||(t=Math.max(t,e));return}(n===`header`||n===`subtitle`||n===`sub`)&&(t=Math.max(t,1))}),t},Ta=t=>{let r=new FileReader;r.onload=t=>{let r=t.target.result,i=Ut.default.parse(r,{header:!0,skipEmptyLines:!0,transformHeader:e=>(e||``).replace(/^\ufeff/,``).trim()}),a=Array.isArray(i.data)?i.data:[],o=[],s=new Set,c=wa(i?.meta?.fields||Object.keys(a[0]||{}));if(!c){n({type:`error`,message:e(`app.alerts.importInvalidCsvColumns`)});return}if(c>50){n({type:`error`,message:e(`app.alerts.slideLimit`)});return}let l=Array.from({length:c},()=>({}));a.forEach((e,t)=>{let n=new Map;Object.entries(e||{}).forEach(([e,t])=>{let r=Ca(e);r&&n.set(r,t)});let r=Sa(n.get(`locale`)??n.get(`language`)??n.get(`lang`)??n.get(`id`)??``),i=Array.from({length:c},(e,t)=>{let r=t+1,i=n.get(`header${r}`)??n.get(`headline${r}`)??n.get(`title${r}`)??(r===1?n.get(`header`)??n.get(`headline`)??n.get(`title`):void 0)??``,a=n.get(`subtitle${r}`)??n.get(`sub${r}`)??(r===1?n.get(`subtitle`)??n.get(`sub`):void 0)??``;return{header:Sa(i),sub:Sa(a)}}),a=i.some(e=>e.header||e.sub);if(!r&&!a)return;let u=r||`lang-${t+1}`;if(s.has(u))return;let d=dn.find(e=>e.id.toLowerCase()===u.toLowerCase());o.push({id:u,name:d?d.name:u,flag:d?d.flag:`??`}),i.forEach((e,t)=>{l[t][u]=e}),s.add(u)});let u=i.errors?.filter(e=>e.type!==`FieldMismatch`)||[];if(!o.length){n({type:`error`,message:a.length?e(`app.alerts.importCsvNoRows`):e(`app.alerts.importInvalidCsv`)});return}Fn(`merge`),Nn({locales:o,slideCount:c,slidesTexts:l,texts:l[0]||{},errors:u.length})},r.onerror=()=>n({type:`error`,message:e(`app.alerts.importInvalidCsv`)}),r.readAsText(t)},Ea=e=>{let t=e.target.files?.[0];t&&Ta(t),e?.target&&(e.target.value=``)},Da=e=>{e.preventDefault(),e.stopPropagation(),fr(!0)},Oa=e=>{e.preventDefault(),e.stopPropagation(),fr(!1)},ka=e=>{e.preventDefault(),e.stopPropagation()},Aa=e=>{if(e.preventDefault(),e.stopPropagation(),fr(!1),!O){wi(`csv_drop`);return}let t=e.dataTransfer?.files?.[0];t&&Ta(t)},ja=()=>{zn(`current`),Vn(String(Math.max(1,G.length))),Ln(!0)},Ma=(e=Math.max(1,G.length))=>{let t=Math.max(1,G.length),n=Math.min(50,Math.max(1,Number.isFinite(e)?e:t)),r=[`Locale`];for(let e=1;e<=n;e+=1)r.push(`Header_${e}`,`Subtitle_${e}`);let i=[`en-US`],a=[`ja-JP`];for(let e=1;e<=n;e+=1)i.push(`Headline ${e}`,`Subtitle ${e}`),a.push(`ヘッドライン${e}`,`サブタイトル${e}`);let o=`\ufeff${[r.join(`,`),i.join(`,`),a.join(`,`)].join(`
13
+ `)}`,s=`data:text/csv;charset=utf-8,${encodeURIComponent(o)}`,c=document.createElement(`a`);c.href=s,c.download=`shipscreens-copy-template.csv`,document.body.appendChild(c),c.click(),document.body.removeChild(c)},Na=()=>{let e=Math.max(1,G.length),t=e;if(Rn===`current`)t=e;else if(Rn===`custom`){let n=parseInt(Bn,10);t=Number.isFinite(n)?n:e}else{let n=parseInt(Rn,10);t=Number.isFinite(n)?n:e}Ma(t),Ln(!1),zn(`current`),Vn(String(e))},Pa=()=>{if(!X)return;let t=X.locales,r=new Set(U.map(e=>e.id));if(Pn===`merge`){let e=new Map(U.map(e=>[e.id,e])),n=[...U];X.locales.forEach(t=>{if(e.has(t.id)){let r=n.findIndex(e=>e.id===t.id);n[r]={...e.get(t.id),...t}}else n.push(t)}),t=n}let i=Math.max(G.length,X.slideCount||1);if(i>50){n({type:`error`,message:e(`app.alerts.slideLimit`)});return}let o=new Set(t.map(e=>e.id)),s=t.filter(e=>!r.has(e.id)).length,c=Array.from(r).filter(e=>!o.has(e)).length,l=[...G],u=l.length?Math.max(...l.map(e=>e.id||0)):0;for(;l.length<i;)u+=1,l.push({id:u,screenshot:null,screenshotsByLocale:{},texts:{}});let d=Array.isArray(X.slidesTexts)?X.slidesTexts:[];K(l.map((e,n)=>{let r={...e?.texts||{}},i=Pn===`replace`?Object.fromEntries(Object.entries(r).filter(([e])=>o.has(e))):r;t.forEach(e=>{i[e.id]||(i[e.id]={header:``,sub:``})});let a=d[n]||{};return Object.entries(a).forEach(([e,t])=>{if(!o.has(e))return;let n=Sa(t?.header),r=Sa(t?.sub);if(Pn===`merge`){let t=i[e]||{header:``,sub:``};n&&(t.header=n),r&&(t.sub=r),i[e]=t}else i[e]={header:n,sub:r}}),{...e,texts:i}})),fn(t),t.length&&pn(t[0].id),n({type:`success`,message:e(`app.alerts.importSuccess`,{count:X.locales.length})}),sn(`csv_import`,{locale_count:t.length,slide_count:i}),a(`copy_imported`,{locale_count:t.length,slide_count:i,import_mode:Pn,added_locale_count:s,removed_locale_count:c}),Nn(null),Fn(`merge`)},Fa=(e,t)=>new Promise((n,r)=>{if(t&&window[t])return n(window[t]);let i=document.createElement(`script`);i.src=e,i.onload=()=>n(t?window[t]:void 0),i.onerror=r,document.head.appendChild(i)}),Ia=async()=>(window.JSZip||await Fa(`https://cdnjs.cloudflare.com/ajax/libs/jszip/3.10.1/jszip.min.js`,`JSZip`),window.JSZip),La=e=>new Promise((t,n)=>{let r=new FileReader;r.onload=e=>t(e.target.result),r.onerror=n,r.readAsDataURL(e)}),Ra=e=>{let t=(e==null?``:e.toString()).trim();if(!t)return``;let n=t.replace(/_/g,`-`),r=n.split(`-`).filter(Boolean);return r.length?r.map((e,t)=>t===0?e.toLowerCase():e.length===2&&/^[a-zA-Z]{2}$/.test(e)?e.toUpperCase():e.length===4&&/^[a-zA-Z]{4}$/.test(e)?`${e[0].toUpperCase()}${e.slice(1).toLowerCase()}`:e).join(`-`):n},za=e=>{let t=Ra(e);if(!t)return``;let n=U.find(e=>e.id.toLowerCase()===t.toLowerCase());if(n)return n.id;let r=dn.find(e=>e.id.toLowerCase()===t.toLowerCase());return r?r.id:t},Ba=e=>{let t=(e==null?``:e.toString()).trim();if(!t)return null;let n=t.replace(/\\/g,`/`),r=n.split(`/`).filter(Boolean),i=(r.length?r[r.length-1]:n).replace(/\.[^.]+$/,``),a=[],o=new Set([...U.map(e=>e.id.toLowerCase()),...dn.map(e=>e.id.toLowerCase())]),s=/^[A-Za-z]{2,3}(?:-[A-Za-z0-9]{2,8})+$/;r.slice(0,-1).forEach(e=>{let t=e.trim();if(!t)return;let n=t.toLowerCase();if(o.has(n)){a.push(t);return}if(s.test(t)){a.push(t);return}t.length===2&&/^[A-Za-z]{2}$/.test(t)&&a.push(t)});let c=``,l=i,u=i.match(/^([A-Za-z]{2,3}(?:-[A-Za-z0-9]{2,8})*)(?:[ _-]+)(.+)$/);u?(c=u[1],l=u[2]||``):a.length&&(c=a[a.length-1]);let d=za(c);if(!d)return null;let f=(l||i).match(/\d+/g);if(!f?.length)return null;let p=parseInt(f[f.length-1],10);return Number.isFinite(p)?{localeId:d,slideNumber:p}:null},Va=()=>{Hn(null),Wn({current:0,total:0}),Kn(!1),Gr.current=[],Kr.current=null};u({isOpen:!!Z,onClose:Gn?void 0:Va,panelRef:Cr,initialFocusRef:Gn?void 0:wr,closeOnEscape:!Gn});let Ha=async t=>{let r=Array.from(t||[]);if(r.length)try{Va();let t=r.find(e=>(e?.name||``).toLowerCase().endsWith(`.zip`)||e?.type===`application/zip`||e?.type===`application/x-zip-compressed`)||null;if(t){let r=await(await Ia()).loadAsync(t);Kr.current=r;let i=[],a=new Set,o=new Set,s=0,c=0,l=0,u=0;if(Object.values(r.files||{}).forEach(e=>{if(!e||e.dir)return;let t=e.name||``;if(!/\.(png|jpe?g|webp)$/i.test(t)){c+=1;return}let n=Ba(t);if(!n){s+=1;return}if(n.slideNumber<1||n.slideNumber>50){l+=1;return}let r=n.slideNumber-1;u=Math.max(u,n.slideNumber);let d=`${n.localeId}#${r}`;o.has(d)&&a.add(d),o.add(d),i.push({kind:`zip`,entryName:t,localeId:n.localeId,slideIndex:r})}),Gr.current=i,!i.length){n({type:`error`,message:e(`app.screenshotImporter.noMatches`)});return}let d=Array.from(new Set(i.map(e=>e.localeId))),f=new Set(U.map(e=>e.id.toLowerCase())),p=d.filter(e=>!f.has(e.toLowerCase())),m=Math.max(G.length,u),h=Math.max(0,m-G.length);Hn({source:{type:`zip`,name:t.name||`screenshots.zip`},totalFound:i.length,localeCount:d.length,newLocaleCount:p.length,slideCount:u,addedSlideCount:h,skipped:s,skippedNotImage:c,skippedOutOfRange:l,duplicateCount:a.size});return}let i=r.filter(e=>e?.type?.startsWith(`image/`)||/\.(png|jpe?g|webp)$/i.test(e?.name||``));if(!i.length){n({type:`error`,message:e(`app.screenshotImporter.noFiles`)});return}let a=[],o=new Set,s=new Set,c=0,l=0,u=0;if(i.forEach(e=>{let t=e?.webkitRelativePath||e?.name||``,n=Ba(t);if(!n){c+=1;return}if(n.slideNumber<1||n.slideNumber>50){l+=1;return}let r=n.slideNumber-1;u=Math.max(u,n.slideNumber);let i=`${n.localeId}#${r}`;s.has(i)&&o.add(i),s.add(i),a.push({kind:`file`,file:e,localeId:n.localeId,slideIndex:r,path:t})}),Gr.current=a,!a.length){n({type:`error`,message:e(`app.screenshotImporter.noMatches`)});return}let d=Array.from(new Set(a.map(e=>e.localeId))),f=new Set(U.map(e=>e.id.toLowerCase())),p=d.filter(e=>!f.has(e.toLowerCase())),m=Math.max(G.length,u),h=Math.max(0,m-G.length);Hn({source:{type:`files`,name:e(`app.screenshotImporter.filesLabel`,{count:i.length})},totalFound:a.length,localeCount:d.length,newLocaleCount:p.length,slideCount:u,addedSlideCount:h,skipped:c,skippedOutOfRange:l,duplicateCount:o.size})}catch(t){console.error(`Locale screenshot import failed`,t),n({type:`error`,message:e(`app.screenshotImporter.failed`)})}},Ua=async()=>{if(!Z)return;let t=Gr.current||[];if(!t.length){Va();return}if(Gn)return;Kn(!0),Wn({current:0,total:t.length});let r=0;try{let i=Array.from(new Set(t.map(e=>e.localeId))),a=new Set(U.map(e=>e.id.toLowerCase())),o=[...U];i.forEach(e=>{if(a.has(e.toLowerCase()))return;let t=dn.find(t=>t.id.toLowerCase()===e.toLowerCase());o.push({id:t?t.id:e,name:t?t.name:e,flag:t?t.flag:`??`}),a.add(e.toLowerCase())});let s=Math.max(0,...t.map(e=>e.slideIndex)),c=Math.max(G.length,s+1);if(c>50){n({type:`error`,message:e(`app.alerts.slideLimit`)}),Kn(!1);return}let l=[...G].map(e=>({...e,screenshot:e?.screenshot??null,screenshotsByLocale:{...e?.screenshotsByLocale||{}},texts:{...e?.texts||{}}}));l.forEach(e=>{o.forEach(t=>{if(e.texts?.[t.id])return;let n=dn.find(e=>e.id===t.id)?.defaults||{header:``,sub:``};e.texts[t.id]={header:n.header||``,sub:n.sub||``}})});let u=l.length?Math.max(...l.map(e=>e.id||0)):0;for(;l.length<c;){u+=1;let t={};o.forEach(n=>{t[n.id]={header:e(`app.defaults.newSlideTitle`),sub:e(`app.defaults.newSlideDesc`)}}),l.push({id:u,screenshot:null,screenshotsByLocale:{},texts:t})}let d=Kr.current;for(let e=0;e<t.length;e+=1){let n=t[e],i=l[n.slideIndex];if(!i){r+=1,Wn({current:e+1,total:t.length});continue}try{let a=null;if(n.kind===`file`)a=n.file;else if(n.kind===`zip`&&d){let e=d.file(n.entryName);e&&(a=await e.async(`blob`))}if(!a){r+=1,Wn({current:e+1,total:t.length});continue}let o=await La(a);i.screenshotsByLocale[n.localeId]=o}catch{r+=1}Wn({current:e+1,total:t.length})}K(l),fn(o),o.length&&!o.some(e=>e.id===W)&&pn(o[0].id),n({type:r?`info`:`success`,message:r?e(`app.screenshotImporter.appliedWithErrors`,{count:t.length-r,errors:r}):e(`app.screenshotImporter.applied`,{count:t.length})}),Va()}catch(t){console.error(`Failed to apply locale screenshots`,t),n({type:`error`,message:e(`app.screenshotImporter.failed`)}),Kn(!1)}};function Wa(e){switch(e){case`dark`:qe(`solid`),Xe(`#0f172a`),At(`#f8fafc`),xt(`black`);break;case`clean`:qe(`solid`),Xe(`#f8fafc`),At(`#1e293b`),xt(`silver`);break;case`pop`:qe(`gradient`),it(`#ff9a9e`),ot(`#fecfef`),ct(135),At(`#ffffff`),xt(`titanium`);break;default:break}}let Ga=(0,L.useCallback)(t=>{if(O||typeof window>`u`)return;let r=Date.now();try{let e=Number(localStorage.getItem(nn)||0);if(e&&r-e<864e5)return;localStorage.setItem(nn,String(r))}catch{}a(`upsell_toast_shown`,{surface:`export`,export_type:t,is_pro:O,is_authenticated:!!I}),n({type:`info`,message:e(`app.upsell.watermarkToast.message`,{defaultValue:`Exported with watermark. Upgrade to remove it.`}),duration:9e3,action:{label:e(`app.upsell.watermarkToast.action`,{defaultValue:`Remove watermark`}),onClick:()=>{a(`upsell_toast_clicked`,{surface:`export`,export_type:t}),wi(`upsell_toast`)}}})},[n,I,O,wi,e]),Ka=(0,L.useCallback)(async(e,t)=>{e&&await qr(e,t)&&(a(`export_completed`,{export_type:`single`,device_count:1,locale_count:1,slide_count:1,device_id:V,locale_id:W,slide_index:q+1,is_pro:O}),Ga(`single`))},[q,W,V,qr,O,Ga]),qa=(0,L.useCallback)(()=>{let t=Wr.current;t&&(t.abort(),Jn(e(`app.progress.cancelling`,{defaultValue:`Cancelling...`})))},[e]),Ja=(0,L.useCallback)(async()=>{let t=!O&&!h,r=(()=>{if(!t)return U;let e=U.find(e=>e.id===W);return e?[e]:U.slice(0,1)})(),i=t?G.slice(0,5):G,o=(()=>{if(!t)return Ve;let e=Array.isArray(Ve)?Ve:[],n=new Set(e).has(V)?V:null,r=[],i=[];e.forEach(e=>{String(z[e]?.group||``).toLowerCase().includes(`android`)?i.push(e):r.push(e)});let a=[],o=n?String(z[n]?.group||``).toLowerCase():``,s=n?o.includes(`android`):!1,c=n&&!s?n:r[0],l=n&&s?n:i[0];return c&&a.push(c),l&&l!==c&&a.push(l),!a.length&&e.length&&a.push(e[0]),a})();if(!o?.length){n({type:`error`,message:e(`app.batch.noDevices`,{defaultValue:`Select at least one device.`})});return}if(!r?.length){n({type:`error`,message:e(`app.locale.none`,{defaultValue:`Add at least one locale.`})});return}if(!i?.length){n({type:`error`,message:e(`app.slides.none`,{defaultValue:`Add at least one slide.`})});return}Jn(e(`app.progress.preparingBundle`,{defaultValue:`Preparing Fastlane ZIP...`}));let s=new AbortController;Wr.current=s;try{await Jr({locales:r,slides:i,selectedDeviceIds:o,getElementById:e=>document.getElementById(`batch-canvas-${e}`),signal:s.signal,outputMode:S,onTaskStart:({localeId:t,slideNumber:n,deviceId:r})=>{let i=vt(z[r],{id:r,mode:y}).optionLabel;Jn(e(`app.progress.detail`,{device:i,locale:t,index:n}))}}),a(`export_completed`,{export_type:`batch`,device_count:o.length,locale_count:r.length,slide_count:i.length,total_images:r.length*i.length*o.length,output_mode:S,is_pro:O}),n({type:`success`,message:e(`app.alerts.downloadSuccess`,{defaultValue:`Export completed`})}),Ga(`batch`)}catch(t){t?.message===`Aborted`?n({type:`info`,message:e(`app.alerts.downloadCancelled`,{defaultValue:`エクスポートをキャンセルしました`})}):(console.error(`Batch download failed`,t),n({type:`error`,message:e(`app.alerts.downloadError`,{defaultValue:`Failed to export`})}))}finally{Wr.current=null,Jn(``)}},[Jr,U,G,Ve,n,e,y,S,O,h,W,V,Ga]);(0,L.useEffect)(()=>{if(h)return window.__shipscreensCli={exportBundle:()=>Ja()},()=>{try{delete window.__shipscreensCli}catch{}}},[h,Ja]);let Ya=t=>{if(!t?.settings)return;let r=vi();On(e=>({past:[...e.past,r].slice(-20),future:[]})),Br.current=!0;let i=t.settings;i.bgType&&qe(i.bgType),i.bgColor&&Xe(i.bgColor),i.gradientStart&&it(i.gradientStart),i.gradientEnd&&ot(i.gradientEnd),typeof i.gradientAngle==`number`&&ct(i.gradientAngle),i.layoutMode&&H(i.layoutMode),typeof i.topSpacing==`number`&&Ct(i.topSpacing),typeof i.deviceScale==`number`&&ut(i.deviceScale),i.frameColor&&xt(i.frameColor),i.textColor&&At(i.textColor),i.selectedFont&&Zt(i.selectedFont),i.badgeType&&Et(i.badgeType),i.deviceId&&yt(i.deviceId),n({type:`info`,message:e(`app.templates.applied`,{name:t.name,defaultValue:`${t.name} applied`}),duration:4e3,action:{label:e(`app.history.undo`),onClick:yi}})},Xa=(0,L.useCallback)(()=>{Mn({value:``})},[]),Za=(0,L.useCallback)(()=>{let t=jn?.value?.trim();if(!t)return;let r={id:Date.now().toString(),name:t,settings:{bgType:Ke,bgColor:Je,gradientStart:rt,gradientEnd:at,gradientAngle:st,layoutMode:wt,topSpacing:St,deviceScale:lt,frameColor:bt,textColor:kt,selectedFont:Xt,badgeType:Tt,deviceId:V}},i=[..._n,r];vn(i),localStorage.setItem(`mockupStudioUserPresets`,JSON.stringify(i)),Mn(null),n({type:`success`,message:e(`app.templates.saved`,{defaultValue:`Preset saved`})})},[n,Tt,Je,Ke,V,lt,bt,st,at,rt,wt,_n,jn?.value,Xt,kt,e,St]),Qa=(0,L.useCallback)(t=>{let r=_n.filter(e=>e.id!==t);vn(r),localStorage.setItem(`mockupStudioUserPresets`,JSON.stringify(r)),n({type:`info`,message:e(`app.templates.deleted`,{defaultValue:`Preset deleted`})})},[n,_n,e]),$a=`shipscreens_project`,eo=(0,L.useCallback)((t=!1)=>{try{let r=vi(),i=t?{...r,slides:r.slides.map(e=>({...e,screenshot:null,screenshotsByLocale:{}}))}:r,a={version:`1.0`,savedAt:new Date().toISOString(),data:i};localStorage.setItem($a,JSON.stringify(a)),Y(`saved`),setTimeout(()=>Y(``),2e3),n({type:`success`,message:e(`app.data.saved`)})}catch(t){console.error(`Failed to save project`,t),Y(`error`),n({type:`error`,message:e(`app.data.saveError`)})}},[vi,n,e]),to=(0,L.useCallback)(()=>{try{let t=localStorage.getItem($a);if(!t){n({type:`error`,message:e(`app.data.noSavedProject`)});return}let r=JSON.parse(t);Q(r?.data||r),Y(`loaded`),setTimeout(()=>Y(``),2e3),n({type:`success`,message:e(`app.data.loaded`)})}catch(t){console.error(`Failed to load project`,t),Y(`error`),n({type:`error`,message:e(`app.data.loadError`)})}},[Q,n,e]),no=(0,L.useCallback)((t=`data_panel`)=>{An({message:e(`app.data.sampleConfirm`),onConfirm:()=>{Q(Ht),Y(`loaded`),setTimeout(()=>Y(``),2e3),n({type:`success`,message:e(`app.data.sampleLoaded`)}),a(`sample_project_loaded`,{source:t})}})},[n,Q,An,e]),ro=(0,L.useCallback)(()=>{let e=vi();return{...e,bgImage:null,logoImage:null,slides:(e.slides||[]).map(e=>({...e,screenshot:null,screenshotsByLocale:{}}))}},[vi]),io=(0,L.useCallback)(e=>{if(!e)return;let t=vi(),n=Array.isArray(t.slides)?t.slides:[],r=(Array.isArray(e.slides)?e.slides:[]).map((e,t)=>{let r=n.find(t=>t.id===e.id)||n[t]||null;return{...e,screenshot:r?.screenshot??null,screenshotsByLocale:r?.screenshotsByLocale??{}}});Q({...e,bgImage:t.bgImage??null,logoImage:t.logoImage??null,slides:r})},[vi,Q]);(0,L.useEffect)(()=>{let t=new URLSearchParams(window.location.search).get(`session_id`);if(t){if(t===`cli`){let t=typeof window<`u`?window.__SHIPSCREENS_CLI_PROJECT:null;if(t){try{Q(t?.data||t),Y(`loaded`),setTimeout(()=>Y(``),2e3)}catch(t){console.error(`Failed to load CLI project`,t),Y(`error`),n({type:`error`,message:e(`app.data.loadError`)})}return}}try{localStorage.getItem($a)&&to()}catch{}}},[n,to,Q,e]);let ao=(0,L.useRef)(!1);(0,L.useEffect)(()=>{if(ao.current)return;ao.current=!0;let t=new URLSearchParams(window.location.search);if(t.get(`session_id`))return;let r=t.get(`sample`);if(!r)return;let i=r.trim().toLowerCase();if(![`5panel`,`fivepanel`,`five-panel`,`five_panel`,`5-panel`,`5_panel`].includes(i))return;t.delete(`sample`);let o=t.toString(),s=`${window.location.pathname}${o?`?${o}`:``}${window.location.hash||``}`;if(window.history.replaceState(null,``,s),!localStorage.getItem($a)){Q(Ht),Y(`loaded`),setTimeout(()=>Y(``),2e3),n({type:`success`,message:e(`app.data.sampleLoaded`)}),a(`sample_project_loaded`,{source:`url_param_auto`});return}N.current||no(`url_param`)},[n,no,Q,e]);let oo=(0,L.useRef)(!1);(0,L.useEffect)(()=>{if(oo.current||(oo.current=!0,typeof window>`u`))return;let t=new URLSearchParams(window.location.search);if(t.get(`session_id`)||t.get(`project`)||t.get(`sample`)||t.get(`upgrade`))return;let r=null;try{r=localStorage.getItem($a)}catch{return}if(!r){try{if(localStorage.getItem(rn)===`1`)return;localStorage.setItem(rn,`1`)}catch{return}a(`sample_prompt_shown`,{source:`app_start`}),An({title:e(`app.data.sampleWelcomeTitle`,{defaultValue:`Quick start`}),message:e(`app.data.sampleWelcomeBody`,{defaultValue:`New here? Load a sample project to see the workflow (recommended).`}),cancelLabel:e(`app.data.sampleWelcomeBlank`,{defaultValue:`Start blank`}),confirmLabel:e(`app.data.sampleWelcomeLoad`,{defaultValue:`Load sample`}),onCancel:()=>a(`sample_prompt_dismissed`,{source:`app_start`}),onConfirm:()=>{Q(Ht),Y(`loaded`),setTimeout(()=>Y(``),2e3),n({type:`success`,message:e(`app.data.sampleLoaded`)}),a(`sample_project_loaded`,{source:`welcome_prompt`})}})}},[n,Q,An,e]);let so=gi.find(e=>e.value===Xt)?.family||`sans-serif`,co=J?e(`app.statuses.${J}`):``,lo=(0,L.useRef)(null),uo=yn&&xn.total>0,fo=(0,L.useCallback)(()=>{Ne({x:0,y:0})},[]),$=l===`batch`,po=(()=>{if(!$||O||h)return Ve;let e=Array.isArray(Ve)?Ve:[],t=new Set(e).has(V)?V:null,n=[],r=[];e.forEach(e=>{String(z[e]?.group||``).toLowerCase().includes(`android`)?r.push(e):n.push(e)});let i=[],a=t?String(z[t]?.group||``).toLowerCase():``,o=t?a.includes(`android`):!1,s=t&&!o?t:n[0],c=t&&o?t:r[0];return s&&i.push(s),c&&c!==s&&i.push(c),!i.length&&e.length&&i.push(e[0]),i})(),mo=e=>{if($||e.touches.length!==1)return;let t=e.touches[0];Le(!0),Re.current={x:t.clientX-Ae.x,y:t.clientY-Ae.y}},ho=e=>{if($||!Pe)return;e.preventDefault();let t=e.touches[0],n=Yn?.85:1;Ne({x:(t.clientX-Re.current.x)*n,y:(t.clientY-Re.current.y)*n})},go=()=>Le(!1),_o=()=>Qn(e=>!e),vo=!Yn||Zn,yo=Yn?vo?Math.min($n,240):520:0,bo=e=>{Yn&&(Ur.current=e.touches[0]?.clientY||0,nr(!0))},xo=e=>{if(!Yn||!tr)return;let t=(e.touches[0]?.clientY||0)-Ur.current;er(Math.max(0,t))},So=()=>{if(!Yn){er(0),nr(!1);return}$n>80&&Qn(!1),er(0),nr(!1)},Co=e=>{$||(e.preventDefault(),Le(!0),Re.current={x:e.clientX-Ae.x,y:e.clientY-Ae.y})},wo=e=>{$||!Pe||(e.preventDefault(),Ne({x:e.clientX-Re.current.x,y:e.clientY-Re.current.y}))},To=()=>Le(!1);return(0,L.useEffect)(()=>{requestAnimationFrame(()=>fo())},[l,V,ft,B,mi,fo]),(0,L.useEffect)(()=>{$&&(Ne({x:0,y:0}),Le(!1))},[$]),(0,R.jsxs)(`div`,{className:`h-screen bg-gray-100 font-sans flex flex-col overflow-hidden text-slate-800 relative`,children:[(0,R.jsx)(f,{}),Be&&(0,R.jsxs)(`div`,{className:`mx-4 md:mx-6 lg:mx-10 mt-2 bg-amber-100 border border-amber-200 text-amber-800 text-sm rounded-lg px-4 py-3 flex items-center gap-3 justify-between`,children:[(0,R.jsx)(`span`,{className:`leading-snug`,children:`決済に問題があります。Pro機能を継続するにはカード情報を更新してください。`}),(0,R.jsx)(`button`,{onClick:Ni,className:`shrink-0 px-3 py-1.5 bg-amber-500 text-white text-xs font-semibold rounded-sm hover:bg-amber-600 transition`,children:`カードを更新`})]}),(0,R.jsx)(mt,{isOpen:j,billing:ze,requiresAuth:!I,onClose:()=>M(!1),onUpgrade:Ai}),(0,R.jsx)(gt,{isOpen:ee,onClose:()=>ne(!1)}),(0,R.jsx)(en,{show:yn&&xn.total>0,current:xn.current,total:xn.total,label:qn,onCancel:yn?qa:null}),ve&&(0,R.jsxs)(`div`,{className:`absolute top-0 left-0 right-0 z-50 border-b text-sm text-center py-2 px-4 flex flex-wrap items-center justify-center gap-3 shadow-md ${ve===`success`?`bg-green-50 border-green-100 text-green-800`:ve===`pending`||ve===`retry`?`bg-amber-50 border-amber-100 text-amber-800`:`bg-blue-50 border-blue-100 text-blue-800`}`,children:[(0,R.jsxs)(`span`,{children:[ve===`success`&&e(`app.checkout.success`),ve===`pending`&&e(`app.checkout.pending`,{count:be}),ve===`retry`&&e(`app.checkout.retry`),ve===`signin`&&e(`app.checkout.signin`)]}),(ve===`pending`||ve===`retry`)&&(0,R.jsx)(`button`,{onClick:Mi,className:`px-3 py-1.5 rounded-full border border-amber-200 bg-white text-xs font-semibold text-amber-700 hover:bg-amber-100`,children:`Check status again`}),ve===`signin`&&!F&&(0,R.jsx)(`button`,{onClick:Di,className:`px-3 py-1.5 rounded-full border border-blue-200 bg-white text-xs font-semibold text-blue-700 hover:bg-blue-100`,children:e(`auth.actions.signIn`)})]}),Oe&&(0,R.jsxs)(`div`,{className:`bg-amber-50 border-b border-amber-100 text-amber-800 text-sm text-center py-2 px-4 flex items-center justify-center gap-3`,children:[(0,R.jsx)(`span`,{children:e(`app.sessionExpired.message`)}),(0,R.jsx)(`button`,{onClick:Di,className:`px-3 py-1.5 rounded-full border border-amber-200 bg-white text-xs font-semibold text-amber-700 hover:bg-amber-100`,children:e(`auth.actions.signIn`)}),(0,R.jsx)(`button`,{onClick:()=>ke(!1),className:`px-2 py-1 rounded-full text-xs text-amber-700 hover:bg-amber-100`,children:e(`app.sessionExpired.dismiss`)})]}),(0,R.jsxs)(`header`,{className:`bg-white border-b border-slate-200 flex flex-wrap items-center justify-between gap-3 px-4 sm:px-8 py-3 shrink-0 z-20`,children:[(0,R.jsxs)(`div`,{className:`flex items-center gap-3 min-w-0`,children:[(0,R.jsx)(`div`,{className:`w-8 h-8 rounded-lg border border-slate-200 bg-slate-950 p-1 flex items-center justify-center overflow-hidden shadow-xs`,children:(0,R.jsx)(`img`,{src:`/app/assets/icons/favicon-32x32.png?v=3`,alt:`ShipScreens`,className:`w-full h-full object-contain`,loading:`lazy`})}),(0,R.jsxs)(`h1`,{className:`font-bold text-lg text-slate-900 hidden sm:flex items-center gap-2`,children:[`ShipScreens`,O&&(0,R.jsx)(`span`,{className:`px-1.5 py-0.5 rounded-sm text-[10px] font-black bg-amber-100 text-amber-700 border border-amber-200 tracking-wider`,children:`PRO`})]}),(0,R.jsxs)(`div`,{className:`ml-4 flex bg-slate-100 rounded-lg p-1`,children:[(0,R.jsxs)(`button`,{onClick:()=>p(`single`),className:`flex items-center gap-2 px-3 py-1.5 rounded-md text-xs font-bold transition-all ${l===`single`?`bg-white text-blue-600 shadow-xs`:`text-slate-500 hover:text-slate-700`}`,children:[(0,R.jsx)(Te,{size:14}),` `,e(`app.header.editor`)]}),(0,R.jsxs)(`button`,{onClick:()=>{p(`batch`),!O&&!h&&a(`free_bundle_preview_opened`,{surface:`header_toggle`})},className:`flex items-center gap-2 px-3 py-1.5 rounded-md text-xs font-bold transition-all ${l===`batch`?`bg-white text-blue-600 shadow-xs`:`text-slate-500 hover:text-slate-700`}`,children:[(0,R.jsx)(k,{size:14}),` `,e(`app.header.batch`),!O&&!h&&(0,R.jsx)(`span`,{className:`ml-1 px-1.5 py-0.5 rounded-sm bg-slate-200 text-slate-700 text-[10px] font-black tracking-wide`,children:e(`app.batch.freePreview.badge`,{defaultValue:`Free preview`})})]})]})]}),(0,R.jsxs)(`div`,{className:`flex items-center gap-2 sm:gap-4 flex-wrap justify-end min-w-[220px]`,children:[(0,R.jsx)(`a`,{href:`https://x.com/shipscreenscom`,target:`_blank`,rel:`noopener noreferrer`,className:`p-2 rounded-full border border-slate-200 text-slate-600 hover:bg-slate-50`,"aria-label":`ShipScreens on X (opens in new tab)`,children:(0,R.jsx)(`svg`,{width:`14`,height:`14`,viewBox:`0 0 24 24`,fill:`currentColor`,"aria-hidden":`true`,children:(0,R.jsx)(`path`,{d:`M20.5 3h-2.4L12 9.6 6.9 3H3l7.2 9.1L3.2 21h2.4L12 14l6.6 7h3.1l-7.7-9.5L20.5 3Z`})})}),(0,R.jsx)(`a`,{href:`/tools/`,target:`_blank`,rel:`noopener noreferrer`,className:`hidden lg:inline text-xs font-semibold text-slate-600 hover:text-slate-900 transition-colors`,children:e(`landing.nav.tools`)}),(0,R.jsxs)(`button`,{type:`button`,onClick:()=>{ne(!0),a(`ci_quickstart_opened`,{surface:`app_header`})},className:`md:hidden inline-flex items-center gap-1.5 px-2.5 py-1.5 rounded-full border border-slate-200 text-slate-600 hover:bg-slate-50 text-[11px] font-semibold`,"aria-label":e(`app.header.ciQuickstart`,{defaultValue:`Agent/CI handoff`}),title:e(`app.header.ciQuickstart`,{defaultValue:`Agent/CI handoff`}),children:[(0,R.jsx)(xe,{size:14}),(0,R.jsx)(`span`,{children:e(`app.header.ciQuickstartShort`,{defaultValue:`Agent/CI`})})]}),(0,R.jsxs)(`button`,{type:`button`,onClick:()=>{ne(!0),a(`ci_quickstart_opened`,{surface:`app_header`})},className:`hidden md:flex items-center gap-2 px-3 py-1.5 bg-slate-50 text-slate-700 rounded-full text-xs font-bold hover:bg-slate-100 transition-colors border border-slate-200`,children:[(0,R.jsx)(xe,{size:14}),e(`app.header.ciQuickstart`,{defaultValue:`Agent/CI handoff`})]}),(0,R.jsxs)(`div`,{className:`flex items-center gap-1`,children:[(0,R.jsx)(`button`,{onClick:yi,disabled:Dn.past.length===0,className:`p-2 rounded-full border border-slate-200 text-slate-600 hover:bg-slate-50 disabled:opacity-40 disabled:cursor-not-allowed`,title:`Undo (Ctrl/Cmd + Z)`,children:(0,R.jsx)(je,{size:14})}),(0,R.jsx)(`button`,{onClick:bi,disabled:Dn.future.length===0,className:`p-2 rounded-full border border-slate-200 text-slate-600 hover:bg-slate-50 disabled:opacity-40 disabled:cursor-not-allowed`,title:`Redo (Ctrl/Cmd + Shift + Z)`,children:(0,R.jsx)(Me,{size:14})})]}),(0,R.jsx)(g,{}),!F&&(0,R.jsxs)(`div`,{className:`flex items-center gap-2`,children:[(0,R.jsx)(`button`,{onClick:Di,disabled:ue,className:`px-3 py-1.5 rounded-full border border-slate-200 text-xs font-semibold text-slate-700 hover:bg-slate-50 disabled:opacity-50`,children:e(`auth.actions.signIn`)}),(0,R.jsx)(`button`,{onClick:Oi,disabled:ue,className:`px-3 py-1.5 rounded-full border border-blue-200 bg-blue-50 text-xs font-semibold text-blue-700 hover:bg-blue-100 disabled:opacity-50`,children:e(`auth.actions.signUp`)})]}),F&&(0,R.jsx)(Ue,{user:le,isPro:O,onUpgrade:()=>wi(`user_menu`),onManageSubscription:Ni,onSignOut:ki,isPortalLoading:Tn}),(0,R.jsxs)(`button`,{onClick:Ci,className:`hidden md:flex items-center gap-2 px-3 py-1.5 bg-slate-50 text-slate-700 rounded-full text-xs font-bold hover:bg-slate-100 transition-colors border border-slate-200`,children:[(0,R.jsx)(Ie,{size:14}),` `,e(`app.header.share`)]}),!O&&(0,R.jsxs)(`button`,{onClick:()=>wi(`header_button`),className:`hidden md:flex items-center gap-2 px-3 py-1.5 bg-amber-100 text-amber-700 rounded-full text-xs font-bold hover:bg-amber-200 transition-colors`,children:[(0,R.jsx)(ge,{size:14}),` `,e(`app.header.upgrade`)]}),(0,R.jsxs)(`button`,{onClick:()=>l===`single`?Ka(document.getElementById(`single-canvas`)||Rr.current,`${W}_${V}_${q+1}.png`):Ja(),disabled:yn,className:`px-4 py-2 text-white rounded-lg font-semibold shadow-lg hover:scale-[1.02] active:scale-[0.98] transition-all flex items-center justify-center gap-2 disabled:opacity-70 disabled:cursor-not-allowed text-sm ${l===`batch`?`bg-linear-to-r from-blue-600 to-indigo-600 shadow-blue-500/30`:`bg-slate-900 shadow-slate-900/10 hover:bg-slate-800`}`,children:[yn&&xn.total===0?(0,R.jsx)(Ce,{size:16,className:`animate-spin`}):l===`batch`?(0,R.jsx)(pe,{size:16}):(0,R.jsx)(D,{size:16}),(0,R.jsx)(`span`,{className:`hidden sm:inline`,children:e(l===`single`?O?`app.header.downloadPro`:`app.header.downloadWatermark`:`app.header.exportBundle`)})]})]})]}),(0,R.jsxs)(`div`,{className:`flex-1 flex flex-col md:flex-row overflow-hidden relative`,children:[Yn&&vo&&(0,R.jsx)(`div`,{className:`fixed inset-0 bg-black/40 backdrop-blur-[1px] z-110`,onClick:()=>Qn(!1)}),(0,R.jsxs)(`div`,{className:`w-full md:w-16 h-16 md:h-full bg-white border-t md:border-t-0 md:border-r border-slate-200 flex flex-row md:flex-col items-center justify-around md:justify-start py-2 md:py-4 shrink-0 z-30 order-last md:order-first transition-opacity ${uo?`opacity-0 pointer-events-none`:``}`,children:[(0,R.jsx)(`button`,{onClick:()=>v(`edit`),className:`p-3 rounded-xl md:mb-2 transition-all ${_===`edit`?`bg-blue-50 text-blue-600`:`text-slate-400 hover:bg-slate-50`}`,title:e(`app.tabs.edit`),children:(0,R.jsx)(De,{size:20})}),(0,R.jsx)(`button`,{onClick:()=>v(`style`),className:`p-3 rounded-xl md:mb-2 transition-all ${_===`style`?`bg-blue-50 text-blue-600`:`text-slate-400 hover:bg-slate-50`}`,title:e(`app.tabs.style`),children:(0,R.jsx)(Ee,{size:20})}),(0,R.jsx)(`button`,{onClick:()=>v(`templates`),className:`p-3 rounded-xl md:mb-2 transition-all ${_===`templates`?`bg-blue-50 text-blue-600`:`text-slate-400 hover:bg-slate-50`}`,title:e(`app.tabs.templates`),children:(0,R.jsx)(Se,{size:20})}),(0,R.jsx)(`button`,{onClick:()=>v(`data`),className:`p-3 rounded-xl md:mb-2 transition-all ${_===`data`?`bg-blue-50 text-blue-600`:`text-slate-400 hover:bg-slate-50`}`,title:e(`app.tabs.data`),children:(0,R.jsx)(_e,{size:20})})]}),(0,R.jsx)(`div`,{className:`${uo?`pointer-events-none opacity-0`:``} transition-opacity`,children:(0,R.jsx)($t,{activeTab:_,viewMode:l,isMobile:Yn,controlsVisible:vo,controlsTranslation:yo,isControlsDragging:tr,currentHeaderText:Qr,currentSubText:$r,currentLocaleId:W,updateSlideText:Li,currentScreenshot:ni,screenshotUploadScope:hn,setScreenshotUploadScope:gn,hasCurrentLocaleScreenshotOverride:ti,currentSlideScreenshotsByLocale:ri,currentSlideLocaleScreenshotOverrideCount:ii,hasAnyLocaleScreenshotOverrides:ai,hasSharedScreenshot:oi,clearCurrentSlideScreenshot:()=>zi(q),clearAllCurrentSlideLocaleScreenshotOverrides:()=>Bi(q),handleFileChange:Ji,fileInputRef:jr,handleDropWrapper:Qi,handleDragOver:Zi,handleDragEnter:Yi,handleDragLeave:Xi,isDragging:rr,locales:U,setCurrentLocaleId:ma,removeLocale:ha,handleAddLocales:pa,deviceId:V,setDeviceId:un,deviceLabelMode:y,setDeviceLabelMode:b,exportStructureMode:S,setExportStructureMode:C,teamSyncEnabled:i,teamSyncToken:le?.token||null,captureTeamSpec:ro,applyTeamSpec:io,orientation:ft,setOrientation:ht,isWatchSelected:si,applyTheme:Wa,bgType:Ke,setBgType:qe,bgInputRef:Pr,handleBgDropWrapper:ia,handleBgDragOver:ra,handleBgDragEnter:ta,handleBgDragLeave:na,isBgDragging:ar,handleBgFileChange:aa,bgBlur:$e,setBgBlur:et,bgOpacity:tt,setBgOpacity:nt,bgColor:Je,setBgColor:Xe,gradientStart:rt,setGradientStart:it,gradientEnd:at,setGradientEnd:ot,frameColor:bt,setFrameColor:xt,logoImage:Dt,logoInputRef:Fr,handleLogoDropWrapper:ua,handleLogoDragOver:la,handleLogoDragEnter:sa,handleLogoDragLeave:ca,isLogoDragging:sr,handleLogoFileChange:da,handleLogoRemove:fa,overrideActive:ui,ensureSlideOverride:Vi,clearSlideOverride:Ui,updateSlideOverride:Hi,layoutMode:wt,setLayoutMode:H,effectiveLayoutMode:pi,selectedFont:Xt,setSelectedFont:Zt,fontOptions:gi,textColor:kt,setTextColor:At,recentColors:Qt,addRecentColor:ln,effectiveTopSpacing:di,setTopSpacing:Ct,effectiveDeviceScale:fi,setDeviceScale:ut,badgeType:Tt,setBadgeType:Et,applyPreset:Ya,myPresets:_n,requirePro:ji,openSavePresetDialog:Xa,deleteUserPreset:Qa,isPro:O,storageUsage:Cn,saveProject:eo,loadProject:to,loadSampleProject:no,setConfirmDialog:An,saveStatus:J,statusMessage:co,handleExportJSON:ga,jsonInputRef:Lr,handleImportJSON:_a,isJsonDragging:lr,handleJsonDragOver:ba,handleJsonDragEnter:va,handleJsonDragLeave:ya,handleJsonDropWrapper:xa,isCsvDragging:dr,handleCsvDropWrapper:Aa,handleCsvDragOver:ka,handleCsvDragEnter:Da,handleCsvDragLeave:Oa,openCsvTemplateDialog:ja,csvInputRef:Ir,handleCsvImport:Ea,onImportLocaleScreenshots:Ha,selectedBatchDevices:Ve,setSelectedBatchDevices:We,toggleBatchDevice:Ge,onTouchStart:bo,onTouchMove:xo,onTouchEnd:So})}),(0,R.jsxs)(`div`,{ref:zr,className:`${Yn?`h-full`:`h-1/2`} md:h-full flex-1 md:flex-auto bg-slate-200/50 relative overflow-visible flex flex-col order-1 md:order-0 border-b md:border-b-0 border-slate-200`,style:{minHeight:0,...$?{touchAction:`auto`}:{}},children:[(0,R.jsx)(`div`,{className:`w-full flex justify-end pointer-events-none`,children:(0,R.jsx)(`div`,{className:`fixed top-20 right-8 z-400 flex flex-col items-end gap-1 pointer-events-auto transition-opacity ${uo?`opacity-0 pointer-events-none`:``}`,children:(0,R.jsxs)(`div`,{className:`flex items-center gap-3 bg-white/90 backdrop-blur-sm shadow-xs border border-slate-200 rounded-full px-4 py-2`,children:[(0,R.jsx)(He,{size:14,className:`text-slate-400`}),(0,R.jsx)(`input`,{type:`range`,min:`0.05`,max:`1.0`,step:`0.05`,value:B,onChange:e=>dt(parseFloat(e.target.value)),className:`w-24 accent-slate-800 h-1.5 bg-slate-200 rounded-lg appearance-none cursor-pointer`}),(0,R.jsxs)(`span`,{className:`text-xs font-mono text-slate-500 w-8`,children:[Math.round(B*100),`%`]}),l===`single`&&(0,R.jsx)(`button`,{onClick:fo,className:`text-[10px] text-blue-600 font-bold hover:underline px-2 border-l border-slate-200 ml-1`,children:e(`app.canvas.center`)})]})})}),(0,R.jsxs)(`div`,{className:`flex-1 w-full flex flex-col overflow-visible`,style:{minHeight:0},children:[(0,R.jsx)(`div`,{className:`flex-1 w-full pb-48`,style:{overflowY:`auto`,overflowX:`auto`},children:(0,R.jsx)(`div`,{className:`flex flex-col items-center gap-12 p-12`,style:{touchAction:$?`auto`:`pan-y pinch-zoom`},children:(0,R.jsxs)(`div`,{className:`grid place-items-center w-full pb-12 overflow-visible`,ref:lo,onMouseDown:$?void 0:Co,onMouseMove:$?void 0:wo,onMouseUp:$?void 0:To,onMouseLeave:$?void 0:To,onTouchStart:$?void 0:mo,onTouchMove:$?void 0:ho,onTouchEnd:$?void 0:go,onTouchCancel:$?void 0:go,style:{cursor:$?`default`:Pe?`grabbing`:`grab`,userSelect:`none`,touchAction:$?`auto`:`none`},children:[l===`single`&&(0,R.jsx)(`div`,{style:{width:mi*B,height:hi*B,flexShrink:0,marginLeft:`auto`,marginRight:`auto`},children:(0,R.jsx)(`div`,{style:{transform:`translate(${Ae.x}px, ${Ae.y}px) scale(${B})`,transformOrigin:`top left`,width:mi,height:hi,transition:Pe?`none`:`transform 0.1s ease-out`,willChange:`transform`},children:(0,R.jsx)(pt,{id:`single-canvas`,deviceId:V,orientation:ci,deviceScale:fi,topSpacing:di,layoutMode:pi,bgType:Ke,bgColor:Je,gradientStart:rt,gradientEnd:at,gradientAngle:st,bgImage:Ze,bgBlur:$e,bgOpacity:tt,headerText:Qr,subHeaderText:$r,textColor:kt,headerSize:jt,subHeaderSize:Nt,selectedFont:so,badgeType:Tt,screenshot:ei,logoImage:Dt,frameColor:bt,isPro:O})})}),l===`batch`&&(0,R.jsxs)(`div`,{style:{transform:$?void 0:`translate(${Ae.x}px, ${Ae.y}px)`,transition:$||Pe?`none`:`transform 0.1s ease-out`,willChange:$?void 0:`transform`},className:`flex flex-wrap justify-center items-start content-start py-10`,children:[!O&&!h&&(0,R.jsx)(`div`,{className:`w-full px-4 pb-6`,children:(0,R.jsxs)(`div`,{className:`max-w-3xl mx-auto rounded-2xl border border-amber-200 bg-amber-50 text-amber-900 p-4 flex flex-col sm:flex-row sm:items-center sm:justify-between gap-3`,children:[(0,R.jsxs)(`div`,{className:`space-y-1`,children:[(0,R.jsx)(`div`,{className:`text-sm font-black`,children:e(`app.batch.freePreview.title`,{defaultValue:`Free bundle preview`})}),(0,R.jsx)(`div`,{className:`text-xs text-amber-800`,children:e(`app.batch.freePreview.body`,{defaultValue:`Limited to 1 locale × 5 slides × 1 iOS + 1 Android device (watermarked). Upgrade for full matrix exports.`})})]}),(0,R.jsx)(`button`,{type:`button`,onClick:()=>wi(`free_bundle_banner`),className:`inline-flex items-center justify-center gap-2 px-4 py-2 rounded-xl bg-white text-amber-900 border border-amber-200 text-xs font-bold hover:bg-amber-100 transition`,children:e(`app.batch.freePreview.cta`,{defaultValue:`Upgrade`})})]})}),po.map(e=>{let t=z[e],n=t?.type===`watch`?`portrait`:ft,r=t?.type===`watch`,i=r?Ft:Wt,a=r?Lt:Kt,o=r?zt:Jt,{canvasWidth:s,canvasHeight:c}=Ye({deviceId:e,orientation:n,deviceScale:lt,topSpacing:o,layoutMode:wt,isBatchMode:!0}),l=s*B,u=c*B;return(0,R.jsxs)(`div`,{className:`relative isolate flex flex-col items-center m-4 group`,children:[(0,R.jsx)(`div`,{className:`mb-2 relative z-20`,children:(0,R.jsx)(`span`,{className:`text-xs font-bold text-slate-500 uppercase tracking-widest bg-white/90 px-3 py-1 rounded-full shadow-xs border border-slate-100 whitespace-nowrap`,children:vt(z[e],{id:e,mode:y}).optionLabel})}),(0,R.jsx)(`div`,{style:{width:l,height:u,clipPath:`inset(0)`,WebkitClipPath:`inset(0)`},className:`relative z-0 overflow-hidden`,children:(0,R.jsx)(`div`,{style:{transform:`scale(${B})`,transformOrigin:`top left`,width:s,height:c},children:(0,R.jsx)(`div`,{id:`batch-canvas-${e}`,children:(0,R.jsx)(pt,{id:`canvas-${e}`,deviceId:e,orientation:n,deviceScale:lt,topSpacing:o,layoutMode:wt,bgType:Ke,bgColor:Je,gradientStart:rt,gradientEnd:at,gradientAngle:st,bgImage:Ze,bgBlur:$e,bgOpacity:tt,headerText:Qr,subHeaderText:$r,textColor:kt,headerSize:i,subHeaderSize:a,selectedFont:so,badgeType:Tt,screenshot:ei,logoImage:Dt,frameColor:bt,isBatchMode:!0,isPro:O})})})})]},e)})]})]})})}),(0,R.jsx)(`input`,{type:`file`,ref:Mr,className:`hidden`,accept:`image/*`,onChange:Ki}),(0,R.jsx)(tn,{slides:G,activeSlideIndex:q,setActiveSlideIndex:mn,currentLocaleId:W,addSlide:Pi,removeSlide:Ii,onApplyFileToSlide:Gi,onOpenFilePickerForSlide:qi,validateImageFile:xi,onAddSlidesFromFiles:Fi})]})]})]}),jn&&(0,R.jsx)(`div`,{className:`fixed inset-0 z-1250 bg-black/40 backdrop-blur-xs flex items-center justify-center px-4`,role:`dialog`,"aria-modal":`true`,"aria-label":e(`app.templates.saveCurrent`),onMouseDown:e=>{e.target===e.currentTarget&&Dr()},children:(0,R.jsxs)(`div`,{ref:_r,className:`bg-white rounded-xl shadow-xl border border-slate-200 w-full max-w-sm p-5 space-y-4`,children:[(0,R.jsx)(`h3`,{className:`text-base font-semibold text-slate-800`,children:e(`app.templates.saveCurrent`)}),(0,R.jsxs)(`div`,{className:`space-y-2`,children:[(0,R.jsx)(`label`,{className:`block text-xs font-medium text-slate-600`,htmlFor:`preset-name-input`,children:e(`app.prompts.presetName`)}),(0,R.jsx)(`input`,{id:`preset-name-input`,ref:vr,value:jn.value,onChange:e=>Mn({value:e.target.value}),onKeyDown:e=>{e.key===`Enter`&&jn.value.trim()&&Za(),e.key===`Escape`&&Dr()},placeholder:e(`app.prompts.presetDefault`),className:`w-full rounded-lg border border-slate-300 px-3 py-2 text-sm focus:outline-hidden focus:ring-2 focus:ring-blue-500 focus:border-blue-500`,autoFocus:!0})]}),(0,R.jsxs)(`div`,{className:`flex justify-end gap-2`,children:[(0,R.jsx)(`button`,{className:`px-3 py-1.5 text-sm rounded-lg border border-slate-200 text-slate-600 hover:bg-slate-50`,onClick:Dr,children:e(`auth.actions.cancel`)||`Cancel`}),(0,R.jsx)(`button`,{disabled:!jn.value.trim(),className:`px-3 py-1.5 text-sm rounded-lg bg-blue-600 text-white hover:bg-blue-700 disabled:opacity-60 disabled:cursor-not-allowed`,onClick:Za,children:e(`app.header.confirm`)||`OK`})]})]})}),Yn&&(0,R.jsxs)(R.Fragment,{children:[vo&&(0,R.jsx)(`div`,{className:`fixed inset-0 z-90 bg-black/20 backdrop-blur-[1px] md:hidden`,onClick:()=>Qn(!1)}),(0,R.jsxs)(`button`,{onClick:_o,className:`fixed bottom-20 right-4 z-110 md:hidden px-4 py-2 rounded-full shadow-lg bg-white border border-slate-200 text-sm font-semibold text-slate-700 flex items-center gap-2`,children:[(0,R.jsx)(Fe,{size:16}),e(vo?`app.mobile.closeControls`:`app.mobile.openControls`)]})]}),(0,R.jsxs)(`footer`,{className:`border-t border-slate-200 bg-white text-[11px] text-slate-500 py-3 px-4 md:px-8 flex flex-col md:flex-row items-center justify-between gap-2`,children:[(0,R.jsxs)(`span`,{className:`font-medium`,children:[`© `,new Date().getFullYear(),` ShipScreens`]}),(0,R.jsxs)(`div`,{className:`flex items-center gap-3`,children:[(0,R.jsx)(`a`,{href:`/terms`,className:`hover:text-slate-700 underline-offset-2 hover:underline`,children:e(`landing.footer.terms`)}),(0,R.jsx)(`a`,{href:`/privacy`,className:`hover:text-slate-700 underline-offset-2 hover:underline`,children:e(`landing.footer.privacy`)}),(0,R.jsx)(`a`,{href:`/legal`,className:`hover:text-slate-700 underline-offset-2 hover:underline`,children:e(`landing.footer.legal`)})]})]}),In&&(0,R.jsx)(`div`,{className:`fixed inset-0 z-1220 bg-black/40 backdrop-blur-xs flex items-center justify-center px-4`,role:`dialog`,"aria-modal":`true`,"aria-label":e(`app.importer.templateDialog.title`),onMouseDown:e=>{e.target===e.currentTarget&&Or()},children:(0,R.jsxs)(`div`,{ref:yr,className:`bg-white rounded-xl shadow-xl border border-slate-200 w-full max-w-sm p-5 space-y-4`,children:[(0,R.jsx)(`h3`,{className:`text-base font-semibold text-slate-800`,children:e(`app.importer.templateDialog.title`)}),(0,R.jsx)(`p`,{className:`text-sm text-slate-600`,children:e(`app.importer.templateDialog.description`)}),(0,R.jsxs)(`div`,{className:`rounded-lg border border-slate-200 bg-slate-50/60 p-3 space-y-2`,children:[(0,R.jsxs)(`label`,{className:`flex items-start gap-2 text-sm text-slate-700`,children:[(0,R.jsx)(`input`,{ref:br,type:`radio`,name:`csv-template-slide-count`,value:`current`,checked:Rn===`current`,onChange:()=>zn(`current`),className:`mt-1 accent-blue-600`}),(0,R.jsxs)(`div`,{children:[(0,R.jsx)(`div`,{className:`font-semibold text-sm`,children:e(`app.importer.templateDialog.optionCurrent`,{count:Math.max(1,G.length)})}),(0,R.jsx)(`div`,{className:`text-[11px] text-slate-500`,children:e(`app.importer.templateDialog.optionCurrentDesc`)})]})]}),(0,R.jsxs)(`label`,{className:`flex items-start gap-2 text-sm text-slate-700`,children:[(0,R.jsx)(`input`,{type:`radio`,name:`csv-template-slide-count`,value:`custom`,checked:Rn===`custom`,onChange:()=>{zn(`custom`),Vn(e=>e||String(Math.max(1,G.length)))},className:`mt-1 accent-blue-600`}),(0,R.jsxs)(`div`,{className:`flex-1`,children:[(0,R.jsx)(`div`,{className:`font-semibold text-sm`,children:e(`app.importer.templateDialog.optionCustom`)}),(0,R.jsxs)(`div`,{className:`mt-1 flex items-center gap-2`,children:[(0,R.jsx)(`input`,{type:`number`,min:1,max:50,step:1,value:Bn,onChange:e=>{zn(`custom`),Vn(e.target.value)},className:`w-20 rounded-lg border px-2 py-1 text-sm focus:outline-hidden focus:ring-2 focus:ring-blue-500 focus:border-blue-500 ${Rn===`custom`?`bg-white border-slate-300 text-slate-900`:`bg-slate-100 border-slate-200 text-slate-500`}`,disabled:Rn!==`custom`}),(0,R.jsx)(`span`,{className:`text-[11px] text-slate-500`,children:e(`app.importer.templateDialog.optionCustomUnit`)})]}),(0,R.jsx)(`div`,{className:`text-[11px] text-slate-500`,children:e(`app.importer.templateDialog.optionCustomDesc`)})]})]}),[5,7,10].map(t=>(0,R.jsxs)(`label`,{className:`flex items-start gap-2 text-sm text-slate-700`,children:[(0,R.jsx)(`input`,{type:`radio`,name:`csv-template-slide-count`,value:String(t),checked:Rn===String(t),onChange:()=>zn(String(t)),className:`mt-1 accent-blue-600`}),(0,R.jsxs)(`div`,{children:[(0,R.jsx)(`div`,{className:`font-semibold text-sm`,children:e(`app.importer.templateDialog.optionPreset`,{count:t})}),(0,R.jsx)(`div`,{className:`text-[11px] text-slate-500`,children:e(`app.importer.templateDialog.optionPresetDesc`)})]})]},t))]}),(0,R.jsxs)(`div`,{className:`flex justify-end gap-2`,children:[(0,R.jsx)(`button`,{className:`px-3 py-1.5 text-sm rounded-lg border border-slate-200 text-slate-600 hover:bg-slate-50`,onClick:Or,children:e(`auth.actions.cancel`)||`Cancel`}),(0,R.jsx)(`button`,{className:`px-3 py-1.5 text-sm rounded-lg bg-blue-600 text-white hover:bg-blue-700`,onClick:Na,disabled:(()=>{if(Rn!==`custom`)return!1;let e=parseInt(Bn,10);return!Number.isFinite(e)||e<1||e>50})(),children:e(`app.importer.templateDialog.download`)})]})]})}),X&&(0,R.jsx)(`div`,{className:`fixed inset-0 z-1225 bg-black/40 backdrop-blur-xs flex items-center justify-center px-4`,role:`dialog`,"aria-modal":`true`,"aria-label":e(`app.importer.previewTitle`),onMouseDown:e=>{e.target===e.currentTarget&&kr()},children:(0,R.jsxs)(`div`,{ref:xr,className:`bg-white rounded-xl shadow-xl border border-slate-200 w-full max-w-md p-5 space-y-4`,children:[(0,R.jsx)(`h3`,{className:`text-base font-semibold text-slate-800`,children:e(`app.importer.previewTitle`)}),(0,R.jsx)(`p`,{className:`text-sm text-slate-600`,children:e(`app.importer.previewSummary`,{count:X.locales.length,slides:X.slideCount||1})}),X.errors>0&&(0,R.jsx)(`p`,{className:`text-xs text-amber-600 bg-amber-50 border border-amber-100 rounded-lg p-2`,children:e(`app.importer.previewWarning`,{count:X.errors})}),(()=>{let t=G.length,n=X.slideCount||1;return n>t?(0,R.jsx)(`p`,{className:`text-xs text-blue-700 bg-blue-50 border border-blue-100 rounded-lg p-2`,children:e(`app.importer.previewSlideNoteAdd`,{count:n-t})}):n<t?(0,R.jsx)(`p`,{className:`text-xs text-slate-600 bg-slate-50 border border-slate-100 rounded-lg p-2`,children:e(`app.importer.previewSlideNotePartial`,{count:n,from:n+1})}):null})(),(()=>{let t=new Set(U.map(e=>e.id)),n=new Set(X.locales.map(e=>e.id)),r=Array.from(n).filter(e=>!t.has(e)).length,i=Array.from(t).filter(e=>!n.has(e)).length,a=Array.from(n).filter(e=>t.has(e)).length,o=t.size-a,s=G.length,c=X.slideCount||1,l=Math.max(0,c-s),u=Math.max(0,s-c),d=[];return r>0&&d.push({key:`loc-add`,tone:`good`,label:e(`app.importer.delta.localesAdded`,{count:r})}),Pn===`replace`?(i>0&&d.push({key:`loc-remove`,tone:`bad`,label:e(`app.importer.delta.localesRemoved`,{count:i})}),a>0&&d.push({key:`loc-kept`,tone:`neutral`,label:e(`app.importer.delta.localesKept`,{count:a})})):(a>0&&d.push({key:`loc-update`,tone:`info`,label:e(`app.importer.delta.localesUpdated`,{count:a})}),o>0&&d.push({key:`loc-unchanged`,tone:`neutral`,label:e(`app.importer.delta.localesUnchanged`,{count:o})})),l>0&&d.push({key:`slide-add`,tone:`good`,label:e(`app.importer.delta.slidesAdded`,{count:l})}),u>0&&d.push({key:`slide-unchanged`,tone:`neutral`,label:e(`app.importer.delta.slidesUnchanged`,{count:u})}),d.length?(0,R.jsxs)(`div`,{className:`rounded-lg border border-slate-200 bg-slate-50/60 p-3 space-y-2`,children:[(0,R.jsx)(`div`,{className:`text-xs font-semibold text-slate-700`,children:e(`app.importer.previewChangesTitle`)}),(0,R.jsx)(`div`,{className:`flex flex-wrap gap-2`,children:d.map(e=>(0,R.jsx)(`span`,{className:`px-2 py-1 rounded-full border text-[11px] font-semibold ${e.tone===`bad`?`bg-rose-50 text-rose-700 border-rose-100`:e.tone===`good`?`bg-emerald-50 text-emerald-700 border-emerald-100`:e.tone===`info`?`bg-blue-50 text-blue-700 border-blue-100`:`bg-white text-slate-700 border-slate-200`}`,children:e.label},e.key))})]}):null})(),(0,R.jsxs)(`div`,{className:`border border-slate-200 rounded-lg divide-y divide-slate-100 max-h-60 overflow-auto`,children:[X.locales.slice(0,4).map(t=>{let n=X.slideCount||1,r=Math.min(2,n),i=Array.from({length:r},(e,t)=>t);return(0,R.jsxs)(`div`,{className:`p-3`,children:[(0,R.jsxs)(`div`,{className:`text-xs font-semibold text-slate-700 flex justify-between`,children:[(0,R.jsx)(`span`,{children:t.name}),(0,R.jsx)(`span`,{className:`text-slate-400`,children:t.id})]}),(0,R.jsxs)(`div`,{className:`mt-1 text-[11px] text-slate-600 space-y-1`,children:[i.map(e=>{let n=X.slidesTexts?.[e]?.[t.id]||{};return(0,R.jsxs)(`div`,{children:[(0,R.jsxs)(`span`,{className:`font-semibold text-slate-500`,children:[`#`,e+1]}),` `,n.header||`-`,` `,(0,R.jsx)(`span`,{className:`text-slate-400`,children:`/`}),` `,n.sub||`-`]},`${t.id}-${e}`)}),n>r&&(0,R.jsx)(`div`,{className:`text-[10px] text-slate-400`,children:e(`app.importer.previewMoreSlides`,{extra:n-r})})]})]},t.id)}),X.locales.length>4&&(0,R.jsx)(`div`,{className:`p-2 text-[11px] text-slate-500 text-center`,children:e(`app.importer.previewMore`,{extra:X.locales.length-4})})]}),(0,R.jsxs)(`div`,{className:`rounded-lg border border-slate-200 bg-slate-50/60 p-3 space-y-2`,children:[(0,R.jsx)(`div`,{className:`text-xs font-semibold text-slate-700`,children:e(`app.importer.mode.label`)}),(0,R.jsxs)(`label`,{className:`flex items-start gap-2 text-sm text-slate-700`,children:[(0,R.jsx)(`input`,{type:`radio`,name:`csv-apply-mode`,value:`merge`,checked:Pn===`merge`,onChange:()=>Fn(`merge`),className:`mt-1 accent-blue-600`}),(0,R.jsxs)(`div`,{children:[(0,R.jsx)(`div`,{className:`font-semibold text-sm`,children:e(`app.importer.mode.merge`)}),(0,R.jsx)(`div`,{className:`text-[11px] text-slate-500`,children:e(`app.importer.mode.mergeDesc`)})]})]}),(0,R.jsxs)(`label`,{className:`flex items-start gap-2 text-sm text-slate-700`,children:[(0,R.jsx)(`input`,{type:`radio`,name:`csv-apply-mode`,value:`replace`,checked:Pn===`replace`,onChange:()=>Fn(`replace`),className:`mt-1 accent-blue-600`}),(0,R.jsxs)(`div`,{children:[(0,R.jsx)(`div`,{className:`font-semibold text-sm`,children:e(`app.importer.mode.replace`)}),(0,R.jsx)(`div`,{className:`text-[11px] text-slate-500`,children:e(`app.importer.mode.replaceDesc`)})]})]})]}),(0,R.jsxs)(`div`,{className:`flex justify-end gap-2`,children:[(0,R.jsx)(`button`,{ref:Sr,className:`px-3 py-1.5 text-sm rounded-lg border border-slate-200 text-slate-600 hover:bg-slate-50`,onClick:kr,children:e(`auth.actions.cancel`)||`Cancel`}),(0,R.jsx)(`button`,{className:`px-3 py-1.5 text-sm rounded-lg bg-blue-600 text-white hover:bg-blue-700`,onClick:Pa,children:e(`app.importer.previewApply`)})]})]})}),Z&&(0,R.jsx)(`div`,{className:`fixed inset-0 z-1230 bg-black/40 backdrop-blur-xs flex items-center justify-center px-4`,role:`dialog`,"aria-modal":`true`,"aria-label":e(`app.screenshotImporter.dialog.title`),onMouseDown:e=>{Gn||e.target===e.currentTarget&&Va()},children:(0,R.jsxs)(`div`,{ref:Cr,className:`bg-white rounded-xl shadow-xl border border-slate-200 w-full max-w-md p-5 space-y-4`,children:[(0,R.jsx)(`h3`,{className:`text-base font-semibold text-slate-800`,children:e(`app.screenshotImporter.dialog.title`)}),(0,R.jsx)(`p`,{className:`text-sm text-slate-600`,children:e(`app.screenshotImporter.dialog.summary`,{count:Z.totalFound,locales:Z.localeCount,slides:Z.slideCount})}),(0,R.jsx)(`p`,{className:`text-xs text-slate-500`,children:e(`app.screenshotImporter.dialog.source`,{source:Z.source?.name||``})}),(Z.newLocaleCount>0||Z.addedSlideCount>0)&&(0,R.jsxs)(`div`,{className:`text-xs text-blue-700 bg-blue-50 border border-blue-100 rounded-lg p-2 space-y-1`,children:[Z.newLocaleCount>0&&(0,R.jsx)(`div`,{children:e(`app.screenshotImporter.dialog.noteAddLocales`,{count:Z.newLocaleCount})}),Z.addedSlideCount>0&&(0,R.jsx)(`div`,{children:e(`app.screenshotImporter.dialog.noteAddSlides`,{count:Z.addedSlideCount})})]}),(Z.skipped>0||Z.skippedNotImage>0||Z.skippedOutOfRange>0)&&(0,R.jsxs)(`div`,{className:`text-xs text-amber-700 bg-amber-50 border border-amber-100 rounded-lg p-2 space-y-1`,children:[Z.skipped>0&&(0,R.jsx)(`div`,{children:e(`app.screenshotImporter.dialog.warnSkipped`,{count:Z.skipped})}),Z.skippedNotImage>0&&(0,R.jsx)(`div`,{children:e(`app.screenshotImporter.dialog.warnNotImages`,{count:Z.skippedNotImage})}),Z.skippedOutOfRange>0&&(0,R.jsx)(`div`,{children:e(`app.screenshotImporter.dialog.warnOutOfRange`,{count:Z.skippedOutOfRange})})]}),Z.duplicateCount>0&&(0,R.jsx)(`div`,{className:`text-xs text-slate-600 bg-slate-50 border border-slate-100 rounded-lg p-2`,children:e(`app.screenshotImporter.dialog.noteDuplicates`,{count:Z.duplicateCount})}),Gn&&(0,R.jsx)(`div`,{className:`text-xs text-slate-600 bg-slate-50 border border-slate-100 rounded-lg p-2`,children:e(`app.screenshotImporter.dialog.progress`,{current:Un.current,total:Un.total})}),(0,R.jsxs)(`div`,{className:`flex justify-end gap-2`,children:[(0,R.jsx)(`button`,{ref:wr,className:`px-3 py-1.5 text-sm rounded-lg border border-slate-200 text-slate-600 hover:bg-slate-50 disabled:opacity-60 disabled:cursor-not-allowed`,onClick:Va,disabled:Gn,children:e(`auth.actions.cancel`)||`Cancel`}),(0,R.jsx)(`button`,{className:`px-3 py-1.5 text-sm rounded-lg bg-blue-600 text-white hover:bg-blue-700 disabled:opacity-60 disabled:cursor-not-allowed`,onClick:Ua,disabled:Gn,children:e(Gn?`app.screenshotImporter.dialog.applying`:`app.screenshotImporter.dialog.apply`)})]})]})}),kn&&(0,R.jsx)(`div`,{className:`fixed inset-0 z-1200 bg-black/40 backdrop-blur-xs flex items-center justify-center px-4`,role:`dialog`,"aria-modal":`true`,"aria-label":kn.title||e(`app.data.title`),onMouseDown:e=>{e.target===e.currentTarget&&Ar()},children:(0,R.jsxs)(`div`,{ref:Tr,className:`bg-white rounded-xl shadow-xl border border-slate-200 w-full max-w-sm p-4 space-y-4`,children:[(0,R.jsx)(`h3`,{className:`text-sm font-semibold text-slate-800`,children:kn.title||e(`app.data.title`)}),(0,R.jsx)(`p`,{className:`text-sm text-slate-600`,children:kn.message}),(0,R.jsxs)(`div`,{className:`flex justify-end gap-2`,children:[(0,R.jsx)(`button`,{ref:Er,className:`px-3 py-1.5 text-sm rounded-lg border border-slate-200 text-slate-600 hover:bg-slate-50`,onClick:Ar,children:kn.cancelLabel||e(`auth.actions.cancel`)||`Cancel`}),(0,R.jsx)(`button`,{className:`px-3 py-1.5 text-sm rounded-lg bg-blue-600 text-white hover:bg-blue-700`,onClick:()=>{kn.onConfirm?.(),An(null)},children:kn.confirmLabel||e(`app.header.confirm`)||`OK`})]})]})})]})};export{on as default};
14
+ //# sourceMappingURL=App-CZiyX8-L.js.map