@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,115 @@
1
+ const tools = {
2
+ meta: {
3
+ title: "免費線上工具:產品、行銷與內容",
4
+ description: "免費使用產品命名、市場研究、App 上架圖和社群內容等線上工具。"
5
+ },
6
+ eyebrow: "全部工具",
7
+ title: "免費工具,幫你完成產品、行銷與內容任務",
8
+ description: "產品命名、市場研究、App 上架圖和社群內容等工具都在這裡,選擇一個即可開始。",
9
+ toolsCount: "{count} 個工具可免費使用",
10
+ filters: {
11
+ all: "全部工具",
12
+ build: "製作與上線",
13
+ research: "研究與規劃",
14
+ promote: "推廣與內容",
15
+ utilities: "實用工具",
16
+ fun: "趣味工具",
17
+ other: "其他工具"
18
+ },
19
+ primaryCta: "查看精選工具",
20
+ secondaryCta: "瀏覽全部工具",
21
+ navLabel: "工具",
22
+ navAll: "全部工具",
23
+ navFeatured: "精選",
24
+ navCategories: "分類",
25
+ featuredLabel: "精選工具",
26
+ featuredHint: "從輸入到可執行結果",
27
+ openTool: "使用工具",
28
+ allIntro: "按你的當前任務選擇工具:先命名、再自檢、再補齊上架圖和社媒素材。",
29
+ all: "全部工具",
30
+ stats: {
31
+ tools: "可用工具",
32
+ categories: "工具分類",
33
+ updated: "最近更新"
34
+ },
35
+ updated: "更新於",
36
+ readingTime: "閱讀時間",
37
+ types: {
38
+ calculator: "計算器",
39
+ downloader: "下載器",
40
+ generator: "生成器",
41
+ analyzer: "分析器",
42
+ tester: "測試器"
43
+ },
44
+ workflowEyebrow: "從任務到下一步",
45
+ workflowTitle: "每個工具都把輸入、結果和下一步串起來",
46
+ workflowDescription: "先確認你當前要完成什麼,再進入工具工作臺拿到可複製、可下載或可繼續複核的結果。",
47
+ workflowSteps: [
48
+ {
49
+ title: "確認當前任務",
50
+ body: "每個工具都說明適合什麼階段、需要輸入什麼,以及哪些情況不適合使用。"
51
+ },
52
+ {
53
+ title: "直接進入工作臺",
54
+ body: "把輸入區、操作按鈕和結果狀態放在核心位置,讓你快速拿到可用產出。"
55
+ },
56
+ {
57
+ title: "帶著結果往前走",
58
+ body: "命名、自檢、上架圖和社媒素材可以串成一條發佈前準備路徑。"
59
+ }
60
+ ],
61
+ chooserTitle: "不知道先用哪個工具?",
62
+ chooserIntro: "按當前卡點選擇工具,而不是按功能名硬選。每個工具都會說明需要輸入什麼、能得到什麼,以及結果下一步怎麼用。",
63
+ chooserItems: [
64
+ {
65
+ title: "還沒確定產品名",
66
+ body: "先用產品取名器,把產品想法、目標用戶和域名偏好轉成可比較的候選名,再決定要不要繼續深查。"
67
+ },
68
+ {
69
+ title: "準備開始對外推廣",
70
+ body: "用 GTM 就緒度自檢清單檢查定位、渠道、素材和衡量指標,先補影響上線的缺口。"
71
+ },
72
+ {
73
+ title: "需要應用商店素材",
74
+ body: "上傳產品 URL 或 UI 截圖,先生成 Apple App Store 或 Google Play 上架圖方向,再繼續精修。"
75
+ },
76
+ {
77
+ title: "要保存社媒動圖素材",
78
+ body: "粘貼公開 X/Twitter 鏈接,把帖子裡的動圖視頻源轉換成 GIF 或保留 MP4 源文件。"
79
+ }
80
+ ],
81
+ standardsEyebrow: "為什麼選 Tomako",
82
+ standardsTitle: "好工具不是模板堆疊,而是把當前任務收束成可用結果",
83
+ standardsIntro: "Tomako 的工具頁會先說明適合誰、需要輸入什麼、會得到什麼,再把結果、邊界和下一步放到同一個頁面裡。這樣你不必在文章、腳本、插件和臨時模板之間來回切換。",
84
+ standardItems: [
85
+ {
86
+ title: "輸入邊界清楚",
87
+ body: "每個工具都會說明支持什麼鏈接、文本、截圖或產品信息,也會寫出不適合使用的情況,避免你提交後才發現方向不對。"
88
+ },
89
+ {
90
+ title: "結果能直接帶走",
91
+ body: "輸出優先做成可複製、可下載、可預覽或可複核的形態,而不是隻給一段泛泛建議。"
92
+ },
93
+ {
94
+ title: "失敗和風險不藏起來",
95
+ body: "下載、轉換、生成和分析類任務都會把失敗原因、平臺限制、版權/隱私邊界或人工複核要求寫清楚。"
96
+ }
97
+ ],
98
+ faqTitle: "使用這些免費 GTM 工具前常見的問題",
99
+ faqItems: [
100
+ {
101
+ question: "這些工具適合什麼階段使用?",
102
+ answer: "更適合產品從想法走向發佈前後的階段:命名、上線檢查、應用商店素材、社媒素材整理和增長準備。它們不是泛營銷模板,而是圍繞一個明確任務給出可複製或可下載的結果。"
103
+ },
104
+ {
105
+ question: "是否需要登錄或付費?",
106
+ answer: "當前公開工具頁可以直接打開使用。部分生成或分析工具可能需要等待結果生成;下載、轉換、清單類工具會盡量把輸入和結果放在頁面裡即時完成。"
107
+ },
108
+ {
109
+ question: "結果可以直接發佈嗎?",
110
+ answer: "工具結果適合作為上線前草案、檢查清單或素材起點。涉及品牌、合規、商店審核或第三方平臺內容時,發佈前仍應結合真實產品信息、平臺規則和人工複核。"
111
+ }
112
+ ]
113
+ } as const;
114
+
115
+ 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;