@tomako/tools-runtime 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (531) hide show
  1. package/README.md +12 -0
  2. package/package.json +629 -0
  3. package/src/assets/icons/brands/social/bluesky-icon.tsx +9 -0
  4. package/src/assets/icons/brands/social/facebook-icon.tsx +9 -0
  5. package/src/assets/icons/brands/social/index.ts +8 -0
  6. package/src/assets/icons/brands/social/instagram-icon.tsx +9 -0
  7. package/src/assets/icons/brands/social/linkedin-icon.tsx +9 -0
  8. package/src/assets/icons/brands/social/threads-icon.tsx +9 -0
  9. package/src/assets/icons/brands/social/tiktok-icon.tsx +10 -0
  10. package/src/assets/icons/brands/social/x-icon.tsx +9 -0
  11. package/src/assets/icons/brands/social/youtube-icon.tsx +9 -0
  12. package/src/assets/icons/social-profile/facebook-icon.tsx +12 -0
  13. package/src/assets/icons/social-profile/index.ts +29 -0
  14. package/src/assets/icons/social-profile/instagram-icon.tsx +18 -0
  15. package/src/assets/icons/social-profile/linkedin-icon.tsx +12 -0
  16. package/src/assets/icons/social-profile/tiktok-icon.tsx +12 -0
  17. package/src/assets/icons/social-profile/x-icon.tsx +13 -0
  18. package/src/assets/icons/social-profile/youtube-icon.tsx +12 -0
  19. package/src/components/tools/engine/form-builder.tsx +219 -0
  20. package/src/components/tools/engine/package-widget-loader.tsx +38 -0
  21. package/src/components/tools/engine/package-widget-runtime.tsx +409 -0
  22. package/src/components/tools/engine/package-widget.tsx +77 -0
  23. package/src/components/tools/engine/result-view.tsx +596 -0
  24. package/src/components/tools/engine/use-legacy-llm-task.ts +64 -0
  25. package/src/components/tools/engine/use-tool-task.ts +195 -0
  26. package/src/components/tools/market-forecast-report.tsx +1150 -0
  27. package/src/components/tools/registry.ts +13 -0
  28. package/src/components/tools/workspace/index.ts +39 -0
  29. package/src/components/tools/workspace/tool-action-bar.tsx +99 -0
  30. package/src/components/tools/workspace/tool-empty-panel.tsx +32 -0
  31. package/src/components/tools/workspace/tool-error-panel.tsx +40 -0
  32. package/src/components/tools/workspace/tool-field.tsx +124 -0
  33. package/src/components/tools/workspace/tool-file-upload.tsx +112 -0
  34. package/src/components/tools/workspace/tool-form-section.tsx +21 -0
  35. package/src/components/tools/workspace/tool-form-shell.tsx +36 -0
  36. package/src/components/tools/workspace/tool-loading-panel.tsx +269 -0
  37. package/src/components/tools/workspace/tool-option-row.tsx +97 -0
  38. package/src/components/tools/workspace/tool-preview-panel.tsx +31 -0
  39. package/src/components/tools/workspace/tool-result-actions.tsx +67 -0
  40. package/src/components/tools/workspace/tool-result-file-actions.ts +31 -0
  41. package/src/components/tools/workspace/tool-result-header.tsx +39 -0
  42. package/src/components/tools/workspace/tool-status.tsx +13 -0
  43. package/src/components/tools/workspace/tool-workspace-layout.tsx +226 -0
  44. package/src/constants/LKS.ts +29 -0
  45. package/src/constants/related-tools.ts +18 -0
  46. package/src/constants/social-profile-kit.ts +284 -0
  47. package/src/constants/tool-assets.ts +7 -0
  48. package/src/env.d.ts +3 -0
  49. package/src/features/tools/_templates/standard-tool.container.tsx +90 -0
  50. package/src/features/tools/app-icon-resizer/app-icon-resizer.container.tsx +11 -0
  51. package/src/features/tools/app-icon-resizer/app-icon-resizer.spec.ts +15 -0
  52. package/src/features/tools/app-icon-resizer/widget/app-icon-resizer.tsx +444 -0
  53. package/src/features/tools/app-icon-resizer/widget/constants.ts +19 -0
  54. package/src/features/tools/app-icon-resizer/widget/helpers.ts +314 -0
  55. package/src/features/tools/app-icon-resizer/widget/index.ts +7 -0
  56. package/src/features/tools/app-icon-resizer/widget/platform-icons.tsx +59 -0
  57. package/src/features/tools/app-icon-resizer/widget/preview-dialogs.tsx +139 -0
  58. package/src/features/tools/app-icon-resizer/widget/result-shell.tsx +165 -0
  59. package/src/features/tools/app-icon-resizer/widget/types.ts +36 -0
  60. package/src/features/tools/app-store-screenshot-generator/app-store-screenshot-generator.container.tsx +108 -0
  61. package/src/features/tools/app-store-screenshot-generator/app-store-screenshot-generator.spec.ts +14 -0
  62. package/src/features/tools/app-store-screenshot-generator/config.ts +3 -0
  63. package/src/features/tools/app-store-screenshot-generator/widget/app-store-screenshot-generator.tsx +1250 -0
  64. package/src/features/tools/app-store-screenshot-generator/widget/asset-slots.ts +76 -0
  65. package/src/features/tools/app-store-screenshot-generator/widget/constants.ts +43 -0
  66. package/src/features/tools/app-store-screenshot-generator/widget/form-controls.tsx +214 -0
  67. package/src/features/tools/app-store-screenshot-generator/widget/generation.ts +528 -0
  68. package/src/features/tools/app-store-screenshot-generator/widget/index.ts +7 -0
  69. package/src/features/tools/app-store-screenshot-generator/widget/input-media.ts +175 -0
  70. package/src/features/tools/app-store-screenshot-generator/widget/types.ts +60 -0
  71. package/src/features/tools/app-store-screenshot-generator/widget/zip.ts +119 -0
  72. package/src/features/tools/build-in-public-story-generator/build-in-public-story-generator.container.tsx +135 -0
  73. package/src/features/tools/build-in-public-story-generator/build-in-public-story-generator.spec.ts +15 -0
  74. package/src/features/tools/build-in-public-story-generator/widget/build-in-public-story-generator.tsx +314 -0
  75. package/src/features/tools/build-in-public-story-generator/widget/constants.ts +3 -0
  76. package/src/features/tools/build-in-public-story-generator/widget/helpers.ts +25 -0
  77. package/src/features/tools/build-in-public-story-generator/widget/index.ts +7 -0
  78. package/src/features/tools/build-in-public-story-generator/widget/preview-panels.tsx +58 -0
  79. package/src/features/tools/build-in-public-story-generator/widget/result-shell.tsx +164 -0
  80. package/src/features/tools/build-in-public-story-generator/widget/types.ts +6 -0
  81. package/src/features/tools/cold-start-channel-selector/cold-start-channel-selector.container.tsx +30 -0
  82. package/src/features/tools/cold-start-channel-selector/cold-start-channel-selector.spec.ts +15 -0
  83. package/src/features/tools/cold-start-channel-selector/widget/cold-start-channel-selector.tsx +417 -0
  84. package/src/features/tools/cold-start-channel-selector/widget/constants.ts +46 -0
  85. package/src/features/tools/cold-start-channel-selector/widget/form-controls.tsx +41 -0
  86. package/src/features/tools/cold-start-channel-selector/widget/helpers.ts +75 -0
  87. package/src/features/tools/cold-start-channel-selector/widget/index.ts +7 -0
  88. package/src/features/tools/cold-start-channel-selector/widget/preview-panels.tsx +250 -0
  89. package/src/features/tools/cold-start-channel-selector/widget/result-shell.tsx +199 -0
  90. package/src/features/tools/cold-start-channel-selector/widget/types.ts +21 -0
  91. package/src/features/tools/commercial-bp-generator/commercial-bp-generator.container.tsx +102 -0
  92. package/src/features/tools/commercial-bp-generator/commercial-bp-generator.spec.ts +14 -0
  93. package/src/features/tools/commercial-bp-generator/widget/commercial-bp-generator.tsx +676 -0
  94. package/src/features/tools/commercial-bp-generator/widget/constants.ts +32 -0
  95. package/src/features/tools/commercial-bp-generator/widget/helpers.ts +147 -0
  96. package/src/features/tools/commercial-bp-generator/widget/index.ts +7 -0
  97. package/src/features/tools/commercial-bp-generator/widget/result-shell.tsx +271 -0
  98. package/src/features/tools/commercial-bp-generator/widget/style-option.tsx +54 -0
  99. package/src/features/tools/commercial-bp-generator/widget/types.ts +33 -0
  100. package/src/features/tools/community-feedback-inbox/community-feedback-inbox.container.tsx +126 -0
  101. package/src/features/tools/community-feedback-inbox/community-feedback-inbox.spec.ts +15 -0
  102. package/src/features/tools/community-feedback-inbox/widget/community-feedback-inbox.tsx +271 -0
  103. package/src/features/tools/community-feedback-inbox/widget/constants.ts +3 -0
  104. package/src/features/tools/community-feedback-inbox/widget/helpers.ts +28 -0
  105. package/src/features/tools/community-feedback-inbox/widget/index.ts +7 -0
  106. package/src/features/tools/community-feedback-inbox/widget/preview-panels.tsx +92 -0
  107. package/src/features/tools/community-feedback-inbox/widget/result-shell.tsx +266 -0
  108. package/src/features/tools/community-feedback-inbox/widget/types.ts +6 -0
  109. package/src/features/tools/community-pain-point-extractor/community-pain-point-extractor.container.tsx +124 -0
  110. package/src/features/tools/community-pain-point-extractor/community-pain-point-extractor.spec.ts +15 -0
  111. package/src/features/tools/community-pain-point-extractor/widget/community-pain-point-extractor.tsx +404 -0
  112. package/src/features/tools/community-pain-point-extractor/widget/constants.ts +41 -0
  113. package/src/features/tools/community-pain-point-extractor/widget/helpers.ts +76 -0
  114. package/src/features/tools/community-pain-point-extractor/widget/index.ts +8 -0
  115. package/src/features/tools/community-pain-point-extractor/widget/progress-panels.tsx +251 -0
  116. package/src/features/tools/community-pain-point-extractor/widget/result-shell.tsx +478 -0
  117. package/src/features/tools/community-pain-point-extractor/widget/types.ts +33 -0
  118. package/src/features/tools/community-post-risk-checker/community-post-risk-checker.package.ts +792 -0
  119. package/src/features/tools/competitor-analysis/competitor-analysis.container.tsx +136 -0
  120. package/src/features/tools/competitor-analysis/competitor-analysis.spec.ts +15 -0
  121. package/src/features/tools/competitor-analysis/widget/competitor-analysis.tsx +241 -0
  122. package/src/features/tools/competitor-analysis/widget/constants.ts +9 -0
  123. package/src/features/tools/competitor-analysis/widget/index.ts +7 -0
  124. package/src/features/tools/competitor-analysis/widget/preview-panels.tsx +60 -0
  125. package/src/features/tools/competitor-analysis/widget/result-shell.tsx +418 -0
  126. package/src/features/tools/competitor-analysis/widget/types.ts +13 -0
  127. package/src/features/tools/disclaimer-generator/disclaimer-generator.package.ts +339 -0
  128. package/src/features/tools/email-template-generator/email-template-generator.container.tsx +224 -0
  129. package/src/features/tools/email-template-generator/email-template-generator.spec.ts +14 -0
  130. package/src/features/tools/email-template-generator/widget/email-template-generator.tsx +358 -0
  131. package/src/features/tools/email-template-generator/widget/helpers.ts +39 -0
  132. package/src/features/tools/email-template-generator/widget/index.ts +7 -0
  133. package/src/features/tools/email-template-generator/widget/preview-panel.tsx +311 -0
  134. package/src/features/tools/email-template-generator/widget/result-text-block.tsx +7 -0
  135. package/src/features/tools/email-template-generator/widget/types.ts +24 -0
  136. package/src/features/tools/gtm-readiness-checklist/gtm-readiness-checklist.container.tsx +75 -0
  137. package/src/features/tools/gtm-readiness-checklist/gtm-readiness-checklist.spec.ts +15 -0
  138. package/src/features/tools/gtm-readiness-checklist/widget/gtm-readiness-checklist.tsx +122 -0
  139. package/src/features/tools/gtm-readiness-checklist/widget/index.ts +7 -0
  140. package/src/features/tools/investor-matching-planner/investor-matching-planner.package.ts +869 -0
  141. package/src/features/tools/koko-codex-assistant/koko-codex-assistant.container.tsx +151 -0
  142. package/src/features/tools/koko-codex-assistant/koko-codex-assistant.spec.ts +14 -0
  143. package/src/features/tools/koko-codex-assistant/widget/index.ts +7 -0
  144. package/src/features/tools/koko-codex-assistant/widget/koko-codex-assistant-download.tsx +192 -0
  145. package/src/features/tools/logo-generator/logo-generator.container.tsx +112 -0
  146. package/src/features/tools/logo-generator/logo-generator.spec.ts +15 -0
  147. package/src/features/tools/logo-generator/widget/index.ts +7 -0
  148. package/src/features/tools/logo-generator/widget/logo-generator.tsx +1244 -0
  149. package/src/features/tools/market-forecast-report/market-forecast-report.container.tsx +73 -0
  150. package/src/features/tools/market-forecast-report/market-forecast-report.spec.ts +15 -0
  151. package/src/features/tools/million-user-growth-test/million-user-growth-test.container.tsx +123 -0
  152. package/src/features/tools/million-user-growth-test/million-user-growth-test.spec.ts +14 -0
  153. package/src/features/tools/million-user-growth-test/widget/index.ts +7 -0
  154. package/src/features/tools/million-user-growth-test/widget/million-user-growth-test.tsx +433 -0
  155. package/src/features/tools/module-loader.ts +107 -0
  156. package/src/features/tools/og-image-generator/og-image-generator.container.tsx +86 -0
  157. package/src/features/tools/og-image-generator/og-image-generator.spec.ts +14 -0
  158. package/src/features/tools/og-image-generator/widget/constants.ts +38 -0
  159. package/src/features/tools/og-image-generator/widget/form-fields.tsx +240 -0
  160. package/src/features/tools/og-image-generator/widget/index.ts +7 -0
  161. package/src/features/tools/og-image-generator/widget/og-image-generator.tsx +742 -0
  162. package/src/features/tools/og-image-generator/widget/preview-panel.tsx +305 -0
  163. package/src/features/tools/og-image-generator/widget/types.ts +1 -0
  164. package/src/features/tools/package/direct-models.ts +20 -0
  165. package/src/features/tools/package/form.ts +38 -0
  166. package/src/features/tools/package/l10n.ts +22 -0
  167. package/src/features/tools/package/package-container.tsx +285 -0
  168. package/src/features/tools/package/package-loaders.ts +22 -0
  169. package/src/features/tools/package/package-registry.ts +36 -0
  170. package/src/features/tools/package/result-markdown.ts +142 -0
  171. package/src/features/tools/package/schema.ts +379 -0
  172. package/src/features/tools/package/to-tool-module.ts +20 -0
  173. package/src/features/tools/package/to-tool-spec.ts +52 -0
  174. package/src/features/tools/package/types.ts +381 -0
  175. package/src/features/tools/pitch-deck-generator/pitch-deck-generator.container.tsx +175 -0
  176. package/src/features/tools/pitch-deck-generator/pitch-deck-generator.spec.ts +14 -0
  177. package/src/features/tools/pitch-deck-generator/pitch-deck-library-data.ts +476 -0
  178. package/src/features/tools/pitch-deck-generator/pitch-deck-library.tsx +159 -0
  179. package/src/features/tools/pitch-deck-generator/widget/ceremony-line.tsx +27 -0
  180. package/src/features/tools/pitch-deck-generator/widget/constants.ts +27 -0
  181. package/src/features/tools/pitch-deck-generator/widget/index.ts +7 -0
  182. package/src/features/tools/pitch-deck-generator/widget/pitch-deck-generator.tsx +763 -0
  183. package/src/features/tools/pitch-deck-generator/widget/result-helpers.ts +102 -0
  184. package/src/features/tools/pitch-deck-generator/widget/result-shell.tsx +263 -0
  185. package/src/features/tools/pitch-deck-generator/widget/slide-frame.tsx +106 -0
  186. package/src/features/tools/pitch-deck-generator/widget/slide-lightbox.tsx +149 -0
  187. package/src/features/tools/pitch-deck-generator/widget/style-option.tsx +54 -0
  188. package/src/features/tools/pitch-deck-generator/widget/types.ts +44 -0
  189. package/src/features/tools/product-agreement-generator/product-agreement-generator.container.tsx +137 -0
  190. package/src/features/tools/product-agreement-generator/product-agreement-generator.spec.ts +14 -0
  191. package/src/features/tools/product-agreement-generator/widget/constants.ts +27 -0
  192. package/src/features/tools/product-agreement-generator/widget/form-controls.tsx +218 -0
  193. package/src/features/tools/product-agreement-generator/widget/helpers.ts +68 -0
  194. package/src/features/tools/product-agreement-generator/widget/index.ts +7 -0
  195. package/src/features/tools/product-agreement-generator/widget/product-agreement-generator.tsx +671 -0
  196. package/src/features/tools/product-agreement-generator/widget/result-shell.tsx +473 -0
  197. package/src/features/tools/product-agreement-generator/widget/types.ts +89 -0
  198. package/src/features/tools/product-hunt-launch-planner/product-hunt-launch-planner.container.tsx +122 -0
  199. package/src/features/tools/product-hunt-launch-planner/product-hunt-launch-planner.spec.ts +15 -0
  200. package/src/features/tools/product-hunt-launch-planner/widget/constants.ts +5 -0
  201. package/src/features/tools/product-hunt-launch-planner/widget/helpers.ts +44 -0
  202. package/src/features/tools/product-hunt-launch-planner/widget/index.ts +7 -0
  203. package/src/features/tools/product-hunt-launch-planner/widget/preview-panel.tsx +143 -0
  204. package/src/features/tools/product-hunt-launch-planner/widget/product-hunt-launch-planner.tsx +504 -0
  205. package/src/features/tools/product-hunt-launch-planner/widget/result-shell.tsx +176 -0
  206. package/src/features/tools/product-hunt-launch-planner/widget/types.ts +20 -0
  207. package/src/features/tools/product-name-generator/product-name-generator.container.tsx +14 -0
  208. package/src/features/tools/product-name-generator/product-name-generator.spec.ts +15 -0
  209. package/src/features/tools/product-name-generator/widget/candidate-card.tsx +273 -0
  210. package/src/features/tools/product-name-generator/widget/constants.ts +21 -0
  211. package/src/features/tools/product-name-generator/widget/form-controls.tsx +136 -0
  212. package/src/features/tools/product-name-generator/widget/helpers.ts +41 -0
  213. package/src/features/tools/product-name-generator/widget/index.ts +7 -0
  214. package/src/features/tools/product-name-generator/widget/product-name-generator.tsx +776 -0
  215. package/src/features/tools/product-name-generator/widget/types.ts +36 -0
  216. package/src/features/tools/product-positioning-analyzer/product-positioning-analyzer.package.ts +801 -0
  217. package/src/features/tools/product-poster-generator/product-poster-generator.container.tsx +14 -0
  218. package/src/features/tools/product-poster-generator/product-poster-generator.spec.ts +15 -0
  219. package/src/features/tools/product-poster-generator/widget/constants.ts +125 -0
  220. package/src/features/tools/product-poster-generator/widget/form-controls.tsx +204 -0
  221. package/src/features/tools/product-poster-generator/widget/helpers.ts +155 -0
  222. package/src/features/tools/product-poster-generator/widget/index.ts +7 -0
  223. package/src/features/tools/product-poster-generator/widget/product-poster-generator.tsx +663 -0
  224. package/src/features/tools/product-poster-generator/widget/result-shell.tsx +12 -0
  225. package/src/features/tools/product-poster-generator/widget/types.ts +83 -0
  226. package/src/features/tools/product-ui-generator/product-ui-generator.container.tsx +116 -0
  227. package/src/features/tools/product-ui-generator/product-ui-generator.spec.ts +14 -0
  228. package/src/features/tools/product-ui-generator/widget/constants.ts +18 -0
  229. package/src/features/tools/product-ui-generator/widget/helpers.ts +11 -0
  230. package/src/features/tools/product-ui-generator/widget/index.ts +7 -0
  231. package/src/features/tools/product-ui-generator/widget/preview-panels.tsx +73 -0
  232. package/src/features/tools/product-ui-generator/widget/product-ui-generator.tsx +304 -0
  233. package/src/features/tools/product-ui-generator/widget/result-shell.tsx +118 -0
  234. package/src/features/tools/product-ui-generator/widget/types.ts +9 -0
  235. package/src/features/tools/reddit-pain-point-finder/reddit-pain-point-finder.container.tsx +113 -0
  236. package/src/features/tools/reddit-pain-point-finder/reddit-pain-point-finder.spec.ts +15 -0
  237. package/src/features/tools/reddit-pain-point-finder/widget/constants.ts +5 -0
  238. package/src/features/tools/reddit-pain-point-finder/widget/index.ts +7 -0
  239. package/src/features/tools/reddit-pain-point-finder/widget/preview-panels.tsx +73 -0
  240. package/src/features/tools/reddit-pain-point-finder/widget/reddit-pain-point-finder.tsx +281 -0
  241. package/src/features/tools/reddit-pain-point-finder/widget/result-shell.tsx +203 -0
  242. package/src/features/tools/reddit-pain-point-finder/widget/types.ts +15 -0
  243. package/src/features/tools/registry.ts +288 -0
  244. package/src/features/tools/runtime-registry.ts +186 -0
  245. package/src/features/tools/shared/create-guide-stack-container.tsx +176 -0
  246. package/src/features/tools/shared/create-standard-landing-container.tsx +163 -0
  247. package/src/features/tools/shared/tool-content-sections.tsx +659 -0
  248. package/src/features/tools/shared/tool-cta.tsx +66 -0
  249. package/src/features/tools/shared/tool-draft-view.tsx +53 -0
  250. package/src/features/tools/shared/tool-guide-section.tsx +191 -0
  251. package/src/features/tools/shared/tool-handoff.tsx +38 -0
  252. package/src/features/tools/shared/tool-mcp-badge.tsx +23 -0
  253. package/src/features/tools/shared/tool-message-translator.ts +37 -0
  254. package/src/features/tools/shared/tool-page-shell.tsx +348 -0
  255. package/src/features/tools/shared/tool-standard-generation-steps.tsx +52 -0
  256. package/src/features/tools/shared/tool-standard-landing-sections.tsx +447 -0
  257. package/src/features/tools/shared/tool-ui-registry.ts +237 -0
  258. package/src/features/tools/shared/tool-widget-slot.tsx +29 -0
  259. package/src/features/tools/slogan-generator/slogan-generator.package.ts +641 -0
  260. package/src/features/tools/social-listening-research-report/social-listening-research-report.container.tsx +124 -0
  261. package/src/features/tools/social-listening-research-report/social-listening-research-report.spec.ts +15 -0
  262. package/src/features/tools/social-listening-research-report/widget/constants.ts +4 -0
  263. package/src/features/tools/social-listening-research-report/widget/index.ts +7 -0
  264. package/src/features/tools/social-listening-research-report/widget/preview-panels.tsx +73 -0
  265. package/src/features/tools/social-listening-research-report/widget/result-shell.tsx +216 -0
  266. package/src/features/tools/social-listening-research-report/widget/social-listening-research-report.tsx +303 -0
  267. package/src/features/tools/social-listening-research-report/widget/types.ts +15 -0
  268. package/src/features/tools/social-platform-asset-adapter/social-platform-asset-adapter.container.tsx +123 -0
  269. package/src/features/tools/social-platform-asset-adapter/social-platform-asset-adapter.spec.ts +15 -0
  270. package/src/features/tools/social-platform-asset-adapter/widget/constants.ts +43 -0
  271. package/src/features/tools/social-platform-asset-adapter/widget/helpers.ts +249 -0
  272. package/src/features/tools/social-platform-asset-adapter/widget/index.ts +7 -0
  273. package/src/features/tools/social-platform-asset-adapter/widget/result-shell.tsx +350 -0
  274. package/src/features/tools/social-platform-asset-adapter/widget/section-heading.tsx +18 -0
  275. package/src/features/tools/social-platform-asset-adapter/widget/social-platform-asset-adapter.tsx +641 -0
  276. package/src/features/tools/social-platform-asset-adapter/widget/types.ts +40 -0
  277. package/src/features/tools/social-profile-kit/social-profile-kit.container.tsx +177 -0
  278. package/src/features/tools/social-profile-kit/social-profile-kit.spec.ts +15 -0
  279. package/src/features/tools/social-profile-kit/widget/context-editor.tsx +171 -0
  280. package/src/features/tools/social-profile-kit/widget/generation-runtime.ts +281 -0
  281. package/src/features/tools/social-profile-kit/widget/index.ts +7 -0
  282. package/src/features/tools/social-profile-kit/widget/input-panel.tsx +294 -0
  283. package/src/features/tools/social-profile-kit/widget/platform-dock.tsx +115 -0
  284. package/src/features/tools/social-profile-kit/widget/profile-canvas.tsx +318 -0
  285. package/src/features/tools/social-profile-kit/widget/profile-preview/bluesky-preview.tsx +188 -0
  286. package/src/features/tools/social-profile-kit/widget/profile-preview/facebook-preview.tsx +168 -0
  287. package/src/features/tools/social-profile-kit/widget/profile-preview/index.ts +1 -0
  288. package/src/features/tools/social-profile-kit/widget/profile-preview/instagram-preview.tsx +278 -0
  289. package/src/features/tools/social-profile-kit/widget/profile-preview/linkedin-preview.tsx +358 -0
  290. package/src/features/tools/social-profile-kit/widget/profile-preview/profile-preview.tsx +348 -0
  291. package/src/features/tools/social-profile-kit/widget/profile-preview/shared.tsx +391 -0
  292. package/src/features/tools/social-profile-kit/widget/profile-preview/threads-preview.tsx +148 -0
  293. package/src/features/tools/social-profile-kit/widget/profile-preview/tiktok-preview.tsx +319 -0
  294. package/src/features/tools/social-profile-kit/widget/profile-preview/x-preview.tsx +341 -0
  295. package/src/features/tools/social-profile-kit/widget/profile-preview/youtube-preview.tsx +297 -0
  296. package/src/features/tools/social-profile-kit/widget/social-profile-kit-generator.tsx +1059 -0
  297. package/src/features/tools/social-profile-kit/widget/types.ts +104 -0
  298. package/src/features/tools/spec-registry.ts +158 -0
  299. package/src/features/tools/startup-idea-research/startup-idea-research.container.tsx +111 -0
  300. package/src/features/tools/startup-idea-research/startup-idea-research.spec.ts +15 -0
  301. package/src/features/tools/startup-idea-research/widget/constants.ts +11 -0
  302. package/src/features/tools/startup-idea-research/widget/index.ts +7 -0
  303. package/src/features/tools/startup-idea-research/widget/preview-panels.tsx +67 -0
  304. package/src/features/tools/startup-idea-research/widget/result-shell.tsx +323 -0
  305. package/src/features/tools/startup-idea-research/widget/startup-idea-research.tsx +272 -0
  306. package/src/features/tools/startup-idea-research/widget/types.ts +21 -0
  307. package/src/features/tools/tarot-reading/tarot-reading.container.tsx +412 -0
  308. package/src/features/tools/tarot-reading/tarot-reading.spec.ts +15 -0
  309. package/src/features/tools/tarot-reading/widget/cards.tsx +152 -0
  310. package/src/features/tools/tarot-reading/widget/constants.ts +69 -0
  311. package/src/features/tools/tarot-reading/widget/deck-view.tsx +86 -0
  312. package/src/features/tools/tarot-reading/widget/deck.ts +86 -0
  313. package/src/features/tools/tarot-reading/widget/index.ts +7 -0
  314. package/src/features/tools/tarot-reading/widget/landing-view.tsx +209 -0
  315. package/src/features/tools/tarot-reading/widget/reading-copy.tsx +138 -0
  316. package/src/features/tools/tarot-reading/widget/reading-view.tsx +189 -0
  317. package/src/features/tools/tarot-reading/widget/reveal-view.tsx +50 -0
  318. package/src/features/tools/tarot-reading/widget/ritual-view.tsx +276 -0
  319. package/src/features/tools/tarot-reading/widget/tarot-reading.tsx +262 -0
  320. package/src/features/tools/tarot-reading/widget/types.ts +22 -0
  321. package/src/features/tools/twitter-gif-downloader/twitter-gif-downloader.container.tsx +114 -0
  322. package/src/features/tools/twitter-gif-downloader/twitter-gif-downloader.spec.ts +14 -0
  323. package/src/features/tools/twitter-gif-downloader/widget/index.ts +7 -0
  324. package/src/features/tools/twitter-gif-downloader/widget/twitter-gif-downloader.tsx +351 -0
  325. package/src/features/tools/types.ts +68 -0
  326. package/src/features/tools/user-interview-guide-generator/user-interview-guide-generator.package.ts +774 -0
  327. package/src/features/tools/user-interview-insight-report-generator/user-interview-insight-report-generator.container.tsx +23 -0
  328. package/src/features/tools/user-interview-insight-report-generator/user-interview-insight-report-generator.spec.ts +14 -0
  329. package/src/features/tools/user-interview-insight-report-generator/widget/constants.ts +8 -0
  330. package/src/features/tools/user-interview-insight-report-generator/widget/helpers.ts +4 -0
  331. package/src/features/tools/user-interview-insight-report-generator/widget/index.ts +7 -0
  332. package/src/features/tools/user-interview-insight-report-generator/widget/preview-panels.tsx +55 -0
  333. package/src/features/tools/user-interview-insight-report-generator/widget/result-shell.tsx +122 -0
  334. package/src/features/tools/user-interview-insight-report-generator/widget/types.ts +16 -0
  335. package/src/features/tools/user-interview-insight-report-generator/widget/user-interview-insight-report-generator.tsx +293 -0
  336. package/src/features/tools/user-interview-record-generator/user-interview-record-generator.container.tsx +18 -0
  337. package/src/features/tools/user-interview-record-generator/user-interview-record-generator.spec.ts +14 -0
  338. package/src/features/tools/user-interview-record-generator/widget/constants.ts +9 -0
  339. package/src/features/tools/user-interview-record-generator/widget/helpers.ts +4 -0
  340. package/src/features/tools/user-interview-record-generator/widget/index.ts +7 -0
  341. package/src/features/tools/user-interview-record-generator/widget/preview-panels.tsx +48 -0
  342. package/src/features/tools/user-interview-record-generator/widget/result-shell.tsx +128 -0
  343. package/src/features/tools/user-interview-record-generator/widget/types.ts +16 -0
  344. package/src/features/tools/user-interview-record-generator/widget/user-interview-record-generator.tsx +305 -0
  345. package/src/features/tools/utm-builder/utm-builder.package.ts +846 -0
  346. package/src/features/tools/widget-registry.ts +73 -0
  347. package/src/generated/mcp-tools-registry.json +17 -0
  348. package/src/host/client-proxy.test.ts +33 -0
  349. package/src/host/client.ts +678 -0
  350. package/src/host/server.ts +119 -0
  351. package/src/i18n/client.ts +11 -0
  352. package/src/i18n/locale-fallback.ts +38 -0
  353. package/src/i18n/locale.ts +18 -0
  354. package/src/i18n/messages/en/page/tools.ts +124 -0
  355. package/src/i18n/messages/en/tools/app-icon-resizer.ts +244 -0
  356. package/src/i18n/messages/en/tools/app-store-screenshot-generator.ts +145 -0
  357. package/src/i18n/messages/en/tools/build-in-public-story-generator.ts +229 -0
  358. package/src/i18n/messages/en/tools/cold-start-channel-selector.ts +423 -0
  359. package/src/i18n/messages/en/tools/commercial-bp-generator.ts +304 -0
  360. package/src/i18n/messages/en/tools/community-feedback-inbox.ts +218 -0
  361. package/src/i18n/messages/en/tools/community-pain-point-extractor.ts +230 -0
  362. package/src/i18n/messages/en/tools/community-post-risk-checker.ts +209 -0
  363. package/src/i18n/messages/en/tools/competitor-analysis.ts +197 -0
  364. package/src/i18n/messages/en/tools/email-template-generator.ts +302 -0
  365. package/src/i18n/messages/en/tools/engine.ts +69 -0
  366. package/src/i18n/messages/en/tools/gtm-readiness-checklist.ts +166 -0
  367. package/src/i18n/messages/en/tools/index.ts +73 -0
  368. package/src/i18n/messages/en/tools/koko-codex-assistant.ts +171 -0
  369. package/src/i18n/messages/en/tools/logo-generator.ts +173 -0
  370. package/src/i18n/messages/en/tools/market-forecast-report.ts +228 -0
  371. package/src/i18n/messages/en/tools/million-user-growth-test.ts +386 -0
  372. package/src/i18n/messages/en/tools/og-image-generator.ts +172 -0
  373. package/src/i18n/messages/en/tools/pitch-deck-generator.ts +358 -0
  374. package/src/i18n/messages/en/tools/product-agreement-generator.ts +411 -0
  375. package/src/i18n/messages/en/tools/product-hunt-launch-planner.ts +272 -0
  376. package/src/i18n/messages/en/tools/product-name-generator.ts +383 -0
  377. package/src/i18n/messages/en/tools/product-poster-generator.ts +294 -0
  378. package/src/i18n/messages/en/tools/product-ui-generator.ts +234 -0
  379. package/src/i18n/messages/en/tools/reddit-pain-point-finder.ts +163 -0
  380. package/src/i18n/messages/en/tools/shared.ts +24 -0
  381. package/src/i18n/messages/en/tools/social-listening-research-report.ts +185 -0
  382. package/src/i18n/messages/en/tools/social-media-profile-generator.ts +22 -0
  383. package/src/i18n/messages/en/tools/social-platform-asset-adapter.ts +287 -0
  384. package/src/i18n/messages/en/tools/social-profile-kit.ts +150 -0
  385. package/src/i18n/messages/en/tools/startup-idea-research.ts +170 -0
  386. package/src/i18n/messages/en/tools/tarot-reading.ts +230 -0
  387. package/src/i18n/messages/en/tools/twitter-gif-downloader.ts +145 -0
  388. package/src/i18n/messages/en/tools/user-interview-insight-report-generator.ts +242 -0
  389. package/src/i18n/messages/en/tools/user-interview-record-generator.ts +244 -0
  390. package/src/i18n/messages/en/tools-ui.ts +704 -0
  391. package/src/i18n/messages/zh/page/tools.ts +124 -0
  392. package/src/i18n/messages/zh/tools/app-icon-resizer.ts +242 -0
  393. package/src/i18n/messages/zh/tools/app-store-screenshot-generator.ts +145 -0
  394. package/src/i18n/messages/zh/tools/build-in-public-story-generator.ts +230 -0
  395. package/src/i18n/messages/zh/tools/cold-start-channel-selector.ts +422 -0
  396. package/src/i18n/messages/zh/tools/commercial-bp-generator.ts +302 -0
  397. package/src/i18n/messages/zh/tools/community-feedback-inbox.ts +217 -0
  398. package/src/i18n/messages/zh/tools/community-pain-point-extractor.ts +230 -0
  399. package/src/i18n/messages/zh/tools/community-post-risk-checker.ts +200 -0
  400. package/src/i18n/messages/zh/tools/competitor-analysis.ts +192 -0
  401. package/src/i18n/messages/zh/tools/email-template-generator.ts +302 -0
  402. package/src/i18n/messages/zh/tools/engine.ts +68 -0
  403. package/src/i18n/messages/zh/tools/gtm-readiness-checklist.ts +166 -0
  404. package/src/i18n/messages/zh/tools/index.ts +73 -0
  405. package/src/i18n/messages/zh/tools/koko-codex-assistant.ts +170 -0
  406. package/src/i18n/messages/zh/tools/logo-generator.ts +172 -0
  407. package/src/i18n/messages/zh/tools/market-forecast-report.ts +228 -0
  408. package/src/i18n/messages/zh/tools/million-user-growth-test.ts +385 -0
  409. package/src/i18n/messages/zh/tools/og-image-generator.ts +173 -0
  410. package/src/i18n/messages/zh/tools/pitch-deck-generator.ts +358 -0
  411. package/src/i18n/messages/zh/tools/product-agreement-generator.ts +401 -0
  412. package/src/i18n/messages/zh/tools/product-hunt-launch-planner.ts +267 -0
  413. package/src/i18n/messages/zh/tools/product-name-generator.ts +383 -0
  414. package/src/i18n/messages/zh/tools/product-poster-generator.ts +282 -0
  415. package/src/i18n/messages/zh/tools/product-ui-generator.ts +234 -0
  416. package/src/i18n/messages/zh/tools/reddit-pain-point-finder.ts +162 -0
  417. package/src/i18n/messages/zh/tools/shared.ts +24 -0
  418. package/src/i18n/messages/zh/tools/social-listening-research-report.ts +181 -0
  419. package/src/i18n/messages/zh/tools/social-media-profile-generator.ts +22 -0
  420. package/src/i18n/messages/zh/tools/social-platform-asset-adapter.ts +284 -0
  421. package/src/i18n/messages/zh/tools/social-profile-kit.ts +150 -0
  422. package/src/i18n/messages/zh/tools/startup-idea-research.ts +165 -0
  423. package/src/i18n/messages/zh/tools/tarot-reading.ts +228 -0
  424. package/src/i18n/messages/zh/tools/twitter-gif-downloader.ts +138 -0
  425. package/src/i18n/messages/zh/tools/user-interview-insight-report-generator.ts +224 -0
  426. package/src/i18n/messages/zh/tools/user-interview-record-generator.ts +226 -0
  427. package/src/i18n/messages/zh/tools-ui.ts +684 -0
  428. package/src/i18n/messages/zh-tw/page/tools.ts +115 -0
  429. package/src/i18n/messages/zh-tw/tools/app-icon-resizer.ts +242 -0
  430. package/src/i18n/messages/zh-tw/tools/app-store-screenshot-generator.ts +145 -0
  431. package/src/i18n/messages/zh-tw/tools/build-in-public-story-generator.ts +230 -0
  432. package/src/i18n/messages/zh-tw/tools/cold-start-channel-selector.ts +440 -0
  433. package/src/i18n/messages/zh-tw/tools/commercial-bp-generator.ts +302 -0
  434. package/src/i18n/messages/zh-tw/tools/community-feedback-inbox.ts +217 -0
  435. package/src/i18n/messages/zh-tw/tools/community-pain-point-extractor.ts +230 -0
  436. package/src/i18n/messages/zh-tw/tools/community-post-risk-checker.ts +200 -0
  437. package/src/i18n/messages/zh-tw/tools/competitor-analysis.ts +192 -0
  438. package/src/i18n/messages/zh-tw/tools/email-template-generator.ts +302 -0
  439. package/src/i18n/messages/zh-tw/tools/engine.ts +68 -0
  440. package/src/i18n/messages/zh-tw/tools/gtm-readiness-checklist.ts +166 -0
  441. package/src/i18n/messages/zh-tw/tools/index.ts +73 -0
  442. package/src/i18n/messages/zh-tw/tools/koko-codex-assistant.ts +170 -0
  443. package/src/i18n/messages/zh-tw/tools/logo-generator.ts +71 -0
  444. package/src/i18n/messages/zh-tw/tools/market-forecast-report.ts +228 -0
  445. package/src/i18n/messages/zh-tw/tools/million-user-growth-test.ts +385 -0
  446. package/src/i18n/messages/zh-tw/tools/og-image-generator.ts +173 -0
  447. package/src/i18n/messages/zh-tw/tools/pitch-deck-generator.ts +358 -0
  448. package/src/i18n/messages/zh-tw/tools/product-agreement-generator.ts +401 -0
  449. package/src/i18n/messages/zh-tw/tools/product-hunt-launch-planner.ts +267 -0
  450. package/src/i18n/messages/zh-tw/tools/product-name-generator.ts +383 -0
  451. package/src/i18n/messages/zh-tw/tools/product-poster-generator.ts +282 -0
  452. package/src/i18n/messages/zh-tw/tools/product-ui-generator.ts +234 -0
  453. package/src/i18n/messages/zh-tw/tools/reddit-pain-point-finder.ts +162 -0
  454. package/src/i18n/messages/zh-tw/tools/shared.ts +24 -0
  455. package/src/i18n/messages/zh-tw/tools/social-listening-research-report.ts +181 -0
  456. package/src/i18n/messages/zh-tw/tools/social-media-profile-generator.ts +22 -0
  457. package/src/i18n/messages/zh-tw/tools/social-platform-asset-adapter.ts +284 -0
  458. package/src/i18n/messages/zh-tw/tools/social-profile-kit.ts +150 -0
  459. package/src/i18n/messages/zh-tw/tools/startup-idea-research.ts +165 -0
  460. package/src/i18n/messages/zh-tw/tools/tarot-reading.ts +228 -0
  461. package/src/i18n/messages/zh-tw/tools/twitter-gif-downloader.ts +138 -0
  462. package/src/i18n/messages/zh-tw/tools/user-interview-insight-report-generator.ts +224 -0
  463. package/src/i18n/messages/zh-tw/tools/user-interview-record-generator.ts +226 -0
  464. package/src/i18n/messages/zh-tw/tools-ui.ts +525 -0
  465. package/src/index.ts +15 -0
  466. package/src/lib/activity-task-handoff.ts +404 -0
  467. package/src/lib/api/errors.ts +39 -0
  468. package/src/lib/app-origin.ts +30 -0
  469. package/src/lib/fact-claim-contract.ts +68 -0
  470. package/src/lib/fake-delay.ts +3 -0
  471. package/src/lib/file/download.ts +10 -0
  472. package/src/lib/routing/locale-paths.ts +27 -0
  473. package/src/lib/seo-meta.ts +3 -0
  474. package/src/lib/tools/app-icon-resizer-schema.ts +191 -0
  475. package/src/lib/tools/app-store-screenshot-generator-schema.ts +185 -0
  476. package/src/lib/tools/build-in-public-story-generator-schema.ts +67 -0
  477. package/src/lib/tools/build-in-public-story-generator.format.ts +507 -0
  478. package/src/lib/tools/cold-start-channel-selector-schema.ts +147 -0
  479. package/src/lib/tools/commercial-bp-generator-schema.ts +222 -0
  480. package/src/lib/tools/community-feedback-inbox-schema.ts +125 -0
  481. package/src/lib/tools/community-feedback-inbox.format.ts +764 -0
  482. package/src/lib/tools/community-pain-point-extractor-schema.ts +166 -0
  483. package/src/lib/tools/community-post-risk-checker-schema.ts +99 -0
  484. package/src/lib/tools/community-post-risk-checker.format.ts +557 -0
  485. package/src/lib/tools/competitor-analysis-schema.ts +144 -0
  486. package/src/lib/tools/draft-preview-access.ts +3 -0
  487. package/src/lib/tools/draft-store.ts +69 -0
  488. package/src/lib/tools/email-template-generator-schema.ts +124 -0
  489. package/src/lib/tools/gtm-checklist-copy.ts +57 -0
  490. package/src/lib/tools/gtm-checklist-structure.ts +37 -0
  491. package/src/lib/tools/image-download.ts +68 -0
  492. package/src/lib/tools/input-quality.ts +97 -0
  493. package/src/lib/tools/logo-generator-schema.ts +224 -0
  494. package/src/lib/tools/market-forecast-report-schema.ts +299 -0
  495. package/src/lib/tools/mcp-registry.ts +16 -0
  496. package/src/lib/tools/mcp-types.ts +18 -0
  497. package/src/lib/tools/million-user-growth-test-schema.ts +49 -0
  498. package/src/lib/tools/million-user-growth-test.ts +181 -0
  499. package/src/lib/tools/og-image-generator-render.ts +448 -0
  500. package/src/lib/tools/og-image-generator-schema.ts +140 -0
  501. package/src/lib/tools/ops-catalog.ts +102 -0
  502. package/src/lib/tools/pitch-deck-generator-schema.ts +182 -0
  503. package/src/lib/tools/pitch-deck-package.ts +0 -0
  504. package/src/lib/tools/product-agreement-generator-schema.ts +168 -0
  505. package/src/lib/tools/product-hunt-launch-planner-schema.ts +136 -0
  506. package/src/lib/tools/product-hunt-launch-planner.format.ts +72 -0
  507. package/src/lib/tools/product-name-generator-schema.ts +563 -0
  508. package/src/lib/tools/product-poster-generator-schema.ts +215 -0
  509. package/src/lib/tools/product-ui-generator-schema.ts +157 -0
  510. package/src/lib/tools/reddit-pain-point-finder-schema.ts +88 -0
  511. package/src/lib/tools/resolve-tool-locale-copy.ts +75 -0
  512. package/src/lib/tools/slug.ts +60 -0
  513. package/src/lib/tools/social-listening-research-report-schema.ts +105 -0
  514. package/src/lib/tools/social-platform-asset-adapter-schema.ts +152 -0
  515. package/src/lib/tools/social-profile-kit.constants.ts +12 -0
  516. package/src/lib/tools/social-profile-kit.generation.ts +257 -0
  517. package/src/lib/tools/social-profile-kit.input.ts +290 -0
  518. package/src/lib/tools/social-profile-kit.manual.ts +481 -0
  519. package/src/lib/tools/social-profile-kit.package.ts +220 -0
  520. package/src/lib/tools/social-profile-kit.schema.ts +328 -0
  521. package/src/lib/tools/startup-idea-research-schema.ts +107 -0
  522. package/src/lib/tools/tarot-imagery.ts +89 -0
  523. package/src/lib/tools/tarot-reading.ts +1044 -0
  524. package/src/lib/tools/tool-message-keys.ts +18 -0
  525. package/src/lib/tools/types.ts +32 -0
  526. package/src/lib/tools/user-interview.format.ts +147 -0
  527. package/src/lib/tools/user-interview.generation.ts +670 -0
  528. package/src/lib/tools/user-interview.schema.ts +192 -0
  529. package/src/lib/zip.ts +106 -0
  530. package/src/services/tools/handlers/gtm-readiness-checklist.ts +71 -0
  531. package/src/services/tools/handlers/types.ts +7 -0
