1import{j as e,r as f}from"./react-core-DGbc2Y4Q.js";import{c as X,g as be,S as fe,H as ve,B as R,F as xe}from"./render-app-BKEtI_Gz.js";import{S as we}from"./seo-injector-DcbDJuz9.js";import{B as V}from"./badge-C8BXxVvd.js";import{T as ke,I as ie}from"./textarea-CpPoiUQX.js";import{d as ye,L as je,T as Ne,e as Ae}from"./radix-vendor-BG8iXauy.js";import{b as Se,e as $e,s as te}from"./videoJobSpec-B4EmH5eG.js";import{A as re,t as Ce,J as le,aN as Le,X as Te,aU as Re,aV as K,ai as Ie,aW as Me,aX as Pe,aY as Be,aZ as ze}from"./icons-vendor-C1hvyZgf.js";import"./index-CzV5y2Z9.js";import"./feedback-vendor-lUOMG4xM.js";import"./utils-vendor-DPhhqT8T.js";function Ue({className:a,...o}){return e.jsx(ye,{"data-slot":"tabs",className:X("flex flex-col gap-2",a),...o})}function Ee({className:a,...o}){return e.jsx(je,{"data-slot":"tabs-list",className:X("bg-muted text-muted-foreground inline-flex h-9 w-fit items-center justify-center rounded-lg p-[3px]",a),...o})}function O({className:a,...o}){return e.jsx(Ne,{"data-slot":"tabs-trigger",className:X("data-[state=active]:bg-background dark:data-[state=active]:text-foreground focus-visible:border-ring focus-visible:ring-ring/50 focus-visible:outline-ring dark:data-[state=active]:border-input dark:data-[state=active]:bg-input/30 text-foreground dark:text-muted-foreground inline-flex h-[calc(100%-1px)] flex-1 items-center justify-center gap-1.5 rounded-md border border-transparent px-2 py-1 text-sm font-medium whitespace-nowrap transition-[color,box-shadow] focus-visible:ring-[3px] focus-visible:outline-1 disabled:pointer-events-none disabled:opacity-50 data-[state=active]:shadow-sm [&_svg]:pointer-events-none [&_svg]:shrink-0 [&_svg:not([class*='size-'])]:size-4",a),...o})}function de({className:a,...o}){return e.jsx(Ae,{"data-slot":"tabs-content",className:X("flex-1 outline-none",a),...o})}const b={travel:{label:"æ
é / æ¯é»",promptLabel:"Quiet luxury Hokkaido golf travel",audience:"é«ç«¯æ
é客ã伿¥æå¾
決çè
ãåæµ·éé«ç¾å¤«é±æ«è¡ç¨åç¾",viralMechanic:"quiet arrival, private access, seasonal atmosphere, curated itinerary, understated luxury, first-person immersion",visualLanguage:"quiet luxury Hokkaido golf travel film, private concierge itinerary mood, natural morning light, misty fairway atmosphere, understated hospital
1ity details, elegant slow camera movement, tactile materials, destination-first composition, refined weekend escape tone",guardrail:"é¿å
èªå¤§è¡ç¨æ¿è«¾ãå±éªææãä¾µç¯é±ç§ï¼ç«é¢ä¸åºç¾ä»»ä½å¯è®æåãåå¹ãè»çãæçãèå®ãåçæ¨èªææç½",safetyRule:"Do not imply unsafe travel behavior, exaggerated promises, privacy invasion, or risky filming.",defaultBrief:"åæµ·éæ¸
æ¨é«ç¾å¤«æ
éï¼åç¾çå ´èé§ãç§äººæ¥éãå®éé«å質ç鱿«è¡ç¨ã",samples:["åæµ·éé«ç«¯é«ç¾å¤«é±æ«ï¼å¾ç§äººè»æµéæ¨é§çå ´ï¼å°æé¤å®æè奿¿æ¶å°¾ã","伿¥æå¾
ååæµ·éé«ç¾å¤«è¡ç¨ï¼é黿¯ç§äººæ¥éãçå
·ç´°ç¯ãå¾å®¹æåèå®é質æã"],beats3:[{purpose:"æ¸
æ¨æµé",hook:"Open with a private arrival into a misty Hokkaido golf resort.",spreadAngle:"ç¨å®éæµéæå»ºç«é«ç«¯è¡ç¨",visual:"view from inside a private car approaching a tree-lined golf resort driveway, pale morning fog, soft fairway light, no signage",avoid:"station exits, street signs, tour-bus feeling, license plates, visible resort logos"},{purpose:"çå ´ç´°ç¯",hook:"Show the tactile evidence of a prepared golf weekend.",spreadAngle:"ç¨çå
·èæ¨é§è®æ
ç¨å
·è±¡",visual:"dew on fairway grass, white golf glove, polished club, leather golf bag, low-angle slow push-in toward a misty green",avoid:"golf club brand logos, scoreboards, competitive sports energy, readable numbers"},{purpose:"è¡ç¨æ¶å°¾",hook:"Close with the feeling that every detail has been arranged.",spreadAngle:"çä¸å®¢è£½æåè諮詢æ³å",visual:"suite window overlooking the course at dusk, luggage, plain ivory itinerary folder with no marks, unbranded leather key fob, large clean negative space",avoid:"CTA text, hotel logos, room numbers, printed itinerary words, flashy luxury display"}],beats6:[{purpose:"æ¸
æ¨æµé",hook:"Begin from the back seat or side window of a private car arriving at a misty Hokkaido golf resort.",spreadAngle:"å®éæµéè第ä¸äººç¨±æ²æµ¸æ",visual:"private car slowly turning into a quiet resort approach road lined with trees, morning mist over distant fairway, soft sunrise reflection on glass",avoid:"station exits, public streets, road signs, readable boards, license plates, tour-bus atmosphere"},{purpose:"ç§äººæ¥é",hook:"Show understated concierge service without showing faces.",spreadAngle:"ç§äººåç·èé«ç«¯æåæ",visual:"car door opens, leather luggage and a golf bag are handled carefully by gloved hands, smooth movement, no face-forward portrait",avoid:"uniform logos, car brands, license plates, dramatic chauffeur stereotypes, visible name tags"},{purpose:"æ¸
æ¨çå ´ç´°ç¯",hook:"Move into the tactile details that make this a golf journey.",spreadAngle:"æ¨é§çå ´è¾¨è度",visual:"dew on short grass, white golf glove placed beside an unbranded golf bag, polished club head, misty green in the background, low-angle slow push-in",avoid:"golf brand logos, scorecards, hole numbers, flags with text, crowded tournament mood"},{purpose:"å¾å®¹æç",hook:"Show one calm golfer as a silhouette inside the landscape.",spreadAngle:"å
å¶ãå¾å®¹ã䏿¯ç«¶æç«è",visual:"single traveler seen from behind on a wide misty fairway, slow practice swing or gentle tee shot, open Hokkaido landscape, refined pacing",avoid:"front-facing celebrity shot, victory pose, aggressive sports commercial style, crowds, scoreboards"},{purpose:"æé¤å®æ",hook:"Shift from the fairway to a prepared evening table.",spreadAngle:"å®¢è£½é±æ«è¡ç¨å®æ´æ",visual:"elegant restaurant table under warm light, blank folded reservation card with no visible writing, glassware, linen, seasonal Hokkaido ingredient atmosphere, server hands gently placing a napkin",avoid:"menu text, restaurant signs, wine labels, visible logos, excessive luxury display, readable reservation names"},{purpose:"諮詢æ¶å°¾",hook:"End with a quiet itinerary mood and room to add brand text later.",spreadAngle:"çä¸å®ééè«æ",visual:"luggage, plain ivory itinerary folder with no marks, unbranded leather key fob, suite window overlooking dusk fairway, camera slowly pulls back leaving clean negative space",avoid:"CTA text, brand marks, hotel room numbers, printed schedules, over-advertising tone"}]},food:{label:"ç¾é£ / æå®",promptLabel:"Clean sensory food film",audience:"忡餿¡åå¼ãæç質æãé¤å»³æ°åèæå®çå½±é³çè§ç¾",viralMechanic:"craveable texture, tactile preparation, quiet table ritual, sensory memory, satisfying transformation",visualLanguage:"clean sensory food cinematography, macro texture, warm realistic light, slow tactile hand movement, steam and gloss, elegant table atmosphere, no menu-card storytelling",guardrail:"é¿å
ä¸å¯¦å¥åº·å®£ç¨±ãé度浪費é£ç©ãé«äºç«é¢ï¼ç«é¢ä¸åºç¾ä»»ä½å¯è®æåãåå¹ãèå®ãå
è£æ¨ç±¤ãåçæ¨èªææç½",safetyRule:"Do not imply false health claims, food waste, dirty preparation, or unsafe cooking.",defaultBrief:"ä¸ç¢æ·±å¤çè麵ï¼å¾ç±æ¹¯ãéºµæ¢æèµ·ãçèåé¢ï¼å°å®éåå®å¾ç空ç¢ã",samples:["ä¸é¡å¯é å¾åéå°æ¹ä¸å¥¶æ²¹ï¼åæççæ 30 ç§ç´ æã","å¤å¸ç¤çç±³ççç«ãé¬å·ãç¦é¦è人潮å
å½±ã"],beats3:[{purpose:"飿
¾é¤å",hook:"Open with the single most craveable texture.",spreadAngle:"第ä¸ç¼å°±è®äººæ³å",visual:"extreme macro of steam, gloss, crisp surface, sauce movement, or noodles lifting in warm light",avoid:"menu cards, package labels, price tags, restaurant logos, exaggerated health implication"},{purpose:"æä½è½æ",hook:"Show one clear preparation action that transforms the food.",spreadAngle:"容æéæçæå®åä½",visual:"hands slicing, folding, brushing, pouring, plating, or setting a bowl down with calm precision",avoid:"messy kitchen, wasteful excess, branded tools, readable labels, unsafe cooking gestures"},{purpose:"餿¡æ¶å°¾",hook:"End on a clean table moment that can be edited later.",spreadAngle:"è®è§ç¾æ³æ¶èåºå®¶æåæ³",visual:"final dish hero shot with tableware, soft depth of field, warm ambient light, clean negative space",avoid:"menus, store signs, QR codes, captions, over-styled stock-food look"}],beats6:[{purpose:"飿
¾é¤å",hook:"Start with the strongest texture before showing the full dish.",spreadAngle:"è®è§ç¾ç«å»åä¸ä¾ç",visual:"macro steam, melting fat, crisp surface, bubbling broth, glossy sauce, or a slow tear-open moment",avoid:"written packaging, labels, menus, nutrition claims, cluttered countertop"},{purpose:"åæè³ªå°",hook:"Show the ingredient that signals quality without needing words.",spreadAngle:"建ç«ç實æèä¿¡ä»»",visual:"fresh ingredients handled gently, rinsing, seasoning, cutting board texture, ceramic bowl, natural light",avoid:"brand packaging, supermarket labels, price stickers, artificial color, excessive abundance"},{purpose:"æä½åä½",hook:"Use one precise hand movement as the emotional center.",spreadAngle:"ççèå¯éæ",visual:"kneading, slicing, folding, brushing, pouring, or lifting noodles in slow tactile motion",avoid:"unsafe knife handling, dirty preparation, face-forward chef talking, visible written recipe"},{purpose:"è²é³æ³å",hook:"Make the viewer imagine crunch, sizzle, or pour even if the clip is silent.",spreadAngle:"ç¡è²ä¹è½ææ",visual:"crispy break, grill sizzle, soup pour, sauce drizzle, steam burst, or ice clink",avoid:"dialogue, lip-sync, captions, sound-wave graphics, chaotic montage"},{purpose:"䏿¡åå¼",hook:"Turn plating into a small reveal.",spreadAngle:"å¾è£½ä½è®ææå¾
",visual:"dish placed on an elegant table, napkin adjusted, glassware catching warm light, steam rising",avoid:"menu cards, restaurant signs, table numbers, wine labels, readable reservation cards"},{purpose:"è¨æ¶æ¶å°¾",hook:"Close on one satisfying final image with room for later text.",spreadAngle:"é©åæ¶èèå享",visual:"finished dish, quiet table, empty chair, warm light, clean negative space for editing",avoid:"hard CTA, brand signage, fake handwritten notes, overexposed stock-food shine"}]},product:{label:"ç¢å / éç®±",promptLabel:"Premium clean product short",audience:"æ£å¨æ¯è¼ååãæ³å¿«éçè§£ä½¿ç¨æ
å¢èæè³ªå·®ç°ç社群è§ç¾",viralMechanic:"first-frame product reveal, tactile proof, before-and-after use case, premium detail, clean edit space",visual
1Language:"premium product cinematography, tactile material detail, clean tabletop composition, refined lighting, precise hand movement, commercial but not overhyped",guardrail:"é¿å
èªå¤§åæã忏¬è©¦ãåèªèï¼ç«é¢ä¸åºç¾ä»»ä½å¯è®æåãLogoãå
è£æ¨ç±¤ãå广æç½",safetyRule:"Do not imply fake certifications, exaggerated performance, unsafe usage, or misleading before-and-after results.",defaultBrief:"䏿¬¾é«è³ªæé¨èº«å·¥ä½å
ï¼åç¾æè³ªãæ¶ç´ãæ¾é²çé»èåºéä½¿ç¨æ
å¢ã",samples:["䏿¯ç¡ç·æ»é¼ çéç®±ãæ¡æãæ¡é¢å·¥ä½æµèæ¶ç´ç´°ç¯ã","䏿¬¾é¦æ°è çå¾é»çãç©ºéæ°å尿鿾鬿¶å°¾ã"],beats3:[{purpose:"ç¢åç»å ´",hook:"Open with a clean product reveal that is understandable without words.",spreadAngle:"第ä¸ç¼çæç¢å質æ",visual:"unbranded product on a clean surface, soft directional light, one hand entering frame for scale, no packaging text",avoid:"logos, labels, readable packaging, feature text, fake award badges"},{purpose:"使ç¨èæ",hook:"Show the product solving one practical moment.",spreadAngle:"è®è§ç¾çè§£ç¨é",visual:"hands using the product in a realistic setting, one clear action, tactile material detail",avoid:"exaggerated claims, UI text, unsafe use, cluttered desk, brand marks"},{purpose:"çæ´»æ¶å°¾",hook:"Close with the product naturally placed in the user's day.",spreadAngle:"çä¸è³¼è²·æè©¢ååæ©",visual:"product in a calm lifestyle scene with negative space for later CTA overlay",avoid:"price tags, coupon text, logo close-ups, fake testimonials"}],beats6:[{purpose:"ç¢åç»å ´",hook:"Start with a quiet product reveal, not a text card.",spreadAngle:"強第ä¸å¹",visual:"unbranded product on clean surface, premium light, tactile texture visible, no text",avoid:"logos, labels, readable packaging, title card"},{purpose:"æè³ªç´°ç¯",hook:"Move close enough to make texture feel real.",spreadAngle:"建ç«å¯ä¿¡åº¦",visual:"macro material detail, hand touch, seam, surface, reflection, soft shadow",avoid:"brand marks, printed labels, fake certification marks"},{purpose:"æ ¸å¿åè½",hook:"Show one clear function through action.",spreadAngle:"è®ç¨éä¸ç¼æç½",visual:"hands performing one practical use case in a clean environment",avoid:"feature text, UI labels, exaggerated transformation"},{purpose:"æ
å¢è½æ",hook:"Move the product into a real day.",spreadAngle:"è®è§ç¾æ³åèªå·±ä½¿ç¨",visual:"product moving from desk to bag, kitchen, room, or travel setting",avoid:"price tags, competitor comparison charts, readable notes"},{purpose:"滿æç¬é",hook:"Show a small non-verbal satisfaction cue.",spreadAngle:"æé«æ
ç·è¨æ¶",visual:"calm hand gesture, product placed neatly, clean result without showing words",avoid:"talking head, thumbs-up cliche, fake review text"},{purpose:"CTA çç½",hook:"End with a hero frame made for later overlay.",spreadAngle:"æ¹ä¾¿å¾è£½è½æ",visual:"product hero shot with large natural negative space and warm lighting",avoid:"CTA text, URLs, coupon codes, logos"}]},brand_story:{label:"åç / æ
äº",promptLabel:"Warm brand story film",audience:"æ³çè§£åçç念ãæåæ
度èåéå¯ä¿¡åº¦çæ½å¨å®¢æ¶",viralMechanic:"human craft detail, invisible service, values shown through action, quiet trust, documentary warmth",visualLanguage:"warm brand documentary film, human hands, service details, quiet workplace, restrained premium tone, editorial realism",guardrail:"é¿å
ååéãå客æ¶ãèªå¤§ææï¼ç«é¢ä¸åºç¾å¯è®æä»¶ã忍ãåå¹ãç¶²åææç½",safetyRule:"Do not imply fake clients, fake awards, misleading outcomes, or expose private documents.",defaultBrief:"䏿¯ WEDO æå形象ççï¼åç¾è¨è«ãæ´çè³æãè¦åçç¥èäº¤ä»ææçå®éå°æ¥æã",samples:["è¨è¨å·¥ä½å®¤å¾èåãæè³ªãææ¨£å°äº¤ä»ä½åçåçæ
äºã","é¡§ååéå¦ä½ææ··äºéæ±æ´çæå¯å·è¡æ¹æ¡ã"],beats3:[{purpose:"å¹å¼éå ´",hook:"Open with the quiet work behind the brand.",spreadAngle:"è®åçå¯ä¿¡",visual:"hands arranging blank documents, samples, and tools on a warm desk, no readable text",avoid:"logos, client names, certificates, screen UI"},{purpose:"æåéç¨",hook:"Show the method through physical movement.",spreadAngle:"ææ½è±¡æåå
·è±¡å",visual:"team hands sorting blank cards, reviewing materials, placing objects into a clear structure",avoid:"meeting notes text, faces of private clients, charts with words"},{purpose:"ä¿¡ä»»æ¶å°¾",hook:"End with a polished handoff moment.",spreadAngle:"å½¢æè©¢ååæ©",visual:"plain folder, product sample, calm table, natural negative space for later brand overlay",avoid:"brand slogan, URL, readable proposal, signature text"}],beats6:[{purpose:"åçèµ·é»",hook:"Show the brand through work, not a logo.",spreadAngle:"é¿é廣åæ",visual:"quiet workspace, blank notes, tactile materials, warm light",avoid:"logos, readable text, slogans"},{purpose:"å顿´ç",hook:"Make the client's messy situation visible without exposing data.",spreadAngle:"è®è§ç¾è¢«èªªä¸",visual:"scattered blank cards and materials being organized",avoid:"private data, written client details, screen UI"},{purpose:"æ¹æ³å½¢æ",hook:"Show structure emerging from hands and objects.",spreadAngle:"建ç«å°æ¥æ",visual:"hands grouping blank cards, samples, and folders into a clear plan",avoid:"framework labels, charts with text"},{purpose:"ç´°ç¯æç£¨",hook:"Focus on one quality detail.",spreadAngle:"è®æåæè³ªæ",visual:"close-up of material choice, editing gesture, product sample, refined table detail",avoid:"fake award, brand marks, testimonial text"},{purpose:"交ä»çå»",hook:"Show a calm delivery moment.",spreadAngle:"è®ææå¯æ³å",visual:"plain folder handed across table, no faces, warm trust atmosphere",avoid:"contracts with text, signatures, identifiable clients"},{purpose:"åççç½",hook:"Leave space for the brand message later.",spreadAngle:"é©åå¾è£½ CTA",visual:"clean desk, completed unbranded package, natural negative space",avoid:"logo, URL, CTA text, slogan"}]},event:{label:"æ´»å / 宣å³",promptLabel:"Clean event promo film",audience:"æ£å¨æ±ºå®æ¯å¦å ±åãåå æå享活åè³è¨ç社群è§ç¾",viralMechanic:"arrival energy, venue reveal, people-safe atmosphere, anticipation, highlight recap, clean CTA frame",visual
1Language:"polished event promo cinematography, warm venue light, safe crowd atmosphere, refined detail montage, no readable signage",guardrail:"é¿å
é²åºåè³ã人èä¾µç¯é±ç§ãé¯èª¤æ´»åè³è¨ï¼ç«é¢ä¸åºç¾å¯è®çæ¿ãåçãè°ç¨ãLogoãå广æç½",safetyRule:"Do not expose private attendees, name tags, schedules, tickets, QR codes, or misleading event claims.",defaultBrief:"ä¸å ´åçè¬åº§æ´»åï¼å¾ä¾è³æµéãå ´å°ç´°ç¯ãäº¤æµæ°åå°æ´»åå¾çå®éæ¶å°¾ã",samples:["æ°ç¢åç¼è¡¨æçæµéãå±å°ãé«é©èæè²æ¶å°¾ã","伿¥å
§è¨æ´»åçå ´å°ãæ¡é¢ææãäºåèåéåç
§æ°åã"],beats3:[{purpose:"æ´»åæµé",hook:"Open with people arriving and the venue mood forming.",spreadAngle:"å»ºç«æ³åå çæå¾
",visual:"venue entrance detail, warm lights, people arriving from behind, no signage",avoid:"event posters, QR codes, readable badges, identifiable faces"},{purpose:"ç¾å ´äº®é»",hook:"Show one lively but safe highlight.",spreadAngle:"è®æ´»åæè½é",visual:"hands interacting with display objects, audience silhouettes, speaker stage from distance with no slides visible",avoid:"slide text, sponsor logos, private attendee faces"},{purpose:"æ¶å°¾çç½",hook:"Close with the feeling of a completed event.",spreadAngle:"æ¹ä¾¿å¾è£½å ±å CTA",visual:"empty venue after event, chairs, soft lights, clean negative space",avoid:"date text, URL, ticket text, logo wall"}],beats6:[{purpose:"æµé",hook:"Show the start of arrival energy.",spreadAngle:"è®è§ç¾æ³é²å ´",visual:"people entering venue from behind, warm lobby light, no signage",avoid:"readable posters, badges, tickets"},{purpose:"å ´å°",hook:"Reveal the venue quality.",spreadAngle:"建ç«ä¿¡ä»»",visual:"venue detail, chairs, lighting, stage shape, no screens with text",avoid:"slide text, sponsor logos, room numbers"},{purpose:"äºå",hook:"Show attendees engaging without exposing identity.",spreadAngle:"çé åèæ",visual:"hands interacting with objects, blurred audience, safe mid shots",avoid:"clear faces, name tags, written cards"},{purpose:"亮é»",hook:"Capture one highlight moment.",spreadAngle:"æé«å®æ",visual:"applause texture, display reveal, product experience, warm stage light",avoid:"slide content, public claims, visible brand marks"},{purpose:"交æµ",hook:"Shift to quiet networking.",spreadAngle:"è®æ´»åæå¾çºå¹å¼",visual:"small groups from behind, coffee cups, blank materials, warm ambience",avoid:"business cards text, name tags, private conversations"},{purpose:"ä¸ä¸å ´",hook:"End with a clean invitation frame.",spreadAngle:"交給å¾è£½ CTA",visual:"empty venue, light fading, clean negative space for Remotion overlay",avoid:"event date text, URL, QR code, sponsor wall"}]},book:{label:"æ¸ç± / è§é»",promptLabel:"Editorial book trailer",audience:"åæ¡é±è®ãè§é»æ´çãä½è
å
§å®¹èæ¸ç±æ¨è¦ç社群è§ç¾",viralMechanic:"quiet hook, page texture, idea object, author desk mood, collectible insight, clean quote overlay space",visualLanguage:"editorial book trailer, paper texture, quiet desk, warm reading light, cinematic close-ups, no readable pages",guardrail:"é¿å
é²åºæªææ¬æ¸é å
¨æã忏è©ãåä½è
èæ¸ï¼ç«é¢ä¸åºç¾å¯è®æåãå°é¢æ¨é¡ãå广æç½",safetyRule:"Do not show readable copyrighted pages, fake endorsements, fake awards, or misleading claims.",defaultBrief:"䏿¬éæ¼ AI èåçä¿¡ä»»çæ°æ¸å®£å³ççï¼åç¾é±è®ãçè¨ãè§é»å½¢æèéè«è®è
è¡åã",samples:["ç¨ 30 ç§å䏿¬åæ¥æ¸çè§é»ççï¼ä¸é²åºå¯è®å
§æã","ä½è
æ¡é¢ãæ¸é ãçè¨èåå¸å¤æ¯ï¼åææ°æ¸é åã"],beats3:[{purpose:"é±è®é¤å",hook:"Open with a book mood, not a readable cover.",spreadAngle:"è®è§ç¾é²å
¥é±è®æ",visual:"closed blank book, warm desk lamp, hand touching paper edge, no readable title",avoid:"book cover text, page text, author name, quote text"},{purpose:"è§é»å½¢æ",hook:"Show an idea being shaped through objects.",spreadAngle:"ææ½è±¡è§é»è®ç«é¢",visual:"blank notes, pencil, page texture, objects arranged into a simple system",avoid:"written notes, readable pages, diagrams with words"},{purpose:"éè«æ¶å°¾",hook:"Close with a clean frame for a quote or CTA overlay.",spreadAngle:"æ¹ä¾¿åå¾è£½åå¹è CTA",visual:"book on desk beside window light, large negative space",avoid:"CTA text, URL, cover title, fake review badges"}],beats6:[{purpose:"æ¸çæ°£æ°",hook:"Start with a tactile reading mood.",spreadAngle:"第ä¸ç¼åæ¸ç±é å",visual:"blank book, warm light, paper texture, hand entering frame",avoid:"readable cover, text pages, title card"},{purpose:"å顿è",hook:"Show why the idea matters without words.",spreadAngle:"建ç«çé»",visual:"messy blank notes, closed laptop glow with
1no UI, quiet desk tension",avoid:"screen text, written notes, statistics"},{purpose:"ç¿»é ",hook:"Use a page movement as transition.",spreadAngle:"å¢å ç¯å¥",visual:"page turn close-up with no readable text, paper shadow, warm light",avoid:"visible paragraphs, quotes, chapter titles"},{purpose:"è§é»æ´ç",hook:"Show the idea becoming structure.",spreadAngle:"è®äººæ³æ¶è",visual:"blank cards arranged neatly, pencil line without visible writing, objects forming a system",avoid:"framework text, arrows with labels"},{purpose:"ä½è
æ¡é¢",hook:"Reveal the working atmosphere behind the book.",spreadAngle:"建ç«ç實è親è¿",visual:"quiet writing desk, tea, blank manuscript stack, window light",avoid:"author face if not provided, manuscript text, publisher logos"},{purpose:"è®è
éè«",hook:"End with space for a quote overlay.",spreadAngle:"æ¹ä¾¿å¾è£½è½æ",visual:"book silhouette and clean negative space, calm final frame",avoid:"CTA text, URL, cover title, fake endorsements"}]},knowledge:{label:"ç¥è / è§é»",promptLabel:"Clean knowledge and insight film",audience:"æ³å¿«éç解趨å¢ã忥ãAIãçæ´»ç¥èèæ¹æ³è«ççå½±é³è§ç¾",viralMechanic:"visual paradox, problem-to-system transformation, editorial metaphor, practical action, calm authority",visualLanguage:"editorial explainer film without text, metaphor-driven object scenes, clean workspace, physical systems replacing charts, calm decision-making mood, no talking head",guardrail:"é¿å
製é ç¦æ
®ãèªå¤§é æ¸¬ãæªèå¯¦æ¸æï¼ç«é¢ä¸åºç¾ä»»ä½å¯è®æåãåå¹ãå表æåãè¢å¹ UI ææç½",safetyRule:"Do not create fear, exaggerated predictions, fake statistics, or misleading charts.",defaultBrief:"AI æä»£ï¼åççæ£ç¼ºç䏿¯æ´å¤è²¼æï¼èæ¯è½è¢«äººå AI åæçè§£çå
§å®¹è³ç¢ã",samples:["çºä»éº¼è¶å¿ç人è¶éè¦ä¸å¥å
§å®¹ç³»çµ±ï¼è䏿¯æ´å¤å·¥å
·ã","ç¨ä¸åç«é¢èªªæï¼AI è®æ®éå·¥ä½è®ä¾¿å®ï¼ä¹è®å¤æ·åæ´å¼é¢ã"],beats3:[{purpose:"å常èéå ´",hook:"Show a visual contradiction that makes people pause.",spreadAngle:"è®è§ç¾æ³ç¥éçºä»éº¼",visual:"one messy digital-looking workspace beside one calm physical decision object, no readable screens",avoid:"charts with text, UI dashboards, talking-head explanation, fake statistics, alarmist imagery"},{purpose:"æ ¸å¿é±å»",hook:"Translate the abstract idea into one physical system.",spreadAngle:"容æè¢«çè§£èè½å³",visual:"hands sorting blank cards, plain folders, tools, and layered objects into a clear structure",avoid:"written labels, arrows with words, whiteboard text, floating typography, overcomplicated diagrams"},{purpose:"è¡åç«é¢",hook:"End with a simple next-step visual.",spreadAngle:"è®è§ç¾è¦ºå¾å¯å·è¡",visual:"clean workspace, one organized tray, closed loop, calm decision moment, natural negative space",avoid:"CTA text, checklist writing, app UI, exaggerated productivity fantasy"}],beats6:[{purpose:"å常èéå ´",hook:"Open with a visual paradox instead of a written claim.",spreadAngle:"第ä¸ç§è£½é å顿",visual:"busy desk, many blank paper stacks, and one calm decision object in sharp focus",avoid:"text overlays, fake charts, readable documents, facial lecture, fear-based visual language"},{purpose:"åé¡å
·è±¡å",hook:"Make the pain visible without words.",spreadAngle:"è®è§ç¾è¦ºå¾è¢«èªªä¸",visual:"scattered content objects, blurred device glow with no readable UI, fragmented workflow represented by separated blank cards",avoid:"screenshots, app names, UI text, notification text, exaggerated chaos"},{purpose:"è½æé±å»",hook:"Show the system starting to form.",spreadAngle:"徿··äºå°ç§©åº",visual:"hands reorganizing blank cards, folders, and objects into simple rows and layers",avoid:"written frameworks, labeled arrows, diagrams with words, floating icons with text"},{purpose:"è§é»èæ",hook:"Give the idea a credible editorial feel.",spreadAngle:"å¢å ä¿åå¹å¼",visual:"plain case folders, archive shelves, product samples, research-like desk layout with no labels",avoid:"confidential-looking documents, readable data, logos, fake certificates"},{purpose:"å¯å·è¡åä½",hook:"Show one simple action anyone can copy.",spreadAngle:"帶åå享給åäº",visual:"hands choosing one blank priority card, placing it at the center, closing a notebook without visible writing",avoid:"checklist text, app tutorial UI, motivational slogans, unrealistic automation imagery"},{purpose:"乾淨æ¶å°¾",hook:"End on a calm visual conclusion.",spreadAngle:"åä¸å¼µå¯è½å³çè§é»å°é¢",visual:"minimal editorial closing frame with organized objects and clean negative space for later captions",avoid:"title cards, visible words, overdesigned infographic style, stock corporate montage"}]},entertainment:{label:"卿¨ / åæ",promptLabel:"Clean entertainment and reaction film",audience:"åæ¡è¼é¬ãåå·®ãææ°ãçæ´»è§å¯èå¯äºåµç´ æççå½±é³è§ç¾",viralMechanic:"anticipation, prop-based reveal, visual contrast, expressive body language, safe loop-friendly ending",visual
1Language:"playful commercial reaction film, clean prop-driven storytelling, expressive body language, precise comedic timing, non-verbal visual humor, safe everyday setting",guardrail:"é¿å
ç¾è¾±å人ãå±éªææ°ãæ¿æ²»æ»æãä½ä¿æ¡æï¼ç«é¢ä¸åºç¾ä»»ä½å¯è®æåãåå¹ãå°è©±æ¡ãè¢å¹æåææç½",safetyRule:"Do not show humiliation, dangerous challenges, political attacks, vulgar malice, or identifiable harassment.",defaultBrief:"ä¸åä¸çæææ··äºæ¡é¢æ´çæå®ç¾å·¥ä½ç«ï¼éç¨åè¿·ä½ ææ°ï¼çµå°¾æåå·®æã",samples:["è²åªçå°èªå餵é£å¨ååçèªå¼µåæï¼ä½ç«é¢è¦ä¹¾æ·¨å¯æã","æå以çºåªæ¯æ®é便ç¶ï¼æéå¾åç²¾åéç®±ã"],beats3:[{purpose:"åæé¤å",hook:"Start at the moment just before the reaction.",spreadAngle:"è®è§ç¾çèçä¸ä¸ç§",visual:"person notices a surprising object or situation, expressive body language, no speaking",avoid:"mockery, humiliation, dangerous stunt setup, readable phone screen, dialogue"},{purpose:"åå·®å±é",hook:"Make the situation escalate through props and movement.",spreadAngle:"容æè¢«åªæè¿·å ç´ æ",visual:"simple challenge action, prop transformation, exaggerated but clean reaction, safe physical comedy",avoid:"injury risk, political targets, vulgar gesture, text-based joke, cluttered room"},{purpose:"Loop æ¶å°¾",hook:"End in a way that can loop back to the beginning.",spreadAngle:"æåéæç",visual:"final reset pose, object returns to starting position, clean frame with visual punchline",avoid:"caption-dependent punchline, spoken punchline, harsh prank energy, identifiable bystanders"}],beats6:[{purpose:"åæåä¸ç§",hook:"Freeze the anticipation before the reaction.",spreadAngle:"第ä¸ç§åèå£",visual:"person staring at an unexpected prop, hands paused, clean everyday setting, no dialogue",avoid:"readable screens, prank humiliation, fear reaction, unsafe object"},{purpose:"å°äºä»¶åå",hook:"Show the trigger clearly.",spreadAngle:"è§ç¾ä¸ç¼çæ",visual:"box opens, object moves, door reveals something, machine starts without labels or UI",avoid:"branded packaging, warning labels, text instructions, dangerous mechanism"},{purpose:"åå·®è®å¤§",hook:"Escalate the visual surprise.",spreadAngle:"å½¢æå享é»",visual:"unexpected size contrast, tidy prop transformation, playful staging with clear before-and-after",avoid:"chaotic mess, property damage, offensive stereotype, readable joke signs"},{purpose:"身é«åå",hook:"Use movement instead of words.",spreadAngle:"è·¨èªè¨ä¹è½çæ",visual:"double take, cautious step back, excited hand gesture, safe non-verbal comedic timing",avoid:"falling injury, aggressive chase, speaking to camera, exaggerated cruelty"},{purpose:"第äºåé©å",hook:"Add a final twist through a small visual reveal.",spreadAngle:"è®è§ç¾é¡æçå®",visual:"secondary object appears, hidden compartment opens, small prop changes the meaning",avoid:"text reveal, phone-message reveal, mean-spirited twist, real personal information"},{purpose:"Loop æ¶å°¾",hook:"Close with a frame that resets the joke.",spreadAngle:"æé«éæç",visual:"return to the starting pose or object position, loop-friendly clean ending",avoid:"caption-dependent ending, verbal punchline, hard cut to black with text"}]},anime:{label:"åæ¼« / å¥å¹»",promptLabel:"Original anime-inspired fantasy film",audience:"忡忼«æãè§è²ä¸çè§ãéæ²æãAI è¦è¦ºå¥è§èäºåµç´ æççå½±é³è§ç¾",viralMechanic:"iconic silhouette, original character reveal, power awakening, screenshot-worthy worldbuilding, cliffhanger composition",visualLanguage:"original anime-inspired cinematic fantasy, expressive character acting, dynamic camera, glowing atmosphere, invented worldbuilding, no speech bubbles, no franchise resemblance",guardrail:"é¿å
仿åç¹å®æ¢æ IPãè¡è
¥æ´åãå
å°ä¸ç¶å
§å®¹ï¼ç«é¢ä¸åºç¾ä»»ä½å¯è®æåãåå¹ã符ææåãå°è©±æ¡ææç½",safetyRule:"Do not imitate a specific existing IP, franchise, named character, or copyrighted visual identity. Avoid gore and inappropriate minor-related content.",defaultBrief:"ä¸ä½å¹´è¼å®æ¸äººæé䏿¬ç¼å
夿¸ï¼
1åå¸ä¸ç©ºæµ®ç¾è³ææåï¼åç¥èç³»å¥å¹»é åã",samples:["ä¸é»æ©æ¢°è²å¨å¤å¸å±é 追éç¼å
è³æéã","æ¨éçæ± è®æå®å®å¼æï¼ä¸å坿æ©å¨äººå®èæ¦çæåã"],beats3:[{purpose:"è§è²ç»å ´",hook:"Introduce the original character with one iconic silhouette.",spreadAngle:"è®è§ç¾æ³æªå",visual:"backlit original character silhouette, glowing object, wind movement, dramatic but clean atmosphere",avoid:"specific franchise style, recognizable named-character design, readable runes, speech bubbles"},{purpose:"è½å覺é",hook:"Show a visual power or transformation without symbols that look like text.",spreadAngle:"ç¢çåå ´é¢æ",visual:"energy field, particles, floating objects, outfit or environment shift, expressive hand motion",avoid:"blood, gore, text-like magical circles, copyrighted costume cues, spoken spellcasting"},{purpose:"ä¸çéå±",hook:"Reveal a larger world beyond the character.",spreadAngle:"è®è§ç¾æå¾
ä¸ä¸é",visual:"wide original fantasy reveal, skyline, library, sky portal, constellation-like light without letters",avoid:"title cards, map labels, faction logos, existing IP resemblance, subtitle-style framing"}],beats6:[{purpose:"è§è²åªå½±",hook:"Open with a memorable original silhouette.",spreadAngle:"第ä¸ç§æè§è²è¨æ¶é»",visual:"original anime-inspired character silhouette, backlight, wind, glowing object, clean negative space",avoid:"famous character resemblance, franchise color scheme, readable symbols, title text"},{purpose:"ç°å¸¸ç¼ç",hook:"Show the world becoming strange.",spreadAngle:"è£½é æ¸å¿µ",visual:"ordinary place bending into fantasy through light, particles, and object levitation, no readable signs",avoid:"signboards, school-name text, UI overlays, violent panic, copied IP locations"},{purpose:"è½å覺é",hook:"Make the power visible through motion and light.",spreadAngle:"å½¢ææªåé»",visual:"hands, eyes, glowing prop, energy field, transformation ripple, expressive character acting",avoid:"speech bubbles, spell text, gore, suggestive minor framing, copyrighted weapon design"},{purpose:"åä½å ´é¢",hook:"Add one clean action beat.",spreadAngle:"æåç¯å¥",visual:"dash, leap, camera orbit, object chase, non-violent fantasy movement with elegant timing",avoid:"realistic injury, blood, gun violence, chaotic fight montage, branded costumes"},{purpose:"ä¸çè§æé²",hook:"Reveal the bigger system without written lore.",spreadAngle:"è®è§ç¾æ³è¿½å¾çº",visual:"portal, skyline, library, floating map-like light pattern with no letters, symbolic architecture",avoid:"map labels, faction emblems with text, exposition screens, title cards"},{purpose:"é£è¼æ¶å°¾",hook:"End on a cliffhanger image that can lead to another episode.",spreadAngle:"åä¸ä¸éé å",visual:"character turns toward glowing horizon, unanswered visual mystery, clean negative space",avoid:"episode title text, dialogue, narration, direct imitation of anime openings"}]},buzz:{label:"å
«å¦ / ç±è°",promptLabel:"Clean social buzz and mystery film",audience:"éæ³¨ç¤¾ç¾¤ç±é»ãå人äºä»¶ã忥çè°ãåçç¿»è»è輿è«è§å¯ççå½±é³è§ç¾",viralMechanic:"missing piece, clue reconstruction, public attention without screenshots, silent tension, unresolved ending",visualLanguage:"cinematic social-buzz reconstruction, blurred crowd energy, abstract phone glow with no readable UI, investigative mood, privacy-safe visual clues, no screenshots",guardrail:"é¿å
æé ææ§ãé²åºç實åè³ãæ¿æ²»ä»æ¨ãåè½æ»æï¼ç«é¢ä¸åºç¾ä»»ä½å¯è®æåãåå¹ãçè¨æªåã帳èå稱ææç½",safetyRule:"Do not fabricate accusations, expose private information, show real comment screenshots, or imply defamatory claims.",defaultBrief:"ä¸ååçæ·±å¤çªç¶æ¤ä¸çè°è²¼æï¼ç¤¾ç¾¤éå§æªåãè¨è«ãçå¾
宿¹åæã",samples:["ä¸å ´ç¼è¡¨æå¾ï¼ç¾å ´åè³è¡¨æ
è®ç¤¾ç¾¤éå§çæ¸¬çæ£ç¼çä»éº¼ã","ææå使¡çªç¶æ¶å¤±ï¼çä¸åçæ«¥çªãææ©éç¥å
å½±èæ²é»æè°å®¤ã"],beats3:[{purpose:"æ¸å¿µéå ´",hook:"Open with the missing piece, not the accusation.",spreadAngle:"è®è§ç¾æ³ç¥éå¾çº",visual:"empty stage, closed laptop, p
1hone face down glowing softly, tense silence, no readable screen",avoid:"real names, account handles, news screenshots, defamatory implication, political hate symbols"},{purpose:"ç·ç´¢æ¼å",hook:"Show multiple visual clues without making claims.",spreadAngle:"製é è¨è«èçæ¸¬",visual:"hands arranging blurred photos, blank notes, abstract notification light, privacy-safe investigative mood",avoid:"readable comments, private messages, personal data, logos, text-based evidence"},{purpose:"çå¾ åæ",hook:"End with unresolved tension.",spreadAngle:"é©åçè¨è¨è«",visual:"quiet meeting room, unopened door, phone turned face down, camera slowly pulling back",avoid:"official statement text, brand logos, hostile crowd, spoken allegation, doxxing cues"}],beats6:[{purpose:"缺å¸é¤å",hook:"Show what is suddenly absent.",spreadAngle:"社群ç±è°çèµ·é»",visual:"empty display area, dark screen glow, removed object space, quiet room with no readable evidence",avoid:"real brand marks, screenshots, deleted-post text, account names, accusation framing"},{purpose:"åè§æ´æ£",hook:"Show people noticing without showing posts.",spreadAngle:"å½¢æç¾¤é«æ",visual:"hands holding phones with abstract blurred light, faces out of focus, soft crowd energy",avoid:"readable UI, comment threads, identifiable faces, harassment atmosphere, news tickers"},{purpose:"ç·ç´¢éçµ",hook:"Make the audience feel a pattern forming.",spreadAngle:"å¼ç¼æ¨çæ ¾",visual:"blurred photos, blank sticky notes, timeline-like objects with no writing, hands rearranging clues",avoid:"private information, written dates, names, legal documents, misleading proof"},{purpose:"éä¿å¼µå",hook:"Show the silent room where decisions happen.",spreadAngle:"è®äºä»¶ææ²åæ§",visual:"closed meeting room, tense body language, chair slightly pulled back, laptop closed, no speaking",avoid:"logos, nameplates, readable documents, aggressive confrontation, political targeting"},{purpose:"åè½æç¤º",hook:"Reveal one visual detail that changes the mood.",spreadAngle:"æé«å®æ",visual:"object left behind, light turns off, someone pauses before leaving, phone reflection shifts",avoid:"text reveal, incriminating note, real-person likeness, defamatory visual claim"},{purpose:"æ¸å¿µæ¶å°¾",hook:"End without answering everything.",spreadAngle:"帶åçè¨èè½å³",visual:"door closing, phone face down, city night reflection, clean unresolved frame",avoid:"final verdict text, explicit accusation, callout graphics, hostile mob energy"}]}},y={vertical30:{label:"9:16 ç´å¼ï½30 ç§",aspect:"9:16",duration:"30 ç§",durationSeconds:30,orientation:"ç´å¼",segmentLabel:"3 段"},vertical45:{label:"9:16 ç´å¼ï½45 ç§",aspect:"9:16",duration:"45 ç§",durationSeconds:45,orientation:"ç´å¼",segmentLabel:"5 段"},vertical60:{label:"9:16 ç´å¼ï½60 ç§",aspect:"9:16",duration:"60 ç§",durationSeconds:60,orientation:"ç´å¼",segmentLabel:"6 段"},horizontal30:{label:"16:9 æ©«å¼ï½30 ç§",aspect:"16:9",duration:"30 ç§",durationSeconds:30,orientation:"æ©«å¼",segmentLabel:"3 段"},horizontal45:{label:"16:9 æ©«å¼ï½45 ç§",aspect:"16:9",duration:"45 ç§",durationSeconds:45,orientation:"æ©«å¼",segmentLabel:"5 段"},horizontal60:{label:"16:9 æ©«å¼ï½60 ç§",aspect:"16:9",duration:"60 ç§",durationSeconds:60,orientation:"æ©«å¼",segmentLabel:"6 段"},square30:{label:"1:1 æ¹å½¢ï½30 ç§",aspect:"1:1",duration:"30 ç§",durationSeconds:30,orientation:"æ¹å½¢",segmentLabel:"3 段"},square45:{label:"1:1 æ¹å½¢ï½45 ç§",aspect:"1:1",duration:"45 ç§",durationSeconds:45,orientation:"æ¹å½¢",segmentLabel:"5 段"},square60:{label:"1:1 æ¹å½¢ï½60 ç§",aspect:"1:1",duration:"60 ç§",durationSeconds:60,orientation:"æ¹å½¢",segmentLabel:"6 段"}};function qe(a){return a.split(/[ãï¼ï¼!?ï¼;]\s*|\n+/).map(o=>o.trim()).filter(Boolean)}function Ve(a,o){const s=a.toLowerCase().replace(/\s+/g,""),i=o.label.toLowerCase().replace(/\s+/g,"");return s===i||i.includes(s)}function ge(a,o){const s=a.trim().replace(/\r\n/g,` 2`),i=s.split(/\n+/).map(m=>m.trim()).filter(Boolean),n=i[0]||"çå½±é³ä¸»é¡",c=Ve(n,o),l=c&&i[1]?i[
21]:n,h=l.replace(/[ãï¼ï¼!?ï¼;]+$/,""),p=c&&i[1]?i.slice(2):i.slice(1),u=p.length>0?p.join("ã"):s.replace(n,"").replace(l,""),d=qe(u).filter(m=>m!==h);return{title:h,details:d}}function me(a){return y[a].durationSeconds===60?6:y[a].durationSeconds===45?5:3}function Oe(a){return Math.round(y[a].durationSeconds/me(a))}function De(a,o,s){const i=b[a],n=(s===3?i.beats3:i.beats6)[o];return(n==null?void 0:n.purpose)??"æ¶å°¾"}function se(a,o,s){const i=b[a],n=s===3?i.beats3:i.beats6;return n[o]??n[n.length-1]}function We(a,o,s,i){const n=se(a,s,i),c=o.details[s]||o.details[s-1]||"";return c?`${n.hook} ${c}`:`${n.hook} Topic: ${o.title}.`}function _e(a,o,s){return se(a,o,s).visual}function ee(a){return Math.max(0,Math.min(255,Math.round(a))).toString(16).padStart(2,"0")}function ce(a,o,s){return`#${ee(a)}${ee(o)}${ee(s)}`}function He(a,o){const s=a/Math.max(o,1);return s>1.25?"landscape reference":s<.8?"vertical reference":"square or balanced reference"}function oe(a){return a?`Visual style reference from uploaded image: 3${a} 4Use this reference for style, palette, lighting, texture, and composition direction only. Do not recreate private people, logos, readable text, brand marks, or exact copyrighted image content.`:""}function Fe(a,o,s){const i=Math.max(a,o,s),n=Math.min(a,o,s);return i===0?0:(i-n)/i}async function Ge(a){const o=URL.createObjectURL(a),s=new Image;try{await new Promise((g,w)=>{s.onload=()=>g(),s.onerror=()=>w(new Error("åçè®å失æï¼è«æä¸å¼µåèåã")),s.src=o});const i=96,n=Math.min(i/s.naturalWidth,i/s.naturalHeight,1),c=Math.max(1,Math.round(s.naturalWidth*n)),l=Math.max(1,Math.round(s.naturalHeight*n)),h=document.createElement("canvas");h.width=c,h.height=l;const p=h.getContext("2d");if(!p)throw new Error("ç¡æ³åæåçè²å½©ï¼è«æä¸å¼µåèåã");p.drawImage(s,0,0,c,l);const u=p.getImageData(0,0,c,l).data;let d=0,m=0,k=0,v=0,S=0;const x=[],j=new Map;for(let g=0;g<u.length;g+=4){const w=u[g],T=u[g+1],A=u[g+2];if(u[g+3]<16)continue;const W=(w*.299+T*.587+A*.114)/255,t=Fe(w,T,A),r=Math.round(w/32)*32,M=Math.round(T/32)*32,Z=Math.round(A/32)*32,ne=`${r}-${M}-${Z}`,_=j.get(ne)||{count:0,red:0,green:0,blue:0};_.count+=1,_.red+=w,_.green+=T,_.blue+=A,j.set(ne,_),d+=w,m+=T,k+=A,v+=W,S+=t,x.push(W)}const N=Math.max(x.length,1),$=d/N,P=m/N,z=k/N,D=v/N,U=S/N,I=x.reduce((g,w)=>g+(w-D)**2,0)/Math.max(x.length,1),C=Math.sqrt(I),E=$-z,q=E>12?"warm":E<-12?"cool":"neutral",H=D>.68?"bright high-key":D<.38?"low-key shadowed":"balanced natural",F=U>.42?"rich color":U<.2?"muted color":"soft color",G=C>.24?"high contrast":C<.13?"low contrast":"medium contrast",B=He(s.naturalWidth,s.naturalHeight),J=Array.from(j.values()).sort((g,w)=>w.count-g.count).slice(0,5).map(g=>ce(g.red/g.count,g.green/g.count,g.blue/g.count)),Q=ce($,P,z),L=`${q}, ${H}, ${F}, ${G}, ${B}; palette ${J.join(", ")}; average color ${Q}; preserve the uploaded image's overall lighting mood, color relationship, material feeling, framing density, and visual restraint.`;return{fileName:a.name,previewUrl:o,summary:`${q} / ${H} / ${F} / ${G}`,promptText:L,palette:J,width:s.naturalWidth,height:s.naturalHeight,aspectLabel:B}}catch(i){throw URL.revokeObjectURL(o),i}}function ue(){return`Global clean-asset rules: 5- Create clean cinematic assets for later editing. 6- No on-screen text of any language. 7- No Chinese characters, English letters, numbers, subtitles, captions, logos, readable signs, labels, menus, UI text, charts, title cards, speech bubbles, handwritten words, brand marks, license plates, or name tags. 8- Any paper, folder, card, key fob, luggage tag, menu-like object, screen, board, package, or document must remain completely blank, unbranded, and unreadable. 9- No narration, no voiceover, no spoken dialogue, no lip-sync, no talking-head explanation. 10- If the source topic contains Chinese, interpret it only as visual meaning; never render written language. 11- Use visual storytelling, natural ambience, and non-verbal tactile sound only if audio is generated. Silent output is acceptable. 12- Create footage that can be edited later with separate subtitles, music, voiceover, and brand elements.`}function he(a,o,s,i){const n=b[a],c=y[o],l=me(o),h=Oe(o),p=te(s)||n.defaultBrief,u=ge(p,n);return Array.from({length:l},(d,m)=>{const k=m*h,v=m===l-1?c.durationSeconds:k+h,S=De(a,m,l),x=se(a,m,l),j=_e(a,m,l),N=We(a,u,m,l),$=x.avoid||"generic stock-video feeling, readable text, logos, clutter, overexplained scenes",P=oe(i);
12return{index:m+1,startSecond:k,endSecond:v,clipDurationSeconds:v-k,time:`${k}-${v}s`,title:`第 ${m+1} 段ï½${S}`,purpose:S,message:N,visualHook:x.hook,spreadAngle:x.spreadAngle,imagePrompt:`Create a ${c.aspect} keyframe image for a short video segment. 13Content category: ${n.promptLabel} 14Segment: ${m+1} of ${l}, ${S} 15Source topic: ${u.title} 16${P} 17Creative production mechanic: ${n.viralMechanic} 18Core visual idea: ${N} 19Why people would watch or share: ${x.spreadAngle} 20Scene direction: ${j} 21Avoid in this segment: ${$} 22Style: ${n.visualLanguage}, high-retention short-form visual, strong first-frame hook, cinematic lighting, tactile detail, clean composition. 23Composition: design for later editing, leave natural negative space, keep the subject immediately understandable without words. 24${ue()} 25Safety: ${n.safetyRule} 26Avoid overall: generic stock-video feeling, flat corporate montage, clutter, fake text, readable signs, overexplained scenes, exaggerated claims.`,videoPrompt:`Create a ${v-k}-second Veo / Flow video segment. 27Content category: ${n.promptLabel} 28Segment: ${m+1} of ${l}, ${S} 29Aspect ratio: ${c.aspect} 30Duration: ${v-k} seconds 31Source topic: ${u.title} 32${P} 33Creative production mechanic: ${n.viralMechanic} 34Core visual idea: ${N} 35Why people would watch or share: ${x.spreadAngle} 36Visual direction: ${j} 37Avoid in this segment: ${$} 38Motion: one memorable action per segment, strong visual hook in the first 1.5 seconds, smooth camera movement, polished short-form pacing, loop-friendly ending when possible. 39Audio: no voice, no speech, no narration. Silent output is acceptable. If audio is generated, use only subtle natural ambience or non-verbal tactile SFX. 40Clean edit space: leave natural negative space for later subtitles, but do not render any text. 41Continuity: make this segment feel consistent with the other ${l} segments in color, lighting, subject style, and tone. 42${ue()} 43Safety rules: ${n.safetyRule} 44Constraints: no hype, no misleading claims, no chaotic montage, no readable on-screen text, no voiceover, no dialogue.`}})}function Je(a,o,s,i){const n=b[a],c=y[o],l=he(a,o,s,i),h=oe(i),p=te(s)||n.defaultBrief;return`Clean video asset prompt pack for Veo / Flow 45Content category: ${n.promptLabel} 46Source brief: ${p} 47${h} 48Audience: ${n.audience} 49Aspect ratio: ${c.aspect} 50Total duration: ${c.duration} 51Production rule: Generate ${l.length} clean keyframe images and ${l.length} clean video clips that add up to ${c.duration}. 52Global rule: Create clean cinematic assets for later editing. No on-screen text, no subtitles, no captions, no title cards, no readable signs, no Chinese characters, no English letters, no numbers, no logos, no voiceover, no narration, no dialogue. Any paper, folder, card, screen, label, key fob, luggage tag, menu-like object, or document must stay blank and unbranded. 53Creative production mechanic: ${n.viralMechanic} 54Visual language: ${n.visualLanguage} 55Safety rules: ${n.safetyRule} 56 57${l.map(u=>`${u.title}ï¼${u.time}ï¼ 58 59Keyframe image prompt: 60${u.imagePrompt} 61 62Video prompt: 63${u.videoPrompt}`).join(` 64 65--- 66 67`)}`}function ae(a,o,s,i,n){const c=b[o],l=y[s],h=oe(n),p=te(i)||c.defaultBrief,u=`Content category: ${c.promptLabel} 68Source brief: ${p} 69${h} 70Audience: ${c.audience} 71Aspect ratio: ${l.aspect} 72Duration: ${l.duration} 73Creative production mechanic: ${c.viralMechanic} 74Visual language: ${c.visualLanguage} 75Clean asset rules: no on-screen text, no subtitles, no captions, no title cards, no readable signs, no Chinese characters, no English letters, no numbers, no logos, no voiceover, no narration, no dialogue. Any paper, folder, card, screen, label, key fob, luggage tag, menu-like object, or document must stay blank and unbranded. 76Safety rules: ${c.safetyRule}`;return a==="kling"?`${u} 77 78Kling prompt: 79A ${l.duration} clean visual-only short-form video asset with one clear subject and controlled motion. ${c.visualLanguage}. Show the brief through action and atmosphere only: ${p}. Strong first-frame hook, precise object movement, soft realistic lighting, clean background, high retention for ${l.aspect} viewing. 80 81Negative prompt: 82on-screen text, Chinese characters, English letters, numbers, subtitles, captions, title cards, readable signs, logos, speech bubbles, voiceover, narration, dialogue, talking head, distorted text, cluttered background, low quality, exaggerated promises`:a==="veo"?Je(o,s,i,n):`${u} 83 84Runway prompt: 85${c.visualLanguage}. ${p}. Clean visual-only commercial video asset, one clear subject, smooth camera motion, refined lighting, strong first-frame hook, clean background, no text, no subtitles, no captions, no voiceover, no narration, no dialogue. 86 87Negative: 88on-screen text, Chinese characters, English letters, numbers, subtitles, captions, title cards, readable signs, logos, speech bubbles, voiceover, narration, dialogue, talking head, clutter, chaotic cuts, distorted typography, low resolution, exaggerated claims`}function Qe(a,o,s){const i=b[a];return`Video WEDO 乾淨影çç´ æä¼åï½${i.label} 89 90主é¡ï¼${o} 91${s?` 92è¦è¦ºåèï¼${s.summary}ï¼ä¸»è² ${s.palette.join(" / ")}ã`:""} 93 94鿝ççé©åå çæä¹¾æ·¨ç«é¢ç´ æï¼åæ¼åªè¼¯é段å¦å¤å åå¹ãæç½ã鳿¨èåçå ç´ ã 95 96é©ç¨å°è±¡ï¼${i.audience} 97æ´æ£æ©å¶ï¼${i.viralMechanic} 98ç´ æååï¼ä¸å¨ AI çæå½±çå §ç´æ¥åºç¾ä¸æãåå¹ãæç½ãå°è©±æå¯è®æåã 99å®å ¨éçï¼${i.guardrail} 100 101#VideoWEDO #AIO #çæå¼AI #å §å®¹å·¥ä½æµ`}function Ke(a){return{travel:"travel",food:"food",product:"product",brand_story:"brand_story",knowledge:"knowledge",event:"event",book:"book",entertainment:"entertainment",anime:"anime_style",buzz:"social_trend"}[a]}function Xe(a){return{travel:"lead_generation",food:"engagement",product:"sales",brand_story:"brand_trust",knowledge:"education",event:"lead_generation",book:"awareness",entertainment:"engagement",anime:"engagement",buzz:"engagement"}[a]}function pe(a){return{travel:"æ³è¦åä¸ä¸è¶é«å質è¡ç¨ï¼è«è¯ç¹«æåã",food:"æ¶èéåéæï¼ä¸ä¸æ¬¡å°±å®æéä¸é¤ã",product:"æ³äºè§£å®æ´æ¹æ¡ï¼è«ç§è¨æè¯ç¹«æåã",brand_story:"å¦æä½ ä¹æ³æåçæ äºèªªæ¸ æ¥ï¼è«è¯ç¹« WEDOã",knowledge:"æ³æå §å®¹è®æå¯æçºçç¢ç系統ï¼è«è¯ç¹« WEDOã",event:"æ³å徿´»åè³è¨æå ±åæ¹å¼ï¼è«è¯ç¹«ä¸»è¾¦åéã",book:"æ³é±è®å®æ´è§é»ï¼è«éæ³¨æ°æ¸èä½è å §å®¹ã",entertainment:"åæ¡é種ä¼åï¼æ¶èèµ·ä¾ä¸æ¬¡ä¸èµ·åã",anime:"æ³çä¸ä¸éï¼è«æ¶è並追蹤å¾çºæ´æ°ã",buzz:"æ³ææ¡äºä»¶å¾çºï¼è«æçºéæ³¨å®æ´æ´çã"}[a]}function Ye({aspect:a,active:o}){const s=a==="9:16",i=a==="1:1";return e.jsx("div",{className:["flex h-24 items-center justify-center rounded-md",o?"bg-white/10":"bg-white"].join(" "),children:e.jsxs("div",{className:["rounded border-2",s?"h-20 w-[45px]":i?"h-[68px] w-[68px]":"h-[52px] w-24",o?"border-amber-200 bg-amber-200/10":"border-[#9b4d2a] bg-[#f7f3ec]"].join(" "),children:[e.jsx("div",{className:["mx-auto mt-2 h-1 rounded-full",s?"w-5":i?"w-6":"w-8",o?"bg-amber-200":"bg-[#9b4d2a]"].join(" ")}),e.jsx("div",{className:["mx-auto mt-2 rounded",s?"h-10 w-7":i?"h-8 w-8":"h-6 w-16",o?"bg-white/20":"bg-white"].join(" ")})]})})}function ca(){const[a,o]=f.useState("knowledge"),[s,i]=f.useState("vertical30"),[n,c]=f.useState(b.knowledge.defaultBrief),[l,h]=f.useState(null),[p,u]=f.useState("type"),[d,m]=f.useState(null),[k,v]=f.useState(null),[S,x]=f.useState(!1),[j,N]=f.useState("WEDO teammate"),[$,P]=f.useState(pe("knowledge")),[z,D]=f.useState(null),U="veo",I=(d==null?void 0:d.promptText)??null,C=f.useMemo(()=>he(a,s,n,I),[a,s,n,I]),E=f.useMemo(()=>{const t=ge(n,b[a]);return Se({title:t.title||b[a].label,brief:n,durationSeconds:y[s].durationSeconds,aspectRatio:y[s].aspect,contentType:Ke(a),objective:Xe(a),audience:b[a].audience,tone
101:"乾淨ãå
å¶ãå
·æçå½±é³åçæï¼ç«é¢ç´ æä¸ç´æ¥çæå广æç½ã",visualStyle:b[a].visualLanguage,cta:$,requestedBy:j,renderTemplate:`GenericShortVideoCleanFootage-${y[s].aspect}-${y[s].durationSeconds}`,segments:C.map(r=>({title:r.title,purpose:r.purpose,message:r.message,spreadAngle:r.spreadAngle,imagePrompt:r.imagePrompt,videoPrompt:r.videoPrompt,startSecond:r.startSecond,endSecond:r.endSecond}))})},[n,$,s,a,j,C]),q=f.useMemo(()=>({kling:ae("kling",a,s,n,I),veo:ae("veo",a,s,n,I),runway:ae("runway",a,s,n,I),social:Qe(a,n,d),job:JSON.stringify(E,null,2)}),[a,s,n,d,I,E]);f.useEffect(()=>()=>{d!=null&&d.previewUrl&&URL.revokeObjectURL(d.previewUrl)},[d==null?void 0:d.previewUrl]);const H=t=>{o(t),c(b[t].defaultBrief),P(pe(t))},F=async t=>{if(t){if(!t.type.startsWith("image/")){v("è«ä¸å³åçæªï¼ä¾å¦ JPGãPNG æ WebPã");return}if(t.size>8*1024*1024){v("åçè«æ§å¶å¨ 8MB 以å
§ï¼æ¹ä¾¿ææ©å¿«éåæã");return}x(!0),v(null);try{const r=await Ge(t);m(r)}catch(r){v(r instanceof Error?r.message:"åçåæå¤±æï¼è«æä¸å¼µåèåã")}finally{x(!1)}}},G=()=>{m(null),v(null)},B=async(t,r)=>{await navigator.clipboard.writeText(r),h(t),window.setTimeout(()=>h(null),1800)},J=()=>{const t=$e(E,j);D(t.id),window.setTimeout(()=>{window.location.href=`/video/studio?job=${t.id}`},700)},Q=y[s],L=be("/video"),g=Object.entries(b),w=Object.entries(y),T=n.trim()||"å
輸å
¥ä¸å¥è©±ä¸»é¡",A=[{key:"type",label:"é¡å",value:b[a].label},{key:"brief",label:"主é¡",value:d?"å«åèå":T.length>18?`${T.slice(0,18)}...`:T},{key:"format",label:"è¦æ ¼",value:Q.label},{key:"result",label:"çµæ",value:`${C.length} 段 / å¯è¤è£½`}],Y=(t,r=!1)=>{u(t),r&&window.requestAnimationFrame(()=>{var M;(M=document.getElementById("studio"))==null||M.scrollIntoView({behavior:"smooth",block:"start"})})},W=t=>{const r=A.findIndex(Z=>Z.key===p),M=Math.min(A.length-1,Math.max(0,r+t));u(A[M].key)};return e.jsxs("div",{className:"min-h-screen overflow-x-hidden bg-[#f7f3ec] text-slate-950 selection:bg-amber-200 selection:text-slate-950",children:[e.jsx(we,{title:L.seo.title,description:L.seo.description,image:L.seo.image,imageType:"image/jpeg",imageWidth:L.seo.imageWidth??1200,imageHeight:L.seo.imageHeight??630,imageAlt:L.seo.imageAlt??"Video WEDO Hero 社交å享å",url:`${fe}/video`,keywords:L.seo.keywords}),e.jsx(ve,{}),e.jsxs("main",{children:[e.jsx("section",{className:"border-b border-stone-200 bg-[#f7f3ec]",children:e.jsxs("div",{className:"container grid gap-8 py-10 md:min-
101h-[calc(100vh-68px)] md:grid-cols-[1fr_0.9fr] md:items-end md:py-16",children:[e.jsxs("div",{className:"max-w-3xl pb-2 md:pb-6",children:[e.jsx(V,{className:"mb-5 border-stone-300 bg-white/70 text-slate-700",variant:"outline",children:"Video WEDO"}),e.jsxs("h1",{className:"max-w-4xl text-5xl font-black leading-[1.03] tracking-normal text-slate-950 md:text-7xl",children:["å
åä¹¾æ·¨ç´ æ",e.jsx("span",{className:"block text-[#9b4d2a]",children:"ååªæçå½±é³"})]}),e.jsx("p",{className:"mt-6 max-w-2xl text-base leading-7 text-slate-700 md:text-lg",children:"é¸å½±çé¡åã寫ä¸ä¸»é¡ï¼åé¸ç´å¼ææ©«å¼ï¼ç³»çµ±æè¼¸åºå¯ç´æ¥è²¼å° AI åçèå½±çå·¥å
·çæç¤ºè©ã"}),e.jsxs("div",{className:"mt-8 flex flex-col gap-3 sm:flex-row",children:[e.jsx(R,{asChild:!0,className:"h-12 rounded-full bg-slate-950 px-6 text-white hover:bg-slate-800",children:e.jsxs("a",{href:"#studio",children:["éå§ç¢çæç¤ºè© ",e.jsx(re,{className:"h-4 w-4"})]})}),e.jsx(R,{asChild:!0,variant:"outline",className:"h-12 rounded-full border-stone-300 bg-white/70 px-6",children:e.jsx("a",{href:"/video/studio",children:"å½±çå·¥ä½å°"})})]})]}),e.jsxs("div",{className:"rounded-lg border border-stone-300 bg-white p-5 shadow-[0_24px_80px_rgba(41,37,36,0.12)]",children:[e.jsxs("div",{className:"flex items-center gap-3",children:[e.jsx("div",{className:"flex h-11 w-11 items-center justify-center rounded-full bg-slate-950 text-amber-200",children:e.jsx(Ce,{className:"h-5 w-5"})}),e.jsxs("div",{children:[e.jsx("p",{className:"text-xs font-black uppercase text-[#9b4d2a]",children:"Workflow"}),e.jsx("p",{className:"text-xl font-black text-slate-950",children:"ç
§ 4 æ¥èµ°"})]})]}),e.jsx("div",{className:"mt-5 grid gap-3",children:[["1","é¸å½±çé¡å","æ
éãç¾é£ãç¥èã卿¨ãåæ¼«ãç±è°"],["2","寫ä¸å¥ä¸»é¡","ä¸ç¨æå¯« promptï¼å
ææ³æçå
§å®¹èªªæ¸
æ¥"],["3","é¸ç«é¢çå","9:16 ç´å¼æ 16:9 æ©«å¼ï¼30 ç§æ 60 ç§"],["4","è¤è£½æç¤ºè©","æ¿å°åé¡åç prompt èå½±ç prompt"]].map(([t,r,M])=>e.jsxs("button",{type:"button",className:"flex items-start gap-3 rounded-md border border-stone-200 bg-[#fbfaf7] p-3 text-left transition hover:bg-white",onClick:()=>Y(A[Number(t)-1].key,!0),children:[e.jsx("span",{className:"flex h-8 w-8 shrink-0 items-center justify-center rounded-full bg-[#9b4d2a] font-mono text-sm font-black text-white",children:t}),e.jsxs("span",{children:[e.jsx("span",{className:"block text-sm font-black text-slate-950",children:r}),e.jsx("span",{className:"mt-1 hidden text-xs leading-5 text-slate-600 md:block",children:M})]})]},t))})]})]})}),e.jsx("section",{id:"studio",className:"bg-[#f7f3ec] py-10 md:py-16",children:e.jsx("div",{className:"container",children:e.jsxs("div",{className:"mx-auto max-w-5xl",children:[e.jsx("div",{className:"mb-5 flex gap-2 overflow-x-auto pb-2",children:A.map((t,r)=>e.jsxs("button",{type:"button",className:`min-w-[116px] rounded-full border px-4 py-3 text-left transition ${p===t.key?"border-slate-950 bg-slate-950 text-white":"border-stone-300 bg-white text-slate-700"}`,onClick:()=>Y(t.key),children:[e.jsxs("span",{className:"block text-xs font-bold",children:["0",r+1]}),e.jsx("span",{className:"block text-sm font-semibold",children:t.label})]},t.key))}),e.jsxs("div",{className:"rounded-lg border border-stone-300 bg-white p-4 shadow-sm md:p-6",children:[p==="type"?e.jsxs("div",{children:[e.jsx(V,{className:"mb-4 bg-[#9b4d2a] text-white",children:"æ¥é© 1"}),e.jsx("h2",{className:"text-2xl font-black text-slate-950 md:text-4xl",children:"ä½ æ³ååªä¸ç¨®å½±çï¼"}),e.jsx("p",{className:"mt-3 text-sm leading-6 text-slate-600",children:"å
é¸ä¸åææ¥è¿çæ¹åãå¾é¢è¼¸å
¥ä¸»é¡æï¼å¯ä»¥åè£å
åçãå ´æ¯ãè§è²æååã"}),e.jsx("div",{className:"mt-5 grid gap-3 sm:grid-cols-2 lg:grid-cols-3",children:g.map(([t,r])=>e.jsxs("button",{type:"button",className:`rounded-lg border p-4 text-left transition ${a===t?"border-slate-950 bg-slate-950 text-white":"border-stone-200 bg-[#fbfaf7] text-slate-950"}`,onClick:()=>{H(t),u("brief")},children:[e.jsxs("span",{className:"flex items-center justify-between gap-3 text-base font-bold",children:[r.label,a===t?e.jsx(le,{className:"h-5 w-5 text-amber-200"}):null]}),e.jsx("span",{className:`mt-2 block text-sm leading-6 ${a===t?"text-slate-300":"text-slate-600"}`,children:r.viralMechanic})]},t))})]}):null,p==="brief"?e.jsxs("div",{children:[e.jsx(V,{className:"mb-4 bg-[#9b4d2a] text-white",children:"æ¥é© 2"}),e.jsx("h2",{className:"text-2xl font-black text-slate-950 md:text-4xl",children:"寫主é¡ï¼ä¹å¯ä»¥ä¸å³åèå"}),e.jsx("p",{className:"mt-3 text-sm leading-6 text-slate-600",children:"ç¨èªç¶èªè¨å¯«ä¸»é¡ï¼å¦ææåæ¡çç«é¢ï¼ä¹å¯ä»¥ç¨ä¸å¼µåè®ç³»çµ±æåºè¦è¦ºé¢¨æ ¼ã"}),e.jsx(ke,{value:n,onChange:t=>c(t.target.value),className:"mt-5 min-h-44 resize-none rounded-lg border-stone-300 bg-[#fbfaf7] text-base leading-7"}),e.jsx("div",{className:"mt-4 grid gap-2 sm:grid-cols-2",children:b[a].samples.map(t=>e.jsx("button",{type:"button",className:"rounded-lg border border-stone-200 bg-white p-3 text-left text-sm leading-6 text-slate-700",onClick:()=>c(t),children:t},t))}),e.jsxs("div",{className:"mt-5 rounded-lg border border-stone-200 bg-[#fbfaf7] p-4",children:[e.jsxs("div",{className:"flex flex-col gap-3 sm:flex-row sm:items-start sm:justify-between",children:[e.jsxs("div",{children:[e.jsx("p",{className:"text-sm font-black text-slate-950",children:"åèåé¢¨æ ¼"}),e.jsx("p",{className:"mt-1 text-sm leading-6 text-slate-600",children:"ä¸å³ä¸å¼µæ¥è¿ä½ æ³è¦çç«é¢ï¼ç³»çµ±æå¤æ·è²èª¿ã亮度ãå°æ¯èæ§åæ¹åã"})]}),e.jsxs("label",{className:"inline-flex h-11 cursor-pointer items-center justify-center gap-2 rounded-full bg-slate-950 px-4 text-sm font-bold text-white transition hover:bg-slate-800",children:[e.jsx(Le,{className:"h-4 w-4"}),S?"åæä¸":d?"æ´æåç":"ä¸å³åç",e.jsx("input",{type:"file",accept:"image/png,image/jpeg,image/webp,image/gif",className:"sr-only",disabled:S,onChange:t=>{var r;F((r=t.currentTarget.files)==null?void 0:r[0]),t.currentTarget.value=""}})]})]}),k?e.jsx("p",{className:"mt-3 rounded-md border border-red-200 bg-red-50 p-3 text-sm leading-6 text-red-800",children:k}):null,d?e.jsxs("div",{className:"mt-4 grid gap-3 rounded-md border border-stone-200 bg-white p-3 sm:grid-cols-[120px_1fr]",children:[e.jsx("img",{src:d.previewUrl,alt:"åèåé 覽",className:"h-28 w-full rounded-md object-cover sm:h-full"}),e.jsxs("div",{className:"min-w-0",children:[e.jsxs("div",{className:"flex items-start justify-between gap-3",children:[e.jsxs("div",{children:[e.jsx("p",{className:"break-words text-sm font-bold text-slate-950",children:d.fileName}),e.jsxs("p",{className:"mt-1 text-xs leading-5 text-slate-500",children:[d.width," x ",d.height," / ",d.aspectLabel]})]}),e.jsx("button",{type:"button",className:"flex h-8 w-8 shrink-0 items-center justify-center rounded-full border border-stone-300 text-slate-600 transition hover:bg-stone-100",onClick:G,"aria-label":"ç§»é¤åèå",children:e.jsx(Te,{className:"h-4 w-4"})})]}),e.jsx("p",{className:"mt-3 text-sm font-semibold text-[#9b4d2a]",children:d.summary}),e.jsx("div",{className:"mt-3 flex flex-wrap gap-2",children:d.palette.map(t=>e.jsxs("span",{className:"inline-flex items-center gap-2 rounded-full border border-stone-200 bg-[#fbfaf7] px-3 py-1 text-xs font-semibold text-slate-700",children:[e.jsx("span",{className:"h-4 w-4 roun
101ded-full border border-black/10",style:{backgroundColor:t}}),t]},t))}),e.jsx("p",{className:"mt-3 text-xs leading-5 text-slate-500",children:"æç¤ºè©æåèéå¼µåçæ´é«å
ç·ãè²å½©éä¿ãæè³ªæèæ§åå¯åº¦ï¼ä½ä¸æè¦æ±æ¨¡åè¤è£½äººç©ãæåãæ¨èªæååå
§å®¹ã"})]})]}):null]}),e.jsxs("div",{className:"mt-5 rounded-lg border border-stone-200 bg-white p-4",children:[e.jsxs("div",{className:"mb-3",children:[e.jsx("p",{className:"text-sm font-black text-slate-950",children:"å¾è£½è³è¨"}),e.jsx("p",{className:"mt-1 text-sm leading-6 text-slate-600",children:"éäºå
§å®¹åªææ¾é²ä»»åè¦æ ¼è Remotion overlayï¼ä¸æå¯«é²åçæå½±ççæç´ æã"})]}),e.jsxs("div",{className:"grid gap-3 sm:grid-cols-2",children:[e.jsxs("label",{className:"block",children:[e.jsx("span",{className:"text-xs font-bold text-[#9b4d2a]",children:"建ç«åä»"}),e.jsx(ie,{value:j,onChange:t=>N(t.target.value),className:"mt-2 h-11 rounded-md border-stone-300 bg-[#fbfaf7]"})]}),e.jsxs("label",{className:"block",children:[e.jsx("span",{className:"text-xs font-bold text-[#9b4d2a]",children:"å¾è£½ CTA"}),e.jsx(ie,{value:$,onChange:t=>P(t.target.value),className:"mt-2 h-11 rounded-md border-stone-300 bg-[#fbfaf7]"})]})]})]})]}):null,p==="format"?e.jsxs("div",{children:[e.jsx(V,{className:"mb-4 bg-[#9b4d2a] text-white",children:"æ¥é© 3"}),e.jsx("h2",{className:"text-2xl font-black text-slate-950 md:text-4xl",children:"é¸å½±ççå"}),e.jsx("p",{className:"mt-3 text-sm leading-6 text-slate-600",children:"ç´å¼é©å ReelsãShortsãTikTokï¼æ©«å¼é©å YouTubeãç¶²ç« Heroãç°¡å ±ææ´»åè¢å¹ã"}),e.jsx("div",{className:"mt-5 grid gap-3 sm:grid-cols-2",children:w.map(([t,r])=>e.jsxs("button",{type:"button",className:`rounded-lg border p-4 text-left transition ${s===t?"border-slate-950 bg-slate-950 text-white":"border-stone-200 bg-[#fbfaf7] text-slate-950"}`,onClick:()=>{i(t),u("result")},children:[e.jsx(Ye,{aspect:r.aspect,active:s===t}),e.jsxs("span",{className:"mt-4 flex items-center justify-between gap-3 text-base font-bold",children:[r.label,s===t?e.jsx(le,{className:"h-5 w-5 text-amber-200"}):null]}),e.jsxs("span",{className:`mt-2 block text-sm ${s===t?"text-slate-300":"text-slate-600"}`,children:[r.segmentLabel,"ç´ æï¼é©å",r.orientation,"ç«é¢"]})]},t))})]}):null,p==="result"?e.jsxs("div",{children:[e.jsxs("div",{className:"flex flex-col gap-3 sm:flex-row sm:items-center sm:justify-between",children:[e.jsxs("div",{children:[e.jsx(V,{className:"mb-4 bg-[#9b4d2a] text-white",children:"çµæ"}),e.jsx("h2",{className:"text-2xl font-black text-slate-950 md:text-4xl",children:"è¤è£½åç / å½±çæç¤ºè©"})]}),e.jsxs("div",{className:"flex flex-col gap-2 sm:flex-row",children:[e.jsxs(R,{className:"h-11 rounded-full bg-[#9b4d2a] text-white hover:bg-[#813f22]",onClick:J,children:[e.jsx(Re,{className:"h-4 w-4"}),z?"å·²éåº":"éå°å½±çå·¥ä½å°"]}),e.jsxs(R,{variant:"outline",className:"h-11 rounded-full border-stone-300 bg-white text-slate-900",onClick:()=>B(U,q[U]),children:[e.jsx(K,{className:"h-4 w-4"}),l===U?"å·²è¤è£½":"è¤è£½æç¤ºè©"]})]})]}),e.jsxs("div",{className:"mt-5 rounded-lg border border-stone-200 bg-[#fbfaf7] p-4",children:[e.jsxs("h3",{className:"font-bold text-slate-950",children:[b[a].label," / ",Q.label]}),e.jsx("p",{className:"mt-2 text-sm leading-6 text-slate-600",children:n}),d?e.jsxs("p",{className:"mt-2 text-sm leading-6 text-slate-600",children:["è¦è¦ºåèï¼",d.summary,"ï¼ä¸»è² ",d.palette.join(" / ")]}):null,e.jsxs("p",{className:"mt-3 text-sm font-semibold text-[#9b4d2a]",children:["建è°ï¼Veo / Flowï¼",C.length," 張乾淨åé¡å + ",C.length," 段乾淨影çç´ æ"]}),z?e.jsxs("p",{className:"mt-3 rounded-md border border-emerald-200 bg-emerald-50 p-3 text-sm leading-6 text-emerald-900",children:["å·²éå°å½±çå·¥ä½å°ï¼",z,"ã系統ç¨å¾æè½å° `/video/studio`ï¼ç®åå°æªåå renderã"]}):null,e.jsxs("div",{className:"mt-4 grid gap-2 text-sm leading-6 text-slate-700 sm:grid-cols-3",children:[e.jsxs("div",{className:"rounded-md bg-white p-3",children:[e.jsx(Ie,{className:"mb-2 h-4 w-4 text-[#9b4d2a]"}),"å
ååé¡åç"]}),e.jsxs("div",{className:"rounded-md bg-white p-3",children:[e.jsx(Me,{className:"mb-2 h-4 w-4 text-[#9b4d2a]"}),"åå 10 ç§å½±ç"]}),e.jsxs("div",{className:"rounded-md bg-white p-3",children:[e.jsx(Pe,{className:"mb-2 h-4 w-4 text-[#9b4d2a]"}),"æå¾ååªåå¹è鳿¨"]})]})]}),e.jsxs(Ue,{defaultValue:"segments",className:"mt-5",children:[e.jsxs(Ee,{className:"mb-4 h-auto w-full flex-wrap justify-start rounded-md bg-stone-100 p-1",children:[e.jsx(O,{value:"segments",children:"åæ®µç´ æ"}),e.jsx(O,{value:"veo",children:"宿´æç¤ºè©"}),e.jsx(O,{value:"kling",children:"Kling"}),e.jsx(O,{value:"runway",children:"Runway"}),e.jsx(O,{value:"social",children:"ç¤¾ç¾¤ææ¡"}),e.jsx(O,{value:"job",children:"ä»»å JSON"})]}),e.jsx(de,{value:"segments",children:e.jsx("div",{className:"space-y-3",children:C.map(t=>e.jsxs("div",{className:"rounded-md border border-stone-200 bg-white p-4",children:[e.jsxs("div",{className:"flex items-center justify-between gap-3",children:[e.jsx("h3",{className:"font-bold text-slate-950",children:t.title}),e.jsx(V,{variant:"outline",className:"border-stone-300 text-slate-600",children:t.time})]}),e.jsx("p",{className:"mt-3 text-sm font-semibold text-[#9b4d2a]",children:t.purpose}),e.jsxs("div",{className:"mt-3 rounded-md border border-amber-200 bg-amber-50 p-3 text-sm leading-6 text-amber-950",children:[e.jsx("p",{className:"font-bold",children:"æ¬æ®µæ ¸å¿"}),e.jsx("p",{className:"mt-1",children:t.message}),e.jsx("p",{className:"mt-2 text-xs font-semibold uppercase text-[#9b4d2a]",children:"æ´æ£è§åº¦"}),e.jsx("p",{children:t.spreadAngle}),e.jsx("p",{className:"mt-2 text-xs font-semibold text-slate-600",children:"çæç´ æå
§ä¸å åå¹ãä¸å æç½ï¼åå¹è壿çå°åªè¼¯é段ã"})]}),e.jsxs("div",{className:"mt-4 rounded-md border border-stone-200 bg-[#fbfaf7] p-3",children:[e.jsxs("div",{className:"mb-2 flex items-center justify-between gap-3",children:[e.jsx("p",{className:"text-sm font-bold text-slate-950",children:"åé¡åççææç¤ºè©"}),e.jsxs(R,{size:"sm",variant:"outline",className:"h-9 border-stone-300 bg-white",onClick:()=>B(`segment-${t.index}-image`,t.imagePrompt),children:[e.jsx(K,{className:"h-4 w-4"}),l===`segment-${t.index}-image`?"å·²è¤è£½":"è¤è£½"]})]}),e.jsx("pre",{className:"max-h-[280px] overflow-auto whitespace-pre-wrap break-words text-sm leading-6 text-slate-700",children:t.imagePrompt})]}),e.jsxs("div",{className:"mt-3 rounded-md border border-slate-800 bg-slate-950 p-3 text-slate-100",children:[e.jsxs("div",{className:"mb-2 flex items-center justify-between gap-3",children:[e.jsxs("p",{className:"text-sm font-bold text-amber-200",children:[t.clip
101DurationSeconds," ç§å½±çæç¤ºè©"]}),e.jsxs(R,{size:"sm",variant:"outline",className:"h-9 border-white/20 bg-white/10 text-white hover:bg-white/20",onClick:()=>B(`segment-${t.index}-video`,t.videoPrompt),children:[e.jsx(K,{className:"h-4 w-4"}),l===`segment-${t.index}-video`?"å·²è¤è£½":"è¤è£½"]})]}),e.jsx("pre",{className:"max-h-[320px] overflow-auto whitespace-pre-wrap break-words text-sm leading-6 text-slate-200",children:t.videoPrompt})]})]},t.index))})}),["veo","kling","runway","social","job"].map(t=>e.jsx(de,{value:t,children:e.jsxs("div",{className:"rounded-md border border-stone-200 bg-slate-950 p-4 text-slate-100",children:[e.jsxs("div",{className:"mb-3 flex items-center justify-between gap-3",children:[e.jsxs("p",{className:"flex items-center gap-2 text-sm font-bold uppercase text-amber-200",children:[t==="job"?e.jsx(Be,{className:"h-4 w-4"}):null,t]}),e.jsxs(R,{size:"sm",variant:"outline",className:"border-white/20 bg-white/10 text-white hover:bg-white/20",onClick:()=>B(t,q[t]),children:[l===t?e.jsx(ze,{className:"h-4 w-4"}):e.jsx(K,{className:"h-4 w-4"}),l===t?"å·²è¤è£½":"è¤è£½"]})]}),e.jsx("pre",{className:"max-h-[520px] overflow-auto whitespace-pre-wrap break-words text-sm leading-7 text-slate-200",children:q[t]})]})},t))]})]}):null,e.jsxs("div",{className:"mt-6 flex gap-3",children:[e.jsx(R,{type:"button",variant:"outline",className:"h-11 flex-1 rounded-full border-stone-300",disabled:p==="type",onClick:()=>W(-1),children:"ä¸ä¸æ¥"}),e.jsxs(R,{type:"button",className:"h-11 flex-1 rounded-full bg-slate-950 text-white hover:bg-slate-800",disabled:p==="result",onClick:()=>W(1),children:["ä¸ä¸æ¥ ",e.jsx(re,{className:"h-4 w-4"})]})]})]})]})})})]}),e.jsx(xe,{})]})}export{ca as default};
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.