@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.
- package/README.md +12 -0
- package/package.json +629 -0
- package/src/assets/icons/brands/social/bluesky-icon.tsx +9 -0
- package/src/assets/icons/brands/social/facebook-icon.tsx +9 -0
- package/src/assets/icons/brands/social/index.ts +8 -0
- package/src/assets/icons/brands/social/instagram-icon.tsx +9 -0
- package/src/assets/icons/brands/social/linkedin-icon.tsx +9 -0
- package/src/assets/icons/brands/social/threads-icon.tsx +9 -0
- package/src/assets/icons/brands/social/tiktok-icon.tsx +10 -0
- package/src/assets/icons/brands/social/x-icon.tsx +9 -0
- package/src/assets/icons/brands/social/youtube-icon.tsx +9 -0
- package/src/assets/icons/social-profile/facebook-icon.tsx +12 -0
- package/src/assets/icons/social-profile/index.ts +29 -0
- package/src/assets/icons/social-profile/instagram-icon.tsx +18 -0
- package/src/assets/icons/social-profile/linkedin-icon.tsx +12 -0
- package/src/assets/icons/social-profile/tiktok-icon.tsx +12 -0
- package/src/assets/icons/social-profile/x-icon.tsx +13 -0
- package/src/assets/icons/social-profile/youtube-icon.tsx +12 -0
- package/src/components/tools/engine/form-builder.tsx +219 -0
- package/src/components/tools/engine/package-widget-loader.tsx +38 -0
- package/src/components/tools/engine/package-widget-runtime.tsx +409 -0
- package/src/components/tools/engine/package-widget.tsx +77 -0
- package/src/components/tools/engine/result-view.tsx +596 -0
- package/src/components/tools/engine/use-legacy-llm-task.ts +64 -0
- package/src/components/tools/engine/use-tool-task.ts +195 -0
- package/src/components/tools/market-forecast-report.tsx +1150 -0
- package/src/components/tools/registry.ts +13 -0
- package/src/components/tools/workspace/index.ts +39 -0
- package/src/components/tools/workspace/tool-action-bar.tsx +99 -0
- package/src/components/tools/workspace/tool-empty-panel.tsx +32 -0
- package/src/components/tools/workspace/tool-error-panel.tsx +40 -0
- package/src/components/tools/workspace/tool-field.tsx +124 -0
- package/src/components/tools/workspace/tool-file-upload.tsx +112 -0
- package/src/components/tools/workspace/tool-form-section.tsx +21 -0
- package/src/components/tools/workspace/tool-form-shell.tsx +36 -0
- package/src/components/tools/workspace/tool-loading-panel.tsx +269 -0
- package/src/components/tools/workspace/tool-option-row.tsx +97 -0
- package/src/components/tools/workspace/tool-preview-panel.tsx +31 -0
- package/src/components/tools/workspace/tool-result-actions.tsx +67 -0
- package/src/components/tools/workspace/tool-result-file-actions.ts +31 -0
- package/src/components/tools/workspace/tool-result-header.tsx +39 -0
- package/src/components/tools/workspace/tool-status.tsx +13 -0
- package/src/components/tools/workspace/tool-workspace-layout.tsx +226 -0
- package/src/constants/LKS.ts +29 -0
- package/src/constants/related-tools.ts +18 -0
- package/src/constants/social-profile-kit.ts +284 -0
- package/src/constants/tool-assets.ts +7 -0
- package/src/env.d.ts +3 -0
- package/src/features/tools/_templates/standard-tool.container.tsx +90 -0
- package/src/features/tools/app-icon-resizer/app-icon-resizer.container.tsx +11 -0
- package/src/features/tools/app-icon-resizer/app-icon-resizer.spec.ts +15 -0
- package/src/features/tools/app-icon-resizer/widget/app-icon-resizer.tsx +444 -0
- package/src/features/tools/app-icon-resizer/widget/constants.ts +19 -0
- package/src/features/tools/app-icon-resizer/widget/helpers.ts +314 -0
- package/src/features/tools/app-icon-resizer/widget/index.ts +7 -0
- package/src/features/tools/app-icon-resizer/widget/platform-icons.tsx +59 -0
- package/src/features/tools/app-icon-resizer/widget/preview-dialogs.tsx +139 -0
- package/src/features/tools/app-icon-resizer/widget/result-shell.tsx +165 -0
- package/src/features/tools/app-icon-resizer/widget/types.ts +36 -0
- package/src/features/tools/app-store-screenshot-generator/app-store-screenshot-generator.container.tsx +108 -0
- package/src/features/tools/app-store-screenshot-generator/app-store-screenshot-generator.spec.ts +14 -0
- package/src/features/tools/app-store-screenshot-generator/config.ts +3 -0
- package/src/features/tools/app-store-screenshot-generator/widget/app-store-screenshot-generator.tsx +1250 -0
- package/src/features/tools/app-store-screenshot-generator/widget/asset-slots.ts +76 -0
- package/src/features/tools/app-store-screenshot-generator/widget/constants.ts +43 -0
- package/src/features/tools/app-store-screenshot-generator/widget/form-controls.tsx +214 -0
- package/src/features/tools/app-store-screenshot-generator/widget/generation.ts +528 -0
- package/src/features/tools/app-store-screenshot-generator/widget/index.ts +7 -0
- package/src/features/tools/app-store-screenshot-generator/widget/input-media.ts +175 -0
- package/src/features/tools/app-store-screenshot-generator/widget/types.ts +60 -0
- package/src/features/tools/app-store-screenshot-generator/widget/zip.ts +119 -0
- package/src/features/tools/build-in-public-story-generator/build-in-public-story-generator.container.tsx +135 -0
- package/src/features/tools/build-in-public-story-generator/build-in-public-story-generator.spec.ts +15 -0
- package/src/features/tools/build-in-public-story-generator/widget/build-in-public-story-generator.tsx +314 -0
- package/src/features/tools/build-in-public-story-generator/widget/constants.ts +3 -0
- package/src/features/tools/build-in-public-story-generator/widget/helpers.ts +25 -0
- package/src/features/tools/build-in-public-story-generator/widget/index.ts +7 -0
- package/src/features/tools/build-in-public-story-generator/widget/preview-panels.tsx +58 -0
- package/src/features/tools/build-in-public-story-generator/widget/result-shell.tsx +164 -0
- package/src/features/tools/build-in-public-story-generator/widget/types.ts +6 -0
- package/src/features/tools/cold-start-channel-selector/cold-start-channel-selector.container.tsx +30 -0
- package/src/features/tools/cold-start-channel-selector/cold-start-channel-selector.spec.ts +15 -0
- package/src/features/tools/cold-start-channel-selector/widget/cold-start-channel-selector.tsx +417 -0
- package/src/features/tools/cold-start-channel-selector/widget/constants.ts +46 -0
- package/src/features/tools/cold-start-channel-selector/widget/form-controls.tsx +41 -0
- package/src/features/tools/cold-start-channel-selector/widget/helpers.ts +75 -0
- package/src/features/tools/cold-start-channel-selector/widget/index.ts +7 -0
- package/src/features/tools/cold-start-channel-selector/widget/preview-panels.tsx +250 -0
- package/src/features/tools/cold-start-channel-selector/widget/result-shell.tsx +199 -0
- package/src/features/tools/cold-start-channel-selector/widget/types.ts +21 -0
- package/src/features/tools/commercial-bp-generator/commercial-bp-generator.container.tsx +102 -0
- package/src/features/tools/commercial-bp-generator/commercial-bp-generator.spec.ts +14 -0
- package/src/features/tools/commercial-bp-generator/widget/commercial-bp-generator.tsx +676 -0
- package/src/features/tools/commercial-bp-generator/widget/constants.ts +32 -0
- package/src/features/tools/commercial-bp-generator/widget/helpers.ts +147 -0
- package/src/features/tools/commercial-bp-generator/widget/index.ts +7 -0
- package/src/features/tools/commercial-bp-generator/widget/result-shell.tsx +271 -0
- package/src/features/tools/commercial-bp-generator/widget/style-option.tsx +54 -0
- package/src/features/tools/commercial-bp-generator/widget/types.ts +33 -0
- package/src/features/tools/community-feedback-inbox/community-feedback-inbox.container.tsx +126 -0
- package/src/features/tools/community-feedback-inbox/community-feedback-inbox.spec.ts +15 -0
- package/src/features/tools/community-feedback-inbox/widget/community-feedback-inbox.tsx +271 -0
- package/src/features/tools/community-feedback-inbox/widget/constants.ts +3 -0
- package/src/features/tools/community-feedback-inbox/widget/helpers.ts +28 -0
- package/src/features/tools/community-feedback-inbox/widget/index.ts +7 -0
- package/src/features/tools/community-feedback-inbox/widget/preview-panels.tsx +92 -0
- package/src/features/tools/community-feedback-inbox/widget/result-shell.tsx +266 -0
- package/src/features/tools/community-feedback-inbox/widget/types.ts +6 -0
- package/src/features/tools/community-pain-point-extractor/community-pain-point-extractor.container.tsx +124 -0
- package/src/features/tools/community-pain-point-extractor/community-pain-point-extractor.spec.ts +15 -0
- package/src/features/tools/community-pain-point-extractor/widget/community-pain-point-extractor.tsx +404 -0
- package/src/features/tools/community-pain-point-extractor/widget/constants.ts +41 -0
- package/src/features/tools/community-pain-point-extractor/widget/helpers.ts +76 -0
- package/src/features/tools/community-pain-point-extractor/widget/index.ts +8 -0
- package/src/features/tools/community-pain-point-extractor/widget/progress-panels.tsx +251 -0
- package/src/features/tools/community-pain-point-extractor/widget/result-shell.tsx +478 -0
- package/src/features/tools/community-pain-point-extractor/widget/types.ts +33 -0
- package/src/features/tools/community-post-risk-checker/community-post-risk-checker.package.ts +792 -0
- package/src/features/tools/competitor-analysis/competitor-analysis.container.tsx +136 -0
- package/src/features/tools/competitor-analysis/competitor-analysis.spec.ts +15 -0
- package/src/features/tools/competitor-analysis/widget/competitor-analysis.tsx +241 -0
- package/src/features/tools/competitor-analysis/widget/constants.ts +9 -0
- package/src/features/tools/competitor-analysis/widget/index.ts +7 -0
- package/src/features/tools/competitor-analysis/widget/preview-panels.tsx +60 -0
- package/src/features/tools/competitor-analysis/widget/result-shell.tsx +418 -0
- package/src/features/tools/competitor-analysis/widget/types.ts +13 -0
- package/src/features/tools/disclaimer-generator/disclaimer-generator.package.ts +339 -0
- package/src/features/tools/email-template-generator/email-template-generator.container.tsx +224 -0
- package/src/features/tools/email-template-generator/email-template-generator.spec.ts +14 -0
- package/src/features/tools/email-template-generator/widget/email-template-generator.tsx +358 -0
- package/src/features/tools/email-template-generator/widget/helpers.ts +39 -0
- package/src/features/tools/email-template-generator/widget/index.ts +7 -0
- package/src/features/tools/email-template-generator/widget/preview-panel.tsx +311 -0
- package/src/features/tools/email-template-generator/widget/result-text-block.tsx +7 -0
- package/src/features/tools/email-template-generator/widget/types.ts +24 -0
- package/src/features/tools/gtm-readiness-checklist/gtm-readiness-checklist.container.tsx +75 -0
- package/src/features/tools/gtm-readiness-checklist/gtm-readiness-checklist.spec.ts +15 -0
- package/src/features/tools/gtm-readiness-checklist/widget/gtm-readiness-checklist.tsx +122 -0
- package/src/features/tools/gtm-readiness-checklist/widget/index.ts +7 -0
- package/src/features/tools/investor-matching-planner/investor-matching-planner.package.ts +869 -0
- package/src/features/tools/koko-codex-assistant/koko-codex-assistant.container.tsx +151 -0
- package/src/features/tools/koko-codex-assistant/koko-codex-assistant.spec.ts +14 -0
- package/src/features/tools/koko-codex-assistant/widget/index.ts +7 -0
- package/src/features/tools/koko-codex-assistant/widget/koko-codex-assistant-download.tsx +192 -0
- package/src/features/tools/logo-generator/logo-generator.container.tsx +112 -0
- package/src/features/tools/logo-generator/logo-generator.spec.ts +15 -0
- package/src/features/tools/logo-generator/widget/index.ts +7 -0
- package/src/features/tools/logo-generator/widget/logo-generator.tsx +1244 -0
- package/src/features/tools/market-forecast-report/market-forecast-report.container.tsx +73 -0
- package/src/features/tools/market-forecast-report/market-forecast-report.spec.ts +15 -0
- package/src/features/tools/million-user-growth-test/million-user-growth-test.container.tsx +123 -0
- package/src/features/tools/million-user-growth-test/million-user-growth-test.spec.ts +14 -0
- package/src/features/tools/million-user-growth-test/widget/index.ts +7 -0
- package/src/features/tools/million-user-growth-test/widget/million-user-growth-test.tsx +433 -0
- package/src/features/tools/module-loader.ts +107 -0
- package/src/features/tools/og-image-generator/og-image-generator.container.tsx +86 -0
- package/src/features/tools/og-image-generator/og-image-generator.spec.ts +14 -0
- package/src/features/tools/og-image-generator/widget/constants.ts +38 -0
- package/src/features/tools/og-image-generator/widget/form-fields.tsx +240 -0
- package/src/features/tools/og-image-generator/widget/index.ts +7 -0
- package/src/features/tools/og-image-generator/widget/og-image-generator.tsx +742 -0
- package/src/features/tools/og-image-generator/widget/preview-panel.tsx +305 -0
- package/src/features/tools/og-image-generator/widget/types.ts +1 -0
- package/src/features/tools/package/direct-models.ts +20 -0
- package/src/features/tools/package/form.ts +38 -0
- package/src/features/tools/package/l10n.ts +22 -0
- package/src/features/tools/package/package-container.tsx +285 -0
- package/src/features/tools/package/package-loaders.ts +22 -0
- package/src/features/tools/package/package-registry.ts +36 -0
- package/src/features/tools/package/result-markdown.ts +142 -0
- package/src/features/tools/package/schema.ts +379 -0
- package/src/features/tools/package/to-tool-module.ts +20 -0
- package/src/features/tools/package/to-tool-spec.ts +52 -0
- package/src/features/tools/package/types.ts +381 -0
- package/src/features/tools/pitch-deck-generator/pitch-deck-generator.container.tsx +175 -0
- package/src/features/tools/pitch-deck-generator/pitch-deck-generator.spec.ts +14 -0
- package/src/features/tools/pitch-deck-generator/pitch-deck-library-data.ts +476 -0
- package/src/features/tools/pitch-deck-generator/pitch-deck-library.tsx +159 -0
- package/src/features/tools/pitch-deck-generator/widget/ceremony-line.tsx +27 -0
- package/src/features/tools/pitch-deck-generator/widget/constants.ts +27 -0
- package/src/features/tools/pitch-deck-generator/widget/index.ts +7 -0
- package/src/features/tools/pitch-deck-generator/widget/pitch-deck-generator.tsx +763 -0
- package/src/features/tools/pitch-deck-generator/widget/result-helpers.ts +102 -0
- package/src/features/tools/pitch-deck-generator/widget/result-shell.tsx +263 -0
- package/src/features/tools/pitch-deck-generator/widget/slide-frame.tsx +106 -0
- package/src/features/tools/pitch-deck-generator/widget/slide-lightbox.tsx +149 -0
- package/src/features/tools/pitch-deck-generator/widget/style-option.tsx +54 -0
- package/src/features/tools/pitch-deck-generator/widget/types.ts +44 -0
- package/src/features/tools/product-agreement-generator/product-agreement-generator.container.tsx +137 -0
- package/src/features/tools/product-agreement-generator/product-agreement-generator.spec.ts +14 -0
- package/src/features/tools/product-agreement-generator/widget/constants.ts +27 -0
- package/src/features/tools/product-agreement-generator/widget/form-controls.tsx +218 -0
- package/src/features/tools/product-agreement-generator/widget/helpers.ts +68 -0
- package/src/features/tools/product-agreement-generator/widget/index.ts +7 -0
- package/src/features/tools/product-agreement-generator/widget/product-agreement-generator.tsx +671 -0
- package/src/features/tools/product-agreement-generator/widget/result-shell.tsx +473 -0
- package/src/features/tools/product-agreement-generator/widget/types.ts +89 -0
- package/src/features/tools/product-hunt-launch-planner/product-hunt-launch-planner.container.tsx +122 -0
- package/src/features/tools/product-hunt-launch-planner/product-hunt-launch-planner.spec.ts +15 -0
- package/src/features/tools/product-hunt-launch-planner/widget/constants.ts +5 -0
- package/src/features/tools/product-hunt-launch-planner/widget/helpers.ts +44 -0
- package/src/features/tools/product-hunt-launch-planner/widget/index.ts +7 -0
- package/src/features/tools/product-hunt-launch-planner/widget/preview-panel.tsx +143 -0
- package/src/features/tools/product-hunt-launch-planner/widget/product-hunt-launch-planner.tsx +504 -0
- package/src/features/tools/product-hunt-launch-planner/widget/result-shell.tsx +176 -0
- package/src/features/tools/product-hunt-launch-planner/widget/types.ts +20 -0
- package/src/features/tools/product-name-generator/product-name-generator.container.tsx +14 -0
- package/src/features/tools/product-name-generator/product-name-generator.spec.ts +15 -0
- package/src/features/tools/product-name-generator/widget/candidate-card.tsx +273 -0
- package/src/features/tools/product-name-generator/widget/constants.ts +21 -0
- package/src/features/tools/product-name-generator/widget/form-controls.tsx +136 -0
- package/src/features/tools/product-name-generator/widget/helpers.ts +41 -0
- package/src/features/tools/product-name-generator/widget/index.ts +7 -0
- package/src/features/tools/product-name-generator/widget/product-name-generator.tsx +776 -0
- package/src/features/tools/product-name-generator/widget/types.ts +36 -0
- package/src/features/tools/product-positioning-analyzer/product-positioning-analyzer.package.ts +801 -0
- package/src/features/tools/product-poster-generator/product-poster-generator.container.tsx +14 -0
- package/src/features/tools/product-poster-generator/product-poster-generator.spec.ts +15 -0
- package/src/features/tools/product-poster-generator/widget/constants.ts +125 -0
- package/src/features/tools/product-poster-generator/widget/form-controls.tsx +204 -0
- package/src/features/tools/product-poster-generator/widget/helpers.ts +155 -0
- package/src/features/tools/product-poster-generator/widget/index.ts +7 -0
- package/src/features/tools/product-poster-generator/widget/product-poster-generator.tsx +663 -0
- package/src/features/tools/product-poster-generator/widget/result-shell.tsx +12 -0
- package/src/features/tools/product-poster-generator/widget/types.ts +83 -0
- package/src/features/tools/product-ui-generator/product-ui-generator.container.tsx +116 -0
- package/src/features/tools/product-ui-generator/product-ui-generator.spec.ts +14 -0
- package/src/features/tools/product-ui-generator/widget/constants.ts +18 -0
- package/src/features/tools/product-ui-generator/widget/helpers.ts +11 -0
- package/src/features/tools/product-ui-generator/widget/index.ts +7 -0
- package/src/features/tools/product-ui-generator/widget/preview-panels.tsx +73 -0
- package/src/features/tools/product-ui-generator/widget/product-ui-generator.tsx +304 -0
- package/src/features/tools/product-ui-generator/widget/result-shell.tsx +118 -0
- package/src/features/tools/product-ui-generator/widget/types.ts +9 -0
- package/src/features/tools/reddit-pain-point-finder/reddit-pain-point-finder.container.tsx +113 -0
- package/src/features/tools/reddit-pain-point-finder/reddit-pain-point-finder.spec.ts +15 -0
- package/src/features/tools/reddit-pain-point-finder/widget/constants.ts +5 -0
- package/src/features/tools/reddit-pain-point-finder/widget/index.ts +7 -0
- package/src/features/tools/reddit-pain-point-finder/widget/preview-panels.tsx +73 -0
- package/src/features/tools/reddit-pain-point-finder/widget/reddit-pain-point-finder.tsx +281 -0
- package/src/features/tools/reddit-pain-point-finder/widget/result-shell.tsx +203 -0
- package/src/features/tools/reddit-pain-point-finder/widget/types.ts +15 -0
- package/src/features/tools/registry.ts +288 -0
- package/src/features/tools/runtime-registry.ts +186 -0
- package/src/features/tools/shared/create-guide-stack-container.tsx +176 -0
- package/src/features/tools/shared/create-standard-landing-container.tsx +163 -0
- package/src/features/tools/shared/tool-content-sections.tsx +659 -0
- package/src/features/tools/shared/tool-cta.tsx +66 -0
- package/src/features/tools/shared/tool-draft-view.tsx +53 -0
- package/src/features/tools/shared/tool-guide-section.tsx +191 -0
- package/src/features/tools/shared/tool-handoff.tsx +38 -0
- package/src/features/tools/shared/tool-mcp-badge.tsx +23 -0
- package/src/features/tools/shared/tool-message-translator.ts +37 -0
- package/src/features/tools/shared/tool-page-shell.tsx +348 -0
- package/src/features/tools/shared/tool-standard-generation-steps.tsx +52 -0
- package/src/features/tools/shared/tool-standard-landing-sections.tsx +447 -0
- package/src/features/tools/shared/tool-ui-registry.ts +237 -0
- package/src/features/tools/shared/tool-widget-slot.tsx +29 -0
- package/src/features/tools/slogan-generator/slogan-generator.package.ts +641 -0
- package/src/features/tools/social-listening-research-report/social-listening-research-report.container.tsx +124 -0
- package/src/features/tools/social-listening-research-report/social-listening-research-report.spec.ts +15 -0
- package/src/features/tools/social-listening-research-report/widget/constants.ts +4 -0
- package/src/features/tools/social-listening-research-report/widget/index.ts +7 -0
- package/src/features/tools/social-listening-research-report/widget/preview-panels.tsx +73 -0
- package/src/features/tools/social-listening-research-report/widget/result-shell.tsx +216 -0
- package/src/features/tools/social-listening-research-report/widget/social-listening-research-report.tsx +303 -0
- package/src/features/tools/social-listening-research-report/widget/types.ts +15 -0
- package/src/features/tools/social-platform-asset-adapter/social-platform-asset-adapter.container.tsx +123 -0
- package/src/features/tools/social-platform-asset-adapter/social-platform-asset-adapter.spec.ts +15 -0
- package/src/features/tools/social-platform-asset-adapter/widget/constants.ts +43 -0
- package/src/features/tools/social-platform-asset-adapter/widget/helpers.ts +249 -0
- package/src/features/tools/social-platform-asset-adapter/widget/index.ts +7 -0
- package/src/features/tools/social-platform-asset-adapter/widget/result-shell.tsx +350 -0
- package/src/features/tools/social-platform-asset-adapter/widget/section-heading.tsx +18 -0
- package/src/features/tools/social-platform-asset-adapter/widget/social-platform-asset-adapter.tsx +641 -0
- package/src/features/tools/social-platform-asset-adapter/widget/types.ts +40 -0
- package/src/features/tools/social-profile-kit/social-profile-kit.container.tsx +177 -0
- package/src/features/tools/social-profile-kit/social-profile-kit.spec.ts +15 -0
- package/src/features/tools/social-profile-kit/widget/context-editor.tsx +171 -0
- package/src/features/tools/social-profile-kit/widget/generation-runtime.ts +281 -0
- package/src/features/tools/social-profile-kit/widget/index.ts +7 -0
- package/src/features/tools/social-profile-kit/widget/input-panel.tsx +294 -0
- package/src/features/tools/social-profile-kit/widget/platform-dock.tsx +115 -0
- package/src/features/tools/social-profile-kit/widget/profile-canvas.tsx +318 -0
- package/src/features/tools/social-profile-kit/widget/profile-preview/bluesky-preview.tsx +188 -0
- package/src/features/tools/social-profile-kit/widget/profile-preview/facebook-preview.tsx +168 -0
- package/src/features/tools/social-profile-kit/widget/profile-preview/index.ts +1 -0
- package/src/features/tools/social-profile-kit/widget/profile-preview/instagram-preview.tsx +278 -0
- package/src/features/tools/social-profile-kit/widget/profile-preview/linkedin-preview.tsx +358 -0
- package/src/features/tools/social-profile-kit/widget/profile-preview/profile-preview.tsx +348 -0
- package/src/features/tools/social-profile-kit/widget/profile-preview/shared.tsx +391 -0
- package/src/features/tools/social-profile-kit/widget/profile-preview/threads-preview.tsx +148 -0
- package/src/features/tools/social-profile-kit/widget/profile-preview/tiktok-preview.tsx +319 -0
- package/src/features/tools/social-profile-kit/widget/profile-preview/x-preview.tsx +341 -0
- package/src/features/tools/social-profile-kit/widget/profile-preview/youtube-preview.tsx +297 -0
- package/src/features/tools/social-profile-kit/widget/social-profile-kit-generator.tsx +1059 -0
- package/src/features/tools/social-profile-kit/widget/types.ts +104 -0
- package/src/features/tools/spec-registry.ts +158 -0
- package/src/features/tools/startup-idea-research/startup-idea-research.container.tsx +111 -0
- package/src/features/tools/startup-idea-research/startup-idea-research.spec.ts +15 -0
- package/src/features/tools/startup-idea-research/widget/constants.ts +11 -0
- package/src/features/tools/startup-idea-research/widget/index.ts +7 -0
- package/src/features/tools/startup-idea-research/widget/preview-panels.tsx +67 -0
- package/src/features/tools/startup-idea-research/widget/result-shell.tsx +323 -0
- package/src/features/tools/startup-idea-research/widget/startup-idea-research.tsx +272 -0
- package/src/features/tools/startup-idea-research/widget/types.ts +21 -0
- package/src/features/tools/tarot-reading/tarot-reading.container.tsx +412 -0
- package/src/features/tools/tarot-reading/tarot-reading.spec.ts +15 -0
- package/src/features/tools/tarot-reading/widget/cards.tsx +152 -0
- package/src/features/tools/tarot-reading/widget/constants.ts +69 -0
- package/src/features/tools/tarot-reading/widget/deck-view.tsx +86 -0
- package/src/features/tools/tarot-reading/widget/deck.ts +86 -0
- package/src/features/tools/tarot-reading/widget/index.ts +7 -0
- package/src/features/tools/tarot-reading/widget/landing-view.tsx +209 -0
- package/src/features/tools/tarot-reading/widget/reading-copy.tsx +138 -0
- package/src/features/tools/tarot-reading/widget/reading-view.tsx +189 -0
- package/src/features/tools/tarot-reading/widget/reveal-view.tsx +50 -0
- package/src/features/tools/tarot-reading/widget/ritual-view.tsx +276 -0
- package/src/features/tools/tarot-reading/widget/tarot-reading.tsx +262 -0
- package/src/features/tools/tarot-reading/widget/types.ts +22 -0
- package/src/features/tools/twitter-gif-downloader/twitter-gif-downloader.container.tsx +114 -0
- package/src/features/tools/twitter-gif-downloader/twitter-gif-downloader.spec.ts +14 -0
- package/src/features/tools/twitter-gif-downloader/widget/index.ts +7 -0
- package/src/features/tools/twitter-gif-downloader/widget/twitter-gif-downloader.tsx +351 -0
- package/src/features/tools/types.ts +68 -0
- package/src/features/tools/user-interview-guide-generator/user-interview-guide-generator.package.ts +774 -0
- package/src/features/tools/user-interview-insight-report-generator/user-interview-insight-report-generator.container.tsx +23 -0
- package/src/features/tools/user-interview-insight-report-generator/user-interview-insight-report-generator.spec.ts +14 -0
- package/src/features/tools/user-interview-insight-report-generator/widget/constants.ts +8 -0
- package/src/features/tools/user-interview-insight-report-generator/widget/helpers.ts +4 -0
- package/src/features/tools/user-interview-insight-report-generator/widget/index.ts +7 -0
- package/src/features/tools/user-interview-insight-report-generator/widget/preview-panels.tsx +55 -0
- package/src/features/tools/user-interview-insight-report-generator/widget/result-shell.tsx +122 -0
- package/src/features/tools/user-interview-insight-report-generator/widget/types.ts +16 -0
- package/src/features/tools/user-interview-insight-report-generator/widget/user-interview-insight-report-generator.tsx +293 -0
- package/src/features/tools/user-interview-record-generator/user-interview-record-generator.container.tsx +18 -0
- package/src/features/tools/user-interview-record-generator/user-interview-record-generator.spec.ts +14 -0
- package/src/features/tools/user-interview-record-generator/widget/constants.ts +9 -0
- package/src/features/tools/user-interview-record-generator/widget/helpers.ts +4 -0
- package/src/features/tools/user-interview-record-generator/widget/index.ts +7 -0
- package/src/features/tools/user-interview-record-generator/widget/preview-panels.tsx +48 -0
- package/src/features/tools/user-interview-record-generator/widget/result-shell.tsx +128 -0
- package/src/features/tools/user-interview-record-generator/widget/types.ts +16 -0
- package/src/features/tools/user-interview-record-generator/widget/user-interview-record-generator.tsx +305 -0
- package/src/features/tools/utm-builder/utm-builder.package.ts +846 -0
- package/src/features/tools/widget-registry.ts +73 -0
- package/src/generated/mcp-tools-registry.json +17 -0
- package/src/host/client-proxy.test.ts +33 -0
- package/src/host/client.ts +678 -0
- package/src/host/server.ts +119 -0
- package/src/i18n/client.ts +11 -0
- package/src/i18n/locale-fallback.ts +38 -0
- package/src/i18n/locale.ts +18 -0
- package/src/i18n/messages/en/page/tools.ts +124 -0
- package/src/i18n/messages/en/tools/app-icon-resizer.ts +244 -0
- package/src/i18n/messages/en/tools/app-store-screenshot-generator.ts +145 -0
- package/src/i18n/messages/en/tools/build-in-public-story-generator.ts +229 -0
- package/src/i18n/messages/en/tools/cold-start-channel-selector.ts +423 -0
- package/src/i18n/messages/en/tools/commercial-bp-generator.ts +304 -0
- package/src/i18n/messages/en/tools/community-feedback-inbox.ts +218 -0
- package/src/i18n/messages/en/tools/community-pain-point-extractor.ts +230 -0
- package/src/i18n/messages/en/tools/community-post-risk-checker.ts +209 -0
- package/src/i18n/messages/en/tools/competitor-analysis.ts +197 -0
- package/src/i18n/messages/en/tools/email-template-generator.ts +302 -0
- package/src/i18n/messages/en/tools/engine.ts +69 -0
- package/src/i18n/messages/en/tools/gtm-readiness-checklist.ts +166 -0
- package/src/i18n/messages/en/tools/index.ts +73 -0
- package/src/i18n/messages/en/tools/koko-codex-assistant.ts +171 -0
- package/src/i18n/messages/en/tools/logo-generator.ts +173 -0
- package/src/i18n/messages/en/tools/market-forecast-report.ts +228 -0
- package/src/i18n/messages/en/tools/million-user-growth-test.ts +386 -0
- package/src/i18n/messages/en/tools/og-image-generator.ts +172 -0
- package/src/i18n/messages/en/tools/pitch-deck-generator.ts +358 -0
- package/src/i18n/messages/en/tools/product-agreement-generator.ts +411 -0
- package/src/i18n/messages/en/tools/product-hunt-launch-planner.ts +272 -0
- package/src/i18n/messages/en/tools/product-name-generator.ts +383 -0
- package/src/i18n/messages/en/tools/product-poster-generator.ts +294 -0
- package/src/i18n/messages/en/tools/product-ui-generator.ts +234 -0
- package/src/i18n/messages/en/tools/reddit-pain-point-finder.ts +163 -0
- package/src/i18n/messages/en/tools/shared.ts +24 -0
- package/src/i18n/messages/en/tools/social-listening-research-report.ts +185 -0
- package/src/i18n/messages/en/tools/social-media-profile-generator.ts +22 -0
- package/src/i18n/messages/en/tools/social-platform-asset-adapter.ts +287 -0
- package/src/i18n/messages/en/tools/social-profile-kit.ts +150 -0
- package/src/i18n/messages/en/tools/startup-idea-research.ts +170 -0
- package/src/i18n/messages/en/tools/tarot-reading.ts +230 -0
- package/src/i18n/messages/en/tools/twitter-gif-downloader.ts +145 -0
- package/src/i18n/messages/en/tools/user-interview-insight-report-generator.ts +242 -0
- package/src/i18n/messages/en/tools/user-interview-record-generator.ts +244 -0
- package/src/i18n/messages/en/tools-ui.ts +704 -0
- package/src/i18n/messages/zh/page/tools.ts +124 -0
- package/src/i18n/messages/zh/tools/app-icon-resizer.ts +242 -0
- package/src/i18n/messages/zh/tools/app-store-screenshot-generator.ts +145 -0
- package/src/i18n/messages/zh/tools/build-in-public-story-generator.ts +230 -0
- package/src/i18n/messages/zh/tools/cold-start-channel-selector.ts +422 -0
- package/src/i18n/messages/zh/tools/commercial-bp-generator.ts +302 -0
- package/src/i18n/messages/zh/tools/community-feedback-inbox.ts +217 -0
- package/src/i18n/messages/zh/tools/community-pain-point-extractor.ts +230 -0
- package/src/i18n/messages/zh/tools/community-post-risk-checker.ts +200 -0
- package/src/i18n/messages/zh/tools/competitor-analysis.ts +192 -0
- package/src/i18n/messages/zh/tools/email-template-generator.ts +302 -0
- package/src/i18n/messages/zh/tools/engine.ts +68 -0
- package/src/i18n/messages/zh/tools/gtm-readiness-checklist.ts +166 -0
- package/src/i18n/messages/zh/tools/index.ts +73 -0
- package/src/i18n/messages/zh/tools/koko-codex-assistant.ts +170 -0
- package/src/i18n/messages/zh/tools/logo-generator.ts +172 -0
- package/src/i18n/messages/zh/tools/market-forecast-report.ts +228 -0
- package/src/i18n/messages/zh/tools/million-user-growth-test.ts +385 -0
- package/src/i18n/messages/zh/tools/og-image-generator.ts +173 -0
- package/src/i18n/messages/zh/tools/pitch-deck-generator.ts +358 -0
- package/src/i18n/messages/zh/tools/product-agreement-generator.ts +401 -0
- package/src/i18n/messages/zh/tools/product-hunt-launch-planner.ts +267 -0
- package/src/i18n/messages/zh/tools/product-name-generator.ts +383 -0
- package/src/i18n/messages/zh/tools/product-poster-generator.ts +282 -0
- package/src/i18n/messages/zh/tools/product-ui-generator.ts +234 -0
- package/src/i18n/messages/zh/tools/reddit-pain-point-finder.ts +162 -0
- package/src/i18n/messages/zh/tools/shared.ts +24 -0
- package/src/i18n/messages/zh/tools/social-listening-research-report.ts +181 -0
- package/src/i18n/messages/zh/tools/social-media-profile-generator.ts +22 -0
- package/src/i18n/messages/zh/tools/social-platform-asset-adapter.ts +284 -0
- package/src/i18n/messages/zh/tools/social-profile-kit.ts +150 -0
- package/src/i18n/messages/zh/tools/startup-idea-research.ts +165 -0
- package/src/i18n/messages/zh/tools/tarot-reading.ts +228 -0
- package/src/i18n/messages/zh/tools/twitter-gif-downloader.ts +138 -0
- package/src/i18n/messages/zh/tools/user-interview-insight-report-generator.ts +224 -0
- package/src/i18n/messages/zh/tools/user-interview-record-generator.ts +226 -0
- package/src/i18n/messages/zh/tools-ui.ts +684 -0
- package/src/i18n/messages/zh-tw/page/tools.ts +115 -0
- package/src/i18n/messages/zh-tw/tools/app-icon-resizer.ts +242 -0
- package/src/i18n/messages/zh-tw/tools/app-store-screenshot-generator.ts +145 -0
- package/src/i18n/messages/zh-tw/tools/build-in-public-story-generator.ts +230 -0
- package/src/i18n/messages/zh-tw/tools/cold-start-channel-selector.ts +440 -0
- package/src/i18n/messages/zh-tw/tools/commercial-bp-generator.ts +302 -0
- package/src/i18n/messages/zh-tw/tools/community-feedback-inbox.ts +217 -0
- package/src/i18n/messages/zh-tw/tools/community-pain-point-extractor.ts +230 -0
- package/src/i18n/messages/zh-tw/tools/community-post-risk-checker.ts +200 -0
- package/src/i18n/messages/zh-tw/tools/competitor-analysis.ts +192 -0
- package/src/i18n/messages/zh-tw/tools/email-template-generator.ts +302 -0
- package/src/i18n/messages/zh-tw/tools/engine.ts +68 -0
- package/src/i18n/messages/zh-tw/tools/gtm-readiness-checklist.ts +166 -0
- package/src/i18n/messages/zh-tw/tools/index.ts +73 -0
- package/src/i18n/messages/zh-tw/tools/koko-codex-assistant.ts +170 -0
- package/src/i18n/messages/zh-tw/tools/logo-generator.ts +71 -0
- package/src/i18n/messages/zh-tw/tools/market-forecast-report.ts +228 -0
- package/src/i18n/messages/zh-tw/tools/million-user-growth-test.ts +385 -0
- package/src/i18n/messages/zh-tw/tools/og-image-generator.ts +173 -0
- package/src/i18n/messages/zh-tw/tools/pitch-deck-generator.ts +358 -0
- package/src/i18n/messages/zh-tw/tools/product-agreement-generator.ts +401 -0
- package/src/i18n/messages/zh-tw/tools/product-hunt-launch-planner.ts +267 -0
- package/src/i18n/messages/zh-tw/tools/product-name-generator.ts +383 -0
- package/src/i18n/messages/zh-tw/tools/product-poster-generator.ts +282 -0
- package/src/i18n/messages/zh-tw/tools/product-ui-generator.ts +234 -0
- package/src/i18n/messages/zh-tw/tools/reddit-pain-point-finder.ts +162 -0
- package/src/i18n/messages/zh-tw/tools/shared.ts +24 -0
- package/src/i18n/messages/zh-tw/tools/social-listening-research-report.ts +181 -0
- package/src/i18n/messages/zh-tw/tools/social-media-profile-generator.ts +22 -0
- package/src/i18n/messages/zh-tw/tools/social-platform-asset-adapter.ts +284 -0
- package/src/i18n/messages/zh-tw/tools/social-profile-kit.ts +150 -0
- package/src/i18n/messages/zh-tw/tools/startup-idea-research.ts +165 -0
- package/src/i18n/messages/zh-tw/tools/tarot-reading.ts +228 -0
- package/src/i18n/messages/zh-tw/tools/twitter-gif-downloader.ts +138 -0
- package/src/i18n/messages/zh-tw/tools/user-interview-insight-report-generator.ts +224 -0
- package/src/i18n/messages/zh-tw/tools/user-interview-record-generator.ts +226 -0
- package/src/i18n/messages/zh-tw/tools-ui.ts +525 -0
- package/src/index.ts +15 -0
- package/src/lib/activity-task-handoff.ts +404 -0
- package/src/lib/api/errors.ts +39 -0
- package/src/lib/app-origin.ts +30 -0
- package/src/lib/fact-claim-contract.ts +68 -0
- package/src/lib/fake-delay.ts +3 -0
- package/src/lib/file/download.ts +10 -0
- package/src/lib/routing/locale-paths.ts +27 -0
- package/src/lib/seo-meta.ts +3 -0
- package/src/lib/tools/app-icon-resizer-schema.ts +191 -0
- package/src/lib/tools/app-store-screenshot-generator-schema.ts +185 -0
- package/src/lib/tools/build-in-public-story-generator-schema.ts +67 -0
- package/src/lib/tools/build-in-public-story-generator.format.ts +507 -0
- package/src/lib/tools/cold-start-channel-selector-schema.ts +147 -0
- package/src/lib/tools/commercial-bp-generator-schema.ts +222 -0
- package/src/lib/tools/community-feedback-inbox-schema.ts +125 -0
- package/src/lib/tools/community-feedback-inbox.format.ts +764 -0
- package/src/lib/tools/community-pain-point-extractor-schema.ts +166 -0
- package/src/lib/tools/community-post-risk-checker-schema.ts +99 -0
- package/src/lib/tools/community-post-risk-checker.format.ts +557 -0
- package/src/lib/tools/competitor-analysis-schema.ts +144 -0
- package/src/lib/tools/draft-preview-access.ts +3 -0
- package/src/lib/tools/draft-store.ts +69 -0
- package/src/lib/tools/email-template-generator-schema.ts +124 -0
- package/src/lib/tools/gtm-checklist-copy.ts +57 -0
- package/src/lib/tools/gtm-checklist-structure.ts +37 -0
- package/src/lib/tools/image-download.ts +68 -0
- package/src/lib/tools/input-quality.ts +97 -0
- package/src/lib/tools/logo-generator-schema.ts +224 -0
- package/src/lib/tools/market-forecast-report-schema.ts +299 -0
- package/src/lib/tools/mcp-registry.ts +16 -0
- package/src/lib/tools/mcp-types.ts +18 -0
- package/src/lib/tools/million-user-growth-test-schema.ts +49 -0
- package/src/lib/tools/million-user-growth-test.ts +181 -0
- package/src/lib/tools/og-image-generator-render.ts +448 -0
- package/src/lib/tools/og-image-generator-schema.ts +140 -0
- package/src/lib/tools/ops-catalog.ts +102 -0
- package/src/lib/tools/pitch-deck-generator-schema.ts +182 -0
- package/src/lib/tools/pitch-deck-package.ts +0 -0
- package/src/lib/tools/product-agreement-generator-schema.ts +168 -0
- package/src/lib/tools/product-hunt-launch-planner-schema.ts +136 -0
- package/src/lib/tools/product-hunt-launch-planner.format.ts +72 -0
- package/src/lib/tools/product-name-generator-schema.ts +563 -0
- package/src/lib/tools/product-poster-generator-schema.ts +215 -0
- package/src/lib/tools/product-ui-generator-schema.ts +157 -0
- package/src/lib/tools/reddit-pain-point-finder-schema.ts +88 -0
- package/src/lib/tools/resolve-tool-locale-copy.ts +75 -0
- package/src/lib/tools/slug.ts +60 -0
- package/src/lib/tools/social-listening-research-report-schema.ts +105 -0
- package/src/lib/tools/social-platform-asset-adapter-schema.ts +152 -0
- package/src/lib/tools/social-profile-kit.constants.ts +12 -0
- package/src/lib/tools/social-profile-kit.generation.ts +257 -0
- package/src/lib/tools/social-profile-kit.input.ts +290 -0
- package/src/lib/tools/social-profile-kit.manual.ts +481 -0
- package/src/lib/tools/social-profile-kit.package.ts +220 -0
- package/src/lib/tools/social-profile-kit.schema.ts +328 -0
- package/src/lib/tools/startup-idea-research-schema.ts +107 -0
- package/src/lib/tools/tarot-imagery.ts +89 -0
- package/src/lib/tools/tarot-reading.ts +1044 -0
- package/src/lib/tools/tool-message-keys.ts +18 -0
- package/src/lib/tools/types.ts +32 -0
- package/src/lib/tools/user-interview.format.ts +147 -0
- package/src/lib/tools/user-interview.generation.ts +670 -0
- package/src/lib/tools/user-interview.schema.ts +192 -0
- package/src/lib/zip.ts +106 -0
- package/src/services/tools/handlers/gtm-readiness-checklist.ts +71 -0
- package/src/services/tools/handlers/types.ts +7 -0
|
@@ -0,0 +1,704 @@
|
|
|
1
|
+
const toolsUi = {
|
|
2
|
+
draftPreview: "Draft preview",
|
|
3
|
+
draftNotFound:
|
|
4
|
+
"No local draft found. It may have been cleared or the slug does not match.",
|
|
5
|
+
loadingDraft: "Loading draft…",
|
|
6
|
+
draftSlugHint: "Draft slug: {slug}",
|
|
7
|
+
backToTools: "Back to tools",
|
|
8
|
+
nameGenerator: {
|
|
9
|
+
industryLabel: "Industry / niche",
|
|
10
|
+
industryPlaceholder: "e.g. dev tools, commerce",
|
|
11
|
+
keywordsLabel: "Keywords",
|
|
12
|
+
keywordsHint: "Comma-separated",
|
|
13
|
+
keywordsPlaceholder: "growth, automation, collab",
|
|
14
|
+
styleLabel: "Naming style",
|
|
15
|
+
styleProfessional: "Professional",
|
|
16
|
+
stylePlayful: "Playful",
|
|
17
|
+
styleMinimal: "Minimal",
|
|
18
|
+
generate: "Generate names",
|
|
19
|
+
generating: "Generating…",
|
|
20
|
+
regenerate: "Regenerate",
|
|
21
|
+
copy: "Copy",
|
|
22
|
+
copied: "Copied",
|
|
23
|
+
emptyTitle: "Generate eight name candidates",
|
|
24
|
+
emptyHint: "Results appear as copyable cards so you can shortlist, combine, and check domains.",
|
|
25
|
+
},
|
|
26
|
+
socialProfileKit: {
|
|
27
|
+
title: "Profile Kit Generator",
|
|
28
|
+
subtitle: "Generate an editable, downloadable profile kit for each platform.",
|
|
29
|
+
modes: {
|
|
30
|
+
personalCreator: "Personal / Creator",
|
|
31
|
+
brandCompany: "Brand / Company",
|
|
32
|
+
},
|
|
33
|
+
inputModes: {
|
|
34
|
+
form: "Form",
|
|
35
|
+
prompt: "Prompt",
|
|
36
|
+
},
|
|
37
|
+
fields: {
|
|
38
|
+
name: "Name",
|
|
39
|
+
namePlaceholder: "NovaDesk",
|
|
40
|
+
positioning: "What do you do?",
|
|
41
|
+
positioningPlaceholder: "AI workspace for solo founders",
|
|
42
|
+
audience: "Audience",
|
|
43
|
+
audiencePlaceholder: "Creators, indie hackers",
|
|
44
|
+
targetMarket: "Target market",
|
|
45
|
+
brandAsset: "Brand asset",
|
|
46
|
+
brandAssetHint: "Upload a logo or avatar so the generated kit can reuse your real visual asset.",
|
|
47
|
+
brandAssetEmpty: "Upload a logo or avatar",
|
|
48
|
+
brandAssetRemove: "Remove asset",
|
|
49
|
+
tone: "Tone",
|
|
50
|
+
prompt: "Describe your profile",
|
|
51
|
+
promptPlaceholder:
|
|
52
|
+
"Describe the person, product, audience, tone, and platforms you want.",
|
|
53
|
+
},
|
|
54
|
+
tones: {
|
|
55
|
+
modern: "Modern",
|
|
56
|
+
friendly: "Friendly",
|
|
57
|
+
professional: "Professional",
|
|
58
|
+
bold: "Bold",
|
|
59
|
+
minimal: "Minimal",
|
|
60
|
+
},
|
|
61
|
+
targetMarkets: {
|
|
62
|
+
china: "China / Chinese",
|
|
63
|
+
northAmerica: "North America / English",
|
|
64
|
+
japan: "Japan / Japanese",
|
|
65
|
+
europe: "Europe / English",
|
|
66
|
+
global: "Global / English",
|
|
67
|
+
},
|
|
68
|
+
|
|
69
|
+
platforms: {
|
|
70
|
+
x: "X",
|
|
71
|
+
bluesky: "Bluesky",
|
|
72
|
+
threads: "Threads",
|
|
73
|
+
linkedin: "LinkedIn",
|
|
74
|
+
linkedinCompany: "LinkedIn Company",
|
|
75
|
+
instagram: "Instagram",
|
|
76
|
+
tiktok: "TikTok",
|
|
77
|
+
youtube: "YouTube",
|
|
78
|
+
facebook: "Facebook",
|
|
79
|
+
},
|
|
80
|
+
actions: {
|
|
81
|
+
generate: "Generate kit",
|
|
82
|
+
generating: "Generating...",
|
|
83
|
+
regenerate: "Regenerate",
|
|
84
|
+
copy: "Copy",
|
|
85
|
+
copied: "Copied",
|
|
86
|
+
edit: "Edit",
|
|
87
|
+
done: "Done",
|
|
88
|
+
upload: "Upload",
|
|
89
|
+
download: "Download",
|
|
90
|
+
downloadKit: "Download kit",
|
|
91
|
+
replaceColor: "Replace color",
|
|
92
|
+
downloadAll: "Download all platforms",
|
|
93
|
+
allPlatforms: "All platforms",
|
|
94
|
+
fullKit: "Full Profile Kit",
|
|
95
|
+
currentPlatform: "Download current",
|
|
96
|
+
follow: "Follow",
|
|
97
|
+
message: "Message",
|
|
98
|
+
},
|
|
99
|
+
canvas: {
|
|
100
|
+
desktop: "Desktop",
|
|
101
|
+
mobile: "Mobile",
|
|
102
|
+
light: "Light",
|
|
103
|
+
dark: "Dark",
|
|
104
|
+
zoomIn: "Zoom in",
|
|
105
|
+
zoomOut: "Zoom out",
|
|
106
|
+
fit: "Fit",
|
|
107
|
+
selected: "Selected",
|
|
108
|
+
unsupportedBanner: "This platform does not use a profile banner.",
|
|
109
|
+
},
|
|
110
|
+
elements: {
|
|
111
|
+
avatar: "Avatar",
|
|
112
|
+
banner: "Banner",
|
|
113
|
+
displayName: "Display name",
|
|
114
|
+
username: "Handle suggestion",
|
|
115
|
+
bio: "Bio",
|
|
116
|
+
headline: "Headline",
|
|
117
|
+
description: "Description",
|
|
118
|
+
},
|
|
119
|
+
status: {
|
|
120
|
+
defaultReady: "Manual draft template — editable, but not generated by the Agent.",
|
|
121
|
+
generated: "This preview comes from a completed Agent result.",
|
|
122
|
+
validationError: "Check the required fields before generating.",
|
|
123
|
+
mockNotice:
|
|
124
|
+
"This public experience is for draft preview; review rights, trademarks, and platform rules before publishing.",
|
|
125
|
+
idle: "Click to generate",
|
|
126
|
+
queued: "Preparing",
|
|
127
|
+
generating: "Generating",
|
|
128
|
+
ready: "Ready",
|
|
129
|
+
failed: "Retry",
|
|
130
|
+
},
|
|
131
|
+
sections: {
|
|
132
|
+
whatYouGet: "What you get",
|
|
133
|
+
sizes: "Platform-specific sizes",
|
|
134
|
+
howItWorks: "How it works",
|
|
135
|
+
relatedTools: "Related tools",
|
|
136
|
+
faq: "FAQ",
|
|
137
|
+
},
|
|
138
|
+
},
|
|
139
|
+
logoGenerator: {
|
|
140
|
+
formTitle: "Logo brief",
|
|
141
|
+
formHint: "Enter a URL, product name, and product context to generate a logo grounded in the product.",
|
|
142
|
+
optional: "Optional",
|
|
143
|
+
productUrlLabel: "Product URL",
|
|
144
|
+
productUrlPlaceholder: "https://example.com",
|
|
145
|
+
productNameLabel: "Product name",
|
|
146
|
+
productNamePlaceholder: "e.g. Tomako, FoldOS, LaunchKit",
|
|
147
|
+
contextLabel: "Product description & keywords",
|
|
148
|
+
contextPlaceholder:
|
|
149
|
+
"Describe positioning, users, differentiation, and keywords to associate with the logo.",
|
|
150
|
+
industryLabel: "Industry / niche",
|
|
151
|
+
industryPlaceholder: "e.g. AI writing, developer tools",
|
|
152
|
+
audienceLabel: "Target audience",
|
|
153
|
+
audiencePlaceholder: "e.g. indie builders, B2B sales teams",
|
|
154
|
+
styleLabel: "Visual style",
|
|
155
|
+
paletteLabel: "Palette direction",
|
|
156
|
+
customPaletteLabel: "Custom palette",
|
|
157
|
+
customPaletteHint:
|
|
158
|
+
"Leave this empty to infer colors from the reference image, URL, product context, and product name.",
|
|
159
|
+
schemeCountLabel: "Number of logo schemes",
|
|
160
|
+
schemeCountOptions: {
|
|
161
|
+
1: "1",
|
|
162
|
+
2: "2",
|
|
163
|
+
3: "3",
|
|
164
|
+
4: "4",
|
|
165
|
+
5: "5",
|
|
166
|
+
},
|
|
167
|
+
formLabel: "Logo format",
|
|
168
|
+
advancedSettings: "More brand constraints",
|
|
169
|
+
preferencesLabel: "Brand preferences",
|
|
170
|
+
preferencesHint: "Up to 4",
|
|
171
|
+
geometryLabel: "Shape language",
|
|
172
|
+
usageLabel: "Main use",
|
|
173
|
+
notesLabel: "Extra requirements",
|
|
174
|
+
notesPlaceholder: "e.g. avoid cartoon styling, work on dark backgrounds, keep the mark simple.",
|
|
175
|
+
referenceImageLabel: "Reference image",
|
|
176
|
+
referenceImageUpload: "Upload reference image",
|
|
177
|
+
referenceImageHint:
|
|
178
|
+
"Uploaded files are first converted to a real http(s) reference URL before the online image workflow uses them.",
|
|
179
|
+
referenceImagePreviewAlt: "Reference image preview",
|
|
180
|
+
referenceImageRemove: "Remove reference image",
|
|
181
|
+
removeCustomColor: "Remove color",
|
|
182
|
+
generateAgent: "Generate logo image",
|
|
183
|
+
generatingAgent: "Generating…",
|
|
184
|
+
reset: "Start over",
|
|
185
|
+
retryAgent: "Retry generation",
|
|
186
|
+
conversationTitle: "Logo results",
|
|
187
|
+
conversationHint: "Generated PNG source images appear here as thumbnails.",
|
|
188
|
+
agentStatus: "Real image generation / source download",
|
|
189
|
+
assistantIntro:
|
|
190
|
+
"Give me a product URL, name, and description. You can upload a reference image or set a custom palette. When generation finishes, pick a direction and download the source file.",
|
|
191
|
+
userBriefTitle: "My logo brief",
|
|
192
|
+
emptyTitle: "Submit a logo brief",
|
|
193
|
+
emptyHint: "Complete the configuration and generate directly. Results only show previewable, downloadable logo images.",
|
|
194
|
+
emptyBullets: [
|
|
195
|
+
"Product name is the only required field.",
|
|
196
|
+
"The description can include keywords so the prompt understands brand context.",
|
|
197
|
+
"Optional reference images are uploaded as real URLs first.",
|
|
198
|
+
],
|
|
199
|
+
loadingTitle: "Submitting online image task",
|
|
200
|
+
loadingHint: "Generating logo images from your configuration.",
|
|
201
|
+
awaitingResultTitle: "Waiting for images",
|
|
202
|
+
awaitingResultHint:
|
|
203
|
+
"The online image service is returning PNG source files. Thumbnails will appear automatically.",
|
|
204
|
+
statusLabel: "Status: {status}",
|
|
205
|
+
errorTitle: "Generation did not complete",
|
|
206
|
+
resultTitle: "{count} logo schemes generated",
|
|
207
|
+
resultHint: "Click a thumbnail to preview it. Select a result to download the PNG source.",
|
|
208
|
+
partialResultTitle: "{completed}/{total} logo schemes generated",
|
|
209
|
+
partialResultHint: "Ready schemes appear first and can be downloaded while the remaining images continue.",
|
|
210
|
+
selectedResult: "This direction is selected. Download the PNG generated by the online image service.",
|
|
211
|
+
selectedEmpty: "Select a logo direction first.",
|
|
212
|
+
implementationTitle: "Implementation notes",
|
|
213
|
+
reviewTitle: "Review checklist",
|
|
214
|
+
limitationsTitle: "Boundaries",
|
|
215
|
+
downloadPng: "Download PNG source",
|
|
216
|
+
downloadAllPng: "Download all",
|
|
217
|
+
convertToSvg: "Convert to SVG",
|
|
218
|
+
convertingSvg: "Converting SVG…",
|
|
219
|
+
downloadSvg: "Download SVG",
|
|
220
|
+
svgLoadingHint: "Converting the selected logo image into SVG paths for Figma import.",
|
|
221
|
+
svgReadyHint: "SVG is ready with {count} vector paths. Download it directly.",
|
|
222
|
+
downloadError: "Download failed. Select a result and try again.",
|
|
223
|
+
closePreview: "Close preview",
|
|
224
|
+
previousPreview: "Previous image",
|
|
225
|
+
nextPreview: "Next image",
|
|
226
|
+
errors: {
|
|
227
|
+
required: "Enter a product name first.",
|
|
228
|
+
customPalette: "Complete the custom palette: primary, secondary, and accent colors are all required.",
|
|
229
|
+
referenceImage: "Could not read that reference image. Try a PNG, JPG, or WebP.",
|
|
230
|
+
gateway: "The generation service is unavailable. Try again later.",
|
|
231
|
+
agent: "Generation failed. Try again later.",
|
|
232
|
+
taskFailed: "The generation task failed. Retry or try again later.",
|
|
233
|
+
schema: "The result format could not be displayed. Try generating again.",
|
|
234
|
+
resultType: "The result type could not be displayed. Try generating again.",
|
|
235
|
+
noResult: "The task ended, but no displayable logo candidates arrived.",
|
|
236
|
+
svgAgent: "SVG conversion failed. Try again later.",
|
|
237
|
+
svgTaskFailed: "The SVG conversion task failed. Retry or try again later.",
|
|
238
|
+
svgSchema: "The SVG result format could not be displayed. Try converting again.",
|
|
239
|
+
svgResultType: "The SVG result type could not be displayed. Try converting again.",
|
|
240
|
+
svgNoResult: "The task ended, but no downloadable SVG arrived.",
|
|
241
|
+
},
|
|
242
|
+
styles: {
|
|
243
|
+
minimal: "Minimal",
|
|
244
|
+
bold: "Bold",
|
|
245
|
+
friendly: "Friendly",
|
|
246
|
+
premium: "Premium",
|
|
247
|
+
futuristic: "Futuristic",
|
|
248
|
+
},
|
|
249
|
+
palettes: {
|
|
250
|
+
lime: "Lime + black",
|
|
251
|
+
blue: "Electric blue",
|
|
252
|
+
coral: "Coral + yellow",
|
|
253
|
+
mono: "Neutral mono",
|
|
254
|
+
wine: "Wine + soft pink",
|
|
255
|
+
custom: "Custom palette",
|
|
256
|
+
},
|
|
257
|
+
customPaletteSlots: {
|
|
258
|
+
primary: "Primary color",
|
|
259
|
+
secondary: "Secondary color",
|
|
260
|
+
accent: "Accent color",
|
|
261
|
+
},
|
|
262
|
+
forms: {
|
|
263
|
+
combination: "Symbol + wordmark",
|
|
264
|
+
wordmark: "Wordmark only",
|
|
265
|
+
symbol: "Symbol only",
|
|
266
|
+
},
|
|
267
|
+
preferences: {
|
|
268
|
+
trust: "Trust",
|
|
269
|
+
speed: "Speed",
|
|
270
|
+
craft: "Craft",
|
|
271
|
+
ai: "AI-native",
|
|
272
|
+
global: "Global",
|
|
273
|
+
calm: "Calm",
|
|
274
|
+
},
|
|
275
|
+
geometries: {
|
|
276
|
+
rounded: "Rounded",
|
|
277
|
+
sharp: "Sharp",
|
|
278
|
+
organic: "Organic",
|
|
279
|
+
},
|
|
280
|
+
usages: {
|
|
281
|
+
web: "Website",
|
|
282
|
+
app: "App icon",
|
|
283
|
+
social: "Social avatar",
|
|
284
|
+
deck: "Pitch deck",
|
|
285
|
+
},
|
|
286
|
+
directions: {
|
|
287
|
+
primaryLockup: "Primary lockup",
|
|
288
|
+
appIcon: "App icon",
|
|
289
|
+
wordmark: "Wordmark direction",
|
|
290
|
+
monogram: "Monogram mark",
|
|
291
|
+
},
|
|
292
|
+
summary: {
|
|
293
|
+
productUrl: "URL",
|
|
294
|
+
productName: "Product",
|
|
295
|
+
style: "Style",
|
|
296
|
+
palette: "Palette",
|
|
297
|
+
customPalette: "Custom palette",
|
|
298
|
+
form: "Format",
|
|
299
|
+
industry: "Industry",
|
|
300
|
+
audience: "Audience",
|
|
301
|
+
referenceImage: "Reference image",
|
|
302
|
+
},
|
|
303
|
+
},
|
|
304
|
+
ogImageGenerator: {
|
|
305
|
+
chooseTemplate: "Choose a template",
|
|
306
|
+
workspaceTitle: "Template Properties",
|
|
307
|
+
workspaceHint: "Customize template properties and background settings, then export an Open Graph, X Header, or blog cover image.",
|
|
308
|
+
templatePropertiesTitle: "Template Properties",
|
|
309
|
+
templatePropertiesHint: "Customize the editable text, logo, decor image, and template background color.",
|
|
310
|
+
backgroundTitle: "Background",
|
|
311
|
+
backgroundHint: "Set the canvas background, grid overlay, and noise texture.",
|
|
312
|
+
advancedTitle: "AI brief and export",
|
|
313
|
+
advancedHint: "Optional URL, brief, subtitle, and download format controls.",
|
|
314
|
+
sourceUrlLabel: "Page URL",
|
|
315
|
+
sourceUrlPlaceholder: "https://tomako.ai/tools/...",
|
|
316
|
+
fetchMetadata: "Get OG data",
|
|
317
|
+
metadataLoaded: "Runtime page metadata",
|
|
318
|
+
briefLabel: "Extra brief",
|
|
319
|
+
briefPlaceholder: "Describe the launch, audience, tone, and message you want to emphasize.",
|
|
320
|
+
presetLabel: "Target size",
|
|
321
|
+
presets: {
|
|
322
|
+
openGraph: {
|
|
323
|
+
label: "Open Graph",
|
|
324
|
+
meta: "1200 x 630 link preview",
|
|
325
|
+
},
|
|
326
|
+
xHeader: {
|
|
327
|
+
label: "X Header",
|
|
328
|
+
meta: "1500 x 500 profile banner",
|
|
329
|
+
},
|
|
330
|
+
blogFeatured: {
|
|
331
|
+
label: "Blog Featured",
|
|
332
|
+
meta: "1600 x 900 article cover",
|
|
333
|
+
},
|
|
334
|
+
},
|
|
335
|
+
titleLabel: "Title",
|
|
336
|
+
titlePlaceholder: "Launch your product with a preview worth clicking",
|
|
337
|
+
subtitleLabel: "Subtitle",
|
|
338
|
+
subtitlePlaceholder: "Add context, audience, result, or launch message.",
|
|
339
|
+
tagLabel: "Tag",
|
|
340
|
+
tagPlaceholder: "Launch, Growth, Social",
|
|
341
|
+
brandLabel: "Brand",
|
|
342
|
+
brandPlaceholder: "Tomako",
|
|
343
|
+
logoTextLabel: "Logo text",
|
|
344
|
+
logoTextPlaceholder: "T",
|
|
345
|
+
logoLabel: "Logo",
|
|
346
|
+
chooseLogo: "Choose image",
|
|
347
|
+
logoSelected: "Logo selected",
|
|
348
|
+
logoPreviewAlt: "Logo preview",
|
|
349
|
+
decorImageLabel: "Background image",
|
|
350
|
+
chooseDecorImage: "Choose image",
|
|
351
|
+
decorImageSelected: "Background image selected",
|
|
352
|
+
decorImagePreviewAlt: "Background image preview",
|
|
353
|
+
templateBackgroundColorLabel: "Template background color",
|
|
354
|
+
backgroundModeLabel: "Background mode",
|
|
355
|
+
backgroundModes: {
|
|
356
|
+
gradient: "Gradient",
|
|
357
|
+
solid: "Solid color",
|
|
358
|
+
},
|
|
359
|
+
backgroundColorLabel: "Background color",
|
|
360
|
+
gridOverlayLabel: "Grid overlay",
|
|
361
|
+
gridPatternLabel: "Pattern",
|
|
362
|
+
gridPatterns: {
|
|
363
|
+
none: "None",
|
|
364
|
+
grid: "Grid",
|
|
365
|
+
graph: "Graph",
|
|
366
|
+
dots: "Dots",
|
|
367
|
+
},
|
|
368
|
+
gridColorLabel: "Color",
|
|
369
|
+
gridColors: {
|
|
370
|
+
black: "Black",
|
|
371
|
+
white: "White",
|
|
372
|
+
gray: "Gray",
|
|
373
|
+
},
|
|
374
|
+
gridOpacityLabel: "Opacity",
|
|
375
|
+
gridBlurLabel: "Blur radius",
|
|
376
|
+
noiseLabel: "Noise",
|
|
377
|
+
fontFamilyLabel: "Font family",
|
|
378
|
+
fontWeightLabel: "Font weight",
|
|
379
|
+
fontSizeLabel: "Font size",
|
|
380
|
+
textColorLabel: "Text color",
|
|
381
|
+
templateLabel: "Template",
|
|
382
|
+
templates: {
|
|
383
|
+
launch: "Launch",
|
|
384
|
+
editorial: "Editorial",
|
|
385
|
+
minimal: "Minimal",
|
|
386
|
+
bold: "Bold",
|
|
387
|
+
split: "Split",
|
|
388
|
+
quote: "Quote",
|
|
389
|
+
},
|
|
390
|
+
paletteLabel: "Palette",
|
|
391
|
+
paletteOption: "Apply color palette",
|
|
392
|
+
formatLabel: "Download format",
|
|
393
|
+
formats: {
|
|
394
|
+
png: "PNG",
|
|
395
|
+
jpeg: "JPEG",
|
|
396
|
+
webp: "WebP",
|
|
397
|
+
},
|
|
398
|
+
sizeSummary: "{width} x {height}",
|
|
399
|
+
generateAi: "Generate AI directions",
|
|
400
|
+
aiGenerating: "AI generating...",
|
|
401
|
+
generate: "Render image",
|
|
402
|
+
generating: "Rendering...",
|
|
403
|
+
reset: "Reset",
|
|
404
|
+
previewTitle: "Live preview",
|
|
405
|
+
previewHint: "The preview uses the selected size ratio; export renders the exact pixel dimensions.",
|
|
406
|
+
aiSuggestionsTitle: "AI directions",
|
|
407
|
+
aiLoadingTitle: "Generating image directions",
|
|
408
|
+
aiLoadingHint: "The agent fetches URL metadata in Skills-OL, uses your brief, then writes back structured suggestions.",
|
|
409
|
+
loadingTitle: "Rendering image",
|
|
410
|
+
loadingHint: "The browser is drawing the final canvas and preparing the image file.",
|
|
411
|
+
resultTitle: "Image ready",
|
|
412
|
+
resultHint: "{width} x {height} {format} file generated locally.",
|
|
413
|
+
resultAlt: "Generated social image preview",
|
|
414
|
+
download: "Download image",
|
|
415
|
+
status: {
|
|
416
|
+
submitting: "Submitting AI task...",
|
|
417
|
+
running: "Task status: {status}",
|
|
418
|
+
ready: "AI directions are ready. Pick one, edit it, and export the image.",
|
|
419
|
+
},
|
|
420
|
+
errors: {
|
|
421
|
+
urlRequired: "Enter an http or https page URL first.",
|
|
422
|
+
metadata: "Could not fetch Open Graph data for this page. Check that the URL is public.",
|
|
423
|
+
logo: "Could not read that logo image. Try a PNG, JPG, SVG, or WebP.",
|
|
424
|
+
decor: "Could not read that background image. Try a PNG, JPG, SVG, or WebP.",
|
|
425
|
+
invalidInput: "Add a useful title and check the selected options before generating.",
|
|
426
|
+
placeholder: "Replace the placeholder title with real copy before exporting.",
|
|
427
|
+
generate: "The browser could not render the image. Try a shorter title or another format.",
|
|
428
|
+
agent: "AI generation did not complete. Try again later or inspect the LLM Task / Skill Result pipeline.",
|
|
429
|
+
noResult: "The task ended, but no structured og_image_generation result arrived.",
|
|
430
|
+
schema: "Skill Result failed schema validation, so the frontend did not render it.",
|
|
431
|
+
resultType: "Skill Result type did not match, so the frontend did not render it.",
|
|
432
|
+
},
|
|
433
|
+
},
|
|
434
|
+
appStoreScreenshotGenerator: {
|
|
435
|
+
workspaceTitle: "Upload UI screenshots to generate listing images",
|
|
436
|
+
mockNotice: "Uses the live image model; review store policy and final assets before upload.",
|
|
437
|
+
optional: "Optional",
|
|
438
|
+
required: "Required",
|
|
439
|
+
sourceRequired: "Optional",
|
|
440
|
+
optionalFormats: "PNG / JPG / WebP, up to 10 files",
|
|
441
|
+
sourceRequiredWithFormats: "PNG / JPG / WebP, up to 10 files",
|
|
442
|
+
optionalLogoFormats: "PNG / JPG / WebP",
|
|
443
|
+
advancedSummary: "Brand assets and visual settings",
|
|
444
|
+
sourceLabel: "Input source",
|
|
445
|
+
productContextLabel: "Product context",
|
|
446
|
+
productUrlLabel: "Product URL",
|
|
447
|
+
productUrlPlaceholder: "https://tomako.ai/",
|
|
448
|
+
screenshotLabel: "Upload UI screenshot",
|
|
449
|
+
chooseScreenshot: "Drag UI screenshots here, or click to upload",
|
|
450
|
+
replaceScreenshot: "Replace UI screenshots",
|
|
451
|
+
continueUpload: "Upload more",
|
|
452
|
+
previewScreenshot: "Preview screenshot {index}",
|
|
453
|
+
removeScreenshot: "Remove this screenshot",
|
|
454
|
+
closePreview: "Close preview",
|
|
455
|
+
previousScreenshot: "Previous screenshot",
|
|
456
|
+
nextScreenshot: "Next screenshot",
|
|
457
|
+
screenshotRequiredHint: "PNG / JPG / WebP, up to 10 files",
|
|
458
|
+
uploadedFile: "Selected: {name}",
|
|
459
|
+
uploadedFileWithSize: "Selected: {name} ({width} × {height})",
|
|
460
|
+
uploadedFilesWithCount: "Selected {count} files: {names}",
|
|
461
|
+
logoLabel: "Upload logo",
|
|
462
|
+
chooseLogo: "Drag a logo here, or click to upload",
|
|
463
|
+
replaceLogo: "Replace logo",
|
|
464
|
+
uploadedLogoWithSize: "Logo: {name} ({width} × {height})",
|
|
465
|
+
productNameLabel: "Product name",
|
|
466
|
+
productNamePlaceholder: "Tomato",
|
|
467
|
+
benefitsLabel: "Selling points / creative direction",
|
|
468
|
+
benefitsPlaceholder:
|
|
469
|
+
"Example: A productivity app for indie makers to capture ideas and tasks; core features are quick notes, tag management, and progress tracking; keep the style clean, lightweight, and premium.",
|
|
470
|
+
assetCountLabel: "Number of images",
|
|
471
|
+
assetCountHint: "1-10 images",
|
|
472
|
+
assetCountOptions: {
|
|
473
|
+
1: "1",
|
|
474
|
+
2: "2",
|
|
475
|
+
3: "3",
|
|
476
|
+
4: "4",
|
|
477
|
+
5: "5",
|
|
478
|
+
6: "6",
|
|
479
|
+
7: "7",
|
|
480
|
+
8: "8",
|
|
481
|
+
9: "9",
|
|
482
|
+
10: "10",
|
|
483
|
+
},
|
|
484
|
+
outputLanguageLabel: "Output language",
|
|
485
|
+
platformLabel: "Store platform",
|
|
486
|
+
layoutLabel: "Output layout",
|
|
487
|
+
styleLabel: "Visual style",
|
|
488
|
+
paletteLabel: "Palette direction",
|
|
489
|
+
headlineLabel: "Headline",
|
|
490
|
+
headlinePlaceholder: "e.g. Plan every day with less effort",
|
|
491
|
+
subheadlineLabel: "Subheadline",
|
|
492
|
+
subheadlinePlaceholder: "Explain the core feature or benefit in one line.",
|
|
493
|
+
generate: "Generate listing images",
|
|
494
|
+
generating: "Generating…",
|
|
495
|
+
reset: "Start over",
|
|
496
|
+
loadingTitle: "Generating listing images",
|
|
497
|
+
loadingHint: "We are turning your uploaded screenshots into listing images.",
|
|
498
|
+
loadingPhases: {
|
|
499
|
+
submitting: "Preparing assets",
|
|
500
|
+
planning: "Arranging layout",
|
|
501
|
+
generating: "Creating images",
|
|
502
|
+
finalizing: "Getting results ready",
|
|
503
|
+
},
|
|
504
|
+
progressCount: "{completed}/{total} images ready",
|
|
505
|
+
remainingMinutes: "About {minutes} min remaining",
|
|
506
|
+
stillWorking: "Still processing; ready images are kept",
|
|
507
|
+
progressDisclosure: "The first ready image appears here immediately; the rest will continue to fill in.",
|
|
508
|
+
partialReadyHint: "Ready images can be previewed and downloaded while the rest continue.",
|
|
509
|
+
nextImageLoading: "Next image is generating",
|
|
510
|
+
nextImageWithTitle: "Generating: {title}",
|
|
511
|
+
pendingImageLoading: "Listing image {index} is generating",
|
|
512
|
+
pendingImageShort: "Generating",
|
|
513
|
+
partialStillProcessingWarning:
|
|
514
|
+
"Generated {successCount}/{totalCount} images. The remaining images are still processing in the cloud; current results are kept for review, retry, or regeneration.",
|
|
515
|
+
previewTitle: "Listing image preview",
|
|
516
|
+
previewHint: "After generation, select one or more images to download. Download all exports a ZIP package.",
|
|
517
|
+
emptyTitle: "Upload UI screenshots first",
|
|
518
|
+
emptyHint:
|
|
519
|
+
"Upload at least one real UI screenshot. Product name, URL, and selling points can add context; the generated set will be built around the screenshots.",
|
|
520
|
+
downloadTitle: "Export assets",
|
|
521
|
+
downloadHint: "PNG works for store upload; SVG is useful for continued editing.",
|
|
522
|
+
download: "Download",
|
|
523
|
+
cancelDownloadSelection: "Cancel",
|
|
524
|
+
downloadAll: "Download all",
|
|
525
|
+
downloading: "Downloading…",
|
|
526
|
+
downloadPng: "Download PNG",
|
|
527
|
+
downloadSvg: "Download SVG",
|
|
528
|
+
downloadSelectHint: "Select the images you want to download.",
|
|
529
|
+
selectForDownload: "Select {title} for download",
|
|
530
|
+
downloadError: "Download failed. Select images and try again.",
|
|
531
|
+
validationInput: "Upload at least one UI screenshot.",
|
|
532
|
+
validationProductNameRequired: "Enter a product name.",
|
|
533
|
+
validationSourceRequired: "Provide a product URL or upload a UI screenshot.",
|
|
534
|
+
validationScreenshotRequired: "Upload at least one real UI screenshot first.",
|
|
535
|
+
validationScreenshotInput:
|
|
536
|
+
"Screenshots are selected, but their metadata failed validation. Select the UI screenshots again and generate.",
|
|
537
|
+
validationUrl: "Enter a product URL first, or switch to UI screenshot upload.",
|
|
538
|
+
validationUpload: "Upload a UI screenshot first, or switch to product URL input.",
|
|
539
|
+
errorOutput: "The generated result failed validation. Please generate again.",
|
|
540
|
+
partialGenerationWarning:
|
|
541
|
+
"Generated {successCount} image(s); {failedCount} failed: {formats}. You can download the successful result or retry a single layout.",
|
|
542
|
+
generationError: "The Agent or live image task failed. Try again later or reduce input complexity.",
|
|
543
|
+
generationErrorWithDetail: "The Agent or live image task failed: {detail}",
|
|
544
|
+
generationTimeout: "The image task timed out. Try again later or inspect the backend image task status.",
|
|
545
|
+
fileTypeError: "Upload a PNG, JPG, or WebP image.",
|
|
546
|
+
fileReadError: "Could not read the screenshot. Please upload again.",
|
|
547
|
+
defaultProductName: "Your App",
|
|
548
|
+
defaultHeadline: "Show the core feature",
|
|
549
|
+
defaultSubheadline: "Use focused visuals and concise copy to explain why users should download.",
|
|
550
|
+
urlSourceLabel: "URL brief",
|
|
551
|
+
screenshotSourceLabel: "UI screenshot",
|
|
552
|
+
sources: {
|
|
553
|
+
url: "Product URL",
|
|
554
|
+
upload: "UI screenshot",
|
|
555
|
+
},
|
|
556
|
+
platforms: {
|
|
557
|
+
apple: "Apple App Store",
|
|
558
|
+
google: "Google Play",
|
|
559
|
+
},
|
|
560
|
+
outputLanguages: {
|
|
561
|
+
zh: "中文",
|
|
562
|
+
en: "English",
|
|
563
|
+
},
|
|
564
|
+
layouts: {
|
|
565
|
+
mixed: "Complete set",
|
|
566
|
+
portrait: "Portrait set",
|
|
567
|
+
feature: "Feature graphic",
|
|
568
|
+
},
|
|
569
|
+
styles: {
|
|
570
|
+
clean: "Clean product",
|
|
571
|
+
bold: "Bold conversion",
|
|
572
|
+
editorial: "Editorial premium",
|
|
573
|
+
dark: "Dark tactile",
|
|
574
|
+
},
|
|
575
|
+
palettes: {
|
|
576
|
+
auto: "Auto extract",
|
|
577
|
+
brand: "Brand-first",
|
|
578
|
+
mono: "Neutral mono",
|
|
579
|
+
warm: "Warm conversion",
|
|
580
|
+
cool: "Cool tech",
|
|
581
|
+
vibrant: "Vibrant color",
|
|
582
|
+
dark: "Dark tactile",
|
|
583
|
+
},
|
|
584
|
+
formats: {
|
|
585
|
+
iphone: "iPhone screenshot",
|
|
586
|
+
ipad: "iPad screenshot",
|
|
587
|
+
googlePhone: "Google Play phone",
|
|
588
|
+
featureGraphic: "Feature graphic",
|
|
589
|
+
},
|
|
590
|
+
},
|
|
591
|
+
appIconResizer: {
|
|
592
|
+
workspaceTitle: "App icon asset package",
|
|
593
|
+
workspaceHint:
|
|
594
|
+
"Upload one source icon, choose a platform scope, and generate a downloadable ZIP plus individual PNG files. Processing stays local in your browser.",
|
|
595
|
+
uploadLabel: "Upload icon",
|
|
596
|
+
uploadHint: "1024 x 1024+ square PNG recommended, JPG / WebP supported",
|
|
597
|
+
platformLabel: "Platform package",
|
|
598
|
+
fitLabel: "Crop mode",
|
|
599
|
+
backgroundLabel: "Background color",
|
|
600
|
+
backgroundActive: "Used for padding",
|
|
601
|
+
backgroundFallback: "Used behind transparency",
|
|
602
|
+
generate: "Generate icon package",
|
|
603
|
+
generating: "Resizing icons…",
|
|
604
|
+
reset: "Start over",
|
|
605
|
+
previewTitle: "Source preview",
|
|
606
|
+
sourcePreviewAlt: "Uploaded app icon source preview.",
|
|
607
|
+
emptyPreviewTitle: "Drag an icon here, or click to upload",
|
|
608
|
+
emptyPreviewHint:
|
|
609
|
+
"Use a 1024 x 1024 or larger full-bleed square PNG when possible. JPG and WebP can also be resized locally.",
|
|
610
|
+
replaceHint: "Click or drop another file to replace it",
|
|
611
|
+
openPreview: "Open source preview",
|
|
612
|
+
removeSource: "Remove source icon",
|
|
613
|
+
previewDialogTitle: "Source icon preview",
|
|
614
|
+
standardsTitle: "Platform resource summary",
|
|
615
|
+
compactResourceSummary:
|
|
616
|
+
"{count} PNG files will be generated for App Store, Google Play, and common brand folders.",
|
|
617
|
+
packageSummaries: {
|
|
618
|
+
all: "{count} PNG files: Xcode AppIcon.appiconset, App Store 1024, Google Play 512, and Android mipmap.",
|
|
619
|
+
apple: "{count} PNG files: full Xcode AppIcon.appiconset plus a standalone App Store 1024 icon.",
|
|
620
|
+
google: "{count} PNG files: Google Play 512 upload icon plus Android legacy launcher mipmap.",
|
|
621
|
+
},
|
|
622
|
+
groupMeta: "{count} files, up to {max}",
|
|
623
|
+
submissionNote:
|
|
624
|
+
"Apple assets go into Xcode and ship with the build; GooglePlay/app-icon-512.png is for the Play Console App icon.",
|
|
625
|
+
cornerNote:
|
|
626
|
+
"Do not pre-add rounded corners or outer shadows; platforms apply their own masks, corners, or shadows.",
|
|
627
|
+
sourceMeta: "Source size: {width} x {height}",
|
|
628
|
+
loadingTitle: "Generating icon package",
|
|
629
|
+
loadingState: "Rendering each target size, writing the README, and packaging the ZIP.",
|
|
630
|
+
loadingSteps: {
|
|
631
|
+
render: "Render target sizes",
|
|
632
|
+
review: "Check the package",
|
|
633
|
+
readme: "Write the README",
|
|
634
|
+
zip: "Prepare ZIP download",
|
|
635
|
+
},
|
|
636
|
+
resultTitle: "Icon package generated",
|
|
637
|
+
resultHint: "{count} PNG icons, README, and ZIP download are ready.",
|
|
638
|
+
resultTabsLabel: "Result filter",
|
|
639
|
+
resultTabs: {
|
|
640
|
+
all: "All",
|
|
641
|
+
apple: "App Store",
|
|
642
|
+
google: "Google Play",
|
|
643
|
+
},
|
|
644
|
+
assetPreviewTitle: "Icon preview",
|
|
645
|
+
openAssetPreview: "Preview icon",
|
|
646
|
+
previousAsset: "Previous",
|
|
647
|
+
nextAsset: "Next",
|
|
648
|
+
downloadZip: "Download ZIP",
|
|
649
|
+
selectedTitle: "Selected icon",
|
|
650
|
+
downloadPng: "Download PNG",
|
|
651
|
+
outputEmptyTitle: "Upload a source icon and choose a platform",
|
|
652
|
+
outputEmptyHint:
|
|
653
|
+
"Upload a 1024px+ square source icon, choose Apple, Google Play, or both, then generate. The ZIP download and icon previews will appear here.",
|
|
654
|
+
platforms: {
|
|
655
|
+
all: "App Store + Google Play",
|
|
656
|
+
apple: "Apple App Store / iOS",
|
|
657
|
+
google: "Google Play / Android",
|
|
658
|
+
},
|
|
659
|
+
fits: {
|
|
660
|
+
cover: "Center-crop to square",
|
|
661
|
+
contain: "Keep full image with background",
|
|
662
|
+
},
|
|
663
|
+
warnings: {
|
|
664
|
+
notSquare:
|
|
665
|
+
"The source image is not square. The output will be center-cropped without stretching; review subject placement and edges with square source artwork before final upload.",
|
|
666
|
+
below1024:
|
|
667
|
+
"The source image is below 1024px on its shortest side, so Apple 1024 icons will be upscaled and may look soft.",
|
|
668
|
+
svg: "SVG sources are rasterized by the browser before PNG export; complex filters may differ from design-tool exports.",
|
|
669
|
+
googlePlayTooLarge:
|
|
670
|
+
"The Google Play 512 icon is over 1024KB. Regenerate from simpler artwork or compress it before upload.",
|
|
671
|
+
},
|
|
672
|
+
errors: {
|
|
673
|
+
missingFile: "Upload an icon image first.",
|
|
674
|
+
fileType: "Upload a PNG, JPG, or WebP image.",
|
|
675
|
+
fileRead: "Could not read the image. Upload again.",
|
|
676
|
+
invalidSettings: "The settings are invalid. Check the platform package.",
|
|
677
|
+
tooSmall: "The shortest side is below 512px, which is too small for store icon source artwork.",
|
|
678
|
+
tooSmallApple:
|
|
679
|
+
"Apple / App Store assets require source artwork at 1024px or larger. Upload a higher-resolution app icon.",
|
|
680
|
+
tooSmallGoogle:
|
|
681
|
+
"Google Play assets require source artwork at least 512px. Upload a higher-resolution app icon.",
|
|
682
|
+
generate: "Icon generation failed. Try another image or generate again.",
|
|
683
|
+
},
|
|
684
|
+
readme: {
|
|
685
|
+
title: "Tomako App Icon Resizer",
|
|
686
|
+
sourceLine: "Source: {fileName} ({width}x{height})",
|
|
687
|
+
fitLine: "Fit: {fit}",
|
|
688
|
+
backgroundLine: "Transparency: preserved from the source when present; opaque sources keep their original background.",
|
|
689
|
+
assetCountLine: "PNG assets: {assetCount}",
|
|
690
|
+
appleHeading: "Apple / iOS:",
|
|
691
|
+
appleLine1: "- Use Apple/AppIcon.appiconset in Xcode asset catalogs, then upload the build to App Store Connect.",
|
|
692
|
+
appleLine2: "- Apple/AppStoreIcon-1024.png is a standalone 1024px review/export copy.",
|
|
693
|
+
googleHeading: "Google Play:",
|
|
694
|
+
googleLine1: "- Upload GooglePlay/app-icon-512.png in Play Console store listing assets.",
|
|
695
|
+
googleLine2: "- Requirement target: 512x512, 32-bit PNG, sRGB, max 1024KB.",
|
|
696
|
+
androidHeading: "Android brand:",
|
|
697
|
+
androidLine1: "- Use Android/res/mipmap-*/ic_launcher.png for legacy launcher icon handoff.",
|
|
698
|
+
footerLine1: "Keep icons square and full-bleed. Do not pre-round corners or add outer shadows; stores and launchers apply platform masks where needed.",
|
|
699
|
+
footerLine2: "Review the latest Apple and Google documentation before final submission.",
|
|
700
|
+
},
|
|
701
|
+
},
|
|
702
|
+
} as const;
|
|
703
|
+
|
|
704
|
+
export default toolsUi;
|