@popcraft/kit 0.51.0 → 0.53.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/dist/chunks/{agent-ZJBZYK5D.js → agent-VDTFMQFH.js} +1 -1
- package/dist/chunks/{api-EQGMF3LU.js → api-7ZHHFXRP.js} +3 -3
- package/dist/chunks/{builtin-ZXLOMH6U.js → builtin-B425EDUG.js} +4 -4
- package/dist/chunks/{buy-credits-QZIERRZI.js → buy-credits-YD6DBAQB.js} +6 -6
- package/dist/chunks/{check-template-IAH7QHDX.js → check-template-QIUI3LQM.js} +3 -3
- package/dist/chunks/{chunk-R2K5F74T.js → chunk-5AMNMH7S.js} +9 -9
- package/dist/chunks/{chunk-6AEZZC6R.js → chunk-6Q7JYDNH.js} +3 -3
- package/dist/chunks/{chunk-EHXFTW7N.js → chunk-7SMURRFY.js} +1 -1
- package/dist/chunks/{chunk-LZV4GMCS.js → chunk-7XLYPWQL.js} +4 -4
- package/dist/chunks/{chunk-DQX3ZFFV.js → chunk-A3MCE2OL.js} +1 -1
- package/dist/chunks/{chunk-NV4KCNO6.js → chunk-AN2LMY4M.js} +5 -5
- package/dist/chunks/{chunk-DXCMJTPY.js → chunk-B4DDU5KM.js} +2 -2
- package/dist/chunks/{chunk-W4QKO6ZS.js → chunk-BKOLU4XB.js} +1 -7
- package/dist/chunks/{chunk-O72W7FQL.js → chunk-EISISJQ4.js} +15 -15
- package/dist/chunks/{chunk-5VNG6JNN.js → chunk-EKKA4A5J.js} +7 -7
- package/dist/chunks/{chunk-YEHZ2OMM.js → chunk-F7IMDEGH.js} +1 -1
- package/dist/chunks/{chunk-IBXMCXYY.js → chunk-GPNEAC5E.js} +3 -3
- package/dist/chunks/{chunk-MVJSICPF.js → chunk-HGUHRTIM.js} +6 -6
- package/dist/chunks/{chunk-I2GQ7JMA.js → chunk-KWUXHRXD.js} +1 -1
- package/dist/chunks/{chunk-NL4ZO7U6.js → chunk-LHKOU6BP.js} +1 -1
- package/dist/chunks/{chunk-BNH5JRQY.js → chunk-MGWBSGMA.js} +2 -2
- package/dist/chunks/{chunk-KCUBIMLR.js → chunk-MY5CBA5H.js} +47 -47
- package/dist/chunks/{chunk-MDQGK4HW.js → chunk-PUFEIOUT.js} +2 -2
- package/dist/chunks/{chunk-DBY6OGOI.js → chunk-SD7QCT7C.js} +45 -3
- package/dist/chunks/{chunk-GGSAAHJU.js → chunk-U5UFIM2E.js} +3 -3
- package/dist/chunks/{chunk-7B3HIQKB.js → chunk-V4SNTWZO.js} +6 -6
- package/dist/chunks/{chunk-BDJVHNS3.js → chunk-VLEZSLRZ.js} +2 -2
- package/dist/chunks/{chunk-UON6H52N.js → chunk-WXMIWRZM.js} +11 -11
- package/dist/chunks/{chunk-INZHU32G.js → chunk-XG7LEVRZ.js} +1 -1
- package/dist/chunks/{client-6L6KHNWX.js → client-4LUUUMO2.js} +5 -5
- package/dist/chunks/{client-7GCBLN5E.js → client-AMMTXTFS.js} +7 -7
- package/dist/chunks/{client-4XXYAG43.js → client-O2YCQZT7.js} +1 -1
- package/dist/chunks/{client-actions-AYEBHVFF.js → client-actions-L7II3NNB.js} +9 -9
- package/dist/chunks/{dangerous-JRN3QONU.js → dangerous-RSWVATGA.js} +4 -4
- package/dist/chunks/{delete-current-file-U6JNUOFP.js → delete-current-file-E46EEPRC.js} +9 -9
- package/dist/chunks/{editor-seams-TMIDGRBD.js → editor-seams-UO4QUUQH.js} +14 -14
- package/dist/chunks/{editor-store-VWIUC3I4.js → editor-store-V43NADG6.js} +2 -2
- package/dist/chunks/{export-watermark-IP6IOXSN.js → export-watermark-XHQOOPR7.js} +9 -9
- package/dist/chunks/{eyedropper-RTQCXEKT.js → eyedropper-4D6OK4VM.js} +2 -2
- package/dist/chunks/{generate-media-DW6NJLH7.js → generate-media-XMD232CS.js} +7 -7
- package/dist/chunks/{host-XPXHKUBI.js → host-WX77JQ2K.js} +10 -10
- package/dist/chunks/{integrations-IYWQSB3G.js → integrations-LOGIGZY2.js} +4 -4
- package/dist/chunks/{libraries-XCQYQWKA.js → libraries-R63ARXMI.js} +9 -9
- package/dist/chunks/{live-Y7GVJF63.js → live-QLSNGZ3Y.js} +2 -2
- package/dist/chunks/{media-tool-6VACIBWU.js → media-tool-TXQINVAR.js} +2 -2
- package/dist/chunks/{new-file-HJZI56WL.js → new-file-UUBSWKHK.js} +7 -7
- package/dist/chunks/{plugin-63QHWDLV.js → plugin-CUBE33JW.js} +3 -3
- package/dist/chunks/{plugin-import-65PMPDLT.js → plugin-import-C5S2SHFZ.js} +18 -18
- package/dist/chunks/{presence-DL7TX4JG.js → presence-UQHDKT4A.js} +3 -3
- package/dist/chunks/{project-PNPW4ID6.js → project-KEEZ7XYP.js} +2 -2
- package/dist/chunks/{publish-site-7EHFVUMR.js → publish-site-UL2ISNZU.js} +11 -11
- package/dist/chunks/{publish-store-KWWFZTHI.js → publish-store-2TTGS2LW.js} +4 -4
- package/dist/chunks/{raster-actions-6EC2QJ4P.js → raster-actions-KYYBZLGY.js} +2 -2
- package/dist/chunks/{runner-GGVTUYTC.js → runner-ULBSWTOK.js} +21 -21
- package/dist/chunks/{runtime-LKS22XTE.js → runtime-5G7ZCZAF.js} +1 -1
- package/dist/chunks/{sites-MNET2YRC.js → sites-L6JYZ4SV.js} +4 -4
- package/dist/chunks/{store-6VQYONMV.js → store-OUZ5GTY5.js} +10 -10
- package/dist/chunks/{sync-EJE6BILI.js → sync-A56IG32K.js} +9 -9
- package/dist/chunks/{tabs-PZILJF5L.js → tabs-UWETDGQJ.js} +12 -12
- package/dist/chunks/{team-MDNFR7U6.js → team-5VEJ3OZ6.js} +4 -4
- package/dist/chunks/{team-client-56TIDA5H.js → team-client-SG3SVF4G.js} +4 -4
- package/dist/chunks/{templates-CHBINGED.js → templates-S32W3ZLK.js} +3 -3
- package/dist/chunks/{tools-P74ETUIZ.js → tools-2TCRJ6YI.js} +2 -2
- package/dist/chunks/{ui-commands-GXOVCFHB.js → ui-commands-HVPH6ZXC.js} +16 -16
- package/dist/chunks/{versions-C6G4IC2Q.js → versions-BIJCROBJ.js} +9 -9
- package/dist/index.js +3 -3
- package/dist/lib/templates/capabilities.js +2 -2
- package/dist/lib/templates/finish.js +2 -2
- package/dist/lib/templates/upload.js +2 -2
- package/dist/lib/templates/vocabulary.js +2 -2
- package/dist/migrations/categories.js +2 -2
- package/dist/migrations/index.js +2 -2
- package/dist/migrations/timeline-facets.js +2 -2
- package/dist/templates/anime/character.js +2 -2
- package/dist/templates/anime/duel.js +2 -2
- package/dist/templates/anime/morning.js +2 -2
- package/dist/templates/anime/rain.js +2 -2
- package/dist/templates/anime/shared.js +2 -2
- package/dist/templates/anime/starlight.js +2 -2
- package/dist/templates/anime/titan.js +2 -2
- package/dist/templates/app/festival-presale-electronic-ticket.js +2 -2
- package/dist/templates/app/festival-presale-family-ticket.js +2 -2
- package/dist/templates/app/festival-presale-folk-ticket.js +2 -2
- package/dist/templates/app/festival-presale-food-ticket.js +2 -2
- package/dist/templates/app/festival-presale-jazz-ticket.js +2 -2
- package/dist/templates/app/festival-presale-street-ticket.js +2 -2
- package/dist/templates/app/music-grove.js +2 -2
- package/dist/templates/app/music-nightline.js +2 -2
- package/dist/templates/app/music-orbit.js +2 -2
- package/dist/templates/app/music-undertow.js +2 -2
- package/dist/templates/app/onboarding-carousel.js +2 -2
- package/dist/templates/app/saas-store-paywall.js +2 -2
- package/dist/templates/app/splash.js +2 -2
- package/dist/templates/app/success-confetti.js +2 -2
- package/dist/templates/app/tour-tickets-june-ticket.js +2 -2
- package/dist/templates/app/tour-tickets-tide-ticket.js +2 -2
- package/dist/templates/app/tour-tickets-wreck-ticket.js +2 -2
- package/dist/templates/build.js +2 -2
- package/dist/templates/cards/index.js +2 -2
- package/dist/templates/cards/shared.js +2 -2
- package/dist/templates/cards/themes.js +2 -2
- package/dist/templates/count.js +2 -2
- package/dist/templates/data/bars.js +2 -2
- package/dist/templates/data/countdown-story.js +2 -2
- package/dist/templates/data/counters.js +2 -2
- package/dist/templates/data/donut.js +2 -2
- package/dist/templates/data/line.js +2 -2
- package/dist/templates/data/year-in-review.js +2 -2
- package/dist/templates/effects/glass-intro.js +2 -2
- package/dist/templates/effects/glass-promo.js +2 -2
- package/dist/templates/effects/grain-story.js +2 -2
- package/dist/templates/effects/grid-intro.js +2 -2
- package/dist/templates/effects/halftone-story.js +2 -2
- package/dist/templates/effects/mesh-story.js +2 -2
- package/dist/templates/effects/shader-title.js +2 -2
- package/dist/templates/email/april-fools-header.js +2 -2
- package/dist/templates/email/art-deco-invitation.js +2 -2
- package/dist/templates/email/autumn-harvest-header.js +2 -2
- package/dist/templates/email/back-to-school-header.js +2 -2
- package/dist/templates/email/black-friday-coupons-header.js +2 -2
- package/dist/templates/email/black-friday-header.js +2 -2
- package/dist/templates/email/black-friday-neon-header.js +2 -2
- package/dist/templates/email/black-friday-scratch-header.js +2 -2
- package/dist/templates/email/black-friday-ticker-header.js +2 -2
- package/dist/templates/email/broadsheet-weekly-edition-header.js +2 -2
- package/dist/templates/email/claymation-header.js +2 -2
- package/dist/templates/email/countdown-gif.js +2 -2
- package/dist/templates/email/cyberpunk-header.js +2 -2
- package/dist/templates/email/diwali-header.js +2 -2
- package/dist/templates/email/earth-day-header.js +2 -2
- package/dist/templates/email/festival-presale-electronic-header.js +2 -2
- package/dist/templates/email/festival-presale-family-header.js +2 -2
- package/dist/templates/email/festival-presale-folk-header.js +2 -2
- package/dist/templates/email/festival-presale-food-header.js +2 -2
- package/dist/templates/email/festival-presale-jazz-header.js +2 -2
- package/dist/templates/email/festival-presale-street-header.js +2 -2
- package/dist/templates/email/gothic-header.js +2 -2
- package/dist/templates/email/halloween-header.js +2 -2
- package/dist/templates/email/header-launch.js +2 -2
- package/dist/templates/email/header-newsletter.js +2 -2
- package/dist/templates/email/header-sale.js +2 -2
- package/dist/templates/email/lunar-new-year-header.js +2 -2
- package/dist/templates/email/manuscript-chronicle-header.js +2 -2
- package/dist/templates/email/new-year-header.js +2 -2
- package/dist/templates/email/noir-header.js +2 -2
- package/dist/templates/email/psychedelic-header.js +2 -2
- package/dist/templates/email/riso-zine-changelog-header.js +2 -2
- package/dist/templates/email/saas-mail-changelog.js +2 -2
- package/dist/templates/email/saas-mail-day-one.js +2 -2
- package/dist/templates/email/saas-mail-day-three.js +2 -2
- package/dist/templates/email/saas-mail-launch.js +2 -2
- package/dist/templates/email/saas-mail-payment-failed.js +2 -2
- package/dist/templates/email/saas-mail-sign-in-code.js +2 -2
- package/dist/templates/email/saas-mail-trial-ending.js +2 -2
- package/dist/templates/email/saas-mail-waitlist.js +2 -2
- package/dist/templates/email/singles-day-header.js +2 -2
- package/dist/templates/email/solarpunk-header.js +2 -2
- package/dist/templates/email/space-opera-header.js +2 -2
- package/dist/templates/email/spring-bloom-header.js +2 -2
- package/dist/templates/email/style-bento-header.js +2 -2
- package/dist/templates/email/style-brutalist-header.js +2 -2
- package/dist/templates/email/style-dark-header.js +2 -2
- package/dist/templates/email/style-data-header.js +2 -2
- package/dist/templates/email/style-editorial-header.js +2 -2
- package/dist/templates/email/style-glass-header.js +2 -2
- package/dist/templates/email/style-gradient-header.js +2 -2
- package/dist/templates/email/style-maximal-header.js +2 -2
- package/dist/templates/email/style-pastel-header.js +2 -2
- package/dist/templates/email/style-sketch-header.js +2 -2
- package/dist/templates/email/style-swiss-header.js +2 -2
- package/dist/templates/email/style-terminal-header.js +2 -2
- package/dist/templates/email/summer-heatwave-header.js +2 -2
- package/dist/templates/email/tour-tickets-june-header.js +2 -2
- package/dist/templates/email/tour-tickets-tide-header.js +2 -2
- package/dist/templates/email/tour-tickets-wreck-header.js +2 -2
- package/dist/templates/email/transit-map-service-update.js +2 -2
- package/dist/templates/email/ukiyo-e-greeting-header.js +2 -2
- package/dist/templates/email/valentines-header.js +2 -2
- package/dist/templates/email/winter-cosy-header.js +2 -2
- package/dist/templates/email/winter-holidays-header.js +2 -2
- package/dist/templates/game/blossom-bash-puzzle.js +2 -2
- package/dist/templates/game/deckbound-roguelike.js +2 -2
- package/dist/templates/game/emberfall-rpg.js +2 -2
- package/dist/templates/game/hearthmoor-farm.js +2 -2
- package/dist/templates/game/index.js +2 -2
- package/dist/templates/game/iron-lotus-fighter.js +2 -2
- package/dist/templates/game/ironroot-rts.js +2 -2
- package/dist/templates/game/mossy-hollow-platformer.js +2 -2
- package/dist/templates/game/neon-apex-racing.js +2 -2
- package/dist/templates/game/platformer.js +2 -2
- package/dist/templates/game/pulse-riot-rhythm.js +2 -2
- package/dist/templates/game/sprout-quest-pixel-platformer.js +2 -2
- package/dist/templates/game/vanta-fps.js +2 -2
- package/dist/templates/index.js +2 -2
- package/dist/templates/kinetic/letters.js +2 -2
- package/dist/templates/kinetic/lines.js +2 -2
- package/dist/templates/kinetic/typewriter.js +2 -2
- package/dist/templates/kinetic/word-swap.js +2 -2
- package/dist/templates/kinetic/words.js +2 -2
- package/dist/templates/libraries/audio-reactive.js +2 -2
- package/dist/templates/libraries/loaders.js +2 -2
- package/dist/templates/libraries/micro-interactions.js +2 -2
- package/dist/templates/libraries/motion-essentials.js +2 -2
- package/dist/templates/libraries/toasts.js +2 -2
- package/dist/templates/lottie/ai.js +2 -2
- package/dist/templates/lottie/climate.js +2 -2
- package/dist/templates/lottie/commerce.js +2 -2
- package/dist/templates/lottie/education.js +2 -2
- package/dist/templates/lottie/fintech.js +2 -2
- package/dist/templates/lottie/food.js +2 -2
- package/dist/templates/lottie/health.js +2 -2
- package/dist/templates/lottie/index.js +2 -2
- package/dist/templates/lottie/lottie-kit.js +2 -2
- package/dist/templates/lottie/realestate.js +2 -2
- package/dist/templates/lottie/saas-ui-checklist.js +2 -2
- package/dist/templates/lottie/saas-ui-dashboard-hero.js +2 -2
- package/dist/templates/lottie/saas-ui-empty-data.js +2 -2
- package/dist/templates/lottie/saas-ui-empty-search.js +2 -2
- package/dist/templates/lottie/saas-ui-error-retry.js +2 -2
- package/dist/templates/lottie/saas-ui-file-upload.js +2 -2
- package/dist/templates/lottie/saas-ui-streaming-answer.js +2 -2
- package/dist/templates/lottie/saas-ui-sync-connected.js +2 -2
- package/dist/templates/lottie/saas-ui-trial-timeline.js +2 -2
- package/dist/templates/lottie/saas-ui-upgrade-unlocked.js +2 -2
- package/dist/templates/lottie/saas-ui.js +2 -2
- package/dist/templates/lottie/saas.js +2 -2
- package/dist/templates/lottie/security.js +2 -2
- package/dist/templates/lottie/techniques.js +2 -2
- package/dist/templates/lottie/travel.js +2 -2
- package/dist/templates/motion/ambient-loop.js +2 -2
- package/dist/templates/motion/app-icon-sting.js +2 -2
- package/dist/templates/motion/april-fools-infomercial-reel.js +2 -2
- package/dist/templates/motion/arcade-high-score.js +2 -2
- package/dist/templates/motion/art-deco-grand-opening.js +2 -2
- package/dist/templates/motion/autumn-harvest-year-reel.js +2 -2
- package/dist/templates/motion/back-to-school-timetable-reel.js +2 -2
- package/dist/templates/motion/bauhaus-launch-reel.js +2 -2
- package/dist/templates/motion/black-friday-coupons-deal-reel.js +2 -2
- package/dist/templates/motion/black-friday-coupons-last-day.js +2 -2
- package/dist/templates/motion/black-friday-deal-drop.js +2 -2
- package/dist/templates/motion/black-friday-neon-deal-reel.js +2 -2
- package/dist/templates/motion/black-friday-neon-last-day.js +2 -2
- package/dist/templates/motion/black-friday-scratch-countdown.js +2 -2
- package/dist/templates/motion/black-friday-scratch-deal-reel.js +2 -2
- package/dist/templates/motion/black-friday-scratch-last-day.js +2 -2
- package/dist/templates/motion/black-friday-ticker-deal-drop.js +2 -2
- package/dist/templates/motion/black-friday-ticker-last-call.js +2 -2
- package/dist/templates/motion/blueprint-rev-b-reel.js +2 -2
- package/dist/templates/motion/broadsheet-launch-reel.js +2 -2
- package/dist/templates/motion/broadsheet-milestone-post.js +2 -2
- package/dist/templates/motion/claymation-launch-reel.js +2 -2
- package/dist/templates/motion/comic-book-issue-reel.js +2 -2
- package/dist/templates/motion/countdown.js +2 -2
- package/dist/templates/motion/cyberpunk-lock-on-reel.js +2 -2
- package/dist/templates/motion/departure-board-reel.js +2 -2
- package/dist/templates/motion/diwali-lamps-reel.js +2 -2
- package/dist/templates/motion/earth-day-footprint-reel.js +2 -2
- package/dist/templates/motion/earth-day-pledge-post.js +2 -2
- package/dist/templates/motion/festival-presale-electronic-countdown.js +2 -2
- package/dist/templates/motion/festival-presale-electronic-lineup.js +2 -2
- package/dist/templates/motion/festival-presale-electronic-reel.js +2 -2
- package/dist/templates/motion/festival-presale-electronic-tier.js +2 -2
- package/dist/templates/motion/festival-presale-family-countdown.js +2 -2
- package/dist/templates/motion/festival-presale-family-lineup.js +2 -2
- package/dist/templates/motion/festival-presale-family-reel.js +2 -2
- package/dist/templates/motion/festival-presale-family-tier.js +2 -2
- package/dist/templates/motion/festival-presale-folk-countdown.js +2 -2
- package/dist/templates/motion/festival-presale-folk-lineup.js +2 -2
- package/dist/templates/motion/festival-presale-folk-reel.js +2 -2
- package/dist/templates/motion/festival-presale-folk-tier.js +2 -2
- package/dist/templates/motion/festival-presale-food-countdown.js +2 -2
- package/dist/templates/motion/festival-presale-food-lineup.js +2 -2
- package/dist/templates/motion/festival-presale-food-reel.js +2 -2
- package/dist/templates/motion/festival-presale-food-tier.js +2 -2
- package/dist/templates/motion/festival-presale-jazz-countdown.js +2 -2
- package/dist/templates/motion/festival-presale-jazz-lineup.js +2 -2
- package/dist/templates/motion/festival-presale-jazz-reel.js +2 -2
- package/dist/templates/motion/festival-presale-jazz-tier.js +2 -2
- package/dist/templates/motion/festival-presale-street-countdown.js +2 -2
- package/dist/templates/motion/festival-presale-street-lineup.js +2 -2
- package/dist/templates/motion/festival-presale-street-reel.js +2 -2
- package/dist/templates/motion/festival-presale-street-tier.js +2 -2
- package/dist/templates/motion/gothic-launch-reel.js +2 -2
- package/dist/templates/motion/halloween-graveyard-reel.js +2 -2
- package/dist/templates/motion/instagram-promo.js +2 -2
- package/dist/templates/motion/kinetic-headline.js +2 -2
- package/dist/templates/motion/landing-hero/index.js +2 -2
- package/dist/templates/motion/launch-trailer/document.js +2 -2
- package/dist/templates/motion/launch-trailer/index.js +2 -2
- package/dist/templates/motion/launch-trailer/scenes.js +2 -2
- package/dist/templates/motion/logo-reveal.js +2 -2
- package/dist/templates/motion/lower-third.js +2 -2
- package/dist/templates/motion/lunar-new-year-envelope-reel.js +2 -2
- package/dist/templates/motion/machined-trailer.js +2 -2
- package/dist/templates/motion/manuscript-launch-reel.js +2 -2
- package/dist/templates/motion/new-year-ball-drop-reel.js +2 -2
- package/dist/templates/motion/noir-case-reel.js +2 -2
- package/dist/templates/motion/pitch-title.js +2 -2
- package/dist/templates/motion/psychedelic-gig-reel.js +2 -2
- package/dist/templates/motion/riso-zine-launch-reel.js +2 -2
- package/dist/templates/motion/saas-ai-prompt.js +2 -2
- package/dist/templates/motion/saas-before-after.js +2 -2
- package/dist/templates/motion/saas-changelog-drop.js +2 -2
- package/dist/templates/motion/saas-film-webinar-opener.js +2 -2
- package/dist/templates/motion/saas-hook-features.js +2 -2
- package/dist/templates/motion/saas-mrr-milestone.js +2 -2
- package/dist/templates/motion/saas-screen-demo.js +2 -2
- package/dist/templates/motion/saas-store-install-ad.js +2 -2
- package/dist/templates/motion/saas-testimonial.js +2 -2
- package/dist/templates/motion/saas-vs-comparison.js +2 -2
- package/dist/templates/motion/singles-day-flash-post.js +2 -2
- package/dist/templates/motion/singles-day-live-reel.js +2 -2
- package/dist/templates/motion/smooth-loop.js +2 -2
- package/dist/templates/motion/solarpunk-rooftop-reel.js +2 -2
- package/dist/templates/motion/space-opera-countdown-reel.js +2 -2
- package/dist/templates/motion/spring-bloom-first-hundred-post.js +2 -2
- package/dist/templates/motion/spring-bloom-first-shoots-reel.js +2 -2
- package/dist/templates/motion/stat-pop.js +2 -2
- package/dist/templates/motion/style-bento-feature-demo.js +2 -2
- package/dist/templates/motion/style-bento-launch-reel.js +2 -2
- package/dist/templates/motion/style-brutalist-feature-demo.js +2 -2
- package/dist/templates/motion/style-brutalist-launch-reel.js +2 -2
- package/dist/templates/motion/style-dark-feature-demo.js +2 -2
- package/dist/templates/motion/style-dark-launch-reel.js +2 -2
- package/dist/templates/motion/style-data-feature-demo.js +2 -2
- package/dist/templates/motion/style-data-launch-reel.js +2 -2
- package/dist/templates/motion/style-editorial-feature-demo.js +2 -2
- package/dist/templates/motion/style-editorial-launch-reel.js +2 -2
- package/dist/templates/motion/style-glass-feature-demo.js +2 -2
- package/dist/templates/motion/style-glass-launch-reel.js +2 -2
- package/dist/templates/motion/style-gradient-feature-demo.js +2 -2
- package/dist/templates/motion/style-gradient-launch-reel.js +2 -2
- package/dist/templates/motion/style-maximal-beat-cut.js +2 -2
- package/dist/templates/motion/style-maximal-feature-demo.js +2 -2
- package/dist/templates/motion/style-maximal-launch-reel.js +2 -2
- package/dist/templates/motion/style-pastel-feature-demo.js +2 -2
- package/dist/templates/motion/style-pastel-launch-reel.js +2 -2
- package/dist/templates/motion/style-sketch-feature-demo.js +2 -2
- package/dist/templates/motion/style-sketch-launch-reel.js +2 -2
- package/dist/templates/motion/style-swiss-feature-demo.js +2 -2
- package/dist/templates/motion/style-swiss-launch-reel.js +2 -2
- package/dist/templates/motion/style-terminal-feature-demo.js +2 -2
- package/dist/templates/motion/style-terminal-launch-reel.js +2 -2
- package/dist/templates/motion/summer-heatwave-lido-reel.js +2 -2
- package/dist/templates/motion/template-wall.js +2 -2
- package/dist/templates/motion/title-card-3d.js +2 -2
- package/dist/templates/motion/tour-tickets-june-city.js +2 -2
- package/dist/templates/motion/tour-tickets-june-dates.js +2 -2
- package/dist/templates/motion/tour-tickets-june-final.js +2 -2
- package/dist/templates/motion/tour-tickets-june-reel.js +2 -2
- package/dist/templates/motion/tour-tickets-tide-city.js +2 -2
- package/dist/templates/motion/tour-tickets-tide-dates.js +2 -2
- package/dist/templates/motion/tour-tickets-tide-final.js +2 -2
- package/dist/templates/motion/tour-tickets-tide-reel.js +2 -2
- package/dist/templates/motion/tour-tickets-wreck-city.js +2 -2
- package/dist/templates/motion/tour-tickets-wreck-dates.js +2 -2
- package/dist/templates/motion/tour-tickets-wreck-final.js +2 -2
- package/dist/templates/motion/tour-tickets-wreck-reel.js +2 -2
- package/dist/templates/motion/transit-map-line-opening.js +2 -2
- package/dist/templates/motion/transit-map-milestone-post.js +2 -2
- package/dist/templates/motion/ukiyo-e-launch-reel.js +2 -2
- package/dist/templates/motion/valentines-breakup-reel.js +2 -2
- package/dist/templates/motion/vaporwave-launch-reel.js +2 -2
- package/dist/templates/motion/winter-cosy-heads-down-post.js +2 -2
- package/dist/templates/motion/winter-cosy-hibernation-reel.js +2 -2
- package/dist/templates/motion/winter-holidays-advent-reel.js +2 -2
- package/dist/templates/motion3d/app-store-preview.js +2 -2
- package/dist/templates/motion3d/before-after-swing.js +2 -2
- package/dist/templates/motion3d/burger-reveal.js +2 -2
- package/dist/templates/motion3d/coverflow.js +2 -2
- package/dist/templates/motion3d/exploded-ui.js +2 -2
- package/dist/templates/motion3d/feature-flip.js +2 -2
- package/dist/templates/motion3d/kinetic-reveal.js +2 -2
- package/dist/templates/motion3d/laptop-reveal.js +2 -2
- package/dist/templates/motion3d/logo-extrude.js +2 -2
- package/dist/templates/motion3d/parallax-cascade.js +2 -2
- package/dist/templates/motion3d/phone-orbit.js +2 -2
- package/dist/templates/motion3d/pricing-fan.js +2 -2
- package/dist/templates/motion3d/product-turntable.js +2 -2
- package/dist/templates/motion3d/saas-film-cinematic-trailer.js +2 -2
- package/dist/templates/motion3d/screen-wall.js +2 -2
- package/dist/templates/motion3d/vertical-promo.js +2 -2
- package/dist/templates/music/edm-drop.js +2 -2
- package/dist/templates/music/festival-lineup.js +2 -2
- package/dist/templates/music/hiphop-lyrics.js +2 -2
- package/dist/templates/music/indie-poster.js +2 -2
- package/dist/templates/music/lofi-loop.js +2 -2
- package/dist/templates/music/podcast-audiogram.js +2 -2
- package/dist/templates/music/synthwave-tunnel.js +2 -2
- package/dist/templates/print/comic-hero-cascade.js +2 -2
- package/dist/templates/print/comic-hero-chase.js +2 -2
- package/dist/templates/print/comic-hero-cover-modern.js +2 -2
- package/dist/templates/print/comic-hero-grid-break.js +2 -2
- package/dist/templates/print/comic-hero-interrogation.js +2 -2
- package/dist/templates/print/comic-hero-issue.js +2 -2
- package/dist/templates/print/comic-hero-manga-action.js +2 -2
- package/dist/templates/print/comic-hero-nested.js +2 -2
- package/dist/templates/print/comic-hero-overlap.js +2 -2
- package/dist/templates/print/comic-hero-parallel.js +2 -2
- package/dist/templates/print/comic-hero-pinup.js +2 -2
- package/dist/templates/print/comic-hero-widescreen.js +2 -2
- package/dist/templates/print/comic-modern-action-slant.js +2 -2
- package/dist/templates/print/comic-modern-cover-pulp.js +2 -2
- package/dist/templates/print/comic-modern-flashback.js +2 -2
- package/dist/templates/print/comic-modern-issue.js +2 -2
- package/dist/templates/print/comic-modern-nine-grid.js +2 -2
- package/dist/templates/print/comic-modern-page-classic.js +2 -2
- package/dist/templates/print/comic-modern-polyptych.js +2 -2
- package/dist/templates/print/comic-modern-radial.js +2 -2
- package/dist/templates/print/comic-modern-splash.js +2 -2
- package/dist/templates/print/comic-modern-spread.js +2 -2
- package/dist/templates/print/everyday-save-the-date.js +2 -2
- package/dist/templates/print/everyday-specials-board.js +2 -2
- package/dist/templates/print/holidays-christmas-church-newsletter.js +2 -2
- package/dist/templates/print/holidays-christmas-eve-invitation.js +2 -2
- package/dist/templates/print/holidays-christmas-gift-tags.js +2 -2
- package/dist/templates/print/holidays-diwali-party-invitation.js +2 -2
- package/dist/templates/print/holidays-easter-activity-sheet.js +2 -2
- package/dist/templates/print/holidays-easter-egg-hunt-flyer.js +2 -2
- package/dist/templates/print/holidays-eid-dinner-invitation.js +2 -2
- package/dist/templates/print/holidays-eid-gift-tags.js +2 -2
- package/dist/templates/print/holidays-halloween-party-invitation.js +2 -2
- package/dist/templates/print/holidays-halloween-treat-labels.js +2 -2
- package/dist/templates/print/holidays-halloween-trunk-or-treat-poster.js +2 -2
- package/dist/templates/print/holidays-hanukkah-activity-sheet.js +2 -2
- package/dist/templates/print/holidays-hanukkah-party-invitation.js +2 -2
- package/dist/templates/print/holidays-lunar-new-year-banquet-menu.js +2 -2
- package/dist/templates/print/holidays-new-years-eve-poster.js +2 -2
- package/dist/templates/print/holidays-thanksgiving-dinner-menu.js +2 -2
- package/dist/templates/print/holidays-thanksgiving-place-cards.js +2 -2
- package/dist/templates/print/holidays-valentines-dinner-menu.js +2 -2
- package/dist/templates/print/printshop-booklet-open-day.js +2 -2
- package/dist/templates/print/printshop-brochure-community.js +2 -2
- package/dist/templates/print/printshop-brochure-dental.js +2 -2
- package/dist/templates/print/printshop-brochure-gym.js +2 -2
- package/dist/templates/print/printshop-brochure-landscaping.js +2 -2
- package/dist/templates/print/printshop-brochure-travel.js +2 -2
- package/dist/templates/print/printshop-card-architect.js +2 -2
- package/dist/templates/print/printshop-card-barber.js +2 -2
- package/dist/templates/print/printshop-card-cafe.js +2 -2
- package/dist/templates/print/printshop-card-developer.js +2 -2
- package/dist/templates/print/printshop-card-florist.js +2 -2
- package/dist/templates/print/printshop-card-lawyer.js +2 -2
- package/dist/templates/print/printshop-card-photographer.js +2 -2
- package/dist/templates/print/printshop-card-plumber.js +2 -2
- package/dist/templates/print/printshop-card-realtor.js +2 -2
- package/dist/templates/print/printshop-card-yoga.js +2 -2
- package/dist/templates/print/printshop-flyer-charity-run.js +2 -2
- package/dist/templates/print/printshop-flyer-farmers-market.js +2 -2
- package/dist/templates/print/printshop-flyer-garage-sale.js +2 -2
- package/dist/templates/print/printshop-flyer-grand-opening.js +2 -2
- package/dist/templates/print/printshop-flyer-lost-pet.js +2 -2
- package/dist/templates/print/printshop-flyer-tutoring.js +2 -2
- package/dist/templates/print/printshop-flyer-yard-work.js +2 -2
- package/dist/templates/print/printshop-poster-live-music.js +2 -2
- package/dist/templates/print/studio-class-timetable-poster.js +2 -2
- package/dist/templates/print/studio-portfolio-booklet.js +2 -2
- package/dist/templates/saas/email-decks-shared.js +2 -2
- package/dist/templates/saas/email-decks.js +2 -2
- package/dist/templates/saas/index.js +2 -2
- package/dist/templates/saas/launch-kit.js +2 -2
- package/dist/templates/saas/launch-video.js +2 -2
- package/dist/templates/saas/lottie-shared.js +2 -2
- package/dist/templates/saas/stores.js +2 -2
- package/dist/templates/saas/style-bento.js +2 -2
- package/dist/templates/saas/style-brutalist.js +2 -2
- package/dist/templates/saas/style-dark.js +2 -2
- package/dist/templates/saas/style-data.js +2 -2
- package/dist/templates/saas/style-editorial.js +2 -2
- package/dist/templates/saas/style-glass.js +2 -2
- package/dist/templates/saas/style-gradient.js +2 -2
- package/dist/templates/saas/style-maximal.js +2 -2
- package/dist/templates/saas/style-pastel.js +2 -2
- package/dist/templates/saas/style-sketch.js +2 -2
- package/dist/templates/saas/style-swiss.js +2 -2
- package/dist/templates/saas/style-terminal.js +2 -2
- package/dist/templates/saas/video.js +2 -2
- package/dist/templates/saas/web.js +2 -2
- package/dist/templates/scenes/before-after.js +2 -2
- package/dist/templates/scenes/carousel-video.js +2 -2
- package/dist/templates/scenes/saas-film-app-preview.js +2 -2
- package/dist/templates/scenes/saas-film-bright-trailer.js +2 -2
- package/dist/templates/scenes/saas-film-product-hunt-launch.js +2 -2
- package/dist/templates/scenes/saas-film-youtube-demo-kit.js +2 -2
- package/dist/templates/scenes/story-ad.js +2 -2
- package/dist/templates/scenes/story-bakery.js +2 -2
- package/dist/templates/scenes/story-fitness.js +2 -2
- package/dist/templates/scenes/story-hotel.js +2 -2
- package/dist/templates/scenes/transitions-pack.js +2 -2
- package/dist/templates/scenes/web-scroll.js +2 -2
- package/dist/templates/slides/agenda.js +2 -2
- package/dist/templates/slides/deck.js +2 -2
- package/dist/templates/slides/education.js +2 -2
- package/dist/templates/slides/launch.js +2 -2
- package/dist/templates/slides/layouts.js +2 -2
- package/dist/templates/slides/pitch.js +2 -2
- package/dist/templates/slides/report.js +2 -2
- package/dist/templates/slides/saas-mail-investor-update.js +2 -2
- package/dist/templates/slides/saas-mail-seed-pitch.js +2 -2
- package/dist/templates/slides/sales.js +2 -2
- package/dist/templates/slides/section-divider.js +2 -2
- package/dist/templates/slides/title-card.js +2 -2
- package/dist/templates/slides/training.js +2 -2
- package/dist/templates/slides/webinar.js +2 -2
- package/dist/templates/slideshow/adoption.js +2 -2
- package/dist/templates/slideshow/baby.js +2 -2
- package/dist/templates/slideshow/birthday.js +2 -2
- package/dist/templates/slideshow/graduation.js +2 -2
- package/dist/templates/slideshow/holiday.js +2 -2
- package/dist/templates/slideshow/home.js +2 -2
- package/dist/templates/slideshow/index.js +2 -2
- package/dist/templates/slideshow/lease.js +2 -2
- package/dist/templates/slideshow/memorial.js +2 -2
- package/dist/templates/slideshow/portfolio.js +2 -2
- package/dist/templates/slideshow/product.js +2 -2
- package/dist/templates/slideshow/recipe.js +2 -2
- package/dist/templates/slideshow/shared.js +2 -2
- package/dist/templates/slideshow/team.js +2 -2
- package/dist/templates/slideshow/travel.js +2 -2
- package/dist/templates/slideshow/wedding.js +2 -2
- package/dist/templates/slideshow/year.js +2 -2
- package/dist/templates/social/april-fools-link-preview.js +2 -2
- package/dist/templates/social/april-fools-price-slash-post.js +2 -2
- package/dist/templates/social/arcade-boss-fight.js +2 -2
- package/dist/templates/social/arcade-level-up.js +2 -2
- package/dist/templates/social/art-deco-link-preview.js +2 -2
- package/dist/templates/social/art-deco-premiere-post.js +2 -2
- package/dist/templates/social/autumn-harvest-link-preview.js +2 -2
- package/dist/templates/social/autumn-harvest-thanks-post.js +2 -2
- package/dist/templates/social/back-to-school-link-preview.js +2 -2
- package/dist/templates/social/back-to-school-report-card-post.js +2 -2
- package/dist/templates/social/bauhaus-drift-post.js +2 -2
- package/dist/templates/social/bauhaus-link-preview.js +2 -2
- package/dist/templates/social/bauhaus-pricing-post.js +2 -2
- package/dist/templates/social/black-friday-ads.js +2 -2
- package/dist/templates/social/black-friday-countdown.js +2 -2
- package/dist/templates/social/black-friday-coupons-ads.js +2 -2
- package/dist/templates/social/black-friday-coupons-countdown.js +2 -2
- package/dist/templates/social/black-friday-neon-ads.js +2 -2
- package/dist/templates/social/black-friday-neon-countdown.js +2 -2
- package/dist/templates/social/black-friday-scratch-ads.js +2 -2
- package/dist/templates/social/black-friday-ticker-ads.js +2 -2
- package/dist/templates/social/black-friday-ticker-countdown.js +2 -2
- package/dist/templates/social/blueprint-dimension-post.js +2 -2
- package/dist/templates/social/blueprint-link-preview.js +2 -2
- package/dist/templates/social/blueprint-parts-list-post.js +2 -2
- package/dist/templates/social/broadsheet-hiring-classifieds.js +2 -2
- package/dist/templates/social/broadsheet-link-preview.js +2 -2
- package/dist/templates/social/claymation-link-preview.js +2 -2
- package/dist/templates/social/claymation-streak-post.js +2 -2
- package/dist/templates/social/comic-book-cover-preview.js +2 -2
- package/dist/templates/social/comic-book-strip-post.js +2 -2
- package/dist/templates/social/cyberpunk-implant-post.js +2 -2
- package/dist/templates/social/cyberpunk-link-preview.js +2 -2
- package/dist/templates/social/departure-board-pass-ad.js +2 -2
- package/dist/templates/social/departure-board-store-set.js +2 -2
- package/dist/templates/social/departure-board-thanks-post.js +2 -2
- package/dist/templates/social/diwali-link-preview.js +2 -2
- package/dist/templates/social/diwali-thanks-post.js +2 -2
- package/dist/templates/social/earth-day-link-preview.js +2 -2
- package/dist/templates/social/everyday-save-the-date-post.js +2 -2
- package/dist/templates/social/festival-presale-electronic-ads.js +2 -2
- package/dist/templates/social/festival-presale-family-ads.js +2 -2
- package/dist/templates/social/festival-presale-folk-ads.js +2 -2
- package/dist/templates/social/festival-presale-food-ads.js +2 -2
- package/dist/templates/social/festival-presale-jazz-ads.js +2 -2
- package/dist/templates/social/festival-presale-street-ads.js +2 -2
- package/dist/templates/social/gothic-feature-post.js +2 -2
- package/dist/templates/social/gothic-link-preview.js +2 -2
- package/dist/templates/social/halloween-link-preview.js +2 -2
- package/dist/templates/social/halloween-offer-post.js +2 -2
- package/dist/templates/social/holidays-diwali-sweet-shop-post.js +2 -2
- package/dist/templates/social/holidays-lunar-new-year-bakery-post.js +2 -2
- package/dist/templates/social/holidays-new-years-eve-shop-hours.js +2 -2
- package/dist/templates/social/holidays-thanksgiving-pie-orders-post.js +2 -2
- package/dist/templates/social/holidays-valentines-florist-post.js +2 -2
- package/dist/templates/social/lunar-new-year-greeting-post.js +2 -2
- package/dist/templates/social/lunar-new-year-link-preview.js +2 -2
- package/dist/templates/social/machined-link-preview.js +2 -2
- package/dist/templates/social/machined-plate-post.js +2 -2
- package/dist/templates/social/manuscript-chapter-post.js +2 -2
- package/dist/templates/social/manuscript-link-preview.js +2 -2
- package/dist/templates/social/new-year-link-preview.js +2 -2
- package/dist/templates/social/new-year-resolutions-post.js +2 -2
- package/dist/templates/social/noir-case-file.js +2 -2
- package/dist/templates/social/noir-feature-post.js +2 -2
- package/dist/templates/social/post-announcement.js +2 -2
- package/dist/templates/social/post-event.js +2 -2
- package/dist/templates/social/post-podcast.js +2 -2
- package/dist/templates/social/post-quote.js +2 -2
- package/dist/templates/social/post-sale.js +2 -2
- package/dist/templates/social/post-stat.js +2 -2
- package/dist/templates/social/post-testimonial.js +2 -2
- package/dist/templates/social/promo-announcement.js +2 -2
- package/dist/templates/social/promo-beat-drop.js +2 -2
- package/dist/templates/social/promo-event.js +2 -2
- package/dist/templates/social/promo-new-product.js +2 -2
- package/dist/templates/social/promo-quote-reveal.js +2 -2
- package/dist/templates/social/promo-sale-drop.js +2 -2
- package/dist/templates/social/promo-tip-list.js +2 -2
- package/dist/templates/social/psychedelic-lineup-post.js +2 -2
- package/dist/templates/social/psychedelic-link-preview.js +2 -2
- package/dist/templates/social/riso-zine-link-preview.js +2 -2
- package/dist/templates/social/riso-zine-mrr-poster.js +2 -2
- package/dist/templates/social/saas-kit-carousel.js +2 -2
- package/dist/templates/social/saas-kit-countdown-post.js +2 -2
- package/dist/templates/social/saas-kit-feature-drop.js +2 -2
- package/dist/templates/social/saas-kit-link-preview.js +2 -2
- package/dist/templates/social/saas-kit-live-post.js +2 -2
- package/dist/templates/social/saas-kit-mrr-card.js +2 -2
- package/dist/templates/social/saas-kit-ph-gallery.js +2 -2
- package/dist/templates/social/saas-kit-ph-thumb.js +2 -2
- package/dist/templates/social/saas-kit-youtube-thumbs.js +2 -2
- package/dist/templates/social/saas-store-b2b-ads.js +2 -2
- package/dist/templates/social/saas-store-caption-set.js +2 -2
- package/dist/templates/social/saas-store-chrome-kit.js +2 -2
- package/dist/templates/social/saas-store-ipad-set.js +2 -2
- package/dist/templates/social/saas-store-panorama.js +2 -2
- package/dist/templates/social/saas-store-play-kit.js +2 -2
- package/dist/templates/social/saas-store-story.js +2 -2
- package/dist/templates/social/singles-day-link-preview.js +2 -2
- package/dist/templates/social/solarpunk-impact-post.js +2 -2
- package/dist/templates/social/solarpunk-link-preview.js +2 -2
- package/dist/templates/social/space-opera-link-preview.js +2 -2
- package/dist/templates/social/space-opera-mission-patch-post.js +2 -2
- package/dist/templates/social/spring-bloom-link-preview.js +2 -2
- package/dist/templates/social/studio-class-timetable.js +2 -2
- package/dist/templates/social/studio-podcast-cover.js +2 -2
- package/dist/templates/social/style-bento-announcement.js +2 -2
- package/dist/templates/social/style-bento-link-preview.js +2 -2
- package/dist/templates/social/style-bento-milestone.js +2 -2
- package/dist/templates/social/style-bento-testimonial.js +2 -2
- package/dist/templates/social/style-brutalist-announcement.js +2 -2
- package/dist/templates/social/style-brutalist-link-preview.js +2 -2
- package/dist/templates/social/style-brutalist-milestone.js +2 -2
- package/dist/templates/social/style-brutalist-testimonial.js +2 -2
- package/dist/templates/social/style-dark-announcement.js +2 -2
- package/dist/templates/social/style-dark-link-preview.js +2 -2
- package/dist/templates/social/style-dark-milestone.js +2 -2
- package/dist/templates/social/style-dark-testimonial.js +2 -2
- package/dist/templates/social/style-data-announcement.js +2 -2
- package/dist/templates/social/style-data-link-preview.js +2 -2
- package/dist/templates/social/style-data-milestone.js +2 -2
- package/dist/templates/social/style-data-testimonial.js +2 -2
- package/dist/templates/social/style-editorial-announcement.js +2 -2
- package/dist/templates/social/style-editorial-link-preview.js +2 -2
- package/dist/templates/social/style-editorial-milestone.js +2 -2
- package/dist/templates/social/style-editorial-testimonial.js +2 -2
- package/dist/templates/social/style-glass-announcement.js +2 -2
- package/dist/templates/social/style-glass-link-preview.js +2 -2
- package/dist/templates/social/style-glass-milestone.js +2 -2
- package/dist/templates/social/style-glass-testimonial.js +2 -2
- package/dist/templates/social/style-gradient-announcement.js +2 -2
- package/dist/templates/social/style-gradient-link-preview.js +2 -2
- package/dist/templates/social/style-gradient-milestone.js +2 -2
- package/dist/templates/social/style-gradient-testimonial.js +2 -2
- package/dist/templates/social/style-maximal-announcement.js +2 -2
- package/dist/templates/social/style-maximal-link-preview.js +2 -2
- package/dist/templates/social/style-maximal-milestone.js +2 -2
- package/dist/templates/social/style-maximal-testimonial.js +2 -2
- package/dist/templates/social/style-pastel-announcement.js +2 -2
- package/dist/templates/social/style-pastel-link-preview.js +2 -2
- package/dist/templates/social/style-pastel-milestone.js +2 -2
- package/dist/templates/social/style-pastel-testimonial.js +2 -2
- package/dist/templates/social/style-sketch-announcement.js +2 -2
- package/dist/templates/social/style-sketch-link-preview.js +2 -2
- package/dist/templates/social/style-sketch-milestone.js +2 -2
- package/dist/templates/social/style-sketch-testimonial.js +2 -2
- package/dist/templates/social/style-swiss-announcement.js +2 -2
- package/dist/templates/social/style-swiss-link-preview.js +2 -2
- package/dist/templates/social/style-swiss-milestone.js +2 -2
- package/dist/templates/social/style-swiss-testimonial.js +2 -2
- package/dist/templates/social/style-terminal-announcement.js +2 -2
- package/dist/templates/social/style-terminal-link-preview.js +2 -2
- package/dist/templates/social/style-terminal-milestone.js +2 -2
- package/dist/templates/social/style-terminal-testimonial.js +2 -2
- package/dist/templates/social/summer-heatwave-link-preview.js +2 -2
- package/dist/templates/social/summer-heatwave-lolly-post.js +2 -2
- package/dist/templates/social/tour-tickets-june-ads.js +2 -2
- package/dist/templates/social/tour-tickets-tide-ads.js +2 -2
- package/dist/templates/social/tour-tickets-wreck-ads.js +2 -2
- package/dist/templates/social/transit-map-link-preview.js +2 -2
- package/dist/templates/social/ukiyo-e-link-preview.js +2 -2
- package/dist/templates/social/ukiyo-e-spike-post.js +2 -2
- package/dist/templates/social/valentines-link-preview.js +2 -2
- package/dist/templates/social/valentines-poem-post.js +2 -2
- package/dist/templates/social/vaporwave-feature-drop.js +2 -2
- package/dist/templates/social/vaporwave-link-preview.js +2 -2
- package/dist/templates/social/winter-cosy-link-preview.js +2 -2
- package/dist/templates/social/winter-holidays-link-preview.js +2 -2
- package/dist/templates/social/winter-holidays-thanks-post.js +2 -2
- package/dist/templates/stings/line-reveal.js +2 -2
- package/dist/templates/stings/sting-blur.js +2 -2
- package/dist/templates/stings/sting-pop.js +2 -2
- package/dist/templates/stings/sting-rise.js +2 -2
- package/dist/templates/stings/sting-shimmer.js +2 -2
- package/dist/templates/stings/word-swap.js +2 -2
- package/dist/templates/text/stat-counter.js +2 -2
- package/dist/templates/text/word-quote.js +2 -2
- package/dist/templates/themes/april-fools.js +2 -2
- package/dist/templates/themes/arcade.js +2 -2
- package/dist/templates/themes/art-deco.js +2 -2
- package/dist/templates/themes/autumn-harvest.js +2 -2
- package/dist/templates/themes/back-to-school.js +2 -2
- package/dist/templates/themes/bauhaus.js +2 -2
- package/dist/templates/themes/black-friday-coupons.js +2 -2
- package/dist/templates/themes/black-friday-neon.js +2 -2
- package/dist/templates/themes/black-friday-scratch.js +2 -2
- package/dist/templates/themes/black-friday-ticker.js +2 -2
- package/dist/templates/themes/black-friday.js +2 -2
- package/dist/templates/themes/blueprint.js +2 -2
- package/dist/templates/themes/broadsheet.js +2 -2
- package/dist/templates/themes/claymation.js +2 -2
- package/dist/templates/themes/comic-book.js +2 -2
- package/dist/templates/themes/comic-hero.js +2 -2
- package/dist/templates/themes/comic-indie.js +2 -2
- package/dist/templates/themes/cyberpunk.js +2 -2
- package/dist/templates/themes/departure-board.js +2 -2
- package/dist/templates/themes/diwali.js +2 -2
- package/dist/templates/themes/earth-day.js +2 -2
- package/dist/templates/themes/everyday.js +2 -2
- package/dist/templates/themes/festival-presale-electronic-kit.js +2 -2
- package/dist/templates/themes/festival-presale-family-a-shared.js +2 -2
- package/dist/templates/themes/festival-presale-family-a.js +2 -2
- package/dist/templates/themes/festival-presale-family-b-shared.js +2 -2
- package/dist/templates/themes/festival-presale-family-b.js +2 -2
- package/dist/templates/themes/festival-presale-family-kit.js +2 -2
- package/dist/templates/themes/festival-presale-folk-kit.js +2 -2
- package/dist/templates/themes/festival-presale-food-kit.js +2 -2
- package/dist/templates/themes/festival-presale-jazz-kit.js +2 -2
- package/dist/templates/themes/festival-presale-street-kit.js +2 -2
- package/dist/templates/themes/festival-presale.js +2 -2
- package/dist/templates/themes/gothic.js +2 -2
- package/dist/templates/themes/halloween.js +2 -2
- package/dist/templates/themes/holidays.js +2 -2
- package/dist/templates/themes/index.js +2 -2
- package/dist/templates/themes/lunar-new-year.js +2 -2
- package/dist/templates/themes/machined.js +2 -2
- package/dist/templates/themes/manuscript.js +2 -2
- package/dist/templates/themes/memories.js +2 -2
- package/dist/templates/themes/new-year.js +2 -2
- package/dist/templates/themes/noir.js +2 -2
- package/dist/templates/themes/printshop.js +2 -2
- package/dist/templates/themes/psychedelic.js +2 -2
- package/dist/templates/themes/riso-zine.js +2 -2
- package/dist/templates/themes/singles-day.js +2 -2
- package/dist/templates/themes/solarpunk.js +2 -2
- package/dist/templates/themes/space-opera.js +2 -2
- package/dist/templates/themes/spring-bloom.js +2 -2
- package/dist/templates/themes/studio.js +2 -2
- package/dist/templates/themes/summer-heatwave.js +2 -2
- package/dist/templates/themes/tour-tickets.js +2 -2
- package/dist/templates/themes/transit-map.js +2 -2
- package/dist/templates/themes/ukiyo-e.js +2 -2
- package/dist/templates/themes/valentines.js +2 -2
- package/dist/templates/themes/vaporwave.js +2 -2
- package/dist/templates/themes/winter-cosy.js +2 -2
- package/dist/templates/themes/winter-holidays.js +2 -2
- package/dist/templates/video/youtube-chapter.js +2 -2
- package/dist/templates/video/youtube-end-screen.js +2 -2
- package/dist/templates/video/youtube-intro.js +2 -2
- package/dist/templates/video/youtube-subscribe.js +2 -2
- package/dist/templates/web/april-fools-landing.js +2 -2
- package/dist/templates/web/arcade-landing.js +2 -2
- package/dist/templates/web/art-deco-landing.js +2 -2
- package/dist/templates/web/autumn-harvest-landing.js +2 -2
- package/dist/templates/web/back-to-school-landing.js +2 -2
- package/dist/templates/web/bauhaus-landing.js +2 -2
- package/dist/templates/web/black-friday-coupons-landing.js +2 -2
- package/dist/templates/web/black-friday-landing.js +2 -2
- package/dist/templates/web/black-friday-neon-landing.js +2 -2
- package/dist/templates/web/black-friday-scratch-landing.js +2 -2
- package/dist/templates/web/black-friday-ticker-landing.js +2 -2
- package/dist/templates/web/blog-post.js +2 -2
- package/dist/templates/web/blueprint-landing.js +2 -2
- package/dist/templates/web/broadsheet-landing.js +2 -2
- package/dist/templates/web/claymation-landing.js +2 -2
- package/dist/templates/web/comic-book-landing.js +2 -2
- package/dist/templates/web/coming-soon-page.js +2 -2
- package/dist/templates/web/coming-soon.js +2 -2
- package/dist/templates/web/contact.js +2 -2
- package/dist/templates/web/cyberpunk-landing.js +2 -2
- package/dist/templates/web/daybreak-app.js +2 -2
- package/dist/templates/web/departure-board-download.js +2 -2
- package/dist/templates/web/diwali-landing.js +2 -2
- package/dist/templates/web/earth-day-landing.js +2 -2
- package/dist/templates/web/everyday-cafe.js +2 -2
- package/dist/templates/web/everyday-hotel.js +2 -2
- package/dist/templates/web/everyday-wedding.js +2 -2
- package/dist/templates/web/festival-presale-electronic.js +2 -2
- package/dist/templates/web/festival-presale-family.js +2 -2
- package/dist/templates/web/festival-presale-folk.js +2 -2
- package/dist/templates/web/festival-presale-food.js +2 -2
- package/dist/templates/web/festival-presale-jazz.js +2 -2
- package/dist/templates/web/festival-presale-street.js +2 -2
- package/dist/templates/web/gothic-landing.js +2 -2
- package/dist/templates/web/halloween-landing.js +2 -2
- package/dist/templates/web/hero-animated.js +2 -2
- package/dist/templates/web/kindling-app.js +2 -2
- package/dist/templates/web/launch-waitlist.js +2 -2
- package/dist/templates/web/lunar-new-year-landing.js +2 -2
- package/dist/templates/web/machined-hero.js +2 -2
- package/dist/templates/web/manuscript-landing.js +2 -2
- package/dist/templates/web/marginalia-app.js +2 -2
- package/dist/templates/web/new-year-landing.js +2 -2
- package/dist/templates/web/noir-landing.js +2 -2
- package/dist/templates/web/page-404.js +2 -2
- package/dist/templates/web/portfolio-architect.js +2 -2
- package/dist/templates/web/portfolio-card-deck.js +2 -2
- package/dist/templates/web/portfolio-case-folio.js +2 -2
- package/dist/templates/web/portfolio-cube-gallery.js +2 -2
- package/dist/templates/web/portfolio-depth-tunnel.js +2 -2
- package/dist/templates/web/portfolio-editorial.js +2 -2
- package/dist/templates/web/portfolio-flip-wall.js +2 -2
- package/dist/templates/web/portfolio-index-list.js +2 -2
- package/dist/templates/web/portfolio-photographer.js +2 -2
- package/dist/templates/web/portfolio-reel-carousel.js +2 -2
- package/dist/templates/web/portfolio-sketchbook.js +2 -2
- package/dist/templates/web/portfolio-studio-grid.js +2 -2
- package/dist/templates/web/portfolio.js +2 -2
- package/dist/templates/web/portfolios.js +2 -2
- package/dist/templates/web/potluck-app.js +2 -2
- package/dist/templates/web/pricing-toggle.js +2 -2
- package/dist/templates/web/product-page.js +2 -2
- package/dist/templates/web/psychedelic-landing.js +2 -2
- package/dist/templates/web/riso-zine-landing.js +2 -2
- package/dist/templates/web/rsvp-invite.js +2 -2
- package/dist/templates/web/saas-ai-landing.js +2 -2
- package/dist/templates/web/saas-app-download.js +2 -2
- package/dist/templates/web/saas-case-study.js +2 -2
- package/dist/templates/web/saas-changelog.js +2 -2
- package/dist/templates/web/saas-comparison.js +2 -2
- package/dist/templates/web/saas-data-landing.js +2 -2
- package/dist/templates/web/saas-dev-landing.js +2 -2
- package/dist/templates/web/saas-indie-landing.js +2 -2
- package/dist/templates/web/saas-integrations.js +2 -2
- package/dist/templates/web/saas-security.js +2 -2
- package/dist/templates/web/saas-signup.js +2 -2
- package/dist/templates/web/saas-waitlist.js +2 -2
- package/dist/templates/web/saffron-app.js +2 -2
- package/dist/templates/web/shop-bloom.js +2 -2
- package/dist/templates/web/shop-circuit.js +2 -2
- package/dist/templates/web/shop-fieldwork.js +2 -2
- package/dist/templates/web/shop-greenhouse.js +2 -2
- package/dist/templates/web/shop-kiln.js +2 -2
- package/dist/templates/web/shop-marginalia.js +2 -2
- package/dist/templates/web/shop-ode.js +2 -2
- package/dist/templates/web/shop-static.js +2 -2
- package/dist/templates/web/shop-summit.js +2 -2
- package/dist/templates/web/shops.js +2 -2
- package/dist/templates/web/singles-day-landing.js +2 -2
- package/dist/templates/web/solarpunk-landing.js +2 -2
- package/dist/templates/web/space-opera-landing.js +2 -2
- package/dist/templates/web/spring-bloom-landing.js +2 -2
- package/dist/templates/web/studio-careers.js +2 -2
- package/dist/templates/web/style-bento-landing.js +2 -2
- package/dist/templates/web/style-bento-pricing.js +2 -2
- package/dist/templates/web/style-brutalist-landing.js +2 -2
- package/dist/templates/web/style-brutalist-pricing.js +2 -2
- package/dist/templates/web/style-dark-landing.js +2 -2
- package/dist/templates/web/style-dark-pricing.js +2 -2
- package/dist/templates/web/style-data-landing.js +2 -2
- package/dist/templates/web/style-data-pricing.js +2 -2
- package/dist/templates/web/style-editorial-landing.js +2 -2
- package/dist/templates/web/style-editorial-pricing.js +2 -2
- package/dist/templates/web/style-glass-landing.js +2 -2
- package/dist/templates/web/style-glass-pricing.js +2 -2
- package/dist/templates/web/style-gradient-landing.js +2 -2
- package/dist/templates/web/style-gradient-pricing.js +2 -2
- package/dist/templates/web/style-maximal-landing.js +2 -2
- package/dist/templates/web/style-maximal-pricing.js +2 -2
- package/dist/templates/web/style-pastel-landing.js +2 -2
- package/dist/templates/web/style-pastel-pricing.js +2 -2
- package/dist/templates/web/style-sketch-landing.js +2 -2
- package/dist/templates/web/style-sketch-pricing.js +2 -2
- package/dist/templates/web/style-swiss-landing.js +2 -2
- package/dist/templates/web/style-swiss-pricing.js +2 -2
- package/dist/templates/web/style-terminal-landing.js +2 -2
- package/dist/templates/web/style-terminal-pricing.js +2 -2
- package/dist/templates/web/summer-heatwave-landing.js +2 -2
- package/dist/templates/web/tempo-app.js +2 -2
- package/dist/templates/web/tour-tickets-june-landing.js +2 -2
- package/dist/templates/web/tour-tickets-tide-landing.js +2 -2
- package/dist/templates/web/tour-tickets-wreck-landing.js +2 -2
- package/dist/templates/web/transit-map-landing.js +2 -2
- package/dist/templates/web/ukiyo-e-landing.js +2 -2
- package/dist/templates/web/valentines-landing.js +2 -2
- package/dist/templates/web/vaporwave-landing.js +2 -2
- package/dist/templates/web/wayfarer-app.js +2 -2
- package/dist/templates/web/winter-cosy-landing.js +2 -2
- package/dist/templates/web/winter-holidays-landing.js +2 -2
- package/package.json +1 -1
|
@@ -10,14 +10,14 @@ import {
|
|
|
10
10
|
cloudApi,
|
|
11
11
|
fileUrl,
|
|
12
12
|
invalidateMe
|
|
13
|
-
} from "./chunk-
|
|
13
|
+
} from "./chunk-KWUXHRXD.js";
|
|
14
14
|
import "./chunk-3PRZ5XSZ.js";
|
|
15
15
|
import "./chunk-QLJLPV5R.js";
|
|
16
16
|
import "./chunk-LDUTRSTJ.js";
|
|
17
17
|
import "./chunk-L47OWSXA.js";
|
|
18
18
|
import "./chunk-ANIZ3AGS.js";
|
|
19
|
-
import "./chunk-
|
|
20
|
-
import "./chunk-
|
|
19
|
+
import "./chunk-XG7LEVRZ.js";
|
|
20
|
+
import "./chunk-BKOLU4XB.js";
|
|
21
21
|
import "./chunk-WKDVCZ45.js";
|
|
22
22
|
import "./chunk-LJSVREWM.js";
|
|
23
23
|
export {
|
|
@@ -7,8 +7,8 @@ const __dirname = __popcraftDirname(__filename);
|
|
|
7
7
|
import {
|
|
8
8
|
builtinTools,
|
|
9
9
|
registerBuiltinTools
|
|
10
|
-
} from "./chunk-
|
|
11
|
-
import "./chunk-
|
|
10
|
+
} from "./chunk-B4DDU5KM.js";
|
|
11
|
+
import "./chunk-MY5CBA5H.js";
|
|
12
12
|
import "./chunk-ZLWN6LBH.js";
|
|
13
13
|
import "./chunk-Q7EITIAT.js";
|
|
14
14
|
import "./chunk-X36CCQ76.js";
|
|
@@ -19,7 +19,7 @@ import "./chunk-A6XXXQQO.js";
|
|
|
19
19
|
import "./chunk-ATSLWELA.js";
|
|
20
20
|
import "./chunk-6B6ULEDJ.js";
|
|
21
21
|
import "./chunk-VOOUF5TT.js";
|
|
22
|
-
import "./chunk-
|
|
22
|
+
import "./chunk-6Q7JYDNH.js";
|
|
23
23
|
import "./chunk-ZYK65XJJ.js";
|
|
24
24
|
import "./chunk-4LOAHKDJ.js";
|
|
25
25
|
import "./chunk-UCNBKWJQ.js";
|
|
@@ -52,7 +52,7 @@ import "./chunk-KATP7TSA.js";
|
|
|
52
52
|
import "./chunk-TAWWNEV3.js";
|
|
53
53
|
import "./chunk-PU2DNOWP.js";
|
|
54
54
|
import "./chunk-QNR4D25F.js";
|
|
55
|
-
import "./chunk-
|
|
55
|
+
import "./chunk-BKOLU4XB.js";
|
|
56
56
|
import "./chunk-QV42WAC3.js";
|
|
57
57
|
import "./chunk-MN4EEFZJ.js";
|
|
58
58
|
import "./chunk-J7N5AJ7Q.js";
|
|
@@ -7,16 +7,16 @@ const __dirname = __popcraftDirname(__filename);
|
|
|
7
7
|
import {
|
|
8
8
|
HYPERY_TEAM_HEADER,
|
|
9
9
|
hyperyRequestHeaders
|
|
10
|
-
} from "./chunk-
|
|
11
|
-
import "./chunk-
|
|
10
|
+
} from "./chunk-U5UFIM2E.js";
|
|
11
|
+
import "./chunk-7SMURRFY.js";
|
|
12
12
|
import {
|
|
13
13
|
useHyperyTeam
|
|
14
|
-
} from "./chunk-
|
|
14
|
+
} from "./chunk-GPNEAC5E.js";
|
|
15
15
|
import {
|
|
16
16
|
ApiError,
|
|
17
17
|
inAppPurchases,
|
|
18
18
|
purchasesAllowed
|
|
19
|
-
} from "./chunk-
|
|
19
|
+
} from "./chunk-KWUXHRXD.js";
|
|
20
20
|
import {
|
|
21
21
|
openPlanDialog
|
|
22
22
|
} from "./chunk-3PRZ5XSZ.js";
|
|
@@ -29,8 +29,8 @@ import "./chunk-L47OWSXA.js";
|
|
|
29
29
|
import {
|
|
30
30
|
isDesktop
|
|
31
31
|
} from "./chunk-ANIZ3AGS.js";
|
|
32
|
-
import "./chunk-
|
|
33
|
-
import "./chunk-
|
|
32
|
+
import "./chunk-XG7LEVRZ.js";
|
|
33
|
+
import "./chunk-BKOLU4XB.js";
|
|
34
34
|
import {
|
|
35
35
|
init_define_POPCRAFT_COMPONENT_IDS
|
|
36
36
|
} from "./chunk-WKDVCZ45.js";
|
|
@@ -6,10 +6,10 @@ const __filename = __popcraftPath(import.meta.url);
|
|
|
6
6
|
const __dirname = __popcraftDirname(__filename);
|
|
7
7
|
import {
|
|
8
8
|
appCommands
|
|
9
|
-
} from "./chunk-
|
|
9
|
+
} from "./chunk-5AMNMH7S.js";
|
|
10
10
|
import {
|
|
11
11
|
builtinCommands
|
|
12
|
-
} from "./chunk-
|
|
12
|
+
} from "./chunk-MY5CBA5H.js";
|
|
13
13
|
import "./chunk-ZLWN6LBH.js";
|
|
14
14
|
import "./chunk-Q7EITIAT.js";
|
|
15
15
|
import "./chunk-X36CCQ76.js";
|
|
@@ -102,7 +102,7 @@ import "./chunk-KATP7TSA.js";
|
|
|
102
102
|
import "./chunk-TAWWNEV3.js";
|
|
103
103
|
import "./chunk-PU2DNOWP.js";
|
|
104
104
|
import "./chunk-QNR4D25F.js";
|
|
105
|
-
import "./chunk-
|
|
105
|
+
import "./chunk-BKOLU4XB.js";
|
|
106
106
|
import "./chunk-L5DTT5DC.js";
|
|
107
107
|
import "./chunk-TGVAUIGC.js";
|
|
108
108
|
import {
|
|
@@ -8,7 +8,7 @@ import {
|
|
|
8
8
|
needsSelection,
|
|
9
9
|
pageGo,
|
|
10
10
|
selectionIsPicture
|
|
11
|
-
} from "./chunk-
|
|
11
|
+
} from "./chunk-MY5CBA5H.js";
|
|
12
12
|
import {
|
|
13
13
|
external_exports
|
|
14
14
|
} from "./chunk-VOOUF5TT.js";
|
|
@@ -31,7 +31,7 @@ var none = external_exports.object({});
|
|
|
31
31
|
var emit = (name, detail) => {
|
|
32
32
|
if (typeof window !== "undefined") window.dispatchEvent(new CustomEvent(name, { detail }));
|
|
33
33
|
};
|
|
34
|
-
var store = () => import("./editor-store-
|
|
34
|
+
var store = () => import("./editor-store-V43NADG6.js").then((m) => m.useEditorStore.getState());
|
|
35
35
|
var MODE_IDS = MODE_LIST.map((m) => m.id);
|
|
36
36
|
var MODE_ALIASES = { JAM: "POPCORN", DEV: "VIEW" };
|
|
37
37
|
var modeSet = defineCommand({
|
|
@@ -167,7 +167,7 @@ var dialogOpen = defineCommand({
|
|
|
167
167
|
(await import("./plan-limit-YTIOM3WO.js")).openPlanDialog();
|
|
168
168
|
break;
|
|
169
169
|
case "credits":
|
|
170
|
-
await (await import("./buy-credits-
|
|
170
|
+
await (await import("./buy-credits-YD6DBAQB.js")).buyAiCredits();
|
|
171
171
|
break;
|
|
172
172
|
case "tokens":
|
|
173
173
|
emit("popcraft-open-tokens");
|
|
@@ -213,7 +213,7 @@ var aiOpen = defineCommand({
|
|
|
213
213
|
] } },
|
|
214
214
|
run: async ({ dialog, skillId }) => {
|
|
215
215
|
if (dialog) (await import("./client-store-3YCO6KV5.js")).openAiDialog(dialog);
|
|
216
|
-
else (await import("./store-
|
|
216
|
+
else (await import("./store-OUZ5GTY5.js")).openAgentPanel({ skillId: skillId ?? null });
|
|
217
217
|
return { summary: dialog ? `Opened AI ${dialog}` : "Opened the agent" };
|
|
218
218
|
}
|
|
219
219
|
});
|
|
@@ -226,7 +226,7 @@ var agentContinue = defineCommand({
|
|
|
226
226
|
params: external_exports.object({}),
|
|
227
227
|
expose: { ui: { label: "AI: Continue the agent\u2019s last turn", keywords: ["ai", "agent", "continue", "resume", "retry", "keep going"] } },
|
|
228
228
|
run: async () => {
|
|
229
|
-
const resumed = await (await import("./runner-
|
|
229
|
+
const resumed = await (await import("./runner-ULBSWTOK.js")).continueTurn();
|
|
230
230
|
return { summary: resumed ? "Continued the agent" : "Nothing to continue" };
|
|
231
231
|
}
|
|
232
232
|
});
|
|
@@ -305,11 +305,11 @@ var toolPlace = defineCommand({
|
|
|
305
305
|
run: async ({ what }) => {
|
|
306
306
|
if (what === "media") {
|
|
307
307
|
const s = await store();
|
|
308
|
-
const { placeMediaFromPicker } = await import("./media-tool-
|
|
308
|
+
const { placeMediaFromPicker } = await import("./media-tool-TXQINVAR.js");
|
|
309
309
|
await placeMediaFromPicker({ kind: "point", x: s.camera.x, y: s.camera.y });
|
|
310
310
|
return { summary: "Placing media" };
|
|
311
311
|
}
|
|
312
|
-
const { beginEyedrop } = await import("./eyedropper-
|
|
312
|
+
const { beginEyedrop } = await import("./eyedropper-4D6OK4VM.js");
|
|
313
313
|
void beginEyedrop();
|
|
314
314
|
return { summary: "Pick a color" };
|
|
315
315
|
}
|
|
@@ -327,7 +327,7 @@ var nodeRasterize = defineCommand({
|
|
|
327
327
|
keywords: ["rasterize", "raster", "flatten", "pixels", "paint layer", "erase", "bitmap"]
|
|
328
328
|
} },
|
|
329
329
|
run: async () => {
|
|
330
|
-
const { flattenSelectionToPaintLayer } = await import("./raster-actions-
|
|
330
|
+
const { flattenSelectionToPaintLayer } = await import("./raster-actions-KYYBZLGY.js");
|
|
331
331
|
await flattenSelectionToPaintLayer();
|
|
332
332
|
return { summary: "Rasterized" };
|
|
333
333
|
}
|
|
@@ -438,7 +438,7 @@ function pluginCommand(plugins) {
|
|
|
438
438
|
params: external_exports.object({ pluginId: external_exports.string(), commandId: external_exports.string() }),
|
|
439
439
|
expose: { ui: { label: "Run plugin", keywords: ["plugin", "extension", "run"], variants, palette: variants.length ? void 0 : false } },
|
|
440
440
|
run: async ({ pluginId, commandId }) => {
|
|
441
|
-
await (await import("./host-
|
|
441
|
+
await (await import("./host-WX77JQ2K.js")).runPlugin(pluginId, commandId);
|
|
442
442
|
return { summary: "Plugin started" };
|
|
443
443
|
}
|
|
444
444
|
});
|
|
@@ -57,19 +57,19 @@ async function renderDocument(doc, nodeIds, options) {
|
|
|
57
57
|
function generateCapability(ctx) {
|
|
58
58
|
return async (prompt, options = {}) => {
|
|
59
59
|
if (options.format === "audio") {
|
|
60
|
-
const { requestAudio } = await import("./client-
|
|
60
|
+
const { requestAudio } = await import("./client-AMMTXTFS.js");
|
|
61
61
|
const { signal: signal2, format: _f, ...rest2 } = options;
|
|
62
62
|
void _f;
|
|
63
63
|
return requestAudio({ prompt, ...rest2 }, signal2 ?? ctx.signal);
|
|
64
64
|
}
|
|
65
65
|
if (options.format === "video") {
|
|
66
|
-
const { generateVideoFile } = await import("./generate-media-
|
|
66
|
+
const { generateVideoFile } = await import("./generate-media-XMD232CS.js");
|
|
67
67
|
const { format: _f, signal: signal2, ...rest2 } = options;
|
|
68
68
|
void _f;
|
|
69
69
|
return generateVideoFile({ ...rest2, prompt, doc: ctx.doc() }, { signal: signal2 ?? ctx.signal });
|
|
70
70
|
}
|
|
71
71
|
const [{ requestImage }, { effectiveImageModel, useAiStore }] = await Promise.all([
|
|
72
|
-
import("./client-
|
|
72
|
+
import("./client-AMMTXTFS.js"),
|
|
73
73
|
import("./client-store-3YCO6KV5.js")
|
|
74
74
|
]);
|
|
75
75
|
const modelId = effectiveImageModel(useAiStore.getState());
|
|
@@ -9,7 +9,7 @@ import {
|
|
|
9
9
|
} from "./chunk-LRF3JAZW.js";
|
|
10
10
|
import {
|
|
11
11
|
notice
|
|
12
|
-
} from "./chunk-
|
|
12
|
+
} from "./chunk-VLEZSLRZ.js";
|
|
13
13
|
import {
|
|
14
14
|
effectiveChatModel,
|
|
15
15
|
setModelPref,
|
|
@@ -17,7 +17,7 @@ import {
|
|
|
17
17
|
} from "./chunk-A4CGHVJP.js";
|
|
18
18
|
import {
|
|
19
19
|
useEditorStore
|
|
20
|
-
} from "./chunk-
|
|
20
|
+
} from "./chunk-EKKA4A5J.js";
|
|
21
21
|
import {
|
|
22
22
|
create
|
|
23
23
|
} from "./chunk-QLJLPV5R.js";
|
|
@@ -1797,7 +1797,7 @@ async function sendMessage(text) {
|
|
|
1797
1797
|
if (!useAgentStore.getState().activeThreadId) newThread();
|
|
1798
1798
|
const mentions = pruneMentions(body, useAgentStore.getState().draftMentions);
|
|
1799
1799
|
useAgentStore.setState({ draft: "", draftMentions: [], error: null });
|
|
1800
|
-
const { runTurn } = await import("./runner-
|
|
1800
|
+
const { runTurn } = await import("./runner-ULBSWTOK.js");
|
|
1801
1801
|
await runTurn(body, mentions);
|
|
1802
1802
|
}
|
|
1803
1803
|
function stop() {
|
|
@@ -1900,7 +1900,7 @@ var clearTaskChildren = () => useAgentStore.setState({ taskChildren: {} });
|
|
|
1900
1900
|
function subscribeChildTools() {
|
|
1901
1901
|
let dispose;
|
|
1902
1902
|
let cancelled = false;
|
|
1903
|
-
void import("./runner-
|
|
1903
|
+
void import("./runner-ULBSWTOK.js").then(({ onChildTool }) => {
|
|
1904
1904
|
const off = onChildTool((report) => {
|
|
1905
1905
|
if (report?.status !== "running" || report.jobId) return;
|
|
1906
1906
|
recordChildTool(report.toolCallId ?? "", report.name);
|
|
@@ -16,22 +16,22 @@ import {
|
|
|
16
16
|
reportOpenStage,
|
|
17
17
|
setCloudLink,
|
|
18
18
|
trackOpen
|
|
19
|
-
} from "./chunk-
|
|
19
|
+
} from "./chunk-HGUHRTIM.js";
|
|
20
20
|
import {
|
|
21
21
|
parseDeepLink,
|
|
22
22
|
withDeepLink
|
|
23
23
|
} from "./chunk-EUF3VFBW.js";
|
|
24
24
|
import {
|
|
25
25
|
activeTeamWorkspaceId
|
|
26
|
-
} from "./chunk-
|
|
26
|
+
} from "./chunk-GPNEAC5E.js";
|
|
27
27
|
import {
|
|
28
28
|
ApiError,
|
|
29
29
|
api,
|
|
30
30
|
cloudApi
|
|
31
|
-
} from "./chunk-
|
|
31
|
+
} from "./chunk-KWUXHRXD.js";
|
|
32
32
|
import {
|
|
33
33
|
attachPresence
|
|
34
|
-
} from "./chunk-
|
|
34
|
+
} from "./chunk-PUFEIOUT.js";
|
|
35
35
|
import {
|
|
36
36
|
isPersistableDocument,
|
|
37
37
|
isUnsavedPlaceholder,
|
|
@@ -42,7 +42,7 @@ import {
|
|
|
42
42
|
setCollabHistory,
|
|
43
43
|
storedDocument,
|
|
44
44
|
useEditorStore
|
|
45
|
-
} from "./chunk-
|
|
45
|
+
} from "./chunk-EKKA4A5J.js";
|
|
46
46
|
import {
|
|
47
47
|
currentHistoryGroup
|
|
48
48
|
} from "./chunk-76I6DIEM.js";
|
|
@@ -7,10 +7,10 @@ const __dirname = __popcraftDirname(__filename);
|
|
|
7
7
|
import {
|
|
8
8
|
builtinCommands,
|
|
9
9
|
registerBuiltinCommands
|
|
10
|
-
} from "./chunk-
|
|
10
|
+
} from "./chunk-MY5CBA5H.js";
|
|
11
11
|
import {
|
|
12
12
|
toolView
|
|
13
|
-
} from "./chunk-
|
|
13
|
+
} from "./chunk-6Q7JYDNH.js";
|
|
14
14
|
import {
|
|
15
15
|
init_define_POPCRAFT_COMPONENT_IDS
|
|
16
16
|
} from "./chunk-WKDVCZ45.js";
|
|
@@ -4258,12 +4258,6 @@ var en_default = {
|
|
|
4258
4258
|
"drawSettingsPanel.wetMix": "Wet mix",
|
|
4259
4259
|
"drawSettingsPanel.wetPaint": "Wet paint",
|
|
4260
4260
|
"drawSettingsPanel.whatTheTipRotatesWith": "What the tip rotates with",
|
|
4261
|
-
"duoHarness.closed": "Closed",
|
|
4262
|
-
"duoHarness.frameTitle": "PopCraft on an iPhone Duo",
|
|
4263
|
-
"duoHarness.halfOpen": "Half open",
|
|
4264
|
-
"duoHarness.open": "Open",
|
|
4265
|
-
"duoHarness.posture": "Fold posture",
|
|
4266
|
-
"duoHarness.rotate": "Rotate",
|
|
4267
4261
|
"editorStore.leftNothingThoseShapesProduce": "{toLowerCase} left nothing \u2014 those shapes produce an empty result.",
|
|
4268
4262
|
"editorStore.readOnlyPickAMode": "This file is read only. Pick Design, or another mode, to edit it.",
|
|
4269
4263
|
"editorStore.savingToBrowserStorageFailed": "Saving to browser storage failed \u2014 recent changes may not be saved.",
|
|
@@ -4689,9 +4683,9 @@ var en_default = {
|
|
|
4689
4683
|
"homeTemplates.browseAll": "Browse all templates",
|
|
4690
4684
|
"homeTemplates.communityBody": "Templates people made and shared. Tap one to start from a copy.",
|
|
4691
4685
|
"homeTemplates.fromTheCommunity": "From the community",
|
|
4692
|
-
"homeTemplates.loadMore": "Load more templates",
|
|
4693
4686
|
"homeTemplates.loading": "Loading templates\u2026",
|
|
4694
4687
|
"homeTemplates.loadingMore": "Loading more templates\u2026",
|
|
4688
|
+
"homeTemplates.loadMore": "Load more templates",
|
|
4695
4689
|
"homeTemplates.noneInThisGroup": "No templates in this group yet.",
|
|
4696
4690
|
"homeTemplates.pickOneToOpen": "Pick one and it opens as a new file, ready to edit.",
|
|
4697
4691
|
"homeTemplates.startFromATemplate": "Start from a template",
|
|
@@ -15,7 +15,7 @@ import {
|
|
|
15
15
|
} from "./chunk-ZYK65XJJ.js";
|
|
16
16
|
import {
|
|
17
17
|
syncStatus
|
|
18
|
-
} from "./chunk-
|
|
18
|
+
} from "./chunk-AN2LMY4M.js";
|
|
19
19
|
import {
|
|
20
20
|
exportNodeToSVG
|
|
21
21
|
} from "./chunk-T4FFRJAH.js";
|
|
@@ -28,7 +28,7 @@ import {
|
|
|
28
28
|
import {
|
|
29
29
|
setPluginTabs,
|
|
30
30
|
useEditorStore
|
|
31
|
-
} from "./chunk-
|
|
31
|
+
} from "./chunk-EKKA4A5J.js";
|
|
32
32
|
import {
|
|
33
33
|
openBeside
|
|
34
34
|
} from "./chunk-PMLSPVLR.js";
|
|
@@ -50,7 +50,7 @@ import {
|
|
|
50
50
|
} from "./chunk-WNTU3TLN.js";
|
|
51
51
|
import {
|
|
52
52
|
t
|
|
53
|
-
} from "./chunk-
|
|
53
|
+
} from "./chunk-BKOLU4XB.js";
|
|
54
54
|
import {
|
|
55
55
|
createStore,
|
|
56
56
|
del,
|
|
@@ -69,22 +69,22 @@ init_define_POPCRAFT_COMPONENT_IDS();
|
|
|
69
69
|
// lib/plugins/api.ts
|
|
70
70
|
init_define_POPCRAFT_COMPONENT_IDS();
|
|
71
71
|
async function handlePluginCall(env, method, params = {}) {
|
|
72
|
-
const { dispatchPluginCall } = await import("./plugin-
|
|
72
|
+
const { dispatchPluginCall } = await import("./plugin-CUBE33JW.js");
|
|
73
73
|
return dispatchPluginCall(env, method, params);
|
|
74
74
|
}
|
|
75
75
|
|
|
76
|
-
// node_modules/.pnpm/@popcraft+plugins@1.0
|
|
76
|
+
// node_modules/.pnpm/@popcraft+plugins@1.3.0/node_modules/@popcraft/plugins/dist/index.js
|
|
77
77
|
init_define_POPCRAFT_COMPONENT_IDS();
|
|
78
78
|
|
|
79
|
-
// node_modules/.pnpm/@popcraft+plugins@1.0
|
|
79
|
+
// node_modules/.pnpm/@popcraft+plugins@1.3.0/node_modules/@popcraft/plugins/dist/host.js
|
|
80
80
|
init_define_POPCRAFT_COMPONENT_IDS();
|
|
81
81
|
|
|
82
|
-
// node_modules/.pnpm/@popcraft+plugins@1.0
|
|
82
|
+
// node_modules/.pnpm/@popcraft+plugins@1.3.0/node_modules/@popcraft/plugins/dist/generated/runtime.js
|
|
83
83
|
init_define_POPCRAFT_COMPONENT_IDS();
|
|
84
|
-
var MAIN_RUNTIME = '"use strict";\n(() => {\n // src/runtime/rpc.ts\n function createRpcClient() {\n let port = null;\n const queue = [];\n const pending = {};\n const listeners = {};\n let nextId = 1;\n function send(msg) {\n if (port) port.postMessage(msg);\n else queue.push(msg);\n }\n function call(method, params) {\n return new Promise((resolve, reject) => {\n const id = nextId++;\n pending[id] = { resolve, reject };\n send({ kind: "rpc", id, method, params });\n });\n }\n function emit(event, data) {\n for (const cb of (listeners[event] || []).slice()) {\n try {\n cb(data);\n } catch (e) {\n console.error(e);\n }\n }\n }\n window.addEventListener("message", (e) => {\n const data = e.data;\n if (e.source !== window.parent || !data || data.type !== "popcraft-plugin-port" || port) return;\n port = e.ports[0];\n port.onmessage = (ev) => {\n const m = ev.data || {};\n if (m.kind === "result" && m.id !== void 0 && pending[m.id]) {\n const p = pending[m.id];\n delete pending[m.id];\n if (m.error) p.reject(new Error(m.error));\n else p.resolve(m.result);\n } else if (m.kind === "event" && m.event) {\n emit(m.event, m.data);\n }\n };\n for (const msg of queue.splice(0)) port.postMessage(msg);\n });\n return {\n call,\n send,\n on(event, cb) {\n (listeners[event] = listeners[event] || []).push(cb);\n },\n off(event, cb) {\n listeners[event] = (listeners[event] || []).filter((x) => x !== cb);\n }\n };\n }\n\n // src/runtime/main.ts\n function clone(v) {\n return v === void 0 ? {} : JSON.parse(JSON.stringify(v));\n }\n function createMainApi(rpc = createRpcClient()) {\n const uiHandlers = [];\n let uiOnMessage = null;\n const uiQueue = [];\n function deliverUI(msg) {\n for (const cb of uiHandlers) {\n try {\n cb(msg);\n } catch (e) {\n console.error(e);\n }\n }\n if (typeof uiOnMessage === "function") {\n try {\n uiOnMessage(msg);\n } catch (e) {\n console.error(e);\n }\n }\n }\n function flushUI() {\n if (uiHandlers.length || typeof uiOnMessage === "function") uiQueue.splice(0).forEach(deliverUI);\n }\n rpc.on("uimessage", (msg) => {\n if (!uiHandlers.length && typeof uiOnMessage !== "function") uiQueue.push(msg);\n else deliverUI(msg);\n });\n let widgetDef = null;\n const widgetQueue = [];\n function renderWidget(state) {\n const handlers = {};\n function walk(el, path) {\n if (!el || typeof el !== "object") return el;\n const out = {};\n for (const k of Object.keys(el)) {\n const v = el[k];\n if (k === "children") {\n out.children = (Array.isArray(v) ? v : [v]).filter((c) => c !== null && c !== void 0 && c !== false).map((c, i) => walk(c, path + "." + i));\n } else if (k === "onClick" && typeof v === "function") {\n handlers[path] = v;\n out.onClick = path;\n } else {\n out[k] = v;\n }\n }\n return out;\n }\n return { tree: walk(widgetDef.render(state), "root"), handlers };\n }\n function initialWidgetState() {\n const s = widgetDef && widgetDef.initialState;\n return clone(typeof s === "function" ? s() : s);\n }\n function commitWidget(nodeId, state) {\n return rpc.call("widgetUpdate", { id: nodeId, state, tree: renderWidget(clone(state)).tree });\n }\n function handleWidgetClick(e) {\n Promise.resolve().then(() => {\n const state = clone(e.state);\n const rendered = renderWidget(state);\n const h = rendered.handlers[e.handler] || widgetDef.handlers && widgetDef.handlers[e.handler];\n if (typeof h !== "function") return;\n return Promise.resolve(h(state, { nodeId: e.nodeId })).then((ret) => commitWidget(e.nodeId, ret === void 0 ? state : ret));\n }).catch((err) => rpc.send({ kind: "error", message: String((err == null ? void 0 : err.message) || err) }));\n }\n rpc.on("widgetclick", (e) => {\n if (widgetDef) handleWidgetClick(e);\n else widgetQueue.push(e);\n });\n const popcraft = {\n /** Which menu command the user picked, or null when the plugin ran some other way. */\n command: null,\n /** Host import mode when launched as an importer, else null. */\n importMode: null,\n /** Pending import file when the host handed one over, else null. */\n importFile: null,\n /** Pending export request (File \u2192 Export \u2192 this plugin\'s format), else null. */\n exportRequest: null,\n getSelection: () => rpc.call("getSelection"),\n setSelection: (ids) => rpc.call("setSelection", { ids }),\n getNode: (id) => rpc.call("getNode", { id }),\n findNodes: (query) => rpc.call("findNodes", query || {}),\n getCurrentPage: () => rpc.call("getCurrentPage"),\n createNode: (type, props) => rpc.call("createNode", { type, props: props || {} }),\n updateNode: (id, props) => rpc.call("updateNode", { id, props }),\n deleteNode: (id) => rpc.call("deleteNode", { id }),\n setText: (id, characters) => rpc.call("setText", { id, characters }),\n /** Put TEXT layers on a path (another layer\'s outline, or their own arc, circle or wave), or tune one: brackets, alignment, placement, effect, overflow. */\n setTextPath: (opts) => rpc.call("setTextPath", opts || {}),\n /** Area type: flow a TEXT layer inside a closed shape, kept `inset` px in. */\n flowTextIntoShape: (opts) => rpc.call("flowTextIntoShape", opts || {}),\n /** Take TEXT layers off their path or out of their shape (or free every text linked to a path / shape). */\n detachText: (opts) => rpc.call("detachText", opts || {}),\n /** Auto-size TEXT layers\' type to their box, shape or path. */\n setTextFit: (opts) => rpc.call("setTextFit", opts || {}),\n createPage: (name) => rpc.call("createPage", name != null ? { name: String(name) } : {}),\n setCurrentPage: (pageId) => rpc.call("setCurrentPage", { pageId }),\n createImage: (opts) => rpc.call("createImage", opts || {}),\n createDocument: (opts) => rpc.call("createDocument", opts || {}),\n getImportMode: () => rpc.call("getImportMode"),\n getImportFile: () => rpc.call("getImportFile"),\n /**\n * The open page as a storefront design in a neutral form, for an exporter that writes its own store\'s templates:\n * each page\'s HTML with the store\'s data marked (`{{page.title}}`, `{{item.price}}`, `<!-- pc:each \u2026 -->` lists,\n * `data-pc-action` forms), and its collections with their commerce schema and sample records.\n */\n getStorefront: () => rpc.call("getStorefront"),\n /**\n * A design\'s data (docs: Collections): a collection and its fields (`schema`: what it stands for, e.g.\n * `commerce.product`, whose fields are made for it), its records, and reading them.\n */\n editCollection: (opts) => rpc.call("editCollection", opts || {}),\n editRecords: (opts) => rpc.call("editRecords", opts || {}),\n getRecords: (opts) => rpc.call("getRecords", opts || {}),\n /** A layer as a web page\'s form control (a FORM\'s `formAction`, an INPUT\'s name and value), repeated per record, a page\'s address, its semantics. */\n setControl: (opts) => rpc.call("setControl", opts || {}),\n setRepeat: (opts) => rpc.call("setRepeat", opts || {}),\n setRoute: (opts) => rpc.call("setRoute", opts || {}),\n setSemantics: (opts) => rpc.call("setSemantics", opts || {}),\n /** Which record layers are about (one product, picked from a collection), and which of its fields a layer\'s words, picture or an instance\'s properties follow. */\n setRecord: (opts) => rpc.call("setRecord", opts || {}),\n bindField: (opts) => rpc.call("bindField", opts || {}),\n /** The site\'s environment: public settings its host reads by name when it is deployed (never a secret: the file keeps them). */\n getSiteEnvironment: () => rpc.call("getSiteEnvironment"),\n setSiteEnvironment: (set) => rpc.call("setSiteEnvironment", { set }),\n /** What this plugin keeps with the open file (its settings for this design), under its own id; JSON only. */\n getFileData: (key) => rpc.call("getFileData", { key }),\n setFileData: (key, value) => rpc.call("setFileData", { key, value }),\n /** A store\'s project built from the open page, zipped (needs `export`): what an exporter saves with `saveExport`. */\n getStorefrontFiles: (target) => rpc.call("getStorefrontFiles", { target }),\n getExportRequest: () => rpc.call("getExportRequest"),\n /** Save the exporter\'s file (once per export request); the host enforces the contributed extension. */\n saveExport: (file) => rpc.call("saveExport", file || {}),\n /**\n * Presentation audio (docs/plugins/presentation-audio.md): the deck\'s slides, notes, narration and timing; the\n * soundtrack\'s settings, bed and stinger.\n */\n getPresentationAudio: (opts) => rpc.call("getPresentationAudio", opts || {}),\n /** Change the soundtrack\'s settings (voice, style, mood, loudness, beat alignment, levels) and re-time it. */\n setPresentationAudioSettings: (opts) => rpc.call("setPresentationAudioSettings", opts || {}),\n /** Put a sound in (a slide\'s narration, the bed or the stinger): bytes are normalised to the soundtrack\'s target and stored. */\n setPresentationAudioClip: (opts) => rpc.call("setPresentationAudioClip", opts || {}),\n removePresentationAudioClip: (opts) => rpc.call("removePresentationAudioClip", opts || {}),\n /** Re-time: fixed slide lengths (ms, null clears) and beat-aligned changes. */\n setPresentationTiming: (opts) => rpc.call("setPresentationTiming", opts || {}),\n /** The mix as the export carries it: loudness, true peak, and (wav: true) the 48 kHz stereo WAV. */\n getPresentationMix: (opts) => rpc.call("getPresentationMix", opts || {}),\n /** Ask the user to generate with AI (the panel opens with the request filled in; the user decides). */\n requestPresentationAudio: (opts) => rpc.call("requestPresentationAudio", opts || {}),\n /** Editor commands: each takes the arguments documented in docs/plugins/methods.md (the agent tool of the same purpose). */\n moveNodes: (opts) => rpc.call("moveNodes", opts || {}),\n resizeNodes: (opts) => rpc.call("resizeNodes", opts || {}),\n renameNodes: (opts) => rpc.call("renameNodes", opts || {}),\n reparentNodes: (opts) => rpc.call("reparentNodes", opts || {}),\n duplicateNodes: (opts) => rpc.call("duplicateNodes", opts || {}),\n groupNodes: (opts) => rpc.call("groupNodes", opts || {}),\n ungroupNodes: (opts) => rpc.call("ungroupNodes", opts || {}),\n alignNodes: (opts) => rpc.call("alignNodes", opts || {}),\n distributeNodes: (opts) => rpc.call("distributeNodes", opts || {}),\n flipNodes: (opts) => rpc.call("flipNodes", opts || {}),\n rotateNodes: (opts) => rpc.call("rotateNodes", opts || {}),\n reorderNodes: (opts) => rpc.call("reorderNodes", opts || {}),\n setLocked: (opts) => rpc.call("setLocked", opts || {}),\n setVisible: (opts) => rpc.call("setVisible", opts || {}),\n setAutoLayout: (opts) => rpc.call("setAutoLayout", opts || {}),\n importSvg: (opts) => rpc.call("importSvg", opts || {}),\n measureNodes: (opts) => rpc.call("measureNodes", opts || {}),\n setFills: (opts) => rpc.call("setFills", opts || {}),\n setStrokes: (opts) => rpc.call("setStrokes", opts || {}),\n setEffects: (opts) => rpc.call("setEffects", opts || {}),\n replaceColor: (opts) => rpc.call("replaceColor", opts || {}),\n setTypography: (opts) => rpc.call("setTypography", opts || {}),\n applyStyle: (opts) => rpc.call("applyStyle", opts || {}),\n createComponent: (opts) => rpc.call("createComponent", opts || {}),\n createInstance: (opts) => rpc.call("createInstance", opts || {}),\n renamePage: (opts) => rpc.call("renamePage", opts || {}),\n getDocumentOutline: (opts) => rpc.call("getDocumentOutline", opts || {}),\n setPageSetup: (opts) => rpc.call("setPageSetup", opts || {}),\n setShowAdvance: (opts) => rpc.call("setShowAdvance", opts || {}),\n booleanOperation: (opts) => rpc.call("booleanOperation", opts || {}),\n flattenNodes: (opts) => rpc.call("flattenNodes", opts || {}),\n outlineStroke: (opts) => rpc.call("outlineStroke", opts || {}),\n setMask: (opts) => rpc.call("setMask", opts || {}),\n setMaskType: (opts) => rpc.call("setMaskType", opts || {}),\n shapeBuilder: (opts) => rpc.call("shapeBuilder", opts || {}),\n setKeyframes: (opts) => rpc.call("setKeyframes", opts || {}),\n getAnimation: (opts) => rpc.call("getAnimation", opts || {}),\n getCompositions: (opts) => rpc.call("getCompositions", opts || {}),\n editBehaviours: (opts) => rpc.call("editBehaviours", opts || {}),\n setTimeline: (opts) => rpc.call("setTimeline", opts || {}),\n setLayerTiming: (opts) => rpc.call("setLayerTiming", opts || {}),\n editTextAnimation: (opts) => rpc.call("editTextAnimation", opts || {}),\n edit3DScene: (opts) => rpc.call("edit3DScene", opts || {}),\n setInstancePlayback: (opts) => rpc.call("setInstancePlayback", opts || {}),\n editComponentProperty: (opts) => rpc.call("editComponentProperty", opts || {}),\n setShaderFill: (opts) => rpc.call("setShaderFill", opts || {}),\n createComposition: (opts) => rpc.call("createComposition", opts || {}),\n editComposition: (opts) => rpc.call("editComposition", opts || {}),\n editStateMachine: (opts) => rpc.call("editStateMachine", opts || {}),\n getStateMachine: (opts) => rpc.call("getStateMachine", opts || {}),\n applyMotionPreset: (opts) => rpc.call("applyMotionPreset", opts || {}),\n staggerMotion: (opts) => rpc.call("staggerMotion", opts || {}),\n createMotionComponent: (opts) => rpc.call("createMotionComponent", opts || {}),\n addAudio: (opts) => rpc.call("addAudio", opts || {}),\n editFrameAudio: (opts) => rpc.call("editFrameAudio", opts || {}),\n editVideoClip: (opts) => rpc.call("editVideoClip", opts || {}),\n detectAudioOnsets: (opts) => rpc.call("detectAudioOnsets", opts || {}),\n cutToBeat: (opts) => rpc.call("cutToBeat", opts || {}),\n editPrototype: (opts) => rpc.call("editPrototype", opts || {}),\n usePresentationFallbackAudio: (opts) => rpc.call("usePresentationFallbackAudio", opts || {}),\n /** Bring a Lottie, PDF or PopCraft file into the open document (the `importFile` field is the file an importer was handed). */\n importDocumentFile: (opts) => rpc.call("importDocumentFile", opts || {}),\n getStyles: () => rpc.call("getStyles"),\n createPaintStyle: (name, paints) => rpc.call("createPaintStyle", { name, paints }),\n getVariables: () => rpc.call("getVariables"),\n setVariableValue: (variableId, modeId, value) => rpc.call("setVariableValue", { variableId, modeId, value }),\n exportNode: (id, options) => rpc.call("exportNode", { id, options: options || {} }),\n openExternal: (url) => rpc.call("openExternal", { url }),\n notify: (message, options) => rpc.call("notify", { message: String(message), error: !!(options && options.error) }),\n showUI: (options) => rpc.call("showUI", options || {}),\n hideUI: () => rpc.call("hideUI"),\n /** Ends the run. The optional message is shown as a notification. */\n closePlugin: (message) => rpc.call("closePlugin", { message }),\n storage: {\n get: (key) => rpc.call("storageGet", { key }),\n set: (key, value) => rpc.call("storageSet", { key, value })\n },\n ui: {\n get onmessage() {\n return uiOnMessage;\n },\n set onmessage(cb) {\n uiOnMessage = cb;\n flushUI();\n },\n postMessage: (msg) => rpc.send({ kind: "toUI", data: msg }),\n on: (cb) => {\n uiHandlers.push(cb);\n flushUI();\n }\n },\n widget: {\n register(def) {\n if (!def || typeof def.render !== "function") throw new Error("popcraft.widget.register needs a render(state) function");\n widgetDef = def;\n widgetQueue.splice(0).forEach(handleWidgetClick);\n },\n insert(options) {\n if (!widgetDef) return Promise.reject(new Error("Call popcraft.widget.register first"));\n const o = options || {};\n const state = o.state !== void 0 ? clone(o.state) : initialWidgetState();\n return rpc.call("widgetInsert", { state, tree: renderWidget(state).tree, x: o.x, y: o.y });\n },\n getState: (nodeId) => rpc.call("widgetGet", { id: nodeId }),\n setState(nodeId, state) {\n if (!widgetDef) return Promise.reject(new Error("Call popcraft.widget.register first"));\n return commitWidget(nodeId, clone(state));\n }\n },\n on: (event, cb) => rpc.on(event, cb),\n off: (event, cb) => rpc.off(event, cb)\n };\n rpc.on("init", (data) => {\n var _a, _b, _c;\n popcraft.command = data.command;\n popcraft.importMode = (_a = data.importMode) != null ? _a : null;\n popcraft.importFile = (_b = data.importFile) != null ? _b : null;\n popcraft.exportRequest = (_c = data.exportRequest) != null ? _c : null;\n });\n return popcraft;\n }\n function installMainApi() {\n const rpc = createRpcClient();\n const api = createMainApi(rpc);\n const w = window;\n w.__popcraftRpc = rpc;\n w.popcraft = api;\n w.vizpops = api;\n window.addEventListener("error", (e) => rpc.send({ kind: "error", message: String(e.message || e) }));\n window.addEventListener("unhandledrejection", (e) => rpc.send({ kind: "error", message: String(e.reason && e.reason.message || e.reason) }));\n return api;\n }\n\n // src/runtime/main.entry.ts\n installMainApi();\n})();';
|
|
84
|
+
var MAIN_RUNTIME = '"use strict";\n(() => {\n // src/runtime/rpc.ts\n function createRpcClient() {\n let port = null;\n const queue = [];\n const pending = {};\n const listeners = {};\n let nextId = 1;\n function send(msg) {\n if (port) port.postMessage(msg);\n else queue.push(msg);\n }\n function call(method, params) {\n return new Promise((resolve, reject) => {\n const id = nextId++;\n pending[id] = { resolve, reject };\n send({ kind: "rpc", id, method, params });\n });\n }\n function emit(event, data) {\n for (const cb of (listeners[event] || []).slice()) {\n try {\n cb(data);\n } catch (e) {\n console.error(e);\n }\n }\n }\n window.addEventListener("message", (e) => {\n const data = e.data;\n if (e.source !== window.parent || !data || data.type !== "popcraft-plugin-port" || port) return;\n port = e.ports[0];\n port.onmessage = (ev) => {\n const m = ev.data || {};\n if (m.kind === "result" && m.id !== void 0 && pending[m.id]) {\n const p = pending[m.id];\n delete pending[m.id];\n if (m.error) p.reject(new Error(m.error));\n else p.resolve(m.result);\n } else if (m.kind === "event" && m.event) {\n emit(m.event, m.data);\n }\n };\n for (const msg of queue.splice(0)) port.postMessage(msg);\n });\n return {\n call,\n send,\n on(event, cb) {\n (listeners[event] = listeners[event] || []).push(cb);\n },\n off(event, cb) {\n listeners[event] = (listeners[event] || []).filter((x) => x !== cb);\n }\n };\n }\n\n // src/runtime/main.ts\n function clone(v) {\n return v === void 0 ? {} : JSON.parse(JSON.stringify(v));\n }\n function createMainApi(rpc = createRpcClient()) {\n const uiHandlers = [];\n let uiOnMessage = null;\n const uiQueue = [];\n function deliverUI(msg) {\n for (const cb of uiHandlers) {\n try {\n cb(msg);\n } catch (e) {\n console.error(e);\n }\n }\n if (typeof uiOnMessage === "function") {\n try {\n uiOnMessage(msg);\n } catch (e) {\n console.error(e);\n }\n }\n }\n function flushUI() {\n if (uiHandlers.length || typeof uiOnMessage === "function") uiQueue.splice(0).forEach(deliverUI);\n }\n rpc.on("uimessage", (msg) => {\n if (!uiHandlers.length && typeof uiOnMessage !== "function") uiQueue.push(msg);\n else deliverUI(msg);\n });\n let widgetDef = null;\n const widgetQueue = [];\n function renderWidget(state) {\n const handlers = {};\n function walk(el, path) {\n if (!el || typeof el !== "object") return el;\n const out = {};\n for (const k of Object.keys(el)) {\n const v = el[k];\n if (k === "children") {\n out.children = (Array.isArray(v) ? v : [v]).filter((c) => c !== null && c !== void 0 && c !== false).map((c, i) => walk(c, path + "." + i));\n } else if (k === "onClick" && typeof v === "function") {\n handlers[path] = v;\n out.onClick = path;\n } else {\n out[k] = v;\n }\n }\n return out;\n }\n return { tree: walk(widgetDef.render(state), "root"), handlers };\n }\n function initialWidgetState() {\n const s = widgetDef && widgetDef.initialState;\n return clone(typeof s === "function" ? s() : s);\n }\n function commitWidget(nodeId, state) {\n return rpc.call("widgetUpdate", { id: nodeId, state, tree: renderWidget(clone(state)).tree });\n }\n function handleWidgetClick(e) {\n Promise.resolve().then(() => {\n const state = clone(e.state);\n const rendered = renderWidget(state);\n const h = rendered.handlers[e.handler] || widgetDef.handlers && widgetDef.handlers[e.handler];\n if (typeof h !== "function") return;\n return Promise.resolve(h(state, { nodeId: e.nodeId })).then((ret) => commitWidget(e.nodeId, ret === void 0 ? state : ret));\n }).catch((err) => rpc.send({ kind: "error", message: String((err == null ? void 0 : err.message) || err) }));\n }\n rpc.on("widgetclick", (e) => {\n if (widgetDef) handleWidgetClick(e);\n else widgetQueue.push(e);\n });\n const popcraft = {\n /** Which menu command the user picked, or null when the plugin ran some other way. */\n command: null,\n /** Host import mode when launched as an importer, else null. */\n importMode: null,\n /** Pending import file when the host handed one over, else null. */\n importFile: null,\n /** Pending export request (File \u2192 Export \u2192 this plugin\'s format), else null. */\n exportRequest: null,\n getSelection: () => rpc.call("getSelection"),\n setSelection: (ids) => rpc.call("setSelection", { ids }),\n getNode: (id) => rpc.call("getNode", { id }),\n findNodes: (query) => rpc.call("findNodes", query || {}),\n getCurrentPage: () => rpc.call("getCurrentPage"),\n createNode: (type, props) => rpc.call("createNode", { type, props: props || {} }),\n updateNode: (id, props) => rpc.call("updateNode", { id, props }),\n deleteNode: (id) => rpc.call("deleteNode", { id }),\n setText: (id, characters) => rpc.call("setText", { id, characters }),\n /** Put TEXT layers on a path (another layer\'s outline, or their own arc, circle or wave), or tune one: brackets, alignment, placement, effect, overflow. */\n setTextPath: (opts) => rpc.call("setTextPath", opts || {}),\n /** Area type: flow a TEXT layer inside a closed shape, kept `inset` px in. */\n flowTextIntoShape: (opts) => rpc.call("flowTextIntoShape", opts || {}),\n /** Take TEXT layers off their path or out of their shape (or free every text linked to a path / shape). */\n detachText: (opts) => rpc.call("detachText", opts || {}),\n /** Auto-size TEXT layers\' type to their box, shape or path. */\n setTextFit: (opts) => rpc.call("setTextFit", opts || {}),\n createPage: (name) => rpc.call("createPage", name != null ? { name: String(name) } : {}),\n setCurrentPage: (pageId) => rpc.call("setCurrentPage", { pageId }),\n createImage: (opts) => rpc.call("createImage", opts || {}),\n createDocument: (opts) => rpc.call("createDocument", opts || {}),\n getImportMode: () => rpc.call("getImportMode"),\n getImportFile: () => rpc.call("getImportFile"),\n /**\n * The open page as a storefront design in a neutral form, for an exporter that writes its own store\'s templates:\n * each page\'s HTML with the store\'s data marked (`{{page.title}}`, `{{item.price}}`, `<!-- pc:each \u2026 -->` lists,\n * `data-pc-action` forms), and its collections with their commerce schema and sample records.\n */\n getStorefront: () => rpc.call("getStorefront"),\n /**\n * A design\'s data (docs: Collections): a collection and its fields (`schema`: what it stands for, e.g.\n * `commerce.product`, whose fields are made for it), its records, and reading them.\n */\n editCollection: (opts) => rpc.call("editCollection", opts || {}),\n editRecords: (opts) => rpc.call("editRecords", opts || {}),\n getRecords: (opts) => rpc.call("getRecords", opts || {}),\n /** A layer as a web page\'s form control (a FORM\'s `formAction`, an INPUT\'s name and value), repeated per record, a page\'s address, its semantics. */\n setControl: (opts) => rpc.call("setControl", opts || {}),\n setRepeat: (opts) => rpc.call("setRepeat", opts || {}),\n setRoute: (opts) => rpc.call("setRoute", opts || {}),\n setSemantics: (opts) => rpc.call("setSemantics", opts || {}),\n /** Which record layers are about (one product, picked from a collection), and which of its fields a layer\'s words, picture or an instance\'s properties follow. */\n setRecord: (opts) => rpc.call("setRecord", opts || {}),\n bindField: (opts) => rpc.call("bindField", opts || {}),\n /** The site\'s environment: public settings its host reads by name when it is deployed (never a secret: the file keeps them). */\n getSiteEnvironment: () => rpc.call("getSiteEnvironment"),\n setSiteEnvironment: (set) => rpc.call("setSiteEnvironment", { set }),\n /** What this plugin keeps with the open file (its settings for this design), under its own id; JSON only. */\n getFileData: (key) => rpc.call("getFileData", { key }),\n setFileData: (key, value) => rpc.call("setFileData", { key, value }),\n /** A store\'s project built from the open page, zipped (needs `export`): what an exporter saves with `saveExport`. */\n getStorefrontFiles: (target) => rpc.call("getStorefrontFiles", { target }),\n getExportRequest: () => rpc.call("getExportRequest"),\n /** Save the exporter\'s file (once per export request); the host enforces the contributed extension. */\n saveExport: (file) => rpc.call("saveExport", file || {}),\n /**\n * Presentation audio (docs/plugins/presentation-audio.md): the deck\'s slides, notes, narration and timing; the\n * soundtrack\'s settings, bed and stinger.\n */\n getPresentationAudio: (opts) => rpc.call("getPresentationAudio", opts || {}),\n /** Change the soundtrack\'s settings (voice, style, mood, loudness, beat alignment, levels) and re-time it. */\n setPresentationAudioSettings: (opts) => rpc.call("setPresentationAudioSettings", opts || {}),\n /** Put a sound in (a slide\'s narration, the bed or the stinger): bytes are normalised to the soundtrack\'s target and stored. */\n setPresentationAudioClip: (opts) => rpc.call("setPresentationAudioClip", opts || {}),\n removePresentationAudioClip: (opts) => rpc.call("removePresentationAudioClip", opts || {}),\n /** Re-time: fixed slide lengths (ms, null clears) and beat-aligned changes. */\n setPresentationTiming: (opts) => rpc.call("setPresentationTiming", opts || {}),\n /** The mix as the export carries it: loudness, true peak, and (wav: true) the 48 kHz stereo WAV. */\n getPresentationMix: (opts) => rpc.call("getPresentationMix", opts || {}),\n /** Ask the user to generate with AI (the panel opens with the request filled in; the user decides). */\n requestPresentationAudio: (opts) => rpc.call("requestPresentationAudio", opts || {}),\n /** Editor commands: each takes the arguments documented in docs/plugins/methods.md (the agent tool of the same purpose). */\n moveNodes: (opts) => rpc.call("moveNodes", opts || {}),\n resizeNodes: (opts) => rpc.call("resizeNodes", opts || {}),\n renameNodes: (opts) => rpc.call("renameNodes", opts || {}),\n reparentNodes: (opts) => rpc.call("reparentNodes", opts || {}),\n duplicateNodes: (opts) => rpc.call("duplicateNodes", opts || {}),\n groupNodes: (opts) => rpc.call("groupNodes", opts || {}),\n ungroupNodes: (opts) => rpc.call("ungroupNodes", opts || {}),\n alignNodes: (opts) => rpc.call("alignNodes", opts || {}),\n distributeNodes: (opts) => rpc.call("distributeNodes", opts || {}),\n flipNodes: (opts) => rpc.call("flipNodes", opts || {}),\n rotateNodes: (opts) => rpc.call("rotateNodes", opts || {}),\n reorderNodes: (opts) => rpc.call("reorderNodes", opts || {}),\n setLocked: (opts) => rpc.call("setLocked", opts || {}),\n setVisible: (opts) => rpc.call("setVisible", opts || {}),\n setAutoLayout: (opts) => rpc.call("setAutoLayout", opts || {}),\n importSvg: (opts) => rpc.call("importSvg", opts || {}),\n measureNodes: (opts) => rpc.call("measureNodes", opts || {}),\n setFills: (opts) => rpc.call("setFills", opts || {}),\n setStrokes: (opts) => rpc.call("setStrokes", opts || {}),\n setEffects: (opts) => rpc.call("setEffects", opts || {}),\n replaceColor: (opts) => rpc.call("replaceColor", opts || {}),\n setTypography: (opts) => rpc.call("setTypography", opts || {}),\n applyStyle: (opts) => rpc.call("applyStyle", opts || {}),\n createComponent: (opts) => rpc.call("createComponent", opts || {}),\n createInstance: (opts) => rpc.call("createInstance", opts || {}),\n renamePage: (opts) => rpc.call("renamePage", opts || {}),\n getDocumentOutline: (opts) => rpc.call("getDocumentOutline", opts || {}),\n setPageSetup: (opts) => rpc.call("setPageSetup", opts || {}),\n setShowAdvance: (opts) => rpc.call("setShowAdvance", opts || {}),\n booleanOperation: (opts) => rpc.call("booleanOperation", opts || {}),\n flattenNodes: (opts) => rpc.call("flattenNodes", opts || {}),\n outlineStroke: (opts) => rpc.call("outlineStroke", opts || {}),\n setMask: (opts) => rpc.call("setMask", opts || {}),\n setMaskType: (opts) => rpc.call("setMaskType", opts || {}),\n shapeBuilder: (opts) => rpc.call("shapeBuilder", opts || {}),\n setKeyframes: (opts) => rpc.call("setKeyframes", opts || {}),\n getAnimation: (opts) => rpc.call("getAnimation", opts || {}),\n getCompositions: (opts) => rpc.call("getCompositions", opts || {}),\n editBehaviours: (opts) => rpc.call("editBehaviours", opts || {}),\n setTimeline: (opts) => rpc.call("setTimeline", opts || {}),\n setLayerTiming: (opts) => rpc.call("setLayerTiming", opts || {}),\n editTextAnimation: (opts) => rpc.call("editTextAnimation", opts || {}),\n edit3DScene: (opts) => rpc.call("edit3DScene", opts || {}),\n setInstancePlayback: (opts) => rpc.call("setInstancePlayback", opts || {}),\n editComponentProperty: (opts) => rpc.call("editComponentProperty", opts || {}),\n setShaderFill: (opts) => rpc.call("setShaderFill", opts || {}),\n createComposition: (opts) => rpc.call("createComposition", opts || {}),\n editComposition: (opts) => rpc.call("editComposition", opts || {}),\n editStateMachine: (opts) => rpc.call("editStateMachine", opts || {}),\n getStateMachine: (opts) => rpc.call("getStateMachine", opts || {}),\n applyMotionPreset: (opts) => rpc.call("applyMotionPreset", opts || {}),\n staggerMotion: (opts) => rpc.call("staggerMotion", opts || {}),\n createMotionComponent: (opts) => rpc.call("createMotionComponent", opts || {}),\n addAudio: (opts) => rpc.call("addAudio", opts || {}),\n editFrameAudio: (opts) => rpc.call("editFrameAudio", opts || {}),\n editVideoClip: (opts) => rpc.call("editVideoClip", opts || {}),\n detectAudioOnsets: (opts) => rpc.call("detectAudioOnsets", opts || {}),\n cutToBeat: (opts) => rpc.call("cutToBeat", opts || {}),\n editPrototype: (opts) => rpc.call("editPrototype", opts || {}),\n usePresentationFallbackAudio: (opts) => rpc.call("usePresentationFallbackAudio", opts || {}),\n /** Bring a Lottie, PDF or PopCraft file into the open document (the `importFile` field is the file an importer was handed). */\n importDocumentFile: (opts) => rpc.call("importDocumentFile", opts || {}),\n getStyles: () => rpc.call("getStyles"),\n createPaintStyle: (name, paints) => rpc.call("createPaintStyle", { name, paints }),\n getVariables: () => rpc.call("getVariables"),\n setVariableValue: (variableId, modeId, value) => rpc.call("setVariableValue", { variableId, modeId, value }),\n exportNode: (id, options) => rpc.call("exportNode", { id, options: options || {} }),\n openExternal: (url) => rpc.call("openExternal", { url }),\n /**\n * Send a file to an https URL. PopCraft makes the request, not the sandbox, so it works for files of\n * any size the server accepts, including straight to a presigned storage URL. Needs `network`.\n */\n upload: (url, options) => {\n const body = options.body instanceof ArrayBuffer ? new Uint8Array(options.body) : options.body;\n return rpc.call("upload", {\n url,\n body,\n method: options.method,\n contentType: options.contentType,\n headers: options.headers\n });\n },\n notify: (message, options) => rpc.call("notify", { message: String(message), error: !!(options && options.error) }),\n showUI: (options) => rpc.call("showUI", options || {}),\n hideUI: () => rpc.call("hideUI"),\n /** Ends the run. The optional message is shown as a notification. */\n closePlugin: (message) => rpc.call("closePlugin", { message }),\n storage: {\n get: (key) => rpc.call("storageGet", { key }),\n set: (key, value) => rpc.call("storageSet", { key, value })\n },\n ui: {\n get onmessage() {\n return uiOnMessage;\n },\n set onmessage(cb) {\n uiOnMessage = cb;\n flushUI();\n },\n postMessage: (msg) => rpc.send({ kind: "toUI", data: msg }),\n on: (cb) => {\n uiHandlers.push(cb);\n flushUI();\n }\n },\n widget: {\n register(def) {\n if (!def || typeof def.render !== "function") throw new Error("popcraft.widget.register needs a render(state) function");\n widgetDef = def;\n widgetQueue.splice(0).forEach(handleWidgetClick);\n },\n insert(options) {\n if (!widgetDef) return Promise.reject(new Error("Call popcraft.widget.register first"));\n const o = options || {};\n const state = o.state !== void 0 ? clone(o.state) : initialWidgetState();\n return rpc.call("widgetInsert", { state, tree: renderWidget(state).tree, x: o.x, y: o.y });\n },\n getState: (nodeId) => rpc.call("widgetGet", { id: nodeId }),\n setState(nodeId, state) {\n if (!widgetDef) return Promise.reject(new Error("Call popcraft.widget.register first"));\n return commitWidget(nodeId, clone(state));\n }\n },\n on: (event, cb) => rpc.on(event, cb),\n off: (event, cb) => rpc.off(event, cb)\n };\n rpc.on("init", (data) => {\n var _a, _b, _c;\n popcraft.command = data.command;\n popcraft.importMode = (_a = data.importMode) != null ? _a : null;\n popcraft.importFile = (_b = data.importFile) != null ? _b : null;\n popcraft.exportRequest = (_c = data.exportRequest) != null ? _c : null;\n });\n return popcraft;\n }\n function installMainApi() {\n const rpc = createRpcClient();\n const api = createMainApi(rpc);\n const w = window;\n w.__popcraftRpc = rpc;\n w.popcraft = api;\n w.vizpops = api;\n window.addEventListener("error", (e) => rpc.send({ kind: "error", message: String(e.message || e) }));\n window.addEventListener("unhandledrejection", (e) => rpc.send({ kind: "error", message: String(e.reason && e.reason.message || e.reason) }));\n return api;\n }\n\n // src/runtime/main.entry.ts\n installMainApi();\n})();';
|
|
85
85
|
var UI_RUNTIME = '"use strict";\n(() => {\n // src/runtime/rpc.ts\n function createRpcClient() {\n let port = null;\n const queue = [];\n const pending = {};\n const listeners = {};\n let nextId = 1;\n function send(msg) {\n if (port) port.postMessage(msg);\n else queue.push(msg);\n }\n function call(method, params) {\n return new Promise((resolve, reject) => {\n const id = nextId++;\n pending[id] = { resolve, reject };\n send({ kind: "rpc", id, method, params });\n });\n }\n function emit(event, data) {\n for (const cb of (listeners[event] || []).slice()) {\n try {\n cb(data);\n } catch (e) {\n console.error(e);\n }\n }\n }\n window.addEventListener("message", (e) => {\n const data = e.data;\n if (e.source !== window.parent || !data || data.type !== "popcraft-plugin-port" || port) return;\n port = e.ports[0];\n port.onmessage = (ev) => {\n const m = ev.data || {};\n if (m.kind === "result" && m.id !== void 0 && pending[m.id]) {\n const p = pending[m.id];\n delete pending[m.id];\n if (m.error) p.reject(new Error(m.error));\n else p.resolve(m.result);\n } else if (m.kind === "event" && m.event) {\n emit(m.event, m.data);\n }\n };\n for (const msg of queue.splice(0)) port.postMessage(msg);\n });\n return {\n call,\n send,\n on(event, cb) {\n (listeners[event] = listeners[event] || []).push(cb);\n },\n off(event, cb) {\n listeners[event] = (listeners[event] || []).filter((x) => x !== cb);\n }\n };\n }\n\n // src/runtime/ui.ts\n function createUiApi(rpc = createRpcClient()) {\n const popcraft = {\n onmessage: null,\n postMessage: (msg) => rpc.send({ kind: "fromUI", data: msg }),\n close: () => rpc.send({ kind: "closeUI" })\n };\n rpc.on("message", (msg) => {\n if (typeof popcraft.onmessage === "function") popcraft.onmessage(msg);\n window.dispatchEvent(new MessageEvent("message", { data: { pluginMessage: msg } }));\n });\n return popcraft;\n }\n function installUiApi() {\n const rpc = createRpcClient();\n const api = createUiApi(rpc);\n const w = window;\n w.__popcraftRpc = rpc;\n w.popcraft = api;\n w.vizpops = api;\n return api;\n }\n\n // src/runtime/ui.entry.ts\n installUiApi();\n})();';
|
|
86
86
|
|
|
87
|
-
// node_modules/.pnpm/@popcraft+plugins@1.0
|
|
87
|
+
// node_modules/.pnpm/@popcraft+plugins@1.3.0/node_modules/@popcraft/plugins/dist/host.js
|
|
88
88
|
var escapeScript = (code) => code.replace(/<\/script/gi, "<\\/script");
|
|
89
89
|
function csp(network) {
|
|
90
90
|
const connect = network ? "connect-src * data: blob:;" : "connect-src 'none';";
|
|
@@ -112,16 +112,16 @@ function buildUIDocument(uiHtml, network) {
|
|
|
112
112
|
return `<!doctype html><html><head>${head}</head><body>${uiHtml}</body></html>`;
|
|
113
113
|
}
|
|
114
114
|
|
|
115
|
-
// node_modules/.pnpm/@popcraft+plugins@1.0
|
|
115
|
+
// node_modules/.pnpm/@popcraft+plugins@1.3.0/node_modules/@popcraft/plugins/dist/runtime/main.js
|
|
116
116
|
init_define_POPCRAFT_COMPONENT_IDS();
|
|
117
117
|
|
|
118
|
-
// node_modules/.pnpm/@popcraft+plugins@1.0
|
|
118
|
+
// node_modules/.pnpm/@popcraft+plugins@1.3.0/node_modules/@popcraft/plugins/dist/runtime/rpc.js
|
|
119
119
|
init_define_POPCRAFT_COMPONENT_IDS();
|
|
120
120
|
|
|
121
|
-
// node_modules/.pnpm/@popcraft+plugins@1.0
|
|
121
|
+
// node_modules/.pnpm/@popcraft+plugins@1.3.0/node_modules/@popcraft/plugins/dist/types.js
|
|
122
122
|
init_define_POPCRAFT_COMPONENT_IDS();
|
|
123
123
|
|
|
124
|
-
// node_modules/.pnpm/@popcraft+plugins@1.0
|
|
124
|
+
// node_modules/.pnpm/@popcraft+plugins@1.3.0/node_modules/@popcraft/plugins/dist/widget.js
|
|
125
125
|
init_define_POPCRAFT_COMPONENT_IDS();
|
|
126
126
|
|
|
127
127
|
// lib/plugins/ui-theme.ts
|
|
@@ -579,7 +579,7 @@ async function runPlugin(pluginId, commandId, opts = {}) {
|
|
|
579
579
|
if (!openBeside(url)) throw new Error("The browser blocked the new tab");
|
|
580
580
|
},
|
|
581
581
|
createDocument: async (opts2) => {
|
|
582
|
-
const { createFreshFileOrExplain } = await import("./new-file-
|
|
582
|
+
const { createFreshFileOrExplain } = await import("./new-file-UUBSWKHK.js");
|
|
583
583
|
const created = await createFreshFileOrExplain({}, { name: opts2?.name });
|
|
584
584
|
if (!created.ok) throw new Error(created.reason === "plan" ? "Plan limit reached" : created.reason === "guest-limit" ? "Sign in to create another file" : `Could not create file (${created.reason})`);
|
|
585
585
|
await useEditorStore.getState().openDocument(created.docId);
|
|
@@ -769,7 +769,7 @@ if (typeof window !== "undefined") {
|
|
|
769
769
|
const name = d.name || "Imported";
|
|
770
770
|
void (async () => {
|
|
771
771
|
try {
|
|
772
|
-
const { importViaPlugin, applyPluginLayoutIr } = await import("./plugin-import-
|
|
772
|
+
const { importViaPlugin, applyPluginLayoutIr } = await import("./plugin-import-C5S2SHFZ.js");
|
|
773
773
|
if (d.ir && typeof d.ir === "object") {
|
|
774
774
|
await applyPluginLayoutIr(d.ir, { mode, name });
|
|
775
775
|
return;
|
|
@@ -161,7 +161,7 @@ import {
|
|
|
161
161
|
} from "./chunk-QNR4D25F.js";
|
|
162
162
|
import {
|
|
163
163
|
t
|
|
164
|
-
} from "./chunk-
|
|
164
|
+
} from "./chunk-BKOLU4XB.js";
|
|
165
165
|
import {
|
|
166
166
|
magicResize
|
|
167
167
|
} from "./chunk-TGVAUIGC.js";
|
|
@@ -4588,7 +4588,7 @@ function createPopcornSlice(set2, get2) {
|
|
|
4588
4588
|
privateMode: false,
|
|
4589
4589
|
setPrivateMode: (on) => {
|
|
4590
4590
|
set2({ privateMode: on });
|
|
4591
|
-
void import("./presence-
|
|
4591
|
+
void import("./presence-UQHDKT4A.js").then((m) => m.setPresencePrivate(on)).catch(() => {
|
|
4592
4592
|
});
|
|
4593
4593
|
},
|
|
4594
4594
|
/** Reveal every private item THIS user created (they sync to collaborators). Others' stay theirs. */
|
|
@@ -6652,7 +6652,7 @@ var useEditorStore = create()(
|
|
|
6652
6652
|
// A copy is a new file, so it is cloud-backed like any other (see lib/client/cloud/new-file.ts).
|
|
6653
6653
|
// Returns '' when it was refused (offline, signed out, plan full) or failed; nothing is left behind.
|
|
6654
6654
|
duplicateDocument: async (id) => {
|
|
6655
|
-
const { duplicateDocumentToCloud } = await import("./sync-
|
|
6655
|
+
const { duplicateDocumentToCloud } = await import("./sync-A56IG32K.js");
|
|
6656
6656
|
return duplicateDocumentToCloud(id);
|
|
6657
6657
|
},
|
|
6658
6658
|
deleteDocument: async (id) => {
|
|
@@ -10115,9 +10115,9 @@ if (typeof window !== "undefined") {
|
|
|
10115
10115
|
if (typeof window !== "undefined" && navigator.webdriver) {
|
|
10116
10116
|
window.__vpDesign = async (script, o = {}) => {
|
|
10117
10117
|
const [{ registerBuiltinTools, runTool }, { editorToolContext }, { createDesignPreview }] = await Promise.all([
|
|
10118
|
-
import("./tools-
|
|
10119
|
-
import("./editor-seams-
|
|
10120
|
-
import("./live-
|
|
10118
|
+
import("./tools-2TCRJ6YI.js").then(async (m) => ({ ...m, registerBuiltinTools: (await import("./builtin-B425EDUG.js")).registerBuiltinTools })),
|
|
10119
|
+
import("./editor-seams-UO4QUUQH.js"),
|
|
10120
|
+
import("./live-QLSNGZ3Y.js")
|
|
10121
10121
|
]);
|
|
10122
10122
|
registerBuiltinTools();
|
|
10123
10123
|
const args = JSON.stringify({ ...o.name ? { name: o.name } : {}, ...o.size ? { size: o.size } : {}, ...o.frame ? { frame: o.frame } : {}, script });
|
|
@@ -10133,7 +10133,7 @@ if (typeof window !== "undefined" && navigator.webdriver) {
|
|
|
10133
10133
|
return runTool("write_design", args, { ...editorToolContext(), toolCallId: "dev" });
|
|
10134
10134
|
};
|
|
10135
10135
|
window.__vpLoadTemplate = async (id, sizeId) => {
|
|
10136
|
-
const [{ searchTemplates, fetchCloudTemplate }, { documentFromTemplate }, { prepareTemplate }] = await Promise.all([import("./templates-
|
|
10136
|
+
const [{ searchTemplates, fetchCloudTemplate }, { documentFromTemplate }, { prepareTemplate }] = await Promise.all([import("./templates-S32W3ZLK.js"), import("../lib/templates/apply.js"), import("./use-ZGEOR2CQ.js")]);
|
|
10137
10137
|
if (!id) return (await searchTemplates({ scope: "official", limit: 200 })).templates.map((t3) => t3.id);
|
|
10138
10138
|
const t2 = typeof id === "string" ? await fetchCloudTemplate(id) : id;
|
|
10139
10139
|
if (!t2) throw new Error(`No template ${id}`);
|
|
@@ -7,7 +7,7 @@ const __dirname = __popcraftDirname(__filename);
|
|
|
7
7
|
import {
|
|
8
8
|
cloudApi,
|
|
9
9
|
invalidateMe
|
|
10
|
-
} from "./chunk-
|
|
10
|
+
} from "./chunk-KWUXHRXD.js";
|
|
11
11
|
import {
|
|
12
12
|
create
|
|
13
13
|
} from "./chunk-QLJLPV5R.js";
|
|
@@ -130,7 +130,7 @@ async function followFileTeam(key) {
|
|
|
130
130
|
const { teams, personalWorkspaceId } = useHyperyTeam.getState();
|
|
131
131
|
if (!teams) return;
|
|
132
132
|
try {
|
|
133
|
-
const { cloudApi: cloudApi2 } = await import("./api-
|
|
133
|
+
const { cloudApi: cloudApi2 } = await import("./api-7ZHHFXRP.js");
|
|
134
134
|
const { file } = await cloudApi2.getFile(key);
|
|
135
135
|
if (file.workspaceId === personalWorkspaceId) {
|
|
136
136
|
selectHyperyTeam("", "");
|
|
@@ -150,7 +150,7 @@ function startHyperyTeams() {
|
|
|
150
150
|
maybePromptForTeam();
|
|
151
151
|
void followFileTeam(linkedKey);
|
|
152
152
|
});
|
|
153
|
-
void import("./sync-
|
|
153
|
+
void import("./sync-A56IG32K.js").then(({ onSyncStatus, syncStatus }) => {
|
|
154
154
|
linkedKey = syncStatus().link?.key ?? null;
|
|
155
155
|
void followFileTeam(linkedKey);
|
|
156
156
|
onSyncStatus((_s, link) => {
|