@mavea/mavea 2.1.0 → 2.2.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/CHANGELOG.md +44 -0
- package/README.md +1 -7
- package/TERMS.md +9 -3
- package/dist/.vite/manifest.json +610 -540
- package/dist/assets/{AnnotationLayer-Bh1yiSAK.js → AnnotationLayer-HanjTRYY.js} +1 -1
- package/dist/assets/{AppCommandPalette-DS4sLY_K.js → AppCommandPalette-DBiuHUNL.js} +1 -1
- package/dist/assets/{CheckLogRail-onH7DaxW.js → CheckLogRail-CfoGgTqv.js} +1 -1
- package/dist/assets/{ConversationVideoStudio-adb7legp.js → ConversationVideoStudio-CEi_cgBR.js} +1 -1
- package/dist/assets/{CourseLessonReader-CkzViEij.js → CourseLessonReader-CaLT_Y6N.js} +2 -2
- package/dist/assets/{CoursesApp-B0HFM8Al.js → CoursesApp-IfWCeml5.js} +2 -2
- package/dist/assets/{DashPresent-BdOJ7F9D.js → DashPresent-T7I-lAng.js} +1 -1
- package/dist/assets/{DashboardDetail-Chrpi1Yk.js → DashboardDetail-BhRSDenD.js} +2 -2
- package/dist/assets/{DashboardLoopGate-B01Hpm7O.js → DashboardLoopGate-DBVAR7IS.js} +2 -2
- package/dist/assets/DashboardLoopRuntime-B55z8L4b.js +1 -0
- package/dist/assets/{DashboardsApp--jjj-GVX.js → DashboardsApp-C_awJ3hM.js} +2 -2
- package/dist/assets/{DeepZoomApp-BpQbKTjc.js → DeepZoomApp-C-66OasV.js} +1 -1
- package/dist/assets/{DelegatePanel-e4y0CJsn.js → DelegatePanel-DaJTDkYu.js} +1 -1
- package/dist/assets/{DemoGallery-DF1ShRG4.js → DemoGallery-B9F7SUzp.js} +1 -1
- package/dist/assets/{DropSelect-D3Q9Su_x.js → DropSelect-IBjV5Ol1.js} +1 -1
- package/dist/assets/{ExportModal-DkmyBpeN.js → ExportModal-gckBiikq.js} +1 -1
- package/dist/assets/{ExtractionPreview-C6F1q3qG.js → ExtractionPreview-DDOkCH9u.js} +1 -1
- package/dist/assets/FallbackCard-CUe6i-zT.js +1 -0
- package/dist/assets/{FeatureUseNotice-CCI4mM39.js → FeatureUseNotice-BfnZH8Vt.js} +1 -1
- package/dist/assets/{FlagshipCommandPalette-BkjvGrKT.js → FlagshipCommandPalette-CYQdl3Zu.js} +1 -1
- package/dist/assets/{FlagshipShowcase-Dx2noFrP.js → FlagshipShowcase-CFMmbeff.js} +1 -1
- package/dist/assets/{FlashcardsApp-C1TeLlkY.js → FlashcardsApp-KJ1bmlbp.js} +1 -1
- package/dist/assets/GalleryApp-B4KBdNyu.css +1 -0
- package/dist/assets/GalleryApp-Dh8Nc_So.js +2 -0
- package/dist/assets/{HonestByDesign-DlRrxgrO.js → HonestByDesign-C3LTj4Bx.js} +1 -1
- package/dist/assets/{HowItWorks-BM2yn2dq.js → HowItWorks-C5Dqqvl-.js} +1 -1
- package/dist/assets/{LegalApp-DPfTD0jz.js → LegalApp-DYVJIUyF.js} +1 -1
- package/dist/assets/{LegalMarkdownDocument-DJgwmK1q.js → LegalMarkdownDocument-CbuQ-pLN.js} +1 -1
- package/dist/assets/{LegalPageShell-DuIwSVSJ.js → LegalPageShell-CoEyiZGz.js} +1 -1
- package/dist/assets/{LibraryOverlay-DsLhiJzF.js → LibraryOverlay-TQnxY9R8.js} +1 -1
- package/dist/assets/LiveApp-DRnphsFA.js +79 -0
- package/dist/assets/{LiveApp-CEaISHEZ.css → LiveApp-Dc7Mk5oS.css} +1 -1
- package/dist/assets/{LiveSettings-CDHQnEtF.js → LiveSettings-Cz3XSqv8.js} +3 -3
- package/dist/assets/{MindMapViewerDrawer-C3BgiubE.js → MindMapViewerDrawer-AUJlLC2R.js} +1 -1
- package/dist/assets/{MindShape-DVlgSR1B.js → MindShape-BbuVOTaR.js} +1 -1
- package/dist/assets/{PinToDashboard-Dd_egidB.js → PinToDashboard-BdXI7oo9.js} +1 -1
- package/dist/assets/{PlanReview-wOsBpofo.js → PlanReview-CGRvSRAt.js} +1 -1
- package/dist/assets/{PresentationDeck-BSMzp5T9.js → PresentationDeck-CoPmOr2f.js} +1 -1
- package/dist/assets/{PrismApp-DbbDNVpy.js → PrismApp-DPECS285.js} +2 -2
- package/dist/assets/{PrismBriefingPlayer-B1_ziOwl.js → PrismBriefingPlayer-BvpG7oZs.js} +2 -2
- package/dist/assets/{PrismOverlay-DLxvsh9l.js → PrismOverlay-c8rcvt4V.js} +3 -3
- package/dist/assets/{PrismWorkbench-ZlhI7Mhw.js → PrismWorkbench-BEaD7Arj.js} +1 -1
- package/dist/assets/{PrivacyApp-Ki_5bM9Z.js → PrivacyApp-_O_MR088.js} +1 -1
- package/dist/assets/{ReplayCard-WKBKeSKc.js → ReplayCard-IN-ilb2E.js} +2 -2
- package/dist/assets/{ReplayOverlay-PFSJv540.js → ReplayOverlay-ZRjFP-zf.js} +1 -1
- package/dist/assets/{RippleApp-DqVyZYKV.js → RippleApp-D_Gd8Lw8.js} +2 -2
- package/dist/assets/{RippleOverlay-4McJCSV8.js → RippleOverlay-vP2KxTiI.js} +2 -2
- package/dist/assets/{SeeDontRead-gARjJuF7.js → SeeDontRead-BmUyUai5.js} +1 -1
- package/dist/assets/{ShareModal-C5HVVMtQ.js → ShareModal-_KYCohqO.js} +2 -2
- package/dist/assets/{ShipCourse-BUm4TKUk.js → ShipCourse--ajDej06.js} +1 -1
- package/dist/assets/{SignatureLoop-CYspJuij.js → SignatureLoop-DDw2gtQ_.js} +1 -1
- package/dist/assets/{SynthesisApp-BNhF9aJ2.js → SynthesisApp-CilzogOF.js} +2 -2
- package/dist/assets/{SynthesisOverlay-Bvwdc8uQ.js → SynthesisOverlay-CAK5h0hB.js} +1 -1
- package/dist/assets/{TemplatePicker-DBa4lkpf.js → TemplatePicker-3w18ViSc.js} +1 -1
- package/dist/assets/{TermsApp-BvwDtgIz.js → TermsApp-BfTGOTq6.js} +10 -4
- package/dist/assets/TopicCanvas-DSCNWNjv.js +2 -0
- package/dist/assets/TopicCanvas-sGuo7pnQ.css +1 -0
- package/dist/assets/{TourPrism-CCjys3-x.js → TourPrism-Y47m-KGq.js} +1 -1
- package/dist/assets/{TrackerTile-B4j5qtop.js → TrackerTile-LXFQXcvH.js} +2 -2
- package/dist/assets/{TwoSurfaces-fGm1MJrD.js → TwoSurfaces-CSpKrgfJ.js} +1 -1
- package/dist/assets/{WorldOverlay-JOp1rLyU.js → WorldOverlay-D5FWgYe3.js} +2 -2
- package/dist/assets/{WowFeatures-D5dJvp9W.js → WowFeatures-e6mkftpD.js} +1 -1
- package/dist/assets/{ZoomDeck-DYmkT0TA.js → ZoomDeck-CC9zXPxF.js} +1 -1
- package/dist/assets/{audioTrack-BJ2D_nuy.js → audioTrack-w1tZwSoU.js} +1 -1
- package/dist/assets/{backup-DkCsHNEE.js → backup-AymOkasb.js} +1 -1
- package/dist/assets/briefs-5oOobpyS.js +1 -0
- package/dist/assets/canvas-BRGFkCD-.js +1 -0
- package/dist/assets/{capture-Y6Qm8zCN.js → capture-Bomj_Egy.js} +1 -1
- package/dist/assets/catalog-vLsIS_Na.js +1 -0
- package/dist/assets/{confirmAdd-D-TTCQ31.js → confirmAdd-CUFiPNWz.js} +1 -1
- package/dist/assets/{dashboardEvents-MzCzak6K.js → dashboardEvents-PktCbV72.js} +1 -1
- package/dist/assets/{deepen-FZiVqiEc.js → deepen-Dz4yTyJs.js} +1 -1
- package/dist/assets/{effort-BftNJCCV.js → effort-BKGxLYoq.js} +1 -1
- package/dist/assets/facts-CNQz8OQz.js +1 -0
- package/dist/assets/{generateBeats-Dqtfd8HC.js → generateBeats-BjWC2fwl.js} +1 -1
- package/dist/assets/{generateLive-B7nlaqz8.js → generateLive-BLajGcNK.js} +1 -1
- package/dist/assets/{index-Db-FgYxX.js → index-CKRjGbeR.js} +3 -3
- package/dist/assets/{kokoro-yB7iU_JU.js → kokoro-B-rc224u.js} +1 -1
- package/dist/assets/{lens-DyGK7Owa.js → lens-Ba83fBmq.js} +1 -1
- package/dist/assets/liveSchema-eKgFc5D0.js +127 -0
- package/dist/assets/loader-BiYFMeRS.js +2 -0
- package/dist/assets/notes-nfocTnUv.js +1 -0
- package/dist/assets/overflowAudit-DQLYFrM8.js +1 -0
- package/dist/assets/{perfProbe-DrOeB7yd.js → perfProbe-BqMK4N56.js} +1 -1
- package/dist/assets/{pin-C5_s4Ju5.js → pin-IyE46GaQ.js} +1 -1
- package/dist/assets/{portal-TqJbr2rR.js → portal-C2b5NoMN.js} +1 -1
- package/dist/assets/{prewarm-Bt5X_9CM.js → prewarm-Pvdu5Jt0.js} +1 -1
- package/dist/assets/{quietHours-LtXDl4-v.js → quietHours-lWcjQ2Iu.js} +1 -1
- package/dist/assets/registry-B3HqLZyO.css +1 -0
- package/dist/assets/registry-BD1Zyd46.js +1 -0
- package/dist/assets/registry-BJFqryP_.js +1 -0
- package/dist/assets/registry-BTUHr4mQ.js +1 -0
- package/dist/assets/registry-BZsqAOnQ.css +1 -0
- package/dist/assets/registry-BiT0eNZb.js +2 -0
- package/dist/assets/registry-BoLdoGPW.js +1 -0
- package/dist/assets/registry-CLHP_r7X.js +1 -0
- package/dist/assets/registry-CT85vG1M.js +1 -0
- package/dist/assets/{registry-CIcGBgtK.css → registry-CnNL4jmR.css} +1 -1
- package/dist/assets/{registry-BHDUu15I.js → registry-CnmuVlAA.js} +1 -1
- package/dist/assets/registry-CyPRooIp.css +1 -0
- package/dist/assets/registry-D5O0Ptw_.css +1 -0
- package/dist/assets/registry-DOctfuxc.js +1 -0
- package/dist/assets/{registry-BZuT2Epw.css → registry-DhWVSz_J.css} +1 -1
- package/dist/assets/{registry-BPLbZIVz.js → registry-OUL5YJry.js} +1 -1
- package/dist/assets/registry-brX673Dg.css +1 -0
- package/dist/assets/{registry-C4Yh05pk.js → registry-nCDSZOmZ.js} +1 -1
- package/dist/assets/registry-sT9NoG1k.css +1 -0
- package/dist/assets/registry-yzYj0SNk.css +1 -0
- package/dist/assets/{relate-CCma73G9.js → relate-ZHm-ZvaR.js} +1 -1
- package/dist/assets/{replay-dMDmsTaD.js → replay-DBeCo_vn.js} +1 -1
- package/dist/assets/select-CejTsgpx.js +3 -0
- package/dist/assets/shapes-BwXCYTlu.js +1 -0
- package/dist/assets/shard001-BrI-88cO.js +1 -0
- package/dist/assets/shard002-CVTdbXod.js +1 -0
- package/dist/assets/shard003-Bilw1tcB.js +1 -0
- package/dist/assets/shard004-Cq0Or-2a.js +1 -0
- package/dist/assets/shard005-Wh3WypcW.js +1 -0
- package/dist/assets/shard006-BAUUhTjB.js +1 -0
- package/dist/assets/shard007-DYMH8Yxn.js +1 -0
- package/dist/assets/shard008-DsrV7tH6.js +1 -0
- package/dist/assets/shard009-Bsf_hKwR.js +1 -0
- package/dist/assets/shard010-B5P3ny1k.js +1 -0
- package/dist/assets/shard011-BgeG9-or.js +1 -0
- package/dist/assets/shard012-BDkbj6cq.js +1 -0
- package/dist/assets/shard013-G23LG7Fa.js +1 -0
- package/dist/assets/shard014-CnDxCS2j.js +1 -0
- package/dist/assets/shard015-JvmiIIrG.js +1 -0
- package/dist/assets/shard016-BVcRKptB.js +1 -0
- package/dist/assets/shard017-DrpF6FaE.js +1 -0
- package/dist/assets/shard018-Bi11C9yu.js +1 -0
- package/dist/assets/shard019-QyeKtIb0.js +1 -0
- package/dist/assets/shard020-Djc1cf5i.js +1 -0
- package/dist/assets/shard021-D2RM4FCA.js +1 -0
- package/dist/assets/shard022-DRT0Qsp3.js +1 -0
- package/dist/assets/shard023-COM71H0n.js +1 -0
- package/dist/assets/shard024-DEnCOj6l.js +1 -0
- package/dist/assets/shard025-DHxYqsae.js +1 -0
- package/dist/assets/shard026-BIgdfcha.js +1 -0
- package/dist/assets/shard027-CvJzY_e0.js +1 -0
- package/dist/assets/shard028-57qhg2sc.js +1 -0
- package/dist/assets/shard029-Dx2Qnz9G.js +1 -0
- package/dist/assets/shard030-CtC4LpQR.js +1 -0
- package/dist/assets/shard031-jLIDhN2C.js +1 -0
- package/dist/assets/shard032-BDQTeOZV.js +1 -0
- package/dist/assets/shard033-955G5ec6.js +1 -0
- package/dist/assets/shard034-Bu3aEL9i.js +1 -0
- package/dist/assets/shard035-B2E-tzQZ.js +1 -0
- package/dist/assets/shard036-BEyPFMoV.js +1 -0
- package/dist/assets/shard037-CFQfstFa.js +1 -0
- package/dist/assets/shard038-C3QlFW5S.js +1 -0
- package/dist/assets/shard039-DFpQvV8e.js +1 -0
- package/dist/assets/shard040-I3SaNaKO.js +1 -0
- package/dist/assets/shard041-B1UVtmcS.js +1 -0
- package/dist/assets/shard042-DGJ4rHUt.js +1 -0
- package/dist/assets/shard043-BCie8K9U.js +1 -0
- package/dist/assets/shard044-DeFpPsR0.js +1 -0
- package/dist/assets/{shard043-BKoTEB-H.js → shard045-COwX5PHB.js} +1 -1
- package/dist/assets/shard046-CDOiSCGB.js +1 -0
- package/dist/assets/shard047-CuL2iVAe.js +1 -0
- package/dist/assets/shard048-B7z0WHO6.js +1 -0
- package/dist/assets/shard049-D1yDablJ.js +1 -0
- package/dist/assets/shard050-DJi3AgeT.js +1 -0
- package/dist/assets/shard051-D_2ipfUr.js +1 -0
- package/dist/assets/shard052-1aGgWZdd.js +1 -0
- package/dist/assets/shard053-Bjwa0Og4.js +1 -0
- package/dist/assets/shard054-Cx_GAk3v.js +1 -0
- package/dist/assets/shard055-LaeOD3V5.js +1 -0
- package/dist/assets/shard056-CAArZwW0.js +1 -0
- package/dist/assets/shard057-CM8eSRQk.js +1 -0
- package/dist/assets/shard058-QRpDl4Vs.js +1 -0
- package/dist/assets/shard059-DkY7CQm3.js +1 -0
- package/dist/assets/shard060-BVCgf7o0.js +1 -0
- package/dist/assets/shard061-93aGtdrX.js +1 -0
- package/dist/assets/shard062-rJE9X1_I.js +1 -0
- package/dist/assets/shard063-Co_V_D1g.js +1 -0
- package/dist/assets/{shard062-BJ8OX6CJ.js → shard064-C9A8iNiq.js} +1 -1
- package/dist/assets/shard065-CpmX_yt1.js +1 -0
- package/dist/assets/shard066-C_uen3Ub.js +1 -0
- package/dist/assets/shard067-Dl5k0N1Z.js +1 -0
- package/dist/assets/shard068-DLIIO7yh.js +1 -0
- package/dist/assets/shard069-D15zOFva.js +1 -0
- package/dist/assets/shard070-BwHL1JLg.js +1 -0
- package/dist/assets/shard071-BFQhwU3I.js +1 -0
- package/dist/assets/shard072-DC9v9Ysb.js +1 -0
- package/dist/assets/shard073-CicaGoa8.js +1 -0
- package/dist/assets/shard074-BvwBlB0R.js +1 -0
- package/dist/assets/shard075-BDKPICyR.js +1 -0
- package/dist/assets/shard076-COQxCeXV.js +1 -0
- package/dist/assets/{shard076-DZHs0uzd.js → shard076-b5-2mnEN.js} +1 -1
- package/dist/assets/shard077-DGa0bRNk.js +1 -0
- package/dist/assets/shard077-wv2mA5w5.js +1 -0
- package/dist/assets/shard078-CI97pFkb.js +1 -0
- package/dist/assets/shard078-D64eVQuV.js +1 -0
- package/dist/assets/{useDashboardLoop-Cnxmf7wU.js → useDashboardLoop-SPlr1Mrm.js} +3 -3
- package/dist/assets/{walkSync-D6leFb_u.js → walkSync-BtO3jsqQ.js} +1 -1
- package/dist/index.html +1 -1
- package/dist/legal/TERMS.md +9 -3
- package/package.json +1 -1
- package/dist/assets/DashboardLoopRuntime-BcdZtIgH.js +0 -1
- package/dist/assets/FallbackCard-ap_4wOfj.js +0 -1
- package/dist/assets/GalleryApp-7oBldBKU.js +0 -1
- package/dist/assets/GalleryApp-B1CB3_81.css +0 -1
- package/dist/assets/LiveApp-DNYYimuo.js +0 -79
- package/dist/assets/TopicCanvas-Cwc6-K3q.js +0 -2
- package/dist/assets/TopicCanvas-DWTm611H.css +0 -1
- package/dist/assets/canvas-CYrbzF43.js +0 -1
- package/dist/assets/catalog-CRekRbKO.js +0 -1
- package/dist/assets/facts-BUGuVUIc.js +0 -1
- package/dist/assets/liveSchema-Z_39HuDI.js +0 -125
- package/dist/assets/loader-Ciz6XbG-.js +0 -2
- package/dist/assets/notes-CEloxKQ3.js +0 -1
- package/dist/assets/registry-B5S3brjM.css +0 -1
- package/dist/assets/registry-BAoRB8rd.css +0 -1
- package/dist/assets/registry-B_wlsfxh.js +0 -1
- package/dist/assets/registry-BwlvYVHq.js +0 -2
- package/dist/assets/registry-BxkAuBx8.js +0 -1
- package/dist/assets/registry-C3ezxLR3.css +0 -1
- package/dist/assets/registry-CfIJ9dJS.js +0 -1
- package/dist/assets/registry-CwRTUk0R.js +0 -1
- package/dist/assets/registry-Dbe9TQPw.css +0 -1
- package/dist/assets/registry-S3j4OpCH.js +0 -1
- package/dist/assets/registry-YrewlFlo.js +0 -1
- package/dist/assets/registry-dmR14XnY.css +0 -1
- package/dist/assets/registry-twSIyxJQ.css +0 -1
- package/dist/assets/select-BuqyXI8k.js +0 -3
- package/dist/assets/shapes-BwoDrn09.js +0 -1
- package/dist/assets/shard001-gQEQs7_F.js +0 -1
- package/dist/assets/shard002-DbDas-W-.js +0 -1
- package/dist/assets/shard003-DxMszG4_.js +0 -1
- package/dist/assets/shard004-DZMpLBw1.js +0 -1
- package/dist/assets/shard005-Dp5TM33O.js +0 -1
- package/dist/assets/shard006-DpJfkjmW.js +0 -1
- package/dist/assets/shard007-CIQN8OfZ.js +0 -1
- package/dist/assets/shard008-BFiyL7r6.js +0 -1
- package/dist/assets/shard009-0s30Tkk9.js +0 -1
- package/dist/assets/shard010-DPhgF5ck.js +0 -1
- package/dist/assets/shard011-C2jVsC25.js +0 -1
- package/dist/assets/shard012-DYtN5yzJ.js +0 -1
- package/dist/assets/shard013-1D6_Qy9C.js +0 -1
- package/dist/assets/shard014-D8s7GHnm.js +0 -1
- package/dist/assets/shard015-16W6KgnL.js +0 -1
- package/dist/assets/shard016-B4PpWmro.js +0 -1
- package/dist/assets/shard017-BO1sA5b3.js +0 -1
- package/dist/assets/shard018-D4gn8z25.js +0 -1
- package/dist/assets/shard019-vSbfaqRA.js +0 -1
- package/dist/assets/shard020-DwbHP8bp.js +0 -1
- package/dist/assets/shard021-BhEyVVAL.js +0 -1
- package/dist/assets/shard022-BdT7zFy3.js +0 -1
- package/dist/assets/shard023-Dga_NQcm.js +0 -1
- package/dist/assets/shard024-CXHofcxc.js +0 -1
- package/dist/assets/shard025-a4CQKYw1.js +0 -1
- package/dist/assets/shard026-0rhLKfDL.js +0 -1
- package/dist/assets/shard027-C9GMfOtn.js +0 -1
- package/dist/assets/shard028-D9__rPnw.js +0 -1
- package/dist/assets/shard029-BSdYKGgG.js +0 -1
- package/dist/assets/shard030-DceOU7pS.js +0 -1
- package/dist/assets/shard031-C6_p076r.js +0 -1
- package/dist/assets/shard032-Cah16sJi.js +0 -1
- package/dist/assets/shard033-D-iobGzc.js +0 -1
- package/dist/assets/shard034-DIyfCKl8.js +0 -1
- package/dist/assets/shard035-BHWs8v0a.js +0 -1
- package/dist/assets/shard036-AhOPHqzq.js +0 -1
- package/dist/assets/shard037-CuAGDOOu.js +0 -1
- package/dist/assets/shard038-CYdtnPjK.js +0 -1
- package/dist/assets/shard039-DgvXKOyi.js +0 -1
- package/dist/assets/shard040-DO012waT.js +0 -1
- package/dist/assets/shard041-BeUicA1R.js +0 -1
- package/dist/assets/shard042-D2zbq14A.js +0 -1
- package/dist/assets/shard044-bmYKfH3A.js +0 -1
- package/dist/assets/shard045-i_R1olD9.js +0 -1
- package/dist/assets/shard046-CFk2L0GQ.js +0 -1
- package/dist/assets/shard047-pjHCnVaT.js +0 -1
- package/dist/assets/shard048-Cc7tGz6R.js +0 -1
- package/dist/assets/shard049-C9eoD-6Z.js +0 -1
- package/dist/assets/shard050-V3c_ZDrB.js +0 -1
- package/dist/assets/shard051-D1ISwZzf.js +0 -1
- package/dist/assets/shard052-Dy09xx3S.js +0 -1
- package/dist/assets/shard053-Bi4Z4cwW.js +0 -1
- package/dist/assets/shard054-CNzJxw2V.js +0 -1
- package/dist/assets/shard055-D2NJeMN1.js +0 -1
- package/dist/assets/shard056-sSFMbxXN.js +0 -1
- package/dist/assets/shard057-DhNK5nyZ.js +0 -1
- package/dist/assets/shard058-Du4SjxeD.js +0 -1
- package/dist/assets/shard059-fGiLnJzG.js +0 -1
- package/dist/assets/shard060-l84MDY2t.js +0 -1
- package/dist/assets/shard061-B3aIa7Aa.js +0 -1
- package/dist/assets/shard063-CMo-7Qit.js +0 -1
- package/dist/assets/shard064-B0EEOnfG.js +0 -1
- package/dist/assets/shard065-D-StlUHp.js +0 -1
- package/dist/assets/shard066-C2edvdvh.js +0 -1
- package/dist/assets/shard067-DFcuVhZm.js +0 -1
- package/dist/assets/shard068-BN8DM8JZ.js +0 -1
- package/dist/assets/shard069-i464K77p.js +0 -1
- package/dist/assets/shard070-BmNyRhxw.js +0 -1
- package/dist/assets/shard071-BPVvR8GH.js +0 -1
- package/dist/assets/shard072-Bal_0d9L.js +0 -1
- package/dist/assets/shard073-CBQu62kt.js +0 -1
- package/dist/assets/shard074-D5BRae0w.js +0 -1
- package/dist/assets/shard075-DtFvcBnZ.js +0 -1
- package/docs/media/go-hub.jpg +0 -0
- /package/dist/assets/{registry-Ci65uThi.js → registry-C4RNoF_2.js} +0 -0
- /package/dist/assets/{registry-Bjf2Ggs6.js → registry-CbKXa68-.js} +0 -0
- /package/dist/assets/{registry-Di1fTdpi.js → registry-Cdk7NOiD.js} +0 -0
|
@@ -1 +0,0 @@
|
|
|
1
|
-
var e={scatterplotmatrix:{blurb:`A scatterplot matrix (pairs plot): an NxN grid of small scatter plots, one per pair of variables, sharing each variable’s own real min/max whether it lands on a row or a column. Diagonal cells show the variable name instead of plotting it against itself. Use to eyeball correlations across MANY variables at once — never for just two, use scatterregression.`,optional:[`icon`,`iconColor`,`color`,`footer`],stringItems:[`vars`],propHints:{vars:`the variable names, in display order — every row/column of the grid`,rows:`one object per real observation, keyed by each name in vars to its numeric value`}},pictogramchart:{blurb:`A true icon-array (isotype) chart: the same 100-glyph grid as waffle, but each cell renders the category’s own icon instead of a plain color square, with a "1 glyph = N units" key. Use when the units being counted have a natural real-world glyph (people, votes, days, vehicles) — for a plain percentage breakdown with no meaningful per-unit icon, use waffle instead.`,optional:[`icon`,`iconColor`,`unitValue`,`footer`],itemShapes:[{prop:`categories`,text:`label`,textAliases:[`name`,`category`]}],propHints:{"categories[].icon":`an existing icon key, e.g. "sun"|"rain"|"walk"|"bus"|"car" — invalid keys fall back to a default glyph`,unitValue:`real units per glyph; omit to auto-fit the whole chart under 100 glyphs`}},qqplot:{blurb:`Quantile-quantile plot: sorts sample values and plots them against the theoretical quantiles of a reference distribution (default normal). The IQR-based reference line is drawn automatically. Points that hug the line indicate a good distributional fit; systematic deviations reveal skewness, heavy tails, or multimodality. Use for normality testing, residual diagnostics, and distribution comparison in statistics courses and data analysis.`,optional:[`distribution`,`xlabel`,`ylabel`],propHints:{values:`raw numeric sample data array — the component sorts and computes quantiles`,distribution:`"normal" (default, only option currently supported)`}},samplingdistribution:{blurb:`Central Limit Theorem demonstration — three linked panels: population histogram (top-left), a single sample dot strip (top-right), and the sampling distribution of sample means (bottom) with theoretical N(μ, σ²/n) overlay. Deterministic simulation (no Math.random) for stable renders.`,optional:[`title`,`icon`,`iconColor`,`population`,`sampleSize`,`numSamples`,`footer`],propHints:{"population.shape":`'uniform' | 'skewed' | 'bimodal' — default skewed`,sampleSize:`n per sample, default 30`,numSamples:`number of simulated samples, default 200`}},hrdiagram:{blurb:`A Hertzsprung–Russell diagram: stars on an inverted log temperature axis (hot O/B stars left, cool K/M right) against log luminosity in solar units, with spectral-class letters, soft bands for the main sequence / giants / supergiants / white dwarfs, and the Sun as a fixed reference at 5772 K, 1 L☉. Use for stellar classification and stellar evolution. Never for a generic two-variable scatter — use scatterregression.`,optional:[`icon`,`iconColor`,`showRegions`,`highlight`,`footer`],itemShapes:[{prop:`stars`,text:`name`,textAliases:[`label`,`star`]}],propHints:{"stars[].tempK":`surface temperature in Kelvin — must be > 0 (the axis is logarithmic)`,"stars[].luminosity":`luminosity in SOLAR units (Sun = 1), e.g. Betelgeuse ~126000, Proxima ~0.0017 — must be > 0`,"stars[].stage":`'main-sequence' | 'giant' | 'supergiant' | 'white-dwarf' — sizes and tints the dot; omit when unknown`,highlight:`name of ONE star (matching stars[].name) to ring and label persistently`,showRegions:`default true — the soft population bands carry most of the teaching value`}},ternaryplot:{blurb:`A ternary (barycentric) plot: three-part compositions inside an equilateral triangle, each point normalized by its own a+b+c sum so any raw scale works, with 20% gridlines parallel to every edge and optional translucent zone polygons (soil-texture classes, alloy phases, color mixes). Use when every observation is a three-component mixture of a whole. Never for a single part-to-whole breakdown — use piedonut.`,optional:[`icon`,`iconColor`,`zones`,`unit`,`footer`],itemShapes:[{prop:`points`,text:`label`,textAliases:[`name`,`sample`]},{prop:`zones`,text:`label`,textAliases:[`name`,`class`],children:{prop:`vertices`}}],propHints:{axes:`{ a, b, c } corner labels — a is the TOP apex, b bottom-left, c bottom-right`,"points[].a":`that point's amount of component a (same for b/c) — any scale; each point is normalized by its own a+b+c sum`,"zones[].vertices":`3+ {a,b,c} corners of a region polygon, normalized like points`,unit:`unit the raw values are in, e.g. "%" — appended to the corner labels`}},parliamentseats:{blurb:`A hemicycle parliament chart: one dot per seat packed into concentric arc rows, parties filling contiguous wedges left to right in array order, with a majority marker at the top-center aisle, a big center total, and clickable legend chips that isolate a party. Use for legislature/council/committee seat counts — real WHOLE seat numbers. Never for part-to-whole percentages — use piedonut/waffle.`,optional:[`icon`,`iconColor`,`totalLabel`,`footer`],itemShapes:[{prop:`parties`,text:`name`,textAliases:[`label`,`party`]}],propHints:{"parties[].seats":`whole number of seats won — a count, never a percentage`,totalLabel:`label under the big center total, defaults to "seats"`}},componentapi:{blurb:`A typed prop/contract reference — every prop of a component or function as a tidy table of name, type, required, default, and description.`,optional:[`icon`,`iconColor`,`footer`],itemShapes:[{prop:`props`,text:`name`,textAliases:[`prop`,`param`,`key`]}],propHints:{component:`the component or function name, e.g. "<Button>" or "fetchUser()"`,"props[].type":`the type signature, e.g. "string"|"() => void"|"'sm'|'md'|'lg'"`,"props[].required":`true if the prop must be supplied (marked in the table)`,"props[].default":`the default value shown verbatim when the prop is omitted`}}};export{e as D};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
var e={stacktrace:{blurb:`A formatted error + call stack — error type, message, per-frame file/line/context, root cause, and a plain-language fix.`,optional:[`icon`,`iconColor`,`frames`,`cause`,`fix`,`footer`],itemShapes:[{prop:`frames`,text:`file`,textAliases:[`filename`,`path`,`module`]}],propHints:{errorType:`e.g. "TypeError"|"ValueError"|"ReferenceError"`,"frames[].isUser":`true for app code, false for library/runtime frames`}},syntaxbreakdown:{blurb:`Annotated code — each line explained in plain English, with per-token labels for keywords, types, and operators.`,optional:[`icon`,`iconColor`,`summary`,`runnable`,`footer`],itemShapes:[{prop:`lines`,text:`code`,textAliases:[`line`,`source`,`text`]}],propHints:{"lines[].tokens[].kind":`'keyword'|'type'|'value'|'operator'|'identifier'|'comment'|'other'`,runnable:`true ONLY when every line together forms one complete dependency-free JavaScript/TypeScript snippet; fragments and code needing imports/DOM/server globals must omit it`}},codewalk:{blurb:`A step-by-step algorithm walkthrough — numbered steps each with a title, code snippet, and plain-English explanation.`,optional:[`icon`,`iconColor`,`algorithm`,`footer`],itemShapes:[{prop:`steps`,text:`title`,textAliases:[`name`,`heading`,`label`]}]},terminal:{blurb:`A realistic terminal session — prompt-prefixed commands with color-coded stdout/stderr and a final exit-code badge. Use for "run this", CLI/git/npm/docker walkthroughs.`,optional:[`title`,`icon`,`iconColor`,`prompt`,`exitCode`,`caption`,`footer`],itemShapes:[{prop:`lines`,text:`text`,textAliases:[`line`,`content`,`command`]}],propHints:{"lines[].kind":`'command'|'stdout'|'stderr'|'comment' (defaults to stdout)`,prompt:`the shell prompt shown before commands, e.g. "~/app %"`}},logstream:{blurb:`A severity-coded log feed — timestamp, level pill, source tag, message, with per-level volume chips you can filter by. Use for log analysis, incidents, and observability.`,optional:[`title`,`icon`,`iconColor`,`caption`,`footer`],itemShapes:[{prop:`entries`,text:`message`,textAliases:[`msg`,`text`,`line`]}],propHints:{"entries[].level":`'trace'|'debug'|'info'|'warn'|'error'|'fatal'`}},gitgraph:{blurb:"A git commit graph — branch lanes, merges, tags, and HEAD drawn like `git log --graph`. Use for explaining history, branching strategy, and merges.",optional:[`title`,`icon`,`iconColor`,`branches`,`caption`,`footer`],itemShapes:[{prop:`commits`,text:`message`,textAliases:[`subject`,`msg`,`title`]}],stringItems:[`branches`],propHints:{commits:`newest first (top); each needs id, message, branch`,"commits[].parents":`parent commit id(s) — two parents render as a merge`,"commits[].head":`true marks the current HEAD`}},queryplan:{blurb:`A database EXPLAIN plan as an indented operation tree — each node with rows, cost, and time, and the bottleneck flagged. Use for "why is this query slow".`,optional:[`title`,`icon`,`iconColor`,`sql`,`caption`,`footer`],itemShapes:[{prop:`nodes`,text:`op`,textAliases:[`operation`,`node`,`name`]}],propHints:{"nodes[].depth":`indent level, 0 = root; emit nodes in pre-order`,"nodes[].slow":`true on the bottleneck node`}},flamegraph:{blurb:`A CPU flame graph — width is time/samples, depth is the call stack, with the hot path highlighted. Use for profiling and "where is the time going".`,optional:[`title`,`icon`,`iconColor`,`unit`,`caption`,`footer`],itemShapes:[{prop:`frames`,text:`name`,textAliases:[`fn`,`function`,`label`]}],propHints:{frames:`DFS pre-order: a frame is immediately followed by its children; a parent value ≥ the sum of its children`,"frames[].depth":`stack depth, 0 = root`,"frames[].hot":`true marks the hot path`}}};export{e as D};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
var e={regexscope:{blurb:`A regular-expression explainer — the pattern broken into labeled, color-coded tokens, plus test strings with matched runs highlighted. Use for "explain this regex".`,optional:[`title`,`icon`,`iconColor`,`flags`,`samples`,`caption`,`footer`],itemShapes:[{prop:`parts`,text:`label`,textAliases:[`meaning`,`desc`,`explanation`]},{prop:`samples`,children:{prop:`segments`,text:`text`}}],propHints:{"parts[].kind":`'literal'|'class'|'quantifier'|'group'|'anchor'|'escape'|'other'`,"samples[].segments[].match":`true marks a matched run (highlighted)`}},sequencealign:{blurb:`A DNA/RNA/protein sequence alignment — stacked monospace reads with a pinned label column, gaps shown as dashes, optional per-column mismatch tinting, and a majority-consensus row computed from the real reads. Use for comparing reads, mutations/indels, or homologous sequences.`,optional:[`icon`,`iconColor`,`consensus`,`highlightMismatches`,`footer`],itemShapes:[{prop:`sequences`,text:`chars`,textAliases:[`sequence`,`seq`,`bases`,`residues`]}],propHints:{kind:`'dna'|'rna'|'protein' — which alphabet the reads use`,"sequences[].label":`a short read/sample/species name shown at the left of its row`,"sequences[].chars":`the aligned sequence itself; use '-' for a gap, same length across reads`,consensus:'any short label (e.g. "Consensus") to show a majority-vote row — the symbols shown are always computed from `sequences`, never taken from this string',highlightMismatches:`true tints any column where the reads disagree`}},voicestyle:{blurb:`Captures the user's personal writing voice as style-trait chips, then lands a before→after — the same line in a flat generic voice vs rewritten in the user's own voice (the rewrite is the emphasised payoff). For 'learn my voice / make it sound like me'.`,optional:[`icon`,`iconColor`,`footer`],itemShapes:[{prop:`traits`,text:`trait`,textAliases:[`name`,`label`,`style`]}],propHints:{sample:`{ generic: string, inYourVoice: string } — the SAME line, generic vs in-the-user's-voice`,"traits[].example":`optional short snippet showing the trait in action`,iconColor:`var(--presence)|var(--insight)|var(--warning)`}},messagedraft:{blurb:`A polished email or message draft with subject, recipient, body, and tone chip — ready to copy and send.`,optional:[`icon`,`iconColor`,`to`,`from`,`greeting`,`closing`,`signature`,`tone`,`footer`],propHints:{tone:`'formal'|'casual'|'friendly'|'professional'|'apologetic'|'assertive'`,iconColor:`var(--presence)|var(--insight)|var(--warning)`}},chatthread:{blurb:"A realistic chat bubble thread — existing text messages or IM-style conversation, rendered as user/assistant speech bubbles with names and timestamps. For a scripted theatrical exchange between named characters, use `dialogue` instead.",optional:[`icon`,`iconColor`,`participants`,`footer`],itemShapes:[{prop:`messages`,text:`text`,textAliases:[`content`,`body`,`message`],requiredFields:[`role`]}],propHints:{"messages[].status":`'sent'|'delivered'|'read'|'error'`,"messages[].role":`'user'|'assistant'|'system'|'other'`}},dialogue:{blurb:`A script-style exchange between two named characters — teacher/student, interviewer/candidate, doctor/patient — alternating spoken lines with optional context header. Use for any "write a dialogue/conversation between X and Y" ask.`,optional:[`icon`,`iconColor`,`context`,`footer`],itemShapes:[{prop:`lines`,text:`text`,textAliases:[`content`,`dialogue`,`line`]}]},variants:{blurb:`Several SHORT versions of the same line, stacked so they can be compared at a glance — A/B subject lines, three taglines, alternative sign-offs, a formal vs casual opener — each numbered with a label and optional note. Reach for it when the ask is "write N versions/variants/alternatives" AND each version runs a line or two. Never for multi-paragraph rewrites, where a stack of them is a wall of text — use variantswitch for those, ideaboard for a spread of different ideas rather than rewrites of one line.`,optional:[`icon`,`iconColor`,`prompt`,`footer`],itemShapes:[{prop:`variants`,text:`text`,textAliases:[`content`,`body`,`value`]}]},verse:{blurb:`A poem, song lyrics, or any stanza-structured literary text — with per-line indent, stanza labels, and form note.`,optional:[`icon`,`iconColor`,`form`,`footer`]}};export{e as D};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
var e={slidedeck:{blurb:`A presentation outline — one card per slide with title, bullets, speaker notes, and layout hint.`,optional:[`icon`,`iconColor`,`footer`],itemShapes:[{prop:`slides`,text:`title`,textAliases:[`name`,`heading`,`label`]}],propHints:{"slides[].layout":`'title'|'content'|'quote'|'image'`}},screenplay:{blurb:`A scene typed in industry-standard screenplay format — sluglines (INT./EXT.), action, centred character cues, parentheticals, indented dialogue, and right-aligned transitions, in monospace. Use for any "write a screenplay/script scene" or "format this as a screenplay" ask.`,optional:[`title`,`icon`,`iconColor`,`caption`,`footer`],itemShapes:[{prop:`elements`,text:`text`,textAliases:[`line`,`content`]}],propHints:{"elements[].kind":`'slug'|'action'|'character'|'parenthetical'|'dialogue'|'transition'`}},socialpost:{blurb:`A platform post preview — avatar, handle, and body rendered as X/LinkedIn/Instagram/Threads chrome, with a live character-count readout against that platform's limit. Use for "draft a tweet/post" or "write my LinkedIn update".`,optional:[`icon`,`iconColor`,`displayName`,`avatarInitial`,`timestamp`,`media`,`footer`],itemShapes:[{prop:`media`,text:`alt`,textAliases:[`caption`,`description`,`label`]}],propHints:{platform:`'x'|'linkedin'|'instagram'|'threads'|'generic'`,timestamp:`short relative or absolute label, e.g. '2h' or 'Jul 2'`,iconColor:`var(--presence)|var(--insight)|var(--warning)`}},longread:{blurb:`Write it out in full — an essay, article, blog post, speech, cover letter, personal statement, or wedding toast, and any 400–1500-word connected answer meant to be read start to finish rather than skimmed as cards. Typesets prose the way prose wants to be read: an optional standfirst, headed sections on a light reading spine at a real ~66-character measure, the reading time, and a copy-out for the whole piece (or one per section). It renders no filename, page number, or paper chrome, so the words never imply they came out of a file; that framing is what makes docview the wrong block for writing Mavéa produced herself. Reach for storystructure only when the ask is specifically inverted-pyramid news.`,optional:[`icon`,`iconColor`,`standfirst`,`readingTime`,`copySections`,`footer`],propHints:{"sections[].heading":`optional — omit to continue the previous section with no new heading; a section with a heading gets a marker on the spine`,"sections[].paragraphs":`the section body as plain-text paragraphs, one string each, ~60–140 words apiece — no HTML and no markdown`,standfirst:`optional opening sentence or two that sets the piece up, set larger above the body`,readingTime:`optional minutes to read — derived from the word count when omitted`,copySections:`optional true to add a copy button beside every section heading`,iconColor:`var(--presence)|var(--insight)|var(--warning)`},contentBudget:{fields:{standfirst:{maxGraphemes:320,maxLines:4},sections:{maxItems:20},"sections[].paragraphs":{maxItems:20},"sections[].paragraphs[]":{maxGraphemes:1600,maxLines:12}}}},ideaboard:{blurb:`A deliberately UNRANKED spread of ideas for a brainstorm — "give me ideas", "what should I name this", "what could I do about X". Each idea is a short label with an optional one-line note, grouped into equal-weight angles/lenses (e.g. "Safe", "Bold", "Left-field") a reader can scan for breadth; ideas with no angle form one flat spread. Nothing is numbered, scored, or crowned — reach for picks/tierlist/quadrant when the answer IS a recommendation, and variants when the options are short rewrites of the SAME line rather than different ideas.`,optional:[`icon`,`iconColor`,`ask`,`footer`],itemShapes:[{prop:`ideas`,text:`label`,textAliases:[`idea`,`text`,`name`,`title`]}],propHints:{"ideas[].angle":`optional lens this idea belongs to, e.g. "Safe" | "Bold" | "Left-field" — ideas sharing an angle group together in first-appearance order; omit it throughout for a flat spread`,"ideas[].note":`optional single line on what the idea would look like — never a reason it beats the others`,ask:`optional — the brainstorm question these ideas answer, quoted above the spread`,iconColor:`var(--presence)|var(--insight)|var(--warning)`},contentBudget:{fields:{ideas:{maxItems:24},"ideas[].note":{maxGraphemes:140,maxLines:2}}}},insight:{blurb:`A headline number with optional delta and confidence — the primary insight unit.`,optional:[`summary`,`stat`,`delta`,`deltaDir`,`conf`,`sources`]},chart:{blurb:`Time-series trend chart with multiple series, areas, and optional axes.`,optional:[`unit`,`footer`,`conf`]},breakdown:{blurb:`A split of parts with percentages, values, tags, and heat indicators.`,optional:[`icon`,`iconColor`,`conf`]}};export{e as D};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
var e={timeline:{blurb:`Ordered steps or events with times, tags, and colors.`,optional:[`eyebrow`,`title`,`footer`]},list:{blurb:`A title with bullet points, tips, or plain-text items.`,optional:[`icon`,`iconColor`]},compare:{blurb:`Side-by-side options scored against criteria with a pick state and recommendation.`,optional:[`eyebrow`,`recommendation`]},ring:{blurb:`Concentric rings showing completion, health, or multi-metric progress.`,optional:[`icon`,`iconColor`,`footer`]},bars:{blurb:`Vertical bars with optional goal line and heat indicators.`,optional:[`icon`,`iconColor`,`unit`,`goal`,`goalLabel`,`footer`,`conf`]},stack:{blurb:`A horizontal bar split into colored segments with labels and totals.`,optional:[`icon`,`iconColor`,`total`,`footer`,`conf`]},scatter:{blurb:`X/Y point cloud with optional domains, trend line, and heat.`,optional:[`icon`,`iconColor`,`xLabel`,`yLabel`,`xDomain`,`yDomain`,`trend`,`footer`]},heat:{blurb:`A 2D grid of heat-colored cells with row/column headers and optional marks.`,optional:[`icon`,`iconColor`,`cols`,`levelColor`,`legend`,`footer`]}};export{e as D};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
var e={flow:{blurb:`A process or funnel with sequential steps, subtitles, and colors.`,optional:[`icon`,`iconColor`,`footer`]},web:{blurb:`Search results with titles, domains, excerpts, and optional live refresh.`,optional:[`title`,`live`,`footer`]},gallery:{blurb:`A grid of images with captions, tags, and optional headers.`,optional:[`title`,`eyebrow`,`footer`]},codemap:{blurb:`A central concept with related code nodes, notes, and heat.`,optional:[`title`,`footer`]},diff:{blurb:`A code diff with add/del counts and highlighted lines.`,optional:[`title`,`footer`]},checks:{blurb:`Test or validation results with pass/fail/skip status and notes.`,optional:[`title`,`summary`,`footer`]},donut:{blurb:`A pie or donut split into colored wedges with percentages.`,optional:[`icon`,`iconColor`,`size`,`thickness`,`footer`,`conf`]},gauge:{blurb:`A radial dial showing progress, NPS, or readiness with optional driver text.`,optional:[`icon`,`iconColor`,`max`,`size`,`color`,`band`,`driver`,`footer`,`conf`]}};export{e as D};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
var e={scoreboard:{blurb:`Sports game scores with away/home teams, status, and heat.`,optional:[`title`,`icon`,`iconColor`,`footer`]},standings:{blurb:`A league table with team, record, and games-behind columns.`,optional:[`title`,`icon`,`iconColor`,`footer`]},pipeline:{blurb:`A deal funnel or stage breakdown with volumes and optional metrics.`,optional:[`title`,`icon`,`iconColor`,`headline`,`sub`,`unit`,`suffix`,`footer`]},kpi:{blurb:`A grid of labeled stat cards (facts, metrics, values).`,optional:[`icon`,`iconColor`,`cols`,`footer`,`conf`],propHints:{"kpis[].trend":`'up'|'down'|'flat'|'none'`,"kpis[].status":`'good'|'warn'|'bad'|'neutral'`}},quotes:{blurb:`Customer testimonials or quotes with attribution and tone.`,optional:[`title`,`icon`,`iconColor`,`footer`]},checklist:{blurb:`A progress checklist with done/doing/todo items.`,optional:[`title`,`icon`,`iconColor`,`footer`]},understand:{blurb:`Cited learning points that users can correct, with confidence.`,optional:[`title`,`conf`,`footer`]},schema:{blurb:`An ER diagram showing entities, fields, and relationships.`,optional:[`title`,`relations`,`footer`]}};export{e as D};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
var e={screenmap:{blurb:`Wireframe thumbnails of generated screens (dashboard, table, detail, etc).`,optional:[`title`,`footer`]},buildprog:{blurb:`Build or creation steps with status and explanatory subtitles.`,optional:[`title`,`footer`]},preview:{blurb:`A live, clickable app the AI built—shows dashboard, table, board, and activity views.`,optional:[`seededFrom`,`groupColumns`,`pipelineLabel`,`agg`,`createdNote`,`activities`,`footer`]},diagramflow:{blurb:`Freeform diagram for processes, state machines, feedback loops, concept maps. nodes:[{id,label,sub?,kind?}], edges:[{from,to,label?,dashed?}] referencing node ids; layout:cycle|layered|free.`,optional:[`icon`,`iconColor`,`layout`,`footer`],propHints:{layout:`'cycle'|'layered'|'free'`,"nodes[].kind":`'default'|'start'|'accent'|'good'|'warn'|'muted' (drives the node's color)`,"edges[].kind":`'default'|'accent'|'good'|'warn'|'muted' (drives the link's color)`}},composite:{blurb:`Compose a NEW layout from 2+ existing blocks side by side when nothing single fits. regions:[{block:{type,props}, span?(1-12)}] — each block is any other type (chart, kpi, compare, …).`,optional:[`icon`,`iconColor`,`footer`]},sequencediagram:{blurb:`UML-style sequence diagram; actors exchange labelled messages with optional return arrows.`,optional:[`icon`,`iconColor`,`footer`],itemShapes:[{prop:`actors`,text:`label`,textAliases:[`name`,`participant`,`title`]}],propHints:{"messages[].reply":`true for a dashed return arrow`,"messages[].self":`true for a self-call loop`}},statemachine:{blurb:`Directed-graph state machine; nodes are states, edges are transitions with trigger labels.`,optional:[`icon`,`iconColor`,`footer`],itemShapes:[{prop:`states`,text:`label`,textAliases:[`name`,`state`,`title`]}],propHints:{"states[].start":`true to mark the entry state`,"states[].final":`true to mark an accepting/terminal state`}},erdiagram:{blurb:`Entity-relationship diagram; tables as boxes with typed fields, lines show cardinality.`,optional:[`icon`,`iconColor`,`footer`],itemShapes:[{prop:`entities`,text:`label`,textAliases:[`name`,`table`,`entity`]}],propHints:{"entities[].fields[].key":`'pk'|'fk'`,"relationships[].fromCard":`'1'|'many'`,"relationships[].toCard":`'1'|'many'`}}};export{e as D};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
var e={circuitdiagram:{blurb:`Schematic circuit diagram with resistors, capacitors, voltage sources, and wire routing.`,optional:[`icon`,`iconColor`,`footer`],itemShapes:[{prop:`components`,text:`label`,textAliases:[`name`,`id`,`value`]}],propHints:{"components[].kind":`'battery'|'resistor'|'capacitor'|'bulb'|'switch'|'ground'|'node'`,"components[].x":`position 0..100 on the canvas`,"components[].y":`position 0..100 on the canvas`}},controlblockdiagram:{blurb:`A control-systems block diagram: transfer-function blocks as labeled rectangles joined by directional signal wires, with a summing junction drawn as a small +/- circle. Blocks auto-place left-to-right by graph order when x/y are omitted; a wire marked feedback routes as a rectangular loop back to an earlier block. Use for "draw the PID control loop", "block diagram of a thermostat", closed-loop transfer functions, feedback-control coursework.`,optional:[`icon`,`iconColor`,`footer`],itemShapes:[{prop:`blocks`,text:`label`,textAliases:[`name`,`id`]}],propHints:{"blocks[].kind":`'block'|'sum' — 'block' is a labeled transfer-function rectangle, 'sum' is a summing junction`,"blocks[].x":`optional position 0..100; omit both x and y to auto-place left-to-right`,"blocks[].y":`optional position 0..100; omit both x and y to auto-place left-to-right`,"wires[].sign":"'plus'|'minus' — only meaningful when the wire's `to` is a sum block; default plus","wires[].feedback":`true to route this wire as a rectangular loop back to an earlier block, instead of a straight line`}},fiveforces:{blurb:`Porter's Five Forces: a central Industry Rivalry hub with four satellite forces (new entrants, suppliers, buyers, substitutes) ringed around it; connector thickness and color track each force's rated strength. Use for a competitive-strategy analysis, "should we enter this market", an industry-structure teardown.`,optional:[`icon`,`iconColor`,`footer`],itemShapes:[{prop:`forces`,text:`label`,textAliases:[`name`,`force`,`title`]}],propHints:{"forces[].id":`'rivalry'|'newEntrants'|'suppliers'|'buyers'|'substitutes' — exactly one of each`,"forces[].strength":`'low'|'medium'|'high'`,"forces[].note":`a short line of supporting context, shown under the label`}},fivewhychain:{blurb:`A 5-Whys root-cause chain: a problem card, then a vertical stack of why→answer cards drilling one level deeper each step, ending on an accent-highlighted root cause. Use for an incident postmortem, a root-cause investigation, "why did this actually happen".`,optional:[`icon`,`iconColor`,`rootCause`,`footer`],itemShapes:[{prop:`whys`,text:`answer`,textAliases:[`text`,`reason`,`because`]}],propHints:{"whys[].question":`the "why" question this step asks, e.g. "Why did the build fail?"`,rootCause:`an explicit closing statement appended as its own card; omit to highlight the last why instead`}},sysarchdiagram:{blurb:`A system-design whiteboard diagram: each node kind is a distinct SHAPE, not just a color — database is a cylinder, queue is a stacked rectangle, cache is a rounded diamond, loadbalancer is a hexagon; client/service/gateway/cdn share a rounded-rectangle silhouette told apart by a small inline icon. Auto-laid-out left-to-right by the edge graph. Use for "draw the system architecture", "whiteboard this design", a load-balanced web service, a CQRS/event pipeline, a CDN-fronted API, system-design-interview walkthroughs.`,optional:[`icon`,`iconColor`,`footer`],itemShapes:[{prop:`nodes`,text:`label`,textAliases:[`name`,`id`]}],propHints:{"nodes[].kind":`'client'|'loadbalancer'|'service'|'database'|'cache'|'queue'|'gateway'|'cdn'`,"nodes[].sub":`optional second line — an instance count, a tech name, a region`,"edges[].label":`what the connection does, e.g. "writes", "cache-aside"`,"edges[].protocol":`the wire protocol, e.g. "HTTPS", "gRPC", "TCP:5432"`}},datapipeline:{blurb:`An ETL/data-pipeline lineage diagram: offline batch data flow from a source through transform steps to a sink or intermediate store, each drawn as a distinct shape — source is a rounded rectangle with an inbound-arrow glyph, transform is a hexagon, sink/store share a database-cylinder silhouette told apart by a small icon. Auto-laid-out left-to-right by the edge graph. Distinct from sysarchdiagram (a live request/response service architecture) — this is where data comes from and what happens to it on the way to rest. Use for "draw the ETL pipeline", "how does data flow from raw logs to the feature store", a training-data pipeline, an ELT/batch-ingestion diagram.`,optional:[`icon`,`iconColor`,`footer`],itemShapes:[{prop:`stages`,text:`label`,textAliases:[`name`,`id`]}],propHints:{"stages[].kind":`'source'|'transform'|'sink'|'store'`,"stages[].sub":`optional second line — a tech name, a cadence, a row count`,"edges[].label":`what happens on this hop, e.g. "dedup", "join labels", "batch insert"`}},threatmodel:{blurb:`A STRIDE cybersecurity threat model: dashed trust-boundary rects host labeled asset chips (process/datastore/external-entity), a small marker on each threatened asset is red for an open threat and muted for a mitigated one, and a full threat register lists every entry below. Use for a system security review, "what could go wrong with this design", an architecture threat-model writeup.`,optional:[`icon`,`iconColor`,`boundaries`,`footer`],itemShapes:[{prop:`assets`,text:`name`,textAliases:[`label`,`title`]},{prop:`boundaries`,text:`label`,textAliases:[`name`,`title`]}],propHints:{"assets[].kind":`'process'|'datastore'|'external-entity'`,"boundaries[].contains":`asset ids hosted inside this trust boundary`,"threats[].assetId":`the id of the asset this threat targets`,"threats[].stride":`'spoofing'|'tampering'|'repudiation'|'info-disclosure'|'dos'|'elevation'`,"threats[].status":`'mitigated'|'open' — missing/unrecognized reads as open`}},foodweb:{blurb:`An ecological food web: organisms sit in horizontal tier bands (lowest trophic level at the bottom), joined by curved arrows from prey to predator. Distinct from pyramidtiers (an abstract biomass/energy pyramid with no individual organisms) — this is the actual who-eats-whom graph. Use for a food chain / food web diagram, an ecosystem teardown, "what eats what here".`,optional:[`icon`,`iconColor`,`footer`],itemShapes:[{prop:`organisms`,text:`label`,textAliases:[`name`,`species`]}],stringItems:[`tiers`],propHints:{tiers:`tier names, lowest trophic level first, e.g. ["Producers", "Primary consumers", "Apex predators"]`,"organisms[].tier":`index into tiers, 0 = lowest`,"links[].from":`prey organism id — the arrow starts here`,"links[].to":`predator organism id — the arrow points here`}}};export{e as D};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
var e={recursiontree:{blurb:`A call-stack / recursion tree: a single root call fans out into its own recursive children (n-ary, tidy top-down layout, never overlapping). Each node shows its call signature; once resolved, a small corner badge shows the returned value. Classic use: naive recursive fibonacci, factorial, the call tree behind a memo table.`,optional:[`icon`,`iconColor`,`footer`],propHints:{"root.call":`the call signature, e.g. "fib(4)"`,"root.result":`the value this call returned, once resolved; omit while still open`,"root.children":`this call's own recursive calls, in call order; omit/empty for a base case`}},primefactortree:{blurb:`A prime-factorization tree: a non-prime number splits into its factors, recursively, until every leaf is prime (a prime leaf gets a colored ring); tidy top-down layout, never overlapping. The full factorization line under the tree is computed from the leaves themselves. Use for teaching factor trees, "factor this number", a number-theory walkthrough.`,optional:[`icon`,`iconColor`,`footer`],propHints:{nodes:`a one-element array holding the root PrimeFactorNode: { value, isPrime, children? }`,"nodes[].children":`this non-prime value's factor pair (or more); omit/empty once value is prime`}},nnarchitecture:{blurb:`A layered neural-network diagram: one column of nodes per layer, edges drawn only between adjacent layers (dense or a lighter sparse band). A wide layer is capped at a readable visual maximum with a "+N more" indicator rather than one dot per unit. An optional single-unit highlight traces what feeds it and what it feeds forward. Use for "draw a 3-layer MLP", "what does this network architecture look like", explaining forward pass and layer width.`,optional:[`icon`,`iconColor`,`connections`,`highlight`,`footer`],itemShapes:[{prop:`layers`,text:`name`,textAliases:[`label`,`id`]}],propHints:{"layers[].units":`unit count for that layer; very wide layers are capped visually, never rendered one dot per unit`,"layers[].activation":`e.g. "ReLU", "softmax" — shown under the layer`,connections:`'dense'|'sparse' — dense connects every visible node to every next-layer node, sparse a lighter local band. Default dense.`,"highlight.layer":`0-based index into layers`,"highlight.unit":`0-based index into that layer's units`}},synthesisroute:{blurb:`A multi-step chemical synthesis route: compound nodes auto-laid-out left-to-right by graph rank, supporting real branching — several precursors converging into one product, or one intermediate fanning out into several targets — which a single linear reaction-mechanism block cannot express. Each arrow carries its reagents/conditions above and a yield percentage below; a retrosynthetic disconnection (direction retro) draws as a dashed hollow arrow. Use for a total-synthesis route, a convergent synthesis, retrosynthetic analysis.`,optional:[`icon`,`iconColor`,`footer`],itemShapes:[{prop:`nodes`,text:`label`,textAliases:[`name`,`compound`,`formula`]}],propHints:{"nodes[].label":`compound name or formula; plain text (SVG), use unicode subscripts like "C₆H₆" rather than HTML markup`,"nodes[].smiles":`optional SMILES string, shown as a small line under the label`,"nodes[].role":`'start'|'intermediate'|'target'`,"edges[].reagents":`reagent(s) driving this step, e.g. "PhMgBr" — shown above the arrow`,"edges[].conditions":`e.g. "THF, 0°C" — shown above the arrow alongside reagents`,"edges[].yieldPct":`isolated yield for this step, 0..100 — shown below the arrow`,"edges[].direction":`'forward'|'retro' — retro draws a dashed hollow arrow FROM the target TO its precursor (a retrosynthetic disconnection); from/to follow that reasoning direction, the reverse of a forward precursor→product step. Default forward.`}},plasmidmap:{blurb:`A circular plasmid vector map: the backbone is a ring where base position maps to angle (0 bp at 12 o'clock, clockwise); genes/promoters/terminators/markers draw as colored arcs along their bp span with an optional strand arrow, restriction sites are radial tick+enzyme-name marks, and the origin of replication gets a distinct marker. Use for a cloning vector, an expression plasmid, "map this plasmid", restriction-digest planning.`,optional:[`icon`,`iconColor`,`origin`,`footer`],itemShapes:[{prop:`features`,text:`name`},{prop:`sites`,text:`name`,textAliases:[`enzyme`]}],propHints:{sizeBp:`total plasmid length in base pairs`,"features[].startBp":`base-pair position this feature starts at, 0..sizeBp`,"features[].endBp":`base-pair position this feature ends at; wraps if it crosses bp 0`,"features[].kind":`'gene'|'promoter'|'terminator'|'marker'`,"features[].strand":`'plus'|'minus' — draws a small directional arrowhead; omit for none`,"sites[].posBp":`base-pair position of the restriction site`,"sites[].cutsOnce":`true for a unique (single-cut) site`,"origin.posBp":`base-pair position of the origin of replication`}},argumentmap:{blurb:`An argument map — a central claim with supporting premises, objections, and qualifiers. Use for "analyze this argument", "pros and cons", policy debates, or Socratic dialogue.`,optional:[`icon`,`iconColor`,`verdict`,`footer`],itemShapes:[{prop:`premises`,text:`text`,textAliases:[`premise`,`point`,`reason`]}],propHints:{"premises[].type":`"support"|"objection"|"qualifier"`}},toulmin:{blurb:`A Toulmin argument diagram — the six roles of a full argument: Claim, Grounds (evidence), Warrant (the link), Backing (support for the warrant), Qualifier (degree of certainty), Rebuttal (the exception). Use for "break this argument down with the Toulmin model", "what are the grounds and warrant here?". Reads Grounds → Warrant/Backing → (Qualifier) Claim, with the Rebuttal branching off. Prefer over argumentmap only when the ask names the Toulmin roles.`,optional:[`title`,`icon`,`iconColor`,`backing`,`qualifier`,`rebuttal`,`footer`],propHints:{claim:`the conclusion the argument tries to establish`,grounds:`the data / evidence the claim rests on`,warrant:`the general principle linking the grounds to the claim ("since …")`,backing:`optional support for the warrant itself ("on account of …")`,qualifier:`optional degree of certainty, e.g. "presumably", "almost certainly"`,rebuttal:`optional condition under which the claim would NOT hold ("unless …")`}},castmap:{blurb:`A character / relationship map — people (or entities) as nodes on a ring, joined by typed, labeled edges (ally, rival, family, love, mentor, betrays). Use for a novel or show cast, factions and alliances, an org or stakeholder web. Unlike a plain network, the edge KIND drives the color and factions tint and cluster the nodes.`,optional:[`title`,`icon`,`iconColor`,`caption`,`footer`],itemShapes:[{prop:`nodes`,text:`name`,textAliases:[`label`,`character`,`person`]}],propHints:{"nodes[].id":`stable id the links reference`,"nodes[].role":`optional one-line role/title under the name, e.g. "protagonist"`,"nodes[].faction":`optional group/side name; same-faction nodes share a tint and cluster on the ring`,"links[].kind":`'ally'|'rival'|'family'|'love'|'mentor'|'betrays'|'other' (drives the edge color; mentor/betrays are drawn directed)`,"links[].label":`optional short relationship word drawn on the edge, e.g. "married", "rivals"`,links:`from/to reference node ids; an edge to a missing id is dropped`}}};export{e as D};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
var e={probabilitytree:{blurb:`A branching probability tree for sequential events. Shows each branch with its probability and computed leaf outcomes. Use for genetics, decision analysis, conditional probability, and Bayesian reasoning.`,optional:[`icon`,`iconColor`,`note`],propHints:{"branches[].label":`first-level event label, e.g. "Heads"`,"branches[].prob":`probability 0–1, e.g. 0.5`,"branches[].children":`array of {label, prob, outcome?} leaf nodes`}},datastructure:{blurb:`CS data-structure diagram: arrays/linked lists/stacks/queues as cells, or a binary tree/BST/heap laid out from the data. Pick for "show me a BST", "how a queue works", algorithm walkthroughs.`,optional:[`icon`,`iconColor`,`cells`,`nodes`,`level`,`pointers`,`highlight`,`footer`],itemShapes:[{prop:`nodes`,text:`value`,textAliases:[`val`,`key`,`label`]}],propHints:{kind:`'array'|'linkedlist'|'stack'|'queue'|'tree'|'bst'|'heap'`,cells:`ordered values for linear kinds; stack index 0 = bottom, queue index 0 = front`,"nodes[]":`{id, value, left?, right?} for tree/bst/heap; left/right reference child ids`,level:`level-order array form of a binary tree (2i+1 / 2i+2 are children; null = hole)`,"pointers[]":`{index, label} markers above array cells, e.g. {index:2,label:"i"}`,highlight:`index (linear) or node id (tree) of the element to spotlight`}},causationchain:{blurb:`A causation chain — multiple causes → a central event → multiple consequences, read left→right, with short-term vs long-term grouping and connectors weighted by strength. Use for the causes & effects of a historical event/war/revolution, root-cause analysis, or policy impact. Unlike a generic node/edge flow graph, this is specifically the cause→event→effect shape.`,optional:[`icon`,`iconColor`,`causesLabel`,`consequencesLabel`,`footer`],itemShapes:[{prop:`causes`,text:`label`,textAliases:[`cause`,`factor`,`driver`,`name`]},{prop:`consequences`,text:`label`,textAliases:[`consequence`,`effect`,`result`,`name`]}],propHints:{"event.label":`the pivotal central event everything points to / flows from`,"causes[].weight":`relative strength 0..1 (thicker, more opaque connector); default 0.5`,"causes[].term":`"short"|"long" — short- vs long-term horizon; omit if unclassified`,"consequences[].weight":`relative strength 0..1; default 0.5`,"consequences[].term":`"short"|"long"; omit if unclassified`}},protocolstack:{blurb:`Layered network/protocol stack (OSI / TCP-IP) beside a packet-encapsulation view; layers carry protocol chips, headers nest around the payload.`,optional:[`title`,`icon`,`iconColor`,`packet`,`caption`,`footer`],itemShapes:[{prop:`layers`,text:`name`,textAliases:[`label`,`layer`,`title`]},{prop:`packet`,text:`header`,textAliases:[`label`,`name`,`segment`]}],propHints:{layers:`top of the array = top of the model (Application); last = link/physical`,"layers[].protocols":`array of protocol/standard names rendered as chips, e.g. ["HTTP","DNS"]`,packet:`encapsulation headers, OUTERMOST first → innermost payload last, e.g. Ethernet, IP, TCP, HTTP, Data`,"packet[].layer":`matches a layers[].name so hovering a band lights its header`}},wiringdiagram:{blurb:`Residential/automotive one-line wiring diagram drawn with real trade symbols (breaker, switch, 3-way, GFCI, outlet, light, panel); wires are color-coded by conductor (hot/neutral/ground/traveler) with gauge labels. Auto-laid out on a grid when x/y are omitted. Use for wiring a circuit, a 3-way switch loop, a GFCI-protected outlet, a service-panel one-line.`,optional:[`title`,`icon`,`iconColor`,`caption`,`footer`],itemShapes:[{prop:`nodes`,text:`label`,textAliases:[`name`,`id`,`device`]}],propHints:{"nodes[].kind":`'breaker'|'switch'|'switch3way'|'outlet'|'gfci'|'light'|'panel'|'motor'|'ground'|'junction'`,"nodes[].x":`optional position 0..100 on the canvas; omit to auto-grid`,"nodes[].y":`optional position 0..100 on the canvas; omit to auto-grid`,"wires[].conductor":`'hot'|'neutral'|'ground'|'traveler' — colors the run (default 'hot')`,"wires[].gauge":`wire gauge label, e.g. "12 AWG"`}},pipingschematic:{blurb:`P&ID-lite piping/HVAC/hydraulic flow schematic; standard process glyphs (tank, pump, valve, heater, filter, instrument, fitting) joined by routed lines with optional flow-direction arrows and line-size labels. Auto-laid out on a grid when coords are absent. Use for a heating loop, a pump-and-filter circuit, a closed-loop HVAC diagram.`,optional:[`title`,`icon`,`iconColor`,`caption`,`footer`],itemShapes:[{prop:`components`,text:`label`,textAliases:[`name`,`id`,`tag`]}],propHints:{"components[].kind":`'pipe'|'valve'|'pump'|'tank'|'heater'|'filter'|'fitting'|'sensor'`,"components[].x":`optional position 0..100; omit to auto-grid`,"components[].y":`optional position 0..100; omit to auto-grid`,"lines[].flow":"true to draw a flow-direction arrowhead toward `to`","lines[].size":`line-size label, e.g. "DN50" or 2 inch`}},logicgates:{blurb:`Digital-logic circuit of standard gate symbols (AND/OR/NOT/NAND/NOR/XOR/XNOR) wired input to output; signal values are shown on wires (green=1, muted=0) and an optional adjacent truth table highlights the live input row. Gate outputs are evaluated from the inputs. Use for a half-adder, a multiplexer from gates, explaining XOR/NAND.`,optional:[`title`,`icon`,`iconColor`,`output`,`truth`,`caption`,`footer`],itemShapes:[{prop:`inputs`,text:`label`,textAliases:[`name`,`id`,`signal`]}],propHints:{"inputs[].value":`0|1 — current logic level on this input (default 0)`,"gates[].kind":`'AND'|'OR'|'NOT'|'NAND'|'NOR'|'XOR'|'XNOR'`,"gates[].inputs":`array of source ids (each an input id or another gate id)`,"output.from":`the gate or input id wired to the output pin`,truth:`optional rows: { row:[0,1,...] in inputs order, out:0|1 }`}},algorithmtrace:{blurb:`Interactive step-through of an algorithm over an array; a prev/next stepper recolors highlighted/compared/swapped cells and draws labeled pointer carets (i, j, lo, hi) under cells with a per-step caption. Use for tracing bubble sort, binary search, two-pointer walks, an algorithm walkthrough.`,optional:[`title`,`icon`,`iconColor`,`caption`,`footer`],itemShapes:[{prop:`steps`,text:`caption`,textAliases:[`label`,`description`,`note`]}],propHints:{values:`the array the algorithm runs over (numbers or short strings)`,complexity:`'o-1'|'o-logn'|'o-n'|'o-nlogn'|'o-n2'|'o-2n' — time-complexity badge shown next to the title`,"steps[].highlight":`array of 0-based indices to emphasize (the active window)`,"steps[].compare":`array of indices being compared this step`,"steps[].swapped":`array of indices swapped this step`,"steps[].pointer":`object of named pointers to the index they sit under, e.g. { i: 2, j: 3, lo: 0, hi: 6 }`}}};export{e as D};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
var e={dptable:{blurb:`A 2-D dynamic-programming memoization table with interactive step-through: each step highlights the cell being computed (presence tint) and its recurrence dependencies (insight tint). Use for LCS, edit distance, knapsack, coin change — any DP problem where seeing the table fill in is the "aha" moment. The model supplies rows/cols/cells (the full grid) plus an optional recurrence formula and ordered steps. Never for a plain data table (use datatable).`,optional:[`title`,`icon`,`iconColor`,`recurrence`,`steps`,`highlight`,`path`,`footer`],itemShapes:[{prop:`steps`,text:`caption`,textAliases:[`label`,`description`]}],stringItems:[`rows`,`cols`],propHints:{rows:`row header labels, e.g. ["", "A", "B", "C"] — include a corner sentinel as needed`,cols:`column header labels, e.g. ["", "0", "1", "2", "3"]`,cells:`2-D array cells[row][col]; null = unfilled. Provide the fully-filled final grid.`,recurrence:`recurrence formula shown above the table, e.g. "dp[i][j] = dp[i-1][j-1]+1"`,"steps[].current":`[row, col] 0-based index of the cell being computed (presence tint)`,"steps[].deps":`array of [row, col] pairs this step reads from (insight tint)`,"steps[].caption":`what is happening at this step`}},cyclewheel:{blurb:`An illustrated closed loop — 3-8 stages spaced evenly around a ring, each an icon + label + short caption, joined by curved arrows that flow one into the next and back to the first. Use for the water cycle, a butterfly/cell life cycle, the carbon/nitrogen/rock cycle, a product or feedback loop. Unlike a one-directional flow, the loop closes back to the start.`,optional:[`title`,`icon`,`iconColor`,`caption`,`footer`],itemShapes:[{prop:`stages`,text:`label`,textAliases:[`name`,`stage`,`phase`,`step`]}],propHints:{stages:`in loop order; the last stage arcs back to the first (3-8 read best)`,"stages[].caption":`optional one-line gloss of what happens at this stage`,"stages[].icon":`optional glyph key, e.g. 'sun'|'cloud'|'rain'|'globe'; falls back to a numbered token`}},hashtable:{blurb:`A hash table with separate-chaining collision resolution: a vertical bucket array on the left, horizontal linked-list chains extending right from each non-empty bucket, with the hash function label above. Use for "how does a hash map work", collision walkthroughs, load-factor discussions. The component auto-hashes keys unless an explicit bucket index is given. Never for a plain key-value list.`,optional:[`title`,`icon`,`iconColor`,`hashFn`,`highlight`,`footer`],propHints:{size:`number of buckets in the table, e.g. 7 (capped at 8 visually)`,entries:`key-value pairs: [{ key, value?, bucket? }]`,hashFn:`display label for the hash function, e.g. "h(k) = k mod 7"`,highlight:`the key to spotlight (presence accent) in its chain`,"entries[].bucket":`optional explicit 0-based bucket index; otherwise auto-computed`}},trie:{blurb:`A prefix tree (trie) drawn from a list of words: each edge carries its character, end-of-word nodes get a double ring, and an optional highlight word traces the full insertion path from root to leaf in the presence accent. Use for "how does autocomplete work", "show a prefix tree for these words", trie algorithm interview walkthroughs. Never for a binary tree — use binarytree for that.`,optional:[`title`,`icon`,`iconColor`,`highlight`,`footer`],stringItems:[`words`],propHints:{words:`words to insert into the trie (max ~10 short words for readability)`,highlight:`the word whose path from root to leaf to trace in the presence accent`}},graphtrace:{blurb:`Interactive BFS/DFS step-through on a graph: nodes colour-coded by traversal state — current (presence), frontier/queue (warning), visited (muted), unvisited (default) — with Prev/Next controls and a live queue/stack panel. Use for "walk me through BFS", "show DFS step by step". Never for a static graph — use network; for array-algorithm step-throughs use algorithmtrace.`,optional:[`title`,`icon`,`iconColor`,`algorithm`,`footer`],itemShapes:[{prop:`nodes`,text:`label`,textAliases:[`id`,`name`]}],propHints:{"nodes[]":`{ id, label?, x?, y? } — x/y in 0..100 units; omit to auto-ring`,"edges[]":`{ from, to, weight?, directed? }`,"steps[]":`{ caption, current?, visited?, frontier? } — ids of nodes in each state`,algorithm:`'bfs' (default, shows Queue:) or 'dfs' (shows Stack:)`}},binarytree:{blurb:`A binary tree with optional interactive step-through traversal: nodes are laid out via inorder x-position + depth y (tidy-tree geometry, never overlapping). An optional steps array drives a Prev/Next stepper that re-colours nodes — visiting (presence), visited (muted), found (insight) — and shows a BFS queue / DFS stack plus an accumulating traversal result. Use for "trace BST search", "show inorder/preorder traversal", "walk me through BFS on a tree", heap diagrams, and FAANG tree interview walkthroughs. Never for a general graph — use graphtrace; for a node-link diagram use datastructure.`,optional:[`title`,`icon`,`iconColor`,`steps`,`caption`,`footer`],propHints:{nodes:`{ id, value, left?, right? } — left/right are node ids; order does not matter`,root:`id of the root node`,"steps[].states":`map of node id → "default"|"visiting"|"visited"|"found"|"highlight"`,"steps[].frontier":`queue or stack contents at this step (node value labels)`,"steps[].result":`accumulated traversal result so far (node value labels)`,"steps[].caption":`what is happening in this step`}},sortingviz:{blurb:`Animated bar-chart sorting visualizer: each step carries a full array snapshot so bars change height and colour at every algorithm step — compared (warning), swapped (insight), sorted (presence), pivot (danger for quicksort). Play/pause + 3 speed levels; comparison + swap counters. Use for "show bubble sort", "walk me through merge sort", "compare sorting algorithms". Never for a static array (use algorithmtrace).`,optional:[`title`,`icon`,`iconColor`,`complexity`,`footer`],itemShapes:[{prop:`steps`,text:`caption`,textAliases:[`label`,`description`]}],propHints:{algorithm:`human-readable algorithm name, e.g. "Bubble Sort" or "Quick Sort"`,complexity:`'o-1'|'o-logn'|'o-n'|'o-nlogn'|'o-n2'|'o-2n' — shown as a badge`,values:`initial array (used when steps is empty for static display)`,"steps[].values":`full array snapshot at this step (drives bar heights)`,"steps[].compared":`indices being compared (warning accent)`,"steps[].swapped":`indices just swapped (insight accent)`,"steps[].sorted":`indices confirmed in final position (presence, permanent)`,"steps[].pivot":`pivot index for quicksort (danger accent)`}},gridtrace:{blurb:`A 2-D grid visualizer for BFS/DFS, flood-fill, and grid-DP problems. Each step carries a full grid snapshot where every cell is coloured by state: empty (white), wall (dark), start (presence), end (insight), current (presence bright), queued/in-queue (warning), visited (muted), path (insight). Optional value labels show distances or costs. Play/pause + 3 speeds. Use for "BFS shortest path on a grid", "island counting", "flood fill", "word search", "rotting oranges", any grid-based FAANG interview problem. Never for a general graph without a grid structure (use graphtrace).`,optional:[`title`,`icon`,`iconColor`,`algorithm`,`rows`,`cols`,`footer`],itemShapes:[{prop:`steps`,text:`caption`,textAliases:[`label`,`description`]}],propHints:{algorithm:`algorithm label shown in badge, e.g. "BFS", "DFS", "Flood Fill"`,"steps[].grid":`2-D array (rows × cols) of {state, value?} — state is one of: empty|wall|start|end|current|queued|visited|path`,"steps[].grid[r][c].state":`'empty'|'wall'|'start'|'end'|'current'|'queued'|'visited'|'path'`,"steps[].grid[r][c].value":`optional label (distance, cost, character, 0/1)`}}};export{e as D};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
var e={tournamentbracket:{blurb:`A single-elimination tournament bracket: one column per round, joined by SVG elbow connectors — every matchup's position is computed from its round + slot (never authored), so it self-centers automatically as rounds advance. A decided matchup bolds and tints the winner's name and mutes the loser's; an open slot shows "TBD", a walkover shows "BYE". Use for "show the bracket", playoff brackets, single-elimination sports/esports draws, and elimination-style debate or business-case competitions. SHIPS SINGLE-ELIMINATION ONLY this pass — \`double\` is a reserved prop for a future losers-bracket rendering; setting it true only labels the view, it does NOT draw a losers bracket, so never promise one from it. Never for a round-robin or league table — use standings or leaderboard for that.`,optional:[`icon`,`iconColor`,`double`,`footer`],stringItems:[`rounds`],propHints:{rounds:`round names in order, e.g. ["Round of 16", "Quarterfinal", "Semifinal", "Final"]`,"matchups[].round":`0-based index into rounds — which column this matchup sits in`,"matchups[].slot":`0-based position within the round, top to bottom`,"matchups[].a":`first competitor; omit for a not-yet-decided slot`,"matchups[].b":`second competitor; omit for a bye or not-yet-decided slot`,"matchups[].winner":`"a" or "b" once the matchup is decided; omit while pending`,double:`reserved for a future losers-bracket view — leave false; setting it true does not render one`}},prooftree:{blurb:`A Gentzen-style natural-deduction proof tree: premises stack above an inference bar with the rule name at its right, the conclusion sits below, and a bracketed leaf like "[P]" renders as a discharged assumption. Built from a FLAT steps list — each step cites the ids it is inferred from — and the tree assembles and centres itself. Use for propositional/predicate-logic derivations, "prove Q ∧ R from these premises", natural-deduction or sequent-calculus homework. Never for geometry statements/reasons proofs — use twocolumnproof.`,optional:[`icon`,`iconColor`,`conclusionId`,`footer`],itemShapes:[{prop:`steps`,text:`statement`,textAliases:[`text`,`formula`,`sequent`]}],propHints:{"steps[].id":`stable id other steps cite in their from lists`,"steps[].statement":`the formula this line asserts, e.g. "P → Q"; wrap a discharged assumption in square brackets, e.g. "[P]"`,"steps[].rule":`the inference rule shown at the bar, e.g. '∧I', '→E', 'MP', 'RAA'`,"steps[].from":`ids of the premise steps this line follows from; omit for a leaf premise/assumption`,conclusionId:`id of the final conclusion; defaults to the step no other step cites`}},fishbone:{blurb:`An Ishikawa fishbone cause-effect diagram: the effect sits in a head box at the right of a horizontal spine, category ribs alternate above and below at ~60°, and each rib carries its causes as short twigs. Categories are whatever the analysis used — the classic 6M set or any custom grouping, up to 8 ribs. Use for "why does this defect keep happening", a quality-control teardown, a project retro on a recurring failure. Never for a linear why chain — use fivewhychain. Never for a MECE breakdown tree — use issuetree.`,optional:[`icon`,`iconColor`,`footer`],itemShapes:[{prop:`categories`,text:`label`,textAliases:[`name`,`category`,`title`]}],propHints:{effect:`the problem/outcome under investigation, shown in the head box at the right`,"categories[].causes":`array of short cause phrases drawn as twigs off the rib, most prominent first (2-5 read best)`}},classdiagram:{blurb:`A UML class diagram: class boxes with the three standard compartments (name with an italic «stereotype», fields, methods), auto-layered so parents sit above their subclasses, joined with proper UML arrowheads — hollow triangle for inheritance (dashed when implements), filled diamond for composition, hollow diamond for aggregation, dashed open arrow for dependency, plain line for association. Use for "diagram these classes", OOP design teaching, design-pattern structure (Strategy, Observer), refactoring discussions. Never for database tables and relationships — use erdiagram.`,optional:[`icon`,`iconColor`,`footer`],itemShapes:[{prop:`classes`,text:`name`,textAliases:[`label`,`class`,`title`]}],propHints:{"classes[].name":`the class name — also the key relations reference in from/to`,"classes[].stereotype":`'interface' | 'abstract' | 'enum' — omit for a concrete class`,"classes[].fields":`field lines as plain strings, e.g. "+ radius: number"`,"classes[].methods":`method lines as plain strings, e.g. "+ area(): number"`,"relations[].kind":`'inheritance' | 'implements' | 'composition' | 'aggregation' | 'association' | 'dependency'`,"relations[].from":`the child/client class for inheritance, implements, and dependency; the WHOLE (diamond end) for composition/aggregation`,"relations[].to":`the parent for inheritance/implements (triangle end), the part for composition/aggregation, the supplier for dependency`,"relations[].label":`optional short caption at the line midpoint, e.g. a multiplicity`}},analogymap:{blurb:`An analogy map: the familiar thing on the left, the concept being explained on the right, and one labelled correspondence line per mapped part ("your house key" → "the private key: the secret you never share"), plus an explicit \`breaksDown\` panel naming where the analogy stops holding. Use when an ask is "explain X like I already know Y", "what's a good analogy for X", or any first encounter with an abstract concept that has no literal shape to draw — exactly the case teachdiagram refuses. Unlike frayermodel (which explains a term on its own terms) this block's whole job is the bridge to PRIOR knowledge; unlike comparematrix it is not scoring two options against criteria, it is asserting that part-for-part they correspond.`,optional:[`icon`,`iconColor`,`breaksDown`,`caption`,`footer`],itemShapes:[{prop:`pairs`,text:`familiar`,textAliases:[`known`,`source`,`analog`,`from`,`left`],requiredFields:[`target`]}],stringItems:[`breaksDown`],propHints:{familiar:`the familiar domain the analogy borrows from, e.g. "A house and its keys"`,target:`the unfamiliar concept being explained, e.g. "Public-key cryptography"`,"pairs[].familiar":`the part of the FAMILIAR thing, e.g. "Your house key"`,"pairs[].target":`the part of the concept it maps onto, e.g. "The private key"`,"pairs[].note":`optional short gloss of what the correspondence IS, drawn on the connector, e.g. "the secret you never hand out"`,"pairs[].loose":`optional true when the match is only approximate — the connector draws dashed rather than overstating it`,breaksDown:`plain strings naming where the analogy fails, e.g. "A house key can be copied from a photo; a private key cannot be derived from the public one." Include it whenever the analogy could leave a wrong mental model.`}},avatar:{blurb:`User avatar with name, initials, or image; clickable to cycle size and presence status.`,optional:[`icon`,`iconColor`,`name`,`src`,`glyph`,`initials`,`size`,`status`,`ring`,`color`,`role`,`footer`],propHints:{status:`'online'|'away'|'busy'|'offline' (presence dot)`,size:`'sm'|'md'|'lg'`}},avatargroup:{blurb:`Overlapping stack of avatars with +N overflow; hover to see all members.`,optional:[`icon`,`iconColor`,`max`,`size`,`caption`,`footer`],itemShapes:[{prop:`members`,text:`name`,textAliases:[`label`,`title`]}],propHints:{"members[].status":`'online'|'away'|'busy'|'offline'`}},badgeset:{blurb:`Short status/label badges in soft/outline/dot/solid variants with an optional count notification (statuses, tags, counts). Never for key→value facts — use deflist or kpi.`,optional:[`icon`,`iconColor`,`countIcon`,`count`,`countColor`,`footer`],itemShapes:[{prop:`badges`,text:`label`,textAliases:[`name`,`text`,`title`]}],propHints:{"badges[].variant":`'solid'|'soft'|'outline'|'dot'`}}};export{e as D};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
var e={chipset:{blurb:`Selectable and removable tags with icons or avatars; single or multi-select.`,optional:[`icon`,`iconColor`,`mode`,`summary`,`color`,`footer`],itemShapes:[{prop:`chips`,text:`label`,textAliases:[`name`,`text`,`title`]}]},kbd:{blurb:`Actual KEYBOARD shortcuts shown as key-caps (⌘K, Ctrl+C) with hover highlight. Never for generic key→value facts or labels — use deflist or kpi.`,optional:[`icon`,`iconColor`,`active`,`color`,`footer`],itemShapes:[{prop:`shortcuts`,text:`label`,textAliases:[`name`,`title`,`action`]}]},codeblock:{blurb:'Real syntax-highlighted code. Put the raw source in `code` (one string, with real newlines) and the language in `lang` (e.g. "ts", "python", "rust") — we highlight it. Do NOT pre-tokenize or escape it.',optional:[`icon`,`iconColor`,`lang`,`filename`,`lines`,`lineNumbers`,`highlight`,`runnable`,`footer`],propHints:{runnable:`true ONLY for a complete dependency-free JavaScript/TypeScript snippet that needs no imports, DOM/browser APIs, server globals, credentials, or omitted setup; otherwise omit (default false)`}},banner:{blurb:`Full-width banner alert or promo with tone, action button, and dismiss.`,optional:[`icon`,`iconColor`,`tone`,`bannerIcon`,`detail`,`action`,`dismissible`,`footer`],propHints:{tone:`'info'|'success'|'warning'|'promo' (also sets the default banner icon)`}},toaststack:{blurb:`Stacked toast notifications with auto-dismiss and a push button to cycle through a pool.`,optional:[`icon`,`iconColor`,`pool`,`duration`,`pushLabel`,`footer`],itemShapes:[{prop:`toasts`,text:`title`,textAliases:[`label`,`name`,`heading`]}],propHints:{"toasts[].kind":`'success'|'error'|'info'|'warning'`}},spinner:{blurb:`Animated spinners, indeterminate bar, and loading button; click to toggle state.`,optional:[`icon`,`iconColor`,`caption`,`buttonLabel`,`loadingLabel`,`color`,`footer`]},notification:{blurb:`Notification list with avatars, time-ago stamps, unread dots, and mark-all-read action.`,optional:[`icon`,`iconColor`,`markAllLabel`,`footer`],itemShapes:[{prop:`items`,text:`title`,textAliases:[`label`,`name`,`heading`,`text`]}]},eligibilitycheck:{blurb:`Rules judged against MY situation: each requirement gets a met / not-met / needs-info verdict vs the user’s stated facts, the specific gap named and how to confirm it, then an honest "likely qualify / do not yet / depends" overall and a "verify with the official source" caveat. For "do I qualify for X" (grants, loans, programs, roles); a checklist only lists items to tick, this weighs each rule against real facts.`,optional:[`icon`,`iconColor`,`overall`,`caveat`,`footer`],itemShapes:[{prop:`requirements`,text:`rule`,textAliases:[`requirement`,`criterion`,`label`,`text`]}],propHints:{"requirements[].status":`'pass'|'fail'|'needs-info' — pass only when the stated facts clearly meet it, needs-info when a required fact is unknown`,"requirements[].detail":`how this rule was judged against the situation, citing the stated fact`,"requirements[].fix":`for a fail: what would make it qualify; for needs-info: how to confirm the missing fact`,overall:`'likely'|'not-yet'|'depends' — use 'depends' whenever any rule is needs-info`,caveat:`a "verify with the official source" reminder — this is guidance, not an official ruling`}}};export{e as D};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
var e={evidencetrace:{blurb:`The raw records behind a claim or number — the headline claim up top, then the literal underlying data enumerated verbatim (real quotes/rows/tickets), each with its source and timing, plus an honest provenance line ("12 of 240 customers"). The "how do you KNOW that — show me" surface; renders only real given records, never invented ones. Pick over sourcelist (ranked links, not the data itself) or citationchain (a nested claim tree).`,optional:[`icon`,`iconColor`,`summary`,`caveat`,`footer`],itemShapes:[{prop:`items`,text:`text`,textAliases:[`quote`,`record`,`row`,`label`]}],propHints:{claim:`the one claim or number these records back, e.g. "Onboarding is the top churn driver"`,summary:`short count/provenance of the records, e.g. "12 of 240 customers" or "from 18 support tickets"`,"items[].source":`where the record came from, e.g. "ticket #4821" | "Survey Q3" | "ledger row 14"`,caveat:`an honest limitation of this evidence, e.g. "self-reported; not a representative sample"`}},reviewsynth:{blurb:`Distills MANY real customer reviews into an aggregate rating + 5→1 star distribution, then a what-people-love vs complaints split (each theme with rough frequency + one verbatim quote) and the single biggest dealbreaker. For "what do reviews say about X"; use worthit for one reviewer’s verdict, proscons for the model’s own ledger. Themes and quotes must come from real reviews only.`,optional:[`icon`,`iconColor`,`rating`,`count`,`distribution`,`loves`,`complaints`,`dealbreaker`,`footer`],itemShapes:[{prop:`loves`,text:`theme`,textAliases:[`label`,`name`,`title`]},{prop:`complaints`,text:`theme`,textAliases:[`label`,`name`,`title`]}],propHints:{distribution:`star counts as [5★, 4★, 3★, 2★, 1★]`,"loves[].freq":`rough frequency across reviews, e.g. "62% mention" or "common"`,"complaints[].freq":`rough frequency across reviews, e.g. "1 in 4" or "occasional"`,"loves[].quote":`one verbatim quote from a real review`,"complaints[].quote":`one verbatim quote from a real review`}},annotateddoc:{blurb:`Prose with highlighted passages and margin notes (hover/click marks to reveal)`,optional:[`icon`,`iconColor`,`docName`,`footer`],stringItems:[`paragraphs`]},redline:{blurb:`Tracked changes with tabs to view tracked/final/original copy`,optional:[`icon`,`iconColor`,`docName`,`footer`]},citationchain:{blurb:`Claim to source to evidence as an expandable tree with strength indicators`,optional:[`icon`,`iconColor`,`footer`],propHints:{"root.strength":`'strong'|'partial'|'weak'`}},factcheck:{blurb:`Claims with verdicts, confidence scores, and expandable sources/details`,optional:[`icon`,`iconColor`,`footer`],itemShapes:[{prop:`claims`,text:`claim`,textAliases:[`text`,`statement`,`label`]}],propHints:{"claims[].verdict":`'true'|'partly'|'false'|'unverified'`}},confidencemeter:{blurb:`Confidence breakdown by segments with hover tooltips on supporting basis`,optional:[`icon`,`iconColor`,`claim`,`overall`,`footer`],itemShapes:[{prop:`segments`,text:`label`,textAliases:[`name`,`title`]}],propHints:{"segments[].band":`'strong'|'partial'|'weak'|'none'`}},highlightsnippet:{blurb:`Quoted source excerpt with highlighted phrase and toggle button`,optional:[`icon`,`iconColor`,`source`,`locator`,`color`,`footer`]}};export{e as D};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
var e={annotcallouts:{blurb:`Numbered pins on a surface schematic (click pins to read callout notes)`,optional:[`icon`,`iconColor`,`caption`,`ratio`,`footer`]},sourcelist:{blurb:`Ranked sources with relevance sorting and expandable snippets`,optional:[`icon`,`iconColor`,`footer`],itemShapes:[{prop:`sources`,text:`titleText`,textAliases:[`title`,`label`,`name`]}]},claimgrid:{blurb:`Claims by evidence grid with check/cross/partial cells and hover tooltips`,optional:[`icon`,`iconColor`,`footer`],stringItems:[`columns`],propHints:{"rows[].cells[].state":`'yes'|'no'|'partial'|'na'`}},docoutline:{blurb:`Collapsible document outline with section jumping and progress indicator`,optional:[`icon`,`iconColor`,`docName`,`activeIndex`,`footer`]},docview:{blurb:`PDF/page-style document viewer with in-document spotlight—focus one passage while the rest dims.`,optional:[`icon`,`iconColor`,`source`,`page`,`note`,`footer`],propHints:{"blocks[].kind":`'h1'|'h2'|'p'|'caption'|'eq'`}},pdfreader:{blurb:`Scrollable multi-page PDF reader with live page counter—browse the full document.`,optional:[`icon`,`iconColor`,`source`,`file`,`footer`],propHints:{"pages[].blocks[].kind":`'h1'|'h2'|'p'|'caption'|'eq'`}},diffviewer:{blurb:`Side-by-side or inline diff view; added lines green, removed red, context grey.`,optional:[`icon`,`iconColor`,`leftLabel`,`rightLabel`,`split`,`footer`],itemShapes:[{prop:`lines`,text:`text`,textAliases:[`content`,`line`,`code`]}],propHints:{"lines[].kind":`'add'|'del'|'ctx'`}},clinicaltimeline:{blurb:`A health/medical event timeline — symptoms, diagnoses, treatments, tests, and results in chronological order. Use for patient history, care coordination, or health-journey asks.`,optional:[`icon`,`iconColor`,`footer`],itemShapes:[{prop:`events`,text:`label`,textAliases:[`event`,`entry`,`note`]}],propHints:{"events[].type":`"symptom"|"diagnosis"|"treatment"|"test"|"result"|"visit"`}}};export{e as D};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
var e={researchsummary:{blurb:`A structured research/study summary — question, method, key findings, conclusion, and limitations. Use for academic papers, scientific studies, clinical research, or any "what does the research say about X" ask.`,optional:[`icon`,`iconColor`,`method`,`sampleSize`,`limitations`,`source`,`year`,`footer`],stringItems:[`findings`],propHints:{question:`the core research question or hypothesis`,method:`study design, e.g. "randomized controlled trial", "meta-analysis"`,sampleSize:`e.g. "n = 1,200 adults"`}},hypothesiscard:{blurb:'A formal null/alternative hypothesis statement (H0 vs H1) for a significance test, with an optional pass/fail verdict once the test has run. Use for statistics write-ups, A/B tests, or any "state the hypothesis" ask — distinct from researchsummary, whose `question` field is loose free text rather than formal H0/H1.',optional:[`title`,`icon`,`iconColor`,`direction`,`alpha`,`variables`,`rejected`,`footer`],propHints:{h0:`the null hypothesis, stated precisely, e.g. "There is no difference in mean recovery time between the two treatments."`,h1:`the alternative hypothesis, e.g. "Treatment B reduces mean recovery time versus Treatment A."`,direction:`"two-tailed"|"greater"|"less"`,alpha:`the significance threshold the test was run against, e.g. 0.05`,"variables.iv":`the manipulated/predictor variable, e.g. "dosage (mg)"`,"variables.dv":`the measured/outcome variable, e.g. "systolic blood pressure"`,rejected:`true once a test has actually run and rejected the null (evidence supports H1); false = failed to reject; omit while just stating the hypotheses`}},paralleltext:{blurb:`Two or more texts aligned line-by-line in parallel columns (original vs translations), with per-line notes and divergence highlights`,optional:[`title`,`icon`,`iconColor`,`caption`,`footer`],itemShapes:[{prop:`columns`,text:`label`,textAliases:[`name`,`title`,`heading`]},{prop:`rows`,text:`note`}],propHints:{"columns[].lang":`short language/script tag, e.g. 'la' | 'Old English' | 'fr'`,"rows[].cells":`one string per column, index-aligned to columns (column 0 = source)`,"rows[].diverge":`true when the renderings meaningfully differ on this line (adds a subtle highlight)`}},resume:{blurb:`A formatted CV — name/title letterhead, then Experience, Education, and Skills as labeled sections, most recent role first. Use for 'my resume', 'my CV', or 'my work history'; not for a single-job cover letter or a bio.`,optional:[`title`,`icon`,`iconColor`,`contact`,`summary`,`education`,`skills`,`footer`],itemShapes:[{prop:`experience`,text:`role`,textAliases:[`title`,`position`,`jobTitle`]},{prop:`education`,text:`school`,textAliases:[`institution`,`university`,`college`]}],stringItems:[`contact`,`skills`],propHints:{"experience[].start":`e.g. "2019" or "Jan 2019"`,"experience[].end":`omit, or leave blank, for a current role — renders as "Present"`,"education[].credential":`e.g. "B.S. Computer Science" or "M.B.A."`}},changelog:{blurb:`Versioned release notes — one section per version (version + date), each entry badge-tagged added/changed/fixed/removed/deprecated/security. Use for 'what changed in vX', a product's release history, or a changelog file; not for a single unversioned list of updates (use takeaways or a timeline instead).`,optional:[`icon`,`iconColor`,`footer`],itemShapes:[{prop:`versions`,text:`version`,textAliases:[`name`,`label`,`tag`],children:{prop:`entries`,text:`text`,textAliases:[`label`,`description`,`note`]}}],propHints:{"versions[].version":`e.g. "v2.4.0" — keep the same style across every version in the list`,"entries[].kind":`'added'|'changed'|'fixed'|'removed'|'deprecated'|'security'`}},lessonplan:{blurb:`A teacher's lesson plan — subject/grade/duration, learning Objectives, Materials, a numbered Procedure with per-step minute budgets, and an Assessment. Use for 'plan a lesson on X' or 'build a class for Y'; not for a student's own study schedule (use planner or timeline).`,optional:[`icon`,`iconColor`,`subject`,`gradeLevel`,`duration`,`materials`,`assessment`,`footer`],itemShapes:[{prop:`procedure`,text:`step`,textAliases:[`title`,`label`,`activity`]}],stringItems:[`objectives`,`materials`],propHints:{duration:`overall class length, e.g. "50 min" — derived from the procedure minutes if omitted`,"procedure[].minutes":`time budget for that step, in minutes — omit rather than guess`}},casebrief:{blurb:`A legal case brief — Parties, Facts, Issue, Holding, and Reasoning as labeled sections, with the reporter citation as a caption under the title. Use for 'brief this case' or summarizing a court opinion; not for a contract review (use docview) or a general legal Q&A.`,optional:[`icon`,`iconColor`,`citation`,`footer`],propHints:{citation:`reporter citation, e.g. "410 U.S. 113 (1973)" — omit if unknown, never invent one`,holding:`the court's actual ruling, stated as one plain sentence`}},patentclaimchart:{blurb:`A patent claim chart — the claim's own numbered elements down the rows, prior art or an accused product across the columns, each intersection marked disclosed / not-disclosed / disputed with the supporting quote on hover. Use for patent infringement/invalidity analysis or licensing diligence; not for a general claims-vs-evidence grid (use claimgrid).`,optional:[`icon`,`iconColor`,`footer`],itemShapes:[{prop:`claimElements`,text:`text`,textAliases:[`label`,`claim`,`limitation`,`description`]}],stringItems:[`references`],propHints:{"claimElements[].id":`the claim's own element number/letter, e.g. "1.1" or "[a]" — omit only if truly unnumbered`,"cells[][].state":`'disclosed'|'not-disclosed'|'disputed', one verdict per element × reference pairing (cells[elementIndex][referenceIndex])`,"cells[][].quote":`the supporting passage from that reference — omit for not-disclosed cells, never invent one`}}};export{e as D};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
var e={storystructure:{blurb:`A journalism inverted-pyramid draft — the lede and nut graf called out in a highlighted block up top, body paragraphs in reading order below, and secondary background held behind a collapsible toggle. Use for 'draft this as a news story' or 'write it inverted-pyramid style'; not for a general article/blog draft (use pullquote, casestudy, or plain prose).`,optional:[`icon`,`iconColor`,`background`,`wordCountBudget`,`wordCount`,`footer`],stringItems:[`body`,`background`],propHints:{lede:`the opening sentence — the single most newsworthy fact, stated first, not buried`,nutGraf:`the paragraph right after the lede supplying the essential who/what/why/so-what`,wordCount:`the draft's actual word count — derived from lede+nutGraf+body if omitted`}},vetpatientchart:{blurb:`A veterinary patient chart — the signalment (species/breed/sex/age/weight) as identity chips atop a vitals strip and the active problem list. Use for 'my dog's checkup', 'vet visit summary', or any single-visit animal chart; not for a treatment history over time (use clinicaltimeline).`,optional:[`icon`,`iconColor`,`breed`,`sex`,`ageYears`,`weightKg`,`vitals`,`problems`,`footer`],itemShapes:[{prop:`vitals`,text:`label`,textAliases:[`name`,`vital`,`metric`]}],stringItems:[`problems`],propHints:{"vitals[].value":`most readings are numeric ("101.5"); a few are qualitative ("Pink", "CRT <2s") — give whichever the real reading is`,"vitals[].abnormal":`true only when the reading is genuinely outside normal for this patient — never guess`}},scoutingreport:{blurb:`A sports opponent scouting report — the opponent's tendencies as a prose list, per-matchup notes, and the key players to game-plan around. Use for 'scout our next opponent' or pre-game prep; not for a live in-game recap (use scoreboard, statustimeline, or a gameday-style narrative).`,optional:[`icon`,`iconColor`,`matchupNotes`,`keyPlayers`,`footer`],itemShapes:[{prop:`matchupNotes`,text:`note`,textAliases:[`detail`,`text`,`description`]},{prop:`keyPlayers`,text:`name`,textAliases:[`player`,`who`]}],stringItems:[`tendencies`],propHints:{"matchupNotes[].label":`the matchup dimension this note covers, e.g. "Pace", "3-point defense"`,"keyPlayers[].role":`position/role, e.g. "PG", "closer", "left tackle"`}},allocatepeople:{blurb:`Split tasks or chores fairly among NAMED people — one column per person with their tasks and a load bar that makes an uneven split obvious. Use for "divide the chores between us", roommate rotas, group-project work, or on-call duty.`,optional:[`icon`,`iconColor`,`footer`],itemShapes:[{prop:`assignments`,text:`task`,textAliases:[`chore`,`duty`,`job`,`item`,`label`]}],stringItems:[`people`],propHints:{people:`array of person names, e.g. ["Sam", "Alex", "Jordan"]`,"assignments[].who":"a person — should match one of the `people` names","assignments[].weight":`effort this task carries, 1 (light) to 5 (heavy); optional, defaults to 1`}},forecast:{blurb:`A multi-day weather or prediction grid — icon, hi/lo, condition, precipitation per day — with location and timestamp.`,optional:[`icon`,`iconColor`,`location`,`unit`,`asOf`,`summary`,`footer`],itemShapes:[{prop:`days`,text:`condition`,textAliases:[`weather`,`forecast`,`summary`,`label`]}],propHints:{unit:`'F'|'C'`,"days[].icon":`'sun'|'cloud'|'rain'|'snow'|'storm'|'fog'|'partly-cloudy'`}},agenda:{blurb:`A schedule, itinerary, or meeting agenda — time-ordered items with locations, durations, and notes.`,optional:[`icon`,`iconColor`,`date`,`footer`],itemShapes:[{prop:`items`,text:`title`,textAliases:[`name`,`label`,`task`,`event`]}],propHints:{"items[].time":`"9:00 AM" | "14:30" — start time for this item`,"items[].duration":`"45 min" | "2 hours" — how long the item lasts`,"items[].location":`"Museum of Fine Arts" — place name or address`,"items[].note":`"Book tickets in advance" — tip, note, or detail`,"items[].done":`true|false`}},picks:{blurb:`A curated ranked recommendation list — products, books, places — each with tagline, reasoning, price, rating, and a badge.`,optional:[`icon`,`iconColor`,`category`,`footer`],itemShapes:[{prop:`items`,text:`name`,textAliases:[`title`,`label`,`product`]}]},timezones:{blurb:`World-clock comparison — cities, UTC offsets, and local times shown side-by-side; home timezone highlighted.`,optional:[`icon`,`iconColor`,`baseTime`,`footer`],itemShapes:[{prop:`rows`,text:`city`,textAliases:[`name`,`label`,`location`]}]}};export{e as D};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
var e={transitroute:{blurb:`A turn-by-turn transit or driving route — mode icons, instructions, line names, and a total time summary.`,optional:[`icon`,`iconColor`,`totalTime`,`totalDistance`,`footer`],itemShapes:[{prop:`steps`,text:`instruction`,textAliases:[`description`,`text`,`step`]}],propHints:{"steps[].mode":`'walk'|'bus'|'subway'|'train'|'bike'|'car'|'ferry'`}},amortization:{blurb:`A loan or mortgage amortization table — per-period principal/interest split with a running balance that pays DOWN to zero. Never for a generic financial table or budget — use datatable.`,optional:[`icon`,`iconColor`,`footer`],itemShapes:[{prop:`rows`,text:`period`,textAliases:[`label`,`month`,`year`]}]},receipt:{blurb:`An itemized PURCHASE receipt — money only: line items with quantity and price, subtotal, tax, and a currency grand total. Never for workouts, schedules, or generic item lists with non-money "totals" (use workoutplan for exercises, agenda for plans, checklist/datatable otherwise).`,optional:[`icon`,`iconColor`,`merchant`,`date`,`subtotal`,`tax`,`footer`],itemShapes:[{prop:`lines`,text:`item`,textAliases:[`name`,`description`,`label`]}]},settleup:{blurb:`Group expense split — who paid what, who owes who, and the minimum transfers to settle up.`,optional:[`icon`,`iconColor`,`people`,`expenses`,`footer`],itemShapes:[{prop:`settlements`,text:`from`,textAliases:[`payer`,`name`]}],stringItems:[`people`]},bracketbar:{blurb:`Numbered leaderboard bars — top-N ranked items each with a score and optional badge. Use for "rank the top N …", best/worst lists, poll results, popularity rankings.`,optional:[`icon`,`iconColor`,`metric`,`footer`],itemShapes:[{prop:`items`,text:`label`,textAliases:[`name`,`title`]}]},recipecard:{blurb:`A cooking recipe card — ingredients with quantities, numbered steps, and pro tips. Use for any "how do I make X" or "recipe for Y" ask.`,optional:[`icon`,`iconColor`,`servings`,`prepTime`,`cookTime`,`difficulty`,`tips`,`footer`],itemShapes:[{prop:`ingredients`,text:`name`,textAliases:[`ingredient`,`item`]}],stringItems:[`steps`,`tips`],propHints:{difficulty:`"easy"|"medium"|"hard"`,"ingredients[].qty":`amount, e.g. "2", "¼ cup", "a pinch"`}},workoutplan:{blurb:`A structured workout plan with sessions, exercises, sets, reps, and rest periods. Use for any "gym plan", "workout routine", or "training program" ask.`,optional:[`icon`,`iconColor`,`goal`,`weeks`,`footer`],propHints:{"sessions[].exercises[].reps":`"10–12"|"to failure"|"30 sec"`,"sessions[].exercises[].rest":`"60 sec"|"90 sec"|"2 min"`}},medicationschedule:{blurb:`A medication schedule — drug names, doses, dosing times, and instructions. Use for medication tracking, prescription management, or post-surgery care asks.`,optional:[`icon`,`iconColor`,`startDate`,`footer`],itemShapes:[{prop:`medications`,text:`name`,textAliases:[`drug`,`medication`,`med`]}],propHints:{"medications[].times":`array of time strings, e.g. ["8:00 AM", "8:00 PM"]`,"medications[].withFood":`true if the medication must be taken with food`}}};export{e as D};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
var e={macrobreakdown:{blurb:`Nutritional macros — calorie headline, protein/carbs/fat/fiber split with a stacked bar, and optional per-item breakdown. Use for any nutrition, diet, or food content ask.`,optional:[`icon`,`iconColor`,`fiber`,`items`,`footer`],itemShapes:[{prop:`items`,text:`label`,textAliases:[`food`,`name`,`ingredient`]}]},plangrid:{blurb:`A forward days×slots planning grid — meal plan, study schedule, habit tracker, weekly routine. One cell per slot per column; free slots show empty. Distinct from agenda (one day) and calheat (past streaks).`,optional:[`icon`,`iconColor`,`summary`,`caption`,`footer`],itemShapes:[{prop:`rows`,text:`slot`,textAliases:[`label`,`name`,`row`],children:{prop:`cells`,text:`label`,textAliases:[`name`,`title`,`text`]}}],stringItems:[`columns`,`summary`],propHints:{columns:`the grid columns, e.g. ["Mon","Tue","Wed","Thu","Fri","Sat","Sun"] or ["Week 1","Week 2"]`,"rows[].cells[].col":"must match one of the `columns` strings (case-insensitive); omit a column for a free slot","rows[].cells[].accent":`'var(--presence)'|'var(--insight)'|'var(--warning)'`}},budgetallocator:{blurb:`A forward envelope / zero-based budget — income at the top, category bars, and a live "left to allocate" (or "over by") meter. Use to BUILD a budget or allocate a pot; for splitting a PAST total use breakdown/donut.`,optional:[`icon`,`iconColor`,`unit`,`incomeLabel`,`caption`,`footer`],itemShapes:[{prop:`envelopes`,text:`label`,textAliases:[`name`,`category`]}],propHints:{income:`the total pot to allocate, a number (e.g. 4200)`,"envelopes[].amount":`amount assigned, a number in the same unit as income`,"envelopes[].group":`'fixed'|'flexible'|'savings'`,"envelopes[].accent":`'var(--presence)'|'var(--insight)'|'var(--warning)'`,unit:`currency prefix, e.g. '$' (default), '£', '€'`}},howtosteps:{blurb:`A hands-on how-to / procedure — prep meta (time, difficulty), an optional safety warning, the tools needed, then numbered steps each with detail, a caution, a tip, and a "done when" check. For physical/practical how-tos (repairs, setup, DIY); use recipecard for cooking, processflow for abstract flows.`,optional:[`icon`,`iconColor`,`time`,`difficulty`,`warning`,`tools`,`footer`],itemShapes:[{prop:`steps`,text:`action`,textAliases:[`step`,`instruction`,`text`,`title`]}],stringItems:[`tools`],propHints:{difficulty:`'easy'|'medium'|'hard'`,warning:`a one-line safety warning shown prominently at the top, e.g. "Switch off the power first"`,tools:`array of tools/materials needed, e.g. ["Phillips screwdriver","plunger","bucket"]`}},livecompute:{blurb:`A stateful what-if: drag the levers and one honest projected number updates live, from a transparent arithmetic formula over the inputs. For "what would my mortgage be", "how long does runway last", "calories for my goal". Real values only — it recomputes what you set, never invents data.`,optional:[`icon`,`iconColor`,`caveat`,`footer`],itemShapes:[{prop:`inputs`,text:`label`,textAliases:[`name`,`lever`]}],propHints:{"inputs[].key":`short variable name (letters/digits/_) used verbatim in the formula`,formula:`arithmetic over the input keys using + - * / ^ and ( ) only — e.g. "principal * (rate/1200) / (1 - (1 + rate/1200)^(-years*12))". No function calls.`,"output.decimals":`decimal places for the result (default 0)`}},countdown:{blurb:`A live ticking countdown to a real deadline — days/hours/minutes/seconds remaining, what is due, and the consequence of missing it. Only use with a real, known date.`,optional:[`icon`,`iconColor`,`label`,`dueWhat`,`consequence`,`footer`],propHints:{target:`the real date/time the countdown runs to, ISO preferred, e.g. "2026-09-01T17:00:00" or "2026-09-01"`}},livescore:{blurb:`An interactive scorekeeper — tap +/- on each side and the ranking recomputes live, leader highlighted. For game night, classroom points, or trivia; the user drives it, nothing is invented.`,optional:[`icon`,`iconColor`,`unit`,`step`,`footer`],itemShapes:[{prop:`entries`,text:`name`,textAliases:[`player`,`team`,`label`]}],propHints:{"entries[].score":`starting score as a number (0 to begin)`,step:`points added or removed per tap (default 1)`}},nutritionlabel:{blurb:`A faithful FDA-style Nutrition Facts panel — the boxed label with serving size, a big Calories number, nutrient rows with a right-aligned %DV column (major nutrients bold, sub-nutrients indented), and an allergen line. For reading or showing a food label; for a macro split use macrobreakdown.`,optional:[`title`,`icon`,`iconColor`,`servings`,`allergens`,`caption`,`footer`],itemShapes:[{prop:`nutrients`,text:`name`,textAliases:[`nutrient`,`label`]}],stringItems:[`allergens`],propHints:{servingSize:`the serving size as printed, e.g. "1 cup (55g)"`,"nutrients[].amount":`the printed amount, e.g. "8g", "230mg"`,"nutrients[].dv":`percent Daily Value as a number (0–100+); omit where the label prints none`,"nutrients[].indent":`true for a sub-nutrient (Saturated Fat under Total Fat)`,"nutrients[].bold":`true for a major nutrient line printed in bold`,allergens:`array of allergens, e.g. ["wheat", "milk", "soy"]`}}};export{e as D};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
var e={unitconvert:{blurb:`A measurement-conversion panel — a from-amount shown prominently, then aligned "= value unit" equivalent rows (1 cup = 240 ml = 16 tbsp), tagged by category (volume / weight / length / temperature). For "how many X in a Y" or "convert A to B" asks.`,optional:[`title`,`icon`,`iconColor`,`category`,`caption`,`footer`],itemShapes:[{prop:`equivalents`,text:`unit`,textAliases:[`name`,`label`]}],propHints:{quantity:`the from-amount as a number, e.g. 1`,from:`the from-unit, e.g. "cup"`,"equivalents[].value":`the equivalent amount as a string, e.g. "240", "16"`,category:`'volume'|'weight'|'length'|'temperature'`}},packlist:{blurb:`A category-grouped packing checklist — sections (Clothes, Toiletries, Tech) of counted items with a packed-vs-total meter per group and overall, headed by the trip context (duration, weather). For "what to pack for X" asks.`,optional:[`title`,`icon`,`iconColor`,`context`,`caption`,`footer`],itemShapes:[{prop:`groups`,text:`name`,textAliases:[`category`,`label`],children:{prop:`items`,text:`label`,textAliases:[`name`,`item`,`text`]}}],propHints:{context:`trip context header, e.g. "3 days · mild, light rain"`,"groups[].items[].count":`how many to bring as a number, e.g. 3`,"groups[].items[].packed":`true once the item is packed (drives the meters)`}},pregnancyweek:{blurb:`A week-by-week pregnancy card — the gestational week with a trimester progress bar (week/40), a to-scale fruit-size comparison, the baby's length/weight, and milestone bullets. For "what's happening at N weeks" / "how big is the baby now" asks.`,optional:[`title`,`icon`,`iconColor`,`trimester`,`fruitSize`,`lengthCm`,`weightG`,`milestones`,`caption`,`footer`],stringItems:[`milestones`],propHints:{week:`gestational week as a number, 1–40`,trimester:`1|2|3 (derived from the week when omitted)`,fruitSize:`the size comparison, e.g. "banana", "pomegranate"`,lengthCm:`length in cm as a number`,weightG:`estimated weight in grams as a number`}},cycletrack:{blurb:`A menstrual / fertility calendar band — one cell per cycle day, shading the period days, the fertile window, the ovulation day, and a "today" marker, all positioned by day number against the cycle length. For cycle-tracking, fertility-window, or period-calendar asks.`,optional:[`title`,`icon`,`iconColor`,`currentDay`,`fertileWindow`,`ovulationDay`,`caption`,`footer`],propHints:{cycleLength:`total days in the cycle as a number, e.g. 28`,periodDays:`number of period days from day 1, e.g. 5`,currentDay:`today's day-of-cycle (1-based) as a number`,fertileWindow:`two day numbers [start, end], e.g. [11, 16]`,ovulationDay:`the estimated ovulation day number, e.g. 14`}},contractiontimer:{blurb:`A labor-contraction interval strip — a DISPLAY of logged contractions (not a live timer): each is a bar sized by its duration and spaced by its interval, with avg duration / frequency read-outs and a "time to go in" rule hint (e.g. 5-1-1). For tracking or reviewing contraction timing.`,optional:[`title`,`icon`,`iconColor`,`rule`,`caption`,`footer`],itemShapes:[{prop:`contractions`,text:`start`,textAliases:[`time`,`label`]}],propHints:{"contractions[].start":`wall-clock start of the contraction, e.g. "2:14 PM"`,"contractions[].durationSec":`how long the contraction lasted, in seconds`,"contractions[].intervalMin":`minutes from the start of this contraction to the start of the next`,rule:`the go-in rule of thumb, e.g. '5-1-1'`}},prayertimes:{blurb:`A daily devotional-times card — the named time slots (five salah, sunrise/sunset, liturgical hours, candle-lighting) plotted along a dawn-to-dusk sun arc, each positioned by its clock time, with the next one highlighted and read out countdown-style. For prayer-times, salah-schedule, sunrise/sunset, or daily-liturgy asks.`,optional:[`title`,`icon`,`iconColor`,`date`,`location`,`next`,`sunArc`,`caption`,`footer`],itemShapes:[{prop:`slots`,text:`name`,textAliases:[`label`,`prayer`,`slot`],requiredFields:[`time`]}],propHints:{slots:`the named times in order, each { name, time } — time a clock string like "5:42 AM" or "17:03"`,next:`the name of the upcoming slot to highlight, must match one slot's name`,sunArc:`true to draw the dawn-to-dusk sun-arc strip (default), false for a plain time list`}},labprotocol:{blurb:'A lab-bench procedure/SOP — hazard-tagged reagents and equipment beside numbered steps, each with an optional duration/temperature condition and an inline caution. General enough for a chemistry synthesis prep or a molecular-biology protocol (PCR, Western blot); an optional `cycles` group renders a bracketed "repeat ×N" block for thermal-cycling steps. Use for "protocol for X", "PCR steps", "synthesis procedure", "SOP for Y". For cooking use recipecard instead.',optional:[`icon`,`iconColor`,`reagents`,`equipment`,`cycles`,`footer`],itemShapes:[{prop:`reagents`,text:`name`,textAliases:[`reagent`,`chemical`]},{prop:`steps`,text:`text`,textAliases:[`step`,`instruction`,`description`]}],stringItems:[`equipment`],propHints:{"reagents[].hazard":`'flammable'|'corrosive'|'toxic'|'oxidizer'|'irritant'`,"reagents[].amount":`e.g. "50 mL", "2.5 µL", "10 g"`,"reagents[].conc":`e.g. "1 M", "10x buffer", "0.1% w/v"`,"steps[].duration":`e.g. "5 min", "30 sec"`,"steps[].temp":`e.g. "95°C", "4°C", "room temp"`,"steps[].caution":`a short safety note specific to this step, shown in warning tone`,cycles:`a repeated sub-procedure, e.g. PCR thermal cycling: { repeat: 30, steps: [{ text, duration, temp }] }`}},caregivercoord:{blurb:`An eldercare / multi-person care-team coordination card — a named person's medications (with who administers each), appointments, and care-team contacts. The COORDINATOR's view, not the patient's own dosing view (use medicationschedule for that). Use for "coordinate mom's care", "who's handling dad's appointments", "caregiver schedule for X".`,optional:[`icon`,`iconColor`,`medications`,`appointments`,`contacts`,`footer`],itemShapes:[{prop:`medications`,text:`name`,textAliases:[`medication`,`drug`,`med`]},{prop:`appointments`,text:`purpose`,textAliases:[`reason`,`title`,`type`]},{prop:`contacts`,text:`name`,textAliases:[`contact`]}],propHints:{relation:`the caregiver's relation to the person, e.g. "Mom", "Dad", "Grandmother"`,"medications[].times":`array of dosing time strings, e.g. ["8:00 AM", "6:00 PM"]`,"medications[].takenBy":`who administers/checks the dose, e.g. "Home aide", "Priya"`,"appointments[].date":`e.g. "Jun 20, 2026", "Thu 2pm"`,"appointments[].provider":`e.g. "Dr. Alvarez", "Maple Physical Therapy"`,"contacts[].role":`e.g. "Home aide", "Primary care physician", "Son (backup)"`}}};export{e as D};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
var e={readinglist:{blurb:`A book-club or personal reading tracker — a cover swatch, author, and status (reading/queued/done) per book, an optional star rating, and expandable book-club discussion questions. Use for "my reading list", "book club picks", "what am I reading".`,optional:[`icon`,`iconColor`,`footer`],itemShapes:[{prop:`books`,text:`title`,textAliases:[`name`,`book`]}],propHints:{"books[].status":`'reading'|'queued'|'done'`,"books[].rating":`a number 0–5, halves allowed (e.g. 4.5)`,"books[].discussionQuestions":`array of open-ended discussion question strings`}},cocktailcard:{blurb:`A drink recipe / tasting card — a numbered pour list (the order IS the build steps) closed by flavor notes (aroma/taste/finish) and a star rating. recipecard's sibling for cocktails and other mixed drinks; use recipecard for food. Use for "recipe for a negroni", "how do I make an old fashioned".`,optional:[`icon`,`iconColor`,`notes`,`rating`,`footer`],itemShapes:[{prop:`pours`,text:`item`,textAliases:[`ingredient`,`name`]}],propHints:{rating:`a number 0–5, halves allowed (e.g. 4.5)`,"pours[].qty":`e.g. "1.5 oz", "a dash", "1"`}},runninglog:{blurb:`A running/cycling training log — a dated entry list (distance, pace, route, elevation) plus a distance/pace trend chart built from those same entries. Distinct from workoutplan (gym sessions of sets/reps). Use for "log of my runs", "how's my training going", "my cycling mileage".`,optional:[`icon`,`iconColor`,`unit`,`footer`],itemShapes:[{prop:`entries`,text:`date`,textAliases:[`day`,`when`]}],propHints:{unit:`'mi'|'km' (default 'mi')`,"entries[].pace":`"8:32" min:sec per unit — only this exact mm:ss shape is charted`,"entries[].elevationGainM":`a number in meters`}},userpersona:{blurb:`A UX research persona card — an initials portrait and role header, goals (insight tint) and frustrations (warning tint) as two bullet columns, an italic pull-quote, and optional observed behaviors. Use for "build a persona for X", "who are we designing for", "UX research summary".`,optional:[`icon`,`iconColor`,`role`,`quote`,`behaviors`,`footer`],stringItems:[`goals`,`frustrations`,`behaviors`],propHints:{role:`a short role/descriptor line, e.g. "Integrating partner engineer", "Busy parent, 34"`,quote:`a short first-person line that captures their attitude, shown as a pull-quote`}},runofshow:{blurb:`An event-production timeline / cue sheet — a vertical cue list with the live cue pinned and glowing, each tagged with an initials chip for its owner. Use for "run of show for the shoot", "cue sheet for the show", "production timeline for the launch event".`,optional:[`icon`,`iconColor`,`eventDate`,`footer`],itemShapes:[{prop:`cues`,text:`cue`,textAliases:[`title`,`action`,`description`]}],propHints:{"cues[].state":`'done'|'live'|'next'|'pending'`,"cues[].owner":`a person's name — shown as an initials chip`}},podcastplanner:{blurb:`An episode-planning card — a guest header atop a numbered topic outline, each topic tagged with its chapter timecode when one lines up. Use for "plan next week's episode", "outline for the podcast", "episode with X".`,optional:[`icon`,`iconColor`,`guest`,`topics`,`chapters`,`footer`],stringItems:[`topics`],propHints:{chapters:"array of { timecode, label } paired to `topics` BY POSITION (chapters[i] tags topics[i]) — omit an index rather than guess a timecode"}},vaxschedule:{blurb:`A vaccination schedule, generalized for a pet OR a person — dose chips plotted along a horizontal age/date axis by due date, colored by status (done/due/overdue). Use for "vaccine schedule for X", "when's the next booster due", "puppy shot schedule".`,optional:[`icon`,`iconColor`,`footer`],itemShapes:[{prop:`doses`,text:`vaccine`,textAliases:[`name`,`shot`]}],propHints:{"doses[].dueAt":`a real date ("2026-08-01") OR a relative age ("8 weeks", "6 months") — keep one style across the whole list`,"doses[].status":`'done'|'due'|'overdue'`}},claimagecompare:{blurb:`The Social Security claim-age tradeoff — KPI chips for each claiming age (62/67/70) and a cumulative-payout line chart computed from the given monthly benefit at each age, with an optional marked breakeven point. Use for "when should I claim Social Security", "62 vs 67 vs 70", "claim-age tradeoff".`,optional:[`icon`,`iconColor`,`breakeven`,`footer`],propHints:{"ages[].age":`62|67|70 — exactly one of these three`,"ages[].monthlyBenefit":`the monthly dollar amount at that claiming age, a number`,breakeven:`only include this if you can name a specific crossover age — never guessed`}}};export{e as D};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
var e={weathernow:{blurb:`Present-moment weather — big current reading, an hourly scroll strip, and small stat tiles (UV, air quality, wind). Distinct from forecast (a multi-day grid); always give a real asOf timestamp.`,optional:[`icon`,`iconColor`,`location`,`feelsLikeF`,`hi`,`lo`,`hourly`,`tiles`,`footer`],itemShapes:[{prop:`hourly`,text:`time`},{prop:`tiles`,text:`label`,textAliases:[`name`]}],propHints:{"hourly[].icon":`'sun'|'cloud'|'rain'|'snow'|'storm'|'wind'`,"hourly[].precipPct":`chance of precipitation, 0-100`,asOf:`REQUIRED — a real freshness timestamp, e.g. "2:14 PM"`}},tierlist:{blurb:`An S/A/B/C tier-list ranking — a colored tier rail per row with ranked items as chips. Use for "tier list of X", "rank these S to C". An intentionally empty tier still renders as its own row.`,optional:[`icon`,`iconColor`,`caption`,`footer`],itemShapes:[{prop:`rows`,text:`tier`,textAliases:[`label`,`name`,`rank`]}],propHints:{"rows[].color":`'var(--danger)'|'var(--warning)'|'var(--insight)'|'var(--presence)'`,"rows[].items":`plain array of item names in this tier, e.g. ["Item A","Item B"]`}},paystub:{blurb:`A payslip: gross pay, itemized earnings, itemized deductions (shown subtracted), and a net-pay total. Use for "explain my paycheck", "what got deducted", "breakdown of this payslip".`,optional:[`icon`,`iconColor`,`employer`,`payDate`,`ytdNet`,`footer`],itemShapes:[{prop:`earnings`,text:`label`,textAliases:[`name`,`description`]},{prop:`deductions`,text:`label`,textAliases:[`name`,`description`]}]},taxbracket:{blurb:`A progressive income-tax bracket bar — segments sized to each bracket's real dollar span, a needle marking where the given income lands, and effective-vs-marginal rate readouts computed from the bands. Use for "what tax bracket am I in", "explain marginal vs effective rate".`,optional:[`icon`,`iconColor`,`filingStatus`,`effectiveRate`,`marginalRate`,`currency`,`footer`],propHints:{"bands[].rate":`this band's rate as a percent, e.g. 22 for 22% (not a 0-1 fraction)`,"bands[].max":`omit on the last band for an open-ended top bracket`,currency:`prefix, default '$'`}},menucard:{blurb:`A restaurant or event menu — named sections, each item priced with a dotted leader and tagged with dietary chips. Use for "make a menu for X", "dinner party menu", "coffee shop menu board".`,optional:[`icon`,`iconColor`,`venue`,`subtitle`,`footer`],itemShapes:[{prop:`sections`,text:`name`,textAliases:[`category`,`title`],children:{prop:`items`,text:`name`,textAliases:[`label`,`dish`]}}],propHints:{"sections[].items[].tags":`dietary/allergen tags, e.g. ["vegan","gluten-free","spicy"]`}},familytree:{blurb:`A genealogy chart — name/date cards laid out by generation with mating lines and sibship bars. No photos. Use for "draw my family tree", "who are my grandparents", "family tree for X".`,optional:[`icon`,`iconColor`,`rootId`,`footer`],itemShapes:[{prop:`people`,text:`name`}],propHints:{"people[].parents":`one or two parent ids, e.g. ["mom-id","dad-id"] or ["mom-id"]`,"people[].partner":`a spouse/partner id, only needed if they share no child of record`,"people[].death":`a year or date; its presence alone marks the person deceased`,rootId:`the id of the person the tree is centered on — highlights their card`}},seatingchart:{blurb:`An event floor plan — round or rectangular tables auto-arranged on a grid, each seat plotted around its table and filled with the assigned guest's initials. Use for "seat my wedding guests", "table plan for the gala", "who's sitting where".`,optional:[`icon`,`iconColor`,`venue`,`footer`],itemShapes:[{prop:`tables`,text:`label`,textAliases:[`name`]},{prop:`assignments`,text:`guest`,textAliases:[`name`]}],propHints:{"tables[].shape":`'round'|'rect', default 'round'`,"tables[].x":`omit on EVERY table to auto-arrange the whole floor on a grid`,"assignments[].seatIndex":`0-based, must be less than that table's seats`}},relationshipmap:{blurb:`A typed people graph — who's connected to whom and how (family/ally/rival/romance/colleague), with a kind-keyed legend below. Use for "map the relationships in this story", "who's connected to who", "family/rivalry web".`,optional:[`icon`,`iconColor`,`layout`,`footer`],itemShapes:[{prop:`people`,text:`name`,textAliases:[`label`]}],propHints:{"ties[].kind":`'family'|'ally'|'rival'|'romance'|'colleague'|'other'`,layout:`'circle'|'grid', default 'circle'`}}};export{e as D};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
var e={meetingnotes:{blurb:`A post-meeting recap — attendees, what was discussed, what got decided, and a checklist of action items with owners and due dates. Distinct from agenda (PRE-meeting scheduling only). Use for "summarize this meeting", "what did we decide and who owns what".`,optional:[`icon`,`iconColor`,`meetingDate`,`attendees`,`discussionPoints`,`decisions`,`footer`],itemShapes:[{prop:`actionItems`,text:`task`,textAliases:[`title`,`label`]}],stringItems:[`attendees`,`discussionPoints`,`decisions`],propHints:{attendees:`plain array of names, e.g. ["Sam","Priya"]`,discussionPoints:`plain array of short prose points, no sub-objects`,decisions:`plain array of short prose decisions, no sub-objects`,"actionItems[].dueDate":`"Fri", "Jun 20" — a short date/day string`}},stickerchart:{blurb:`A behavior/reward chart — one row per person (or a single shared row), a star for each earned day, and progress toward a reward threshold. Use for "sticker chart for brushing teeth", "reward chart for the kids", "chore streak with a reward".`,optional:[`icon`,`iconColor`,`behavior`,`people`,`rewardAt`,`footer`],stringItems:[`days`,`people`],propHints:{days:`plain array of column labels, e.g. ["Mon","Tue","Wed","Thu","Fri","Sat","Sun"]`,people:`plain array of names; omit entirely for a single shared row`,"marks[].person":"must match a `people` entry when `people` is given; omit otherwise","marks[].day":"must match a `days` entry",rewardAt:`total stickers needed across the WHOLE chart to earn the reward`}},statblock:{blurb:'A tabletop-RPG creature/character stat block, D&D / Pathfinder shaped — name and italic type line, Armor Class / Hit Points / Speed, the six-ability table with modifiers computed from the raw scores, then bold-lead-in traits, actions, and reactions between tapered rules. `abilities` is an object of the six raw scores { str, dex, con, int, wis, cha }. Use for "stat block for X", homebrew monsters, or campaign NPC sheets. Never for real-person profiles — use userpersona.',optional:[`title`,`icon`,`iconColor`,`meta`,`hpFormula`,`speed`,`saves`,`skills`,`senses`,`languages`,`challenge`,`traits`,`actions`,`reactions`,`footer`],itemShapes:[{prop:`traits`,text:`text`,textAliases:[`description`,`desc`,`detail`],requiredFields:[`name`]},{prop:`actions`,text:`text`,textAliases:[`description`,`desc`,`detail`],requiredFields:[`name`]},{prop:`reactions`,text:`text`,textAliases:[`description`,`desc`,`detail`],requiredFields:[`name`]}],stringItems:[`saves`,`skills`],propHints:{abilities:`object of the six raw scores, e.g. { "str": 14, "dex": 16, "con": 15, "int": 8, "wis": 12, "cha": 13 } — modifiers are computed from these, never supplied`,meta:`the type line, e.g. "Medium humanoid, neutral good"`,hpFormula:`the hit-dice formula printed beside the hit points, e.g. "8d8+16"`,speed:`e.g. "30 ft., fly 60 ft."`,saves:`plain array of save bonuses, e.g. ["Dex +5", "Con +4"]`,skills:`plain array of skill bonuses, e.g. ["Stealth +5", "Perception +3"]`,challenge:`challenge rating with XP, e.g. "3 (700 XP)"`}},vestingschedule:{blurb:`Equity vesting timeline: one bar per grant on a shared calendar, flat through the cliff then a computed linear ramp to fully vested, with a "today" needle and a live % vested per holder. Use for founder/employee equity, option grants, RSU schedules.`,optional:[`icon`,`iconColor`,`asOf`,`footer`],itemShapes:[{prop:`grants`,text:`holder`,textAliases:[`name`,`who`,`person`,`employee`]}],propHints:{"grants[].grantDate":`ISO date the grant started, e.g. "2023-03-01"`,"grants[].cliffMonths":`months from grantDate before anything vests (0 for no cliff)`,"grants[].vestMonths":`months from grantDate to fully vested (100%)`,asOf:`ISO date the "today" needle marks; omit to use the real current date`}},termsheet:{blurb:`Investment term sheet summary: a company/round/date header over a two-column list of deal terms (valuation, board seats, liquidation preference, pro-rata…). Use to summarize a term sheet or offer letter's key clauses.`,optional:[`icon`,`iconColor`,`company`,`round`,`date`,`footer`],itemShapes:[{prop:`terms`,text:`label`,textAliases:[`term`,`name`,`key`]}],propHints:{round:`e.g. 'Series A', 'Seed', 'Series B extension'`,date:`ISO date the term sheet is dated`}},fundraisingrounds:{blurb:`Round-by-round fundraising history: one stacked column per round (pre-money base + raised segment reaching post-money), left-to-right in round order, with lead investor and step-up multiple as captions. Use for "how has the company raised over time".`,optional:[`icon`,`iconColor`,`currency`,`footer`],itemShapes:[{prop:`rounds`,text:`name`,textAliases:[`round`,`label`]}],propHints:{currency:`ISO 4217 code, e.g. "USD" (default USD)`,"rounds[].stepUp":`valuation step-up vs. the prior round's post-money, e.g. 2.4 for a '2.4x' caption — only include when you can compute it from the prior round`}},saferterms:{blurb:`A SAFE or convertible note's headline terms: valuation cap, discount, and MFN as stat tiles, plus an interest-rate/maturity row for a note. Set instrument to 'safe' or 'note' — the rate/maturity row only shows for a note.`,optional:[`icon`,`iconColor`,`investor`,`valuationCap`,`discountPct`,`mfn`,`interestRate`,`maturityDate`,`conversionNote`,`footer`],propHints:{instrument:`'safe'|'note'`,principal:`the investment amount`,valuationCap:`the SAFE/note valuation cap; omit if the round has none`,discountPct:`conversion discount, 0-100 (e.g. 20 for 20% off the next round's price)`,mfn:`true if this holder gets the best terms of any later SAFE/note before it converts`,interestRate:`note-only: annual interest rate, 0-100. Don't set for a SAFE.`,maturityDate:`note-only: ISO date the note matures. Don't set for a SAFE.`,conversionNote:`one plain-language sentence on how/when this converts to equity`}},dilutionwaterfall:{blurb:`Ownership dilution across financing rounds: a 100%-stacked column per round, each holder keeping one consistent color with a thin ribbon connecting its segment to the next round. Use for "how did dilution play out across our rounds", cap-table evolution over time.`,optional:[`icon`,`iconColor`,`footer`],itemShapes:[{prop:`rounds`,text:`round`,textAliases:[`name`,`label`],children:{prop:`holders`,text:`holder`,textAliases:[`name`,`who`,`investor`]}}],propHints:{"rounds[].holders[].pct":`ownership % this round, 0-100; need not sum to exactly 100`}}};export{e as D};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
var e={threestatementlink:{blurb:"The three linked financial statements side by side (income statement, balance sheet, cash flow) with 2-3 curved connectors showing where a line on one feeds another (net income → retained earnings, net income → cash flow's own net income). `statements` is EXACTLY 3 entries in that order.",optional:[`icon`,`iconColor`,`links`,`currency`,`footer`],itemShapes:[{prop:`statements`,text:`name`,children:{prop:`rows`,text:`label`,textAliases:[`line`,`item`]}},{prop:`links`,text:`label`}],propHints:{"statements[]":`exactly 3 objects, name in order: 'Income Statement','Balance Sheet','Cash Flow'`,"statements[].rows[].value":`use a negative for a cost/outflow — rendered in parentheses`,"statements[].rows[].indent":`integer ≥0 — indent the label under a subtotal`,"statements[].rows[].bold":`true for a subtotal/total row (rule + tint)`,"links[].from":`a row label to connect from, e.g. 'Net income'`,"links[].to":`a row label in a LATER statement to connect to`,currency:`ISO 4217 code, e.g. "USD" (default USD)`}},yieldcurve:{blurb:`Interest rate by tenor (1M through 30Y) on a categorical axis, with any inverted stretch — a longer tenor paying less than a shorter one — auto-shaded. Optional second curve for comparison (e.g. a year ago). Use for "is the yield curve inverted", rate-environment questions.`,optional:[`icon`,`iconColor`,`compareCurve`,`footer`],itemShapes:[{prop:`curve`,text:`tenor`},{prop:`compareCurve`,text:`tenor`}],propHints:{"curve[].tenor":`a short maturity label in increasing order, e.g. "1M","3M","1Y","10Y"`,"curve[].rate":`the yield, in percent (7 for 7%, not 0.07)`}},efficientfrontier:{blurb:`Risk/return scatter of individual assets with the efficient frontier drawn as a curve — the frontier is drawn exactly as given, never fitted or computed here, so only pass points you actually believe trace it. Use for portfolio-construction and risk/return comparison questions.`,optional:[`icon`,`iconColor`,`footer`],itemShapes:[{prop:`assets`,text:`label`}],propHints:{"assets[].risk":`volatility, in percent (15 for 15%)`,"assets[].return":`expected return, in percent`,"assets[].highlight":`true for the one asset/portfolio you're calling out with a ring`,frontier:`points ALREADY ordered along the curve — this block draws them, never fits a line`}},bondladder:{blurb:`A bond ladder: one leader-style bar per rung, ordered by maturity (earliest first, never resorted by yield), with a face-value figure trailing each row. Use for laddered fixed-income holdings, CD/Treasury ladders.`,optional:[`icon`,`iconColor`,`footer`],itemShapes:[{prop:`rungs`,text:`label`,textAliases:[`name`,`bond`]}],propHints:{"rungs[].maturity":`an ISO date or short label like '3Y' — sets the row order, not authored order`,"rungs[].yieldPct":`yield to maturity, in percent`,"rungs[].faceValue":`par/face value of this rung`}},cashflowtimeline:{blurb:`The engineering-economics cash-flow diagram: a horizontal period axis (0..N) with an upward arrow per inflow and a downward arrow per outflow, arrow length scaled to the amount on one shared scale, plus a computed NPV row when a discount rate is given. flows is [{period, amount, label?}] with SIGNED amounts (+ in, − out). Never for a running balance over time — use plot. Never for loan amortization schedules — use amortization.`,optional:[`icon`,`iconColor`,`periodLabel`,`discountRate`,`currency`,`footer`],itemShapes:[{prop:`flows`,requiredFields:[`period`,`amount`]}],propHints:{"flows[].period":`integer period index ≥ 0 (0 = now); repeats allowed — same-period flows stack side by side`,"flows[].amount":`signed: positive = inflow (arrow up), negative = outflow (arrow down)`,"flows[].label":`short name shown on hover, e.g. "Salvage value"`,periodLabel:`the unit of one period, e.g. 'Year' (default), 'Month', 'Quarter'`,discountRate:`per-period rate as a FRACTION, e.g. 0.08 for 8% — adds the computed NPV row`,currency:`currency symbol prefixed to amounts, default "$"`}},trustmap:{blurb:`Privacy map of where each kind of data is stored and who can see it, with an optional security checklist.`,optional:[`icon`,`iconColor`,`checklist`,`note`,`footer`],itemShapes:[{prop:`flows`,text:`data`,textAliases:[`what`,`kind`,`label`]},{prop:`checklist`,text:`label`,textAliases:[`text`,`item`,`name`]}],propHints:{"flows[]":`{ data, location, access, retention? } — data=what it is, location=where stored, access=who can see it`,"checklist[].ok":`true (satisfied, green check) | false (a gap, amber alert)`}},kanban:{blurb:`Multi-stage workflow board with cards, assignees, and progress tags.`,optional:[`icon`,`iconColor`,`footer`]},wizard:{blurb:`Step-by-step guide or onboarding flow with status indicators.`,optional:[`icon`,`iconColor`,`activeStep`,`footer`],propHints:{"steps[].status":`'done'|'active'|'todo'|'blocked'|'risk'`}}};export{e as D};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
var e={decisiontree:{blurb:`Branching yes/no decision logic tree leading to outcomes. Optionally an ML classifier tree: a node's splitFeature+threshold renders as a learned split ('feature ≤ threshold') instead of a plain question, and classDistribution (className+count per class) renders as a class-count bar + legend at that node, the way a trained decision-tree classifier is diagrammed.`,optional:[`icon`,`iconColor`,`footer`],propHints:{"nodes[].impurityMetric":`'gini'|'entropy'`}},goaltree:{blurb:`OKR tree: objectives with key results and progress tracking.`,optional:[`icon`,`iconColor`,`footer`]},plandag:{blurb:`Directed acyclic graph: dependencies, tasks, and x/y layout.`,optional:[`icon`,`iconColor`,`footer`],propHints:{"nodes[].status":`'done'|'active'|'todo'|'blocked'|'risk'`}},milestones:{blurb:`Chronological timeline of events with dates and status.`,optional:[`icon`,`iconColor`,`footer`]},processflow:{blurb:`Linear process steps with branching notes and details.`,optional:[`icon`,`iconColor`,`footer`]},journeymap:{blurb:`Customer/user journey with emotions, actions, and touchpoints.`,optional:[`icon`,`iconColor`,`persona`,`footer`]},logicmodel:{blurb:`Program logic model: five locked columns (inputs, activities, outputs, outcomes, impact), each a short bullet list, read left to right as a causal chain.`,optional:[`icon`,`iconColor`,`footer`],itemShapes:[{prop:`columns`,text:`stage`,textAliases:[`label`,`name`,`phase`],closedVocab:!0}],propHints:{"columns[].stage":`'inputs'|'activities'|'outputs'|'outcomes'|'impact', exactly 5 entries`}},orgchart:{blurb:`Recursive org structure with parent-child relationships.`,optional:[`icon`,`iconColor`,`footer`]}};export{e as D};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
var e={issuetree:{blurb:`McKinsey-style MECE issue tree: rootQuestion broken left-to-right into mutually exclusive branches down to leaf boxes carrying a finding. nodes:[{id,label,children?(ids),isLeaf?,finding?}] — a node's top-level branches are inferred as whichever ids no other node claims as a child.`,optional:[`icon`,`iconColor`,`footer`],itemShapes:[{prop:`nodes`,text:`label`,textAliases:[`name`,`question`,`title`]}]},roadmap:{blurb:`Multi-lane quarterly roadmap with item spans and statuses.`,optional:[`icon`,`iconColor`,`footer`],stringItems:[`quarters`],propHints:{"lanes[].items[].status":`'done'|'active'|'todo'|'blocked'|'risk'`}},contentcalendar:{blurb:`Creator/marketing content calendar: platforms × weeks grid of status-colored post tiles. cells:[{platform,week,status,title?,format?}] — one entry per planned post; an unlisted (platform, week) pair renders as an empty slot.`,optional:[`icon`,`iconColor`,`footer`],stringItems:[`platforms`,`weeks`],propHints:{"cells[].status":`'idea'|'drafted'|'scheduled'|'posted'`}},headcountplan:{blurb:`HR headcount plan: a filled-vs-budgeted meter per department, open reqs, and a totals row.`,optional:[`icon`,`iconColor`,`footer`],itemShapes:[{prop:`depts`,text:`name`,textAliases:[`dept`,`department`,`team`,`group`]}]},chronologicaltimeline:{blurb:`Vertical or horizontal timeline of dated events with icons, descriptions, and status.`,optional:[`icon`,`iconColor`,`startLabel`,`endLabel`,`eras`,`footer`],itemShapes:[{prop:`events`,text:`title`,textAliases:[`label`,`name`,`heading`]}],propHints:{"events[].at":`position 0..100 along the axis`}},skilltree:{blurb:`Tiered progression / tech tree: skills in tier bands with prerequisite edges, point costs, and locked/unlocked states.`,optional:[`title`,`icon`,`iconColor`,`caption`,`footer`],propHints:{"nodes[].state":`'locked'|'available'|'unlocked'|'maxed'`,"nodes[].tier":`integer band, 0-based (0 = foundation row at top)`,"nodes[].requires":`array of node ids that must be unlocked first`}},businesscanvas:{blurb:`Business Model Canvas / Lean Canvas: the canonical nine-box strategy grid — partners | activities over resources | value proposition (center) | relationships over channels | segments, with cost structure and revenue streams splitting the bottom row. Each region is a short bullet list (string array); unfilled regions stay visible but dimmed. Never for a value chain or process sequence — use processflow. Never for org structure — use orgchart.`,optional:[`title`,`icon`,`iconColor`,`variant`,`keyPartners`,`keyActivities`,`keyResources`,`customerRelationships`,`channels`,`customerSegments`,`costStructure`,`revenueStreams`,`footer`],stringItems:[`keyPartners`,`keyActivities`,`keyResources`,`valueProposition`,`customerRelationships`,`channels`,`customerSegments`,`costStructure`,`revenueStreams`],propHints:{variant:`'bmc' | 'lean' — 'lean' relabels the same nine props onto Lean Canvas slots: keyPartners→Problem, keyActivities→Solution, keyResources→Key Metrics, valueProposition→Unique Value Proposition, customerRelationships→Unfair Advantage; channels, customerSegments, costStructure, revenueStreams keep their labels`}},blanks:{blurb:`Leave glowing holes for the 1–3 values only the user can give (a real deadline, their energy, what would make it a no) instead of guessing them.`,optional:[`icon`,`iconColor`,`intro`,`footer`],propHints:{"slots[].label":`the hole label shown to the user`,"slots[].kind":`'date'|'number'|'text'|'choice'`,"slots[].key":`lowercase slug, unique, e.g. 'deadline'`,"slots[].prompt":`the one question this hole replaces`,"slots[].accent":`var(--presence)|var(--insight)|var(--warning)`}}};export{e as D};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
var e={buttonbar:{blurb:`Gallery of button variants with ripple feedback and state tracking.`,optional:[`icon`,`iconColor`,`hint`,`color`,`footer`],itemShapes:[{prop:`buttons`,text:`label`,textAliases:[`name`,`title`,`text`]}]},textfield:{blurb:`Labeled text inputs with validation states and helper text.`,optional:[`icon`,`iconColor`,`color`,`footer`],itemShapes:[{prop:`fields`,text:`label`,textAliases:[`name`,`title`]}],propHints:{"fields[].state":`'default'|'error'|'success'`}},textarea:{blurb:`Auto-growing textarea with live character counter.`,optional:[`icon`,`iconColor`,`label`,`placeholder`,`value`,`max`,`minRows`,`color`,`footer`]},select:{blurb:`Styled single-select dropdown with optional icons and captions.`,optional:[`icon`,`iconColor`,`label`,`placeholder`,`selected`,`color`,`footer`],itemShapes:[{prop:`options`,text:`label`,textAliases:[`name`,`title`,`text`]}]},combobox:{blurb:`Searchable autocomplete with metadata hints and live filtering.`,optional:[`icon`,`iconColor`,`label`,`placeholder`,`selected`,`noun`,`color`,`footer`],itemShapes:[{prop:`items`,text:`label`,textAliases:[`name`,`title`,`text`]}]},checkboxgroup:{blurb:`Multi-select checkboxes with indeterminate select-all toggle.`,optional:[`icon`,`iconColor`,`allLabel`,`color`,`footer`],itemShapes:[{prop:`items`,text:`label`,textAliases:[`name`,`title`,`text`]}]},actionchecklist:{blurb:`Checkable next-steps the user ticks off — a plan or 30-day checklist with priority + due tags.`,optional:[`icon`,`iconColor`,`subtitle`,`color`,`footer`],itemShapes:[{prop:`items`,text:`label`,textAliases:[`task`,`step`,`text`,`name`]}],propHints:{"items[].priority":`'high'|'medium'|'low'`}},radiogroup:{blurb:`Radio cards or rows with icons, captions, and value badges.`,optional:[`icon`,`iconColor`,`layout`,`selected`,`color`,`footer`],itemShapes:[{prop:`options`,text:`label`,textAliases:[`name`,`title`,`text`]}]}};export{e as D};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
var e={switchset:{blurb:`Rows of labeled toggle switches with descriptions.`,optional:[`icon`,`iconColor`,`color`,`footer`],itemShapes:[{prop:`items`,text:`label`,textAliases:[`name`,`title`,`text`]}]},togglegroup:{blurb:`Multi or single-mode button toggle group (text formatting, alignment).`,optional:[`icon`,`iconColor`,`mode`,`hint`,`color`,`footer`],itemShapes:[{prop:`items`,text:`label`,textAliases:[`name`,`title`,`text`]}]},otp:{blurb:`Segmented one-time-passcode input with verification and resend.`,optional:[`icon`,`iconColor`,`prompt`,`length`,`code`,`resendLabel`,`color`,`footer`]},preflightchecklist:{blurb:`Aviation preflight walk-around ticked off by phase (Before Start, Before Takeoff, Shutdown…), critical items flagged.`,optional:[`icon`,`iconColor`,`aircraft`,`footer`],itemShapes:[{prop:`sections`,text:`name`,textAliases:[`title`,`phase`,`label`],children:{prop:`items`,text:`label`,textAliases:[`task`,`step`,`text`,`name`]}}]},estateplanchecklist:{blurb:`Estate-planning status board — Will, POA, Healthcare Proxy, Beneficiary designations, Digital assets — grouped, each flagged done/missing/needs-update.`,optional:[`icon`,`iconColor`,`color`,`footer`],itemShapes:[{prop:`documents`,text:`category`,textAliases:[`type`,`document`,`name`,`label`]}],propHints:{"documents[].category":`'Will'|'POA'|'Healthcare Proxy'|'Beneficiary designations'|'Digital assets'`,"documents[].status":`'done'|'missing'|'needs-update'`,"documents[].lastReviewed":`when it was last reviewed, e.g. "March 2023" (omit if never)`}},visachecklist:{blurb:`Immigration filing checklist for a specific case type (H-1B, I-485…) — required documents set apart from optional ones, each flagged done/pending/missing.`,optional:[`icon`,`iconColor`,`caseType`,`color`,`footer`],itemShapes:[{prop:`documents`,text:`name`,textAliases:[`document`,`label`,`title`]}],propHints:{caseType:`the filing this is for, e.g. "H-1B change of status", "I-485 adjustment"`,"documents[].required":`true unless the document is genuinely optional for this filing`,"documents[].status":`'done'|'pending'|'missing'`}},callout:{blurb:`Emphasized aside with optional collapsible body and tone-based accent bar.`,optional:[`icon`,`iconColor`,`tone`,`kicker`,`points`,`collapsed`,`footer`],propHints:{tone:`'info'|'success'|'warn'|'danger'|'neutral'`}},verdictcard:{blurb:`Opening verdict — a yes/no/maybe stance badge, a bold one-line call, the reason, and an honest caveat.`,optional:[`icon`,`iconColor`,`stance`,`label`,`reason`,`caveat`,`confidence`,`footer`],propHints:{stance:`'yes'|'no'|'maybe'|'caution' (drives the badge word, icon, and accent)`,confidence:`'high'|'medium'|'low' — qualitative only, never a fabricated percentage`}}};export{e as D};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
var e={scenarioset:{blurb:`Best / likely / worst outcome panels — a decision’s range without faking one precise number.`,optional:[`icon`,`iconColor`,`metric`,`highlight`,`footer`],itemShapes:[{prop:`scenarios`,text:`value`,textAliases:[`outcome`,`result`,`label`]}],propHints:{"scenarios[].kind":`'best'|'likely'|'worst'`}},worthit:{blurb:`A single-product "is it worth it for YOU" verdict — a worth-it/skip/depends call with honest price-vs-typical, a worth-it-IF / skip-IF fit split, the one deal-breaker, and who it is for. For ONE option; use compare for several, verdictcard for a generic yes/no.`,optional:[`icon`,`iconColor`,`product`,`price`,`priceNote`,`worthItIf`,`skipIf`,`dealBreaker`,`forWho`,`bottomLine`,`footer`],stringItems:[`worthItIf`,`skipIf`],propHints:{verdict:`'worth-it'|'skip'|'depends'`,priceNote:`honest price context, e.g. "vs ~$180 typical" — or say plainly if no reliable price was found`,worthItIf:`array of conditions where buying is the right call`,skipIf:`array of conditions where they should pass`}},companionnote:{blurb:`A low-chrome "I'm here with you" reflection that mirrors the feeling in the user's words — one warm line, no advice, metrics, icons, or bullets. For emotional moments where being heard matters more than information; reframecard offers a cognitive move instead, and an acute crisis needs a dedicated safety surface, not this.`,optional:[`follow`,`chip`],propHints:{reflection:`one warm second-person reflection of what the user is feeling, drawn ONLY from their words — never advice or invented facts`,chip:`optional soft cue, e.g. "I'm here" or "take your time"`}},positioncard:{blurb:`A calibrated normal→concerning scale placing a situation on a low→high continuum with the current level marked, an honest read, and concrete escalation triggers. Merges triage / normal-spectrum / reassure-watch — shows a RANGE, never a fake verdict. For "how worried should I be / is this normal / how bad is this".`,optional:[`icon`,`iconColor`,`atLevel`,`marker`,`reason`,`watchFor`,`caveat`,`footer`],itemShapes:[{prop:`levels`,text:`label`,textAliases:[`name`,`level`]}],stringItems:[`watchFor`],propHints:{"levels[].tone":`'good'|'caution'|'bad' (low→high)`,atLevel:`0-based index of the level where the situation currently falls`,watchFor:`concrete escalation triggers, e.g. ["pain spreads to your arm","fever over 39°C"]`}},differential:{blurb:`Ranked plausible explanations for a symptom, fault, or result — each with an honest likelihood band (common / less-common / rare), the tell-tale that fits, what points elsewhere, and a can't-miss-serious flag. For "what could be causing X"; shows possibilities with honest odds, never one confident answer.`,optional:[`icon`,`iconColor`,`prompt`,`caveat`,`footer`],itemShapes:[{prop:`causes`,text:`name`,textAliases:[`cause`,`label`,`explanation`]}],propHints:{"causes[].likelihood":`'common'|'less-common'|'rare'`,"causes[].serious":`true to flag a must-not-miss serious possibility even if rare`,prompt:`one concrete way to narrow it down, e.g. "check whether it worsens when you breathe in"`}},reframecard:{blurb:`A cognitive reframe of ONE stuck thought: the harsh thought shown VERBATIM, a gently-named distortion, then a warmer, truer counter-thought — the visual weight is on the shift, not a scoreboard. Offers a cognitive MOVE; companionnote only mirrors the feeling with no move, and verdictcard answers a yes/no decision.`,optional:[`title`,`icon`,`iconColor`,`distortion`,`footer`],propHints:{thought:`the harsh thought in the user’s OWN words, verbatim — never paraphrased or invented`,distortion:`gentle name for the thinking pattern, e.g. ‘catastrophizing’ | ‘mind-reading’ | ‘all-or-nothing’ | ‘fortune-telling’ | ‘overgeneralizing’`,reframe:`the warmer, truer counter-thought — kinder but honest, grounded in what is also true, not toxic positivity`}},breathpacer:{blurb:`A paced breathing exercise the user does WITH the canvas: a soft orb expands on the inhale, holds, and settles on the exhale in a continuous pure-CSS loop, with a phase caption. For acute stress or overwhelm where a moment of regulation helps more than words; companionnote reflects the feeling, this gives the body something calming to do. Set a named pattern or explicit inhale/hold/exhale seconds.`,optional:[`title`,`icon`,`iconColor`,`pattern`,`inhale`,`hold`,`exhale`,`note`],propHints:{pattern:`'478' (4-7-8 relaxing breath) | 'box' (4-4-4 even square) | 'calm' (gentle 4 in / 6 out, default)`,inhale:`inhale seconds (overrides the pattern); kept within a calm 2–12s range`,hold:`hold seconds, 0 for no hold (overrides the pattern)`,exhale:`exhale seconds (overrides the pattern); kept within a calm 2–14s range`}},copingmenu:{blurb:`A permission-giving menu of doable-now coping options, each tagged by CAPACITY (effort + time) so an overwhelmed person can pick what feels possible — no pressure to do all of them. For comfort/overwhelm moments; use a plain checklist for neutral to-dos, companionnote when being heard matters more than doing anything.`,optional:[`title`,`icon`,`iconColor`,`intro`,`footer`],itemShapes:[{prop:`options`,text:`label`,textAliases:[`name`,`action`,`title`]}],propHints:{"options[].effort":`'low'|'medium'|'high'`,"options[].time":`a small honest commitment, e.g. "2 min" or "10 min"`,intro:`a gentle permission line, e.g. “Pick whatever feels possible — you don’t have to do all of them.”`}}};export{e as D};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
var e={subtextdecode:{blurb:`Decodes a received message the user is unsure about: the verbatim message pinned at top, then 2–3 ranked interpretations each with an honest likelihood band and the exact textual cue it rests on, a "you can't know for sure" line, and one clarifying reply to send. The caution flavor reframes the readings as red flags for a scam/manipulation screen. For "what did they mean by this / is this a scam"; differential is for causes of a fault or symptom, not tone in someone's words.`,optional:[`icon`,`iconColor`,`flavor`,`cantKnow`,`reply`,`footer`],itemShapes:[{prop:`readings`,text:`interpretation`,textAliases:[`meaning`,`reading`,`label`]}],propHints:{flavor:`'tone' (decode intent/feeling) | 'caution' (reframe readings as red flags / scam screen)`,"readings[].likelihood":`'most likely'|'possible'|'less likely'`,message:`the received message reproduced VERBATIM — never paraphrased or invented`,"readings[].cue":`the exact word or phrasing in the message this reading rests on (or, with flavor:caution, the red flag)`,cantKnow:`an honest line that you cannot be certain of intent from text alone`,reply:`one short clarifying message the user could send to find out`}},rehearsal:{blurb:`A branching playbook for a hard conversation: a quotable opener, then 2-3 likely reactions as branches (each with a coached reply and why it works) and a graceful exit line. Framed as rehearsal, not prediction. For "how do I bring this up / what do I say if they react badly"; dialogue gives a fixed scripted exchange and decisiontree a logic flowchart instead.`,optional:[`icon`,`iconColor`,`exit`,`footer`],itemShapes:[{prop:`branches`,text:`reaction`,textAliases:[`response`,`objection`]}],propHints:{opener:`the quotable line to START the conversation, in the user’s own voice`,"branches[].reaction":`how the other person might react, completing "If they …" (e.g. "get defensive", "go quiet", "say it is not a big deal")`,"branches[].say":`the coached, quotable response to THAT reaction`,"branches[].why":`optional one line on why that response works`,exit:`a graceful line to wrap up if it stalls, e.g. "Let us pick this up after dinner"`}},messagescriptset:{blurb:`A bundle of ready-to-send messages aimed at SEVERAL targets at once — each a card with a channel chip, the exact copy-friendly line to send, and an optional "if they push back" rebuttal. For "write me what to say to cancel / dispute / ask X across these N places"; use compose’s messagedraft for ONE polished message to ONE recipient.`,optional:[`icon`,`iconColor`,`intro`,`footer`],itemShapes:[{prop:`scripts`,text:`message`,textAliases:[`line`,`script`,`text`]}],propHints:{"scripts[].channel":`'email'|'phone'|'in-app'|'chat'`,"scripts[].target":`who the line is for: the recipient, vendor, or service`,"scripts[].message":`the exact line to send, in the user’s own words — never an invented fact`,"scripts[].rebuttal":`what to say if they push back or counter-offer`}},talktrack:{blurb:`A speakable, word-for-word talk-track / teleprompter — the literal sentences to SAY, in order, each large and calm, with a small delivery beat ("pause here", "~15s") beside it. For a toast, pitch, interview answer, or hard phone call. Distinct from takeaways (bullets to remember): these are spoken lines to read aloud.`,optional:[`icon`,`iconColor`,`totalTime`,`footer`],itemShapes:[{prop:`lines`,text:`say`,textAliases:[`line`,`text`,`words`]}],propHints:{"lines[].say":`the literal words to say for this line — one sentence or beat at a time`,"lines[].beat":`a short delivery/timing note, e.g. "pause here", "slow down", or "~15s"`,totalTime:`honest overall length, e.g. "~90s" — never invented precision`}},lifeline:{blurb:`A calm crisis-support surface: a warm opener, REAL verified helplines (region-appropriate) made prominent and tappable, an honest note that Mavéa is not a substitute for a person, and an optional grounding offer. Mavéa leads with this on an acute self-harm / abuse / emergency turn — never a chart or a reflection.`,optional:[`title`,`message`,`safetyQuestion`,`grounding`,`reassurance`],itemShapes:[{prop:`resources`,text:`name`,textAliases:[`service`,`line`,`label`]}],propHints:{"resources[].contact":`how to reach them, e.g. "Call or text 988"`,"resources[].href":`a tel: or sms: link, e.g. "tel:988" or "sms:741741"`,message:`a warm, validating opener for the user's situation — never clinical or alarming`,resources:`REAL, verified crisis helplines for the user's region — never invented numbers`}},proscons:{blurb:`A decision weighed as two opposing columns — PROS vs CONS — with weight indicators and an optional verdict tally. Never for a neutral side-by-side feature comparison — use compare or datatable.`,optional:[`icon`,`iconColor`,`prosLabel`,`consLabel`,`verdict`,`footer`],itemShapes:[{prop:`pros`,text:`text`,textAliases:[`label`,`name`,`title`]},{prop:`cons`,text:`text`,textAliases:[`label`,`name`,`title`]}]},takeaways:{blurb:`Numbered key takeaway list with optional detail per item; click to mark done.`,optional:[`icon`,`iconColor`,`heading`,`footer`],itemShapes:[{prop:`items`,text:`text`,textAliases:[`label`,`name`,`title`,`point`]}]},faq:{blurb:`Accordion of Q&A pairs; click to expand/collapse, optionally multi-open.`,optional:[`icon`,`iconColor`,`defaultOpen`,`multi`,`footer`],itemShapes:[{prop:`items`,text:`q`,textAliases:[`question`,`title`,`label`]}]}};export{e as D};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
var e={tabs:{blurb:`Tabbed panel switcher with labeled tabs, optional icons and count badges.`,optional:[`icon`,`iconColor`,`defaultTab`,`accent`,`footer`],itemShapes:[{prop:`tabs`,text:`label`,textAliases:[`name`,`title`,`text`]}]},divider:{blurb:`Section divider with heading, optional eyebrow, count badge, and jump chips.`,optional:[`icon`,`iconColor`,`eyebrow`,`sub`,`badge`,`badgeColor`,`chips`,`footer`],itemShapes:[{prop:`chips`,text:`label`,textAliases:[`name`,`text`,`title`]}]},pullquote:{blurb:`Large attributed quote with tone accent bar; cycle through variant quotes.`,optional:[`icon`,`iconColor`,`author`,`role`,`tone`,`variants`,`footer`],itemShapes:[{prop:`variants`,text:`quote`,textAliases:[`text`,`quote`,`body`]}],propHints:{tone:`'info'|'success'|'warn'|'danger'|'neutral'`}},storystrip:{blurb:`Sequential narrative panels (comic-strip style); stepper advances through story.`,optional:[`icon`,`iconColor`,`start`,`footer`],itemShapes:[{prop:`panels`,text:`heading`,textAliases:[`title`,`label`,`name`]}]},casestudy:{blurb:`Case study with setup→action→result→lesson sections; expand each to drill in.`,optional:[`icon`,`iconColor`,`defaultStage`,`footer`],propHints:{defaultStage:`'setup'|'action'|'result'|'lesson'`}},deflist:{blurb:`Definition/glossary list with live search box to filter terms.`,optional:[`icon`,`iconColor`,`placeholder`,`footer`],itemShapes:[{prop:`items`,text:`term`,textAliases:[`label`,`name`,`title`,`word`]}]},accordion:{blurb:`Expandable content sections; click to open and close each one.`,optional:[`icon`,`iconColor`,`defaultOpen`,`multi`,`footer`],itemShapes:[{prop:`sections`,text:`label`,textAliases:[`title`,`name`,`heading`]}]},scansionmark:{blurb:`Poetry scansion / prosody markup — stress marks (´/˘) above each syllable, foot-divider bars, rhyme letters in the margin under a named meter.`,optional:[`title`,`icon`,`iconColor`,`meter`,`caption`,`footer`],propHints:{meter:`the named metre, e.g. 'iambic pentameter' | 'trochaic tetrameter'`,"lines[].syllables[].stress":`'stressed'|'unstressed'`,"lines[].feet":`syllable indices where a foot boundary falls, e.g. [2,4,6,8]`,"lines[].rhyme":`the rhyme-scheme letter, e.g. 'a' | 'b'`}}};export{e as D};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
var e={thoughtrecord:{blurb:`A full CBT thought record: the triggering situation, the automatic thought and how it felt, evidence weighed for and against it, then the balanced thought and how the feeling shifted. For working through ONE stuck thought step by step; reframecard is the lighter single-shift version with no evidence-weighing, and proscons weighs a decision, not a belief.`,optional:[`title`,`icon`,`iconColor`,`emotionIntensity`,`evidenceFor`,`evidenceAgainst`,`alternativeThought`,`outcomeEmotion`,`outcomeIntensity`,`footer`],propHints:{situation:`the trigger, in plain words — where/when the thought showed up`,automaticThought:`the thought as close to verbatim as possible`,emotion:`the felt emotion in one or two words, e.g. "Anxious", "Ashamed"`,emotionIntensity:`0–100, how strong it felt at the time (the standard CBT scale)`,evidenceFor:`a few facts that seem to support the automatic thought`,evidenceAgainst:`a few facts that complicate or contradict it`,alternativeThought:`the balanced thought that weighs both columns honestly`,outcomeEmotion:"the emotion after weighing the evidence, if it shifted from `emotion`",outcomeIntensity:`0–100, the intensity after the reframe`}},dosdonts:{blurb:`The dos and don'ts of something — paired guidance, each recommended move sat next to the thing it replaces, with an optional one-line why and a hazard flag for genuinely unsafe advice. For etiquette, technique, form, safety and interview coaching ("what do I say / not say", "how do I not screw this up"). Use INSTEAD of proscons for advice: pros/cons headers frame it as a decision the user never posed. Sides need not be even — leave a side out when a line has no counterpart.`,optional:[`icon`,`iconColor`,`heading`,`doLabel`,`dontLabel`,`footer`],propHints:{pairs:"array of pair objects using exactly the keys `do` and `dont` — a side sent as `avoid`, `don't`, `bad`, or `good` is discarded","pairs[].do":'the recommended move, under the key `do`, e.g. "Ask what success looks like in the first 90 days"',"pairs[].dont":'the thing it replaces, under the key `dont` (no apostrophe) — optional when a line has no counterpart, e.g. "Ask what the salary is"',"pairs[].why":`optional: one short line on why the contrast matters`,"pairs[].hazard":`optional: true ONLY for a genuine safety/legal/irreversible risk, not ordinary bad form`,"pairs[].topic":`optional: a short label for what the pair is about, e.g. "Opening line"`}},variantswitch:{blurb:`The SAME answer re-framed along one axis — warm/neutral/firm, short/standard/detailed, for an exec vs an engineer vs a five-year-old — shown one framing at a time on a labelled switch, each body a few paragraphs. For "say that firmer / shorter / explain it for a 5-year-old". Pick over variants (compose) when the versions run to multiple paragraphs and stacking them all would be a wall of text, and over tabs, whose panels are different sections rather than the same content said differently. Text only — it cannot hold charts or nested blocks.`,optional:[`icon`,`iconColor`,`axis`,`subject`,`defaultVariant`,`accent`,`footer`],itemShapes:[{prop:`variants`,text:`label`,textAliases:[`name`,`title`,`variant`]}],propHints:{axis:`what the versions vary along, e.g. "Tone", "Length", "Audience"`,subject:`optional: the shared thing being re-framed, quoted above the switch`,"variants[].label":`the switch label, e.g. "Firm", "One paragraph", "For an exec"`,"variants[].paragraphs":`the body of this framing as a plain array of paragraph strings, e.g. ["First para.", "Second para."] — 1–4 paragraphs of up to ~900 characters each, no HTML and no markdown`,"variants[].when":`optional: one line on when to reach for this framing`,defaultVariant:`index of the framing to show first (0-based)`},contentBudget:{fields:{variants:{maxItems:6},"variants[].paragraphs":{maxItems:10},"variants[].paragraphs[]":{maxGraphemes:900,maxLines:12},subject:{maxGraphemes:240,maxLines:4}}}},equationblock:{blurb:`Rendered math equation (LaTeX or MathML) with an optional caption.`,optional:[`icon`,`iconColor`,`tex`,`number`,`caption`,`inline`,`footer`],propHints:{math:`a LaTeX string is preferred for anything beyond a single symbol — e.g. "\\\\frac{a}{b}", "\\\\int_0^1 x^2\\\\,dx", or a matrix "\\\\begin{bmatrix}1&0\\\\\\\\0&1\\\\end{bmatrix}". A declarative MathNode tree ({t:"frac",num:"a",den:"b"}) also works.`,tex:"optional explicit LaTeX string (same effect as putting LaTeX in `math`); wins if both set"}},numberline:{blurb:`Horizontal number line with marked points, ranges, and directional arrows.`,optional:[`icon`,`iconColor`,`step`,`unit`,`points`,`intervals`,`footer`],itemShapes:[{prop:`points`,text:`label`,textAliases:[`name`,`text`,`annotation`]}],propHints:{"points[].open":`true for an open/excluded endpoint (hollow dot)`}},workedexample:{blurb:`Numbered steps walking through a solved problem, each with formula, value, and explanation.`,optional:[`icon`,`iconColor`,`problem`,`result`,`progressive`,`footer`],itemShapes:[{prop:`steps`,text:`label`,textAliases:[`title`,`heading`,`name`]}],propHints:{"steps[].math":`optional MathNode tree for the expression at this step`,"steps[].why":`plain-English explanation (HTML)`}},quiz:{blurb:`ONE interactive multiple-choice question: selectable options, the answer revealed on pick, optional explanation. A single standalone self-check — it never scores and never advances. Never for a set of questions or a graded run ("quiz me on chapter 7", "10 practice questions", "mock exam"): use quizsession.`,optional:[`icon`,`iconColor`,`explanation`,`footer`],itemShapes:[{prop:`options`,text:`text`,textAliases:[`label`,`choice`,`answer`]}],propHints:{"options[].correct":`true on exactly one option`}},quizsession:{blurb:'A GRADED RUN of questions: one multiple-choice question on screen at a time, a progress rail tracking answered/correct/missed, the explanation revealed only after answering, and a wrap-up score that can re-queue just the missed ones for a second round. Use this whenever the ask is for MORE THAN ONE question — "quiz me on chapter 7", "test me on the 50 states", "10 practice questions", "mock exam" — and put every question in ONE quizsession block; emitting a row of separate `quiz` blocks shows every answer up front and never scores. Use `quiz` only for a single standalone self-check.',optional:[`icon`,`iconColor`,`subject`,`passMark`,`footer`],itemShapes:[{prop:`questions`,text:`question`,textAliases:[`prompt`,`q`,`text`],children:{prop:`options`,text:`text`,textAliases:[`label`,`choice`,`answer`]}}],propHints:{"questions[].options":"2–6 choices; exactly ONE has `correct: true`","questions[].options[].correct":`true on exactly one option per question`,"questions[].options[].feedback":`optional one-line reply shown when THIS option is picked`,"questions[].explanation":`why the right answer is right — held back until they answer`,"questions[].tag":`short label for the question, e.g. "Glycolysis", "Hard"`,subject:`what the run covers, e.g. "Chapter 7 · Cellular respiration"`,passMark:`pass threshold as a percentage 0-100 — omit when the run is not pass/fail`},contentBudget:{fields:{questions:{maxItems:40}}}}};export{e as D};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
var e={flashcard:{blurb:`Flip card: question on the front, answer on the back; works for vocab, facts, formulas.`,optional:[`icon`,`iconColor`,`footer`],itemShapes:[{prop:`cards`,text:`front`,textAliases:[`term`,`question`,`prompt`]}]},molecularstructure:{blurb:`Accurate skeletal molecular structure. Give it a SMILES string and it computes correct 2-D geometry (atoms, bonds, formula) — the right way to show any real molecule or drug.`,optional:[`icon`,`iconColor`,`smiles`,`atoms`,`bonds`,`formula`,`footer`],itemShapes:[{prop:`atoms`,text:`el`,textAliases:[`element`,`symbol`,`label`]}],propHints:{smiles:`PREFERRED. The compound as a SMILES string (e.g. aspirin = "CC(=O)Oc1ccccc1C(=O)O", caffeine = "Cn1cnc2c1c(=O)n(C)c(=O)n2C"). The component computes the exact 2-D structure and formula from it — supply this for ANY real molecule rather than placing atoms yourself.`,atoms:"Only for a tiny hand-authored example when no SMILES applies; otherwise use `smiles`. Each atom: { el, x (0..100), y (0..100), implicit?: true for a bare carbon vertex }.","bonds[].order":`1 (single), 2 (double), or 3 (triple)`}},periodictable:{blurb:`Full 118-element periodic table with element cells highlighted or focused by category or property.`,optional:[`icon`,`iconColor`,`categories`,`footer`],itemShapes:[{prop:`elements`,text:`name`,textAliases:[`symbol`,`element`,`label`]}],propHints:{"elements[].z":`atomic number (also drives canonical grid placement)`,"elements[].on":`true to emphasise/highlight this element`}},bodymap:{blurb:`Human body figure with named regions highlighted — anatomy, injury, muscle groups, health focus areas. Front or back view; omit regions for a fully-labelled body.`,optional:[`icon`,`iconColor`,`regions`,`side`,`footer`],itemShapes:[{prop:`regions`,text:`label`,textAliases:[`name`,`area`,`region`]}],propHints:{"regions[].id":`front: 'head'|'neck'|'leftShoulder'|'rightShoulder'|'chest'|'abdomen'|'hips'|'leftUpperArm'|'rightUpperArm'|'leftForearm'|'rightForearm'|'leftHand'|'rightHand'|'leftThigh'|'rightThigh'|'leftKnee'|'rightKnee'|'leftShin'|'rightShin'|'leftFoot'|'rightFoot'; back (side:'posterior') adds 'upperBack'|'lowerBack'|'glutes'|'leftHamstring'|'rightHamstring'|'leftCalf'|'rightCalf'; coarse: 'leftArm'|'rightArm'|'leftLeg'|'rightLeg'|'torso'`,side:`'anterior' (front) | 'posterior' (back)`}},geometrycanvas:{blurb:`A 2-D Cartesian canvas for geometry and math: points, line segments, polygons, circles, labeled vectors (arrows), and angle markers. Auto-fits the axis range from the data.`,optional:[`icon`,`iconColor`,`xRange`,`yRange`,`xLabel`,`yLabel`,`showGrid`,`points`,`segments`,`polygons`,`circles`,`vectors`,`angles`,`annotations`,`footer`],propHints:{"points[].x":`x-coordinate in data units`,"points[].y":`y-coordinate in data units`,"segments[].extend":`'none' (a plain segment), 'ray' (extend from x2,y2 outward), or 'line' (extend both ways)`,"vectors[].dx":`horizontal component — (x+dx, y+dy) is the tip of the arrow`,"vectors[].dy":`vertical component (positive = up)`,"angles[].rightAngle":`true to draw a square corner marker instead of an arc`,xRange:`auto-computed from data when omitted; supply to override, e.g. [-3, 3]`,yRange:`auto-computed from data when omitted`}},freebodydiagram:{blurb:`A physics free-body diagram: a labeled object with named force arrows radiating from it at specified angles and optional magnitudes.`,optional:[`icon`,`iconColor`,`object`,`footer`],itemShapes:[{prop:`forces`,text:`label`,textAliases:[`name`,`force`,`description`]}],propHints:{"forces[].angle":`degrees CCW from the right: 0=→, 90=↑, 180=←, 270=↓. Use 90 for normal force (up), 270 for gravity (down).`,"forces[].magnitude":`optional magnitude in Newtons, shown in parentheses on the label`,object:`label on the central box, e.g. "Block", "Car", "Person"`}},musicstaff:{blurb:`A 5-line music staff with notes: treble or bass clef, note heads, stems, flags, accidentals (♯ ♭), ledger lines, time signature, and optional tempo. Use for music theory, scales, melodies.`,optional:[`icon`,`iconColor`,`clef`,`timeSignature`,`tempo`,`footer`],itemShapes:[{prop:`notes`,text:`pitch`,textAliases:[`note`,`name`]}],propHints:{"notes[].pitch":`Scientific notation: letter + optional accidental + octave. E.g. "C4" (middle C), "G4", "F#4", "Bb3". Treble clef comfortable range: C4–F5; bass clef: E2–A3.`,"notes[].duration":`"whole" | "half" | "quarter" | "eighth". Default "quarter".`,clef:`"treble" (default) or "bass"`,timeSignature:`e.g. "4/4", "3/4", "6/8"`}},vectorspace:{blurb:`A linear-algebra vector canvas: 2-D vectors from the origin as colored arrows, optional post-transformation dashed arrows, and optional span shading. For eigenvectors, basis vectors, and linear-transformation topics.`,optional:[`icon`,`iconColor`,`transformed`,`showSpan`,`xRange`,`yRange`,`footer`],itemShapes:[{prop:`vectors`,text:`label`,textAliases:[`name`,`vector`]}],propHints:{"vectors[].x":`tip x-coordinate (tail is always at the origin)`,"vectors[].y":`tip y-coordinate (positive = up)`,transformed:`the same vectors after a linear transformation — shown dashed`,showSpan:`shade the parallelogram spanned by the first two vectors`}}};export{e as D};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
var e={reactionmechanism:{blurb:`A chemistry reaction mechanism: compounds/intermediates connected by reaction arrows with optional conditions (temperature, reagents) above each arrow. Use for SN1/SN2, addition, substitution, and multi-step organic reactions.`,optional:[`icon`,`iconColor`,`reactionType`,`conditions`,`footer`],itemShapes:[{prop:`steps`,text:`label`,textAliases:[`formula`,`compound`,`name`]}],stringItems:[`conditions`],propHints:{"steps[].label":`compound name or formula as HTML — use <sub> for subscripts, e.g. "CH<sub>3</sub>OH"`,"steps[].tag":`role label: "reactant", "intermediate", or "product"`,"steps[].color":`use "var(--warning)" for unstable intermediates`,conditions:`array of condition strings, one per arrow: ["NaOH, H₂O", "Δ, 2h"]`,reactionType:`reaction class shown as a badge, e.g. "SN2", "Aldol", "E2"`}},chorddiagram:{blurb:`A guitar/ukulele chord diagram — fretboard grid with finger positions, open/muted markers, and optional note names. Use for any "how do I play X chord" or music theory ask.`,optional:[`icon`,`iconColor`,`fingers`,`capoFret`,`notes`,`instrument`,`footer`],stringItems:[`notes`],propHints:{frets:`array of 6 (guitar) or 4 (ukulele) values: 0=open, "x"=muted, 1–12=fret number`,instrument:`"Guitar"|"Ukulele"|"Bass"`}},developmentmilestone:{blurb:`Child developmental milestones by age and domain (motor, language, social, cognitive). Use for parenting, pediatric, or child development asks.`,optional:[`icon`,`iconColor`,`footer`],propHints:{"domains[].domain":`"motor"|"language"|"social"|"cognitive"`}},teachdiagram:{blurb:`An animated step-by-step figure that builds up on screen — geometry proofs, free-body diagrams, anatomy, circuits, chemical structures: any concept with REAL spatial geometry, understood by watching it get assembled stroke by stroke. Each step adds vector shapes + labels and auto-plays paced to speaking time. Never for an abstract business/process sequence with no literal shape to draw — a funding lifecycle, a hiring pipeline, a sales funnel — the model ends up inventing meaningless disconnected lines; use processflow, journeymap, or milestones.`,optional:[`icon`,`iconColor`,`baseShapes`,`baseLabels`,`ratio`,`footer`],propHints:{"steps[].add":`array of DiagShape: {kind:"circle"|"rect"|"line"|"polygon"|"path", coords per kind, color?:"var(--presence)|var(--insight)|var(--warning)|var(--text-muted)", fill?, arrow?}`,"steps[].labels":`optional callout labels: [{x, y, text, side:"left"|"right"|"top"|"bottom"}]`}},gridmatrix:{blurb:`A 2-D grid table with optional row/column headers. Supports Punnett squares, truth tables, multiplication tables, ten-frames, or a general labeled matrix.`,optional:[`icon`,`iconColor`,`variant`,`rowHeaders`,`colHeaders`,`highlight`,`note`,`footer`],stringItems:[`rowHeaders`,`colHeaders`],propHints:{variant:`"punnett" | "truth" | "multiplication" | "tenframe" | "grid"`,cells:`2-D array of cell values, e.g. [["TT","Tt"],["Tt","tt"]]`,highlight:`array of [rowIndex, colIndex] to accent`}},fractionbar:{blurb:`Segmented fraction bars (with optional pies) for one or more fractions. Ideal for teaching fractions, probability, ratios, and part-whole relationships.`,optional:[`icon`,`iconColor`,`showPie`,`note`,`footer`],propHints:{"fractions[].numerator":`filled segments`,"fractions[].denominator":`total segments`,"fractions[].label":`row label, e.g. "Class A" or "3/8 chance"`}},wave:{blurb:`A labelled sine wave for physics, sound, and signals: one or two sine waves over an equilibrium axis with measurement annotations — wavelength (λ, crest-to-crest), amplitude (A, centre-to-crest), and an optional period (T) marker. Computes the curve from amplitude, wavelength, and phase. Use for waves/oscillations, NOT an audio player.`,optional:[`icon`,`iconColor`,`xUnit`,`showWavelength`,`showAmplitude`,`showPeriod`,`footer`],itemShapes:[{prop:`waves`,text:`label`,textAliases:[`name`,`wave`]}],propHints:{"waves[].amplitude":`peak displacement from the centre line (y-axis units)`,"waves[].wavelength":`distance over which the wave repeats, crest to crest (must be > 0)`,"waves[].phase":`phase shift in RADIANS (horizontal shift); default 0`,xUnit:`horizontal-axis label, e.g. "x (m)", "time (ms)", "distance"`,showPeriod:`true to mark the period T along the axis — use when the x-axis is time`}},energydiagram:{blurb:`A reaction-coordinate energy-profile diagram: energy vs reaction progress, a curve from reactants over the transition-state peak(s) to products, with the activation energy (Ea) and overall ΔH computed and marked with labelled arrows. Use for reaction kinetics/thermodynamics (endo/exothermic, catalysis lowering Ea) and multi-step mechanisms with intermediate wells.`,optional:[`icon`,`iconColor`,`steps`,`reactants`,`ts`,`products`,`reactantLabel`,`tsLabel`,`productLabel`,`yLabel`,`yUnit`,`xLabel`,`showEa`,`showDelta`,`footer`],itemShapes:[{prop:`steps`,text:`label`,textAliases:[`name`,`stage`]}],propHints:{"steps[].energy":`energy of this point on the y-axis, in the chosen unit (e.g. kJ/mol)`,"steps[].kind":`'reactant' | 'ts' (a transition-state peak) | 'intermediate' (a well between peaks) | 'product'`,reactants:"endpoint form: reactant energy (used when `steps` is omitted)",ts:`endpoint form: transition-state (peak) energy; omit for a barrierless profile`,products:`endpoint form: product energy`,yUnit:`energy unit, e.g. "kJ/mol" or "eV" — shown on the axis and the Ea/ΔH readouts`,showEa:`draw the activation-energy arrow (reactant level → first peak). Default true`,showDelta:`draw the ΔH arrow (reactant level → product level). Default true`}}};export{e as D};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
var e={phylotree:{blurb:`A phylogenetic / evolutionary tree (cladogram): taxa at the tips, branches joining at shared common ancestors, read left to right. Computes a tidy layout from a nested {name, children} tree — tips evenly spaced, ancestors at branch points. Optional clade brackets and trait marks. For evolution, taxonomy, "how are these species related".`,optional:[`icon`,`iconColor`,`clades`,`traits`,`distanceLabel`,`footer`],itemShapes:[{prop:`clades`,text:`label`},{prop:`traits`,text:`label`}],propHints:{root:`A nested tree: { name?, children?: [...] }. A node with no children is a tip (a species). Internal nodes are common ancestors and usually have no name.`,"root.children[].length":`optional branch length (time or substitutions). Supplying lengths anywhere draws a scaled phylogram with a distance axis; omit everywhere for a plain cladogram (topology only).`,"root.children[].support":`optional branch support, e.g. a bootstrap percentage, drawn at the node`,"clades[].tips":`array of tip names (must match name in the tree) the bracket groups`,"traits[].on":`the tip or ancestor name whose incoming branch the trait mark sits on`,distanceLabel:`axis label for a phylogram, e.g. "Millions of years ago" — only shown with branch lengths`}},parsetree:{blurb:`A sentence syntax / constituency parse tree for grammar: the literal words at the leaves, phrase nodes (S, NP, VP, PP, …) above joining down to them, drawn top-down with a tidy auto-computed layout. Use for grammar lessons, sentence diagramming, and any constituency/expression tree.`,optional:[`icon`,`iconColor`,`colorPos`,`sentence`,`footer`],propHints:{"root.label":`the constituent tag, e.g. 'S' for the whole sentence`,"root.children":"nested constituents; a phrase has its own children, a word leaf has a `word` instead","children[].word":"the literal word at a leaf; when set, `label` is the part-of-speech tag drawn above it (e.g. { label: 'N', word: 'fox' })",colorPos:`true to colour the part-of-speech leaves instead of muting them`,sentence:`optional plain-text sentence shown above the tree for context`}},celldiagram:{blurb:`A labelled schematic biological cell: membrane outline with organelles (nucleus, mitochondria, ER, Golgi, ribosomes…), each a recognisable glyph with a leader line to its label. Animal or plant (plant adds cell wall, chloroplast, vacuole). List which organelles to show + highlight — the component owns the layout. Pick it for cell-biology explainers.`,optional:[`icon`,`iconColor`,`cellType`,`parts`,`footer`],itemShapes:[{prop:`parts`,text:`key`,textAliases:[`name`,`organelle`]}],propHints:{cellType:`'animal' (default) | 'plant' (adds the cell wall, chloroplast, and central vacuole)`,"parts[].key":`the organelle to draw: 'nucleus'|'nucleolus'|'mitochondria'|'er'|'golgi'|'ribosomes'|'vacuole'|'cytoplasm'|'membrane'; animal-only: 'lysosome'|'centrosome'; plant-only: 'chloroplast'|'cell wall'. Synonyms like 'ribosome','rough ER','central vacuole','plasma membrane' resolve too. Organelles that don't fit the cellType are skipped.`,"parts[].highlight":`true to emphasise this organelle (its glyph + label take the accent colour)`,"parts[].note":`a short fact shown beside the cell in the legend`,"parts[].color":`highlight colour, e.g. var(--presence) | var(--insight) | var(--warning)`}},raydiagram:{blurb:`An optics ray diagram: a lens (convex/concave) or mirror (concave/convex) on a principal axis with an object arrow, the standard construction rays, marked focal points F, and the image it forms. The thin-lens/mirror equation is solved from the data, so image position, size and nature (real/virtual, upright/inverted) are computed correctly. Pick it for image formation, magnifiers, focal length, and magnification questions.`,optional:[`icon`,`iconColor`,`element`,`objectHeight`,`footer`],propHints:{element:`'convex-lens' (converging) | 'concave-lens' (diverging) | 'concave-mirror' (converging) | 'convex-mirror' (diverging). Default 'convex-lens'.`,objectDistance:`distance from the element in axis units (object is drawn to the left), e.g. 30`,focalLength:`focal length magnitude in the same units, e.g. 10 — the type sets its sign`,objectHeight:`object arrow height in axis units (default 1); only its ratio to the image matters`}},vectorfield:{blurb:`A 2-D vector / slope field on a lattice: a short glyph at each sampled grid point showing the field direction (and magnitude by colour/length) — arrows for a vector field {x,y,u,v}, headless tangent dashes for a slope field {x,y,slope}. Overlay solution curves / streamlines. Glyph lengths are normalised from the lattice spacing; axes auto-fit. Pick it for differential-equation slope fields, gradient (∇f) fields, and physics E/B/gravitational/fluid-flow fields.`,optional:[`icon`,`iconColor`,`curves`,`xRange`,`yRange`,`xLabel`,`yLabel`,`mode`,`normalize`,`colorByMagnitude`,`footer`],itemShapes:[{prop:`curves`,text:`label`,textAliases:[`name`,`curve`]}],propHints:{"samples[].x":`sample location, x in data units (best on a regular grid of points)`,"samples[].y":`sample location, y in data units`,"samples[].u":`vector field: horizontal component at (x,y); positive = right`,"samples[].v":`vector field: vertical component at (x,y); positive = up`,"samples[].slope":`slope field: tangent dy/dx at (x,y), drawn as a headless dash — use for y'=f(x,y) ODEs (give EITHER u,v OR slope, not both)`,"curves[].points":`a solution curve / streamline as an ordered array of {x,y} points`,mode:`'vector' (arrows from u,v) | 'slope' (dashes from slope). Auto-detected when omitted.`,normalize:`true (default) draws every arrow the same length (direction-only); false scales length by magnitude`,colorByMagnitude:`true (default) ramps glyph colour from low to high field magnitude`,xRange:`auto-fit from the data when omitted; supply to override, e.g. [-2, 2]`,yRange:`auto-fit from the data when omitted`}},pedigree:{blurb:`A genetics pedigree chart for tracing inheritance: squares = male, circles = female, diamonds = unknown sex; a filled symbol is affected, a centre dot marks an unaffected carrier. People are linked by mating lines and descend to their children through a sibship bar. Generation rows (I, II, III…) and child centring are computed from the parent graph. Pick it for autosomal / X-linked inheritance, genetic counseling, "trace the trait through the family".`,optional:[`icon`,`iconColor`,`affectedLabel`,`carrierLabel`,`showLegend`,`footer`],itemShapes:[{prop:`people`,text:`label`,textAliases:[`name`,`id`]}],propHints:{"people[].id":`a stable unique id, referenced by other people's parents/partner`,"people[].sex":`'male' (square) | 'female' (circle) | 'unknown' (diamond)`,"people[].affected":`true to fill the symbol (the person expresses the trait)`,"people[].carrier":`true to draw a centre dot (unaffected carrier); ignored when affected`,"people[].deceased":`true to draw a diagonal slash through the symbol`,"people[].proband":`true to mark the index case with a small arrow`,"people[].parents":`the two parents as [motherId, fatherId] (ids in this same people array); omit for founders`,"people[].partner":`id of a partner with no shared child of record — draws a bare mating line (a married-in spouse)`,"people[].gen":`optional 0-based generation row; usually inferred from parents, set only to pin a founder`,"people[].label":`short identifier under the symbol, e.g. "II-3" or "Maria"`,"people[].genotype":`optional genotype under the name, e.g. "Aa", "XAY"`,affectedLabel:`legend wording for the filled symbol (default "Affected")`,carrierLabel:`legend wording for the centre-dot symbol (default "Carrier")`,showLegend:`false to hide the symbol-key legend (default true)`}},bohrmodel:{blurb:`A Bohr model of an atom: a central nucleus showing the proton (and neutron) count, ringed by concentric electron shells, each carrying exactly the given number of electrons drawn as evenly-spaced dots. Ring radii and dot placement are computed from the data; the element, per-shell occupancy, mass number and any net charge are labelled. For atomic structure and electron-configuration intros — "draw the Bohr model of sodium", "show oxygen’s shells".`,optional:[`icon`,`iconColor`,`neutrons`,`symbol`,`name`,`footer`],propHints:{protons:`number of protons = the atomic number (e.g. 11 for sodium)`,neutrons:`number of neutrons; omit if unknown. mass number = protons + neutrons`,shells:`electrons per shell, innermost first, e.g. [2,8,1] = sodium, [2,8,8] = argon, [2,4] = carbon. Each ring draws exactly this many dots; their sum is the electron total. For a neutral atom the sum equals protons; a mismatch is rendered as an ion charge.`,symbol:`element symbol shown above the atom, e.g. "Na", "O", "C"`,name:`element name shown beneath the atom, e.g. "Sodium"`}},equationbalancer:{blurb:`A chemical-equation balancer: reactants → products as coefficient·formula (digits subscripted) with a per-element atom-conservation tally (matched rows read insight, mismatched read danger) and a balanced/not-balanced badge. Use for combustion, stoichiometry, conservation of mass.`,optional:[`icon`,`iconColor`,`elementTally`,`balanced`,`caption`,`footer`],itemShapes:[{prop:`reactants`,text:`formula`,textAliases:[`compound`,`species`,`name`]},{prop:`products`,text:`formula`,textAliases:[`compound`,`species`,`name`]},{prop:`elementTally`,text:`element`,textAliases:[`symbol`,`atom`]}],propHints:{"reactants[].formula":`chemical formula WITHOUT subscript markup, e.g. "CH4", "O2", "H2O" — the digits are lowered to subscripts automatically. A trailing charge is written like "SO4^2-" or "Na^+".`,"reactants[].coeff":`stoichiometric coefficient (integer ≥ 1); a leading 1 is hidden`,"products[].coeff":`stoichiometric coefficient (integer ≥ 1)`,"elementTally[].left":`total atoms of this element on the REACTANT (left) side`,"elementTally[].right":`total atoms of this element on the PRODUCT (right) side`,balanced:`optional; derived from the tally (all left===right) when omitted`}}};export{e as D};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
var e={yieldcalc:{blurb:`A stoichiometry / percent-yield calculator: a headline percent-yield readout (actual ÷ theoretical × 100, computed client-side from the real numbers given) with an optional reagent-moles reference table, the limiting reagent badged. With no yield numbers it still shows the reaction and limiting reagent — never a fabricated percent. Use for percent-yield problems, limiting-reagent identification, and stoichiometry.`,optional:[`icon`,`iconColor`,`reaction`,`limitingReagent`,`molesAvailable`,`theoreticalYield`,`actualYield`,`unit`,`footer`],itemShapes:[{prop:`molesAvailable`,text:`reagent`,textAliases:[`compound`,`species`,`name`]}],propHints:{reaction:`the balanced equation as typed, e.g. "2 H2 + O2 -> 2 H2O"; shown verbatim`,limitingReagent:`name/formula of the limiting reagent, matched to a molesAvailable row`,"molesAvailable[].reagent":`chemical formula or name, e.g. "H2", "O2"`,"molesAvailable[].moles":`moles on hand of this reagent`,theoreticalYield:"the maximum possible yield from stoichiometry, in `unit`",actualYield:"the yield actually obtained, in `unit` — percent yield needs BOTH figures",unit:`unit for the yield figures, e.g. "g", "mol" (default "g")`}},vseprmolecule:{blurb:`A 3-D molecular-geometry (VSEPR) figure: a central atom with bonds drawn to its substituents at the geometry implied by the shape (wedge/dash bonds for depth), lone pairs as dot-pairs, and the shape name + ideal bond angle. For molecular shape and bond-angle questions.`,optional:[`icon`,`iconColor`,`lonePairs`,`shape`,`bondAngle`,`caption`,`footer`],itemShapes:[{prop:`bonds`,text:`atom`,textAliases:[`element`,`symbol`,`name`]}],propHints:{central:`central-atom symbol, e.g. "O", "C", "N", "S"`,"bonds[].atom":`bonded-atom symbol, e.g. "H", "Cl", "O"`,"bonds[].order":`1 (single, default), 2 (double), or 3 (triple)`,lonePairs:`number of lone pairs on the central atom (drawn as dot-pairs)`,shape:`VSEPR geometry: 'linear' | 'trigonal' | 'tetrahedral' | 'bent' | 'pyramidal' | 'octahedral'. Inferred from the bond + lone-pair count when omitted.`,bondAngle:`ideal bond angle label, e.g. "104.5°", "109.5°", "120°", "180°"`}},unitcircle:{blurb:`A trigonometry unit circle: the swept angle arc, the terminal radius to (cosθ, sinθ), the dropped reference triangle (sin/cos legs), the angle in degrees AND radians, and the exact coordinate — all computed from one angle. For trig fundamentals and reference angles.`,optional:[`icon`,`iconColor`,`showSpecial`,`caption`,`footer`],propHints:{angleDeg:`the angle in DEGREES, measured counter-clockwise from the +x axis (e.g. 30, 45, 135, 210). Radians, cosθ, sinθ and the point are all computed from it.`,showSpecial:`true (default) to tick the standard angles (0/30/45/60/90…) around the rim`}},solidfigure:{blurb:`A 3-D solid in oblique projection (front face + depth offset) with dashed hidden edges, optional labelled vertex/edge/face counts (with an Euler V−E+F check), and surface-area / volume call-outs. For solid geometry, surface area & volume, and Euler-formula lessons.`,optional:[`icon`,`iconColor`,`dims`,`labels`,`surfaceArea`,`volume`,`caption`,`footer`],propHints:{solid:`which solid to draw: 'cube' | 'rectprism' | 'cylinder' | 'cone' | 'sphere' | 'pyramid' | 'prism'`,dims:`relative proportions only (shape the drawing, not measured to scale): { w?, h?, d?, r? }`,labels:`counts shown as chips: { v?: vertices, e?: edges, f?: faces }`,surfaceArea:`computed surface-area read-out WITH unit, e.g. "94 cm²"`,volume:`computed volume read-out WITH unit, e.g. "60 cm³"`}},crosssection:{blurb:`A labelled stratified cross-section: stacked bands sized by thickness (Earth strata, tissue layers, ocean zones) with leader labels and an optional depth axis — or concentric rings (a planet interior) when orientation is "concentric". For geology, anatomy, oceanography.`,optional:[`icon`,`iconColor`,`orientation`,`depthUnit`,`caption`,`footer`],itemShapes:[{prop:`layers`,text:`name`,textAliases:[`label`,`layer`,`zone`]}],propHints:{"layers[].thickness":`layer thickness in depthUnit-s (> 0); drives the band’s relative size`,"layers[].color":`design-token tint, e.g. 'var(--warning)' | 'var(--danger)' | 'var(--presence)' | 'var(--insight)'; cycles the accents when omitted`,"layers[].note":`short note shown beside the layer (a depth range or composition)`,orientation:`'horizontal' (default, stacked bands) | 'concentric' (nested rings, e.g. a planet interior)`,depthUnit:`unit on the cumulative depth axis, e.g. "km", "mm", "m"`}},pianokeys:{blurb:`A piano keyboard with a chord, scale, or set of notes lit up — keys coloured by role/finger, with note labels and the chord name. Use for chords, scales, intervals, and "what notes are in X".`,optional:[`title`,`icon`,`iconColor`,`octaves`,`startNote`,`chordName`,`showLabels`,`caption`,`footer`],itemShapes:[{prop:`highlight`,text:`note`,textAliases:[`pitch`,`key`,`name`]}],propHints:{"highlight[].note":`scientific pitch to light up, e.g. "C4", "E4", "G#4", "Bb3" — must fall in the rendered range`,"highlight[].role":`harmonic role: 'root'|'3rd'|'5th'|'7th' — sets the key colour and badge`,"highlight[].finger":`fingering 1–5 shown on the key (used to colour when no role is given)`,startNote:`leftmost key, a natural/white note in scientific pitch, e.g. "C3", "C4"`,octaves:`how many octaves to draw (1–4, default 2)`,chordName:`name shown beside the keyboard, e.g. "Cmaj7", "A minor pentatonic"`}},fretboardmap:{blurb:`A full-neck guitar/bass fretboard map: nut, frets, strings, inlay markers, with coloured dots at string/fret positions (roots emphasised) and interval labels. Use for scales, arpeggios, and chord shapes across the neck.`,optional:[`title`,`icon`,`iconColor`,`strings`,`frets`,`tuning`,`scaleName`,`caption`,`footer`],itemShapes:[{prop:`dots`,text:`label`,textAliases:[`interval`,`note`,`name`]}],stringItems:[`tuning`],propHints:{"dots[].string":"string index, 1 = thickest/lowest string (low E on a guitar) up to `strings`","dots[].fret":"fret number, 0 = open (drawn on the nut) up to `frets`","dots[].label":`interval/note shown on the dot, e.g. "R", "b3", "5", "A"`,"dots[].role":`'root'|'third'|'fifth'|'other' — drives the dot colour; roots are emphasised`,tuning:`open-string notes thickest→thinnest, e.g. ["E","A","D","G","B","E"]`,strings:`number of strings (4–7, default 6)`,frets:`frets drawn from the nut (4–24, default 12)`}},circleoffifths:{blurb:`The circle of fifths: twelve major keys around an outer ring, their relative minors inside, and each key signature on the rim. Highlights the queried key and spokes to related keys (IV/V/relative). Use for key signatures, relative keys, and the IV–I–V relationship.`,optional:[`icon`,`iconColor`,`highlightKey`,`showMinors`,`related`,`caption`,`footer`],stringItems:[`related`],propHints:{highlightKey:`the major key to centre on, e.g. "C", "G", "Bb", "F#"`,related:`other keys to spoke to (its IV, V, and relative minor make sense), e.g. ["C","D","Em"]; minor keys carry an "m" suffix`,showMinors:`draw the relative-minor inner ring (default true)`}}};export{e as D};
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
var e={odontogram:{blurb:`A dental chart (odontogram): the upper and lower arches tooth-by-tooth, each numbered per the system and colour-coded by status (caries, filling, crown, missing, implant, root canal), with a legend. Use for charting, treatment plans, and "show me which teeth X".`,optional:[`title`,`icon`,`iconColor`,`system`,`caption`,`footer`],propHints:{"teeth[].n":`tooth number in the chosen system — Universal 1–32 or FDI two-digit (e.g. 11, 26, 36)`,"teeth[].status":`'healthy'|'caries'|'filling'|'crown'|'missing'|'implant'|'rootcanal'`,"teeth[].surface":`affected surface(s), e.g. "MOD", "occlusal", "buccal"`,system:`'universal' (1–32, default) | 'fdi' (two-digit quadrant notation)`}},clockface:{blurb:`An analog teaching clock: a full dial (numerals, hour ticks, minute marks) with the hour, minute and optional second hands computed from the time, an optional digital read-out, and an optional shaded elapsed-time arc. For telling time, elapsed-time problems, and clock reading.`,optional:[`title`,`icon`,`iconColor`,`showSecond`,`second`,`digital`,`elapsedTo`,`caption`,`footer`],propHints:{time:`the time as 'HH:MM' (24h) or 'H:MM', e.g. '3:40' or '15:40' — the hands are computed from it`,showSecond:"true to draw a sweeping second hand (pair with `second`)",second:`seconds past the minute (0–59) for the second hand`,digital:`true to show a 12-hour digital read-out (e.g. 3:40 PM) beneath the dial`,elapsedTo:"a later time as 'HH:MM' — shades the elapsed arc from `time` to here and reads the span"}},moneytray:{blurb:`A coins-and-bills tray: denomination stacks (coins as circles, bills as rectangles) with counts, a running total computed from denom×count, and — in change mode — the gap to a target plus the fewest-tokens suggestion. For counting money, making change, and money-sense lessons.`,optional:[`title`,`icon`,`iconColor`,`currency`,`target`,`mode`,`caption`,`footer`],itemShapes:[{prop:`tokens`,text:`label`,textAliases:[`name`,`denomination`]}],propHints:{"tokens[].denom":`face value of one token in the base unit (0.25 = a quarter, 5 = a $5 bill)`,"tokens[].count":`how many of this denomination sit on the tray`,"tokens[].label":`name under the stack, e.g. "Quarter", "$5" (defaults to the formatted denom)`,currency:`currency symbol prefixed to totals, default '$'`,mode:"'count' (default) tallies the tray; 'change' reads the gap to `target` + a fewest-tokens hint",target:`goal amount in change mode — the gap to here is read out`}},placevaluechart:{blurb:`A base-ten place-value chart: a labelled column per place (thousands/hundreds/tens/ones) showing the digit, its base-ten block glyphs (hundred-flats, ten-rods, unit-cubes), and the expanded form — all computed from one value. For place value, base ten, and expanded-form lessons.`,optional:[`title`,`icon`,`iconColor`,`columns`,`showBlocks`,`expanded`,`caption`,`footer`],propHints:{value:`the whole number to chart — the digits and block glyphs are computed from it`,columns:`which places to show, left→right: any of 'thousands' | 'hundreds' | 'tens' | 'ones' (auto-fits the value when omitted)`,showBlocks:`true (default) to draw the base-ten block glyphs (flats/rods/cubes) under each digit`,expanded:`true (default) to show the expanded form, e.g. 300 + 40 + 7`}},shapecard:{blurb:`An illustrated 2-D/3-D shape gallery: each shape drawn as a clean filled figure (polygons built from their side count, solids in oblique projection) with attribute call-outs (sides/vertices/faces/edges) and a real-world example. For shape recognition and polygon/solid attributes.`,optional:[`title`,`icon`,`iconColor`,`caption`,`footer`],itemShapes:[{prop:`shapes`,text:`name`,textAliases:[`shape`,`label`]}],propHints:{"shapes[].kind":`which figure to draw: 'triangle' | 'square' | 'rectangle' | 'pentagon' | 'hexagon' | 'octagon' | 'circle' | 'cube' | 'sphere' | 'cylinder' | 'cone' | 'pyramid'`,"shapes[].sides":`number of sides (2-D) — shown as an attribute chip`,"shapes[].vertices":`number of vertices (corners) — shown as a chip`,"shapes[].faces":`number of faces (3-D) — shown as a chip`,"shapes[].edges":`number of edges (3-D) — shown as a chip`,"shapes[].example":`a real-world example, e.g. "Honeycomb cell", "Dice"`}},letterform:{blurb:`A handwriting letter-formation card: the large letter seated on baseline/midline/cap guidelines with a faint trace ghost, numbered stroke-order indices, and the ordered stroke hints. For handwriting, letter formation, and stroke-order practice.`,optional:[`title`,`icon`,`iconColor`,`case`,`showGuides`,`caption`,`footer`],itemShapes:[{prop:`strokes`,text:`hint`,textAliases:[`text`,`description`]}],propHints:{letter:`the single character to form, e.g. "a", "B"`,case:`'upper' or 'lower' (default) — which form of the letter to draw`,"strokes[].order":`stroke sequence number (1, 2, 3…)`,"strokes[].hint":`what the stroke does, e.g. "Curve left and down", "Straight line down"`,showGuides:`true (default) to draw the baseline / midline / cap-height guidelines`}},toolscale:{blurb:`Reading a measuring instrument: a ruler with fraction ticks, a protractor arc, a caliper jaw, or a thermometer column, with a movable indicator at the value and a read-out — every tick and the indicator computed from value/max. For measurement, fractions of an inch, angles, temperature.`,optional:[`title`,`icon`,`iconColor`,`unit`,`fractional`,`reading`,`caption`,`footer`],propHints:{instrument:`which instrument to draw: 'ruler' | 'protractor' | 'caliper' | 'thermometer'`,value:`the measured value the indicator points to`,max:`full-scale value (the instrument's max reading) — drives tick spacing and the indicator`,unit:`unit shown on the read-out, e.g. 'in', '°', 'mm', '°C'`,fractional:`true to tick the scale in fractions (½ ¼ ⅛) rather than decimals — for an inch ruler`,reading:`override the read-out string, e.g. '2 3/8 in' (computed from value/unit when omitted)`}},craftchart:{blurb:`A gridded craft pattern chart — the literal chart a maker follows stitch by stitch: a rows×cols grid where each filled cell carries a colour and/or a stitch symbol, with numbered stitch/row rulers on the margins and a symbol/colour legend. For cross-stitch, knitting, pixel-art, beading, and weaving charts.`,optional:[`title`,`icon`,`iconColor`,`legend`,`craft`,`caption`,`footer`],itemShapes:[{prop:`legend`,text:`meaning`,textAliases:[`label`,`name`,`description`]}],propHints:{rows:`number of rows in the chart`,cols:`number of columns (stitches per row)`,craft:`re-skins each cell: 'crossstitch' (default) and 'knit' show the stitch glyph, 'pixel' a flat block, 'bead' a round bead, 'weave' a solid square`,"cells[].r":`row index of a filled cell, 0-based top→bottom`,"cells[].c":`column index of a filled cell, 0-based left→right`,"cells[].color":`cell fill — a CSS color or design-token, e.g. 'var(--danger)', 'var(--insight)', '#c0392b' (a thread shade)`,"cells[].symbol":`stitch symbol drawn in the cell, e.g. "×", "♥", "▲", "k", "p"`,"legend[].symbol":`the symbol this key row matches (a cell's symbol)`,"legend[].color":`the colour this key row matches (a cell's color), drawn as a swatch`,"legend[].meaning":`what the symbol/colour means, e.g. 'DMC 321 — red', 'knit', 'purl'`}}};export{e as D};
|