@@ -0,0 +1,124 @@
1
+ const tools = {
2
+ meta: {
3
+ title: "免费在线工具:产品、营销与内容",
4
+ description:
5
+ "免费使用产品起名、市场调研、App 上架图和社媒内容等在线工具。",
6
+ },
7
+ eyebrow: "全部工具",
8
+ title: "免费工具,帮你完成产品、营销与内容任务",
9
+ heroTitle: "用可执行工具,把上线前的 GTM 工作跑清楚",
10
+ description:
11
+ "产品起名、市场调研、App 上架图和社媒内容等工具都在这里,选择一个即可开始。",
12
+ toolsCount: "{count} 个工具可免费使用",
13
+ filters: {
14
+ all: "全部工具",
15
+ build: "制作与上线",
16
+ research: "调研与规划",
17
+ promote: "推广与内容",
18
+ utilities: "实用工具",
19
+ fun: "趣味工具",
20
+ other: "其他工具",
21
+ },
22
+ primaryCta: "查看精选工具",
23
+ secondaryCta: "浏览全部工具",
24
+ navLabel: "工具",
25
+ navAll: "全部工具",
26
+ navFeatured: "精选",
27
+ navCategories: "分类",
28
+ featuredLabel: "精选工具",
29
+ featuredHint: "从输入到可执行结果",
30
+ openTool: "使用工具",
31
+ allIntro: "按你的当前任务选择工具:先命名、再自检、再补齐上架图和社媒素材。",
32
+ all: "全部工具",
33
+ stats: {
34
+ tools: "可用工具",
35
+ categories: "工具分类",
36
+ updated: "最近更新",
37
+ },
38
+ updated: "更新于",
39
+ readingTime: "阅读时间",
40
+ types: {
41
+ calculator: "计算器",
42
+ downloader: "下载器",
43
+ generator: "生成器",
44
+ analyzer: "分析器",
45
+ tester: "测试器",
46
+ },
47
+ workflowEyebrow: "从任务到下一步",
48
+ workflowTitle: "每个工具都把输入、结果和下一步串起来",
49
+ workflowDescription:
50
+ "先确认你当前要完成什么,再进入工具工作台拿到可复制、可下载或可继续复核的结果。",
51
+ workflowSteps: [
52
+ {
53
+ title: "确认当前任务",
54
+ body: "每个工具都说明适合什么阶段、需要输入什么,以及哪些情况不适合使用。",
55
+ },
56
+ {
57
+ title: "直接进入工作台",
58
+ body: "把输入区、操作按钮和结果状态放在核心位置,让你快速拿到可用产出。",
59
+ },
60
+ {
61
+ title: "带着结果往前走",
62
+ body: "命名、自检、上架图和社媒素材可以串成一条发布前准备路径。",
63
+ },
64
+ ],
65
+ chooserTitle: "不知道先用哪个工具?",
66
+ chooserIntro:
67
+ "按当前卡点选择工具,而不是按功能名硬选。每个工具都会说明需要输入什么、能得到什么,以及结果下一步怎么用。",
68
+ chooserItems: [
69
+ {
70
+ title: "还没确定产品名",
71
+ body: "先用产品取名器,把产品想法、目标用户和域名偏好转成可比较的候选名,再决定要不要继续深查。",
72
+ },
73
+ {
74
+ title: "准备开始对外推广",
75
+ body: "用 GTM 就绪度自检清单检查定位、渠道、素材和衡量指标,先补影响上线的缺口。",
76
+ },
77
+ {
78
+ title: "需要应用商店素材",
79
+ body: "上传产品 URL 或 UI 截图,先生成 Apple App Store 或 Google Play 上架图方向,再继续精修。",
80
+ },
81
+ {
82
+ title: "要保存社媒动图素材",
83
+ body: "粘贴公开 X/Twitter 链接,把帖子里的动图视频源转换成 GIF 或保留 MP4 源文件。",
84
+ },
85
+ ],
86
+ standardsEyebrow: "为什么选 Tomako",
87
+ standardsTitle: "好工具不是模板堆叠,而是把当前任务收束成可用结果",
88
+ standardsIntro:
89
+ "Tomako 的工具页会先说明适合谁、需要输入什么、会得到什么,再把结果、边界和下一步放到同一个页面里。这样你不必在文章、脚本、插件和临时模板之间来回切换。",
90
+ standardItems: [
91
+ {
92
+ title: "输入边界清楚",
93
+ body: "每个工具都会说明支持什么链接、文本、截图或产品信息,也会写出不适合使用的情况,避免你提交后才发现方向不对。",
94
+ },
95
+ {
96
+ title: "结果能直接带走",
97
+ body: "输出优先做成可复制、可下载、可预览或可复核的形态,而不是只给一段泛泛建议。",
98
+ },
99
+ {
100
+ title: "失败和风险不藏起来",
101
+ body: "下载、转换、生成和分析类任务都会把失败原因、平台限制、版权/隐私边界或人工复核要求写清楚。",
102
+ },
103
+ ],
104
+ faqTitle: "使用这些免费 GTM 工具前常见的问题",
105
+ faqItems: [
106
+ {
107
+ question: "这些工具适合什么阶段使用?",
108
+ answer:
109
+ "更适合产品从想法走向发布前后的阶段:命名、上线检查、应用商店素材、社媒素材整理和增长准备。它们不是泛营销模板,而是围绕一个明确任务给出可复制或可下载的结果。",
110
+ },
111
+ {
112
+ question: "是否需要登录或付费?",
113
+ answer:
114
+ "当前公开工具页可以直接打开使用。部分生成或分析工具可能需要等待结果生成;下载、转换、清单类工具会尽量把输入和结果放在页面里即时完成。",
115
+ },
116
+ {
117
+ question: "结果可以直接发布吗?",
118
+ answer:
119
+ "工具结果适合作为上线前草案、检查清单或素材起点。涉及品牌、合规、商店审核或第三方平台内容时,发布前仍应结合真实产品信息、平台规则和人工复核。",
120
+ },
121
+ ],
122
+ } as const;
123
+
124
+ export default tools;
@@ -0,0 +1,242 @@
1
+ const appIconResizer = {
2
+ meta: {
3
+ title: "App Icon 切图:iOS 与 Android 尺寸包",
4
+ description:
5
+ "上传一张 App Icon,本地切出 iOS / App Store / Google Play / Android 尺寸包,并打包 ZIP 下载。",
6
+ intro: "为 App 上架和工程交付准备图标资源。上传 1024px+ 方形源图,选择 Apple、Google Play 或双平台尺寸包,源图不上传服务器。",
7
+ category: "App 上架工具",
8
+ keywords: [
9
+ "app icon 切图",
10
+ "App Store icon",
11
+ "Google Play icon",
12
+ "iOS AppIcon",
13
+ "Android mipmap",
14
+ ],
15
+ inputSignal: "PNG、JPG 或 WebP 图标源文件",
16
+ outputSignal: "AppIcon.appiconset、App Store 1024、Google Play 512、Android mipmap、README、ZIP",
17
+ boundarySignal: "浏览器本地处理;不生成 adaptive icon;需复核平台最新规则和品牌版权",
18
+ },
19
+ guide: {
20
+ heroVisualAlt:
21
+ "App Icon 资源包视觉图,展示一个源图标导出为商店提交图标、Xcode 资源和 Android launcher 文件。",
22
+ workspaceHeading: "App Icon 切图",
23
+ workspaceHint:
24
+ "上传源图,本地生成商店与工程图标 ZIP。",
25
+ workspaceBadge: "PNG + ZIP",
26
+ standard: {
27
+ benefits: {
28
+ title: "这个 App Icon 切图工具能带来什么",
29
+ cards: [
30
+ {
31
+ title: "一张源图覆盖多端",
32
+ body: "一次生成 Xcode AppIcon、App Store 1024、Google Play 512 和 Android mipmap,减少重复导出。",
33
+ },
34
+ {
35
+ title: "尺寸与目录自动整理",
36
+ body: "按 Apple、Google Play 或双平台分组、命名和打包,设计与研发更容易拿到正确文件。",
37
+ },
38
+ {
39
+ title: "本地生成,先看再下",
40
+ body: "源图不上传服务器;先在透明网格中检查裁切、边缘和体积风险,再下载 PNG 或 ZIP。",
41
+ },
42
+ ],
43
+ },
44
+ imageTextSections: [
45
+ {
46
+ id: "icon-package",
47
+ title: "一张源图\n生成完整尺寸包",
48
+ body: [
49
+ "App Icon 切图最容易出错的地方不是缩放,而是尺寸、目录和命名混乱。这个工具把 iOS AppIcon.appiconset、App Store 1024、Google Play 512 和 Android mipmap 分组输出。",
50
+ "源图只在浏览器本地读取,生成后你可以直接下载 ZIP,也可以筛选平台逐个复核 PNG。",
51
+ ],
52
+ image: {
53
+ src: "/tools/app-icon-resizer-section-primary-8bit-v3.webp",
54
+ alt: "App Icon 源图生成平台图标尺寸包的 8bit 场景图",
55
+ },
56
+ imageFirst: true,
57
+ },
58
+ {
59
+ id: "platform-scope",
60
+ title: "按平台选择\n不混淆上传图和工程图",
61
+ body: [
62
+ "Apple、Google Play 和 Android 工程资源不是同一个文件。Apple 侧主要交给 Xcode 资产目录,Google Play 需要 512 x 512 商店图,Android launcher 还会按密度分目录。",
63
+ "选择平台范围后,结果区会按平台筛选,方便设计、研发和 ASO 团队确认自己该拿哪一组文件。",
64
+ ],
65
+ image: {
66
+ src: "/tools/app-icon-resizer-section-variation-8bit-v3.webp",
67
+ alt: "App Icon 平台资源包选择的 8bit 场景图",
68
+ },
69
+ },
70
+ {
71
+ id: "handoff-review",
72
+ title: "先预览再下载\n减少上架前返工",
73
+ body: [
74
+ "结果区会用透明网格展示每个 PNG,避免把透明像素误看成灰底。非方形图会居中裁切,过小源图会被拦截。",
75
+ "下载后的 README 会说明每个目录的使用位置,并提醒圆角、阴影、adaptive icon、版权和平台最新规则仍需要人工复核。",
76
+ ],
77
+ image: {
78
+ src: "/tools/app-icon-resizer-section-support-8bit-v3.webp",
79
+ alt: "App Icon 预览复核和 ZIP 下载的 8bit 场景图",
80
+ },
81
+ imageFirst: true,
82
+ },
83
+ ],
84
+ generation: {
85
+ title: "App Icon\n切图流程",
86
+ imageAlt: "上传 App Icon 后选择平台、裁切预览并导出 ZIP 的 8bit 流程图",
87
+ ctaLabel: "生成图标资源包",
88
+ steps: [
89
+ {
90
+ title: "上传一张源图",
91
+ body: "从设计源文件导出方形满版 PNG,或上传 JPG / WebP。Apple 或双平台包需要源图短边至少 1024px。",
92
+ },
93
+ {
94
+ title: "选择平台范围",
95
+ body: "选择 Apple、Google Play 或双平台。工具会自动匹配对应尺寸清单和目录结构。",
96
+ },
97
+ {
98
+ title: "生成 PNG 与 README",
99
+ body: "浏览器本地裁切、缩放、保留透明像素,并写入说明文件,不把源图上传到服务器。",
100
+ },
101
+ {
102
+ title: "复核后下载 ZIP",
103
+ body: "在结果区筛选平台、检查透明网格和体积风险,然后下载完整 ZIP 或单个 PNG。",
104
+ },
105
+ ],
106
+ },
107
+ faqIntro:
108
+ "这些问题帮助你判断源图是否合适、生成的文件怎么用,以及哪些平台边界仍要手动复核。",
109
+ faqCtaLabel: "查看边界",
110
+ },
111
+ whatYouGetHeading: "生成后会得到什么",
112
+ valueVisualAlt: "整理好的 App Icon 文件包,包含 Xcode 资源目录、商店提交图标、Android 工程目录和 ZIP 下载包。",
113
+ whatYouGetItems: [
114
+ {
115
+ title: "Xcode AppIcon.appiconset",
116
+ body: "生成 iPhone、iPad 和 ios-marketing 常用 slots,并附带 Contents.json,方便拖入或替换 Xcode 资产目录。",
117
+ },
118
+ {
119
+ title: "App Store 1024 PNG",
120
+ body: "额外导出 1024 x 1024 PNG,便于上架前复核图标主体、留白、边缘和品牌一致性。",
121
+ },
122
+ {
123
+ title: "Google Play 512 图标",
124
+ body: "输出 Google Play Console store listing 使用的 512 x 512 PNG,并在文件超过 1024KB 时给出风险提示。",
125
+ },
126
+ {
127
+ title: "Android launcher mipmap",
128
+ body: "导出 mdpi 到 xxxhdpi 的 legacy launcher PNG,适合 Android 工程资源或设计交付目录使用。",
129
+ },
130
+ {
131
+ title: "ZIP 与单图下载",
132
+ body: "生成后可以下载完整 ZIP,也可以在结果区筛选 Apple 或 Google Play 资源并单独下载某个 PNG 尺寸。",
133
+ },
134
+ ],
135
+ standardsHeading: "上传前需要知道的平台边界",
136
+ supportVisualAlt: "App icon 尺寸支持范围视觉图,展示 Apple、Google Play 和 Android launcher 文件组。",
137
+ standardsBody: [
138
+ "Apple 侧不是在 App Store Connect 里逐个上传多尺寸图标。官方流程是用 Xcode asset catalog 准备 app icon,再随 build 上传到 App Store Connect。",
139
+ "这个工具会生成 Apple/AppIcon.appiconset 和单独的 Apple/AppStoreIcon-1024.png。前者用于工程接入,后者用于上架前复核和团队交付。",
140
+ "Google Play Console 的 store listing app icon 需要 512 x 512、32-bit PNG、sRGB、最大 1024KB,并应符合 Google Play 图标设计规范。工具会生成 GooglePlay/app-icon-512.png,并提示体积风险。",
141
+ "Android launcher mipmap 是工程资源,不等同于 Google Play 上传图。当前输出 legacy launcher PNG,不生成 adaptive icon 的 foreground/background XML 组合。",
142
+ "上传前不要预先做圆角或外阴影。Apple、Google Play 和 Android launcher 会根据各自平台应用遮罩、圆角或阴影;提前处理可能导致二次裁切。",
143
+ "最稳妥的源图是 1024 x 1024 或更大的方形满版图。非方形图会居中裁切;透明区域会保留,但正式提交前建议复核不同背景下的可读性。",
144
+ ],
145
+ comparisonHeading: "一个好的 App Icon 切图工具应该具备什么",
146
+ comparisonItems: [
147
+ {
148
+ standard: "尺寸准确",
149
+ manual: "手工切图容易漏掉 Xcode slots,或把 Google Play 上传图和 Android launcher 图混在一起。",
150
+ tomako: "按 Apple、Google Play 和 Android 分组生成固定目录,结果区也能按平台筛选复核。",
151
+ },
152
+ {
153
+ standard: "交付省心",
154
+ manual: "设计工具里逐个建画板、导出、改名,很容易在发版前反复返工。",
155
+ tomako: "上传一次即可得到 ZIP、单图下载和 README,适合设计、研发、ASO 团队统一交付。",
156
+ },
157
+ {
158
+ standard: "质量可复核",
159
+ manual: "小源图被无提示放大,非方形图被拉伸,问题常常到商店后台或真机预览才暴露。",
160
+ tomako: "拦截过小源图,非方形图只做居中裁切,并在结果区用透明网格预览每个 PNG。",
161
+ },
162
+ {
163
+ standard: "边界清楚",
164
+ manual: "很多工具只说“App Store 尺寸”,但没有说明 Apple、Google Play 和 Android 工程资源的区别。",
165
+ tomako: "页面和 ZIP 说明会标注各文件的使用位置,并提醒 adaptive icon、圆角、版权和最新平台规则需要复核。",
166
+ },
167
+ {
168
+ standard: "本地处理",
169
+ manual: "在线批量切图可能上传未发布品牌素材,团队难以确认文件去向。",
170
+ tomako: "当前版本在浏览器本地读取、切图和打包,不把 App Icon 源文件上传到服务器。",
171
+ },
172
+ ],
173
+ resultGuidanceHeading: "下载后怎么使用这些图标",
174
+ workflowVisualAlt: "App icon 结果使用视觉图,展示 ZIP、Xcode 资产目录和商店后台上传流转。",
175
+ resultGuidanceBody: [
176
+ "iOS 工程:把 Apple/AppIcon.appiconset 导入或替换到 Xcode asset catalog,再通过 build 提交到 App Store Connect。",
177
+ "App Store 复核:使用 Apple/AppStoreIcon-1024.png 检查主体位置、留白、背景、边缘和不同尺寸下的识别度。",
178
+ "Google Play:上传 GooglePlay/app-icon-512.png 到 Play Console store listing 的 App icon 字段,并确认文件体积不超过平台要求。",
179
+ "Android 工程:把 Android/res/mipmap-* 下的 ic_launcher.png 交给工程使用;如果项目需要 adaptive icon,需要在 Android 工程里另外配置。",
180
+ "如果输出图标显得太小、主体偏移或边缘被裁掉,回到设计源文件调整画布和留白,再重新上传生成。",
181
+ "正式提交前仍要复核平台最新规范、商标/版权授权、透明度、暗黑/浅色背景可读性和品牌规范。",
182
+ ],
183
+ useCasesHeading: "适用场景",
184
+ useCaseItems: [
185
+ "独立开发者在 App Store Connect 和 Google Play Console 上架前准备图标资源包。",
186
+ "设计师把最终 App Icon 交付给 iOS、Android、ASO 或外包团队,减少来回追尺寸文件。",
187
+ "增长或运营团队测试新图标方向时,快速生成可复核、可上传的候选尺寸包。",
188
+ "产品发布前检查工程图标、商店图标和上架截图是否使用同一版视觉资产。",
189
+ "远程团队或外包项目用固定目录和命名降低交付沟通成本。",
190
+ "早期产品或未发布品牌素材在不上传源文件的前提下完成本地切图。",
191
+ ],
192
+ faqHeading: "常见问题",
193
+ faqItems: [
194
+ {
195
+ question: "上传的 App Icon 会保存到服务器吗?",
196
+ answer:
197
+ "不会。当前工具在浏览器本地读取图片、绘制 canvas、生成 PNG 和 ZIP;刷新页面后文件状态会消失,源图不会上传到服务器。",
198
+ },
199
+ {
200
+ question: "生成的图标能直接上传到 App Store 和 Google Play 吗?",
201
+ answer:
202
+ "GooglePlay/app-icon-512.png 面向 Google Play Console 的 App icon 上传要求。Apple 侧更准确的路径是把 AppIcon.appiconset 放入 Xcode,随 build 提交到 App Store Connect。",
203
+ },
204
+ {
205
+ question: "源图应该准备成什么格式和尺寸?",
206
+ answer:
207
+ "推荐上传 1024 x 1024 或更大的方形 PNG。JPG 和 WebP 也支持,但正式交付前建议从设计源文件导出方形满版图,避免压缩、透明或边缘问题。",
208
+ },
209
+ {
210
+ question: "为什么不自动加圆角或阴影?",
211
+ answer:
212
+ "商店和系统会应用自己的遮罩、圆角或阴影。提前把图标做圆角可能导致二次裁切、边缘不齐或不符合平台要求。",
213
+ },
214
+ {
215
+ question: "源图不是方形怎么办?",
216
+ answer:
217
+ "当前会按中心裁成方形,不会拉伸图片。正式交付建议回到设计源文件导出方形满版图,避免主体偏移或边缘被裁掉。",
218
+ },
219
+ {
220
+ question: "透明背景的图标会怎么处理?",
221
+ answer:
222
+ "工具会保留透明像素,并在结果预览里用透明网格展示。正式上架前建议确认图标在浅色、深色和平台遮罩下都能被清楚识别。",
223
+ },
224
+ {
225
+ question: "这个工具会生成 Android adaptive icon 吗?",
226
+ answer:
227
+ "不会。当前输出 Google Play 512 和 legacy launcher mipmap PNG,不生成 adaptive icon 的 foreground/background XML 组合。需要 adaptive icon 时仍要在 Android 工程中按品牌规范配置。",
228
+ },
229
+ {
230
+ question: "图片太小会怎样?",
231
+ answer:
232
+ "选择 Apple 或双平台时,源图短边低于 1024px 会被拦截;只生成 Google Play / Android 时,短边低于 512px 会被拦截。Google Play 512 图标超过 1024KB 时会显示风险提示。",
233
+ },
234
+ ],
235
+ ctaPrimary: "继续做商店截图",
236
+ ctaSecondary: "返回全部工具",
237
+ ctaHint:
238
+ "图标资源准备好后,下一步通常是生成 App Store 和 Google Play 上架截图,让商店视觉保持同一套品牌语言。",
239
+ },
240
+ } as const;
241
+
242
+ export default appIconResizer;
@@ -0,0 +1,145 @@
1
+ const appStoreScreenshotGenerator = {
2
+ meta: {
3
+ title: "App Store / Google Play 上架截图生成器",
4
+ displayTitle: "App Store / Google Play 上架截图生成器",
5
+ description:
6
+ "上传真实 UI 截图并补充产品信息,生成 Apple App Store 或 Google Play 上架截图套图,便于评审与继续精修。",
7
+ intro: "为 App 发布和 ASO 准备商店截图与横版主图,用产品上下文和内置 prompt 生成一套视觉方向,再按平台规则复核。",
8
+ category: "ASO 工具",
9
+ keywords: [
10
+ "应用商店上架图",
11
+ "App Store 截图",
12
+ "Google Play 截图",
13
+ "ASO 素材",
14
+ ],
15
+ },
16
+ guide: {
17
+ heroVisualAlt:
18
+ "应用商店上架图生成器 Hero 视觉图,展示一套应用商店截图。",
19
+ workspaceHeading: "上传 UI 截图生成上架图",
20
+ workspaceHint:
21
+ "上传真实 UI 截图后,云端 Agent 会通过 Skills-OL 抓取补充上下文、规划完整套图并提交真实生图任务。",
22
+ whatYouGetHeading: "生成后会得到什么",
23
+ valueVisualAlt:
24
+ "应用商店上架图导出包,展示多张手机截图、横版主图、PNG 和 SVG 文件。",
25
+ whatYouGetItems: [
26
+ {
27
+ title: "平台尺寸套图",
28
+ body: "按商店规格输出 App Store 最多 10 张截图,或 Google Play feature graphic 加最多 8 张手机图,先看完整套图方向是否成立。",
29
+ },
30
+ {
31
+ title: "可下载 PNG",
32
+ body: "选中某张上架图后可直接下载 PNG,用于团队复核、商店后台上传或设计评审。",
33
+ },
34
+ {
35
+ title: "可交接 SVG 包装",
36
+ body: "需要交给设计侧时下载 SVG 包装文件,保留生成图、尺寸和 prompt 元数据,方便继续复盘和精修。",
37
+ },
38
+ {
39
+ title: "明确的来源边界",
40
+ body: "UI 截图是必填视觉来源;URL 只作为 brief 输入并由 Skills-OL 抓取公开上下文。避免使用真实用户、隐私数据或未授权品牌素材。",
41
+ },
42
+ {
43
+ title: "失败原因提示",
44
+ body: "缺 URL、未上传截图、格式不支持或导出失败时,结果区会给出可恢复提示,而不是生成空素材。",
45
+ },
46
+ ],
47
+ comparisonHeading: "一个好的上架图生成器应该具备什么",
48
+ comparisonItems: [
49
+ {
50
+ standard: "尺寸清楚",
51
+ manual: "手工套模板容易把 App Store 竖图、Google Play 手机图和横版主图混成同一构图。",
52
+ tomako: "先按平台和版式生成对应画布,让你在设计精修前看清每类素材的构图差异。",
53
+ },
54
+ {
55
+ standard: "速度够快",
56
+ manual: "从空白画板开始试风格、尺寸和文案,常常要在设计工具里反复搭骨架。",
57
+ tomako: "上传真实 UI 截图后即可得到一组围绕界面展开的预览,适合先筛方向,再决定是否投入设计精修。",
58
+ },
59
+ {
60
+ standard: "结果可编辑",
61
+ manual: "截图生成器只给扁平 PNG,后续改标题、配色或真实界面时还要重做。",
62
+ tomako: "返回真实生图 PNG,并提供带 prompt 元数据的 SVG 包装,方便先复核方向,再交给设计继续精修。",
63
+ },
64
+ {
65
+ standard: "边界可信",
66
+ manual: "很多工具把生成结果说成可直接上线,忽略商店尺寸、隐私、商标和平台审核风险。",
67
+ tomako: "页面和结果提示都明确正式上传前仍要按最新平台规则和品牌素材复核。",
68
+ },
69
+ {
70
+ standard: "素材安全",
71
+ manual: "上传未发布截图到不确定的在线工具,团队很难判断文件去向。",
72
+ tomako: "页面明确说明上传截图会进入生图任务;正式产品或含隐私内容的截图应先脱敏再使用。",
73
+ },
74
+ ],
75
+ supportHeading: "支持范围与失败边界",
76
+ supportVisualAlt:
77
+ "应用商店素材支持边界视觉图,展示手机图、横版主图、隐私标记和复核清单。",
78
+ supportBody: [
79
+ "必须上传本地 UI 截图;产品 URL、App Store / Google Play 链接、产品名和卖点用于补充标题、描述和页面摘要。",
80
+ "支持 Apple App Store 和 Google Play 两类平台方向,并提供完整截图套图、竖版截图或横版 feature graphic。",
81
+ "当前会通过云端 Agent 调用 Skills-OL,再由 Skills-OL 提交真实生图任务;但不连接 App Store Connect 或 Google Play Console 后台。",
82
+ "如果截图含测试账号、真实用户、隐私数据或未授权品牌,请先脱敏或不要上传。",
83
+ "如果没有结果,先检查 URL 是否为空、上传文件是否为 PNG/JPG/WebP、浏览器是否阻止本地文件读取,以及是否选择了正确的输入来源。",
84
+ "正式上架前仍要复核最新尺寸、审核政策、商标/版权授权、隐私内容、文案承诺和不同设备上的可读性。",
85
+ ],
86
+ resultGuidanceHeading: "下载后怎么使用这些上架图",
87
+ useCaseVisualAlt:
88
+ "产品和设计团队整理应用商店上架图素材,展示截图板、横版主图、配色和导出文件夹。",
89
+ resultGuidanceBody: [
90
+ "把 PNG 当作方向图或评审图,先确认首张截图是否讲清核心收益,再决定是否继续精修。",
91
+ "把 SVG 包装文件交给设计师用于追踪 prompt、尺寸和生成图,再继续替换真实产品截图、品牌字体、正式文案和本地化版本。",
92
+ "App Store 与 Google Play 不要盲目复用同一张图。竖版截图、iPad 图和横版 feature graphic 应分别检查主体比例。",
93
+ "如果生成图看起来信息太满,优先删掉小标签、次要功能和过长副标题,让首屏利益点更清楚。",
94
+ "上传到真实商店后台前,使用最新官方规格和审核指南复查尺寸、内容、隐私、商标、版权和夸张承诺。",
95
+ ],
96
+ useCasesHeading: "适用场景",
97
+ useCaseItems: [
98
+ "独立开发者准备首版 App Store 或 Google Play 上架素材,先确定视觉方向。",
99
+ "增长团队快速比较 ASO 截图、功能卖点图和横版主图的不同风格。",
100
+ "产品团队把新版本 UI 截图转成商店更新素材,用于发布计划或活动页评审。",
101
+ "设计师收到粗糙产品 brief 后,先生成低保真方向,再决定最终画板和截图顺序。",
102
+ "外包或远程团队用 PNG/SVG 对齐文案、构图和品牌色,减少反复沟通。",
103
+ "上架前检查 App Icon、商店截图、社媒素材是否使用同一套品牌语言。",
104
+ ],
105
+ faqHeading: "常见问题",
106
+ faqItems: [
107
+ {
108
+ question: "这个工具会自动抓取产品 URL 吗?",
109
+ answer:
110
+ "会抓取可公开访问页面的 title、description、OG 信息和少量页面摘要,用来推导产品卖点和套图文案。登录后内容、反爬页面或无法访问的 URL 可能抓取失败。",
111
+ },
112
+ {
113
+ question: "上传的 UI 截图会保存到服务器吗?",
114
+ answer:
115
+ "选择 UI 截图模式时,截图会作为参考图提交给生图服务。请不要上传真实用户数据、未脱敏后台、客户信息或未授权品牌素材。",
116
+ },
117
+ {
118
+ question: "生成的 PNG 能直接上传到 App Store 或 Google Play 吗?",
119
+ answer:
120
+ "可以作为团队复核或上传前预览,但正式发布前必须按平台最新尺寸、内容政策、隐私、商标和版权要求复查。不要把生成结果当成最终审核保证。",
121
+ },
122
+ {
123
+ question: "为什么还提供 SVG 下载?",
124
+ answer:
125
+ "当前 SVG 是生成图包装文件,会保留图片引用、尺寸和 prompt 元数据,方便交给设计师复盘方向并继续精修。",
126
+ },
127
+ {
128
+ question: "没有真实产品截图时能用吗?",
129
+ answer:
130
+ "需要先上传真实 UI 截图生成上架图;产品 URL 或产品名只能补充上下文,不能替代真实界面。",
131
+ },
132
+ {
133
+ question: "这个工具会检查最新商店审核规则吗?",
134
+ answer:
135
+ "不会。它负责生成视觉结果,不连接 App Store Connect、Google Play Console 或实时政策接口。正式上传前请按官方后台和最新指南复核。",
136
+ },
137
+ ],
138
+ ctaPrimary: "先切 App Icon",
139
+ ctaSecondary: "返回全部工具",
140
+ ctaHint:
141
+ "商店截图通常和 App Icon 一起评审。如果图标尺寸包还没准备好,可以先生成 App Icon 资源,再回来统一上架图风格。",
142
+ },
143
+ } as const;
144
+
145
+ export default appStoreScreenshotGenerator;