@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,294 @@
|
|
|
1
|
+
const productPosterGenerator = {
|
|
2
|
+
meta: {
|
|
3
|
+
title: "AI Product Poster Generator: Turn Screenshots, Benefits, and CTAs Into Posters",
|
|
4
|
+
displayTitle: "AI Product Poster Generator",
|
|
5
|
+
description:
|
|
6
|
+
"Enter a product name, benefits, audience, and CTA. Add a URL, logo, screenshots, and brand colors when available to generate a product promo poster for websites, social posts, ads, and OG images.",
|
|
7
|
+
intro: "Turn product context into a downloadable promo poster.",
|
|
8
|
+
category: "SEO marketing tools",
|
|
9
|
+
keywords: [
|
|
10
|
+
"AI product poster generator",
|
|
11
|
+
"product promo poster generator",
|
|
12
|
+
"SaaS marketing poster generator",
|
|
13
|
+
"product screenshot poster",
|
|
14
|
+
"app promo poster generator",
|
|
15
|
+
"web product ad creative",
|
|
16
|
+
"brand consistent ad creative",
|
|
17
|
+
],
|
|
18
|
+
inputSignal: "Product name / benefits / screenshots / logo",
|
|
19
|
+
outputSignal: "Product poster / PNG",
|
|
20
|
+
boundarySignal: "Human review before publishing",
|
|
21
|
+
},
|
|
22
|
+
examples: [
|
|
23
|
+
{
|
|
24
|
+
label: "SaaS website promo",
|
|
25
|
+
input: "Product name, dashboard screenshot, 3 benefits, CTA: Book demo",
|
|
26
|
+
expectedOutput:
|
|
27
|
+
"A product poster for website hero and social launch use, plus a pre-publish review checklist.",
|
|
28
|
+
},
|
|
29
|
+
{
|
|
30
|
+
label: "App launch poster",
|
|
31
|
+
input: "App screenshots, logo, target audience, channels: Product Hunt / X",
|
|
32
|
+
expectedOutput:
|
|
33
|
+
"A launch poster preview, channel ratio cues, asset usage status, and next review steps.",
|
|
34
|
+
},
|
|
35
|
+
],
|
|
36
|
+
guide: {
|
|
37
|
+
workspaceHeading: "AI Product Poster Generator",
|
|
38
|
+
workspaceHint:
|
|
39
|
+
"Add the product name, benefits, audience, CTA, and use case. Optionally include a URL, logo, screenshots, format, style, and brand colors. Preview and download the PNG when it is ready.",
|
|
40
|
+
workspaceBadge: "PNG poster output",
|
|
41
|
+
standard: {
|
|
42
|
+
benefits: {
|
|
43
|
+
title: "What this AI product poster generator helps you create",
|
|
44
|
+
cards: [
|
|
45
|
+
{
|
|
46
|
+
title: "Downloadable product posters",
|
|
47
|
+
body: "Turn product name, benefits, audience, and CTA into a previewable product promo poster you can download as PNG.",
|
|
48
|
+
},
|
|
49
|
+
{
|
|
50
|
+
title: "Product and brand consistency",
|
|
51
|
+
body: "Add a logo, screenshots, and colors so the poster starts from the real interface instead of a generic template.",
|
|
52
|
+
},
|
|
53
|
+
{
|
|
54
|
+
title: "Clear review boundaries",
|
|
55
|
+
body: "Check screenshot privacy, ad claims, crop safety, and asset rights before treating the generated image as publish-ready.",
|
|
56
|
+
},
|
|
57
|
+
],
|
|
58
|
+
},
|
|
59
|
+
imageTextSections: [
|
|
60
|
+
{
|
|
61
|
+
id: "poster-brief",
|
|
62
|
+
title: "From product context\nto a downloadable poster",
|
|
63
|
+
body: [
|
|
64
|
+
"A product promo poster is not just a decorative background. It needs to explain what the product is, who it is for, which value matters, and what CTA should stand out.",
|
|
65
|
+
"Start with a compact brief. The tool turns the product description, audience, use case, and assets into a poster preview for website, social, or growth workflows.",
|
|
66
|
+
],
|
|
67
|
+
image: {
|
|
68
|
+
src: "/tools/product-poster-generator-section-primary-8bit-v2.webp",
|
|
69
|
+
alt: "Pixel-art AI product poster generator visual showing product context becoming a downloadable poster.",
|
|
70
|
+
},
|
|
71
|
+
imageFirst: true,
|
|
72
|
+
},
|
|
73
|
+
{
|
|
74
|
+
id: "poster-variations",
|
|
75
|
+
title: "One product brief,\ndifferent launch channels",
|
|
76
|
+
body: [
|
|
77
|
+
"Website heroes, launch posts, ad tests, Product Hunt images, and OG cards all need different density and crop behavior.",
|
|
78
|
+
"Choose the target use case, format, and visual style so the poster can prioritize headline, screenshot, benefit, and CTA for the channel.",
|
|
79
|
+
],
|
|
80
|
+
image: {
|
|
81
|
+
src: "/tools/product-poster-generator-section-variation-8bit-v2.webp",
|
|
82
|
+
alt: "Pixel-art product poster channel visual showing Web, Social, and Ad poster formats.",
|
|
83
|
+
},
|
|
84
|
+
},
|
|
85
|
+
{
|
|
86
|
+
id: "poster-review",
|
|
87
|
+
title: "Review screenshots,\nclaims, and crops before download",
|
|
88
|
+
body: [
|
|
89
|
+
"The generated image can move into design, launch, or paid media work, but it is not an approved campaign final by itself.",
|
|
90
|
+
"Before downloading, check that screenshots do not include private data, claims are not overstated, brand assets are cleared, and the crop works for the target platform.",
|
|
91
|
+
],
|
|
92
|
+
image: {
|
|
93
|
+
src: "/tools/product-poster-generator-section-support-8bit-v2.webp",
|
|
94
|
+
alt: "Pixel-art product poster review visual showing PNG download, asset checks, and pre-publish review.",
|
|
95
|
+
},
|
|
96
|
+
imageFirst: true,
|
|
97
|
+
},
|
|
98
|
+
],
|
|
99
|
+
generation: {
|
|
100
|
+
title: "How to generate\na product promo poster",
|
|
101
|
+
imageAlt: "Pixel-art product poster workflow showing product brief to PNG download.",
|
|
102
|
+
ctaLabel: "Generate poster",
|
|
103
|
+
steps: [
|
|
104
|
+
{
|
|
105
|
+
title: "Write the product brief",
|
|
106
|
+
body: "Enter the product name, context, audience, and primary CTA. Specific benefits lead to a more focused poster.",
|
|
107
|
+
},
|
|
108
|
+
{
|
|
109
|
+
title: "Choose the poster use case",
|
|
110
|
+
body: "Pick website, social, ad, Product Hunt, or OG use so the hierarchy and base ratio fit the channel.",
|
|
111
|
+
},
|
|
112
|
+
{
|
|
113
|
+
title: "Add brand assets",
|
|
114
|
+
body: "Upload a logo and product screenshots, then choose format, style, and brand colors. You can still generate a first draft without assets.",
|
|
115
|
+
},
|
|
116
|
+
{
|
|
117
|
+
title: "Preview and download PNG",
|
|
118
|
+
body: "Review the poster image, asset status, and pre-publish checklist, then download the PNG for design or launch work.",
|
|
119
|
+
},
|
|
120
|
+
],
|
|
121
|
+
},
|
|
122
|
+
faqIntro:
|
|
123
|
+
"These answers clarify input assets, use cases, commercial review, and how this differs from generic poster templates.",
|
|
124
|
+
faqCtaLabel: "Read questions",
|
|
125
|
+
},
|
|
126
|
+
faq: "Frequently asked questions",
|
|
127
|
+
faqItems: [
|
|
128
|
+
{
|
|
129
|
+
question: "What should I prepare for product poster generation?",
|
|
130
|
+
answer:
|
|
131
|
+
"At minimum, prepare the product name, product context, target audience, and CTA. Better inputs include a product URL, logo, 1-4 UI screenshots, brand colors, and target channel.",
|
|
132
|
+
},
|
|
133
|
+
{
|
|
134
|
+
question: "What products is this screenshot poster generator best for?",
|
|
135
|
+
answer:
|
|
136
|
+
"It works best for SaaS, apps, web tools, plugins, AI products, and developer tools. Use it for website hero images, social launch posts, ad creatives, Product Hunt images, and OG cards.",
|
|
137
|
+
},
|
|
138
|
+
{
|
|
139
|
+
question: "Can I use the generated product poster commercially?",
|
|
140
|
+
answer:
|
|
141
|
+
"The poster can enter a commercial design workflow, but review screenshot privacy, trademark rights, ad claims, platform dimensions, and campaign policy before publishing.",
|
|
142
|
+
},
|
|
143
|
+
{
|
|
144
|
+
question: "Can I generate an app promo poster without a logo or brand colors?",
|
|
145
|
+
answer:
|
|
146
|
+
"Yes. Start with product context, audience, and screenshots. Once your brand system is stable, regenerate with a logo and brand colors for more consistent output.",
|
|
147
|
+
},
|
|
148
|
+
{
|
|
149
|
+
question: "How is this different from Canva or Adobe Express poster templates?",
|
|
150
|
+
answer:
|
|
151
|
+
"General design tools are strong for template editing. This tool starts from product context, UI screenshots, benefits, and channel needs before generating an internet-product-specific poster.",
|
|
152
|
+
},
|
|
153
|
+
],
|
|
154
|
+
ctaPrimary: "Create app store images",
|
|
155
|
+
ctaSecondary: "Generate a logo first",
|
|
156
|
+
ctaHint:
|
|
157
|
+
"If you need app store creatives, start with listing screenshots. If the brand mark is not stable yet, create logo directions first.",
|
|
158
|
+
},
|
|
159
|
+
widget: {
|
|
160
|
+
productNameLabel: "Product name",
|
|
161
|
+
productNamePlaceholder: "e.g. Tomako Launch",
|
|
162
|
+
productUrlLabel: "Product URL",
|
|
163
|
+
productUrlPlaceholder: "https://yourproduct.com",
|
|
164
|
+
contextLabel: "Product context and benefits",
|
|
165
|
+
contextPlaceholder:
|
|
166
|
+
"Explain what the product does and the 2-3 benefits to highlight. Example: creates all launch marketing assets for indie builders.",
|
|
167
|
+
audienceLabel: "Target audience",
|
|
168
|
+
audiencePlaceholder: "e.g. SaaS founders, growth teams, indie builders",
|
|
169
|
+
ctaLabel: "Primary CTA",
|
|
170
|
+
ctaPlaceholder: "Try it free / Book demo / Download app",
|
|
171
|
+
posterIntentLabel: "Poster use case",
|
|
172
|
+
formatLabel: "Poster format",
|
|
173
|
+
styleLabel: "Visual style",
|
|
174
|
+
brandColorsLabel: "Brand colors",
|
|
175
|
+
optional: "Optional",
|
|
176
|
+
advancedLabel: "Add assets and style",
|
|
177
|
+
logoUpload: "Upload logo",
|
|
178
|
+
logoChoose: "Choose logo",
|
|
179
|
+
logoReplace: "Replace logo",
|
|
180
|
+
logoRemove: "Remove logo",
|
|
181
|
+
screenshotUpload: "Upload product screenshots",
|
|
182
|
+
screenshotUploadHint: "Up to 4 PNG / JPG / WebP screenshots",
|
|
183
|
+
screenshotChoose: "Choose screenshots",
|
|
184
|
+
screenshotRemove: "Remove screenshot",
|
|
185
|
+
screenshotCount: "{count} screenshots",
|
|
186
|
+
uploadHint: "PNG / JPG / WebP",
|
|
187
|
+
submit: "Generate product poster",
|
|
188
|
+
submitLoading: "Generating...",
|
|
189
|
+
reset: "Reset",
|
|
190
|
+
reviewNote:
|
|
191
|
+
"Only upload assets you can share publicly. Before downloading, review screenshot privacy, brand rights, ad claims, and platform dimensions.",
|
|
192
|
+
emptyPreviewTitle: "Fill the brief to generate a poster",
|
|
193
|
+
emptyPreviewHint:
|
|
194
|
+
"Product name, benefits, audience, CTA, and use case determine the headline, hierarchy, and download result.",
|
|
195
|
+
loadingTitle: "Generating product poster",
|
|
196
|
+
loadingTipLabel: "Tip",
|
|
197
|
+
loadingTip:
|
|
198
|
+
"This usually takes under a minute. Keep the page open and the downloadable PNG will appear on the right.",
|
|
199
|
+
loadingSteps: {
|
|
200
|
+
prepare: "Organizing product context",
|
|
201
|
+
compose: "Composing headline, benefits, and CTA",
|
|
202
|
+
render: "Rendering poster preview",
|
|
203
|
+
finish: "Preparing download result",
|
|
204
|
+
},
|
|
205
|
+
errorTitle: "Add the key product details first",
|
|
206
|
+
submitErrorTitle: "Poster generation request did not start",
|
|
207
|
+
taskErrorTitle: "Poster generation failed",
|
|
208
|
+
resultErrorTitle: "Poster result is not available yet",
|
|
209
|
+
unreadableResultTitle: "Result cannot be read right now",
|
|
210
|
+
timeoutErrorTitle: "Generation is taking longer than expected",
|
|
211
|
+
retry: "Generate again",
|
|
212
|
+
errors: {
|
|
213
|
+
required: "Add the required fields before creating the product poster.",
|
|
214
|
+
productName:
|
|
215
|
+
"Add the product name. It will be used in the poster title, file name, and product positioning.",
|
|
216
|
+
productContext:
|
|
217
|
+
"Add product context and benefits. Include what the product does and the value you want to highlight.",
|
|
218
|
+
audience:
|
|
219
|
+
"Add the target audience, such as SaaS founders, growth teams, indie builders, or enterprise buyers.",
|
|
220
|
+
primaryCta:
|
|
221
|
+
"Add the primary CTA, such as Try it free, Book demo, Start now, or Download app.",
|
|
222
|
+
invalidUrl: "Use a valid http or https product URL, or leave it blank.",
|
|
223
|
+
weakContext:
|
|
224
|
+
"The product context looks like placeholder text. Add what the product does and the main benefits.",
|
|
225
|
+
submitFailed: "The poster generation service is temporarily unavailable. Try again later.",
|
|
226
|
+
pollFailed: "The poster result is not ready yet. Try again later.",
|
|
227
|
+
imageFailed:
|
|
228
|
+
"The poster image could not be generated. Simplify the benefits, choose another format, or try again later.",
|
|
229
|
+
unreadableResult: "The result cannot be read right now. Try again later.",
|
|
230
|
+
timeout: "Generation is taking longer than expected. Try again later.",
|
|
231
|
+
},
|
|
232
|
+
readyKicker: "Poster ready",
|
|
233
|
+
readyTitle: "Product promo poster is ready",
|
|
234
|
+
readyHint:
|
|
235
|
+
"Preview and download the PNG. Before publishing, review screenshot privacy, claims, and brand rights.",
|
|
236
|
+
downloadPng: "Download PNG",
|
|
237
|
+
generatedPosterAlt: "Generated product promotional poster preview based on the product context.",
|
|
238
|
+
posterDetails: "Poster settings",
|
|
239
|
+
posterChecklist: "Pre-publish checklist",
|
|
240
|
+
assetLogoApplied: "Logo: applied as an exact final PNG layer",
|
|
241
|
+
assetLogoUploadedNotApplied: "Logo: uploaded; review the final poster for exact placement",
|
|
242
|
+
assetLogoMissing: "Logo: not uploaded, no brand mark is invented",
|
|
243
|
+
assetScreenshotReferenceCount: "Product screenshots: {count} reference image(s) sent to generation",
|
|
244
|
+
assetScreenshotInventoryOnly:
|
|
245
|
+
"Product screenshots: {count} file name(s) recorded, not sent as image references",
|
|
246
|
+
assetScreenshotMissing: "Product screenshots: not uploaded, no real UI is invented",
|
|
247
|
+
assetFinalLogoLayer:
|
|
248
|
+
"Final download: model poster kept, then the uploaded logo was layered on top",
|
|
249
|
+
posterChecklistItems: [
|
|
250
|
+
"Confirm that the headline explains product value instead of using a generic slogan.",
|
|
251
|
+
"Check screenshots for private data, test accounts, and unauthorized brands.",
|
|
252
|
+
"Review crop ratio for the target platform and make sure the CTA is readable on mobile.",
|
|
253
|
+
"Before publishing, review brand rights, ad claims, and platform policies.",
|
|
254
|
+
],
|
|
255
|
+
posterIntentLabels: {
|
|
256
|
+
websiteConversion: "Website hero conversion",
|
|
257
|
+
websiteFeature: "Website feature section",
|
|
258
|
+
socialLaunch: "Social product launch",
|
|
259
|
+
socialContent: "Social content cover",
|
|
260
|
+
paidAcquisition: "Paid acquisition test",
|
|
261
|
+
paidRetargeting: "Retargeting ad creative",
|
|
262
|
+
productHuntLaunch: "Product Hunt launch",
|
|
263
|
+
ogBlogCover: "Blog / OG share image",
|
|
264
|
+
},
|
|
265
|
+
formatLabels: {
|
|
266
|
+
multiSize: "Auto",
|
|
267
|
+
ultrawide: "21:9",
|
|
268
|
+
landscape: "16:9",
|
|
269
|
+
landscape32: "3:2",
|
|
270
|
+
landscape43: "4:3",
|
|
271
|
+
square: "1:1",
|
|
272
|
+
portrait34: "3:4",
|
|
273
|
+
portrait: "2:3",
|
|
274
|
+
story: "9:16",
|
|
275
|
+
},
|
|
276
|
+
styleLabels: {
|
|
277
|
+
cleanSaas: "Clean SaaS",
|
|
278
|
+
boldLaunch: "Bold launch",
|
|
279
|
+
premiumEditorial: "Premium editorial",
|
|
280
|
+
playfulApp: "Playful app",
|
|
281
|
+
enterpriseTrust: "Enterprise trust",
|
|
282
|
+
},
|
|
283
|
+
brandPaletteLabels: {
|
|
284
|
+
auto: "Auto",
|
|
285
|
+
tomako: "Tomako",
|
|
286
|
+
ocean: "Tech green",
|
|
287
|
+
violet: "Launch violet",
|
|
288
|
+
mono: "Mono",
|
|
289
|
+
sunset: "Warm orange",
|
|
290
|
+
},
|
|
291
|
+
},
|
|
292
|
+
} as const;
|
|
293
|
+
|
|
294
|
+
export default productPosterGenerator;
|
|
@@ -0,0 +1,234 @@
|
|
|
1
|
+
const productUiGenerator = {
|
|
2
|
+
meta: {
|
|
3
|
+
title: "AI Product UI Generator",
|
|
4
|
+
description: "Enter a product idea, audience, and visual direction to generate app or web interface concepts, visual systems, interaction logic, and an exportable OnePage coding prompt.",
|
|
5
|
+
intro: "Turn a rough product concept into a polished interface direction. Validate the idea with high-quality UI concepts, then export a design spec and coding prompt for AI coding tools.",
|
|
6
|
+
category: "Design tools",
|
|
7
|
+
keywords: [
|
|
8
|
+
"AI product UI generator",
|
|
9
|
+
"AI app interface generator",
|
|
10
|
+
"product page UI generator",
|
|
11
|
+
"UI prompt generator",
|
|
12
|
+
"design spec generator",
|
|
13
|
+
],
|
|
14
|
+
inputSignal: "Product idea, target users, platform, and visual direction",
|
|
15
|
+
outputSignal: "Multi-screen UI plan, visual system, flow, and OnePage prompt",
|
|
16
|
+
boundarySignal: "Generated output is a design draft and needs product review",
|
|
17
|
+
},
|
|
18
|
+
guide: {
|
|
19
|
+
workspaceHeading: "Generate product UI concepts",
|
|
20
|
+
workspaceHint:
|
|
21
|
+
"Enter a rough idea, audience, and visual direction to generate review-ready app or web screens, then export a OnePage prompt for AI coding tools.",
|
|
22
|
+
workspaceBadge: "UI package + OnePage",
|
|
23
|
+
outputs: "What you get",
|
|
24
|
+
outputItems: [
|
|
25
|
+
{
|
|
26
|
+
title: "Multi-screen interface plan",
|
|
27
|
+
body:
|
|
28
|
+
"Generate 3-6 key screens with purpose, layout, visual direction, and interaction notes tied to the product job.",
|
|
29
|
+
},
|
|
30
|
+
{
|
|
31
|
+
title: "Premium visual system",
|
|
32
|
+
body:
|
|
33
|
+
"Get mood, palette, type, component, and motion guidance so the result feels like a designed product, not a wireframe.",
|
|
34
|
+
},
|
|
35
|
+
{
|
|
36
|
+
title: "Feature and business OnePage",
|
|
37
|
+
body:
|
|
38
|
+
"Turn the product definition, feature details, business requirements, user scenarios, and risks into one handoff document.",
|
|
39
|
+
},
|
|
40
|
+
{
|
|
41
|
+
title: "Copy-ready coding prompt",
|
|
42
|
+
body:
|
|
43
|
+
"Export a prompt that describes layout, components, states, responsive behavior, and visual details for AI coding tools.",
|
|
44
|
+
},
|
|
45
|
+
],
|
|
46
|
+
exportHeading: "Export the direction to AI coding",
|
|
47
|
+
exportBody:
|
|
48
|
+
"The output is not just a pretty preview. It packages the product context, design rationale, feature logic, and implementation cues into a OnePage so the build step can stay close to the design intent.",
|
|
49
|
+
exportBullets: [
|
|
50
|
+
"Product definition: what it is, who it serves, and why it matters.",
|
|
51
|
+
"Feature details: how each feature works, where it appears, and what states it needs.",
|
|
52
|
+
"Business and requirements: scenarios, logic, boundaries, risks, and review notes.",
|
|
53
|
+
"Implementation cues: component hierarchy, layout ratios, visual style, motion, and responsive behavior.",
|
|
54
|
+
],
|
|
55
|
+
standardHeading: "What makes a good UI generator",
|
|
56
|
+
standardItems: [
|
|
57
|
+
{
|
|
58
|
+
title: "It impresses visually first",
|
|
59
|
+
body:
|
|
60
|
+
"The tool gives visual taste real weight, so the user can feel the product's potential before judging the logic.",
|
|
61
|
+
},
|
|
62
|
+
{
|
|
63
|
+
title: "It does not invent the logic",
|
|
64
|
+
body:
|
|
65
|
+
"The screen structure must match the submitted product task, audience, platform, and must-have requirements.",
|
|
66
|
+
},
|
|
67
|
+
{
|
|
68
|
+
title: "It is reproducible",
|
|
69
|
+
body:
|
|
70
|
+
"Each screen includes layout, component, state, and implementation notes instead of a mood-board image that cannot be rebuilt.",
|
|
71
|
+
},
|
|
72
|
+
{
|
|
73
|
+
title: "It keeps review boundaries clear",
|
|
74
|
+
body:
|
|
75
|
+
"The package is a design draft. It does not replace product decisions, real data validation, legal review, or production QA.",
|
|
76
|
+
},
|
|
77
|
+
],
|
|
78
|
+
scopeHeading: "Scope and boundaries",
|
|
79
|
+
scopeBody:
|
|
80
|
+
"Best for early product validation, design exploration, PRD drafts, and context preparation before AI coding. It does not prove market demand or produce a production-ready final interface in one pass.",
|
|
81
|
+
scopeBullets: [
|
|
82
|
+
"Supports app, web, desktop, or mixed interface directions.",
|
|
83
|
+
"Works with rough ideas, but clearer users and scenarios produce sharper concepts.",
|
|
84
|
+
"High-risk legal, medical, or financial interfaces still need expert review.",
|
|
85
|
+
"Do not submit customer privacy, unreleased secrets, keys, or sensitive material.",
|
|
86
|
+
],
|
|
87
|
+
useCaseHeading: "Test ideas through visuals",
|
|
88
|
+
useCaseBody:
|
|
89
|
+
"A product idea can feel abstract in a note. Once it becomes interface screens, users and teams can judge faster whether it feels understandable, desirable, and worth building.",
|
|
90
|
+
useCaseBullets: [
|
|
91
|
+
"Turn a one-line idea into the first reviewable screen set.",
|
|
92
|
+
"Clarify information architecture, main flow, and visual tone before coding.",
|
|
93
|
+
"Show investors, designers, developers, or teammates a more concrete product direction.",
|
|
94
|
+
],
|
|
95
|
+
useCases: "Best-fit use cases",
|
|
96
|
+
useCaseItems: [
|
|
97
|
+
{
|
|
98
|
+
title: "Indie builders validating a product",
|
|
99
|
+
body: "Generate screens and a OnePage before deciding whether to move into AI coding, prototyping, or MVP work.",
|
|
100
|
+
},
|
|
101
|
+
{
|
|
102
|
+
title: "PMs clarifying fuzzy requirements",
|
|
103
|
+
body: "Turn user scenarios, feature priority, and interaction structure into material that design and engineering can discuss.",
|
|
104
|
+
},
|
|
105
|
+
{
|
|
106
|
+
title: "Early design exploration",
|
|
107
|
+
body: "Compare platform and visual directions quickly before spending time on high-fidelity details.",
|
|
108
|
+
},
|
|
109
|
+
{
|
|
110
|
+
title: "AI coding prompt prep",
|
|
111
|
+
body: "Export product, requirement, interface, and visual context so coding tools need to guess less.",
|
|
112
|
+
},
|
|
113
|
+
],
|
|
114
|
+
faq: "FAQ",
|
|
115
|
+
faqItems: [
|
|
116
|
+
{
|
|
117
|
+
question: "Does it generate production code?",
|
|
118
|
+
answer:
|
|
119
|
+
"No. It generates UI concepts, product context, and an exportable coding prompt. You can feed the OnePage into an AI coding tool to continue implementation.",
|
|
120
|
+
},
|
|
121
|
+
{
|
|
122
|
+
question: "Can I start with a rough idea?",
|
|
123
|
+
answer:
|
|
124
|
+
"Yes. The tool can create a first direction from a rough concept and list missing information. Clearer product, audience, and scenario details improve the output.",
|
|
125
|
+
},
|
|
126
|
+
{
|
|
127
|
+
question: "Can I hand the result to a designer or developer?",
|
|
128
|
+
answer:
|
|
129
|
+
"Use it as a strong starting point and implementation guide, then review business logic, data states, brand rules, compliance boundaries, and final interaction details.",
|
|
130
|
+
},
|
|
131
|
+
{
|
|
132
|
+
question: "Why export more than an image?",
|
|
133
|
+
answer:
|
|
134
|
+
"An image only shows surface appearance. The OnePage carries product definition, feature details, requirements, and implementation prompts that help AI coding tools reproduce the interface.",
|
|
135
|
+
},
|
|
136
|
+
{
|
|
137
|
+
question: "Can it generate mobile and web together?",
|
|
138
|
+
answer:
|
|
139
|
+
"Yes. Choose mixed platform to get cross-device key screens and a note on which device each screen is best suited for.",
|
|
140
|
+
},
|
|
141
|
+
{
|
|
142
|
+
question: "How is submitted information used?",
|
|
143
|
+
answer:
|
|
144
|
+
"The form content is used as context for the UI package and OnePage. Do not submit sensitive customer data, keys, secret source code, or unauthorized material.",
|
|
145
|
+
},
|
|
146
|
+
],
|
|
147
|
+
ctaHint: "After the UI direction is clear, turn the business story into presentation-ready material.",
|
|
148
|
+
ctaPrimary: "Generate a business deck",
|
|
149
|
+
ctaSecondary: "Back to all tools",
|
|
150
|
+
visualAlt: {
|
|
151
|
+
hero: "AI product UI generator hero visual showing a rough idea becoming a polished product interface package.",
|
|
152
|
+
export: "OnePage export visual showing UI concepts transformed into design specs and a coding prompt.",
|
|
153
|
+
scope: "Scope visual showing app, web, and product requirements entering one interface plan.",
|
|
154
|
+
useCase: "Idea validation visual showing a team judging whether a product is worth building from UI concepts.",
|
|
155
|
+
},
|
|
156
|
+
},
|
|
157
|
+
widget: {
|
|
158
|
+
formTitle: "Describe your product concept",
|
|
159
|
+
formHint: "Keep it lightweight. Give the Agent enough context to judge the product job, audience, and visual direction.",
|
|
160
|
+
productNameLabel: "Product name",
|
|
161
|
+
productNamePlaceholder: "Example: Flowmint, optional",
|
|
162
|
+
ideaLabel: "Product idea",
|
|
163
|
+
ideaPlaceholder:
|
|
164
|
+
"Describe what the product does, who it serves, and what problem it solves. Example: an AI workspace that turns long podcast episodes into short video scripts and a publishing calendar.",
|
|
165
|
+
targetUsersLabel: "Target users",
|
|
166
|
+
targetUsersPlaceholder: "Example: indie builders, podcast creators, B2B sales teams",
|
|
167
|
+
coreScenarioLabel: "Core scenario",
|
|
168
|
+
coreScenarioPlaceholder: "Example: first-run workspace that creates a complete brand",
|
|
169
|
+
platformLabel: "Platform",
|
|
170
|
+
toneLabel: "Visual tone",
|
|
171
|
+
languageLabel: "Output language",
|
|
172
|
+
mustIncludeLabel: "Must include",
|
|
173
|
+
mustIncludePlaceholder: "Example: home, brand list, generated results, export button, team collaboration",
|
|
174
|
+
mustAvoidLabel: "Avoid",
|
|
175
|
+
mustAvoidPlaceholder: "Example: no purple-blue gradients, no card overload, not too enterprise-dashboard",
|
|
176
|
+
submit: "Generate UI package",
|
|
177
|
+
generating: "Generating...",
|
|
178
|
+
workspaceAlt: "Workspace side visual showing a few inputs becoming polished interface concepts.",
|
|
179
|
+
workspaceCaption: "Start with a little product context, generate a reviewable UI direction, then export the full OnePage.",
|
|
180
|
+
trustNotes: [
|
|
181
|
+
"Final results render only from structured Agent writeback, not local template output.",
|
|
182
|
+
"The OnePage includes product definition, feature details, business requirements, and an AI coding prompt.",
|
|
183
|
+
"The generated package is a design draft and still needs human review.",
|
|
184
|
+
],
|
|
185
|
+
platforms: {
|
|
186
|
+
web: "Web",
|
|
187
|
+
mobile: "Mobile app",
|
|
188
|
+
desktop: "Desktop tool",
|
|
189
|
+
mixed: "Mixed",
|
|
190
|
+
},
|
|
191
|
+
tones: {
|
|
192
|
+
premium: "Premium restraint",
|
|
193
|
+
minimal: "Minimal and clean",
|
|
194
|
+
playful: "Light and playful",
|
|
195
|
+
editorial: "Editorial",
|
|
196
|
+
enterprise: "Professional workspace",
|
|
197
|
+
},
|
|
198
|
+
languages: {
|
|
199
|
+
zh: "中文",
|
|
200
|
+
en: "English",
|
|
201
|
+
},
|
|
202
|
+
status: {
|
|
203
|
+
submitting: "Creating task",
|
|
204
|
+
running: "Agent is generating the package",
|
|
205
|
+
awaitingResult: "Waiting for structured result writeback",
|
|
206
|
+
},
|
|
207
|
+
errors: {
|
|
208
|
+
submit: "Submit failed. Please try again later.",
|
|
209
|
+
timeout: "No structured result was found yet. Try again with a more specific product description.",
|
|
210
|
+
resultInvalid: "The result format was incomplete. Please retry.",
|
|
211
|
+
},
|
|
212
|
+
errorLabels: {
|
|
213
|
+
ideaMin: "Describe the product idea in at least 24 characters.",
|
|
214
|
+
placeholder: "Enter a real product idea, not test, demo, or pure numbers.",
|
|
215
|
+
audience: "Describe a real audience or leave this empty.",
|
|
216
|
+
},
|
|
217
|
+
resultLabels: {
|
|
218
|
+
loadingTitle: "Generating the UI package",
|
|
219
|
+
loadingBody: "The Agent is defining the product, then creating screens, visual system, and an exportable OnePage.",
|
|
220
|
+
errorTitle: "Generation did not complete",
|
|
221
|
+
resultEyebrow: "Generated UI package",
|
|
222
|
+
thesis: "Design thesis",
|
|
223
|
+
visualSystem: "Visual system",
|
|
224
|
+
features: "Feature details",
|
|
225
|
+
requirements: "Business and requirements",
|
|
226
|
+
flow: "Interaction flow",
|
|
227
|
+
copy: "Copy OnePage",
|
|
228
|
+
copied: "Copied",
|
|
229
|
+
download: "Download OnePage",
|
|
230
|
+
},
|
|
231
|
+
},
|
|
232
|
+
};
|
|
233
|
+
|
|
234
|
+
export default productUiGenerator;
|