@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,684 @@
1
+ const toolsUi = {
2
+ draftPreview: "草稿预览",
3
+ draftNotFound: "未找到本机草稿。可能已在其他浏览器清除,或 slug 不匹配。",
4
+ loadingDraft: "正在加载草稿…",
5
+ draftSlugHint: "草稿 slug:{slug}",
6
+ backToTools: "返回工具",
7
+ nameGenerator: {
8
+ industryLabel: "行业 / 赛道",
9
+ industryPlaceholder: "例如:开发者工具、跨境电商",
10
+ keywordsLabel: "关键词",
11
+ keywordsHint: "逗号分隔",
12
+ keywordsPlaceholder: "增长, 自动化, 协作",
13
+ styleLabel: "命名风格",
14
+ styleProfessional: "专业",
15
+ stylePlayful: "活泼",
16
+ styleMinimal: "极简",
17
+ generate: "生成名字",
18
+ generating: "生成中…",
19
+ regenerate: "重新生成",
20
+ copy: "复制",
21
+ copied: "已复制",
22
+ emptyTitle: "先生成 8 个候选名",
23
+ emptyHint: "结果会以可复制卡片展示,便于快速筛选、二次组合和做域名检索。",
24
+ },
25
+ socialProfileKit: {
26
+ title: "Profile Kit 账号资料生成器",
27
+ subtitle: "为每个平台生成可编辑、可下载的账号资料包。",
28
+ modes: {
29
+ personalCreator: "个人 / 创作者",
30
+ brandCompany: "品牌 / 公司",
31
+ },
32
+ inputModes: {
33
+ form: "表单",
34
+ prompt: "输入框",
35
+ },
36
+ fields: {
37
+ name: "名称",
38
+ namePlaceholder: "NovaDesk",
39
+ positioning: "你是做什么的?",
40
+ positioningPlaceholder: "面向独立创始人的 AI 工作台",
41
+ audience: "目标受众",
42
+ audiencePlaceholder: "创作者、独立开发者",
43
+ targetMarket: "目标市场",
44
+ brandAsset: "品牌素材",
45
+ brandAssetHint: "上传 Logo 或头像,生成结果会优先沿用你的真实视觉资产。",
46
+ brandAssetEmpty: "上传 Logo 或头像",
47
+ brandAssetRemove: "移除素材",
48
+ tone: "语气",
49
+ prompt: "描述你的账号",
50
+ promptPlaceholder: "描述你是谁、产品是什么、面向谁、希望呈现什么风格。",
51
+ },
52
+ tones: {
53
+ modern: "现代",
54
+ friendly: "亲和",
55
+ professional: "专业",
56
+ bold: "鲜明",
57
+ minimal: "极简",
58
+ },
59
+ targetMarkets: {
60
+ china: "中国 / 中文",
61
+ northAmerica: "北美 / 英文",
62
+ japan: "日本 / 日文",
63
+ europe: "欧洲 / 英文",
64
+ global: "全球 / 英文",
65
+ },
66
+
67
+ platforms: {
68
+ x: "X",
69
+ bluesky: "Bluesky",
70
+ threads: "Threads",
71
+ linkedin: "LinkedIn",
72
+ linkedinCompany: "LinkedIn Company",
73
+ instagram: "Instagram",
74
+ tiktok: "TikTok",
75
+ youtube: "YouTube",
76
+ facebook: "Facebook",
77
+ },
78
+ actions: {
79
+ generate: "生成资料包",
80
+ generating: "正在生成...",
81
+ regenerate: "重新生成",
82
+ copy: "复制",
83
+ copied: "已复制",
84
+ edit: "编辑",
85
+ done: "完成",
86
+ upload: "上传",
87
+ download: "下载",
88
+ downloadKit: "下载资料包",
89
+ replaceColor: "替换颜色",
90
+ downloadAll: "下载全部平台",
91
+ allPlatforms: "全部平台",
92
+ fullKit: "完整资料包",
93
+ currentPlatform: "下载当前",
94
+ follow: "关注",
95
+ message: "私信",
96
+ },
97
+ canvas: {
98
+ desktop: "电脑",
99
+ mobile: "手机",
100
+ light: "浅色",
101
+ dark: "深色",
102
+ zoomIn: "放大",
103
+ zoomOut: "缩小",
104
+ fit: "适应",
105
+ selected: "已选中",
106
+ unsupportedBanner: "这个平台没有账号背景图。",
107
+ },
108
+ elements: {
109
+ avatar: "头像",
110
+ banner: "背景图",
111
+ displayName: "展示名称",
112
+ username: "账号名建议",
113
+ bio: "简介",
114
+ headline: "标题",
115
+ description: "描述",
116
+ },
117
+ status: {
118
+ defaultReady: "手动草稿模板——可以编辑,但不是 Agent 生成结果。",
119
+ generated: "当前预览来自已完成的 Agent 结果。",
120
+ validationError: "生成前请检查必填字段。",
121
+ mockNotice: "当前公开体验以草案预览为主;正式发布前请人工复核授权、商标和平台规则。",
122
+ idle: "点击生成",
123
+ queued: "准备中",
124
+ generating: "生成中",
125
+ ready: "已生成",
126
+ failed: "需重试",
127
+ },
128
+ sections: {
129
+ whatYouGet: "你会得到什么",
130
+ sizes: "平台尺寸规范",
131
+ howItWorks: "生成流程",
132
+ relatedTools: "相关工具",
133
+ faq: "常见问题",
134
+ },
135
+ },
136
+ logoGenerator: {
137
+ formTitle: "Logo brief",
138
+ formHint: "输入网址、产品名和产品介绍,生成更贴合产品语境的 Logo。",
139
+ optional: "可选",
140
+ productUrlLabel: "产品网址",
141
+ productUrlPlaceholder: "https://example.com",
142
+ productNameLabel: "产品名称",
143
+ productNamePlaceholder: "例如:Tomako、FoldOS、LaunchKit",
144
+ contextLabel: "产品介绍与关键词",
145
+ contextPlaceholder: "描述产品定位、用户、差异化,也可以补充希望关联的关键词。",
146
+ industryLabel: "行业 / 赛道",
147
+ industryPlaceholder: "例如:AI 写作、开发者工具",
148
+ audienceLabel: "目标用户",
149
+ audiencePlaceholder: "例如:独立开发者、B2B 销售团队",
150
+ styleLabel: "视觉风格",
151
+ paletteLabel: "配色方向",
152
+ customPaletteLabel: "自定义配色",
153
+ customPaletteHint: "不选择则根据参考图、网址、介绍和产品名自动推导配色。",
154
+ schemeCountLabel: "生成方案数量",
155
+ schemeCountOptions: {
156
+ 1: "1",
157
+ 2: "2",
158
+ 3: "3",
159
+ 4: "4",
160
+ 5: "5",
161
+ },
162
+ formLabel: "Logo 形式",
163
+ advancedSettings: "更多品牌约束",
164
+ preferencesLabel: "品牌偏好",
165
+ preferencesHint: "最多 4 项",
166
+ geometryLabel: "图形语言",
167
+ usageLabel: "主要用途",
168
+ notesLabel: "补充要求",
169
+ notesPlaceholder: "例如:避免太卡通、需要适合深色背景、图形尽量简单。",
170
+ referenceImageLabel: "参考图",
171
+ referenceImageUpload: "上传参考图",
172
+ referenceImageHint: "上传后会先转成真实 http(s) 参考图 URL,再交给在线生图链路使用。",
173
+ referenceImagePreviewAlt: "参考图预览",
174
+ referenceImageRemove: "移除参考图",
175
+ removeCustomColor: "移除颜色",
176
+ generateAgent: "生成 Logo 图片",
177
+ generatingAgent: "正在生成…",
178
+ reset: "重新开始",
179
+ retryAgent: "重试生成",
180
+ conversationTitle: "Logo 生成结果",
181
+ conversationHint: "生成完成后,PNG 原图会以缩略图排列在这里。",
182
+ agentStatus: "真实生图 / 原图下载",
183
+ assistantIntro:
184
+ "告诉我产品网址、名称和介绍,也可以上传参考图或指定自定义配色。生成完成后可以选择方向并下载源文件。",
185
+ userBriefTitle: "我的 logo brief",
186
+ emptyTitle: "先提交一个 logo brief",
187
+ emptyHint: "配置完成后直接点击生成。结果区只展示可预览、可下载的 Logo 图片。",
188
+ emptyBullets: [
189
+ "产品名是唯一必填项。",
190
+ "产品介绍可以补充关键词,帮助提示词理解品牌语境。",
191
+ "可选参考图会先上传成真实 URL。",
192
+ ],
193
+ loadingTitle: "正在提交在线生图任务",
194
+ loadingHint: "正在根据你的配置生成 Logo 图片。",
195
+ awaitingResultTitle: "正在等待图片返回",
196
+ awaitingResultHint: "在线图片服务正在返回 PNG 原图,完成后会自动显示缩略图。",
197
+ statusLabel: "状态:{status}",
198
+ errorTitle: "生成未完成",
199
+ resultTitle: "已生成 {count} 个 Logo 方案",
200
+ resultHint: "点击缩略图可放大预览,选中后可下载 PNG 原图。",
201
+ partialResultTitle: "已生成 {completed}/{total} 个 Logo 方案",
202
+ partialResultHint: "已完成的方案会先显示和下载,剩余图片继续生成中。",
203
+ selectedResult: "已选中该方向,可下载在线图片服务生成的 PNG 原图。",
204
+ selectedEmpty: "先选择一个 logo 方向。",
205
+ implementationTitle: "落地建议",
206
+ reviewTitle: "复核清单",
207
+ limitationsTitle: "能力边界",
208
+ downloadPng: "下载 PNG 原图",
209
+ downloadAllPng: "下载全部",
210
+ convertToSvg: "转为 SVG",
211
+ convertingSvg: "正在转 SVG…",
212
+ downloadSvg: "下载 SVG",
213
+ svgLoadingHint: "正在把选中的 Logo 图片转成可导入 Figma 的 SVG 路径。",
214
+ svgReadyHint: "SVG 已生成,包含 {count} 个矢量路径,可直接下载。",
215
+ downloadError: "下载失败,请重新选择一个结果再试。",
216
+ closePreview: "关闭预览",
217
+ previousPreview: "上一张",
218
+ nextPreview: "下一张",
219
+ errors: {
220
+ required: "请先输入产品名称。",
221
+ customPalette: "自定义配色需要补完整:主色、辅色和强调色都要选择。",
222
+ referenceImage: "参考图读取失败,请换一张 PNG、JPG 或 WebP。",
223
+ gateway: "生成服务暂不可用,请稍后重试。",
224
+ agent: "生成失败,请稍后重试。",
225
+ taskFailed: "生成任务失败,请重试或稍后再试。",
226
+ schema: "结果格式暂时无法展示,请重试生成。",
227
+ resultType: "结果类型暂时无法展示,请重试生成。",
228
+ noResult: "任务已结束,但暂时没有拿到可展示的 logo 候选。",
229
+ svgAgent: "SVG 转换失败,请稍后重试。",
230
+ svgTaskFailed: "SVG 转换任务失败,请重试或稍后再试。",
231
+ svgSchema: "SVG 结果格式暂时无法展示,请重试转换。",
232
+ svgResultType: "SVG 结果类型暂时无法展示,请重试转换。",
233
+ svgNoResult: "任务已结束,但暂时没有拿到可下载的 SVG。",
234
+ },
235
+ styles: {
236
+ minimal: "极简",
237
+ bold: "醒目",
238
+ friendly: "亲和",
239
+ premium: "高级",
240
+ futuristic: "未来感",
241
+ },
242
+ palettes: {
243
+ lime: "荧光绿 + 黑",
244
+ blue: "电蓝 + 天空蓝",
245
+ coral: "橙红 + 柔黄",
246
+ mono: "黑白中性",
247
+ wine: "酒红 + 柔粉",
248
+ custom: "自定义配色",
249
+ },
250
+ customPaletteSlots: {
251
+ primary: "主色",
252
+ secondary: "辅色",
253
+ accent: "强调色",
254
+ },
255
+ forms: {
256
+ combination: "图形 + 字标",
257
+ wordmark: "纯文字",
258
+ symbol: "纯图形",
259
+ },
260
+ preferences: {
261
+ trust: "可信",
262
+ speed: "速度感",
263
+ craft: "手工感",
264
+ ai: "智能感",
265
+ global: "国际化",
266
+ calm: "克制",
267
+ },
268
+ geometries: {
269
+ rounded: "圆润",
270
+ sharp: "锐利",
271
+ organic: "有机",
272
+ },
273
+ usages: {
274
+ web: "官网",
275
+ app: "App 图标",
276
+ social: "社媒头像",
277
+ deck: "融资 / 提案",
278
+ },
279
+ directions: {
280
+ primaryLockup: "主标识组合",
281
+ appIcon: "App 图标",
282
+ wordmark: "字标方向",
283
+ monogram: "首字母符号",
284
+ },
285
+ summary: {
286
+ productUrl: "网址",
287
+ productName: "产品名",
288
+ style: "风格",
289
+ palette: "配色",
290
+ customPalette: "自定义配色",
291
+ form: "形式",
292
+ industry: "行业",
293
+ audience: "用户",
294
+ referenceImage: "参考图",
295
+ },
296
+ },
297
+ ogImageGenerator: {
298
+ chooseTemplate: "选择模板",
299
+ workspaceTitle: "模板属性",
300
+ workspaceHint: "编辑模板属性与背景设置,再导出 Open Graph、X Header 或博客封面图片。",
301
+ templatePropertiesTitle: "模板属性",
302
+ templatePropertiesHint: "自定义可编辑文本、Logo、右下角背景图和模板背景色。",
303
+ backgroundTitle: "背景",
304
+ backgroundHint: "设置画布背景、网格叠加层和噪点纹理。",
305
+ advancedTitle: "AI brief 与导出",
306
+ advancedHint: "可选的 URL、brief、副标题和下载格式设置。",
307
+ sourceUrlLabel: "页面 URL",
308
+ sourceUrlPlaceholder: "https://tomako.ai/tools/...",
309
+ fetchMetadata: "获取 OG 数据",
310
+ metadataLoaded: "运行时页面数据",
311
+ briefLabel: "补充 brief",
312
+ briefPlaceholder: "说明发布场景、目标用户、语气、希望突出什么卖点。",
313
+ presetLabel: "目标尺寸",
314
+ presets: {
315
+ openGraph: {
316
+ label: "Open Graph",
317
+ meta: "1200 x 630 链接预览",
318
+ },
319
+ xHeader: {
320
+ label: "X Header",
321
+ meta: "1500 x 500 账号头图",
322
+ },
323
+ blogFeatured: {
324
+ label: "Blog Featured",
325
+ meta: "1600 x 900 文章封面",
326
+ },
327
+ },
328
+ titleLabel: "标题",
329
+ titlePlaceholder: "用值得点击的预览图发布你的产品",
330
+ subtitleLabel: "副标题",
331
+ subtitlePlaceholder: "补充场景、目标用户、结果或发布信息。",
332
+ tagLabel: "标签",
333
+ tagPlaceholder: "发布, 增长, 社媒",
334
+ brandLabel: "品牌名",
335
+ brandPlaceholder: "Tomako",
336
+ logoTextLabel: "Logo 文本",
337
+ logoTextPlaceholder: "T",
338
+ logoLabel: "Logo",
339
+ chooseLogo: "选择图片",
340
+ logoSelected: "已选择 Logo",
341
+ logoPreviewAlt: "Logo 预览",
342
+ decorImageLabel: "背景图(右下角)",
343
+ chooseDecorImage: "选择图片",
344
+ decorImageSelected: "已选择背景图",
345
+ decorImagePreviewAlt: "背景图预览",
346
+ templateBackgroundColorLabel: "模板背景色",
347
+ backgroundModeLabel: "背景模式",
348
+ backgroundModes: {
349
+ gradient: "渐变",
350
+ solid: "纯色",
351
+ },
352
+ backgroundColorLabel: "背景颜色",
353
+ gridOverlayLabel: "网格叠加",
354
+ gridPatternLabel: "图案",
355
+ gridPatterns: {
356
+ none: "无",
357
+ grid: "网格",
358
+ graph: "坐标图",
359
+ dots: "点阵",
360
+ },
361
+ gridColorLabel: "颜色",
362
+ gridColors: {
363
+ black: "黑色",
364
+ white: "白色",
365
+ gray: "灰色",
366
+ },
367
+ gridOpacityLabel: "不透明度",
368
+ gridBlurLabel: "模糊半径",
369
+ noiseLabel: "噪点",
370
+ fontFamilyLabel: "字体",
371
+ fontWeightLabel: "字重",
372
+ fontSizeLabel: "字号",
373
+ textColorLabel: "文字颜色",
374
+ templateLabel: "模板",
375
+ templates: {
376
+ launch: "发布",
377
+ editorial: "编辑感",
378
+ minimal: "极简",
379
+ bold: "醒目",
380
+ split: "分屏",
381
+ quote: "引用",
382
+ },
383
+ paletteLabel: "配色",
384
+ paletteOption: "应用配色",
385
+ formatLabel: "下载格式",
386
+ formats: {
387
+ png: "PNG",
388
+ jpeg: "JPEG",
389
+ webp: "WebP",
390
+ },
391
+ sizeSummary: "{width} x {height}",
392
+ generateAi: "AI 生成方向",
393
+ aiGenerating: "AI 生成中...",
394
+ generate: "渲染图片",
395
+ generating: "渲染中...",
396
+ reset: "重新开始",
397
+ previewTitle: "实时预览",
398
+ previewHint: "预览按当前比例展示;导出时会渲染精确像素尺寸。",
399
+ aiSuggestionsTitle: "AI 建议方向",
400
+ aiLoadingTitle: "正在生成图片方案",
401
+ aiLoadingHint: "Agent 会在 Skills-OL 运行时抓取 URL metadata,再结合 brief 写回结构化建议。",
402
+ loadingTitle: "正在渲染图片",
403
+ loadingHint: "浏览器正在绘制最终画布并准备图片文件。",
404
+ resultTitle: "图片已生成",
405
+ resultHint: "已在本地生成 {width} x {height} {format} 文件。",
406
+ resultAlt: "生成的社媒图片预览",
407
+ download: "下载图片",
408
+ status: {
409
+ submitting: "正在提交 AI 任务...",
410
+ running: "任务状态:{status}",
411
+ ready: "AI 建议已写回,可选择方向并导出图片。",
412
+ },
413
+ errors: {
414
+ urlRequired: "请先输入一个 http 或 https 页面 URL。",
415
+ metadata: "未能获取该页面的 Open Graph 数据,请检查 URL 是否公开可访问。",
416
+ logo: "未能读取该 Logo 图片,请尝试 PNG、JPG、SVG 或 WebP。",
417
+ decor: "未能读取该背景图片,请尝试 PNG、JPG、SVG 或 WebP。",
418
+ invalidInput: "请填写有实际意义的标题,并检查选项后再生成。",
419
+ placeholder: "请把占位标题替换成真实文案后再导出。",
420
+ generate: "浏览器未能渲染图片。请尝试缩短标题或更换格式。",
421
+ agent: "AI 生成任务未完成,请稍后重试或检查 LLM Task / Skill Result 链路。",
422
+ noResult: "任务已结束,但没有收到结构化 og_image_generation 结果。",
423
+ schema: "Skill Result 结构校验失败,前端未渲染该 AI 结果。",
424
+ resultType: "Skill Result 类型不匹配,前端未渲染该 AI 结果。",
425
+ },
426
+ },
427
+ appStoreScreenshotGenerator: {
428
+ workspaceTitle: "上传 UI 截图生成上架图",
429
+ mockNotice: "走真实生图模型生成;不检查商店后台,正式上传前仍需复核。",
430
+ optional: "可选",
431
+ required: "必填",
432
+ sourceRequired: "可选",
433
+ optionalFormats: "PNG / JPG / WebP,最多 10 张",
434
+ sourceRequiredWithFormats: "PNG / JPG / WebP,最多 10 张",
435
+ optionalLogoFormats: "PNG / JPG / WebP",
436
+ advancedSummary: "品牌素材与视觉设置",
437
+ sourceLabel: "输入来源",
438
+ productContextLabel: "产品信息",
439
+ productUrlLabel: "产品 URL",
440
+ productUrlPlaceholder: "https://tomako.ai/",
441
+ screenshotLabel: "上传 UI 截图",
442
+ chooseScreenshot: "拖拽 UI 截图到这里,或点击上传",
443
+ replaceScreenshot: "替换 UI 截图",
444
+ continueUpload: "继续上传",
445
+ previewScreenshot: "预览第 {index} 张截图",
446
+ removeScreenshot: "删除这张截图",
447
+ closePreview: "关闭预览",
448
+ previousScreenshot: "上一张截图",
449
+ nextScreenshot: "下一张截图",
450
+ screenshotRequiredHint: "PNG / JPG / WebP,最多 10 张",
451
+ uploadedFile: "已选择:{name}",
452
+ uploadedFileWithSize: "已选择:{name}({width} × {height})",
453
+ uploadedFilesWithCount: "已选择 {count} 张:{names}",
454
+ logoLabel: "上传 Logo",
455
+ chooseLogo: "拖拽 Logo 到这里,或点击上传",
456
+ replaceLogo: "替换 Logo",
457
+ uploadedLogoWithSize: "Logo:{name}({width} × {height})",
458
+ productNameLabel: "产品名称",
459
+ productNamePlaceholder: "Tomato",
460
+ benefitsLabel: "想强调的卖点 / 生成方向",
461
+ benefitsPlaceholder:
462
+ "例:这是一款给独立开发者记录灵感和任务的效率工具;核心功能是快速新建记录、标签管理、进度追踪;希望风格干净、轻量、有高级感。",
463
+ assetCountLabel: "生成图片数量",
464
+ assetCountHint: "1-10 张",
465
+ assetCountOptions: {
466
+ 1: "1",
467
+ 2: "2",
468
+ 3: "3",
469
+ 4: "4",
470
+ 5: "5",
471
+ 6: "6",
472
+ 7: "7",
473
+ 8: "8",
474
+ 9: "9",
475
+ 10: "10",
476
+ },
477
+ outputLanguageLabel: "输出语言",
478
+ platformLabel: "商店平台",
479
+ layoutLabel: "输出版式",
480
+ styleLabel: "视觉风格",
481
+ paletteLabel: "配色方向",
482
+ headlineLabel: "主标题",
483
+ headlinePlaceholder: "例如:把每一天安排得更轻松",
484
+ subheadlineLabel: "副标题",
485
+ subheadlinePlaceholder: "一句话解释核心功能或主要收益。",
486
+ generate: "生成上架图",
487
+ generating: "生成中…",
488
+ reset: "重新开始",
489
+ loadingTitle: "正在生成上架图",
490
+ loadingHint: "正在根据你上传的截图生成上架图。",
491
+ loadingPhases: {
492
+ submitting: "准备素材",
493
+ planning: "安排版式",
494
+ generating: "生成图片",
495
+ finalizing: "准备展示",
496
+ },
497
+ progressCount: "已完成 {completed}/{total} 张",
498
+ remainingMinutes: "预计还需约 {minutes} 分钟",
499
+ stillWorking: "仍在处理,已完成图片会保留",
500
+ progressDisclosure: "第一张完成后会立刻出现在这里,后面的图片会继续补上。",
501
+ partialReadyHint: "已完成图片可先预览和下载,剩余图片会继续生成。",
502
+ nextImageLoading: "下一张正在生成",
503
+ nextImageWithTitle: "正在生成:{title}",
504
+ pendingImageLoading: "第 {index} 张上架图正在生成",
505
+ pendingImageShort: "生成中",
506
+ partialStillProcessingWarning:
507
+ "已生成 {successCount}/{totalCount} 张;剩余图片仍在云端处理,当前结果已保留,可稍后重试或重新生成。",
508
+ previewTitle: "上架图预览",
509
+ previewHint: "生成后可选择单张或多张图片下载,全部下载会导出 ZIP 压缩包。",
510
+ emptyTitle: "先上传 UI 截图",
511
+ emptyHint: "上传至少一张真实 UI 截图;产品名称、URL 和卖点可以补充上下文,生成结果会围绕截图展开。",
512
+ downloadTitle: "导出素材",
513
+ downloadHint: "PNG 适合上传商店后台,SVG 适合继续在设计工具里编辑。",
514
+ download: "下载",
515
+ cancelDownloadSelection: "取消",
516
+ downloadAll: "下载全部",
517
+ downloading: "下载中…",
518
+ downloadPng: "下载 PNG",
519
+ downloadSvg: "下载 SVG",
520
+ downloadSelectHint: "请选择要下载的图片。",
521
+ selectForDownload: "选择下载 {title}",
522
+ downloadError: "下载失败,请重新选择图片再试。",
523
+ validationInput: "请上传至少一张 UI 截图。",
524
+ validationProductNameRequired: "请填写产品名称。",
525
+ validationSourceRequired: "请提供产品 URL 或上传 UI 截图。",
526
+ validationScreenshotRequired: "请先上传至少一张真实 UI 截图。",
527
+ validationScreenshotInput: "截图已选择,但截图信息校验失败。请重新选择这些 UI 截图后再生成。",
528
+ validationUrl: "请先输入产品 URL,或切换为上传 UI 截图。",
529
+ validationUpload: "请先上传一张 UI 截图,或切换为输入产品 URL。",
530
+ errorOutput: "生成结果校验失败,请重新生成。",
531
+ partialGenerationWarning:
532
+ "已生成 {successCount} 张,{failedCount} 张失败:{formats}。可先下载成功结果,或切换单一版式后重试。",
533
+ generationError: "Agent 或真实生图任务失败,请稍后重试或减少输入复杂度。",
534
+ generationErrorWithDetail: "Agent 或真实生图任务失败:{detail}",
535
+ generationTimeout: "生图任务等待超时,请稍后重试或检查后端 image task 状态。",
536
+ fileTypeError: "请上传 PNG、JPG 或 WebP 图片。",
537
+ fileReadError: "截图读取失败,请重新上传。",
538
+ defaultProductName: "Your App",
539
+ defaultHeadline: "展示核心功能",
540
+ defaultSubheadline: "用清晰视觉和短文案解释用户为什么要下载。",
541
+ urlSourceLabel: "URL brief",
542
+ screenshotSourceLabel: "UI screenshot",
543
+ sources: {
544
+ url: "产品 URL",
545
+ upload: "UI 截图",
546
+ },
547
+ platforms: {
548
+ apple: "Apple App Store",
549
+ google: "Google Play",
550
+ },
551
+ outputLanguages: {
552
+ zh: "中文",
553
+ en: "English",
554
+ },
555
+ layouts: {
556
+ mixed: "完整套图",
557
+ portrait: "竖版套图",
558
+ feature: "横版主图",
559
+ },
560
+ styles: {
561
+ clean: "干净产品感",
562
+ bold: "高转化醒目",
563
+ editorial: "编辑感高级",
564
+ dark: "深色质感",
565
+ },
566
+ palettes: {
567
+ auto: "自动提取",
568
+ brand: "品牌色优先",
569
+ mono: "黑白中性",
570
+ warm: "暖色高转化",
571
+ cool: "冷色科技感",
572
+ vibrant: "鲜明多彩",
573
+ dark: "深色质感",
574
+ },
575
+ formats: {
576
+ iphone: "iPhone 截图",
577
+ ipad: "iPad 截图",
578
+ googlePhone: "Google Play 手机图",
579
+ featureGraphic: "横版 Feature 图",
580
+ },
581
+ },
582
+ appIconResizer: {
583
+ workspaceTitle: "App Icon 尺寸包",
584
+ workspaceHint: "上传一个标准图标源文件,选择平台范围,生成可下载 ZIP 和单个 PNG。全部在浏览器本地处理。",
585
+ uploadLabel: "上传图标",
586
+ uploadHint: "推荐 1024 x 1024+ 方形 PNG,也支持 JPG / WebP",
587
+ platformLabel: "平台资源包",
588
+ fitLabel: "裁切方式",
589
+ backgroundLabel: "背景色",
590
+ backgroundActive: "用于留白填充",
591
+ backgroundFallback: "用于透明像素",
592
+ generate: "生成图标资源包",
593
+ generating: "正在切图…",
594
+ reset: "重新开始",
595
+ previewTitle: "源图预览",
596
+ sourcePreviewAlt: "上传的 app icon 源图预览。",
597
+ emptyPreviewTitle: "拖拽图标到这里,或点击上传",
598
+ emptyPreviewHint: "推荐上传 1024 x 1024 或更大的方形满版 PNG;JPG、WebP 也可以本地切出平台尺寸。",
599
+ replaceHint: "点击或拖拽可替换源图",
600
+ openPreview: "放大预览源图",
601
+ removeSource: "删除源图",
602
+ previewDialogTitle: "源图预览",
603
+ standardsTitle: "平台资源摘要",
604
+ compactResourceSummary: "将生成 {count} 个 PNG,覆盖 App Store、Google Play 和工程目录常用尺寸。",
605
+ packageSummaries: {
606
+ all: "将生成 {count} 个 PNG:Xcode AppIcon.appiconset、App Store 1024、Google Play 512 和 Android mipmap。",
607
+ apple: "将生成 {count} 个 PNG:Xcode AppIcon.appiconset 全套和单独 App Store 1024 图标。",
608
+ google: "将生成 {count} 个 PNG:Google Play 512 上传图和 Android legacy launcher mipmap。",
609
+ },
610
+ groupMeta: "{count} 个文件,最大 {max}",
611
+ submissionNote: "Apple 资源放入 Xcode 后随 build 提交;GooglePlay/app-icon-512.png 用于 Play Console 的 App icon。",
612
+ cornerNote: "不要预先加圆角或外阴影;平台会按自己的规则应用遮罩、圆角或阴影。",
613
+ sourceMeta: "源图尺寸:{width} x {height}",
614
+ loadingTitle: "正在生成资源包",
615
+ loadingState: "正在切出每个目标尺寸、写入说明文件并打包 ZIP。",
616
+ loadingSteps: {
617
+ render: "切出目标尺寸",
618
+ review: "检查资源包",
619
+ readme: "写入说明文件",
620
+ zip: "准备 ZIP 下载",
621
+ },
622
+ resultTitle: "图标资源包已生成",
623
+ resultHint: "已准备 {count} 个 PNG 图标、README 和 ZIP 下载包。",
624
+ resultTabsLabel: "结果筛选",
625
+ resultTabs: {
626
+ all: "全部",
627
+ apple: "App Store",
628
+ google: "Google Play",
629
+ },
630
+ assetPreviewTitle: "图标预览",
631
+ openAssetPreview: "预览图标",
632
+ previousAsset: "上一张",
633
+ nextAsset: "下一张",
634
+ downloadZip: "下载 ZIP",
635
+ selectedTitle: "选中图标",
636
+ downloadPng: "下载 PNG",
637
+ outputEmptyTitle: "先上传源图并选择平台",
638
+ outputEmptyHint: "上传 1024px+ 方形源图,选择 Apple、Google Play 或双平台资源包,然后生成。完成后这里会展示 ZIP 下载和图标预览。",
639
+ platforms: {
640
+ all: "App Store + Google Play",
641
+ apple: "Apple App Store / iOS",
642
+ google: "Google Play / Android",
643
+ },
644
+ fits: {
645
+ cover: "居中裁切成方形",
646
+ contain: "保留完整图,加背景",
647
+ },
648
+ warnings: {
649
+ notSquare: "源图不是方形,当前会居中裁切成方形且不会拉伸。正式上传前建议用方形源文件复核主体和边缘。",
650
+ below1024: "源图短边低于 1024px,Apple 1024 图标会被放大,可能不够锐利。",
651
+ svg: "SVG 会先由浏览器光栅化为 PNG,复杂滤镜可能和设计工具导出不完全一致。",
652
+ googlePlayTooLarge: "Google Play 512 图标超过 1024KB,请用更简洁的源图重新生成或手动压缩后再上传。",
653
+ },
654
+ errors: {
655
+ missingFile: "请先上传一张图标图片。",
656
+ fileType: "请上传 PNG、JPG 或 WebP 图片。",
657
+ fileRead: "图片读取失败,请重新上传。",
658
+ invalidSettings: "设置无效,请检查平台资源包。",
659
+ tooSmall: "源图短边低于 512px,不适合作为商店图标源文件。",
660
+ tooSmallApple: "Apple / App Store 资源需要 1024px 以上的源图,请上传更高分辨率的 App Icon。",
661
+ tooSmallGoogle: "Google Play 资源需要至少 512px 的源图,请上传更高分辨率的 App Icon。",
662
+ generate: "图标生成失败,请换一张图片或重新尝试。",
663
+ },
664
+ readme: {
665
+ title: "Tomako App Icon Resizer",
666
+ sourceLine: "源图:{fileName}({width}x{height})",
667
+ fitLine: "裁切:{fit}",
668
+ backgroundLine: "透明像素:按源图保留;非透明源图保持原背景。",
669
+ assetCountLine: "PNG 数量:{assetCount}",
670
+ appleHeading: "Apple / iOS:",
671
+ appleLine1: "- 将 Apple/AppIcon.appiconset 放入 Xcode Asset Catalog,再随 build 提交到 App Store Connect。",
672
+ appleLine2: "- Apple/AppStoreIcon-1024.png 是单独的 1024px 审核/导出副本。",
673
+ googleHeading: "Google Play:",
674
+ googleLine1: "- 在 Play Console 商店资源中上传 GooglePlay/app-icon-512.png。",
675
+ googleLine2: "- 目标要求:512x512、32 位 PNG、sRGB、最大 1024KB。",
676
+ androidHeading: "Android 工程:",
677
+ androidLine1: "- 将 Android/res/mipmap-*/ic_launcher.png 用于 legacy launcher 交付。",
678
+ footerLine1: "保持图标方形且满版。不要预先加圆角或外阴影;商店和 launcher 会按平台规则应用遮罩。",
679
+ footerLine2: "正式提交前请查阅最新的 Apple 与 Google 文档。",
680
+ },
681
+ },
682
+ } as const;
683
+
684
+ export default toolsUi;